From 2870f256332c895601ff7e47fe0f3c6f65119e7b Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 15 Dec 2020 17:21:20 -0600 Subject: [PATCH] added very basics of array literals; not very useful now --- .vimspector.json | 2 +- docs/todo | 7 +++++++ include/onyxastnodes.h | 9 +++++++++ include/onyxtypes.h | 1 + onyx | Bin 506492 -> 510284 bytes src/onyxchecker.c | 38 ++++++++++++++++++++++++++++++++++++++ src/onyxparser.c | 30 ++++++++++++++++++++++++++++++ src/onyxsymres.c | 28 ++++++++++++++++++++++++++++ src/onyxtypes.c | 11 +++++++++++ src/onyxutils.c | 1 + src/onyxwasm.c | 19 +++++++++++++++++++ 11 files changed, 145 insertions(+), 1 deletion(-) diff --git a/.vimspector.json b/.vimspector.json index 051f9127..b1d77d0a 100644 --- a/.vimspector.json +++ b/.vimspector.json @@ -6,7 +6,7 @@ "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/onyx", - "args": ["-verbose", "tests/hello_world.onyx"], + "args": ["--verbose", "progs/odin_example.onyx"], "stopAtEntry": true, "cwd": "~/dev/c/onyx", "environment": [], diff --git a/docs/todo b/docs/todo index d7abe558..d642885b 100644 --- a/docs/todo +++ b/docs/todo @@ -44,6 +44,13 @@ Language Cohesion: of technical laziness. Cleaning up these areas will help the language feel more cohesive and put together. + [X] Add array literals; The semantics of how array literals will work in + terms of being an value that can be passed around have not been solidified, + but there are many circumstances where having array literals for static + constant data (such as MD5 hash vectors) would be useful. + + Array literals work only for static constant data outside of procedures. + [X] Struct literals can only have 1 level of package before the struct name. This is because packages were not able to be nested, so having arbitrary package levels before a struct literal was not necessary. diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index ae3c5bf6..f46e4e89 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -23,6 +23,7 @@ typedef struct AstSizeOf AstSizeOf; typedef struct AstAlignOf AstAlignOf; typedef struct AstFileContents AstFileContents; typedef struct AstStructLiteral AstStructLiteral; +typedef struct AstArrayLiteral AstArrayLiteral; typedef struct AstReturn AstReturn; typedef struct AstJump AstJump; @@ -138,6 +139,7 @@ typedef enum AstKind { Ast_Kind_Align_Of, Ast_Kind_File_Contents, Ast_Kind_Struct_Literal, + Ast_Kind_Array_Literal, Ast_Kind_If, Ast_Kind_For, @@ -457,6 +459,13 @@ struct AstStructLiteral { bh_arr(AstStructMember *) named_values; bh_arr(AstTyped *) values; }; +struct AstArrayLiteral { + AstTyped_base; + + AstTyped *atnode; + + bh_arr(AstTyped *) values; +}; struct AstCall { AstTyped_base; diff --git a/include/onyxtypes.h b/include/onyxtypes.h index e96279ab..7dbe2a4c 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -135,6 +135,7 @@ Type* type_build_from_ast(bh_allocator alloc, struct AstType* type_node); Type* type_build_function_type(bh_allocator alloc, struct AstFunction* func); Type* type_make_pointer(bh_allocator alloc, Type* to); +Type* type_make_array(bh_allocator alloc, Type* to, u32 count); Type* type_make_slice(bh_allocator alloc, Type* of); Type* type_make_dynarray(bh_allocator alloc, Type* of); Type* type_make_varargs(bh_allocator alloc, Type* of); diff --git a/onyx b/onyx index 922dbddb8da2712f09c9e105b081ef0ff8352ce0..07ed65ddc6f1a3166f84c6f9a20047835878d6c0 100755 GIT binary patch delta 93673 zcmZsk1zc6h_rTu_JOl+FD4|Fzf;2W3prRPqy4cv*-2n1bKpbh#PF^;w$X zstHdPI%6BT2V#@$LL4Ndy7p4sej6#Px3%xMQ;7Yfc(fEpKO&9vwiOef3h`7aPL|>w zWVqhWK2ci5R7x{IYNa#i7PKZSL3g$^`4TCsL>Mhaim%Jib$gIDAij81 zDA%m^U5azMlNlh!LmTsO_W-l2rjby-a5UKl;=JKPd|gO&JweR!o!*<=1M&WmLcC6j z<7DUqmZYpHWXvE^epQP9l;YyEq!Ea{Ckb(VDc&Q+CQZo*5byjTGPYNW^Q3s_N3s&c zrwfHR6bh1E$XKMj%zxxOh>IEsxRBi?>mDxNsia3?FwQo9F*gQh$)>Q{Fs}3*5kTxJr|E0XU^3dgU8Ar(s z5a;|Nj+NpYN69u2=SgvtRQ`ulzGObR2V%2vBJKhy-X+B$gGt#kw)R^JM85CHl;4x$ z$myg}8QYl4(?!O#=3UN2r2OD0!Fxz^xl7(wR{Z5Mwpze>SM*CBBBcL5qeSZdmHzum zem|P?7+p6h7$XIHn~DG{Af4=rlYGK4!M(BI%Yn0qbAO3=m-K&9R%9Z)>yAo3aEQ?J zC+ASy_oX0fgb?VZpaW3g z3@GX*BhV^OhzyX|S_HT!BW42?i#Xs@Gfrw@A?PZ3+oi&PI~l@;nZfPOdB>5RT!N-;re6QsFmI(er>NzI4Zz;id zloIjlZcD+vvO<8s^z8ai^840O5f`a=`Z|mM}ntH z-Zv&t2o^}eCMo!@y5Oufv+IE5>w^Rz3f&XCE=qo(iQt+g?n&NMwkD0gl-#P3@E>zf zHZx=mm*uGN*#l6Q>+&e~rf79mPOvtm73 z$gx2jw3CX;0_W|1kH}e(NV$Nz2x;IkCxNL!N7U@50`>w?}ega zGRKjUJB=4P=&{DVCkL$!l0T7rz!#CAp_0D^&iaF>s2E}Dx>BGo zBTOA3`-7#D+e>bcypiM{l3z0t3F;s-P)qW2XGO%-rT?aqZ#^S;7PmhL`$$258Gw}y zyCwo>b)qO&B-B$zFqdh6_n@l0VNA{#Q!>g_2*E{(U7!=E9;$4}|~Wl3NNMqf0p;1X$+GNd}mIP;i~( z{u)0dc%I~;l1HBsyr+zyt>h6iLOB^F`C!SX9cBK({@Su=k`(N?AQXAX2;w9^k}G%% zsc50(mofzJBl#N16!&y?#eKCH9yKO+TOb_qrCGU8{FKajQkz3eAGN$!>{ z{BM^2tzg2zT2thC!OKhTEP0iEf}fK-2zU$&kk3t_)0s*^D;Z#r%yD;_gGkA%9v6z{ zNggfvPRVOaJ(DHRJSqHZdQv3scCwkM|6Qe`6;g0qmStbbH%Y!*CbWj+S(1C477@&r z5nq+OoV0|H>U0k!KXycrY|;PebRVVQ#zi5}7NmNZ(J%`Qm32Z>WGi`xJA(Wnhhuli z&94Z)MJBX{s2u`*}fBp-K8_`1TYvx(TqGSc&^mrB6+qf0&P>o zNAlIfLby*`t{>`OV=2fRE(BVcb&$NElt|D#nVH?!rWsq+pc{(7%hw*(VvnX5ehpDkOurW^K^Qk^UPeiwIhYcy$*g zcbg~p8_Aza-e!)R|0g3MF|iaT-7d@0O9rr$e3IOy8Y#Iua5gwCkP{Y9$!kjg=k|&W ztdP8^dS{9NZ6u!}d93U)K@qRBeyYSR79Nch^SiuYe!GT?g*ZaGQXSczCiaAJSWXz!mYr z|K5PV+A{qTxEH{E4enWRw}YEq2gHN_odSO+!|krHSa9Ew@0a0e3^9HqGkv^i$eL2d zu1uoM0Ct0WKimr$lvf#Y$)^(8Vq|Ky2gnGxU%|~P7KP;6)mjZM^_r=?oCo(oxLKVj zhT9)*c3H5HG3Jnv&G1$g?mytpg8LZUTE7HNT_N1g%ptD?`TVW{`P751x8Uvo_j}16 z%I8q|WRH2$y-KIk+L$0|@R$$x3%F0hy$EjYDq`j0TcEwlr-ytVhUb63$Ud?V6}9z9 zC6MMRJ~GI3KYzzBlI(!z2e_l*)@t=57M|Skt6;Vj=ta1n5LdtQWPzV`wdL@}u1xXJ zjfdwsxW~ZF<`HZj$@+si%*dJj{dXZ^9oR!Z4A2ZRKF~XC9JtuU#{Lwz?b(aG7Q=I- zbhEZP4emy88{oEqyD8j*;9g1|1eQ0O4K7Ex6UnzgkC-@ct%o}mZg!1=djs68x10`l zb-0t@?g{rUxc9=%t`NBA!rdJ1HE@T)&8}>?bKpJ%_n&b84R>X@W8h}Zd>h>Cssi_D ztwZAk{tTCn!SI|4_ayng9iHs_!3FuwwsO*V{t@O%vS3Hh!)CV=A% z+-Ko_3HNE1tYzR}mlfP=;ob>%F5G{?tzMS!G8XQJaNmX-N{wGf;qP&{H^Ti4ZZ>p3 zhi7ZJkHB3D-Xq~@2G7zmkmo*D9?+36vp937_!FQB;MGOpbrtTa@DPPd-CP>3a5u$& zJIPA{(~5S``TcDKYTV-6qzxByb={& zT7&Rhpzu(Irz*UR!qXJqSm810ilB)i$dH`nxT(Uk75`xh&rx_Yh36`~xxz0B9>dKX zt_W@@0a_?LPvI>Up099og%>KkmBNb@-nzv8%)H6y9ColO%^0BkKRC-oo^;Qot%*4<$gNqKHjIv}=LFdub4!sfwQ7 z3Qtpb6z3v-UAiLZqXfuMcwdEQE4-h=b0lXL?XU1$g%42p#TZ2}P!ZfvxUh{7<|#Z{ z@t?2o!3r-__z;B`Ngl&eI#dzp4vOel5e!qfspQPRHcewlo}&~#Md6beXZdF)WwTxFid6!zsl0Y2Dtx*I;kiKJGZdbx@E>;8 z>C#jls{}|_1Tz($q3~G>&sKPx!gCZJukc)jCkQUmbx{$_Rs!5m_#B1jNzUp@qQdhP z|49ljRQOzl7af!zG*}TND+1jiC>yvKpT}L|kEy~_6mF^T-xXd#;qw*lqH&i01&Y8^ z698MN@BoD`Qg~g36NQH;e6hmA6}|*`Nxf*N2$m`VA{9;*9;NV9g-0v=4~36XxVGW~ zag1(~B3P~jh*daSNNQK2!dGYzo(mMdQsJozU#0Lg&LRJ-jMEfBx)NZu!ZQ@UM&a2C z|4ZRHlCw&>R^hpd|8*ty2M-q&!FnaY4TWz|c%H)36`rqf3xyXde52$%{vt)NNeQ6K z`OykCE8JA!TNG}o@U053pzv)9cgd0Se^vzB6@jM`AVc8+3g4mdx(eT^@DRya5o9Vn zyu?4`f0rU?S0d2qb}Kwm;d>MwrSL3;M=LyA;iDA3mvOE9CrJTI>EB9#ScUIXc%q_c zzrq(N{D8t!6@F0RF=>k6kRnJ|c#gs|6nHVRKwxGm?h{iP`a zJ0(E6!mlViL*Z8yo~`g}3eQpab%p1~D1sY`;G)8BD*T4RZz()a;kOl@ukbqxFO;0m z|L-b-A|=2*h3k&|Xa)BbZmRG+gQ+S5L-zq#?;qMflqwx2Fi}shR2tFtQ zE-L(^!fz@%r$MJt?r5s_DnZj>U>PSh~rB!xR_-r*UmaP~<>yAlc@VryC$jZAQ(Lb4#j0Y`o(+ah`zh9VDLA~GBd z``9|!am%nw`!-!nN|*XlRTrLgGQWQTnbPSgPR=L&I(wJaeHOG?er9TCV}#p1B`dpx z;IdCiUYAk$&nKB3e)|*St?x--H+xdLn>!xIoK10{APc*B;WzKN@Hz;03ulGy?s&3r zcJ1zk8wlqrph!6LfF69ygH`R}j%NwyAaI5YXL=7WTuL}!0X_X6_v_!&9nTleQ9ZqI zXW`rfPFvyp3eJDtaKDXvx#MNR8Q04TcNNZ4;ItP`LvMGSSIGUg1Lu0-T-e(S4-(Gn z;H)Z~j!|Ct(QEFvA2`@ z&YFF_@UxfP@07moc-u>|x^FNZEy!0OHHEWbKX?4$1@||jpBK&)&SOBw3#Y!n7p@M@ z{=xX&bM9|me|Nk`IM0D_tZow;hFi!0I@63C8dYtknAM(N&9MV;DqB{N`fBZOD} zLq-kB#_ukZ)kAGb$k5(6g*iXt)tAVMVO??6OQdL6HKQ_@OlatMWJ~G|w=}}?#e`Ma z_ZP|F;a(0iBUlU3g`-@k*5lx%MUqi?a#&G#TuuNjJcz96{N~uzHrb*!_h=T54ui*P z++!IU`q-o*y|~WAG_%qOe`D-+mb4yI0h^vB1IN_#Saik&REOpARu*<6Jn2MuivImw zo{!c^m-!Ma|G=5d!(*l)eBl%c9=9IXIYpk1n~3k_lBn^`jT3TBbQI0S70I#j?)a}< z@_c-citn33ijzzW*jy9T=Rryh5N)@uc{kpxCV;#RT{H+Al=Df zg%F1+xG#bmZr*&ZACS_<|o{63YXPcBF z^QX9ZbvGpF!Dt1g;SaZdK_=!lEMoc0t^>G5($Va?aNuNw334V;(~a?k1B<3s*9Wl7 zlbJWlTVE7?W_&#@iBsx{BsPAwAM(!Cf*xkMTvqtuaYe?4l=?sl*s_PCq{CoO#C$xz z1AvuaKzMRQE*RSYfzh4CbjX@ePCW!I^vayL-XXYobV*{zcI6gOt#O@Y0P<5TwIX$9TMO3XTgS7 z#38nQ^I@*=qpkfY|auR#@N$%c5-GpFJ2}kzKJ7IQDO1G;<;@ z^*5O|GZ0(9B->{W!vpsc$60}R>o1C2Gj;}r^uV&4_HrZrEoHzD-PL{{T zlJ;BxdI1 zkO%*GMC1o&K>W!mAtgDCQHgx2t*p85U$vyCf?WDoH zhOU-ATEjEpt|Yd8hgK4vbRPQD{I1){vU!bgwe95AyiWM-RuYiX4x?>kR!TT_{+FCh zvA2A6=qK%)$cL2CxXvRo_;**Uwm-{Ex{&3+kHho-C06rYEw>%~DPS+scz$dAb~9Np zzZy2JM)uA3!1wQEKAQg=;l`WDrG-(ph3Q~~6#dqHEZ|Ae;rnbP%@-Z8{POot%H|Pk z(i*#_lfI-fcB(<Tgfjl0Hmvv2r1q~U;A0CtM@K|t_IMBxU z-Crb%dgD^pNeUf-fBTDkgSR2qh*#<*{M#DxE%ki)lUG3Jc3zuBuXz44x%Y>cRr*&J zL3cy^-(QN0pWiH)Oe!u5u|Q5*E&1puN032jWco5ETqljJSQdecR*@IW9PztHnPrxn z8e@8n*sKb}MaxN#Rc&zkabj&(pRUNu1RI44J)KO{xoqQ{nwO7 zv&p12mGQ(>vSN)3$w~LagHp-MHEuZW46*ua1pbGTnSc4<$EV5mzbfL>r^)HRf^b_( z^lJlgkJF^?+Mf8^DMHsSEIaF@X3DVG?7F1(I$!*H2^p|%KHhVJd|21hJ~)?|9L8a8 z@36e=dSFgAR)v%8AKY=yV)E*71+ry*H{5zLG2P(f*o$k7$YmWD^Q$!8CMQYz4M8}U zka-&d@zoRL(1xCP!U^J(-UoXhBQw*3Q4l$t?u+{`B8BO0IQBTP-spix9wiMow!)_u zlDQk*@Dun|`bJN@{}{Qku@`DY>TL4GuNIJjo7`~eV`T0oe~Z-?S`knSSp=mPkh`0D zW7`GXE}loZT`Z1ryDXZ|?Xv0!*rf*X+~S2pj*w1U0aSQI>Ybe z>K1R~MTd)v$;?qUWLv748T-{O)cQwh#Cz*f+rShkvJ`zpn$iY_r;zJg>lq!MXF^j< zjqHf`wpd(e9@)BW6izunoVN!W%}O?*tEL(`kf&C7G|a zob7wbx1DkL@*FZNb3eA8Lqc{n#-71BzdnBF4#pj?`?x`#*#04cN8 zZWAy%6PoTarMH;0gID+bf~8=wf`!a%yj~}S!%&;ufVAIN1D}t{oV{->LiNf06TaAc z2B~(y4L9FGA`Udiw%f_l1GPbP?tm|b-#C8-(YOraaq9NDz1d5MEGZ$J z%q*x-*14phPv+lEBNxuB#rH>Kjz2pUs@HI^dWwEnEb}f0t470#$$1|&|yKx;)f`o_mKKiOYpJv*4i+I60w0F}=_mRiLkkiGlocp+DX?galoj zjMIjYT^GG^<_hxQVqLs&IjMB1F@8Uo^uFYcO;?b4m%8CCf0F!5bPUPey;(-=1!lv(zQKf=2Q zkl?FMZr+o5c1qTIR|i0NHvGy_)0dK%t4;BRRC4@kE8KX1?8Hq;^=swvfTg7QH81mm z2U?o$KM-kZ+n+4C=3@MQiR|`XXB)`fYu2W#DeqZw>A86(cEs|!9v|pO?5@X}w(7@{ z9d=O+T>GvE;`K|(tLt_+Whp6jBM6u4M;hPgYJTXx7SrzgA}05~Kc*S^Pe6uDV zKAzOO>4tkPBfV}0Xt1Yx|meEH5PY? zA}en>m3uc9^e3GxvBrcba{g8&ypfPTPpnDtt%3MuZ!+k%7p}OFklR7{#3FM3wgXOI zL|)tu#}gKi+IQ+2m!$ccYD8sF>!i{#>+j;u8~ht4f7P7b>go^%+NiAiBs z3MPMMtx3##8YGfYkD6D#odikzC21#t!7PD|Ernp|{EuD8-AC>5l`bUUagDN<=KN4{ zd=44?xGMgVNd9=-5fAJPHLt#T;AO1>cwFWcz?OD`VQngFwm;_nH4>q`#^G-r$@M48 zj7E1X>Fhg{-!mI}ff-6Ka3G$%e%ctjb|f|O>zlv0py_{jK~%5~9mt}5PxG`A!BQzO z=|Jw~2bi}m5j2*9o$X2Wg625z0-0J+9Y2mI+Y3Ul{{Zr)V47b-I}_H4Wc6odtIc>B zgC_T@sXoP#<mTACvLS(eqXDDW>qQp53AH~o zjVJAY8qJ1jykACxUGV{MGSU-hq_%8^L z2`3N#bHl$+B_?lO@zANH8a%?M@{S|w?La)QImvzNj@M0r(LBg@)+A^ezf5|&Od*Zl zRmA;bNY{4`*l`M(_|6CWH-il$H)8&;CAt1?HckkG=GY5gokR}3Z;Q7~A(kIT~AHnE*N?tkNpm_V8rdE&|wGDjErBHIC7 zSP#TD+jp`>B)4n&L1tGQvDbbygk1Vm8)r@+W}kzwWhiO-c`#lVLbiXdfpbTbN1yxQ zexpf?FU_&nc(UkAV>~06T>H`=pY2E*eC>w!HzKKD{qWh*B=;-q;Wi?#zeeG)jY#`% zcJ`kevT{p^go;^^1p8eD0c_JNMNc}AS>L+h2@T1;Z+>|8C{p&jJN9o#YJHEYOU|O6c<^xQjZoVP6^8RjGhm?yDdG=E z(d8hz2%!d6o$B#yYB(W?-bZL6-XBCGG3tiX>e5{p4Z+qy)WrzZuKcXEh%+T2m+9ki z=4aJqIz&HPV=$d;ga+Zub?8GQMwgaCf%t7SJyi;2 z*1cB4L|4#Rv`}5R7z7W&hKU#i?>3h?(C_9h&FmpH=q^(<1Lp*0)iguTFm*9Uo$+gb zI?)`3<8}V@usJ%9kNeVv7N{Do=S%lnpys%bAJvyd4Y8XaZCVyJ#`k<_B70xuOHY%^#X+=IH7N0ZEtuGJ)a*9u8B4|0CRI_NqcnE1-_p ztP1T}0n%}*GTmAMMVR+prNt7tO2m@uN}VdArWjYI{VSq2raRqCAcZM8G|e7Wr2kZe z$~4H07FUE!I=Io6_Mq&nD_v#}?=xNLV|z3e8@tlJmEe7^3*E||BV1@vCCD^(q5U0D zTfD=W?sk9=1Mbc=)DhmVIMGFpXqkDyGA%Jxmx;tIb)fB>&<)(ck$O3!dRXU32Rfr5 zT&ogY?TilNS@yKQ3mS(V?CC8Rh$*xZb$5jny|Jg`UEzJbJVbUKKLi%7#|*fJ|*zP@;Q*)Low5^gy?G1%FvrCyQ%Rtl{wW(*AUmaR%+^2em zlsivhQ|nVrLwtq%%u(AA-Ko#( za0lqV%0h^k8X4kma~y1lzr!6NSsp>ifQ))!6B<+xEjPM|Oz8D`=r1ELa7?d{)*CI< znb4{YPzR&d;F#I~RW@|_u7?pQEEUQm-wWVYkmC2>C~Ao68gDMv>*(kp`101iAsBFQ zF->WR{BY1WdY~cnsyn~acMZ`|lb7H0x`Ju+d^4yvR~w;@Ces)wLxY7-%MemmlL`;j8ahKNnxqr>N6pYdluJnaY4Mn~1na}igC^}Q>`zKJh zK~HDaM|SjBV>B4kPt?B&axJ^|BhOAc%g&@vv{w_Tf=xcs%qEbVPeod8jG97jvWjSM zQ^?Jn4|HTx$W2rcUEdV#GHwYfM5f1tp`*qlKWMKJ&7eED^PZk=hDPF{?`i$!Xk^{b z?;t7c*e>MEuB^z}gOZ%Rx6pESox8N0S-;DA*c`!X#PVI1NecuY=I!57^OmR)zV#n% z-4eaVpWe`ht&lU$e?xnF?DD}zLPIrf6C zX@}aG4=IsENy){6EZg>|DZ;m&(Hx>E!c6>xz{02qV{$HB#8#;#~BO+OL(Qy(|!s_IvMn^5kSL?^c#=AJiJ* z4mWB4zR-FG-O9Sq7Y#%><~ps@A4MA_MdZ+`mz3huEpZMH>sgNn$ z#_-MZCjhge2>3wACP%`L_)rb#WWMPQy$<{vw&#NMqVPj!^u?8ET7Tq-dt9T3`lH%q zc3p=UlOy08J)$%FqXziyRoZ9(2x|Q*=yjDI00G`}jlLfMwP0i+tvV1j_Z%kDoCne5 zL1BVv9159f*qlF-O@jFprA<3lBy!H*;vc$mAgUht{wmKdOCg*U$YI%FYd5AN?X{-k z2Ad;u9p~FBI!;}t)dxX(gI?27>{<3T-8KkS^Ta}DIw(sQsvf@5RK04Wse05#QFZ?k zb%=(bi?8tHq(abC5p+sP(Abio6O^DPqc1^?aHTHMFu(aS*~r|ps?d=LIueBrs}ddM zN_3biI}O*o}MXF6vK0qNsOJfAULTrZWe_0DtE)EglSww#OyvKLphXi+l0^ zcrM3MQ-@8;vx}ixvP(3p$p6pxql&+2-#2Jk&Bc+eXbeqVk^yX zCtCe5T-n3tA->TN3l!Ma=d{^Slz5=io3tCV9Y#8(b^)67?;mF;s{5idj z?=Thg5v#E^1tKSM>n8I&Z8ZWlb8pA7sqp#%aszRM{_HjUJl!(_1>o~7=;6`G4!_K& zP9uG{$i(HL`yZ2sDoS+3SFFLgVvruF=ay4YE#TwA{}@KAzRH13UEf zXylEji*WexQ#x`a`iftjqQgf)hd1#FJu(V~;0w(}N?o5&$I;LQ9e+$?MguP=`N+rg z7JJVM6aMTUGd=EE-NvAXdffL|)*lnmXpEhYQu8TjAx)ct?3;AU(@II#P%EVm4Vdef zFT^c!^g1}fuV9k*Jlwq&}-9Sp*dtf zHJ$;nIg8kyr~^@V##n3<#o-#6p@aa|B2)BFxnEf93&7X=`6nU&5LrriNH#YwHojg0fD0Ngb_PCD&n%-_~rZ$o#H*v|B7{V!0h+ z5%IDfD|CO>)>zaF;r7|oViv5?^RwuLS+MZhnw7O<7TSVv@ow5X9<|3?cGI2lAQ-)y zzKlna<}uZ^h{jjv5#h(X=->oY1#jO)=O>`wvHvdWJRALH{3H|lmcm&mkZzuhrWw`B z)bq1$G-M8n#=CaXO>owxdqfjLhibM3~SH*+JhWBG*#QcR;?gEoq-5WMfE! ztV6m*h4I@#Ly}MvT#!K%lAzbxnL+m_p&EF427Qx+tedv=ha@Wgn`c081}6o;R5{tA zNgV}~c`|P^bHcfR*>H}pmbK}=B5N`;NujL6pCW&Rg7=e$D*?zSBO86>dnnCx> zg^r+?A1#`T9Lk3XUv;@JQz%(~KkAW;hT&5?=#peq&nkgO5X(Kl=>Pi;nwJcFEx)y= z*7Hz%+mBm$Nk>7CUQ*IEw$Z8cP*X|;*2 zSb*l^s4ZE33t{nuohs4bMW{DEU{BK)p_({x6TP+wO~w|RXnO*4vrQZ6F7|A`k=iXr z3mfiQ$JFcBRpCZsxfOMEu>jJFv-w+61!k?112U)9)5nX^09-DewqAnnBncPZ*@ zd22mW83Ef$aJox>%#9wT$OW%)qj?n8Q)ic=GI+X#-8r;(DX<02`L2IKKsH%Rf+J)p zVK)i@vNCjaqqRVVeX%P`WD=_c;pkF$vK5>&^91=*S2~hHr9SLRmr&$^Q(Z-r6I@x8 z!_A6U^E~P#zURWQjgkI@3tf;3Nn7hecc!A2IMRiFPlc&mkPCJE1KIoQSvYo#Eva(` zq$mByQ8x?h!jlrhk`i|~JUrQ^(3uYW1E%DsoN3A*sDGvIX*|*%&fKuVV-9$46D^O?KVShq8Q}oSmx&Nrh>3>p_m8iaD`AR&AvJ&VkiKf)~Pda!ddWlU| z(#Ta{zJD#~lvSvK(>m=uSzL}Mm@OZM2e_Hm{M3dzI&U@dS(=8b*w$UfV{CLoiE-RA zS}zS|WAFZ?L(Po@8@ zMiY(xp?W(1jfn$IT!X6O@5^Y$8WdvG1E|#+*cmAG7u1}Y%c$>PC?4-yN;CgLNAPb; z>BP0LQ(2fw&##3lzLC;e>rhC*)5Q=^azY`j6L~X9&}kzCJ0Ru$50Ad2?=xFM*R6xK z?DxfRuopImE-$8E*P)$w8=)ENkyAO_%Rl=+PqOmXqw=`&;DtPz1#CIW49Jv!yTCnX zLygnrr!LI0-H1$(NiYn<&#%IAAKTKqjd3aZ$13FLR4j%|_I>5olK8LskCJd+G#}zg z(RVwqs6Nja8*|5C+9VAsbel!2NZR2~i0)5AV_aj|P5>{O3EcHd(QI76ipJR^jLiqx z26$YK3-ku?JPgmy@Z@Jh;ZqVj8=6ishWJ&6+LD$Wmc}N@u*d-Aq7S-auEliPocHmj zUfeJd8T7>^RIxle^C6=MfRn4BE|t3EAX~J6KKKjO35tM85IbcJep17Oat(1+Ab@su z7Iuu-*;xn`mil}S_W~7_jXcjE&>g#xt#PtxK`3po33)i|DZ|?V>m6BbKEzBUI=F%> zG-eYT->R3G4iz!+DL7DD5K#htI_lg74qp}o{*dKD#Bg)9ui#W~fsGLj-i(~kd)jL= za;|(;D@oAn^b*3d|8oS-Gk|IARBR?q+l*}8?3iL&B4k$NmShQvX0oaD#%9#2+dVU3 zQ^0Rics3S@e)_l&2+LpOFWMM-gungL`@f&ZCq%D62Ghra>xiD;1apJMTab0gWT80` zG#9MY>H!o`+~Er0Nh$D64XU-?M?}aH*n;~P0thmc=5ImGa1}%YwxUWF?^rh3k9b(V zY4PvKCT7wnKzXb*Z?iww;14^u>}#0AexJk~apz#k7gtoyFvp*ha)vm*%UEP)h`-2o zIE%~;@x!?vOGEq&wgFjWWr+6!@_bWVk-H&&6Zcis5Pyq1su|+lxOX2zd~|!}Ek3TO zx?v9AX$42zbuRTY#NXro{b9G0I|2;xeYq&m5I+PQ1uY=|aYZ$>=wWX*mdjyp_8AXR z#}ID>ehOTQscS6!DquxZT!D7mhRQ(29=HunXlS3vN={#W$PYE3e{V;V@Q~|t&^9!_VZ>}6XCwVD zarz1%<8F-K&C*)-+oC!6Ix+A^q~>|h@2;*U*mlc zMBS6WjiY8}-N<6|%}?iOsl70K&7Dq1>_ru=2Yvlj&)rzMd@t&0`+XW@F-4!Z4?JiK zmwMA_*}q{8zTpO~|2H~@!|zbE4^>8&sQW&&!L=GROFkMEtY&TSPuT|R8s@MGT3k_G z`f?v?-k^c}GEmgO5Lc7eeE8zflhLNDu@#>9oRKfR?I3ZW?K@kd zCC3V$UqMVjFHM4N&3V|`$l}sR>U3dQ%5_8Cp`|I`Jxcf&aWT*o5JA&rmz;QI|2pW%1PoREBQKD_gSRQi1P9@~D zvGnXwR2k1XO5YrX9T>Cm^z|{+%yMrbcq&D1JC6F{f^qcFahPpJkENC; zP=HbGv3mNu-l#Gicmg^2jvEE>B=cV?@Ej-PLwSp7&W`Oo?vgpwAEW5@6Y%A}@sW^{dyX9oRWspk!O&Db-!o7D!e&@t~vvg#+5_q=`*Oe z?YSX(R+_Umfk&-0&4$w8v#7P*(BU9UPVwZ{<3FW=g>0Jwy5=mZVSMs$=*d<;GqI(w z&muTkJB%96p-rq?KL_i=NrP$OIaJN+DqBq^$GR{}!brSw81*_2RjR^Z+U`7RAJ{pX z#~z%n#J-R*Hbcx2(~W#SjRIRH>z$s`%jZ$B<=rP-tE|Bno(Lm2N7JASV8tOqs*E`~ z(KPh}x`0;=rh_k{NZVQid9*FpE76V~NUvW+HLd@B#C0p7g9cIOOQ@Yy%uka1$iX!B z66$PK@n`H7O`lvs;TAdnGClC0#h!oN>7^;CJQ_&bUPfK2wC@kG^TrESk!`XT_pMbc zkAFpVA2J~8-epu4;UWF$tAD_(H3!ftSD>}58c17Qfvvjk1L=w@XtHfyA5fX1FTDoh z)JoBzFZHB4>JXvGJDwEI;LW;>IwOR?^nde_a4#qA2Q3|&-y>JaR z@+|1heCluA^>T9(}gR0Nfl)eyU<~Iu;5&Om8RyQ&4w#1tX6l| zUJ(`G>2Fzs9v}yVx-je1bZpuQ6eY7C_Oa#WmL-b5$(^#UK159r>P)-4z`>EAN65yZ z1NRQgDCWJvV#WKT4s^&Pn7wSKZSSKhbk8HOY4t9`6w5kOH30J!nbM ze_x~opWB`udyEEpod?F-XCQaUb>@i{NvBzL5T(yf+J5dtJ3T>raP>~q{3+C%p&esO{N{p&gGG@fchA3sMu zTuy=xo{f6k^~-X(XDiz01!|01)3q;9Rn&@}d4W8v!{@PxSy6+1`3%{!6*YN@`bV^2 zNo15+{Y0{ozFa1PZkdV2Q26RNhuS8Mw0CF)k@gy!4s1TAce zZSkCNI_MSbr@&^><9HNK#_(?=z-d=IwOY5z-gwQn~pz4IslOK>53d#EK1KX3gK1e$h zK`rP4p%t!B zZp0KGx@2yaP~3I_(2~;6-6=-J3N^Eu8DaQh_r4b0tH&Mi>YCKT1h+ypXjc>LhpMwp z^Q!c|FD^~9O|Vsq0G2qudoE_0eBQ?!&zf;RN8gosh4v#pkcwr3wtZ#Me=99l3TGpK zde#DxetzsPVg2d*Qh1G#pKKv6)qe3X4(LMC0!^+?wT*{wrD1&R_OMdij8C)It zQcH7e1COfaIJAWq1QdtWg;n`cb#7JXQCwL`9ofgcmRNNP8~@pNX}&3Fabg3_FvoQb z8zD?dQ5UC+@oA?YHMhWrP&HxlnLYMoNeUpypx(xYXuAFl61-V|Z8f*#C)%2o6;0I4lteUgMFnsf6HHv?dFB!offNcsA#jZJ@4|!^Sx^AS?fGYa~N{4iHs^zA6Xy z$@8R6<*`5LZBrhH!-JN`jhrhpH3_5GDv6it&cQsiuvfRr^j&$V99KN3mo+p#cRIlu zhdR6QFzlCiB8;ONW|AAdW{qpX)X3ZhceQZ^zfjYo6|GlX=@c9Mr;Q62g{Y#+uGHHW z0=v;Zwm4b(*fB^69N|LYz(Pat5p0L6Vp^FFvcm&xoVhMz)#q?$`oIoXF|2^lB}Msg zh3H?ZJ5!$uI2pOn>u3iAR0CpOVOG4%EF8bXv8X>Euc{0zYx0xs||vj?~%#Ixjd*<$yzd>>(h0(uPHy zXk6ll?`*uE)0ZnNDf5-~G{XUJ#-;nxo{l&IRic|6p&Tl51*Roy>Un*XG&HG5%Q)c% z1~y+T$$lCYHMyfB9qNQbabYF8%?bM=dwRzS_rotM(NJgH7+2KO?Lj6r9Glv)7}&qx zz*6$Pr53JtNZ>v!dUG0i%!%p-KS3Jhg8qRF7rNhzW zuy@>=up7@4eXJ)>G?=nvD86P*C%NJ7_!MNp4Nf_K0i}@3^zfvxM0h5$fb1AOw8>aI z>Q@=JwwVCCzu`#<(R?$3`8b*X+J?@rjJ;r~^mk?42-a(#D&v|q4n6)SI`i_haTQ#h z-dSv7F#rO()l{-4{v8fIZ*GRgIlKc=4~>)qeeBT4V)&H6@|B{0)t$w_%Hs%kY3D&) z%R?u_f@Z@xJki9+l5Kvj=%=V zkskq);BXwQ^V#RwxKDIubL>s++;CYs_c5}hdn~Z^U>7T9@EgL^dD=waaW^gZqW@?K zzJBz#cVTN^{zUGqOdG_`wr0eg%>I3ooFA!%1Vm(u4?P+DLr+Wud`*%cdb0V4o@$^{ z`_KagrhVwi<{x@^30?!UaI5lv!3DhQ3asHTFJK+Svt(WpOu6;oPf{35Ag}ha zBCKL+Vp#XiOJ^&1`k?~W(+CU=R_32$Al%9P;Bt`lGV433y$tVO-A>9^bFnsMXnY(^jd+aw*^QyQ8zHUiF*>g=*9IT*aLU8brycMc2WFvH>blra9`ZqKreZ~=<8shUp+wYAWItP zi9?OzE!bv)GhOV7tsT#ohDi7llG$i!XGM=u8G76kS9Lj)1W;68R?^IMGQTQB%UnQY!{n>vK0OLPKuU`X0)gp4zvtQWLmTpOr1p0pWQN}ZM?7}_AWz*dtome zT!#MPg?HL|n{rJ9J1Uw6nP&Cz#+6ZUWCuo}0}@BAc!Hqt^XoxgvIBV4IGP>8pX_+d zz63SqtqEdu`v#{9d~hZ!pGH^8k*(Fi~2$P-QJ0zcdp zA26fO;h&|zYfWe;e;E5;8PU1^*x9CkTOL^LNJ|^jgZ|h971AgEcoME)M56*=(tNIs z=2KLaMxY@8|AzHO^xptn$FEKCOm;@F-Ufag3S*^QI^yTZn;|`otBxmNM`QY>IsyKjYrJA7P6=o{h+dlu!L$^>vd%&h{O6I&CO)U7|KixPhE zoxZ4veaug=)f~6w{;6Uy@AI8DsD*v-t8a8jEu4*;exp@trACwn>b*=J8MT7cQb`ml&reKY$S6MjAzhFveJyz zmFBXL@PpX>=aHC6_ORpt!pVHSWanwU2Dodpe?Rcl8>^{zW;xQzgypoYrc)eTf%6+| z@H?5`?6a`6KfT!id&k^tB4$5Fz{a9E?gk=;yj1SeWL#{NuXf5xys!`Yu`_NO2GkyDyG zXA3$r)Q+xgh+WYIdZHn&6%z#q4xW>^PjEh=8YGN4;!OFkpbUn13mB5)KEbhsHk`n* z1T%0H^nqDs+@~sr_+ajUBMNcgv7jY?3($U^6<~;)&W;m&^3hcL7~=dn@i4@%;Tk<- z4DsxvQQRju)o=uUv|3=omG~Os?YU1l#o*2zaEieJ90mM??5A3q%36lF9Xxz>LwsxQ z5soud;tn{@P?d$)#pQ6Op(%I3nTEFDC|Ci1lEY|WBfQM`!dqh+yvgg zrT1IIn)^a0Y)^{$P z&di>fo!yP5Uj;QdCb~O^!uxu#3Xe4^uo4qZNl&3#=8vR{E zPqp4#8W1e(McubFCs@=Kw(lu5SU3jV%SH9g#DPZP)TXxOqbifHo|m=tbwLEE*8iLp z2EI%2!n^4PmVaNXg)S4Q=d$J-ifSUFEXVP_rvZBV4!owXa^I&Mm6xEuuj*@>*i_87 zY{mN=_4m!nAqPzU6h+?9gl3|JuIND)1zjhig~cSlb}262K40--RyVd z)m+3`Zg{0KZ&uf1X1<~;&BbU-E8f>je_y*-6xKovw_Na2<^8Ot$GiGcHi6NO8)U?V zS8RnROL;gjZAu1;U3AJGi8809XlWVqLRB)=S335B-nYbn=}I;QwZa{$A+Km~E8!%X zyrRXe1Qr*~Qe~3Vqf_|&r-7dui|(X!Jd5775}o=@LB;1}>9wI)x#6bX1}{XFb4G8& zHIyJ{kKTqfxgkk!L#o^`UvI;&Y}(yglr7ajYW0>o=5njA_=@he7EO)O{=(HJR)ai3 zaJzC^4)qPe=%#uOEyb^m6%^H>x_Vir_S3Rs#%OMIBs~hjZLfFPWEzS#fA$3hgbG&? zo<)(N7}t)>CJKd8hip0@DpHlhUe44%#;{^Ec{vx!`Ju+5ohNO%);RJcPTJ4do+xcO z8x7k>Nc%F|1Eej#JAv(y(%#E?jyS20n-Z2f9_B`HRTiR2Kq*QNlDUEM0 z>@{|o=sQD>3OBmY9xuX=llK?YhCNiZ{-;f?dm;}p7U+yO_~&d9+OyoClon5V>vSXg z4#KAPOnH5-vL~xn0h=GSX+^ifRFF^G&OMh>+P8fFB>Vhx8V8By7v>KVAK6EOK;AJNsuXcDy`5naT@&lg9jON8q)axIEzoB zL7mCAlkhI~`<@I{YuH)N9&#|$!hRA?(VfuWZ@j0Wrz0`h?`9{_woI!^dR5L>4g2m> z&2Z7p?6sS^i#G<}r!C>aspJXXsH=AK`}8+>BGeeV(vI3kb zW{1!eJ)Mannm!1lsa-?^kq}0gy5Qu}J%j#s5k0DSyQp3ewC)z%*t=-&PBNa~m1bU&iLa))JUZRPhG`iSJ*p~Tr z9V86C;~Qla7VuUY{pckci{k0jptlIDkeRCL;v6o|{S}?{vZ72HEd#{VS}lY6((EAv zx_%v3H#HAoxn#TEqGIt&YFz40Uf()swN|UenQLMywdsRr8mH1|ULT~!>@>RBN4R@v zoOoa_yHMGf=W3rhN~h9&vT79$?EO-ya$nKZa$K4WvGAo`b+i$DRYL}M@jND}uLu`y zQt4M;9BhwN^64k~i5sc3vY&7hMX%6>ei*#;Nu}(5BD|ILWwopsvi4PfR~+<;+d}R| zWfj&`7y0*Gt*15mW^*+~IYk<>N;X}OH7vXImr-#VI$IcubLn)XKgwyBhL=up@_C<% zmrlhf6RUq9Q}AZs;_IW!(D?z#XZNe*I8b1X!mD(D5bm)KABgkR=_~Yfs%S`02a1~_ z@iHA81jPQ!5)m%kE>qrk;X+*oi{IkYCAvNw?*sUhFf1vG{X@CKppiTTi8}fc!%7Sl ze?-tlhB-xvlA^;!hV_gB?Cb@GosJTJ#hmjD%NPdOy7LkiDa_6@V$^UEZZHY2R-(3F z4F_QHIZ7G}cP=B){=Q?%;CRs}W!ngW6#`bDVWA5nf!lwEaoSP9S)XBC{3wY#d5Uox zM+0{oOPxr)tkJ;LJjJ+vV}yx;$T-2cIb(r)cS7R&iFPL#(t4bPK&ez|8hDY}-`8Che23NutU=ikK$Ghy#1&uWib=X<{&zrrbk) zri+#)#dfN>n~o-tuIBEo>BwE1Wb&DT%nV4T4l_gtk-VFB%@7IVm!RO8c$Bn4(Ds?a z#rWv1f&p3p?TE)a^j~L+T6o;#Jp-B4EMAz1>bt08JUYuGJ846_SmM#pfV&1cmgBCW zBDQc-%`c)hRX&qs|JX{sW{E1MKX&6}(uNynHVrF*89&*(@fM(n@|X&Oe0(xPCl;wn z$bP2Lf5c3-(!xE6X-9uyV*F}*LC{^~qZCWLD2Ucl%$ZVWsuLN?ss})1dhxSZrHQ`{&~ZTT0RY+7# z(u1^JENY6hHMC%{m@DkoklhlID3-2f#FHgrgrV_jIgY2@eKmIC{3;5!QW8bYRXTt% zHAoOmMf%E=c?qJuf#|e?UJx{{EoaEaL_}X_IoU5mOa8o!W-SwKOtLKttMjoXpApkm zBrF%@#QG#Ezg+yate>cM#cMw}$p*>eqRENmwE|+LmeckXSRtrBshITl`WPawm13~v z$pm#@oc_L_cn@r)7%oy0$#s>eZJ)msnA!ZCPdzz2ey68YIf16F5^m;OO3P3SZ}%@R z&9`J>Rt6yRwdlXVFH7+L7aE^K0v%r?97Fe)(`l@gUj9d8S#F`m z?0r#%QjG5KF%E1qpS(t@5P33v0xjN_B3X`qFAWo@@|F~W|I+ww2X3x6hZ zJdLgJsu}!8FQK7pMOmkpe3YaQT-=;8M;nhlD;;CXH|IserL=7=Mry8!baAa{>egZ* zLY|1Qv1ky!@iF3qgnSH9F_EQP!xgLzv`LuRD7_;Zo^YtRkqT+m&5m3OGnn2Ar zh*KWc*-mOd6@~kveBAS2ITalDJ*rhW9&(*8`>9gYY@=}S_=#PzdmE;s-P6$y{fBmO z9@DmM#6yF3#`5^#ziE~+H?>>y)uy&}36nv&6tWyJAuMP&@LwWk?Vkly))tE;LD zJ+PbPd9I;; zh>s2Vew4*5n!8=hGuf&sJfLedd_c`+P~9D3i)cTca(0MRO+p-QBmCYaD$>K9;(_ID z{E2Eug3EuLad$Cce77j2?1o!viWWp4zYg2y;9ZMEH9IC4jnVBA{ z^*`6K-KSCAJ;KE!@*(H_NnPI8#TM=+-Bqiwxui~!d0$zCPNm~}@C?TNaJhMbK5;s*gHn|{tF zLFR`rj_7efJaVis30n&$8W&z}2xf9W)nZagkAtF;f#dZFDzc+`qoSZBId@baj4U!S zWmk&WY~V5VHkZ9BP7{3KBC&FQ#U2)(9^DHVUOGl?9mC~6jA`TP{$UL6 zT*gtr5rKu2CsBtZ7~DmSr(H+HDCKaphC-iU?p4)8nD?)~y&iT{_&QwviU`yW<&Y64QlkRX>Dn)p5f@I~t&X!arbp=-Kvqc4@ZN8Y;?mJL%vTdUTY&le9mu-A&qA zZ1<3M2HSn4eU1O4?i49xv^cY)_E(0=6egdm7u5q&=4H$1;2Rm~*NftyTXxq_<;-o}Hv;FVVAS>e&?l3E7u!puvyN;p zl6DKW)dB}a>;2)UXS?ayHhQ+Xo~_Zd^Gm3uS4DI6>`b=jNyoR?mernfiS1d@@{eQu zhk9(1*`6-9Z(w_xv=iB$BJDYB$4EPdZS~lXWLwRTer&5b)P?P_5+B0$7-=^wfloc+ zn2nZy1n7Z0^g#A(tC-Skt4Uf^Z~HGfU3acl75%`r>MV=xaZ*1+Z~IlYp&5;4z<;Qs z``I2T30w5GuhbFH3iRx0diGd7{2;bfod`WlJ3UMjX-8wcCY{yd9V4Xe#kRWLNsnN~ zwptS=Y^xArGC2J_ULnZghP7v4m~?bkFbPoRcNN3Jy8!6 z#kLwmFSgY{JL=gj*p6096U2Y0hro|*mF&j0S^^ukRmbLR50jY%=r6 zJ8@`5hx$N?nEBD}FRK6LSme9!fcyDexARV2LF3PG!)xK zgNK^WL=~g4A##k3RR^YE>7k(sT2s+9gq)uX2SZEj$>~Wat%V)gy9;;A3#~OWA-f%r zr7yT36(O|axd=0AS4NSubm(aoZnipSiQ)#vH42sm`Cfx+yb#uMItR~Z!P*45xCVc- zX6koL=Wxcbo0mdXjXE^p1s*3|4WSz^#11i}9mTxFlZAkGbnvBUr3AFl(2gD2Xn`di zaZ}HgcE7?!<+SGX`V}UD1T`nyZ1GCG3MHc)jGdn}rR$1fN0W2JIHi444Mna&xhuXF z{-RV<>iima79TVr6D{g}U6Yh!uZ4r+*>^i1ZWrD4O)$3b;dWE4!o%G@Sd;KwTZZi3 z;n8-7CN%iBs790CiP~<~XTXR(6{8NN3ntOya@4(rnp+rrXUkg_D}z&>y~7&?!n6T- zf545(74_w@b*1|skQm+TlUW`DEL)!%=V2y6UOgI|hns^->d~B{iWQy71H-r;GX{P{ zEnEtsP4ahA5Iy~fklF>2@h4GLQGzs!*FG#uZ9joAt}ZiveFD4 zbrEOl(2CD^SUJ27UHy!^hS{|lJ@*UHn`+Y~{AxPaMuOQ^Rh)%SZSwdE_|sa{^()|E zwHR*u4e&Cxs1tsb%QZEWZm)3>YirW+Z=$Bs5F6HX#+}b2H5h(0AMmj?=&StotU=!2 z5xoYp4xp{<3)GNz7Sey)cie2O6v&hoKLC9dKr`g;$^bg^1C$W~^yUY`sTe>uKM_u% zzXVsJCqHq(JNT2;FGOG5AJON%MD)+9)5KpQs6=vg&bz9s5`7A=c z0~okcFYBjOr?*JBfiew7DdE*{wHB+5RQ%0`eVo>!5z;X(^F zN==beh0-)iEzt%qfXVc)RE4T(m1ZU0dj4A%pb{ZPH9SzIQjwu~VqtYJP(!$b8HD!~nhPLle zT*P2owceF-*idw*a!T~6AS>RD%q^9+;+~Cs=wL;YES0Uo#YWwe5>i$vY9O+#)yEA= zxOKr9q(V8xznGPE!I_ALt;cl2)z49&r{!pFITUD1Ij)I*<>*d1)Wl;e8CZnLN~;1+ zd>q=rIy{@QegRrY1sjSg_7qw{i5J7maPc&@DBg?G)X5gf=2MzCHndafio>NS z&JN*K#j=1hU4!jWZ*NOdtUZ$LU`aY;kDw-%KEa;OSyf_)SD?ODABMmuRMs#uRh_01Uf`@{&&yA>u2a0muQ1+R4Fj8O9DshHr z$)E9pV1@^h1e4<3kt8vmC^_D;IN*u?Wt5h3JeA6#l2$#bDQh%1qqIjC`>+a7T{UD; z6{vFfEff{^6zW|SN20X?$DZWj1t8vyi1bo?jQ$ZA7YT(dJ`{u?rU^RY1@sRC6&>ph zG$v{s^j3T{BMne*^=e~P9y1@sUNJS$kdKc-%G4t0=X)TCd>`~n_3&2}UsU(+zZB`K zbP`kkA~iI2^uQOz&;LUf4Ujz7rs1Hzbkg`59{i)oBV^~S@fOj4=)E5fZ15k-tAk$0 z@DC+9gBn&1)QP{D+Pw>?f2-l(*7&VblUzVme$&9}pkDsP)LFmC!4=e-)lrp2=z29| zlInDVKZqN`bp*isJS0Ms9}I|T50@4p%6LTts01icH}!v3&d8V z?*&_j*1*>B`E(9n^HeT=E7-cbrh;$jeWPDBQGtiPa)|Z1fnjG>pwB_MqRYL$WQcmK8jHJ6O~zj zBIJE!@ScyZD5st>M_l|s-4_8|`-22WnEZT? z8s(w*AsW^gEi|zKTIjj=v<*kC#BA&?eEAD2L;agJm@qu-3r4554N=<%$h-k+8zm1E zBi_-^hA2wacO2dOx74~39QJ<8(U}JWc)UCdqWA|6<31@iVarmg#88X8;jZwBbfY=){w>Pa&=2+yX{&EcR_wi=Ie^OZtgwSb@19K~x&dz#5^ zNyhWFmc~~x!fub+8b6W#l2*4s?b1uS*g|p^B?p7wl;=S1!*lr%WAfT-bk2i_q`C60*pxjnd4z zvu?lrfA;%i(Hyz|S8yT!Sa*GX+VhkTZItc?!t*JGwo@vKVo%9)JbpJmrqJ=qQepd; ztEKxyG?A|D72l!{A0aTjX-6Rw6c3U3h)dV;5v`tp(xp9Q{N@fyV9_}bRcJOvR}y9D zcL&8^xIJWi_5*r15%_Ko7_T0w3LQ};HV<@F@`2CQ6Edz98m@iFK^dpaWVZ0=F{Ye2t<26|Bjqt(6!Z`SyV zkPNczj00XSgIc8{U9p&OI9N${X?15rX?d3k=+*+otvj^53$Uy1(Dg1jz`gEpKu&k) z#1w#+-_}!)n~EZJyp1BMiLyWQfCUYS|3}*|)f3TXKs^Ov9y?I+S?UO^H{Y z-Yn?0mUc&H*6yb4X$$sOjKKc2HwyOOj=+A*S*#q1&MxwL!PYW8FxbdWrw%=2O{a5M zXw61s+Y?RACY{>I-;8TqfW&K*{u*_3z9;Ia#5IPiEpBix)X~*6TGtEknQ08imj#;T z0$!#!;3rZUp3++hG?|#HJA@fLhUotmhk!NU50zj`%Ge~VDZ3%K) zPSZ?60K-nxNkRYtr&j8S3N07#}!IS)!NeWQ8@gT z$0gH~`lM-n#jRtse6(yJn5s7#!Sy=E!8six>oIV%{3wH;j=@l*<57j|)3tuW;V88n z3v~98l+k1573HX-+$Dt`ljX>_J*S5ugQ_eJ4R72f6dPaDYK-j+gt3(5D@s*OPz@IzYCQahN{t*Xv~Z?Ps`Y zv=V6KvR|HN6X|Icj2a`}Y0X96KAIGb0vy`MUdHaz>vG=hW$ug^T$AnCThKnp+Y9Vk z>1Z6I_NqOPsI`~bzxHs~Gkgyd)ni|53XX}_9;!11)%!hJ?SBkTkwYx{s+eT%e!lKz zLiALWeE)7bG8N^C+Rdt7yJZ)XC^qe45PHBs(Q6kO$3f6@7uAbH0Y2|!@cx}ND-Phw zI~lAF>O!ZZL(ATw>(G+O!3IN+?bA_)Jv-?5bO?;yp$aGgI~1yV6glEN139v5yUr&* z&pZP%gSP8r`mxMvf5=qZPJuHa^J|;hFDhHMDU^InTb6dsRJJN#wifhmvGM2t`fa5< z@#ymoY$@1!dKR|2Z6V9q*g9%+!B&Gg=m~#q;{Im%CJsbB?8WBFD&0hN=AxQ%H*(2$ z;9G%m*jI6*9#S3lWp1E(^Ke>ONyFx%(z|TnQQwXA3|v1S^|@d@kNP^TS4VwVc;xgv zU^Cb8ps&L^#;Sw9((8E8_h_v;=+kUitJlxj)7OPcNil7c?CgB0_9DezJW1lwVEZIi zv0n_2rIM)gV#I%K4b5My^i_h_D74)VgQ2oZQ1QoBGgR&JPA)-t$FHW(OMtJwn%tJ6 z%L`hcf-bL?f!Mo}dmOiwlHy5fXY+CecQ(6MaAz}m1=mvb72MhESkC%teO^n1{($9b zXCqveb8nZiOzmI{TG84>49i@XV{l-yOdT8~QedjqLtIMal$n{R->v*1R#uaL(h4Xa zBko(`u)2xtTUrpuVnW=vOi9oy>-Uvl1SL?FRp|JBE&cyHKCh)zVzq1zOPF&Ds5EUO|0e>3N>0ldyEX7#jCkAW254r?4PU9n)QkkUE8R1u=JlR$CTRb zpB(?aqdsCT)!d}4H+fl%$Az;^9~Pt6o0JM-;{qzS8SdIHpxK+1W}@$G+5g(m@p-s0 znmJ3x;7KdCpo&+|qVz2|OZ1(EDqhnb_d2W0;vvobc-b9W(ZsE2xvudAt+DksC11qN zp{Co>#a^62W45DeYR{00xV)LJ>l8A0u#~t1wQ_DcZ9}2O?CGrRKb?$rqKQw7D-gxq zqzYuVOQ|6i$5ZoN%0dwom-2X*a>zh*m_>=na5Z)ct*)p^6z^g=__=#W1ET%54NLMVV&0eI%ff(6^+R>K1Xj<+u>Y<>h<61)s z*@wEwiKe)H2x4b6ccvrpYp$^se$iySAI01@nHjBqgCRRprQc+vd_K;A-jlie%%7xE zltYu$?vq57Nz7?{5b2pak)|9(92+Mxs`o^-cO>y(0;9UQ;q0B1f&^POp)fDvyl7Y@ zTwU~-KqiM!i2>tjrgK$I?D~9@mbg)FS|O z8%yR#L3SR?MS3xYIvoYL^B6tH_Qy~O<;IXh6-_nqY&6X|hPydiM|0crrPs$0`tkAP za9kNBHjSdh;}EbJr69zh;Hfh1TzlCGS9-T>_8K}uppKl(w}8`TX-$=y0~K1Eq_r1C2U3SiN;75U0EG;GYU6~{0A{Os7WNPF>{)+> zZ|-mJ53Pcm`@{QF?msva*!Cy;%QzHE`Z4YO9VF4K%Q%*8`jO2Q9JKQNsO=RT{bzk? z;uYL9j_ONkSHO7LhZ*y)B2_l@q03hR9^8lUNkLcP*M};nD!s(6-f|q3D4cpTI5Z95 zXT4}n8o=9o@xW<#FUn0*JcVN~IdDo8%X%{S;Wdnz!g>}|fZmwNz9)~FUiF|c=}LPg zs)w?8&y5O{o34x(FCz=$x-R32q~zx^u1GStA>)dq$~TmUqIv`sy$M%4x-(d9$JcHu zzQqP$)rCWNM2Mw1G)7n{&Kl|G+ns9O0{cfdZU9HR(X?B*3F<{_Z{oDp-BDvm&2OX5 z-gTvz+i;iCl~QhlFu5yb-o|qZ^R86o4%|)e!tPMZfudm-s(e=o5I;H>sCK4lcLDP1 z%%DaY0KE&Rm<*{HPAM5uF`P0p6nldxGPtLlwXk}?3CWA7W|xbk+xL`fBD*VXx{qU( zvjxwB;Xgl2uL~a*MzLlZPcnXph^vNCUHoc(bSUh?Pj{eI50x;{qyv3@h;UA{XZZ0) zim&m+_Hy)_9v^3q>cQ|Yy#uPJaeH!ojMz%F=YpiQqo~JVHf+ZQ!Lw6C@_zzvq8$x- zf~-5ymXVX&(y1pves04)W@G}iw+$VWzmwWfUM6H4wo$=~rj0@^3=Bz(4`tnmG+gAA z5{5p;0iiOihw*V^DKA`cSCmkNqJ^Q0xE#XVSs{8EQY3`=Nk5S56Q0A>iPoGZGg@<+ zv}(=qm1s>~S%`01E6OW{D*KiNaQ#-~@dCf5ttj#Z;=9!ni)JZZlnyNws_+wCjeLwC zuC`z&r}m=1-~AH!SuH5*B?=$hf@3mlp^(iHEg4Lt*q2Bn``4(ZzpoTuqZ-ZCTBf1- z7(<6;ql&f7sed+nU2R5-vhn1oc{9$H(@nYJj^w~WbW?gSf15SsT(M|M_V1O_6!}^i zEQU0Z7x{@It1&a^4Up>^(^dI9xG@>zLf)@2m-}tEo1YQz`#M;bAGd?Pyd7W5Ad^(uPyJ2=|akWRhBh+#}aq?^3J7j+uSAYDZDU~2Ln zt>IV$n(`i8p9UOf(+{A1s85set2tU9w2657BBs=5SM}@DuMdD9s;3v}**sL@=z22J zQ^L0vS>Z#;z9Q4kKon`(hIZpC!B_U)h+CG<38}M)+P%faK0{W z{RDwIby=WAT{$MVBa6>C;AiUSMR52tqK>IU@8oauI_e!-qmp$nc_G)7_8i8wD3%t) zUD-s@pf;B?;46@L3^*9Snya-?&Z3P_&c(IZRohzf-mD!Ne}k)kYBI+%7)NAAO*L8K zG2&dO>0o3{LKhdZ`g`8fz0S0DDT)N zirWFY$_W&U1L(mI9KJ3Ah|jgD;%w#!3;DpWg3miZ6aOd<)c+?gSoZnT?4J;*s=69%g1mvS?H2;wTb+*mLZIWSv)jPxr2P%n?rM60Uj2;#2jjb8fAAYnjjI0v zd^ij)0N!Jl!M+1$y(D={*11wf{#haP4y|MBwsQA7f&hf6K_9Ekj##fy5 zqTK?cpP63tQh?Fgi_8>FJ8?UjdMldB9>o)RJR#SY|dzL2`F;A=UHE!ZrkN_R|Vxp-bqAul0oedGgeGiU$ zxd&}91QRQ#s!^*gdY}=aPIIRu`Mb=WZX1CS;m!(iqWYxD`Z~Ov6lYk38lcZkeoiqbtT>4sfH-#+p_| zw_&DxeB8=>O74pxGnOJ9P#ikVT-md`i6&4Kb)`Ngn(89mg;tw@N-lKK1Xbk!mpn~1 zPU4L-wKWAP(wRx6OMqmDF=7c#9dXTx=9kd8YBo6`Z+~krAP#e)S0w;Xb(A$3VLaQh zAk1`nS`uLznxhgsIFgk)d{uDd0zSf;rRE^Dt*BRt+cR3wZP+shYq-_^;GL( zu%3d<@#b7l2YO%u#yxvxsH3uVB~giFPj^eA5+m%XL@D@iwPzo%@I(w@>9PtnbmGE0MWs{-f6<}&cGr~*Bdzg;Vkg(bjF z6;f(gYAl4vv!<3-nivsn%|U&&(s+qrYjP{6sj4YsjVjtPM{6gZm7|H}G>&3bIa*sz zGhf)0V|XWPO<=M6R)xc|?mN*^CQg+{)rziIYg~;6U|-JJ-uQeU9)&wwDT{{d(<%tcJJj}GVWUrko;CN<~ z;bG?5GU_nXsGpn;cDe^M9LrF7TU5fb(#&{h3r1LJDr<*owl7Vs>=4_lQeXsOG$>ZXdcxy`1HGA;-lmzc&cjh^iR4{2uOM)zz^4I|d zYHy)X@sGHkv$dd*ir~C32M6nNNM9n!oUcJG&6$EhBW_Td(Q-$4S%swzas6r3%M6U; zU6^4fAKRlmOG_{#(+P~WC8)eJ7&ax;r?E!QO~I(unHj4wOUN0F(x%LabOGar39WPi zV}%JngzaHMzg%!wE11ZKu!&-EaRxtg1vs=gRd55?x;Q_3eQHdT+yGu_OzYeLE@{l* zo|OQ`(uk`o0lcgj-L8ZLizr5aDgj)+7&%r3cwtcnXH^Ecby2c&2iU48b#Mpxi4jG+ z1H2rsV#zB{b0Y@#_5e5y7qT7zlObPub~8-y1h$+ZUwF>fGWMk>ur0NG&1tDsuQ|md zOd6>IaH57bRY4Rb@W5U6(|xOI0!^+ex)Xax3jLtqxtl`ws-o(r zQLq>CVy>XmUYZD#=0e9sTa_~;ns}ovmKGH54S@#+5b(nQQXcID1KQ#Z=Oza1yuS~e zUoN5(z&p(H0dB-6#avljM4^X18W*E*?9bWPQdLmOU~6Se%QBcv^?cA~Ui(6!DZU0+ z@CZ1WPJc%DCI3m;;>W{->{)@W#!|C0hV0blU#-g9J z!yk;IKbbK&0E`PiXiESX^MBBj05CfI0An{so3fHDevqd;3D5Y>jCX-xH2O}JYJgGV zJ4Mt0<90q6Rf3tZAfI;C0K*U;h>`^xS`&Ox|@tnfi&ne5?yE^*)hj5Ga@&NdpZqG4c9Gnj55X zROWmXv>y{Rg!stt5%ti0oXQiFEHr*fJd9TY_>ep*Q6HIHJdb?qLp>HBW|C$2Tp#Ln zKTy>MD0R^f)TaU3)3x_BzX8Cr-qZdD02g`B;86_$KJku{8v=|^D7|V3aI1G@-U#4g z@2FZMfTQ0s_-iA8YriG$V1NzZQomq;Q*&uyFu*f&>0mIxf8H>7Ok-r#u{XM`%HR|H z-NtAXac?N6F^)wG?9SO3z_n!bhWwjAVA5+T5MfgDwT_#_+>TAb)x4$wO~JjA1Fn-l zbEoIfp{C$sH7T_Y#x;ZUBiTBEek^dW83d+g)0<`xXolT6>oIJU$)?Swz~-7ng9#Mc z49)3BbMOOS>G-%$CPydXEx;GAXiy9A|9J_1ML*_Gdr3!HAb=k)IDiQ)A#mu0P9UF8 z&ktHcAoc~lZ3%%U*qyW1hXs@uRI?QX#$~aKq`zQqdqMyFK10vW*a=C+M!^NdCKfR zq3~DjDFwEHzdxB2)dr07nPAvfVMa_QooEBb*C)(~ZVSf#Cv>DO7?Yk*URy94J^^Eu z2Q&UYrn>FG7=`yrk(mkYLGXP{HQR&m>k$oa55n0;AlSGwVe%t7)gFY;57|X*2QcRwL5Ccm2A~Oj+*6IS*?id z;0M&Nqh^BWbe~>yg!r|4EWV~Y?#t}xgdxz}d-SvuJOtk(t8gfvyhq)`p}f?EzJ+Uo zJe@NH?)%2&e<@t2z3A7%3Ax*X{_Ct+2KDNU!BfY(^s+OYrC~OJY?P|Aon7E;&K-Kz z1kc}?8F_4=n7{`94WsmoH^k`pl~)*=PVHx-&HiI^IvC8Z&UAXnlU2c7Cr6; zXLoMuoCS&{H|c(N_`wGWEh6CO!cFQJ0Y5A4=|cqkc-&C^Sn2$@>HI|2{I8$T8`L!t zr#h@=lo1I(57Tvi3~5ad6l!@o-Rc2nZPTfEPdK|O=Mcczx(f8VCytHJHS*|%V{^au_~v*ayn#cnseM%A2g|Wgiry`c<_U z0iO$xO%qsLUFEC)*IDPQ)V4324Y@+;ec>$YvYs>Q2WRUp)75@(*7-6i{o(A^<&rT%zX#P-&SLsoOw!!@4_aCfE%^PM5w& z;e+5P^#Uy%q)D^?;5ZA791Wq9$2hF(qY>87 zWAt}4I*jVa&|%CkM#;l8rK#Q+%>m0kM^)W#E_%A_j*`h(=>9oEL1Upi@(Al1jDxPv z5!UTC4!X|{)0}b8-Fg_h!bs|tp=;wb`z`MsQgt^t>FJg^Ov}cj;NMcH@dW4&PNAn0 zG!bU*DWZtk!MKxofB(kE&CH|7a+s4cU?O_oj|XYuMCczr2>p^8N*W3MlM|tzb3oO9 z=b)$We30TNA@0}%bbJ!@zwPI^Cr?J)2ljK^4<;k--utOoG;}@oLpRQV>!W!z>Z8j( zRd~c^5;}Y2JGfgu}FZ2$lgWMry&t`@1ot)kO)t9 zs%nd@_0-DmqQ!9t@b?a?HyvstcCeb50X6R(RC@*j%->F97Hr>6MdQkq57N1W-f$=Z&ZbDmedp4wJ~8H z0y5r6e)FIcvw?NK%!5vy4Kk`$;@x_RnUAVJupU)kB2QL*X*x3>NAtxxRWZg~PtjpL z&0T=dlyy{dAtcAGWyxO)A?d%C{1+iKEb$Yy2$JWMAZh!K?<>Y6(TPQ}Fl!15vse~p z4INpG-e}Sq%3BOZ!!=;6%4Npi)l_#07^7CJjD)2i_^zg!OF{UxiiR%*;p{39Y~CICJ81I+Fm-o< zDuBN)rADg&9=eplhN}VgTuSv;1N?Ofja?1!@g=l&HNaz+(1q0izgx`U8EZ6wraKnv zMu+JbLnq;aFMEx~OpIDg-`AjuYGHrQ(oC+RZ;PmL5)=k6qNhok2vhe(I&xwz_cs03 zqPO|HkjAeC`RGEBOFv=q=!JA?Ey%eG*nRvuxZk!wrw{@6b>RN>I=COPfPSunLJjQC zS^S6oGhYNRjI>JT~3{flBjr0&cnVv@Qe&Zh*kYc{FhY1P;%GK*@(JFmfJU z-hdEZ&*cziZ^Za`%Uqqp2MXPc0rs1XD8sP1^m`)&04jRfjG?pW?-nqs&jMrq zU1sFPQ_HPj^o?gmiEUsw$5Yd7V7!}2G26g6FcXXtcbE}16W>AyAl)fL}zLUx50Kioylh*-& zb0$&y0|0lQ#9+&V09Tkqp$7qeIgw@_1bF8}+H(-#eiP}=L4Y4mU@)a1A6HJ$Wm8BF zH;Hd4NT=QtsMsM?kq7qY#9iVldNrQH4nd*oc*;A3_Edhnj%<}f2EIttHd zVUV|v16gyC$$iFA#$k{jj%D}Djv$$rkJTw;QshY_^YWV-@^Ry$G}(TN`Sw0H2C5i^Lve^`^ON#{ZSmiisKMS9HkS8 zVu7E>ArLu=Oiw_-4ZCw<&#=Jrk<|GF1Uijm0h^Pk?Xn{&>?CSCa|F#h3C89TU=%sc zj2YWoB?AaR&dGrbDS9wQS|r>7_qn?)m4(-Qarz-%P^`q`r0M6)330DAK)0a+O z0XV!bWnBR{y$^#oUIlnwAIiK6a9AHIn+mXPA56yu_+D@7oeFU4-VAn01K6}TMWz9K zrxzur0lcagolXO|V=sD{25?$W25-KG)-VR!Rb+$xIir%f zithHHzUfeCiF@tW(VB|)(2)~ga8sOl9l3Zbl9pcwc||11pLa32LnLKi2l;9QyWe^P z?q@~l6e8eWo}G+u!hPEaDt{9S*4UpjVkaxy?oR!0qB%9E*c)h0m2W|ySa+R(+Y3HB z&AtVJ8{KH-EeI^@27!;;S)g4vdVLEaT<*#tY`=~6G_$Kt0Z)1FqCpqGgEEA6r3!Z- zV1?Z|!?v-&%`PF-rWb|LKri4KLBG|7`=V~M$0gAcnC)6FfayhUp^#}~50}Xrx z#?|(;?hzP^+k=t2jv1}m(}zc3oNLF7J&(bd(vET;gVDSlIX(fSWIHehu4P7QTN?HR zj0SC);gbo5L0cM}3C86%v>_9@xv&kTW+FFRw4slg0G|nE@V=)2$Ar?mrvNt%CFf@V zn}<@XX8>Obp%Kpjt{1{!zvlq|ZB0X;1AM79ZF&yy{MK~sIl#?Y)92>^pK8V616cr1 zZbcum0B+ohTwefOq7{X_0QjGlH0lMwbz3sH`b&U+x1eD!0lv_Jw!8#*ZVS5p65u8+ z=<7>>Pc&z6$}8mK#OAte3VFs&qHH$OsZn#Pl#MFF^8>7ZpU72ou^ElYhC=OTWRZjR z^s}jsZ1s%KPRnwT%;%cYwj7XWV}DLo0+WNAQhpA|$C|MF!>^IdF{BNzO5?9O?% znE4HZ=|?UCzcsO?h?XxDo%W;6gJ6BAqIbcy;6=+}EN4%KJI@eg2(u21U;#_OAw9w2*!yZO8y8&To4$K=Q1NGi2i&8<6vE8ocsjF z$h!376BxDYlJ{pYGrnJ(FsjvIM$i{9KGmiPU%)t4oA!PIV`^Kiv&`)9{?W>ps7Cq z_6}fh!=C`Z_owKe03Y(FgFgX|_Q$dY0N3y*%`bqHt26lgFMx+sPxuY2e|7Tz4eXz4 z6!9C_!__G6H?UQ!F*f)Quy6e+_7A`Z{pipifG7FU(?0+Q_>tjXfOq*a_~Ku*r9r;B zTuOheo|~4sY0X46Oxn=88vXJ?{j`ta`bqIwIzyW%JblQ)KpSED##_fse9WzIivgZZ z@Asx72H;M>{+wHrnOohPiVBc-c(Lz)gf`H0fR|1o0>0&msj>p+zFt&Qfx?ffP-r`e z6%JITctx9N;7)6W){UBJAdpieA@N%OP#lhI*%8YBp!RX~m#wK8R zx>7w8Fg|1Llbn_#nX%i2=9_@w?81x?Q!t)8(`-{Pb~w`+Q!qw2gK>2@Gpaa~c?mE! zI5FdT2{3v%k%<`??oQOe42+MCU^E}bjGd0O&+#Q z9nCKV@D@9|PzvCocJ#g!z?JQ&bZLN-Y#DsJG{Bg`VO|DcS6gaa2H| zbaF0FO|4Kxxz?znM*X;oHd_-}L7@WH?=FY-^q`!MZ1sRoOoz)MnKzW9%jG~Gi2XU| z`Y;)b2wPc$ywZx@-?K(Chg<0s@O1<`By(VScz3j-=H(&qx-0}5^k#vLWocP?G^g^k z#~RHk+y?x6mOB0x<{z;Ef1M>=wE@3BcITYw$$TeEvaWytmY3lG9#nup$1*yBC>E$` z3jv2R)Y29L*`*;+uLldPFHI|KAyBR~3v{tVZQm_LWQW>LDn)5_VDv2o#;FKqR4hd{ z_FyEIWX2XbFFkV`KQMWrY)>_ai2QbQFU1Zssx>W?@wmB`U2*zr2 zO0Nh;Z*wqCbY+IUIoUdbk$`C;lJUe5jCN*Z?F2>zGYWMABdY`$wei}kJk6{rL2I1A zC{uzN5zb(!YdL_i(v)sEgVECzjAP-wf zKd%J!kYZ$88Q^losC{LCGmFyX$^fq@O6w~FY*CcKz1#u5hBg1)0ZufcJMI8?H^LGO z09zZ8lLx>H3>o~w1K?JMWbX-ZSwjl*1o*KQOEmzzOiLR*0XEYzxK9;;Q?X7~6@U{o zlu-p>tkhso6<{k3xl{#s9_HoCT7Oj)jj4sAOQ!U@eAU#%3+o4uf5DyW_}8q*a69XatXx5P`{NW~=vbl)4~&e)%`zm-Z>EDZ!z^1&pdIanb< z`p@x!|7JyW5)tq(&rZ#JwPs4GB7(a3ViMK;zXnBed|Pq=OaIbVU$m#9 zXpcWybo1&cg~e~`S{(uzzaZe8@~Q*Iw9m}Qs{=;;&*V`TjN+fE zXI(IEd;-J09(nIZgZe~!>VlwrV#4qs5Ke!jok1YX`bb$pNY2oYWLgi&Y4VYL>H$0@ zkHMen0UVS^Rq6v=ERTBE2RQu$&8rXa><_fBKEU{jt9leiHURkKd)nOq;F<5~Wdnd) zzbCVX02{w2zlH$Eykqc}h5*;WSJ4^)Z1j%$HUc>9EiGsSaQs_3&hq5e%!Lsws; zhMWVqPG`KPlqOL4og)<@OpoU1$X2)b>~yawa(P+~y+*nkHOKy(4b_=!m_q^0&=@9C zNK-V1@6C|PHL`UAnRL1}Qn^!eI9IZ1U~}*Eg&%ECFQn&KvV3_S?9|FnwM0gB?QL5V1b`4ArSCFClJK~om)Y`-~~SH27yai z5ODBefvH(^v=s!tKWBl7tx?-4&ncxfYCGmRy=x6dPbf${e#4Gjh3!c#Epsxku~B|9Dp#^q~zHjWWSl?a7QH znN+7O7^9ys<8NCq{GL#ac3}K|OvBoNaqck~6+D;`{g_U+1LMmhX2i4yW8Wh>+8&IF zkLY82FdE=n;yEiTGvm)g3hDsH$cM}@2m{0CA=L^4wT<2R>KT1>mSV4Ayo9 zxXK+0>I(3;+cc&tz$b1~QdfY--KO(h0e*jr!PC0|yz>^F?gsGaTa@1o;M%vyp*z6& zHz~L~z(Z~_*eC*x$>XLjnbOnw?9?v;?cvJ}8W({YI(7p!RK}j`bj%I97y*U1*C{d* zjcNOJ9XTFg%nod`_iiy`eB5l@*HjL3?sb)hT?S>wVFp2lhcB@~+aPJ`gx`6#^F4EHL6K zUFidXoGUCar!Oje^A)<-7Zo0Lh5qyf!~Y5x3#^#&@iMjO2S&fk%rNZ_hRbDY(jScX z|4?*)Fb@6$hFMu=4Eu*t`-Ac75;NxgztYY-u8QLe^mq5Vv#3-BL=?OrAa?9sv7p!y zYphtXA|Un>!447>>#;`ESYkz^f*KXFT5FmR^kq25l0`>V9l zkQT3L>Z;`B?=@#QG*gRIJn;iyc)#d63lo;P8y3vMgnhpo?iUvo@O*`o7qc{cGT6LR zDRlVd4kI4<`nvjBtz}(rM}DicqBrMoJ-!3N=V3XV*$yyI`$nC-E5$oj`&CgJe-G+> zOzb(_M?R%hf#mskpyQ&gaCg2|+qTbE496Z1fs*f!V2P7gbgJs`gGt}@F3)Se9>4jQP^M#EHyuFRD!S>#06rwzV$k9sF zvUb_1(A(L`fpGybP{Rt}j{126%uCezsj*w&aiWIbsowyl7GYyri#ySav=Ft=dMLSA ztErY+4{a7}$;~%m2>+9pe{GGt?9b23P1G29*(|T}8kEm^sJ}$}SS82C@R649<1%Ut zA1CBho{x{~VBk`WIDY+qMBI#nxtbr0dwwvltqT{T^*RV%rgc_VuQh75;##9@@MH(g zsM?%0vTAMjuaRXW4}N{S4)!nC2HSSS$g$jF=rGtx>+r=HZMQmXwNX-cR~aR>dKKjC z!jkH_3iOrQCUfFSrO;`>Vx-Td#m^tFRAzjfbGD(%jW1D?nL|h5iGOQB^p* z8e7pAfRC%Sno3p3T!rtF{IMLmtU;T>xP?tNE^E=oV>xtOivitUmNI)Sj?w0=OBCZ3 z=(@PkOl|+h8SE(^7sHq&t*UxyF(f5nM_s)bW|YP!diyNKb0)EgXD>2F4*4S1{wLVm zwk*o;ZTJJOj$uSDf=}zQx7Aw&6*g%5%mWjZLSNbX8Mlm2VXE+z`daF;h49Npt*+W{ zAvk=8Uc45{M_0{{7AS>2xYc_>;Yh#6cLrS+CvkmT057*| zZt9hv!F~refN)I04$V{TJs-O5(7LNj<{A~_G1o}6dxO zG1w=gmx{9>AQ{{7?=xX?veu@`^Oqj-ZqXCJ`fj{)cOErHS3M@L^15o&EO?%*l~n+W z?$Nx|V{uS@k9Nu2Y=&ZdKMl`+$cqb)&WnNfd$IJZ#6Zm-w6o?G(OglfxV22heqtXc zX2NuMvk$AaDLn###jZ^^s`b>@3iNTo15_K~;}7}O>VH71RrD=>6VG_OJO7kZ^YLj4 zEGTXE5pn34eFlCxfa&{l7UYsFJq^55u)Y`KgY6VlOfJ6E{5%C??>H4aQZaU?sqj@Q z-p}t$LEo-bU|y;=(mZvF0yA!yYpboMK&6A)pKAHZQ05SZvvLxJ;{(4Q(yHj)C!v=m z6^%)Q{UoS%7%k@Ft}tcs@52~LtBFwQN3EgR3J>LO7>n=mUY=k)>Ai3Q?EVq0wF!px zgd=EuVmxd=g4XlKD`1m~Z&7p_j}d(1BhT{&zoVMgWu%Y1!SwjusJEp2daHvPqux$F zl5LYe5%>=UQJZ|pvz7C|ITPHK4lOVH(RinD#W;vOipjCX?Pf}Ry)Rs(BLZKaQ=eY$QBCj)`9!k>3RI+{zP}gP;h=I-%7OMI$ibZJ_)~4L?#J z0Ygt>XeY3<>Ubn%lbcL@2Dgh=JZ4V&qbu zXNHeYtiFV!X8$2@`x16vZ{yWO^Y4QdC^HemZE+dH?K9X2_t9kxxAb5rmw~B%Fi3$; zlQ7la4}$0nOxyn3MmwxM2(D*fMB4@$zT|+u`U+YM9|##&FiABAf_@cadlO>hH#G!; zuA+}>A%+h*)|I-3KAsPN4%g7fCgZh4HFN-MyoQ#)_Ag{P@;X|s><{a%qh+x1GNQRe ze+4RQ_y$sJKf_eMmwM!eR?E6|zx>-+q4$Z+cKsCSEAXYHn|&eprq&d<6c^pZ=6n9b zhurL?aPy{CNfmuT{Tbt**2gHspMJ)u8}@-uKVu=j?+s0EVYfQo8=Hy=-$lHI6Va&N zu>2PK$ok6g(eD@ZvH2@l{0sURhL1t~f{m-%SLh=QKK-IqQ&OSoZ7kmJdMR)a&)HX9 zdl?=p|B4=O^@NaLwN~cEJr#J~4%7NoPq>T@<|3$Q*dEQN^f0oE=Whr&e+T{4@3H(Y zdU@4dfzch%%faptaaZeEDWtnX^W1f(*^0Mn(IL@tQ1szsQFOq>CyHg zeL}&`Znph39NOsH?X%u`+s(7!k%ClINTLad9B$I{`?&a>}>~QO;qi%)>6H962?B( z;+-8j$U2>Wv`~q3M8ho24J>EOn)zUR1)pp+N2_hx=S9FLZP~WZ>lJ*4kNIvp1!6bh zIS1R?!LTfCrn65w8G71}g+d?Hjzae|UuuhEofV!I-Y6SqEv?$-g)ZP}Hddh87Ro)v zQT%)$#$pey)A98E#eoq06oa)z9oEX(LxqBE7ia`~pp8OjQV)ToXVlu-6a=e2N5#|D zQ13bR`X5?D_;W0jDXjsXYvIntTFW4xrxpsbb!#KYy#YMk@eRlet%3P*D@;BeXTKXS z=s0_ILMvGPLUS!u35!%NsA6edh$q9)8pEjrTzH}N^MBk@#`Ew%p?Ex7p^o~{acp{d z9uly03x{%6u2kAnC{Eqn8T|PdwZf+0@>)Btc8X28^IF4`+-lB)H-BrX z>iZqA_aCi!$(6fhvhv?#Thl~=bXR;K-Rob?&-rj8nfCgIkue7S+XzPfi&K`)jT9)p z52ui)8d55JV9*<_kvg*>tb2pwWBY~*9G#2xRH7mEgDL9G#xV7*R!i9cyWiq+%%cHh zyv0oKt}nAd^JfkGi;2qWg!(YLn5ab$g~&zL%X+vGGFO=lUEbjyh&(moF@7;Ztyd48 zzQ?z3vrb(Q?r{?*%cjA-yK(?DHO2jV_rxelxYX&1;~>+uhoK1xwt(srKrL>thjEjfW_G9d zV&zS)xooTOF%QJRn!nJho6FVYhWnV`t=wFL7Nq6yXb&-2EsH>NXL%Paq2gA^5M!bRL7c{P#IPex2+7fbac0^3}!3QO5CbMS%A!6)yn2Al@#!^!uAke z2{xjmTE7xxTZx+L>xxFiSsTpmZf^o-rTOCK3VsG$tGWHNMAWJQ;YEd~I-sJ_aQ^Vk zuNQ7O`+SXt6X9z#oa(;RaMY9vhM_#%Xku|p@AwL^gQR~2qs8bIj3ijBg|Av+FSN53 z-POM)zQ~SaQQq^348Iq+R77-*o$Fm z`<>w9fPwY#g4PZqLOtgVDGr#@b;Vm&5b$I}8=B(6XcmRU1UYwvqy$>n;Z#j-tAH*&Tu%MSqXZ?wmBE z!eTL*IYyI-rJ*y!8?HEF?M`zC%}ESV>snxxlc=UnaDz2o!W|Ae31>AKA1HAWuhh$7 zaLQR!QbX{-5oa-+jQfLYuHO8te zQeNe)rmvTQCN5%(+GHdoyNKFVim=a(`92>etUZSkc z!gwqo`Nh>a@gDH9mFlGbZG&}DSJ2`9?rNHiv3uLh#>jHEw`frGqcsm)kbf?V`81wF zalsW2m`Fg!>?}MFBkz+E=0Iy>m`?W*G3wFcMnEGghz9Dk;>Iu?P+Shvx^;2%JIrkO zwO^zOwV3P&?$Fj3%fCr6!|yX+9N*p-Rp9&uoG+Zji%V`eBaJVLz8`}!4$s4FT@ubY6xGCN7M7_<+i-~;!C)0YRbMEqKRs@ zH7O~tYl%*ZdL$QG)e-g7rMd8R9jximAK|+?;;`zEU*V`LI;kNaU{769(`^00wB(oR z9x$yDHqWy4#QY*(y*HV_b`p*UnazbYWYiOF)qmc>m8Cd(BzDD5lDs%>7M-%Pf1?3X z?tcVi%85c;z#ZgF9MLWK#iGDj>BhgfjySl}08d4hb@T&$TId!V`jKH=$Foa9raOwb zfV99_@0R@Wb!CXzs8~hEcT5Y6FB+(%qw(3m250SN4aTa;#&60}yf|S?$EeVIz}aW> z@I0{ij<@V~rw0y3PaSjee8qK4MT2Ct$A5DChz~$b-i{5_6!1W_66bZAHI0&;=x+#D5*PV#a*q9pdaI&q^!8IzQ57?}PF6g)bhU@@;+L>^hFZ zA@A`Wv&h>}yKrTw-E@4?7B1BnE=mh{QePY>xdMYvM7ul+yijOx8X;^F)laEE<>B!sf}VFIw0+c#59Y$M2y`BhgxkfWK&VidPHPi9tK3hr>4S!5tnO* z)v*Htn+Z?L%ZNPpC-UlxJXV7F%|sKWF`R9NcTuNzlz||nB{cUJZSW<g{Z7lfV(Y3V+B7o(o$S1QsxEvxOhaA1*=w~ zPVLiwV182lu+Hd@Zfo&cu~B)cGs&wjQr8m3v=Xk?86)$oPLBj=g>wq)*Kn|vD5K=U zjaH(rk_FZQqNcJ5ngxjJ%6Nz%5diB*;5+CfeurEV`=NSkVX?6ukr$#m!Wi?hdZStk zZ*${kCMbIuk6}L0S_ELgA6koQHZ_LlnO7KYn3pewxk+szGjbv@At2Vs&s(ZMte<$B zKZhBHKKGuZA^!4&IYz@dA-J43Y>(#K?qgf!J4kCITx@3LyG&-6G9xII7!D;~3(mI) z90pE-!cxW-3!8tjJb?vUD&N3n7zB~QHA=AYlO`G58Jd^Ut3zeGQCIu{NddyqWlm6j z5*Owh%^AwY^f&w&i1+j1{lKOz_U8WJ(-w>MTj!FIWZ^SporG(VTiMvu6OZ9h1#z9Q3r@k$+lX??NI2IC=dQ_5K?xJ?Zb?sZxC+RT zwU5(XIUr{lx74iJklY#PV2)3rMvy3@{*13qq8H^1j1I!-`T_&h>G+;^XHf}0_QVer zz6cU_N^AHOgr6P6XRgY1LHmE8X&3AWCtyq$Q9;=bE4v7fGI3dW2XVxN%i+_A7f1Iq zS&>Lyw@-Fj3vT?VW-ccT!aqigD*7BgWsmi>b;(7}!HJ zD0A>3+9U-0NLfwA+mZZ}8Ga~};2eSmsgbCbcNZh+eILTHP|*S^_rx?Gdtjts_XAik z4vS%ZPvPj^^maiqHaz$|85`W zuia($!UDd1t011H_dk!P>3t)fxJ=asGBli|SDz?!2>%Kz?{ub&R$Y?`Q>%*R%ZK9X zqa^<3PlayIgqpp@4^I8>Va};Y3gx^Vyz4D+8UTm;;KIB4Z$@HjfVr=z>wf4)L1Nsg z<_nd*`)@{Kk_KV>SC#UOP^dxl$Kq-GtC9N# z@V>wBRD8gF0LJ^r;3I>E=D)vKki15erz|um5w~g%;^pOw{L(Kw*j1bYyerESw$zl-yT8=ND5) zvJhfhO8bJ z94B4#&vm>0!)_Jn@Y~jf{mzA>p}6|8xo(uxN2oVc98l|CGtdWYhha1P_o`9JPoU#4 zZ0QruVGvwux2eJlmD=sAMvkyYmBt6m#2$716&e(sA$)|eQWn9+;n;No3hA8cV4bGo zH^XJJIM^Cca)fB9Uc?V6=J|Cxf)$-Q{d2p65Kng93)=;d-PfPnH3#!Zw7Yw`P8dMZub*RCA-i zhhvMY3VMX7Tx`sFs)c}CsaEhJ9Onu5pnHUvs7!>55u%pTGDV3LOU=qrSUy(VR8nB{ zILs`LhU0`^`MO668pWzp`HdojvPz7NHh*E}0NQvQcB-E;Mn3J7ajThzy#hx)B@E7v z7iV$YSu_E|p9Om+2tT(HhYP}=a3Vi^*%c?irwO8s`suhaj9rJAiP)ywA2)()1aBvb zleOliVlh{zzs0~?Ppd1_fP|~CJe#Z*pBqg79|I3GFzoXdomt1hXR3Ilet#5R zPEtyyl$$2n6j42VV0eruAD!#%Vak3-9V0>ehpurlOV@wUHQq$&`Vn2{lelu~Sln5Q^zK%esG5ifG39Z4*H zH`p>$Yy~A$b%b-Xa64eqEF6;Y*T-3+A5ORIW@E`FG{_&a_wGcmskvqh0sjh3^%AsU z1y(zDeQA}TSvpKFZctr zX`XPiZdTwj8`jSgF3zR%eK{1k^?=Ls#6jf_#KnpR)+OrXr>rMjiWTK6js5cC}%*GSe=8BU2Yvvoc78nd5 zgV$6Z*xHQs>1^yA##(lYy!v8o-eemZ<7xP~SPYCe1h%1JU^`!US#PM7pZF)xbUv2Q zg0guT8&}|V5W?n*uUzd=V|0~FxoZ@6CNS<2ZBspld-KIWo3dVcDJkJ)EJG{L#GcKo z*)+MQAXnD`w~VCUDWB)zYI$C_wt$WCqL%r^78CfjR4g{{H(~MlcDbdFho8%!|co>~UO@K^Rh^F$GW)3ZH^Vx)2q z$}Yk%w?fB7!q@r<)sNgmxQoY(FA{DxK3im3lPT;M7hs&t~;VHTBW=kr|&TDe2#eo=VldR#c05#ap;C zk5m0TqAtcoj|bV|T*A>ILHk;I;#OLA3C!rGx~9xd5=B+FdJB#EnN!9@yD##dUNTPy zFUKk#aDIa*TCBd1ttad30=RNbEtT^324SldaR8ibD)UuW@c2$FRU?+ev_WdwC63_^ z&~}q34u5_pwy8hZ!s<<8F!r3>O*kf;gyx$?Dd*=)v6677D7y+qjH9aDPqG@qn)Cv@*0$F z;wR-0oZp7Oel{*j@dU%t?czJ%X>(=rQ!&icK$;cJDNp%G(9%9w3PuFyg%Gks{DP-F zH{6La;$zi2#Y|--Jl`pLsOj^@L?v!0Dwvo8H^p!p zs)FBM;at0uVMCKJv@w3%!axk88lQ#AKFg{wWv_6pZZdqTpM`EVJU&un%p59~L@hfw zu~#&#y$&4;(jpA&`G)o9>C_CjaBOrneh{V2!FbUTFRbbs)Xq0>r zBh?`obF+Pz>Q;Es2QRAo8rC?z6^cwZtgQ_N_srIVM={ zn3&<}KJg+vfXb^w1* zT{~Nj1Mu+x?j4TAr`y-!EzK`Q9K#<3a#C=pc?a85#e3CuCTu;39p@3;KPbj1GgG=A z5*dnuH_RXLCyd3A_9Omwh-d9l|A$7YqG%CJDLy?zYB#BNgx!Zl$#Q41u44KzX<3*7 znV(n0e0>0#9TCpB;_Yz+A6)4JtB&BlbM81ea|G|(UE$Rc{DlPXwMVi4^@4s!@mGdH zu<)o5$|y!bNR56&4*AKF~iMSIVWPLPR=lFc+H&-=vGD zYWM^wmo7@FPE*JT5A2yN-IYD?=r}&KU^^aeoxshe74Y$d2yA`$Bh^UWI&t76SqPb! z@yx(kSxVmMMRTwOZK1TyTmR8)t_G%(Y+*sV$Wq6QHDVqePU8mnQmAo8ba0sES~$3h z<4w@Cz2fd|HA;qyKPng##ssZ}G^E7RHUlNLcFL7Aq9h&^5DB@b@i)EaCxo5WA?}x~ zwJ9z?;h?3q9RraoaXt7G-Um{4oEJf=atl6Q#K&Ta{0hOB#6bLT(Y{OgQ^VMlsLS|+ zgi;HRXW$QlkHFyy4wak0|B9$-HovvZaNrLg$M2@qIPjp ze~Jfxm5x(j{Zmm2ZlV@{rzn0yd{oLp(VOBsWghIhDFRf7LGbrY(O5O(DR$TsmJAr9 zLzkbiA)OC}-8Zp~#r!PRDa*ie3x5<{0K;yHyGmwCz%RH5g!9@lx5W=uA$=&efH&Z= z3-{~3H)DV7@hg@=GuZqqK6O;IAAI~3yIuvjbO)!uYoNhh+-MyLv+v^GkQ=1l#o6d( zaQ;m!!7cG^zlkBrX0W@5{+Fi=xFOy`uJ zo{Ia5+AaY8*op1OvP;;)AKP%R{@!!!3Gju79w-m|r!(2Xg3VuH1id8uJ}AeAC zBUlB-&FN*#;P2oUxIbVAP6Y1{!q0itE(<0CJGimEkF!-A+uOmY4`Pw?o1J-X{&F!Z z-8MprkD^DZh52su95!!c;6YptpM(Y0eH6NLpL`3y0*klM=@Yj6s~?50bFq8_xwtT* z-URla(CzAuyr?Y&o`;d=rp`0+-CPRXO2URuc;nC@;}fpjrozZvG0L1<1IwtF>IQ%3 ziYdzYWs&+AwPX#WDMoG+V%bOCrfjhqvY6;MPM7>a6${~&pE1QP4b2qY8;`CCRrC(l z+bPkQ)OefqJK>0;yW)BBw-h}Pe>n9}kw!pcRj;eegt4mL4zJ*ts(Y$`)qx$0@VB6k zs&0qBo!gkv4ZkOsX4V~Hv>Cm1gjh3rLvyn}3LK@)h-52lg^2Ra8SFWP5 zsbYHc(3Wri=M4azO@=VAwcNO>?0-4Nn_h9uvDOJWw zI@&IhI46;9U%^;ie}MbnJ*@O#r7wJMr7y8h#owu^v9V2Q=ulLzf$zLcFRGU+8;wOy z!y`WNxWechnTVN`$fdBSsNPL|{{-}6dOQE!S(ZY#yJxpBcL$SDCFlBb>NKzxuRm$F zm`x8PU{JV&gU=dhOOs$xG2O|xH-(aS+ct`_GJ4Cd|C#jw!`jj9f307@zs2-a8m5Zt zzRtc+ELc@(7!R%v@QR{pu@3yLb*CmDfB&DTE@8vV?r21Xix7M$DM7pWI4_9g{2>1M zRt6EU{eOd)Mr}7iTV%Lojjqahwx&=Mw8^N?rt9oya(So?e+;Xv^$?u+y|>oAZLWKf z8NJYaChHb{#!erCzXdF|(S2PTN|!k%>R`0!oHLxaaBvsZMz5v(kz!@5w^D4kdSVE) zlZhc%SAyPlc&Jl7L$`u-tKpoT9%Ym2A# zA;UStSz8aPIiT%8Ln}ux4BT!-EpKhy6=;>0ORJXc!D7OJY>h46PhlP>aJnX>~(u#mO2DA5rVR*iDA; zhKuGeDl?2Kdm1hiQiT!UHb=dxy_;c}#fH=2iK8Csu(ho8ev7q5y`Z0yKE%G3p+3uM zyni`i3XbA39SbIvwfJc;XVkVev|Cxb4Gxp`x~sHZ!P+|DS4uyMk23vPO7BAVCKnve z@Ejc%?8v=fr;A>rtTS%XQ1_5^t#w>%p>APxi1zT#Mem_HmWSZdx|hv#7qm<;meVs~ zR%yMCasdvO)~hIX@R;ZqDC??MQFq{PW94<%vb4K^A!8rLR;1laEEF=HiRFp|XBGI# zRWFBAmuy#keC2Soz@C%(ecrIAb&-C^_dg4zZ)5KxD-7bw=zT1cmY`A&$l>zpi{03C zC{kAMZ;o;@L6;et6HF#o;RUoVH6<@EaAF@{_Iko}HY zRDw3Ku$RZMu$-RYbw9pPFzwOq*&VdJTv%HN{4H2!xWQ-9eeAw2>~tTGH?io>u-&4E zn@72s;E(321>ak1;-R}M4WO@w9-!g}>oY3t{DV0tD#fn-x@DSYtI{T%Pa z$@q<8HW~rO=c#+*#Cx!(KES@F9j3jYlP-a)o_O!N14Ya0&HS&&7D|0}i~ud^!KuLb z1f&1T-__!^#zs@XSh5<(R&1!l9goW99W8HEJ8W{30A6lc6Qg#|Y)* z!AR>0Z2kCbrA<&QwD!V0M?$EV?%Swyo*A{IOY@9GVk0wU-L<7eYIXArxZyio90jRvT#QjeaLVKX1L_$ea0jrUg@w>~vbX zq0H(+NH0Icb-%?s__$mord$5uFEU>qhjmo1Vb5MhSP6{YkmIep`E|~(Nuy|fE>524 zE|`XQS-L^RYn3@a@ircD(8Nb?t&D-$K6+!E(4_n5Rcs?>S_%e(`S9LHuTYtG^)bqVCNmsMLk!l5d9QEW@q<Ou~9Qy5obt#K<-6}(uH)V%N-bRew%#?ipgac^Rac}Q4-UnAUjj?HsTQCi~=4+oF;h#xeq2zmb{912yv3+#l)e+iIV3N z55@Sg5lF>MQVb)5NXb)(hZBcLjv^jG93*)p@knBS$%BYT5&KE*O&msSksM4sn%G`) zJK}JR9~*&Gv>-(U8RWc^jgmN$I8$;>;xWV-k}DD8CM}kLWKZI;#L1FfiN_HqNiIP= zo;Xo*G2#grKbC-0sHB)k99h7Vi9;m6n}Y6Bh=U}*BA!a@FZn6)G-5x=4~V}ewn)BB zJe}BH@>Sw!nE;bioFhdH8RWdB5;#sggE&+2A>x_D8It!B&mvBfyp4D^akAtM#B+#~ zB(EZ#OPnZqF>>_qd8CMuiuq&^OB^YACUG2bh~z26^NE8bM-j&p`%4~4{0*_6aqUPo*%`F1oZl1O2aimSxyiF5v?5;#Y^fjCq0apH}{83nwFI8E{) za^FmxEO{^S7UCqy+laRkCrXaqK#K245hE3=h_?|(N|x?Bi9-t9cM%6kUQG78iTx$d zCr&2zlRT4n53xn^6ym+a_QcWNQKa~R6eejfl6W6+4t}IG*Lx80e&S5Yy@?MHXGjhv zP9aW{+>SVvI9YNF;)BFVk{c2qB2Gk(&h@TIio>Lckp`8Be`8otI7G55@loQS z0!}0Lmt2C}(~12g7b8ASY$@QA#Pr1p%HT&cQF5=6cHj&l6`#mi8Bj zGbF1N!A0UU$?qm1Um{MH{EGN8agyYx#2Lhie`EZ)-VaD|g%mN;;5PA9;z-F?iLVid zNIpk=oj6GHapD`q{*n(7-z4^vyqEZAVvFQ$#J7m;qora4DSjb^N%AV<+r&9|d`7PK zV&Y$kGbPU_zC)ZLc_#5);xx%qh<_tamK;TVk2p#4Na9T5=tQX)M2h>Qh>_fz_yKXG z}a&)%6RCtmin+!~nU5TF( z=imogu?-MEBhHjujQBZmhGdoa58^b*?nq#!31uo_K@M5%}( z12b_<0c*sOl1GxeAP$i{h*&2MlH8lvir8OrFmX|0KgsQgixFESw;*nduN`AIkcx(+ zz*m^D1SHoawjs{Jud?QPS0c70&Xnv)Y)71dykt=om*~h&G=;-mT9zwW?qIo(lYbj^D&5AcHKe5z18ws;z>CCb$%W^DzSXO3Pk7Yxa zO;|Q(*@|TwDRDB@jujnQ2C?kQvIonrSoUQ(faM^Tp)7~99K|x6f+pc_3bIV+TKi z0}LSq2N@Cxeq=}^NMpz$ILTmXi*S}9h~NT43_%7%GQo9*Oo9gt_U#ZJGx!rcWr!qr z$&f_wFGB{wM+26($7}OfMn3%riZX-{*fAs$I2n+V)?W8B7t8Epw6BxB{a5JEkL~QcL%YtpyF)K#|L%sr@zABSUaD9Ot0TL^Dl*&3oRn|2 zp3E{>ozWehlGz((Q;)pRUXq!mpMicopkWZ21u}=^n>7#8OF2ZcI*rvsfqXlxV0BKu znyibZvD(rTZeyUuvY0cwf!am)sqE6<3K`xLH&m< znNiIQ1WvA9iQiE;-MxR?SJZ3+$pz zc@gKZVP>9T-P)6C78vH+xePE8X5Y(@Lq88N-_D=y{PXPoGdyn-uD^|dBH3_4jhd7Z zSyDR66$7ZG@VSX#-K9(<8d<0WsdLa@duAI0P2HGnnfo%^F%Mz3my8t>!3qa9n8;j$ zc{+1R=DEy{%nO+F2D0VM&g}jzb1CL6%r3;#Ad*>8nhjE!%P^-imt{WB?8bb9*`4`5 zvn%sc=5oxhm@UW@zv&$-JP7blk231m(?F9Qvlp`qGmdfc&y(4Qxe9Xy=K9R#nVU2F za{Q*Ytfc1B&?y$jE%ukqmGrwZ)!~BuCFS8hLR6##x zd*=SkWtayr`yf;NrVv)tV1t3ojhP2Aw_zU49Lzj~xgT>V^Kj;&%ww31WSUG<#}AY7 z0?FoyXia}@JE z=CRCK%;T6}GmmHfz&wFjn_$E@k=Zet6_Z%u&ODjfmw5_vJ?5#*t(m7WcVqsVc?9!x z=IP8vxnui_Wkn1dEM=a-oWwknc^mUA=0nW0na?rLVZP2hm-!L%JcDt?&x%+!FikXy zD2~~hc|NlXb3C&b^Eb>jm=l;AF)v^aU|uL0%b^=964_ud^CIRk%!`@lGB06X&AgQP z2j*qW7nqkbKVk-As)vuPSiuJRB%=gYGM8jt#axbgHFHJgHOvi|*D|+d{+78b^EzbN z4hFL#i4DdwuV?<6c>{AC^G4=n%-=DuXWqoTlX)}qA?7U{zv(0^wz9z`=I@#BGH+vk z&b*!Z9rF(65|fP*+{s*-c^7j_=G{jAO{TuANM?hf%zK!lnD;VIXa0dXmU$oZV&?tK zYnTr(Z)HxA<&VmJtVm^pH0FcM7nlz*-()__oXPwn^K<4S%x{>FGOJUJ5{f>?3TsxR zF*`G-Gh3LCGgo3h!CZ&=By%(7Q_O9dPcwHlINEfE75&)YEb}ntpP0umpJSfNe4cp@ z^9ANa=8Md$m@hGZCmGBCGAnkmK?ZXw^A+af%vYH&FkfSS#C)Ck1M>~$5>t&LzsW4c zlC@Qe9~h$Vw$_?QMGc$`(;{@2l)aJqbVZZyDb=HNucFZd!>TqNH#su2YSU38!iQLz zG_iC;8qgkLfb?h@8#TCkMEK-MgNKI>9u*o@ZLmpR4H!tl4hS1DE;MRjn5kz}MEEd^ z)LCfz#^UQeq@rbLM3g0b{OCcUQI?3ImI(vH#)poTF4asOM~odkaGV9h8e*XYjFraH zgltEI8-b7PXcYTUn;C zJk9bt%X=*UWci6@ktIfgY*?0H>A}*MWi6J?Sau*uBT6tU2Cy8$awN+rmQz{Av0TA& zGt2K;?qvA`%T$&>vOLc6CzOKP?TsZVgJ$UyRIPb%aPzO=@*KTOZIj7&DYp!kjajx} z8O*Xj%VA3)c&^?f+J2eg&xK_LmbF>>v+T^WAIm{3N3)D!Ih*A&mOELVV0n$@eM6Qs zJ!i#VEcN9n4d?03rK4rvvvBVki+v%~5*{(mGB7MGVj}jKfnzP9lOm%+$BrEl5kA&3 zczje;X!y9W$<-{~hL0F)nK&XW%rYp{GH}QcG^V~}89IL4cnoBGl(K?0+x0OXih~@M zOhpV~O0DcKuZ+>kgkNp@WxHNZ#n0ls+m1WauWK33R%{*v6?fQ2zsZHHW--QY#z!#;_L6^TU5#%TUL_T?!?p zqY+9>M?<~nPjFAss}*x>(ncyAn?R2gy>2lVW|tOTaJMvto5YQo8#e{#RK0HT zAm*T^y8J06ELFGsk8;OVLqVgLXD delta 89374 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 IMU`UsKUsrQz5oCK diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 4df1e728..ba1324b4 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -17,6 +17,7 @@ CHECK(call, AstCall* call); CHECK(binaryop, AstBinaryOp** pbinop, b32 assignment_is_ok); CHECK(unaryop, AstUnaryOp** punop); CHECK(struct_literal, AstStructLiteral* sl); +CHECK(array_literal, AstArrayLiteral* al); CHECK(expression, AstTyped** expr); CHECK(address_of, AstAddressOf* aof); CHECK(dereference, AstDereference* deref); @@ -909,6 +910,39 @@ b32 check_struct_literal(AstStructLiteral* sl) { return 0; } +b32 check_array_literal(AstArrayLiteral* al) { + fill_in_type((AstTyped *) al); + + assert(al->type->kind == Type_Kind_Array); + + if (al->type->Array.count != bh_arr_length(al->values)) { + onyx_report_error(al->token->pos, "Wrong array size (%d) for number of values (%d).", + al->type->Array.count, bh_arr_length(al->values)); + return 1; + } + + b32 all_comptime = 1; + + Type* elem_type = al->type->Array.elem; + bh_arr_each(AstTyped *, expr, al->values) { + if (check_expression(expr)) return 1; + if (((*expr)->flags & Ast_Flag_Comptime) == 0) + all_comptime = 0; + + if (!type_check_or_auto_cast(expr, elem_type)) { + onyx_report_error((*expr)->token->pos, "Mismatched types for value of in array, expected '%s', got '%s'.", + type_get_name(elem_type), + type_get_name((*expr)->type)); + return 1; + } + } + + if (all_comptime) + al->flags |= Ast_Flag_Comptime; + + return 0; +} + b32 check_address_of(AstAddressOf* aof) { if (check_expression(&aof->expr)) return 1; @@ -1188,6 +1222,10 @@ b32 check_expression(AstTyped** pexpr) { retval = check_struct_literal((AstStructLiteral *) expr); break; + case Ast_Kind_Array_Literal: + retval = check_array_literal((AstArrayLiteral *) expr); + break; + case Ast_Kind_Function: // NOTE: Will need something like this at some point // AstFunction* func = (AstFunction *) expr; diff --git a/src/onyxparser.c b/src/onyxparser.c index e347af27..dd76093d 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -25,6 +25,7 @@ static OnyxToken* expect_token(OnyxParser* parser, TokenType token_type); static AstNumLit* parse_int_literal(OnyxParser* parser); static AstNumLit* parse_float_literal(OnyxParser* parser); static b32 parse_possible_struct_literal(OnyxParser* parser, AstTyped* left, AstTyped** ret); +static b32 parse_possible_array_literal(OnyxParser* parser, AstTyped* left, AstTyped** ret); static AstTyped* parse_factor(OnyxParser* parser); static AstTyped* parse_expression(OnyxParser* parser); static AstIfWhile* parse_if_stmt(OnyxParser* parser); @@ -240,6 +241,34 @@ static b32 parse_possible_struct_literal(OnyxParser* parser, AstTyped* left, Ast return 1; } +static b32 parse_possible_array_literal(OnyxParser* parser, AstTyped* left, AstTyped** ret) { + if (parser->curr->type != '.' + || (parser->curr + 1)->type != '[') return 0; + + AstArrayLiteral* al = make_node(AstArrayLiteral, Ast_Kind_Array_Literal); + al->token = parser->curr; + al->atnode = left; + + bh_arr_new(global_heap_allocator, al->values, 4); + fori (i, 0, 4) al->values[i] = NULL; + + expect_token(parser, '.'); + expect_token(parser, '['); + while (parser->curr->type != ']') { + AstTyped* value = parse_expression(parser); + bh_arr_push(al->values, value); + + if (parser->curr->type != ']') + expect_token(parser, ','); + } + + expect_token(parser, ']'); + + *ret = (AstTyped *) al; + + return 1; +} + // ( ) // - // ! @@ -534,6 +563,7 @@ static AstTyped* parse_factor(OnyxParser* parser) { case '.': { if (parse_possible_struct_literal(parser, retval, &retval)) return retval; + if (parse_possible_array_literal(parser, retval, &retval)) return retval; consume_token(parser); AstFieldAccess* field = make_node(AstFieldAccess, Ast_Kind_Field_Access); diff --git a/src/onyxsymres.c b/src/onyxsymres.c index d116a9ca..9107fe66 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -350,6 +350,30 @@ static void symres_struct_literal(AstStructLiteral* sl) { bh_arr_each(AstTyped *, expr, sl->values) symres_expression(expr); } +static void symres_array_literal(AstArrayLiteral* al) { + if (al->atnode != NULL) symres_expression(&al->atnode); + if (!node_is_type((AstNode *) al->atnode)) { + onyx_report_error(al->token->pos, "Array type is not a type."); + return; + } + + al->atnode = (AstTyped *) symres_type((AstType *) al->atnode); + if (al->atnode == NULL || al->atnode->kind == Ast_Kind_Error || al->atnode->kind == Ast_Kind_Symbol) return; + + al->type_node = (AstType *) al->atnode; + while (al->type_node->kind == Ast_Kind_Type_Alias) + al->type_node = ((AstTypeAlias *) al->type_node)->to; + + al->type = type_build_from_ast(semstate.allocator, al->type_node); + if (al->type == NULL) return; + + al->type = type_make_array(semstate.allocator, al->type, bh_arr_length(al->values)); + if (al->type == NULL) return; + + bh_arr_each(AstTyped *, expr, al->values) + symres_expression(expr); +} + static void symres_expression(AstTyped** expr) { switch ((*expr)->kind) { case Ast_Kind_Symbol: @@ -404,6 +428,10 @@ static void symres_expression(AstTyped** expr) { symres_struct_literal((AstStructLiteral *)(*expr)); break; + case Ast_Kind_Array_Literal: + symres_array_literal((AstArrayLiteral *)(*expr)); + break; + default: break; } } diff --git a/src/onyxtypes.c b/src/onyxtypes.c index c1ff7363..dfe7a91c 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -507,6 +507,17 @@ Type* type_make_pointer(bh_allocator alloc, Type* to) { return ptr_type; } +Type* type_make_array(bh_allocator alloc, Type* to, u32 count) { + Type* arr_type = bh_alloc_item(alloc, Type); + + arr_type->kind = Type_Kind_Array; + arr_type->Array.count = count; + arr_type->Array.elem = to; + arr_type->Array.size = count * type_size_of(to); + + return arr_type; +} + Type* type_make_slice(bh_allocator alloc, Type* of) { Type* slice_type = bh_alloc(alloc, sizeof(Type)); slice_type->kind = Type_Kind_Slice; diff --git a/src/onyxutils.c b/src/onyxutils.c index e689b99a..fa62fc9f 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -78,6 +78,7 @@ static const char* ast_node_names[] = { "ALIGN OF", "FILE CONTENTS", "STRUCT LITERAL", + "ARRAY LITERAL", "IF", "FOR", diff --git a/src/onyxwasm.c b/src/onyxwasm.c index be107baf..26f14bd5 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -2204,6 +2204,11 @@ EMIT_FUNC(expression, AstTyped* expr) { break; } + case Ast_Kind_Array_Literal: { + assert(("Array literals are not allowed as expressions currently. This will be added in a future update.", 0)); + break; + } + case Ast_Kind_Function: { i32 elemidx = get_element_idx(mod, (AstFunction *) expr); WID(WI_I32_CONST, elemidx); @@ -2891,6 +2896,20 @@ static void emit_string_literal(OnyxWasmModule* mod, AstStrLit* strlit) { static void emit_raw_data(OnyxWasmModule* mod, ptr data, AstTyped* node) { switch (node->kind) { + case Ast_Kind_Array_Literal: { + AstArrayLiteral* al = (AstArrayLiteral *) node; + + i32 i = 0; + i32 elem_size = type_size_of(al->type->Array.elem); + + bh_arr_each(AstTyped *, expr, al->values) { + emit_raw_data(mod, bh_pointer_add(data, i * elem_size), *expr); + i++; + } + + break; + } + case Ast_Kind_StrLit: { AstStrLit* sl = (AstStrLit *) node; -- 2.25.1