From 7353de7b5094be95084c2420a7f775438185fa50 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 4 Sep 2020 23:24:05 -0500 Subject: [PATCH] added for loop iteration over slices and dynamic arrays --- core/builtin.onyx | 2 + onyx | Bin 595296 -> 601056 bytes progs/poly_test.onyx | 20 +++++++++ src/onyxchecker.c | 15 ++++++- src/onyxwasm.c | 103 ++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 137 insertions(+), 3 deletions(-) diff --git a/core/builtin.onyx b/core/builtin.onyx index b07fe7d6..a867c8d1 100644 --- a/core/builtin.onyx +++ b/core/builtin.onyx @@ -5,6 +5,8 @@ cstring :: #type ^u8; Buffer :: #type []void; +// NOTE: Because of many implementation details, all fields of this +// struct are required to be i32's. range :: struct { low : i32; high : i32; diff --git a/onyx b/onyx index 135af0325f99b311e7dfca7031fbb79f3045b472..93a0ad264e39c9958cd53ffcdb64a33865eabca9 100755 GIT binary patch delta 90101 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 delta 88218 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ɹ&Ck5-X__BzN%2?1>OdziLj%V`n{?9e*&s95UW#kh6ye%Uc8$9w z9l07-y4baFjP&Vh6uBuixaMnv$0=>9+v%H9ziX~KIdTAj(>~4L2$If{6wO;sr$tt)joC8lCgPj?$zV(J0YjB_Wt;E6K2b0=-mb3d(p z>dafXn_IZ+CO0MHHP2ze<5jBU9H->_d?X3Y8Ts}njpT&Jo~H+cd6~jM^MyA~lEDKt z33l;HnSIRJ)EGnl9kE7hE{i5cW#dT01F0OjArZ|$u4&Fwa zrh29^{BlgX@{5nFJ^C(uS_zv3?%w#uH`iOa{mN@i^PUID#}9J;uav#f(Lis5)7%Gm zTnDvVSjk0kM||C{(z@$j%>+9Qy}_;Ya^93z4~Pmx4X3sdej}7*%fP1(mr=4aQGDT1 z`bP`t%k?f*MLIDB+Ef&a2b#|~5y`T0N^?`03KOEZ2=EY0JoH+aYNkiPsH zSGtj@yR93M)$PVvYIBu4Xj)#CmfrSqO^XWRw^j#x1wUEgDHPJ!+g>)g!t!1&Ed7

-WFC#s9 zPjg^&R_fjMgfxEh_~K3R4To08HsO!{@bv${R1 zNkT(QmX52C#TtpGH}F;#9arwSc)p;C5PDp(pZ}O6DD~Ui8zysO#eLu6s&}_lZEG z=YedUBBkcnDlOu|db)Hb|E)uCNd>hH&N}_{JK}X%BydIqnzKBR6Zo#DH1)Z!BPYQR_Y4temhwQ(eSoz4MI+Cy-Q)={l|PyBH6kg;h7ZsFQmL2Q>?)g@zlpT()XjhFAaFNsPsPWF1l2C>C?M;_CFWL*L09l z|7u|8XYvY?F8$>Z$o2J)JI%wn9KWk)!?`VL8mls=|{zD>}TE&+dKp@&rX11|^LsiGG-X$KOdG zs(NQ}EuYdg8-y5T!%O0Y_|h!t@Q36ssMv(y)S9vQWw{2qC+qM+LQTE%&KmMQ>BPeAiN` zzZ2XmE#g?F$mw`y*2GWUNX%{?bLc4oO)nnE*;jAJt-D}lY3iXY=2*%38rVeG!cNmg z_6prCIse^=?3UX7UBSVtWEAfAlBWKB%likOgO+ z$uChl&l2y^kmX4(UDE;bvv};y+HfHjLJSvLKxo2+NC?%rP#Z!37pg)i&xMK*%5cFG zf-M)Y_G(mI;JZ>a1ZB}oomn6y6~3p>!=-6O= zwU#lgYB^K=rbNs2n~mx?3&adNq{YTyyJGv=(lKLWm+Q58^p z$_eA6zRNOa(xSAxDbZz7%lebbr0ud4QiTL8%OnlTmiM_WWA!H)+vnA!|lhdqvDDkCPPOQ5v`9hoj#k$$S zJkL?T+KwzCK4aI491;-h4@Bi32;(gvFD-MK)}DMK%UDwf5?~c;kB4g`8|6TJtm<+3 zH?{OB7Zpq%r}21V#Z8u%n1~l~{$H6qD-DwgtNGR(yZ*?zG@q+Usy;x*j~-oC}zKHw&9B_`s{ z9e?9lVse_Byk%3JkkyY|zQR^>S>p08b`)~E$y`o#DK5Qufrm3Qvt)X4lOZK0;+@_b zdAU>SJDQs`b78^GsKClR;^)HJB4SmVM+(^(XXN|F7V;go6msxQF6;3oQfWl~rZ>Oo zSBW0tCf~A~+;tsp`z45oz0yC7d%F0W%3x%|!s@(lJ0a=Tkx?p~5i08i!*TuN&H2sf!y zV!}In{;{u2Hgl7*7%62?Q;T@yHJe_Bcv(&1axPoN<^EjGWCyw2ipv@7E|+U^If4CM zh6E5j^D9dRd%a%E@5?DURn8?->_sr@!!y~svc!)%XR>2uNhED#z1)>dpyjMtqAMmP zjWyftN}5n_d-mFu#L&%Ftgag-;}q7%4bh%fY_l7gOp7$k*PRTeM>QKD z5W#-_9{4~M&sHAEm-L11B!`e}cEp2}^ZdMnPg5sE<)lT`GnMPn4(8ODRBGH^ZJLf+ z1|bPdNAlW&eJZBJbT`k1d^(Er6VDIYwBCk6+N$1xFjY;|7!I*mPcn)wpzN?GO6Nye zfENj&F+a07FHA($C`&+`d}6U)qyqJz?2s4HwyP|XqDm#@@r4nqznEYR zi$$g7FJ=eJlR4B%#Tt8)!RmEJ!nSymVA?g4UG*mJv~ea|Tm{9iq++%{2;0nO!9JwC zZP#?+-z}ZB^C3AjERQ+)BJX;6EW($hspl3FcEXnoQkRDiQh@~5o&TdK`w&r;X;ERO zx_`Dy@a--6www699cRRylw-5~Xesq6B()7mRj`qhGPx8tOcrIsxn{7}8-o*=s-2Kph97x<9GqTwg99GU1IBRc~1| zag7WvR2Cz{bqw6%j*^e%3?nb%V~VJp0tEXj@*Zinw%AQ%$NWjt>g&HX8dHxW)x6X= zY%?Pk$UZ6D$Fdi%WMLJ_SAt`kVtZckw6lt{^Jv2!GUBD?YxOC2_$~xG|LPm?tZoy^sQ1)B8{`WZ+>25>YF({ z8g!FA4kT67f$(;&Oq$Z{&#XyJ?2-~HlNsvy1%$n-Od7lPP7;Oc!vlHUZ@h{{S0Qc4 zd6r&qk>NZNgzs zNjrTJ?c}z54$qB0*qHjG7-nhgSrD12e)xf~k-;RSibj}etau<7s{MDovbx|#oBAPv zTz-cJb|{#PP1iHmCRB{S?Q`IRqg(s zFjkdRBv07^1T^$L`@JfO_q?!C+|mH##JeDR3m)x|@*EahjYO#1|3%n>Y9x?`6tEu= zdcIsK?1x&~|G}PDBh}S!-Vx?qos=i*SiS0`4juN9B~&NnND@n_PDXpD&)~PoU%GX{ zc94e=mEXy?vWK~Z5--|%p4eNdpS&fkeJBaA`|GW&Z}}aY5lTEs9;+6LwmJ-bb|~?V zJw09A`xylLv6=pAhQ2+7_Y;0n3#7+koJE}BB}mhpMG&3McU9)Eo?0v-tXmlN-_2@} z+LR3ukLS5*Y()(cYCG(WT#$F{N)1xoc7zf=%%i@x^|YxJ>BdcC)xwC54je3eS1)82 z!^k*ti8aP+QSacXBJ&U)$c;T_J})75^?1pAYm+XXdQ|9v zQhe{09&zOb?kPR;4g$jxwx~Agie>guZ49Bnm#j(zY2`>?mZbdQ1)CK?Ji}AY8IAd? zc^4Chlz0L;4(A$` zWnEIC^l7O1(mtHer`3sjsigcOqjdGI8(UwO*w6+O*p9kn3~lh7dDX*qyZUq1w;tKz zd}=(evxw6OQjZzNE?{o;(a+HV>tih}o5s4=C$*^eGq#w=gP*b8^+}Ld`4pl$Bfh&t zDPN1z2R!VfB_6Xk^+|hw^#arke^5_zh)NJ`63qj-O_FCCjneBqZrH_7YC!tZ_xbE* z15$@9VvY^*AoM(+)oX}Hs5;Zx*oIiw4(GEa4ap$atz$$&+jt-+kcx2Idlp(swz=T12AswU4o(ktB-tG_dWFBr<5pL@^qB;~x0vEnfJp zCi8B^_afqn=s0t1%oot#S?$K8o#W3q0XMz9+x~4Sz@NSnypt*uzzbXoyN<3wvSH2&P&EKwWqKD>l`AR$=ff|uss+*(mi&!GN zXCP2sbNKO&nC?~t7iFhrJ&pB`CfPJ_6f579)UNStm}rRSJdhh=Rv(^pvIoA6!zg~l z71+@5GsK(2S~ z#g5a9`R9X)DmCUg+KTr88@>Y*kB9w=EzZLNbXv@FlB*qvdDkI*sK|aX59IqF5y$+S z6JPQ-i)v09lS53`ob>RW@z9j}!$HMwf0P5G-b2_&c$A44!qZY6;X746emrNhDlw!% z)q)2m-yZPQCdIt=!z+NhgGJ8Qd4LM$uTahoW{YA-sN)KS^8~kOFvF|DFgkt!`y4|C z(!gn~Zwth4PGn14VB@=cCOh1Ml&3>xu{$k@wt{vhpE)M_qZSOj7BF)2j_~JLULxa6 z7TuEgx`edjEyM?VOdjXcSVBwU8Kjcw0u$Z;HX0&5j%d@`<$)_u&LE$%JuS(?m?Z+B|)Cg2Z&@} zAlM%z$}M-7$?T(+G_&fj!@JM6{M{#?I9=GFRwS(a3XpiR+?2sfiKm59rl*D8H`(r1 zcoed}%dWN}4afy%-X`ElDMh*ps$oXq~gal}tm2Ae+7Xi1OnN^i(HiH~xggTUBry*}Qh7 z26@c(wj=A@tp3H~2piU(;3GmE`>s7%>sE2rKNGpb+QyU8#?GafR2?tqFvGo8Kc zh#l|C4w&Lk-)7+*Nn1MOHk;j%RCL!*`=|HVX|nf~j>L!jz+QADz3Hx7tZgUw4Y0FoPb%wKbS2!n5mYt)z!g=biOxG385x=rC zT~Y3YN&j>Xnk1Loy&JrTOp?80yTNpuKnEc_=jtM1tD4Hi15d2QLTc;d=BbjPOl1$z@u z%971&PIpq1JYiYgNqsU}CIdO?!905qPdao0tKEatb9*uVpQVIz581f~#$NsL>}3xU zO+K)&p2R@*Fwb6OtlQOuV!yMdj-Sfb^dk81m|g5eTGEe~nOkp+>Fbx7wl_LQ4ja;& z4Dl+uguPvJe$ta3vG5{>RC=U@z);jp-GgslCxhobE_fY`HA{n4X;s4c4=b}vzRvJ?GDXZo?0tg2?FnoFxGZ2x%0 zq3S>~oem3^ZP#>D*jEE_-qWr-3mb&z{FAKZAkxz_sHM1}U3s(A?Z z^Pl(}@GGgMx9rvsvWYHk&SniI4d|nO?7&bGp)21U8=9{B`TQB_#O2S~kW-IiI#nTx zxp2rCRU}_c)}se_@agb}o<^f`0M5^3ZzDH@tDM3mE@u~~aDXw%G1Mw^>_%NssTl|NcM>1u*;q=|JkrNjfp z)%+dJ>qJR|pF%k77mVfr4&~Qjm2^m(5mJU>!%0@=h^kY1J>zp@JD(mdjt|(7URf z!{a8!IV_12Ib7#Vn&wgyIS1>Jq#C)YuRW4@sU3eiT(W}Z9@h67L#`0r(NiU47G%@w zwvmVM@KqL@B6P7aT(*|w;avV(eA=lQ#pPGBJetdoWO*!?Z<@&$WLcznRF;Qwn=EVm zI1CvK%=wYBJdn$M&Fnjw*|e19A>5{+EDt+` zO;LUgIU+KyWG0t0lS`Y)M*Kzzg%wt$?|G0w~^&_Ty7%E z-$T~r*ODV!xT1FA)68U@nLNQv9%?4{G?Qb^DF^RkAFaW{E6s z;(U@UZ{+f1SzgcOk+Qs&%Y9{8w0$R87X728EQ>zWuoQm#hW1;|9csvmWn8W#%inUj zoGc5Q(q=Z|-D;TlRlAU!QYi-k>(Xy7U_uhcIg^+h~T$(dNajNGv{@( zEE1Ju`5Rs!{P?Umv*~8`W6k7&W^y+(`!=#H(!tL{R9c;K2er(Ms+bv-m*u5AWB$iX zaF@baZD#+GFKkLW&tzHL@qIJ?7g-j*XJlEVsXHh~GI$2~l!7ND6yKXUFf%#LOxBs% zPmpDi4j$BbIzsMgW)myRq7Ya#xs6Vgw5}Wxa#dLt?N>pTMH7^jW#Mcs%c7uvi~XUT z*(+II!fyr#3OobhdsCK$FZPkeH+dB8UmVFYGumqAyh@fu$5~<~C&{uX^ki8Ug&rx( zBICZYEHcK4OL1N;WjRC4{|)7caIPWCVt7=NWigz}$+8%JrDa(RS0mrLrEA3e@lKZa z@wJYkeApk;O zE|iBboC{?jjOPOXIn|8A`kqtBF16={b9ht;6crQk3?;yhvjBnNZ{|0HB)O^@@K-qU zp^5TnK2NWoK{^q)@9OWn5ADci?kv%$elT_ z#j{`khRk|48BW)_u|11%nA?D5q!WLZdxTVAzs@Gnv~yeLF^4Ro6I!w@bI6bMKv{Nd z5%H(5>Iuu`5)MgTpC`7=b2f2c)wd8Ec5W_SFH~8}{+x@A{e|QD@FW~btABAJj6B3) ziA`PBZyt&E8h#8#1b7iU>=i}ahrrN(H9I&Dhq*OZv%B+1ykj?zrbE;=ds%ccQs46f z>zzzG(g%1z;qlwG*`;I>U;a}xJ|gnKE*39(+r7qq6lZke8R4Wj*`$(+tjSrTVV@S@9b~`+c4Q$QQMJjeNeXFc{k{c1KHMa7 zqz~rF?o}OR_kQ8reIzY2Pj>p4#4=JzCmKFdjxR`Bz7S7ogU85G_aruMAu4ytSULXV zTy}dQ3Gk|Z5LJp#$as~$|3Oq~_-<6GW;rXDMtp2;EW@Ku(#Zt2WItZo#i!wQlY4Wf zOG7aiCbE@jq?+Gq556xJzsW=$oG~nG$op8PTqS1=N7&;ua+}85%DrG-DDMTq%pslh zq2JrcE&?NZW*agL$b(*afh$$_kIatntoKA>w0tNaq3YY6kIGVZD4ksi(g2UeT0R zG`QnZOj?inx-p7jx*4SY^p}!pxR+U`S`$0Rle0CM$3`S~c9xMcY}ofW&ZQ&dN@@F6NoP*E;@dC9d^VAW>V0n%)iZaCd+{@Ax+t2M z&7_xl^lQa_qnm6m?(oZIGMz|l$`&%qb&(n!lfUFmk2on|#G`L!GrO&%s%yIvO{$`q z%349==2)VMRWuF!Sn5_XfL40R=47Fd#Fu5x+sFv|?F%`6t_+U{upw^Lk&W2Szw=Qv z4P*^I&N;b_#L`jEWrqzevP1Ar)S+;=_e|E55t>Tu`Cj5oPOGJAtM@ma{%ynx|cf9jH#7 z*sa}I!Q$GmIr}itx@O{h?BJiW*=sxbu2yH_l(m{d_7|jbSM~S6eEA=;`2}0K#CfZ6 zxP4;}Ui=+I72u0o@fWaxGr4la2p`<%4qK2=!k2~wK9{uwo+ zQZx}lqm)3mk65!&d!ZijKz3Yb#T`YXh0%}}tY|Op&#r}he?5LiffMs&%N-iaEFRyN zHRXk-B#XWD?(ee3xm5A3IJ1R%q!y!Srm1C(b2j?c?t8NNANbj|(g)n#G^hCY0rCha zoFk8bH|%OQsp7h@L~~lv>|^%(p@}WgWGI^HtmS?ZWs@|N&zH|iDF9i3#W_>T?T=Z2ATXmVVDs>2-60kitNK1W4sm!FycUA)sNh}UTO!qFcK9B46z31JTlcU@nfe0@{GE)berK%M$EC*nmNfG>B7O^a6UT-J zK8WYRh$W+WGe-WAfc?t4F8V{i69=N6-MNUl#8Ov%-hDDxqkhs}jMR$1X`Tv*q6yrcXe+O~n&;LUMVhN zCN{hW>d7UvsV_=6GZH2A@Mq1+(qP9#L`?ho;gM`wS-RBgatwUrQ>KW@^@Pu{M)0ZQ z#{ykx1NyWA>+edV8-!gh&ZaGQ=^|${udZ;pjruTrTS2J^4B8`jRu=cXY6|h4JY{ud}ny8I1ciK?j zsvKQJJhtNV52t-yc8VHDM)JgPEs?$Opp}Atz`HZlZ6>t*RGkk}{;_HC>toOI$enM; zG1oL;<2~sN+S7}@_N1L1`{PbbmD8oJzM~fnP}5$g^izE3Q)+z(4}N%sA%#7XzpAt^ z3^UCcWoxqxKU!72xNH$S;z!3iYHOCH)TkzF=uhkV^gAZs>PKEJX~{P78w$*GXABFE z>6iG^PHK8Wr~e~>j-a&tAbngFdP8m1b0|JO`i6C=N-MB7Rq0=J$P^Y`jmA^^DQs0W z+L(U&S%0@0#UCg3w<}^Fu^+E+e;2Rc&ZoF1wQk?eXB54mfX{F{b zchkSAL-!NMozSyfl`v-Ka@!A7*2?e0yYPLp?* z+!SjNN$0CmKNPZlOYvs2WYQ|cdsh1$?xrll+*$7?G@9*gOxM^OigRw^#_8YfeT$i1 zuCifD6#d42C~}wYY-U-R9vV%r*bgadqWhN-v_7dRT|(%B2Fw+IFonLX&wgl5lYBlo zh<=e8b1`Y=MO7mDX--^{{v4*!(o5Dm@a8MO78RRe=H80Fp!ao5)0!ISl1}VZYr2gtY|FlDLk%`( zpA_-|5XBzM!}G|-wlsvU8N)8Or8nrQ(fTdz=rBSX{>hwUX$<{q0_zq_!`)g*yq+gc zKo`J-B}VmhiLH&Ll^uJfmyG6%4VggP#-ly4WM@ArG_s7hbO2k>fhN$7J+-_V8+7=F>( zoc@%?Dt4nS=JY#s+pV48oukE(3q7>V^>PHNtJqeAw%+3s_b*RT>W*m+`xA*$FDJ`p~V&?Qi z3Yb-+f_N$@*Pap7t4ia}JQcSlJOKSDj?Zz}yooQ39Q=e<`&E#nFSaxMBZAojLWF85$H?8%AO-`V>b?sVXtZPc)nv~~+!4s6` z@DclmG|d}azdQESo8&?foSS-F{6(qYTyi#5^J^lC{R;Y6dkB`u=CxKV=rxPz^=y|ITS&ZTqd=j-g#TzZ!#W^(Jw`Y%b;n$i|Oic;x==hMrCcHD)NIoiW<3r>XTDw5~b1Gc?wln%oOU%V$$ei>bp%3W*Mf?EnHPikJ3d_>b;58 z$e?v>H-+*BcH11v#^6VNwAUH7B!jwB?HT>n4E%{Nx@IGLy_ANqTT8)~7LmsE!Uh)h z4GoS+!0K!$zfttPTV~%J#B;tZ=hGwGa#_Ctaw`97A+jc0{0$8aPCrv}8*?Blub(5| zhrzsGvH9aL_UAXWiEcBeor~$^h{|6sRP#G6-mS;v@#&O*(}z)WVv{IRF$LPJblrJc zt~@RNDO!nFI`>MCY{1o<*P9Alm1o7im#A0$4$X?pzpN;%0mE!=DAGaJ=$ti?!XI1_ zTb#nLHP{D<4%8)Z`tCYY!u=7I?;#ik=V#~Vv8 z<3kr7nO2;VDwJJVMmxLgs1Dk#m|j(#g)OJ<+7sCFVtPBt1Nn22v$gp=e#Y=))K_`* zF!|#HX7o!Q)2}fVH?lfgyqreSzpJs_<#d|u(JCUzWYSJ7s+qw($t!)Z(bwJa^*v&wW2#d6nf@@@&*-CEkJ=*^$?yS7k!HQkWL4s53(!OIpF z8lT}KCjJFK|Iv^*8d0V3UJ+9u{)i>WGlt8l%wY!|LWiWX#2xe|by&#S@5FwOq_Sx{ zvAt`M%8u=%4e7lF`l6lGlhW}&>OFs?dP;5Qv1^$We>BjY6=c#j{`0YKF8<9qp4<}g z7!Z?-2@wA@`Xo}`!Neq9$M_(LMrD%2{@~p0G zis*O6x+qvKDv2Q#T}e!xq8ZO)_!0+!T&}lHE-{AGnSWq+W?<|m>Z)r|;$W4csb3P) z;E%bM#7d=TDwM>KbeWPEvelHtP^1Fv|BFle9Fb>Zi=#J+b-eKB`jkYG%%PGPvcQiu zP4$E9HB3=l-VpRi!P&Y zbgcDW`d!E`Tlv^Puc%@At$e!Xl!+@34s$h6GkYs@_?iCX=m?!@p{85erJrdhYO7-v z_u<@R$t<>OAN`45n8Et#aR9MsCe!KBf0oQ(hxF)I17|XWo+i`Z@Y9fN+MUjs&R1bq z_Iozf(n^A?#MTY~ZVBgpe(3LpGcnjZqa>K5@i=(K@L`&M^L~1i+Wa{g z-8wC18;fg9+}YeibYO)|_(Km#1xBZ3IZpd>aJ0uy;p|P{hqs)}#vH{V)sY-}n2w#q zHzPr;)Dg^jWhR+v8YFT}PkL`6C-13?CKR&FR(K*BnnPXbVrw=thkDWR*6h0+`jB28 z&+o*YNyn&b-~bE;!x8>eD!(JfSdGI1plJ>MbSeI7K-0vXT|7n$Y?H?o8r!A~E;uLk z!MmOp$MH;26u=x#(3*A^0??MYQE430o}eG8U4lOPBo3t;{*9nMjd=J*i3=ViJ@O}z%PV^^^o z!mkc)U#0WufdTsd*JyJ>C-&EG{e||W^j&XebAwKxM|!iFH|Q6d(2GsKiJ#wY?8Wz; zSpfBlfQELEn1yz#84@BN56P@)6bJwn1P1c zU7W-#`HZ1iTQ#4omC_YJg_os$xu+J=SaqmJ*1KWKKw(726$ zbUw`?)Vmd{@r;frm+%YkYMOC8kbjYbC($LNS>`jWigkzS4bSL&LVq2nPk2FB5^A(z z_OGy5{c6kVyrLC?{vIorEBK`Nl({ncXAb{)OuE|>XpYPlLn?ByEt~m@dN`glJ6S$=(O{NZ=R+u@HyO#~y{Tfd${l+lIH#E$p zWiOO1JvoY>@}Tnj^k%VdaPu}}*wi;Py4pTHACSp74ue&f*~;oO0uL1^(pLxKgPXF) zZ)hC7AH(XsrL|ml#BiG~7_tu1MbQA?UexQ}QcB!YE{J$40{pE*`S0=-j?}Yvv_ElN zGoqwpFCC$`dQX?y(|vu|cSIdQSs#5aQB$;SS9YDME7DFiSpil5X@B8i+lcw;^SIJ*CBcbAUQqUq;#9Wi|$h@41 zd_&W%2diYIuI<|mspEcAw3==z<@!?+NUS~5;BGUb5_N%Qrpjli9uZP|R z=S~a>b*eBAb)izdbMpNh-K}kU_m%ZTccy47i|nqLdmM z`!6+B6wZ9hs#ob+7aH5g6&gpkkV7t;P^)F3@gQJ||4)Rv|0>aD+Crm!t3u-qgl~Wh z$o433Jf_Z-v4zG8ka=j1QO)G|CB=s8vccuID>S}r{}1T?jr@Pe>Hblo|1$G0xC;=niQAsTdZ^pfsTi;*kp1N(uX0*qChp zt1u8gH-MV|m9Ne$6kyQcA^j6aO;oMvkFh^UMkB~NQ^XYR2l*@DFrd)5 z3NZ0|2NoJTD9|x3LnRrwD{~)YUoXCH28jZ|SilM*br9Mb>i_xCILM7y~3FaJ^ z&Ex;c$K?BO;lHJ!GbLnFMkAv(Ko_7dFdUcw%mfwy+&d>$N~-nXMn4~UEojPIq(kn z43LaMqYdB$xC1^w08kYO2kHY+Kue%K&;{rP49vi&X*O!?nBilF`VAO9W)Q*#et`qT z|Iww!$!Icgd!3A1%jIzY(h_a}f1&9Hb!30~{fn(r9ER3r?pb&Lccw zw{NggDhcjDhRqNk2dq=@0U@{LnFdH$-~b+!sz$hpP{@2@E2-{}|sn>2R# zAk~1eV@Iim*Hb0dQ!(cX>UKIDUq`^73x=oP=nxO=rk=3H&W_W`{vc$5AAZg>rOyfw?`j9GfR zSBO|c>4*$DDnJech6B++7l3C}2bg-Z(3lDAzafWQ{=dY)ea z=#SJ=J5pUQk0Rp;;3_ah3At>JBNlOU-TxOkQ%P^WN0IKUjQ+dCzEvDIBGh>n8RuFc z8u8%@HxV{m9|XLBoC{7cIUSw<^T4X#Aw5U;JJPou6LkQT`)PJb2 z#(%Zb2JdR4@fwuB3gvPaCFC+kUyHbjH-*Fh8@HC4NQZ`mFb0?g z%m=;!)&e_#eZX%30K3Q{qdQO$2n8AdEr5dQa0ECXg#ms8!b9LC@ENeetM@X1FAxIM0h$8sfgZpR zU_3AjSO_c!HUd8a2Y}PSHQ;yPDew;X0%*{o9f5Ly9}o~=4h-6cV`5^hvLTP!e(=2_f_r=^$XFNQZ!QLXlo`0@9?1wh<$s(xeM$ z08v0e5D-uSQRy~b1w=$dNHX`g_MQpld;RYJ-se8gJx@-4Yt~+S@3q(NduGkSIEn9& z&8Vg=CFWcB*4v7Vca)gl07q^sG5xleVC@I2PNiBd}kH1+pU#W9{tl2v)sRY3qJYxuz!p5|BxU3ROWk;;dv|5JD;$x z+9=5$^;C(u&}#z*S;2Xg>Ny{;Y;EFZ@y7KqYIxcF(c2TnIM0j=Y^7L=J!@+t&sR6d{5)M z=@PozcaJm5`w_kEC)|dBviaW>=DwhucX;OdndWN$|KGlz|8Fu!A$C1c5H|{R^oi^L zR>1Fhc=^XAS1c?1Zbb~Yt{cK(uDz0+UI*{ZzK7RU|JzqVIDJF#P2{rdtM+IclcG(N zz9mtn8E(;Zoo3NRk?{0D81ed8yp}+z_o$(`Hz^J6JqQm-O42{+rb*ueX^+1)@4ulX z=P~aif*tYWs)GJ+5&rLZLy(UBwUu}>4yFA+zj)mJe=`4{^Xv>0VS%3b=Hq)fy|7P5 zrGeaTI_{QMsrP^Wy<7LOEYbFNNgctzTetA;OG>)KQ>zQ=6klI_i4L`pX!{!nI?=jL z1NMY#z+imG;yVrB1^BMSw-J5@uPwe^@$HZANPKhgO&?~O<#Hg4?`_aeeBDo8n75u0 z=rr`P@UfwVr@AO{4$o_Enr4GFra5Ajz|qT0vp!zW-D$PBrZD=JU-9&{&Hp$2@D0;^ zyTCLF|C`LM*EzrTe+~R^5uW6oT?v1zz#d8n+tXcH>&fwvq#QK;V_y}SYd{Y?TV&1# z_C8l+9s}+?Uu50@hI~_GI`I?U*}x>=^qWOyYv9~lMdk?LCg39AH^3dh2DgjMGr)Dg zJHT_mKtD-J{=LXd1J=7!WOnewTTt>rj0R)eA4TR0pzCgtxgYr4pGD?H;D~!gW)ZOP zpCU6Jzdc~+I937n_9-^AfpY_k&FMhDV4TPR_k%hS41iBg3{EzH zHDZg+EMP!c+}sI(XV1k1+>irfwY%8d4U9;|sQ|Dr9j67r@zsjWm_SK7UmF<%U#p9Z zfu|cFW8me6#pYU|H*V}50}cn?0H)xko-cl*yf&~ha3XGbWdY9uM*wSOAzu%OJ0Nxg zKgveNz+E_2egM2Su-J^iYrw}3!ub}k%wXIx1oj$LY)%G#IJ($e1FSX%2l&7>z#Bln zvB)?WC7*zdfhMpuu*_r}&;h@mf?Hs~rMWn^-U8wvh?Bruz?(oX4-&uwh%W;x0~xS2 z@Ec$bFgyYC9pCuY#QPNy90B88-R;|Tc;O$%sn6$ z&Oph5@6W=4OBhNHj0XnIhRK1IfZ4$1crI`{us%+9Hv%UCj{)}qZvg2LL}$1pJy=+5 zCIOq}<6a!_Ffa!wF=Pzv^ExaJT<|(dbQZ*fmBr>gU|$@VhD1oxBVYzF9S5)-fSy%2 zngsp=Tnda^gL6G#t@Su^1oi?J0dE6i@beK9HbHUVxh+r}`0`dL4qORb3v7ks!ehX4 z9-JB805J*Zj6$6OlYrjT46J7^A! zxs20Y;L$5+Y{2P1ps@ju1Ahbt{#b0Pcv#f=3r>WA9$*vT_#3!a0xSeh2Oj+oN)Gh> z74d-&fj`Eg|G$3|3E*kfLBAsb;G#PyIk5d7C^<0ZPaMbr*8n#H=lz9}1Iz!7k^^r6 zealEv>;v>~U_D?K@C@kmnJBGh?2`Zq8G=vRz7 z2Oa>926ik#odZV$cLT5bm6#WR-vnUS1@r`B%TX318&1VCf%C(#r2tNhEiq>UR{%Ex z_mwR%j{$E0ZvY!7V7cf?kfb+~aYh6D$BhSffTJs8cLv;#W0u*#St&>W_y>+zjsaKT znB@krepMt;PLlF~Nx zFOTQ4I%9hXJT(Lv1Fz>GV_^4*CFT}j$4S@}0jEqZG4BAs%*CFkf+P)|USie)-kVoq zb_ce{W-1T(_ofnaE%3E1CFWt^bZne%P&hVCz7-|u3ieEC!0cTm9y1F>tvw~?XyEU_ zrNB=Ql$d*f$1awb7lEy?l9m#Y;BO^nd0@^>C=3j{4TXWv|AAc|aQ9to6@bxyLSf*D zMgi&9%S;tT~SX^9<9x0sIT-tRzXR z@T)sXz?2X?F$BB^90>d=)HG)U9pTtP0zZU5;W1!ktTAr@Yeyq~GAtO2_`n5a5Fa?Y zEaC&tc@mHS2(}ZE&yHy?(b@vYBh}c-B91z#G8U zz0h_t(C>jsz{%N&4?F=J2>iUaX?o^?=+VbCw*WI=HqDd3mB5?8j{UG2ua3qvz%(lZ zI}b6<*1*HS9H4iOY0d+_4cr1u!6Nx2us!f5a4pcc1{NS#X;%jB9gg@w{}G4}yfDJ_ znDanPcm)Xn4~{g=Gr+u2rg;aLHX5zBCi*XYr_+Fw$D#EC`;Nz=8+d90e(f6g?L^bu z4IDhlG|vJ*n~bd^FfA92uNKypz*@kK9yDHHuc@ee;NGcV6o9BT4RsG3G98TvSa$~M zt~UDb9IW1f1A$F|OXtIMz+Zr~fjbvMap28GC^^s%tNlB`M{i+oS_k9AdSncAzKc2s zjt6c8&ITR?O6-e)O1Y>D$BIleRWwrXKmv@h66`OLGHm-GMWdhh`CyQepafqlV&)VD{t<%|r^C3$9uC50sLVAMH5l0c8mmLN z^&0C+_|Y}?@n9v&>oC;6dyTCejK^B9UMF6hBlHJ$nXbS2fjNc%oBqfu4gtT%PplbX z&d;nr@fZHa=Fs)=M{E<}KSk^~_=+hPv)_j(WtARkF$>NC@uODEYUU`h%37~t)`>Xz zKE-SjaeDa`vp0yi4B|r&4i?0|%RzEYg4x3yWb;EbiyI28RfaVp+?Bxk4@G!~a%?7D zFQ~*e(REojJ5JY)Q`l{~PEUnjC$4MOWS7UFsFO8}t2J3W;ziYFV~0UTtId|cNDm$0eeWo84X$7a3!J9rMAT;z1E_%I+Q;YySnEg-mZ4VW{Ub` zcqP>i--7T%c$Eeesdy4}txm<}28foX<#@Za>Te?aKqvMI@^pNk&3+~f?!)vEzyW<& z3gHfpQ7mT!D*K;4Z0raqJf=TePPn;0`+(y>cAl^yepG_+>R=WJ1z6fEimKckT+AK~ zQX*Lvt{ndiW-q;>#3^^djm`&m5pnUW6w8U*cnG+!fqRBxzHDFJA(>Z)u>%!fK2}w#7r(ON8zmHkRF?Nv9Cpj!-q5@}zktoQG9Cm&rN*6Gc zJshc2Ot>|y*u4Ifl`e5BQAfr8v%qQbH9`cCP z*Y_j**myid^3+(+l8*)P2)~H%`xDsC(a;0GaC4q;pocvqTtAg87U$SGl{FxoGL7{l zZ1E~JmN>_OSJ^7U^LU3Gp)!+NGyk!#k}-(ia~4Y&3+ynTH5&_lxB09;;qm!wCh@E0 zvrTk8bO}37*WWB*x9R%!66QZnNhmjQ86FFHs$6GF%Qe{_)9rHfPc#Tm0WO9tM+<*a zc+g|x?ML{8|0Vn)!e=3T=9BRqQ+WdM;1wbK7Q*SBiKV@w>8pwo&F#p38>hG&w;5Rp zjcq)d&fXQ`A`KS_)3JBdo{XwUrDJhk04B?o?4|K2cjY(PSVH{3&GPZE$9J3AKEkja z>@qN6GXCEmM{VG@%vb_2}tMdeXKuSzp|grq3b3eu}y^LN9;J^ z(nIW5!ZM#SeIn%cd`9g(&T;uO)|OB`%7zhM{G2TytahAjBlJB%?GT;j1iMWbeUds& zoFnrjOCj|Cg0&@l_Y@mOSpQ45V3LyH$@~gWUOi>vk4x*b$iM;-;h#TMzQd(u-C~UhzrM}-1C>s{7qipzF-xw= z#dvf5ceaT_%l^eq0X@HB^NGFdh zgv|S0*m_F)B^RYPKrb4=Zc{!XQP>Ae#WwxPWrj#+1+6ux47DKh{0!VHe@d76 zrMh%R_(wC@ORpmB$)K0cViSp81G?dBY!ztFVbB}qmY7qYN@H?q8b2c3IUnZ|Pd0X; z$4P4Oq=ys7Q~UEv%tFwm?bWf9S7$s}NeFMhxWqh*n4y8uS~5q6#uql2^cpRtET z$3xY^&sp3IShor2qT?mz0LYgn?C4XfabJWtK7nUqp6r2Qd}~JCkn))gnbBXfnMluT z3+UP3vQ0#v0lnc8J2eAqhdZEqUS_w!PY%JMntl~`x&LR&_`q%%wIH+cI;$}g>2wF( z?q}9@Capn0FZvIgNOS?{pZ>#E61^YvF#Hf9(HB8q{*`@4bP?$3zp;lz$6y@mh+le} z1-c&ScDGm^qPv6s?KbO5^kmTW?y!kO7l5wx2U|(>e$W;EWc!G|2)e;v>^q{1K&yYV zheXGek));%Sk!FL^+0!c$m$T?9duF=>k8U?GU!ONgiV@_m309wVkEYbg!Y48BC~x& zUj%(wVc!v51iHS)9uge`YxmMv)N7#Yf%a&u4$<8~>pJWD8jO_(dW=8I1?{~S^v8iF z8$Jmw0u>+~2BTdtD_N|BwFN2th<{^nU^MrCwrNjkn=XshS~v~{AYa--y72}g5if~{ zvx;+&d27(V5v`I)V)*dLHO%5o`|8TR_){V4H|O3HpTyb{w?#P0;NlOxA5M zEaRJibC(F#b1{S}gMKrDCC>%j8nkyLYejSp=)_1inCN++J4LcNpuM+%o*HSg1C-E7 zTznA8j?aa5cR=5WWVcBu5T}Y)Ak=UQgwk*^Jc^~vLrPhoXGF2KM2`Uda}*m!^dit# zqu2tXcMu)Twh?^>bpIH3is(C_Pseb1@4)gnwumv=>M@i7F0RJ1l=%?K0$o3jwFRw> z06mNiori_`B9H^)*a8yS0eW{CwvFgBprv?ris(C_=f<^~%zW{U^=xb$J z3ej1hyCkr-3sB(Ep!XzjdCyYN?sDe8u2pvAk?tU`7zi1{1Z!U#Y#Nh)3vY!-ih=xQ7WFWk9dDHymsqpKi8FWDSpXJ%* zB}$ZMH0Y!XxT*S-tXP>)T1ye$AK~4e3V*z?*p2YF{+IY?5q{<0<0nb?AP|KEP#hgS zw$_N!(n=vPV`@c{ot~&fdS~FGt##3=11^RlW|t>pIy&&E@!*X{_nE{&i%|C$LF09c-w|B|dPx#{NOTO&ho7&+qVhr0q4MlX zf=>s_naP4b8T6E7Hj!isK-Y7#l|=6cJ=!hgFM_UInSDq6BGBC`vxoW6As*+))vK^L z>aCfe->t$L5Sx}!Q%v^4B=mI543<0zx@I$WoamdNTQq0CE<nWX+pm*o6<4j5Lx(9mAFm{(Ijmp-8a>sDMtdZ@l z4;`X*0RJHPA%*Yhid$t_1vpy>QiQ}h3oZGk7C-(Oek+Tg`3%2}#m|0*pJnm$p5b?} z_?|V-1a!6n4nD*0Zt<@^!_T((()yIaWaSGZ98u{5*^Q zhIRdp&EFt0w)s0O{=p4QKIIHvlI8GWSKm~UjC=Q~!(v&+|6|Z8U{R}-GI9Z{vr6&E zYYO+RQku*1n>-o|U89_p*Kpc{2&yD<3AeC{g_#z%utHg@0Oj-@<<^EV9tF&>;&8YZf{!^u;^+UZ z`UsdKV5b19;RP>Wrv%wO{Oa36UAn39tdS@_UGsS+vN0cSXzz!O~-ma#C!!m1Wlx3I2-nHDy)Fw4R-EepST zSILtdUo~FxoFgm<3n9rN zf2yp&)s|2BRi(om)(a?igoo`vf<)`Edq;Sp9Y5oVUKKFpD35UCD3_dijEh`9#+7;T za~^i;b7ehp7;~J9_@7Xie6Dc)3FRXN*!Q#&DkF5_8Ra6N)0aHT*)Mq>y}nYi1I|@K zwd|F(LuFy}zzlZkE1r1$uX$FhzE(CPUaPapF+lJ+*Xe^r_5E&Fchb3;*4rk8IjZdtBgxbT(|qsmtbxBQ_r z_JY`*zm+ttwBny^L{#yMih0HFD;5?14Vo6O_#%^6{QGHYU8?sSS>^TKO;xGhx2Y=C zd#t8Xy?4}9s`n2xmFoRDFO};3V=t9zxRW=(IxFBsC%-!7G=KHEtr5S!a>T`N&p`UE+ ziR`UdwYhwe{U=sUMgNG5Qx{VSx0F#oR;i)plvk-gu{Gs+rm+=xiAPl6CB9ODGrLzL zDEzjfdYqcm+GLfQQ{g_hI*Kr*it141w+pLQRi}I7Hx)jprTSAIM{28h_jXX>;<{>} zEC&|8Q%^m_^X&f|&y)Ia;d{@i%eCNYt!bftPOW=zE6)9;m1?z1wC7yhItz@-V0q8;Oz`454BWA4%>BRB}OR{zs z6&eyJ0GxQ6)0#Me;AGmIF2o4}C)?)qCyoJ5p2ey7{Vi}pj7iwbLMdBr6v>79xI7Bh z8#F6O75^Z?a7$3yU~yw^gBxLSGc9g~Jc=IagKTWheBwlbbI|6jBu)%C&P`S!HxMTl zoIsniTPIc=SP`3;PiHk5o1hw<)t<6ZxU91}+fmvL!t6nxPas*{R55{c=<&GmVFKZe z?{H7i-*@%qjnAtOZ!Kf`@CJ3ak7#`EmwDrx@-pW>*VymA$5wX=>G+N%TxV!CTTS{0+- z__5p+gr4^088wC5=ExMz zZIsK0tnYLARc8-}a{}7s@vz_W_+VIWDo=F!RGw(SG!84L@d)9sa>*U9a*?3voVj2+ z9~7(4;9;j`@IkTvOf`MhJKY&BCa$*VU^S)n>GF66FMYZ13_je1V@DV+b7 zTE-zKv90f@@mNb0o_|)SMW? zspe$V+*P~g@-|pCx9;82QM*jxgLl;!8bU)iiy<_68?U}$+jvPYZR6D!x}6tz>~?Nq zc?Y*={ zZdKy#k9pC09N?*be1KQt;Dfvps~zH%_}3vj9xBm_w_(92suQ)f@VNQ|3_t3G`t|dw z=C!#29h%`*hyY10IG=>uHoGkL0gIjV>+iVnscBkI99ui`2ja$CrMuwVSGCa)xly0x zpH!nf_ti+sjsze6Po45H#F3847a`Nv&Bz7-O>mB(m5`VMAkTU-y z9lDP+Zm0qD^Wl#C&d7BjMOi0O^{XS2+fCyDJ~B)GLiLGRrzVZY%?>1(^!EcuuUB29 zqa(k2Vmy2C3pLcUQPl==iR{FxRvNmcSyGfsmXvqZ;8D1j!wV`^DyEXYCh}~D-vXi! ze&3RRq zyDxrfhd!7>_(v|-L22*%1(M^`8gFnbbxs^%iG6R0CB>hEz<5=gYpYzzNr?{=sg_}b zPpQ$7!_>0EDyW(aDo_s*9Kco~*waIeeiPA^{EeQ(7Bz$(`>hPzgGNhAwyNEQogMj^ zi9@aMSMBg2{U&gM-@s7vcX*Nx{0ssyYVaiY&_PtCDO8soM5bq|iyRsvfIf1Cg12$H zp4ILT8_}b`z-S;MeUrg@oK~YE8>n%m;lEM^r;6}ww&=7P-7!^-eT!QP1%2=b zf=?*CjSj?*7trT{-C7D>!A33lZ?eS+rK~Vs=cH7;H&!{R1d!^e|D^F`+_THipkr2K zVQ16?=Mj-!0?RyuCVxbU--~ppsdzab2BDxE{zi-gLg*rXaezL}_4)Xyv(1Y9){nhbfilLdoCbNh(K-;Y#QYFsMIp9VXj4WFc(| z@p7KW`Ff=4b4fNDftRW&( zO6-{|QrO1RK~Lj(cT&Pc`Lo>pkyckF(o&7Is83q_Ol>7bXz^o3k%ryHD`*JWBeuBaoWsxuj1`{rIu+u9gBy%&$vfxw)M!o#y}HwHX5;g=6+nP z>FG$J(V7>&pcq6i2XEWdiVl&$at9yImHhpl#Ov`)KC6Z#zwHS55C(GOXC*bG#=O}P zMlBeF6?9oc1#T#G$zcu8Vzg`M;5~?n!Sl$p^T3!9O?vqV@n0i^>eEWcjFhUj>OPKS zp*fm6PsGby%sEVE*JZ1$S$O(>3uW{jPjx=tY)zkHUpv(k>5^2{ClJ;4 zT_n*;{%lYBl%GKSYS7$3?JGTvto5g5;zgcx-T?0#6L|Z>@G_l>wo>-}5($vKJ!6US zrtHe%wN~IsZD-A;=S99!14t(Ap>|wZ_7e?zsYgm3%5Q^0XQ8IVNNg1uzp)(s4Ob7% z_YF&GiDaKzs8fXol13B?(QX` zr6*Cs$9zOSovZgAiQ7fTx$R)8#En)a54l$Gti;6ak(6zG;-;>cxYv?cZ%e#Eoo;)W zn7Omlk5Q}H6;8Tg{1NFFhFK*~f9onj_XLWXX@MlXoD-Zd@NUw|!yCo>4x#A}c7uMt zpk@XN+LZ=BPb|^s6p1?(A@+%7j_RXcmXvwgyWGUtiJw}*!>r(RKHtB=zWYY45N;I# zbHjW}S-OLiUk;zo!Y-&S{f-c8C1ut=_6W5nj@H`jI{g{JI_%W7oA*_P3^z1wqZ|ANVe7&JTQ-weJVM%c}LGwae15%Mzkju1b=I zT~=KcMhL?G*z=>>hMx+a`dRFc9lwbEaf2ITe_Z7^zQM}-jqgH!|BY|35^wU&$n2YZ z7ZiMp?_L(&5*w_~Z}AOQ^li>vahq>^s{YQews9zQ-%*`(0G9D5-@FFhv-U4^EL#vk zs%5ZE_jrzxfAOp){>Aq_74P$X&+qs7zURHa?RePtSnJx~j1oBB(MYN8^4G1Yx- zHjC9og`U`~@ROx9n=_a=0YNx4vN>akL&r$j7N?@e1jh(uSjW4R5u2CY)+)#wS%|DX z@Azsk>n&@Uj-Os;@5owzc{9@;TGeQEkf^>Y2Qg{NvO}(CF;e=lmmG*bflYR3jpdo_ zAg&x&`m$dfTD)AJITfv(EVIgrR$g|q7ZotuvyqC{83)E#*LE$ZCm_LovQG#)I*s2| zit&qo@)lX%^Rmb?bqs5vB3dXLL{OQ{QMHtu{G3E3FRdC5fqQsq8IG;bvn5_y8h%~xu$T6N+>eELYhC3O zHr!i#!Lhz2JLs+TkejkNr`FZ6tOc9s)T%pnw_xu%wOGejE!Y{SRv*7a>F?6o$`e@+ zm)736gr8}pkF__DDrT@xTv{@Y6mGe+dXA+{nOlceW7rT~OGy2;Ki%A~5sMo_a<>L} ztZ}@*EKOgBr~Mz_jp504c^lrj9ceItCrSaksB3fNRfPk5v^BE-X~dB`$$oPo8Q6`5 z`k}bpSVKQ83N59ppT_UZjPuiy;=acm9WOtU13SZF1|2fVMY1uJ`kR6N_K}~KDu2&z zAtvvPGKP@Sz;J(!jyz`iLuNJmz+a;ykBk81g>fYSnV{cI3ed#4)S4iT&ZG;^25Hmj zV53X0#?OX(g=usgzcUPJonvLgH9C&(60Xs4{JwCM=^Sesq0w>tClRP%==3N;qXXkM zk(_%xQlmrqm!mioMRDeYXb$%UjEdo5zOhKV4r>z2(_RH;>v1tbbq8Q7wMUx(b4_=1Zv0U3Zu&7r-KlhR)NcIt)PkXYC7O}gpL+y zWUyuxd2;VppU?JtBC!hf+`cL@pqqkONxFvK5z|A^+AAaT3N56spzIrm&0e*UIG%A0+ z98wO@`(h~)sMkR{L3$KcUQzn`no+V8t*=0EynY+1l+|gKnV`P}(Q^7sBwAiyi3v7I zKMI*j`gU-V^`bx)kfFr{SATRKFy55U5$k4()2E=OW^AWL@eg_)V*0FypudL18|uxVQ>I=Gai7x7_tJNR&eqd|J+jnW?}ifh(HDaCvL1-+`|1Nh_tPJtcKYkr zgJfxdJ`463sMo~*LAnN+!TNrbY>2)bbdLTv5*@0m$ZVMYKCC!g{{;U>=)b~dujscR zIa0ra)JEx%DC%f^GGdLxsCo*sqd=Ifo&LKo<7!t4w6c1UiKz770*eLu{;SdT#o zmgrXzx>WB6$z}SNDED&x0n}pp5M;bUe*u!O>myLdEA?m;<_*0cT1J8X6Bgue>h%$8 zmA)TVS*<4`wKX1nJK!z7FEo8y--h6K^lngStv(W^U#F)*biFBGlxds34*$37^PtcUeHH${rw2pDoq7fQ-=)t%k#_3^ z`2W7%Jrfy!p#O#p3iV?A-=i18bbIyB@qeGb8oGa|H-YK)>ldNcM|vX4^szn)kq_v9 zK<1#{0>(U~pF-SE^l((ur+ON!a#&LOvduNML4Hms?D}1K0i%Rp4l7$rOZ3Y@MAtoK zF|nGmj@T#!h=&` z5D5GeI@WS|%Yg@QWo&>MTu#|Fp36^wwl0?(G66xVafI^FgM%qo zMcFDa=A(Iav}k{laV5zLogxHYWAE2N!q>eZJ+DO#4%8m-BdDZ)A% zy(wNJIjRN1#v3M@yQ{ez+!j}P#>fCNW=lD^11@J9w}RNZx>{1eMN;YoIXVa2jmBwq zv94CrJ+eHQ9pq?=c?QS&xauTIeZiPW_U|mNE*d*ngL+z}7RM;LIS~ z7z?S5^%Ph4j68H2SGKHE(hn*PL(6pamhp!cBv<;1ZLg;dlD}q=^|fk&PUx?Es3h!# zC~hj&VcqL%331(#m9on#;Wy6BYbaKG0exT=OR7krBNRU$898G6E}I$h9?w#wmhT)ycJ zh|`wYU6&F#=@ZZs`OtRV(K?NXvKN-67oe5t)hPZWs{5rD*(W0NQnU+dGUX?c@`CXGd5rBocU9q@5Yhpu$U25w3cm21Axe>#7}9G<16 z#%Y8dtAjw&e0HeYSYrtS!^Dv)ep%+>cPb19d zIXex}0>XUS3q?12L_;(dasAJI*vv}R+3s>du< zQ~Th4M|Gbl(!r6Ro%X5~-oXw>?bq?~quR%55}0029feA%O?~i=&YN)eks{4|rA^?u zns$lq=;a4ckq}uF;ErCM3V`k)TJRq_Z^2N`y@srI&%W+1%J_BGM3oWj(sQWVWBN0F=9vCWpE)5?eB9(t>vj(nS$<^;*iG(hktgpm-Cq%fonslu zJ?sqX_`0sqz@_ASc$;fWU2%(0?Bp;Jfe&SfBo`>P?GCapJ;*M!8}D}#6&yKiZs^s2%JH*!S_S)ex&Hn^HAn#e-C$S?{Y!zzh<=N05v5Yyp~DXk_mAgkp6EiB?x6^pf0n==iv^u8rr4)xbnE-V*6!i|`SzyY8|_Jn&QA zrWR9E=stY_)0;u}nzrsZ0^-wROMgwkGAC(WIg+U~7{2q$XEsQKJe? zy7m>Cu!QEAvejqDIrZ6bPP0?CTbA>gtbJ?&yJh)4&N@x)Cvtn;t{px>1?bk)D#p3a z*rzBrU3?a(|FVdHr7-`<1)tTo?R3-i%%FVJ^~|7r%VjNOc33rb$5lEgM`7oI+ccH{ z42eFEdkGJ1jy)wma+R)Zq?A9=C6o(7wbp%vYB-CxRI7tiv?`y|4af_wJp z5Q!7xX6tH0dyl8eeg1?JK~(YsLW%p? ztZPdxYRCasc^bQ@l(%V>dcc(`;x`dJ=zv`x7} z>~NL+rJ=|$2YV?5C)*kR`Wwu?!&O6EXI9}8=nhw_Tac%zr3xS8ceuKVS%CKo z*zCPhjYN@mmTEvN)c5Vs?pUFGBn8t##T)C4%5PEQneXzt(2LD&rA39!cU7k8hHhzB zUX6XU(%9uSu{-+^VV=gKnUa<0xn%@3`7)DaGu_cNi8OZw(twY+X@7SYwR=f`!%=u{N)T&`9=a=Hj6BI-)Z%~6&^QlWq;dImU`UfNutOZK>KByxTUK7shxi6^o!ze z<&dN^tX*p@*z>8=+EHQ3TFuTH9^Lcu#r^`JALjtDHUYA#l zpGr9@7*ugw_s?xbws_LETG?SM$Up8*q}gdFU#B?oJuQT)Upa$GRa7PJ&m}}aq`>Ld zxV^C8HzF!5xUZ3I!2+k-YFJfxiUrP$jl9ccSK$vW6*!wj;*J)r!mGy6O0JvJPkKS5 z*BEOx`p5;xJ=k}ND(U957DiYcR=bW;b#p#9$F33w&5PMi*KvrGAyP+;M5Xny8F*}@ zZ@*EJ^0LjqdW=`eT-y?u)p?c77gYjNr4J-+*!4DAaHqabf9jq}KJIbzVXv<4sAmr6H^Of|j7CQgb}w?Kdiu^>_gT$PsVe29*2@xz+lkR~_-L->D+$cqZ3P zhg`}rZ)+CA+V(wKAD{R3Kf*VOYdl=*@MffSo~`vQ8bm=Utr)M5A#^ER6?mdGp1@I}O-xSz1*0x4f;hF&yi&-6wE#?C>>U+597V~#C?z1@#>Me$w{rIRi;M=kJ2rbc@Qb>wx0Eg^s2 zYm9f)1B{30!fE%dST90y^JUN?Hnp8rP7kMQ>**~Y zuFbZ!gLOa(>tI^0Pp4#HyvED9!&7AvjX_`tZLrFuvs$H>H$SVzBNyV?4XUee65yH#SGWMWQokhlAP{v56N+6jN*J8SCA+l|2 zXPYguZD(gYP^#LV>amQs{C2v?kiWSInaTyzTG|;R`00{@@mg1_sMSXHL#2a5^1P0D zQRD4Av(i@76iH`4VfY4i+iOh|dPxY1{tfl{PrT&#WES56_5~?&#bn3r3x=@oB2Sfz zmhhXcC{yfYd8VIwS@z9z51^sws286NVeiz@c+~QkeVOHMPIkWUWsNwfpXF4$_r1c! zNWR09-mh_*P`j$7b~|L{exGKiM_zu^ca{9z7+)?vBQ~K_%;{~3;n*OpOI49tS*uIB z=h8rJu(*y|gmzSuqy1Rjjwm%qQR>;bqSRoBQs?DX;SZ&PL6fDD|6qzJ^)Zc?8jU!Y zkCVgOQkNWIkCV&%M9vqjoM%3da`2Juq{a`w=mFBSFNIXBbk{1b=uoG%P|<|f=BEAX z$NuQ3g$(*q3!*bGEGcp!n~?{)5NW249y$Vh06Wbco?1H)Vl9v~YmJwQ>1L}T6vD8{ zKbJ|NFgirJuLTMFZ_LHO9n6Nkq(yWp)*@E%@?v)LrR7?Q7A9u5Rk?1yFE+JUy7hrh zE~QW7E-!e2ua$TkG%$BDb+$5IR^nTbcvu9xgv2r2M308KXyqoQH;)jC*#~@YP+b17 zXH~D*iCk{L$39;1Py(OiVS8N`ave$*Ry{yy4Oey0kj8VG{66DXsW_rcW zgs6w6Lt&yWrLyU@B847Uzwu83MdLNr*o)gy$-kN_)e3}^80A`d#aW{q%sVzl#6IsO zVoycvRC?Ao+g9&Ju6qkvq_0<;)c`P{*Q4|QenJVfE!e1aITqAe3$H%WD`Flm))_D( z%Zt>%5Q$4)Q0l$Wx$?Xs7jvm&kovhi>w&04XL?1i;B|+gUp@^x&+@YBZZ)L7sQ7d_ z-H7kz>)K^r5n^3SU8gWnh}pa6R9b@XYR(z>8S zfqZ%x0i$#n;T;ML(V^^NWR~5bHhMDdpqybZKrg;np7*$QOBwN~(M$yKx_?9Cbx%V( zmn^U(J#=3nBMYJnC>37$>os2ad`-@Uw?9rc?VL-L_A|@CqT=6uq64K#zCvV+Ey8WK zSK~GltMW|RH%->$MV&PvTWHD31=X->7ZVA>$uzX5;{z zE|_=HKGxWpu3AW}N7II(f@z13al9Xm;~&z{{JbXbk=U1AwWy{btr5){$HA~hG>|G;3#rtqz~-yK08j3&hyfU9)y& z1)j98Wnl)(agg7+>7n7#8Y&+S+-fNzoIA_HRH@@IsSUOVnm0V|U~F<7$`E$6n^x|n zRkUwS)#REc;^Q+_04B|=SX~I?BKRre;@UE9m4E1IPF#ythhqg^#u_ZMyB1p8E+aQY z9Z^OyZ}3TEbO*^-Yz87w@}{h+8Z?guX!7PFnJwt9MS4I#-Q2+_ZSH(I1BS3R_D(z# zFod-+Y;jG3AGd!#p-`^yKD0ICE3I(bxY#Ul>ql_w)2bws8%rr`*ALEOeM*FdeuwJx zp|w|e+x&D8TeS=|*oUfo@u84BU24(}?QN4HSd`6Pae*Pqh7}iIVn4+8=Ot^vsj`&T zU=X1M_-d3F?vYx$2K$imELNXbgOMGoUZbVMT~)sJkI(_TX8w^2J}gxQ!B5pLu6gZx z@-xNG91ME|6Gr{h&NoY{+JV~dm#X~21Chhx(!wso+#}i#f}bud7^Q{f!w48Ohfw`tOmo>K$F#ydOx_5+z+>8XX)zO3^74viyenU)EXEEA*- zPlsQ^V*#n^5?aQ*r^=h}$ts^gzNnDFr(pDRcr?uYsjMn>Xtzo(% zsbmexJm_T4rnU1G`c$tfk7Id?{q-IEAcS5Q2LsqCOEU z6t$PLUv$chyGytc*j5+T)_GLCkK}$2SQ);5xOI-IX8kL%=)}V)e zS%r3u&1?o1xqQ>nvecUCe_Hz5W&8Xkn$75G^}1>}FJC^ER0Ge6Qhj6@K)M4lv4w1} zmTvx~wB++b&R!abjawJCthbir`I=0mt8%52Lg;nPHqpjX6CwENx&))NE|=4w35Hnl zV?DupvrlPV);fp;#fB|Fji5yNOz7nthsvnxNvC#t4i6W9F7mfdx-ew-?QB;Of}hSG zjMDtM8wMCNt>H!Fe_pXhlPvd(H1AzjT(mVnTXJ8F!1YaqpTsy)^BcRrqm{`m#cFIV z-1X?(^iL&{o;P&lx8{v+G?Z~EXPUBK`)ILxciNO}Qsk}2SkTL8>>x?O(g_>aq#uS{ zagK)TM`fr5*>lQPTfNTiD4eM(+ZAiD%a*F9(T?;TMc#c>SOoUvAGx4T7uzBT78&xL zCT=W%A#%*BQr(JA($EOg|J-m`I)GM|ofWyxK9TH1KRek1ESN=KK(H|M1#6Q7hA{M* z+$wi}f}&uMxRQU&S^;!HNjxdU!RmDqZ3DU~{8=A<)EPkicz`IJl8;qGEjp7KX){)M z_`Up5ib41CX)Z|raKBJ5PR#p~FLFyI_lALrHjh^^ErA;y5K?Kp43Q`viDB{@t5|CX zI$|1mfF0_KXD`PqnuKOe9au`+{;7z%(#n7*KEqCYktgj_OQ4P|&<7{^vlZ*GX(J{@ zn6z93@~ltIpot<^+$)mAu|5CD1?9TgCPlF4skQ-z-8TOC8A{=rq#w79rgq!NN*&vK zBu?;^0Gc}KcxWjNvMnCB6))%AFz9iDri>d7Ic&X9ATZe0BLqiC)!2^yT5`0=1UIaC zB9Inq3moblVSn}4${KZORQkig`-zf24@c-MX#gHcZ^~K@(8{JXr}p#EVXf`3{;#@& z&NQ|;Q-nkCD z_excpk&)p_QM5?JZCx7o+a4@?AbeQG($ry{>D;p#W^0iK&;E8O+cyx8u;)-220N_N z1*}gSu`+|SLd28${pA^4~K= z%!{R34ajD-25U9sBW(C!t+G8Sq@S881doW4OTBwxROEZd8?v<-&63hr%o0*PEveZg z#mjd~Nb%bc>Dp`|_N67Zoy7P~{hn+M{BYq)|9LjgVP$f(h>&U1gus0Pm=TWlX3yuq4I+iTlB1Qa z%_o|T;xS7U#Qgyc?3?7!Z%`1Il5bDP*Jya(BA(PFuSEBDb|Od12)xO~*4XO_g#`@N z$~U6Od?oLYypMwB%X<>#%n-@@BIv3rRsURBzK|>PLRcP0(D7^^HfE?+!?T|z5lDyw zDV(2jZRZJXsZpl)r2`s#X7T@cGjSgnkgt}P$l65S<1xwqW=Ykuq~0T`H@`=}S}q=~ zrz%XVW9@Y8<7zic9;QVFFSFEZY(>Vv#5xVrGDGf65qYmG4S4Nkwt1LVCBrg@IGOGu zo^*8N=inHS4uYD?el4x28%m>=VZOt)a>gJl0Gjj9&6nA8!?j>}5$iZyYY=i}lE`wf z0GMiTU$$YmmQc~OLXxeBGy9_b(LS%TY|w#{BY%LDR*C&ST&oitV#%JcWaWY=R&Rt> zqiJ$Ks`P=D`l8y1$E(d>@{R&svm=$kOZKIq@8krbNQ+W^^82yE5n5HbF8j|2ExPNA zmcXRatUg5=b$AVxB#R+=pj3AqEuc;Wk)nT&6KVA-L+5ko_;<&fSOE@E_s2z}&&7X8_quV`gLGOZB12g?PM`{O5bwD{_V6@s~!e{d%X znN^|XkYkJ^gO)>di=x3|4D0fsU@G#R!K}haEiLM645{RbqveVzt_+R`=yTxD!r>#e z>5dFP+`AEvB5RFg|Fe+t$p=gFsfYivPdof~NCtW5XzUrVboZyG52EYHC}krEE%uyms_2lAiQbLP3GP-NmID137f*b zQ9^Qs<4l`e?l`kLmvdu01ck4A;NAqhmnS?}^l3bF)-=l#gl-d;9xD!8p;} zL{($RM1Aq!A<-|*;Gu8jXRJ{CKV&`TY1LwO!1%5p=Pnp636BKRm7#3c zG3Xlc!h=_W=M3n8gj^B)A`t72E?_EmDb+}&A4S>*I@1*$cnuc;YbhYc=Pjz%fFBZZ z5f?zJr3DmINPH+s)j~4#!wt$dR%N~xt{+BraW#3L{nAhjA;|sLbuF1q&?w2x$m075jFI#7hNP4XRWIjTY_i1DW^u*-V zb6DSn&~?jPHhZBK?{|kR@oMld2tG86y}uBRw99PvaG{3ZP@2u67HQ4>;;8i5!DPSm zSJ|*d@Fl$UD%-ILsf12vXX$$C3>KD;DDTc-HS)FR{H~Ku!Twa?vvS$=eC>sV9bylg zJ_353DFYvPdQeG@i~0{1>gcqUJ9^k(`RG5@rn2zGaL5}lmDO0R)$*%MN%`^;H_v60 z7Hh5j&Js)GEWF3?>|(7;+>!**y~{5a#ZJd~N}r+<_`&uhPrGC`W{K9tbD#o7p!~>Y z2vZi60lhe~A<>)Ba+D>4{vrwVQXw-JC#%ZxC@#|wnJ6rp$9)ASz{-lqRTOt&InZmO zh}N9S*L1Z#mWMQ=*t=sm-8&96YqJywW9yJmpsG7xK{dKI?1TS=uP?ui>)MU1)xc0U z0-TbwT{7Hcv=k@ZHg*L;LoLnkJ>&vE0HmN*_d5sL>3SC_YxM(e;UdtLMIjCRui+xX zRYDh;ezaSTalJ@l&-s0h+jUaBE2|=|8oNMChcqC3Cn>^e+wdhm;ZuCHKlZE!dhVZ5YM z!P*t}U8aRQg42+i7;)ua{KsK2X)I$4m^QG=pNJAD>vEu~;lR6kdDOO#?3zyvD2$%j zkbPwz%xbVu_@5P6xfNO>oK>G+q1E&}9>iq~;&Tz*;Dflq2XR9T;^8DEHctUx_FjG8EzYK#ZRX`Drg1Eg?@A-^CiD=2#7$Ax%N&hRg$_+_EL zWGsdiWTPFz9a1=nVX>}!gYasnHa0Mw`|uayJu zQsBMo=y>a7S0?X~;S?yZmz8srOsP+4GjB?Ua)3{1J6h?7VM?pBlKYenUipMiX=&in zm3+Qa-rzo^)!xwB*L{dmMaZ8y0^i0gA9j?qKk9G|;x)OJ@;xT5oMEq{1{ezIXV1 zS7|Mu64$R4)9978d>XB~j&rwhD0Hva_&ej4Zs6RYjohuYV5279!|97zv?|8Fz_1MF z^Da+y;=6nn{r+7(i_Y4_XVI+9d=@pfShJ`vW>G6%;pQ#yK!zXaqixzwyr+z9dk;!y zuzowS^k2He$ar(szQ@iM~HopX8YCQGm43@bIa?{x8UD`B@oVahp32R-&44T$s~Tmfx{dyg92d(`0GqXzdLHMsYv!M#Tf?mcR7?@@z$j~d*2 z)ZpHu2KOE{xc8{Ry+;l1J!)|8QA2o-8r*x-;NGLguh^9&7~Ff*;NGJK_Z~I4_o%_W zM-6z7-rTLlc)0hd!M#Tf?mcSs!sex#aSDsX4C4y^S2ys6QK^Q(-AN7ZPHJ#>QiHpb z8r+@K;O?XbcPBNtJE_6lNe%8!YH)W_gS(R&+?~|m?xe1IgZq;j+@I9o{-g%? zCpEY~slok8jZ+wTS{vM*)Zp%<26rblxI3xA-AN7ZPHJ#>QlkpH_P!SD;eMkA_Zv01 z->AX;Mh)&aYH+_%VCIeZ`9y^ zqXzdIHMrlX!Tm-J?l)?1zfptyM&}ybZPegyqef@c{Q~1n4Q`_bcN;ah+o-|aMh)&Z zYH+tvgS(9y+-=n0Zlea=Mm^FBgZqsd+;7z2exnBW8#TD!sKNb44emE;aKBN5yNw!s zQQvPH+-=n0ZleZw8#TDwsKMPv4emB-aJNx|yNw#$ZPegyqXxN+;$<$}Z`9y^qXzdI zHMrlX!Tm-J?l)?1zfptxjT+o-)c6f0E;Neqe~-c4Mh)&ZYH+tvgS(9y+-=n0ZleZw z8#TDwsKMPv4emA?U~s=tqttJ7_8zS-_ZtoPU7`Eo&K&m79?Neu;GXh5vHGzpd$mY; zKWn~MYY{^pp|~%n1XRQX!979);1No{U>>%CZQiRzm!o}t0GvOGN6w!LFq|X<;QZ;K zXdT&q_FB%L0dW320bb-|=g$B*e`Y3Ptm4j}26z56xbvqWoIk@!HUQ3_A&?3UU_{rKyUv3N|=g$B*e?Et>@nPir835X`?X4La`Oy;nP{HBc?Q7EldkTC<*}%bv>5p-R`VlmP(vzO zKtEYoh;jx!-UJ4E`@fH@4ZaC9_$JVJViOqXqbx$O^Fwy!BWn{F804&pb&RzM{J+|| z61b?UF8zmnL!Z6jRD17!CiABO(V0!(xhDKYqMw>wKPjB3H9oyDVj@a zD*CBorUr-hFJ@c0S1B1cfbZ1 z90Z0&hIeZMm=gzqp;77w4g#$JszG3AEo%*AP=mnG+M(0ohZ6^Zp>?Y5$9{?v2Z5pW zYM^O8Ck_Hby)}^w2Z0Zu8WatUwhn=RH}4Fk!V(#A9lED}SnOB{sfXZh1zi>Dfms^3 z%78Jf7IXo%u>WB7;*et@h=>X+B~0P4!d}2$xn@N%%Zt{*Adt`qQd6c| zUJi|iWgn-%5t1gOq$}oRKhCu)NwBf3$IypD?tQR2TxI3dQRWSmvRvm@u*%|hhkKydI@h2tCq}&07=|T#Af3Iz zFe@5nnPi;{|Mo3IJpo-{Z@KR;-~|ZA)(Dui24fSeBYQx1Aqz}*zLr=EQxeecABaxN z&U-CsGFtYf9;LKrm%NsA9sA`4dUyiJ!{*%AlNw+T+ft<8hpx0{?|)5eF%?EnmS^

xFCrdYfhl=LZ`4gK0Nr>qsRScmrH6F3qufk?%a?y7BcD~KYMK`~lkid; z%Xs~M(munlC0G7TY^|9sNyq^OA}V$@7Kv277IKdIo_KzMjK!cYI0DKNSIFrFB3dt! zYYIeS=gF8k!}YLD;7_%Ato6%?l!SEqmZYO=7}D1gAOlqjN_<8F+Dw+7LKwS0{H;tW zgd1P7zLg{4+3HEmn9^{puQ+$BC2u@U>fpVoLi26t!}40HWU6_Mr>egPs;8hbUFB9IHaoyEt;%;SkN?y#aGN zxHgBckPazex&Dd6KC@UlzY;w?b)bFHH#+Lz;7e_xXaZG9|F6S63;=hreD*8R-Bp0t zY=@WxJ`Eg{g@6SQ!wBAX*tG-Fy<4PvPT_!gh9lyVQk1H7x(0Pcf6ftwnv3_zX}d)a z{asnSTht47BPr8ipSDl_zFWivpNIOQ4|CY-eJvaAfz_pTsC$^B9abt>noi#GwS0Du zh<0s<;-MkR{7M{civ?|EqYzf@f>>d7;ZYUn<&~v|HlYIR!fv1B6&QBaIlB2&CJt&g1 zMkJXK$qvxwQQ9sCDQ%YQA)0R%%I*nL&ew|M9grQM4BU5*EShj2NX>shZnwg79(svE z&qz{AkKCiw4aHl}A%mtB$n1ThmtQHJb62Q4PEN=m_2CjrcJHLk7|A>%lC+cw==oJa z`cyuIM6oV36r@wEi;Y+xAiop^=|^^wUy{DXQv6vEodOTb?yLD?uy{_P#FpjDXZAxb z-O7hsnni=y+BiQlfoM_rq#~coyS^Z#9pv*OS-xK+SeE3=Y6l=+&tXQS1=$bnkS!00 zPfs z8j8|LQCCs~TO-I--GW?mz$jd8@Rg&ll7oV9O6sZYvh_jHQ{OE82O+~(Vr6I-q-LwI zrutT3I-5~C-P`5%gQ9^)`QCSr!d6(6qloF@ZBj25-NO`9ZG$NzdG$7#UMxJWR7~bC zc2$DzY?V`rMLO~RYG(^GlJ|Tee=HVtyDY?lVGnYXi(s9)gBMHvA-jF`R`Sh*RW9$` z5nTQ)3AFw@+m$7&54!FL*~u$+t^{*Ix}YsL*b|^*QOD zQN>kSrMu8x-_Wfl_6qH-aeW5%7$#x|9mG2u#&-A`Q<`VD4`+SztMs+*WZ0T#_maN! zM88syXKzXh9!gTF-(u%$2}UNpfm!i|o$FPm)?pN8)+)Qb4oA?nDuU5f5v(#I0RDbx z&?k0#-WE#W*ed=2@TZdZKB*EO*fpN!ojXpR$iq5+@SQ^~-Qn(rv)&k%diOVE-O zY?NmYi6MHFY8M7RQx*aU(^#26!l9)|hz)tlt}!|)mp-YoME zi&)D`o8?7(p5830AAx6DKqei5sr#(~Ipl~)c8$SE<0;ZL8{|B|@bbr!BVwdC6N^WJ z-HGo8YxYq%O*9K_b`bZ^dGev7#6A6}7}dZBoi5!%w7Gd?-cYg*IxfjwAd_y_lQoZt zj;{Wgxi^JM>85ouVOs`v`k zD^%~^*4W~1A*PwD_{9Sfzr#pi3{v$Re3=QuvZaO^{Q^D$BTZ%Q5$ z4gaR(F_B!QWGZIUL!t&Q0hBMJBqUcE)~UBjLX%U%=O2Zf{VB12=DfS|j0cGlRqXwZ z*wd4SVF?-_)I2tBhxT1W9lc0LH0yZ0Dz@WQI(k*VwN&cgh?;(7Nf%L{{J@rUy+_E8YCDinCNBZrwPgGQMrt~UdaNT6=S4uI(ccW| zcvokOMVKKiMfFKmXt=_c%6Z@5G9ya06wO&Gu@AbSrRa_eAdroT!{oQ$z)Rp5!mzs< zGqdR@ln<3vo_VE@VNa~^kUhP~o>&o2nz-#fCCXKF|nc#W;X7)OT2*w#)`*K z9WJo8dVbUkn%+QEdr7|WtqAg0Mw5aJ;8Gpyt*vPb*a>Z%kNgjeH8=yVd`Z{h4A>-V{`C}EezMja9d2Lw=q?vBzhy4 z9G6oS$z~;rwZ7EW%&@mHWJXNA`_6syt{($I6E?0eSG zFvS*48q!I_R9lVrl!ny18YF6X8T~YdG%Wa7?g9;MD$#~9HV@A0;W$ItFxFNBPq#R& zK0`x$Ox3eCCz=obNID_C=U_bTld0!G@gAh6lVab;a{M_s2ci_G+oDNv8YzCnQ0)Di z;$e3c`_Rwu-M)C`6WDar2VX6XY&s5SissA8bE1LXM~0k-MZFhg$Md3>t36h?XqyZB zF{|dwobxcstHhkCWwSprU+%=;r%`RF&3@{?^7?s^oNx~FJJi;bDn?q;t5~MowyMsT z?@>$=toC5E%jU_4FQ{nWxBz>TUX<%Dz-)(K9=aer9g}zy>kC}qlIr2x_a|%goq@_# zI2y)zD!T($k2}r5Rv zZk8+rn&&Sxpr18?Ge`6NiMi98n1;`i5tl_bS2|Xx?u2<}$)_$uL=%zkS&P82^z0n@ z>1EL!rU8DqESiQaL(-7y*oe2!kqxhit|4>K%z^M4fqg?ca>5mn5+cxT{S{RCk=%Jj z#Dv(<_y-iU_9J;6p@mqFdMIf6M>6KBh>7_g)prc(2%U&Qyye5#EvPSe8agX&o|jKw z6?H?hu$$9X$-);dbFPX(IYGbIgZG3sQg*IskC5ZW+KR9Jp`CQxs?z1S^F_Sx++t<)YPzdvXnYK?Hb zBo}{gj}PP)+Y79szP-%RK@Kgm*S#;s@sV&&7Q#}$rl{`76#5#`#E}{Jy3BsEokhGE zSP>pHrJ5!7qj#Enf&$Gwj`0lxt9v+ndf>aBjttNJvqw-)pBhEaPoJXa%BS$-p!aX% zfl&0v1m9jv&p#I{a%YCuE;L|z>Pr;afJ0eIUqWOHktZ#spW9c^)4PM7F*}rW3FlB zz9R7YW{2ITj|#lC)zRLjKO(=};qd6)1E+U5&RYFDU=7q}g##PH@g}^fg|h+{S4420 z6aH3v2Y2*Ux5CncxT#NrRTFVb?_`C?ZGDR!9(VLilsRJ=01G7ItmQatgB9m2KiJ@L z9&TcW$H(Ch!UC9B7#_f1i^7+qcy4$q>R%i_VL&82mxOy!%_rf5U`#ERhEIT%Ah9g` zC<-nQ4HU+B|1|LWNH#}TR z|5rRh%lKEkrUqYLA8t~Q4!TdvU-WMgKm(ckZ+Mhe@vnF-tzu>1Y_Y?y*IG$(;3gF? zRvqptN?#ze4mlFw1Ba{du~?SlW2Fo}jE_LO!;VE3_)cp1QO5*$3_RwTkQhpu>awO? z(00R88m^)#1U6@?kP1H$_qye+V~&L0%Zc2G$-5OfO4Inmj0Rr8c&Z6E)TM?6o=u_Q(tsZw)Pj@9M9{ z{6_MgV;r`Cs_+!(v1lRMm&A54!H13(g=>M?|8@gtgXT1NqF=nd@QP^h# zfzz*1YM)`RHDtWEJcIU{_oH`ZeG_>D`5Ap!V1RAFbs0?V@=ZqW22#i8p!g|ctcbsDU?_oKH^swMp!dR3@0u|31XH`RL3T#^Kzl z^5|0b)KtdJM{5@|{`W(@V>GQ02 zzxl$a=}dSbl_D6-d1f^0#&uUNRy2?K%@>3jZzFzCFfu#EZnIyJv$+^6N!sFX~xYr<^2pedNh@<2Ip#`*`Tx{Zd@5oIOM+@2$+}sGAP9>*-{VVzcD_O z@g|I$FO6)=xcLUl-i(_s-5iFvA0jp`3;mo^_ACpSuQPp%@wZ2lq0muOVJ_p@nS}Fw zE7}^y@fvFk#x2(QjIVjdLgk;!l6H&<7sryoMULPyLsZ>JUF#`VJFTb7{$fdaJ`8Y%iZ!z^*cecUe)=Tcqei#uqT&oDW{`!i=__@w43e zb|p317mPRXzfX#$v!Y@qQo<8B`tgkCGv1VAo6LC1N#ftfMOYH<*RGZmVGt`?4Fq(cvB?B} zsIbAnFOcSm%pc$gg84SlcFez*ar1tgZy2XtJTaPPY~#7c1lUxhRNv$j*Olu_9FevD z1TuV`M{7EbQ^xUYitI0h_7}6I;y02u-f-1byBzk9aaCQwbxn<*3`Oc0$Nc8;SzCqw zbDY;#>4}7DllynOYQqS@qCtb;{hNO62@nVaL-TZUlwg02WxRwFz@q`}b;d_MK#Ut$ z-G_{Sp{BmtYg!%?mNUWl6rG3he8esP^w4fuPzeR`1d!b@tVvx)>F}~xC95-k8u}N; zo9rXT0_G2f9zUkfyz&*r_+jq(!*r7haSGSu!%pA%^xC}srH2L5qN2Fy` z4f)|gM@{IIGN1VqsP$lc>xD#^2eTgnzgxRIik`?$U&MOM6ZRVoJe3%)GXGZ!_lIZ` z_L5;6nNYz3cX;*xQO3V#{Ll_cP*2AHVEjv*c7U*n3r{Gt4(L4}^Dm}oG_Qew40@oj zX=9n-W5QUN)WGloN6?LN^CpHz7&m{}`B}#Ad`5OnEW zM6(LZ8K0d)ir!;Q3=8!W&FTXME+qU(5JQxrD#P_!h=3^9X;J@t0NG=F-g5 zbYCfcX3}yVumtxjXBFG90}sKNh`7S|*jQrkOAqZ15nsCbuvjAcvXd8tOM?spcG2MPFy@nCob zqdzK^P}}Apv$gxA`$wpF@j%Apo4>@`UUo)u4M!i^fcYcz&R<-Uc=)Wv$n2lMJFS`Ay*r5+Wv!BQHWT*7_ohnPH_ar5VG7br3RIwrT_m)q}L&I$p?jLtO`@I%a>@E9?E z%F&!+d_1SE2jjmnUNoP4G?w*;!qqn53qLH75y41pJs@C-G(Pwm%8FW&fM))Pa%aZP zd)d+$Kh>5L1aZVqDV&vRvj5MHVE+{6?aigVKa&?SKAT&(JjOp`eAjBS{WRkN#usx> zXA4ug?(rwI4MZdy`wiRjv87RXE_t8WllyUqAbZe9j6e+YDuuw+?Q5+f`N zs!#`Td^ec8PVvm2rQY*k)qmML1DG(K+hU$-(w+bub0wAA2`@)5US?m1nmgGLDPtr6QNaHZi%rB(sg!iWx5(PWVf#?t+Z|1$vCXM5-PmT#5%>7)-W#|4%sM z!{(Cwa+Z&llR&_GL0>W->`sr zyXIBKf95TVUvRo_GG1_iENRLH1;cv*4K;6Ztj+jWYP8(&?hQlu{;`|jy76}rOZE^D@Yn!u!(TL zmcb*jQB2sy0_H7S#~Gi+jqxnzzr=V1cW~D;E}-n9udePR!0=&B#@~a*P}RxL;B0LQ z1ob90HL&ejAZ9J47?wR%=)rh>ZW4^DG?;OBG4bO#0>cQ#Be~SfL2xAe{~Qyh^KOC| zBtUqb@dY>#)r=)z))8t{{!l39cFbCP3}4)7Xw*bMQM3vi8aDko6I$LheH6z4DvLi zBD9@T6RkSy{$wVb&t0`++`M5j72a!@`dm)EQP6rae~nfY4J@;(Fo^Lj+!Kujc??ew zF6B)aDNleOs5I2n(|?a_T*Nva-bOjJl~ibJ8L#&>;YRQG3#AUSz~r;N%wNN_kM%h7 zmvELrv!KEi;%}^dvxp*?%Y-|u=o0Qufv}VDAUWw4be?O$wK3@OOyw`CV-Yzr(nBhhh%nfrFIR zp{#Tf<2(6`QVHX07{AEQY|a_JkMPEtc^7{<3lwv2mg}>2nVj|qlg-r}VBnfJZ8TW9DZ@l#K7_Z=snFY*W$oTu*Z~LP<5e~@cKOB+C zl}xVWMvQBfb_;MUTKT3T?}V8tnxTlne}TUSwjl$Jm!OaFncR-H;H0I<^$?+dAd|&m zvg0hVBf%hOm{5a&#A z8#|qhXQtE}I(<&wx0E(Rwrl8YZTw81A+zrJnK46d#h)KjL>2GLTlkZ=Fy((J+ckop zMqhiT%(~}i#Z0*sfAXAG**tlxku$|M4^-uJwuZ~JcxSvmPiDnCQ;gVOPmzW3&Q_M= zC*`epXQ$xDZB$gUqGgxHklwNeu*(9%!*Wt%XKPDBn%vsh*~wBoP~L)P%|-!-B1g4Q k4=n~BZrQJivxzhHGLfE>lbV1{dBLz=4q=S!3@2>=4~ru}IsgCw diff --git a/progs/poly_test.onyx b/progs/poly_test.onyx index 2da51158..78ba3807 100644 --- a/progs/poly_test.onyx +++ b/progs/poly_test.onyx @@ -49,16 +49,19 @@ compose :: proc (a: A, f: proc ($A) -> $B, g: proc (B) -> $C) -> C { SOA :: struct { a : [..] i32; b : [..] i64; + c : [..] V2; } soa_init :: proc (s: ^SOA) { array_init(^s.a); array_init(^s.b); + array_init(^s.c); } soa_deinit :: proc (s: ^SOA) { array_free(^s.a); array_free(^s.b); + array_free(^s.c); } get_range :: proc (arr: ^[..] $T) -> range { @@ -82,6 +85,15 @@ by :: proc (r: range, s: u32) -> range { return range.{ low = r.low, high = r.high, step = s }; } +V2 :: struct { x: i32; y: i32; } +print_v2 :: proc (v: V2) #add_overload print { + print("V2("); + print(v.x); + print(", "); + print(v.y); + print(")"); +} + main :: proc (args: [] cstring) { res := compose(5, proc (x: i32) -> i32 do return x * 3;, proc (x: i32) -> i32 do return x + 5;); @@ -108,12 +120,20 @@ main :: proc (args: [] cstring) { for i: 0 .. 100 { array_push(^s.a, (5 * i) % 21); array_push(^s.b, 3l * cast(i64) i); + array_push(^s.c, V2.{ i, i * i }); } r := ^s.a |> get_range() |> by(3); print(r); print_array(^s.a); + for vec: s.c { + print(vec); + print(" "); + } + print("\n"); + + array_sort(^s.a, cmp_dec); array_sort(^s.b, cmp_dec); diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 52467ffb..3fed3fcc 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -108,8 +108,21 @@ b32 check_for(AstFor* fornode) { // NOTE: Blindly copy the first range member's type which will // be the low value. - brendanfh 2020/09/04 fornode->var->type = builtin_range_type_type->Struct.memarr[0]->type; - fornode->loop_type = For_Loop_Range; + + } + else if (iter_type->kind == Type_Kind_Slice) { + can_iterate = 1; + + fornode->var->type = iter_type->Slice.ptr_to_data->Pointer.elem; + fornode->loop_type = For_Loop_Slice; + + } + else if (iter_type->kind == Type_Kind_DynArray) { + can_iterate = 1; + + fornode->var->type = iter_type->DynArray.ptr_to_data->Pointer.elem; + fornode->loop_type = For_Loop_DynArr; } if (!can_iterate) { diff --git a/src/onyxwasm.c b/src/onyxwasm.c index ac45c468..1b6237eb 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -763,12 +763,13 @@ EMIT_FUNC(for_range, AstFor* for_node, u64 iter_local) { WIL(WI_LOCAL_SET, step_local); WIL(WI_LOCAL_SET, high_local); - WIL(WI_LOCAL_SET, low_local); if (it_is_local) { - WIL(WI_LOCAL_GET, low_local); + WIL(WI_LOCAL_TEE, low_local); WIL(WI_LOCAL_SET, iter_local); + } else { + WIL(WI_LOCAL_SET, low_local); emit_local_location(mod, &code, var, &offset); WIL(WI_LOCAL_GET, low_local); emit_store_instruction(mod, &code, var->type, offset); @@ -833,6 +834,96 @@ EMIT_FUNC(for_range, AstFor* for_node, u64 iter_local) { *pcode = code; } +EMIT_FUNC(for_slice, AstFor* for_node, u64 iter_local) { + bh_arr(WasmInstruction) code = *pcode; + + // NOTE: This implementation is only for loops by value, not by pointer. + + // At this point the stack will look like: + // data + // count + // + // The locals we need to have: + // end_ptr + // start_ptr + // + + u64 end_ptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); + u64 ptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); + + AstLocal* var = for_node->var; + u64 elem_size = type_size_of(var->type); + b32 it_is_local = (b32) ((iter_local & LOCAL_IS_WASM) != 0); + u64 offset = 0; + + WIL(WI_LOCAL_SET, end_ptr_local); + WIL(WI_LOCAL_TEE, ptr_local); + WIL(WI_LOCAL_GET, end_ptr_local); + if (elem_size != 1) { + WID(WI_I32_CONST, elem_size); + WI(WI_I32_MUL); + } + WI(WI_I32_ADD); + WIL(WI_LOCAL_SET, end_ptr_local); + + WID(WI_BLOCK_START, 0x40); + WID(WI_LOOP_START, 0x40); + WID(WI_BLOCK_START, 0x40); + + bh_arr_push(mod->structured_jump_target, 1); + bh_arr_push(mod->structured_jump_target, 0); + bh_arr_push(mod->structured_jump_target, 2); + + WIL(WI_LOCAL_GET, ptr_local); + WIL(WI_LOCAL_GET, end_ptr_local); + WI(WI_I32_GE_S); + WID(WI_COND_JUMP, 0x02); + + // NOTE: Storing structs requires that the location to store it is, + // the top most thing on the stack. Everything requires it to be + // 'under' the other element being stored. -brendanfh 2020/09/04 + if (!it_is_local && var->type->kind != Type_Kind_Struct) { + emit_local_location(mod, &code, var, &offset); + } + + WIL(WI_LOCAL_GET, ptr_local); + emit_load_instruction(mod, &code, var->type, 0); + if (it_is_local) { + WIL(WI_LOCAL_SET, iter_local); + } else { + if (var->type->kind != Type_Kind_Struct) { + emit_store_instruction(mod, &code, var->type, offset); + } else { + emit_local_location(mod, &code, var, &offset); + emit_store_instruction(mod, &code, var->type, offset); + } + } + + emit_block(mod, &code, for_node->stmt, 0); + + bh_arr_pop(mod->structured_jump_target); + WI(WI_BLOCK_END); + + WIL(WI_LOCAL_GET, ptr_local); + WIL(WI_I32_CONST, elem_size); + WI(WI_I32_ADD); + WIL(WI_LOCAL_SET, ptr_local); + + bh_arr_pop(mod->structured_jump_target); + bh_arr_pop(mod->structured_jump_target); + + if (bh_arr_last(code).type != WI_JUMP) + WID(WI_JUMP, 0x00); + + WI(WI_LOOP_END); + WI(WI_BLOCK_END); + + local_raw_free(mod->local_alloc, WASM_TYPE_INT32); + local_raw_free(mod->local_alloc, WASM_TYPE_INT32); + + *pcode = code; +} + EMIT_FUNC(for, AstFor* for_node) { bh_arr(WasmInstruction) code = *pcode; @@ -844,6 +935,14 @@ EMIT_FUNC(for, AstFor* for_node) { if (for_node->loop_type == For_Loop_Range) { emit_for_range(mod, &code, for_node, iter_local); + } else if (for_node->loop_type == For_Loop_Slice) { + emit_for_slice(mod, &code, for_node, iter_local); + } else if (for_node->loop_type == For_Loop_DynArr) { + // NOTE: A dynamic array is just a slice with an extra capacity field on the end. + // Just dropping the capacity field will mean we can just use the slice implementation. + // - brendanfh 2020/09/04 + WI(WI_DROP); + emit_for_slice(mod, &code, for_node, iter_local); } else { onyx_report_error(for_node->token->pos, "Invalid for loop type. You should probably not be seeing this..."); } -- 2.25.1