From 25cef786641f437014ddf4c6edfbb60ba2c3b9fe Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sat, 16 Jul 2022 23:13:33 -0500 Subject: [PATCH] added alternate backend, ovmwasm --- build.sh | 26 ++++++++++++++------------ core/container/array.onyx | 2 ++ include/bh.h | 2 +- lib/linux_x86_64/lib/libovmwasm.so | Bin 0 -> 215136 bytes src/onyx.c | 3 +++ src/wasm_runtime.c | 16 +++++++++++----- 6 files changed, 31 insertions(+), 18 deletions(-) create mode 100755 lib/linux_x86_64/lib/libovmwasm.so diff --git a/build.sh b/build.sh index 68bae2ff..b65fd189 100755 --- a/build.sh +++ b/build.sh @@ -16,11 +16,12 @@ CC='gcc' # The architecture of your system. If your not sure, leave this alone. ARCH="$(uname -m)" -RUNTIME_LIBRARY="wasmer" +RUNTIME_LIBRARY="ovmwasm" +# RUNTIME_LIBRARY="wasmer" -# Comment this line if you do not want the Wamser libraries installed, +# Comment this line if you do not want the above library installed, # and do not with to have the Onyx runtime. -ENABLE_BUNDLING_WASMER=1 +ENABLE_BUNDLING_WASM_RUNTIME=1 # Where the Wasmer library files can be found. # They are bundled with the project, but if a different version is available, these can be changed. @@ -44,20 +45,23 @@ sudo cp -r ./core/ "$CORE_DIR" C_FILES="onyx astnodes builtins checker clone doc entities errors lex parser symres types utils wasm_emit" LIBS= -INCLUDES= +INCLUDES="-I./include" WARNINGS='-Wimplicit -Wmisleading-indentation -Wparentheses -Wsequence-point -Wreturn-type -Wshift-negative-value -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-function -Wunused-label -Wmaybe-uninitialized -Wsign-compare -Wstrict-overflow -Wduplicated-branches -Wduplicated-cond -Wtrigraphs -Waddress -Wlogical-op' +TARGET="./bin/onyx" if [ "$1" = "debug" ]; then - FLAGS="$WARNINGS -g3 -I./include" - TARGET="./bin/onyx-debug" + FLAGS="$WARNINGS -g3" else - FLAGS="$WARNINGS -O3 -I./include" - TARGET='./bin/onyx' + FLAGS="$WARNINGS -O3" +fi + +if [ "$RUNTIME_LIBRARY" = "ovmwasm" ]; then + FLAGS="$FLAGS -DUSE_OVM_DEBUGGER" fi -if [ ! -z "$ENABLE_BUNDLING_WASMER" ]; then +if [ ! -z "$ENABLE_BUNDLING_WASM_RUNTIME" ]; then C_FILES="$C_FILES wasm_runtime" FLAGS="$FLAGS -DENABLE_RUN_WITH_WASMER" LIBS="$LIBS -L$CORE_DIR/lib -l$RUNTIME_LIBRARY -Wl,-rpath=$CORE_DIR/lib:./ -lpthread -ldl -lm" @@ -69,8 +73,6 @@ if [ ! -z "$ENABLE_BUNDLING_WASMER" ]; then sudo mkdir -p "$CORE_DIR/lib" sudo mkdir -p "$CORE_DIR/include" - # sudo cp "$WASMER_LIBRARY_DIR/libiwasm.so" "$CORE_DIR/lib/libiwasm.so" - # sudo cp "$WASMER_LIBRARY_DIR/libwasmer.so" "$CORE_DIR/lib/libwasmer.so" sudo cp "$WASMER_LIBRARY_DIR/lib$RUNTIME_LIBRARY.so" "$CORE_DIR/lib/lib$RUNTIME_LIBRARY.so" sudo cp "include/onyx_library.h" "$CORE_DIR/include/onyx_library.h" @@ -102,7 +104,7 @@ echo "Installing onyx executable" sudo mkdir -p "$BIN_DIR" sudo cp ./bin/onyx "$BIN_DIR/onyx" -if [ ! -z "$ENABLE_BUNDLING_WASMER" ]; then +if [ ! -z "$ENABLE_BUNDLING_WASM_RUNTIME" ]; then C_FILES="onyxrun wasm_runtime" TARGET="./bin/onyx-run" diff --git a/core/container/array.onyx b/core/container/array.onyx index 16e8f984..e400b9d8 100644 --- a/core/container/array.onyx +++ b/core/container/array.onyx @@ -213,10 +213,12 @@ filter :: macro (arr: ^[..] $T, body: Code) { } greatest :: macro (arr: [] $T) -> (i32, T) { + fold_idx_elem :: fold_idx_elem return fold_idx_elem(arr, #(*A > *B)); } least :: macro (arr: [] $T) -> (i32, T) { + fold_idx_elem :: fold_idx_elem return fold_idx_elem(arr, #(*A < *B)); } diff --git a/include/bh.h b/include/bh.h index c2f78011..2d941eba 100644 --- a/include/bh.h +++ b/include/bh.h @@ -180,7 +180,7 @@ u64 uleb128_to_uint(u8* bytes, i32 *byte_walker); #define bh_align(x, a) if ((x) % (a) != 0) (x) += (a) - ((x) % (a)); -#define bh_pointer_add(ptr, amm) ((void *)((u8 *) ptr + amm)) +#define bh_pointer_add(ptr, amm) ((void *)((u8 *) (ptr) + (amm))) #define BH_BIT(x) (1 << (x)) #define BH_MASK_SET(var, set, mask) ((set) ? ((var) |= (mask)) : ((var) &= ~(mask))) diff --git a/lib/linux_x86_64/lib/libovmwasm.so b/lib/linux_x86_64/lib/libovmwasm.so new file mode 100755 index 0000000000000000000000000000000000000000..704e28d056897d172d459df21a5d76d45921770a GIT binary patch literal 215136 zcmeEvdwdi{_HR!f5D=VzLE{Qb(4dKeCJLG;$_ymXqZ5rn02eWV5J-fONM<02gy1Ba zb{sdlKG0PcbzOCLRdiPbR7?mEK+%Bm@E!2gLwJPn3Mk}$PgQkKrJ1<*^LyMs?#JfS z={cuPojP^u)Tydd)y?8e_m~KqO);)W3)TipYco(bjH(~Z==X(eI|;0 z#*@mRYupc>>Hn4TvPHhAM|gqO=R;?4{>IZN?^fg^z5L%^LY>NOqP(u!Ax6~OcpA1y zixOvs; z92X8BT$5JWz0{`0^iZ6z`B>+DN{kxiSf(uL_28h4$w^9@8lyfG(JQlM5Xl!?b(Ruw z(a@+$MX7W|B*oekcZ_0-Q5=fWqq3?hLCIEPBGQ&AN=m%4#PR#6QI)Yu-##%A)>WhQ ziLv$QR#P=;)I|+S&N?LncG5FJSrSz@=E70at40l1l43_!+M?oOlu3>zUO;gTyD76tvRAfYyBi7TWcY@8KR44VixUZ^o@7c?tER9iWdOkWjDW>wf z86?gq$1@3!7b*ao>--2Dfqf#gB*Zd|3ScBc6}oeiZkga6g9oaolu0f%{3^OL0Gio35w% zLwN?zXT|To;JHlvejd-4#P7f1`7-WTaKDQCAGlw~{RZykxZlM6FWmpe{SNNcxZlJ5 zKJGQR>8iusfO{S8^|&|SZp2O3M%ok6J;Fg9bCBlY2 zkK4GS@w=M@cgOD@xO?F~8#nqUyUxKg4tGD?=i-jXP1pH&{tov5+`kvN`+bkL9PEGH zTRZC>PpP>5>Q`PKJnnCEZ%60s7Ub=7TGhct)G2n}XS!*wu|IerH zzwPtb{z>b<$Q;~m>z_Yw*~|6Oaqr!#ztvx>JoMxA&o&f}9q@eOAM-AF>b>9pvFbqm zk-sm<|7FE_yGs5&X+`eghWmTw{PU6E=;3iKe@z|m(dEB;_x%|$JuX>uOX#IR{c#xGm^VO(Ox>bHB{ z^5i|+9@%zd+&{1X?hhwguloG{guH^iKY#Q1u;hiy|FkCZ%e_~9yy&6Kl4Z7Y=h*)I z+QU!X|IB-{o;v?u8#lHW-2U3`$s3=jA6%BP@9X5dE*rG_uEYm7T-CJUyuRB{_P_Gm z9V?zI@9}ctw||MgZ|a+84Jm^5zY&Zk!`_b^Gx{&2+b?9V;71y8*`bN&kN!toPc9dT~a-Lo#P*!1~`N!GQq4o-@C>kls*3BE%$-)&D}TpZSFGJwd2-sp=kKhlc<$oAl|1C0^{?ZJ z^OvuldGN|q$E`Ep`TcdzY#JGtbK{PyUmE#spIhR(pSS+?uhOm=STyw8cP<^IbiXA1 zge@mw@XwF`d)L-i^K!S0oVN1moBy=p-HPY^nZr-??Y92t*-yXt#n1uQCcRmB0ouUs(Xyq_xWd-v8#{jPoA9-21t zrBBujESy}pGGp;ITkDT_&rOPcZU&g;(x$TDAN`BW?Hv5{q zLl=DdyBq%eyOdY&e_+C^t3H2c%f}D=;f|cq=k(oHGI;NT=Bj5Go`3V9%MZ@YE%GjX zeD}zUE|~C`|ACRC-hF$}<#)|HbhQ8FYxnlQVdsj(l2^yx_pX+8{?>>-e>-~q@IC`S zJ8=2?g+CPzoP1x>;MHF)8#U|f4FfC3_j>i<$m;Ih`n~WhPXi72$ve2^ z?`Pc19{hkSE5JdIu9@GHBZ|DX#z&`JVs z>qX;NIR1yaz~9jYzGoNZW^{qi>4MMDF6?1J7xb@o(O%oTpr70Y{mCxq*LH!YxkWg= zebPn0*wO`kW*7ANUC<8!J^{D&dK8Fo@{9rgLMt)g)GpfP2FMexpFR*p{LfaJ#RR99 z;CW#*$7dhrh}i<47b)n;vEYh9d35#a&GF0L=7?K3TKNiv690rC$CDqS>-KXvK4m}0 z_uyz{J8MVClfdy;3;ZfOr*CTOjDPVwj?X^I@#hQrXQ4DIH@l@X|II@F zK2Gq@5&Cxs{f`&;*Nyi2ks}N{EQX?}T~ZEquGg5eIlk!-#~Xd&a#3yqEhKP#EIQi* zf={X7W6*yu_{56(Ucs{|>rinjxAHHXKbnbMZwo%l1RsFxdhA?IpDpxY=&iTWzr+OJ zu&d*u+&W=bhTgIaz0m-KOXClv#o!|hxdt#@_X_$}S_t8y^#ol}qQ5kYerniNiKthK zs27@*T{oO1Yv4x;`dXoXqrKJ{{Ycc; zu#=&peV1GCw+Z?4g!~4dOrif$;ZF=b{9Vwu3i@k>{EvzDt^I)`4Ex^<0mu&Pgx{Df z=x-4C6id653;CObA275rZ5;ZtF^*}|@B1fLs? zcG=GnX*`<}A^iVxTIAwd&XbiJg&oFP?C@?;uk4>Vy%1MfF6i?t{jryjr`2LtZwdY9 zS;h;e@NWs0aq5upV-C??hP@pW<6zS&E>D4w-y!g|Z*x3Ac9B|0&&$?vc&xy`D(pY@ zublo8fzJ{BB|-QT!#*oTy_Q?*^#@U}Iw7Y)e}mx%zT}KY3jTeC{`1b`E0o^O=9n$sKgt!48c_+biy;A-O!Wt-rW@&c#N6Zl7ko@<4k4gSl8Jgp+Q@s6O+ z6ZY05#=A=eew-+m1x0|{An#KQZY02sxLFat%Kg zFZA3h?0l%;-&6FLT8kf;D(u!F?AGuDuM7DT266oa1fOpOA4T{dqa806^{Ny0VA$be zLGQ4PFP92A6NEh&{VAN|tG;f#eqdb2a?3k|ik&*gQikNR0^;#!hGxChX9V^D-f4g77m_Ik|GF7{4lo z{TSu?M0+_z|0)vnr-b~i!Y}O;__4;gvxg&Y68OV{zar+1Mt@u->YE_yYv}(gLEkLK zUqkei2jmI3q4$)gO09Og}vnodo%c-CEB;tGGBef z=#OIDG}`NXq33L&XTvXDB<9JLqP~Xy&lmOrNSN_=E=$p0-qxIqq*5tDC(Oc>T9%bZ`cdj+j8O0FA;j1EA-zg?7^tlrJ}zp zqQ4tV#G7119Jdq@}ZD?)yuex+IXlS*NSaChuFN7#R! z(3@fB7YaVjLQbQ;hlD)Kg*-;N9>G7)GOvgb?OrSNP$tTKLfBR9agKOM;5Uf&trQ(% zy})|}p9G7Y|0u?#Jalt1~^v79(&q2f9#Qeml*OS8kFBkrQn4oVo@B_I$U%?;B z%YuKC;J-kOztuu-4oknN5ba(m`lDO$-zD_0T*MQM{&h-}t6aznOcL}Ti}tD%{M=3;OYbewk=rqrF}c?U*Op5oGN8M%cMS_&38I1`7ICOTA_aJ=Ff2=l`4F zGf?=q1kvG+3VflcSM2~^uU7; zoh$GO7W|8%U$-9Qd-(P7!#&z$+F# zyej&8ifCV>|6VWbKiksopNjTs744NN_}?b@EEDtF%LM*TQQxK`98oFoEkd7p%^Wd8 z)RzwHu<`K#$NyR2=ZX3zoX-(k1s}WM)4ZM|t^&-i+}xSPC3AAiJX7a-a&whj*Z8d5 z=>>BOW)_us3g(W_8a=yYPQm!8(`Fa&wD2jp`Q=k{XB5quI=kqe0;PEB?AayxN^wDP ze(3_Gw4|)4JQn~GXU-vPS%F8HTfm8Osp$M!x%q{&a%W5}nyr+23XwKFx7h0`D99Hpcbe@ZEfGP|sxVAj>cl+yWgi#!EN{_K*n0%gYZsh+82 z3+Ch_!&F{w=~Pc4$x&P~uYl#BUNn~knodu!okL=?+=R%@omy5_0PTbk57nGy5zjk^ zA(0)mnpxoS6crbM>9px(xl`xPojJE;{)`YfV{So#0nVK|XL>GbFkK`UPAw~ha^@Dz znJHtYE$|eSG2IrI0zWsOJ&1i_F^bEbRj?q}Q)c8aP$pdJ^`L!cO!dz82wYiVamn<8 z+!e+>)7drxxczy=YEI z?9KNSmCPwqC^4Ukp5`r@4V%lIQ!xKbBr!V^JAZ0faV~6@YFsqE{7iyUFSIv%>NHe@ zlZ7EEDLs?IkQO>Anz4Y4(^HfWxjkX>Pxa&%<`%%}&P=1q&M7GkpD?Yc%cP>>;_!LA zU1pgE!^tlUpDVuvHuY-+JPj(M4lcKr(a$9fglRFV=G+30cP{#&wKXX%A9fQyrDzWN zRzbd}3zF$`(Kz#_&h~bpTlB7}v#EQ9=gyPKCc}!wlRe=Ki`R&IzpnX*w9|DFa7bYb zFY}bl?V?ub%jNlnGsEYD!z!7(06hlIDJ)|_Fr%m|olo_Y6vLQjmvkkXAP7ll^aje3 zJ7aE1F`PUMh51P4chGIgL(V9LoAS&cFV18$@|k)nD931m;o(fTV3IHgL=~exSCBiq zXwIzMPT9Eq@l-QcCkmyY9K!{MlsOi8SdC2o!Xfy$0*n$=q9Lx~fDAYc$ux|NbIz;< zE3dPA%LUs`N|`%#K1X$?BLNELfNKF0u()_CcN+pHWGME|u_RdSfh)$S0*9muSoCIe z9Shp%GIPCim~U3#>S-{UUgGsAGiJ<&S7jQb#^PO{(D+z!6MOQ_F-QbKK0?CDYIoELi4(tw_av2O; zGGhjHQmG!8s(8_*Iwer|Bv-)60FgGKCH(T%$XO;m}@cS(y44RhZ(l$ zW-KozfS6HYhT9p<#(yS*XiZZl4*$ATB2P#Ffgs-{Gd1;Ls4`S_ZZbwOBx;D80p%9l z?VUQijI$KxW6H@b%>>O7Wv zxRQ9EiJ;|$px{QqY>2rDsSG(OBqh%$$qBDvO%c})7CYOogt;NU;R}iMh(|YUIN;0ho>I$jAs2JHpXF)>M`!%jb#b(Z5 zkxim9Yh}vwEBOrV{0fQ5#$+6_gqqtBThe?!*2$#yOTkfC2f>7%s z^dqASiC(}IZFE_V>(q@yQ%BbGI?Wv!rVCl+L5-0}juh+Z(vXj0P;o(7+0>arHijvg zTZBm=HzbC@A7hm0WR%jBN5=Dti(Uv4$x{M47AYnRD6@;EkZ8-&b8e z3|kZtN~HK_W6vl7MVojdJyNmZUF+@&y(laH3vq~K+&CYiu>JP$|7#84-A~wq3ulF} z&B(6D9(e*gWHHJ(fjg(D2s?h=l{*FeFP7d-DHL!VOOIB{1pFjRk5U#1*!#O8Y{f<@ zH3IgWPjH0t7+|`L?*th8$8{c#SHyP!41B9Npb%rhR|@*pBYeZoq!)10L5@eI*mnj5 zcV(A^$CjyiHA{G7@0}8L34f_ctthP$eu#u`m++TM`1n>X50&|lginz0m+=;gkL7%l|v!B9U(gknnIg=9MJj_n26G`9Z?t zh=+NlNqBm9-MAbQ9!C<)OO^1wCHia$|C33rD3c`oVF{ln;SFC($%PXBN{PNy!i%HG zEVW$18)tkdp;E#dE|Tyy5`GgQ#8oTdPZ>x&mrD5CB>XZ7-$&BJD-!;0iGI0+4@&rz z5*|n4%&Shqe`8|tjRXlVj+U|1CJ8@VqTeOqOC)@=gvU`S^U@{!y(SiZTf*Ng;oBvA zoP<}}LiYcKgpZN%IJ#n9u@e5MiN$vjBs{$%Y+MNvew2a4GfBeZD5ZI&NccPxi*JcY z_;nKAA>oa0Gf=WB<0blR32&U`q2x&tet|@vC*g}Fe4&Il&Qeiwsf5=h`f>?>frPJ= z@QWmTjfC$n;cF%Q1PQ-X!Vi$}%Ot#Urkj#qk?_|^^vflD52?Sbl<>Dp^mP*cMhU-B z!v9giH%WN6gx@9MjWdRn+$`bKC3;=L@0akc68=F6-!9<~N_gdP$o}7!@G%lTMZ(8Q zcyZK?rN&G6>m~XG2|rE3CrNmhgin$1O%gs$!iyttEY%_5_e%7tgpZKgFWty++7m>kc4lR@VOFRm+(_0 ze5-`dm+U|K1ISm zAmP&_{BQ~HknopCcvZqDN%(9D|CNNFB;l`>@OcuxO2QXP_+$xRD&g;w@Z}QzV+mg= z;ct-eH4@%0;cF%QlM;TZg#SRoFO%?(OZZnLe6@sMF5$11@GB+!WfHzl!mAQ~qlEWL z_$CQIRKo9)@GB&IvxI*`!s`U_)P=9Y2bfO1BdOuKdJim#i;)1t$&PA)ap76baaHY(bJsU}Pt5vacj(?$d8Z^E>}&=$0rFa?s^f`?8S z^-o~%ZWE>eG1}jRDKL!sn=l1_QGXMrKrQNT!W6JX`bB>rhp*oZ^9G^MEy;e z0(Ypt317-!rwLP_3-veQAq*a5!W6(l{Z06C2HQ;d3I-qg#i&1RB%u9GIF-R$O_(-P zQGXM@iotK1@Gu5HZ^9G^Mg2{f0(Pjs317qDyG=Na!Bb6`HdIi56Q;l?+TVm}V+i#( z;SmfTWWu!3f%=;;1u)V6COneChkiEd?_lt56LvCqs|k-{aJ>nSX7HOPoWbDdO*oUm zkC-q8{!xDu9?RgnO_&0dXnzx?jThA4gl}Z9(}ZtgaH-;~D(C3Fk2Q5fh%k;3XzJk->MHFm3pt z{w7Qtd8oe$|AE0y6Q+$gw7&`8!QeqAOdAhqe-plw!8Q}74GZ-D6Gr{>7`)qrr!sh} z2~T5iy$R)>40f9EEC#2V z@N5PTGT~wd_c7r)47QnY34;%{8}+9RH1vNHzMH{YO?WPY>rI$8l;HnN*u&uGO_&1f z=>H}>kHJe!cs_&gHsNvxPc`8M48GNb?_sdhgcmY6)r9Y5@E{Xj#Na+AT)|+Q2`^^w zq2osVD;d1ogqJXQs|nx7;Cd7GG5Adru43@>CS1+nM@;yB1}`z;2N-;}3D+=qstIch zzSV>uWU$kO{R~bu;fEMJ$b-k1_ap6Mme*kC^Zi3|?ZwPcry!6JE;TsV4jsgKstAry1-tV9eg4@2A-t{4UMc z01vRh{VZ^A3vA7Qs=713qZW9-1^&STe{F%cTi`7gc)bOF-vYmFfnT%0FInJcE%4(O zIADRRE$|`>?6ttf7P!CyPqDx`7C6fSXIkLvE%0y)Jk$aYw!i}{a6b#&+X6>h;8RtW z_P4efxQ;E*a8<=;3*b3#{y?r;7kjAy#*d_ zfrnb)!4`Oc1@32odt2aW3w-K6OZ!{k{TBEK3;eYO-fn@nSm5;*_5N| zpS8e`Ti}2NuC~C7EU?!C7hB*03p~XF=UCt@3!G_zueZR%E$~naJlFycu)zH+aBmA7 zZGlfMv9!Mh-fw|_u)tqi;O!Q8iv?b9f#0{lZ(HEkEbvPf_*o15xCIVa;A#uJ$O3yU zaIpn0u)tF+aE=AeGT_Fj!I*}3U_z(Z&kFrZ-KJ^>+}d&d4kWs?I@Mp5xC=C@-;sB- z7S(QF5k)~2es%@ke;LA4z*BF- z^3J8LQ=>Vixz45Ckr?CBG7|GtZN2LI*=E0g6O-kO)J-A%Y~8E+>TRm;q|JNSrMVLw zs`ibleXeR>pxO~?eK5+^n2|^kDusT;(hoJc&22m3(#9voQde!uKNAZ5CpVWz0S}#=aHJ+ zfyo^%U%eyCwuQBmD{yyR%XuLqQhgg@TW=cgZvVOO#-O5ET2t1b zU2biy8zx!5H`3SKU9I2KUA6611HIO&zI4T2MW+Yd0sLp1zV`0+Dq5ya2~7cMkU@uvOUYQM0joig5+{j^{J#A zfFPM}=7=cIP#{R2Y>tSgV(%eYZsUmV-m`!pImQFwvh7lR4KdJKa6QFa-CC<#i(9K| z_pWsqx~_f@2b2D;ob_8=kw6Z&d zHkq}&N#^JP3cZWW)ihJsY=mU0o0*+5d)^!6ww)v}CH0tTsnrt@7ghcJR^z`yfg#qZ zt4=Ln{=koyzk3NWnM4J^XfuS-s`fXwt{Qqc>TT5q(fU;*6YSVtJq%2O!$bXc70jQ6 z74koh(;}J@uGd`$?~D zL#F4rzqXWf4wb`(phhyn;9$fW^yP;-I!M31pT144^Br_LDm%`%KT+2(Bji5Veo@Og zA%r7sg9rVg(Pm%Ky{gXJDif3ZjNieO)H*QhVPR&ZYwb?@Z{HMO^S3_TIpX|zXZsGO zWb!OdO=hPE6z==tJ>zZxAd!3eRZf>TsQFTo)*{L za}W%z^sq;mk*Xbs%&Ta?NIhnbv&2tMrzEL3CJ)kGS`+fC+Ga3fEY?te>S$)^E)BDV zb|iwtt<{4Bep(O+{vv<%HqY5e#=mWANTVIivaE)_F*(RVpGw^Z{ZM}A1o8u`<01MQ z65pBQqEQzkZeYL=5Wjq4eQ?+4kI9BX%mNx{pFnsoU6409BEMP*ovDxjM`{ zGGklr=d#)#&PLHxkAthzK;v9PZWWwWe|f7r;Ls%t%GQ}i$Wucju^C!v9I8UKXn95d zU_U%-NH)Vh;Jr?f_rj)fZoI1PYPl>#Luyq6akt@aQqw;zD^~s2VE~NRUu;1M{>*q3 z=l#O%&xy@~F*;oSds@j}1EX})D4iX*>5Q^5ldO%6+~<+#ASCHc!j5d64Ab5Rt&9P4 z@{|U_*ZWG#Ct|+H?f)c9`pT;?E9Lf_vyyb@(vD*4sC~v}j_`-9M(OpcJ&U?fsISs& zQCsWm*zVRYo1xn0)Va0%m>Krju<=<*YUAhxVrK6%I#z8Yaj9h?3ys{O|H%4+*?#Fs z3hB$G?Na?0pggLT>R%MY`(+Ml{iS!0Q9V>KK~ynJd#D=KZ%@MiK>gIfLd*qN1*xV~ zLsnC%mip%yHdKGO>WcFN|GoOEfki3Qq@g+o=fif+XivGm&>vb8O~x8D^%x}B!i*e? z0t|*fi`M0BsM^+tnh~|!qH3cPP|JGOhM~qY$Ln!!|5yx$KWCu}_Qhl(Ml=_1s&m*R z2@0aNCl-@spBl2iY1nSy_NTSG1JMnCi%=SAB7Ni4e(<0wQ1?NBn2lD>jTvt;3_C{y=kt+W7;kR)RM2N0Uoy$gJMxjV1va(0k$_rdu1(8;>*E&wnnahk;Sh znwk$uqq<{3?u7cP>K3H>)<(du=5I6RAKJN2`-*$}U`(v zEB||S>5YN$gFDnfMr4P5#kKYoF^;rPyjQ5{+dY@6=?&i4mWxPE{Pg^ekp1i{R1n?+ zP3Vwvug#Hm!n2zuXP-=-0_mK0$m-<&9bWwiIU!Zs2`N6+cm9asFyzvqXf^@v*q*x0 zzM|JTHN7x?thH5b@*X0;eFi_8l#iuJ`K2pq)`e+#53_&5X$PX8xre4OV`Eb5wDU++ zXouBAiKK^-)bd@Z4cLDJ0elJJKjiZ(hE^ zU02>69vSYZjs^pm1%|v%>gV%mlV9qw&dfUY{wHQke>uJ%?O33om~lRYJRl4t@ty8D z|11dpAq3CxM=j6LHZYkXXlkAQ(tqM?*bmt|7DS|~YoJ8tU!3E!v~|>8(V}^N$z&mS~R8{!IBo*z{ZaGyN20Q~{Kp)ueK|d|(9~o4@4{!2$6Lmq=|bNZ zq^gUG|EfHU9{gATS`JAbeaZKzFKSq?4-EMm(#M%iVN5`wrO9BA=7zZ>y0yJ-?MHnT z@j2e4*6SmQotTP=`Y_o+1-Afl)$ZCw7W4#kk2xN-*S7M_+O^3(^p{7l+O5K692qdvyOFoJ71=+f3xbvjU; zMqZuYBO$ALf5q*XAi4rMHc2Kd#6Lv`c56XuvURWycse}`E3wfVqJ|(cRuY%!(teM4 zUY0f|K1-XCfT-961Z&sDb31b^|@otQvzU=lAX z5r5oZ1A;VjJ?cFhLaS!Du|ePXEg4T041v%8X#Sf3i|%6nizN_S=krby&Oa^L_X=1^ z)v8Kd3Iq%Z-SzK~*w@}+e;k_}k1;$X<3Ta+Sv2umvW{{$=&2BkkMFRq9i&9`G^W9v zak_`U1>ED0T$--dCV$?rQ>-YRGu@s;XsCIz0ZKM8I_-p5esQwto59-Ii z>gbpZg|O}hFD;F+%pZyQ1wwe*&-y)`OJc=J~uueq`zY@|bh!I6PYvK^nuEQM5 ziy-h%x&t}gwq^=YDKxv;;IJu`X;*ln-RaF&D-$>KSDsAuyp?OVMRP6Rr& zSN#PQs4PF{ay3wRj<Ss9ZJ2DmB0Wn;GMZM4ptMMT?#i?b+=&YVrx6RwPrN3w&vNu=yT2C(u zQo;bq_*$r=kyxRQHWIyzB%cgzSK_HSSN6nTCLHaUROdi>EicTd-7u!39HmBV=$6v* zCzc$<^07mI49#Zv|8Y(VNN#klA{H)+Odby@#t3(F2~xLV6~=UvWzXEKKBXT2T>BK^ zYSo@ukLL9jBCR4t4Y(645I2e0;Os#7K4^3LPR4rA0t8ut5gTlXA7h`&dsa(7s;`>f z$m(lDeUT>=)Dn6C{`R2_{e|KN|74`>8K!q4aU5qPoB0>V))qE^) zA<)4Lgt(Dgf0BaEw)L)LtW!~@y?O>rko!S*@(*et({{#CVy}LQ%I0H3+z1ux3=fay}i=^8g=gR40}+_~W1AKf+t%8mt_fio(faE4GlgAYP{ zr+;kJ^>2XC{s8@Vq9k`LZ zq5BxaUWu+ihRr6m1`LLpV>E0g_znJu@lv!$8)_%FhacP1>(SlFsu6Zz))hlpU&J4b z2TuQazLT)g=aA2ZuwdZE7|ca9yXqg7;yZza;ZT%sZLDhB=+w?r^Re@>5C(I|WxwTP za#EWxuKeB{S2l9LENrMnl3M$jgnk&WXatkF(0qJAuZnQ8&?Y))@ZU%`+MDn(kc#ln z0PpfoMB$@w;sM(){wvi$HhxZw2^PX6<+NZAE8-zb?qDozp;MMGAyOyAa4X_H@Zgrl z`~dF~AE1eXe;}F7@smv&gITP^u`$63kVRLwld41WPv->qN>yuHLtlwyj!X><&98`1 z*fI_zcUlVEYwkQ8HaT$C5 zJ8?OCzL!{sr!*a5dvlO(Fq00U2ZXPx5}QH9M1-h~QHk7&GSF`WST|tPKPm+Tw6Pbf z{}ZQbcpYdF5!%%9_J(hz3h=7wRiB3D1I`?bA^*A~f-QHBu!3kMiiIHCMbamMCrajv zFU-`1d9TG1j3(&_r(jaAuZ2}?$cXQNCo>oIJYECU?P3D{Zz;^s5td(24=r{`8R66u zz>d2LuSSXyYnT`)hQw>oOSkd)0ta=lEtNC$> zh#?2YpNFY8Oc5biM_QWqLZiP?ENhS}eJ7o2;qg}ciYpyyDV`tE+%Yuaeg_WDjpGu5 zem@r2sHD`oH8gwI>HS44)6ZLZIY}1i{WOv>G7b%{0&MV4YqD2A4;X|KZ7vErV^iL~ z0@G5|68Ne*?^hHdNQA7;%6p?buCQ0lpb`VU%O0cVZw)eGP?G#N3k0!@e>0 z_yL_p(oPCb7#RBGd=i)k{BMF7B6Ruzghzj0r_aY|B;)iMK%fsNB4~MlQR!7%&@iwR zxL=G}miXy-OL><_<$ZZL#2ej+mDgP=k8t`ibSJYshKc*N@~{qS6Alg$1!G|QUmern z9dDgS{R=Bkv*nqBp;)wcEHk?BPJ0(Nw9lA6M54;!0f4|5gxQp%4SlC&vwqV@olJ(?3+4woX3zQGpCCY)QC?Y@t0p58&Hk#YLpfaq*b>o%XEv9rzo#7tUGg;II^4=Y)$%F0wa6!j@Peuuq2 z#17zFH>$}^D$ZP1Z$k(HvHez#hX)_3`g4*nA;uxVT@}~Bn_h*3vlS!V{sNp~$xLwB zj!=k=WtCK>U9TX^EPa3&UXv9Tb zgDqCv8l)HeWe{xE2x=ns4u)Qa71RlADoJ{1e{ahNu2)ozMo!&&2K@_-6H z{h^JH#|Z~{e5Uw5`oOQm_gP+w4f6d)#7|3DWQ*-2mc*qWT{O~nI<{hL_5Q^@-%mg} zzS9X6-E8~Q4=moN=3^%rN6!}G(Cz4WCJaBDcn+CFcWqW2iNq)M4ajnI(H5{dwwlU( zpZ>HUhTiFY0EGJNRrJm;jWM*0BcUWhG=OCvrcJ~x9z&L4+)=IHpA z7eqhC(KA#6*p}K%+kTW=v6{FZX4P==di+DAENgkVlm1zK=pEwFn2E@~Q5AGahuc3r zQDt??=%-MnaCq6Q)T^+A&Xt0`{=4=1%Ng}TRP8_4%ka}9dNZ_qW-oLcXLPKyW=Je^*_=Ve z2gF$D{5@tn%PAAJ4Kk2_;^S#fIQgPTzOf|V#Q&0fS25XyVK}uRvA)r8uNYb5L3F00(wnO7E zWb$5!4yfG{n;xvl@tugR7#Q*jC%9J#GOy4Qhu$8nING_l|KIxxRxWE#ifw1G(;1(V zM^X{QLr3*w`15{o}LwT9(l~B(<((8JE!ha2^IjlK!Ccy(ka_>69q9Zc~jAQPm{zdsisAy3LNg|)qRT~j5R}{{a#t}Kc5e>=kPix1vUyqIUsvqFf za0Dqs+k>qLoHoZ>CfbLF7Fi82I}sbudNVv69 zgjdjJ`Is*?U_xU=^~89Fp^RD075>cj>P;0X=}i?wwBvzcJ+%*$TkUV`w7=14e*>kR zbm!NpHnbqxajj}QpqH%g=t!Q@F2*iXAGEvo8EPxyJYv?CLo+s34z-rOYBeadPyKWX zy&Ps*s@pbaq@S#q>^liV{TPXv)g5q>A235b8B@_a)7Alk#X2h|L))8$$t^z>4J+Fj z8mWX@V684~0~yA38CrRq3XM4Z6W~Cx<&8rXZyZkk!q$SEU*q16I?>yF`Cn4zz=(ML zv2_S6*ycz>B|pz#w7<*mNks9Bb*j8m+lWI=K}?MI7%waZ^ARrK65AiXg&A%K4EFXGYxlK{hjVj?cu789T>^(Vg_BT|)=Q)WAd>4W{$Bcpc(^{tH6C zuD}HJ9lZB)z`2t6uZqVXeGgKw|7?GlzTQD^#NkbVhw(~Q>X(RrdNHqMdSp%U04VtT z0OkCBfD__<0E!XG&A{IWKr@_R?*p7dviUy1Gx$yOUle3{AAoifq;~?`=`G$GZZn3q zLh~`h#yg+?r{yFX@&!1GF3X{*1;V#Wym5COC*szZB z(D{EOK0Qw5=buT0fn6NL#~~0lNyNc$I^ys7^#l9tkhIxfRR7Jf>;;Fg@=58e6BU)0nlw)3s}qqc&1Ii^Bm@UqAT2;I>V$J^2Gf=R&KHm*&J&kew{TNf>OkVpp9Xm^J3Z#6#QI@{s}a`2uAI{t)vN zFr@h?D=yJ~F1D-a-Oe$cB!(Bn>7x7!h`mugeq0R<+0N`FFyeC6UxqVKm*7ZM`PEoO zw)CvU3%&FvOZg>OgE??-P_K*e?p6K$ajs_)ohIVLvpHWxd7gYVe@uHuz+ua{Zp<$g zSK=*Aye~1YRSk@bXQppYMzHrg7Ktvy%Wn(m6c8juCU`H(hnF)P85+Pq+zz)k4gCqH zJaJrE6vo!SV1~6=7ADL%WW)S6&2{C+Lz$E$Gf zd(r!RE}Y{czrCbWky-h-{vxW>mKEr~)#X2nENmhy0QSd@X3{AU%zs!rVtX2%y@tF7 zSymv*MJ?*SPVqLQ+rXEe?7%Be^mdGP?~Yi1MLTV3=AYCiw5#c#czfYo3FZ&iwfqP@ zgK9DE9f$2D5%xY{e;dp$4KGGv>J?Inn%eF<4#|2!G8>uEl`d}1E$15JHZrn>%eHcC zE8(;W)A|nex@*1PyAWgc+Fe=?={!q=8><{LMa{h-)_nhqowwpgt=K8pF5Xl2dIQD3LT@hGtI0o-i6NR`4!|>N@x~?SbuY!05w~CT4tg{K=Fs0yEH1|0V{H6@ zy*Kt6dyjEQqUT0BSM(R8vl*4XaTPN4=kqu4)04oAZ%OOL?_+q-*0bO#g6kM1^h+s@ zoeR&w+6|n%yV*=i-?~y>Pt!Z2Sm$1hWeobsEhpB{JNnSfPI@;=O|Pd$R#f}gCf$YN z$?b`GTc_6t*nAnIS5j(+w6}xk2R3$a_H7NSt70U@l(ko)y4u)3XYbgb9;qJR%MOYp zx2a1`{)7qCJiO;zZ-W68ZPEcknm(4zCcGWJE~!E9hN^IVkpH52St_E#;oj2wQNQ-T zCqwcV5TmC>49JPM+YtW-Zz-H5{Kq&_>=-q2B6>xx&facB2iUCIM{T87#s;ajFY%l= z8}Ak$Rs-eDcuzV(fAL*3YQT{|ZV@)hLKxKVcs_R2dYk9RcWL}r)4x#dqj6LAiUeJ! z2IB8#F%FFmK2$Y2XriFB{1bA?8C&iTh3wh<+IKJ^_}#zBVz~d)u77qU-fA(%N0sfx zJs7d%1?+yI?eGr8Ef_4gU#PF|!QQQ~ZRM|B98gnnl4~=psIQug<1BQRWAi|aSC8U; zP_5r|7EkTQUZ~y*#JOtfRvahb{)^;s;X?|GLp^x zP2zz>%-BJ0#*Wor{b1_cf;j~<7t9{Vz7XJA=`AQLEhsK2Q&&D(`{zfV3)KEuP2K4N z<24UG?Z5xoKR@j!o~b+7hz|vv=x%=?ooZ3PI}IMP`}`t|JNsSORLYNgQnj7L!64`z z`-S7WLFN>-$5#3sjo(S)cNDKM!$;z6B$~r=s)+hMn2i~bt$q)pDgrtOBx>r%E*oAG zs_Q-Z#=wZPS(P`$x>MJxsi$4_bqKOVrKmRa__cl1)RWY3^^JJd8;!D|pQG|PUO`&h zTTR`drfybk$AQGG05vJA*9U=^&#!4y=))=09sY%q?sOg0>c)?3(gcRl+-LAP0b=mM zCoE1y+pGS}`NT7thYgzToCe2#Pepkaf=2>NpMZ}WuyWq!>2TktB0aYuJ&C2yG14FB z>F}$kB0QM!jY?tZYm9U+(vfDP`T3|ccY3?MsxMwHWV~;uG%SRw)-%x}S{j3k`bl&nvOJn-qWu#$a ziMRZRG`;fkmVcTQ$m}1fyygGNl10m3YP9?y&KWKL5Krf|zspFc@3~OR<6AL2o!9&x zBYij73x(aP+&rDv{6QnVo~NVF4B_d#=1&{x&-3)|_Uc|doz=Yh7@8LAs8X78Bp{&X zvcGXejihrQ_!Falxt!*T_Uc`XY)Iltuv3EDAgh?Ck5X0aks)Akkd9fY$i5DT_iXwe zWF(%Xo9Y-$63M`_XlPwGN%j5Ejv*qWw<1DE_#z9RU$Im^=Qd`wlxCi9gXg6Q9to;9 z|BE@kU<4u)#`+T76&@~}Jh#d6jHfUMBxWL=U}yM5`TkMa;q&*E^WTB|!OJk|MS1Yl z;mX_dhE)G-qW>9cclqZ+KCWpx%Srl@)jb=z=olx{+AB1*rjz1Q{o%ch@=R6FM<&uT z1#hTIENat|%GRC!GP68OQ8tlF6)lS?w9z!G&Df!Y@{M*j%kA9GCtsK9S%V{a!E;bg zsXYn}c{}G@E9ax5d_jH+axUztYyG&9%hb<5NvkhGd|5xEV9DXy<2Jdx1S)S9a-u!Z z-d&gX)oW6Dc~l-9&FoZOxlx|k9zP)ywa1PVygi(&;BA#4?ZBcu*h|;t&6dlHqw?0n z2twr{KiZ+|{6pmYN2r$7o$_MinDSmDE{TGslZ<0O_X2-)Ps26T+mP2pyzx}tOHfisUewR*zh-$8MR|WU z%7e>Rf@h2J(0;srpqIPi?tgG8dr~RGnN2$s@HhLr$^W>Z%rp37U{r#yLlL#0H|^h~ zZxr-}20aEC)SuIrnf7my=T?zxCAAWL{EGMQ(a@KrJ!cBaMDP!eh4`|5%AlXH^*!`= zUf*)!zun|tX4u3V2b~4fW_SE6?VQGjse7uG}hK9s=O1zm8 zwd_2=N$fKrwnO--@-K!s9MtXX$r1MCQL(raaO1Vjd3AU?aO0%+s65=Is@8ibiK2~e z&8W${9W}m;?b#af2je_3HX2!gItj|OSFIyqDN=A$O+KvpXSJfP?Ibx{3;d0x;@oi- zJ|L!jtS90O9F5^M^sRJS2>Tbsk^!Qt;`I$~g=%0vsT*nIn$^h6JhwmFq53kD@H*CM z7?L;E9T;_*N+FFR;KCmc2f8NYp*JnE@TtNnEastsMY=a(-ZgZ93SS_JnKxA3iW%7f z{dY9((d2A&t3KyN{6<7eoXis6!sGogGeu3$Oq$nB3|clA<9C*}HOv0SdiE;#_{3QJ z#^+t&Zf*(;i@GT=q8FW|kI`44q1{xqEc#r^0pXB-x+xH6&%}X!+a5g*$Jl7x#v)Vh zh$=cF-27Sx(}CZMm@Wc1qB8dT={=<2r8EID(!^_3R8?;mJB`-+^{cj>UT zwzVm!e)^rdguJ3MzZ<@uQImt^!PoOgs)2sSa)&@YY@D3PaHGi z5y5NJQ{i(cG!0)y0X;Ue#-~`yd+667JI{c49pVWHO5^-Lx-UC)3zpbm!p;KP1}=jg z9SSip+Myg z#tQ2v#6ig$)U1G%uE2a8$nQWXCj0P$5wBF9j*ry6&2?po44dPxs7;z+svC#X76GK-ZE;5K~4B|I9aTJKLYNWT0!5OPY5YtO3OpM6} zabL6s#E1rQqz9iFqlGgFCmDoS8iYEtk_+4`TEgjDY4}KtDxknTwzddIa`SNJt_sBQJxAand`95pnA&S zcXn?^745;dXc1atdf9AHktZUF@!{b5Vo>EmLcl+*n?l1!uW@ z3mvCbdj{UAa0TeS5i-+UGHb*OS)O`mhBd%w2+JFa+4MwVrdM)eZl=?XVA8n;@gF&{ zFw- zW-Isbg`KAW=J<-4qG1`qYr!M+7&|bdf5t`&iU{|wu5;S|l6iaZ8jO7||KxJE;YM?F2H6gezWfAKlCny9)KI$`~L6kGj9B{HQBGeU<4&JyNz5xR-!-|>vn=-)jIm+`ql zng>$ezYk!^M16>x;hhHM7K8EyPKo}#PEc|itTHI~v(5=O^aQ7bn|xYOasymvP`+*O ze2`N{!|w}9Zhg8zS!__!tF)|ZRgV#r%=D_`7<5NsX?V>QJzr+ImNkt)t&~)`D-ZuKRV^dy6{)??|w!q-%I%^ z;9~ZV$&eq@0vL`PUtCG+Y&`|Y>-GapwtPG6FxbZGPW?_rzbgZZO($KxJ?*Z*kiP7H zH-quQV^))_a^jW2dB7lNHWFu?k&|M9$VuI~40NIHT)=ZpLc)|Ya@_9EK zEb-n%2U5p|c>d5HOy@ick&u5zHu@jg$n8@NuLGe}iMwpUWXcMin0o81vMc}0&4#^v zwvK5!gZU{^N#Yr0^%Z52PEH_BAeR*p{0SH-?)R(heBx=TomU@6Tlv7-uruF1RGa=l zOC=1sGT0Ls7%>+Azsmd>nfd+1{9-Vd#zWsdRD&SCr`(zUPGI1j;5555G6lR%BcuP_ zEEqtSGyLrxi7{fajJVrQ0tM&Ql zDM?x1LdM{P&hZ)FJ!EfV&Zy5YULSPYF6)y5-e!F&DE9L{>B?wFIBFr<8AHd_$Vok| zj09Q_O~~T`nfQ08U1$An1qS+s6X;T&Wuzga6JJ2`3=PTSyNCL~zt7nEiuyhTOb z#d2bzbO#m^7<$Nokzz$rHhnL$P&xNdIU}TUOm`o~-+AS7=2JNlp>ojXVd`_AD2EI$ z_!-*FtUuZ$j9j+~`m0&}WqRm34F3xS{Scz}$n;QH82)Wf@OocJ^b|>E^0>7Y7d|70 znFzE+3oMNrx~B>h;;Lb57uO~ah-6Z*1!EmZG5}q#=srXSW@P+<48m1?IW-Ppifhe zi1d_?uzBua{*oPJ`c_{DX@f^#?!r&e8zERS9!%XN&Nd-bftOs|8jk+yj|$^=V|jw! z&z6j~eQe1Xyc4q^%(vazRW!MBYbn9!z}4(O_#TsrBK5yMM&2V5i+D`HB7*mThKw@s zCp-h?SeJI_k3b~1c9IF$s9yw#G9Wa_CT%f6@(IH1xV>8Z|KnW$dq5Uk2NN>w0frZ* zeMbrUzaIwuVGl%Pj1h;*qCxC7 zOIZ;?ho~2|$eotd$e>%Kl78>9q(%iNSuov#brgdO(;rt-+*In3jlm)z73uR@3!ms< z5@Evd!MpImi;y#18s7nn?jp5iNw_?GTPPnLENm(kl}a$Pt5mk7a!FUISn4V4LoH!B zW9_R1TQK3|@jS%5jqkG$q|c3?gZ_?hrr|r|`hbUFhWIK$D-S{Q53J)$+n5y4jspKa zHO1l=cYYVmzqpk}=qnc^oOu}zw5j@qPmo0~Y}Gdf@B`Tq`D5?TI;R9z0LATJ^(}0+ z&BMX#qwYZBRqtbQ#rNS6p~No6dRvxlpI$=@(q}c#$2r}Ftu4=!J!2QQ60{2H@`Lz4 ze@G&C{*U8s4n(~~Np!4I+JDI0i0y}f0|)SSQ~Y|cf{3Y_T#wj1{)e28@ZTIQ*+<`x zQGE|3wj*YNQ-U9PTbArW{1PA1!h1N|?9~+CcjH4~c9(BAf_vXrcwK(GTicAlvCZ#n zM?6klD&*3f?fzj)@Y!G-?9gr6++Wo6o!-5-1ZLZQp%)Ci%LSd&pNX+|F^m4=z$*J> zIK2;GPtIKK^6igm%v_#=Qnk#L`txWTclvkUkKjNzn%}GN;#gL}E_}L=2fy*bU*;!O zpF6Hy3Em8Y(c_WPh&Qu%=6HN)Z!K=rhUIg4KEo{ttshh^FW|7FN!c3HZtWe-`$AUhEp}(HC!~Wk|D(r-ov{i#qooxcpF$Lp6PofcQvJBdrgpF7wWET<X8Tvz7STt42=fRmjMcB@ zKjJ3`Q}Bz@ai%|3lrIfJaef?c?dBfd+$>C`fcvf<{dcHDLe~K}|zPs-Y2(T|kj21{c-@f?xUc4x#ymH?z!8!_fl?x9YQyK5Sm}bk@PUeSpryHffUOC!Fqc1}vk&=FZ zF)bBtubFL;rk)>ho{e!Qh}hyZD2c_UK%;c2wV3HspYV9gpsVGFz&3g%v{OVXr=zrd zYI~e#Nq0x&?3SK=25(?4;BnLLdjuiP7U{mu6Ff!Z<@_FQwY^X6k?4bCyH7cru?fPd zhrf9V)}V?m^Q%u{!oJFB~z|i^dZGyRdhVyg1*#6X<%DKF#p?<0?-%k#@$j5n z6MTXFUbUe*F+ITNO_IAe4#!1DF;!MNq+zIx8^J$fI zBhe;*&c>2~oyU2K?kg>B5m$&#N$+$F_0$|P(+TQiWL0+iR8PicoE!-E%cA>*r||)| zQYc}+mMIFX3v99OF~9}`Wk1H#_N)AjnB5FgrqsmQkbqD1WuM3VnP9kocC9)! zTaCvld2pT#tXH~at8LLf;i%Fv8_+DlfR9;+!Xax4(STZt#O+0$nHQx-gI4Zb6iW{Iqvx8B){FMKxqXwyvS%l4zS1gsjKHq%;g0q?hQB zo>ZYynU>KO1RO1ew#-vAORuNWQt=!r6aodm{P>U|Um5#o=z~x{@do;pAYnswLmZ*_a9+=h+Yhi;1nU6^^1J1gJG-ET zkk>Nw0UYxBBjlB-JGGROa80>Ait%Yfxs5?SwN%g%^1_{gUuh9uxj6e6&Q_U_JBgW8%C9yid1lg|T>1m=8{8C1f5r)IqH9ZiYHn>Fby;xI zRGdG5i&veLje~>do>!B}Ql5|kI0|%NwolFQqUrEr5(vuqSXv4-BJ1eSSKRR8?MZt4 z4C*x(I=c@4wySON`T|0q`*L#6OV3;*79mT}oyoY~QG4JtQaDmL0Apt*dfOOgRk}xYlg3>6F605v9sI2%VSNwL zVDK~YQ@R%bm0zl$^AIR?;zsK>FOr@Nq9|mSK19yY1>0D7sXC;#Yz+>Gz=4AjS}`B0 zix+!hm8#CjA&&VoayTXh+uGrU!n?_zM}OVOpz%qs{7PgA{5_V2-G^h=^u*|Zc4WXh zyD|J4xsHrQCL0T~N=BBorKMB>SPxB`Ayv?=q&V}6)Yj@tF8KGs&#o4k$y3LqEF|4{VyaxuHJ^YLJt5 zZVtB12gjs{wFKQtofMtbQjj<0h^cVA4E+~>v=^t_?HBd$s9ss>9BLRWklKWb3&YAR zP@=w4%d%qJnbNVSxxRN&jZ@I}Qk^yX2r7s>I!EOGm<~^&=KETr%@wCG20Na_Vm3xy z)9^~0g>STY{L#lJ{ox9zY!?SGm>nXw-XRj4X)heDuSb=j;Z&TwtUdnL<3FGBAWgEm z({jt<=tJiSaMLN3|ChoLAZgJ;3J3ec3iQ<5;|)@v%4mf2IhN!D3m6zyb z%mH4iQJ!XZ@edzz^oE@t+W8KK!p*#PzaWhqnMzgEUbM}0su}k`xP1}1?#m9yF_1-4L^k{(fUdcvfQSxvJm%05&ZTrEaj70j^6FRJbtXyH;IxI}pwF7Ok@ zLVbWF?cm}1`Ud6lj-^}{{HAgty8wDEv}=%SqgP_MXr9>olTwR}QPAgXp9C<>g~Kh!I-;9^|r z>|feS%2o%HDUVc2LVtB#{wuu{y4>5U%iV2#OLVouN*69LZU0n5f|$S1^)*W0G7r7F z-_*Bc{Uzn)_Q=w|oB%=0)q1LS`P96udBBGeU&x2%Xt2;X6h^a1JfKxq6UGhv&4+5fpd%>^G^BY#z& ze)+F6=aGkox;>1cPvyuBUsq0hKp%jR} zZ1W{ZnFjN=whQ(#ku(j-PzN9mnv7v0SyO!k*+HN4cpCj+kA5S2uz&mWYNRS|t=dp| zw|0?WQK%oz9pNrRluA8r@oy{y+~L9Mhw*p!w1n=dHM5QSs!he5fKC3dYT1(;%3p}& zj8hh52{&I#5`hT95*b$;99WM_OSt!~c9|=-DXUY`m2tJIZ|->>-HAHx)~-Nmk;~*g zjA*HTdj}wOsuSM+Gd7QlD~%HqP;@QJPlE$$Kl=z)h6dv-E?>}F?+ZRqhf#wsIOGC0 zb;JjPxOXu4SP~9@dMv4yTuNJ^y%dcn{h@=`lc-}4W>e@zCY?|69ZJ}%CZnrCBaTf{ zU@IC@ui7-&*M)4ipoSFxHc_?5Tbz1Ti<_~0%3wU@p>sH92V%8@C%PEN;&~@5AT}M0 zT)mPO)e!gu$zmQ4$p+H8h<+sIywDzZ&|JvA(LmBo$iJcuBj0ywLkEj7lFcrPRI!JM zVJn~R0?zHAm`4hw8||VP4=OuQtfH_uf5}wRB98;&5JXq)ppjLfyS*`OrW=rle}&t{ zi=5mV1|-xAJeci|wg-botA2(qBG{Zy*FJRMHLqyJm~1li+h~ts^pC|@-ksJ0QsMba zWAf6d$g@#2iNPLqWk1qY(`q2|Jk@L{x9ZEp0**d8NtO3*q#Rk7zne%r>GRLA`|CPC zE&mVrS&395^V8qLPd~PIGd5p>y7hly@@A2O{dSX=BDfSLZ^W;t&6C)ZN*dO%ckak$ zTQ+%fb$h28`k<*Z?fO*nx+bG%W8j9qM74J_HeU)UQAPNlo4gy4po3q%Tl4XFt8!z! zA?zRKTj15Z-JEjqi%Ya4+*}9qhNVSpeSQeNG#qt}DdP`3t~jiz^q~XtGgr8&WR#=u zJk~D3K!nck?_j*t;_!waf*mj5GulJ_(O7bRC~8tVEv-Xbp`U5a0w}AEJip+qdYCSR zvoXEX7lxb$o&CjKcRT?uRY>H?TeeoVjIgO5h?@h9lxY=4n~7CvjGM7afEhOGCl5hi z-WZ%3hovzXsRd zRBM|Mi-06Lu=+hK1J^n=52I7 zu!m1%Q2PmrWR=m^;b+0?r+9{pQ;@Y5;DAc+N-RemZ;WYyV`L2t$^660i8XOeArj2h z;JKExL~b5)q&E!DIP=dTo5nN{56edDgjn)kvtnEM%>FXm#{jS$9Gs7jg`mQKU%M3yb`&Erc)R(e#sbUVTjA&w# z5a$fxJR#(6-NcD%o*R=pUt zE6%BeH8^{Wj6yFDTZCZC=iKy6h9MjFeHGaW?FbBCxa}tXX4IoYmoR^1Wnjphnsb2hr%1;uep*$+@t4Z{pxd>p~gm zJQ5ezNSbpV@dZtUw}>!kx}`a^k|f@{rx*5d_W ziZbgFl(e#wj_J4XIrNWqMKb`S5`ZA@&d%@G|_Cb;G>4ZzOhJzB~Oc-L1Qx4|hn9kX<+R?Zfi{mvLYK=Fez925Hu{4LaqKNz= ztm)rP=kG3HE(G+S7-s#>Xdj8s>68y?7Ht7XytBit@kBl@2%P3BfxmRW6&K|lUm}Zm z=S93A$7}z9HJ&X!j`tA9+ceS|kMd9&FFh**6ufcTIUM&s+?x`i9L|*0J}k{@$#Kp; zWQ`+eF#d}$1}&d>*oxyuZeP5M+@)CFcdb){E_4NCCBp= z$Me08=WNGwE64NCI9SG-A1A*>4!pnPd2|!|_kL6kE4?W_?aybr+Mnk+o-cPiFYwyq zXE>gh=h|_<CK=ob#hdz28`Z(WVKQnH&({I|& z{=Ca!KNs9!$H!l1f6lqq{(N~G`*X;lkBc1oIO7U?e1D4l*>#!yd4WS8M?3WKjAW0m zIP~#yhdwTJ=wpsUA2&Mm(d#Jx0}lJM&|$w6hyBWN)R&D8{)RaC3px0k;^42TLtmZ! ziKZATTkA)1ru}(}Lmxs8eVF2CUxzsK!`YuY?r2|~{VB!KzK(Y2M}|W`Tn_!Ha@ec+ z4ttg3(2oNSc`IG*`5*7F{~3<@c)(HrGMxRFY&*RSk}t+B$~o92{Eo+wBJ{g}=;Bw@ zZ~RUnJA~g|WPj+H>=u5vQhxBekn(|FFX=aao04ARcO$hA_?<^`#_xFQzu-5A?9xFfiBk^ z{dX7HHN=~u|Bfd+g=at6C;VPcb_u`7b-7gOa#=|Fh4;el;I}W?8~kRFox$%JUG7!7 z+#k^8o<;Q%c$HpGv%ZeEoOPDULTq|2>YyC!#w~|81(j zZ%XYJ-al}O&X>-|BAt)Uwg6TeR;`$2eH{ynazujuKE_5-+A zPhYebcoyvheyjBK7wYLx(aWc=UOsJFFx@kH`7F}qBJ3u<&(h_xk?bO#=OyrO2H9zP zj^p1pdO6O}>16424$ycF@p5$eDSG~!(l`b0&*=FL(KrClTlM<2K(Aj@^!n@9^(af1 zljuhx{z9^+_|4GeGf$U~u%mdtNH3rHx_pM{<>PJ5-?^^h-;ge!t-5^X>GGMP%O^+I zn|U5RJzX!V^n6w6`npihpHZ)e81+-n?`YjFh;cdi6YT+h&rmynU&Ai!((RH_zC(2W zje6Bo=WDB@-1_SJ+*B{Okk0Q6o!`r;{UW(gzYo8Dy*v*Xc2h6U5VfGa0y`q5OUyFk|umri%SULP}b`_C~!uI-}d$jk-QB@4)hP>G5Xh@3ZuLUar$=qvt=Q>(3%x{(fCv8+E(rHRR>c z+pT(jL_Z1n_d34I(Z4&c^Eq1AhrYTVgmgXF^)r|E4E_0Xy&M9L zwKZXcZr;Qmw^F?3Ejs_SV<|dDUSXO_7_vhf4B=JD{L+zd!Ra3D$aAz}_k(r_zkV!Y zC23#lp%m>43Sn(0UEGpIm$|6pJfUHfsqhknkPn^bh#Ob3z7TtG!<%`#iyeUpa0<}f zJT}AA9q!uXf)@xrlr+jOm8^#!_w-&h1?K#S)n%uRv3yCJA0UZ1?c=#5pFDHxAo*2v zQxpF~{@U1AL(bV(VezwQnf7hIW1ad#u|9{7#eGkMd~kBf3wj&uQ+&v{==Gr1hZ9RN zqWbfhu(G2S|M( zcD;44_2wKa!OG|A=mmkL;YO5etd;qc^!2$^49FJk&l~}#qU~U^Y%O*+YKAN@6hXaUnv@z{mosoA zc_I;6t5`ztd$cMOtpl0)+eBF#SGAw=_GzTN6@~NmS;M@Ej3I-1-YRIZ-jX-r;Dnn@ z4(NH?zTg&V=NAl{^qBUo|ts6~xSs*xzgvSA+b(9}dO!1a5$=rQNOA zDg?E71Vx7}w*LH2Ie%tt2u}1k^7kf|-hU;3sa$9U;X<>N8114kQ#JB95oPzC_7b)& zL@7JNzk&{;l=F{>lQ`)tyJyKC87r}5X0Y{XPt8zM|7q!!uL8sF1=Mfey+HL_Sh;V+ z(ml5L>Ct3m7cH*RQnuKRfgP(Sz0z15Y>%z5@p4WL?x(`7o(r{~?{`#ps&ddns;Hb# z)=NF=&!0z)tVgSmW3KT==e$L zUO0p!GfGvS5`qy{P_++26MX3CCm#O`!7dMHXEZpab z1D&+z`it}-aM6%j{SR=d^LbW&wKc9<%Y=2$)>ijLd~ViB38CU>e?wP-35$S@`?kax z+c(q3YC3&j6Lv?#Yi48N6mmzvHL33SKj^#78^nXn>qf#$VjXyf zcHNFm>ex`S;5%qmCooU@O$gq=@YM`YL#I${#c(CT>lv=c#&vw{Ml7v1AiiEea5cmG z8SY8McL6r*vyk@yzP1rYfSMrM8cuSUT7WLiIPG6Uxy1EO2~~4CA~Dzpda)L#Q&TSm z$7w#6mQEcZ{7W@DLtDfqWzjLBE)SYi(UB5{VzC`d)z5oK0WIxCU_LdE=wLq-^{d#p zl;XYU(FhRs_FluH`rsZ#Tc-r+A&909ps&TV_=1Rdml3P3J~%B2+ob&PJIy54wG3jV zY%O+Z>c@$|(!hn4{A2Dz-YxzyH7|?u7K%yz$+5IwJUBH)8^wWCZ8!(gwf-E)92)9@ zP`F02{R#x9XWG2kWZHI_zt;uY6MAM_fZhCoiC>-$^(8qKzkAvseb?OH=O!&)lo|mu~;zXoEd9WDV&=4)kP_ zsV7r)$PLeL>|yQS-m|6;v@vT0^eLX)z=9p;ek;`NGEDVoN)LxV(HRe@pMtsK+MLs2 zdM?xt_$0}6Ibt~pU-$2`7^h-!r<2Xmx`3F2yYh8~q_OMieR>^SDB`4w zWT?lC3*+F5EX{hM35CHQ!lOkP?_JWY+l}`KH$}MYLY_41t^0&bj&~Q169181$FMm) z>#*7rr+=fTh@0E1YExYsaP&0NR}14k$Uw!r_hRtSIu1LEiiXPhI8|0{kruj(EL*e> zefY4lXmi(~J4X=0v#Xn@=HslxKBYFHTOzkR-I8$kB;JE?;XiR6HAVnvyNW$p`<`%J zdLipD@dSRX9~65?yyKC$&o$K}ZhMIsuaAeeLHdn&xq@5q3HjR4sUEm6Jz;8M)<%ET z573@&DR<`&yAAh(ecPxPuE)aZ=lfVI^&XKgp{wDriPZ49wi>&KA(AAoItcW! z!6m;iEs3lVIvnI3--l`(`Q7)C6L5{H=tOiwQ&jA!Pa;v`JN))UvkYn(I8a0Fmx}6Y z>>488RNrb(2DY)GOM}XXVi&J|R=Oq9g=n+q!lB3K+JMaAJT2BnDY=U)RE+mohkNDk zqhxULZG+;1g}HH15(d^Nu8)w(Jav$p#FR(59x;S+-7`rP*+wd|A>krBU=|s!1fYHT zBdhUG-%<-7*L5gsIiL1RxH|U{MMm38bM+$Ig4=PU71>1iF%wCVw57<#S&M9-i?(0{ zTTIf6Y>TbPu)X1pp~UqiPz)|*LDkQ@&myyA2rmV6-CGexv*IA}(Dsgw#9UYABxWnh;*zV*q`In0iwjfzQC z5-0lLYiUVgGmPLNL}9<_`uBw5Y^`@UY=Pc{qa&&4Vb_siK~K%i7JF1hbAwqRYkPz4 zOFRX%cwO1C@z;@uU*m|#2**LRmdAP8Zn#sTxW6hCuImSK!)7O7`VAY zd596pXe&I3ru})4GjdP>Pxgx$>#Bam#SKnoePkc2lyYQGa%f2>O9P0u37zKq`-Xn?c)vKZgos{zjPOJ;mbZyO$6 zeg{ySQEqj8Z1KbLt780b_cXv+ehV0H-`|R7Ric}U7OMdJuM));c&TC8cyyZcBN(h=Pv}pMuTI&&YLFDZ zf*~00`06{$S0`kt?Sl~#8{r9E@A#}ToF~{J`fxS%7-s+62fOQ#Lr@J{Af%k@3DJqd z)?6O8rYyC6EJDHsp3pmvul88JA`?hS@3zYn$qn{|3i-pSsQAKc-pTx|F1@X>RBqy=HUGvyvH#A0nZ8P{*f>&EhJ|~Ad4$vQ9eF6GUZ)(56YuKdH5p{ zDI>F$KMN6=#_BdVI)kf9<%C zWMtk~MWO!B-%8yVi+X7k>IG4#|H;YwA)KWO;}@BCZxreozm@vzSkz0RP#+bA`twfS z+uEtyb>mKxx?PuUh(f)AWIjD=lZ>5uTomeBzsMTdfcltN)T=;6Zv|}iU||&M4Ky+- z7WJ7?s6X;sslR{3ZaJEntpSd<>;@|6$`bp&1a#i0_e}j-)LL|&QCoeVq-fQlHB+Dkom5sI9?-uIOG_5uAd* z4}jSR^e%}vdXb}|^o-yAo$;st&iK85XZ+UD;!7*h7afHi-3@#9H9tnqv$Q1YC(HPg z2>K4;#$kr3K?&o%hM6CqwAAa7miEv)nDJx}MtQewKn)({Q!u~BvjKx+(H{vqk?8k` zPQTJYzcyrMxgQO>#q_SQIN-Al=txUxyorM|paV1tP34g&W-zoaA7dAoQ7|V)dc~sf9hx6$sh}WzTv>Lk zwT*_!MN_5`p>aoc*PG3NrD?ax^|mHt8JV~e zh4}ag#Q$!z>lWg@V-fEeh4>#M5I37f3-J>_#NfPn6ym?2J#dQUuMs$ZAr|r9BXhIM zVBtJF7V+OBbF(jHA-?BO46*zkng1<dWsazxJM#rEP_|MwjYc5lM~Q5M;=v#KRpQ2rC)yebOp4 z1gmTffp;7EOj+B3KC#G$x<@9z74IXpGY!cf|5g-fWbPM6AwMrF`TY*=pNmC)4<@1_ zwPI`VURvt+jQXQZHlviypl-B}*|8|^jY7HFpnOpb%6s7`11*m%lGme9Rt?J6#-Lmt zrYt79p%T<{$J`NAqM!lgO{KTteIKH{3M+ons;<;d&i9_KMKde$w^acp3w;_{8Se>Q z7mIwlgM1*^qM27DaIs)L*8^9~CGn%YrzcQvF#`E&c;V=BX~=zCFK1aY_gbJK_uN8T zQV`rf9E*G<$XHb+%>6$o0kr>N?jw`;gvrxfqh;g+8J9Z9i&+&a6G8kQOgg>Wmt+q~ z(}W{WyqK!^&VExc4N324AQ(*8fb=T77fOC(429_zi}Ht2D8Ft{PKZJI%s#>MZyZKo zz+;Anj93IZTrfP0UmzWUkQIau?-jCW!0O4UNq@*+ z7#%+DHR2R~Uy=v2vn{~~eY-&_OGe@tZ)8CLR;59ou{cViSfP)YTRBSnD5J8=qePdb zRgvjy-$WLIv@~-3Wl`eG(#psm%!={>mK`Hzco4_8%UD!Qw^T8ur(q8)Q(Acc0N%^0 zA9F4DpuW20ZJSWlFXjo<4WjAj;|X2(+SGlq>=5n?fx;b8C|~cSygCBq*O_vJ-Ulep zyc1{LVQGNIQs6B-oI3n20COaje@qOf!Xqiu&g6yp7DF~Mq8CFpP=B)r{6sfm5G9lO z#@w%1)72YH+zLYD6nB__u;4lYv_By5KDs2*$9?Qylg!Faw5BU%6i9B(9-HLsvY#97 z>)0e(jQ8+R5u+$M#wco3EaJz)&6kb%PP}&#k2H#E8jJY*QHZ}3fq0}*)Z4pbh@}>b zA9~Ye<9t8fJ2{Uuis~JU_=+gRUyDFI(kSZ0t{9v@6K-H^oEPG~lk-TUs25@pzdH)? zP7#Pl8bxKtBK~~1J-2Z_4ey(PT9_z+oWty@h7;!2%a%kBAc&7YVZweEIZr(VB%vO0v?|6RP{tCZA*4Qd=K91#CcUH3h^5Ral4@nPgY^e8W>23#X!p_3|#P< z4Dj-w!2o5=n2`bTe{78*x*Z^5(|*z<Nr(vHk|bt+7!A#+y2+SaN(aR`OdujV>ya0sE4&$@=sBZG`?UYGEm+hS(z7 zb-V!Yp(hWZF=78ki_rq*AB@K2)>y>5Mj_soiH`5#~I~V(L_1#{=}~1#++Jd zHaMS|B{z2jKu>>clgUa(vC4z>7N?oR)B0T!OkZ##DDN(wm`4>1Y zLrPyg>2icOQF!Kq*JE1ZmaTXxJvA6%nimnRE6to^e{@NuSZMAF|JPVNAG!&tVNOo? zI93WzKrl{BlLl3qj)-W{ME*C$$p4001m}VjZ2tzL3opmFz@6!H$SI&M!CA3ny<^T1 zqM5=8L>A3coIoGL*>NMKuo`a0n{fh)u zAg8lqaA#=WFs5hJ8+-jYa=TG)>sb~q-31-KKR3^^tjdzL5FyXmRN1po~`a9#__&ejDt2XtXn#*71=ab(V|K;Bq z|51(~Vad@YReW))S+e0ZWW1-7?tRh{tRXKk7J6J{(7a!eFOhGy=}Oc*7WI>1rLw=T}A{?v6m*9GqE*KNpMm-fJVvyc+MF+7f9BykjiluSOw0 zI|A`YQ{X$RVu)pA6yiN15RWtkJ~bBcv?#tyJzZyG z3Vc_k$bN+W8K%H1L4+!cWpIWacNm;K9nm2>C}>5SnQ{5hj)q2adXZazv3h!FHf=U~ z5M@SMi56g`y#)|nL>3!;Q7r12QK+W~>Ji!(C-rw$30Xzv{dgNw$!)yv!uyEr%Qo^M zvhdzJ7WMa|P=5*Ur6qn(dz)NxXInjpPOXf=_LpH}Yh(K(VaffTW-$o=H5TEQq7a^` z6TT(}VPBZA!vhDFdPD=l@W8=)nFy~W|Dl!SKjdoYKa@M0{fEB)*c3=Z@~KhCdj#L2 z;XO40U6HliY&yMrlvuQTW9Y6oKDw}(^;_}Y$$Dh+ZDWy_qL4pLL(3%w>yZg>{m7IF z^==Hep{=Dk5bakWpm%q{x7dVHnvM4#>x54|KmxZBHv199VZsilArN@kBy6wnWrDEZ z(>8{Zw2npi9~lP6cEZo%J=K@^7=)`o6r!Mk({C6dB&fGxAdSHuIzqJN+vOp5p_!ne zOU!%^XQ4-#v@t$NFvbT_rmwn0iGCu2s}Nn{2K(AH+9w!UHyDHH-+Z+~WViuWC!>Gz z8h;XDaEWH)yGWf0y#EyM)hUow;>9;U0gXwp`m2EVUUs6EVJ|-Zk4e-rOvd{^hlwUc zB3irLQkq6F3138f>~=Q6Vyy~54cY{K5iB9{8rZ9`=zbDzYPf%F(0!ljBJcCXqFsY! zDt|1pt)h{wLo;Aww*lSb%S1KGbXdebP;qq&3aS{hmRqq&1Ej21tNH`tVD@uPTy`8mE(vFvqVYpP+@ z>~&x{-oqJ8_<|*bUBPfMtc#t&P`QpRu_=I^@L!@3o^B&-dV<*q|Ah%h?m-@C4bDto zFuH~ohdj{Mnga>|!xs!EX3@SHnlW=s+}*~+%|32;eirKaI*4bT!Z28$p-l)+KPsn< zIkwvWn)!A(lYzpESE4!i*zhESc8j(RpOzhOEj-CqguiZBZKmLBy*am4n+Nb-_XCUJ z26lfe(p7(mOnM>S+et?n0lQ<7u82bV@dl(Lj(-=M;%q1oZxn%KG!RIn(eK@{NH>Z? z`fvlTBaMAeeh`D}UQqt8wBi|Qekxq_6`pgy1VvIEIy*(D`zEMc$G~hbYsQ2Le zF$B^w3h4_CxQ;aDofV7paFB>pW%3%3jx^$J$D~bbU~~Fv0}|0!B+2JXY@E>+iJV6^ zSH(JemH}@ub|{HodU75}l)vz1BuHlFQdbJ6Stdw>UdtKpimdgI*Mg=*D+#0DvxhCVezN6pYQ^lF&iYi4M(89Hl*Zb0vib zYGmeem>HUBhTbwmo6XSAW{9RmIgRdS=&xqzq#3#gv&tOrX*0Ce47I{kJfn}8p^web z)Nc&*RWtOt8LBfwH}5s#Jz|FDo1st4(AE2lc;n4b+1JLqDl^o0m+>yu3{5mc)n+Jd zrx9ZdUZHDU2&^-r@cneGpel|nhcN^$SX6UdP z%H3n2Hyk!Xlg!XMGt}aUfnNQi5t?9zs?AW#8UuaM41HjRJUCQ>OZ8qe^e1dQ<#(T$ zp+?^u?*^Npf19B?Gt~Ex5$_E%blME{_`yK`YKD%Pp>CRimYAVRGql?b?KS1>Hs##b z4D~TXlg!X7X6Tq1@_lQh<}&H^H$zvLHFU38lT|a++YGfdL;u=f(0h5C5xUh3ZG-CUQHWh zX~mg4L(~|r@0N%@8xBDqigQPf$;#PK_J70)uhx^NL%DC(*JHD%jDvlKZJ>Rf$3da) z&QNPmz&ZG32gSK>^424A)9vKiRee$#Tp9XyM?;i+sj5#9dIaeZGgWXjBUdFkIIdox zli{hPA0mgq9;ACy3NbF-i&JUSzXc2X;fVFqx0Z$K#;5+-Q3 zRDSwhf^OMjdW10@MWlxxy3wT zKG>5E$;Ju1;>2a`(hN$L&R6CmvGs2h8HYQM6=$F(;#6gLzFB{#|WI1wD@=xk*9Jm!?o0bM?H zb~p~A9*e^YAKN8m;FxbAADp)Oo8)uyhX0j(+EXz^lF!S6?(dOLjzd0O8p`L-3&auq zKBS2oCdzT?fiF~7k2?`o(AW$&NR=INY2KPTluV;b#=sd+&DPo<#$&MgrMOaK#cOW* zvg1o-g22N>;7>o+;hv7h6vK3B%M%t~G8RY*4~kw4go zfJyPatiZ?+2~hx{!DAV2$M9}~uVeTrf(saK&hUo>H)i-@ zf*)Y`NU6y8D+K@WgUGi`@VyLw&hV22Z(uls;C>9h$MAgwFJ!nG!2yQnF?=V%Pcuxn zrmx6jcml(z1V75~rv$HLxF5q)NGt({-y!&2hC49ap5U7pewN^qWHN#sTQa=nQ@|H9 zJeJ@i44;}V^8E(EM-Pd7_aQjM@D7G62;RbQ7Qx>!yo}*d1TSLv5`v##*5)&O17++v zhEJXYJdxoi81@i6k>M{1zJ=kT4DZ2@)}P`35}d(s7lvOWxFf@VCU_>pS26r8v3425 zlL?;6a9xSW_gaEae=qVqnBYQ&_c8n?!8;kwA^35ID;a)@;N=WoLGaHkmIVyY`ULPx z44*p-_$b3O87?4rD#KqB{3FBp4EqTl#_-1kOPsck;bxTf?F|2o;86@;$8ZgOeKo_= z3BI4<#teT-aQ$~8-y;Yf%j>V=VhJ#O3Bh>`|AS!BbqIF6iQ#wfqg~JN zEP`)h;ukagEWu3}E+BXn6F)jlzmLHvqnw z;W-3f&+ugo-%MXi438tY4a29WihN51A3G@W-Iw4i8Q#h8G5ly-8E#MTbcUBRyo1ty zpW#ahE@t>8hL;iiCx(AM4ftw?r!u^rh!-;a6~Rw2JdEKd=<5LtFClmzm)PwL*Q^KJ ziQ&Hxyqn>x8UB>uRty&t{1wCXPq3a7Tzf#|dkDc>7~aqDvjp#A_%?#`nYAj0_Yu5; z;Xe>OjN#W9t|a(nhR>e@Jf7h)h8GY#jp1(yeuUu%8JhD3MYz0k3BG zT7qjB{ujd=2!5SmH^GaTxXQ3X#LF4}{ujW%@Yjzq{4{<25X033uVuIw!;cbt7sLM~ z_+y4|W;j6b4GhmF_zQ+5hHoO+!|-T=KVkS-vB>wu1c&yCeD@$YojKpi@Kqq9ZDROF zg0E%xeTM7sqy3xVM1q?#{3nJNtpofF!-szc>}I%-;pYf`oZ-y`Z)Da6Fq}Z}-3-4= z@M?xTG5pZpH9Af|D2?Pw--fYbT3*|AXM;dquwQA$SSHyBI!A@D~jK zk>Gb3UcvBAf~pp@aqgK1i!-Yg%g0UN+7Bo%NbsRAMHto_Y&NT;fEORNnhW` z@G64uV)!nG+Yx*x!>NBHu#^ z{*>W^6NFf@3EsnS7lOZGcn!ms6Z{dwR}s9E;WrpQy9)4M8Lm45cqzjb4DTVhgyDSz zzsK+>hCd?seugUvUdM2EhW|=%F2f55UdeDe!zBc_VR$CNpE2B&;lB_Z&u~7$)eQeQ zUgW!&;BR*dvG@pH#_%T$4{R{_$GpzFua)Ikp#cP@Wll8VfY1xuO-%=W%%e%fc*?l zV%SaaScbO{yqe)b3_nS5ABGnZ`~kz+40j?pi{a-8zK`L{8U81+b_v512_D4o*|8$u zvk5-AUF5qz!PhXnhvDWRqJ7D5M}mJ~_#=j!QQH4y_%edO<|6qk!ykSG_|FWVt^vG* z;Sz>lA$T&wI|)9-@cj%wN$_BXmlJ$|;arCABRGfQmk6H8a2tlR@S|P9@Kl0lFdWZt zBEjdr68RoRa4EyzjuB$%{y5;T0c(RePBz6E$eCZoaas}s%NV|#;NA?s%J8WV0ncan z?2mvSWOxR{I|zP);XMQoXLuyT%LpFI@J9r{&u}+}y_9wrhW|?NDP}*7;V0<-%y={&L*%-M?4<{sFl4cNgyMZG>BY2g?cf zdLG1`yW*NOy3kL~s`RPdTBzM{P2j{7Urx6qY0iHr3FVhw%ICD2Gu(wcXlt=er5yse z?-aLien$&LxP@~hZV1gwHSgd2+NVB_Lkvc)k?A`zM9Y_P7h_+Sk8a-V5?%-Dm71q) z(XZXygln>JRf^U~qScPPR9PK>3rM@Q;0xttoq`-p^!vn3n{M2)nu0rslh)_9h{J#4 zE;FCP@FDFRZDQ4DQ5ZU zg49fJ{bgVT%=Ai%bpxtY@i$0C$-^$0{%P5C=S!w}|GRN7oou<6ZUV7Zwsx@PUb?xm zdN=O5KId1y%A@<1#r>vzYt=k)A+1<%!_8nLSEI0S&?)3Y!ree+5x&&)9u{pbE;a3i zCAKZ$OHDTg_#Rriuz}>9qW!hGA?IE~&H=i9mS_oqV<7@jaaSs2P1lXk&8Ap?1H}}j z*dg)(5cvRz92alyL_t_DImHFI`fZ!IlUHjik{p0_w-%I|$JG^!ao?3>$oYA=^8Gvg z?9$a)mExYqlU`|TViPGjFl}=e1hEDM zv2e_{jhM71ltdYVH^2C%aXr47OJyKrokZ&`9&H-p(<%#2VJY!p`AV$E=wJLoD=vsn zX{7sTT}Ui;iO*BDuKJfKCm{GlP{3-<7D_dp7j~K>BUq5x`yGr!M>gjJ3Lu)`?Vl`x zak%?)v_>1P@*w*_H-N8#0OPd3ZLO=v6b4=6jeA$=o=w6->p!i-t(&EYA)a$*-)g^4 zyMI>Y03xFO4aR3h3Zh{_Pgci4eCv4ps~n~4!NmpcL%)x0Q3+Jn#uk8@k3~&cuD_-u`~&yhu=1$3hiwGy0ogTvne%x<#ONQ2U<7rl2e< zM?pDsYKu?-JwNjLCd7lhzPpEh8_?%#>6LSGu*)wZB4w=%BxL1A8Oy&!c<6AjtJ5QX zzQjitj1O>O`$_E{@xgEy&pc1Xo|4Pt{A~f{&`=cIaI7mQfU7Mi4boF91EM_Cfyh;- z&tUc>J&63DNNXpYz|KeE%op>cKj`M2{h)QIwP=tEJJDg8D^f{URQ#U{WiBp&IT)vH#+VTv770=^6mx9PBq>== z8VcRajmxTB1G`nXA9m|v`Y_mWGs3W2JMp9ad6SW@uJ1N|R=ay_&oW#+@S+rS^!m{~ z#ro{+kIMShifq8lHSP+xFquIETV)@Nm3A{~sGqE{Uva0wN_ne&X`VPgTtAYCxL<*{ z2R)_IlMp5G=j}hrFOAtSN|wf~7O4ynSH>%!kzIhD#NAy@qzreOE!7WbSjnj_69#&$ zJFP*|E=n=UOP6J*zzQWfOK+60kH~+zHNW&sY2lqA4|*njz1(y1Pl zS+|tJn*un!KcK9y-$G`aJabUAxO{GEQvDX)Xb%-eyOc7|#&$d2)bAg4vtb>WA0h8w zSk&8uKx{c*P6JEjD9QT>8X7O;=|S5G!9xOJFPlAu%}8}b=Fvp%7kM}Gn`z50vH@js z?SnG4BHn@>|GQTxQzd>hKP$1tesTONfGhsM@hdp~T#A2rr1+(GBoy^5ElI*|g}>pG z(vsAKqA8^%nF&SxWthYKyRzl{yVK?TNw@=j=3FAG4gyoS8(qD`A9PouOA0j*tzXDP zRXf;x>wcs^gVP_t=})5c=dTy=`veoy$WAAQmlFI0!+#>UjNw)c7ZW^`;X;CEGFv}VSJaN(5xMM{v|5Rh&H1vZ=DKMA7F*W(Z3!qHQ5*=kQss%U4cb8FqQ+Dul^`c}g^3u%_EPLgx#3VX>|55j*q3aPgA zOnl)@lP@jbSoAqQNKl(8o|@0a_oZi0QmYXS?;FFXF8%~;P|XK(@z@AwWZ?=jJiak% zu3x<;#jj3C@?%S(S8b+sSqtG;>?yoeF6$gun1%iC9(lc2^c%V~mS)WXMHs0i5T&%_ zn4I5XsqCt|qyCVz@{4L$9F81DCtb7jQ=g~!>hRjE%8hH}vVglbE>w#yTeT~Jwy)G| zt#-xJ@5XAEOT4ILDmBZbRXV|%cc3cONN>e`BJGZCzZNWff*)QY=MTP<5BeK zvMRONu;ch>9)0v6fAq^9@liE>l!K47#mJ}8|03%sEJE2&*@1k?Qu4mE^sLHW6&p() zfK5q}g9AN*V56^~PE=Nv9@rDJFrKK*Ev<)yrlVt-D=qolpPx88;HtW#{(w=Q2}Utc zy4F$+D8@EE>)k zKfOqFEN!RqOxkSmN(?r%aTo-^%gvpJy6i7|(i10D3~$CK5TbGMLqu}05BeOrNy|wK z5J>f_d2yIuz;NpMv{FHeIs!~?MjaY|;C{>lq_Cf%_>OjKkK-1MBM!DiOm##ownn@~ zkBAi0iE6q@ufQ73qeqj~4>-rgN!lBgG$I8v%6b|$<@%}Mshe?>{+t#aEsVF+TvQY^ zn=17#X4BWwW$n^PvS(zBKSw~gr=`ofq>+Dau9Sh}*QAVTX?^lglb*c;y%$vCnXPtjYQp`UO|F7uGT9p$-`_z5pHAZ zg4%VZn`#$1-cjwk8c%+;SNi*~;YdKc9;I)5EtS8B(vb7}U~;G{CWms*mw@+T4IRc~ zRGSNgkhGKMjZci2N^WgHX}3k>HGcqVQgV-z#K*HLlRdw~mF|8X(vjX@Fjw{@#H!Q{65qGN{(*5dP7;2-Z#{zMulgsMg zArs6L2_RjYhbKDGE*(QW%?+xQ^GwQ{A;aDuBfheZa*ml2pd}cH+H!tFIOnX8ocUAd zIP*znWHa;A3s$5egMM}LIBhIC5`J}h0X@h{71=KEMlPLnJ1ly90cAAiV=U1r&pbnE(cqlI73rIC@q{q55tT0$eW}E(N@U1u!VRa@Mq@0 zQUxfc`rcb$C7{5!^Z+Pq!Nve>D88VWYHh(Fp1t zyA6~@t!o^r5QxvBi)AZCeSR>lk6)>ll1B&%(3258)D~@Vhf*p!LSAJcIz#=TKNVj{ zHqZOurC-U|7vebQ0J&o)P`3BZOG zaP_PijX7^vZB%J(0z^YHA&W1Se~Ju8D+9f*dQTf47-a>W6;|4`+I`YRUHuCYQ*$%T zazM{AMazP<%sPcU!UCi60|C5S`RV?sC{z& zT#70yTjiYHC2eH&Ju&PHwit?O^X;WiB*hi37T@I~!nSFL(7qM;gVWM7v-W6{P?&x- z5jB5GK}G%aE}<7dNtBB}0ZR#-apfyHe_#sI+@ehqWr6rg9&$FNfa$K6bJje0pR9Vv zAw|8}>wqTjt|YW~)WrQ0R3|@PURkuzB#U7bnoSGob06xg7^L%w?6ieOf4J-;(dUXQ zlw`G>yI(y1l4qW46hd@3GJCVgB)A z3`j9aURfxvN?6keBJN80|EGGDP zM;nA`u`(^Gto9CR)<){x23xu@e3kRvGjU+%9o88)F=kedXleMw2&YgO0+fSOvsa== z9ye53Jv{UpY!3DBF~&yxpV7n_VU5B@d?d&5C)nbzwZva$jSpMP@w?jMKW~XY+Zx~G z=fwL~ejc>MA8d_p^0V3&zk?-yx;4JZ&vUl;ZcF@Hw2Eeaqww=3#nEN8!5TjbKW|v# zzi5qb;|E&$$#$s8SE5imzW15X(sWXj*FT^EGORn7Pk#$N*-8(cGF{%b{H0mqr$mfD zbCFfvVm?JrOQX3Jqx?{nY?Cv@~hrdIsX*;uE&gd+fYALecfKkVfvkzeoeC3 zpJG~tSA`QwDEbizT~Db{VrD|JNT`pI5cdZ{oso{kL^|^GThfbW@|WG=p-BlWEzF`$1EwWbOBo$7aZ{eQ6VKQL>{(x)1_K^P=AUL~ zH2mV#&-kJLq>ROBmGt}6)A+lBVl5L<)sNCP-~q~@FoDu8trDeKZ=@sc5_c<@&UIAF zOw%a`-xleR5j=|aOx6j|^FHzXykJS`T8#bGOf8|J7(ugCp<&_Z#0OdloNW7 zaKChgCK_0pmg&PTU;`Z`mi$gy!q7WPf#64iINVRP0t*}TJXk!xBG|x0R_TYckx-me zzB@TCu5%f6I;D!&ZlLY+`+MbohehaIx$1`mZ7V9ctdz|K-mBs}>Dhg#%6b-zOy*@B zR;og869s)ex2!52vuc#h(k@NBQpKd}X+U46eMyb9E*fQxPA1sLg_6-DUnEr&Aad4W zivA{|s|@uH`W}Z^7V8De#e)fmO8oo8Ps1E_3Go2)ca!lesI&`4VxGJsBcsa2F$S=c7Nnu}+>M5{4HlG7tas@QQI zB=d~Wt>6@w^7LC^NBKxRQ=a$Z5q8Maix$AVnCo&?2lDqT@4tcfLb937k?%daUT_8} zu~%vBK$jUk&&6{fU+YzISbDY<@?l_kS*NlN>-}qrSAclB@Qf(I9xh!f(vlXfO3zM} z$}a(h>4{}Ojx9awl4gA^VXTjp5!bq2IY)|?D=dG*@kra$7u?k&D_KE>)47j>G#*MjD3BN~k#R zrXgj2Sm|3q=~vLZJ_)vXUtB{*#T`~V==(Q#M+LT&=DJm`pyd3sPU$ucRWRPG{3Pce z*5v;HR?12#-!K^!hf6w;w$QUF7a}uGkYVMN)#nIT+%Jg%T24*TSCq;9c;{0NX#?J- z6m>o3a*@lPpaZDeUQ0yp$;CRO(lte|sG(jM3>iYp+CzyYh{VFmdXnZc!FjczIKA=@ z!{ldcJ^oc!FI4vLNPDhPex`OY1)80JaKjQC7YL^9gsf4yP>5xf@kmpb9gcqQ&`QiF zLsH(-I+s*FB$3*HF&z(K5JRS6)eNLX8HYuvM&&P0dk-(P-cV6FxL7>UBZje zwy1E}tdgjjXoHa+ zS$R<^Vkt+pDvQqeXjVnN2eZWP-6ZEg&bLxUibaA~V)oaNAgRljn9sJbsI8@EtGYnZ zA-{C(55xgkxN&0ElO?X_k(@fO{B%8p^u&zy^2^gPsjoCWR$0Uzwt56R2 zBw-F~wKfy{(B!4E8>NKoYkkpR_+cNB5-BuH%80v_7Fua%H1IEgCiNAl4^V;XVAk|P ztT7k`M|#>$Bo?mcSJJbxCR|KVQjb=RIxFWRZ8(3@bmp^bU>~W_N|CTw1H-~ZGQ=z! z&OL$Pb$Rp*Ya`lur#P%Vp%GF=DhB?v7LMMo`$dez!CQs6{H1!xBuNeHvM*l-b3jje-yX?~W8-cHxMZCN_*hQnF)*e_$`Dh}Hdl4d%2m{I~ZR6`CPWUNX zYBiJvzDii%6SJA*!`vCCrocPEqAGrzKQ&kIRr4p){xDyqCLf~Z35^Rs#}l6~f{f0$ zi=JnPp9LPyhw!-wW#W57E4jIS9A9i(Own$nYC-lh6Bd~IPhnl|BWUQ2 zJ}OcVRHQ_#@^wv>l|;^Z&NoG$=|vVAg7d}fOyIOE8x!@*Ny63P%Fzph@?f#7Jq6Jl zHcT{vr>19z{tg>C7p?Q{x$C)=M&pdm&QWfsjW+s5s1moyd!_Qn$Tou?uFqypP+EPc zf6zd=(B8Fcq7{HGZ|MbB(Q}sEQ_a)v27<+nG;pyW|FDiZa&2e|gq>BdwMU)STVLwH zuE%1s-b4@wq_U-5l3cmc^VQnYzlY_3K99jhADFZ%y$eIFQI~E~Iqk8Q=4?l)ckxQ) zbdp4uu0?IV)p;pca;(!n#-xbBq@FmcUTV1hgt@>t6kW!TE+@la^zrV=yjy8^&|kI| z4e<9;#ZibWM8~~x?ZJsy^{kJrDO5_D*OEd)=g5JCwatal%7@~}Z{?`g^EJ#tKLu4+ zj#DSQ;$;L;9|_7NtB1_)2O$&zO_yRJ2gH18L9KT1J)pvM-G|Xbu;tK?Xdq98tF?k- z#s6dPec-Ds>;M0IX9Fg~F%)y=$|HhK<FqcwcQqDgqD(O^ID$-?sK2fclMl}?3B_$>7{GRXYdf#XFIXgS&%zoec_I-FB zym+1Sy586Ox~}*2=f3Xy+~*$CUUv6XT{ipdEpQZ&ckZrqQ*KgMwX7qQ^vA6%F0!R~ zho{(i2Y?iP%Z6?I|0HLlT*y2-nPR#g`z8h0m2m&P-HiLt^-=ace1mfixA93qGLGy< zXS6BlrLH9{QsRsIkKwAk952m&^5(&P>{F!6*)nEPGqHb@j!danClvC zJLr;N;|FYQe?QVpmM+tgj8`55##Av|ibko693-S-&ufD|C#&1W=lAbpEYNTA{Z+t} zVaSvq1Q z=P{D^U%>7Ke_|&$I!Sy6aScb}3AyKIC8YPUcKqKh1@w}&+Buu-HZIeN6p4} zVq2jeJ_^a#DkFf;JK(NIUN&QlN9=K~%}*(0_evYON#kOWobul^S`za%&dKgtzojR5 z`DJD^@CY604xJS|&#>#`Y(UvS*&ks{HdX9hcw{smB^Tg_SHGY=Qq2R|mU02!UBKRA z0?B^U)Q*lhg9X`q9dX{<+_cDe-hU?x>$>O68I3)Y9R66=@UDmD!eV&e59ZqkO6oSZ zQBaCKl`(yvqCJu&rP1AgqZu1_@Bj8YtYtsm|0(9cMssCn|7o;I`jh+j=w^HOEZ;{w zEhfvpbcT0Qp`VDp~#qMm0?WVJ@vUY>%lCF!ed-~J5OpIp6?JuF2rz=%CMwEG? zV8iW*?{+z&T%a~a`71)@0(b{}oZLRArPXKN1DcW@)RDTn~tXXQNyt%GXf5m#xmt9e#87aWsG9yXM=D zu5FAK^E5TSI%hZhV%IDdgZ)dRWcxbV>-_UA}(RC|zA@?BBR5M_lbzZE4@ z6ar#wek#gfQCN|U@`NY{>Bgs*Xwzn~XzhPf6c$0#{If-A7lq@EQBD!%X;G+;QAUWe zT@@%NUrsLoesmkr*v`m$JQLYyS z8#8v#5@nUz7{xEj6{2tpqzP!cD6>VW(#jqFI?B1CtX9u&i84l%YW2KVlw(CB zijpJ>L&qqOit;W`PnDr#lzT<_ttbo~qcn^1Q&AW?M)`s$Pl&>tG{LG8<+~`6BmTx? z7`hA$Gjt#O8df)8C3}<;%z<6T{cw6!md1BEl*ppH@kRalnO9J6-k? z74xouHCUEK&EEC8gzMwj%j8%nnUCg!xqR4lpPNaI-Mn4jlLRh`h$D6rQV+>~pDZ>n z^H5o-^72sGJ7tDHuClrQV`lK#?8x`GAWPP+ukzszwK-F=a^R2+AFkNmc4Z>5)wwxW zMiIw~y(F>IHLHP~ILzUDsDgECGabIu9{!c*x}?4Pr>no;a5(WEOkeD}-$XHgqg*Am z*^0>aY}Z7o(=e^mE~$5r=l@D`zKRdoXLCDV*XLvt#=T?9UgYVKoE>tj#?91+7;v{z z*Y{-?u#PY2`J6KP3sb}Q|56px{F#gb_WqnvhIPoajVTYwDPZAwY%1z^dBV^&GL&~H zdD(RM#gm4g9W|H2)mPV1()@g_dIu-vUO#)}vo5R~pX*vhGecX?cIk&S&3Io##yd2l ztgd97EE$*Tl=`YX{SXO#6gv~GP?GX79A&Wp%6RWoW;e@E9z8%>FMlCeQEj*Q5d5}xtfl94u=jH!}Q zp2aR>_cwAmt9L$i{gls7b7e;+Em5tK!E(IXJ{VzpkJt_h+2)Gv+dS=E{H}|zT_d&} z64dWVv3*8uFO9IBCAJ(W)wWC4#5>gXOtCeSYAoT|!5Q63a!lqx<^?iS?~Rl22Rw}^6@D!&uuI#IG!*(1sd zQT(brDays7&`i_++eDcz3e7aiouW(>g=QM%CQ(j8p_#TTw5{G&zCuhxITlKeclbL2 za+Y=Ox@V7aN0A#Py_m@F8}xA0EM4*xIpn;99E04k6p@2pI%tloB*#W_$OyZ^T*UD9 zfcy$sEhmd*iCSLjwbXGHvK%UwXJZ+5#O0f#SBIJb*tPO@#*o|7np>kFXMtTmmX12e zz9!N^tvKi}BZH(_GCoB{Y0VEUwkJi{4j0?rHKtT-uTb0fM%6S7H;-tlzpNQI-{H`%B!NVjvHl+C~cy! zvp32b@$&;w*x4JUOceRU7P7N9$^ucoBnmrwqf8ZLttjm5jdG?a%SB;lZ@%Va6NRtCjZz}YKi@#%3mv1(6QxTO z#=cQ55aoYGIZBn&McE}vsw&5e@~|ij3X^M)C@rE4QRTfaqueSA9c*mg5T!vBhKEsJ z5#`gO&=*GektoHY&=*E|K$MxH&=*GenkbV+S*XgNZbca-%0;UDk0=?U6shvOC_SAh z#Lz667m1$(q7Xx)d`gsGi$V;IGES7;q7Xx)oG8j;q7Xx)93{$DQHY^Y-j|8@Wl@Ns zQT`xGqbS7CD8CS;S`=bvlxIa*A__4y%7dcJ5rr5Uv9fcSgWx6Q86NMNWWuhp1L?MPoIZ2c!Md83`PKb^cWt%9Y zRQW*0>Ybu+&@(psMY%~74sk~Lr6{$ca6mK43!;>Y!U4@FkBBl~6v{HQ;9H{Ph(cLL zxlNQaM4>FBd|s4HQ7FqOSBo-O6v{HnWuhGX9SUU`WtJ#!ib7dtjGZk?yC@v+jdF@8 zPm4n7Mj0W>c2Q1IC3qXk*F~W|#^xPSHi*Ij-zdKksdOvl*Xm{`?!3=6H541N)KlQ zeUfhqCI5y~#@_3_oaO)H`&_@$M?!vcs~jSyKKyOR>AGF2vgznwOY$sAPE<@(pbS+~Y{sm+7pDKem_2 z*|_L=>n*J`+39*=BL%i}P~fJc@83>9?ldmWuD;L2>zfjgGHjYjKS~02j7^_!(@SyE zl}9?sKauR?Z1Mz~ya(zUWs@I}pM32wg*UFWOHw}$#W(57j1HlBwu2a>uvH( zNvg6K5gpJQ%Nru1M zO80!rG`WI&U4QwaDemKv+-Uv1Zj&1%`Bj_z)b~i9Zj;+=a)uQ52+8(3@6W|Si>>cB zt;IjZ!R=Ud4YOX36Pq)wm(N<8Fg_P@-dP;-zI-mlJD}Fh~(Jh zUqM|HZ1P%3Zn4Rqu*pwKa)wR5Op?#H$vrKm{mJ6|FY8VF&zI!RB;)*boBR{W{i;pA zLXyw0$!#`yo+LkFlRNGwx!ERv%O+na$(wERZzb7&?Q!;vHhGmK*W2W$CHc=b_cEJ2 zUy?7e$=6HrMw^^(liz^4&b7&Ii*TZc2c-)bDTdh16CEq^3&pP9yk>Ge$BRLmfyV(+uSdF$&(yC z9QQ}q(Vmeqh%#ta8o$oMH@_d`w`Vi>u|jTc!7au7T<|w_UnpG0a~(E)fv@HN*ma4_ zCGMmup1UcfykJw+^Ia2vW50irA6P%>r?i4~?{G(w=Vu}Jvc;Rt&v@n8Yy}(ns{7*1 zTaJ+*Z*MH3Fn$Qtd+SpD6IT>&?ADuUZQP_}ZoT*|L)M#S;zz}KqL}t~ zd4Q6Beu*s-HF{|#nv+kq z>^=ACJ>13hg>n48dgSO089NxB#HuH$?nE;_kaJS_aa(Hch8(@ozPtV{^K6vR_~AKy zbj>;Yi*B~#Ren=qpC|R_M)TDXt6nHFb@F@)3`x-Y5S}JMCR|>oHhtG56v;06O@LlGcU)r6dXJm%DD?ryD@yw{6 zL33B9y~wx0BXU!Dwvs#}NS;&{`TGOnH)Q``zku&%Z(3;lZ!!;5YNP}kzfIxKPm)L3 zaA&{;m!#HTPT_vGAg@P+Y(x0LW4yh}1Bw!NLk{VV488trw*^E1Ea z=G~I={P4$)%A1l}_a_!jDQ`Bvh9p;j`>Xx<R$&7GxH+jt@AJUhRFV{{(S8IHIIu*?HYpP z7aew_m8lzw`NgK~)KGn8E)Us1N_<7{Py2wZP=5}8EaLfCA7*~6p)muB-!zjUR{Yvn zjbg>GwNL!UH^h#gecl%L`{B9ZmSbOZd=kTgjYVz{?eCdP{NDUrqVX%(^#4QrCP|gT z4ho_EjK043OomwTll3E3{E8Sx_IMv!|34coek>~=nDwRWRy>-xaXMa<%99v9@p@SD zMjvmH>&J%~U&l((1BuU@tY_{KlY1+pJa4fSi&*jLW(I}F=jH37#YYZ3?(xjnf0*`7 zGSwZx^Za~q+t*0_W3?}r*%IEqKd+6}zJh=8d5iMJ>LGprXrC0>yVr4#FPfedC*2n( zJ-NU1|MvQu=bJtg;ONVdp6BLm{6*Iw={kNnmol0o{5)A2a_B%f#`!{ku<5=w7Z+xidr7mJQ9nkz8WirHC-&$C4VvTQy*&05+)31p(zRmv0 zPk2N7r|;m|?4JlM4~Sy-p-*_V`yUg}=js!VXXNuIKg{}YEL9p%{NAMXan?U9V#TkM z)gU~6FV{tjpLfqF_QM|=yn*}w>n2?@A}6_S>bkbZoTO`pGJ-g-xT&p<$6?Rpm}~Zw z4sYdM=zcXhyL)f=88dkv@(A>1z8sv%-}jaGq2pn~dtnq$Q;&}V(UbxpMR6+C&dzF4UWe%@7Z za(lt)FBR;Vq%Z#daly0i`U*~duHfXC_&p?#crJLhD}|r>7d$y!Uy|p^Bz+YOe~{-m zbxnC*_v`Z907ft$KYD!>fsZ2aQ3O7Uz(*1IC;}fv;QzS@_>VezsI#W7d}X!#znVXW z2UXP8I^!oeE321P)t6UHSXw#0(y6VeDyv(0O+`uFYX8Yo{qrv_EOf@K8M8+ITL$&> z>gJ1%9iWh#E^Y+B5&-Q$7!@mBpo?ta71q(qwm;%NEKj^1;BM;_(zHW1b z`C8Dhd<`Iwd%l0!>iVkk>eK4{Wmc>3S65u?FB7wnd-drSDRq@s<4xo3le6td^S`tq z+RM$ergqtcYgSEIwz|BcWNH1%D*AT(GUwW|s;et%{TEL4%UQC#RxU58E2~{mQ8)hT zmDT0`sZ;$`WlJlnO5{_?%H>W?S>3YAP})l~SGudel%mE&R6s!?P8fzzF9%Bt!s)|9NSE?HAow(M#tDBy2s@JG=nO1)lu zlRgJEpb<2K7SQ>I?Q=>h@iwkRN~^7?tFPtP1-zoBQyY^QE#0=MqG}DD7cKqTvNfwT zR3$6R*BT@Kn^{J8m;0F@bsQ;cllbEV(=)y<~o*66s-fpFFc8GtFO6e{J!%_=5jd0AZhbZO=`HdIf2*3T0hX})X@r`1hNPXjuhj70!#zTbR!0H=gJj}be za3JF$ih1-nL>R^!4^hk$@*8hFMELE0JVY4Ai*FS3MCu!NJcRp=F&-ie2Ug!0;~{_c zB?B1`QOu*qA;K`;c!*-2kl%RYA;NF};~~N@UVNjNCsN3unxW9A&ZmM=_6H{|Li)>rNE&g#5-^cOv}uzwSgB z#+%1c%=@ix`1qGI0sD#*=RVo`>%VZr-U&G%|Gn7~Y)9{e98fvE*%B-#v2jm-gomLw zTl8}B<`3-rtgm@Oe&db%h-#Q#h}zE)hVjOI6!V1Y8*ki4_%%_ETHgf=BbSw!=c!T5 zqt`dw(8Md&_={qmh+i{G6ZdNebpmlP@k-pU9mG-n7KgVi-t~nj=F#I2VHj`xMlnyw zZ@lpv;nxH>kvPN~zY%`>AHRzV26TQF#XNc(A`IijH;Q>ee&fYA!f*fajWCQC-zet& z)wjb8|F7we8UXm$G4ApKXJ$lGmN)BEb42X zkl(oR4fh)(zTt*(Dv2&etOh2Ug!0=j-ytQ^bxZ)_NAjJbD}=4b2RSfBq0HThw(e z($Mtu!2L_Mg#4QsHE{ouEfN3T^XdV_-(*Y3|A(u;88}h>FIv1{;f#oZW5W}3zZ@-F zV*YyvP^|d$@!y**dO!5Z&^wR@R8DWU1k35|kO7s`n=P?&JOgVW<#@6sSWa)n22@UO zw&>*)F77kPV)>6^o`_#FN)q>L2UXN@8(sl3DiZf=2T=lkP1F+iYl9r$ukH1O{puh| z!0*87s~7+J@f&`de)7B_?K)6)!VaP48*@=OUS=xUJb;*WJ|=q zcYPRuf0HdC{~xaY{U5Ii`yQ-f*1NBHKXC~&jK7ZbHBZEE{B)7B%rO4E>}#Gt zeG^zmynbV@BVmREt8dJ8WJdUWkGGEWHSaGD;eHccMqvy*hpT`8>&T3Y2DBfEVjg|mgd4_PN1~V~;y3O(67Dy~IudRe zcV0#@PoTc>*O4&4vDT4r!-3T|);coFyFQuQZ?Yxi|HIY4|KrN6ft}|@G4CfXVSeMU zBYn*i@f&{~3G*9k9SJjxKQH^5Cs5x6))BAYnCnQG;lSz}a~)Ycuyv%bd4F*T_nYWC z65(I6MV}`ThKa5tQL-iEKhb#@;a{>P;y>YaB;0?DbtJ;@!_~k4b!7g)_9IcuqsJxO zFzz}M#XJ$eao3S>zcJR4aKpIsGKzTu^^L!dg!zrNj)WTytiG|MEARRVDas1-cNkP4dceQuX#d# zX#_yiTUjfYs`L+^e@?>&f7@C-f#}czhq0ue{UEE z?hR60&PVq}Y6PQ-+ic^)e+QOu+JjhK+}{6;a4 z?l*EGCb*tO%NBK<^qGjg1;mO=jBL@{(PttiR!)p;(aVW45#5qvwI@cl=;cICM7NMQ z<272gsQnT#A;o>H`bRO3Uhjzc8`p36{57qNTHk0BQDYLT-Z8R8umAK*7V}gB&k{5{ zv_pwmPXE~wEhn^78CW@?Y>AemQHyhY?$e%7wixA1JjWY2xwl$gaoZC;Tf*hI5g1@O zZnlKWaU(Fma@=e&%9(W5hl*SDYzdd+4(zz?2`|UZmT)<400vl&n=R3D652F|wuH+`cpQYqErD@BRlMWC4M4p1^pmas_C#bzv_1V~OSGI&00!2cP_`K5gavwb z!f}h9E#Yz!j$3#+Zni|rA?)^m8aHlX<%F{JQ_j4i;^_t6YXhMRpfStoKU>1(xC_Vt z%W<)ReTTf*hI9Xi1FxY?XB=Txor`^TIeSmST-*G?T1IIG-WW@)J<|4JSw z=3hQ_%yNI#)G<}%{&N0b?mlmB&C1VK_|Np)XZ!hc{Nay)E0JWgALCJWr1JE_vfA2` zDy-@%v(59!#$8xjv0~+#Iv!RhBdy=3lKD?P)!&=AG~$tE{pLF>R=%_PFK<$;e3Sam zH#t_m$^GX$J6684`_FeytbFJ6lh54@l(1Zx-tpSi_J%g59bHgA=`1=m8#>)DPnavI zsH#{sp5ApFd3@k_^U%c-`{Y5MqF7&DCl7NoN#@yZR?`|-YU7W>Z{}}-|0`(q_-OqB z&vOJ0=tl4Kr2Q*p^q03C|BaMY14==EcKzu^hIreS3}(@ zK`AH(Mc~8Kp-c1mciQ}!%JF<i?ZD0pz1>1mwf42`)>FcfEwQ%(P zp(p5H;OdET7kN6tUeFG9gEp`Ow1RD*1tjY4-)(mnb!!G2KqFWS22zI_wXakzjmTfD zpNk@Nw+!jO(pJ_gPy<>)3up$7!pzS`Pyq;kR z2W_Agw18&N2x>q)KmV!pQtDO&azOz2!9ePgq4th)H!=6-@6^xj5xQ&BhMxK;^9yu? zF3<@^Z%qt))wUhpJ%D_!|2FdM0IgsfXaRSDX0QP?g0;Z4|8L+L>RSm)K`|%-1t1qp z0RfN=qP4}ZdS*m=2A{XF=G_H$fVCXIDnY}&iJ@3+3*adO$mjacCQl|v1&6jVPQYHU z8|(nvz+J$#|8L+8)ORhY1jV2LOaa*-6QqJe#5!7Ax>VmAk-nSH4l(K`uOH43u$Of} zH+#2E&<@%_D`)}D;I$TuMtxrcmwI$JJsua4Cl>^OA7lUrbW@K`&<@%_JU{=b^j7ND z0-8Z1r~x0QE~T2UNI5q_KLPCgtciynWK8^!@xc3L=AP`mn}O_~8^K!i8c+#J!N_|o ziuHXFT;S2&^mv?0p0ym)NW@Poc5TeTRuDN4+L#BepanF8MohIre=TNt9V$ccNL16p9>grefjEH=We(u(`clHy5cJ#Zj-2h}y zQw(H(v=-EWN>B=>$ayhyG!-~t^EWIGktXlu+&LS#dZH}n+iO7$s04EUUJSzKzNfrI z{rXr+3 z5SLc44Gg3XEfMxI79_unheZ5H|2wRmhrUBU!P&qMM&6Ye3e+|io-%-ZuKxgeHh@O3 z7Sw=BPzs7c5!ek}`~L=RqrN+U9Fw+z7H}7623?>N>;=)<(yn@jaw^}&-L#oPX=&6_t&XAXa{Ye6|{h6;M)H;a4z)?06)k84(KMnouFOf z%;y>qtu3Xh7b&-4{{h#kT0a*2m+%XZk860J4U)jGxfXUa_*ebM%J0Yj=eVx3`^lbQ z+7kmW%OTHRuIIIabzmVl0UY%K+CO`Omx7*u^aSq#)4{$&J;7VRS>RXiQ#SYnc;@fS zljDL0-_Z99;GrJfO^?Ul{~K!uc<*3O@J?_Z=yeUid5P42b9FKb1b3y1n_A zp5S%hMDU~T4_DVs%&Nw(WXs}t|&w`UYx|<%4x4zO7oCV%`xhJ>@1i&wT))Tx2oB($2 z=?RvAcz*s<=_gXRU;UJI1Z05LpA4+7pT~Z-C(jAI-~VG`3^syz?aIdH3g+5i@Hq3Y z1f+siK2J^w247DO2EPQ(2EX$KgI@#zka>*7Fn!;a6bv>1S5K5rCeMpbFnBe{06z@& z1TP1{9xB5>%pJ;85+eDGEW$6Ig?==cqP^AKc%mw(Oi3KVAqE%f~` z_@!TYbT>T?f0{f;gVw#&0sQ@!J;ASm9Ps-8QZ5(+LgmHr_wTmb$J%utm;v5q?YbQd zqz+}+2Y>@!Va;m+HNf>Tj`tt1{yhvDfvXD_@%dfW!&{$cu7O`ahYdIt+?CGpEddNw z+ozvp%>#+#@!DjP=gGF7;1baD4D|=oz`mz@g6o0oFMjf)f&2BA@$Y`Wj{4?+=XUl4 zSAb7~2cF_M4${G+PxjxQ&yh9*_`pw}=m~xWlmKrVCh)nNxpW6OlezXXbL=x<->_gp zn5VWqulEEW1BvEy?JgtF;oq?)fN9_l)L{dd@W-CutAF6{m4Zy*+W$B3?tMMM8^8y@ z?+Jb#%m>OWTgB>cZmS?_?~gIKoF(tbsrSHM*KOaiBalfY*<{;mL5f<@q2@HqHB zxDR{{+y-t2p95ta@3V$lT&nNq!P7mun;wtPBhLgd2Al{+fFa-r<-7;>gV#YkKmV!p z|DkR_1rJf@?}EF*hpEdQnUu$LZ99OZUEPURbUyo3@iXMzy)9; zI1PLPEJ+O-9INk-f`f;9bvHd8|BXCvgEzo0!Oy_+;B3a#nc!q_Jc#G#Kb3wobxQ{S zp#ATHKWID>tnWj!&%@Wa0RFUtHE_(9oPiE3cdx7 zusMg=jT6_omU{Rbz3)4?S0Q~LFP!0TW? zcn=%_Ll|o#KnLelf)n-q71Ms;Je^%a0l23 zt_Ss?zjj)H#{Ij9%k7_HUzK5x6q+r`yAC*4OljanjF< zlRl}x^z2b9tGT^@Ww~EkVE^vC-~1K%<*RG`%T`xk!w))EuC8{Q-)m0~$2YfesjXO3 zUsbney!^I6ntJuh>T*ASrG6>AvU$OnG>r&Pr#{)E=FMI-FK_Ymf*JY#nLG|e{-C{I z{(`-Y+^Z+EZvopt3-~Iy4Xg*dPYDL=Ksi_pa=>V?WK=L{8q0q&pXyeZ*kS9=#}W-7 z=_WyE+REyco|$Mpm~Am$CKf(4`3H6ok9bf58Uod~s#q(yAOuKCHjO=A~YfqOB z3#>gSK)1}+;mshI4jpg1qn{k-2AnZV$B$XspU1#br(&%PlM?ae$j@Z#Z(pRqiT&mZ z^p`TZ|2)(B%@c6y%9d8qRs0l7+DRiXo?pNpkt}5B&7QxA$5NQlXIp9lS+%;XyrR5h zOu17+5Az$X>ar?3mTbQvGGwwxEiEheuc=s8$AtIWpZoOA``$9_Z`8a+jUPYWzi7e2 zg_rrypI~!jk6JW)UcOx**7zA&{_53r{$=&GwXCL0(>3)q635WGO0V@!Mbkcs@S5@F zcWEZLcJPGR$v_S_lf#zn5glvZ*vy>nt+TCXm_IWR?eCi?viB3dGR6mkxd8yz$a`hc zTR;YB?XWYUmqmY?&;JbwP|r?K3YtAE`djA(gQ+>e;DYmm!Eav3`PI3>;3=QN7X6b` zg25SQ1%v-QI~Y8Eaxl1u_d~IJE7#)31;JqY%wX`BGlIcovx(KEeQ^o;so-5~KQo7Q z5R3!A?Z@8hqaB-PqWF9Q{a%nZKNvhX4`0BW?;$?l3@!uXz`;V!tHF(6Hpl?KoJ)H_ z1sDtR7IOXy_FohX{s`O-D!_T*Xz)f6--&?+Z~+(r{|2Hynj z;AyZOd>w26*MM@c5afdKAPWoyhluST!E4|-&DN0vG`v0l|FYO1@$+6HEq= zGe*A+?f^G{)!<4n7n}!91IK}6@E7XzI`|n7|K9QU|JwWeX`{4h3;Z-|#iL*+ZB7LH zu=^hNyTPmAHy1D#Sz8LgTGA3h3wGJqcLRs@r9gR|(FDgU2El^&@F`e?-7YW;bYL%sF4^2vl-Qk-Js|4= zP06M&w;Q(FdUMG3T4?$*v!UxZU3Pm>5<}&i!>Mivyx!gVnGH~^bh}xKVqxnSI)Un^ z{-KS4#zQx8q58?epVKc-ZtJ&KVipHO=VD^68(Fh0QgkQ|kGBuNn=f>nJ-F`K6r~62-5N?1g;U>62(&1)F{|oIB9d47)e?1cH zfVaTi@UZue1XD8b4`;#$;Cwje;E`Yryam2Vba*>F_HRdmufa|5VM&KGMxg)wNN_Q{ z9o`Igz}w+r?;i>7f^*;wxC%Z9Z-Iv$L%iV8@RCE62Oog9!-wHExauFo32yr5k>HeL z@$)25H^Y12?Qr4YBf&2D438X1xkru!bKoqvNIv%vM|dp!D7*yT4Oa#6FP|Om zIXaGV;X-)lpq}6sxN0!>pTb+z>N5)cBK*M}a5;QnA@>Z4 zzL?-cNITfy^ z|AlYnx+~lSH^bZE?eLQI+~Y2v;cmF&i}*hc{~NgX6Fv-YhWBiw9q{%q(cjtRyM^Dl zz)el~fpa#|J|0A}9UcoGfEUZ>TZuQ^aT|7URx|g=iVlxF1OIR~Joa|Vg|kxGN5DD5 z*w?~K;9+MHC)f`+z?0!U@Dlg{ycQmNH2ZA05Z(bdz@6|OICCuJ!(-vYa4tM7ojom_ z1y{mj;RZMdZiWltt?&|f2iySffw#b&@J{$3+ySSKqaJV;d>9VE!-lh+g|pydI0vqR zm%xp11H2jD0&j=6!)@>$_%--2d>AgwpuOYC2N%E%@Dlg{+yEbjo8e(2s4tua?|{d` zd*CMckfa~Oer*Eja1J~cE`oF5a(D~81wIV#hKC)?-bm8nZnz3g2~eMr^n>uns1Lj| zll>Q*HJUvY+yr;RTi}E60XSa1&e#?}RtNS;g$N;j!>;xDf7uJK%%x0XX$+>@K6-a1I=RtKedIC)^D0 zfw#g3;2rST%ZVFY2p@!(z^Uhu56*%Q!vQ$!3gQA6!d37Vcq_ae-U07{_rQnYgK*Xo z{G5w_I1A2!1Mm_!A8vxH;0|~zd;s1754#dSa1MMBUIM31p+0aH+yDpQEpR@(2d;v% zuEGyI7Ty6D!h7HPI4R$Nlq51d7k~*QM^gd zn3q+?KRq}3S>Mp~Df#Jvy!7m8>HcZy znPi!ko|=~?Wwe1Uzc~{82JEaz&sd(G>g4ivFBsiH-C<{DdPb8kFFkX8a(=phT?)SH zho<}U(=+porx|I!C48RM`acFmob-UNAU&Is>0~=PWc+rJFQfBF@FK|`F zoGa~|Deass?VOh$SP@>NlZovv@^z7q!;2|%oo_X>z>eWg(uTd!+cs(ML9|q~IbzRC zv{dF|KAI_;&*C==tr=}5@15D{8S8w@j9*EcLfS6UzAb5UB+d7ANfcj;Nh{_&{9;Mt zC0ZrgR^l<76T$S=d>NO8>Ha0@nfYdT7`xGfXfJjwmug49 zM6oNxt_Zv0kR9W6UGkiC|8*gMQkOdHHeh$O*zw8*8_;e-TPK2Pw`q%6uU0Zis1A*p zo_2NU{j4;*fSGVO96Fpm_-MyRqx!g2*40f?epAX!nX4>(>jwK~3{B6*Z)hQ%mWI8o zA;Sg}k3SpwGUq#!hMl- zy~JkSpjonp*vJqyyNJxNYtrZ;`1s?Ipu|aDGWMpRO-3{0+4NUI==kDec-SKgVZpW> z+qKwcCh-B=+kC|SR#`(grA(9K9qm{@IA4x;v(k%vf8=n-sv2>)qnD%|t@tYBn$|Yn zdt$6nk;3G zCM}ceXZ4as{dHVXW)sI!_ZZ+?6h5qMoJz^NguJzyw@KE1Jr4Uyd*dWys|njyY;(P~ z>ty{~=}rJMmmkG$H+Jr}q7eJtXuHtf)x4Wz>^CKw{x!!4>ED|p;xaRBMTAlyeJpb{ z6X)ez3-lh-$D-AsohoJU@`GHoCbVJFx2z%SI6k%{`JNnVmXCrou_?!9E!PLTd2ekl z6Pw#z8;S7-Z1TBg_*Jo)ABr&>o~D$!y)j;C26t%cG8Qo3Mc!@X-NAb18DHep@x^G; z{nV`V&ZK0ABXyJ!#wfAlb>vXm&vnJ`@!9tGJXuFfUCc4Rz^o%z+1Q0DGbe39_y~|O zSBfvWX2~hF@zvz3Fk{Zo#|F}xN$Uuu&7pd}XNe1oT3(tQ`&+On({LGMxU=EVhHA?$y~ULyyaYTUBP>)W0S8? z=FNQeOu6o45W6<)w#Tu{$F2*zgV@c`y67D4?NhUln?r??Q)zC1`Z0GxeVb2qv+f0k zaopsZ?{M{_^LbW!cara~p<`2CnrT0_om}_*J$Y>#SdrGtoLraUE5_K}eqUkV)9JIM z966TVMc&O^8%_?@m(vg3chc|fv8*y;44PwEHu?9Gzx*HZ>nUS2g#&Q`*PS^X*7^CF z(7Na+t%@`**=X7dlQx!*Iixj`cAccL2U;)Z80%#J;hSSyWcIZjMxTGN5EJ>HpdI^{ z#D0P7V|&NLbUg-rng$Ud&(h7#mi&8uCLJ_reM(dECK#{M+&OP4Q>OoawLWroUtpV*AUi6Q=#x=N>*1{8}`7R@O-SD(qXazbD+@ z>~VY%{$*@$!QOx5NbnZ1zf9sgUE<5!XCo@k39pQ^UD$2F&IzAqCJs8!0=~#VFj8cF zk?&Xv`HtXo@_wF_!EwX(VJaCg0|pCyU1DR3ucW8WNGqVY#T-C)Q1%w> zkK26AUES}@k^K(GV%_gZ*{?=D8qKkLmKJ;sOXBy@__fDQ-(s17$b7fL_$TcyN#iA2 zJO9moku}#Sc5l58Z8vsDYkiu097A*+A`Cv3ahY&-bk9lim3Tk12b47;n~lJGFQ{Mo zC1rhblawK4=99M8*AqIo5Um*P1=n8fs?b`oTgGR3iCrVwJrQ>Dz1kt{J}LF(C3f4; zuJhRCqU}WMPUd$!yqEdvUDM6JjK-~FUzvMd-vxa-3$3)vIfi+b!goCK-t1q#5L)}P zNNXqUvy#R!-&bY#gnm9wA#F0>o!uyDCf{rfR@p5LD?}FZ5^P$q`A*2jmyZXt#!H(T zNDuIR8_Sq^iPnrZ7HybE+lrQrcC~7Lcn8`|XxB+6_`YFIK!22;>RbCf$47Qy4agnX zbn?C3Sla6JUS~4_Qd%B^CUDeInhF={Sn9ixoOE|vNIqD z(e~z;ndTHzW4Y&bwMcjWkZh_rIj4oI3=>p5vzFKa8u=9k^cVE2QgISI_> z`^ZTWYizx1N$>fK##{O&0+>81_Gj`Nn$UV?_J-!V$ISE^-+tCF zdu_m6CN*P0zT4hBmhYm;Z^z3eW}eHOlkdClB5jeR)ujhy|CNch5AAu;%-Uj(VFjV< ze$!=b@#%IYG*{+I93?)*}Jf!|z68gumXc8M}$yo0nF(o&@krZ3I0au&y&S3>(U_5ps9Q@QxC zIKXeO)mF~q0=|EQCY0EW#io5?ufKJi=m&g1wl>UpnO8;F?BqLcQ>K|$T4s^&W$%ti z`mq7q7QXkEYsz*GnrjH0@2=zArpWh(_c+9em+{_8o-LF4E;`xf(QD_?#(QCUds6b_ za`C)xWX&3E)_?x%;Jfx)ac9=}G8;gtUlwUaeE&WrR6ma6>yyoXP=ffbw|;mu?I+KY z^Y{&o#&Nxm%j&Y9DoUQiVyU~fyfhhi4cNAy-@DfP(VEfrpt*f!WBh`RvF-^T#b(C^ z+_!+esWWGya{XBHx05z3hwq{#&8&-Z;?KFC?Bh6#5gWPBVh1*{%E;tG`_`$^%a}~s zA<}yDb8_h0ZOhR8LNPY`F65pD$}@GWwRM!aRYzLEr--Yrr<-Iy(j?~%dOdq~dSg;@ z4&e%0_8DRJnEj~a&*MG^*SB7)p;=BlX*;8&`AIuKT40*D-ZI9u-pm8ZpYd_}eLByo z;=QRi*ODZ*1$-P!S~F?C3XMI+YoF^_dK_p>@;wlB=-EBuT6~S3)f4=ylw*!5?7P)h zl=b0TQC(3lsq-#;?ZubF+;Dtfk;8vAd(r1*zuZaMPVUWcuOBqYUesKFk}nbLmQQ@7 zp2)bs4s%^Aip=^bK1P#vh_qHoGjkdr_8j3(_gq|j6k^xN{U2s8W$bE=4~bnRX^)b2 zn$9I%59xF7H5zjbQ1--c(B8hsP}TsMH;>}$F77WmoA>g{1-sF9q5WJ0%Dz=DLT-|4 zXL^m!>;+}kex~nckdY-mhOucYE$iXgM6M6oxk<)l0zMc&;-d&32k`ORkPpJF^}VwubgicZ5%l#n{UIOAhzdoDwC*ea2L& z@A34?x#=|p>1*dP-HOvo7ereq#qa1(Fuw4+P3xm;t~r-7`ycPItds?>a!z{9tdQTi z(frD|YQS%R`+rudUo$rCxLV+jE3uRNt=3{Ev9aUN-IHA5nwfd92fJqM9v3^V({o{lz(Gem1a+k=)Z{&~qU@KLlbv_D+K z2U8~dk6Y#Xq<1dqI@Fq!{MJ!XOJ((74+m2CvQ(ZWW4@1$=8w6f*H7oldBO%(<|xP1 zX=%xyl9V}p_A&F*%=ai&l#~00t}*n_MXV0e#+%R!(7B9jUZUNFmXDUInv4UvFHZ7H z4D2}IdWc!e)`pFP*RZR^Zlu_m{+e&rA&Fr(X;q}1FKM*3_j-I;$cH3J9kTqaXRaSU zOC17eO=xHG-tMW)SX_|q=X+s$Nyg0KV(d0!H$&`t%i+7Vbt!VWkMFZ)%IFN8cVi}H zHv4HO`Q*L4gtz+H@1k+|GB43~_!$Ri(ueXAZI7S*5tdBN7 zp=F`9L}&rDEogG6k(ZQ_k0$=SS}~f`&#P6TwMA%+XnWASb=i!zJ3`xrwkty0ss6lq z+tGGLl(A3!dFyfr?KO{`jFn-dh?hrm+b4H=bfNS0qIpT1r=aaaGh>X;GByg)y3yi| zjXLZOVK>mRv7LMwZ-$SJHnd@A?%0q+z-wrkXrJc2{cid?*$!|4Z=Fx-evtG^(!Fs@ zJ%zO(Ld!xcMf1+f0NN6dmW{uBv|_YU-rKRxsCLh#IW@Dp412CugKZPGYeKfnoAt?@ zSIM3~z)rCDQk2xS1^W(9d7?dvwinHN-DEe~YaUIG6&+~pXp2K-nR5{?6v)L^`;D@> zv}xapmD$6Oq%#kZuf&_r{m#x#bMwWz)Fl_&vA++G(PFf0w9_O%>zvqCqUC!uIj%II zm7=|-cD}jxfQ9Vb#ebvsac^uAAI!Pi?4t+gtxHb6B1uk#&Dt%oZ^Q2JAK0h+TsyNK z$@xYmi?J?AGt*?vJb-O(7tdgoMZ>J~bk41^N7DO_%yE3SToaum=T0qh+~~UtW2a;H z;c~xj(R)0H#E$ay+Bf4vj?D|-urC4(EXXVJ=cP!+kCGXBi-;jJ&dULXG9&hq6mNlrD z!T-|-j|9(nj)TCqn%vim>u zB6N5CU8mo*ik~jhq`X05%uB}OVKgakrU>R3?T*JPcX_b)e=yNDVCRlUF)si)=#A*F zi$MNcWl!1X-Z0-*yQ>UcBVsa!e@`s++kmf;r*KcW_~Iqn7PO2Atrcw;n#4g~Vz&z| z)1yh-_M*ve|LJD$K83N}yHCNyaZYFb!tM%rZ(_juq4yBUsiM1fOF44?dnvZ^US7hv zXiL!CXMC(8s$9wsnMzqanhtS+MN_)1UrHt$08;U+FHk zCT}rz`PlIlg?Wj;DzqZBqdZz8T498?8La@#T$939@@_-hh31XPPPBG3cf9u(lYQ9j z#crT6$-;3r`Mfa+pvk@O-k9X09YUiR_gEz{;kdFWEGAV_(J|pMX+#@_=8ef_wA2V~ z8(IolSo_g3&>-&^?=vR$VUUU4fZIQo{w7~o`_aatg|#1T3fhEFJ-D7_&SNhPZ$Eaq z*m=i9BU&L^So_fmBD8I2`DkJ7M=L^$+kWhdu^VvvnUpo;3u`}G6`I?A*~iH5LDr&i zT59@Xov+xOZ%MvV(&RT0-Zs~vZ9wz3c>~%_Xx{d1L2E{f*S=lY-G$vi+b6$6X(gYx zeHr69UqW-+CuyV6cA%w7`*?{q1?^EZZ+#2V+R)7&^pk( z^?ePk3(Z^KF0_3S+F|wQwaZ`-i$AY68f`C{w-2YFi9fGah}IpUm7*Pv(CW}qPYo|) z16oRiCcoQpBD7ZZ=dIr^v_lbP>{Wl>`W-;az@Jx>FO;%8S~f+FM9W4q*L%z{#C%_F z?$apgJtUfOkc(}OC%^Q~VzdG@ZyhVq^3l9wz5y*aLTg47f8KGmRsF>qS9`E4BJV)Q zRmwz;*W}Bf?(!1OL@P&g$CVuW#-i1rF>So-Jl97r4qN9IW49K&5n{(n{8ggegyxM& z16m`RHzv(!4QOHQN85lFxBb{PV>jUTpC$Y2i1wpxMRVIPZ5WHziZ)0Z#Y?nYwC!kS z|D@Vtv_oj#HdLaeoaQ}7n)5X7XY1XMO(uUccEhlXXag}`m%@D+dfjMdpX)}u$v2vO zQYU#y*&S$pG`9_|eh@ty{VEakCHaO;V*G5?`;gs)kNBeqd=!C?BJfcJK8nCc5%?$q zA4TA!2z(TQk0S6<1U`zu03y&u33TQ(m*>LL#qWmbh?e-yE%ugB33347TuOXJqEqd}cW11CQ-JfSayY=k0A07AF zh!*ek@Tf>hYRR<*LH+E;v0FcvUTD+*p`TOi$N%{M8QL$A6$zADC0Dsfxm3AExly@U zxkb5ExlOrUxl_4Y*(r0(D?{0@98k_xE>bR4u2F7OZdPtlZdGnmZddM9?pAh|YWd23 zWu6FaUb)Ie%B9LR%8km+$}P&R%5BQ+%ALyH%FZ$^U)ir5P|j5@QZ7}lQEpUjR&G&l zRc=#mSMF5qRyH@BQH6|hTMxf-Ksi^rNV!zGM!8YBS-C~IRk=;MUAa@aTiL15_AC39 z1IoF|MarehJf+*b8kL)sTa;Us+mzdtJC(bYo#k4-vR^r%oU2@F+^O8H?5xo8mHo;AJZ+Ev?wXkW6~D6y(C$zlCH{-_s0N} zJ0)ev2Sy)}G$#GnwB(acJn7=&M~yKGIZ!ynct zSzflLu4GkNU8OT?{>A?36VKH!`^T-STFu{%C|_OA!|=yV2_USgTvK;7TvuORF?B@+ ze@$ZLGCr2oE~}incFH;9&YA2Vx5E9m;4J?*7t5C|A6HYmy3RgHcIxu_sw)4uTCJ) z730h^ZP$>)dRkUhwx-hc$8-0c`sy_+S5)&CEO=1AGr`nh0;P|eIC0#HX)|Z#7rCG8 z08|T_S8~qeaaAj;>(`E3QC&a5*4Y_9euDic55cwC1pcbW@|7zlteiCEoC(Wn>mp9%0j`M9;;@P6z=JLWfzg7LA2>s8hKN6u!$4a?BjL?szzM>cHz<`(e4J>>rdbIH%zY8$q z;W67#b59`l@@z9{Z}V-o=KPG%ye?P0Q6AXEOSk*xna*P0uJ*Ek%4@yaw?_Dp--wHS zK>fJ>-8g5ceynxlJgoLLs=MbsyH#(Fuz%gP*K%Dye^b3XLQkVPrhg;qbF%8&RCn7e zzu}U&J+ARL_W)7XdFavNe1+Oa&fk^&*w?9jhR#zBgL94Qxe@wC)!p+;*Zv;#B<8PQ z$3M+CuLq1iGIYM^+P|uP-1Amf|DCZv)^X22UHu4pwDt~T`bd1*I;>^37F?t8_a~E) z*U2_HG)^4V-Sby>9CrGwy?Y+)_HUc&uDvWT(dy&cXQWs^?)me1{n%fq^$)l!s4lqk z&?TOYx{l>){oQs2ZnXa0_1PW&84?LDNrJKh%cQ_m&+=oS6w)&1yh zecH92?)ow z`n_sj^lfWz?jI-3jenckn|rm;+g$taT6=RJIl5cV#t3`2e>)?}{aruxcgw9=A6`$l z{za|EVAU@ARYptsnhJKY9uW=xFmL4PEvF$r0;@>=#6LBJ|UYeuC4c z^TI~eaVDvKQiT09)l(w$`KtRObT@9@x(>Vj?#8WMb@#Y)IewzGtH1SjsVVmuXZtI* zzqDHnMe|dGy^PQ1>#Sv)X85A&r5mlVLG`bwp4(sr-9|XybM>38?%td7jOv}+)PV+c zkLooKSlvA5g|{85`&FN-*$$}Qe1jF{s4mYyH1q2_R`{msBL-Q$<*QcE<=e?pJ-5l~ zXQ};Jsu#&di`Pg?POfYJpcTwBSa>VXN|bUt8?El%KeR;kfX2sN_o`Jdz1`YtwVcnX z-mZS!{n%Gj@4m^}=UZ~_QN8hcD_o@d_l-W>aj&zg>^$Py-(?lIU!HaK&sp6)9{oi1 z8m*waU)`&E`&MiJk`}Pvwb!_vtolDy&((o5O7$U}x=P$yzi0(lAE|oF_pJVTwLe+) z+#gusa@EJX_BUH0PxYy;uI0MNueqwX-D3^S^S^j|nd;7$t!|z{$JWzMlf2v;e1?%8`^)q~kj$5sdU-gq!Z`66QK=puYujRVqbGqs+>#Sj!+Fzu)6JdX~ z>*tHsaJ1TgPW246uU35{x~$Lc^%s?$JJr5O>pw;l?p3|>J}aE7`a`Oh-ev{!oI~C| zt$MevZ|?U3dsGjo{i*8bx2k98xH?_+zo?$8akyA@xr`&@yhz7St?DCHZ*Q@}?^Pe` z>Kgxg)u*Z6e4`bisTQm;tdR3u%;EUFwJs!2F-uibt zpxkxi2dX!2u@20$0eSm`Yu{@1W$OP0)mwCcyZ(Q!dgl$+@CvnmUG-em&sP0i)tkR& z1@r7f-u9?ov%%`_xJo<9#@~Od)!((`9FLyl9Op!SkKtGQ&ik#QhSiy%ddqgJ%lV$X za#YXwuKldla*9-M`F-h8(eR;d1U)!Xm2g1e4w zRXs!7%SZE)XP3)3baZ`i{XDCB^LlIN?%RK+dXe^{+wZ?pJ)rAVzWV=@>NRq~ftPtk zEIeqaj{mJjc658;$g?@6J}p16x*nFC(W*P@r_3fh6IHKiw8CYo&vfneID4|{^Hnd} zW(6JY&Q<7+Gr~!^-KUn8K7%gnOsekF+{Ditoufy0xcwdKKcI0d)(qcPy;aAW_rrHl;K{IjIdg}7z z9H)9svo-8i`%$X5X+5)5pQL*3!&Y$Tk^BZ#{I}g{b*-+mf3WCOwp1M`mAdviu})I` z)2g@V!uE>lpHsc@1}h9#y;*hVQ7dS(oo}h$t^0us)&2+Q$H;hl*G@!tos_@TC3^b- ztDm9vovN4KV|91`a8UKmZ(98XwND#nFS6^$5S`kOey-8kZ+BTgr)rK%RnKh+FL#aV zt$($;yMBIE^_sV=K12O%SH0+Mt1~^#>sh1g2M_(y^{?f+@#*fzUY<27adSRy{lBQb zPE)=8ZmYX~rW@T;puW8n-QQPs)~Fx<*Q_7+y6z3=Zri=t9qt$MD;Ggb9BRd4%;72NrfLQ}Sy^W$n$gOGx{(>*pP-yL~i>2`h2y)B}Qh96v?%+$XJlh5G-L>NOGLe3|M+8aFqd z*Sq@PtON5bD&B5Uy;Clb@^Z)FBdRxl!s^>hs^h%u`uUU9UsqlJ_MFte^^aCRQ}wr1 zFV(oY{g}i6GvjcVH7rv55k}V!9`b!s?EAjXP(R&T?o2f~Pxag%T7lteUInVR-EZq@ zo((|C<*K)yWc3M_oJ!UGI-dDxUX7~P=(=&M>R(a4<E#e!185Y3so=D{-QYZTHcSJ z8`R#>`NgttUSICV{yw$u)^g1=)yVOj>Wy0Nr`6A^syDxBg}JJ~t-7Q0-5uvi43cQ$ z1$AGe-IA7|%#k*;s<`22+G?K%#b zCgyd%YyVIC**w#aw->A4tmD}&cctnX2W|abU7kx6Eza^xQ(1pnBKrMnMz>{p|KG0m z{)prC3#vPM+|1TY9jX^;Kf3Y!tLsN~H$ETZ0=v|wS?llaL(Vk1w+%8wW zbH9zlAkA8>x})Epo~!!xs&{L-Zau&1>Utb;^#@h=|JXV(&$Z?4Gw6Qx>7|#|zEtN0 z!^6A|7~N}W-yc@{3_V`B>trSqQ{vOD>#eKHGfzct({{P*(p01O^)JsqHGU%ER_*%H z_0zpx(b$ilFROj-RvYKjw5WSkcQl^ve0)mvfX-hx4*#RNU)RYp_4AhM&AQ&Y$Jrj& zPmeYHtJ=%6P^DcpYVVdiLG@-Gw`OH_Ase7g0l{r^h4))-5!queI8 zfnbvTfq8|P8{(iy#*^8HcWn{O>@&8qYp?8yNC-(!&%J$TE^}YpzIS&g;xQJ;7y)7< zoIe&stMDU%5M}>FD2arY9}$*N#D*Uh352Xg9>${R|sFF zpL@LDi5=0y%}<+MN{;Kzgs)N$8-yPw{9;mj4z-ubM_so(iQKYyq2s6+1l3-PD4m;3*B4#0mc3@UP7qyBU9`ANdB{;2iq zcE6ACeR;qG+ue3LTO)jx^XZdzIx7h8B=g{c@M~W;M4w+i=zJ3Vj}m_U8-~BiexE0N z<5LFTVZUD@ypz)vSNohJ3_eT3h7$q=7;jkOmPPU5I3h<}K2;qf>n ze3kn2`1)PPr~h}z>rV;a?tDKK~-g%br>zo(dj-OEYviyHT{8jerb=?bu?#_^~tB4e=-l=B>W=hsb|>liw;lxXuTh_#uU;X1kNL#)|N1vszk8I^b<1B-p4;xV z@opsj{y5<`=+Ew-4?CRoiTl;N3Gckg?EZ)3zw2<$*B*DzI-GiQeSU)Q4PIwBLq77| zQ?bh$<#au~K=@7O2luy^6;9%)`N6jspFOUdTt9CF9ImpoJxKiP%=6cY@d)9ElJ%N= z2eoZIa+&!1|7r}LGd1CRXC}`@`jzL;j}yK|dkxs{X8`xH$HIP|_=l*UxB1D-MK!_` z`qg~1SK)n#oig9Xivu~{C@8NGs(`92d)elq-!Eq?5Bbi6zH`ENj%TNz{H68NkE|S7 zeJJc6d%#a0@twoIvzkri9f4z6f4p)u%kzs*oLygkPk!!QkDXqB^zp~?d!%$z*3S4M2rW7xN|n184%a$^@fV4$FCINT!PIQQn6V@@hDl zXQN4PF~n)eI;+aOUqV0Ce75M$<;{vVp%1r0A8LiR5Bo?f?(tUWgRRiRtF7R6=&@GZ z6Rpt0hcj`T+|-hf%gd&@=1U*Vw`_2(n!|md#9lcow+7X`oaOUT-o@)SWrcovlYDD9 z*(`>6Z$6n-d9k>Xbtj{#Sf;lkQnz4;kp|)%#cp1X=d<0cKPyIM-dl`DyC8{QWRf7uhNIUDkSZ!KW+UgZE%L9@bwq}#df}v>w+AL@DaX7Z%#v4$0^C^e25Xzf} zk05t#!}yZWtlNBZ*ZSU^&VbnuJ;I=K_*MmHD$A_9UCiUfnqcl7_lD+UG8@B{1dYS;5ts`t%!O3A{%}z#rk#Q=;bdEBk4TWcjLxrd zKzY?L5>_w?{Ja({$R2_;pvtR^mh|jJNgaM!mM0!C$CmJ3(xFB-oIVH!H|nWJYIyYq zGrTA%C$T5<0-Or*GMRQKcr&&)K=A;T)#g*bgxnz{$BPkCsm6F6;_gUpU#l3@s6mc- zIUIVwB2$*1dCy}fFFbl$fEo+cHZ-cCp}o2(8u?>^Li2OVQcM}dzzL9 zQAe8Z#lyh2kvNv4geivRv4kRI)D3bVral3S>3rADT1}y6#U->bu=*n}FoR(}Z@`2D^_ABNySu%!_Kx$9o;sZ$Sve}TIVQdU zID(2?*~)yGy9kT1#KZu0{{R*WNw=))Fz{*~pHnd*menbG6ybP5!Y+(ZMxcl+%=*1z zuCGHc%V)Kp3urn*z>T}p-3GE$R$kwQ%G7j*Vl+~j)^nnN5>JB=L57E&nBB&+ld(`=%{pY;1ENMZ)o zjR=fl0KVnw%O%NURaY&msbORCGBeSuh1+Z~hOv-HbVyNzL^$pMNH~N3t_pz4OlC;a zgRTH^jAe1II;d3=sT_KV*hjt`+%{-V>06BhXS&ke-m;Dn1R=)Eg>^*5Wy?^I2>xda zQJPGudT~;tR}QEkgqY}rt{@OTkn4)DRrY=8x@^&7i!iyfn&X$FXn&KAkd9tm^RoQ5F-0j_m;X!5r>M&FVX+BE!s14f7)h8 z{E#|SNLQ~Gdo2o93kFrub5&W9R6cPo2_{AhK95D7*4mAsn^*ZzAluIIES(#4v|BiO^wvU zFb;9qtY(hN(Zie&STF}GCSy7<7NdoLi|ysT+LV4{>@4ccaqxkk9hP*gc{vS}A~vAr z9#N}S!R7dpjmyg6I!n7JB;`wN!d}@gFi{(QGzWl{TyZnFcBj=oCv=&wS_41gAdXaP z$;uY-#KZ*guv|A<;-yCOF≪z+s?PKQw35#aIfe;2~jB(kc!Aux?GGjX}^>@6a#m zkx*!fjgihN%RSL9xWtHp3f{1}*vk5P#b_Cq{Dqw*6ri?c@*WesJcm63N#Xye_5{Vwo@Q zs&OO~j`lD;iT-gvdr%kB?LknFh+!bt^QeTO+yOg&tT7zi zspox-wxrXjFl?5YFJ|NAKt(l|X5VtL)<@X5RI6HK za5u73GP&1o8+jHYDAGdYMB=;V8m4li5vYZ`1)CDoQ4n90jpmQouPoQZ5KlLf2*jMM zZkP^gsq1d=9Ly+G-jV-$ZfY*}TU|C+2FxG|HQ+r z#gCzpmSp_RvRrOfG@Kx|k7t}b?_Mb|C5-j1Mgu(#j*w=}+;+9PaanC?3DByz!D!?T z5z03ag@Y2B=t>xF9N-pUL#V`MM6PV5+8seZXy-F)@iAN58{@;YEBL1C3UoTf<+I&v zC4ls)nEMC4OcCS>uxzEbI|egr=QBHloB5U8rcyK>H`(ap4h%@*oeeCwg6ArNnJ7z0$GW12;c19&%T&fUxzWKPpp!M=2o3WGepQ%bbGo$ucjDX+;m_&)cNDyR3GdO!b_f3Ckw>S;>sGqS`#-P2 zpVRyAGI)E<5e;2=a9107eq4SN!Rh^X5WIbuCtQBV^L88b@*4|&d~HqHX5Q}E;gb9W zXNW-6jnj8Tq1e3Lx5Fj<`LLeCd6DfD@%(opy!GFe5FB|{IMv_p115UC6MwpGG+Xhn zcym2C>}l-8^qmbm^um(cH%-dp(|QM@^w zw||z<`}c^w9sjnBuHKx^A%BjYc>Ml7Ja7Gd6~|BY_es*b{cBG)$ZevaXzN7#vMbMF zOaD&q-y8Dw4-7GetwW^0LGwxekj?2_t`7kwC{BO# zKds-JU$J&oh@#Euz1_#Tm_B^J>6X#&Ckl5uZ~r@?_wUc`f7R&kj{25er*rWC66W&z z_locMn$dqOv0ujt+1?J}MgDZ0PXDtBzTnE{?GKaQp!NUz*ni5`=^Rr&XOP0=+Ah5i)j({WBn@9#G_8<*eP3kT3&<_G8g$O+jx zowx5JeS((V`I5>1Kyt$A96UOJ{^vH5jZ)_{tq#SQ) literal 0 HcmV?d00001 diff --git a/src/onyx.c b/src/onyx.c index 6432a985..84889218 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -682,10 +682,13 @@ static CompilerProgress onyx_flush_module() { onyx_wasm_module_write_to_file(data_module, data_file); onyx_wasm_module_write_to_file(context.wasm_module, output_file); + bh_file_close(&data_file); } else { onyx_wasm_module_write_to_file(context.wasm_module, output_file); } + bh_file_close(&output_file); + if (context.options->documentation_file != NULL) { OnyxDocumentation docs = onyx_docs_generate(); docs.format = Doc_Format_Human; diff --git a/src/wasm_runtime.c b/src/wasm_runtime.c index 88ca522b..b3551ea8 100644 --- a/src/wasm_runtime.c +++ b/src/wasm_runtime.c @@ -2,9 +2,12 @@ #include "utils.h" #include "astnodes.h" #include "wasm.h" -#include "wasmer.h" #include "onyx_library.h" +#ifndef USE_OVM_DEBUGGER + #include "wasmer.h" +#endif + #ifdef _BH_LINUX #include #include @@ -228,22 +231,23 @@ b32 onyx_run_wasm(bh_buffer wasm_bytes, int argc, char *argv[]) { bh_arr_new(bh_heap_allocator(), linkable_functions, 4); onyx_lookup_and_load_custom_libraries(wasm_bytes); - wasmer_features_t* features = NULL; wasm_trap_t* run_trap = NULL; wasm_config = wasm_config_new(); if (!wasm_config) goto error_handling; +#ifndef USE_OVM_DEBUGGER // Prefer the LLVM compile because it is faster. This should be configurable from the command line and/or a top-level directive. if (wasmer_is_compiler_available(LLVM)) { wasm_config_set_compiler(wasm_config, LLVM); } - features = wasmer_features_new(); + wasmer_features_t* features = wasmer_features_new(); wasmer_features_simd(features, 1); wasmer_features_threads(features, 1); wasmer_features_bulk_memory(features, 1); wasm_config_set_features(wasm_config, features); +#endif wasm_engine = wasm_engine_new_with_config(wasm_config); if (!wasm_engine) goto error_handling; @@ -262,8 +266,6 @@ b32 onyx_run_wasm(bh_buffer wasm_bytes, int argc, char *argv[]) { wasm_module_imports(wasm_module, &module_imports); wasm_imports = (wasm_extern_vec_t) WASM_EMPTY_VEC; - // wasm_imports.data = malloc(module_imports.size * 64); - // wasm_imports.size = module_imports.size; wasm_extern_vec_new_uninitialized(&wasm_imports, module_imports.size); // @Free fori (i, 0, (i32) module_imports.size) { @@ -351,6 +353,7 @@ b32 onyx_run_wasm(bh_buffer wasm_bytes, int argc, char *argv[]) { wasm_val_vec_t args; wasm_val_vec_t results; wasm_val_vec_new_uninitialized(&args, 0); + wasm_val_vec_new_uninitialized(&results, 1); run_trap = wasm_func_call(start_func, &args, &results); @@ -362,10 +365,13 @@ b32 onyx_run_wasm(bh_buffer wasm_bytes, int argc, char *argv[]) { error_handling: bh_printf("An error occured trying to run the WASM module...\n"); + +#ifndef USE_OVM_DEBUGGER i32 len = wasmer_last_error_length(); char *buf = alloca(len + 1); wasmer_last_error_message(buf, len); bh_printf("%b\n", buf, len); +#endif cleanup: if (wasm_instance) wasm_instance_delete(wasm_instance); -- 2.25.1