From 9b3d4e0ae7a74c0e9d1f13180d19ccf596b2463f Mon Sep 17 00:00:00 2001 From: Benualdo Date: Mon, 16 Sep 2024 23:16:06 +0200 Subject: [PATCH] Save a list of sound resource files in the "Sound" component instead of a single resource file --- data/Prefabs/Football.prefab | 12 +-- data/Prefabs/GJ.prefab | 12 +-- data/Scenes/Aiguelongue.scene | 24 ++--- data/Sounds/GJ/arg.wav | Bin 0 -> 114534 bytes .../Character/Player/PlayerBehaviour.hpp | 4 +- src/editor/Editor.vcxproj.filters | 10 +- ...dler.hpp => ImGuiAnimationListHandler.hpp} | 0 .../Audio/ImGuiSoundListHandler.hpp | 24 +++++ .../ObjectHandler/ImGuiObjectHandler.cpp | 8 +- ...ndler.hpp => ImGuiMaterialListHandler.hpp} | 4 +- src/editor/ImGui/Window/ImGuiWindow.cpp | 12 ++- src/editor/editor.vcxproj | 5 +- .../Animation/AnimationResourceList.h | 2 +- src/engine/Component/Audio/AudioComponent.cpp | 3 +- .../Component/Audio/Sound/SoundComponent.h | 14 +-- .../Component/Audio/Sound/SoundComponent.hpp | 93 +++++++----------- .../Component/Audio/Sound/SoundResourceList.h | 16 +++ .../Audio/Sound/SoundResourceList.hpp | 28 ++++++ src/engine/Engine.vcxproj.filters | 6 ++ src/engine/ISoundComponent.h | 4 +- src/engine/Resource/Audio/SoundResource.h | 11 ++- src/engine/Resource/Audio/SoundResource.hpp | 48 +++++++-- src/engine/Resource/ResourceList.h | 2 +- src/engine/engine.vcxproj | 2 + 24 files changed, 222 insertions(+), 122 deletions(-) create mode 100644 data/Sounds/GJ/arg.wav rename src/editor/ImGui/ObjectHandler/Animation/{ImGuiAnimationResourceListHandler.hpp => ImGuiAnimationListHandler.hpp} (100%) create mode 100644 src/editor/ImGui/ObjectHandler/Audio/ImGuiSoundListHandler.hpp rename src/editor/ImGui/ObjectHandler/Material/{ImGuiMaterialResourceListHandler.hpp => ImGuiMaterialListHandler.hpp} (82%) create mode 100644 src/engine/Component/Audio/Sound/SoundResourceList.h create mode 100644 src/engine/Component/Audio/Sound/SoundResourceList.hpp diff --git a/data/Prefabs/Football.prefab b/data/Prefabs/Football.prefab index ef3096b51..77c6a492d 100644 --- a/data/Prefabs/Football.prefab +++ b/data/Prefabs/Football.prefab @@ -80,17 +80,15 @@ - - - - + + + + - + - - diff --git a/data/Prefabs/GJ.prefab b/data/Prefabs/GJ.prefab index fc0257ecf..38edd0a89 100644 --- a/data/Prefabs/GJ.prefab +++ b/data/Prefabs/GJ.prefab @@ -140,17 +140,15 @@ - - - - + + + + - + - - diff --git a/data/Scenes/Aiguelongue.scene b/data/Scenes/Aiguelongue.scene index c7ef47c0c..63a8ab349 100644 --- a/data/Scenes/Aiguelongue.scene +++ b/data/Scenes/Aiguelongue.scene @@ -4,7 +4,7 @@ - + @@ -2708,17 +2708,15 @@ - - + + - - + + - + - - @@ -2771,17 +2769,15 @@ - - + + - + - + - - diff --git a/data/Sounds/GJ/arg.wav b/data/Sounds/GJ/arg.wav new file mode 100644 index 0000000000000000000000000000000000000000..f22b4bc857523f936f18c695e45a5a3286dee3b6 GIT binary patch literal 114534 zcmW(-1z1(t_dVy_dO?Gtpoj>J-Q7BNcVTyTca7bOHI9y5}u>h&$pu{JAdTg&|Z_ z3e`gu;XMse0`)*U(S39qEk{j}9sLr|#CH*i7NSS!3EGA_!f*c)g`xr)hSs6K(JIs$ zrHeHpM)VUC#W7J7UilCD3k`;=+$QP@EWYsXyn;9+yx^6c;R;j49?@I07Bj>nQ69}g zThLro9$ghv;EI=v3^4&6g?H@+uXKse;;l%8-|U5A(Pi{6T7ed$J@8cpe#S)y^cJm5Z;Uf%@x$3KWH5~%N%ERq03l(-he-5%^9P0SQ4AeSMWVt6PrYBIG-aZ4B|Nx z-ym38WE@gu1?5nsR;v5sq#QX~W0 zNet-$-%rH5a67o(@~FN@;S=00AxWOAVM+dh;Z>Ayt9}Cf7j-i@8?V5UMGmx z{5b!~3;1E)idW(@c`kSGZu~Y&WP|tz?j=mF^QodhJP-|pg9nJ=Vuk1>s*9EoyHBDg z+Jp{6Ry~Bf`Gj`CS$QLm*e^!F=NyBq+>M6f5BLx+g|9)@{U;WRnPR%QDr%v=s0peG z=Rn}ZE%5gN)C|wTt?&WJ#Qoy1xF+%iK~xMz0!83N$gpmx3<^a>&`-$2bD}ETReN*| z&Tu!JdMtVeCtd}uM%N+lN}|=Gk(ezmh}+^9RKr9>Q5#$g2jPl10j)(VQE@a8a`lcl zEv|@YGy|=NT6qaMSr+*t23I~x3=+*nh=_)}ZV9L519>w8&4bUpj4nY2H$sW#mf_KUl4InDLARGIjsqmFA-iUBOf}ijic~B`_G=lo51ohnzO^18D3h$i)xDX+} z@@!ria$JQ9yN(6|N(7_jqL7z`7<3oo#S`%YuF@B>{3Oaj2GX#M*FX$f{Qsxig0sB@ zRWlnEqW+LYgK-L6$3Ma@)HKj-1zE5lV!5wfTzMvHOqI}b&DQNS6$!{730 z;=YJLDjtY`L6tfHwd%rGDKSh)a8AciRUCnjq5cq^q9_;cEEG_q8oCFuo&!-?1J@v- zo2WIegKOYysKYGC%Z6OyXZTLh8HM3#n8OJ$hS(_fg;dj@eiC%EjYO~5cg()B`eS&z`iQz82n@{q2dKnOj5X z96{t=5RcKQ8;->WU}Ypk=>gx$pYh&s3JmSSy&x8TXd~oSDe;S2AX9q-4wl3B;k2&; zs+|GMk3hfU&3G$53z>UMyyKa?8Jy;F5eyl88Kt5OG#)Cdt*9p^!KrK#(@}F=h^nH6 zVi*6N2Z{i64=u%c_&9c;w_+xL&x-IFfIU{g)g1I4orO59ge#aNUWu}34%BZ6{2kRn z*TqN?$EWa4@Qw+n9^lPUyc*3F|ME`!8i)9yKk-jI9y7EN%@zycdy55wyM2Q^C<`Lk zA1b{$%7Ca~Km!bM9SFJh4LZrgWE zmXm<(AH+&zh4|ft>ZBrE9ESJ>i864n?T`fr4kZ3FZL|zd@%43X1 z^2V$$8^?D8mSc$b8#G4Tv52~gX2@Cf2ddg3q0M9Xms_9taX1zc8Svk&Yzd&}wy6Ez}PRRA%+tH^<&^(wxD(>0cxZpTmuAyEqJ2K7>>wVfYl>(LvUL6=5^k7#<@WfP)I^Bp&j6aFvzCDyW=m&^w~VXr9kr zLqz(E?`REvi93;&)OFoQO z<#Tuq(OxtG94G-fc}47kEUS$^qRFVA=)k+Pr?eVF{4c&ygyCp7^*|hk_VcN1FB`$V zMKu(QEo2k6;Xi?O!~o{L#Y@R8LdbczhNGelAYVtUN>OsEJXUT(tY{nW&1$oMd8!zW z#^Yk71`b7kh||0&R9H#4jxORkufgkZf4+hpVly~~ew@tb3k8i3=Xf4p!%Hy_tq&M; z0gWYY@{@FwDoT@yjnu>pYH=@gYL52fO?VKnjKRPTisR*QZclL^{2o0LJ^60-ofYzn zs4Uq>Zjx}~66e`_dW8nFiTs<`i+tgC!chyT7bkb~3xc8V_%ZgtDO7+fILBl8F1}9? z%yEd6CEbyZ1Am!J{z0om13sRu*V<*(Rb+KU#2@8`k^4-+QTf`+Py7JLS4$E-XBI_EgCMC^l_9s<4lotO;h zdWy7>no7l_s?sMi9WNDDev2jZa9mRo(rc-kG=Ny~XHi6?@(#cxo&qzR0`(s)dP1-4 zD+U9StOh3hAMeZJ&3@)Za|-adL;Q-^16^d22;wuTm+3J6F`LpxY!mM;ZosGChVvN? zI1vrVR)MU;&rln*4kCqtK`j(7P-C)AS|ZPuFH1IQIb@3!Hvld(2Ds}8Jc=|T%OR3s z`3{^P9}Z7xKH%0b4__nj+={*6-$>`8{@&4xlltCO^R&LHA$Fd{_wU zMAOY&dY^q^sjLnwN_)};%w(&ff6o;Ns;&%N&jzszK5soaBfnDqk#~_z=p6sTmhv;A zI_@OBkzdNc%ZsHm__hcVuXrE+h$lf8sD!(dE=0vbK(u)?zLW=Y%Bn+MSW#Et$zf!d zG*wO`FNHrVW;QoQm>1X|A{%ui14$tu)OkRId9*s)$1bvdd@m>bE_1OnY$WsNi983` z=Y7b%BlI3UMHkZXtRpbddB9aGi3_}mcn7s-1FZjsZsNt#aQTJ2O8HZE;rf7wd!WV@ za$er2?$iEJe@Tt-Yf%|`z+Svt>MwthC1sRU7Pkft-vRZ-Nu;wBD5a2hxCvxjPdJ@E z$iOa~fc?l)G=eEnn9LTaRiJsuP z!H=Xt>O;#-%Ov%xbQ6u^8N4H|F8wPXRSwAGNC9B}Kz@+NqXhDo)K9vOhlmu`nx)c7 zEQ>Eg)yZ&4l^)(32{L0nUFh-4y4=Y zQ#z34vPSHU`N=45oYmVKy79u$%vLbFOr$C;M<1ForpG)?6;_ek#bPel5Vp&FU_3H+ z(2s09`d^OrhAO;5+d_4&V19hFc!_?)>+l_znmC;NC25Up$a&IOd<`?}GwqZAZ>Ff2M`V_M_`@%i{t3Ez~m193>8Csv3v^KlI$_icV1Qzf=_PG}kd>7`v zE5J97!E`fFj6!$uPN}!NQ~HZs!jI8xV3-l4w^UyFs^+Rwl%7&NY9@xDqS6<6i?Ux? zD96K$wH_}4{@M@!P8yR4vI0k=B`|%j6E#H?pv8249kO-+>q+mK2h4_aB8%bQcnMUR z6p|Xy(IZ7O+Re;1cbJXo3}GcnWP=n-<^skVEQ-hTKEM#X#Xy+mPxEi=JTRiV_!!wi z7NcsA1vzkL9e6!Jt3xOc-yz?~VN#Lg;k$S!TEU9~681y8$vC;K{FcPxMu73X@kwA4 zm!)k|FKMi_K`J4SQNE}Hv=B91$`kXTV{}A=$t}64x=H<8jZo$Q8YJ^nI+S*17G6Ip0h&-WX$PbzoWl zBAb*gHJ6Hzn_>w)Y&11DvH2*Qbd>kV8>C)%6UPVHzwHdtv5G zgNSVt zCbse)tUTa#4b)5A=OMt$--s__AoPvdFzbAn`|cS zPgm2n>;kadd%(wL0PAeby?J}_1T7-#)DH@8}3@L_|@k+eU{WYH)ar=nPh1H$p7xza?9 zm%Yf}ys>#(?`ihn5%{DWWNBu(tAt2Z&_lM1J!G!|wN&QMYVkJEZ#u&K(E|?>I$&ck z{a`#ad-7~Jqrt>i+6p!L5N4o9bS_=X*FYyP4NPBfKj6UL16dN}H4DY4!v) zlok<*93)#&Db|6xP-S_v5~yNzFS*1DX`v`b>c|n=IPE|AEOg!;Jc!-qk5DQ;N{SOZ z2!>B;z5##@>jNe3ocUh}=|puC=oEwEU|fZLu^Lt-v*j z8!eUgX=~Nf@-j6+A@Dm-rITbKZb%yAfB9g(A9zcUID?N$S8y>Djl9_={f!yP*O*Ps zfe`OB^Rj4A*Q6?WbWG^d4l2XM^I&?l>-XqIEN zGXFJ8(LsDQu*#K?``6hWW3uNz*Fw(;b{^UBSD3rYvTAfYo5fDC5Y(N-N~dHl?Loj$ z*crY9y(atRHp*?Kno^f+2kkLId_k9_RZ3MkmfRpONLe_QQ8=3)Vy6JXM)4Jp7aP!e zybxzXwO8TCfkSU+H_gw6H}vU?xSHe(oZktZXc%MxAQg(?!Dbygn~&!$aV0fF@dkwZ zi7M04GyoCtnU(|vbSO(^DBcl|;)-OJg-g8YC*g zOjH(n!VTrD+EbaUwv}sxf*MK6LUjnDiX)~QSoM4M1@9u$fgN_{Mf5axAN{jlnO`Em z;V99C3w^UY*I2{$@OD_>o`4zmd9Hbf>LMF=kxwcYNgkg^R~Rp7T~a|FrPQ`;SA0<| zkxoClCm5g6A9y+Gu5On9r!yvs`OqDAf~Mk&88Gxe@mju-trb>`q@~IysV+=oZmyb3 zjGHu^R-x%)F@6Hm`YFELylf1mF5|1Gk$H=4rQH0T&7mRYbk-e}<YW$NE=C{v|LJ%U23wrUma}OYVB-WWba@*qPCZgq6H!h zMdJeU71-}6*<1dFB=*b{<}4u19pjVcnznbwpPkgO>P18)6E#Jk6;^w9ha7g+FG5UmQnl( zhPmZE-U1w9lKfTKsAS6jNYJln3VR_|lIdCrYl_lc3dS#i;U8r+*Z_e@U$hIl(r}}c z=d$^kmjN|3R4B$y_W?b~Ofg$S6&~R)SXbsU>zlP$Lp)7xpxlsqNdF*%ujK3LcSB<1 z&|^|4Ka@-14E8tR!7HZVS}?)Sl6<5>@r89}Nv33uqcTt9?a?jJHJ+g{?4xnU>;{ND zPPj;vG)zRY-`FNI*vK+VvRM$bKu|bR*+S5|!p)QJUhd|eE&5}+9KFRI&|tRAd}daH zSRN7n_@X!tTY~H2GTKQlfI83%FB5(FFw}|&X|y^@y)0vSm~>Zqr39-xCmPT{_M95BH126vY*a1w&Kh(Xp-|Puix7I*?BiEAO$ZKSav_Y0TeZZ4pe%Qz3#d0)*+>;l{VNx_X#@iY{jr+`p_Y})W&VH(;33ST&%|EowANj{BX?Jq$ZNz=zKS0M{@+ZjAuFWXs-(q97ttO* zl19=%mO^*1yP)j+DFQH)WaXGNgn))m+k0X>2_B*+F^hakUMHQ9{LnF@v(c1#Q(qP* zo{Q^zhN#6S8C?wl**-u7imLh+Poz217@=>Vew>&kjb)%CVB@?VZuHap8YcT&1b|99373${ zl6iPMa?xT&sQC|DFG9(G@(8GxNa?(|K)chX?356aMeQtKl|q$1@?x@^MB_SiiymU` zGDn$({Ild%MyuPEI(V~@<(%)#^3)MGl_Od!=^(3UCIfm!p@-xgNhkG5eYV&$NUuP9 zbE{<6s>%QH!}LDn>L?=)dR+)U4)1kR=_BcAxQO9au?N3^`UnSgX#i-{Pta_VBJYrw z;a#8+!0hHeN&ADU(o1Ql4aJYmU&d2UIoBx9Mp}*)ngz5K|7kw)oH34p2GI>Pr;BC} z*KUWOtI$o%;bK2&EA4?U(u)=vZ}muHKh;@PHj1ypdq|*^D8B~WsxGG}@8!RNb&dmV zye+A$zO-Dm+|>@LBcxdFO%aO`Zd_SzCtt*vA2JtG3j3m+JRGLRU~`$CXrvhdW`u~4 zs*`Vg6CGy6dkT$pVm--}$|}3%XZR>^*&I;K&Z0&NRqLujN^dEN)KzMz+mzduc3vNC z^K1>g$J@7CE_jy;IvMzPz@DHB0j0cKc`fxV?>F41~<1~l~T>~+!``>eKavhVe7=Do=4r_W1&AAdh@ zKWlCEnWRWo1#5q+Q`O#(=pAMdE`98^eix@6Q#btM=6+>^2@!!I)~y@0z{WBM3zRg^f zc`&P4&WEhe8Iv>9Gy7$3$vmDJnb|G#Q0CmswV9(b6EkjQ{F^a6V|&K=jF}mqGVW&7 z%ZSbL&I`>=%lwcLn9(5PL{2wHUC&%v5_UG3!r<-1NAgy^Z^^U0^D66o%(qX_)}mVQ z;@~w!ng^5#I3Khmcv$E^;bSA`MXrii8eT7~UI|>HXNj+&A4}wyx>hM;2sB?6`gT=B2(f6qU{ANkGkv-nZ3?zS41{<4DW03xj;J5^un5^Jipv!#dJ z6^959t-{xm=gI&rMRO=0h>814Z{@X0x>8jwP{t`2m8L4v_SvTUHub${6Y3o@oNq(p zEeYP`{O0+O^jW8UlUm4E<*sV5t(d)xWtrMVjRR)VR4$|Sv(&TAvDdJGMhUEDAB#f^ zv@zcC_I>JF>9QCGx?>%DSaxfst%~)zR2SbO%j6`*X8mT{scuJYfK@3x27OTPTmRL{ zDJ4lyW-}@qt4)<|Gdr1yW;^Of8<|Ty2ORqf>p2@b109PUcO0~U%AZ*nR^ZI- zQrHO)*xz~7*{1Mh{wAl(Gg=R&``9*jes1;biJ4kPmE2+ac+{JmLaBPayn`8)GumW6 z&(-vjq8sh(@-G;dT`Z$}_VGgM^3#7e%DC3%F3Qf%Ny_Wv9BRV6O)q(VI#%Z&%4_1- zZlsIjQfoyer>JT!HPg(mVzcsx`V^*8E`287Dp zs+^ZLS8gOv)P~v{dB64=VVkX1lb+&4g0w}pc^;J^P)=s^^-Rwf z;}g$Ryu3cyTWDSJpL!cdUst+$K}3*M1c_-znx~Y}hyEwl%Tu%i@?k#3caO+@|8N4Nx7LMeT_$>(!j&99P^Q*kj31W3=W<6#C6r>Fpg zGp4v3>-T_j+L#JEhGND*(}{xQLvk7Qgwg|TG0TCzc)+}bGL%ospGr-wp8OQ%^(dSG z-EuZe_0?H{xt(@rk*JGQisbT#pjE4;>^ZAP&@_6Hk4CZlEAZ?b6J6C3FSo z*bDe&5~Xg_wx|xAP3xMs%oco&^iFGGS*Tj2S^N~0g+K7F15#H~TkJMJ7;X42nBc}~ zVU{GNvQz{gWmC<6Sr$qqCDb0)>DCxckqhA-`tv~CLOHJ1lZN0)Qd4=jBCK2O{k74u zj~qxc&_cO_^^}d1ave)WtD*E!t62h-ab&KXEq9UPmGM@gJ%g@W zTuYF@$$_f3QbfsCgOxrwfDD#f$mvRF>m#i#WYQlj&#cRS;zFgnCD&Th(u9m>4qAq9 zK$Vrf+IFR(9ID)xr^>UG7&!rUO1;P*cpKhMnn^W*L$6ncsbkaw${}T~ToK3c$@G&s z6s^+2Y_S%rx)A?I2b*DZ3QG{NI2FZ!0$PlZq9s9dT*WGwwLIfIv-G8UQ{%Hy#5ilX z={sr|M~s=Ch6VL=6AF@DKXfEc;}=ZPBV4!g>*sDLO!r{pw7H63GHtG7uHHr?BiOvl zb7-QQ>3{NetQMPuPYSM=qfbx=o?u>LSIzV8|BULe4_t?0q`hPxyJB=P6urD&hPgq- z_hpq?Wh2>DUB6Brf=U>`hZqUY4uFEGuJ-f*I?k(@^YzZIPKA@5NqTp4f;ornge}u9 zR*iizJ9#F$Zh0JL0m~DA!6yzfXBp?rt^5kE2wF)VUFH7loa!EIlt9zfzS`Pqys9B6Y6V1sjDM{(0)CR;FBUgjX(j18JSAK;} z0@Zsw3AgmO#>+QICutqd5l3(a_5*ZnE1uw{QVaE8C7V|@W*euB>$JZlYZs&>QHRa+ z^mZ*bx8Xz5A4(lH7MXfo<4=|^F3H_&A+~1fO?jKt7gZDcalABB*=U((duzF`#wjn! zWHA&Ckow3QRd0Kat(?*eSnFjph|JNvtsA9h4AH&DE8{+HVe4)0WLcpWBMX5~&7~1A zOMOzlDdVNy(gVQsSkUnTrRq|E+*zrqzEmvodD2S0YsvE3?Bnb6&Xy^^5Z75Q{~|Z{ z{_4Lo;GRG7QppCeD(y8A#7t|9-wVH+URd42hl1XAnKp<0T|ICiZG!#&9dUq$fo9wb zU8AY`CD&}nJy$8Z14pTMwFAma9M8JJ9;Bfd3(D39P?cY(@6;six^`C`t*%sVlJ6)? zI;?KBG_!B>eq+m2zDhmtcY2kM#QR{XZ)3^R_K;{$X2(%Kvn}f=R^}L|MNWZJk}TKfyNz} zU%ZV#=yTy;DxoZ`6d2{#uTC1AH1rZ;f6(N7uw>D|mcwgqZ#9oqo89w8Qx zeaN6M&9?ea=M~QhB&(0KpV|Ovo^jlf=NRU$YktNL)LY6J0&|k-^4vE$=)J+<*fUr? zV~nwq4H8pP1u~b^L(SMXIdVQf*?nsh%gY*v7hueex=M55LO( z*SzN_m&~^=AI~-#A=maw^GWdvw2hG+G~Z~(Y^)VM!zaMbsX7^~e34zKB>SY7amTsO zn2XsOv$3(&XlT|E*~%D8bHx<#9}V|^k8gYI4dw5mHa0#(6w{2F%w zu3<>N>U}ww%)mR)1iqU$!Uv_UYOZCd<*U33`#^0x1>e*ET$A(ovHzd%wv#q^J#0u? zz=o|ed&w7p#<~u9p>R;yhT?j#U#trrl#!@D@qyj(8h+Niqwg{2@-Xp-=!ZVB;`(3i z-#uCGx<(tZ7JcW@=p&wtnhJ@B=sg`n9n7`FoG4AO*0&6muJ95@L(ey39m`|gVMA0B zr-@g%kF*q2uR(YBTD3gt`F)cO`l`#`RWv&c{WrdG1H zv)$5KNVCN`W3y|%XR#=vP4@2Mn`4c@@Ad7D?gjIm|5B6OQ&uW(uxgylkISByd&v2b zZ70Lg7Nd{zWPX+W0Ova651uZX@Cb9Zr;N+udS#TyH{_>^pM06W)eq{=XjAk=>ZUR6 zo?H@~H&s9(nxNXXRSHtKsvYD&X|DX2lB0!qmGtgmyP&Ok1 zf@ZcyuS)aCRLeQbE#)=tLHD}1y07Y+^(&sYp7-wdZpHXPquF_i&G{}z!JNWRj#%e> zPma0OEDNgNJix9cunV)%D9>(>FCEC&qaKn|I!_jmU*rS$pq_#|Do9+ClB@%~3ar}{ z6&JGF;=W{R>+FlX4_l|<=Jb{MCk+%AUEc$|m8MEDeoiiNiu9e1DV}(9l*WDGJlib5N#S?KG zTuDsVSGX%t54tXYwx-%@E7xE%Fb|YKA0@@^@+#tW%DRnwp;+{h2U^~Eo$y`cltplYnQX0 zYpHvoe&6V+uXJs2hPjrx>Uy4-d)YA>z&?ums0=7%Nr39F*dzWQzAGJ9rd!8)9kN@k zMb!6rIo~UqN^$B1`|r@%96oW@zVdR|E}xK!*lKuHw|Zm>zPTn+eQltnruvSw;hMoc z=?3hANSwM#t0ccUPxDLwE=!1jA=h)4jRpTXC$AFQ?biaRL% zv`X4jrGa#k>z+dAGS7W>5XZ>}v}qcW2ckEi>i*Pgn;HBpCek{&rt((uAsX6FkLt^f zySxS2Pr8CmU!6m&*x$SoS`3^ySe#`+v?lb?k9;B-qxdS9@GF+5&u~%a03!=|tE;S< zU1-VZivH5s$i0hwmHS)E+cLG2Fg4jp0QrU8sIfT6{$P>98+HggY>VxawQO<8<90rE zFE=-#K1yRXOX`c~^6KU=eU?#zS0pp#fpQ3`2>!hYG>xUOrT82v4{Ra}ji!^0cveN4 zqD{2ju)ZfnjReQwg6x7px|_VSuC|}ktf;r%$MxR%(=}4BNmuYM=mRN$jpuCM#q6o? z)su}vvoy=(-uNX6l^t?*`3_zzhJtr`7#=E5*RpK=?Q6CE@*!!9^jW?N>V8$Fm~vGK z)*e{0EYH*e@{ohBN)3KSI2zW=}a+{e3#nG<>lqL8_n>PHE#2EvO_zl6_=-qVl;+MfL+!_ zIackcmX`MLY~zY?kB7?NwNy*2a*L1GZ+VuR;BJN4&r*AgAsG!rq zkH0}w6!Vxj{QG`HNqHaOJVKi47gO>3$$mv?(A*uGAod8UV&rp04*wszbv9PK#e`CZJD zTHy7bxSR$VS2Ne-?Qt*UYtckLi~g-Ia4gR6Sddd_@w^kQ#yGSpBEA1_s0v;`^ z{6spB>x#R`SE*u6@E+z@(W|_282e&DY}UVhPWbHdYUvedZ(^CC#cNTjrj*m>X|nvC z_$jB9RHcn&f#rsjzF$`XoJ-iUxl)u#r zYAGd*?BmI_h8QfJRZgfyw6n?@X*?MV{>^zLUyZQMw{@`gQapi?T|a8poY7Oxtv9@d-{H-REQmmjK`$BI#D)IocYd$J*m8tQo%OSx03%e`(?Qc zX(+8zD%zj=mkZqQyTa?c?X1;q3$b6b?Xk|coK$_3Sb3>z%0Co;=C$XlTJv0WolU%9pMxKv)7dpjMJcr#YjhE(ba}uiuTb!Z1 z683_bh|=TWDeNiwD#;e2WlB?Fd)t>EC+*eK>LInCvKV&-w{~T`0IkL{>;it^zTj-! z1`fw1;vTEd{Lm&cjKts_{I1^FbB223`gkKe+3`uN0{=xZvPNWq`ZN%phFMQyVFP-S zydk5p9ent+!Q*@podZwxOED5Rl>d}BkV>c&Z$%%O&zTixkjVt0NA!@fPVehU@|>or z@NB_zGz*tumE2!lk;Z+x6;+TiSxUPauZ>&g9^s`Z>M5x+@fM5qx_S#?RR&sXdk^$7 zl@@3f_@2MGQEY_yc^`^_z5QJN%$z|Nn{^DG7gIAeQ!TB2Lx%oR zZwC%-BGt7vwR)s(;I#1t#dswCDo;{=Kp#ELE`a`00PMIi-boJQcOry-bIo$jH7=qx zQdLkD+Ou8mbFKrPy+%G82X3?DBAxw4=NN9|Au9=<=K^@LAQn6w)z}hn1S&8MC6gZL zFJ2u@$1`zD$zN$FWuqoI2G2#qNFQanT!H-0QT!MWlFz9nmCNJ+c*AnRKYA4QnM1+1 zuw7lIbyJD~XDrmOLVaIADflUwj|cP0;JMjHUl||Facntra|LIKLHsv(CgKYGtRWu( zx$X;26qo>|LyB9jjfxl{?iIQsW=V=-l_T*N@TeALoq*9kGz;lu(GZ+I9B&i1!S_=` zv_!+n1H6e1FdKj)q&-Sk=G%%}B49u3g?7_5d_H*~omZRNQ*9qKyEae`fK2cs`{ea% zFH2pu3f{-dK{WnA*P$|8<~F^K@uxn=Q=rG03Oz*6(xJM;(WOv!oN>0&gTXgcV7&FL za@BA?aE;S@(&^y62e*vrq#8TN3-DU96?Y~E2_ZS;o|(rGLl(UL2;MX8(KA30GHdsi(*?JVvTS)`IK)6C2qP+fnPSD(`TC7ZynorB%g_0rd?Y-N7A}8Q56Ht|TRBO5X7yNAbCBzL;T`8q_XYP>&qm$m z+3pH)w{Wq7oq22WIu>}lMgl?@bR0bdRXi2uo&-;C;}!djY?3R>MM#jyqUTs5nk3)U zLTzaos!j(wi%;<>@S80a_HyYJ#z;I!$09iR-3CS@&st(tX_Rt*n@JzEX+g{7N)i?`EOQ!&v_9s&M> zlky<@LGS%uVYau@L>i~>)4zLmnlo?{d5TmDXPOr0jl7L{D+|ZEiQ#RwG`6_kz=p7i z^JZaeVRk{0f>O?Y##*|WT38=C4iv_dv?mXNXGh+EFGeP<)N}T6zSMV=*Dd7?Jh5g` zmf2tVuMBz+(AKxE*J69kOd)S@vw(R!fAEiTjA9^rNnOti~0yJj(!A zU?n};u_E{PtlF9GtkZdC9pl~G+@BqN@-i|%q#w!bniuJ8?J2K^drG*cdlJmbVg>F- zmZP@d?-{~Y;?|aIzxBZrgRlF&(MF<23`-S#+7$N=zZZTvbXH&!+aNMuNTj5;!Fx*J z^`M3R|9ag~^T8)Ri)XWjY#ZAQF8f8s2qV+js;jQx0>7M~jE`yGGHd4_a&^+Lx%TGg zX3x$n$XK7Vy-;`VcBvkV*-We;Id~nlIveMAb^a&Dd6g;pSFpoxomNitH%#+3scLT% z6jh>0sq-az6?tI`#y!k421lXZZ;H(d>ly0y^VRy1isC%Afv0qlImp;4Lgad&{^c7d z3QJ{eNV}FEo?SA(g)`DK&9l&zS)k`s%! zwBdU42j!kzM=fr@>~$434NcTX@_SYC`6qCG;6A^D-WO~et@CVWYz5Y@HsRIP`;EPf zZJc&S>Pxbv{eXeKD1bdSy;xBm#@?BEMt8ll`9mL+eiXE{0{Ey2}Tkl|~5;Yh7+X$d}y%D6Q9Q#7-E_Aeh)y=a<$hV;|(09aQ` zThowEk!QjO1(nyT(xtAR#zT3nS9{-Seh&*lyX&vh&J-+2SGo@F-A%kXpqFWdl}!O!Ru^;W_zXJ`k!XZvQ_DrrI5 zDm7NEYaj1FxX8ZZhfCfHY2xo^eJK}_m)aH;4G+6ivTjIX&<(Fj>OAn6+obQ>LA%|4 z%`yYQZ3Ad`&la@EI zV>@Dh>hp)+Ht!nNX3A!GnyR9FUp=mI@LDb-)4@mAO?)>;n!fA~_wXv*pjFL==1bV3 zexj2+hxNB~H~YkI;%nFoo)9gI4#3vCv}wU3)KT_nc5f-e*lqM+A!0o|xmN~t!J8}( zy<6M&$n99F(^Ie%PO62akJn)DMwU2c<2{`q$IIZtWN3H^%soVG&yrF)=wpF`8NF7{qN*ZuDMp7iPC ze>t$B|61>J-k1F2ij^x}Bl1_tmO-C|Py??5bg|mxh zJWt-1l<=cyTA$ny$KAr21+N@Uj1A%x9*G$lrf!XrMaD*RNz`BKfjf6h){smovs+FX zPj|Ekm1iaO>jl4ZJL@%V^NTJBm5V>Km!$1nah?jKPf))yYocpJcaEqYxEp(7O$6LLFx zDjL=D%Kdzv`1n)gXG^-_tYXa8w>h_GR!hqKx-i){CtZIgM_5}ZIV{`r&ZF{V<(Pe* z&l|s2{ww^p`PB-n5EK)5x5(>|BVo59zDAdbtXllN_i)QIdvtKm2s3(GbieT10kKkj zbH6#69JHgrKZ}g?qta`aPj>s%!>N<9Zxz;d*KvN%divvT;`R7fUu?;fQWhm2`L;0O zOG0$grqr34-dXR{4kw5HsQ+_iMoni3-!CmD=k<{VOABinE97v$up)N?p7>7+O!6P( zJJbK)B9)7m2-_aERJ~O3e(pRFpYo|1o!T?uo37G<(YCU&1w&BXTKqJO0S z{5|D-nw$}ou__&|Kdp5dqQdB3c%!<#iXHS2<>F;Fsg~(<@0c(INe& zyOmzUv&`poJZCIi+@$9$Qe`I~1 z@xwdyTHbSG8(rtRn7^~&xoZ%W$SNrd9VEma>zD5Pn=gXRPv5|5MSc|B7V@m5y;OzL zYa=Q_)9zQQXSl7zlA@P`mxp~V(=R$ZGO@V7`q_0?U*~lu>}6D&$cx3R%0qHel9#3I z%lh3}lUD~dwzS?WJ^1sZPYdIH6Bd6zoKDkyd5_Y@CqGRo%zI5%1x*g!Rb-m=8tnHYB!@35wJ@4T{S);ivUS+UqNj># zB|DWV8+9S_Le$i#gW*vnd`eylPl>1=F)mCg-ZyBezvg$}r=9m8yJC4Q)kkGvdob4- z<2>P*T6jOtm9a0m*>~-WBeC??dEbA0uk$_RYd~V1gu;Y238fQueJT6H_*wC1)Q{hP z2BbF6oSxIJ;1AbpPd9T53Rli)KkNy<*L^lx9ddUqHE>|*=;&q9p2&Tn8-3Q>S_Q6(qDs8kl|~+mSUjMg6k&)6sZa!ld}hpC2V%OwLOh^W~pJ^~-NbV^i*=oliTP z9+CMx`?FI*@1%?5A?XWKUjlojboTKLZV-MnqD0BwMTh%;^L-Gsw&breU!zV&RgT(K zCJge+EBs@bQ&AP8u9UtIx-IxraAGlcvBcn?L5cnY{I+|!q**5N6wx=)0(g@3vZrY7 z&a{WA)6(~3EXWv{GV1HM_{Iq&J~#fx&z+fDQaXS69&b(fJHBiD*e`ym896m_il+AX z)-NF}zTcM~>E%2(@kOPZ{Lpk19&{dKK9zj9iEq-i#VZwy3B&o``$i(#c#|cvs9Pwik$|MYmKNz1EUq1dqeDNCn(Qfy0>}{7!*#OI-}8{X@f%l?MBRv58onb`E4d=#1N=KH@*Z5han&z0R%?HgL%va5FOW0gxPMbfN zw^%%7tL-Z9AK^*yQglUX06d8{hdEC0N^(S2H@BW*wY-7+plY^$cELkEUEg1KQMX%P zte>a#FQG!8 zCg%%RNB3iQrsui)C7@Vo?)9Ek0dweB$P*kG8WTN%W~R1M&eET;^n!w{{CtV}3!qRH z3Ox5wz7zcRdT1*(JJhFDV^o9l%ayb97v`Il0_AW;SA`z@uIYKBvOJQ5(u0})jK1O# z8Ghjvh9a@EvRUaJtI?OAGBajCIUcjQoiSy6W#k(_n$}c094#xKm@19OO@~cSOd;bK z%kPz)E1y`pn9iBhrq-romXVcV_rCCyWSZcRB?d_Ird_m}su%kAvp>QQsOoU{zG9I{Nd7|k+EiM2_Y#O5*U%xZHFaP2j< zj;)&IYU^v{JK<{Xpt!DiXN0yS8DLNCGTX)tajG~I_^7a%B$Yi?na+QapHgYH3|&mS zN~hDKI*$IhzM+1vZl^x1FVaj>AlU}VR`ESiN6`Xd5q}Xknaz5%gZuHS+RAn*>2ov+G4(Ber0V|S!Dm@9OBjZAzy9JV-GJ_ z8JmH>qF9iRj8}|IRy$Tb)*(Yq;!>?3Q^K6dzP=G`I3? zd6MiOl5FwcqK%^ZVsXZE@g<>-YoOnTqU30zD}Di6i|xQZpj{Hi@J!!o7Yp3UxA}Sn zGJ=o&cip))>Z(zdq3YG{-vf?d&)`U$z6I>V-%MGc0rW8Q zHR}#b#d^rx#n%`DCCkXxEfNb|(?1p|2tc&GS%1SbV$ z{KuT0j8E|PR4yBK>>p$X~?mgiC>^$I{8tQ;VrzLF=j*ke6G@ zYOtsDDDhkDcBCLuKQc8kFLEI~JE-ojyLK^QL*T+pUINmYt zi%p6S4-XA>58V$Tk#o@}v7YgG>`e53kz0{zu`7xG=m~5fFg?`J3gGZnfoWqq=q**w zw6eM}WymZ*F}s+{xh;i9MdO4M`71a~Fgcvbc*AZWqRaj#J1S1Ha-l!4>A0J+i9J!I z&bZ8fMk_>fLl69$Lcb>urMm)Wbsj_{mjev4HzS2aE~Ou|8EYE}_&R$_eOQne zyNLAz44ww+O3;$o(Ls?fvG2*h$x%q2fGMOgZ;>zKrf3Zsr7hySL^e@1e+tu0*#JyU z9>ik37sfLF5>MxLpfyZ&A^Sqdsh^Np>;)Vbvp4-b^cC-iy}>V$U(zi>wP_`^BJ~nb zW!=%;@q*aHcyC~|45#!?PrxR}A4Km)`^1l;Zvlt%I^7ZKMk-NGvK?B3Rg!uN0zTzM za3O6sl}%{|dKnKO;DsR;b1~EB9WIon7jpMM-2gQ`5%}br15uH0bWC#03K`u>NR*c+z=FKxYV7rF31sZ zKM*jQA&==7kjKn%>;{}??77TE2+VLX?d(C^IUIs95AcdgYJ?U+JWMH@%k;s;4QC{PU#HpAG>|L1%8E6QsPQAeECkIC}!(l+KHUU+G!qi7R2fdsKCxXBR zd4atr;;BB67nHOHr~Sb3P7;U6R!}3bCLPTBohhQtPcH->M=^Yoq2y!%_9=m&@Ce|1 zHKCLOw(B}$FW}>O)LPITvMDj1U;qLo0Gc#(=sdX+yPBvU9~b|c_>4Zop8)rA2=*e8 z6`LM;6ImI5jeSnBAV2XfF)X$-u0xj*ztS(ECxC8CgT6u)aCN&u$KgiwvB=-_wY28+ zyU1lmGbYCHfhpD^)(1{0XC%u?e?>h&3KGFhd zNw1(j0(8g#*ao+uE~hr5vf*mr*<^rL)+*2d>I8}lQ^^$hTPjH^$w~MZ^Z=k0wD<&~ zF-a%sfG4SsYS4DTd;3PNA?(S%i9y)nbX}N$o{$@WceV!4PT!-r;1v88MySouJ50bcAL@+5@3WGC=6PEdYHBnFm=DugNP0>QDiA`m2*Xc zi0dMC<8|CC+;?L4;UdmFfq?fr!XckU#`;GGJD{WJ!vx#JZ@5pP>v3JQVd5G24LQd1 z@y~N-WaqSyev;W8X_MwA zw}rO*Cx$y<5?V3ulu*TC!Fv*ef^$MYlWVE}@aY*&!A90Zs8>Q7Ta9X=XN-iJ;$+^sJ#O_OPo@$E1L?c>+6$DPnLq>DDjW!R-L^@CdpgqzQ z_*!dO9hn>GHj19yh8@A5r<|0(sEueN0P*q@)6X4I*PuWF$57)e)5WL<43l=0kI;W$R@a{1o!*%88atJUWB;QV=^yD6D7o14=z}QW)i5{t z1e#4*4%msD*uHSf=ty*bnoZpfcT1nd)X7`GvS2_Z)EIp|y^QLke5U+I%Vdn9Pope` zJk<4!!>ka;$N9lHOcT@O)Q#|9+6IP|J%sxKz{qiODE^gv0qC@oj5HOrCh3!wSPOd;Ru>LM|XHk)!m1G?KcP2GhIJ*U{_IZ_o~bw#A>c z9aPW?AvmZDZJGW-+mEEF&&Ve65#fgsKKKM)l5N1mSV;^@eu)eXO$^V9r||}$Cb^7U zg61biC%_YnP(Y2TCDi&<10ZKFQxJL%a|G)Nn87=tZS*C)Il`^H1T#*}qj2d~?jGS( z{&Q9d=qzQ?p8{9u4fRi2gnk|&Xk#c%iQUPi*xghDI9%IP-|!hpOZ-k;lNgbFj($di ziS@A#(cBn2`3M^dW^2u2Wb{U&G0`IZG4%nDB+bc&cwUN0iNVEiGk6H7N!0@dqbwR1 zFzlC^zcE9I4UlI`k=l&)j11;w=38bRrWN?9h4gXsd-Q$uakM4yAj*4604@bZha0Jn z1ehM+-AEPr933CW6D>(e`ZMsiizDlT{|1XAWSoahBBl{9u_1}va9-eSD3R!tIz@R+ zIh5{&zfG)7j=`6wBGfIcgKRbPE^Qwul=|r-Ih6vVNGI6CvLi!S3C?ev=j<}D&MIM- z^3#G=oFb$dZ7iHat44Il0vdz%2|fo6Os&U1B^M`#qm#&MsRhIjv}?RYcw$HtITnq@ zPolrj_KDAt86ic87P%X@qoXiC+6Ehe<>NPq>0oE|GJcb60~JtZ^b_=EV5+}`+KG0R zc89)(S;RiT`OJC49?!gqoJX!PTC)zb+j3s96|4yIl-3LsR?pG~(6#h-!0-JX>XzC~ zP6zkccfdEhi_gWc;|zQ#s3GhGQ`~Q{W(h^ICAtCKmXsuJ$F{`&i62W$K)2wtz>~Ea z?}nG-1;k9$7AF9eHXJEO^oSF#4{VP5=>}k3P@nOd)tmJKka|k^Dqvo?)W2EH1seoa z+)XTmVMl_9ncj&$kDiMxM%YL-S^}A@U;9H8C9< z0ID^wKt19l-Z617vL-SzdMfdmtVpjXIsxOkU9v%vi!t#hI2AO8u7PfF6KE*lV*644 zq_hNVIfpiu*^d35m4&nbt(o_fxAZCOCcq^f$NZbVA8rlTqF$x$rY9L!7@g>^;BCxyT2V22+Htpcnk2vOeSjL_Yw^33^6?=ONoio zSSEH4rQ>{1$QcUNfbQ!=@-Xo+bsh99MpIhBR=5XsA$2jl1C%j`LM`9{v~P4HeLGDA z%&T6Mf#Bb(0}ROFNDGFZ;RUOi&Vchg1AZQuvI$rtH$a(_3qPk`q1~bkC9mUbFim%+ zDyUWTp|mOK+GyMO#>8l>Ay^|-(CWf>$S&BmL?XTowURap3s?Xmh)F&{Pb7EXwSg&P z1K-yjl=Gkx*b7u-$3Z7SS>gtT4!R(@2$fzR?vXYUe&7!EqjzSYz?d3NIYO=?T;xV* z4D|(V4y`}+F4ULo44NY5RC@@gtN^qLya`&P-qgu- z3((IU0!llZKo^yoYD`i=zi9-k`wAU#bxc>G<>PL|zjobwOj~^({ptGQC@F6ifJUNn!9)&`z zGdvP$1USaiU|+B{F%Kr03%FVAtH=OKS#ox~fLI4lU_v}EN68ofC&~82X>w2c89bbE z08jw~Y5gd)w3+yczauuL&O;_Z+}uO%!C`!UyngIt;sJ36eoVhZlT(He^rQ`t*t^ie zbbo4yDuOqp4q`Ks8JN!KbLB;I`>en0+MrkI!da^L&W6NXUZ%u-|9jF(m3eN?#tln@Z_z~cP z1@s`DOPdBgB^Qu9sF-#aiNNj@N=^h<`cdj~cw}lm?!;b^*Fan8CgdeLfNzVIXh2fH zHNgjc$-3!b#2S=_y7ABH%@jR&rXNgIfttfX5+hoHLgaKx1Xz{pAQV(EbD%olX0eQR^w3MXjmZ=75Dy2Ixl?C7~xD@bFw~4{vJ#7yxrg^D(@TBw=aspT z75_V6?C>;^T17I5FmT-ukz(Raa#NC%5>l_jw)9h+7T+DMjU7)f0!7!wprZ34{hDZr zo=L95Vdyh$Hsb_+Bqf-lK%@TuCqmk@@38)a2cb`5eBumyi0rg%BDXr#KF*CdO-*7n zXK!T{vYW8#((=gO@q*}mY%RT-`;Mn$RN##0tVns>gU_KXp>3jefL!>S#PfJ-v<81n z`0)|gH|$BO7IhYFD%3N1GaQX9MkUlV-6{RZSGxUFHkD(p- zzQp}F56vP!Lu)`GVoj7nF=Q8b0HC!; zQ=gFk;_rc%SV28ZJB#R9USu0(BVbp#X#u?(cOTD$Oe95^J$-|5pY<52MXd+%(*>}G zZlZ7jVNoX?hbB|+!;;i}Y#F8^UZiZG0z@TR5Ctg{X~c&E%8ZSDM`2Q*dI-8#B&f+Q z!{4L-;rCK5N=I5NcuDFqm?X4KC*Z5pKAzz}@E>6rk*+p|mQh6f`Uc z!amTN8Uu>jTFP6>@8Bo@4$9FaXo&tr4j{`?7eIAwM;c0f0nI5n@s1ptsvsMXw~0c~ z4*Nzl2dr^D@P0Cfd=hCMk6v|AG z1NTi6Am6BT4Y0SaQLaLx;m*KsNi!F4J~BGMvngC!OQbd974s^4FS8tw;}=sn)ymq! z?ZGal_Q1y^1cVeGNL>qW1nd5r!1!FB+yeSE7qAOyh-!h_5k1j2iIUjc*c$9x`gcla z;5h7y-;9mImq35O#n5m9N4Js7s5=oEjg#ttUBbQ42;>=KHJuNtDT1^VY7IL!Z_ zlU@w?@EYg`VgIbGL2<|`+@h#X;;uZ8Kc(N=Zn_*1Uj0%WKz#KlnTA^F8 z%iuez1fIqP>~?Y_Y6MsA5Gu^5Pwxd;QrYP@VDC?W^yeOB{toY^JfSv(IS@iG10AC~ zh>FE#4ofe@uR<4*tIV#9`?P=Iujw$T2&q9KFdKBewgWo7JKhCLfr8K;Vj(sMt3Y=o z(`b*>u=E08rxqq3p>N3b!20bBAHa`BbL0P#ttdRW6DXTJg|~qQ@`AJqbgf&^TW}7u z76Cp~4&HPRqz}^y7!0HxZ57~YCqT2IZ=l<96V^itutH!^7E(sTOv)Le6Z$>*3R|7Z z0o}Iq&@%WysM1pkC{ zfd}^&=$;P*PZfF!O7)^1L)475oC0zC3`jVJ=RkI#>qD1`zoct)QDr+}K5Y^9JpLXU z#F@-Y(HtC^crE`7WlONN6AesD(OD`kjKt9Tp*^AQ@f9&+aA9OFo<$A^*Fc;2hAoxT!7)a;4Tcwup^X~ z@E=5G^pGcBHMM+mwJ`V(u>;P4z9zQ#vz@hTDDDH{OZXOeC6b3UgSU~Hc0xHlGi1e$z5Blm;F;hXUS zv=9%F9;i8OJ+nVIgLj%e0(k)+p!MO}Glpa>&4#2t-Wtv-UT47yK|{fG(X-4^*|VfP z-dgHd&@D5-N0^s5Q&Mrqb-u2lV=*SE+LT1UCyt5qi*TBxyjr6`ikIMJ9-)t?aUI&+wovGvK|AUVwCkJ_8XZUzR0JNc%$+WC|bI4+B~4;Q*Q)lX|?_=(UBa1DOOUL@a! z4tR!n&W6vV7PF#kaCS-T_n4df2bsXWz~s_lT9pAn4WOZl&P zJT{G917Cql;6C*KSVy@-xNF%vSq>&}IFKduNtD+xOGwR@F}w~((=5J9G-M`9(h*2F%}os6HNC4!#Z)9}T_k68QED@H!| zEw3ThLS2Cmz?$G*YysJmGJvY0b%OhnkCL>wAF$!azB)M=4Kc1m&4^y$xdZOl2!qj-d5zfwcm%)TBrqfY zqW*`BVl)LFLI-+(+B$Em^kqQxRdQ5HE6?6r>rCyXq$NV zm^QJTm<3w%C&4>hIobxDj6K0bWJ8J$R#N@|hW2H$IXNV~76NtxFubqQC`cXp4yqRJ z1a(X=pe&>n(Rqwbj0^N%uozU6i_%S~S;z*48+cSAN;Pmx`lVFB{f)zQ;5%TgH6p!* zd`Gwm1e{y)1vL4ZrnaYEl9!2A_!IE{uLjSd1ULr(NzWxW;sv;fxIvDD_QK_`6mAZ! zB-azUfYVGs|KIqVK;1}q*19g`5WY;bH++(%mMyCO{S`+kSb#)FB-=y zD=bgU7mQUVswLYx(eX5LIQXvOy>YBLWolt$mkq6vxctHGcnK;A%(Bn2A$CdnlJv1` zVTL)wD7?xFGv0BUi~h~IqP)kn^F`|wue)ts2CWvJ&`AZLs{o!NBI%tA+xQ-uNagc&pj&*3+iM%lXp@U zWE3<0$CxPSkaZ)cS;jd8^fb|V*dW}J923<s+ zHuo?Ovnb7vL6+oIbz6H;S;W-GLa$!rD-7QbK>msG_SCv83HyKS{=k(vE7_yX)@@Zb z(EL`oSYM>G=o9L=a*oESZ(ZQi+jTiQQny~eNw-zIS6iyxq029Lmk(&>*m!K0=#!?u zHpyG>HkQ1xrM!22^D3Jg50u^XMqGES4s$1Km6=~DcN{KnY5rxdZRJ$C5Z9)zUVAX|!{rWRHM&2aBamhNZypX9qpwkzmb*l@;>-2e( zWH+)8UThSbBF1;dkH!zi9Me2g7t?KH z+88(WG5ux=*hW?h?ar#@RWGZjx!u8mu|cUE?q_LfHa~lMMoiQ;2UD-m{R1ZCd-P@c zOZpYMPg<5fsq3cRn?F(WP1{3zLC4jV%Ks57817U(ay<1C?}y+WZ8A16F7>slx>a?t zdW(H}cnRSRH>ipkD-1=p@8zO}v@Mo3pkXXO^=dL+FwMrL-*jjR6F8MWJVeBEco z_3UuY0(nU8lw0K<`2$6M{#iL8n1){n(&G|1k29WwQnp5)JBum>Rr|{y8WHnZ`y}sA z*M^FTrj5q`nf4k_nNC`NtKig}tZ7=l$2g^QoVlfaPaqhZ7Bl*BU*lwg(w1I;Sdkj$ zSoVB2SJXbct@N3wm;9+-s2Lz1l(kFRA`jO-01S^;TT8P^Ytz>*xTssD=qKGGshu?= z`;~l;R-o^rx}Px`pYAy2UQTT*AEo+_*C&3{d9Gqe`LLS9zC`dyaFSo=wb*0k3hQ^T zJ7jmvC~IU@+PL;3p(S8#=0fekpKgPFu2X<+6Sh|$Q*RP-@fUu2Fhcp5-BCZSV54er zMgbC}dN~)eziaxazvn*BoGLuST`cG%W{Gxl_t9Pf_gRW8VbU3`DC?4o1G%o>-FJdj z(ZR_Aavj>y!zgQG?rq!YY!lZ5D`{iwwtbR0ZOiujmRLb)%s5EhiOr970JEQ4@N#4a z)4-%KKeG<E zzgYQ?_YdL#GBmZudDx=1{AHS7M)OSx4g}xCFBQ4=PZh9vg_Uc+U`MORx!!wQ`1RrH zs4Qr76gkF4zEWPYnuB-1-YI6vl1fp(a1cQwQSYos&PH(|=Xah=@+|j-{D`bVisVkr znJfE}^;nt^SOjkcCHx5)OR{uXoikkQF>vqHJh+&f7Io)$W7NmZVKdk}Y8qXGzvSmK zYJzKBGhGdQU6NNw1t@hyqV@ch$@i4{=#$7eB1Q``Lp-r~t9X-Wgs?{RNcK?HpWlto zSL`oT6l~PpRh9|Pfo{`TkveOda$P=Op30fW;RO45yQQ^Yq8k!EWp^ejlU<@sT^aTP z_NcQoF$Z}3_wY5LI`;cUp?RK@8GD;P%e+YY9>3&1TK=%Ct8WN;EPax_QrMUoNL@o4 zM+e5Xq!HF5{zOSdW)txb&MyWX{zm$!=Xs~aTe1%4D#Y~|O4{3WYkYrd8|@tXfhZ(g z$mm6SgMZrZJI2P^rO!~hL02$Oc%6T?r=dgdZ04thEwM%D)zFQK>89)DUeDg(8@H`` ze9dwvZQ~ zNxq;x_i~G~H|i?Xk8?g`lnSS0*VT5^Pbo~~gVSJ~eX0C{ueG-q_RyRqRmP(= z8s1*b;ext4XF-1LOPQkZA>)+FsmNE&&BBX{x0FiDxnEXmOXFXrI?){xxi&5A>@F;I zl`5=Qh{{<`$tgcyk;7e_8%U0`G&R}{FP$5B0|EEhHFFX)Db(F@$uQb-G409M6n4~h zQwTW=1B0us1TM0EeP+|2DFE@KQzq3FQWKH5;GMktn_(QVTFm$ioV6&o4po-9YE$U+)@!OpyVhBv6F z{#wI~+vqj?CE_yvBdC_IsV&RYyR4P#e0)}#5pP-bKhroveM9T2l>yj2&&o8{wG1-e zHP*E*G;T6p4=rPZVtCmaLwk#>w5W7@H6>ZX(h#)5 z?aE+pDm(T#lejM9$Y9)Q!pNL`;KwD?SKBjt{?{ z8w*3bC6ofIAB^yslMq>;3V&iHl&(|mKYkCb{qOwH&SP)Ix51vyoDT`%Qo@paC8W;0eZDNB7*vs=4BbAdPA zx7j@1Vh*ZB<=R5+w~PnT=fv#7n;Sn@x}onP6S~aW z+tA;XFkUxSlyjqtDeu!VtjK?|{FpUVHn6H$#K+3WnXaj$VP~GDW=EC&ahO1|R(D;u zOEX%#Pqu^j>MKU+qQCQd>sF|n%DTZ5-$$*!^<$sxRl=&Q98X^~l~n3fM`TB&*>kvdI|1ZQZ>iQB`b=;%aMEbJRmQO`CL zkp9yg1DsOdpkO3637jJECNUwRi`BxGfCg#|y90k03vy>kuCcNychisA?=!z-HstqZ zVuDfmdflq52ei4dZ^;k5i2Q$w22z-@7ndfxC*28u42@Hu#>ma|$5_-iucnjzqU*3{ zzgG~L7IH-{Mn?Mns{W@OaVWvt;KShRVBhe}*yY6D=qTSchu_sFs!sW-Gm&fxJ8?Fw zkB&%OBc~t(SwAVqlJ{ecV!1I!VpOs#j#7LyDbzf%$yZWCbMA{Ms7o02QuSlWV4=Tx zXj5WcbiS`Late6LbK~~Vn&|$>x3Cd=1no%v3fGXInRDrnv0ov5)CEnUZ%7?Ytzlee z|DxZgenYI3$?+!Xrdh4B>oVw^-im~(i)0l=1!=Q;6_#tZ7yeIvJ7V)p6)!Gatn01P zWcFeQc&oCR`B{1QM0p~QGFAxI!=drzde75T7P}kI&d=eP@YbGZ6|HPnoQo-qC0UXP zT_2wpnianY%(>TLI5H0p!>edJnQOTYN^a%Se_9PaOs1| zU(6$lI)$AJ5N%2j@pY+e8^6wFWDb^n$<$|0%(}sx80=GCXkFv@nm#X~iXIX=Z|_Qu z<&Al6#S=Fp_5o`QIu6|6b9Ylmp0lU@o^?fKhh#Z#gXAD%Q((RAjJb^+d`7~7vOk6U z5kGMwRP9{nu81wA?&2R6J9)imzsFD3R90+uH;?~<1~U85(AX&V3t?KS$Ix|jN1dYbO1W}R+Ftvi|{k_E!ed20)s z>2tEyaGF3ny~{0itlP_**obnyqn#bIt^nM1q2;j&HwcU=(?_$=^sn)Sd84I)bx-AM z|M}EL<}3DQ@j~S=Re81{!^NkIl8Q*-A^lCwM=cd_*X4kI-Kp>>rnXDh8Z=}Co%UNr_4$=}Dmikau$K+JwD&PC8hq_tX?^%BbYn8OITrzjJ z?e*{Re(_}@Cn=rFzm(=$x|B9?Jm4ME^~pP#=u(<2EwUB=T3*(d`B*(#e^fh7ygtz0 zqW7~T`)ai+gmewGUGz1zZitpuy)(Cm`sXcE|J0~-N}y)#9%R$mE@baZWOK( z^=AvvR$fNM9Yfp78_>hNGPOPbzFwkf!L1J)q(cf?Yv-tT>3f2=hArx#_%^jQkEdx> z3(Q z6&G4*=9%VWiDdRFeMTN7-Kd;Z`r5NvXizg$PTdbFv*xbhQcW}CkIM6zjKX>7sFb1y)*SC3r3Bn3*2il+v~40*lkwu51_CNHIirM*W9)i))vuMT(I>NYBt; z(@Hh_w5`;C<Dl?c{>%`megI+U;|WqkrS$b7yOBDwh}LJgh`rY%wo#T(mRI z6{UrS!zCX|#+Ga|b#c!@i{Mqv2+`bi)%^r*jy#iP>j&w2f#3SL+{&DXs>OgfKV9Ic zRa7gYhcqJfW6hfUo3fXZLdE4;7Yjl;LdjnKgmfaR4}*6_UoVDEx|Y=e-Q~J&x?Zd@ zj3|wju5_JAhp~fIFG`mfE}FlXOO5BM-z1ADLm)ghpt^x&q>*o$k!+g3UOzA&QC2es zxE8ny+F|j*%P}DP0a49HL0$tb((RKt!P%|AEiQ5s~T6L9XpqI zDdDsgmAo+gXI^JrY^hh)vgSh7NaModB_-nwHdDw@%XFb;skc+b!_p0gmBy*Y(`Da$ zC&3iwY-$4YGG7T@2tG%ZqTKvVsto0B^>O`ERd(K+9G0Z10L|9xE&6=z4*7558N7da zi}-07Py0pJQPos-fhzZIHHj(^+Hg%#t)~hVt;D|Au*rxy&Lg-otY@iCvvl5WHT4s} zvo=Tr@(b!i+M8Nl?hIUMdQ~}+H&Xvgy*P&<*(iW`Ln$uzbEDJR0d1GnqF|7wFE0@t z?Em0AX}cGgFBWP5jH|jw?Nb38zWZB>vkOKR{3#B4o)*t8n-p$F8_z!?e4dZhw`8x0 z+pKkqWxguOas5}-14fliP&yoYDcZq4N9({`M(<6w#1qWMKjZuSE2_^`LBSCz2CtW#%zZ-<*(aKsd5&|5+(sf6 zEj#IT^SosVh@6lfO?iY(3u^>68O)(#?hs^Zp{PVyvXkOnq>1xE9azgi|tPJey`a#!hbt-&o{H?s{2R` zjoomvY~8Cb#$M4Tvz|e1!kLa;6@NKfrpIQwk!9Nt=lis{$1)GHB zsm4TP}1t*cK!f96{Xzq3A7mze_A?`DzptVd7%kpmZ2=B`1rZS{;>s{coM zp~32&SNeq;(*?o2NJEO0E09IhM(yKVheVh$i#L>h26qLv#I_6dT7In$+Bj>iW2xnu z?GL*fyCHZWqvdvHZ>zDD)G{|VNopwUNd6$nkmP?=2TY%g8_RF`DzT%`J@R7ma(qH; zU1VnDW%y{o7+gx+<}}SH6Lv#_(LIirj(K4L+?n4*2=OsSpZNXC-^|U*o_e>ZJFyk8 z-e<6VwQjZ*S(z0THIH1itL>)tMvtYg?Y(uJ^*`$~+m?z<=SGjpxx?PozSn6CeT=mmNnQv zySfvTt`qCes~c;y${|@Isge1_?{=+Veo{{;c#`i&tkq8pN6OM}OGM#qW3|}#r~je1 z53;RS%puD+YhUlZ)HbS|JmbA*`peX)OmE)ky2bllJ5;w+s*KFB_+7n`QMspdPThA+ zC*6HLUvZq}gda+WXj^Ne+Ju57l88zbCv}IiS5S!9Yj}e+mHR?84zpC(D*vf!lCEF&J+5Eo)jQOkvPMez`t+MKSXa?w;=~^g9 z<_zL>r4A9S%I~3Hqc7AJ=|r^$%A>TKgpe^q%*wi;Y+cKq{|S;;T{C<)kd-yiOJF~i z!*IpE(q*PShE~SoJ|q8Cesf9F_~)`_#)M%)^&IN?9F@2nx(X6^*47RW^P9$6P*c#NaFw)Gd|deoQ)7>k(@t?;Gh6eWeXF`*$w)() z<#cqt^i-}Fc^>NGs2~+KoMGY>w6SOEU#axZ{O8_!mJ_ z=O>5A*qJehJrw;>{i^&_k}mwg{2px+3de>A!WDZh^D0mKN2K1d9zoCT(@N%+GyI!< zhdj-apV@w~SiFU|3u+WWu>Hc5N~-p!=10zM(PY_q^*-H4wIw%{xk-Lp7u1edoZ$@v zXDam--Iix$a@kGcQNS@+!jz^SSJkl%bore{&P0Nw=B7IamX$?}{mbbA7qlOF6>n7i zSIuhl1|y5v6~0EyN_`e=(Y)2=sH~a``C=gsy8JV!uQJD~D^;zv+`^an(u`4zW0W8# zq>yU{=2P_Jvw!o;e)g!`Ld(oMtG=5#7LS#mDS2gRY-s@Cy*`!?F1PPe#bM+BfW3wr zM23W6wvlCh;nIg^ID1+88A?kN_SFz1dYijLcOdI0w#oM^fpe!S%QSzfPwD+Ld(2`;RdO-#4q;;^K1jxwA0+#yvUF)oozl~ z*=V|K>~30OGMM0si-FI{QGq$-Gb}vY(Q>O>i#K9E;ho{m;AVhz`LpzHsJn=!oTO^1 zs?z0a^F_<4bNO)gC@~?}m^(=?)UFiPL5GFfMwY~c6kPC_|D9S)Oo<>7{i`+PiD0 zW2uk4O{{xO2W`Wh1A={nRldjJ5sAoj2 z8?QPL78<;zb?jnfg=Uuy&1Y&JsTZo}s1E0}mNk%HRc;tM zokBfZ=h0+R)>d4%4zcO|?=z&DLgrSFgLeGjk3}Y zhM%Pai{`tgiaQE1$H=15rCHuH8LWE7g75j5TBf=uQwh>ytE#vbqC2GOucPR!@Zm~kP1Vg|^d#`siWodd5%1Z^CsfF*M&l)Hfld_gexc-$ln7aDK|ivLXXy;#K_Zt?y>r zT39AnYn6BRUyKO?-TZ5VQ~k#y4D?s*aB61eKrOBnY7XS|<85cZm0ndH*Ur`ar`e`H zs-B^>$qrDS(O3$fu8XpzDxi=`A7(FBzGEVeS!IJ0_hmNEb~HA|I>rr0J?LWXv=lEos#X;X>V$ISW;-(Q?=ONKlLZC7iTG$DYQdu zg4wJJT9xpIoKWWEU(Q`2Wbn7jmgaZS99C?RP8Y3}S`@X_%QFtpF7ketv$N*X_C(eG zTK<7?8zaDW28@e|W5d_LwbNK!5vZGx^L7Z0ky9nzEFXzw z{G#*#kHfJkFe5Pm?~Klf4vWo7uVbEoiQoa(ZM;WjI_oFhMJO5GjGI|!Gcq}A*doao zW!wDCQjTbH);@VV<=xx^ta{`hoR#vn`E#f;pA%}g z)Y{s3+H~4x@C=BV-3=}Cfk~fXdTeZ99BR^)-E!=R=P}x|PR3OgMK)fjnn`5+l+Vi@ zBYDd0BWj;-)>v{M<_=IzQMXbzR=v#sq{&n;#alDy(-#<3oR;)q zp>CB2oYBNOXaN2{=O^PL<6ZON3QhDrR318RlG$d1^Iq0ePBbjG&Tx#xXJ#!eKt*`X zN`o-DDYv_#6E_19O8!+c)T?w)WWvO-=s%KE`ZZdMvXyWN{w#3--UYhTJMkkSbK)2{ z{b8y9V5Q7f*D|)IIJQ1A)SglPrlL)SvAkK;&dOC~G8Z3zpRBSo$}U$vb?#2`5Ei^2 zor=AOXR$S`-x#|EXEJ-s9_LL}9?Xo08f4v6+*Pkr56Z10iSS9zXxR$ggp5bNv-X|X zOXMU}H=MT5aluh~u*@E+-d7#8Uk#0p_w&rOpK(f@J)CbmU0u8EdCpAtaMuR+OP9|c zah-~1VJ$+IKzX7E;iruj&k0ae&>b&MS8+E4k$AsWys$;Hp z-lvp@;<}uB)XVhF(D@XH{f4LE9+Ui*-B0$9VyQ;05ar#G00x!vF5^ee@a%+|qZ`fN zoH!flnpD9nMSWxr-Zo;6`=jeB@tGnCpZ2gqC&Bvm_hh&DCimNFYOo_9fqSLy`oGpp zatr(w@g(wh`i5g!=x^R&-ess1TN&*^929mEbD2}PzjBupTvmN#Gzp7h``EkGf7jCI zc4IH5ve@}UAJVDCo8{pdPWPbgE`eK;2QdFW2%Qd1% z_LzddGb%9(|5Tl9jhrXqoyh)_w_MbaF_^kG@_Y3|tc@nBUqMaStDTA1#_+$vJ*j^1 z6I@SSft-)@u6|e3F#bjKKxt&Eyz-ieGv7BTHaNa093YNmEY5qydgUKnHP^w%&SZZm za0sKpDK-A+Ck~(YcWgk7$ybol@!LwJ472x*ot0cfk;V@N1Cf{U2gpWgLs~=UoQkh* z7e1N!BfUEOJklVVba!_g@x1iT_nZ%|#lxvZ;cius{a*0D&0;mTfwnkxaXu@m%VR)xhiP z7nrA}?=#t@XE;&8Uc=hVJpBy#C1|i7Ivw&9HT2YKfgCGW$2b!`;wP8oZu7&fLRYjCb&k@J2&_ z#P_k@@MhXG>x);D#k}G#qEmv_y!Vt zs9xkmdJXc^I;ps!HCmWiJOY`nv02`W08d)6uJ}s@hiIK%lIzgJz-m8S%@6&HeiGF& zzcP0-f3}R3h!S2xis?*`jb}UKdoTANT`s!UcOJI{4W!;1YAdmQl z&cM9r9`qD%t@eQFUHWs`XKY}2fWK30lju~sGp)Y*D8CdF`yP~hDFc#2REsQ^^~X}y z$|j{(i?W?F=ttmN;wp6#bA%@ZdfAz@u16Q&9!Ke;{O=q?;-K%ZV2V}1>&Lhj&hf>< zx^mF)Mz|`nH0T4qYQLBon%IT`!j6%x_9@{;qPl6lOeW)cc~$DFXF+14Xrm+p>;Uc) z50M??{XomT%YwbwBV{XOMZknG&wj3Ie)77cmtrDossFkCs$CO2L?_@CP;X*Q;!uJ_ zltFEvkeH+{$apP1nYtOBm+S@UHKX(&MKOL#wa2J291~|Vz9qfth3U1yXt*Twq6b-8 zt=@P`C)VA8{NWdgiHv9Iw1g!b&!#0ob!{Y3c(FV$*plBmCswlFdKR(4v(aXi z4I>))v-G*j#esQ0W(4~ymzjDRKL~P=3shXcNdJykh7Tqi$f`^$jYraGb(n49PSDp^ z_T{zbBhX>^mwt-=H)vk;PQ^bJ`{{+Ui9}aF?Oz+#q2rPF_Q;`;Vxlbr6Vt-8&kVX&V!nW2C5Qk<7h zCEj4OpcR61{FB&zZ`{ug&yOzQR*Qc`9M80?$NH-)yUYK>=xR8ERxwH7X{{g>S*7Tf3!p_P6I3e+VY^OEf-C9&^D3TqNUzVH* z|0vzz-9f))KTpg}a3uy~P4JvAT-Dn)$>U}XQ?)Sl)~x5e!+WwOrM^ZV(qFVYb3++U znS}QtdC}hk`4^-#ZS#KUJlH(e5xJN3!gtiaH#(C3p~^8eldVC%SzG(#@LAr8;I8t9 z&OtDi?NN7*j4ZFHxDZ{(&Eqj8UwkJ#%2Jjt$8MBfsHzg;`BQW9w$LmDs_B})@>59nOx_{)C8ogU#~Pr>$ro1E9^?yxENPy8c$pGabOnmI&=Gc)() zsqOA|k>7=P)0@^vnNRYHeb&lLP73(~TH!9-+uQ=+ZK8wcx_z2$Vby=(^PCEPB|Rz} zbPablamA`0RP$1RP$>JwFQPmlhRfqukPo>>g=$4djaA)C@;k9F_#@GTPpfZOj@4Rk zQc;V2$w)r?BLARFoJOXvmwZOQ1h>XCvAKa?yG)zq7Oraw&+8>F+Y#0ADI3LfU#_~n-b@EUA)6@qFlAO$JTPvQ) zW{U!a^v;aBHFW0l=6jjHWDf=Vv>EbX%ExJF`I5g}`wIK&xa{6U%;TTsjfodKsshJ3 zgMmg!r9G!?h9`wBWNTS0q?dhp#WvrR#N}i<9ItCUSd+29>C;n|wJrT;JIM^^8g zGungfVPHdbSgTi88j@M!8naFBId%ME@1@iT#iOhh#`8p0#q{#g$WzSkoLrvmeB+qu zzKCoOv2Co1Bi02K+UoP33*Nhg5Bh;D3hpIr@uoJGKMN8F&dK&=bk#3~n{qVCS>euf zQrb%{SL)PD`43P}$eG*+GdLRjJg#H!i}&??MeNi+XduYJKk&N7Tib>Nk0m;|8~S%b z^##9(MhF_IUPmSz)9L2(#tV*u_e6d;9-0|0lr+nHoAF+=gH;&wu@S{z zX=k$T8`JqA;JskGYKMu?#DQue1vS)Iv(wGbcq6=%%Qr>)8RNMwc%`RT^-GS})InVl znPFRlbQg+culPn{ROklruSt<@;$927kiX&Yx>(u|`95$bNJ+znhlVBMo#eG-22@|S z%9N-6EUZh;3Eo3r%Lf^qf+LX<4^6gFZjhD{wf*ZI|9C1=_t**MUN0+^5igBDj`no2 ztKZYTgr)FEm`!yL)bU}FQ+R99e=16-Wc9#WP+@*OX=ic1iV z%DxiZR^2<+9T{C+<@*?47#Sa>Qzt{u?JA!l)sQZw{m4igSbWviDVl`3E0)1$qQ_hd zovQ+$*=I$Xl%%p#)pAxp%~$zY;z;mEU}tPR>n!gxH4uBvS<62v(ZSNdDrY}pI3NeM z>nhUR^qT5^*2NWH6Su@emFqQc#GgW~%eOe6geHbR#&)r8h;HyMFx9p^rHu@$Xjl0z z@sdB8uL945LM&eWI<$**lD2U@TY7 zROQ+I^DpU6Cry>Nyi=uDva)m9ji*`N5&cB}{w8CiELV6(96u|C zoKA+Im=l)Rri2msp&Y5MWpZ7G(7GQ#Z|bNmBSwOc^m{d0={jhev-Yp-q|5XyOPITkKiX1e`TLG zoC9}|KjU}G(u@8iLz%K%LZ{)Z_l_#>SF+W6TD&_wCOn?Vi3?-*D?`QJNCaq~8XW%y z?f?(@+{ON?)v2|35!#y53;HYZKA?%826u}uk_q3y)C$2$UQ^*)O`2p<@@41=4vB{F z8l+lrhh)4`w~W8{Uq#Cz63x9k*YtmPbEV*KdFFdz2=I@M^fm> z)JN(DU#JQzc%m+X-vmbmO~fa81X0b7$RFt2r(ewcN7UFq&;6La+Mv%oq=h8Mh1G&| z=mcITrcFHMsn9u)6olnQFY5CFrMXm<1c(~{DX<#Rj)GKX>9#e1(&~w+W@*lg^26WcGWh0 ze{OrkN+`Im!A0T*;?_uB)fO*_jhAAI(d_a#FX|2c7F*~aS!612Np#S*H>XQq`?5+} z7F{npgDRA*#24v#thLzR-qOnK3ZRM%z9rP+O&VPIj>#nx9>0H3Vw?C=MtAwUq>Ajw zn}C&sD-$Dd6P#xFF2@)P6+oAuQ^@+jd2|kfLL$Xies&Zr8dx-u_|G_7IW6|H#8tW{ zwO2hD4%<7I6hyS3o!^@GHQLgOc)ma}X-#2W77+at`N*xy?~!VU{>}ZJ$+G*5`I^p& zoBqGVe`HFf8cq~$uDxXbrn?Pq=G6mE;*TY18U5jJ(LF?-v>l+21^vYfCSF;Mt4S zBLs-adp1bZ)f`D;S6I&2zgwo#jDot0)Hh<^1C3)B6OdrAg_WI3>z>hCmtZn0In0)S zF2BNZ&hkcZnwm(3klO)Qs2AhB-%8X2=O&tY@7sQq%y*tgKKL(|mseC)rviN=Uf-&U zapgB%pJVNy3qlT-9ax-n(3i1G?1Xdy!#+Nw2}%EzeK(v}uM$+rO&SS2lfO9gMc#h> zckx+K3wcW7XAIUCg&o12#AbMecp$HXs1|%JlJA8gicrJIE0#e3K=Wvd{fn67F16W` zJRU0ek@nO$2k#d*!;`Vuj=88y`#K{xJ3n_1e{og5V`|FJ9U)z!?_->&4XT<8TEsTl z>v{Wfveh2Lb=`NF2Yi`0?9o-9k6U>C)X$CQRI|DDQK|c%Dlk4D950tz8m0Y8j&Xbl z3`((y>2Rs~u%szCLIA+^5ms~^a6#}*G+4P;_zd4en87-%k*V@z9(D!yQ61@{$uFTl zeVapX>DuBt>_wiY_MpS$;-W9%rPLL-*uICk^3@>Y!ezl0VSi{-^l5Sq+Aj1W#3m)s ztkgx{>)7wW2ZmR$0gU6FqpHJWs^*vf&$pB>O7j^%h;zgC;-#($oc*%b z>gGxdb*>r>ReT&;jlV?lQf&nL&9^K;B2cjriAaY?CP@}+nh4fl zC%`F+0q~x$ z0t?w(?p?4QmaINk+Pey5@74Rwq_L7~3RXG$c<%Z>C&#GP<({;hlwCqkyR&1%B<<20 zra#k;Rt!-3WDSUEZa34rp2=F7@q+&|kW=}^amF(%bOuc$I*|ET$Ty)ZTvWT%Q_`k5vn6;9276P=OZTsTzQiq>S#!Jt9^M%jmx7f@Ce$MB!siBa_J7E~{7CA@K+f zLO12<)diXAtRH%%pdDYJwsMV*tjZ%4Bt0wkGViN*zW3I1MPo}pc}FL1C&r^~6N`P# ztZSHLjLNmLVsq7fz^Cy+XZ-iA#l>eFxp+6lkYI@yBQZn%H4A=ci|u!dGMo3%G` z+tWTwazI0m{155l*#)7jXfx~)Ddg!gy62d{KVxfog@n0mhQE)XoL@)PINi^!L-u3{ z=5qrF$O5_-eO+V9%gd}3_K1#jn}cX7PqsDdXy#Ad4AI%(ql)*8t6(y|Pdg^-5A_m& z8~(FGTz=Qiiq4Scq=leI(HY5Z=tNhMV@Dt@I1Je@e6NAI4}x8j}%^EHj3TK`^Kjjqn4W5b>eyGQtLQZHqb(x3k=8diTU6%ZaQAu=d@~y zKUTfqrYs}XcAvDkv2A*VvUFYWFg*%eMpy)Ixea1_D(z*TA_DG5)-JZs&@K0{vQa9{ z0oyjwP{yE)?#ek#ce!2(rFT>R=Nnu!mdG`C&m5$B%S%snW?#|_6Q2v7bN-0?gp<-X z=mgXxZ|%rN{2SI4oS+WNO^i?7$r{JFGq2GfQ-ENCv0Tc9Ye^7xjd1JmzD(lH zRj{P`W@Hwcn;MCaq%IJ=$Q<{ofFjifADGO>F5v%*H;;OfM^nb=+xS?{-;jV_lT4y3 z8B5JqP9>ekdI((0cb2#kpc!n8z_2q;s%c z-XB$~0-M+y)$c65v-_*Ql1~E7D(_d=um;K%;^Dv#){g`S1w<1SezLc_VQJl}gWQQ0 zLpmXFV2^!l+Y4u7G?&|1F(vDA-a_#@Uq>tKean3l%%cZdw}z@AFR?mFW$&1K@74r;baG zDt`)Zp_rMTXClphprWYK*cq6LOzq^)$?+e%i4zp|#Re30utVbEoRriRz*i z#fCDl?000erhYERe1Ln&*|^wKA}OC2WJ~vEt;l+yMK~k9Jxkx(=W!ZkTGLm_#;DSC z4q#4bSmZAvz;3`Bsv*oLC9F_4zXe(3?dsWvHxo@!kKkLXxfLe@ZQX0F7lTrqOD}`x zgME>9KDpzLePgUW{Sf5I`^#VP>Pw`GLHJVp8D}=w+_E;e)YMRW6SN>dfLZ#<@&Loq z%u}wY@il!b(#duvxkoZU`9NvsXuP$eE>T@L-;*p{<$S|0&(6}!3T`R3S5An1;uc6I z;9YDzyh}wgg)VW(I;vz>AYc9??Es(4{>uFy)C(9xgYhq^8M1?xW;N!eUE^dT1Mp+Q zxTZwiS98*$%#z71tXIDAWrFB;-K@MJS=-eUQbQ}3m0u4n5PCBf<(6hBxDQ=-%Emjp zL^rUm2xiH7x*9T3vY^VzTyAcR_7NhoKcN!FGIB22CB)<=Z58g7aVfuvQVq|Ja$E(~ z8v=xGdF`pk0fY{r>eFnj@LV;Ja3ipO4 z$zvLxU^0|PuML!i{}C2&&pP~`BK5|MvFuKPX3+_1m(5PJli$@|l)1FE zEQ@8<@V?43)=#c)Gn^k2%W8MDk6xO&IdqBE79!|Qlm^ye~HnN!MVPi^zYXsnkjD3HNxpMkx*|P! zt+cPTUv;B!T(mmtf~0@ojH_epf1IbHm3$4pK3;vkrc>J;fI@pbed2vN=b>qw7*(4)&mhg%L*KJ~_ibkl zV}IiH(p{BRu#SuJbp4f>**Z z{0+v#qA3S1=I>PYmyP1SPAu`Aikwc)iuXz>poXGM`5EyF6tBoD{}PR=ex{$GCb?eV zDh(k&O&w!AKwA@_l1Wdc563oI*F;Y!H>l0<8F0Q}t_+r*<&*51$V23~tRm|pbCIwo zc$Ms>%u#dzYmi4`t0QCJW^k{sFe@UP*+%aufhSAhQ_#pBvN^w@OX5rUGV=aTT1I+9L zgj$7H+u&5xFgg94dY0-j^DEuxhy5>N3StLE0wYATpm*Vv>zsFrds}7wKn9c{PJ+`C zBG-IJkZ3KL zsuSMs-ZmnQrmN&Oyea&obW>tx`aI)B?5-2>HD~t_4P+k;uM8JcEuhs5OK}vtHTEwY zHZ%eY+*)jup=ZWcy+~#xIwl$jzUmq&Ccz^)qX;%|UDaHJXSu+suF7u)tE#7iA7lvsJKT^rAKtGUYn)7{SA8kF zYyUmr6#gbu;?EM#utgDGWrLyy#nY>Xa#|W!O7BF!I7d1bIGaU$n_#qkNXr z!R$3Om)K(uTz{e4z<*O$;+FsmT*N75Nzwb&gY3_kePIL8l>1DL`8SokEw8Y@3A|@7 z0LJ)Uy7vob=ZNH_^N(+xeEn6sbNXb!;wcf@U7H)qJ&-mtc`39@XwLp4=ZsFmin^bB zE4lnE(mVk-xc=jxwtQgEa!n5BqJcy`PK1xMC9y33pm;m7LEInY$A97d=_?G4uoqv- zZ-C8AoM$$UBZ#-GU&C=)E< zeBccg^aJWqS12#q*Ymt`iE~u69`O&gfLxZK-Sf(%rA_UZBOugFaaS=9yc=j+{-UhC ze=FEYKREkcPEgy59OM5Ke=Q!6zR^NwX|lY!HNu&Ymv==z$21`8MONI{p1+A2%)#)v zp#k`IoSRFXNS*ld_Zie;8K%IBqwv2VjOs%9-duaCpa|XXJ>~)3^iOz`9J9MUbc~>5Z+7 zN$7NT+jxU;A#x*12FxirzZJIz_8rw=W3a9`glovZcpIhf#RtWp>?HUw_B6SJU%?;5 z{V5CSmzi+WI^OB(QlFo-i@Q^*%xtJX4(M@z^hL$KlFXnA{8zC*ZLq9Wz*%&lq(Mo# zs|0SO^Dy*;QB1D4iOm>(L^y%Lj8AWrj4|j%PT8L0OR`s5?9fJTmC7tTqI!|h8Q@p^ z4E#{;%Dtb}oO|4kS5?t+Q7iF7?)>P%$Z2IW%W~GXa!Kilpp#Kwd!f_8R=!)_W^qb< zo;$0mwzq=mU7GR4DG6g75P)+OVfjsH6J5X?sqCd&B0o=-`oG5c(kZ4n8G8(F?vY?o zwK4XSTnf5)N>NC*MKqP<_`TMdmDw>2Din3&+9NrYQ>z4wD`;-~O}sD3aE{5pLjP8U znSM2&x6Qc0a8;VeR--y>24PB}?76B;GdJ&Erc&4)ofUQ`I*W{%3o;IAAFKO`q?k7{ zGrpGCCPWPFwNrV`v8LXal>;L!1$7j1=|@;cwT<5KT=CDw8nKpAnLLYZCI2jL3D*w& zBsaq~8KZL*_>-MUmw->e+t@1PVKT%K@?U}%=osrX*(N$Xuo#Ju!@yHaT8#x93XXHm z@!ky2PDQvY#WVSJXmO~Ey^ZT!!Uk#t*SOP3DY7Z@Tl`1-dt^THFG~y;07J>9sXZ}S z{5<(T5>FlAc!g(#zr+6#|5X2Ln--}BpU}pQ^;J5y#^2I0#qA6+)OhJmbC;|Sf=S*% zW&5rBycc-ea!%%K6Q55qlS9t{=i0yqcuVG~^h(h_Jn1+36vQLpQ1L{;JkGxOF!ToW z6YQIUs8Zo#VRPD$D38}Bgy2izN9k}V8tUY}8iTm=RKtzA^4E!aRqq2!z{a9%ekY+z zNb`G&_dtfgl&W(4mhpQH+}INOHxX526jIB$p3#KQlJZkpA=bTuDKrxMwZ6OunozW5X@74c$t1-Y^pJO0EE~#GHxrY{Ti>fdTI?S1 zQaFssOP)$LO06Ypzzqd1U>JK83&vU{>QnpSRRW1%q?jwN1}xa6q?3Luxnkn#atN_! zZ+H&WQ*}wwfJ_k21&F}PE=--NUTr-bFHs|D!)4EjG+$f)%~X)cW}FcG6iLd(2NVF*iz?~o)uga^yVD{+X5Zf2s^=@ridBE;;FtJ<;k#1IA1Ln-(|NX z4&akn!=Vb|q5D$l9PbM*<2DrT=FOy^`&U();?ELyg0*5|C|lD(n+8q{XZa`j3O%b* z4^{sf2EYb_rcUD1eV?kZsE0F)pCuKDg~=`U=eC!T>6{`UEwwtig}s2KN%jq&scL86 znS3MPs<1L|(l4o7=$lwyW*13ur>J@;IshKDbyC45SBj;J0qE_*v-GneuE#4?GHSTB&g%Up`tc)BIb;)4quB7 z;!%ob^y$#NR2^znoQuu?C9=uN3W1#24lGF6sYARRVST<89wcj^n$H3JGonug&(v`> zu2>6=Ly=U7D;6~dN0My-i-;E4xNa;Oy+d3V3sf<&oXD*H&$E_uNZUX&721GaKpNxa zjMHX&LgyG9Jj9==d<6B1>~^!lVa{VQ4y+0|Y*e&TdP!=F8GYl)y28)mrQBiRLe~@a zUW+Mv5xmv&&OVl)Ol@<v9t0SD}pHFBe4Vch-4S^HLIhtSg{(pYPW`(#&-otj4k{Q&7`M;Il$zE-P_cU zP}kL{{-Tggw;=sgnDWrS=WT-p}KSRcmFZ;4tJdiu{30za+v*-f=gXSk}w|AC%LoO_4ywKo3LG> z9I`Tj`;+se{S>K_j1g=kIo=iJH+-{UT5*h9!Wb?|)<5bJ?n_&aV}d}RgJoq) z{`L2=-b&opU(ReJ>Bm9%e&dt8r}7^*y67@kmfa?=o7o7QD}C)8r5aXav9^A)jjciW zfBG3YD*n~zq)gg1BSqxLY2Cp}}Jh_;z%`2hA@$G15)=}sV zr4hMG%UuD;}-!JRM-KGf%-1I( zJ0o#D-|#cgw)m*G1X3D)%UWwrz=N#|zYj-usP@Yj3LDAt#ebnQT{B~!czvOrl$ZZS z`H_1&Qtkg3IUSysY%Yb=|Ks#Y{FhomO~xvHznqKE)uKI$1LF7O@xbh8PljQ5m|hV- zfIytu%9_S4iYR)+u|L>=;cvXsOi-xcuV6h&A37Et&f6o~tT3yG^9P{E(Y?GLiYAQP zqD0x)FhN)YUzJcZJ^W=IJ1g5zL-ZR{f6gFUao)0ufO(>4;sn$HzlYq%q6 z2A_nh>E`?&>^+gG_ElA-vGECRyokM*i!nQ<0scJK=g0wuRNN6dt2iutN?nOJ^T4i= z$xm{nDW)6??8b7FUy+-U-mx%Vhd)3;R_|WQ&1G6q9;@Eu=2=AUK$HN!KTLUZxZt@2A~^2%BIo zm`p98jw!@h`*mH>B5SVQhjfI^suO~NhzwEk0RH@>CLj(alMk@*kyprE?nlXPkq4X| zGdr4B#ZoraWUUvpQaPMgWJ{_Nm;+pbeu-u()~HSh>#~1<3aCES7k;YpiR8RRlB=>} zcr)=^OrOdW?a-f5Y$4x80`aco1YUhn8dm7yo~=@9?4>HUsapP8{v8ND9x~p zJ~>^}u0c}+fR`rR@*U=p*{9^US@*y!p&9xe%?hr>_zGd#GUG4FzQD@jE$)TU?LK9o z1O6QTCG13&x;K>;75!fMPv{VF734uy{9R&6EX{tn7>vq9SET#pE0kB+oqS(CaU_qb z1G^RXHJ@cQ!Pg9cQ-(~#5aI`Ridq3x0h`#h*vZ&dTcUJ}^_`~}OiyF!$FZf=-%Dp$ z^Ic5R1DdV*pwz=g#xMR5sqj>C&g*B(*NfbygLx9odE#MmHgBBx6Cac~)mGg|Z96%@ zuak_I*Q@aIujboL-`LwiFTI!iI-k^+h#eMk@j35+iA>SfYThy1l&E##D16+pnv`JJfn=7S7_oO%Z zvShc|WZ<0Q5yMj3Ch3Y#@JAz$!0ytnaHG`Wz$V|$=(E%#ascNrbvz(&baNA)BG3KU zGFEN2C-pDVEn}ObAqTj`4`CJ-vJ1GDw2j!covs0KQ8YLOvbyDo6(|Z z$K*x)FHVJQu>2|8h`e*(s!R|324pJ^YD$IMP}ILZ)H^wWeT3{5otZi-*{1_k3h-61 z)MG_U!Cpd82ytgisxqD$qEwmdqjju5Cd|p+ll4Y<0*IpCuqT|2wkJ12%T+dGQaY1f ziT)mY9Bv;wmb}eU3i>f_^g66**zLeZk1Np$xCy+3E{g{U!l^chfRJGrA_JZ(RPw>1 zySyz-zf{282*nv%ayC#EU(U@`)fCWxMz9l-Vpr&q!UMqNxEqNja+3)PWtUR#7@yp+ z)R>e%TGw%?qB{CqbY3?}wwu`QeqC~_>NfCJ-&_NU?(j~ND?_b9GqFp+N2$Qf%?72$ zM8jwYPA$n`K@1uUr*Rq9ourlt)qMm9#twx3O5Fn|!vBh;x*@7MRLx*XScBFueXYnJOvJ;RP`C#R?nN{Imjk> z27lzW0RITlg2@|Dd1LPnI6vlgfY$d>g55uX_%1)%M+Z>iI!+@_zc6s%cHog{m^S-DsmAs!x7~{#SdU7 zRvx)gIjwrRNUz%uf~icRH$yT`3(cu&f)5r=2Qc<1;91bVvVzwyEUM>`&(9kOwuQ znYdjv#-hmnS3aIKi`7e5i(i6(fs34J+Kb9B{A&;kxB2S2j{3$XJ43Yvp9LGZA7fbM zT4y{VpcgV610C9ibq>5s_CXKEWFbMMJgKF#p#!|Rj7ecVE6?BC{xf!o%aWv|#hkd$ zY3Dgze#R^>DWR&7Ba{IXYg6UT^QviAJu)i8mXH;h2<$v)Gi0zj(R_*3)BAYYLpc$e=hJ$ph zw6?7^d^WR{ZV>yLcZYp+xE0l%Zpg}J-D0g1vBldH#$cP|H*_{OKsZJGnB#-I!Y|+f zGL7=$og=e+6n0LtDd)Ly6Mmv>udNklvG$eb4RkTYLPzK#>V}?9KV}8G$tP#G(zi$M z7nYTqSraWUGwPz!ioM8j>3XpOZx?(Q_47vRGZaMpAN#=QFXeCPo5b@|u3)Qp3D}Z1 z1*j#|i2CB@Nb|&g>H#;-ug`ggVn}mzI$9^$o6>Whv8DhFvCxB-PenKB2B%$s?uLeX zwB9j+71&h43AtVQo4h?#JN~o!V-Oa_Olji9_;m2Q%3_G9?!q^S{1n1UN=lSt1vhxR zb-7uqMLbVS$9}S0eJ$;wfhA*+!=gUq9I`W%oA@etk=7|K3LlEAW2cje)L??oKEuuc zkBX!zr-qd46mat;)!A$vS&1_jVxS4UacB9nf-|Pm^FmM(iBf^1GzP!{Wo z0UR=iY)^DS-y#bW|542(63q~?nB6ZK4qu2RIJYHRWb0%$k(Q;5{Rpp0%%@`TXj!J{ z3hMy!)wSJ*ht6}(F@3=zC>=qZTF-FAjK9UR2pNlFbIDin!bm7K81u361pO6*gl!0U zQj5J#jUgNIYOCv;a-^TI9rz9QQT!&!5>-oyVRyg1CmWMqmSxA1o}*Mp0&5H zAy_SY1BIib-CeD1OPp2zC7uB@c_`T`AhX#@x7#d84X~KEm)Dpp=UBB-;3Z8G+%!pgPg`KpV_+|apr0hp5f#TP-%`8`-4{Q~c{ zWMSf&RqB+hbeRuOcj>s&8`bl89~33{`tS|!za*8v-i4Dz=byP_T!-86M)jGQmd~ir?-Qp=BOWK%F zc}IkMlHthNvgL(!E3w!?QA!rauUBQ3B+HAv?GP++2Tubha7%H4zh9Ndcb@Z7Qz`!) zMB(O&Le*}4P2oCsdsi#Tn%oRascJG^9C+jJ9+{Tv$3o(Hp)yu`e)mLX)u__%MTY82 zguB9eiPq9}pB%T#KLh4n0%)`=diU#unN_Dm&`;BZl%MBH) zxOM!#s0E8wmGTCvbKDthA!{#GB7v# z7tp@W!I8K8C(4oXd}ssmEZ$svI`e{I5oD*gDu?B+vpf^6jqeN#fE+!Ul`=;q`N?+4 zUtpB>#X2){Xh>F1yIS4}t*Gcz8ngevnwu`<4CTM@jdSC%D7HI#%4>++B#U57#3fHS zn%HRM5^E;;4HFahNiEP9=nzF64MLANvqWp;2gOb48OhJsU-(yQI`6YA&#+o2hOi8+k#@ur8WZ`w7Lt>8mm%AWZh-&Fy!jL#bt@P$p9&<;M z=b;sREkBR9hus$YiC#$gspgXVnf7d@p`&0tHHsF(+az0cQ?rJexw;wBIpA6LA>l7c zLtZ7zh_A&SbN`Smg;tO_J}u!0>%-suQr~N&2Rq6+hTn?a4OK-F=xJO;&IA?;JMfCJ zt*I8ALg)%abEj}uL-Qd%CrFOKxmX4#Alb=JL?2ac_efIpp@x7kRTv!=YVGUk`xMDa z9mGZ^FC}@2-hn#7nfPWZFE%oyBSwqbE4K3`cv_4bD@H#9zstueKJ$MIdzi#joita#6JMeLzm%Zo)w?ST)`L76S|GTGfdsj?ba?tLEyWg8J0*#J^}Uub#HCc9OIn>s%O0 z-r_=>74%GQZ%!JB3BM!`IUeBWCAH}DsfEBH+KQP07WWLXDRF}AB_3yR>+10u6Bl_i z#ck=&tp2K5s$J3!nd2?>XiLTA%2Bx5*gAW#R7qYXUCHvm734Wl5ndacrEuuK;qR+* ztdB}2`IuR>W+xm@7FRDTKj8YF7@RzgerBh0M^YT(8~Z(2&S_8VMrOym6Mq9Wl`nJ7 zWW5#TV4Ki&)EfQ<&7bB1Mmy9-x1Mu?+Q`gOw!k|wmge-3tfxD(OUYdD??d6xN1rD4k{n9bMw^7z zROu?)c;*s27+3iqBIcwJ_XuQUp0P1b9hQ3g=X`8@@2v(@Fg`cVG;Gxi^0$64AwXD zF|CnP!o`tc)q@is;ir;AOuqgw-pe~D+*s8%=Y{em@gal<6<7HhR1+X5giq|A%(zB{gaDrmd z_h>0+Kh&7>8)KAv#$PDhjb{f&L|W3n!%_Y^_MXs*sx3Y}u|=GGIdVUzQ>b|y<~{+Z zCYB=oxZh+ifG_kM5k@Sq`n>B!J0(2UWJ=F16_Bi1;hM1lobSLxHj_k=6~)ImOw>o+ zV9sIhUTUpu5qBI^EO9`SgMG?WRl|5ZeGzOERAw4vK4-_$Q1!{!9+rwB>=kAe`S1rQmTD#&QMUFc5lVE64n``GaKKpY_U2ToND4F5x(rxsFSkR_DDujs~j zBsnuR3!o(f)Z5Ym`nm8x&LrM)Y8={xn^I;grirHrrgIJK8bplnvU)O>o@g$;P&A+uV5UnKrAtT=mxb1LjLlSKoJC z*LfbtJ2c6oE3tTg3u6o^37F+2@WEXxuOxqs^XmJngN$tZa4xEt?3fa4EJpAg z;wo~L{}f=#Ryfzw71$ZsiSV9Z#MUSx7R2qom(*Gw?m!$a=)6q_WD`&{8Z{xmVpy zp2D^TMsPoX1Z1x8i|T^BwzagDg0IOibqwr9Oje&$c1E32P}+!HBsNOJqF7a9BBc6Hlpfm=sdeHu#Gl-j<63Vz;FCKU>taaZ0x%0?i@Tu{|R~3 zbMy-6bNCn+gxm5q=9`p)&C)paZ&iIT3%nP$C~>ufb^}O$iqrv3f(G*2gek(m@{`pZ z`$gaL>@NI~*V#8hoC4MW>T(T(gB+1kvvZNJP5`8x;0=CNxE*z#o5U>OE`l@BL5i1( zBJe&PM@J07o7=JC$?!j8%`=GN>8{yrBt9kKoKQ&Ws=cySh*T& zAm)U-uq#y+8VmkfJ>6VK^_juFL(2^=GyMd6VCZbAi78!8a+(yJD}Ch);o7**mj2kU z=n_X+*$mItZ~?M4_DrI~w%gDJIvT7M`VD+FN^yHkC93vj*tQx!&yNB`=rufCcg*fp z!_;rG3nFQ25{KE}(IMa)MH23Yb>KZ=4VxfX6kV0yK&N7yc_aEf{Dvx)9Ez9nZb2j4 zhHpeyd55x5EP!MxI_rjEQYhOo+(SiwgEV>s{jBP*ZNdf1L*?Bno|bLq|B0`gQm$Jq z4U4pK^ZEG&Ti7D|tBi-~!{YlRyBsx3-bGMdo0QM#hmsY^>r8XP`qI-O1MpbcGO=>X z1LA*y{|Y1d#qR6TH2wi{3E4{h;kj4J=2gk{7wru1Rg6&iflX{Tf7|?t`6B~LsUvn? zv)s^JXO5JYyo78n(-dab#Qf5g)>S)*elHY5R{p<6cJQP-38FWS#1% zRSDOLjwLQ@KKh?Hmch&5TFx4gR!L1$0>U<5SMoNM2dA4q80HWv#U|)1l&BSncWf2t zpz((Ov#xsl;@EjumT(tqsG5ly@us$~DYlsBL=EINzb&xEHIRmpVF ze#p2HABY?mhXm98N~x26qQ$QHEzXLXNQZx#Kg9M%lZD3K>Fz_}lIX7p9=ua=*YSiI zj^D%eNHqcX)hv#2*N0b|>&MhJA0#G-Ay&k6q{8W@V&w}dJS&@RznSBoBBQCqGke^?`!V) z7MYKr=D|ik*p=5oofK}(60CW+QHX}sDjVKIF;Lsf_B?TdWrf%~oWKpnJL=UYySgJ* zU+vcWi2LAZ;0B&x+aF(t=-_)>%sIP>Jq-@SL*x;&C*<)&Jk>)U>Zu6Izj@Wj#*U_* z!`x4Fo#LCivwDay%6}wig0B$DJc4DxGs86g%s=_W~8^J<3;d2RT^>z zM^ox39(@VDhpPp;_+}x~G#OYwfM@mGCh(E8Q((}$@T+DoG>t8$4IacZw>68K{ z#nfBzInr2KscVKFaIGyI79q{Fy)D9eoQ_56vr(PRi$% z3(~KLI{exk9UFVgc1(>K7aB(^0>og`H`Oel5=$Nye5~lKXq-0OdfMMF=by68GIrfXu<1gG)m-S>0F!u5O%wl88~!zxg` zTw1;Kq$}2A2hJuxNvc7`IjWtkg<)ANr})e~E) z|0;Ups%BYU`Bu_?q<0yTJyE6{XVvVP(l#9S9>p&@R%=4a*5Li0@xHKbso^==Pcc$?5e}&mQvXOe8p{3g&O0u4NsY>B zixixmT4e}DcV%A*!F z2G|T%Cca^HNDMRwwU>YoKpNG)FjS9x=zz&bU)MO$Qn_DwYceWNuQ`XuHz> zc~6;~)NzUPg4FMOxnl}CR?MK1*|Cx8%u%KqxjnSSIV^j4@e^?uaYAe@q2^`rO_9N+ zmb@e0$7qjuu=0nv`E;}V60c9IF%*brxf+sIVu^kh0NY)DJ$tObvHH3pf?-%aaFa~a z!I`_d_w4py$keft63fW%pTCkBsn~(WYrXM_YE|H}G%nqqcrW<;*L}})TaPOFwk~{! z^0Q^L@K2c!V)_LS=6GC_jaYJpFhBQH{;r5uw<&J7=5jbb?^V$=McCr-&n~>QMpRn zD|KtC0LA!QDAuIS)uxBz6xkW_t-wc@v_=~yK7wu(UhxmpmTOl7c771o%eyBJ@?X#m zM?aQ~_QhE{B>W}KEIOVW<9#cvCq~;Q$NT^=-(ybDY!x zBXtjS-=zZoZT}t6V@Wh;@=eQ&ibU^cq*wfl^jcP>bSIn}q`X}M-{DU7OL0EqK%EaC zM5U0)kRIL?sN~Lt{)|_~zCdF_`G7ac-uNj_mx~yU@5#IK1l|X_V6EaTjsf?J*iJB+he2R^^!quxAwWI zo}c}pb^N6po6#z{jsBRJ9Ps*@P_UFL=Lw(V+ob&Hra%te$j~6Uih5c}^lJ~#Wy7-M zh^e=*)3d`pLh_p)5KY{Mf=c0Jdq(x&x}N2W3Py!Bnv*G4?H}l&B?p`tSc8;LF~d1` z@Ow0e-znevuTv}ClGIq)Qs@94H(8LFk_o{}_9MD8#f8~*`Id2uQ=gdz@rLppzjK@_ z^N);0<{~s5_p09!@xhKcxt_4Tb80y4Rh%7Bx&ACaB0jainjOMIwL4ago({doSi4OX z4E$X*vm`@&Zl500Mb!pu?_E^dQjk8Np!>U{Js?_shEGTdIT(sxT& zPw>A71!cIHGS0Gq!F{j%72(nRPT)gmLw>aACtN%6q-tU*Sab}|i20#h#Pke2u9)Rp zsyvW-GySDzgD)lcN;U{zp$ge9>c3Pe$|lwo@nzZ%p{m8Y=*ZZiNuR{MB^sAqgrH2m zCQ@15F+A-j?t32pG@(7yHjn-_&DkB>7gv^+Zfff6|MPmNz5b3S0aymLv=*e(*8EU3 z%UaqQQ6}bRuC`}HhG$olcSbJj7UP3Kw|aVvUZHkg&YSIhC6iu8$!WcJ+I*TVvv~AO zH7SI}=}_H!#X`6Mnv2aJc3>T|M$8R!Df`XTnq6ued_vQQIkEJZ*FK zD%lv(YWL~J$i~vaXb0FpBw?p0U1&EG!Sn3Fl|A%Thvvl`O&)K4 zEw=W~EL~l?*VC1$1+@g>tR%Kb*zypuWud@*^qs%AV+Lw&C@MI9;<6>yg@jBruUw5i75lC z1U1l_iT;rSnIvb8M$2aLr{z}LT48%hKVM^2n!&~%b$szuiY$;mShF(c8xK~r{`Sc`*3=NN;khM}%y^Ql?*O0E%^p$;UU zG%Sb!o_zr`g`;g^&!pVb)*~6$OL83;hZZ7pRg1NA0J%vby&y#Kh`jCn0c9c{ZcW5Y z^Yr5A0-&;XEt>0J>s%AD$f=9EY7cah9S}Xvd61=WW#NZx*nXo;R-FfOnd5>9Zh~0Q z1gtk&3hv@1W+StgTE?D+>)@xLm)xh&E>ETp3h$CP7A%I)3%p0X#{wvIPm-V-P&HsD z)zRIx{J66gc}ro9dt*BYlhM0;bJ;3g7Bvn7BGk_HF0eXEGL6t}ghqT4eN26b%%fXikBm39=V`kG4<3*vim&D6kyEeLTtJrtC&br6DKgm1SPvjY(Sd9x_a?MF zBuY8SoOkgQ+Og+}tO!I=-)z@vro~xu|MK}6KbltV|npk-Y4RC!+?})30_rqs1XXlNI^c{Xvx;3YtGZ%8j{FDAy#skx| z=y2yM-}B&g>WG?5+f%7n2Lz+#P8T3=C)X>6+y7@XYgz!?f?Z19jeXVKMMKgG z>>Rp3xIKSnsgoO|pBTS3agBZr6ZGgp#r%9g1%6deNnVq-Mzbs`gsw45_^Hx(BEz)R zcwKb@cR@d+v)rP;E?QtYr0pPt*%`n=t~V(M7ysX23;yOgK8MesCAJFwM!8h{9H<`- z0fUgHQh(H@HR3LI4mE~p!7XJ}@`QVsZXR-yzQG>l3ZwIxc=VoTI$Gj)mTQA=sE+h1 zu$xMwSRp;*aDEVT$gglM3U>o;BX6*)#A|$<#6_&+Yue7%e1sXdES0cdcDc!s|UN=PgwU<@(`T*JGg$LRq0ukwLzlX@xN%=69Z3Z4-rDLO01 z!)y6JXivl!ZN@AYt0`w2Y7#ysEilO^U)#iissk|tW1Hz#BJY_T4;~nWr^p2U9`5mTgHCaRof2jvU--8?F7L292wB)nVw89= z5cTIXTj3V?60jBBo~keOgJSS~L=|iy;v(Lt_hHiolB&cMNYBxem>uZ^y+=z$VZyb(ObdrtWq1KtK%ZLQc7v`;XzLx&amsjHmZRI@2APbiO~9 zs2`^r0AGnT34h`&=qc4T-85}K)hl(pwwpX>^6~wU6@*XKUq9IJpE48uh`fO!T(@X* z`k3?yI83i56RApJUMAP33#0k&(cIu(f2+U=e|6t+5*6CBme3bZQ|AYF9SVT!6BXD8 zZhEL{C_Q>YSgUMheQtkc9F2D6#zqAHy|5aoXKZ8XqffyWa^1*d!R>T?R8;iBp5XZi zP9g3`uEXJa;vjhnwhmb;vlqvCx63K-@xo+qn}Sphg`Y&Dp79mU9GA&eib>Z0ES;3? zq)uELZY}>=q96g1lQiHGsIL%9)#SCxzb%<@FRc$zxxeTi?i&^|2({7uGMhvnyIH>x zJP^8Ho?q&h8$f2I#`f5B4PHSnkUgHuz5j+ANH3I1>l(XB6Q*sxy5T{<7-g1ri#|cm zs-}QbNqs1TLy%s&dr2MBGR^-$RPbowm+Wd4|A?J!b<;HozmyfxjM918>k1@afB3R3 zChcupCYWFHSJt7jdqN|NHFaOI!}J6^6OIqu4=rXg6=!Wy+ysk{AcgPInbE3j2v8~d z6CR`r)EBvg-GfV6AlTBoBUpoZ1{}fuz?-0BvB3ySHFZrZtKnKfH_#UqpVD z*$Rg^+6!Y$-%@I3Otg*U^Ge%hhYJa=$l5sde`&4b5$It_LiQRt6&O&xjay^&p{0>w z9&>P+co<$HdATCW7wG7FM`nqm(XYfp?IPt=+FGHkD2mP_(hXr{cOWnNJGhjk6mt7M z+$-=xn58n9bcUbM-q1mJ&=?*) zO5f)l^PGZ*nx89oV~!S9QH2!T*{`#kObG$$w>Vt#l|t6G4y0Y4FINjXH9V;G(ZP^#B^J z$88f#7Ggbz2NV49(Gl_+W1j95#)v<;zv&e+`|eNpEK(g?kEF^Q4yU(EWRdK+X@iys zTj@iQG_rsAbf_RQQ6h;pGH;ZFlcQtZyyrAK2LGtuVX7Q^((sNy?wMX*$=ypj7`w7c zy_AXgEMJrIBF`b}4bsG%5L>Lv04@a3BCzlv)zmsBbAMt!_`mYR{29dy{V`Zod-udr zn@RC0{J7+=!c)OH+MS7o2`2jqeOE9c{K;2BE(M1hG82Es{i9ePDGN0awknFXDqUMV zpJ^Ys>+c$=EP63qy;ox=X7GCgr+rGQ1Ew=znqI)v@W1ZoWSQEXa69Q?45a$RJrBO| zEu5V|KPlxh{0myQe7iRA5oUU#>jMUO)`Z)!xO?4tf~2+ zVHI!iw(`~rp?tA+QQQ`NAw4_rp6djc@Ja@QTN|=WL-8CsJ#vX3Mm*3dP-oy_#m#U} z?d!CvDQlG$a)M(_MT5{!#hj$osTZ_aWar{;`B(jFb=Bn9j0e`L?DVpR`CRTYPZiC% z47Q3kKFV*(d-S7`vpO*>b#~Q>se9Dd0vQDxN+$8U?7GTg#v0pM;isdHgAG*YVpQE? z%I&SpH1;-FUUa2sd*CtN)7r(b4Q(Jy40J2mTr$IZo;{=9Vn1wN1N3#36jk!Psy==&fK$$qXC{wv~7U2$?a!)^LPAp z??3@^ulPUJC*5~gP2Tn%_Fa>^8zSCB)gM;VI5P{Krv9Xgsz0k9fVHDs$jruJ+qDx7 zsk(bG5SbnV z;yEUKGyH%m6CdHfHO+O`v~@JG#4vcaxLas~Jkky|7wAu+8txRE0-S^%qct^?jI;&^ zI)rZrUWYo8(-{Tyl$fGPl~3q}@GgF5U_!ttT{CKuYo}$#S2r#q+;AeAL;TPf%9~}_-EuXJP%8K$5OF8nI^c~nO z{$ln-j?;_4PKpA>FKiZ3Uw2P0Pf)a1m79rFZAZgx(;cfrA3zAHtFV@Z<^3cqOp}u& z+6WPO6;imDR`jV@SMs%JS$VwsU+-Ig>%iGSWw zBx%d_&&^{@I*n4*LKD_b)Bn`bGS6oj(g&G=T!jCSd4`L^2LtL*8>S&dU`-?{p z`&T|0T&h}|a49KY`z8E3&+`j*Z&J@pnUJ|TP1F~J2NaeUqkuE%T>9#iKt{woEfAA! z$*S;OGQZEPNcmsd$#^5ZHzy%)K~8LLob*@9p)^(I?ZgJ*Nxz=v9sKn^w=OX?y&&~n z<|gw~$AqjsxvuXG91mXO>T7N^UQAv534LSUoF%9e(~#4 zP7XXHV{dY1+TBE)+?3Tkr`FF#F5Frx?Lg|&q|xkA*(iS?yKTjG{ok4E(zD}TtTO9= zzx(9v@p#RLGdm>gPMw?F2yhfP%34vnPO(e2nPntDOgmyU1&1ZI zv(DF+zy@gvcv9Z=Ms*7eE!B$@4^{V6-+I5Gge$;fY!cI*PZD_guiz@zIA^Js zAb-;uZlcf>%~dIoKf-d8(a|dMUbQ)XNn(<9k)j_n*?ZT&7S+X_OBt2S80Jx9+`ofa ze7=%1R<;I`$HzywKE+qFncO`Q#9AeJjlH^Jh49-BWr5W z87g1>-tYn!0S`Y>&NZvcepQH(LmFMYWJ+QB7H%wfO!iVAv5Cg12uT%0|BxzSl@+g4 zGxc9JZQ*Z>iq`YfkS>PW_F<+U=sr5#*VB>U=o)wp%r*8+b|i(-(dC1(yZz41F_Rt5 zPg1)jJ=Xi!fsVy_k*uj@OQrs{Ybkw_Nc}}taLg)S9X^lF(EVd9wzf7sm&&~V^C-z= zejNHz_sQ~Jp9%?~O^&%G6Ux2^te7hHWXx9(_dYE9QL1;`3T_sa%71ko)Zf6IV3X1h z4z1W-SJ!;nSWDd>eo( z&64-E_ry8Uc`*yVr|zp7E6s`4U_K$$HDieBK!z{~7>Io*AZ(2Eng3Tf4NCYOe2>(D z9mmJR=ZJe`%G`*D4{2q0UhOUQ>pY_c9BqBT*v+sQHDe0DP|0ckvSUa60JiIr3X<{DUJ;QqY(>)aX-Rs!n@hwP&f1kYR0x8*JWDK ztmwSRE3O${%dprqTnzvRBMG4`(LK^*>>p)w%@NfbD4!V|eHXpO6~Q|cTkuy%31o-9 z0}X`%^tQ+viWW+c8w$ClhfEZoFfp_c-9k?T)+(3kHmWN_t;nISDXu9|*(4HEkZ{}9 z0sZP5S@=C?VEJHZY}~(Tc_}T8`@;2dvwnxlPD$%+qf=I=WLTT?q2kc*+eK~I#pdm) zQJ<(wogr?KPw|Ul_R%{=_7}dH7DnbKj0W zcA6=3XB~*GVyF3U%1x53ikh}jiKpyUiS4ANG_%0r=+ACc-HEwiw=11wr2Jq>swOq&JL+MeZSX92ir8-4t>20sWbTK8q5kY@G*_pzjx={vUgaAEEBnUC4$k(m zLz2$eSiC;7&`)?rlewTpTi?`4!-($#BOJNq)!m;$XSk|xckC7{vaNiNOFk6g?!UO7 zihs1UrZs+&ZSDKVQRW^`*ChOwu!z>tOUIz4yxVw6k!(GF!(-{%1BTj;uPK(x+Dh0VPGk^SlZ2pm>BjG zn6G(cBDL4y(^P@KM(`B>PW{5x+uC3Gk?RropKGbNA8Sz`hJS(m?6wj{)kNGoT+Gl zTms(;FQWa)#==BJE!Ab^Wc5wr3_vs6WmiRC$$)^WH~K!>GPoyaqBW!~uq5&ivdZwc zrKVvavesWGe@15@L~I!dL3H%HG#M++!kPjwoFxgDgP z+8~h%tG>br8g>!Qg%0xjkcGA4AFVM-Nin@~is}}0hbM5k$OY{A1@v8IDp^Z9&C#+rIWSN$+a8S@YS=DK z^LKO%@okhw=|9@;+bRqmL`yXfrP2)%v%wJa+`N$Zz|SYk!XMcq@H^}^m_k4F&2`wJ)&{Fi2tv8DbEmPPM#TjVX#c6XOZh44h~v_6Kq^VcFd zewij9=Y}^4Wzr6z3H>PqhxBwea1VY-;lzCMC%KWmNFQggtmDo>rM93|!lulQ<59l$`jV??XW>O$l# zvxZzo_X5u<4;UWHjgf!(u-q52iAl=Y);{r|+}T+e>f}oC=CcpgfNiSmkNFwpy}Mo0 z+}Ft-*eOe^nD6QoR_R(@GQ|0i`(jil!Lj|+H^djAmu@(~O1q7h<7>ywHGaVUe;vrsV6z<)6{UTiqrv`g^WaMLpS(qpYiMZ-(_ zx|)ZNaQ(yxTQj;o_^nqEinZ03EcnHr!irT~(^~5-dDP8X-LA2a58^h@Qs)>?3jnsta6_ngN7VonONArC+cO z!R7dT!iaB&nur~^sSL_I;eTMDXZ3p-XHP>%+6*!)GugS!#6_O|}08N-(F$+5`PrdtxxB7#T{qTF^ z<)m8~)}(xuE2{KT0gw3JcsFfL<&2c8`s++a*`vII@{7VOTQIf1oZXr2YMwu|V4e%3 zD?=*mH)P@}h0pog1inTG^M}M7IsF(y`r=24b&AW#5a7A|gx{42VyqQP8J*I`rpMLM zJ?@X5G-@xhQeaFdBMESMMvEGm_5)ZJ(W3IOT7} zCAb~k&s)VY+tr&i!i27&A&aOiUI{Pv%?Mm#eq&d3YqT}6Nqn2g+wi~iO`wtDh3dQ9 zr*wmLzz4v7-~-qjb|ACxT}q4QfM$d$A77132k**V@=>ZLhDW9pgI}>+1em#e82X8P zgKHo^;Ynaka0_x@{$1JxI{5+7S;5Pp`OFoliK?FNfVvO*lZy>)^?dMGVl&avYL|AA zx;DC$>q!csiPSCNwW_hV&sP8K6QVS=(8QWg}C>|JHHXk>;IAj^j%J1(3yUicSjVdUtz{daDKNN3XJ+ z@J*^BmGjN{1tJQ)K$@VXP%Uu@eU`i)@pJ2ts;UF(u;LyVPuKCQWeP%HdM_{muc;h^ z-4LcmhJ_ABQu!!25KY8hAf4bU$W%O+$Wna8mf_ckdrCp|NV`E7R(-$;d>$^3+K3Li z81r4jQN?DVAlidIE9Sri)&N@wPZXX}b))~IjxojjZ0Q=`J6y%Nz2bBzOKu`=R4-5{ zkh;b-E_rpnF13o+f;tvtKu4}zr^X% z8YKnHt&|sltMo9kIoXp6^BjCvS*jauP-@P=J88)O(J`(3M#WpXlQufEJ){ixCcl$h zXo}BW(XHrG-tmIz<)rUgw3$q`%o9GbLNp?`Ior@>+*4p3$|&Bc8tTRvE1Oh?@tSYM zDMc66G3^d*4|TR`rnaYXg&8vS(o%Q|_)fOY++lS59H0mKH@*%@7Z=jj=-TLLW}CPX z87_P4QsEf_L4PC(YO9zcGqo{ORnrUgPI-D)CwMNp1?s73Z<=L_)Aqzxich0mgA+ov z*_ZGX+453TV(4r-ne%W{IGWun@AMl%1>#+1cXWO9AX878flgK4)|}Dp(WWQ{iEhfz zl*2jt+p)tEI@-Dt3m8tm1un(Ptl{L@i4FB@_*<@C#fQothn`8GGF^KEzeRPb2<9^d z|2VovHpoxcHsBPs-oMoI#NVBcLOoP!?Fr>ac$-kn&J`{o?=@Cy?bt-yHtoOY3aPDN zl1h;K>i-$f8=dN}@G-VUINra`e=!t8a=}Hu|KFIzyC=ENyN#|E6<5jzlwByB=P>x@ zlZ)6cQVpXC~RttoNr$O z)D%*<&5W0ZnPSQ)_fvlgslZ$S0k(@expP`dmNA2nV%-PppJqyNm#;}Bux0QYef!v~ z_|>sz%$)KPaE%?oIl+d?JKE+N67LB$lN1snzNfbZi@X_uKOz7fL%oXVWcHW5J!Fkc z1^LYXz&Af&2w5l})X_LCVRu3|6O0|?|6tY9TYQJkXkKm|71PB&GA7-UtRJCziv5H?H6joj625eF-urE#Bkk&5#wknTq?0fCaiB?xEvd>97oH9ghc2mFp z$jZ*{`m0CYu#j4H!Fp3QKD0c)Vb*bzaOEQ!tNg0FoNO#@Mg71O5_F$-)c5=usUsectW0;GST@b^F#J_qj2kseRsB&D7?G?{ z7;B@C2V2k}&5B5@fz23?i9iPNQna1-L2 zc7dshCCRiv*I7fVd9_QGq+ozVrk~pIF9$^ zZu#;3x0HR||5NuO5s$m9u0-7`UsSTswTiZ3PNf$ACRx}e^etu`e+XKwT&J0eSLY7< z)>k-OB{Zr^u?G_l+jI&l;&4uNc!G_Qplx_s?NrH97a0?28Zbvx;Bo!tgmBVT%LVj3 zTZ_91AJH7L6xc}Zd{GD$hQ7;u$Y=Vf@ewhB(YpRAY2o}#?ZKX?+o2*k!Vy<--oHmM zsdnhCN*njt-Mnn8$0W5eze=^IDJ@l@!KB?kKfFRJQ(J9$ah+rCYHmP1_@%;G)T2sK zEE0FnrC+N7;pWYCz8T}wG!>cNvq6?&7?9k|k5FNS@DPSf7PBestkW0V?_TNZe zaFoAkU@Td{9)v$Df2fY*hk?^n*k9pY7w#hsQZ3a_(p*Ma{u>o$ZUBE`tz?hYPIL;= zQJxf5L#snufniV<-b?#SU!g5kIr06_FX=NBC2nbRh;hQBP*49Qav?Oy*gigD^Gg2W zmA|7|+TW&<;Yg(vFg>D~?@?#{%&MOKIQK%Ro4SoTMSDuZyk$kxOaAi?;(o%P;F-X` zf{9zmZV;+L&yh;VdT@%kn|n&nkIs!&rQ_K|u|VD&Y)~wNdNBum7RPP(Q`$&Ou{^SU z(fXw&VQ=6Na~L!0TbPs0s6Iq&L_yTA5Og+6LsM*aSJC2TdGM({;)8zc-3q+c7dx4R7jItOCkqReS>Tva7|5n$wem7<)28dp| zHnS9HrCw~AWLsuDMQi}ZaS!=y_^T#crdY02F9cv_f8Hp^6o2i zbtLA88PkJY)hjsO(}@)Im(*J^DlRJvSWd zqWz{dssfudT69{UCa z?nMiQRA`bsMMW5%tqSD9jgd02hI|5C6Iu#WL<;&$%+f`)6=(~lXXskwu|yG*^=}Pw zFAdu-Mxt4vlaadM1LN)FbIFa2snWZ^JNNP65oxCGX>79u$aY6v3rdn*w9DuF&8xZuQ2B#rjwA0}{Ok1@pRS!mrm^i=A2Ugjg_DANv6r?OvVR zEDv{`7UvtQ$5)S?ualX?k-tKH*xt&)_Bja)EKd}z#o_cjs*JyZ{-JANJ8vhA+mUbK z?GCp~WQvtl%}b1uoY~#xnpB)u{M3hme;O9Wo{s5AoDQuiIwu?B(uMB&Yw`IB=S|ZQ zl-U)rGcSQ;;<@&R_9>1E9iv~P6S+Hp4*iC@fgG9+w~m}-e1ZX-3Z4~faC?}k{5QCT z5?8&DPv@D!cwPa{#n-9p=r^kT2CtC*}dn34_Ycn^AudtmuGN7&zpX&?n8 zL1r?vWe?G%(Gw9LnM#(19t3v!GW|KB$CO%_13m-02rH>S!`lO_kM(bgRzS~mdh1H# zTx<<>-uEhq3cGPZyjR^tbw=(WO0tzlV2;Pa}^510#9RH)H+SGUFR)T=Z>3C0;{etd;nKTtTju z4l8G>6zC*yH2f8bf=9XWq3NE=;Sf3p!%Ta)$!m=(&z2z z*V7--j{11rGq_&#qz87J!k3`SW;S_9;tf^jaCT9AVaLESVo(B^9+Q${J^~+$CIm8q zQRWT0MDtiP0lysD`Wo217V8Osms8ftkosXGZbh(q`c| zSUpp*nNwiF7Wsp-UuJ*G|Ifc){*9l7bHV}t$`YvHY*9V;0GZ^y7Vm__b5msP{oBY- zJ`VYfU%@_uKe*1+#)yZ?6L;c8nqJxm_!WM5u$yzV<3XT>_(RcI)d=e*(E3wJy660R;d<_Ati^j3ZglPXSby7k{^?CW$c#FS>XX=dLhH|+js>3li<8~SU zM*Q^r;Hf|#`aC!Yf2Mk+>8jYpZwjpq4yI2EuLV$=0?)vEs%~gZignzR&=(Q|Hy9cw z9!;y2RweGOvKpHZ8XoS&4u)L#U=^#5RUN?RA=SiXWM^-d^M-@;aM48Y2mVR%2sj%4 z=}z?(QQu*YN~gJ@7yzDTX}W|P1dPNqnpyfkb(fXBkzvwE@eFVSnTx+g&I+OEzR;{- zHkrkuKm>xIUtD5nY(byN_j~V&hz%%I9Wy;Nbi`qHpg-t(<}Hnk0IDiK>Sk#HIW-IUGd#xd z2x+$B7w(f>48qxf!|({00zbg-6j7CtSPtx`tFkiZ-uf}=L1I(ODw&7#+JD0Ti8IN5 zp;MLS#Ac)C8BD%w-R0wfY^kM~0n7k5i-?@gVifVnG4fSO_544bkHw3Ich-aIi9(p{ zMed8dq0HiD#Rp@aSs)H@-I>3TLx#Kd8L=%)M#VWPk-yEtT!plPsABS1TN@@L7ou^V zO%;nh)tDJ*R9S-<4h^F3dD}QXxf?`2OGyN$j#1v8^^@Q`i&DkBCX~JH_As$I)4aIdQ&kdpt7nWFza&;uO~cMO)n6-QC^YiWe#V z!=bplmEyXab&Y#6F8_Joulp&-k=ZBD-1l{zC$WeUxqsknc@G%?0+c0E6syg)7485Y zFpa+z%?O#IkIADn$pP?ajD(Kx)3|$lns^rW;ad#zO+!qJOkIrgw3zCUW|`%2QnC$K zuY!hi%jsX(WN;}u6zzmw!J5KvsZ!rb$KZbZHCB>!KM z!){E#6gf!U=W0sX&8E`E_-*<7GG(R0Q#Z1L87b}n&T*b-Ltln#hPzF01Jw{*D?6Y- z?O7{_QcpXVWTxqJqVcqn&D1zx%RAntQNv& zz+IVBv3?{iti?rRYjrVou;P5-V#ohzLH=F;-cTv4jE#3WDpISShwbtQ*01r^jU?)j zOd!puzlHv?3F;aeyLy_Yp1KSE72kkgzz{HA{1^Bi{2E>*olYC&g6t!-TXN8h^PTs3 zh;p!8HV2D|mK= zTd1E5pQEr?=h#^04y?uVG&9vk=-==f&qTk6OoEExbnbZc0?`28rE6%)Q)_|R{;YCS zWi+r2dTXhh`Fpi-8IUo|6$X2UlKI1iQyDF*waX;qYhw5ONZI;wAaoizXc}&V4dq~t ze}2(~{F{|EVr$^;Y9HR0Z|8nfm|yhVr-9UlV%r|e8GHbLB)TF3(H#)ja4p_w9imz% zE++dD|6_wNrRbsbAYa%e;Yx3!R~2YS)D_P{fVhG>5W4I=>)jX3A*YB_kRr&-XHb1Y zrJnVk8-b_MY4j+5CqINzhi-UR`+G^7MID_$r4dh}mt*(IUzpx}6JQ&Z15?s_#!_kn z`vqE~NW?eGhoO5Rnb?#|7cRr=Wgq1eT;T6uEn&WJ3(7}QVL#AGyf5T| z{bX@UNIo8(BdUev;sdy`@_-ICjW#%ypMaH29c~!WmwD=Bq4>f>c>67)BoR-_T`ilB-Kmuo3sGLP_@pW{dJ_4?nxUw3VHOY7;+OjA! zuYP5Jz-Jqmxi_VrqPC}Aev^Er>J(U%_&oEQZ4%tueKkKW-%_=Qi;vru)-q*@VUSqU zU(1yjA^=cF##@rNS_8P6!$V&KlVh)hVTzSHnPG_f1GI#?8_`5|#{OdOfw_{0{t?iZ zEg@CpG3p2Z7Fi=Nk+nd(gI=zfxy!AD7APePiRuZ8h!~w08$e0sNO?rN*vMaoYr96iARN|$J&TGwwNj=yKrq~`*f{zLD^Vw0{e}H#i!6!XeQs5DHCOi)yg{n zA9)$vM}J3_DrL(5khlCE=6Ajiq{mvxUn!0#jv?=uPSK$>i!Rkk-gff|)oP)3%pRUZ zAmVq~1yw`!pE4I)5IpPI=X*){6r$;aejVH-ytL9^zBOQkRvM}&c26kA&qV80HmR85 z?+(l{ZcX~1Z7?2XYK6vyPEj^^sQSD8gB3q*o>vW|s$| zV-)!oc~X&Oh5T;hUD=$%LzPOZuI5|H(d=QV%eBSqA^#os#$bE!ia8~7NR~UceZ6pBh9A}r#cu@f1NZb&yIS4ZvPCs70A7VDzd6`cXdGi6TU2c<}G|5e!Vyct}m~l%2U<@{gEu+ zzAz-p<**_O-{bC+^C`J71#XAtpr4Rrc%Rr$+JW|^^015M*@=y;_au(z8_9VRB>n_Y zHDQ&dwoGKzH-v#ic5Ee;B3_i8(LB@y(ZA?#VLMS1LhwFH3|JMK>T1i@%r^&H9$`R(>*i(ACCk zp}WbBYi=li!mx92<7m zsOak5%zxE1x7D`3(bPmg^2_N2ZYg|2vHt(RrR<{rBT_gyHcJ!GHP;?f{sZolyzp16 zy15_Gk5q}ay75Nc2~ivPtL#{D8`mv*r@X#?t?sOBCx4jygZx9vmKC#g*;3(Oc!L7e zjWR6O)RkNkji}8;Pi7rdO(hYdROe(vk!Rv*I+^^1UdQ>Qw~!ymZcxuoB6~`tl0NCWE@-rX@*_LS|O{1qG*a6t8iCB!Fl3))!+Kjs^9o?u0;igyc-4Y zoO7A&*jJeWJR0jMnFVe-w)o+gihj);WRB6vbOk+_!^Qc)dN2q+6koC;l}&HvRzSt_ zbQP?83oqaj$xtkwI?XBoA8bGyzz;mhgBlXC zAW3_byrpiu&oD_glbsvAPxVJ{>pqwdnXjl@h-)OP%5@+`eNERyeH3fVwF=J&l{34r zKI(~@cZ!2N=hwPVhewL9vAW97>T2pV$@4Ou-o<_8YO(?GyUG#g)E~z_vcn=HB1UMj zd1J~w%UkRwnG{^(TN>ELmTUOrjgmEJ2>QU0lefkGz~zD)+j3HKk_YJ8#QrL}mpiw_ z75Ps!C&`h#OgD>~Q+1%i6Ksn1xBi`a)p`p$kEV`OPeL1l7_gdO}jF%GGR zYy^viTFjYf&tMzh*+33+Q#Q)T*Z_+Rw{ai+&mAWvZ|H7CC)>c(8MY~kcGO6B&B`@i zjva=dGBq%LQ`-5Y@L%qZu9MzAAq6p&zC@d-D@0{%D6x*5M=l}~V}FL*2U`bgg)M~0 zE(3l6Cb7+;HGJJ%3*5Tke$vkm1gC*YX(O#B{v^IqlUNsjOk51K0a>sI)C8U{(SbV2 z+hH%kUwA$Dm-r5uh8YlPDlhA*oGtNFcQT{MyVM|oM@U&G*-`8vdItEFd=Z=;QzK4& z*i;A4Vm$$6I0=k1{LfOQt&IfPf5~yAo!_VGm9Qk~xNZ|~@K-uFg$AOFY*)H^avzzE5pyZ7cf{9p>!kkbVJWPYe-#7LI`rBiGzM-yp7wCe?P_ zxDgob*_xkjpBl950vY47pT{o*ZdZ27`@P_3aFO;&Mp^d0WKfah%PhK5c0F=je#|l? zexczI@`PXmbHf4pDOgu=PS?crNs}jW!bQ3}+Zt%AxTMcFx^!>Vm5L|OFWgs2ey$?7+>WlZc$i^~f!%O6-L$$86|B_&9i2x=oE_yYnOYQtk#vumibV$#0Wv zXc)IdcMY4vb`KSL&iZXk6Xht&pYb0J@yM*m{Ho?Y)oW+Hq zJhAYrtALt>m=ue!Av_+g<@xGyg#Mrp3zLA)(rj!A^@>cT*RhAWmdtOl6~U;_8aNSM z%AJA!K^j0Ddn(!>(8O0y`Wwem@Mxt1Z-?Ax+Qt?T%{d0@Dw{0pj~+$dq35wY)ndY&$V6&i< zB+*=p+o|~q*OR)l>3lIb5AF+i_;p}grJ&ob-7X&nZ5M`19opN#b!;>~179kKF$_K- zs(`WZQJ4`QvHwwFdMWUa%&zpyYk?)i%Pmr4=7xe<&dvJX0u-D}L$DbyyRM$71 zF-}mPWqSp+{`}ZhIG}Ez%U1P=*VA>ScWjpLDQy5B;;rO7d|Bdua8K!IuYDc z-mbKZr;^Lkbg)d0tBz|q$t_ov>FG__fq402e2h|!#PKQ2TXrN6Lw71($eSQ@q-1to z_Km1RFDqWDt||vXZfZiLe&jKEj~@aY<(m_JZ<1rL^Gx6nH9|_zWQeXP>D*enyvGtun+JAPyz=yl&LS|$y#dPXaLz4{(p1| zyH}V1v=hGwYB(&VH)?@p94a`W-(^SSKeW#oJriO`Hy`UeioiaxP|V@IAhq9puP$`Bew;&dALw>@QLbA{eO~OGag8!q?}po z8SjI)%UfvA=zmv?Vza`lBk@9C{DOIR;!M*!zL{%hsi&;2pG6+Ue^1{UzYEs5n%L3& z?d}=q=tNa|oOKQy^mHvTSG|edlaI7^P3R}FxF<%R2bxD0f~WNz<7>xt!XUDj|95|F z@*-AhLgH(frX#x0%Bqu|d^S~m!bGY);^oLa|H;S}VXC~Z_O;=G?y_Pjuv$8?e+S(- zVY+CA%tN&6Fo)FOU+r%fYmS^YkWwb_8C*T~(R0L&1VdycFhc3qt=Heg?*hwWZvw4C zZz(-osK`^8(O!~=tR+`0Mi7g%C2l57htOzoux(@@*Im9&YtgO8H-VNI>^?^}tKzt$d3T9QylKE`_|-<;R6Fx%fvLC2p=*rZAXUhI)#s`9Z4llpPF_(@C!+^48$6M6}BL~&8&koI#vVYuY8DUHS$hu9VT4r~?w z6$gV5u#@}9U5Bz%ca5j@yU`5V7db}uLe!?42`M&}QBYQj$rMkSfn4QHlR55-Di3KR zWsX4US!*Q@0>+3txmvU_mKgbyzAW{gHww>U%l-M@G2su=jsH3pmd(aC$pkDLT)~c~ zYLF9{5^$obm#ulq2XmTyEVIOa$tz7fefrY%CC5C|g(14XZ2fGj43A`mtQdJg^hMLHKQdco+%ufv zuLkCZT4QgMsH{iXnQ1C)TGjvTb@Hh4Jj9Y(JIkE*5-)K6o3}DQIscBUw{mIf!u0>l z$HBY4juoq`Hbm~iQ`OrvUFFvV12vtb#e=%GN!OG6TQaZ$e^H?!FIL_}tQ)@~TUqU} z?RUPU{BYitf*aoF&~rUz+zQY3JS#}IONx2lb?7%u6ZySZTKPu%-}Yl=(__yS)eTzp zIgtom@XiSKq9On;)5(89j{v9Gw~|+F5YP~PkA4G>u+iAQuqskX9Ar*&u<#oXG3`l= z=pL&RI}vM7CbK!B0QkYCa8I}~xJmfNw+7B3O%w}NWvbOmTs}c|Np8WFswK+X@{!UM ztPL~;-H-i?R-&bd1{yEjz-!X)$vaddZXoy-`GzuRGi1Ctk*Q5(Qw59~exdnd{%Jm} z{fx9_|A@_uPU2>%`Xmm?bfqlNV6?+C+k28W;s=eLbP?HZ9*g!1|4r2g0&r^}Upgs! zIa7U2Sp!}wabsRW*-_qo#M>!08|bEBmG|YCe2;vRa=R+5e2yuhFVYPvkGu@jSGP|1 zFKt77yyALvb5*QzYOubLqbOBvRXl=Q3Q5eLbWi>X6ok*R7kqTtn35#-RiMbiW>ln? z>Sq%~X};Z5nnWwicQa09foYR895E@-ghosW7ui3RzZNPjV9H^A zzvzX6QF&GN!O|p_;D<`{MMm8liYKtp*hmHSA8!HsBgbSN6o6v9%!yvbo=YeE3VB_` zMZffwR4sD&14G3bn(xL5_!4S)WvBf2d7DdO!O!qsHK@7;*P|PTRt1kzD9R z8=+%TVr!*lqpfZ7-wD4Pq$wI(L40IxW1kFtEj^4jhyRUc~Ig-wpD(TJFu?EGdNd1LzieW=wHYW z1NFK0R97;EZ-oYthkSK%emFN+J@%Ys`7!i>z|yK+j*;QLqD7gn%0)&}V*;bRvqA^> zKa@|6b*wI9HHBMT&UFRuDm5m(2~}+drA^p5adByblJ#1a-shTL_Oh~F z=o42TCM2HyF2+ypAseG)Zcgs>uZ!*|a$Q);L> zU`{{N_RaEDMRLC2JpaAe3m7s4tY6G;G#ils*NZ*R9|b?jzG;5Z55T_wZRswQpIs>J zOpVwl*-YdsLxiG%^U=H9CwQ4W7Z>nHvJP+^5CbLwH4s7ZK`pA<;xE;|>7+~&ycOt- zZcsNjw~qf{%t6P{_sDpT6&pjX@dVo_C`I#@Y#4tYW!z0s#ql4 zKR7VdiCK=V)7;YC(d<^t1@A>SRIbi9=l-;}^8QrxP5C!#X4aqaM}a0){p`mJa@_sE zt=4s!-LmUv`BGPzrzqb+Kg1EhWn{22s_v(qqRrI|(IBcdSPgJ3XNj%yZE_d6y1P1h zyG9Fz1qy}!vVM=EJJY~*yRbNaYMCssU9{+`63UYG*2nk}@eXk&a+~PKt`n9(gXOa{ zHw||U|4Oaa^}=NWi3}ucybCg*vqfjv>U>{u!WB>af~?0)%Id&~K;4qMdGUEiO1=k& zL0eU$)t}H+R4q?M*~GG`?yclNiC9C(lEACf#K@V*5h`2k46lRc@~g=9(K@klj0Fbq zj;i@+Au}l4AaFjoE}F@h!8O=WSq8j;4M$c6H%PmZ@8}%GG1Mon=a-0i@c*#om>MfV zM@wmWlT3*x;XCAZ*$U|#o{T#cJCS$XN-C4DFFA@An~GIK#D@W`BRO^O&zW|3JOl zM5t%+SKW^bJLEsFh@+I2a!1d&>;9n93Wsc0~Xx;+84&?_+z;jl4rY!rP z)X{RL>h6#K@<02Aqw&V;>c(6(m#L^@3FS%P>Z%G2wESX3UHUvPzW{b`5>t$D(t)I> zrUwWUt#H?N_lxzH#alk7v`a0s?ob^SYJ{(Np>TpAal1?z)&o)|YXk*33-eR+Iv4eI zc8Cs>T7nORt7MA*c%@iUyL4D(qSqBEVJ?ZkK$5})X2Hv16aFfDoViQgBGyqQVk7xV zRfcM?EJx@P>FoLByyuw~HnNkU7<^DDA|6QOBTL|2@J{pt=_k(;D~JHKLU5x~@uNx> zF6CWpCHsV*2>+{0H>AX$Om1fLDPOZQqV4I6SeofW{CLX`ygu-X8P8bxM(|EW2W25V zjO|7ar8@{8;T!Tn%ER(^=ww(6c||Q}<&Vh{O?Z3@>pa~t?6FXd`5!X{c#TcP`|C~^ zN9(>|LCHMs4{jp9i>;)&d@C}?pWzfDO)Hkx$j60|N zLx>V>$vQ%c^j7zmVXxU?+hod-3nD9Ih_{6VX%k}B_SBD6oriyAYDY84i&D$-DBn3y zSTV0k6RW38OW2>19k)?PbrAXU?86H0_`j+)q&Cm&m(e8t6Pg}d8!9B)L4WBMC#*=l zmewuxMna0QfovB$C^lcp!0i!#Vo&4)kO#uwbaM1z;FW)Ks9tOa@iaz68$|C#wnisV zi-84-HL9&>8OeJqJuf4lfts2zabw~j<3g=PGV?JKgK8~zgr6hEBP;P4x`_5IUWqi~ z4ADluSD7{cQ)QD+986hj=cd?n z_`af1uMhbLDFy} z;l25dq9$hw`vWJaMQ9s*g#05+0sDm8+(0fzm3H%4sEj-=R!CB@W z8C*+l7w@3~g%j_o*Z~(v8UIJ}4O)lMZCtMzspzdJ#_MR^I-B~Oe5UfHI;6Ux_zxM& z4nt+U5u z{f6}|-(nwAvRzn^@g?hWI#lzlG1~*?vw5pLoIb8vjcWc31Ky_!w_mdVotNbPj4d}e zGry3(4sI?y@iVR9q_-wI)O_1|K${_+@_j4c={(H6F*VP)n(a<)tyR!fo)ex^WJGm8 zg~?u$zEKa;>5i20?(Xl@1zA|@)U8v@VdUOc^$j8DfaU$J0u(9ey*$2mt z*gtS9Jg7W`WOCDph7<&MHEc-6)8Z{Z(W=;1&qwF@fXIDPR@0Z@G}q2!Exwz-zhHmy zUI!V3qn(4xUDh(R&{goZG}k%FzbD+Ayvl51*3k*=@;JK(~}- zY3Hfh0tdo_ooQwLOG-;Rlr5<`>Mag6BoA)E4D=C z7M45C=LLQ~&ZnzB#Wu26i5~uEmBpp?9lIhI;AX})@h0;E)jar_&=YWA_oRl<8T}VE zim#NvMp*Fzb0~H*81-bkjyb64eFj#Id*8svQ|JZe8$_J^WZwZ_@sGHPXw)}QjXx4X+n zA~~r$va&O?s?AO+f_?_)k=d%F$y}B^X$TT*6=6)S=-iaXmI=9lK8 zg;xWqh*E{i_ON7Nyz8`kOmq)2#dIiXcxu1o3Uj==v3#hi#C#%kdZsI_y6tb}MQ$~@ zlf41`D*sE#%9}t5(w^mH2~)JAsbSXe(T$U8phR1C(Pm1#$M|AzA%1TP4bk z^VM-0mD!m3J^g2VGkg&b%s@Vx!EP3ig1gu>3b6noy(g8skcaIEv zCR7Zp1R_%rNV_KPmS$aaW6`0XaRuAxUa5|p-1MC}HguYxCY;GE%aWAOT_chkFE{nQyeXbYVsbI%V|q8{z{x>D3#ZPFCrK5 zxyDykFn*n-y)j>X6Z=QVCpU$U`Ifm4xi`4;92r$@tJam9ik$Z4_DS}|(sMi@|7FQ- zw=vqE?nS?edIBG+cMt|s(L#bUjvY|eJ~WS3PdFZ7*arIsAfP+W#i)npr2>5r**X?B?G zR@QRY_*L6XH!!YW;@z}$X+YvcbE4s{x_W zt3*2j7WAODhk35GlXb6pA33@5N^ziaJTXk(H13(L2|m$p&tIQ=rFbW`%KR#$bM}~I zKk&1Z%2ijq6lWxT$m*PVD{H@LR%k+gyZn!y0{Q0D5!vsOF3E05C5PR4f0PGemC{~i zGM*u{^3E*IE4=Rvuys|{^@Vsx0E%33ZEFaCy}xL`6f6{%GGE$;}`Vd_QkuswV>c9?2O?;^dC;lA9eIaL|{Uzj$i z79Xo901{(OJwF|y?^kZRYKrw`Vn1s$H45&PxQ}75gHo@#t@>5wmU3+UV`J$?KwDIc zUgH?=HmT#c#a^#SSAn`Mz9ZiIRnrU4=FZ70&pVQTsp4c}+ zoSCzk6E529)(5s@w$oP5`qDPSnqnM@zelelRcH^HT=or|KyLKP9bH{ZL+e-zlqP-& ztuO0j?@%zsWfV4Rt6OyDy6P@qAy1&2bmf-J5fD6UhIr)sW>3K*xAy< zQ8|iMmZH@3jG>8LwcljJbxcZ~?8BK0vVKn|v_9%~-~-V`*4g~4SZerf53bS^EGwg&P|^6Q48$VROrX6PD2~HtzeGsR&viQMb@FLSa$bBJ$%sj z%!6{f4Gl7UIo;Fs>Nz2%=wsfyLe@E#SjX*+&2h9WJek)y|7&G6Vhd0XBr;T>y(`zX zI=G+LYofNR$rqD8nj2^qE9%IV%6j@mwxNkd@p0CDhHr{%;2hxwU_eh|4k(x185O-N zs)Wi6_a*OJ-|zm%uFIvL3hV{T$_Dz^Gp!|tz;60m1PyPC4dioVQ*;NVOjIq~4AX60 zm8P?XSI8y{Es4O>Qa0P8wp;Dva(@&p6EjmSIYUy%;|724vSiaSV7vg&13PaYUI z#!#v?t6D1mloRrA=Jmw03Wm)``zQXL(`{(=wF`H z{BF6ei;XU4fbkO!q9jx>uxOd%OLP)26)T3vGZR7~|GDTP;F&6BoMsstzbdgf;hFW6 zNvqqX5>=gbNA#5Dh{QV_4MxE*cp8*LexWy6H?YAmrnFzl^YYhDm1N>m`ZhWHRIRG2 z;oc}EmA*6IsUd`gdMN<1HJS~ku=%TLj_#;x75-HHSeIf*FtD0?*bhF3xh*xo-wAbv zB5GTBu782|hKF(Ot}HE%*bn4&EJ~>y<-F;9cY zs<>29*SnPL2gu=z{Krrq=TqmWP*j|$Sru0;u6NuC^K;WF{TXdvO)s6ztVuYQR6XgZ zrIzvcxM?<>ZL(n;_Lyx#3G`>6Oew9yBx>sY(9L}MXL(+A`)J>JwJ~K(>KenkP`kXI z_Fnl<3p$Zi)=<{a%zBmsd<)ON?mwc3(f+pE8O^f)&QMz8RZkSRm1Rn;`Zp;bI!|Gg z-x4E{G5$``dEhR50=@@KjQ|zayj*+O)st-{|EWEvt`GNM=Wsf#opGh@rv5Q}OiWSc zS*NG}k~uBGrtHp)BW8i$4Q~>s+x}E^4*y;}Fz-s~vsg#GT^yvn!+a{goV)U;&YtU_ z#J4)5aUc#$8HbkTQsSKmAYrY_xIy<)`4P6kOBJ~Gx-rZ4%0jD;z+Kt*vBP9faiQ#! zW{jasX z*Vr^(b48X0)dKSohx`KGRh2Fu51gXOn3`xtv+N(-X$B#GgwF>0doESxlpQVoyPT_9 zSM{`HOn!p>bzzp{Qn-awh>IusOXTQ5{(mECAyc`;bl7&(a?7w-cUgB#e^dINIAb&Y zdF?IjUR{y?gt3n4s>TAQhSNOfCA0i^CJ$I5nLq;63-`I=7lrexF2pXvi?Cd_QRr2~ z2%N+x=xJ>qG^tO7Cy2ugZWsLvm$`X?DWplvznJt;n=< ztSanQ8AsvpKHwY;hnKl@X zSwhpqY6+j>!yB zPNEwHQVY-Ixk~r=+Ay6V2j4vSzU+eCY5!Rfi5k$3>b~+W>_35Op3cF>!d|U0=|SqN z`1`u1vd16+eNbFBhgMG__M?zgf z3xX^C!#!(U=iHRPKY0w?C4;a=;yS7(wNqTDJZ>5pf8G{03V1!_xp)T{gbr3H6x(5t z1tK25FYrp5G1rJ44;HycIj%WJddK;WxF=POF27Sg#?jK-D>P2p5Y`VR`+xC$@SP0h zP$pqCRE#u4i;>@ubkBml6>>P8kI`{l9cYZ~rhEmK0_lZ+ z_-#O2Xa}&K%a@vXk{wpuDx0M2kJ-h&+;eWT$RLHvL`{}zBGQ_b5gKxy_`AAE{Myu4 zi7hnSnH29{&p4))?qKTOtRAUfbUtoxC@$QN=q7Yf54Nq1XAGC%{h`T@_RboyYHE9O zvjkAtk(gLjTt39#gtIF&2Ca6N!ig30HABVzdE_h5^=--&D$K~RG3ezKt0^cKJgy#4x)AhKoT7&G9*o*UW)qv^Hf1p*| z#Ox)Wk-u>>MIJ1L|CTzUXzX9V(gXTxME<4g0xo1c@<{YBLy1XYb@*^>3v*UfA}i2B z*at2G7ejf-FxddvYWNhtfo@CpVP!%t@C*zH?diASBfga$&f6?>Kh}hLOI;(|Mn42b zdm;BR7w%)ijVT+O!oDTJ@DA_a?iap;QJf>edT2}J7crl1Pqk#qc`uYIf2X{vScaxc z8=pR4GiZ{u$InG!_$@z7YE7ME{*;nwvo);p2T&pL=-bCeiMcXL*-!aF))loQN71#? z(==Q*A6W`aVP{dR_&u`q+G5jZ^D_M+v@@~5-P-#v+f0qyswHkR%!Hm(6fu~d0+h)n z;y=_Ro(jEU#{sxvrD2nGihd%zfVmnz<=aT~mMt`ONj{les6I&wQsVuAt1HzBE>ZY3 zdes7Wp)i3-jCG5>VFF;XLMC6u5#jN{b|C}f!#^cx(n}Lto60W40 zZ0+z1?6T00&@Hx&szrjBI9J~r*yW$@Os1C^CZyfS(j-lV)$aABy_`e&_ST+RuQG?H z^)YOTIf~BwoKv6+E>S0>;}ZY&AL?FNyF$QOO0C8I!n5Vgz!_|7Y9%#PvU1)-BQjRL zQg$3X%G{&&bAm*R)T>i9XJo5{0o4Cuqlx#-A)qGu8e1UEcto}~eT5uG_9G2cZRRP5 zh@F7C;yD(is$y8|NNgMRl)cFPeu;c|Ci9P=#R*(AmbhB z?H_DG^#txAN6<{P6>0BFv zZIuhqRAz42>^tSNN{o*YsslP)R>JQS8bP_}b){W-1kD3F^ACh$%2dl+TTROqO(tu1 z9dh5Jn`yQu*GPJyD&f0C?s!zeSA0~~TJ4dHD4oTY?2wo)TE>@Q8bvewytJ#zmUTf+ z@G+Jai{Q!lins*J9f@;UO-iB6k7xPg3*9e~C`gy(k{wp)T^%_@9P3i9J#S)}09I*^-}Jpz~!aH>K{&x|uO8 z(JB8g^3wIw**$;>CpBGd^Ac3%G@RgH#D*~{g)eT5?Wew!wJz9Y3TM0*R}E>B`8jc^kCqrHP^o|dlF-r1p<(Sgww62){K`IOU0j>ok?Q$D~o zhxE#K+C$pc%B!+$xl`^@6e$0d|BEg`&FC!XcWFPj06UBP#y5ep!w>e2t-9{EQ4=-e(`%+xQ;znJ&A*X%z}HEYk=`uRV?4+&38H>`;0@hXGa~hE zdYsvc@Z>sTgiwSpHPz5e2VT+T%vgbjSw$-T09_%RVv__vxDaj!8uHVe|!)4 zI;0e{d5*Xdco!Qgn`JG^OinM8YrPu_`sZDCS@7+tV>7yBeMrLK8D7TKGaAD3t=$v< zGu>9M72B}2;0(=cvye1AVXLf>uTH_V+}}!jlZ$nh#Cw)*_zdoA(CB_sF{koFP%qk) zkMvbKoh+9Jncehrwl>ff)2TAlHRQX1>C8L2K)fO!tIgH+k&ok_My~{Z2~3Hm@yF4h z%E3wqF*D18?K}mZF(GNz1$>9*f~|RxoDppiZ9=sbS0V?I6wt%|K|G91B9?G-;hPGD zI!<+8HVwSTj3pirx0%0%Oz|zNBo9Rfg_}oa#Z+VsvMCuMCrNfjU9d>%=d!^&v0+ps z)+JcxPITULF7`AH4kJrB6Zb1QEwV9uOL}juftJeb=yW(9zK@KNRVuFGn^e#7Hp<(I zPKp7td&qgH6F42%FJ2Xn2~nYgu$lXnsU&uX?*)g(4)ZAx54yq4a9626^%UsD6)|17 ztI%MrKK@%mhPA!np<+BZm}|?90+!*m%^3+=t6G&UrPsPsFcoEAz!%Zc(0=hdeJnDX zXeCUAAlM~LAY7s1$b32-D>235XvG-eA#ox)LE`zQrTm#*W=X>s_6+|IlBhXuUSS@u zdM&OXe~m?Bo5}usZS1rB3S2H!<37`FR&uC=FQ_e2_i={b%17j8Rh8 z_D_}4L1&p-ijD@I-j2SGmAV^y)`mus?S!eAluwX1$8^|la;NeHo~n?NkK9OV54#^~ zD)GlWs#dCQ@~O};iGt&eN!A=<0(pfD5I@Kd>~QcH(h8cv{UC_oFWzk5*T@R4HPS=w zmyMUi7xBU@E`e{tpXF}xv{(p!fIlN|p#<>)SI7+jK=dg(8T^f9qdSAH;DtzL^hJ1L zXn1hE^!`67b~t)6GB@CEHvI!_2gPep+KG#`02+J@Hv~J44b}DUp7`)@C2mF|tXtZRkMk2&lyC$n&|Sv3~R}tdlu0wQk~c#f(@* z=%G+s6R{>He@uL4$M+S|nSNlC95V6Nrq^(qI9hQr%8*WE-+Y z)1O4|${~(uh(deY7;8w?7sbW(bP6{a4QQY0ZNLLZZb5l|uky>>XIt;A#_6PSH#M505&!p_)FzJ?Fj%;Edg^Rtjd{yDg^m?!i8-`WF%b*(I4loP3hGwG)&=odUa=avh zsBD<>y8I&Wjk-?cN`somLS5#6kw9pCBs+RD@;unfbJGDir?}R*-+Hcj-}!C?4h5~j z>46IW@ZhhpX^e%p@^_fI)MWZNp91&63Xs82Yq%YjBL9Gypz6W`V3>TccCfaa>=N4{ z;t1bhTA<&Q#j@o>o#;KkJAlOAGNpVLKbs41Lz$DYAJK;NJaH*95sOE^Kq2^qa*N?` zT+m?Cw3IplP0?+#*_yHDNr}S}e>15R?ZtUi8}c*rMqGu(s~@Qvzq4VL~XgG@)sgyO}ya|-sj)Nt*DR_Ux|BJ|FkROBgfO1s3G`d4Y~ z)ABS79q=kdH#j2o&FI-1^YWV5pK@sL_vQCm)8ON32F{f zT~(kAfPYX2!XqQgnQ^d2*-pJowdemRI?L#`k+uzsWu_!f;-q0H)0UZ;nVH_wmQ!Zh zGQ)0}nQ@C-#w~5zK*QuXM#-{R`sO?R-*X&WqnUZ``?@qHtPr}cPJ^P5Md-g+Yl0+Z zp}(nv`Kxpq^_rO_F-SeUFLZ!Oa@8t{FFWs^NuyjH?lE=Db*toN@dj`&v`7#@TW~cq z&trDpbl&tW7M5d0+OC>#=vinE^_&g>hD{f3P~T7+LO;l3`4#*e`5Zb&+f$o{{wIe^ zO{5ocC$*W{TqzO(-IJdsXF~BvZ$R3*BMC|+JPPh9Z(*-64V1}-vhZ&aknIE6QuswL z7Fy`y9rqKRRsOd82mT(vvA5uH`ZhKKoIJXqSTNJGm8v36h3X-j5lQXCPoX$pV&EaA zgsww>>&~0T7%yorqyK^|HzRe>_66yae3$pC9)OPR!`SnGzyA>XG1NZwel}6I%Hy+F*`x4 z^Bw;ikFyg4KU~wxuQ>;L-UgP?v2;BOqcZ6~Lf66WqD|-!Gm~ix7*5?odxVba7s#Z3 zmwuBNalX)zj{tX7vd~|SLEdAZP%ZKqTCOTeFK7mEdM2Y8kWIBi0d=_otDC`{&n6@f zikF{@^~Jv2ME1Bi0r{x;UB7`WQ*U#vgA#Dn`^W;588Gh(Y)>_ZlzHqt_AL}|njevC z=|%R(SL;?8d+R@=(cC6KPjwV8VR!WhjhjpdEm^t^YD_dBC9Ivq*M8@;AnHj;0)KVYH9?}yrrO~XR7vIcTt?Yy6 zDE&k#*9ENuEq(M8pl|eI?;XD)4mPIPfiK$<(DiVhUPaS7MX!nBWe-_`cCFahI~U%XM%QfADLbLozxHM5GiTbcTws zI)>$zUe+7o+UR`|&oo{6EZ;C{qZq;QZc2J*RsM4jy04R%{1f zN&f{n2nXN`y6Es$)&M$%=~ebKZ*65Q>`T<+#Kuuu;F-Q$=VaevL}x3oKG*IB`2^uj!ubUB#}=GhWsA)>_F^SQDJWQ?Xab ze5kc}g6k|sfZufr`HcJ|`d2nZ|XJYrwSy5A57jUcn@rmL`ZPbCVi5D9t%m@ZSxdhE`e+ z#s8f)Bz1Z;Z*rYrccOk*|Vj z2{$)1LqJt*e6RmIYQZ_RL6|^9P?d0gG_>I!I$7? zcz@!vyoswJeByQDNZ5l*y5`o#`b7S4ZI`{bUKt5G)ft0k=AToW|Gt|!K(EB&}KEHt#5p%t%cax zB>@X?>nu}RBU{ijfHJ=TqVdC(uu0)ZySB;fxXk!GN$_TiPa1Rzt!j zK%+jRP9d%v8(MnkhoB$DeO!UG8ofuZ)ITvyC0*)B!NbgFzJjM~2(}ihp_YfHQFWvuGFn_3T;!eP+U#6XG2LC}i=%c21_A5MVVAq2)H5vj2e*kY;EuDa*>(ID ziB%N!n>ru-JExYZ|Eg=%C+bY~r}T&)&mR{v<#eT|)QMjiDq^CzmAn|b6HH`vVuAEp zUL@ZaR&wKnaOf8Co9=?9J2noq76y`2t*!0N!*1w5p;KXm+-wr9PD^z?jEoTlDCGdxTGmOLhZW2Ukdpt->Sid+lB3f(ty33^k0toGE^vt?Un=-xn6 zl&^ra*OGjMJCSo34+v-*p&mk*yclUjTt!9;KSYbBwq>hnCf<`Z`FC=4@p+mwELmNp zj6z4@z2wV*Qg;_h3pKX<=2#lt(ee$uC@tcagQ-tj{atGvLu2(jcOR*1|B|vR)f>J_ zXz3d3O;H+}sz!E*Xl`1onT;%${u1_z?SbbH(Oe-m!B?c$V4d4Q^`^#gLzHd^Ol~FL z0ejBE(4gS{P=Y)PSw^lhRx@Ve(P|T+6-O!!$SQhX+Yaw6yV!8<9a!rIknJ_+5L|ps z1wGb44mSwujxWM6^Y2u!=QhP^Cok_W2m)F<*jv7J~ZQR-^UrCF@IsBvJKU`M}6 zFv71i$Bg}q)yU>@Qm~P)+*^$r8d}c9ak&f|pgr3F6Ffv$&{{;0XCIA=98)zb@V{dXp*&J?+dI!~_ z|EX`qbu3KJ5A@@5Fw!)@QqS0s=%ifWF0dV>DAY>s*A!|OYC^~%8BCz0D8NChhfl(O zDHqsgl;m4Q)f5H*7F9odJ=Bz2ADHJ~Lp^4Ci+kY7cx@sAYXUuzEy^?X8T3a%-{eoOP=%4zDCzXP6EG+d*Ov42ccR00u^gd{udtL7Sycp?d43=U}9gv)4Z0WO? zmitNxHcm-h5_8P-1=%A^R`2O4YeVZp{TsLicgf$%6>xdzGtyCzysn8)6EeKka;jA8 zA%zXNO@CTv#-GR+gq3nWB9iF_#Z+YKr3;}tV9~q_jNi>nv`w{4*VK@f2LhGzJ@1)R z^e}RO%cdaH^|g&Y^b2*OC@MQYb4l*;@>3MVeGhG-CV_VEb59HZOX_=Y zQm8Iq<~>y|zzRBoC?@|TH{zXN9)J5rnoia9vJnI-{^CCR5liq?AKBbr?rZS&@Pl_Nj_p&xXDovo@qR< z{f@<>y|kSyY1a9M{qXg`#NsA7a`s;(SwTCN3eKh>^1qP1d{O?40%OI`P$t&g+%5cb z*d_B(-3+1-eT;4)X6j}e&KUgq>Du+gD&n9v*J!t#(6@(r(Z4F8>|Mh#X5fHfi@ z>zE?A${7S!HAMy#u6cS>g&d4l4E*eRc;B7Dw{sfH!w?(bP+r|{cJ#maPBk*17 zL;3FFxbhzXK`qs3jXRJ*-rw@NWUtQdnbWzL@MQ<5fs=4SAj7xbJK9?x>{Z(dIyDS_ z4kqAUGRs&DOsZXUO_4(qCpnN8q*+Ii2hmaLB=JaSwSPe6zm+GbTl_F#EL~V}rSxKj zE-;^Y5$q6H?t4j97lP1W^d6!|58`XJ-@v#0)!N5;)6&TLDQs|LI_N#F38Rhw>Jo+|&Xc;x;mz*=(^Sh|Q@Sn{^@(N7P)Z2BhDKp~k#%s1c+E2- ze}7iTEGp+k<#bJ9tT|;)T8rpS!s5acnS+WiVpx(ZbzAbM#46zpbhPzJR0BI@+hLfC zrQ_>Cx1}JwPi)gjy(S}6zhq-parUMBkL4ejba|qX!fUzsK-bDS6-}Ltt24b+hBfcZ zdRw$@vbE6Ez@)KsvasepmZzq!V5VFEtOdPIjm-0mUp3jvdWv<0$`hR(y|Y5&cn@n0 zZuazb9xHEFaij91cVwV>a5Z;cLLdj)9XAmMVh@Od`2gN6I-{y zE7#l-cfp3DOy?u2jr@4mC^uy3TvPMk1$YHh%VLziXV(Z85h^%S5X6|M> zXXGs3!eLuW?L4Tqc$)9aH3&ZP@AroX<^=Zor?`t;r~KpC{-QP5hijrG_Q+jT~t3;S#1p#sX$i)u>GCCv6S+g*z1_2``rD z%dUH=P_a6OutR13Qzcn>Pl`Y?(D*3MnkJ=gk5S2HY(cO;5{jsm{4VuYV!zl9(Fu`% zhTXMJwSF?>A$g(Q?vjdR-9&R->SB>0)rYXM2U}{86#E z@&x#edpR&{j`yydf%L|{#_$lZady`8cFcbF$cjEj2W7!)(okq-8qPa|BWUib?k zl|k5};sbR&GDK||y6)~yH9>(*(uj!cS8^4X$!oFM&EYtWB*&Gy?hPZ zs+(cnWqD|b&|TN}06V^AhEv)NLr>1!D*;QkSYiLO!BSd0jb-o?l1+NrtH+>Z1r~B z;x?|knuqPc(co&gO7K)wOIsAR7Dd`~FLR*4Y%OeU;6pwQk za<$P?q!HJ{^)tVAo~f)46|I~kUT9-9IpM`sKg`AbSJBnJmRtM&WX7Y{rSY}8dk}3~9 zl_T*hx{ZdK2A5%sX}&4nSZ0``TSqpKH@7sGHA;>)NU=DO|7FWcqZ z=eGM=_}d0L1s?l1_nC97k?n1)rrA&&hrH$3kxfBRP&%fD?yyC!L#5DavJ&ot%O(UK1ATr zuIRl9L(+aGO^v!@{$VM0=#o37tVw(vz07jTYK!8`_4$n@{eKNDdBwFb<;G?^p1?~> zYvzp1zMs3q+X;C?4nY1CPf64CM`NUTs!CY&EYmb}gh(@mQV$!IRG!j5)t1)U?qORO z{mLyXp6j=(TXdJLb1grR|Gb;?9{xO@U8gwU&I2vcJpTnR61c?XL4RpMV%}1wam$Cf zzl5jI3uCvqC28B!e@}Z6U5uOw)&kw1i^NRxRbv{lUVa!X^*!}<^VbKzK-zuIiI+qd zRut8$91}7qS}0CA&A$xFfu{jFSWj-OJsUAR?p%C*hc@iCsfzif?M=AbS_J$XHaG>! zf%>Sa;!kF_?}&3v(d4{yd54RX(lO<@vwit*rHe`mOP4yUcw*?R&{i&1dJT*OEH+<* z8%7!ox_#QmhL#qC?YXVe`pQ&Kn}CdyyUFv^H24H`UHTSE@vm_HD8@^7mN#&=tuR%t ztn6Mn(%sNI#8=aQmHNWgQvO7Lk|p|$<_or=_KVR+9aW=q?04;K^yb)FF}EVK!){vs zGxsou^z-oFg{tm^l7#X-m9Hummc1<}{CC7xQo!>gzfaDcoDLN{cFjI3;=JXknX+!Q zKebN}D+sF>86TUOG&Z$sa-ZaxsZ#2m(SoS2I(*3 zJL3n+T4lR){wY4}8_C?EOaUKwubuUNsjRFBR9tkQ50o)3b^-@T+sY_i&4^b~*CS=y zS3{9jr#r4cX_{oc5PmJXQA|5KZL$#eg?3a!|K7l=;0d-KJB7~ib#~8pUN28}-30E^ z^PZ0tuF`|$`vO;>&-y8b9rz?ALtL+R)Vi&Xh*}ZnBXT1rI&MeJwrX`z#3*bU7KJNF zZ%fqVjPDkjN)h$?f|x6Reqx!5_xX)2#m*08KY z`6t&c&n{1Ycf7lk?;x9u{H;wktkU6{&6=0SNc;M@70Eplzec;mv+V1uaLHJ5yU3&9 zGj|oLVyg^Cfg|rnS+9btrI);i{6Acdl4}Le3zJJKCGwXYPjHD{6vdo;fZj_z^!9SzD3x7CdICF#`^j|mE^_X5-KT0R7VRvSA7An?o|N1-5pqXtH~SCmdF+*{bv z`8U%9v5}LBV&sy%TIeGlRf^Cb+JmM)!?L3W0xEh<&L5HcXTjXE_7$@#VqL&DUtuV}TeiSeKd_&@Dy$Ia$|m>&7O6R;djV|8 zPc-kfH;pGOeJ-4>7@yCF_Uw6R)ehZ%%hk-=`&OBBt)Z&3p-_-a+rLD z*+pzbJ4&But1G+gxpPop7W_B)Q0D0Wd<{JX)Fz~=ZCLE}_!5U5>>c}pDcEJysxP;2 z5xG${?2k=diKpOO$lyHuDCwfSTsTi3^~ed1q(UsB`ff8tt z{=Tt~?jc&BzJzr+qUmRdu-psV8f~oNi&}5mhFlV5rIogiEh{|ET!O|66Pc6LL0`Z_ z_|mEF^d-;XV)WOiYz?4`#PCnWG2Cu{O2yUk$CYt(rSt-CrE9F;udAua$7tje91f4h zWc?u93tOBa30W*%k&nXJAWL7L8yINe&!_%nj)TdXK5#8ql|2-gQMM(2P7&m8#RmzO z{v`H4@d?*ZTnD`-1Ex6<=`j!E;uBWHn_}+T>gw&95yX20+(<$f;8)05xWDw0Uf{Y| zbUtr({)AG|XA~kOJUGR9rT7hKx34Aa;LTlNh$q*QWAs(6HynMEd#24un~;1y3fI}t z-MSBs^=X>a9D6*<({ugp*}m#MwKYE{aIHcvS?K&4Xe}HT7t^`!4#DMsKdn;l zNjlSVPNjPApK!(&7L^i?5I_?#7^%0D>Qcqa#t61GS+0grsT{-hDpWon=@BX;kmTFxp5)&urlC&gB0qvk^0f8P^hh}m6Saqo z3ydeo3^h^k0e@2r`X}*`>_!&jH}Sb((zgi9g3hZ^YJ`G9CFC;e$Z*9JqiK$ARc?xH zz=`>nc!0ajE$5fA%fbH&yX5i&@ILsx^11g@;1Fw2PC%#%$>Zb=N|za~8{?awN+^vPVgdtUIKIX|Uc`rx#pxW3xSqEqRM2MqNh zo`p@YQd+*e*HL$BD9+QAK6f^rPj1X@st>K#>k#A8NO9Qw8R84npXYI-~=A`^q=_sw?UIZl9(2CaX ziT)l;N3j*O1^!K~Cf*382RDaKf_Kgw$d3L7{B_yTGkl%4NK*?R3)Pc;2!tY_eqt-S zP~O8g=gzTn*mZ1Ws3vnUxRslxOjSwI%rBRxqo;A;WkR|mE6CB7v-aHZLxv!Jm-wP< zsQZqC6qY7SGaLH_oHye_g}z7bF!#=i=rY*(#6OAc6a3{F<$V#X3)YUd;vNB3N{HWW zWl@bHZkP$%GW*l;nU)ro)e#w0J|vw=xDp;hy72p;5r%r4DG7r4jbQLZ`$;v!(mu9T_^r^Xys|8JW}l)gbZ`9CWKC*r)IZez?8n*n zf7psp{RYryf0eYu@j^aTwxpPKSBGauVu`h5ADTX@3&E{u9KPOiKWb*AN4tz^R&wXp z*utvRpX8+oDWY6EhSisy%&C`ipkzB;9l5E~=vt%w#Ye#k>NLAo?M+4j7GEzw$YO*) z#OJV0*W1#;cH8&>MfvE!pWdHTq<9laCf>NezxFNj?V#qcnbHWz3C;qOm{-gW zaRWM&yoaZv(Id3O6(^6MZ4hfRN3>*+JFx5NZfMcAWo zTUfGHZRbA@Y@DY)%>{aR>-r}6>-pmROZ=q!PQ`lvdi9KL zP{QT7XVz`_66i5rC#-jsdvRCeJ|`YbU7gZDvJHxh4-v1SS=g5FxrP&pAz0)&SUJGg zE7V^wb8G$UD%v~mRMw|ZxtVs4(Sbdn*H^Zn{(_fU|A-kA%^L`8u_iO@e)Pkr5%##S zYv%i=_QtCE#iljk9U}i1IoP@d`yd~Obl7veKRT2hSr(nOEbE$Yyt#JrvgGr|*_B^1 zw`FB!jV@Rxyb1pmOE|2yE!YCi#OxN9;FB$z?E50hO`WtIbWP2bVQV9AMV_}k&<%%A zur;Xa)bL;mKNgyS4Mh%#_xu-14&>I$BT9|FdF)28+IL~|m@`aguA?GiPVF&$F=>E~ z3$aoiEXNE-B}Rh1owfx+$sqbK50k&BqtV9LVC1V@$=;)P``3FKd)E6F16!1f8N>a< zoeWu-JM1~B6Zl>aDvgy#iU=oZT9}$y>w>$F>-r7EerTlFj&C4dR?9Ji#*WXE8qpiv zF6TASPpj$rtD!`%|>)T5+LpY z_Q@sF7d=mY#TH`&@J!^sI4W2~U1XO?U!}eL-5}$;;4%8%QI8m$75Q=MF+lK6Q6l9S z(3VcozBHK3&5c&wCEY>ea?=~&%hQ=MbydhG_)_52sE+l-%GGnig3wpL!PCz_Ep&`) z#LeY6c2e-5H&ppopr%-;HiaePzU3s~gzPa;csn$nNH_nAnjU*I`mgZ8w$g|;(VrsT zn`)DN6|GnYePpQ6MMKqqfB1K`t^7Z_+|$qp`D^rz(R2}m|z9@5B~VdJnuBIqt+B=iH?l<1d_*(^~?2bEONxQ=)W9KqTbr> zYu~_M6p#87?u*8vvlN`U3jC~x3Z@h;D6Qs>qVCXZ1M@t7XGPh;if=v>*9vNZHAbt# zAE28^7O_Hq(p(TW!@eoJuNl@gApx*W_t=uj8Xos?wuNr>b| z35UcAely59kjx4CxNlcwrE^UAb>~s<4Q4dgHDnCdVxDn=cw26v%#jC67Ld3&raxhB zZYt26LEYE@%x7;U%>(U=$w_AvVNBu|K)#VsklO z-mSbw+h_%yjhvw5hq{II@+9p>d#>YeTR6eU?IcW@4rQW^wTDbctp8ZN+BHg7P~nc2 zOOU?Ac+ESlL>>W?(tV7LTMex?w~St3%~NB86DcoSfYpv_nc6A#5ITr%8LSimgOD027|GY-_n;H z1pT3`#>&mVq8(M5L@fnQivN5wUA_J9qzA+`?E&C&hx|K=H|A|AJmz`~`uBC=ReX-; zMcJl``ZTJvA?AW?!9ZoNm@H=?Z#1`!i>=>nCFWkbtyoLwnW{rulY?}Nbw`NBFsxh` z_wmJSZfIO6#N;#ELNh}hgFUGrwFIO%n{pGm46YxW#oP~Ac?c|_2ZQZ9ja z%M38JXVv=XcaY!v5AFzkm4`@!r93GDSRn4AJZK;sM=r`+xD(7}wy8Q>6J>m*T?8Kz z5`}p9fetr6)33#MLT%OkNGCE~^AI}+yU{e=F8zCCGV{sf4p@|~8csK#I4W|!uAXB0 zjr4+eXr5$J;j1AwI7qqyW>2DS3%NvFZ19^`+uB$rYHyjV zFYWOhq}r>GjXfeu>|agW@gil7Od|#ZAJ!o9c37-F8*;LXgFLHKa*=5KB^nF;Cv>EI z&U+=_%D4J=3qRDGa(XDn)5v+X@+y-6r4hNrZSO8kTV!n^2y zx6O>Y84<3pg0&;^43{kf4bPFgAQ`?#xq&324p9lT@_(d5>=^zML-}^Q+q<9p5Az?O zu2^UM9t1jWL0Rl>cn>C)2g9o4*C4(Aag3OFFY==1DuQX(hgWyJxA(C{12c?EZt1nU z!kHX`vK3lhz&ismo{V6cv_h=SoDLL%GulHbh*TvS<84XW(8FeqzFMVO^ma=l&A;#o z%@GHcJSfGTM1{|iZ~DBR{=x0=X?<187}IoNT|wvU{=dZRf=aLPM0|OeiMyIF|9q2^ zRq~FDv<9oZuTneQh2@K{m64hS5xT_vNx9MA3~6vjX_;C?R#?|ZE(&Wvde~N#TT0#) z4K7XhpzQx=SnF~BxW5&S{bk9&<=jojii)yF?Je&Y-Uv0+TzsqHxz%OcW-@8oU~6!P zp>6~mb13?gbtSo3eJwqbPXX)gHEFw4C`R%-nZ=aX8}GjA7QG{VeY{<~2YsyqT;Pp= ztT)0_-}ivIs?5Q=kk{~Xr*ux^vjUo0p=QaTlgS8 z1@yz${AZ?u>L2*S-ypD!ZU8KmGsGx$Cv;YR!Vw_lktnu-#}oC)N9Yr%6I!8dWZG=3 zrcDQ?>rd)3%@{LdZm)ZR98ey~G+LT%WNzrkoYTk6aDgHeEMycu=s`{nf&H>afuEt-MfTf|n93CT# z0;!7(ae>+z&HxNXTx!9cq7vLU%WIeCRHXRqp-W1&Qw2 zxTM_0GIh<_$eg(GAqLyNF8k^3Uv7;wZc zb^@G@$AFmt#rKXnOI{9+D*c{ANi*-)4#i4f7urYPIBb`_lRYfVU^sy7hMoX3UIw%dISG%K*E8KgmS(DZ zg5OVXWp)SO`46~ulngCM&yOoP?tRO5LPFRh$SzzAI;clMTKE%A(RMJ;H2=~a!u_xT zHXyaon%EN*fh^(>zD&$iHOLKUviO>Q?m6ym>kFs;e>JeM72IpS5$mO1_@_}cTT^jC zy+Ix;5_?Vb&^FLM2G8Y5?RLW_!!XTv><+onu*xt=yIFHeV<2mjg&IF#rYh`p&<_!z zJ#rx{)6W7#RTQR_ivaMio*8HqnWs-Jka;>WEG*kw%=F+@oSouD(gddL7{ zTEqZ*j*5WznB^D(6YL}2P=puO!7tc=N z_VG7_PLf?-A$L~)f~UiWWe>ZOs_7f;n?s!qrHl801F0{34c?^kd^@^@|F2*bb)eoF z-Y-1WuobzaY=c%KBjGO41teC3n%Y~I89HIHf|*WX#>-c+x7ta%o@j-T#J`Yg!O?Ih zVQDZFdLsXg#*r=YlhA6_0XgJl?8D$zK_>my9+obIpC3-02(3j2nT7DSRs}u8u)Zqn zd~!kf@$i1ep5zJackmp*z@7Ua_mONFwkTq>xh*kQoh5D*+A0sxS{l}v8y;gHYy1vH zOEpl=d^qN8d_(&-bV2Z~Kb=d#ov$thiv|EaiTU@Cgr+{kzzun;5Y zAJmG_DA464fk$*U*G*ZEM51FcyXJ-df>CQ2N&KcR;Nw9jA(e8NBYRsgL^y`z#};YZKwHy#mk*pkYE=EgSW|@;A`q2pN@Ako;Ke# zT*U7xDnBF6&m8oap@czi>Ib zD9}BmLN~~8(0AH`f!3(e}yJRMaJdW&Zseg zFaD15Y29P>( z5o0wma;|t3?W}KS{?|IorZfG-T1(Z1+KPz$MzZ=J20vDheOF;Ex>fShzgH1jJNF;tqw?X%4IOH@4W`py!fzSIAcPPJ5=TD(Yr916#K%iV znUf$n?F+tTZiI5!pX{`dFW8yBMWLa+;&1A5m6SEY8UBGdOBsx8ARFn=>7Qs{6D!d7 z&{(J?Iszo*0O?(qLS8~XDJ!LIQjV<3P30=mN`6>qAmH8fq{lPW*^b;^-o-}&lFOw~ zb6V@0=V=i*#=TKXuu()3I!^Az9Rri0Zfuy)P5B#iCpLmRny<<%k>heg+nE-jLVl_G z3SEyKMruIQlowJ*em4EaEBK1pAqb~o$f0HZ+A;g~tOoTODYFngaVFPMR$=lMpono{NvrUDW5}ljU22Nr92A*n4z|GFF@i zFEr?EiG~8@H|7D|j(dk(HI6qJp?{ecRC9)a*6CHlR+J8X2`uDFK}Tberirn)aUr&l zdq&5Ji^bcw*n_kywV=NV@h)@id>>#ym+K6SEb$ z>pYnq$c`_s6b2bp`?<&#wkz64P^qv{jE2ABC4`F4#8=~!@JG0j+(~XE)?$kxLa0x# z_OAD?rEl|%6fYDFW(ZsO-N7_}C$HTf#jKMsu-a-!1-Yg4l<%oC(VO@xV2qpq-$VW+ z{?hpk8w{(po$&?mX62Fi55G>BB3FY>!YiQVQfF=2p(YdyJjzzoCX-xxD2o{%TE#C@^vF}>C;SK+pt=E_p^xa7Q{k@INgPKQ`(VIS%U~KLU;ug`N%J^ov>6Mj%>kq;g>N7mV^qR6P^w2 z6)%Ew=23n&8b@qJ-Y5AYoWCU?Mb8A1bW+ z9jQvz(LV&f_+N%xogbL)rkS>z=II*|&)_>ss{C3`RCQ{kT$PUqj`Yv=a_;}Rr-55v zo?6VF73KnHArpx47P{TuUBOi8FXSlUC5I3@kZ45^T8Jj)5%eCJi!H$lkVJT!8m`oo zNqMfC`CM>{tsR&_W~}OR)H_f7~#AGbXH2FdP2>E=b{Ut=0ZPqsnms> zYyQ_H5j~aj!avFo;)f<1aG1ua&#`iH1-=|wCO1>g!E^8gVis~u%}06@F^EU_ETqBb z@qxrxGM1dKE(~r8jAR=t9kJuOM<923hX2EV#m5EjN`pZzYJsH!ug`ImiRHvCiU%F1 zCk?0ZZE$PYpxzfAb3y4Lfdanz@5b9`&Co&rTd+=z1|}g?e_dN2P=fkO|0;dqmSmyj zw*7JVYC~`MPrj}Ao;YLAh({dz4L<=jD-pBn;|=%7{qRb8C$iK$)IPw{2+e0YduRI= zGhWf6B7)hUQQ6;HPG^V|Hc_wFje|#q^1ThbkAj`xKg^G!7Dpcon+fjsyGq&8RCpq} z&)_u~j0J$Ex>4G}KjB*lqqyVXX{7_L=^pKqzoJX63X^b;8K)9m*!j=&a(Z@<%VKH}|pCX=+-pbFEdhlT|>szNe zPn?G93P3o-{;n*?$AJ^!dTf{aOdg|tP*QnCP z>RE6B-&dNc99LDvs?=7h!@V_!O>a%Kt~EXqOc83~e;5Vh8QluqdgC>dum8y2U>ifzbjK|>ti#R2^*T*k%>~0~ z+x@WbhOZF8E@0A>r}}5%mA2n8#21}^Fbn=Qw&D!bJDiB=7Ty;wcTLTEm*2W_rr20J z*0Rca!k9=dL9$>EYA28D5{*9n7h*2xMW-qc)C=fAQY4Mo5gD{ye7D>iz0Uy&TvQ$K zC?%FX=I!fR+ZAK@`ANhk~Yq&r8QQy+oPQRDjfn}kQM49%O;jLk@ZaI+& zET?W^rZ7QFmlDNS>?3+x;B^3^|D_XyZJGOQ4D`XL*TD(Ggg9(++Fm9`?y#)tIWCHWn?5A-tTAv5`L0n)4WPY(Iz zTgZE4qC)aRxjNEMMOF%wY`L2>OKuN`14~sD_J>+u9ggaWkJ#T(bCCqS-JMWJvOw2S zyB2Gr))WfaRM6r30mW*k8#e=oR6{gV(#qlZK>aGM1N~e1CZCo!s7XY7gGrx?mT83(j#{*nR)k(p7**b#(2S ztLq!XAryBBP_#G{ibH8}r$Eu-l;RX=p-5?QFK)%PNO3J*ToNoolJ(tdGymJ~`MFQX z?q=`E(YZ6{yeC#%XZjPpvGy=>J9IkOI&?jeIQvYyCqWCiWFF z#B`;Cy@aELV;_)#)=TkH8F4MGPsRgR!o#MTJ@hNl)1h90u>VA$S@1#73hj$1+GL}@ zS=T78m5AQMs&6hT$i$3;>(G=#lIJ*KhY(86#f zZ60zk>tY6jNMo{;hpn1MX|0Y{3TFm=v~$>p{!@qoIqd*H&#NNV^o)65Z(!adF{zu} zSF9%F!8#|XuhRPHWmz8SOZAX!(5Y;{`M^5I%Me13ianH|vQ=`@Bjk?s!WIO=acS|g z^^?^{_)RV4Xlj3{IOLZ^(AosMg!bwKh3!gM>P4;5`=7_IjY8AisS^Y`VR+F zqi4)Pyb(2B}b+kD#?rImD3d?t1T z>c}kp#{a9>YYH>^6wi%7drQ^a_djrETWi;alQ)^-|8th4M-cGk4( z8BtfXXl$6ZsMJs0X<9?CL zKgxDst*dnyet7l7G0y-dj)1>c(%e9?>iM zX1Y~ACA2mDzz%3*z8A;Zhufb>zq28Fe&ZRhpd53YbSwc<Tg=LlIpLMsD?UKlfy}jE*a(s%Y^2?ce8>SUCZCDFk@vIs zc9o<~f);`J#9tw^+y=4X9{w_Jw@EAn!^hioAn92t@6t8h3l%rr&JS%2tDMZ_L_(yTP@!(%ZBF$ zmW6*Y>xo~;Pw4}_Qm|Rh(d<~l1M&Q6Om&pqnCgNGR0~qjFQ{S$-*G^0q1~!L`9%A{ixN_ zJ6kPiU+I{1iqtl)#NKKSvomwjr$S5dyhPO+il0i>UTq-ii@Y$Myu4Ty6=ifelkC+C zhVujmM872;)P1)8;x02AXNG;rZRM$bnmU@Ew07~@Qnu}u`$=57w}vwlD3x{fVOAUY zo$GJ+RrO!;&Zw(>)J7OJ^=kNkEo(tf&?Kv0baAwdH5zNf_0B}481KbKC}ZQd<*Sg_+_J1zgwVTbH6G`GR{MQf{#pKvVq)=LMP4R!wmF2J$cwgfJwk3RTQqtvt{%_sC%T7ZnK)2(P&S9O4bZuA^5Y? z{GG#7fx1yPT+3evm_Unt8>9Jo0qJLXkF-{pMvn7S{0u)x1TkIiYCC9aqBIeDv4ZC3 z$b7%Z7O<1n5=&tn5s&;u>_+%>aCvZM==0FT(2S^HKI5}#17roP*Qc=3!d>BK;UiGF znyDR?&!jBs<4=)sSy7_4WLr(SD_v+^F>*}@TV-C;o0)lO0z7OB@~g2uS~dJIBC+X8 zy8WVBP3|H$SN2O+31jg>C3TGRkvqY;QwRbla)L6$c1w;@g_kwkYMNGq9py#YGd=@W z?1Gi7*U&exb5bcsH*cNze9oRiExJOj=NXz{&$BYAhj+4Vs?x^UKJJC*E87r^<`l1{ zRB3wORvlZ!Q||}vr7fbYHoIuWU{1~*S9*eZ+d)2Kb&_K zVkM;Nid`;D#~H(;A7aNy5$CpqZAq`=_qzJocB-WvHQcQ{n)8aXfwtf$aVmC==8|64 zl;~A|)0~#sM{-&QZbWJW&FFe;cW7_!_$;JyWYzKSh~3~3v5xebzCbKzf8eE@*IHS5 z#KJ&k+~sO&t0@NfIcu+RPKSl(#l`RCF-l8$B5iNJk7k4}1nLE9hT9ocXlHR8&1N>X z*!tJ3Wd5Zu(z=^B#Zk`Nu7R>_=F#JLSFx^mo#!zHa~D~t9I#cE&+v5X81`XK0by?g z`+=_%d_oTIZ;drIvn_9c=ldNTQP!eEJ%}oR&!T>Fi|u)QNphu37MTr!LExan_$gzR(U!Z!^U5bqpR=>_gcl<7mHMulp7vhT zd(<^k*(81=zf;c1qLeM(m)ok9m1p8B@`te|(lKm{OpSaN{UP=e2ro~8?pRzG%yPzH z#9(jIxOG~*r=GK&Q))`zi+*v5^inZF zuBVifZwLjs-B=tO9n-XI!((kTm+Jka-9r-t7GiI=29E@f1g`tX2Hu29#2Oj1t%~fb znXPSt-z%=4w}uK=mE!g$_EPF{VXxJ~EJz9{$ceP)szGJ5yc}!rj(Q;Mj4rVHNF9|6 zg5OM!{t&JgO*dY#GuCB&vo_7#M*B-=gxV|=I~{p|Jidy;G_joclkkaUGp*|RcI}JCC$XiQ8_->D5Te8?S#>E8c7C1=5@hG z=aLxRgxbPxaSC~2X6e<5>}VW6JYH}tCMiY>J=aQ?54h6YE=Q8olg<#A%jK0C$~!t; zA0A`oCc%*R$n%6FyeDrWtVIlB6=QMuVOT;v>B7=l>7lqze2aP#&8#9?)tJ-FqAoSX zG19RZcs{RZD*Z<{!xt=VIHf4`A)y5 z-O)Q(&-e;D4Y+i>q^MM0x(!s(R-`E@Nwb7Zsl0Mn8Hly<5&GOp(5i&bhK|Ng^1bpR z<%uv1DB$s-fx!pi#`*&mB$UtAB7ugv?|cU$ZLK-<0R5Sj)MrFWhJOGCVsW-#SR=QQ z%LzwVGpj#)KtCvt919$^lpjdUc%@IovyMw@Ej#5TAe)Zh4^bmIJGRD1VbA&ZbhEGv zHMBb-ie#1kmD$6b5}Ox3jXfzYIFxuPmHG8WdI|HsdB-Xylu;e_O2GJxLw(-u><4;N z9pyNpY^Ejo6807KtA99qspt6zu=IY{Mztvp=*y zkT&p^$YLKMbQ9(xhrR;&UCfm4;rU^P_^q&A7$6;yD~c(=8G6Smkh)Su^{{k+$gG+X z(qywLPo?qVbGnR_CmB{zy)2@BzBi|n=RyJTHeJe-5jj`}`$T)pM3zkZi@kue^bdW@ zuUjLns_YEA&7QKGyg6-2U-Is}J7T$ZQ9o%wMv&Unpz*?wz0@zH?$*@s3f~-GV%TkdLO;+8e2=+S zOF*TvilK(#!?9eejaXR8mU8GE#6tP#AM`D>`V>zkqU2LD)pzO|HLo&CoIzXAZ)ggs z4hjb3_O^hsRcLG^1lDEk&sy(~#ELN;IOoHxQqkc-C3rBnF}z=U$(l&{?ORZXZimuI z{8e15xbQ5W?kNK+Rugq^fiPi>CwJtB@;QQ9Tk7w1{ zeCwmJ&vcWm!VU5aYbH%;=ZGp}q{i}gWu_Wb?Y1wKK0*rpP5u+OW5?+ta)+dnQY4G* zvd$X6>%i|e-NtcE)Z6PBdShd`{!y=I&NP2EOIUlXf&5$HQz=zk3Cp)us4P~5R__sY zDM=3D(|_nXBGb3@M>?JNWTnUs;f1iDOthBiMYIB17x?uB)?aKleJb^rj0h&Q_@3{fpJ4yb;+M!^_PIVY5(SQ@ zCs;Q$JsL1GXg+DOIE>!lZFwC&pZ`Rb(3lXDhuRN2fd}IWx*pkA$T_4CtIgMnOpV!^ zDi)n*4h=WUot^FQxkLWwLgT*qI#w}oH%Iif2s{YA(bke9(j)n-t)#n~>yCVq&XOm4 zI^>;}zfqpQz2%&(95Y?doR8$qq%_SDr;BlXjy_Xss}IuJ0%I;5*yV2;Ob>s7z2RZ{ z4S3aFysox3w%d9rjdT|Gly}v%AGPgugq@G=kChGTGv`%L6Zb6Jaxn`Yvlv^+)|+|t zbJ}|C+vwrYs^Iug{m8M1E!+~avM91d_gm-rMLq^P(vM6QmWgR{!1jxyl5>vpisOxK ztx{C(BzIHFt2flP>NDvo9m>~QNHB*l*&Qwxxe%SFtuRW#3m4bgg-+#WW*_lwiFPL^ zRIhWceVtUDuQ7m#$Xdu>x{i8FcxPiZIYur(e?siTh{)V%8zYgQB~ST1a}_WTZ}@uU zj`Lj#c8`^|KA}T|0%WCmQvXNaZN5i7!472v5D!OsKZ)DndE$I;dn>h}`GsGV4USQ+ zuw#{+%tl2H`}XG^_fHJYjpQ@tn<4Fec&Wc+?%rHSU|aMN-zJ~7HFahkR@M+9T{$9Gq1%jK!(!mDZ+_0_*^_dL_`-qHkrT*+ zJcQ?isNT=$WArvwS{sGo_5$7|aTUD3xH~%Y*_YT}+kUV+oV{GVT^Ag?mEY-X7BcVZ zqkx+V-eH~< z&gu3K_9o87cBj;W8OA;w@>jqTSw?-EcaGvCI%O_Dx~U*cUG z*CN4|I6QHG!X0mCM-h4^lIwf!TOHE%uKWwLTePXMmbID4|KsG6ayR-Nj5aRBe4mk4+C7xPW? zzX;w7Jr1r8oc8DXQvCUY&qM3O?;}^V33&eNC%3XkfPy$i{!vO%J3GsGQ{&eq{2kZd zJ;~9-c0)cZtRO%0X252xp)ElK>5FiUP_aPc+-F(-jFwrob58}AMXT!73{5|(?=Xh5 z?Lu4igmaZQ7GE~uUED*@1Q&6A^c+qIB&Nlmb~m=)m-6sVvG&1x{yV|-(d$5OkVA)Z zyjiO=duMh1*grQp)IavUd5C-}o)DIj)g&avJKDP*xL?P0O&XZ*dH&0Jqw(Bz-9FB~ zz}`nqlNEKPaz!|3-HEmg^v#`@^CoAdZ+yTVDi$6VyqUW?r=#yfpjE`H*Rwj38Dd9e zpKXc#q-}z&9!}dn_qK=&p&t0}p1kgp&V}|4@&?+8jOL};J#(dAKb9vtDZDeU21*8SGx2`wdNpak@0{Fxs;E>tf9X!L`8yt7! zcKlDRRm^K93pRN@c@qAZdHDU$nTdfjF>d^%r-gI;yM5pIeL+=w#COOOZE^O>_WQO? z>L|6mqpznpb~tJ#mP&e=cs_2FEw4ExcrcvH``KREQpIoBljy?iRcS?EbbmD>eP{SK z5cU7D_J`yBhkT_2*weGRtH7&FsGpcWA?l6y9C1fHYTRsZW$&A~F$o*v;#@zdi^OSs zy^*37!uj!_Q1jpyq4ME9!C!rMvj=?~@iCUY$bT{Ni*bP+gm>G@3jxXYkQho(t)}E5?ElxYuHyJ!^#`7g|wtb%5No$zB zAU)s5WkIk0quE_Q65iwQpSwOMn!7BNU^W#`DPd)?vPUi}&66(K>UmcuR!*!GUp>B% z=b}(87SN~I?j{V0?`2CQUu*Y$r!qRE%b63hw}rQ&O2SF4M$XjCwmENn9RrUwE>(42 za{lXRV!w+xzY@SSs~b1Vv&_B6`$@ug2}8US9IKW3;&9#$(H9f3;`_qN&%QDWM3(0c z%$k;UFMGNFezl8T_tHnRFm5V!=xI5var?sP_GFti|*L1i%0e3t53ZVw$ z?4qz-s!W^5PGnC{PyC3AYx+UMuXohPMF;wiXSp+5DXr z%hM>SZN64{Kg9KN2+9_zq&!+`EVLI~(sFS&oy0O@TJSoe(50XhbOwG4)Q$WZdyZ$n zm6|ISA6u)HFbQ2FZ&Q!jcRGplH+y0GTH80avyiq~&PT46&dIhtz>wO-tFw0IZmgJw z=+E`TdWYDO@bnN3c|*;@O(SKZy>SM+$*Rv9vOYXWKND{WE5#oa#j(+K#dXE8%61p4 z=I8QX%3EcgV#+n;I#N~CKdKWe8r%`66YIyD2?=~ew0EwN^(LoqxUdmmLxBrFgqN~P z8#9etY>0HsG10pr?ugrq2*%!OLB|T$8r1DtO1?JASr?`8jv;D)t6Zq2FTuCS|7mDN zG)-S;^<*dXGQrf3^Rlalzhg_J)oMfAe)$i2g6}4i#7pXA=ReNF_LVln?slDWp0r(% z{o(+j8XZoW^V+N+`-a`K+{WpMH&i3^Rrpq9ax76Rt9`G3gLU^alNvpBYUQEdN}s5Y zZ69oLHmr2y@v>8ytn^YZ*&5p`+WbIVD?xHC0rC6mtcY3KY-1pAG!}@x1-AYSR2fLe z>U^!)k)7m=$XoI^=}BHI{uX ziv1bx9ZC-l3fI!6T0!2IQ}b1{Lik~*aCEQHlAcuF!LE;V)K;?TU*xnnUtMpzqBcSF zLPxavxBO6yBkhbNL|mGm4(&hqj5aaI_L=W415;er58se=_B3&yjRR&YyrK6 zlfyW5jjb{&Ggq=Lgq*CyDJmB~m0n5LpcD1QtHjH;nYyt{_h`Sz`f3+67MmT@V$HNp z8qw4AD#m=Qf7kI7bUEfyNxC8Jl8#DMWvu%ZYU^ejpq`UANkgQdI7m28-tiRPja|1| zT0PAcu;vZ)Y%NY}iuFWWeX&u_JZ$!~eAWb3ffpqyv>8^4Npf+em6D?DQd+3bl=kvT zF^@P+94ft$21qGbL%(B%OjFCN{iFE|8#~2h#B20Jws3kRPh@>W(pH;ML|^_T92W8k zzmp)cyM80D#j9#{=TX;fXFvO|$_sH64f9^)SD~vsRPCoW0wzLyC?`-MI@$Q%9Bv%Z zSLn&Q85*A=Txa$%bBr6tb>n-ZlaXfZH{I4j$OKY1yBj5T0})sMOHRM(!*<2wJ8^yh7?@y1revc912fLEI( ztitnPj_Jc`XhZ6e&daN0pE#e^;C?HG&Eq|2s!$EJer}+~=uXy?bw@RrX2=TC(f&be zy4k?YF-x%CT;rE`IsO~_oXujDc|KBzMrkjhx-boqh_%R{WFMZjQ-z7bW7?UXB2Kae zr;ueyD-z<9G2bnSb?(KQFp(vKp2yh%c9=x|IG( z+tWBI&=RyZ_0ac3Bbj6(A>8e8_0SXhuw`@LWDMQ7ulPuuCAAiYle@-YJTsTJV&W5Zt8$d~GnZ*zy{GBnF?vQK$||Wm z4MD#A)=p$z))X2E+pr6spVZ;+*Z^Lc3?uvabf#NNSqAWfhR_+L7~+jiSb5lcmdT5w zw%jnGC2hjDSsN_Ex07463{E;5(hM>VcWUejo5Tl@91zhoPjL9y|7F z+)ch9tx1$GyiMZ&qMc; zcA$HE{xy4G?PmwbK4CrT8*HOE9Outj1Ac|iB=hKZ!c<{8A`LFEVz2{u*k;~@{DxCKDN{BwLXAH=`qoq0<>mcKw>eaY9LdosBKIp0RgQzuVh6A zGx-6?(e=n8l1nPmQpjBG0*)0zYc)v*-_BQoN1ORpJ_#|-^?5h6@tECZh4Hx?{Y8O5 zI*RY)#c=kp6f=KK;Ew4>f=oH$qMsqJZ8WVwAETE6#DUo#23q5Vl{@pZ(~j2lW0KLE)Ex)3jN7MWaE`%IuBr_I8V$JR#3(d zF^OHX5>Y#ACHWCHM5JzVAD(}(b;de_UD$3w8KqPQb+54iG~prdfH8hSo6|H<$%`4@ z#OQzLh|>ZU8`5%gAvwlvuw8>;yPmMuJWQ6sLbV~c*k6c;nZ@4nPk>K88Y`m^_Qgk{ z#jcQqaik%sOuhtFPk|Q|U}0kX13%3dV~&GJKbkDm7pejQ=!JR2ti%>Tv#)Rw5ygW^ zF>-wbPhf|t zkehrh9}JuI6~>zZUET_BGmr%NB0doEcL3ICD%psWn)VohpNF|XB$CUYz+)7G1#AFc zP!OK(4_JlO{28p=dw!H}!0b)v9mPuUI5hireAAuc4j6?gLR(+i{M~A;K$#CC%5@| z=ChcU!OD`#$i!Go50e(0u-8^IK8_a0DlVT;k^IGGupWF9IYb)?C510(GKuFKSsGiz zd%{Ah^f#cvTwyI(Jk(yLj1Hqkfd_vE9QD8hjfAu`guVTW+=Va7U~gDKJ`S`^hRrQQF5>k#$c_j0yDu3{ zrjZTgI#!;)gXb$@Pw#{CU11+Of|{G4#kYBD*nqaUXDt67eAaj_pN%u?cB~CrJ^~Ln z7qU|tmS{EpzLmS+c`5vE9ZKi{_|oRERNc|XV{mC3Y}ixSr!V1+JHSIOfOWjjZ$Tpm zgR&C5NgurbZ|tLRS2p-}kw6^AEoRxede0Ho<&O!2gaVB_Zh=uMeHkA&cjrBQh-T0#NyHUI2FY zYvlI)ggD0ZtnhIaJ2==%RX5S5- zeZScuOVWsLp&l-XXML?lZgNSYqJ5UPz`5p1>j{V_+z1WN;J&;4SxKP zf~(-zDbV~G+74hu|4DK7|E?%>v^dTi%R!2(fJaqvRRISppuJDfgAJUO(XI{N<^%5k z7uOT~ehRsI0R4Q3S8vc#6m$bg2t(f@W|jwID}oUv;mV8O`M_fv{%%3S{u>hV{KdfcIJ}Jq?UclijbuRz{=p35KuhocXd6Udh^j(s55d>l z(Bxtme<|=N4YR$A@2dDN&KxmEWJG`x@6ob|eoCN4H~I>I)*(<#1Xo4O^}mrJ2@Laz pa+EN{XbC?3?{6HhHC#HrP4Hg&|2zJhvxV7ndAddImpulse(dir * kickStrength); // Play sound - if (auto * soundComponent = ball->GetGameObject()->GetComponentT()) - soundComponent->Play(); + //if (auto * soundComponent = ball->GetGameObject()->GetComponentT()) + // soundComponent->Play(); } } } diff --git a/src/editor/Editor.vcxproj.filters b/src/editor/Editor.vcxproj.filters index 0440ecaed..7fde8e0e5 100644 --- a/src/editor/Editor.vcxproj.filters +++ b/src/editor/Editor.vcxproj.filters @@ -171,13 +171,13 @@ ImGui\Menu\Inspector\Component - + ImGui\ObjectHandler\Material ImGui\ObjectHandler\Material - + ImGui\ObjectHandler\Animation @@ -280,6 +280,9 @@ ImGui\Extensions + + ImGui\ObjectHandler\Audio + @@ -427,5 +430,8 @@ {56071f0d-1c14-4ae5-8346-d5210971fcdb} + + {c500a89e-9b95-4221-9ead-f614c560bcdc} + \ No newline at end of file diff --git a/src/editor/ImGui/ObjectHandler/Animation/ImGuiAnimationResourceListHandler.hpp b/src/editor/ImGui/ObjectHandler/Animation/ImGuiAnimationListHandler.hpp similarity index 100% rename from src/editor/ImGui/ObjectHandler/Animation/ImGuiAnimationResourceListHandler.hpp rename to src/editor/ImGui/ObjectHandler/Animation/ImGuiAnimationListHandler.hpp diff --git a/src/editor/ImGui/ObjectHandler/Audio/ImGuiSoundListHandler.hpp b/src/editor/ImGui/ObjectHandler/Audio/ImGuiSoundListHandler.hpp new file mode 100644 index 000000000..a9f8c3009 --- /dev/null +++ b/src/editor/ImGui/ObjectHandler/Audio/ImGuiSoundListHandler.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "engine/Component/Animation/AnimationResourceList.h" +#include "core/File/File.h" + +using namespace vg::core; + +namespace vg::editor +{ + class ImGuiSoundListHandler : public ImGuiResourceListHandler + { + public: + //-------------------------------------------------------------------------------------- + bool displayObject(IObject * _object, ObjectContext & _objectContext) final + { + return displayResourceList(_object, "Sound", "m_resources"); + } + }; + + VG_AUTO_REGISTER_IMGUI_OBJECT_HANDLER(SoundResourceList, ImGuiSoundListHandler); +} + + + diff --git a/src/editor/ImGui/ObjectHandler/ImGuiObjectHandler.cpp b/src/editor/ImGui/ObjectHandler/ImGuiObjectHandler.cpp index 508d3f346..9be49467b 100644 --- a/src/editor/ImGui/ObjectHandler/ImGuiObjectHandler.cpp +++ b/src/editor/ImGui/ObjectHandler/ImGuiObjectHandler.cpp @@ -13,6 +13,8 @@ namespace vg::editor #include "Material/ImGuiMaterialModelTypeHandler.hpp" #include "ImGuiResourceListHandler.hpp" -#include "Material/ImGuiMaterialResourceListHandler.hpp" -#include "Animation/ImGuiAnimationResourceListHandler.hpp" -#include "Animation/ImGuiSkeletonObjectHandler.hpp" \ No newline at end of file + +#include "Material/ImGuiMaterialListHandler.hpp" +#include "Animation/ImGuiAnimationListHandler.hpp" +#include "Animation/ImGuiSkeletonObjectHandler.hpp" +#include "Audio/ImGuiSoundListHandler.hpp" \ No newline at end of file diff --git a/src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialResourceListHandler.hpp b/src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialListHandler.hpp similarity index 82% rename from src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialResourceListHandler.hpp rename to src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialListHandler.hpp index a69f77bf8..26bc4a258 100644 --- a/src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialResourceListHandler.hpp +++ b/src/editor/ImGui/ObjectHandler/Material/ImGuiMaterialListHandler.hpp @@ -7,7 +7,7 @@ using namespace vg::core; namespace vg::editor { - class ImGuiMaterialResourceListHandler : public ImGuiResourceListHandler + class ImGuiMaterialListHandler : public ImGuiResourceListHandler { public: //-------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ namespace vg::editor } }; - VG_AUTO_REGISTER_IMGUI_OBJECT_HANDLER(MaterialResourceList, ImGuiMaterialResourceListHandler); + VG_AUTO_REGISTER_IMGUI_OBJECT_HANDLER(MaterialResourceList, ImGuiMaterialListHandler); } diff --git a/src/editor/ImGui/Window/ImGuiWindow.cpp b/src/editor/ImGui/Window/ImGuiWindow.cpp index 8e0ff13d1..b7d566dea 100644 --- a/src/editor/ImGui/Window/ImGuiWindow.cpp +++ b/src/editor/ImGui/Window/ImGuiWindow.cpp @@ -1428,8 +1428,18 @@ namespace vg::editor IProperty::Callback pFunc = _prop->GetPropertyCallback(); - if (ImGui::Button(displayName)) + float textWidth = ImGui::CalcTextSize(displayName).x; + float minWidth = style::button::SizeSmall.x; + float buttonWidth = std::max(textWidth + ImGui::GetStyle().FramePadding.x * 2, minWidth); + + if (ImGui::Button(displayName, ImVec2(buttonWidth,0))) pFunc(_object); + + if (auto * desc = _prop->GetDescription()) + { + if (ImGui::IsItemHovered()) + ImGui::SetTooltip(desc); + } } break; diff --git a/src/editor/editor.vcxproj b/src/editor/editor.vcxproj index 063ca9918..d465621fa 100644 --- a/src/editor/editor.vcxproj +++ b/src/editor/editor.vcxproj @@ -55,12 +55,13 @@ - + + - + diff --git a/src/engine/Component/Animation/AnimationResourceList.h b/src/engine/Component/Animation/AnimationResourceList.h index 1296cd710..50fa8298a 100644 --- a/src/engine/Component/Animation/AnimationResourceList.h +++ b/src/engine/Component/Animation/AnimationResourceList.h @@ -5,7 +5,7 @@ namespace vg::engine { - class AnimationResourceList : public ResourceList + class AnimationResourceList final : public ResourceList { public: VG_CLASS_DECL(AnimationResourceList, ResourceList); diff --git a/src/engine/Component/Audio/AudioComponent.cpp b/src/engine/Component/Audio/AudioComponent.cpp index 555edfa5e..42b387e4a 100644 --- a/src/engine/Component/Audio/AudioComponent.cpp +++ b/src/engine/Component/Audio/AudioComponent.cpp @@ -1,3 +1,4 @@ #include "engine/Precomp.h" -#include "Sound/SoundComponent.hpp" \ No newline at end of file +#include "Sound/SoundComponent.hpp" +#include "Sound/SoundResourceList.hpp" \ No newline at end of file diff --git a/src/engine/Component/Audio/Sound/SoundComponent.h b/src/engine/Component/Audio/Sound/SoundComponent.h index 8df8bea7a..abe027803 100644 --- a/src/engine/Component/Audio/Sound/SoundComponent.h +++ b/src/engine/Component/Audio/Sound/SoundComponent.h @@ -1,7 +1,7 @@ #pragma once #include "engine/ISoundComponent.h" -#include "engine/Resource/Audio/SoundResource.h" +#include "engine/Component/Audio/Sound/SoundResourceList.h" namespace vg::engine { @@ -18,16 +18,10 @@ namespace vg::engine void OnPlay() final override; void OnStop() final override; - audio::PlaySoundHandle Play() final override; - bool Stop() final override; - - protected: - static bool playSound(IObject * _object); - static bool stopSound(IObject * _object); + //audio::PlaySoundHandle Play() final override; + //bool Stop() final override; private: - SoundResource m_soundRes; - audio::SoundSettings m_soundSettings; - audio::PlaySoundHandle m_playSoundHandle = 0; + SoundResourceList m_sounds; }; } \ No newline at end of file diff --git a/src/engine/Component/Audio/Sound/SoundComponent.hpp b/src/engine/Component/Audio/Sound/SoundComponent.hpp index 4516f6b89..2250c8e60 100644 --- a/src/engine/Component/Audio/Sound/SoundComponent.hpp +++ b/src/engine/Component/Audio/Sound/SoundComponent.hpp @@ -14,36 +14,15 @@ namespace vg::engine { super::registerProperties(_desc); - registerPropertyCallbackEx(SoundResource, playSound, editor::style::icon::Play, PropertyFlags::SingleLine); - registerPropertyCallbackEx(SoundResource, stopSound, editor::style::icon::Stop, PropertyFlags::SingleLine); - - registerPropertyResource(SoundComponent, m_soundRes, "Path"); - registerPropertyEnumBitfield(SoundComponent, audio::SoundFlags, m_soundSettings.m_flags, "Flags"); - setPropertyDescription(SoundComponent, m_soundSettings.m_flags, "Sound flags") - - registerProperty(SoundComponent, m_soundSettings.m_volume, "Volume"); - setPropertyRange(SoundComponent, m_soundSettings.m_volume, float2(0, 1)); - setPropertyDescription(SoundComponent, m_soundSettings.m_volume, "Sound volume") + registerPropertyObject(SoundComponent, m_sounds, "Sounds"); return true; } - //-------------------------------------------------------------------------------------- - bool SoundComponent::playSound(IObject * _object) - { - return ((SoundComponent *)_object)->Play(); - } - - //-------------------------------------------------------------------------------------- - bool SoundComponent::stopSound(IObject * _object) - { - return ((SoundComponent *)_object)->Stop(); - } - //-------------------------------------------------------------------------------------- SoundComponent::SoundComponent(const core::string & _name, IObject * _parent) : super(_name, _parent), - m_soundRes(_name, _parent) + m_sounds(_name, this) { SetUpdateFlags(UpdateFlags::FixedUpdate | UpdateFlags::Update | UpdateFlags::LateUpdate, false); } @@ -57,53 +36,53 @@ namespace vg::engine //-------------------------------------------------------------------------------------- void SoundComponent::OnPropertyChanged(IObject * _object, const core::IProperty & _prop, bool _notifyParent) { - const char * name = _prop.GetName(); - if (!strcmp(name, "m_soundSettings.m_volume")) - { - if (m_playSoundHandle) - m_soundRes.setVolume(m_playSoundHandle, *_prop.GetPropertyFloat(_object)); - } - else if(!strcmp(name, "m_soundSettings.m_flags")) - { - if (m_playSoundHandle) - { - audio::SoundFlags flags = *_prop.GetPropertyEnum(_object); - if (asBool(audio::SoundFlags::Loop & flags)) - m_soundRes.setLooping(m_playSoundHandle, true); - else - m_soundRes.setLooping(m_playSoundHandle, false); - } - } + //const char * name = _prop.GetName(); + //if (!strcmp(name, "m_soundSettings.m_volume")) + //{ + // if (m_playSoundHandle) + // m_soundRes.setVolume(m_playSoundHandle, *_prop.GetPropertyFloat(_object)); + //} + //else if(!strcmp(name, "m_soundSettings.m_flags")) + //{ + // if (m_playSoundHandle) + // { + // audio::SoundFlags flags = *_prop.GetPropertyEnum(_object); + // if (asBool(audio::SoundFlags::Loop & flags)) + // m_soundRes.setLooping(m_playSoundHandle, true); + // else + // m_soundRes.setLooping(m_playSoundHandle, false); + // } + //} } //-------------------------------------------------------------------------------------- void SoundComponent::OnPlay() { super::OnPlay(); - if (asBool(SoundFlags::PlayOnStart & m_soundSettings.m_flags)) - m_playSoundHandle = Play(); + //if (asBool(SoundFlags::PlayOnStart & m_soundSettings.m_flags)) + // m_playSoundHandle = Play(); } //-------------------------------------------------------------------------------------- void SoundComponent::OnStop() { - m_soundRes.stop(m_playSoundHandle); + //m_soundRes.stop(m_playSoundHandle); super::OnStop(); } //-------------------------------------------------------------------------------------- - audio::PlaySoundHandle SoundComponent::Play() - { - if (m_playSoundHandle) - Stop(); - - m_playSoundHandle = m_soundRes.play(m_soundSettings); - return m_playSoundHandle; - } - - //-------------------------------------------------------------------------------------- - bool SoundComponent::Stop() - { - return m_soundRes.stop(m_playSoundHandle); - } + //audio::PlaySoundHandle SoundComponent::Play() + //{ + // if (m_playSoundHandle) + // Stop(); + // + // m_playSoundHandle = m_soundRes.play(m_soundSettings); + // return m_playSoundHandle; + //} + // + ////-------------------------------------------------------------------------------------- + //bool SoundComponent::Stop() + //{ + // return m_soundRes.stop(m_playSoundHandle); + //} } \ No newline at end of file diff --git a/src/engine/Component/Audio/Sound/SoundResourceList.h b/src/engine/Component/Audio/Sound/SoundResourceList.h new file mode 100644 index 000000000..a4199e7f7 --- /dev/null +++ b/src/engine/Component/Audio/Sound/SoundResourceList.h @@ -0,0 +1,16 @@ +#pragma once + +#include "engine/Resource/ResourceList.h" +#include "engine/Resource/Audio/SoundResource.h" + +namespace vg::engine +{ + class SoundResourceList final : public ResourceList + { + public: + VG_CLASS_DECL(SoundResourceList, ResourceList); + + SoundResourceList(const core::string & _name, core::IObject * _parent); + ~SoundResourceList(); + }; +} \ No newline at end of file diff --git a/src/engine/Component/Audio/Sound/SoundResourceList.hpp b/src/engine/Component/Audio/Sound/SoundResourceList.hpp new file mode 100644 index 000000000..6974b3c9c --- /dev/null +++ b/src/engine/Component/Audio/Sound/SoundResourceList.hpp @@ -0,0 +1,28 @@ +#include "SoundResourceList.h" + +using namespace vg::core; + +namespace vg::engine +{ + VG_REGISTER_OBJECT_CLASS(SoundResourceList, "Sound Resource List"); + + //-------------------------------------------------------------------------------------- + SoundResourceList::SoundResourceList(const core::string & _name, core::IObject * _parent) : + super(_name, _parent) + { + + } + + //-------------------------------------------------------------------------------------- + SoundResourceList::~SoundResourceList() + { + + } + + //-------------------------------------------------------------------------------------- + bool SoundResourceList::registerProperties(vg::core::IClassDesc & _desc) + { + super::registerProperties(_desc); + return true; + } +} \ No newline at end of file diff --git a/src/engine/Engine.vcxproj.filters b/src/engine/Engine.vcxproj.filters index 08d4a0d3f..8bec3d3af 100644 --- a/src/engine/Engine.vcxproj.filters +++ b/src/engine/Engine.vcxproj.filters @@ -340,6 +340,12 @@ Resource + + Component\Audio\Sound + + + Component\Audio\Sound + diff --git a/src/engine/ISoundComponent.h b/src/engine/ISoundComponent.h index 5cdaab99c..eda61008f 100644 --- a/src/engine/ISoundComponent.h +++ b/src/engine/ISoundComponent.h @@ -14,7 +14,7 @@ namespace vg::engine public: VG_CLASS_DECL_ABSTRACT(ISoundComponent, core::Component); - virtual audio::PlaySoundHandle Play() = 0; - virtual bool Stop() = 0; + //virtual audio::PlaySoundHandle Play() = 0; + //virtual bool Stop() = 0; }; } \ No newline at end of file diff --git a/src/engine/Resource/Audio/SoundResource.h b/src/engine/Resource/Audio/SoundResource.h index e0e58a795..4a21796ed 100644 --- a/src/engine/Resource/Audio/SoundResource.h +++ b/src/engine/Resource/Audio/SoundResource.h @@ -21,12 +21,19 @@ namespace vg::engine core::IObject * Load (const core::string & _file) final override; core::IResourceMeta * CreateResourceMeta (const core::string & _path) const final override; - audio::PlaySoundHandle play (const audio::SoundSettings & _settings); - bool stop (const audio::PlaySoundHandle & _handle); + audio::PlaySoundHandle play (); + bool stop (); bool setVolume (const audio::PlaySoundHandle & _handle, float _volume); bool setLooping (const audio::PlaySoundHandle & _handle, bool _looping); private: + static bool playSound (IObject * _object); + static bool stopSound (IObject * _object); + audio::ISound * getSound () const { return (audio::ISound *)GetObject(); } + + private: + audio::SoundSettings m_soundSettings; + audio::PlaySoundHandle m_playSoundHandle = 0; }; } \ No newline at end of file diff --git a/src/engine/Resource/Audio/SoundResource.hpp b/src/engine/Resource/Audio/SoundResource.hpp index ecdcee3e6..622f5ad1c 100644 --- a/src/engine/Resource/Audio/SoundResource.hpp +++ b/src/engine/Resource/Audio/SoundResource.hpp @@ -1,6 +1,7 @@ #include "SoundResource.h" #include "audio/IAudio.h" #include "audio/ISound.h" +#include "editor/Editor_Consts.h" using namespace vg::core; @@ -13,9 +14,34 @@ namespace vg::engine { super::registerProperties(_desc); + registerPropertyEnumBitfield(SoundResource, audio::SoundFlags, m_soundSettings.m_flags, "Flags"); + setPropertyDescription(SoundResource, m_soundSettings.m_flags, "Sound flags") + + registerProperty(SoundResource, m_soundSettings.m_volume, "Volume"); + setPropertyRange(SoundResource, m_soundSettings.m_volume, float2(0, 1)); + setPropertyDescription(SoundResource, m_soundSettings.m_volume, "Sound volume") + + registerPropertyCallbackEx(SoundResource, playSound, editor::style::icon::Play, PropertyFlags::SingleLine); + setPropertyDescription(SoundResource, playSound, "Play sound"); + + registerPropertyCallbackEx(SoundResource, stopSound, editor::style::icon::Stop, PropertyFlags::SingleLine); + setPropertyDescription(SoundResource, stopSound, "Stop sound"); + return true; } + //-------------------------------------------------------------------------------------- + bool SoundResource::playSound(IObject * _object) + { + return ((SoundResource *)_object)->play(); + } + + //-------------------------------------------------------------------------------------- + bool SoundResource::stopSound(IObject * _object) + { + return ((SoundResource *)_object)->stop(); + } + //-------------------------------------------------------------------------------------- SoundResource::SoundResource(const string & _name, IObject * _parent) : Resource(_name, _parent) @@ -53,24 +79,30 @@ namespace vg::engine } //-------------------------------------------------------------------------------------- - audio::PlaySoundHandle SoundResource::play(const audio::SoundSettings & _settings) + audio::PlaySoundHandle SoundResource::play() { - if (auto * sound = getSound()) + if (m_playSoundHandle) { - if (auto handle = Engine::get()->GetAudio()->Play(sound, _settings)) - return handle; + stop(); + m_playSoundHandle = 0; } - return false; + if (auto * sound = getSound()) + m_playSoundHandle = Engine::get()->GetAudio()->Play(sound, m_soundSettings); + + return m_playSoundHandle; } //-------------------------------------------------------------------------------------- - bool SoundResource::stop(const audio::PlaySoundHandle & _handle) + bool SoundResource::stop() { - if (_handle) + if (m_playSoundHandle) { - if (Engine::get()->GetAudio()->Stop(_handle)) + if (Engine::get()->GetAudio()->Stop(m_playSoundHandle)) + { + m_playSoundHandle = 0; return true; + } } return false; diff --git a/src/engine/Resource/ResourceList.h b/src/engine/Resource/ResourceList.h index cba0f37a1..9563457b9 100644 --- a/src/engine/Resource/ResourceList.h +++ b/src/engine/Resource/ResourceList.h @@ -89,7 +89,7 @@ namespace vg::engine { super::registerProperties(_desc); - registerPropertyObjectVectorEx(ResourceList, m_resources, T, "Resources", core::PropertyFlags::Resource); + registerPropertyObjectVectorEx(ResourceList, m_resources, T, "File", core::PropertyFlags::Resource); return true; } diff --git a/src/engine/engine.vcxproj b/src/engine/engine.vcxproj index de3f9a9c4..1353828b4 100644 --- a/src/engine/engine.vcxproj +++ b/src/engine/engine.vcxproj @@ -41,6 +41,8 @@ + +