From a67a5f9cb3bb31a1f31bfa177caacdeb09b18f02 Mon Sep 17 00:00:00 2001 From: Me Date: Sat, 5 Apr 2025 22:39:46 -0700 Subject: [PATCH 01/20] Cross Domain Messaging Guide --- .../cross-domain-messaging.md | 102 ++++++++++++++++++ .../img/doc-imgs/additional-guides/XDM-1.png | Bin 0 -> 21942 bytes .../img/doc-imgs/additional-guides/XDM-10.png | Bin 0 -> 75141 bytes .../img/doc-imgs/additional-guides/XDM-11.png | Bin 0 -> 108359 bytes .../img/doc-imgs/additional-guides/XDM-12.png | Bin 0 -> 205692 bytes .../img/doc-imgs/additional-guides/XDM-2.png | Bin 0 -> 150631 bytes .../img/doc-imgs/additional-guides/XDM-3.png | Bin 0 -> 84838 bytes .../img/doc-imgs/additional-guides/XDM-4.png | Bin 0 -> 23237 bytes .../img/doc-imgs/additional-guides/XDM-5.png | Bin 0 -> 140494 bytes .../img/doc-imgs/additional-guides/XDM-6.png | Bin 0 -> 129226 bytes .../img/doc-imgs/additional-guides/XDM-7.png | Bin 0 -> 45538 bytes .../img/doc-imgs/additional-guides/XDM-8.png | Bin 0 -> 64162 bytes .../img/doc-imgs/additional-guides/XDM-9.png | Bin 0 -> 62008 bytes 13 files changed, 102 insertions(+) create mode 100644 docs/farming-&-staking/farming/additional-guides/cross-domain-messaging.md create mode 100644 static/img/doc-imgs/additional-guides/XDM-1.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-10.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-11.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-12.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-2.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-3.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-4.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-5.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-6.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-7.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-8.png create mode 100644 static/img/doc-imgs/additional-guides/XDM-9.png diff --git a/docs/farming-&-staking/farming/additional-guides/cross-domain-messaging.md b/docs/farming-&-staking/farming/additional-guides/cross-domain-messaging.md new file mode 100644 index 00000000000..7ed40e744f4 --- /dev/null +++ b/docs/farming-&-staking/farming/additional-guides/cross-domain-messaging.md @@ -0,0 +1,102 @@ +--- +title: Cross Domain Messaging (XDM) +sidebar_position: 6 +description: An overview of the different types of nodes +slug: /farming/guides/xdm +keywords: + - XDM + - Domain +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +## **Introducing Cross Domain Messaging (XDM)** + +Cross Domain Messaging (XDM) is a core feature of the Autonomys Network that enables secure and seamless communication between independent blockchain domains, such as the consensus chain and specialized domains like the Auto EVM. XDM allows these separate blockchains to exchange assets, messages, and data reliably, enhancing interoperability and collaboration across the entire Autonomys ecosystem. + +In this community challenge, you'll put XDM to the test by executing cross-chain transfers between the consensus chain and the Auto EVM domain. Every successful XDM transfer will earn your wallet a point, letting you directly contribute to strengthening the network's interoperability while earning a share of the reward pool. Join us in exploring this groundbreaking technology, help us validate its performance, and earn points with every transfer you complete. Points will be converted to AI3 at a rate to be determined once the Game of Domains are over. + +If you want to learn more about the technical nuances of XDM you can find further details in our [protocol specs](https://www.notion.so/Messaging-Specification-XDM-v2-6e8b9d3bb2c94e289d70f9e0474b9f9b?pvs=21). + + +## **XDM Confirmation and Timing** + +To maintain security, there is a challenge period that has to expire when transferring tokens between domains and the consensus chain. Tokens are not fully available for use until the confirmation time has passed. Study the table below to understand confirmation blocks and rough timings: + +| Source | Destination | Confirmation Blocks | Confirmation Time | +|:-:|:-:|:-:|:-:| +| Consensus | Domain | 100 consensus | ~10 minutes | +| Domain A | Domain B | 14,400 domain | ~1 day | +| Domain | Consensus | 14,400 domain | ~1 day | + +### Refunds due to a failure to complete an XDM transfer will take 28,800 blocks in total + +As long as the XDM is confirmed on the source chain (100 consensus blocks or 14,400 domain blocks) the XDM is able to be relayed and executed (i.e. transfer happens) on the destination chain. + +The destination chain generates an XDM response that will be sent back to the source chain after the XDM response is confirmed on the destination chain (100 consensus blocks or 14,400 domain blocks), but the XDM response is mostly a no-op and only useful when the XDM is failed and the XDM response to refund the sender on the sender chain. + +## How to Participate + +### Consensus to Auto EVM domain + +Visit https://astral.autonomys.xyz/taurus/transfer + +![XDM-1](/img/doc-imgs/additional-guides/XDM-1.png) + +Select networks for XDM consensus → Auto EVM. Enter amount to transfer. + +![XDM-2](/img/doc-imgs/additional-guides/XDM-2.png) + +You will be asked to approve the signature request. + +![XDM-3](/img/doc-imgs/additional-guides/XDM-3.png) + +After hitting Approve you will see an extrinsic hash + +![XDM-4](/img/doc-imgs/additional-guides/XDM-4.png) + +Which you can search on Astral + +![XDM-5](/img/doc-imgs/additional-guides/XDM-5.png) + +![XDM-6](/img/doc-imgs/additional-guides/XDM-6.png) + +Our target account starts with no tokens + +![XDM-7](/img/doc-imgs/additional-guides/XDM-7.png) + +We can also check the balance on https://blockscout.taurus.autonomys.xyz/ + +![XDM-8](/img/doc-imgs/additional-guides/XDM-8.png) + +We wait 10 minutes… + +![XDM-9](/img/doc-imgs/additional-guides/XDM-9.png) + +![XDM-10](/img/doc-imgs/additional-guides/XDM-10.png) + +And we have successfully completed an XDM transfer from consensus to Auto EVM. + +### Auto EVM domain to consensus + +So now we have some tokens on the Auto EVM domain, let’s try and send some back the other way. + +First, we will need the 0x public key of the account you want to send the tokens to on consensus. If you do not have this, you can get it from [ss58.org](http://ss58.org) as per the below screenshot. + +![XDM-11](/img/doc-imgs/additional-guides/XDM-11.png) + +Next, you will need to navigate to the Auto EVM domain in PolkadotJS by either selecting it in the network switcher or following this link: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fauto-evm.taurus.autonomys.xyz%2Fws#/extrinsics + +Working from the top down: + +1. Select the account you want to XDM from. +2. select the `transporter.transfer()` extrinsic. +3. Select `Consensus` in the `dstLocation` `chainId`. +4. Enter the `0x` account address we got above in the `AccountId32` textbox. *NOTE: it is possible to use the “Substrate: 42” address that starts with a `5` in this box if you find that easier.* +5. Enter the amount. Which will be the number of tokens with 18 zeroes afterwards as the value is in Shannons. +6. Submit Transaction. + +![XDM-12](/img/doc-imgs/additional-guides/XDM-12.png) + +Remember that there is a 2 tAI3 fee for the transaction and that you will need to wait for 14,400 domain blocks to pass which is about a day before the funds are available in the destination account. diff --git a/static/img/doc-imgs/additional-guides/XDM-1.png b/static/img/doc-imgs/additional-guides/XDM-1.png new file mode 100644 index 0000000000000000000000000000000000000000..31792706b2ed304d4800a0962bcb081224e8d8d8 GIT binary patch literal 21942 zcmZU4Wk4I<)-G1G6etuZT3m~}yF+kycM8FsQi{8KaVYLC#fyaE?(Ul4aMSmEcFz5g zWM(CqwfD^4%bsV2D=SH(qY|LPz`&r(%1Effz`PlQ9_u0_Lf=E=KAb^6V1cUAVlY)8 zqC@Bjf|aPEC=5((EZURF8|XR87a1KO49vT}zc1J!r&4nm7!7$@2~l-V!_(COb)4JI zyVsI|8WfXoTEpe>6mk{vUzBrSC{>xK%75vhc|D63JUx}eKX8N}u$@J*|??0eN z%Ks^d3vB(r7e&tdPXQS$@ZXjEe*(C@|1&D64zd3fAdH3ln~sqG6riM`{hJQd{}jAu z!TUEIIR7d5&w11SrvN6AB<=Bl^I7J96|uS-aE=vDu*Y@rkKHJ~@V#DK>}CwD>Sykt zC`x=OO<;cP7kvY!jZXZ?pqqq@7#zOZmvem zb1@jDg37~lS6r(C(0NiQ@(0-qwv}va8U87=y$1OcJzQVUkkmb2; zqQ53<%E}0~;NRO5wyeBPd~2Hh;&h|%%=(%pps~(4m=~asBR4TaYW7#W>RjEW6Gd^} zUC>_KIHUS}=4B5-@dl|?J2ew+4YSVQe$+6#$`}VmF=+)*q$E%=mVeD}fq4rvr|Dj4 zAb)AID)EAH@+^sJ(lrvWye>y(DWB*_4pogk0zp+0&MP#p&0*Y`ELjx{wj{R!&}HJ5 zavLxcnO#r0{sbq6vy!!4u-wN_2VScS;!kKkBmA?lO&9Dvr2nwHCF7iB{i)gn+kE`a zd;~@}?eP8?hn*?L3a6d9fR!T_?w_G&ZEsj#q`a6QQZocLg*WR%2D8MH(W#=ROpm4q z>pTbV!VvFP(Al}IIHTxe%BMNLhYqc|fJv^7@Sx$ zV09Err7g6nm=8U;Uryrj3&x}{h3ffeFzpd*LNVQ^?}JxVlDt*ZcrpdpjuUwa!vA_$ z+zIB{<=y2tDn?csHl9vg*SPvYIP*1cb>GIfJc_t_mJgmDMxwU9ob;E3y3aw#_X!dI%u(eO6cqJ2ejlwadyxN0ZL(OVMpQiqO`(JRcyPas*i=@d1) zgpl_4M7~%+z45lA(i1H*pzYp4iIH$EmfUTd-V_gE!|FyIEuTvTEJwh96Ki#MTr7EC zaTc3Vx@0t5)!fd3O;g+K&w2g!;&(f9En}tTbn$|^`?outoIk5QDc19AnSFXt>*5R_ zd}Q)2PD00w?YiR&5buflw*Az3$4Qpl6vPpwwM>hmXdb$}EzPw&{|)<~ghZGrd;fq? z$6hm114%eu>L??CYRuoa)ir0Z8CB<2F4z%v#s<54v{_Lq%5damc@FsInAhXc$zzo5 z&g^50u;D@l-u>M(!P+oGp{|w!XWNg6)5xbE)zJ|bjVH+AX3K-x`6TaptZPW^2t3Vz zxF3jN=#n`5u}<>#inIW(_JX#2#NNEuqeI%@h&}OtHe~+~u!3U0`>n@K!2p8Q-B!TG zLxZ}oZWOopfr+DG&RB7YDRL&KVk_k6cwlLD;M^8+IrYwOMUAy3ZB@ByF>9KhwO=!T zzNF?MTsif4GpNerqj7o#-cl*^>SoJ#DW6jm{24p52k+WNANBTd75`bO!ceb;K5C0# zm;*kKY-3&#-pt%6n!VpRTsLSbNbw!}EXjwg-^OnSSz7V*0L)whtRQ4l8yBwRZn^1Q zq1(QLa>_s41kW-|Kl8_gy4y_fqo$E#WX%9Uc4Vz#ryoEzD#D|Pi0d%DTT`V^lX`Sq z8^`0W<98;NP`89Hi*`OVAusHL0BNshuSqJ#B4$G`@ZS1CRDUxR+m}=%jU^xse7ZpY z#P{q55wajJtBI&Pb(XM>W$uENsDRohwTy{D3Dr##izS_D7H{6$bwp;j*X+k)CP2Ht z4q^Z!{HH1K!q%O@HU}IYRov?_>Q!p{UP!LcfHW@&erI})zKEg?K`q*hF>l~6!tOX) zHjn+XAp;5_sYc`IVy(dXuxM@}+Y!!xd;=@Td&X|R#j}@pf@;`c=sNfiZz#7rD$9tT z{(X|^oPoApYnoS(;6 ztM&q4E|=%vD+0rnn2Q_%?|&W5#Ml9RYKW+CkF=Q#qFfm9;{&}ea7c&jj!X6pmcElW zU3^f*Q-JqA^lwgU@rq0*ZA!bpe*fF61dY%*3tRdn6JA|4`=jI$IjK++P93#385zc4 zU2zLa`I5b1Lx%Zd16sY;WjM^+n<>ZNraGk$Iwp}i5Ha4*tAXqKrmtEF*Uu<4-LxTL zA9IY4x2z4x$sqTd<|@t*R8Iv8dk3!N6~xp|6d(GSo*ZiWCd&6$8)9NPV?_^H-X%kJ zOp_BKe8oy@ITbrT-821FGGvQ2e#(D6@=bHcw;pRSC)R4`OtJm` z+~0eCYaQ4(;SmWAK0f@ml!|Zr^Mlu)vToLtd1*^=VUV6n(l(a44U&d4q?bN#l}Nyg z4sU$SBNb!$N_?B)t#FklrLAB0*uXB%o07MtKORl7fUIv@v=gE|v>zg%qwpMJ$bx|R zOnOLpsMLW2D^ZQHpCde5w+(fLB>Ka3CGyrCgi?MYw^QrI{jxPrTvqLm{0TX`T*ih5GX7$iQaul%yqQ|1^G$hZ;Xai? zj)eG@lC@L}zq}j-3e#3EsurWr-iPH{6x0f&wjhD$+jGVqbB-JBBpk^y$xBRrq=Gz9 zvo4qaXmh>Rp)+hW8*|<-CxZ;B77y)*hfS}$G>62(WPDm=zcPt_w~2xIUi zKP8tO2YcTpym)0?J)DqfRx(T$!q^mS-Q&m!DZ`BphScsbyK?X?w((>n$|y)dgB%zG zj;<83Rz6b0HJ&3(W(-yCE++rf&4(88{pFAfIY#3l2D*O1)2GDr>BQM~fzF1c!Wz+Q zPgvr{ou?mBDI`6ZJ=^80NU4>iN!L$PI4*0d`+^Q8z#Mj`b3uQIVFJpxam}+1ZDE0` zQIvJ5f$LgOw z^EXJlz93-sI<}UPRZ$QhPpv3-&^_nq?dfGf^v}0wpCJXj58IJd&ugEEa{aHkpB`2< zmjLrus;+JFZE5TS8DEWTb8)8*0;+Kpz2y!?7u%-YsnN&HWtPW#6nStYsi#b3_y`Do(( z#ybOPf>dm+s$-~QbZyJdUZz;7j11LN%TkWaGLD~EO(o#=qC|QjH8dn-f8eQTRkb## zjR1JHX1oRnTv+w1EeI@JAP&bSb{OeFkBU;2u5n75b{Yiow#y+sso7M z25t{@ROjHN@3%5EtxB3@WOf{+cDn-Y-~SWOQ52oW_#CFU$qDPO40;z=<)6QExW#8R z5%@6BJbUu{lxDRbF=%jJZ}ylC8)K*}JKIro4D_(+w4yK1b=fL7)bicSp)`Rao1tL_ zr~P?l%gpv^jv*`z{4jTE0=>7VxwO9`GO;Y1_E*lfVyh1cP9d-9fSFW(OOMW-@5V;( zRx`pKUb3h@<*~pm>o-2Y#BhTj6XWoheSYjSsZIP|BJ<)?Lf;g%d}O>82P)RXLJJd) zZkg$sqec6jn0H;Lv25kghM#0xu0bFf{Hr!-SZ#8o2F$bxl{aVzn341IBD2#J0MSc} z#>X$58*W|=JqJ%T%Y88?D%0^g5mXM^HGY#)AT8r(j*v4_r+4@1_NSzTy#mGT_`~lB z#XZAEbd-YIVG`kg#Vs{pg?lm7Xi>|4$)U5| zuVuxpfAs(H%1G#A<^d^ya`S0+k_y2D)?{( zQ$6qZ@{Jy1M6GUB(%1qYVY8j^F!5^RT9QoZZ8NRAzYKiLg0NvhW+HLQP>u{-iKZ!w zNj(>8jfA(A8&x`(Qtla47ao9U;BfG9sFCHHyvf!|H?jmsk&}-sz|B6 z1>2Ki$5IRqe$a)qwrWnJ6S`!%Aq=UHfi49b1|+K4J5P`@0yf^VwU)B*!JDh>cAR zr3o{~SMDmhE-RlsFotV6!8BZkKRbfV58NroNUg2^P^}inPrG>B8aX~I3%_r~>xQGiW-0l$<#8Gy1K6u1Xqg9oap6M2pj*9lASD9cxR(3x zW6);CaAPn!ld{J89f^Xmf(>6huc*(JzxCIC<_>wmXl+nQPVG(cIKA&Xjjh&F_0uJ` zLZ$Ko!-yUYb3{Z;g>@dP(^2O`!UcTYVuLjSOcRh32d|w2Lj}&qqXdgEQRJn1Dr^o3 z^Qpkox9Lj9)nl?WrfO+jq#eB{vt}Q4@t$HHy5GG}Eta>!v~h+ad2PmkHpCfT%V@)Z z81k1^Zn~*Tw7`v>P?mC(AijwuClYIyjtSp>sxPL7Ia0epIK4AlUzDJErD={eC7vyLjRvi;SE8E&$R#v@z zQ??DtD~iG9Y&QV(NE_hrm(Q9l{Ic)88HblEP!)t^)5=eBM_}a%BGFN)tqUkg;Hj6b z=S5_*KFm!fi0K5^o!O#FTXypmJFJX{FCXbUZd_kubAHg4LtAJf+k>>AeBQq-*n(EN zikzs$W)Bk9P? zp9O(^G_z}qFDg5!hrt^oU{hOl+DXD!Zf5E)YOL)l?Uumsb?W+(PayD8uW*E-#bQ4* zDvc0(=2$3)1F7LA5L|S5eB0iN!r~sK-9tpM(AJgqfObUMk1x`on{@@9`^?GjPhRn| zvJZ|91>|O*+x5NIIBVU+S))^x;V6#fZG?3H%Q2NMmI`h8mnBDNxs=U=_{?|hS1S?l zqkvn(!mi)i#E-0qE4KRc?A<6j#I|4HexBA7PgtxTE4tpoB4W$4ms?j=yD)8!qKsX? zY0F$_%nQU#ogm6c`5ZEWj@-vVK9|ZTy#Ln$x~c!Y&(gb9~A(=0+wJMuS*DgIN9R9i$FrJM352$=cn5&l)PLcJr5R zem43tf1_0lpK+@DKUlUiejWy9bm{WGcZGHcz%=+1fXTJqel6@Bh^kDvEW?pkTU61H zIQcL>4c+*0xHrWu`Jpv*cfJzRV7>Oup#iDeWAyVGBob@W`(6IB z?qKwxn(xf{M(|}ywiW)R%KWOJ;kMg2dQdg@;J;Q8uz)VG=YF&Qg)+D^^r&<(aZ1>e zHGbIZsr0UWp5j4;V&qFI()V_1biXv2_WBy9%WJEWi{ZDYZ5KU1itmU4Qa(Od&6>a2 zb<`Jw$1$jsXG~*%X*lPXC5=&0LsP{UO{U|K*0QwK1B3dq%VkFxz?h273`f~~XXrcN zmNJ(thL`xdB!LltVjq6IVu;YX*{b+5HosJ|lg>a*q{FhV)))bPPehvcIHiheXiBPC zu%uOU{ln7wXRGVP@ExLQZu;x$duLoKn)VuSkckvbP(2)S)+V}NryP9(X|+Y@Xh+7H zulS!<=8zV=kuqVAHv%1(nPvWSj8uTOQ!&C>-tdaW{S5X}pb=_0+lbAHD%Y3bYT5dz zqg#0eXTP@r_@hYZ_6D2!sWB7jA4E3Z0*0&vyL-WVq8f5cRO65ztu%ulr&$P+IGB#R zGJ8o+f8STL{^)2HTgPlLXDlrKr){!M-{?8TQ*(EAs%p=d`{xj#zMAGnehCebfj-^B+N_z(Q`3m2~Bc2jl3_xG$I*Ya+PR~fET zA~b*n)H`bLdHeg{m=k8F&Hz7R0LIYX4>J?<5SL+|-K>?JI`UrWW(sX@1RRHwyd0%% z(Vv6uy8EjM_17%*_3o<;X@y7a8b}_Hr?1q~QeJaNNoD}NkZ1^mTq+LY?bvfXgxFN2 zFCVkp;qrMm>{mJq!OWfBnyzURPe5E>^kVc8r=B#g-TUlIy|+hh=VLbbf<4|Qj9P2%Q3V88ZY#yR7dfp!VMDqXryIATUC`D-cDP)tG5i9Tsa`lp1* zpVp4Npm0Hyht`nDPh0hgmA4&)KJ0J0kqlebwv`z>Lwg9P#!C5=s_V}}T)PL|=x%92N zaFYD0qcKC6&waUlFX8J*=Y~GS>-RH8E|ok6{wak^a;7kWh% z>!EXq_h^BzkyfjoRO-6OG}h5O^Y*gjP5))BVp0&R`O{&0->N2?R7GoSy{+?D?kgIL z4?*?$+r5fi(YCdWU6<|QS2AJ4b!TC#^1UfABzWXvP9KCjQD{71kU{r>VR}}qu)7W5 zmAg1iduM}bwO%*z2=kf0JAAqA8^ne)*RARZ_Q>DXve5-eznSzbqJRUqIdG6H&>3TZZyk#vmrCdMOf{hV1y?Og$|GMp9`*i?IjJ6 zia1{RGVd@sKMyGGe8+_@+Wal}#yeaFc0D8Xu>4SF)timOKZgMOCv`#11`%~mcM z_#WW4NVLxa|3or2T0iTcB6wcQ8z3EoW;)C$s1WbpWl||TzdqU&-2OWXrFSAsbz#cc z(31RcoZG-(zA4A>0`=2YnLT~#&Fecc6)=SKi#qjXw~;2{GehsBuH{sI>71&H#T$1QtJXS_Z5JdsCJI!TTHOBQhA(qs$uKL&TXeQ zd0ghS4`@fsNxZl(=DwU*lV0s!oFK+wKU0ZxT08v}bqAw#!h-c02TSU+W(vS~v4P+i zdLQaBPJ-}@8AJVa_pQ8G9?6Uhy{Yg=3BdJd_XKJuZ-h7p1c@bu&mmuYkre!&_Fo=7 z4~;t0PuWq#bFaF%Ffg9Pi!Y`aem!Y*FkJ`_gV_lNZ`>*R5vZUL`(Wa*fT04isyB># zv+9)?<8>b{yRbd$s9|Z*D&mH$@r-Q(_!-)#P_ZJyq!pWya)VI%|YyXww$!0NS)i1_bhDq-n?p69YzXG zmQZj$t<;deP_rEA!g5V*afX8!YA-WqTK>SoW9m&$FJ#3J?CDz32Z5FtE%c>u30;yX z>G!~kg;GjtE`=UM6#KtJV$76R>=dv4lzM@MxQ8)>e5lCz%#Q}M(EsQ zh13q8Sn{xx{8dn~*ad#g4NP`Oh>0bi8oxv^(t`|Dnt~e_?STSRmgJnwI_aT?eCu?d z9CP>p*5vIc`r)3z_A6XC94X_EnKfQ9zvT4ILUzehPpbtxSnc?t)3|rb9(ihVD$RkeuMYhz6j?LbAK_2f z;lm6`V>SVeC!TyMf1h*nfPWXpU3W3}7N>T}&1x`>Re6tu9+~xa3}*oedtHthF+qyLMkp9X`!r zjClFmpz=DE4WIz@7P9uAI((iuI%jgczdd%qRQ++O32-iY_>8Mt0h5zvB`4`j)_>aH z+jiojOC$Yp=$=N1I{%BigSvVD^>;z- z3hd0BAA3K}whlDsfz(Q=HIAdKyXPnTU*f!2_7$3@ccEC=kC98CgM9BHUH6Xi;v<&t zS1s(evZ`~aU(sRk$|eAmL%aG_aT2GUZLbXdqkH)Tr&N9Z!BcCif-MMSFk=|rDXe~;e zaMPjJr^Fv|$*jt^Q$_y8s7fC<*_|v@z+J%1bKer<4R;LeUx3Aulj4_CT>@b~z;>6F zc4NU@YwmIBY?g}Xn48&;$iogBIkR%@>EVKBfGOm3 zsnk;_W&b*2v5nsFx?!>(IKJ)pTv}T;Atebq_i~-~;zaffLJb5k124L(FE(?lYJk(E zi|%7yXMdbe038dZFRx7S>pGj(Q!P?MPVHg3w=`?Y6NG$1Ej<|JJ~IxM?}cJOGiqt& zLK{=g5CGB4Swx$V*>bV))z+Hubssv^4cx7J?sp4Av(BjQN6=!scpqyV3gcRjC* zA1gTM9L_bew`oFO_O7~^tIqd2yJ2$>yGU;VAg;=wzZ;1A?*@WGp&|IJk5-rTXv&_2wbBAC8!d=zQ%N$(;!3P%Q5Aiv>sP z&QH;#yN7$I5;Q>=*16pyB2Xxugt^59tccTCSEL-8k}K&9&CL#d7=DEOWpn{^*CBlW zi(#o0IUz6wc=dI1!TkCivQrL_ck6n7fBYTF1FIl?DSoXDqZVr3FZw9rw2uBYAY-T{ zBq!Vo_b0c01?iU^PLJcdZxoesJs_5S{zAAvlG|Nyb5w)aw_hc>1p_~1KBrabyzcFa z9wlORHavCfJWqT;OcJ^2lZ&+hb?#g8!^YrUcXwjQh^`(8HV*Ng6X|X@iOWwdvlD6&6;5&8A>cj^j$EuTg!>OW9JKK4w zSrFq~MU>UJ5_h-Wsn=~BD7W2O;kf%P6nh-^@~x&&%xCrdnEsI2EaK-CzPC5s@9Hq6 zJa?{D0)FKOWW2m1>j_Quytmrd&hm{(UA31x_xBpVCvAQ#FnpmoCx3S5)Oy*JVb}+q zgmw+oV;s&KFhA0_d(Dr#yd6tKU)NNt^u2sD`??q)AJVP*oL8sDi9p~by6)QvW|tcr zg$6njf4PK%QIQR$o%c858g8!)g4bVV5~l0v=qr0%YT)F@u`;^xe&i|)jnJGifd&)J z_76|sFZO~4P@Yxarp+%iD|;Ub7*yFo6VGK)!Ve$qbZ~3qECBnePf85gsrt;w(PYj$ z=ZD=G#1$LEJgW6q3qB%(h{S?oM-=nFsT`Wy;{1-Y2P8|7)~Yj&8?y4%qRHNXCe8xt zKe2^`&XOFgo)+9IgFW&78$bNSo$1RhzTgV(U9+R#^FLJj8YUxSsV7R7jFfy@Qbne7 zihgEW_B*G$D>D}3kf7RXGkB%ED>vGvuuW(1X~q0Z1AYL%^AV4~V-ZNL`19SiEBMKN z^ZBkU*XC4Uwz|13KaxFQ@&@zlwtr(|J~st?mHUXq342YH_~6sgJ5*VBieUgVO?>>q zHiwa{Wg@DUytb>qxqXYIT}|xZYua7QOCgi`>Wgz9T6aTZvx9f430X%f=b3DY5_xu| zsDgr>rvO6)tnN7y9kXq{l)g1WUfD@1tdimz3?Q5*ia5hzULY$BnlQ_z7D5|KZohq zyEp;L)vOe|Q?QTe{Nj=x37j=;-elp#bljc!v-M{#sXWA`NaNEYB<% zgezHg>b<$L=spXZXI)-a@f~Mj?^wTD4E2Ki2%mJq`5NMw(=p9B4_4RzbA#zFz{+z2 z=Ej$|y5o6eAG>X-98gem;f233$h&U2V)Kl!?0i?60GgOdO;mwDDWJ0l0PKC8CO2n~DoZaHintn6Dr|I)Tjf9|A=?oYBy_yu^^i zd#-8Z)QM?rot~dXHjZkl$lQF;;^eP$$Awzb9*Ls?7Vn#>ReKdwgrAZ~qz0M; z=d(mB6k>{xfx0x3-3rg&8{pPvK*Ho4+;}G(qi%weYB#F`PL~hZ!ML~|1E0Ilhy%Xt zu(%_9t7ed!=J#s|sXtXFkwsI$7pVI4qJ*NCt6%CU9$V`v2~T=#_3?uPPIaWkO9W2S z%ZivE5KmLFaE*r{Vl2NG7WGo;ZQ?`MpI8E;-m#gY$6D(_%Ddjd<=0u+nJYE9Ut^?M zCYR?@JT=SUkIasDg2m|jUiW`2)}FhyTJ2wvV`cAzcZL{rEK?3F36rWuW61O737d## zCOnU$A5W#ioMoU4_9%+q<*8WKFb{2|pfIaGC7-lbKZ4vEhVFezU6^_5YuS?O-cvS9|v1utnuoeX>~VW&Up1?mE`hAYt8&61nlY> zLvTWTGH~7}<}E7{@XqIn>Xe`*h8z93!EMfAwA3)IDiGNKHw2ijYd*8w$}74M?*{B) zgNvY0bc#Ip%sW55uDlTHDBBmqObtbGm9^sHWcclwpy`8E?pYGa)8gxei}`h9o@)ai zcE92(75&@*wz9}91HB0%W@mfp52Q=4Li2jn?AhEJZLec02FGD?hU42uiKN*njHWrv zFSfuC4-S<^_Efj&kY1xp1i;S0ky_%IV6F|e>2Bc4_`5{M6Z zDFe%B zip81F->(pouG3gnIeKE<;VxPp@SaPZ2iBz(HLfg}OIC19!*1R54uNTBrfx^vi${A% zGv0-fq+O1?)i9ncW*a_ne0aPI#X@K7+m5Q+hzs2z>30(j)LT}^gk1#Ne(hMM0vXD% z!0WFFSMpH*?3y)Qk|hrGd*f5Th1h~AmsgP&vp2|Ri@JRiO~KSv69GNRAS_=veCaR> z3tA*S=g7Eg8ucm+KTvFkBK;ZeJN@eZSyGL|5tG76MXV|kLsaoL%v&1DGSLt169D9? ziOO9 zq%WHh6rrcCiCv$pp?jb|D!s4`0Y5k_pfT=zVlsyCTa1|dY#A)IIA*Pm_@S79dgDy4 zrZ+Re)7P-DaB@CsCAGJzzjJ-s@*+Aj^H&hjX}ADq&WYR07Gdg5B|o3h8VZZhW+MqSaGcKp$p^*{N=1ebbABZdY) zKJ&E3eG6TA!{0Vs%RyJREC9tcmdB|Lo<8%C#R^VHzQ;`z^M6p(hrg3fXcb&>(>F&< zm!GjXwJGWvBaxY9(t?RCvEmPi{ZTmXIo`!o^+#K$0tb=!?1AvD{F`V9p)pWXx$u!` zZ+Fq0sVh6SysA6;4*eqzF^>XJhd};$)?vau=jRE>&xU$8oG%M6IOAg$=6gpFhWL*- z13w=Rd0yuUsf*qO&9D`iuR-9h5(~lt&J-gO9&-zjXoSD% zDDJFzHR-Pln0P+ua-)a7hu$Yr)otiti+XonR&ptLtx5 za1ybb!O)BxJXS&Cme{_~k56N*0m8T005r|~eym7m$Nz6L-5_}Jk zIgyghl>eJZaE!=1wpt1(&sX^zWvw44GKu{_Cnbm19dHiM=aV!vjKt?|%<&IJ%p%%7 zBCU3?Uv+3a81{R#t@6Dm)3KozS}B17<9J1WYZvP1FH|Vtq>3JHHZ?(z}J+CIPg{FgKkxR9PB!kpbWV82>|xD?v?f>;nf&d+$HhzS_-pktu_ zaq`FHT_@3i>+zp}W$e&nCyHwtR*7#4ea3+1>DivDe$S>hudDii z!{1l?XZtHbkIA=duP`)RkC$N>Uk*{3ozAxepP!6^F1uEvd=RNDJv)E#Py}wgQK5vg zK>LFl2n%I8qVK%TZm#+_cB3bFB7>B|0=@bna80kYGUM0_@>caB1~znzJ}fDmHUsL5 zq{N(vSlyL@4%oLS%&foM&Sb2lPrZub;zDWs+2N71J_LGQc^%yr)wi5vd8-`SehCTv zz9Ds9;y`+kW%J{5{sZV=*vi*iRGnhnc9*w#XeeILYY%`TkG)0{z)s|YTln7Uk-gNWQhvbj7R$a&HhvJb97Ee=E+&hx2<1thXxSa$O$!;5RswI*?t@2iunrCHGpeKG_5CX@h8`Ve>_`WaFD-ePa^qEF(NUQ>6GxQ&NI!dt!>4ue&lkZEwchG zHU41{m~%jVlXtL^+WRxgg`hp@bZo;{+Nj!%Z1cN=lX0N*2d1gJU@nx%&s%Zbj8a&Qw_L;o%Bm>xlqbJVEm9FMX1ah9GPLDmBu@`aUfa_&{W`;BfTd2R-C0*wgbAC`BLj#d_kng0tsw-TLEd zeRV8Xn-9lhv<@r+=)(1cKgVeEAv4RGdKm=mrd<87jL#C*Z8voGuIYKM*f3UUE4RzW z7}EUq&S$~1#F2T zfGhiqj}me6zP8Gr@pil!fdiqO5uZmd5hGGkF1PEIVqiz!v)8+Q{-{7%KTW9iL+Qxs zuv1ry*R4%{2HvHWT~F0%{P)mymV*18!j=!zf-JWx78tCCpT~Ms4^9RquaB?@h;1Ek zM&_vyWq7A#dFy$fT$6yofy=KC2A*k8!!}>~PNl<8dZ8f^20-I_E@tCW?7C|XqI-n& z7B~6>1lY;I@h{HEsgkTu4DEhoYQ}K5OrDr<&;g)5dr@fjnGoksM>=qGW0)2$I`}cm zU#vI$U4yWRbIy_3!*NLFt^haT$Rq#!(1t&NyZ!~ytYQ5XVnNPm%jAE=d92my=yc@4 z@wH+3McJPnTXbSZ!rmi5TG%_QHInMpv1W5H(+|*L$R-7JwwUxoP!0XaMHW*YmT1#c zhY|dZEx&LaS3OsT^xIDYSlpu@1HJ4gO`6KQG99c&buNQ@Vc$K-CUH`ihiJ6%JSZ>{ z#sEj*_r$_7H;~hAT`bpiw+ugS^e+jg*BMchZ?54#%%fRZDZei}p{R>{#T&-1 zLAp2fCfu1sW(5m6mAI(1^01$H$e`>yj?q6*28cd4uUAM*c9NEI`QF#Jh6W?y;vpwv ziWG~6QFLVK4w6MP&$=in%Y3$8YF~G;4zsjD0Su+JrXy&Z?Aoz2=dy1tAAR&`(Njp(_2Ix{L=@ z`vup<)UnaTMXwDOnv9v_I@}^{>sL=RHVg0w*uo&beTGR6J!x-{LcOiLeY+a;nkm+R zVjG+*Q*f|hl4>^z{bq)En4;0BQ`#?U>M!Gh5j@i2RxM>yOsq>Z`)l0o_OLi8Wq*!v zU2qI(8<64fOyQ^2{az&Ea3NnP<+;>k4l<=mzM-d$s1z=&P?DOpnl;J5om|F2RD?UDA?5E}JoK65ca>2b&=m*Y|&969v zrnwqV;N(~`QL0xsD8KW!!~&^@W;YrlCyg7FOc}{lS8PPUPDV|RJ()S>>Aol~m*e1J zuVwuz9O_9?9d}fF!`K9E4L}*P)E9&Hg&#uM@4d(MMy54g1<>u=_zS`k@K1Ad@^NR5 zrh7=hqAxI1UHu1k`m(PL~XJje-~5hI8_0{@lqKL+5C$HXlnqRPe6RWkm#8{$xtJGr|TTzWAE9)Hl7ghHMN)rO+<3s#mkz3Z+uYqD1U%*>v>_w45c~ z3RKE9iDe+(ZgiEzV27`TiJ9qY)-(*YkN*e@mGTe@PcTo+q3m}yW&f<<<)6GSP*ou1 zM+MX<)Jd4oT1HPlWEzwG5@B?J&|T1*6`t6maLi$1WISL7FW)u17eYdy40iD1hjP?UCv9BEEo6drmkTD47}b2JR8m`_b1Ud(l{I zRa|`T2ROE(;rX8O+A(sX#*MXZbxUlVAJY&%uP^nG+va`jBdjJy)~vI)~8PsYeT-uz06tmqz$E^j?k z&H5(JY*z68OluRntka911X|umlZ8^Tx)sMf6TR%Y1vW*)$BfgvPuz{6I*i2{;vP6e zRe=90qC9yJG(7-@nO{&d5;!Mu=2@-+m>(89DvFONOibam6d+Su7srZW54NHhwW zl+Kwr`~?}9JVxQqbdy`;Fi@$DlWc!*c`Ga2R{D$Fu}*MTiV_Wo2q+K&N-lYAY7f1A zJf%%^1qtk6)Xzj#)is$OoPOCmQS{aP%6$+v72R+n=}E2iQ|lLLQ`J)mhu7`?jLPmp z4|`v~u<%NM>V!vhkTWYec=;X1f4Nolp>4HLbTA^FHZ$yq_ z9bW4>UTGe;pKk_U3SUVPZ13UAvzFCkJOvOr%}R|ATN3;k@z{NoRb5$>tz&f^ah!Gj zkFCA~2Fb!h`W317oReL6iDRjSnlMuqzOE8g%jC4^5|zV6%8TyO&2!eB!iTQf$!+Y} zv_k;(6*tyamDF8KTi~+VQFK0?;z*+NbPy>=d0u-A$57JdMY0?M*=>lKRna%Q6@BG``_WED)VFB|pY`2@)D70y z^7VN_o#)r zwjxQjC_=wRfyepWc{ngYNS5_n`h5m{s2gv-Z#zY)3seA`TwTvl+!|lJB7g%iTLOhZ z>CFAeEi0o0(~e=BP{|Zq8pj+Z&+}@Z9YuTN8N-*5K*EQ)Dc>lS09jt2rIQ@WlnoJv z72MLzWh`V5@_LBn6L|4B9-tMEIB&L@6B6AdxHSCF#s`m{H>W80GPVuu!>%A+VsIQUEPWdvS7nt=8^YOZv3Y0p^y4m|*Wt-CuWwC>9QT*o|VHY8%+ z?9*w@?)AU-6WnZV;>#zb=n>{$Jr5m`^RVcq*r<{7& zID>GjLQ%kX_VtLe^$Rc?qqVP?Sdw`8=$F-oXo9@kB?+Gzac~*(TL@Ql(_zK}Ml{A6 z=rz)@v+BVL2V*jXOT_oQl4=RR-2DBW31=zSrB1oxJ>vt@OfZntTAb z5Q9^25ek5dAnCr?k$0fNBFB@g@%7Xm3XPmI5t*En+nc=!*u-?Xc)E73hzjT#a3~d= zg2^6&V{Ml>;bqe}cIUq^q8b-{+bK@1@%j#GfG63M8&s1gx-w5U1UU|%(C1^D+;L%& zIP|A>9oXuOoYz*w7A~esA)qLsF+!Rb3e9|lM2P(!P8N%KE}<_2B4 zC0cPL_(~*!$8gYd8?T-{v~LMm3rJGn-dXvx!ocUt%WJqnI2v*BGl=9z5#jdE&Vs;Y zDak1R0`XS#FTa5wKqT(qETK8^TSlNLo{`~7_ZO-^m>cgOs$GzdjIY+roS!LMM7*!~ z+TIy=e86(5Lh35D_?eR-TUvWC{7u3uzxJtaWsI!pcXns}vlzwoTR_9b1&bKiO=3=D z9z&cy^0}j(qrU_4vRtR+T~VhE!QQ;}oyp1Kf5 z3ykJ#B%RxLW^PFCgFnYUp&$If^p}t;QcpewtO?8Hpjv1xjBCPs?H2ojE534w0*T53 z0Vr3;go?5mt9xqi2`*e-WniRHNZI77v%iO0fHX@JD2$GVHP^6=+|9ZSmdXbC!N8V} z+)P%0(WGIyTK(7#%yISPuj_~61t(m$3zziH@GI0ovRBTx94uFmI)@Xc;nCHl=WT@=PA=3;RR74Q-l?88$yZjMJSxQUQ9}OB-dW zK}k_><~KIjc-Pq$t|Z6~GH z)3|m>BwF=Bfe_u%gUDHJKzMR*D~2~->B#na^MUj22hW2_I_$np3k5-dy@q$S{jeBO z6?i_$?gYP!yodWc&4qmG<5X}c;DhSXy^NL8_K`5KUoCl1KSp}^h7%V^gC_%(pZX#m zk<%Slh?_qRq^8YGlqzW2udxb5hhL82B!Q7l*-#_yPO%W6LT!UBoysce5Q-|48^;Ysjhue28QHd55)4Z$O}*ngMIiPF8w3sLcNf}v@n z>Y5ek0Lc#&XLSsd9GEs!4D`6VG1#K^It}gip^x5Dg120DFljl>HD!ZSgoaR`Te&=; zEI!#H`3l^pe);RDyQTqC6_MvF;Ztiz%BJAc774{N%*~h8N-fcUM&^}|>-eY^ikSS9 zzF6@|CimqMpp2j-ur$(T=XpDdH`19V&a){m4)-2lZ1lV5Vs$8sK((c|0=|5uAF%R) zvv9KjELoP4%C>ChQi8mv2Wo+YeJ0Qub`J1v(u1;b05kcge!3n14e$3nLmIZuU=x~8 zEDFKE)S;j-+qKq|sMuDTk9py?zTShn@ro!bn!djohp$?N!2(!*XC6N3oNvKlDRKK} zXQ3-o+KSOzWOW#MF8Kk>B^w9ZOzq+U2?%Y#v9%<8o38(%J8Ht{=*ksKt!}AQ^^Cq8 zb?7@Qf8JL)NnC^-i)%co>V40wIuwP8uGp$FbN`0)1JP9WMNrVt4x@1HFez8e;&5GF z%xLIsemt>dz6JMYrJ<)3aE1V2qJsYy@fmg;)M?IAN7ljjcY=cVzw!%?CwnfFx~gN1 zX24#}Dxh#nX6F|+T9z5jQ1Pz1!ZAE>)x`EbN8J$aHd%?P?Avmwb8M+DOZA5iXQ6yxbH+(|`j@2f({6Dr0AG@b<-QCqjV`)ct5{%j&KD@R z*TU%rpfl=M85qS1pOYin{K#|_@dcN4aRw=YV1U^e@(J7Z>7PtTe8W}B{T@E|{B`07 z&FjGX8iit_4CJM*LeL~Pl|nC4VGsN$U_+}d9I5JEBVGZ+8Ux|&w~jjWt~+q;Ms$s- z9a6^iF4$zIS3pB^s@g#jpE4DQ$+^Zud{+&Z9$8=&qA5`C%gZ&QOO-8irx4k#(Rr8f zv5MNy>RPE%4_`dC%Ej@{-C2S-KIRPWF0E}w+pGAyR9!^bWfU5QGN&*xC?S)fKJhpi z7&(Y92f`E$mVYGrK!XIJaEn#sm9@IOAYKj5jH2%Xcv>RTct|iJ0&xbr+8g%NG$ass zKx8+tDh{`upqL}WgaiAk6X%9n+iF{q4g$Ny!>!kQW1MN?ugG5b#p?x{(xpFT^02bz zRVf=n0O7$IXpy|o6cCG@dd;_e>$F#^Bm<&7K%sz!aBGc8M!Mr14Io%_zpF;pkpvTa zq3=C-SD7e{k|$J(HFFsi$YIPrj%}KQ13_Eo1GQGhE25{m$QaMvU}@9d36w-Y`z<5` zmHt)bl&t)>rk0L;<61XPFVrKS=6+sctsC$pHnpn7xRZ5=U)4d>%d!XDH@le0oCdH` zx_GZ#DAxnH;oywubo;>g`Am6b>%$j$0joaeO_((&bbyJg)VXW+O#5OPwpL~jiXJ9)gQj`Kv-`~^1{s?sb5A&>qG#`7cMjHskhba z{E_Xd@A1P(Hnjkb37tF? z5MZx=ntm_%71G+|35sQR$o>gF_tYo0@it_@9Nj7K21$2zND$= z_5!OE306bs(P*yuefXVhd=Vo4KIVc@|NP%vv&Sh+v~E2K&+0RRA!w3L`K005Z)0Dxb@LWADWaO}E){=l4+B}D+$ zQ-nvL2S_tvIbi^xE)L<<01EUBXD_Ac1OOlp{QZHA*p(Us03SutV#2EKdZ%k%I+%O! zFqd)Y?xL!|{$43CxtZASaF4ujf$CoemD^#nli03O0#iyQ=L!tz%-1Ir5l#bBf@x|3 zQhC6$jrpn4z_H+EBGbY%WREZ6x_+IWo=!1xP6}KsTIn&lo0^)rR`YInH4hbR0Qea#c6oo(FTP3 zp9tQQaK*}t!o{_jd&QMCvg490=;P_=s{M>=?Qa0BGBOo6DqpDTwo>K&SRl*{&!Y5d zQ!!Hs38Nk{rOD>C9=$@aFn|8eF!4S~ zEyPV>vvePz`6BB7_T^+vg+0MrFD*2Fs;X!RFrJVaAH4?L?l50~(S$vsq^q172%Sln z`hmIFlfIOJWvGL3^eBNCXYp9{JNH*9))M>JNGmmPowW11xiH>xWRL^;t3FQu4;Iul zSuG4{-xa}3Nn#Jkvp+486Dgl(3#BoR4qt||dEM;ao?TQ`RX11LoPe|cw*Mj9tCTvC zQzAH&%>8@qFJ^o)qoUs!vu~7qbPzBN^^^nHzY^u$nZ_AMs4UXuUDzWFO&-cjCo{Gp zXmb23D(JPEEM4?r;sHOUe^8sxmt*PZ>Rt_EDE!oHFa=8gQ?_&Z2YFPB?_8c-(g-f6 zoAYk@jq%}!>xwCnYarC_6@ts#sjU^hToj7%5oH#Z-;vPZI{?Bt%r{IJ}JBlg%$ z=&=S!mw>u+-%XG#9Qxm4W4tKC*)ZSueuc*S7ZV>|RgRU*h>5vrGI9(?_x%JDJ|w{m zeuohG;`@#I9iNQyr_akhFu#Y=7Uu6X+H=!HYZ`bG9bTyGBAeyYtG@&VmdLZO!Jv3*AQ6ffp5|O0#d3(tliI-3miu ztPmG`@t|t36SuE#N}Z3*lW5BL=&_j?)ud%ker7U}Lx=QDzbLf|ypjfYyUev}IS^9` z`bO0VC=8#gKsy=y(-vb5waoK2{^wX>sZx?o5|<$go6}&lmU4&cQyfg9iNTVK3*kI> z>R*Ekm8h-wNnrCMoQCevtH3bwPg5{NR7D4IOv2a1TYhnQO5wQAZq8?OXecXSR4}36 zUq4+D7IXC-gxE(P?m(%h#<~|KA9?{=J@)uyrglYLxQNEQj+YdY8#qNmL%$2zxwZ1R ziCGa`NwG7&X$7KxLv}si2-O)AXwWcXC{WAVy!pi(40#vO;mljXw6(g-sz@X^P?B4U zn5me4=-X{2APH=5 zR90%(R+f}^X(x9>$kACC;PD4M_hRGW=?f4 zL2k8VvNv4Xi=>GoqiyaK+ZL@YKLpq&T6JR*FI*{1CMAqh^00*|pN{T?gS#;j*r*WK z8ls0h#i<+AY|oLChL+UfMe+_;Ge?!c39!fga~3reY}7#U2TACWB>K=yzvPgrtImrjxMv}77DV$IRp ztLi<%=)*EJSPvl9eah)HJ=N%|JskGM9OMtXOtq zZ`o?HheL;P(nSCNT@~&6n%A&E|E$aQ76$-a3xdP;jWZ!#Wl}8IipTd&MT<8_+7K{GK<&kD)TM{^)m8nMcugbvM{>_QFt3Sa4DHAkpn}kVXrifnMeRSV5y_uZBEDgaTZ?eAvreb0J9xHVwV$jsfR7V z1|g)v%XJ4o(us7jeMf3>hH4a37p>)hJkXz1mBu;V5Bj{(KKP~A!kwvrcwvGY@rJ`p z!>zObGEL5NQk|!{@94pd1OY+{Ff)wRr?N3%RzZ`0wYbFcaO$8Xi}G+g@;d+wK1k40 zrb6l1MfgGqgW1S4+BMBzNx>yS-dOpdBzW((dPA1}ug=W+i~&dDL$?THiL;AB0KRHl z*(~4POv$1Lq+%~&OKmX6;3#%lw)CgH`s&m+R*~g>^5YvVGL)*2qqxEh48}!*AL2QH z4e>UTkFj$7#br%e?O$HfH8>U)+eza&U|TFaYxjha@S5cXVBa z9f|Hv`BCpp!A;WYx&=Sn zAk?ulw$3JQTg6VVTqukXZ#^#Vr@JfiY}gI~M3hkK1 zFHP`sF4&)j(9gT9cjntX#EZ7K$b<6UkP>nhlH6O7Y?&`DOTdOdUF)BjKBngCPHS?` zHvtR4XScMK1zj9l0`<8{zZ+NF2i*WVSe&6`B{*u|*KhPpgUs1E=lZ{2djV=)#A}zs zwDcLW&<#C_?4nYfL_ZVJgWir>v2Ia(hQYVMYuY4?E!5n)w4@*+8(6(EJb~Q^7?xYc z)U1ESpKbo))D3X8C*newST}!s=1(Ea<=MY4IWr=|Ju(?9VN3D4<*JfACa}a1WuI#q zR1t`tX|pqMJj8I<@Z$ca{uT*j?b*&aui$m=|6Nlx*q>n9FEafg-l7I@&V4g?3(ly# z`gaY9wRUhPbbeu?LhGAK+$MOEBIdv`$IoEP=NcF1RY{gsX5f$)CAYO<#WPvR=h(gqlcfh${MUph(`^Nj^90kdf8> zHOa9;kF~z`><`Q}COneS-tv^1?3Qz{c~8G->zbV~7rHrzx!`yjx$R?p0~&3HrAPTg zCCCgL(`__TB9;?m)wQbwvmHvL`FP@!}CINF{Q*5kxNPNA=h0IZk3$4{LH7vSeSDVTS)0T`n-=@75s#C#d!G<|lqI#F zs{b~DR%oZdE+ZCWD~iTWO=#dF$41uSL!5py^8HHb2o`CXP}tNF9`B2rw@8CRl;gwq zgDIvuZ7Sp4>qA~>1E%2bKTD|O27gs5i0+HE)5NKWHjPDKKG(!u%1o>EHeJ-Y{1Qwc z%N80QVCs%>%ejE&1suzc#Md3`dfyJzJYQvp4SgS$1+%w+67s>;|C}9oH-aPp4q&!C za_!u;fO+*s6y%#D;MWE#O2=TfiMiBl8p`?ymz{f*y^SrIyF@pskVwHw>855u*oX9D z1BwMM?QG_*>fge9HN8cATsV16ZGt)I@v3MX|yw{TZTf2i+NV%?2LMsLv?G zfx-i9L5*h3mrH2ZD2MYQQu;h#HNQBKNx_7+h$lI+YN>FN9of~ga)&E^L_f%1?l?9L z&y9WHiHUt;PHI4QqLRasy8kPry*(9)MU;M@(=0+f z1E|N|GMz$d`Jt!*YSO1aGNU$@QE589e^J)=*H)-uFiP`gx$DqkgM-T2U<9SMWiSK}a%^~EG!3*GxY{5`(xt{Z0c$H=> z>=y&21g71``M#DrJoo%TjEX&z=>8ff(roJ+o`{{nVi_H=Z)TZv8Z#1g)6}Jru9VY+ zzmr-t|0y0*pqNBwui04+&XtKU$lbekq`kgk%39yX?ZZQLD1v>K!@8D4nXhwT^;eM7r!=&RX=&=Bt@ss+E~cFD}M zk8gyxa5Y@HMV*nWJ2ntXr*g*+nV}Xux2#gTMbHKaM7R4zK-S{TE_2V=_xKI_w%pB< zz;t>EaUSakws*k>P`t=dl+N8{M!pNT(-hhqy8cLqef!n*U!!n}Nd4NYH7}3^(GO8L zZQ`;8{kpL6ijl8A7)4D3sF{rypQJk}i9WVBX4;?tuaUqSzahyI8TLIQk`aHsM2r84 zPl2&<7B&#=J^1Tn)-eW`;hdOU$XbbU4yKlSpIu_3qMqt^l=LvepT%564I3PmVkRrI zF^>n5j>4!;`7*!fKZDDDk|@64Sypt5 zKGCpV9l@oq5TEhQOy_R~5}kU3-Zes&oIy2Y+d+ebPj*V065fnjDB*15#8Jo1NR`q9d zD^}e{IImcUB`0*j4RHUkStkwut-*f=x{&5!Y5p=4*+1;wre4EDxY&Ua72u(*N}GTU zZvT)&O|Zm_31w%~03~{m&}CAvhmxwbms{DZJ_J-|9ljS)Z=>ee<97G!nwOQ-+E%A6 zuYp-5cpB9-8sl*{65~w&xp5{!s9Bkq@=1o@QG^=x05+}%h9C)3x6SghM?&&ZLEk^Y zF#tJX?#bwCoNJ8P28xC1_uq56brbE4l#mg~uhAr_RZfW$B{-gZv^B$~GQl*i7szLk zmzY%J(C;oeFk3)^_~5LY&Lxm1@!qr1XKPWHSRfmJoz1RYwY6q7V$o%F2dVe$&MS~W zp!Rh}VgKbP2dUo~i;T(oXIw5#IJq9g=2|DzWVbB;oH)z(*D6W^K|t>l)8!7HoTl~z z01;JA{-2}*JJ3On*`>b&%|kLRpY=9f8w1vp83^|9cx`!vz|bN(OG>tpPHAFsXeb3q zD8{!o;0JkN=K4PI&bfJ`%MuZff@^$^XwI9oB^<4>9sD zae#$OMR4d9LxiK19Cu^UjLPur^@{Ef`Vm&}wHLmWA(@h@c{l|<>qkoZ%pKWsQGrh4 z>LUJ_AbnS0%hx-*74-`l==Of4b1931n5xW{IYW1?=4ONyK64GxJq;Gu49jk_6WE8I zxW3B4xLUshj!In)Bs8$~>s%{&(6KS>vrp#LvCWkEf9|-8u3Wal6RZrcgf=Lw#rBlP0A;|O*Oc8dgva=|+VU^j~G_Vt3&=31p4&=ZeUbmJS z2?_;aUn75xlk~9s>CAt<@m@C7spc>EwP;zJ>KEnH1Y89sWeFEW9B|V;4e1XRK>%6k zlXMa-kWKmTVq}5j9yZqOPojk@&cP=})lIlO<8EMfR#7lW@c%sg4!H z$iUThH2&UKC?9UhZ8GT^{#jCeZ`rY)mhcWGu!v%?f-fUP|Im$FlpXz#ixdcL=HA{WuPvTsh^s1dxxoo%tE;q3S|c5&+wFf8j-h1XJ