From e994011cd99e9df9567a264bd191e2efc567f618 Mon Sep 17 00:00:00 2001 From: Fingercomp Date: Wed, 28 Aug 2024 00:37:53 +0700 Subject: [PATCH] Add an ocelot block Closes #131. --- sprites/nodes/ocelot-block/Default.png | Bin 0 -> 644 bytes sprites/nodes/ocelot-block/Rx.png | Bin 0 -> 102 bytes sprites/nodes/ocelot-block/Tx.png | Bin 0 -> 101 bytes .../images/spritesheet/spritesheet.png | Bin 148334 -> 150878 bytes .../images/spritesheet/spritesheet.txt | 583 +++++++++--------- .../ocelot/desktop/entity/OcelotBlock.scala | 22 + .../ocelot/desktop/entity/OcelotCard.scala | 58 +- .../entity/traits/OcelotInterface.scala | 58 ++ .../ocelot/desktop/graphics/IconSource.scala | 166 ++--- .../ocelot/desktop/inventory/Items.scala | 2 +- .../desktop/inventory/item/ApuItem.scala | 2 +- .../inventory/item/ComponentBusItem.scala | 2 +- .../desktop/inventory/item/CpuItem.scala | 2 +- .../desktop/inventory/item/DataCardItem.scala | 2 +- .../item/DiskDriveMountableItem.scala | 3 +- .../desktop/inventory/item/EepromItem.scala | 2 +- .../desktop/inventory/item/FloppyItem.scala | 2 +- .../inventory/item/GraphicsCardItem.scala | 2 +- .../desktop/inventory/item/HddItem.scala | 2 +- .../inventory/item/InternetCardItem.scala | 2 +- .../inventory/item/LinkedCardItem.scala | 2 +- .../inventory/item/MagicalMemoryItem.scala | 2 +- .../desktop/inventory/item/MemoryItem.scala | 2 +- .../inventory/item/NetworkCardItem.scala | 2 +- .../inventory/item/OcelotCardItem.scala | 152 +---- .../inventory/item/RedstoneCardItem.scala | 2 +- .../item/SelfDestructingCardItem.scala | 2 +- .../desktop/inventory/item/ServerItem.scala | 3 +- .../inventory/item/SoundCardItem.scala | 2 +- .../desktop/inventory/item/TapeItem.scala | 2 +- .../item/WirelessNetworkCardItem.scala | 2 +- .../{item => traits}/RackMountableItem.scala | 3 +- .../desktop/node/ComputerAwareNode.scala | 59 +- src/main/scala/ocelot/desktop/node/Node.scala | 9 +- .../ocelot/desktop/node/NodeRegistry.scala | 11 +- .../scala/ocelot/desktop/node/NodeType.scala | 16 +- .../ocelot/desktop/node/NodeTypeWidget.scala | 5 +- .../desktop/node/OcelotLogParticleNode.scala | 80 +++ .../desktop/node/nodes/OcelotBlockNode.scala | 83 +++ .../ocelot/desktop/node/nodes/RackNode.scala | 3 +- .../desktop/ui/widget/DiskEditWindow.scala | 2 +- .../widget/slot/RackMountableSlotWidget.scala | 3 +- .../util/OcelotInterfaceLogStorage.scala | 167 +++++ .../ocelot/desktop/util/Spritesheet.scala | 16 +- .../OcelotInterfaceWindow.scala} | 21 +- 45 files changed, 898 insertions(+), 663 deletions(-) create mode 100644 sprites/nodes/ocelot-block/Default.png create mode 100644 sprites/nodes/ocelot-block/Rx.png create mode 100644 sprites/nodes/ocelot-block/Tx.png create mode 100644 src/main/scala/ocelot/desktop/entity/OcelotBlock.scala create mode 100644 src/main/scala/ocelot/desktop/entity/traits/OcelotInterface.scala rename src/main/scala/ocelot/desktop/inventory/{item => traits}/RackMountableItem.scala (86%) create mode 100644 src/main/scala/ocelot/desktop/node/OcelotLogParticleNode.scala create mode 100644 src/main/scala/ocelot/desktop/node/nodes/OcelotBlockNode.scala create mode 100644 src/main/scala/ocelot/desktop/util/OcelotInterfaceLogStorage.scala rename src/main/scala/ocelot/desktop/{ui/widget/card/OcelotCardWindow.scala => windows/OcelotInterfaceWindow.scala} (81%) diff --git a/sprites/nodes/ocelot-block/Default.png b/sprites/nodes/ocelot-block/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5247cc5ed2d2d8c82c3dd69d8353738a0f1628 GIT binary patch literal 644 zcmV-~0(dO^Oh`1kI&+fP%z;2)>CM!KH}c z)(3Fm+NEy$6mF88T@)X{h(TMMm^O;#n)~NHlbmsqrbR3+j59FYGjrzrpZS<8f*{DT zG=vbyvJ6s6w4UUt> z&Xc<-7qON~CEfp|bw6vM(a5nsw|bpAaP$eHIK!TDBk4{gcUrBMah2BE z-T6iGWTDuTy4+-B;cn1%wp)3*8YcF6KKKrhB9p{r!Bu#`d^@oY4;&t>5gw?s@L+e4 z-*_fVEY!X9(>SvATsfLc<|KVLDk`b!vlv0|MvUf_O}RkzEA)BeXz@TaAm{c zfy0BpiwE*NJQ&BD*nal*VtBCka0`cnkN@xg!srO$c;fyS93HI2`{13x#J|Y^_4nBOH1^y80000bP0l+XkK7?T*f literal 0 HcmV?d00001 diff --git a/sprites/nodes/ocelot-block/Tx.png b/sprites/nodes/ocelot-block/Tx.png new file mode 100644 index 0000000000000000000000000000000000000000..770d4b06820d245d89b9d7f0da08501ed182dfe5 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F3${@^GvDCf{C@Ajf u;uvCaIypgtb#a2o1U9+9|LuKh*%*pHGCjP)H}3^d34^DrpUXO@geCz08W|D* literal 0 HcmV?d00001 diff --git a/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.png b/src/main/resources/ocelot/desktop/images/spritesheet/spritesheet.png index c0f79d0f527a6179592c2a64ac2ed08a8f770955..bf5252f53e0c92df30cf4b851288262d08fdcdcd 100644 GIT binary patch literal 150878 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 z zC4Z8(JByhWv=I9(*6JPo0o+qC3M@tPc?8-z+N0mx*wEA(t~f1$f5r8Zc-y&>Uj{yt zOSfy~?J`9aon9GA9l`}ulETc_uijx_U<~|eByrAEndyc}J@PklWp(2}AXkP(bvEl5W{u-!GzDq!m@nfLD z$A?ITLv(+C-=qlxBkfG>&He&a#kHaNl{Zekd{8z<-cUA7kLHseg6m_0N<| z0CHoGyt-j#44Q=0BTUi=#xt=8>lzFP_^dz43z03y2TY9dAFH+b3d|$(ESTf+bt;S> z#xd)ZcY2wnJZR9~dj$O2Is<}oHv1u$$N1V61?VadO3w^_BX8ozM8~psko@lXX*wHA z<8EaC+q`il^)gXc)hX^pwhmqBk2=;+eQjjre=Oq&ncbXb4xr;x1qYP#L7-n&{n~Jg2=i!4wu+0)o3lZjX3JF_< zQnxK%grEA%4J|G=3qaemE1eV(ZxQi6_Ky~Hv+p8aY`oVIYiySOV|N#RX1|q$0mcI^ zZCJ+xRk)m&SKaTlal%ZP3X9o8VkUPY*E=r}S~3v0DJ6q72RRdcJS18e)~-#gf|;eDn92)zL@$(_n&6wWbvVER{ zCVKMwkzQ9G`=gejCMUUE9QJV6=Ok*h@;|Q7Sib9lSrz{aBoKq}xf79qb6%cajXL+m zythLh$Q|g^8)65l>ZzligO1QbW$+>VNo%`2jn)-kx0%zl}Taa`xo#Jrp z*36Sqf-NAst$$>2(D1c~xhTbcW3^V2fn-Ov&}zJAyo}3<=_$sqI@DR|zM4KO9ocq- zr}}K0Yr#j~gLy?ixt~%V?hnfS5iGrLG-fBzsWqga2tYSSdT{8^W!Wfb%6J7+U3JDqk^sB)DizNIJ!%WEzg z#Hcg8EcGiWL{1|)C3bB_69?z=rt^nrC>~f*W`IGGFRHVbWuYJ5;&fIwTS3c zp1fzOsL$vwwOwic{zbmc+e9)iROV=QBuP2>K$*}0lfC!h?S4EFq0q`lkCL??+#?w4 zjMx#O+p+q-MJu*YwKno(nMZy$YI(y2IWO|XpjQ>bRdvhlQ)wJN0Mb^UEI=;0TR#_6 zGq8EV4z17L3wdyl8hOqO4KqV4rk(GNMzDGfQ07iAbW~jMuGANWP9K|At)_=AU7qh? zg%NWxm`8doo~Nk<&c%{T>+RUTPZ#!l6}}oysehc#BsNg)_D^;Sa4ZkQ2yDu)}a_P z)LfJ|TdyZBMe`VoTpyEEP*l80@A24xa>bw_-<%?l$HjC;<*i00_^KY?%1u8&sh?qHu=N2`mUX1)A8Hrr}uUvsjpd{-D$A~ zjyr{_g-Vdx<8@1O)BfdnC`%|lb9WBwrqR-bS*n!s$=O7|H?6YpS>_#ohB^Btuajvr zeT{%FUWdkde7f8&Hj%{f+j+)&3J#1!1|-M6(Cawz5L@fYu$|oVfPma*X?Xv7#p?`m z-+eZy<|C4rhl$}@O7E(xtKUHH!AOpv2a@|jgb_2O)h9a@R#UI_*%!!P!4!7ci}D(O zvr%}ah7W|IV#t?-mdZbm6A$Arm;-=rK&7fUl~{N9&}^KT-m1F+KguvAl5N;kN|uB znyqSqb>bfl>LK_bT}Dd+2o;p8yBH+%y*GF~*A3TAXDFM_y}yl ztXeBp4a9@J6Gm+<0Erwl#S-CGrG;Kd7< zU1KP49SY{e^FB{Is1CXQYp^K!4NKC-`=MU#M`xxAR?zKsz!-sij4L8G%{L^gonh>!g&yz&IvN z-?Gl$cbvsa)ZT(m5%14%r=0G22_d94D+LpH<-lUl#6s}`_R?9k8u0vYa?&bI$1M=N z#F_p1zzX;hCEl!E3u=xY`j6XwNUfZ;<%}mVOVgf{ln!rwz{2Lgno#YT3fc_F^ogh|_DQhv5Z2_C5FQ%EoaH6b443?i0 z6~E&)y%_*2Le$5FfP(M%9Mx1S&ATf#cj0`>);Gt`yzdKZcxFtR3gNQ#B?npz@uN>G z4}Zn4>>BR}jYCxoZPs!Nfi4f-LteuRG>B6h(W<>(fpp`pfV2g?m->V8dC+2UY{T}} zoT(DmMVVjkUjbkG&vJNEhxVr*z!%hN+1+IEQ)v=;>rUJ94miSxLjgFYq=t7O;TKhg z#r0{s?O4b0`?1?bV?JcDRbV?`r?fwmbj(`^)%w-76Yz-7yS%xG<+ceuz14{3yTd)t z(N5RvxdjhOe9vB;b4@TVQDSan5TikEDvd}I6BB2`mk`e;%C4ePeRha*^7Fr~-0JKn zOJx=DGLCr26yAy2P{=OuK{(HM42)-5Ne+B3qoSlx9{ z9nbU3E9w_;A;XB$JsZ(H)tehY!tMVx6wj**#>}5mfL(gMlx^r@0Ytc;tb0PkX|x&$ z%JxDzwV1kKb=09x2Dh@BSs(q}OsySvBcWk(E(>aKqi=2#?K!7y7U1l_Z&B*z_4U(? zCU2>=PEB$Tgsg>;fBE%qTgL1Bbi%{r2oX(jh)Qq}ezzdUe0~JKZ8U zQEO4wNg+@L?UPV>|X zQe}8$`CIc;t!v?>$9q_?y;O)uvdi;aUedCjmGJS<_J%LKdVJBZ__!ha+o=Y* zdSeG2MCp6glL!*#edn^uETbKWrvGw-han>5se{VELx0Gtwf?&bP8VsmKveA`2zpWl z5v=Hy0e$O&RgJ|?C>lfxC7FN`Jid;jpdN*}6tu)U^pAxhxF-(|lEor{S&1fCA6fiQ z=~MErpkX0j4?>>=M?N5HAbh*s3N}OTK}qd?G!pi;B70loX)X^GmzsZ+3r2u6Glq2wXMIawq&f9nUN(y%)^)Z1FBOdbXbE^FY8X^Z~j zpvb!xzWj7hHVXQ0+RVCWl~}#mH)<6Y4;Ki&gyTMKgOgC2Y)LSeV}3_py$ZkWy!NX;zi@$1on@{ z?P93Xn7*P|$dj4%rjf{*q;>6*=m!T`)U4EQcrTZubKBZySR;a|7$}Dy#ddekVNaCx z=v(e&0zIzVTrcPHCmZ#y=C_H5M-qjrW^k&&RBl;Bis(CZx87W$63DTU-1R!0J;%zA zmiS77$=K^-RP%7tBDNjt0NS`es?%{fX13_PKC~W*?`k9}Ry;quh zR*_`w*fySt^ifkJIby+AHl7>o)}q$X17Omg0wX8FQ*YHpjWE}C+%|Q6bZO)vuEk#Z zHGnh?K^LIWKg?QJrbT8}$8Ha;H@Q&1N!gpg>!cF`y(Q=Q+pyjGW7yne@e&D=R|q~C z8JA>+^vToO!R85SzRL3`iNK92?9wgRMMCidBFoPB+9uQRhSxZs$*w{o?Cz#kX|pE_ z8~^1bIWB>dT>lDn@)gH-bK)#Zh$XcwfbrzZx5m8lV*bgw|IMSA&z@q7zf29zR}brt$QlqUx&q)?wB!7^@; zFSd7eTj^vO7`#J1I9N^1mh&tXYEkajnOT_a1a?X?_*0YU+mPsiGpP3 z_wv};0JI0W?xR>wursaStx;)77VKCz*-ZTN@92bH?!;M|LswQ6Rmh{cW z1ydgUtO_t^ifb=Dr-K?$o==of6V8Fi3H0E6Wf@8N8Z>B|3rtN0hbSHjx^96wwUCe+ zlXTX4==mEoF;)ij3&~XIpSVXIe*D(tLVu*4RjFZ%@y{E5px1^Md2N;k6JiS%Lgq`Hd4>T91@IlU{mJ0oNntNki`?>MU%c(O+1j#i8Xuiry z$&^$u0$DpZFh_{I^3b(v_iH>mgSB1^MB+w7tO2!hif&2!wd#C%{9QJmprB8^uD}Xn z41^cHV3}1^q#_JkrJ7*d(T{;tt|U1u)$>5(DlE#^H-d<+`w@mJB=HWOmi6D!{PIz$ zJ?sHzKkhX<5>#=U^W`?^rt%3?U!=NPo0%+i+P|n!FZC=fp)xox#l(%jx7&}^`U5$h zHi)L(hGA~SMH~7uR7O$5)b~!nR-wj$SM*XQT~H!Qt<6HwXiT=6>bnlI=bTdx10X ztPXOQq(%~I(Eskbc4!anOTwjNlOv}H?&il_ir)fqW+@Df7?+(mm1S(SP3!0bmLwV* z!RprUmjx9yK4&n8r5umccqhg&!%%>_j<4aGtfq;V+Pd#02xNLlz@yc8cI*s7ouTn4t3n73)W?RMkZX4UEYzq&A8 zMKE3pWAtI}P$r{mQu$Ik=F&NQrELQkMnaKgTQq`rnVytsjw4^n2_hCAG~XsOuNG=Z z^X|obi%SA>qXhO_tcC{BYxRk;>pX>rBlHd0sUyHm-uRvBeh9OOKT>E?bAYf-Cr7f3 zk>^?qJz?Wo)4fGQ`ehRo=sSY<62+nbVN(jI>TeCUVCd~P!>N9s7?QFt4|0Pjvipl7 zUwN_Qjyme6=16E06F_Uw9ncY>m-#XzWbzCH8qFDS4Xmjmy4sKCmYuy@=_u4+x_i#<&n{7or1Y z4SDY`o0^t59!cBxoJofUoXgwQ&qS**L95pa?N0}c&j8Rn36j06soubnLUYxef_CH23&mt#=0rfoE*{S+=A7ETP8ejQk z^xd4auGQ}UMgI{-#x9O2vZ3I%Wp*OF-1#yrk|s-tvmF6?9cG8Np%Hhp{J478OEviidivdJ9#A*yD!n+B*Rl69gP6NoI zI`WBX$qlL>XH{vf^0!J{FL83Fu|3Y~VZ2*QRGBYC>vd1&zU;Tyc%s)~zK0O{ilxj{I_Mz*+wGf{w^GamWUUIx1$|KL<-qO(PWOLP4)*p!lst z^W8R(@?i1$AO{XJK#7FqN9jrj*nXIZjEPE{ki^`UO4Ssx>!wC~g}7f=Rne0yQmsUM z?_OU8;s&eD9e*o72Ww2eQ(QQ(?4_|%}6~4 z6dZP&yk}!S6meL#Sf`*~5^)Vj+`5k2u>VAaF~C^*AAp-1M`*q&kn^On?AgTZf$ahV zjiS#5<~s!_;{~y(7q_TTK#}*cp6Xttctzrzv4NJ~@Es}8YU-4+ySb#UKx)+5T(nS_ zx`;0)(%)}cNjkRnk_Lx`m8<`T`9!@0@o0f`q0B*q_E;eJ(xwZwJsQ59UEFij(qp7s7kiyKD~w0_h4 z#oNBy`Kx$Z6`)0HXig12-wCc?g@v^zP%=e8SHVefSJ7a=La_V{}bp z*sUS=t4@kt`$fAt52!WNjAPLwe)sVCn>E)T@8rX<%E}yGxczvCg`DEP-W*g;r&!%L ze%@v%ix0JqzwevRM$5w3iZp&=7((I>*Iy7Kgcnd6D!9+h&7<~XFqX{5E+xD#>ntPv zkSKj2tk%p7+Qpw&j;U0>cRSl;h;spwk)A#i1vNxpzXY8sS%Hv&!+zCPw+l;7wc+u*3fJIk-8Ss`CwW7y zs)ygcb=yh(AKKnJtgG(L7v8jhfOHE=cZW10EhXJZcXxNEbeD8@NC`+wcXuP*bvDoQ z{N_6E%$)0*dC#2xj4!ZRd#!uj@d-D5MYAgNrDnq1D)YH&VbAmUiarJ`-o*c2jhksJ zvt~0hT_ru`YjI*U66$VDlP$S zOofJhGb=}3UvA=qSexg{Wp%b?I&I2z8?CDeD$jpp4ER<&rrOtX45p*d#SAi}QM>Is z^<_R^rSM!$sx<~*GTnYh|86`fR!i{y=!khMm}IltZa5(!lKu9i!7Cd6`4nbus!@H} z?Uc-AdzyQ#bBPRu`EO2AG3R*2U?g61tUvomMkOL1yW{4rPqV=@>aU8yi=1utlbOAA z2jnBuLsGiB&UXgu?C2Tcz2UJvXM&%q^m+%@7b;jTwLSMFZD)LqUibo*kUDeK1~DP% z6nO1dA0W-9C;O9_47Ob$2NN_waOhXVQI9If$)w}(?4wWSN%v#zGm7$=Om^4tIr%)#)%3-CvROgW4@@Vg<_SH|9250jUP2>E$v1Ogc*sJ~cti;@7z?dCTaBk!m2hi?M!X*!h3e_URen;7%;b^w z%{DZtIF2rOu3LU7&OHa#(CF!75_o?Y>_Z4wvuJ>pHKHE(t|k^1@!Q*mw=+Wg?4V*4 z)M{b{KLZF5*(C?6g|G8KTT*a#_SfC%|K=NhxXz;TU&dqQmZ{|P zlhhwDG3(B;+sK1Z%A-xPYxH-G)c!*~c7pMLrVn5W5yhoeXw!h^Ga03-4WiVrSQ3Q} zW&coOariBY{b^taG|!*jYxCc|a#@cLustk{Iny!;;qg3=+HB=m`NnHDJ+Nsqp|4jd zRQ&b^Q={>RKHC2XcYyBzpIN5^h^2KoFyctj%X0!Awtr*)ixcP{%@>Rseh>NPJ5%Ui zi-Np|en26eMoC9EEWa23U#A35DZ2}Kx;}?7yKla$w%_}5d+mi!#h}od91X~VkxVM# zs)xLmV4&bFJ$i3MY)!jO+rytA{%=BoQH*?%?fQ|l>K7s(AwiU*VvJ2C12t`2%Y*x# zacQC(J-6!jGS#zrJbg)_Pi@yH+_sB-K4|o~#1=on__h@P7bN1?MNov$q1arbO6BU| z>C4lV% zMBs8(uo=AY~aFA+eBS1b^A;xW&+VU0awGTlg0Ik5xApMb85_e!T<5bg5)s z0wISg5A`j#q30IR|0x-GrWfJ*|B?-Cx)*(^eh{A7)(2)+w4eoo9kMJkC+Pmw>;Y;X zXaqaFXNgSzy8as0*JLFo`#Afv`DJ#p&1}D6`@qSvT!zawE`NJ{*KFrICCbW|L>=5; zu0*PtB|@*0V!eWcYu!QZBsYd6({1Xca$QOg+($kgxjI!*N<+(F{})TR9ac6INfzZ@ zi^T%_UrgXhqyHkDJQf)Je}^UyRJsT)UHFD0D&xzUE&x%Vd?~UB!_e*r9%Y>8l?X5b}B@9W9dJ@4i1w2pUTbEvBT@so>+6 zKDJj&x2Fu>D>^Kng|qzOsK@(ab^2Ac+1^Bd{JVJmMzRq-6W`?YaMf0_5#Jl<{USt? z`3%-QcD-ZlATmWBPaA!NdcxQ=ao8ct{8>ou4e&3N<88AY(Z$K|F{w*%c&cO7>vNQh zq^mU$!Wf2n-0z)SLD(E?2?rVn>`I)}aDdYx9wN# zwXfwwRA<~Svj?T_b`GP3f+qJMXhcS-bVD--%Jwz*XbP5@**mdR2}1&PIER}_&N0Br zxf!>v`4q$7_3!uVnA2pgPu{$HBM8BM{uZ5i2k2e!8=7m$8JNxee>0cYJZ^|msQO8f z%?Hh2+cl>_Pe2R)d3j}{N0x|+^2($37GoB7V+Q83jd~JRpi*llhqg#Kj*l8`Gtwb~ zsb=nv)DR0Uc;FFqghBjU@c7+5A8uxm5cF*9Q>izn*etn5GapkL<1%K(o@#dL;eP|U z9tIEnG^Ej;sN}`0^9R9J;kO2iX8wrpyBYeouajMHl;qMTrGHv?-hj)Za$3;|(lpiv zH=_70&EsxJy)B`B_^Qq9{xQ^DP=wS$1x@7UPfpFa?PrA_|IsybCHm_*lVUy7K;1>A zmtlhK>i|%$>~-qtXIbT`si~fo7fN+T#miI2v6)Td5b5=VGZC^Nb8*@N(5}Rz; zl)lIhC4a!WVQItY-i^#&xX2wml7tyThi)Qblr#-`*#Qk1uR$N(!w6{a%+>3IFbY*P zfd-!?0q~_OvsC>{-!S?yC>#tRkcZ;!8M`HnHVX*gk!FUNs0o2Li}^3Y;=xASn8H8B z6GgaZz`IhW0#2C$$*#f=3UL7jqaBd&J8)Yu{7Nr66jkx@Xu)@{zTOYKi=_~M@_s7( z00KBAes(a!Z|@B9dp)o;S|4IcL5B0|r-f6~#EfnILi-50xc}{+`85VcKZKp7{UD zXOVCb5qGJSvnWTEMEtYylbA7RuS>gVxjBE99%wq~depL}9hL3~Ut-QM3 z&ogcI#bEu^Z*kp9vGO==KPTU=`E+;4eKsp^_A%CLkwR8qO zg~euah``qbR6oTsc$)MhUP{k_Di%3AXXhvPCdXkIQ1qzVOOxVOjK?3ulUon6f&Vb_ zVW-c-s*Toa%ACz}-AB8(3a;NvmH~3WlFQ4Hh8wDxCfDk0b2`j+{T+u1((_h%4 zZD;WnSqb>AAJcj%AY66-S;XkasPF)oi#Sw@Q3Z&{w@>@~coX$m3pf6%pS_xOnv*l( z9p$Iqw1~cS`3`bRbI4wrF7S%TF&%%fJ{)(dp7rEP4jmo4{Y7*p*?6T-JtHJ&)ZqmE4C&}fjU;5i`?&x%3Q4* zoo2V^)j#2NlgoNs7{5fr7sv3l3wPF=xlCrof9ce?yXf!_*#6x(_J3PfNigT@zm-xX z&yTveY^HIg+U;7?58DNQk+OLno*-Rpeu-@KqTD#9L3O824uc{wzc`D_i4X%9nG~dW zaT%G|DM6Ib;1I|b6P>7~1F__lEm!kqhNax$xGW%A@&#+`{eH(e762P>T2bbHe`iP4 zUNKdb-sQFd;xa&M!pr=|*9jB~-^TJ17Cw3isOVqwqtRE}rNzBV#`;f$ntHMHe%;sR z_DBl5sAM>wS$;SRt{B)r#2Tz!>-w&{%X{YcT$J!DY$ayB+Hb3h|8vY>+il9?<0{L` zIzQAFp_SuMI{m&6bAQ|=*$h#}8VL6j>BBd8+^Qm4q&%ke)I_F#OT6NK=yZ1T{8aI9 z7xWDG_n_i`0IUBZ*ko^SpQPVk!=a)37ma&%Tv;A8n7-k_7igh6TK~yPGA}0uKQvx1 z^wqnmN;Gj#Xrgul6q*@dBJD_G0<|`p{?gz3w+4!>U{5FH-9YfS49I3WaKwmp`~Qy) z{a#t)%%JHAdqjMRzW3Rw{gEoTmVe+Jk>e#y4s?-Ay6K^-A#cf}B#x1Y^zG1dYI}Nh zNsWJLKyQ7o{jhSdmD~<$pgnJ2TaPsz{HJtiX)F`7gqC{Px$!qK$Gi`b1RSWtbMo=$n-`QKP~(~6c8O{d0JrcK~&Z&#?_j86tNjZ!eixB*XaC>HApo%Msbyf%P$ zsJT{NXaCR~Q1CakGy(@bYlcVTcnTkZ2 zOvX?1^Y716Z!08!-|>PQY9n|;nhE9BZTFA%!0k#i(5j0D1Z6tp+t-40%=UIlOp3Q4 z<^%cPjl61lr39qD6Jtc9KuV9VMTX_~Pv0pu?TtB&qT#X#SYvtx*NTZ@RoIj-x`7n& z05ko`qWEeXn~1}kC%d!do+V2((hPO}>klp`5s3!3cZ5AMGTyUkt6#h~M)el{5&w*S zj4utqve!ubNROZO$Q;=pSgrdjw6B{gmK6Hu!~gZXDro%aHU|aPeQk>F?lbVxShE?x zfcN*cJz7-XnqJtJP=B;Mrvuh}3@WYrXsBYWO}yrw_VK~NcEiiKng9PG2%p9CpNWb8 z1)=Tx3t~>fUvpB#-Zi1UmRc}Y1_lOM|9<>*Qg5*^3cB*>mEr&W{E3X|FNpC=(Dd+2qvU-hEo$S4{%WLj zy((3^-aMHPs^iA_YEF`*D=5fdy;~jXrE{qIHxvck%B2VQ8ee_M{J&FJEpx7R*?c2A zLFHWahC*}CTHtYK#Cg5XKBRkas+Y=cvCqcGNcK}SaF+ustM6?@$;))2DcFyXD?3VM zmn5NWJC`9QY(tPJeRH4}bjtj(rN7+b^1&r{TUUEG7yV#k5L=5=GN+~Xf(SHVZhu5= z+T9=AY-@5#s%{!`Ntl`Znb|Q9qLFxH4Lt1O?t%mObo=9@^ht^O-$3u-ld+d~_BstA z4h_v9^vHwu83&W!*Z9b0?f)UUy4w%JyF-JPJXp!>7In`&}qENA?6T^-n#m!N#+O@&0l5SwCUx?BUEl_=3+$Op)hk_26M%!mjT*Q3SxEqD;*#4bru#qpdi#ewz zPZGuBp82q|IJlKjV#Q&=(;M+fiVpB?j`xOcc{vcWam);6@TzYeT0P^@#oR@4c|Bd3 zFZohI%wXA#*}JH34OzJ(b7j7+Ds}Wdv@}hy_~AHsIpYq;yLZ2f z+;kQbzDa_c)u|c41$h~P0a18!N>~F*CQ)bcVO$zjc@*t-IwTUeXl?w32*24)K)-qQ znviRf$4>yJKGfpT5w?tGUkj!l!J_OShyC{U_QuC*x?(RDq*6BXEpzSD!Se*soLdlD zBg4trXWUJGfrp0rV($|3*;)T%PLz+RxK6*_$rx;xGzAyOw5V+8aGM5s%Tw?H)Y7od z)$Ry@p#1=ApUSiv-OOYtS?;c~I(RFU2$_U~kCFc=5kd-td_9~E^H*~_9(FXNTcHWe zHQ7;28(PLUe+*H&0+;Ju5COBKH}8kKUHB60x=S=EOVSIdBkL$-0(d=fcl}S;eCu$! z^;Y8B8=whoS{(>4o#d*jC^%cR8&MRG)8}K(hVvk`|K!tTC)Q$DE3=RSa9)fG8Eg&2 z+k(!#sVh$Gb9w!u_dia25$WGN!X_z}D1Ge~hg2b2`gu3XjLs;^VNSlMVPQIlX^Q=; z4EXHet^(?~FiGa@p5id;2P-Hj^!3G%Y<-WF{#XI!iLES-afyoJ-t*vD1*(2MZ$Per z-WN=Be6*I@1VueVr@?o9Da(hT!NAq^E)vHgF{sE}qhUWLY`fxd-9OX*``>a_&PvXRHZ%&x;t zqq}{O#;ushS$$+Wz3B_)B(fxv`b@ju1*yHwL5QHO4eBvcE}|{L zvToh(WM*DI9(!qLy7**V$c_a!DefcWDJUzCpfS2$>{9o?ImqRHStd{wBBfT=1~hd| zpuJmG$}Vuq-o4jStv6Q%&1T6Ac|xMXPfk%M!~_R86&@D+83BwZn_@aczxcRZ@ z)JR{P%;P_up2tv`+*JBm9-iLZjEXS3vB2tX&t6gR--?3+F>pVSshMWBUDI(a*~gk> zdOh9VX?=`J()S@3DUG7EB#YFy!L7c?cC^gA%r;OiBxIynl^$&xV}kPJ7(si(@N_xH zi_lXgoep^OUppZdm)qGlc@(DH^&))~4~EfHN!7!gAQBz7ali&6A5jfTy8hMgksz=s zbNyqb-|K0|Yhb!;SiC;e#v@b1>+#Zd_`{Au2pm5VaW)BZjYrrWh=H34#Z2{Ga`q5I^gh=loVE^r^ZOTDqu2Y4?HFw&APQwRqT9qgHe3&jYP&JFYZ; zY>u3Jl017X#GjqhSg~x0hOzet=LQWlbFinLp>Od20{5m3-=ahcbY&yovfIveOilZ> z`rO6c`-}XbP^+N;#9q`K+wTu7Z*RKHtc2U{{SJO?L3thjuId1fR#dW%2edSi zrF);qPFlY~!8t7#_AWI;%sz6XSliqt$r1p;{nHTwa`4|_5dMmjj19{N@lKe6#_O$f z*`5(^zEo8>Xx3_5C@`vWV=lXHE!{cmE#QCoko_g2^;-48hgSd(Kh@^FY#6#X6ftp% z{{0n~eCAVG@(aw6xvfha=)O^DK;k3st7&gjM&{fVFtIfMHebfQ=^fMcy(n95e^uy! zrTxM}^=Vn1xlP-MU^dT^5G4x|Cm@V{(n`6}(bat2T|c}xs62e-HKQGX0C!{SIgtmD z_rL~FjTs2YKb-{e4>ey-tAmPi6gRuS7-U~{%DAti7k&WM5!An^tDAM7w?8hllYtuV zrlb%eJD^`}x@GBGw7W8tmJ!1Uu$(*|EIR`$o5Ab0Yu*+a{NHU<{10m=5ldNue&0c) zE+{|6DQH_P;eClJOw){{p5Iv)a=s?a9U(;k|H#Kzi>kLF6fV^gHRAPjUUOlj6_8F2 z#E-advux|%4zY~HVQV>OgA6Klao-;n3^si0V-VaU>QO&?gV^0Ia(CT$Q0(UAII=9< z!KeiW*=pBI)7V$=(2y^BBuOhyDFl!0&-eVG51bRQOHk+Wbh}eBsk9)V++Saz=ZSOw z+GDqIx;5`WXt3NneOO*M+`)1u8ug~;TZosiSKx&-@ZbqL6z_K-KJ3|C-xKQ1Q+^Ji z*JfPAm38e7PT)fPm7#w#$NHfM8EtRV)DJ?(!j&GDC_M8)T1G= zwCp)iAT)0=_<9V!Cu)6X16;98MKv|*AH<{P>#|<#`Ja<@zd@QTLS!L1;fn`X$q|8u zIt)*(?^n3=mjj`UdFqM?Ac4AmkiG%bsn{awq zU3q=s6g)S*kNc;2?-Kby&80)_C*QZC4>TlE9{{t@#xqpw2wv*aL>|6F_rFOLr$wE1 zBlv3nz&wI(!;A;D^5_<3xWCH2hu9c;v^1|8#Z)X_grhE7wLYMUSYHzE1oUQbO41&; zwy8L-wp4H5rWk9lL9 zm-)a+Sl9gtKdXF>O^0Ys>}zink`~3y-JOF=Qf1+`X~kVLO^$2}-rImCaRg({UMwvwjAbVKn+TiK2sdE9D$^lR@rtos$3d=ZECG*YX{pLhX*l1OS@l!XO3z*6Iz{zK{s-GmFAZ{<#8#TvJ2*|Ezt5-F zg^~ zE-dNt1IFExl8v5~k!G`f(I55rmxH*!l2BxAvF_fT3)Mp};l8lCA%qX_XwyC0eb2cS zCvTYUaW%JX88qT~RkIDP3bQ0H!<)A*1A4->mZJfxV*x0Hl}v62OgA@T&M5a;>E#hA zB}=qfozLK)4udWp6l0ivK%QI)F)e6^YQOz$)x2S<4rBk>1JG=0V|gb;#Ki7c-VhG= z$R#=^XvGVgzF-m>TZzkJxa4_%RDR>NooqCej-ssPl85?yhkIP%d0BFIpDmG7h{7P} z#Z(dD>p2kwjw~bqAw%2zj`RZ*`sTCjdQ&|~C=Fxv9X*RXsUL`Fhm%s1qSGowW6V>h zo%6rg!^@<_nJt+d-`ex!kMstK13V`kP`2|XAleQc^zDpzdKBA01}wVGdxLQBFSEg6 zRmaSV=AGNpI^ntQ3%Ebav_3D(QWwaN9Dkh^>L4-MF?*M7>F#bE%ABAGkxFNTG zuRH&8ZS}S|gf)zm?TmwWBbMh4k1LnURa-%&c?sdp*dG z1(SIoz%RvEeUMUZk5w$f%*>;k0+84kMm)$N!Yupc5}$$Xx%Oa1`s(-wTENVh)6jnX zl8LkBBl7cw6S_P2*+8V%dLk5BL^K>B?gu#|WH+*`5VESOR9(H?OuI{i5^n0;(@*AF zt+@0AL_Q>NpO6WeUbiBHWaV4o+rkf}&ez(S6u^61ecDZ~hS2ITnEPI_+e9@4NTkOT;k3&glAwv&?Do1(k1e-?a z`dJRAHiwVSq)u?iMiPqc>Q0VgI;h-!C}B^>9O6IRcvfL4Y}Ts+v4HbgKgI8|k<(0c z<>=SU>mL*$1+@94i2b{U8TLRu$E0Qi#4-*JjzR6Gvqb9CRq)i{TZU6vAC*RdGC!*5 z$zbb=clr)EHNI#RqOs{tc;__r?JqxdIM^WR8At# z-K_a}W(Xpp`O5meNpyDt$JwtnplH6n796k7%#7+>jSRYn5h?ncOA7Qj zUS`T&*N)YDQJioUemZD>8hnVHM(6R67AuApV6G%Y$3~FPp@Ddv%!JWn#YM(wCyO^~ zG*79K+BhEGH3_3>NmLA`hZgfDZ}dtmbNH%zz<6fd{6{lq!*dtNZ{))$BjwryiOJI& z?l_=Sn-f5p`E*gR1qwODGJpVx?dwwV(32na56L-Gl_w|Vn}zBM3cy?abd@)- z?O5ul+93;bCLd8l{b0j8H!>1~h;iuEu@}!N9B$%fi#6gfqL7PA8yF*^P_*vyHWOte z_w~m6xK^OOXL|Lb_$fqXaK26U4)=|M2zJp7Pg1oi)+0xHSgPM{DOFf=t$I%5&;pI5 zwAmj?fh$gU@0N8QlOn5_t8GV?X}m|ZYs}-)Xt4-%QRXW($SjJ=sso4@N~9=QPmJ|n zv%|Z3gE9s%R*e5UEs~P{+dtCF9cgg*=v4lN^!!BS07o#I6>+i zS=2Y74yMQFVEJ9iw_NU_ekcl(PvvA@Pie_%gUtA#O4I0m?bJ}P2ZTGpNIurvqjqD> z2dU#xYSuaBb%Ue2dt+>D^{puLhpZBmLOVfBw)T#^Vv zDUpM&$F9V^MKW>^R+hCl!#O@|Kx9+aAX{g&nP2Au5eTgyjb5G(x#kzq1KaOf!qc$= zm=j6rdF8UYlc1BD#nzoCH5C<8!z>Z#J)1uXhq$k3Sf^R3BN*>|atEl{Y(Ui$YO8(5 z$02%i4Jsw0Yc?O5%0LPn1F}B3DyKj6`_WqQvj*;hb1;`8>EzeuyKlt;@o?Pu!ARdV zUm$;d{`F7fXvxzZ6Eflzz8O=4XMqF&G_1p!`&CX|PrqSJm0b!!`;9|{1-gfyl6)Nk zQ&rHZr|u67Xy0={F;Br_G@QofdSNWbHHr)iS?GgfmSs`ORjH*eueV$?-TQ2GObg^T zHnY34Bf$U3@E3rF|1v0Zv3LmCi z#$_=U-WmCtov*6a7^-^Ve;Rq1xZPo4({f%5V1@%Kku0I}P2G6-dCL9Crvkf=F-np< ze`O7r3hBy>?b{#P^BxRI$ZBkcQQwCc$Rz6`MachzGxgA&SVasqMBi7r@;A}>h+n#1 z>Lc96Jmx@q&>}JgQTFvK3UHz(anYrO3W$jSKoc5|ab;G+j*OOxGa|6d6=6AX*?dR? ztRg0H&E*6uQ!G;R=#BP4 zHT1Nh$AP4a0zBNER-F9o*|@{>Pe3!Br0o1OMK^xD==lf2d-|P-#=VM)qAdUnw!eK# z{0*{zgS`#OFi8&h`D-O$wc|ZAGunq((4$DA46iP(=7ZO^I|0!-aV&;$cki!{T|BH) zHd*3Q1e?uuzmtW(v`Z(k7Gl$X%@$-n4Z;xPH0xgfy)CpS##k?t(hwOlI$syf0$-*s z+IcV&lQqhCd!LT-?&~~yn!d=#1$H#Wg1}ER5pg=uz;^jkXaX7-Aevlj z{b$u`CHUF(xZ(npj5z!5P8RJ9I`i}5v4D;&?cXi( zp~$H6!%ydp6LWfC-#^=25AfDuQ`D-|fk@|*^aK67>m%Z!!sJha+bEYcNiMy+d+Orj;_dQIK4py0h5&#}BG%OB2ohY;yl2JhLT+HaB>n=5 ze7k1=C5j3ShGmkJYeXS;@N>ujlv(DZe~+5b*NN3I`BaqJG6@JYbmQB$P9TXApOjiS z9#R++c++tnwd3Ca09NpAPj?3aegeoql_hgtbdKT@HE+^ND!Dx?yu}A%NgwoKcCIDs z#@Jthnz=Yw1S%3;)f0HHfs^+mK*x{cHX6_&BkQ})g1?6+SajONRGh9j!+Hls)J_%Q zzhzY!t$*5FV!gox{;)h>4dMbPh^6PRzF}8oKv4~5u&QLw^R7;B3;Mw*(6F567<_@| z&RD5cW>>-Z=*%Tqsos$(^SXstR=%8{`a}&F*otLY%rl2 ztg`a91hUhY(p2+vfyyu}#ltdjyp?8gh^esJvi5&OY*GVS2`$V&#n-@MMYNWlb4?X8 zkK$o*0UiAi+-aXEds%>oei|eh2tads*EMIsKD`|RU@bbD`$D0Pak`I=r*c&;J0R=_ zQ*p&k%Z-g>sL)EJQvbYyS35O3Eq6()ZL=Ze_iVRgJ$W)GG&is|bMkdUe;;mT0H#5k z`k4Q+e(`i@$p-)g))8pa*eX>H;(QHC*mj+B3p1*ZX@E+LbHk>qK>QY1KqrUw5CTvx zlzY5^u7ChvGLjq6fobY~+bhxz3Apw==RK!Up|tZXNrbdPt#7S0G3eau(f}&& z6-&3?vgSLI<2@1zX5>Ml{?yF_6Yh6wrDJPxK4_>@Xk_S6k(TF4IC~!b0pHXWh|N|A z7?%FD3q|U`O|+=l8LYNJC;obbCc~^J)<9|^$MW(0!L-8gv*J?llxikXSc0wEL5YPYJ55fywV~?=G*J z=km?-jZ}=SuSXSum3|o?Q{Kb~7uVwu%bP4hsOgEohGn~LO*2~FT7?@LVBvW_*ui%S z7(=!y*gm?)=5>le0A{^lI>srVFufzry%JYDiI4G6cq#B_XtD1r09hz<>B>xvStEL` zk+|9O$x)Y%aMud&6&IboTL`4fJ1lmjw#GU)!G&TBVkV!2iIp4*ogDM%LJUO&j3r2* zWy2S_mc}0Wt@A3x8gcY6>$Frp#+TZ4NOMHs#PRDHsNPjH=hb-t+0Gq`Xj45~X*R19 zFeQV+S!Wi(<*@(S@J$Gd{A=A)Y5Z;Y`*6Wh+Xt6>ez3=jp6SvGX@#hE##xOGpl&fw7+D#@JH+0MU|HE8Rgi;N-?IS zv(%|E003xpg!<|8(JBs<)av?}lPd8h+0P$Dvn!| z*3~v+IwB2B$M9}H1`_4Emh;aOdJJYXxSdby=L%6nI87sOT_UR@FxWRmBSVm1T^u;? zKWhL$7*tpfbyxU75wp%)RT!3m9u!*jG7zAJ3#imN$J}MK(u6V5w-9Z7^nwJc9#_8L zwLlS9JJPV-%M^|=Z&HBKfPvS&X?&Fsuuz|rt$Fsx^P=TdF$IWiblyu?kFV{HWU_1j zzH0xl?>>2=47p##4REE8i!(gg*-{@H8_~HRc_9<7*56ox7(AS)fXjorn18eOBJ4Xy2{aPE9>&KRbjAo zmm6(8Ep|8|Sf$7%=3h`; z>m9}Ifhin{M;f-GhfkRYU@6lmi-WqzH)rO1gXKb zEc+N(bua>}INS5z93^e0<*iq0Ta#lMkGdU2TCJ|nL?eJsUbW57vSmM5#QC1gmQ<16 zNJ6-COE|vP`?VkjWPohGRxQhBaCw-Vve(O;2f7XXf<*D8oluptg3+hJ#d z^r-^zmc8r$R7l8ep(hm$cPNy}rwM<7ERM%QE5MLKz$m*MDs>r(R?E_wdS@ds*3I6+ z^%G%g8>YZKmE>avlcuc(Cr>E89Kg;4WY+z;g!0gua>{^cOGdmnXn z&F@pm4}XA@z*r={EFws%BJgnN8n-uj41sk$0oK6@bR1aFE{>UH-M zE~d-5!r3=eFGSn==xJjoGqz4dwWDrW4Pu5x?55(Yw(>?rV1WbMTh_^@US_oE66SqO z%5m9v)rcHwsO=a<#$0pY98c3I=%`rB>=V1W{-pVw#D`_~S6MzI!d%Pc4{|*8En98( zO9WOwV2L1|cU2rJ@Dh=WsCXIP9?1KlK$J!{!CB$e<=hSS1y$Hi5OV>el=-L9*wdPbO(j!#XDTm{f2Rwq(`Pr4JWo z*iFX?TW3!cUILw}B-x@I@Fm(Z%jsvai=(YI?)+9h_7>w}^gX}GOSGi=d7V{sNzD4o z_#cT^crL%Y^Ij>6sr>j33HUYJ$C-XbE>bUuEL~`m)M~EcUVcom-Ty(Oe?IZJS-j&F zBOO6PMoUl=`fiE`7BF0NOie>YCzHH7jD_b`5~n5~M}7y4?&hQ_X8A*%)Mkiyyd z+E&`Czd!-4u9sh=dDm7GT!w8?w?mdO2Gd~jV^%Xx$Oh ziZAx3AdZa!2d?*GNrO;`V(Giw`u77$@-$_+og!LAvto$h8tCIUL?gxbw+Y9yl_~l; zL$ltTiF5xPk>I%7o)wD{N&wrgO?k#`J5fv+49`3g7@O3}%ePMQ&XyZq-7 zyy=VEQ6DVGB$>*=1HVK%s~K@2iD4zkhgbyZ;AwKx3C65K#}Z|XnVO$I!g3nD9lbiR z`IVW~wp$XlaUFI6GrS(dol55Q{c2E!*gAWOkVo-lVS&X^S1lZqD|9o$Us3`MB%^SI3T{yC!Z~?q4J741PZ(%>&CCd@BLkFd{_joFaz0>23 zyP-4+)_0fi38%%w`FX`Mpv?vE){2MmlDr2m)6+ZHP_$ z;WL9oA{^~nj_}m6KF3XV)wP(WtyBoyX#wglGS~Tberm{SOSfX?MhN%zXHVc z^wLLq8`BYrWW9N$+!Xi~WQ={ET3~?SCs!9i_!}pF|hKY z3@OWr>#1bQ-K@~|N~~LXdIfKm$Z2MNlCb^i(>o!?64ki$cSMU$)XS$D@Kk-@{8R&Z zo^B=f7OFG+rwYkn1hdcXi|Jl+5LBX}xWaOyzBVaIQoFNOTgLCmY1?|n4zS3@%}}d; zY+*D~sK;$jQ_(16{N-^8r1=C$q*5lM`ulY5){<31uFt`S=^K3&DawA}ys;g>zA zH+(#MUVpv`8l@{veO2O9HJ@c02%GkP(m90~LCujzBFNM)lY7l_$H{bzXhA`bxAk%o zr`cOp^*4$kL>(EAJHA$q@pa|+5vQ3@nE}AjgHS3$s$KLm+TIi;w~wnbQh_fDfeMBe zYpEjx=bUi_G9lON?NYug`K8ki*G~5BSjVp0`_x3FyK*p{r_XU{#V! z?fbYMneAq9klBlCf%kWQPjt z*X@dhwJx##Srj!n3ITMUkN(+QsG2!APiTY%vWocN4wY|AkbtDmMA9oKL0cwRx5z-dP7bGgH!c3YuE(X zy6@j%^L3!>X<5G<+y_kW#ZuNfbBzy3Y~=9iBk?V1xgdjw&aXUkSKhB3(wdZ4e!Oz% z=A224i(^45Y!w^;HlQGK4F;P}5F>ScE6clo@$QW}40UyXG-Cva z%d?g{LCd5R?_WLQs6YoqZk0yE( z|5|*6V_!_rGn@9-v5a8p!2O<&ZJ4L7X3{73c9Vi-b1qd{v%?Ne3zU**!m#30=%8>5K^-^7u{#YH=YQ0Rb zHKEr%Bucg)?mX8(su;<0T2Q*|)QRBRc=mv6)c4&%(x5AYq(v;{{TB3nPMV>JavcU- zgZ=y-U=uwEV>p1SBf(wI)DE`qk>lthrn;0Q`!?S&As}I%Qd3iY%UUH~D`Tu>=)Uid z!xO&75br#I|AR*uB;J?PKiWae&H6bM0o7cG$hT5w>Ejj2E4){)G15JvNQYdP#Qhqq zSY$so62ej^*=lyi2?F`0JDm^+Gug0%c>+-KLr`iB?-dgM-62QC?rMkCw(TdQyp1XV z1YC-8@P<@+`?bN+IshA~0RcPhZvW+UR^C87iG0h$QASc8)q*=}aenr{fK+JmVb8>S zS{3dp>x6;BLM($Q@U#XAuv3Ke*87UQYYs6pA3t)BSLun4)w^4hSvaV>fR%I4p*InD z&6su-c{@I(lNkBF*OJu1KS(lVd_zdP3J&k<(!6AJDpOwi0@$NY&C?HF-cq&&l~dJL z(;8DW=HCmYmsZ&&$0*~y#Qb2QJgx%akbWLM>n!sM;}D2MD|--z?}5n0$6Ew%LiSz0 zxpQgRuD1a36|px>`7l4YUtisA&bYv{P;i6&F;7ax(7@KQ`SNsTV`q&_=TU30`7ur_ zEVNKHoI#;7rJ-E#8tCrn?n|8Dk6jh|xgW`jR592tl};VDGbGsmeWt_bY_w30*=lLBgaV~GqZi;s+Y$@ zX}<_`zgs8y7NeTw36u4;)mnuZVYa;HaH&q37sqtm;CF5&wCWX?j8-Zol> zc4j36X6Zt0h*u@r*jVog=X?5l9`8v@rKLXbScM!eHo~J#)1MlRg=c%Xi5;1Kt)`%p z@+C19gJnJJW-BH8DcDQKThi<={Ar+>Hz?k_l_<@nM6Mw6yODn14*wG=Je_)&SWsPaeYE4#=N}K zI0C!f__Q4hSp)bg9LZc_a@72aDqTgZ5a-16Cs}faka)ui`653Yk6>90nrJ~X6JPRy z^-`#;BHKj;aN`>p-wrllEZBwxa=s`ix{NBe-1)<5T?hQw3ksAet_GuX208r=rZ*Bk zJ0oQpEjy1%9HuE4?t>fb;&%#Z${_$>&nA;*UkmQConC6bYz={2=rTFp+NV{c6&FD* zSF`W_L@3HnkOv>GHki-ePQdeqCL7v9?-|8<#UDP@f}0C#*PcXf^cL3BY<6bqrew`T zGol?YPc9h`ai_h^|L%$-s=ZxD6D+k-vDzzG(OeVhUU@sb`)V3~uNOJq_&6l!d`VP_ z2rr-e5(PL~8sZ?i@?2qT+F5n9$lbVA6w4$ln-}1?L!H?Omv3&IMeCZUhC+35fYlLT zx>OZi+8(wYE?iA+m>QAWU8L+Qr!b48i&aoU% zLXsgl(ghSEWymYfp=6h+G#j-zTGbYrKVCX-O@-foB>2KY`)OYhC7xvN)|QxtsP6p_ zl!OZ?JaDi01g5aT4V45`mX0~tXSq~ubvkm5_)FKc^Pd1r@NY^Y`avu#$oDqOH7_gIaCX0KIHcBb@ za+z&qwSYA}xKp56(~4-3temZ=VC*F>5!UleI~3;7k`hg=;7ZgEL_|eDl%=Mais;tC z8%o@~1`JsAdRj%!x4$MixXe{~K6-@{a*vad=SR*?*bU=Wn9t=E=VYrkSf-D)dAKQp zQ2uL5r1^aZd)GfrL?7~{@GUDB+a75KmgV_b+wL}sh#(-LU%ep~@CN?+!|G<1M#fu$ z&l6qH)>x8L-Y!i?Z1zueT|}5u2o>a|=ivLD1%H4Xu7U`^H2Gh@zF!kT^q>V*2Z)@ykuZn*wP&ugIAFf@gh#>-q zM_EY>m5pDQRfm-#EKZm;yz}<^3&G;nJXoD2(!c?U(5c=?DFs_nc1dV z!|@2y_7~mE02$Os48!xCU>o6cz^37jSc7zHDGH*g0(9BS%khj5*-A#6;Tbcic05v3 z)FE7eLs?cZj8Lr^qR6g}Jo3veP8BgA{=l{%PO|$G?i8(iMRDy~d=ygS{8OUf*dPP9 z30SX}3_YrVeyFh`el@pH;b)uW#2x%rt!+;p&sDychsZp_)Q8T_f0h6DH*(R9vE$b|v{g#J zKkYkPQSfmvZ_obO&1~lGx{LSn`IR#5k|8`2WFmQ(=_(Jf(`PUZ$|MxLeDK*&!otrB z;h{!H;^mq9^Ab6)!H}UCvDV05p;86egjQW$J^8-~d&{smnyy>82?TctfkA@?hXBDX zI3!32?!nz%0|XM>T>}J{;I6^lWpHqI4oKh((wL8#4JG=bTC*O^Ys2 z$-5nib!lC}pwlxdj0cvoO1`5PY7eVt+8mOr1V5Fg$XsV#U0!jQAN0|l zHcnWV3MO88vp2gwI@g`_%dC$VHY?`SJN>W!pxm9^G@4u=FHV}+5V!T#YDH=Mk@wxe zRlmU6Z#%R?19hQXDbBodVVjhS_n)*Skl{&pvJQ>vAn%!LCWTJS;sz#=1`3 zE9ty=eQOiN+wA!FomIRoa}#6cir!eJWz>b9Fq#UJ`&K^AINaOasi3{6%M<& zG;iLJWAGbzAiN&WZl-<~ky%@ZR`An!dqK+d}|Q;PM|BCt!ha;fDtfpKUU zCue-mWtm1Gd@C6sZ;1+=i;%u%P$lDcJC7I{ktb@ASLHUJ_q-w!m)t`2U`9EpSq9dP4p40I!hUsB;j!H}Ny6 zL8=nt6btRI%{BktATY${^-5}WZEcdLsYUwv{&Q1Xs!2A*{?o~~lTQYVn-60&)tTxv zk2xDe9CHzqh@* zx@rK*{;>%O3x~#&o5P<6T9fid@@{tAn<_S8_51e`f;&7;cG>^fqkOnVDN5n++D^!* z{sUUURQ^Ez=htclDeeYCDctQk?^o`kA|e2Au#>fJnP-D^l1FO9|8$ePWUJO#7U!^M zO9Ua$6y98_(b9kPh1;3Et7TC8g2MRxTU0;8p?b$XqvN9%%n3sbm0+#Th(8u+v4D{HAw7re1GPN8k%Fq7`8F1B+>C5WIZ zf%p#S6TK>$H#`@!3_Q5}YPg3Ea?dsN*xT@H!$=;ShPMC1+A1$f{wHvlPzgA1GniA812#~UtKQn~Mfsh3=BS*d zNk7A>T<;!Q&a`iPcc!w>GZ-q6;(i8wcd*u=RBt!OzT~sg zkkE^u@81~jWX={hv0D_zqga&}n0$ec9mOykISE54dDHDg9GwwCW{<>_h_^a?a;owXJ~1)4j=EV{SxQ>r$_pXlk!X=Py*-1i=17wt z3Z+C%{Qaj<;!C$Yf~^wn+A)F$8{SLzoP4;*98RPXSV%yRV8Z!b6uuKjX3L24JYUXa zo_U)c8qlF*xnhgowpcvw{sM7Ce&i9oE+hBj@cLAS;YQ4iz z+7C!%jtpn3tCYWgK5Lm_?XBa>$31Zf+TO(2zu{9X>4DZ5N6?y$ zn&Hzmjv<4NP1{Rs92`H0g0K&jOq@{rM4q=%gaU=s`d>4w-@Y|wqkirYtUC{8_DY8? z6fXc`1sHq=uKNbpw9jkpC@u1WYP|rUIHl#R<*1tE@#tDj7mm*=bB#jk-}2?814Bi) zeS!;gi;wAO@VK#q)2=Vzc{GR%5KQenEv{KCAkzMjd$pDB9pImjb*>pPTJ5bd`_4L; zWrH;}nhPP08kQ6F%f@E<`}k^4=r3`DeqYAV=Ptd?e9&d3SAc4b6)~)ALCMkd=4Fqs z9=+1dT6Sr+7O(in340lX^-KgZJu|)qiXMETCCMmGV%*ZfO{m2RHfGeJ zhM4<9BDs?>`o?9XZ&`nj6IgX;vB4)K#p2tP^R4U?X3NAgcI=Q5ddWw@pjp-SbslOel7d!2w3YX^bD$y7dc3yWQq%ZLjZ$d?1l^_FH{<3R&Q3 z9w&xcSx>DFiJZA%ES(y`dz0F#N$cyJiW}>*2iew74in2wNh%U0jjL}dKZfGQo9n6N znL!}%z_rgZ5>86$)A6xQWe{@Q3Fr1oh8omvk_!jMN56Y)A?0a#1Y+`vfG6+UK7WD+ zSad%a(c|0_d`AgaOg<<_Os-Z7e~SYoTt2eD+Fmn85nhTNzqzB~T;=l|Q%}E-hO8iT zU}bxVpPs&3Z#+x;JUyG>#rpIrbacssrrZ9^VB-7MV~YtUJW#uMDy#VS54p^ofwo1l z%AP1=_{BtUxVJP?87Xb7O-b$-EVMAceOddtleKq_eUx>3v4QKUf!Yc?C7pLUVpm<| z?mIBCmvUSS|Dc`D-Q4wi4S|^SuBC#pQ!>qiR{1hy&cDEH!@8P$MB!} z>Z~9gfpTx7yCg^#bWM*v->?}Cu&{agA~EOadFvp1FX?ja9*Lu0XptY&mD6&el#;t= zqiaiH<3;{L)3bBqh4yvo@)h6ekyhNi(6^THy8|s=IHwyPZpuv-3rZCmEp7%x7RVC zE;e>`*jCtsA}7e$%#NFC9;XKD*RmQb6K0D1h`9#sk_nz0{KFp28)hBlYWq4%Y(2m2SWV<0GQ5<4pUQ4NCIaxN~$Wqvs%0`MTCK% zp!+Ss28Pf-`pNxS;fJyPOuW8rjtCPdM# z<}7D>kW-x0U|%DRz6?BbRF>nvUxP7J7XZQ#9bHv?ce|^m zl`Gf9FxuTF?PFoRGNZYU>2P2b*&oe#=d%>aHwwZ&;~1J zn;7&qvj9R8@nI~()*V-EZ~lcj#`Ng4|%8| z#ksd_ynu-ecrkNL_0o$i8Q)RO6m^Q(tf5#056)78_<#*RNov=;xoMHhx#JGcCCtrv z(Ozm;_gdkjPkuf)!pDyxkQ95TvAvUdx(;Wh1BA9x_eQ2T0NrV_Mpz;62N>Dd zTH1g*Sr$9ZEqb2AQGNu6#K%txKZ|F(_iw`~Zu4B%A_bXJ&6BcF<1|-z?B89l5rOl= z)UaE(GH!C;7U)PuYMi*0FbW)S*^}<=DCz?oTsLUdmW640DoFu8*~{wq#KZ?e)gQlz zq50a6xEwWI@$o$QPn*L#JKZ7zsQa@c34AMR;X{J7K4)`HifrjHK1NM<`1;hcr`z|@ zI5#(A<@WJl6}!Qpto$T`$Ev&b= zjd4Ssa>MO~_LxGvPu9(@1mGEq?zziVl!&cYV!Tg0nA#B37#w&Q!0z{1xTqa`WxM$f zgCqwm+$9;%H7330hau2vzQZyj?SScX_u;dJw>_izRg6}5oT_QlvF@6rRpwezTx8c# z!#iR}d07eW5<`sHa(CLP;}C3mlPaR}=FDi&-3{O5B05Oyw_LCD zU~@AilEJ>{dK)|Yv*2uPN7P?zzS-~L3DtHavPIU+PS181c4_vuUB+FF0iW09f8BnT zTTNoW{XxW&MD@qGOWMYy%zqLw`o73xg8W^zT{M0I2SNd@+)G^@D;nv}hNOV4yLpQNFCDUo5{T8xfIm|ae zC3H%^Tm7Jt(e25TJrR;X@c!4Y<>U5zW9dau)W{hc%-lR zAOlB|CXQAQ=ulb%_l2*RGv)QXbpXc{mV+l?yseH{KygA*EYDbb!5KP5T2nn|s&Q@s zVm>Wn25kopKU<>h(60vm@rqr8LvI}ugK8-}7db`n};1tHZQ zn={KjNHC;&aQXd^FCK_a9AiHabMA4W$BE|kQmAJ9GT)I6ydO=)EyY}3(Vk+#&U(|3 zeZGFMRrWa{v5;w_8t;dfphp9u;+W%{17~P{>YUm^Wz&@^UeZT2IK4>~(d`K~Dpd7a zv*#W7z^B_CLf}WOsNZgUk!cHeaiMDuhetkH2%1MrrY#JD-J(tBX7)~y(bnRDX;t0` zMjRytKNf%mq+IpifP0qbUlX>h1Q5oY4GSI6=B9i$1C|4=X;g=vzA;80-@Fr9h4;u! zc`7=0d}lMVlLHS3bnLe{J?8F9#)9<2jV$d2aG#MK)qs@uCK);~KBYQONz<^7TfV=g z0;%8KHDDnc@tGFOJxYb1U+l>4ML)eldl9&}=9c$b?m~Uo3jvV&C+0-4WAji;9`ICA zG4P>skXM;aeZHwj+m$|0ucG3ld0j=`;-#}nWCj8^Jc~ON4yu7`8;JI&fO)Pj-2H{0ym=mnK3`((Mc5j3GG2^L%+2L;b?ipXn!i}D1(qQGFo1We zH<}*+))fAqA4okN{Kl5=+5w-Ip_Tw)VEUgAMi29dJGRPy09~L}XG^Dp%%>Fa;auJG zCrBPUV@QUNw4`D*r?*S{gZl6?RiUX3=2vvyX-P(}F(I~0_bc|o%W|Q7Tp}U^s`?n% zb)@G-CnoA`j5s(46>KjQRE@%+*LNt85x6F16BxJPWZsdgW57T({q=*?ZN5`0L-Q@Yn&7#CIDPw07WL zzCDYn8oFpSs4zYahxIZL_Pp`AgPg$Dx1N7I)8i+p}4(Df0X3KN-=c-VOhyL4FUo5?XVf7?o2q5$#7%KH$=%%%XI7s@2e|j>qvFc|O}&O{eQ*d3 z58YpV7AS7)Jtp(7x4K_korwgM!RgV;f=x8ezk;DjZSSQc0$}ax{QY1qjP?N0GM)bs zzhIy`upW*8RzoSCo3~XvJf;(* zlc}XcYejEA|0f6nx z#kBjJdCyKISyMH3K2MeAq6e<06etK8yLw%XmyB|Byl>nR+56@&UPvshx!u!!&vh%_ z+Clf3`73HVk{4O8kt^HehK+|u{V90(L8s+TcDAA2Ylh?AcJUyL*LJcN4`%yU5=V|~ zmD%aOgoweRMxeoV^utCn&0|ajsTD1!Ad8$SQ<|j!L%azXE5!xv1kFBfA3xo;ec`@3 z3|@!Ew?qUVHn-cwIhr{qRdt!`TmPM-cDR1+A*g+e(eTMg)=dpw>(-~LM3&!_@A#Ze z73z=vls#dimA2AJ#37$fx=ip+qT$aA!YDfmZ)j^Jy?q9r`m#pa+Rs8?UcSuOkAd z4xEAfuaSX|$BG>)K;GIy=YocN>9*0;=9v<+z1@*1MD-%9zDR) zHtcDO2H-yMcl1~pdxhOLFgL#d9?d|72AKYq%-TJ^8X3c4Lf^!RG2x$A%&JqH8RU8J4@*B!3cx7&`xBe<;KxbFYH=Mv1h)j=6&KJ9r zRR4!y6Za&F0bHfd}#R$@7aAU5fH zQxnI4ijgC90&<;w%`H}-l^1|)ayo#2ol+8Tz3^1klfRm$cj>GH84VB@>_y+XhZupLM9Qw}cv5OPFgd4}>-7aEYdpt~ zwTw}ymy($cp>)Jzw#OXs@ze5@X=*tpnyq)F2a`}%3vqN3(Z`p1i>sez#0k;*{dc-T z2@Pk<4^7^4+`dNxwNK@(K&!9kcW_bdYt=YvL*^oOe-H@!`stUPpjbtIWK4`frOD`v z;?9FSnoB-CwF-o=P7vOXT9{1`V;YG5&4kJLaS;LYd?>m}Y<+wFIgsb3z8?}|dBIpo zKU>W&r#f}~#>@NBl`!d3C}^TFIf4%jfTOT>rB9Y^CNpQL>L2};No^lB>1VD z-BY0+w@KaKNOA3?XA3pO*n|VBCb#d}ULJtaOc>3LJ@~teKh-y+jq$_i*SSAwGiUyW zgZun1Pp1l^yh1FXORf7%>i0{pNy4|P2Sh6JSs6}6UIAnb75|)xmU>mnW)0riiL_|m zZ4#2+f35`I!0jzPDcCi*hBDcP3Gviv6i)68e%)VK+Kh~(xYl$sI5i|JbJr2nf3_&|_4{c;yb zJt>9%{J{sx|p%LwG~-@nTuF$z45}qy$ESvP3*@ z)bK@O#QbXd8U$dMTPDLtm$(FBTU7)RVF68RSDLM(Tl=Q2wov}5BOQ&?y5hS?U;Cy# zvDY#O5xV*CxlP(uVaQ3%C!O)9?L9OGgR9uaQ1m;!=`!A<$&PjdK!7=cq&vcWSK}s(^i2#AO>6cEAZ3eB?h{ez^V0w^oqF!G-Q-Iw85^eL&l{(sJEQzj4Re z992|gq54zvp(ix1VxZEt!EKD*Dr21M2jr;HDczxInQ!A5gXA)U()*!c{WVdbZ;z=; z$mhMd-zVn@f9&QAJ3tNf9b;}U!rD{J$HtoVZ@fdw&qsGV^mDctpN}q{iL7tYJhm@2 zH(y8%n&lCSEJZ7Q!{ZFizxfOZ45ml!fFR?dvaI^QmAH{VlPW7yE2mcW}!$`~)T8n`prYxwtX_G=;xgWbBb<&f| z*C_p-@}5D|$m=x&t;Xx#qL;iI|Cf-HqPV`6%&B4hgK1cgd3>93&n-8bVegP-x%<$E z*<-cdP9Jdjm8}s~nMd#@($So5>nY0}q34)$>z7iI$5;JG@e6h72rP2J(uGX8{Rhe2 zaSZP0VJt_8D|C}r@)U`jJ*xElT>0toNd9uOAeX~Y+4(>?C9=N--z%N_fLx$J1}r>^bq z9qP`0MxOq?mRpY#;9tKHH15x{AO14rZVEw$11h_`=LD&py*y(ZdG}@Ntam?Yb1X-^ zF4eUAxRRkNJ2>LcmIG}TJGFGd*@>@`cnO4cFyZ)tdrl1I7$3fwRcJ|Nkk;}Ai(ht~ zp_~L-!~0A+je;O?>t5}G#AN##L7#m{!?u?;KIOYgB%Y&&>T|;4m>#G~npTk&QUlXj z8a3}B>?UL$+p&Ts8Y#?RG>?kHQ?GGpXm^^M9jz`@xe|`fA8q*4vFv5I)N@7xUeun7iJruh(8Jz8s{7FU@t6ZgeoSz4TKQ z$*J-{rY>v5z-)f%O%GR2{+o*V?y0GP7Gg_YD@!RslF%JX{?_4tb>N=1-Q-~AAzseDe6g4dMNdfC|)7M7V(gfOYvpig1Xo34h=e7 z&bW_kR5P1aQ)w}ddVl%%ezFyfwfnOZSI@!FgyKXp#ot8HGEDgtGVxQ&kW`-U(srl9 zlGjr|T9>X3iMYP{yPZI^9BtPJbh+S9@!1Pn(QF+bkLtEaELx&JCchv2 zX7s%f-W%TLUd7#Tv`_!7-v09Hy^hU=x!vKi+vz<*zBb1-n-5eVoh&e(S)|wR%)4`A z%%Nuo^jP9-G{fX6LwejFa%UgkcvZ6~**bQH2i zJsb}$*`|4NJyLOX{VN|13D_(9QjC(v5mKCWkSyOE8TA z;_d5TFmLhC2b6Bo)FwFKz7vGsI$-b?Z}Xs_uVJ%$Tm$_%m=|9FO>60skv3FHad{W)$>6zR-V4;GVogQC8WD zf7t}4Jjl}Es?4XwkwzDAXegiMvBwgw|B=V;US3U1XxUwizwWQJ_3k}nZ1_(c&XOAz zHJ#6ZNRvy9oqb^;zn4WF4t=OLKa1t7BxLpNOP+jg&O+u1k ziyA3*5aBB$%)-c|YP}NnrPG*g9e4Zh^T)Htv#xqKrF8laU&@dvl<(o^a~8=CyLha1C_8kVOrGGkejcHnK)66cWu$gZTMbc`zNf!H9+N!Czf z*)bF`39yW1_iM?md`QhTO518Vf6klm8vO8RaBmuzs~koJL=gxqp*4{y=R~x03{fNe zH&IB$?SRlk##@s>Dai{=+5tw<;+{?J4p1xcHrYE3m{J&T2&{zhr@G} zWBT?N(Z-k!_#Y+p_<8aZ8$v|qndR1dSxJ0~8KR9*Kwrh?q%riA?;5yKv#gFyfcGXD z-Ab5qz_V^Y$vl)~>oSry-HUdZ|2P{N7|Evs@zcHhFb1o^+%G|@n`DBiz?U5CpuGhF zAQQFK=a;J;3~4J;`_yCIs-L~fKuks}6EvJk3Fu-H(S!7vWsp?SyFo!XnP~Dx>ez(q`YAv@i zFsO=;+W&4H<2^!e9N-}--B*7G+`mSgW6p*$h6|Ge+Q)b? zx}MBl{%9Uxgn?=p4(W_>UL`?d@V9WF##@To*3h_K+Q3j3bk1q{8 zzo~iOt2roEA2pt#gNvbfZL@DctDahOkwD6xYuWjb^U_6p$--F7fe6OIH~)NLn~-@T zYt(sv!T9di6je?qHa0$d{sqbS z>{hBYYV&bY_q$Z@=G=j-MHu_Qlcm;&REa%C1;~ABfZfba+IG~lWpa;6$NrCWo(Js(Bm^;rvI((}NIuZcs zEJr(cyNm3XLyLun+an{wjKN^0{@C_3-0o}{rT9E+$?I)&K<-grd==?Ea_fGmPH!yi zQDo_6Bb6U^Nld!eO~yxv;Q@khL-z$f(6bP|r;OpAvvrFKr0q4vMV<&ggs4OYd`jwD z3l|`lP;~0iPMOZL^LseXKG`*lUr}1WX?gs-#gn<#yr4j)!D-<*cABH7qcd)=D<{R9 zu$ldg-qjl|-Ah*oTa^JA z>s`i8W6RAExYzcqtgJmh_gx*{YKyf)og&#tT*WSpU-hI7yg(?JAGupa0uv@e#siD@ zA{iC`Lh2ZB>C7$cVAi5lCdtE5#B5B}B`Ik^&Q#ew(aO*asg6w`BaDkjU6w*-cXRj@ zaqHNzewV%!&y-pkZN15?01<(|il|M1*e%Z()L$EMU!dTtDyC z@7Q-TO;%1dI{N7*P0FSA${3Je>rB>;(6DZR3EM%cj9V`4a%T2soYvRbE^0VESCs2j zGe(fAGJ83-&!56ABZ7saX@n-{4Cul`xw3|LKGPE&iKtSVu|S<&QY|cJl+j59--eL~ zP6X%C7mwBSFST({zJT!|Hl_VflKiY7^Yn6NdZQzLar1qQ{U;g?iDg#=K=31T-3DE6 ze{XbG6{MfEI^AR(jOYhLJM^<$xjGG(3fe*n^ySt|0#%QW!wWRDC{r$|K&9DaUy|#V zlP8SEWcODMFz%k5^aeP^fo}c`%|46>Gkm3{C`f^0+w&|vCi3*3(MgA6Vgp$;j$mhk z2JxPQ`1jYRv|hgzpVq?5&e1Jij=MBkr&WW|c6C)c?WYe0mZ}><_3mq=Yfjkb-mB{0 z0GO6M7v1qUi?3&-tCY(+GXojHAg0}<{pYYiwekARbAtlrZCJ}UnH+BU7|0~%i;o8= zVC~nTGJCnv@A>46JwMbe(#Ok9-t6rP^5+KRO_6H;1na}nmm31zYg0uxgkAXfE(q1_ zrMe?+zRzvUSN%d3L*IA`8H`acJ@^!#TTqs-XOw^U&$soiV46B{@jOC)?g?AVgHQK4 zxce^G6a^Z|GBzT_Eq-Gx72H)}`{(cF$9k>;(^t){%3m=vpx?}2S%3us zT_d3fX*dLwoI$!)Wwao!h=0a@t!-lJa2Q2RuQCzeO#*!>bJVIF#X}r9S-3k2K1BF7 zZZprxzc{Q~`V(9IRJmR4namO40$M#9rEgYR#7ng=GFKvCVC(5ZkD4_Q5gIKZ7raim z2)DN5iJ`Gw5;{dOMV0Je1jf|dnowbPN!|u`Fe`b%0H#hvgY%YOkcRZ^`IUmShQCST zx&DyTRg~f0tnkp7Q3`8Nx8RDvXtQq~C@HHQY4K_Bk^snqHv1{$dLp=@Kj8oLnin{g za$PIIGQk2j)W2Pm+8aMRWoO=l-r{KLvmiV)%?hq5V} zCm9G_SabIU(FM^M$L~Uorm24*wi~a9*URq#(y*GOyPegM&|~Mvd)TY2S3@%;TK|IV z$O#Uq5Ba0D-yBej-w@lRmW0{8A38Ctl`R?IB1gC)ascBj>tia4!KQigM&F;&(@6^2 zv8NI|yCac`3IAj*33D4Fhn=eFK5ucf*WKEIUYzdZP zmTpVPe)I6OY0MD@b>+WQ>zHMDI75Yoh^PNCtLV)91kLXHp8IBN=qKq@Ou)&Xo0<1&=<;YZ?QG>2^7eQ8I2Wy>qZA)HL zPc9(;r#y*&ZJ_$MZPZOynw{aVkM06$3$KI%1Xv`ihk2IqfDG|&^b@l#o$+E3t;Qft z2dAQtJG%za8mm%xr5a5vioz*k8x%mEqFEn-c3=pU_*vD+ViRD!DIVsPnQG?Oo|EW) z8+z%yz<@Aq0iI~FP_HDWN?`+o)FxK_mRCfe_UMbIm>pF%nGCuS!RhrDeU5d%8@6&* z94_4VzN5nGw=nL4;vOuDzv|Q8+`VUv9O%93Ym4BaLtI7nBM0O3T5+LF^9y;tv$S|q zlHnJcwUP?jkz5}pe^ZtVXG4qX(p*dFAVI6VKwrTdCTHN-&svhX5rZt3OrqTvEJYw8 zA-9<$@rEDTRTe-$7yspxhrHIZ{XV+Y{>`qp)t(a9yVRkG`;3&BxR^+K5m{0qIjpM~ zV~Md&ZFa0cs`6P#@CjtO5AxOsqx(I0#ph|%ad(Ja+lPiXJ^2#NC+xCc-y)CvsYl=$ zk+mw!ubOHdK;~$E+^xVduxGgI8QDML;2BirYe-a+e2T|P_BiTyKl$^^QfG*M_VwcL zp+LdYws1MV6F7#Zjw1pyXn2sfeG+7t56949*F#jfxQJ$2JDH(5fy=hc1e%*B?Fi%u zyD*BD^?fV)QmUq

vUlDuH$)s~0?mNqMe@_nj#cEoYfXi;Lmf@&VNCSk`(kh!C9 zWZ%)Er5UJzGYQ?j*v*&Da%ouUjE32la0!J(eP2d7!2_CVm~ zm)Vp+WySAmF-?&Bm+;;&1b35ELTY`5W-&?@DKaWi>8*K9(!!WXLaYjAyBb!l&jyn+Db&||Md9Nm)xkPYfy2zPrw!$X7s$?^L zV%hQ#j5eeLAtW(+9g8=mW_(;H^xO%FR7YB#H&4MJ*WYKa&TF~_R0o-=W#xe6uuG;n z^Ac1C!Tl|_;@gYR9g2tf7&`z2nMb5B=6egxFpp+M6vE zJ#@Nm?;RtRWwK0LexBhvNVY)85z&(70oGVkiJJ_!`X1gUR_@M=YCo>2$@qZ}c{^si zQI-P)$lLpDR6N6#3@`xC-N&CpY!`Td%Wc)GIC0g>(swS$x+|rH$1nw=ThY z3g9y&IQriK4$>D8Ik>v_j^Z*%a+6>9zyMZ$CNw&^qFauAUf7`c5hP?Py(WMd_>;4c z`17sE0puq?7GKN#BX=^m+$IH58ST>@oR6sqn-DJJmf@=m=OuLdEjt1;r~F}jd>da# zHQT12dt`;-uD|Y!vYzf6ZIbvS78u=?nCleBQ}tn^SI(%Xf-^Nt9S0tOu!qGH9+|&A zYA%zjw$`8#eE6gF`O4r~mVB0&D`k>8ce-;&+8^pXAEMr9+6m)ReL)C1fh>`+b$OE! zV)n}2I0g`@wqRjXHK2F5*XDg9x1;9$aC$;_+EvWIE-&89_cSRTBYNGhQf1B=#fKC} z#d}Hn9E}G&zWf^c5$`GUd7}r%yKmQ%riknZy&MKU*^-404dErxpBKO?@-Cy@p9l+v z_myi}O6<6Z!15%4;B%c|Z@SbtLTYj_!M1d?(G{ObXa^fdv745EE9E3i$E&VWw@#}8 zJ1~G0uOa-fYmR&=^a&eQgAEYkI+FvHS(XcyJk&kT_Fj>KE!Tt3)Q|uS;3Lr-XsS#a znX;yq$4WcEF&sP6V^a$9BnOk!z#SsmiaB-ZK@E`D^7dOx5UGhu$aOzf7ee8JS?u$wCvnB%P5&pZ@d zq$TrwXa)n+J0yP9X`Mm_TAyL@AZW2u`8U5(hEhKij9|t7oPh@1z+;PuD_Ev^K?nPmtzYQ>=G?-^u^^OTtewp*Vw_qZkEi#&~o~ z@{yo3mjfiVI@S(jAj8SS_oQcfso?0*_-mK#)lXEl>pq#!yi6p;FyZn`-{Ll1>!; zyg#4mFdQ?nc8DxS8Du3j9nbyFCwO5hLm{-$ag{^v`}kana~IR=M6JaxZt1A7hetk3U3; z7)l!&sN*Ig;CX`8+ruE=@?r$D0+aHOmho(Zd8!-B^1ye54M{g9&@nt_G)oQlNK(7$L(QJq#3%FBU!m#(f6t;SG1VZ3t zv;``YnLk3ujziu(>%b4=*SLMQs2{J0q*Y*if?7TEK{_uesrG~1m(4U=^O}inKE1;! z^|cQ@@^gi@1i<+4k~XUxdff`X+el?LNIO6}00k@&F+nu|kRJQ3t?1af-E*{5M-VRY zqXt-gH16Sgo5n$p4x+J*n89C`il2u-ofJ&&Vjd|LohfKCXSwtKIoo*%;*9A!cmNy6 zb;JN#Yg=|MyKh;uf-zIcc)NxH{?Sy$0^IZYNsMvOpGCzv6}PHy6Lo^6P=)nd4W z&-yAik@{BMmoI*nUN6Sa1cG=F&r_wG*=9EspR1iW%p#tqh93_0h>!3t$OI}Ev+TTf zQG37x-s#lLuo!gctsCUugIWguMZ*J8fvh5H!SSo$^*0}31Kaa;6?VH4p%AKO{O?Yd zcc4=%D9`Xww5Fu|-QR`gxc)oY2+Vn=d)O72K#kKEV8Cz)ilo7+zROk@xHDgViZ?v0 zO{znER>aoJ5fB>jGR_p%9GyJQ1ss!L^#}_5wle}a82S6qWOMTZR1|9 z-r#%9Lk-*f;lIt(>KD||y^x8>^G2NsO!Fc!} z6Zz#cPR3tLL9Ol^&EfsEj4^gR##_|2?R?Nkh*A^W!0kjlkzGKu{zLO@H7r$hzrOzZ zpoSG)bl1QzUhipsvi!RpH{r(lhc4ncai6}xBN?$g>7#zZI`HM~19(*bkl^`+#T5#= zojJI;YJC1*ZW5=nKuD$Cvh4Of#fsAc`|czXCw&kI+R(ipc=V#;(r9?Ej56^ms%#!3 zT_zAqRi=yHQp2(FfMybf#<1%-#F0g*?()HEtrQZBXy8*dK0gd2qRv4<&T+Ge%s`P{ z$NksPUL*Zd@OMBI*SrxkKWci1m&2 zz5}^=8abU{A!RR!GAjq2@01Bh?W^-2kpN#7MvX^xrckYh0C4t@EJBc|AhO{442Psh zu^pq>m!rULjt9U4;escC7FRJc`Ujx@ zImrDPVqR*-efUz&JPp6_nJM(A*fWhYg;=TC>po6>EL_99J62|`LqGZXTkLZekTU!# z6wI01;=BOz=-AR{UI5b|qot0W8kB&8tCm0AU;A@T+EETMhUhVrl-4T8WfcWsC9g4= zvVx`JH-;39CM3Y^IR-6YLbg5 z`Yw*SJG3GO-JH=)&$Z0i9jc)p)O$8@6u*T1+i=B#eYym*gqKI$HHQgjO=rV)FA51i zDmd&(sObq7M1h6H;pQ{n#`7sjBtepr6r-uLJy=cgMSF}QtZh0H3}WHi*>#=NF5w(g zkJH{dRYjJ?;nqU3Jm(MEE>22`?C>8S(al%cZjawIu6lOiTMpt3$4lw&*QI~`^zko| zV2Da~BEtGZowe$-%9iBm*-#?h+fD~GL4k27`^wJ%Pt2&|eZI-R5cgMuVyg5hJkvV1 zEcbSb(yF?^#DoQtb*{#`lwnE#5RyVA6S)m#-}sN=uR9QsFrQ*W7- zq_W=Sg?P#Pk>b6LBY4mg4h_N_v7!FgZRCIZXJr24NCCc{v8?DkYV0q*2zcnweNb}K zdF=H(S^O+MA{E~Bx675cuKPVNi=rU?wzS!MA6jxIMmv_{d#FSJT7VRsQ~cLHHU+cZ#hE8xwtm`Kj3HSx_kp@%rJVnt^GL?-akz_{jnKoX(2B_; z1r+1|n3DY4E7#f6st*OpGAkMI)bhFdNNmx1CNx?qOA6;IJy4%NT@r$en_b-|wxtEV zJX+G(Re3M#qz!JadIRpWhQo#4*$tzX-gvzl4AOPORlAY5VxT-+F#^zo)`{|qmj)iY z_tBu9XsCyo;lmImI~QW%Bg5d@w&<`!KhtzIzjq8-5gkDJODG@<~_5QVj?p2rH^)}FS^7qIQp1X#Pxif$^q zHPV7yrN7s=j3i}$-&7F$9bT)xb2<7hx0B^F#wZu`p_%p62uc7rxmeTJppK(Hxa=rG5E$ILjkie)anFx#YaCap!*z$TBXdTOuQJ}ZkZ=ZO~R6h`0 zInhsj;5x?tQ=*tFn|E`y$_V&8aLSP|FDK;b2Z9!TIp65cM492mI0=2tXn5sX|K_3* zyHFzQgf)so$MIa(ZGOTqP}pX9Ux}{WX5%F6a4tDV{eOhLWmJ{z7B2kID5;1bt%!6; zcZj5PcSs3HNH4k(kd*F_?(RlfO1hDh4(U2K?!Di=&o{m?&L3HVIM!It9dlmu3L7e2 zkazewNj%KBZM0FxepTwj*$$~lIsFNA62B-moF5zdXNRAkeNy-`z=LfVw8?pc zNPkE`Dy;quK|lYDCGT~sZ8@_Gx5kZ+5Oi<*L{32=60!yK{r%Usaz46nz(yP$8Y|Y; zj==Q({`Z4DTI)9gX3$4F6)k-|5hndCL)Wil`Rv*0lEZ|z zCpIJ$6c~wuEsqYn9VKEJwDk`6vjE(Y^sWz6ddpDs{dC&qOc%GZXcfGXk+59Rt`bi< zO;{(rNCn}HSI%*0IuN0b!XYy!GHLJL%+9MXn2*s;?PkcI5tjXX?_;Z zb@VF{=k4+JN=<)TC3-I-Rg`{g>U#F;jk=Sr%~&0IIM0yY;8K6_+cMq@ht-Xqc&&?5 z>)vUXH$g{1-?lMKYLOuEhu)CI<6l|E{n?M7Jf(?{CJ?u-vVIU!7^?F1puUO%-@GyVQ9-^0Nn z#r5FuWjvotwd=`60BWIMrpj9Znx&o*^l8TfRQq9svwnTEjI~i=yLL?T$xAoV<|%V1O|?X4oqnT;KytTwVtpr4l za7Sm09{pYjD4ea}*>c&g0}jyD>112{F3N^`sO#Mgj#~ffw228h6O%YY7KMzg#abd;VsEE)%&S?2h?-C-OAtw!zYkPWSZ3!d-i<1yr{+QuHG??_I8x%bEpsUw^DujTR&A(&qj-g*q`Bc!J?kQJn!Wi4X!dL*Q}p z;nBtVh?hdt*XKgxW|AwfUNdht56RJvW{99wC9_-1^yDiSBsIggmOMIeSPvn@0BfAw z_>@>J)Ax9YlwRQG537wg)P7+zZ{HMkY+KHU;Mr{iwl69?KC|iQK1h*0ETvfbigJ~5oFQ%{sZ~M(!RL0^9S-Ew~k1l znF+CdzLZ@urCxxlt+pUf^jY%F>__M zFJxD@jkqRQfUo`HlYJ6hy}g#E0%6^q@Yvs&P&F(+lke&=D)diXb$xX{33k@fAI{6~ zO9~jGiFUh|Z`n=rlg=isO6WHhxm39p#$~QwEI&G-c*&|T`jCfa!)+r2Wo;ykWiH9F zp(~9gpr5j2E|ay3GC=&R^Y}O8x1Z51zZSDDT$vRQByx>NlT-gv%G4LHdRv7fShP&8K+<$oz2HR@-2F&lLfb-k(?)51Tw9t^%Ag(4Ih|c!S(xQ;(5^pSs z)oMWtsL})>b!0^Eh=&QGDBEO^bvgl+iZ%%hZv4PxjT7m^k-_TTAej06&?%$Hlg?-C9U zn7G21!yS#kZR^4b?$4Y2*`1oX@Xk;^{aiGkDZKxHd+R*$?86YdtbOH1br2~*T$q`v zLK&6j%dK>;{~8VEBV*F7!6OKU`B=%ej#+8y3W{QMN!Zy%k+a!T+T`oZ!=-r~4Us_B zMziZbZ0tH%NDv@b)TLx{OJxGU)}#d%ecNVXa1cM@L6?hvLC(!A0#y8Qx>^3TseHs7 z()(-hz4{Cqc7(Km9qorlzj=3fx#H^IJv=@#8uR^hv_pK>lLG4>JIq1`QhzC_C+>Ku zj?m7010Ma0uO!^KI+De{PYiq8=!Ew!3@OY+64(qNGA%wdPnm)nTIfD>hGj7qc}wKA zRf?CodzD16uW#_GKcRD81Me3!!KlCi!R3}RwDZo>p_0&IWe>G%k*mtl;r_iCd{Ik`qC!W!#moe)m7CRZGm zIvY%#Y?klr40+7FPIZT_Th<7`=xUzOTCH_y4#b70qzPVh(0ONF$WINoKq>Yidl za*PaV(|N=qIpwq;7)(u?r-T@})U``_HgQX9;GqvSdr)h8xe@6MFl^7O0Po&OC<)>_OyM- zX>UNE*=$egLD$Fkr_YaJh)7&@HhPC<5}GZ_e~&?Iyve65C$!^3SDykX9ZXUEcy{FcF}{M{@_RD4so=Bcy`1#lF72;@zQchCdSgwoIS~yJuu=ZJ2;< zfKhikv$w?sPdO_Lz1xGZ>o!tGIA6Uh8+!hjbWxq%LW5dF1jHCk{#k6EC(BIFu{%~txr10m#58d`Qmy`!+~){e801nk-L?l z*680J*9>?jSTTw^OO)G!}cRtnfjI}6Kx<)s{banynnTU=bzT) zYot2mPDLxuud{iJ4$U$!WzuNRoO{#caJPTSw=?|-2Zc;;eqnxDJ29LtHrP(;BFj$V z)l_Bq-y;2vVT~Y8ztj}t7F;=baEkpgt#dg|0)h&rZzN62@TW^7RHbO#-8oY98gs=95iH_oy(-?_((J>=R`CU0>tfw>J7SrVKGCldY; zUQveh)?z*S_MZOUy1MO_{boQPQ7J4&ACjKOx4IKp1H*tSWw)q=(w|!&6%?dip*?&c z8r)MB#TOc9i%baXW`1d~!T(8bBHsSPuh;3qR&Vv$Q(4XcartViFo)fvB*mzm`!UfI zy0&3s$g`$yf4)JLOC9+1P*PSfmg^%VU!Pd-{IF+@)joZZH0LhaklPckT=10a=IWaZ zGL&jwYS4{2T^%BGTk`7?yR~A_S^Rt(V(PvnL`^6ZbpIi7fqt(`I-TY7D$4T9wnu9|lY4eQK{IPI_Zo`Ha7QBBSbEUQ7f#V4eMijp$|M!`bc-d6iA8tt z=9U56Kb-sb9?xU^ga01a5)Io02Ie7%9UFBsw#>cXb1P{^mmUrFGP`@uhvN=#}FO@~vujest@}Vr>~mXdsCT$D-+*W)0l%>u{_{kznKA zu{>FQ`iR#C>wt8dcs1L6vu5)h*Rd}M*DA#hD9*;QACEq`nwsavq*Y~zX}NXAnRtQ4 zdyv(5I-}eZSZU!>jZW;$=KU%a1s;ObqbJjXPIHwvc#a=NjUS2v2Wo0?{`BPYKBoL} zhl~zs4VTGb8X9K29IZ8esUs4-d*Qsi{FvbB3jjMa!`faGLu6*Dr94jdUDYlCvgu%+ zLiy)lLS1@Wha8OWSsx~NgNUHqQXMFrYtcH_OEPYGQYcx41T+=nuo@KbMH$$rAK=|v zBEJE1j`O#77PHk7_5-{MUs>*?re)%onOdVxv_R%(*R%&ei{SlwrBf?~SgsxWI|HrS zngyqI-Aq>Z)DcVGz>gJGRw>yKI<-y1er6s#7sW0Kj zQR1}fm(R!*ZON~xh{^qM9?P{2gCX^8Ig#u4G0zr7J=uuH2)a{#pGi<4gQVZ4`&cKQ zBj`9k4?p0^QxLTmk(9(cZM%eu!RjEay5o>gKJz~xmY#eu9C_DbGjckATkZS?`}5uG z5als$(D0nH zx-?#*On_OI{G;5q0O$p3T9SJ^H-BMRX((*rloT=SrGS90w~tRWM$Ik(6vtu`I_I+Q z$n3axY{tj`HO*>K%;@$Suka+d?MVR{m0X%-tN>6llvdq$b0o>8#bL}pih zx!~7JVL|Umo)6_8<{+RFh-`D^^39wgPQa^D7R|w__Pp95oh)#v9+%eU(5M z6fhi!S7h)t3Mn>V@*JeYt2P&#Ab|icP{qNQI$4XAT66tk9B$p#)>b)%eT-)s^gU_F zXCVjYBW+?|XB^##rcz>KbB-$YuX>Mgp`CZV50ubPM|dOpAj2JQIqMif+q^+ODaon_ z|MRXq!I|^c;M#(;Gxph+`T1%z2}fjK+bPsx zFmUhB7<(YM-qCA%rg>VmA=vkS&>!$3O0o`l z1V8hNP5cbGYtM4l?^{-&agBqn^*C^cR^3Kf6O$Cu$zC-|Z27vl(KR`yc*7PSfca)V z{o@0G58E|Xbxo|4MMfur@NL8Nmo|%hj^{P{SDGf3S2@(WAPMTO4302_1+0AanxYX~>icpqGUzQ0ie8e~os}#TkxIXIds#$ao zp19NAJVy@off0rO(}3OMt-3OG$fwpXqGKPLDEjPkRCfb2Dw8_p*{t6s{yr?V4BFfAwlE+Z6WSk^QD&=TA?IFVn1yWtx4vI+?49Zqmc@A zvfV!^y0G6_qBrhqPv4!rA3H}Ob}9@miXS}q6TSWAQJ8?n^ALMQhi7MV*Oi3>DWNKN zdf3qR{cKG_LcW`Uo4a1B+w1>=HGiDjI;2{RZM1V|7a9%`EhXY7Gq!vp7( zb{M4s>)d1?@z|NVvwfEHsBHE9GCeJ2DN#qerru~NlVlcNjQWtn%m_c831UAa};`mCuF!F7gSo*X)8HZA)2ViN$ZZ2o+LDpJT#EO}@a^Bv;FF7d1c3Ec8g7?2X zeB<&#{4=Nb`9RnUbx(ICf8>SPhs0Qos-d0iMImP6?Q%5F5ocdSF?PD-^%oNj^+ZX} zDiQ%WgXMhS@lCU^N>RaSdTr>YGsbKf2_KDSjivoT1+uctaLV@2(Ctqnut|3J38gL= z0Un-->4&MVV{hu3?nX z!~M6=KSY5+*t+4*+>d=(pNT)s;Mjff=*h=ar`6RVlLt${mPf_SH0g9owGXyfH+nsP z>wPU1&vqiRDkanMN4@t4_m?*He}k&2y!%!wfv<iJ{lb-h+m3&aK*RQ2(^;Aly##v^DAg_=$+lZu9rl&-9$kRDZwF79BPI zAiv$pOg9GpZ1q#rByG!Xt0mup<6)fPBY&?fI;T10>YFgjl@?;CcH5sa#PJnx!9>}{ zu9oZRN!MA6+d4D~vH?~=AEbzB{r0Udf$O2UfZZj~zos8)O=as7Zi9Gqr0H^_V4DR( z_K%;RQXfwSp6*O%CY|*SZ(?*efMLhhB*%w-dkJS}Zk^;j#hlQ5lRjOlWdzok4wJ6>;V_nkeBU2wbVi_Cf_9U>Au7uq23XKSP*4Y}G}XQv-dMS1&lb8LZ=zBuqL zqP|{oDy3-dGjz_F#1K^zvjA1q6RC-qTv3a_`R{KH?lG2URPIfO(ovOnFPq<+gG3rxa$$x(meW>`Ygz4X_MF3EW*Pa%;!v!NTh>c5>RhO6HWchl7{Ca0jho{Iu@_#G z`RQYpg!Ic*<{2X2-gOU-R;bFtPA3|^F)`|zb&K?8mt^M|h+^o(U0fYE_JCXuMTh-` zkf#y7SeW6oI?2IFw#@)oq`5aVe0%Rjc7~#q>D9uHw{>9>x@@Fgu1sz#7K<?ZmCLIIeS-vjG@=y%;V6?TbHnEwpTe-C+$98UbSDV^e*yd4GFaPW_2FKFL6C96_ zDn&m-#>(}wh{LsYrdb>5KlFJ=NdYW0|9r&3@NS7A=3Q@F;{q2NhPAe}40Zoj13ZUt2Hc2l>0} z#%&y~9Ilp?b+B6odvNfQ@HV^Zo?Nw82MONvd0s^Vgu1~g>eb@A?6+qTj!eIZ!p93# z3)o{m>GXmkp2k9#MmRIS)qns<1ui?!Qe?P~3HE5W;~%e|z$$^uyS-FiTg&ry``vxC z<@!_RW33O}egu_mus-vI8RRRk))$4+_-cBD>GVUgF?F|XK3nQq`OPmtatg=|QH*A# zNwlGUFGf>MndM1Luh=q0>;mbnB!y8_T4Lp(1+Fi7A&fQ~Ip+aSzLpEcdP?@A{7(ZP zw9FvA3txekuHtTCz;g>c#@!#T$k4q>EYiUs&;Aokcdn`B?=`@_wP$PJBj!&f`DnQb zp2QF*1CP6e3OKm&@$;|-M1r5@wPBi!^l*e>Mr9hzZslOPL!7tcCU<~8DjEC5C%`&tPcOCFj+8m<#06SRk1gQQ5*Amj)r@{f4(YhWtaJo`U_d)Tn4MeYCbmdoDz}gTR(%p|kT2&e+lcjEv^F zt62ukX9b^r6puiwf7>rh>)3OVY%n*PN2{=!BvZ5&t30cm5TQyYU@7x8%beq$qf7Q2 zUuvbwjsTbtt7@?_VarNOE7!mYi*dy^&VKQ6N-^1dah3mc;}JyIsexmn{gR)s zK9u6o3CzjoTB&GtfL4+`sK|NNWtx+mefe6i6JOjJj{hA(d`E_s}R@`Al8X7 z8HoEdiUjTKqj_Y+%GH3}1DdrrJj7D^bs!6w#wmLdZ$cSyOBLB!7k><)%lef2s}Xa=NGAaQ93ek+v%yfZLAVRI!JiiN1`VJ3sB_3n zW*+@XgnJUtW**~u(1wy9X|ce1P4SnY^vq0&eNCY=ROzFvBpi=MwtE?mbiD(|i$qp1 z>Fy?P=wH%LrRwH+;o|QrHrAoXqJX(ZLAAl>wvEF4e#eGmW4`#)^4eK%f$YLJR(@UV zS0URfUlYcKzghixlyx{>Lc6v>x?uZLJcx7r1ODS8kZ6wCtU8$Jlsvj=uPgoOtv;kM z`8?Q)vk)F?Skxhx9U@URgVN+%7!*ph38&9~kea1Uz@}g}A3IdgKL&l99gpoRSMQCy z?B=x}$n^^TT5l9ub8P$c?IPU40{y&5yP2e6?sI!{vA&B;51}G)P^XRq+5_UpnaV&s zPJ8`g^v!G8-o7`3@%>BIP>B$QWCg5jVX84}V%MbJB z5#9BZtd$|3fhZ$lD2;v*A0Wm=dGLeu_C?b>ZYY=%DwwK_$)C+IzL~E0%T&x-_YsRf z8J@sbqp<*Ypx^8zxB{QwUx8!yTOY8&y@0|3rF^v9LDpchi~@7gPO#-?NZqjsXTpRy z>uK`T(r5GOj;V5&JewfVFZk(6dJ9`Wyq=kia0XkN45ta1Ey?D5h7;96xhGAX5L^Q=Rl#6P8MzYqZ zNzi~LOfGNi$}W>oY4)man#<rtbiwfX#)=eoLut$s0|n?=pmtL-IaWq|F=YKK0Mu5%NwC)!}pDc0&^EXnC#r z=Wy~5u_x5}i$c=ik@o|@N_2B3haij(iFj8Ep7Dvq`AWq55dIUzcV>RUY*#H7vi=Dt zcSh6BTsfLN(dF(xPlZQwv@7Z6d|RcIST0Og;4WOoxp5&*hn={Gm#ocUvA&~R2cj14 z%~SydspebkdV}lRC5iSsPV`r~$mf->53q2p(KnrVtZ&`Y`OP^s`-dnSTVytV1HbQp zq9{Rno+!~+snM22K7bgZ=pKgD4kgJsozPy(DzCp5xrxrz8r22^F zUB_+nScz_GH!A(Y^5Ros-m5ExXE&v`vlcaZXFWJuM4hnjB_F;Jsy-fjIfoZ&u<7KC z27P%(6rk!_y6n0KlL6k&dIj8}jU8FMS2pD+(4W^;XMtDUww`b->$?a0ex*93ie?8a z9k^zrp~1ux=I3YP7&AhOlQ-o3Vp@x2d$4>%Rm9~M(0@Qy6b16|^@T@hZ%pA_h z5lqDg?S^2LW*TkbHMH|Ue`If`@276Fjp`4v+}41-UI3)y@$*Cy0DIPc1V7jJ4}c;? z7%FMJbv~)|Z~@~5`dN;?Ls>@vXOq?EAvdB!n>-Lh-Rk4Y&u^1wG>=|yx*v5o8utF8 zV0LSNIn81f&uu)m-TXE#FK=6__4+`LaKdR@vn9gQ1n zKh9oCA2ypNoKS|0B1!Xixc^$?f+rdT+>!E>taxIuyBwAmb222#uh zAy#zw183XSo=5gS@CDo(6V$T+fQb^bqx+)BK(qf;J@MPc_(=IiFyGdkp+McsrkI!S zMCrnt9kHV53#!Gh(oVMq$+`DqMEl%L=U=I?)5kp@$yp}2*uWbkz-oSlmeL}PtmBgU zQN2ZSW)i)eb+hn&T90{R!n^=5(HL{A3BVwHmFjjHujMdplwY`ACe0@7(+Zc&Gf2W+ z@3?JDr(TQgV%}~Mi+m;WhXu+#S@$Rb@`&QM5qK_e--^S2IjQ7cNav1f{kR!~@U( z-}^>V8C{O;;bode-4(sO%YoY$lnQ(q^>*9NnT0xh4^r92IX5?4GWgB4h7{X*6s9=1 z5A66iJ3*JXQL+u|1B0e5&Xpf$NsgIxn)Om#zB^(d_2^NpSr)6Bv9zBWT%#4D~Snc^xyos%(Yb*tMhZs45FClcE#Z#ljB z<$WCQ#gFUyp72Zn(4UeGK9-<5^Wb_BC?k<5%3L3C+O(XXwe!@Up9#t#$%XOTrV}eN zG`>2%PDB3kL=pjr{!z?^n_pOKDogmJD)Oof9LHtvh|61OIql^;uRbVA=l0kfer_oJ zm-+h_@SyqjnK*xn1P1Y_uk)7?{%0<0$A5#n?05o05j5P5F*{AA>q2=u-~Jm6UmXC% zp3->yCJO`u%&-=u8{a)(duqYC{?`*z?>!Q9*{9X>pZ0RedX3%nv1GbJ7nDHV=+3kKPg{#?z>bb7jp4AnNOh?S7RoD6pIs zJgW~u2+uJ)XS#4@)Z&dQ6XM zA@&djzOE$^ylu73T#?>y(v zzpsD|eZWbi!XRXgTnd-VQ*0nHdxYrABJ6%~qbYVWd@1VSo`4`?szg4*>GU2!hH&jq zt``e}r(G+D)hyld#z1Vrf{REq(IIx>yR@I3Z2}fB7m9tmGy^0tjUNklZcA3U(A2>d zffntHi>VW%w4+)}>{?Ass5hSgR<9P=~F0VNflL^QFN<=EgTKB92Lut7ha;`pp>Nx1#{@VJ_{^U@c zPnxHHcaN^~i3kJ7hEI^z||L(sY94-!y$6J^_=K%B?1k&zim(ADG*ZU;kfoUb{}E}N)J z4ZzCvJDwy74C->&^2t_x9TJ2)_QfRLezVkC5n6qE%!&yIxlN*2;D1^A_c=kRZ7kmMqXhC5qZ zPqb3mr#$n+bk~yfp1nzWqHUdYVXMb$@LI{Jq?6S5r1eRS~s?*`1gOICV z!iY7NFG+xIyk+35*CAv-$gK7oO{bel0>~SD5Ss@9+UQ3REuBUEeuJjk@w*;n{~V>| z%>Q%R&izWF$#g7ei;4(*%s#*-Ug)B0NDedRlXqtq@1FSrTHv7>r!P^kV<|w>uBo<;aJEe;^kHWz@l7e1?8qvhtBlT#MY;ku1`FDunoxQ`v`7E3w-M~VzT4Bm?iD= z=WwA)F?O}hi67ffs9w>EVz_RC%JVApO~>^^&xxsIgS0c$Y9$u7@`twHW|2CKeqJg+ zUg;@k1@Wnan=95dUr_N-8<#yA| zS+8@F;5%~a-!Y^g<<{~jv=_@%@PINzj2oky@-V69P<9zXbD=xf%ACr z0KbZ)ITP;h*Uhgdg_aWc(dhcI7M^Blf{GICuGa{eNNkbJ93sC*Va7a*0($}oTQF`KeKC2R!7%~NW#gfwr|@YfA+kl#{h1O8yCdr4)kWrPb=lWa43D_ z@|l=U)uVR0$3Nst0=*{nhFiaPV5DAW!RIK zU*ElM>^b)Ca5e*fFzXZRukzy05Jlx=XWKYrwc{BRL&KYbkPqbR^>iuB4?)`UpfO$X zZFi6itH)!k&`28xUZD*FAG|fDpAm^n`tUwpeXwq+FhJL?wkRZ0OY)xn`DU$go8Ly$ zZh?h4RJ`QT4d`qSMGlF^sQ%thWM!W$D2&#$sCgrDSRK}v5)eb40?9o2GqFz=&0_O# z*t$hMK+l-72Q9fbzfnG2cvtzb3x9TPfw$MF9O>rgzIx` z!PA;TyZ!NZ=LZ62Od`th%abUz455jzGDZ}TA6>8y0ZFOZk3Gtgsh5XEgc?Ke;yO*z zH!q-;D*;Ywm1zo5jtam>2j^Y5u#DR)CVC7DVU$ETsIdfWIrE?Eyy|5~w7r7RQuS=c zH?c5wX4iAw$H21=YLy$Pl>NT62%w!*S?lxYV@m;95Mh(7%J1|=;HHNRS~PKe^)U6f zV0X$!{td54c&i?E@J*UQe;Yf>1o~U+#e0CT!ZNqb4G=}7ru~KcS}>X!rz(zwoANW- z&L|#s$7yJ7S|3)V%J47pAj8-0YpLb5IR3DCc$;$GY~2(j*aQGmn?bIPIFH4f%f7*} z-9vKY^q zgY*M`IMw>j&anuGT^$E7kEZt@?CA6+kWOHI{hnzBq@+_2|A$Yr`g2L6^l@F;L9Mug zqiN+L?>Z6dp>ULsjcb|;m^oZ8zYk=>PxAq;lkkFM&=SHa+#M!a0Z)4+D%wwYx(l^N zB&c@yaKi=>4dH>)O0+cl)8Y0G1?mgE zUnyz3C3*JWVbSB>K5RX0VSn$5Us#OeU|sZ!?Hz;j-V0D1+~7i4^4GKw;l>?9o1YM< z3!P=yi`5xUL1R?WS3-5LY}u$CQN!Gxr&@7+x_@2a4hIj-S?SnfbIQq(ek3O5v13ws z4z(L7s?-akRLn^loFqhU&_^M0<|4BlEF}DU!f^Qvs%jT;tML$5pjEH@?TP-KuH}a3 zt}wO5xJGM6K!T63_2e0p^gQ63#vf1OBbBY7;*9}a$)F2dPfkSpKa)RZx}HO&L~zjN zOkike7v1&mIMX|I43f;HR{e?O{gMv%ls%wx<+j^QGroSNwj@k@v5m!Pxy5S)1-H=@ zZrG*#nq%U2-1Buf#)Pv|n9$cYd%OVW*__X_g^y1*hqZ@=fVqjbh&LAVFN_4?%FJ3f ze$ttnqCRDxs|4-sKx9mCC?Xv$h}p3i;@W3_1r`#7}!Fb%aQgzm>1MD+K2Fu(RPG=RoTvf&QEIQK1+$$bTPXoU&2!q{eNwtdy(mn7c6rHB z?lz}5NDvnG6~ihtyw)qWfBmGO^F$R|5~S@8ueeV7P0Trb4bl@_(ao6r$a7}!$WU9O zLO0(JT(Useq*$WRh{n0=h9EZc!k!!cIM^|}FV&>B>bZx7(4iw7Y_ z23tC8{UxbzX{py%d*MkW|?ElisuKQ;ok@ivlqYSTb>swM}Fn9P_F=p#T$) zoRY-vmHdj;A8$q6_T>6y`eSn5XWyvW7av-(B!1tM@*Qo3~<;bM06@R)2CpaaW#Nnzd zMk<@hSqKZWxU{MnhPS?2 z3f(W&t6k$~{AnmD^337&;~hf}h}P;9)d8IN7n4AS>{4s323W>7zWCc~sSU9*0zY0k zpPDjTzIOI?`>mj+lt~n`(&86#j9~U`WJY$-F+?yHw@ z$J^-h&6>uB_-(JPtnkf#Ros>Yhrb))ogoBOBw`w7ITT%rT3dg|E913$DOrmX{*NATf33PYOX8dkE-t&qUQ<0qYt&XfaO(Wv6 zA;MJ5|FbnN6iV_#?tLY-QT86++NL^;zPKKKwsu3Gy%A^{sI1&;l2 z%qDJ$u8|d*)UlijBAz6MCWZ!K6-I5UT{A>=f+pvac62KfdzX@J#~b@;HX|Mch<2Hi z40TCdToBUxp|Mlt_~+BcVa3l!ZAb&6i3Egwc+lolS*8%i$BxFSScJm-i8U5zFvOe+ zjicUU^3I!qVhA`KTM8tozWm8fTAl*e>KTSy?xZ{`2TQ^6g)ums*QFys@^L?MGPB^J z*E!2XXk8}gjMA9fT3N3orVn#!-RJ459}g-bLm)|9NnjKG=`xFD|3pz-8MlAcBUjJk z#Yz~<>r(zRzni|HAz>Y^JDYMoM7b75-s~jwv{zx&0#^^tQcF`xlf2b+uC6j>`_Qib zp4ln3)fby1nPwijKgclqcUVS@I2pEh(=pC!%Kvj@Ur)<`H+j`{dszEOyF@>}JCYrp z;3!VP$0M_lT*HT2e*v?9%%pD#fvwU4maZb0=?j$c8VCkdJ{wH>&x9VXO5rnAcGxDc zBc_G{?*p1QMy5*a(Ip=ccy?^V%7mlKZxq-SX?D7Lzrk&gGOvG+L(^B!+&)KXLu1CP z2H}iMA94@;rb96ihYu;OZ!cIst`0N+b%!n4HsY09yc-pkau(J(2c9~HK>9RwHj&YW zK{`3md9lafs4Qa*RjfjkzC< z#c9~7RxEMyzwrBW9giN``Agm_tpREL(aRf z6x5f6Ol<5Qtu6n2WzeoC7;ANi!U@Y~_5nnNMufj*!cEQHZA&wn=WkQu_eRT?Pe4G~ z%q1=a5O%WTrVSWmTD3^WVl=H&qS!twv`oc)u8#9_=3?8pGM#?XD85vt<1C)#sKFs# zm!sgz@sq(8uQSp4z}6Ga+)QKyK`p$&pvyj}Mq*P+A^0YP#2a$e9aeD9RaR#GbCrQW za((q)(t?DPgmACrc7Srmzx(q(nguO<6%9fYBO%8}IXGe|>s&Hufu&%;&yjbgf6m=# z@14;Hr*ikFmhY0^LcD%{yR4WjSpM38EA5K#ijr}Ve7p1BCORRDF0xN{^Zl2qwUff!zC*L?7JlCyU<95|mQ+<@H3Cdbd{BBMmB=ado z%+TLaTef~i+*kF{*f5b_+!(vw%rldGaK7_NCUwzms0*C>Bj_sFz_ipe5I^pVnSJJ5lnGUQhR#;&y1j zFAUDOSpN_*_C+Pq2WM5ym|gNkhgDOrRmgrYd){TS?N$bsU!;p~b9~Qu&0MbgGr_Mh zEhq&}_wEa=g59l4pyj0G5creV?}ekNv#H*V<P5jZ*_4p%<)yOakJTzG~?(=vxe8iYTd4;05ws3ut9Bn7Y%%`cOje2$E~BVecP4(T(;i17OWDADPpJgfU`%1!7FCX zT+!*k*t5aDE8`!lj{oI~qx)l^$Nk?_@r6h~xaTdjn$&pfLGAoE9)HqjryS-!8%&dL zM{p`qyB$1%YKvI1Tg}oS_c)QB*Qj4#jR;_G;XQ-15BQH-NpyF5@wK-2Gg#Ej=Y zGaA_4x5WUMw$tCy__FBexYycGwdg9>oVA!1%~oA(%(M@mKp#F8T@AE!6^rCdq*{av zf+X~{hbfM{R-02mWU}vWg;lzB2IyzuLP8GlORpjBJD#?I38WnTUm@ou$w+9}Lrf^`NDH-}KwB(ssltk0SlCOqGO zhe&tY(H2DCwj&{cNu8h!$v!!=TcWtORO$v^Mm|15e-dAVk=KgXUI>650Cpos~iwF>F8{GzenmeS`%-zvN1ip@3H|Kr`hh`10M}n+@ z&e)ZbGIQ8$SIcY2^W}flZJv@F-|#<-O3YR*QyLujto)z$-ZQGHt!o?J;6X)HR6v@5 zG-(0{DJnvu(m|vNhzKZMS_J73!Z}JuP^yZ6^b(5nngm5adanTjg0v7q4-i7W4W4tC z?|z;?-}uIOf4p~oBpHOUlfC9zb6xYA*PJVU1O4JBEH@}5HdRE+R_AV4Ch=L7hRe`X zk*nWhU;S~t?k2H6p-658zC@oT1>4py_#4L5;ulJA3 z4Eeux824(i2Xm0`>Q6d0VC55pq=n+_Kl%{qV#-Lbn18Zp40CpYZKvPFQ5}h0Gqd@4 ze<~usu0I*B^L>)*!rhDX=Po=ssVaBk!8fVj)6EeVPSBiJd!KrsThx^cWv@}FUqEHd z+=%Mp;_)`yc`25m$Mo*Jz-?NZQgs2&#jd-3$%VHZg(i|~Q%O~B`N(|atqS*7v-K&@ zYwyFmN&a2>@%elHU3muPzrB;E_;bp*78pJtmC#tJ`hGREf*;@9$PN z7fr%_l^eril|mQ^LMK>&sGp|`Aqz(RWB1Q4A$Mgk#b%}anhx__{vibDxb-bgFYMbP z#mPRAGN7mbE%gAdHa7A?b@Ve$hV#$b9F$=Ez{S$jBAI}0$F)j|r;Y|)VAyqLbR?#B zIVI*4K&}13vmwz40{|e<+)LHJXH(#+|5TK>eq6=mhmWR!J@OLKKwg%Jokw(TSCxEpCNf@Ouk?MtU`>*my)kpIgQ(Rl9Gw|3;b0;k5pE4ckeSqyEzs4@PyOO`l-4f z=%9&3|oH(Cbp(`9YJ;H+LXSPV4W&5KB!)ZW->x zm9S=STaBHlx>6tQLb;z~ZW4k)Oj18S(EGVqJ^w=#JS_)sLrMB+_>R&`0uS%gOsVp` zwokFYF|E|nnnsyDC%9MJc}Yf_u!Ov`;jk(`kVh|~=a%H7EZ^t)O^p7aKJkN85YH|t zsliGu24cM>X4F;xlpS4A-@Y@`jwpZWNQt^N?e|H^Sm}BEF-mlMy@l&~D*h8ghi!+5 zKRZ{5{Bm;@{5z3l#Tc=ZCs}rl2$m}Yf&IMGjqG2TN>-oViWO3ON|6OExjIHf*u#T6 z%fR+1I|EMIuV2eKT5gCi08qrHM$#=S_bRDJG4mfwfz@@4c*O@twb|FbBjxS3^^l?# z+J@QISZ&s_+W8c}d(c0&rd~3Rfh`)G#|INlX4)MI-hOq0$2ZIVh;1HCXwnISr?H6w z3sr9tB`vs%D)W)#whW7hPlO&ZK2pKm@$7onx*g?*m@N#D@%sAe^GC3%BACH8+0cTf z`l-F!d=ov7#!X@>8QWYJHIh4#>})vfGdCZhK%fJ2NOn|$zu-Z@ya3Cw2Pb!y;^{G4 z$A>F`DQUXiwgsb?C+;z7E@7pED`Q_aXWW6yMpr?49=f&;x6lbVLOV3lM9|M zmaaY&4VIw2;W$+ATplsU4&YE$MM8-$oo=UQp5eUK;Ig-536rHLtKK+vI|wjS*)0$O ztOclgKTFUZfD7-4v67bN!^U)ys{_Y_n4t9s|GJ*QZ5J{r2iQheteWJ zuxi&{Ko+qiC$I`Ske4xjX9y7MN!6Eo_Mvmdx|mdP+G5V6>@+yuQ|{_Jx)*dJ_1PV1>K(tp{eC?CdcrvmiPV;n$&4Dw zH?aehp}UDD!1oHD#^anll~-Xjw^?cS+o|hm=lIKjH(F9DCfK+t;8O%J>9&EOHzs#q z1!l)~_8f<{BPgJIkb_NL3LrhA3tTu2Q06Lffz=@D8jcXeBKdG*1yyOe26JjDP5gRb zcsiNp6Yj2gjhhWPIM5nC=)t&b$_4JS{B8arcY$ZA2g9pcFXUW4o&sd29|3z@Kg;IC zfE;1Kx{sYECkt3jPK-6WKC=979@m)PIYhY5**ok6bId<^PLQg(&u_*6cqGKsT;qs7 zF1XQKC@G9LQj+1`>MeYQ&4gv)tk(ptm#e5%F}(GW!N!if0{`%?CI%8$e>!oMw=>aa z=;|?Wv~F-+fG~H)rmy}n92@)R9BD;mix?F`Z&Hf0Zt6GVLXmpk)FXlCll6YuxWQp| z;Mj4UlWJ6(ruCmjx9rU(X>Z$}W&t3SUaw#_`D0V#CC3_j5qgo(75i>epoblp6f^^> zXB~}0h~yAyKw^P4>Y#m{r5ihCSNMtcw)^phW5YNH3!gbxWIGDPs_iPVpFb&Qpxl<3SD1Q_<-dl+>J;Ha98>>%(TgFj7%G=vxCrPv2 z|I0*^(FyP4aaX*vC>87_UJXlAunt|EzN;|Nsc;OORO1tUk^;n<1PK$%s>ip!OPKBG zCeA8uoCeH(`<%+PB-cDOCPvUA!K<|*JEQ^k^9_ppjIU^K7YS-192ug`ZH%G&Z|ms- zxA4P4tXChNlc0U~PL7uu2!KRiz%e*pbD7v*m(J~*u7L)xOn5&|r_Q|kAQ&&`+A z#%`vu`6N!aLkip3_L8(3yRB2YY(gvlb#iT1n|hf4%6Z2T=^OsW)T!3r0=m)gAvd@E>|KKA&kzhw(5E|cZNv&w_Qmi- z?dx8-Sw8a6Fmd^Um2&D@>l(a^kuJ~>>eE-LV}BM$f4R;c|8^Bf>XQB&5K#mO3Fb z?Dq)lKQff9yU-x#;O4%yBFbGtf|vC?*3r?ETVm{K*Ocr2Vv zD`l{=txC>w9Wa55l4ySR*M5mIO>E%0b6c;O9~+Z(?4t`DL;E@Xtjt6eQ_m4?ws+3! z+_mej=&h^VQ!LBR&wnn}0JbbhRBGZ2eXCC!0OKuh;7Rj1aJuzM||7+S_Sv zv81CHE9;BEsrX_*SF}l&=C<)BuHL5%Tse|pQXDbiP`h9hL^F|Z)>!R2s+Bi?XO{LzAyms0YZ#hUXM;3{(^-wf;Oxv%<&&teD3zo zTvK#U9D!)PYY_^1_8tTFcK|za`^&tO*?=EZ{SGNs(-HK=JgT|EHG|ra*u(^_`6w!j zHjhy!-b6`}`8|w;Q-_r@E#s7=+|S>Zqn=U7oUJcnM+E`_|-;?TKja zvIDr|vZMPOwF}OXM1UVPLez~;DIix!Vs(O=I$%5vv z-X162PbA~x5KV*U113a!jZOXh>PYHlU{Wp|06Vi~0MGkO!5R_p@#%V8oSC;ib19$B z{W#&^wa1XWmS+L6QL*hpA&Wu!Y=XoM$et`F(an4KJ{2n>{RgXAy^g=R#Us&P{A&wtd^1a`uS#cPpeTFtHyq0>6pyEBx1gN*yb*;+&){kb!^xp ztYnQ9CIDUQl?@Zl6sNlDl zmFWBPG*Ea#O8z`Qr&Q@*Po}UY-I8&&vRpHjwOsWgUXJeMY|9$fu2`_t|Fm6q{Ew+G zFT?J6Mo)b^vV zP_Cc_d|#fUY+FvE`q^%?@|7cTGbNr;rpt$3+TCCDPR`c);@xye?Vvwme}<I0$t0B3~c42alMvHYEkn2^&%5E%5*XyYqbZ(jaACF@~tkNNxm;w_z`9? zavN8v>`V|q7Q;@G_$M#@@U1G?zPr2p^x*C@sT#V#%Cc$W;0ta+%8%|%8dcwGSH{@wf-Li`)kOeqDrP%)zLQ_O9i&y zFQ@+CAYo@2?65t0{L6jq5*08w<&G(}-y#T}4f=qN_tHZCsW_a!6UaD2nwITS;dSuU zX*>U`evf&~AAoIn%2ri}M@H0XE+6~H6ayz4D&BGdrEk}+kvH7ld%{~VOcJwSN)k4| zsbQJbXJBQENVeL^jiZ!D+Rm$^>-e3P(;;!5>Q)MuRvsDC>u z%N zd7~dVIGu;S%^6$-0uB~p<-D2~T&&6kx^LRhO#MWdI>-)3edo+5d6wAe4SyU>7YHiU zLRhQ(R%%-2x>I3{keyG?6SafEWdNE-FV;U?HCq5>=r4`Gyj z6x}X~c`U|aKE9crwHBIDNBX`qTl z!W2NOv9Y2;R7vs53wSrt&-hSkSMn{Tm|VVEG{iXEE#{m0O{qBhgY`tr>DIa!KEe7d zX5gZv`N#VOSF}Go*gWWYfASGy(>p0ERkzKBUKLhDmpVeFZijB9K1ofP`~aKYtp-!2 zncBv}7|9Q!BXWW!_2qTS2=@>vwkf>&OEZ0(-COE6u@^*yf>ZE1kX>ux(2v2i4Q3GK zgHa2yvXsEdEGz^f^5RjgVysu|GXG)#M5CV;)@GLKjO5 zYKDq&*Jh677-)#iVn5WBpt?u~dibnCc4<2ow}y8mygpPCal*N54##zY_=T(6R2!3K zUW13-iXI4_MZsFyD_5Ct_(OJOX8^@Gf*TJo2wjUXq&N@spyfWn;>~2TMZP_(+&e>F z@j~|rHZLCx3#b_mf_oV0qT&-6b*%1gq!vbQK=jIkq%%dIe_kh^q6_55IF(}#dWY|u z0Bnj>OHRm(e1gAwo~*2_2|+dy%Z983aj@ynn~hg{i;HEinqAy}Z@HkP%s(+IOWg@~-dXprTSP{n2JcD!DSzy?WbVO_4-!CboBU!7{nKPoWWG~- zxUWGBboz(ukZ1jbCnZhl-o|yjZrFg#1c?pJk&KP$9#5PL4il3!VIR7cTEKQ7KZP*x zx7fw~Y275;K(Z*EO-_7hwBNzj>#L=MPZ5(=%?o||nr-y2CvB-smP7t>z(6Ocj1V^^ zrm_ATZ@tixqPVX`M?H~P!uz(*FKbc=wZJ_I1J9kma85)>6(or?!~Ijivzd_on$y=} zy^2P38!jW_YUQ+Jf13r)reP&JW&6}6 z*Ve0myTGlO_^`IFVA@>ZQ;Uk7Z9V(Z{0YB@+3kdVJqMnVIxTrX6sNA#B2(7xZ zMXVl~f0+5vIV_Hef1~E$apWnmk0V56lNi>W@AE>X3)kb2^34tX^qY=`WgeM79iHD})D&rK?$cx%p2L<^ z6jG@|U(B7@K^w?y`kO9I1C%Mj-ALt^6_vWBSVGI8o0kk|Zl}6Nl-T#CuU;}Z4Mz`J z`DL##CZ8{{ZjD)e3}s*dK3p8zcX7A4%O?&RoRydkc?J>rAZftNpL%ZCPOIhWD@ndb zsyZe7g5opoqK+#5*o@aiSu`x%T&OTOYLaZPK4}QBL1&Emy|z4#Hw509x%Z3elC$bN z0BM+x!z=+%?9c^l(UBNYh>h|-2;Cwqcj0;Loc)1`-Hrt-AwDXwHL3V}c zetjxJeN99Jx-+YQg@5i`L0HG*w0a{xC1lVBVs?WwIC_2KH1T&L@9Uk0jxnRD*=x!w zU+=qTO6>7X&el(m9dw}+4y%lJ17gGVqOS9+q7Qb*!c`78hi#+RZzam#_wWK!9^ZIuUf$E*wh=Q*#@)J5w5I|uq zBRxj)+u8a6bz+NW7!C%*e{M95wnw|u+zxvcGiVw6_U|cCkUnchUmQcSj9?E>BO?9M z1O$lTdQO%g)bO=WRV7!m$ur#HeAX%9uO=rSsO( zENR6Yd4SZd@QIwaZk2-i_ai%K-*U4$gKcO_K<*5jAjBc4>2BPQ_%iXgZkE;uev6&7 zfgtHQY|?~o54p#ClZ0)kv)*Iy?ygo4I~z* z25Zm5h2BfOpok=#r*B_ZVXla@+-pX9|n3HixIyw5;01_XG;ptm^S)luHf%l%E#2&c5;Br zw0JS=((A~$*x!`f!VcH#n}@r0QM!PxrQz~dQA>QOyw!X0_eC?WeWmBUW2{Ct7Q6hTmb>SfbKt^hZV>+fQ$4%UOJCap6PPsJF!k zbfx7{q@3)0xcKou7s&fyd(gA2JN z=S4fe=QRFYTRW!w(s)!WO=V^B;BM*44^B!-5LlDrX$@nmyq*=~{Qh^}P%hX6jLTV# zz*VK#C+GtvK8z`&S^vtiTH%kwG}x~{`%uMIno;Pyje4UD~sf=oL_MEXwZ8HT{XBEMtBRW=h6xP1k?Q7?bL0|n(H0x@c z{SnLh2;n*q!Y&wB0Vj>LIcp@Dnh;R?>W(e0Wuq^gH;V=!#rgTCK#srC*>p#j30z3! z+}{?IBb`v}jnPvelV9CfFad8P)7(!OG2vY+Ll52nA=`6NXr&UA+UyVVtFPJ%J3 z$fSI2amGG){`+Y<0OdLGV0dKpd}AXyJqB^+L(yy_E~9bFEv`WHnZ&leb>>Hb%b-VA zNnu{(05t34SNG;a(sc^E6cptjhcVBe@J-!Q9BP=oDpA72b!Os2lHM58I-ERehAFaiGuHQexAGVpW{O#-i3{BwyW95i@5&Jboe6cB3V?29a zWLt$w(AO_So@4>a#Swqf-i91p_^`BM=0@JhTm{i@$_HH_RaUXMJ4QBIM^h)lJF(z! z`J4SvQE+N?t(%D;$4V66%CWhFcAju~3_+v9#>O-PHgCp9UetDaYzpj7sU>qm#I%3m59Xumf_X7O@BpMF7&K5tK^d0SrvUju zXf2T#HhmA+GCbb^tq#F)8<*_ggT~}$%)QScI+})y+X}B4truAvl4m}?2*-fvje~1? z&^I?X{af7#1HEW)jPl0vtMX!W~GjJcDSzR1;yzqu=%ZV+u<=7e|IazUqZ5>M>gHyZxJyz zw(`yln*>eRLmmI5cJmYBn!~_q?~{%JuRYw?oqF`~=`aUsjVD~bxuPtGeE27BJ{GGP z$w~E=ciRVRM>KngdXsR7N6Y z4nrNRd28)>#kmZ>P>dau$u+AAVg^p#`72n4WwE6InZ=1SGebGG(Sr3ZRWq--rqLGy z#MS8j(92K_B7>C2>LxhdBX|5(*pt+Sdmrd$D&M6quFM*t4ZN>rbpB3j{&q;$m8+GP z)9=0lZNYR$%KhS<5;bp+i+47$3t21Cq1$;~wmo0s{+{au1FmVq(lIcbq|crBcUYXG zcSjkk-?jl_Ua(VuPB+*lB?0zP5h6l4Q*E4p2yglrV>IIwKHZ85 z(Ga}Lp-ke}OS-_DO!w(dzu`#`XZ#A`x|-QEf7{%Uhj*B?eP#pHvOcPT4Wxq_l13Fb5PIQCR^ z;b&3zal@6lfbR0!L6r!3ox*JjlO=PKjNKJG%~j@%5qN&4iJA($m>wJbC-7$?o~|8&v<;|KXVB|1I=qjSW8;zcsc+i||H?;oG*#b9$s z207^hd8j)r+Y`iqs(K-gF5#T5FWc7_TvFo>=CF?KD^I29dh>M>#A&xu?;E=_sxGo{lHow8iV2R=zRU)Ty;FY=)dxb4d( zx8)E;RVFW9l%es(I6cPpaSQ^Zy`H%`=z$-Q6u1C0ieUreV%zjx+bhI9jz7XrhNo@y zIBJ!UWu!$!J&p!QTy%xG4$61P0^6tNze}^OxPA&4%Na|MmYp_qRl}@);w$4$)K9Uh zQF$d@1H1u`+|~(Lj}>hCu0nI!d_Q*ZF5;O_hnkKgV&)$74&`-~af)?st=Q%P9C>%Y zjY)QB(zPR|u-)p+WY-{)5xIwP!ySyI&I}Vl#|~# z>DT`CPb&qFbl!3u3)zk+@;=uIg_5G8&m{D`WTWIUy}4;+^_{>ns_U!lxx8 zTYWa>b`_=JA$mLx%*JXv9!O;iX99sR$?rjP`-~{Rfk&SsK*J9`SVBV4w8(@ZNIdv>C@rai>RB~Ki3s)vj{7+Ii%Or~iA!}IWS!mUIc z2CN>5yAmfVY7T^2Fe$=6yK9C9G&n^af2ZXSXq}($j-n;m; z!BY(mKKY0j zO&0+d3~Il)PPuI~0VK_?MVO%;0P5Z}4X|^pDSu?gEJ*8>ulV*GtwTus2z;SPh!GzxuPiqm=I*+efO(~^A7AExU~%sX9^1o)3n_! zROl=6>|Hk(^vGRa=-8cQJ806twFe!;g~Hi${qP9~MP}odmi9i6)VO?%`O-4gv4=;D z^r+$aKIphsXg~5Qe7S-&qcEGc=3fvaFmgSUkh^JGp1W~w`JdDskDGb~Lvm}dHrhpZb&G8;95#Os@k9%fBYKvPQMmrA_fqVsID=#y9 z(I;*G!GPL~gE6#%>z3!$Z^m_FAZ2i=shTwD*ErlRqwS9L{$PR6n2%|eO`YonlN%A? z_r?-N%j`_e%*^bEH}s{-CDPyNU3!g|3s0MWx1E<_C3+17LQ~K+iP|pUKC((O1+WT_ znXG;5g>J%MBV#roV3OybnLCU`Cgfg$%Sg&&Z_oOzvwtZA+r)O zULw-*+(fjpGf4g#hc~Ox0SMeclGi&OB>{(s1;y*>p4!F=f=EqOcMJOPy=RXHbli~w znuHH(1KH@>*B3ZoX9si$9DI5fVa>A2<=mPDG+Mzs5vNkxhxIPwXlFG<`ov6QM*v@#&bVpY>~&I{!lLnJimC8|AL}U zxPi%3%GV^YPgM`C4ZNtd)AVe*vgN@Vc z{RDiTT>I_2IN*LyLvZ0OMcj{4Y{~U`x?OBJoP5#K6sTS%7)RKd(H)CHpmn5>5TQ1*I5{2!(@Q>f_B9UrD>D+FXVgyUb<(DsMHsV+gF~JM08J zw6eoZoShJZLL+3;O|I&=&`s+Z=sMEpz z?)KlJ(UEx8(KO@hCTe(B^139#mJvQ3QE9Vg@YF&$7!>jZ41gzOI!`tHQTuzMj+Eaf z1H-a1{tj~C*7q)U>Cs77Vs!oB*ZBI1L*3}u(jYRU7|1lrJc(X@g^TN8Wf$L&;5ir# zDYZJvqU(3Pn{9j1D15Wy$8K7TA?H7G4v2Lji_%tB|H}fCO3qn>n_Lcth7_lkv^8EI z9;5yz#JvTam&T;D)i~9Hr!pF`kj&d$Y{6yEAF^3N14lXyeK+H6UeYEL(n27(f6X~i z_d1k37w3x@q$DWK&yj4#&SAXq+xxF?-KF_7LlXC#hx)JmyQ1@vfk7;#|AWmo?&72^ zS3JE|B!^{K0KD*jk#w4DUFQ5O{)Klt54tu43HwBK|WN#a<4>oCoGN=EAM0Z@;J2}&w2k0^t z(S3HAs2wi`tgp;Yh=}QtRJO_sN-Yl+Yk0#mH1@jcExj3!QcB!4H`&GKtds2dM_x0TI%1lA@>Zs`sXR2mmOeyj6lMFzHcck%^r(dxo;Nz z3AOc3w&~y3@?8+$zLO&;`2CDGoSvtE2O%yR=m)H}`c#siBu!A&MR!@voQ>P{ zXr8=ey?zj92kcm$GPxfri4IK%d**xH_XV|P3kzlPKb5Py-Klx5v2spG@u&n#+*jb@hCDKwxyc7@&N zGBe;NZn9@;>b)siw>KRNQ_PzI(j>AP~K<(KAT$5CfSrh|m*``2M!2tA|Xk76Nhb+JQKlpjy zleVsUu=n-5X@(y;7Q4Eb7=iAlzSej1CW_6gMT_Vk6MoAUCmGo-L5@kw>qI0+@+BEp zef7!f5K^e@GW#Vo60vGci?PE&9BCOTW`c2DXhJhOK_u8`Nt-j?K$1v!tr=7 z&oHU5lGpvvdC}ZWhF|hpNJz)X`<(io|v$1RzJwE76^JHk5p&(r+ zUTBx{wVPu2z;KVbEMbo;td&?J>Qn#o6W4fc{{@z?p1Ig^owyz$M~XfA{=6~GZA^5& zXVVbu)6zfKJ0#H4)AOnLbmkT2?=#s(we#N;^o{;piCB7OV$*aSG-6mE_{u{CN+WE|6jGKAtBN)_)D+IgT+yaTO z0;XF1+~zvo)ALjarR>~u+uw1(mS&A!(cyNGwhQ1d@m}LMEJ9?42#sCDh83V%cV6Da{u|1G| z8U>H&WVKxSj&YGSb4Pv+bQvsqI$rH6zgO&dJX4Z4w4p5I!?6WFOa zW7;P*mx?H&ibrU(I2cIXwxhA{ac7~;9655`z*J#zrgC>|QMF^x#{V!>!(c@d839PWl$LS?3jU zPwgzxWql#6$M`U^)U3~7(=N;aOF2TgZmzhFzrK#aOtG~SUiUz@7+(^U@$`<011ltj z<~kTX=JdHyY-OWeD-Re>9(k0SH5ie^EzAxAq2^>C_uL;GVEVZE zV4nGLJEvIe3&_DBsD3uv;)Kb9;z=iLmF&(#&50Um!pK|2A#h-`C96?d>u9(3%GpAa z|Fv%qw>LFY8>9DlTq+XH%?VZ_#wf})$1%U2v9VjrLyV7y1)GO*wgsV{{quK0WlK&1 z`I4=(c#AV30_lI%rpqJo5uP(-`P&+koLz6Kmk6MaVx`Hx55*nVzU0U<2zP3D_tt2% zs(J79!n}cjL-3gr&D1MMG)4U@tem(nd2~mknr#;qHO`pi3nd-$rA8LGb1Q1~H@|JU zm=J>2M;rHp`Yb^amUH|JTr+15PTnsbJxI97X^5JXsGmklwEDTwJXv0KNX;;?jeK3# zv4Y-!n_13Y1mv?bFKm84NI)GJmz*70{mJ6l1ZSud2M+t`8kw0n|0iZ0^KS@#&0!NO z`O&$!$ixPZ*h7K}o1=|9@UfsxL`r6M=|KOt*bz|Qh>SG>ya^;|IizuJ6g(=%-=Q+Q zSv5(vWEaFusnEU5&Sa@tESq@i3sAh_y^BkD)LFs5-fZtQW+QFRGi*ik1WcP585mfR z#$QBtrb2Pt{;PMewH`?LR%^?$7?J$O@%19sV1V>DeT zFYoG>%$h)D?pEJYypwL%+bCZ-XU3a+|NuS@m}rk?SyI_kS$`g6{S~M}oXM89~6f zt&Y58>MWP}H3c!htqUw{xFx|i@rV~~v<(Zptk~7}2F~*tT7`Let&nX=T)80QKI1LD zx1S}U2N=Sa?tn>-1PKQ6y}zfkTjfHSgQ$Vx8HF%$aH)vOAG`cZ7g5y7DL1k^Z!{-< zm>nIiCn@rRwE5*kOBwFGROMWu11QzNZU(%xQt>RCQwO0ryU@IehD3vDQ&R zNauCjvO&irbxU$A0X#npJjknXX2%uDeeJvFRX>q`j;IMZqR2d_3RWN5!<4M7`{tyY z(s~hXL*V(ucW7j>G_c3W#srp|goCL6U|bK>aJ&ccllL&zE(k=6Px==A05kN$s%p3r z@FV$S4Rx6eKrG~jqCXD$k>+<4?8csCyRibSe_Ka57dQuMU>dfn#*9;Z#zh_T2@5L& zTPMfs@OLX%cd5XGOft-@MfVF(oHBcU__bKz(Ue)`s1h#X|}2DPQ(?;A{)`= zogLA4w#bD6Jp0$;2@5=5p_RxQuu`0!-RD=Zw z7eb5_#7k{RwX@aljo&XA15sR~oWcAF@>>>rrWyZ%Wi}*g8;(jG;GH4P#f(CaNT7H? z1^0H+^Ltcfw%9sEQW~gX43J$ax=ic!g;jMDOQNF;=MHH?Zf(=C~KJ&v%bG=pCf3xDIgc$ zbn$!a(4n3cU-&!_V3;D!vsLj@^1yvFy>4?tTW~ITIX3+)vrhJIsRQee?U7 z;JnDT(Um-lV3;{#1`BlvS}nOK-&cRbiMBMhqpQuz7lH# z-mqBMjl*| zAdv0TuTTDang5Q>f9K7A7sG!Y#V>#OUnlzCo#DT`=KrmTVv0(uDk-2`_eJvdp*zq} MxvyMw_sO6C4@-td^8f$< literal 148334 zcmZ^Lc|4Tu_y0YNeP2ShkzL8YZ)4xeR!Pd56qU+j%R075wn&jBj6#$xse~a#i)AK6 zWO-6dcFov^nfYC#`h1?}`~7|YN!#nbuXC=mywCfbbEi1kTXC=ovqBKWVPkE61cKn; zw{VD=5&S@j9Y}!a%rtGxO^#hHTxew}kv`|z*I?KXl zWM9hLHXD9(6S&hIZuWxMN<`|#txisxk&Pi3j6RPGo_=Fr!(NHKYBpz!pAb>wL*(_r zhexCB501OLk8j)#+Bmv)+;I8$(5;AjRZEw|A{Xix^?1qDle2W~tW1~p=uNv^lb?qEX{rOUe2{xp6LLTG&6_uysN>{y zt~EOm@{G?xS>Lv*42%Nh2l;|6v?6RMG|p1gxvi?CQjX9&XS5Q>RmX2}t}u|X*6>o_ zJA#z`SBLtGX?y8fy6vY8L)ipSY3Nktw!C4^%&V`ZzFyexlXh43jtmr>C7E(1u2tX% z+fVedwOZSub*n|hx}bmYP?Oz$?;hXoQ$v^^$Hb_WvQo9e- zcM-1o@Hh@Bew*(||E8ik(3kWna$EBSbnQ zJ7;Ruu>cGw%Kfk{S^kL2fPy;8ri!FpR5e}OiQK$iq#rgz?LHs7LU~C)6Xd7e%tSp) zVZYFG5+60*gPF*EvU2c_9sQJ^g5J{eX?q{lTL)@eejeR9^*VcR*wtk+?{cfBcOdfQ z*U6uz!!2Dx>MV+fAUwk4A@kp-Ti!B6Wmi$0ACAVjQ%J>kq|bzWi7!uSAP82@O$LJ- zRYDaJcm>Cw7Opf#pX#Z=u{iOQ_b$I2_DXk6_1Sbe6-E);(T3M#p(nRnC-oOMr!&tT zEGXXjCWnih-1d-z3DYfi3|!@!^U)dJ2QF1F0s)gh^qFnb_?OI=sQwjmJI-sD^_;ss zpP|wxVOMx(`0%0lF}y}LgzOX^$UL~yzb;o;N9}3wXRavx>%D(w46)4hWKkGqdmIgi6=9_WNRDXH4eg zoeOj1dEe(*@(4o`lO9|yF?g$N{Z?6?>n9uUPqz07JNKo3-oD`&N}+QmUpNf)cq^H6 znc2+XCegF1xkVj!A0~(8^FbVMkn}pAS0;k#+J)3ZG}K_+Q4LdQ{o@{{?iQmCN0L!1 z?@WDiyY3E=l;8JQ@Dxk??j$%MKUGy>N+j!;t~EJftvIxa)1T$=^4a5hsP?lJb(m0w}di( z-+$|;VxHx?krG8lsmTtZrVw}(~8Sm9F?JY z)V=^|e+*pCUiJTIIu~NzPHp58{8n!saSCY~9lqh9ex6!~vEKGu$hN*LBFH#Sb@ZGd z5Ad&Xf&Z9EQc58<84r*L5=lRoia`wOWr;<#7p6C0&D-{nVK%XS61{`3-c7+{RehL$ zTY}Yvv8I5XZI_}3!4(VoSX#hdI`fI*cC&lG+41Ob`B5s6Fj$cUBJZr?)KsoLBpUW5 zFal225J*?uyF!g~a1Z}}TX9eFMma6AJ_Jsoz)BEKiTGHi_bnK{p8;H@amdpfZ(N`f$+T9vZ3d~hQiVJrjPd*3=DEIwFT1| zPnx1;^(XJj_#76P+?mlnM5UwuBkuQ1=$H%~3a7tbhZG#B&%RxB?s?kd#;31p!Ft{E$tTpWt<>zl4PnQrFDKS&D#W6RxJP?^8lKPOUqIKQ z$ny{G(M`4f0M~JL&d-f5Hg)MlJllB>u3L(^mL@n#g~D8|s;#79*O?a@taD2!+&a*X z3qmGq$)~~Xz3H~KWUIsf_zf&w{}IyxPX#WE*~{3$Lg=dO%u{(Tgt3FKM{P&GLPFT_ zzu~d*)By)1S))(=Q<`dZ2j($O4!QO2l?^oEZV#eGc}ABEWWMslDyzAQmvp45SB=t9 zfv}jXvc(_D(h4y-uvTX6?hE{|%QHHcRDaz4=WUYe62<0y&!ogdUD(QYo;EtFIQKd_ zw`?}3bQJZo*ZdVsxe!_@qjvF^^;p6FW8QZmZnvln>F1S8{y8~|C=fKd#H2NrN}P^7 zrP>UJJ!JMB{}fWyHvOQF4B3qRgO}tC?Q9mQrByT zG5bTFc?QuHbFe$O+F_J6P=)MX-=GA`GTI+U@u3ID7&T zCMgYAywEK!5cq+Z&gA*>^VCJpT9otLCCm)GT_I1oB%qR+q`eW1w}E#u)$y?q%4%y+ zJS4OG=Iy#^8!{sg6X-p3U{lI44O!&Q*jMngE3XiwqO2-%?VP8!^Y&$G1iAW1*tVt| zbSeG?zgY77m9N+Jr`?`^B3)il@w#*=Ioz;Wo0ouBO&46++y$berd(bXPGd zdx>fnKXAw!#}-k})aHkysO{l-&)dyowYso67~wMhxV+7#cF5y4_sn}46NkK7t_K+O zyc3r=W@VvpI z&3kxB+D+FQHdR07(#7zNUCq1I?d_4!R4OezX}EWGA2>3LqaLiJ0%{5v3l&c7%3}{* z`rI zwmm#uJFUdxDz;G~c`U$__q=u`Gtk{x)n%(p<2ZNx1~!JcFIZzVRp~k!{|Rs8Cm^#W ztd~$va&~d1N|)A18rdu$BT%hj4`TQqRxho0OTbpn6A$xm zGDPT58KdtmDtm8Tv%W=y5#{jxSaqyk&bM@Y=IVtn+TYasdh-Z3XZFos#S^Fw-WQkK z?PUrVfkUe&{ZT!?J#?jB@IbqTSgjZ>M;Y*QNDLJHZXWMSJo(ey3q49T>OLrUeP@DQEyv-Mm$0EuJE|Sk@$yHKC%HjR%pda#T(R9a>$p28{$+ndlgxa4~lQQm$=2+tibyc>vJ_T znzwpUL8Rt{(N&qkFlYj^G#M(CVOeTGJQ9Znrd zNq({A+v9_i!oj+t^(nRA{+aT-t5{-(l$Mx6V2IJTRm!Obu!~|KyK{94VFoW#s!0_J zAnA8t_B)Ri3sAkqb`Pa$4T)ac5^84R9Y%MncO%}Me@WVah&=aAl+kkaWU-3_5>)0^ zMt@hgO!1y|W$$iYQZ)O_LHs^>u6{3rh*58}x5uSxTlB#K&APm({t;>-^}rAFD|GF7 zstLbAK-pzFiE!`YmJ?jx-3DLVzG84x%p$s`J9^^CLrpp60f!_nM~Cor-Fk-cMy0#k zqU#T#J)?hLJn|BVRs%boG!yYr1{v9eXLR_5oQ%_0_S-RvkTk^qoJt?T%F8;{fA->X zXIEYS@t$OC^vz9yX0GjpSLe4qz4|QXZ*EFND2{D-ce9eJrl=fv_MBuxYeeKGU8tnD z{iTd>#R$e`7FI=cvif@FU&r-r@|A97VFNpJgfL{&WnZGsa$Kpt9cB z)4puc|A2aOxx>iex?T!hw6qt3bd)H&KG2k|h@mqS>)prDOHzuh_3CCMymB+r3b(!h7USB(hSRNN zF1ECV8teJ!39IvYf+Yh^NTZBCuLY*PEg(sz?fX;beBg!l<#AtdPYi+$-kOrEsE|z5 z8a}U_KFUFh)i%e(P`v5x?-QaP>{b^|)M- zqbPoZfvDHDs<@ywvdoZ&F+Gj=IQ@5VM^_y=S5>fVtQ2AH)L68LeEo@)eBN6;VIonh zw56xaMLh}gTI=4D!54lqPlTGDz}mD#gsu-#uv)^bPtPh%)d&6uVk*P9=~$dJ@+wXJ z!g2yK_?){ZgK3GB>c3H25NHiC$9JCd@kl2w|IlaI5zlmI-2Ng?Q1&zAt+nVsJE^6W z6rE%KTzJeb&+mZvM$8~jh z$qEs&&9L{KzWAE7Xs+WXN&mXB#{pwatIM9rdhxO4OcKt33MtmNa7k_sxKH`kO$Mpdn$K-`+=r;@BjO8XFR7O;xhywMZ)1GG2^y09qUWw+2 zp$2xrR>e5ResBYjB^kZfL^{4+_E9o@i6gT>RF0SI>n{$>bmC?GU}Vqrf${I)SiLG$ z^XV5+a-rX_$uGT((uw@WdySIBO{lZ=>GAcKUmFOtGK*#2_<6O9%z2TWdMkt$(f)A{ zgMq8HsT;;(iZs|kY%lf-@sMn!)Ea?{?)^C@k;?5ouV4&7^X)$(D#`0WBk2<=xCFBfl zv1kF3;QSF9Lhkv4zl6d;C|~uE!B3e!mg{(P+`&$=$LjM7zbZ_|shik9HengxZA9L2 zl-M(g(rE#W!=|WfBm<>M7`K;Elef`zB`XJSBhIkrY}*E61U+dAeNk5o@^uCSaoHL~ z?N+Bf6#iDR6am|hx`BGfgZLY-3t%OK&;e3$s^CHxe{6GRSU6urMu?J;iRs>eG5H4u zO4ESdY`dy_sNtSs)u7?|S0~=Dzeu5U$gwHq`=sB%=1P(s)Y55x7Ss0^k{;tAi*>?d zNd#k}X)t2u^qZpSbzLz6i*!t)_}iGtH?$*B@-opOm8?k1;Zj|VgtJ)-k|*)!kT)4I1S#%~{ zj;oYvx7r`HGbd4v442oVXxI^I37fu8b!z}9^2)I9h+^|M#u#&X+hcA#-a~pSPN=|t zuY9+|tiU5d<|7F=3qQSkF8%0i&q1sR&fo7QzDyKjsn0ed-g00NUvWaCD~;z*+A_0) z5~obhfWz!_fFyNcH#42KXLVyjZVnY2@Qb1H%eRI@b{a$;&6DB_N4LO8{uJ%Y5sF9^nd0pk3&_9I* zy9|sw9^BaifZic#6r$lK$8&@2aF3hn{vA&_DsQ{C=iW zgPSk|5FTGoaF7h-R)9H1Ua`h_q=YM}ea9_RQM@nNC-(l!d)W;@YGuvRu9RmLtf~hP zWE?vwX*6vc}Y@gLMOHY-a4MHQ%^_JgMz2oN}>XR>&q;`UFB(R#cDi{Slg-$zo3 zThwLm+z#sFLJ+yw|Nc$G2>H=T>=k0yXP%1J1X^r4y=NaWe1t3}080K`OolrxdY$L> z?MD0~meF3qM$onvHMNBvJ-=XJiyt7X2=0qEn#h^f$A{_ML3S!7gr)q;f9MZEiN>b< z9I{p1qX);%?iSkA=3ORM8$@W~eCVpejB*y%3KF-+o(Q9xq9K)X1B7Yj-zS#9<7m9> zKj5e8O}H_$T2IVXZC&5iJ^N*N0FQVr`22i078qJ7j>B7tv(xp zUQ7XCK*ngDp50U*#}XUqMRZ;Dx%r&e@Ot|y)%!x6(L*GcMY#d#D`r49WAar^?ElcC z(|%ydj80)w+<^H){91dPkucvfyi39U5(o`~SJpbN{+4;f*nQravW2TOh|6&Z zYGEMo^KXhbtH({R(XPk-bri=q{O(V@O~&jMQK~=z3w8g$Tn9JW6d*#SeD~otdG+<{ z>8LQBY9%G>$o!(B2WJAR7*!H}((I~#9*LiRCQx-qIILkt3ec;x=4rwEz9M~*z`wh6 zqtt-u>hNDZ7@@UXkySiJv?7G+k#y9CbQ1f%>cqecSeQ=mEzyjZ@lTbo1ULQ+N%fY{ zzvXT}GnAWbvPE;+*);@l^%TdDlxEzct+!^lEeCaZYWc@RxbcQ)43C~51E(Z;r#PEV zD%t2qVmLztr`iyCuFhSSBe^@9{3`zr-FYC=_Gm`gX-J-e-WfB57m=DtTqNS8+3 zw|Riysdxx_hh2s+37y>Hq;N6TXv6D$(=A3^r`U)#@2;cFwN1-~k!E32S3R!v-tR>) zO#=3`i+!R11S&vMXURcu!D5gDr1KsMLqm(6+PR&Hu ze-XuNnYs0WF(y8ydg#1+#$yIjh?b>Iitd@JRRmsKwBLQ?@TMT(vV6L@|GeWQFBH#) zJz?`a_J(s}70i*QxF)JzsEKL!!AixdL%da1`N8k|P$i(-yLT22%{GwM)rbZ;-=g{! z<$Nxbj@4?HPFhv3vJriV?nJ&urT`Nv(>OyB_v&$rfj$|K8p@+ly>X}^jUTk=d-hL0 z9lQfEALH<%1%v62sQ7H4&>trTjEA;rX~Jm2+Fv}1A@3(i12V!b*?xM5a_-_m>@yz~ zghiN{KQVpX(|nZTO4^EEV6B{%? zVzHOxoheB@5FuF;q*st7JeJYzbl+(s+UTRSrs1Vi53@2rz7BtvDG*i z{N$yDe8SeRQQs0Ig46#4;{cIzSNI%hxV zP(K)?^Ek&a><>d)2vvT@T$)=#!ps#r7=j=9qvv*9K)=@q^e_}>;;)+}&@o}nbh?qL z;Nl)o4A|Y%=pyJrS4%f~ep`1v#&Omrj|;6|;{VMK@89D-+nWdDb5np_d9P4W7)t8} zJ$N@$Fu8M7k(FB1i5cwi;QbN&B(Y#A z4R(+BJFU=|px&|lu#)yQB4`Yyzwiyv^HM5vi1~Tz8vToy!_%Vn2Yma)`dI&Tj)Ae* ziIIn|;?e;QsV1L^tplB zzLaCIIU^Q=b1iETzYxqbqn*j;8U!GZn9Ae9304PKTPFu=HuMx zLj6?#qE7z@_!pgjxM4k5JA*UGq$T%mIBLfFS7BxjTKi4J(+K`ti|N~mUHk3Soo6vL zuY3Y;U(ItUIqH~QT)G`pLp{)R96#+3y6bCxTzaW7-`h@jaLnC%)52jW&T*?&B6^1M za^wpZQ*fFh{39jSq|KX>-PR&HmaBy-th_cGellSgZSv*(;d!7Fi+-^`fdX_olQR-;rk#5GsPu+;MxGf5*~$96giAzY4S6E`&7{}% zD@=qv#9!ja{Y-d3FL}Tg7xbr~(NUdaZ1SlL~7>i%d;Gw793H{y@q)kpjjTsS#eu!mh;>-fS>XnmhFz( zkPp}&Z!e{GF!uKK9cj>Vrq3(iQdUyxqTYHx>Pe6tGC7W7jO&tONk1jb@4X}!*FZqp z1UV)FCW&(?aliFO%S6&d+{ZYgL4;uh=j;w$Qz(8JoUN=tDunWcxJVg^GZDe0If=-b zC-^EKQTxs}VvDu%m@YoQqoK#*{5=IsSjGG8@vA>ZXDlCEbf>uP!1mEg7gX*3XP^|S zr)tPR8Ui+cJs(S$2}TMzMO2%DWHe~^I*#>Qp{{+568SN^R`Uw56B}V5Da>bW$~Ln_ zzh-9~)!9Sf30BvzX4ESt-WtZo`>A-I*gQd6Q@ZFmx}*Bx0WWm=q_~eVX)~0k+!yGm zVV3g`Uipy;UFqOEkfKy2{U0PjW8CvW2{~iW8$K`MqQPn7R|w7&B%g2OP%a!24UY{v zwP*xyr4O*MsWEYwDx?a9DwbfLN)Z#mFQ4u4EUPGM7Y~+=9x7X*j|;tbZA(PMnzPge+aFX%pU`$MC7fyWdeurK zaWQ(NjfVFR(gt$anf}CsSAgWWcJxsUKTD6Pu?s-qd}J`8a$`{Q629doT<}djqs3nn z`36>JuMB2EQ#(eiK}Heswq;%?i=8pz`dZjoDb;05E^`}?bV?yb$@_qb$SD=Uvh6aH z283a;QJa9i3Vyj&6=9lRu%8`Jmp(mL{;)^#w?R|gU`_ftH208sU*!Q2tmcp>K|osL zvWcCAPu4H#`_Xu}f_J`yz`ZUPMJZ>X@z>;g`?2)8%gS#u_7J!I(z5x&ENzsmFm}aM zrc*4V*y$mJMUdak1+)J0Olqu{5OIT&mx|@7WX&wUyxg(=pcf%mMJq-2{^34AVUi#T z5A{uGF5h-wbvxY6>&D&<{3hc~WB(J^K6yTI3HV%G3GPeVO`|qpAUI(_6_p(9R=pxbTEBGBb2AtBPt3+C z2c2IphCjcVA@iI&LsS0M&JF*2KDTSMx%4lBZHh-{ZVV zvwjOI6UQxOiRczn2l``4ZGg?S31+Q&@AG5$B`s!I)5vVIKk(?h9mFo#&K9CEgn4&` zN9@oQnCJz^#PB@>I?rSgW!BJ@jN0xNenYliwDhFaxhqR35&b5Wq?f1L;%6L@F-a8V zW{J6-oWD)F_Fy_zXEjeIYn2AzVfZY(lHXH3rfVdE3W?x*QAQ}0w7qTZV~6NhGq@Mi zNO$#^smHSqe~x&~Q#|_Q9G6U2o}TX4>r&|P$o0amf?Llnr}BasLGkl85W5=C$?eA# zm#DJnR9723iWYqc3g!OxcDhM-p(#<9@eNZ_%CiErbSmB#|E7?7Xrw-={tFXfuSV*P z60cL2*F!2Vt(ToE(^j9&r<$rTwODqewb99CCabTHSBIE1vYy{ILy#Pab;-ytHjvMG zSvVCznqoS|6*>MB$fS=FHlL7hfx=ET^?_MgQ%6?mSzX#t0T^zI`xZkRx07%h&vqQ&O)5Y8 z%I?|+bK1svOGA~OA#G4A{K1ydM{NpgxH!=%W@dsoS#;ewIfCC zC5Ay)?#)XZ@U=34oEO|pT`i;*cWSYAtugml_>~Ye85Pk~V_Q1>w9q`32Tv{G%leeu z`$1QZ!aF87Q#{OmvdGg_Wys&oMD5zG?;2?ehvZ(oq?^FB&Tl+qBAIf@DlRHYQ#eWEm5v+vRtGT}SP*G6xHz@(q0dC%nL#m>W=e@E>#rJEWC z9nNXTYzAU*A645&glYQ7k!dnGmhWkbIGJUZQC4K8*ahH&`zqT5SrDG@b^gys>l2z? zc{XP%Sz;Y?h0LS<8J$p-KF28GbXWbq@IvR0f~Y=W{^`D!0%d^gu{=hwmnft)WD34ypyDQSrxtj^peI1dx zE;Psf&qTNToii)WPiqtzol%t)7sV{V_%;cVkz*dDoD#FdG*N#`GIRHx2g7)5CN}qHbzGIe zNT+nxgq*8Vx|DaD`GoF)_wu7EYb8N$tn6P8K@TtU%{;|l%$Yfa&uS@-NeWO*TXo6{ zlTyEGloXR2bOx!#M^p0Q9EkhY9r#pFN&-qiN)Ae*Uv~FMS3MgcwAl}F>Te1MlS|tg zLT;}PzbT>h;8_FKeGXEat=A(@M2lL8lzR{-vdo9z&>H@UR==sT#k^BC)tqbg>k6_i zJt>gZ(>uf1FNibKaai|K_ojqvc1lY_ukTC4bS^}6V6M=4>8wnA9|ESHtOJ8qk+CMe zdqY<=(@17TzVip>Yjtz8{gxgWywwKtyMCf91nC=n&K{Pyq`h3h6Nl)nAp;>oOe2rX z3s%D$8v}xM>B)f;dk99sre_#?wXtL!mzwUguXYIMlWf#r68T`-In7mIhwUFy;-ldu z`#U+?lEB?QyI2&mtsSRgsro1|1I?ixlSAf=y<{A!eZOS$j(iH;i*tcaSB*j?@fjPO zcq%#)eS~mUZ7Yl@QmFj0?r!kxBzsmc-Bg---*eq36e)XRmkbQQ;ZNKa5cG^%&2(J^ zquT%={kmOxkTrmE&ys2G{Am%nl(?GWogT;^khgjtI7qpW1v@4qTd~9iEeKw^`8uCl zXd@7`JFO%!u8f@<*l}IYn7H1=@Yx~uTVT>uLzTrCrJjKL=PPdWK|nA|XVmBB`E|s( zS0k_My0n3jZXS_^8LKq05M+rba%L8-CpS^t`dKP5(Zd~x(pj{K)X{Y1Ql`K9Hua&d z+sCVQnc9(S+J9YL{&^m(RG2-0x7Q`q$_^stDnFpySf+V9g~x!|P20VLw0)DZhw*(NMeF2zQwwG^`GWGQV4V3T)PpFiK>K7Vbh%*5bS@t^s0m0@1;g(d zIkq%KoOTPt$@kU>x&N+y%kTN znBIF#L^$jw_IX0j3a*8Tr8m-%=cg>>cTRxdf>(CTwjf>{CF?I7>lA(5ZNN<4*DQE4 zxyQD~vep9iA-v2y797~;u#bEWBy?1MsM@563KS3%jE z9mpjFmP)M%dLL2i=<{swfsLiz&ecZY$k1?)=2#HWSsi zTF0vo`Q(~M6zpYBxJP};3k_B*_M0iws_RVIyn@kw@8)ev*$jc#p_+%(gMW1^v#Kyq0RxSpWRF(4>1`)uHJ-Ju9vOlm{)do*D4=T5qHH3@aOuc~bfqo`}v|q@T&e z>iS8MbU${>O(fNrc9&R{FqPcG;{1+akvd3APjf+YC*r}rtnptmr+5v)+e;E^HSB6V z6SdxdLhhcR`x?q2oW2elb3EFaB_!2kXc^vqwQh9hP^tnLV0;tWFZ1?b`GEy8NDZSPk!EAbXk>n^AjpOVxJ0CPh{qOi6yUm|$C#)M%whmp*P-OdBmu-2sHL z$8QF{k!+Bt_XfZh;WFuuK8NodI=kYRA(M4)`pk=*y zR1~ip$vczoXSo0UGu$wC7>6mP8b?SSU|BhU&&8(TyYP86O{HsoLZZelQqgC;<+8~p zgFnW?bSTu6p}fn9y8Gsci&~Y}Cf=@Jr~`hNrpniS1KzHZpo}Au1`^lbH#sLG1zTy| z+ZwgSTFYG|qw!9wLFo9)@`OG^Fi|#xJODEu-yf+FA#yU4E)she9#-6yuhf$(yVHSx zYz+%^j>#YPB*k*m{pd&2h-ccJ@Na7xl_KHULnOs)&zm=gSnf~15c!eO zcK`c4*1nO=KN_Kz$SG-f?aF~*tKi7sQ}@ji8#(;Nk1apZwem>Sq#gIJ4!|GTaZXvO zD=k2&ilzm=W7QvuQz`f0f-Q!7N-u7^CN{s8m^;PsYwzXkrr$(D;*4P>b2KkxzhfJyWqUpPS~_X_K!B82MAlcRfC`K=Gr~s?
zqMQ>-E?r=aKpZ zBZ4sU4!~Ms_hq_bA94oFEp6)J8Qwnn=H0WF{O5?uFqO355AHX^n|)sY_26n!!4Hes zKG2@awRjD0%It1o_(7P0MJtStv*2smGsK8n<~?ROL!7F0WLrlg{Rw_AWY=U%MrC_ zGl~;_*`55?WvHDq=SrYb63+<7ONwM-Th5}@`0m!7GfF)=G05^h=%;uaB@+XdVdU*~ zo%k1F-eBsp>dc!UoUR}J{#QeIXFNhEH=FK7>9~mZMCMXL{wsrzCdzsa&d-?*Z)~}@ z(~v;dVRm{4NLslsnP-rrDn=mlkU{w82-nso_#d@^OuJ^l*?7h^fTh}s*&LlC#odL|6?i~wj@eQn{B&?2;@E7r7 zj(ONiM5k_j>|-&~L(08t6B$}1RZ$FN*vBw>uZB{08DVii&uW#LJP|ZRkQtg)_kRG$ z8SjI4!Co%q!=+>8x5V{s>yH1v3?arl(A#DmgmgkxG27pOPG9*=r|%-@tMv9>kh<@7lVz%BU*7TB5v+%dzS)ux3MSJ=-pAiPYJTpR;hgjc zENpdY@246}|JfZ|1dC0@71XnvkF=;qCJ5&azS`Q?FnU-T62BI%pKlh2D7&TW+4WWR z66q>m8r}FQw8@j};{7Kk)7=>tjkpQoje9t5h2NiEDZpnsdQf@L%V}$NFD6Gj_P}UNKAI9vx}4O1o}m2Q5OrLt zP(-rYFv}V$Ob$1){psCzJJ}l;^yaBNWwdvoLNmf=;#zuXua8QxB__!-j+cAc6tL>p z^Y~tpF42^D4u4ofX~E3FOG)|FZ~p@HXE=Dh$|I6ltJ?_ZzrXoQ5x_4ODPqONNLn2$ z{4&QJATb;m&?*L-bR%GwD!Xzy`|YV>g|5mOWTVva>H}HORk;~e`FCvi=|lBCu;?AL z9uaKa3FH1VJ+<9chP}NXumo)7CW7ckJRcm^C_HKDV3MCJR~Gmcir@^|())8U`(ZaX zzP2cKJ}OTA3Yv)ezZcAeE_@CYSQ{3S$r7jSlbQW%y=)hZrVvHtK0Ihh3^IKb;vo++ zepzs0hq)PH`|}EEb>G4XV`P6vi;l3;qy=fKx!P}8*1*pD z=On7;id}X^rJtg07wm4gf<;zwu*fQ*9;LBNqw|j4xuSHvW!6j^cExm%MH;o2p)E6} zfZ`S>#)hAr^tyK~DLq@98sBH>yh%sWBON^^&9ZVZSb)T=xA#FfR|HQ4Qg2WC0mST1 zIQJ(SHadIyZ4o3N6zGxYJ&deL49pcHG;SBXlPF|DzkPwVgLZgRi_PWClRxuV;G~$R zYC1quhp?=IO3RO58bk_?!wvZ!TZKPo9cOA42F%A_2b+=2d=X;8=i1U}a}Hugy1Nb` zY+nP$O;QOhK-@stwAO{^72}f{#aB45qi0QkELH-@^bCu*jk0c@7BO1m=qPM?!08qk zoZ^2tnF(GXZYW>~H)N6767T-j)bnQcM4PhkIVF>gQq1;mkk^sV61!h;He4u_JZ&$8 z`dshu663G+_hzcvtTA|lHh9COSh~w54l-9e)0l_^jy$Bf-SlZ<)P2gN$YafifI8lH z107j<4lRu|A=M;>p|{b2GpF#+bdy6*|MKd1XFkYTxo`ON$Qob^n0&jzKzsS;V}_J* zc)OwNpx{J+W!y0LbMju0c#EmAx+0oc7<0tZoR*(vTk2B6M7(%>wxWcgT?swKQlrl; zX{kS)=<_?dW3>U4?y&$m8Uhm7?dvi7teY2#8n{>`PQ66u70GW=Y%%XRB}(@!m$qr~ zFm_X+GG)Q++&+et%U0T!{zPhaG5QJaHvX3U1q?M=JT-?I+xA4BZAdP~%i=((_s{5H zy;WNo^3Esa9Pe6`1FxHV{<)D@?TOj-oANBFc1XePg6PE~ae{;mqJM zib&D53=359rMTcJ&e99GXSmcd`O#|=@k^B zNQoJdSdEfECYE%4u)%#R@zD;g#XgO|%R=@(tGDFe9o_rkRGkk!If`kfzVe;hjo?`d z3J|TjjZ9>&(RA^|dr2`IkGqEOZ=7adLKzlv=0(NAUv6X=YnybJ@!@)LPJRMn=EG=) z;K=(8-m6E6UVUY#j$aWJ4t75NKJAv%D&d*_8xvfp&o>o1^m!}Kau*4-YP@@-6;uDo zjrV%jd($Af^cyO7o|3*~UZR^aQH^4+dn=? zZa>VNyD;FiLQx{x+*h689cLrUHt#uKYM_WdfbG9Yw^arJfs-HSP_Hw7pXkd&e{KzI zb|}3DHnKV-bd2m~4$Aq!u73__56sm1fD*o&#$o51Ygj7W6#dU$c>YG6_@k%?PL9OQ ziXXC&c-L1Zr)=aIcF;}}ZmhOx=88ZZnG(j9@Jk*LWgW%uQJW4BXB<4Kb+|riq&kns| z2!AA-t$EKNajQsx>W`#^cPa1o$g>S7zF>ij%OVq%58mRW*d`(q&Nv+<7V3vx5>xdw z*ET=%OjpXfYDsY#=Cf~{A+ESwkNL*TR9^zc_X`}aBJ(( z0=8s)@^zG`E==X_?%HryUW$)AOY9XVWk%Op@F9XbQ?Js7JEcE7@R#Tb`5b;JACplJ z#+v~#tQqH&>A7tUdn)pK-5;z}4q*x)Z0`I6%*t{vexYSro__ICXB7W9L$Bmfv7*FO z{5i1my7y!5>Y~{x91hQk7soSJeo48NIiF=jw_@=-JgKa}jh~kQrK#KPCe0-sUa-xP zSAhTT*z?D8bp0pDC#sdUY{@4+AZ_kaWX1plm_z5X zd}ea$rUF1Y!V&Z&gVDqcb8QRTrk+xFydYjekKS2=omsNc#n)d%#t~%BW)8KjEd)`Gs1$sPcp{i9m~}KQd%?ofjP$j8xlGWi zsMtqTV^|^@K2`iD!?c5#VCr$~@rQ46J&~VvFE{UgWaZa)Nt{8Ho~l=DqnFtV3)brx z%dC^SM)@L2kOgRsNk(utWT_%V4ND=EpST zV2-+OZ+TY6(=^kHb%rW#D7xo+0p8zwwnH7KC=7Q&GX-*zk-sk!KxJ;FDT~i~hr?g( zQyBd1YfJzQ z7Ob~Fm6xUJ5Mk$7Bd7CsD?F^wjGFXEf;*7>{N*aA5K6()?htqt%DJiu%(E3h&$UyF z&D7=Jg~Kl^zy8D-eQc6H?_Tny#PXuzvTn3;8Oqqa-ME3?4~0IY=aL$RSzlo8xp1AT)(%$L3UeZssbDRw3;5+Zh&G8`#6Wp=Smq!v>mjvN*&@R;dv`}+ckvr6?tsrM{MU?)`vl99OEr85hLFww zWA01Cq5l5AKc*2w$u4C}wz5YFF+BAG&0r+Q+wO1iQ$$IB@7co2dV2mKXuV+%*7+G5z0L zts)dU%y}Rk@RFEIIs;jI%vc3A(=8)|dFmHGM{$czEVY3atC#8r?67sL>Vc)EE@CIn z=wQ04L3pMXlFD1=T&Vi8Mth2#^{*uCHE^2s65YxdJ1O|>K%lxH<4oK~JThqYi>mty zB&8O(Trv(p`O6)xpIi(-)dFMdrV$}-{&^=6@vZhYw<2igJlu!Vv+wSb?&nblbsKei znFG5=G-6fKQRQkjCqt|nyqC`GY_A5;ODLpNoVnXTE%Z~`wql7k5BbvFUMtS2DY7|* z>wJD!At2)?e~bEX+z<8C!&n)$R>vYzbNMbHhKWr zv88jq9r-LBliW$B$f)ca>jpAP5%9X*t-@V3M#(LmO7e46g#eI3Mm{viu*lL@cPASz z%Pf;S*=5B7V%jwdRFVge&1kHRJ=#$Cl{Sbx0#0h?;(m}@-gXoNY9zTN8(OEx+?CME zo*l)K+}S&kQfb9RZXoW3c9#_F`uyL7=^@HXi2dm36g5otpKy#>122IfVvhaLvuD@i zAJM=ErUhGtgf^2ik*b(reKng3x=CRHuU`Q}C_p($oV$XMh`FVt`;QLE0f9rEjNVPj zw+SK<9=r+Pjag`yjBo0Lnu+`aHJ=#p7wiL?%#;2UgjVD#<}=Xas3fu=Age6JOi5gp zA+yt#u*dGEm1{HoDxgU%0njwJbXgks0j!RRa6o}`Z$e9_d#6RGTh5+D+{m?;<}|;~ z2e1LKv>dbG2+RkQp&{Jr>lFPGEGc?`i9bdJprutnYq<+C za(xhgNZ&OnLa#) z-*CGIkH`RcJ=davgi+OJPj}>w>>mQKBP+K%^NONY&WOqm_c5mhy(B?d1E5`UPp#IN z>HR8(B1KY3OaNdpX@8*~z4q*nH}++Bcuq4d7KM<~!!~qE9WUf51 zbI>^R%V~T1qi;%18j#p`oU+k9eMmNm(Ied9fEW8EiTCZn#OK>wg1*`GIH+Rp5BiB) z_cX{KYuJ?%N1d4f$clUrM1an*Lbqcxo@PXKS$0V!X~wEG;pA|~gdem=)40a??f&&_ zT^krGr0%rtV1Gi0w}>LmYQYZ*lNg9_DNymzW}+jzESJSV6{&h~lVUq2(57uEn;uM3 zEnOY0aj;WrL%CA1TYiD{Tqs%Pse8 zUq0|HP*75%MK#E_t58zVL3}c12q*&#k<1W~3L{aq^;OR8;(m}z&og}^?x9Qt`mG=H z5bNyP@Dkpcf+chc4sEsbp63h@Tutzo(d^Saf-Nri{Z;QE+&_Od;l`c`+yIdd2DjzTmzEHpPM@@^sUu0hnCkoGRisTeIbid zko(tP&B6$Z`q3dqrVp|lmpW2(zftJg>z z00W7!$^sUdbu`e4`(juCcMT(v=fG~HM&%Mlpj-NLWdRGH?_wcEu`8ESlKo)n^ys|l3#+zNphXg@K4I`_bq3vr7s*hHb3QvBvm;Q_ zQiVybB!WgWeCelQ>tNg*Ye6F>^C=5FfC)?j8K4PIubtNW!oO_1EbZYgt3~2gVsbh? z57;s1P1Ot>Uz+E(?9`EtJc3Lq37drNY=`=_JcV~t2Io~>`FEcu7ygiZUVAD;dH`>= z-Jx|Cw!eAvLHtX^tQ{zff*%*6{P@+@k*qfRd3P#*3i*DZlY z;CLt30k{HSXOrlNCw!O&B6EKNO_Y%2XBmn~hKWD)&t$$z zP#eCvEtPhKY)i=l=d`pv=Cm^HDe7rw%Q10)9vx6hmbnXSeqk@}VP}eGTsT5`hh?|W zay})Jay}R8X_iF>u)G=7GyK(ihnQ1?ox^s&wd>;Kx-vqP14iE3aP}ls-CH}rRAJc` z`p6Q1GxN`zMoQ%nj%&tibpU4T`_mI9pOio0%}5HG0&&Wk+oxSw`V(hzCWQgrJRUc3 zeBz0{c)ohU{FGg*lU?TZ5b0BhrM?Lbd#(*>9}xm~wy;EGrZ5fby68zfUt}h6f>X=W z85R8X+OmDjkr@eZ8zdxuw@mleO1(<$e1Jhf^&btjMZsDEXT1a_W?bwcem4< z1&DOb(oC%u#DnhS$g_udz)^Ci2v?A!mSyXXw|b33J#ZrC)DJeGyYOgTa#_m5&O@c) zNF+fzb~RI{tEx-R=%5m(5^M;zH(7AmVR?Vd7m1xse-4O1NwtUIRQFuD_$D7u3(Clw zm&mr;Jvq>s(*xdf;)*opc3Swyj8hb0g$;Nt`VElv=u5pRDD52DNKM3i=UR5oMs0o+ zX>$e?E%jw(4>kgu2fGjJfktj}9X_MvWB@sEC#yOj1fWc+)`vo+%P#e$Cw9gb`xjzL zw!`I0B265`2=4;TK21rrrmRydB(56j8Xik^sZX4`dppThm+!$V=#R=J1&{kIJ7!yN zKAX_DXCfZ#wj{N5dUe`*2>C#jisoUV>IaF!-Q^?<+s>(TUe^(vI-_8OesA)T`!e>~ z43_`>&HE6o$F50}j1iRg2D^_uK}6-d3Sfe*Sy)>|@x(Mzw}t&!YMZ!L8eWFW>ay&- z(p8X^)hV*h<8%4?p0v+W6nFhBI6@x^XS5E#bjPiKr9j;t?>M;XQnsBgmIHJm6ofLb zpZEZ@rlO5_mggsKPq@%Z-~#~(tCn*~Q_E{OR()NUw9v*V^i~ zhu4r=*V~CtTnW58O`RtXo@s%n*@LHf_OGlRF10Ar+msum=oA4Z%ZK2A=c{2_0;(cu z!TPG+;21Ag>)eY&`Mt!iO22mp?MikI8nAj+>tmi^aX z-T`u)){h9Lb;M2?U{88Ev?JNhR%Y1_Yso6Tq^}?7uCYxGL-A(?D*~ zirsA4uIoNz1>K)7L6+J66?Jz6y9XPidmE)`LoG3UrDw~cf0KGCS>Z3aOUk?t1pFy% zevIALy9BHWTB(oX4>dE98c%VV6VfX{v}f6EnHscu4hQv}22>m5xKz0cK6JTdx0gyn zqg>a)uFZ#d;`TwkKS2e+^|rablGia3vRC#7=dI>42kq->AgJ4CITF>0OI#R-?K2Ym z_<>EYt>^LOL^nl}rw|0Yvvv|72Us#i20;#MltSsjBZafNrWn~c zIe_^{=#tDrtCnjDt0laJ5qNx9D(^1+wA*=u61wQ^Oz}B0jIrw*08d%=AUhTlHQ1m5 z{22Ov^=$0mB5xQRg>@5MQ07*m9-`(Be4iO155Ozbl~GzZC6hG=@{gHmFX2|RS190@ zpWNZL8RTX^4&Zjumlm&Wd&oP@V4$c9>+wvAA_NvFLVzQ=^vG^A7hLm7SY^vc3!tF} ztV^(~=vOPUk<_~t#XRt#C^3Gb9|&$?c0@<@5m?B*kii`d{FI0SUDDLdX*7ygjdyHo zlY0A1Xk^6!-dWTj03Jzgw-l47sG`0D&7<~C=IwBV1zPaI0%O+ANHOV=FFns;@ceY;~l%z)t&?%FjR%kRl{ z=+m6kfc<461>}Bzai20#CD<#1N#xJ`4s0i zS4F}vcrFWi$PWZ93kG?ql%Ia{<67zAsV$GM!U)3e{la#HLZ#^hryOe90c3P4th4Ss z$rms=1&)?BzuF_)D2YPMadPoQ1r1_bKX4XvmKoB1STZJ!51ETyHVU-Je3A26U{6f2 zR^X~#r)Jk5{Ui2Qv-ynq zFjkf$j5%4en5NUyUbs7J1*tlsiBvNuAp*-+x%c16x{V0L6cR9conLW-vfCNM^$-1& zWDpFIoMMQ{$&#SxT#o=tq-bLbi&K<4DM6Q%1Hjt?Rf;`V_GIPa9fx+nH@_0ndBCmT ze%OYCA0>}~xbS?5<+8DvsuTzT(k=lYE&!2k!*gnhEgRGR!U(gP`E3#^4IssDzl;#_C4hdo zY7uj~6B!M|kFG3V>D)oMmQzkx7xGt<&%Cyo2o+y+$N&h z!To1B@2pMM;&yXr&Th6~Ep=PhFc=V|wrBR6T_y{}57**<-j*9efrUy?5KOg1&9Ogg z^g(C3|4JlSBTj|I;`GL@j2FjD(*C?~Y<29``Z^>fAcD z#_V)_k9$G+>$czH>ODSN*DSV!oSrWQMLK4ncXSqrjr`i2vJ!xfu1+Tqd>^P^9oc6C z%Mk$LS6o0^*gQ(6W|MR^>VeGxo@99E!kk4zyrks&&ImD$qc!%e0RXh)c@?SYaS-uI7{e@BaWX^QR{S;+zkgNdV>UO^0nz z9M#6{73+Qwhai*gVMxU>$JQPo@{$@ zFi)T^EGB!?!JO9JsBi0bWn^i3HUoxw%b5K@RS)YwbF2f2xB~5ZYe7om=yVcvv^j@( z{5O6yry z0QM*)gIBwLCtfR7+Dszp{_pJsR2Xd%W)wj%%fGLTt6kMKV- zXbX_9A3(&bcX&(|vjdeYK%u9AKKs<)6aT|Ia27%=0v=7r?Ee*0=PNmp3`7>aDUyq^ z+Y;;lqn;LJ~39xbrDL$R@9IWl~X3uE<`=uSO!cZ!S_in?a9M0XF#DI%SY?miK zClHLjnO;yL0j-k1JN_wUwXBT!)^GcSFhkuUw6mcBtdDc?oZ<>=*{GAwUry4c`Wo{D zp>v*!{P!2Jl#3Wdq$mnhg_N3?6#!|Qzg`4c&J%ZofAy;Vna^#@W+^(C?FbpmV$H6T z3;lbRr#sAhdeLX21DX`MIsyhifSY;r7F-l;n*Ib#8x9v?)_~<1P_1wsGvt4NTfC5V zOs%dcTY2oPHvA;nv<=lmIn9Zmj8os*PitCaWiddF^KuOw`x6);EV<;L-J0T`GO|i5f z=`v1~RyV>)u4KL2;AsEOubiOPy9kt#w?CvCZ~$oh)71rq%vJ2>lyUSJrbeWC0Y~ji zGN3#E@9-Rf^q02vKnMBXmjMQ)8?C#!f%e?`*Gld@i*rDdpa1hN6ni~>Y<3*;?@t4p zd!q4#xK*GK@MmYmf_dqASDH@#_s4-rKV+U5CkKTDkR)?xKLn6W{+U2Z;6#^+qwF_# z@BiTisaV%_0>5#Sx8s!m>AQ^WCUMGk_o2JLiyHqmkLz$0PyrvBO|gyhtQA?`x3ic+ z-?y5RV^4)FCa(Nl9e}<7mksEZyi-84uG3HiC8bEkq(5_$9-$4%_KwI#xmK@mVva<> zFxt8;8;lfjwC9AsYeJD)8j+=^UXOow2BN*M1B9iPz~=vBGT;>8gVwcUx0>E$b}dSh@Hl=iD@; z-r9fIP#gtHCHFzEcj@Uryto;WQ}E%?kQnl03PQpIs5t52jS|S z>V&-61K<$(9#`M1!S3tX`Oc!r=wVRb6;7JOwQeM2N01cO1S$G#+q-1LfpT-(;(d<_ zMh@`3Q*b;#$AUI!rvUa;6hU+$4puMObJ$}>KxQLkjHf*~Q??B~9&pz$zm{+IOtju{3B9XsjNV!OCJADnH+-0M+xvk9GrYrQtPsF!61ylu0f^>d*{Z0va(WegX zIDBwv6zVy*(j&1t8ncTCuY|F|=FbiXThvr0e9Kd8&qNq>B%I{doh`+W{IK?jL68^Q zXYy!n6_kBy486GtMAz(G2FG~TP6CGe_Dj9V_M%D)onEp+y?*J*2}Hki9t1d-pnGLye&=n}oB+rLIyny7gx{mAbUOuYE|(4j2@LFiU` zqszInqKp!*c<8q;l=1r-H7|QHrHNxa==w^lKWt`T(4=rPcXMCxIgZwQOzAfOWc;>E zrIf<-Oo<3LCK5jJG|lH|!Sj;oZp&((CtAe7V+gF&_#rCSMov4m4)1pNlSdmihTzbA z*Ko?cvA3abrq95BM?9?y5t8i*u9m}9Qj&CiE22{eso5$Wg|O?T(?ZbHXwKQ#ug8&x z3?-RyqErio7N^8~+OAu%C~bb~u)2g?&f2G*XytRnmtE6y?eOyPeVhoaATuOWjZCaj zk+%Xk=pcTE%$-@YeVA7<@uSl3(`|32icqxCh)7PSjSN-8Q_E&JDsHp}Ep;)QfobYU zGIVk(GApwKLt5(cpZ6VMTU{x@n|KUr)`TlXWmRr65t761!0Y%CShL~umSG&1bxlM`NZg;5(3HzmF3m`Ia?L=~U56cjF*aJ}Rjup&CtJ7vq?|VmKBF z`&Heu=ewb>r|(-$)X!tCmiW9{Bcr0hCtn(#4nZI<4f0~la~T;%43uACgVPYG-()as zgz+h8AH%U{r12x5MfAM4_7BSde`j)AfuGiL50XrKom+V&O;`;{a(l|{wv@sPl(h2% zg3=@^zDA0Etv%zD%O~nkbO20tumE(T@JQ&I!f@W@&Prw|qeHvffX1F!s%gn6XoNhU_F0m#v7q+Mc&e9`%je9I{)DRn&}ux? z|N03}wFyxMyR&n9)aGFqUG;_=MR1WVX3>4SSnVFr^mDoJ9`~=j@+4%v^!Y>R9o_KD zivq6riOeJ`##FWGW^Cn5;tI8DI$P=dgz~e(tm_@8+@JLsC^6xLcZCpgNVg^T>drlN zGQbcLea8}I=crCmxrzgBO>y&19Y|(3qda#gN}*P<>GHnFuM^2%TYn176g#GixmtYT zsPoq&i(PoutxL7&a8{ZMXRW|peO;cjVvRn?)6Vj$AXCW41S(IwPki3$BDQl}RKomK zhqhf>!}OOE_aH-l)Wl)tFFLzUqhZa9Kuh(QHltxN-(A0W)U1sF6rc|qZR}s)`~DaW z-G_{o5i)V)lKhX4<+YyE-1E1Zii?|+=Ga zIjfe9v|C>zsx{omSt+Z8fiF*u3iAAI9Qkvv4}F*Ln#}XqXq2n%65VW!#n+48TTohR zmGPcke*Bh8qKv~VDpQBF5kE2Kh4+n`T@3j8HA>>i&szakN|8bmABx4EE4{vz;LbLn zx0>Ysf=G}f(TQ@;`Ha(l4S2qlvCmshklSkE_2BAz-i6RNo9VuZZ#MDs%f4s3zg&>q zn6}!eAro9gCKvkFYE3S-@9btySc^m{ZT2hkivf%3Mt(+GZnoaoww5yCOMNz*`PAoE zUWi5o^`;;WD_b5Ff`FNc3kTa!zcLGfqmG5^XRa_B(sT!UqNvKsny1{zVyfwq{!8zL z5&Hhu>?|gp*V6O(vGOg;M15O-{H;PgM-u1bE&!3j>XsTFuNtRVW+r{y6KAhz_2c2o zfYp-pw=IDwpT7y!V3lxnviH94{hFZSWHiEJa4N1(zmprb%7cvdvGERGzba+flL)2v zIiqpveB|B&|KmQh*U<+pJ-XEWS)c()0eV>=r1a^dqe~U-m|pvNdoQ!}ZI|DwRx|^P zy}q;#yF1-o@u>Hf5(

z)cHJ}a|4-r!`=wr34F6>B+J{*`e8%LpM0K*m z?GITuV5s^ko>-HG6tzHKApE*~3scDuwcx$e8k-06O3j{OMs%pcT zm>~n7{)Dg6w*GJw?>^dQ`XlnradRbUV(Uxv_*P>Yrw%R1FA=x2N{9L+$e`g}(AdIN z(kcw~SLfXsIu^Wc$ZiO2=9<(TmDnsnZpv6GZW>u$WXI)j%m@dM7@~{!UK}fi)RR>F zM5a|nAC*fcsd$yw+BkV!(jT;Y0t6}6=Oy1sMod+wxD^$!B4C6a znztjy`!i(YKTDQos0G3NsW%9ZF!)$V#M|f_m;*^o*r+J{(c0EPUoAUcWu@QehWs=F z8g6NMf3hs8-dluTB)sFGhnzeBJDD8imyEQzpSq7`<*1G@Bs=bN4JD93z3p{u38rp` z-W|W@XC&`f@x-$0=7GxY=@tM5kWc2N8oPOD7$Gv1ySh>bMoa#+*H71~Y3;g!+VF`gx(xp$ZfVyN7y(v?V)>P%wwxKe@V zsv_^_fDc!Y1BCvw>74oGwSH78)N1jbxL9RZ zmadUbCfDx^=$~6-MJ3JsaP(mtfb%_sJ@R$FR@QCUVfbM90yM3aW6CMajXqE z`PtJk-%EVz%Yvp~f^aDwPCixZ(A^w@x?rqIRb{An1_Dd#;K701V1kIHmu_I3(Bck8 z$EX(iW^;(20}xmb6#0IE-(&v{-{BG$6nUVJ}XspT~IljzsQ*+iA3iIDKTa*Qg!Y>td%CJb9k0XW-SShjJ;78d7EU%Y-;B!!8|T? z_@PZHBTIGWseL=^MqWuvT&~3$)UTLlvq1I8SeInb%Hio4DY~Lr>c9DOo&{Lc&%5Wn ztnOj80vh=2V59N^kk$P?1nI?Nr8noc%2&&r@ZFVLKd%p#SN87J&RP5sM1HdM@g90} zgxp*E<%P>2p&%XITRR&ad%s}k^`F3MqORrFyt%#c?n^ShFZS5INuMu55qj}2CY+VM z-uX6ADN`w7TKKH4s}E*9ob5Uj{)O)5)sv5Wu1QKw7ag7|4z6`U*DAHMEyU|GN(r~5 z9k4$nR9T)D*4=aij(~=24C1SUB|JEk_{iBVR^2LxXF`yf@EmU)4Q2#*aBC z61Mc1)`fGC9DVMEswzk-*H(u2hx>V$db|=(-}3xqle#i-_1@R8M6dGRR&f`$m(ne- z_S82EdzDG&?{DlKX7cQBzX5MmZ@AddGM?#P`8`vn_r);b+CAk5!d=5gM$3{egv1Gb zyOD_QEs;?Ux{1?_1(20M@O7Ys5nE5Aib@rlJZQ*$O*7|(hyNL1duec{k?NW|?$?I*RB^33 z_LUzODcSR>^m2-|d$nbujtg(3%ruMR`(^Dn&NalJ#b-SIn|pP?<|DnzeZ96KJS`$O zy{yYM-K;+wi>Oy~nN(V-5MS^U<1Sv>2obTJ6BZMe=ZR)Psvy{7gl$=n;h8M@;RA`9 zbuAgr#aKU$l%h3e*kDm>bXrh&xr|+nFw8t$J2ufIYq@Af2zrkL4WjiA0>RT)J5vPU zJr41;RD#fJyV;djgu>6U%Pi0t=#iJzxEvu0;6O4cqk|t~hSuygXAAxYPh#}_i0ts} zuY7qX4?-=!`d`?!#zv}mv2dlFZ4+_RvS|L=@-y4>A07EQw@NnUO@julM)51gK>=Td zsfp87RAjCex4RfW*0!4g9g4{t@~e$T%Tdp>K1v%U&b>aa`00cOS4}jZ`Ne3|4~-_n z)g=-0O6k?7Mx{9;B4ll0`NBG}+aah&d-!;U{IB&4xBpZ(5@vFhSmhFXBGZ379s&;I zHXOCyT`Lw}?|Gq9^!L&dW~yPE+=@5V2FqPyZwlni&CmSrL zIhdxZl~w!Lh#y7Nk5Q_T0HenP(X5f$)t3b?SE#Xh?jD0RBcJ=`=a+aQ66MQJhVR6& z4=*ue;HVInK4ED3;@zhcYkRkdxMa2!#vB`~Zza>k;OKY92V{SCFS^FUS&u9Y?=S}% zf?>NbvVFZ`#)af4&Ib`5&ZXj!`8A=(9xO%&u{D2pyBZ;~mxbkljms^M9@1O=ct~u- z{>U}aBZcoA#XUS}SD2})wBe4i{`7)WXLxm(p{K)%yUxP=>n)Eh>c@9t;_~G5e0X4N%#g5a?iOl< z3fDoFe3>{PQ+@b%ZTkt&M_m9IxnC>wG&ivK<$-6mH@eD2BSv}6IV>A2G0ryg*50B6 zAs-J@6Y=W~vL!KC3hfC-r(aPl!SG&l)k_`k%u!a0Lrf=*9eC6JdX$ zw|mcUaP+5x>K0`lAIll*#id27%#>AIEV;ek*lT|`vD8~IIA+Z=H1VX%SPMR*xn5d+ z_=nVGhT|`c?dtp~Yc7buE~R-`ZB_WK$5&Tp2Y+QWjY?QIpehYo@E9_)xy}^iCl87SR<{ATloMsfP{3{B!`bZ?{gxTmrzV`teP>+o>8Q8l2A(dDnz#^O*1F zUL8$^tPOT@Cf&Wd4R3Ev;@qg=pWJ@`rTI*(?`b=24pU zG)D2+*ayN?5{D743@uDjl7+_*xX{QI0K zqpZWt$|@Xui@G`x%oGCh=R~jXB@T11ca)5d>Jxjf+dPrOA#64~3ogCu;U5;K? z!Kn=+*oxd8m3qt#iI7$84o!v8j;;QNd^V6?xeiqeV7jyWwR7XB}TF(2f6#X+uF-AlRgo>Y}@#b2&z%)Xub+4!Q1-@UXnd|9oIbld(&z=6>lnRp9zomL}X#mLTA)sKST zN*xIX*YhB-9Mz-LqI0fKjifMd*-RP&^Y7~IeoJ?2*CDFAw}Zy>R?nsF$vuw&prD3v zJt%wEj0a;{VxBP6e#$*UJhcG@CgZ_z-b2rr;%S@90MuRNS3q%xiN!6>O2J-Nb)mq# z9k5f#TU3;00m^!;|Bb+>GZo^aylMP%n|=7kObaT%sNgL~~4SV!P{L+PowD(sG535IjeFOQ^plAzC zPS-DNjHmO`RH~lfWVOq9x|iizgyb~( z44XF1{dUI=F~6H>k@#I;;j|O_%3tHr`4Fq1sxr;*(aI1+o*il;A=cTpIx>c;GC%Dq z>6$TuuLwZ41xk!lr6b*`?xhj%)VdrFaux=t6lS z`}vk~bWF1)oe0d*jW>PsS#p-TojbDR=hj(Tmx>!!)y+yzhOsARzNPkf6WtZ`z^lk< z>~d+vipcv#BW7#fNF+ny;cMs`rEBS&o>Q8-jibzv4~$P#%ix0~3O$Q}HnNd0+^GC> zrTgg^(uP}&>T2~815JjZU6N^F$*5u-9Kga@^X& z)Hb{Ay6)r^ZSX|(r!}MJMX+pimv?<}u7wTNd5@=Z49z;@ttX`_-*7WSsw&<;8GL>! zLTPK&gP<_LR!g{;QsJW3ht`wA=*qfJ5bX8q@h~#=(8h@F0+RQ| zVNM(tGdHSQ8e@-%sUnuhM0I^;c01l?$SMro+w<_yDDn~fp^Y{Iin};>I;{@b2AiT+ zK|0->kdR5(QlCvSgRSVpaEHsf7vDbqWS^llf*{GYsxLX7>%>b{NhG8DImBC?W&~jO z;HDUX)hYYQcUQD_8#cY@WSFWwkQ$L0^YBi+0JIE8eYE=t0;|44t~^83b8AI#TWa8q zpU(LA#RF$wt?KRW9nj>JrbQq!vP0%FpTGE)>J5x(7JZ(H) zWA?Tqo?TplHyiJaV44+OPfsz6>}PE=ZhT@N zTKOr&sq55i;jlUXgm8aM*A1_tH^uiEas?!pFA2goR6}nL?tgjk!ErVxV%UAfMgLOS z(+jbdSMSi57F3bw@3oyh*|C3I8*1&iyXT>ecK}n>q2v)1Gghtc>yLwK^d_W70(H?@ zZ`ZS+=BH45w898==VkFJft|3$8^4S1m4T_gGEV{af{HiuP_F?7juXp8M!+_)Y5Io7 zDvvaAq@aDC4{op0Bd`WF;|L?Z)N_m(VtLaoq@H|c=)mb)s{A;4#!JdDLVi&1$;sA) zuRd4of$G}Mf!&xGQK1EnAy{oHb)-aPcoo@BH00@loB-H#VtuVEx4!J*V6I7I{8Z`{sZ>b9b8wAm`-5Mh%&#$*vgQ}DJfQA_q( zx<`+8R|sVogTrpP9IviZ;R;auo1ZM=3DbM zp^d`}nlq(p$cSlem}_5p!tIA?br>Oq28OU7wwb{KFornVlUls{B)G1cHDljSbY{#Y zK+`edKlWL^86t1kOP`{4J(jsQcUHUUa2eM=tEj*N{*??tC>JN$+HxA)M@v1e*d5z< zx>!=31q$@QrVG_5E!%9a&UVG@c@Dqb$p!Aq+74J+Z=LSxMP!!n?Z1A7)jIn7TR%$k z=Qi!>*X1RsIJJu7S?R>VTcXU6iDrqMl2CGuk6a+qi=4>7^qFPL{W= z{rZM4W)}h*UE=O|mg9W6Hrq`v{a$UU0M^z}Hz$ji= ztp>9eQmCt7h=)$TiwQFqptAj#Kx-Pw9`ory8+rK}GX!oTaHQ& z9IL-By%3%03=p_(TzB$SX$k7ITj$w3xz|pGRQ=>%4=HAR1ZY$Oyl>_~UpVtH@iz7h zBw~%8)yF8*8I*jy88?&O>2oT*>UU;f`)JZPPM_~%V*{i0%8)_fbr*E~-19l4y>Z)k z=7+a)<76`>`IU7tJ8Z>ME1j4=o=@IAN0MazEXlN$0QF1Z_tTILj+>jpFhQew=Hu+- zP!WEr&X`%BWB_sMm;bmTP$yQ>?mVMs(Y;4Ur#O$+?8TMKrD^IH0Cz~m4AHE_Va?*< zG%Kuimu2xAyW;|ET-_uq*;eLp;{JO^i)FG_<;BiQx}LPp5m}_<&aC@Iap-8q<*08r z*qd>Rl4n$V?n9lLwBNGeSY=h*Q`-2D$`a+*e8p3GS^n|vPrgyEL)`8++(9OBOu{cY z>F%jN|3jJT=IpF!zke?=OeL58Rd|(lg=mMnnGz>=aEzeF@SPLHM{wXOKRpLKZV^@L zOl0Z;{Kc+N#;q%IH<~bKuZPy*uOss1B#KVS9CRAJKn_(`Td5I%T1xua5Rf)Cy!YI$ z>cYxBkr&uiFAm!vUSO$&TFho~ubq!!72fGIq{t?G86+zLJxYv_L)x9X3^Qty0Q7(z zv0#@;obiB~i02B?HyLymMs#3~<{aFoN`;e=h0@8$o7ZKL}Jx!Y&k&$Iq`CP4T z4{3j8H&c~Io}ntrLob%I$J;FU@p=J`=Ng~uJfne1bu==&6P;oK!Y{YJo@BTd*0(Hu(BL>`?S$Kr*iN8sO55E7;w`OflEja<;S8%O1YTh zJvVQ(`?yzt!uYRqDv1qPinWvO5!!|eJ#uvKJ;($rhetS+zapUrn6_bJG2AhrhGn5_eU zdMn%r-y2p)(=V(K;rzu!*JIT+uDDoeLk(#(`@aMTLbh5ESG967x?DPW!~ka9Qf7bY z$RB{a>H!k#xjki@s& zTcLt*vZ>w6rSBM42}2&tYWgw%Y0UT>Mh#?b7(#90w}OV0)@O$xX*bfF}jI5V8Jp!$2Z z?pz1ALv95crUmriCxF(X)>?sF*gp=}>}H()!ueB#Gbp|?N-z1z;MCE84196-o#nGZ zOErCJ?)1}{o(Ju~f3{gGpKCr2ZAHV2Q`qe)>oHNIcy8`PIvg=|auSCh4Yl6bN`*=b z16TImD|lnaEj}?v7R#6u^EXU6cQ8(~uDFqR^ewZb^uVFJrWaYJX6m`O_Fwj!%JTeJ zRie?ybP#UIpC9|Ri9CtrA)3HO`36_sVp8Fd7x~DD4z(|5Jx|%}xHWUB{bv9LUJaRHJf+_rX##6%zOe+nehoE;r(L2Y;XQ0w6 zZ)3?<*3J&U+Kjcw$l08MW`rh87DlvTB2?J@f*AoG*0z?yRD~FjXxv~$Km+|=W~Cmz z&0XC$2kt01c@Z>ktJh0LYC#h^5L@Zdle5&1IR(m(fO5_hqc=0;&=baZYr1Qb`>H~j z%Lvcx#K3}ENPtSk*6Gba%0&7X1};~=J3|L2yi8S#2>-^hcXv0^sXwLTpG0-rz`75Q zioTbkD?ZkeP}oxJUtH&O8x5@;CzhB#eqWn&Wb5myM5Rcw{EyZgPe(bb!uctCeLPf% zf}zsMBRL&pQ7W7;#Qv%T`2mcxtep=w@Ca z$saKa<5pBl^0-^WV7;<|@t+*A%8l7YRu_aGWDc3zN>wEp2|}x7cG{3w5fXvjH8fB4 z@Gun)4eR&QEiIfc29SlRsLa(QyJF!^9wP33(CAaG8g6dSll%9cprN=N^TPZ#n9qMv0`V2z13rA|M!f9gHO`GkRJZD%AquL$|PWI4Y`&EL(N|`wQ_; z7r3@saxd~CI@jQiLVPjl5Z|fjbeOfZdkzq#GV%=#C_G@KXE$Z0#l`ym7F+!_DkS>_ zVSN@4ujvC^Y}Qv)%1JLPSi5vcA9$yAX0k`qE0oP~SJRZauWsjR|vZgDs zAL)Y7tf^`pF$!FFcBiNxtLxyOv^YV9Ls^ZexKiqqDi~A?VNWe=?Jo3=-qQ|c%{)tCrS|qv=wO~%qxye6Y^uYr7 zi|kCQ1X=rs z`kOvhWR~<%v6pr;{Jr{;@jHmW(cqME?%ktX9CK@9H z9=X02w>Yc=aq+gz;q#YRum@M*b$+F8#64a=6EoYQDmM$@sPPiA+o-{Ww?K2?Nh(xQ zUObeNb)hurY9KRBsxSmXy5znl$TsIn=ughCRwv$CzP?Sq-12aO_xns8J(#WH8p$Fr z-NMfcPpx2%4_02I3%9hzXNyZq)%x?R$i|AvPjmHQs917&roZDz(@&nV`3DQ1^)^;! zz%ZGq&g_{X*r4|_8=f{{rxaO@Ua|F|~{$D5(Fa$JB; zqSD^hOjQL`K?%Yv1SLzx&YKwlLYPCik)P9OjO1#}10^=T~e0d$F!AEu}bp8^7P|>t(AVk-FMy+c%c}R*E4t6C5q6KiiLW$vvrR zMGI4*7Qc2Im-fdD(BGR}B8T<+SU($5t|KUy&A+wVcYe~D?0l^{4T~{@Sx3O3oAZxq zX{@COFs^~{*C3b|0jRi#Y>8qe`@ME;Ais2uN;vwIi`{`(u_q@1!(OF|8^o{_NeGjV0fUu`9PE^Ls`S)&F^Ek zF|idKyM-rgC;l7#fjG|Oq|xQok`0@8S4$eUw zJ7pXrdqqR$v4w0xGBYZxtTK-+l95ozOhOrz2z89eD3nSW*<=*5;yCB`?s+~v&-49_ zzkk=|%GGt@yvO~%$LoIG_f59D7>5GOCPvZ)rvgmjqdURNAHidq)?cefv-hQnZ~eZm z%zV~5QqI=xjB>z^OG6gGU2(9}7Xm{=zmP=HFY%kT?|CnbCXbFnEb#O=9}5toannOS zai2;7OYeh#$@@q_sJ4Wl?NzlMs+F>>zZ+;&+MMLE3nRi-2cGlqb@(Sw9&CfZ9uJcjii)M?CeBV`gT- z+NR7W{`=No^sE)@1x3oY$5Sm?l|qT;BUO+75F^Nq-g7Pb3Y$yalumYg^j!Uj-|iW0 zd45E}4>10nvO^^VY?DxHk5>ivc06BxCwJyk?%x%(vA+uv^suP_Cp3CJIfBkt=OvQh z=2mo~du~2}gd#HRIZ|${zY}KcpraL#Yw5-Ol$H*A`=5TzQ{pRQBz{f5!2>heT;944eWV;%selT$| z1*D>fUZ$alEwOKdKn#i)B$JYPqgmSa`Q)I-d2SZ)jTjvANxXhvySg{yVEj4Qjrp4+ z6w_vuh=H_~P}L)K(eBkW_-p)PTAwIipyAkf{PFz5Ck{VpN>?iz}o*3lAo z<;*~QQN}m9haG7@8YCax0Ye8KI^0P)_O>q_SPLO!4d814`Qv;Pg?ZgeNL;0PST4ZX z6gVIfphfI==-Y&9O4b;OTL{JA_8gT2$TLUl+H0ezA3he6K!3WroNA}qyVk5-roJfo zxRtNH&7I4jUrH)~6=XX zJZim*9Iq-N%H*-jn9eo)Ovd16SHm>K9c6sGdEilW%+~v z<@RmS$*MQA3Y*F9>dyH6t-c)JTsz|e`s<#eLxMJ!g8RFM>gG>2RZ^Z@zoy8Cz@<7k zGle0>k;9BNp{d9)X2)DmAWlsQ89D)Jx7}5p_QthS!Lu{LG{v`+K7LT-|SZH@x)HWPg7JmM` z8x)dRG@owZJ!rs)P8JhFuUp{DlzLC5SIWJ)%|aLcr<`q;nbLHZx61tlYm|g`LfEsp z*b5&kohyn>zkQb=$?}Yn=+v}*2%i9YNO8LC?;?& z1sk+{!usUxXKeQb=+I+I_C>P4e; zp*fQtjg#@GnDCW8m8vBC)l$5gVb)vK|P@7px9G_jcfWuz{!HU6OUs&CPak zen~M-LFxS-BTyVTiL7Sru~s}}aEQ$$Pe_#ZVQ2p@qhFUNAM*HQDrF)w8yB^fJv(!> z5A;Wot!GPLut}{I2@y%}%tG#lF`02hU~o#yZQozirL8x zN8&tLyHM);-`j>6Nyn4Vhg)Q+3NVY%1)lhWcPkX5t2up{^A1djjWH%=kKm{&&=In>DWS@PvZh!+=p6)o#|z7@Um==Q(|GB|50d#M z5k$W*qMGfM15%;!ZrFiz05fhl8-y3jLkZ$3+MbKd3!E1;H~wbwH~-`!En^NY7!}2| z&IG0zWPsFh)4FlH(X-%vyS>Qb$c-ZCTN`hc){Xq@ST6k>O1mb z?W;g&qiT!48~FI+;P$TiQHce9lO6`Tp@7dXmNFY0)Xcs&6vQg5sbswxfkn*>Wep}A*&hm$gb~;X#BbfO#U`=obrU$sz&WKE z0ao+Yo^6U&c{eb}=q=lM2g_ZXSTfg!>fod5;5%ieg)HEalG2vC%pJ3Adhtaw+Z!2e zW()zE6O(W_S1$wL#_yAY#T##wPRbxlqB=>!m zZ#?&3gr)K}z}1U~@f%xGRa`u3_GUWjZhOsogJh;Y=*2Ecj6({t$qPvY{(5s-VUC#`lTfV=-)$3+* z5!Z$5SvA+A8YxY_@6{%aUm~$m*mOSI#4qvIKSEIi!rk(9YQkzCaGpXDdp-Smh8ZD| zO9CX+>cC!oih5&XPiH0pdsa;In0hF{oIR zbd55efvUcRi*g9&eol^ZpMSPF_B$aBTi&2ZLWrUhips}fcD*cLV9;zy;@Z8TTHd6A z0L23lCnE0Kxz=o-iOikiTo#jXd;T=2ThUt|c$|2|^9I|;3iBM+0&sAx<4=Ao=+@GT zCcUI0*eYTOR>z0t-l|Q()T8IuQ^$kgPac;-;Mln12`3u3U(*eK((qb0koN3csM)Cu z*5tcsr5<<(mj4D#Qb?^bj|bHkPv%Q(%P{TjRKEC=#WM7}oshJiCJZvsO9N1S*dW8d z2l9QkzwV8Pr~bC zLaO3Pi-)eaUM2R-Kgl#7Z;>#em#I;79W=6WKT$XM?y*IQ2(WDy0SRrU6w1V? z>n@6L7xj9FJyK}rY2>u3EoWEbo=ptI%fsmR_E`yaa+oMx`1Fq_odeUkRq_b@=QLE? zaa;_H-U}8U4hfd+pufQW`)=-f;0erdd<=o7`y^&C?`>X0RG4Jpvl2!Y(~GxF1GPR+ zY!EV)#(194E)KRENIvw-%Gb8J^$i2Ac9-8XLJ}H;9-T(wY#rxdpJm7+fSIxab`juv zofRY=~8K#_;%{pi}t&bmh4if6erK^Gi$%-x;6b4Dn%C1{%)s|l87RN^AK#Hn;?Wf_P+7d zLzu9`exnEXPPBfvM;1sVw&{ZB#sI5gu48$LE2$?-sccC$@0~a1sg}Rom|%_M`4a*N z{3)yma-BV9WDg?4snErM24)lX_-1TIf#FVwcMw&EBzL?FGUGeH>=wdEJ&cklfv!mF zfA(Y1fNB>y5O%X(FLK7GQek}0+T(hY#fF20TVShMx+Z9ELsaa(O z>(WM`Hys8?@EfkKM#)J|K+^qIbxt_*xJ#B|-pzYOWus47dYY=GpWMK-$L6WH3MzKe zFXqh*y;~hh2dVqu1JXc~mA)eIOurxT9Go+F<|u*)9tj?l9l>Lj3feYtb3^>Sz6$M^jj&uBQd-^-~Gb*yg%eViiZ zyPl$I_Ib0;0@h1@G84R!pp)v!i~Nt918;g!_#9Xkw`lPopGG+sK%lQ$3rPrev*!*RO6>dUdT;;;aMcsHf=Kf2tx1!XW7=-2PqA zoOW&g$=aP<+JDb0fy`^vyZIMsVYglgpw}Rh@A}u%IT8e+hQwKqD<6InpIr<@T;Ou7 zGqr1L-kIFel3L41p07kkNc9AED;b08Q<+0Ap&7on#S8@2?2&}b&G$(Uj6n?SP z?;BA?rZ5@*{4TT-dqXXDVgvmDT}oa;Y(vPqiBld900d7)3B z=QR8idf{4*M_W5-?~>PLba%=kJDB@xJJxqTeNB4GSn=WD0$pXD&w*d!x7VULn+Q+e zcJgFg(Yx{CUj+}L66AtCR>${NgE8T3$Sz%=Ljde=zn~#Kf5_D5NI#0ujgHGY1m^Qz zQaNg22npNANS^lf6%Um@eiH%GVL#WDMoz*)u}&FyR4}rUvulaaK6yja7VSGlOMi)SA2~JlJho_QSFO1--SWZiMpDQoL9%B6T{fI>20DS0*o>f zivmCCOa5$q-mfT(!Hc0rf{5q|38am*xX>jLe?FnKTAZs^A!hudp@G#E~`Q z+K+;p!Ii2fgDKO2hoo8+(mf0(vS?#ER6Wu$Ao*}_n%>)+|0)uQRbWbov(2yx56gVm zAXK4}?6Tx%qs%pP3Sj4XYZ#ez-9^Bc)h)oS{z11FPWJOOUy*sk92j&L%tN*Q%B#Fp z0uBaEVLd4?>uFc#+z{Q(_+D%|)5JhaWJ-mlCp}XT&csE*l;l7Vypb8$!ukTw@)_wTHD%Q5a!$P_g8WC`)%)=v+gNy&}wxN-ttiDp{ehg?31%{ zzRj8Oudx@fb!%=k+_zdQ$^J%`Au56eqI18{07i@VAm-Q|46Q!2p;+X{4|+6@CkDc) zw*h~NhltDeL?0!H*~cYxuUBL-wz7;*qovcqTCD2$$t5iSOD-%pYSXb(&+Lk@NpHrGAu_V@({0ns&8YHZZy(G8{)ay~3o5oGvAR4!P< z>p8}>Yg_+_-=yc0?>D9w_8KdR`&Y<*!}a9J@g#z{wEIzeCX-wnURaI;JJWo7Ti$Q3 z-3-B3Xj7rM{p}=&3O#NJ5Qel)9N(CmqFN$|X$u}NZ5~O#id!RSCv!)i-kPim~(Noyw z7hM>m1wLoKm~mJZTDCozO!zAaGH|Bg19PQgnF&8gkGVhHfFPKo z(>4F!kiRXYO$r0iB#0-Kjz=&J?+Alg40+=aAtPBCvGQ+KR%i^0V7({}*`J3wyOdVx zdbM8$M;X6d7Fc3M2hG5wFzl*JPlm8x+ZldrezIB0JJ4|tQI5Sv`vcccN4AK)Lz zv)E2yJ}kG@#k`wJ)emP0aMQA8J|3*OWFxtG?P1Ast;Dx0ul37MS*2&yb?HE;)V`zK z37!U2CQ@s)33(!fd=a9Wp4B*RaWxB=!PGQ14Tj>KzjkhaHbR2?MrKgLi95kiq)m~I z8Ej!N&k`)|Xfd59_{Wjq^2t0~!m8KV!ili7dwZdYw?N^s^1jB0&-rqumQM}^yn3;u z<9|T6*Vc=SCUgZb3ry^Q5ot};d;zmdMY?>i2CI~zwVBapqrif1@*SE)N89MnM@`3c~-Xy<>E)=kQbrNdAFa|sXUGHhP5|(ppnaQRh zZM}vUc`}9IV8wnjBo49xy;n7kUSjB#HW;-Lkk&17vB_!)L?1i3guc?AWG&=ep>aUC z`aa5lJrBmTrZ5X4cpUV34Y=5y1oPit&bPlHi7{j2zxCI6PCb2``y?LIlP4Ab?TYlX zbmeMW95b=DG(~MN3`y8W&nER`_@QRTtFH*cXv%2(Xwn>SM{~|2dt)0B1df?hp=|Wq z3}^FrA@NN+AF94fX50SLq-<62r$C zUEfB#lZ3XGh|Y!82o)Y^a2CY~+oxeGhjs{68!m@p9DgHe39dKO!NQG62eM$f8(#9g zSf;BO(TulvMyOD^;)(gk)%ihuzRglNIiIsGz;Fvg&`t-QwzzB&Ouu5xu=+9h#~edQ z5@4x0eq(fLe*`U<`6NHP2%mZ^L3~(qTB{T<{?_{oji!QHc0V5&GKj1aU(yi2kXH8GGWlYAk|B6XnrNREkgLZMcy#eLIR2vD>1EGVjqcsC?&V`t0Cx2Nj=QOI3M|&5dtCT9c~RXP<}~Tteykxc7#uF@ zgp9jR*AOW9Wz{u3{^x1&v!|OW3(R0TDNRPp7F}3{1S_^2V0&(aOiP$o=IvnSb-Zo)@M?614Z`Rwdf|&_!%LNmA<=dauI*Kf^Gik6|Q9~ zF{Pi*h=6R?T4|Zy-h9ORfma?ebbyHC+qmkRl@!WoH7J8PR|9wGOPtLAxjTvm`0Y7d zZt5B9r~qbA#;HwBeaNDO3hZJ%h?lmEG|hcS4uL2A z1n*6a(x6nMz)&U2o^**vWVhyvwK78Rke0G7N4zw7f5O84rEC`fTr2m^Hi3E@**Q#Y zu6)4}^~8suxw2X&`vYBGENAbDqv|=9cg;PCqUwptv$IOT8W(7g^c%F8I4FHpT%@h(V;RN%&6zJEy1R)OCYXI+wWM}s*N)LOePX*p% zf%OeQY~}`{TP&AQi%!!2TyspT=_Pd&G40rLf+Ed_^1G4OT%( zOh}71aaEr72DlDQ(_h+btTS;5TV{3`B*2nX5g@^7V>9ANZZtxfu7EcqjQgE}XQD39 zDpo#FmsUM7LE%O@PB6*K1A?4)y7)N-b@~RqNafkw9cM1^q?5L}EE>q_bgIg@v@%e* zxM|KoQQAKp>$|1V&nf6|eMi8Mx@;yN*&Cf>ClkC;^A_QGni`DzsC9=Sfi;ED8I4!R z%uHs_Gzy5Ry^Nvz&&{s%O%&JTN;1+l(ky403^PuNRtFPztfd@PvZ;p-%kHb*r;R<% zKXJ-YWe$LyT|a?0L7-jBEaQ{Q4M4Cb3@;Bk-;)XQaL zY4czx?(|*tXT|#wV6b2-zdFa_db+@V4x9sFO*z94i=(~BO;~X+tcn62ob(Y!SAT)1 z{j?0vf>F2>T~KdO2GrR$7zx_~;?kn2fbd6zTU&Hgki_|Ci<*QJ;?<5m<4iOosO?A- zKZ^^p8#S@Fi_glEtg5h0m`YALfMr!rd!>vlNQHU^_t6sIT2HOcW2)lu_%IoGpY8gj zVy@he(FLk%aD9RHHWUmaWJ(0__qv=(MzHJlr!6|a{65ZMB z4H%i>8ksDc+e29sbRDIFPgn!C=VmfEZ>{Libs0%737k_(0eAqsW}yOFt0_N#An2?L z0yjVqK_N!a;7VFh<2QUw)@AJI>qv@nI4$0gZALf4#3}qR`$>SuqSXKTn#eC40ifOT z)(3XG*f*y|Nyp6j>&2{%pVA5pjzaAv+|$ML>DEYtl9&MFU*@4nnT{Ar3tpmRKU(ha z0=;j+^VFw{_?kyI3THng0JIA)50=T*yBT1`f+=Ej!$}%vQ9>_h#Y$9#C2_AJN|beT z6pqr;6ktthI_$(xeW>KFK0ubJWTWHpv-(ANbxdY8!jqk~yV-iJC`uQ>R?H7yp)$MU zZ7QHlhvPJ7{8GS6C8~}iQm^)1UBc3$27gj$)F>$cXkdO}$<*HKWL+FcO#*m37xA}e zjmCJ+b~Umh2x)>&m}(Wz17|9PteO1&-aGu4pDjS+gr(&XXO(8kBY%(Y!uJpaYXM^; z4()aUKokT`+UIBhe^0*vKq_G zJwdQ;00!6$v3(53djid{48+_4G53|1cKvbhZr^g$<`~k8)c?RwSU8?qgg*4z88&0m zTHpbqq8i;PV7geD>AZ9)x9BGKljsnNB@XDWfw>w!Zt!{r6Y>BFzUzsPGlQ#W&@N(n zI5%TDlLqKG=A83B_-1PJf#*G9a5nuPLxV0XW9@!WUc|ikZ7=BF{hJ}}=*zC>Qbmq& zAPAy~2{#JRj9`B(8_!JPyaq2~JhoaFfb+`jHH^TwN{w;^$Fz4mgmQITEtqmmlxAa~ zTAm8TaRK~TvZ5af2v4VFytQaFDVufO?T{$Io8D1yei+G6ad98V#DPWe!er%4#1qBZ z`Q1*r+UZx7DDp!9)~JUZRT+K`)Y@79ED7HSBrXAh_DeDHn?g#1o?mg(0y6=5I)e)y zMd{?W1`1#~^iJJl;r4TBM?XE~ssGHtRf76so82F=RYz;*nHX8JCtDl;P`j_(aP^Bm z8Z1R_raC@=ZDB(O?V}A+Y77Ys>$~Rn84Q z#o8(%%t=;jTE|3;$*Mo0XsUqr9|))kR46rR-Y7(`J^6}cXULl%WV`0)pT!7eB#whT zxDtVOVFW9WDYGjPhS+t|IW;7xZda2m-hZm~y5Dw6-7TqNUdMd|ZPv&AT$vw;cF|({ zfG;BOpx>sCTQAC%N85h#8FS{9=IK`*NltC%%nS5RmSDANjEWG-yD34N7G=lX!hKxr zXUg4(r3l6)zoh=3DKpBRNAmUaDZ1k&qNNCScCUNsxw96voDY|hFyz6_!%p%4u`MR% zgP0i$%YlTAb+R9{&>vHkN>v*C0!>lDRf36YVsg(BQ6Lt(#*0Gedxn4Dsp=fp&(-fuZI8nL5Y}?15l-GiXMUK-4%dF`&5Y(*@O7v%r36XWR z_ynv*7}`~Rh=d{cdX9K1)|~qO-5;;+vP>(PGT$)c7pF^`+k!9hZUkd0AJsS~vK*t- zt`3f_^JV@T>QO$8X^&uIXIm;Rdc9w~TcT)kTgM{zWn5DTgbe>xt&V0Q8RnMSf*;@S z_C2_hsmXDCNb7Fc!1M$RDK<^C3gZRf-Ejl_j|l(6w1|;*8PxUI7}wRl=DkbU_m{lG zZE&;zN1jNFCrhlR2$xS#hT=M1%LbDpM5EY+*UN5lHj{JZ?p@QMrq!>>%8K7BEAZkd z&vjQo4GFjTd4!kH1XG~PZfJcUwOh(dMJ&-lIP$QAm9?Hd>m@-fA*`qE#Yz&T{*#&v za`NSC18QzCK1V6;-*qt2ctxTI`{=sEk*Uwl=WOSWXO#WF>6h*zW(2VJLvrxzolQP` zG;-`l8(U+Za@wh`$1ZBx9nN+bt7@ciGNW>?jkl_7DawKglRC;2m8w z5c~E#TPp(zNkn_n@yuW;^K-i0tjDS3xLG+AV)^KA&0H>63(v5!S$VPDCO(X$3FfkC zeVY@{D1~pmO8$(H*;J=SIQB#moQK#8!6od*emtT*0)FvE(UP3;928Phggwd(O(E$q z%?L^*B$q_BQdwlAj8TL)9+Y_~-I_jnFWv5l3vFrM(ClTyE$7zFe#ZYe?1O*VhqFfn z0Krnkv1aiI3h1O?M6F#ccs9j9D0q10`#p3x6W$-8ovCG#@#&N)mLiS@69-ul11ZJ( z&CO!)AhU3x7}LrZe!{Yk+=wHml>=~WPJJP+%t{cXe!7$YQxuu2DGU7QD@K??m_wD2 zh4wV47Gsy`(`w)O;jRMxvT49KH$ZbhNbSSq_xCmbL`r1{S zq=;vnh-hbV$%ImYaI%_oWa31D5UqL0wsGfXpphnUJa-;|gIZI*;`>T&wJB%)V<|L5 z3pD%Ugh~59Ych>)E+ptwUUV~QzqzLZb_3JzUv*hq8Zk~Y^-f&jC_4VN7zs>u4r{3* z5!mL#yhehe2k4G>MB@;_ZN(Gp6&Z|s(2n%X<7C2q@tIAhWwXlQP0qAY*sVLbGqd$; zTqPLVL%Es?r~nw&64Jm#&=|aS(dbAjL#ZLhUr{5yj9)3(^>0|j%xDa3?-8d(-Rm55$VrQ6b|2M53e^9!Jzn zvqvGYAR#fKRCN8O?!oMSR$fbn2`2S72pH-5{ZNZh%MCW+h4OOum zMHb$+rytfc<8xaBF01gl3kd%bcfq9&qF>MeqSdj zg1XL76efQbn&mR}O3;3M^&d+gTYNbR{n%oE`>o<+n$k=us-LNwMP~vjS8AaBLky3FP=Z#lXf3J*_#D>OnDE2lSm?g8 zk>@w!t#1%Sb=a?(%w8kNBzRe<`!rTx^^AWO%X>BJ`?nze6x2mWacT`^&w^8~1&8B0 z*}i&Er5qbq=A(md5?!A0kP3>50fnfJV?^TQ3Xlj<$yQYku?fCN-iYZW{Sb07KbaYb zPPkK^d5Tnh-|IW0r}Onixfsoj6BF5I`Y0}O`zlJzGV%=m+$D;CKcX9htX!k3WJA}0 z2-@iKBcI1CDyul{-pd~CID&kCV19DHAxWB0)-f$TqRVWGM&hto(_CX_=1XWAwg&)@ z$_Ud!L?O^ft$Kkjs;7PGpkgjxgxl+Q`>~6`Y%X2Vb`R#aa1Lg7o<$QQ<*S+KP|d8b zvX>llXzI>KDObe{UZb4D;l{NYZD0CpNFA_`D#O>9#*_-6vHJ#6x*a3sQ?>7gGX1p={0l!^0SwbX ziODvvXxObxwql0!Y=xir9?**kbFR&c>Ly-$7O9+ZWbO6PhVsX`V1vCZ;SUM>BojwY*o$>hKSB94kOAko1_qyxhgU?{I$XwUEu? zP4R&rZ{x>xIbSLX@I|TJ7>T9UtFep0O+LRkRVHuDxVlfQ*QkBmX5X{Hq~HkazA`H+%7a!O|h5~9XcT==T(QMI0o`( zIHoTGCEOb0;;FiuLd}hqemtIRkxB3q`v+Y?jTh(QUWiw{@Wdzl+E%i*xcAxUR4kvR z0^-A#0QDn(!%ZCV`@`uQ$+)1K9Sd*vywPWZ$l>zn@vi9p6x|bR)UP{VrB&egT(P^- z+XUHJ98$(HEg>t-_C23*GI_uwJaTK1~(Uc=g2wKuoBZ|{U?zB$43+Y+CU z@!sk7c8y$@7JTAffpv+!K%AU&6c@iqbwIyH-I;r*k>(Ea8K6!?O2Lw4G$y)B7Wnz102d0vv`YugH zR^tm+emj~&^QFFM&oMjfBZN9Z)Q~y*$`O3Y!K;SK0)$xd3(tfIj=gL~$5utsmx$Ah zYa6M3T`h2ID$RNB1O3Lx9DSpxk0QikJ6dV+f>IunY z`K3hEWL+09EdRvk8khUnRQ6aBTm8HD{PT-9D|{T*-OO!p1Q90Ttw0ntmSF|IBywD! zdn{URx<>k2M$OzsLCKXgQUAN|+vCnHjcHp%h038`J`>|Qq+lz#bJcm`EBpJ_SgqYH zO;U=<;tu0(XH0a}no-Q29o;{^7Txb9-5caY-4gFCvi(>vR5QYt9s5M{Y56m%_ux!+ zgGpr+i

~sJtJQK2;=U_7;`&VJ5_}ie@9iuV%f0wB-ZWj_{n{i><>G4{&#Gw)@Nl zX?tqCU{77mX@)eaO}qd$aU8_PMQAn@*|T{k&`-(v@sl#{;3ourGA0 zU%9^t7fo7~&fh<(6}#-!`cfuFZS6g}nXD&*YvvSV@pHeVf0#)>Irm@N)G~PPKtfe_ zMU_6XX7=$Zk^bw1z>?C^dd3TYP(zCl#-V*>UqKg@yZShW;1>5W~KxW*|Uvz0)}L$ zHw`f1Zm2bsujINPIrMs^eME=y;7n3PsoTG5zjY$%w=+`FL|1{tdfym!?~frIBaRG= zwLGzls;9f*bp%9@d0o_knTVyyM?R!2eifb>LA}FKNSk`>##6}B>p?XN=jor+9oF6c zsQIJfHpd>rjcXsK`s!sT@Mn71Ckp;O@|ZTP?hK0A>MFYx_5U+xW99oka+?}?gms(+ zvlXgTghY|Ib?M3Har1jM^r1?uvWK@O6L707u^3u~f+hj(!T+4$e&#=Ch-g29KPYZs zdB<+=jR4l9>rGMoNKo;XbNMMl;<>i590%rJP1~arRlnTd{$u+zMmx=nu=cl3+dCnV zZ!hRtmg&E*XgEpBz}e$UQj;{%?aPe~$hz3s!1h0kQN1kW--JNy-S6UMa%%t02w09- zWUKcVSWT3ZA{pf4zyIeKM->t;qs8x)nXsF57TA7}m#y(MS(;B#zcr;uCid1=i1LqM z;t`hh=l*;YmQg7br4*B4W+qzOO^Uo$i=nn+vgWIxuB3eolxRv3b%p3j9RLwRb>ze|QCbJlCxzyMI5%pnD(0 z7%gqiwpb2@#s(UJ8SjNQx8Z~EX)-GzE_}Z{&DbP)*i5SpG1QA<1FAGBug~^ z|GyvP%Tjk2q+2;$8_)ZEnFS~`rTvS6Yy29#_V54Tz6u|(p1mK8!oLjPvv8Y!opvN} zX()9!uUNLx!2fU>O!}xiw~a-&aJ=#118m) zg?BC%x7BF4Jf|$&&kQ_MJbc)c{hYgd)@LBJzVx`Syf(-C`AMlpTcV0=UG_#x=6MO> zzfW%>mDm)i)GpQ>VHvg4D?fH`H7KanY(C6o*o8MFkypu0A+!5gnA7E;14ER3$eAzU zzTJlh$>h#zix};f-f30?S5|@ylYZ6=sBfhTxXoVw)A^FL_;xUJhpwk zTt@yr0Q4bBp2f?{hIfu&{EEK4FV!R;{1{L{1q5}j7u+;fz5U|X?7=_K3AdZVSiQQ* z!TS4tm43+CTeVEbhm>bsk=fKT=+C@$w*a1tq6Kj0&$8^Tv@!XQT?<9Q~F3YgzdF8Qfrr1>Zq0lwceHa;G*@4eS~t6|B( zJ07NIKLcV&abE#_K8e8~(ooq)f#-N2%jH|~VSbGcA&THo@ia2_Iz7K7pocwXz>BH6KPapAkevB2jjQ4Eta@2n# zh3JjqjIqn|TD%O1jC@So`W*DumpjCOBj-TiQq-M+qUUl50Fz@|N}FrXUcJl`xvPFU zd5^(B_-j*;nAeDhcl`NLMT{ToeH=1H+WMJy-USI`<#M8!2QwW!c-n)ZIv=vQl6HM* zfHg^w|DU@U+a5t_=vCxs(F70Nf6JF`TgT9=`Q>8uovC2aO)+}mF zAIG-C6Axxc6E~&8rkAh=?{p~MawI-XH8CTxP~3r-F)}HhgW`or2n*D z75kBKW`wdFVPd@H$$9U^dy#=kj~dB4x2;y9L>R4Kqd{Sv`IsQ2Wyvc7Sw|u`pyK9F zNLB&9Gq+B^D?OECqVFn0Vg1_#Fe+8%;1fIorfk>?q@>i0h)+{|vX#EH^>*Hfd{F$5 zr}+T=LfZ*A?nm|dt$iTlI1*34KzHpti9T*@?D_e~V_v#-ubMm$LdX>l+EOIvvuGCT zJQT7EqB)f>5nFkM`hBbME_^46!xi5EvCeCFvf2KJiQUWQOW|gRk7^xu=nF}8NO}HB z&;6;#fB@&KRwukR6*3sVrC}yJYex-1i#Fn z`U=<4)G|QCh~yG-W5sDd2K?OH`fAQpatt;Ua9sHERN{rezO^gLF^io$FQzkIa#}sI z>)NzF(lgh4JNoKpy{Pl=2dl1Gyr%JTqpI8J#D|BOKeH>&eyr)lF3ZCH zO^7IzrkU@@uIeRZ$~fF;_;nVc?!^T5FXS*}*uUy_!<4?wQ#xp0l{Mo1Y=?LJhr!)- zxzJjv#KF?Ac9oY7j=kB3J>B;d>HWs8&OP8{s@*rm2^@#+>)a}ARs=-UU@@Tltq5c8 zXpQ<#ym;G$pwg@SUx3SK(?`_$JctT@ELp}h2f(f-3-NWD;Q5jIOSi%?j@nLt-DNa2 zAYIzw!i#J(0}4Jej*62E)2N~dMqb%qAw=77#WesPo$7;cK$yRoIcZ{=3x&{`a&c7! z_6F8ZFIdVfU8FsC#?iUXap$0bg^rX3hzA4~N?Y8%;;-Sm`;uJM0r~jgYU$Y;K;mi4Nx7S0!_x`71c>LQZckM4er*2 zi&4}l1wh;kjQk$6#|(B?!sB$o5TC;eAA%T3)kwKR2RuigZ`j!79~U^os{Fo4JLya+ zxwz84`S~SN(}Css_P3qR2MvwRJ-2(rbXaBVf%*Nj)*ReK_d$FSAHrnv>kUSfFBU|7 z`9S3m(PrwcON-pTU?25^9p#W=%m|c!X&n?76DzHmsuPf!_(5%3<4o-^TyJ>mHp@2I zH>BRncIEN5`+6I-{i>nHP}`0pSfw5j3f5w zQJ8UBJ}s({nuaJ%tY+E_(#%jzY8t0iEv8{PR38BFN#RNg-zCf7wMBffSs$LLxQcmk z8tXgpBZwVbSx+lvV`kQVmi$&rO5D``HUPC8@J;<=WR93@+10O_A9s21KUU z-sg60ErlggOOOJPJOk9Z-2~UY(NVSR>xV4v|{Rct#$& zR8D>9+2E-`?g|r7XgU3pCA7-_+dJy}U7_Fk9H=f#D$~OD^+1*;LU$;(nFjgw=;dj> z5647IQW{`F_pivsWY`pLfNSu$(@~_i!iT^MbfcjhL>3@Q59ZTAQ;GuhQ^;YM%#U9l z9?;yDI0*VH+tf;%bUCdDFIunc(t@QP!=qFnf8x0^&*$hC5j4n6UN1llY}0N2pgUK= zAl>y$Dd;dVqt1$1L!^1`_B3U1V=N>NmOW`Um*CG8+aU_X0#| zka!n3=xLQ2spbJdKz7bo2am^frakw{g1|6vuz~E{3=cZj^(`k`9sOAF|Nhk(W56* zDms5$7K!L?Ba84KWc1cx+VIn(CiIm>YVB)?&(<+2?Di~!z42{nK{m*dxEp@QyJ3cd z9rQQvG0bt<$!Fh;0EEL5p-uwW+B|wda@+_ zIP?Z&FHLH>EDhDXrjBZJC0C3#XAPB=!KJ9jRmn(9{@?_X{oEo`6hzeBY)J${=T zRrU=4sUNW>B!?gUthum=T=R>`$W}) zB{bl*EEovi5Jg4Qdy#!{gkdjE61m6F5($RuyprM}2gLJ8Y4l0^lP6DJUi|p*XKK~q z{$0xcNB4%)_8nX~&fGjWm8!B-qlWwwhhSS1pLfN;V&1$!Uvu6k(%i)6H9kgvRvQxo zK;%*#nV|+dyq`E5pjA8YW?2wy~L{EAZ`l*L`mP7JvHEXhtMc=hF)x7Ie>Dyv{CRRjHeHXiuwEISn0aw}L;F#$G@BwY;Z+{Yk4BGJjm3q>;M)SeeRD;`G3zaF zH04?T7&Xq5ZlX01Cif&tUSU91xUMMaO!85GuOYiRW zu$06f{VUeGiuxaipbUeA1TyB2$s*;U3;Qi9f-Qax77h(?CWdw|71;hNmkwr?EIS0o z8Tc+F&`&40y}9GcD|_&nu{6(z=C|DGK9sXz;SCPe_JN~R4z~cPsu&o4w{q;ZZsj1i35;1K{=`SqQ&CiRVD->39b$eMy~gL zdH*_&CzNMoq~ZS}?5)G9+P<*SwdpPu1SAXu0YyqmHVx7pA}JDrl!SD5Z36*m*rZa@ zA+3OPcO%`s={wPLJiq(h?|JTDJiuCOj#*=l@s4+lX}4(lPB7=4)L+@eCtmExLY$ZG z8J5-FKzJ4w&r)kCAf104{6ggNfz^xn5Q573=&X1Y#42Er2eudao+B#rWGyvT^?nv* zsXk9`&ZI&Xjb8K?3tiMCF_XzZ&+QqSdW()D2k^l92$6DoY|)65vGa zk3{~9NGVI~aXn-Rji47~CAPLj}_PZb&{jdOZD#1OrWp_A^%$rGc*pM(a zwBG!*xZl^;r(Rb_Hss|xu`alM%^w|FQ!NV~o1L1pe`WnWh%{0!cEu&L(*D^>UlS{^ zS$*m29^TP?cod2LpbE23q}kQR1IvcyJ(t|f9rWspnS-Y<|d0yb3Rys6TQ!oGH0HzWGU*z=n%u+7XcXeX_uHhlq#Q-vqm3AK3Z%4u6lt34v{%}@R62)sLpB3~$D>167!|mhB8$t3)Rls*`MT24 znP_tDlMm`gzsFMT&TV!YE*lr2SCik4YTxB5YvgJVw5;yui9CX-mWWgpZ68@8KnWSv z^V`$f^ThK0e&7nnFKCwr-+x+>6dY)QXi$n*_j6nCcuoZv#E9~Dz6KKo&}FFQ1Uhf>Krw+S{inp-KUpEg-Ge)DU+BwIs}eXTAw*V{1IP&m@>Q=oUC?l z^KCT(4u>EsKa?l!vJhHcpA7!7!K#<5t@{+Bxb+gt_zRCJ-TuA&a=`L4$Ax&&MOtUk z_)P5~FMr;~>b)>eMR#ys9vGrXp2WlfLs7vS8=xHq!~=bsY+Gmd@)N(7A!g=RFrb+G z&r02Ve#yyU`y#;JvwhI(i{%5UZdFkGzjAQGpS`FBMzBpdKc4fNrqXskZs~(84H98m z*uU<`dw$yw!PJiJ^1lx)W-7>rZ1%=g-lGPdAiiOs!2G<1W*|sNv<`{0W;XQ{-@T1n z!Q;#@?zfKjo02C9fP_u&cs>V?O^RNsj+TpMjy3`>aea#A4Usg~j_X z-6ukr%R&ty*I2B?cc2Umxp|+}w@F8})PfgXM%#2ZV{D|Vm|4%c>)pJWF=3a!`+qwx zT&4Hcwe{npMn}A#eIGTbh9$Pq2o{{%PE#U*x)2V}eDF}s)rFZg+I})qGW7w0) zX-sA-nk)~3ij3Q$Oy7?CW#5g#*!HCE^}LD!dw+Ayx_NQSjWy#v=PJ8<&@yh&#RQlw zA6&=c>fTxXEA5O~zyQ2drGGU&RsA;5q>WfsOEjzTUe4)jjf9U7Ks{U@JJw@#R`?2v zK;MHRN13Jz39a!s+ywf#=F}weG0{hZ*^vthCT z?qMd?g>e(@oh@R5OO-1z-Hfq@VDg(|@KSg+TAYm>TlXLtv13>NF-5F(F$k=u`x1It zcghz$L|=2=#jN3JxO>ihE&~1X)G08iw{7_+jN2d-f&T&1DoCDz&}ME$b&*&Opj-<# z*SWPiYz42LL~>@SILxPL8eh6GE8$Q<=&SG#*Wb(<0GkH4)KY+Tk1|sVGjf_O{jMZ5 zJObv5slkL%zgbvh9kO5jvs?FG`JI96E|B@J%ZxosHierstjQ!)I$wMs7^F->RT;1QyGrA;}=c0o|dmd!V=<_uE6OS zI^J5SFYdAY#kmJiyiZo*{G91;s1+cXrw=&JE$7bEo9Si$UC2K4{WOtT-d>O1s!;~X z&NtJQ?{DLCN>v#cIG}%ttRiZE_(yBbG-?e%(1o5*sQLZjr&++>wVpBU>8w7#!L&uO zp{gG%bC$Oes6z>GV~V2@biDW#12iONWs?w8=h0Pl{P>q!1%N=^J#Nx#>0P|`@`MZq zT)B72g#XTfCmDk|eKO%4b*x#Hqp#@EaJV6v!IcMl8Crk5u~T(G`=-P{2?>L60?0>L z^Bj^5M!Cuqg}qhD7wUa*>m@17$`fZC9~7U73KyK>vk?SxABEu=IHh_0tK~36vMiXC z(P5VKhVPb&azwrwRbUO=T&0X*ii;Jtj{1E%%rxr10}&;A1`kUcNVpbV_%M0QuqO|c zNg!~Ayv_iGt^L+QE5`1jx8Y4Iic{7t2LrFKL+mUIjK0rbyV zh>?<)EKZ1FU#H}HmGX%eFMpIKR{7R8sg?Z)t^d>MVBRAWzTdsR1VN1=UceKMJ_r|X zolVMq0(rS_2EVZ)9+-i|zoSss!jL(Ifsvy?=a zfnA)VlM(K^grU|n&{kmC7feC?*B(4jV`{u7rI$oSz-nI~x)kB1#WH5gJO_D&{T)EBMs!Iz+K>vI3p$Uh2f@0fO)tI1Zj8MBwNZ5GVLCdX(jR*tPIDg~G zbRDerJ3{|a%az7dxAAh?7SfJ{xL26i*U8uUh3k-L#ny~pH`SV85D^oI!2G*TSNQWH zBOk#8&$(fHrs23uxKNClr}pV;NqhCh@Bb z!h;@i(_na==di;-{P)WG<$N{j=R#iOecEX!_(w_w$&0j(8`))hZBJJ*8I}^$L9o_A(TlOtg=|JsJfHQU1ucGpu2x8Y?@FV zdfq)ld|(+WD6+X?dHUTS5FIBv9K8TBQJI#pJ^(fBJKHAH3f7&k-%66GIB2WU`c z1ppx02VG+Glpd0v-O17|e0{*1Xh;8gSkCD(av6#I6-GW!kUz(^P=Ydb5)2s25q~@l z)m6S+eY?w`_3X&l=d`70yYdoS_Dsje`eB^wI9zyzJfKxi4?K(}e0q>Lg%cW*U`R+*_a&I%Yp#x9PU62Ra4h;x@e_?2i~fLwwa*{bB1V%3 zd3h3_;yi0@Txq-pO(&whs+!(1ZD>1i7@X0Uz!@~L`tqN$;?>zAT_OpNY7zOWo+nbG zzKNlMTS)`}7p0umMsLTCKfRcFzy@_c%FabVL&Fk<)rqcCXRg0KgC#NzlUMJuHS=%dAas(@8+(0?YpLr(Jc zfANRkU`|qi4Fl*V?gDZ@t6)020fN#mZ6>l>E9p-DN#dyI35sU_3VF#b;U0W za3YR)F`?f860gn4ud!edGY5x_X002yOe@Yc$e_5zQ54@=@~}l9#dWz62Eb#~2^f;P z=IL)=x<35tmDA$@+RIJzOTe)n4H63^QXd0(*UYj7dQP6F5*0${x2o^nV}p|a`cdG8 z;D25KRbN0x|J(oh6eeJ&h&g+Nt)&E7RbfD_nV<`HfJ_pLt+FNZKRv(%S`r2&t-q!u zt0(?%ux+wb8O6gd-%Eu-^`CBv1sMEI4zO8LVf>y1{uhW2A%xD$os&iBVKCGG)NMnG zLIQ~^0MqG+AQS>3Vg3u(V2JScXDjzO7rX_72A1pNJ-T4x-d#E{?0*SGS#wOs^jU;B zlFfhlGGUiK3{J!#Vis zpNU3ZkJUxSvixxmotXZzBmMY85X^pWAARKVGT6)B#r}s^PnEM!P8;IhN~xAzxzqin z@V5Zh9!LJW32{VeeyI49^kjtOp^-#KB^lJYdwBu^C~dpjngN-?9750kkM~z+_?P`f zvhpyB*)Qmky8Sh;^5Xxi*>}0_sGEEb3-wPe>`TL;Mjea`(J$Rw=+GX`gdsP`(Iy5t%1kS%`I_X?AI4# z!tY4tz)yqQvhDG$N4 zjqudapm|l_K>dFey$CM`I7Krud?Au#?hIi7X~DUjQ2&j;7?h63hoc1C0<2qVmTcpD z>tjRa0@%dMN-g&76U9?QsyVnTV}o|DQumk|H{ zrSp96*)gj9Lk^c3H2pz2bSX#kSS$O#y-4C0dy5`|Qq1m20EC_$FuSvMvcq~9z)oC1*_we~p5lUhK&k&!DUPVTGNalI5&<_4 zqY)tIlX5$-o&6ph7-?DlKZ?0wCOk{@@9GudCCIu0gK9I0mAhv!$+L`hrkCIT>^ipFY#{o_a>)@ z&HUS>k&z_+H@@4KO%}WFzBccF7@K-)V();F(q?8Ashg?ri+O*h{@_#4@jestJs4l= zq;6I3&iWWrrLx#-DGBAKG1ZxdVpCq6?g}wi8R;CUZ0YS^!3d;&be@PjrEV-)iPb2X z;E`2GsC@Fv-Dqa)14jbh?W-Zua;c|ltW;#tViqB@FBdx}vi6O^6$X2IZ*OurEb@b) zHM|KX?;j1Q^aYR)7vVl{>LBy+a`q@WM+U0?VO_+7nw6`}Eo^CvipQ~%nMu;m3VC|I zy_7YZYt0GhGODX%FU8z&#YpKMw z;}As+ypm2ZepW@>=;wE)d)_F;G}^^@5zF`Q&FX?P`;s_oGM=tpWa!p*WD?SO;87T7 z`l3V42kX+gE6vJoD((#D`V~h{sP^0Qvlv*qM7-`2KKn2hl*|^Dr%AN7zQpIm^!l!~ ze3HUkeht_u5wsUqEyv5>0Z?=)|0i)aREI>z?(Mf+HB(+t0DT|0`+xS`vEKDNsg#na z&q$jGaDsO1%|-Lj{p}~SNQ(#=r<#BXYsCX1HaqCL{&zwn5pqCyVq(JPhuB-yoY zjegM0@_{)YG3-s*sk~e`O^EDI<8{a!{kWf0T& zhj0U77UrLAnf(`uQUZXl-66o#h#)eQ4aNWRnNR3;|_qeM@$ zzFfv_my5uR&e(i6f|V(M{<1HMV~z`|)oBr2rjt~ts_j}A0H>)46 z+f^3pTOXs!Mp~t!MbNW777rq8EwLSPqJ@XrW2IHCD?ZgEJ;r>{s(_6RMewI${}8WW zy2t)5DtGJ&LU$0s^cns`YA49gsd6hNKTEUEDI_E!Whv--GgKG$B|qazuZr3ELhfGE zvCzE_D_}V!_Yf;%VQAaia~anhe&g48j5b}hMhM)b22rd$Hl4ne*nbV8nWX0Jg&SzS zb?#M030EHGN4l5SFR(LeS2^bPlvrpov$B4FFWr~8{*aOX*yq9Cyx6k28f4dMDb-V% zRE7<*w4@Ll32KPi4C})??ZFCy8GM2lgH*H1uy*8|B$26$hk+jP)ie*>-0fF-boWsf z?~e}};=9RC^BB_UpMc0p1Mr#4fxf8pdp6&Pj=u#P81 z8nNGHDx+2JwFcVnXYDGRH^97R8=h*C%LfzQ zTHY8k=|+#HL#SLKg07OgEblK<+ILFd&(0c7-ZZg7ws-Jds>Q?LX5|;p(W>D`>XmDw zEK1RN}++|6j|!@3Z=susp%4cg=ID0*nf&rnD7t zJ3Bl5`H(n|LV$m84^yIcm-+SP5vwV~neieYKeG^5GviMx zB=A=}fB(GQM+IOmLg+1q(>{h|>-fX6f6UHga$ei9*hI0XGyrGiNuP3;>T8QXw z47#1_cg65kuP^GaQ%UD{dMkBLBGFw1OwR4EB-rTSbtIL2w5nd`i6r|WQJ&?YhQS>c zo+julQ7kxgL$~0i)Kh`~kNwe5$rosrQ#joySToOf-G*-Zca92x!hr{ZLTWy(apME9 z=tx(LZBb95@l}WQ<8q6mow4x!)uMa%@4s7H&dyX&F8vlfIxAN6YJ>y%tjy~3^vR~R z3Vc{2AKBNZ;QC{KJ{n1&w=uYmYrNS{B%gIKJZ1~1%v5Z(ryNljDJ#?3DnpU~`V|+C z2Rr!0k=ayVppEVS3!yo1fEm*|wG@SeU6M}o*Ub@KuUBy)30Kz$Ckcz9^PC=RW|Q+B z9j!Mv7mSIv&^OmMcDhpXLy8wiN?^L72lw+0@9NtQb%|5b-Z}&9h)h&>5V3y4{Oucl zNSd{|RAnTqRNSFuMkw1EarJpG%iiFxp``|v2PrJp-=Z=e^Lz@y3(b<%=F$4}?WC2( z#_%|cXtt4JdnOdMCE3dE~%4@;{4XvKn62IQrZYvJ9ACy4!Fm6t!^eVwcQ_R1TTA-`LsFgiVy`Rz5KC~;w z$I{5}&WF_z?0#;H%eoJ55aAt#QNR?G)^J|YWZyn0VTKCKe`rP_eSFR$KNNlFtlXAo zC0(D=Iw0$ePY@^wX)F9usm0~~sy#lhRnUJw8wb8KGnZwdFCjhe&f2viioJtxHdKRd zzga$}q+&}qAmWB<_}xl99EBK+?eJvr_8d%KRJDI`)&1eTW$eKLHrLL3&%WCHZ+@MW z9?aE;bBtW>tyOAoqZQp<35(Coz9LqV-R;5Q%*Ok1F>X^uQP_UG#9 z?x&}AQYCf9IzqP?2Dv_CEPrx_!^e?QMhka$T%^;(JQI7`>P}E|a5xsx4XtIz_Bfud zW+~){aWiZ@C%br#b7x65UtN7ycei-EPVA5HjK0jIeDd)`&#^2^eYF3GQ~%Z`6HIOT|tQ0?RtB7O;P=Uf*GBh zq2A2}ao52OTkcmw-P2b?Ve46};}N63d^df;MVkuG$}Gk1^>nt&xt!!iFUJO#^@bWT zX7?xET#wkVxLl}xYhU;BS&}l@GRBitJlB4&)OY6V_aCL64tvYeC4n#>E`>+jXRh($ zOWz9YDZov}kcg=3e8>MnANXiV{v=wt-EdxzY_UY4{QP~9CCh^G@DH93RThj3!^!ea zMNV|K>v2rnN11MFfi}lB3BA4c#STIyj}DF}r?uXMrC+DiE6);yUu7)IdQaTS6^U*o z>Fgka;+dUic`4Dft`WD8 z$Sl{u#6i0I2QytQi&E5MQTbANVez`I>^x7o_N7XQ!wvvEKz?7ldocG|_R}Jh&!_8U zQvsOS)VhdfaYzfoNo6-`7iw~(qtGi) z0-^0Eq2y=bRGfdFjD2J&a~k*!WMh%gSh+0hRut^)+tw$SrmbHmLW9(sLA|raz`lqn z4`hHZRtgPivD37$*3q%qQNL=x(~{CCp9Q(O&1X^!2;341S&o&a1M7D?RBwR)!(Dlw zkNF7BuE!sM`)GFNvg>3=0%h?NLEjG>zUqr!ox1jswtuP;lTx2fFwabSd%~cM;F^~& zBs^dX88D6Vx*oh*nW`0%kd&N7Ni?($HHY(brily>RoHbH{SX0nc<@5qnTmAJ+53=E z#14=1Di)}KVAF+q)h<2YQqkald&p0?A^v3{H`UR7>>i!an^Q`S8n|{%-+O+dr6-E(Kk)iv{(>Fm5C~z`+DE5 zbDR7b2K%+)cN+P6^6R4|szb~3beVPFQwf5eX~1vZ?Yf3+BKR}@L^S+a{51hi35iJ_ zm@N8qNqb8_xeU7Du|j1q^LBbj$zdR+^mu8kEWbYK0*jEU zo7(!D2qE>OG(SI#{j=rU%!B7oTxuxa%vxz|~1 zzCO^2fpbJF@I+M1b(kNa%ri1&Y#iXkK259&mkCPW*rDgfuGP-^57S@}0)0+%mEE0$@!SdKPB!&PjI?E_FHuiJtaoMs3 zSFm;14KxAFnr6Pc909Yp=9nrCx!if}_+t$>@Gp9fUFT#%hBZ^qm+ZQFz0t8Fq24xv zOr6BRGERqA6C=mSAMmvT)KrDz?UJQQTG_i5BPP%A4i>vxH$5`{I7YEc12?Oq zik){&W+QuG(87D!2g+^Dw63hS$zCIc#`vLpXV087$0f2EhZ(&pB+1h;P&`nve4^Q*7+|RIjx%cqLYk~{8)@^OFVl{%PMbmJS1Fl zy6OEA;Dt6M)6s;+LaM7ZM<&RgAktzM!35s@)SI&O5nO`w8O{~+MhNBG7p9XsXT3)zzKISvfSB^k0QFc>OZaA<{hKHk;!^#{6_cfRoAl#x8@u66at z%&2@&rhYc5(0HN!lUS15>ziPX6$JOy7@R2XYx~v7(y2S1?GH8f{_>~LQ)<)Hb@)j3 zjUaTAtp*0IYYn2d_6GaSni{jy&avr+JzHzfGWJx} zD>C{ezChRqimUOk;*$N$7N!K2CXbBQoyv!BVa-S$tB2g7wv9jA ztmED8(b#?`Wx9Ed6*V=x2|l+y^{Y$`f~Go7t8-fOPCrNE22Xaa4PF+a_C5^kNKNp6rblb6_n|&m3&ihh7Cam`y5SGi0ef6D z{xv1tvvBwzTlF3pJV`3mZ)r&1GaV%N5`&T1tciX>K%FRG+aY&H!Pb1+y#zDr?vcd( z{@2HBx-VM_UPVspoJBpMI2FJLPg8nK`F~6)J?aK-k0t9q#xp!p{%AZKN$;BL# zuCp+uope54PevI4|7`XC3U|1U=P#9$_@dl>svBn0TAkTE&-zYu_X(d|B`Kk!aQJTbKLW4yQ5nx2T)FCm#Ry57KPbyr5yIVRe(?hlH}oyJ)H=$?lLd zE15b98><7_l}WCE8kEHqakhJ|6LEu9el7@0vRR|!<?apBNNoK?QA%o_o*J4lW!cDTW6lL}#JDS)|4z!1Zf!5zW>>S42s-G{!S%0>)%fE#Uf#gOS z{)HGLHOOno@LhzSc1$cVlDmscHG`VdNfah}SY%L%!)8Y@yk8l@smuH&BgTE>RyUX! z_a3nY(l6stWDtXjU|m9+7Qhbd7EP5->I}$To?Ga{ehPzhYmJ(TVk^EvU~Arh%pShL zS@-Rh_NrUl5$X}hbGLyE?zs#+6Fhy$K?34NtWGYw580xegw?bMrKLMk~vp6o$ zH6QKX-?Rh1q@0wI4f2ZL=mlDW=(-~v!5?94zEe!~?&Zz))Jvqc`lM=CI!GIq1 z5epp%dqMlC@y<^lo=||yO~`;_OE)Gqc15&QrC*YcAWvlO;(YVs#t)&!sUcKcJKFGQ zR4rl#or;?7+qM@HWg2o*?_}SclmqI1-fb{9Q#NIL^`hN7^_Ka>NziNHg9Mgv&r&rj ze?P|A=bR$YS3Gr2;Fyuac!Tcx#iA8ERHqtl$9rU;L}y=ZFu&I2i6Ja`J#Rludm8wh zCT{0^GFykl4GAv=3n&+chsf-xwToBng;#8nPLfxSf17>nRj;X;R1!fXGBd3>xU;3D zU8+>2&VL?xcRIslTKuML_5klw%91*4Us?)KVDrBGH3IX#L9+lh>F6&p2NVl$L$$h@ zuAIU`(_BbtL!Ma4S!Z@>9w@9YjWUlcO)-0GRK<1I^oF)5m@G)T(DESI@=rdPo^G>?J!@R)BEEtD3PKH~#IvmVn^V%W8(z^{ zD8AYmN$J;AH~>FIhj4>~v+mz^CANAYJUCfh?0RU$e^JcN4-aj~X9@|43JE5E z#E&m6!ufn#+h1Kftf+d~!%e!haalf0R1vGSN};dFu`IUxNKj(iJZRg!)SEJJGhgQf zTY(q?H_sabro7zwQ(>vMQqX=BWE7XKg|TP6KTvUzXsY=^Fg zz)l}vMqqKuHxu#61fSg+Z~vM+PkoMtLG099z_h{lO$gYwKQC=tF85A>LEf47MWkv^ z6}sYwKIM5@unW3L;#aP(57>|ObS(R0y82>4HkOobzM#|x0ltSIM$CG-C1avfs(M%H z7mZxekIP0|)3qeflC$%oDJQ5;!v%Kg-ccm4+08N|PL{s55sR zjvOR-wbqJR{Nr+?`+AAwV;2ECkF$@w#v1e_)0@ck@4*^^V=jz}k{_4R1sf%0@G#iK z1vA_2x&$ev=K!u$x-vpu-I~SWeur-L(QGBjd>;L5|a zpnbv*MT1=wKC$GPkxb78PN z8}QxoO-Jh7fZ|m7A|BGr_BGlfbhl#nl3XD5BzEh;{N(rG6#;@F0)6WOFX7`XeJ^4U z4B?@ob-%T*;N|g=AYCdYFU2~T@i$&CuN`BTJlvT0$h#0p zx%G<%1_ycXx?QD*tS7kY8Hms;`iGP^8+7)at01~L*NaO%BQO$O;kC0ZCmN3jO~V6t zfz5NI>xJlYak%{GLUjdbl^*8{Evcb$*S$s&d{4Sl)gP6KmUJE{L$y!vNheN9_(Afw zo39S)e3%}Y7~Sit<+)Ly40fqN>mt16 zXY=^-rhyg5bQr$aAN|%pnURr^WgO&IlH+|vorp7OC&Xu9;F#OrN&`zlqe@|&)VmpN zEAjyKqp3;7&F%5)yZfs{nOOT&Sxj3wNhT={3*IIi(@0e*kAsd^uU~~>+vQxL6OqPU zz^uE&D5;DL=(&1rIipPIrx(6H-TGGGr20yu?>c92N36<==jgxWQmO7L+rK8OK&G0F zM3zm1!2A|=&(e5`VEUawWPh5|4n4HB+RL4F4=JlE?h{)ou2>T{`}~U8sM~I6?_>mw zF;SE~SUNH(K|*ZywVAx~V=LA-$U%x4KF^t9qvZ+0HsGvCWPDIDw}9x!&({`{ud+Z; zP8i_{9@b!4)V_;O+O8L8lsunS>8Ml@{45M*((!TYd}9ugCFqi9lUvsiO*2;Zf$>%Y zJ7jS9_4UG+tDpLXvJh6eMKqVkCY{2W_p!rEvi@d0v`EAe zgR4Q8cQVL1E}?bP3$+XR>PPG8W`ci6p&~63{J98U?|$q@L@B9cv(-A2sVR|s99MW= z^?~+ip&>Wx%?1*vd?tW8OBso^#K)Xs=C=K2ZTLezchYXE`xcJZGwZ6bN#_&xm5Gzb zA;H0FFt5c#_ox7ZiNMW|ZeJE@1p8ocliCv&UB^{RuI=16OXC~5ExwxpEiu=}b=DsY z1>Wi~I&w;$60h8vpKIOsj;rhaXj`8`BZpNZU=Jl5i{gK#xTYvuc0W_unHsElYQdMX zw&=qt%C4>VTho(<+Qm8B-DiZfrIOrP!%w=xhc5~@<9_{m0d5%0^q9z&%ACAJI8&sl z#~Yte_Dh6=f&}{OX6?nsOh5L&vSHh$E*;x)UF_$-e3NlJsbWS)Bj8w^SbZ3{T0)cg zs=45Pp6u064(M2?hPW)A<$7bbt&Rj^ok^Y;A?=lh_iu+AoOJGwMyQq=4Ih+sNHB4% zj%(_@6i+EDD%f*2rBgzD%#B>XUb?UF2@RMilhv-&Ah#+boSG+fkRor$F}{$du{4x| zP4eB-AsY-dDB!dkEW>_5CJ;%%yyTCuSox;}g@Q+-P2b-%c9; z72DhWLhRjBo&}sT_HXj69pi5Uwe`R8M!B)1{O(n-Q0u6z^&+w#WTew>5)WAjD2zlH zj)Bpzg{i+W^wm7d_yh<%Ep(UN$!Li9>9y{9(%RXUcFZn`=Oe|+d^Y1^*?ez|{gvzL zd113|Qv}TyNvJ)5cmLlZ1_#X*ZSW+yqf=Zv{OW$9?MB?J(iUZ_rlsXWmb$k`W20|_tSm5kr>H>Hs z*WJW@w$H+nKB5*AFKRsnvD3xZv8tu{p32^{-Zbam-dh#Lf~fY_txq2t1(02g?+Teu zibj$N_LWiOwogi}c0Y3)c$ule1TLjHZ1+E7OVh0J@Rv;B2uXCk;B#4A#=qhE#rMd} zBbjdl@g^06eVdS)snXa!-7Sp&h}C7o_i(AnQ-A4$Mw3+4aGmKq%UDF8Vl{Az7Z{F* zeri5j4&0Rg9EoTx_4V$4ql2JJw_zSSkC%jsS9|@bxL>B)Yd>!cxO(lHM2BqtS-#Nm zlaZ6g^@5YEAg40?H%(K`3^>BBDU?@?o-cW8Mx^T}O-N^s3x;J(?xQETNm*3RmQF=> zIoHOpwHX%!_%in4fktFZ!Su!PkFKR+>aNsfM6Imp1j<^rc(wn*WCMaLp2a8ZiU4aVYj z972ZX^J6kry`8LGCav6?cYP^)a5t9661O9ck2sf;mH(4ka&bDP<~yUH+{B;aAeKe(b1SZox)vE3*D0T@|H*rySsbqaHp7_mO%Xdl{$UMV_!3b;4Wo2<8=V=~ z_L=kDhe7IBV5iO*k3LJmmcReuC({H8+i)su9P27XHt~L1O=d09?fVT>Nb21Cd$%|e z9i#V@;2}J4v5N}Nr%&jb6J2PkPnWn`n2OW&GHp})c^sr6UQcZ)! z0!%;s+GFnZF&@mJG-__+{x6H_q7F+h#n90qk`C5yl;lT=F)Nn@BH_8zCUE`H2KVCr zC!cD}803(}IX}k%)^ST`dqy$p&NYblpuFwgqA<)ao)0ZK6|N&dtqt>9meuV3A%?}g zt(SNS1CIt0LEqjC5ZfPNn+EQQoV2foja?c!Mp~OGEh&q+&cx;Vsb|v}Q6k>KPwOk#MmqPdITr#weNU@qNd+ z+?z-3zTlgY*Dk|2P_Q@T)LjAysQ9@sS~?*p!lG0`N>&SyH+EjQ_)0zSju zdX+G)d_W-aE{S!(>ab)ZK$<~0g*1Qsla$dt_OuEqkWr704VhTq_r~uFJSl7=(0pla zDls+_%Nh7Bzc#|W?=s914pOF5N{ead!vwpw3Ikj*E{<2()Z*apBkZYdX_R3FLHloE z2ag-uV!sWDKdp5ExUTKEEgNOE>!Bp!*hkB;L{q1yjcnT|Gl5@}EsuEt?m=+&oL6t* zb<^+v2yTJ^?v>B-bQ?WZ$eFhRS=lJ|j>I_mNyh4|NABa47s=kM1SKYd(VUl!P{YMmiMV?V5Ms9(IST1jrRkz(|=C-F-rj$UlLg&UH zt-$G18>K7A1tAPQB(}>FEm@ue*VpgI;5N4DbPn$luvzf7aNRA#8OT8NAf>2}Cx{Q+ zak0igEEpf2MpJ>IfRb!^pqNw`Hl-JHG5RMJr%&Gav7DK>x^FB;rYP>B zPx-s)D8i3ku##?9VWEoJXFoA+47{4i1{~zC(hg5s~i4P5v|SNoIT&Ff;2Jvnt5_oQcIWlYp=^Jq~2{W(Tg&w zUhOoN?n<=xXx5pZ+s`k<0J(J2fn#|yq)*+1%1ygyKkifs(|6|}e{EjEBOOyY-)l3{ zmO!;COzcOW_u4~~n0cVLeAW?U7qK@^Ee*G88F-?jOgGb|*m!GIU|!=16)|%sCf2kI zmx1Pz!2yij`rCl2ydz@~!;g41L%Y(7G8?VA_u8!4qlgCEkv3UpTuiMAoA~3QCw86C zKm@L;J4mtnOhbSTIaNzkyCv-}?#H^s@<&-e(>{3ftn4=WkV{fgXNDgR@eko*9@Z93 zk-p3+cLXh^C&m3wns-arZ3NcfYqNrnm_s7IPvI-P*%*_u8_G$c`MC{mNZ3APpZ!ky z-G2AG^3@IX?TWhhpKqJsY?z*&nbEn??G3xny&PtcVyX8$xKGjDtXQj9QQ=&0tI}-E zILd6X_~lRlSHT>>9_SCYPgTp5k~q)P!4>GcQmV&+iYm(6a3^~Hjj6+I2j3$cf522H zJUT=TVVFHxic&*|Kas;yAeVY_g^aAgFO+t6urC|8g6L|mGg7kK=P+8-V6BlZC)~cL z+O#j4?d(aMhP7y0J9@_pkiP=c&3cKv&YCiGt4awIeP>5@$+Ij$BFTd<)N%b@vhkP0 zp6{*-nZb&lGNIAfaLz&FE#Z)t=2*Az4qx29-W~E>2SjF;sFyRBla%W71dFXln5m9_ z-QJr|Gkw{&c4VXM7(}0;1|<_dVBM&XD>Fy0eq_SyynFb8nrH6+mvK2`as=&Ll1sTF z-vj3P(zarDw661(rtMK=@JdFs6eKrQ9Pgo*4xa`VegnhsK0Kg}E{|1ih8T*Z6=hZR znm*K*{489dZir59JcKnJR-$le=wstsvy#;s3#mZ{>r1iF9U zaJ>x*H{ERw6ojUUPnCvmS``Ut%TlfIGqZx81LbLt4K@xye+Xouw#b#T1Oap zsrFJcJxM(b3fJ8-@5ynuU+UGsgeF~n-LE;?!-XE7c8m2R7Zs8g7kcpL?DUEeKg;AZ zs+#l_^Q&EWbUl6u7Mtu7;Z&esJJ@cF+*~@YYUEhLS?SrXeO2LhDX8E+m72a*oB8V}oY>S)|*t`OH40KRR#$PUvzFkIYjh zmp!);92@B=^*rOg4%~SWd0nhco+*QqxgS#Fx$qTZv$2Y?wmj8Ce~KN8(_nggw7QBq zm}rw^cJ5*IAs9{XME(6QIHwc9;4Mm^vBa}o&8+$qTOPb( z18qj|uQ*$vYJ_yU936|-*=onZ!_8YWjlKupilEum9}%Sqd_}BE^EI88-wDH!<4+gD z3yFzNQZ1`5G)vjuh)aEm4{})YS*}HB;Y?Vv5j!$>Hob3tr`3otGty?q}ODq>li)}hZ%W>A{_WF9* z9kz}4W&*9di(k4f$J>#;toOl~M{4Fjkx`t2QKYzkpW%e>AQ4N*-7dy`tGA@LnMhZQ z5G@+HH_#y@J(EfDVgfo(SS_k{IU}y%OmA;KTE9{$ck8fT2%UHS>^|3G~G zF?0_w@5y!D_x(K2x4qx@J^!%H#>||v=A0GB+Sh*kj-ek6?mW+Ph;FHy%5Caj)>6cY zqR^I63meME#-Z731ETb!*sbrQFaS5~qhdAxFw>lko+S6YB-p_WisfzWA}R2iHeQ1j z!htNy#PA?8%Kct%d9Klojb}E8wXS52?c?5Ys+Z`E(J?Aj+{>X)oiMmSVrvTUud{ z3{5%I=eL>P(Q3KDM(3TY(SO^qvR~f_L4Y!_b)zSl?1S&0H%*(1SUI`(O`sljLP>Ug z)x4L<8=KQen-k*w>5j)l$>?&kGZH7i7bnah4h`=9SSjw$;bNycLQ8dBP|%A6qJ`zL z(FT7Ea^zyce#GMA7@XKXOxJ@lV8kgLM44n)&4FBB;yp)jn!)RQovBt7m;QXKRJ`>Z+XAa(rKnD;MMDz`?NQ zvfJeU!}HCXs*ZP+`wks0@R9chYWcz`Cq`Uz;3E2GNWBl#^UJ#rvIK-T+XGSJ_kumJOOWB%r{+Y=l!sOaY{p z)E^Hr@Wa&IK9DCWzaVb{wd&oL1Ps8dKOryq_qpl(Y_;Q#Ri*k9V9MgAcUs(@O5^ z4I|1e{J#k7k__I|hwS+!1SNuP!n0v!gLYp@d|*s}{E!4M?D>)l8aEo6w_4>;nyyFp zKtGEo_RH0E#_pF*-u#&KIBEcrD}__H752m?i9Bi^p0SGY)i?PXMKi~dP)Hd>oZ z+t4riygR8{+5i?fgeq(1MVy{*HqY#7+^I$QL0$wXWv*}Bn?2QHN>`)Qe@iJK$)*v* z$n&a*_bOISNn+eZnP> zyc*mlo@RMFIW4S>vXK{g=XAx0Qj=D2z8xwGoO!MANxat1N7!m!M+?hzwaGctigNd$ z#Sc`c_o_wcK6kW?Om{H&nAlFw*d%UJ!t%d7C_%TvDs=8Vte7{;7{cH*0oI z2jir(A0q23?#-+;KGgn_`c;q^emz(HfQ<}K?oR}0GC+b@^uPFip?hv6x%8(h>A?<7 zx3AvKX#chbgMMu52L;DRd$s#5&jg;1pSZ<=RCREkpUs%{H^up)>>z7~NJ=};nrlUL zKA$W*RbZWonGsnD2G0kXa;&xBf=_*pVF42t@oHdgdochMe&lMaf*&Uk-&6!|CKpLo zuH33l4;8D-OlU@y8$0GTj2~8cuJeL7#c%0x!OG#E_Iu#mE5Lr_#x#G)u+^oW-SkW# zLl|y#?<~bUJ&gx(sS}p-5mviXE;@jQOg3TO~Y0XhwnCo`#jqSUe?`^-M`|@Ke zUThp)+-{91ie=5qoc{bS_WX&ka6)+eUqi_Vk446^&>${_%(^;~)vpHb=AucCDh~0& z{EC;GbHahQ7a1@J?q(TlGaQIGoH8ASZ7Ow3?n9BUEoP$6^7ZlVM3}NNUZ)W4-Q(9x zgbfES3|zl2HXOR$B5REb56*{*WH2&xk*-(9muNa=AA;Q17dUT)D}yt#@*D=0oge0e z`q#VD;wA}=%tx`CwYJ>bj`OO$C|YR1K2TXy(bf+E{m>z4KTR-!^%lqsRNDfB`Q$18A7bnkR3Z9)yUzcxZrM-7|I1WDDPh|>5Uv{Y)Z_r`@QbC zQB@KdRgzq>SR<_r%o4Id6hr6&1&1WXZgUEq{QZzZnmh&CCG8!WPatQfd>H;jsdK{4 z$crJ+b73|=ZK(9cNMD0)oerl{-RbQc@qF7YK|z6OUprqPts}B2Z3O)XxTVN8hC}px z_F$Gg1m<%OL{t8M@>Ce1z8=auJrvi(8^l0S;bqSTvA2rmJMzi5Rs?{V7Y*-(%t6MD z1vPGnd~Q6)y`WDy(bZHz7Sy&3+V@N&2^Q<5W2Tne)eGT&_^scM+RRDg+IZqVL`4hX z*?2Xe_Jqe)oYpuhu|OS#$P;(5zrN%pJkjG5oW}O-&kyJYlXrB^DrLH{AzIBri&t?lDHcSLAf4Fu`!^X}cce2%24Ar7 zUu8O1X53wl6bkzT^>V%~i_+^$M+FIXiVRHlEOqK+3iB6&Ol zje%78gclkE!Z!S5#p+g1%RwPpCR<_4pF%EABREy5DH=4`3V8Qa*eon?G|*eF6oKCFt>6&!806?MFfqXu1;o45108x_3*#uGX0XChW|Jnr`x! z;a`i3+;^`YN(JjQ=l;xDsN_CrXo`M6-9!<%$LF2!IY1CWi@tyJFz=ATl!Eu4T8cySwq=EHhA_GMow zyt>UPd(85-?2sG(3x@8p47Zk1GX*%GQo7jF`oy=KI;Xp6_*r9rG8ZRJzZ8z-0DpCB zD?48&5oW7PjJvOu70p022`))1_yfPk<(`YNSL5FO+Y6Or*ynxs^1W})v{tly=}xuI zLz4H>&hJ%3`U7+BFwMU|XF|^*_$msA;uQ4SF+TMHn-G?A9pQi1?vBTyWiQ+zB?%O$ zu(v4Wg0vPEcE#xL35Khk0sl{Uptl8UBIh(GkklML{8i?!M2EM+I9Ko8*G>gRPG~sU z_KX+B8J1SlABXN{z+fjsbT|jym#_DReDusZ)>vMsLk-+qz%rTh1mOHj1slkf;bj1i zB|WFo?-zfEh%xY8Aa#q9-FX<*%M*xO9 z`iJK|1c(uw1tNl(^6b1rL9fjUU1hm4_=>d2K2c@sUWRE(GFcZi{zW=N*lCV%L$+~A zVt^&=Q3DI*{sNeeynk>=4l1G>1F0#=R|%Z4v9kN2eW~yG%hD4%uJfg%Xa1H$9QT-F z1`+4Mj1v?wir^{qgZ(zs&?Up&_pZGCn#b#xv)EA^D^Z%#i~)^r3`S&>l{xDVx(R#! zrEC`vAmG0?q zzvx)(_;(N%hLHpk+E>GKMSZE*oMH@F%%(}Rgw6N3>W{augjO!r)zm%>ZY&i2w-mZ1 zxu>5EQm)zboe|_un8*P$WKl$C5YX061kL)GO)rBr9d>w%KivRh(u<@gAq1|cbBRRN z!vmPoPl=^sNk!r6Uenc$Um4uJc%r{v_%-3;%IEwL;q|KDu0A*Ka1sm7h$Iyn8o!Jy z+bD!=78PLUKm00o&fxZ!ynf|(jZgEfo@KOBRhSj?G7XRL0>t#*98ep0IWOws-h$pc zrY6o9eOmA54Yar+CV8N;eNL3(ZfijmlY5kJtpRUkrIO*_x#CAg{?<-HDrmo4jwq_%Lp zyRRNL5(C!(`;(tL9%3JABq}N=KUuYkteTWSx&O?`N(d(5oLuBdUleY zU#oq4>dgACPZX7#n=7kyq$Ex;{gk(`W<{E zmGBx%>w-bx#ma=TMJ^(quLGQDGBh7ohUtk#JMRxymCCId@uSltvRMM^|{XBq1ghAML*a5M*2OON^fD;{odu{OM ziwhBJaoAGCAaZyoAB?ikIXGuxJa3qFTFF^XENhYwqU=>4c9~ zW~~(jydMi#jlLYdsztRrSx+}C!s)5?{c*ho4PR&leqU+O$N zT9zHAQWIL)e}f<09LKwfzvC)WTfcilh_V+21K?zR7c4NySDhKiCuTIHssvryD`!tC zhoG!sQTK}t26rT3C0!ZF{?FZaEc093Q zp_ZG3drP6!vP&&fGC>qSL&Hg;7HfHE9AKK19_pSW%p(D+pfdK=YEp^Z9vdLlZ-lOY z6i$D%>_7~A_vId706$efZTDJl#)ho!zbWsfe~G_Gf4N^dO|fz(MH?!3#L9jR{$S#|;rFbcMYCv_~F_`(oPj-jY zFRNBcvbRoUI)-l(--8*o!G~-4Z*m}S-ry>qj3m;RvD5;0`PprKF+D3k4@n`}9VxM| z+mJ*#;Ds$lA5bud5p1ify~mio?4g^kAA(VS{vR2*(vGvFnnZ?gv6WP%JK704SLS7= zs!PboDHVHO?5lwE0xA(#?y;2w9a!%F$iQulv932Gy2Yth^W^fCFtEc#u%8UCCrwpx zMqZTV6rg$AB3so1bMdP>N)80cqWovfj+?0$f-yTlkwVMWSh=|o{RcrfoQfQZA(qcxFu*{HsMrOLWf+-1lPv520I zvKAIK)C@1K73%k35}<~rBg=6uN#VR}qO+6nXn?=REj0+pE8aU36&jHNPhTPPH|>Ah z;=p?3oZ0w4Z@>`z7J9rM&dU0vg>E6^a0rwdKt^`4G_aX4W7HHK9v=QRfVJf=lFQ9q zc!wH(^7t_Z5{7;kVZB|qwY`hjGIUF4%=Eb8ogq(BnQHqI&cOG5x{EGtQ*6;0aqHhI zqvl-hqRY!>xAZKzsk@6!60rkKqHSs31?0fr(cSjBIFQQ6nHBsB8RI)oIjQ0(H)*YL zca_btotNZ*xY1_{t_HljkPw?Q^2uioJu^uC_t9bFzJYfE=oPXD_C=)s1jg7Y)i1e? zl*L5vLR~Z9StI*hV63;-FmJX{g;6k59c^$3#r9cjik{}PP~34TFur>}acJBM-%O&+ z2z!WSN1_s=VzdbKObAEaMV^ILlWjr_s7en|e!$S(ac#Q$1|795R0ZKPL(y|_CrSJ# zZl5{IKTSqg>`gV@HM)ud&6}aBQoF%MOf(c32nO{v6GbxYwl)}dA9j7-h*EzHRB574 zCkz8jY>o2J0fC~sP&Bl5UqKbko5_o5$QPHI?Ea)mXtIadl#0n+nA(o2EtXICi>~r1 z&emVsqg&9FeX&?A&}I7;EcOs=ngZ9r^-LD!=PI11Mo0S)zo-5U}Wq!N>Hk;Y^%vL{`ik^ zpIW*s_^=-GWM?;m#S72(>dqSecOyy*M7Oal%|)jfe{V$p(F4{Z!*zf?M_O?96e! zkt-E7=fx4+c#BqJx~nxBKPzU(ST4gdcmG;+!f|UVB02V1+Xgg81mc6NIuPZ?lVi4; z#+Nc$Bn3l8t=U))o%^v?R%m1EBKM)KS%H?u<4^|Rea>l$ci>0!nhye;zuP+#TyUerK>6xMkzJ$#jqQK-=sC>_}&2WIuEg40&)<%qmviybSk*Sto} zX~lw)EE(le`js*<2=xg+TO}Vln`Mk7v6@yMC#>R5iX`a=09e2nL=~*>pfUj?c$_OV zD=h|r;yvQl1^&r7!-w87N2<|zEhSYu)(o9)?kK6+UBh9#E@6i$UP-?3-&XcBg#ME< zK8cMQ(y4T!m;L$?eoDHYi4Huy)&6b?Hvfj6eEXU_!28X?w9Gp*`K)9+f14O;mN>du@M^P>xbB(N^Jfaapt|>}K8%j?P3@sR za_vibF@C@K&2(6W{yGHM9QGrkDS&S=X<=p0jcKk}x0IcFqC~;L1#WipV;FBwBHRqV z*!A*sXmLrM5CN}VvXfcAe7bxLMpDNoU?c^8tQj6MOHr&I2mI9IUYF{*?y~{0j#j_3 zA-S7$G@|T{jbcf=^*B=<$$ixIu_8Fk#7AizG4XH3i#AB_G{so(GWC!s1RmH*tVea8 z141<(94G?ZehftNLn~zb`MrPMQy&pXvCr&&)iH>uTAKvlBz6oIoUz;w@iT0FCJ=fm z+E$~$vagK>j>xa>8B!`VR$V%ZTtzoTVDzM3TlspX|6u-ZxPnhw!ss|;2A1g8z5}lL zs=~t+5jW_-bq-O`6`1%GDq#oNE=MHTG;E=FgST#|TJA-GUfAmx!&_2NK%BPh_)!60 z{Co;dCpm=WV_<~hy4ns-7)5`?urUrq-<-*qUe+|78#SHhf&m6X_5D_fN59%K>N>$I zgA=j*K6v**4<60UM|$`rhjLI*ah`QOuYJd|;~X)MfU zG4u$RHiYVAsTy7tt=OK%AHCb%RxglC3^0H!ZcA<2MZKp1)kXj1@kY-)tKw{xDp9 zOzqfKuBZ!@XkKogR;AJ%|G!t#NJ{6U%hGPRc9xW}+RY7_v{khTBI+wO>G^IwSCji? zzp?SnrIBuZh=QUpf_x&zFr=kVjnQf6%ohY#1u(05?1HJ9BX3xjNOliGSYfwS1#hb` zfGlh3+wTv-anx>m8T))kaLuf-&DG3lGC_Kx=di)WVsEZiv#Vn`OYUz)sNMp(d{g(y zkkigkn+am$k$o4zuSWhVUrFdKb=Hd-ERls8%p>{1K^Nk@0KP=b1L6$5mOJd?55fiT+Ojms8*0yp6lbv*mr(kXPBHjMIa^K^)+d|BcV_570t60p_~` z&8dM(5Z9bN_)MhYwCJOz3-k4{EyLi9B>h0XMD{NY_67QXu?Y#KwtcH`Ll+C^|Ham}LLKI?{a`#kC`4Xx0@5FUwut+VKX|bbV(Gw;E<}pZpgH zkSv#UnVIfO<=vN4KomD#69qkDwF(H00PAN?!Ub-4_=thU)~{`){~be+Nta;% zAW0(@3-F&_SpzCq?PLeq*PsrnH*nUqW2=zA=GhdF2Ve2a%Hvjiljq zc_8ikspsH`bBDC95y=p!USI%M58e+w{jWy-$$gII4W3&uO{u7=vU5yoos3aHdO^ZL zR490Oq0XHnubV-QS<|Eb7K!K3DaG_eotcc3`pqe$2wB){?7Tus(QeZ8P`P^PP@_6} zfir&^9C?=ZC#JVI_+;6xV+h5OAop9-X2ogr3V(KpR8gc5)81(a2?`%ehuER9Ei=%& z!^%E_|GJmU;Js}964T|qX*H26T0N%)B*)_P2EI2oW`#l-1S7zvsrtARJYi(~^6`cj zFFsVtFfLSqex^CV&FsCgNUU+v1&*xjR|&%RHM%y_4Q_&b7F6=eVb<=*2>d(aWT7gH zebm)~5%O(Mg*jQ=ARw5&M=w15D@pi?kYLzsnDPnon5)&#e8BcWszbn8WVlwSO2l%P z571O3H<9}DJEwf04!>1kGK{~ijd`%_QZ5SQ@?a&p-f#PhS=rN>f*`ObjZf;Z%wfZN z^r{q0#dE(b8`%t2$Ah5*S%v7ud}9GMABk!oM*oLt6F?D=S@pSz?_qR7g)#B5O0%#L zz-K*6CC6M#LSV65C;3`A*KL&K#- zkJ&A{x*Z;*zG)p_eZjaHl(lnr6Wj?Iz9n|)j%1Hq1T&!f9G(+&R!s1od_X+m!^y3T)KHx|?PfVoYga;J z$}G=muK90XA*bF1#}DUct7l|NU7lQU9R^p|eh zZdrk5?$-n~ys1oF(0p_N1i9Ue;cacG>+0LS6FO`ie+4nxe@$OZROfCI#{0i3{1hfy4`0LQid`62lXqaxQZfA?yA6uPmPtDXpwh zS%m+P`S;1$`M#WT7r~aFdCExEjr&MPW8cru1-irenOG-F`Yyxi)yJDn@u#CT4yN6f zk+0>lz3%_hiIindQe&S`GBGg^mpajImGoQ@OO0h;yk-dd-}xTMf!EL*6^n^NdaKFe z&lPZ9DSCF0`F2>-2JVn6)-M5FneDIjg8w173j7iL@Q2`4LFii_(12E$H(sc3>4=zC zKmBAGfA%RraA=6qF^vl%tC@iwt7x%3)#S{Syv{j z3*$H9fDw3fC=C|fX60n|XJmZbl~9>tP`5^vzKs6uNq-i7HP+na_#xoRFM&Q*W(NMCdt78!2~q*fKjMvEMAl-KS(VdG>=yBvv8 z8K+oSLhi2oF?Lsd@AJ9_Sx$Y@wAPU^x(XJ)Q+gK`1HG_+oaF5IoQ>^;*)*jbtAhif z-o@1>eA$jHE>^rq(KCv(_UwLS_%NKl|#jKi6) z5Bf-lM3KXB_pm@|US{XkzS%Tv(wR#g-nl7~#Ulw;y$$Qtvc1Br*eD|NOy^pmCnIUGn5Ldeo&jP1o@nNYFfp|bzQK~~}AU3?~^ ze?^c^?;ygBK8?4oL5kbFh% zz1iMX%*{j7rWzD3pmVqZiA;$iQZ&Ji`@buhw9#{9EdM)>pmNunV(!2k!<2NAosq(Y z^%4K5yv3GjCY@^gEW7R>w~^ko1AVnF5iErahyWsCdRqR6p&k&Ejdm3^JrRzXIyo@= z0ppAJHWM@WMQ%>Uvr|+z#tY0&SS4AB`1?-NMXPum{>>6B8k9?L`IslB^K`!QAC{I6 ze|l0}+{vKn!eFaQvYZQ4L_g~m-`pjiY2N2D_G+-wamr(3aEH<}^NywEd(gU(B{cf; zc)5&=U(cOi6xEK=dAW{Agdcfrt=P<~AxZuOd_ElwnLc)21p6Rm>Rmz)5%eOJq{+_C zZkxH7DutZ_e!4xT>Xuxk(CVaj*7-PeaCpxfF(no zrNGK^5E{cY-@0V{z}Kb7p#I6TXDU-iHE*4rU#vI$b>xEAEy%&f1{PkV7y|SB_h@)+ zQ+YNj7mVJu%oINH@yAcQ#G{CXuJ;oN?2*4SLfv8^o1F8m`LXkUIU&!tKhjN5`&v8b9>0zTgb;)GZ#Ba2ZOUE9Y8p00m?GvR?x)xI1P@Ji@<6Uub6Oq_1O$uDu zR(IdGyW%F2<%YO>e1|6}6ca(YM2>ze4d6qB&uDk+Rv)`&4fHIx1&z7AtKDuw;9%E* zn>;7UkSAEaa8;i}v|bw&JhVtggaN+pFK+ zeB;5B1zl$-{D+OS-V5%HcWB9FBA!2DBxlr%8Smbg{fi&T!XiDiw<|GS%tV=W9p3aM z6`D@V9Ct74)o787@*7+nbl%LCIgckUtsf&v$anvnBo;=pUc$hYh6`Qwcx(g$_Fiu>3oTWV#f#an&$-XoJYo74WUG9WgJVHO`^Mwwo0&(UV2#m8 zNGXV5qu38ZU8@E<6M#oGG%kd5r<*ctH)k1Qo0$$Fsfy6+q<*1BF#?2b;$8m-0Sj6C ziSjmj*CnzW3fixI3U}oiq5PpCb#|$tM31fy+;R!ax9S8CJ@-&GVe_bELH04d3BKlw z#x;+EcA_1Z`+YhW^4t)tai=XZsrwA~4(78X3QR7z7hBs}K;X08b_^dC1^Uykmsnv- zw9@?!g01M^n+blBXjo1ZsxQ}rJovJl0Y>{9@8rz)Ck;Bf&(5RZw%xXhF0%!8qiYCG zSVr!j+O>>#5POarG^nkyg|J~=VG$93TapvI)8&m-52*JH8p}UDxXAhiGag{|r6u?* zU|4K~MgV~(-r>P+u1;0?Yo6i=K4>xlt0m1N7k&_78A{d=+~PC5_zqTJErRt*cqplv z3%E8xiwRO1$)nJ~fg=dmDuhP!y0lqrk2Fwo==_$?%6stmszy;;U9+e0icbiCt;d3k72H8Ir%U?sHA?rNK&C5MGAwYc%wTHo<} zq~zm*>CXy!1P8p%i><)1#bB85u3ACZanq>yV8fZtW48p>Ft(sUu>bfArtGY}(&w9! zCl+%xd~h%?9Y%lX_Ss}?37*FRJ#kwSfrvqqVV`zw>1~3<_+cU!7e{Vm8-6>#Fpxyx z7!mb2TU8e6W=WA#pq`U%NNM2{ze~^mwPK>DS@xkTyci)T06S>N{Q2{j2*iP6D{p-Rr zZ|Pi(X18jn(XUU`ASl!ZJ5Of^OvJv(PXJ4!IGFed4jrxa2$B?i`q*1FWj6KfTa7b( zwj6eeXukrBfJR4u<(e-Ab9Azw=vu2-9j0kle4>_FR&PFESjdDG7Z}K7XD6L~+v(ww zp{|=Pm?7<+&!vx7LX=ecz%PQ%=a6SZ4$nUh8?Ovx2s0%98V)|LP|ov|Hy`jV$Qi(r!ja$S|| z_?kz|t4f})=+<#W+#a>S zoJq+J%VX^_3-y`Xu^Cv2*4NJrokX5V#u;~$TP%8TxrwvO8^ZUeQFt7* zZP}#vOPiMK(^Wo$(7Lq9$XtB=<9?6qvwR?H__PzN?Mc=5P0)eJF z6iY$`q#@|yB2^Ux{Tgnsc2c*xz-{RQ>^NA~!QLLs{{2d$nesS(MojCX8a{1KJ zeZS26X7Pfag5Q5mGLtb=%p zvucG$d%-Iq!V2XpU<~lr-V#?6U%P1gENwTxa-!+NEQ7VzUxkte?Jf#QcmUWHK#IET zSb2u$y8zW>umr5CYxTQUe>T^j19&m&*k=&JlLlL*jW9o5Ws=T}4#$eZ-1&~v^wUOD ztseEM82!x=bKg*!();r<-B+70ekYWCx_AZwy9tbN`ot>h+U?=$#6XV{|5ZVV*-NPl zn6++={+QF&u-|^Q8a>x>kt(zvd*A7htInSg+6@wE@hK!Ov^J5uN9#M3|=Wt;)* zP)fbisTrn5_BWo_5AKU$9dPqpGj0GXq%ib-5UCP2kQPb=>i{Xd$U=4^2!wob&F_QW zSPbm?cc>9&5iT0dhjN_$o>R1Awi!#UYs==8@L?R4K+d<(q0F%u0A*Ih5G^z1IMn^guY7>Nwdgkg3W_!%3zNn1fA2U@^*WQ z6!G~pum<|KWY=Zf)9?I2E)+U=&K#)<`a(nBV?HV+yy&z2ttBq(@-Yp&oO*42eWjg8 zcMV%lIMVRFY*Kwvb@rP;m!6KF`UgXPAL}kj_$)`h+&?;EwcKE^7_Sjr+gMkA0kieo z^y44?)<~hep*5zP1+!hHlTZ$nnM0<8g{8T3i6M8N3$1*AuGYPFm*NWc=b_!H-?=iO z3>J=n%pf)))#5RZx3rQR z?gP7^{C^J~KVM2Y-(!j#!QEy~yw`a(ECW>WdyVI7vjKw{9Za**OuUm=_IKe!OUsPk z&b~g#l2EQM2W{-DcZ1vWBy9hj3R&u--;tXU8@gnp*AfVXD^EuO`Z&_>gGzgD~xTH#B7Py{TPLM~s;mQc_-eG38=>*dXU+QUI ze{GlJin_-~Jx|Hd*NiTp1uQNR)AO(_@3=MPUJxeLOVi6REU84nb8|u97iGWYBp1Yk zP|a?h&@dZ6W(WQbT#FGz$PdEFySCN-V%WPrR$AXDckCS;qBtfFO-Bj6qIoZ9(VmYK z-W_oMy(|YL{qhX86TTL6(9;MTfTG~&Y=-m}5&s%)YHJiXVjiaG5Ot@DLzmJB;0;cK zi5$>{j`@S0Y{gnxx7@lwLs|J(g~iw}r(9jTTu*h&f@O`$n)HHi8ZUWDald{l?T!ZC zvEceLAz=d!*8P1+e9t3ZVu+%y_Yx7J1A;DbUGN2u4MJv8+qa!pV^WljaQBlPC+tyyf@+x?8Z&imu3Xy1jh zZ0K!t4*7mHN2UGyL-0xPmZg{1!uXSEW>Jsx@G*yp4}NrBX<|s;v0Ox0_H=e{*H9}IWPzwL;>sF4D!GBQ#}RuBHXj(H0mxn){$vbb8A86CTE(!rrHo1AwSTR z*WK3E#<@#$&eK7cvDcewJW{k!RNTnitkM^EETxdCZqH5)>s>2#+}i1`UTpXSUBZnR zu#!CyeYWf zIs7?`b7M!3i&G$(dQ-KTrNZt84-apQr~Pa_wZoinbg{;9Ygno;#a%?fjfFf^@(Y`{ z`=osuy(;JR(^bzjtnXy97*;|A_bdh*1a0%9Gn-LFvl_h)2^3aORIKz|dvn}Zam8vK zJvaK3I(2CJn$2A8GtFQ5nDwr_9>#gK82!*lf_MNY;!v3RFHzoi>l6JD1N~Ni$#Sw_ zvj@R$NXDfDL|U!YJrIC)H$Pfw4<@yj`~fueJhA|Lzi$mESh6pLU#|^$Y+@`F_Hl5$)h2YdlnKozIRk_#5F-59qHjpe^zJvhOn1(t9K7Dw~W&wsi#$)>S9 zIE>5M^+v8Kuanl2o!croNLw?0dc}UPuztJ?cU#HW{A4eRoqpOSaf8xZl-(X)Oofdj_sei9&qFmq3SDjI4 z@k?X}vY^V=tdc=nd%AsoF=A{CX;a~qfex^X-6)Wds$Q%*omlu9KGrIE@0WPfG*xP` z#Mb4ocK9j+nXjDTT6-UWov(F-hsV-st*m2z7%TM)k6A9|;}$!`2Ru7sT-XnO-Ny2a zyWE1&AfgtXYIV^Cr9I$0zucdfYKyPe5yF5-K3t2T>iRPCM9n``0svlOTJ$FJv7dwx zx}F1k#Wqo-p}$g_dOHZ!e}#ZqJJbMsP({xEg>d8XLY^EgvJf!1;i8Hx*q-V)1?tZA z18Xn-G&FjYSUMrw6SyIbx)F-Kd|RZf$Z52;HJDYusF%3)3#B`M|9wH+|bVNlEXfzo4^^a9&%uT0Ri<0p7pG)7~jO+d|8@*`Mg@nD+ z)CXVwn>qO}$lRr$8sayv=i$VN`hqykA7Maz!yK%Y2326(xzztK46;NOGd)3)8l28x z+_K}spBWv@8<%Yr28vw|-}B#oW~98TIrw0|*z~yqOR;Iomlz9}M_xN3-1iW^dtyClQyjehCJQyr~pDQtjuv zYzmTj%}F|x`-K%FDWW(?ZpZ({}myY66ooQ#Z zk3TchGDI7sNnm%|<{ake8WvE}WcBfa8fX-0F=`iLRA8l`HL<%p?pF7?QF<%52@5nL zi&XUoB3b&bsDX}VH`IL=JqyWq{Y%_rXyNx3Jo9)zzM=xCgg$&tpqaF`rW99KGFmqd zU{mMMG%Q5!LaCn_uSuWIdEU@_{p>eI=LN^K5XdJ*ijq}9aOpXcMOOZb9`IAv4Bm1y zHBIq3?_l5FzS${C;XK~(;_^byxUYGi?{)!AAJ!(1saBGx1&B3VfXx*$O-sK8uho)o zz&){qi>Y*m_4WZg&vx!C4!#pR*goUiTgss8n2z{xFzyC2^qRGAWrDR?mOcb5;4zJ#!?qW zA1GjBN^~!Tl%R@}Qr|JG?s7fBzWE+yPHn7$2xxHc9l*r8x!{($=33k+z7l&$RpnGD zmuah?p4RO24)AtM=hI$q0kF@pRS9;eGnX5dYLtACeUP%Op9)FEz2^*ku{MOaC#_8J zG_E$s4#a%p?nm%G#A^~#Qgs6x)w%X_pz@v)Jl<#MVD*@IaIm9j!0*;rwo?!VMr?yMQ7%nyJj*F#BM~)~47`6sPguSupi^io4juyLK zA$2>ME@9}e9j{vXB5cIky_MZsG(?l4koYKjK~UPDep$?ZOU~58?13q`$be3EiN9By zy9f7J=Fq^{uZ7et+4XVWSm9dK zDJ#-&rpu4e=bC5jSUAdg%3h#yHgBt6)?VYZGi#d~)~eo1`1r$3e|4Re^6hi4&$FI~ zuG*J3>E1Mx+1(}Sqz7<$Gn&}#Gx7YgJG1Mc*5auoyY zEn_1>Yjrz<_D_ZO$;q>xT~8a2(F0SbQzF$W{j~+kb^7k7f;!(Q1|o&(_H#;z(SYQi zPF6TTq()>{Nn?${9NLd0H5<#OTvZpqR@Aj+AP=dUt)LG7_ATEO?I3&MA_%Cv-;3Qc z6r%Yuj?pZGVX-3suy0s;_Tj>IsTGye3t=Ix{?As&l?{$#+3H-T?gK<1NgwfeZkeyE}oH}gD)J5L2j_8)5tqh zqd*rhHwzy9ROkAq+CzZ*odgkPpL@^6q2cR~AHj*u*e>e^L*P;1wuQ+4nRjbZqRWO| zw=l+L-O;1h*IP0$XztD1j>rMWRO12TF}K8{`+Y(<6tCRA42WY+aImw>x$f}s zRT0)TnJU+7>0=_C#Rf@Ud;FzS(i&3KnL8T5e zUJ`kN>j4#s-UzUWOl@$A<=g7wkbRSuXHYR^lPNyzj3r#Y^q0Krc7K^;GTO=k+;JcK zup$nrNy96c!+Ae^DD7m8;dTD=lS|R#6RK z6L-r!*@^rM!ZDYBYo6rQRWx@z4)@w+cEoU%jeW5aub_mIEUY9u+8*-jEpU@*% zrUzn`j0D~1-?HfiX$Jj72O8r~Fb&{t#x23Ft*^vM{WfAZre5PZWT=Q`V!(Z9+XR)7zmDrh(mijqIpLf#vsDMSp z@aiRzSWDjPfPR^-o0wVF8TRq+bq-4mi`0}F`}VxLYkJRQx}#{74Nt~dqU$}rB+TTu z$87t$HuYI_?1(z9$!hTnc3`Jb%a3$SYpqUrsB%B$c*8*rXhLcNk&C8^POH)w{K+k566q7J=1Y1`V<#{tJ z_W)R`z>Rq{*nF!&BiD%Jgn@3EetCjj-8HbZ?x#WZ)3E`-EaAy^?G4MCOH6fMWsjEL znv3T~%IWXMnWr1{2}Q{Si{QS>;88%PPT30JCVVPAaeV)Sa;qi)7J~k5HuV0K{wM?a z5Ga0t25bs-_4fWzzfe8!M7>V>GyJ*LBLz9JCZbSjJ;!!;ZlQTit+go0ekj;#RTQF% zRZNvHAr`tq*5U5~7Lqip+?Nx_EVn3s`oGxB*FM3zoHm1I?FEeoX z8jUqR*5_nmu(K7p>AvUS$@xIP10IB+jY1HEs|d_cHPm74)>zgw&dJeV`=gSN)%ABH z`l8sC-;XVJNC*fD@y>gc-I6jH>~q2kdMeY@GgX~s?AqEpE68U?J(qZN)zmO)EkD&8 z<}@FZ>qBt75VJ2v4+@DWy{4Dm^NI}7#Kpx~!(pEctM%u~%S;soIf^d=h_3#iR9{y` zV(}Q7eodC<1vmX6e+7$UTH^xD86Po}J&SYe_|5K5`~Mj~#OnJcO7}z^6C2P5Zx(*7 zSimP%8ca=(NNEj?=wDPr_1U!!vZYmebPCelNH-55l0I~IcRqBUh3@x#_b<+O#&`a5IED-t_kCYE=QXc1 znV?VlRW{3V1xRA0fwwDc$!DJ$2@Y6{S zBD}E^mfv~3j4<)WtkuQg{1=gT(W|537Ew3eLW>&BvyG$UMJub<^mmt*3k32AuSmGb z!h`6Awh?^}e?%{&IkwX)2<*EY_tUq#12eI-in00urwYPLwbm1_w^HUbav?lgKU>&U z#_vs<`QRpC{VB2ZL{{pwTAt$)Ejq`|17*O=uwRYoQH&$^rYi{g^%N z`d$8Ni*`dGS(fi^RIS=o`2t=SDBYDu*eObORti9GC~Rp$STy2IF;G5w>JX zx!{Q;Vv}gPp#{9{quW`#UDMbF0AZ)+1vRLOq-1Y{OYL&~T}bIK($Xy@*4?761HfuG zHLoY>Kv*RlsXEzy$B_a)C@o(fIc$;=1Q@&BBTB$PshTGQa#C z1_S4rHMu`}8MU;%|0K;H-WgzMNwZ!qIOeGb#wKAxYppB21t#?-0_vT--Q(+xzS_qS zW&M0x&z7sVe|9w(AKanBA7KK$-#+rv1BA*TI|tv3ypQS*&Y2J{)%ZFcV9Jq`x}@N`V$V3 z6T*0+IpDGDsDZDcfE^ZK#_8xJK@Q^dDoE4^2I=VE$4a zGtXvfEQ>64k_A1u#LZ{B-wbx|cX+LjbEs2yF5`J9EK><`!twHqcz}xA(RjlxS`@OL zA6Kir@L#nnX5q`WT>2~Fd^zeFy1kNipW*6$g`i3}u{%v0yf;jRbT0%M5%8ReHx*mMH!Ys@HA#-XJu)V+iURAdz z=M{a$O4IF2(kNd+FkIg3ZgWmj10xOjDKddFRp(43{d5l5F#2fcukFW_tHiAk`oef*}n?we9RoGNI1)U2M^p|4tTACFqC-MqzjKfNXN6k3&sEj zr;McSQ@6^IOAgo@*|=o-2NfCMS^=Po+?qHprc5yt#G>#vLk^G(%19x4Ll5oWr79khc32gAJYI+L9Or-R@%(ctTBZLxq0%V*4QLpEU0r1}I5|VcCm?~^o}+r%bYcjtfVzm}Ov5pkP2LlFQ2yEFLvcG{;* z^z@25q83OtYU|0tOdUQ7U8ojyEko)F#>UoK7j}uW`2I=78}7lS6W{wC($W1KH1SOj zo7?y@Iltnpr+k0wk&7lIFFGUss5(@fQoIAV#K#VwJ3_CW&G$+72NwAa|1J&-lso2E z?Zd_xL&N{I{1f$^O9A{Z-0QYya5*%0 zAa$358$Xp%qnEp{$q5qU!oIHe<7b#AVi<1t4vk;~RhGef)eRNsy&;58Sz*MJqU%;b z<&zgN{WorRdNMf;1}nKK6jZq|PnyuERnl=`ndP6t@mV$jYm++3j4A51QOVCK4d&Xd z45r3^Ra98#_TS7@MjC56fF3}OFqv6vhDt`-m1yk-V%=fGcGr_=9Kb#iX@r%o-)M=m z5*`x~Zy^u5fYk`%u;k977@9sU+)_|d9ByJhha&kKmqj$=fh@?JG#U_8O}%!^Wnh@^ zxy?^LuVlW;xjDKsTP@uojTD}9BvNA7_gcj+AQO^qnI67)Zg(Tc*B9i~H0C%jI<&b% zN@WI_4~>3v5T#|fjC?*x7`WMSJ4~!T>^Zcf;IA*p&aU|Gt?&V;qioyLD;=Xd(7f1S zjLyTc-_#^vNK}fHk{Kh*hZ-&$_K4+}jP<_f*dU3QrH5wIVMs?|xj} z>rlK_@)qk94owLfzd#I8a=oaWa@!mu{m*EG_MzVh2_$%r@*fe|D|@&gd!Mrd&Zi5P z*Y{UUKrYSs4z*6%%jml)!95)~UBDZI?OZSdL9*!dQzC62)HMZXKK_x!&{(~lk(0_m z>M=`Bh_x^*L_m1M<~4W)>!f+scXN~6+p>sfD?QX;&h$}-=iN3v0&&b> zV)oOGH-d<8bvlDMyrZVHgszZHZ{!7?w*|lUIxIR)^H$1+xMsy?nX4=?MnjNXwNy$p z3*h-ANE~7x!Rw|?88V>}^7j!7C;iEZBYvGVV}*9DFUbM>>PA{Oo5>^ZP0h9qHm0?D z<9F&nHXkQb->mS1fnAJ!*AnG7nj&hED8TN2@g#|m=1FKEjYKAruZ^Wg@qx%0|mr#lR-B*{DFTruDk+J`B!wiLRoDj^|$vcvW-XUcKfjn+nAy;7LBe^C_5^kJiI(#^3=_eIKh(bDI7Q41=LfYMcYJ)0UJOtf~^I}e*q%HxmDp>|L{R5S2 zPI8+1W(45oZ5cabscUM&hkNy`y&6@NQ&#P~h)7syeqp|11AW5}*UwIUQ@m`IRiklt1m1sn?663X5ai!)okqjfR%*bIsz&DUQP^UdnTq4(CRKf$u(RdCgGgf4@pg!vT_-zWYXWZ(Lq1f6eIo@&~s?z~3dn0N}pF*FR7+8qKr7wNL5 z-)D*Q4LJx|2~&;H-S?+oGr(Xev@@6UhJ_Iho++>V&iM)%!q%}Ef1_^1QiMJzvpB%p zT$f4{__thO02{M)c9EedGsj9DluczmUDph5YbwA7ZYM7EDpy!rQVbTo# zV^x8qF_h1?P>=5<2D;OI5_^PRG!_}$=H7zIYjjok0<}*66b2Z< zk~93MpJ$~A-0lalS$2!Kc#RW3b628y2J-VN_-R!N7yS=(bQmNs3CMGLP}%NJYsrV| zw$T7$;d}@cbsZJSePlw}0+m<2`)A45L{h;UB&f8Bf*fX+XzMsYbszL^=g%8hzR++sT zWpK`4&~2og-e4`+&T1U!Jwa4=-1|XadSX6Dw=l>1{({{^WQr^2s5|jqOfG89t)vWR zcOIgZnt177qW4*7_U=~(^?WH zn5xcDfg*?=l)6Mqe;qbiyxIKBDrd3o(*8@pBHsu1T?UL49i8Xc($k^CWm)E3dn019 z3*TdbdUCY7;~i2o;AC%R;&v|cO@8$v*P}RhM4-hFCX3DohMI5SU-ErURb&MU+mW=C zb>`u$ZPTDU8KzA*lPwNJP0On$IsppSv=sD)I_th3-ASH6Va?VGItm_zrX$ zzn?aJPVkzMaD2yBMdc|ZiQ>(hH`_i2){>)l6jd29QfgfS5I3kUw%lD^go&u&-9X2k zGMqQ=H<#q)ZHTQiFSF@jU>DB0@J1W|VK_MQVLsg?^(%PVmDD}HHR=q{+jtj${Tsq5 zh)xHn{;JohmrpSKSSHhP<6@XhyHlsFnOV&=G`QHn;RF#A^}Ae8KYeJv|1fqQj^_BU z4aW6fxu`5tlI#Aer&^!p+lyq?I8u(?mXufhb=G@hg9Emy0z#X&oI&z|V;TT(UY+-; zsNQh;UFWPQuTE@W#;D$FG0eFd6wQz^^ENj2U%3Xzfu-Qo?X}cg+s~I8SBr4b!7;gT zMrpKmX|A#rjSi}Wl%){$areq@u(d$XxJ{?YCR@6Eh*@{18zA7e5=>F8jHBu%;z(@W zM^eTV|9);->h(^I0ue5A8qzEzcK$sctNnad#t<2l zorH5axrqG$Z1eW8=-q*{%iAjYHQ>6g+(_a|W3H0JPhtE`%m4kKR ziDf6t{9_2v(fcQy+V#909M?{I?Q1Owh(x6XYY>8cIA8>b)Q`o`vP((Z;tBe4=e5d6 z;k#G-pzsp`J3mZpo)f^Ag?&%usv0A=PA?UQHyjA~UOeQ`z>Hr5BcQYw=fO07$ z8DKMxdcyDVjEj5Z?+X647Jj?HL;#Ci9r#MDrzPP3WbQGP?|x&O64B!1@U@6=xTf== zzTQ27f;568d`*-;Ln9~83fQ&+Y7N^j9=|th14JwwN}g!9Ch$88gf59_nWiv7m*$g~ z!f<3#a6Dk79ott{k5l~-Oa$_B`@WYO^-LVd#h+?O8*Cwy^;JBpd~jwwL$*4xDKuKv zZ?<;nYHy&`_|+70nu1D>Dx=*$xbd^7qQ~NEjT~c5gX1oVYUtoL1WHpp8&7yRHEN*D z@x%PW2{{_)Q?IbBNN+C()^h%0H#C$g7-l6vL-K3WWdZ-_h!Xt~PMZ9-uP>C%+P5P$ zCbbuw#F%rr^uP{t>>-H|V3HHEuWeXMRt?ADH)w5dpA&lHsgS@xpTH2^TOl1fx!I&h z3GqrDt~+Ix>lP+!c}I6PQK$pAIS6eSWW=elnpaUmqoPhK=s!6+f?Rsy9>Unk8?wzYov1T0#PFPWk=@{MlYyor696G9gf90 zG_3~va<6eFrJrF$d8rXT_ajU~YEgvXcsrx|>x~fl(nvYs+t~ZOF@d_U)0!8v^9}t1 z_(rMMfrj&XZ4SZqZpL-*Tqe-d-W`HlhtprU=VNaPFhOo?s|B5dP)cjFUf6yQ@ZV{- z__5cq*J+VsW2u_UfIDrc*F4XhufpZ8lQHaK(G~kR0|VBOO6U#&x3u$9^N{6M<;1g( zZL(ckFDM|46^2{*TWG3%+V*$6d4#-^n1?hGuwv^D4LjW}vWcIPn_)2&7K&6J@Y~Zg z9*AYh0a-of`d;WeJeVyylRw#Jrh@cY2Kd(NS>%lSxW;Xk+$^EVyej(at#7y{auT$A zZEj5TUYe!hd_}B!72`xyNOXB5c~&zE@#zS-3Rhm2 zPPqmly#F9&&h6I0iEIx0yq*=*6;yKdtStM4swfi<+z%qAa-+X2{PJ|p>GcK~YS-zI zaYDSYG6&d|A-M~!LY&glW+bXrTR_f%Mf@le|JZ0>l<8B)RYLt-P+5>D-PNgpcv8(* zJ*se+O+(ZVllQ!UGLW36m(>bSgZZm3a@^@rMTU7=k(qcBf15J%j?0%l(j#Clzid_06BhWP(mx8gsn+41qHrZ>lNFhE$zW0jyZSj=;a(5)LD} zXPyfvbMi8n>ctB>Bku+QRHNP)i}9hM=k^qJhlt6L6Y%5Z7PqLFH0!XQF8STJVe`vCei+OfZJ_IFp2wWk z(L~v)!`i2B_h=7d|0s9?5nA5MSmGLkp*U%AjDEH!eb^p7ojXgaW;ZH^Q4@bi!~8(l zF7LPKw2-bNsmCIn>9^zGQGz`Pxj&%f+}E~xM4VrZdfCqLIZw{-d7q{wwz?jJiAcRH z&k|xzn-HW2=@E=GB7C3_}Llq?@Xo*26})Y3EhZe46>jlBy=CF2ibE) zbh)z4+9rc4=R;eGMlFj;Y=%wW)>=Hs6wmI~Gf=t6HUz4~vq6^4Ki&kDI$;W*gKY!> zt1lGYwD=y+p5n4qVjVS2yR^@qfQwS{O10daPx=5T9bEJfp ziXau~7a6$Iel1S5(4zNt*>t^tcGjGCHbQZOgd%D`!I*d_X}$PME-#_LxbXdr9Uc}h zA{@ZynIv^le8L0h;S3_ZgK{;_qrOe%`cWf_JM$#}I5olopD8jUoV$kUDJN<4cb_Un z4Kth^8S*(zi#$v6QD*|W%yN`K7`Jw%11552jqPNhE2XRVULNLVdh6TU;&f1Zfar)Y z8Ee(gH$x-zH?ma~c=t{o2YTSk$4Sv?>{qCYV9HiGVR<#eUwUh?lc{j?~^+ z_;M9Dr_DudIeCb7xj~+C_`yQfL@A#2U$C~oxAIfey{p$rhV$lgO5q>Jn^D7tM+2-O zhtNOUkLqO3AOM;Uu1tn95G}4jTx{IhW-0FS)r4Nnacv@JnV{iu21mZ z6feDd2{V<>;;Gzn;mlbIgSZ3~y-(iaXEtrMal#}O_*(m-?{gYDu2ZwdS#inYx!&5> z5#++-d53Eyk;ShgNK)qJp>(iq4iaRrR3-_wPWklCE*W@d$FV7Sczumx`*K4Nhb9X8 ztW0I(Sq2Qc*Ou0bh71+u=ZJ#(y+Y)3w#T9T{o3|5kl3H{dbYC@KZLD1CVS_H69sTA zvAn@Y)g)lq(OmR;B-vqzL&C3%06`42;hzKm$~lI&&C1UL{ZK-*S(^pY(iuM|G5516 zqir=|cm%*)(c$Gb+k4rUuVN}_STe%UlkA0Q)H}$e@#oBc$+u#;hU!iyJ>^GgW6223 zIzbIYaSM%?RZ{tk(dal@{_a#9{h7I{!>Nv$@y*yJrSEgW)EM(_8L! zEmo$2vP#mc*YbbKV`?x}>G%Fc^I8%td=K@FFDlPf@tJ&Mm-tjh2Vsj`V>3L&&NT38l-_{sj~USpi(Z$*a4gR`N}Pv7-&`D8TI1^c0GKkg zJKUin0JF^Y&K+~Pe_J^ez&?LGK|QPA?}7}}A}`eP)V`Lv;4pf4;npoWna==`WjG7^(H?3tT^(G z>?2wj;bYONRaVLGHWb76th`jXooBX|-@SGD-x%It1wBT|8&ddPkYO{TiPPNCir)JK5Ogqrp}q25rXKeQ%GZqd^p( zjTXG~F~3gHg@TNYcfP;oi1Pm9Y{A4HK{l6PSXf7JFaq=E+WGAz$WA?5{-No?NY2Tq z%tdhsEd##yBL^QzZ-a720dRn4u7oY80_bW*Mu@{~RtU>N*Z`3(x>@>p+!t@!q&2L!*N- zCe6D9&YP+0qR05Z6Bv-Y)*5Fjq^aVO1_9IGZ8$G9MDzKk4{Ud0$t)zT(MpN zBfg6}F}O9UGZIx)b75IJ8tI+6nF6;GxrAUQXB@%~;xYCPf1A83LuMD{+1H0KL|#&z z(%>V%qL=^qCj|j?!THztZFwv8kloSyYoUsur{>(vOPMtpC$l8O*lk-?AiaFiiZtt* z*ibc|BtQOS6|tbOAi=R@*}(8kXm&1DpU<(v)&#ATka|NRnfUim;?gfe##Bj!b-sE2 zUulXr+FMcO7C#J7BRN<$iALtL$&%^@@~wXBh{#wPnAg#&`{ThSl8}f2Coo_)bbeDk zcZq|5szYGkb|CzRznDqFkSv$Qbat{AlX)Jj{A1^%sTPmMFHpLab?Y*5)1(zdTn4M58Sm%^H_| zzOp`jV`5-vSP+6e=hndA@ye;*G$+#)(mEzu!WKo9oL(LNC9W}D`yBzvUmY3rstR#eEQT7(Yr%+8fm9@V5!xD zUP6&l!5>1;C0O53B||X zsa%Y)2@B{OAXQaLyr(zsZ0=rggL=GUItd^fsc;`LozV~Au~CHxLiquVbNb*W)BPro zv>hBv7Qb-r6eqr-S<(~=XC#1xP3Fdp#(5Md!F zQr7Br*?dL!vBbLd`&k`9#gzVQ==ftiG@>z^=M(15WM4WQmt{{{UiyyA&^K}?lRXhJ zS0L8zZ29%x50l(vrlEvyC=sL^IHtL-WOfdB?~gnt9M3h0d-6r~L@GGuWE63gfo&Kk z+oMrT>T^WY#GMu**xS&an%d5AqI$X#11B0JDe!arM_zTD|A|s?8|ru-rVtWpUn&bq zq@BIhR@AsU+lV3+sBN0qH=dajH7iRo$LG)%cS9g$8Ao>j)yW0>Uj&ZRYEsfN3BAW` z&*GYN#>ca}p(%|++dbhV{Hv!jOi^C_*RzN~ld%b*_3m6hZhWGVblw8$PTluZlb0Z$ zmE~VqB%>4phIgZCnfCFV(*i5=5$e(M>)BERnP9q+r41f56#LD=S8-B}j(ZpBydb5I z-Ij-6MYVk>TTx8H7lRp$m;hiU@d?WZN>__)^$nAoyj=tlym(w6!lp0ev-C|(UqtS? zT(f`2zs&Yd;cAZ;Q_MmH8N)Tb^qQaCdhd)P*K3d(vVf{j zRWHFE%P{NU5G`z-PVBYMtDvPrzjJq*x_Wo@ddkf@jp5cd@U6#*l;mU)sPRdI4oxVv zh^D4)4zs<}saxWCcE9?zDkSCq6C9pBs-??Iqw#~0K{VEMZpO-1x28r6^p0e40c%|j z0bU%=O%xXS*J_`dJ-GrN;P*0(!3Q1Z|CWfw#An0NEX+Z?yiQ51R$bVB9Y}+cHyWdU zcblt~{rrGE|2$E2Vq$?W(s%w{5>&olS7#ojj}d?+?GGf}rAOnY=43h8r6arc(9Om7 zl(QDnd5NlT$`>f+AIc>tC60umXqe>2lKo*OI6Y9mILrd!E;E7tHoQiD0`ldv#fHOM zf_+u7CO?!QI}!f_4U*juabOYD(oFCIsh_|22hjpMzIN;{c1cCLuB;gROm!2Dd(yT< z!eJcQ;1IPtQ!Dqel0U>ur&^PxMdWEy{oA=a=*%2*%Z6qm+t%Z$rcdm#gmR@J>8!SD zrS_(2{?U>qF4d2ah>MG3g3mP>74y944c!V2-wg@XANw-6z!U!O0OXWbL$3>@QC!IL zURXg(h3R_SJaWbAGNs>b&mvLq(gVCsgTDdD()NCh=J(nShM}XXDw1y%h_*&~WuSFy zc)X=LR>8p~(G4N4mnYXa)QiayvUh-#qzU8L^?A=Cw5NjRxfY1FUCs%D0(_Lp%F4&L z!uN9Ea$4lpFAMI^bxP+=;Q@?4Q0_sY@d7;po-esh^R9X=5$J&J_zKfr&(u36RIH7$ zYLgg}#YaheG(mjrCHQ<&6<2_xe}XPF5PxWRbGE+Ht<@Xu7(8SdP=@D`!QND5km^~E z6~vQg+zi}tl)P}dagblc+Sl8g&7a)9Mz1m`%Zno%ACqqq9yl^|!I%mwvJ zV_dRS%u{@_bv9`I%~p$G7S+k^x5KS__pCp?k}wPaYH26dtR0-6%`Pzuuyps|;`Fet zlZf#oBLL7cc1@7Ui*4ep4-W+18)6jsK_oCe^Xk=_k8IfV2U2Kgvr#atJUv?)I@1OV zQUr`j(KaKWi|P-=%L)^xo-bDd(PGbyenmwIHuMaSjvqri zFnflr@O$sjiE1+Ea>-2a=*5p!(?iD`-tKt%d5cckPm2c>TbVoPkY|J z;!KDW&~&$#00!BBhk=LD*5D|{A8cjEzmZ3N_^%bIk73l*)RM&w>!6W?MZK7eA6N^X zSy%XD0@*Jh6cRMTyom#eHU%4CPVU+sgmAn~Dcj^?}R9m+}7t9HhPvpL^bfg2ZMS=FQ^pUs75rk2enCP{%DW6JZ>U>bpIVn<*YlATQ z#VCPRi(V1D1IJ+hKg|v_V6#l@kY~+}X%=XWQ{}qf0ju}lZ4jugYAig!ga||upxuAt zI8Z!8Mx>!5wQ^3*pR}8Jw=-U12P;G(Q_0?nU3gqZL36_f5(gNRoc@X|=O$s^fz0lM z+%)lf&#CPY$R}%veN)J+BMk4jb^{X2G#4HZHp%+l7&*jj1uR^Fz+2QDByE(WSgeP_ z;}GcCnbUyQFWb7T_ynzPGHJ#Aw3(2L#DhJ(0JjH~YVG_C4xn10Vq_B1-o{kvuH;UA zsh~k^Q;lrU1y?(JwEgkfSV;<1l_h;O>(TL6G$+^zk1$J1VG<1IRjw&bWxif$c;)yb zXKB?EQ(aI`-rothaacE6rw6qE-B-w3l9CzrMpz8g&p!6|VVeI-#3CiHV<6yOBC#U1 zjhTmn4)DIC`y82=Nb8S@noWA}GE0zCt+b>>*<%XI7yc?GFV(fzp#z;eKM30vt!9U7 z+OD9uSjoZP5Q$o?E4{PL4|(mt>%MVk{hO7e9hy*I5N*bb>+=3sSUMBFskHz!N_Boq zau96K*dNSmO<6Pf-{$u@EYI>H$A6IHHy!zqqu;sLM*nMx&uHZ*=bgA)HbyG@SL_1) zoD934duz~QS=A*XYw&9`F${m8AZ$y%@%#PYT6oY*&k=?OZL zC_691yyS&0?6S2r=$oL^+}j|hA78O?W`vYqG#}QyCGdLw02$?%l*YC9)%Jd;8TPL| zg{C#V?X7X1Z;=ZdktKd4sAY?p)tP&D zDwyy$BviLJaAR)re0?;*PBc?+$?6x=J`=Cy?Tm`bOz{^jCR!dnru20o3-7JfDPi2^ z53O-c{#(Z_8`B!|6di^fCr>7s+WksD@_7N9r2ueA1jmOD3V(b4f3?K3sZBrze)_Q{ zN*|$?#McQ7BpApA=TUY?iU9YZXYFv#WB%wRStaL|vN4X0_B@ z(Lx+;Z9(M+wNJ4JY1{9wK9kU+r?6X&ko8HeHXKf&&5};y<_8n+nt-Ej`~3UdOtVh2 zwZ;0q6@d;_dd*O~1qDAxO|?8lrs?p_piF@@vFq5&NvN1StUn5K;MrqE^# z!jDo=Rd9_~9s&@6n`a_oq)TF|-5}*#p1$`|;`KYSFh`SMl{W}zz~Iux!2KRmS$voV zMtVFZYVo7|s7a=|LSypMcV=J~R|!|>l+f!FMxBpWK*w0g$$F>p<5Gu1vKZ8m#~`N1FNI}^{7>zges}eFPEReq?PIY8i z*?ZC8cAHJlYvSwoNasorx3tgmxPk3FgjrL)jeo$fkpI;v@Dwax0-2YkdEl&bmmw&O2 zmi^I8kPmlp>VG5mj+rKFw|s9KQ=g<1XQYJxEJ_^qv( zERb1n7B#OzQKd9+e+liqTiPVWCa%aa7DMoY5zKA8Y^>N7sm`XMkyL)yTxEtwLr?#a zij(>SMr?vKL{{o}X!sW#%}03PU+B4Co3%4e4FWRwP2ScjV+Ti+I|xa>HP6c(nqF0! zVj@f9;o;FX_xJaIzqacJ`x{*5lj$7bc(+pL=Y7Gsl%@2>KVvzX3PI|I6jDb=!+cCC z%WQnzW&yCcW{AtG!!K*hy(Bubk9@uJ&2H~kq->5}xGeRvuURcT?M>#KQ6jUdg2{C) zBuaez&+i)eRCW?dlq|D$fz4Aa6fRWgzTFNtN12GL{U&7b%KOyN?A9v;rA zXnHG7eUMPiNm~J`QdhY?s8U~UxNP*mWIkP@0~dA|w`2c&iH0~eD-RFEgOI1BrX!*_ zCE|&s7&ut*yOfp+!XS~an2cMG$6zg4i!SPtRyM3|a=8^{+pl*skh%Pnc)st%X7y7b zbaSgI&014|TH8D3>#+g_9aY*0!CEED=1*UD%O)BB2i1B`zQTH9tY@gc z-gcK68ee#&{^9lpLgm$NsLK2sf=6*I5iSm09_xu&D@9c;1X^2n_T!xqNpWy+49;{c zK?dkQh}H%69Bst6x)%R=p1Q`o{(Dtz^-36I$;$X%L6H1>wK&dvl_VBeJ|>>M>TSm> zOl8C%r@{1B(Md@m(cLW`*Hm1MS#@X1eSfVyHfa0SH@bJwGeaR{G#Zwo%0?o?lih{!HYr$?e|DvZ)i5EgSsFF z?{hvAqXbKOk$s;r^Txb&iu=_(B&V?I?OBO74a9xZ^YVNlHU5p_-Q(b&$`f$j`_JmG zFljvIx5JKy8TGSUDqeq#o|epmez5(?Sk`TG>niisJZ@BZv@dTV;o-1skC7!`OPdvl zr|Vg77)-@Pmcj#bObsfacFuFK5~)}^g@A)32Ozb&aq4(&yF|L{HwosC_m;rW<9D@Y zVmvs;f}`R2!*GPbU}KDT{<3?kymp2nL1@ni-D>QwOsZq!_M#XyY9z125VCIviVW7; z;|PXET*zGCh8twlbYGJRQu-lj(;f7uGK)46Q$I^djk~^Aqk?TP$H!Ks9-p~g+O8fh zHJW;CcJGtw4so7@`=!f>piE7L}KG7a&;4ukS@ zf@ zEPkW3phyBrL3*8FyNwT2FL-Tux&3h?S&sxOFXaW5+s1ldPmc)$$8tMs0OB*% zm2&C!>IsgM$~}%M?th;$V?=&(K?iR-<)HZ@j~EA;pa9AI?ymVi(_bN?bolVYf2F_e zHXa<)In?TS=pY&qlqP&%+t{SeWy$NUE=2X6F8$y1C+mw5#j*d9|5_K$=7kgZCco@z zQZ{eaeMG7>-qjaa;Za)p%w!)?wYhkqS`{2NVAa1mwcYL!G`MRjIllh(DMN*d7fNk` zvz)C}Flxbx|e){rDAH)e%6I9H2!=!;?v=9R~g zT@)c^+)?<{mN-ojApxbN%Jkm|TUuW6El<)-zo$k;J&GQqMdh4KQy#KcmifUX~ zpd{k5oJcYyxh*NwuiizI56qYx$!&X{P;a;4dZ$fA!1__lit0ze3I)aW@v-d_#=(7Y z2x0b-}2OK_7`s zl=W`2DnW}V38-z|2l3^Oa#7p4gtdc?xI6V&h7iZ`Zf=d@jW=kwQpNTr6OVWwPYbeC zYmeg<0p7zu=@!RcmxYv$7`BEMo>-0;X6^vB&9<9Mp=EETn61aRMrSZQ>dsz(Fv8z2 zi+Ema?=1<&>nx*X01BkwLM&u;b3IiCzb!9^Iit&>9KUKCd|*Qmhq#E0NIY@u#d_Dv zD)Dh9eRJ+7i1Sy&8ybqrm+UF=SI|ZLpm|e?Iqj1N3vU|MC6$t|VoWcAUhnns1L6kz zZ=jiq-=0iW6)AYSbn&B2cDsR_ojuqUvpte!w)Js!pC7k}B2?6<34VjCtX;!{Di2wp zJGj4!lSp|zVL~{qIW;w9-;KZrBjnj_UK+fvHu?tPo3_&=0Ypfy)oa6m*gbM@RNz1M zk^tJvh)rG=22I-tzX^Z=M}h*eNb2t=WirLuHnG=YNs6?@d0WY}^qw1RH#JV?*y-ZPwRxMZbz=90LV!);u9An?Q*im}-0}=RF zAr%-e13uKP?`9Gt;l6o6IPlg4qhnqr8Aqxc5h#HtKu0Y>n6dTCb+~skm*Ohu-kDnB z<1}*eN`_Qb67Td$D!B3$93*3FxQ!JoBn7V8f>qDvp?s+0;`aQyjlCn|@5_26pEM!p z>f+aqj*rV|YNDBnImVL2Dl*^3FsN5aKE-dLMrf#w`ie-8A|mubjdYj<@ZWp5s3E4A z?@%exMx7wi@cJN_oSH4z`Gj#@ZywnCGle zy%aiJtqsh{rLpbD#(Bp+SH#>@T^=fFw+b3oy!QrnCUGY`Tjv$v9GQ*BeT}`Wl{->v zi)mCXq@*eh4v0j|(>uL@hYjvElUyMM2^8}Klj~*SXUSjw@s5JHg}W2^l93^)Xv6{e zp=2UL27kWr=2yq%q3{#GWh>Ib6Pp%J&#WKW2gkG@$nAfx*Co)mu(st*$AV6qed3%16PI@^Hd8zx3_XvUYnb5XPcYlgUBt z_L=ICm^eJv=%i={8-!G|077b9L@(s|8>91lv-fRydzl zqayB3O&su8FMDv@@E+bB?)P~%gu762f#*DMmGIo?RhJI`Ek6e7kD|`^N37d4K!PPN z`9ZtR87?5tterlUMe-)1g4@{A92~=cb#A?w!b5WMX>tY*sG4yCboHic{uuzt7y#>+ zgLZj#3Q9`Z$u*z^4Sw|ZbX>4^&>e_Q^ba8mc4GU4A{DyA^DiA-d&Q0ZrDkH~r*GR?!M1?N*z=;@_XZ! zUfi6T{N>uq`~ZI`I7DT zN*Mg0GpewNJng0|w|HOG*FEjxo4GAlw-q-hW+7=JNfkaPS*|mBL@cwCfBK8c2XVZQ&suHzxJ}pc~*Xo?}KlTvR zaV$mxjj$z*QcnLoffVF4$+9(=fgt^~ad>w4d2Y3)?Wr0lA{@_M<|X-4&?&;4c7Xvl ze=EEG>nk#~+{Uf{%9T_EQ_sr}qhs}PFt4Lau+A)1Aa!?*nsvC9oKh{9$$eTHUz=y{ z@1G|Q!Tl*|8)5nKL*34Hwv0-A=tbw0g0c>MU#hz{()}GF?HojP+=El2CFO*TYF8PY zgZ}?p=!@)MXynKwFo7bV3R6c1_~1}lLE4?tUHwNNaHJZn^yfi&91R2>k(jx_;$CF< z7d7Y)ftvCS?o58)Xz4ZU5(xkbB_3`ILy%fWiRMw|wNqXWxPx8?bUsTBi^>+vP3ji~ z`r^u0CNNbaqkp|mB){iaK`AT1hJ=f-wdZauV*am(Xf5%z=#RkWTZsnu<#w9}C`bq*oAv7& zm$ucmY8FXEfC%2+`=T0b*rQmBAhKXN!3syx;Gp#gP*hF$K!;|A{w#}XxFF0y6}1oQ z-uOc-SnhL71p17AYF8aT_GtbF`;$VYW5>B*qbSm>$ z#N=-K)34}!JHDl*m02Fq*qhP}B+?`B8FX*ef54fbSMBXR>jvo#*|$I8hVM44SMf{z zqix>~bqo{y&$dGu2b3>MBz!-Lg5Ob9N?M)y@-XHV*mHRNf9N@cZ_U1k-kz4Ni8OL4 zRO=_4NdG^yy>(QT?bbJX(?}~Ix@bX>Mgd7_Nu|3(q(h~<5s{EaNdZ9?(%m7F(!J>J z?))x%_TJC4S=X~cc$8aokt;IdBYtH#AGe$MfV;kosImZq}*g54NPxKtdL2No| zYrwVs4n?gmv z9(6EBB4kXwlTp4j(Uq2|XhK#>RChGxIIRyZLB~n&(Ue|0^PLcda-tpn6Yi_Bqkj71PcrJc?S5nWd`<~q7g~_?VSjDy9}yWr zi>J1__WuFm{RXCaocG}JGO7EVS&Ize%KSiD%-l!uW^tg58!OFv_0)Wwfs})OiQ7q|Y+t!miyr$Pj@z@7Pu?^Vm$W=nj^A%YJT^G@&nnS}Qc5dT zu~?@Vnvx_V$3F4K3p&R~S?vI(8!R)CTfT4XXU7EVi%5)IZnW#w$V)qZO_ti+8vZL! zM7rsPwDVD#v7&Y%CAg|kb<>h-i!ym%qWZOUDBmuzdXoxt22wt zxm>O*^k@(P-xA;-E$w$b>oOG8#?^h6RPK_so|E-4$c9B+iWdGI7}Q97i&2lSGl2iz z^Q@G~geesnubmsx*X+I3sI*TeN8Ncf`z^D5t%IbsJwlOpKIR=tr`$>)%F6^^`Ryp7 zw~<{>pMNU;i#ATw_S1rL11omNBVT9r!^xDYjprgihk6I$YIzPz3rEo->apWHt#iBc zqK+K^-X6?@XdPO;{Qaxk-=C+mXsEJi&_)|a%bVLxe)~8jC}%c)8cR2yj6d~&_{;*l z*v>Q-6Z_+MwRfR$|C@t=;cFQ$O)9$8AU3WHa+bK@ z??@@L^uDi5T!nhNi_-qGC~LfDn2F`_`OWxrtbaPvUjBMw3VcqKC#!J)&Moy#XXym)onbCuG?GcJnpuZbF>U{bg-&2Pcr^rt|OjP5i|6hugnH zgTfq3Gu?Sg7Z0$&aYbEWV6p z*3gqp(D;a!{=xO`3cO0aL-aIEs7ufQnjV=ut$@QL6tHB=Lo5F>C!&k)-$2m&)DcHC z5n~=32pEa<4T%-Wxhip2N}yhQ?e*4A@rxhvwC6JM$uqCC-B46fV%^YeZfk#kN9u)C z49Y@AU!GEgTd`dcW89wH9cY^?RIprkX5=2^m4H!M)PgPoDk3*`J3k}$&yqT4B`j4# z4V2+gx6N9Hvj5fX56nsXkJ;IqHoK{{-lLD^8~FCMwzn%1(^MYWIR^M{z8RE$cHr?^ zirhRph_<;!X02R3sAHKbkGM+>h}1p~b2dFKw#d#2T6yStwD~NAuDSX1{8pMo$J@2o zRsbt%^8y>piMGBH3$=OvlLCOj--q@X{{njw@EW*2vn?<7eU|xNHbv(_*6ufK47;$G zvQEVGzd6NaKYpY@*Cu8Rec39EAWBfU>kClL_LbUe1qBC3j`o`v{Se0}!Gw*vy9hUZ z5{IX&SAUU{PDsyuK!ssaxg|8JTPX5B!Hj*pjuFSjrL95pOY^PS>kKkDS*djfF!{_I#q_WPzWTBf)eF4%FEc?b+xl!h^#bZrq!6WBQd0D{ti<#U|v*W&6Saf!~`N`Qza_cXDla83( zUyrvYwq8ztaK2N}E6nWk6X;wcDRd$f3bWvE8JDgaivp!ws&e1#`oDgBQKL?;$){GE zP^2)KRCp6yrWdkzXxg4uroNoXg-7nEg+?^gacfnkXSApIC>b|@Sb6L@$2-bDXQ6S@ z4m`TG?a?9G|LFBZ%-2mN)Z#Ef`;(lGk{OW#c-XC!JTRVMH9EPNst3UH2U;=FWvHmA zDD=2+89kibV}Q1YeUP2qo8D-sS1YZA3kd_lz~7gUcK{zYIKSo|w|0AjkLbee);0+- zF}x6cP@3=+#X+jiX0|8ya_al(Z9EuWYW_Q|G;`^d zly;srJtKlftJL!2-+86B_r>?^CIkPI*GeQ-fOK-sP@%h8Mh^WL9XWdh?H=8u|3WGi z#>D)i&5p~)E zVzj9t>6RiBDXM?BT8Rjc`!7~2R2v_D^Ll^$_|cjpVf~v`>Q-!D0^Bv6Fp$7i^JjmG z$J*#HJFPtyI-LsOING<3@YZWLYCCghW3B%GZRgIjlv(q#k96&Rk%^v0vFS%`dxaP# zjoRNG{`%!b`lkMU>Dw#57?RR&3itWf>@*Gs_WHQkWz6<3HlhpXs-gvuyh<#FLC(`A zbDNaZEfPxB0}RIbQBpagZ{H)z$50CAytFo*>$YJdqhK9>Yn}FWyUI=?NVewlMRyB(qZ(EwTU*6OP8{Gk=XfPNQBtv(3oR; zOoz=nm7HL)%21vb3#F_MYxDgx>X~nkwu>Y00|Lk8NoVkz6Hc`+s_RgF@7;|Bzu=a( z;w6yL`iwMvInu1qy_o@kvAih%tudE0H~*tCZ>W5;1-^oQn^=m>R~`({1JGu`tR=M~4d95!C;=7f1J<*}i8;hbQ~>4Qd*0!gT&pdS;=^fw`lu zhh9*K{XckfWc*I@fD30Bh@-Avj>v44Ta7SYh9t}G`n;@gwX40tGg;!Tg=rF3DH`Ex2R=hOM2>Od0|9{;@d+z;t z9Rb4=;Q{`qU{gN4f|ek4sarh-)U8T_jLR>s*?H)6s3$4<%eT{R;%c`4bqeTt^X`47 zL`z~QFPU6j5*=Cl179dU{;Bo=)j3P^C=sXg+O=r3H!iT(6xb#K@jXu;M=0%=f~UaavbXP=^!NGx?q=1N z_<~T#&&oR?;>ACk=UPZ4QP^WV1JpjYh1ES!n{r6wKWZgp_%00>``$W@*D^aetH)X` zpT+q}RHhG;7$6qUh^F0N;xnt$yMAYD=rOs2`qWX{h9N0u-w2M7e4*m6yg3yV(YiBS z{gC)GtWG@Na|!Q5=%6*^u2B4>a!6evhVhI6{&INI{bA7f+p`zc7W@i=dV|TklM0Fz znc{~wMR?^?0>@hP-!ysebb~|~!WH63#Ie`;e>8sDzK@g8^Ci!{IHc9l{ZgO6I z<_Dkb&_U>tq3!dEP~O#tM?I;c3b&-5KaZ-cU@fB)|9FR87apts&@;GZ0mRqNuCOaxDr1 zElq(DhAy+b-n&|~KIpWtlPIH=2Z!Ta)#oSfs1QL&__Z=ZX)a1hmcGaN>kmFTyZGmc zye0C`nw@L9n3AuVk||$$m#{*{YIsTcv=27c6KhL;wOt9YF*^=-y8ttIEQG3qk!$EH{-gM1$V^ip_-#c;M;F>8+b2z=ieiiwn?*)NMG?J6@r2EY z;Cdo?0l{;ag3Toc3dDg~-UU*QK*9wMWI0u|MV%9fpGj67qiYVc`=O4vss}@xu*` z0nPOs=38`KR1p352_H4Nkj0)9;9c0CDJSvbIJ6Huz`>uIKz>WT4;r>SV?=m($`Jmb z`NfSglC=bcH{zW=3ObI^uNfH*6zI2?1{sf{6_<7L>Z*A(UDVRyY^hNaw$<$1Tt;@b z^kP>cqgI)93FmE!B6;m(qpIN{Q8HxQd`iyvTWTLm|6=lJ(CPjPjm1#TM-cOs-OWe7K6`cRLcZZ{xZ5cL%GH) zoI=Rj&mowl@*b`qC2p7xrQ80OZw*lW?0uQ2xjX|%zfqK{JzY>BwQux_A*z>zq&4;` zfq_ojBm0BE>HO6O1jRH_Sm)0gM^4a9p1!v{dqrU`;)}JyAC4DObc% z>uykUHuU+DDHz`)V5mo*0CJ}`Fe4%+{zgLuyl~bp`mY~Ee}Dh$zQQd(HyobZ9xWBA z+U|FwBEPUS-XZGE8m5PY#I+mlXI{~#t(hb`vOLYkbYvr_%UJrr?Y-E zn@G|0lV`Kuxhb_=0#@VV9vqF0GEH56?>=F3a`Y%tib$TDr%IJj7bqz+%12!Xg-v(y zZAGcTRZ|~uEOUIZq0R`GR!~sz_5zG%ksE~Hd&#ctuB-1gr=TVBv79ILY>#|RYnf&U zb1gJ%elLjv{YZQ2C9ZzlyZsQAdYOOu+y=M^xE!qdM*x>VG~J!6?Rq4S#a72DceRJO z$NiYG1RQp0PaSQ}P4fv_bxV-K1S;M7r09Tj?P$uA6-X|O^w?j|imB9sgf?fURB`2e zFYlY*d%Y5O?)6j?-8Ap%%I$|e|Lo%+R0CC^oINR~-yYSbsz;pI3}zFXtMKXiVn8V- zo~2Y4!D;QeqN)p?mTbhy6)9MG=334Jt~c`&-{8V-?$KD}M{06;f(N~N=O^jz=c#jX zhs|P^FTHn{Ucc#ndejP@cdhH^97@Jw9XN)WbE80Ha(q{Ihl$*4iNX*tE$@^u6Pe0< zfkKG?Ilz$3G{y2lI9@boCa*!FL&o>6)f_AE*0LddfeTK%%^KGQUq`*zDFKJz^NW}k z3Co8<^k(RpoIvFjC34m`N$TzMJUwS%6;W|av?mSg~T$lBXw)Rz>+xBd9tH${( zmyOh*w~nHk7Bi1g?*8jZx)+HvmmP#*3?UkN%tH7HBkOrlfyr(f9E4lPA?qVL)SM;u zZ)VWw&P+Rx_ppxKJ)NJUL8`=E&+tEfdOG;{BvCPE|P{G6m##&r!NZ`~JYK9!KZ)vt8_w$;lWrMz$Mqba~H)#mO;Kz2Ug;ZqQh00`JCfNM<0DV9y{weuxX5k>dQjXH6Q z*d4|%HM)%T81y;VRhP}SR}HD>TX?@*deu=Z)xV8jT13VVGEuxACqQ-qC<^pdj0_ywJ!eZFG5LyWXZwH^aLS=1X-Ho;T1y2xl5 z5@}iZbvb=1c?#5`w@7biA&5%J%R*wsN4PnTzt}Yi9Uw_Er5L+oq9HwKM-P%#$PiMP z1P7)MxD1rt7pGAvOJYQqtJB_XH5V2>Uf{pZr4&Gd6#b}#UfH2QImJt>^_jXB)7*?; zr`PzpLP^*CK&1l2B-w`tqccy<6EaafY2v9jfm_ zt*1Z)#RhO$_FN=5pMr}>AlqJ`-X7&b=BF~2L)rm!HCxD8Rt&z@%ofWM*FExA7hM7#WW-!*R6no ze^2&&NGVfTbWQ=&=X(Y)WS@V^A)g16-^fw3w=^t~ZSo_J!rRGwq+jpl0}{VSu`ym? z;GImic6X}@dlPIz`VAB`5XF;$9wf+SX=-Jj5Am*O0>qE-e48Txzo7+`Puvd>mZWfo zhaB>ymnqL7T-8+%@7?zhET_kzi+_j3)q*Vzaj{UN^o#=-{KOs31ZEW^c=lO2nN)uf zC9it7alB@yzIey^=wKMDL>zb~!%}ZmE`(t|dDn8g0n4TH^RG!HuTLW^re^8YGY$if z6KowM)tOOb>jqn#kMJO}K^CN^u-E1}qYvKv8WcS01y|?5K_Qvli_xSBr;H(8GcGQ1 z@d+1eU>kQYV|7*0{Rl6@#qKNZ*HYo&R=*v!jwY_jdz`j0yobvVFo2Hf^cTJPXAV;! z{sSgz12-(DYGWJY$#IuF0;;br6Y~q5roHnB?r`gN37jEmAFzaj$LluUHtWmIxJRZ> ze_w67)#?|%D-&myZ5@2*T^C%B?N{eOe#1<_@Xb5rVzL4!=;wqm7SRBlm{`5bL>w}1 zg71N>z2L@gn;8~&ijbj8cIG|pe2W?5yo>#om`Fd#iru6uY6DS*fbEt2icP9794FsxMsVB)F>(&6FOE;}p+v0(T(gqw2s#+(v}G(MpOq?Pay`fTEdK$F|o z*VogBN$%+bpU2!?kC9=im=DB+@*9&fDf!1r&_mf5rXNA|bBT1`!MB-x{IhuWc!>CG zSH_nS8nLW;UG|IvFkCiK_dlv|I{>#m7ip`oF$^7Bz(Ln(#K|JTZMO|=DdBBsC1S=z z@GPEJ_^T+FaXS&O=QYd2V-bXliir`zEPLKMEI!>%n|X_K<{e#%`^yYO#~uSa7umRo zs?ACncl2HMj}GTJ)vMX?b%(Lr$fXJ>+s#9Gfoz=omUem|CvtT(Fuync$jhDd#dq+A z!vwAQuC8;@90kVTbTGG{EIC%Q*6b^K2!N>80o%Tmr2-qwRTc7E(O=pzIKFkwAoFP9 z-+E!z6Z3>uMaakaumzs2w(wxPAniGrDL_ebj2t$?Ls%YaIo#;URdB!?*;H7P0M^^O zPBUmc8^!(WS2z6hGG?yAepj9mnV{2%Jdl28`gV7-c;s3nSjiUaJVb(C4yvO%b7G|I zN~)j~I^kmBMtv82I49vt+$A8~;lZJvk09O7-FxV221+l%Ii#qoOG3#P$%|*LR_Fyy zf6`|kwctn=N;ugSi!ZNq+ZS>M^2s$PLWrBJUVLYiL0y5<^9c_M1bWim)sFP9*V?ySkA|J7g9goRhHtXZ_4|5NRFU&ypZ!jhk#IPfcfin zcK8R1rPZZ&5?a7@NvKr zh1(kI#gCk?n;f+TQcn6NNID#LZ-+UT^S0UR7Vwc>_l_EcVu?Uyw-qz2cSRH`@gxVv zv-4x^^}?!6YtT#M#CKk;kiAc^r*amLTaW{gHBYYKyq-}J`f9hGxXXXC5G`z15XZhZ5py9iuBo1zSxjiLtxZ#m0ij2Iz&hYR}ab zZ$+Y5jGueuXqL+FDr%RaeO>T&L!F;ZovlGPFdASgrJdM$|YS0b)8S}JU;35Y~!h`YIQib2P*Ht z8zT=r%CJ;pY}i)ZItd)5m(rs4E{|;#7fgnKDPP$}9=bCHwcWi%l6##8;`ENK!0Xk$|Y4&9dk5P?fe+2I|)GO(!oVb2^@|g7^ z9)wM%v^wL;U7-{z_d zt=@|@;BZQ{I_u}XMWOJgG9`a+id&nno0*zoiF6Cw^cy}kt!0sLw3Xij1bR@>B(TAt zBG{^&F-hhE$(0O`<&amNr(F+pUsT)=iMLDNP{;xEQPr{$%D0`57#4idoTKAQi%hy% zh%jVv>pwgdOzD{XCLZnG=k?YG13GqYCTK-yHtP&-$1aRS6=-j}yK` z&+u_^8MW2VXZjZ43 zK7w;Xdc`H|lsLv1BE8!z7RpcMVYu{b99g?rdzq=G`J!FO$-mG*GH=GkB-LrVV4`PI z-L{B$ITG}tL0CWg=iJUr8Q~{o(ui;+yCOeQq3DT#AMsxXjSwp?LmJU3sjVa`csCJA zk8xqJFcAV}&)J@7?DwjKtLle=#`?mfb~^+0Uku`xd1LH#(^kEP@?QhDVh!p2Ce@qJ zLoo=d5C^?Tq?ix#WwniA$E@x^OIhV(bbQjz_4f2hZS0}0UldC5J=<#=|}4~7m&Di*(PWL z)ql1JW3@5k))6T*EehpT9hzs%;6P5IA;SV1t01R75YqLya5^aVynZd`np)dXiz*rp zl%rMF^=k|7F;u_IBg=h!AyfPgr+S-dRH0gGHQQo-GM26lWmuc_eo?IoqU^fTj>F>A zYG*o-55B~4c7(vs+s7Z!Es@>jvM#T*m0q>@bT74GJN(LScV+z%K|MUx(g^ZO`OE;= z_uTHK=v&aTy&dbQKpy7R@!CKe^#SHtk8@tu!|0h|3iu|}n%jLi_;8Y?=9G;2S+I%p zM6G!Sh?n)cV`}%JkVBfWeSSnwCl9<%);s~@c}~N<>s6r7UGrOsCfU8lU&R)@Yr3dK zjJ~JZnr=6zF=LLYW^SWaQucRCVoeTfNgm3 zxZB<@MZba@OZ;F1LY#1XGYKihfX2#x)fbF;#a0iUDMKRV1S-7NI*&a3ki5c$k`dwj zA3Rvnna=w4{mqYj1pWO?_)Z{ZNZraWJ6?Vbyr7jnB&UZC_JM|nV z1^v|Aqt#{p!uu8H-8ftKDCUT8MLVUGWjPei5CoF3&eq2-iB?W3Y-y_^VxuUT;$pwA zxg`$Rm}SC-sS!;!KWDyaf-#7C1Bc8|elLi1C$nt~#=OaoLKRirw@m`|7>DH2RlXSZ zhe1M-u*)4;o5a7DnK}RI%+mxJQg1{jRA&DnM12qlxPIPVA6#gt zcY2IIs%?E#>Ec6yj66=fx2sO8QK;^hR8^kJEzVFXtsmB%;X>SC96Vklk9`ONplt1i zhgMewQ-69cSs#L;B8S)jc_y>k+55Csa0{}iF&@y=|-wIuLV|zg!cpfe6_-n4Yw-~*%w>ynDp%UUl&&kBKsacA4{9d5H zgggUsW3LQ}Pk&?+iqTakernm^@f46igA(eH^({EgvFfu&lcgjD?Yf3{eBleryT`b+N3MhJb(Uyh*v;mU5KbJtH1_QPbmZ1zb;IAL9%;2 zDY>c5GTFFY|BJ>*A>RIFElK)xQeE@+@1Iz@hQdA5b!?5)&< z#JKK!+K{GWk)Dx3%=YdFqY{qcj<-rDVb@){g7%%IC3ZRO8(T>}G}>9$ZRP3T+DafZ z(LtFs_P;JB9Z*cT=#bM9dhW{(u+{hg`v`0~r&XdNC6z`QLvoU2n}MZJ-QbSz?(7~oTg*1(bA?3v{-{XO;fxOPr-Yb|J`t=BhiCUa^*4hPB0ASyg_+<=5FaKp1FdBUCl^@6lft2;7X&=DG%E>It`JM{*s+Ar4*hm&uPSJa;SIRXgp7uX- zkNV`Ni;BFGL0WHu>t@9+_=e$8dT5w4YLK1y3X0B<(=hxoXEh4s=Zw3yyljzBnsY<~ zVpx9)52fJ-=>&c$e5UGsPuEuj1u;n~?QE7$&@<_6MUom27!r%lUK!%-$&F9}TOyOs zT?p8c-tL-@^IEM)h~yiM$GUehxl_g@bucbF3VM*ddoScTki2XgP&e)x=BL2ea7Ujg zQ+?y0&fHhG1E!~e(B^o*G|$%L^NV$Mo~`sJkJrZ~K!dqN4!L3KGbVgS?K4HpsaLEG z>7AHzZ$auR+-eRbQ*dNx((TEC63>yocfz)3>@hBsqgylfOKWFEzT(sl#MH=L9>1Fp zg}qk|-XGV!6`Md?6_XRQThe@8mm{G239T~p*LonEKWj=3-`y4*<+V{3lWpX>qtncNT9j&)mp!I9)+~WK5cP zAFm~<;lbCpwhM`}MMLW47ODGPo6P-s2`olacNy2NignEjDBJ!e8g^R^a^rZi(W>3<57pfVr`eEXk~{7O*@jFwd>tNT65M zFnevFVZk0QhPz0rFJ5y5>oML^PHPuh;lv0;*Gn)u_I)CTD8RX)BZekaQP7Cbrtm~k z`8@;L`*yQMV*RA`IaIwtponq{=#~?p^m2UC8y}$akJfUHYnS~G6Xa1t)>PXQ$0&9z;9g}KMYnjT{&knEA5$Zm{XP<2E48HGEI znUi3fGWH;V=e_>eqk=uZ8UGbKzJPo%Hl{zvP0|t75M6@f2ns zwB5+$bFos((MBqT)FEgUZRGTYkgGANn6Gi-QJ|*D;j`HReab}Mf;H1EKX;85(QT^_ipyw3*S_b<@DX3L4*mZHg0)s*B{!_)J|Q zT$3$2`|(SVmD7P2aW*qVu@SY?ca4~k;aaUJgn4L_%qveO2NWfKFY7?JKu%@@R1OB)!|w0SY2LPKA__R zLtopfIC(X1TRUv){eI~dglO1!InHNj0 zzp%9XPId-g`aK?=ZF$mL%^ji-WJ!@f3=?!J2@@B0BXNv9wj_qs&wnlzR#;S=)?Q7z zFD(1RY56)VLkgNj7c%o+VBUe2KTqiy&dyEGmnjM!kr1|EKPX35QJ!t*O{>?b$rNFD zVoiMcig&H&hm{D}+dO1qN)OG^mZI}SBXc!2e0zC<-_%C_!ZjhM+_)`*N3xD*HVH_% zSnL^hEA8!e1#fNzLP;K{%-r6BKPU0vs>~vnd}s5Aw)e-7pi2g{M3=@$twrbPU^cmZ zd8R!EwnR&}hdcAbL+aX<>Y-gcnun|iq)Y?W-1*xb+cOuoDrF)I5}}>3I#q|QDLYNZ zE5kDPSs!$(8OhLdym{F&hE`Z+7e?e+Cwz)aNkwezsv_VyFEm;N*A7Vb3}MpQE}1Vm zOppkpc)Faf|8*##;620rPCkS9wGP6l*;&JkR4Y>bh9V_G`+@yFOj1zMQPy{|1pcjE zbwPzL&!(=v41r!HFNsk1#z3-r@!Sonjz8|*n;x%vPgsb&7@wgbJMrJ##6UN?cI3hW zmoANBF^G|Igr?sMm_H-$@N+C%-g(58x|cVFa-QJro;qaeb(iG!A8XNfm|)rP@Pg`k z9}1)Z`Zx{Iyau`$&Q4WFP56R2lQd2?#L_5}FmJDkwfw3(E2Ix~{j0IC2nPJqZ{mO- zO&QD7?UnCFCjq@H`4txt8=L=uGSVwLe%0fO%rK3S_f4hp7SI8*<;8=Pn!OuD27PuJqiZQp1LEm3ZvL>iO392Ldk6mXf#VZ5dfl zlxI%fhy<)>@BkJN#YTxKss0N0qQ)S@cp6B+?2%3VI;n^BGg=Z*X5_$f6TSP`)7x9D z5u3wp5zD8_fA+eU_yn5*b%_H}!9zti#tAp3EfO}mN@@5ZA$0?U6PR?bYtQj_?M;#4 z?k|*e4le$>nf`My}>i^9K^- z)6K^v&@qtEIN0NE|2{jM(~feB=!G@*>n?(a364n*vuKew^@_u^xSr6bDmjOuHc@m>3RAmO#2;XK6Y4d#{5*BEjx~9 z0wNEVfxT=cjX&O<_w6?grOk9NW~ErSkbCHA{GRaN{E0!BH#7!&TlOpZ{N~B6sVB8k zAq#skGS<&?^Td0fv{CYl%qopxq3Bz$5BrIkD)Vq0ch!Gl)#H$RLy8P((!fpR_6vsm z51;ekAI?=*B#rgbj0KbxEBcnc5JKsyXC1&2rg^9fb9f*&FrJm_9dkfUgc|pd^ty9H zezw3NgW|@^pXkcsHdeO?+;7$FKh*BE^X~mF$9#Fv1|P385^eAI%aI7hA`+$wmaLZi zuZ}#gGFNR?YURneIqyBQ5ULaMsWLA>zrvORQOw+6L zK&#FUJ5YAy&riw^asGPVIc$xnnL7I&Y+C%@ zgBbDj>lqKSai-u{cHAAa@bncm;;{rIHQ(xkAwk<&P3CTavs&Qq&f3#48*efhNteVe zfrW)NZ~GI#mys-O9cP@#lzE1H>Y?KrCOQn1p6BSYedg2e&UH3xjvSZGUT@XNwK3*t zw;=cxc&~v3{edh6{!)1(o*#B&E6@&YEOuuUO?{MurIE+w`3b*5DQApsx$^AfdqT%V zEki=XjM`FNLqnq<#A}L&_MAfkU&JpCKrpLQXrA~L_I>M3t)6-*2REOAVd{~39&p}F z@pjRm!!U6MuJ&EpPIh18<4)FwFrKIruI>4HV|`thiF=G$4`NB3d>RD?^eb+d>Ia<& zuU*sVO#c})zll`BinZ@6E!wOHQ7LL>p|c-4U=g#1yu(bHQJV2@(XQc~ZoMsuIsH`e zA+D2!lkXu%aV+%(!Adv4bH{wl{X`&Kz|hcEw=70aIQ5ZDG zb8&V=VpU~13X~?RrIKLz{qvI$=5j5s{j>sj{FhoafS_D_a0)5F`B5_<#b-0Dlh@?W|Y5k+mJ*E+&=?y+pJQ$5(0n@9VNLxww zaPVka;k9@__j9W@8+leZuOHF?lqbtPJbM)KO?M%xE-Ejs$u2>#Kg3)l>U({I9iI=h zY&=osB2A;FVQaKFxOEpnfFvbCVEO9-M=|+Yg0oMqs$Sw_sE3hJX7YHQIB4Q7d{eT2 z`|U{`r5n}Wt4^Ud!{fL|Z#rs@+H+R=u}j3ur}w&=cJL%bj|S=PJU{&JckRl);^f%%`h0rdZo{ocM1bSg42wjBAjE1%Qj?bwbJ zF7Cd+U&f=kZpQH}MKVuEz3Kq;Q<3ZJb6gk$#D;=#hRan=$8I94Yy1)z9yFiA&7tiXNj+x%$>ydGsvJt^>l+{gh3Ds9Ia^78L7 zta>cI82I8Hzo~!RJ8ET<{R$7BSNwYT%c_+>FNwVyUIhZf5TEgw<%6G)%}L@x1k3&mS-h*4>xY1kL5zuMr$~&s&zz12xO$mr7EVOx z`c`5XfEM-B)allXkm~Acd82X#XPM@ac=V&i^S=sRm=RYOZ!$ift)A3RGiGNbP8_U@w_ zx$a}9%E&)7;ehqRzR$8_Q5>I%?#2QEOOPv}3gmUbe>C@I_+Yq6Gd*X9(IP`q&v}iI zN4=;@-og(h(V7;EcZ%vIu8H1@EEpIqi^a42tXCjH9Byyb+|D8vS+?(=? zBo3|ALW-l4$FMv}Jnf^Y*)cZc=L^m~S}`LXz%kYYty7Q};EGKa)BgQY%(-jmBQPh@ zCrSudf}hr(C?gJF5^u%icQO0rk-V-{z}vloFGEn_pG@nX$0(5Lp&34Ul{NE;@f=#e2^8z)L}R(CD=1$Q78m(cm{rLv0bo=whUWhSnyH( zDbxs9M1!U+v*9_dr(R!EtRyYTZF+LXMExJzO@`I1nnf`InzF~N%$(iy4a!N09+EVT zP{(U>tP}J1oz=6hv3supfs{Z13Qu9B1qoC_xPJ;M+3r*awQBiAn!A3p<#s1?S3Vi= zN2v_tWW@un`ZPdj7de^sp>}ZhawDY z8@##)6BFZ&IfnN7H;dk=*B!> zvi3)PmweAJ`szQn!}DqxfLR}&BOlsJaQ6rxdj2K>ur&=@M#Tw@ZjquQBS*|g40TCh z(Kdb}2}I=2;~uqnx+(E&k&;}Ilx*jkA9lo2@_$HZreAtWrGnugrDIhx|DmF<#o5zh zh-;INvRcoq^VA&4Wjg!nQaXNr_vJj3b;Ty&URQ~jo3G6`V#^-(s&9vtY$B{Z<^M)@ zb8>RcUYKi{678B@clD%?);a{RehnG>rZR{CrWYYdag;4BUU7)}LHk2Sdg<`i=ctD} z^xu2TKgK076qwQkC%e3`V$b{;<{$5iw&W$aL>o68%nr#1`Qtq$cjeu;+jlfdoy#MM z>B!GdbSUORg09N*oov$q^k|9LYks}R9xLztyp{LuVrPL>n)g36r{~*ZcE|y5#qICC z+k2)4n)Zypxpr3m-L+HHzX|j*=7v=%86S5QPnEY*4%a{8-GCd{uauo~Z-GNKZR~!E z1dVJ6CqgW@;&e#>2L7&6H^w)Y9w90is_B|BF@EQ+{aOXEusE+^zqHf)Cq7ZiC5rLL zw!v=wU|n?ODoko4k{&*l@TD|fX|AQQv%%+WeR2}2($XwwVO%llJ(!9Cg5(t`<9;{7 zu{vsF%3HfXJ<~1ilmS>KImO`kXlq=?43&g_o2u3{SPe?y;=aPM&`k(shw{yT z2H#2+PzIK|UaE2qmQyV5Rnc5`A*Zv%ZevO77B86Vc;Y7HzGM$PCf)GDIt zl1>-}($LU|0Q`b~Vs=zzq}fzU$JAbZjM`#}wr)a~a&Fcg-F}@q_DU8wB?G#hry&@3 z9jJHYikAp(FdO3?7kP+w`4IMjfDyaP3O^XMU5k=3MotU$z$J2X70w zW>G?eC|JscyIeLDGajA)d@{TGk!sT}wv)6>1`T>5c#t^0H<9XL{UwR6>Rn8YA*`qud#MS=eJ(%nE!b3ESqTw@3c8hg_Md@O1tiEXXFS?K+mtaQ&L z%X)eARZ7;JRluJZ6pSR>R+4JocR8x z>iB{ z-4zHiv>9^0su|dD>$ict@R6$5-*-d>utU?hoL@U9r+?$5m%D`>1O1nY*RRddyYG5c zL9Y+#PgL4(0^4Tb-&cz=O;UG^rU??8xJAtIl-nn|FLV~WKeHy+oL5G5o~nX#MEq^a zUYHn#H72y*I7_QeK&AQC6z}>uOY_Z}@!M~#hY;ncuILaKo6^vuYv)G?i~_K;cG5{z z9T2WDCw)v+P$Zc%=3dKv)=00`LgZcgGo-nRMZ5Ym`w?5r)FV|EZF=IVRA{vzW3_yd zs+3dLtB8y+49B!zkM=08rzH!aMrU$(c3(P`-FWo#9rmHEJ2PHJ%D+%r-eXG%>A!Lp z0(E*mmdZQLZMthF8XXq;j}wdRl4A`OXX%~7Q)*i7B^+1T1oXT~8hC;uI)t9I8~1nM z?DI8n_A8Nb#XcFhH(vv1<^MV6OT%M$c>UHLPAqW+e`f{QLZK)R0Tmd-q>bx#*Vc!j0)I%Th}d6wc-MqfITP4 zSHHL(TQ18-F;$}=J%D;R5>PI)!v}3e&ZQwG(A;7%fv3(tRFI2}B*q@n7mV>$&z=C^ zeucyeTFobS{hHRr;cz4!&k*>?(~mp8b#R2OxlZZ_Vbv*kC+(RoiS7kq*PYJ-6Zfl_ zBg5Ocb<+_msbR01x7X$!>Bbpnwg+O5+GX~V4*Ad{!s~awE&9x*w+XP72v9+V*~x?) zqgJii)r9{*YG!*$f*5El5N3;io_q#!1G4qDwRfT;MHAkFcyhcAK()n38n4KVeluAU ze>!RcY`U#pj#Pvlb8mszv15XI)$$&gWSUi&(L%14=R(?bCMx)WL61B@aNZjokXsn{ zMSIhDr8CO~wK8q5n8!GjKO z&Bd@#puFnc_w$PjsV^J!z3`C35ig(=DQ=AO4GGnz8?V2$CDcHsw1Wq->fQqgF(&mj2Wh9SY^8RO^gvtRkd}dL#+BfFVkZJ$I_G z3*7D-0JgEX_rnBD@1MsTJ4a$f(D9kt5%toy=11XvsG)M4BxH0i4!yq}AoZfM?O6nx zyE460NlGzAe9;_ClOCliK(vzmLxIk{9<&O|`tE0YpLct|-Yqs6DDm3am8}fv@N8Ku zRzGO28q3~VRpa2^u9B89mJ_`+NwZiO(R;cySIx&c>3Jn%Mq0*|BK~4k$oaeh?#}Ue zwyM19hY2uFp5+pV{iV|}cyw{J$tc0f&Hi5(&?LdPo!&jWpPR#uH9qLdkZw4q`ntJX znfy~Zu2qO6fV)HRP}wkr?qISZd3~KB+cw#73U*;iAW|}cQf^_VG1_f9+xGOD5O|Ts zB0(%UMx<7zt_0xbIXmYmnFRWSPx_9?+$GBc0gutaKlUPD$m{z140HvTO9~9XMMUzz z+pFRL2`OB~{YJKOBKnKcMBo&8(X&3>;OGOK_jw-t-8s~Dgz$inErCniE+P)37N}@f z->lf43BNz(xw^@Isu(2(M7D$86XqIhHZXIh035+**^C|Oxr-n_Y}7&k2u2|8qbNds zdf?nE-Eq`m&9qmWQQ4GF5&483K*CWL|X4i6Q$5MUxNdDU&St_HDvZ)sE(gxKUEFKlv8794c8@OmvN z)3*fJXKYaZRI<`q2$)Fn`H&Jc?aW2*`hp594mbPd+#09)VjrsE|jOLAe$rNg#lt^xk_X^d1PEw?Oya=iGbl7;n7s?tSBpaqr#Zol)zxH5jF8yfe@l|)1=vmh`6k4?LP5tmR-Q1k8nmm zIap{CSo8NogF=(@1Q$m(PsEU74fG7p$OlT=N@wP*H)acjeib2E#>2gzb8x2h2%|0e zp@|whAN->ULKDkO%SPt^Mdoxo;K!*$7`|i(;Hk0PrQo@ffa8;!JYO5INk+C1K&sw8 ztyNrI2=R6see%cTKf~2!^_|N>^%kbTZI>H_gg@^4d~C0Idc#M+{>q=NSpV90JFDS` zfD+UNSgCu?kf3&WzOoNHmKkHum{-(hh_TP0vU%L}zzx?gqG0bd9^$?VSzFJ&(j5Y% z7WEAopg7SPeB2NfH(GP+#%y=OY!&{Z&ldTpey=7v*nJYpzZ(Wj`OSZg_nA6Uh*QVM zosU!?t?@UAe&6$i?4-*V;5)g{UUTpP_)!Vm0Bj#DKl=;P#rWr@Q(a~FRYDAI0N>U% zfZ}Hnk<`UVL2u$RyCh0#vPSPxYdf_A2XhoVj!&)O(Ty`gD+J2eT3#sGCO{6i^Awc@ z;mbIa7d@uFbmq&Y;>%P#K5vU?)OKbFfi<}*R&5WMn7|2A(7ifp?U#R5_zK_m!+=UO z1V@h8&YHBe@ZGiBw_-ncT?zuv@*$4zC47n@93M$KSGy-k0gd3$$w)z?yP8zMO; ze%F8(SAvX|@scm=6NggzW(^aQIbO|5_|wN{YU3hR=G+VFpasOXKxF%2V+*y|ztqTj zx>7&Wi`~_1e|_!+;9I@$bU@OuD8pAoTbjuLF-!S?sTGOam1SW1dQ2&E@I3Di%UA&iFsoT;4uD8;F7p z?%!kQopo@{sl3K&okzgqh~s0zJ$142K0Psk2I?*#BD;2vachV##8F!)KTA{v&zkw^ zE3Ou=24_*(HXJBaB$DMl<9lUIzYnqkBz!yC3$qU3@+fM5aKIijLkO=P%KPE?Xr4)v zc2Kl4osxm&@5A!-_xXSut()LNaRUwhrC~9K=b^0X;)0dtep2NmdOl*i+HMo7aFs2~ zxTf`V$!V5ZJWk+Q_Vtxe5i9 z&_B0x&ByNbv#Y3HZZI+4oSYaRY%vx2idlL{wWpvn@_3NC*kQmd!};a-reYb?&vL9< z>ALdTa~Yc7q->I0oy(M^q!mm{VOHO~YtEd(bq?ZuZ0iRxi||k2&<$B4uP;m=^+*(e z$uu{)LrOgVzj|ABKICPVRh??g3Uel;UG*f&A18AdRz2bHyun@d^jeVGeBGBvGi{A3ofnKnF46mb!l5-zs}wC;OAT8~ z?ODWxB0IL@g(7-XGLSj$UDwywN8+;`#vR%n#^E=VI%;xqEE57p3d;r&WeYB*Y%-VL zw^?Brx|7PpWo}_=G?e&Qu?a`ZaVe#uk~(}8u>2B-F$hMpaA2<|2O27Bv+$8GJy;|L zMgI0NMK1Saq)z9FnpGp|!>4GpcVO8^F2wX0_k!x0_fA8@PV|Su0RVg*JhbMcJpU){^V*q=OF#drWKadejf*LYBhTmpH)D zD-BF(m}!MVNVdgpW7A-NyxqyU3u7C@#MiKL(c$yNO7LVPV2>mU8aqC{#nkXV$KEIkusB zoLctP;!|T^$O*Em{ReOrx7yqL`MQ$`SVQj~dRw-B&8q8d*01P;{>JX^>OuF4LH4r2 z&8htZ%B9m`Gl%8=6ydR;Lq@MyOW}wCehCY|P$Xs;qWqksvY#JK1`TDby6)O*-&+oU;8USfPqM%yQofkYnjc-;yagb`O(r(kQI6&fcOT|uh^r%`h?a;LWp@yHE zb%2eroEm1B=Q^3%Ol^dwvB4;$gsH9%+RetM(?jyfIXn0^Bi%_zKZ!&b8 znqm~LhTd?=A!sS+7DXE8ddqJFAti$Id7H3qCWnQGz^5X$3m8dY<5(?B zQAl|A}qiX(U40|whRfzU@!fk!YAM~*To*8WyMtb5XRY}xzeDRyU@ zQ7^?BDb%t^j5as%i6cKrSAwy{?U>HW>m|m>RMxTTkFOR&lLtH-wDG{Bw2*%bIV(fX zgiX~TkBw~~sN3cfB4?RFzCkU^cW|v{V3AAFE>{8B7?+H}^`#N85g%dPr1ybMKU{+* z%+K-@A&?AV2KH7YCf3adnE+W{vx39LnnE(@@DLeDD<%N*RT{p$8i#)EYCq`I{~k zo)zOS{chBz65#Y7?Lk}Hmvde&GcDPLa+0a2E6}` zDmlGjMppKGc}ad~PfK`7YEIUiw&2K@YTVlK3$`}Lz(7@o7UJ~>ZHLVp-)i=Jzn}#V zt^gjlYjL{2mezMR&9{IvH=`72e!uCJLWBhFkA04)3Hc>K+;m8VWaI({OU#t)r+$1` zlL2mL$l2o5_UL(w7{_wUVe!RVc~m~*M>bUta7m8!KgO!RusBM?G*fT_u68B{TW>da z@oYmd_iNSfb!Ony3ZFb+43N7$H1J5#OPv67%jm;Hw)LBcr}Kb*6#QfI?JEPTLJ4%U z{b2_Yfn1eCF7=&gm74FanoKdNtoxr(A9X9`^4X6Dw&&(xdTTuv_YQ@?!vRiRO_CZf zDSRcU(NCYzL*{O}q@LpE;_k_MMvF9UmJte0V@vzSpOSF5iLJ_pRPzaWY~_L9F!`R> zAy&%k@Id9N=G+lEb(`sU3M7&ZD*KU`vQ;z1XwY(hm)p7}lRewj)82EFlLSogZYnM^ zd>(h`b^4Cb$vyJr>Ns8&8Fg+n1GVeQZZ1x3?$eI1Z>JwxZ4p!iA2L1aMl1EHtw~Go zcP77aIDWue;#E$2<(9Ry%aCDcHpoa84yK@MNrw57X`Fnb1?4ZuY5D+qO-V8Z0xO9U7zR!)~@Jnn;pndmQwRyC#=Z#WaW1h*y zfl4f0$lF$t9}mt6&`IQ!BidD;JrWneCB_R*ikgBa`ML1u`aP|;dPD}yK1R6(;{%9S z`8Npx`@1B7qnb_cLY7M_#arOM=>oMk3uA(r&B-Z3{0-Ka5V+z*^N}*&^7`4WJM|p@ zxpSPZl9WkrztSi#vSl^E8`r1Mz=H_TaiVWKDi}wLcl0eiE8fd-%Fi&@=3Qq-wFSoK z(7h$IInq+euK&gzAqB^1v)t@m@E_0YQfhsm?{M}7f9;*%Qf>+RXB0fLEejq$K6OMP z2hQeJNWnhw^J&95``|%d!~9_9~D(<<ti8uYoOj3QF_8L3qGgHL$GdxF|M8}^` z7<;{pkL!XF4a}M;mAUmC$4mZ32Op%t;(FPR6Wd;}6A_Kx(KN~J?fH&%g*?zfq-yi4 zulv;4U3nSo=aN2-Um8RgyptK}wh%+KG1i5vM=oefqm9%NY`yerpE9L)_=1j!)v7jm{m)1d=_2iw7IyuBNQ@XGBV&kRSbbwbPji~%;El1A zY@){S;`Z<*VgSqAkmV`SOXlAoh42=z7*0-r$)w|6OsTlnmJVnmfK9bDkd9f*>IEWTXC?2UYOl&KJkT-q?c4Xn_cG~Q^UVrrDP+f z>%BksVz30d70B;M3k{ClJXY?Z>OT;s6Ydt=KcsF;c-hx&v-#fif>U&BF-ffHc5fdK zXh0o7-Ca$2h^=#aUtJ$+tx*e3&dj$Y^HbD|NdxhE_X*{RyWS|0BDgCMS+ECN8 z8CmCU&toR={<32HSKI>s{Ly1zopg zjFNxIQ6kdMJT!yrQ?IAmVsbJ!&I*FBtLVnYZ%Rhk+e~Tc>EiTy7+q2Zx~<(2{?rW} z8d~;5>16TtkK{7u%HEhW zBdLlCEpciY=11WY6xc@U6GjNJ4$+Xh5RMPTC1JnS#4#_W!j8Np?Pk?VQOlcOpYJ03 z6-HeLFD-HMxAwpzyuHG#1e$~VV@yVOWXd)(Ew?$H1$+9cx`*8CwmG>N&MxOTI@*7F z5jpFsZLdg=VsEr7sm&~`jOn$7FC@3Omu(Fm5-A!K=o%_ruq0kBM4wEWayfZ+;d z0wd<3S9i!jmF45zD?S@Er=XR9w2I+wiTXbB8t)7oGUZbwiWxnCkZWV#wR1 zf(Ozz2StH?fr+xkbporJ^w!tuy?)cNjQ0(Ba5I;j;XuHWrL}^y?x=taPlmjSLqM}h zyxla~dVY?tgU8N+Xg(|F0oH{*wP#>tW|*jyyu5C=JXp-=+9MawN2>x_T}jvdUSRz= z@Iiw5r%9YfEr)#w>L7Oa6`E@FkmVvgTtvZ<=rLTM&8KjZLme-Vi?xXl7y^zl6S+FY z;>OZ^H^_k(7V5x;e@=%BWaTa}H-lf9a6+C_xUFwy3FzkoouZ0h=}yg)iR0=T@V{F* zuszUX<5hFF0cryD9pHUFP_bULY%~-g_sYP`pJIr-iu##Fk3yF2A+pzcaEYqiH1HK6 zKs+j>cBSP?s;!9cokb4I1Cg=Yk4RN%jSQt`CnLp4<=J29dd@~D2Nw921Nvaoysh}% z=saYUu}%>}Hj?hg_RPZ3TN~9ybJ+5JXOH6iqItg)s(8J}$^{nLR2h^Hp5xslcs&wy z*%cBwK_aC9eHooc!x$rS?lLwl8q?%9{gTBNF6$rS@)<)0@y>bjj#NYSDJxMGZpJYZ ze@--tX9!JFv^|YBOLq9&%vB@rf+oGoZNkqs;U@m8jW;#}PKJd&&#*K^66Z>Mn0YWl z9V9lOVlIYw*mc~s^EFWH!=aUcwp!L*0I;22EQL1iTz=kQa(ygSj$<8o_7w5oZyt(MJA(XhmkCM} z5X>Bk6?9ax1PaW0(r15sxH=XC(90%F;`(IN9Qm~J*u<|9eu=WnzC*|y=9O<1ip*14 zvpYNHfC#y)&TTVG%kY~d5zTej+^_4$j?=RHfR$!_ z-(@pI?9yU_M8ZWN34<2!;_uY}ZoCra_Tmo*_ax8@ZfF3??N>wqnyx)kEp!=4vHTb) z_{jR$@{Ca|q3}TcL2%cIKK#Wq3RBueff7UPcH6C7Fv}T*A+*_wdz^nvO5xc?bwY;)QdcD{O z{kbFge1kbD2Gb-~jy8l*{(oSaeexRBd!~@Ib~7t~^jp+cl2{Y^K-Av!&|2~i?P%0m zQNt6J6h%Cr0)>%M3z&43d3e>vn3MfZpIS?Qo>p2?(swc%#Qwb0o5LmZENCIG3XSC? z*aSEls%1?|);e~rfAP*TX-a??+-r-d=uLerD;|)teYIL6Ek_4FFDfS$mywg@loGS% z+m+O-?qd4wx|3sZowLa$z@GeS%x;0I-UXn)HLW1^&o1A#l|yn>y$i#?51QuX@~?}0+dgj zgDEserp+}#=_W@6fVsu5Wf6_kkLjFjey9OQ3NZcy10XSH?OB)1z>S4C@(x&hbasjh zBOe8SJe&>B2ZOH4S#8Jl!5CH!3*7{Z+X;1)&zWTCM4SA30Vvm~u8=>AGxl>EE=~S{ z02ND-;WYZ26)Py=irRVxcld5|OBl}oYU@euVAL6IGwPJPFe zy^BkEhaOqw-<=PUm69oyN{3dWHaoSuRz^(LPrMSW%JVB@IFbCN6I>WoBFhQYKO7VW za!}Lr4a)}-2dU2!<5d!PKH6ympFqR+^Hl)Jq*;gS^C2Ogp$iKjndw%$}7ea+Ru&_<}*%;w(KXP~1i{;;LNc zMpmgCYq@>(9N={EiW$Y|W%6%-`5aRm2U{0NnMPB9_$KhsBU7o2U1zxhuE>-vOaa;% zvQNBri4Z~twsH@V$#Rd~1qdp`Q3O74zM1rDJsXFV`K4=b)Awt}2g9@NHox`kaB;iC zBQKd-?*D=-2lnJs<(DJ=*qF(Xm4Qp`NXtmtD`ND_6fB~$jA3s>aSORmJ!T~C+7I9T zev}rWg2EMej?HNbFoe}Xwf_ZgrNK)xh zFRkwd*PVFiN!(wl&$}jZy1#@qV2nT!ZPVUUE(#Ji3F81>>|X#BrqmDY&V+R{G4SGp zVb_d3cteOYJ!)~;Qb3F5-WBp6m@}#H7f3XkM(cMs{86c*f2q{Wb~Lfk+0lFNaK(wM zJkt|R%3!_btP9`%a+@0qifS@@D2XVa7s?4Lx6@yEm-}8ZTR3~-+jk?sVlBXEhu^cBB^3pYHkf43txwg=lfWU#uc2QuqjFRTB}JLWKc@IH!Oqur84*A z^Za2Q$4t;|ziPhBxF%TxcUG6nsI-Sub}Pc02KufcnU47H{T#4RXObbDm!WQ3st1U>eooZlf>5x@Z7`apy@dl!U8M=nF5J1XTGa} z@tbm=^IWpVP897=7*59_>mviFni67~TGv~&wECAdCo$iy&YI2$nORsxE?%{1HywwT zBOdNgtRLm(6fTu7W3C-%oleoa8T4(6Op3yE9zja|QqxLh;5BQZU&!t}@6v=s$*Bh~o2#zV^*E^iKGlmPEUh zw1Qma&jf^>DBtdzb*b{$Z#zW7=o97?2(rce4Y=k~>6)Uh{fiU1-F>VBplqnL(Ug;n zOA*cbvqyb84CE{$W@F>m&RUZ_<0ctdyUY@iy|aFLvhF_O)deIn{76S}TP!{XNikV^ zds?z^R~ycI*{r79V7!c95HMw=$oB}!8L82;5xd?y&=M6YW8XjLV#K+=h*K*`BZc`g zlME?axw+qKMctkmLIsq>k#R00;q8>VTa;dJZiHO4AJ+*e1}B6tzmk;nr-%6YO zA+JS=$8Z7pv8s}chupGRmU7`@#EjxhxQU4Dc3I~LG+vhYW% zTK})clgDE6$DpUjMP7%_q;@BkX08r7B@jr_ zvAnk)jlG$svgI3mq9eXdmA5&UFF;#9y5X%hv&c=*vS47uk(v9_IBO;2?~i^)|Qz)9&xFivX& z$1(2N0x{HX+|CcIINk+82;5EE8=S>kDn9mx!{lU@RW7bK+tmHL+a$Hn>34Y5NDcb4 z4+LS0x%FBe!N2g&Y)mz63eQ2UERmVc9j~JV4D*0w2wd!iA=q5CS zlzxoSRnytF#;N_Z3Hx*muSVhOcTR?l%AK|iLoD8`Vcre`_s=k-1*=DJjzK;Ubp-zo z#zgDQDJ;pU{tlVi4(B0|?JE4XKRrbewd<5M zR?v5rqYyy`FjsiN??m2xIpu@P*lje3@kKJobL75ku8(Z|&JxIx_&U65uaW889fVVh zS?rk;T!m;kv9}@LIK(kay`Mk#)gKTHY|KfKwLP!iW0T$4{Do9swuS~+{;M4 zE}jLx#}9DeZgS=Jzpfzuk2nDeKb<)NYR6x8a&mDse+qatH|3$)h^?_Nr{J-zg+Cw? z-gMX>M~}+G{quK;OEi;r`bA8`G}uxe(2dZIL$6nX)frDW4k{8c5_EaB2?{ z1eo~gdl3^@;lUdvEu|hrsbJ%O^LWq6!VysN6}JnBUilnQ(nLKew3eTkDUbcs`@aly zDrDjK954BRvn>DJnqH@u4fm}%N<;A@M~}AY$h4KEjsx1x_L>?W=sy~!)(7A2K`F+6n*3Tbc+b5t!kZ=e80vgo!0g`1A^)7EfgnO$Lv|s%f-{~@}Fw9 z_w{gO@o|;ZxO>@8SF-i}9R@8W6yv*f4^p8L9drGqRtuQCZ5Ry7evqTL+v9U2J|Euk zId<|(Q-z6^+AP1+Z_M=P>%T7%tvMTF!_t;{#tX$8(t?Vk831P=XJglr_)xcE8jWwy zXNKiH12g{7hic3i+HES{9p^mP?Y9kht#j*;i1&_(y77$vgTjd_Jox{XxE#~hD zJ>3D@44u;8Ly2V=8(^6q*uc?qI*G1~pI3!z|D z-6mfwyR~Q+a9?e)&4UwYRB;ak(?D`6fW*qP>5^uf2>6+rJS2w8^nON`(he=KcTn#VE{S#T%GV9!Tz$AFbhn&3r~6PiqF+yJsgqq zO#+VPp2Mol-jO;+jU~1jWeoIola}t>aS2+pKTJ*l^eqR+@kG?(y23gJMn*vpBxo9a z218T~zn3Us{@7{Cxq~s;cFl8!e;IC=7bPE$$-ZmA+CpC>HNO9lV${fJq$sa=e-{n4 zIm&!4Tlu<*icYb#N|lTVRL3LJ=l*OlO@}0FwlIA+9T*<+p2dNv&7wV6Z+P~?@WZEC zU|dnp{Dx$P_3L%jTF}aBa_hFQF2?<{)jT*0TE?Lz&E_FP1+b~*e8t(XS7i1>@MHxOAL5${yjb?4G`!3Zv3ZN zE@L1Q*E^NI@r!nUxpZ$VVmPBNYg7J>OSyWJ%j-b+xP*S)M>hJD5%(xV$PauWG9dQU z5#Iv&cFzCKbM(hKi|@4 zI<KMZ%>@f93!ABTzpMbe;p_uG=V;lnlb7e^fJM z_<_|ECCYTJ0Mfwf>qcMZMCCdxbe*#fP~@Qw!n<@s+s&GkO@WXNcepN#X*BmruB@)x zG7A{|End^#`WUbl{;$E`L~$ddG>?_$mX>XI3TgEehJQyoTh>nkxuPh+Mcq>(tbwQZ zS4v6ELf9&`kKs;Dh;q-de+Ab;hbS0>80vb1DCS?`dR zQMv741d}8JG_N!)$ImS760B=L6RUOW!!1LLS!i(GEEBBTKoo>JA(S4e zS!;=3?mZPxk9A6~+COj~!tCXb8X7~+PxH%xJZpuR-bATYn&F>l2wRNo|DN>8<7i*Y%szWV{hr%q=;*KWe=RLgpA<08DiIL5CzGwB@Y%2HRi^bLZ3zmr`X z;TVOPR$mgjhC30Jz$63KQ?4E9<(tEPI@P7Eb*wThRxDVTO?5X4%hR zO!6+^{_-&pg;DDnTR*H+1Ekp;{(#UPBI(Be8z9vBuVfEYKa2ScnIl{K%!Id-@wt0%nbxh6}UXbMckdt(iA}zggWypaZ5> z{%W3RoTdqw^&%R(13I>cOBfNhQ_r#VKK?xn6~N>ooACXo?J*f1cr?bbkHzp>-b`4; zq*_}@|(5}&VKa|)84M0a|xF0t4>;T*&!z%}2W8sS`6>ljR+FG?4jZ`pH-rSqrn>J$w)K9}q zj2hnaVGmCT$d@q8A;TyFMTn3(L{4a9a8(1(N5drk!Np%7J$vMTnEH6vNe8w=Q1hPOn^H@6|egSiYqlYX$Pb#CL5fn5WlQ@V1xgvl#`qCYgr_X{Zs>0i|P34U0~ZdA?aUWm!Zs|BdxqVmu3Um z>`SEpfvvnW(z7_})AqREA4`wM=hYm0WCL643#t8?V)*|gig4#Iz7Sd@F7+ow4pNx) zL`Mm@g<@1eOoTxTo+pxtpTQ(;pi}3sW8wuK6Pg$$h8#kR;CX#m5f(*V_4~GWXxnKXdN2;VK&V?4F>yk4_O_ zdv)+t>kn5WvpfIi&YGL&KY>Y{-;fXx5c&Ov55cA17aPED@B>iY|NTZS-i6;6u0Fqi z0z|)&_J3~z0RN@Qf6oc DeviceClass.Generic, + DeviceAttribute.Description -> "Cardboard box simulator", + DeviceAttribute.Vendor -> Constants.DeviceInfo.DefaultVendor, + DeviceAttribute.Product -> "Catbus", + ) + + override def getDeviceInfo: Map[String, String] = deviceInfo +} diff --git a/src/main/scala/ocelot/desktop/entity/OcelotCard.scala b/src/main/scala/ocelot/desktop/entity/OcelotCard.scala index f103547..4b147e0 100644 --- a/src/main/scala/ocelot/desktop/entity/OcelotCard.scala +++ b/src/main/scala/ocelot/desktop/entity/OcelotCard.scala @@ -1,18 +1,14 @@ package ocelot.desktop.entity -import ocelot.desktop.entity.OcelotCard.LogEvent +import ocelot.desktop.entity.traits.OcelotInterface import totoro.ocelot.brain.Constants -import totoro.ocelot.brain.entity.machine.{Arguments, Callback, Context} import totoro.ocelot.brain.entity.traits.DeviceInfo.{DeviceAttribute, DeviceClass} -import totoro.ocelot.brain.entity.traits.{DeviceInfo, Entity, Environment, Tiered, result} -import totoro.ocelot.brain.event.{EventBus, NodeEvent} +import totoro.ocelot.brain.entity.traits.{DeviceInfo, Tiered} import totoro.ocelot.brain.network.{Network, Node, Visibility} import totoro.ocelot.brain.util.Tier import totoro.ocelot.brain.util.Tier.Tier -import java.time.Instant - -class OcelotCard extends Entity with Environment with DeviceInfo with Tiered { +class OcelotCard extends OcelotInterface with DeviceInfo with Tiered { override val node: Node = Network.newNode(this, Visibility.Neighbors) .withComponent("ocelot", Visibility.Neighbors) .create() @@ -27,52 +23,4 @@ class OcelotCard extends Entity with Environment with DeviceInfo with Tiered { ) override def getDeviceInfo: Map[String, String] = deviceInfo - - @Callback(direct = true, doc = """function(message: string) -- Logs a message to the card's console.""") - def log(context: Context, args: Arguments): Array[AnyRef] = { - val message = args.checkString(0) - EventBus.send(LogEvent.CardToUser(node.address, message)) - result() - } - - @Callback(direct = true, doc = """function() -- Clears messages logged to the card's console.""") - def clearLog(context: Context, args: Arguments): Array[AnyRef] = { - EventBus.send(LogEvent.Clear(node.address)) - result() - } - - @Callback(direct = true, doc = """function(): integer -- Returns the current Unix timestamp (UTC, in milliseconds).""") - def getTimestamp(context: Context, args: Arguments): Array[AnyRef] = { - result(Instant.now().toEpochMilli) - } - - @Callback(direct = true, doc = """function(): integer -- Returns a high-resolution timer value (in nanoseconds).""") - def getInstant(context: Context, args: Arguments): Array[AnyRef] = { - result(System.nanoTime()) - } - - @Callback(direct = true, doc = """function(): number -- Returns the remaining call budget.""") - def getRemainingCallBudget(context: Context, args: Arguments): Array[AnyRef] = { - result(context.getRemainingCallBudget) - } - - @Callback(direct = true, doc = """function(): number -- Returns the maximum call budget.""") - def getMaxCallBudget(context: Context, args: Arguments): Array[AnyRef] = { - result(context.getMaxCallBudget) - } - - def pushMessage(message: String): Unit = { - node.sendToReachable("computer.signal", "ocelot_message", message) - EventBus.send(LogEvent.UserToCard(node.address, message)) - } -} - -object OcelotCard { - sealed trait LogEvent extends NodeEvent - - object LogEvent { - case class CardToUser(address: String, message: String) extends LogEvent - case class UserToCard(address: String, message: String) extends LogEvent - case class Clear(address: String) extends LogEvent - } } diff --git a/src/main/scala/ocelot/desktop/entity/traits/OcelotInterface.scala b/src/main/scala/ocelot/desktop/entity/traits/OcelotInterface.scala new file mode 100644 index 0000000..3aa4193 --- /dev/null +++ b/src/main/scala/ocelot/desktop/entity/traits/OcelotInterface.scala @@ -0,0 +1,58 @@ +package ocelot.desktop.entity.traits + +import ocelot.desktop.entity.traits.OcelotInterface.LogEvent +import totoro.ocelot.brain.entity.machine.{Arguments, Callback, Context} +import totoro.ocelot.brain.entity.traits.{Entity, Environment, result} +import totoro.ocelot.brain.event.{EventBus, NodeEvent} + +import java.time.Instant + +trait OcelotInterface extends Entity with Environment { + @Callback(direct = true, doc = """function(message: string) -- Logs a message to the card's console.""") + def log(context: Context, args: Arguments): Array[AnyRef] = { + val message = args.checkString(0) + EventBus.send(LogEvent.CardToUser(node.address, message)) + result() + } + + @Callback(direct = true, doc = """function() -- Clears messages logged to the card's console.""") + def clearLog(context: Context, args: Arguments): Array[AnyRef] = { + EventBus.send(LogEvent.Clear(node.address)) + result() + } + + @Callback(direct = true, doc = """function(): integer -- Returns the current Unix timestamp (UTC, in milliseconds).""") + def getTimestamp(context: Context, args: Arguments): Array[AnyRef] = { + result(Instant.now().toEpochMilli) + } + + @Callback(direct = true, doc = """function(): integer -- Returns a high-resolution timer value (in nanoseconds).""") + def getInstant(context: Context, args: Arguments): Array[AnyRef] = { + result(System.nanoTime()) + } + + @Callback(direct = true, doc = """function(): number -- Returns the remaining call budget.""") + def getRemainingCallBudget(context: Context, args: Arguments): Array[AnyRef] = { + result(context.getRemainingCallBudget) + } + + @Callback(direct = true, doc = """function(): number -- Returns the maximum call budget.""") + def getMaxCallBudget(context: Context, args: Arguments): Array[AnyRef] = { + result(context.getMaxCallBudget) + } + + def pushMessage(message: String): Unit = { + node.sendToReachable("computer.signal", "ocelot_message", message) + EventBus.send(LogEvent.UserToCard(node.address, message)) + } +} + +object OcelotInterface { + sealed trait LogEvent extends NodeEvent + + object LogEvent { + case class CardToUser(address: String, message: String) extends LogEvent + case class UserToCard(address: String, message: String) extends LogEvent + case class Clear(address: String) extends LogEvent + } +} diff --git a/src/main/scala/ocelot/desktop/graphics/IconSource.scala b/src/main/scala/ocelot/desktop/graphics/IconSource.scala index 7ec2403..3e57f2f 100644 --- a/src/main/scala/ocelot/desktop/graphics/IconSource.scala +++ b/src/main/scala/ocelot/desktop/graphics/IconSource.scala @@ -8,8 +8,8 @@ import totoro.ocelot.brain.util.ExtendedTier.ExtendedTier import totoro.ocelot.brain.util.Tier.Tier case class IconSource( - path: String, - animation: Option[IconSource.Animation] = None + path: String, + animation: Option[IconSource.Animation] = None, ) object IconSource { @@ -26,97 +26,92 @@ object IconSource { IconSource(s"icons/Tier${tier.id}") } - val Cpu: Tier => IconSource = { tier => - IconSource(s"items/CPU${tier.id}") - } + object Items { + val Cpu: Tier => IconSource = { tier => + IconSource(s"items/CPU${tier.id}") + } - val Apu: Tier => IconSource = { tier => - IconSource(s"items/APU${tier.id}", animation = Some(Animations.Apu)) - } + val Apu: Tier => IconSource = { tier => + IconSource(s"items/APU${tier.id}", animation = Some(Animations.Apu)) + } - val GraphicsCard: Tier => IconSource = { tier => - IconSource(s"items/GraphicsCard${tier.id}") - } + val GraphicsCard: Tier => IconSource = { tier => + IconSource(s"items/GraphicsCard${tier.id}") + } - val NetworkCard: IconSource = IconSource("items/NetworkCard") + val NetworkCard: IconSource = IconSource("items/NetworkCard") - val WirelessNetworkCard: Tier => IconSource = { tier => - IconSource(s"items/WirelessNetworkCard${tier.id}") - } + val WirelessNetworkCard: Tier => IconSource = { tier => + IconSource(s"items/WirelessNetworkCard${tier.id}") + } - val LinkedCard: IconSource = IconSource("items/LinkedCard", animation = Some(Animations.LinkedCard)) + val LinkedCard: IconSource = IconSource("items/LinkedCard", animation = Some(Animations.LinkedCard)) - val InternetCard: IconSource = IconSource("items/InternetCard", animation = Some(Animations.InternetCard)) + val InternetCard: IconSource = IconSource("items/InternetCard", animation = Some(Animations.InternetCard)) - val RedstoneCard: Tier => IconSource = { tier => - IconSource(s"items/RedstoneCard${tier.id}") - } + val RedstoneCard: Tier => IconSource = { tier => + IconSource(s"items/RedstoneCard${tier.id}") + } - val DataCard: Tier => IconSource = { tier => - IconSource(s"items/DataCard${tier.id}", animation = Some(Animations.DataCard)) - } + val DataCard: Tier => IconSource = { tier => + IconSource(s"items/DataCard${tier.id}", animation = Some(Animations.DataCard)) + } - val SoundCard: IconSource = IconSource("items/SoundCard", animation = Some(Animations.DataCard)) + val SoundCard: IconSource = IconSource("items/SoundCard", animation = Some(Animations.DataCard)) - val SelfDestructingCard: IconSource = IconSource("items/SelfDestructingCard", animation = Some(Animations.SelfDestructingCard)) + val SelfDestructingCard: IconSource = + IconSource("items/SelfDestructingCard", animation = Some(Animations.SelfDestructingCard)) - val OcelotCard: IconSource = IconSource("items/OcelotCard", animation = Some(Animations.OcelotCard)) + val OcelotCard: IconSource = IconSource("items/OcelotCard", animation = Some(Animations.OcelotCard)) - val HardDiskDrive: Tier => IconSource = { tier => - IconSource(s"items/HardDiskDrive${tier.id}") - } + val HardDiskDrive: Tier => IconSource = { tier => + IconSource(s"items/HardDiskDrive${tier.id}") + } - val Eeprom: IconSource = IconSource("items/EEPROM") + val Eeprom: IconSource = IconSource("items/EEPROM") - val FloppyDisk: DyeColor => IconSource = { color => - IconSource(s"items/FloppyDisk_${color.name}") - } + val FloppyDisk: DyeColor => IconSource = { color => + IconSource(s"items/FloppyDisk_${color.name}") + } - val Memory: ExtendedTier => IconSource = { tier => - IconSource(s"items/Memory${tier.id}") - } + val Memory: ExtendedTier => IconSource = { tier => + IconSource(s"items/Memory${tier.id}") + } - val Server: Tier => IconSource = { tier => - IconSource(s"items/Server${tier.id}") - } + val Server: Tier => IconSource = { tier => + IconSource(s"items/Server${tier.id}") + } - val ComponentBus: Tier => IconSource = { tier => - IconSource(s"items/ComponentBus${tier.id}") - } + val ComponentBus: Tier => IconSource = { tier => + IconSource(s"items/ComponentBus${tier.id}") + } - val Tape: TapeKind => IconSource = { - case TapeKind.Golder => Tape(TapeKind.Gold) - case TapeKind.NetherStarrer => Tape(TapeKind.NetherStar) - case kind => IconSource(s"items/Tape$kind") - } + val Tape: TapeKind => IconSource = { + case TapeKind.Golder => Tape(TapeKind.Gold) + case TapeKind.NetherStarrer => Tape(TapeKind.NetherStar) + case kind => IconSource(s"items/Tape$kind") + } - val DiskDriveMountable: IconSource = IconSource("items/DiskDriveMountable") + val DiskDriveMountable: IconSource = IconSource("items/DiskDriveMountable") - //noinspection ScalaWeakerAccess - object Animations { - val Apu: Animation = Animation( - (0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f), - (4, 3f), (3, 3f), (2, 3f), (1, 3f), (0, 3f)) + //noinspection ScalaWeakerAccess + object Animations { + val Apu: Animation = + Animation((0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f), (4, 3f), (3, 3f), (2, 3f), (1, 3f), (0, 3f)) - val LinkedCard: Animation = - Animation((0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f)) + val LinkedCard: Animation = + Animation((0, 3f), (1, 3f), (2, 3f), (3, 3f), (4, 3f), (5, 3f)) - val InternetCard: Animation = Animation( - (0, 2f), (1, 7f), (0, 5f), (1, 4f), (0, 7f), (1, 2f), (0, 8f), - (1, 9f), (0, 6f), (1, 4f)) + val InternetCard: Animation = + Animation((0, 2f), (1, 7f), (0, 5f), (1, 4f), (0, 7f), (1, 2f), (0, 8f), (1, 9f), (0, 6f), (1, 4f)) - val DataCard: Animation = Animation( - (0, 4f), (1, 4f), (2, 4f), (3, 4f), (4, 4f), (5, 4f), (6, 4f), (7, 4f)) + val DataCard: Animation = Animation((0, 4f), (1, 4f), (2, 4f), (3, 4f), (4, 4f), (5, 4f), (6, 4f), (7, 4f)) - val SelfDestructingCard: Animation = Animation((0, 4f), (1, 4f)) + val SelfDestructingCard: Animation = Animation((0, 4f), (1, 4f)) - val OcelotCard: Animation = Animation( - (0, 12f), (1, 4f), (2, 4f), (3, 4f), (4, 5f), (5, 6f), (0, 9f), (6, 4f), (7, 3f)) - - val Loading: Animation = Animation(Size2D(48, 32), - (0, 0.7f), (1, 0.7f), (2, 0.7f), (3, 0.7f), (4, 0.7f), (5, 0.7f), (6, 0.7f), - (7, 0.7f), (8, 0.7f), (9, 0.7f), (10, 0.7f), (11, 0.7f), (12, 0.7f), (13, 0.7f) - ) + val OcelotCard: Animation = + Animation((0, 12f), (1, 4f), (2, 4f), (3, 4f), (4, 5f), (5, 6f), (0, 9f), (6, 4f), (7, 3f)) + } } case class Animation(frames: Array[(Int, Float)], frameSize: Option[Size2D]) @@ -128,12 +123,27 @@ object IconSource { // ----------------------- Ocelot interface icons ----------------------- - val Notification: NotificationType => IconSource = { notificationType => IconSource(s"icons/Notification$notificationType") } - val Loading: IconSource = IconSource("Loading", animation = Some(Animations.Loading)) + val Loading: IconSource = IconSource("Loading", animation = Some(Animation( + Size2D(48, 32), + (0, 0.7f), + (1, 0.7f), + (2, 0.7f), + (3, 0.7f), + (4, 0.7f), + (5, 0.7f), + (6, 0.7f), + (7, 0.7f), + (8, 0.7f), + (9, 0.7f), + (10, 0.7f), + (11, 0.7f), + (12, 0.7f), + (13, 0.7f), + ))) val SettingsSystem: IconSource = IconSource("icons/SettingsSystem") val SettingsSound: IconSource = IconSource("icons/SettingsSound") @@ -168,4 +178,20 @@ object IconSource { val Guitar: IconSource = IconSource("icons/Guitar") val Keyboard: IconSource = IconSource("icons/Keyboard") val KeyboardOff: IconSource = IconSource("icons/KeyboardOff") + + // ----------------------- Node icons ----------------------- + + val NA: IconSource = IconSource("icons/NA") + + object Nodes { + object OcelotBlock { + val Default: IconSource = IconSource( + "nodes/ocelot-block/Default", + animation = Some(Animation(Size2D(16, 16), (0, 30f), (1, 5f), (2, 2f), (0, 20f), (3, 3f), (4, 2f))), + ) + + val Rx: IconSource = IconSource("nodes/ocelot-block/Rx") + val Tx: IconSource = IconSource("nodes/ocelot-block/Tx") + } + } } diff --git a/src/main/scala/ocelot/desktop/inventory/Items.scala b/src/main/scala/ocelot/desktop/inventory/Items.scala index a11be3a..09d85b2 100644 --- a/src/main/scala/ocelot/desktop/inventory/Items.scala +++ b/src/main/scala/ocelot/desktop/inventory/Items.scala @@ -105,7 +105,7 @@ object Items extends Logging { // Anyway we don't want to see its icon as default one in context menu registerArbitrary( "Memory", - IconSource.Memory(ExtendedTier.ThreeHalf), + IconSource.Items.Memory(ExtendedTier.ThreeHalf), (ExtendedTier.One to ExtendedTier.Creative).iterator .map { case ExtendedTier.Creative => new MagicalMemoryItem.Factory() diff --git a/src/main/scala/ocelot/desktop/inventory/item/ApuItem.scala b/src/main/scala/ocelot/desktop/inventory/item/ApuItem.scala index 341c4b9..7cb2c66 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/ApuItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/ApuItem.scala @@ -26,7 +26,7 @@ object ApuItem { // we keep the latter tier internally and increment it when dealing with the rest of the world override def tier: Option[Tier] = Some(_tier.saturatingAdd(1)) - override def icon: IconSource = IconSource.Apu(_tier) + override def icon: IconSource = IconSource.Items.Apu(_tier) override def build(): ApuItem = new ApuItem(new APU(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/ComponentBusItem.scala b/src/main/scala/ocelot/desktop/inventory/item/ComponentBusItem.scala index c6290da..c479186 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/ComponentBusItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/ComponentBusItem.scala @@ -34,7 +34,7 @@ object ComponentBusItem { override def tier: Option[Tier] = Some(_tier) - override def icon: IconSource = IconSource.ComponentBus(_tier) + override def icon: IconSource = IconSource.Items.ComponentBus(_tier) override def build(): ComponentBusItem = new ComponentBusItem(new ComponentBus(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/CpuItem.scala b/src/main/scala/ocelot/desktop/inventory/item/CpuItem.scala index cd2b57b..2901908 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/CpuItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/CpuItem.scala @@ -23,7 +23,7 @@ object CpuItem { override def tier: Option[Tier] = Some(_tier) - override def icon: IconSource = IconSource.Cpu(_tier) + override def icon: IconSource = IconSource.Items.Cpu(_tier) override def build(): CpuItem = new CpuItem(new CPU(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/DataCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/DataCardItem.scala index 4aa5696..9dc5512 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/DataCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/DataCardItem.scala @@ -14,7 +14,7 @@ object DataCardItem { abstract class Factory extends ItemFactory { override def name: String = s"Data Card (${tier.get.label})" - override def icon: IconSource = IconSource.DataCard(tier.get) + override def icon: IconSource = IconSource.Items.DataCard(tier.get) } class Tier1(val dataCard: DataCard.Tier1) extends DataCardItem { diff --git a/src/main/scala/ocelot/desktop/inventory/item/DiskDriveMountableItem.scala b/src/main/scala/ocelot/desktop/inventory/item/DiskDriveMountableItem.scala index 8ffabd0..701d171 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/DiskDriveMountableItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/DiskDriveMountableItem.scala @@ -1,6 +1,7 @@ package ocelot.desktop.inventory.item import ocelot.desktop.graphics.IconSource +import ocelot.desktop.inventory.traits.RackMountableItem import ocelot.desktop.inventory.{ItemFactory, ItemRecoverer} import ocelot.desktop.util.DiskDriveAware import totoro.ocelot.brain.entity.{DiskDriveMountable, FloppyDiskDrive} @@ -26,7 +27,7 @@ object DiskDriveMountableItem { override def name: String = "Disk Drive" - override def icon: IconSource = IconSource.DiskDriveMountable + override def icon: IconSource = IconSource.Items.DiskDriveMountable override def build(): DiskDriveMountableItem = { val item = new DiskDriveMountableItem(new DiskDriveMountable()) diff --git a/src/main/scala/ocelot/desktop/inventory/item/EepromItem.scala b/src/main/scala/ocelot/desktop/inventory/item/EepromItem.scala index 9f32865..d469204 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/EepromItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/EepromItem.scala @@ -84,7 +84,7 @@ object EepromItem { override def tier: Option[Tier] = None - override def icon: IconSource = IconSource.Eeprom + override def icon: IconSource = IconSource.Items.Eeprom override def recoverers: Iterable[ItemRecoverer[_, _]] = Some(ItemRecoverer(new EepromItem(_))) } diff --git a/src/main/scala/ocelot/desktop/inventory/item/FloppyItem.scala b/src/main/scala/ocelot/desktop/inventory/item/FloppyItem.scala index a76da66..4ca145f 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/FloppyItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/FloppyItem.scala @@ -84,7 +84,7 @@ object FloppyItem { override def tier: Option[Tier] = None - override def icon: IconSource = IconSource.FloppyDisk(color) + override def icon: IconSource = IconSource.Items.FloppyDisk(color) override def recoverers: Iterable[ItemRecoverer[_, _]] = Some(ItemRecoverer(new FloppyItem(_))) } diff --git a/src/main/scala/ocelot/desktop/inventory/item/GraphicsCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/GraphicsCardItem.scala index 9d7aa19..5a8a8e1 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/GraphicsCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/GraphicsCardItem.scala @@ -21,7 +21,7 @@ object GraphicsCardItem { override def name: String = s"Graphics Card (${_tier.label})" override def tier: Option[Tier] = Some(_tier) - override def icon: IconSource = IconSource.GraphicsCard(_tier) + override def icon: IconSource = IconSource.Items.GraphicsCard(_tier) override def build(): GraphicsCardItem = new GraphicsCardItem(new GraphicsCard(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/HddItem.scala b/src/main/scala/ocelot/desktop/inventory/item/HddItem.scala index 62c8074..6da9467 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/HddItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/HddItem.scala @@ -76,7 +76,7 @@ object HddItem { override def tier: Option[Tier] = Some(_tier) - override def icon: IconSource = IconSource.HardDiskDrive(_tier) + override def icon: IconSource = IconSource.Items.HardDiskDrive(_tier) override def build(): HddItem = new HddItem( if (managed) Hdd(new HDDManaged(_tier)) else Hdd(new HDDUnmanaged(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/InternetCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/InternetCardItem.scala index 535dc56..47b92fc 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/InternetCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/InternetCardItem.scala @@ -24,7 +24,7 @@ object InternetCardItem { override def tier: Option[Tier] = Some(Tier.Two) - override def icon: IconSource = IconSource.InternetCard + override def icon: IconSource = IconSource.Items.InternetCard override def build(): InternetCardItem = new InternetCardItem(new InternetCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/LinkedCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/LinkedCardItem.scala index 18054b3..6076d4a 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/LinkedCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/LinkedCardItem.scala @@ -45,7 +45,7 @@ object LinkedCardItem { override def tier: Option[Tier] = Some(Tier.Three) - override def icon: IconSource = IconSource.LinkedCard + override def icon: IconSource = IconSource.Items.LinkedCard override def build(): LinkedCardItem = new LinkedCardItem(new LinkedCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/MagicalMemoryItem.scala b/src/main/scala/ocelot/desktop/inventory/item/MagicalMemoryItem.scala index ad6235f..c93394e 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/MagicalMemoryItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/MagicalMemoryItem.scala @@ -24,7 +24,7 @@ object MagicalMemoryItem { override def tier: Option[Tier] = Some(Tier.One) - override def icon: IconSource = IconSource.Memory(ExtendedTier.Creative) + override def icon: IconSource = IconSource.Items.Memory(ExtendedTier.Creative) override def build(): MagicalMemoryItem = new MagicalMemoryItem(new MagicalMemory()) diff --git a/src/main/scala/ocelot/desktop/inventory/item/MemoryItem.scala b/src/main/scala/ocelot/desktop/inventory/item/MemoryItem.scala index 0731a23..42e12d4 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/MemoryItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/MemoryItem.scala @@ -24,7 +24,7 @@ object MemoryItem { override def tier: Option[Tier] = Some(memoryTier.toTier) - override def icon: IconSource = IconSource.Memory(memoryTier) + override def icon: IconSource = IconSource.Items.Memory(memoryTier) override def build(): MemoryItem = new MemoryItem(new Memory(memoryTier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/NetworkCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/NetworkCardItem.scala index 1f3d4bc..b35eea6 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/NetworkCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/NetworkCardItem.scala @@ -22,7 +22,7 @@ object NetworkCardItem { override def name: String = "Network Card" override def tier: Option[Tier] = Some(Tier.One) - override def icon: IconSource = IconSource.NetworkCard + override def icon: IconSource = IconSource.Items.NetworkCard override def build(): NetworkCardItem = new NetworkCardItem(new NetworkCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/OcelotCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/OcelotCardItem.scala index 1e9bffa..fe25e64 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/OcelotCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/OcelotCardItem.scala @@ -3,53 +3,27 @@ package ocelot.desktop.inventory.item import ocelot.desktop.ColorScheme import ocelot.desktop.color.Color import ocelot.desktop.entity.OcelotCard +import ocelot.desktop.entity.traits.OcelotInterface import ocelot.desktop.graphics.IconSource -import ocelot.desktop.inventory.item.OcelotCardItem.{EntriesTag, EntryKindRx, EntryKindTag, EntryKindTx, EntryMessageTag, MessageLimitTag, MessagesTag} import ocelot.desktop.inventory.traits.{CardItem, ComponentItem, PersistableItem} import ocelot.desktop.inventory.{Item, ItemFactory, ItemRecoverer} -import ocelot.desktop.ui.event.BrainEvent -import ocelot.desktop.ui.widget.LogWidget.LogEntry -import ocelot.desktop.ui.widget.card.OcelotCardWindow import ocelot.desktop.ui.widget.contextmenu.{ContextMenu, ContextMenuEntry} -import ocelot.desktop.ui.widget.window.Windowed -import ocelot.desktop.util.Logging -import totoro.ocelot.brain.nbt.ExtendedNBT.extendNBTTagList -import totoro.ocelot.brain.nbt.{NBT, NBTBase, NBTTagCompound, NBTTagString} +import ocelot.desktop.util.{Logging, OcelotInterfaceLogStorage} import totoro.ocelot.brain.util.Tier import totoro.ocelot.brain.util.Tier.Tier -import scala.collection.mutable -import scala.jdk.CollectionConverters.BufferHasAsJava - class OcelotCardItem(val ocelotCard: OcelotCard) extends Item with ComponentItem + with OcelotInterfaceLogStorage with PersistableItem with CardItem - with Windowed[OcelotCardWindow] with Logging { - private var _messageLimit: Int = 1000 - - // NOTE: access must be synchronized! - // ocelot.log() is a direct method, so it may push events even if the tick lock is not acquired - private val _entries = mutable.ArrayDeque.empty[LogEntry] - - eventHandlers += { - case BrainEvent(OcelotCard.LogEvent.Clear(_)) => - clear() - - case BrainEvent(OcelotCard.LogEvent.CardToUser(_, message)) => - addEntry(LogEntry.Rx(message)) - - case BrainEvent(OcelotCard.LogEvent.UserToCard(_, message)) => - addEntry(LogEntry.Tx(message)) - } - - override def createWindow(): OcelotCardWindow = new OcelotCardWindow(this) - override def component: OcelotCard = ocelotCard + override def ocelotInterface: OcelotInterface = ocelotCard + override def tooltipNameColor: Color = ColorScheme("OcelotCardTooltip") override def fillRmbMenu(menu: ContextMenu): Unit = { @@ -62,124 +36,10 @@ class OcelotCardItem(val ocelotCard: OcelotCard) super.fillRmbMenu(menu) } - private def loadEntry(nbt: NBTTagCompound): Either[String, LogEntry] = { - nbt.getString(EntryKindTag) match { - case EntryKindRx => Right(LogEntry.Rx(nbt.getString(EntryMessageTag))) - case EntryKindTx => Right(LogEntry.Tx(nbt.getString(EntryMessageTag))) - - case "" => Left("entry kind not set") - case k => Left(s"unknown entry kind: $k") - } - } - - private def saveEntry(entry: LogEntry): NBTTagCompound = { - val result = new NBTTagCompound() - - entry match { - case LogEntry.Rx(message) => - result.setString(EntryKindTag, EntryKindRx) - result.setString(EntryMessageTag, message) - - case LogEntry.Tx(message) => - result.setString(EntryKindTag, EntryKindTx) - result.setString(EntryMessageTag, message) - } - - result - } - - override def load(nbt: NBTTagCompound): Unit = { - super.load(nbt) - - clear() - - if (nbt.hasKey(MessageLimitTag)) { - messageLimit = nbt.getInteger(MessageLimitTag) - } - - val entries = if (nbt.hasKey(EntriesTag)) { - nbt.getTagList(EntriesTag, NBT.TAG_COMPOUND).iterator[NBTTagCompound].zipWithIndex.flatMap { - case (entryNbt, idx) => - loadEntry(entryNbt) match { - case Left(err) => - logger.warn(s"Could not restore log entry (idx $idx) of ocelot card ${component.node.address}: $err") - None - - case Right(entry) => Some(entry) - } - } - } else { - // old save format: plain messages - nbt - .getTagList(MessagesTag, NBT.TAG_STRING) - .iterator[NBTTagString] - .map(entryNbt => LogEntry.Rx(entryNbt.getString)) - } - - addEntries(entries.toSeq) - } - - override def save(nbt: NBTTagCompound): Unit = _entries.synchronized { - super.save(nbt) - - nbt.setTagList(EntriesTag, _entries.map(saveEntry(_).asInstanceOf[NBTBase]).asJava) - nbt.setInteger(MessageLimitTag, _messageLimit) - } - override def factory: ItemFactory = OcelotCardItem.Factory - - def messageLimit: Int = _messageLimit - - def messageLimit_=(limit: Int): Unit = _entries.synchronized { - require(limit > 0) - ensureFreeSpace(_entries.length - limit) - _messageLimit = limit - } - - def entryCount: Int = _entries.synchronized { - _entries.length - } - - def clear(): Unit = _entries.synchronized { - val count = _entries.length - _entries.clear() - window.onMessagesRemoved(count) - } - - private def addEntry(entry: LogEntry): Unit = _entries.synchronized { - ensureFreeSpace(1) - _entries += entry - window.onMessagesAdded(Some(entry)) - } - - private def addEntries(entries: Seq[LogEntry]): Unit = _entries.synchronized { - ensureFreeSpace(entries.length) - val prevCount = _entries.length - _entries ++= entries.view.takeRight(messageLimit) - window.onMessagesAdded(_entries.view.takeRight(_entries.length - prevCount)) - } - - private def ensureFreeSpace(n: Int): Unit = _entries.synchronized { - val prevCount = _entries.length - _entries.takeRightInPlace(messageLimit - n) - val removedCount = prevCount - _entries.length - - if (removedCount > 0) { - window.onMessagesRemoved(removedCount) - } - } } object OcelotCardItem { - val MessagesTag = "messages" - val EntriesTag = "entries" - val MessageLimitTag = "limit" - - val EntryKindTag = "kind" - val EntryKindRx = "rx" - val EntryKindTx = "tx" - val EntryMessageTag = "msg" - object Factory extends ItemFactory { override type I = OcelotCardItem @@ -189,7 +49,7 @@ object OcelotCardItem { override def tier: Option[Tier] = Some(Tier.One) - override def icon: IconSource = IconSource.OcelotCard + override def icon: IconSource = IconSource.Items.OcelotCard override def build(): OcelotCardItem = new OcelotCardItem(new OcelotCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/RedstoneCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/RedstoneCardItem.scala index f0d4136..ac144ee 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/RedstoneCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/RedstoneCardItem.scala @@ -21,7 +21,7 @@ object RedstoneCardItem { abstract class Factory extends ItemFactory { override def name: String = s"Redstone Card (${tier.get.label})" - override def icon: IconSource = IconSource.RedstoneCard(tier.get) + override def icon: IconSource = IconSource.Items.RedstoneCard(tier.get) } class Tier1(val redstoneCard: Redstone.Tier1) extends RedstoneCardItem { diff --git a/src/main/scala/ocelot/desktop/inventory/item/SelfDestructingCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/SelfDestructingCardItem.scala index 362c2af..82261b6 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/SelfDestructingCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/SelfDestructingCardItem.scala @@ -29,7 +29,7 @@ object SelfDestructingCardItem { override def tier: Option[Tier] = Some(Tier.Two) - override def icon: IconSource = IconSource.SelfDestructingCard + override def icon: IconSource = IconSource.Items.SelfDestructingCard override def build(): SelfDestructingCardItem = new SelfDestructingCardItem(new SelfDestructingCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/ServerItem.scala b/src/main/scala/ocelot/desktop/inventory/item/ServerItem.scala index ce5120b..6511a8a 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/ServerItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/ServerItem.scala @@ -1,6 +1,7 @@ package ocelot.desktop.inventory.item import ocelot.desktop.graphics.IconSource +import ocelot.desktop.inventory.traits.RackMountableItem import ocelot.desktop.inventory.{ItemFactory, ItemRecoverer} import ocelot.desktop.ui.widget.slot._ import ocelot.desktop.util.ComputerType.ComputerType @@ -106,7 +107,7 @@ object ServerItem { override def tier: Option[Tier] = Some(_tier) - override def icon: IconSource = IconSource.Server(_tier) + override def icon: IconSource = IconSource.Items.Server(_tier) override def build(): ServerItem = { val item = new ServerItem(new Server(_tier)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/SoundCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/SoundCardItem.scala index 567ab93..4e43eca 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/SoundCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/SoundCardItem.scala @@ -45,7 +45,7 @@ object SoundCardItem { override def tier: Option[Tier] = Some(Tier.Two) - override def icon: IconSource = IconSource.SoundCard + override def icon: IconSource = IconSource.Items.SoundCard override def build(): SoundCardItem = new SoundCardItem(new SoundCard) diff --git a/src/main/scala/ocelot/desktop/inventory/item/TapeItem.scala b/src/main/scala/ocelot/desktop/inventory/item/TapeItem.scala index 15072d5..4e129e6 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/TapeItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/TapeItem.scala @@ -55,7 +55,7 @@ object TapeItem { override def tier: Option[Tier] = None - override def icon: IconSource = IconSource.Tape(kind) + override def icon: IconSource = IconSource.Items.Tape(kind) override def build(): TapeItem = new TapeItem(new Tape(kind)) diff --git a/src/main/scala/ocelot/desktop/inventory/item/WirelessNetworkCardItem.scala b/src/main/scala/ocelot/desktop/inventory/item/WirelessNetworkCardItem.scala index 487478a..ae9e3b1 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/WirelessNetworkCardItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/item/WirelessNetworkCardItem.scala @@ -14,7 +14,7 @@ object WirelessNetworkCardItem { abstract class Factory extends ItemFactory { override def name: String = s"Wireless Net. Card (${tier.get.label})" - override def icon: IconSource = IconSource.WirelessNetworkCard(tier.get) + override def icon: IconSource = IconSource.Items.WirelessNetworkCard(tier.get) } class Tier1(override val card: WirelessNetworkCard.Tier1) extends WirelessNetworkCardItem(card) { diff --git a/src/main/scala/ocelot/desktop/inventory/item/RackMountableItem.scala b/src/main/scala/ocelot/desktop/inventory/traits/RackMountableItem.scala similarity index 86% rename from src/main/scala/ocelot/desktop/inventory/item/RackMountableItem.scala rename to src/main/scala/ocelot/desktop/inventory/traits/RackMountableItem.scala index 3982698..b57bb32 100644 --- a/src/main/scala/ocelot/desktop/inventory/item/RackMountableItem.scala +++ b/src/main/scala/ocelot/desktop/inventory/traits/RackMountableItem.scala @@ -1,7 +1,6 @@ -package ocelot.desktop.inventory.item +package ocelot.desktop.inventory.traits import ocelot.desktop.inventory.Item -import ocelot.desktop.inventory.traits.ComponentItem import ocelot.desktop.node.nodes.RackNode import ocelot.desktop.ui.widget.contextmenu.ContextMenu import totoro.ocelot.brain.entity.result diff --git a/src/main/scala/ocelot/desktop/node/ComputerAwareNode.scala b/src/main/scala/ocelot/desktop/node/ComputerAwareNode.scala index e01c0e3..0207c17 100644 --- a/src/main/scala/ocelot/desktop/node/ComputerAwareNode.scala +++ b/src/main/scala/ocelot/desktop/node/ComputerAwareNode.scala @@ -1,8 +1,7 @@ package ocelot.desktop.node +import ocelot.desktop.OcelotDesktop import ocelot.desktop.audio._ -import ocelot.desktop.entity.OcelotCard -import ocelot.desktop.geometry.FloatUtils.ExtendedFloat import ocelot.desktop.geometry.Vector2D import ocelot.desktop.graphics.Graphics import ocelot.desktop.inventory.SyncedInventory @@ -13,20 +12,18 @@ import ocelot.desktop.ui.event.BrainEvent import ocelot.desktop.ui.event.handlers.DiskActivityHandler import ocelot.desktop.ui.widget.ComputerErrorMessageLabel import ocelot.desktop.util.Messages -import ocelot.desktop.{ColorScheme, OcelotDesktop} import totoro.ocelot.brain.Settings import totoro.ocelot.brain.entity.traits.{Entity, Environment, WorkspaceAware} import totoro.ocelot.brain.event._ import java.util.Calendar -import scala.collection.mutable import scala.collection.mutable.ArrayBuffer -import scala.util.Random abstract class ComputerAwareNode(entity: Entity with Environment with WorkspaceAware) extends EntityNode(entity) with SyncedInventory with DiskActivityHandler + with OcelotLogParticleNode with ShiftClickNode { // access should be synchronized because messages are added in the update thread @@ -36,20 +33,6 @@ abstract class ComputerAwareNode(entity: Entity with Environment with WorkspaceA messages += ((0f, message)) } - private case class LogParticle( - var time: Float = -LogParticleGrow, - angle: Float = Random.between(0f, 2 * math.Pi.toFloat * LogParticleMaxAngle) - ) - - // access should be synchronized because log particles are added in the update thread - private val logParticles = mutable.ArrayDeque.empty[LogParticle] - - private def addLogParticle(): Unit = logParticles.synchronized { - if (logParticles.length < MaxLogParticles) { - logParticles += LogParticle() - } - } - private lazy val soundCardSounds: (SoundStream, SoundSource) = Audio.newStream(SoundCategory.Records) private def soundCardStream: SoundStream = soundCardSounds._1 private def soundCardSource: SoundSource = soundCardSounds._2 @@ -84,17 +67,9 @@ abstract class ComputerAwareNode(entity: Entity with Environment with WorkspaceA SoundSource.MinecraftExplosion.play() destroy() }) - - case BrainEvent(OcelotCard.LogEvent.CardToUser(_, _)) => - addLogParticle() } override def update(): Unit = { - logParticles.synchronized { - logParticles.foreach(particle => particle.time += LogParticleMoveSpeed * UiHandler.dt) - logParticles.filterInPlace(_.time <= 1f) - } - messages.synchronized { messages.mapInPlace { case (t, message) => (t + ErrorMessageMoveSpeed * UiHandler.dt, message) } messages.filterInPlace(_._1 <= 1f) @@ -111,28 +86,9 @@ abstract class ComputerAwareNode(entity: Entity with Environment with WorkspaceA } } - private def drawLogParticles(g: Graphics): Unit = logParticles.synchronized { - for (particle <- logParticles) { - val size = (1 + particle.time / LogParticleGrow).clamp() * LogParticleSize - val offset = particle.time.clamp() * LogParticleMoveDistance - val alpha = 1 - particle.time.clamp() - - val r1 = (bounds.w max bounds.h) / math.sqrt(2) + offset + LogParticlePadding - val r2 = r1 + size - - for (i <- 0 until LogParticleCount) { - val angle = particle.angle + (2 * math.Pi).toFloat * i / LogParticleCount - val v = Vector2D.unit(angle) - val p1 = v * r1 + bounds.center - val p2 = v * r2 + bounds.center - g.line(p1, p2, 1f, ColorScheme("LogParticle").mapA(_ => alpha)) - } - } - } - override def drawParticles(g: Graphics): Unit = { + super.drawParticles(g) drawMessageParticles(g) - drawLogParticles(g) } protected def drawOverlay(g: Graphics): Unit = { @@ -162,15 +118,6 @@ object ComputerAwareNode { private val MaxErrorMessageDistance: Float = 50f private val ErrorMessageMoveSpeed: Float = 0.5f - private val MaxLogParticles: Int = 15 - private val LogParticleMaxAngle: Float = 0.25f - private val LogParticleCount: Int = 12 - private val LogParticleGrow: Float = 0.25f - private val LogParticlePadding: Float = 2f - private val LogParticleSize: Float = 10f - private val LogParticleMoveSpeed: Float = 1f - private val LogParticleMoveDistance: Float = 20f - private var HolidaySprite: Option[String] = None { diff --git a/src/main/scala/ocelot/desktop/node/Node.scala b/src/main/scala/ocelot/desktop/node/Node.scala index f29c10a..d36de0e 100644 --- a/src/main/scala/ocelot/desktop/node/Node.scala +++ b/src/main/scala/ocelot/desktop/node/Node.scala @@ -3,6 +3,7 @@ package ocelot.desktop.node import ocelot.desktop.audio.SoundSource import ocelot.desktop.color.{Color, RGBAColor} import ocelot.desktop.geometry.{Rect2D, Size2D, Vector2D} +import ocelot.desktop.graphics.IconSource.Animation import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.node.Node._ import ocelot.desktop.ui.event.handlers.{ClickHandler, DragHandler, HoverHandler} @@ -116,8 +117,11 @@ abstract class Node extends Widget with DragHandler with ClickHandler with Hover super.dispose() } + // TODO: remove this (subsumed by iconSource) def icon: String = "icons/NA" + def iconSource: IconSource = IconSource(icon) + def iconColor: Color = RGBAColor(255, 255, 255) def ports: Array[NodePort] = Array() @@ -257,12 +261,13 @@ abstract class Node extends Widget with DragHandler with ClickHandler with Hover drawHighlight(g) g.sprite( - icon, + iconSource.path, position. x + HighlightThickness, position.y + HighlightThickness, size.width - HighlightThickness * 2, size.height - HighlightThickness * 2, - iconColor + iconColor, + iconSource.animation, ) } diff --git a/src/main/scala/ocelot/desktop/node/NodeRegistry.scala b/src/main/scala/ocelot/desktop/node/NodeRegistry.scala index d556bcc..a15dad3 100644 --- a/src/main/scala/ocelot/desktop/node/NodeRegistry.scala +++ b/src/main/scala/ocelot/desktop/node/NodeRegistry.scala @@ -1,6 +1,7 @@ package ocelot.desktop.node -import ocelot.desktop.entity.{Camera, OpenFMRadio} +import ocelot.desktop.entity.{Camera, OcelotBlock, OpenFMRadio} +import ocelot.desktop.graphics.IconSource import ocelot.desktop.node.nodes._ import totoro.ocelot.brain.entity.{Cable, Case, ColorfulLamp, FloppyDiskDrive, HologramProjector, IronNoteBlock, Microcontroller, NoteBlock, Rack, Raid, Relay, Screen, TapeDrive} import totoro.ocelot.brain.util.Tier @@ -100,4 +101,12 @@ object NodeRegistry { addType(NodeType("Tape Drive", "nodes/TapeDrive", None) { new TapeDriveNode(new TapeDrive) }) + + // ------------------------------ Custom nodes ------------------------------ + + nextGroup("Custom") + + addType(NodeType("Ocelot Block", IconSource.Nodes.OcelotBlock.Default, None) { + new OcelotBlockNode(new OcelotBlock) + }) } diff --git a/src/main/scala/ocelot/desktop/node/NodeType.scala b/src/main/scala/ocelot/desktop/node/NodeType.scala index 2e0f22c..6570b1a 100644 --- a/src/main/scala/ocelot/desktop/node/NodeType.scala +++ b/src/main/scala/ocelot/desktop/node/NodeType.scala @@ -1,17 +1,27 @@ package ocelot.desktop.node +import ocelot.desktop.graphics.IconSource import totoro.ocelot.brain.util.Tier.Tier -class NodeType(val name: String, val icon: String, val tier: Option[Tier], factory: => Node) extends Ordered[NodeType] { +class NodeType(val name: String, val icon: IconSource, val tier: Option[Tier], factory: => Node) + extends Ordered[NodeType] { def make(): Node = factory override def compare(that: NodeType): Int = this.name.compare(that.name) } object NodeType { - def apply(name: String, icon: String, tier: Tier)(factory: => Node): NodeType = + // TODO: remove this + def apply(name: String, icon: IconSource, tier: Tier)(factory: => Node): NodeType = new NodeType(name, icon, Some(tier), factory) - def apply(name: String, icon: String, tier: Option[Tier])(factory: => Node): NodeType = + def apply(name: String, icon: String, tier: Tier)(factory: => Node): NodeType = + new NodeType(name, IconSource(icon), Some(tier), factory) + + // TODO: remove this + def apply(name: String, icon: IconSource, tier: Option[Tier])(factory: => Node): NodeType = new NodeType(name, icon, tier, factory) + + def apply(name: String, icon: String, tier: Option[Tier])(factory: => Node): NodeType = + new NodeType(name, IconSource(icon), tier, factory) } diff --git a/src/main/scala/ocelot/desktop/node/NodeTypeWidget.scala b/src/main/scala/ocelot/desktop/node/NodeTypeWidget.scala index eef2e4c..7e21c66 100644 --- a/src/main/scala/ocelot/desktop/node/NodeTypeWidget.scala +++ b/src/main/scala/ocelot/desktop/node/NodeTypeWidget.scala @@ -39,12 +39,13 @@ class NodeTypeWidget(val nodeType: NodeType) extends Widget with ClickHandler wi val size = Spritesheet.spriteSize(nodeType.icon) * 4 g.sprite( - nodeType.icon, + nodeType.icon.path, position.x + Size / 2 - size.width / 2, position.y + Size / 2 - size.height / 2, size.width, size.height, - nodeType.tier.map(TierColor.get).getOrElse(Color.White) + nodeType.tier.map(TierColor.get).getOrElse(Color.White), + nodeType.icon.animation, ) } diff --git a/src/main/scala/ocelot/desktop/node/OcelotLogParticleNode.scala b/src/main/scala/ocelot/desktop/node/OcelotLogParticleNode.scala new file mode 100644 index 0000000..2f0b259 --- /dev/null +++ b/src/main/scala/ocelot/desktop/node/OcelotLogParticleNode.scala @@ -0,0 +1,80 @@ +package ocelot.desktop.node + +import ocelot.desktop.ColorScheme +import ocelot.desktop.entity.traits.OcelotInterface +import ocelot.desktop.geometry.FloatUtils.ExtendedFloat +import ocelot.desktop.geometry.Vector2D +import ocelot.desktop.graphics.Graphics +import ocelot.desktop.node.OcelotLogParticleNode._ +import ocelot.desktop.ui.UiHandler +import ocelot.desktop.ui.event.BrainEvent + +import scala.collection.mutable +import scala.util.Random + +trait OcelotLogParticleNode extends Node { + private case class LogParticle( + var time: Float = -LogParticleGrow, + angle: Float = Random.between(0f, 2 * math.Pi.toFloat * LogParticleMaxAngle) + ) + + // access should be synchronized because log particles are added in the update thread + private val logParticles = mutable.ArrayDeque.empty[LogParticle] + + private def addLogParticle(): Unit = logParticles.synchronized { + if (logParticles.length < MaxLogParticles) { + logParticles += LogParticle() + } + } + + eventHandlers += { + case BrainEvent(OcelotInterface.LogEvent.CardToUser(_, _)) => + addLogParticle() + } + + override def update(): Unit = { + super.update() + + logParticles.synchronized { + logParticles.foreach(particle => particle.time += LogParticleMoveSpeed * UiHandler.dt) + logParticles.filterInPlace(_.time <= 1f) + } + } + + private def drawLogParticles(g: Graphics): Unit = logParticles.synchronized { + for (particle <- logParticles) { + val size = (1 + particle.time / LogParticleGrow).clamp() * LogParticleSize + val offset = particle.time.clamp() * LogParticleMoveDistance + val alpha = 1 - particle.time.clamp() + + val r1 = (bounds.w max bounds.h) / math.sqrt(2) + offset + LogParticlePadding + val r2 = r1 + size + + for (i <- 0 until LogParticleCount) { + val angle = particle.angle + (2 * math.Pi).toFloat * i / LogParticleCount + val v = Vector2D.unit(angle) + val p1 = v * r1 + bounds.center + val p2 = v * r2 + bounds.center + g.line(p1, p2, 1f, ColorScheme("LogParticle").mapA(_ => alpha)) + } + } + } + + override def drawParticles(g: Graphics): Unit = { + super.drawParticles(g) + drawLogParticles(g) + } +} + +object OcelotLogParticleNode { + private val MaxLogParticles: Int = 15 + private val LogParticleMaxAngle: Float = 0.25f + private val LogParticleCount: Int = 12 + private val LogParticleGrow: Float = 0.25f + private val LogParticlePadding: Float = 2f + private val LogParticleSize: Float = 10f + private val LogParticleMoveSpeed: Float = 1f + private val LogParticleMoveDistance: Float = 20f +} + + diff --git a/src/main/scala/ocelot/desktop/node/nodes/OcelotBlockNode.scala b/src/main/scala/ocelot/desktop/node/nodes/OcelotBlockNode.scala new file mode 100644 index 0000000..8ac98dd --- /dev/null +++ b/src/main/scala/ocelot/desktop/node/nodes/OcelotBlockNode.scala @@ -0,0 +1,83 @@ +package ocelot.desktop.node.nodes + +import ocelot.desktop.color.RGBAColorNorm +import ocelot.desktop.entity.OcelotBlock +import ocelot.desktop.entity.traits.OcelotInterface +import ocelot.desktop.geometry.FloatUtils.ExtendedFloat +import ocelot.desktop.graphics.{Graphics, IconSource} +import ocelot.desktop.node.Node.HighlightThickness +import ocelot.desktop.node.nodes.OcelotBlockNode.ActivityFadeOutMs +import ocelot.desktop.node.{EntityNode, LabeledEntityNode, OcelotLogParticleNode, WindowedNode} +import ocelot.desktop.ui.widget.LogWidget +import ocelot.desktop.ui.widget.LogWidget.LogEntry +import ocelot.desktop.util.OcelotInterfaceLogStorage +import ocelot.desktop.windows.OcelotInterfaceWindow + +class OcelotBlockNode(val ocelot: OcelotBlock) + extends EntityNode(ocelot) + with LabeledEntityNode + with OcelotLogParticleNode + with OcelotInterfaceLogStorage + with WindowedNode[OcelotInterfaceWindow] { + + override def name: String = "Ocelot Block" + + override def iconSource: IconSource = IconSource.Nodes.OcelotBlock.Default + + override def ocelotInterface: OcelotInterface = ocelot + + private var lastRx: Long = -1L + private var lastTx: Long = -1L + + override protected def onMessagesAdded(entries: => Iterable[LogWidget.LogEntry]): Unit = { + super.onMessagesAdded(entries) + + var hasRx = false + var hasTx = false + + for (entry <- entries.iterator.takeWhile(_ => !hasRx || !hasTx)) { + entry match { + case _: LogEntry.Rx => hasRx = true + case _: LogEntry.Tx => hasTx = true + } + } + + val t = System.currentTimeMillis() + + if (hasRx) { + lastRx = t + } + + if (hasTx) { + lastTx = t + } + } + + override def draw(g: Graphics): Unit = { + super.draw(g) + + val t = System.currentTimeMillis() + drawActivity(g, IconSource.Nodes.OcelotBlock.Rx, lastRx, t) + drawActivity(g, IconSource.Nodes.OcelotBlock.Tx, lastTx, t) + } + + private def drawActivity(g: Graphics, icon: IconSource, lastActivity: Long, currentTime: Long): Unit = { + val alpha = (1 - (currentTime - lastActivity) / ActivityFadeOutMs).clamp() + + if (alpha > 0) { + g.sprite( + icon.path, + position.x + HighlightThickness, + position.y + HighlightThickness, + size.width - HighlightThickness * 2, + size.height - HighlightThickness * 2, + RGBAColorNorm(1f, 1f, 1f, alpha), + icon.animation, + ) + } + } +} + +object OcelotBlockNode { + private val ActivityFadeOutMs: Float = 300f +} diff --git a/src/main/scala/ocelot/desktop/node/nodes/RackNode.scala b/src/main/scala/ocelot/desktop/node/nodes/RackNode.scala index da7e58b..087cb2f 100644 --- a/src/main/scala/ocelot/desktop/node/nodes/RackNode.scala +++ b/src/main/scala/ocelot/desktop/node/nodes/RackNode.scala @@ -3,7 +3,8 @@ package ocelot.desktop.node.nodes import ocelot.desktop.geometry.{Rect2D, Size2D, Vector2D} import ocelot.desktop.graphics.{Graphics, IconSource} import ocelot.desktop.inventory.Item -import ocelot.desktop.inventory.item.{DiskDriveMountableItem, RackMountableItem, ServerItem} +import ocelot.desktop.inventory.item.{DiskDriveMountableItem, ServerItem} +import ocelot.desktop.inventory.traits.RackMountableItem import ocelot.desktop.node.Node.{HighlightThickness, NoHighlightSize, Size, TexelCount} import ocelot.desktop.node.{ComputerAwareNode, NodePort, WindowedNode} import ocelot.desktop.ui.event.{BrainEvent, ClickEvent} diff --git a/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala b/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala index 0638eae..706e37b 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/DiskEditWindow.scala @@ -79,7 +79,7 @@ class DiskEditWindow(item: DiskItem) extends PanelWindow { for (dyeColor <- row) { def isColorSelected: Boolean = dyeColor == item.color.get - val floppyIcon = IconSource.FloppyDisk(dyeColor).path + val floppyIcon = IconSource.Items.FloppyDisk(dyeColor).path children :+= new IconButton( floppyIcon, floppyIcon, diff --git a/src/main/scala/ocelot/desktop/ui/widget/slot/RackMountableSlotWidget.scala b/src/main/scala/ocelot/desktop/ui/widget/slot/RackMountableSlotWidget.scala index 98d2e0b..493dc67 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/slot/RackMountableSlotWidget.scala +++ b/src/main/scala/ocelot/desktop/ui/widget/slot/RackMountableSlotWidget.scala @@ -2,7 +2,8 @@ package ocelot.desktop.ui.widget.slot import ocelot.desktop.graphics.IconSource import ocelot.desktop.inventory.Inventory -import ocelot.desktop.inventory.item.{RackMountableItem, ServerItem} +import ocelot.desktop.inventory.item.ServerItem +import ocelot.desktop.inventory.traits.RackMountableItem class RackMountableSlotWidget(slot: Inventory#Slot) extends SlotWidget[RackMountableItem](slot) diff --git a/src/main/scala/ocelot/desktop/util/OcelotInterfaceLogStorage.scala b/src/main/scala/ocelot/desktop/util/OcelotInterfaceLogStorage.scala new file mode 100644 index 0000000..41f7aab --- /dev/null +++ b/src/main/scala/ocelot/desktop/util/OcelotInterfaceLogStorage.scala @@ -0,0 +1,167 @@ +package ocelot.desktop.util + +import ocelot.desktop.entity.traits.OcelotInterface +import ocelot.desktop.ui.event.{BrainEvent, EventAware} +import ocelot.desktop.ui.widget.LogWidget.LogEntry +import ocelot.desktop.ui.widget.window.Windowed +import ocelot.desktop.util.OcelotInterfaceLogStorage._ +import ocelot.desktop.windows.OcelotInterfaceWindow +import totoro.ocelot.brain.nbt.ExtendedNBT.extendNBTTagList +import totoro.ocelot.brain.nbt.{NBT, NBTBase, NBTTagCompound, NBTTagString} + +import scala.collection.mutable +import scala.jdk.CollectionConverters.BufferHasAsJava + +trait OcelotInterfaceLogStorage + extends EventAware + with Persistable + with Windowed[OcelotInterfaceWindow] + with Logging { + + def ocelotInterface: OcelotInterface + + def name: String + + override def createWindow(): OcelotInterfaceWindow = new OcelotInterfaceWindow(this) + + private var _messageLimit: Int = 1000 + + // NOTE: access must be synchronized! + // ocelot.log() is a direct method, so it may push events even if the tick lock is not acquired + private val _entries = mutable.ArrayDeque.empty[LogEntry] + + eventHandlers += { + case BrainEvent(OcelotInterface.LogEvent.Clear(_)) => + clear() + + case BrainEvent(OcelotInterface.LogEvent.CardToUser(_, message)) => + addEntry(LogEntry.Rx(message)) + + case BrainEvent(OcelotInterface.LogEvent.UserToCard(_, message)) => + addEntry(LogEntry.Tx(message)) + } + + private def loadEntry(nbt: NBTTagCompound): Either[String, LogEntry] = { + nbt.getString(EntryKindTag) match { + case EntryKindRx => Right(LogEntry.Rx(nbt.getString(EntryMessageTag))) + case EntryKindTx => Right(LogEntry.Tx(nbt.getString(EntryMessageTag))) + + case "" => Left("entry kind not set") + case k => Left(s"unknown entry kind: $k") + } + } + + private def saveEntry(entry: LogEntry): NBTTagCompound = { + val result = new NBTTagCompound() + + entry match { + case LogEntry.Rx(message) => + result.setString(EntryKindTag, EntryKindRx) + result.setString(EntryMessageTag, message) + + case LogEntry.Tx(message) => + result.setString(EntryKindTag, EntryKindTx) + result.setString(EntryMessageTag, message) + } + + result + } + + override def load(nbt: NBTTagCompound): Unit = { + super.load(nbt) + + clear() + + if (nbt.hasKey(MessageLimitTag)) { + messageLimit = nbt.getInteger(MessageLimitTag) + } + + val entries = if (nbt.hasKey(EntriesTag)) { + nbt.getTagList(EntriesTag, NBT.TAG_COMPOUND).iterator[NBTTagCompound].zipWithIndex.flatMap { + case (entryNbt, idx) => + loadEntry(entryNbt) match { + case Left(err) => + logger.warn( + s"Could not restore log entry (idx $idx) of ocelot interface ${ocelotInterface.node.address}:" + + s" $err" + ) + + None + + case Right(entry) => Some(entry) + } + } + } else { + // old save format: plain messages + nbt + .getTagList(MessagesTag, NBT.TAG_STRING) + .iterator[NBTTagString] + .map(entryNbt => LogEntry.Rx(entryNbt.getString)) + } + + addEntries(entries.toSeq) + } + + override def save(nbt: NBTTagCompound): Unit = _entries.synchronized { + super.save(nbt) + + nbt.setTagList(EntriesTag, _entries.map(saveEntry(_).asInstanceOf[NBTBase]).asJava) + nbt.setInteger(MessageLimitTag, _messageLimit) + } + + def messageLimit: Int = _messageLimit + + def messageLimit_=(limit: Int): Unit = _entries.synchronized { + require(limit > 0) + ensureFreeSpace(_entries.length - limit) + _messageLimit = limit + } + + def entryCount: Int = _entries.synchronized { + _entries.length + } + + def clear(): Unit = _entries.synchronized { + val count = _entries.length + _entries.clear() + window.onMessagesRemoved(count) + } + + private def addEntry(entry: LogEntry): Unit = _entries.synchronized { + ensureFreeSpace(1) + _entries += entry + onMessagesAdded(Some(entry)) + } + + private def addEntries(entries: Seq[LogEntry]): Unit = _entries.synchronized { + ensureFreeSpace(entries.length) + val prevCount = _entries.length + _entries ++= entries.view.takeRight(messageLimit) + onMessagesAdded(_entries.view.takeRight(_entries.length - prevCount)) + } + + private def ensureFreeSpace(n: Int): Unit = _entries.synchronized { + val prevCount = _entries.length + _entries.takeRightInPlace(messageLimit - n) + val removedCount = prevCount - _entries.length + + if (removedCount > 0) { + window.onMessagesRemoved(removedCount) + } + } + + protected def onMessagesAdded(entries: => Iterable[LogEntry]): Unit = { + window.onMessagesAdded(entries) + } +} + +object OcelotInterfaceLogStorage { + private val MessagesTag = "messages" + private val EntriesTag = "entries" + private val MessageLimitTag = "limit" + + private val EntryKindTag = "kind" + private val EntryKindRx = "rx" + private val EntryKindTx = "tx" + private val EntryMessageTag = "msg" +} diff --git a/src/main/scala/ocelot/desktop/util/Spritesheet.scala b/src/main/scala/ocelot/desktop/util/Spritesheet.scala index 042e529..9c425b3 100644 --- a/src/main/scala/ocelot/desktop/util/Spritesheet.scala +++ b/src/main/scala/ocelot/desktop/util/Spritesheet.scala @@ -1,7 +1,7 @@ package ocelot.desktop.util import ocelot.desktop.geometry.{Rect2D, Size2D} -import ocelot.desktop.graphics.Texture +import ocelot.desktop.graphics.{IconSource, Texture} import javax.imageio.ImageIO import scala.collection.mutable @@ -15,6 +15,20 @@ object Spritesheet extends Resource with Logging { def spriteSize(sprite: String): Size2D = sprites(sprite).size * resolution + def spriteSize(iconSource: IconSource): Size2D = iconSource.animation match { + case Some(animation) => + animation.frameSize match { + case Some(size) => size + + case None => + val size = spriteSize(iconSource.path) + + Size2D(size.width, size.width) + } + + case None => spriteSize(iconSource.path) + } + def load(): Unit = { logger.info("Loading sprites") diff --git a/src/main/scala/ocelot/desktop/ui/widget/card/OcelotCardWindow.scala b/src/main/scala/ocelot/desktop/windows/OcelotInterfaceWindow.scala similarity index 81% rename from src/main/scala/ocelot/desktop/ui/widget/card/OcelotCardWindow.scala rename to src/main/scala/ocelot/desktop/windows/OcelotInterfaceWindow.scala index ab14aef..483ad49 100644 --- a/src/main/scala/ocelot/desktop/ui/widget/card/OcelotCardWindow.scala +++ b/src/main/scala/ocelot/desktop/windows/OcelotInterfaceWindow.scala @@ -1,15 +1,14 @@ -package ocelot.desktop.ui.widget.card +package ocelot.desktop.windows import ocelot.desktop.geometry.{Padding2D, Size2D} -import ocelot.desktop.inventory.item.OcelotCardItem import ocelot.desktop.ui.layout.{AlignItems, Layout, LinearLayout} import ocelot.desktop.ui.widget.LogWidget.LogEntry -import ocelot.desktop.ui.widget.{Button, Checkbox, Filler, Label, LogWidget, PaddingBox, TextInput, Widget} import ocelot.desktop.ui.widget.window.PanelWindow -import ocelot.desktop.util.Orientation +import ocelot.desktop.ui.widget.{Button, Checkbox, Filler, Label, LogWidget, PaddingBox, TextInput, Widget} +import ocelot.desktop.util.{OcelotInterfaceLogStorage, Orientation} -class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { - override protected def title: String = s"Ocelot card ${item.component.node.address}" +class OcelotInterfaceWindow(storage: OcelotInterfaceLogStorage) extends PanelWindow { + override protected def title: String = s"${storage.name} ${storage.ocelotInterface.node.address}" private val logWidget: LogWidget = new LogWidget { override protected def textWidth: Int = 50 @@ -30,7 +29,7 @@ class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { } children :+= new Label { - override def text: String = s"Messages: ${item.entryCount} / ${item.messageLimit}" + override def text: String = s"Messages: ${storage.entryCount} / ${storage.messageLimit}" } children :+= new Widget { @@ -46,7 +45,7 @@ class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { Padding2D(right = 12) ) - children :+= new TextInput(item.messageLimit.toString) { + children :+= new TextInput(storage.messageLimit.toString) { private def parseInput(text: String): Option[Int] = text.toIntOption.filter(_ > 0) override def minimumSize: Size2D = super.minimumSize.copy(width = 60) @@ -57,7 +56,7 @@ class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { override def onConfirm(): Unit = { for (messageLimit <- parseInput(text)) { - item.messageLimit = messageLimit + storage.messageLimit = messageLimit } super.onConfirm() @@ -82,7 +81,7 @@ class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { }) private def clear(): Unit = { - item.clear() + storage.clear() } def onMessagesAdded(entries: Iterable[LogEntry]): Unit = { @@ -94,6 +93,6 @@ class OcelotCardWindow(item: OcelotCardItem) extends PanelWindow { } def pushLine(line: String): Unit = { - item.component.pushMessage(line) + storage.ocelotInterface.pushMessage(line) } }