From dcccb4e2b6837f4553cad65cac2302eaf7e4a7f8 Mon Sep 17 00:00:00 2001 From: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com> Date: Sun, 30 Jan 2022 08:42:20 -0800 Subject: [PATCH] MSXHawk Linux (#3110) * hack up a makefile for this * hack up a build for linux, also fuck msvc fuck msvc fuck msvc * make this work with the so * thanks line endings * lol --- Assets/dll/libMSXHawk.so | Bin 0 -> 545752 bytes libHawk/MSXHawk/MSXHawk/AY_3_8910.h | 7 +- libHawk/MSXHawk/MSXHawk/Core.h | 23 +- libHawk/MSXHawk/MSXHawk/MSXHawk.h | 11 +- libHawk/MSXHawk/MSXHawk/Memory.h | 16 +- libHawk/MSXHawk/MSXHawk/SCC.h | 6 + libHawk/MSXHawk/MSXHawk/TMS9918A.h | 1 + libHawk/MSXHawk/MSXHawk/Z80A.h | 10 + libHawk/MSXHawk/MSXHawk/pch.cpp | 2 + libHawk/MSXHawk/Makefile | 11 + .../Computers/MSX/LibMSX.cs | 389 +++++++++--------- 11 files changed, 265 insertions(+), 211 deletions(-) create mode 100755 Assets/dll/libMSXHawk.so create mode 100644 libHawk/MSXHawk/Makefile diff --git a/Assets/dll/libMSXHawk.so b/Assets/dll/libMSXHawk.so new file mode 100755 index 0000000000000000000000000000000000000000..a6d59e33c104e5a2d8599a7fe0bf695610f6262e GIT binary patch literal 545752 zcmeFa33wFMwy@nH1j5(>K|oQ0L^OaiE=fl8BVo0cfV z;EYB+dYm|d5Jez>1oSun&c_LGN((BY0)oK5-nFZTL{P8)z4!Z`?;$*)-nG`=t9I?Z zYtvHFOM{9><=X~L# zQ>|K;_@K}9yJWCSl2uTaaC5=U92xtHA46xBT>J8Kb3Si&!LRLF^=mi&^CB_3=#D4J zFQ?&(CneYZSL4LOCWT3^xM$nCn_z1rzis80TOdV#PnF;H^4mdv&ye4a^4m#%&y-(& zI?L}_@|!BZY4ZEq)T?%tecyZO%(PDi^*e3f(>?od*mw50rw@Gh;pl5mdgZx?3Qyep z!9yQEFmQ5l)i+c7etO*_n=k6`TU<8frg1kU|Mby-e|GE5ne4;tHK63n2 zIOS>O=({@lU5^+=Sl`O=lkNEVGQ-$=JL!{Zl;?FvpITwk-AMqHpDIVc)j6+IZLaei z|H)4Ib4+rV*U=X^`mv7wS;x;L=e*}QdRI=)=MotTx%&0#lXG_GROfiML=nwCbf{>%cJ7ku>N9kxr+5FHw9aRD z?or)VEh#~-mW)Mf%lI@wDM4lpwPb{eR7*zp^~9Rss;@Q)nKFOke{#kB<$t7)lXFaw zBhS%n`E53KY$KO=ze(aVx&?RLBg68#F3XYgT8*v84CYQp&OZS;!F8X={KQEKM#_=A zsq&kB+D#28-4jmw;W?*C`r5ANBI#?p20Q8H;F`3rw3bV*tK3O{)8^+Tf1+!HBTrU) zyz5;@&g*cuJn3t>zHt17=V9UbPxeT>%Ja#YXNC32BaD7m4SkZ6eq*{x8BQOTKfKUr zn5#IaR7YE5^ev2Q{l6+ke?p9YSByUV?8dw=M&CLn{U)b8i~>wc8)HjH&)ma|5R5)K zMlTf_`Dq`c*ZHzzNsZCR&cnLL=*^7IWJr(EhwBK7H%2cF9r?+Q(TB%c7>CB_rJ*A~ z!(#N|F%rfxF?#8!k)KI1`o_m=>V)V|CO|4JH=$pr+UmT-9K1N?2qi-3buZYoy$8s^|V|c6vj@7`i8aP%1$7NKB29DLhu^Kp51IKFMf3yaEa-Y24Ywb+*1`n(7z%w3o*Mx zk3?h^Hg<>ZipVTz><-O}$Sh>+4o!~8EMV*o4UfnyT9YL}tN3u0JBP&>+_z zky&7n>yOAREXehTWvT66CsW%QF0F5o$JdZ^YslBukO$Y02h@-=YsfXv*R6*A%o_5k zHRO|O$jxiWjcUjVHROXQRlnX}YRKQ!kiV)Se_BI+uZH|)4S9W7_6A-_SuE9`)njj7 zLRDvJax}%F@t!|3B~^4MsBUJ;BoxV_sOKoMQM4DuK500w|MRM1CwJK2YgM0#Wyjj; z=Xjmeff#=;siOKxA6J(@RQ0Ov(p@-36jeoH4UMU38iHvYrU7c|nPM*LO2-%dH_QLc zs$B(*Tva0-ung3pIj>U7>i0s1^E^a}cjWKM2+Ig6FExZ{no|If!GS4dft#g;qku zrqB|Is1$k%A|8bvhKNL=5{MWV3P41+&@3UZ^_^VNtuAjc(_GRzQC8i|>F7h{gssp} zh=3Kk1Y&J6lmW5I9XbzUT{4sku@V_N4Pvc3)EZ)SJJb|nJv)>Lu^ApZB(+mcXbb%e z5!6E8LWHx>R)|0rdLJT0hTeb(j-jI!$P$>6z=j zYraaziaVIq-r*gQXJdJ}@-bD_fn`q6mp@~peC>QDmT@A7Et&gDcbD@6d zxx*pPAHv-aLHxlw;&4q4(MnRLI(a>mU40J6t78(fM0QHA%gf4`} zLEWJ7P)BG2)E1fuwSXo;jiAX;JTwLRRqpZfsn8El9`qHI4}Aj`LkIQ?Jpug){R8?2dJ_5+dJ1|6`X}@n^fa^@dIowCdKP*bdJcL7 zdLAl;7DGYkUyud80Nn&FfhIyrpIaoWy`Yz%v!R!v4$umy4fG1s z99juAfL1|q&}wM!uR;~jchDN>3urC$5ws3^8+sL553Pq*K$XzHpbgMJppDRj&}-0q z=yk{s{TsR+dIQRb-h^(1-hzfhZ$m?%P0#>nGt>v#0`-92fzE>7g-(UugHD9rhnhei zKy{%Hp@aK`K7xLN{sV=ekDGfaXD8 zLO$p#=oaW}XfpH-G#aXcu7yI-KMJT(67)EXg~B6bO3r7`VA_94nhIw5Ht%q z3{4kGtEfH{`GtXNVZUE~H?)zV$d|iyC=w@mWhhdM!&)6d%1|T$X{nAZWhhby=?NVn z%1|T`X`zn!WGGS}=?)z!%21@CNM!)q;BV5XCJgR|Gz?Zj8U{auGz`8AX&8JR z(lA&7X&77vX&8J4(lGcaq+xI&q+#$*Xcbpp2(5;0hAN;*kcPogkcPo)APs|;LmCFX zkcPnvAPs|EAq|6PKpF;rQFt`BHFn9-~VXy$wFgOj;FgOm`W!kB+6tvY8U{~;Gz_+eGz>O{Gz=y}8U_#T64EgEGo)egTS&v;R!GC(`;dmg zHy{mzYatDT<&cKK=O7J(k3kv+?}Ic97DE~a=Rg_;XF?hVr$8D8$3PkeuY)uU4uUic zUIb|vOoucKo&#wZ>;!2TJO$D)*b>q(*cduQUDbvTL;HUq42H(i9f)nA9Ek818Vtol z7elon4@9^NoeL4_LT5sCp>_}fFVqUE2e~1_UMK--03DzSH2D1pY4H07(%|Lut?i=yYfzbP_ZPIu4o))q|!$hrbh=3jG4*K|7#)Xd5&Q z`T&{^y$Q{L)dzg^Hnfpu3>g zpu3^f(0u4cXaV#zR02H$-2;_ErBD!B2wBj*&`r>N&_w8dC>MGFx*B>Ax(s><>IXdx z^@0{bXG4!b9iT^{Hc%PV9C{3D06h-HK^H)KcL-eweFvpOUqBw{Bd9m@Hq-}N4`o0r zpiJmrP+#aDP(SEF$P3Mf`a^!`BItJLVkjTVf^LKcK*OO+pdrwu&;TeK>H}Q{^?)vi z&VmL)r$U3E6QRLS6X*)4E;Ix>_^r@T=qKn(Cy$4+b{TsRtS_5^4mP2Pj z&qAqC8I%Uy3w43!L1#lgs4H{})D4;podb=A&V{apx>0fH`KpP;9Yb&7?bW0$OYfnMR z=pKeNCYA{OZn5wuQC8jgjVu<1NT@{}|Fe)5bp(X2`Uw3imX8b9{NA68(0hxoV~d5y z77JNqGq)&|LsvYuSa@u)kbZD%vGCYpA^qUkV&SpHLi)kqUo7;-%f_|Yy)Nv%?RUeQ zyf3Skd?v$@PjyngW4&20TxAvvmzxE{#b&|qDYIbss97+)-z*p|Fbjr3vtT&KOq*x2 zV%LyzPk|aiyfk2@&DTM0bc3KI=pv{Iq?_PPp>xn32X%s)L8m~?p_b6`P-CbCR2ymu z?Pn9O6|@UF0s0y`5zjVodj)!PKH)NZJ?!4GW1VKhlqF{zcq{GYE zkPa_rKsr{O0O?qfS0Bu<_9{q+wb_skYx_bvtnCTuu(k`N!`k+c4&zUTbQs?Z(qVjk zNQdz*NQd!z7**&nekY{E`0bDm<3EIS82=We!+7?#%`pCDNQd!@Asxm)0qHRQ0Z51O zcSAaiw;`RT-3IA2Ee}ek{%(MDnl=p5Y1$Q#PSdg=ou>7Mbeh&3>Pz0vkWSN5Af2Y2 z0O>R>3DRj=9Z08Xzp;s@)3n`?PSdI&ou+*T=``(KNT+G9Lpn{XfOML+4AN=ZGmuWx z9))z8wh+>3+MSS2(+VM-rtxZonWjyGuHrgIK{`#l2GVKT<gr9?aE2s+;g4#nnp_8HSpk~mIP<`kZ z$OZih?O_w|H)tnx5ZVsKL32J5N`PiU^`I$GLud@t2)Yhx0u6$iLl;4bu7qYl*FY1XYoU?QaOf&17s`glLVcleP)}$))CHOhwTJSd zlcAfSX3$KiK6ESOf@VQ`J`nOjJ0U-`9hwV$2nC_Hpu3<~p%Un2=s{>P^bqs}^f2@Q zvBW68ao^1==%pf902 zps%0;=xb;i^bIr)s)DYELeNm?Tj&yK2b2NrgwBI@L8;I|=rrgwq3Y{`-|>=Z;r(K) zvCb&#f@i#QY+aDiYX?OiuFA>rYRx+a1=f|;^2#>7`(j$(&M0jjnkbZFNCBpye zx?pJN7ZOb4sJu&{T2KZQ51j|qhEkyf=rpJf)EcS_HH8wPM5rEgXuD8-=x3+_^exm7 z+6py--iI1PZ$NHnEtCY6LrtLPpr+7c&~eaxP&23)Y7WhTj)!JKEubk-OK1$#3c3zD z0U89I2weoVhSH&vpmU&;p-xa6=oBa!Y6-Q48bhZ*wV`&+0D z2D>_eNQHC)aT=r(h}Mu!Aeurtfk=dO0&$4Jq)s4yhI9h)Eu<5Ot&mP2-iLGo@dl(5 zh_#STAj%<~Ks*QO1mZDBClL2RI)NyLbOJF4dWq|p3F!o43ZxT=F_2Cmu7g&RZVZGrv` zZG?0(vkKD5%u+}vGyjBiGP4NM$;>^FPG;spI+>Xb>11XGq?4HmkWOYsLOPkb3ew3; zHl&l8zR*XMr6;75nJ$n{X4*qKnK>EylyuFY&!GB{PH?E7p$0#FiExy9*(`NG zTD?GHpbpSjs10-j)Ev4IY5Oym%gKrBJK|et@6oUNF=g=L{dr$!SH#8So0|lYw(4Ek;&^)LN zDu(Wb?tJQxuT?pL=b%XAQIzkUXZJ`ID z7SKabBj{l$9$Ezb`j*fm&=1g~&{t3y^fB}pv>AFF+5q*1Rzm%tC6E_-3hEC%3|$13 zKo>&+C<~ee4S=RYmq6p8OQ8`^HgqL)8FVRhIg|+vgwBTsL21xn=yd1`=p<+ebR0Ak zss~*O9ez{jD(DyJYG?;^4YUoq7Wx3X4tf*Hf!0C8pqHTG(DTss(Bseu=zeG@*#h7zDY z(1ACEGN2!!Oz0b^GxRBR7W5933cUuUL93xI(2LO7(9=*?=n<$JR0^E|1)+|R1$BaM zg3g2{LhYekr~`DhP>m%$cVXokd3A8$YI$|=6`|jmmt*dV`B|Y+o!xB+0IulgFAVku zdp-MUU02oZlE@o4v*MGw@;BJc{i5;)yUphyeJ)lu*8R(G2M3cJoZ zO8PkCZ$D`|9P;{idDnb@p?A%`cyC;#ck`jVX5!$NkBx)G!&^t`=S+n2^LZWxy;e$I zSANIAUaQv&l2WektGtHZK(Bj5Uv=e5sjrcT4r zlfC6+Iw?q(lKPjY#^bSwk2v@0{HB4ZMbT3g^+jkQzwRbQd}uumrsKe0l%aMp$>+^V zh7CnoqTokxP!z9;;>akDi(+0BXGXCwigTm5Ac_w}@v$gABdEpk7cCW(qP!B;Y$$p) zn(mD#z8l3)qWEPLcZShl^s}J&{4J`fU0drW*%%s%1;tQ3p~{|1dGynr}OJ==hdl`-Yxzjy_Ix9r=g^m-qc;nAJfqDQbhJIPe5{GIq)N>D_;gHqS}p7+!VzRqqsGSe4hnB;%t|L{(1X^oPHe>LN^qJKM7nCCq{3l zq$swGVsaG!%B@H0b;Z#DN-OR=Us`dwwqiMDr0dE(9W5~d)#=Z)DL+y)TGK(A&_Qn$ zv!ggPio>EfCW@1yI3tP$QM9929L0rETogus(UXEwz{O$B|4;+UDfY=JoSF$YS~z(A zkF{O2@nl>>`*lAr+J5QM46H@S4V6kQ{BeW&OS_ZE8QT2c8%L{+U7U{g-yTDw4aZZ@ zY1RMcC!dT}UDd`f1KrE|jkC7KyL~rEvv~tUx_bltk}HcQ&y@mH79`77ss}^x=mZ{Y{$lZ9OF|P zuB&6KsBY7?>*m-tR<~*M&E6!+%Gu{=l4v=#1!sS#wsULPlF88B@wru!#FRzbv4>-; zs%~pfzVjU0uIe^z&GQ}GzUsDA^7V9V+>0^i(+2J3*b=MTx=Tv`>?H1;*%xS%==GTf zZK<{kv6%*~O@kJ8lLoc+#kmXn$lSo%SIb@ag4D5`HQ5_1om?RPil&-YPM54QH7-sz zXI6Wm*b6+4p?!?O#?ad_q{bNLV(8--y2lubF=RM~^ccee44IC>8)I0Ap|4}ejxjud zp`T+I8e>>QEfo(#BNz7=$-J73%k>wJaSTsl=pSR4bQL`%dAfCvS86Q+i5QPnAC3Q+hi4u%@REnOyD3Bi&q|Jle-=Q~f-4 z(DK+(Z6aEpIcRz2sFu)Gzyk*@4;~!aOe`wkVI%8c;>e#p1}#yjfG15@I|(iEr+~+dYAXwPu;7;m ziV;G8o2MLBvF@|d}@D#!DVT@szoX%go6^+#0 zNRshf30F~-V;F;hhf3J6%Q1|@z!OCcl?6ONILAKhPL)g|4NngYF1>q9i{|Oc6Vb@Y zXON5sN%$N|j$tMS9v@*tOEFXy@X&A?P9GY+e@nx8xy8ca$2=lt^N5hEoSm$vCj9Vh zK+`^=;h}&gHKO5ZfTnvy!(#wVdPGC~N8^oX`Z}8Ih=zzynxT$HaF}4_Y+}6Bkp`PF zsv)?CHIr0BR98*qY@#}TW;lK-XA{oR6ht&cZZx)|5iC|eMDDQXg{mQP>m!%QUD#Lt z2!R;XRk}PesH+aBOe(fC_ zE;osH)`rQyk(wumcr1E8o|XP$eQFf&)QBp}^}$iVgX8ekvWiZq(V0nH+LkQS=XYFT zo+lpbS82@)q)0-vr%;xEjR^7i*X0PP=U22cD-<|(P=(?X- z(|1B;oaZH1y34gn&gjaL>y{3?<7zFx##y#pCC=vEoaNtQ?TgPJ9PBFrSc-T^4DMw` z`BFsx?ls%%ui4rtxFE?TFPD1bhqU)^?C&2`k?g4~bZI%Q%DDcs)-WFn^vlYU*b}_O z?W@RtKyI=2S#hubF8QG(DQD3yT2475$>glldtMY=P~TM{Z*@O3s@NNl%8=@seo028 zuGV^_C{kaIGUGO9#l5B$>M`&}Px{drbMI_;TV_dZBXS=#ogaj%4jmau>cW6)qjB|EvmHDkG4i{VLeIO{VYT z`~vDbD{jq>4bFa0M(`?Wm`mGB0qRblBDMA~{nh`D*4Y=0GJ_ACNO#DJ`>5KPc03r9 zpS2}lR^KYQU3vAgq`s^J3DaMXG^#d3_%gJEUD|%f)5V;TcB+0xX#zQ8s7a-T=9|IupKf3uXp<3GavyW=Une(b-$A5(V(%=NQUR4W>fFA3jQzsBX=Of1gJ zs}YBvGI!H0dfMu7IJH`*cH;1$YH|39XdJGd+KI#Of3NXP?x9qTVRzZ8LYW_J)-z4_@pAE z;a>k#WK_K_djER^b=}J*HB2wu>YBhr&9(;LRE*_JqKn@e7Q$?$K;sJF)B z-{iNG)1|>?ZLLsO72?WMu&==F|2Qx3$fkZqH0QuHe@?(-+7K7v=Tq z%Bbcw?}%peym9+4IJ{l1!y9l1{)M+nPs2F-vL^BxhCL|lM5`k1)WdR0|14}0zXEzn zJ3Gm}Y>O1iWlB`_%pM7=BL!yqV%)gyV+LPWY zNs85qOeeZa((CO>KOsqu^+(Ox?skvzXE#<)Zt;{v)t00;ka}w5E^I8Fmzpb>(a7!g z@rm(!(v#EOg`Gw3UN+=PJG+gueq#?A7pjm?2&3+Y+!%UMP@i|w3*`GKq-^vc&r6a| zUPEKpAeFLad)-;v3uxWquIbWvqH8WAOR3ME=u#bBvps8N*z~^oXc}j2PtKzy-RTwI z*YyTm>2@j^O`-}X5t>$Owl@%0-Eq~)an&M5*WS?`zh-+Ke{qURZCw7>tu=A(WrLDV zoV86mp3~o&IM?Y3UUtau%_!I(KP@4%@U{H2ysM<~U2;V-X_@2=y`=-!beGgaM)0Ej z8Me1!=vH*gh76^)ysIR&i)zs1e2K-L^y6yfHLFZ-T1y91Dz-*kCwI@b#DZVrTD`Vc zDBkuq4IPvW*7n4L{c)|f?A>B*kGHd%#_pdI4?KhW`+xBalGm^%CJprZ56JfwwH)aU z)IPPno;D*TF|ESuKg;XiTlL*S%3V99zyDRQwa-00UH*^D@8WSU8|<t8QtP7z1q z?1wD>_ALMRRUdFxw1JL09;j+1DdizhNX2M8^9=D^;TbF!poO2cQ)Z%4TX`w57g3lZ z6JM8H$A~pve@04@Z%f`FYk!x-|gc&z`e6x#j&{x z&vl+02^Hzm+m{R_V^_(zWBn)@|1MwMFEid1DE+W^yi67{QnCZ{whCtW4`ulGWd=vb zwSE7cD*y5-(FIn2BLBDD=eNF;qc>2vZkHV0%W9{3gLx^#Dl<}s>4nJjGA||DyCEZG zsFc9fQ~tJgsjRR~zoF;9-Gyt>eCqanE1FFA@-O}GXSDs=^Ulr;|5pDJ&LZcmb)<8U z`8&ykyEj>|ldqS_@^A14m&R8-E|=7{R9@M8M7(pIJrBBl_TM?f$IcmUtZ|0*a)#CS zNTv1G`<{|#wB1g*+kWGpA1=4l$pPxbzk(W)(n;kc>G$AJ%2OM-s%{YQxrE}}zEA5B z6_?fV2FImLvW+8eKzxvThV;mnYKiN#Exjvix0mIRZttBVFYHxG5xl__1=0_^^5s2= za!(v~7qTGXq|TJql&>CPG7Rr&@t1L`;R1OTC8`hF9JtDYOy}Lk5 z%!#x7OZ6+GBt*!!3YkKB1A|g#NXE5f#96rd`)#WFS^a0F%*YCul4J!;RrK%irn~3~GWuVWS%~JUs-yMiq~=tlUaY5))Wd3| z{!o3#e$Q23N5hCH{5@A)M3=TjpJ>t#nx*l|t7iN<0j9`#IIv=ZgI= zbd`oJ|E#M>OU9Xo(VHvWFx9%vrSl`*rdlJck_(oe^4A*SET<7@R;Ll%nVYJns_&y! z>Gs6x4dBz%u~quh-CBJ#tyIs&Ell-{C!JPbTdEJMR$oWQK0xe$q52LV|F^4eRrIb) zk|H{HUA5{9$i)RBwfCx&G17%)MaLD}gICK77Dws9UDW&0DsTcBV|s9grjD(^7w(Gf zf1jOgDzFpjv;t46*8f&H_J(5r3l+Gk`F}?RzFmCe3fx=gFIV8jl9URp(ffW;&qu4g zLlT8!E3d9pRrN2G%O}4)SQgQC@;H%5T4*AvJRIbk>*NXHF63ResNQ*agrjEs$dsNu zNoHjFzvAoZvNJmzBr#Djv&T1{ppRi*hPz)?_-pUtw9MjJ#uNd@6dI8w8V_k!*Th&2 zoeT?Rh!ZWBYz$iFIb?#re?wY@gv|o%Rg>m%SxfY(P|gTcelGNOlFMWE>)a+&P$|nZo_YmGrg!%5@-5k9MN6soq8fxW(8NwmT;b#_GMN_o{Ca! z?ZaUwGJZ3C%e~y<0_EEJh)45KlsZbxh}-I3Uh(&yfwQGd;oFe!)RSlZVR_askrE2Y zv;Hn2_cE=nEdOqK*jGrQwd2q(M184;%G$N$&Rt-{fO#-geGsfxH$9{V-Gyh$n`ov% zg5BP2YU<@V5=OrP(OsAz=d5ZkB_kYX_Sot69gqRK$2u54{XFjq(IQCfUWrlaKcK)W{x07T`pgc~t-cGiYwLA;7(|P4;^!X%>T?c*e zq?07sj^;WZGgspOjIK~MSFF~|lo@ADtKw>6pK8~rM;R>fa7dzKxAe-0{Z!QQWrA{7 zJo~etc|7kfAsogk{F^A%(~71-(k1!I4O2og)~ZNiWoFKp4&4j_NHyAD#g3B z5xvYSBUZVsyvP;EG6qb{^6#&Dlv1ljnvazFjc5a;m-<#njbcjHVO}VC4<{*k z8&&+b#<`g?&Yd5SdOA+rn|g{JtjkSSm52FftzAkd*Rf>Shz3&14OLfS`bbUbE>Eyu zyxdZ4WmwsEgBdyg@fiCnao$2aNR;U*omc*RNIXT?fBwt<669Jo+#%!s=VWE)Znunv zpAt!U4*Z~SRd+d^RIhaROGGE8y^ZTif2hii=+80w&yAk+tm+24)fc_wlxbeD*IF@F zorEda>kNE*%y~|RyBTf@cMvwG!=I$KjoWRcQMXG(5q5hcZYv{Mo-tVln=H>ovJ}K* z=}wmUkt{cvET@<(w?wiGh{=*bmSLEJyRZa$-+$k<@-cKgXL6VzBj__LrWsOE;J^>>qGtsuM2$;!;541 zxEMZBSnp$9Z;;t~)`*a2P=Ei=X3lQyOs%%y&_1ogx5e!{R|YjQKn+|h&xUeOUs)JW z(5}6jN8BiRo+M?-ohnOvR+f2s^pfk6eZ54DURnOGvX1bTCr)PkI;E0su|fU{-!78G)t-?~sz;^ZCRMQ8 zCk@TB;897;#SD<5>UBu5FEPcQLy~}&(J7%`09PWVPpfdsTlGBW`-8$!Uy;IfIa=Xn zMJ^%OEyF2Xf>XFlV+xmT3Kwed*9zD4PYTET!I8q1%sEQUWk*s4yFJ61B?ga?#MInn zF@?L_6fWy87A~Lj{XxxrB^@hLxP88(6mDQ7l}zBA!u?wkQ@9~9g}cHO?s-|a{wvM; zA?N#p!p&sFCBIr3S0Al#*GEzXyUpaxQgfZ1!d)3txS^(SP5)xy&i|9b?PZt|F5IfZ zqtx7|kyOEMU)D2)yGs&Na~H)FuD>Z zxSuUN>n)iP2oy`P(kfOZOB=`-^-R*3NTT;?Rf|6=hTA9%5YXYBf&hmRR0st38$b4=FflfzkSN!G9W z9VP2Cu~`qy*0UZTIcsgnIx^)bS#OQaT4Az&UN?N!M9KQLNJlI%drFZ4`%Km+B3Y9p z>(^5JBWC?Tt}~MLB9nD&B&$3cyX741th{a&$?7&)yGF96OV*N8j&jzJG*2Y!yR)>K z4%VsbDpk0L!7js}!ao;in$2*P;q~w*hF^j=8GaUi)$k*5x#1G{8N+^fk>Ok6 z1%@ZXw&7fOrr|5$Nrnf&BMp1tp@zG`S%y2n>4r~&yBcl+w>O*sw>JE1ZQ&%t-@&yF zZ-e*U9v&>M5B(x_60^fv%=o6ie;@k_BewJpEY6lj2(^&R&iggk^&=3ReGrxT^Zi)) zhU&7{zr0-B=zas~WvSM^tnh+*V;Z>DA|R|{U(RB!EU4Ft+0VtFXUNO0bXf;Cn<`%aFX2t0f(zo@3;H!ExGj!j z!-Cstacop@TRg|c?qz*zd#w#8dacSNyWh_u{$lt0MGkxHep2GTd+mOEy@9?`IsNuk z#Y-i+mz5;RiTv|h%m40Wz9w>5vo*2a+K8s9YLe=0@>?cN$#H15w~Wy=6ODgcVJBPDEo|I2wxQpU)^+K$wwgg*IGR&bqb`i5q#YVl3P(d>{PWof z6&I&!26f?RPE(D#Fq)Fn(HIwwhQj#gv%xAZI%o!U;b_iKjk++Jl8$I_;SH7y6!u#f z3RY4i=@(Y2gt&s0XF5`vN}V04i%MrX(%C9e4)S$XDb10(sno@h&Qa-XM>6QNecsg4Npy7pl<52gi$KophC%L5&ZMV z8OsQ!*jy!qH4r7c-2DNl_P$ zhQBIUvsFuBG$m7_E*#BNburVp$cwsgH2F~%MpH5^>cY`XR~H4w#f+#6M{`ruh0&DU z9ChJnZc!J7#>LF23rBNn)P>QM+!l4=Xl_>*wsBDqb>V1cMO_$8$!s*zA`(ZPG?r-O z)eyfmSG|-JY6`utjmGCgBQ+{{9L*fnXrx7>ulRJ6QLKBJEVV4zB+rhFVC^k^gSC6# zxaG6~BPuQl*7l`8E8TO1Y+x;zpCo@MJ<98zu-5C}eNnJ$9r){uf=g?;k4Qgu;fT)Y@{ z;b@jcT^LQt@~8_(Q?4#{8W%4`T{xPTqb`i5WJT14qj^PL>@qG^MqN0XRZ$m4Q?feh z!qHTyi=T~)HBlFiX02+pE{vvR9U4;?j^bWz>bylx&E)a5Nj$ z#c#&NYf%@D=Jluxqbd1!)PcY{y6?I`WC2vPvIGRoBqPB6dIqJgE zY>B!snv!>-E*#Cf>LSs&crWV0(YzmZVKgNlL|r(V57k9OwURG$r3eT{xO5be=s9C9m2nuqGSTcJmWC2#mHu%;SS$u3pxN0nz(!5>AHVF&U>l+oC3 zk<#rI(^LxnB$6GNu7dAp1Z#!}c1B7=iG07P;wDi@F@1ZGGEy34*w)RO;l;h8Nw=5W zVzTek)H6+XndSI?RmH7pE!l5!yY2b6ndAr5db<&RQ=z~J2UVD5ghMLKHo{>QEF-u) z6t~a_aVq$XP)mh5Mu=CT$OyGnu#J!)!YIFWhe&dLE9;2pS@TU|M!kKGR<5D0Ni)|; zlUOYcT1ivSq`A{cQ@>i8u(kn-GW;uwO`e7#N>DfFLPrT2Ice^8>g> zG)dLcpp_CeF=_5`(lo7>2Cbwy&ZJrBq-jzI^taHAd3(cCV_P z*xUVlq4kPLe(Op3pCkw4^5xUzG>LmvM)zb%vBac!#!2y8oUH6bQt;w(R!U<@7BI;c zJIM~j<)7>g1UQ$h8^}GeDkE+fY2DGZOP#d)#U+Uvg)?Z{=L_c>m*tX7uIa^-xF&P6 zCyrLtvnQ)cZ}xgd^>`aq>CIl>s2)sKmEPpbDl|anv>@IYH7mS zo+OgK-QMKsC1T`eM@I=RaMGON$QM@gBd%r14ZsgH}q^+ob92r0G*F4O&T) zVbY{JX)>#&K`UwcnlxRUH2tcjK`UvzCQVl-P5)|X!rF^OD;MA0WVu+R$j$EPvQ%eo zc2v~I0OQNt>?mVyc9)3Jn|+W-ekciQMcaMTV2Yx!Ii*F*mzO=5>-eH@hbL z{mpLDW;tnNZ+6G81O~a;O|ooBRTC1?U+x-eI8bkAL$!#M z6||b{LMq8!FE+oWw!q43k%Cq|Z2lE-nq);2@>$>P^LF^v+u^NQ`j@_ILh(O&ALli1 z|NCkS1l3aqNmc3f2h>9#c`Bx$=}&`HM+X)!W)cE zHp^ZxRL@z>4XeAZ!BDl3! z)+s`nYD%XcFG{CVn~AXR5f!$WY1gAFykmqi72Y+%V=BC7gvV8Q-w02r@PQHjp~8no zcv6LrjPR5S|1rWpRruHlPpj~W5uQ=uQzJa9!e>T!PKD2n@Vp9JMF^d>i#-jAW#)Y( z_p${EeXuTwXYtZ2e~2Y7Or+$06MAY#?E6B0xOntybn!?&n2u_WT|C-TZSkm{JU^s) zNVGquaacTxw9BgRBKt0Xc;35eM;5KxC;Z8IoBW0I_Wg_J&5WM6xb~l%x6xlX?^`<~ z*DF0Zg>D#}pDu@LJv$49>DfaCV=C|WJ$t5l%=nW*ZePBN1f<({9(Iw zNQkuC&^muof35z)dGD02>g>}={as_~Z;>1_WLiS4>FT5tAeN#q)wogc538}8I2Mm@ zNIGeeq*>~*wj8Q?OhI8hb{G6Zk6(PN9(zhU@i;~fQpRg=5L?EXD2&Hq!9VnPm+`nj z(uv24ny%iBx~lp!SAC7EoyOH~HC;8F9Vu07!9Oh3fskHjvZRwz6_PXd0vAVJee!3n z78_SvjjKefhN~15rmoTj|FBfK##M%-lTt0N>FUd z2Uhl7f094OlRsbV*TAkL|2MSz${!o{Yh?GWC5Og#-*`E=?Y_0;kYx8wkV6x@FDaYa zedVtm`yJ;E-j?L`_mwv>@=vUqH(Xxk_qCQVEdvO)h-985f>GIJO@!U6eJ2yft)>Xe zd~H-XPW})0l9ii9xvaUcd%5ovH5`wy%-2qZ7V>|Md}paZ*#f>)WyhBCzXeTNF+NHa%_YOe3)8 zX)mZ!)aR{Be1h6d!r)AsFiU;c$-rP4?%07QMqRiYOLD`KJ;=Qk(6Ce-QR2y zAemeb8=ST^!U$tj7-zXmy=!nWL8$;UVz6qLktjRc0 zg&Q;#`;)eHW0cFrnHtuEGRO#df4^O^kBcB$MN2HB2@+Zc$;1regQewx&k8 zEYIY)O%3@b$L%Ui(^PCW+Sc?am(4IaW~<>QlfzQsW=+N3qHWz0<+7P3#~d}>YH}2* zaGR!LE77)Yk8)Xo$#I7oW|mDO)RH4)e z?AY1XLL;zYXIu9gf&Dt$y3Yu2sBpg#*srs#2aLdeoozj61orD}>meg-QsH3{yg^^= zuAOez1+B$cc&ngMeZ9X*be7UYZ;ybFjW?O4=6dA)H#6yfkx9R;*^JpP`xj?g?)zHL z^ny9d={&9;_Cx$H%g<6AW>GdXssuv}BI(`H-cQ7(JQ9VaTT`(qCL6O+E_>7DsHKLtOpbUJ z-quv?f!WrkD3@(EIqIlki^)+}g?BVnqVl^@E_;tet9|v=@V?2>K!p!96+2wE^n9`3P~m4Iusvm4zZijy zDcjm(1oowDYp)Szs<6)p>`B?yuSQ@$%C`0!f&D1kI$#9$qipLpBd{N3TL+E6ew1w; zG6MTiwsqJD>_^!adsET^>_^!ads8B?A7xv$jKF@BEZrHwR)M`KX%M!fY%9T70xGaG zB^I`uY^$!Z1XW-^N-S(L*%tdya-MlAunQ#?HjQknfwA1B0$WdFVUx+W*m9CQ^HpHK zNi1w4*%tduVkuF9T_&-xb!1!YE{Ua71@@N2!iJG;v8N=KdsSdZNi1v=$)n^-fjuG-5@pfUw%A+|fn5~a zVp~N7_D^h!4HXgCIk7FaQbb_S#J1Q(5rG{O+d9PvY?#Y>S-|5!fA(p|BCy9g(515!fA(p|BCy9kDHTN+eIR3hb0f zgRl)ELt$fSrvm#VVqx>cw%8w$Jg2I_?ub~}@{pmhv7D{~dm>_C3&Xb93Xwb=RA3`S zENpqmP}o>Hs=)4tSlH5#)lp+PQw8=s#KJ~~426y5EEW0~3)>gA#SVv@CryP+V`0<6 zw%FGY%h@XQGnTF@u$v*4ZYr>s5%96`U|Z~9I9zryiB|j0Qv(|plH+_8*s&0SC4Jkv z#0V_q+ZOBlVqpp2wpiB}ffan)Vm)637VvG0<$MuXz_%?H^F?3*-?muH7l8$Q+hQ?a z1QzgZi^Y5qSirX}7V|}50pGS*%ol+LeA{9%Uj!ELZHvWx5m>;tEf(`dU;*E@Sj-oJ z1$^6LF<%50@NJ95d=Xf{w=EX)MPLEnwph#;fdzcqVliI?7VvHBdLyuaFY^o|uz+t{ zEaq38dpU~~GC+!pEaS7JU)2VEz-QL)17 z*6n3(B!aBoCtl5Wjup7%M@)#oD$WH3BQvwpC^XR;+F7F(a^I zZCj5UffZ}pdcp{-SliY=jKGSuZ9QoOR;+F7DI>6AZCn2|0xQy!~ zsawJgUGn43+@G1YN2H`(BBk3i+Q|l=UimIzmfla+L3(kU_vEApCz)5OQ5VS+1ZawLtsW_*M+ znSmmP?Q-eKa#&3lkP`ocak*T?!wktiJt{=?FavTqmNFJkcb8PkH4x}THIEUwlv~BZ zFY|_u@>tI^B#g@+ARoL`%J_6Z;Q29f7$qG53l+rBT|R%856-hykWUiyxK|Boj?d>A zm-lf$zu@^-NbWCvQVxY58{Z5n9p8*_V|-)5H#32VZ-lV#WPCHskM;eG$eCg1j7uHo z43cAcCu=8}BGi``dqLFm2$mf%+N^+vj7dIz_qm6W%B*_^k z=OS1HCnd>E%8eTwa@gZvZsL!|61`9TrKHOAmzpr7fysoSdDsa|5|Plj3xf&7n4*@F z!MBANQ)*(2x)904m{Nj^l%IosX6YWuX6=`o@H_I$&2D1M79vBb#+bbl8B{CTD2F6+ zVvGi&QeupR7*9CFlsX}%ln_H8YALs%#u$xOsx^g{_SP69pEc>JuTjQRe;!fAQ@_+i znu?hC5(zF95{OK2+1QpaQ9Za6nc#9=Z6~6gv>BE!c9CG}Ji7guitHl;~$y&L<>Y+tN zvmc&W_+8$RXn@I*08?ZF%$i4KPI}z(jmI0j5X;OxU*xF!;`>lZ;f`T>E6b0@$Q%@DPWs7$ROm|DrGGYscWfQdLiN`NUc z0Vd+y2{1((V8YH#fH5Uk=T3l$I4`FtzY8!$CctQm$YY<&lYWI%Pik5spe2u}_oLl6>ZDeFtAr9QWS|@0D=;yY!9<(+Vc| z&z^qGlHG+fNmg0J22xyTqJAJwfn+g5Hu(T!+M88mPvo`UmMFuXGY?yoRfPhQT)h=p~xEfVV9A`(M;MaQYIi=EI{v%WbX9`gr#SL2z_Q;}zoS7t2i z4am^ko$*0`^K1%Dri@x2s~gn9RQ9&px=M05MI%or%Oom9kn5=RGH#hkNd11`Jmo^C zJLQ-5s|Y=zbGQPMgxjykX}@q;ElooEm1_IFzxjKQf467WZf!yNXyiaCE$DG)?v_)S zCe)#QD7o6_8#$AX6^-Rwk+HxBQ~o!`0^8(n{u^U~?UGH$0w0n8|DCbG3-bKdiN?JG ze=rvKRyvw9(KzZ@;0a0dzcCg#HVQa43J8w^^79I}Hj{}P`5a(C)7#vKzPPygD^ z(?5=4ai{()k zUQY@)MBMmDR1bP`<@KchkG*SwkE*!(;Sm8P-J}AdNR6^otnd*k z7HIKvR})=IC~E=1f+ZFaENEg01q+m=d5~>bOe;lO5mQTjR9ewmM2Z+tLDbs#*7}P0 z%8E*~euz)L|2b#o-nn~k9-BmT4e=*)@66oCo|$|8=bSm`%rOI$Jt+$Zm=<3(ds1)3 z=C41YNqf>_^lQ$Zw2bf70(%lo0jL#+>`810J7iDtQ1_CtCtU$645v$2i36wTxMsG+ zWIjhT(o>kwtq>hgKTe5`-@(CGNOZhWi;gRs79Gz|^qx4VBaU zJ#(Y)2DjCBDS5eD#YF!|Sp0Lbm|0Ti3u4=qye`Xg0_YBd4=RIQt{8-~yy*5|^tyah zpmUh&E7vctLW!L`hJ(BN`HEX7QVml3MV}%2PHyy3mLyGo!1nqgUC74Vg-dfq-X5x5&GdZ102& z{W-p}7hwpbyx-Wc$v-k!g1u0q*Ij53IJ&$TXXufGp_t7Lx6b9_#v&A0Rb9x%or}3x zPJ^>=JM6i4!}2vIc26Kco1pB6@-Y%e^oPS7bfQ0U-Z*K0tYRe2ht(huvt)PY|AubC zBIW(qo+n!I7pqiD@(%zm=7g2nR~FcUM}pt@dLO;FxItuaMX^)A=`e6 z-&V4-D>g68_LbgQ2Y-_pJ87u9^;`B~Ew1pDUXRLUAJ*Y`>1J3MgQFf<{Ghtel5MfG zJH-}s30)nUu@6_}cI$_Ki!nK3p*jdKL0Dwz*9J&YftP~`kXJ?fU{s^OSh3hyg_k#Ff!hk z&F4hp`9rXuZ8su!r^vW!d7~cimEMb~5MP5k zOMNQ`&-XjbCX8M%`oz)uWc*5AZ^)~>f`+eTM|N)P(gS;jz`sGpFV=M!4c{1>Uk5RM zcqcW0`(A`vI%Au20AEI>8o;~M0Pd0-E!h@~1v_DjF&;szN~;l^cvQdG!a6KCgm&7) zcLt_tFm`!o;zgkuWKdXqdcW9UY&EwZQ|=QiD!~}KAIvIv(gV5CZ2{lL1KZ-q<#yWk z=!alPG_JAHAA)z}p58AM{V=){w=aDJvkE(xg|3dBmpSY}XxVle&ro!te-H-s!jc1- z^9!MHXQvg-Ut7vd3qOoAKoHBl?UB?(QKF%8h=oZSP?Ky^+Xa z6O0Pr0pEaDqjRIr;spjp_u|C>Z@IC-N8^0-8L{DS6D?vrzk$<{(%9)ml+#A^3r3#} zM*kCiF^HK<$hYks0>0tJhtqGeaqlrg!beQldp{W64%mBxVQ<}40(-1sDN|(GN=A0F!*%m-hiC3zk6U zlfKevIHX$*1+RR}SMgdOEISb=(ENoQ6cy`gz;Kq;Tz)sUaSx7qcm8Yfmr&8lu?UI~ zk_clw5`Zy6v4MshqHyeVK`$B(58BEn}knyXnf)owiDq3g^xKhFJebd_@j-( zfp++`CXns7^))mrgPS;xT2n*MB46o)7+TDs=AA-m3gDwXWW+yY#E-Ivr`u;M86*B? zZN$HejQHdfO7<1Y2juav#b`c9L;j}_;rN>4#1$lGX9`YaTuZC zrq+}X$YE$!e5Fwz5Zc4=VEBLtz8&%eIphhVJwbeB8^KK=-g9aDgX+MRh52AD;tvXY z7W;#CAzOc!_?{=VyhP^p39uHB^p)V3Ia-VeVvk@kt($aA^bcu(H9`C#anOvvMm2W{ zP#}<(zvc)CnC-WQ5N8270wRI=CFOtlw3cJ-_jK6%hoiln?EP_aTXgzgk}1aWzx0*S z4>0{u=HcNi4W9|e9&6w%ktaSF)jVDYy!|ihQO*93|HMJUcqRHjUd>$sY03F(K1#nS z(O>gh7+du-@PpFg>!p*-ug3f}m!lKmW%B-)|8V$Uf=pMjf9pp*em)@>g>`)Qr@_ca z>Ate<_*_itZlvpIJgoj_I{JSd5N`J026GqsZzjjoF}^=NHt&z-kDQIW@%!8Dx0&rF zxSHB|JT7{{8V@|*_QzcSk<^$EIXE@n;196OllyhRS9&c3VQj1p@%8Lu*nkjykJgHI zcY`UJ)`DU^BXB3D6{B3(%qrDt(N$zii;af4wg!eZT8x072zR1IBg9+bg-Un%O1mL+%eQe?^qI3_y$+9l3Loz)$nd87)9;MF8H_&6 zD?k4t#rUXxXU2Lxh#w16Gc5pw>R=;;nTi)+&@(soV={`NmW*OXEg8j7OGYuHmW*Pk z?T(^ex8%ky>WbT>m+Uy~?C5$naP8ZUERnzNMk_m|e09nFokr0HkY(pH|Cv4rW-B&i zP4j2tSJGk)Y+9Ll(d&pFhy)~?7yNx?X=gcExNwD7xUMkPbmEunq!GBdoa4g_#dm}yA~?6->6+luo&^+3B$2#^Iu%@6x)9e3x#+|1Xy8%tn## z$G<;8U!IqF(Hm(TP=gtDD~-iPzQRXACYr%W!B!jeWnC4)F)ywC`g64~V$C1|re?3N zdD$7K-|u1A`aUWX?TlDgqwABfGro%1{JGj0PZNI5cE-KX29%xgRUBe=X*=V5oU)zK zurKZh3d6p5zhz&10~KGSees!lJ%-_4RJMbC(f>Ml@ge&n)>GSNUj&cR`0Fdb2OpLL zgMWZ&W+LF*+bwy6tT&AsJ$+?IQN~4BJ_qG?dV?mUUh_2;2od|)^9pdTdze9udKU{G zFcHRgy@6+75nbe!=)1f=82!LrAAGRv!TDt}$$e#O=#tgAMDYb%KJb+cOAv&H;_WT@ z%2)O%enAUjVlIBfd>orI&0o<-g)@LIlw>Zd5+Wen@J10RBj^>4TyT@sCy9 zmob{(L$Bf&=^W>50{I<8;dvg;S%x%&GzuAhH$3!Yv1Z^air z>b!|wl!Ntrx$snD1Acr?GwmO5Y5MvG;INSnm-C?nCr2O4k6lIE2aJQTP1}-2{}r5= z7k${ywDL4ktPIMB=Se2ETqyPzgdkJ*B~O&@^+z8LwK`gdjO;bI15)4TN4xs#yP%d< z(Yl8qXrpJz18BsK&(x>>A~fb#cJ?olGNNJlO&BBnJc2lG{b4O_xN(OX* zN@VOmz{zJ$OX~^{u0y;me$LZ&$ZY(#=hFPmjn-|e&p=|5Xh}UDy0e6`6{U6R+=ZSu zziQjt86|Ibir!L(HhOmP(w!w4)B}I<%kc%k%`YQZ@)lnDPsa7sI#s@pdVPDoh59u| ztGnPi@d4D&!c)5;;mzXoSzc6SKR)5fdrF!AaXy=gW1{ctp}Z$8fQ(8ryB|2fM;Mq| z{FeHOsK98@aenl5&W?t$CL@n-=iQC}+;LcJ%twsLj8qN(Pz{{ghTc1*8rG`@N;Sb(OyP#THGD#;sE|ovmH&AEOIRz2?oX$a%rFrG8Fjftyhd9q{^9e#&zdtws6* zB#zl^yn{p?;~ic^hnsr(%Kk!&?Rb5%axu~3mB?l9E9`$8N*ZR$wK@jBmF6Vd+;J#A-v$$a)?eS1v`-?3+AL+* zzWSA_E~~yLTx!R}R``41h#YOl;8)WACqx{oqrWk+Res(*1^c0tybdqjQhz6Op+Cz{ z4xdtfG)|ef=t9-XJwY=13!U`tuzhBCq+ZL9zB}wOzCd@PH=x@q){7lj%uB|^O8q%# zl8+mX8h*;52SVTBr{oXA_R;U8v<922SEx@8C-g_38l@nkn-4-spCPVW!MCel+663k zjPFw3QuQ@@%50Du7M1&g{B7PtTxd*mjenESywra+4k)2MXa|C;lX^PgmOMOe4UO0) zdJ;XHSQIr=q6pmh{xMOYB;B0cUzcOMsB&kr7l-$VDL>sHZS@Y0m*g#Kv8Q{oMp z1Ev0(&}+{mk~7Ct%1fWI1M&?J#Hau+I$G(sJ1U@Nq>X`p&X{HUtI+5xJstnTpnmyZ zf|30ZUugugHjb8I7Z^GEm9KP#9F_P=catS1vcJ?<`V6#G9F_S>DMbg4%6+BlV4%g( za$o5$=%pk3D}1GyFq`5i>MQMo(ZSKLeWiZ-nj`xwu}h8gTj49+AaybL%gWJ8Uuixa z`8ICxmx2f|8V-AI*xNWS^;4c!@`Uqkyu(jfR*7guL@4~Ba)qC=t&$@oF&Rp>N|Y?7 z4iI2h_$g&;kDc3Ir}k2Rg!;bRecSHtJ$7&f<$CQw{>7z!%Jd2+RywSpZnS6L1Mtd@ zFTu~Z^h0}WWe(8mP)1Suqj9CYmOQtZO;GkpdLPOknzm;mhYuurbItV;40%uc~I@~>`Q&k@uUQ*YCI`@sv6I1>Sm4S-FT8Uo>TLqbr6n%=Ldg` z6psP>op~bA%hL1dw$yZopI_N{P0TF3&dV~r=yiJR(01}wetvzLQ1mV|>12A*>+s~H zA0zLDd#`6Q;9!lP(%PcK8b779#lb2+rL*Nrh!T_rXlEyAtgu(}G@~@DCEGh;@1bCH zi=UFa;@}QH<#NTr3O}W8#lb57ARHi|p!mcwm8*Cf@~`AQ1h;nWjFVM<%5EFP24|}n zkT9bIs2Em*G;4z#7g6S1Bu?s_%~w$xT*psDNjpue3L&w&OMF%d;<}G`x-r!>EYg^ogzi;r=pbaZu{l<4>cG z3o-sYzMDvPR;qw>{s(rd%hDp<;hFT*qHCc#_`xSeo86E^Iat?T;->1 zg?tHda@TyPELQe>r!-R=`}tQA<|3b%%y&vC##4f2GtBp! zP+`w^>mp7TX3clX6y~^!l3xw0vF5vV8K(iW=KJEr%QmRX)O@!tTZnpl+ER8e$J6dW zg=4;37jp70>qDW;U5*Pkp(0)nlbg18fFOdoj`62a$Ay^hjF^e@o#q1fr+MO@?*!r0 zzJLg2*tP8ZO$qv_{0-?^RUm7bsUR`Pyy9q}Xi!9P= z%{`w4gT|iEvVzC>Dv4DM?%(+v4$w_J#+SyhG5Qk8yvEld5y#Jj9o&+KT;B_^Kl$w9 z{TV#vJzR7qu|V}pH|D$Reico;Z%gN6;(VYv7GK3r&1GVE;5tcSjg141Q6inZzO%%6 zKyxcTm^n_P&m|#C(dBI($VSGIz)AJ{2Max(Gg{qc?e_t}9eh(MqxRYmt8Wue-ST)nut}i{4@26@(N}Df{O?kL@xid+~eyB92d~7pEwN-LgUW9vOl7m z%x}D7mGzDvI)85gCNkO)Hm>Mf3IY%b)$fgvhOd4v#pgQiRYGrKjYZjToSMIvU+Q$c zRQwov7i&GkxTF)^A>p?$nY!!W5`O~15$I81)8k>(*soZ&iB1#l!J~cOXf#;#_zm5s zEUn1;rM=bLE3*FFx=k?h>FJm?@Hi{=F9Bgq8W-t%#)IfD^rd&9ez1nUOb;1XGzL%2 zM3~%@kq>>or#U`pA{2e70( z$ptSJ33Qjw2f6iep=*iiOz6HF-2@&PO;f51U*l&tU-;qEwK zgM3A}2M)y;UlBf>kI4{U5r$tI>bvrBPv6GyQNE3#V@WoD5Sr3O(eMeV>kpkQ`X~RLZezM*T6*0tY6?Qy#H7+pIEwb{D1pRWDZu*V_`yQdZR3RPlX&TxirYp*Ok`s==1 zCss_1h6B{xBdxf%G=B|=;Z-){q zV<7VB6~5))!BKoR=4;i?K$w0;+>e^virEx^{$xB0Uk8RCU{(=67J~riAoN9ZUp{${ zPE>P$uBnseqxs}*b^mpZpFd{Ncu*2eRwOV2JS+mrKWf zd@@%~dh^M2IRQkW+YjaBNIuDvldtp1NSqj}->{!*e4H%%eFU*kDw~UVfaFkur!$~4 zok#}&NCL{*=uSZ7qV9r{0*wTfs~9S=rgQwG7E0zlYe^ zzL+$Mo{_BzKIx|g89&d$0;z(}^DwQ0?Tw%Nans00z|R->0Qh+f!zS>PWc$cRz|VKM z3HbR8A6WSLk;c!DZ2bJlz)u`o_=)3Y@KeCkKvl+1u07hQW&GsYV~kqHPp<7})TRJ_ zW&*ja@ppWCjD9^%!9;%;c%3#%@c9e8GTu?(^Ab4`_$-hUflms1 zLpOoXv*bkJa}-XhzIyms181*;j-LZ^Fp0hl`1yySc#-zT&ph1pONO7f{||m=%ki@W z-P?qpXQ&&r7k<7sM7_`<{IvAXL-^^1eXY;${ z?quuigCEoePr!zQwZRJ9XN|g#n2$r1L-D9}{HSfObnkI*Wu7RVPe7v~>+EDwI1eWk z5|-Fp*sw|rwQ&hLMebHw<4>UDEZf6Y*pJx?`=Dx?zb*HKnW5Z@KapuU1=#5reNt9NlJKaah@DfrH(cu94*&3pGm$L7pRXvu3#rQ*b1j&)HD@{A= z4%DK?u(OioHFCF73e#~D-^RQUoR4#lud66y{p)9gkll@_1a*iqfr;LWH?h^hXU*U9 zE%`mRGWY`!NbuboKJC&tCKV$G=6-xYD$vp1==Lzc(}CTG9XHTK>IzG1>8sMV9?^f_eEsZlrpPo6#?Fw^H|p(kqQE3RUK1`Zhk!w$dMB_QocNt@LUfv#nH&rm&U% znQLGx6{9I^rMGhpY^7o}g{|~au7RyoYG5n4{ePj?8wRx?QM!i)TAu{|Z)E;-%2K+}HE;y_eemfa^=2Q%as+l)QDel7~YKG%I=Q zM9KR-ZW#F(I$jm&c$DZ{`88=hZz1b>1*GRa5vNrIo+g%_*M({-3PjJ_hs$-d=y|VF zO+|s|c~2Y7qUYUj)QFze?^DIZana`| z4SRb6f`q2Xc+9!~o1v@oW4+1({Xt=b;b+Ej-%g9==E1vpbK2FYyE+74=DuTN$M(sO zbuA10mG)!K^>-f=+mx1{mNq`t^Dyd=P3OHjr;Ux39+vh1cF#uLAQ&ex=X}fm{!G`j zP%NWY?qSHE5Sr2JH=#}s{_la^TSuZ5Mku;pPJXnfzkYRn*R=lzeTB#R^DBG$eOdkJ zgo4|$#%9vtM5L_FnvhM0bCJn2YfcUwUg!__vStM6u-G5=Wz7rI;bMP*FKbZ&9ZvHX z`Ld=K(cubzgkCADk_z$|tU?)zUP%SDW5Q%*(Lo`MTUi(LQ)gx4@B)77f*c%PmNTYu za$rpKoItR0awr%*Cqx%4!34$c@MVppv-2~3SyTAxad_nrUpxtoVO%>Y5W)gUuo9s@ z;ZU%${0>a+V6=QR9B@N3?hi$~`tJe+rESJiY1-C7_y;tq|9DSV!ex%Xqz4T4=XYxG zWeuX^#YCZn{IqFAp(*^h3+ZJFa;QTwQK%?DhxtUIP?!!U5{1GAbU2qNG`olnxA-G? zq%Ug|6*h&cm{9nIeDCA<;eDz9EIhk_pS=K&F5>3#cyfrTB)@brw&p(8k6%l#&#ycw zjqkwMU4lEz=A$LJ!$Q8p`MATBMrl>LHUMIgyg)aU0F0eXM~EM=HD#64XFz2(%1~^0 zSzufzKF`7Vm{`~EAk64HG`*=$K=lo)vOtwZs*I?zN|n{B+@Q)DRo1GqPL&O+Ov7mM zJE<~Tm9&mc6daA2&Xa~`dWb1eOyelTBEYsDnjK>rXVG55&!Lxr7 z?oir?zISG)QBM=x~*vM#q)g`=5s@iqX1&%3MUjjif&6 z+mx88tkvopxgi_hN*>yB)Hf4QWmuI3sw`4vM3q%iuB}$*8&p}N%34*{sj|6m(T{I& z01=#m__O9Q!GUfVMW)#_;;B<}WE2A!#Q+^nq+y;Aro*{3%ySCp@Io5q8AWsme_9a5 zm-TllJcjvnkYyBgoKC}h9zS(F4f7a&>SP+`b3BLn65N#;>P)<@u;KaHnsY3{%Pwqu zghR#%Bjh7(s~+L;Z(xLf3%hh9-^Jelc3_xBQabCq00`MsJNk7{Z5q5lg=!SN>fk0H zz9v)yaekLo20o3UtEoOcro&?TIOi46Ap_;2B05~-kKm!ctZS(7pqdX<=|LSQ6V=Y) zrxp^`F6O7sBC1{BNwxW!YWz+%BA$;|78z|E-k1cXMyNK?pc*_RZL0nC6;Q3=|FC@~ zAr}Z{%h2x~DWKI$5$s5M^|?f_IsEDu62WHhs}~c&=JCq`PBG({U@Tco4bx@$M6j_; zu!+RYCKOTadVd5D^<~{cg$Kb-1VN6cjthujm+@1V62UI#r%oq=o##ogahhN(oJ_(y zhxzJD@XE9K;+c5kg2o9p#U>b_C;f&WFa%|M?T1wEeM}(~F*`!21!%^*tPU%1$VN$* z6#~>yzcy3V=cxLt&XN8Fsy?9VuTb?xs=iv)FIV*usb5{C+Bc~48dcV+vQEmC4XRXN zwK`J-#??x2Tup*w{JsC;o8j%472CGumMgGjGSPpyngXZL2`dSUn4GL6Ol5lJ(-at+ zLmej46qpd8!@2a$%n8%sg){|b6wqNYO@Vnubf}ete>O4&jsy9QrjFxj3XI{WPNpev z4nMV!rohFXQ(&f^0^D(aCa{dJZmDWeKFyv2n@JS0Q0?+Md^1}RoPZ(Dczztuh#EB` zwAzrZD4!{1YsHcBYIVID>2fvF%0%HJKF7Jy` zB*Amjix|L<8!+t&L4up8@h&B_Zzc9!<@Qt) zu0slUa}BDoNUW)L*mI!T7;MZa8l+1ke*HfkShy=PsKz3(rdsW@pxTjdX{xzI;tgmg z=GGx4ykdiDED~#~{Q*Yi_zQ1BBvv1%jRr4u7nar`<)MW(!M18zJ(7l1liQF=QUpj< zZF939z)VIntV0^UknhRD02UxM)kb1F>G-0079fW_1QQ|z$%n)%>%OT$_NBP)c2=zl)ZaO{oit^9>%f$Q|SU6^!^DBaK+XFxgz~`Ip0{MdS+ap zdZy2omX%d#!4+$jkh!u}&Q~fSQ`^{9Dj{>FQYTg_bz&u{6R^Fpx`T3cHm*mxG9YDn zSnj8V+8Z|DT!gERV=IdolY-?Y>`%r*>3}CNDK0{`zRfHzC~?aElm;NjB@wGbic_Tq z)mReMRD1g|P%Y;*{*=;lPUml8VD}(qzSD-Bjw*aE85vZP4f%ca#a!q09c4q-wqLC_ zx7C(hPV<|dp}r@V($<`^HW=P>lsDZlgW$-7^Jb_wRq7Zm|Jq_t_CK|mHNH36@F00eyQKOi7s>RqNhZrcL7d?2i? zL&_aD8Kh(KXwsd(6QrwtRwJlOiy5LOT!)l9)*Dn~X-!k@#2uj8PoGf}ZmUaL>xT9Y zD|c)#sK(NorrNvrfoj8_)>LyzYmcIxsMaBkPj?tpV`)uO?VtC8YM(s`X-$2cHcLx; zUszg)6h1cD1ly`o3}b0cRol{9;r0$Je{8V{CeoUw+IibB!`5K)ovpBc zIQ4;*Kvw!BJEXi(V-So5wiA@VHmC*!oAVf^8S^*#Tp_C2(`?Xt9az-3&!8GhX_{*9 zZ3Wd%eN;?;c_)i~@7f_;o_4B~r=Et=HuDvxkCXb|PY&jO1DD8o|1#;fl}y&upG?)T z7pBwoD2EKB{$y4E1PAD_F^4*!BI5|^K^Day$}P%^_)^|rVRg0KZl$sW-k>ajYim_~ zgOq}Zj%un6Mu<|p@F55bL`;Wu=Q3!4CCeGeu;8I-JKm+x_aIwn2<+P?ZJ(hVHvwH!#XF< zumg7s!8)W3r_LZ4i=zXCJoUf-2MG53PQ}QAo9M&5O9`b3_QSQ1!RQn1kmj6M4Fa-c zstGvd4iNB~9U__DlFbri{{aK6MQIYzXfe9s1a3O50;MUW4nkM7_s)^_fzL=er22U7 z=Mqx8OaD{D)Q@D+r{#ugiy$ttY`Re@%1N%&5mVJT##37)n`((ydvnm+CL^2D92pLQ zG_@SaeOcM`;;rx3){=EasQ)!SwRo)7T;T$OBsqcOZ2sZX^OtUVi(PF$k&APuJ z-(`n%%js%Rjipdcwa0D-)p~CcDRf{T7AZ59^tGf=!U{;4ryY(el&5}O%7H(Xa>%!j zGNsbJHR#j-$I{k&wY0G$N&;r@-=RSZi7auh!UIvEEuL)Q#Q9pXTpE^6%O{v5Q<5r4 zWTi4ex=ggBCi+rppG}8Fl)$Yc1-x}PrUFZydMfO^5mVvt&5eFQv!JjLu{xw_s;5CU zmO3@nescq;_QWRnfbQ!pA5c&JkX#YK^S{p1-4y|REiU6}ucmblN_m#KR7S+r{eu*iU^mL#e5`H?b>0cU|(4|w%D4EQS>Wx!AAB?I1%OV@yx z;w~6i*MP4-(tE(yNxf^p*Qol$0bix+69#;BjZCD~wW_R>Qu99@o8cMiO?-6&`qO}S zB;Rt3pe0zatgi?B*6T6g@7*B--q|Mu{w?~HC3=AH6kqF*5vW4h`#KqP6*N$oK2*MX zHld(BZmm=n3GtL`VZqNup9K z_k~I$)rzzi5K8pGZ`EVo??LD+pWUu?mSaW6w1vrQsynaakkU7dyLyI+&f*vH)K6Rsf?c%%(~KY{xCvi(+Ffb^BEg7$9;7oO zV28B%`3(ZH`l1PVwoZ;^7yyu*bTXEN^< z_2oKgJM~1A07FZC$+$r(Sj%92rVLUcdT8UghF6CggLZZU(MEAnYr=|)7pSsGl@V1| zNvYMML^Z~xzI3ECVuOsS!0L;h3f-^4R2ci$M%9;R{wyC*hg>LzKa$0PSbfn{d+hh1 zTJQB5=v+qg+tDtPU?I!DvQvz69de0yq)o7`npS_f2LkAloAeCpF9L%tfF842 zW>|-mr$*ZZ69H6Ht?TbF!_K}DR6~!(QVtz=rI4;eN>Txvbi*E#oJ`-8xmDlox5!qD zTu_`z3#(V18dOrK3n`tSWcxG{1#{NOh0G*4Yvhyw@rz~?KCkmf@H}5uH5GO`KWD<{ z5&Uqz_fkAtGW$+PT0Y5R*xH28EzKV(37<(9zw)rdm?oJ@*H6bwlg_^9vvijHNFS$u zi_i~wfXj8_XOSlh(@#OYmJq4m3_0gS(R7~ys=YzoXM$?a;d6EmPC8+9jYyA)Qe(3^ zKluW4@;lBsEU6GDQu;VJjKt9DEhb~&~tpBZzPkpGICA_!KUyFjt9Xc3A`u4bna|=@FkeuwEEG? z>~Ezj16iH~+Z=NfYzZa%{z3_cED)4>JSl>ODu?@3+VM+_wBxNM*v0^)MUGIeUkxJ? zXOs`oRtMODgq#TaQcZWRIVqiMvP0>ToE*vQ)xHxJn;z{ixxW)LOHS!-OhnEWE?G>C z)cgjg=4{~$!!myhkob}(qLG@vMV#75&2N9OOELfC8(4r3mU6I94%n&rK~5tz|0R-| zKY^Tf&e~=^*o^@M6vfwFt0AAQ1L~`_eKH1D3gmalr7Prq(z+iYp9!QPzt^t~$cKL` zK|W6;PI)ZMgi{_1H!&b!E^)Nk%+WaIaY5olGWG`0DUYvigrhM_@bSYL4eW_jh>0X~ zcorrSW#Tm_l5>xT`7)7mXhJ8iwb+nf4QS`DG6C}U?{h+a1^RhGK3#7@evzD8kYA+FHIIf$0^ znumOQ(8nprms#5k2NB4p&%z1$`^yakJJx`FmXD3iGYlEYd-IH9%5Pl69|&&~vyeIM zG|F#0rHH2M3O{`rzN{uU&kz~Og8WRn&}-8S&2nvm@op%xamEq@!T3WzKT``0_Qn~_ z5{w|8EMVKd|aH#P`sa2ru#fEx@;1a3SDI6eJrKIHWDvZVm0r!UH(&x+I2FJy2tHooEX z^dbIs4gF@l`gU)kPuN3TXK*`_AI^sh@WF|yVDmV=&rRdtHcr5e;n7xYTAHZd0=M)D z|4oO!x_6fea6~i$EDbK1029(pKls1_a4R+FWUKZ!&`#HB5Xw>YFR6MBN&!{BT-Dd& z9M@UVv!}l+_o-9$)vEuEs(*v3-=ONRQ}tDYYMR=( z$^f|*scAl^UfZa2vouGxPO*8m(m3WD{Fs_tE@$!^QgZt?c0l5z8RiEzwIVO+>xgRbzKn{xm1ab<) z05oDaHFoLa4LCyF!7$?S1{|})#4LFOjsgZb-hiX1h-&o)94+0YZ#NCz=M9h-+7bEfvct8 zkRRh5{ag`rXHkFhW9}~<`_Gpf+G!sA)Iez-=15CR(mXi41`MZX3y&iT|Ei?aX(4!5 z5A^p`?u;}K{3QwwYIRkKvWB&&StZ}wTEu(Hg?NgzNa-8u#6#wpHhZ51ZC_-uCUux` z1|~9ScnL&JZ$_r@kiH}*9(K9hVDF<1JY?Dbpjt)vr-=Yz;UU-ATC&?bV&h?g4l`fr zF#PG;nzC(YYkF@eW#@Gh?6C!If-xR`p#-z=FbRSg0)$KIY6ZazJMZ6=l`XU7cHa0g z*jj+6CNdu&n#F~OKl-`HA|@LpWbayIqq48wW|7kzc*q3OczDKq0}l@^VzMIl2;-Ym z=_4mYQr@x^xM)ng{S~Lumm}?*ouB%L)p>y`i&UvVO79L}xy03|_F7fesj@+pN{RDS z-UzF!(T~8(vQ!$%yRp`0EO9ie#2HH*&B-;)K2CIkR)QAa%vu}0yKC9VW+zRpNVD0_ z*s@uH7EO02X#L=41`kf@#Yw|b=_1-p$dt)#ISPW2rP58X{+GE4mYR!`2`GPwLis^7 z?OH)F!&3R7vYsUaS~DpDKN*H)mB|HKe=h96mdXol(ArEJ06JIVetoHdTZfF5tiSaE z7MX@h?R<0Tb7C+gY#=@Fv)vBNvh+K;o-k{J>i0VO5vF9zdHPeTov?`R^OS1O;q!y* zd_#FpST=8VVaeM#?X9;bv9M&V#AOoiuosrxR%(Zi!HmXG$P$$I)~>|yDz)Mt^_R{u z*mX)9DHGWBB*m_oGWD^qp5OZ022q0lYZ~h zWO{U}W{s`K%|h}zZNVd0D*{ZJa5fq3R3B0G0%L{g2ULBPst+){VSP`*XsxObtNL4? zl>5}F`f62wl)6uYs^6gMeX71WRjvm82`(t8m<3ecBid!6{ybH=JVo_t8#2hnnw1&GD=po+8C7163$b`}4m=LCaLg zGU+LYlmp+Eey#<&Q>FiqYac;>N^$wVbhH-e(jS)!GsPw6zXWb3CJ)ll zw|c!Tah*<^L=%$`HMuTlEygJ`-8iopf@BusjG2*a3_rWaDl+qOa)Z=Nr7em$4Y9z8_4+gXP7=AFmjKt;IP0yqa?7vK3`xZK*}8mosz3 z+qn_xL7Y?E1k0P|CK!X^7fLW|F)k^BSG@b*lmLdJ_YtA!Grsja0}K&?L14&J!SFvY zmU2F)uql4x>HKhBnr2Gu%R%L-Ii&Pm=WtA$cRk=ZxHL9#tWt}P;RH^hhPrnk9K$=;KGsf>i z@~12a&_#w1eCzyZd2V_I4cG(Ol>Z2%YkG|qF%$P7GT^zF;xb*3b?><%R{}Bta=D@6&EMz@R$@$q-$ypd&kag5Vfh?HfcxY2A?Ye@jR+6{8 zI03SF>jF!E`{aiPWFfACAd9C$v#T@SEU$H8Km6N{;)k;UXD`aQIh_ev&bYWGqQ5cd zwJO>N6NgNd-LW$nDQgYbYfGUPO)gXo`75eOKl_K21Mily|C7|!KsEF^^)l26^7*p< zmLrhEJ6fS5uhbdPr&X?v*$SG%sw_}tkt!pqtdjDEYIRIA((_=GX)>O@w&O%oY=+I9bkz#7D8YjVKwSmHAv8yKcO} zv3nX2$FF}-4IKPL@hP<+ZV=I+DNBb9aZRbQt+I5Gw+a4FP-AcXftz3qabGCGEQm{j zUFQpX(V{a1+;woTHOcvtaM+SZ{mGsg7BnGtiF&t-9ZMFCldH#T{X!c?` z2E0IBj67`FU<-7c*HnFhVi!58zQ3wh>}GXD+O7P$)#`kMDr;1!*v{%YIoIrLwPHV> z=~rp`l7!tB1(GvyOemmRv9sHpB0ALU=T8xk#g0_FvI?ivJ^~~eMh8nXadbID&h%^? zp2t8mIR}U5umk^?=sAI4<>XK>dQONgxFoIB2_(uF+CUtN?!YMYE)<~YfA(EGN(>4# zG5X^9774RKQtJE@bXI6Y?jZn6^ja+ghjhI5;OnG&I=AlXMh3I7+__B-8lJN@QwG`c zShSY8yfMTGJ2R3pd_n1R%!CY+L|)+Gw^z5Ca#Y0C!OHSG;8GflB5+E{3n7e*0KKHi zO(hkVG@T~6v-j9}=RruqUe8Z#Iz(bREDe$aX%^6%5+c}erc_+lYFo=Vb0aFQ3;%#h>3dS;1_ilh~lwaIS4W}fmMgh0aIY3EIXfyg_a0K z7TSzlnUyTarCb^qr-inSX<#&bW&9pny_@i*oloE0AW{j*d?aozLq9`hwPegus3(DC zgX(v&oLkPPW0Z8$pxVzjdr%^dTDQM_sD5_4MTb4&==ucgnTz( zaO@OM17iVQ6E=btr-2cma}%uQbT`2m;+VS}R0A4AoaD{1AdUr=rYvc;KxIH&dl1YC zalcn4#$@6v(rH5iqWE3ji;#K$+kriD!XS*=7;M;M&K1ZZry2N`a_%@zd~2gSj>fn2 z=Se@*M-LQqEn*x%SvbcbT=?mbl_ivi4YflV$DIYmdWF zMTX!})MTwS7N*~Ii^4ZF4je3<`sYd~z3!-#F^9X2UMyh6jTAUi(CEftRTikSNR<&) zR!Q0BwMQ#mnYZ0InYG7*=Mk!Gk4-o}v?3CaZI2FKec>qvuTE+Ans)aVvDO|P1Uu#1 zZh|qm<&Y`ti}FXZz>QVHmaT3Z%2*S#Yzge+Eeyc1z|9B4V6qF3i`L1)~^j}(R6gc}g&f1bcohx0$r3D7L! zb&nZgIxMC*g?R-sw~BmOi;Cz_=YPH?0zuVd;qfStB#Sy0(!%4#nRGZS8;2K&@Iwoa zmw7HcF2TYh+pKNJmX-!4luxlCSS>v61IoxkqpVmdlVAU>YXn-z8X{3mix0c&~nMO_AbJFZH2MpLT(=|}cc{ZMAit~_n*Rj??B zIM_XR26Vngg^V5XwcH*rL(j#r&1 zQ<8z55Q7%Cx|@h$j{wasbS%&ELEEqh8ZbnQ#Zc9 zan+&`3?r7n%t7;o`ak&%Hhd_)-*y`_Qne8`wFvgJ0d9gZZn4-ujl!u9);2YaloB*+ z;TG3@K?zwYzMr@%@zSx%Xqe1u;+?+(bkRbhYy(JS$E|GW`r!BuyqZ{JKo=uBp%xR0 z$o+h_0bPd{6xk7G_V1hvirQhOCdS(HO46RmVJ3`zUJf(eQBUx-LG>Fc=a$1v=qhP% zQ0;?MJHZ}&ziV*qLE9>^tqYJ}NYuWv(Yl0YQ%xfv(@Ahz6t$1fByBUTLRuWVroX|l zQ+xr^(llBWH`M~ytB@AKt~l0Bu+&_DWHBg-K-*>rCJr;ieTnDJ9;(Qcgm(7C zN)2(eT%;*(LtL+Z9e54$z66MKCM5mvXanL7EkiPNm96xKxEIQu5O)dsc|jaqZ$jK8 zIkzBgew7pA@>IJ4aR+~EK*IyVJ4?es@d>q^(%rGIwrxm3T$9{dAWn9bbVvF-Y(vJ@ zfDVXzp^w3_Q+gRP!3H@~xs0$eztvIx#A`P@AZ~qcH^EYM8Pbvo+G80~qWm?)mBCn; z>`LUj%QeJ#CnO!#OCYX8M)^OG0CD0LN`xYbqR){A#HC!6ztb(Wy%x{DUBV064g)07 zi(pHyPG^b+mj2Xo2h6z=lI}n|T^B)r(#{0N3e&f$`YKf)Q1>g3O8;6_A6E6>SSIy# zs=iwHSNCa9^&3?EFIBw?vu$*5i5m1LySlYt+IEi{V^h~JXwl7H37?rQP?tosKj+tU zK;3&jgL9|!a+{%?xK!X)tQ#2#NgYtP?Q3p=rRG9gf^5+C^+_^VYN-1IjEl)a-C@f# z)R`t?Tbny8!(*+Dmo_Kx3f5ddyo2VjY{QEXGkC3yGj7h~wKmSUxro==*g`Y4KvwJE z$uhQx4p;dj;Dx@dE2;4CWEl!JcM^4+MV>4d@KYCLQY*3yWDfFji}2x*myN8 z`T1D>a01jh6Ox|XQ^?JCA1n!Nc+J(D<#`7U;0}1@{|RDChkbNIzE=Qo0_7&LKxpf7&ka9US0>Ru{quihC#2O1}))#DZB0W+t^l zCk(%UwtG)%_vNddLZ8!n^7Gsz(B7ogyO4k5Po+u}HOBQvQ3vi8G#z#oE`2-u#_ki|0eLG`U>F{~|d?3T^4J>uA%Hp@qq z5iJ?dlhfvD$np*iTymgGnowPwCi~He;WRms6uAj3I?ScK)pJ;p<8_D`0qV=yhUc*& z$Eg?>6;Lf3XQr|ur#D8cbbixTF0{6UBq&9$mGiOui3G@UMhE`nvo1UnVJlp?wWZD<S)21MhEI3k8-j-(hJoZ zS{lxEkVm7*w-4a7gCe0xpv=o|- zYK78&L`^W?vAnE(epE3*5$to?+fJLgl zK(UJ))xU&piTe~uePV#%>J6%1v76Pk>YR*1be&ov@ytYuc1~uAlGzeXU-IofnGX1C zn!)rfCN!SMIN%+^Fwq|dT!-nhxfCEchtZf-_8CP~dxxK3*q8NpDm=`pr{fhyQOD_I zRy~iOIyoDM=kQYt$*g*@r&)C-?#g|VU(7Cl#s*>)AowJJhS0sQk#Up&0JI0a!ej#2bNJIKB!In`x%Mmq*b6)Xc0L1Qj@rCD`B_>1yp6J( zi98ZV`Ar;=i_W~ghPs<_ffmjf!8T@Yv((+fX{^)szfp;nN*Ezi3WSl2s_CNgKJa6Q zXlN~G=HN0h@FHosmM60z50d;j0F8#{s+K1$*PSELj=5lEz7MGDj!^YVzGQWn?)Qp% z2_WjK2wgw% zHG^ZPbRdSIw6sTDfmnQ*U}W~S2sYqVH^CUhPcaq;DoqN=;sA-biE02ae+n);(kBH331P=_AdhBEbYg8jjmaP z^p|+MMY6TGC;($)AOq4dht4@5?y?sRj-BEG7?wG+JpwSqoXG@pKwRJjH^CU<7;wCu znZ3>C91gHBOvq>?Y-rtvUKYd+qT6}xaN?Ee46H@M>Dz-~V#w4GcQj;M7NL{S;>yNr zi1Us$y#F~5LuN+_z^G4vIA^TkU;bl2T*?JtIJLMo24H9{E`7)Md2PH!v4%e#?|?a1 ztl^K)PH-22hKABISauFeeU+-$2Fqj4k@{LyA7;(2F#YzB)F&D&k5Tu>SHt(;p!$DZ z)hmOgHc)!T9MYFhGHMfy=*t;Zp_q_sHN^~55*uciI!{%mHyS|uZzVvTGuH5)#|@}Uxu^=KHrK}81hqDo{!l>H?9MzB z@FF%#i2H0?%tRHIzD~R83`QQyMj4X&Q>#&r_TC{W2R2AQSJ>eo=|7}8i2evW%=kb$ zT49IjPf1020b>_iG1nFeo~^EyQv0XgP$TD!MIGuSqva9lS6-#cI+Tq?8}c_uAgJ66 zIK(i~y};Xfx!C})WZer|AFpAot+-f~*ZOy}Yb&JpafqP<3@@)Wcza66YZ#`@_6R=^ z(C9{?Q06OFUML5!EO@^OHD<~ zG5>aN(7+*v4#?WE%izE%9)Dq}Bkd7?A*M?5HQDTdtlvH0CKy8&D~jI6aBmAin^SYJ zO+o@zEK?<~34TEVD<))J3bSIekoBMMYRK{qF+66cKo(4K3|UDBHKg*s4DTmEmNUfg z!2JefVYQM%3=jVDFq<%v4i`|oie`%#TO`D=wX4FG{&vJEtb}F!cZ8+C=@7#Ws3QGr z6Eztjh9keHP!5d)Z;?*@@0Ctg+)p;tB}!gxtl;SoL#>KwA4w}LF|1Ur0#zy%&ZUag zsCFn4{9>e<;RSW*Vxu936yw9h^L7XDUMp#q0W}vM!VE~<0W64P$=z$M#2qoGOq5M< z>m}KwxoMC*Ux8#JCQ4b2BXn~*oV>E#;Mgf0T#%q-kRLbMrujqnQe&G5E)WwXp_>!p zZr|o67(-m5-k$C6B}etoR{e{FeQ1|(%LTkz)o)N`jVfzZStq4t zV@-w}igC!7^*uV^n3JiQbU3li0so(8<~CmzGpbg2e(tw{ScMq=3_wE@Au+`8yMqN? zG_|uqRYINX(f>;rV%W?wmp6vAdA*%sekcnp3}9Z+p_kdcLk!y(qhYDIW7ROGVu)d? z##9iaaQR7it+u(LtPvHL@!!-RREXiH%BaJI*U$-_W`^XXDOyOQwC*>f_~UD8Mz*@p1sO&*>(Y{GJFLpY5x z>P%%hkXK#C1_Xh_?H|KGJ{y9_80OlODZb(y&-e;jJ?Hoe(daVuCXw@D@hakrn_fOI zUu>i7X0kOpLku(Tlv&9berUOpWyDV)Z9t@Sc;+;=4Pj)U(=&(UMvSFiA#CY3ggSYG zrS>X0a;1_ZS0>1jI{uSS=leF@@T#-6*$T589A zLqnV?RM`GAvA=ZS#mLeGh;xPp{_JK0;tnlFG9-NlDB~&UOhcD`ZXYMay^elf5J%UW z5ci0jTM+k+Eo6vmW--#(hS0&W&%MFm*eSgjX(%P_ zv$jTB9PwJGOfc}zZi1!iVx%P#v^7+W z8&v-fRJ{rf^fXlBy*Ol$6!@>~x|?WoVybtqy*V;X3DnU@J3059>kQ7F(kpHW%1PUo zjtJ`91pDq9{ zt!*B!wXwVSq5v_1X_PN}YM2gFE|=LS2Go)1&AHaL?ivH?QZAR7Gc>S`xy&rr((3N) zKidBpfxO2O(s^z>f}00^csQev&h&1f-vzi#ltGVlo)gh%Xn@)W%ZiR)hju^^r_&@T z(hxXW>b0+zmCmylUIzUfzF%Zq?WyWDWNHZPrS794vqm7&@&Pl`dx{O)y_?Bm^8FG$ ziI=9Q@aOX7+H@W?w$gbLM<>H9JG6Q^12nx_T`I1pyk_T!u9$tb!O>GZ*O}!>Ig_R* zldkotyCk}T2}b^>njzPZxXMj1hCsz{;Yc7maZIBbHidPMW>XD$$L}QJ+-yZxu)jf5 zN$|%9LeWqlSUDbBpIX{pdl1Z-2qqK8$7CUJaSw4l?aI7MTu=LU18zGj;D;HWB93`|E?BkFpGp{+#iZ|^>3zC6X%LzmsJKpBb<|BKX{@x8}8=K zki9c=H5cy2R6mLz&Q!6Z+}t@QZ9h&H6pej?+n9+>`*LPnfk`e1>r6KKMjFprYejJZ z`WawrA@oqxV}Pv{#p!ZxnOlbncv>rp<5hbOW;?}((6u_fOhA1B>Pz8Jezfxj!c?j+ z#R|u-QT=OGS*J?%C6uc#p`7w-(^UKlXJVtD*1`ocipZyLL-J`83e(EZh(8*5lG2&j z5_C{XKu+$9{GppUeX#J#pJFrld?faR3C8)f35AJZhgG`?#sJKsQEFvkvm_RmhjA+i zCORk)jL4+zf616zKkg&|Tml}XV?VAs(6u=LE*6$$#e`&o9gzG!nl1$}Dz>t^K-h#< zHnbk#ko&3s2Gy@dm5R-*u9Nc?12E0LBZ&W`OtQFEe=X%*69Cw`-ubH)1^}mAo;at5 z+{Qd{T0_qGS|@J+zUV`qwH5&H!|e6~V7eZ&)dJub7=>Xs|(`29s#sJKyo=W-Q5+oK137{{fl@S3d z;6elN*OXN<836vpN1q)aHVi?A#g0RQuYqyV@%;B8XlB|V|q0BFKp zT6-Em2Rtd}vDU?gw?#ZvzJxI$tseaH?g;?wSdI0agiw?EPf86GPPv$n;eO0a{0wvN z#5N|fV`Z2oPNra@M264@@F;%(g}v|ECt$2ZM+;oHq1^ywEn-?G=-cFruvTpY0>bGh z{a5Z6k(p|(w*E%-uTu3JRR5@|ua)|w!bOzXN-Z#33$ml}QH-RIf+LZq@JI2bPfrI< zNw4gJ6*EL#7G%ZZ*-UymV?ow|#ozj^fyF5uL1L^gwogEWwIJ)j;tw%l*@{G?qX@=W zeDKX{tbR*2Da#t&tewr%8r>cQ6Kk}_;$K~<$dp9z<2&yO7XSQR8;gJ4&@2`&M|V#T`@4Gt zv$w~I{m2UPQ}tj$O|Kxog6_m_0*Xy!qa-b45nbAH%x+G9Zjs>{&tt8GxXoZ-c50;% zRE{>u$3vB8CSbPc&y*RMRx`HEH!wTp0(P9<%ro1TJy5S8r}qc8nk&eul<<~jHnY30 zS~fuKROSx8Ve70r;VsQ@=Zf&a5(6JnJOIb?FmhS(P0NAylWNwDn*fyw<^a_9m$?bX zfSPD#`O;?tOprk4D}ywPo~W}YozIA^%5+_=>Q|@Q8`ODYE?HmUupsigY*AQ{tO!%gg%g0+ zEi&*VrNe>@6F~b!xex#|!5jcQ?-y=@F#xmKE|pU78B6HxK`^Hk`jf?qOi5UwXFtyX z+`E8z6TC)5lhv|*wtVKRGu7vwqso9P!>TM$Wsxc)s;p9FwJJBLvPPA)s;pCGgDTU+ z=efxM`?hGVbNvNygDxP@%_f z7E(6Ai#@Xe&ct1LO*;8azRUaCKr88X)4M#+Xwm<#@cKdfFS7U{m>t zycKTpefJndi-Tt4V_?sM*E+F4mLnfW(kV%*)pZ+GsXn?yL9M(&wKvC6t*l($784`H zXf8#Q%nryG7seOIA73$X)S^}mpf42bRTlV--Xe$>dYcNKNM-=- zr#bP1%?`Ulzn>ZeQ?YSuSK!w-IKy0uwH8(2^Cy@EqDc@e!LZ-<*fc>v;$T?y_6_b5Vws2uENz`!`Y4jIl(&2(^9A3sxT}m4L<(?Wn zkvP{M$gkwYU#*;(<=F;kkuBH}*DOT(=41o8QZBX%Yw1KGQ(bOjfR$dK&iLy?Yz0a0 zeV-+tkriYtv5Oo=Ei1M1z5+cx;vB>f~~QZ$)gCWEXK0?Aaf>3C4)W?5@}knW~7HV6%3&i6je$ne`gB z8#bmEFzeOE)C~~~o6UNiGS%rUB3OtwlKAg*yo5O9jtA;WI_=5e{*+GJQ$%PFf{7)a zSTJb|x6e!-@xF1tMm%QZW8ozEnOW{nKs-kv zu^`@XuvB^!gKEmfF(Lm*BI30%j7cvbXZ#aLNANV@?q(6Mnn2M&yc#*T5U)zLX9I=k zmeo6*h!;`qIoy75(|LSlBbc-w(##yvn0c@9&?vw{q5T`K@e+|ZHZvAM1&?R3AVwznJp;9SgH}P=Eun+-r%ho z@hApS3uOt2H|zU?c*GV-lufM|ArtXfIB7++(4Yjwb42b6;+-+ZKs?hrc~E^DSOz?i z6Ik)#0!tcP3PDUP@Y5lPO<{#N6b&QI+hnA9^U(3y7&oMKy!7*6#f8GP3lP;iBj%F7(i~Q?^|HmEB6tg1#kQ=QBftZP(KSoS zx_LP(_S3U*cpmfj@nqc`<7wR_65G~IzOWTBH-i(9&k-jp$QL@pKt2FTrv~Mb+^idd z_xeujGMzFxJbi#B1Nmf0P`i)VK0x#xyL7!aM&D>%FMa&2tn2mPd7FiL6gsNW4k(nd z0!=7S^HUc?*L#&gv+&eorM>rk8@S)Vxzdm0VyS;vq1JuWAK|eXi{yeKN8$o>;4oQ^ zoBg4BLIGdF+ThwE!M+y7&{E7SVJbZ}qRJ{&Dy;k)IjA%iJ4zG0YNg@*k^;rMsqXu1g-F#(SnW8br>7jNrjc2Is9#K!kQV(mW#<1{nRw~|xBg8`EL=qaqMT9}?{Sna0mvs{rw$SLc zE@Sz+FjutKW!(9!?R6QY4Ynw{VTrPXE`$u)q#cxUDLT!1nIjDbp5proSV64q;R7k! zAe>ke2=>x<+yrC9%b`heP^E2VnQd|yHD#)qKqxXSGFT)ZUZJuo691r;zfH;#mki?h zZx*M~xql*_BUvG8Zm?JrNorsV7Q4vA=TAnYj2oFXS-Iu1RsH{|`U1r!a#Z~|x+U(T z*vsdh-k1c{CiWL#zn2L-d)OmrbG4!pU3QnUHTU>`&r|UfF8cAYpAf< zkEOF7g`b#3mlu-GdT}Nl&dSE&1w6nDNN2swQ)gX*yC&FZCt2E?r}ww={0>ITN7`sC zF*d!g1IF+oq>6}A0XF?-{ZRm=T1IEJ8nxbg(O=?fILrob$zH-VALuxsx`$P%2Dh=n z)OfVIM)j{%Wu27TqS$20Od=gQR`jKVW-W@|7~<_Oxx!DQ=gX>~!X88mLwKl?-U`8V z5^AH5t7SmG>E^DMT#yjkmI+d7XP#^!>zBrp-x@Y=Gu>C+&GlGva}}o_7xV`=k<)Aa zP-Qq`29eVH8jwjqNloqH>?$g+O8^LNBG=dY{Q*M^NNJZ>L-B17vN;vs+k%QrNrck& z|05J%GQ&&cfm*S*ci20Bi0HiVer17$w+>*oJeDUhn;K*@Sq?v#lS6!)+42m=Rt`Uy z7p7Wf%ZnIWr;%tswTNmpTds`YEo`>jF4#&~2t_;rU|YJ{T)qarXnF%5+Qv|5q}1K| zGX@K}8L3ik{nHtp(Z;1u%K*IgdX^?7XR(4Vq8y}&l^U)D!V1%G|AQl4@yZ+}CE#P{ z{$W)XsIo|v5mi=6sUvu`^s%x=wb!b$PL&O+R6&IuZ#`4{CAxhqm@T=}Fp(1A+#L1? zCmEbL#n&?}0Beu+Ok-y};--3at-k*tH^EYKJ=1`$_8^!*m);z9-*=OTuAlq?&_#gd ziq^=XXpQ>oznSVwnSd?^*;cG#RvXX-zUPe5s9!$NfUcBVz{H1Z>^;}UwM(sZWgH1O z;$;J;?wmg7x2!u`VHqF)-T_;d`_A7{PcXLu_QzFw4xb-f zXVp|)mLz$x3FfmTo0ydL`f4Wb+6d1eCSq~yIVTt#JEfN;6FgAnE1M%r=&eeeM~RNW zSJIg4S_J#<@os{p>awII6ST*&q&TY*_a!6kk;9XRxTRNWh$B<4rns%0-E*8k9O4aF zJ4>xJeo8xQ<$Nq(mjH2&pp5!;-!LE!+AI0!unqs9M#!>FaVS5W9oU+RBzF4fm=M=a zx%@J6uJneuib^NM^+i9dR+I-+9DSxhRytj8LR^}hTM$>X$_a4|0-Y*n6GPlVi$L_s z%har21c&A>3=_<7Xzmm?RwNrACaGbpbx59dlQXfD$-u_@Hihc&iPVroR);eU17H^yOZ-DidAkIy&$;Y?}#t_FNYOHj7?^)#S z_uPh+?h~C6h|Fc0a(s8pFmoMpoRSH6jwbIAqShfb#O1(P$RczS2FNulG{l*Dvkh_2 z_f2)D8+_%hByagm2@vOq!l>VNlmT%m=W65B;@aqCqqVs77nZvXkTkIfwv-{!(%6=* zaKM}uV3Doh?lQE~brGDSv{DZq9h3ShRUc6OFHrThsy?jhca=&1I#pk->W8WOH>mmz zs{SNZ-;|+}-lqor397!bE;j;olES3feL2a=lt$VKb=USXICqM>+*ryIM`74Zk9kD405c^HQ~p?Yw2IE zBxp*TV_775kEZhV2~g(cO~PQkxEV|2CHf!O1i1Mt}qu^ zj$z6Pg_w*J468B>-k#F#Ckdv_wxIlZi_RDd)OOD`&^Szg5;whPQ<#af(%8tk5@#GNuy_$jdrfIXC z@~Wi|1P<{OY{XyEG-qaG-fDf0%78j2eT~iu%cv|;Wki)#s;pM!236LmvR0LKs%%hY z8vH2eejPYjT4JI!B@-n=7CA{eA?t<13=W*)$)iz!vJ!&?#o=UFSAne5 z&65Up-AeM7-;n@W&YiXTbTJ?ctCa*CH%dkhOk32ak6)-z4k!J0OQ(UGrIU{Ev!VeF z$kUM=mXD-{rm%vj0#z2NGNQ^VDRoq#&JB~eVS|n`Y!u?Yvf0rH$h5T6?BWucC^fk@P7it?fT43Fow8;ZxLcP(w6LKmQ2td z1aq1wuZKA?S%~}EWfB#5?i^x35*7HDOD+D?SXAH#)CB=!nw?~WZ4kdYu2AYVd&yDt zBUFFIZa(*@K>9{Ghg;hfNDfM#z#7tee*|;WmvsvjwuWRyE}RIG98Vwh0*VT}jCG@> z**LtMfoM8K1)k>_6*viZoV=DRoiMP(ob=3JTPvfPg@=77!FDv1%X%F;)cXgHolIs>M_h0WnRh7Hq9X>jM=l z_0`?h3R<&f z=hMYagf{G+hSB?@_Bq6{{*6G@IdOQXG7pQc4#8>Dn*_;!v#?spiPQN*F<99?^<69~ zEk`47f~nH73`liUS|uzJod72da0^R=Jz6Tse56uY9-Iq~ek;pkj{&w{+1OGIr43ZL zeX9I6q}QB{?hM$HjL_mC-s644IrDXFX_6irsPq_%`BsHWI)JT3u+O%63C0?X6{eqJ zOAQUy7Qwi7uJ7mDXYS30zYh&YAx;uZLa2*6-9iA{s`o^BVe>YdDE>?6hI!gbeym>L z`ibj#b321lUl$t1$Nt+;S-y)cwE^2KV@sWYn=396!1l=zT=pI%Wv>Y+NevY!bYsG3 zL2uj1^|D_}S^Qh+=ZUiEFa3L7I2`vO%BHBhbabL@@=l{C;7aa~9mui?$GFAGVP(gKmtb$ly#!;e$Yy%rGr#G5^Yx!8GG(yi z;v2)YR!kjvbNN3+D+V$QwKhpBTHajzf_Dt9=({jfd&fnVVW^G|cQ3RS>w+{6oUsh~ zrE}zHU4WhP)IiZ!F=JU8Sdtw%OJ$9I(~!Wv4i+{163@=c%!BjPvLr{|SOoj#8(xC3 z%3=%MU%{e|j&BQs*{NO*24cwaA_J8*eXv$psUvS5-YP09kinvhl2n!*d2{>ghRX6? zu&C|GWf?5$IC3j1*g?yyy%3I@ENZIAo1&3u!pe2oSh{5RbT14xB5%e^r=BI!$%&3B zVFz$qgQ4l^(W|B{#V&QkPP)h&y?&cE@`jdPnh-##gM&FCZZtw(5huirMXAb1 zRF}u7x~Q}Y?oEDSEfwz4w-X%9Zx*QxdfRW_=UKp}dMie+D{V%Zm$;KQgrB&81WV6jB=ot8>kc3vNkb{}=E4H1R+gYTff;oi zMc#}`8F@1ePYqG`R4akr#EIs%tLmk$B36+%`2$63bXHnM=i`0}LJ^;!spaJ3rv4Ii z^QFqieHI4MFVVW@GG&&Lx{iyxRt;l;4_(|;W0yK=s)9BLmGcBleNH+j#Gk4^GZlGrs{(acO87kf*74ig zCY&^-6`&$-M!#*?0*Y*G3-~SyH_3R){!nMy8>wx9E}FYCaChhR(~&pkN--r0Fd}ar zdp3p7n>sW17}^0in$_A=n&eY>l5?`FnGsTUoa}0Nl&Wmx58z3zjr^PKN$zOb6QRP6 zqkG1YmL0|OXF6%wD|o8UAuW4VN-azKb?J|xxRTcIk~}LZ@@5@VORZo^e+2Q)c|{YC z<0(AEI|7~P)q#vMj2Oft@)*Qx{{)Da`?4k;uk3k<_uAt^yg&w{3^s^IE|6Br2$yc` zY#79g{2oj<=mkwYHt`Mt`&mKN$DBknIhkpOUZWN+lAdQx(2K|UUHvJmck^K7$=;s=J9{PQj5Th@U#>)(sem3c*y$!o> z=~J5Z*zWU?F1A)!FOa6oESGcwGFzf=$ira0VSm>2W77|Cv~Bu@(21sQAWfGlgMMuK z(F&kr`W3AK{W||i(+_=f>OJ(^{*cfwkfzIZ2K|UUyeZM4-wUfjzs;L8{n+&L(60`i z0&BX=Gw8>rpT&Q-JP7(N-Kgourk{s?F?0&7>9W9}ADey_{f0b1^6!tDer)=A=odn# zz?v?#2L0Idv*=g!TatfIX!^0~=b_*BI-y@6O_xOm{n+%g==Z|?B>x@*{an+}L%*D@ zV)_Nrep%|$&sH5*zY5dujz4JDW7E$=x@oI~^#WxE7v`T}XXEH~)KrXPZ(UDNM~`#`_q22DTo&8hd$@1uK#et}#hT4B(S$g|#} z-z)ckey`PQ`myQfq2EL36j;+`r9nS7{Ve+3`fJedjz=~9*!1(zZyGuU)^xegpdXul z7X2<+N%C)lrXQPr9{Tk{C!${x`K^kdV{L%)yi7WxI!bXjfC zk4-;|ey{wJ_*Ypd!c_4eCC&@qm+Alg9owu%Lp5Lvy!KI|c=XL|3 zIL;4-vP7d7+-XFkgWddf3IZ)?CFOx^s|{BBA0ZpEcVSy0ZGKeytVkErNe3$rkxh%V znb8ScS5fM;sd4k+e4Y17<9FVULfKxYH$Be#n%u88J#zj?y01>|)0-f9Pd2qLmHQXh z;(ZhizZ@mC*Q)+%QzY-nruKQNU2T%od$QAQlGJhB<@^weoXkEB7jV}C9wO1*f7g0KI!9nt#WL=!<1_=Sca=wvc3P&#NBy2Ec<7!%#1PQ%&eC4`zr|Cr;~=emyz7Qk-QX{^59LsSFYYW6hT5j2MwxCvK=UMEu^}&#q3C-Os!n zWI5FHZ}bw3bt2DFf93FU(w%rR#k3;n8KUC+oyTs=Zd}KCKfMsP;zH9#J~$txxyi=O^pLNvglr zeRZn;YJi`n?rTu(U3T(ws<*4(w@W|Ph2$3N-=t$n&3(nr;t?+~%DQnH%&i!6Uei02 zmA^=m#@3C?YYb7pH?x(i8;w&3EZtZ+&r2}YjlRoiWniamkqS((Qu!vuj7xwdYu+)`f(^lSM-9ROY|$3PzuiQheh`I+t&ys z$$%uh>|~nJ?EcSW+h7Fc`Weo~0iRMafZhMyl0)|b%I?>n-#WAe)eHHpm6Y9YLdxuZ zV_7AXGa6JudH!0B099`_Xv#~SltEW-3aXHVh(xY6Rfd-Uf676f_NYJ0ggKjEemafU zr3G00X2N-soem9`*F?g7<_|4Txr&4{%Q!AP<0O;(xcB+Dv(%(rg`4nN^wZ%GPI$!` za=$((+=0(dlJ_{_7}_N`PPNyy&*8t@RfUBPZvPHGy4R0oIe-h;{Lt!IOj z`{gX9G}TGWFb-2U%DgfiE@RAc84(jfHxHyZm;G|0?Qu7IyF&_8zI$e;$#}weenN}R zBXffUl*EZw!>VPwjb65QCCT*+WF^T+ASTGXR|my;~@$nK?ixP@M4Y5HJ`>bG3=xSpubD|#u^BJrzdVF`zqIqH$6>qtCHRP8{>#ulxzJF80< zzr*UWxDS`f>M`%01go*M>T&%Cay=$$$x(|x6}9N7Gp!bHRsEGZbJXH7>OD%mIco6; z)vncDokGSglILsn+FYcCqn=5vlGvx?Q+CzUP<88OneTCBX%kn(#MlU%hZi%DLBeQTPRV18Xp!tscr7TaPm zNdPk@n57mU)sSokYVoRnXtl^815K#K`=^Ln^zVw2r50Q1_*BP})S@ga5%G9g$#Jr) zerTvgz-5lJm0BXEJ}ax)b@mmdRd{oL;c_Zcth2MgI*nh>5;4^gS$cWh^cqvFEg?I+ zqZY+ca8&GAs6}x)nw5>pYi$27_7+`bsEX}sj(X(p%sd;o3#z{PW=86< z^es_4$?CC-YOhjiEu_@c3e{e#+QX{-cGcdf+9Rrc%*(0OPn)~Wudyl$&O ztsZZGh1;F@i!Rd7iNDalb^OJi-@8U!)y-9t%pXl1E9Tlv%8Q(As7Y3`v!Ny_I6uQJ zYjPlqyC|;J}pQSCc0@ znf5vC!tf#`>|)ATQI3HO8`y5BM9yGgk$cz}tlbWuq0I~qyYSHOWOO3Y1Vza!wrA20 z)|A6pTd}4bz|x8}Zg= z+fJD$0&#aOo%9l~E9D*cGl85jId_=@<_riV*IR@df1+17E0p8^G6tl z?%wq!7eJHsB{%Fs6YOu7cnRju^`#^LZ8BgkLYUdZX~kxxg<;yj%LHSc)=hL;e58hG zGgx0boK6%V%R<5j6zx+*C0=l`sKFYTM89%X$Ac1Y6tQpqqwJ;FF6^~e@>>V2FX z$XU)EIFK_E7F8O7qaC5@n9?Ya|0q?bmc|e|7Ncr&`#4#UwPHUnS(ETo0Gg0TuL8)B$M9&Gmr%GoOHLKN#rrC3`ScA+Fqe8*rz%I{rQ za@C@&E0JK4I2BE>jf1=d^XIyf5slau`;-JQV}e;~@jMO5W}p_^JK6qeVXt1%K9yQL z{UT9|0bf@-z*UQ~v}X>15v+gUg@#&$r%h^+ovl5ZkcIVEE4K6!G?1hgv8C7X8dT&9yk39TiRoF#_+jy6S?GzVU+P^%|koJ4mlU(&E!TKbfZS}aa!b>o}t|vKBiEXi- zBvFY>FjF?iy8%GXH0Dlr&*~1YdK6HV>82ca zLp}bpzo8y|x0fvisM;2L*_>egNq@*lJ^lvWQ>n*as`e_S*0g%OL$xQX$FYy4R*(OF zIJJ75rkSTcz zU)Pr$0Ie<7my9z+903j49Dhecv>A8?ciyYjBR{GM^|<*oQI7#%Un+Igqol4khrj^P zetoK;9sxR%dhAXbZIA9GV4JiR+j>*1FSW(CUMCsU#JgBM77yam6LzuT?xxk_Q}^?A zN9|~}xFU^Otf-UcX`oH3#Z%OKYLyyYuGD1@)!wMuaXW`~j8V^5YLV3?0ejn}Uz6b% zH1=PO?Y!E$8=}H4TC|;405h5_vP`0-{52;VQhx8clB*Vzj}y@Zi+s~dFn_KqB_WJM z6v9|QGsO+=X|drY(TL1prc91MqaoQ0)Z+XVS}j7{=hQc$7JnZSwHWYqrS7g;WUrB9 zFEo;2sKuY2XsAWNjieU$JkrZ*u@&2S$@WPKyJ(B;yw18($CVkaD}D4UR%@QHi+`(j zt?oifeLaN7le(%^YAvkVd;eP68&!Kmwcm1wv}<*@T(v){o}V0cQMOF_>-DAv{d{Qo zRACp_%X6Hti?7NyUh;l3+{T+6cA=&H_j?%9e(!pcs~(e27SRMd>3A=}{JEZFL?uqc zu4x1xZ=(I%454MdI}*4AttXK>b74L58tZ_PW*T-e=?<+PIeefA^?2uTq8=gY8QJ&W zhEyx;qLsw2?vbP(1ym*C*`Vr_?uL5AY7(hOwugMNmn{XT+7^4+98mQmC?KQ`ZfP>8 zQ-2|9C#KX|iBd-=sP-z=9#ZXVRC}#z59|JS%5xf3dqlNgxmen_s`llo{eP&Cy3=Z~ zPPLzRyR_@*!v@v9Y6-VHVHYPzKPT)$|JGp_UzI&=^moXRC`SnT;Drr@T$Lzc7Z$lMKN@Sd zlY411gTpR7^y`OC1Qw9q30&B~DF*#G?82hoH%dUio~M9*ZrFu~enTP>b`i+ffzw_3 z*#_}50}yuc!8bMQaoB~2bbmTZSkJ$~0-;v#`>j69C7py_Sgdz{F<9?`lRn>75Bo;v zxDbK&p%QrhT|)xZ7_Q1Z)pvE+pc;i!ob+6McOg)GRu_v)1>A<}M{`})=82FXx0 zNmh6SNY?R$&v%{lF<6Y*i%$KCpP_VVAZ?KfgI?s68!YyBOufWgJyNmQd6>0kaGK$;uF zT#^~o>V6K)v;oI?1X*2ya91F0j1exW*fKNd)wv_M>&WiluJ*~?HS+KPn-@`oWMqA< zZ-@Ulmf0I$1J&OC`sceStH(!G9JP}7+VueJHde0&A;}=YrCvWl6Uv@Hm9pqoDa-Dp zu1FYCz*yh52J|UjC2ea;(1vTPLQ*acOL_NlDfvtmx;LtR$5dIR%33KoHy8D5Q0iec64ln^gKF!J^+@FJ92j6bX_7%Q-ppl*mun9J$*PY@#c1)u09#2hgKC@#*P`0M zJWwriw1?3iQmQ|YR?<|1WQ+$|Bs-!5NLE||Mmq%a*0L>s{(oXy2GU@f;Zn_30Z*O= z^YY!JKrr;M3HF`+0&FhLatS8bpT%YmLewYL6oYD%0M}x(9T0V5W%xA`APYdI%Agt> znPh`IM&|4TK((qaaF~hL>YcCv4gdXRUm;x}ZI0^<(y^sxk?x%RLAriNree5pis1se zIyBFq8Zp&+i)tMp!4mmLuvgRT?5o&y>D>*b@@nV~cq&DYPZO_ZgmftzBV}I2mF(59 z2ZMl&kIAbUM%VhHvTFuktS^AufeX18&~x((*N_`S9g5yV2ddwpScJ3N?V z6X*UKq?W)-@(U-HQ0o}lx;UD#*r~L2aY~q4XVKQhnGvdvpskC;qg1V+t&0Of?P2v>>D=Z(Og>4I?yFPxDP3RPsD3M5&q0#ZuQ@Q2f(uV3eZ^_6 zXR>x3LFovFvv%b)*8@V-fzwGX*as&bm^(NU^$n(HYss_Hb?k5u8$PodMh z;?oYNju((l@6T@?N;>^QerqM^^a&|-`dH|6?$e6XM^+f4$R;vq=8j_5ofySq3R3ZY zU#NTf+CZ+vtu&~HYR-C#YKc!lwRaB@6S>O|*beT!FUlkn`4^Y-rJiRP$>}WW zbQUyQ!gQZ$K@($8BGhB4GL@2gOksYWMYCuo^Xdq)jE9G)Lj_sJ1Hx1tOtWZEgsPLs zGM*Tv>KL+&N5`nTy0i-P&M$nBiWIZxY<$WY)bUc9MHlm1FQ8e}pWix^X3>QyXVGLl zm3LWZewsn`eFi_UWo+@o%R9giTRNngMc={%qpuC5c~@spjV)t~YIpq?RJ;3NP>s~F zg$JGfzECZY=G|(8YHSo+RGa)Us1`d2RLf7M+6Sd#6bI7ATkBHI7S>&kfl+++fgo7t zWP<%-yRcaxv9k>>!Ne%G*lfQK!Da^@0IHGEU`@^ep9s|giJdhVRAZxlm}J#LVWEm4bfw?O14mgc5nxb;x4q(cLVE^RWX zhN{Yt(Oozzekmka;`{qb2+9w?$L417<)gXGyGY7j2cd*jq~c5}bN_D)UoSgGuJ^uN ze)s$#O7zpQCmdr!AniBgdeKk6kNe0ZeOVsJ!6{;|%Mo28m#bkdb+qd}bc#pMsHu_Z)!mA8%fU zDx80A02_^*e{K*PjhugOVu(6${<+a%s&f9hDG{o2{<)b^s&f9h;W4V}{B!fG@R}5+ zYA1Y6A$6=IQ*{ErbzBLmqxh}U$yB`}rKvg_rfO?L$)7S9hD}v#nw{_-80Mt*sixV@ zK{mP?4XUxJYEf;+yP(=W%*c!Ag<|_C5}2CwUS`%WI2EFtJxHHv4V@Y^HskVe;5gKBKA^5Mgp*Gl4`+Oa!#as=zOBcT2za#aJk1xlZfA0`$= ziL1W9G+=I!V5ql@(PR_a8qJH|!DtToG}RoK{%@HBfrO#r2Gvl_kps;29Owd}n&|q8 z%z-&W*fcJhd$DIO7`(rj<^_zmFU=h20Vwu(l5w0sax`0-QwfTl!j|SNf?{WesKW?? zVuy#RT0v0kfCyCw6BIirO4UgO#ZHV-bwz0vsFh!M7ZoY&+tWaTlc?hyvTv{Aw_Zy2 z?Zy1o3&_6hpVGb^f~Ru#R&4ou*BDK>4-oi{O>7ydWZ9C#4ZgT6M9M%s3RYHZ(H zRO|c(sCMMXpc+YjOMCw2RiRoSjkFI9sNUJCa-jJt^Y{Z2{@> zwx?pa6BWY+a$)WOgKC(uIg*e;Gu-p9fNC$j$981i&lmEbu>uFMx;f$J6;6o zmj4qBR|00VwEHo+VnhbgChF``&6cwj?O{Y#CP1)IGQpm046r%W#U+>+krtbs`aIa| zj5w%9n#*FdnL)OMN(`zI!6e<6*6BHa1=aTXhhRf@oiEtXy<9q(MgaxUnrHD;Gz0Kh z7*g1f;6;_Wlg^R$u(UfHO`_^|OqErttd(+co%-FN%0^XgRpoY7s$kcJYME4L7S-pN zJLh05M}JaZLBfhkjnQR0m;U3}xyL+<(JgyB)toqgvq+LaVny8zs!pN~UYrsq9f+s4 zGP`Sa4`UQjO_FS1e;T8B+#9KQe?F!KeQh9(wU9wIwsS4s-~JS+_Mfew8ic8>MX&#( zP%V(g+9?Lr*u=G{w*Jqc+M}<7YDXti?d(rK+eN$GOABx&C(E@9N^k-ci?yMUr4g2DKLSFJceswFn(T0$MnX|`xXvb_NIP8nh5Og^!R`IZ`_%L)cg}dI z?$Qw=jY0q{^2ERMWIH~wAf&je-FCHghBqllMsePxFoQpmHz^F`&b&#XJWTiTCWT0Z zs=P^Ie3YuZNg*1es@|kfSA`F7C4Ox!e$rs@Q_gk|uxS~6IK6kIoF1SFMW5fwJqzkk z2O^PubnvT$jQ;UV1T)dKK5HpRZk-AyS8V3+SXY2r^amq=Re0`8|m;E@3d82rYd4xBL&xp|9!W+eh zMXAag#mi$<)f>fYtMJZroOU9=ocW|>R4PYGY|KW7(?Blz{8sK8zfMlq>Vz+}IqeE8 z>Lf;-p*W3sEQK7q?FnsfC?5L)w&tn7{Q~fqoK8Fx11D$KRf5OHr{b}(4v(>MH;s5q zjJw&caW|59jEuWhea*=uX3(_;Uq0dhogv=JdotT z5aO;23#dAoxN8Dab1ZS!s3y3pKy%kRl3AKO@$P>xxC?kT4G%wi5^d!h&sFw|qWl{6 zi((;qIr~L3!c=9yXjp`*>=%_ssmgv)Bt}*37p-iHySll&(K7lZYe^7_KA%Nzs}8{^ zf{=G1ZOvT|F)m9<@?9fCMX(w+*y{~JmR(y8RpysOuqyJz|MWY9yL>0RY|WUZ>=Mn$ zHW>X!A9@%cN^tBs`W%5I8%*fv*kHFQR6CdwY%_SwWiPECl?_$}EXuLLd?&|jEt#bp z6D`R$n8j)TCXjP8(%_36BRgM5;u~_T(*}`aXK5|@1>|~FGJGgBkXX-^j`2J$1lvEA z4Mrzyik9R+#Mz`JB@l5WX-Nr097tM{0uj^MV9#qFWA@VIiMM~m;4UD+q-J0}XNMP{QJvDc+4d&I7>(&W(_0Zh)1;nbVzkN=D zK7R9344fFx7lbf`skn=dH5cyUZCsOyyJQ>JSmG|(#x;$&i?(s41l4O3lVvNk! z6>AOdLOcx(54&)C^bmOF(N-M-Z*mt1MW0_lyq|eUuks(+2D7;9q`!c>y3k<()GRg7{yL4yEq7yX++$0-Wr3ue1}fhnlVdsLNp_BkVK zde7XIWP=HtIW}0QjX}2acW53Hvr8Lc%yIFZfNvZd%y-s)m$pPIznZ_73O9z)WevJ1desl2htqfc@K4G2XDXe*O;DV4_<6^SWlo$y3}#EB#5^Z>e+gi#5bIT+Ox7^3tCmuepS z0+RE7aq)nslLB;RpN6Q^I^nPf4NgO>DGe1fzAvHzZ9i|aa2hWaWS+@bMbj`wWpUaQ zaOVX%%KWe%?i;YiY@$R_Jgd zu63uLbLi!WVMTR1y&J*Ys9s919_Fz^ab+xx+0oQzasg^sf=6|B398sZh3d2rs!c7y zKZU7o^A9?)qYS+jCR3dc0Rd6*2f8sgml;5RG<>Jq`&(fu-poW7RR(Hd!H@dfFI zv|4dnwnNLAZOOu;Eu6`r0$z@_)Wr2!Ca?(oNQpSQtD~3mTbELwFXc5&bhM9-{vJ$lhR4d zUy?w!bQ-@BJT(aC0_cfou+z>Z!cM_lm~Akn)BB4JPV${2Wt+NLI#ROO&lxE!>2%cH z;G_eQ@L!*1VsO%P^M#XwiCS+UPEtp_#5exL;3VHUO}3uP(rGfn-)I5W$$s%X(AUK8 z+JTe2DsJTl*_ItlxOy#dk|Ij{jz>P*733_KF0O@%APmj5^x-S@KG84Cdlrp|Kb*XCMQyT)ku3TU3U;9LJya#2So8Ld@$0_ zRRdv4sSqLpl<18LAxe3wJzZ~9{kEdS8o54(G*9+7rJ{DylFKS_guOAl6Ix~4$@c1soJGfWg_sw61a)%Wsb$DZQL%hC)Nccdmx@`r}p?6W^yOW z=72s?1Dtwhgpprpl9--1V*IF9o4(=JR~&wVgGmAA{*<{*yA=X8@3Ik1`2O(Kp9&M~K( zoD!xgr<+6+7pk0Y5|9q6oNjUe2g~bplQ&o4?a6=+x}NyOCF86m>7XnM~Z6KhRhT<5)1(2=FXEN~Eskw=r-845)rO=^!(|7L?9PeWIJa%w1a9KG6`;tEfmMt|)|^p3Fvg(6cjHI|@y zMa!Vj1(-N`j7%tWRUJ`U4*VqrChl~7fzUVQ_|RjbGCpf!s-*Fx_F5_RxZT~L+8b5b z)Ohjd!BnG?;#Ns2(Yd}X$}n6A5oH1Q)d+G-4k1e8PBRp0P3fbtf|%$)N&CIZ;TBl_ zM7CfCInFbc!%tv#Im*FzVMMl>kvTYHDF-n#7z(vG=_Mczi9aAEzh$5qrt6jCg`I*K z&pMVzFF z5`SZq!AZV@Xly-~B}5~7j={cmFl8OEZ`;-2q*peBlMW#Z*W#qdZWgf5wwO4#E5amL z`e1|n0JcFnx9cF5Nu1jiyP{b7MBodsOv0up-V=pZ-g}NMQK;&@=kwEWQm5AJ$%jdx zvXW+Vw#5wMBt?|?+MgO=pYMPfTf1cm%!qblu+QS8U(Nt0)xNlM7iWDkETs{bi9l+T zSlPBmWiAb++EfSLgzRpE0|usojU*4&;IW1@@*N~&>$NN)8PRJD?pZuE3aC}0;(16T zQg^mADjFkfWQVe30`Bp73<%i5*tYVVI?p*3dn`wCjHHnwO8lVF1}FJ0l*QI-S%$KR zUSn|2;-pS+aTD#IV{k9`h*t%qd+uom*V~1E!0mee{4ac|_x{qQSH6^GolpX7Q5#~n zHK1?tp>nP0U$_U?>Pr-G6O!`ou$0RpQZhzJ&xontRjRC&QUgJHBlD^Tb-huQTcy;o zjH}c^rX0&i&sDK;&aT&e0SN6w+})P|p>qqQ3Ke}Wt7x3Wglb4y;WnJhD!OkeRP?z# zDf*I%J~t{IVyMQbdR-~$=KR8IsYro%@1I|oL;cRjJH!0W^YO|szw&&%G3?o}jL!Xt zfbHnEev~n%58v0XgsOaFKgyWXr-_U?lQ17JCb?(7(q5np^cTVlUPt4LCTIK0X2}q289}EEAX*o9RuG#H zU^X92Y(6MTt&`}Kfr-rKf={Q}n~$!isYtJuom2;miJlMPrc8(?!o8Y30c*S|`=5>) zvfp<&i)}?@iL;0m!PuR}Nk;-eNbL8Ngfaf$&n)0`ulysG+jc2DpU@e|k6!t5xo0Po zkQen42nMtl(QlMxU8P+oMkqc}eslH;^k1a}2`|#n{ZSDt^)Xdesj^nebQuon8&$s~ znZHcQ{CahGb-j}L^?DKDEXaI5iiD3no5^yN7XfCn9Gyine`bhy(KxWzSmorDU^96# z@R1ucc{1o@&mKu5^UqdktlYyQ=0N7p;8&(Sa&R^gn6soAr;r#Y!8LoLvkR1{oq=U!(ifQ0XB`tClG;mB(cg zspT*C*V>YFf^?8?wtPf_`W7L%O?JqWDz3=cV8+FJM zzY^4ekx+}1PQ)@y;)p+bQHOU13LCWqP&cIH?l2i#DY?ho#Svg5K^^{9VepXekSp6> z$P&2{dx0=eBR%PRKxGmyKL%0M0T*n@;SWCwaJ8+fyt|y?c_3Vca`qaAz_XJ4&XeKG(Lvj3GQWv>BPi5hqx?(3 zMxSmFU-*qj*#~Y=4iXtsma!4nr%=PDyJlvg8KmQxF$-R>>)>R`!34I*8iC!B~}cg=zqpBElwH)_doHi zhhbBa&ypgf^@Fp;4zL3>3?wl7P@k4c%L^QRHPq2pl}cX?RhdeMQl?Up5SV=m7C)MP zPNO9tWUxThfCHO_#rFj}S(J&t@hyX=e216V#z2;Mi5LTnyjeW8>$~8of38j`oo+r) z*eSzR76Vw`4J+&}u)LcCHF8YpG_Rk*Nxnl(YmZ*vNx{SnGob)8%fW+#%B$~Y9H_38a zM+fGPx|gE}c}0bDCt`IaBr^63UriwaacJAf@WB)|J19mEyRWng_ECP}y;P)#4)5mK zGSMPH2Lkv&di)TA1}|iNGr0uS32ao2rReaclH0xo{)URp8+D&7c(EKeR=p^~^C2}> zYJ7P0OJw@uk}t`S^}vvICo+to$U$TWMs+Hw-58UB!MuEmpsDGvm7%AWlt3i8Fp_&BU|M z!A$(d@{}_DuO|f=b=qpm^i3f{ru)t=x3PjO?Q+2i7{9bQ=_4$jB(~lGPAUQ8+aBJp z%Y>7Hi8^f|PEtgPFDo@T$#?5?wsnx@I-OVtj9>DCoQ8Ps?F~*^d>c6FC=Vyi`EHOy z2saZaDWb%u4l(dc-`SZqR*4|cMT z)~h?lkWRi^r?d5323Au|B;03y(!M&;bBttKJe3DeH?d$xn~=|s;ll4)_$W2b_XRxOfP!WVDxRV*Q$8*-%hL~y0D z$_Bc-z26}OKNixrPA2achdHAn?TagmfcUlFelEiqjikz zJgHZqj8Iu4TF2NEok7O1FK|OacZ$|gM2WA5RpiKS-&vNn?9S4%G!RUSllBKTlK5bu zAegrYB5Qt z5kZsV!v~T~@6R_*CYe5=iF_BOEYp#%WQhzJv%4{FxLuFSsuIvoWV;^1FMOz+)u})u znbwS)))O-_IzOdsKd@M2doWk0O2F&Tbu8ZF|2xvpvi+=5bJszZvb{bG!mMK?)8eG# zj|V3mRs&87d8~xj3sPAL*)QYoZX*~*RU0H<>q1t7B1-)Ee1ntrVg)(t$hos)djH-X zob*&RIH|$gbgHfFIJGVj*(0fOpfQW1jth2$JeFbyYlfN zBA9}?#L^M$Wba*hC(n>hzKia)(eW&!d)@uewsbld9&h4=A458Mch>#4P}s>vGL3^y zD`?$Za@9_vaJ7lNwvAIP_z(-2=u;^}*pvvl)V_=EEgA;$&;w$%W2LogT8s>K_C6-uI0H-Ry z@MNmb1Vkj6wuXbJ(0U>lVZ>~d{399q%Is_;8pWiRszXm}cedhNo?}JLY6IWM#7IBp#P({sP zqE466_zn9h_NtiQgx1ycvVDCbzIZ&7Xml8Ea+p42N(5+I zglaRRNFWxa+VB_>^2VsfS)ua_=Mkm)&%aqnWXGv2COYwZ`A@tY@0AQ&-^Y8S{HOj9 z?~UOPy-00Cyok0TI_OV5asXB`e%P6j!A z7PhIB64V4+&{YW5Srcp(@sdk0j_?_c_ey}z6uejBduHOj65caBjIUyX4T#{Ym|%mV z_$nsY#2Ef)CfHp>DJQZgnPB|KtZ@hyqQCcQyjQkuUxN3_uI+E*z2&J0#$USFAsCZs zG9DllABzVF#i!u`MDcV4D@LHvwT}-QKC;h>J(p96 zlN3?nIlCmrkLSMcYy;cM%+fY6tW1lOUOOC|v}rmx$-Cxq6U+jVnk}(1IXY8PZ+=CR z%7ws54lY-%%>bf@?;;FsTrSH9L&4>Ez1-rYn>&G%el#t8POx(nIA=%mq+Y@^&Z{)o zX)rl0gCaBrMz$McOX8x^D#*k9!kejZgMHaFpu2Q@wwn{o&EJrAHKT2|Bvuq^_=%_n z#)^N_*9e`h=dz6EVLi8=T)O(h6m?38olcx0OL$8r^AcWJd3)MpYS8WtA#xrChdL{jO7GgDM+UxmC)= z+tu&p*77Kk5Ia{!_L9^td+O6#jRPHw9cHUbt3Z(SM_x6xmN#7)v7YQDZXV--6ra&w z%wSr}lidl;#%Gj+@zFaekFmsO&;a5Zj|;pKV`wtnK%$4JS`AUU{Ka~Rs?`vs&0|a< zG@P4^Q5Es-IL1KSJ4RK+zhhKI96Ux<#KU7$MO-`8!^=DxsvNr#yn8$4BtShI7axk*_>0Q)!u^R8#ecDF1!I@+SNbsGz8>NJ z&64rk_GeIdYQdojG`GkT zpS8o!K8H67rd8Wp}y_Ad}&Y}qyN z0C3momuc?eRc0@DP5(f+E0`ExmF6yv4$`7M{{8n2?%Ep{t74}t*|jYf-1W+6&0W0T z!Fv+w;oF6~f*GtZi!>t#3z_7J@4L<5F5ksd*_ts+v_>=|lZaBp)N8xzrhUL&vqmZI z>a(^07uV(EKLn!+o57hb$Fl1I@fQHiljsa)ezF-_f-zav!Fwbc^;!EhRO0LZXKF^ArYb_dHu`cv~KOdXV)Y2kT_nad`3&y*Ph7Ywn21-5v?Pfu@gMcc z;eY#w!CiY-Tyxg(I+?{?6L*5UzI%!0F2=sRHrOri2zLb&otUI$m*_{L5dk|@ZyVg@ zJ9NUSR41rwbZuepl>FfH2S$GmB9m+#OC z8(GZ~oe*S|u`i3e?gwU?xOIr;E`l#K`3%kY^52EKf{9LyA z|Cr^@F7Y3kL>6~l_z}44tU;Q)82j?du9>e3cLfujh-%p-nvrNkn(?x~8QkSNbi&q* zS)vo78Hq6KE$;dcFw?}}BAUB+a(WNJEPhS6E10;%2+ds**{zSmJYb8#UA{vkY|WS@ zA|aZQm~eV5gp)b%e%s0!2~6Sk#Z!sOWa1qU<&y9J@6W5 zE06D>30p;G88aa&l7KIR%}#m`Y}TbhOE5;g6a@|IYxrhiuwdd6gS7|J#Vm< z??4G#Ic5n;h;k&z%V4dU39!~>=WEttyh|+#8B*()e+{x)ypPl(gE?%LD)Pi@pEFo% zuR>HLLX5S$=2-j>aMuC-GjvPpAE83T&V?DJyC{1FY+0`*=TUrUY)4I;Vka@ z-CN+Ud(P3^MUVy45acstSK{d)tHl+XyBPG+uV@34B?Rm>8r7gv!+cEa7_5k{s)0$*ws7OcR%%qPdH0 zFt3IG>jvSjU|RSaG(wDZ^6`cd(iT6X;QGX|&m&f2%NWR}*xyX8M(YL4OF1Eqc6g9Z( z+I7NR!L;z}Gg|u-1*hNfTEetyrrbnXgIM8%F$(?ia2KW^n3RfKDawSy3kb1CybA z7lUKVsx0GDSyl;kN|ljNLhN*WS0pDUQZWiSwp2>NMN0df!NJf-6 zv!XPHQ!-*yZ7whIiTQUuu^hCwcGNHpxy*GfJ$~%Ldcxi`L4{ben7Q7i^ik2)6?xrOCI&ZX_HT?px zlbjYa6zoK&#dz3hvcpct(dUn)kc2xb5#ko^0_=0H^ELlh@DKz#CyOmag?3! zygOUjW$E3CvSUC~E4%jqk|#bXl0)mC{TgRY&z(?!vS0qT26ciiF(A^W_r6fB_qrG* zrQVK$&~zg5Cxw!2{TFE0nY+>6bCk3f|4iEJOQ=86tmmzihBYD8P&D^Yd14F=crqts zN4Yp6zpJZMS&I^HSiD@yg>_Qi-Jq^Fs&cEkzFo>yDtY&^0@#K00ZV8bNAJdgL8wlrSJR0>_N2j;k@VLbPJPA}poaN^>a-G6 zui!gJhEQ#4zI4ZY(L=_w zDb1jkU7dCPkucUslBQjA%|6H3hSDm0fOB@6&ROpqs?k*?%6E?lcMsL5gnAh7;dIgm zj(RwnK7Tf;hpSjUj4VO*Vpb0W$=c}OgnB3?^??5;6NwgI@x)1Zds@U+>W^9&FwO}1GvJQzgQO!oMLV6tcOQ~K83e<@65hr1bPRg9qH zCFLl<3OZg=&H@}vChVXvjproth~zXtiuU!~R^ zTA)+ww&2`(Kw8R#J%g zhKn^5&4F>6_(`62hPq%ZZR>U6ZNf=y5_Z(~2bInN@6xof6*1Tkq*9!8IB}A3^vMts zPZzRynoOKDp$SgvLgHy(5T#yGCjO&a4R-P!RAc+rSwc19TQhaagm2;@pu>qX4;Jh7 zP1umIUOtB9nY$zxby%8Zf1^fJir+>B)L%mu33?Pil+QM6QSbfb2%r*a@BKMHr84gc zX_esi7WQ3kWh{m zB9gUYbgGG=@CH3fdUTRaTYHpJn6w>B^9%WJo<#X(<;+kxAnXG$`7u;6CMzR9Gr~kF zMt+7xsLIGsIS&;hKam)<-lv9YC5@P?HtkblyRognRCb4~89DdpXJz zpJjB6CqCQDGkD@_dwHonT=vAz=ZVipQnc7^b|!uX*d`7POF8kyLS(pHPyCTUe-q>P zk%=EYnCD;dywBUY6aPq(0+{#@q7mcePW*GIH%%aD_-V zwq#+$Fl=|nI$4XYBxNAA!Ln-yat)!Wa_SYZ7eDrAhHL1%*diOQ0uV!R6|2FKm<*x? z2Rce{NJv(VnuM!(VMDW1(J#PGC7*w`i^TYjPgnuu*8W%Y$dd-LO^RWLT<=wd5;L4V zF|-$zNPF2Plu!fOwdgr-2S2a4LE4>#jiO!B;4Ez9{ts`YC&n;zC>N70N-`uO<-%0< zAgQi8Tt}%FHWoIj{#&J8s|W2>=!K1iWFOM|v{C5l26%uF#5l(SlGR+;NT(a%1ycWr z^e5dgI&9?_RV=girQFNhd@iRGmaRVSJRTV+cHr#;B?t z_Bv7x>Ab+R-6`1Og#F0BNiHCoZUMI|1CqZ3p0v8%!$LU6Hz$LVrMzvBu$j~CG!o#!grXnZCGT9ISVqyOBkAo zHY^1bZTt{2392@y{s<2z{rShjNx|HAxD!jM7G>g(Tw}14@4^G^6|oG!&QxxX;2q32 z#|q!XCocv&&G-N^No~VxO!8e&psnIEfMZgzlc+exU^P3vd=uE|t$%BF@`fzOX9_z7 zb1%hqhn;lD^5&}zcJdt*W2?98tmk|Kr~y~WeyBjOT(h<7}?Y8bmk3Ur}Gkm>>c&KAaSR@Bgo!!3fZHS zY(VgGm%Yi?doO;Qak#~Vw*hxq7(q$M;CtKodar6+C&cdrDa&3&N%#!GM`-W4_$~e| z$RMrwzAYW|?vRcS1em))8mv%RJZV`BPXc_kxK_R(9b&YsQT0ngj2O4V{nZ76@GVwI z-(rpQrC$Dp*GecJV`gJ`6=-ybptN+$zraAKKO=nrkWe2Tqy8;l{+&)pAAl>|WP~uc zWcha*A$?b5jP%7Ze~h8ZJs2#(h#wj?uE%&Q@GWAA&oJbAK8Tso_sv;N%(`rzpK+rrO;8;duG!MvMl#xFU)rm3k#~aCJF!IM6$%ZlV z#~aDY8TngOT7{XAUsy|pYv0?eK_@cum$aeG4cSQ<^yVOc8Nf76$A3^lgZg9fAF}tq zTZ2hH>TRVnlG4SBr{sh*|74b^k6?m;Z-MrL^_V_gFoJ8;DNpaaBRhvC4eJ}jqyOuM4hX^M8|H? z9=8_{>~^`xq+sHK&y!4IYe`Wi-f4m%lY9r@*eWhd07q0DZP0PF_54 z^EhFrVB&#|4m)W)aMNW5JNXX4u~l4_0FJ0Q#sf7wT@9xsas5l0oxJN_{eLLz6ihtu zDTkd*;b{W70sa7jQ*)bld+3EPJz)q*WAb8+=TNua7z55xI*edcW z5TD*ZdsaZcU!VlUq&HSMAmEd96Kw>km5xQ-r7UYiNmz|S0gLH3@AsH17dWhs;KAvQ z{D!<6rQJmXS4o3Lk#t;{-s`ojg=pZirqCq%lN1`bjL<*>z#pKyP^XR0am8Ffh2H6t+eVy4^*ki!e1A9zLBwNklmlMi@dh>e*6>D=EXn zjob!fDLi~s6T2xlVg4ASm-`%sSp$O{SVNu-U+1R|W<NjC*KB=B*M@)%KTcuKxQZ){s6OY}x;5rzOYJG}=}Bk{@8 zaJMmQlicl##)ugbObD<6oTP~oKYz4gf%p!yu`Q4+F&nW!7y{Hx^y?UyX!TQ&Nr!-m z>JRsD(%MUelY$8WZXlUtQYOCgVuPK0hu+xkc9!UkxZ4Z?D!z$d0>C&i_D_&WWarut z;M4Ph3<0hsnWTske{8Oy*nEfC*orMn%tjO&Lx7rziY9@HN;W|zv9sib0876sGAWo4 z;A)adCS~FshZr)+cbJW>;Lk) z3@gfa@PMuMvV;dj?J@Ic#(L)aV60c_!C0IvW-VRhbFW~PCui2&M;TPXgbP-X$l^6s zR2&-hVT#4$gAM8BJNUp>hFQV~q6`^>(oA-F6iha4!)Lor`q*~%p1m;0u)%UL5>q7p zWW-<}-@yg8^2-t~5aq|{lV+dezX$d?bv)R%uzn1)|azebP*{{{4Of30t4q4-b_XE!Zhyko}tssmIrzjTw%pYoac84r7FF!fUZm~ zK^2M1P#qgWwW*cqMI@8h&{UL(FFwbRNxp*%Y!#O!Tp%ir(I?GL2SKchVr%0oBw;G7Y8$^FcA{AUmMaSAQ)^;%!`9TP#r<+G@RLK48>oFbTW=)GV?CnBX~Jgk*rt-fwBih% zOcF0FaM($M1Z%%-u#@jV0$bT-2@;61Bf`{ccDe^pZ{nd<9DtTv{A-Q`EBojkD!1wV zsAOUxP^|bpZm!Jx7$uYh$AeKsS?&wC4-Fh@hVt$b#3N8tPzWV;q&OuiqpFOlQbil- zZKcbWtM)ooHmI^um0P9M3FH>%;LGT_w5^m%6@4VzO2LPer1E&;^VDfaQd@bcb#n&7 z)XV)tA-^L$;nE%v;${#x@@Zva;LQW$g9bbX94KZ)f6)Nq8jlO2qKu*845M_L8lvWM z#pxl^c|@z#5T(l%rxOUL4G;@J0%3&%mtzO1wLM&H1-7L0Z0vFYW@EQ|(+l?j6I-=} z&cStq*j7k=SP2K$At(}aMF-cVOqq-8`UIR7Ctaq80(erk!b$Yg;Bn&woMsOzxy~cp z&%E65WPFFN*tSBJ=!)1149;nG`b!1aY4b`5cgieXxq_wolN>GlL;SE4iT0H1mA#kH zC8Qasg0zL$??t~+=KdTdM2F5ZT}Ho2E&NK_7nex?BKnQ{SB2;|r5pG+MHJ&)52fbD3T z`oYA1*nW+3eApVQAme%f3ulf-mD7DVLFE9RFr2h_KtyhfqHk2Hu!aWkgjrBp1^Jp^ zIG>6XzM4MW$BjaDPZUghK;=Lp#DVlC<2V-MV4r4Bi>kt0feLt12MsgPjS<%)Df)m1 zPY+sCLsO+ly}O1e@Q0%@JgO&fhyIwroqh>@z#w2}FqjQ$9eJ`C`@sx^nML}*q)hza zZyLtF?~pAUipUb#67zygzk0CdxM=8|4d1zbxb)0EE~ajW#1LsDVSSi#ycX4 zD8n>@X&EmVVpvhWgJx{CmnAeKYLAgV%~;<&6O7e+2^dR)^N6$7DQT4)oOhWrsB9-M zHHKlV=olErU|Me;#25x2vVkM=Fx&Z%4Wvj!b#-YKJ|O+6m|tKj?J>k&6r9&*twkg> z=fnq?ww3R~VQgiHKo62$*_|WAmZxU2znl&x+q_7!3q)%f{%cSeP&=Y1fd3K&=oCn) z*K9If7|>W{*X<+9mBvIf&(GJ}}U`G7GT2#1I5 zrj<(&@;G|@Sn@tc@waBOXc+}B({hbqb+Th$jn6_oE;LTy4;r$N8mh1=BdUz5GN#HZ zRo1F;LrPEb3jkFXfI5*i8n!_Ga_{u=9i7IRCX21 zvn2s&Up<6n1c`BzGVx1~GAvKu!7R3ckR{9_1_EPsif`hDu*(x&ZUk0GTxN69^#jG; z3?{-d44kBi62H2_urhrIuGj`Zmf(tb!;IBwCVDCaCVFXs_J+M!-K#hPh!j^a!Ii-z zlURr=%EbSSz;wqO_8quld&60RE8-0^R;Sr%HXM<}yq{=x@?v!hpbUwff(fof9Cp%J z-7L&Thn;)}uGlIrOK?S09AkBwolXFb@0yC+2_&25*HDEuv*oee{H^hZf(BWmuIFRYp}AQ)QJZYgM^im369YP-UYkx2kfxDx0%`9XEx~K_1Pfzj4~$?y}?h z-_T_ZTmg>bzJQ#L{`}^lwB&VR2~EMu5UOs;lP_+7rb~!ci^3nVLxV&BC zw{~sK?;2J@RgH5+P2bXRMGdg|_@s_9A2=&l8cfJY55{nQBt+lLCn3)WQ`I;{nzv!d z@$ng)BF%rhksi#2_2)QbNEw(xQ<+a1Fz3Q#5K%UBjK$runWHHpf`GuuZs^x=?T(rG zb07HnXS+be%BjfUHXna)1zr($iHZ1{qE6RgW}I*zpDLew>yPnc<_$Y{8S{f9{Z!~5 z23@=KUm8D=lE9rTg9uv9WQOBW9?m1NyXHuKVP?tSWNLtbtzJm3xh4!1pytM*7}j|h zR&#Eoaq@NGERWom%*hYH(H@?S`WQzTgvK~FTxpM^7>!E4UHe44@|q5%@k`4L;g%-$ zgx4y|ne7eX#xL+>F~^Sxexi-DTP~8d(G5=#*Tn9ZAVwY zwM@R{r&cT_NDEeSFyPk$pz=8QJH1eJ*{Bf(f6S&B23t|3sOX``Tx_ z2G+beu;$am!uGp#bws;ed;t3S*PzS(|NbBS$US0~1Rb_VBMHYN=wkf`d@=8}D*U+V zap_qnJ&V>-<9?f^alqAb+hafCve&<)EIV`#|IRy7%Hm_C>^%TC<25}8QHc=7qF3kw z1vUO%RdRQrlDO@M{QRPOXUcQVm6!Kc&+qjgc~8&d<+)`iOIduTl)2|pNzcDTRq{rm zk~pxm!b$fue3%SzUEJ-1xNPb(TMpOU*kp5FU9`Q2-Q`o!m@ zEZZVw@mo~VD1D|XMQ`AbNIWxvIV!i8Jf`Pt_4tpZ%)3F|J_Je@e`#6IYI#iAU{xs| zt|~>}rwY>Z{zNt8jZ&4|@u(z1Q{_#6p3dEhZdPwNUcF(8wD&xiXp0XmJLh_-6!%w^ zq6k&+hIvxAhN?>L_vA`hwQA^f11gDC)8*9>_3F;*)pb%9?|>}Bb9>e*(v)q4 zeZhS3w5k-nKoz_?PhQZgNWb7Ixlq;5>&`tAm3bEsv3$WqLO&ON*?>P`iss}kNuH)?3L=VKT?nVqm*S& zOIiFPmGt=6R3+~%R1()MlE+S0kKHC^Za4MVu5x>?Zc^q|N?A5t%Hlax;;}`CsY+f? zRmq)-N}~5l8HkP3n3`ojSAX2Eq|CdYO8TtDcwr*^w0up1-j3E{(m6B;2T1o`1ybgA zma?ow%Hr-)7KNy!&sn0Lkhe-zavwq^vF)$?g1lk$W8pvK+m2V?whwj1OOKSY=vXT0 z+df5y#5WF<-o^CyVOG)nNgVfAo})!GXo%MST+GwY@DYhs*T|3eA;0T&@I|0&y5{^R z|EN#P*V2zL{=ac<0lc_@sFl~u?To5iqLr1Jhda{mjdM#-0M(#scU0*gsv);}x?2sq z)pEBQajV1JYSgWccdIeCI>W72xz%}YwbrdJb*syDwPx;0RPn8Kx@F_swQjY+t!{Fw zjc#?bTixnb<8F1kTit;wQ4Mb+f0+KEdVpJ{fP2;2*{zni)$VSUg7H<~(^Ylj+|})K za(3b0W0!fxlNhd)?C6Kj!e^B8-$);W_S_MWIvCp!F60;9NVK8eSE4n)kO!YSozFjS zBs$SmnlHFoB0qD_kgN39($yp6YM6g+YuGsVbkzFbb@Gk0hL4*gXhac}A|^$Z6tz+` zNYN<8RxWNN>d}`;LG-~dA_#1vu6==>G5?0~5<(?w9xlOc^d~HWkFEaB^0gpU4%(@K zDROPR{l>YaXrT)jm+q+2^_nI0?P%yrzwi&$3b#7gt&VW3W8CT_w>s6W&T^~Qxzz=3 zb&*@W-L0;0tM{QwzwrI5QR1sMxECLHt53Pr=iTZSxB8Y_eOFg&=6;AOp1D)C5V@sg zU(lHvaj^rc^bggJZncZ5f|_n)OE{Mn-5(>|gT{}>>v346HA_yR_d3!De=d*5TEHhV zR5f$MP7ea0)u++}ZpH&}15a^&0)4p1C8?F8pjyqt6)5m`MCcd(p*qa1M&0Uow;FS+ zGu&#GTb<`tYu)Nnx4PV|)}czj@VRSI;{6To#Z7Lt(XDQFt6SY_+^ufc)tb3GPz7O1 zP~g!?;)lASwN1niP3^~Oz4E8#;R3v-W=Ti-?~R@1JG#)D@eeOAb*nwxDviDBaF$!` z>sD#lRENQCb%a|T<5nlR)v0cEmRr5ftuAn@i`?q%ZgquQz0a+#cB>oQ>f>(pDYyE( zTixPT-*T((y44Te>Q1*xQ&Ii#DW>Aaxq2poycsGH(hQH)YLkHGqd9(f9u1&+HSv_H zc6X~Gw|cr;4ZGEHw;FM)!`y1rt&VrAF}FIytya0!d2Y4VtuA$|%iZcqw_4{`*SggP zx4Ox#HoDc#Zgs0$jl0$DZgq!SO`3p;d~GrTdFZ_JuY7G7ZxMai5g$^%o?c2{1c_5Z z4O*}QT-Jg$LhVeBuyh>84K&ADOV+UNc8v)M)N=sn)vHrEYb(uBNm6_)Rq| zeet|a=uUT(*DPs7iI&a!0UPITb*pi=y4|hrKvg}D{x00@SbH@~XtdFiWa-h(Xl;qU zq%aUiU%DDn8RZPFF$LEV;rY2qBi#?}+(WBSBCQ%FBCkA?bSlPirPDx<@(i0ie@S=h zRdXW^8UBh03cm0a)Ta3Jl4h~`OWR}?vl=z!uRDJY(yQ_0sr?-prqhY?YiU$@p6HRq zZ{|eDW9y85Jk+VDTFqQ$fG^A-YI1hAscp28ZKE`^w2h1+wrpLO%=S-Gj3?qv^zg}e z(&te~3g#irsq(cnxU>q4hGEGg9_0pH)UszhH7JT++tAM90sg~<2lxeI9jn$bZlr(U zbz+B;q#AQuXSmfWw>rSTA82pU?RUv7n!AG8`Ui7jE{kJ?S2vsEd9e@OoOYcG_0z6x?828 zQ>`>|sv2>t!`$i~7`Byo8$P=Z1@qeOg}>BayBmj)h?mO$bZr@PJZXOJ9Z#3xHoMiW zZZ+;!x4YFHZuJWpPtrzY=a788d?d+Nnp%)OG_6EKS}K#2Nf`e}kMZ1t5F~nl0T}%u z%79Ufuj7)|pgc>UIu(RMuRIN}OpXo>QcA5+^y1_<=bl5O~Kubx}|lB5`SF?Pr!p(G@$gCqHl?dLbSwd zp}#z(z9e%-kLRt!F`hS`MIW;+jP`Hi{~$JfU7wm~WiGQdvYzfxmM*Eo^0hSPO!At! zgSi2}nee!Ogww#5Ma|qX)Zki11}Cij9u4n}lc>WwdW7PowQ@%TKZ%|~FBg29YEZ;s z?y;nTiyNoPFB<8Zhp)qb`_|k@gS>I>0{mB*T(zjuKTvab4z=Q5yk!So$RudtP&0*F zH`KMFPie|LelcjuI4r%p=3!>Gnz<|RG15%0F~(ruN$9_E?kO&zh$HA9T4}UZl}N3s zG~}vEgRQDG%&JNQs;V?Js!GG7sx(HbN+YDIi`?q%ZuLG?nKXL@gU27O5kGe%QviSH zXCQwXgx@%~hdWV2Zq;5rBANJ@*gwRZdOjXBtQ|PEyZh&spel2X>|abF8YF25O9M{> zM(J5jG%1!94V9EVxaQ#=cv{W>Gxsj=O;zdMe+vZ)f(Z^Pj*doU6cnAH*71U41F1%> z8pR8vTf|KN0oQmqVKmwKWU4uZi{}IkN(TAXEAHQc*Fm=)&7^i zoT-KjpYYj!eP;&}_wI3Qx1vB|{6GYQmiW#Z6>wd(fS0uI%u%k-bT;M5|&r~2dZ=fL9er*ZYiBQGHc#B1jx@Fjf3iED~u z5eoPc<%n5sY<}!DN=F9Y8+47|9sPa0=e>c8DicM4;_RQct+H|>^_^lHE90HxCFA3L z9&$~q>U)L?5>3#Te?3dD5Z{e?s&*i{9-+^m&Uuf#?i=_&(+ZOW%St z&M{Qq{TmkOnijbgL3R8gTqDhM!m|t)-OxEQzr5P=T+<{PY5pNRYlm|7j@Ki%B-RjV zzB01vtLivQ$lo{?Sz+B6Xdi|dZi&)awquz$OQfXR3y1*t%MLNfwx@L2lj zPS@|K0>5}&-^F2w>#Y0`t}x4ls}NSzU*9W|DXz9GB(AMm;)>pe{BZ3RCKf#twHL0v zLDEh(@WrNjjrC26&77zk0^a3`&-l) zzxU24Mxmo(aXt@EuUd_#2jY>;kZ!OAbu0=*>#y%N2U11b(s&CB>cKr5Em2e*84U&n zf>g{==5;5&0=(H29{nbsZ5lZuJDvURKx?~D2%6!8zXvcDVzuvN1DTtmfO3h zt0!Cw5xr@(iDxTOGqN-9%)jH!peT^qRhz2W9Sd^d+RK39>yHBs!oyfQFoelD2GE<6 z+nZmH*x+JU)sJNeJGrWkJDfG>iUwdxyrmnjBg6E{8{r7&4Ywfs48~of=WS<%P+r8z zV?AXzQSrUPcyPWhs7jAP+qR|k+O9VuY+Z>!ajbFQ>q=37OvX=g$FA$UG_&u}p5fXN z07bE(eQ+T5O^<6@iMKj(4Untq^#kaC^8<-0`yGT-E=nA>AaU3=S1i~saM7kf;;^aZ zFLy2qT(lsNm=!Po9c#Dep?s@(ynGLOXwiJ0q#A8tOS_kv*X~8y)uvM?(3sV@>h|vQ ztK+Ojrvj^fEb8b=P7dJ-OZ*2QTHQ62Z=iKqr5^ zIDOFFJJ380Ev4O?XrpB?+0u3U4(kbP#fHH`XDo$ywCVRY-MJ*FSl-sm}uwh%aFDAfE<;9PSoeHhvI{&&!N-<9p2IH z^}(vjzwb%X$R9hYpwbZ6v_3tCR6k%nbM*vT;#Z46XBC_9BXX-BuyU(kx5qfz?`|6X zn%;Y_Zqxg_t!;X5|9&$*X_I@eO%5;C*@g~v-|;?gIL31x{3Jw2C1HnO6-oq35y5*f8dXOC&tkwxQ`m=&VB9J)zpJ9jUpx;k<=1#$Uag9C40Yy~f`3{gcTKZdL45E- zsQK5e<|C_SqnfP+_+lFdEQ5Vw8-1~F8rGFYT8g_jv4YBd<36W(T>i!W*rT+Ll+QOw z8pbJ1h8gf46)l)$m6-*)Mpk_XM`bnmU1CCbGC-l!9maVvGET z%rgDP?&KTv4)uXaKIiM>1~Ullu~wj|V!&dUL)JL1quU(6nbx2j+BNLa6OK~?$1zvq z10BCX<;{ju6ysfc;#~`-DqiR>{w%h^7u(p7Esd-y?!K5W1LK(Qxcp6y>*(RQO?4UD z%Bbwq;)=AoikI`n-Tva0a2U0?NUPi0gIb8pQ)nK)W*bvAwrI#9DtHV`V^x*+mUgDW z?P1zJZF>y4BFKMvg5xi)So{;Py|bc zV3@#of!+{32RuS`JK+BP%pLisGpJk4F?vq9kWY$_3M^)+E8yi74y}{ zAki4H=|L2;mwWbQ@&dqOXYBnKWAwi<=U^$nI_Eeas|d_FY!+z~5A0lM;!%u=$EcXi zRyeiDbex2I-!=)E`X5a~Tx~N;&OhEpdix3QKHt*jm@>h@m?LzCT{{jo8^6(bW$j4= z3@Slgu#HffO;p6vu?ZYCV$1x+OEmD7S8Z~|_SlE-xWsql64&^XVbpmM)(U%@nOq)a zyC8p5(jMMPHBvo+Q_AdEJ~)5g0Qv`ivY^;;O1Wi0h2bPMscu zd$mqXly^cu0B>VwKO{bQywA48W6OL?o6)w>H*3}rSv#j9+TikUWapSeukFKHE3&p6 zy>dFXEVA~i$U=8{^=mAJ$tzuh@8+rs;gmW0ICQ-cWiI3h;Hp>_Y1s_Xh3HAp z7cMI(r!Fx2$VR+gVSNlAy8(As+r%z=8}m&6aP8&5MXstVfb?=0f}aEPYgwDUfU-%h zTdlcca@822A}Fg0LG}>KM|0YK{xY^@>$bSv6NtaY1qfylRB{3rLh+J2W05V0M7H#C zRjnTg72b%jH-N$7PUtLCYuSB_YN#*8*zSvDi?Q0nY=HpF25RDu)x((OSmruCsn6xF zce+vz(l*+zEB3|eBlF$9Nb`E+akNE-8v|fH%B4aN;LIHjjknkT_jJHbrWAmV9 z??~&{6-O@ixlY{@Y3>Hz;2%^Um=tNnD!g-k6~3sXyt(TWzft8|yYv16Ub8hw#< z#i;VgT1+2WFh1rAHO+eq^<3`?G`6qiQv7)#tL8cAK2ejZ0ZjHctP*{t`*+)0~k4b7$9(}gOluCiR$w6}&-D_@4qUicOJyLR(CPT%q+Ije|` zvDesg8on-xEkf@SS(R&OEh+vvKQZE3XTuO@?&u5+vDY|wp$4jV!(YyEMbG^McbKff zyQ+=`!elwps=qS~XI|I(UU$SAAx1V=HFO8CjIC?Ep$JVe8dNr&qfnJ;~7WB$q z1l!48{&w9hJDO2Gwk|VWk z%<*L;>B|-D+Bku_c6aOAI2+7&Z9nhisu~8L!Yky}w?Tq3*}J~LyBEeoDE_D^?wa`P zuQ#7o+l-|Is-|MTA9D@V3oYlY*8Y|0(C#UyBw##B!yuIygSU6=} z-fz&Ahik7!+1&N=W9EE9Y_UzHhxPQw_rUG|mx&L>hhdN$x*vPNP5v0BE>&6rW1*@o znC4P{_Z553U7GRlosJFb+it(ioo|kss^o8lujlXV(1;CIKds{BI@y{m`X6p`U@Hh4 zMjXHfwjaPWda+p_$Z0zwQct7T{kv`5MwHLf=26Ga13KCh)q9v^ekW>QJe>30VCUEd z%!sW2>x2H!+3vTF#M$m&zE5Gh|IytF+x@-wFKqY61{AjYTM+e4XW!@S_umA7=lEmG z{nb@w1q@DX$rvWs{n@6!@%Eek7+K)?k{{A;!ZE*u^Ooi-;elT{<4jm<=Aw=}|29s} z$KJmc&3%aa!sfs7u>Eg&+_b32{=c&EP+Jq_*G{zOmhC&^>ZeV{>4-nHUz$2U(fpP9 z<%j95+-7Dgc8p(b)4^;FZbbcKtIHohsnj3GhNI0nD-(y^8yWmYF~+9K#2)uzzW)%M z*j4p3rgi>!CtrLQU;I!wnxm+;^SFDt(H~p5_p+ty{Ch9yuyxtzkdE7giC`CJc8j&- zy6%y!eO==}$6s^`Bzgr;!gu|P`rH>NZu--~0 z94>(yIa`P9n2$q0gUx3292%7KisyH~xox=bu>5W_x;$qC95?jYsiPa^Z!MH%WnjD6 zHEm&s9cN52tUtjstvjlo!2S%o7`)S_LmCIFCyW8lRt$yMQfh zInZFexjM4;%gDmwwsq=4w02X0D^NC+en8{XbbPy==LL8Gcb;wIz1{X|VdohgwbNd$ zgUznMG&^q}G>k&OtHzFgw|-r>?oE0wYTvqm;%)gId`Fz`8fGU8#|;#e#DM@4=iH#F zJYR%9fV6Wu_R1x({9R4hY1+I=Gav1~%T$=TqQyBGXl!jAY^3EYm7VQr?}G7z?_pgE ztYj*nU2`kE@E)SErgS#a5_V17idwdP*23niZH&aWMi%k4u%HSo&zrvRR<7s(dgk8d zU}3ba|Ma=(mrR-bVhyfvEItb8{qnYQMVI0OarPZtlE3;M_1Rz4N8;9Fi?f%teOKmC zfrjEd=l{um;rD&9vN991AB4{pW^1ULe8y&GwD<4qT^rCB7uH8=&+tf2=VwCyZA<44 z@w6XQvPXW_ZhY)0&r=IaTZWW&kni4JULXEDWxxGY{cy#g`cYWh@RUQgnJn)lkt9&{ z1YW`JWx}Sp?e_UO1FW`rV6_QkpRhu$-l>;;G|o2=^aj>la!lQd{h|DTYSr&-_-21o zSnss8J9e}t#1_S&z*cBnEYHJ-OuR7qfLLvZZ(9;y&W+qw&R($nRG7ZFDz@5Y=Aur{ zR$trK1#A8Jc8e8dyLOA=zzV&c?e_nsWjf9BhEHgIjPrQU$j>{vs&2tKV#oGqm<7+T z?t`D{%!}}A7XQ=Td6Oo39{XQuoc~6b)3JQGs&ze)*3xX$KC72wzFvYxWTV@h5@_U$ zY}t`J>l;pRRczt#u=Zyxol(0~IX@JzzucHFTT{kF&%^!Q7gTGHo`txo@F$#bM`7U1 z_cF_LBPu?>GV1sunhduM*w%OEAExp#DZz`Z-E157_z>WXz?i96|7j(3n5?w*pYML8 zcEb0b%@=kmi7Mlj@j(Hfp_~r2tvBTis>;Q0<<9W1cpJLSwh_X53BC10Xyb+XhrOgZ z8g{BqLr(StTsU9)b-TA2J+`=^Wv_;1{!s5{>l-sm zVV#UxTZ=Ez_E`x#W1HsU4AL$5c_Y6*Rn3NReTl$U3KjdtZQ*9-P2DYPH}u1i>S$6Ek3JIW=Q)f|>OXSg#k3 z>7ni8hHzxw=C-v>#G5>kwYG0vu@Orf$I%=kYm$*2yP{+Njr|*Z z&+fx7`*-i|Y>a3vZ0ip!r}1^n7yH21@RcjSC5kmrMQpu&HM3#a7ilfVHj2Oc)_!}T z80%?$vF{_TTi6=AFT|0XSe#ALKL9&mo3$xAV1ut=y$j1mUu>afaK46&+c$1)QJ4+8 zx!B)*o-c+H@KNT-_1FKVBD%@vn)r5PQCI&Fqx4`)SRaH@#iTd-OfV6KP$!>1}RgY{6%E95flXmRJ9PrU4sc zKVuc*OcU3x53fZE9o zUF+g}w_?CYKD-Lt1x{?=y$at$Hb&Nd$M1|hV&XW_KIn;XnnE8K^F1D?w68l#Z*G5> z!q#7HQ(E)lHmAhwq0Ln7mZRBi9~A8KpN!9Qi?iqA2+F9W?R{e6g#AZbY1=_0s%0() zyW+JUlZp+Wm-@PY1Cw&203Dx6U|$#3wMybgLey|WYial8`Cc^kvoCSj(Xm?Y(ZlhW z4^QX7gAayliYtmYVo8dRH~wP#U}M?%2w*!D$2Xyh8oqF$TskaHE>*-n^}*n)w$QC{ zyAORstjUjkq$5|}uoHG+V~fjO6X$U?aKulXFSp#z4l9ft^5yK;YbMQ0c_cu z8=W&xRLXaEBXf;?=`A+$Nx|;l-T-g4{EAe&%d)s_DQeWy= zdLR6?JamYSkr3Puf8Vt!khnWuehf~f$KuWGBPPtkb$K14P@?@7X#C)fzJUbsz^n&o6qqo~?!@@b* z6VJg1rtCxflH_a{EyhNHjhQ^z)^0Lz7moD6DYIXrI>NOV;7-m1FfR(%USx@?scyC{ zoo2<4T^b|Cd8mZn4jb*93(lBaqthmx+8uDMC@CCpJsEqV?GLza2(%q=<>6@_8en-m zTf&c!c1U+GbRIUoz67l>^mau{+kWVM9NI-1Mr6b2JJ5@2t>DM8R&0$qbNnJL1Dr~` zaxq?bOR+2ZS3FWLQ=A=%$#JB4X=Hv+pB)VFWPePy@e~E z!EeTCBh#JQ%7Lr~QPp=t-Lh0v!s`xB;~;ab~X#{PNr1a9&3CjoC@sbj8@UCc#~+UMpaSj0%? z3yf&iX4?o(4>+V#WFvM=;gKxui&Q&afR8$my~oD9KASskp<_ukBmAVvEtu zW*6Xsisn&jydUPhsA=;WKTerqEuaY?7BaIr8+wh4fB_rOs@!RvUN3lt{0s`rig2{1a@|D_4R|9|JCuv|Sq(q@}6o5*(o{1L$(`96Tk=2x0pU!W7f9*%Q}Jhr(*Pw=a| zY;b~?%(G}xD+?2D9LRwS{Er?X$GLhdeXM)XB5Ud6TK`o;#{qH~Ab)y1yAoe)WB|-+ z*+8JHO%Z4S#}EETe{0ZIE{%a78~p#}hX&jI${_nT=0)hrtV8^j-=k!wARiN}?58@l zc71t%TCrn(?$HdyIM1u~@%`#=y#mA(X+PcQvA`x7mB`aX#Z@RVFOCui;`eyYUF|0p zV~9~=`x9{4>GL_bcfMh0V`QWa?ENsQ$MhmT-BZrVa-cUS8G#r!>TW$^_ef(g)|tm* zN2q#C?^uc=nkQtBY-BkluIQ5(Ng5*;TUnbhL9K{)t%&dLj~~G5%{%?;=9b){`43Mi z9LVj7!oioq-D)zw_`Zzq(Q22@8Mf>`D=`CkBXTDSX@5T9a8tF5E4pI|RUKujo&;4f zVbW`J+VpR}_n@|Ie{Mb3a$CR1RlPTgc1^RC#_qOlXnyRn4BHXSzK^3f`Mp_J?0Zbe zA`6qTjoI~x6=of;u~-cMEeF{m;!q4jw%p@auiDXkr1Q~Bt8D#rqOb~&tmW>a^vHf? zFWTE5zsrN#!_2QYXMUBjh3J$jd$iTCzxu@9v42v=so_(Xn>9J*vww~dzhDn`d8HDVX;gx z)zx8cSe+Wc3F7>1hVuhz7NTb%Lx;S7{mrwlV%MS~wgKn2-oP<3xV`o^aGP_E3|o!e zKihlb(yx7cZ^SvW6XTUjJ$@Xmz@duX|Cfg<*vPEaWT$)v6YwX-+)#4d-;Nai@lDR$ zofYvh$o$_~5ht)hL0>hRtE1YxaqW1bcarh;tEQJg)aiBql~q$ca@o24t5s8QE`BM1 z1~dS3GpEV8q6_eoP=0UW@0qfnFtMex>&|`N!^H4tT#_fm1EsEMzFvcOyrH|VvHUWa z%GV3cq_}tXga-B(W08G!ukcpO_c8x$s`kXHJ6~VekJoC9zsI$qqH((&jLz+LFz##H z!C3R(*}*vPEv&jbd=<$4gd=MO&35>YG|T-rHOsc!TWP;e=H5zSUts9FScAK!jUAnR z31e5dmg5*qwG)E8sc>XV<6GWTzfh>8ovA);GZi|54x2symO_VE3v<-?p2|3TPQOqi zv%OvZO*K0FsJh+$0qv6iJyZ6;chC>PV@GH2UZ&U;**g$}tpcO7)w315B72)+W3R}L zMrVoK@+;u@BOHhCS-g31_FRdahK#YuFjpSD>*nRzqjZO_EdxGM(#^Lyo!u3W3fFQX zP;^7Da4m;f)XIZR^!xdP@VjyRq#OrG9Se+#y++ZzCl@y1y0oj80bL54a699-UjOAy zxZmR0ztpG-EjeF7(5GV10!JlBmkd7f$EBOIG5Bxl^lw#CS3DitpQYIg;l5-wnc_KX~>MZiw`L_9hF?Pr72UCDXa9^#Yge&hq^MfqGK_>hKV{_htB z25e27SUIx@zoux&c4jfL%`-d@9JEPg@*iBB5e9IQD879X8@KI~=mpy+(Zt#(QK9XV zzr#pBFZTVmL7VLP(6xLj(CZx$c6c*??}*T4X71^T&^2Uk>4@N!nM)m1X{O*`M#!Am z5#e`=nIRn!wwE)1=!no?XZGlb&@W}WcSL9snN8JtA?JxV0DTU`muu)!G_weN(56h< zLA|;bP@RMR+=gCo(3Cdxkb^dKMKM-drV1z?&7r;WuZ2B$3dR$20(@2`Df<=#;m)%x zT>o((mY9!yQCIIMKPm8@YbDX^1-qAjO_h%3>OGaavMi!u7Z$O8HQvHK)NTzrw;s=1 z5@o@?`R|%cZFc1E14a2G9HB#yj77QK3mA6b$p*PM3z$-#hw}y~bOB3^C5}K62cL)T z#nL7wO(s!e!PJ}u6N~Krgd4%UXgyd@Xg)9MMVc{J@5vz(jB?|bMepL$KO?lKJ)TpY zfc@H%f1?zN1Rb&Ua64D;L`cbAMUdtTAqkpv=(=5vy6rbkS9keA_tZGKpI9>LadLa@ zXeH*H+}rxtyf1!0jbh;lG(jCRJ0V!X;)_wGf4 zJt3Zx`8&{zAw#h?ALzmF4UgL&Q-SGB=gn+LJnTaDMGaP|qEy;utIMzaJD4sJ0 zp<^wH)F5!I<%mowh)kgfsxpNT{XecS+E6@jcu8Y&-B~cM5OmEy30BZC{K*jnZmLbhfL>Vgbn3El!r^+zdI&;75uYQR7mAKWoMVrG2Zz}r!Kq0+|k9+j*Cq&X{W zjGjcn%-q$g0ZJ#zmSYx_c~vMW)I{`{P)ewdC?=E^`X|wiLOG$Qh%ORx2dwx>L_s01 zP?G2vp`cKV=m4RR(BFu56-o+)h)RS~LKhKj_}pG7Ei|0yGohT&2}JJ*xlb^?jwPBd z|s2niRS38Wu0=jo(s;i&Qu7H`oS;K;s#~V?r zHN3y>Dh?EAktc#-9I&jig_xiRrn7_Kjo_5UE%gl0Gbq)pR9dMbDicc8hoU0paIl@hi*LG(yNPHR5x`XgLCmxh0mW3nIWU3PERJK#YUj7=+HifEYyh zaA#m}L?#tPrbvVup?mgW*6|ji7)^1tVF4iu0hxywf))f;5eS`%UYxaW#9a~N zc)kT0y0;q$MEEuofsLd65O0j`hbsrOz6d3{KVnuT2qWy(JLX|{)gpxu&qGF+x(BVX1f2J-_=wPCcg>pjs63rKKpJICTC7LSa73xLw zq)EhO>^xlc8{-X!{+kXL9r zQ4d4W5kS6K*2wGZYO{2-;2<;RR9Xic4f95JbpcFwu|*dRSxM0v1T)n))OmxDLCaT8 zy#-}w;!%Jp!Da^N01#M@GAb5bt(+p=oNJd;LWD^d0?Ztd!N;?68;Lk3*SJ=okqk$u z26YKy5Dg=6L|?8#yfJzwt^tUSK`7Djh(WXlfg?KgX~Y|&&yYZL5<-bSix`wn)FZ^x z>*gbbz;pyo|4o5;(PjiJt1-G3F`I)UR2i)j;Y&iK5*-I()^QX>x`EI(ZhKw6G$k?X zV`o6ozCbE%e~M;K{DeLl9f5?;sz8gQ{0b=uj_j}nbtwj@HNhGS${Mhf0m~v`kK&vh zaaa~tvn)bA@e;&nSp<&gNdPfkthQ907b#Q-5_~o) zg!jXQD-cS{R>W}oL>9(Ax|D^Y9|u;Y_5fh{Zf3+LTKWE1fa7IfAZJjeP^RG{>nwtl zOqAV$Ew#)mhN5Ah*&c3w7T#%wO;%A8CLOJ@pf1HAHj(lem#Ue9w<6GU?m~>pB$*ML z$eTuCLW-yDg{MJuQbF_uie?Vh^P7>t^q6ZHTawruOGZW`L?+F7db<{kIBlvN4^xS< z2JAe+{aF?)H8sObm=b}MTZb5|&2nIEADc)C;_z`?&Bq}C5s+>me1IDv#zjcqYVt@#;o`WOizCzn zFF_2FEX#R~DOHHW#c?$kM<~(pi1A5Dgm7_OojWdNTQwgq$UaNi%;PKM<4CBL!aJSY zFnje5GsV*&tPrLWW#{#he-lpU76mpMhTx&fj(T*Dn?XLCtK7+}aRWRaSMzv;Qo0o} zb8&>4qn6@czJ?VAw?C2Jdda>H*@99W zEbInM*(H@^kk=Wlvl?mMZQ1Z;B&El5%*b4*hc@#r_??qWvz=iNO*11=c2fI?`cRzR z0CP$zM=3mXXu*!;=s1+^W{}Sw+8E71+^pq1t}$8)39}X@VJ!rXwV08awM?F>+~H0x zO+x}#WsoR)1)Fz;=Tv}?Fdhv{D#ReKhFMP8HOfx5&xYkLMcQftp_HjM0$WlNwk%{k z$BfJ_(z02(E1X=~@=Vh*&5T4@pY~dsEsaNuB$Z=o`mi&H6l_TjTPoYlAfHWJLfmYL zP+FEk!fZ)N*b;$bOJ-z3AIS5Vn}30FdLGhLW(-0pQ*8vcq$F%v$asz!na6NW8!z3g+!anP zZF#n7nPx_!?7h-5UTjr4!en`6 zsWb|r&?d+LgR%u>yGq57U=4!C=tx{`@I|PCFGh?OMj#cd5Hl+lM4}X-6%oRUxSFJ6 z#e&!rie(O#ip?g=tD~a#&!%D;gjQrKQFe7#Sy9jf2rD9CRz&Dn5iwd3*?3(uABeWt zO90J$2w^^nn2RAQk$x1(JeZb?A%O?Kh9;Sb7>b60;5?L~DJcN|GP!7t1!eDb;Z%l# zv^QN0QI<}tAPTD}&-}{C!v_V#@V#D-X+{EXN5r;wjy)!gB+bE8qU1|{YMJ%E_3 zAc2RPMG)mfVG3jo4ayV_gl_?wDeOMp4G}X1qK+vjl8G;p7a;+UAmV!?#Iu78;6fIZ zwUn4bA;B61n9$*hg3XH%l|qyUG}AZ`CPmCFgb)^zh*_v0@-#&8%%A{`~da3s}ZBMkbQc^86M2h5+xMHY6CgW zhX4Sx8bUY_uEA4-6b+U@t}oJ(+mCXYplMncL<05oL1%c;F;YGZG)H@?Lw%K%o>R^l z=*usnLM9%q(Opw;7Zyy_ma0oJh$VP?WArXuZ8sC4HoD`8nGF%bhPVdL9LA-1IVZfV z-AQ1O!QIbNHuLg(GA0tUPp`l(Vm~j9(2Vry!_M%~l!(%le_>GPWdKtOdXU2YA_Kf& zXHzw?8hM!5;_9V+5$b`hh|#_frhVaph@C_8B13Jr3kZvMBgA*hGiXypJDbA$GBfkz zyK+Y)oK0yn;5h?5a5lhmhYmRpB?J+rXIfB~Vt{6fVER?u$xf7=--&jOR!gpi0k$X* z$Qec=hFcO=09r7T&Js@<(Ii5c7*{^uS^l#&CIR7IT9~4llcaDn623ZG*Ejo=p}5ZR z!`x6RjSSlNJO*`M2C%Q7$6(nk{F^zb6EM~Zs`KU5h{MLX9)U-$K&VHyB1RkIKF5cr zmaq&M899y*1MnGcgz#Zp9UmTJK8&>E!<5V1{SNJ27eoS98w^b{V+}>aK(+0Cc<4ai zERWyH4w-ng#)7&O1K841WyL51TjSM8!H01*A4cf-Fk)0Mi4X?H)$!pG^kH@+lfWQD z3sW|eZITZo;hWiyf4aD~Vz_xRNZyMPrIr86pw7zxRu=RaEV~-#N?_ZGt3hE~T+M$G z>S3*j(YBCw{1-8{sV&HG{1?Pbix5RkX36m5;SlPJsN=^J${Z%8MmW?X64;RvPvC5Ykv1WSWl zq8cFt#vpJ!TLRG}LKq&`bN&AFATkM2wTh=Hk{P=I-yMQD1vn?bEfY)@foIV0P%n)* z4Sl{Tn^Vez6#9u0!bDkL)0sD!JI4~M5rxHZHE%{Jm0J;`#c>-g4pp{*I9?2BrbY-a z#?`zy1}8@SA_?if2pnHVtSD1IU%t%TMA@T11HEi08U~uF&y)FDplv{D8(JMvr|YOo z>HbS_KYI{MMQa$qx(MLaxbm(fLYNX)^I`3u*q8<9*RUIuVsL65<*kAAYRN>f*Z!l1aC3nSFSS`ni`A?g}fM1$BQYFd96{s1`@Sq@map(%;Erfiz7;lU%;Tw%K#P^^cXA~^CO*L@@haB z99Q#Tgm?rIZY0iPcQP=@B>`0%B%LgfJzp zPETxG#Qfqm2@EoL(Pt@}IbW(YBjKCT?@-*$?aX08xC2}nG;df$Y1j)H)Oi`eu!0_g zWd};D#A;Aj7FTm+gnD2rVzexz9m^tiGA)Y?$Fd-1S(b>U)Oj!B zoBR8f^5Uh%0kCnsn%S(HAsB9W0z>jqk7ZA#6uj%`P1JrZWX-7&LI;pm#1M3Xl({mJ zoh_p?h#8#s!{7*DaJJ9Bh&l$ROy+QVk-8uS6J;mk2M(Ei^=@GxES_-XCuDd>iZbXI zOf*_!LD@dI14{-ZxWF5OP*om9jM7Pjuq3YbmASlxVv`DDQz(}C$6Q$x37?&IYdhIy zD+-j8Mjp*Jl0lu90gNT+F%Pw4Ch?58AACZUWlp|S0hFjs4L~Y@KvPc z0zCj&w%Z<&VA;+=qP~bq<^alMerS-dBH^1oWGL%@1mb*8S_@GW6J!8ywVRwEec{&D3&=*nl>YW z!C@qBq|4cPE!YS2^wV(!4n{_lM!uLqotFWOEa)*nY&PWDeHf09f5kcM^5p~>=GMQ)VY16tO1rue%z5#l`P&5n#li-?nN6Nq*O*C3# zLD^xr1MY|fPXmlW=$H#JN+%J*T+HX$!SWJ{O)7{@p;%@gJ+T>y+S56)DtMD`R(`F3 zJX&fLgE}t*SW3`iuEw!Z-8u(`i;XA=@Yp zptX>qq%=a>^%4ekUIwtM!Lm=k#XZwuEUeLCFnriCsi+45-e6)g#o(F<91|mEj)>6N z7=|cIbX&m*-kEnqL>)(@OlD8hwk}9P?C{{xnH}^3VIbf16R@uF&EOR#0x_qAQB6Kt zV?kXC0W^zNS+eX8CI)gc)(A8F8Z>YoY9BV;XH#-Ps20Jb++cJg}M zW1fsr-#po*q86Uj%zHATjwe$lb4IPYR0<}_ zKK&ZVXDAv5svS9i`qM`JPZ)lnZ zE#HNh*^?Qu1dG5+S?@KeAoK!-GSg?OPe8&qgC`kvE~A6LrjbcQUJjXBJJASpB0+O1 z%fnQn?5CU!>4|1g)B~<|77d|eM8xRJkhVjC=rT$Whfm{bJ`DkgfOG@l1KbGd(+Kbi z!>t2G-0@}#WxkssZ$`p5o$A3c5vL2G-cyL8oFD`Ev;}47Ls7txU=0Ek9v#UfTo{4l z!idp@5jY(%Vr-sc5IP+&MNm`{AzT+%J{Q9p#U>TRrcf+%5;WBh3I=*`7dj2#89cU# z64Hp%%2$}aIi);EakqdlQI>+&vO_^0%!{j;7olTb#Asd!b3O~RB4)e($Uqj&3c`oE z5n_eqNTRo}tpX&Sz0tmi>W=*pE6UtAT`r6S^yvR3&~1jIVIZB~;dzlE12LXxI*mhD zC(y=rOSA^Tb|)c{%Bg3LS;dz>=8;lPvjug*E6pNl!J^To!hui$rRM}agm^24^3;qrR&=s!J1a4U8z33%FWmj!?#IMT|8B1tH0^4^v7IM@`{sHB}Jp2Er<86Mea# ziSCChras?_}vXk|<)vQz+LE)gAa*C`5CaS23 zEW-|O%`;0oFEZ5++!#F$SI+2;Kq&2wM+`4A0)Zo1HxhB|%i(GtLl8>z62y>Ejlik} zp;Il&cn*P8OCjTVX0TcjqIPi2*AAji?N9`hYy^Bhss%Bt7KD0kD@Eu{2=lLA!gt0O zZ#kbEK|ZISa>@~)Dse@zepDf1R)vLPyMaK2MMz{n#H{KN>dE_4gjI(S=ERkf&KA1a zu^@UpMKh&Sx9dW}z;;y2Z%q#kjvx`OVPK04HbiG%75$WQ>k;TowA0_?xTA8KnUg<| zmli9!3T44ON_muWGe|_sEj7{9Kx3mwTVu17H8yl&tL^r(Z`QFBt1GeF>%3Rf6{?xV zhKSIqam0}E90IHHLdNsVKvg5iS2dzeRV$CLAcL<(%&Hn8ZbN~s65$&`qyp83m{nUr zq#FpU%@N_q&<}AOhsM>a51~riA2F*wglu^X(DIZDD-}|zMyaGy^-86bYE~+(R1r+V zgLMWc+I{R=(XVnbT@Fmmp;p3=IGP-;<|+uK*71np4MrevL?@0!98C__3fOr#LWy32 z7&596SOp+-DnJ>}A+QQ4WIWFdHaUc-2VC>@fT&Xs6hV_i;5>iwYQ)j>aP{H&D-i1W zt%%WPIfQI(dUu)t$Cq%mszIKV>JCC_x5OxoIhWN5qLLXvnN0IPG+XLTRDVMB{{VLKhKTCFBm-6VD+!SI8@L8c{$fC=?(n6AB3( zOSF$rQs@XGmrzP*5Ydk*d&jiUfkauMoX|c*%Y@w5m|lAjy(#1s+Jz`36cln3O%@6X z^&q-SC@EAzbdyj@Xy_WCkwR&qFIs_46Uqs#A^MY$`&!fMBccO^yh1;&2I?ym6q-e; zEgh;|i92|Y?wB9s<-kZ8lpW{I58-9(=Wxo7U@(OKT1yn5*6ndIcHwcA<9wNF>C@FL|(Wycyp>afmh0;P}i3SMegpMNGMaVtY z^g4*BvyfNlBI=cU(JT=Z>P4wfg+f9_L`_0Tq3_sg-w;X(ts{C`C@s`Nbe~X8=zXHw zgxoiqUX4Uo2ziA*Yz7)G6cn05sS2Tx&_hIr2qlH$M0*LPgl;G5DU=qvk?8vum{P=guFt2mNh~sD3qYo$wDEaQ;CieN(x;^w7*bF zXh)XSM<^|HCZ&pnazZB(ef_Li!W}lf{zUY#kXLB_r$FhJDbQsb3LMfqZSXQM_TIjcwIufWdF(oJD0;-I)R>ns5>z~ z&k}8!BL5e1@iA+JLPB%cLoE?X3jLF4j!;VI(~p5(5=sl*PpOB6aza%^cM7?yOs`vs zt`qVKJPYNZ4&Lz56C?#|X(XB#hp`k>V3FU+iBRWgS zeW&Sl3p>D}LSCUgDdiOk3hhGlJE4$J527AINui&X0d0Ot{x6gxS}l|oT0^v0C?~Xx zXtt1hyy^8dJDL}Tyh3Y;CJ6g@l$6T`QCnnn!fLP)cYPQKe8?=msirq)<+1 z6w!V{?rPI3!5e=g2)g6NkU$s7JBp%LP4QL?*si_C?vEeZ`?^JDYP@uwi@}p zP*0*Sh0;RLu&fV-azc+1H43@!HocNWuL*gDqC_=9L7|(85<(%NXW7->ER+;_oahpv zl+Z+?GlbGYr?D)bP)_JLqJxFp3DfInqTPkOLSCX$p`g(3iN1S6e(y-}i7i4&q5X*# z38jSgB$_3Z7W#21(DOn$p$$Y23c2qwz19*%guFr@6NQ9=LTRG&ghE0y*!!L+loU!4 z{ZS|-^ej<7p|pcoR&Sx4&^?s;`EmLEy{1=`=nEmQ(5*x(gn~lX5xp%G61tq|pF&BY zi-?{ON(udi=x(93&{;%dg>phC6O9sbCrvLu(J&#e(9uNYLP4QJhz=482@N3ntx!^E zAEItTDWTnozMX8ANDJ*uv`Q!^)RSnTko!KJ)a!)k9mJ*#S zdIf}nLYESi35A6E@rnBgC584NatWn``Vjs2i2PpY9zHQEloP5VS|;Rv(Db^Q=uIK7 z(3V9&DWRayd6b$g6cVxt_+3Itq31Xl-XxR~sv#OFlot9E%Q{UcCv+ImpM=~GnO^%7 z9Vp}#x`BH26$%PnO4LOtBs7>$-1x9rA}KV8Xr)j}$j0q=h0;RH*hFUt<%AXxJtO3v zWO~ganjqvA+PDxXEEE)aj8az$g@opCbU#NZDfBwg@j@w~=ZOvzN()`Xvi26r2^~VT zqmcVy)9d#{KTML}3!O{7GD1P2E|mH}C?wRMPn;{16#5;}t3oNEoroS2N(+6&wjC47 z3B5~nqmcU%(`z=-MM7So#qR+Hg@QtpDRqocNazJlC=U=y3O!D=t58blexeegw9r*7 zYr{ikiJZ^~qR)ifkD6X*5WOSh6*`W3O&1CZ9YZulC?vEGZ@gb9DYQG$?LsM`9=vh1 zP+I6Gw(UO)<%Bj89Vg^|%=B7Abf}P5Xx_U(9-*Mno0RG$6cUrB$O07 zm7~HNLMfr!S=Q4+X`x!)c%M*CC`ELekoyVKs~5|E> zIz%Wb^ggBb5=semWm!Fi(n2Tm#_u1H-wO>PS}WwPF};#3YpIY|sJ;oPUMMKE3vYZ` zC?wR2=n?D*FdXQ-S1hYg+sC5C*CqikVF_c;$loPs=Xqu4wNz>~p_Lxrzd4*nL zSxKRwke@gHO(-OE7}4cINuhx(>ujNv&}A&kFO(MAi8l@cs!Y6`6Z#1qOl53+Wo&dm zPi7ZMyPq=sa_oCL3wedUAj;h@{})nYVqC@GXBTA!5v3w=)XiBMYT zBccUDIidH7rU|*9HN6%QJtgE7Y9dMs1%=)w`kPQlsGjI@p`=hP(b+;Np=m^Zp|sE| zM1zEKLeCTJDdc|6^m>|T2O+P}6GU6?mEQ|JLbOIGBs7s|iBM7~Ni;_&B@`!mNhmE8 zA$nLSCv+RpokH&CO|P*;*9m!rt|uBH6coCe=wzXg(B(u&2_=OtCfZ*pB{YJlk5F1@ zI8m`sPG}g>*Y}tu+%K43rx1NCsmkXNV^kyj`vw4Q^{?}S1^pAhvBN(wC?+MJNz3r!*+TA@Os_c6i$Y$ZF+`JufJn6J7s!ZM0ApnS13qygiuh()*rtY3JD!Rshxz9Lc0=e zyGwpAR6_KnP+DjMr`R6~<%GT@Y7}z+!}R))=rtj)P$N-|P*CVKqJ&ULsD|ifp`=iP z=n|on(9J|=2&IKCA@T|3gf1jHSjhcP)9X~C-G#hDgNaIofi zp$SCYgi=CDqHo8WCDKB75v>x+35_RODCC}IdQ}nC3VDUb5j`gq6uOOQqEJZa7NR?Z zl0svMt`s1C?dB|Q0O9}pYD|33ymOJ zCzKRAk7&72O6VM-w}jF{XAu2EC?|9p(c?ny>895yL~$Xn&`CsNgn~i=qKkz>LKQ@( z3nhhy5FIO&5;~S>pio-qNTS_@azcj_bro{YFue{X`X*|Y@Ctc}nuUTw2NAs|6cRds zXr@q7Xn&$-g;GNOh#nA13++iXPADg|JJD4_?wO`nU!rq`yh1w@1%!e^I}w!$g@jy0 z`v@h4dJ?&WQbOH{eyoz;3w0*S3gv`~h?WVtYfZ18xT1bj$Sbs!C?ymW+DtTAC?xbP z(Op7Gp$$Yg38jR-CK@S}7RnHvCX^FeL-Z#h_bk(^h3G&buh2@OzCuBvPl&n*g@isN z+88lQB!!j{trSWLEhTzaC@u6J(F~!SP!rKJLhd@#YaY=AA+OL|L}8(zPy^AGLLs5q zMCS-4g=&e87fK0DCpt_hE%Z;Ky@hf@uM+Jj}@zQYcEat58bl4x$pFw9u_Y8^)O>azbN?J`-}+n_f2(y(8omx{heNP*5mDG({*R zbS2UKLP?>^iEbB430*=oS|}}a0nwj@azcM4I!?&lV0xWPbf}P5XgHBaC@6F$Q7@s8 z(CI{5!}5EfQ;AxIQbLtP?+c}cjw5Oi$_Wi6dPT@R*YqkUdQ`|ObPQ3oP*CV7q8o%l zLVqN>P$(&M7}2RhDWO3`gN4#U2NDecs!UAH3H1l6jBT!rUEj~0*-_H&H%-6YDgDFk z@_(USh%!P!q25Fv2!(`t63rD#3UwoTRVXFYiRdw*w9r;=-Nl4*Lf;YHDCB<2^vV%k zB;*zPf+#2y6k1Dkj8I5u7104gNuf`Ob`?qqEhj1wN((I_+HjlvU+5MZ0HY9h+rYL*BJy-oC~P)Mkrs7WX(R7>=RP)cYT(bGa{p;w6R6UqraPjs7* zdx7coG|?48UZE$5h6@FS9wDj_3JFalIz%WblqA|qC?ymp>M4{KiV%H&i~L^bHlnpc z?k3Y~EYVUSuh8{G^+G|RtBGC~3JG0K^oUSW=whPrLMfpUMAr+Yg@zMdAe0jtMs$jh z`yJD(oaksFuh2n6{e^-;za`pPC?wR4sFP4q=-YWf>u)woq=Z%xeIk?=T1d1&C?~Xl zXqu4wUDInC(NjWRp{IzFLP4P<(cgqZLVqK=Tqr4YInmidDWS88{6c9VKhYqeoY1jE zdkVSVGra~9?I7e8+Kp(-SoytBSE4mSA)#*?ftCm*g_?=x2&IJHBYH_FEi{wpVWFJR zRH8eD+zU;wCyA~T@(SHcG(spSbSu%xLLs5ch>j9U3Y|r?zfekOC{Z7ww2+smSSTlS zAko)j%o6TJrdMC0kA=KKU5Mrj1%)=g4K!6KB(##~Nui|ByF~X2rG#b>-71t8dWPsS zp`6g)iOv#or%kVWh=vMzg>E783I&BOCHkFENa#$W9zsc>Aw-*RlHUvcfoQc*T4)cV z#X>ouU5RE3xfh#WB}6X@d4)E-1vE)0DD)XoR463$4$-wjNulXP=L@BTrVv#MrG@S% zI#MVnlpxwq$i2k$x|!%VLSCUuh>C=QLT3Kz=%+Vg+3&DNGK(=jHpT| zEtDp@Mkpur9?@Tg+#i@;O++UNd4=W?9U&AHdW-1yLLs3BqMd}2LbHjsT`#{EswMhT zC@nOV=tH5L&_9V9h1|hZL{uXb6ndU0ArumNhUjLYq|j4Dmk6bVYKYDd zN(((g=%|E*+KNs-N=Hg+r-KTi zNt9%FL=uuTNp?wQ_UXD`*ShxF>&2(<{rKLG`|-H%e}4PXn)SS%Ypv^gufzMj-+P)F zt4&2r-K**qQ&CfQse0U$Z@bg3DXONK@|(I%RnSzx)C5%nO$AK_RdqELGIfipOHGAM z-K46asfejzs%o2xni`@ib*nx1JDhgipz5G0zo`MLwwnr=>Z@vlsi3Jos#cf^nd+(P zSyN$CJygvx6){z)YKp0-sZOd!nDTw^v@2g#FH?R~xvFwa1x#I`s=2A4srIVsn+ln_ zR8T5m3Yhv` z)o@cmQzfc;nhKfvMb%ZN!lw4AYGx{8YL}{drlO|4S5?`R??ZNrK&Baf~LMu^?|97sm-dEmMK_3YdCVRclj0Q*Ws{*Hp+ruAFRJ>^ly8sIuIE%0 zoAR4_Mpf8Uz|=xji%bPgJ*ny;Qz26eRNZbWZ0b=}!%Rg?%~5rYsi>)0s;)HU+v~Jz zhN`Bf{HCUYO1PArh=yKR`u5{&Xow6x^cHOM%F;jk1qf|{b6)-hi)h(uirfyW#-&DxdAXS}Bg-uJn2CQ`f3G2dZf9 zny9H>P(`z(Xx3c~>;78V_V(>_+IOYyePoP1|E5}~+G8qUs-dbarh=wUSM`CZkg4jb zmY52gO0I{RZz^Kyh^qTcMNR#pYOE>W&rZ8`s2X6(Z|ZYZT}%Z`tyR_9RM6B4Rp*)t znR-c8EmL7rPpV4XY|p=`hgFrBikj-AC-j{u-+rfE?Nk+;@|$X=Dr_oX>TFeuOa)Dy ztm+|CAybu9-EJyus#F^>%v8kGAF8e~6*X0|4(du%zF(Yn?Nrs&l;6}ARdr1TOs!Q_ z$yCtPo2vf0$)0~xFR0pWDr{G`TRM^y~s{UgtVrs3bS*D_K znerWU+V!KVR;K)>zEPE9Dq!j}RW(foO|4TE8)?tIsdrT!FcmiSnyPP1MNGY@A9O!ZaO z#8lK&cU7mE@*Q&8RiLVZDZi=qs-h#DD-kf|SGCJj(A4>=J~I_Eb%v^yroyI9R`sH( zh^ZQ?=9!9`DyQlmQ@%f(b{$&-b+akIsY9yznhKcOr>di=ps5|ITAB)(+N$boQ(;pZ zRGnlhV(LRxWy9^cH}$rvUrhN9JMDT^)z_x{rWUJOXDVRoaaGGr1x?LS^|YywsryyU zG!-^AS=B^S5mVz;4KWopHBwb~Q@*Ivu7Rp9GvzncOI2f20aJyl>X-_ex=K}fQz28W zRUIDYT#2x$rmB806*1LN)u*PSrs}JD*Oc#1r(Hf(FPQS1s;nwxDqt$H8tQISK~sOJ zy2(_?)UT?pGZi-VqpAW^5mVb#wJ;SmwMErgrhI=n?J8DP!<66D`>INZ+H-H}4ORP1 z1x>xA>MK(rQwvqCH5E2BPt|LtBBmZv^^~cosi~@FnDQNQ+I5?%38ws}#;6)>Dq!kH zRozSlP4!jP-c-m`cU2dd3Y#iWb*ia|sVh{KGZi(}O4T1XI#t(7 zCQ|`ZbyU4$Drl;Ps^?9GOqEmhh^ertW2>Oa^O)h$f1Gwb zqH38bzp3e}o-`FOb*HN7rh=x%tGd-x$ka$xgG_}@4OCTRDq`wdRqaegO%@ZT#2BmhN`|d6*5&{)kafcQ$AI1n~IpKrs_FUQB(2( z)WfEHrB1t!s=CvZ-_$`>qf7-%?N!ysRM6BmRUJ%)Ol?thv8k}BVpV6DikMohs+y^& zsTHdJ8D!6WnbWSNs`i=kn|el7#8kl4d{t{q1x-Dq>Qz%AQ&UwvVJd9uHdPOpikKRw zYP_kaso|<_Fy)Im?HZu!YEynw*Qjc1DqyO!sz#=Qrmj$RvZ;`%R;uI%d+tp&QT4m2 zh^cc`?JyNJRaey~rhIXyUD>MMGUYc_QPpBo0aLN}q2`(jnu@Br!&J!BFRDhG3Y+>t zRc})fQ{Sq}GZi(pS=B|Rds2){RD4^Q%6cOhpH*2qNaXUHNuonoOXS$s+TFhsfemvQvp+-sA_I1Xlk{p z`ldprR;a3CDr{=0s=o&~S0ZBSIaPa2MNK`S>I+jo{P}+TMcBEjR+;jfnx<;0seq{| zsuq|Eni{9-ep4Y+!&Qwl6*e_M)%B(#rh2O?G!-?~RaF~PzH&~xa#fvY%5SQTDxax< zsb;E@{q4Cob*`%4OodF*sN~mW{`N})(I-+W}DZi-_ zRg+BxOzl=R+*Huix2k%Y3Yprh>MB!VQ|nbVGZiuQfvS3rS`;;Pc)tGi-`&4fupNCB zoTlx7{WaRpxfp&^pQzepDq!j@RiBv(np&)CrKymqxvE|?6*hH;s(Gd&rbeo|$5hl* zZ&f#&@>O)&m8Yt&DZi#Raswq^i6G5 z^^2*fsnx2!Hs!12wCfdB>rDAgJ+5lGseq|zs-89#G!;}e(^SaRKvfe>g-vx;HN;fJ z)TOGrn~IuhsOmCPzRFI!YO88&%5N(5C{!I&0aFK6l{XbMwO!TW>zpeQGPOa~52nJV zR;c>aRK(P?s@^pfH8n@o3#NQkoOVr76*A>FHA2r91AHCI(& zDr~C0surdqrmCnq%T(0V-}9hqnDSM1+O=0z>9zLUoBBf4ep3Nct5khuDrjn{sca6)`nV)eKWnQ`f7SV9Hm`X;-1D!KVDC+NkPgDq!k7Rqag$P5D$^ zU@BxP8G<_1RM^ySs>+#)nA)c5k3PQ1}fRJF;J-_$dz-Z2$0HCxs5 zrh=v>t9ry#$kcFEcbN*C>Zxk9sfekoR9$N-YU{WnWh4! zBC4vJ3Yz*<)v@08+?)D9)z7BFre0I^rKyOiXH|V@Dr#!Js%55pCpqn!rRqsjepC0V znrULGPnhKg~p=yw+kg0*HicEz~ovNyxsfek|Rh@4tO1Vxk<*Vtm>wMiS%aq^L z8LAHTa;`+cl#~8@Q$bTty@|axnhKeENY&e>!ln+Wdd^hD)c2|$HWf9sRn?uQeA!OB zK2|l#l;6|`s`{7;m|CH#gQ=jYa;h#i6*ARa)fuM3rlzZ^W-4N8vZ{Z2+H-H}7FGL9 z`D!`sx=~fcl;2ceRclNIOa)ZEYAR@IbQtOhQz29RRXt!TY^q4rcvBHmKFxK5si-OE z9IrOz^EvJMM-Oak%5Um-RgFvqObwq7b+W0TsW0Dvl56a_HP=KrY5SIYbs!BjH)|K1x>ZniX%;hOkJp|x2dqHnX2+k zMNFMO2kIhIQB(CaeFIazlbv>DtEy_sZ>plIqXB#FO(it_Po{#Vo_if?tErHwEvi-96ni`{OnknBYPP_W43Yzkp>ZEF*seq|gs=AsAn#xgisi}~u znyMO_3Y&^O1XbHq#MA**sUG&+oBBr8K~ug{op!BPwcV88)a$A?mjtYLcosroyIfR5is^#8eMeBTPk2U9PH^DPJ9@T}@Qwn(~`EO;vMK0aF!J)pykN zsZby2zi*0v&nl#w@vpqtUb|-LKc=!kcfdcct^Wk+WMG9X{Wm?PfiVB?u9s>0Is|#E z(m5gskRz^1ev(~JG!bOhg3Ks|~_lf}1R|JIr|7j_* zPOqBvVNro|XMAA%GdHTxjH$0V|58cRQWWCOlx9*?z%Kazf0iN_0si$jCq+Py#lHq* zDe{m4|J;}EfL3UVw!rk&0O9|C6*+w%X!}QILLD#_GPOq4H>Sd-URAZ;RK(O1s$Mr0 zHTBstsD-9{b)7R>rRqUbep9chnq(?qYLTiNO$AN0)$~0~g-kV4b-AgqsgqSTF%>Z- zGoVg06*ZNw=_{D>)pOd_T2=IF=SuiZU7%{0seq|^sy;InG__dMuQU}hHCNS(royJ~ zP&Lm~#MDSt_n3;BTKg*0&8B?yop!ycs;?=(sTWjrG!-zlKvhdqK~q&V{n@5MrjF{n z;7O*!rhZaY*3~)fh^eirelZm_wOZBJrhE;YcDQwnQ&Ce5Rb6JvcZSoh+Nv6x@|#LM09D6Sz|=uiRnS&Q*%_kV9Ix<)2=D1LZUvcZO!>}s+Eu7(uqnT( zHmbUr3Ya=iReMuGQ$AG}mt9ry#$kcFEcbN*C>Zxk9sfekoR9$N-YO0y4d{e%2 zoOabyI$@JSmmGup{ zqBUgW^tWLuAoyhZU_Anj*p9Wf8MqW%uzJr{n{2h+R=?V+)K*oI5PR0ORbyMdh)lK4 z&MKI-u3*+j1+z95%=%>gZ&jx4Dfi{!f?4a=|53i&N7D|JTVGOPZpHS~ekq5YrtK{^ z_j3RG-zwsmX+M>ldr7VJzgEHlb5A;L?y1;e-TGfEBP|y;u7Km#QTZ&5ob~RQyE`ek|1uB*{8T9hqwW;cRhXNTST!pwiv3ISCOG>G( zcO8mL{viK5@o&Vx68}Q{Gx1Nvdx(D|_MWlg67Lx+F7ckR;u7x}D=zV#lj4%ED3AA? z6qkHK-h0N1OFkpNiTD%ZkBL7bUPt^P@oM4^h~FcAm-ubs6~tlU*NI;vewBDB@yo<7 z5_^5QxMVT;XNdnp{50{C#E%otCw`PTMEo%E9O8$FA0(bZ`~dOZjyA-;?F4&uqg zw-HYyzLhvgJeGJ2@lC{|h({0)BfgP%F!2q<*Aw?A?n`_vac|`qiiMtSY zA}%2AK%7f_CGq9N?TOnGw;{fSxFxZl_#)zF#1|4bCO)6IA@RAyImBlXpFv!oxGwQ& z#HSLUOzb1hCO(O{I&oFv%ET3k%M)i2r!w!|c<&&N5tkDGL;N@KU&K*jZ*EXr@;mw8 zh<_#ih4^RUpNRJm|494;@%O~riN7QMhWIPu2=N!hpA&yZyovY|;*W_xB3?)QA@OSB z4~X9*ewX-d;uXYU;@62^BYu^5De=q1FA_gbyqNeI;{OmoP5dPBw@P5aj*zks+M@fPB; zAKlLj#U*pew;AomL&-l%{yg#<$qyjkoBVF#X~d_~{`us$5#LE%E3^NG z67TwKD5*id8gUikO2ie2%MnYa)`pTKah%w@&KpXOkv~d&g!oV5!^DS(4-%IUA0XaO zypMP3OMEx+oy1d!ZzrBaJb`#T@i^jJh;JqyO+1o#IPp;8A;g1- z2NDm+aB)dLVjiPR)PvXPG zhlmdnmk=Ky-cP)bcrWp8;$6f$iFXihBmS27YvM17w-Rq5-c0-{@kZhe#KpwxiPsXZ zAznrNKJiN8cZlC2ev|kO;^oB4h+iRILi`f(3&hV6KTEubcp>pq#7__}AbyN^9`Pf@ zbBSjY&mx{lJe_zN@qNVi65maHC-D^G+leO;PaqyoJdXGl;+u&_6OSYwPCS%&2=O4| zfy4ud`w?G9+=sXq@ioLfh`SMAO8An|K%TPU0QJ+lap<{+jqp;;qD6 zh&K~|O1zPH1936&dg8UjYlv47zfZi9_#NW6h~FfBgLpadGU8W=mk_^1`~vZF#Lp5h zB3?-R6!8ho=5x$@m%8B#IuNJ5>F?dMtmRfy~KPSUL?=w$mjkr?GqyAe$Dre z$IrWHf9}_O?|A&YlJ@84?H2OfubY$S=WRIoGU9FDd*i?$@)d~r-WAjS*U>(4@_g^6 zlRt&_UrGLI^0$+(LH-T$`Q-D6uOhyJ_%h;l#FrAcCT>OCg7{)$zRpd_HzB@&xDoMr z#ODy7O?)PC1LAtbrxVv9=IdOWd@bUd#C)Brk*`8riI|^_a^!{XQIeRSjWY7bh>sE< zA^wy2F!3ScgTy7o2Z;9*?<3wzyqkCz@lN6$#N2njCI2>$uA>*g?I_^OT;e_KS%s5@gm}d#7_}FLA-$Y zG2(f|j}Xr#o=rT9cqTEAW7EjrM|>~w-NbhiPa(dYcoOjh;_<}eh;JdjnRqnuNaEqd zLy3nF4Z< zaZ}4(25~jwD#VqDD-f3>mhJ9) z2mXHqah$k}_!#j~;v>X=5+5c$M0}9Ag!lmQe&T(^dx>`w?;_qwyn}cf@wdcZ6Msp( zm3RyBX5vqYHxh3kE+$@2yq0(k@hal?iB}T8L;M!;o5XJrFDG6`{0i|B;+KeDAbyVc zS>i>+3yGg1eu8)b@ngjEh#w)IOFWx+7V%8t>BQ5B?<2mK_-^7miKh_XPCSWt0`Yj_ zam2R}-%LE3cqH*~;-SPthzAi5BpyKAkN7&`KE%CQ8Z;zHui#2tzAiSvlB zBEEw7GU9f`mlC%oZbjUJ_+sMb#7&8t5MMyti1<9>bBNC-K9jfsaXsSGiR%!bLR_1; z7I97D8pPFzs}NTru0ULlShmslPaG#MBR)oal=ukopTviW4-p?EE+IZZyq|a<@m}KH z#Jh-h67L}1M*J=D*Ti2EZzbMByqWk@;*G=`h>MBW6R#y+L%fRked3kG?-0L5{3h`m z#LJ175x+vbg!m=m7l@xDewKI<@j~LKh@T*SlsH8EF!3DXhln2}o_#fiGiT@&w68}N` zJMnMCzY_mK{4?=S#CwQ;B>sW;d*bcH-w}U9{1tJ8_zU9Ci9aLWMEnWy$HX5IuOt4D zcs20{#P1QmOZ+zR3gR&F>%^}Sze>E6_+{c3iJvE4O#BS-e~6zZevIQX~g#t-%ETq@twp|h;JvJL_C3bJn=Z@d^K?)acAO=#QDT|#8(ktL3|l;JK{@;TNAe;Zb5u8adYCP z#7&4VAZ|o_9`QNEXA_@E+<>?q@#(~Mh)*G|O$yiN7S?O1y=5 zGx4Xy8;Lg%7Za~1UQ4`&cop&c#4Cy4A%2VaP2x9*mlH1|eua1m@k_)n5I;x!Eb$`Z zg~U%0KS8{J_%Y&n#E%fqC7w+@i+CpSbmD2m_YvPqd^ho(#8ZfGC!Rz+fp|ReIO1D~ zZzdj1Jd$`g@lfI+#DjS|AL3rb*AVw0?nZnyI4jHft4q^aV!0m6RxGQqbiuL&%aij{a{szAd2fB0JY8HSk&nxy@+W0- z`NlG7|7n>7KP!_KpO?w4Tgqhl7iF?RVH_ST_$gSQzoB$S0;&VW%A>W zGC6f;nRNZ3Os4KClh=MMlb?2%iEnS2T=P?z%-L5aAN^b=rTfd|q61~p|JO1Jm6XZ) z-^%3J!7^#^2lhK$CNraDvgXe+Dfz2R&i=bh0!Pba-ap7!ihN~dQa4^E-4kVUN3u-9 zsWRCsWpaACn4DW7CVeZ$q_A>K+E0oD`GqYQ|)5t(cr%J0{&uj>)uB zV)DkRG1*@yCfm=9$vX{W@^sUfti35FW5y%L16(Om0ubq<^KjJn%tWo?ai9Zkyub-x`-CcgE$$`{UAaR$Ll~;&RFp zamjfmE?>VGmv@)NrRUU`)SMZU=-ilmJwGNNE{w@H&&OouD>1n#9FyDLi^-I=F}ePe zm|V3bCKrAalS_BTF(mwF{}>GxY)o;ry5cf@}nJ{*_%(YSo`XIxG_5|`e8BR-1wAH=1I z%i{7#EG}E)ajBJzOOF&{L7bJ4TICbcqe4O+s+f?^DkbE{lM?dVDG5o{Pe}c96Vm^@ zggo6aA>TGiNSzB3a>+#rxw>^iZn``n^YRn&WkEt}cS=Z6=Y-7Zl8|LR67tct3E4X^ zAytPbq|1neJUB8T#iJ5Z;iiO~J3b-pCMTrty$QK@MncxkOo%*~koFHHoTygzVgaHf=x?;N*3Lcl3F*VWZlS=j31tobBCs6*Wi>qd_zilT%VHP z`lV#vbt&o4CnZOErsTyyN(OaLiLWRnn+sENS7+>-pOUNcQWCu~CC^=+lIz>2q-NWc zY-*j7p{-JK&&4UZxOqzUT!>taQ&Mz(N|NWL<*Z^>ADr>|Z-2vudWK zeT|eHt%^2RMxFAgla-R@sigcEPs&qeN$GklDd(ORlR9U`B!>Q9y;)2?NB@5X{r}}D z7z@z<&lnbyXVL#3LjQjP{l6>vfAcJLd|I&$Z>4pA(`0u35|0^l&qPQ-Hl2T!7QkH(6 zl)TT9^2^4gJh&k#7ZxYw^L0rX`(aXitCOgAW_MC9*_D*k=~HhJ<{wHzA{T!{ZrW{Cz?uq5sc8|6hjw{}uZGtyPk8YNe#ST0SX7SxKps zO32%B)GkX%vttRF)-Ne7uS?3o-q@#SQU(W-@?lX@CU#BAN1bp!1vs}3IQOfPviORm zTzgqk%D2P$v`NbTmPuLYPfF*Dl9Ftil((8BW%LC}Id)!BmY$o12ucX5l{0Ov-5w;QlPe z{d*=UqyCeWJx?a(di3|_-Y=7B7z^HCT_%Uulu4ttWpXX%1pPiLllqts4A@X6k7G{o zIpzfAF(+t?Il<`7m@i;n@CN1t`!Ofjh&e$LbAncw4~+g6+b}2Cj5$HscFZHbFOx}_ z7c9fPU@ztcr(;ggWlxz*!MxyA%nSBlUQqED?1wo)5Oac;F(=rDIYHIm%cR{Qyw77^ zumE#{&6pFEJ5nZ>Voop$bAqQZC;04GnPg#3Py=&@^exN>?!kOu zZKareRwX7`)nd{HbAmCL6D-1<;0w$Ns$ou$z!cn1Bx&PT#7NE0As+hMR9o$+i$}d(*k3_sTc!}VGi&U<^ZLb11!TBFag`2#u%^& zW58650YfncbjKJl0AoNl#(*2JeKf|L>NU~VF$P?N_(_ZbMNLr~V?Y7o=J|2?33GsN z0&)2SW57C$0nyju^26}BT#W5EVT`JeG2puGc<6U}{LW}{^Fa|u2G2k7H0Y|S$Nb9RG4&)}}N3m60TO~w1}{Rz2Y8s2vwNXX~YF&~(bkc%Ho$c?iw_jo8F zTQDyu#k`>D!wESjl#uJ@VZMSn!8*(dj?Bk6jC=`vm8J zc|mK;34)(to`N~Sw$CwV_#z<(x8fWyCpdsP!I|GAq}R6znT0vQ$?ud&6ZC^KPK`-f z{h0iCPE0BciAi{5Om>Zn$sdhla$bMD7hW8bS#4r6@rsz-R}hm+uExB&S4?sa#AN3o z^qaq9@?1P7o5Og2S&3)q!?=9>NnHLIAD34q$7RmFaTzxwF8$}mW#oK3a|*Ph)Mm~F{$(@-UpvTzkD_(sUx#UaZJX4hJN-X`pov2 z4A~QtIpyQhygHtv+HqNdIm@aX)Met7=D0ku1#{pP_^k8)aY?YGx zTBPJs%<&F2!#IXH-iME3{@E}k)z8I!#r$sknJKvdbG%)3Q}WnpDH)0F_xdpZoQG{# zs$dz0IbMCt@irur62|=JWz6rcJDQZLNAMmV#e4W4Ng0YU|5|+JyX=gZTzwusf8B`B zQ={;iE{L)I!k7#k5R*NAJj<8jbK#XSncXoaV~gx#iY^GF{%0-#&pd2P7h-q`Y!t3nwV_*I40k2j>&^x#pLE4I0m2jeyM=|QzI_F zo*b8n_3@eV+_+3>5|@}iF3;k8d*)%>?-G|bJuuI_7ViZE<8tn@xLi3bE>~gBH~)*c zob`KB@bif>>OfLz?#Eo`lca3J{O-2(NvX3oDJwC*>-RxY;+WqpdM7DYy_J-`;iTOC zdQ$4WhB?bCNg22#De_`co_jtiO?M<^3+8vDzrmd5tE4Q!{IPHg=1-VE&fS!hH-1XW zHG7hBXjf8Z?Zg}rWBxrAF?Q9!n0InQru>A@EPF84?ZUXU6XV%g7zZ0+{?;rZjV?(@ z@?b)qEx|Z`0OQ%u3ArjaA=h@sysmpf{?iBJ;r4_)fw8O=#*_cDl!W?o2t}*6#AHgrb zCn@h>eGcY$+ZNznJcju!;v#&myLnMk&RB@HK9Q6M?oUZ;^!;D%#ys#&JVR4bvVT%a zrcOZZ@hRCp7N4cYpzosZAI0apm+|>-|B#eCJ}4zs(f8lSXSO`%cG$OdO4_3Dm-sQ)xd@-%(Dy5& z@2|fApW_;(R$(RGyi^*L%F}ZRO-g8F8q~Tb+ zuUvrs*%$M>i!dj=1arg7W3svfKK~VBPIe9EVEbdz>Gzm4If6M`EGDDhh|3x8#zj`+ zv(<*Uvo#bf5iAu4&TSAitoSp@cwo> zz6WzQK5w2Mm!=oRrTwLGnRaDdCUwLZQ52UUy)Z}XkI#5Z@t!y&F1L-2%ZANy$t%I< zx?hqq`{$(i(Kq{`@5k09NAcP2QGB**jK2Tb=Xf5`_p{OW!}#p@)owihyYSfqegC!X zNqHd_mp97cdoxwhCu^Y(@5Y=DeSZ%=tKEjaT-G2VzVk2_yAb`nMM84W_doh2A;Zx3 zV|y{TxdNXF3oyUA8vVQ{=8fq4AK?2O*Q4+Mg}Kgw8!&bZ$2{j2eBWgv=7;fwj6mP7 zioXBM-xv$f_Y;TldGHW&Vr*I8Eh%?gos=epN%^T0KD!nqrFRE>M!FJXdpXrD7^P;lIYoW{408a;GW&gcm_jqaG#ByE5mSrf8yI^?&{$|>lGFI|f8rEs!-nSw990{D^- zYSg05q!Yg5o{Jd&fJWBoSZZLYj)h;j2)bgyKd9mCgO$U&)_rSYIZ1=`D;Mj^#(JIQ zvXz}>+}689x(^h&b*gl}@m)EzX`pnud7F%R1buN!vE26k*K+Z*S7J`}u6+La=b|r7 zaUqt=vGl<*8Oy6!{=_0^%uiTe#Xl{w0sr(!pGsL-v#TIRgX+{mTn9Vhh0V^nX?yT5 zj5+Pqwq|4TVL2JgsaQ_KQWr~oEN5Uj3k%XY=aGwbAr|*M^;(_yN}sQzU2b~9P65Pv zz1$c60lchSEV{p5dwuCOc3*ygdtF$Y8=Ieq0~!EMZVzE;qgmzzh0oBKpQG1mRu z<8r~;F0Jdf0qE4%d+T0T-e1q3`^PEi7^_UX-M-`AOWo$a_*|4vjCDWGulLK%!|l-P z^S`a5=fdZQ@VFX!fBD(dSnrElS7W`m9INA4&x2!an;Qe2S1!JCyS1ji-1E?y`f_9U zd2(Z|sV_Hnubms~T3;9jj(fS=-Ttb1l->5}wJDFqJuVmA5sQ1xcpLO_FZURg{}byr zt*OtR*3HGD=dStnrT5jnp6>QsxXxH~A8n`Gc3|c;8gvtuo3V_^ScCt&ZOu;Dm!GR# zY%9Q`_1yDUr?IyG#A~73^gg-Xy(jARUc27CH@e-uA8vjq=i0f~PuDK%HaDlXQ;%(q zMX#6E)%Zdz|Mt@3xW1bw{g#k9q)CPh^gTeYc`g<`2W7X-SAg~9K0C_VE{?S($9gUt z>$T+AtpV-4xG$>UzUaofPi}hYg0=fR={@4tFa*P~jKDIIH-P`AZCX$Bxi9xQ)ZARh zy(aqJ$@fx^)Av+&yI${qTXa8txyNc$RTN(sR=D(PP~_d_L-V8^TQc-8O1|y?*?1^XoZje(fv&mS4Sloq*2EjdKxc8}-?C zj|FD6O*`GjuUrItt=&GMHFR;GWo?hvaC7qcs&9uyk9G6w{@e!MU;DP3$Grx+zaHy) z-e0}$=WYXLuBY~E^;*ll2HF=~&IN1VZjVJ@y3Ku61?b|wnDrj$b-tc)MFq+o-wS>#b{j zx!1>y-Scr{_jt{zP8XMfnfAE*yY=1Jz2Erw;=FV$<(GPQAN9Fd^d9Jb>UF!aepYbz z(`%~FzP{XRuk~`VxcAT9_uuBU?l#TizV!GL7q`#qKFTM?>U9ir^W=iv_A2W$?{3rF z|8@?#pW9}j(*|AZ>%?=@{--auo!XuvEP8ym^g0*o|7~6Dnst$Wp_leueJ1oi>UGz( zd+)S=xaa3yL${x5n{=DIzk8qE{q#LaU+y_sl$E94-A7$67Cj%`PrYtecCVcq=fdfE z>iO$+>6Tt|`}H_&j~=5hZL52{Ta(+b+uZ##?OcTKt6*9DEPmExF@9zRi~l)%zZ1)^ zSbWdp`bLm1bSWy*@A4H+E}X32 z=qsF3I7PqL*DKH~px^H6)UhDHLteYKm$qqrNvoDE{5kGL>4?06{6K#DoV>i84jpnd zZ2=lrFdF|g%jv7H6WW?pRN!3qv164QcgV-3&dciAGe0k@u)DU(R#^od5$G-j&2q+O z^(@NE>e@4BSXLhL>+QmR*p}BUr*T2YCbqL3+0hA{t+=x|vZr%o_x{arv{vX+WGiRC zE}Er_?pKiK?C0#}7QwE%8RZ&}9cxw6M;AFqJDag}Y*v1tNZZ#P57aO{MxUbe8RAGi zLoMAa;2ee(cInV8$7v@?qV$OHq^bE_u2})(+`)etPX(8h9rK)=mnnofKHR zDS%E2Ttz1Z)=mnn-K*=QKx65&9=;)gC)_ixX z1CH#~r-R8fbj(VFZS9agq?du^>5gYHD-U0hA735Ww?|J%{py7I0Yv!X1YH9;`qbeu z0O4!8bxvqLufVC}nC`e!*r`XK-Z^9SYH53%4d&A=aZI3xvunq`IgNV-aFOs#YJ+SW zE;Z6_J9p8^!9#o9@TwR1Su>GnC~90;;w^`sHxxld9D7xG=uW7ChBUa>T$k4{H=xbxWQ;ST8G z4rs@5!1AO~^EjBv<3#p|qCFklzLW2Q9-i(`+6=dAIS+&z;c)9*INSh-8=x~9IC)$| z9>a7q(h*Jv&wdBzD^3LLG~QWTzi^ukmFIMf4$jwn=W9pjs~)0VMqBH2W^1Zqp7!Ss z`Xyh#bkr}pyR$0NRXRTi?_(W%qtj;vdf*uBpNIF=^cWE6)2oZRp1peKH1zwOJ^Sm| ztN|Fl@;eN)y=`D{4n#M$o!eU4d?zj5_$;lB3r<=%XU`UvHb1LlU+t;-u;8sp8(}*S zI0vN)3eFjr-rW)hdN_&Et1}}C*h!4FlencN4s_IE#CEiKlVuOspra?!u^^qiWjeW& zJFioEM>J@xrG|1+x3bjT^x@WbP0e0td)s(5;2dprr-F0bX18ja)xAf+hA`*-v;(FG zm_DHOI;qR+bO9b%JO-G|;d<*l0xNy{wE$nccJFU*(|QtUkh^<FpV{hW~r88R~lC@o&t&*lueMry3|=IEBjh5ay4I!V*0r5&le z^vds~Qw!WdoBh}%)j2ZHIS5ZEcEK?iQJp~rYjk4%nJ*l|wc(tFxh5DSgpF=~T|1>Gr~&kjzGWy?oBe zIu|mX7A~C@luirEq;=S7BZ$)?Opo|_E7F;5hxD~{gY<}RyE!G?E$I>8wm3!HE$)b) zZU=g0`s6^ikMjgN-W$L1oaj@<``Cbt2hSa*oqf_{v-1$Sqb~NzAPvB_PkKbveO#o$ z)!D}xN41cSqgn;)bW@#i5}R!8j+f3+IwoR^vq}$*jvsJNr}Vg^10ybLp zk)>bO0PLw_2%arxG=R~A(fu*56lrJCSw-_Joj#w5Fs#zHg5x5LjkK-HaZwRPgw3yX zK9OY7qgYR`G>TD#VichmMJPrQie(}~D|TG1OrWJQfmX@{S|}4}olKx*(t$@>q*qa1 zW+%MqQiOM2iVBX4@McWg@W@bvrzR5-I>mY(SBxSQqX@+)LNSU^j3N}vM1*!`Esi@g zFVZvfB0V!N(lhfSJu@%TGjk(CJF_A#*3*mh%)Cg?%!~BQyhzW?i}cLgh)|1lDD0i% zZ|2@kjanQRwLC6rbzF4GaZ&5zqBh4xmu8}#9ed^Y>GY0|@i-p09Z%$OF&@g}Vmz0} z#dtI+J}%Ic)s5~&cY647u@(2WTX8S8;$CdUz1WJo@d?GOc*_&c+>5Qa7h7>Jw&GrF z#l6^yyRlQ;4cs$tbwY73w&GrF#l6^yd$ASwVk_>(PH{JIi(hg=aWA&wUTnp^*ou3x z758E*?#51WH*kx$KB2f5TX8S8;$CdUz1WI-u@!e?r??xq#oL@v+>5Qa7h7>Jw&GrF z#l6^yyRlQ;4cy|Fo>1J2t+*FkaWA&wUTnp^*owQcQ``--crScT;eLL6jDhU9?HJ0A zi!qoT7h^a(F2;aH@o|A$-0g?j&vj=nw&GrF#l6^yd$ASwVk_>(CnUEs_qv`H_hKvV z#a7<+*FkaWA&wZtN6y1NY3mu4l!)*ou3x758E*?!{Kzi>5Qa7h7>Jw&GrF#ogE`?gnmguj^THFSg=dY{k9UihHpY_hKvV#!hiJaEp6g&x(7o z758E*?!{Kzi>5Qa7h7>Jw&GrF#l6^yyRlQ;4YasTeRUG< zO_?pi0OL%HEyD0Z5e65EFtkvFfh7|WI>nsnZKfDSC`J*AQG{X?p%_IdmWc?h7{*So zRwmF=nLsOL0xgsYv`!|_GU>o0=iWKfTepf$b}hnvqiwir6ycsxggZtN?pG!vbc#9C z+e|TvP>doJqX@+)LNSU^EE5shndu0bDdtRey)*N+>6v+vo|zZvnR$_(nHv$>nH6y{ zXR@0qMv5Qa7h7>Jw&GrF#ogE`?gnmgeRt#HUTnp^*ou3x758E*?!{Kzjh*6d;1<_+ zH!kkQR@{rNxEEV-FSg=dY{lK!DeeYZ+?~?8#gC8eecbDs7|PO9VA~&q*>N$3v*Th6 zXcQk8xW(Om$WvxZZpFRrR@{rNxEEV-FSg=t>=btcx475!YzE`SR@{rNxEEV-FSg=d zY{lK!DeeYtaj)xHaWA&wUTnp^*ou3x758E*?#51WH*kx4UC)Ypu@(1XEAGWs+>5Qa z7h7>Rc8a@!Tiok+zs5~Ue~kYUTnp^*ou3x758E* z?!{Kzjh*6d;1>6~o)!0EEAGWs+>5Qa7h7>Jw&HH=6n6tHuG3rl?lJ}xFoqF)#o&Rj z7&7n`0|mZ1|Bqh*hhUOw-y_B$U>t(4I0RpD2)^PFe6>RWdWdrb{znZ+_jh)8_I7r5 z_raR|QJ zApot?!l}~2snWu!(!#0I!l}~2se)laf8s)S)+$9#75wi-hqX$PQ>DnMQsh*@G|f2# zn=+HL4(=>1--QAfI=axsg(4T6Jn8A3rNYe4QUNR#z)}G$6~IyfEEOP=3T&w`Ewoes zO9il0080h1Q~*l_$fN>WD$FS@6~IyfEET{~0W1~3QUNllz?KRVQcDG}Q~*l_uv7p` z1+Y|rOe(OY!fe)30W1~3QUNR#z)}G$6(ExeY^g96wp0L11+Y{AO9il0080hPqyk$i z%%d$8z)}G$6~IyfEET{~0Wzt;HWkJ9$t9mI`30 z0G0}1sQ{J=kVyr$RCp>Z6~IyfEET{~0W1~3QUNllz?KS6g{1;mDuAT|SSo;}0$3_Q zCKcFH;i<4x080h1Q~*l_uv7p`1<0fVTPi#imI`300G0}1sQ{J=V5tC^RA3BoIw{js zX|VSm7<WDm)dI3Sg-KmI`300G0}1 zsQ{T&U`vIk!cqY&6~IyfEET{~0W1|DlL~C9@KjhTfTaRhDuAT|SSo;}0%THwEft;$ zO9il0080h1Q~*l_uvCCdDzN@EsQ$D@zVqXL_=yXo#Q%xcA2h{}s_0LDI6rs-?%uI8 zMzY@BvkJT6r-qy#97!LJqcVrv4{&*h>(4biKYxNl3-zF$>4WgI8<~U9=yXl{u@|ce z)>19>DE)y1Z7F`BBXgAfh?w^ixcU<`PANUAW%{U|dK7+gBXblkN4l2%NUhZZ_v~4q z`{Kki``VA2X$9S0j(Ukbb9OOM|8f}Pai3wBe7FUP&~cOmrmC-nD%^k>#}tuOrq~!^gIRw^!u=U{cf0<6ggX5>d0uq8zOo82 z=$74ouXVU+BP?b z?(4p^ZSL!8KyEtFwYE`fxz`(*#rwEz`M28VV&8wOt@-r#i`szT8~Oxmfg?>-BSexds(3JE^>F3$-ql#^9_= zOC^A{59?7_2ium)7RHkD8(4D0+AM3!~ zrLq+3tb0pkHP(@-r4rHY_m|4gy8VGtDb?*ymr4I> zWe?UeyrDFU4V52>%Lg;!FmkVIq#ueSTDw3fd3q8{{hs+ zI)L>_xKM+!&cS*y)?Kh(hxPSXhnwN=Tw@)&2!AIV>nPR@ao&S3E|XlW!}(>h3F}Zn znf##f)%cs+xKYubWpX{%{{Ch1BG!??_`8}|5AK4$gNFyp-xYr!4eK2IU8c!c?l|Nz_0mg9#it_u(!AGWSqwi|k59jJpNUwy++Hegr@gudvHXqa>H~8Bfm?hBo;`A5 zxXbSwv1S?n1uG+aqg_gSR zRHH(ZicVZUiB-N{BK`X;4UxC+q*9px&gz)$n^C^}fNb1fZFerVz4myiRKjzrFa7=F z-f&CtjIUJDDcd)yKaYUUk7c3bG`MD za(4uZoV!tF;XJ&3G;r^U{w|%~my;Hj$};>iU&Wnx2$BDh@*T44K3t(gcFx?29kLtG zsg#%PpHVq4yX~|pU9%ULFW;|vc3Y^t?8evyyIR4HHJWKLyr|weUOgN+t;&qbb1KcP z_;7_swA<=E)$7;{_jCu=6~9M)y!8IB#?tWBQuzkgrQ&DSu7|ZaxHxW+r z=u6i+rUg%MgW<-&wQ=^c-*=w~_axk;Ga;S(*ZE)WUxD7g&e?$qO;7vR``5|2Uh9zS z^R1=wu>NwS^K2Go*PT|Ob9PRJ@xJQWb@7Q{<>u0xxF0D{T)($ zzD|W}3#ac-ma{-}UXz`3qnpquT`?&ytb8dL{|NYr4$evoR z!jkI$dU9R0?{&el82J*7%4DbZZ6{y%Og{9bIh6|ZS$D2g*X+UNw;~(N36DDZmOfj* zBUk8xG8qKcTyx6fyk=A=$j+HoQ4tCq(fWK{ykC5beMjrQ*5?Q5wp@fuaUJV6E|Wq$ zgcbipQXKejdECRf+6U)UMD_HuULjN!-5donPkBe2n6^b<^qjxa-Fwc_NB;XcU(%vf zbl9r+2$FApYHyLkf0GpFnSyF5CEK8ZXJTvH~x*7KO7 zW9SSWLvgP{_F&^?VaR^49HIi}*5RocgWbQuF~44izpH(~?#(0R1NzK#(ebe`^UOHs zQji@gSMk8l6|(;IDa@-;p-SR^*n&Fx()&<=YgYBDlzgPmC|>IN!hM{Jztid%b7SBZ z=izU>(tcCnit_Py7s<`nd>vD=lH5|bw>za|1-aF5I>-2dTm-He<{R6|{R~%%xyL8u zN;O|M{H;uKC*k>?+5>+#lUxp5vuloT-z9LrVy?n%?gIBB<}G{;bWSw*TKwHu$`{mp zeet`;#Sy) z7%%GAUv~BS_0)3z!~5x;=A}{-gKfp;Ei3`Pij=$a`|``m?K>-LN!1~1&&pa_qt)iK zvPx>Uil3GBvai+5v$M9J+;ZDlS%05;(c!bQ{;4yqJc8YIzb}s?K59@2?u!PMpbj=@ z`+v1}|8Xv*d7{Td&Dq_%cV4|cvv;O@x_hQ;r+>`cy?1J=wC-l^&a7^9w`tvN>Ausq z_wJ@kRhpWi%B?EhZSU*u5(Gh%AP9mW2%-c*5G4qLAP9meK@da(R?jpawu zlovJjA4$}8{pdSH*!{QO|1^IXf4;ZF{lD7voqXs!%r0#DOWEBWq|HCgN1s-rS3e)~ zwB(F-)L3D2fyVni$p*K-FPXvkjAVd0&q!I`>(@UcrC{4LQXC@BND;X7j1+|X&qzL) z^sM9t`?Hb*);=p)Vb`;g2~IpK=^^#3l-XFIx%&et2@{@^VlekPDGcuCqyX%APV&OB z=Ohz>}K$>-qzFV_l7evQCCLZ(Uy|G~>1D|Q z_Ln6qtbJKB!LFAjJ)C%1%B&~Nm!%|(ctwiA)K{c1EPh1_fcF*23;SM?T+sN6WQQBC zNER@>Dj8wst5R-VfoA!uQX00rDkUKNsuYFuuSy}f^Qz>B@jsC~VEc*WgjGM0Y;gT= zB{OXJ?~(zsKa;Ya0?ouCDJAoBDGo=9r3lRFBn9E%YmyJny(YQgcxTB04_}w8u;@+6 z1bezjdWdzAGHVMohq_8hxcdt!26O*T3WNWbQUH$pQu4yiUr8=V{=H;}iEl|3SoF4J zg!OMrxi!@5E~TNqhm?S=J*6mIen$#H?j6YwruQTdZ0RLAq3PF>4OaG+%;4`W86fYiSaQSI|0y}Z_Z!Iy2Y(}(;N+*09;SXK zW!wdtP5&q*Ve~&qF_`gBQW%W?ECrxJD|sRLx#WVW{Utjr?k`zjW|?G!9pzGPRe|Q3 zPD;a^0a60$2S`!aI8X|~oeIeh8-6Ew;KCru3E4rC4MtW*ww^rJdRDV&CJT!InYh(QdY56_?*Z=wUoj3$4yq6t@^9vd*ToU0gT&oa@^=(yreG2s z7{d)1#=RK8)9A%Cx^Q$I`Qr?<;4(C#4|9u{N-&M*FoCx*ipI(0k8{wE_2|KE=)?#n z7jT=w;6m;*Xk>konfzI|qnGuyXk~pDM(vD#G*dr?VYZK$LjG)@ifOhl#yIORE3@KihAhjrxYEkB&J*=*7-0J*3Bk=T!2CJpbvMW z8&9GGub~z7bI2d3p&plDW)AZwCNYFDJcD7pi2)pABY(7_3s;~W8_(1;1l&1U|@ zG)|aH{x}z-=*AH4KtCQs4_-zm=Fo@4O_OyMbvV-rSjhU6GrZazH5>1QAALnBj*I)p5q8Fp+!mDV<;Y-LLr=SrXn6of{ zVjA~i0#9QU(-^|hOUWN+pa++s6MbmIgJ{NcXu#W;oyPp>B!8TPajeG(Zo?o((1(}M zjrY-kla`S`+R=n-QIESYGnMg=Nlal3M=U3QoQeTlj9&Dj3-_TN8_|L{(1?Z=LU z#*^s4YiLD%J^AA_)Z-G&OlJIJ5B$RDlf!WC%82DIQIG-3jCb&P*Z z;{-SP<6MlQ8$-AQ{df#Lcp06TLmN(BP5!tL4Y&@olNkS)!c!Q>CXC?7HRO*L^x;x; z<0f?Aezam7O?V6SICd@hn;8F?L>IuAPN>&YLdWA-rPA5*v)<9Glgcou`0K_8CW zK>j!z9k>#$=tmPCK|Nl?%pt}0U(g`@rCk25fW%P@#O^x;8t z<2iKTZM33s8~NiL)MGtn_A!5A5+fMHOBlxc7{E!}$sg_L!nJ6}U1-4*Xv7re_A-C& zAb*^S30#a(^kNA2p&uL3gE!ELh5-5FOf=(iG~gD@?qUAK6rRU8-oXft-%0*xLm#d} zH*QA<9z`oA(S#3Bk9E7qKgj%vN%UY0cVie&VgRq97xlZzAE%)mm!JhVq7g%w+s*um zX}pOE91|pev|6VhAVhCx4uW9$bx144@5hS<(wln@Qi5ZOHxG?$SYz*K^^r9bKcm(Zu5iNKRjc7VV{@WP; zn8r1jz?~SyD2DJV`f>PS^2aIYLLjE`h^;nOYt&D$6VgzG&3B!0F132j@`J)|OxEAfW3oUp8jhMn*1LOY~ z`Qubf;9`uT7elxY{n&^eyn#+M94CLAiDq1m2Hb+#EsTFm;dzYX9gN`kDEXreeYgtU zxE&pM6s?#<6Fxva)}0`KALAdB=)oB7#xS150A52c>Q9nCPD48`K?`m~BZe@&nemS~ zyom`MbBg@YiXmKqer!Mw9zy3C#y{HdE}C&djQnvfW*Zs*n8Fahtkry2i^)= zoN$i(aV}cXjV9cIdOU`ilk^`ZF^4gne4hMqAqH?AdNGJDJcV{_LJN*ekUv^5cY^-I zG;YEK?#C#`F@(3!k7F;8Kh8oYy3mGO(Ts=DfEO?urT;L66EBiK&cg_<#vlgJhsV*4 zSI~hE(Te6v@M>DQL1MbA^QRYuf;Z=;|@T=sHQ!t1Q^x+0{ z<6d;&X|!S*O*lG5{x}0O5#~=!q7P$u5W{#519%&~XuL-LI0x-mj~3j9MvP#N_v@E1 zjrTEulbXmM?HIzf=*L~?!4v4b!2F3e9C4leaVi>cF=i9YpP0gZ7{^A8;0+9-Ax-`` z6WzER9k>Op7)BGGM?K!b%z5U|8|05RjNvK_<8}<-QS@RGUHAa)Sa*~BaRD09gSm6e zpP0szn80foMg1-E$7$%tCFsG8=)@4(@C=&qCK_-|hWyVme_{$(U>qATf`>4O3H0Gz zbmN5Ea!3X?ZFYDSFWcy4yoOhqH> zi!sZ(7rm_SLo4fz7)^K7+(0w+4Wm0sVYbgiH`|wEn(bRK&UzT_Y(I~B*6*O7?c)s` z2lZ_jWBV%fv3)z{*nSjKtS8aM_6KNUy>1Ns$@T?kpuPtKY~PIzwx7fV+pl4Sb^Tb* z7u%;{2A80R?HkdFAvEI|wBb!O;Fxjbf1Q7wfGJ#yaomLwJb^(>p$|tG$sebp0~eze zy=cOHsK-XkG|_*UM8kOU$C(($6Fq3d-Dt*>XuxZjP0@cQ^2ccy$0ZoSjTpob`tS_8@g_QO%p~$h zE1GZx>ahVcS37DBVG*|V!2t44GpaXLoPi6PvKemsC4Jc~}upbf`OCx4uc23(0*{u!(vQ+Nd9co8Fb4})l$LH;-& z-M9uFxD%}yMH5~{Jr18q{uerGreG2s7{d)1#=RK8)9A%Cx^T3W{BZ_aa2XoWhq**Y z%|T4#IZWVfjG}QC`Qse)V?BCs8#*z9HoSypypIN)G@Ja-chuN1g=;a6yD)+$Fo-Gi z;fOipk5kcsi_wZ+G~qtfVyobf-O{Bat_aS29nBL*>q zK0JeNyonARV<&&Kq6t@^9vd)ohVhR{OkfP}Vi+eZAb*^TUUZ`icc2}Qp#?9a5p$Sp zWc)8Ae_V(OT!&E%VhB&6ADhsFBNvfBTF{0|(TtnWfcr6fn(>b*yoGTb>mYxeg+X+o z54WNl52FJwpcS)d!ikH?ALn5v#`wo11~7)lF^pF*fDh4&<|X8hi_nhi(Sm!>h%ro` zV*FzcM=d3PoQ_d+VhA^*9}l1h&!Te#@1M|yiu`dlhH)hZ(2rg`f-by>cD#ocG`Yzi z=VR_3^Dd@wCnhk8QM`&F9KM?TaSD3Sfll0jHr$J5JdFlSV>U~_uOWY&fpJ`h5%ggY z526pxp&M_b1C49RALpP6>rs!}FmsoF$0T0D7~aP)PV$gH+R=+^(S^IvjwjH9DKz4U zb>z?2#HL~z7h?jw7{z@U!bbGt4fLR4J^ABIwBd3z;}$ev7_+yTcQJ)`FplFlkU!cm zh^x?t+tH0j(Sb>{;sZ2cotOM^0cJAHyO_k?7{iko#%mZr{YLV~Y3RZwXvd9c!4Mkp z4CZ(rd=t|+W)u0N6{ENUL)d_RJcJ%hpmPjAx1tRvY$ku4iw1OK*1*rLn8ITi$IBSO z90qZ+kNj~Vx^W#kFo;$>g(hr5J&xQ${-gQ16_dCWW4H;!xE});M=#z&7mjTpf1HID zbfFQqVr~>aw_+MEU;?uk#fe+VALpSTSEC05=)~h_!z*aUhiE{vpZrJib1SBBJ;rel zMlgm!ypBE`wT=97Iy%saR@{sxJb-#Uiy1xhE+%o@cJjyB7{-+tKtFo%2)ghh+VLJ* z(6od6aX#jlug_r`mj=imQy9h7JINpKpdUBxB7e-G(@6jACVxDPX1ss~%wl#N{TC#E zoQH8-jS&oB5Ran|ub>+rq65u)$R8J>3D=_@_h4o${f9}sjxijym;7-$2GEIK+>9W=&!w)#?zR2UZFHdVApM7P z(1i7<$8DHlzY)x`ehE`}ALBSF%=tk(n)x|@EgIyX`_Xxd`4erJ!r)2f&qM4Vr=lAd zqXWHY#eHbPM%3dC%$#8UJk0)CpNT14j&aWwP=s~`RApO{>em&&T_a?r1 z@l6kW(*xi1z&AbcO%MD>^gy3-WiN$gichQS;=c5WdJtk=-K-Jo)#~m`2l0X+UjO^R)Ux{(io^C`bSJIWI%h zFPe+^@TZh=;y9a>)%^b}FTWJ~%RN+%zh3Q_hw8dGjwW^eJ$3tCbzMDtwblQ4?x^RZ z^`46hl}I<$KB}Lq4pAMhTBkZswO+MB^?+)lYLlwwZ#4PkY1Km2V%2V{eN;bJ9ilp1 zb(eacmDV(xcf0f7xc>B${zEHkhZc4%dabDVXC-eA&99dHYp3F(;?Dn735yE9#{x#f z5^(`FD_5Z5w*+m*`RTLG__rQizs;KAT9q{7I&T^OGmW@jTE_oeBd)WS@xRcB>$PS4 zKWW5u-7?N7Dr_E6UKjAc#uv63|F))1?eFHb3V3?Yyf)(uo|l@J6z%_&M$8+{w-(6X zOs^9o@9~xb{@3lgWLxp?YUW*OEB@D-E}6FC|3xF_r^l_!bH(=_%}Xug-`BJ?J_>kJ z)3Lu7Gs5E<1@dgr>N=FS7BD-uzCM-sbDCpqmKU?<R=JiSLmU}8~#p-i)Tuds`1a?SK{JX4*bF;-_PCNPwGV( z@ur?i`K`)sG=Ih$GC8kqA1HA#Z~QnPfAT)^Q?-0kC#Af2?nZaw9e7$@>v^?zKK_G8 z*LlA4`AdFontZ+vsN-GCy0xPH50&=CvpLLayj!b$U243(uTuVRdMJC?r^X9^t|Xd& zE)AP*s_}*%N<9CZ7vkTey4(+Sqm=sMxmxn+lj9AYmG+a$X3b};c4*_iFhngs?^jBB z@jR3XYP_zO5*PipQjIsftHi~5399iSZ?=q|V^w~}V(aC0KF;+yPT3+qr%PV`lH28X z<@0M-*2Vk%7xQr?*8K0gz4-v~x&pr(Qjt{IjU2 z6IbIy)VO$VRZ~0dJkJHwRzLiocH*PkiOuJM9$kd_B28`>6SfpQoM@akc&Y^Q>s6Fdvs&Zn^wIE&sIIj`;cMAKEFe zQ_B}ODDC8*-^I(?cFK=wCq74Qr%AmY)Z3jsw&>G`EbTQju3wwLye*I$3_b!~Cc8zm*3 z>7RbJy}M|&6;&0L6}3f!YOAzEsw=)M>eTL*l6JQgYd9_10lM1qiki}z8r|UjgNBjM zpmGtf)(xnrsnu22)Rxxj9&ahD);(HpeZIPP>iOm4qbgP^l~vc))DHdPi=r}3xlS~y ztsSf_8&p-PtI=q+S3BMs!Ip!wB!7qzxBf9NnLDwK^^Tzr6OHp_OHFDY=hpsY-(|6;+iVm-Zi| ztC4plpW8Ne*tfkMzVTL%9$Iy*JyEYKiFQ$sK>5miqQskh`u2RM*QZ<@8f}mN_2F9|^y<#}`S^qG>h;>=H$~OD zFN(C<0cB;{Aq>*0%F;mB>q64eDQ7_B(lh zfBYQNRr`UqbjT20Ww|`pwA^!1CuaOME(#8>dv^})wW1PnaD#O)C4wx*K%WM%Ca+OmPa zd%UgLnHs1o<>r(>{F1JZ4!>#uQ-0e=uiiYhUsjass`8y6_ldmwvLVAB?}D4QT9P|c z{-ttLDlPxAw6aWeKK=N0MXQ4r)pP@tdydkV9AWvOK3}#-JKt6be7jA%cr{Ho^Rx>gsU+6(Hns`h~zRL)t;SboF}e$-c7jGe{VtQuOYt@=V+ zU0OLnr~P7ZEf?g!wCKm8PWidBUu~C)sv0f#dtK*V%+2zhuSK~(E%B0KGOyMR8N~P} z_clkaoS5?dO5Vr&fBe+YnPIHV3Qu;fw%5lWXdk}=<6a`a|H|KRHQG-qzoMqLudZh3 zVEGi}CkwSZ{@C|G^8BP^(X($GCs|IiT*pOSCBH`-Fu1BxzQ(F+<#%E7A&LvI#R00P z{7W&4@)J;h&XaO7TAr~UPn+`pzq!~65WgL&iJ{O7el@wNQ>4t^!W@5Gcv ze10Y@RO15m$A7V^kw3p^UVoR`knrV4C6yQa+Ooy+7Hb(kV-@=spT`N;tEEM~*86{- z?fgjn`1tvKue^xQpX=3%{F;#8@9{ijc_WMXJh&gPHL+v45{ukM^W`5| zkv~Hg^~L9a!g95+XhxJ14rIIhnY36JpBD-bsP*OJmyc5%zZ%wj#S6J@QGYlet;mZ| zd=4)5FY1f@M^IMY_O@J!MST7!ls^ZN7rBgFr*-}D#N<9veyhogLjK50VgBz&|Gq$3 zQ`!-)WexmkUcazVj#9lak7kIxvDqSiuO^(#w&wN4=bl1QPBbCbh1OQ}#pk2K&;P*w z7qqG`KGzcd>u=@J@puvY6_KU9Xny?S^H!nw_Zy~x<(Q&4_wp{X5i`V~>u%n^NMKTEBI9`B~HU6SR+4Dek0LlMF#y|5%9FLg))fOTGjl2naN%k literal 0 HcmV?d00001 diff --git a/libHawk/MSXHawk/MSXHawk/AY_3_8910.h b/libHawk/MSXHawk/MSXHawk/AY_3_8910.h index 20e5293987..accfa0820c 100644 --- a/libHawk/MSXHawk/MSXHawk/AY_3_8910.h +++ b/libHawk/MSXHawk/MSXHawk/AY_3_8910.h @@ -1,3 +1,6 @@ +#ifndef AY38910_H +#define AY38910_H + #include #include #include @@ -429,4 +432,6 @@ namespace MSXHawk #pragma endregion }; -} \ No newline at end of file +} + +#endif diff --git a/libHawk/MSXHawk/MSXHawk/Core.h b/libHawk/MSXHawk/MSXHawk/Core.h index 4b7c0648da..566caee026 100644 --- a/libHawk/MSXHawk/MSXHawk/Core.h +++ b/libHawk/MSXHawk/MSXHawk/Core.h @@ -1,7 +1,11 @@ +#ifndef CORE_H +#define CORE_H + #include #include #include #include +#include #include "Z80A.h" #include "AY_3_8910.h" @@ -203,7 +207,7 @@ namespace MSXHawk uint32_t* src = vdp.FrameBuffer; uint32_t* dst = dest; - std::memcpy(dst, src, sizeof uint32_t * 256 * 192); + std::memcpy(dst, src, sizeof (uint32_t) * 256 * 192); } uint32_t GetAudio(int32_t* dest, int32_t* n_samp) @@ -211,7 +215,7 @@ namespace MSXHawk int32_t* src = samples; int32_t* dst = dest; - std::memcpy(dst, src, sizeof int32_t * num_samples * 2); + std::memcpy(dst, src, sizeof (int32_t) * num_samples * 2); n_samp[0] = num_samples; return sampleclock; @@ -225,7 +229,7 @@ namespace MSXHawk // the copy length l must be supplied ahead of time from GetMessageLength void GetMessage(char* h, int l) { - memcpy(h, MemMap.Mem_text_1.c_str(), l); + std::memcpy(h, MemMap.Mem_text_1.c_str(), l); } #pragma region State Save / Load @@ -305,7 +309,7 @@ namespace MSXHawk void GetHeader(char* h, int l) { - memcpy(h, cpu.TraceHeader, l); + std::memcpy(h, cpu.TraceHeader, l); } // the copy length l must be supplied ahead of time from GetRegStrngLength @@ -313,11 +317,11 @@ namespace MSXHawk { if (t == 0) { - memcpy(r, cpu.CPURegisterState().c_str(), l); + std::memcpy(r, cpu.CPURegisterState().c_str(), l); } else { - memcpy(r, cpu.No_Reg, l); + std::memcpy(r, cpu.No_Reg, l); } } @@ -326,15 +330,15 @@ namespace MSXHawk { if (t == 0) { - memcpy(d, cpu.CPUDisassembly().c_str(), l); + std::memcpy(d, cpu.CPUDisassembly().c_str(), l); } else if (t == 1) { - memcpy(d, cpu.NMI_event, l); + std::memcpy(d, cpu.NMI_event, l); } else { - memcpy(d, cpu.IRQ_event, l); + std::memcpy(d, cpu.IRQ_event, l); } } @@ -342,3 +346,4 @@ namespace MSXHawk }; } +#endif diff --git a/libHawk/MSXHawk/MSXHawk/MSXHawk.h b/libHawk/MSXHawk/MSXHawk/MSXHawk.h index 37cb5e0c27..1f8f65ca05 100644 --- a/libHawk/MSXHawk/MSXHawk/MSXHawk.h +++ b/libHawk/MSXHawk/MSXHawk/MSXHawk.h @@ -1,5 +1,10 @@ -#ifdef _WIN32 +#ifndef MSXHAWK_H +#define MSXHAWK_H + +#ifdef _WIN32 // msvc garbage needs this #define MSXHawk_EXPORT extern "C" __declspec(dllexport) -#elif __linux__ -#define MSXHawk_EXPORT extern "C" +#else +#define MSXHawk_EXPORT extern "C" __attribute__((visibility("default"))) +#endif + #endif diff --git a/libHawk/MSXHawk/MSXHawk/Memory.h b/libHawk/MSXHawk/MSXHawk/Memory.h index bcd18ef9c7..aa21d4d873 100644 --- a/libHawk/MSXHawk/MSXHawk/Memory.h +++ b/libHawk/MSXHawk/MSXHawk/Memory.h @@ -1,7 +1,11 @@ +#ifndef MEMORY_H +#define MEMORY_H + #include #include #include #include +#include using namespace std; @@ -85,8 +89,8 @@ namespace MSXHawk bios_rom = new uint8_t[0x4000]; basic_rom = new uint8_t[0x4000]; - memcpy(bios_rom, bios, 0x4000); - memcpy(basic_rom, basic, 0x4000); + std::memcpy(bios_rom, bios, 0x4000); + std::memcpy(basic_rom, basic, 0x4000); } void Load_ROM(uint8_t* ext_rom_1, uint32_t ext_rom_size_1, uint32_t ext_rom_mapper_1, uint8_t* ext_rom_2, uint32_t ext_rom_size_2, uint32_t ext_rom_mapper_2) @@ -94,8 +98,8 @@ namespace MSXHawk rom_1 = new uint8_t[ext_rom_size_1]; rom_2 = new uint8_t[ext_rom_size_2]; - memcpy(rom_1, ext_rom_1, ext_rom_size_1); - memcpy(rom_2, ext_rom_2, ext_rom_size_2); + std::memcpy(rom_1, ext_rom_1, ext_rom_size_1); + std::memcpy(rom_2, ext_rom_2, ext_rom_size_2); rom_mapper_1 = ext_rom_mapper_1; rom_mapper_2 = ext_rom_mapper_2; @@ -236,4 +240,6 @@ namespace MSXHawk #pragma endregion }; -} \ No newline at end of file +} + +#endif diff --git a/libHawk/MSXHawk/MSXHawk/SCC.h b/libHawk/MSXHawk/MSXHawk/SCC.h index 019f074907..7eaa8e9997 100644 --- a/libHawk/MSXHawk/MSXHawk/SCC.h +++ b/libHawk/MSXHawk/MSXHawk/SCC.h @@ -1,7 +1,11 @@ +#ifndef SCC_H +#define SCC_H + #include #include #include #include +#include using namespace std; @@ -325,3 +329,5 @@ namespace MSXHawk #pragma endregion }; } + +#endif diff --git a/libHawk/MSXHawk/MSXHawk/TMS9918A.h b/libHawk/MSXHawk/MSXHawk/TMS9918A.h index c31b76be4a..0a65065d4d 100644 --- a/libHawk/MSXHawk/MSXHawk/TMS9918A.h +++ b/libHawk/MSXHawk/MSXHawk/TMS9918A.h @@ -2,6 +2,7 @@ #include #include #include +#include using namespace std; diff --git a/libHawk/MSXHawk/MSXHawk/Z80A.h b/libHawk/MSXHawk/MSXHawk/Z80A.h index 798c0694e1..9c5bed2ff6 100644 --- a/libHawk/MSXHawk/MSXHawk/Z80A.h +++ b/libHawk/MSXHawk/MSXHawk/Z80A.h @@ -1,7 +1,15 @@ +#ifndef Z80A_H +#define Z80A_H + #include #include #include #include +#include + +#ifndef _WIN32 +#define sprintf_s snprintf +#endif using namespace std; @@ -5585,3 +5593,5 @@ namespace MSXHawk #pragma endregion }; } + +#endif diff --git a/libHawk/MSXHawk/MSXHawk/pch.cpp b/libHawk/MSXHawk/MSXHawk/pch.cpp index 64b7eef6d6..70396b4dfd 100644 --- a/libHawk/MSXHawk/MSXHawk/pch.cpp +++ b/libHawk/MSXHawk/MSXHawk/pch.cpp @@ -1,5 +1,7 @@ // pch.cpp: source file corresponding to the pre-compiled header +#ifdef _WIN32 #include "pch.h" +#endif // When you are using pre-compiled headers, this source file is necessary for compilation to succeed. diff --git a/libHawk/MSXHawk/Makefile b/libHawk/MSXHawk/Makefile new file mode 100644 index 0000000000..4f5d5d1548 --- /dev/null +++ b/libHawk/MSXHawk/Makefile @@ -0,0 +1,11 @@ +CXX = g++ + +CFLAGS = -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-value -Wno-type-limits -O3 -flto -fvisibility=internal +LFLAGS = -shared + +SRCS = $(wildcard MSXHawk/*.cpp) + +all: libmsxhawk + +libmsxhawk: $(SRCS) + $(CXX) $(CFLAGS) $(SRCS) -o ../../Assets/dll/libMSXHawk.so $(LFLAGS) diff --git a/src/BizHawk.Emulation.Cores/Computers/MSX/LibMSX.cs b/src/BizHawk.Emulation.Cores/Computers/MSX/LibMSX.cs index 76aa01f1cf..43681cc205 100644 --- a/src/BizHawk.Emulation.Cores/Computers/MSX/LibMSX.cs +++ b/src/BizHawk.Emulation.Cores/Computers/MSX/LibMSX.cs @@ -1,193 +1,196 @@ -using System; -using System.Runtime.InteropServices; -using System.Text; - -namespace BizHawk.Emulation.Cores.Computers.MSX -{ - /// - /// static bindings into MSXHawk.dll - /// - public static class LibMSX - { - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr MSX_create(); - - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_destroy(IntPtr core); - - /// - /// Load BIOS and BASIC image. each must be 16K in size - /// - /// opaque state pointer - /// the rom data, can be disposed of once this function returns - /// length of romdata in bytes - /// 0 on success, negative value on failure. - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_load_bios(IntPtr core, byte[] bios, byte[] basic); - - /// - /// Load ROM image. - /// - /// opaque state pointer - /// the rom data, can be disposed of once this function returns - /// length of romdata in bytes - /// Mapper number to load core with - /// the rom data, can be disposed of once this function returns - /// length of romdata in bytes - /// Mapper number to load core with - /// 0 on success, negative value on failure. - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_load(IntPtr core, byte[] romdata_1, uint length_1, int mapper_1, byte[] romdata_2, uint length_2, int mapper_2); - - /// - /// Advance a frame and send controller data. - /// - /// opaque state pointer - /// controller data for player 1 - /// controller data for player 2 - /// length of romdata in bytes - /// Mapper number to load core with - /// 0 on success, negative value on failure. - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern bool MSX_frame_advance(IntPtr core, byte ctrl1, byte ctrl2, byte[] kbrows, bool render, bool sound); - - /// - /// Get Video data - /// - /// opaque state pointer - /// where to send video to - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_get_video(IntPtr core, int[] videobuf); - - /// - /// Get Video data - /// - /// opaque state pointer - /// where to send left audio to - /// number of left samples - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern uint MSX_get_audio(IntPtr core, int[] aud_buf, ref uint n_samp); - - /// - /// get messages length - /// - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_getmessagelength(IntPtr core); - - /// - /// get messages from the core - /// - /// opaque state pointer - /// pointer to const char * - /// length of message to fetch - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_getmessage(IntPtr core, StringBuilder h, int l); - - /// - /// Save State - /// - /// opaque state pointer - /// save buffer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_save_state(IntPtr core, byte[] saver); - - /// - /// Load State - /// - /// opaque state pointer - /// load buffer - [DllImport("MSXHAWK.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_load_state(IntPtr core, byte[] loader); - - /// - /// Read the system bus - /// - /// opaque state pointer - /// system bus address - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern byte MSX_getsysbus(IntPtr core, int addr); - - /// - /// Read the VRAM - /// - /// opaque state pointer - /// vram address - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern byte MSX_getvram(IntPtr core, int addr); - - /// - /// Read the RAM - /// - /// opaque state pointer - /// ram address - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern byte MSX_getram(IntPtr core, int addr); - - /// - /// type of the cpu trace callback - /// - /// type of event - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void TraceCallback(int t); - - /// - /// set a callback for trace logging - /// - /// opaque state pointer - /// null to clear - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_settracecallback(IntPtr core, TraceCallback callback); - - /// - /// get the trace logger header length - /// - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_getheaderlength(IntPtr core); - - /// - /// get the trace logger disassembly length, a constant - /// - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_getdisasmlength(IntPtr core); - - /// - /// get the trace logger register string length, a constant - /// - /// opaque state pointer - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern int MSX_getregstringlength(IntPtr core); - - /// - /// get the trace logger header - /// - /// opaque state pointer - /// pointer to const char * - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_getheader(IntPtr core, StringBuilder h, int l); - - /// - /// get the register state from the cpu - /// - /// opaque state pointer - /// pointer to const char * - /// call type - /// copy length, must be obtained from appropriate get legnth function - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_getregisterstate(IntPtr core, StringBuilder h, int t, int l); - - /// - /// get the register state from the cpu - /// - /// opaque state pointer - /// pointer to const char * - /// call type - /// copy length, must be obtained from appropriate get legnth function - [DllImport("MSXHawk.dll", CallingConvention = CallingConvention.Cdecl)] - public static extern void MSX_getdisassembly(IntPtr core, StringBuilder h, int t, int l); - } -} +using System; +using System.Runtime.InteropServices; +using System.Text; + +namespace BizHawk.Emulation.Cores.Computers.MSX +{ + /// + /// static bindings into MSXHawk.dll + /// + public static class LibMSX + { + private const string lib = "MSXHawk"; + private const CallingConvention cc = CallingConvention.Cdecl; + + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern IntPtr MSX_create(); + + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_destroy(IntPtr core); + + /// + /// Load BIOS and BASIC image. each must be 16K in size + /// + /// opaque state pointer + /// the rom data, can be disposed of once this function returns + /// length of romdata in bytes + /// 0 on success, negative value on failure. + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_load_bios(IntPtr core, byte[] bios, byte[] basic); + + /// + /// Load ROM image. + /// + /// opaque state pointer + /// the rom data, can be disposed of once this function returns + /// length of romdata in bytes + /// Mapper number to load core with + /// the rom data, can be disposed of once this function returns + /// length of romdata in bytes + /// Mapper number to load core with + /// 0 on success, negative value on failure. + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_load(IntPtr core, byte[] romdata_1, uint length_1, int mapper_1, byte[] romdata_2, uint length_2, int mapper_2); + + /// + /// Advance a frame and send controller data. + /// + /// opaque state pointer + /// controller data for player 1 + /// controller data for player 2 + /// length of romdata in bytes + /// Mapper number to load core with + /// 0 on success, negative value on failure. + [DllImport(lib, CallingConvention = cc)] + public static extern bool MSX_frame_advance(IntPtr core, byte ctrl1, byte ctrl2, byte[] kbrows, bool render, bool sound); + + /// + /// Get Video data + /// + /// opaque state pointer + /// where to send video to + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_get_video(IntPtr core, int[] videobuf); + + /// + /// Get Video data + /// + /// opaque state pointer + /// where to send left audio to + /// number of left samples + [DllImport(lib, CallingConvention = cc)] + public static extern uint MSX_get_audio(IntPtr core, int[] aud_buf, ref uint n_samp); + + /// + /// get messages length + /// + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_getmessagelength(IntPtr core); + + /// + /// get messages from the core + /// + /// opaque state pointer + /// pointer to const char * + /// length of message to fetch + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_getmessage(IntPtr core, StringBuilder h, int l); + + /// + /// Save State + /// + /// opaque state pointer + /// save buffer + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_save_state(IntPtr core, byte[] saver); + + /// + /// Load State + /// + /// opaque state pointer + /// load buffer + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_load_state(IntPtr core, byte[] loader); + + /// + /// Read the system bus + /// + /// opaque state pointer + /// system bus address + [DllImport(lib, CallingConvention = cc)] + public static extern byte MSX_getsysbus(IntPtr core, int addr); + + /// + /// Read the VRAM + /// + /// opaque state pointer + /// vram address + [DllImport(lib, CallingConvention = cc)] + public static extern byte MSX_getvram(IntPtr core, int addr); + + /// + /// Read the RAM + /// + /// opaque state pointer + /// ram address + [DllImport(lib, CallingConvention = cc)] + public static extern byte MSX_getram(IntPtr core, int addr); + + /// + /// type of the cpu trace callback + /// + /// type of event + [UnmanagedFunctionPointer(cc)] + public delegate void TraceCallback(int t); + + /// + /// set a callback for trace logging + /// + /// opaque state pointer + /// null to clear + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_settracecallback(IntPtr core, TraceCallback callback); + + /// + /// get the trace logger header length + /// + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_getheaderlength(IntPtr core); + + /// + /// get the trace logger disassembly length, a constant + /// + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_getdisasmlength(IntPtr core); + + /// + /// get the trace logger register string length, a constant + /// + /// opaque state pointer + [DllImport(lib, CallingConvention = cc)] + public static extern int MSX_getregstringlength(IntPtr core); + + /// + /// get the trace logger header + /// + /// opaque state pointer + /// pointer to const char * + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_getheader(IntPtr core, StringBuilder h, int l); + + /// + /// get the register state from the cpu + /// + /// opaque state pointer + /// pointer to const char * + /// call type + /// copy length, must be obtained from appropriate get legnth function + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_getregisterstate(IntPtr core, StringBuilder h, int t, int l); + + /// + /// get the register state from the cpu + /// + /// opaque state pointer + /// pointer to const char * + /// call type + /// copy length, must be obtained from appropriate get legnth function + [DllImport(lib, CallingConvention = cc)] + public static extern void MSX_getdisassembly(IntPtr core, StringBuilder h, int t, int l); + } +}