From a779b00b2b64dca65785a1660a33f5be404e43dd Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:32:01 +0100 Subject: [PATCH 01/13] First draft on XMTP doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 technical-guides/messaging.md diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md new file mode 100644 index 0000000..ee8c628 --- /dev/null +++ b/technical-guides/messaging.md @@ -0,0 +1,27 @@ +# Integrating XMTP + +When studying a service or a proposal, it is important for users to be able to communicate with the author. TalentLayer provides an integration example of XMTP, a messaging system that allows users to communicate with each other using their ETH address. This guide will show you how to integrate the XMTP messaging system into your DAPP. + + +## Techincal overview + +XMTP is based on asymmetric encryption. When u user signs up using his ETH address, he is prompted to use his wallet signature to generate a pair of Private/Public keys. The private key is stored on chain, and requires the user's wallet signature to be retrieved; whereas the public key is stored publicly on chain. +The public key is available to other XMTP users who wish to communicate with this user, and is used to encrypt messages before sending them. The private key is used to decrypt messages. +The sender's public key is included in the message so that the recipient can verify the sender's identity. + + +## Workflow + +When registering to XMTP, wallet signature is required to register the wallet as a User. + +![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/db9ea7e9-d35b-4d43-8227-7ebb862dac8e/Untitled.png) + +(This will be asked only once). + +Then for each login, a wallet signature will be asked to decrypt this Private Key and create an XMTP client based on this key. +Messages are stored on XMTP private nodes for now, but will be stored in a decentralized manner in a near future. + +## SDK analysis +XMTP provides a [complete SDK](https://xmtp.org/docs/client-sdk/javascript/concepts/intro-to-sdk) to interact with the XMTP protocol. + + From d727c346be47725a30e883d641ec232d353a8caf Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:32:44 +0100 Subject: [PATCH 02/13] Added Client doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index ee8c628..981711b 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -25,3 +25,18 @@ Messages are stored on XMTP private nodes for now, but will be stored in a decen XMTP provides a [complete SDK](https://xmtp.org/docs/client-sdk/javascript/concepts/intro-to-sdk) to interact with the XMTP protocol. + +### 1. Client +All calls to XMTP protocol are done through the XMTP [Client](https://xmtp.org/docs/client-sdk/javascript/reference/classes/Client): +This Client is used to retrieve the keys of the user using his wallet signature, and use them to initialize a functional client that can be used to send and receive messages. + +```typescript +import { Client } from '@xmtp/xmtp-js'; + +const keys = await Client.getKeys(signer, { env: 'production' }); +const client = await Client.create(null, { + env: 'prod', + privateKeyOverride: keys, +}); +``` + From 7447c477ce4467a438be222bf19c753628c6cf1d Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:33:22 +0100 Subject: [PATCH 03/13] Added Conversation doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 981711b..cce4b80 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -40,3 +40,60 @@ const client = await Client.create(null, { }); ``` +### 2. Conversations +The Client can be used to create a conversation with another user, and send messages to this conversation. +A conversation is an object gathering all the contextual data related to a conversation between two users, +as well as functions used to send and receive messages as well as websocket listeners, used to stream incoming messages. + +```typescript +export declare class ConversationV2 { + topic: string; + keyMaterial: Uint8Array; + context?: InvitationContext; + private header; + private client; + peerAddress: string; + constructor(client: Client, invitation: InvitationV1, header: SealedInvitationHeaderV1, peerAddress: string); + static create(client: Client, invitation: InvitationV1, header: SealedInvitationHeaderV1): Promise; + get createdAt(): Date; + /** + * Returns a list of all messages to/from the peerAddress + */ + messages(opts?: ListMessagesOptions): Promise; + messagesPaginated(opts?: ListMessagesPaginatedOptions): AsyncGenerator; + /** + * Returns a Stream of any new messages to/from the peerAddress + */ + streamMessages(): Promise>; + /** + * Send a message into the conversation + */ + send(content: any, // eslint-disable-line @typescript-eslint/no-explicit-any + options?: SendOptions): Promise; + get clientAddress(): string; + private encodeMessage; + decodeMessage(env: messageApi.Envelope): Promise; +} + +export declare type InvitationContext = { + conversationId: string; + metadata: { + [k: string]: string; + }; +}; +``` + +Example of retrieving a list of a user's conversation: +(The client being already initialized with the user's private key) + +```typescript +const listConversations = async (): Promise => { + try { + const conv: Conversation[] = (await client.conversations.list()); + } catch (e) { + console.error(e); + } + return conv; + }; +``` + From dd7d031b134892f442bbb7a03a72256a5ed2eced Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:33:46 +0100 Subject: [PATCH 04/13] Added Message doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index cce4b80..36d9d1d 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -97,3 +97,47 @@ const listConversations = async (): Promise => { }; ``` +### 3. Messages +The client object has a “conversations.list()” function, which once called, returns an array of “Conversation” objects: +The conversation object has a “messages()” function, which once called, returns an array of “DecodedMessage” objects: + + +```typescript +export declare class DecodedMessage { + id: string; + messageVersion: 'v1' | 'v2'; + senderAddress: string; + recipientAddress?: string; + sent: Date; + contentTopic: string; + conversation: Conversation; + contentType: ContentTypeId; + content: any; + error?: Error; + constructor({ id, messageVersion, senderAddress, recipientAddress, conversation, contentType, contentTopic, content, sent, error, }: DecodedMessage); + static fromV1Message(message: MessageV1, content: any, // eslint-disable-line @typescript-eslint/no-explicit-any + contentType: ContentTypeId, contentTopic: string, conversation: Conversation, error?: Error): DecodedMessage; + static fromV2Message(message: MessageV2, content: any, // eslint-disable-line @typescript-eslint/no-explicit-any + contentType: ContentTypeId, contentTopic: string, conversation: Conversation, error?: Error): DecodedMessage; +} +``` + +The message itself is stored in “content”. + +Example of retrieving a list of conversation's messages: +(The client being already initialized with the user's private key) + +```typescript +import {DecodedMessage} from "@xmtp/xmtp-js"; + +const listMessages = async (): Promise => { + try { + const messages: DecodedMessage[] = await conversation.messages(); + } catch (e) { + console.error(e); + } + return messages; +}; +``` + + From a8efc735e7d65344d242b7fc70186c3dd86aa743 Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:34:11 +0100 Subject: [PATCH 05/13] Added Sending Message doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 36d9d1d..927fac6 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -141,3 +141,16 @@ const listMessages = async (): Promise => { ``` +### 4. Sending messages +Sending a message is done through the Conversation object. +The client object has a “conversations.newConversation(peerAddress, context?)” function, which once called, returns a “Conversation” object. +The "context" object is optional, and can be used to add contextual data to the conversation, such as a conversation ID, or any other metadata. +Further details on what TalentLayer implemented can be found in the SDK usage section. + +Exemple of sending a message without context: +```typescript +const sendMessage = async (message: string): Promise => { + const conversation = await client.conversations.newConversation(peerAddress); + return await conversation.send(message); +}; +``` From 3eb5dcd371579252c8b9625d4a340016843a0402 Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:34:38 +0100 Subject: [PATCH 06/13] Added WebSocket Listeners doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 927fac6..4b4a9c2 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -154,3 +154,37 @@ const sendMessage = async (message: string): Promise => { return await conversation.send(message); }; ``` + + +### 5. Websocket listeners +There are 2 websocket listeners available in the SDK: +- “client.conversations.stream()” Available from the client object, which streams incoming conversations to the user +- “conversation.streamMessages()” Specific for each conversation, which streams incoming messages to the user + +Example of using the client conversation stream: + +```typescript +import {Conversation} from "@xmtp/xmtp-js"; + +const streamConversations = async () => { + const stream: Stream | undefined = await providerState.client?.conversations.stream(); + if (!stream) return; + for await (const conversation: Conversation of stream) { + // Your logic here + } +}; +``` + +Example of using the message stream: + +```typescript +const streamMessages = async (conversation: Conversation) => { +const stream: Stream | undefined = await conversation.streamMessages(); + if (!stream) return; + for await (const message: DecodedMessage of stream) { + // Your logic here + } +}; +``` + + From b008775e5456c1333f17aa54e04e6f50f09768be Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 11:35:49 +0100 Subject: [PATCH 07/13] Added TL SDK Usage section + Workflow Signed-off-by: Quentin D.C --- technical-guides/img.png | Bin 0 -> 13257 bytes technical-guides/img_1.png | Bin 0 -> 11786 bytes technical-guides/img_2.png | Bin 0 -> 19287 bytes technical-guides/img_3.png | Bin 0 -> 57931 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 technical-guides/img.png create mode 100644 technical-guides/img_1.png create mode 100644 technical-guides/img_2.png create mode 100644 technical-guides/img_3.png diff --git a/technical-guides/img.png b/technical-guides/img.png new file mode 100644 index 0000000000000000000000000000000000000000..d6b6b0cf281f6fbf03553aad803bf762e1609347 GIT binary patch literal 13257 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 Nrs@rqQYGu){{wqmtGoaJ literal 0 HcmV?d00001 diff --git a/technical-guides/img_1.png b/technical-guides/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b85cf17f123fcd035c19ab5013867d27772186bf GIT binary patch literal 11786 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 aM#bq?+jyfEO#lnor>A3dyX4lR=l=;5)f$rk literal 0 HcmV?d00001 diff --git a/technical-guides/img_2.png b/technical-guides/img_2.png new file mode 100644 index 0000000000000000000000000000000000000000..69163f10f74eedb292a5155af61b3377ffae982b GIT binary patch literal 19287 zcmeIa2UOG9*C^_Yg>g_AML|W#%pfv?0*Zo^gmDy5P*7K|rKLg46&J0))^)NG0|C;>`EI-}m0S_q}!R`|i8zuD2GNUy^gq-e>o{ z&pt`GY-_di#{)lZ+O%osh4bgGZrZffXw#bb@irAHtHA7opFfvSe`_* z9E|W4v&}nV!jTdhrzn;JMSpLe# z?<}@U{`%SS`&}P4O{xDjJX3T-{fM@o<4;e1+P!)EmfZ^*eXGm;+2qyb)iDE8U!qVf zz(?ox_V)MY8>82ZDPzV4od70(`emhh0I!>N{ADc%ynS_<4!pU%S6dBudG$xp=1rS^ zcPtGD-jx2Bt^m9^z94OmV|WzQ^jBWa`>Dt$K6GQZl)u&pk27NllM4-4Q@46qmPGx7WqBn(eA7BTjpTc{*fxQjOs~9kAiz z_18#oR~ivT-1q{gZi_Z*0w}BhLEuF9t|{r7L@-+E5tZ8DllZPiyJJbQREJ^GZbFa?lG%wiYk}OYmg&Z;b47~RpU!AWBmG1B#Lg9p20}id z>Q#4qX?BJkO2~PkA(A1PP{f+!SE`QDL@XZ}6E3T1Bi|M5!6F9Q%N%jBFOMtX`Q)-w zl`FA)1FK{$0aGOqak6zQunqQhgZ!j6umf^*oq+vVo~ zdCt1-An>#}k{^>O9H!(ebGf~jqBKX|zK!UKFF;IU#>1VRvA2M6&%bvN{0@vmCJJ#z z>grXC{DBaj$8bZ8hRJdff+5rzu$6>Uz+A|} zSM>Gzc`HRo2I`DIAi<|U49R0m)~cf@fz?bgVHI4WEAGs5H>;=&BWJW08V`VL24=iM z$&ihzc|(>VCC5V^(C0muTdgTItNtv^D9f%;WgcTb23uX=)t5kXbgD@VLd+jlmw0 zP8Qn1tSrBZt!C~DVQtXeZ*_S{!-f}ygTiNj?j++Q#Tlw;-t=5cXRL_%TUf%G~6;KiNkWdPoS&yt!yrl<@ezq4uL57aU~hj@Bn zt|kNWbrwCDI`x~b2VD-+g5-^>5K&`C${9U~p-z})l%&&O^*oGZ1S~(c2L>@&T>-`D z*A+jAR|b(P*i;m`VXG%C1&c-wlF)AGS@NoXg~zbYE>r7rWn|E>@BJ)@pIFg|tK+lRGLpp~r>emi5@&fhF3WHEkYaXL6{Va_4Lm=2GeIS1P{FB@e$^<58*8z7S> zhf3MUu;?Xz=n0o zpB+Jc7E{hggoXh5UCPZCm1Zr{g7w3ag6*-kZ+aC506~k~(0*yHD2Xh^<(Z(FtjOeD&Y+ zkQHpeM|86z?YvhljzP{&wOqg(zCk0wBX)*;$sQ-(Y>d!{WLtdqrHVc3CV;T;&pgPV zsS@Eex{Km51yDQcbEoT7e^lKD|8=e@I(*{Vj9!fzd_1FoJh>DZWDJI1aP9(PJ5SP6 zM|z;Tyh`;#d$k|yb8SVHdFE71k=@t9^^Sr)#EJKK&a<6f#vl~;Z1<_ajx^I+qO!WE zROTZ~v$`wT(F^t2DN`XsRyG2ED+UXys*k)wJ+fL-9b?vbIB_KcOJBzjEQDt4cN`s~mm~9kA$2DQ zsQ`7fZ|v3)58FfcKUiHN5~cDtUNA(g?*=mTOgN@$Q)~&ArgpG(@fM45u{!00j@Y=` zYy&#D6t>J?{J1(`b6u**RR=e%H(1(2x#hFZZli>clX03OdxYH1HM{1m)R#T=B_lo` zu*|8s7BB!V?G{NJ*%f7ry0fQAPET|Tj{L*yC6+gDfEqn>GN=(XuMTKsJv)=mp#qXX zt5tNr!me3SGv|Ng7gDieE|Ir!mhP>nd%Dyjks^7Q>Sc@-kt@p_J8q!A7r#!%y+w=r z0ZTYM!GFFJdWUcv0C_9>r8R{aw*gZpOtzj52e}!Ci4<7wywg5&oowX`iWRvV>$ipX z=)9Xn3_)(I$8o7uU_C)PKX`)-3SK8fuIa>8ox?rzy(*IE9AJ@;NoTIR@;quF0z?2q z@;R=OK*J!ZXOry+BlTv&7b*GM6#?%zo0DWsLD5QlAO!N~$p*pN?VuLrMKrq8Xn3xk z?aiBv?L0$Gz%QwnOpKy>ur~%0+HN(REDhnbuSz@T*@tCfZw=BGTiGa( zsSylgKW+ktneU7bW<>9fQg6bDgQsVVAIlQ-|C^=6mG;%sB{;KNnF|{s0i(mxOWAn0Wmgv!)0J=3|Ktx=QCUw|m?_g}xbCdUmQ!#m1i z8;71*N5Pb^g`pD@m98?zuYACWX~(|gWgH}urKcFpi@s{BW{&ha#5^Ii4V7?*H9LyH zHmWgNo@Kr4Jzk0Ahl2oWaU=281Yb^f^#p?ARkGd|tnDss%%K3yteoZ1Gh0d6lIGC0_J%WsmSSr#w$RBBD z3^#m-8Zn=Y!i==i_!}dY$Y5_%IsP6$f5_SA1;AFrX=F(z0ED$3K6i{2#tI z{5blvPu$B(&Ot5$DE)oTSj*gt2vzmb^{>NLph@NjCA*h6fMkCzZvVHTJKG|EuAHJ- zqxq>TyecyP^Kks24lu-X@rO3UkK~_22Xzj+nCl>y>a7d|CR)6^`q{FaKg;i4%g$eo z&QG!vyT9PR&3-@DOaQX#KVR%R7xcL4R(~n4gcP+JE1HT>?UPBO{>^(|cHYCiCCa`q zg2jCF9RRY4eb#5zwvFX@m>3H#(@mow_@MU9^dbO){?U8O$9zp%71Qw%WDQsKiDw=% z!0o?&oC;Of0AvvDIhX-#D)nC<|BM>6(K-XtMovDwq`o3cqkocrWAqn=O}g+I5ZS27 zPWG?B3j1{DK2(28*>3zldw>n;h^v|z%@S7%sCDt-pdNnxrDkTYa8xU9SL`m4!L@xA zKN_AV0HNI`LEu%Y(bWNK%Ilb(S1=J-PWRez-twa#tzNsl4q1D`mX#u&+a1#9NB#nDm68)AsR%yzY+@Rb=YU^+sRl zs0hZk2#i@<_tc_`0e}4N1N%6NTza`^r1*3DVdzgu@=MY{qxmnL52j0Dlpi?3SHZ1- zyWEuZC#nO6a4cgFln4EF0MS3DGOR_?3o!R%(fUrn-Xa6ufJeOq`+$+3%kdvzFRUHl zPZ#>=%t!P6)qO?8eDpwWt);J=x8y-BvFSCJvi4|vpIX^57en9ox2cZ4MzkTD9h`Pw zb>SN^<*CPYT1j z1J(9q9-Zk1pLqf-i?+Mg66^7KMcz_1>SNbDsr~qSSBk4e^lSZVr-tEi$7R{1zT4q_ z1hoUfMHE51X%5z+dJ+%ueGj095AGLvCgnHqpE#?F`pwDy*hwyGL*CDuB8c9Q_n6?% zY#>^f9|-Y2v%MIiDb0RB?u)8Dvt~ah!R(^$(G@^RsQk9C*s%vL_C+LO7NKEC?*Om` zIE%03O$Mow1#6=jmEJj^1HC^esOA11eBgaIyW`vpE-bEsEr$b#lAhQU#2bcb|WFRwjT>dzm4fah`m?( zE-NY=PcJpeO3UZ^ zq9fj!r+6HvE!*|qxepKX!Gn0Mz8Z#n-!CiiL^Hz{4p`uOd4Br5BmDGcPzv9sbI~-3 zppDno91j?ozln-IF|FPW=aiDZ8@8`w_ap?;(zyM|i>SG0o0=M)vMhBi50E&WDE1074hI<;PyYo59gvkTfimC;jga=WLBj%YNSOLVJeZM2~ zVC`2W1E1w}fw=%ih~csD=!Ghr+Il?2l&wer&_?kdn~VBip!t)XqZ~wC5QSq3o8;t2 zNtq;P>2%V50|m2nJ`c*@F!pu-NocxA#iYtBWJ2OnI<$y!dRNnE)8_UuW*IG1@aW;G zsexC^=a7*Xev>Ty*$@rG)Ily=i+(H9@KJmU$E^4YzuWXDy=pv(<@5(1V<~^5aXi{-tz)hl z(Mj_VCJ_ns^|Og1W;%RY;s}^3``04QH}+l`ZrHVBLK68iH3v<8ccG z){1{)Z)(W@HNWi2`)%^}5o&s~!JVe3+A>Rg`rCJ>=xr}bQH82g&X#X}pn#ctOnF7B zl}ntu&NbQvsF^p1Sm5j3@Tm|7cnKNVFBVZEct|fZqj{2w+v(8Zg$s}L#DglWH#7Ge zWZ>6%=HgE!Zm%i!M0Cd>gqc{PN0yfLcrd@%wak#SsXvWN( z)SHMz`F1903eCfY{IP;ooalX`7#sT@Vu0slPzcOwEPg@L0KZPi=dKXMtt{TytqvWm zXp%sV=+HsaM45ejZVnpVr;3$~ZO*SJ*7~KRzDPYz^Kt>2UsHzYLOkg2&kWKAYV=F& zan12Ph1Pa^173%GA&-$io*fgCYi<6hDW;HtH}poUfb9B&prXyeZqrY7sIHv@+E@6k=-SY1 zVSQRD?#TBcBgag=I9)Uk`gbQ-e z=j8VL3QiVA?N&<5(>86pbhnQv2Pq%hZWIKB!3$1`Omf_J&hS88Bx>b2jANdGqGP2) z-w}98z8>rs**fNtUtU?%R=J-LuGgl(Kj{)`Df#G@#Uvx-bVYl$i<#*))KHrS%q?=+ zpF0%@kjW`_;aEwFH)Wh+V}4^QgywF7kh~eI18e20mdJ|ahcDEls2bEJF?z_C&42-MbKU9cbhd3#)E3h}X3h&tt{ z$fVh2apb!P>8mNc`wR4ty5rJC1`iL($2|mXeCon%tZxm29RzdV7E<=~7a3`{){}Fs zv0uMcT0UyW!rgL+MP05Y6Gw52u8#27oFE;b3bVU_@Ikq+2$Ng4d|xwjwSJ^03Sd8> zRZ7dnwF(3nVzb}$z{t^O5krl2F&xK7zFP;>9Rv|JmiX|g<)w@*QnN*Q+QB-XvEv{! z!8>>nD9nv)jr|C{0T_y(ou{EU9#M+%jT^tPzKoQG+kv-0TLG~vizd@M>o zMKmEQ#7D0#mn&~ehwwIA5gI+{UG-QSMTKV&pa!z(@H|tC^j)qR6Hq9uv-w+8E!;0g z6vTCkYM})wqknQ2X*Oz{UJ2s-L;&ym+v`!&)ls^w5{e5*%->alVqdU>fAaTe5+?Vg z5d5Z7M~=Qi{si7vuB;|5($vUAhR=h{ST1(sbKT9$>n{}#a*Rf><~$u5QTVl@(+w^J zobx}Z1dzGmo1;$u=n8*g8Qcb5_yvW~&$3pG{d#Y2&3(N7`K2+I6)g|JTsFw)ADttp zt&vnFPQpcwk5aC+-sYZqM41u!N}qUFM=wRM%&MZG8rnxT@*nmSwMZo<=1 z*^=&ImZ^SF7b(k&*k`o{>5bl()2G_c39eQD9h?9OlB>6FD_3h!??)Pm7Q38Q3u%d# znJ|H7^JK$vL%DLlTkGwYPV_$0DQ7+PjZa&rckY`}a3`y#*Ww5OV;` z-6WVDP^0f&y}9EhDb9Z7(mxTxmVe~NNq<%0ht=1NL6>CGOgk(Yta&4e>!NaE> zS@~fi&3UCmb+^q0k7&Iue$!W+kD0;y-Zb`E!=kzn!42&F4#b3#+{PfWcqQ}VL;S%a zTwX;ZeSYgB-6Xw6Qwl3v2Spf%gKphR z$Iln%*oV>ItG6YvPsz|nyGj}fvJ$G*$dV_o`(_O*rhR5klNV8!kL5}3H3TJ$5(i15v3KwkM^%Y_zk zO--dDCUEST!aT_`c;V}odxKfg*!aV{33;l)MVM0z1k8~>a`a%M4|AYgIRy~Wn{#7U zZpKn~z#ekPi)yRQmL@rvVi2-tJx#*Pjq{IcAt1QhZFJR)m+k?TV9t^U@A)r<^E*0p zPX0LZ^WoZ@2jw#%Ig^kiat-`>@rl!Js+Iv+&F|6Fp#!n0e&eOt?Vc&hoeXtMzcyk* z-BwRB+-84Ct!ap-)lv&~qz}kB;Q&w$s^)yxpg(M2!!k_a2d%r z3Y{d4jU3CXg)=Mkjv1Tq1w9}v=Rug|6yI4dcGBO2gEPP&h;qukrhuBLB=rYQG1Zq1 zkuP;0xa3^lm+sqOcz|i9V5N<$CHtz@UD{@KNj>kX->=A{X?B!U^ zu>U*`1TNdGcunyMstZ#)2`dk1Y3bCPy& zFKi#N@luY7Q~39QdoQdTqjH1cW9=P;{#AX=SiNZ#W;ZuF!xsY_5MRd2sxy0mcyPRZ z78Tnz*0Vbu)nB1%MazfJQhKwFQ|%-HxJhUeg9Q~i6VXh(UNjSrt{;IQT9$`^FiW4| ztwPK*H)+mTP|17CH;{%RurznO0NV{qqg<W&MA6fLdj#Kf_Hl zgsBd_V!w-X1wkbDd6wxYPNNm&^>P;4WDyo;Ep1NaNvIE;4+6=8(zlY%oK|iWeY;Ht z(M8{cS22E6uw1Lx6x(+!PF(0;bVPc1O+RPQMyQ4I2aZI3-^wvUxt6&V#jiFBoz2DE zQzPhgWO;vH1a+ZBQJpg{u%Do*;T8;P`&*tzqJ=Jn9O-aSh&kt8j}wwgF$|b`GS%}q zaUR?AHnziY4zvfb#U|g%ZP)3k$vhF8MroGR($H)@$&B8VAx+G1Umt7qO~%6pO3c^0 zb*!AHg2jYbMirEjiR!y7&nUH?7u?^z#qN)a@AJ!O4bqco74aQ@IOEVg;ylTHPokU ztVFd{idhzK~SE!pgdYQuAkU z{&AITyxiiUm3pXQg^PnQ{amd~lCn;~6Dd`WuSkUt`m(uuqqf+|T_$_Zti3GcMr+!z-~RFGlr)bz?>!;F(w4YcL9(J@QfXa27ymTO4+01%cy(a5m)I6Mvl_TbCJ%|{*FNL3um#Y| zli&{6$TnAcS*K70y1U0UY#P~HP3<6NMh<*gsY#5;fuG4m>)9=vO;%Tq#@ljbS{SLmS zX1cA0%%6E5LYk}CUyhtA0MmBJsP6U;d}^V3)ubc*#v$`J>UJ|NeTxOzK;v09*vP5K z)a*!W{TOLl-I7XB`wRR`mlsCQwkGCZed{9N0rp_i#R3^y?Qx_+xqPc0@A4-`?M9Y@ zFlutx`TD4JO|T<8K&!A%ZotT{%$P+9Dbj-Ord*WOES{E@@K?s4Ya@TXdSt5bNHj0n zKr*P94WzW5q;w_1U=4|iKG)j8j*gg}z(F^{fT(WYA9EiVZ>!j4kDJS^v40py0r+Q& za`}0Q->lFr9W9iMGn@AO=ROD?^XV8|p5%S=)VhE{V5U>@T6Qg)pSBLJU{3>dedun? zEGNaEdEA#aNn`FhXd~aSGqAf!r;lMK+V1v_ zrB*r z21L?~{lY$#)mU$h4&2c`*E%-Y+nXY}HD7nkN^q!ilEooTavyc798d)qy&K#Ga|YHR zp_c^KEjS>9P?$`Am zvTox>{#s8T4jou9C~J2e`uukm0C7TpjA4&0J86vm%-gjvxKbAg>>2WeMXPhA6du6z zVMh)R<;v(lh_?y?nJ8 z)5jd+f9UikG#HPcZoD)T3;;wLr1DoL{?q}7^I*fi-lq<}f5jfY0KjW}vt12TXAP3( zZt#z-a&8b~FM@kH+hcWGOG$-_1$Uh^D4kbDCqsD);UTw=Xf-*>KnEuO5U-61VYaw1iX2uaV>qyqV4^d?-8Y z0@^Hd&_d68=k{F{*08*jlO8!bIiI^zjnL|dAh(9Tp=9z`EqE8AqO_J6jnPY>h^HKM zR>*i%;GS6^SR7OxxdDl+7LLHGD6$p`edELGguK#oMbhd z=SZ(iD<=Dg0ki-wVj`^C*tA|t^VDTTc zoxgHUQ#)_Fi8wCm)>-&ftKbjp3&5H?>OyCnixlIql4#fLLHhfedm6=dvaX|2z$j`X z&uWroT?BmhThR=OK!!JNyfRnqx;kk}<4#&{|oTll!5^UV46WYG>(uhUe% z$7tPGx#D<(Wta8JIV8(w2+Q~d5ZdiZ36y>yK2Y7Ckx&YBS?`-td+8udkIhi;6I z3e>l#0nV7+cK0{dMZpz%UAf_aQV`|w%1C{N$TkB?r^fqpT%Q;UMBbm5cs~ILme03; zfT?V|PCwH#^eTF8{d#$qcOfBtivBbpFyjsOJNpsZZ_oZbL40YK?h)Oc_!jn&>+f1_ zTQq{MZ#IQv(L3N`_3wec*)IrDr1#@=^-Cc}K_@_%_)=24o}UJ!B(H&P1a}PdIR0!q z?CHjOT@76@ek}&UFTcB7y~(e~KwkA;UQ(5dDqcU}NsE%a-Ou$bejlr^Z{1^G=GX=5 z0+o_D@mu1JBWP-G_D#x_a^ZmkPeQIyyaH>ZUv^B5Ut(Glkv%JlnGJq@O8r4tq{@++ z!JduI`qLYo7b5w20axhR?M3*zbvqBhUUs~2ZK)0@ib9>K)xtKrz+;xwWU+Q}x~%rG zxq|&$N8!s0nu81X96U#yGzG^7b|_V_nSP&MF%IpDzj9=2$$0PUoM);ZqSCXPdeL5P zQ?_lm&;0qfS!)<)_@iV4-zRXZfpMR^T0{8Ofvt%%`XLjg>i%8Hd9m}yqJkUFiR;H9 z9NjmaswWt#If(V{w4)N+d1rY4^g7{grQ+la5;!{Xn5fYKX**6=Iab40!9<(Vq zCJPq^&jZ!Cy!VdqUtg&XCX{WbU28o#VhG2N;gV-lDy^Re-Z)^Gb9K7~U}F_?Cr*H^ zt}EGOM(^26(AS-MT$4{EWVgg68^jn&Qv4{L(f*oIC-AQ~o-ij3F*)OB-=0}@U0n#S z5d=0O*WG7727bKl#dSwo$N=y&w?hi<& z>`B60yJ#t&(`@YsUzMkZMv_cax;U5V-BC|ReM1B7S8||~v&%gBjTbqk>}A(gesFT( z+X;yD!SR}hy&IjKwh+XVJd~EJ13L4|H*PQ(dwkDx#-dxo&&AQs>`nmEMJ^E|XQcm4yG4lIUDk(JUqweDt zS1cvA*J(2i3Wm0CZ_TS|UN5)MG(@HDQml<$=;Z#?Iyixw7@K}_B&QiEk@pU@(=(AO z6K>pISToIbrf9yLnclG0aKRM^6=dN72;W5JnM%(Y^b?AHEN$U}lb99da;j4L{P+c9?r-+F@X> zRbLmaRT&mC@j)9bsxln0w8y)=j|$yL{9>AzXax7?w4O@I5oVa0xK*HB11VKLOQ9xa z+~hv+#`$UZr{ zm+@{x|F_|RUf1XY2IWf;V4y8vZu&g;YJ)!fwws?J{yE7%G%CNcn9tZ%U>0=LC3w&% zZLp-qpgYFPZS`*|YJ)=#2U4!|OLF`O9v8%I1sl4Zgl>*}rg6~vF%^)m3!#zhOR=yP zk)Mb=JLL@!Pt;IaUFgLdC7FnZCIO@53D#K8B>bu`aEoQe)DUk*lRE*c9bI33670q8 z0%Ey`_Bt|i>CpPx%DaFmDE1{B>Wu+-1RkO zJ_@LjY)bs!<{|DCd#As0Ud+r9X3aX6Z5UVyxE6H}*)`s^0&mW!NE>|pRFhAj$yXS3*QJqo!Vl;BW~*CT2Sk&iXTZ{b(qGClr$2R& zu@w!4HO04zd_7L&&$w6qc-2joSbffuWn{pe0{g^yl6_Q%k;KK0Ipdfd19U>QqB5IJ zr)1Fo_@*q*@I@!?bpu=}d(8{hHf&z4f&OdVwfci&@XfzaV@0rxj1`(DjIMJ%U=LNb9Y@%Ov3 zkwax{<{v?}59LDgb3;Lj{L=EAwAnzXqLg&}afoEMEQk9YFB=HZyn8TUy|fcR)U)kV z0%aO7R=u(81X&x`LR{!f)NeXqVFe(6o3b7Q?@oV{xx>!?ONT!;>mQV)oY9m#OaMBZ z+)l;?A#ToSjM}}%d1Bw^56S_Ydrpzn(IE7Di3)xuIb+C!?_0D?RReOtrjQ?3O@(O?nyB<+PvXVYd9 zv?Mw}=)Mzs1yI$6W?7hNm)MPRa}(}52u8|UZZBRmW}21)t$RKL*;@Ib^Xqlf=0LH> zdIhUh)u7Qh_FN|W;|Y~5;MRh?_qH$N+rt6$en-nnKIP|%DENZ>g-7^C-PW<^90$5P z(37C$tj>JMgRZA3C`THbSppn>PWVOm3#I?7$+1{g*i2coz4#)tZ4S$D#>stFKV zzAl{_O28BvIdxcq<5cZe6Fe2JHeQ+MfKTc);V&VD@FCx*eOqHf9Rt0lIyq{F3SSNe zYJher(X*dGUH3#?nRv9+=%8|vM!%bx2OSDMs5>Fu`G{~} z)i<`=%gRl_>b=rwHIpk7;jDkuD0-XG+fwGN)mS@yRbWUBo3DG|#g!v}DKyFF^<@OT zjA+2l-#JG(d_M4?X|_+13Pqg1bH1~5Yvew%G*qCfU@Bg!xx*S);bRrDS!W6_^-vL ze)3C7^9kgyO7XTx_q3_g%tkiTbegKy?T73_81xsq!JOcgy;fDCkOr4nudwkJL(3|W zIkRsuja6AZILQR~{2BVKxa2{nrjZl&5V3C*pr@LiODGEvmLOKRu)epD#RMM8d|MuFhXIsip;|_+y`^mC zK7}6Rzl8x(o6>n z%^D*?){6bVgxG%5F4@Xw9O0PtA6pXZ%>~!$b8S@L4-9I_3OgSFM`~Y8qS}uI=1(~7 z3M?7aLS~)+M^mE~9pM}$@LO-+CA$*4`5#hpATlR&xB{qsok)l5twSVD%JebpyJOb1Z=AS!UnfhufJkp=o0MMo%f^5x^e(GMSn1c=EgeM6NMdpa&|#h(3{u zfIX`0k6Qjh16J4k?SD==4KN}9*%dpJv>Ss`ewg?5WVRguZAYHW_!%5|v)6YA@4Qq- z{?C9dm9wVbwxPw)TS^X*%)?0(tV5}9ee zm>AHpza3062gFA|Tt?Uamyd(b5;eDN@@$gXXp^)*+IE67_W`cE_}hdZw;QqDZU6~V z&fka}n)n=+0L0Wm{|ir6i!EZr#x75w$qxN1KHx; zn>W3Cob4%!y!|d+-Qi5Va*{UY>ywBAWLx8^qdKzj13;hHZ->Y?i(tq@d2*dk_q~6h z^X2fg8*dS_-2TVQV}5Tria%QfhMQ-4o%yKe%ZG|yB?<0AA!AI7;giddY-NLyE|(#tu@|r zi%L!M#Qm_zlHrAE8O}c~{oVgTY>OAX8FNr}KzJ>c%qjv95K zO;USu0r@sHCwL6JZ!a+Q+pcfOn%W$i286dYjHcfp^tFMhtuk_bfd55NFAXo`4Oj-X z-QsyV#J){M0HWggm#j_ZGJP<@ElT=AZb~}0ydGrvH|hi3{PjCLb@+JP*qmn4zXxsK zL;{J{?()=4Acx0u2mLQjTVo?f+<{>3_r0>SvaDC>DB+ukc=d+Wf;y@VKKA+yR_TEF zx6xM^R7=;l{l^D&9dhHv>phEMOx#lR&4@bfM>xS>ix`^|AC!e*ub#^Y{iTA9+T+uF zd`wu~w$OzL__nKsAT~AE;A|02_22Kh_(qY+O~b)kZ?#gkQI_TxowWxWV?BZ&wK6|BjSZMg; zi}3gL6K8Lnd{(*920x+MrpJBtC6CMrvu)AO8|w@6XSGH5OyZX%!8r?$I=2lNzodBU z0b+E&XZ6LSE8&ymSlOC#`%DabA>UQGUWSfQL8v4`N$A1oVho{nnn2fh*FTWE6;~As#c0hSaSdXc`M97P6|V5uXC|ujy`YA zf>xf>owurvU{0aN`;JRA+@(8h1tm50+Rg2`yrK5n8od9awOe&skt%bJa8&vI_h|@? zkYW;x_xJ$)kWMRUsc>v|+NX};C=q_j59Iwr@0ySE0BkyKe!zTjE*!KdQ z%H_HHW`0mEw!P!$3>Pltiy?BoTL1l3zPt60JE?W4fOjo=1DkIU0L{GM7G+f!l?=aa`3?3G3W z+f5^=$eD$js7y2Xl8PnKKvfmi_#wn!z9hT|M_8>S7>pU^+@AcPcyS4vI4db+M3Rpz z8FpO~UmmItST&<1Vz6E-0ZN2F{2*%j64vl&1t%fG?BCm(iv!lx$+KORY5UV&Em-m% zYU~f4Zp+TW=jNUZtg_zb>Z6#j>#)n{BIh`SmR-i~D`VM7um2*b4XjJ`t5nw8A#aFW z810;HyhI1qaT)=)YDWTAOF4Y=(^m5~WOzH*Ie{t!qHG^`Qe*Bx&KJHRzXKwND z^}zuyeQ1s8{$_{q$xEwtW+uNx7{pfpM@~Ih|>*jLyyJ0Jmm*>TVU2YA3 z1n%ySsFq}XmHD|B|1`=$e0(B)OldnZd|3#%$Z|75sLb8)FCIdf8hy0}m7|@EOTV|1 zR`Gw(y&Rl9j=pSMr4RV;SIPKqKKg`G5=CJrp0wY3chG{&<6ktA1)#oH&o{iF0cxv1 zDXSReUHE1CVLsqR--X-D+A$74xUUMAZBlkjT29K|^WT_^EM-Ti8iIkVeDtD=uzwq< zbB4Q(30$Jv4qT#B3>aTuC^RM6WKaEDWaV^kdFPB#Yxr*V3z97J?um09{I7fs+}Mkq zd?@!{o4q*)XU3M@5wywf{I}I1_rC6Y1FRm({?~=SsO8aYkN4r4|7`Q*u9rbSwai_7 ziQ$x!HY=LHLAH1HsdH`5|65@A^IsD`N5p--RGoDa_+^_Kf%ojaTBE}Ltou3JWWw># z<1y~cYzFId!+GE;Vg;lS#b`=~6xwP}C%pjCu|O=EHFNLv&h`3U7xrZ=Fha7Q)90#w z9XEaVm|_r;J)pLF7n}d@0^U7)wgfz`In%rCg6jRiJ6H?M61ph47u(-0uvo1pe$ z#7N-DV)Fkv7Pb%C@}26@f|tbfF(8-ahXk9r;l(OVo41sURHb?^mCQCzJZJcQG8NVjb77Fe&>iwR9swKSlAoZS$(^!NslJPm*un2QS)~@ z!b7Qq7FSobzr47mpny@zlqO|S%Xi(L&HR)R!(}4uP`kLTRjGq8?HGiciRF}(i-Dg0 zCZA~-$(=hiV%{L^kQi`tsmg%fWLaf!ab2CyLR)l8D2kHgg|glBCfb)_`2_jJ$)X%|Iog}sOWi*Cp~nweg10o?+lq7?OX zef@emR17O%JzCn64#B;C-D|g#e|HHJOHt*t%3z($7SC%n`5s)d=rgCADZ@MQ_CPbh z(IdU_K0@+OM){9)4=sLIi;a&UaArm_2+YdLYSxu>^#*}} z`e>OMW+C|AA6M(BdDnI)7tBuQ5q#Cq<%i^43mx&h@v$rY6^;F?>@F<=LI`slAUaylqe^7Z$@~7=xKS!Ct?vxAI<#NcDjNVAIkF7NFhGCU+XFE z9LCoH=FyL@@gMu3v!9QO08G)x$0u1nmOYvF`o=`nAz{T+rI-KtGV4YGxO@`{!d78Q!CgKMP`eT*Pk4)CHfj5Ykm-B1G> zFqcHlkH4(`t*r2g0_2?JuzB@*pvk&(vf(B-E4ic6VVzfWsnYy|>0_ zC{)O0wMQbCD0vLIIgBd6;3ij|bR^#&WykP`=q>lxc}9mz1jmHoa@l)21!ph#TJfAc zE!_6U(dY_44B_X^6*tIK+^~pDqGJ&m2ruO+wm76n%~wlMWqd6dgQDmCmyfvQ!OpmY zvA(`O_&9n9d9>H}O~_?k)MarkOP`;Zf+rjLE!R4aw=k;AV0%q9*o<4H6*SO3pQG86 zZgVTto?b6UZ#|P;B#3W6ZyL;wfJhmUuwkTP{7FNN0|aPBNT&Ve&g!dMyRkhx_|2Hp zX6@^ZmiF(VT|SxNa;YH=3898BgBF;;miv&Hu2TYyIp`bA4TP%X$oVf4O=^c`9V?24;DuXee(&*eL{md9p3BR^@kpa=ZSO(D{1xmGp!cAU?&`sO!%gp&vsD zBVz}azvfH~cXr!QNm*$t;r`~v-wL_MfJUA)^dHz?@sH1t`rs>XXX>ZZ;Het$yrEt* zxGaEK6K<^(P(Sj_Fi#i5579$G<0H?CL6 zh2r90(W#zF!~q7ShvbxT1rZO z9&IpY8{}by7Exyl4Hr#4IZbiCU2%gzxXkl>&Mi&K`K6?V!~9!YTWPk`(29(8*$S(_ z;_oypg%d(8rkHq(VzzGk4laBIq{(H|){*hW82lne@FQi);_)IH2tNbljDNxbuaR8r zx3lCfBJNM%E67*4t+qVlP2*&vq86(c%N|*1wW~FeSkpIMVCd`7pZ7|5O8x3s6tm*X z!w7btl>B#ef~8hNiy_bvX=4mKq3R>6!L@kqc5pFIxodTXKm?tTpzef#xMmemv9p)) zv4h5EFf-~=m!Ztcn}?9e>g|(>s$0@hK2LhFhnt#O84(^4bjlXU|AbEnCV?&>@K$ot zs+5>2hmx|%x0s}!`&|CMq`9kZY#D?|U6~6 zTf3r>2MrA!#Ugi?+}=etxFF6wrW7>w+DB0@dln^vYoj^zW4}mvh2Yb#enO1i3B@J- zcOvo!xY)f1$02uB0|t%H&t2hQef!$VPlu)LNPY?Jt{QdriMCjja2{ibD2z)>sYXu5Eh{d@pEUwCtH*n4z8USU!Z+mbsnnw0cphdcZAv z)J*UO*^=wNdAKDK6{yt8zk6?6eK6Yn#kRjaH5D}S=fAQ5CVG2glN&|!OL7&Uk;fD< zF!Plxz2a$dfL&l|@8+NEGIrAq1~^ue0Pee}rM~SWyjLSF5sFAHsM~k>PIJfhjK>+7 z>NBL%FltP_D}I4>;Uf&W@QU!>?)Li!(UD`VAmGeA|*7K4X%F$->IfRZd z&UYs6XA*QFtY%;-3b64Cuf`z4TYXEDgD9RthabBf9Bi6*7`=2+8+Oy^(bq?D$!4{BO6E`4R?A5U3t6 zu9s+AK%*Av^2o|vn~%}Oeza3k^eDk)z>KpF*T`d0*-FJv=M{{^ERPnmuBS4l=tX{Y zdhhM>7F$1`y?L&{cCJ!q6(MTqbOuB01>A!aQr201-mGh{I_E<{T0H4iOizrTjwBG` zlV*ppL0Z>FP!q%e&Rx9`0z?7XvHc>82c14jctj7MqL-Bux)ZssOk&mA$QRVXp0&&DoEe^ii>ndB ztD4{sjxTbG6gIh~`B$3Q?2Ug`6yu803+QG)23F3(IQ&Gi&riBEo!KEo1l%2>Y6$%_ z{)L|A=Fk{~_rdWma@u3qlnwQFc?@-<4c+9~mt)Hvw9Zm06r67~+9sbFZ>sxFB80za zm!JzAVneMIb=2V&Cw7||o0?+hpHJdF2v~QWr?@h?GPns|Q#U*XybrZXuMUhg-*86k zthyh&zoxx2gklSAF9{r=E!I&;4rSe>EN!!NE>ZD1O^F_bca_r;ysY{7wPMU z<64I$`IEin=y`sxN=K!dB+iB?8z<^>&f^}Gg#t=paP#K$tzW1wIpS`BdskUQS&(;d10`hH8A`2DyO#=|#c?D2HOSRO5*EMM?W zQkch;smb2Ka%Oep|KOhkCY&CN#je~G0CIlj1{tcAs81T>GIc&DISb+ePBuIhnA1p) zvZT?&^T2aYQ47s)EZT>}_9z;)qUYA3o-1A^y>DkZBTS>ID7h9yD6guls@yNpYI&~b z@ZBnYdhMpNStqSC%c`jcWUOtvRVc|XcmbW>((+QjMZWS2m9k}NDqZN=?3X=Nif2_E z3w(d;=4F9kK?{jdDbP|S@O7#r+84GhpmB4W`#>v7C_~nz_C!DCJGJKSl2?s}Ge*#@ z?NrsXBr71GJXD^MkRE0e%K#BIkT+F5&NrYpq_2tg)ou84r|ksYwsPmrfIih59+etY z@xkp`Ph%M$FMA^Rq9NEmbOWwF?5>^yl;Oa&TrPe@?Ky4qKEedq`~K~V|0>LAgq$yH z&J_Uxz+}j|jpN3vH2aCg8~zw0+%BBTlW)i+7j(_C9p*Ai$FK~VYh*ul?<_|5K9J8h zH!x;_@YQ^mPsT`3dL z9;}ypo*MzqNX6m#M&Xm%ECniY4}JmA*1FvCQ)&GDS+c*Nl3z7(I7pL(j4bO#>vAu- z{roKTNZrbStLu^=ZOzGH7k9Z-%rm6EE!TL-##RvNWJh$m>4q>hqB@r-B6A}1S)*NQ z+u{j20i< z{UPcua4RO9x$S!JUohH#K%<4xkZgP@d7nmQDHnzRKs@u~@!U&9)WTmaRVzqrJMQ;e z9z58z^>7P0SQ&fJ7qG5x+t02Ze&hPiq6gb<*!N8DjYA8S7a#r`K*~xHb|blW&*emR zZ(xygLA z)bVt%o)Pv48yisM()3@T7e76RwcQ2Q7r@`r*&Dys`^{x|&`)qK*Gjo?WRfAf;m={8 zR3v_fvuc6c>>O>+K|-l@Yu(TH;(r+ZdEtMtPi#_`QT6B_ppTbaQvtSSi4JEjd;FhB zu5M`f1w`M{)Fk40v~>kUclmZJt-Z9I5&WNXX+=e`+jA{|9Dr9TV`!zl4P$U{*x66Mn-tx;Jnn7OXJd2V zZ;5ITajKcvbt)h8{iG}G3&34|w(aOhoatiM7S79eA0Wd4oLFl%9XR1H^9dXM^_n6M zPV8SX>817MaWO|sIB(nk3I`c{fMUqWc;3aSH~A|oQKAIs%%T^?1CIZzdd&#|5S%^| zn(H`kG=F)DxBZfU;#vfT{()1@`b!0$TG9b{ap@(Gb^daP|8HN5&BT7bOY~1Ai!tWM zo&Tl_br&7pB41lh*7u4CNsNK^Cy2+fwcUPM!4E;wQC`dKcnw6lQh$EPZ;&> zWzIiSK>#!B2ZXI)tN~~*_tfwprg;0bUxeRFRfc(9d=sBF3bOy25#Yyj3HGzE$J-mz zzlfG*mcMc`-c$NZF7W$Gv9H{3Y?ny*M-`cyIcn$fexw zg`a^mZ-y^Cl#a1HE%ccAb9>bJv0U^|37u>@04JMz(@#HGHlURT+7EAKWK3aD?iVqu znqTI5#U?&|>S0;!v4rxyRLX)hxh29y!?vI<7E)oP?it_q8?pAO0O+n zqbKsXdym8BY8cOQ_zcZ!;Pca!5s`Fbx55{soujH3;fX8P)K1PoS4WO_4IdiqjXGQ3 zg3DFB0EFE8?$CB!w^{@2aHLxJH2$DZA@F>>Yn^Zc9iA592!j^o2Ajdyt(pdn z!-rll+`Jm`3~P3OnU;kAl2D73K5#MUVJL-{RF#yjw|98!#|Xct&U@&Ra8CDSIBLn~ z)jXQR`SMc!i5?r6Jojw=hDM21q=|ett zzHRe~r)y^(My{4M5(X8}&HEf#RBt7fw~og9(af6{{rEI9hx(Sg-0NG`Hiqf6-tH&U z4(LN^yu>|uy`fpNp7sfKwl*}PR=!aQ)$3^wlM z<5j#Up`6jCMOfRySoI7Sq_BPPc+9Z;jX2HmXRh@ll=r=ziC4*QR}f8Pof9R`*68&7 z)~gsdGDZ1?%6h2X3XHMzm;EF57NElSIXWh#BzdmZB1KcGJuooB__WLc zb-~7G8}-xz&&+-w<=OPNr3)vy?6yl=O!`*y2f-WIsZPZH_EtXEI}rK7BNhlsYv;Qe zvKJdARzX>|F&t8lBIL^qkv5LMYjne`HM}z!!)^(sHV6iFj94pPPjAB&Vtl=vMc#IX zZ2I_(tzXEJn07O>jS$10V08rT5I={+DbyG9E^{K;V&t^Xs6H_axb)6;d?)5f%MD4_ zn79H#$arA+UM_K@yj|Z$*5NmhYU)?5Tk(`!$i!M8CgjZ)HY|klFrAY(ozWNf=|rSw zFFEzV+JPOi(RV5vS_p?@D)##w0WdtX%Q>d5J0|%UZT~e-UTZ*qK!yZ=y$yGvgk<`0 z0|1k!C7x;CmlNe&VES&67fKJotPE?BD^u%_C~o8sJkR{8UlH1Q9;ACr>ek=41?++; z-KDc}e?&&oQDO^O^%Z3E43D`z+ESCMvzq|3oxL$K_-9+Awl+A+uhePlyF>^QTpR+G zm%7Ev=KpapiY-BD2%c20d?VJSXjIYTrcq&n<9C*nf)Gw5++dEW7dL=QdQ~XrwnD>r zcF3z}3`{?E@yvRdPeYjgbZ%8O;C73`EJbI^jtqaXT|iTM_M>xL)6+pP#NAV4^s-}G zh^_!>vbQ)GTUVWv{4s*QUn6)^%{Ib4cj@eLU`c1@lX*#}V4kQXD*T4r5+iFE)ZrRO zr$wHFvC}wfY4+S&hM;neI-n9fk1VysF`#J405H!TFm`rObA3gX<5l+)IG0P&3a?P- zNrRx0km$GeEw!SfIJP^2vE1y)Bt(=;ofD_@OD`*n*m3FwEp}uIg|mlA`}>sZ9@Z%1 zks)Wf)p^~FuQN}3Z?0!;R_3nQ$WOs8O6=>${L@`SI1zPrPE`v8nN(t$9#Y7mhL0u< zlxleim?w;-I`7(&TcCA?Q0{9!Y8T;1t}Hu-9Mh2ZxIR8p2)nDt1P*r#wQ{z%7B2Ak zd+z=zEmAeWO0#A=fgq)YMvxcJGwg*+^&4zpUOb%;F)L{{1YOnmCvN;W*@ydqUS_(7@HZ~ZeqUqwKMNY@wkWq z$ILkN(`&sp@e;ux-c!taC!yjgx9opEkR-mCrhh_d&BTKg5KLC9#HV~O{>=BvkiQ84Y&DZYVE7UD0o zixgMetl!hA6hX%qX(dG3;)!ZJ)#{p&mN{nbg&WZg>7EPneXNXXUjvJA_9~Kl+0!j$ zT+$mlUNvmgQP;597KPL4>rSXw9*mo4x0wmJytiHW?%&gVmII3jVO;LZ(<<_xn8#nX z(fLr>Dcz1tP1LXZ>?nhK?LO?jaF+7i9}`XW6c!TT5Sfg&4qMPVxX3BI7Zo&3w(U)1&E#h14`}AyUaveQSH7z z?n#9rj&-wlHP?BA4!;d@=sJkHuTu@``E_jAPOXeXCnWDU@l&peK>&F_9o@?Z7w^rC zH5Da$JT6xI^2gTKDXC^G9|w;I@eKZi|H>vX3s0xG~2vN8`xa$?N;^QeyJ7ut1gU|}s> zy;l_M*ZFo-AYi%C|~3=ai|$p zeGZ9Kkp!t+TRYLPz?HlsrO1t(8|s@@FZrT1D+dFfq@*RgA=SXe>wr&96A22U4^Ul5 z>3xOT$mr3WyQa5L64GAg)R0`xuD!&umY4FQ;OyaA2m-6C(OhO1;=JK2{ISz$q`V;^ zFO1&q5V~$+b!|?+s)#4CLu2UD#j-!XZg0GthY~?L7z>F+E4|lB4Aw<2xWe*@V15Xx z1+*UOi$SIz==k`jaXrau$Sw1xXYQyoB??{a>$=ssomUyvuK0D6V%Nn8=z@KczL={s zv%`QyFG@NXM4uFX3NTw=R?I>ynGUG=Ai)wRm{w9=TgDQKKJyFoC|G#%K+{4~vVnb7 z)vA-ta300mI9V{1yW`QojT}C0=(UfdcfL|(Xl3s_TfM`5Bb<-O zV3k1iL-jy&+-Todr@O(AcC0$57u%yGOOjI7+soV|MSM5n<( z)y?ISO1Lop$l^QbfeP`Lq#NL!UA9XNwzG8SwUaNj_SaeK>@hGbxu23S2&k@Mhe3f7 zw^6X$N})mQd)@bP!7t;!Sg$@otK@zdDmVUcP>QhLP_L=(=hkl`KIxpg!<<#JT^4Ff zc$DumG&q^rUT35=I(!ToaSfrm_n0yNNq(YYVY@<`i*`EsN%kMxM|1DktnQOlF%6ba zd`NBB{5ZnX`@qb>cw3(}AG_T=ND~+YdZ$}esCPrMDIz^5z5dU^Rjq8nvG~wxr^Gm| zQS+kwiu{DqJdrEPo)&R`uGPPiTa0ZOz+S6a2i zyJ`kSVXsFkJrntLHn*HCFjLKfB+@jho=^wR_08|iN8j~>56EuSId&comp7nb565fZ zYnkNFmJzji6uomsn>0oMi{F+$jtB2#_r%U)0F4CFXM8o`?hUIt5GK5)1B_6zS7YJH zJ#A;vMQ6UKceXcn%X0_qZ;URtDph&ze2=q_VvS8UYMqOuyD$R^yO-jhBK-=~jJ~o- zI2fOgEO&O6BoY(n8K3)$7`3T6OykWxY*ItA>%_k@W%Tm6f4rJs7-F>mL=naE;}-)7 zBzcuXXlvJ+NnC3W0&dprYUeW#U=o7wW1ZKT$Hia>;pPoijr4ZQ_BP6wiAk97{Vb*t zm6)ODqgc8k1`g|RV?5IiyiU6``Y!GdacXI~aRdnplF7CS6mqTUsHUh83d(^J{en{_ zwwQaJ7XBoC+5=p7`H0fWD88LkvbtII8d>f@C?Q4Tcbv8?!P#%P)FNTLeNKLts%t`| z6Wh64X7|1A)xl=sqKkot=RU9Hrtd*)A(%$nMZ@7Pkeye>p76ERSvAm9Z}&QPCc5e$ctcTviDM5V=HW;Tz~Wk%gtO4isnE90@Mb(dx*@wf`;(pS6s z(Ta|VR7RZ;dPLywu38NtZ;Oa{d2AiNH*HdF;cf0ytrfPpl|Oee)Z8FB3@2CX2wyL> zqGg|Dg_+Vp_yVg+z1}*0eqW;&c$LoD?h!=(nf+~sfph^Z7Y^gg&`)P;kB%`Z$4=G$>)PyYEEALksm#Yn$F_yWLBejr>r-%fZ7HrD-8GTX@5% z!h=5(HMIT#1o?*mnH2B+PHzxOMY4$)lkcWYev#468$@mmd* z2R~FwWb*=JE^x%K=no7PnW6(;gu%~Q^+~6Pia#*OI|)DrTden3er!AU^yc!fF(-c7 zc7%N=9Fx1rS7`pHu<2`fSxr`+&;gm6*$b#-ATBcZBm(<_U>xNGy5_;RmT07zSvWcCL$;Tp4l`1xg9t(@mCOeO3_Qwua+^s@mn*Wbi1B)Uptzjyz}g*h)jA2v0$1^MK# zRlTih;zP)V#s&NUwuC-8>ZG}MSnA%8(&k%Nw>eZ^Xwdq4S;H?crf^AUaj7IXrwS0? z@(&qLtC$?)IFmKS!l&e$HoKv@+#`8oaAY=gT*c+=yM$VsG!s;=y-7PR+|V$J@;8~`0V)$iani6 z?AklCT8&FWQGspQzyK?HDO`$wz#(=~I7rhO-~v!a-eyvc>WrW!T)sm43@G2~@!$S~ z7~M;?`ZX%~2KWDG_|yMKVX>drs=V(I@`WkrxBrl!pE9|Sx{jkWD6#l!#5Kuo%fbQs^j*$Jd_s;t!iJ3( z9bs!?XJ>ohveNa@h)Sts7Ci^K;4k59m9L^0JSm<>Nt` zmQhpiLssz4k8m?OqrKgwrkiY|DLIO*@~_v|%*~V^5BT`J7-HLAzVbH``zA>6!DO{t ziJ*`gmr0K9#JZ-#ymNtkHf1V3B*wB+fqy_bA`_z&jMBDLDZZm2Bs4k_CA~jI)8i!b zFLrz(`iN|QXr*l|g9a z8kJ0vO8qzXiv!QTI=dOt&&EfY$_zQ+y3w+(l^jL^m#s_lj0Tz>5VfpFd5mJq3cJWX>wYnR`PvN?qevi5wX(!7le)ss z&mQ`!x3~?7jPa^+&+>9+%jZZB{a7l-YYf_Ccl6SsCe9WPJ1MR(tt6 zx}wHD$H9O$dqA@6xldy9x_(sbF#{7le=b6vx)ZDV3W(SLrN%^W1R($o0svG4NKGG8 zA;Q9>cETJr&g68{?tu+T^E;3BX?R{GeEfLC!PxEiriljqy%-rOSELZ$IWiH{5l*Ly zZ*r4S5@^%^FZP#A=Rux+367^r>T4Cz8m!H;U>h(j^j^^vnQ}@2^L}VOpg&qQ?fbRR zPjFrpVPYT#A^XD|Ocf)BZ-l4sCu!|yWfn3KihR+JksT4w}Q2YEw zGwi<8VP5?yOPxo#neEyBszRfToQdJfwYT$2|M5Xt;RoUVNWK=)p0-+=b9}=$Fe}^B>Pxj}L8VhKzpQ_e1PcQU~%s zlnA6Px*Cy6ryM2oyCAl{*yqKgpUWlKb8vAztEOXq@xS?Qj*PfC#!<(C2}{hR>vnC% zHO@!QIKM*qKd!qvOmFSpDp(JoDzI!Z{_=ajdPx6xuIZ)*V`HaG*CqsM$SD)QUKEQYjb26%uxtooB;@lf0yLopniU)`~qK~=88gnpNEsIOTUTDPGfD35qGok z{I&zf{A^7azDul5Iio7Nsj7D=48KUmXoI7M0T_p2$GGc$^`>VqpF6x02?43x|)?pZ+WSeGnzm8A=#r$p}B#_V1u z6@O(Q0@L3j8*9quVsxs@=4U5vFE9C3WgQ)P=F>i_-Fb2(JwEP(z=+;1dfoDk*8|3? zS>?U3D7Hxb@n%p(-Ql3Pg^S$_$Rkdgk)(Ut7<`oM5mHNaL^de{+UC|I9%ud#>J)t2 zY}N1WSaG3WHD{nW&P!kp6Ob^DlA4N2fBn0wCC05g&6KuL?7Eftimeg!GWVmIl_gKK zn)7ukis^%*+fI}whq&k4BWTqZ_Yh`o%tH_AzF`DJG!s*mqya~eA0_pheqj2NYA;+( zJ{fG|HLMvmfQ-eXK=zXYxW{ej)A)yVgknOrV;fFBYr=1~x)*+A`#CJ4%vDU@+QQ|u zUAjbfHhbHN)pe>pPQ0rHHk1Qz`q?oJc+O``PB3-}pxVNbU|ulS z)_B;@l}DG)9G2KMzP`qu z9S4)K>3n@X6VW{#nEr?K>Lg2Kq1{02s7H<9S8Se0d+k~@uh+Xe>>oRm>*1xcjRI6n$LfVIx#UQK@Q}*XkL)hl&NJ$1f*KcVR2M zEK0Vz`1Z!rV$XgS5)ULmBJQQ)0YvmNF>7OGn=mRN@1vQ3!2<2rGPOdT3JPA!>fJ7( zUWJMUIp3Xywipg=lx)-U{mCA}Eq9Z84{}Ipn{e)P)J~_>kf`&~N7qNV<_*fyIa10S zfrsrRLSAzVB?I_ulN5 z=YWiY2BZVPa||^R`uQr-HD;k8@*|F4Qgn4rOH1oaf?qA{iBKT)%$(#*MCIp+i86mF7|*p;)Kc#uSk%Vk+Ts*VgxV zw*3W>wLT&f=t4KaV^uc?;|*b>AX4qBwu95ewQhfSRAtJxwa4$2KL|kkM~EBGdCpG* zo&wS2Q?=Qcz&6&EDndy`T48(Py?o&)DJiK3>dN7oW@r}7ci*s)wHk>LOjIjql7$hR z#r|@7!s)K8XB2!~;NA>I@9-GUY41NrG|FM! ztTcu<#`qBdG(xquQ`jFre&nem{4d-b7urYxLt7Sm9j4Gi9g=`L&bHcI_5tbH?<>A6 zrF}tE>*~_#*7x>uvJ~fm=3j&c1B3#b3-a(jUW;DiF;v0j>etegk9Mhf4=`Y&U1mf7 z=n)#cQ|onV+LiITuhE5?n1+!t6OwC$^w zE^D8JlCljMw$s=G!OzeA6eXsz`M`3L*Qvs%AhBDCrjaH4+8K5kLZQAq zi77G#XI&LiL4W)fg(={hVtkkvd>_!??rpGh<_ChR02|noGkEt-|DxJ?-DL`KvJ6jk z-kc;QAsH{Tt-C>(sFJ%QAF?t)=~1)LS7|s^s4BYcHa9j=6{D*_5L9jODXr6>)K0C~ z@#c0m&b08aP|-?8L6O_H+zVIWIEVIU_iS&8T?l%gZALNz1>gC*tGLu+-e(>0+>8Y6 zYHI+kDuE>QDCmeiun#AnEQqw3sI(qK0bCgY*p^b`k(sJ!hOP0OnFU-ljk9^pMxO70 zV}sCL%USibwXI&0wwi+k9&f>9dBG&t8&cg2@Yd{m0ub!ut=bc3u*^R>R45WxfkeG| zT;23xd%Na`q)=Uo-Peecv~SP>q#K1qVf2^%p1?u3l@CC3SDCo5E$Xdkl$5!11)&Uq)65_WZpyB)C*3KY?8P}BL=rJlsR$Emm$v56(Zg%XLWRTXYU{x}9~E8L_}krna|ro4>ZM^zbcqi0r@NTR zI4*wk?e7xLo&}E{JF+WQ%PJ$J=}uJR*Ypp9ub6lWsap=@FIEv!_UD}HtyhMu4q9o! zoof!O_T#GErd)<-a8vmuTBQ>@R>*KtsD7nc^EsC}0x&-rvZ{4f1jw=vE`LKdaj@EL zmynY0g@i;hKpZ+e9a!#J1}wjY#%H`K+o%P06_=V_)U zZ@H>spx0R=$-~50iI^dz2FS~$wdiAf`#r)7PuDRRjVeNGzOUBg{4~aVL-#Cs)D{@_ z$tYBJKrnPpS&a`@#h1A_*xGI~OtK~L=4&GiEAT|FE+NYIA2FSvp0H?MY8}or!C$KX z#QV$@{6fv%82AN1Y`%USR>Sou%@-G!0MwnUng>L4=e6POSVGDy`S{*4TYa%;?D?q+ zutF&l%ifD2q7ppvo?V?N9qInlcgU+O$LhEh*>`$6Z#%1=GagqBbkAN0mb&s$jLz>d zBblGwr?rn1gz!mp*jE+DR`^!a%7c_uV?f~fZEF+afmhN&){|KjohRe69wSi4to|yY z-|e9-O(?e&?GMt-9R?x;EoUeh)tN(Q?%QbYQyAsSTwmtMJrTTp8;vjG(PcGyhuIs7 zU$t6E2Bf20s~qDiou+csGVS;Aq9=0zpWP%4gt+Cts)mm_b7aX?Mf0=gVY~h=8_aVu z0e3JsI7z<(e!ZrmqT)^v8P~DH9D|&50I;3vVhhATAn+e-j)?&Sk1=f8D61hXrXis2 zY&Mu!)SS)>`_)>gV$^H6s|7BOn@ZG+xl9v=4;nbL z@sg|mQgiBSM12cf>?p8JfKyNYD}hboeKY-(c6fk%s>J2T^fzG9d3~y63E57(zW*2)#Bs+@kzpHF`H>tvj_Ho;_c^>Z31WeQ@wK zjAfg4Y4g6Cwi?xQ!E9G*oXgGq%c4j=Uev4daSxISs1tnsH`ToJ+=F8ZDjhe@)I>K8 zD+kZ36F4ZJOb;i`)P>w9?QgeLE8CcI+~BLy4y8F0OB|b<%PBZ&1!fLlj1= z%Iez&+b;E_Sh=ukheB{Is0XDvC121?yt>_x^e5%><{Jd7m9N|0DvFF^E2no$Jj9)` zwkwsL?Te|E)qB0ZuUDPeG9oTR#Yj(g(H(x>B2Qxd0kORg3s!iQ)z-6NBa|G$osSvc zr}SQ_-~G#3G4opX-{#hBxMt9R*^#i9U+wv7*aPid%CD^U)6Z3e%f_2J;SUz*OxIBO zB@VgIZEoI}I6vPV?o8i1g-@J09o5FC%0kcWV0+g~YNGUWLCg3{?m0(!%LG+R9=tN? z&;6#@lz3cXSO){R!sW$B2y;QEsvjB`)T(->{-t5_(qiXfYi05Fc<&ueOEn z`n$ReDE7s&P+mjmXdE8dZ{0FhDi6gi9V#UtPgHM$@(T?jP+yg9$ z72ffmLaY|^H?*_*KL(MC}qArQ%RO1+le0(%J5w;6JC)HICcDgFh zwdJYt&UX*NjAdPu#hz#1HPfkEsJ!;3-(p)+ea`qc(}^hv&olO$yKniNJ=w1sX^6c> zkaW?x#g+$09AOhjAPNBLLgP8(jJ|I4#5$Qy2A32g-o!-@-e;f_`T!z-nf|Lb5Mbxw zQIT~B>4oz@s-dZ#BQLS*4Vj9S&!w3zz(0G+znVy9#P{j`NqXwVL42ye_vFUOBs|N-CAb~2P&`9rhCC^jsI-_QZz*dXXsv@1Uf?a@#;~pGrx{ix zRX9q`qkCIFE}3P8$Wc8WsBBPZ4=1G0XmI|nV=}m98*_8`gw1VGhT3ZJg*I{w>WJ#6 z6S&L@!p=YyB?^s04mKElZ=WXrYrxVEU0rp?x}>5-Nh7=kn&b4by0Kc+9(_Da&q+*{ zQeArRav0$;bWv`xFn)18AU`4c=mTUWp}Q z8$n_d=~tgGQiT!$cokHG>^Q|BJJ|oqKtR}~ZH_Kj-?@rvy3artN{Gi_MnFC`^=e1O zq=8{h-2pc}J*`b$^&0CsOF+-;18JIufY03{Stv+BTo9!UX}=Zu30I@^?&^Z$t;{pPN);yUXr* zQ)pM6QQF2bpQ%ZOmdPx!={`_!o}ld219KU(g@MI4V!7+IzjmA1*3d7Z`J@=>Qc~mj z_%c6`*v4~T;$N*D;lTQ){x6&!m^)uyyF(k@U;MhsSMymB&|T?1fM=Jg0p(~GFzBdQ z%qhnw*?PE?>hpDLJb8N8#q8X{;ZT2UZyR^BX~P5La?}m`j23yeba3sW#OPZq)oxiq zoa^zApt(9v5e5OKy)03I6I6AQALk1`f*&tntc>3i=Xo@3N$~;@T(YY2mMO)(>`wS` zYzmgJkw-q=1cuRcEWuoqqU{EyrA9vX#t-Cvtq)+0_(N?ptDyxtd7-(CX$i?=a7T^m z^XhU{4wqpUNhq&C$wYN}8VXdKV^dbqemoT^NT@yOb*M|<9KCdNh*jAfU zUn(syP<98pNfzb+JRe+>gQ2yleMDUkhl|Y5icxPRFx0A0)f8bJ1Ra}CR znd;PCVr~XYwKRpgqX|ck&en4FarwO+X6hpxJbcp+{gTG2T+hFRn;l%!pR6-)3VpWw z&{n4E8l~h%USRB_Fcj*ei|@Oo8dK365c#9g<- zElLT6##ck}5CvmbGU$K$%zB@-j-I-X<&E`*)j_Pce2t=w${$l1f{#e?D0d8Hn4ljM z5@BSw(yhb1 z{oYb@z#j_KZ3i#c(5=2ahBwNeZDQ5tbC2HxStPc73xPCAmSBv5mU&jLt3&b4GO|k@ zBU#T7iAD7s2OppPe{>sYs|Td4ZTGA<0HvUu;$pkIw>FNo%-Mc_xKX!hJ+UzY5FLRo z0DBxzKh1Qv&U24^-tRPW;;J#B(m({1wk*a0u*keUK)3CCP@4`zm-z0%8$74O^yNB_ zgD;z*g6Y_catamfhwGc)Vn}&s>h~~jX&Y-Hu48>*OW(3BtL34GEgi=^!Bg)M@eCTg9G@E5VbTTH8nG6q#Wu6{2S7OleN$mc@&NQgwb-8GT zv&fR!Eg;XxqdC~C>*^ZSP%zcwRDkOY(SJMIj?f+X^VNl4x{h&~zHw>h#J0kQ=Bod# z2eh^Fb=mIafZbbI=?tJdN_<#1c1u2mn#@>7%+%ZNnR6(?ciw|zQ%|_@)oDH6N1P19 zI60O#7g@#>390H#-mf?+`_q(1)-d=KH`r!MJ}bwQ2y$9EY1>VX;#`qDy}LE&OXbr5 z)67z1)b^=U$P7^$i92>Nl^|4|Xu4=YL zW|_}6v$P{u5Ta#3y76C%576|M2XG%Mr^Y0OZGo~rP>-+JXv@oRHfs%`JG#KLv%*gd z4;@*oH;MO_bU&()n->Xi+nO<*8h6AJ$h|F=(z5YP2sf2_LUz3h? z+dyfU0qujO^&}v@r1^YzA|B3lmhK?-4PNf&-b`gjYw>D2c53kNX{ws3K(0@SmRie` zOqX5CF#pS>bcJ8&SfkD>eF^-Nabt0=+7&jy1Afa>}J z^_oz=`V+0)XqkD}NjvA;@e$P%m*K8`u)&1b!a!JP2<3f)d*GlyYa~L@2VAj5 zPn+s9SL@MBk>=~Ar}Qc7iJk{lyr)L1)RnGJg3|nhsd=>dRO9~i3h_d7uOh0Rw~ee- za`a}X9`&ba=c`NV6e`gO3UjKPJ&!AGTxef_EKnYuM;I-o^T80q&1wnw(%k`Y(RbGma}a%-x}q2$hX8TeIU+jQpEU;wsQ`~j z>u4!q!S7wG1pz`~%C-ih9SE(hv9dk>1=Q+=n69`|VDuPJT1sRexu>(&zPNHc-_b}r zgRjsrVi-?NJ^k7&hg)1B>j}L~Q|t!GB6mAR9w-nl)-t)dr3?-DEJiMbY+Z!8dOkj= zw%52(1q5;8+wIYDsi!2!<6`AV9mo)@z-P#H%Esa_dr`5`9;CMqEo<&ohynqrKD%o2 zPK}FdcSOY=fR{6shPiPk7yOo$EgH2dp>taAGXnCOB~C^5^As5v3(5hoR=7^*^Y5Bl znGP{wnMU@~pfCvUzST#doop}rL}m(x#Z-iTyxjA2xiCp@{dgwB zx3WjP@n`~2P|Jh!_%hqsoFq(D5$WZ4$-RS5J)Z+Q4V}4}4o{L;mq<8GFPkd-8_a^TRW*!9^%__#tpjR! zTl-mcEkW(1rFvd!wMw}+@Pfpsm=B?3l(9zQOtw5NMr#RQ#mYei(1>xO@65Gh`(eK{t{^cQoZOqh(^?4C4KOO zS&WZhH-eYL_Da|7u&aEC#{kA;W)p-jLKnberg9#J2kwWj^! z!?#Xk2jJi_V7^~M8iUvIK7KimCOu0TXD9pG_eVxkStC8j)_l7@k~+qymUn~FnMoU$ z3|e_LM?>^l@MqTbnlRXfgjKz(3;-}LnnH6Q^xdV~d3VQJ-_YqMuiNbpE%FGTr3y*t z_B?$}u4u=NcPiXA(e_yPw$V`Vvd0C9F-g(BTg8 zFO(81eh4Epx3Y^Q6TH4wlle&AKU{!IUn*c6ayiI9V6Rx-uG}0TBlaZA|FHtjQTR6L zH7KVU`Ckq_^Vr>KeNZbY1E@jw?Q=O}!dddp8JNcat(@^Xwar9g|s}4oX_enD0yC~sdxoFb6 z475avPs2`pv76_(f(3UNt7GaWSz}H%d4NADC;c5cLDt{zejoi7A8Yj?XzEsIiS0VK z?BE^Yo8dhAR>4u9UR>7jl9HVH_gYkmX0LNl9Ikl z^aSjzb%>uKRYYXe6Z9C<;I%BNMJW0>Yg>q~tHdY-Vz$AwDk732hs9#qCJf#%ID&lp z-Jk5o%?K@3fi9O7h$H7EG0ff__+oCd=BjDpiDRvvZpn#g&FSv!E|qK*@hC6Xj@2vY zz$=5$K~wR3F*aTcAZV6lNgZR^#1e zuQsK}(O;P#WXYX644RLn#?yD3rw3+Tj^Q#u zf8}}tgIvqmk{Z?jl)|d3&)hNQ^pzvWov-xnQsGEa?UY)OOik)R?v0_`Y6W5bc$|Er z+R|PB1GL@SPN8p|$KxwpqoC~Sm8hc|aiZs4?(B{d5wSgi{~A*|XKra3XO+cjVLfA|czc{8R<8j~tQu{{VqfcVZPK4t= zRd}ohiqFDxO|H(md*PJvRC^#BbF!0qc_N zcAj4zFIRTqP)u*j?Q7I#kFss&$zE|A*GDN@TrIszl^O>Uh}n`gOa^h9j$OSFDL>zT zD2hlhWF08rq2>n(98eMB*Sr(f5e2s)-3;KXS+^tyRI7bw>)VzQUHs^*EGB;Qq4C9- zP|ei6It`Cc>hn4;tf69yU7K%Pq(L^e6t;s-WHuB+@i#-+w9;!%ei%9X=8;oWwy}CG zoGOH>I)y$}lS=o0B_Uu@PV{=%kKxxaTO|`qOF8#i$YeO$Q3^W$dBk8L&i;VKV-i#= zOVMCRQPHqTCvGZ$nM-T!X_17a=%oq`0Pb^hI3kWTAxOSVTNpOxj@iv+H77j#ZeugI@LVg zvQQoqclR$npx3<-(woLmgLqJMrZ1fh9Yd|1#QYe&SF^&i%m&@`iq)#ekM1G59-y;Y z-wS%=R$qM)p;I#JIyo98e(cRZKT%|ff9P|hZ-_hH8-U}mqVE!;ldm8cq&AJWij9}I zivq7D9S*=dS_$RO{YBy)teLo*TJkREBUx-)Sp@4?;pd5Z4VHh63;uGKm6g?ZF1bkV zC=%NS1x-VmT>5&~KXo0<8)_VMPBtvBiD%h8C=t(<_ALV0YEW0Q5_*G)3kR^gct{^R zg)hvd=}Rj$Da6E~h@IW-6!X3)nYON4f5d;Q5qXqJed#og8$l~^!{yJvrL)wxkBT66 zJ7F3%jGBpjzE%$Ttvdw}GftlX-UFH4ad4E{ZzC%rHR#>g zh$8sdc9#)gm>yq;;-?mT?2nQonQDdY#o&c8j5qEoOhz6s6Jj&G5)S54L@*U(npq$m1h-usIj|2n6%tSpp79;Sr*-mC`V z=~#?O9L)}zR)bp1_m?z$zJ~KWJ$&PW+z^B-BjaZDd9%TJa z%pa!73DqZ41Rm&C0}XG(UN8dh(N8MtfW88yJA1Y?h*{J5n|_s52nJo}*~fV6m0|0< z>!)RYD+>iF$7KRPmA(?>jJw7!c+n(|NeZMa-{3lBQI;MOxn)5cGn7}!9b095I=PSJ znyhx;?DYrST|0I&D?6_u3#Y8@?U6Ps0o;;rcGIrLJz0qXJEfOK zPx2By3i-<*zP1>xc48UZTE*vRWO;yb@Tu~i$f?g-0pnK8RXTw$6m{TLaUf^RIzqTi z_Egd~qpJsO7bo%^(tVhM+&q;odJG0t`k*uf*^&LwZ*^NLYm-M(s#0AWS&utY+saaV zE35~sYvqLRdHGX3zqN)KTiD0YmpKXv4_D7pSmlMsblx7YLpghgedH>0)&LhFRLx7$!?| zf5>yY%%mMin8Ef*xc%rFupqB+4^0CMJ1Uwkc^hlIR7L1_Y+q}j_U*NIj^QC}$Y<)VAemF+{jiC8g;HBx7EZwVB<5!W_(L1DM_-zBnnKsqvBeD$-FR0uU7FMaFug6y76hUOquyosd+Xt^EmR9GM$|okieH-cP z15VXGj5N8gq%CuZn%Q4U`uGC?E7#q>{v)>24D6gbsXXZ}4XuCw6vah@2CbJDu{+P6s>og$i z{iLuJl7=yr4yfNHM8meH2YDQ&2!k3)A7W6Qv$1a@min&OirR~j#MJN4BP!m8TnWXZ zNIG37pXqYhFfR_bw+nIX>hqsH>}v*^lHTwXhJnm1OM1y$_20hxOiz+fwDQu3TTGAg z6Mt4Q+UaPXsj_pIa=!O)-hzSx|2`ds8azGNjFP^n?4+yy^4Sgj8@6jx#iP$l<+R@& zpTC7g9V>4d$+x3NX5G_z9Sgzzy<)Q6=ZP5j_kPVw@3otro;DlFYt?EiLT+z8KvH_Z z3);lXCHkyakJ}h|f!R!~=@2XgVpqi;;0iP8WmgS-ar`}Yh|&9DiOYy(vS(W4&W*Sx zx-f}zEX#}KEAN*Pp`b@aLJ%{o;T5mF%64p06q;4=-w!DGMW;c}qlj+q63f7r%_WvV zHn8a3bwr!;gZ-}3msWyh#`rttvts)w(?7nX`~T%*^_si8!}6gOrx^titt7`U`@`WU z!(k+PQqEibkJqI1%TF4#Fp`N!3z2!3q(pI9IsvCAkgd!ux46S$eMU*#dTWp5$g`kM zy7v;5POdKFuJNmgF)wbE(TkV>s2L=1FGB8P11|S3XYmI}z$6vWyN#4rRK$gB-TA(e z>+Ut}hlP*fO7>~9RRYUlBxFxFb)}1lh~T#%za~XmrC!W4bC4*VS~s5Nl=C^oD$Z_l z(#wsj;Fn?_CoQ^fJ($l#HVDm!Cg;_<8SOl-vNo*4&pY};F)LZ@ji<8gEb|Cu4up{X z0E-L7J>r17BW5dEiVoFs4%?#8W}0Y{{=>S0#O2s%rSxD1n#WHAPxi`9*B`V>{-Nwz zcTsV5sp$G1YL9LG8p^~joHZ@lbuShKucI>YW;>;42Ta@x0_k~I3bHPIKeQ3#a6<3abAuY?E% zkhK%Plq10y=b4#M*pQKQ!j%eGK1op!SyBHsiJaqr<=0{ExqaaC_~~KmmivK$P$dt{ zG8oqxN!vKSuYr6_xJ~fPvW%lV#f}o{@goRr0$pY0L>=vnukW^Ek?YFfN)^)g6bnY4 zP)t0P`o11KS!d54uCI}Vr;`|=!y?+33wEA&Z@n$!JpF7-qbq?M!Kh2s| zkj)5JvU{TXsx$vNSUOU5dLXsuJkj{2-*>qdaK#7mnInE-3yGo_b0my_>m($4fHmE} z3%lab*C(zR31-3ei@Z`!+`Nm}k+er&4?+k>tNk9+41{A_U*8knt&_DBTBFt4W8NM{ zy|T}b5Q>{4H_tYxmctM}((x2bC%fkOr zr$31J^nWiqpUSEE^?RjXy;7IVKiA+A(HFblZY3h~V6L%C%$bp?x-QERSe_mGp)~8l!kplYrF4XsQ z3f1gqbZb1oTCPeP(zjkK{r7($dM*FoyC-^id zp{mlW4?1-qU2Ja|Xsjh%iQnG2Y|_ZIb@{JveqaF}H-3PnCpoIb&i_d)0Mr2R#MdVl zLXe5?(t9W+;J-T*UO2IpY<7;*eFJ8o(rv2f@xE;r88>uDd5EWAinp3gq-~yy1-7=- zTR%tZg-X@G1?&ey;&nFd)8_$MjNUe$3*>Pg`Hs_X#Zai9g<_V|n)!rbc}3`*V(h@3@6SV|9_(J0 zuHw7wcW04yH|*Ch5Pf-g20~2jqfXYZH~)dUZ(Z?psN)3T=om-c9ChR$`myHgBz5Qk zs@e3)%tED2#=Pvf%YW~qypAEx!L9%ZLTY-4%1RjG5`z2~!5{TBMg32d)xv%-%d4Cj8&theo8{EG4A#wTeBLx!z zcg}AC7X~>#AFFmkn*5Obwio|C#JVQpWct@CTtsIlCI;GF*QFt*w&?3n4lQ9A3y$xL z1$Vo(8@!v?T^mS`@UNQ_b}W^v?5F;^Ct1_1cgWMgnL!`mV0``j<4zGY{o{%3+(LO} zMKTE*S&_2E1Q+rvR*^r)IDY9ryC4MvEFP$B!8*c@Y=%=mjoK^m|%cRefkK-4}!*%|rU5mRWHNcOj>PI~JTRA=nWmuwn zm2Csb7SBcy0w2Xkzb)~=#^{=1$B9K*f{UX`q&#$~Dh5xov|LEESowg+PTAhmW#LJ;~i->>j>QU>NN%|R( z{qtM#oZDu%rtJ7< zo*gRBw00FoR+w$`R$*|r{;IB#zl6>=m^t{BTAOo}fPX(HvcImly{=kT?~|l^-LZnX z;Sl~3y7A{;iS%gyOnp89lpN0m&KD8y$)aD42%Q52!) zr4|a+&XHF5EWO97+pi_xOqmrTvLG|WZ?4s;g2Mm0aperZJ;*<1?Pc0vxofRr1v;Gi zS$Rmio_lWz&-jhFf(WhB$*b-}&ZOc*V|f|l+*zIcl2bdb8CyZ&We6vJ{+$Wf%nx+& z+VV=7`z&>Ra9(EcZpcCfdis};^sfBZll*Ao`)jFp6BP$Fx?G2->Lbo_UNg~!Qa^>Q zIlTkgZ|<{KB0gy>bq9h~6**B_H_?kqIOAL`0#C}mXWxW|JF~zrzt*f)b~K0P<8L+= zRcORtvitCletmBEZaIiCO!jK*faay;ROwOmSoah|lNVKx{&(Kj_}8=WT}UpL3#^w_ zuE}Z4S_|99=oA|VGUWl|PIQfGJmd>(zi${W&0&+T$v1`@WTUuIJw2VB9F2x^>vIpX zM~GPhVGr^NoEYlP+K&-7)X8^wbD{)jIe;1Xlw~fvp1*eVPo(2YJYY1S4JyTXtUIK5 z!M^mr+T{k!3J;q8&Ha8s=Vj)hW@)2zSwppz#nK-ZCB30?7VM?Z)`8t%5BGm$6-Xk|@T?IH<8ZxTyin6k%PyO@kdiDMe!W@jpZC9b_vb>8{a@RH9zIS5@ zaidwt0W&z@lVL$Hst}$Y@1>T8yqScTI?Pz<#E2$Xb(d77B&USP`Ns?jfVb0FC%gPP zWbk`GpaF5Aa*c*i@C)WLkaJq)usl{a@>=p-&SqJ*6AtSfWExJG9 zQ@_lu_F2*DFDq(l!$Un8gyIDygJE}6S2|9oOWHZB{Jfm*RGoMl>6*b-qWr}7v_H#% z$6=i@sPW~s@ngRi*Qb7%`w$fEI)<8_!nrJ@07&Q<_`z^F^4+j6H+OyHR+uYF%5~wB zuqOs-7cWF*yX`v^x(k~*$P)W2Ptm)r=;WpK$&&?jGH3HadHYc;E5slLu>M|?uNzH!W{)G}DTVm6l#Odh^}AyWDxi-R-xg%PBUJxR*C5k9=3T+B(1>*J|W=P-CP)5Gde zA-=ND&dXDK?zV@Tt`xTbZvM4>zx-ZNr`^3#il@ zXI(5uWfyV>B~9if_ws73j6L%)gKhy;biKD>hpLO+YtE2;ykpe(OL{|kyHS>qG1YXC zKv4x04Y;mm6P-dlAa?fkg^$pw!V=JR^xQfJ;+eNk1JHvvRRd5%YF%-Qc|F6O&>4p= zef?aU(Io=3U-a(H}y1A4vOO7lTI$hD5J%LCCD)^C|rDnwhiCV5e6DY|gdYdF*-hhCNN zkd$O9;bWg@88b)!*u?n8-|}9pAMj5w^4F5Q%34MN=~2!sVW@dST2*p7VgxVDbY%5M6H{WA@Nd6$T>w`pw4Ihem?&>e)u zFC!8_m;eVT%Urw7y8<5YzB8fp9`EzInc6jm$a3d-M{)Pf*oR)LgoeZM80qOFH?@yvPEdZgW9&Rh#KF6UErwU1X3kyT4+dVr4Uh#nvz3m|_kCKLP?Pmkc5m|| z(Dxg5IYACLaY>SNo>nm%0dZ2@$Hs@TMcO?+rt=Xa?69$#R`H}6Z)}u9k;mpvpIi#| zcpcLN-Cvp6D(iug6_?)Tv+BK**QBkjjW5VQ#xfp`Wq|^ePan6R&a)oq^IilAP%J(` z3I4h^*F*n_9lpN^TZ(ZJ`a|TRuKv9;WaYY{!MrzU26T7MTgd>XqN2T6(4kW}S&cB# z)VzBT5lW9mng$?+Ax~pmnzBGoSnhg7t$&ES8udW++j_WU@Xj`dg;sXr!crX8TVfvM zJdfjdCIx`K3_OtH{?r(REYz&F#Xg@PG|iGwnQ{?o)^a~V`KrhIMMJfro)7tJ2mq7M zyqa15X`F?bYx@gUnnzKkuE$MR%6j+RX~_2z592MPO4HT?$iY-lkA(OSq+{6fusw>i z2n)@_ED;X+Gx(*YU`IpKTdr%k%{oTcjq$B65uJiq9w);($F1(ES+&yUcwpWC7RcwO zSF8fGg-?gW&%0>E_OpmoGBy>KckmZo z@GGwaa-h$j^at6Rdu$)8yyt=$g?xsZIpLTt-jVviAe#MDc^@@SXyE*4Kk&2A%q;Bc2<+I;i-9x{aNkfr^TXlao{XH*^COKU@Tsay(6Q zqWDb4AZgJ)sO!EIf&MmBN>^$A(pOqHb;3Bijl!VZxtGBFOz!IM%i;|OnBcpk-r~Kz|dm^hd7%Wv8g7zmav*>C66mxd7r<$(=7Bvr7 z2jS6YR&*JY=ZHhLK`BQ@FUSGW*SyuEFOmej@5zpwre=l`TauvV=Ib{tlFQS1OIazT z6~|VS%LhwJ8PLI?Q_C|JRZ0SD#VbBc>(>N%U9 z3JiFp`z0nbIn@P+polXtjop=)MaiPcenw)7mmD*oTZ}9-_~hP@xb|axZgI}c)Rr^q zneYpJGJ4@%JQ)0Z+}6OO{H6Mz;vc zAXb|1QW|`En7kX@B=v&q@%1v&U+UwdY3)Ur&|~5u=Pk?+*mT(^IO^0`+=qWpk#I6= z^}n9gd2cN4oIYicQ57?&J7u(>#`pd*-0%;hVW!RDNXe5|b0X<%aGXuk9>06u=W4rn z<6yQt!WlICk@H%Vw$y9d7 z*NCw)0kc4x*q6@)`jY|7sQI#G`H$}`Yf!X8mA;3a;oW2g=-mj=OlZR1BCTPdzE82U z!$DWa^r;(cB!$g~Z#AUnA_?$XwXN`JpFr$}NWJP73{2qj!K{q>RBg#q)^fx-o@Z!V zr}Bn>xIyz+OzBt1w#pI=V zyzQ)L>tv+n=}Z%O8ZO6B>pvT5^h*Db+HI3}8}OFNq8vw=4=&AsIEM=l-J3tELhDOC zyC*sp>yH-Ri$L~It33$DJ_U{Cx3LT1snT-Z{3c&xSY$uk5;j3opTl9HgrozDO;-$O z18>`XmfLUkJPs$NI*alBZfqlD9{T#9HbLM5`xiA$D8tTDnT1VkMOvr|p@qBPG{jPPf11@iy{h90Xo6 z9LY#_D>Hgv?TJ+V>?`th#@zmWit=_-R~?+exq}PSUG&k4ajy0BT3T2~;x#Xrtl3>~ zUsavC{F^^g=t5<>X|6*6^+B zdRxwRw~nH-8)0wsho{-uO{JK1aDGNX?_j|twK@8UMY#DDePzJnDT<4XBxL^@n$s?f zd650?gZvzqpE7+dEDI!)<=JxXdz!}=hR8LTTv!k_!g13XJ9J0$4%%;IW8Lx`byMYJ z$M3ijx3q$#1O>p?pSeUC9Z@<|DUkWE6JyJQ$VTJoif3CLA@=%$?E7|KnAT)WlcAd- z{un8*o-RsS;UT?nppifdW4L`C59c=9zUGSlh@2MiR0tF zO5FX9aXOinQ+%yVlDCa>?#trn7y97yUUOFhzeu@Hq>x4}4WTem>i+8S9UBI$J(;Ar zBwjFOjd!~)%99Pw&-h3#s6KyCmc-le=bKGL&1|O~JW-z1*8(62+>hTZ{fT~k3O%dd zc5NZDR2yaieyFvxb%bp zwoDb!vEV2Eb*8@pS&;vcDtn;`Uv4)AD$bI7?Sr=PmOKwRKa%Z4k zcbIlq>CpJ(E4j2VekR0L4p#E=$Zs~iF;U2~cqX2aCCpBo4ZQVgF1tKiyL-L2IM;$y zA>|4n!NXtCmgc*9S%_<7$7w8TK&x&2i}3}0oIUZi~{;DCue-~c%wm+J4-t3na>eN|;pV(T6Ry702epdn&4M$ni@%`CA8B&+qgTG!UyijTi6ov$a3pW4EX^`w#JvblWn~ z!SnHy(O0oG`85izS>L6tn~54aU#E~U-uPX_sHywW6{D)O%&`&ynR$SyWj~Z;8ZzY5N zJ(1_Ew33!ZunUH8uEbZmGxyVf(O^B%XHn_^#B5U@0vNwd*y@Ug<90{fNaqcQu#iO| zl);C6RI_k2lpZL3DSJQ8@8PxVe+jR5*yo#5L)cJvthO ze!QuUswpo{mDRficpqm8Wa42+ZKa&{W?O++_)V|5UhLkpo@!I9wXs7L^Hlm1gFFrj z@60vAC}yJF5g9A!H28gCfb3z>wFq5DeaWFI_tW^5nPgWmlvCFI^hflU0ZE4u;)dNJ z^%gJgSiVb{Jx^1tmRLz~ydsT2=}qx3m_Y_*n=$gk1-t5NR1DTy&p+Pc9${zFJezP&%T><{;`lG6NJ_hUM(f|#42GlfSw-L?1TGQHHGljpEr=)8qV zPqPha?D9D$azY~L+{JV6)~*EJSfeIC7wwiFbmjZv^Wg(jZ4K8ue}P}5nb&e>MM%B^ zxy9s+C2Gy3MSb}_RObx~FJi`g_EI^j;c9Og+sp!=qpqXdG1Igq(wrMkH9@gKNtdB! zvo%iQOWkks0*(>+VFe0ASZf1xZ6(vwfF~s?X6vY-?BO62= z-T5h~Z!rK9O7>Bcq*xm$PlAsJt(SK2?fH_eW#SWW5y-j`Fs`RYkG`nJcW3hc$o-jX zMq;LWSGJUwNbSa!%AYjaze&IchfBM|PO&O&BK5&GnKkC?4~1;J<9H!v=O63+jCWi^ zg2P9i{fe58UX|%Ts{osOaagMyO_$>Gyh%?RjW-ttSr*LIEXlT>e{B~uy?f$m#s&n$ z3FHicbX4fCsGB=RIZUM3rlop?)!44M6zcWq5AQ^2c291*9w=D(Sa)>WrmnqO3#27x zXtaF45p&dEllrF~ORn7FMRD4blBQp;pZk$|R=5W$*)Fpw#c~psj@bMU&$O)&xZ#tGW#`XjBjnER>zoW;CMkhY z_w)01;z5Ry-E%xo6F-Q$KlCi>c${NL*t~SWlii-SrNzFulp@;DgVjTA(i-!$v2Ub@ z*>$LXlw&B1xzui;;Zh%Bld*0VQ|tWLVU$Ji?3Oat3Q=*@(3v%Sg)q>j2p(4@g6I~x z5fAMv-AP9rZ)^%Wx;(#HV|o6un99G@?`MLhNEqxTQPRHWb9IRJZ8MVKRci-#L#=?Q z{R~~^(N$@zx=JS1W87xCebB2B2Mn+DsJwbBfA|$K_YWNvBQ0k^*d@|^9A`5hyL2+R zWpp!^FnldbY8Z>!SDl?V1$sstjHOviWewo@P%}mX`)?0&8>mV3o-o8+5ox`Ei2@6x z`Q9iq>#FsJnDcvSf}EpYuDiUQN7OLHO_P;KB1KF=0?0qd(LaOkCkH6I`(O6|w2LxW z`TQJe7OhB`JGJ7GUYIyE$fkMEbZh7?Yd~4UBa89}ph>)5^@J{RhBy+h4&Qpg8|67O z^vtE*waX9dBtI_tU~NDX4zzhRzXFwhdQN&!BI%u^uZw#!K@WZEA}%`5wEPh$f4u)! zbi=XA&@07)DkfA}A_WlWk4I61r}d{*8wph1iARS0_p>G+T3h6Ev8%Xq>N$ttbC`g4 zvY}bqOio8(yqe5Zh;p&V&*)woN$f%t!?tbd2gCvW#<$y7@!@0&zFBO5w7 zY;l9&*#?>!L_1!=t~k8sZxAtIe@Z_25^iTcN=iHcFag>RJ%T05fl4Sf#E978u-M^M z95xQRD-orm7Bx{Zi7C0Hu-hY1o#MQ9T=I?rTeGvICE@;~?qMdOg+E4Oq4`pYi{Nd)`s)qh>;D*QqsIy%)ePE(W8bF#^1H z8=Jie4;V~0a$_0dpdr3fhc4K67XTJu=_}4zn@-}{>9A$St`Sc-*W|gfaInL=xD10H z5Y`dn6G1KRuah|A=wl5uHz2b%-ib3);^dUMhuIXQW0OiTef|1s$w%^ySq;N%=k0k_ zu=0{CW{e2{06Bo7h>Sl<1Xao{#+$5iZ!l_*ioalN?DolY54rO!@HcMsKwj4-bWugD z;dxTz(*iExn9acy)i%oAsX%~!o@$^r)K8!lxpn|$Uq{kI7IF+6qX^`bnjc-n9)2}V z==!rxE7FA2G3cQcZJRf!p8JFdCp2oQQGCEAzUCECKx`;{YDXRYLtmZK7&d(GqdJRJ z6hK1h`PG#4=)teFt2C-oauEzLaAuctTrmac&y`l+O%Fa)=|dU5m-aw5$lp zuyG*YZGBovk~(t^70In|CIMn2wW0cc)Vl80IjY zfv8ku6U(RL#rb?E4+Mva@gf{goF@F#upvl*(f@t(fxk|w9!{T&gs{f)|HhvI%tXm- zZ~G?llh|69%%1+`{=&b4*%f3V#l~x(8;Cn++LPI2ynf})A6TcQ44S0_AOJwh8vv(}fZQ97{9j?f6xB{Iou<$O)q5zTMY zbupzbBk|NJgc&B5z^&bb@#V^iaqCt#Xu?Lfei9xu<)`Xp&>c;gy#S1j?}Uwxg`<*| zw9Z;Ve!Y2{9sT~1 z_QQCCi1h@95_Un^cuLNWFa$quu!eWfM%5MZVpj3Vu`&Cyy0m6R@f?}AAOV->$4Yvv zp3Mw?FP{BX#~TQ0*IApG-cHOtZbGd)gPJC(=dud;?6MhkS5>Q+NF?l4aYR~Ek(zOY zAzQ+fT14L7ea$U}HZf|SM;acf>NEw~-?VZ}gyQqObej_JXvu}!Tk4?)hM@-=IHPX| zX8vxwX*i%(Bp_4s0FI-i+8EHyNx2Pd;b#(Ee*Mh*90RQau`<9z!hNNEt(TZhk)_g| zu|*EL?LWT0RIPH;U=RBsVHL@+7!Mie7e6!T5ezF%_G%#5N@+{EHV0HGo94%N@vtZN7d+i|lF-!0weJj7XQ!uR5fJ_6{1zF3LrUnsE04D%jgQQ~g2#hOUnlJLi{e$R=Gt;g z-PbgSIP?+4g+;0rfcYo*RQiA`g}$;{K@wG z1;{02L)Oyio!B(8>oJ^3j+2s+uaqU*u! zV;QM#E62;athnzSnRhI@ukL*q>J;iAeW&2ue!wYogGGv~nlF$Am_&K@`K0@=YRflQif=WdrxVG^lS*w{zbW!NCE58L>y4<9*jqp#ab5yP@__DWN^K z)b=c=zuoNeV8V*p+#8Rc@@=*^lHOx$TTP zQ5ZogaCKA2j|vA{zTiuF)h=53m7y+dOrAk*2f*>GLL+`yvFQF(32naFsj!5s)J5hS?5IWLp5~-o{ zEx^5XKhOJq*ZFnM`JI)u#+;+hF~&V6%5ZB(d%|PdvqEI6y-7}FbjHuqV<#eQ0)AkP z13=3l5-Kjkv7rlu6c%G8hKRu8nN<)a``V-LDz0+Tnvek@V>vWq($muf`s=~7mP!D| zVNWRL8#gX`yx;KByB8-r{zfWLTQ>!>6vJfxzt2Yzq24pdhe;Ozmfk#xIWzsG08J$S3>{>fTAJvUP0H5Ke!9)I zKo^CSclT`1F1GVjtFgiaQE@60gE%mw))cuK`2%RYN&W7-qBh>(5QsRmp`n4Hp-Ed( z>iIL-=hetlRl{c)YR58x$$RUaDx4zrJDv^o_7tb$+P(an zxZY}CbHilcC})1A)!@@-qpyNp+-Ue!0h+QiC{+;uGy-&GCp-ZDD$nZ z^GU2j(Q(*M%ZWfh$9=8OP}s4sP^^L?LkDTQQwA-paW!0+!t1tV;fZ~{chYHj+HQEa zcDynrSm;vfbJ)#m*Ic(P?7xH3O08`6ZAR8f>r%IN4=N{wP$0oq%h$3p-d>WS5`4A( z>0HRg%{Z>34(`|@Sy-8<OormYP?k(SLMOy0-v$7AqJ0GPLA(Cy@To9 zbABpJh=f8NYy~+>DMYZ|=4;Q7zLls$ zNconlZy10FJ#ZONL(SAUnWgZpmKnJ~QVSnnOO_D@_>`Vm;R7Hh_+~F~cuOfELqZl- z_I-hE%1{U=rWH)F&RcUA-nV)@xh9sA%0b0p()#g@Le9nKhR}N?2f9DLwzvyZn-6%_ zrpt>29+@rU;D`p5ex-ihn?GCf=z)0t6lamB9@$7niY!`kxOq0reFt>(fPiw|NR7o(_?)z56uF0HW#7n%$3QQUy4xRf;^aW@E0c=% zr4{TIwv@C9qUa0&7P=fMn~^Q~{J9X>Ejz4+y{LxN%jvl?AgX!)Ze!{)l637k zz=+SEuO}siOi!~nGHG17><8SmU^1Vxdc}dfoc&ZqUJss>D1P?4^%+=AynKY&p2#2X zYiL1_TPD1%Zg(sk-E*iM%$?{o=vc;}4$V-eZwosZ7l=^9qZVVB)!Aa(rA8{kYzF^= z?y7=zuhC6mQb1@J0HIlmJ}#;by1Bkw^jKcErROUr54C36@fV}|FH{Mh+lNq4(DKo@ zMXdynRvLqu5d*9#dNPYe*T6tiSHL*NzOa^$sC7OyCWvbf|WUNpO@2`$*z z>vnSzkjm}Wc*9h;_;TP6F|D&s%hy5Pzj|*{$9?l$i_4MUyGSHbCkKcni2WshP;NKR zGBW%dbSd4ePyg3?GhnaITF4cPzkWntIF*EdEzA^0+Nt+#p#EZrG*>^zbRd*4Kz@Fh7B)YEmB zx(p_%cicAa_gPQyq(iVU?+Z3!LIvOWw@BlGx(o&kzzqUm&SB5Bh|h%kUwd@Ow5Isl zQSXXt?ez7!OLJ5dcPzpHyd5U-%`P&-;m@9v(hdd?+b8B zQ<5a%w8S~yA7z4AP1_NFpq;j!ar4in_A6W5T)VSEhsym?e@%*Cn?;^LE*Kb`q|VFv z^l$?J0vGyIvIzJoelrq|w*a8s)~&H?-+kyJRC=8O4B+ROc~#JOJNc>w`9&x_Ib4wE*Xrc%WK2p^*p2K@w5VATc8nsK22 zX7t|x3d^L-3Px_W@#{tvw^2WKwmhhL#{*601`{fLgbc(n7g=F~o(z1cJ;x%UByzB_2j*MWyTITS zpu!K-X`V)Ux2v~bX*X+c-K4vgECdvyf1*y#q>e2e3!Qyca4@e-)=tZ zhvqEO_kY|}Q8+M$rHC5~fXjB~bdluk>OcvC1-a|6V;bN$Hzw*)syq@NmGvRYVMiiz z#br0A;7>a)I|UwU03vpw2*~(#o7UjwkKPxB`~rjgT-Yga4X7CbMe|;6n;Bi6M7%z$ z+f*BQ(}8X7JM!)3`YS*;??vd*l}k6M2`B#|ls0y?`wXSPhEIN6EXer~OTKRMzrd`D zfQeZB)Bx_x9%jMX-Wt-F(zE}N;Hzlq~B_-RLWur(O@zn z?$UZy1gl1fh|83V?GwZp@&EersFua4`v6o5W(_H@gQNuLGq&3@{w<%k{9duXQZ=}s zvdSS{b`-IQ+`Y_j>#7P-pMLl*58rbE&-_;q!p&w1^8Z;P7=bL@Un}}28Llg-5<}oT zb@u?4fL&shp)UWZOwlr4VE{@^*`)Cf0O~6F>l|G{3UNH#-hJ;FY&a#1JjuoXt?Iwa z8GybjmGZL?=SH=!+&I)RV5y^vS~1(b6X|IZA9M83wYK^)wQdCAwYApGNAJl)7mq9a17@!i64msKwCm!CVt_$r;@Y4A$+$cDPH)T(GApFCfRoqTFOWfVHJF;2{vk*%QF@3t#C$1g7Jv5FZkrPY1ST@F-K|Y*?T~JZF-acy z#qv`d90<`8(1N6DG5u{SiTzKV@pGf`W%YWu*4km_rxInCdFu*(&&10*Ln^$Bc9)UTfX1A%%;IJd^$DeZO zzaPklLdq4S@R{M^WQoXGhrd1kKWD6iO#r%_qr8ed@psjkDGj*qm)9%K*lmB(r}a0s zoPeNR*?g;+5~7(Tt<-ka#q{i%Uv3eY%>ZDOvy@y7l*Ad%;9-4#kUNlAW#Ssb2V$A! zLCo2k9eE$;G9m#np@U>!g~&IBD@|r+=cHH4S)KXDZlnLCYzdh(qp-+7peLq9+ov?? z`AS@gTJdxEf>QH3^K3cuHp{+OfK+%^=>1Tw-LMI7rHKaa-aoeTM+a1xS2D38xAA9@ zQuoMzyf_@+tTe!FA7R!)&;Ic~P<5&g8@RUha6_rlv5DC<9sqT4NLNXj&53hkVJXD- zqlkMV44$blTvmyNOoUP@HH9iY6rjhS!T7pe|NG@9;nCU4O(?^PS3l`%7BO(BGh`W* zldlrY(l`0K0$~Na%{sqW^$JXUz%O{=b7W`zf}%h!0GwJ@k3<3IJP|D)bKz$SsC+o0+3NYlN#{HD9ho z+rZJ~Wz|e#!R&V_nQaNzH#j*9{jDP&RX!qG-l}a*1QD$qw;o(5grp>ocr&#~o29h- z01f0S4Xd$&X9>s0ZU01XXIj9vitPLU2srjr&4$3xrnGKxGkqYdZqCbEE?PZM@NPjd ze_v_ASHW6n_NK-si8Tfe5qb`ho3PA#cu1~IdGx}Kn>4g!c9oxAAR}TTBX3YqMMXzP z1Awu(IL%x|y33Ea=0|r;kPp-D*7h|{;BNVLhGlATT52U0dUN)^DKaL^k(1~1utX{U0RvTyz9SS zEsihoWwMy40P}*u>WP055(WeXb#`>H-D^e!2HH5;MR6K${~!gsx=*0s2;j;fqD9W{ z0altKH%kwAJyRMvE1&0fZ}r%Ef202~^s_^o{6FjxA>07)TlUBi)sbwdl?XjV{;ii( ze}yZriU2hSZ<4ntgVMd~E9SAm)zU_g=qwTj9Am z31wBsQ*L3t-d+CiSe?XI7=3-$<;^0rBA^v&^5kZCPi0+;nT|4g~60xd%^fl{? zL~v48@Z1O#v!+Wd6MqI9e(eXCuXo3j6LF8lZP@o}x+-vETUhvhyc4cwVbz_(?1TR2 zVL$nq4|hI)zeYB5a{(qn-eeN{)kWe}I2C!?r$!i;*`MMKq%xn=CEt2IHM~eZr-V>E z&g!wE4oyWRY^h_h%gdR|T3P)4*2ienBGNBTLJ&^y)u=j$uKd$ut@T^WYIR&q5=Dmj zHOFkM57eM4m#Fd0^A-y!LIqD;@Xam_?6VD4>8|{Qht3A~?+@#G3PqtTamz~P0O;`! zxNdw5iq6<~0q)U5t&CV?Hlf00bBcBJ0`tMbn5}V@&Y&E%Vq1%zOfhNSAYx0+5q^6U zOn2%r7wRj^eRaBscj-l?BYo|W^rK1k1k(>seB^6}`rx6fo6YsI;CLYdox%xagvHHA z**Ht?oZQ@A?hhP;=x@cOy_{_6wBu+z9LzBO(?2*&z_p!vJqEB!2+rlkJDxdq0Q6aU;9xACbP;WK&o_pW)=ZPy0 zzb386*$pNW2z1^ic-`TuE@W#e&5~u);DavPAlK%e2(5xrpxt&IpW~ZTaK&6B_!z~_ zG3N&bj#`8r?afb2`E>E?=t<`T_9 zX9{=RQ{pIt-rI`HQgTXHN^95$ZLdruu0aRXJ(N)nZ!c>1XDz%aoDY2__IB|3Xn_mt ztKZPaO(sUT!P0~Jvl)7Yehm3k{}NQ#L;8Z<4Yev@4xF_>Ex{~r4;a_M`eL&=I)h1( zPj~6U8+0Er&7|!;vv1z+N5*)F+<~EoQ&XNOPkWcA^Y*to)dZg{+7&czuyp?hD340N zdXH#HXthr+!dHJYKHsysYmT&7<4>3B>PcB{IK~S_5+Ds!>--05uic zn>_qvo$xHD=E$LKEM%0DZi2(f^!@Q(Ce7d4VQJw$Y-)L~pTlx#Lj6m}w8KSJMmPS)M^-pIS*|+K6Pi zdw`MYV7k*ZOCJuUuhPGTa_Pa z_Eb+QiD0V5Dv1b`I%2R$7S=&LYL0x0h2wpf>*rNF?ir+=Sf4HW?!qb`T<5q;8bWiq zij3OUepD3b?;1@TOc(>bSU+f;&}>VpGopp@W&yV^9R1KNJ*uvBCBoF$x4s_mh@WuR z^jKf!)$J$IlFh+3USe8RcX1o7C3{G%+!RmJ@jytV;Kq_p{miLH+Iasm1F79c{ejVI93uZqzoX&DE$SzClj3dvjvDbPVVgTxreT}z1_|Et7@O6jY1VhVO| z`}#M)mnPY-1c|usp+D&hPzsgZaIqLYnBDn4iO3zH65cnJ7j;#8Zji41{d2xN3lrPs zl7Qi?lP`EaH6h?&qu%EW!_44LVD#MXA^Vd;c952f&2eiITsd2$$lTplRyDdJnP>Qv zW7<@7nu2;eCIS#6KXz$s?ES-?CZz((g6obe5xAOd$!)K1IWy~dSV=DrhK_a4(hq|J zFB?J~Zk`y+i5tHR5Mr24P;#_dz_}ISeu>yVc1B=ZwLLymfVY6oXm&x6wfRuGHKexc zAa)g=IeQ3Cn%@Z=t#H7+ZHG@Qx2KuE;cm#Ex2a2AHi8M2sqP1t2uwUID0-wU;%Jsm z7o6=9vCVM!-iSa+j(ib0x1q9VosH*FaOG-rOkH5v*El?AF4v{Hz>+r>geqE?eR9m= z`$tIEpT}z}(L=O^p2Jm-cvm(G>nxu8qAkFUoamXauIe zSN@2LYNU_PY^w+yGfy`n%&yZFRP0nxi<`S-YBf!1kqHdAmJqDr7^^Tze?3tBs-1Q> zV8q*}7Hx9DfigQUY{0Ncz9Ac&qo8&rYu`jOEE^LM=AK{DuM9Z>q5oj~%^0?S4B2p& zR{RvI&Zy+FkkPHP$4)izoz*dxl1>t4OqJN0}l(MzH~-mBuT<^#M&0DSBWRmyblXl0@ZzK$d-vH- zBrOA)dzE3mu>d~X3x(1A3Sz;5t_CthIquAC z2tE&qhyE~fGMl^eJ6S;|VZ-AKWWT&{m6XNUx3w9#vx^g*;82fsiJXL*l)OiHg+QmI zOJvmE;v43TH_L008~0%3T-Fl<}Ieq8{jg@DBUr(l}~IrPwIYEM=_X zXeSRY?lMd`FGt7G{$!*!JpHlFN?x+%yBPkA75%M6eM>{Zf>NWgeBD9)@#n4416)Z6 zZg6N!&}xol!W{LVFN(Xt5%7APq}=eVR8Ls*$eR{s2Ml%Snt_b%gpUC1NoJK&X(0(C z&3zX~9-u-00lvMD>2exzj_jUg-T2PONkq;wKayudr3dH^yWUQyK`fyrztdPR;j<}{ z_zPJD1M1QM4rJMre82b;R9U5Q1i={dWyl_pO~=lvZ4#+oo;|NJ0XA12#EABR%_Vpv zh@TA-y-GbrH%##V+9|o=!JGsPc4`?r+|rR$J-Ucfz#brD!qxyyOG3Tm?86y}NU?iF zhXIhHxa4H;J}=Sg@M@gX#4g_R*fYg5#(irI5IC{aU$W_s@U&)mc?B$MTC*OatgnK?R3=zjMW>5L8B+i=|sVYYn*dK#N7y27xbX`(VH7bL&ucnaG1p7WdCiM(Fy5aw&lw54Mp<3oZw zXxbv=L-c_%jm2c$_wF*8nHzMlM^|r@B91p^)QV9i{mqH6wA>B^6y6cp?V!Hc?bs<} z&TC<}`?5Bqb~P(v+Lsu!xRf#xR3vl1x3S^y+*k8NC8Gx)SD|OJA{eVwZVU z{h65rH-`Pm(hwln#*Vy2%SP53lNbb~7Uc+8mDMmsxUti(m*x~AtmBc6!W@Sd%~Nql zZR`x<1~gR1 zMc#QOyR;7r#t|XV36*iz0~IqP2`Swv?HapR2{zrw2Uo!+^!RVE6QTl z`jWBd0`_yXdpy5=5M~?o81Bul>#Oxzj3Yg~RJ6X1ou1EKL8eGnUc+A@2v0g&tCrg! znPGzYdq>9roemVeY5BMN!!d>Na(+X?#wGCSfrP?BJp@MMGe4Q@g8fHb!Gh4rwQtW* zIg?YkFk5~=2UeF!kI8*Kh}u}gC+LEslP1)tkbqYf4x!TwxX)%eu%WidKi0d8G~}J+ zyrVum``VC*)74=7Zrgeqw6&SFXwWzt;I!9S5M9zG1k(Twb89>xzH6C>x!2! zY8;=gg-Rbr9BUt^^B8S_Z-6Jb%j4T50;72?`|@|2NokGb zaKl;f%ALOa5JsY#4_kY>rOd$?(Gg^sHNlr_Lbm15gP_f`(42lmzGa!dB{TN@<{y*Q zOs;`6w+eIzk#*D%8nuvHAXfp%Jy@$LW|e}z#fBQIJyyl`sx||&fzy7k7^hZfX58Pn zX-uC^sf++#3TnD0Y!8nbS1&^`QYT>I^7|IT*- zW6_t>VpdHTo|ThP+OzQ7W22wl%xxG|k#UPGJ5-#N3#ff7N_WF|F;x;$cp8Zb1KcEd zfKa_2^9H~GnbsFV=fAz>av8{qqA3rFfj0Fd)$loO@8Hm#L7-mi!<`bcn*G}H!Apb! zJdtCmonPg$EVBU*QX2Y#d2Qu&c1517s0Dvl1Z#+BR;F?sj=gi50kZ^urrKLxdR#_-jfc ziNyp@dukrU{I)noSCua{vkqH7y2p*X0Ac+|Z%M%#%YlX$X`?Hc#H#0IsDvwyE@h4O zM|OW{93joI^2UE4*_oGkl>qHIkCoV#yn+iUwbp6O^=R977s`;1nR2JSbk%fW$&f40 zo2M6B4+aMORSnbe(U*Tpo}H4JtMv-~v!S)*)|xRpDzO1mCE%Vkdz@g3SLcy<0Zut_4`Y!WGr zNC;?myOrE}S!wRiv?w~@;0^;?HsKF2aG`_P0$Hle8yG z^c&s5mi6Ox=}*J&oN=)}27^rE)q-ohd>Kh&UX}cP;__TH4>hpZ`>sd+8Ep0;^2zfT z)8^lex2fB)m@oJ(27fNxEw{E3ao77rjzBUg00<7_fVucH~aeSdw0B z+UTU~ao%HfSWorP%!ZyGuB9JX z0h&oBEILY7L)8ZZyd0i<<%bP@8@qfqa#y+p;f^lD>lvV`eUb$Tq%En|4SliwipF%Q z9(G!ZP(|EQ1HSluuf7tf;fM}|fTc%U9`faR|Bv}U*Gt4!NPIJ0^fR_GASyRY zG5o|NW#9c3RQ0HrPLvi+4Ma32jq|%tR*P%qXeF(+WlP zHl}*3pG5Sf-CHF->X5<`LAQ#zkxsb}L~8D_*WAWGx9Qmxv8IW2 z;&L=sZfTrt`sU=YWs~j-2^j0mG4(ff@nZ!DIqkpt68oFswyv#@FIa1?U>>d;AApON z;ws&Qa+ELww99OE*;DA*qzucIRIBA2|J4whHL;QT8hpvtv(f&Uh-V!UTju$$uY3)K zVh`W~d31{f-wJ1@_~Q0?4h)JcUKdsxGwl-LljHoGd5nAV_YHH;e+^O{ z23rRTC$qln@T*{i#8us)FMs@SZ^#ITV)B5d9&BxvJKih+hWgJpx;}BT0}iCRRNkYu zTG_iZ6Q3T=#FNLmzYP6&xL6w7lwS_ZFCVrkhuI7x z<^(IoaWk%9UVFxc?Sz)o>Uj8Xq4c7Qs{;fG#&g`qHHDfy`jYHImO6xC<0Xx?$^(Or z>73Qiwp`qAX!BqkWKhw)na@=7I*}swu<7X^mWR;_ zdt7uHxVNO|X~vuE9i4C{WljmY&|cYwnR_X#?;WHeK3&mv_r&sL8;``-pFNP0>P2)s zjHVDP^?2d@$+v4TK!U|2{*N!*fQ;-TVqa2Z7>NtnHO#P7q&cF&(m;^5#Q0Ph@uZVj zntdo-y!~J4-hD$k3fcVh2MMwb0j8ei%_K z(4SG0Y*$%Bw6Y^Zw~QS#F+23!w1zqDq!Y)-L$J%RU`;_m&2}u3Xaj5x*Ag?&cKZZD zZq3;)jT(9v=(;P=ZqDU2;x6b=XRjh>I<=I6J!t@LFL)T>ZR?lw^dP7;JaS)A==~!G zrd5w`t@WXa0lZu`beqp;(}*qi^HgsYxgO3R?-+-;CKTVA;<3e6Wdu;jC5U(~_a`)N zEso>smWimjR%vLe9CoXU#V!UqEegKsU;o(r!Ar+IEIWQiRQZl}o8cKEVNT*VBf^w` z22S>sWkCLCaqN|862celZfz5z_NKG=e5~2N+tCCU`l6FpUayJIc*73r(KqZ0>alj9p8)CFO zi13@z{WAG$k$N)>lyyW-%YD{Qc+_CDNu&64Ux)x{;k8b=7ob?EHwKQW=!(}JB%}`5 zp{-Wb>+JhjG?u>4mz1^>c$42_VEz51EF+EJE8CW7qH4Hvf5zPA z-VnKUh&bMwLmgr^j*mP&k35f@^cNh@yW)SWudizs>C}zESfC_S3xyt|sZCv8IHOA| z*upgPko%_>P=&JpN^BtF4}{@Xbh+_#xnh8RseAH&o~YDZ_9!cHk0ZyJUnt7rE_@dF zq{Dnnb-&|n&SBS%r<2>L*QE%@yA3{*K>?D&v@ZD7`Pxx9-n*;jm5I!J@nVQbUgSvj zUbb@azWZcvU1dOJWq@Pj)w&?98DaQ3jMWRGJ`CoJyPz`)NQ>RZdYE`7jMR1ZFCgh@ zd=M;?vMCn1pxm>8O-d~%NqFQw60BRtSow(L=tuz95<(#%f!)Q-maq8nLKrpt0s;{T zxkvDA(ORI3t4q7ueo9Sa%=>U()*^7ERL`Zk$W)psa4n|VU_6tWY6^b^FjXVhVS5ov ztS8PkRN%Lrm;f>u>ub$)bh%(5{w>p&P37O1JSRVL-$S9zM6?=`Sx7LxMHT2;{$nl1IytE=n^9&9X-YY9;PkP&kXlG!5gjH}V1R!!(+U}g2YWm* za^76D>GrWaf6*BVZK4sND21b^ya@-1sRVn9XTB@5xt3UrWL3{RHcoqk86`5o4WTqg zJuKDncJ_#Ifl;(`Y>S@Q61lah$%)9< z92?UdGY~2$QdoN=l>yhPt0DtJ35#$X=t@7nSz?6+Tgaph9e&E0cR?pB8;8u(Ds6#% zV1Z0i8kFpCUWU+KEOMe5%F9C};4*X6w`oN@w#Uj@DA_d;2ow!<%&Y0A2YzJ6vT^)Q zdz%bPOFci7KE+JTpz6{Ke3Pg91JrQSIm}9qeP(fc;kA}rFl>zwtp@s25&l$Z9F>Y&i{xg zbb8F{b>Yn8w371!;85C2#ZIe}nJ|(x9(Q06;gKc!jUCUiEl=K~yhz>Ci;b8+{_~}wSKO%6#+54#mZv#?m)`=0=BKzT z;T`5v%RH$oUm-H{+($aw5jeTs>9>i+lQE;S=Z_t^Rrm+ioU*CDE1E0q^ApCn3ufij zbp|SYR&fC?Ab-Ad@T3y$Y^}XSQE2L)AUEl!t)f2lLf<(F0q4nGnul1zs$q4`2BuEa zq(GNKYYNokuo9!x@P0CgoTHZ$zbed+cIxPUqM#{2Y~GWNR?&7e-)SiAKw$?m>b@kt z^@yFRR8yOJ(kQkTcOrH#bbm{zagfj@FTo8cot)6}`uu^fOcynAD2ajnS5`?RP&C}y zVBCq4H;ZEEsLzm?`(SiHYdCkCd0~Wew13;;Xz8fAT>hL^Q|WU=z;>V-w{9jhk4iI| z)oi;b*=OLQ(?LOqIhljsYGP1KT7V<_&r^G-G=jDK)f|aol34;N>edNK>1w}`)cCn1 zx3>e49fj6YEoGz?J~kLa2}k1__Bn4Ufs}D#c^7ec_SthdRk%@MG@uySuQIDg@`F$c zaV?NQG z;r=`k?8GMtXhfbwAT}MFI<7e;#2o^L+Xp++VRax)EtLfvfZ%wJ-&@eKIw+cb~eZ{IHtj4vN9 zj08ETJQ`4&DA}%O7gims*pu>&euFW~d6i4nU9%n8C1N&OQ4`^$LgKWA+3K(RD8ye5 z&jj*;V=M%!xioNtmJap%ty%*UcRcQ&(DI`AHw*sU&;JV7^T+fl)}RGU3>dimh=_&t z74_;w)i;wgihx_y)I*6{I)K=Z^gAAJR`baS12PovSy>^ij*c9f?t3HV`oZ3AdviHC zp=ldw07zI16pfoTXIhzY}=!)yD(B#h^d|z@cz_OjD?upXg@46&|Yz z-(Kx%Y4O;befGrTD1efE+H-#($-R$^NzT<>9^Ab~=9xCK!ao?*ojy{O3d%Fnwsu*$ zRS4)}g|u%IqQHj;$LXx9E|=G76|L+#&aZ7FNARPfwHgY^-)Dv$@SjldFCK(iV)llU z#$%y@SeVAabZ49Z+;ev>qp{Gq>k1*EFTa2m%F&^7HlJ+ysH=gv_>Z`iPIFB=j}^5e z%u1)}rX0#T8pL8#VlP}cNxZ6@4LvWs_q=@ZcI;416P9y0n^R_z#y;n1kDU5HVu@Pr%_-s zH=7?~c4R3Q(Ivs->?GOdBSH*{jz~}eW(wyV0Z)H@?ad^MB`+l;P|hl&gRRttiG<3S z4+QOypDg!ZoPLNX5e~0%UYoXB9|y3qS~a#VeW~e&(&r28=+X=Yf0$@=p$v;X*ia)S z`fx|9+|6)p?&K}PE9(s%=N`MHFVew+VBDxdY<8(=d(-1l5RZm6#pgdd3tT-{wB$dZdsH~#8uSsJwB z8c0i7_(7}8&S=IaY!iim(DgWhjIE;7zSUDCM|_C5H`pRIl%sy#4vJ?a2L>6BO zh}Wq0=%X{LxF*8)U(~dblan(rF-=xDm;)EMWvS$O93AWiEOd1>H9@o0S*q1EG!72D zQ`Jg(lguwW6(JNKl0vW3QE4>;pMkrsl(l54puGIpBuR<_3qAZY9IQ+u1S?9!($mf< za#&|Wd73-gP%bPC*wwj1sH|n6@Qn&XM1gv4cfTKWShVp2#Lh}WU_UJYNcHbcD3yLAPRTRhtd7^KW1jLAK$;N52}{m4FGcN zmi2{cFBK4vc%t2>JE_*<;kQ!QzLa_OP_!;0$>BXOCy`zKRa6Ab!0hl7CcGA(y|6Y_ z=X=TABtYNNj};l-rjm44Y|N+%C8J=8SX{I&W6J)dI$3|v?C)UET8032=>27qfOfBdvnwKXNPn3NpwI8;iyw=hZ6$D}br#)u#RN|39LV$Gh&n`^ZeTCW1SWM1oM3lO@WRJa~6a zuafk5<1|b6xcu{}H2y!{LS^yI<|V4AOZu`GvxyQo?DBoPSVjM$e|JsvuZ$ujL_Ilx za_PE6#YfUS%ZcoI^RCZMz`FQe|SbyrU?3d*GogE5}Wnp)F z^PfTQ(G?B+k}2SPk!Eb*y3?+A_oVjqnpv#kD-vSItd~0r?Bv9tV)Hzdzt$FY0rX4g zfT7U9ZnXo~QUl-d2cAw2ptZ?xxSl6OEiA=q$zq&5!#c?v^^XdKhY8ubO3cqL1=OdU ztVm}+IUvrKCKw=0oo<~f_wAZl|xS)dAf?fT_H|XKP7|b`*^b7iu57BF)Db;0mXi+6$KIS9!D*~VZ+2Tn zx5M}%Evmv+ji2~CXbI$vgQXK1cD}HlDA&K==aduyZy$D2DYhZFMTSnV^JLh^P%y>ssRf<?SRNW1dks5y5-Bbn{y4kvwjpLya|p zsjdb|&1qH56)$uSa;M)GOtr7Gh1Rg_4}U{rkSSfCCtFv5UZCG8JVr1(@G|GU7(mQ{ z1LhC|?zuhhnk6(dAJ7diX1KC5W*H3BJQh^5QD zE`K~8q2v51D_+L3qg!fa+nmc_bVu`qGG?#c2th{J2$+P>C0uC_OL>`oU4`)a4e{I( zDPWW;d%*|gZtjL@i#Gnv=68y2*{d1^pI+v#^LBWNWJ*<>brUKCrnoSlMv$a zJl|f6(BVVoY;Z5n?u&fCwCMZnSCb+G%?&#~8q^I2CzzC2-%DZxrj4P!t_A2DF8o0d z<{ySK4L^`i!RgK^Ek!-R5U9^cDK6S+4}#l_v$~-@vt}*Eu@5StJbXWP83YEZ4HR)^ zzI*{8Dki)pLta>=L&}$}KZXMl+LWjI`RR^}>Z=xguQ~j1UsJk_vQv$Z<51)QgFAP& zXI=%AV#Ii^)yQ{$l~m8>*A9FZ$+S1juVNl>Xcc{94nt%w8q0L|R~ED|WMh%q6$+X* z78>izYWf)J;t-?I&eys_H~>)*fiOQA_feoBe%`-4#&Clp!eQu?)BfTSf>LKHFMZv9%6kgyQYQsBaDlNtkIsfi%rlS) z6##InsZ=)~>NVKd$>;Hd=>ISU!yu*To+i%un_-C+qr+4K1?)Ivp!PufwvOUabma24 zMYfR)rsw1Z^V`jaSjDQCg!#y>clXt;*K*&csP}y^gaC=_XfQh_6(`{v760wje(>e5 z21DuBMmP=W_k$zjt3)|37i9kdNwMQ85GvS&)my510VZ4j7YAxZGKZYb!qZ>^zK_oAS@1YXPKs3=NnpM zR>J_FwErP2j*vi+S@|dxb_^xg`qqDN)`fj_h22H8ZchA5j>O)L=}U#z04LC-I$Tch zI7M&HI(o}facXXsQ|E*i&UJt}eNk^%22v-X|91=$;+QN=XOl5!;VxMK z4Ca&ue1dypYv%<5W^xwKzCQ+in6yyzkW)n5D3j)@WQ5>!FZwzVR19~GJWU2uinIg$ zalacQf&cWx(27~oh#JUbxl3z!NidY(XidKg0)%;p`~tgkucaDVCyO>ew72w8`kfl~ zuiMWk1$r3}Wt$EeiVg7-e66`9y%PLtOOXwTwF-bdp`YZfc=n0j0h*0pS{+lKqA(OM z_8JBOz8q34J6&vC2laEXocmxO+uP$0`g&!v+1N=Ug-~0nH_#0u4Zd`j8O@}0d(a8+ zVJ@o2G2!vZr72DpaR)iK6T?Gb5n}%atT`V#qhs(Eh-;XS(+!sXYAbyT$uEK)rQ-9z zb$1wJNj}~Y`WVlQ_Cvi0bwfS%$9)i3pQ9d3lV%Sq4%*Cg^t*w%zQll0SV}1fk1U*1 znP2y&0pTa-q?2*tdn#)8s*^Re;WrK0ROsS)k}hiVx;?Jzi3VXtQ#`}ik?8kZCvrqL zw;toTY+oBIo>c(EAE%>Lz79%8@bq2?vX27SypUDQoNg6VDX_PgdlcvW=7P{VZ?$LK zD`A~pLr<~fv{q)A`gb$9+^(&QXQswNggZ=h!#rI^d;M!H8;S$yG1sN;BgVAdP!4yz zOPkpe7~$Y7>rbIN;XG|Oqs z@R~gn7LQ)Q;;CbB_VOa-o1I+WL^;;_HUs^}C=J;5F5pA)(MJ2D|hKlpFj zap+j?0P(5N|5;6%Af%h)v9!13rc&%4kLd>a`y9o9tv<26t54V))Zh9NLVXhjCF21>h^eqJEgR_nd<myMfTriE{JdY`G`8NaWutTVA@-Q>EKO+}rq(RH3a-%gym`efqtJ*l!AYX0)h z0-htVJ!AUu(`j2K>^F=w3*GWTFR2#Q_*C0Z+KY9YwhFc}b2sO2{4Fe!xGijYhz*SS3_< z8C0q;h_0Peo#K?Egdzs&`zNDV4eGETzp#^Gh1U;XP!-4k?)vvHEM^Rt3J+Ca17FVh zInx5Ihvwj}C%ETt+jfrCA@oo_cy0kahEUBjm%CwA%Y74&IpEQVZxX;<9m=^s6C?r| fLNFxYpj-d>k2g&?WITK2e~>0mS3j3^P6 Date: Fri, 14 Apr 2023 17:46:32 +0100 Subject: [PATCH 08/13] Added TL SDK Usage section + Workflow Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 4b4a9c2..5df117f 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -188,3 +188,31 @@ const stream: Stream | undefined = await conversation.streamMess ``` +## SDK Usage in TalentLayer Indie Frontend + +TalentLayer Indie Frontend provides an example implementation of the XMTP protocol in a marketplace. +This document will explain how the SDK was used in the Indie Frontend, and how XMTP was integrated in the workflow. + + +### 1. Getting started - Workflow +The idea is to enable TalentLayer users to send messages to each other, and to be able to chat with each other after they published either a service or a proposal. +Since Users cannot be messaged is they are not registered to XMTP, the first step for a user wishing to publish a service or a proposal is to register to XMTP. + +#### 1.1. Registering to XMTP +This box will appear on the user's profile page if they are not registered to XMTP: +![img_1.png](img_1.png) +After clicking on the button, a modal will appear, asking the user to sign a message with their wallet, which will register them to XMTP. + +#### 1.2. Contacting a user +Contacting a user is done by clicking on the "Contact" button either on the service or proposal detail page: + +Example on a service detail page: +![img_2.png](img_2.png) + +Clicking on this button will open the messaging page, with the existing or new conversation with the user already opened. +This action will prompt the user to register to XMTP if they are not yet registered. + +Example of the messaging page with open conversation: +![img_3.png](img_3.png) + + From 94c39beb4fce2f2a792b254d15e30bc2bc1e1379 Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 17:47:45 +0100 Subject: [PATCH 09/13] Added Code section => Contexts Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 118 ++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 5df117f..7cd2e85 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -216,3 +216,121 @@ Example of the messaging page with open conversation: ![img_3.png](img_3.png) + + + +### 2. File Organization & code +TalentLayer has implemented 2 messaging protocols in the Indie Frontend: XMTP and PUSH. Some React components are common to both, and can be found in the "mesaging" folder. +All XMTP-related components can fe found in the "mesaging/XMTP" folder. + +![img.png](img.png) + +The messaging page's code is located in the "pages/XmtpMessaging.tsx" file. This is the entry point to the XMTP messaging app. +It is available at the following routes: + +```tsx + } /> + } /> +``` + +The first route leading to the messaging page is the default route, and will display the list of conversations. +The second route is used to display a specific conversation, and is used when clicking on a conversation in the list. + + +#### 2.1. Environment variables +The XMTP SDK requires 2 environment variables to be set in order to work properly. These variables are set in the .env file. + +```dotenv +# MESSENGING +VITE_MESSENGING_TECH='xmtp' +VITE_MESSENGING_ENV='production' +``` + +#### 2.2. General messaging Context +In order to message a user, a few actions must happen as pre-requisites: +- The user must have a TalentLayer IDand an XMTP user. +- The user must be registered to XMTP. + Therefore, the workflow starts by checking whether the user has an XMTP account. + If not, he will be prompted to register to XMTP. Finally the user will be redirected to the messaging page, with an open conversation with the recipient. + +These actions happen outside of the messaging page; therefore we centralized all the functions necessary for these actions in a general Messaging React context provider: "MessagingContext.tsx". +This context handles both XMTP & Push protocols following actions: + +- Check if the user has an XMTP account ` userExists = (): boolean` + This is done by checking the 'userExists" variable in the XmtpContext.tsx file (detailed in XmtpContext section below) +- Register the user to XMTP if needed | `handleRegisterToMessaging = async (): Promise` +- Redirect the sender to the messaging page, with an open conversation with the recipient | `handleMessageUser = async (userAddress: string): Promise` + +Example of redirection to an open conversation with a user: +![img_5.png](img_5.png) + + +#### 2.3. XMTP messaging Context + +**Content** + +The XMTP messaging context is used to handle all the XMTP-related actions which happen in the messaging page, such as retrieving conversations & messages, sending messages, etc. +It can be found in the "messaging/context/XmtpContext.tsx" file. + +The following properties are available in this context: + +```typescript +interface IProviderProps { + client: Client | undefined; + initClient: ((wallet: Signer) => Promise) | undefined; + loadingConversations: boolean; + loadingMessages: boolean; + conversations: Map; + conversationMessages: Map; + userExists: boolean; + disconnect: (() => void) | undefined; +} +``` + +At the initialisation of the context, as soon as the user connects his wallet, a listener is set up to check if the user has an XMTP account: + +```typescript +useEffect(() => { + const checkUserExistence = async (): Promise => { + if (signer) { + const userExists = await Client.canMessage(walletAddress as string, { + env: import.meta.env.VITE_MESSENGING_ENV, + }); + setProviderState({ ...providerState, userExists, initClient }); + } + }; + checkUserExistence(); + }, [signer]); +``` + +If the user does not have an XMTP account, the "userExists" variable will be set to false. This variable is called in the MessagingContext.tsx file, to check if the user needs to be registered to XMTP. + +--- + +**Client Initialisation** + +The first action to be done in the messaging page is to initialize the XMTP client. This is done using the "initClient" function, which takes the user's wallet "Signer" object as a parameter. +After this function is called, the user will get his private keys using his wallet signature, and the "client" object will be set in the context, with the connected user's private key. +This initialized client instance will be used to retrieve conversations, messages, etc. + +```typescript +const initClient = async (wallet: Signer) => { +//(...) +} +``` + +--- + +**Conversation & messages loading** + +After the client is initialized, the messaging context will load all the user's conversations and messages. +This is done through the folloging function: + +```typescript +const listConversations = async (): Promise => { +//(...) +} +``` + +Conversations will be accessible through the "conversations" variable, and messages through the "conversationMessages" variable after this step. + From a34ae1f5bc68c36bda910a6a8f1495c9f04261dd Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 17:48:17 +0100 Subject: [PATCH 10/13] Added Hooks section Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 7cd2e85..8ed91d9 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -334,3 +334,80 @@ const listConversations = async (): Promise => { Conversations will be accessible through the "conversations" variable, and messages through the "conversationMessages" variable after this step. +#### 2.3. XMTP hooks + +We provide 3 hooks to help you use the XMTP messaging context in your components: + +**UseSendMessage** + +This hook is used to send a message to a user. It will first instantiate a new conversation use its "send()" function. +The hook takes the following parameters: + +```typescript + const sendMessage = async (message: string): Promise => { + if (!client || !peerAddress || !peerUser?.id || !senderId) { + throw new Error('Message sending failed'); + } + + const conversationId = buildConversationId(senderId, peerUser.id); + + const context: InvitationContext = { + conversationId: conversationId, + metadata: { ['domain']: 'TalentLayer' }, + }; + const conversation = await client.conversations.newConversation(peerAddress, context); + + if (!conversation) throw new Error('Conversation not found'); + return await conversation.send(message); + }; + + export const CONVERSATION_PREFIX = 'talentLayer/dm'; + + export const buildConversationId = (talentLayerId1: string, talentLayerId2: string) => { + const profileIdAParsed = parseInt(talentLayerId1, 16); + const profileIdBParsed = parseInt(talentLayerId2, 16); + + return profileIdAParsed < profileIdBParsed + ? `${CONVERSATION_PREFIX}/${talentLayerId1}-${talentLayerId2}` + : `${CONVERSATION_PREFIX}/${talentLayerId2}-${talentLayerId1}`; + }; +``` + +Notice the "buildConversationId" function. TalentLayer decided to set a context to the conversations initiated on TalentLayer protocol. +There are several reasons for this decision, the first being to enable filtering out all XMTP conversations which are not TalentLayer-related. +The second reason is to enable the user to have multiple conversations with the same user, but on different topics. this can be achieved using the "metadata" field in the context. +(An example 'domain' field is shown in the code snippet above) + +The way the conversationId is built follows the pattern which Lens protocol used. This way the domain name can be clearly visible in the XMTP general chat app: + +![img_4.png](img_4.png) + +This hook is used in the main messaging page, and sets up a "send" function with the selected recipient when the user clicks on its conversation on the left side-bar. + +**UseStreamConversations** + +This hook sets up a conversation listener to retrieve all the new conversations which are initiated by users trying to contact the connected user. +It takes no parameters and is called in the main messaging page. + +**UseStreamMessages** + +This hook sets up a message listener to retrieve all the new incoming messages of a conversation. +It is used in the "MessageList.tsx" component, and is only active on an active conversation. + + +#### 2.4. XMTP messaging components + +The main messaging page is located in the "pages/XmtpMessaging.tsx" file. +The page is built using all the components located in the "messaging/xmtp/components" folder. + +[//]: # (TOTO: Parler des Objets Messages plus légers) + + +## +SDK +usage in TalentLayer + +File +Orga +TL +Context \ No newline at end of file From f26bf622fff78d29649983e2d3c7d1027d8654b7 Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Fri, 14 Apr 2023 17:49:20 +0100 Subject: [PATCH 11/13] Added imgs Signed-off-by: Quentin D.C --- technical-guides/img_4.png | Bin 0 -> 50865 bytes technical-guides/img_5.png | Bin 0 -> 64434 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 technical-guides/img_4.png create mode 100644 technical-guides/img_5.png diff --git a/technical-guides/img_4.png b/technical-guides/img_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9a69df1ad4d6867bffe6eda3c6c05471cf7c0e38 GIT binary patch literal 50865 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 JJRz;m{|ld%XG#D7 literal 0 HcmV?d00001 diff --git a/technical-guides/img_5.png b/technical-guides/img_5.png new file mode 100644 index 0000000000000000000000000000000000000000..efd35be050d1d4ff0e7b2d4597e371e99532db00 GIT binary patch literal 64434 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�M7_uCA_Ded>TdJuiYhJZjlrqB=1p)rTKYmUTaW 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

L^H#p`s8#m?)DqSU*?^s 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 C3jUk` literal 0 HcmV?d00001 From d4eda78cf2a22273e0238b564067c6f27d63177c Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Mon, 17 Apr 2023 08:03:50 +0100 Subject: [PATCH 12/13] Added detail on message page Signed-off-by: Quentin D.C --- technical-guides/img_6.png | Bin 0 -> 22018 bytes technical-guides/messaging.md | 46 ++++++++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 technical-guides/img_6.png diff --git a/technical-guides/img_6.png b/technical-guides/img_6.png new file mode 100644 index 0000000000000000000000000000000000000000..4313fd0c5819c3bbd42e5f8d1cc3e6dd291195f5 GIT binary patch literal 22018 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 gPv{|<_E?ee>9>kI&E}@SY*!jBH67Jb => { }; ``` + +--- + ### 3. Messages The client object has a “conversations.list()” function, which once called, returns an array of “Conversation” objects: The conversation object has a “messages()” function, which once called, returns an array of “DecodedMessage” objects: @@ -140,6 +148,7 @@ const listMessages = async (): Promise => { }; ``` +--- ### 4. Sending messages Sending a message is done through the Conversation object. @@ -155,6 +164,8 @@ const sendMessage = async (message: string): Promise => { }; ``` +--- + ### 5. Websocket listeners There are 2 websocket listeners available in the SDK: @@ -187,6 +198,8 @@ const stream: Stream | undefined = await conversation.streamMess }; ``` +--- + ## SDK Usage in TalentLayer Indie Frontend @@ -195,32 +208,38 @@ This document will explain how the SDK was used in the Indie Frontend, and how X ### 1. Getting started - Workflow -The idea is to enable TalentLayer users to send messages to each other, and to be able to chat with each other after they published either a service or a proposal. -Since Users cannot be messaged is they are not registered to XMTP, the first step for a user wishing to publish a service or a proposal is to register to XMTP. +The idea is to enable TalentLayer users to send messages to each other, and to be able to chat with each other **after they published either a service or a proposal**. +Since Users cannot be messaged if they are not registered to XMTP, the first step for a user wishing to publish a service or a proposal is to register to XMTP. #### 1.1. Registering to XMTP This box will appear on the user's profile page if they are not registered to XMTP: + ![img_1.png](img_1.png) + After clicking on the button, a modal will appear, asking the user to sign a message with their wallet, which will register them to XMTP. #### 1.2. Contacting a user Contacting a user is done by clicking on the "Contact" button either on the service or proposal detail page: Example on a service detail page: + ![img_2.png](img_2.png) Clicking on this button will open the messaging page, with the existing or new conversation with the user already opened. This action will prompt the user to register to XMTP if they are not yet registered. Example of the messaging page with open conversation: + ![img_3.png](img_3.png) +--- + ### 2. File Organization & code -TalentLayer has implemented 2 messaging protocols in the Indie Frontend: XMTP and PUSH. Some React components are common to both, and can be found in the "mesaging" folder. +TalentLayer has implemented 2 messaging protocols in the Indie Frontend: XMTP and PUSH. Some React components are common to both, and can be found in the "messaging" folder. All XMTP-related components can fe found in the "mesaging/XMTP" folder. ![img.png](img.png) @@ -324,7 +343,7 @@ const initClient = async (wallet: Signer) => { **Conversation & messages loading** After the client is initialized, the messaging context will load all the user's conversations and messages. -This is done through the folloging function: +This is done through the following function: ```typescript const listConversations = async (): Promise => { @@ -334,6 +353,14 @@ const listConversations = async (): Promise => { Conversations will be accessible through the "conversations" variable, and messages through the "conversationMessages" variable after this step. + +**XmtpChatMessage** +During the loading of the conversation's messages, the messages are converted to a custom type: "XmtpChatMessage", which is lighter than the "DecodedMessage" type from the XMTP SDK. +This action is done through the function "buildChatMessage" in the "messaging/utils.ts" file. +This message conversion is also done in the message & conversation listeners (see below). + + + #### 2.3. XMTP hooks We provide 3 hooks to help you use the XMTP messaging context in your components: @@ -400,7 +427,12 @@ It is used in the "MessageList.tsx" component, and is only active on an active c The main messaging page is located in the "pages/XmtpMessaging.tsx" file. The page is built using all the components located in the "messaging/xmtp/components" folder. -[//]: # (TOTO: Parler des Objets Messages plus légers) +It's important to activate the conversation listener on this page to retrieve all the new conversations initiated by other users. + +Each time a user selects a conversation, the conversation messages are fetched, the "MessageList" component is rendered and the "useSendMessage" hook is called to set up a "send" function to send messages to the selected user. +The "MessageList" component is also responsible for activating the message listener on the selected conversation, since new incoming messages are only listened for the active conversation. + + ## From 9851dd84fd9adc6737dbfafe41aced3464d21c1d Mon Sep 17 00:00:00 2001 From: "Quentin D.C" Date: Mon, 17 Apr 2023 08:21:24 +0100 Subject: [PATCH 13/13] Finalized xmtp doc Signed-off-by: Quentin D.C --- technical-guides/messaging.md | 45 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/technical-guides/messaging.md b/technical-guides/messaging.md index 9b5d576..2199097 100644 --- a/technical-guides/messaging.md +++ b/technical-guides/messaging.md @@ -228,10 +228,6 @@ Example on a service detail page: Clicking on this button will open the messaging page, with the existing or new conversation with the user already opened. This action will prompt the user to register to XMTP if they are not yet registered. -Example of the messaging page with open conversation: - -![img_3.png](img_3.png) - --- @@ -266,13 +262,13 @@ VITE_MESSENGING_ENV='production' ``` #### 2.2. General messaging Context -In order to message a user, a few actions must happen as pre-requisites: -- The user must have a TalentLayer IDand an XMTP user. -- The user must be registered to XMTP. - Therefore, the workflow starts by checking whether the user has an XMTP account. - If not, he will be prompted to register to XMTP. Finally the user will be redirected to the messaging page, with an open conversation with the recipient. +As mentioned before, the workflow starts by checking whether the user has an XMTP account. +If not, he will be prompted to register to XMTP. Finally the user will be redirected to the messaging page, with an open conversation with the recipient. -These actions happen outside of the messaging page; therefore we centralized all the functions necessary for these actions in a general Messaging React context provider: "MessagingContext.tsx". +THis requires that a few actions must happen as pre-requisites: +- The user must have a TalentLayer ID and an XMTP user. +- The user must be registered to XMTP. +These actions happen outside the messaging page; therefore we centralized all the functions necessary for these actions in a general Messaging React context provider: "MessagingContext.tsx". This context handles both XMTP & Push protocols following actions: - Check if the user has an XMTP account ` userExists = (): boolean` @@ -324,7 +320,7 @@ useEffect(() => { If the user does not have an XMTP account, the "userExists" variable will be set to false. This variable is called in the MessagingContext.tsx file, to check if the user needs to be registered to XMTP. ---- + **Client Initialisation** @@ -338,7 +334,7 @@ const initClient = async (wallet: Signer) => { } ``` ---- + **Conversation & messages loading** @@ -405,11 +401,13 @@ There are several reasons for this decision, the first being to enable filtering The second reason is to enable the user to have multiple conversations with the same user, but on different topics. this can be achieved using the "metadata" field in the context. (An example 'domain' field is shown in the code snippet above) -The way the conversationId is built follows the pattern which Lens protocol used. This way the domain name can be clearly visible in the XMTP general chat app: +The way the conversationId is built **[follows the pattern which Lens protocol used](https://xmtp.org/docs/client-sdk/javascript/tutorials/build-key-xmtp-chat-features-in-a-lens-app#build-the-lens-dm-conversation-id)**. This way the domain name can be clearly visible in the XMTP general chat app: + +TalentLayer decided to filter out all conversations which are not TalentLayer-related, by filtering out all conversations which id's do not match the TalentLayer pattern (see "listConversations" function in XMTPContext.tsx). ![img_4.png](img_4.png) -This hook is used in the main messaging page, and sets up a "send" function with the selected recipient when the user clicks on its conversation on the left side-bar. +This hook is used in the main messaging page, and sets up a "send" function with the selected recipient when the user clicks on its conversation on the left sidebar. **UseStreamConversations** @@ -432,14 +430,15 @@ It's important to activate the conversation listener on this page to retrieve al Each time a user selects a conversation, the conversation messages are fetched, the "MessageList" component is rendered and the "useSendMessage" hook is called to set up a "send" function to send messages to the selected user. The "MessageList" component is also responsible for activating the message listener on the selected conversation, since new incoming messages are only listened for the active conversation. +**Components** +The main messaging page is built using the following components: +- CardHeader +- ConversationList +- MessageList +- MessageComposer - -## -SDK -usage in TalentLayer - -File -Orga -TL -Context \ No newline at end of file +CardHeader is a simple component which displays the address of the recipient user. +ConversationList is a component which displays all the user's conversations, and is used to select a conversation. It is also responsible for activating the conversation listener. +MessageList is a component which displays all the messages of a conversation, and is responsible for activating the message listener. This component not rendered message when no conversation is selected. +MessageComposer is a component which displays a text input to send messages to the selected user.