From a00e8690fd6eacc64285f0611cc983ba5de9d4cf Mon Sep 17 00:00:00 2001 From: Masashi Date: Sat, 20 Dec 2025 03:18:31 +0530 Subject: [PATCH] unsafe --- src/codegen/transpiler.rs | 10 +++++++++- tests/structs.c | 29 ++++++----------------------- tests/structs.o | Bin 45488 -> 75936 bytes 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/codegen/transpiler.rs b/src/codegen/transpiler.rs index 79772fe..ec2a448 100644 --- a/src/codegen/transpiler.rs +++ b/src/codegen/transpiler.rs @@ -337,6 +337,10 @@ impl Transpiler { } fn generate_struct_decl(&self, struct_decl: &CStructDecl) -> String { + // Skip predefined structs that are already declared in included headers + if matches!(struct_decl.name.as_str(), "Shader" | "Color") { + return String::new(); + } let mut output = format!("struct {} {{\n", struct_decl.name); for field in &struct_decl.fields { output.push_str(&format!(" {} {};\n", field.ty.to_string(), field.name)); @@ -346,6 +350,10 @@ impl Transpiler { } fn generate_typeinfo_decl(&self, struct_decl: &CStructDecl) -> String { + // Skip predefined structs + if matches!(struct_decl.name.as_str(), "Shader" | "Color") { + return String::new(); + } if let Some(bitmap) = self.typeinfo_map.get(&struct_decl.name) { // Generate pointer bitmap as a C array let bitmap_str = bitmap @@ -796,7 +804,7 @@ impl Transpiler { "Vec3" => "suic_vec3".to_string(), _ => format!("struct {}", struct_name), }; - format!("({}){{ {} }}", c_type_name, field_inits.join(", ")) + format!("suic_alloc_struct(&sui_typeinfo_{}, sizeof({}), &(({}){{ {} }}))", struct_name, c_type_name, c_type_name, field_inits.join(", ")) } CExpr::EnumLit(enum_name, variant_name, args) => { // Find the variant index - for simplicity, assume variants are in order diff --git a/tests/structs.c b/tests/structs.c index 16bda91..5f9a149 100644 --- a/tests/structs.c +++ b/tests/structs.c @@ -31,15 +31,8 @@ struct Person { char* name; int age; }; -struct Color { - uint8_t r; - uint8_t g; - uint8_t b; - uint8_t a; -}; -struct Shader { - int id; -}; +; +; static const uint8_t sui_bitmap_Point[] = { 0, 0 }; static const TypeInfo sui_typeinfo_Point = { @@ -53,25 +46,15 @@ static const TypeInfo sui_typeinfo_Person = { .pointer_count = 1, .pointer_bitmap = sui_bitmap_Person }; -static const uint8_t sui_bitmap_Color[] = { 0, 0, 0, 0 }; -static const TypeInfo sui_typeinfo_Color = { - .field_count = 4, - .pointer_count = 0, - .pointer_bitmap = sui_bitmap_Color -}; -static const uint8_t sui_bitmap_Shader[] = { 0 }; -static const TypeInfo sui_typeinfo_Shader = { - .field_count = 1, - .pointer_count = 0, - .pointer_bitmap = sui_bitmap_Shader -}; + + int suic_main(void); int suic_main(void) { - struct Point* p = (struct Point){ .x = 5, .y = 10 }; - struct Person* person = (struct Person){ .name = suic_alloc_array(NULL, sizeof(char), 6, "Alice"), .age = 30 }; + struct Point* p = suic_alloc_struct(&sui_typeinfo_Point, sizeof(struct Point), &((struct Point){ .x = 5, .y = 10 })); + struct Person* person = suic_alloc_struct(&sui_typeinfo_Person, sizeof(struct Person), &((struct Person){ .name = suic_alloc_array(NULL, sizeof(char), 6, "Alice"), .age = 30 })); int _ = ((*p).x + (*person).age); return 0; } diff --git a/tests/structs.o b/tests/structs.o index 13e75a4d04c0605447165bb5dbd853e2a8485c53..81c4f34053f523ca95404b32640eff07fe7270d7 100755 GIT binary patch literal 75936 zcmeFa3wTu3)joa_5(wUAKv1ewqeTrW8W1Tc>Tnqtm1qQlh#-VqAR3aGOt@IkNQh<} zqp6DJ^U|hPZM3#ctzx8J21F9A)@ZG!7Hg{1&KT6FRHLQl|Gs;#b7s$wL+#h^d%oxQ z{29%xv);A#+H0?U-{+j+I{&O0sVOOz{TX1LYmw{vu10(!=*o=i_^gT6VV2K2);h)- z2zeU*Y`tXa9RMLdHqFqiMVRRx6L~TnDS9@wb0=jww@>3JEwQQP)jZRs^D|y;T{4w$S~g`K{E+f*Z3nr1X{JKqr%*fHoWBMOd7bQ^ z&HF^(rnaBClCDYOpG@aUJZ);{cL~yoNG$K4ctt#0@^h=dMyUsz+U=A1X5)`-ZRSOJ zR%(qEA!f@{tQ5r$2F6dS@V1<~!|=!IVEQRXwtnaKRqG~y^v^?o^x$1jtlg2i`sLG0 zOO{R;e|l-*n9`E6>eXXbPn`V z;Zk1q)BgP2;Nt&$7k?gcvGa_JpA%g4OI+~PF8+MSrGD4DSF&(7dxN0 z;KN<~sc?w{CyD;byV%A4p)PiQ=A!?e3qH}MeouDspYvaTes;O|Kib95M_us4T-s-! zi~Z+Z{JGzyya&0I_a+zoIT!pD7ytk6;?Hasf4nYuiA%meaKVprvD4(DzrjWSV;B8A zm-yfA(vQZt=nrzK->Y2w$#k*vsY||Bx!@PM;KN<=&2hnJxWs3Mi~VjF|7%?A_+0WG z=Yr?Cw8KMP@?Gm<=VF(3+v!rSw_N<^dO8z-$)Cqv^sjO8bB_ytw2S{cUE+}Hf?w+5 z58!_NKh*_))y0nGg1-+t{f(b~m-us0-=F?jF6G+g5}$Q0_V0!M5bG!_bC0eud;euE zUc78YdD-HsV18wA@nUQ7`Ezp?7Zz0(Ei0)C7FEv8nO0g}Rx~$%X=#y`^(&cPnZIgA z?i_0>l9lC@7Z#l{-9o~uqAAsdCFRqLR+bbLS?5<>ShOa$vZ$)6sL;wQD=p72Jby+0 zG76?uS5}o*21*JGi^{+nsb&}D7p}2#it?+fD~sk9tqww*Q(j$FG_^VyEH9f~R0)I23Mw+R3)WUaiV2j zAZ{}%%U9@7!;5Ld1+}$6)IwC`Rc?Fs-PFnEGl0C z&8g*RTZPJe`owFDj4vhV%9Okwb&{tQ;bbDC>pjVnz1eC zWmQ>4B?4S*RTTxR$_uV4uLxrF!@yT?)#8HXS1m5iFDbQ((M0)`UucyD%a>PK%Zh^e zg@s61Ty8BzueMectyodMvdCJF;YW#sXx`<;g=o(eh=^5OUV%Z3859LA$}BXIQb5&J zrA26DRYfpTSyZqRU-_k_n2#4GYkU?hlrAc_BP5Se?JP zxTGwrXzjSCc3yECroFgyUytK9bWWJEk!PB9A=Uu)IpwgDl0$jgm?zjB-@g-AY1U%l zA5;7Q>q_CPk1D~@W2#jRo*(;M+Mee-CTe`OoIBfijo|f3cv_3r-;{(86uj#*Ew}C1 zeB@(|(~V4hslM9{TvfWrIt;wr(C;+xRR-Q=;5^&1KlZu?%N%u1YU5Uqz8VCArJD1} zFmT4-{&)=>OE2d$!oaa)bv~H}&b;kUmVrx^C{eb7(hZYP6Ia&>bng5 z+lGGBz>hKT9s@ttz1fj1iXcmv;L;1dkI$-w2-u97wzxD4?MZ!z#mhMiUeKg+-)27b1I zw;T9m1Me{Ka}2!Gz|S@CE(1T$z@rB4Gw>b*pJL#>20qomtxq+>_CL+QGYovXfqMLg#C#a_~kYT+HT+r4ZOp^7a4e`fnQ~6kGjN{y+Mj@d zm)am`u7R&G@c9N_X5dQuxz=H-}Z{XDi-e}+}4SbV< zuQBi@1HZ<=n+^PX2Hs-eYYn{Bz}Fdg#K5mL@OA^g&cHhiyvD!}TpozPfe0Lkz<~%H zh`@me9EiYy2povOfe8HXMc^~fF<%90cV`5`=`TEs-$kBB;jtRU-$tI>(pZJ!Zz7*Teu?7Oljo6lELZW@kmpf%%%}KD@;u^>Wh?$l z@;us(Wh#Ctc^+xUyoz5yo=4d+OYyVG^9VcE^EH4IE+FqE-=+AeKX7nYL597|0#JMF~_nM{{eX(Eypqy|1SA&llLnAE%L{Zw-o;x`D4lV{FCK> zk$fikF2!#n&!gm6hvK)8=Mi!&qWDM2e}{aF;vXi@BjZ?;;_oBRqvBYj;_o8QBjQ+% z;%_5=68Q?n-$Xu({1U~lCqJ5euHvsD&m-WNPw|!HdGs60R{WLZdE^_*RQyu%JnD^k z6~BNyk9cF2;%AfR(Qd3~ud09YJkpJIDSj&XvE(}xe-`<1C`Gs#yd{wDGP@=FxI zp8Waba}|FL`3uPV6kkc6N20N8#a~IDN1?Gy#V;k#BhZ*v@e9cF=rd+1el~d?dB%Fa zQuR-sN1d@Q#ZM*ABhFZd;?E*Kn|ws^@;su9d1M%?Q2b5gIRV9%D1JTp67soVl|2%N`4jj3dJ8pel__e zicclaqrO8~)rA zmbIt&G|#ackOT{WhI77zfj~q0rzDelgTt{jco0fl8Vv61@*G=3z2}5N{{^Lg<~EYi zUk5@xfvq2%7uec6Ads>n@aosWVK7iF1~U4(iap1o_uJ{|U(Gr9BCS<@MqZ%yoRgtx z1wwxf9vTRrb1v|{;UfS=3lRGq=|KP~i=K=73p+lmIL^~vY#DU(U;_)A>_BK;G!Uxp z3WV}H1EHLbK-k|E@chybW*e>{dm|8Pi{5|{IS}&q25Q%JSixfxwN$F!Ko<#VUYB9^^tjnhD|lo;Npm`xUd;UijV!^OuP_i!JAo4%{TUl+^LKJ})aKuL z5U~b$-f-yizovNGGZ{+lmFU$dG1S{pZ{yH*0->#2xP*F!>oTkl5Wn4+%%RcM=8ql& z9(KB5r$Ov+JrfAM5*@AWFiP!VFTOj%zKoQPkbiqCt-$}@!oVrRlzYMS=(&i66Nk*u zy4{R)G#iDEo(4-H|K8|(n5x45y;`d{;JG&9$=XUsKJyImM?dp;^Kj+O*@Z8%L-O|E zE2o#zy~rP&*T2`3)sCcPkwrS@sM0q7UOLo07q$Zh9f43sASDt==?HA?8o-)uNMHIS z{Y^^^O!7yoN4u(B2sLP-ai>G4dswZ1Z%R1*fu(8IB>&#EKW;@a`Xt-h-I=O2)vk+L z)q_+(y3d4G$gRwPH0_kqu36op9K}w z#{%K>({SBA2+7wYxoEVd4+F}NqzSFt3y(wT!vWi7YIl19hpN%K@_JBPJ>i^QD*X-( zcgPogebI%O(>$9abrH|TNNrCFE^E6|bmc_77%#+7bUgH&V$&wAv_(IpidKI%6Rt#0 zMf0`OSja%9DfYbK@7jYEYIZ(YNxLI`Dj1uKKKOUXs%LY0 z7DO8&!QtWIC*mrcJ`&%dH{i{6$UOSi=Z-G=yLU>cH}nOhFHR3_tcMsj5sz1UjRYa7*>t`Z=JFl41{}Qj5 z+z;=)Ds%tqyrLmpm?mEBBXg*5Iad%NC z%H{<>0{l+!yTFeGKPu`&d&5pOyAh~#spviNHVmsiX0jV!IZ=G&?ZVe0UsG4wfZ+P8a=GB={ z9sj#|%}OX2+PR7%+(EzX)k~8nKS`WqS#s6p^eFcVTWn8#9)iBDJ}(;jsy=VmP5vGf zd$%ffG@;lCf>Z2us?2DQ+loD9ZJ7O^?J=wLf4AVZADel_XPDo7Xp}Y%Pyei6ILC}l zT>FOpjV%7OUnA`w*)WI55z!IIOAX4H%F(C296Zp^i#^xA7*LZq*93v%Is=0{0-@&s zN3iP1485iKK&VrV?eRfLTdhRq|C3guSK9_rd$KZ$F0wJKzcUT|?}(Gi+`#@~V~M&5 zfmc>n&tA$Ye)R6XK1{!9wK;oJp5;bAdSo0)eU@9>XnGt;dlt)kEBaZtlPUvi2U#=Z zVL=-0ga``{y;RW4h$8snK+*5A9cpp(XydvZxd@zwg4!yr@oPFSW3OIB>LHiouAd7b zPu8nkOCn&=+Y%e#KBOrbJe&rbHF={&|E`~qxA<&1;i@B>hlC*%wQXBJFUPN{p zAD}?!+#Oi!`8*qUU{-5aY?%9#ltAbbPV-%X&=fCdyRW_i6Q7@}ZoMhMs+;YVGH38r z!-iUO2B%Wlv)MNSH8ug!;4F&e=-*tbNS&CvSQ-YJUS2A7@kaC<{}RLT?f_vq4eqBLBxB$VbWqz2aM zlt$&6l%r>}KMTuM6ly4Si#;DlJVPujGkxCfg@Fca?^sk-%)dYZq02*w?PzAIXokLs zeuO$_QUCki&Pw(cFP@DewZD3ju%^&pwcxy){JU`3rG|P;pvIcE(-`WjqhV~$oEW`}R)H8TLW~Xygcf9k zb2390cthKwFMpstYK)Iw(KS)5vI|je>3Uy6N4g$8osR%CqmeY3RTdo^L9=f`H8e>h z`3bC`)!U6kEn6X9)EZyyMZls1*{eOauiQ+;v>DAN3p8qWg6G(3A&WaoXEM-GCL;W2 zOIfo5A+$uhtQoSbgwaKiI2obEfp52?Mw279)gjv^^E(2&;{&v*YVA_v>2MX%fW7N74a z!&d0cX!H9{<|`WELD3!fTC@pYdH3KerwL#F`w^0QR3#e{>5??L;6_6sxrfLFW2+D! z2djium%||lkKJ<>e#UXyW=+ESp z@^cig?kASTs}^3J%B#nCmCdVGUXAC~Q@onUE0x=1UTw#4h#Pnu@i`PCqIu|J_D~p6 zL!l!@`^eiAm!h+BQureJ*IhcK7+N}zNA>IYTG5Fw?wq{bLwUKIvX@2-NxdDl3OlmP z?Z_^%BRk*L$z^0&4FS$>yzq_0MZ(1J7j_s3^~4ZPAA3ofRTruDM5A!7E&UjL_ zD4ae-$%CHgd~|}g^sjRhPD`TiVgR!1Yc~pMkJ|LDmj`>_|EoEhqd%?d{S@)+!BH@wALZ^JQ}!ucLWV25PEt!7VL8*~D19SsD+8)+}lP*(wh>VIpWW^nDhly9Uw5U!&a zG8>-2_Q7JAQ(6z&wNumm#U38~tA;lcIXX5N^W-*+;xFoip*()=Yi-{$Y%#sk?Jrc_ zqZ{(!c0-n8UD0JWpZ*%_WOQnmhW^RE8L9r}bkMGNgNjdP7`>_+(WVkcUoJmFU6^wa zVkr1qL7~(Z{U_Qtc($y1@*irx9mR=Q!66{+R`4K5BZ0I1?ZLwoUhPqMb;hjFuGnbY zHEHv=aBSh=x+zc_#n_5-a>azU@=gYtTzdffLC^i$(y=v64~%XPd`qzd!4CYlRZAkh zFuFw@(${{Ff@ALA@Oq2N>Wj|;S4F&m(U=M`Kt%=xwnhi&Q*hiVz*;%b5Lg|?+#as3 zXB4Ki(iY49eNx-;5(wwi=rdH|CxCM2gk{?)hymzQ!`d6a#Aza*gyTx}n0`$GN3Y;g5;rxNR_ugg-h`npk|Nriisw?(7nm?#1vJ)O!dU44)` zn2Vi-(HS$X_O2~@ExIM9X+80#+EXw(G}e*dvRMp;Ww59Xe2K9SrwcE9=2_6dLhz&k z*L5ryu2HxJPqVN*O#8~V5Jr-u1>l}PDt%>#g|_W55V*$LdBFn=4((ubSI0o^W8~tu z4ELvEHLc4W_GPdDr#L(+q%At`9V*Krqb+(jW;R`<6V-4oNxilTjp*Z>hdPx@ufe5_ z;;M36Tvf$au6jQH5IR3+-O=q20{dC{Y(V*)tZ=tkuYq)iS*li)L)b#pNgMImt`U>= z!VQ?CN8ix4d?N(&Y}O4Y7dr=~1b}U*KKI*kfQ_j>_n0`qR#l&StN?AkOtdIA8P!IT zZf`F}504L*@o{mw>aMyPf^eIo55w6OU4*Wpd37(>V_!pbn<};5YJ81(AU>XE(lScM zyGTQFdho?V1`fahJ3VesPe!w0z2x8^TD3`k4=(-$WYHd0$6KPiPb(^U)66V8d1TY0 zS^-i=In^PjOYLiT{S@o*e|&iTUoP>RXwmWT{+lI!>kt3qCFa3P0C8_Mhcm8GYuB|} zo(+>#2jz-`;rDDfm3#vZI~uUgXsF(f>S$%-I_qoIxLR@81GTzzNrn@nk>Q-j>bFu4 z%(v^Gm#brNq`tMw8+!42%-_7z9a1YB=p3sgBZ#Ye-U>&@TY}D|&KKr$gWd`x*NZRz zb~aC*1n|c15Pg65C0=zxjX3T-zlm0ebM?0n{9o&b9qQXcohLBo&~xgd&*F2o?V;zy z_I`8YL4(eXrwzQ#jQhn%NIYj(=pCKgAs8Y#VI?fHeu@?!KltJzf{BrENDlXnd9UkR z6eqE>asgG#2RdX1`BDuB>b{Rkfw4g|OzBIrIUI-#L6?V2_r@VUE|wgIgMz~_ln%oH zI}Fb}q9{-L+jwA*7Bg+2Lx54HdX~wYYO6jZs@XPhj{xIsAS}Q{8@N`0$pqSbKC~oN zPG_*gV7AX9@O%tlcCWGrEHzAdHZN z4oOy_7s?6)tyIwblC0PwwLDik!}ih1=uVMyAr5!QTiue+K}#CKyYbipsjw#g9l#(&2Q%8KZK|g1qWU57|8e%&1i6OpI<6g+KLqO4pRfcOM zL!WA#d!swC2EpKam<^Ao?q1;ns&z4{BUskG{K6VSg_gzBtq*ebNC^G$W%jQ)3_dy4 z%yF2>-FymsGoMEFpOx)%+$S7l_UF9elhf?D&FKyMdMhyW=Kt;<0LU#Ru9tJEzIu9ae%Fo)oq_BvI{Uad+?PoD~}eFN@Ckn#+6Yd z(oco>GVC@ewI8b9Rl9CiYVb6EuR0UoRxktKDM3&7NqE}pUOaY;0ja0^I54-{%rGz^ zn~}%Pj+TQL6jZI-&-{IS(sF9o+fOGx^mQK{_U{hhu{z#7 zMBLPKgq(ujMm~;xHH$Oi-!%2m`*V0e>rMFJXwyaS4=NQ2B z18zGzocM&(-vL|_S#i;hDe2V1RMvN0DE$R0r$2{p=Qw$UzFUW&o$ZfaI}{X4Cb$>! z??#J7iEw?2e|K#pg^xu32zJ!j%@@^ptZsKohmJ|~M&O|cmH?{{R+CD=b8@8nTYQ@F z)erELUSKeu)4<9P@HTY)2%6cUPvSxL&pcObbv(gvsh&JicfZwxcMCaMpcO|q!94pP z+Vgz-hCJrR%)-RyO#|WdS0<@P5v!*L@RX<%^C@ULhik{KdO`4s&ZXEs)Y42&LDnrKC~KoWq%&L&qbE$!3B;75#Lk~?M8VR7E(DqFcCSGM07mdG92M#sGky@ z|2y+egnqVC+d#`cCEfs0Io@dHKY2>m6TMQ=J<+9#_C^;diuSYTgg(5TRP&NA zpU`(6xf;~~_j;b_0k$>j^*qrI)#;jm$5jL!8)rvj@va1(;{NQrC<$($&ckz1^DYT( zedYvoBej8yX2B)iHODygGPIo9)8h*pcw6+|y|_s{6D=%JiYLMno@E+=1z@6v8nNYe zhzw@GISfZeNm|H-{r(Mz`j^BI1S662#Oje=w-i_6rLF#Lt%Jm{rG`;XEQxMjeDuCr z;%1Tv&e+AoD1%a>Bx&C^bMH@MT&APJnJt{&I002O$=_Rv1!a0zn5sdoT)lOttGbeL zKvS)|)EH1=_aQ5Ok#0^9J6(BK5)bLK(0As1)g!vnmmjT{tcIOKUX z_BIUv>zOpgI!ha3PlCMv)8_A`Mt7AGsx-qSP5Q4?8hKzl2Sx0`kBsZ%_4L2;GMxTr zg)k>4)%WaFbi8&Oo%n+|v4kQx&^+elL`X4eqBUs}Mn4H8g+2FpEOeep=0Dwiu zx!}9ld5y)yVGDyhx-xV>AJ5|8 z5(7#2&@ROdkCCLj7?`xJ>IC?@{wCEg|Abee_&EP?6iQ9Q(HQ2tXxa-LjMIP4G|Cy? zP|V@XiI}UY?>?n5JZxkYN?)hB_yf~E0{XRE!}EmyedOcW%!kvnJx}D}0V@=y;59Tu zoHb7GfX1TtS)fK1mh(};Zv(YkQv;#tFRIj74-|)B1P*(iu!<-7->E#2Iow%`hN>DRrZHabGxzEZtJukKbT??s*heWroQ%57Nq zqdZM4&og6Hd73=yCt(T#P)z{${Zt;UxavT<4%L+6d7$C(c1c@wu+BrvQ~a$kFj-q{ zt$Y^Dk=j}Wmm}3>dO8X35{A+bQkUrmYr&pu3ex{d!u&I##r)er+l@xou6)sXMW{T< z-&*T9XYZTs)O#(oIM=1rN01xKL{IWOMgRMTCCnD zsD^s_q?a>{l|j-mqyoX^e2MWYIK7}^AwssPji=QZocO7HMdlA1teRegOShj zxZK$Q?S4+V;HRi9{ep|>E|vk#bdsGkYV=^#_z3-Vp(?Z=eFocy=olhhFbBw`HA7@BRzo70>(HFARkr!z-U7lw(L_JzNgfSad05k zeb`Ij_Q5C{sclcum5H%&pq;}Q^ds}6z>9&RhehqafVm}&JfDwYtzzWih_jFPC3sH* zvxwvU73`z6{vKBCAr~R#B!5rkLyq6rf6$y77t*)u%bsq|$34n;QbB?vl+U_}W$;?M z7Kau48a*ZbdYWQZk2jk26;5BG^XQ7HR}a;+ug4@aUY-pNC_PNVEDo~J`B1ZeMm$P^ z!MvIe{_NE3g{av-D{W&wQ0}XmJ(a$(W^?fTKVmb|^F$8S(N)wu7!4G>pr?wt?VKw9 ztZSMoQqzB~ypiUmtX(MIk55(Q>+-ChhyXj`#3sV2J8ZZ1sk^h7EV=F`C|}^;&+#q< z{5!Fqgegu!OyA+z837CiQmYeYNvLl%+{lKHe?J8Ry>$r9TXO&?pjJMJt z`wb%w>x{B0Fh(A=(m``jE1g#M$)wg%+x2x)qmEDbcB4Shls&vR$VEu{5_&Yr-|1Pu zLd_zarqVA2D5G+;hnt-F7*3=2VaA9)$*W@-Yw7;s^bb#F`EWk5l`f@!BZ0#R>22afS?+1j3K$@}YN4gw5Q7eV37g1JHUn)fmGad>GoG4B?rRuzIwzQ9n@881|*9_Yr?Z zSMc~DmL;$j#i!1@E_npJYL;GW6xl6v5@V&ZA?nTUJ^X2!9jpYl;tN- zoVv&wp3?z?{u|KeazW|(vgjj5*hb4!HxC6<3kh)5c$`TW>+@%&Slt|gH(@UGB4d`1 z*CU+kq?3iykxX`!9C+21kzHCXFTHjZ?<*Q%i)wf0V#rRoO@s$Yk!>rA;cv%?^U?rT zX}dZ;awerqQ44rQw|3oj>$;4ve|rooG&+k^h#~5q8_xHzsTC#M>p-#lR5jtj=8g@K z>iPO;;_0VVowVX%;*1^st`y|>7ns6J!%}8#vP+xvVKLvJXpnnpqo$P;mu2Mu%AtP*f)X>U>~N2P-cYq zxAnco3)KXEj~EFWJrdUAE3NF%x}E*@F(1^>RC;RH?Zg=+UchGWGTy7^iDb08*72HDEJ%QJmu%O(9YdrCDUK0Nnk{P{1)lfopfvJtc(ZoZHIe2_?6HV&J zH_aO2tyBAsy|#oVD0lE3V_2f3aAAv+5$^O@>~fAcA%Bf1hdFrEVAjGnqdmZCQv)3f z(tVX<5pUM&@ek+WYOS2g#VeQ0Ded8ntI?5ax215~XP-QT^J=j8MypHJ3F*it=g0z? zA-&G8RvAta`8j`BjKFj2<;dA_QilPz1^Nv` zXlr-+lhXKVwv1EZP*dl(5s^^cT9)Byep_oe)7LOqpKjqI0$lvos%JwULK(XdU)176 zy-6)5JsWO-^)`Paheem?aH4pL2eoXKOa!CtVWv|@KxWP;gPQ?x%h>H@lg%;w! zj~j{k*G9AO+W>8mPS$_JFbn}YfsCc`HXJL(+-XZOMee5=`$qAJ0&HO|_a)i^oDQ+EsN@EhgICnSPPzkzPU$Q0co zpWDn9ISrL5;oo1WWVGwPj-FxmT(tw|5SS}}4F9lzf}7vaPe!LnPo|$?ZG*`aJA-fJ zfQrsH(hcj%4SiFm?AiMAZ)9Cf=eElgu5FC%w1LlH@4y>7YQo=SuNXG5TW(LhmeAq5>5W5npKfzXQqJTZMNY^>_4{bHn?N{&0Ao1S|gUv|Is|Q06#Ti3|jZW z?{DORZV4N%`lkA*e6>iN^Np;dUB_pH{kAE+fc*v`Q|r(R&4z9-R=my%VDvW3^q6!K zW}HylzAj@y!J97$dMV$q7lgi&o%6Mi8NJSN#>q?&<&d}b=UnQf{6|$i>TBkw*B7@v ziXF(ApJNN%`zxaMPk5*^tHiBSW_*8?32{_jPmkTLdIQe~(5ju^0WzoRcDvGNav`%{ zJ+*~|3hKIFQ#}}_)WEerGpdT0BdY3WgkT42I^L_$3p#91gxPmBH=eV(@=>=^EdJEN zhh7_Fgj}kk1T4Pn=IKvc^vhpMN?e}|aY-^e>`-eF=Y|O3l{%$u`VK zTo3NA#4=C++vTl9d7Z-{yr_i*Md;~S|3pzjkMoBc&GkNi1*?wdE^rAGY#o0HQeB4Y zsEUP2N--atJYKI#Y>d05xjk z>aGWj*ibKA$M(4e&%RiCOY<94Sg5WPVC~cV9uSnrvkL9F2QSgFLL_vwbqnWy=-Pb} z@k-xdubN_wx&S%_)rKI=pKSQ{CTywCm>LM8j`f8C!@q|0D*pCS#1SGBzZf_yuI zQNn10-JU!N5_=3~cfz-k28u&oJa&IMuIh7fj_3489m8i(UD#~V5DqJF-k)I8P*>g8 zZ(8@Izy!;@g)JbYLy%}+^^-Q$@#tc_mm7vXPp}mx$NqHW6v8pG>F%U$s?c_*KSN7V z6%czC?FoZU1chKWxa?=NXjA=N&){HvvA24G(P2iy zQHhgUJY#)$yvd`2UNBUowHU?v8KgRntFTZ@8lu=~Olz2L&JU{&r3aN~XxgbL-lG>O z#}?g|xT2S#OWzH6xEW*CeGIjs5t4C>^ME#Ck6V}blLfVOkX0987BZ6QEM_8$eH{tF zIh7J)e9|a(1QH~;(-yrQ6(OFeRPm8)EQTyy71;9bp)2w6t3eyG+ssAE2s3qpgqwJF zKjXZJPSnp(aRbc6Pf_LJqfj0mS?pEiuEtYid)46y>i7Hy4P{?w-AhbIr`1=4@YV#2wpa1QyjB7Li%wOwc!m^J`}a+fHo4}du`p?`CO#H7oVUACa9KBd)$ zpJLI`YsG}hLsCT2&KJ|BIz{GF8QL_bd}WJHF+-cfgSEC!b{xe6KQ@YLQ+EzCR`G5- zGs{$&VHpUY@Lp&joP!cc$!7!t;dyBDQv&$esoX$##(Z4QhhZI<+==4P#8|uX7zS%2 zfi0|QXF|E^K9o5;{HX%fI2f3Tt=_`}y$BtC7Og1am9G`N;#Zr${r%H^a}wZo%J9Vo zdIp;GnIHb7_d29&Zyov3{Xg1|feuxstwkL)fG=&JBXH)}Z#SKcbRB_k`YCh>%^uyE z!NJeNqC2J!C)(z(p#gR09>MUTCUIiF_1!_b6Zb-)UMaAr^+H%5XiL+1*81z&uIdM^ z+~sIt5*Mx7ZRmAr9f&laZ?HAdYW+1FlbtG^ZWDqNdueK`_|TeIXbCc`cG}H6J+<054;N4neJ$&J80E zInK^&w`K%F!`fqaGPhcP3q#y8Xyq@UAm(v{N#7di4#cgh;#K3g>fg(zdz{WgKS4f5QuiCcOO@?@z@>Jx(1?nw2JHYBeXfBqUn?l zXADK7t8RfW%@E)kowBvMsH&o9MR^svXETt_KQfzqa+=jKS=vfFh|{0k1AP z&;T16F<5OlRdJ}BmS8M>Ut6zZ3YDW8`PQy11GOtKUJKNX*Ee;1#HzbJR;wyK(zLAx zel25f*YJelTaU*h9C=A(Fbkvo;81;-h{S~3K(FnLbnI;HIyOGuCrug9?dCs2(2j|h z6L6)G&Q-9)2m zFTp1=aWZkGGNSfoJ{(K=E}NWMeJ(m&FT!ede+SYo`rWJjRxb(Q#5;uZ+`H72&UZxM zz24km;O(t^DGneDEPkndsd|LKRs;@g`+uovUnd6t82E1EEszSh-|9@Tp`0d!bQ3~) z2Qp|0e1U4vOL(qQ;Uztla)6K4uDip!7QbqNJi}^L-Yg;Bghy+k5b4G`z!vh^1Wwl~ zmL9#Bi*OEBi#hzzRm!S#PB93(O5)R0y-ppGWY>MF>~?CAZwYD$lb5;n>w&0Kul+h= zYI0z!;E%#`g*nL|;XOw|WHEYvXzTQ_A0=M539S!aa;bqO2bUXo^K8l`{?OL*L#Um$ zXcdn=YPWk)spFYZKt1rz5OE|F+Z5FxJ{>JhGDPboa%MX}vJV+cVl@{38;|T^8d1`^S)r_`vKZ>f(V$fyUt?ClwA5l*M>1T-Sf3(8- zSk*N~1gB%Y3_0XXjpb`c?AN+qMw~W{QuN!V zRX?ugvdT8oy%Npiel!m>JM0R0suIRg3^I;4jGycFj1hNTkF_Qt^+af*f2hXV6WIEd zu~F%Ts7EzcHX$saw`ByvY6F6Pg5nv!rJRdkqBr8HR~&I+?2Akf`JYO<83i|=3N&Ci zQa=L5vO^se9(Qvo*K3?l+ag^I&?%@|)x)uBqzh3T4U7QoK`9d+mfMZUIu+}MFX#>! zht)&l-;P`B(bn{s%XjpuE3^(DVeN5ZPq}@@6Rz$tE59w8@uBjOu|Y)ade@guy~9C& zuT$^W-p0yC2C|*dp7Ke(W>&j?YS}(m!5t_TJ=CxSWO}G>AvxI!*t=mkzFM|XrgQSo zsTA*KdcAL!?Q>ZDkdWihhu^0|TEi|voU==zk5^>3#@3i%Qk@qFqJO67i?>vpP0)&u z#`TDFy~TeQ2~RugCy+sXBk)jOOR_Bg!uX@<=5{3xQDPG^1YWl%ulq;2h-K59dnsb0~(7X4TGH4!?x z0@P$&_6cL@-_(tF3vIco8Anac7w_PCf2zUXCgm^o-Eacq+PY18-q^%>0}iOO15h<@ zY?66nrm8XYXr-dMVsqlW(FIYno;O-!IeHui#=f4$d1I5O?)Q2K(Wp6h=q41#U>6qG z<@rcC&q60lnnzCI{HTUx&xSuKvu50o15U$u`VdY-U!OX{j^Vj*G9h~`8}wdZ)dYq# znTkNPLA!Z`hpGW3sl~YL@*l;Ix_Ya&q2#MY|E$>!KC3{)4 zdkgwTv*={u?1rNudS7mqV0dH{=Q$d~yrSC%7BP65!)PZMDY0bZm=IyLKtH0>Irvi(4g}+N&ubWofk#HPwrGqUDujFBMpjsfhYv?_>@^5pV95>e&K<`u`WZKc zIucWS9x)o-k2N$iJCcS8?sa5-L$2Ce^-#}ju<$Ikd#nv7E{@Gx|fmfn`5A%@G z&PNY5%))snD*g*HC`q)Rx$-Ri`^i11q9{~)oGJ3fn^ftshCp4nSr`HI;r+85-lMzT zXM@24fU~-uO|asa>J9sMsiCe{O*(lni#3b=OC@|gdNtN2%~+c>VV#6Fk<*ApXFV33 z8_+46onO&BBso422CQa=pCyJO9jGQ5iFS%~lTNX68brEZgPWd!aLJQV?OOPs(xGL;|2rokp!U7LhUE#c^^vl~B zYAV9E3#M>5$BABi#kd^h>(%Y5^R{E~V8fz$c6@!U-g8wL2M7)ZoiadZBPby2z{nA| z43ZFbB%rikyKX~DHGd2V|Kfw%&>n;9D7UeQJiDKYD4Sec^gOg8CB@B7&xSM@1=pUS zi(97qq*ps|Z4OV|TzRu(>Q7Rv*R!6^&zo2w$(1osuQnpx`nkKfw~mp9$*I}|-ZKm1 zJpr>mF&DoY;6sXS(WiS<`;5Ssf2$T7EMr|~gFpX#Orx#di zG8s51%~<(ehkF&a819Zh!+bUzRH_;}euCfG#B<}?1|0rP2uru=k}L~8z}W0;TGsbc zX_>p^h6S(!pICeU4=yrR)^FA;zjZkpxS&+Gdy$iR2CP#D z10Hdw6Fg3PXX$+^3eMOop?cBI+kHHE?7WbPbO4PjE$0ChXdw5Pekz`Gmv&{Ab|tD! z(lVkg8L&ComtE-7@Kfj8U|%9)r=Vr14R5cO3KU}7LAx7hI`QS$G+JO8q~3eSPB z|DQ)7h0mX2Q81;nqyW!dSTm<(=9iY17vu*^%F8l~^GiyL3ayLEGm9!K%PXzQrPivY zR{m1!gzSl{$DEKoKJjbfYC=XtyUx4ozxa9bJp3jV9`30DZSq-G=9K6DK5{D*FP=H= ztjzM#!pvnwWtrtGizc!ZX3wk4H1!yN|Bj|geEuiU`HakF%1nmJm z8Pto_(K66%&??Ye&}%^}K<@-?1pO&!3+SVu9iZ=l_JDo@>K$xZ{{+nj9gP_^7j!LX z1?bEMqz66amcG8nK)(z6I_PfDJ)l3nwXbj3L3r({v9E7D==VV9g8mIO2s#*t9(RBS zK_3I{0(~9y3(!5FhvAfF*unU{I?(Z;lR@W#&H)XAUI}^!Xauws^az|b>;yd-bT8;s z(2;o6bsp$s&@#}4pf7^11$`Uz9?%}pr$G0D?gY)i+0|aq!$C*lhrW&loeX*k=t9tZ z(6ylVgWdyr%toXKT?x7qbT{Z;(7WzLdc0cP13DS>THFs<0(uK*4d`8g(GM zdJSk4^pBv2cr0rM&fc>@n{cW>7c~7IlpFK}&^ti=ppSv(g1!z~3AzXL8PH)~%lZg( zJZQ$fNDq24Xb^NI=pCTjKpz90_(P-z{SIge2OSUkIOtr^H$j7-pMc&0 zdUzAkgZ>GR&UAv#{YhV6FX&aEBXDn_0dykhFG1&nwu7z){R`+O(62ySK`ZdATPJAh z14s{g6X=M;v7c&2deFB)=YwAG5YmIb0=fxw^210Ex)rn&^t?w9chHKTBksd2>o(BI zpy%M}-G!jffvyF;6pwh{1KJJx6zEAUs5j76pnE~Lf{w)RRGs-NqzAnebRpw;B1^pZ7$Rp5SevR~?mxC?@eG_yo=w*)~J?M*|Pl3J#x)Zb) zbT8<}$C3U>%lb9wWY9l=E(HAt=vvU>n~@$g8}upAnV>sC^FjB5t_2-A!m{oIoecUk z=t9tUK-Yq%Jb`uxIurMULweA%7}A5Let`6#TR|H^ zzm3Dv7SJm{LVD28L3==(a0A18tYr=O0{ss3`=E0{)Bk~X4>}uk6X?f#(e6R{L334~ zlxt>NDXYCHM;|gMqY>*|;wX~UUeniiA~mKDLeI9WQTQ8=zn;~od(08mVcr>sjkv&b z@T!a&>%61RKKYDM#{*Sq7lK}YeP3SzfhmW1Z%CbX=)lw~kb{=51-u>dixcD*IP!ad ze+K!J3G&Ar`BT7eUN8RH_Vblk<-Zg1+aRBjkba7jelPG=$X6xED;@br#KBYB*LO*R ze3m2U@0I%?$5at7-;8+v3n4!RaupEUzeRERTFA#hjv*_aJ|`}}2l8Vf$B-14Ulf-= z1^H0O&oSkzuqImk5ars`zkA~dM|B+Y{4TKzBJDz?{JpE+IzefBpWXI(? zJi7iN{}^&N`)eV83-YmM`qH@ldm!(I98+4{{`qnFQ;`1=a<}sBg#3BPPc_poi>KcU z`Kyr6G3BW`z$1Z;#Gy?Z%KzI0`3_|u6BrM5ehK+5Q|_-Fkos0Uk0sD4-{9_J4dj_;AfysoaVuPh;biIcty^4~*VnjqIfpnVG`e#c_R>n6{H{3^(g zH`5z!*a!Iv$geWxsl`tIOCWFEkNq0R)3A=kv=gu6+41-_LH-Y!BVx-4z<*C(9{FXz$0P^_>ay^);`iJ~B$X6!FwF8tlL(U(@{zZcPA;*3@y zf3ctZeUQJkANdl<2V$S^)~;(HUkLdY)4$ZmRRQQ<6Xc&mKHZdG7cXA~@}q9)>zi%L zQ}rT>>AN7G1^F0LzC51ZLd9GLxm)}*A-^1QxA^%W&vQwii9DA;ektVbSZg@#N4LSJ zQsD-D+yI?_;7nr;t{t7!pc8}pA)otw_c?Go7upNJy_c0n?}9tYsbK31dmBZX}eCg8W6u>k`t}IQ~tC{Pa8B(-%U% z7V`emXTs(N$o~TQwdNRv@oqp+4MVC7&Cod;=Q?9eodKsh<5WB3vvA(y)&`=GUj+Hj z63XzPQ-%yIvi}JA4GHq=9eEby=iwabjs*FwjywSQulFNg4*5xU<2=Dkze*)n<*SE$ z8sxdAJXKFVtb=CAt02E1LGE|*Z-@L|$b$*;az`G8{1eFC;*)`Mug@Sq*G#`A?q3$< zL+){x2OvKka7^uK_7ttn5{6~z3rAfIz@U*Gx!xz2#{0OXHDeszLeZ{{dp z4*5Ww4}!$U7-MZw55eb1k7JCu{Ia-z&5-Yb{9aR@x+z|M$ghTdxAalS%OQ8Ie{5oz z{zTJ$emwsy$X7w`HV*_OJ&uv${?Ci2Uk-UG(!1?r>LD-KkNsxI7eVf3za8@Vkh}RG zh5U;Bq|d-1#AT587oSWNDGTz;UF0k>>v)#f$R=Q~m5jAWDdZ)v;U>Qs@->i;G1D7! z^&^nq0Qp2yUKNk=OOXE%ayYn&yccVK$9@3oiSEHp9=*`H3-<%u#*-08 z==%u$m4SIogq-&W`dd#xtm3>7I-_wfAQxv)jvoUq96%>n4{IU64EF%=^UsF-#57xe z59Ec<^j}V_*;cbn7KLS6xRRYLj8;^l|@x$S*@51IL=-tUy} zDadC%-`DqXLVQ1P;=2>_qhCNBryBkbIKo*M?}hw`-@1>Nya#j>D z2{r;w9@8Oz6!Lo$%DKrYXCdULzuo`Y4^6WAu{=?aB+k4jkC4KMANU-Iz<~%Hh`@me z9EiYy2povOfe0Lkz<~%Hh`|5r5$KqxOHd<}TS$J=S~N{nyCIx~3D2z+KSvGJ)aFk~ z;=h~3Pf6l06dt#P^hX^=S{81Ps896gnqteQJ{2Eos?JGpnW0%rode@~waB@j<;Rx) z{p-GR@*Uh);)BO8)F+D@J$%Fst5@W>O{qTDi{N14v3*q^9M>d#B$*ZcSi^Sw>LnqL zxYUPRV}7vJSDy?in2lSKf$evO1eQlf{Mh;bqfeIykW&3x_!cqTC%j!RJ;Fb%4o~o` zr|@j$p*IMsB z=$%3z6uMdH4xw)deP8J3LI<89`3pT!=meoNgw7LMEOe#N8-(5|^g*GUh3*jghS2wg zelB$2c*$Sri9#m`ogs9d&|;x0h29|aPN5G9-7Iv6&^Ls>FZ6Sv1J9KFg`OyMg3uX4 z=Lszqx>D#3Lhls%pwP`icL;q$==(xH7dmi)>|8$#a~`nk}7-2GK2`v`7Qs@mr?-cr=(9J@32z^7S&JE9jd}d#P z)<5Ud@8iVI`(*ih^^f=NI(L%v&l4}3qI$~AX?P(g3#W0TGsm8J+PKrkW{%4qcjnl! zW2GG%))Fo`{-s%;^d*2`I4q}PmieR1cLk!rd4u@mNgB9VaNZ|Qu{_3ns0HUKe7IF3 z8}RfpPzh2f&N^17B29ap^3E-GzGJsZ;u9Q9?~-q&!&k- z?$xK2_L=3v;Tmrj+@4>yh<=CQ_I&Y@;IAjy=@h&(3Eu^rezu68tHAR^_vp{gB>jQN zhjrS(uN5DS)`E{;x!&1-t;FAA55$!9-z}xW| zC;mjmA3NVEV&@;yK-Ow=)-2JteyA;+AUL0G>#rV{iM~(t=V$5!SBm`~FVnm{o)HuU1h=FZ$aBe?#yK1%Fxa<0>?;Lhw$(ZxLLwvAPBSQgF5>e)Q54%g_BDQ`dc>diQSNDE!xn1xFex~spP1JXP@p%>c zyz9}_VkqKr7w{D82rGG=_MyT@IO|UGP&~@N*S@sCD`6+BnBM zet1uFDB}OXEX`+XVqM{4=V}+cR_y$(SQ|J>?C`n&{>t^J3%<<-e?{zHQ=|>6=VNgB zwu}BpE_f=29hUd5x!TT3@$*=P3uBN|MgNyR4VH?`C-|N@8o+R>J_`l^^>oeK`?Cs# zi;_XsyWkte&Qux4?0ws#f^VLtjSLf8&k0^%rh%=3|JKF+A6)QVVy9-RHei?Q@4&t2 zzurA!Sjb)%J05J1`m6VEyWpoO{7|cQvNn8}*q`d6e~AlTBzD48+JJgC0+-c-UpZal zhl~A?i=B-w_>aWSK|j(4ZWcSgbkT2h!TktMCgR!onHUiATd{v%o(Ad#f8WK<7r=*L zePzk`gX&P9f!KeuorjlbUczb}FZdE^Kl8NM;(0@V^_3&~f0gm!V9_rS{BSXB<7)*U zDed+|(Z5^pqt4gBV!?kU_?Lwmkm<_WCU~<9z{iVzr{Jq{HDHf3e;0g%%nMi!sZaW# z{>wGQ1s|#KL#@4Goqmki86)_?GH%%ZTp+lwNh_**__$o)VxMx>%P|41@72Vra?!sY zxSf}%DsqpD{x4ndZ3;is8YJ~)k4vw+=>Nq9kBOaeS7>i!nzZmJM8EClNQED2eIXTo zhZN!`SXVO+(`DUzqTrKU>|7vr-j;lC5dCt&1Jd86SzF(8v2%+H{sR~M0kQwN7`D%m zo)Y}DfOf===gWexk#@d9{Cr#C!We|VFVJ7VOC8)ley9unE#N~^zm>Q@L_Q}feZ)Us zXL_#WeWu_yb0db&e(z@z9{;mZ`SyqHL?CA_(=7Vsb&3E@Q+>c zO~v|O^;3z1UGGOIToN1PB++kMqCpv+tP2ItlJ=P?X%-0Xm2v(y!K($2E!Dtjg5RKU zVGQyE;;DyO_Ia-@y4OYjVX>bl4%%Z2-#_Uu{%?zZK~n!s!GPbN{-Fv#)LM6$_QY=g zrwD#f(!4WG@FS&tULXZnCU}*^!Ct4W6#T52TG5`rcwWr<+POgEbz!xXMD^ZP{6 zAJm{x^{gK*&lG%2(!7)FVy95_KmD1uqn_o$WtHG3OTg4SCctlXv2&N`uabFry*6k4 zOz`*5*MNE_4VTXdKEY@pPLp^})aI;S!H>8|1G5AlF5|!(a^N&u z@NB`)E6_kd@EL-qEYpC!u3jQ|S#=_Qt->X-L2ecOTXHmLuS4#4(SO_pZxcI<#2>pq z{zdRkDeo4^`+RgdwyUo1YQS#K{GAozSIRhPuPZ!|(!7 z^smU#2C~J@p9FvLYz@e?VeJ_`ubY%TYs+g?Kod3^>XKGjjLywad{|~>@3$w zV*e5?wvJY~Fa|lv1)n5#nk7CMj@0L37yakckZ&rq?1GB^l`i_LT=1J*@H-WLsP%-D z>u|CE5OA(flJ}2~i+-{6cYA%f-NpW^F8I%69G;WZf8P=NH_A95&D#1z@O2V5+s}dM zIINeOXK2TNA^snuaA6E`iVHqb?099pYPXY11^?^^+K76l8JEjl>|7)I4@f-iIXCR0 ze~;+zl?ii2iq7W|7yTzi{|G6sJ2wS%wEyaj8c^@z;BtZJ=gY!8DEcJ|7seph zy5RL!SanC}O%-pTD~3^TlemtG~&HW0&X;QR@U@404nUKFS5pRygK0X@H-L ztw}EW(_HX*E_mi){r9f|$@k75=?ov1d{+tnV$!^Dn~VJiME`MVhezA7s0vnA7X+(L zE3m4nO9~dNAH7|iUs;*I#sst$k;O|(f-CYX7U!0ilm!(KTvJh0QdV4UK(1-6K3H(zPIXt;sXBFjzpC!rlU@5392AJV}mEV{uBMde-9CqgG@$v76dTaK%h?-q|mdYGPDXPDtSON!pzgYh*F@TT7+ zOS>GzxxY)=uBjSy-Dhd-n&rDb8{De!W!{6(RYl!^o2D#LpHyjgz0=03^jg<6L!V?# z)sBOAtERifKn2Df+Z_CJY}ZnGP=wWyW?MriFwdKH&Qb!T`q<* zEc4!N(thK559#%Cj!7*&I_)7=8i76@{I1Sw~i ziQM}n|2kFmq{F47&eQ(L)xnq-&9T4XyQ=dizNs$#z@c>bzVyDOZ7w0A`A{vG99Hu> zx;;5wq64?~@QXt1pN^r!9}Gj9ZM5^eOK)8VOHAuEd@j!SUGnMHWYlHKsa%6kw<9d0 zN+F=TD3PZ!#@iSI;<-rgk6_+#!LxebSW|4P(tJ zT07?pA4qa){~16-nq|HnX1qsLh$4GXbnJyj2Yubl+Pbr6h+_x~4l;zta$aqj-qZ4$ z8gfRk>D;?x)#|maymMbdbTe1D@TE^0MW> zHwd~A$UYzYBvf5qFksLS;j8^-9K;LFyC%UgH>u>}JI4>ZyqKUfd?JFK7?fJf3NDyH zS{Q!DWx8y-c?|`1RCF1F84u0(9dcWP{8Z-_CmIs$al`X&Ou~L7?ohMDlN9|^4jY! zvU#!M0F07zgf7H-s$JW!F`xk~iY3lZxaN#C@yzS@WwTE!2Gj#!2GwYmabl|4`DADg zgbdtd1;im&V>r?*;t(kjNPxu>pl{+8Z3g6?rTyU2bh*@;yy#QlV;C!wB7N|-D_}HB z!2H5@(KO*#61f;;+WTlEUxpyXc+ni;;TBoRLhdvUdQlv*M-5+(#Dr53pNa7)^;F6V z7l1$R5_k%oFd`{R!I1Wj{NoBmTxg*FETU||MUV`$rsKrZJV#a}X0$29WH~`S@nYZ% z%B|JzlrESq0S^w5u!SJ%CuFj+Y1*w{hloW9k9BdUOBk6*K@g&5xst%TKNP@=dcjh_uxk+ki2wvFM?4^5Bm^>| zGmEW3D-sqtVP8+}Q+UuQPOnnoE}7FDRV_(P(!-?(FivlxgKUvUKllJ#hzu<+O2?J@ zyAy+nmI?OZN6b#-N9|OsNh5Ev!oueIK{2RP5flkd1qT>+p#Nu4qS$aab9+|~J!J9+Eai6M7hb1`lCM8v0%H#t^k4`(u+V6ON{ znKT$a)JJR=)h5j-5kx{L9`RLdz`)RR+P^L|o=g`S`$5mba>#aE66#8B)wDbFl`)ZZ zvC`Hb)nOcr@?zYG_N)#?qh$@gipW?dXxAE=vs$L2gs_;Hh8r4@HjdeZqNaan zbyzBN25T9Sj*#f}DsT@*$UU;DOkvj*1lxcOgc>ZiR?Tcmd-|9Lkl+SYpQa8!A2h?* z&x3TIhUZvVMT;(f|-^g z3nBD}XfEjdoCb89z~s|;AaAkq+MglW2`d<`lV#bk?6H6(>`}(HO-uyFUrZacV{x4T zMQJPCSiyEtoV2do=nw0ML#y>J6oP03OlS{kmoVW!TRz+R; z99tRZ6Fb>O;j*5z1$9Xnrm-zfPqHuvi%uHkw6p!At|ixqYGrA{81#;;H7K``OivN5 zCnDSr$-(TxFoc1!_;zPk=RnaN@+wkMhvZT=wZCE_mccIK7LT~92{2^L4I^M!#`u9- zg3Uv_5mV2kVz+?S040Nd0F=nSTPQ5%JTZkTz2jac_Pgq#**vg;wi||H^v(r^aL;5e z>EM-gIK3h%4;j}|33jfq5v>{91s0uyz@4n8par0gb%oV{E`pq1r;TYM#A=GVeo)gQ62(>_ zr!h#-vW``cJAGx5ul7*~f7hNM;jtjpD zVP=E>B#dW)t%Jj}SB7-0^x-Cq(AzQl;DG2(m`kf714F=o{94G^Iu5c!vcN_@&CYK1 z{68h{7rlhPkA_a{xp6Ds2=!Ljb2oOrz`>OMC%CW3kCk84)A;?dc%%mhD0r*b#{YGo zxAHSP?Za*5Sj)$5|BH7}82$T!-bx$)eEk4_)QQo@7lVWe+IvH6{N4HgIM5%W+rsct0~#@7fRVLr>`+1$ryrqj63?FNb3*e}?lZy*)>4|BFB$<^QYDFqGl;aO}n8XBEHPp|}6LwUWOrI{oa9|GORf4}PPqt^AQa zI1xJ89sdugpZfpz-`9p#J_>YJ?2i9uT)-`I@gcUc_wuxV<=NI=^lW=>eEba;@aSr! zxA*qkeMtI$ftLCUVI#hO;fI0#5w1-?yZZkC7b#++xBqYcxzPv3ni`C6>*pgFd^-Mn z|JKpoLa^pbo(4&(pv^IG{? w6ko%i@gKrlf`504ylYGS{(yqT=l9l7tK+!g6wjnSO#j=@Dg76W(HGGF4_j`MkN^Mx literal 45488 zcmeHw3w%`7wf9LN7!=IJLXGcHQG)^v2ow}`fD9Zg(Etfhl}?7tBpIE|r1Rj_(#8gC z#xZUBz|vl8skN52>ZQFDQSlNGNmOndAJts7Hno(_2-Xy>MoXRVzxH1H%$^~K_Pe+D z`+nc|<7j4`_1J5#z4qE`KhBxqi|&Q<3JVGhbqzDFH3)NFA}KCr4E&gH09?il<8*vp zV4QD^06tvMB;O?gxbkug%Z0^ECo+}W&is6MF3TyXEF?(f?5@_cB}YNSA#o~KM7K`* zz~vO57TkEH#1+)biTdhTJ`ZmFn4~MHmm}Y_u9y7Qj$G&z#u&zoUnvJkejxyr+s5U# zaXAGYB!Ejn`YRcK@9 zJRAMxHvRRgO}!}_JrCIE>9MirMH~8;ZR-7+jsC@Oz)<~rwT*nhhQ8T`{#zS6OKt3Y z*v3C++30!KhJKZeo@Z?6OKj{}XwxpAjh^>x{CS&=op;;NTWsvP+os+XHg;ZbqkoMJ z{dODrN*n!;+Q`3WV}H`dKfkn*-(y36-9}Hn4Sk*s{W2T-y*BjsZ2bSQjh$!N$nUeU z=YE@dY5sQNFaJ8nreD_E*z*G$duG_w3-XZlPOzaL0ez@^^1Kbb#KxZQ*|h6b8~M*c zzSKC|*z$E$giEah4Uea>IUMptW8O&2<1su7YN|Xwf5hJyh{pVpnyR_MaL8ZdT^aOC z-jJL*5D!&_ef}#e4HSs_XUBbkaHW4$px$pRhni3dA%~qcY-MJvYA6zbt@C zj7YFL+*0L@MFMM#`Tm$tQ0WiGyoNjEV;iLvOTzJx&k(kgia@9lg%^io-k85ZT5VOS z6jg_#fmk3MGL{8GzVPZLP2qUZCt7SQ@yBYskw$-PUiA`Lx-z^vWGu9r>kg3@Ws@zN zbDOBVR2hhBvZSKMza|!s_~%8!&C+?OZf-c#5NMni^fpF?K9&*wk@iuORntg|Y_YJH z1)xR{mxhD!X1`G#^sbdcaAQ2$l=b71`iS2jstGR(M}oe^-nF7(s>ZqKnaCV({cVjA z;Zx~f#f=1OBHmCmDEtafqV(KwFc^r!k#oXpa$O*t=9}*iH$!qx7(w6@RW6D7TMQo& zK)1TVH#g#kTGGN|{@DD8cU2&Ua-^ivAB{!AN{NLnY4O(kEsO-=2w59_0$CUcp-oHu zLBmJ!c4MX6@LeAcgkrN}F>ig7;j8jSqoNS17V1Qse12)9v`gMYD&JuEIRr`36Is== z5V{pL#H_|Hilc>*5JjD|U_PAOVi_;IlUE(t2JPfzGDz4hN-4P|f##N=Uz#mEXw{~* zn>=Av!)_Vc7*Na3p3xLBzWjpS0zfHm!mP$T@_~ zp!;UJn@)H2@^1dZ1#{+lrc9b@sJqG8+bgrTQzlKLoQOTzKl~r|Z`Ob6UczD63ubxp zt|*6+E1xfWVw}n%#p83h@d9$X+P97g1V+>D^EXWU=GX4VHgLG{N5;1ce3)^R@%Y&R zY()!=zX7L9ol~fJ!EvdixAQrKqIdE6(B?e)@H#2KHIF`m>8*M5j>5aXD$CKH^-Osy zK6^C!IE~(`(HCg+K8=2ZM(@|?H)?b>57K^}_Q%%MDeq1Jpt)UL#TuRbuP%p1$CARj z$}~E=Sn!-0o$6Lsxke{nsH;MwlTGTHq0v>}5YMI2)ma14O^tpk5%{Xs=%*FV*Pn8eLyMb!v1zk`tviYjiqSQP&oY zK2{L{w`%l{YxHdzy-cI;)aYkv^e&CgN0NfuqtVaNlJ=55yK(>3`m8vTc&(`RJ8hwsNH+Y_+_@ArMi#2+s zMt5j*w?;41=<_tXQ=`w<=;a#S)aVr&{d$c)L!*C6qq{WvLXB=}^eT;BtWi=GZ+d$6%9 zR+#BE+x8VdDGbU?dj{mpB?s_Xa)AqXgf|f{-JijA$zH-~id?6X$zF@6!>=tr>#%ARp4JIoTlM)i@@(BoVGgYI)Q(QaN6Re zs|CJ}aN63WT>_5~PFtFEg}`qmoVGG)r@&VdPFt9?L*O?NPFt6>A@Ie7mk>Vi5eS!D zPq>5deu2*+yp-@>fnP=V8H9HUd~2Taa|8z|SU}wjSwL zfuBJ*ZHdz@0zZ{-+JdC(1YSruZ9US}0{<`soVFZkm%xt_PFsz1g}~n=oVFNgr@-GJ zoVFHehrnMUoVFBcL*UO7PFsoez~89-&k*h;ykFpZ38$??x>w+j5l&l%beF(?PB?89 z(%S_76T)dLpWY(y`v|8kL%LJo-yxi~3h7pXf1PmJBBWacekb9yHAvS9{7Zz>mLOd% z@O6aKRv_&Xc!Y4;0;DShek@H+{orE$7W;9nwq0pZmGUq?7C zk<%`LM+m2-ak@g_w-QcE;XeNG1lCQw4U=Ke1En!f*^Y) zcXhk_Xm;s#zji9oI$(Ln=uHj8-uv$~kC=&Hr9O)mL%aw5b`)dFOze4#rl5bPd2KiT zjMNb%LrC;@yHk`Lp{E~uRZ|ZT(tS)yHJBw|=qf4SLx#LlQtD2WAN&0GccK{? zuD0!nQ$$nS`jinrML6W}G}wq3+Ap1aE%G?^8lq^>h>wL8L1aENQS@EtlLdyOfQp^O z`oT`toh(`h5i!QhWKjtBhfkqFh~g~KT~q@qU0f!y{unGy6fFQ*scAdn067sybkz=^ zw+50`gCz7z1nzT#nM~>~^jOJ`u8mzKo4VQt3UJ%jUm!atRsBIG!-`Tq$XU%Mous8Z z^%jXp@!d|Ck~;UpY#9R;sPg-=_ZWqa*@?l#`-ztl&r~M%v{xNVe9&GsnD}#h)w}Jr z19zf-chnBHzlhIw_q^e_B$F{RBYS}j?0KUMSjHIHi@JaIzEw9=)}br5!j}$;o-z>~ zsc&P#(?V<~1yL7d&Lx>~QYM}&vyWsBK&G5zDx}P!T$x^y>7ziLnyj4xS=3v#(@Yd6 ztGW^m8zU z_ltB#iezK9(A{f9bI=_PLw6b79Zb6KNg%34_UuPn;lmX@Xs?-Aj@D8(T+xTNIe?b| ze+~FS;O7D#ms*FO$NIaX6I2fL)TPsw*as(e$DSXr(#K#KMUh0Q2rOkc0vGO9t zN-xFAf%e*-JKYo|y&_f)3}ON>rrNOX#WdLJFtQ1XRmOpzNY)tVRfnIkc9o&>oI$=sQEMdD_nPYlj% zR7tIeQTabpYw8)Lu)&&eQacn4%NnOf4=K7vyGhY557tSqG%DVbAoE#~>ug-Rxn6JwOzb`yBJMHR_(MGf^A8Dyaph;Tx z6_|-dl&Aa6#B2v(kE^`}nafR!8M)TNV&-dzZsKK)N6m67kIfLo#q7YUnVKq^`8x=}b+u@*@}^UGGx2`veezt}KIebk+Ohf8!iUQDE@~Ql zKL%z_J)!U6dh&eFpLEZUQJ$xKQI0igBA${fkzdiQapDimz%Xe7Y53Qx2HY2f@Oi4~Wc7`Q!-eos+CpZv2N-S3$K&iFj}7uSbSf5BFgOgOz%0 zF|`r#Q;r7A6AhpxJ7R%$#7PWTENWzbnMv55#F_@ZhW`(5Qm zXVyKlYp69XsIDF3#@%{cchznKANKxzhgD60+No%nSV)u9-O>LwH2PP!9zj-$K#iB?W`+vsir z-EF743cA}#cT?$Z7v0UEJ5k##y4#0zh;wDi_>>Ca(OQf#l?uB=DzvzWkJ`;yE(R-2 z3h$>rN=uj08WwfLU&KdqA3kX5>!3xjgOG(3`s)Z9sj@cNHc00sm%pjc<`_@w2am#^1Nf*);REL-v|El{b`0gD3siM{_`()G(6U7|LjOKQML6_=y+JIQ|q#%1SSX&syO4XCo_#-Z$< zl2i7-XZO66ZpVL5*E)1lwoMiAXNpc;tn)3A^J?Hekh@d2P{h%R1ey)s8b?cR>cTxD zt<)fz+16F8(GiOl-J#JDt)*%nHE%!Cg#a)UPc&h{4*zeY2N{4J%O%`YE#Y@fz`W6G zwuw?kY&o=VA_2e-S-`Q86qw0Pq|fZw*aCp=f91F^X#6AbHxb`VZX_#sHvD(;4K+)j z(jHA|Jw24~VZq-EyduiTHpF6_WQOb&??g=HWM5i-B>FMuKsN;3I{_io zo!UVik`QMt?Swxd@g6j%%ZQZ%^cb;IA>CzO?e2-4F6i+RL5~+NOdL#)$6<80dmH5z zO0JvDwiI$Jjvob**z-6T2)P~;`@xd?_ZDGmSY(dxG0zg{2%sbWw?zY8gHZaIIQwjS zvjC@ukJJ5QqN?}bF>mW~nBy@OB0+VXV(v)|lZT5qfW=zb>@e3PF}EkovQcDo-Wjpgsgp4>b1BAE4 zf%<}jB6#}Yn;tAGyCBuitcTyoWZK*h7C_h4?(HRaJ%K}PL<=NxmJctJhTNsY5f=t& zA8oP_#68C)Av)xrA;WSq0M6zwhf>JX4hzTVIH52*#-{NA$?T{i64VG|NBw??46_XN zTiGFdxYG4IolHpsRbi&HM&4Kd?zmn-)k)RxsYv1UQCf5t&Ifo3&SiYgj&W<2As2=x zoHr_AJG?N6rlY=p&b)z>zx>&1Aw9DYGgc5ai5Y8M|39y0vL55BOlv`pK9k8~1 z7e1u7)BZ>F%XF5_k8}9hGtS)7@6OL-1gmB?3uonGafcaIOn`}B(0m9xH!hU0!<2ASrG(#gN%+HA5ICHl@l$(w5UH&(iTz#lc*fzGaD-R$AAcT1LT< z+|&e3W};9{!5Gk3N1mlnq{1_yQ7ZTVxeuocPrp-gQwKGIP8x8(ks5}3H1?(^sIhdC z_o32|M3KA&;NM;s@bR#kY2C)Yr-!aX!_WLvO>*vK*BQl=4&K-?6}I9RI<0A?Q$ZbC}c#8q6^(dWUtCy*JSo#!# zZ0XeVzDZV=&r|f(B9f@ad zM{b};l?k!3fy@PhQ$}?0&{EJb$m%e-#QDN<+Mw?QrP_fH_dW_wItidBcctI(rLG1wXPMRVDmh9$)T2cN6-L3*D%v;Jz9=72^wNl=1ymb7C+8XD z1Cb8Ib01Lxxj`aS(luORI1nktkOxnW#!?q8mMnylf`yPPErc9wA#~=ELVJqNFEb3% z=v0JKCXCa?%XMUe5`FVbS++tEe#3;Rig17lGZbMr6J`;i+vP$eiFR6RLnO1~7J)~R z4b`Yp2}`7@k`0}*Jd&709G=mQYt}m@pQeXe?AuEIya+s9QW!twJP~(&JQYf$`y|PHe`$h7MnsqC)BlA?Oml zL>QG2M^l1FMXf%fhtu*wx!{S25IscYFeXY}6S7wDD;c07h((2Kxk8r+&SR<9Fef0* zpRUMLN%k0Hrid=`Y8kcl7=2(3AzVw%lhFshc&1PGxST@^j)6^9H&Y&_;&wKf|CmkV zhOSE4oV5uDnL`<`*<^(sZF2^bE*D&a$y&w&#VkLPLOj^DaJeX65m$QgD<$p49N*QO!LVK|(01VI+FWP8xlOi^Teq4=AZ6$)ZKN{KCI4e<6ur31g1OnPRWm(V3wc zVq=$CV(!H=-jO-V&voD}o{nmqU5qWI+qSM#&5lt|kw>wieE4lrMT?c;rP)TL%x?D} zNgR#}rYJLp%M`5>W%xa&D%k&M3F)Qdk)ns`Hd*u|L7|$gQkAL{8Q!*+jQBMhF`ig3 z;P4q{n|rVTZ{!aPl200mF31j;$*~9iBs?-e2O-JPI|Md%H-Um@%$a+mm%zN8c=C<+4E=a1 znOJKcM zev&L2B?x#7yXTFO!rkKFsNXE2Z?(gOt&kZw42!OIZ;hS?B*YBYTmb(Vi{To-L$$rh7}tmu6z!3Bod2*G^H# zPSnwha=jvyvUO1JB22ndBV`?uU*O&e1?NkRJ0rV+eDJ2QybHGyd<%1fw^}cc0!8k?*Z)5g04r{BI~-3glD>UMqcR5n?X7KV8-bxgOUMsP+U}i zTahk20vo%AfJ_%fsl6DFuyi5OWF!nEXc<13aL{K%w+m;?e1}(L=}t3jPzm>(0=mcqz6uV;G_pmdf=o7 zPI};^2Tpq6qz6uV;G_rs$2_2ZMQ(PGexeh4Zet6GIzi#QIU+=>YZQc-e;ureD z5zC7H>%Q}Cx*o;%f?M&`y;i_2F6`!JKlzt)_spMrl`|alIUD^UXLyxA(hv-mwefY$=v54Ztv zAK+gB4+1Xi$z+BX8OAceae!+9D*=;$KEQhcHvqm0ct7AD0rvqO1w06N>eDEXee5}a z;{Y!MtOUFgkbXG+4!{k7i=IJwz-iBBGChE^0aJkQ0T$!e34VGYlPL$>3uprVCtwrc z0AM@dDgTklYy~_Yum^A&U;!xda2wzR>_2+}!+-;TX+Q@$XErvm6@ZTb zRs;H9CU!&cC zy*O&@0UV$sM?lBR@Y^W(9k3km8bA{;0Z6~j@F-wA;0u6T0sjKn130@66dFA7BsQF2EGv>wv|l8^!~8P&Wbag4gk86yS8g zAmDPqy8zb#J_z^?zyp8}0v-W;3UE}3VO));PZI$D18^Z=Egs$l0dK&IM|S~k1$+>2 zEFM`L0Q?T%5x`UM>e48@Eq52-1i(}O2)_efor2#1R{(Yb7N^l~fL{UZ1-u9^Dh>ed z0CeD2CyoME0M5Z%$<=^&0mcA#0e%zk2;g?WvyPzO02cwi3-|}XF*p#O`Bo+~74T)i z8o+~pLV3X3-p*t;1N!jogPnk<9L;3<0DAxj0qF-U=qgyZ*eF=zC^%=-DaD;Q*C#r? z1J~1)$y`bTm8Za3!x)D@`q6`JkK@5B#+`AxW8Udy*O#2Oy13Q2?(C~CzjE9~po+4$ z0N%bQlc^`d?9&~06wVzzqVO}QLGnKj@;>ly%;8^e@$Uis9q=E`;cvJ2yFkBdFWaZ| zdj(t6{~GvT2Y+5p`Po+aW1#N@e{~K&V)4&~A4;CgWESP{7g~IJuf{7-<7 zVV333&+?Cfe-8L|_MeL*+!5fH>E)MX%g+M;Blr(tnAI=cBl{oxx52lo|MTF#dIJ7E z;CF+M7xuFH3#9|j1!))fAA@WZOXhK!+c5mz|AH z@E3vq3tdOyHlcuQaDjj51pGSiKZiLHPsForSe&iD75vBv_*=jaoPgg2e%%T9{opS< z0pGyfdxH(%36q`RyTML8 zR`55SpnMPbi4&Ahfqy&rx9IICTxRuSF>=`x;MQ6Yx{uUkg6{AdQtPKAZJ_G1fpe;Lp|hU&!*y!KXf6r}GQr zmj6ufp96n+4qqk<(f{C DAw4qqBT{C4nZt@v;b|Hqd8t>C`}eoh<~E)skv%JhJL zG1ih_(aTeuZpgOb2xK}SBPKExgP+RsM`0be9{i#Dkm{HKegOQA{5smC4w9*c%=3`R z$ysE_f~-soG6h(-dh+$uW@R=*W)@_c^JVI@GP@wN5i&O+k6V2@|E^(e!-w5a05S4w zKV%-q+Sjkk467ry$kE~-4tO?`aq9KlEbE~1PR!ND3HajqDfo7ATZi(8vF5%=*RRci zt>C`}{z9E!C?_eZe+&3$L4SqLzb$KD7x?4Bryt6)e87Gb?Fav2@a^h1uy(!#e7pLc z;4eA>-v$19@a^Kd4*VCu7hk4OF<1Bt(Ezfq75wG{*sJLFe=*y>E#Q9*{KY!IP%aXv zd>8mnfiS_k+I|e7iR61ApHM_y@t?5B^zt{WV!14M*_qJ^_Cm z_&ZO)uLS>R;M>K35ByWGAN#sqe_={s+2`hrLVg6=QfG z_>W<~c2iDyIS8oyLGa%NKPQ(I${->Ba3s9h*ynA`Dc@?@HxB#Lq{|8ne2?f546_kur5FTYw87wu~T|1t2Zb$+3o ze4L=Qga0P@*XQuvQUPexPY*)If&H#sE<6Cf^91}O;8%b@QLjVG6{D~pz6SgmIzO6i z!vyea!MF3lLhzpkzeX=#C>METe-Qk?fq!of|J#<2?*jjGc(-seMLtGzccqzl_4CgUi%CLdqDu#D3yqnle;ZlYT3|BF{gW=r_A7HqH;eLiMF+9ZZJ%%I3as3Q0WjLMTJcdgdHZWYp z@D7G|Gkk#I4u<;~zQphl!}l1DxP&{kiG)?Y|g2c zwDFV6q=I=87@GhK@bC9_vEN#MJWOzY%yieR;R2VRI0r|9CwY_UDo@k7GPQSr^{*DC z4C5KrQ=O;hHKy0((IYq)DZs4J&h{w%pAz++Wpw7zf5Y;d^XNy|p6jochKO@v+{^dg6;rk1m$< zJrWpSw$bx78~PU3b0!DcnXKn$pgS;*w(z)Mva!=f&wd;F%Qo~wHuMh#eY8=)e&c15 zaXQk`(EW7rb^sXCV#T%krP+IH&o5uI)@;GG5|}{vS;L*_Dzmp1tDs_e{S|9C~N} zjm!_2emdtdwO;->8ZwkWFS4Oe6!g)?eH`Z($?A>knf{9@lAz|Dn{4znfv(E33IWf)Fbr|_k224WCO?ceHt@W|)2;aTh>0Fs zAQj)i`p+zq@>6+#GMDKW3pyhjm~KPA&W2va`a5{Mt98GR=})nrm4D()cTAO)Hgnw@ zZS;T3hW-Q4OAF7+UH?GWHrBs#f>bQtAHwZZHhOw(==5$Y`SU3E@3U;@ppE=#nAb@D zGc2$CaDkw6VGUF$`AQ4b#U|Nt?4=jDx$og)44Ft>}t*Z3sUpPMZ8s64ZP=~1_&ZR|e!Dk)#XdhQi;Ml`UE<@e>~hi93-$0dcuvtQi)(MHcv zmS4~DEZzx$d=VCML*=V81%0%!aiP@D>Cd>B=?^i1*@lbh&D@WRWijJsreDJHDo?fu zItyvwc9sv%l*GrF_ovfje>pFagiD!z56jo`0&qFgA7pxz`(4eyPutY{vJL(BHuSey z|CM?DTR2kM`5B%^IGq`1F#XFs?o^(+M9|r24NPbGzwrE}*0wTZ?{21$b9(2l+ z`Rk(BS^fzQG&SDeveEyc4ZRo#P?Yz^aC=p~=P~_a9`6scJ<|j|x2=TDv7z6{dVXZe zGAfUSnEnTDuj-30+UTKo@Rf{S`*&H-LmUWd{rs;?Uz@j%-Ouzv&R62y3Miz19E<$0 zo5v{+591xCyYt3Nu^4x{CGx(M$K&^}khqHH3z>dPo}R0jzG^&|XO%Y!IwKmOcVfuS zhpv!BH9tm~emm!Rm50A(qley&DaHO##Z@ua@raH5e%5~rk2@#J|Jp`ge8*vkb?;wn zEY<1D;P+9@x+HXL(|Ll$+3NqyKdq`a7&=)qJTyyl;iu($kMi{X$?O=tJeJ zs|07JHy#qw?{3^%uI_B+S z`bwrxXF9zPMDk_4j#d4eX8I2&Nx@rG9VJ7z_cR;&d4fLL_y+eo!c|<8n0^`Ofv+&# z#q`aekOZ|4S_Hb2Wpq%-@?N&HjG3Rckx#Px6PHWDgDn4DLDx0Q`ybiR|BdzZ@{C*qyf7;Lwv3@Vdxf;JlG!}{1$D)(!jc7bj?-5^O^mro??^>N8rHJBL8HhD| zTRhd_Kqw{%v9&G!K&TY->Q)Qi@kdQW3LENHAZ0#VOeC~l-1d<)a4_eOju?(?rPS|Z`*aLjK+>%AdQ zc;&7B`k1F7;1BwuDClVpgu>7p4hBItJRTgnd)%gH-s0I+ZjV{H*zi<-`i9w63+5W0 z`3rBHGkc-u#(DFWxNAH$v*#>ydyECqPx;qYhF6DhR~3#&{d3~6SU4moqEA#i4Bwov zZ|!`4Y*E}B^G8DXrm5k(p88>aBph#<8}Wl|EI^BA$9;itrGFKDH`O=aA8uaak5O6C zXbzhr0s8E#xn$Yj!N=t#8Uo-bxjC8mR_Py{tl5h0bb;N1Hs&-dH5C#q! z)r6OYBS9bRlD0r|v?W3fY(jUk)&P%J{x5%Js_Z*IwVg3ljBdvdydu|MedT571fR+H5^ z?q7}246pV?o5FG81jA9pCyn4JxzR($t&)wmVn|r+^J6TBwMd8tnp=W?xWQZRS2g&m zywNCpNPXs$abSzA9Oer|FodZ)5tq@XcuYi`3NC%rsb={^I92LC&4#z=S&z!2!ZXM9Qv;&X@U9F; zVmUsc#;f4=czn^Yr^y@g1-XlT;CkxgD-jp4I4XwxG7%3vhGmz{Mc{dnl7vrWdad_1 z`y<{fDZ2%O;rg69W%R%eF>iz#(a;iwdl6T9HnH(9$+xJ%CuDMxj5SQObmeYtiLEs# zBm&YxD$$5s3*mcOm6b)UA#L zV#v;zfCK)B(d=)oZ&_tFO5-_$?&6QMS-3C;8SiQ9X39kapOM-i}74f&e9B&Be&ra`IRy zW=T&A1^}f>F^gJ>Q^YL~37T8fSQ6&?L%P!iNhVF|bXn_4%0M0(XOx2EC|}~oJnLO$ zbtg4V=H+P2&uN_|GnK_ChgeH0*>E{7xnWW6c2AR>>O2(b^|yKIn{M;a4@g+uJ{5CO zO~f0D2E}wFr#?AbO5>?ZtW}T4Q&Tn9+o^*?b%lXx)l(EN{Pz2x7 z3}yLL5VKK^p(%PpO$pW1*K&O^UteDwKX%lJ77FVrWqafgW6;pC+DVfEoLnQ)&%Ej- z(od>>n(rkg8@w{Zs&$1n(5dI7F!hqiDl)Xx8ihDij=CYeiNrIykc`@PC3auf(hd*A{qFVJehas;i!)SweB z)03X+XgOl^aHr*BxJ9iNML}V(Fi(tm>LpsKi8XK~uZplVR&Erlf-35jN@)z0=Vc2m zGQ}!mWfUtqnlSQ3lx3=d;}Z~%Wpqa4(8FA*poAjVh*mQwxM-b+=@yaQV#vi$C9ey# zSx=EfNjVZ|H^QrzNU$19>MFUS79v5KFyvUVDznz^R?r9*&5(wQ<7HxDpryWf*u!W> zA3sJpL3<<@Q{A8bED`j%}veTH6BdV z*r5pP^YgkjGJPVKTgz{efspQ0GC*8myC`#`r$Os=t*ZKlX04J{{$|=I20|_Im`d%G zz~ywYL@cO9ow5w&0vf#5T2zc=&Pq}QHi#7t<|!<68=J!+UbJ{5Kbx?y;35AG>0RLl zIq`7r!K}^kj=%`Fa9q&bOp7-I`FE|H1{%b&AtytKZC_4bQ3qHX7b|p(Nzt{cT!_0J_#G(7Jmfmm`N6CWjqk{O$_*qN!UG6$P2+HZ?wsnDau|Av>35#9dB!3ekic)8j4`mg`X3d_n zU}DVMD9iI1hA6M@Ne5L3b;3ArbD$muVP>R{Nuq9957LM+sXp9Hk#hVY&VPY&4$9z> zA>M(KSM{)5=wiA8>ResnbR4CZ@8t3dj#GjRb5FhT)jZG(@Tcmh_crKKkly3dFOt=- z1wh`zJGrX7dQVwFReuo|%D11+XX$KGl~?aEE9l??c)Tp^ROQwA+s&Yp$*R11FIqwM z9yCP6m2ZDNsPxXUDzDx%R`5YCr|eg93buex?=UM|y~nIzHJ8t~pUK7-aYKEg%B%ON z6;$t0tNQcXpWyOySfP3^TS4_6H748hPN`R zfbyThAHogQugVAOBuBvmJf0*~_O-ev_&EOb@-uvrt6(+GXZ0(;{-?my$A5cNN-OBp z3*$b&{V#xaI{uWI>U#>U>t(_G`V_9#MT1E*hA)$|bNqRe1$R7>*9Z- zB9E@h=Z}AqrAvo-O%(htuD|%>0yWM9xDbEJewDvRf|hHcl<(OrVS(x>iCXnCif7J4 Qmw$Szl(<+KYE%Ay0sU8fb^rhX