From cc72fcaadea81105f3d6ecda9b42a596ae74326d Mon Sep 17 00:00:00 2001 From: skylarmt Date: Fri, 2 Jan 2015 03:38:33 -0700 Subject: [PATCH] Add basic code completion to editor --- lib/autocomplete-2.5.4.jar | Bin 0 -> 145602 bytes nbproject/project.properties | 4 +- .../apocalypselabs/symat/CodeCompleter.java | 97 ++++++++++++++++++ src/net/apocalypselabs/symat/CodeEditor.form | 33 +++++- src/net/apocalypselabs/symat/CodeEditor.java | 58 +++++++++-- src/net/apocalypselabs/symat/MainGUI.form | 18 ++-- src/net/apocalypselabs/symat/MainGUI.java | 16 ++- .../symat/resources/jsconstants.txt | 8 ++ .../symat/resources/jsfunctions.txt | 30 ++++++ .../symat/resources/pyconstants.txt | 2 + .../symat/resources/pyfunctions.txt | 29 ++++++ 11 files changed, 261 insertions(+), 34 deletions(-) create mode 100644 lib/autocomplete-2.5.4.jar create mode 100644 src/net/apocalypselabs/symat/CodeCompleter.java create mode 100644 src/net/apocalypselabs/symat/resources/jsconstants.txt create mode 100644 src/net/apocalypselabs/symat/resources/jsfunctions.txt create mode 100644 src/net/apocalypselabs/symat/resources/pyconstants.txt create mode 100644 src/net/apocalypselabs/symat/resources/pyfunctions.txt diff --git a/lib/autocomplete-2.5.4.jar b/lib/autocomplete-2.5.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6b2299f0acd14ade4cc199744f939202a1757cb GIT binary patch literal 145602 zcmbrlbC4{5x2M~?ZQHi(-L{S0wr%aUZQHi1ZQHi7+r7K{_B-d?iT8Kr#>C9I8IcwB z$EvE#h^L-!u3Vo~kOl#T1_FYF1eyT$6b1U;fdBRKy+M8NvZ5-2bdqvn3?M)X|0vwI z%Qf}+F6jQ=QUASAR!~k-OjKEgURKOxx*ocp5pnpAFV1Zg=1^gdEYsN$5jx^sk=`?b z{Kzr*?P*xF==$qs#BF#ozTyo>@+cv2qklMq-k=&F?gL8kn2d%|EUE~(7j8IZQs7U5 zP-b&jTNNI_Gp*IZEEk@%Jhrma_v2|fi+@c*_7g2)lc+_Q@sC~udX)#rKM(i&2><7K zfquWYb2R&3PU+uk{&nvEsxh@NHTmBb!v1@qi^c!87VE#%8n`&y8QIy`TbnrluRo$^ z*_NIS0tEC52?WISzx$w|p_8+tfswQDe|(dLoh`kQwSkjUvdWaxqA})I_nGU$WeEW) zCAvacz%_X=Dkvy=L~%=-#)gus=e%%+Pq{(MSjN<{MUcd*^@>e!qBbGiVo|$UN)2DJU#=^E6IV4~rs)T+ckDK;t`X$b!$@ko6 zlkYACSUQe;?VH={ae`CZ<`Qa8c%AjO5cD^R1HWFPH{NDOCT*JfdtLi|xR|}a%mJP| zlX7e!tNvB5z{SEyYU4?`L+#Y|cM5yJBkU%eE09Gxel5Gf%yBOM7sVjHLhUG82v)4j z^Up;XYU7GQOLb?T4wwp<>TzVCC7&2{c?s5R70=;H?RrBl@V6OPaq;hpSVP33)g^dl zinDW`F{;Z?+E#gkuQ>Sw88;l3wk+uC+FqveDR1ghc6hsE$raw*sBiTPsF)jiYwpz9 zj5SNsle!ZGZ77tyPaFOu7&_Pe%H6WA=}g>mdoXw-jMJ5F&Xc)k2b}o_NU(SmO!j-lbkU+P|~!)q6X8w+ixdW($~)W-x-;4FS{Q{l9klaVa+ zz~q`{5tW^{jh{x#fElKN9PoxZYNdQ)jV2ic-Yj_8m{sV*T9+N1qQyR@fyG?FJ8UR|!6ZEc#uq6%Ik-(~N{hRXn4)PafhK>@qe!8UJpcoTaGmmF zv~*@Pca6Id*iv;>u7^takz(=7UkVVRL6X~ClPXhEkeJs0PAW(j3=_WCEmC3r7k=n3 zh%mIT?AV|9f!dDI4n2D$0x@HP{G>R|Iebh~W;$u*Sn~%?!hEF7J-%IdXwBPJpFZ-E zcS;(~+eW~yblWDxug$67JvT5dN*fDM8c3RJ1RZfw5k+=C1*gf&XPlHR-#?VY)}-plkn7ns<^tG)Ps?8ru$ zhrDux@L-M||M``QK=+ux2hJbvY$tZt`U&<=J1x)d?2>(J7w%h4%Kvx&bp=N|R|{hk zM^a$}Clg6qClgyI3ug;glYiO3z|p|j&hbBNP^~;+yC8tdcfiRcDWffAfumd8R4kde z3|&`%S`IDPfQqalzNQw#1E<{XY7$E_7)uEF4TrOu*C0@Lq^v}4xAJ$r&T}j|&JF%A_0uP@y zN6Rl;&?x~&w(*zk)tc~zy^Wo|^PAUZ{KZIo#8}?TTUxs;Ij@j5GvYR3iEsf- z3IQ0rAE_bKu^fRH9erLQWVXS+Ia5fma`KC^lsFg-cSYG*T0a?FC2Z_hWx!Wd%6Knh zvOqj)&7GSuG|WyNXSF{~PN{YtLK|y$poHsdBWL?BF3FCw;gY3I_6@a0n{=JVmCb8w zK5JW~Iqq^ClTEGxVJ3uVcD;O2hFNiiUc-;EoYG9eocNiVE)cK8StDa7s28vU<40B? zls1W+p@P^1y;+9wgq5UpfP^na{a)rA2iBhLaMdxfX2@DEd zA)>zoJ}Lf5<>S#*iVFk~P%R=55Z8Z?%Kv0f-Np&W42_SbnpRtvr`$SyxE_TU0VA-GT&4N|G%J<6c(%DIo+H_9>Uz9hdO{n7ZdM3{j>rZQk=!T*N+yk{SvI7} zn@Z;A9msF0+h9FG&Y8x0sg@(bv)jH4pY3bD=S`=Z#<$y_Jv|`$7{2%eYEhyNl+cPYgLUvF8eA(;YPA?et}=aLF}LWdBkU9_&*P@} zdWuqK@n>ss|CDChfiYB<6}DesQ(QG@a5GJGG0OlTt2Q??BT(ypW+l=Hh zJqFfVOl4Si?0cJJ>=Xn!+Ygd}*^Ex0+_vg0ut90s`ZV==f;2wI#x?~<<541eXQ zbVDW9BY5MgJZu%5{7D7_8#C6ag3OYV>wD^Or7_nz4sqW|ph+Z?37NEkUawSZ$f+Mx z8o56;D^0;%ZJk%?4oAa30Cin=O$oe^;6KQuJy#>*JLf7^kzj2fCXe8Wd>{kBGa3^a+VkH^NVv)frjKZm}zU(aQCP(e~HP^ z*i9&geT-qUcu)4K9dZnzGhU?U;yMVULhbap zO7Pa`U6_sJ2NVCQjTRe#FJkQ?rEOJ}z;wj*QDe+E;K5&v>$|1|6zo;5;tZ{@dgJYc z?VG@1+{(i3^wU7&mywt{HXhdqcUT=$Ym3&^TE4IY3imqQW&4&Rq#B0`6lWuam_ zF7a~4u#^F>(^YKM7*pOeme4_cD{Q?~f8=q+BD=&jsw zZbTeJ2juNltv|{`a`%W;|1!C&$JGR;6mJ#%W?rS{>2oMCOW45u16Ei8H)fF{T98l? zCClx2gkRjzLV3P?!AbaPF3AzhlTmY{6wn9vWn6qES+NL>K7;U)_zwHS6f@^t`Y9 z0;AK{wE=V|i^Gq1{k&_nw!h=E=C$YKS~(y3>dzVJoRZeOay=xJ)+=yiiV7RbMYp%wY`xKQfj7 zC@8feVP}fJpf4_VhS{(78a$w5`_V-6PMSdwdzV<)QuKJa-LX6)S@+vc17+An&~(1& z?TueIWYWrqzVwhSz0+qX^#~sT8=@6fi~Mligv?A18JO1y^~Ees{k)d1%;nhw) z2_QNERqBp3Kjxcjg_P|xA$^%I*!5|ODSA7zzrOCN^bRSWY2)=k&gK*y&LQV9nzxJi zlPyBr6^t|_#v39pMOzLeT`_qDAT(!6gk9a1$APe~!~HAznSclY_xuVncZZMP=7AUp z+|pU8lg#Ugb}=g7z7{{O_eFXRwto}SNbh{FRV8(qhm8w-IYSB+RQJeWKs*%z>H_1# z94sZx2Kll1!y8)|bYYS&w2fL~0<_&Drc>0NkCdr~&;^gKb&eg~E?0b?&%a`22@xd)V=h0>kb``tM$hl6$mwPt3c!QOli{?5)~Xcq`?MwDCK$-&i+E zq5GmZcAeoKi+jLalYp5{m^CS7H-*V^2xj(ZoEG}LvNz7K;!n#X&1*#LHeLG3!h(zr zvA3VSnZPD~>7jggbm;(^Ol1KZ2W3~DPzp`6bI z1(1>&gVN2SaoMUWpLjUl*{Lde{RNZ3_dx}GRjQqz&s(t6SCCY|$FpI24fB4YubX+S zzEcsea8Mnh;gbiP=n|{M#eX4W4&Z;*ZIfi*{E0k_{fqtz)YBW9FiD{i50Z2ZDH&m} zUYev4^rSn?B#CJ`AS;*^Cn zv`7}*@_S0jcn`;<_<>RPaX8}mMLpucPUdE3jqoRNzn{b*A0Qh@TfLn#gEGfR3A~An zjxX9q>FF=lsO=|E#wW}_*Yea*{;BNmD@*|}ARvza?OOiblm2HXX(D3cWTb9kYi#F6 z%JiQ-rSgT+_f_O)N{K9#V2vmZae?Z%s1R5!7;0qdH0p={{>zL_M^j&dNy6ej$_xE8 zCkb~zAq)R+gd=x$5rIpD%*nNnr%SG#_RH%Ty&Yem(LGxV?sztReW8&ef6S7EG(Gd)APZdm3Fx656&lE24x|CR(TkLlL)E7%|%M zQ@mUZoHZ!4Op|6CPdOT9v(OF1n4VHGG&!s-y>drn$h%@djO=COuksKh>T$1W-g1-9_9{Li1 zNmEQ~lgZiUDLf8h(=-c7k0P(byQ>VN_g7+{3bLwk##zH$S67J$Qai~EQZ{fSS$1A+ zUS}1*5N!;e!qKu#h#H+#z=4{&s6rwd-XHP~hb<8dnPA(vsc@;}H}Z0uGw__M+AiHn z2g5~&i9wsqxp`wFM9 z^G!4M=mSU_JcIcQSvl9Sexim5Zx0euIFdtp7RgC1p@)i|rTt2-<-PJE4_vT!FTJmf zBHYmVvs_U@P(=>-h52?F>nzZ8B1S>`L>&^8g72yQ5?H@VGzZY4j2Nwd6o&0RfmflV92tHAfPBW zB?}fj#_2?joq2Xf4^T29(HP&voA5TWp9L=!WnN}+olL$SXa4!~XXTjyC_^Jt2x(=@ zaUe7_lOMhA^Z-4Dm)5Jyvu$cO_qJ@j8547YafSbof;Xz|I@Bv%wWFs`K?a<V7w!vQQ3zs93Y?iOY1r%Z6X z7Lpn__l2mJqr6CP)PDadHBG^j!BYV5+J2H88e zk&zCy1v_N+a(bM6Kz3Bs72;;gHd;`4jLN>n+)acv&vi-v{G4Rg^@qU!N#3srYQ3qj8KIT0B>@ zpDFYWBD^Uni~VP1Zq|CgnP|ZK~SSS3fp6Odd%mxS|+)&DtKo;NBt}-a@e6VyLEr2Yh7?a22#%>625k zFOyQTZMdck02$t~&DHk_!DC%2C!r(wag8vO_R4i;v90iS>|K|{Yq zsNMPL_d{WX1O{Ul)grx7VUV}5vy1k2U#l!%x7YB8G;j)m>yDdoLBD{036_|Ro3@Q~ zYw54r)Sz_Lj%cG+H2*G)7ajvr#!c^&D^J@InDuKdXHx zjm3wOGXy@KvDD7uOyXyZFMCu4X*Lh6V^#AKN`WVq0EK28pp#;&3BbiA(1#bgZqi~G z+iK#DkNGz)>|GLfTwWHA<-ma#6*PsaKhcJL(Lk9kox37;QQ@1DN%S!(?L5)*6^i21cX9 zqDjzgb_YN36N0`N&HWwZns0`^NGm!!&?u1LK1=Jj-2#EzsVfhkup~R&0SpIi4H_gq zJYP;(ejVazC3gp+R*;xE$gY^rT3fbB zz0=|O6Z{i(+i3Sg+wXO^=6j4H{@+2}&dyrMz){G+$m-vLFILl5-Vj6mRKv7}Nsa^| z0!OAV9!mS2_hTIx4lEQ@DO7<_E7$%=$nI))VF?Bj{zZGNT8rG#a%X-cM4-sd#- z{GkeVZyRfL;(E>LiRV3gqUK?y$L}wcKH^Ui2Q(w<8Ux-aHx(6q-hfQUoUq+3Nb+LN zV&Y(J>JkT@C?0B4#!8`qEy!(Us2nv11SiKfhR|2buGnBk^dm#62r*uT_&#AOAHrf2 zt}2O(Py=t&;SpHX&yF(}I7ZkKJdRScsjAt?lIci*5$9_FnRmYYJaKbt8yW9GzC|sU zwh<^khs{FI7-JSEhi5Ux0HPF^RX{$w&AMStnjYFUvR<<;4Rak@!lbuc!uoFJuhzEg z1q`2+CZ{GzCfbk^;gsJZ>w8xHWKN^3q&>{e+RrVJ#WUFcUt0KCtPGn~2ggI$!rBFw zVRo+_tEertsbezI9<-wx{+S|DnM`~;4!Lq0fcK=m8JBE#^i9lbiL55<+q zYKR8#m?cJ7I4eX0W46P(=~;Ku5sw@c<~f5jZ1!6X<^m;Aj6a(VMS{Zk#xAU=w<3Ws z@`14w2B>V-hLHw;O%f^$a9F)V0F3-Aw_t$9TeLS;Z@OZ;+v<>;TfTuqX*X)&KYP6t z>U=xJ)9V~+q{cfccS3@zi-tboi8`B3Le1*r)Lw&bW|@t z*y&Xg`KM-Ws-y&4r7sc$2%JD?C$ywnl(v}te>!YoXWx08KPj5bo_a^(9^yNG$2u~K z?le8HHs7ooXpyL-6q;I6NHL)iGHp09!$GVHN>cbJa=%x5yLnC(!LZHP2m%IlnQ~9= z+pV~b5;sZylGWoe@)p1JiPlBCgnAZlv-}!qNXY_=N2{qb8CgW)9n#sG;mOei@DoL_ zIw7v!idrQL^7z!(&b8()EsbF$kb*_w7t3Mm6)(*|=0_Z-8{gFGkLgg(DAspHDpWND zRV))Ag$L*6Go$CLLd~@sLs>#C73QDJrX1u0kagEYr_4>5)o>_8wix=LbXeJ?d&W&f zlF6NE9AGJ@(iF7p#Vv-cj0uE_c`<4WAs~xLJ)t&aFKY^8eMP|S!9Hfg_dpAput`A& zaN6oed_rB-XS)(Mf4svz{xry^9U5OK-kHnWWnkT=sb$dH5mbg!H;?#=4goRg3OY6` zTT@m^npHyAMkqKF2^wTClj7k{f_8GiZpFB( z-j$tSXvMLE&=rr*;}V-!ed9PMZ;wAVDEs>HPo+heFqp)DEA9AOX;S}vrHR=&x*0ec z|GU+yzpaKViu&p4YT%m6)Jq;D5GNv{DbfGiACum{7x>2}BB&531Lq|B#O~!}iCKzt z*I?%-n4ZsArmEV|P#X0_DX+#S`NTq_bep#5L-G5?!U>Ph^qEt~+qc=?@dPLUu?0vU zOuu^J&_I}i>`4Lyxpt!TDFY0k5}Bg(SwomMm6-4cK*^0}Z`DA{G3V??7=w8n(`tG* z(&Ek43b@eRjtu!D8rv`icr@b76${*sZgVz$^oAg)Q!vLrR41&i^-pEmi3@8rXnxIT zcf>#IEKD6+Upx7Pp^wcQ26-LxO-Od)_=sG$;!Y6gpUP#Wb+2;IAj)-EOe>@};PNNW z&^s}i(Qc52m;PF)JApG8bCJYM0WfE!JL!0>A{y1KGKzSPKG3Zg%#!1VMi$w)<5N`E zCweY=Cuu@68@~tm(;+uBV4baJ)Z3o6>={33>S@S@B%v;tmTfhnyu>?3vtl&iwaAM4Z{JR$De_cZo~)0pLHr-PRT1@;!)KtPAc6fp|&F|LQST8=!bm889V35owIG{ic8Cf7G#`va!BI&DfxbWyrFdekOd>`La) zmZ6OhF0~@MLU6ZL5Vp?fpb^hn;cDWRveI^jLN)M_M}R4JLjoqW1`HtrTk1+Vgl<^I zBjdfT!zOOas1g^CbqxkKG3)GI2LJrn$wI}fn!U;pKNfL#|Jh}5GA1^G#I6JZ0x$6f zb(6q7!6oJZ!4<5yUudfp6FO0Hd+No>U4+XHA03K$F+C2O+Y5PLec4(nL+j zy`&~k^*dtwR@ofJWse4|t0`K!+r;K>oZC?412^jyJNj|HW1Q^nIk z`fT8$X(yQ3gI;SE9P|{K9;G$7t1H0ut;~5B*BN^NQzXfk!wxZUkD4hG@FmJklp(rd zRHvu-0c$0S$^ezK%X-B8L1HQuu8gqfKG zbkeK*Fw_Tdwf9*mrz`~$pHk$YnR#!xdcXe?^a*6ia`yX9_-r!*0kQqxi|;=tfLc)A zDoaaWxv7%d#`hA0RRe%TSW*KFVG&_SWLODFjR2S~8GHkMW)?s?kw~X`vrD;4D>U`> zZiN06xuv4Ez15bDjg|J5?c6eb%W}mI*UglSX@Vr=%ia5t?ag+h-7`Fc_vec;kSUdu zPFqTdnG=f;cB_o|xOo!H%A7e?w8NYRcImu(GI`r>K{&nf0x5=U2^Dij#XKtoT3eiW zaKmZ*oO7~i8)Hxes6c(BlzE9vsT7Me`((--uElYOc}`S=1we|ToiT=dJRgiY`?5eu z>$G2lIx$&UMeDF%#mlk6npd{i5rel$gZz(4yHGJ1J*slCl(bHoBuch($8X)^B5Ddc zjO*#R60Hn0dM!z_4s$dg(TpYPr8WhzX6kAO1EgxS-xn%cH$q%XW5$6|)8qM#XSiH` zHBszRjgr_p%jdydwXAUSn2y$siP$<#!QS)ME(Uxy6T^!4on_&`%y1Dw!d%Yy>D0j{ zWW=&68CUbH6Crp3MWV%j8tdcfNAqjvS5)3QA_0OJ9SZUoP#ildXNDL$LOYIgt!GLY z>4qViobGLIV7F( z6KzxQc(R+MTXu*O+Ek02GoxH#HaD`JLldu)X0)@NQ|tU%rJmdDskSZ(_?pz!t`ldT zJJSLoj34qe)`agL4brcb&ybRzDxC$2#i4{P0|mbfw|-%>X1X-yZ{pm6fq+(1BQj1x z_u#|h81(0@)(myHX?sh{Ro9L&qClj)_Q&U~DPe`B(SahOZb?&C!DmF1W%^`BCzRES z#EJ!M>no4ii9{th=BTWqgw)0DS~K=`TEZog4rACDk1|}$`!m5(_i$>B4KVy0KRjb{tim>T;*E^UNHXB> z*ci4(o5X4Ko-Ud(ni3ij3o$hbtX%%qeBmffLe;Et431v{A7fM1n|WT}OjNXtp>;D7 zyqIil{p#CrC%AfbRYf&*?Y4$?bAjXIFj?}_kqhl$ggzne97ud~$4^URd(m>OoiUJT7a5scN`$76|b*` z<@3jW5nq?t%J-G?68Yo$p-b=q999=}CIeS!e3nh*uu~r5;h3;#aGeHf%!m-{fRw=* z#;q7gt1!k3chMj{KO6!0{}y1g)Mjf)N~p+80oTN>%y% z=IofJV}_N9Hsp4hi#)+>fIra-vU*{ymY%}GHujpEyAv>gET~8!M?>;oXiOQ9kpNtQ zlGzImXBI&NG5=l6WSHA;;Wd<$PhMjj6g&m`@-A=ET9V>Cm5mE{I1M5h?GkQk- zls=G$ww6%H*)v#6H5A(^5_>)s7*#(<3(IFzbMs*w8e_&v8t$;8&FK#kr3O=% zX3lmC))$!pD@_A}y%br`jq^b@{xVM+`gBgcI7zHT*!GHH=G}2TT@utrjD36lVz(En z{7t0UOiWUyK24&nVdhT1acM_1!SP}BMS`Nr$z9i6oBF{t3ViLVec!Hv`De}2WhFX! zD3%xxXGg)=>cijq;Lbm3Y}31a@{Kc-M*9Vf=8lR!DS}AXq&H_^ zaFBT5SL#}&KV2nK4)ps72Dw&sjxLm#(gXOrn!KDJG<7vrdr)u=A?pWdFLyq3Y>fm* z=RvmVgiZyBwlUyeAJGd9!iQofGCAp8{E;*-VBTr>xS*>B&Yxa{Y~7{n+R4`!i!$lZ zcZw;bl6zgm=)QCYxR#2&y2UtoJ(efagU%1&J?ib_0gH;Rlb1q_+K4Z)1bwMUfCi%! z*2d!W1<`R_B9m*VTdibRBi|L{8lWmp#l7N16^FP#a!JF@W31ChlF_OSw2$Ff(NcaD z8l$tf@?8ac{F}9VM7&jdEZ!A+?3c^4lCc(TV67F46^b~`PJ(ld*krJ>ht@nFY8P~U z=0UMAn{ww0<;sO4XL(}svxz}_-5T&CEakjXEg~6z9j~dPeFZ{UJu`C7e9J2JQ=(@q z+wk1V9)zQPNj2aX60z~}Pgp&3bZ1XRJtd0?tR7H2(=T?MMH@mo9T3bu59ska^%zt< zMGMvMLKGe|LcHoj>kdKlOMcm~UJl_$>z>R8^-O3NXT z%W#@D4?5V?_o;&k7rm0FI;m~-@!@D2M~d0a$+Nv-byv^La7D~9u)dLPE1cm)`-=7~ zpK?6dMtN^MO~@+SAweJlZy&_HlUcg`xYLGvcleDW7V8z@{gEBw<1SLT17qQb2>)5O zr`n?UmdNT?^33)IgST`FqDJULxzOVnxH1$)0Cuv0TvDrXN)z)Ik$6TUC!Z_jw{S}G z))~Tamm>C+=V$rA;9WL9g8h;CSvW`WpclXwi{ZLiQY7)h) zraZg{2S9ruX*7Sq%q<&tmrW<6=jigv(Zqdx#TmTM-v4_*BDl?^m`*xnJpIa+^_D1& zE}LE;b7UnrSz7%OwWlnbPR>jfrX@-p*GM-Z z`zxwkLeoyMd)X-J$D&d!p&XHnESoNQW8uCQu?P(jfN_@q-XbiUPDhd*-(^(bsdrr+t6iAM~wUu;W zCb-8`TU(eQQTOK%nlF#TQI;+#>LxisOV1oGRHlWF$e#t2VRbE~Rsby6XFIsDeK6_< zPkVMmO&ZhUI^?W!?5{*)zMTLEU?zaEi!eH>n&H|Q zkzHKcrPjv;|Bwx?#+xQnC_bf)5?nL6bq?21FS-^^|13hBBcsne&)-8vwS1=|03Nc` z7W>z%PwXT3>?&AJ_(e(K(VaYu(W7!Kg15MlL49zk8Rr&prcmzFNYQ)$(y%Fe-V$J# zF3NEGPCY{{xVj!Pb3%Y7z(1_ZKw~(m z!pgKCqZPOnANo~${tqV;-ncPC)1(9@q-UXlLGSTohf4#b7h2fWZ?gNi1~SY?j->aG z@K7dGFR;W^S{5A3Htm*+862F-ocK|`yjzj&ldO6Oep6Es4mX(y&zJz}GwiRQwWi%@ zY3TiuV5&M1^*WpENvK~b@3)pDgWKZ?6SCbDNFhT8&aK%p7i>}O&`#x+-5z(vbQ7!@ z0UI9NNgh`oF(icyS#4ej$lch!B%i=U_-UzKYE%IJf>w2d_h34H`s{pvzxG2A=b4z~QSa%&e7vl6q zH_qvKu#rFJD_$X2@NW8)nCQVxgBU1OG=d5UZ&jtT(pd@n3)I}LOh-`V?|{L;lU~p= zsh&AwKA@QE66lKTC@o|(=m{ao|w5i9$z9H*GVhsITTKwjMyH%Z?M%JZxgz9EfDPz!1Y@{x^Nq&h0JGzKxc|WB> zfYNelC}?a1(!2hIehH(+vfh?K>Q3*D6iNl0l#OFl*^<&&;*#!sWd^;za;@L?{h+=k z_CxNt|LyELP1Rm$-{JO(%XlSdj3aomE?e+d0m=JEN;^Cb6B8Yue^uskjyQQ_t(aE1 zk~dOrSMJFR@J8T9l;xIZ5mwIR!nt{GLM@ocb{Wm;`e7+auB@M)e7_HWZwZA{*~fhr z<%p&1fM>|GjSST*BmT-hH)R_>2Vv^FwmnVnhs~e&r6% z#m&Hnw~b#f_Rmp2ggpbRE`(T(4`1B6H}N~4Yw>-iPdW4E<#qS%n3%!8GOz~@6!<4k zgbci4GMqm;hFH4sG;^@370jCY+V2S)F5vrBS7NeU&5Pk%3qe5E<1VZpI8j&e{vSdkzZl1M;PE?>QZZmw6kn567$iGqs~ByYsX0=PpM8^D`3_!UfM01c`^G&BvVCq}9_~ zloJAy#&u{S;0xNO7h;ejw~2{Zo(WCwpEZj$8;Aw&%~}m&9=T}z=n?3IBJWSeDmLaq zUWH~P@yU$@A>_8h`|v2~RJYCzj5}4)XN1JG)lSSusHzosrD&Ml4HUCOO*|}VP}I2g445C^Ribtv>`3nqa5##IgPtf7Nf$)vUf5FTigM<$0C>pO{ySPO_!H*B-?5Zl)Zs6;9K!?&zNfHP!JR_-2B@A}&s5`l{yEW{@;YmO9U38QeqsX$DOMz5hhxBP=w_aB+`~d`J z0KytJe=q9a=&Qp*P&e!YzbR-a*qod9KCL}> z%7c8{{lBOrw^$?}xG0!H7?Fv{w1DtdL-XZ94b(3^kD&bH+%ql4_7`LNK<#eB;leTt;VXJh_*?I(@qz)) zW)Lf~6ue>H*1|HB3)Cdj4i*HX3ZBMO-6%IR$6al`k&Pp}W}d_ixW8^{JkvF%+)M0P zM!C7x>3A2VC@0i1i((-MY1h-bQN9VE3nFV2srB6(5tMw^iR?#KU>-#(RD0Ah?x5e9a}d(mwiJbKJUo5ro)}^s z*$&v#G*eG)jal`^4Ok{r552(18rni|_0gK%FY9H>zb;cJCKcmQI@ zxdK$|gEaaT^O0-kmAVFy4k_tID4fA*sxz3)$>4U)i95O@*mQ${pGNiS=wgQ?U&yu% zKq4K3-qE~_$i>5X|6=#-%~4bxxUID|ta**E_Hes@!kadvZq0;O;aS~zJ+;WhFizZw z{|zq$-w-B#I^3Ue&pnElTzi3ekL>?^h58(KXW=ZkG@E%1yZhub9cAD2WBeuRtKL){ z6*5RXxFryFj{0mgw<H`etrq*&&^!>Tb~#8Nra!nJw`RY)Y8hXG`j-9Ws((XOC#)wJ(3$inJjlO3CePC43O8<>uV?9x86CpGY`VG` zeoSEnk{4p!>21^5|BUXl*-s}ykELF}b&>2^FpIJn;J6Hi={$n(NI}vG6?Enkn}tIc ziiIPjA|FEPxciwBfmaXOJbKUwdj7mdO=cQeLST^Q6+Z>t5tf}pGJzx$Me~|jaQHWJ z!vPB6zGn!IrcEUxMuv(5z<0oSkFY<_Jrm{nYuSI|nOGc9KUj;|I3XpyvzK9LwB_6y zC>=$!akoVu6T!t2==3Ns-6wpeHd(yI8Eh-gwdJoWGw10EWVSG{DiTXL+Ah|XZMBfK z%TC%;tGOA1ycuG+2|q|aL67_Q1LmTq0D6bUh>FlnB@3W<)mG7&#j}?;((dUF401X~ z$|C8`DCWgJNp`1q>+vaNT)zq0du3qY+A zbFzXf)S|=aHpes{AzI7mR!bDBdt&|$&ig72f=O{;S zLJ?KxJBVTWorU~A4q_IOIEd*NVx|2c>)Dp%Btk#z~s7 zI5$MSOX_g1;s(&*OKfSLW9*_ktKpRDZ(xdT4|YX^*`t7EmUJ5*gy^Q!8}64xYq#0# z$FLt`seSDcW0E`X>EJsTuk03EBEC5@L4=Blwd!Ct0X<%})j)>Xff;7K;7sE(9Ogi7 z3MbtE5XMAiUQO|j;uPM86#Ifd44;frYcRY+Xp5@s zCGj*V{Lc97a9?%~x>TG`WNOT0dl<)YPl@@55}Q|ud989;yr4J|lLD5hO7XI|ELSDz zig{WzEgS*W1^os7pX_d9(q?pgN6%!xqi6puc17&mZ2z6z;)ET`Z+3@!7NWy7SIDEa z*rHo3=?y_CQX&jhAs_)UEYzW##k{>U)N8fZoo{e_@75~7Dqwn@21o}UI-saYekeztL>9QLddDG8ob z!r3^pE>I%tzx$5-P5ZUY{uuPVR~y zfHJf6!I>BnAYUJeH10!?hJ3!GBX)AhOQ@GE zu@qUge*8H~LUqWCb}o^wl7-%L%grIkt976!%6o5>NmlP!-W@%xN8Wyege1jDkRLUL z+(NwBe+B7=i0t|`fSG^2Mi887KhD!|I;zeze`Qj_8(K}?1UX#qU6X^B)SQT!JVrj!I2%{l7Z#z#FgIbYllcOxLYqD~Mbc0~$LPp_JBwi3QEswsk z=2tC8)`9n&*qxnje5J7&cD)Phd~TjQGwKgqKEG-W4HBA(LCa^J6~i-bjF-|KpG#tC z_K!YtrbM|qFlpEgB};lY-HcYYfg|#?jgs)%eCD=r(vNL4$8$TjYQt@X}Kx2zgqJ(x@{i8+lQsMd3t)H%m3wbME8s+KLipAUmBU|;=8*Ux0dEs@6@sRC3$)PICYWu>u zZXmX1^d`1K^(K4?+s`D3Fw4j#_g`4J@dvEu)<5z8Cl(Z(Gu-zXoy+xm7G(xblAOE$ z!h%2`7cq-5atQo`UBl`1@ptGkRT$`?%X&&dA>L}w43Mw1Ulo_U`}w>=6oD6zeDR_{VPvh5lDilgp&K%w6_t(pBL}``e$>nCCw}Q#y<1 zN4j`iw-XlhG8JiFPOH3tg*Dsb9jSW=0=mdciDiqOrat5#Iv*Y)9-uXwv46#{=ha4G zI!6~hQNgFT`P`6bytA-xpRhqyi&h9ez+y;J2r93Tw*bSj{nA1Le?SP*dIwph5V;8x zJ%@qrk<1JWd%$&I?Nwu)4Bs%*p)piQbs#gdIq^|foRT*_{Qn@M6Lh#%j>9$UcMfGCozJ;Wo+K$NiZ0{YiQcen-G6=GPNOBDu!9D z{-ur**i)IvnKYB!sPr{Ke*uq_7Z&+L${e*Gc^Cc~ye*V`An~hVSi$Kbc5_n2d6Wml z$f)71@w7QBKH8&JpOR`pU97k#j1aP7I+j7X540=z4JM47huP?t z7+pWfBF@XUwo11fmE)^7tuVI>m^xHOVMJzUh?FN82@G4(e@$?5V%_Nd|GLhQu(SCu zY|Q=ZIf{_4f#sAM8ah!0E3_ot#RSHoUNrN0R%}^pp#rLKb-7k$%!O-Kp3X(}J0=+w z$p7ID&c;RiV#$M{>Ccl%uAQu(EIqz@pP+Sto=C0sJL32V-YR#qbj`r{Xt!x`@^a19 zt&lUFN`VGV^2gG2o^hGg}bc^JCKex<;Q*W_&_5 zM&J<&=jRf5B?o|ror%vdmgE|!qcRGkt9?!8lMu2OyGf1a0g=ow#I9&!G&iw%tsyUl zulrEhVN^srdqR;;YA zm3^2b*n~oUKlJ^Zco}9D@)lGc#JZp2@+*`{XsP}u4A0VBxcRdUa^u|3Ox=Ms^C>T& z{4$&WhqHHzulw(|g`381Y}>YN+qT`KzjnKi|RV1hrNjk!+(CHn6?8!~49#hnz5 zto}=zpfGMsx=-*kHsmtD7Bj)gpJ5kqQaJ#lXd!xT5l-2W3YFR)?I4f?x@{ z!;q&6KyDhpL1(N9JlztIS368Gd{JjI$q$%8zQtrQY7ZYFE`nN&vPGeOuyLZ$H2_P# z6x!4Fy5Y{1`CdBDN8#b6`xerKGwPU^5jzpUP~MIV z=u+0Tf@q0sHvHX9A`q&>`_~2tJ`5Ui#s*=G(FBGPsn%xM+4XFPBF3y-0!^Hz_jBXP zm}cwR`uwj$MUMExQkY3Mn@f}!J^FF~t&3vcaTrpl-?8$-3YV07&Zo)Mv^W8vID81L zimua9%1Cn|6CY1x_x@}$nol$+bv}LIoxgF1m-m2?eYU+-T-@uGPUMrJrzponiQZhR z8Af8mI!w>a9^7Gy;$&hgnB!k8d}eob*#k~@Nt_o7B{T_2V0Z%EhDy+-7x|tm+<_Sv z?MXy(W*ZT1xvyh1trt-g;Ppbr^Se>!#7hrBFU>mHKtO8wL)qYmd2g zLQIodn?BI_Ua2k9Uq;rX*+lL9Yc^BACHKelMoy0643Hg7C=wz@*$F9GHFC%K%N{j3 zBUX0;kfs@1Pww6p>joPc1U~O0M#M( zIa@xve41#phQB?TU{)>AVb7_+A;MeosJYzJ;ujVXwbEImHyJDspWMrb^pktJ{pDV& z0Oun7<;0VL(ni2HK6Y`kw-#6V8$X9VEp30~6)m+x>yo%qIdp5`WjjRuQBbOVYP3_q zR8?GbfqQNa5nkiFzx?aRU;Z__DSyW>r+XI;MTQ%tIA{;;jYPkz95Mz4{rEA5o4fN= z9in5!g3?hdgTnsu$-lg5HslbA5*l!s*kIL88E*S*9%?lgRwaA=X*E;+3MC%=0sKVY z$7t0J6#vMT5gN|ogtWKewU7Pa3DdL5)1Yvowz$~$Emj&+Aa$P>MEe8%&j87k4Ds#y z3=oxn7iIqq5H-htyruuQV{&1>+3)?zI$ZX){agBK4+k z^F8TuaOE99*r43|O(x2h7cJdl7Z6N?DH`gb*P(8qj%QwhF} zMd9ycEqiX!fUoMHsI^+%>H#**_}dUZy_^18B&v9C4K*%!QDWYP@hO$>tM}NGk~S+O zP-1p3tEcBc%-guiQAX9p#j8f`<=v&^qcF*XUv&f4p2hr!>x8Qa0Bq_voFE2xprw zk1{uv*~0uY3DpRrN&sk0;aZ#^J?`_i(X2c`eHXq%~K zqkx+ol2zg&Dlq4 z=1B54&mHtSH9#XWJXWJd0Y%YnVH%YEb(&1lCh*F!X%w{duzZkR4O_$_P6gbUk%CtN zj4U}UH>WU`E*@VOR(zp}fyx~2sZve2TT!$Q1@0|%6wfbttFF)Ngl^R>nPGXxQ+f#S`5eKqQdqLku?F0%P3y#1aS>HGS`5VOGD%&KffzO6BC zva4)Lb0iHnH90v`;a=GfE8RJ#jeawJt zeI-(oPg~4P0ibZjT?QO*eA)I72Ss*Q;$*f7Z=Fdi<|Igun_M z>Ehpli7JiP=!=InY&=3lpn0I;??L*aWgCB8#$cXQJA91y=b)GZ8DgQ_?FGk0L7eFA zCFkmAK#1OfEi&7kvIj26Vq%pw3z?*R&O=B>oZkxshZeK9oUTndz^&YecH~->L#-vc zETtfL?xK7QE_P-d=I_zEle>g}6#bmUbpG*reAP-BdtSaCB^E)TB$uE}=JYsy@TJC8 zyMZ}MnGni-=0zecYEC!bAvw_-&K$my@PW~3Rqo2Zq2MjT{elSYLg1Wejb59?<9vXh z5bI)SN=orGe<9~1Ckj936>QZP)oaZezMi9|66B2^LGx#KR!)B4$_PEJQZ(*+uE)h1(U(@@qs z{klH9=gTZ-xJbxkE?)2-GOC95!46p@M3f^`W~pe}=M$Tl!m!Kr?3m|&S(HZ{kg|RI z1kEm=_r1dZPAV%~Sy=uPHLI=3f1+l+Viv`eXw(^E!f?SvWqOrwiXc78f)U_INGK=- zfZvLP30TZ5;QZa$+avt~j7q2kuV12mEQ$KwC`7) zIrGHM;f1L<-cN^yc+4m%2yN6IHh0*rl=JpY<4W;OFS*HWIkI(5%4yI9P=xAPitHO& z-Z-YG)fuH|O&p|Gv3CfTOIrVh&$DoD{=3M3;q#~_ePGd` zm;6w5z4u$+@P}+lu93&x4cSnG)ox)9D$-pf9y_Q=;SMeKCyWmHgwd||u4z2-%^c#l zo&KnS_{Wk$Y!{Fr%&HbGFX@z+tHgMait={?gm7r07tlWd?HFcKrVZW_$G+r2&_sf1 zgi?&#Ehn#KL!0#&W>m5j4=)fW?%`Ae6BTX3QW?g`Tydz$dacDmP6`swF^Z*XSTvom z5q0;0aI;NuY8tR7@dx?E5ER{xaTR{I1JTGAJ`m`>2wNzKD0vMTj4_*eNw#XsijFYw zLGZ;hnx@}Hj+vi3P<&w;;jLgS%2u5j1 zuLN%b8$orT&?ZYeB~+s&+|M~C`8j(h@F!6T-QV#>nBol)(4vt_pQ=A1^=T^ArISy9XKSj<5A+)Ifw*cr z=_jxKOUZ8Znl<=3-8Mc^Hm(kK~19Qni&lAwMg!A;MxL11G8G zkNYeFiXE}=H8oIm9ZSjvZOe9wPwXvjz+ReJ#hV&G?Ry18NQ3yJB)-hwe$>!sKT7Nd zwwML9-{i9&C3WBRs}wSE@?u_yDT9m;lZQnW+S;jxrRvJp&Y}uBaR!p0oMs; zk$K58dmjCaS6&j4H0WE+MT_mX%?Gtdp4F8mJ3l8JK;-Lx(Ro26+g%~T{qm(x=*t)O zeOsOGU}NKy@n`_ge3>+0_o~3w;l}hnMV^%?er4<*S!%4iB!!O_xc& zN7~1%23{?-}lV?KjU3U%=ndQtty|{1t&=yswM`yE_t3OjN(2ZM#qn5_bb?Totu9 zleT&`j~fYX5U&PvhSyD{YD2Q)?eW<{O3g6UK7HspLCe- ztT+hVZdmZsrWB+;*6iP-Bf8FVA<94aI0Vjiue?iUPCvRQ1YB=^^3K~n_@5tUOTMXa ze8`?=w>@!T2wdeZEdGJD_nR5$x}Nqb|B&J6+TS(svm5!I6H6T7%C~zm#iE^R#88g`p3${I))p#MtLl~AE#pPkC!2P?T1A}_7F!!D?AoAJ8t`4W&>o#$ih`{-As0k}Lo`N-dqcj^Q)*HT95++%iFk;_9d@VvOHagAM zK7?n<q70TRsI>hPxLFUd&2$nq zK_ViCXyiV>8x%Cv6~iWX;Tc}CM6r!2a)SaH1G~Ywo2fIpxBFIo07d*>b53(9T%-Xv zj#0#ebkL`4G4G6ne#sgr>(I(x;>JV<2$i>Ri%jh*x$diCO& zr&!Lao&7R`S}bsqACi6eTjsT=1gmx_t#cpKorK2F%Wv$FUdGGhSZP(gf6_XsF;CXA zHKVXA-s<~m|Da(r&Eh%ySP4cx$*g$gTuoS$7)zMSft@R$HP76)d#h2-xHkp0%f!m6 zE|S8n^_*mIZ@FF^s?n#sZH^#5i>;a2c$YoMKJcaj?>7OL+pb?IqM{*bC5x|Oj&!wyDJxV*MMQF&oP>~= zzTknmQ*T$BvOjxG%TbWxDk!;?3_V`_TIRfgWJEr1us z1FWWPpxr^%k4?89H5E=$jb{*>C!;fXgzhoj)kn6tf!?Cr1u$0+Y~kMzwi0(Mr;jWM z&OqIfE$=ab^tDn&mkhhBC5VaSulQJtbMg!pj!J(j3HpxT;5ybS2JVM2q;Q^InA=ch zRu`zjxF_Lg(Skw#@Q#5TThbgteAIGk%nHy5wDHE}te{Dm$ZTzM^-1DMs@0=6dcY$j zx-@fc44})PX!o5RIXEsnS*k}%Z!*SibieJs9&Tu_gzvQ9t+$#>83&?t;rLcGce!ZC z-BJmA_I+R-{5k6*b}##u{^S&1DMg&hPZ#=zRhpSvnyE#Qu5N-nVpWQ1QS5$rEH6_+ zGiy$N8_^nd3b~^?10K9|0~Wj_Jp&B#Q}Ac}Ug)Y2yGu)@ZMto7?-Hz^XMmNFkF952 znwwNgUUZ7$nPyy>;}xhM^1^BKnECx47Ip%HPhyH?A!D0wq%aA`8vF&WK{?Z`M6C?G z(fPa($DYvW999^K*6#Ka#?5NB@*4b2cfjmBo33(~?2iZ?xZ)#a8#w&jMPP1~=30&Q zUfJM)j5fz&wPr)RQDQpVjSX z_s<)s$`=Rv&7j+_>zf~KmI#oz{&LxVyXyt}zWZP#5FN7B-9#fOUX#%I5fu4wUTUA3 z*h7!&D1-6i%vkpnQ6tjO8JtC?FylE(U@FmXyu3H@G9!Ih_ZCqy1VuvrvC*I!aKZ0o zEe*HG6q9z$6c*E4tjd{7oK9h}k}FvE9zF3m3K1F2zyfkC_~$S~7YY;_3m;ma(xVpz zIw>A5mtA6+Lqhmxj1J@JGv#)ofpq0|vVk?_c9MZM<#vjJ7v)zS;D_W52n?Fqnl80@ z34OzcB2PixoMPKN1-u)-2F~eMDt@x817Ww%DI5scmta4kF4ks1G1jT^gH>{CzhZLP zSPiEcO2dJB5F&pAuENR0?}_0;ev^{11vH4aSU-yr8Z$jJ5mIE}{Am5{pY~h4>#KuJ z!T$Sa_r#aI5#ivWh_#oB=L{L&O+}4T2Fz1yx2T?pNJ+=a*2!%t-5uqn2-uFE?UBgJ ztrC0Z(sb}!u@g}^w}{mXx{{Cs8UP=Ys)WpD3>IB^>o<*^sVvw#)^`yv72E2wp;-&I4wd zM$qD(ux%jN!HII@PA$Mo*mre1#`c$j&vP?tY85k&$Qlc&^|i9Td5Orc!al%r+H-55 z#|hZy#gU?dlx&)N9!z+fr?zOM$k6Y2?l?;O(~yONy>-cW76~)&4vH`Z&?%KZy%_{T zm=}+Am1SjdeUldle zNr{Eywf1@wn}n~0Y}(qfVrecoIA*r@5~Eth@Kb{%>Rr{9KBaH<(lQnnebw>c%Luv( z>d!0D-|b(ivg5Y#VjHm|pZ4159{_!UdMi)(*-_?Y5GNCl<%s1s!b5rrv%z?|RRIou zgfYW`CVdlz#A+k7Z$R_rz`%kzqI~zK7#0$e2hMKQ_O;0a5qYwcv_{qe`b;B-HFinl zJUvwFGoZA5-y}i*{VK0N>&+K}g1H(YmjUz_92C_rY0>AAKboqv{@Am$R-2KeyNeMn5d5Zn`R8pAROfCKt=#_Q2OWIuwi$)f7vqwA7wSCwL zCuc@sB}plZIt&77qt^1FXw0zrQfIdH&g+vfe9UkNRW!!dh9%IVF6tx3cE# zp>yVER~XC>%nu4^z&eEf!lJ3p6&fCA*XKQ34(X}3xz#v4{rr*iKzYffu&=)pMYHRo z(Y5r{?8E4?iB70a#E>VQSHBivJWPk{=1;)k;iQgwMhgW zuj&SQ?m_0BM(-odFW-h&(e=&yIk@V>^3kA3!}YC9?_;FOpzcgy?ZM#ux!V1WqwT#- z@1w8k!)oc{*V)p=GklxhT-DaEv!;t@yf(k3s;#=S$BXAJ_cwyJcflo+6Or?s+#ZPfi(ob9zK^IQWX4t1SH~yMmk)u#Ez8vXb zwc>!kCKY>6T_oO9L>{yQ^USU` z<8h4oOh1uh@t{5?RBqfbqnI(|gx<;#H`@RPGBvvb_WMW%c$oL!7V*a$l-qNL!O|n-%B?JH#ts zq1{gPWi<$ZWv$u#N`IaY0YX39J%H{gMZgB*SPDU37a-?5PuqQf-Q4@Ns$#aIu40qA ze98Dh`^B<>Rx>})hHkr+Uz?%3j_n#3_RkOgRl;r;HphJM^?3<>5c|b$cG%-H5|scQ z)*3xf?~*;jr}&A=k;6t)mKa-i^7I~4mIPZs{KQ?{gyb(QId&7NgEg24(&iQ3=4B?w z>bV{5FFShk#KF8b+$Ly(Iw|4~lJ3FuR9ek(VD`)7AusPrC;@K`w zgtst^S;+Pv{se&vllas=NB^Tbm9tUDvvWJWkv&R<{rDUj`6qe9a$CB?@DA+6q$Kx3 zPqd$d+kna=t4ILb(jceutu=cV`3&!TXy}8Bx0N@?MG219q6|;`DxV~4a>Ou*_ha|_ z9xiuD0L59%ey(m6ss%!Zny#IRKCw7?%0Q+2Tor|trHUGd?`UHoom>Y zw;z_(0}Qs06gj>Ken%^BPL>Y+491T``5OQORhRcrZHm=e>mP|41O+zJf?aQ4^ycK2 zMu!tbA6tW6)!Hr8G~DJM)Hw5Ts52o?e(gW$eqEB*MMTpLN6``;XipKpL*`r-#~zYX z?U_)Wps|9;7IXQIHnFF!Jy|}o&o`?DfP`xas97Y zhsNig#|cMP*v2bsa&03A>oW2ZdMlOJd5XW%)5{U3F>cxllie8<)*?lP5n_RS8?G-!RFKCAubuTL`epG{_St;9>EQG6EJ6eFT8%e%1L%K75Hc@T@?O zK3w|&cvHlMTfO>}t0H(G#86KLz46C6izgaa76I9&I}%q!0cptZ0=_@Hq^F#kk}i?g zCDG?hpNhUVgo4>|{mdyg{N5FuF{FgZ(ftKYE*H|1Np?DLxOr0FiDzM?7!&hHoCEIf zSiedBpEvn<;am+|3u?}povrg$Ydn`L@?(6Y9_pm`PdfX%#a5gI165fwxRZ5^WRw2w z>^zHfOgx1;$hEkw3n3QaC~eepMU*~lch2e6pegzJ6$2XfR`Q9uj{{b@NJpit#jEzf zwqL7Gi}A0~sGWa2uV22R-9$LbcjZvOli~KsK#v3|2VJd#Z8bo5+MxI>t@_B=fNOJU z^66a>V%)2f_pWOFeiJkv+O}`Kl3`U9CZk{VzIc9@jqQxQeuvTYLBj}HQqD8iBDT&- z6uheQRcndbJSnG9dDLbdwZ%5GVg=ZI{Nc827Ycroqde4MP1=%T+Hg*fh8${@HlRp& z4UCXuGFGXmCw|vp?Wi@Ilw*hd95`E@ktoXA7nTTem8f!AWsK&Ij3x?q%@$n&ocm9j z$d4n=Vn9=jX8dy|%Lsfj@Ovl5EnL(ZOOx^W^|%~|EAB|A5#BYSIG5YXRw zh4>bFILq_i1DT0l`GM2vB&K*H)8$D4wj@~ARsy+?xa;_sO<~O&Q2V-q?AE_Iat{tB z8jlxOz+@@}3w$|`vl=lJ#>;|PS^C)3U|Upa&`KLvg)0?u4dQYP^0H%pRkHtHQC(d9 zc||lr^WBAQm^aC(T#@{s+?`q#k4l@7G|&r5pHe4)n;@CCCAP0_n|a=7XkNz7;K>$^ z7~AjV8*_Ty(2^(ej5(LYRT0sRp*u$cTHusZ%Aq9MtWd>>Cg&#T&BfljR!$U~6~_>f!ilmTM8z5iVo_ zerOdV4QGPNf;J_X6MCGFu!gnSK~v2!MI{lIRjrYes@b{bZd{cb8q?@*WOgbBId}65 zuDPv%D#fLlhEuQAO8bJac{x|f4dE@-rWuw~_vfrumVpO>^l$fd%{rrXBZ7*FU&;($ z5Rb1f3Xf(eT)!vMuCOC4Ln@nOKkJ#rxwORF)2zu=F3$_SlyZtO z(@#5a1>}F19GJ3nB+J==93lBygW#xp>$#x&#(Dr--scQ<}e4gr9iU)bza3A-FW-^!X`Lj9#w{z0+hwD926 zNxLvBr*460HK$Wv-wmwygWpa~ASd%Q%r*9zORp*`pYJpo+D<z*J%x(!4SWZ_N`$lG1=KS=vMb6n7-PO_<3&BOEO`SI z78y@&yCP&(gCgAr7JmUv!;$8zJq<09l4<5A=|5>;PhLWeV`GU(k9A^ z%_7)&9@j#zWP8;sq1h{u0f8LfQxWd36EA@xGYWX}UOlntKG-u6jq5|xL@!pXAROXn zR;ofTmBmOGeRwSItS}VBa`|tk1llVy22J;)CQm;pSa=IfzPZ{k9`L|8jZjIq48S#v zuw)M*;aq?>7OL)&X16BF|7y@w?U>I~E?~pAhA&ijgngFZp(IH*L4|jZEQ*b0a*Z>g zm2;0&7!i!#r_8b~ZGyFm>P3l$-DuDBSk9PV#+esSjqS}@p;{Z>$qa&s@VKF`2%NrGw^ys`_+Y?HD@5%wD24g^FXGK zUL91&M{98)_2;&21k*c~p1%B4OaT+DB|lznz9mQgJNv2d{8pf!z2KYPeMd=GG5jSI zpG=%NukhATln>h}L5@M#bC@vv!%xL(i8qsZ_!9r1Rna$0m-H&$0sxR_<7!+&elA>crWV#ezdKw*VTkXp{);rqNJnS z=bP>3{*WMV#KfjhnguT0knXf7GMhN|<{y*70Ch=)D1W_DiO>;5R5Xljhf?E#i!kjA z5e1bDFVrVOPEj4d4$R2C2m@cS`a0Vjmj?1X@I@N(Au_@N!nYa&PT9p*`F_Hw3yK3u zvk}UL@~9Os`BSmJuRiVK$)yZ; z#5m}$Y$?6=TFw#D&y&#;A8@MA`cg?s5APki$&Foq7V{Wl9J~nF;s?EJ zno_*!>i(mOu1}#ho-7Hx}nQvxER3YJr)o5p*!7z@)_%#>{t76Jd>Q44`KQkx`EvQd+fuy<##mTj^ zTe89t&!?T9z?i`6-Gs*%{N5qEW#HU;Bt4?1P>MI$Wj#Y-=WEu% zrdV`WKT$j`^T5ObYSlLNW0ez2X0OZlED`-}4*h)(gWb(BYFD%+wFK1!H7IDHjcO=e zZuxf+gJ}%dNxHraD%sn8C+O9vv_1Kh=o&qxBtkhEOE(L63Kzv*$C+OiFlhP2Fl_lb zOSGi3QQ=swoe8B+RjnnnSnsS9!&gWiCoG(Zu%UagyQG<+MuvizvTxwwz&&g;MN|=3%)ed>s^!nKoL~zu^J(=@qn*nOBxen~i7a zGBOL2TC@&fjC<*%B&%_#iPUE8cH}3L-I65>_Kx{unWDpoFZFpudk<$T>?gx-VJwS~ zj;YF3%atj5<*ISWaw~;VZCBvF=Kouc>kspeyt%@0)Vqw-cKAz!Jx&~Mmh-p+g=0r@=I5t5r(^sq{&Z!kSeLI zR_FjM3%0pYNptQFIW_emtE!Q84P*5#8az8LJiRscGgFQc2pW7-P00>Bx>|eL4qJQG z4t#s*4qbcYE*|{VE+71r%Qj@>JrRjdNLonzhXMk3vG@?H_TrJA{>I!o8j`3#ii|i? z8}??EWe3?<64tmpYbRi4M@e-S=~9e|!8KVLkdb-Vk_%rZct|}2cspBHg2r=w;FBY6 zJQ>{lSt~mMhJ#DjZIUF{Kd|uRZ^VvYdIT%_L=rj$~D9#S2Tc)2z?L3d#K@% z>>g7-6S!MHGSG33hyC_?|5P5^(E9+<7_Np&O-ZV(l)`dZ5yp*SU$hm1PitmOT+ zvTzCAYa$U1@*KGWK(`%2I4`gWD#!ChCu^1k!Nb%2W0?V_r)FBRA(Ky|NcmOr=++}< z*f%t3y(y;JuIF)H<5F-C~XNUE+9rM zE9>4a2r`(Ia4(%+q36!KnIcL+zSnJw zne8Y;KAi`~2-x?O*5pG1#eIPp`j1fir>j;}J|iGLZf~DHu#XeDY`6HBq<0lrxh08b znqMq#Ky&cWJN^|`4P-SD{hnG{FRqhOir`|eBzYf+7n_u8H#bHZNtZ^Zq<%q2k|;#< z+YoQ~kYjsbjgxU!&8Ru?;^wEID*oyoQSMZbo`Uz#K{Z?cTxEip*6Bn8Lt zqs~F}j~P!4J!sn8x#F43c)pfaQ1z&gH4(TRS7D`A#*+K(l-UTRLPU#%i{_H^K{m6T z=ttLKZ*J8cQ%fk4?M!pXdoaN91N;nz>F-9=!Yz4a5v+oHEbgX`WA)!gVay>QWID<0 zctvty_~%_0f%iF`X=>Ld(koe6>WwvS@(v>n0Kox!{AL` zG;eBH;=2O>+{JFZ#o_&H5`Oeq)CK<^iu(V&?f9RI`kBg~vLH&|_&ioFdVkGo+b(EV zN+$a47z+o1%(KFili~>H1%@`@;LKT`~Y@!TcC6i_}uppm}Ru-5r_1v8eHP~-PQqfI`2kgK1LwAe7+u+U z>_UT{gd)*-hA07w?^G@)Zea|ywU$?4xAWteN~E0KP5muE=;9CGWK2Wo(BrOAG9*Lh zWdN_|nnz|&APSUKvAkN6xWiHS_q9Y*xWlSX3tkq--WZkf-}Ppy4Dm_=S`$3!*MNugEbYs3I}e&xVT0{?Ww&h@1B`2{qZl`xJS`1fM@!*^`xX|HVuuAR-iU z#OBV+RifYPA{q?yU0{1>q*DMW5!QS5w6|}S?APn0hYwhYVq2}Z_^4t19eO);nAmkb zfL!@PYsWu!uwRX=oHM(WX4ove$h`uyA)fz)RB?kf`a)_RI0-i(s3Vb76Io2TUqiXF z52XxPqUy8W`@F0kZy)FdD-F9+jJt-dCm1d)c|yYi_ZJ0DOPYcLeq(~$p`h8p(p^Xq zYiE2b&O=6X$}~k=m%Mc#&PE+58DXvxeuMvKba~zyNa=h=m)vLV|KEC|{H^=44h}X# z_NL-yX0{@hM)nqF|5Ez@+XSeou_A#9QbZ|Oq{x+FR!(UKE8a}7UzN4TaF?RZ32UG# z(@x^P_z#OLY9zrc$fxX#6^C9?9-CjwV}|#n=cVVQ%Nm1$fG>oih+YpE43%~jrQ}Xo zkeMY4B{gMkMNW_nv%2Xqa~Yhnqu~=cGZ1j*cJFJGeda5}@e;V^-o}>>sp}9khs&9C zHeY(2b)ebf3jm_Gl{JsW*tU9S7_HXec5YlXHb2hWuDE`BzcyN3rDdT#_w|`BWB0Z1 zv@+mKZjv9l-*vlkuh+Z=@T{9CHsP+OH=ev?D5pEMQDp$7&S&|iE}R&?vxGC!S`FrU znx4|xb9cU*(zZJFXA%+*QL=nAi5efIY=k={SgA;ELGzBC%$v<)c3;!JE1KL@iqXMT zm+uHKC4A(@39UH2=%+hq=hCw5LDLW+qNzxhr-Wc@FPW_?)&kSv;(uFCGuxLoN3mgf zsIH5p<=$*LGntCJ_^fm9Uj!K4s3M7*4J^N6A!~EChYHBZOttm}Uj<%B?rT;4DIYhX zL!3O0*sXppl2hO;#u7j&!^mc#9Xe0$XI`_rd9R^h`kyTFNUx~lG(RH)C)T*Kh3YfFMg|} zUV$s(CG-7?$R~tXc#K%e5|I$7BN>4hixLIJB~XG-9Ja_cj?ySObJzSO5LjHp*ly?h zJzbSLJK(Kz2_)|xRH?Vn=mU8Gon$aMf0S%oJQJF=7{=VP3sY_TU-m4)3_EI2KVQbV z&-Hf2|A*I6@zaIe&g@e}!ph6c^uL@XKjT`()yVlD%kGtGI)6o!-iuuAv@mE1OEd>$ zVjIJC7{WE%=YcTl!ph2t{V7H~^(L!&zuM4t1!g?_1AgS)^z>`^e@c$fLy1zcG09m> zrhc03J!Z>VvRe4#hV#o?1YI~Eg{K;M(@C^7k(Ja1e^Rvf>9My9vm1Ru|&t1+qy z$6=geKFyom#xLT3g62Ol0nub*zT#1+H^zc{dp0X`fXPfYRGC`ttd>G&b(?ghDeqEA z23<(&!<5adHh)H4Iopt%sE z(L>u#o8^?uFr~t*4$eBM^kLUHM5?vOj?k>cRpTxqG4I_j)e0y;S8Y=}(ff|yaeu3d zF!0bVAtM$z<1fox#d$3X5@4k=6tYHlCkFY5Aq5z&gG(Z7H1EziVi=_?|y}+Y3Rp7-~RlW3mx4b{bneGN` zGSMZEQ4ktMKSoroYkJrtoRsitmgCz-!+3pe)0hXBN)Oia z!bRcM9+a=8bAYJugsP*kZ&-dkLR_Pu7skcg%8i2I%2c>%yutJX^bBI)#kb0iQDJX@ z{RP)^y%}zP9Z@R@1MZL%VN4t+T0ehOY~}LR2!pgY(F>9-%4+4l&V9&juE#yGl)<-r zy4D|m!W1tyLpm96@WQrw6)8|$EzSkG!Z?LIe>67+5lsk7mm8~=6BREo6?XLMRbq9I z0T4d`8aW{uWSUO0Dv@`nbP^|$MhS%Cjzr-C0Ham6U#GbO`6%J9U;kM_M76w7z&|q( z1?qo)VDh(ud}g4Tz3YE!m;FoeNchY-rEfzY#b#7`>XaBlsNhHi7^Xr!G*jHhf{hgrs-jvsDj3jbboA9i|wyMT1vR88vUpXXaV50Pp)n);&)ICIHBVdi4 z@!~9#nsxPE$vfL^p;%2SvR2b^3(lC=O3Xc*Mpz)Os+A?)WOvO>ha>U+;uFC>Kb{>U zX4J}A=1?MqD-wp-Wn<@*Np#4AfBmbLPS^Pdh82s>FJOYv!ibGjKE#<8jX~}t9Ny@V zTxZhw_SV-DQH->@(Z=A&fDA)T`1e171Qx4Ol=rUE;Z}fofs6uu-g@dn-YINjAFtn# zvOsJ!*Bq6=AQIv9i0#%O&vivdloKd>s$oN+p1f<*So4&Z?A*LX4zKO{D!Wx;;{yAm zO!g(lAKiS0P(xy%Jcw}AQEX97{=V>hi{CZh97Mjn9DmSTmu!moizyM-4y zN`=qg*3)ty_3EF#n)J%#hFH(!_Ap6#4`Yt9;nAce&&qmFR0`=Qjo}bqgwrC@J}^DS z5gySC>54%U#u!lt2C52ioB*ePECln1Bjykc@%F|^SSpZtOcRHwintQWhFioG*bUFR zKrS2syeV_xw>f(-%O;X7)8g+^1W$MMjN9yaL%z4)As7hs2zai*Y~y>^e<6hz@Q|m`Z?aLJSHYEOHG-zz?LrbZG3~@P5im4sS z%8ddst8i~CzO#((fARLL&#J>-`h;nzp9h(r7X|;Ti|+qOvj3|O_%At@_#bs`=wr^k z%~gy3YtS}$keHWH=QPJA=<)f9CDEdNQi{;^im7fGzC70ZPmYxU5j4#BhgavB)%yjGK_t zH&tAc(^m29P~A0Uy<&@Y1jRO+CmN@VPyd}3JLVK`#2M$AOK_IvXKeGDqHkFW8;_RD z4b24Oat*@+_)YC|HqA}cXq!T&Gj)Vj)PWYWBzA$ju3cisD9egy1eGYq0f#jQXSn>Z zDK~W>&%N`kPu@>5^39<)UTEdl=zwphb-3s8`R{Y#SYSY}*~%>Dabyql1of zvv2KFr_T4ox%*bF=MPx5#(d_SYmGUE&Ms~woWS{9M8Qoj^Lh68@GFoAe@OgM^Kz9s5yCQTM9s3}m4(i!PzZwLE z69t#+gVZ&UTb)LX5j37f2l1KQHf zITG@h<%HAMYXT<=9@Du3^F?3RThK~B8OZ`OxFcLx!|qC>TW?#CZ$>?_PD0Z$_Jg8% z^w1msg;0;Tg(M=Uh2CM19RFy;9S{YqU>DkNIVO6Axvn*=EOGpZsgxI6%B)duHp)h2jzvt(f!Y$pKW;s;R_bJiDew9s~#)(ZvNZPTquX6U$*0q}*pKDNGz@^Ky zgAvfW#9G9TWw^J~1ktAC+G^Nq+dSk9cAhG(U!27cPg)zY&mb4Oqo$Q!cr=S5$)F7= zv9sQ&Xf#W|sE|EAe-uzKU`A;jX7>6`Bj!6*!I9H&)CM>Z{HFD`)9w`exf$3Rtoa6w zQ{N^*uQHRLL$z{rYJ7F5txUSruw`$Dciaw^#`vBixr1u>CAp_rr1ZlYtZ(+wdZR1FRA9M;sdc(q&`f-A;%%9IY2h=KV|Ak(R!T( zLP*hy9Hu(MxFT@9pf9n%1)Gz0E+O`BV)0J2bBg)*lJ%xjVyJH}oK;J>JBG#!=qgX3 z`ZdPIE+xydRRj4U!-^$#4T<;0EiY1y=^Qy!4e;B%Sjt552VB8cLU1D>N?>!TtR7LE z=~q>>`%~Og1l}L=%8ge99}JXCKf-`W;$|V+ilK!3i>p5nRPRfEM^Uh^3P`FJ{BWsK zzZk`KZmCHN&t}hI=gp;}W~nV2goqQ{qq=XTqIQ8ZiR%@vNKA8jC@!Pe19ZqU+zOB| zn&2UQw&u_uqEdFhNFGoI{iNo>N9W@R7oB#xAUUMisbHf8i9I<$80M*~_A_o!)9?+nQ^Z0i68QQoL)Bo-o47h^)V^~8*QG?iIG>I~KI05hcbt75>#nwQfU z=Ih4X3Qn==^=r!N4?+~i=(g94jU0Z$ zesjywQw@T@;_)|^(FKD}{Ub5_uYK+2<)UrL=Ixf|mgc91tDe_@o2<31wJqsQ%a??k z^q1|sKR13inSRHW(6L~>;&&VL+>t^@#}=EL2ZhH5gj*w1ADj4&eFLilOr)FmhsVfV z;q6{Ov&c62N2kO#@sEy;?Y~)LMU2$FBiYYw@KAd{qHkfTJ~ttO&*X}^&if0D)EwLI z{Sh;5Mr|xFC1`nWeNvZuV=fB5xl~Nd%Z7KSK&tM;Ag5<%&gec(?43$RUj)OGB?rg* zQuv*I!~0V^tnT2Rv0;xp0m46dF+{uJ@B3u-g2%^6w(ks|v64L}$EpVZpb7nkA-+bZ z@;qNHur`D9I(Gr@@Ir5-XkX|3J$pMj&q%pnNm)!dD?Qi)J&kul&jF0@O#VYm-KFIq z_VL?rA~PZT=(PV3?OEHLoRcyb8bYEp&0LD+3IVJFqT8QR7nPvxNnSOsPIeq;_;YZFqTjKPJ2wv0*c(pyW~xYD~*Py5pQSnHg^ zX~>f(90e9O*-6yK_Kbrd_#wTtbgJ`4OZKcR9suhO4QAV}bA9{{L*W5dlzyQIeE}L4 zmE*#wkF9fLNrp)Vd=1*vLn8bYvfL$Mhmc~ybP zq>ThK|M8IUPVn{Xoe?G8%+T-aHFw~fsIKr}cN#T!;R#M`vmDGHKs}t0RIYvVWjOZH z$&y@r$ltlrU7K%Py>j^H2i^xsGXX0dJ9DwKTG;9n+(Cs;3~}HsIh$UW94M9($l&xs zvWu(oqxC2s^LgvS*PCw()Fa4zC>Kjxvo=5H)%70vMXx9^7Y}akbIV^5-#F0Ms>Uut zdI|^8n~&F%om<48>U2XRBsegJx86^#cV*j}zG#G8N(|`hDpHYFy&>FL1Z=+p&TS~i z|D5w2$CaZyqDUEaE^NeBOS^*1O-U_93!8I?`ZtI74>@l`iWXdPJ#KCQQFNM#d>;wb@MRQgZaoT8A2+N-8jSkBV)rDi#pjdP2 zU{$6Mj=D|q+=FgN+zt+^wG07rU$ocII0T7sLWQood$&BFtYpY~ZR_sqp~(eOXS~oR zYV{1{iitNRcpoB}^y7<*4!+T+@jY*kRwi4HXJAMp*Gay;b2umNWijuhgVD(L04ilS z)Wq^i5=og)c@s2sFSRs6-Z3=)Ru&+lqEGl|DrOm@&hEk#2ROnY>~?1Z)04`(NB3Yn zwiaeZf}A2CLORbt|0s4ngwyS?1|!`oeHK7v8q9s!(or z%DXq$9+EB$>A49I|5PKIQoB-|{Vglt7SItN1UuA*GA& z3-#-Kt}eSijks+L4DZf*?v)Fqv%b0|h19Y#blaQZl2%uQS`7VM!G&K2g&rE#Eu~j~ z1uDBHi$|4{R4gRK7&@lx4V64v9dw1E2@bgz_gL&7;};uK{{2xf@YIPXh&F_eRQ+=~ z<9FyRkrq&-G3w{Vl~5qB_3fH*j>y&C`76ZHK_=ES=6S*QPeLr(h4httgT@Cnlz8+y8Y_;*#4MFqTmSFe&4oIA=fVp(BZ7)%lt_^op*!+6$Mvm_BPtbu*|nnB+EZ) zTk6~KE5G=u_sE)W_~la946o6BA<+$?^yOJOI6b6SqcJ_!h@J?t z_FAY^9x=9F4FdH7VJ661#0*h9pQ=&g zw(c%F^xr#=4`nnkvK{zzNgjinRwww^Uz{WlDF0TpLu1a z@3DWO#u%L?)~y^T-33p-Wux`S)2}vt4M}Qa($YGwqru{ci+75r!A)!mU-_An&!?$#(s&t2 z$AxK_N1^2=znyD?u{klCTfnhVFruz(Mn<}_owZMZnjH1-&#lk&qv^PqYQC|{Yip|2 z6!hngO~OPo%ZKDl+>qg>qK^*OeTe#IN(CcYH12vKh*vBX$uqehyp26q5+;bGk=LFQ zD`~M*MY}RV zgFsD=XGs2{gzxT*A8ls-7TRai2a%FJ%%-dy}}sx zo#0dC#aZZrCX-u#wtK}mfl@SRbN~5sk@WepgQH&Cc5YCkeu`##b}%CZZadh6{TX-L zDYB8>spUBr%Aq$)!6}xqCCVkoB%IPcQa_U$DJpy4S6+{padDU7xf!aq?*i8sq?T{! zA4fJZwytYAB+9N!;mSR0IoUaHhVA%xBQEnzoQU{mFB!cvomsg+uf- z>wQ)y9y4FRVkO+^kx*QPfdh^^F{e<<8gxybp{2~WFrGgeXe)Eqj$j%#CR~ZPPmYb6 zdbN92TB62s0s19jX$MFgU13ay1UoHg-+S;cjv$J{V|OZQlSbo;($xxS(w%3uSsjtL?=1f= zw^_6|rnQg$&w5|bsRxRPEiQ9u-lh#oQS|rK42Ha1AiHOp+aA}Z@7R=3yH_5r)6Z$R ztt!x>m!He?QV+j=sp2mVlK87^{=0kFPxLGb=di^@vgFQbQp86=vi1Z`Z0QE+nI9C} z{|&`74>MDc;Hkx57$G_I1LnuPj3fIUx3>1Ew46!yKCJvZ{yqC0IfrTDv~y$``(4v> zC}l26Pw@l4K8k|rXWr7F%f6R<7jck+2!9W?!TjKa?+*jxBR`BZvgl~T2&g>88^^a} zC_YmP>fy@w5DN%uGs4y#BAB%5g^BkqK_avQct=`UZl=eBJW7KDS#4W?YTAw84zd!& z23QW3o(%U7l$a!HPh={KgSy;mXg!!*+(R3go|5lj-13b2Qx{LKrcg!Eg7>!aU3A+; zqs|W*t}kMNyK4Y9l$(7&|3^>?-<`j@Fd?X zW8W|z84*tE>PAXoWwaffk8q4ldTdr|sKL1^s7=NTXRAli#ZNGlE8h zZc7G{2)dL%dil=mqhPj07zmYj&IQJII})(*;bvB;?2;h|_|{U-fo&8%OC zHg5CQO+`0;guYj0-GGXBL`v}ybfdSJb`ge=N>VX{uJwSgw8_x!Vw~YJualFP-_5_W zUPK|Mg}(mE%jRFU7N6)~sTn;2a-9sE6|MC`&dR(MCv znxGC(Fa=H#y?I-4&alcKM*n*D+ZW4571`{&a~k{5;bm_6x4sj=2b@vnoX!XD*^LS9 z^Dc{b#oBBCUiVK4soaJbW zE`{wyZtClI+dXMadSka3&YH5M(WN=V2Qy3@2oWD}@Dz}*9i>sphNYP~z%^ZTFZa^c zc8AV!XjO16-#~+RjLO|&{Ij)1=xATeNb86#bYQ(7HMFZ5X$sm%5l_vATA6|82mLZv zfyC))h0^d0;tlY|wpok1^Xr#D59@ZMSd&B28HG+-TG4K=p8v%*gZx1qyCySsu_LG1 zli(}MtRS)7nQGrd&pF|SGmI7edwdL1-o9mWobsPW+oV#z z8L<{Nz_t+fPpnrx;N!u*l_}ZuPZ5+^%$@NPbs`>-ZC~i94cS*68G$p7Z~60&YdsR zo~qlCqNE_T{Y0~a+baZ$=$}Qm%pi|JHu3DJdd0~fF1KBmG*hV`QRZK$UG#67yXtE_ zP_+}E2%bsaSXc>%?{=P&PdzMe9#fwJjR8BCLd<(YA#tW(EWV^~JN-ANUp_9MDQ0jV!E>|ad2 z6f1rVD=XlIcZMKFP~4Uny(JjXB#kD-xxC1^vBIe=uO1M37%3>DHQW$75V7S-Wbp%2 zKjA3A+BX4*R)kzH7?Sz<)nG`X#z@5SP-A1egxI1N-Q9*f~f) zq`*dod7SU~@FCW?SA&$Jj2D@sPFaR+7v-XpycGN-fDpqq3d0=u_*#@sR>QPtX^|sF zH4z2jFENGM1E_@%q%TX z3V{8nKol$asei8d*6q)t@ToOQ`Zpy$;-D{-L+KZqF}FgHvM0XU9(uaS%<-P<*t#ic z9(8Q0Dd+XSK0;#kOj8lZ_o`BLi zs_1~-lyGqrjdwkO_NUReliUpGm z*~Tj8IQA8}D7TM}5%A^Yro0mM(A`kdbpr*MCAVq^VFCLGnBcuM&Lon65Z?so(8AvS zr`>eQsn`MsjyWtegCl9`T}H5b_ax-<+SUT*Xlg)sU?Bi10)<&TxkeLY8%7 zBz|Z{xN$iMt|@+)8CXSR1L>^Xuhg5czLYr83H#A%UkDv*eGFjDd~hA<^fP^fDsiT? zQ)&{q&Z(ZJaDo;r*$^!@m4;XhH;Q>wl2JW3PHL2@QL`3&hvR@mJz|h(TGmyeooz7# zWB(92%({~8MnSqVj4`;h>TK#qTS$<6sG7zI8nv2o0nD-y8RuMQLLGiuV!`N7r#kUW z0M%mriYZ&7^nBiT<4GC?u^K%g&$7H=UD}d%bCl%Dj$&E;`?3HuMuRX!{c-?tz*=TT z)?=V>ezO73h;fL9im{}$T7y9V!p52aLme0klf4K|wLpB643n*+T=nZf$JWTt3C9M_v8>*aUrBmzzAFvxFb>a8s;R)m@_+d_a$?3ta{HipH zYm*@Cqetx%XI*A!3lisx@ztWMA)lKr-ZjM-TDGnHHymrm1W7kDTOS=_N4~yftNT1r zR(`071~tqxv^p9gk8wa(V%c>-ch6a8dU)Sbf}ze&0m@@347Ms&7~zm&&x+ts-06}{xK_gqGlZQ*nsM~}TgDz3@4=9)OOpBwUOKk#gwIqj$qgnL zo61G8rs~u)WNSKfc{bM4J(73mGkDN4{EV)rapE;fwdv(PY z1;eGwEA*uS+Y?AO0_OV&P34RW!ikT*Ptk9QdC-Anc_a}PaCFj)nW)lW4bR!4)HRKR zOpqpZq)bvlex5Th2d(3kfKxm`n!-6B1$&(JwFuloIh@jH$!09!*s)_4t6Mz%6dgbr zHkjFu#mplJym69xD(<@KGSY#VF0l7`AA5qymfebdP9i{A9TRKV?37!(3T&*`kf1QH z!wI~%CU_IBoT488)eC9zh0<16J?aF~Ju?M_-ZSwZh(hW^io^%vK<_3J`i~XK`s|WQ zOqyS^DzIMs>r-kU=pu9U(giMwJnxaTndBu`(Qxnris?&0rlEm^+fz!2`KDsAg(3;g z0Dvl7z6wo9`8aWUIUvky99gS4xnIT%`&0(U*ANFXjjm`~UQG{4Cm;k+&Pp#_Sz9-MED zXm_o2{m2O959?Gdc~(Opf5guetysJ{Ne%I`DjT%$(o-&sWlyYl9Boa*i0c&TYr{Db zUF|P~i0db+@mB z>rRXjncGC`JzBl;_SH zht(yHPhVS5;rRR)!8Z^VY?@id{(5JdK0**o&P1%Mrd}?J##{q)*(c1B@$dD8KZlGB zT|LO>&16&M{!tXZvCjF0o_42lZe4lWk4GfvQBmftj<}lSJvf{2?aJe5+%yS&)R^iS zBG>e+A0z@rhnpt|SI)-TK4sgw&mmWYC~D~Wk!IqC=#~HZ2+7HdmY4@uSZiR}YN#Xx zT$z$`FPWC6hq6y`C+l6)u6>cy7RZ$@lI$u)39CjG2r~qdx_xWE?PE6%HAGIpJ%3@e6;17U^O1P-gA&U5 z36s4Co>Iv2SnYVc)gU!z9AYr8YZjFVsJ+)qwMow*ovKgIk)HxYqoUEcQQ#f?RjYqSiA>ENMpAn<2D>)r1yB|LEWcb zAbSr6jV~{t6~`ED$k?k@byVp$VUS-lB3$M%K_K5cVtO< z6sw%l#>AKy${a85jF~g!POUZ*s^SJ6@q65%Cfxl|6s7`8q}7|nR-Gx3 zZc)~_)*DB!)&SO{QnL^AG1HPBw3->LHXoY=JO~|DKSDF1k}mXWRU}nAa1I@4Aa9ij zrNy&Dg zqcik4l5|k6Q9VvWEw3OuDtKc-f|H8lg&hb^<8|6BLAX9ZL14k38FQ;AEhD#-MV;Lf z3K+JFuiOS5I?rL2`+$vBxe1bS6Oz-o3ClQFG-jb_qFa13it!dYMYnog46XzEfpnJ% z!tgDH@2Wgf>y-;)(xJr$v8Z4`s`V?e0du51hNP6ErpS|zJW^;>`+6kUZxp$z%@Id3 z`>m3>!auv5Uf5&GARa)tQBjo!pakJF&RtBua;Yf1Kx5Sd%$yW|`~Yt3B{CF?ajou0 zKX+imlPtI@vPaiUAn%D3nIE$@-6L!25QPq8r_P?DaN`F;Ck9bH$|v6Fx<>3!R{Mox zd&gmW6Im}JF_Z=r_Nm!ZUJnacEixBSlDKWyfEmUK$rPpUz~9E*LE#xmdiQee%hUA2 z0^_@XIt=UDQq!F&cVjp-f?}S5?!>;y?RI#kILIqH?9RdMY-@$yAbMiPBX30r)$f5V z>;^StcACg&Qow=$_`xJcO$9xL772pFufwe|$%h4~ePupQLe@w7Zo(u3FNU-S_mn+D zGyr9vEa&jQ1G2rj9u<`gWjT6v$JJxH;lqJ z=W7xI1cd8<{_G5N|0b=Ft9dz^{kQhMnw`VE61x92HM-2deom^%7giu7XL;KcQ#_>U zX=;3Z2twm?U$Rb}tX0~4;&Uy&Z1$Yx(;AT(e=9P0LVEPZVRp8ULGDSmk3+!6=M$PR zA|DEjC+QxI3TdjiDf#H?t_fSTc0~4!r#NRc_DbZh6Tn>2`rO#u+pGW86-lt;`Q%ci^eB{5;gV;>?McN%icE7RKxi+>OhSgZ^Xog5B*z%PzBt?6t&( zA&jg1JY!uIL$!HbX3GswnWLx(*`n3Vv1I!@wvQ!DIH<(k_4*Au#dMD2d(v(O!aBk(lwrdMtPU0nu$R^rM#Vfn(}# zh_e3wgy?^xQ&n4bKp6RxQ^4d$*UejnP9-*yuQEyrH4G4CNK^VkN7IDViuAb_oxd0Q zZjFdy+CIorps9Ou+LvvIi>-5PIZQ!Iurt{7;l(c^eOfd%Wyn@NBjQw zn9zlD&+h6HZ7nJ;wQKw73&w?9wi6wCDgl(iT4$HDXKytF9Go&SzsFl=`sY{Ct5C=<0jTSWv1j`u9y zeRX=?_>S0{w84j{!jLI~-}n=mSeXb3eW-6FaQx3v@P88P zV&cAgOJQVj3lx!h7Ea91pPUB2tE1;42m37p_C;ffC2w~R=-)wv#$m)wF6rIb*19q# z1r7f}gAkEnfn$kb5gL=q7ID31mf1e18x|V}2_dea}$w{LlBV>gr`{Cgx!8`pq`{U%?Py z^KG%@mz8(yYQsT%#2x?$KL20g8_U(uLW{NR+G9@kf-;8(o zXS>Crx68bb-Rkkg?pYSoWi#EAv2|Xzh-B4PT?G%C*N)U*IZS< zJx>U>TdN(P{015=VqeH626)(;+scI&pGmlGcb%*PU@LS@QAeF*8mGU|BjXz9-qO74s6$8b8p%@(bq$;~shPJ$e;% z|Co#10C!BR7%`p@@+64(o@Vy@nul1rMa~vYTdnS=I(<=ORLD6Qu%9u(;@eThm?NsI zLpJlF(honX1njmCf`^CFFoxWsY)p}KY=v~}mAxHBx|9hkk&BwIv|(x-%TiKo7VH7T z$p9KIR9WM9z5T4FsY?s2QC#priX%lb|3Ikyt}W zNBh&12v6B}T6IFaL*oVjD8V8q{Ws%+bv&YHj)twFf%M1{OSV4s$p$Vbl@{}pUq{Gf|;MLe|%{{ShJ++Iq)}f(0 zho96FJdoUK)d4ns*58xLBr9gaaVg-WQX$VF%d6q_WrKQN;#XS7H|%`rv&qkSFX4Dktx1 zymarr;aj?%l5YSFXW~ie}LdmgTjqF4!!w{xg4eq9%p-X!R8VXcJL9Gy`txyyH3vS;Lqe9_snmzxC3oZCFPSkd@ zFf~#P>504XVC-_-aEB-l#1T9VF`LKnx)(B7B|lNk@&N;Ug@BsiuQaO=@;%EsQ z;qUfeWSX_B2OM@WcBFa<76X2nVB8Ua{Z^ma2` z+-R)AP>@_Vjb>x)n4px4y{y6+QcSX_1y}&KL}KqiUI%OV${VQow|<-0s>C^ z|50N6?=uoJv$a(*vo|$!{$F||)jIILYDXzwd0AtdlZQ}$A;NEAYLO|Kki}s^j}nC0 z#pU{SL&pvi0dnTU8L&)-OU*iSuM$Jhv^uJW7zqGknfi^GjqBwW-Ic4FPIsawJSf(;}ojZ82#dtw#A^Og+0q zSiL=O6hCc@OHs0nI_}LdL}stbtaw2t`Gc8#rkpB7X2pDyo?OvcgJ#V;gyL-+_Rhe7THhFvqv#gs=e-vyFavE;>m@jz93vE2%E z>11A1haBc);xAZW>1dr6XDTx*gWFx5To{yymFt2tuTZ!Kj7E|S*7!8gzN*-K&7fRG z7E%9ln4&Nir%5JX7Q%X}gws0h$XdH5!MGYvsMw9QYP{f)r->w-6K=hPRgaQNkJ0kN z*)j>)K9xz3tHLUUx>}5)2M_dol4L7J<~+V&AtuB5Ty77qjDgiP!oOn+J-?dPj?DBe z=#F9n_GL=fZ^N&-o8WG}WY37Zs#0jT0KFS>?xGGRYUmEK?%%Z|h0bRJ3C}f@0o=)lb&Z@Y z!4Wn`8(`pk$dRoVdnR8A&)n~lW=Pcv{52P z2=1;yD(&4}xYyM?De8c=R|t!*-Ur43ZB(d>2fSImAYgk+nY|boWo~Q81S@z@ z9J+ceY)SU_@`LI$Pf{kOYjY-Rf|l3w#nT%Dc7F&8X?t>$gK{Q_9KOa*~+;A$85qz+<|Lm0@dFf1Ih+f=uN+g_jqrh;lOVB1BS`G z5Bos7;sHLgGgPc&(`HTyx>HFBt5_<)X+#6D9a0{T6EN2RoOw@S@E3g?t=U?|`->NA z*V%?_C&ZyVFCT_Fq$s~QEln}{L@1iPM5e|;rds^~Y<-ki_tO^}#TQuy?^K35s>^cV zY82aZ6u2}0>DHBmW`?F)wt-~>c=Mrfc%_idkpQcEudri2avt9+zKDkyeBwa;5eYh? z23R-qTEsd-eEuOJI2!Bnq-Qa8;S~$?-KT2GVRj$=15w~EFTB%dp{n_JS&V0VXw_mx zhVzH(Q>B#JNpcNWSkZvIoaN-Hro}$RzOysJ!In~lS4VX6&?)}7jwX?hXE-(9|d6aVl0!8FGLz0mSN>2?4}R9kana9*lb?PJg^?%@XE6pf*X9>utgX z#)KuOMDSrbY%tu!u1m;~MQOd9zfHN^nX$z^fY8IKYa{yQP&p&`(=~g6w{NT50VROF zt;Dnc7McHt;wbXaaskZ=UeEkjjp9E< zqPo~@dC|>*o~@7AI1Zm@>HT%VLO@WrGD)s?0#t?eoa4J=@M9QkRl=w=9ZJ);DeWi( zX{A^=F$Y8%w5h4&NRl$H`LRsxsk7NFbAI)hVO5RH_TzGtGxp7B0o-ni0VXGC=1$7cAmzrmAF@@+0)UhA9k23wLWv{-C<~cq!!Y5OSJt6QJR`SJM%TtlRAl%RU zwB+fv7Z#sM12cb9s8$WvxJmrRR$DKaQ&=yVv+qb`eq@gXApBXa*@N=c9zeWYyrs}9 z+f&#qnODcvmtV1TW$=qw%6Q$Mpr~Cq^?t=mv7bGia3wR|FOPzbvF|4o9Ye1C_uTPN zJl|co$Kxwjly%n~R#~rGB7nQqpEtWMyy zp=w&S>E_!wVMspQY5)fwjeNGs=kz@_OFB6^!k?^NYXSe}K5(zlPC>nuio#7_m<^UK zdjN5>MYICL2}=Ywu-2|W2^HCjKb&nILXdr9auV#Al?0tqj5lvp_2-U;J)<&XoVRJ<1 zA_G%K_RZMvOqob+=wOYB9Uu9z-^2tP6^Rm4H;4uQtO^hwffTB&>W~{axYU0JA+mmk z@KM{3>K3JfX|`BZbgCg-j3gkY^-FR&`RewKe_tVgVTzmJ^v`-YbYU?T&#gQFWn6*> zt3MXj{D+(gP@IHn{HNVV!+{G3X(=g`Eol?ovC>Irw&QjiZegt6Ga+-{wq&u+J0ojh z6x(RujPEX@F{K=O_?)W=yEQK7avaV*BJT^}6_jL_NMccrO*{>rVe288Y6^)_b z8%m6voT-0EypqVNcBkN(u*n`TG15x0e?O+M7wCF9i+3iXda< zY0c=<7*MhXqJ5!g51L|zPMiwLnX6-D;PwNmgU5y_=A(A!0Zsvjmo3xyX8MjL)2T^( z*(uxBx_q|L`*J(lXkn_5&+qDU%;D0$nmS1KUZxUMCHfLcD99LT7S^RuLd|Y(q#fFx zZW4ZciN;)K4z21}crf}uGx46gx^_s|W1XpPF1XrE(sjFPOh=Bc zPa}+#`$?0j^P6>*jy`PNCTHd1Qx^>rz#`Cb=^EG*m&o^?W=jciZ2e4&^yqoa=l%T$ z;F*uaMG6`cl^sQa1ym{upg^j&nVvQ4ntJ6gO8`4Ei_N)HxyT}A(V@M)Z}Bw)i>&U( z%SKU$@=5FzHqJg$3yLs88hCU`^ z0{O>rX3~jMTf#qBE}R{9g8&M%tw>ma3(oWb!@C*i%wXe$55%C*I6TyPHGixqW*iH* z)*?RU-^#EyC|3J{D}MMQK6(iTxe}O^zTd2YRRx=H8Aw`c(C`-~%J*7Yd)&jt4cu_# zE4w3_*5*7QX_j;k93tCDh zxS-bvnqqYq4y4ebU%lM)W1KPnoX_saBATd7>2RPln zBUgSHU$)jTZ^y@bAd-CLlN{_4bWa_Sc`o)>H8W;i2}B1yT=)web*w$P5e)4IXdJnU5=1r(&s|K6~VjGv=)iNb$+8H5nGn9>QZgS92(l zcB9=L>(vmM(l{%OMqSd8PlFB62C5=0R%MZ)5L$)rcU6xpRMwcGI(vCE; zgNOeHqq3y@Cz|q1IMt8Gjwe*a^NcVxROX6^k|POZ&l^_$WBd=sxjsSvuNS^4)z;W7 zJon(YWVykhaTp@Y;!LU1P>Zyo(J4&0AkHjH7r9qr!GWi?Zy1ReCO*^yoY*u@serzAv($ub~MoPEdzfYV$=qp=XB*La;r5O(pAy8g=`AaeL%ce z2?iiTLc7?!h$=>IMkdFrs_we#xdSQoS!FZwoqaLICWbw9cHVaDTN|PoYz7Xqn3B>w zVhc#{_T3qlz*h$>=yAt?D+^W&MITL1eP}U84QTZhEGGAc=G^0N_eY^x3Pz;3t>s>V zE^4hZP{dvmqcv$=U{J(P`&ZqXPJCceI64tgW_G2{xMT`X@HaPf3~Cor)>$j%=)QbF z*@+|S!*S_{fpugPc(IL-g|96Jz8p%j*@^JE6$FF9%xc({5$Z{k=*b#y0#W!yHFt@D zPT3~h(i?Z+>w&FSRNF;#cP#p$GpD%D^N(Q>I%@zT7wcC(cQz_27Az=il{L4OU5+sP z%b!?#H+KXBlNDE0wB1nwKi{cBW^Uu6sg@?Hp9#N}W=p+th~U^l?RMP=57LN6C@$c2 z-6_xCAasynZK4NtU1KX8n$PyoluP6;_&U&i%0ujkD?|q8@#QcVlbsQjJI_p zr+2tRFN3jqfxjJG%hVJquJM-jcqCH4S9R~Gf8*fcaGV}yvduB+P8lyA=%0~o!oZ&y zI84REiZ?h6F-mL_M6Ow}|q zk2J{$F)1?11{BaSH5G2*0Bw z=;L!mzgb{Wux3)`{PW%JV$hbNvFCOJ7tS`qYBz@+9Kf-D3H9RH{xgTTo3XvoYZ4jB z0$8PwG@ta;akUNZx6~$YL{x7|MMi>Bpy{^ftd3U?rcOw|jy!8Vjj%d9C;CKvI3Wu5 z_pkvGefG_skv@-2GF$J^=v=nOy0~*pR66q9V)BiO4hxCyj2-HNb_T^?>z&3hDDmDx zbCc0?3%*R_lmMfsxg@flVf1_L0G3dX(OQCP-!hgKHH5x`eFCx8Gc)yC(mJGxmn#5y zU9-aDZ}9Y)>-sDB&9S1~ShguP(OWFv6%Urw?SszlIGhL2ic`&W*`DL#za%}eJx42d zWVZQnJoUaob`KVOB9pr@-7`$})8lcScDn);2*$ zO*cJj-CyPh`kDZ0udk`653Y@WhIU&$$pfQ{Wn%sa_E!636QPf;@*&Yts~MEO>)#*m z`ETRC{QrlsbBeAkTDNtoQn78@wrx8rwry7Iq+;8)ZQH2WwsCXLzPp{a_ib&T`!HYD z+iYvhIp*kJ|9f}Sz)7r#wvbk_kS|>@NMeK`ahxfd7!*C=cA|8q5Xf6Eo3U0o z7Ol-kmsdn-tAzZkItVI-LR+=F)rd?#OslOU{F(FHM!%T3FP9omu`9)zd9<5a0~%F> zr*s~$8sqN-Yx$?LLgqvuv*}s39E_wRG7o3(Pqi@>!&T(%U8$j9(N8>Z69L_mT8I{&GI9?d3IcdzwMn}24TjnIK zbyEEB2d+oBd$ z5uP(sx+NU*!BT?M!K&DS{bcQ5`RA*aSV=WEbH2kus$*W&=MN(Ccerz$`p_pKRqi>Jq+<^bAYN>&M5e z0G{^UNc^3CW`b#dXAG`g->ClnrE3iy(?TPp|>eA9BK~)i3>v@^Z|W zRr)fc;joYetJmMvPOdG2fI7%7J6Gk1l+N6r$!Y(w0a&IIvR~OzRD_zT;UFrmFsw{y zSSmSMiDR9jw0($Htvt9)B}ltr{EZY%Ytk)PA241XI2XrAEmXnyj1bfiuZapt}wo$|f45e@JP?SULR52GP96%wdv1*5(A7dORng zWrf*26+lRX?t!!_QBAB=FL|n}AA@E*DbPRnLLd~{cQ?d!StPSeghI>ML~_h|!1TxL z50POysdm!C*iS&jLyh_!d1{t+V<2>k{N3!Q#$PHKTOIBDheHS*6#gZIsdbg&5j+gW z>`zk0X>m}HzsLH=yrxoI(JsUR$PM{Kfnboh2Fkto9>~;0g?b?U1QnF({cZltiqP|4 z^E$z2aToHH9V{izCxRmEnhMMrVsulKQ3`|B#!po{*VN9#95WNvI!$owGGe;BR{|p@ zg};0-e+FlnNX}_lwq>zS`a<_x22Y6&HB>p`5Zwdi-~Yzw)I<#J%G`gM3Bq43Ag%0d zsQS7*Dj2<3%#;S3g&xt+K45^Iw|tuEi*H+C<7y6nOI6Qz zt~Ghsb=FvHcoa#@EUR-keP?}c%yInheNitr2}Ed+dqZ-?U)>Qr;>SIxrB4aB9-@-A z^Ez4bx-DKrxF$SL46jj0wt?>uWqo3q9OIH%B&Rsp#8fAmO8>4wlSzb#ynl0o&hN*G z;s1{l$UE4&n13tK|AcE2w)6bRK1z~8kWO&92_)J;V&c%?56FSY8VA1#SqMXgY?a;? zGq*j;ZrHVbG~wQXe2{l1f9;x3h4m!M*}iRZe%{=jashP&C4;!>{6>Rr@<$J{fuxb0 z$w^8^e?8r279~>IU7!d6=sZvbCIinB`}8{Y>n&S0h=^s}-Aj`quodiQ zSBxT-{z6hJ=Y+$Bs%wrUZN>}$*&TOONOMI(G8P@`AW#xw9!!cv)Mt!>hAlF6+mh$p z6}ts@Cv6>xgluCWn2sp-&JmXScvvcR{=O9FnQCUIDEm(<=qXLFfEc6Xlm`*rNw}-pnoq2+;uQTcksKZaCY0b1IFd@`YDIQ8xYbMEULyTXu(QGU;-3?)vk*_sb9rgTP5Yjyvtkb%ou9e8 z@I|{zcBS;K29rg$sr0!cjsjmT&~^LoD0NDDm;23z*(~f-)sHN$Wl**t^QHP;o5HV3 zo~!(4DlSvZ)p|F3Bjdy6G?YxZO$Q$`(is?;>YGl|ZiKUH7*7<)m`q7zj&l4(*T>o* z=9`8mm^q5_^@g`4yk)avOyvM4%3d|Q8Jy|I(%G>A_G+%j$`a%=;S>EQ1^z{GkrV~# zxd)`v4jW76t{cu~SxcHEBfR~Mhfd4q=?*fcGfu50=B|pphqrqJ4YcnxSvLbtLyQyW zW5&qX>R*@ndHj8)@_D{Npv~27b(T}@H}*^{{gI0NT-?l@_U|`0VYPlcU?>Y@j3*W4 z#eWUkGMOx|^Zc8vhV0*_BU76=ii=^C7&{$~lHM~NtBi-GywWOhnib9ePI46azj+72 zS{EdNd74u>jYtA)s{PBvpBO-Tg-IpKVFFawu%{+7=rbWc0<9%~Fb3P;&ErV(Z{BWa0H#wS&{CX)!K zg?6zX0lX3mhZ+sOiHE?lj5c`*)0lN*#nfc#YT|oGXW!`1IHUU++TWI&qD6BY{KA~n ziLo%18H|&zRq19W`%VG{J2;q*#8nI0X3YUmR*E0_mA4hpw{UXXrqt`KBLC6~kQ{|x zer%M4Gm6yu;q-He8Ng`SW}G`apgzS~s74fTc}Emqy+*ZyG1fAVJDb(1V0;zT5!4r6 zT&59VxRmj5)?76bwJvjyax#89^WJL+Ag+BZf?$xhOlIM4THq?{oHK1)RRnCf2Y9|Z z1+kZK7_ES)!^D_6MC;?$7OY)-+O^2_E!gpqZ?$bY=Iz*QXQWLUO3A|WrgNsn&F_?EfyZ`!kctl` zM+3F~q=n?9%nFb^H%~|oa@>nHsZ;Hm2|WL?>7Y#$jgvS))gJ~8UGc?3@uSM>%pl%aba0~^_`6%9#ukI7K@6(?}xf@@=Gj5EXE(RX3=*B zMx*qT1TLKOUDHP!RcE-cG!)S{TE}9T3t9eS_KoXZan1p&BaU1}6tB4LsAw zL&qol^1cf1{z41~7VxuVumCO|b8uELZFl2fY_UV4ztF%&5ce*%E<+jZI}pwu?_fys zz|=dD>^d~Y;n*PPRzvr|&}~6Xqw?NsQ|+a*E32G}r~CZdNE**O)|i-u=9RcLOgc{W zm6lj}$lHgz#;v@FwYP~}P`J&Q765Mm0q~&1_tLG2GJ@h*pCa6_2dO;j(6wHkr3MTm zHi7B*V|M)3TNFuC<3Q1V@8*zSvKV)ANhIsmi|ClT(^cGsk$p+GYSwkn-INK_e)o+0 zp!>_CXw`_oec7nVvJ59!tepts>OV=sWPz{IGN+Iw9={~Aj#f*92@nPxgnlH6`V2F? zbsp6*(djrTgT=$=xh){~67q8no~Zi;{${()HJc{Hr1IN_Yj_u%wvf^(Gh-Q8<=jp@ zB`zKxR{b7Z=bK&1UamDp`Zc%&JqH4)zC(?x$-juoJW^QSeBO^J=?;F}lWEo#9Ztu= zZO$L~OR%xx9B3%j@}cFoN+CT8Xxx{Ha)B?9)EB`(zea1C*TtCIQlIZe^8ON_{vhjr zM-zM9!oL5qOZfr>!juk6u876zHzLQRJs?sogg~M=fwS|PmsW~L^aZPwElWgnAb3S> zqbj&2ll3d=2%+_Q9+j8qUYq1F6Cr6iX2rMudq5#W{SG?|91zeU;s5suO)>QG(@i{GAxQDUZ4uV0LQ@Z`1v@z>y?{`^2f;D|Edap1ow*;8K-K}nhPaXZe} zQ~_Q)NXe4TYgO88m6q*hGK57I%hrucP3@MA?H9al?as^A7mtlD&Fdi-UtU|u?!@uv z)Gw3X8J<@hM_G=SUl}pgop%$CK&s+%A>^C)1i@dFhsR)R@AB!*+|RLaBCIdn&i95m z9|Hl|ukr@*zD1MMjW2lCn@fjiYwy*pU&U`erTJgWhiYr@Yayx6QLNn$+c)TxCNCZ5L8YKNzGxHQCfoptTgoqiU)}niv>d=m31w`Nh69pO%oAtX1ZsClR93jL{v^LrL0umD+I~r zN~QDToh=e?DmogKkmze#xsgk5MwM`mMwx1-3zBEvD`Z$5?5c!V2asJOO5+CI#n;bq_&9G&7|?? zqf`7w^{L>HCXt*i6e!W`9YRYoo?p&6qqb~ zNnNDLO)?vQ%t?2UOvnv$g3Q~Dw|4)mqC}_V7Li|}geyE*PV9*p-oOWq;#P&^!wS$h zu1k})8j4*$NMYCUr0-8OaV6gb<}dwWi0d@4rG*k>N-Gs{%UNI)0x-hMv0{VI{F>uu zQXd#H8zJTJl)i{#Kz!FOHKR{X)Vn+!qIpGvtHfYSlL`?v-TBo^aiYd9xlC3 zMsb^(j7kvB_@X*y(YHZFe9o6CLF`5VJq^PfJx)2wM-@&cFQJ*jk~F6qxb_3=IG?;d@IO;=3o#^(?SBz zmvCwg=VS_{%bRu0O{VOZwcS#i`IUgA+RvJ4ryj+dLy3*CRq77+GGSK2VDOlt5d5B2 zHVdIgi0sWDL7Fgw{@(d*ycTGoAr~L)A2!c;!w=hFZ4 z!Uhk1 zWMxDJG)^3Y-9I1n6I~4CAoaL3W*B&wB@p_4x5j46V%r4UM1W0n(RiEmJ=PD-^6rQA z<*+yC<>Dc8G*$~zGlsOS8dl49sABFUu+|^T0*!Q3&>e696sj&is!1u6B8yOyge7ce z;~l<|zn@{*Ton6d>_xB^71t0_BHfQ^Y%Unsbq2N{m~%y_d_)(ZxQS=bt6|H~t0e6( zCpp#{_ZKX7iWfINh1zuOASy^QG-IyW1aA*BaZnOq!5cYqKkHn%f%m0QHicw+EyRm| z!EA)Dqep}UN2uB+8!`ivEiCv(^CAYMg#jz9eQ9tHt7StwVX?=Uq8~HJ41vBf{6R91 zQ4q9chBt4xX*_Q$aj!_mWfr>oF2}s!jw=1L>Dw$OE!3u*yw1`jyTclDty1BA^~ZKw zsO$}_k%I{AzlK_`X47S-ybjbs8VK|`%ti=W!%t)Ugo1?wB}%Bzj30%Qg5n5-@(`5} zI&nFy#I?|0NKEd<*>NK%o6w(GKeHO;mrM8?s4i=@v%r3(6x2O%>4|!1BrS2Wx3Iv& zh&U-7gkmS6Y)(LHhN@|>SSjQ*C!b{KStK{^c_p~F8Q61aS4{&adJYM$af6)Yd6^SW zcZJ)4xT$v8JKMEEB3D$baanjiw5#^i5C7%Q7MaYKQ4IuhAC+=2TIq==8X#au@o*0y zo;SIc=i)~v^^FA3%{spKT$38IMu`tXueji&%AJPjbDy)b+a?{}7+l)8@X9)I zzt?K$u+*W~&gUm;hwwR?+NFI4%A|7qWc$cnR&nR;lqxGGgEt+Ow}6;NWC#nC-Za`s z3sLeDHyAJu=^T)|F1$iCB+74RUjD`GfsUw@``gR;^vE%b;s< z6I{{`c?l&1)g#r?4CRMEnh5&kTcK0I0EJ#|D%<>uB%VQNwTx}Nz7TiiW=BFFKeE$iDnzqNN?;aBnLQ_Od9?cHBG{VmuwoV_ac-KD7{e!MfQPiBx@a6ZY1k zB0V|2qWk;`(bt`6vo^^16;bkbuvg!~LZ^M^G&j^tSBOR}2_CkY@0cbZuFU3`L-09w zk8<~>t`k5|2H@oQJH5;PUBYXubxSB=$D})pjgn7FB&)Aru-*ht@3e|{!H#v3G^r?T zp1quX+><+K6qX_X85yAjm*~abYe2LYGP}o%VP-GH`$h3ip zm;lG-^3o3Na79zJpfwo1=ei>8=V*tgLm4h%E0o zbQ;mM!S@KuWAq5Bt4S|}N!C4Eeel#|^8qkH|TOG ze~Kf>_=cN84wvUobCz+QTHQXeIUqPz>BbIkf|z59soCn-oe60LXvcD0z#GjYU=7@L zEUUx;cUqi7l;~hR@I~7Z15Kv2;M4jP)$#6gjnNKD^k@NYY5v-plw6P-C*(Eu;K?Qw zHH_6ilcVg84x+i#j46!3KGeuBNht4CDDN3jJV287&Y<^gjVPKJD%EM|u0^C6lJ24n zny(GoEdRo*#)LLf-BLD_0yroeS*1!-or?RGl{-X1bj4Vpc2J(dDtcY(kTs9UnGR0FU!sWB4Mm{6 zbv~8taBR%$~)^q;mHc0j)c3(@l)a zJ2MykWXhrBFKTldQ-3V^?M`SZd)TH zL}5~I@wDAgLyJy_GELR&ADZ+Yb-A^wdiAp{>w2x+dvos+T+#_8L3cdL*4luY(=EgK zPRXm0-^WBH25;V7k8JY6Y%ia_J<0b%gna<@XuR1VzQgrbh^8IWm4Ixdmn{>YXOO!d zy3|&m!MpCm_Ai*NP1_g7E&c5;Sh~<{WBVNyiXPWO_^o8Z4w^wXF|T(jgl_3L4n<0| zQKMG%q7g-kc$EU1Kaf7jGRdl`G+eEQ-4ls_v=T%kgCf_4ua}_{nla{e52@@dd!Pfj z#ON5=!dN`Qh>}@eDaAkvx+1G%Z*vlF1|Y?kcaP>>$m^z5jDyOlGMTl6^VC{CoumJr zclU0w-LSznYf}CB0pfJkiU6&q4h`cO&_7e9^_kSry_X)VAYH`G>p$AYEgh)-teMsS z8H>q$$n)-@Gippk(tOClt<>$1+3&0x4ED|fymI!L5c~?XxdrChD=vGXk?|fFyqAQz zC4r`h=eJzvk*WPOlW=6;N&onetx7xpygsN)<$Lhn2#-BfVNT5-=S`mQL7s?JBg|PV z>90XifKOUsZuB>nP>$2)&<1o z`!@MAAn^`9qj^oYK94ngbpP%{c*w^N0m$w@Z|j$Xqr6jnPX3s(fK=VKngl9d|2aiP zvprDW-_zP?61(K7`}r0Rgf9C$1xGY@+XM_210^R>uETclu9F{vUX!Py@;faNzuf2e?hF zs=}+yCzjmhmf3wqi2akYBmo`0M+~|yu{ZIDpCH`%Vnl_QV01vAswOs(5i)-rQVN|$ zA28n-6bOSX$eLs6C%78mV!b@auoOJ!41hAOZfdyqy-YOXY7(mZcz$Vr^4a1z;)?ll zC+~P3C(Hg>Bgw0mhc+y8za2;$llJWR9z+`ha?S4WBVz!mEo1ILf=@#BtXCKFnFvrdxLvLefcjX{{uJxeFDDO#8?rRi!%eH1MAB=!1$CBC>nhA8CtTS&y#SDW zL%QL%jlEQot50s>K)YAL~fc&#&c zh;#Epw2dhsdb_B|jQ(pRMrH?Drd1VdMU8tIZG8XJSJ#RhVKlnHy0_32r}|2^D5Ni- zR)C8e5lT$7ZuEy*77i{_M^%*K*wQd!treC`neHszwG(lEg4!yM)JiAO+tb=fW^AWD zU{MxUc=sdLNxJ(kJ?p$nU9`sJb)9uJAU5`yozF^+%r;Wwg1I_N#dp$3w*+w$c+@Gu z!Lo?G*f8YW%9Gn#EDwwe={^a^8K=F;$AP_ShNzP}b*7{uMN+5KaO`$;0*gq2MYHh| z8>dDodfKc3lT7_Rt69N`nFBwCE!9EELC?rHHh4@54Wu~!l@p|lbI&Df4NFS+LSb%g zW7m`vOCr9Q*@g^VDzAa%6N%#wjIG?zPzTEo$0_f1P%sRfep%ta zY;sEwzsY0?1tgMKrOHBA8T=OLB|rfelkE2p9$gEniKa3G%e~4!4Ew))2dDY44rlG> z3v;*Q?nGDIvLzf0=4{uwtl-$e7(NFt9@5Od&&4#I1G1(l}>0#D5=>GYVo;Q zwpz$tY79)<%ps*x!{@E+qKs|D&5MLZPl_WmX-l{)fDYwP zOfsmcN(?Re=fujJj42P@ES4~{@W(|IxAdZH#Y#gD1&hwbkExFW<+6EVMwm_O8R4f( z;~_76x4%u&CNiE!5a-#mxE{O|VCCyJ@Tv1T<6ReCNIMW$f~I*-jhldBKown3QmI4- zmD@E2#n{IpYMF|clHlHGDv|~h@JhWKU?SEG#5qV&7R<#_GEiIfyGWUcH*V+Moq{AS zY+L*oF47&YAz>mh+o9c<>~n2mSr9kTU<4ehBhHoc{>DLlt%(QEv}fafCow7Tz(7iM)IwlBXj{a&eISmdZs`xI z6m8;@#;uQeqfur>vrzzbQ-MtK_`ZYG+9DHHW7bqEZ3rapjPe#MZBzP)+#;VCx30Pk z#+>=6$*RGKYJ~L%q)=5u0l?$ek{h4K9Mw2v7gk7O6j804@_b1fTPryeV~wo>0hA`1 zMx9I(l&bD?%itjkjndnuH0vaHR(LrlVwBFHxs@QE)-!HrAWD>X1N~mj=VCSc5%_*2 zRV*{WmJ!L(@H?;sNx@8$))jgpy*trac%FHN z#C@btcZ*I?eTIA`O?QF!u_HMh6$R?_wd{6=^ z^!H2USK)s^kA+NE=uz5QNm15VIirTwH&kwtUB2(uGxkltb$+;=_f?c z4FadzgQnz`c+T`U!wI|-HL80)V^K`#cQ^KuxTK2?W3qPDk!@b+5|pk~&FO0Z1p7FS{_l|#qK{{HzTR)2;W$^~5bqF2de4X3K& z!5cjiau%^}+YpRuZV{LTjRpFna_IIQiH?_(Td8+uQJMA&mnU=hFmKuYpxx06HGQsj z%<<9fx?&7u1G`BCw5>iC$&jw(yWf7I;W_$331te&HK$ z4Z+_X1V6lQo97IU+82IIOsbDO^h1wMrbGeID*&~~&AAXEHJII#`yb$(_FO`D3c-7@ zlI>6$f_u&A3vV}`kv*M(z20sRzM<6)M=0+II{mK?3AaF=;iNTu^^zFpcXz@fE@QQC#JKuE$>Ed#M`6x+7u z%yljtRQg@I>{qHJiCiQ)0`8%e@%nt~Xg|ieySo7G;cv1qxC2ZXsm=-^Q5~UNy_E9% z`{%T&Wrc|)Q=NUsN~=i+!DAck`6RHxv> zM>AMu>_H;_L@UZ`iWn6O(}VsYHLS`A72H82%AJ(T4l7{LogTy815f5MOjnQo5%!Z(%mVY!U0W`pB-WxdqL5g4HA* zw7p=q_B=ps8IG^$Rk)>*@qF-^u7yemzmHA65o_=2r#Ga&4_y~Ptiz{|ux~ro(s7ix zjSLFG5P@>?>*+Yhryr0j4r5zW$ZHbEOGiH}DX7DL!yNqp2%bQmBcc~{WS*#oW2Rmy zD=o>F+UJ}NB2u{K0D?tN%VriaUzNbxcs;hoV4Xhh`_H7+K&EA=1i_wj0ip2rx;!=Ijx;?CA>x0N3D+m4rhG@M#opy2z_0Ml~I^hN~!8(=gv@aq@89a6xBB=`pvRU%mgDFI;g( zp|oSl`3DFX$^m12Pcfy1mFsx3@_mrIm%$V3^>k|Gepde=Vr@f{L}j-L7ei@;3IGnI&MWW*xAIwnUQH zO(^HP`Sl8Vq~wu?^X!HvqP2*&Lba=obeZs!z! zDeS5Y8vjx+(V4~(t6ouqzMob!r@2_Y)d1!Rf4P-lyOTk^m1vAruk32Lz=@#bD?K3> z1LfZq2@kvW`(4=8V9(aCoO>=<-T~rseT3F*@LQ(d!+N2M-=DhUHjkxpjGvYzd&O=B z^xl2vLU_i6e}${^slQve^BiDVeDm0MWC^6j?)2xH`38$IaN!DZ_VAS@jW&Y#`b}}* zHV$(J0LPdw?XT|313M;b731Fe-bI8I`JCGoQ)2@2i#O`Z)Q!Bu6OPjSa_ zW_2PbNg>TXQ;7Dmxphkv*LFL z^nY~I2^(7(o9a86+nD~p;Q)!s>#|4+$lApXnL3~mgNjsW6ro8?^t(ZT+@XX&{FwMU z{IkjCo|>Q`u;!+}b#H*b&$}egdeqFRw5? z=ySXy=r?^a3J~FV)-6|LPr!V*yRpxvbTK56Z`&wufq@dBatezN8EL-5Gs%CIT^D!? z+sYHABvs4PFsja`-CBF7I^qoMrp=5erI{KAgViuHF!Fmaeri-sBv({oS9i!ea=QC# z5LKU+e@_e^wauH`n5hKURwz(Vh*XZCd{5|(Gv5v^HBHG>P1t89E60atmtoP`J9f#| zzn}^ET0Q#~c#^*~a0!t_G18?&pR7Rq7C}g>(+;nSGvsIteUqMs+_`dkN9Qi9-Mn8GQI#k zNsdIgZi3z_eJ(k;G7H(n8)*csHjTuN*{-h30ETPXo|E=YqTT7)qWxD4*)QAIP;J}f?< zH}PO#0nNWn^Jg3r>oWbBV}BxC?mrTWv+Zi*?XH_2OY>-o#jH+Wgm z$|&&=yV#vDHy?cT8{)W50@D#^@Mf&HycxM)yUs^Hh}WG7i+T-#a5aZZr+)o)i?fi+ zMVlY6`rdw+v$jhoZ>*!lGV^O}a@P+#1rhHN(`sJr(z6uxABZ4}tzrHg5Wb5*@4{aE z5XA1&7FV`Jd=j^X+ZmwO>UK=4`IW|%^$a~+yTQBOF04MznqQ@<91y#HnF-IedAxx+ z2p+9)njsc?jkEa#4ng(#hAGbX--NJw zkjL8MZvkxo`}&UtXJKPU!+#Vv3+Y=~8R#2Y{zCzCj$(l8TpjYo8EJ82TsXDA_$)$y_fa$lqj#;zig|C zrpKbK9M>pf9Hks|JE*KVP>`b2xcy-)(?R{5$}}l6rFfMvx;L9PBV&CKs6|c#5zxvV z7RAWrDbcb7poNWJBaHk)^+6H*O4qc8qVN*O|5YL;BM3a1Hsj&@`x@k5Uo{a*#7es6N}H-NEFac{SceZ2l+L^}%bxB=#f|X}$o2Pq zwuBim#-xwzAzoc7Oao1}jB45EO(iE9|2SF_GNqD^QQnv^HmY@w6lnKZR9IbhDRJTg z1Pd1rVfzq23gj+Q=>MQh9!P&WSMTUnQu9p+4P_N;OZ2ahs_ zmK_Y7BoUs{x^)#Pft%otSO}Xs(gZYkCpZc&*ufL_;PicVi;-Bhq$8#d?e-sQi8KY$ z4xS4#sVlQ+C9)dixRr->(I$;qVi?5ePKJb_C<|D<*!U=Ae_)<^Z5|v4+Q(RT-oY%a zzCvCl5y25;TTXyArPlUGYF9Yi*OVM?aBg>KB@PdRUM8mX4faSLL3N}DX)XH6kRhRh z6hePte2Ll6k=W)b#DT$@o8&4Dxv7Bghda>TFf9PQhCnVe#U=jlZOFXH*;n$JN*fP;FFci{5;W39vIt z)D3#L%$|viF|pP@N!N<7YA7v|yP_EyTkgH?gG9nTJR0dWclV@8T1)KH&u9UkX1n^V zgcmI>5N@vSuzIvI$mT!Bhj{?kzK`qEZs$7w`nPI#Q=38?o$pOG5Bh&eMiSL`{O_Jz z6^Z}*Y^c7uA`PQ_4kb0#b?8xJAq7Z*2Z|;^S(vAz{v_7JM~#K4wTl0P*p@W(7`Iqe zuc@Cy6Lx2Y^y-sLDgzLV=B#pUWqMw*Jxy)Q z`hLFMbOU*TH1Dkh%rkIf4x>9TL=Mx>MoVNcT&rV);wJA{LCXzXSE5gaok}opY(>-U ztlO)nge#3jD8oxfFw?9=ir4$E8rTaI$vO83C=^vm^I#krjm{IkfJ)l`LMfn@qI1#1 zO*Zo2h^Bg$#oiixTC+!)27jy&hqC7mIfCiX+ZGAJy~=y^ZkM0ARG|7=h`dVt>+jDA zDCXRG@eo;b>|7U*3B&tul^ zVyB+V!a-jOk8umBnagC^?$Mz2ogCG|asV%3)Y)+$t=UC$M~Mz$auL^eS#dO7P<&yY zNxN=dj_v0DEn*$>7t5&^;#(&BhfM%Oet-!2#8x@3&A#+Jp1LH8!y3`4qg6Jr;1z^$ z58s*R-$JHi?vPel)X$iY%iR9HbQqbroUWBrgc z5Ebr4xp2ve5HiA>$*%tE|JYbv)7h&RT02zcu{P+avpRi-)U=TANb}coaB5)LzPnHR z=LHSR;YQDs%sUVr#eJ)beVLYpW-^Rl7c%rZQ$4J&pI@?!^mba`&}&)BGl35=g6{@= zZ4-0Yns^(%>{f-aHh8aeMn4OZm|b^R_I5F-kIC*4yU}hAbaxM(%(=+gK(*29ALwq> z^KpM1l>DvjW>6o~-L^lNi2G091f!hs1Nbr34aQe_MJs(XKE5d{`_Aj~Mvn9|5{p!4 zSO(ZO#SO_e^%?5ZV%wJVGrAe3!*Ex-!*tslsd?Zp7~?ze8#HyAdS6{%)z_XX`FVvg z{gL|o2}QZl(Y%ry0k%t|C|-#*nwx)pb=%%##aW!$$ZEJn-hZ@P7` zqjv(r5H2s~BN$>BF_V6}ow#&v`=wJBauf531<*;hO&V_1=G+l^Tm0Fm)HWwy<8axO zT&18Qvtp~a_af;0`KPr_nLItQo?9aq$udi_oW2;6?^#u`FrOiszs9EB2_hBa&OB;$ zYe7-hMXTRn6=_qLsB*4Q2ef4?>A4<_Tn#B{CXOp}yNq4nCu_a%WSZJnW{IK<-P!CS zX|WyqYQa*JKBMV0EVFIgp`;R*b*qQBVL1%t>x0wsnLBpn&xmwMR;Wh~Xv8S;E!5J$ z>f)EAQ^CR+XOPm1-7wJvG$U4OP_7$I#A<0uVuGNZiR3Dv3dF6C0uE-eE`NJSy2c6(6C+xOjQcZN zxFxR)_v46??Hy9_lO-HDgg#oi9KuF`l@4y9m&KrQae~4CrqPYSi1^eKYQ!0fMzg<_ zc}?nrX-%T`LP7Ec&ZVf-7J&AZK^vFmN}kV}adSD#?5B2DQmimVS=p{P>#N6(bvCij zw}p8i*q0Uz!V5ia*>zZW+t+9P=Nu(z8a?Zi+#<9VWfHgtcVM>m-6!|rb_FUjBl9WR+K z-Q*o}jI5h&4ZNuyM_jM|fFm9^fdDQH36a-%Ov!atG1{=edJHC18>abG5=_YT$u2kI zco~e0>O@b`A#w8=z@9zPB4R|rJSfF-WWJS!RKaUsr%5%!RN9U>Yy7dqJ(*zv%u#B} zdZbxIqb2Ds*}+pXvyzR%SkBDztGHER?B%Sy4MeEOuJ_KP^jPH6OtBViKE9ho%?83~W?It>Qd0p@4w3eG0d){;=+e5xp&AHm5qhRhQs zS$aF+6&OgY24(_n03o|MDkrekLmXiuZAv3%?Br~7eq|0drk5>AA>`#GVb-i%0&h{1 zJc9W$%V<=HsYu4n#3^CLf<;Yc_DHt`0vX!Mn}%3K(#o67z+hac2tPXysIYzvLwqFO z;(&be)KILOiMS}1VXI|yf`yS>1A`r51u8;?Fx*y;NB)@DhW;G+Ra%Qbtk%RQ3DCKz zZ&_^?;02LJ)N@4kDVusGtc_%?Iq?lqzlM}q>9}k>!xMet)-Of+b_>2kmt@Z7NZW#>)UPfAI`= zCya;khky!?Qq~v_ORDr&RP39*l?VlQK5=wstwh~C1yuA^XRyu*AHN_>#2AKmyerhQ2bVW*qt3}gjNTan|WwL#~ z+ArB4pi0Zxi0c_pC^C0F3bQU6RxpZ`mW37G8s*N_BAU)`6v?E1syiyV)<@g!{)vui z`AyCmWNZj^d?J|@g>!e<(RF=?gQc3mNIhvp#Fl)oP< zkhH1x4!8FchYr#=+fD=iN|r47_&JGW_7H;+qE^$R2quF%T@X2$#W3-ht#{|aAC_t0Grc0X7}t3;9Yk3%J>mXD}OJ> zO-X3)3orU!pLnr&Ppe|_hU`7HHRCSiAl`-JIRaV@oEC*BwT3$}+$zxt{`b}#JZEqf z@8X3PXmnTSu{w=WYZP&OS??kqO=i*YK5kMp%jqgU)7hkah2}*Gw((y8T}*INDf>$y z_2Cxn&MAe(y@D=Xydm=q=eTGUI2307y1X;Ye3_dSgrP}MSc;0mup-9XFk@K4Ll3&6 z$wQ_z;nPye2X5uEhjxST^ZS@HJ142hz#C&awVNubN8QKiq4e8d#$fHs6un<$JO%bV z6hv_hqDB*O!R#u@G!k<^1xk)~qml7|&%Mk6^Uh8r%k|}e;%)p*I-DzaRF$ru%Nn*Y zv((8;=hcgqm4Zr1ss5jj-L$> zd8RjQT;gfi#pa*n^=Ea6UA1tam9J;X;Bbo{98a1lb^0L-o`?qBUrV6O1znu>e@J_$ z@XW$xTR0ut>Dac7j&0ldVw)X)v2ELCCmq|iI<`7a{`_aJz0Xtf!_%Q@?< zw?@^dF_Jp}u#(j4N@>c5BTyYo|Dwq%C)3cr_Z+3%;j1EbFI5$miJDdyru_b3G^Z30-MSXrrt@yje*qos-dt3Aez6W=3OFogkM@=zef`| z!BfTH1`-G@8{13N1i}A6ukYxDe@Uh&lk$SB6$hYoi5UaRd&*oZZw)$ON8=a zEvcN9d5S=mz(!3AVC(G&zUhJ}HTHLGNe0oEc3>c-%OxX9-6wHdBJhEws3BWa8`-n6 z>1Wr~i_~$%zdU>w+6dchgNa2MGP;Z)Whl~Fj!)$3lVgxk19+tQq8vb{f>`tRMN-;I zpzkUvOG7Ru#F{1tW#~y9`DI;h$W=4$O$=u0{VCi~y(YU#n$_D4N|WQ9)H3O;oTX-{ z$1CtRvN?)Rr@eU#sDW(dD(OXY;Phx75+;~{Yg<%WSak)V#K^06fbJGIh|_Aw6WBrc zj%bo!*ee0rQz(RV{B4?uV;R!L(OSv2&f-S}ZY0=?-ZeyIsM7on9FLhW;me}9hKQ8! zZ$iVv1?|(>*y!Ru2|iwa%`rowaOqURa386??V9;=Sqef`|Mx!u`f_gNE$i_yJr!{HO;AP*-K~yLB>&RZbj1J17Zz(nRiO_9PT*>b>gW5A^ zC%`{r^cpCuYYWLp>mQY@< z)*iPm#1VAt4#Z&f<@Kx?ouAR8nDWR%>GD~t>T~K70bj~eC~{C*ErNjFxxP;`6yDSo_Ui%nam(zTZV{c&%(CUwGF)} z{$7bTgHa!9#SKQ1>J1t=d|{~zp)5x~iyu=Pp(k@$_z}MKAT{)XD!drQYbS-8sR!AL zfSz)J>|qtRlp_PJb?(j#-#(V|)uBZ_+_lgKM@HJ}bRZor`CxYHp8AE(&QnxD`*%WB z)wf@LqPoDo&wuGkOB@`Y_rZL*D`10w2>iSLtgMlpxvP=6nUK4Y)0eM;t;7F~q*<-; zse!(X@yVy@=9c;mMaw~q7Dvf&cF|BWVkrsPMp8&p5Y1MF^&HXEaW%iQk;>9!Eu$!0 zuIFd;>;Ofyb|M>@T3lL%C93T_$GhK)^=E(|eQZ+u7w z*SnEVsMEgbggt%z8lF!$NCuDj(A$dFa@~I8p|E_t7Q;_BQiL)4;M4qSQKgOvq4szC ztTwlFNZY%++@r(g=@d;a?hU z;;aYR;+l~cv#3gbEtGnPzOzMw;~ViVRyVy#9A&Kp3#eXGbsWp|G)S^ewp=CF;RN*g z2#IPWUOfb(b$={L4hR<}mo$Z!NlY#r8|FxTUx-z9fE`oBwyM17(gZ~|K-moV&8b?f zzA%-HmPMIJ#i+JWFSEJu(nu|sDlLa*e{-^IUt?y4zap*=kyU{#a5H}KHpO9U-(yB# zC3!7?UQrf2eM#8SAv}dr6nch02yijY6kEETi)h3lcGl!Pdx85N@AVvoiFLQQ{oC|e zx0!4~l`R7%)^6WOgXA9y9}}(GxO~gz`jfRso4`d=W(gq`dZZ77_UT;-$OgJZsQsp4 zQf1sVNwbFShf~sf3!H(T0*0fKn`v!hD;Szp<($@_?a?#u+i(X*-a)g|E~DDadb)VL z$jmk3Axfb+Vc(%|{0z~<;$>}OP@5D9B`NgNt7n(z$GUWA$EGr6Q?)#6NK}mHUA42b7)^9te1RxukujRp zdFFsKsiL05JH2`3l33-sd{LebJReqJPyXyJO$e|{kBRv(crvt`HG`m5e!rD z@}0>3^f@IC9T-~k7AG2?&g|`{oQLUU>mpPmU-KlRCHk3r&U#D?&OEI_{L~;A?k2T?Fc`cJjS&Q zZ1t%@EUUgj|4_f-!2JN%P=l{C!bRfedrLCVolb&uB*gcagEruRx!RRr*H`wPSi}Ca^#GtUy*}B)C_HY@~ z3U=5oATJNLa<+%^e*CK(K2Q*arwiUd4#N6U@k8&*7LuI9X4<>lInAUCLelBf36CP8 z8p!Y?;5W^>DexQ+*2Ood2m*LfrT4Z9U9>OWU}bXclV3$#T6SGHT5K6BiT92&U7!gX z;*)me3=ux`niGz*s0KX#201Ael+YvSz9Z9=y3W>~bLv%|$8QyOQ3^x<%zzN85&<{4 zw{S^IN-&#TUOE^S+C?_=w%>6Xj4EQlmE|iSCqZPE_JjJA53^<-Uy&J_r@mR9{O*0J z7QlUw_9uIq%jaXVEPq18^<<)=Ac?G8P1y)un}C-ESJwR#S?!3UDxWYTQ&0z%0lh9| zcKQ%h9oEyfp;qUhIl)HKbo52s%c_7@iX;Muf>=KVz&U$dNGo}#d))upn?M~s6KLyF zoGY_p2X;;-)AGP9DB=JLVVR`-QjEAELPZ#a`AV)_Y-US(gFkPEO6VY|r@(PO?TixQ zO}X1~PSkPm<^V|<+aEr#q5ng4>Aaodi6sb>PRH?9TaZmz$l zrfH_8(XM$%sSp2@L16XxCp7g-@4?{}{^1Kp#T!=65(J^d2PH>OPKFP3DXVHwF+*7q zbKm4fI~b2S56KEY9c^!8^S&{i8g%E%|G9wZ8-mY@#$|>vm~dWD$I*)${00zj(BML; zsY|>N55e!jILl^}7>3BaRL`u5)sxGYRrF`&?n&%jJ#r{%6t@d5HdbeTW1#HQb9SW4 zo!ouoMuvULG9^am6IKua<;Up?ET|cRq3aBc&~tgmQAxmcpvg9_3*-|ob_{F{|!lPxN}8j^c)kk!@)$7N)nn-9u{LdoScg` zWskfb{zw!=V?er#Tz#H#uGv_2A)?L_HQbH`TD(hQCjNNS)5+QN9y;y?V8b8^T zD)ann$R(W^6)KX7$cnq=|xsKd9o6+z7c<0}Z0@T??r1Gem^ea;glZU>Xj7mP$?)IskbZ z(x5s8fIf$;vtK-cBt2=6m!DFHpEf|d!q2kA&)8DR&&khDNZv}SLZHGa59~Mai0rWV z?3L2&8^kIWHWqdomY{!pNPIwg0K|Z?Aw+^Kyv@IupAf;jV)bqnweG zwX1`wk@^3we*e+pR<~BcHADB~h%<$OE8d-(Q*LiUms|rbSra2T)ngPVfht$3bxNhw z**1iCX11tSw|Z5(568arVvFIMFJR}Z@a}UJ7VJyBe|rJDXDmB9XD~twWF2A3dUTt* z%W~dw-kN0m`SXt6KgfgApMg(3`52B4RKLI(gWcWGYfJ zawKeKg-s_KkKnO?XZBAvUnE>q-0eOIss7#|U*tGlj^Pa%As_i(L|Ca9AL*VJ%JlP% z4~VzJVl3vHhmv41g*p1S-g@U-2=0WGW>wR%1vUCb1#_uEN$4_Zn#PI}G70u?`m1cN zB7)h~xtxnGrn2m^b2S;tDj7D1u7Q;qajt#r7<&F}6_ybKSt$r2#N#)p#7ii0)#0v90_X~hI7;jhtD{(M%DyG7$ZBv_PP}XK@)V$$yHr^gYKc;S;p~gI))as9^Qyha(^pV_@xy)mRAn?}eOR~q~sSn(SW*ihe`9lK2BdX2+ z&=uxnFWrtSb6NJ=!=DrA)R-}k7K-OwW!cux-pickX102O^Sl{JyC(#^OYC1821si`v@a!WzyK#J?4A_uVw+Y?Mcf4}uev*qpW7 zMOVJ9WsRA$Gzci9wO1LH-Q2(BC0b`zlv}Ka&|`}+u-DKNR9aa@qvl#g?deorG5liV zu%@|;f8LPJ&7%4>c@3y_ZdeGI6mIwoD7Vp9ppsDg>*<}o#Q!@B6>*mwX7f1S;l~iw zxdmTKMpm~48A0UGLt1d^O@#mEEcj-2!EgZuW#L6Z2HR1L3;yNBc>(>Fe8TCkygi{bzn%#Ccbr=1P5;Sc%Ao1Hm(-hU+{?5a!qPFr;D9X@J>j1^;`Co_70=_aSFZ)zpCo?rQrDep zowMV`EX)?eUb7=6vlBI4`;(WDcvB_w1HTDdbFiD{V`CX!-c?|b++im9bdi>@+{9^k zXF}&Q2u1NHk#^M+T4$%E)++PrdCHwj$5{7&xP<(%2lhY6w7iQKZ%%5jaX=0juKPfkLd)+HWDPPGNm2$WrC~J&#wsyo7r6%m zl8dzL57r_98A!;Gr4$B|as)v|GSQ+v7|9vXt~l88(@q5<&gMal;ZPQSqcpINuMK7~vEJtnZ>ANLOJIqx5iwEn;)Thkp?d z|I&tB^#l__>K5^(UdtLUUkg-eZj0?RqdcB;yN1Lo#lgO!e4_nMbaM}h1MZ^_YTcG) z<6;QWk?jaIfp26|uAng{N_7pUKh##f@T9G^AKoyOqrCq(hLcNY(iLo5Jam=HohM> zht6QaG8WV~-T9H$K55Y_`?3zqu|uee<*W-I=c zSqP6|OAhlTn+gsK0>bg{ZfONq7aL1EGf7Kx3!AUUMbXIe%OCR}*LAY`rV5${`sZd` z9Wfmd^h$Hyjs(OUPIHTTK?|y=Nx5Rard1_FCb^cL+djZVvDDtTZ2se$>k!nIj}wrG zLw-HouWKd!13TNz=j58w<)t$dD?qS0eYE{3$9w83r`9`R`}2915(LVT7kI&i5(IS5 zl-x?(7{wC*!x1uzC2v%PUFui@b0I0?q@M6tJk}P7WNgvPUCvHCS`>(MaO3I8M~+fb z{6q@Ds-zp1k4s3KrskkTWZc$r24jQWQ?WgR<~6ENR76HS<1yhx_Zj?qDc~VAh!u1< zDU%suZHRuDPeV72^_QjZR7sJ^2D^*5_#<6=Eo{Hv6b&>Uj{7eg(;+I{{Pq+<@5Tj+4OupQoS5$etCn-L-+)9Qfn>sj8$5PFYEj2H0kj1&~uONTX&tMdldAXt9*!$W^o%fR-N* zB4S8M>5Iii@UK+vBm~mZ92!!Mlrb^a5>=8w$qcIDsXNM{>LfsLfqEOzSkmbJQPT}A zEdW{NdI(Y6m02Ju^92KTWinsEqT5=L&9&G9TwjY)=^2<9*&UYHJ=lGLms~a5oaTSI z#nw}H>0$Andhly@N(37is+64d8Q1*e*6;sTVXA%8ER$1MXxdNHA6tThNJN;?UuJ@} zgE=qj^qr&EWLe@TO_A?(FjE@Rtu6A#4(NVa(lqHKI9aRn1kb?a;ySl%ZID6e8d%qb z`_+qUqeqKku{Ytd^sreOI&|tzrOD9yhx1T2ovp=nXkNxCk9i@0?T6D$^8r7F^Vo8< z^?Z)qb(N9en2skzan29sAJa$3Vb76#>qm(FxXJe14d>@+31#c zaKLsgKnm5-E50o3jSL34ij-@^8dIy$ZWD`4?4w)&$p0AJxBw_QDdxk4QBl?>9wCQn~-Q9%L!|K z(>Th-8%BVWoL$S`|nU@^&MNzI+zL!E1ja&8ljhKF)ZapoRg z^~A_^X4pQ^>>kE`^$)s-k$wV;6zvHwZ42pf-i1hGc>c8F~M+-^Dz+dFByx z&!c1X!wi<$UA-O3CQ{V!Cb%JDP~{R4{CkyQwUqi3(y5~24MtaZzYtvY4!sk?w?_`8 zzHjcqY4QHN5xaRN3C;T1B`rPNImpuQLU7ViD%Ys= zpi<$~A~LmCGt3D}a?2e5T7*zi%DAgRsZ>m;62~)vsc7O`O$Vob`o8aZH!}JZ%v~t2M1rWXqB6tuD>!L5eug}d^{S#nD=0`LI*>B zkIV>05S_D^S{BrC>*}&CBxnC#60T=c@cu6&h_T(BWSlR0_~RD{6a07A*Z+KBOD{9i z{|&;({^$LF!Le+$>Hptl_haj_;fIx2Fa)^LHf2u(616U>*#3lFll<=7ufj zCPTP>SBA%Z9u&J(ls=yYiA+JbgzQ^k6sxU@9JTnbi3xAkZJ)dD#|*#En`c^o<_T#o ze`XjtECnUD-b1oX6&rcyJy}q5ax&(r;v+7e=~*%f6`L|co`6VDW)XU8&`D?9(~=C@ z@*yv~-WC@V-vp<>zod!WOB>!)v#-;o9Y}{;ISWYk)MDIS*4W|reh6gK-Dw2XUjLDr{NcUd z0WctzqWjf{4>6bC%Or=U%6TO@HCsS>?Z@ae8mMS+YXOJ@x2u8-(`Mamps=0SgAuK$ z1jX+h16X;LA7^Q4Gg+$(byhU?>3Ns2^?6{2&h#H9L>hn63B4?$x#88}(rf1sb`5f`YoAuWKnC9W`SMOKNi$=}74z{MHaDjq|fR1+tK zKegiViHLlBo)a)w+utusokB0(+&{icbNM02g4g9fy2HiS$gxgwU^>o zZ$et$IWz(~v0mFURsIv#{f|6c-iQT-e`e)(xTit$er2|wUzzRSmW}^&zW({#{o}ML z^DBS~p=VJNLP19a&aGHFvemRGYZ}T<#aV!2YmbBj3I~W$}NIBSg`D>vTHC!=7*;M)|ojo9Z%D4r^`o{xJ z?h9?o!SoVeBzyPZ3&nhjqC+P^{%BRHN;=&UKR%A|&Y{+Kl5A&qql3PPPL#*ux>@D* zEss~apR!!?q0yn!fNlapY_!+~IwTH?1t5hCsAr|I6xS+|S2w(L+X@H#_N)2kV=Nl> zwXi&A#hZY~!>0rl8Z@si#0Oh3Nv{xuVO2rOKEo+DM_uZ^Kn7oXP*4|P!Gz}iomdTO zg~31n4y3UvG_O!GByk|Ft;@)y7SA?hf%F|C;6G zMz&HAA%-MB6jGQa5>)8J#~HlDfA)@NwS&hSQdk@V1h04 zp0w+0B3$LXJilQ=^-O~fzZerWD9^!#JSyXd9DiUe0l~MnAI|o&qRH~W>fgH>V-o*_ zqM#y_^4FAofwPQsO3>s3llz`$4R!Ps__WQ%mXZ!y{gfIl>cOh|W;xBlxDDIBsCn8iM})e_iK#8Jz$m{!BQm~PO7rJ_n`hc>Rv3ae83Sv zKyL6rKt%r2sQX9EX~KBus$qO6u%vUQcePlq70Jyf&3)%dCzHjLv|K~CSUXK}ske;$ zw$LrFzYdj{&crIE?I<*epsO^i4nb!DK@B}8WuoVhPZSoIM^Z)=Mn!em>Hq0z&yvn2 zC1?3M>3g*0eYrZ_esuVe+Wp230%vB8jC=j8Ts1r?v=PXN)y57@h?NO-9!7j@iNNkc3GXeb|(hVuTAKrk; zQ@C&}?KCC&OS$k56~rGJpimD3i9Bz8zZoB1Rk3r1YF#`^;OB3wi*Kq}KID*l2A#cb zJ@Iqk_uQX;!9E2hyagftT-a48eq!~j2pWH2#>IOs8H-l$#WJedP|0g&em>%v z)#QannXXB3J(%qx&QyGXTDiQ2FZIYBo*mz8tNRBarO_}S0|!7@*E74S^V-86)GB=y z%|c&Kb}@F-US87;Jh+UPR2T}Ea9WUF&(4OSolk6lm^EohjZKR!7Y=x$eahu2?SxqD z$FPVkPPlmzr!_*$=gF2eQ@>m_9lp?~MQKb9Om1KqP0FkAznS4dYL4n))^7*@IFRof ztwO#B@=2>3P&fr79?Slv$8G&NB)%c(*#TXY#krO(LaCh?9`%d2vC58CZ(aIohSOHQ zPk(#9c~joDrDeEXc{U|V>!w4b>>Pr=27>UbU`8s@qz<>C|K-&{3xN5!tp?xv)yz)TE)abUo2= zap#K(*EK)Y#A;!T9kFXgorY6!hc!$;q~%R9=%5mw=2jX_%aPU~PjVQ4kOf2%Th#HZ zq+KlpBvOefAYDMQ$KcV*n?O&&X4kE5Xj08SU9en}SRUPg55pWWmrah>c5dDKDCFZG z8o8fqip0tY2<7o6pS$v?6%5^AIhr75OGI{>OneOP?_@;I2Q~^VQ&s1zMzSP*EEuVY z?vpmSu@3tL)6YjR(|P}OK?2MqXlV9>CtLCss=5ZKMQrPPvzqv53!SVCco>ch+Aik` ztH|NoChjK36x;CDCs?^wnE$Z7AZJaIGhq|2dg?)_`3Km(|CL~pm_dpLzpo(~R5mHpb+|5`n2 zK-}La>p+M7d{1!P77Ma+oY--HflBP^2pdvjm-RGt3>bfOdY?X!@r#v)><(|C< zE~gu{oUTk!LXBoxK%M9iM0`*pn*ys+GNP(NQ!LHojyG#L!lqKP&!SRc2Bc=^nGlVo zZa!uOBD@@UO-Li3SCOxCF6ip@7Eo9CS zMFX>p_HgdgpO{|Y!_yiBzh^Xr(KcwN=akQA&6$p&HopnzWzw0$Q6NrptE5Ob5|7Jj zG0>M(#nGrtDLqdo-^q3n*fW_HQ&%^PB`r1##c8D9T7_pcsEhIDN;vS_F%`=#VK;0g zA&fbaa*tV?CK6v*fnM5hm_>qXoe!}Yy{_O(j7vcXPqla+A=Pm7+zQvEu7y=JkB}A8$st}3m2}e zZl;%sD?)}xeUC6vI)O5elWbnx#NTG^pgf8i%A1L=LI2ZCfqf=*)_km0n7wY=u_Kzv zwB*sD?*J&fOlETk(1ns*nh$;Tu@y>7#ccA_srHx-W3cc4EAu7Ga4=jGFGg{q7t?HE-7-K(xXW|ZFjqIX^ZJYFoK7$(5NLY* zIp)VwuoUg%irJV{*AE{Zb;RSQforXww&(ag0!<|G{uGFn$=?k46=kwD$KC_OKFCqmk} zuk>PxT1)rFD$Ms-A!A)S@jXD#>R2;1`U47vT{5ml7vDVux4%#a3YWy)HM@9-{?Z9D zdQ4lDdBG6Lb+>p*ahKY?GVE8seDS$_t(6+a)^^Cd&)|rfHYdO4h0mt?xpGDvdh1$w zRKI!Ra%GKb>l7D7?DFB`eLVXMq5_6p(^(nwC{zPLqxg|yuxvLg}C z@f;k{#OvO3zPrij{l%kq`C`?XAjx?ETcVyHY^lg?jChB!h~^cAGk)vzKfK2|^b@1A zn<{Ob!x0A577~(&?oe8|1YZUA5C(`)9r#^SQ8@KNG*YQtLr=swnEaqHZFdDvyce|m zF@|L1l(zGSj;3$1o311{vN6pID|wQ9kz7JaTMu=r;1p4#O+JQJY3imKy%J0aR!^SY zs!TG?imr%coZ1H$kH&)2-qgebcr+@bj0JG)u@j{pAlKkq&V^F$EK4ImXM92-Usoi3czsgHe_su+wuIoSP@hncK9}_F21WE*iLQ58w;bU8cH6>@`|G%n?HgSl z!mFfQ9hChLFDis_;)(8{vr^a$Hq%2F)t49M)XJn9 zsz}dC@7T{+KTgkR-@&-5p(n*nT&0?s{pTZR@rd@$Pk)0PV(tdgzB}z4NT}r- zYvcoD|2$!1ttcFetL{+9_M2PIOsj-v&W7pC1nW35AR5!#nNVy@jdUm1bkD2Z8^d;| ztfaEi!Cz*$$U!aYN;~TciLr}jbz$RmA=sDBL0Wc!Y0SZ+VFRuPI;kdYL~rbJuH(0j zyP&Sj!gL2&DQ@^XG!koOj<2TMAB1vfb{`8~I+6EkFPZwz?#B(@TYk4-bZq^pyl21e zBm@NU^83%z`c8xaZF!Dr9oOa35<*=|6H{vL7Xgk#aYqX7{Pzg3PDqRIh=5%`udgxs zolw)BchqBOx=d`FIQKjnZS7yNs05_b++8h00nxHBbnOQe83;hW*mjeu4weYvgKD8c zWOA;}qcKZ?-_>y7!|7NdYV~tbRgIDd2pq(#7?`))B*=G+T{}9vziO{B#%j&>Am+D| z!!%6(jo{w(iun}8Q}=+M>>_3`tNRP)IOSX;x~ zPkdVA??>#oi$i*v+}O*Pl&C*=Y$uH|SaV-1e~q;qQcaBsX?0mK3U7G1URwC^OXqSz z^d$!fq0$IBGQ>Vtt6~2oM*iE*0L{Rf1?$7x`Lnk`Q;PSj{xK$jpjN0MmPtUAJzPLgR>;o|UUT#h0GXrFZJ7rcqChO>~AqGj2(>X$Zq`V9W<`JsuSBNubOyt;tLhh>5*B$Mx8QuIVrBx=*?Y za+E%HYL%wGw{)WIBeSFgK+(IX)l_&c)J&>bWfFlA=m(a`iCKrl0$j)ut$T@gg09yl|c zfO#PFUH@=h z23xP;{XH4A;g;jIL+fn{PY#;sK4qv*rkPHL0cNyR%EA)1ehZ)bF8CxDVw7lL`8wMR z1k^eY+YhYTf!An1FCR%}&HkT1$dJ&wwa{0egY!%JK;}RAAR;#Q&R=>%LjP;?^uN$& zv-+7kni%@09Dp;EA`-#S-*~)IZ7#G(3|hTTb3SkoWO0ckY|WNM3NvA|qtlXh2Tj$7 zAXb9g$)|uSr_gT)51!uZK9lfG;f->EH?!$L2|2Die8z0^fY*F8_kUbV}9cz@t3}tC2i3j=#w3|t6)@5`aVXV}NV><^CK0NRS99T3c zz|Du<>xT!uPmPx}Us`<2`eoB+ga8Dh0P{GlI^-_kvn|(0DV+fFWYT~>Do?i|h8T=s zO4N6t3A&WS1Sv^oMO8*ias$1Bte4K{D91d@F9x9P4TQHPfw7{pn>y1%iJZ(iHHJhm zt3?#Lg_+da6jlgvKl4FXN15a?e55kOI(xN`yLgAm%qyJ?S9#!WM_`LP1G>^Yh9C8~ zc7N(iNMd7l!3axLOeqrfzIb2SHL9_$rhY-e2Cdl-(!~e(VG~1YVBME3K>|7E3zl%- zn0jeM6xH4RI|e*$F4i?(guEm6f%eZrLHKWs{dG&r>9TETrm1m=Xq}LjN$IQVV)5p- zu>I6bA=8oAY~y>&kn-$k1A>60gb~%IHa#L%0YE1X6#*8-cl|4f)Z%_h4yILxP(zWRy|QJc&}8K?D`Xz05o@ePqrEs_KMyR`X`P`p*8B|~ z9zqQw5;^{U+6+_qzGt~3xP&WS;`pOcA`sK1D=gKeD@wzqD`Fo<{@4RS459YS1B}wO zE4Mpn9Hv&kK?Lbpmh{2vcGgK5k{Jl?PQ38$SxYYSb=f@73OI#wm9QUq<;Q-bW*n6f=V%5#>d-<%4$Q@X%AHs#^*#;qk6oCe5~&5Mx?2 zCMgkGRP@xN=!7o=y5(2N0iMQk;(qSPN{a^+eS>s7ngGC4nV!*?vC<{a0`iLFmd}#i z@s(0LqB^1zI`Y@^FEd^ylfprk_1qKlfjbwI2f9M!HRSE4aM?XG{Qp9#FyYvWeAZIzKkGOkmTp#zv z=trjsu~t{5ZDjW2yx?mK^{CU~B)76l!Ghl2mbh0205UDU=h?RvKTv{eGX&(n-BiE{L&@UVZU+m9)tAQzL)Px}s+Jy_6^#uBo| zQgF0xDr%NCG&rx>#}ra*wn6jONZcF@RX7ZJvxcmeqnG-bg@wU}-4bp2_L< ze-y@i2D-j+{s^s!*w(U<6VN}D$%F|#Pjr=hSy63R5l#?JU)=XgSfHXht5!?mFB&(4 zYHrd8&+I8&Qe^||L)1sVBtFjt1&a@@U+M^mItGxF(Nj)apR7w6h>Cpv3p;WRJUu}O z90a81i(B%aWNHa}7ke=~(|^v?IvTiY=pXVFriNHVL!fh!f{`4-O<)nl)J+k)B*~e9 zXR&A_!Dc!i^uTb_eySjDpv4k3G%&_<{Ci}w)7RDp zpFu(5K$pp_a!hB+f_11;I*-VD)jsdMo6%g71N=*tEgYxLUJm84SIcY^WX!H|GCp5i zN{EijMgtYoJ;f2{69?y0jD47`(W|%xAN@fd$q@DwxOgY9)nwIrh#0RBb?V1-F7aL_ z{QK~R8DQu_P1~$51|Nq8VwiG(8#u+js}N37oAhQ$)6aiArg@TIAMxrYPtME+HS%=aWF$G! zTpmB6=a#os?mKVH--PIPi^>mcJZVF4|1qkdI!2~C{c_TVl^F)AawyHkf31d?;bS_6 z1Ith9c8^#3e7zP@E?|~>65JuSRd-LX1<`Up6t+0}S54+8y}M=X-*;H%9du5NC=Q~A za76RU9p=$=1`M|ts+KI?!ZJZ787IWhtFh5dXD5bca@}wDiil{}hMh>w;XBa8DpHO`kUqKU* zdB*j28F_Os#0zUsdYhMcSXk(E5_sigx+a*AO3{;c!Ry~UAI5+$2N>CYv#O=^O^(6%}@7gc^$%!&Kn>#1#GD)K4P z_C=;Kv+%%wN0md>M%Yzouq*Iod_W`VA$sARS}dZ;AjsFFQ5zs2ej!6&yzXd^NC|Pl zSgVHH6*^NnhX0XA`(C9lwr+A?JojqRgK|N9|2OA&M#V++8jJo!wChVgfTbJAG3Eib zIY#l4jLJas$XwQjrN(E9PUtKR@t6d~l+0g6yZu|Gdl2lPGp|pnqOV9FVF%$9Wl^P4 zP1=5sMU6KCn~Yhqo+V8bRzy*fBBIvSIG#=HuT@#ZfH2RE6^6MV--KMEuX?vc;w@9y zGUghA_$-)>xK>#kELc33g}nV@U8&Vd{lbiZ<~w#sSiQ&q)>cV)qae;8Z*Ng8M2?9m z9GT>4k-~)jTBxN&*Ym&Bl(6BlIo@CMv-vL?f#iQsQ%ZhWivOQ!>X(|H_16fEKT$3b zpeGlVVO8GJGFws(NL*9U3E@yf4@6Hwf8mfSxsYt2?aV}aQFwz8fLl{1^g+K7gSa^g zbLX%QB7#7>KA386WIft)zM42c%DwslLS?8X0iVdsqQc`+qD6ky>u+{=8z-LkTm7skN;i7aY%%$ZGJis;Rob*0W&0 z8g(?IsmMLoh<=`PTsECpx5+w?SU(}fW6nl3_%2H0lr52NRZXAKS%T(A8hqsf_Ps;{ z#ZqNNWUq&fRv-0J`x)#@%c?!k2?6yO!L0XMbz5tytoxExUhC0-(RPEb(D{7Ef>!@*l)K4!Qq)tQi^Hc*QL}} ziEV4HXc1g}0xN7vr@ka3Tjiw(n`9%VwPd4iW1|40GKPLhDio#_d-Tza;eN$n_}Wvyy8R|o8LoO4 z54`7^?T_O#h>;__cL}R(aRvObq3A1oO_57c0v?8>2ENSdL zQl65_#i&<%ZX)2h9{r@_7Mt$vt)pP&M|y?jD!m}U=I-YMT671JFpOvjIr4|uSTK#Q zl(qTu1FA?Kj)Gq`y37FA6%>0O8*8U}=oqPzBa5DFXqG`DcEq=m_ zy3K<-Y>8JC%{1(o=%RBbX#$!!v+0SeqL+rSR=w<0EK(s)`TUgUJFY2pT0rM8E7lbo#EU5^8}NCKdFz`s28*jMAm*M5{4H{U4jhM*vPM#6O*Wb1Sq9dQNd zRwTeT7oD5K2OQCqC0z0#*ewY4#ti4lkW?{4~8rya{?$}1B zqd&H78-HwdY}>YN+fF)3$F`H3z4y6Qcb|Ko_PMoItySw`z0Dfm#29mk+?PPUMf%O~ z+;DG_NeSdcc{=omyHE|6c@FB16OTHQd`4)!ab2>P4 zeP{g+)`QVs6Lf8b*yCV`=|j692e)zs@vdv`i*gO1%I?oGzMKL3B=z#e?B9XltJ=jy zoUwfF2svWolN+^u4Cyc4K|s5w{PpY1TkNNC2+R-ZOZEV0&CN@3CiB-V)6zM+^Sd-6 zFc&m}T_U^E#`M}wZj^JNi+hK(+Ta-r>8>B|?8Xu6K(SQ@Dw_u`tOp}A|HGVyU9TST zb?DTG zf}}K6C4R;DeCvW6^qMW1c}UBXdnA)ow#N4&b1riNU@(&V#}>m~?g?_oX>fsp{Di7u z_X$}8>Up+cszwG3`X+x!&&K_rN@B6n9Ev@_0~dFZGq9OugHaKVX29XuL&gsco)loyuCiHf(eMq56{1!|m zH~=5i8MS>$MEn)nB5DR(y~{zBI;n4Q3YILc%Rzp;d`$|ltXMl@-7Ge*M7}2^X^iB- z%b;`B6j#e-6V+!6*}PH0H#GCA=r^Jm?A+x$Lx?Gi{$s~?&hZ9e;B#Q26STC?nhbdW znQ##$?zP%~x!5X$4M)&Y*OWP(IlP#VE>{-XCv~5@hRrCnu8ARp}KP;){Y5 z)ddyR7Qd(-XTz&apButNBmrTj^#jd0fs(&$LaBVg7>`Vz6C2IE1&z!?S?ctX z1rv@uIoT`c<|R zRnQt!c9_)t++xvf5!r8}CopcJjW1*@*A;9vC*WLX+9f;FV$sD0Qo?G{^rID+P?K$| zZ>?gwgcnyc*ASn7%#HqaxvsTymRYW(|SB2X1P;UY| zc67bQa<4K8XRs~q^Ak}b$z{A=TbGhv(a3Iagocm$flkIwbaaW8hY@m^zc=(fAKdoxO<7Q0QZ2yVdz(+&rrF6SsZ?3Ne1Tga1a*xL~0Iw$G zBI5|Dp}z&l7}0Sf%N%7WgQ_fhujEIQspBXnw}r@}!u!a6u5~N4VQJaDA%6fynaIc# zI7>SYir|xM|DK-Zcknjgr&d5WN^WPRV7GjY9wepmPA2V2W>wd3vY8|2 ziRzNbVY^jCP66*Td+iwDKS^)=-NtPzyIjld2D3n64ycy`%j-L5A?`dAi zffDCxM{b1X_GsI5)I{_ZPUV~jbcu|R>?V$!DQ*9r_dzA-Pf$<0^3qh>{{xb) zrRR_4o0NHdPb9}1?Qvs|WtuJ;JELj4zNbO$jnb^2w|#>#5@TxJ1zofA4VKc!bvuQ% zV`3_b7+qxqNgh7G8A=|DEN#D4*lG?+T}V!U60WO)P`uKi3KCmV201+|2|X+26s2B+ z;ryeJhBk$QuWT#k5lk^u?7|I-qpON?w#YUJC6eXX5vDw(eYwO>`QX&N@Px)B^6$I( zO3GXd6P`Ns&y-wKCj_pgX*?Z3D4C3;0{gR+Zlj?yhYmO=^VmKiGw;1maWoVfQlm}6$1`J$_6jLTj|6&R#d zmr{!@<@2!&qBWz3EFo3PRLqqt=JJ>IOEe>D%SWd8x@D?Hwk*MAOQYPvZ%UR_I}0_h z+tAm_%=4#+O<8baieM5e*){s3%>F{FjIvT)gh!8_pC8J%8eD_3#T zh|)6*nMAh5`A;}N-q9EHXoppBS>ctz*_m}C@L&|sgzdN`vI5zw<*8IzF-qVGzgt3- zXl@y{o*51)wY%-bUPNTxz&BipI0!WmeHkl+%Q+9ke<>$}?|{8(27VD)9e6qj{IYuC zp3-cQpO`RaGWK?Pt%{}s^gXFt-B2Ix|bzr3(NzIqk=PQ*R@`tOxMo3*%Tm%B$E>DGwh&>KIpE1QVeqI5&t9#U9nC|IKGM zUPWRm-eT_1`tc6+<#!Wr&W5ui4Z(;kaQmM`XRN4{Sat6-?xV@IE3cyr*0+PRk{J-$ zT_HFQD4WK;(z=kz_$CL05t~fGX}W=`QKP{@SxV;gK^$R8wQ;phaf_V124}s>KkS^^ zDxdLMF}lX)s46;lWKgQ)RGO*=z)XYk!axdF1$xPrVr_+p#*zwT8kYFWN*Ix(NWrQJ z$2=m6(tt;@HZ0shi-U?|mVqkmg`Y#e;s~?N{zB>`BV14%Ok^~j1|Zl*1jC84P+WwK zcfusz;QzLLH4xt+pX{$!&E8ZPpnmN}fWt%$iD$88n_zpRWrLk%Ftk#Iir^_7XA$;g zxE#T(h@(|2Bxcuaw>)oU6tnhpl`^b7a;Crj$8N%dzn-<6`r9#f*asT76={9;vbV3B ze3%fgWI-a+!5-^~Aag_nEddFsV5JX3JLK$33O*z|r`mxe5^Ub|h$)UWOO8z=3Ia8o zYJiECTNb@z`@I(N>m$V>VVCeA<$*?Ls>l~C*R{Og9kblcR3fQ^Eoc1c&{&kCaIYajF+sZnU66#-4~H+ zw<~(s`!VJ72G<)%6>h=+G1*W~ZqzSPXx|WqaAbMHSFEjLP{WDEdcz52IeARH3bCqC zXTxdJ+pAsy{TU7@{ADanBGlk^VJ$=WF~s}0p_Vv~jZwgPQ!VHQxedufpcb;`pA9GH zJM7V$6#Exi>ARJm*PP5F)gDt<1ZMUS-h-n;zLCs+!i^gk%)ZlswcY=luxV?)AN}fk zjdCD%BceL;0BqZ2HdXm7?p6(;pw3e8ee~Qd~5TD z6lkLrxn*-%5K?u?0Z*a)uY$K8VJPQ=T6_D1Qj2@zRGOTu5z2JO~0|Cz>8T9q7QACBfb4 z3fNL(^>8y?M9*DLSmGnt!C(sB7bdn0SsTow@J%hyK1IX+5)KLzj<1Yw&YT`V#!QNM zP4?dH=9|xgVFX1JlOLrRn&7wG`P`e3mcq{yJad1*o1|JuUg^wKp0tQ!zlWn&XgE zXUC+bGmxn;z*jAYse5gU5&pnf+uir6bCuTV4Yu-`Zb2vQri2)1`$+F+NQ-Rs%KyRL-hsG%IV_86Nrsl)XuG z(_<|a7YZLNzVURbKB6Nc|7*}UFDxpIa(E)+*SMSMk3})-KO{kE4QA7>+^ijUcPk}~ zAga5@27BRn;oOA|Oa1Y|Xu{1CWZP^12>Y1yc8(a^&hBy#Y$@UpG|vz!Z4A;*i6&Gx zN__kE?I8UBSPH}#p|U2jS6&U*!0b}y=d>0Wq9%zk$C+G?3sOGeUM77lrzaNIPw6lB z^E+nNObA*(@*tw}?<49xp?GZW9L6cn3>2m{Qs8EJmwQwNZ>`|}W;J$GMlML+NR-)q zES&I^I1bLLW<=XPm4qXG5j$Uk(!hmkVv--01pFzjA$a0L9Vy~nq8YfmO?0E(pB^|? zLw;B;Z^7M`m9pCdPkrx=`aI3C9ea&9xttbZaMUtjyd4xS(+w%wSFxp5#b>RxG1gy8 z9YTaR34vCso08|^TcnEe-lf2zL6}HjABd%?c=EmYHN`|nL={A;gJRLngz&2H#FJl@ zy9VJcm|DOrC&!y8H<#%uKzdL~&}(l? z0!m1YTTDh_jA3dI1uu-7V%n4p6zFy1B%LWOe9=H(4+P6p34#y^y%WCXk-%lsnjU9x z$4Az~NksU|)1Lb??3fg5r1cqk3KhH2MOB`lQt;%>nAHLhuamar z^|uEtF&z051o8v0mnEZ&ax!o_vFUV`&FyrVl{K^T%LiN_=#RguopBF;O*xn4hysn-i7?ih zQk*0)>Z4_w3NRW5$a^UzR8~Oh&PDW4=tJ!xTwMv=lShaNQl-?xurbP7)1jwId-gGh zfc^Z9A+bdiP97)CHF{R|8p`6TiH3VB$^Yj;{1G;zX_}T9)jze^KXdda;^Ds%C^H>Y z&n>Qqe|uPvra5Nw~m%G7m z`CQsZ#`h)XDyGhPG#OxAp1-f(lTw&|b$vAQe3 z8{E(F5M_PjQp@Gpsh%g!iB&-IERctM+K}2Ob1jGsnuKth7ps}E-DhBf^sV&PP9T9~J z%tQ#3ygeZ;t17LE=4utKi_02dUDLxC|5KNHngk`zpD&-=F>hDiqwR(q&nv#K9V#T0 zIq?VKU;LwLk~j3!)$x0l)YW5x4pkUC$$LE1)hT;WxLpdCoDvt`$*P9sPSQHPqIKM! zDz$CG9+3Jnc2D*f|DdbHg)QUGehJ?;O_b+HXVlf*?T63yH1cytTALYYKl+vuUcbs3B2Rc4@!&UPOheunTfbcF|AJV|5n*_!4rv-a~zemK^ zO1P!`)I&a?JU@pPbbW?rW^SE)1P1j-xIW{o&qsvj?-bt$<&=z<;cq|6Fc`;!a>iDr z(%xBmNQWxY-toS)!}Z)=qNLNO>?Cib)~0G$Ug&+aOuNVguOxRo)82V{7?phJ!HHqE zk&B+i#eB(z?24Y%k3Yx*eMfqpZiwIC0iOxZUmD>(&o4@!zkYos{X)O}I^6G(+9&q; zr1E9p|GK^H`M}t#n!gLae;*n7O1etX74^}qdZ}40N%TUjaeOJ0Xe-*ip|0`rRy2N2 z)ay>uHF>oNgj}8|ssER8q0;r?3~CoFsGK96RPbtORGt$F=|!W~J>s@h=d&KkO(XX( za;PGpo(EU>GttoRo{*}^Kfp8=W8}>}nWwJ;>g~jXT?CKnbxB@@e9C~ON!^k{krs3L zceau;E>1;AU`hFAh1l~65+&$^L1R?_X`Z@@QEeOd;$&hM6P9KR6ApZJnkF$afK0l}xq@cBv5u#nFC6zy7=MqN z)k8{dY23V3Ao2Ki3XyX}Sa9-R4xz36tEURPSjIpcrmUwb8&MXjg?Qssu|6F}7$Xt@ zFaIpE zq-@^0*N2H>ZWj?ue`9ad1_KF#%f5>lr{75dH4f#9lWpFFAE@rtSFe)y`W!R{GG-~M z3YM!g4|^&8qKFv<;}WQ}D8-l@aUp8-!@{Gn+XQjZV3-F(eR1X3e5tWOmoYDmbccO+ zR46Z`q6l>}7yl)T!tb-T3S9#+@1QSvm@5(3cYBb!4PA_01Ir$uk_Xkrp%gvDV1qUV zYm)8wPfJ$JuZfjiQ~mh%8j3ESyga@2TFMyT#<~=dAp?Cqm8UP6f^ITBmZ{Z;dQh`V zh{ANK5`i&>%Kky()IO5H+eOBMOGynK+^4Y^umZT3XY7c>Ni1U(ad|LT%|CDhIWezB z<_NxbYhG~HhVrmx%s0EYwc|Zgo8dK^j-)tRl+B`Kpu)3=h9H3dFQ zYFbH#Y^gvuj5VGuVAEwI>vymh6kDG5f2(#c9^cn-OAMZX4VISy>8CFZxgzKTarRy; zN{yunXQ#~*JdSGY)~M%QH0vO@^+zFOc`x)<$-#ywDn{aqKQxK0wJ{=ti)>um_h<*? zw{HMeVza26K{Ums>AQL(z?Am%=iy;_UbGxwT_0DoF$OHIm@pesU?hdIlG8QYF+*c3 zGh3g7`Fs}>9Pu9p;RLqEhAmlm4w#$z%SgnBykZfNKSm>gJaWH^RKakY@uGs*_KePq zNX~5x@T{`GbyhfwGM*gir~YF*D3)eIkKyuOme#>Q&wBh~L4}7}=j6)}#Stc3wh+>E zn+FRWwf<1aSq)efS1=eQ1y128dpf>V)IX0eOR1=lfT4)?{B>kgtD}D)c~qP#Hyj)k zi8U-XvnRu1xSf^JiJ+?_hr&U%IVNbizA)9@7T&9R+^W<#-h3I zIbAr4Jz0Xv&loCE>?|~j2N@@QU;>YGnVp?0n|d81dDB}EFAzAX_qJT@aeP-Yy{LWQ91y+?-^Q-4=q4j`ho?J&a85?mWu9bqs2bsjZSJN$^*cj3eS>EoKrH@rv#W z3q-rvObXVc=q~dRI*?kzT*NG9>Q1d52=pAN{?YNXq6NS!{MwWu<`)9~o#o*Oz70=YZcS7TXNj3VJ*o+79y}Fh9dKmg z*}di^X2@W5XYn?;l~9~a$QKKD#JK1Cm@Pay#!WzyxX>u$4-P1CNRnWj^+`Ay@1!bH zop7P-lC?{{XZ08>OgX_!$j=I*iU(!~Z+Gi=Y;P3fNGC9g{_Vf9x0x#VZ zdne;k9=}nz7=c(*&a6UjTyQEPm{TsQ8_b_oot$b}#xtO7R^E^r;(RtgP%+K1#C@t= z1D9@@R?evcK3Fbf**0eTn7WyBXOPDq-cmn=S*%&sU#v;N!<`t>Y1veU7u?Sdm+>dP zJZwU`N%eQ6xQ5($wjQgBwtS;_oov-pIb!j8DM#8VpG)`Hh+}pcgFJTnDd_{El1?Q9 z^HR|%i;_)p5kqKt1+7TxPU4>A1HF>YkcqBKQ(3jb%AWN%=am*(RqKQu$ZqdqzR$ut z^jL0}amw@CzN@`YnX^2j^OU!^UBi2&!ZvQon)yWLl>%w+@wY{kb~I8AA_MDE)hS0! zyAI`+!FN7r z{K8NhxmRSBs+rd>CIJOB!W{*i4@c%9R{AB|V^ulk4=vy6kWw|O^n>?9X&KNyOYMSf z$;hxZrb363@o#XkrHTzD_IP{85|Pq{id?ECv3DO^X~I!zdnGp!{PGAob!u6*@|%o{ zAU(?x@}g2P&rkDg)fpyC*Y$#4*Nnlr^ZM*CQJxc983gorY;YvX-Hx8y3)QN~$79f$&U^mpiCDd8b&#oTCa~-6C zYnZju-pSgL=ulbeSSO$0#Ep(0dzb}efim;klg}6ds`T|HI@TTZ`tTx(RK&UVVf%iJ z=%L%durG^Y2MeF|K_9`E>>H`d9_dnU`+Y@8U*=nS|62Lw4$ZE(OrkL)>3FhHBY>xY z9X{kTu8v<-78CrB-`u?Z`hiuWzMP_vW)*xY&y7@%kA4v+QIBs?%w*xDnGVHAkPdEw zzLAd{i+)Kx{z+YppAiSP8f7Go!VYcj__Qo8BrQ*#Ovwk@L<$e$SM-S?j5Ehj{uv6r z*`VPZPCH&Q*QUv@lcBTvp6tCuIrbOm`h5!-3`Dwop{yM( zLP_HaYER;4OvWg`lOzOiBYJ9{_!PDt;5qP_Xzjvv>QUoBY)9p_@4(2fhvJ zrB?2)`HRqmmqWB3D~W@++(k0Bqy@Veou~xgx7N*7Uv-`}_h;(eC3MmW6YGlv(@+U_ zj6YU*p=o!4+zAoVThT_Sxezvrh0BaN+IAukGC{1HP{$E%O!VZQQZF ziyzzWln1A)B*r>o&DN*~#iKzF$s3wYG4)=i$9?-LGG`zizRq4AU`Hd{VG->7nkjR+ zE&MABnc&-t7?8%7*F@hpeE5iXVzp4vvnSJ$cln}i240Zb?4^T$eEABfRcPRr&~TBL zx^ix)YPl)g2`Y?&PCco%Lx7}c+#t#-1Iw;rU7q&L#2Xo{Pv#2n3m!M357$}mIjlY4 z?BNM^y`)EO-sgi~@Yn24$uaJS_wuKJnJ@Aja@Yx={nP0ESI*)mtPZK`L;I(a zhk~!K7~{#+#C`Z@x23OM!<(;c&+N|13F3!$f=^jbPkzh&lTF7*^p?+xZI4;YPRmA5 z^9J$i1@grs0QklUd}{%|8Esw4<>>1a@0@i1SnrXu44wNFR^$zMBu-eLGXJ73^CnvN zm9?x9eq)rlkg~uy&6)qod#CmI6tsOu6%BV?U>>5Va<+D`poI*d&@8jN5g6A}oa`v` zr9HUH3y{S2fJ^z;wr<{Q%Tt~7F6)_VYnIC|-V(DTL)93MebFbS-C-e4`x1Yeo#nxp zlSd#*IUYJHimU|1FQjqreJT|rqz9Zw@rWFr-)9TdEJM;n58AHupMFO~F{;#A*f}8< zX@8W9tgjB!rPe{8V(}|U7bx*HKrHrMz{Wc8qIYMHE{SkeSjKX^paV83V&VC7@Hp7k zSr+A)-)~8YUYjgNULb1)L>onzgh!qi@2S#ITNKPoP(a!!bNCV?>M1ryjNkk+ATVcT43im0Cv?xOLW1zMwsJn%1plMd>arZnX&&AVQ7fTvK=){=-e3Q$Z ze8tm-VrK?b$CIwe*Vb)MDTG0CI?*v?LbmOS9XQm;5@T+0<)7(Z^a;E42|-sSeOE`q zYGcM~!)VNX*{uz!D|fY5MQ|Qb0_m*-*tNm7b`U&U3DTVq&v!k{&!=X;c=PU_e(w(Y5jD)<`mO#%4#tatO4%nYUhKawns(w1%BuB>g;}J#;JNxOi)p`(yndq! zU=iochL{tLw|loA@82~kC&YDyG|-QP&l`8#S;6hPj|qG?XyA(YnFaX$`0S!=vGq9z zb_Y+07hbw>SsaN71)l9(*Z~+3yRZ+0<-yEniJfcYVaSLBcC+~ zK7OJE#kAZYQEID2Lk?SkA3|6EnkKM5q0K$7tE6x`oA(2F$DGn$6$`&dryE0mY=%?B zrw%(ie$3c7b;nc(jA@M}96{~tn$F1-={dG7KtYDV3dRUjG?QxV$@n(V* zn!7QPpeXeZx}^iv z+k>`4Oxey!kUQN;-`2q9M*X+5(V??l22OcUyF%2?FtIy#HY{)SXCW#OtW{|ze}5zP zg~6YcH-fdIqv;^57zOryqtPRsz=GL^UYh!O%2W$q_u~37k9A6``dE{>f0n7*ZX0T| zO;dSi6Bl~j%VE`4wbM825qJXDt;C#beftqi`a8hAoET$B6 zIm(sax)EOyvQX^(r}z#i_a%fwjQ{%xDxB+_ee!WVe$Y9n>F#qvV=D42nn3BALZl6n zzpT13mhfvnG?et4F;Vq`I*I|S*w_`24s3}K1}m0sr!G`>M<^|3EV9TC-q3 zo-roPn|TwI1x747Z)LrhASsr(NT7(q8bC%W9FqfgOU4SavJ_lhx;LG^))Wy7AR5>P zg4NRZPS~pnVVwopEE`w_Fd?>?#ozq-qTU?tJJxM@iv?nj@Y#z_d*%*c@QZz`pLllborHgoc+TgO zo_~aRVdfd#Bg+?Xb$4~b`bp;9=WB@kmDcdg_~$F9pYT0t;)RuH#&^H$-8FmQ>u=FJ zcg>#fjpiq3&WPT1(K~T>$k#**83cJH#<&TsE`y!{punp;2yiVf&mPP8SAh?&Tyv0~ zFJz>Dt}0-mTJSG`fwqUM!Ko`Sm5h78g4!PkF$dU~0B=|16aQ^aCb|yc`9>LVm!y57 zh-nMEkVI6_kAHpWelE{S^=g6zZ}s12m`?! z5ctQ?ovo=$Z1@yLG8CMVSy&|ia`_w1oi|(zs!zQ`9zUkXqK`Dpi!S-*xVb6GxyycJ zk&CV;C}>|;mfAZMZ3r4N7(U=(cKb2TSVc53%-~;hSI&$&5$7`l(NtTLLJmxhEqj}i zLRMWo?{!(g<4=*h@WG}_ouR!jvnRYzuD#uL3NY{b494YOks z(Op=~d`MakHji#ykUk0i+pq{Zuj-u5Zi<5P#S}ElZakZ!3=&kN`fW!;4UoyzW{;DV zPcSd#!S!HG8ZNb9lT}eDN|&XoNNW_F%5PY-ZdaHpx+-^f#(%w3D47E1y3570mYExgj<67!PUxcetk`dRN5kewSpaLIRYiN>v z5$T4N*<)^|Jg~1@CKfH))H+K9wYeuLNC6Q*8d*zl5z-oyJWC9f4Piygx}67iMwi2! zj0T=Co2Ou}vm;W0O=$2zx{)tB3r2q=z%6okRQ5U!u7oFVQauE8F=1ySZydMN|66!p z#0yT4`rUy;m?zksEDn|(0>`NKDhake?toBvPf{qn_74VTlIRQ~kp!+-POzZp`>~?- zdWZ6E*PGATJSU^|Gxms)A+GxB-wW_t(sP}cWe;zF{@xXyg7zY;1$b-A)79S`!$ z77d9759evT$scAIe79Up zJ``-EsM*#pGMGX+rANP8+A`+BhL;se-x-Qhv{2)eY>ORAzDVTXnI0RbBRLGu+wXD3 z-=cBk%1-`Un$`M~C)n{vsMc78Efu&pKS1bzo0-%y7k<1zddB+9@cH z3ctA2BAIis2Mq9u-?A6fvS|JH*%AYlJl34}+o>5JVq=ZZbiOn_GWe#34e?S;2@mfK zI3P3AHrwgf9knTZ%Q7Y8IOJ<$(sivCb&WFKa-K0`WzK!tDZkb5g>*C)?+O*9Nir5m2*3mtpe5y5T4 z3B=oIJ%mWaX`49|;nk)_rHhc_Dy#&eJioVW67l8QxFXV?=oW`&Xa$^FnMug4~zfY9p@3 zAiYp;JEv#><{IZv^R#a8`86Ph0COIFQX(X<6A9S)+j}X)IrEi*?@p_BwZ%cz3mNZL zKvsmfU-MV~pI5}yTjrrfs@dpY=8u`M8+UV(HaZNaQf3xsjtdT4CRuP$Zu(}R0y0|K zlg;|v&DPFzwgom0is)7XJO@BG=0c5q9vj3Pwod$Eb>Kmer+W*rnRD6Dzcg=sm0nEzc6-9j&YrhKa@juK{P;7(Pb1lDC;|k97)uc^m#) z(2MGSbjIbaT`=*Wiep&F2y;%;l`5RL4@hDV4uOL{_(ct{LW+_(&a^Nc9^w_EF3HEKp_=Q_eOMta~!g+KAzq zIR`E(SOVJyoB*G=x8&@(_cp`e=(k_f61L{q^TC4HMitj-3j;IJaqH&EKlWt#WY7}B zObN*0HHnt%;AO`yZ?3m214cz#M$$|6mJjbfqpcJQ(2f^r{AW4=UPSv`&)%c!HVeNu z7i6x{iFuHx3nF{(^(3cu=*?ade768M9j~q-3Ms7)!!!!r8pvv^i34h=KdRT`Y#qmU z_ANlv;TxVU1`k(XY`bHf%EMvVj#Zhpt^Faq=t2^b3Quy8HtMPIE+7!z&1OAm>avPp z|4?>v0{X5UL~f+>Bi;SGltxuqC+btuuFqguSkT|S;d0~a)XwL=uH1jHD7|r&gTbE% zGjm3EBeRnPKR+Y7cDGP_1R_7bH`02xLwkYhrK$$#sLS!db{BH{qWY3m5xVRm%#(PC zlC`(Oi|9NzRHN#|FVk&qu|`NOfOUNTqM@l@;Mtq809J7cs+WzG+5s9_>lMt?o?Et@^^m0ALZiGHz_G0XPa`58Z?||Pyd~V+JjMXbC z;m2jm&^y}BM#vtDxv?I9_Wkedn>P~8G+!7H5M#9enI2Tc#L39f!rs}!&Q{sZ&RW^R z{=e7~MQU%p7;2bbvMg_-#(w0rK`0AC5$&)R%|GPvnJ~eq%Rmj$(EQ7#fuY97re+i)h~t#D%?wu|yX%CO5n=%dgD#R7>X(hw|h`fEc_&l3(QHJ*dm zI4An)Sze7nTA=JRLLAB26L*0Ymndm(?3-b75_c9+^_OVtW`*4H0UZu8Y&lEzi~>}R zGZXi@k=;KE7{`wVEH07%`v2%IG{EiF4*xFieh|fv4Y0V22xG)R-KZeO?B4tk3wA5T z2z3xq%|;mp42>6%o=PC<4Xl7ai-C+_KoD$1^QtQTF14v)Hb(%=3#;ZcI_ktE{aF*X z!b}{TbZ(qFX5WXy%ADF)98*k;q)}fpEqNvNtmHQ(HxiAEGy+`s8*e&Kig(1ZKyis{ zyiKY%0GiGrTwhl-U?(gTuZ>qR37JDO#bqBV57;+gM+ktXtF74yU>^-Ft<75g>((RE zkaz2qL2c};vsT6Jk=tCzfJ5SG)In!l$JA<=bgI1}seA+eMcQG;x4a}3Ii-ub|B`}4&%>UhZ*asngu zdpzoeKaCq>((`wwMm{kxwewr5>yCYNNGq4d#laCBjVB$IXziaJ4`_YB0=(BHMg|)F1S}MOc&;x zMo@fmYTIvf{1G6O$%VWtp=PPSZ;XE0wk!%Vn?y}L0>)Qjxw1;NkLK8N0G#pCmb_~e;ccjYD|b|-O8&iG#GU3vtG ziG*ebyhXXk$Lz;8IaDWR?~KbkSPlA_OBeYETF?BA)w|e;-3sLJCSd! zg-Gh>pI?yIW`w?d8$6#hQ#;qm(LI4L56FaHgFP75Zb!j@-)p$U%@3C*lGNs%&kzR& znVOdreaV?>lvS&j>X8N-IVb-nZv#qmDYZRSFHT%e+HhFQD&VmBEhA7(Ty`}Wk50^@ z?eN5T$lTqf2CCkt=$!mpD83K9Ja z-SLCvl037909K2(Cw`BTecSR>j~gb7nT%82Y_<8l>41u|A=##lIDWwgZ$%mYmrlkkf6h<0nPKu##ajRZy$^KwByUzRAIK&d zYl;=58fcDybjqd_)!1vUzQeAtguXpNvQd>LeD` zePQ#!7)Ps8i;4(BVkRP>`k1aU1V1AdaYp0D)x3;a%jL~KXWD0`i~Gl~&~>l#&}3o& z`_~m7U<&IbkXi2AU9>nolvz&vU9X+DwL?OErIe&8`{U=mhpPw11If}xy>UzIvtIif z6P9eWQ$!s*gO+&J*j_y=6K8IsO-ONcF5a6xwQaxS<~Z`(Mk-&+!uw$V(jzGe`j*9|pFi$=xzY?KcK8X-NDR_B^`u`#iA{twps|6;r=PS`F8 zV(=UB$|m4xO1ifs3dNz38Ppxtg$dSU{3I=X3uA><;@&ss`yF6s2#SV^1~1@;yh~B1 z--qR3rtOc>DHsrZHSx5`YIfNDb@NE*hu^v`_NNL9Z?*X_pPg6coWmilFM%v1>XXEG zJR!3}f`v)5d`u=p%%YV8fzISQIKTNiS$TfbfNS9eJ+^oYJS0~w5@JA8kLE^SfDrB@ z71_yvIy~|ST3afE7!&+XBzf^ee9|#HtW3UGZ8Do#q)buh$x$~s0PpcFIGfyv8*5CP z(#tlyGIiR~K;$;oN}xz^;>d8ZqP$+dj3&4`z@e^%EoU$o-QZGF#-~K;6)&+k(FWM= zqE;u=1HEL^2tA~2wwK*_boGh&=EBP)6hw=ft{yfk#M@7^E_2Sj`BgKHv+PUk>+AND zWuJV0V)K)V^n89ks8LpcuOfhS2F}4}=>_E8mP_oB%Y=Ig{5InTzxH_@Ot-VikJye8 zrPHyLy}rbP=Gvd<*LX8YFKd0g!17?4G>cJaR{ABxtp3bD+ z4eCOBTG3F~^=pRheXFPxlVzGa#odCxMdK5aU@hpgn9h@7?83AWDhBP4Ru|b|P3GzS z3^?igFo55NDx78&D)EV=IgKt?i+b$^-nmsrS;#I<6j$LcoW4_z&T1`_4v=NxrIzdi zUDm1?jXeFSuIw8sC{zmDW!822m@Dev+7iaGr9DB5F3-8#rcWm3XZQHhX zvSZt}Z9CbqZ9D0BhcD-yd+XhEs=iaVzN+r(f4aKrw|dOE=9+8FF|xf&Dytjar_iF41U-JIUk1pMEp=a;JQBOWD$;APCib`l_l|A26!rwR%P_vBMM}qCn2A;?TRnMg z%1-^MTlu|_v>q6D985TFLl05W_&Jixwyd?vY`*0uC7f8Yy`0sjp>{xK8r`5(l(NWL zc)dZ`L5oNp8xfc<1NcSs$BR4qF~-z{+J(a~kXKeqHU{KizLUv*>9V1%zYt}1{? zPs%_wINX`)l`*d%mbm_}*=- z_|aL6^UcH62J(Z3vikL;%_JcaXbX|aRpgo&2XuL;A9R442!~w)Q5I-B!t06gC*R>s z5_r3EPyTLDQf_|lUdKJ;Jc+XLY(`-wREM&K{1IFJArVfP5AmazrLB0mQ z$Z3(+x(7PBrFz^bCBd2TYe39g&L7{%Q~J{}TjCbf4Uq}(0-xsSm-*AaT{2{Ci|E~v zn%t%)9N|EPPDsZfhBfu+!F%6&mkc76q6gez-1vE{gaVg0p6S0b%Q(ZkdGd zUszQ7>LXjvKuISdQWiM`4)#+-=Dh9)6A>%&7L_t5K?0-S&ARE?Ep3YR5hc=Bu(I_3 z!TOB1NQqj^CIRC8jo$*#wGnk}p;!Gw{F`@rRghw@&kGP!;$d%#C4&L`@tY8i!IkbXO3ycP!Y|boD8LU^x?GUyFW4G3gJ`=v?x;t0!;eOUm zqBb(yngb|H(Jz(-5nRE$f13^-*wFQ>|K8b=zIS=f|Fpv^*}K}ADA^lX+6lV4*#8gz zxBv1wN{*I=9uR;H)_<>5>(>)-*jvx{07e4CAUcIAvDFeE34a(JY`^`1FNN!PH4xNw z`}1bv-qrs{7$Y1r4(*EA=6jWW27_MbqLisl z{lP1V<}X4+LeqSw#73*AdA<}s<0`*7Ge)4Gxn)i|bv1P~^`O&xVa+S(X8Gx?<)9aP z7na9e^q!?BxErq1*Db-Bi$3{N`_qGhPn>_h5f)8qH`fF*#eJ`h$= zo;0+_V5Bf;A*K|8PN`MQK_sdTD()y_HCoJp)GygI5f+0e7wnKhc)E$|X3H#Wz1~E& z1jX3Dl%>#|Wqf|T=#s*%gU9A9X10opA%>BzoTHg0#vSYqDa?@#D~=*Mv=Yq-s$>?z zJTyPB`@6l|(JtERK(isKR91H)#xf=DzKika8IwxM@dJ&1z(}V{_*mWp7I>?Y=2QzO zC%jFT>J|2ClC6w$GohVq+A``4!=-GIy(M!-#g?NA-yod$W0rT(^)berKOstP+ewbI zh?*?S2B8Ak>54eNRIL>+ONecyG!uKbN{VrBzgt!IQ^cKnOX%$IkC2VwEIp)R*$z^` z6q|Isi3K(EZ$ciUW18$|==AsNW*vly0t$*zbTG#x$txR3O0ca{#aZfMPRi**c|m?~ zAqncXUxHv5j77W1A;Or73=tF1Zut@UH@&(gh-L8PD?x8?MYE#x^d>g61zE7s7g>G* zF|u|ZC?U{>wTBzVW8Tsq2l9)$#$nLjV_DO(u~6D=&zvQuW-P)d!YQ1@Oq)ilHjbIx z6VA{iREDxE?Y1jqnP*~;sE?o@YjJZ+=w9C(snkwwrA##$Cv#4}^tg<&x6~4C=se&3 zAeM1+U6zGBc=Iwz43aq;)zFlsPgOb8)w%#*ifq-OGdL^Rch^{8RnCW4bPo+0)-_}R2-f0!L_&|}A~1-2>TbIX2e7)Wm`3Wo|QD+0xaFr|aEf!IabEddMof2yh`l)`cA4i${#X2rf55E)HxCJb%rzpHCAdre zuaW%|J&1htJF;uOBl|yEi2i?NxPMlg*=jrgs5U>Z%?5>5*-*jPt)wCYrw~pP0t?{4 zjMvv!QK<~HZ--5vfm=g#HwluSru+xpM==OoMg|PbadSTkxp>_h$tV%c_d(2WcuzLJ zr4BZo?Osl%a{YlQjJgpp7%~Tb@-5#=LPJeH9w_^y5IxdTN-0fBJ8EO27ilEzJHwfl ze+mhc2D4mSv{mlqgwSL4<*DO^dM9_By=|JeX?Pkgd2)VF@OO5qp8(No2RPt`6p_-x zf;4|0j4Xo!%5YfsAV@=cRO_$O1W)5V0YRQU$6gyFDXaTp6tIcEsxeo?h!J0jXSOid zo~2-dmYL~sk!ToX%saUCNl zdXSmbPu@#7a%ASX?-6TgKc#|){c3k;i4Msr$h~iy`R#6`a5T@h!!+oX$!DsC{`>*h ze_$Eh`f7`e5gpIALp%D_r&MWos`;K1m+DZw0KmDci-~M2I`B2Y4AHVMonh9Okg&{{ zchDC{(?9e0l@SxFL?c-rCC=3|5)q?Xb@l?DWRV})IS&v4uW`$M^$2B5aLHvt?F2Vz z+XhTZ&ZJ+Tp<_+=daEyDEEX?Tu8oi`%bw>SO_^^(OEr*>mW5s`N2g>jm{wlKHD=Xb ziY;o%u8_J%6Ck>Tuv`sm7K2yckH=8c{Dp+Gzu&F;%TQL_naLu{!N#w#eI5rP8+RU= z%7YEOPC`-VQhhAPow&`Px%~WP&ep-tq*p`^Z~TyiAk?!NfeZJlSCSq0JS%LSfs&vu zai8T!g!+np7fej?cSWL#K+qQ~J*#qQpK~jW`LDN)U~ci&il*su5RXlQC2BibU|vnK1$Qk>O4^UnoIE^AqYi8-i=t>PMTsO zrHYq;f(H-{MbxB{a08jy5zI&uvL2cZ>CTd^>J8d{{liK!DHK_shkgRntTo*h$fE!Y zpZ4d;%gHR~lj*J8-X1@Qx*%3CsUnG6kid#(d#m+ZbpObC_FlM&Z%i zP@A#_nnL4E-$_OKvJ-iv(*BWG*ZNFNxUxOQl69G6%yfZiDH3!;R&*tN%-D>aWTsFM>jE!@X&b&LX4m0Ly7r7@XFUyM;l;{r?z4H46;%#F_Qq{e0=50{jJ+zQv+0juny;ovPSVg&H)H z`Uu4i@nfwgW}zCFv1Iu6c_56!i6A5Vi{xKR-@ag1Sh1`aH^gj7?kLbXN~JlTU12d5RcV@tPV(L)Cly}&!+v<69)9HYHa}mCfriK%rqq%ZF0ReIV3}h|&e*6^r zTbQ~ue;kFcz%|a{iZ97XB7_7QLf)*~uXsV*;R(hvqpeE*vlYnmQAv`CA_Cgp^j~L4 z!*vmthK@`0d|q8`^zU0pdus|WRT!@K|0XY>KJ7tO`W+K{-*3wQ7#rWlwBp}ang6Y5 z8yvL--!Fg|Jfk3``hWzv!sZJus1pVwUuUJYQMFaVPsfu1gRq-F#J0blHOa~OXY$#L zKj(*05T6eL5Fy8UiHt`f3(APN>xpf7gejeU0)u9z$c9w9&CKI)j&BsCv$h$LDrKY? z)Y>9j{fdzD)c$jK7}U=oZsRr`OHEZBq=FR6CYE%LEGIduflGR-3@!zToina}Rs`Nu z{MYGFI}mqa+emPNf6WAmCS$;}-%2s^P(OaK{I8x?*51|GRN^}&*qA!~GZ!SQNjspb zqVm$Gr^{tbhsJ?|fc}0bBS_C=`yl!+z&qcie;%zbVLy9}krDS(0IkVXbsKuw;`qHZ)UKA2=-cdL=sG&e8^44-? z1LNKkbL4~RHkrfhplpP$BzDf^#FPt$)2mO zk5cwz;J8-S@=N@kX%iDI1K%zUC{Eg~pZN#Rl&X#B%s#I#GI5F2=3)cIsrU^#-jO!T zVF4YR^=tU)a5hxVV5Ce3ZSU{nMxT&)+mpzH-~5YM*z);f#q?x0TaZ{Nf!$fBik_%* zo0UwO%qtb6&c0*QBgiyiy>0nFA2H{uOZ%0!R_y4@`D+8%RjTV{0i(1$0pxI5Ee6Ju z0^>s1jxg?de*#t3Iher7XgD~GcPU{sWw0G+J<=L(n~-~uIZ1&J;bgSa`m2IDvzl*V z#b|jdhnzk13^u+pq2RlWcr(Z9Nz>=qp4yfF8pyBbK)Wn5K@%(Bt3TSj&XgmTjg1N9 za>Dy{J&riHl_X8YC5(cQUx3D7zq}@$$Vu~qavZ}I`%vlzR0A#?Biz_6y{`8;)b(*j zDRYjPzoWa_0ra_zG98BJOKTN5EpzfRWCLB?fVHxU5(0%Q2!dN^6e>W9uA6C6wI;EP&Y4N!0jvPf z(_{45z{bsNU>zpu-Ey0ukSw!$akRz4Z90oVmL9`xYo6VNhge=vR%6iA@mJ`x($2#0 zf@njN?YDL>97``lS!5Qj649crX?e*YBv65I$qszClzzljFXD z9DGOeH|7%i&MpTqxI?L!BkGvLD-wG++Z;Pa*gJc;J)@rQzc2vAbo=C8A-RmP`nTYI z!`v^j>dsloJYjgNQj3_4EBVP8{aNTumOG-0`MPf!YeGxO%K@F5&lKAOY;Mg_lX{|o zjz>Opd5KIyDfEE$P(|Qpx+kdL!E!6DjGOfX+Wzvi1R;@f zAUJdcFXIo%O_`-mZ$?M!T$Hii5#)EaUGGM$NBp}0`l2KY+v@ij$_nYn5Ay#_hWxLj zsQ%X*WfaSAG^MFQ!)9#+cMl%b1dApHT`8t%2p0(;$cX8Xnb7QJOCR5Cq&|?w0znAH z`3DaeN^*hN&Y2}HP=+vHe15h>+^bZ4{@~;j?4wwIXDylLj~j4vuDM%}ea~CQ+}l^T z15}^WJ9QA+sk%XkLVz!!kzKO1QojHsP!Wki@VBa3dn0KxiV*l3BD?`Z*l$AEy|{0I zr57zo!%ezW?n5VYNcX+Ez)s<`2x7v`-`;4O7z40SReg$-H=k5=2r7zmznwfOf?&Aae&Dx*4h4pd?qOuoEE<{L(-V!XONQtLI%ppgqM) zNuWKHfIxJqQpi@qBJQXIWQ(TeXq%$+ndBgPnh7Ta_muDm`i2ZlkoL1BL{l1DTKF(T z6Q6OlfI)UT6Y~m;iWqh$s1I$59pqwD24x{H_pI?McT)}tqieOAkhGg+3*{cqeCio{ zxwBxU>GQDHlpb*ktFacFF=vH}fiJd~8aP3l>wMKT-V2~51~&Pc(^NR}7`?IVGd&zXC8 zB{8z)5>jtk@4i`gJNqpc2E(FzWYJoIW^psE`YE&dBQ{zm_NambykZ)(@S;AJ8;0`Y zS0g(oZCY7(Va4?3#6qTGD=U(9d#MGFxaCO|vqk=Za?-suBkMCi=DjvT078aWNiNxl zCiq9l+KRl@9JvBN5Xj^C@vpw5{WUS?J_$~+%+%Cm^~mHV8;o8dbVJJytA&(#J^GogEG_i3h~ zSo{irE(g2eqfZmbN|k+~ov6eda`3dZaDgu}GmUY^)|7T#E=4XYhNYbS^Y#N-?uoXQ zZd)RxU-J91A(sUFdCPM=but z;rvI;KW1Alhd#61Z>(F`D!0yPHwPHN3lp*I+H6-X4V1dW^Z;tK-Vq2Yzu!9*FL-{n zy9iX@1eNj^M1M5^#=B}TVPchroU;@T1M0i%u=q>b(!w04eQRKE7)a!!c}zO+)oYQ&RtkmctRYQTYyPdqlcBnz3E`M)-I0YHPrTH9IOkf!WDVas?Y= zmA9S=IMvoFpn56+ii(LoC#^keG7~7?W3#!Bk!i!GaHY=nIC|L;Sd`4lRg&jTd6dF? z!9^>2dlKHdlU>=PxvqF{IAD3MaYo|y=c>8M=H5sIwanW7(7{U?*6)1}>N=16IQBu0 zkvYXRhCLt%`*wfEiDcJW0%|J14h}rtu4d#76Uc0@y(!zPn8zN&fEd!6Og9mR$+|C zR15QVNwI|CiM7BsIxvj1@#T_4xo|MIX~qPj;@(s&iyj~XfvfQKoY**cA`0Al%EYNt zI~Tfh@FJF~oY|jrDb><3zOYzJ#4~@JF^O#x++h3SZ4-YXT92>h0eC4%!iUIFRZej) zX^aE7)m$3dDU6qQ7ww5{Lkh>uOu}G}9K(&WLMI{87!?`a*sLV&Exp)C>y@>0VKtXk z3F^1!Fi($!x&WUD^tBG*^|vgbQ%cKg{VmqU}qb?M|&onL1w{^&U>5q<`OetRs)} zjv3m&RRFj`Gg?Sf1^oxS&#lB2R(e=MUs2LVW|DBR*FzM$N7x5b2U#35zOJOFjlJF& zgz)b&ic8Cl2vdHFp)AjpMZZh#rMF`>>u6h=;aJU1EBHV))@LtrOY~;qa$}Xzftz6{ z-q53%YN0B0*cC`5nMs*?ig`X_8vLFV2eLZjEyj6dhch<}I)e z*%Yc-%G0vyi^J#oAbJ3mzl3cHf*&Wq-pYuXs%byanDvHg%HDMz(i{g3a`8L=MdF;? za4oU>^winVYyEYBO~8p>1DLsGmL|X5OW-X+INds7Fjo}-cGfkxrYa8af0t1f{;5;U zPQk~EIA(~{Z-8}(+yE12zo}VwS%q6bfq^^XP>usM6YU_O zMX=L0LXwlQHAfS zU9h36=dJY_cILjD{Z?%#-hVSSMh!XIGB1!mC%Yj^9q4zao&k(rNwpJi03iInQ4hqg z5#bjEd~|4hBxOgL$v$HvBzz265231&!~!t+a5o;>4nP!xgU;n>qY)zc5K^`R> z@=Ro^qf}Nu%)V{cq1vOmf++WPvb|DFbhnS@y&-h4Q*3AFuc|2_Y3EiPZ;f_BNA#`B zRA?HMQHldIwMQ$*q%CLWO7CtC8OcmckX)a;SokJrcZ*3V>I?H6fuFb<{E8 zX{gz*_|cpqqcQdBf9|n6uU*CN;aGNA-mYa=?mTmv<{X(ryEF1?q$W*7Iw?fQ-0k(e zb74TDaZ6=gvwlinWH^Uq3;eceoG6REGg#xC#1~_rdcm_EgUoL4bJ07b@r8j&OM~2Y zgj3}0_Y|g@y{PfcY7@Y7r{-isgm-Gq`dzaBZ){+=E;A9d??#gP_YsogKNd&deIy}I zB~u$yH$yvP(|_Ef89Eud*#GwtQd!!5K>+b{+0iIrog|2iM@U-A@*Z>n`Z0kDSwtv8 zqFkh6n|+#WYrHwWp85rC^Dl@_n*&fkkmIp9p&1^vN|MChuIJSx`+c>!|L5xyULQRE zp@D%h7}qsrz2&YSJeCdCDw_hcg8A5`w0wweh)TEPWZv_8y}=kl5xJg-IWZD0AYM9t zzt6qRdlIDloun+3{El_-Ab>#TDm)94JAo}$Xa_K(*G`1`G>b4$YOfEip5;7)#2az{ zE7Wh+kRfZ8IP3STQPB2eT+fOoRr#FxY!+Tfb@9CF9UUW7kTh!*KeMU{4LM4PmaoJ3 zO#79Sy%j->Tri3oo%nu;iJ9_)?_*42_isl ze%LILm-7zme8N_$FcwbB1q4?8l(a|!#XN!faIFaI%;g?tm7IwsjfB~;4mPrgQ@T&} zP?C9=m(ovs4Qsx6S=|D5%dP6^A)$wDTRL_A#;})cil}Dv%36a|x-f#uG&NilpWX2{P4+v{nrRV?yhWS#ABP!Aa?y3G7C!;| zg=Z`bv9_@~F6pe+W{V~%AG zO~usqn{Vave=%lb`VSV?f3++%JbiT3T|aBg{Jn^yO`?;-NxAiit&7Is{~(T}u&s8fjb3r;Nm*LpPyP$mK(ksZ0Tr5aJIzTJ8UUDw5S|5s%)kt$y#>Veeg= z?_dNy6!)p3LykFcN3&QV5(e!mb80+&=kMLEpizlrqNnMM0-cIVs zF{emVG>^wy?qm2{D36{sK@v5BQ<{+P;(jE@#;(YigVn|rRT(ebh%j?9CZ@PLaB0ro zF`h!BQ}ixGmWU!5iyHm4x)3bbOIv{}9_#Fs`cNqy2{|aFYEOksRl=0{2`lyvqOpCz zjXHO-c;xVRAiX{=p6ua>=!FO!qf|9Wr)j^oGqjmInekD_e7KJu?742+h$&(DMpZuD zTM~N>RjxI47mnz#Ec77lePqV*cJ>6m99+D6O+O5$W~X}pRx)0}jkUKDR%I&(m&MU5 z%5O{QtTb7&d2f{Vq|0n!_dSCMx7J=Klak~j%}+-0IhY2uy2vUp@w|ZzKRiCovK^uD z{QUa{1wt>Nk7;?0tCxWn%yb^EDO5e>^Ds>9P_W8A9sGLetp(AA*@hOSHOS=Sx^g<( zvzpylsi+(kvoWrUybetvOKQfU17BaGR^7s+&d~xPN$bUN4lYcd%S@_1(M_9NzjMMMO1 z=0(fF&*oY#iW6NS`Zkv}9j@mJ+i*fk2Er{z7RzYPmY)ehP$4KLGeV;TcDb|0 z9<8L9(@U(Gh;@f`ymVe%70c-88e7~~J)m0(Ge#T!`dBgW_LMq3xX*OkQfb@^Yz8+} zX~XKX{I2I#t`oEQwVZQPuMvFBll`X;4f!{!jK8B`i%)R`T#|RKfsb27S9FgJV`@{4 zoa7qIv@Ka`I5gR-V^sD#a=xu$S^KyoZ7j2Q;;;^1CNn@E6R_7S`yLA!`Sq13*YvKB!aq2JwoD^K zj?&xr#V8H?YMm1nxu~Dvk&YGe#$ZHMT!G4^k3#m6G@)YGHKBrk^hlXo{!W!w=Orj$ zPW2nQ+{*M-Wmbi?LM@OID)0Ru3pI z&8d=YmS9cuD3ySz^irlZdnyy_8XY3o$1CXwvm2sU8B)QhBrUO0n%Xz<>&AkRc}M!x zm`-VED@H#RQ>Il;rC6LQ|EWwn+KJgCEfZyELYN{CaVWH?4RIf=L!_A|$=fS_9L}Ms zx0NZ)Zxhy;Wi{=OjRN;#lo1@*32tAX00x)BXH<}QKU zlWsUJPU3`7!)dYdXJ&1{N{r$?Ft^*C0{=pE z9^NE3^mV@JCcU#>R5EGU$_&VkjvtS*1TGpCw4}@B*}@x6n)qSd^s<1nch>V^ze@jj z?3wq9s>jUtxL3`ot^N9V6e>IwjhWT7N0i(iT0l>+Ho5c1Ur;tJ7PYWOSvuNU?d|Gt zm)vBtaZ5v2&yPIbn{MUI)`cE^>%vN1$R}q3{cT#^V*{erW`h%})TZeI)Yh7)VIk!| zEt={2e5ode?J)qljJgsfRy8V2{=zQycsebOY5iyJJO|dUvIM_zSN6U~)^}s><%^4~ z_LX#Z&iiYu2j8-j4gz+E&51<8m)$*^7O{2&X3TtfYf4{ghCZxK~=BNRsFS%DE^~W5RK^2XUjGzUj21@m(nxL_T-8~`REvv{v z?#AgI*DUAY>z9R+i_Z!D7Ohw%a2;v;0fZeJ1EiQE&`}1wnfGFw1<@8qrqmM2v(UBV zTR#)D_NE&QvkzO#a)`dd3e7^de}DSI)`U*1cs?4cMY7ofi_0W;LE;{xbg5kK5V6s5 z28*h~8VTEXvXNfLvf4) zIQgcn`370V&WzR3nmV`4J_u{I(n?r2T069}&53TSMR8%JP~vPHV`>+hX?xj(6su0d zMLelHCAzcS6R0>OCY%U^nLXPayQ`V>G!r$Nv)y-6Go8fc+SXm7GSuGOKV`?2k|o2M!Z!R`CX?5^OibDqV4xUVFCn56b2%m>e%yo8$6mLGULzdP8_QuGEvIHA&3R%muq7(i(op8Sog616f0{Krs>L0aOp57 zYXH`l9b|{HhKd0SMNc$ZF@@D<9O(5g#Q7E+9O2FNyP(@t+Q%zB4hqN1AWj~Y40SKq z=hlY|F1TVGnD_F#BTTAWsJX%&4ZOIpE6Ip(5Cb{hoM6Mqp{r?q!$K==xQ|!yTG;?L zPwzH5bRM-rGQF7iIdA$DC#GvrV{53?t!RbSnLvht&ww-}n5KzVWUdE8SMODVr~3gn ztQ90@*YGNP|1?6amS-GmTu?hMRKTBSGT}ridRGG%GUqgmCi4pWwbf6QJg9ff}?Dq$=+GyU*cQ0T0~xi= z$`6?Hj*WX558ZQS;3UJK@>mIDrpilQmHC`kC&cNK!6~Rao!e5qQa4*Rp^SWXab0EL zsC(`SS+5jk{@)l03FS(+-^gQ&r|G>KzbkR-IWgvl9@Y@G-w_Qun= zFZ~n_yX3z$P3FA<9L;BTiStc=u2)GKCwhF4)L7l&uCf48V|V(R(&6`?>n5-h&KZHDsN>D}E;o6S9eVi&R)7;jeB z#+62d<=S0)VR%NPMp|zB;o+{I>mM$ChMhqy~aulsQcAod?TH#%* zT>ySG+9fT7K9XB>B}-6-Yco_eyc%(jFBeyfhhp%(7ulNXVH z*TJ4YkiM8LVqPxTvj@y1-)QGaa{>sfjjSg}!4VyXqw0{Jviq1ym&RHpKG@!h5fN~i z)4X?nsy0QtAfxx6mzAuOf5u>`2+lr41f-Ro57OtN2zBWCr?xC%J;CFJwUa9l*ft_; zu%s{tlrVcCV$4-!4~5$;mRZl`)e!SNFjcx62CqlE4%JaF;oGRNGw^vk!T~OSoESC} zP(F&`s@V_V4YhJFO?k9({X(b^+>{6P4D)!VU_5GSAg~!deRQQ6bM%Sxm=8|wV1hN; z@dlh=2Yjm+K06!_IXCegb?=7i(f^Fu@tKpPH#L$jR>UbK~c3+ zmJa0*YW~z+F6Xpyy8W|(edO)EEUk|hB950HAiI5+t>+ekA1(T<>d~Au%L=oC3De`Ln| z_bF4s($v_LjIAAGeUS2>95lDvk@o zvK)WR}p$7aCA_jP2@_ZcU>BbH%n;>>qzC8$nPtTGz(J_QKJbH z*4ZR@pb+N*;OWpJC5a4JF+}C2v&p!SwC+i;M-jH>uGa$RHE8@BHo7Fe1&NX}w{D3v za7QT(`*MI~nbKHnHQ$#uku?5DujKMFdS#)5tuwjG!@v7uZ5Vvl`I33Q1S@p{9=H4l zh-RODkFqxkAw0|Hy-1M3CGAlSn9(Mi&?)dp^gL{iZFf+b}$0Nb+g-sIJpBa&8CE;&t))cWVatFr3VFoC;R{ z0rzJJH8znmG$Xk-V~i#-k3l~hmtSHAHjGg(iiwlp!gRMxorA_Tk4K=)h|Rg$?5^M@ zHPeTPWem}mcK)>qk@AE@z4#3e-EVlX{coBO{{tTXZ}uxWVd{JK3vu-8qR7!mMoUN< z22{e5QW6o9Lupr_2$(2PBASYDad0F(q#Ad_X&G`Gn#6)M&f^C@G~sL zyE7nFyqMw-R1OCqV*blN!R>wJ(OX;k~;kiVJJ z2khocJXS*^KKuJ@8Nfy>!=_b`n_oLEpy;2UA5#XoK6ds8I~2gdC7xLcQO3}r!0t0% z-OBl0ow8MT#~g?pqq(MH{o1Mqoe`cXFqgKDn?_en2!!kIJ^il(Il(YAm08wI5gyZ7 z7-jYDmKo8JHiV6^$tS-}s}5!8?*rPO)HQO=+mz6Kk_|U4g<_D*n#7@*%pVCTx_CwE z+1!660M%El(ZDP4{kg<5Ty`!ArcUpQD6W#xQ^Ox5qVoUouQ);cxg|XQjT4D)ocynv zRsY0^%D30pe`gWxe;6%|el^l=xoN_n#zmq<{IrvHIH;sRh>J^Ou@VwCib7bp%7@i- z%eS?ojH3S-UKux}FF8cy3DzaM8Y-=Eyf?EKKnKkF0h4usBG*Kqm=L`(~D zOsg{RH&7%fC#;lnD}1Aipjd-Da*)8?vKf`!;a3SgEFDiR zkNN##f|x+oD{LbnOMnK}WY*Bm)+z4=ngPgoM$=ygjG;R`9k4)I$eR{#^>wqP(^Y7= z@9oF;ZQ3r%RSe*h0!QZBn`Lb1vroQkcX$BF3-~zJ|MCoo{yG&kxH}(5*fNIZX!>OM zCD6}&qmb|$NR&5c-xtA^JgK!Q810h;9(2T0v&8>X0Ia1l&4BaIHvTB>vfKr5L9-+H z1-CbPiH6!=nz|sOl=KCG=`6mD^Vf8QsAj*uSGRC#)BYvcgBbWj zOv4hd>Yt73U%>;VFsRnXClpwSl^Ij}xJMf@H`t9i%(OIScTi@HOkk}H-`nlyzqxaT zkJ+7We;@&(v@| zc4;%$yDaQ4;IG1132`+=7We#<9?FxySAXY6$SI``r4F?VM637^EPOp6bJ6=)$X3HC113hY|5$TEt|9+)KogP&!llCQ$F{}5*KSg zX^OEQ-BD1_eYoB#*u{XAGAIT&lB2j8u`suP4WL}Bp=gh9){<%WI>fQ$0s#srJWK-R;_MLPW9nBj*FSs&7S{z|R*o^JAmg%&$>nuYvDYi-2 zuXOF5gq<2|`VRB+UVexuaD(p17*fH?f~bO)W(Lyx^ojyL{PuC)donZG&aD3)WO?`8 zcl+=Bo&J+J!~cr;OEz#K8W9$XlD$S~Jvw_#g28iIZI59@6c>qcPYkW*cn=$Dh3P~Q zs&?<=VzUjOy)Fi4%Y#;re2iquJJ!R)CW4(#=S+l)Cb-+Py61|KY@@4 zT#Qk!Q5-j;r*OAJJw6$nH|h6)a^x9~h>`iI_KfX#!a_;1Oy&ped~kCOq~r#Y!oFv# zIhw>tWjXlLJ|&Y3?#Yi)afoX8QEKx-_Qk}d_<5EYb!CWXnN%I6}f zK72@N9W=|jWE5(N2{`A*<3kNKw_%T20g+l`D-y@gt1836T9z9sFZ>2R7guo}V{j>O zp`NRcZ;F>4k*KY$zKL_vfcn1qGAPZ*vD`;106srXB&B7}BPG&gqQoVML5>#VDk%Z0 zYHY@XG8t(;l=x{h2NG;MzZe|W6?X~Wo zY_j=_=uM=m%nUrM;&0b=@v`De_|bEzwhr9sk|TPTg>|+9T*S5sVI>LTqV0(@b|Ux2{DUXFuN6`8bHW~UBld8hZ~vv zLUJcw!2Bo=)L)vzcE(<4bB=`bMO3<(?TVI!oJ`;0OHJN$!1PB(zJ8fQmJn&rCjrFY z!vkrkVSrQ(Nzbg-7_SeIQ`Gv97F=-9Lu~_(J`a2}@TS^Vr9sZtfypVxzwH z{Z*m`Zxpd+4lI%A$6Q{(G|P5L)TvFzj!USxv@r_aMH{#jYobn7a(80YstKCqDFnkHGf2xYmJ`MC0gkV^EPZR`6 zug|(i2a6}CG0NGNCUy6%6pEC)kyGF)p39Vsvy0A|jJ~tA7YS0!b|n092(_hlTp?-@ zca{JaLB>)*UPL;dAc0oJq!BI`AZE5=N@>?&7KdWk@xiiNX)bE1imXj{PE4`^zq->m zh;&e_9jEd#izzmGMVLm~()Qw}AtxB9kc-NQZvxcj=9kwKa>cQw+d(>Wu-pjMzrr@c zg;v27^EKu@0JmZ>($7q?>&vpZ&GlUSLeP!?-*%!rs zQ`N5;q$uj%swnT{tVV_>Wwhk5l4>v$HQGlW4>Pm9J;Y0|+|FO{f_}Cu^ve@Ko)#{d zWq@T+e<&m37sNt8ES#2LSp=ZqFbe291wf_lGi6l1oVTEDLWK@@ZYjry8tdavSAQ-b zuE-cwmnKj)RTQgM^CPT~3?(8y|IPiy5^lOs#g-vPKdf?*T;tRoOCthDn%cT1xKTil8J=K6p~GIh~*)9MQ#7cWV`*bLc&nh zoFz_{2Kamt@dRWCQa#};mSz03fezehfcv3CO)oD* z?N0olSFcDfPlofVKo;$^cwIek&OPMZryI`P6H!6+2h9m_(1z2k_w>y7^!@?tdC8n( z-@;j0Vksi#Pg;5}+{})w=xJQKv=Org@BEVj+?Ke#NXxsfw%d;c+zuW=GMnOnD4l_w z4U4h8VosZHGX!#D5LHehbvPN&taBP*9|G3#^*gvd6hQ`30f??0M+7m*aN zEk&+RakkfPahI!N=mP2vXEq9_9NS)q`=h%Dv(*5?PL$rRaJ(~nd=FmgLpRJAnJb1c zxKnbFcgT}o?tss0hM*MV`r{$O=NEn$d63!b#KbRs!MLS3+29|gBF3ad4@U;8Wh6#J zd#KaRm7S?M-&D3z;|Q8)#GNSXxDgzMELIDSz`2pFOR5j21QjTFIk&dW3n z^R4%Q{^JMnf2v*nU*Qt1ZYiL%g!W0tJPDha3Q8t`oN^gX6CkNj7!)?ZAPG6Bl=3rN zieL~V2WxwGGBapZO*?gcs>MydNwtv8N)g2Zigl@N#OirnG zW5(?Z?-aH!(*U$;mb~DDgDI>80)QQ$}LU6>h2RcmlTk4l-X-V0KdIcjB#gTn{{bW`b`z0U+aplaX{?BpCATw+$$@kX5#pwswHl7I)VbR`zCh_oly{8(dZ!>(&`QpVw;s%Gte3 zJL_b-P&(z;s@;T3r_U|vNL#11$Z0n)IEu=wli5}jB~VGSSd~zq8Qh&0?>)!M8E*c% z?y}_y*_6%6=b;!Sfs z@2QsSl#C}gf9u4)`8I*cMd9tR6@g1+ zjrmH^=d?XSeGz3@UYkV)ONX&VFR-le;&ey0XPt5|SxeU0OKSrbTezz!+N~Zne_3x| zW?n~|Ik>GV^g1-O8`QeDfo>5)Ljm@tl2wCPbW3$_p$rym_=@~&E0NTj@K`rzfl~7c zkUfdsR{5KSF2=3Okx2&z9uCxbnW>F_$o9@ca^!7{Vlg$vO-^CvZoKM8)nQmESm;C2 zzqoU+LN4nYW$7S$dRC>PWtwp$bJ)x>z6$pU5Y2>8Af`cN##!i+dX2+G9esi6+$i-H zG?8^>lrWk0YzzXR>d_{V`tRRvJd!-ghL|AjHvkDwWc;eSGT~7$IMk&4} z`zZ-lmN|4bD2_3EJEa!uwD3X+x0jJzV}68Vt+kMDCec{Vkh5%8iy z9rfncY44Fi#^AnBGGaM0n@xNbv?Ws73_K{`6AYKgTjVVS*td1fzp9Y(Er~>9%C_F-plRJL+WoDOX|EIRIfT}9{ z8aN;z5+bFP0!m5?NGshSAgwfyhDW1_BB_K*mr~NAG$N(a-AE}2NQiWU65n|) zo^~uf*NCuvH{MxP=B_q>hN?Ly`&qBk^?%5us7T3+0NV}~@s@@9YFVX=sI^V!H+r?6 z7`dC$Qp%Z*654i$2ox2pnu{z@afIO;cUoiGwOfCYYB5i@J>IiHLA;T9;YAx$Z0o}T z{S?o_5hQUS6!E{O2Et$=w0?|l>vG4e3YCE?z;F?N0G@ak%yi+yiX6hiYbQL3K z)J$lyL>?VgQH7G2J4r?Khzsp(B+>k`1e5Zj{q(% zt0zRxbweJS&@N{|dfuomf`D9}!!+pxF?)OI>nlAkVAhka`)KdxXC7WU-M>9q&Xl5~`G&_hz5%#Sj? zy<(fYk{NP+b51xC2gA(D7Hz91Kbw?EQ~+MJ`# zItk=BFd@`^d6{qVZEPh5|%q{pDcfE5p*Ei-z-mWLYY@P&6FQ?@*-`TNH zySG-^Z%}?iQOD(4nN~`?cYB$sQ-Z7?pIB@s^mqeK`(5%(nr#<{Zr%(11wlf!-(Zop+U^*sktBc zEZR?Z`iYfyEMgOHB$UjA*S1>@n#n#R-ZR{Mvq-pm8N)+f#ajn!b2HK}a7!<0RnJdo zAcL6(FnH-HbJ3FJlUt7l#qg$4CMFH zOBYd=<%9!GSs&3nPC6=g1zj#)2zSHuR%4j_9D`KIZ66uat{0{P)b$!@G}W)e-|NfO zPnZ|n&8!on1L9)Cl^q*hJGz3{CR2l_Ua8ilVW%$K>_U7&@X1#IF}56yV~DT*)16Mb~m`a4KO($ty$#d}r8C#fHRH84}g?wyG^#Yeo%KLW9`#zrKUndLX zU$3#8=8HTX^VEt}6vdX#r zlym$9kyfV&<4MZ;rfg#^o`>)7=!mo&QOJ_DZjnAzdH(p}TVuMetE;;fgd?=B?k?xI zC>3flCR8vV2}Sl#+kYJi$Blo>|3IPSDg9%gtl3U+EzL;d98&3}$<tHvu7W($?h{&w#E zV&S7qk43g*ylrSzTqs+5Uxndhpy|z>z7fY(&guIoY^E=4oG^hR9rvWx*SoigDWv!U zrmN_!pFb`C#6bI)(CnoYArFpgFmGs7FN=IvM=bx`J;UM$Ei55txiTfPV+2w+Mt6?A zuVJ)DvOO}gfoKpVX{$JMGtuwU2%J>?9?Zhl=o7$xl7SX1Ja={ zS!j5uBRR_=jbCedTIUgN8IfrCzgrC8>2H9Zy6>pW6p$`wc&T9RNQ=85ks-~c8f}64 zvok5yy;~nzR{axt?!BlBZ42AIFS(BEPF(y1RTY)FLUoKEN;ySk(#LlpKr!eGTD$M3 zj3<*}&T3=sZY9TXBq4+{7@N^W2{=> z;WJ6!#ZjTrdS9c*6W7_+&JzlSzKk3p(%2y0Od;t>-#rRHl{r={xwHz_0m#7-Tcm3N z8io!QhDO%^+PIpkt_!75KOsD`Y5d7Htk*vDq9QfA+-Ybx2DXjG^={go#2&oVi^r&M zXuYSnb?#Q5P7d>O9oNF$8&mQb_>yO{d*tq?3oRy};BxJws2|pPrW{`4YHQjS<7hTN znc$JIhcRN~9$7f4UKyLJE|ES@nTDzPG^Ozm*)-3EoY-6RVvJ6 z?@uW-JFO7P#dyv26rOgh?*J2guGh+e`=;F&p-x^9}>4E)lc zo26E7;)%s8*qT2YzUm;ZW~#Yb7dan2`|X}evF%H`=al+#?4!A~gtW!m`BG_q8Prnp zP{O5fy%)n{*EqKp^mYg*xx}CL3YvOzXA3{vDH0(u z715LDi)hm$EU3*MF+D_;quk5%BFVtc&gH+yk8!R17SSokvH%m&xHk?^v zd!3Kv)jsK@_0m#GRQON;)anH zTFtz3xu|)$;1yhgJYyxPwE1re7%Diy8dr^VB?@$F%w=mEt*I{1OSY&hjK&%~UUEQt z$$deKUc%q3Tl(c~lQj&&gv;L78+QF0P?fUE3AZzA+3JebjTA1#4A%OmqmJSlnLtJA z6cvmfuuWbhxn2C|`dTA|aPZt4(qOBqqec>GlvQ=LhAM9v_3q-ITVf`Yn;#oDSk_Ex zjPf!WimEu#Ko23ZrY|0d$0jNjzhKGdFEErVOO*ef!HMRCz-g>^Vpb3EdcP`~zkvD< ztD10Zy$>E|^kCf{&u4e?&)G!5vHVi_+4y{|qlB4|^i}C8M!K|B!LJ@W!ir1yK3|O! zx>60|Bi&O~b|tpl%TV=CO&@8=%CxAg&z2UdmS1h`54#I}Scr0&;A4Bu22RCm{bMt{ zW81fBb9`Kv;@cl@-29~NOw}~27;XF3a>R*;_L|)UelE9DcVC= zPJ9=NlcEP!jI_av^bD$@g9Fr6-x^}-#Aat}hN_L4w(GB~B#nnnjtwRv@ML8qRKXXl zsi2&|09meWWvZLWIB{&B#iKs_``&Z}070K0tlUkf zyAi03A}gsRku7H61z*c!>s*2uf$Y%*FC+LXsDl~1sf8(o-PwZO5JZkM1}9#?X#@!S z-&y2fVP^h!9_gY!{r}6Og@5N!4K7ynMBaO=P$G%}%yI2= zxSWW(xBGT!;f;sqCU5nEhsgFR`t^IG%~3gSI@*>DIf`YFHnak=loQ!x8J~HzmZ0c6 zr)V~2HlV@G9@V-i4(q%3ZsiG3d^Y2F9OxY=s;U|=x|Y?4TMYeBVRx%dnBoTMi6gk! zMXYyE&K@1y#>&u+8`pZ(;jxCUyds)t<;-bh=re_Zf;IJ)cgXsA$FK9L<5IsgE%@K( z!7G3)pMDH!2fMUD)56vS>dI#40JVd~_JugEG`q^OD!H)8x3tJAG|3jNHEYVCViQA7 zhMP=IG0|4h-Y7vR#yq%WAA|wZ7`(9WFMZ_aY<)uqB=`qRJRDq{s3B65*ak{xqYF`R z=)4=bbA33qBJyao7%`sq61T|unBS9GbU;N&ms$uKCoK2}*CEqo0zs0lHKo=Td38Iq z00?oaDSgCbDsy=1$<*3#a?%vKbOySUOaDp^w|=%4EIF|EFlK@{B1=xQW`oRgHIP#$ zAt!0g>R{<0n_@~aIeBV)3W65#Z|jIwF=4QQq_7_{Ii|>R&6!1!tyNzA@8taDIQuDq z+(dMrc^b*9JRlK*hfIjMGg7;>$g^q4wE6=#k||oCjloR8j#7U)bsyj z3_WBrW%*w|JJAJUf<@VbHH?QzjHMxx#5`aslHo2y3AM1mx@G_~MNrO(7<;!HI) z#mqDya6DmQ+1QMMkUOz7yUVZ=1Ur^_m=sw-k)}wIlZV%zN%4YQf!cj0#f#i%_Jpho zqLkexT+|k}p)LPP&j0Exw$@0J^WRl(X2WZGSOI1|q&4i2;z3AWjfQ3g^#(asHWish zb~ack;x1%q$QqwOL&%qtM%%CVOR)$@&7U>`c24?Ys>p01-`dRBs`$6({#Cujddq%t z_YH3u^V$~TU{7V?If{^^J*KWfSd!EaX&eV+6$`9g;#5ElsY|2os*yo$k;MqJFz7;K zF~l;ZxZ6lfyTq->hLE0+kF`=T*M;q{JdEo)A+2$PU^N`i(NMoSzX5*#5`XNHOh{uY z9X3-YwP2r$zBH!a8bgbAnI76!C|x!IUFDVq-Gskn zCN8Rf%uPDCJJ~eYkUF|@=5uidY(^(_c?U7(%_2R|o(BKwbrjBsewkwTYOZ8guduv=W}MHxepo&Q!&7CQ z>ND+UI|MJp)uQS2hlLOAW_N{N;ErsW#hKm+Ni3eOwF2AjPH1Ts_2L zrIEUNTRF^zmEEb|s@jJ5)$wv_ZL_Tf6k!!qjf>AdXE&on-;4c}La@~res?V$+DUpm zD32UZLznD{HRq!db`FnNkw+4p=(r_y83~NWSFj7waQmHK2A$eEJ5HH8LON@TKI83& zb(v)Ltz>*oS8E;*;k&EeSJ2~8`yMq`KU(GVU+}9DJ@-|1srlXzAGhsR(4^Yv5iXSv zDUXm*_uA2h{O~z9R@8Xa<4@!b->717FQ< z&y)2YcX82aB?v+=r-M%%^H=HO@Z*-bH}ZMZuZvSw6oZ(w^)n#@o}7Y%4~GD~+&!li z_q{s71;@6Egj?+;8}1)T$%INoYsD~7-s0J?I)Cy=+k>iv?tq=HP8}Ylli0mSkG!q< ziaPV6%R?|dIWq4OO3n7IfHy}`aEeh;YOzpgdQdo)p&DBlC`SH`tXXa-BK4oM(@axd zq}5rB&rFQXPvfFYo+h!lU%xQ*Xt20BkLP_U_sIkv6{wBVNKweyhr-jYr?<$^p_Y3F zU8nNLmNQrt2<%;^jP8$}G>LYPi@P;QdA+FOj*Cl4pQ>bVRYFpf+4jrrMeSxT6OoU% zMtMUxP2TcDqQlr8Dc;n;(SC-*A<~b9Wg~j_@s`;LCq`XNLZSvWrNeh&pAyW4)pa*6c z=3PGbMWx;T4Cnif##5XFCrbPW_-^tEQ{P^=CXI`N8=dr8Xq|q5+=1n`R1`Y;`Q*eW ztY4d&J}3>0AAgdC`N8tx$=VBTbTdV&Z8YO=cZCVd=5fxv!4BvMpGjJX3b!)5d_+(y zzgU|=HvXf#_xai9B(fa>dEFmcVqNbhn30f-U$V_5eB142+mxR<*?bBMg^%N2UAfTM z>d?R?tUW*a_c52%`!7Mq#)3GpA$E>W_rjZ^41ymXH?w1MrF8vlzdP{(1Vh{rKYGQr zqs*-Li77M*?d?Ff(nfN}YDQEv+VjS#Qk{yL2O>V|;hA-F-||AY1Td^Zt_B}DJ5XMD zN7p*;)?L@+&rD3_oP&YcJ~v~<6}-k9)AaP;2#1MU8c1qYMV<2IIVp;7oapb%7ocz} zk6^b3lUwMG-WK$0cDGU!!TRC@N~2Zga{9xq10^i;dQy)8~%3^&lR{? zLh6>3{Vy^?`TU{F*r=QCgouDqgKzOli&2T__n{%1GYyJL$!J4wup7#B3 zZS#8C!ZbOSZu4}C$L|N6MfHg(fGCyRD?i~VxADw%emj-#R&O{oR)2C+hF`dUyK7rC zcaIs}zT6;akF-1RqnD`|9;eU?ic_Hu3vG4rT(WUCS~irDn*)`*LR;^H@IUfMm^pq} zB79VuQDoxg_tLJIGIuQV{K}ZS$$3Y7!4;CnjzUc@IJS%1$_dcN78rcH)X8*})(_)0+>veLG7WHLj4V?6$7(*fmu8_^aD=&q+dC+i@jd zu*E*DzOGuoVEwWIpEo~l-P`2pu_ZZIUu}Gnpg5OX3a>Y=@D>ZUDBrX$t?*WSb3c=A zb76Cushw3O$G6$x#aRYSDUz~tRl@7q8?5-JBFGofPgYmczo2x(XMHJOpUOt!;Z|Vj zOq}0uG?v4Ars#+-ZJ$BnR_M)yqfqDJFQ#IFbvVtBD=bMw(r@Tz#0spsNS^FrmrW%z z7!JT7Q4r4R4DF)X=CC{|wqYWPr?dX_=)$^n?_<;9#(t?m3HQDt^PRxffv;SqB>Y3C zC3`kQqI%Tr6B3&XcsN%?`Sdx&scUHYIU31T62t0^o|(^YsMEV2Fk%e<(pFduR0 ze07wa0&{}g?ryHSh799sK4zmAxv0>JSgZE)3M|dk8z)JbHLndaPt?muyosAi8(d%* zxI|Gu_oc?GI+Z|yW%%SX?6oS9YucB6M?L%~O*}T8>{&{OoGMF&3hI|!@k^pa6;DyJ z=0ltx@{|N+o!oMt-@aAu6pOK2CCiyxy&G4rr}=ENS{|yWo)(I(?;M~q98&UxI$}#H zx#P^#(=2HdzT+SjGx+{ zjTiswCXUdf@}f(78S_g!quo;s;}ts;Zp}VehB2JY#cbSch1Rdcu3e;Ns171hTQgQH ze%)#P%*Js1J?m+RD1Dxr$Yzoy;CO z;SIJfnYF0VhuX^Xh&MTCuKm-<~%vxLAaw2uP zJb8zc%9huRnb;&tZkHt1ja-%pd670ji}5Ahp2Q|LO?HBhv@}D|XAjGvJyfW0gfsXR zRs*&!6neu*tqBXe_A1()SdlH#MQrzqICAtF!P%92q+2Rk87yJTFSH!>1kr7$IwJ0= zDu=R7k-vUbfo4=_Je%eRu4j=}7mR6+_*jY7Yk^1scUiZ({@htWiyK<~( zuzlzT=#$kPzfcDobzG5^cX-($r@j<27Sdoi-6_O-yI93__gw;W4axh?SB3$dZ;ytD z_MO>$ubxgZZ9m@47qEj?VeBI(o7$9m)~IX@$N0$n^K*3s7qYe9SKoi|@wuWykpn}% z`Xy-jTKEs)3w$#0P;7I*EiuxeUU_%Wbe$@qO#`fpsF~u4? z3Yz+HFUFP=ht5|Tpr|E@g8}P@%Hc>QE zHQ{k@P`eSAeazzuYZrgJ4{oO6Je?yE?PfO`C^B{1tCybfCEk5#P zO156OPJC&AEOhqSl${rqL=J;`Q3YOTFyB&-%BfIN<&m4zwM0(ajmyh-7X0qiJ85d_ zCW(#|2AAf(Iu_5tFBQBL;jdyO8IGT>^m5lJA)nvbymHTeUV9I%t$j$J@=|GKUKeYV zE3w0-3QHM!#n!ZD>43KE4(qH!a$8Ek62YBsdMe&Du8OHwon^*PX4~MV(rP=8A>Ack_ar4A$@+y z{-&DPCPt_0c8sqEUK2WmS}j@yrAICBT~@~LrlJ!#HwIx77`^DLLApVxue!9pT6XM; z&&Rc!Hc-Ia+loeHk1t{>!sl3QkI@$5H>^rM?)Q}=|N3Q7Gqr>2`XTDTk+PrE;) zXdvuc>2rOX>tGMDgIj0cIcEer~MHBStAP%uQB zOzRO#eOm3Cew}MZ=2@uJmR{S-wsq zmcq}T^0Qy2dt^TJfzBUe=(uFvu8J|`VEAODQsl79tson>8EmcK8V`d@3CzCyslNIw!X~q4ehT%n{AFnrSP}lHtCtt!dMx%T>JWA*dCA zPUdGpUfw3gqu^{Xb!tn;+oc*ZhIakv$-J1G>$=VT-0RcisB;CD-#VST@+&PjGyTnO90iOT38oa2`g)kqpq9f7YW)wuj(ZhYuCTOA6f(RGQYCX?7fd`qx*i z5g<{pL?+EeClu20h0dUdBfEJe7?)`ZDLE zfQMR3n@qh4<7JB*r6_&6g4}*0x9%`g%1bHxVzfr(5k=O8_Jx|bq<9-fU`^g;9s7to z%URy>jvmJbU7W^Bs&|TN=QPcw(-l!N7mSN#ue5xftVrQ;h`i*k=bd_MqdB27HstH+ zd&{-yb~~M#>z{K`_kulxJV6s1=s4q2N-xpgXsKrLav<(u;R6Fvd#0rm&3?T_malbU zUY20WB-e)dFndRq4n!R3k)JO+bCa~RIp>HIr>Vj_rovHP?!?;J!kVHunJ72>7$fUUI`JMp<=Hu zVA@ps?DnbklsS8kiyya$9KVTGqhZyP^JP4bv+3tiASp!AD;iB=wpkA8p&_QH`cDii zqOL=R`Yttm!+Z<&iQ`CnLZYk zrF~vOxJ1Im>#{yy>8IGV0`^bO(BgIJj>p~1jf=tHM_1Rw$nSgkO>t(HGCt0SqANi( z()EZogPhLmF$_Pg$YKX+w&f_Xw5{qd_by&h3@gmI(WZBnkrJ)&232>Y@W2!e1H*1G zw<|8RDTUMbZY7ocqng??ZngxKlUOL!M}k%rxQ&dA>gwvS(5uGB$9sBuz{ON8EiJRN zvtPb^dH0TF(POuLkK1@MNo=oXHpg%tf6ZYDzi`7DGiY|maMuWvoc@U&6DLzlC}eEM zgI8zpivba8MsgfInWBfOeFl+#kf(nJgCeH|KVB9JQ@ScE_1eWoqMG}14rob>qe_W4 z1TwKOX@sV25^0-`WB7D$U1fA%J{$8!lqQ7M>&rIu^-Dibx7264o3KO4sA$ATz|ub! z7D_XknM$&md5KB?RP{Nk_Gb!0!o z-RJzJAsv{N`*Ai7*)Pf9eyM`+OSt8HL^1l7uVUiBZm%tHconuXwg04e1|Sn7YUJqT zU}y|3h~1wS{QE>JqWIp9k0W%zl6b(1u$yW3pA=6QaLeeA`oX30-{O@Wpe`0B5C>Xu zLq`bgmQh0c#Vjk>fWW+ zIH0Ep&z8c`0;z>vH=MWhSM-VjirlhTt!#@`ZBPzvobgMQ9C?yW|_lUyruATaG zo|=UX#6i^fAc`g;&i28Laa&-&Y*0w0;c!yqhrmIh)?$VZVqo0>88iUG4haF!NdT3D zgOX7l8Y%^K0Nb5Rka4}ao;Z1c8gQ5c1qHTXw*RDf64L%L_vh}S->gEc3$o7?I6i## zjf0ikUze{R9A6n~=WO@)b`@G!&=F)B4U@9OmICjD#k+yWC4y}Re~goWy4oVcePS`T zECDzx z)9wqf?VoGsXl!T)cbz6;;o~D)(EoYvVM!bUCO>cQNT zUH%X_Ww2xNze+@$jL+>i0D1LaKBKI7NTj+QG95o(#-xVb_?iY9aS=Ej?Z5@Ff9#}x zRW=HsRr+~#hF>ddy#q4P5wu2Pa5O>CefeXWDs0;%GVR(w8#Tj`dTU-lZHDFPkgJ106GzfV(uLajt?O{5?YYjJQFq8S9a zis%Lvxx_%dZs79Da4M2}{XX=sh;m@Rume~q{^9n;t4@XvNDF|3wi^)!pc8@KxELJ$ ziSHlLA+}C`_aTsLTNqzJ-Umz^1F92H48A`po~ZtRz&q%&Ajb`>1Y1o4^#sA7R{T2* z=0ChazmJ2(*@F2G)D~!o9GG~tmX8I5oL2+2F>LeL{*&T)C-}F4KQG$m@vpIzfazM$ z5r-dZ*}pAX(gmnMt9H{4@^i>A8u7$SP=7E22yD0H{sSt+yg!5dT)xN^bBY&0C?;UQ zcZuT*ep^2BET|Qedvy`mi2;;i_#tO};cp|ZI^Bewtg?0b9%2o#YC1{v!e$a+gn=i+ z_WSNXDW1&5NHAiCjuyuMHEd6a_xD`EQ98hge&yLTtf2z^^K7+P1FfJ&@{m!1(a~bFuxm5U{*egqlG93DJdUbq3jc zlH0&{Du8_W`4Zo*-;%#Sk@0i)Y`=;Btq5eOCa@B`g*tlvNIb~qUz9M;f>AymFex#4 z7STfeAASp=rKkXEd&ghp!0Ez%MJphm8Vqe=n|b#i;5)NOjs-V?^H`JMJq!eq28EE%y&Hme!3NY65(n0FS!3&?&rh7;c`-d;Y4Xv$>U|R}} ztqmO=5k2Yh$lM^TCrtvH2gZFPfp3cEbrjTJcQqw#?3`}O8t>l{f+%%zy{@<(NI4B8 z!zbDh4Vly%py{?Xv{qMDfV(RdQM{RLs;wR{`BN}i312a|9zh~r%Fywzc1vCM=eEFd z;R_7`A!v?~BBq)W8<|*V+rOrI{;S@Ro|v4i0&_16V50OAoT;}-kcd|RohN57CK81m zD?4BycTALXeRpF3qYAw64KO)1GM0s{l`6!VNz$)4J6T)ULS(>L#~L=? z0mEa^Z2e+{T#u37iwAu31}MAmbC{=Dkubh@FU8HF7RC@qid)8S*LV(unbs~L8k7qEq|3Ppe6!a!&B42I@K>H zRKAyY_@ekvhnRN11OBVrJ(-CkkOtZl8EO<1sqdP?DgX_&|DF1C_bsuOk%TQ|I08+T z;Ftymhi59mhJJt5dC06h)Kx{a0E$g5a4bbQwwCe##{MfKkf9el%&N`+wWEOA@cx_+ zIXwC=ENn4A*47mI3wz(p;a>cy&iv;81K0uL@}D|?NT+gb0Io%&_V+XypHeep$AjCXkSEndqXoMGd)J4z$!OxpaM*fcp z__@Ya?{)8h2?i7bpf&uU{mv64Kvk%-t%)ks$inuAGtfw8Fk8FdM!{yYT|t&!*>@Z8 zP4V=LI}Aqrrm;2T2Q<>UnEIp-Lp^|J12}x&%OL3x@Shu!>@uB03#bn&Kr;j1Np(*} z0=a4qZrlX3l|RfK{#?Fh+l}+EQQ0VX;YT3R8OY>=hC~{;{;yh$Fp~zf4p4hu0mB4t z_>9T?9kGf~XGaLqp%dc8?E8=u&y4KfApG1Kh!>h32(1OjWPaJaUPXSrDPn0vyvy={ z!U2}^eo5KCbL79q9f+5h9Egu>_zm$t+*$E+BO%^`aUj2_>Cfc#imM2tyw zAaHsdiNIe)s6rHv7_a6)Jj*l^@$k`W5QQQ}SUC{d{^dV~evh|;DD}s4>9BYp`%j9e z>nswfKQ<8u8;yQAU5m&;jQw%IS^0Agd?XM=6k<4!161JLAFHGf7u*98g&3;i07X9k z=P0YM2h$zHp7ze1fL!jVdV<4gs!(1Go43_>}E4ZK+ zh^SxZ)xsfAZ~-k4QHbFx4z#je{&TJ1f>$7-5aUrCpf(SKLWoX*NJ9)YaX<@P`E$kK z0#6{K5Ti&OpeR=V90eCs0uhB6A>sh_><}o#coB%SAN^2d9|gWCo}6oct{9-fg@r(* zAqIWe2c~!yAfq9MfIt+B7%1UDZ0|Y}B@Vj2|Ab9Il#6%@|3Gf%CK9=bXY!ThF~E2W T1;qvYBfyS=;&2QM!BGAW+4Wj^ literal 0 HcmV?d00001 diff --git a/nbproject/project.properties b/nbproject/project.properties index 450d76a..cef1491 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -31,6 +31,7 @@ dist.jar=${dist.dir}/SyMAT.jar dist.javadoc.dir=${dist.dir}/javadoc endorsed.classpath= excludes= +file.reference.autocomplete-2.5.4.jar=lib/autocomplete-2.5.4.jar file.reference.htmlcleaner-2.10.jar=lib/htmlcleaner-2.10.jar file.reference.iText-4.2.0-com.itextpdf.jar=lib/iText-4.2.0-com.itextpdf.jar file.reference.JavaPrettify-1.2.1.jar=lib/JavaPrettify-1.2.1.jar @@ -53,7 +54,8 @@ javac.classpath=\ ${file.reference.js-engine.jar}:\ ${file.reference.js.jar}:\ ${file.reference.jython-standalone-2.7-b3.jar}:\ - ${file.reference.rsyntaxtextarea-2.5.6.jar} + ${file.reference.rsyntaxtextarea-2.5.6.jar}:\ + ${file.reference.autocomplete-2.5.4.jar} # Space-separated list of extra javac options javac.compilerargs= javac.deprecation=false diff --git a/src/net/apocalypselabs/symat/CodeCompleter.java b/src/net/apocalypselabs/symat/CodeCompleter.java new file mode 100644 index 0000000..d27bed3 --- /dev/null +++ b/src/net/apocalypselabs/symat/CodeCompleter.java @@ -0,0 +1,97 @@ +/* + * Apocalypse Laboratories + * Open Source License + * + * Source code can be used for any purpose, as long as: + * - Compiled binaries are rebranded and trademarks are not + * visible by the end user at any time, except to give + * credit to Apocalypse Laboratories, such as by showing + * "Based on by Apocalypse Laboratories" or a + * similar notice; + * - You do not use the code for evil; + * - Rebranded compiled applications have significant + * differences in functionality; + * - and you provide your modified source code for download, + * under the terms of the GNU LGPL v3 or a comparable + * license. + * + * Compiled binaries cannot be redistributed or mirrored, + * unless: + * - You have written permission from Apocalypse Laboratories; + * - Downloads are not available from Apocalypse Laboratories, + * not even behind a paywall or other blocking mechanism; + * - or you have received a multi-computer license, in which + * case you should take measures to prevent unauthorized + * downloads, such as preventing download access from the + * Internet. + */ +package net.apocalypselabs.symat; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import org.fife.ui.autocomplete.BasicCompletion; +import org.fife.ui.autocomplete.Completion; +import org.fife.ui.autocomplete.CompletionProvider; +import org.fife.ui.autocomplete.DefaultCompletionProvider; +import org.fife.ui.autocomplete.FunctionCompletion; +import org.fife.ui.autocomplete.MarkupTagCompletion; +import org.fife.ui.autocomplete.ShorthandCompletion; +import org.fife.ui.autocomplete.VariableCompletion; + +/** + * + * @author Skylar + */ +public class CodeCompleter { + + private final CompletionProvider provider; + private final String lang; + + /** + * + * @param language Either js or py. + */ + public CodeCompleter(String language) { + lang = language; + provider = makeCompletions(); + } + + public CompletionProvider getProvider() { + return provider; + } + + private CompletionProvider makeCompletions() { + DefaultCompletionProvider provider = new DefaultCompletionProvider(); + try { + String[] files = {"functions", "constants"}; + for (String fileid : files) { + BufferedReader reader = new BufferedReader( + new InputStreamReader( + CodeEditor.class.getResourceAsStream("resources/" + lang + fileid + ".txt"))); + String line; + while ((line = reader.readLine()) != null) { + switch (fileid) { + case "functions": + String[] args = line.split("\\|"); + if (args.length == 2) { + provider.addCompletion(new BasicCompletion(provider, args[0], args[1])); + } else if (args.length == 3) { + provider.addCompletion(new BasicCompletion(provider, args[0], args[1], args[2])); + } else { + provider.addCompletion(new BasicCompletion(provider, args[0])); + } + break; + case "constants": + provider.addCompletion(new VariableCompletion(provider, line, "double")); + break; + } + } + } + } catch (IOException ex) { + Debug.printerr(ex.getMessage()); + } + return provider; + } + +} diff --git a/src/net/apocalypselabs/symat/CodeEditor.form b/src/net/apocalypselabs/symat/CodeEditor.form index bc535a4..c70c93c 100644 --- a/src/net/apocalypselabs/symat/CodeEditor.form +++ b/src/net/apocalypselabs/symat/CodeEditor.form @@ -108,17 +108,31 @@ - + - + - + - + + + + + + + + + + + + + + + @@ -130,6 +144,17 @@ + + + + + + + + + + + diff --git a/src/net/apocalypselabs/symat/CodeEditor.java b/src/net/apocalypselabs/symat/CodeEditor.java index 7d03766..5257503 100644 --- a/src/net/apocalypselabs/symat/CodeEditor.java +++ b/src/net/apocalypselabs/symat/CodeEditor.java @@ -40,12 +40,13 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; -import javax.swing.JComponent; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; +import org.fife.ui.autocomplete.AutoCompletion; +import org.fife.ui.autocomplete.CompletionProvider; import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea; import org.fife.ui.rsyntaxtextarea.SyntaxConstants; import org.fife.ui.rsyntaxtextarea.Theme; @@ -62,6 +63,11 @@ public class CodeEditor extends javax.swing.JInternalFrame { private RSyntaxTextArea codeBox = new RSyntaxTextArea(); private RTextScrollPane sp; private String lastSaved = ""; + + private CompletionProvider jscomp = new CodeCompleter("js").getProvider(); + private CompletionProvider pycomp = new CodeCompleter("py").getProvider(); + private AutoCompletion jsac = new AutoCompletion(jscomp); + private AutoCompletion pyac = new AutoCompletion(pycomp); /** * Creates new form CodeEditor @@ -101,6 +107,8 @@ public class CodeEditor extends javax.swing.JInternalFrame { formMouseClicked(evt); } }); + + jsac.install(codeBox); sp.setVisible(true); codeBox.setVisible(true); codeBox.requestFocus(); @@ -161,8 +169,11 @@ public class CodeEditor extends javax.swing.JInternalFrame { saveAsMenu = new javax.swing.JMenuItem(); exportMenu = new javax.swing.JMenuItem(); editMenu = new javax.swing.JMenu(); - copyBtn = new javax.swing.JMenuItem(); + undoBtn = new javax.swing.JMenuItem(); + redoBtn = new javax.swing.JMenuItem(); + jSeparator1 = new javax.swing.JPopupMenu.Separator(); cutBtn = new javax.swing.JMenuItem(); + copyBtn = new javax.swing.JMenuItem(); pasteBtn = new javax.swing.JMenuItem(); runMenu = new javax.swing.JMenu(); runCodeBtn = new javax.swing.JMenuItem(); @@ -316,14 +327,25 @@ public class CodeEditor extends javax.swing.JInternalFrame { editMenu.setText("Edit"); - copyBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK)); - copyBtn.setText("Copy"); - copyBtn.addActionListener(new java.awt.event.ActionListener() { + undoBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Z, java.awt.event.InputEvent.CTRL_MASK)); + undoBtn.setText("Undo"); + undoBtn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - copyBtnActionPerformed(evt); + undoBtnActionPerformed(evt); } }); - editMenu.add(copyBtn); + editMenu.add(undoBtn); + + redoBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Y, java.awt.event.InputEvent.CTRL_MASK)); + redoBtn.setText("Redo"); + redoBtn.setToolTipText(""); + redoBtn.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + redoBtnActionPerformed(evt); + } + }); + editMenu.add(redoBtn); + editMenu.add(jSeparator1); cutBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK)); cutBtn.setText("Cut"); @@ -334,6 +356,15 @@ public class CodeEditor extends javax.swing.JInternalFrame { }); editMenu.add(cutBtn); + copyBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK)); + copyBtn.setText("Copy"); + copyBtn.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + copyBtnActionPerformed(evt); + } + }); + editMenu.add(copyBtn); + pasteBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK)); pasteBtn.setText("Paste"); pasteBtn.addActionListener(new java.awt.event.ActionListener() { @@ -444,10 +475,12 @@ public class CodeEditor extends javax.swing.JInternalFrame { javascriptOption.setSelected(true); pythonOption.setSelected(false); codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT); + jsac.install(codeBox); } else if (file.matches(".*\\.(sypy|py)")) { javascriptOption.setSelected(false); pythonOption.setSelected(true); codeBox.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON); + pyac.install(codeBox); } } @@ -595,6 +628,14 @@ public class CodeEditor extends javax.swing.JInternalFrame { outputBox.setText(""); }//GEN-LAST:event_clearBtnActionPerformed + private void undoBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_undoBtnActionPerformed + codeBox.undoLastAction(); + }//GEN-LAST:event_undoBtnActionPerformed + + private void redoBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_redoBtnActionPerformed + codeBox.redoLastAction(); + }//GEN-LAST:event_redoBtnActionPerformed + /** * Open a sample code file with the given name.

* Uses the current language. @@ -678,6 +719,7 @@ public class CodeEditor extends javax.swing.JInternalFrame { private javax.swing.JMenuItem jMenuItem4; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JRadioButtonMenuItem javascriptOption; private javax.swing.ButtonGroup langBtnGroup; @@ -687,11 +729,13 @@ public class CodeEditor extends javax.swing.JInternalFrame { private javax.swing.JPanel outputPanel; private javax.swing.JMenuItem pasteBtn; private javax.swing.JRadioButtonMenuItem pythonOption; + private javax.swing.JMenuItem redoBtn; private javax.swing.JMenuItem runCodeBtn; private javax.swing.JMenu runMenu; private javax.swing.JMenuItem sampleGraph; private javax.swing.JMenuItem sampleHelloWorld; private javax.swing.JMenuItem saveAsMenu; private javax.swing.JMenuItem saveMenu; + private javax.swing.JMenuItem undoBtn; // End of variables declaration//GEN-END:variables } diff --git a/src/net/apocalypselabs/symat/MainGUI.form b/src/net/apocalypselabs/symat/MainGUI.form index 863534a..88e66ed 100644 --- a/src/net/apocalypselabs/symat/MainGUI.form +++ b/src/net/apocalypselabs/symat/MainGUI.form @@ -94,18 +94,12 @@ - - - - - - - - - + + + - + @@ -224,8 +218,8 @@ - - + + diff --git a/src/net/apocalypselabs/symat/MainGUI.java b/src/net/apocalypselabs/symat/MainGUI.java index 52f404c..ae9b605 100644 --- a/src/net/apocalypselabs/symat/MainGUI.java +++ b/src/net/apocalypselabs/symat/MainGUI.java @@ -272,15 +272,11 @@ public class MainGUI extends javax.swing.JFrame { .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(shellBtn) .addComponent(editorBtn) - .addComponent(graphBtn)) + .addComponent(graphBtn) + .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(helpBtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(jPanel4Layout.createSequentialGroup() - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() - .addComponent(helpBtn) - .addGap(0, 0, Short.MAX_VALUE))) - .addContainerGap()) ); tabs.addTab("Apps", jPanel4); @@ -341,8 +337,8 @@ public class MainGUI extends javax.swing.JFrame { .addComponent(arrangeWindowsBtn) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(closeAllBtn) - .addGap(94, 94, 94) - .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 490, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) diff --git a/src/net/apocalypselabs/symat/resources/jsconstants.txt b/src/net/apocalypselabs/symat/resources/jsconstants.txt new file mode 100644 index 0000000..5fe6f09 --- /dev/null +++ b/src/net/apocalypselabs/symat/resources/jsconstants.txt @@ -0,0 +1,8 @@ +E +PI +LN2 +LN10 +LOG2E +LOG10E +SQRT1_2 +SQRT2 \ No newline at end of file diff --git a/src/net/apocalypselabs/symat/resources/jsfunctions.txt b/src/net/apocalypselabs/symat/resources/jsfunctions.txt new file mode 100644 index 0000000..2af5356 --- /dev/null +++ b/src/net/apocalypselabs/symat/resources/jsfunctions.txt @@ -0,0 +1,30 @@ +notify|return nothing|Display a message in a box. +ask|return String|Ask a question in a box. Supply question text. +D|return String|Find the derivative of the function passed with respect to the second argument. +rad|return double|Convert a given number in degrees to radians. +deg|return double|Convert a given number in radians to degrees. +subs|return double|Solve an equation for the second argument. +plot|return nothing|Graph the given function. +graph|alias of plot|Graph the given function. +plotname|return nothing or String|Gets or sets the title of the graph window. +plotclr|return nothing|Clear the graph and its history. +clearplot|alias of plotclr|Clear the graph and its history. +plotscale|return nothing|Scale the plot to the given factor. +drawdot|return nothing|Places a red dot at the given coordinates. +abs|return double| +asin|return double| +acos|return double| +atan|return double| +ceil|return double| +exp|return double| +floor|return double| +log|return double| +max|return double|Returns the highest number given. +min|return double|Returns the lowest number given. +pow|return double| +random|return double|Gives a random number between 0.0 and 1.0. +round|return double| +sin|return double| +cos|return double| +tan|return double| +print|return nothing|Prints the supplied text to the output. \ No newline at end of file diff --git a/src/net/apocalypselabs/symat/resources/pyconstants.txt b/src/net/apocalypselabs/symat/resources/pyconstants.txt new file mode 100644 index 0000000..92b21ad --- /dev/null +++ b/src/net/apocalypselabs/symat/resources/pyconstants.txt @@ -0,0 +1,2 @@ +e +pi \ No newline at end of file diff --git a/src/net/apocalypselabs/symat/resources/pyfunctions.txt b/src/net/apocalypselabs/symat/resources/pyfunctions.txt new file mode 100644 index 0000000..cb6328c --- /dev/null +++ b/src/net/apocalypselabs/symat/resources/pyfunctions.txt @@ -0,0 +1,29 @@ +_.notify|return nothing|Display a message in a box. +_.ask|return String|Ask a question in a box. Supply question text. +_.D|return String|Find the derivative of the function passed with respect to the second argument. +radians|return double|Convert a given number in degrees to radians. +degrees|return double|Convert a given number in radians to degrees. +_.subs|return double|Solve an equation for the second argument. +_.plot|return nothing|Graph the given function. +_.graph|alias of plot|Graph the given function. +_.plotname|return nothing or String|Gets or sets the title of the graph window. +_.plotclr|return nothing|Clear the graph and its history. +_.clearplot|alias of plotclr|Clear the graph and its history. +_.plotscale|return nothing|Scale the plot to the given factor. +_.drawdot|return nothing|Places a red dot at the given coordinates. +fabs|return double| +asin|return double| +acos|return double| +atan|return double| +ceil|return double| +exp|return double| +floor|return double| +log|return double| +max|return double|Returns the highest number given. +min|return double|Returns the lowest number given. +pow|return double| +round|return double| +sin|return double| +cos|return double| +tan|return double| +print|return nothing|Prints the supplied text to the output. \ No newline at end of file