From 977c431bf11df9e9c26e6786d0ed967757d0261f Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Wed, 6 May 2020 15:54:18 +0300 Subject: [PATCH] vm: implement ASSERT/ABORT opcodes Rename THROWIFNOT to ASSERT, add ABORT opcode. ABORT cannot be caught, but the implementation should be postponed until exception handling is implemented. --- pkg/core/helper_test.go | 2 +- pkg/rpc/client/nep5.go | 2 +- pkg/rpc/server/server_test.go | 6 +- pkg/rpc/server/testdata/test_contract.avm | Bin 855 -> 855 bytes pkg/rpc/server/testdata/testblocks.acc | Bin 113869 -> 113869 bytes pkg/vm/opcode/opcode.go | 9 +- pkg/vm/opcode/opcode_string.go | 168 +++++++++++----------- pkg/vm/opcode/opcode_test.go | 8 +- pkg/vm/vm.go | 7 +- 9 files changed, 104 insertions(+), 98 deletions(-) diff --git a/pkg/core/helper_test.go b/pkg/core/helper_test.go index ea0f00f60..460735c31 100644 --- a/pkg/core/helper_test.go +++ b/pkg/core/helper_test.go @@ -424,7 +424,7 @@ func TestCreateBasicChain(t *testing.T) { func newNEP5Transfer(sc, from, to util.Uint160, amount int64) *transaction.Transaction { w := io.NewBufBinWriter() emit.AppCallWithOperationAndArgs(w.BinWriter, sc, "transfer", from, to, amount) - emit.Opcode(w.BinWriter, opcode.THROWIFNOT) + emit.Opcode(w.BinWriter, opcode.ASSERT) script := w.Bytes() return transaction.NewInvocationTX(script, 0) diff --git a/pkg/rpc/client/nep5.go b/pkg/rpc/client/nep5.go index 5535d34e8..88ccc4671 100644 --- a/pkg/rpc/client/nep5.go +++ b/pkg/rpc/client/nep5.go @@ -105,7 +105,7 @@ func (c *Client) TransferNEP5(acc *wallet.Account, to util.Uint160, token *walle // 2 round trips instead of one. w := io.NewBufBinWriter() emit.AppCallWithOperationAndArgs(w.BinWriter, token.Hash, "transfer", from, to, amount) - emit.Opcode(w.BinWriter, opcode.THROWIFNOT) + emit.Opcode(w.BinWriter, opcode.ASSERT) tx := transaction.NewInvocationTX(w.Bytes(), gas) tx.Sender = from diff --git a/pkg/rpc/server/server_test.go b/pkg/rpc/server/server_test.go index aba846861..bb424b3bd 100644 --- a/pkg/rpc/server/server_test.go +++ b/pkg/rpc/server/server_test.go @@ -48,18 +48,18 @@ type rpcTestCase struct { check func(t *testing.T, e *executor, result interface{}) } -const testContractHash = "76751a2fdde4dc6c7489799a28bb539bc09d1f54" +const testContractHash = "2077e1382aab3983aa342e68f7bbc94e69f204b9" var rpcTestCases = map[string][]rpcTestCase{ "getapplicationlog": { { name: "positive", - params: `["113437bd8dfc44e3a6dfe77b750fcff246cbe933ca9667311f45d794cf0410cc"]`, + params: `["16c26d67f06770a5b0cda4b1c5ccc28d12c0197c7239a7fe30c2eb523b58f54d"]`, result: func(e *executor) interface{} { return &result.ApplicationLog{} }, check: func(t *testing.T, e *executor, acc interface{}) { res, ok := acc.(*result.ApplicationLog) require.True(t, ok) - expectedTxHash, err := util.Uint256DecodeStringLE("113437bd8dfc44e3a6dfe77b750fcff246cbe933ca9667311f45d794cf0410cc") + expectedTxHash, err := util.Uint256DecodeStringLE("16c26d67f06770a5b0cda4b1c5ccc28d12c0197c7239a7fe30c2eb523b58f54d") require.NoError(t, err) assert.Equal(t, expectedTxHash, res.TxHash) assert.Equal(t, 1, len(res.Executions)) diff --git a/pkg/rpc/server/testdata/test_contract.avm b/pkg/rpc/server/testdata/test_contract.avm index 092a7f0a2f985d98b35b6439faa27967b10acbdc..ab0710b41576eedebe588c0e314ead951771d124 100755 GIT binary patch delta 15 Wcmcc4cAafQ05iLlGAjcEgDU_f_ycSJ delta 15 Wcmcc4cAafQ05kgsWmX0T23G(o@&qCP diff --git a/pkg/rpc/server/testdata/testblocks.acc b/pkg/rpc/server/testdata/testblocks.acc index 5cd45c5e276269c47674f8784d275f1d0679d0a1..822a8a344028528eff613b39f0ae6ce2709a5a14 100644 GIT binary patch delta 66636 zcmXWigG1f_*8uR$o0itH&8_9SxfYh);YL*|wgZ`}_7MygGQ_bIxb% z5pL`eE?OE&x+X@J0`!~|1)(^W+N!S6zFRDCTbN4lWW7P1`5T+o#|{SG2L>rsViblpxY_yL1z zNzdBlva38;OhXE>F`q5+O<1=sOqr=3K95;jYNRNA#|Ua(4m4h&0RXOO`s{itdhdT@ z4o+#|P13>SY`(r86UtoSkpG^Ie;4bYZK@nr#0cli=8@>4Gsh8Z=>ppF|EBW&vJu_# z)&Cm+XzdPNE2_$ErPkx9h{m(R&tk9JTl)|;KGZ2mxL?{#jS&dtQG*Io-<;T02$@-f3-ud{B$7OOu_LhOi%g(bV10f2k-kA`YpH0{}5_a*^}#Qq1LR-_K7W6?pwq zw^wA2k(e%Z2G|aD(i4XFs~03T`a z>$tg2u{ezBEB~w>ZABbCsxQjpX>5vIJ8n|s>PLKu1cbRp>BRjUUFBiEOqY=pLN}@S zwP&!C^FS!BLJ0u!lXmezZfsex<$@%Y-T7=F`LYiXGQ4agp-&26MN=R(j!!ooZ@zmh z>(azZrq=(8$;p$Wp$-f~pofz>s=;d$jw1yWl4LE3BhBeK2+bC4gjHyC&TjEMO%;13 zYihYtVF+{=Qi9=RYvQKhKH$^Iq7V(#;kQK28## zPZv5H#}>}FHC5a-$V2WlY>r(rT-&+3|IWH`xc2ccFQp&^JaXC7W(*eP$miMwBwOf{rh`7gHDFZ#-Kz;HmP;=vldo2k#)GFu4&-sN4gk`PaEMyB zjWBB9>wc+?-21}Zpc#`GZ+Gm4?y|^pf;qVFpZjYJNhOGRuw}9BF9t2lG;afwS}j}S zV|vPdD$*(d*sp!^9fK5mx4^ttbs-*0`^0P!3WJZUFYxzpCCpio9dW;tQ#XXZ$!IU_YMzX~$>&I8&h)D&~u77gxyURn=u5U7{ z@rH*P{||@wv!?nN#K#{@90m#@h~({iR7D~6RY~B;zF1@DqHY3HBLj#n3;rh}rIXP6 zxr@yN%P-dp2~B9%y3e`4-v04>ZLSH7->K`<#PY`2|e zv5be)EhGum2EBZft4gvE)ZSA>_2+P@z<&1lb#Gi|>^;mTV$sB2qbgVr|G;;9-a zh!@p^F)FayO5_@^+ZvRl8;RvGvuQI`i2N_hi-S6stuQ>!M*t!-U$OFf_;VnmZ%?ky?E zk0Y9{=GP-mmd#u}lbD~Z_<2fPP5u!hP`H(@97pl?XSm(W(19o)?*Ksk@-?T@31Nn@ zQ*MFUeKxr0%MNFs#37+jfHr~XY_&+Ozk-{Ne*gvLb#5C6H(jc;$gRWa3z&h!CP1sbeiL=d$W%Ye zFHO?S`A%0Cq6OwNywyLjQM<$@B>+JBh?2O_<%dhD$u~P_%!Oi&4qfJhsE8ylNh?gB zK>ke$309-pZ&$DS3tTa!oaz~u*wO5%DDo)lBp~PnkZ8;e00?cfun=9|s@fj9(nd7Q zN%wacJBM=GDS5X!;*EK@IL9{zy08X`2tszuB!*+;gXCYM1&Kcf8c%=ipOlF z*TO=Pe>5>N9fKdl@^bhnQ$x1Q!bg?nH_Z4Z`nM`{?xgk=;KG$%%Mxv-dih+V)l-5z z2tD1|TdTQX82#dh+a)#iEcE&*9+mNmbJO^A?_%K`6x4eK075?G>yw`0Z+*oM3<6&B z_!N`oe&ObRKGVu{&1ZsW zmH)2=LCdNe|3qn;AXz?*~6&TCWvH#R!Q;!Ko~OwBHh8_K<_Lb~4j+;d4y{Yeo3cmu_Q7qD03|(sLLns|HPY zPmOtelIY+#pTHuL-q)O6rI7618}Ii-vG(;G&QB85Z7aY?Uh&}6lRgs#aHUiFuhJoc zE8Wv=D6i3D2v@2ns(#Wr>fC*J6a!IzEll>IXX^Bw($+gX{xcb+c*;8wSef?HuH zOoSw4k;25ONhy;);^yrilQy?79_p8{b^m5gp@5(_jfO?I@2E`&_jU=mZ^XThPzdnk ztW6#vSdQShyO}ZT_v@fM;_INW7#Hw~H&!Hfmtz$=gfhi|c24x=1N$le=Z6IL+vGpl zVf;k?rZIij&V%UQE)G?)mN702t*YwIhxkpWHGq_$;A;)}AN+8FT2si)v8FSivD^9>U)>7Izx?FE(b6mrgxL|NFgzzv z71+(BUyH&3(rN)~Nt-s@EWaNMhU)(L&Pvt*9WUwC(S4nlEXGSFQ zaIdp0ut%8b`cAJh%{s%RgkUd+u3~l!e#*Bad+K<)63;5~rSI;PiEl5$Qy(TG>}#~| zP5}@ARQ)oqyf=$Cg&n0J^tam${+4d%a@02$x%g(W^!Dkm(djjYI=|k`_20%#*{r}{3`uyx5L-|YUpN5h*2I%z)yepcsKYH{K`H2fBM8XZu|(h50Oc&ebtqd9 zYxMhRuDF*ikTMvgL)}-i5OfG>XS)i;@gs~;(g6LV?v=IGH!atOEAlCkPzdBxy5fq^ z?4}8d%WmB-sceE2wv@lk9dN$wehy;oW2wo6c?=#GYzVBFxPn(GQV)8lT#q9aDI&q| zWfb?`RaEZJ>3|AyO-gu29gl5UU*Qmod$v`m*jTLPN z0NRc2?83G!ThBDa2U_ywczwqACkKeQwrn1bZk)WlEex}$=D1j@Emv|klYOrZ*qHxw zscoMd96Y9NvS$T~l;j2g*}q&Kuj&avK8K`{qTfrbIJ;ftZGUctwNGIqfc?X&cDPSz zKDk>2{khAnOv17l#s@`a2?%%{v8l%CbHQNyeNLhQTN`N0H9t@{e6BmU~0lGUIvG@*a3z@7cr?g)u z?$abn6lA6WQzP!Ca_K_H;X@E>n?$bo9b3^HiFWo2WX`9>WZX@7d?+iU;BB4wMP2}K z-%dH;CBdcQQw7RVYqa|zCtUQ45(+zSzBc2nUJd4xJqfR{DE4gzm*Szc%4yyy>Q*9pVCowjv-k?PMnHYiY>&G|V^Q^`ndW&hmk2 zwBzww&PQs931frw@Z?5`AXT72lY}N1s)rZ=j3VLT@hi9dxfoU~Sb9&fC|z`{a`uME zzRY8m@*~(~Wp?7T->=mt6oex+SpmNDc)A+_cTETp6$Eu5j~{tMQ7qtu1r7}_XeYx4 z4G|gi@+<4(ltjUaSGnMy)8m1GFr=wOZlU|?Yk`6 z=P1QVED(&%3IGVSnENSi&loG~f*Zrl8zyX8_RZaOId!ezUKvh3<_>;2HWOoc3@#-+ z!htMStlh*0vaK1*5v2pJc&4N(@bcq@m*M2!zv?UyBu+0&l&1U6m@Xah{d_XBbq7n+ z`=th^@1BMn_p!MX(P0-!_A)k$%#*Wx4#+XEj!=?gX(j8!r3Lo0`n_ACR8d+!Q&PMs zRo)qG_KcTg=IO(HEiF8^ue#I*_S5*!4-M?MgR?2xxsgI|B`vx>2rR0^R(-Fjrk>s` zzyHFSswovqWPRZpw84?!LL>XjxOEna*29E$J%cOxjbM#pF9_Mn>whSx-z=Q=qb-c=^%OSTLFe>IBF^ z=@I}mX&SR-*cb|rHqOxx=*{6rS(zHymzt6HQ~ipfR;Y2lN)K=|C~}iE>nHU!TONJb zXEu8NYOtEKD+;%NxKdpY0M2=>w9KT*vE=WlhMrx+tq^j!$DUSqbNm|@im^vn|12aD z{Q!lEXQOfrVO7dlMlsq3J1Sl$ZjYeRsosP{;cNl+E5^Ybe^$+Q$M}X$b&kr5!S8yiM&~!#d#WvDQzsPdYi;9|l`>50e%8kYt836pbE>GWogGXhk6A!hUi`&hF zTM0kT*dC+9o}m_OlDiGf?g8Z@zdssF3~5{~!+tfD%UYv|FF084RXUIf8rb{jIaHU6 zE*z&>B+{Zx1U30)@NPVI@>}Y55Ab(AiS|Uu4q5lOB3me3b6Cvu8mkMG*T5+FqfCQU zp6<|;-O?emkJ9-l)Xo;a%SbB`y`U~#<7_!+$CyJQDv*-b^&?0=t?-*w`t6{hC%Fa5 zD>{=t(~lPa8(mkooQE<5iko}Z$N|`ox7^1}rI!L)=U7|#y}Ht}b+RtccpELhYiZ~) zmG(@d`kmlkJ-F~`)x@oke>{}i%4mo^gb^wT=tD^1PI4c*wUs7`E%g9Q;nq!cma4er z@Kc!qy` z)F1}xV&W1%)1hw_mWaEel+12$e6YxbV!^Eph0@8*NV2DCDHb*^AdmppBmg*%2!BO- znW%%^DMVFDNj`UOtqyq_@fdZD6}KNgRwe-v`LOVSTA+}?Gn(#9ckls@+Z=1P5GiK#rtv?0XM za--CB#Yc*AnzA+%r*^!=rI65hOr zq06;B7*4w;?u?QG!9a@Ra~DMwFPvRyIf>Y z)=X1&XCfSF8dL`rR9vV!u-l+%)hzk&P#to)vDqA@uR$r4M$8wVzcA4|F+A5H9vv96Z z=Kz3~aSvEeE{)125jnXJJ#Ng4vpdd%j~ z{uqD$s)>W7p#c3xx@fsb5!QN`&h-dtUZTpduwfH{kSR@y6%7bL5f?C7la$+IHnWCj zLW4IL%ty-R;KW2oUE9Ti!633=5km(6ZIspeiz9kuXXqq6%@8Dq)6?{G;aa1pO5a2t zN`y!BYkHmGYUb-#YiZq*x@`AbsP$o4NU3iN{pvgoA3>u<#~<^Ar%tkg<#WwY9j(ys z7L9g9j@?~;1%(uFAUv-au&VFJxFqy#UgZ3Sa`R9g^IbpVZu!|#EwO%g0e-ZPG-lUDb~Ei@;L6xN zOWZ)i^CM8pXNWCHqQ%7t&J+=AY8&$qZq@6FaNk9nU^vN*`kWz>yRs=tUQyKZ{>j2c1<(6s%55v*H< z2Y>XcML(Ow6LRL*uzC{2putesxd`=-1;W0O8t-`pGB=zV*cD3Wu>`15k{K6iyQMj1CS#V^YaPqM(lmaVx3g@tx=K>ZsFYRTHXwgh>>JIc>n9Py8roM zgZ*sgtcEj4m|fft#x95}azVmOqm~>~^xxl&$5(wzT?oAcPJr>lze4%PC{WvStgFWh zFEWync`e@$=&U6Kh#~<%gPq;%8eZ+gqZ8h82;XXT^tuk%9x}{{YK^?C*p(kCu`!yK z$BvGDJY8M^F*^98K1AuExQwOdUy!eK&p_$lKc??UlI1saxPTg&>NK&?Q{rRhgiP5V z&Z&pU_fB3237$Cr&;>`3sUBfS<}9QIFa{U-{1`>o$QXZ}vR;cQ+23K>~jwy=z6=k|1_XLX^L->4U6K<(kkO(qB zp3OoO`cAOlpOc`7`;l2oMhh9oo-DF0e23)pTq|^=$)kgIW!;fDaQx~0=Z6FKTT5x} z>RA!+q}tQtash0HzjQBIcc*yzbj%xpgH;p# z7?&Bp5nmXnwf-P_E5uBv(Bz=ZBi~~EI~yp_nb0!Xb*?KvH<_En|xSgDYQklf$_Q z_S1PCk%h9QNte}->Ycg!%o2XMa~nKG&;VMd3<#5ac1~pVh9rfoiIZWW0PVUujqpKz z+qPsFB}J%z@F3A#c7l%_$~S->9Z8n)W8>sU>{Ve=ilJt+pc9R^T!fJoS`*MvmG}9V ztMIJ6s|)}J`-T=N^fxBlFnoDaguWtbg0F85`_i|TakHlz{3W=s;C$qcyIa*vG2ggj z;Oq#kKUEOh7r@Av#?!{i29h2A2>^=LdmGoApR#w9<4fCkhhYr=xT+hBEMc;5Ttx2W zjW31W4=e%f39hnl6x_d5>V4*8bqS=nNK%OWYsZHF>M92S=Jde6#^0`Cr8`HHM2~G; zPkH04w>Gb}``|@hq zUX6vmgKg>dn{rZg?OE7OKTcd$)4LV_JwbTD+YYs4U2$Me#35#q+5<`H@_|pJ^V4WR z1OQms%Z`~$me6{}UUI!+5g3G;{`rKb^10`)c?>$$PMoJ!C3SxS#|z4`)^Z+l+=E*4 z4fQhZtsRj+kQrhTgyG!`0B+mbEA+)_H!#PH0e`LGvRQoZ&416`h{|s`&nR zmr@lc(?m2&S>?u{sXjmqNY%8)QvOaW=YE@~t!+$BIN#K;A7Wa-7s9r3(%8R&##5Y< z{rjBpFr0S@dWpvV2pe*zbyA9%So%K6hJ?jsvZ(C*16TB@A4lZADqfq-bX}X4@0$3> zpD?-BY4Pc00LnGPie`No)i4_%t5nDMkHs4nA>x2h6oM&ISm0LoLm=khr0#$cuXT+5 zv+EA)CO=dN8$p~pi%}IGxwuRs-6d5IiJ)}q-U$VQnMCLY!y!NPHTRjuZ5x*p-7eKaYN;({{9h2a&>eNVR+E5>J|VX6tA5XU$@qm zJSX}#+&}sG`F(TiIH(xk8_YFCVR^6J5>PphiL(|yx2vk?{)9A>bRv({n&R zYyeRXn*xBi(mc%R1WX#l*2!3rWux(+_2|gpciEPgky|*kIvzy3vCo3;>Pe2vG_rB1 z3_PT?+sMR-IcJF5!o$Gh3(fBz?{wD_vdYCM386^7X#VHbxp~qkC;7Y%88u3@$Z6ny zoqanAf*tKO0mTf>uj5ak{017h?vhIG(Yw%{;)Y-qua~s z9QW9}KVxO8r45;fDLi@y*w5%cKYXy?$v+>+y!9_|WZlq1ZHMVTj-&I%j#A5$>XR~q zhWd?{qzBx+UL|C^#owS?HW*J~2Vq0F`LM-@<_s!3ql*RVS$P+_-BFOd&ECXAY~N>pRvJvu=HmF{2{@ zh#46LBEx`wlXu{-lw&Ur%Y@>9%*{q%Ie&PRaf7sss6N&3p5klVHM#{YOK_YPr6xzP zD`<4oQfjpoO|h1LD;w5BjnfAJY*yIA4WnaU-hrbu&t$Wz&OWYJ z`=n*yyX{nRK)+!WJZ6=RbnY)I_1GSU4fr&v8YRG3i?Mo|Q)I*z2?D{zNPnz+i=F`u zYu-akKbOs!*3}z=Q&&PPe`v|FR(?u_iYEn@UB8>bnee|#BGe}D(b<*%UIhYu#as*= z;+DN)sW`g84^ zyt2M#g87iRS0rM7?>B9xL1V^AY4mx{a3c&RYBnPAgPTaCihu`E)`2)= z^b!m>VNL%_SR!!3UV3~np#0r@?O3u8LH13LGj$f{%`?n+JC#I7SLh4^Ou z21C%cxI(fQ8{@0qtn^gKg{t4D1a77(cL0zamgpRkO*U1`=K3$8{1YRGfvko(#*D|v zBnKZR+(#?CvMmTaHN_5wZ!Eo>AJF^sP|- zX~isJ@r9w#yOm~P1Kml^M*p%w8|c&g3jPw_2Gh6VztaEECTF z_A~p>j~MJny;d=fOadrXKDAuC`0Q7!wJQ&4G!hE_2+KjCAJ+yakzq(RvLw_6B+N&6% z&{D({+AfpaUV)dTyY@M$E|DM4!#3|1h?q0uFXso`;Vk8N7dqM%v;jY_+ZGnD~7ycThnw4{jU z|M8K4`IhwF5&d8g7XC3kT#R0PB5(eEaiOag9-q&prM5vx_2$ak2H)M6N>?wEDI7$W zN=d*FU}Bcr@pm?IWPRqa_v|BmC7yOPk&(zf^WL1M+v}&u9tz*>xvp%@Tw0XwmCeg! zdEkJZ*N!%`teBA_dIh3XICH(bGHSgv#X^`8y`|mF4I;sls>9j{j8tcxTB(3$fqq^C+r^eSOCxn>B3Au zIH06ZUhES~chFblBMpC`HTG8H1NX^BD~b7WB?^=?Bo&Gojxtf;$n~P3zO$r|G(RrF zfpWq{r?rA9IB)H>SD60%Vs+p1sY*K_XVMHi#BCw)kufS9d0*Rg$9o0CS=Pi6iBo_E zb!=mYP$e@;4KK-aZbf^j1+G$&ckPB*t^ZL@ybKibF{jAphqm@o3Or3tb}G@IDB+9= z)5%=Il6``(zs(~60P}?HYW$r1wb9#I9CjgDyPC0*a%E3F*SWfKq- zj|DT+5Aze^m;d|rv$AasoA$MbAAL!uT53qoOixr~aeD~MbkijN;BVowrH3xjX(R(~ zB?aP-Da1kma4$C$i*ptVwdM&O)roJz61DI9G#1K*+gWtGakT#mKPFZrZL%G*-K;tj z@z~alYcivVgdi(KqxrJ0{3Hl{x&Z)mF-?s#6D`|)sFmAne4`U1MEral=Syb6Kx*Va zcaOodw6b%M!qA(t?{izpvp$KW8e5PR{hdB+or;Y{B4>mH033|O(4tm!s?;R1-umfC zduGS1YLmp>B4kILmZ&!y`I;rK8I+5zn`yv}KStBR7bPOk>W@c^REeM#?`^xUr$h&a zd&WpN+?Pyq z@CWJInGflXl{;+mXWR2*WJtX{ExE28$}L}x9VvtKao4cq_B{mWP$7@sNj2^U)=M=_ zQ`N_X$kocFPPUEe)VsRW_Qg*6~mx!6(kg9>vA2evcr@W&D*D5-f z*M>w%hpVn*x!!Z5#9N!q_R9zS?U`%qgq<0RLG35R=3su55HgZQVwJ_#M zMsH`~R5WlAY03uJH)lE4{j_oT5un0;zjd|uG4cDjXtepyj}q)>yHVW{(S~~NjlnTO zI$i9VZTI^0)K2TuS;`h2D(H*C91gXGJ(a7Ymr*;}JC;}%w?4j4Ze^m7r#Fd!y<@>%#|J*iB6Mkb(aZp9RX`4m3ur@Y`l9R#Yz0OeQ%j*DnZx`*JGU6l@aTGhN002mPb)RmnY#7K!rE8X&p_O@%kV{V0 zU>(hN+Or#Z7J`CR&z#KnbiRM+5YE81@`lm`K`|~HTs1Bj?m* ze+e~sz479(8|*iscK-BLl-c6gX)4$GNqi9_!1xMh>Zk%}14yl6Ip5m~f$Phun(I`mKH?2Ug0_0}wP?GR%fwVOk}eVD2W ze;qDr0cx??z3jp#<-||MxW#Yl&?RC3AR$Ffobt5Pw~>~e#ov3-^qXYfs!$2(60I(j z>BMvLd#I-0AI8RHk>VWFANs07al+~%jZl0wOb~GS`M059Z@s|rr;&_1$|0QBa~ky7 zsLaJguWfyU@=RrY1cwpDrm)6)J5etiJk0ZyrvSM#AJn{t>BZYvKH6BPFemT&4ZtQ& zq*8W{@iEx#%_?G^+6L1t%m@j!WwgV(nKe$Y{EY~h(PopC@boYy7Wnv8WPO{5I;Xzj zGRGl;^l}`j4p;Vgs6a$j)pbJt$feuNneqtf8n4byiK5DMPq&EEC4kFV%`$E%cJf!i zlL|y5^l`|Unscy{ck$`a=n#Sxgdf+Z?!$QRzDw4qeWJV~+UZa-eS$^lb90JDHwBYO zzyUSS9lUbC(R%1zCE}p9**oF+aYVmKf9C2M{f3`yRX66)_f{%p}cJz{eBy#qMcY!y5N&Wexse@Bs%C;~{Qqu!w|K=&3o&%h$W}2q|2iDyL zgQ}FamjEi*!m1%q5$ z6(B5+YTQaWTRE&Gr*p#}4N1Uyf)A_0OI_hkMO$ z9Xx9Kti;e%Yv%`1A7>U#Z;JP>OBkp&U!0pT<@NK7u?Mj_B7@k7?n>+L6>DAA3mfUz zOxKsf1{z=R6bf0eFNucpN|O*ohuR|Hwruslew>e*%{Z43YUKG+cNs>nEOS&;jM|OL9n0We|~gezbz|&p8jy9zi?>?th#31li|k;p>#isruxv!931ZW{!bjT>C|5ymS&Sni?0jBS%wUDPFg5d;A7cfKr&)_7v>8K6OSuHbBe7-YSX zCu_}MA0Nk_Pw|Zghg7xNQnRSK$AdBBL>Qa-`9BWCsanI$3CT=ipr4(pLZ$FlDqu7=UGU>trfVCq2}N?58{ ztcX=g?mGbZMID0v>GuyMIN{@^E!yc<4vPbX(WCVI74%Kq*V-QzM&n{|y?n(bdom2h zBbjJ;0383_W87XA1fF-mt@4+*9I&6Lxl}1lhiQ>VZlCt2wm7Yt#qujbrY`bTqqRk} zdPeXI8PVxKKYFkqJ%^;b##d2+rE)JP`tY5s%G6=}sVmPFuYE74z{_WXv4MZZ!F9%$ zL+1t&{aWqq7KG=EI~m=TQre#)shI9RZX~RMSPLDWGQ5pd7L%Q0KMyAJ$>t9lbyG9` zqoURzEdEtpzaKtv z-cOGrb>4G)%7)G|KcMYYgbXNFi1~}0WicF>vV41xh$lKV2Yo6JX^n0fk{?@pHj(;y z_6Gpif+PtGO@)xK>JJO3IFxa?oE%ty{*$Ann@`mbT4eF)TwRgZhsgOPkOtL~kO?pP z<6u+|y2v{lfo>&Y`ZH;+JlIdB!B-WCUle(5Vj^;%=HDq3U5QXtB_^%(uFKx16!7tx z!N=0uxh8H^lLDkQWD3W`R?hySNG>(E$yz&%JbxC{V1<}J8&9cikEhkY@i zH>w*tDNssX{kFI9)>awT7eC5wKu8N7wsdx$DAIE7L z7|x|8?p&J!WJ1#xZAYeB(B#FNIcw9bGpx=1&7?8OyoEX+N@ulg8h1{`)7pN69$^rY zx*N$oshX=}uoR@6&2JcKut<$shNIrU__bz~#8b>xRa)N93ddMU4l497dg;Q3Rl%2SAw5Bs^Q3 zrZCC6iXzeEUjJIH!$U*rJaV+JF*GgvDZF4L=UoE(w{@i9*6v-`7qtStKp!ux@ZZNJ zZ9=Cn;oYZf(LT*?#j5$CALe7&^Gc0fBTp^pxP0@hM%@4xpM=U$&n&$QWoKyB<{04< z0pckhgnvDMkAAR8ecbGPz)@+V{y_;16P&|;>OxW>0uGoFuCCB197CpQ5{904)T1%mV@_U1~o#&lYomUf( zDubxRLdq8>y7N7TX{WcHj+$DkD~5c&(nr|OZ{dTOq)`Dt>Yu#Je{@Q=Pi(i3WsL^N z#v{gyTn5nC1Zf3J zKFf))IQ(czDtdqf_B$JqC;!tknj2?2%xQVzaZ9zDOnunH&Nb<9S!q9;8wvJv`_GRV z>}QnizA3lMEUI65gkQT|QagY%76H@pX7+r>|Lbpx|EM7U>CA1WC=A@lGWw+8!}Zjy zkFg3@Lgdo&5B%i8_-`LqVQtuz*NP+LI*o+UTHBq<2eGAm7D;m~=_3OpBCoi3IOoY6 z8_XU!CVyX(ssDVAb*UOkn_~S75+}tjbDoO)Vlkt0z6*rVsV7o(;l)(FQR8h|u=8 ziqTCpeF5yZWTLI#b!gi(T7IFpitX|BN91=y&0WS0bPoT!&V}m#U2?ns=f?u}ODAx) zqg9;yCyh+`Bnn!A{VV1gPSxu&9k%XV|NE=&gyUOr#NOC!qW6r<8E)I@t+`*!<7Zqs zGz$NAzDo|$zK`XZhQAR@gv4}EUUu%66xl->;>%@}5D@7%Y0Y|BecSpl=D$^ZdOxwe zmHj-{zxA>2;T-(A2g)?`ZZ4&K1_g(Fd@o7(XPL$#aqNWRo=z-}XeM?~bKu{};+_`D zihE6T+4$)3-v9~7MRicmi?{u6LQe*^g&BtyXYwNM?#hr`38atp^xPttO)D=qIVm}F<#Y1`2#PJwWfQ0iJ$3*=+ zCqAiG80H*)i%#<{a{Lt;f9dFq=?wR?Q#B@p@dm&3=cGrWr`zg{mJw&$PY-1r>6Isy zztJaiULSKblYe@GhMJIFr7M`H4T@Eo@)W4#*7Af>=g&+?>BLQ9)w~U&CLIM$zPxvT zH}~n zuA@n#{n>+b&36TjOtxuUVZP!>p@jBFqI@W~-I8o&QdU( zd_=e!gwSG)3D$8QuB+tK!o}D_{ns`Oby>&X8*3^;;Ev&06DMmz0ctmulsV0{ztC)< zagZi8F=b+ekR90YV2IOBwsl$4`=q20QMkX7#7)R96_AMRANvpa5gopQ@B3?}v`}S@ zmkj{u=%M**_UkT61vdWiPA7C zM9&bDoMYddmg?@*urlJ~eJlh3QKoaqPKF zcCbV}$KM8$v9E|KQ9pVKHlPb_ettDWxD>j&9>S*s0MpJN?t!B5BWE^S2%3T6V9+}g z?>kyA$o65mUa8K!HCC9&-ZXfTUF4`b?D~!Vw>I;tiPJNq0HF$3^TVT%d5GJf#kHQb zz~$LXVV7E%?M`I%7)CN&w`(dYO>OEWKS+Pz z>agqE=BX2(jCk{#mgvC2?+4oNWBEfC9s?g&%%9a)mh#cl>dWnlPbsKGjBCe;h`wh3 z3Gs@KF-(l+-h%JS;CJ#J*Snz1qp$@E;YIYCe%hPGu0^mWs=hPuJNVx)fNuf8U#nUQ zxoXcLfb_aZZzq@Vl6f#|O4Ixf{wEGqAh=b4{wsCgz@-iXNm=$ijwy_yYA`bN?J$qI zIlWOVg3c>yVe*dqi^rE;o=t^jo$RhU8AIEuyFmN#)o)m-{1q3MWTbr?-A^Ak+_NIT z2L*~2re86*U+rTXGQ)`;NaR3q3qlF#$D?yS9VM!VC?j!B-;%AO=K_g1Qw*_-B!0|T zP~keHx95UxiUR<^+6RTHc!2{?tISFK!XLIf`a9nOHzTeqDii#>^Jx@{xP;s9VqfL) z`3YYkE;tA3sO&3uzFSs6SHPrjCVvzEXg0ora}zFe{U;H|A@ApPcm&OJEXI3YOvZ)i zPCzx~*_oEl-S{%Q&^UKfa14GRo*Rw8n<{O?MMQ*8KrypM0f{DX;E8+dhDPEZI7e}Y zKihQ+xn+@it~B0i1bgy2Q1lZpnt=Vh|MO!9`>}QXjr43Pc%)IytxE4ge$A@=c)5n^ z4~X(AxN{z1NY=mFC)Lp2rSeM@t-@n5IevwMiYI#yueSmvoA3~r@Bx5=I<3w_qfh^E zmEfKiA3}1|*Frm#qwg_Fpm@J)Mz%^$?nxQtV`-KES= z0Kunz{J5a{^a-6c8&W`M^L3u~jkPHeu7O)d6Z0+4;G5ow2C9hbPEkarpfCf4njTS~ zG$L`ud(4QT^Qr}-vx=Mojo1?aSU{>ijMEBHllkXLdKGCxCVTPNCax_0$sOH8#8vo) zrT}9RpZPc9)$hgHN;MxBzKAgtja;+fGK3St85b1az-6#s+2h=Zds(Gx1s8ceOuv*B zaUJCxL%+|wmO3ZzR5CjFV@E`v|NOp#{mkw6e&U59A4t>um^fs;>yWzotWH5d;|Ag< z@YS~s5mjArV&43catpB{%^R}v8?ETUVE{Y4Rn{^_#lUJE=Hq*%$QIXB z+gx9>;>yuF+cwp!pJ{ODr@Pl2iGHTQiZrX&Yt@PMSSe$MI<>Ll5>qh3{+yKeQUjG1 zl>&fot5F=xBAVVxBF5Ja$Qh6ZNq(i0H)GK&SURuAO)T2K-lsY@10XNUTEFLZHn3>8 z;xyq|Z;s=Yn4&2o20{J*M0VOACzRk*PoMj>RdZ>W)+J|8#fM#t{J zpNRL3GQ4-80(6OIu2rFPgKa;M6T;oAf(IpK=u2FcbrCT(uj8+V%^xAqaZ;5R?5gqD zR@&-5t4f!B@AKC*^fusz;ad||Zbt#C{R1r4GbcGGJ3D!Y(CGCa zqT{mfq?^s^E$F9UzGsm#hBn-La`7VbiTp-yl3;%(JQLiqOl**DRh*B8wQATr_ze`? zvIBK|50%FzE{^B}|GMr!R&$f_IZ-Eg2u5M;U*lhJrs^I*CR0O}LM?W?Ud(?&p~|IW zLh0|4f5FYrOYp1M?}z&Xnohp&gWe8!Kb@j@e+#*_K z$_KE+sIABe7)KHSAQKCys12!4>T#z4n(hyu@oN^&B}6w>&AIRC0H~fsEghi5(^Nfn zhKOmF0#|!zi@yah=$4zxaA6x?!)Z6-(`}TT{r=8l=%2Fkf+(Ddu*=+3Kk<%7v(vX% z3SV!{q-(qRDy8uSODqMQimO}kWs4XVBW?LKDnWMq*9$BO-IlZ0YgZb(Z@tqgu(lKA zlITOc#~Rvx*Xudx4W-mM*hUYX_mixOr2S6FBlPmH+S2yDVu;jH#S zxiP;=fL*Z*hacD@0&=${V}D-r@I@^u-TQ!X|CW1JPE_p6uPi3l0z2J z=&YLj-CvB2X$3wKUg*Do<@pHMd@Cq4xx23kd((QAV{w>q(NKRc7%l_Y)g`K>X=&mp zxGTWX3g8QkW1Xk*CypK|R1QL5@kAslu6kV?+hU-R5QXExrQHL*Q-HHRwq$IJ6wa|#}Xg0dmphp?4W>-Gi_YIW7ob+Gx{8|glB%RYqPecaQ#FcWte>U6u~&g)D;ql%EXN3YD$GgT0+RS*l*tbt)Awyt_K z)y&Y_JMho`r0uJ)<#Y(TL*e(+9MLH9zC0L+zsAWl#vz6`r*eSt$RKYT`^15m)BK`A z>2i)u1~E|EHtFlo-^O8OR1R_MVF=VFw73U=o5BgMdX z?52>1-LqIupBDf}8uuJiwx;tDxMJ;aXWIe!3bK10Ri;EOE>!ald_GVsLA@`kkp;Yv zpy&p5&%*!l-cZGG>J2GyLcNN>gJVQ`k79+ z(OxZG@b-kAx@{EEqNihq$)Td!$HZKZ9J4(>Frm2!X3P+2o4*6SpHXezP|+e3ocSHi zLAGdLFf`#X>>-?QlpPBEItSe0lOYv=SCo-&@m+8s(lj=4<ieWELmn@>`oQ8eLI0slWg zh=}?m!~hB)_}V3*_EfSFU!WE?d6mFB7OVf?6#T4}W3A*6-D1NfMg7H8@r;y*ZSAMc zLz%^_!Nvd{JCOMA_9(uUtB8~d8tixI7iD_)UjstL{gk6H`rfa`qRq`%=^Lk(QTX?! zWSQfDwLq}xMl*}VO~3B+n+C*5bSS!b&`R?=X<`+y;U1*qcRWp%dl3DCPtjv*y&u>wPp~K)2u*Gbngy z_R9d2hVsiXd^tq<0H+rcQAZ^aQx>(kS~31N*O#w1Vc^@mQO^fUp;Xdj&avqxjC7O=&X1sFYABabC?eCCFVulRi3T((q_KMT zNI6;GA$CvEW7kea(kx3v;X(*%SUz2PEcEObD@!&wKjH3Hg+>^_1`yaJkBJU=b3{I9 zA=_^=o7e6YZJ_g4!8s^g*suE}&ghp$iwLX{0zL7jQ*jxM<4((%^4oe<_$J_IVy|I+O z&)wrjM4_r zFm9!DT8kgx&SQX7JRcL;yNzcoD~5+tv&)qjY{pPJ)+aFD1*sa8?Z)@p2gB%p423=z zP95BJi3?mB7@Hnaip}gFt-u=Vsuj&T$Hl0~gu|*)Ct&v?nJ~Jo`7ac{$i>~N8hO*5 z6$15Y0iCVN1AGZxRD*+S@6a`p+ym%l+8q3Fb&cOcKK-8d7)= zk5$|SiiKZNn&8BRdf{E%Qw8)fCAr>#OSadD!d%jd_OilOiCQ5y6wxT(u!iK2u70gj z{3upk?=Tb9Zjkx0COgGq_6sL*z2bBx(?i>>(JMmKDGi*cD691N7W7Z-hT+eUhpHN2 zp+zVEJ-hIZA^4uYkgOTebztT^6>fA>fb&z!wrbOEgY%tzk?1^Jm5~S+&U^L`KnE!~ zJ_{#Edukl{-s<(`gI~-)e!?I83h{K| z2mGL-#K*+jaD{FfA*LQ;2aY9sQiB_;Sf{9Q>ZFQn~!81t(z(c3w;_M7>B=J>dM z)d1`=V9c32fnI&Ty31X^=Xy5bZ}MlYqtk8Wt*vgmC%8)GPoso6R%=)NP!>Y_HJH-3 zP7`(Xx}=?2Sz;J-$ILB@C%4=Rl$JLGwc!fS`n$-CqMWV>F6w$)y!H1aitX&Jj*~7& z#Zkv68vIyaA=jNo*x!ZYpxip1-lE6Omv%LGfSYG8Xg@r&U=f8GyTS+P8O}3?{wN^* z3Gal=9bY)q+}gTE7;=Sfoxwyc46Gvq2Lj3sP}duBAJ<>VBVL9y>+ik zMQhLzA=b9iiYL%GkXN>=K64e3ee`5Zu{k+~)6JAVZU8Uq)Oj7!w*>bckBg#xep-@0Zua{Qc`Fak|M-q9W8CLtdWT`sQZk*M-*U76P1&PO zdiwagcxYfR9JhZ`j*dETB&r0Yrsi?pEZfvs_@QAOo@8#pE=jz&@>Ie$x*q&p{%q1q zjmTq0ARHxGSW-xZN*Mtb!T6bo3EFk3X4`HK1@WkB0#P_BI0isfGbR4}6lmahH8*e3 z-f)Ooy&!A2Ng*Ew&6+FPKl6o6NvGdI>5TGc4?*FUEi09WC(|*YcA5xvM9ShnMX!t| zrMYu0INSp!THo^WNMQfkQI(=ZZ^UPOuoMyFkJ$&fxca2PDA08)!5wHz+xV;6Apb`$ zI*sIePEs04^0pMivV1&Gp(Au*6^ z07Y~4q<3|FxGe^ywF+MzaPx=sS9vKD9sVY)%IR`@H3z(869g-d%ug;Xgv~Ed@Zy|4$wv3uo;6?(gio8nSZS=bE6r)q)ZRXZ}n)B*j_F};^qT|&CQ zII_8g4L#z6<2RYF{H0ug_|t*GW0b87^6wO#v~4;E7CHb)yC?1)^vZt&7%2}a9^JOG z3f0hOylT7}I*m;IOH_484hmmu%YLju=X`*RuTT0KLjeT&AP_iExv!Mnz!UUnaGH*G z@hekl7a7y(sBw#v3Q96&Mzd{4Ce_mwDh09_JD~LjTw^@d1do_3BA^Z{gh9&rPSqH| z{kukR4bJ7yDs02_U%#0NryVI_!<902YlXGPDU3thtE;DRFBC0-CA5vrf}T#tk0z$% zsl8W|&1=|09`7HKMG5;V8VHS!<)adK^bLE6pM$` z&Zbrym+WnjSW0#O$$kS)NXgJy?VAeR+j{S?{!QG*YY;8CxSc5i5vXrfX2o($IaHKv z-W3_Jb!gq_#gz#N%RwVl_X{4wopp90)LN%i;%H3X$%iZA0T*8PK z4{U1$Jr$FWP!Q@FkniUDr!#A(b$_l#fQwS^ZSl{7lNcJL*cH@O%l<;4juvRyEj#i?%3&r$+9{Tec2urEaOx*-p&gEx>o6 zHjF0b)!s|5_9!imGOXlqS+MFQWG_T_0n%TO9tgkjQG8q#PVpnHkr&teMcf4(w`8w7 zz^t4q^sYfS$=5=eEoiI%nrDgs_(^>5W6N`is&;iaPk^(0LR{Enc+2Rd<Lv? z`uP_!dfpm&S?Ki9m&Ud$?dQsx;oL;uEq;l12ML{ks0fGSJ)$skqIK`3IyZf8@|1?h zB05u7zO2{4FlXY7{aPyf>oGTA&uNRCg&4f4Z;gls5#mYPtd43$s6**jE>%KhyBX=d=JTKYoO@=y6xs&B-_&LL?@m8v>v zm)BRGZxM^;ZRS$wQr|(7KRI^9I9<&@k=GU(8&t6bE-$#Zq#b;2iH*MdX$v`3vReqD zV2!7Dg0IQQY2*mHY& z`J%!QRA|q+@`}18UO$ZRU;p8g{J>{ffIM#vGaqD$MQW92Mx!^#61P^f{n$VQ#t0c0J6_dsqqHY^Angn!VoJd0XEZ1Cr@}lOcB~V?3 zwaVYawp+o7#RP~=The(BkD4~=(`^z{lzLz`VSo~SpkKg0 zEXwt9p>>!Jn=F3RET$0lXQxIBnYz{*S_oU|Nqt{y8caLPpm>%p)sg|JV=tNLHn1{VMTO0vk2XJAG^`I;xjeOMiWnJQg2O?*nXc= zB4h$MmFy&8R;DpSOUR?C51@tGETe07>*eG49j+ws2L=4u;n2=|QSI$9PZ&8Xu`rE9;19m63PY$l z%&c=$h``pK{zzp=h+422qX&oGA(wnj1FNozrvW*<#MWfHRq*JRmpoR`ZmEVe@o+nFr3<+<{Cc!tJ`H zQIhbcXa00VI;bZz$ii#}+7PS_PjcNurRdgN$7yiju>Lz#>*p}_8|xFYMVcNj^}@{Rt2_s`b2&*Ae*vZk?b$6}nYTtG?xP9m&MR5ueV8$XfwQg& zdsw#AGi~$JFT4(h%Ir+p0>SJWxr~C@sf^n_vd_lGK_24WKx;;j8#d7rwQa@iSEM_` z>jA5sfe*hRzML$y$)_ci3=Lk1q7L}Fp)58q=rrx5UR|E{P#j(fOJQlfQibn(T;M+) zhxieN*Uwno$(-2s{xmNgmi_+h;km1C4)JHP&GXId`LI2A%J%+d5k9v8F{*S8O_d~+ z+MYOMlef?o5&%E|G|I+jt$%>?%XJ=hGX#@pVoVgOD8GlZed7^`%k1`DHpD%?MMVdh zzCra_^1q0c`7hxKSTf$ue37%j7r)uf|9LVB9)-^l?xKC&MVbWJU!3-B*(}jHm#kot zxl&kD&J=cYM1W3OcL%uhK0V}J^YUg^=Q`_s&GmOr&4L-p#T3xd zof*Ak5CC|WfG=rPQOok|c|$uS*U#dQ?w58j|6)MnWsNj{-CEprMy#VA$-s);nG)uQ zj67e(2PA)Y9i6)W&hf!-d0u`)le$+^d9&!nI`cFl+VfGl+!zzCXX9&s(vif<2fvhm z{A54)HAx|~Lt|6WpCJTw)68MWj;LGV-00&PyJkSi`c3N0NX|Y@;m`(C4DJwy8HUYt z;uJb`Sv9p3Ca`i8e`nn>2Cd;@u*)wi`I@{yv^~{e0L4J;d}fPTdaKiV!eK%&^9b}0 zgiqagtLEbk=HgdMI#k%Y@F{aVH$o^MsKm|$(lLQ1_n_B(%t?{1kMOH6TTV%XM=GHL zgMmqk+}{~S;!{<(QKL*Wl5Q2%2iZ?y%0nn||kOk{DrOAjfFlGGA zO~lj8uG>JzB4Gb;M&aA|{B@quNb3Z!^LG_!(Q5pLV05pZC!pzE(5&p?Tro~hqY`GI zXwoX-#5c(A;gW^@ncFV9ZKDT9sP=%)YzjO9>U1lyKugef3Y=FLlzqe0(}b=t$&n#b ziwZq{J^>n%yzs)Q;|wz~Wy|3u*aw_U8hxc}^7)1IcwTI<>7dL`r=n+lUlaf&kIPe~ zXuEPB{NCoSwE86e915W5MXeCC zkW}X21@MR-&B@VwXFO()H~F1-%=?G^gPNQK>F9`5A|rlEqC{-j%Cz%XQx~GiT*6

zsiC}^cM&;!`=^tB-jqi@3 zXT1Nl>PJhoi|lSREJ_`KL0?f$Hwn9Ox_Y(IMWcdIZe=i!3u4QqehneL# zx`g?&XY=O5;a2f`@}34`Dsf$KtG!C+a^b zRQFMpN#BNpklZB?7k1`|mo`QksxVcErUk}PK%TI6?gLzUeUefh1@Q4-bb7zF8wC+^`T?WiAZ|cuOZ3#M4I$-sFopu%|1E(`*l;!oj5)IIF zXP}N@n2Dhk6r$sA|F$Dw#-$NU>!Wqn@P;(s7=_T%3o`*^$Xs7ilN{~nJwh8CZKJB> zxaE4p0xP5-^#z?d1yBjB08|(Er})ewG~%!yYy{8FD+Htn2>sbM5EiClUB6p(=DzhhmS*2+e8$erQ4HWa~|fLg^O|OGKmG=>sYoUi{HD_9-psb$`_9 zi1o22VqX=t2hRQ(1qs1oUjT!!g9fA!XmL%B--=VwDs7O}P?G$FujGhXr&qYn*QY>7ybJ1-*-mmmj09g2Txorjypgr#(f8#==tfs?^ ztetw?0)&~YT9HyVn!`mf{W%eWqlR<0d$0-Be!cD+H{?O42 ztN6ywAkkd~rjnk;mV@8qzeW8BqpnKuYmLbEelDj!xPQuFllK+y*k0l2XVcOM!m$a- z`Lc`}#h(n!prQitduW@$;#$y1!*?L=OAN`3GQ3u5wwsY}p+hL;jA_Eo`Nnu`ioEh_ ziTNx~4m(7kjV)USvx%&pW-po1-zORaQbfnEACYgrp{| zxV}coZAl`#Z{Fa%>{jY%*coz#B?ZTk!F~USPx%9%(yuTmhlK3Mu2^|}C;m{p&~a8` z(yb~cEy;5)BN}jXc%1EtACjD?)T7G1MBMbMqlm3JlOQ~XC(i4;XwwbJX8ceo`wsmxNJp(Z&2|ESo6IPtuW4t6V_-~%5yM#YrV#VZrrbGm3aXmf@ zL1pLrAzm8hWatA%R#h-8RT+F^Pn$g%eJ~MrKW4DSd+UH8lZ{lc2 zQgp#MImZ{s%ts&he>jk6A4KA47D(RDODE~S_{^nc7luf{(Q9i9(xfCwbgfZLWZ&KZ zq$oVNO_*K9VJ3|oBq!Q5qD>ck5F}NO7#R%X2&M@OeIe>C2vsBa!$acvF*}@**)j}3 z<|ZQ0h;dz#5J$@j32DY4mX{f^wIF#^S~Tn*!T>(LI`40(N2S$&9XS!rYMIUS;>l)b z2A!Gvbk-1l#M+O4S5nz`1gXe8{yxWJtTYA#c^qd;jWd-`VM4=%12-A)76*yvy}PiC zf0H(bB?wK6C5=qtwI5cTC$D`o^ejpM0A5_*{;xv+l^9H*wKnZq?9Mw01uP|Mv8?(# z5M^MKg6h3LOSOU4ji8l3px#+_eNuG=1rYtLj5Q4940lif$9&^1s^Yi;7XO`Fvl!+e zjNNDJL5h-3!eK)P!tIyEws8)z5&K&4CBG*}fpWtD4U zxbkbR3y!gU)C({o)iGuC2+RXjY;B2&tzvV`!Yjn87GXXhD2#aKoxuzNi}xz{^ybcO5t=S-lKiScKv2wM+mu?;-$0c z_37Hxo}fO-VU--DF@wP6)F<^;QUKXRn>r}gwS#CYV~Bn=2pR{%%jgkRJKA#luAAFP}#h4K6AKZ&2`y6V4 z_k+K~rw}>qcqUvkYa$_9Q%@htq%MD-oToE?w%bRwA@mduCrz`XWXm{qqXg<4g9gTq zXVlnIyW1|clZ=;M+!!Vzgt{Zt~UIyqDYy}tqy%Y4MXy_ zE{&xX&lv|nNn4^MRTzw&ho81-BL8%wVa|#Iw=oJ(K6+=4ng2vngIVagCh#xmR}Bg zayXR?OQ;s#YOfk#lw$eVB|CU%}#j7~~>{WDk z!_EF)6sUuRC>#n!Z3MS{DI67nw_1Tr*1dzxE0XIM49KXcVjHqpN;>4Xx&JkAd$Cjh z(%CWJ)>Sw>$L&V+$s7PlkZtDd>BaTI&!)%;@0Jj8ez-=2mwy1I@wU-GkgTHle2AMA zRuX|2RDghL+q{4LG(PwVcdmuxD*?`bZS5>Z?Da6yZsv7HzKGt<5F5}pvgEL#FV7n> z`u8Z6Vjw$&9t054aJVUKc-0Ih=-4=iO`d_uN_eW@mcFvT$Zvx<*(&MyjWp6nsZk4# z_yaoNVpjtds2IpYvFhNi=u+PMi@o?G-t)0BZ)xRZX$sX#zQY5FRkT6A+9<4Qadas* z0(EC*J=EVqY^5052jB73pGW5?!Wy(==j&zd#b{qJYEaBx(pPXc`1*9>{>m5Y8F|7M zdS=}2A_{v2Lih4gsEUp2{aOGx(qj*no+ zu>7hQ!nbM{zIF^q#qkJOAMFR-0-%>la{Uv6tOyp{Vu|LIMDqzvZ3W5y$4~QvpB?r!mzJkP+uYdY{XqTSj$MkVSY+L{64m zAOk@S^KV)W=tbIvJXN|Rbk?LV`Cb|qE{MX#;K!?}Q;hIqh}q%4^B>q^uI+G74uP^e zZ>6T}`osO;b>*At7emi1kv4&}YV>}}_~llf%-ODO(JeUr`k+HX3f8r{5Qk8~!vNN8N1F{2uXwJWxh~Z~w-V*=w13L0YdNE~F*DYsh8= zpUHzLj1bY1*w3*HczDugMp%W2T_0m|y7t=IHNouqx{IdaV~GC{N_skaKdlN@k*C%1 zDL{<^@+|`y7SN|zyksA6>k< zD8@l~ub@5&sgVLGC8?(PbH=!mxr&-*UsHu-o?fY-t+VvRUf9-uNb+Zq8vthvtOCC1 z_rM4pU7&4j#YBszY9Y z(`8V(kEa1JcK27%aEX8ZICn}dJ%`ssthPr^mIL~=g3cOhe8YZh<4oDe;TsHn7xEwA z3hR?dn<;=T3@vF;t{1m}8Q*k{Vh7uDtW%M^GG@)dIdmqIN(_sEKh5>1_@n&$5ho)* zh5X;JC?Wj-0SI(8$x8KsS{z!Sh1#)li%x6q^0&%JXb_GDaaylhZDUXJSSqeMENQ2+ zdidIH=!M2o`tYd;qcU|XoSicf8*MwWqj?q86AD0yPw$ArNb19wag{hM?b|uTVI(AN zCJbR{U8&sRFlV;m-0e&mnub`;mo7gDE@^u6Mi8*R3DDMjH8>FEh zYuW+5Nav#g9xNYb3z9K|FlRQ43e?n7-s+Mi53#aZQwbH~g_BVSafTp|nY4U$a5A`} ze*vrW5wNNVhmqYOQb}U6X;oO{x`~(RkJzKgwWsHz1!*0BD&FH4lZT;`!wyeo_y^(W zHa>L(CapF<1kn!p_rukWRYQQ5-o-RTd@Zx{rsmknD_yaK#pJ$1SU)Zws74SI;iww+ zm>{V+(KLY7?42OMUaWvU-ls<$Tv^JGm$i_;2mmIYLH+-oK_`p;Rpw${42=w$MmZr# zv@_8RB=Qm3cqE4N$n#u{A3RUwWMR_<-EZ)&_cpGrZlI&;h} z!P=4%lV0;2&psm?7plV(C7@`QKqAnbyEKqJ*c!>kyzA2O1^#AbV%KiU@%L+M~vMi?lr$kI*Q`^dp5apcsSU4v(MX?e|4ppiS0p}Q25ryN#u;dIBA8Aax+B4eY^-K$_NLrO#Ge-_1hg0TB1f z(=RP2PDv`C%SikrX>+x9foJD6vQbEpHrRUPLFr<0RgOgx2t6ofAi)%L-B`t9}p|kw!11mmN*hMiAp&+B$O{*>DLt) zYAN*A@OzGR9PsRi&P$lWs5PrQPwOU3iHtwr?~2ih7ZixqvL2kiq&=amKi>Anw* zA4;|k>`mNDA@+c|gG(G}v?pzMP`srOB<4O-3X!tFb*D=QoF8&*GDrSkEgJ^-&v28< zwRSCh96#5^+FDd=xM@;i&NhI$dmJ}jVL_jz zSTvF$ie99wA2NUTx{qqCV<1-c@2ZXB{#51^w%X}E1c$_$m~Drm$qz6}ht~5bll$0E zOOo8}Wv}Z*{Wn?Bu(?QJk{!I>v>wLZKb<`Z`hqEEE~&1X45F+)3D`>kBtyahL?Dg4 zem;v-d!Hs;q)HNSViSc{b6+BwmuKQ{u^c@Z*9dd*fCncw!oe%QBIP=~t}j6x0PXCo|7F2# zt7-TszEQ~AQ^4Gnpi=`YnMgA5{%Qq+TF(d6I3OnZtqQ8E6GR;#u<_NcZo5BSgR^!l zIwj>oLD?}Mg-p#8W!4}S6f!(g(8ZGCMz3V86K8I!1r+Sx`6rwLz+A5g6>FdV(?AiW ze?qtY9pAYBTY^bEQ16DXbhq12G>-=7u6X>J;_Jglz?T0DSi>|jUvOfeI<9QH^8w!J zB70Owcdyvfiu1J{=9T#t4h$aEmI~L=wBEEIxIGJ?)n8CHHjAiYK`ZKun;eU4Eu3rJ z+QKBL+npoToeSA5+D#gTsnF4&lalFBGvKmYfcWe!8;1w|r|K0DjQ`be`kJpJ-|I&m z=k#ZIlL^d8!mDtkHf#v)11aKqq;@Kf)XILR) zL};SrS&RDFhk~1Tr}AvCLkK^kI=`o?{T|y2BYHTt09HNM5q|}%BW>Yo0|8PwK@ViJ zO%C!t8bfy2`JAYoiaLUE0zz2v_a$L^X^H^qcF3I%eii@t8GR%?Yic410$1$nQfp|D zpG<*Ly=|+{LMsF{keJ@o^aYcnwDxm!`PNsf()pRNykG+E z$ZMqSNyTcdaIO-7O=*GO6LCxvLZ?=?_(MO1Q(Bp$_+X3;5Hs4n95n!o|G|&rK^~3q z%xG-RH(a>d!`nEMFYdMW8>`Fj0@iNdM>K*Den0;4GydQ={Ub>fz>Aou%r@xLhU+?- z^a2Qm0I1hM7^jO+PQ$2Yh-Y1jO@u!vV9~2@7;j&H68361t+gtRGwN$){GM}a5`SMbk5qc4=A0X7Lw zChxN52zD?KYaP@)BN}AfID}-i3L-THyR2o;9j<0hLnIEXdMe8&&szd*yBdNq4tik1 z)>uk0=O^fj9DKUF-aAM2Z3>zZ2}MByjVePk1<8^)d-fGmcnKEn3?$;!o>;i4DTexG z4B*Ci%CIZU3!gSq=nc7TFT-QcZlAaBgRQqTYEuDTk$}ujcE)2L{Kk2Cv}%~Z8tS&+ zXQYShCrBD)QTrb`XlLrdiWe5JMtlDY|dIwUR zDtzFOK(K4?1`h+vJ{u4ljUf$W8wG)@s!!S&rvU!2O)?(S!kdcKjcUVj(!j&_!22b! z6l(he8VV!9byX*uyaY#ovf#qX14~H z8qHtf;%zpveG9oH$lC8!t4uX4wT30)b&pRq!(c;nQ6;TJ)L}XKEuK8MPE?dx z*#Z2n4?48#BC1mdCtn<%u&%@@k?9+D1l+jL4n%u-vpGxUVmbV514EJH0v4CUGQ1aN zF5y4HABfhtIuld4`n|H`N)Xs13L8rja7kG^UR4fC28SB+>AYu>)UGQY;?NUGxS7i? z3&4%eLgdP8r>?K+CK+&p2^EG)-ej6F6a&I!e;L1$kV1ce3zX&~>$^hI=`QkolUAwwZnxEHc0#4N-$NBW@=uFU!ue*jvi76%&V?0zT-;O#VE^X5JVakmK;1iD8oY%?>7|o zwH$soxF03{zI~pTVAc)=GJEKAal^r9V10|l7^6R=jd8dMMMHjlOE5dTjQrd$JYJ>A zwRF0K8_exTC^2#a6yIC_zK@&$yRhK?ejYm4 z3XbSQd(WH0QY2ry>TyEZdZF?cJ_C?mD#S-qGE@JbA4%?442Tp~`B8op^T*fVq`HQB zc{iwaC!AT1CUW~=#t&mz?LT}LANbl!rtim99BIE2|E@qiC(CLAc-Q>2qJJLP$VPk-at4Ts3BYQv;?pMvfg>a%F(J-F-mZ2Uo z*f^$qF3EdHH`WkUh|~(q{Q?gfVlACbEzcQP*i{ z&5yEYGKZ^=;~zI|-9LVoAN(G&?R80ImLCN>`=Nh+KI*dd^k@tec zk@|L{(Ad)a1&Z+Q%xi+kYLB5TNBB)|JZD5%77rIx9&~vqJ&pnVCpf!xW_fF9Sd-rZ zT5grKlc=_EB@E6y;$!@>qA}XKg9YZmo-&gTHg%sYL!WcWCd&-HWPpa5Ag2(#3@z!} z!XN~}b4Q(CFQ2rzwhuEJ3|(zS}ke(@}t zBWe8qrT70&U%VvOxHgP*K-lPT|uUfD?GUg-}oG;(+ zQk0AMN0?8k?8L3jCa4%+muTVOWN^BpL`Qz#(+ZIMMU+V6j$x~{ zqDgu`XS3l#nptc?y1>s%-4snBhcD6o{?8zf*-aT$nNrZ3kZ zp0E70x=(W9hP1TA@kAI-Sew&WKslMg!$Z{Y9Xm&Tg&wSXMo<=x!;^>hv)L&+)lfiq z|B4R!`iKz0#bb%C|IZr9ZE;;Mg~M-D4=rBVocNE8fzNM;YyyE0H2M1!@`u@LwCbro zCBj*{4H3qD*sK|e!~7uZB+=@*R`@4)$?m$VM?pGsH-dUu1M9NbLnCn zREB`=i~9N`rp4Gda%hR+Lad4uj2pm(igdl4ESZQBfWcb}o}KD1K8vtfI8Phkm; zPVBUzMYypjgMxo0er!U^!kSn!|BMC0pg}G*&|0j=ft3s>=nv|<-Qh3G^=!|&{uWQ@ z5d*KML@#08F4&=;O%&n~!1}g&$^6TEQU$H^H(Qa;wm^yFXK+Vp3+!+>@g0S~R56l3 zL{RsmvI40KJ;ywVN{#=9QunS0^o^Hh)S_X^A4&|o^$NF`QcRyhND|S&?+J;YGHwnI zA2x=NbNmAVF9=g`x3uMxANektswA)TN@h&dOH2DVymoMFkmkxoIb)CWcagoIXTtxa zyoP@PYx5DXu(`J!C{>e@;3tTXF1kd6tyM0%F+loSUJ}LFVT0&uMv(eO{^!UnZUX2V>vRieFW*WcTQ7e? zs@=C7eOhMxE0J*ykBJr6EB_huCE7uItTOy0xt#!bzd{1?HICJs&#lidz}thBZNK&4 zF#4gUT3m3a5Yph$v5<6o2!!-ze1dEuKT;rkXB+=ZT1hkT)QBfna9o>ZvxVTd0venN z!_h0`eRC-1m5peQqV|0@IfYVbZtKl9G&4E4$U(}r*Jey>^MGSa6nV5bQ3ye4tW4)e zRQLuU_aaV+pqV-PKR;65Na4o*r)cjwu2}0iLbZnGL%i(XU*cPY1XTmYe}X}m3P_7; z{KwDsgP$A9xwk@cSD6ZlUI-OU3UA8ne?w*k^SfTZM!mKm)Kc8S@YQ(GKa+=-4g0rjRA%22{Ly}VZg9>AB;vLoR)5%$EDm+X(KKM2L<7fB5 z&sxd0bS7~~H{PsjVRn&XL8X16csgbNm@|ghEJl(ezItc^o|*pUM;&`^Xud|X3!uIK z(vvbri&NoH(}3Ez9`rHV1yT1?9$4j@dSeRqV>6a++x5Sn6{@C8R8NPuG#wbFsH7mH z86sznL)K^Z3T*0)(5N4(E)mErC(LOxfbB6JAYnvd&tLc(n8fxsO5OYHiatrk?m|Da z6!gFF{w(nqWC{i`JtRccm_q^p^#HOSZd(YbfE&5B@4;BwsNA!m`j4P*Ox}oPVckJh zumBxVJX=VaH3WQu-X|SWK(>r$l&<|vGV{``ugm(ig?TpRl3S%h+(s6DItwVp00e?8 zZq{FahCcYQe>SuPL`v)~+?%GPj1Ve^6!nDPlagGqlDwALAs@ScB);bQq^wN}AUn2T z5_3%^(BXhECQx35wn{`_sAn~BH<7@xFv*{zd<0vf*D?fH@6`A2zS-*=VyN2 z{B9A6VVdpDCD11o^YJ!O$6x=(L}$2bq2-6R?!Y=}6=#l>p4A`p*!=dEoBnd|-r1+E zs&?QV`Cw|~rR=sXFs7~)Z*yfk4K%s)K@|4Wx9TyED|O|+p#G}M(YaHr?Y+G!4Zv+w zCdP)Yo!8jUGt!7R1khq(ah<)2Y(H`w`sHR~e=0siod|f(@dF**WuH!{h1F}hZ4PUF z0=-ov%?A-$o(Rmz5`2Z-rlp*-tOto|(Kaf@jy!kFj1qgOgIBurh$U!oz+n>0A_eTle(eSQoOH6*l zlYS#e&RJ$miH{;we@&MsS)jm4*rX!Im+96o6Jk=Z$UQyx zneFU-JN_H5x!nvLbx*ok47Mq6(`K3$2f<7Ow4I#5#UNEQI-Ry@^iPRg6wD zPT+3O!B4i@E~D!>l`r6!{NM*OM@*tTukP8v6jwXtopjcqn;Y}>Yt zcYk?$z5l^ppZ(5#&dl6rM)Pt;z$Ogqv490Ej{5jZ?ay>=nA&x0OH168dzR~B-;A;| zePqISD3_n9;a?f5nSe@^pci8Y{>l!OIX;i9X`hGLcpQusPUX#R9FA^T$Lbih>^ZOZ zIH0hwEvuO3Q*N0!a>o~D1+9p)IU281N@RNF=I9(iUR*sF1$Mzgm5WJ1N^VQ{}kO-@zW<&C+ z_?VzqBcs}X9$qQFAJRtW?F)JPD9A#4os;c#Zx264Swc8nr`=35!71ZhJYTbaQNs_; zT|elGqwMBs#%TI#%eM(EQUi_E=8v22r-SRpMIyp8+rHHHTvrtxNkzzho-IX0YmDyU zmVgOQn?`}fBft}KEDofUes)z(9X~4%H7Al zFY57hC#Ns^;J_oqu#0@&lutW%e;5KCP84k-^-uX&(K83hOIN&1jqsu)ZJA7Y9#!B4 zF18n)Ww!;Yz751MZp3++Kdh9--q(MoJHo5%D5mRC)(8-lZYtQmi?8_LHwyW4JG?x} z=TAVjIh6xVb(MDZrE~lfP$lO;?DmvZ^+WgCYvZ4fNPx06#)FdL3mQOGQ;ceCTW_f9 z9+J5Q+^A8JsEd21brgo3oZ6RBiBqVGddLpA=hi#}EI)+&M~mTt!>z=J5fXTTON<#l zi-fi8O|VhC=*hf z%(a9I^MICUpstzpAJ1RBBY7rl47sDC&2EK1X7~?q)NK7cDK$BADi{}s zIWFHc(=YXYE*iy9sPpP)hm%f)e}MZ_8;^Jja=@#mG4BERvSk(cc^~3&zGhYAN%F?! zGZzSrPo}k%2Jd4NrRXH3kQ$#4V(>1?j)$kz&-484dPPatTDNx-MnLAyMJEaCt0a%sD4YS@eF61$J$Z%F7Ks?7&MMA$InEg$vzZ&tkXP z0kTP^zzf8hYggRm4Y36?ao73fN4*=%^588~L_j0qrDExhIjs-En64g4x9%lm_ayM$ zSFa|U@ma62TU?sMjByD6x8a7#r>7fJ5~?AsVe1?JCGWq3p^ zzs5_db(`!0;_wCceV(_9Mrmw%ouO^b00?7dLnv_9~&Aa4_f3XD{-L%xn+Vz zE=&SaFg~}0bcrpUX6Tb~fzg${6FT^#S*0=3fsmjXDaq#q_VQ48fen?}n%w?@ol2%o zS4cdlt+yp1>^(z0qF?m5GNl;IGnPUxsEs&ChsJE?YudKwd~r_iRX91L#fZ}b>1jZi zXpn!H)}(D@0^)J#3k`hj&d4_3eC!-QSvd{%>HTr#!&;#nr#<_PeX=b$M zmBz9a)sYvhitLA)u<_bA>rw0|vRJ^{rYTjhtiS#TxRNw#={KLd0jlcbaf6UUK2u4h zh^B?xI5*k4A_W=oFaHAv+xbuG96zK^=IccUpYPr@tvgnnh=2I!1bz&ZG@BQ+xB!Wg z?AHsdpJ!xxH(A7KfP|pY7~R%*a%@h! zcekOU@b}z<{+p!D((rXLHvd~Bpj%PUbKW)p1#y9 zPJ@%Pxsr5GWB#-ceqI0gIeqZ^p--Lb!Ern$Ozy|r`&8-u`*2B81@O0u)>7SzJuoyU z5N*zH+q3W+VbJnZ?7U#DiZC%!t2JUwe#FBQY#A5R|F+(5WMv5l$B3@VK~V2}SM!O* zDtNPI@Luz_r>%*j;!OT;g9H~ZQj={ z+uefR12fwMRTQllxcGm%PRC-R81M`XUcAF8cOqK3#WNo~)gV(r#;wk4qAipqo#rhKR2!In zjSicANQqZuAp-ov=lp^18v>77`$R0aYT9W(FU@T9{0 z6mHo85L<&TWb^W4WkiyY~e^z9^8XjaMwcWO zoZMPjKV0G-sO4|{y)oU5mj6802l_LQoF=%Ur$5wEyBbU$vB)ndC}HH>RIM570?0lt zTs`V6Y*70suL=P{lNMX#(}PqeUILp=RN1#>b>?tudwgo~Mi{s%cclAD3Z>G)>@Q*c z;U`7b-PP)0(#ci;3$Kl8XX!qu4}6KgvlPuCL(!*Mbrvf`LfPs#f(?O^BCGf>jS>3O zm>)x=AbLRF$S;vgkmCU#&XHa)y_9VMGMD78R5@(rirvF^z`meq zy-q5q&#Si2av6xzi!&hp;;P`WvzUgzqdN|Q@#AzHJm~};^ecnbmn%@l&T$but427L zrRg!%Z(>CUo$IB>ix*5AaEe0dYqabdZE!N8fu}&ZIQ*3d1Q1s*)>O_RiO=U26By)Di?fflymRbvSFWEa*Iv=G1t5!q`_8r;3Vx~1 ztYR!4=Y#<$FU=dy2n_i@z*$}B;LF333|}!Ej085Jk9KYGi^kz0nLFA!&4^^wgKYAk zVqR};yw4*E&@#}lgYGdl*-<8j-xw3lLtR+}eiOIHG^F-Ibac=Dybkw$Z+u(YjZp-; zYrq!4xLVQ4nc!1bChCK@N-&?3A-sSDGNRgSN%#mwLgScvixgkMA>l6CeATDZxy5q0 zN-iW9S@v_SR}XH$VM$S@IPPGDV|x*s^B2hj!#!mwb&Mr@7y@&HgqWqXXqE>|~e(jUj!M-zqykCZr62kFBHS?Px znH5NH0QkmGX$4f4{C78YskicW%t_#slVtPt%U2M^&O^HwKl1kYn-*J4%@ZB)A$WiP zMXcLL#BvU6op#^B-O`ClU%@p~uxgMMQ5f8r5EkRP7y-DT#bmw#pAkNlM;$MUfbm7# zgNQ84BaS;TG#2o)h-x;068b`{MgM6>(7hfhSNsWopVY`Ra~)2v|Mzs#Lk{nE)qXpu zlW_Eq&lLgGf8;oj{G6TKVe!`ehWg5C)d)L)KG%OhuCNhaBcHY^)maVbry_c9CDyi# zuhdp#rZA_ia6AWmO+vLp46!M0on6h}5roI@Fd5EDYy8(N{AdGHn@0>-f*cCl4xfqvisd?A@JUy9J_fW0^#Eg#&J zyId9j=1P9E%svN=n*81}#<~E@?JWkp>#_*orYGvZoexBC^h>R|b?qkTB+G;yyW(0Z zCbWH2K~#ihb;70lgCq(=p#?8E;tAyT(E#OU-4X`V>3F=P<)?IzCbcl$&5AiTj?m(5 z=SF`~2tQB#RmkTEyrW{OS<`uV5R~xT3uZacV^7#Klk&d}+a&;%Q*CfVCG21M_L1h0 zkc@cV*e!*aj0)%CMd@cuEMX0~j}kYaBdIiaIEfL}BIGI*2hPZ~$Ve6&^bZ z@|KUl?Xcu7*qp|wLRz#}PUh5{{?kdZCPxp%-CLOX*1?FT{=u*RA3u)|ese}_Xl0*s zdFT}V0{Ia+3<;)6_4o7p64{GQgcGneh&Q2nHH-W7u~f)JRsZno&I~NZj|sEw;1Z)e z|IPpmals3u+zmLT5z?#tLX%!=--WY@ase#u#P&1ra)@Hn*>V&2g&%KPP<3;08!=iy zjEe`RZyg~K7`r(stJt0I0%a*d2QJ_HTDVRuUuH+OD(x=iyr8uua8j0+l0cH|H*B%$`K>+ zfLCeKToETtp%Z^65^^(%VJE_zFjk0&g}@`-GHaO#rHnV4UT3y3;Ed5Jw_W8Is4ok; zDWeeB5DzG(5RdFUK6WpO;;L2WxXvq{;%7=a;!Vl{eLsY6pf-5~9GnC=$T4$HmF~js z0TnfHih;}nRiBa@74XwVK;$GeU~JpU zGA1mB7cgEF>oBMZM{-smG?f0kO#PVK|7Hc(($~AV<1#F8uD#w6a z99B@=J?9svKcvTz{|Kt%8kpMfig7yCTN*m>{%w%Pg%>FIx5p8J>~@o7svb89Xt)@@ zrA6hia&mP4k^a@C#+y}}JQ1J^;8JI7mh7jrjU-2M$Qs^fQJw_s)xd`GTekh@7r6I_ zJXn#aMX6EANQMY9DQX;VYx^R_@Z9A1w`}^LboGPWU~Td`B#2xhD@*or;1D;xLxw7o zcbp-^KA$%ND|a(k01)OI=A~`KDK#s#8l`eGC~tBYSFa!uoa{!Z@4|_OyS)Us^BsZ~ zC*f2R<;<#<{3iU;%`**|j(RZR~q(LWNIe z)l^nX9AYz+0TXZqE)i6Ys`HXKEN5znamUH~EEd0GWGJs>NX2Ty;cNVR=G1m>&%^K!g+)b$d)Zc*4GxeUFG}F4Pt^YS<|f}4>wiZY zLFi)1Vn^@n?k!YYG2PFZd0C)}nK>}(IDf?K(7%}V{)pMPZxwC$OMjRR#Oc-{V-GXj zLMOR@SExU>1W2cB5jeG~-tw&9L}f3s#AAKpR&yzfZWLR2cSvjx{=B7>Pm}|iE$x^k zQVByjnq5|iZO?kIaxRdum9W2xe$pht4_yY^ z0e$|fZQUgBuPCFRt@Z;5-Lo&Fh*r~m- zYIy6N>8C_NkAZ+CMV8phyA=LLocqCV_#Z#u2S4p|G12vj1apD~wn-by&zw{LZc;TR!SV`$ zx+?DSE2iw^p~)CldWe-$)s-apb=IxFg?`B7&AZ{pvy>h-P?;i3C9ScJ|rmVmOgyhOVH>Ukso`1ySB!=C-SwyrcVj{=vf^*+TY&uWx%*3tj@m;HBD zV-=N!Yw$UG8F%=vBZdj!asG#d*MO-Rnuig_WHp1r>?bH3bkO6youn7SP1MgWEM*Ue z&NW>%KXlwg>L-~)*Zy)y#6v4gLc4P^5-2n+BL>&K7NQ{>y+Lx!GIM#s)Z^(W0z*(i zMI|x;NWv;@^;D>4_O87t8xFThx3gzSbU!uw`xxgjDZXhPZCFt0X_WuKWA zxX>oomE!uJrwd1DS;L^&=BC?OQN7QEbaA>&#QC?H$B3dqC+!sh>21~yq#iZ1F_J>} z&=s!e7zSKH15-vJp%)>)>kKdvxOpoOdfhZJqAVWCv zyQ+LSO9d_bb_Czuc<8>c`CJeWE!46`dUB@Gpmy^$mN^r>Z1ZWVMMEV86w%wFm(f!d z)x$hXuDSf^EiK4nh9WHS)rx-M@1{vDi&A1+GYGegB1O3(15XDjA z8MTI7-lFvfxv|=0K12|?5+?o;qdQxx-=D7>t5D;E_5}lvP>|<}P)a_5OQB50tSZ21!V&IL6A0QybVLk|%r z_}bvHO|ghi#xk^NeC!z6vJH)2klHE+`b&pwpTxgwCOGa0nneo&#aFN41s-@1%fsW- ze8~6Z1Pm5JCv;T@qBga^NKa}t9t5D$vO8PH2BJkJ7=(xa%%Q+qQM|dDu=b3TBCv6@ z@5)!%w+F2QUUq>b^raUg&%qkP5A4-pewbCk4j@F+RxfynGxKwt_?pp)=3MQ!?s32o z-A2)xJ{i9YhTPr-uwqH5Bf;Rx{dj+|9InT;;${KH9s7ej+VJ{MpnS|rTM~5rTYA-Z zeC+QZ;Kpl{6_G*U48B5QuV2SNZDjxAzxQmxwAR;Xi;0>#QpEW+m{E7xK#E5vtZ==t z%Hq%pu6@8we^dW$jm0PZoGG-8QYhvZ0Mxt?=qdg+3E54B-+YE%40dvVdfbSnxU*fu zohy8-C`6TAbp?CO>e5^Cqp}6MdRm!*2yybIVh@OmiUlSL-2V;IOL#4_Z9~$E9`tdp zH2?DJbo?q-PGUfEWUwex^_SMh&0Kt09Jx1wI-DP~j=sWN5UCE)WYkLC?brs{*fg?1 z?4V$6BGHWT!S%ImZx&6@~kJJTEq!SHl#QyJsSHMWXIyF}V7ZRCHV_CA^+u>7&tMlICu=rMR{**89 zaac_J6T5&9u`{4=JEY$8WcGnMz z&e}KDZTy(G$Ca*mZ|R)N${T+5ns-wRg0_k#N($JV`@7<8zSW$7r&EZlW}C)X%Bs5# zFF+wP4e^b=;4iAOtA}`)DC1lt_wg?5u^zG#f4}qA(qsHYBvJPGyls}CL(Mmr^solm z)jn|4vmiitQnLZ39x`Z02#8;+UzRh*ijb3S@VQB>Y+GiqQi(N$knFi%!X>C13Tyho zZ}K0%z<5DAd?2e0oRDr6`dh@J4n+7 z!6wkw3!mtf57IonDL?Qnv)TO-xbCm(fJEVEOw??{HPh76!@7DiZ>IEtEd-y4_f`G> zf?m+a*Qby~C6A;6Uj4)xI3Rkq$Fe_?48U9sEx%&4moxwgGwm5wS*gl%S3YZ}TQ@d= zF+?g`{kO9ohWt?ftc1UroFKKY|J`7|qUAs4)F><5*rGmeP7+)tHOcn|Y<~OBLp5$U zz%Lv+dy6xf|2MyJk`C@i?hy&r++-YHlU#-i(2x5Kw8Y}dncZ9MyX`?}J$wwpczAVS z#_2{Gc_!;-ubZ~vdIw%qpUK4Uh33Sllv=F^xP>ZVmpEm7N_=j+Yh7!mE>H+8Suz&j z@{L&mXB~z!>78fIqoIGltM`5Wt6#P<67orrd5{&;0?e~+pNayVi8eRTtb^sO3oWb= zAe7BELx%XoxB#380rvbiGK^x@Y1J$LbYm+m- zf^^R^a-^3s_V?ROc-c||g@hBwjl6f0)J}HN7=lJ`+c6AQqI7!`jTU6C=fK_pWD9Fx zfvnBFme*016xhN7JrSr4v3lAb6VjE-hcI10<7o>PA-dApZuSsM<4YU?WCL}S;PkzE z%T%yP>82TjOTHacb*rHjzADu$<`YhQeFyqqff8Fi8@SVyO^^Kz;rG^f0Ketusir5UsvwvA!aRqO~OL82_sgHiAAmcERs zt}y#WtW2SU__zz7eRYz&L-1F)xK!iJrO^tE^!-?`0_n;=f?rZ>viR^dhAl*MnJ`1;)Dg2`w_0n zPwc@Y%%wBx8TmYT@B&pm7loYZJy9B({+qYyTLL)VXPDt`^RYklBRaiJqq=;yZXg(Yc&X_CdWf{CT}FRiXj2?GsOkS7YH=f<7F54Y$j6VH7b1j4%#ErFC?{qof83S zJO&(4wd8*%#=OQJqiAkb0&Mc6tQFyA$-YJ=@zOVvmuAlISZBXMmJCo2X!f7tg?_}W zhIu>BzOUTas$D0l{YCHBE$fZH1LuJTa#cKi=7;dN4;^rpr87~_VzK$3iOqk_NSyIO z6r=wAe(ASHi61G!2C|y`FzjDG4(5k_YPT<6MDY_yd9_uf>R8CV$u;p|y!k=1?c6{0 zm#chl2?$f0zxN&Uq~|D>#+qu5v%#eu*hAY7+QTr2e-=Ia#N^P__?XhP%eG+}m0eGH z);EUN(L3t6e#kcQ%QQuDs@G1&A_ALEB_m=2$5hYY5ohwthW2c07d^!an%r8nk^W zIo^#kS-Wq~%=hIFw61S8j#b58sNxd4YX7D}N!PD~W5Y(H7J{s)jJ;2S$W-wCZM3l? z!N1i4xQh+C*=P6L#f-eGsq)vwVAUgJRe$YGzKM1`PMNa;(I%HPM_h{ELwHT;&ju`&Fw&9|Dir6be}W8FA3RRN~v%E zrDt>K4UJEFH!R?=Wk#KjcOJ3ZC&PFd`w)Zfxi0ETa~}^eVCVnw3;*E9sv4Y*N4MUK zd_o92mbTJbYB*~KC%o1qZh9FB_nWcR=I-cfE7wO4Gx)fMTpz~D#Ix$eKvkzP2e#oPjSQ7KI(B7q=wEjA}Uj(HAfEw*A60t;>Sf3LUkRU zB`U2dc};hVUSN~lv+H!KU&z!+^~1ih%0@w`q6_|CngWc--XJaINp7x{)^^(jH2bo@ zPl3me|C#U;_0z))=jb>ln*@L&$iAptbi(i>e(jDX zVz$6sr%lr|L~w(?ENs*-ebo{rIc)0oh75Cz2LDjLh1%p7VvzEMFLgVCeMVE-2`UQ~ z$h7(us8+mzDi+AL`G7C(VCdgFkm%Tnl6P}F>Q{Q@-Gc-B2m6lfo$4Z!CHsy^C`MT}`o(2wq-^yYst&|)3hJ09->DYQ%%5RnJF<19 zEk&7ZW(wy)Qs;W0$)FUxfHDI;UkVJ4-Acf!yA(s2zgy8fAI9OKrOA+^izBg~Q=n%^ z%4bXcX^x)brKJ1_6zR9)n^)fx+QRCeva64d)1b(`MO%IYm_|;GNgj0Z>2#N`zGcH# zsX8ju`W^TDeoiqB(!BCzeMwlJ|2a3O=cp)>dO?I+A)*YpH$LC-0YCUJJ37a_F_2GluVr?=KDTv&s4%6KsCY-0l9*V4zmoI$l zcs`UePd5^@7H6|IynoN%Y3-js)rZlN|JvjP&AR3Bpyl2$b0XOUKPE;fU^J?L7nm!j zbLfb4`8!UN0X<`hiHKSmQrXZvVo9x#Nz0K`lsRMYDC75M$2Pr{TmM3^KF;`MGu|At zPy;5_X?hiyDFJFcLU6f`SyY|xTNs9va@H|*5>=sp=_ovKHIeG*0OIiw*A;NqN3If* zW$`?C4><&Ag-VsnEjd|7bHz?CJ+6ELy&~#vLYbF!LR~36(WvgE>S(|`pwI?FOK?B? zT8;HgO++`T@5}mNd-idWf>Yb^UWLdEsCKy!Typ^U=rSsemQTM3;iZckE*41wr^aCeAn?|*bQ>Hc+7BoJod4G95WjovoJR1x5<7BOGMgFc!5tM+fSI7 zg#sd)PI_>uPV;%r#j=BYw(9M=lm=sJhAQLPS=x{$wWLcED3v#IG^hd zIFW9FO6Yv>0+wxF-4a@YKm3+F1ZRJuF#6nC5$EmO-!Xag@vr4OrC+E^+F4Z8NP6M~ zeK&^B!uEkZbUtWgHQ2Ev(@EGDj|TA@lwpv8qBLVj^ypfVmw}%3;ju!)DegX!V~*iS z)jMBYW9=>3sd@@lR$Cpop6}_R^Vum8c`yUW^fi|||AM^!;77^e8Un$5yDa@nzjKj! zASodXUAdl9UDhR{-v*z3@xM0E@;`pjAN*R{@Qt$5*mkl1P;2Vckv}9?2JxShnta11 zDSh8et-e<8)AK3!7(J=k66u<+Zu-^V~rPL|}am7&r4Lp4-jjr~~L# zPzmb#zbfIbO8&TkA=x1hxU&$@lWL2v4PHNx>3q`M+KQ7`{YekeuJU402=y#r z3caISqDd%K(l1(wZXpfo-^wkJfg^mW+a9HSNpz(DEy(Gm6O)PH$|Q`1F+0n%OGE!P zJ>OPyky-|2m>a*KDx?HQ4c&svh7k};yul%eQ~uw03%LHlE29~*jK2=_;xGxrzp^w$ zpnvxT;zAtzWJ|@or+<8ZEC2Y#eDEtJqIU3DZ#LiPKRc2bFC-kY|JqAdNLh9I~9dWRr^7*|+?UP9$k_=LD)vM|q z3d}p|;eC|~s<0#zQVwo0p92Vd4&Yf3+4ye{h9s{D3;~dQ-S*sS>zvj*)Y^oRwIOb% zR0n!Ao?(FQ+lTV4)+TGyf|Sqyvf>J|)+G3R`IVgEC6_vH{P76T73fM>_a3pnOEIMe z;gX_}%&;Quhe=1}HEsS@og+2lN$FZBXo%bM<^q}|MfG)4$i{Q$eo|x*MMx=ji4Fh* z#0}|?y~kFOT*+QylO*`Vx?^e+xXiqrHOzJkr(&Y%3Clrw9w)n0&jLKG-36J3@@=Jh zwr@P1M{jGEZ&3e^S<)zc7LtGPqq8Di+fP)XUVm&hKVT)_3hPnCg~ikE9ueeV5Gg#6 z8W~*$^DBP>*&}aM5uHzOct-;uSvyY#`{fuzWWCWP?(I+l2j)tNWWSR^6z@idNLK?= z`IT@-Qn@Z);x3d04gg8HaB}JXu%Lq!bX#V5P!VYhWj91~ICD%PXr{;(AI92szb!sW zwh(j|ko$1_K&;g!+tP!`<;V<=@z8H^IJ`ha#;*!)C$7>m4lOJRR=Plixz z7ePXJDmdjapKIzZicBaroYfZW{W`*I(-L+KvL>PgR*WJW`*V2`H||=EfkwmT*2N6((CA| z?bHGBoMw?WLE7#kKnYjr$B+pjXvqbL94Nz>YIZMk@M|oWQ`g|_80s1{iYrQs3A;k& zhU}95ZzjlkZL%*Th}>Vj1MAJhBObA;j3C-PH^#qfmZJ#wjq?=xIiNW&nDMLV-*djoq2N*Beqr z7e`mvOXh7xXzoc+e|-%O5j11VV;szfdQ*!Qwn)@ug)Go2c=eX97D#ZTn97}54eC~s zgO)%pJ>ixf(?5G7e<}9P;>WCTonWik>#N8iX~2^nU6bwl0)$Y#w-7(bDIc7Y((o?UF81kzeThquw|sn3hn7jxJ&qMW?^U*n z{ZPA&e`=TTp>}HeLIsgWEB1X%o;csuZmmXGe%#8{v+b6mj)?>idU68Z`q641)rXX3 z8n5y3K?_>_&$S;e$kK${)`(67M_oZ_`BVE*&#IDU^mxXv`r4p6dmE|UCQ|)63H6p^ z<@;P2fgh}kh1I4<#Y{ReR{N>@*>PBP9wOdoMVXg1H^8hBP=1>2Ig+lg{)+#k%|)*f z4i-h;=oMQgYqF+EuPc}wpAxS@$MbCQ9_gOg?{yuhyRcA?0S=>FZmkHq z@0=FE7T0f#$|1z@zM*p+@m~m+2dssud8RM#)`a;Ji*%im#E`^hk7`h4q#&b8m00+A zsG!J10@MXf)n~F6mp=HRJo=?Jb#x=J)DENX>3?Iz)QORlPv8vyVd|Lcf=BybO>grb zzr+uIW_cK^As$!no3@E%a_2mAmZRXa;rQMi?H=p-?)kd8CN8%aS(~NJC|p?8W!Btd zUy|SGoifS-EYCLZeTS=C-(a+?etAm zGBSA@EM89tS{-BleQ8ysz8Id%odHCnb$N@z^)n|1>pGq)1MV!?r1H(dK+gytF2&1S zPrjR|^;Ol(_7f#Cvn7nZ_m^_TiTG;g|1at# zec(g5Pv}s>Jc;*!k*#s=yoYKLHfyL!ehzx@-894_q~@TNzXo=2?08}=LaY(`BHmfhb8+|>p|>D}GK6cF zp0(`fZpg``g=Hj3JWt+W7QL@D=Ue(U69>4z-3BTURH$t0Nc>)eRVl|SclnhYC@Kc( z{~NwCecKN`2aItT_|+ev!h1c?l_9=g;-21}Cwljta=8C_@^WQ&fQ2 z>*nn)qs}=~}d^>YwABGz*HQ)L?REQ2U*UQ;Zk7b+bW< zgF4=8H+~*M?+SB$#V6Ziex?AwZ*6bPz>cP+mM{vi@z@t; z!R9Xa@!<`|Oyy3w2(NNo){J4?GQGb(2MjBS0Ic(8NQ^A?vvBhMY+#Izk-65B07|^@a(JPi}|#W zBhtK8=b{@*DLPMxdrINvI3P?1q*5~nEptd%{as&<|6)}?@%!Xi>r@tH1=A35yv{dF z->F2Ho%yOwP|sLuqF!g5<(F_>>hc(^NfeSdLs{H2&FzZC2B<6;M|&3FJ(4SdaIaZ9 zLOm7nH_)33M-#Qm6~M22Xhuxg{8F%S*Syr4$n2+PV$FVhqm3{hqkoYGC|PcH!(Czf zk6bpMGTxANqGox?{h27k%J?icFf!|8oOW>@hS%z;=j`Li*!?GYsUI=xG)54SrzOF+ z<=xQAWu2i!^Er6mK6L;4gU>Wa=OQktUztbqn!*)fOjnm4?*Lz||GJ#bylSPGSn9=W z#QFs&uSc*vfkri%`UWv(7hZbl3Dain{gU&R{P) zy-mp=6z)ak66R&_C#(Ed^+GsL+1gLilau0y{~X%ajBGjC^m;Z_{W_ zpr-SrwthhTqag->7G+NAq~U8LvvUV zJ3E4c^p7$;QV29?%7F1Ayg>2xFW35J9rJ~+=S6YL3?~s%DZ!XWH~g_Yz{=+`LwRw) z=lY>$n}q(GhxZijQ4+U|p%98!mNuzQnTfnDUt=Z?Rf#yZAgDkXMkljG{I&r;#*F;Cfk`nFMnO;$Ay_9UX>$YX_zRUMae_y^T$rcPxJftG&0!wYhaG-7a($gGq(HDb}NAzixs_w~O$B}VRn@l4D622umUG#3~L1&hLU=|vHj7t(; znIg)Biq|-dLA&*03;{vD63X^DIDFgA4(cE*K387Ynvxy)*V&~Ciqoi5z8TQYGBzq$ zy@n|$j#4s?u16wMovrN}7U3gFtoHOyo`!l<`!$J5w~BuLF+UtXuxY{Ty(*@h6mOw4 z8YT7|3!vb_1;{Y*i;AT*q-~j+BZS$IfIYP_KUO|6mH;(icTn$Whul>x1I*kP39K^k=wLfW{``7Y?*JC(&u{c%Ali8fVFV7 zxALRG9RJP3fjc>{+#SJDXMocBv>&Z7QFcf4{(Z|>%#{?W!#Bbj_z1e9NiTmAw1#F2 zc(^Q@WPP|cYJY+tnZAe}fPyJXjJ|;nXvBr1{jLAvIDO>W+ z03KZxg1R^t4k&ZeWDUYn^#Xsiyp}6@U`@0d?|yZs{D9o&HpalLb{86vcQvHe;4L|} z8~X&q`9RY4l&DpTjh2Eei4Cf$IQRaNXntXY43u}p6+Z;U109W{H91>U7M?T`vG!Hf z3;g3Y)u)`89RBH*s3jdS!#f!m)QjO}Kt#)8`#l zxkZb6(QnIkN1gLYyGT;?DfAWJav)4qOfm`MBub$nsi{XhTyGn)7Gh|k%W6voSjh}> z*Z(+d&ozfN>qAOk>4sp&VTnZ;^t#z3h_sv7l^d#7XDLe`im^}b{KF^qBzTw?9H=xZ zbF)L)M-@=DrHg-dodqv|xmDRJXq~xVdXH5e9x~qNUG(R%P+(IYbyU;yE$`Ev}+&IiBq->H_(H-Le#RDRZ0)t}V7l9%#3 zNwnu%V!y;YvBQu)B=7hizw8fwf+XDcN|D9ORYsT--oeweD3h(C@ypTOoc0+O7<70S>OK@^fJ*7AB92o(ErIp)_g`U!YUC4q z)})c8p27$Q=c_uc1$}jE6EN+H;vCsFNl_ zkg_;{b>;z^O%AS-djulTbT*(!wMn6YZqQLSRd#i~p}Lj)7creb-AJtPL3s|w#NvKd zU!#0$r|vot=s{BPkY&Pde*EcMOHDZiA|7qh=8cDy`w+^{{p*COuyz^B;nu&{;5--P zcL*9)1QlhjDi1Nx%SiVCipcZueL|c6`WW3mc>q`1Hz(Q*`I>I#`}a2#fim0h;2AsE zcs3Q-@&EBV`NuEkgCA_O_BSv97_Vb$eFejn?_%8H5Q@mJDhncaqF?dW#7b#1P(;ND z`OKeUzxz|u93rqvKS^$mW+OzUJslfDQiZ?^aD_lj+9*T2Df8__QL;yqdw}^pn8E>>9` zKccb{NA=sK^Y3P^d4dsnyCK_US1WR0sG!T*^`|L6#Oz|DuFx~(m)iRY>$bKmfXset zn^0dtwXG{}YCO{*3=Z4-jW6Kw@nj|qdKkLU^V%Bv&?5AsNcKZlit?i=?*_=`SGoRX1yYHEP5F2RI=llC5CQ~5;!AOWft)yO7YO5HPYfjcJOZR?Q z5feLma|qToj86&28!%#nzSGlmR@+|@f9ZUY>QeBYrCrH%o@FJIxRbWnB0XpV71twDUg|_z8AwRf^LjWab6utsz9WB|%8JD`p zA4m@Xvn^{`SA<&snc@+!VRf|L9ZeS4QA6d;O!%1&6MtXJa)_2(E?vB(fUA6vJFiWy zRsxX|Tb;5d%LtRN^@WyBCQg|MnJ)4b5sGqTTOuxekiu`Hkg33Q}@To)Jr)b7`Z z+7*W#BJ5F#iGwekkY3eWilQ<6AguZ`$z#(R>9`e={_;Tj>`kPXahPJMZ)vRKd76Hm z&a`hyAv{V*5@gcmf&p45fd9s*L6$&=9UU8!kN!}HM~s1W-W!Ybi-u>W%R54M-Cbx> zUFVAN%fuB$ScLD$8F6_{B#AStcC|?!E-*6B5wyN4ueS?Vvl7w0jW`<20a85#o07N& z#-v`dQ`%SF;Mg$Yf`Rqufpu1QT+~w))f{(M@yQ3Z&@w?!EPV0@N0L71AJA%41}e}Feh%(S?iEEYUr0bFo{ZhLYBncl_yYoK3%J4uB7c zsv-lQQv2XHNF9bHuQxN=i+JKl&r-MD%H%OH+&T?CHe7M!xsmkWCi%;M{CcQ`918QxlE}C|H6dZ; zKx_x8o9}q3C~{cooB1x54qojpr_=10q+4_U6$<-qoyEKXv_uhIVhePBja+3)Dj>0a zrxf=~2CMQ>q7%vJdzN#@Q0LrVrf;{>5;T*N=5*uI@v7;~MFcGEG%vZimyDmcedm;P z6;NdMz$j|;Z&j5(*uC<5o`RoHS9ekM9lg2lS(InKK1R{J~-RwSulnPd-unHD(F=e(e!={^%6p+#Sdd8~I^k$Si z+MDX{S2p976M?BABXKY~*rZqQDBH)Er>KK2AbjLjfI7Z!g@bPq_vq2&<3i>`hf-qZ zLYQeX_BT`6f$+#|F)nex(4n3ml$0#1HvIdFp1WpU+@U(HrEEG&4~5FpBfwP5kYVt3 z72$bsiT9KK&bZeaUYi6F z*v930ZaVJoe=2%DbbN9dQ`c}OM~64IquVP9LtieC$p}jmd)_Gb*kf3~I=-vg#3v2F z@%hjoW^B*!Wz+;+MB{XxWYDUA2#ChRupdq(A4--O;3f?JIYQPS8+%4Ft)cxLnfCAP zK`$O0G7`mC1!_!Bdt5+w6|+$3rxN^N4*dwDRiq(^jl}F{TV%2cO0665v2D~dT2!dA zYiRVxibYvFD7At#svzV(z{! zFF?@6$j5?%Z2-m{Gw&#f4&S%?^YEsSAv4{l$0P!Ry*H=fv1-MaOK`x`R?0Ycep(|Q zj6)S&v*kg7Bh1erp0hGsk3b`cF6TYjj7ST5KYoa6kq87u)C zigs_V2|xkDlp?(pQL%#_8Xm>B_9|6n;Hmae|NOl;hJ2hut(_PHKn@saalEcg#Lx!F z?aFQzFI2XRHd2~w1Vqlu#4Y-jwOeP=J0$UpR2&pkfr|gU(P@<|^nhXyVHEqIi!-j_?}X^}y!A)+Q+LJs=;Kj!JXrp?<_}2yio1`SeqOAS zM2kL#ZRX`~9L60T^0K_m6}G*I+vgO;8)GtaZ_dtEyqVXOvsI)BCwVJOt0>1QvGy^^y^KT)(-Gst?hpeRB{!eAG19w0fq>_@~KM;E~o&&GJYGH(94yy91zl{KBD zAt))bb`DMcdYieMUL~@gX#VGqSL;fRCJIeU(a0TgqU13mmU+Q8=Ck6?*>gPQ@_;V& zOg^(VmA#-k@H*97MTgf$ojv-+=VMw#Tk|NleU3|Jpd-ni#FAZl3w+z zhFYci@md7RJ9Ve#AF%$APvV>85XL@W3Mxxpzg?hV2)~`oCI^;M(RoX{V_vq5%vz;s z9lr_#Q^fZ6hp}rFzXI8hbTKN_>x@Z`(&nHMjfSs@mP9YaKO5A#eWPWhOHnJOw5$csnKa zpGwH;RPwm(&~+CHmUUbaM<&Ki^YZLda8Oe31~S-dx~tA)G2QtFE|g~zpQXN^HZ7mWlV z1pVUyilFlj_7}?R@{MC&buUdB9_AXgW&7&w!jy}QF3Z@|rpxxdj9_rH+L?4{Ru?7` zQx~)x&Bm^%q8)RWM0X#=B@jqT9g)v#7P0wDYir2Ok(O}C&wA_Tmsue>UYXNwVMkT* z48{JOrlWJ3qo?ULq%LVGEQn&QwBIt;(E6HmU{%?I0pxc?$sWmNDO@$9iu(FHQh5zM z=TMO9Nz@&n1P;-ww7NKhCeLY9=6KZW8_WW&LKT0>pF3?sql$y+u^a2iBXiJR&!2^x zJMvXa13+eY1@%)$M|5->OnLkd+O6rw;9Rz+ljebzV3FouT9i41{_}s3$qzLCW6~Yv9y&iDsHEI zH->hc80NBtdDf@x-Kto)Sl;GvI&ASERmR?fk8+0T^Gakkh8T`zIc$D&%FDsPCYAdF zvi83d($qq5Ll4`(XB|mk(y|N|ga`sTjg0%?6vHdx;94?5~W&~0sB z-tAF~R2V=`On}UQ?}JGFh79R-x3FgRo(``B#&W;|+~<&}5X?0SL0ko{K$^4-j-A5{ z!*%0mF0UGN{Ub7ktFMbCPkoKWxx&Xlz?6flxptUW{i*gGSyWH@=Agk#aogLi;kR>ouK^Fthgum(VipjficWhKw_Y{1ffeKzX;X)aRI?a7OcwuO)GiWJpyvJgj z3q>|T+Cv;=S}St~HrGNf87(v-)&Fzwp#Rh++L{97?t0i)Q@?$g&ULdN++0Q`W~98a z59b@qmvh4f-rBmlJ5FHe%y$FNN;^whd%!dohs?_Rc~Gklp~YKcsQwbbYHyF#Mn9)^)t{)>CJYR35hG-zBCS%8@<(JK# z7H1w=;*>H|#)XUw`c=2CsUUW<0xJ()p7%XRmY+P~p{YI|_X(F(64W#|n)?}kUx^uZ z+gO)>+#VpePuG5o>o4R(B8awJl_v=zsAT{f z)PP+o1-kcB@_}N4_`&)43Zp}fQZPY=Z`u?^!|STv|1eU8IjFFC_&z(DaA1We)v8Oa zXLNkge9i4lFwW|=s<+1lBnB#qx|D0Lk#kgb^8|v*4F)_UX@tC*x^w$eItf%UV2b4| zN!c(8hzWwqB^Sl+FKy=bW8uZbTZzEQaqy(ZhLe@A2hW%1!@@pMn-fcs3-O!7%-*ZP zFb@Ptw!`kCS}yh9NUN{>9{=&HeC1dBM}MAh%r!_!Ir-u0DrGBO{YuLTF^LzBDJL_M zEYbNu@woki8}SF1W6S{8l9{KI4z^SK(mT-9bwpQ^F^&kZFS9iyt3IA<%1%G!3v|88 z1BW1Tf#E5rIj}|<`zO&dqU&i?2k*;tPno5x08re!K&|YCpIEVCNwUI7J%V^gH3P$^ z5_xH}P_59zK{NIZjA5+{0g5-tGcaIA2HbsX#xF`oPV(Pnl93L6?Jks!Wu*g3(G&^S z>)J?d1K*$aUh;vkNgT0}aNIoKwJ-*4O4wwF+m#Onc$IAKQ;)`-QWL3kjxY8dv3}*N zi){HrMMzLg)s;w?^4`%a2pokxF{%9X6VN*g#Cp9_`GY)RldCJr^A)gNTk^El?TU?6 zWq7*M;plh|TmL(eE8%h_jqtgC1RQf zd)5?a`%VF$OKZ_1;`edDX-7p zq+5z1=A`NCP5;ntpBTUC5^E#DCHk`Y9M8ASLH?^HnY{h7-t?Dm;U~Ixze>BjKdv=b zjJzfN#rI+P1w~L^*eXeTEQyZ30VY2Rj^o@okWEohWl8gA|JQ~rGP{EJOwVN#M{@~s zL>ur|`V*p0X7FY=aybz2chhByWES`TiWw~KNFq4B)Lz=jm5#SD@xNqaK@{qw0eO^L zD9qu5aptd%@2NJi#TIaUB}|H7WfqY|^541vO50lAZy%#|($p5{-Y|ME1ZQaA@Da$! zuYWQkGglAZf@Qr&Y5L-S2);BYSEXQt<)Jf+0Yp-a4e`pV@53eGw-t{$a=z^K8++FZ z2DPg*h_cC}%(3H+YYmWF6bcnw@*D_(-jm7pyUq)dc*Xy)gW;BjI5T_(Zc2Qp{HMAE zn;hem;JL!qB6_ttY z`f0$dNp}a?iDiWA*^K;U6z5X&A z5)oJv8jmLq{Dp30xm~KgC{aHJR7C2%fN1{>!$3aeWJmF{gHx=Uh1)xNk8>8E5Uc!d zL)%w!FSUuAjsQ7UL8PTA6n}1$X|`#rNDcf_=^>QEq}&cOx(UhN1`N)Z^jLh>;{JYE zFFh@g*oEyN3-(>D)P45OmGdH^C<|a}<~cNhS;IN;kj0mq-JheU!K+$DRDtz0jY;0k zwg$CFj3EE_6b7A%KZ^g7KQ7{hPsR3c$sCZJ2J+{0DndY>K&M(nR|+7(AinK@@uwLD zGn1LonmS{ik1Zj-?+{<}r7lSjsdc?W!^4HSfpJiLllcU$m+cSc0K#B$|l1BH&j$`JtPti9BK1VyacVRR}%_>z0sfG}$BEeVil^fHR`8 zX^H3%@QQU`b<5K}9X@$(fZbUD?R_D@gPfvb1G7BSyJ`s2fibdgu|Ix;)BIcBf8UH| zD%i&5?afy5R7~WU6>h-{jfx?bCZ$`dItTf!HEH$+PvH4}+_{4cmxKgGaDE-~eJBt? ztI1<`!4ps?N+T991~OyE8Pn=>m~p2yN#Jz5J$K)_yjU|e`F%eF{+fV$Rv)|O7eSdz=O!<|4JOH050uyD)^I(q z?Be4VF*tjfm4V9lN1ZWMueY%$H7E3YOUY1Ad(ckIzj@dmCBPk2G9Fu^;^QvjH{9@b zLjJPUSv(o;Z_e}P(3o8zKUAo?Ae6^I^TEpJ!Y{&gMhTV#HX?JQDpbrY-A%*gD6n@{ zYQlQ$Ww;(xVwOT?JTq1IOx@pm0&a_+B*zqwO<*Z~?__`R6_KL|=Av`53R`J|G4Tja zQ4gu&lX7pNS_x0`E}f$Cz>|SKgNSy`xFei5+I=+TDMt11xkH?ap?fgSU`jnc;m=Sb z|4p;-vF~;&*Y^-R){vtfg+*3(!^u9#g|kfqKOE~kjFz8r3lfgScdvM3AE zN3-|+k&k&)A?@E7_`bKPK?Jvw0d<=pX8iEU1}od_sq@s|Q6XQWBguDMof7G^0t^C- z#-x8pAr(_Wi6=&g2x=?|^;r*D5Unb&9QySqNT7*dvA_T!BEokHxe)B=2+Mxxl$i0pg$^8|wf%HXHmnRD753V8~DP`f@v+w^L)sonBOYGVyD z1bkL)c)HPG7YggrMw@U%V%rPHRt4))U+=WS>S@1WCkhO)DDKYRmfqI6`C^r>UkkL0 z$vJnSfIXuz38J$JCx+(hu4gg6{;AB)(eNs=AJ1kmcWl+u8!}A?vc*_CYER>vn~)(x z72%5E1uR!)_0AVt-xePsA0OsX1WO1=5@ho9csBp)@|B3{f7`?Qt86s2fwH9Oz1p@f zGcJMnVB1g#XHlwIrGeF}2m8W$3689vO4(E0Cp>*qV+v#j`j9`wILRfZzFX#?c_XC1 zP_SAfwe2tIoEm}y>@ZASFyc!6()p6DPS9~_=H4e}B!OQ)! z!4}wbp>)s&Jn@m43`bcWfsKigl1lz7AL$qa>)d?HBaIp97U}zB!wZmpB4uBXx#u>nn5kzbkJH%+C*uUhAr3l4#W#WyeNfa-h~uhlY55f19O;g7Ik{0d=%r zrpd#x^&kwIgu;{+Hvr;dAq&*ubeTT%S0 zpSNrMaevW*@55XD)`Euc<`uj99T13IBNj;Xm_)0-M3>|EGJ+vwzViIu8m6zu@7qQ~ zQxBsBx#w>(t2yB>@LwHdi{-U%ebT-i8}mpE4!-h3_{Xp1l^<8a8<`B#-fag9%{BPH zqOmJ=-U1M0Z_ZySyPn9m?C%%MPW3ts$=pG5G|s}$sZ2^yj{YSKA+DB_aGAq0{6GN) z1D%bh#o&_C9RF}kxcA#+QhDIATU6=a8h=r3y`4R-J}uYe04u?u&Q;SY5=wag0^-rU zB(#UQ@Ze&FdWd$3957grgb};U{;l0=TAI6eq$fD^ujUN;oMEyN!z}_W+4GPWp;Z#M zs8d|0##?jpZOq-fgq+kzCeg%3w+~x8GR3@rT+5KYYjrGMfa7bToO%2bNBt9OYWC+wJeNL;HzjN$!a!=I5O`-Y>OE;z;aSqO{bIk&tdmE9HWHSj zc_!2zoHJ>fJw)YLa!L9v#(3eqp4A14VAx`#6YB2-O8eD~rf5(#E2lSBvj?Y#RbG8OE&5?od z+UcO|$P$X*W42KxeI&0hXMq z$bsnXY4}wIiEejBnM3J|=g{yS&9t|u^Rvb7mdO+gR7SqbC?)(-`De8}>sFG=$5Il~ zB2MKwbjc@b#J!cvP(E($pNz*s z-9$L#+9WaQc5f;y`}n+)X|TNIYzEao-+wj&`xqEdUmG~FzLH}m+}fTZNH3%}3}yT7 zlYx%8^*)DDEcE3Y6AfC2976o7%_9A?+4fhP-G=)V1V(a9oHs2FuDgd!4t_k%f2Z{2 zvtq5xX?QYHmC|}MmWGW236ofKXqCCA)3;%@2=(2<@7r)^38Cb|5TG+Y)gqtY8R;}O zQvsw&YNZ{&NVd4kKum+$A!aD9GG1czdr#NP7FM82y;9bn5rK5^XsUa)O3Dw6rKac& z*{uLZM=AAGf*@u@5dz-Gk-FslbuKnR`q*;6<}q|A2l^lA;f>nCXvF%iA?;zq5zBR| zQF{7hnuxVQ{AUVWRYsR5q`)vsl%NS#AKL|#r~?aY!-jn@is9i5*v)?b&9|=go9?v!`HyTdINrHug0C zMiI^r?8~~kwPv8`=={nL`5(WISAN0X8rlz?$GAOm%w<~}v&Id@cWrf(T^LjwDvpGN zqY#413wIUlHIu*+cO8XP?5^K}p{^S6(M;A#`+`J=^*g}heyYrNU>s@(QzQ_+=zUAy z5{~Z&-|SIo!;T5H1BTvA$t*W3p|nw-GYPRvIOns?kFcTGoiUHiSb+l0;t)*jh$jByZd!lpn)*vevj!p z+U&*|{FO`vuYF+jTZqFB^?FJmG|I3Z4lEtYy3uYX7hx{=uDo6V0T!1tNWL!lkFftx znuj`cv^M;?R(h+yNd(1PFK{+NXf5&qjpOV2oA974{D~u>nE2S&g^u}_0X`9nAW?T$ zl(30Rl)`|;{*@ofKYpFB{H#>J>4@|E`TJ?@>^B0rRcs(fpGP4Kx!Fv#Y$hJ--InN7 z7S@-uLj|*d@6LPVDLbprepLJd#~K6=-sp}4v%uW!1lwu@s7&?zvy z2ELJu-Qo0s%1=7uYf36L#NU6Kt-?=_o=fMEMGcKbo&Q&r&WW&v4kRoR1c)q&HImSa z9~gl+>0^v2 zHQD9n`VJ(vo5V6A)Ah(<^cZ{{?IuGVc8ebSU-n^rn}1hx{$yAt^bK8YQ%2o!ab(lEMD5btZ^O=G_$_8pHQq+^UE@;#lHr)ZnX+m`ss5q8L%s6C)P@j|{{F4acb z170cJo89`1gm+vp#?E$CoUtC?NmK3Df(B)@{(&saVsHex>rde@tvP>(`bYiEDgV_iGNC4Y^DG=y z4B@`%hqT_YLQyb;Jp!00dnuDW(Kl(9ajeqXipiqj5yCz2chqI zP%yKe5D-m2QaM2)$ROc=P+f-U6Sv7k3aNI5n);Kl30YPI$Z60Vwu@)U?b z7!M55bD7l_hr$?N{O>tZ5I5}y?S4Jhn;kpjfDmvyvoyO4A%>fNk zm7b3nr6!Ep!-8?C*lsz^6c%y$LP$Y5IWEqH_37 z%pU+bhU}(4dFxBDUpYQw5c$#HK1Lg~ebG(c^Y@RfK`xlWoB34ODMkAQ?`k?By+_lS zGX^<_P9)&$+Op$1BEaw+@Gi|o@N5~UH*28boY^Cp{~?>lImC4>B+gTP2j2yq=6duI z$F==~K;Q7vC|#APg?#>k+bu?GveX|*GV@^`$T<;^mOb=k2=58cf4elHfPQV@`bk(ra}Go@`l!z$5X_+n9>2hL zes%lpZ{Q`|h|2ck2f1WlH6~NOwkrPd7iPeen;zNogseh2oP=#BwI=c-rZw!)6Y^T>8_c4nU~nd~+MPAMIUSPz1H|LZct_~-0? zy*fKQC<}z4C|LNk2J}fvGy3xF1dB{hq*gS=3f5S|n|b0Rnta0zcQ##|N zmii1BY}CY4+9M2l3-)@{ z5p5T*z<)h>!!BC^QMm8eE=(HxbEyTfBFWIewHv&IJS)fzM6tF1sS#rSKTe8p*shQ5vO=7A2Y;FxC$ zu3*XLwLD2+0M5=A#=<8;{@b(?#_;>IT6(RYP3#!^-R{K3LN=177JH@P{`Jf(x#!m0 zhcK{kJVjz+(=(oIXTmy8iNa3#5HB4hV4n}X-L!xrA}4NmQf{2(0(sq^MHt_Sat$4` zYx?2tN$y(Wee@ZB7FE(KYX5;a^gM~2Z?5)RxA3cx_LQ69L#H_P_CTHPx6I-|1U&Ls%tYEnaR@~lyGBXeb z^6WsET(E_ASc-XeD}ygc0A778{DU}}HV;nj-V|y%AB?Ztj}uxV2miy@_lmEpTzUG= z{PzQ+*dGJd3Pc29W&ZjP2Ldnpq>~-aji-o}y`zd*zjCv--nRy(b@_xe{LLe%fEqgX ztuDu6l`H|mRGga6hbK6snUK7_6d$#&E@7ryr^lIzx;W`3tl6l#+vvU$gUfRipQq_v z80}@~*cfxAgl7nbV0Q0O=NLrm1?YFO4v>^c>cfkt*S8iL8dr{>87Vm*AFet}F}{&l zlb}7Z8E0T_v$<*#z91#8R_^I0^HE!C&Y?&)&c{ML$%D`FJ6I{^txqF6JYR1Nthz+)binVmaJMQ|6h7M& z3BKn7d$w8WdqUHnRm0Yov-|Kfk|?FjPkdDB85Bfcx%9d3`TVRLWNcqMOF@_oT~RQK zC;Leo$Z2#L^*6@{&P#u4CaTk^#`4Nal)>*(kn?7ur&$VZfc_n~_JPIYD6G;e3v^|N zrOqNfVsUVAbI?bGv~vwvgHWOfl9Okao$&JAh(Zf?!)rYVPiBoC{FH}xiAfW><5hZw zN{J15gbQU+%UJvIRu?yJr%}jqb#*B`h*C@~rsxaNII#V2XohQ`NOF|LGjwz<_Du8e zPB+Ciw}DwSM)GZIKYv_Eh2dR*DQ)~0G*ZwZ6`qtdbTUk|CvEi2lc4tA&%L@_XONU}Ovy@_&3nH)Nu^*4b0cYPz?)}@4JGPv!)3nmnd#zF~)YN5~Gs1IZqZ7vTc1) z1mUsyQ;;iuu`o5zXX_qrA*X+_G9&*@Rxe-QZK6ImCXRnfL#XVWDOST2dlnMLT8QG& z*bmYO2hI9OJ90v7;G2LN#Pa-y=yAIODo%!kfAV)*2L29)6q3%l-s6&$riqA;m&-}-NuTZ<+qB_T8Sfqmzm3l%t{@VmgnBecG#R{<|uF|rRVEks-Bhem%{Qr<>FLuqk{2S(|VL$2SWS3 zP*^IUP!}+#f%gT$QYPt;Ix|P17S|Fa2u&?`Ry?MwO|L^8^UKi@OC-E*jVHbUw~g`qD(FbOg7Y8 zpsp6vI8pc)oRpVoZOmtXf5oaaw#2ns4#zQmM3?B43nD|r{YP==m7?#c7hCSyNqzEy zcUHj7+fkF^;3zWd=Z7SnP@*ckbqf`)MwFg}T1Uoy-U}Br*RK$yyoe)FUg`BTsoY;= zir2s^Lx|Q-@#}ER=tBd)Nj39x#ZK=>%#Upj?9OF%|N(~(NP4KHLja|s!iX0%1dUk&hP$%aZQ@$SdTr9s=VGd5_k9! zDo9uj)-9yHli`TPFdjpuL^bLHMr$AggvBB|Ir|Y9?O>n|avOU8XN*34V00I1fc3hx zr-1$?l(6#}htss;kCGtu(u9(Liabu5&9A4Lv6=qrKPGa*9rWN8h+XbcBH~G6S0N}f zQ8yoSOV<1JS$?OY(-b_|_F$&7`D<7(iuqu!>0DmDy|ScK8Y9seSgwVL_YdRnE5>hB zk_Ps9Ox5DQVm;DVluuH#1*>dK3;Fo1dC`eK-{SdaUD?v?{!%2*#Y)VLzVN`9+qH6b zZ!yK^Fe7esb}T^=l(cjN1P1AE^dc{q9P+_;V)J5*Z_5O;oe_ZPGxnVOMX@9I|l1Z>&eIu z0^&z$9X>UUs?-{&P1m^*i3pP|4wgudh;lTR(1jZ^C|ea%vEthLk&TsSDNgYDQ@y7A z(=|r}fH46i36&uf{yjd<--@IG2&d9cP$aN~%am z6LtqxDgx0CVd^^-WV6j_+VU*zd;EWJM_%EMAU>*22KG!>D?ME~@<0(q31><@bs)41 zURWp}F2+2gnWQ>zGG}yQ1`+%urr*J7?Zuj0^+IN0m;Crfs9Fq2T$&kUTdZyJOc3%} zU@5cg&~!0W|NSdezheZwJn7n;g7MQ<;>GW9=3!GK7ptq);uvcT-`e%4ybR{i_ z~CMP51e;H`}-E3G(sv0!I)c-$VG z#avI`_uZTqmZagTkRww|0KOtqO-)2zfuYy9Eg#xb7z9rV^LB?Bq0=~%QQ|6~!?3)n zb%n@>)g`g_P^nLYnA0>jWw}NHtrqNM`oowkqxkFV8Er5q1$DrHxDzQVLEnU?pFeIL zJJp+#LrpEye*M!F*U&rH?&3T_#wh->H7C-|m`? z4p7kGmZ6yc5CX*Q1_QSx!|&T zXNpfrQC{nWZQk}9s;)-@Midu%OHZ<(Z}wE!87r%?myUk((9;b$to#%`r5%%lmI076 zm`1!+5JeBUN#n!N4B*}wrJJ8CJ>!+I959mMoWe#*H+z#&%Sy^+jYBXq_$e|lEPUl6 z$&``%(DlM*Iv&E^5(y~H!lCG?E7|Df`8E;a6^kP{*YPW|G8S~PhU6ftDv7E0S_G+P z^yT9q=(KXk!GB6U`G6^>*L>uJF-eYWp~inRfyckaH;2 zQ`9(oG~?y~v2Y@$minF2CjA$3UL4CXHf~xaj^?d-#R|qaeq0)9ujKj9qu|$oc#NB1 zFU{o!TkgylSxfx6N@+PaUCI8Zo#B7~fP{gKoYms)G=uUEmF^RYng-1eIP!Bb71n6< z{-YEGfO4YN?YH`ziWLk)dHR41zT7;ND@#;$e##w$=#8hW?;Z(dY*iDN3L=|{hZx3Bn*cl40_4pzd zsvKPkPz2X3322LU;as)I-+@*ilC?A8t3hu+sLhr#{t0l!xm%=JoNqCYv6blhhC5vx zWF`KN0j=)Dv#DzBA!JP$l8iC}jBLbOe_7D&ySY8&SW9br_;s~){zWT`*OB9<(Ok-WvKTf7n>3=Cko+U`}HB#xocgt|E%n~ z4)h5mDYQ>QR6B`EU#?kcd+KSJf*S6ACcY=y6`#9yD&?YJ5;%RWV``SYiXMnPZ!>7GiVDK;0Z6Le z+LDj4SR*hj({_?4&|=zt$@@l`eo8vVRZTHoVz7a6Igsm;O-Tr%7wMmEpK2Etkb9F~ zWd6G%iwJ&RyCV`P<%J-UW%Kd{AgOa~<28n03Et1yhqb_Yz4&Dlt@Y^mpcD*sB%R`q z=N5&E)3leB2x$kEanUp|VuRo6`)<~!NMZpI%a25wM$o7KFT?nYRXqxAQ*nBY^@bul z)1Bpw#$y>?yd)XQTnWZjpx0`FU-v?bIr<6`H61OFvAQ{1$M1l3-WM}{39b)E$<>+v z*Dwoth%oE0fE zxaXyG+8?~(CL>hf`7lMs)zxR?=2W0oB2TeE80Sn0X^qM>zrE&=P$&e)6Ov*}nfCtQ ze@p5f`oB*HYot>XILno|^d?$WCx^|pSLz^%%`cySt32?ScT(XBn9DoVd1m^ow%AA) z@Zb}2{Ha`fM|T_9MG>8UtNFJhQC%WoGhoS&aRL*15PSWrU`ElXT%0)n`5eF5-lU}g z_&Nq@y@9)DW=(KA(TBQv-s8Rsep+O(*#gyd2Com**`dz&tFtH+!Cm8D{@5&KZBGZ^ zzP=~q%AMCP5(yjKqXr%nlloJlqmfrW(3FWH4q+f~C#A#QldS7`hZ*X)f z@ys~WqGY2F;ACv+Ex^P20k7pMmG@>|;Ub4$z~ z{1R%b*Q7kBfTS4F8QEXD!LC0RRhstpaaq#Kvf%Fi>>?tbK^`Z|_5D9t5Bw!JCknlJ L6G3MG_bdHh{m31n delta 66634 zcmXV&g;&)7)5R%afu%z_1Vp;KmhSFuq&p>+?(Rlfx{;QW?rxCol9YP($MfY6;Ba1N z=FYtD+z;cA@Z*p0@p3TbQ3(o^-~dX3TTgyk;YRy7HKI6;P@LX?W(FO(`7fpuvQlh( zIN36uAO@<&RL@3zyabghCap2A+&0ey^`YU|_BG!-BOu6$k#7Xr?vKz2s`{?0HkRnM zX;%Q!`2&ydgGW7;_k2v+xXIhsX3#pIb~h18=mq&HRwO5vsjj^ZCVzhjY$>1(1Q~qx z!9~bfFDK*2X-{QAfc}yVgR@;s-55r7$V1Sq^~g0ajbLW@tzyXeH2*wU)aXufUcl)$ z_JN}WNk$V)b~O;Rcb-~1ugRH-iH6hk%`{bn$22IJP(8&TFNO|mSd{12e70N`O5f}O zSFwdNJiK2;Z)Q4d=D8FDX!GLCLNBo6N$V+v&TIGxV-7?1Q0iNzwDg^%p1P8H)PI$f zac+A3Qfw4MfGfq-N{x##i5!azrXnh-3yu;D72hfAQ}l=8k?wqJ%eS<(FzdHlh%=pr z>l2lyl~X(qHk5>3~=(HzTbC)}YD&qV5O)VGQ<-$JD9Tmvy+OS_a-ouTwb8&p{BAW)Tzd=Pid0k(< z^?uX}bx{c{*JzRV~0)j~S%H@1Sh9~;OS}n3FU~zdCa9ECADDq_bb{PVtgC`qo zdPQ@;QwTfTsH@I&)=to1+3n5vfARvfK*6fV35(PvkpoM~U>_#cBIf)PG+>D6_pSpv zQ0rR-nKcu)y~!Afq(whezJsfbN}7hJ1S7LR`(Aq4?xeKsD22BIAk z4HL4&kZXD`8vR6o(=;dllhqLZ}ft2;2}n;mr&x8U%v$m866*djGw$qGgh2 z^?mJ?#0wC^7?55y?TxH6($8I?k0Qa|{r;E&H44tg)bfc{f5u>7Q4w=x1UT02Npo~jlDvcKOp-jZe^t&-0FpKnbsPc77Sc# z4xx1VC!;0SW*KaC0?+6SzV`+n|ONecYauju2;dvM$kTbYp#fCb;2gn zCi(c#=T(M<-2Mn>q+0L%s{iBn;ho>6=xw#`ShtkCKSmGxa$y6$iMn#p>`q}B@J{z3+sQyF z&MZ9@#i;-7)_ddDL?t1iP=XEpK-LpBfUF;6p$m1R*xN$nT$|=JFjx@^w+{+sLV_#z zBy{>-Cgs?hXZ>prD>jT6IQ%{G@hyHAq(S%~DmWmB?+kjgzQ_)239 z;Mw-p;zR0csl6Go3Qsv9Ws)7t*dKJ8OGp?KLBa{|XwjLfkErc0?o0VL>XLN*HxPri($K{%CZ~^tf|0;o|Z$b^ru@xbH}J zlbsI)C4*Z7%ZCgeY2bv@Xf%{}q^(7^hD}5!5H?y2@(`g8>F8E@cYZ)$XnXb|ihN}< z|DK$-C5UH#4-g9d+0W}YxAqRsUVAmvUkL_bR)@vXlNTL38;^DEoaBT!s}OS~E$5N? z9b8>h5;F!Rm|SZFD}^AA4L#*_lLQ-2Q)KNt!qSk^V9WoGhv!R%MYBXzwT+$iWduVJ z1;7Xtmi4BcBv7$YZ=_ z1q%mUHRqF6OqlHzTvG$>9XlG)jl3ub@8cD=MaF@?$hYHXPKtvhK2OfLDoYH0w~!gz z7b>Pxfnw@~M?}|A6;g2b%5=c9%jqr|8BF2T$0HYl zT0;TE06|*Q>m$DJ;L;TtZEI<9d?|6FeS^z!J`M~GI#`DYoxuB$i{xr6d%a6t{eM!2 z_%3zwiriq#FKI=1LbIF~;Yh}rc)E0(>=$w6l+Vcley%WtbrO@tDEeW@*c?utq(y}(s5aa` zKq0S(rCk9x^|vM6kDBs3h;bt-{-{icARNO*;tcH(G!6p!JUB9QY-LYijQ zy$1p7>r7`Lt?-@6Zw42jhQFG&STPmh(u51_QCrGdAkN^IoDoLJZyW*_K+tkKx&DVo z9>SKmoIx_B*oz~kJkM&%cs>GmybW1AZC4ztIE?b!UpfHwza*9gtyQ-5$TX4Y?7sop z%N>EPT5*=|{Q8CTpzQVs?eQ7}rLaEcqVxKqpk$dOY@E<>(4u7;mB(*>4C zzMS8|XtYgc?8O2>6sUh9mlv2OCd94}`YOlDkEf#QRj(7Oqu{|@gYQVv<5$ZIrCFEWp0qL zC@9P;K*(I#;N+xuYFE@fv(xp9aMgGQP31RMCJjCMqzF1#`q_Os%d>LB3j`!>{lI2$ zeHwH;^ba!c!o$BI3veAAD57q+5%z(TXl;%^V;NI=e+tyM>v>Nl39pa?{=Y&PFV3zrc!uvbZ$H6P?kz}^kk)3$0#1_J2rCp3qK zu;bp#?;doE$cPe0i~ggc$cl8BiBgN4Qjd^GL@wqD!|m*;@Ll(sqLO^@DZ!CIy|*E` zB_d8eXJ)w;)=Ss#;05sIRb8zbS$-)uU}fTjV>3oJFLazhfYLcofgd zF%qdHbOr)JJd{#FY(G?0=dZ?a{6!b%S)0{+e{n2QO4U=JBME3ZCL1M?JpXjJk~q)C zB0j^(A7(08e?7sdwTygK+yV1{g)F#5S6L2JYj9=Ag%|Oe%$Vju3{>lZIX~0ge}CU- zne~2CYnTI0uqtamCdKU_k5wj$BRZDr+`lr_XZ-Df>kdf;f_x^Q7RDmkLbgVEH;$*8 zCFlNqT&kJ+xZ)?2wd{pKBEvizM$pJ(OngzaeF!qqQWcYlpp>Pf2?ij}7X6{3ZV!0} zXJV@M>LkCVzatTQP}F@9Of@c}G_z@xa|b22Wgaz5@eZyzDk+YT5*!Q0{F9jekI3oJ zWyM(C>mNu|g&)_p!8@3yR*e(K+&nGL4yqt#g`yPgfw!OYrRbm{&Dmu6Uj8qA9}?7D zrXmpZHoBR$&V2h>e{ismBTz>e<8q%U9kJgw>I3sw7sx;h2RijY8jk{TMKYxaR0;R{QYb z1-gBsS4iNiJ+ERz*|K?Z*r_xFc7Mnt_GhVE!UZuP2*lH7mp*pzo5e-jj;peU;j09i z=4Ci*jo6ohM*e_1F2VR+@W7~p^e$JD{EBJHIs6tYOiag%D#C1Mh!v&eM3S=k53_;*iyxB8sPh!hL_S?jLI)kM@sfET}vc-azozcL-tIA8KI$! z$e-uP4pJ~;7&r02ifLRx(BZRTmxr)y=?q=JlUkY+AY6-_4>YAZwM~dNzS9)FhghQIU_D^pCSf|&Nj&~BN?{)Xxl+6k- z&v7)G51ya&Gzn1^_p}q4X4dh0SK(4jt&V$08_@trT z5JXnw1^#H0Zor)hzC!%_;S2gh=_pBhQiM zAB1W+-J!UGA8dMoph70BhdI~1eN`mJJ)Z)^4UxG%&wpd8pGnB3{AKTJx*rR6aP4H& z8<0=NjW@5c6FxIwb}*>IY_4m=13X|pueNkxc_H@DMk%H>Q!2Jo(jYoU~Q%@{c{rV zO;gg_aWWUwQu`9F-zg^@?V=Ex;z+JNzxigO2D8KPbX_>VQ?Hspzs)R+C@{ecdW63Mh z2|Ssy)lmC|HuI0>eteC_`-t)*xnA?;bXc= zvT1-wk6$^NJif$Lx(wc*;=>=EWPsMLrU%$y&l0Zw(de1>IC}=>072afm`fa~i^(Hn z4qbK1rGG-V|5%K%#%db7nPbPBRawi0%|&XT8V8$SD3i{)Y~qh=T=wHfv|$0Q&KVHF z`)H7N6`yf$ekcL;C&K0fL6>wJfspmv4;hLYv$B(ugB2}RXFCsItfTFKS_->k5{&Hz z63ZZal7kzTQ1&?v`e7&)d?4udh~5fnevb0|aDM0ZE!y>KkLgd)DA)o-yqT_ zu$POpTqayaA^5P%feCqqKuo;$sHAf$N^k+}lSL+lRp~%=?Ju;y1Fi=z45my3dXrRW zQuCNEV9>RYqHMTIRp70RZ+~uq{p?XU_uG=23KZZ6J$=ML$Quw8pgp?+6AV(Q1_u@X zj7^wBJ`a6(Js?EYwI!mZKqGDz1#%$%!1*Mn%(nzu&m&{Jk5U=h7h5!XZh#H71izK} z06}Bt6lm*uC&#<_EE`uX?iSSRr7M%QOUWGs%T#%~6|#P=Oq|TuaWHl$OM540fgTXZwRcnApQ?Eok9giaALu=k_^;2VLQ_n z@tfd_;-YyPr{Hkjx2u0pCgSj_ZlA6FgLUY-EKEN;$nd0*rqWH-Bh|x!X@6isOekEH zGUCfDA2$hjz-nihb)^V}isoU9>?G?jfmGJbf@rtaV)&KDbwe#e+U6(ox>A7`b;}m9 zCZ!s*2isXEh*sh#6dyKrOV1D1o0a$W-nS&+sW{*dEW;g?ryhXYoxuo4A5`JLK2Eq_ z;p8G*rvd7)kKtdb(*prV%<&^+mq6uraQS}hzg!L%vhHHeo~X`S)i}v7>z*IRC)^va zX?oBOcTF#3*-!(_#L1Y(FAb7bCJ)^CQ;Xt(AT*H!o3os@hs;g%hlJzjXp9O$BK07) zm&dP1#nZpjTeFy|{|Pf&ve zVW9h6-$Wb6900q~RWYSvNb0QBI%G4$K3Br3EwxUw;}GPM0 z(dOHpeU{)6p>waEB8x@s-c<;Ki5t;z5;;l261VxVu;^+}Z+>3VZ7AZYP%IM%z|M@o>b+_aka zczqupjnyhnc@z}k|Mpf^0r%-V9K7280dfEt^AyRR*}eN~P4XcoQ~d@+mBd*OyOt4g z{330~64+1fUjv_TE6f~m-VA*>Lj3bugyb0$-v5OSi6Jv8hu0Far!V+<`duC<83dK+ zurz$Twx@=?Fkg?GzbjdHDp4#Q%NE~@ms#I+t#?0WG zcK=s+q{l8_dC+YS4(bE<1s4>DtVWAqf%=to#TQH*2=@$!X-;g=-*M6jQw;6_YQML+)yo6$LBJ!?%~J0SMMss|zKKQpQ2 zRWD}B6pz^BUqI0Dktp>xh6Bm?RWcffD9FAjudSAHKdht88<}D|v%rRY;77sExsV{o zE?Pz>8uu`215M+BPXk8P(!M=#d)DaK8|7kP)H_GJ0Sw>Me z!ED|SzV3>jX`ADy&Kb~y1%XT2Pug13gRl+74bMa1u9a&$4Tz2UQ+-H`C6WI$QW#DK zPpbGyigf z`rBFftRt|vg=MjhiX~PX$dbjVdm4vxPfppi63%aVjg@&0XoJ|99g1ln{nmuuwUOVi zS-b9Ehu4I^-vM0T1{w^;`}tkjzr1lC_}>n{u3PuL-J$8#$NTl^eNw7?Lpa06cd_DF ze8(5oui9C2U}bT4B2XAkTu?MhH9iE5;3B(ZcC~@>hbM^)iyX1gvFu`z*zOZXs$VL+Z3sBXJWAYwh z%nvis`*T9HK5SK|X-dT33C8llOtVZx&G>uLthjC!SQ}~Gkv|)W4tF$~ zSk>s&I{X=zp1Ti8V9dZIr2li0TS8`w=8me%_iCTj(whpd;a zBI)2vGjt0JO0KNOQI5|Q_UjsyX2~iyd0jj2FSFlKNtL{m;1gCv@P?vjvpS9JagLCL zS}_U#9wEVun(ZK!6i5*#Ks!LY0vH&oNnrnLelK2%NMt-}wasoQ zp0Qxg7_Tn|ya^A3d?(1g9Wki^C zhoS0|PnSx*bt%<(6ww)kis}9|EV;T!Vs>t!VR}pl0Kq3WrOA8z?{&BH$C*MLw`V%S zE-jjHiBG?#4^4Vuv1i?{ZbUSB;MU@O&JIK+{oU7gVMYO)_k#1`=vGH0Xssl+*7_Ce zqx;bzU=9HdR}3hcN2GPIqWP|Oga7p_$$P)DOQ#Q-r`i@`$R+#L0lvnzr6x8P`vBL_ zizqCtZ5IOPD#OJVj}Qyh^!y^7k5s>+^}TH3tV$$9Es^rt#Y83mLHN>9X+mF4^8I&A zz^9LfHr3DV=lw+wcNJ7P*{##^L?yS^dw?h^8hb5X`Fq+**CXR#XZEMfXA_DiJ0q}i ztuka_Z^2{|GnXKNOl}wnvD?E^Q>suUIg1)WeEY7rk>f~#car@&-A zZES(+`h~K+Rg$nL`+Ywi`i~#!J3l8_Bi75+QN-{0zq-0hES#jP_t*@`cE`F?HFGRl zVt?2SICIn4w(_yNVNT!O#Pn?x(xNtjf^?}rr5c-?k$nY%!bRWCqmVDg?fs^r^Qj&O z3b_oPO--gkG}SZa!@uzD&jw5y=D=;R;|lLHI(8DU8Y_kc>tD*Hl%9VgOaaf`)B-`l z6UNY04!%)-mweTWPzp1d0d z&-a&E&y!VZsu~jz1Vtwz_#9A^>AE)0%wye|trTF(%b+{~{R2U3TN8W7;uj(X!!gS7 z*7@41S{k3mJ^NAkXqZHzKH!gtSJ3mV)@a%^C-e_e3l`+K+AAFeco&Wku{FJVa5Fvv z&mMu-Qjy{0DG|&&zv2J*ktIzhkbo&ZVTJyk7toAOsrE5K$#=a-nBBmVMt!~rZfcvv zN1~IEMTC01{n?02h2d*^5pJ(^V`i7(%dvs z<#hw;M1J_vi9MOgq?Cf9xQ9xMtxU@7p^a|qZ+ft8QRbDLxf-t-E|EN$N5K4$8_1d# zMP985uYf^Q?AwNO(YNv^9~Bf3DvU%ZA=+wH1qwcQkU~UHgX(K_8t1Mzs>veq{0P23 zK}B_)-1OMX{Eq_BoCol5egv>z_Y@Y(Xbn<1#xuaqK?xOCj9B|`C+7V3puaC}H z8RHJXlk8ZRM^>~HFEmU~dhT~p%AYy9g*Q%e#>U;m~`)w!4v+o8cA3H{;)%Zxzot?U$yl0Q_Z zdLq)_^8H*McoGaIDq0#ijtffl_d`;Cbj|5%-al!J*RH7uR+Vz62sI&*&tt zO1>)ii;~7(ntHVYhNjPi+CWHS3q zx~ih0{tj+5Dv3mr5`3wdmN7vV^;asw^W2?=VTNMi>@qwaHPo=$SzF*rfDd(`Gy?=P zbYb^9j@a<(TrJ>dcBVLvAR1DT<{B9=!VD4#i|LvfpW^q!leVDf;Z+_G=1o#kJ0qlG z^-@Pp@8l&LHgbE$*&IT5jdx)fzP?3s ze=*>-wMy#R6Waa%0=aaq<#0buIpOBHci$d8mz9@zCG1bPNu6R)hyA?vWWBSVpi%pN zj$#Z1wX{~nk&lO$DE-SJxN_v3F)rg?S^$*hXnxaqs)9*m!a46$nu$?9{!EELRhEzf zA0UXAi=Gk}m z4sI+eiA9maK7 z;djwO>YmfCniejiS_zKfdE7A>7;+zt5z%E*29I}UKX8&ppOs#h(%z)2t60|RxbKR2S z!CpAC&W2toGaD$(8Uyt9^!Lp ziBlFjjpok@sGGK>KRe`Sj>Sy&RIVXWqr(+%gC@byb|*kk;4@ttY=#R)Q3k%oFmw@5 zUR03Nw%}y;m;tl#$Db2*aDAy1y18$$NnKJW;QeLIf36rBJa5T?)i7-C!&Cnth5$)^ z3Ad%l(;5r8L(6uP6F~zV;&;9aDXikaspe*f94oDzuib^KD1}fvZsa;Ny@4IeClo6l zYM6kH{-yz(0tNVYet_h#@Pe2cnt|RK%8@EB;hs{k%I1Ufxul%Yauo#!OF}NdqhF?e7czHp3xUIk{D5%T&(oMv;O5ZV$d}b zTDQZYmQQMYn-yKxssjXVT8WcLtwTo5i#T3XA6Sy>Q3=-oG^Tf-dR+uDN4*)kYlEj&Kb^y)Idm}7i zc8!YZtXymVV8f`bK7Kf3wh)&O(Y_Vw7r>i`{&npxKvLb<$g~0k!QtuVTFnr3C5MR1 zCZ&l?R7AwrMdv-9)Xeo<=ap{y&TtV19x0~>g(BF#Xi>0v5yfLE#WCF+1J0y&pt+)h zGT!<1o5#xjD|b`Dcg$2dAvt-CNMr@;Q}vsZevRFFSPja07rv>eBwuApa4#3>OI_&K zc)TQB=SQ-8SPGRu2@6+;8<;w-W_s40gywv_eihB^QXV(kZ>*KO$_Cx=pou9C+7 zAd{iHav-SQ@gcv_P?#!<$O&PWq5zDmvlfl{s91Tvwh7JSbVeO(4hUg=VGSRlF@trZ z4BP>fi5V*%tP}Qd#z9hfD$Wp7ru9skCtU96;nP%;uXpQhO)JlITv^#OVdbZu&aNOU z_xT>wT$^QKu9rDFDU)ft<}l(RJMrazfxEWhn?Ah*D9EJd6THD z24!-ZY=tLV?=0b?ayDkmSzd%bXt7{>6prsiI}SyBo1Tn{``A?0WRXgh+)MN--%Q# zr$zWhYi1bQ>ONT|pC?84BfYV8$c$Yi^3sO1c)hfcyTz!`fnE?Mxk_W4)c|`TKjiAN zW`TNHau>N*Tv`m11iXEsOMtovK23=55Jwisak9-Y=(yn@j`o+VVIE$?Psqus+tan< znY>zu6-tCo0`qG?tf&}18l<{7<#L}jgvP}C- z6koq`A`2WkdA3S5-0a7Yj$1d_XX={0^PByTAMHCovqhQ>1$iJck49}qSCMnr&E-pv z6WXs1Yd~BVZdftlgHy~y@SDZBaSV&>?N7u?l2SXG*+l88B_~22tS3WxNJzlOZ|Z@! z3)Paizra$I+FB(QXWWIlGM~d7Ks(#~%?v#mndjk)Cw;mDtWbXro6R!P0#cXBYyBwn z(@8M+g2NEvz+2<1tM^_D9t0YU^8c_mwrY>JhSKduM)-_5-o%?PLw654U zDNO#ECnmSg*s`g?2Dn;lD_#LZ{4m_MPy03_f4}`bPD6U6(rQ{kQV0ER@Opho;+ptA zr#|VS{><%#l3U7zCQeJInJ0RFwV?Ah`WgW6)N01o=$!xYKYpa%@Y8<4KG+yuycl%R zr^Qz;?BAN4?I+{SDQmv88xVZ5v(?Q;?@{J11J;Q2rv@fdEn_y5~BG>9R)VRl_&zdTLlA;w4D`{m zY6^G8B}N`2X<=l24SF4E_lCN<%pxO>);G+5q%ZsZ>$_4vYN8;QAGDw2!wRC^fYzik zLvi{RvR@+BLAvQ1cLP|)1qY}Me~bsdcu(o}t@zFqD?;q>AuGUG2r(Lx!lZC&*#fxb zeF;|}YJwKNRINB#}B$HfX*k`!66!IpFd zrk5^RF+QeKhBI5o!XM{-F5JPh)ZgvZw^JfJp9l+om zwQpB*Q?d&lX~Y9TjVi}qVO=y}4+C{g(DXm&@X42eY>7sEI^P=f^;G>rt3526^E!uN z|&12!&T}2tADLE226om(-r7qGhM`Tl|b>?y)1B@I3ySOcw&`U z-5a8!@N-RX9RKRk%hrw4*%qLC&P!+Bf8|iI=cWp_XLNE^RG)!0*BzK5?v1tphRt({ z**_!Lj3YumcbnQabwmG|0&{t_T(vlthe;%3LA!s<&@X*bc6b7mg!9KyyP-cgdc6PA zA{A!2a$USqbuWKxQwM0?9ad#G_Yr&N$B}YHs6T_Ve3nG+W4LR?8apUj>7N!ZHDbVd zSq)x;L`EU}mj2_%^v=(S>6%@gq`22>U4LJ0&O+CqW>ea^^Ftr@cJ2M0qD*9M;q|X$ zPkaDkJ9k2`NS>IaBc5q8;z{?*>-i~#p|v0olyUWxoan1c`FD~NZoWeX^&fU)o5|83 zBPsPgl@C(=G*8az)IBqO-T_wLLx49s*T;~GD)r+(c!ZZ3^7r5!mq~~%b1)lmJlNs& zY{UKi*T(*SAyoBWlE$Li#t4nFpBW8Lm1Rps#T65-u4QW;p7r`;eP>pnoRQ5)TP3|U z+&{~Z?+{Fe|3rMr!2dwFrM}h5$h7HxzT01SCD;_*vj3zqLde>58ZhqV56d`Ps}tW0 zWw=JX=x6DDU&#jOWvzT*z*01L=l9)<#M|CBTh(>$(Y+uax%yf&aBT%Ab=#es-~3YX zvF4rM@_+o8-}yDKnaEt=C^>ypmx`o%6F=u9aul32K&*PW(>(vOaIlLR_XyQR9pTa< z?%Z*hv6%AQuJ?(E{k6T4(LS93W&rkq>g zc}1M4t2{7BkOJQ1b>zutz5T`(>ZKr$=%8AasJUjn;R_xXgVf(m!8}Zj!Qp0Y9@o9c zQ6uznU3O!%P$5fgYaLwd%-e@4Ul7qts1eYhjHN1LPNxt)lQ-Mt=V|E<&r5_}z#GJq zx|pJVqnG*qrgLHy^U)h{fT2KjS`OU)BUi*gB!1NA5B`wl#s!2M| z9L*u|O~5^MlwvF9Sj#)VqL7b|>IP9Sy)m|%`k^03b&O*k2|J`X#Tn*`SGz6;-i2=^ zDv8g65_~Z8f}yeNG+gTzwK^bu)mO%NGM(dt1Nv}#JXy7xuF6@)J)C`epDz2=i=jZq z$ymYhOJa-R`r15yoKC%c6FS5f`4Og!`z0m?o+uuMmJsm35`E#J9%vK ziy6tE(17o_WMAmug3ug7=k>hP6Vh!X5Bpdv1HmmrkU@F>FiX)2;Fp9-i(#=$$Y7|) z{}`KS&?@Z6a&-E#)^NdkM=|vIkRL{oJ@Ld2~?R?U2q=EDkM^k%Y7FG%*P-+NM z5fcPLrp=}w(xV@_NjKfpiwaK6_U@&w^wtX0^4@0#a$xK8^v2BS#{C$>>$ zF$@_LUH1 zO2A^w{O~~|LLP=s7@PAiz`tir;aJEZg@1#s^d(pLeAUIs`0p!lhK?~OK;l>@xA6;9sex1HuV*B{A~vSo&YuXTd%(Cq6!8+} ztIvDI(RL0D53~pH9WlXcWHc*FVKBtrv6St=Gd6m>-IO;#78%H>SpQGz*x#j&X*Av& zSvIq1f4+Eo`7?3jK3sf0I+~neCgqyw&*mOg^b`4dEl11f#1kvI60sQV>6wIuYu*hS zQob{YPRpx2O)FX)8aMK^eoz(H1dOtv`=!qfv2I2#&u^dWK`a4u zjellFds`*Mu%j?rbR;Ujtj$iq(|-&g&try=iGf17Xn7~WC@f66Zg#BJWDN^)hEj8u zTRfdUXd(7htJyCd%##|iYB{qi4w;&BWFMr}zH96CT*<72zCl)%8l5)}q4{d4pE@Jj zANS&;X_A_>C~u+YcrGl3lH4n^FB4^>IQ0vqFv#_)nyXnt{1GF~eJ*VP4S%DmYy7q+ z-}%{{;qH!E86JUq!A5w&FFIU$&_2vr{i~C#>j+W%j{hGM*!Yhh$2&hoT<(B_z|`ka zin#pbPVE~XJCEx0@42!;m;pvFD<|L&JS<#BXqt3N%jcvo!)*8-@C4?+6j19l0TDu? zpr2Pj(82~2;FLAA9UkS1nvHpr)HWY|d-j{o1{oj#}5RlB?}@q+bm-aHgMm#78n0s-Jq=v9Yr#37WVVJX1H$5 zs+aO3eO%N2OV)mk=Trg9@7qJo( zW8%m$m_%V!1mB&p15qi3a8&~9rWe$B7n`GsJrCwpZzYyAVL+{298q(;JmovTQ>0Ve z^@D3k3FBtYeKGCUm-Dz zpTr0)$(o{y|Y+w#j&x*=cg6^~lg2C39@SDYFV;oVY zM#mm|@ezi3FqjN-^)g5P0ha6eG&1c$7A7Ijvqvc{?C}dBW!|)@BOc2NmdB5lDnRm~ z)a=g(4cV?e&4lwZtnEBkL3$a}!iNFc7KkHjcQoHp=`|gz%41Z~JXVs%(DDWICyaEZ zlOMMmw94PTB0DRO&aoyT2F1&@IxhpENAW=$GwZ7&06P5MXZEbI_qQ!sA>URXAx!$) zDZ$rTW;kZL*HGNGu$Q} z9|}-zY+uU?nlD_Up(o?QT9tis6hXtJIi~)W|HslM``?aZ8WX70Hkc;P_Ko(kXLUUu?97G+;0^}t|! zY2VW;TErajF7V*yZy<%wmsFRH=e13{DL0<#y z6rcGO4-8Z!0fJ<_&A%!oPW?ehwu2+VZpF3gw#j+g9?~^{SNO4QZO?F3_QbnXShlEJ zV-$Uayq@>5#qU0>(ZVlMRI-`scXbC4q+;h09U;<-FLNy%TD@ocA-xDm1)a&}{X<8) zl#0-LKFl z{d;%@olgRpS;Z6Ku#~}tHoLxaZyEdNU&ivkWo(~Q@HKqy6@`y!DjPsk{x}vn1nTRaFPJoslISPfQyf(EV2mxd0BkPZ8+p{Tg26;!xCdVBO(_2Wgb=PI5gXGaUXm1qWRg8<5~8id z0hKf_71rkdTds6PPlWEvuaJIfbdurmI31{`&y^)Vy}DTemp#o;otn~mIo0Rt5naX6 zb5;DuTJ})p&flqNWA2D7G2Ne?Q1<3F09c(db~%|2s{e!nO3`63@-4Gfc1PWRC*BiT z^wCsgaA%;h1+$g~wD{1x@!R^xPaq-Bfdov@uuWpRvZZs33bV!{e{VCj9Vy2||D@!A z$3c$1j*kA#L@M8tbiv#2!%}H4sl*81^#glFrAo8X@g3f(2Q3hE4pWb~u&A2JbE*bA zT>5MIsdYx{w~=XM-Ea*?L@tFI)uH(~#UJ^|PUnO!jAN6GKQ8bgAE(5)kp<`T+ zM+k|_TGUO35|OctUk+q}AXJWmBk@1)tNiQ%a9?IuhiO-&R%r83_=TT+{jq~mucI9D zi_KEVyE@Tm5SVD%pB957s{nBQ{RIf)Wf&iVE~($b&!;X%z=3{2#_75IQwRBpU;63= zNR&(W>;SQo^B!oo^@eZzA3nji@H^IP)pUV>?3ZY`3w!T+x*+Y0jQly0?KOK)CHq^t zq&{vD%qKLaM%{2ROlxKt2C=cgQDsUi42p7o2UqLRWn3VL4p1*o+1D1!H->l|T#8ek z%ZUwd$-EO55Gy7C?LZaYv@T2+TQVPj5{qfO*iGlpxnBu;NzHMT#%Z?71df1%B;RBlx1lve5I%oJLAJBe5FPm>+nS=7b2>(31YE^>cZk*DRVjc)uitvpkbx(`WE z!C!KR&Jp#T8QXv$r>d!!BNhIblSowehHYx!$%;~2Hy(g64)>yD2j^GTY6E*-nE6j6 zgANr!iL{Z8!YC(53p{B6z<|>x-(QrY@BfA0vMa01&0XVq3fb@Ezv7+Qav|ovCCIKk zlIg3(?nQu<8R55X9?%=2FIxzpyim(QY(=i#oSM*bbD-3k5KwP&-e^@h^^>(x&5U$G zz;h|rhJCiFplpFcfKewG2Jk9=>+<)Y#fGPjfw&)GT*6~d8g~!pE0_P;*8Z!)4MQ{T@^pZitz7*q9cA--=_0*gl4~r6j7nBBpAld9s>veAW zVv5efu+H?-n#6{vrYth5mx}iaO_LFBE4j>$I4DEcyHb2G{lhSyJ=Zj$M3AYvH0k&T zY}mq(1%aT=Q(23e+{Iha^N&xu;%Xk{dh-{XvBi#7ubA%^Z`RKje@7FiN7=|?E{Yq` zPk7mEkAH+_nSz}GJTllai9U%Vz6G9Iz~jgkMqbP}GO$pGJ`NlWqi|3%oAmAPOy-E8 zO$EcZlXf>EffP&yMkj0U%C~y4I^8GVzI44P5EZj(>lku4BlI9yEazN>X)zqiEZf0v zI&w_6jYnJ#<}8FRtp;$EcHS4W8M%3{0YN3y=-vz!-xLo0h(>1F$;tpiW|B+!-ta5xjgWO|yk+c%jPsxJyRW@-J2beDIIL#u%}Bw*XO4{oi%HD+=V=U8?zS;G zQQz$EihrVdiCS^Hn9^;Hxf*DxoU%Yom^+<3Bd&p^kZggV^cqf>t@@r2S-x0d;90YR)a zJ#FvHa<@ck35M7?{7Vj?j=j1Jr1+?S;>87zdIm{9GjV`cDd|l9D@$yhnKotFBl0iH zyw!kbX&7Z`)F7Ozj_eb z|Aa6}r;ezIF)jZJ?RB5*o2sF0bEC1dUZL`Tn^On>_<`Q|O;e{P zi`bgCh-1Q`6W}#+sBE)5%03wgR_xj0Rhv5K>m9$aHi<0>D_qg?RQ_F!SV9fE-OZYQ zjHrFl<`e)k13{uUypHyTBs3|qFq1|@oY zOsBT?+bmj`Qq%^AJ2i=P$$q@G^H$_UK~TD!UG|hGF_P9i9|!_2E4XZ#eqkRB|Dm8p zjw8yFhrCfkUArx6lKK0Bn?iLxhPJq64K0Y;W58NDMU>L*%dvENU#Z^0yjU>{LN*J z10azjx+@0oD~edLdfcd3hGZP}r`Yk{cdd%5-7OFOWHfsvr72oRPqo}?T53I4yP;jG zY{B`tu?+c|1lYQ-30=pp2FgD(=@wEqJzH^=V#OC> zMu7ZHG7QQ*gO-eSDK_psvIx-c0E$7JeuNK>5vEhN#K85h`8&)(*VneZ+w(8Gj7 zRB_Sq+s@2oNb~D2W7%g5%MNOh>`?2X1fM_fxosg9+UinZh%=j+$cx!C<0#Q>$YO|x z{#rioHzwr?NDJQpn-ZV_LCl@lOe*0vPGTWhz|J{;||cy2GnZI7t} zUlseb214nB2^c+FQn}3{sN;ywR@qmaGMk(32bBA;6$DOz*92xpw2w%uZ{Qlo#%Xbz zn!4@VqNWx{>)!>Xkp8WKiMy<65Bj`E^cVFF+;K!gTm%((K4U_yNWslOO$I)o1huY7 z)qB-a#K7|}<5)WFj5rf+?Wg&f%5;OzGzLUkPG7_W-994D%SBvw*iPW~qQzuG9<>!9 zC4spTj@u0oAE#YmPQ`lD7vr!H@8nW#D6z@eX5Dn2HuxXk$qx9~M zmW@U*r@cO8@lQ2O%47`iAA6xRa+KT2BmzP0qG*$fcjkVihb^SC4qN@2&s@1LvNi@M zu!Zb?iDG_8LqvnY5Aej}p+T%CO5(jq5npCFes%o@xFF58%gw^oy@BI;C^C-nMfq7p z)0wqcm-il9XeP1FUZ=$AFSLP3z?j9`QE~FG)JeXTy6WzDjriqgTyZV0YV35=$mQ)h zMJD$?lKQ|BCH=77b^ACtQ#+^0FL3ofC>%dV7hOJ{+YF9LvwmEyMMTz{fGAavfL(rm zxIl}fyQmgC=|PymlA@u?-_*nOSsGpB<<2LL*yW+>hZKuj?^5^79{;K$hja7y;}89H z={;t310NO^Lf*FD`pQD{C;GyxU+jldi&j;wcf}H-pJ&N8$_pb7OuNbT5!L3T0`&)P zgFx(5%Nla@O7r?6r4PsN=Z7!TpC5oAY_SyGo&5$CB)qzi;P;P*g9D-+>Yr<2K*>>s zl!C^duY#F=HhOV$iC6^R5qI}4s-~))hs7NF0oH(_Pzg2a?Emv4y;o~n+7%i!$aWQ5SglEE+3z0YMai>( zS#ZF5yO55^`5gJo$Mw_b?5e#=gZhzmS-S~Om}_qnZIOtN+_t1Kr!-Y{C)i08tZl-o zuV*f3Q!5^5B0mu2TAN!b>)YNqXWg$?#v*s=Q&i?WH@W#)W!S^m6^-Hbp40Vu1z5XZol0D*jYR6#oE zpkb;pA_7aV6gz#>nVb?ViKy%`F&h3m8gF@8L0>&F-XF#@SlAW(#Rw{hlw`iBItR?Q z_5|@lSxSSx)+`;L{ahzX)d2t1_Q>zW<{JM`S(Kz9x*K65I4Ac7KI1V>XXd9SV1U@s z)v`b31+n21pk*v37DD-(m!fFB)_@$gilG6U0Gd{!{Nw7!}EoO2x>TX+iv(R6M z4fSBOnapvbAEURmO^=Q??{oe5%M4CXViFNFnKpx3)bZag7|6ie+^+nPHGx&z1DMR1 zaDa`J!D3>qJh02?ZWC4}yfZL?d_PAB-106TX2DoCO`jdvKFd7(q5_GqT8K* z?+~!%Lmop}3UE|_*MRIgW-xndago&wv z!`FsgkSXF?6O*_tLV;6x(slh2uviBN)vV7oI7gTJmbzse9>*o8H0~{dcl;IE+W(UT z`tlaj9moyYx2hihMSb5MfR1kZqeYOP^I$ajr47gmxzZ&oF z`s8Wx>$36qKmVD_e;F(Lmaz(3{0O7XBKQbpA|tRD-hRTKiaN-`-_zMffj(ZvWi6NC z3r>S~F@HiryqU$el!M^J<`NY)O?G!yB+&{@5ZoaT)7jEKcgcoxDcqpc^%udiEen)E zGp$2So5CI_S$gMbGg7zYhrlA6m)?06I&AbBze`+oEO6yxQU{%ppH>hdr=C?%ldFoF@ zYlKe6W!nSD){o-5nz#kEcgIrdR9u%AO;#Wx$~lo-?VRAsV)D}^Cajf7d` zu~9L&SagdhaRj{Tjs+E2B5HbbvKZ5^Po+bf?bx2L$6=mV z%SO^A=NoCSIc>_h=VVKuQU{iOxmsx5MOR-rWa_Q@fg0tvFTqimDLX&d)H4<`j+%lfTMUcRS6ILiEhtOA&i5mg%W}RU0V*0rSBi~1Ra}s zdhXE}AZ3r2*R>I5OHxhV1UCRqyM6?{H1?jYfys-^s-o^uXpE9uNZcSrw5P;#7-nVZ z)r27bYho$s^KdSJ{h(6b$ZIYsL4~=L)HS52ScgDNRd6g877$dMen{sf+JDmd zV=)pi>5aWzBrBu;0>`MmiBERXy|H~71$&Qvd23kUbnlm^;=rJa(~mfc7fT~_P4ek; z@$fLD8R+(RrqraEbw@<6pX|(X=eKm2R~PZ*CHBanhs5bfB)N4L!=6bVfzkzIaG0qu z4Dfdo46eK07$B0*arxPm1oMLbuieW#pox`f|$!q6>!fXlnNWOfM zdpj;}BNCKyslZz@tQ3LSC&|3oe+49^BQF(EKB$}o>I z@9bjx)d|#>Jhu9_jb+#T?i}cff1m?`h^UYX-E*huj2R;eWMKzt-|G&!mxPnAOKj-(@3Cc zxy?B(ULW)dJHW?4w_$p0BOy9>&u6!5H7~0|&>Jv#IJV&pr?SL~qN(`hhU6?!MpYCD z`fK+pIzeU5sw1XJjl%6+<%n3DuX-I`FYNwNvpi%d4p;aVhxAwu$vDrXBZhZAG8m>K zYS**&82~x&%TQluA$Jc*!h*L`3N%N$2FbUVVl|;$ej=U)g=kuPe5EOXyAoZd9?&-pf86_K>mI1loWw_=HbLKuXDo+~s6o!o# zJg=a~qAA9dn=8VLA@#A|4!b9h-u3$uw_*B}vN_heNy_<+CT9zFBbfHzMWy`ag`D{< zvd*oVJA7_ti(HYD5ries)~7FMLA+io?X9k9Nx$si&7kT|`Np}jLxhQGHfgO=T6&>{ z65s)P`IUtqVB8Pi_}S*O;7k7g@=WVyNlqB*mh;s&O|pnnHUHQlku9?N<-g&@{Xc$6 zZ~TB|QkS^X30Q#)l?BaY-)locJvao{`Qn8GlkA9Ghw#LnGIuFr_IqFQLe1BaP$w>P);2jo=H!+;BG zTCMXU%Fs7{Uqc=_@-!HKYA0C|eJLI3f%~x)e)u#WE>5K-KP|O3{}z7_|M)4t@q_FO zf4eSZaoF{#6uG~o$f&{w^6|FEyd`JHTlXtobB}?UCxIp(y`_QVM&*JF|<^h z<#TK%-Mk#GHl(pqG4MmzvG~RRWe+5ZaTiuvJH=7?J3Lk4RlI$|PGE@eX(zlS%5464 z0$p)Q`_#-on0b7O)|YU&*1wUB2+a8d;-r6!{a)eLktnOkirBE>><-p`f4d{<#wUfC&z;F_ZB#8 zv7;>lmf=!xS|bft+Krr8o{0&y zs@H=_TWda7A}A<5H#lJ4QyR#sSgXathUxdqlfqvjdqKaZqPVptgO-?=z@Fb*hL-Pr zv~fP>th-5#CK0&KTbn~`PT);+L>7sg&3qLk@sIriY2SY*Vxh=?WI?qZ6Tg|8Qm9IO zRNKiCozoxK_x^sebMc6fG?_}ONTov54ooU{AHs~zKS9!0UnK-=awR+gl74f(U65Ie z(TVrQL%iM%V-&1Bqwx{s89dzz`6>1*0ElZ@O5V6VM`6_o?JSi!{7B(HN~bYgeiG?FCV+)$U{S1WYgDuGzTLU!NoX#C-7XJwF{_sev?p z-}$vO-hDg4K~m$Hjrnr@z7+dF(aEI$!}lGzMvv3l<1?95a{DXGf$p6$%81cJ_y|iv zd_Jn8>z+k5j$p8EVlm{3(!xyQd9U{|M@z^$p43D1ITG{U*DgV3q3?4lGBnvHapXz1 z@X4U~>5RKb1$qImw%N`{jJiGzZi7)3*$=QqwLDj^3;_T z0aDd$+_Rt)r3pgnaL&QN(!r+jtE@9S43A2E+b={WAHMJ;s?E?4cFIJY(Fa0QDyr2I z(DcO$QP7XM8b2Sa>+3N4#IjAqO3mUKn7%2qI3Y%lqM2;a_PvScRc zZE!e%>7xdl^_@eOY!6Jl?RX@`20t>|v<|=e#B27k_2=1Me~vubiSxb1$xn1m>kM`g zVj^MEfml)GmIpRqEz?=Jv&Xmnk@lwj1_W6?Oe-=fpi4iMTwC`?pi7{5@Z7pmoAf-$ zhiq=U26EFdaed_#a z@`9eUgT@KP3-aoY%;24Z{eE}F_4e@wS)~B(ueKrJTC%x=%EzdvTX=FN$Y1~H>$Akx zPPf2+7s~-#5tECfBQd$nj0qCqpi0*%I=sY5WLrk1)Ou;4h!|d>KEr(h-2}1zrtqe8Ui!tQ5R;)UZ%fpOR+V z^Rifq-x}pXesTFB|EEOdL6AkyE(Zv5q1$&7EZnZT6tapZ#kC#VG`jnQGgq$}YwF*< z8Sp5nK#nw&^$jRP4b_RfM})i{v2Wtg z-Ojg)zODICHPqN0o4umi@KEjgHP9}?Xd5##C?9HbA1%wvH`e*fbo)EUJzm=6Q4$(3 zqiib>6#J2eppXt*?-MAWPv^xE zAHVfT_dgLmxagaXjQ2^{Kq}`o&q=;w3u>PzH`=>L&BEkM=-;xNc7Tb}OFyl%cp>no z*g)QNUxgDkDDm0bW*`(RH?E5cO%#t!_rSsj-5lmU`zGGA=73Z`u8;o$g8DGJb`($?G%$C9dzp=7 z5fbC6QPKFkW%+@| z;+P-g@j{X&yuU6&+zIhs+D(hD`zA;2Wri#lyQW=<`0OI}k{Uj{XRWEo&A|%y`Ax&N zrJ%{ubX(l5)FgF4PFg`T&(2cVOzYFvB_aE3FwHx>Tgm_Vg!<$YYbW7rx!a%kt`tA|BFdR;Oyb}V zy1%C))z9-k`TYj&U1S1TGZlCp$GKFj9MG2?ncUTB&gah~;2&F~zWI$Zh6PGpOZy$F z>gsbl7Fq*5%B7iy9IPV4nRU~`*(%IWX>yaxJuS#ay4#lPZ&c4)39syFRe}fg5Q&dU z9!9=A(4~Bi;CqG(zn+2t075gi;h>!+Lv7nkaF+hC@rM*dRc;mlOBR^b57PR*vfSwB z`Y}4yrDukbA%s&tOYN4%=esLs+4{Jp)j=Mrt&gZ}6NtBeRN0Th|M#Mhu}z^T;%Y6y z(f~p8H4qKrf@6$wg&yc_uHvZvo0OVec%Kb>zj-e~6Ll-u_1}yNco_jGH9MeQ=9~K;`>EToSjsIoou}6Q> ze;5YfcDqC|y6|4s~-lYHW&P%hEQ_P76$BD56LBDj?lsimN zb`=R@CpSx{rBo7;k8xRg{m8C^>+nM5GC<=xPzG8)P!@-j={_g0>xACK@Ol)3%x4CT z`5PBeU68wR1}mYJ@!!H!kKLKqF50xMDVZ=M^`dNn5&6t1sqK3NGL^g%`D&reKx4P% zKM1n{L33!)ogpLuHC#%AAT>ViH+~+jSlnRh*#UXKKia>ws7}~VcaG&rUCKyu%>K?C z!@f;x5n=xE(|O~k$%I?+n~m~iD+Oz|_XoW_SoRs);`B@!V^o4`-{k!RsW#RiwfOXJ z3cOWb0|NmKohAPgoY#-0KV$TShKiaYBH%WoXq_pf!RQ=^{dTy{0`kERQLsg79Y4H9 z-M<@;%B0nyw`JHN(JcgC=i9&>#gvSCqD>xk%BX_PcrjPNhp&)&Pva_HeIq1fFM$>S zUSpLxqd+6v(T_QE;$(33`&vqP=5z8#fPe7{u{{B~JnR?E*IvZ(c>(**iu&AjBJ)4R z20)O*hOIK`Nas}<$R;;x#h>TkW%Z~Qvpw?Y19bvy^DuQo!qPO3(yI8k`RA{g!!b-%M6c>eoz z2<$(8x^KEhN{|;qe0dD-z`=g!>;qYg#+CKg)cD3`Z5JE5Fa3BKvV)UDhNbfg zUd~F6{@EOV{MxQ9`C8;-eX87mpsg!qC3HLbX3@#;I=k%G@sguPS_~Y~u2P;Gn(p$M z>a)Sbv}AfATKfu=5(RDIprCb~)N*@r!=j(+VyaLkGK2}y5QGH0Dk0oAC;_)DN0gu7u0>wFf!w!gaPe7Di>73X+r zR#_jB=jRlJJT^*9DPf{#_03+-JrN&fY9=bckEzL!hEmyK#D|Yq4tyDcNO={HHIG5l zyH)zAH83U|M0xKmMZj8B{g|DP#sLw^;z&Aw&&zzO3Eat#?6a3czcYS`4~C@eqvUd^ zX$?-Sd-}@#+TUHNYowm8d)5rEBDUj>1J$9fIbtcDY?hH}^tn$K`8zNNK1oMND#dgF z={TS$!ZF9wTi9hyNUbYj;I6iDDGrbhr7;#U@9DlD*|N;JNmV6v5Q6lrAnFwO$OLdN z6}TYCzd&QPyE#na{GmJK`4^|jI|hU}Y#gkM+xerQaUySacM<7{A*OGEu}Ll;4Doad zDrshCt=J$EL_XyLPkxBknzvP#K(nlN6)cjQv)iLu&X;DGA+3l;wo`I5i=ulc7kY$R z2SXT2T7#fs(4}Esfdyg-Y@j@ysL?p5J6QGh60$NSB}FWz$)knvad{hqVK@A2BjwUy z5f&D1v`P>EX(XC$ERcJyTw=h;+moR=|8IrTsy(nVOShS<*tMOX`gR`jMhOWJIzFDP zqEYP7RT&pdc}X<3!taPXJL8h*rK`L|^^mnzmj%0epZG7lgxq~0{rvYhdGs%T19~)KjWARyBbM&3&4h`W<5p4IRqAXUs4D3*5{t8emx586T zPyJ8bL*WC2TlT+^;w4wTA}MoQ#W7O06PLIl%TYKPB#-*8 zSBh#*56`D=e44eg)+)v?V8cPkU-0NpoyWaLjLf9JzYFN{;xx#byb9+H4$KdexUfLA zI9@YEOuE}}Ft36`aCUp!s)8&oIdk(t(|FsAyf8+ad}Yu!)5n(p=d{4tBX-vRUKsGo z**mt-?qD^hX;?U3dZU*J=0DpM!t9?kj_(txWdG~sA^ziM^v3Ti(L*SQiTd2!RONdy zlqB@xge4d!H$1uD%$_B^ao5xH$Tr=_W(OCV#id$jsm$b3{V|jK%YT;TL>058sdT$p^_&$wmo< zL8Q97MaVaTPQl=jB*-J#_ox2(i8GY7-hMa9d)SEy(#WPV+CRpw#7$Upp=?7ZkJg!T@Z=RpP#3&J5=^z>drF3NmRvWBg@7YSB2&a9p8tI_=`l9sA6 zBr8uDbhX*kvvGHgoo5{0W?kr1uoyo3KZk^1$8tS6C%ge=BT!w`T(J>v`K!h+A|#bM zy3a#2m5BZn<*Ts#j;Eb}s%7maRoD2ki1e-SAw?#Pk3wu2etf?5Dqvc{_b+Tn)WWj; zj%-65zs>El%s8Q}P8+E|B2mwkOsMvW5$o{r!a4M6p7^=JNTOnh;0Pe&3Hk8OMszZz@wtn_X(UJZKjg5&rANNAmmXCwe0smSWlV>wawjrm%FS zmaSqS<|!DQq^AZ14KH%MQ*U@*`O{Fjyxt+Lqt@~Vqh$?Ac;d?Oj7ddIK(T>ZIh0ox zeKa)L71Z~PoCfI`S5zvJZHLj|v@jDv$TO!(u&xT+*)XPmd`;0X1W^+HlAE$c&S4W) z@8J>G1coGc*!dzH_uosr`zZ(&=tn$UWL5D@_t*tEhENjU1V@b^uZlP>1%!L=N%mhaUF9&6!W@8 z6aUCEssT-42?!EnzFm0kO=smF%74Bc0!Y*nmp8GnP+;XO}yph=v2mCs{pFHXQ2I1cf*ybN= z1QKg?9o8lVywv1&Vftx|6E;rdd2Igzaza#Uzd5Im-w_dWrU4fxFp9C8>V(k)k5bMO24+R_HcR?%(*ZJnTB6E{Slu&loA)#j zBprI8miM_|yka68Cf7(hpr%FrdDJpyxU8pFz?lE0a;4`TWijenrYXa{kj%XIb9w_h zD>+7e(%~)iaT*U1q=~HIDAvMnSM*?SA3Qu7?r_1Rmuxvlh^}{SA5X-C9lG!-OS+N0 zb=JysLRP%{PCXoIKiX&Wecw-jq>7$Oq5LAk8^0=t&^DpXWX{y~zxCrLfpnjS=aO9q z8*xRAdvQ}51AX53q5k7%_QnrUEu|y0k}{L0#s|xU-;4&v-ZcEU5R*Owut#0vKK$W5 zMdFS3o-gY`9$OR9%CXGik4)fw?Ssk6a*Xfw1`gy}|Ho1E$EH8elKV7x@i+Tp zn`4sOMSVQk3+KTBlhcRCwNP)c43y%vRdk__X0tsc|62TzFe)o zE)YN$k39j0`i1xo{b}fy>xKnp9JX@W`jxiEU=$$DSbGR`h@npxtMh4vuAgl4Ffw#f zaQm3^RbMRxQt=jJm`oYn}wi!Du;e}u03*TY5W+nqf%XuTx z>aDbatdtO6TGzd^R)E*48J?nHvho|h&SyZ-mFoM9vJSP@D8WFVqgk88+d*&{?hxxC z-q*7K92?R8@iTwpcl4dWpQ=kQh+C;$@sG3%!ghtc>=+QcQ2k)0Das+Lh44=5u8Lg1 z?d4KVj&gQ*pP+FJjgT1&RBF%|L}<47y+lI)gXN68H?YbQsfZ4i^0%TgkZ1AR@kw&rZh+BEA-eTge+ zZvlevG_so$qP9!d9F1(_78WvQgcia={vkKML(eN%@Fgm!hhgpZsOOF0BgUq}Eldw|507Kr8C^Pt0 z_|PL0gy*TiMYqZTsDy_EHCw7a#l6K%cQUBJpJxUB3R%=GgFP=R++&LIN`Aitd9|Hr zX580%?2xnKmJQ4Fe7~s+rSnul&a~aSwCtdhelmYMI3$eK)AgMI5{9 z47!wg6F@N`i)uCsETaoI5QI#j@y>R;=ve#amaS^E@IlTsbyYs@TgJX*3!kXpK5N=6 zo4wE{60wH+UGc+Mp5))(1Q4E0eMosTW=9LaTb0icCFm_|9Eqw4+$}HjRxs2A?|kv_ z`o;sUYfP1ngn3FcFr8j``?KiJ(Y!yICa1kUNb%#yqGiYDuVx{1`gmtQZz1ht+8F&! zH6Omz)vG_q?8f;hF#%5VRv$T#F*KPOu%EPEjdg~gQ0}8W2z`)F7|*#~VC`Y_f-LF) zv(Df%=acgPYy~VV?W13}3Q|TJ^X;cqsCq}JHV^Y^cZ68z8o_4%dJj{O?YxS0~ zCHYj~-QB8wK1E-ZCysp%M+A-YAlY~Mi;=94<(q^7+&_mmAM#(FmqI>rHUEO4#TAzW z8YQ>;aRpuD;7e>mI!U4riusGg!74?wDLpq%&EM;*FdNRCojH!(A02<0I_bdHw77bC z*GAPd31huaocCjuyP@@|2T(J8gFo~HUzTeCL8~SEbmF=ig1LfTzZtETyE{=y^*(V? z-7iU+IG;0+Bx%OC5xEDKvS%9X`@woj__1p1KL|gob=_2=qB>Rx+;B z-a$8{e=5>~DIUO!?Lr9oAONZa5&?j9(||z(bL_wsY>hkfE4WD`oU0?w?GkGkkbNeM z(46cx@>cPll^yT4S=WZyZW)`LP*nnK*_*<#zbK8BNF*W_R4cx1cOzo`<7fTGF9!Ih zJ?+pol|uSm8qBfyO95nwb%E4IC^k9EfM+$u`tNSmn%0-n5BIGmlo9X|*sflfKHQkt z8iW38P*%9fNDzfo^SD{g0ER`8bh8VR{s)Lv>M{*Oqe)M7%S9NC$ z-vEvVSExlM>`!bfHFjqYA}XO;6A}BE7KwMe$5?KmYTSPwnuJi}JtXgL)xs!_$&?>g zg3?dOiXry84F{pCGL2d&OpV)NIeoviaFM^A=xt(#Cv zkw|Jr3Yf>C>B1mRbU8S3Q7|JL#9X=xnPL#Ylrf#rVyI55$$C?&cxsdTKv8txa25O| zZ-rCdZw%=NZQ&6@72!e~F)c7COWmO}c}yP~>UJS&NX-EV!lbX-cl=&>J%UOWMEQuC z18v!v`R4#{8quBlLtR>CM~9hA1bD(j%+f%fV371I&Y)_*zyw-~1%RdbSQYw9*W`_# z{^MOzARBBtqf_wmt_X;GD&(^>PXp&xIb{bKS-h8YigDgsJ1=tsGQ~Ks2-}%^?Jp3t zzT+##vDj`F~$86bLr}d&VArFFC+Y%om-lKL2Y%88+=#B}wBk%LN zfy^DR)=%`CI~mLNG!#yB>$H&Gb$!bC&fvdUr;?8hD<2bhsZYq6Gf{AvCca)_x-Dja zQ+i5~o1hPLmzHlX2Opm#{J)E=GuYBi?(!=1P0;EXWj?A&JWtiO?q%PNA-szo`J6m4 zSb^+mM{<}tk4{-CC-?a!e!84cd6zkC)3{7*h7$q~I$Y~gw-)SFoX!rL%M@=H?ins> z`T4mvL6srGP`loNf1=>wr;)||J5=yi%8_7D+1Lq5D4#e${#|8)3De=%H*olV!ZH-s zvcpEEy(vmn9=HvAh=W!L$9?rCx31=V)O&9y25w|R^&cv*p48B}=aV|U_-Q7W1z9~d zx2mL4&WZ`4(OuK)Z;{nq36|ak>n6=68AVOH> zI!aiJe^86|K+^EqrnsqVmBQb^&)HSYO6}C zjnnwLM~#oz{k>*TS$du>mYgPMAy!(Dk32v!7Vlri+P`Hi96Tcyw>~&tEzr6Ds1S{3 zVA#~Eb2E)TPcrO>Vl%6GY(}PNZph;2l#h3v-+y5Hy%- zl%MOu!4UC3md+|FuBKVTID@;pTX1&?Zh=5>cXxs_XwU==?(R--3GM_5?iL`p6YT7N z&UZIgd(C=QRdsju+iw|x3;uN!yF`nl7Uf|7aBF3l{!kWrI^CC3AvhR>2+iGsyrJ-_ z`1TKD6AjNf%fv9Ev_BLq84?NHz?~70l>1qv7qNGGobma5cPRDR!y7V2wCD8k>BGdd za(SL*#IHKMPEmA<4B9uDI!(kLshw0ELQW*UWLNS9wkq_b$LR4IL`{U$=Qy<@UCVh0 znlj*&+FOr?8+mVZ9U14G^WA17Y;c_N0F#TOj~bCJckzWOl_H43hwTGvPwzE^pEaFz zn)2a+mBhQ5Zx4Pik0P4ii+kQGl?emF;H7+m{(p~5_#Z!K2tS!zW+T%fsBv@-Zkgbw zdRh`m!)+(a7t=@EvNqQt+K9QY*;n8Ger6`aCLW2MgT)8&xrI-Zot%SHSU8Z~s$bgGts?m0=%lZUyyZa7%*IVmue$IMEwvYIYV3C3^Eu zeynr&u@el|Wbi+$AXEuhnCENl{*$yE|2$K7TrHK=_<{EyIaYTrJpvw3{8sAnbtox$ z{fhZQ2z);BAJeYIb{lhyJqH=smp8Y69|J+7N<<9GQGJZPtqQWjr^{ZUyL-U5jd1b# zK#Zxw!{uVDQa7c9sC2e?UW=EdP7?clg8tvT?|P(8tO%gope=?ek>NxLKkZ27` zZ8;=qqhRAoKcGh-pJjK;hG7sq$#ULD@RfqUD~M5eE#z3WURDrJ3+v}w6qUcW9L28% z+P7hLsqaOFB9HB>Z>ICJ^pnYf&}8U91+eX>kp*GpAj5#6VLX|NnVJf^x;NM_l*e?G zSX>yLOU=;f?5_2g_ls&+yX*)tu-}|eRf_V=L9>2r%SykLU?BWT<%U>C6Q?5Ous-0F zgeFyHx>Ou$ZV9o+2x;eE_kEOt6h7kEq^DzAupu&*fW739#q`Y(ZO3NdtAC5=?oM63 z*M?9is{Z2AB@yKcmaOkNx4l!3Lf)hcRZt~ITVh@pCqbMy`iwvMPrw=WSL8ry5Dlp! z%#8N_oS}5%%Xk3JsGIAd_FYKx-$QXiH&1D49MV^Jm1F0w8iL{ZoLv~ZkhPdPu!n=6kxWJBw!EwMhnu|$rDlz z{3>2Bh^{e?%34IkEBQ+lNDB1f1>C+NZ3@5^JXEt`5sGGAZ`R@N5H#Mgh0a;t_e?L6 z{`zg_G?%27fYn|9S#Vm_4!ZhbI7z~?6vR2B=Kb@LCIABN6!!+M7*Pbl5YrkJ=1*(E z2a{rasnUS&z6l}vlN}tu8*tzPh$J=%{gf7ra||t~-O1n*6ShCV>oLJb*4m@~gr9Ws z8Q&LyBF2NQH^tR?ph;_4+b|qv|Enr`G?U}?JiMsmH#a}Plo$zU=b^XPuS7~S!K-Xst1w#WC zzZFK6$PXqwKOm6|VGF|Lf(f4#+i+pmWS|E5|8iZud?=OFXqxt(=ZHUg)f2ct+QQ(o z!~Jw|U$|l@dq*mK#|2N1fGRO^Xj67c^_|p_2_-(cpK5(d$V+)bb8;bCqG5>KnB#93 zNlup8X9V)T<@WZtUgmCB1srxN&S+VXXdTt>Et(d42)Nsj?k;RcwSaw#^132oZqM(s zCJP8;79;+dXA+cKiGbo307nX}F6Xr1+yebkVwKXtm-R~VT)DI5jN@P5kJMU~-bC#7 zMmB59_}=-HQwl1%SpSi6?cz@u^MQ>&T#FWBeTMob4gOpYOl4asmTSB3tJo5%?)?hS z9DSC!B{C4pr6zIZe(CaidkJwhJ2|8lyD#_Ceozxq*%4QEruHXJA9>9rl|E7yFkN&d zpdohL(D{BPg=P2W=>601Q$Ce#2`6h?bx+}(h`bHLS{1<+7t?FF?YeTCDK~*Y^!05vmKj!VqWrOaOXlzXTWWiZDwNQkp%sHWF}5&|xsUh$mu8}*{;wxU`z^Hm)~wZ~udh2JKH{L12%fFphR@Y4t*(G^VX()l2k%mU2)AmZR+6FrZz@!r+SF_&L6)7427-_d;%*_ zFt_}RUWORakU_`MsUaB#ItEPB9 zR526S@aDCRObs$tuq=b3M$`p6^Q;IU{AkK=P3JFOoZsP#m=%hUSWkWp7uuw+z|NmE08Es&C*Tuk>w!$h=@##8oUev$LFg6cIV5mEcA>aWcdVzv1oGJymZvuvbqEi!pkG{CZ zi&Gi-Bxc?Q$})_ISBg4w5RF_HSZNWLRy-LpiBu|)GxmA-P}CFRmGy5D2IQSmQhfq4 z*NXbM4>=YVz#e#Ad#`!?&1(#%Hc7KrZ5<7(emhNI;Tk7EnkP>EF6!82yv(B~Pve&9 z>^l?|F`78hAm@Uj3A>HYorx8Ci*Qgk)EvUEKHT@DTZnYqhGEu>F1CLnU|V)Dk5MId z2zgStZtnGJUbG0R)OVNdJ2*Icrv5ZN=ru#B+r>SY2pq^YZ29f`B(cSaUXK6bJRt^& zJg94fPzs1jI5jsQ-DC<6teh>GUS0YShZ=U$v6_Y-3T!D%Tj-T|`X=Ua3lB-#(^N2& zu}O~iwBSj0_%)b_WU%Wf1HcB5FTYyG_3tY!jH?LxTDhml;)i;J5fc zVlCO0n>`e)l%}qot9rexe6EI{8e?D?!xX5 zLbP56ZJFQvgQV@!)FKyc2a#o#aKD|~n5X?F z%oN4wett<#fqP%3e6jJ@84Yd%R)XPi_Vt~ZJ%vtg#Mw`s3$H^AO6$@e0m#+@Q}g4^ zt?tkb%-F=nKR~A+Fo1;?=C_W9<$zpeO zmYC}F2`?o>Joi}k{V`h7ob_;)F19O+Ox=bhEi-wSGE%(;!y`Zhzr+C|8XD{F>7TTgD=mcqk9-6yxLkq_AjRTgp zzD&Tqa}8xB1+MuQRUEykU0se6Os;iyzM}uWVA48fgx+Vh?pZ4)wd{*z-}~f`sA$`B z(I{o%m3gPyJWo#koc|(%n5~zu)|C%j3 z{H!q^5Ow9YBBni5nHtMVNzu@$HpCZKp7vg6>dO0Fh+A)=Ni$$srao#FujQ&>#2pa# zCsWZ!^<(ad8lCS`ZQHV)iJER=et^$p!jdt4Ysc{E#N~G)xGH?E%ZTsLAThB&f5#TS z0evRmXqz-z!Tre9T48_G|HEhtT3r3KKtcXf+Z5)zfiI-Juw0OWNAn*)UkE<|-LpI` zrzMfI$MaXyPfuM+XZ-?F-=o$Z5TFHyLfVG-lxy zpYz)2qd(;UN*_MxS9WtJ=Dm(bYDIhM@4J(lH>;UCY4)h>*IEjB~bu1FJP%73$DawB| zNl`T-6S9@Wc2UDokxDhzJxQd@i3t0fG{r>{0FSq?&nqH4?_`qPU$PJqhVOPjsN%F-eH zrm?pcH7BQv5`-hevBnG$e<%GGaIhw+^Adk1x^9j8e`O=>fBgI){J3#kwPJmPCAvvG zG9>xrN77J-hcDLdgO0xPj{W4|UA|qI8v8YO7D2nNy{xp)u6@M!0;O6%I=x_yQ7Q;4Fs8^!y9>E4X_TI8Dt-S-n1I;nc2{v7rO)zK z8`4mt<8t~{k1DHH2+a2#Q1?0F8b*bM1F>`RcbGx_nj)qn7p)6Cv^a+QWnQUXKex3w;b=j9c)vep4C`JtkcCPR8Z6G zdZA7y4IZ$}eE`eXiEC@&97ZBgeqd0m+pr-KX-{br61Uvt2ALD22esxDglld zb?1Gob=NWmx znEoF92#a2?awhibgAJOp5JumHlhRv7x&)J<3b-0BM4yITBadD#o^(TWPAO1tea86m#)y2I6 z;vzmh%b|4tBiJwl*rPyS|NLZXlcp+sWxDYG3uykz*nGQ{arhL5`>*>ucz0W=!$4za z#jL*hVCy%*DQboFp@$QGOom;Z_;V>m3U>=siQN8A(X#IwF!ln8q}@pQ5&wm)rie3p zHWc&iQPS9Dam@a@Oy5@e&a40V+7OA^GB4@tQkjd_9xMnsGlIvNvceY^3WU4eJLV8i$UFJDMWPbjyqJh^TGZycGqbPsc>Sts%dJ zKy`k$EAi*Zs0O2~vV3Ok!udOLO&SGhW)pb0yZ#Z5DN)*1Xp4XTWMtWJ_hrH4W*Y|X zWE4hTLL^}2wgVvWdV6Lt%^53~;yQcy6kbk}kdeO*GlM>-jSv~21~8ic{=;<+#y7zD zYnc@i81~yRM*2cCg>m(r@4@(5lZY3fxX_vt|2BN;;qN|T?XT%JvTtE$>rIecG)d-% zofBNB(LE9CPpPTuXF6!*_NY(ndyN{Er_P!jIi6SCl!9Z$`j{)<8FrGn5cvz=3-{ zn_9E-9nMccd1#08$wMOL*=CM7q9Jzq3X!BHhv)4~y$_3EB?Yh#WWH z1}hZ}qDmmm_vQboc>l%M|8$t%=xvI4*=;Pb*OT}=oek^dH-e=s`ajHMn73#+Q7|s6 zI}4~Vzxv(6?9DEoBdir%kj;5eC361{uYYx z9ZEeF0lOljOsxv-(g4nzx1o^mWBLzY5Ck6u0f(RMSC6=dfv#g0W>`wZgQ4?{yUBiu zE8oyR(45GAvGmqHr|U*!79lecuO1Yo2p$A6D$)D*JZ*jfaPcaD!|V+@rpU&H;=7;} z63kSn3#;CCBbx_UIyu-Mmmw^oNauY@5kDoZq4ZzZg*@Y)Kp8(?%Xi#w}(RJX-YFVkrP zCHg_#@dZZ&%*bW7ri$+(@h}&)u*(QyNa@TWt(kv;gx_1v4I3Y$v4$))DvinBJiU7hJs($0>I7kT^fAzbGk!Y)%N%{%(4Y1d+GgC3rHsredpmo!#?&paL}NOuG>PYjiuI@pHXE|{yt^vgbhuTgve zO)+_I1lDs2TxU}N?PNFD(V%i^mQsD4rz51qC>Cu}a7ch&U&}E{ zQ!#5c3fFK-EiX0p1<=UHF33o&X?v1Jj})epJwe~~N|H;Y6pFCY#Enw>OXy#+-RiAMvN$`ARRv_Kj;T0&hYC`Y55n7v*aer<>a3! zlIR5Ks1S^pC#7o#Gg_Msn35vPG|iMKGN6ZHX*io+VvU@CBIm0rt$?AYX9d@%?*IZn zkGsBjoYSQ8Wl}+zOdnSnKZ;#q7L+ZV}9IsI(wcvVRP|5S-N{N}I#n(xA ztbpH~$AJEIO*CU@nY%8QIGK~1E~DEb{$1npgm{h#FsVrU?4D|Ub*a?~_ce}3zS#e7 zA<6#hYIWij8wGt(iQCc*PmG(PBAsJj2FMCgt!lgrE_#0yp0kQdh9Vc7*$#B$62I(C z&>7$7s>p%a>BkMSGI0EC_f^KZ^QBvQ*FSs{$o_I`4COQX&4D*Ub(a&l*aG`Opp=Gc z@47nMipMgV5Exh`;gVEP($Tn*xLG?fkkGBao+*Dsq&<$ksXP~)pU#4yN=brw*!FuU zyVAVPe`aF%@zCVYFNJxebwLRk0@Onh{1pY8Uvun>SEWOYm8``Dk-FZQWdU~@H0!{ z#-g4ZT6A8%zIwYKXN8}JhEt4{k}vDIYm*lQYv)yKKRMI)NMI|1pO%(TCB`&;E8-7Z z)?jT{DZPEVud{P*zl>;Tbj8+S*W)iY+IFCb)#p!Q{~|AdHMpaIR-5=GP9W*|o<|Ei z0$NnRtrM`)w+?^8h;{tABJYt8Wy4+q zaF8RPN?_4T6yf%^By7kGmqwXml++W6I^QjyU{fGLU zb;pqk#5IrYKYZa3e7Kz~*qfLsC?F|8D$5^K~R z%+1r*h?QB9XpVof(q-Bz+l+i*O|cC8rUYDjJyL~>7bOa;XYDk$#n*D(I<9e5RY7Bt zk2|VBZj4&4# z0~G>i9OnZ`D8vRK{h)6~JA(lP62>9d4c~`<`XOlB$UQQaN&P}Wpz|`b+!Wo__0r6( zOo3U2gJ+>%1JU?$?htNK!v$UoGwfha9<#qeA7+%dw&)mo7? zB>dR_)X#p>ovLCZZM zKznnL#$+R4+(rykr&%tCq?_`k)-+V7W}}^FHF9HxODSmP+8dC;D9w?uS_HFB!{=XJLuLrl**i~ z-EQcs#m=I%Bk%IMTHq)Y4-RkgOF@*gV|C`vp>!b15HI+cYLWO(S2t{v1r0A zq3p&Wf0Jt@!gseoW&-U2DOP;H1ERcq_aCIa-KNxL?L|>4T-ETSf$*#eHm34^N)WJvDf)nG}we@L*fq9a-7 zeXq~{xrjUYdK<5|;2-#f6Rb| z-0x(G{7EI!3B<(_*hfRVu`!q02_4#+4t4J|eg^ia(M6RgIOz$yUg!7te&zqOSV&s` z>!}Iptt)#RDfrPmG2=`0AvS3?eMI2r3@wkcgLm#!`*izZzSMXNSZa%xKaw8VfN@h} zk}r)@NuDfffwz98UTI&vrO;j@o_#0cirGW?3Ech-@G~lV*7tDCR1^ga#J7%x&qUBH zHhuyX3Ha-+lYhy8kdw!}(9}?T5Jj^We9oI%m(>&+2}N&U+$KmlyDpqC(}OG-oUy5O z!~nV49*$x`lN!AT?=H5=gyNGF8@Vy6@ETqA4F6$S{JF5;x#xj@T}-BurBpgFNZHvl zq5m>1ujc)}3Y9}WpY@;tict8ZZRYje3p20Ix37}wcG;M3Lv`y9)uSXMubAnxzSI?? zM33nG5BXoG+nR&6sEV^VKfg*#leT%@*ffA$7g&KK3QF$orlb0b+R&VRu!6hHdE0nL z)7*UX&j}DmWy$^8{P6r0N9)BCTC8keHavfaKpa!Yji8~eV~`(Rl(^~;VC_p)#ZB(J zgO5DHnN8w|Z97*&#IdfrbzVQEigR4*0DFY0&lB_Mbm9HsVgHIo=bl?ie= zj$##*cUyyyock$yxV! zw3ZL~os9%PN_j$$BTN-!*R7=e3_%*v|8gBIG>fZf<*u!@VQ9b$Ful!%QAk5JjO zv(gg(i1$Zvz&Q+fFqft_QmsVO)IHeS%l~N5A@ly9!uM)hsE6netOU?P=~|Tu6EB8j z!8r*=;d1Z48_T@3GwO`;zg*Vl8 zZzI&IfNy6Yjpu<$^51%wxLLzIw7t-LEYR;Lo?1N0swl^Zk3Zn?fn9pSt+wOG{-_3h z#eQHIhP7|v@8pQ&)^nVXL(7t5l-NE`67jgL2lPF*>QtW*S1ru)2hP=IaF9TI!SV5d zYzOiXera*v>_*^?f3j=B$0L(n#={`;w2uv`f3myUf0NG3$As|X{*PZYgx}Y#rOWu@ zJuI#LAT@XotcHa!Y z?$}a6n+T#x7#lFu`nmoczE>wuIS=?qT_r2zXx1>fOU|C|M%hf+^R#>3GB2cY(xpFu zEqp!kw4Ts)VF8`ib=$oYwCrubd{7 zy&3MxhaAV$T?yFwgdLlskWG4Y9FX>T%)`;3TQH%}=$Eto`! zT1L5Veadp!E|O=8fBNu1`bh#6v#=RIJ!)4QZY9-zUlkUDkLN#pG5?Pb)3mgmQ0h1P z5e>;MfBs`@%1iEFT#{i8I5FxqOD`gM)#nGr#1{6#w)Z|_C zBkzs^?R33sLsp&L*`(zbp>dj29EWS>)KK-73%HZ`zYMNHZzc?TM9gbD&RIAcHoA_< z*YA$BE2P)q-nd-70zQI;12|A6%4Ez~nR@8HbgFek4&RFBQZ-`ZTmzHkQ?-&Verk(e zDcREU!NWG(Av}B#I4THUuyVm-u(t6)anDguLaF+L2^dVzcaPD^JC~^IHjB^vrQ>c$ z{@0w(Ju4R`VnQam8-r2C%=z<*QZ}GmVc^tKa0=snzmg$;v5D^B zCI3|+WqdA~dvZmVUIIL>iwM~HlyrBYD;Tn$NasAtu_9T(%6Yy^MpY*?$bvSBg`F_{ zvdWt{-ccabkS|V9+L`XTy+J)Xz12&Ek!AeDK>8GTHu-s@c9QV(g5`R%k~}w!PY=4wtahs#gkFx* z{@HlYRzyjRj4x3;8w&3JAciUd<6#y2yM{tCjEaXd2)9gp`H=(qN{ZHE++@hu^Yh%0 zhkipca=mhUw*;@ja6`EEa~r0n_kfQtw4_fjK9n4AYm3X=Ye&$)S7mUWit&Z_N01NM zq2ZTBi|dS0D>if%Lpv3wRp*L3R%HBTRmK+?n^f%LvgNtVpUt3lp47>&AxA)e7$8US zzVjuN=6CnvPfu#7DHiPAeq`zkIQvd{BKZUy*Vjr&%JTo0vfm&n8?CuSR$taDHHbIy zwDyv&KShE8a`A>Ao~L*@F(0CS&`r$-QCY9kYb1CKKuOzd)95fd3x_F5yePrAJ$=&y zx*5cTsP@t%Bdi`9(u@cx-1XE+IZMBR_N(Mx=J}{Xs=_3xY7SfeF{(Qi((E&SGZJG^ zC0>I>aLNqb>jDdS?icWar|A9BbheT}v-xw|VW{~8Z?%#6S1-^>U>%`ReiDKa3cBOY zcXm9<{)Qs+eKmRV8-G^vVojmqBS|Ze7k9aUJ1|P3vwU?1@iHX4AZvl zaxNB44@c8JA7?^HleKyny;WuXU5JS#o zDX4$kCP}kqW>;K47EsGMuDe5~;l;mB4F};T@E^Z82tR-J?MEBg1|A>ODax9eDoJgq zucjrh#W{8z&m?=i%>P;!et2VRCzPZqSX?r+>Fk6~`g;)79;>sR$BBcX5km zR$FEZiw36+d;*-c|DEAWbOt)bBf2Xja+QvxfC#c4Y8JjYJIgp;eyU|8*mVww`*yQO!qN?yzg(Sn$NVi((Xpix8kwLGtC3*{XX!K25Q zTMAIaDd=tbA2|6h*`Sjl+WjO$QV& zKXK5adlk)df_NgbBU0j!H2gh#PY5)@bJp-|N^Vk=#Gc!R?_G}X8nD6Vq``IRB!lv& zOG$yfSq%$x@zx!aZyop>jTTn2-gJF^(b-ARCFm&=+0Pdec7fojX?$l?x*YT<2ooC& zHVSe>m59P|I$$#d%ge|1;->cvuI9vT)M}h*>65~@VCWn;aHnyq+r=L>qy(#Z^6~c^ zx{VZNBh{TgD+UUAE4ZaVp8N`--oxr$7AP4*{`FrsB zaQr@9?YBAGr;tRENpl~?cAM|l7lkm1pz*s(e-vkx2nauk(~@~9>EM_25UW(uS|8G^ zC-6K?>mi;kAIw8`zSazls54B5LLT3ua_cl~rW(ZUIAHAM|bHRHy6;s)_ z;zZPil37`(*bi#)9ta@z{Z{=Yr=0B8sN;&&8t+z`dMJb@Ibe`+MiL834WGT0f2`V< zH2C^-w`HU+xx*-oR#dlZrw-cOYS8%GPHr5NL5!6xKX zfE8Dl0C`0`^slxkjf{w7snQK3)_9Gz3SWx=#vC&23k=F*PL^nkKl7Kj$d=7kd&=z2 zycxJKx47AMTYU9=h>yT>-NPH`=#U&vV{%+c^}>I|rofj$aY{%PlnM4kcuc;kQAGFu zERvO|wuVise)3sxh{Nam9WDzEBGlJep8%Sh)Pxr3l%#kNHYHb`>h3oR;_lyLJwpE8 z={o_o33#qSzIaGoLbgkw{k*a3QT@wG@|<;f*x9UdCWbLnP9=0$GnIw6IK zl-DF1;Ll2@ib3^Wms)5x1xlWG(O(rtVD%P=f|=#Xo&4sE_*e=-t{wSSUmlvw||w69Dn4M#A7&%tq{CYgn~B*I4PorVgQ zqyVnaN)KdTR$D)(q_l9^eT$rr^of#Nw9F0sux)MpASQevKlamSUUE4Kk?RU?wRR`} zEn`Wm-7s|iICF927I{JkkXwEGoZGv=&1mD!ge6cs!;y*nx4QK$=I<~K!Y^MldXg|o z(5U-Qr}BCl4nt<}{znAPaP6wBf-iy~JmajAl{4&kNZchsW%>NXldgR7$+(ZJS-k>z;nwoQn8=lLauc2BB43=>w8u-h}+E@}o)tk>vZ(`*k};TcS{KPm(x?E;3oG@!Iq z$!VsWD*bYbJQkx{KE7CLcl$Ehwd-{tSm_#uz z8Qt;T=6n;)8+SWM#S{In;w3{W-hvOYB;}W%xP7{f#m26AGO`w)2Fi`Oj8yFH?FPtp zRmoGT306X>=~ys|NshL%_*y>nHh%+aKKvdU9e5?wN(H7l=yy-VG`n>qVJc^vCY>l@ zHibR>=taR-aSp%1SfXJn(~Pq^;3L1=d7BKY%5-g@@Q9Da3dUL-=kJ@_1}|K%qe>V? z&I-VkX2i&+6!dB}8_4Ll=)ne0(1;Agm3Z93dW$5u7E4k;;%pY*t;w^28CtWsS+)CM z_8SdhLr{T*5I88>KWx>Fad(sv;DRpNMITO#41Uk*xs--yswGbJ#u|?ld)|6XTNy-= z*{<05z7pL1wsM_4GMs$?-4J4!;psR#LHJ?k%bpHR+MkQ7G<}pRvxQ^7kqp$eRMX3U zo>wmakOt|iAc_6Q?>mHFg^#_MIccjNmaot&&(?=R7W3>9pVU!}??^gJ%Y1)yU(s@Z zTub7GPGzD}eDzQ>W2x6OLH7#W6}5QQF?v9{LY0ulZ*-GjT7Tp|o89ZR`L?5Ck5o9o z4C_hYnRbh<+bRn>i<%sjwH|cna72EBAy&RW=Gvp=(C|;lRavtKdnf|OywjSi=FYQ} z!$I0*mQnU@^b~iVMy`i?S?KbTUT`DD<-g{3{=H-I7XJ86(oI%oH`D|A1L~;r^mfwr zru;Bs;MFMW9RX!CRJ7M?F|_Ch=2;53lp30IN3wU;iLmc-5)HGtn)eEnr^nbgmVb6k zBz=u52>~Q24O#Gr-Yd=r|7^!sM5N8K0 z5Qg+2@hAQtzZ3{RbP;+918TYW^pEJIDS&aM05YZ4B?SGK{>)bat_){R`rd0CR6S{4$d zdwdVOk9YP+11A;&b+%2EVvbi`1{%k?Lkdf3dO0^RrHIlFGgcK$+%KiH#&sUTziUPS z?MJ1|9R*ow1`ZNzq@Vl-=UCl39Ie}W%^0Jdr{NUhtU`@Gw6*9`V8mmZ(aEM(ch#*+ zFPK&KnGrPKxcpZ;)b(N_gC@dVxzR5bju7nM;4qSU1c3xPje}H97 z@+hr!`=J+m$T!$Zm$UIf0QOiORU&Uk6fYYN>e2IQ8?C+Zh&}@eon^dp@_n4HHG;@= zKGH@{@ICct!vaU0{Sht5taTFG#Wz<0#l?)ui0e-m1Wv|ndHD%(BcXi+SRhZ|~kOi|E59)g(TR1w1%> z!7-4sFS!q= z^mF%Dqre^?`%%w0y^q0^Wjp@eX@g9UeN6@6g9-+y+0P48|`H6}V{yEV3nh78{!my`Vh zc{iJpPrNex|0|&Fx6i2$h;R%{@+qBLONALtD3U1qOl(vHmuoJXq01zYoR#`7XVW1$ z8yWIb!Gx3VFJb(?!r%V7#m@d&Ddui#d^L6}=wY2Nqj3h-=KXRJ0RrE>i_ypz>8Yv& z$Wr>$)Yr|r@|6ZPAAoi+I(x!`50wtuz3l$GzF#^gk(mffuzyg>=djhwCgxK3LKHrX zc(F8X{dr4cCsHG?cLbTfA&T}7#^;(`g7L(FwuqUEZIf)mPYFfT z74lh4ekg+2w;X1$;hd8xq3-Z!#cUEmzYwJi9lz48Lw>KWLQnBlPI|!W!7CZ&t*)?= z-|T0`{lf=w1rm9YB*{#LjU){XiXY15{B@!@StVNaHt#|1g0$fA1kiCSa^>wBh@)xv z&+mp6?*By|g=}oFrU~sz0Gr8MGf~?%UnS$xp0$721&7Vj&vc@|By|TWr1$^f%Yfj^ zVRvcljyL;2S>6=WB#fH4Ni3irI4jL}?`owH*>%Omwc1qXwOLu^_g9Y8!!$L*)&9(Q zZy`;*6*rk#|CmKORqHUXA@+r?@rDZ!UjCSXbClh?L{f)KZVLT z>;FOjaZx}h*um8gju8Qz?{MVB2z9Y?#MQyB(TSiU10>8~9sn ziTw$ZxJN7rGXI|G%WG^!H-9^_Uado&mEwxkEjliQ(3NpE$y}H70wZK!Jz-4Bw5#xki?9dB_zu1P?zEXOU8A^q8_b~_2-YCrd zkHy$Ws75wl`Kqt}$Yi?zT=ne8N;G|aU;N0@4vp&%5B$ghiSmF>IxNZBr1Clgd+}M@^=ymS zS{!q=?G5ONQfHr=+VMhJtN$s@=FS?5{vE3Otir{1ZqbimR^i$>R=*fNw(WoAR2^VE zNW+kRDqR=us!W&mY$-#D^A4zrfnr9RCYP*JhBBOTCzLy!m88opDoG;lw{O5LjPPYJPY+b&i#0-V1eVp8QfxcV| z{5%~*p$~7|d)dB&>NCyyhlaQR;Pg9{NX?z>=uVmWklSw~t5$T_MQ4!sqfs_q(E?D@ z0CFAvO}{4%2imDnDB32Hpw6mw2)DYN5}KDuT+MO22}>d5WMfmsWdU-IdIff+pUTF= z*Idm7$0yki&9Gbrg*LQ`h{4ai(X;+a8)5v4oeeVm=!J^<%ir97&HS2SU-CC~w1dAI zB%S()Dp4Fq@}1JGJF)Od@koZR8gK2lp=B=8C-tPz#ux!-;jDZXXBVXt+_4e7-BYFo z9)y*~)eoI%&14}4%RPGFzwXe$MFe9r%=WZBJRkjFO44qzWrH6YOkG!*$J%Z^xQ#a| zNQF0`pjhrjD+eu^is^GPc*yFSKZONT# zs5CJj4s8wPL=5b!Hmcdbjf7$}4@9%wix3PgtSB$;lCpCDrECr)WlzX#4+T{BJhMn2 zg)&b+Qxm^XrYxf3Tl|qIl|qhKAqxG85t%2?9CaQmzB2DAe?;nQ%ml4ZUlC5)hJvpw z;EF0SeYW^`tHis&Y`OI`Wuwr_>KCG!Pd@S=y^6NF>UkGPn{Co$;YD0$n7ySemo zuF)A_Zm-J{lm1$M4qiJ3Zg2e$2b8Q2>QOcXl47fb@uZ;h+FL=69$aYym?eR!Qu^d` z=8DA}^_2HD`HApwsMH89(ve|GUt)0+bQrMYxF~_=M8*d+t4c+f&Au#NCrAS8Gxp3s z%XTo(be{_KS!HIpeypPy#>e$9dA___FC*FrE@n(;oRDJVf%qi9!Z>9v0S<#e;3@q1 z2ag*+H{G|KHE@3w`VD52hl8tm2CCZs7ZO=d;{$}B{D1s%A^fnFGgNzb{kC!EuqbOv zluiR*Qhn~2?7#Yizh$E}@A;Li*K`Z4oWqH}#PI)1`w%!zm||5zFC#8}39W*ecx4M* z0zOD3DSf}AX37-F`^E!bjyLXbqj|4@M+I1L>2DeY0`s@$Pu+x&+Pc2r_(-8Nnx_r+ zn>98(+$*>;3xKoBZvacJBR{lzz8Hq8gZfMhIoO)*o#A}L2+JETL^gt{l{y`(488)S zcV)H1Et4;lzI{bQdg@b-s53#tLNhu15))sC&hmafjNbWo3Wrb;ezfS#{k}kFAktE%d1-Rsp9jw@GLe!vD8p+ z7*ZLOSt9=NRbf+q@n2G4vqnSuC{3!_sHg?0M+a zTf=%I7A9-3)S@*o8GNDqs5*1fH+(}OusJ~4anlLo{J6mS_s=j%=f8b5U4O6{M0$GQ}givqxc>z4&>wy zcq?he^aq2}dECdtnVW=O%50-6!wOn_#gM|M7@HcS3KTxtW^bhi9|kL-X^Pr9de#<3 zWH9@_PE}m&r2WukorXSbLRrbd^mZrgGf#HM@#iUmpd2>FGiRX%dTarA+temtB(xV! zsnOT>Xxr~f67FB6c|ck^qs(;UgquzV$p&fXeHK5h1ei>wv&-S$xX~`jS)zpCg9PM@ zq?EGo2w}kcOTa;8AuV>dC$%nYvi@O^V5LR2U&BTFZrfq!p*)FJM2-mm9WQLb-uL*) z;tq?J#R}-o6BBUq9rn}cCfhb8eY`OslYC6W_ZC6s$|Dgdq3olG-%WFVp~PN9#oV5& zu|d|i~fLvx5l?{VXNiquRN=rp_r7NSTa4SXf zbruf>+VSZ)QgW=E}4@L{HpTVfgAMNXR+LKETs@*-rA%Qb|zS{K^3*m?8YpsQ1+{j<~J(B{9s7 zl2ykOjsu#N?Id_;D;6JyeG8cLXei3a#cN9lHN}gM5!tp%y)RQ1y;EaXvP@S>hLeey zP8eDH2Unp$BSrWTK5WK9*^y7SP>$pqNa3(lM6Hn;GEIcS)dx(ihOw9>e{sUT_(yK6 z0$R;B5NwT>ui~`cXMHwf-XjZp9SwI9H@DzALHw3-T8WjcJ7vpN;~&b_Y#Z z&rWiJn)e=de%=1|Z8^*9qnm$ajH3O0c#gUEWcgX7M88?I1IDxDY3J0y?%4YeRSDg;oP44=p0nZ?^8k$=z)btNlw6`B5!DMH^ z;c9|O9s0|dNx4fhB3nI@VtFc|b4)9#2m&h&r~1!}z~_gK(_dLPy*mh+&pqMi{>PD7 zqS?znx++xSl6HllTDQOv-O~vQQ&dKA=DJG{l_o0K-qOCCvwc*`H&!XbAwChqw zKQvERuSgY0gQT(JJ!!q%OL6XOK&J9$Ja$Q;Bao2OJ9tWt!*fy#yiWCVU5We!6M!Cl zr;_<`rT6bu8}?%qWU)~BuhB~#4NMM5%-746@bhfVjaDgE(;<;v% zI(C5NdD+r+Hq9I&Hqve{^sQogF&-^nc~d~E*5&u$uz^)FBaPg*wakGeFYs?{RbX6R zr1Qnq4xZeH5I%O1mAdvNhoRw^+LQa|GF)7-8Eaq}$hRzIh)=`C^d?Vc-jfmXy-m7H zTIhva^3%codGsSBdOup>%elqMqBfD){Bhc9Riv`MJS#|%Kk2Vl+*~(x zgMy`Ktd;182+*;o=|{%BE|8u)+D~!UnQ90>yBcc0`gx25Z@YLgCY*oj$0s@9{%g zNjPa`fnopG*jq*A*#vF6I4>3;1b25QXmEFTcY?da8weWQ-Q6{i;O-Kf;1=9n0_^AK z%buBoIT(&vEY|gORd-e2eOKnNVAN4v5~5f;;xfDH^ zuGd5nlfCJs>#NQi65Uw5H-3u$_!YnLtJYqInM%cy>AgT;V!7g@OcvmUWv?#CQy?d4 zZ_ngpc7Q%mB^yC9g`yyC6o2gt`8-;(CZYFGrl5ZH%{c`UxC%N@KlE)*wJqbg-6?4ad35$7 z)}Zw;u3@%7UQLEJeL)s#qu{?yT2+X`GEy^VkqBBjXAAq7FB2Ef!d{T=>IBBs3m}MexV@zhDT~6ba%;w8N7ukA2tI=_iupo@iMESzXJG)?gsVcEOFw|8jvJhd5 zeN26NR>db&R=F;}ITVB+@*o)cvq;%m6t}sUCW$=;2qm)EewvG+3_Qjv2^4&v&h#w1 zzDlBpY})QlB0z8!Twf8P8`>l7*0rt)57GCoa!_p%WwBYm2=f#@u^`N43{`m9&X(8* zUCKSEvy=$AgyWH?cJ~zx1a+(9zD+{+pSt_FRT(p_Vcy+l^L~GvSXx4f(;3o5?0|1B zOQ`9Qgm~j^vsI2vLDL7wjlW{>e+RMizcdC%ui0)fb8|&9OlkRLYM}T+Jj*#V->Xbx z5*g53;4UYA3`Shw7}LtcPp|ZyGsoURk%0bbA1?nAvHD{q)X9(wK z9h&gOBRy6e!GT>9(KC^+id!6P*v5MFe7)7yfp9m=I(Ys3i_TzyY3ch?)jQi61S$M9 z_6VCF>cDV>h@Ji>oS^H6C8el^w)$?T2#Atj(nRi(@#M>?PyVdOKk+bzW*6NXZwYWK z?9ld75xl4I7-U63Q5+BN`6igl-qxJ=)lYbwybrK>QBL8eCbynawkzS(Dqh@!h(13T zhysAyaljZ!5M`8MJs!Qmu^ELt4&C&QilCR>= zF%4$ppE zmF1GoFTF|!h~}OmG>ceF0!~ay3^CK(3-ZYx-8TK`e9)8(XscjqBT;0bz7Q2VqU&7f zcQyA5RGx&hS;ge*=NfU1RvuLd!6Kz5re-1FI6hM87lQy?zruuIbl(?tFdPTv@lF{+ zC3&bPFd|r!+PAiLQ0j}F?l_X)b2DfCJhOF-5&!v_s(IUSv`LKr3&D4|Gm70w@AA6C zG26Sct4q>`nPSj4>3Mq@PP>{ne((p)znyGM_{0vSRjRFG7kov8DSjM+XTD)d{n9#L z5q;yQ`j21v8^5qe%HuaGU${8O^QOEaqtE&s#<+!7k=tAv%2GUaoeEeH z1#7GqgF3y$oteLLx)7(H5jM_h&2IxeDf(L{CU{I4&57A0Qw~dKzA;Mv+%%EyqmcR- z4y#LE`N(bO5&E)9@4RkpWq3mUS(?9if>dWcB}J!$PT(ahVxS`@yi0*tH15F8?DQjM zl-UKnXxSy-Il-whz7?^n=*Dv>z{V<4>&Cof0V61u?xw=T9knm;IAZ^F!Fy^~k@W-+ z*(Tpw;LW%CKuu&B?3#sZwbD_WxaImy)xEwiEl@qlMVRjQQW_d^xNy>_^ETVHDVZh= z>C4>L0cmlWso2Gk6~6I{SB=jhGAPcp?aSHTNt!8GOATwA$oH|3AfXPQ`bk;<@FV^I zZQ?85@QFqJ=#Z!-H(yX^U7!2dH;(Bj{Ta5w)5&y~-8a{Ev0Nr7C+bF=h&$9<2mY6z zb#HL2xneH8)a*WaiAbYn69u4>`y&4GX_6*LcBMi(BvWO>BgrD1hqkX}LzG6(KM>NS zqdt4#;HM46vj;HOk>`TpQIIIP5T(4QYt3~07Q8b)3aFkejNk8L#=Z>b_)|g#1cvZtf=Tw98#`vKr0;ro#OQ;%X3Y2A5}$fxik>-; z_^#y&ZQ>sYwP~5AF%74of2)HPoS{dKio<3hAtq(zF~u#$P@E3h3bRd|UQyOT!OcKQty{b`mt5RF@aIPqCO*XKYc~ zAx^)?QKxu;czHul##+K?*vAeA9h@9vPL~D9xkvSJxXkjmQ)SOMqM^ zK46!5ky0}$iwB2Ocg@cC^T%HT4uvjKm&!Zg!{VT3`))Kp0)s!AOY93&u2|l^168ln zL?%TaqJIicxDI^<+(U6cL@-1nK~6gKLhVlcjs19@Cv{CF;6g~2YhZKkitmTq4})`A zXUF;Vs^piE;GXu8gm|~0vc|JVCz=d6W>^O>9N07>kedrBE3HL3eX2U7@ zY24|FLhvia&%JGKv9LZ4c|7qO@5LrdUX!Uf;tq#8b93Bz>EFhDYihI?teqfo1w2v< zDq=u*43JwC2wQWrNIOGi)%TA`lm2SF5_dK$*zY(k9$&FiMfl$_PxD{OtA2~wG2v_} zSVAPMqN07$fkw5^hD#4Q(G-5RQr)pZf$!rH?`a>3n{ZUR%{EXkCN2(mnn^rZjn3Mz z@z;CFRdc$Kfop44Cu~s}9r+>V@6DtORdTwsUaxqjdDKs8X0##+M<8xz^$|R?i-ir` z=6(DCKIsfz;N2vBZTRodct2=xG&&-(&{>v_Zq2ZQR1xdSax}H9cD#O2MN=6DJ=$6D zJ5zy=7naG2G3fTW?ym4`7G^8aIy@FsNbceF8$rzO5j@esO2|Ub#bzH&)uT5{e~>eB zuMczxpNq^psj`cI)3!9vdxFi_X$l?x2nm}cE+AN>1DRQU`l);k6e@c4#A3Mp zR;Ce`o?8x2V8#!_%ajz&U;`bW4%{^z9~9_{+_d#(=+6IfSV7SGhp*-h9~m67NpEj- zE_xc&^hN+o%CPP=QgdfeF_v1L=f#WnbVU`KkXk9doSwG+u44q>@BD5pC}|5u z_cICyrL4+(kD?h?NbWNUGLe-MunlEFMpf+(!7C*|vks_Ja>=b%#FGVd9U3BD24vsc znP7?dJu^Of+2Q|1W&iVS+rgtK*GY0zff5-cuoe=F@dcvm6hmJc#NIdX&9QP`@NM}q z%dqWiBpx0?^bx{e)!JjQ-5fxAVf);{z|?nsq#D_O+i|u3@vHrhpIHUk0u@u-j+f_0 zCE<$ULQGIjM!^MQgCkhH%&3nyls<-G+&#bU1?_i{kH`<=tnLsCh9^}xSjcZv1+)6x2}$!EmNAQ7 ztIWH;2rrMI2)yegt!px@)F*|9x|R*7e8RWHrxTgd>Hs7@+vR~N-qI(DR%21oxFbe) zwv<0ZgCe?Q!>9{;)S2f8F<;hI`=S0|ah#R?S|#{g*hqG%WYf(Z(W80Cpj3$R3{)AZ zUao%mrk_HQQQ9P@qEa)PnseL@1(xtXUr^0);T*IUv_cQUGVlF({Tpf6tH1Gg)Dv>O z)k8uPmcH{CYs7Eu0UcQvUhaak3E1w~cWMVRcr4>dmR8-$Gy=bF z?fBDB^v{b85?M!oQk^YOY^B!O2%JTI?>OEP9iBA<@doHf>OoxsY6>9n(Hq=u>f(^o zCRr3G4a(4i19(~Ml--*3u>a;WETDb}dn2bCnKI!7keel_%g>l|Y)QoI=ZM=Q*jzDcs+@2!APK!=Z3C$Wnu$#>y%sVDMf5|6Qi zqJ!kjqF(-s(}@=bd4t#$&djKu1aN(v`cZ#1neET#(<9kI`@ow7Yw?LsTMUi2k`Hiu zj5H2uxgESKv#iC32p@c32dZ8Do6i+W#GTFs;mN=T90J_>Cf*VRh17{ z6;6jj?r*X#(vQn<&iXer<2MBsL`<_Q+)K8B|CXL+^7Hr+5iFl~$sS+^M^wF1rJbBM zC*sQ>>l#36iWEe3P)+lB8`dmu%f=Okl&rYoz>$I1?$K&z`+`V>i0B~znW(qR=QB6F zoC6p-JOY?8T!Q@fQ#Gq(cwbYyt+$~36nHO0=@)`*f65A29quOQMOQbDoeq}6f?xqh z!qR$@g@XOFvz@M;Daw1yBMe>OEzv;x6CpJ-BPT=nEBRi}Xt!adA1pS(v1~re0LdT3 z9O=+wuP%cU98q>Qxd22z;RuC!5~d) zRqu`HL)Mu_Hp|*_Iu}%14YZnp@=X6%sa`JO5Z34MjQo@**grCBNQ#66b8+nBUJ z8T?h<4DevAo@>3h;6+m}mCHMMucIJGfE8w^a?b5KH&chWy8mJNu?~mK7|REq7DH2n zl=Eg3eS((%>Uo{|r~k?es?{w#!>3KE#TTf%gz6R+ z`^yCAl7f5XJptC$8kpU(b$*vJNq;0 z`r~zto(m*CWTd3H=}&^Y1%JVzYwjhxjq_`p?QnBx&Blj{5g<>0P;E80KHav8YjfK0 ztij92V`lDr%+(MMe^$H2c7^ma4!d0|nI`|D2;x9I!$83bA8&HC+l>6Xs!+mUmecf8ULe10Z$U%fD;B!?vNnZ7!T8vgmhUnOeIQ|o)&Kc1@opsf+j=Oegw z)C*Ofmj<;U-Js!_!<7=*Yw8keZ4oI#rdw(WkS@aNP%(EB%9+vH~qCUy~l7;{m3>V zg7MVO2I1oPqNB2j{%L4|36Rj%7Olu6pD^oc|EKmaK-4ZWx)?@y6P9SYu!%e#7rp5F z1Hm9;gq7NkVmQ&8KH7#jSfZ814z~~qGT%y9Y(g170fWYh{o6%0wFp0$j@}rUjnNaP zyS8I9Q2<` zHz{@4YyYYAj3QGQeSysPqmUF)2zP2{>?D6dgEcv0ByMwUh-w#Q*%&`nveOiGSV7v3 zU1A$S*XZcS%!ZaRdw+OPaH(IUf5Zd&_p@!FsC2IUK&_#MrkNVVO98g#I%{~BOQ%Y0 ziuETt8)AO(k#<@{?W^M7;J(+5SyFto%CusaQwn~XFxpYgW)dB+IRhi`?mHxk-$LUR zHIK9VNAIQh#XX3LuU^jdSJzjoNJ|=aGD2dJsCX0}HB7uE6|*ZxQlXi3R`fh_WaP1> z7$)%pz@bUKNL@@M0&3%-r=oqR+|Tzy-V0V|vN8a!6LZk!sBFz!Qp_Tr6y>4Lk04!z zH`CURiI^;NBJ&2+A)Hf$PQ}OZw(?r=h)LSstKKmhMBWV@LlAkiL?KhbSR2}B6EvF? z5WBo>w#JbuLjC}`uh0bU@lPv~2Wv};C8taE4TT#77$iq_5G=t(bSnD^jq@Yvq{~ix zwbGUT3>a3H53>Rt$mfDJsK5ga{sy8Xz}aNoY=vl9WC$>1fjjn6XGl!F-@hL{t7=T<;$NoW zK7Ah(sFDauFJK_(6t2`r2v8^`jgyqUyu(#>%}booTWW%sclsU~jy*A8c z*KN}HOm_@&{7BW+r$;$4Z$@<_jbz}IXaCjs6kTwwY~o@7l_0yL$$iwKM{muA+-{yf zz{rOx1*t$V*456(wxqA1urek%I?@=Clx=Gm#4>`)2(GQI0`Q3@WT3_RySXl0fW2{Z zZPwgv=vAqv;1L_l4I1#ZtsQ=@?!7ahq>?2? zF#U(G&keO>z*DA&(dn0;ozTRE0mS*4ONF$S>?5kVVyg zqaKfd{3zI%c=9EOsEde528RLv&;ufvvd&_e1<3U)f6}6cK2D-@Z8kMGi&)vNcNi|% z-W}9tSgCLUvxM#+C-L$VpF54z4u{}p_Ucn=WoE%L>VRk?LGRhLP#XtAae*WClI&Hy z;k99Q`E#8lp=HWXqfIpQt(pj91P%i6=5n5MKLuxcmgMIv`9f@(cS!i4Vf5u2;Qp5d zV$Kx90Uat+hrROX2cH8S`%~g+Z+x%PHZm!%rVYuDL;?F;j5DRx%2c1_&tebd zB*ma=kc(&YZ^QbxxSel*N^Iq)OH=S;?BtvITB^LC+UIu4>ydhDKGP$OMxLO|@xK~+ zt#9~-SCV8?+%Zp5PIU{$>RX!;^XsBoc8BkoIqC(?l(T+s+Sc?TOS);-?aQg;Djcqv z@=$JI&bhA^5FMFNqpJh>ekSYM+lCh_Aq5DjNSdY(ef?AMOFaF%=oEkypE&{-&92OrZ3;hToo`TCXU2pMQ+B1(#i3|bK z9^(k(#)|00SxvDZG##$>$*4tW<@WaIHEKohmk2S@I@m9Ka9Pm<+J6fZ zHhI%+>>5lzo}}>)0#~mLl1)rV?!1bdF<|1X=y(RsFzWAI6E~1tb@Y#Aap$t6J3^64 zXb|uHNKae!g#%c44#=cY{w8Ul&iNfefD;F$0dev-FgFIowFF%exF5SpO>zCeHwh8x zojm!e*SEudVms*&Ge-}7eeTr;Ue_H-M+dXob)3)2xpO-8VfIbO zU0N<@!NOW7z(5b^%nn!7hCDV+Wal!hV@m}Kj%Txj;OsA-dUCDg(1J#e)2!J%O}8Rn z<6<;mBT%;6L-1*Dh4{@S?PwFghu-?gLdq=}iJTlRRuJh)TdYq6x9fF3P!6Lv8z|Sm zndnr-W)S=-S3;{jMOj>4uzx5-9a_22z2x_8VW}9y#!;&gbO6lKpGh3X1sL5f^(6X; zQs^EvZnuo&E$VKd5gg~0wp(CfDGuVZmQcJ2g zA3_q(?SKnTjv&_J{$L}MLgI-kYB%W5ouvj^R-)(1*yCPrJBH=Il-KbVvk%v~ilpXXIvnMXb#@ zlMalU2fCRozr#gvU20!WKn4AS(%e$d<7P0^HJB7@we&-i_%%V=3TF!Mj4}3wYYo(T zaz?~jE0IYxY`;()P+$e_RKtWjDq3a?Vql5LK+mOU$IU~%a{tk&O#I=1E48<2E<@gOJ5`oJ&AQSf{EeU0KYpEW{IqIRjv}n%a#lS! zbWu$!(w=&M9{`yYfdXR z5uhnjcaU(qvvv8R6hXs~A4Y8y81O+(My8`C>$naQ=f1g{^Yas$$o-M|$L8LHMTGC= zla+@)?REP#G59hak>KEvkAU=rlZ+IX)21R#%KVm#@WU4ncrxj=;25;U?il#@`o%YO zfg3Z5I&fo3mWca~H3PST%<&8I>o0JwDI9GDeS85h9OE-mms8@%HbDMGT~v!Fld2*Rb*cW)B%g?+I#gH}O085-r5^K0+T25Pwb>JzL zHnIEARy!A0G{ZE+f?Q$qspj)-h^bkMvh4gt)_#5O-!lWympbN;@*iAL4t0?=0 z#_jMA;Xc-ef|?smyIaHF!`Li^uITx3T~B}qZY6qYT09%eOVW&fIV*eh%ER%p#~f## zUHCnn(s!lGM3{sRfe9lGu^tLAJ=v*_8>8xjQ&yw&u<(<5bSjqqf8M$)(kFCyHZ3=d znX}KB0l6r(7cC^o>N%OM8AiPVN)1LXIl@Pl)W^= zmh6xCqv26G*69KQW9wnj*3*sBHU^!jvhrl3zt%%UpwwD9STuGJ^{%8u{pPttayW#b zJn{L>s0{wKs|g5npK%1rY6$n{A3@!I0fWH~1Kfubehucr!g_;dPE$S3N}$SZ@oMg9 zRxj@PNZjVTXPc}ICv^d=3fdc+n^|DX;6)l3pLD~;@lhS*SipTK3s9qLyT`VNo_bwt ze)Xwog2AJN7rt!kk6m)B_OL8>xxWgjRx%-)0wJTmPNDpnXL<|V$FIV&(p!=z29k;bW^Lu&tnsOTHGfAmYi&3;g+uNR}ef#Fztm=Rts&-ux~_7C2+zfaKB>)=?iX zgxa0N%}Rb}ekJZ+5zm``QR2iOArlW*+MIf1Gl-h1X=oYqv+S@5yt|H@uGw9SUAr=L z26GewYBi~MI;hH((L>N1_SHM>h>Y5hT!wbWq(SMzj^XCA2=8@`tA!fZ`Vv~4gC%z8 zBMGvRR^Y~HTxbMQvJKID!&w23o0D7fRXroLDAjqU(*1+6Og<^ZmiPhP3>`4`xw zIeMF)0y@F>-XSUiEIr{~aR|oF49zeZAX}wPx`OMV-8XVVab!s9gOkMhzd=$I1 z@%mKC-gf%}o)!up`@n!I19(bc8<~Qh1duEL+d%Ef9A)4AE73%_oZyAh=jPYzLkT~j zzravw|Byjmub(dzEF(2{mddL&zntcM>PP>NnaE2c^W#++HaeM-M?hl_m=EJV_sK!M1Lrkr^+ilxOz_AD1QFL01=EAampVs zq-xCAqT5SQIS2P)8$&4Qk+M6LA&pWH?Ngb+#pZius|}njz>Lh;9;r~v?j80}g2G%* z)e02Sn&n@IQm4$E2M!r>ZEgqoAz?lkd=i(>fBfRYCuMTUYYNUQWMt9k~g|NJN}cR6z0ma)nn zH4k0-q7WnCv1#_k&;B33{x^Py16C>eTRjzAo>^`b9aD2bMtx*9_>s3&3(B-Nw8-JO zBE9jsC~Q0y-$v~kLXO1krn7|oYXX#NiR&;2-+f&Mrrk2J8Zne!@-W_MZcnI4^DIIa zd$<)eXWgSfv*<5vi&IHxi?6g`gQV-J+S24w<_2q8B;^AM1I{_Zo#Mdf2vES}%hrhY zBFeK{zL4Q3Q7Zw@@?xTk0x}hf;N?=SeET1>>LITyxl$!-;&e8AX{7iWi54bfDOncPHf+I8lY8MLnm_jAVoxjYF_wQV;)qZ zt)1WsZ08O*DMqVph3UHwd@e*;4Dr8uaZyW4W{SALu;6|!2ftq^2YgZha1t)4LVV%hB%2zL zZ59Iz)@m1IOr)K#Q!r4%>qkAOL>i(>ijd?Ay;5Et(Se=@>tvIr)Bvd&V6UexecVR8 zAHeB+)P+d`QZJChZiUg*Qr2cICGoLWk1n$uge{`1x-Rx&I&6Xh z4VtrQr5=onX-=9u(`0Gr0>V6P53urhpgyRL_s&Ai$*%E6ge{Y)D(MhqCF=OJ-1Ga4(P>~ zvMiI2a1lNQ(&nrzcMs~O2l>>n3gjH_R$$OdsH=L-fN1aWM%I4n|F|mEyCyd=^rHTY zTHE0SlExB2eRv$sdLtK`InN$RAJ^G5n&u8aRm+Vy&kDy_>@QelzjxmP-L?2e&M7j* zF$W+gp8NgFrYLphSS;oO;H7zctNmkZbS-D!IDe#0*JUo?(bd+M(mmq7zAicLua75} z$#1r8$`A$lAetVDqq$o^qO(I{OUN)Y!rV=%V$aL|XFa}P5yHHQ3YZAdv7Z2yifGg9 z*oXd#6to=)j6Rc0_oBo&ZFgum0~t`HlZAteb^*(DO9QOL`2>ACtPz5J{AwHNuVu*N z==WCPUn`01R7|+EIUa>xV}|=wWeZZFG9KuDeTpB!M6dC7cXd%OfcS*piYx>XR<9?Q z!|pO{%5+OG;~j)~n@pisvhlQQh^eiar8PR!A_oBmd!YW1MWlDvNOww8R@f-~9Fhc5 zDwD1`#XgdHBZpa1%VLj-0h6z-YK6VCN;oj_YqGj|HSH_-)GS%XzEC*4Pp;`?U9!S60xYGQWDF~ep+V}++Iq3EGC$JZL)CL{Xb zzN!0lpSIv|7Bejluo{1v8(xc!K8e4}D@7ZfFhHZB9{9-NUES%h4MSe;N4eF zsm9dN<>gOwSO;XuzG=x?j@b>ZB(*hQK}0|vdO4q%igY`qrcGgFK6TIWaVPbUk-;lR zgFgpH`m_d1DSKUIyZ7z*mW(I4q$#Biyv}v)eg2iewIVTQjJ=FGAku3JEu$T88fh^# zg}`f5d3^90a1Nz;elJ&5bPi&1W)TeZ6*`NbiU*TQUFG>)g7xo&W z99P-@@w&)Kkt=`%kz`|^S!REWZgTp%S1+bPcOXRG8vg07-)2 z@{i)k8%0d`PhM)zyqqgg$fyE3LUY(eW(h?Zza>}NMeaIP4zJ+$Zdh}#V_?fRORO~d ztlQ3pFbdocf1dviD4cK;f|f!SdetlGxF1`AC7%0Ot1jdaV0L2EuARZWV7&I@Sl)jPg}>nacDTuMK#=}x0umatH6uOi{TAAZq5?Rk8Wved^aU}}-az<}h(PB&mWd?qsmH-$86PbIUYxK$DM zZ4F*ZZOE2C^(AG>9x^%QT|FdXieVAtEy?Yj(LUN|!})jIoyCrGA?~|5F8YhzvaF>v z28_^6_I4?5#Q;jze<(-aP$mVLKp7e&F=^B0+3dEL`Hs=3U2c}U$Lg>}`tO_~>^$E@ zT-SM3h)*pI6vV{|{W$qPsdcPl>(&Wrl@(%s0Cf3an54c0Z|O?TY8%g!s+ACnJ1bf+ z%M*ea<(Pg&f)vT^D6ns5?cG%>`J0}u%-%DDq8cE;{x0GTf*J+8;I?gVpx)Zkmc5LD z3z>26Zi+pG6}T{-V`rE`-nx%eopxc|yxf!}v3wMpHq3V{jmLWbWwLYSb3BWg!gh?# zPX_a*|M?i{#d2Hl?bK$EZI@TW8Dxxu)sk7aHKyC>Mp)Z}QE?!BM!)$&ie7(U99i&h z%uL&-yd3Rr#K;X$qO}}$b<%4}b9V`3GNiPNFV*bGRG!^5iD6I`=KCSGO4rZ&iuR;3 ztGCf#h?(8Wz7VvM96UM-6VH%9*l#i*BxBLU;XMB_`K!sQ5s&KO_7CpZ8{EzS1$y;` z-^P{v@GA~7O3FOHs?YGpZj)}9&7*65RTc|UHfw}# zry0z8*_R*-?Z;-HFk;jttr8sW5f}_@2)lT>oF*~WtpPVKv9GCqgC-vvMtr`0NHLqh zPc$}aFAk?~MJqV{>C(uAw+U`E-9{D)IQ<~&(tL79sBa`WQZ{D)$HyL_@Kd_ZM7%3+ zw&odwkJU~HdqxB2LulLbpoRc5nf#T;^8B~*pZVeDN7WXhfTUTRb2BE_XtjUEDO7Sv zrP%TZMERKINz5VC?vp{WqhqC3*I5FOKsZFHhZ>BrgQw?^i9S|5eG-UnTe-B8b#5>P zfSc27QUTcs4SAkIRs-oJ4DlSBmVjy9qSjnjqMp?TOPYQCsw#C$T^XhPb-P^Vb=|;V zB|yQHwBOPyrM3jy~;2@Bzd9&G|7A$iJc4dgqKn0I$3vGlBs5U=sm zOvW2fD73P15YG0|5buRnK94emWp;4Hus#|KgkODUd2UM<*hOL4XL0&Dk2b*F$&40q z>>in-SPSfJezTVG)!?I^yZ#^Dk6O!u(Uji}lAAEs(;{PtQQ z)Rnd7hEj82ZTY_clK>kXYLd_gG|wdeep>3^*-vzV82Fz3GV008JH*PJi1%)QC7;di zqWq*Q$_dwx*0T8l;i~^)|tPn z^BiL>*x!J)O#feB5{`xk`oF*Z5g{3uOZL(ALrk5Q4+Ebc*?xC9w5puvNmjVCWI1bc9yD)pNVs|&w05@#IafEhUccMabP2Ahcp z##W&^AT@%MorZE|8x(`j*Yfb-keLVJ54938Ijg`)^vZjm=`tFX&U*c9k#+t z>-_Vq?b8R4fhfr_{Xx_Ie^GYb2+0O1Egj@x^iVs~Hi9s4&r}$cI)AZJEkhbyK#4L@XS5Oc&D6xH7$YFl0+fkh`ca_{6jw7n0Rwztq{V* zP5d369e55j(~@2ucyH8hc9CIG!>FaPR$;8wPR?EsJw`B`{X9r~Y;8ThDqLm(qB%~t zwo+s|?SxO3YjP;=n>>{V!`M{-b`2k%-gDm&WN~kt(f<(@Vm+@Lr$X4xG(;RIERfdC zeP;UNhccEYOV$cyTI(mgQRwt8$ydSQoge#@JIJ6Fr2r^*&?I0f2fPY&M7LAqh07;; zQV!EnA4~6rTB5wTCScL;pO|~X1J{^9lx&=Z$vIuGjGW~t(Z0DL3Xr{};+?B6aB4|P zq5c8M_Wu+Z?Gs5!I%8*}o$0IDrxKt{HrDPE{ar;T9 z_{{NgtFhSqq9b*PCLWuwpucsV{qMj?+4}*>3;w?aBSsf8$ko}{-o?V)+4BGP3m5-K zv_kw(xGwh5iHplV2x++Xz!J-CsX;YlK0(C5So{d6`~ZyA(b zNAnHQ$r;C$v~L87VMfYXo#g-Te@o^b>c78!J~lUdFR+ZVG$1qRwUccJPsalMGOA-A_OAVSjjIatFe5X#wkUXdyIEkGo*5egj+ zYrjOuQ8Syx3=>(QBG)PA)&^V=7dumFUgI2G5Fy91pDi$I>SOfJ_ltdhFm$C|p6)Rc zNpjT|?%7cUK5=nx-n;EO+Z|*T?vjTOlS@2!gz9>3J|k-$ohY|t-St}{=ps!&Go0ax zf4{E?U(Gl~E0d$~gx;0R6?g_mCIgQ?i=~GUy8OhR4rYd_!g^MJJ}ud}B0y)VMQB^| zJk}t7OX*gxus4 z%%U`ZI5+pA2Rj-#wRb;~-Ke&=F13*GxB1C>iGH0_WliT^Hjd3o#={3RUVUNS!&&Y7 zUk2W3h19Y5fBL50oUxZBzg{4GosMvCE22df3>$`1D%feC%9J=9Nr$ZgfCpNO}9TH2((ZC$^Ik#zdz~!2h1>;x&QzG diff --git a/pkg/vm/opcode/opcode.go b/pkg/vm/opcode/opcode.go index bbe71772f..a3874019d 100644 --- a/pkg/vm/opcode/opcode.go +++ b/pkg/vm/opcode/opcode.go @@ -65,6 +65,11 @@ const ( CALL Opcode = 0x34 CALLL Opcode = 0x35 + // Exceptions + ABORT Opcode = 0x37 + ASSERT Opcode = 0x38 + THROW Opcode = 0x3A + // Stack DEPTH Opcode = 0x43 DROP Opcode = 0x45 @@ -158,8 +163,4 @@ const ( ISNULL Opcode = 0xD8 ISTYPE Opcode = 0xD9 CONVERT Opcode = 0xDB - - // Exceptions - THROW Opcode = 0xF0 - THROWIFNOT Opcode = 0xF1 ) diff --git a/pkg/vm/opcode/opcode_string.go b/pkg/vm/opcode/opcode_string.go index 9a8e2b655..7b4c086bf 100644 --- a/pkg/vm/opcode/opcode_string.go +++ b/pkg/vm/opcode/opcode_string.go @@ -59,6 +59,9 @@ func _() { _ = x[JMPLEL-51] _ = x[CALL-52] _ = x[CALLL-53] + _ = x[ABORT-55] + _ = x[ASSERT-56] + _ = x[THROW-58] _ = x[DEPTH-67] _ = x[DROP-69] _ = x[NIP-70] @@ -138,11 +141,9 @@ func _() { _ = x[ISNULL-216] _ = x[ISTYPE-217] _ = x[CONVERT-219] - _ = x[THROW-240] - _ = x[THROWIFNOT-241] } -const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMPLJMPIFJMPIFLJMPIFNOTJMPIFNOTLJMPEQJMPEQLJMPNEJMPNELJMPGTJMPGTLJMPGEJMPGELJMPLTJMPLTLJMPLEJMPLELCALLCALLLDEPTHDROPNIPXDROPCLEARDUPOVERPICKTUCKSWAPOLDPUSH1ROLLREVERSE3REVERSE4REVERSENRETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKCATSUBSTRLEFTRIGHTINVERTANDORXOREQUALNOTEQUALSIGNABSNEGATEINCDECADDSUBMULDIVMODSHLSHRNOTBOOLANDBOOLORNZNUMEQUALNUMNOTEQUALLTLTEGTGTEMINMAXWITHINPACKUNPACKNEWARRAY0NEWARRAYNEWARRAYTNEWSTRUCT0NEWSTRUCTNEWMAPSIZEHASKEYKEYSVALUESPICKITEMAPPENDSETITEMREVERSEITEMSREMOVECLEARITEMSISNULLISTYPECONVERTTHROWTHROWIFNOT" +const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMPLJMPIFJMPIFLJMPIFNOTJMPIFNOTLJMPEQJMPEQLJMPNEJMPNELJMPGTJMPGTLJMPGEJMPGELJMPLTJMPLTLJMPLEJMPLELCALLCALLLABORTASSERTTHROWDEPTHDROPNIPXDROPCLEARDUPOVERPICKTUCKSWAPOLDPUSH1ROLLREVERSE3REVERSE4REVERSENRETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKCATSUBSTRLEFTRIGHTINVERTANDORXOREQUALNOTEQUALSIGNABSNEGATEINCDECADDSUBMULDIVMODSHLSHRNOTBOOLANDBOOLORNZNUMEQUALNUMNOTEQUALLTLTEGTGTEMINMAXWITHINPACKUNPACKNEWARRAY0NEWARRAYNEWARRAYTNEWSTRUCT0NEWSTRUCTNEWMAPSIZEHASKEYKEYSVALUESPICKITEMAPPENDSETITEMREVERSEITEMSREMOVECLEARITEMSISNULLISTYPECONVERT" var _Opcode_map = map[Opcode]string{ 0: _Opcode_name[0:8], @@ -194,86 +195,87 @@ var _Opcode_map = map[Opcode]string{ 51: _Opcode_name[286:292], 52: _Opcode_name[292:296], 53: _Opcode_name[296:301], - 67: _Opcode_name[301:306], - 69: _Opcode_name[306:310], - 70: _Opcode_name[310:313], - 72: _Opcode_name[313:318], - 73: _Opcode_name[318:323], - 74: _Opcode_name[323:326], - 75: _Opcode_name[326:330], - 77: _Opcode_name[330:334], - 78: _Opcode_name[334:338], - 80: _Opcode_name[338:342], - 81: _Opcode_name[342:350], - 82: _Opcode_name[350:354], - 83: _Opcode_name[354:362], - 84: _Opcode_name[362:370], - 85: _Opcode_name[370:378], - 102: _Opcode_name[378:381], - 103: _Opcode_name[381:388], - 104: _Opcode_name[388:395], - 105: _Opcode_name[395:403], - 106: _Opcode_name[403:418], - 107: _Opcode_name[418:428], - 108: _Opcode_name[428:440], - 126: _Opcode_name[440:443], - 127: _Opcode_name[443:449], - 128: _Opcode_name[449:453], - 129: _Opcode_name[453:458], - 144: _Opcode_name[458:464], - 145: _Opcode_name[464:467], - 146: _Opcode_name[467:469], - 147: _Opcode_name[469:472], - 151: _Opcode_name[472:477], - 152: _Opcode_name[477:485], - 153: _Opcode_name[485:489], - 154: _Opcode_name[489:492], - 155: _Opcode_name[492:498], - 156: _Opcode_name[498:501], - 157: _Opcode_name[501:504], - 158: _Opcode_name[504:507], - 159: _Opcode_name[507:510], - 160: _Opcode_name[510:513], - 161: _Opcode_name[513:516], - 162: _Opcode_name[516:519], - 168: _Opcode_name[519:522], - 169: _Opcode_name[522:525], - 170: _Opcode_name[525:528], - 171: _Opcode_name[528:535], - 172: _Opcode_name[535:541], - 177: _Opcode_name[541:543], - 179: _Opcode_name[543:551], - 180: _Opcode_name[551:562], - 181: _Opcode_name[562:564], - 182: _Opcode_name[564:567], - 183: _Opcode_name[567:569], - 184: _Opcode_name[569:572], - 185: _Opcode_name[572:575], - 186: _Opcode_name[575:578], - 187: _Opcode_name[578:584], - 192: _Opcode_name[584:588], - 193: _Opcode_name[588:594], - 194: _Opcode_name[594:603], - 195: _Opcode_name[603:611], - 196: _Opcode_name[611:620], - 197: _Opcode_name[620:630], - 198: _Opcode_name[630:639], - 200: _Opcode_name[639:645], - 202: _Opcode_name[645:649], - 203: _Opcode_name[649:655], - 204: _Opcode_name[655:659], - 205: _Opcode_name[659:665], - 206: _Opcode_name[665:673], - 207: _Opcode_name[673:679], - 208: _Opcode_name[679:686], - 209: _Opcode_name[686:698], - 210: _Opcode_name[698:704], - 211: _Opcode_name[704:714], - 216: _Opcode_name[714:720], - 217: _Opcode_name[720:726], - 219: _Opcode_name[726:733], - 240: _Opcode_name[733:738], - 241: _Opcode_name[738:748], + 55: _Opcode_name[301:306], + 56: _Opcode_name[306:312], + 58: _Opcode_name[312:317], + 67: _Opcode_name[317:322], + 69: _Opcode_name[322:326], + 70: _Opcode_name[326:329], + 72: _Opcode_name[329:334], + 73: _Opcode_name[334:339], + 74: _Opcode_name[339:342], + 75: _Opcode_name[342:346], + 77: _Opcode_name[346:350], + 78: _Opcode_name[350:354], + 80: _Opcode_name[354:358], + 81: _Opcode_name[358:366], + 82: _Opcode_name[366:370], + 83: _Opcode_name[370:378], + 84: _Opcode_name[378:386], + 85: _Opcode_name[386:394], + 102: _Opcode_name[394:397], + 103: _Opcode_name[397:404], + 104: _Opcode_name[404:411], + 105: _Opcode_name[411:419], + 106: _Opcode_name[419:434], + 107: _Opcode_name[434:444], + 108: _Opcode_name[444:456], + 126: _Opcode_name[456:459], + 127: _Opcode_name[459:465], + 128: _Opcode_name[465:469], + 129: _Opcode_name[469:474], + 144: _Opcode_name[474:480], + 145: _Opcode_name[480:483], + 146: _Opcode_name[483:485], + 147: _Opcode_name[485:488], + 151: _Opcode_name[488:493], + 152: _Opcode_name[493:501], + 153: _Opcode_name[501:505], + 154: _Opcode_name[505:508], + 155: _Opcode_name[508:514], + 156: _Opcode_name[514:517], + 157: _Opcode_name[517:520], + 158: _Opcode_name[520:523], + 159: _Opcode_name[523:526], + 160: _Opcode_name[526:529], + 161: _Opcode_name[529:532], + 162: _Opcode_name[532:535], + 168: _Opcode_name[535:538], + 169: _Opcode_name[538:541], + 170: _Opcode_name[541:544], + 171: _Opcode_name[544:551], + 172: _Opcode_name[551:557], + 177: _Opcode_name[557:559], + 179: _Opcode_name[559:567], + 180: _Opcode_name[567:578], + 181: _Opcode_name[578:580], + 182: _Opcode_name[580:583], + 183: _Opcode_name[583:585], + 184: _Opcode_name[585:588], + 185: _Opcode_name[588:591], + 186: _Opcode_name[591:594], + 187: _Opcode_name[594:600], + 192: _Opcode_name[600:604], + 193: _Opcode_name[604:610], + 194: _Opcode_name[610:619], + 195: _Opcode_name[619:627], + 196: _Opcode_name[627:636], + 197: _Opcode_name[636:646], + 198: _Opcode_name[646:655], + 200: _Opcode_name[655:661], + 202: _Opcode_name[661:665], + 203: _Opcode_name[665:671], + 204: _Opcode_name[671:675], + 205: _Opcode_name[675:681], + 206: _Opcode_name[681:689], + 207: _Opcode_name[689:695], + 208: _Opcode_name[695:702], + 209: _Opcode_name[702:714], + 210: _Opcode_name[714:720], + 211: _Opcode_name[720:730], + 216: _Opcode_name[730:736], + 217: _Opcode_name[736:742], + 219: _Opcode_name[742:749], } func (i Opcode) String() string { diff --git a/pkg/vm/opcode/opcode_test.go b/pkg/vm/opcode/opcode_test.go index 256d13137..862093652 100644 --- a/pkg/vm/opcode/opcode_test.go +++ b/pkg/vm/opcode/opcode_test.go @@ -9,10 +9,10 @@ import ( // Nothing more to test here, really. func TestStringer(t *testing.T) { tests := map[Opcode]string{ - ADD: "ADD", - SUB: "SUB", - THROWIFNOT: "THROWIFNOT", - 0xff: "Opcode(255)", + ADD: "ADD", + SUB: "SUB", + ASSERT: "ASSERT", + 0xff: "Opcode(255)", } for o, s := range tests { assert.Equal(t, s, o.String()) diff --git a/pkg/vm/vm.go b/pkg/vm/vm.go index c3f79f35e..4d8540455 100644 --- a/pkg/vm/vm.go +++ b/pkg/vm/vm.go @@ -1298,9 +1298,12 @@ func (v *VM) execute(ctx *Context, op opcode.Opcode, parameter []byte) (err erro case opcode.THROW: panic("THROW") - case opcode.THROWIFNOT: + case opcode.ABORT: + panic("ABORT") + + case opcode.ASSERT: if !v.estack.Pop().Bool() { - panic("THROWIFNOT") + panic("ASSERT failed") } default: