From 68edae3fcb95331afdabc6dea742daaec5e74635 Mon Sep 17 00:00:00 2001 From: aurailus <100Toby1@gmail.com> Date: Wed, 26 Dec 2018 00:10:59 -0800 Subject: [PATCH] Added GUI shaders to the repository. --- CMakeLists.txt | 6 +++- lua/file.lua | 2 +- tex/font.png | Bin 0 -> 1090 bytes textureAtlas.png | Bin 0 -> 58905 bytes zeus/engine/graphics/Renderer.cpp | 2 +- zeus/engine/iVec3.h | 53 ------------------------------ zeus/shader/gui.fs | 14 ++++++++ zeus/shader/gui.vs | 18 ++++++++++ zeus/world/GameInstance.cpp | 4 +-- 9 files changed, 41 insertions(+), 58 deletions(-) create mode 100644 tex/font.png create mode 100644 textureAtlas.png delete mode 100644 zeus/engine/iVec3.h create mode 100644 zeus/shader/gui.fs create mode 100644 zeus/shader/gui.vs diff --git a/CMakeLists.txt b/CMakeLists.txt index ba8cb03f..44e3313b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,6 +66,10 @@ add_executable(zeus zeus/lua_api/LuaParser.h zeus/lua_api/LRegisterBlock.cpp zeus/lua_api/LRegisterBlock.h - zeus/engine/iVec3.h zeus/mesh/TextBuilder.cpp zeus/mesh/TextBuilder.h zeus/mesh/TextBuilder.cpp zeus/engine/graphics/HudText.cpp zeus/engine/graphics/HudText.h) + zeus/mesh/TextBuilder.cpp + zeus/mesh/TextBuilder.h + zeus/mesh/TextBuilder.cpp + zeus/engine/graphics/HudText.cpp + zeus/engine/graphics/HudText.h) target_link_libraries(zeus ${OPENGL_gl_LIBRARY} glfw libGLEW.so pthread lua dl) \ No newline at end of file diff --git a/lua/file.lua b/lua/file.lua index 9bcc2d2f..5831185b 100644 --- a/lua/file.lua +++ b/lua/file.lua @@ -21,5 +21,5 @@ zeus.register_block('default:dirt', { -- Stone zeus.register_block('default:stone', { name = "Stone", - textures = {"default_stone"} + textures = {"default_cobblestone"} }) \ No newline at end of file diff --git a/tex/font.png b/tex/font.png new file mode 100644 index 0000000000000000000000000000000000000000..3502313c9059ec249da0233a03753c58d6e6bdb7 GIT binary patch literal 1090 zcmV-I1ikx-P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00XK?L_t(|+U;D)a^xTkZFlki zzwBJ%l#3wgX#?CXU6L8XBB70k@at7n#L;=4C-?uOcCL-;MYio282P;wdZ;##A&^En{Y6Hs%a{jBTfJdoAH%<#UwY!L-b zv-r!h`k%dpaRTkF^Xg}{_$&cSUJEq{kJpmgmc$%M3sKjExZa&CKH3{_YZ!UdkhOT+ z>u6&sfpTt3V$Q=uMvRZ#c+EW9ZoDP~r<5jg^E2YKXG|+!oM*L!m7=1ePoZPvUi!?C zYrD7K+j_TxjyZBiRJ(SaJAz>v9#EOVV@e5@W$WQCB)XJs> zIZzY|4Hq6andO=hU1Y#S_}OII!hYZ?u~Bj2oFr?}YS8K#F$U z2)S?omDiA(*IJPUj1W92kFaiD#?j1z3R=(kTuu>*n@n-_Q5%5>KMT6eQl?es>ZWz) zs1U5KX_V013pSB4M?$smkilPnhk^?ILm9Fmo@JO-UUikphUg?@MOZH7d_sLKDu^JQf>+Ar3zoj z#BfzD+w8Vk;c|B9v(LUKxf@m)8dwQIKwVm%3bve^xQO>G4cYzza#V7{jzlZFA6*YQ4C}SxucdW_gd>3c2<8ezk-Qh7fMvXd8qC7$AQX)_%x9j&X>L1Faj;|kiW6?mFJ zqiK|ncCyk+SOWJG2IFpJi4*5ICyEL{vs9N30Z-P)i&kj+sZ}q6I%&?GN2}TT@~162 zv}Zn46(;G@XaXsy=y!QC=~38;RM8JDi^$=rZ3~CX7EpYf zLL+C@3V5m>|L=`XxJ~m7tAjX48{X3FtYV!sH=EInY(?1n9Y0z34=B4;rbPYq^fd43 zP9)4WbT{d8je}3{J1)b&Z&Ucl1!0wX?X%&>6zx^mdUN6HH<9Sd6F;d_h>YQas z7YNWd%y1XLnU?Fbm6mv2G53Qo`gIVIn0Z+KXnc6gm-u4S8ooVHuc$x02mUdef>hQZ z4wV#VPj(9PcaEiyUTm0~N2ixA{z5N@JeE2*%ybrNRL}wno}QaWqX!4)(iMrNaOx{z z8WwO78DOAE7Qa4S6rU`iKAeEy=hC(Adu3Lt$X76mhEN9{deIvf1;hi5GdV!dfJ9}{(lWtdB zu<@j6JW(nEYJLg1eZ<=+b)FBbLd9)N$|rKXz2qm!9M6Q)W8U-JzzcEn@Ng?rD=u)1LxSD8csl`Fg-m3U<7=B3 z6iU%ndZqqYXEc!rI$NX#A$aBQeqq|@q6&9EbUd%Ci8_b4p$nySuGG0DMWvgaxcQvc zD>|7oTHkmCT^YJpm!qs3H86XKquouPxCXKck>cag=f{94YiKy0y^uJ&C+IF z#lz`&kWZQHuPptkq#aH@(?ZZ zPu@p3CDM*|b?pV}D#p8O$Z1%Z-GS|3(5L%5$kS*XFYdIOF{>$ALuuHDOak-tbYQ)O zKTjbUBRqQ+$Yd!u+0`1W;Fav$W52y+Fz`63f66xD3HcBnOu;u7>S0*E}o z6#+xeunjTRm|BnvkdHgZu0na41=EGk|AEoPsk7{ zVhKfgI&X;NYYmZob_v51)m`-{6}kW67;jGc)+3{XKheXC3ShdIy%5K}GWL`DW8n;E zUK;6#kYf@+T*)(?w3Z%H6NhF1FPu@-!#yd2bf^h_vvTvL^P<$#7rNdwl~7n;X!I5A zg{GmaPuDz}M2n)g`}zB`HaE$KmE<(XAiEKq*J!3_I}}7Ox=l)mC=(v(&u4|%E!F%! zEfTFSVsx}t_6f6!-fLZEJL8QUx!1(EbtJDIPM+08=g#(|N`zp#eC-y=C%|cke(?!+ zq*eUEyzZV(rxP04E}0xtPV~zHmDuYJq)+R{jgxiPoDLGD0zLP4yomTc^34%?`)J?3 zeSFjdtg>lyijrC4(r)>fR;e>tbOHPv-z-N7>w&AdVafue4~gUT@}(Z47K5iwV=oyN zTq0>o%UM6o2ot#aeN$$Dt+RneYR==uRn#<8TJA4BhUg9Ttb4XjD1Jd<9t_&T z+66qBp@Te@I6%}YVU~cG)6H_dCf)(P)kt0eo0&*0c>S&!ovA&>^Je3^=W|=^KJ`Z@ zRs!$jY`S!@B)@QwKrQZz#z#iTauFf-3Nu1??i}@S?h{;R)_WR{`NX#Vc6+-n9WpE|KT2I-?2m4_kQ0%p8edrYmz>57+uEe5bdkP~om}}djA+L*(98ygQFPZ%<4EFHCCLe}S)$ZyIC%+& z@-_<#lUlj8XX5(T^DKW~KI~Xw1XZmfa=n4pCBV*Il2NRk`a^&x4-~fyKCNXAa$V)6Y9TaUL2K zZrC3;#^8Ccf6KM=Idr2Dh+QlNUf{XHB;8m~dPB#{W1Nss<`|_KI0&)tK}@f-+rH!l zH0}qJ9`68R6juRVL&r{!Qm$SdrZ7TL@JUu4tz3t*kR!|}(5pEY&MV41Bkodnc2bJM zG|>uZ0W(;6BJ+p^mtmK!3{O79>mz!rkHDbO?MA|1cp6Pa@Zj2o{1o?c2)JegZY84k zf!Z*Pa(3Vcaw~;dG%l-nI|8(#jN&4b?5?iwfQ&se#s+Ae0T>Q&)&?HpbAZ^*V<*Qw z;Cu~o5pbRGfFYs}O~Gh&Ikvyw8Je&5CGOQ1WT{XJ0&-?)(Q}g?R|lh!t3{k(`i$VS zd*@Lk`PidX_$eFYy~A-tZdCdsqOmwdl0lt8y2TPsc|gU+iT{oHtv3)oWmLFIacX6S zNS~3dTr9c=N@&IAwR%<*{K?9zR+}a~z_>7;HyF(F;11h))e0#tk#HW_CsciY%%y5O zuXAEP6%w0C=e}K7SI6%evn1}7DXP*lg|y({t+Z@>Fs-mmTgz;yH)_agpnTq3>eC+l zQIt-WEBty@bp(wrKvl2h-THO+8Yn0nA5Q04o>#J} zK0igef_X7oRaLcI?OV47nN?F$E2XwANdMR?5&3hU;}(r_@))f%U~|gMwcWAr=Pf$GB{q48OrmCPzK4WwLE8;5|o19=Gz=_?O2Y;V`vXjzj=iv(19@J@e z0qV=Csi~r(^XIxM?<62Z9I5IiHA|k;8y%iFHAaFM%_A(9o3UXoTP%=J$ZrQE`8IxS zB%6;Ub3MtNB@WmBs?}>~M@6x;a7gTGjnRi|gVFeR2CgXvlw3jZc}DB#s?XHeCt{UO z5>;`cj8^r+F#*YAMEDo~O}+h{6W`o`JUtvni_ol~Z6z>wm}edR|Gm-uz6rj|xNhW0 z2CTLHM}Hq5`#jxA!PU-_{W4l@vpwcjH7AvTRSs+`(Ba36dqy!zS4Ess9Py#E^XxG4 zT&`7w!8rw8-_x5YC7nW|<3C$Q{k16Z(i!k9L36WpO(4=Y>zfv(Fhm|k@ky5`?G>=L zzNCWYFHkhf<&Dv4MX1ibY!@NQ?o%fvY_Vt`axo>_)e_r2XQukq-o$$+mXa2H*ie_G zQJ6T4RkWE-kJVq$54yi$r$%pR`t=vLU=B(D-zy8DBUva%02{`p7_f|s(hE#4nP3@h z!kay1()Jbnn8G|Ld4=m0X7wKtiFcMQL+NdcbskcH>>72Wf->`;yRtd%bvE2}xYmd$ z{Bt#lKY3{td`@KUQ`|tX;Y0%#0_g#Q6$$=#KDUoFNLVz*$+M|W`?o%3 z{)G5B0oj9`Z!GW@;-}P(>+>TH$`x)|dp|T^6#4l!@A#0=20zv&5ckM3Xmvu|&Ui`@ zOBa>D^VL zVgpO=;r}7Y6v|O??!lJ69qxK{`r?~Yg(Hc2Z)LK4?YH_SN<5pYg>v2wBb+(Bzw6|N ze%pcAuMi23p8n$DDkznAu{N@Jl zkv4p*tU5JlD>XL$N7)42;?V+!)}vx~Rr7LFprv0WIaiMn##IB^Pffnsc6vAGWf*vQl> zwKv3)G8M#2so~wSNSRK3k~3-PP~{uymBuPzdH4~Yr=HF`Ei&}EONqmYvBJD-yE++I zKbA~<);}-@XJ-%I7sxtYYnO0M;(-9AF8*-8E%QrUjECt6|^F2Jo zdiKq)X&`8gCm3ezgI=%_V8TqPeYL#%7nSJ6OCvU3Oios3VjIZ0l5zm> zXkige=$m<`Wz?zyYM{(HwakiCHIXi)9bZAOY{?xB)9qBq_5N|L@Y5mk;aAIv7}c1b zxH32ctB8xVs0O~iE~|*M5tg`tSefkI!fm7ujTYqRztU1|j5XD7-n>x^yuXH~QyEW) zw~yuL=IV`mi!WEO+R=+vrznBQCkw~<9;KP6ZLnO&Q@m!*HH@EIu``mVMNf-t+diqO zHW^wYn@P3eq`4o1Y)4V8N@{or#~$U?@_iLW4xSU@C@Ql4Pi{TfY6uKPA3tjXPeC5)|B;>fz@Y@K(cAv$cGF(IwCy zFbJhGqi;0G`?}^6?T^_7aHIOWet`E#Kmi#0RqU>PalRAjfn;uA_oR3^vGprF6b%^S zQer18EepjrQTBQP*Q4m1*0Jj0;Za#ja@to)Mn9c>FC}wDWa6?3O$L73;3u0{MDWzL zG%X#YXlGHq_+RtZoOTCDC@ojiSo!U6p=;e5fXoF$<-vf{E_fTBlARKS=(9pOM7wuF zN`>h0QcFH}?TMn(oRHkiu8y9k$l$6CvZKd4DOZs>{Rsj)$@W}Yxlq|8pPr@?!#SXI z&1RP=U$N`^BjH*?&A^_`9+o0)BRzE3Gn$_fqO z-syiGRLA|ig?9y708~D-9`zSQ$?z5w=E|&3Mjma>&Ahq%OZZ=L0f(}Dr1BZ0cg_#o zpaN7V`qJ+LS=Y0O7P5#RTV(K@Vu`F*{aUV_&yR<4^Abe_qIB#vLK;pG`l?eoZ`p-l z_8ZPU0NYvjHj4hOry_GX+$hq&>za=OSv6RnQmi(xGSlb=OsgL3di_ZB_<^0YHmtU? zvQirV#l2B+y)7sZ-AY@wY?*AZ?*04sYXbv^d(Jtmx?h&0oG~oqa5ksCE~&sp!*Hs3 zu`BWZJ>bk_#nCZR+XvuDyg%-yolp}k>)yFjM%wUQm^gh}WKMIQ`Dy`$(P`2N;DexL z>Pgu$Ap1!8WAD1z&Cdh@GM;_nZR!%Hg5g7})4S}2KTN&8{9m>T-PMADhDVA4j=K)H z9@ZXcQ|1L+XFO^qd0rq{UnYI*Ncnw9hKQyr1)$msS;>*50A6HZ-WASzkLEUj%W??3 zq^Ff}I9TaCC0air3cx75rgK_IV{c6AydI$|`rEHjZ#x<2u8Ja+3$<_9^MSY3PZ|EC z`;ejruo{3q>W&VLXGr#f!S-^?;PK_33^Y4|TZBO{(!zg_(WTVZ^b}lLSU)DK#TeKA z5Ui2m=F@p`S=K)0>YOo0*NHJ#KA-O{eYoGXc>Y=(+4c{j{vVvQ9AwWI1`lVB^LqWI zG>?`YSwl}e5=>{eBxj()+x+DAhr`;JmnklW?RBqP_9zN)-j`#d`gI?j+{FTfTYk%6cPFwD3SLTmLfLhI_a(Njfv1 zUt^Tgv)$7yd6Iwe9MVUXq|%>z9@Udus9Tus~c_Vd=+;j ztAO1DN+|CZxKtvIH4Q+lDsEPsrowHSxc0`*>>LGk-mKi1O*kpAE05vxeRBBYF@77i z`Y#>tYb?!s3E%W?YhBtC5ujTfyNnyfJ$Ig0hW466P7B^&Ce#mGx`gm}KzK1Ow-h<9 z@3if>QY601@OPI(q$&3LJv`M;1>Pn*0_U}+0*Z?Wb#C^dNYe;U3=}@ku!ci?;FYF~ z5(YbrhlzTOC4pKLwetr-kaw|%v{<#jxa-(@^Q}bg2V!QL_&G^J2YGXdi_UcxxVhiI zvz@S)SWE^k;X!J5r47-_ydSVIs1T7e+20*_oY%llqG%gABQUECP!^@CS>kj|6d1Y5 za^DB;kTZhyO7l{ zl`GE|6j)=*+BD$l08Fr?kEKR^TejQ&#fwWlBZ7Pg8nRE}SeMp?xQ18XOXhPvlx#t1 zKBAU~3lN>f(`Hs$W)tel2e-uNi1!V7k&###PE+^;N%qEdJ9)dC^tM4jqb5V@2J%`M ze#NA2taZbx*=N8r6!<{0T8{k7m}PWH1vTPaUrmaigOa^KmQ69s=qe#{B{DIIHCvmm zVVoo8Ew#0iv`EPjQA|m+0hbv;0&0g(Tr5&GF=@0w?JxM-VVLC_MG#^xDqq`VlZ2I=CK)_(-MLF zTZvX^SM1PN#CG}#C|bu~{!Clxj=fL{Vy&x6}*2D6Aq$ zNeE5R{94MrRB*b>mp@B8^&){%hBzZGGBerfEeUl0WNiaNUhs%rpUpX`dUOAHW~GX; z>+lvK-f*-0zJC+i`)(J}ju}SURKML?7?F7F{)@qwxp%KqvA9~LvV^3Nc zHW`_}hu4oUy{lwYy~wGcw;or(fBBnMIm#%~GybSBiZ?&qwzRL$Sjy+WH^I_v6+2nj zdw_6zkb~)13#r@i`0eB5wK=YPxrf1v&KzCmv;F<6A|rnU^Gq4TsPExleoEEUd}>w+ zbo<8JBe?+BGk#b!^^GwF(&1s`p1707*+w!wB zA?XM^(DsUl@YW=oT;6m#;UVr}w_w_G^<4}$jdm(_e5BCW?ytA>2 z`rTB{*z5!spp0_(#&23jrxN(;0bCRhMOWWoY~sShK;G%=C=07siEHF*+Mc7Cl#tO< zn0%~5heGkU_nw?cnTC-3-xAQjt&HW=Jll_*Tvs6jm)Dhpyfx_ApDaH2+$?PvV`hrM zBc@(!^%jrR$)JRG&0FU6c?d$hWFkA)70E9ArGD)=UNqQZ&8IZ)oM#+7;hJ($U49g$ zx8vaTP>KP>?GsLR+a?A8t;1WgW<=r_rhtt&>3>q!t1g646SHcjy?v$p8#bdEiTe!y z<;qX(>SR$4=QQrh`s}SNN$ke;tdv;wu9z?>ZPVM-vk$lGy^rXcHUYMV1kkF&XRtWA zQ}kF9B*8e{<@2_sW=g7*3H;iw_zn5&*0Z^QPEL_x_#<;&J@yMVb@JUE_C%TNE2%s> zeXS?w(CTl~DRHZ0cEEhWmGY&54anRTJkuiyMJwO`Q*ZIzbWUKRUaStqMI92z0!cC9 zrZJ}`EcwhCy~N%>_87^&>NQIo>rkd}0vD~%CLGW6>qKo=b-D?%`UtQtvSVu_{#A}DLOSdiG6)v z_prOGD;%qGKDSY_U&mPM_wPG!#r^ihQBmN#>ZGH}OwgzAt=u-3qD%P)C*9ZI-y5MA z?d0VMV^f&tio0`7l_J_;rw_~C+-8_&(Iub@>VsrB=R)Ksfs$Q+O9;6vzg11LO= z)D(&ewK`LXpPx1M<697AxS8XgTQTmR#LLC^`uQYfbxk}SrNnOjM44_X+$rldjVRqe zq;t0!DNh`K;()IGOLW7l1@>M9(3n# zS-|xQN>K&MlYvi+*^B)6;hCi72HP25!w;8-T&^BR)%(+^-Z^gVg*8q5=qE6}xBx-q zHXWx`DC)y_y{|uWSvaL~`+c{RX^wmXcXJF*7R(tC=!ME~m-|aFDJnLZdxNy-JqmnY zlZ1a~1h-SI^zcgb$Lk8ps}Bn(TZ)o-t$!ISn(B;(S3#BodP)6C;g1pD0FU+O(ANoN zyEd8iC=*Bx8p+_}Fyzy_*G)p&f-|XT(c*~$5R*NlQf{E^V*uL&lyKO=&++Cs$wgd@ ztMQ{%gjq)OeAqiBR(8doq2O<$z&$;`{e2ClvbF3qm#}iz;kE~2&_|o@XRLRBH9Hm0 zkCj(qgD`Rb??*VYiA*I7=gM7Erg^X>aSS2>qWR8*JWNt=ewomL@)UX*El%y&%>4e8Km?^|5$vOcYX%QfoMG|M6F`E8P4_<{{`F}1y z?y>BqR)#(IGQiUr*sfPyval8~*u)DWh7?rY7!$k{)&YY=xh8!D-WQ5FZvH5a+kDB^ zh9?1$!$F~cUS<4y9dD@nE~udtjzd#pbQlsbI@tlc*gJ5|Ujc47&{93~o`Ug=$CJ$D z;eKn`jXSs)XB8md;f&1CGA-3=5}Ug<(}0)=8>d>yOh==Rk4p7)nCwINX5xnGwVuS@ zWpGymiC_9ynX2t~mGTBISK#}3_SV+cQab)_GVCxQvG?Y_$Texp>;o+{tPVkxf*P`? z_8rmY50cmN3gGjY4*#{0+WtmKZClGr$#}m8@=!EPoVH=Oq3XKv?gP|BX8g#S-zR3T zqCJ5~wX*uZc-E=#LL5h8CoNbonMcdQ9&?Kf|LYK5NqS_2d(>?*i#nqRP+2|-*7Mne zn?@fW3!`7SUW!(r+SD;${v*w=^rnoVQ!~-dGW@|z__PTA<<(-QLc6~tq&;mCkqZiw zcDBAZ)1i}Jg3`il!swmtN0f|gXGU2$p=6};4#3%%g17kLG z;k6KHItu6U(2H*&Gl*fzEu|OJH)wZ&pT_wpgT=@Cf+E9547Tx;nZ}-miYaRI!qGfh zo9;h1DQLNE4ELRqze7a~(N~z1I&1`-=HM^QBVBAlZY?7cKUE-xTam4285JiP5Kpvd z^xV^_|Mp8o4&d_@w6bQ>50?j^4K}+oIe9JyF zrq7@2>NFt^sNk%RUUtaf^eJ}@anH=kn?{}kq^}!s+YYKM+h+CkK<}oZZ|@i)a;Od} zcvDd>j7pp?&@TfBo2)0s07oy;U#}QkQ>)H1bb0b zMK2ApXj^a6Z?0*oB@X+SE6Ig#@$29G2j=)xKzk6SetgHo1AT2jZjUKxYJ{`#m}K)D z{vY;Gv5;y7aixDiE=mH`K!D}!R~O(ANm>A`&5@Yjl$=Y>3f{MG{4d@X#Hw3JByuP0 zmbNdny~|t1NB09{9+6ifb98!$qHhpt$Uei6Q9{Q?#K49M)J&wiAiKXHd=v4vyhDqZsgKnstw!P1`Re~Q(y^K)Ty46B$y_`1$;r}!dXtkOsunh4*!4gQ4wA(>O8 z699V`DPkZR7)-ArFX%}r(6Kq(MkA|{RcF1q93WpMjud3sVK6x41wS`%^$6Igj?trB zFh+c+z$3R4P`yAfV8B**g-b~Ea5Z|a$<%mLs@a_2cMzNrb!Yi+pIwWoGS=A%K)1XJ z0$lL8gNE$JBwhHQH9Ny3(rJAEbJqs;t z8vndz&pvI;!<_+<-xFf@MbbVr^MD=jza^iQR#wC)Jh|cRX-6)yN$+CWb|ZVoPER;78S@GZ5U% z7N;_;o=|8$1Jh{7S1d@_vRbF`RGd`sgkh{syba(jMJ51Vw5Aegh>g_m-6Uet03^aB zmN_J>(-1qmy7jt&GbTM!h<2Qz&OPZiYW!P7YRHmOjD~u|m|C?(R&QFD56~E!Xk{<7 zBJhy~@NEhF-VI3m!xg^_Xeaz{m@GaZ@n2H>gfxYU9xqAspz;F%KYw7Gq2BH9SMqGi zOpQGg^)SysfGWJ(Rm*gfuU#fvW|(CaybgH60G`nG_SykZgr#h88Y=nQyv=|e96*{@ ziq;($wRljPT$UM?;U5#7TB(^cxx0<5KBiBpu?g24{kOw)9w2jXZ{;#>rATnQIcA7q zD7s>d3zRfuJ}P2(b~ovLeNWn^fnvMG7Frk^x)F(-^+_@I;BV{VMZk+g>M83X+wGSk5G12w--yg;Lb7wOo^0?YaxuA4St+@;HO3PkV~gFt&v)1lXx(hum>>(MFm$L5O%gux&(K_~^G(x24p#O$skx(U~$bZ3JZn))}$ zWSU5nE>7>7?&-WXSLlgPi_mk$Oa<}LcEtf{M$K-oh@GpXkxrQMPW zlrbx9B};LDHxpZQNf(wX(*2}nENPz=O%*i=n~Pc2{FOKH{A0O3eA5Et@F8M{H*$F^ zLP4z)Ri`zi4a8f=7Eo|#F8#RffqU7}1L^0?OAF#XwV7BpQNVz5^OUD$%e zX@Yp{P*CsNVMA+c;2@P9M`A;1Y%Tg=AbQ1zCiprd#2B7@s7t?#&o=$2KnJD_0~XnR zM2C?^N0!Jsko|LPt7zSF6#85RWu6D^%%?NKvN?98lmF05U9=?muut>X>Fr^AJYG#! z`FSlNyKZArQjGyiKypsd%wr75H#GmfR5G}JRl28 zUn3MAA{7zze%i68JS2nBa3c}8sb;Q%!4fouV59icSeD9^q_QN*KwXPS`WTh`1v954 zgUjS5JDbleW4bkG+po53?M)v_f31Jlnt!U^%s5 zsL*CBYSwDxYLJa71pOe}5?49t@k*tZ1ZJ*el{Uk>m!u2|56{?3Wnx-UeqUWb2z#mF zCnG8De#L#HMs<}D39PXyPD}4_sMC8ZU#-FnLfDI>U*DBIC3euxoBaCUdp}p~_HOuG zw&g))w19hqhT{D7+R@Ey+RpU{Xt zmU6N{0E)TU(bUvg=_{3J4>kYEBVr{0Q8un|MQN3hEMb>>hlwQk_C&OhsHOR*GaLykgq7a;cl_hVp z<{eUR|5mQ4TSv5C=_Z?ULg^hq$vkxG;yDg`GcC#1YqlzEN1}T^6tJ9Eod#S>yIPHw zbaHaI|6%Tk1Sa@>3HkXi`hoWGAQ?SA3F*1aKHMsPw+%WeYC}b@*$>&&eb4uz1cw7w zW2~4d8A-NPghPH-^R}mOc97z+a1v4W9lgWemvM!0wFZ6xr=Y~)kCwy@vVkR*@&*s1 zLo&lh$ixqJKQe}EN>xu!v!H?B-$s#^=r%a#FIVup3QF|4y!{**a*)s36d;SdfQAZo z0iicu1J6f(u;i^4QS?1&6$wH&S6tAWsBT`kVtR^E)j5q^I}b;R@ApUl(-$RsDbMcm z;2+JjTyi1$_PhrE=ofFIvn0PHu#dCCX|N(sG&#-7onGayjdl zV?Lq8_C+52C(DMEM|fAXm%Cb~!zl61tCa-5cRy_>Yi+omTD)E1T;SzFdSZ*QqFJx` zN)QRh;WMe+iyS;GH`?@TX&E%9SLvvyv&~pT{oIV{2=zb=4Je^F?nFyY!iEb zqP^^g(cJJoJZ~vv+SOFVqO(1HU9V|1h7r(UP#E(jtuf?TPS@b+90V4Jv;$u?P(BfV zbcm%6JrvNUOu+yIF(7cg!CP#eroL{Rao{c4)O5c1gp|p@ZJ4NDEN|T?dxIGPnjek? z!~HKRbgGjg!^ByOye;Kk+j#$|<%49%Qp(3MI`zvc3cn=#Hd+byxqU4 ziE0X2zIG@YxpqS-+MdozCfd3+lFGHj17GJ4Tv7>9_~}*PqcD+FMyBRot3VY-kNW3B zn5_((FCMKeLLLsmpZ|7SgG)#PEM}lZ$&m``f-%l#M=dE}*4^8<-NP7gIG-{}tiF(? zN3Pl~`y&6Jl~(T3krb`a_Y1vX8*B|b^AzNJZUS7~U(Pc9Xa990`7?rzllnA`$huSl zJBY!;cd!t{`&~k4dx#{%Xr7)wl-WYqfmf=2kck40z0|J)1{BYoWM>{y!YTxy9d)Xp z3zFkQx$BkYiDo{39dx7pV}-irBpsRLPMMJ$>QH`+*Q#JN2L6VA$d zfza#rwZOKXFVfYwY`NSM~(c0fTO#8p#Sv<&r&dHF{TzgP&L2!8OCU@y%FCmp_jrY?{Evk zSEj<#bKyNTKcaR4ms@mxv4buP5m26St23Pe!k_vhejbXuivq> zV2Y5qX5PRDTJvLkLQ~l;_F7ajf1IB6fdv(_F)rFW;rTy<`WA4r6Z2U7=4)g>ia#zv zw_~x%tFX2oL`$JoMeX2WN*|rBpZ3Ko2%R9GaCchWwYh1g-pIG|V-uA2OfwS;T;a8M z@8qhQ{b?>N)J=|~%Cyw@LNZA0H=Z$LCx%5Xqb=XIP|9$xD9o3iH!Q_P?vskyblcYc zEtEg;MK+Y783-oFxU&ZCf?55XA$AWz0w^HAy)zOEmnw4q{==S&*N{4Yj~lk(iMHvD zdVaIA3ERl<2BB7O!I3=J`$~#)iUw+E4n*?v|FCE~PWbd2g-r-+WfIftDA;riCEtAz z4Cg7D9=c#|^r&{0K=$_v#CJ3|QiM5!&qyUHD^{kYclD{Ml>fn<42R457Ti&$)-TuK zlKkhnmXN`Ox^Uvxsj-%Xw9Fy_m?kP4Vz1@Ap!f!5bn0Ol~3-2{nGiw&T z3|dC})n4|FX+OJ>X+O6{PH3B{Qj!zbE|A8}nY92{_U|<0+NH%aY7Cb!O))po`ebe# zU`Bj}h&?zvC4p4y7A0X@r5?qGJ55MTH&mo;-7KpttPuG!+27}9MVCVxA2X%jpfV4! zh?@A;1#4gmNpIz(Hrp<3<6HR}AQ-{DFqEWpeS&%F8fw^vHd6 zcJOGqi$CCU0Wji@L2j1PxlK@f%1c5hp#1%P3uZu4<2rzXp-%XBvf6NQLVu(l^Gs8vYe>&e4K}KakUo14dFgIDo*@vw1Xu8K)E`#^|LVbgGUyZ$ z92}%a8Y-75Yj`1u(V_vpJ={LsS84$i-vR7= zfhPbv&$e~CpJ;c+(AR`^z=KlC=B0Xm=1h65rg-{e!s_!dqt?;XgQM(=qJ%Cj;qQ-d z?NZ+04}!cLlvr+HUk#6aB6Xxed-rZ^u0N7CPLa z)DHh=^}zEX_0+ZPvWBL)%vxmrTapE^kuTq`Abhij)Y$1;m4Y-ko&~jZ zZ;{<&F*=vKYaL}PZ`||96jjCUeL5kG2N%6p3<{6XImAT|i9`ZnZkojf4|H!0VCvM( zp*Y+Jw zLCy)Ax8X2P>VZI?m~XCF9p;{AJX&jfNb2;zYsoO{xp~_N(BX!f_j2Z>rI&QNmjO|~ zpnj^WnWK+u*%9KdEyrhNY8A0GVZh>_fHnna;61aADoByyph zhJ5!WO|*!Cdeoh8nSRhuK`U_TM5K}f^3MMr4dQLoqnV-pP{JvKT|(o8%oHlFg|PEF z$pSmxdmX_?UImuPQ>HdW35!`{8eLQgI z-Q+aOrXn{#!r5__aQryvIZm|#@ZrJ7MYSNCfOnMd+|V2kG8otS3b}466q5v8|7Fbw zO>oYj6!%)feyk($@{f`l_#u}9DMHj0SHjyx40|$jVPzv? zFsuiZaPVgrKJZ9V>M}tuX?nJf&R*Ab<#acD%gD7>RbBtz@CVc-#$jH`L2A#>!&x_$ zkma?VCog2(K*_Q;y!1-Fam<@|*L!b9SjEkG?fAK#<2k17N|7s)?Ke32K#ZS=yW z$77cDUua8NO9R8nJ{i?l^A&@|5yL zA0-veuLEKUm!2o)hDRQ@6+b>k6F<+JTlFK_n|6P}_6Fej*p!3RZ2pP;5sEAGYh?)* z)slHvt0i}Lzs>qSqYfBqDhl>5>MEgGL%y!v0VsJn57_gWu!CE96l%Lk9O_?! zrgUKzo`JW-U+G2kwjyD);%;5NoUus^nW|W_sm~I!qrEOV3izm-nKDd~#NEd$ztGw1 zk*CN5Fx1YA*sN59ASrMcBwYlwGw~nR1={&wM*e8W;jb4?QzZ8TrHgC|A#OXlEir$wJ$+mN;X9hL{{iy^;e~&D%?EwY%Dg%7X4ueR4(91b1OC_Ggf%coc zmVeX%hi#t*U`jtf} zLn7`Frp}^sPn-Ho)<|Ser+03-1wnGFfV8Xcc4Tb)IgAQx-HfJw{dlwLAU}US34-Y(jtk*d;%~D!!$kzYdd4EAqb3%5e!n5nZyKiBy|&eSlFz zvO4tyKWkf7D7UZNYh+1c5O~1IENPqTurt`E12CYD)gdYrTiAW?Kd#?S@6G;;es(yx zQabp~h`3c|<2O)i-Mn-X6-_rk1mh0;`o^Gpx!;S^juWaDS@W)Kq-1P^v2_Ffx74TC#k$Mc-ObKMU)O)9qv7@fAsz5T=&P$e$ zq=O&Lm6J>aLSor0OFGUnry20uzRZlP^5(Qx5z#S)--0rK;+i%9?M znXbm4TPTu@>2A98Ad`tNbT$J+hsFjc9Es+J3yF3z!}9JNsH8>T_t{IdRqjw><> zE{M8J|8ab_f# zTs}={klcAC+EEjPJg}X^L&IRI&tG+#BJhBl!GLNv_q4uQ8VbK)aV-B85JNYpK%dRb zc@6)^(YeR9^#5`EoSj{&t*vxjw?!!3uS%tDMTIc;gj)9yhA6u1oThR~LX<>v52Yc5 z)Tu~R8if!ok)+E~YTb5z=llC}`)7~G&gXnSpZDwidOhE2JKsT+r`1e6VF9#`Watni z^SFY-5Y>cd?((SZKlTAEFQjf?9y5PWpHj3xfAr&%>E_!VF9Of~9I1Nru9Gdee5_MX zLZ!{XMwxA&Nx{$Pf2A2KGimR&=zR4SE58=~K%-`RmAx4B3X2YP3KOVT)JqbddHM1j zpJmv_g8wM^Zznvhr^x)Btz6l)ELpq!Pi`~vG1|&Li9#nh5U3!p?pK(I=;UuFVL{)B z#EVLSE_rMSzo!4dyO~M6eny#b#U&Nzy}*-Tnl?|I*z*ZXiUPj+*v0)?_#v@p&Wl6L za@)!<82@Hi;h``&NEdrpyvO9mS8oB!#}G#^w-(_1gqXw>Fq(rS08hgmrXi9@mt#{Mo{r*s{#S2%YkK8isC*c6FPg+)Z1&sG2$HWWPq_ zSfnk`;05`fB;hQD4} ziFUg)te$TY!cbU2>|qBDyl?Rv_x$K@`shb3R&<#Ab3^ruPrTK8v7uJ840Oj*;|@D@CtV3PCd((giWzQ*CR%FbhHoWxKLi4>Eqk)zyngBA5dD~!C~53aq} zj(*9*Q~r-%jk8%2>V#&3lV^;s0e;ubZ=E0%q!AXsTq_H#4k>tcker^KbRV-kxDnfk z3=NY4W2VOUWr2EpLWvxT+%GrPki=<&S@t5w@eTZvW;?Z|hfmR1u#2XDfcNH1(3wZt zrV6W3vxD*eS=??&K@8=+qP&(#yflh80eb*{y7LOaeT)9XY8B@yMv#gbU{t21DGLR* zEFl^E#-{#R)!u$Ih@6AU#ia73$5?L7cC-SDU%L-x>^5J14p}`tg%X=oFW}P3xVcD! zadD`U%pTv88M7InQhTiCmzI@SzA)TEV@+1roM0) zSLEam{qQ}op7vzhj7;h#BPHvAKm^XeMcwvfFECkB1z(wTEe(mx^GKdmn|A*O5;}Df zKT*oTre?_K zFsVrmx85(^h}@>&z1J8-qe#G4sJ$u>D>CNH*h!wBF6_&0oYr)6QMJ`h@&5cNB*lrK zM*v^WgeR1{XQ=`B(wopSqN4_d;93<4XV8K;giAYY!Ftf$1UCfxo0VTDyF6I##D?X>IB4ec43=_(Oxuj7TwbaE+ACmX(el%>MQjO@w^~BM=%h+P4cYcc zr~)dkc$^lgYg%OpW_w&WE#7#!0o zn@~%b?E57|4Y#iUh* zu*gyj8gXU*_7*KwDU%{F=M!=u9XHumfzkRY%0tCkzyo3mRIBH_r#<f%73r}aHRr_*9q5YNSw3-^!>Tbw1 zA9z1Cg(iO2IkQf`uVAyj0*;+8vvdj;W90`D^f?eLHjL!9z$-6$l66;9q2Yk|8p?+I zeRx8XxNv(5TMjcwqb+iRyhTUl6co8jTEQ-tfVL`x_#xQJikq92`h$rliImW$gVx33 z#wkWc4@KLw0QG&bp~nCq$8=McPY*$QpDWV#KM{JD1{`|d_g`W`rQm#Arsg7yGOEof z0q|VyIo1bvJ~8U*@OHaYt$9WEsgVbz7T8I%6U^9H(-zqDag{X1!Jj@~UFE!Enac+S zHm({I)9FTHnNOVB5P_pH?@Qff}y^{o=hQvBx;PG~#D&)&&v!gTV+ zxpRv1iil9mMtlFkTq~izTR|E#`_X?2V37`BIh0Z_n5LY8rB8`Wjupf;yZ)brs0$bz z6^3ytGn5X3Gps(7gS?xQq&7^GIQps$i5FuS29+xgAHic6BhyYJCI_SHFzw%16XBeL z1}+D#L=sgwW~lf#2Un^0sit^OPUA9e&iE(zT4k9u#UU`JPQ-F5FT7y;+{JPLs~Y!#*q7v_Eh0vo6V zDlt@6;Sq5N`*z_xtr?k4@d@8c#`DH8p9e_-7W%O151hL_1-R38nmAV)LffOZlvaZV zs0WQPdez`%ak5+U=gp&^T%OF;cD8GV*ay4xPWyflSURhqrhI zUpyhJff2oi2{OMf`p^n3!moGeZJ=rjDZ@n^X3pE{pP*oiYB2}LDKrYbb7wpGY{M{N zM^ach?a8EJ{_MBs75H8HztV72^dn{3JF}a61H^uryE{xQ&_{ML)<3#OK0oq{eYKf! zYq}~WrCF}-mTYZl(}cq9%gF2fFr;fyCi-UDPUiB}I;j9{;I4Fl&t_qiJE{t`ipBbC zd3a?KAUlLHd-U<%^q6a+KWR$@=N!HomF- zv=gVf1un<{H#3jnweh_UL%=R^x&g2b(hrI@;>X&>Phwha6QmbkJ9g#$v4+pFHs4IW zUh)DK9i=6p`A2T(UkD#jLR)bg7$iCHl`VAgS?sGKx_8-8uzV_+EOnm@VVhnv>|M>b zCC}7!5Ofz-BzOq2f9TaVtSPOgB79M@B;dca|M_G*9xK1h;)iI}lRa=}2beS_6@qWR zh}1+Oji`qdvAU1i&}AIGqVCkM_%WQoT6ib1@5ozhvLl`>|D3{iUvsuIJYniDRgml^ zF#*yRN;V$8r>$S%m?;9w%z>+vR+}lc*jvxAk=#qq{s7_eX;g*D1lEzqoLcY+E3Fv2 zc-QNrvMSxkuIu-p5c>!^;a8NcO@z(C6GICH^K1m%mW)BvYmQqen7crvw!n0g&!${% zhm^Q^Qk0L1n>aO>!)TojOK7EVOL`&F? zr@`3*O7HOluTL^P&~ zb6WJewzVw(0gun`x<_I*`DWvJtdByeW2m&99W%k0k1N9-UF<~-ijODk@BshUS-w#? zD})u(4;Y$DB1wHaQ!u$|x$5zZ&VOG{$dI*k{sxV;%xUr+Rp2XUYKEI}6T`ZA0kT}# zj1r8>4E~wNtf05`D@Ifk;@JW_wW9rgZ>FRpj7ouC>m2yHP?k?z(KdaaR{y&&O)v0p zCF#y?(AIOi<^IX$I@0DdYMCC=I438;mZf_u8?bovTJPqhMq1cA^qeW*^~{A_^)?%< zLEbxOKqtjy37O_u5sP&|o9^mXex^AtZRd}Eo0H2U(>JC7zv@D&5}T!7$u2&tPO$_; z{c@}2hl~rz{1y@ZtV}`Pebym!n{O}VCi)5D)oKs5G+rJcWY&8?Tu3NBwwT*R5PxR1 zZp*&=ZlYPmdet~Qy;b(ZQZiWk98O^@j5(NlW?Zj4Bt3;O9n!OK^hYnH>8I$!NEJ4D z9-#(W4TBlaxFuk=Fckl}e68Uq7l zZc+Frj8*061aIT42wtCl`-B&U5j~e4r?y=U|4u$`2R!nGHaz?M<*@x7uc4pVCRq_% z&z_>BJS2r0rgFXlGc`5I8muy=N=`i2qlII0pMlP`EaE6=M)wcIcNr!qSwAX6#QExn zs|X9)g`b!y%JkV90^igRSH<4i&KL%|5$O2?6Uu%ow>x+*iZ)<|N9;}_g?g(MqMh5j zyA+H8U4J!j`!fFRKdxP_vg5DYX&uUnXjypL)j5GJSi}2VS|4g~aU-#OkzrmZj*x5p zX6n)bKj~@YhV63$#A5WH~Mo;TmRwE`t~rS~?h_UkSQS!SN}CBOO(y$_Yj90^HP*NLoE+ zP`)|u%;C%J?zv_%6hx+iRHoFR9$_)F86t>uOUk+->)e zCc4f*l6AM_KB-k`|`E0e^xU0cv)0# zAKt0Z3a=tV`-Q#M=aTF6+B^J(^eU|HC@8GPX1 zWK{}WpjSP|>NU_iCQ@63t6E`BghyebIyKG%c2Ox~+fCSa`s63^s+2ZsP%o}ar)Y5< zA;3zUOb9`gg`bW(R~@gQ1KqcFx!qG)+wUPuwU=$%D|3vclcfW%J5bzC=`nr)-eM*- zm@}9EllXbj3%Zf?M`t9MwPCjt{Ny_Bw~uMR+B4!S_h#|Z{gz_>oV3jK^HjDckC*jkuAZ{4@%O9^s&N< z2>Z9I2~>nqjH7de8he|?1F!CWDTKG2V&TlC`SSHEaTElZSEV_7Og(SOA$af4UC8!n z?)fYZ`5Ab}f;eayk)AN^T2xAFS59fR1!xoRq!4#_6OP{!jfifv6BY0z(aX{Qu$lu* ze#7xF9fu!KVvu@2S(4;whKB&r7Q8SOa8%;xV1g4}+IRxpx=@~K#1|r*seK_sAhtT*sU?|D`L`u>6O7+`+rFFPM3J38e|0ZX^^?M# z&vFO#v)U7@QPsxHrtIN8cSRq0Nu-@RUp@;{5))X#qA&DVWB+ezoWQcIjV@i$lXO zCHi5p>0gGKB(k=~9+iFB&^XIrz0X~6gJB9_yL)d}= zqt+ipTQ$P+5@g$kxmT~M7$j(sF0PbomfL|j8#x)fB&i=hU?QT7Evs#aqior9VH^JjkqS1I5 zR~`aWH&lSp=ynxNU$%$PF6?o;u3@^xe-KV3=x-N<<5E@X0czid?X^n_kAXPT;K9SRk^1)D}CcYzxl5FNu9&+m*Lz9IiJw2mxZPmk5ov-U`} z^u!w;g6;I2QO<9b*5pLeW?hCQz|qmRn8wDZ=w=kr*_$HbIb`ynGKnx?H?Fb@x6hxX zN9b8e#L-}u>-6}LC={gvyjhEOR;D^K>mhN}!X92`hj5(9nO-D4`~Z*_z#%C2(Fqi+ zc11yN!D&r5vMDh@G8esYXlkmRc4KFIxI$o9Uais=5l%XbR$a21>jhCxFCvXIi)kbJ z1^O55`;w**(CsLZjuTiXJp^x0Xb9#4t^J&Dv(2omngm#9IGML~QnP$M!P$m#G@F5L zf6d9*m_*WDAzm;(h<5j^lyw(`pqaJxK$AW?ciL5U)ImzVU4_>4jxnSI&pKpZx9@_x zY{lz#=3LB>8{>yBD`YkfEdb5i@k}5oa_fa zDX=Oxx&85D0UI!@hA&R~Usw_CcmKY^to$OC!fCR>nkNnNzYEPpZW3O3+_b7Fou&o( z(?5jq^)CZuo`$UZ3Wpt|Oe;Pu3yoh;5>E}h{k*7s+{JUOSMf3pLoPJ6*>5Z|DB6HpNim;ab0HKWtY zw%$r6f8cji2{ZiI=7Q%8XQ@iVA=d$~n)A-eJ@xi^fZtYJcbn>eNfX1T&YX(K){#ZY zkUOHPG5v%hvYeA)ZWrv(w_txNH)PAn>MiTx(BWe&T%r~6aXMR>DKY0R8~j+CI>S9? z!1#H_j>>V>;?BizS|bijK(9IaFDw!h&e#niqCElVr2t--3>X-IjDM51jUtUC(v(mz zlW5dV{4j;VW{n|82_(RbaFgQGxu`#(|4!nRwi}7sXNkV?0s1*zgaNKXwb+LLYoL?xXQK ziOI_JBq~rA&^br&$CF)(=LWXBx-wV-FP2*!6q|(+9+EkJ71iHaW&5UCf|)uo0hHD! z)0EGb>7O?Mo3GQh9YBIMiI1jJ+wy@Isut5jd$><_iU;NuHK^YCgoK;oS&M{Z#%9y! zu;&UjgX5t38t$fv=F+Y=><;~u?>j-*5nC$WA--as3OmbxJiuN#TM#)-v9|LyWw$C% z(B6f4%c>u-*j%bW2{-?Q4&)s>o(8V9#7Py)bfAIiXu`uC80YK)Cr*{~RZj zVd;7GMH)(SlJ}{Tb=Hy7DK%9XMz%c^29$Jy6FYt#e1#1l&CC=3jySegj47&ad76ug zFB5$p%O)}1HzPYHC>!giLgERl+SX1CIh5_1c+OD=@@=D`f!uL=?DSpm{QD}zihK^S zu?&?R4dS_;P%XbfUdx2LFufQ}O+f@B?xCr91WVQ80+NrnNa=eRG1q1m|Aih1xFpAz zOma?lC3eVU3B|exuK{^8XU;RP1Kv&2-7cEV!drxla#-cZ^$v8e*G4Wy4^WQ;-IG9 z#z0Ydk(;QbQYFD!Hc#^K@g7W7bmYm5+Gx$t^xR$F9E)ySI87Z)Z4;B#;!h2MIP3Jy?Y|>0yc9_w4+PvF9|rTrH*SPmmZ3X=m=8qH z{i@deGq`Ni1Vh$c4-vZ%SdnHMeZ)*^^}-Zx<$w2kUP6@9r@kRiO>(v8Q1}M z*@KWu=+14$WE!rNbGyI&JTM&M3m@wo*voVIm&aXvRMe?-gwns3+TmQMfM$*9>~eDd z@$9{uyw7B+HjMP(Wv$!IbF8u?W)2CqVq#Z3R;ZM(Gnq?1O2+??i}T4@LlWe=8TS`i zi8TSeM{z2!o*VMjTDoHGdfCD3T_GA>A!0eX>74`+Y2|zfy&cPS)}v6`jUmCjN-K*>)1PnYz&nAu;wcm2l(EbL4gf?82zs#Aj{U;+w-=A9Sj7hP=l@ zwdZ$v6+HQTrV}ZfKz>e+CyA4zdFl+c2;Lt6#~|hR%Q8pw%1mVDoAYNU{|c6& zghV(Rz-wUPZ9fAmC^ASINRFAD*ArnT)iz0ZY9}c8P7%m>YHl(W_wBSe6M~_DYG2eU z1U(HqJtSq6l1k!oKjbr4O!(y_utrGbZ@b=~ALF~ijvhUp@UKC(6Z~roS-vz|Kjso6 zW*2}*wziFm@Z{MbV~?S~Ne*vjmyHm1G8gK9!zEKT!ZfT{qY)^9r_|mxFg6F%@=uNv zjp7fCk7_{{eO#wmrU#_@=$R{faE)a9qap<(Gky>wMk`6DnM%8Y8U=fPKl{p+<_*3n zw(DhOI)=5!`-?L}ehy4Oa_kPbcUZ$&l6<3dVMesQ^whSz*?pdAK2(vcxA~4*#(l1f zyNa11`PP5Ew6|8R+^D#HJ+D|_Oh`CYQkIe~bi1cktH&2kEtDsvpFm57Wj>1nx#thU z<~%4F>iw3gM&>=zaDK1eJGmF6baKM|3efI_eH=Wg5gr{$+EiN&8rTyrJe6mFWxvR4 zzla>Y{EZWeDG$8}&V*8UvNSXtD3C(N*)IWUN!kh(d$ctrdED|Pa> zxW7`Y6^6JhEUqHmD&aDLoF)7wVRj;CzmV{zL3Dku>6$EIH7?9ucaB}@RfG`Sf8?A| zU#%@Vdp4E)MhQ51#5{wj_BDKSg&J^TVKia6FZ5EAvwfT!t|vA)M=58q+8+SAzr-yW z-@uo2P7`MZ|B%Smj%2d(m0)swQ@SgfNxjF&;c)cV+NbtYY~QDqkN_JcVy!*#5^$#* zmCe@w;VK8OqVss!?n`9rLj=oIdM>WyI7neujDu#3C*Z8Fl0SoZp~bYGv0&v8NdkNa z@0?Kl8&~!5od;^Pp-2Nl>CxfKi{@E*XDq&ULsu#*y;f)WE zXvcn@W46AJV3r4(b_(MYokjP4t>%w09A*oKy1!tFzsQd6=B3dJ!Qe|4zrVrs;k?w) z;M29()hAFU3x3+pNrQK{Elt?_?PXvuTW@k#-MW{-qSNXzT*jUWFjCpD@&NqluhyHp zl(y@0r3NJFsVJ#qv~+(|TbA$0h(f(Bji^3=oN%P*PVo)Ozi7lMEMi@^s~`?GOD)E_?uU0@1OWYCgyY>T(F4R$ zAy4a&?iu}M=ifwA)91B}uq2NO2HMb^AgS6SDfxH^x^E&A-I#j&;~kM}OcHVamFhoV z5Y-VE33FPZBXGsxM(m`2`CuziIHtb)tbxBx%yG0KcNh9)H#Y^e+esKr#C5q8`JNuO zhAXT#JHeL_Rq49x8~Tj?S^ovW-Abb^4#E?{wg8?~xQjt2@+RctHVG@)F$F;T4?O2Q{yqo72?=@eNHiZipKSFA2!jFkI{A)@$hmXZ<7S0J{*gI$1R*s(w|d zSmHi4VgtpDu-2kT-7JntB6Txbt6qGKBSOSYZsIgoT-(spD8WfEqaHD=!$qbnAMb94 zuXMyjWsp6bU;TDb4!6rpFh^T({b$d)Qkt%N74weqDMe`{#q00+-JP^LEQ-8`#xU{Z z+fyeQZw})aBYxic9g`u;*Jo=6LinVPNtSeIGdibq*_S?StWwdGaB#6jZMBn~@`fvS z6cyq7Q8iLPepHZL*CVzW?N}F55IXiEH&aX)ZG0Bb_khE&U6o;xZF_Vbb>SUG!2YwK z_5E61M?@iBNNaodH0LTY!MNU)|3}4nnsRXk?p#BihZuQzAj^$C6b$K56ajv`1})qLagAy@#kKO~4yhk?%62Q#;9O#5!U2JFqo*ikhD`q2_L-nQ(Q1gfjtox-+6dLD(>fd_o&zJt5AkVp3wRszN+>S!h>a1teY)` z_PTJBKnk#^3His*fvwsQp6`v<79!2V7&%j8CZCNNNf612w+W#hyG6bX>}>hb1AK>OEJ0?o^a|9%%%rd`ya^@Y^?3So36=5vAq;qY+(B*M-_Qc0OMSvOx?L&BL&{Qoc;^El!f{iJvHf(}xQOiOp# z{vSHM2{o%R-ENOGY2bzi#kP=yV-#irLE>CVk7GiYw9!2SyZ^8ws`accA3m-X0GMQr z|C<0=z0s&?c(JGFO zJy>8oI#d+AMp6wTU>ye(~33cMFzJuvY&R z=}t;GW4A=UQ<%4F9Grj2Q+ytQ*UXhY0MP&yH6vZwtc(s6CN96CIy@DbK=1p~o-%!o zyDTWRbFN$>^+Qvh+_^O?K|}tzR*xq3dV-|VYK>(d!f+Pt+CX`7Xp{nood@?#3{&pj zC2U?spi+6SXuTKVD7>#ovY_!>QcdTVKUTL!Q$Q#Cm{1M>J|_X3MskBG`99I)e$Viz zXkhvI-GtMYW@cASfsG`uB$Asy;J!NF*lnST`*_bB`4lAG6Kg9YXiAN2DT1_bUAbbP z)#b=-(nkGCWW^vjcP=kvi;CO2G2+*+ysUe}*@Loh0$E zs@q|b0d#mNs7_S!1MM$#VRxx)c#Wuo$@xCS>|k=kyeruHD@sycwi(z?V4tF;$pnqD z*RTINHHQ2}PM*jZ7xw=M&urgZj3LuWbso)LIE3ol$(bv*j0k`0${d91$v zHu14%d5FixDhK$_===*Ug~Yp6RxAC^KoPjJVOC zJmfb$$*(R%dOhm!);?56+=!m8 zrQ7)lbZdUR~N@ruD6_)r~KJHNgW}Sy0`r$$|9w5||&7dK^%SxhHu-ukog~2G}Fh%R`^sC1=G!n(D!ibGriD?kzY#Tmh32T zZ3s9RmG`M{3R@`WWE#H=o}zqhCAvo=ItlJ}_O;-nK1audBfGI^NcZq6!zz0P;p6Wr zY)mxt%If*M4bpnAJu~HWH(ygqd*hYa)s2$gHYY(hGfWBkOMTLsZisIJIE{bZdU4uz3~}-jYl+Vx zEj8_E+5)jX>FZMBQlU&uJx~=@`@0LxH_X}3ajtI{N;jJDjx%~^q3`Bc(AibszU@MX zq!;HBVdgQN+8#bk0G=t-8;`QwI;=e#>9*%5PQOe%p&v2(xju(!vbMp;(H$zsN13HaYt+p4>5y@Ag|rf&%SKd- zHa0^+9gHnOG<@ETE{JC(^ERcyi3Gf0q>2}8;H}A|vyWSbt*bXFPB zYd50YQ9x(wO?M5!A3CAaMlm?v+X{FG1sT`B0zJFb6JE>jyJq(n;r{diEqRWa?Cv^F zVd{tP;54m02WmeA<&P^U1tHPEKoHc_Oa=V9KfzDiID5wj;pvraj#0WjI3ws;uh@W? zGjtbEh2XY&${PxnLMk&1d1V#Y+0fKe>sn*FCa`e(EI4gK$aP-w+no# zC0U1v7Xl64p5u&dszlwR_61*t`q&+N)$1bn-a%e)(yAM^95XL{K7m8knyTd?egA|H zhYK=GFII#~-mRIyr&QUI=gNA^&oI2~eQzFBR!#n}!;iW%vw+w%((A*7(rf%s+0RJg zoleE8>|2e)EN4j7eQqLlE?0JkY@NkP18@tpI^pOL7M+CsbCny-@Q)|r(o5Lwtk5c& zZpuzj;NhegnI-%1lP$fuLcTvr);))8{pH-J1?7nO`YKSb(KH^NZ#hkT^HOv+UG(=3 zAlR>#bC?@FnM~PvpJI#)u13wFl!qf|!#(787WGMm0Y1X2E{@;O8JYs^Yv7PvVq#VC zRN*_dA~?HcHPLGPrOJ+K!loT!oig0%8L0sbygpRAG!iK7k5Eu<31AyPX#$`n$V^k+ zR1I$X+hB3G`bGqQT1cJ+#4PQzk0vdOaD(#8tpv81rSoPc~42q1>#0uBIn@w{3k51PxGwhT;tq4%!xx z1pRNd$QpPe`S?7iZa4 z?($IlYV1!h!@VB5*+zPLJ>90#??;8`mar=P=KCM2vWyIr{ry9c|G?pe+-EGA`uuE7 z1K#aUhM-d=#ukGl_os|3b-q&&S7@+_BP^YrpjM4i<(a`WnJnv zzVzKz{zjE=UauKO#ZU=>_%Dy+Qe)S1S0)aE)&ek2<0WPF)LsX{zA>r>g_MNN62p5L3a(2dSIZOa6^S_MdbQD7i}9eM;Gc2!d;iY zZ1|hn(s=s>roX?UVw6?Z&6@pi>>4fn$&1sNsf*#RBk=YPb3zC9|3)g?9r z#XFI$j!j1sZU2x%{*j93>2)MDscc*FENT2a80TWFWuI3CHpc+AH={Meekz(@y~;c_ zi`%5!z+z&e{3-meYHb>)75pXOr_Tmp)8Dk^lgPt)A~oDMgt5;;t2hu6ayK?wmuOq? zy^|0e0L3m&tvkTks*f)=N4Aq>&p5eJJ_tLl4nb@@c@?5|{NS2^0$(9Pd&S1pn?|L?62{{>PM|pO4Y5YqL021&J0Zv0P!2A33mSEIRQKZF_I^>b(UH# z%yyT~V$PQVpQf~2^;4ZAnK_FN>Ejs~ye2Y)IU{4u+2ecgDD@%Nj>KkphI-y^gzC(> zGAM2|qiy-C*1LBI%56&x0%Vml1lwjftEdLun5OHO|3^1FE9GoRR@@?2s$f82mGA*_c2Tjsb^soo0{5@_2IlHO zx%(X?gc~;HX`hgmJh4q(BaMv#W+s6iqWs_DG@lS*>YKF58sK%im`L>M)Qe@yug;Xt zDMB?cm8)DAT2VGU$B}o0acc=boKlFWspKG2;C&+mbgl5+@yTRtES|O z4q$*toJ!EnFm1H5eFFr!Jy+50As>UWiE;JP(S}C@wLedO1Yu$aVH2f(l9;VNF=Tjf zsX8M<11L8DDju>bj1{Va5iNb5_&`c)KZ@?fkS_=Z-CikG9+W!k;p0Z%cZ*T*LM`RX z64FtcEze0k&!LiI2Y?JUg5Lo5Am8lAiNeYV+~NiA%#4f#$L#Pq6>ta=P8KUo>YJ*> zS1QFeZ%p?I#fCW?8x85d_2L&{;sx7zkH|TpoC$6hPzbvk9|8P+afjtbXsy*JWSKwr z`~ok+M+m;N=NEC*aPV0IC0GQw|6#1nMz$^FY0bz<;C!8jPrk{g6Q4qXMR031-TlCL zr;{SkMowSMZ-VkWGHgWTah9`=%4+PV#}DrS`4VsRv)T_K?>231QS7EBd54v@qmIfp zb))v0acm-)OXeyEX{BDN6Ie)f7by8%)2)$?xqrxZAWSxX$^7|yDTV=)FALBBrDnpS zhqn(aguZ+sBZ--wYAt^_R)yzee$Dg$yBEVqv6dAFhja0(WIC%z)_$PZu$&54++&=2 zD|CeOC&z-P06oI%S#0J&WoR^9!r-jTmM9nYH4;X)a(IZG^?N;p6NqDZax;l;WHb(4 zUD_Ryadj~dVYnBQv_njvdim^nPi~rVH?=hB7Z9w{@Di{j@_(zh20>}A#Z`0 zj9%pW7{?v4kSENM6--iPUh$x8UZov!^2r^wzQRyRKDX|lQ5}KO7)P386d72VWYccnkriS4R7}H-msp|xfMvAVNaY|^s zdGvQESayt(P-)yV%U{-K1X;}Z50iPV07ng&6kQ{`o489~icW?C)oQY>j`n{R$d>sE z?JFj0Yvi(59^_@4)<~Rt0+OVQZ+38Ao`76uBJ=fdkhN|z^{*p5UvU>aGKLzSX&Z;X zfoDH$M*nFPqu#$Dxp=Mg3DtHKk6`EPC56*_oM+=L8)8Dl{^937nZ;ncEOWHKHQIN* zY*h^U^JeDes0vKTR=z;@Qv*$Wcf&u01>nWsDxT8sW8|J-Ap8TiqIfQ?AQjU;^aI}e z9aa2@(2e3No9pB;)rLAsoF+QxOSJ1>1X7@Wsx$Gg`EQ zntS-{;}UhLn@W*@bo>u&`?|GfN?Zp47tlg!c&rBckl2@IC5)f zOg^$yI#*TqK#P2X;uJ~HPAn@PvX)GaWas_B9rllJ=ut#7oMPU8S(AOSxN;xk$nt~D z7Z-MYJNM`KW%lm=@eFI(z~!6!laExDcS#>^v$}FY}9rTY(GGGeJGyg z8Npk#8ZbFH@3ma<$|v39(M5azWmITGzpA5W64A5P7=L_4^QS4BAB-wq#FMvb%1*7? zIWxT!)f|sU!E^EWz+e`vx;{7^k6|WKV-jtsf@hv)64mArR>HS0r7ZnWc=IvQ6BWsN zV$oXCjprD~^+Z618{Ga;O8ux#zHtH21V*hr~(F=h_MR5NgH;^1G( z{AA?iY6sqAif6=$yxH{_#TMerG!R;gQE$ZwmrGuRD4tX~g`vl67QpZ4y2|rxr88uM z94{vUwbxwsp}Dk>cOx*x3Fm)6ay@5^7P}l?F)>ZU`QGn)iqTZj8ETsjFxs{F1xB#@ z6cMHY(9z`adSZq6J4;lo?E&>zmNcVxKQ^OH8)HX3G2uexD>SsG8vWCNVUw>)GdDlU zZfsU-?5omGnb!L@R5m zbi9IX|DYppe5IDF#N|}`y@P4zc11_7PV8wr7p2d#ctkI%W7hkvLR`KW{%`a@K6Q ze0d57DB;ZY+w#KB(f+5jS?IOv1x6wI&yg?tstAyXYsN)VvaWjw)lY!(ISIYjJYVrJi_0i2Ca)=5l07CE15fasC6{ zy&j6Qw63?5{(FnZylAatzo=3|?y8mr2bn*vYU2e3_2WQr6s)6iquXoIJe5Uh3CuR+ z+_auxw=`Zxe^n*+;at*tGfntrE}v0;euyRc-Aw;#M}OkmZUe`zbV92);@nuG_nJOkE*&$f7r+i*qX9R;d18wKyLoBkq_`W+SOhWNEKI~}v85)qRy`anEb3O%XUM)!)?%Z@YFHc|a@Ld1Y z+kej}@IfNCmwWJr4(V0&=$+&$;i_LR4fR$!s2pDUczH|Gs7_!lYgtS|JbzXA>(d`m z7gO=Pm&_O3mEvO`WWV_-l1mknKS~A*SJ+J_{A_fQx%`^7lXJHeHBjb-e|ZP_-MW0y zlhScUe!4R_>z5XVVl!I61TPfD`P<&*fjUC}26qkMaort=w6 zZyq@Kkz!*-#1}OsVa}t1RHC9cGE!%^?DF|RT6FW~NEzwkZHhseg4S1i%W9d^<|liO zfpOO-JY?L#?>r;*S5cw_ zySY5!kqe#Ui87t0%n<#yyaoCfp~<7EXf3_EX`I~wo0kF%Uc{m@qH-#u?;^pbethJ& zjpwP*?;4mPD9s*`ZNDX{ z2Cq}OUuc|g#6lrHQkDItV|tP;cVFI^RoM9_1BV8OKx669rrm5L`g^kQA0C%=bDD~d z1kS!iohb0jhlI&3c8KeHIpp`P&}&?E^IZB9E6wtar1~h*w=2M{{^~72j4vfpIcVkO zpgfDWonKGIdiK$(Y(*dL`_wJre1#vOwm_-96K)JR7(R|eV21_``P+T)ks{|yX@gbI zNLeLG#9&^{EBP2zeot50c@eFXGU^`D#Ac|lA~Y(S6zo4qaO-GR4=@)SpA*|Oh`-$C zY=}n&vVi{dpTOvq4yff)p1s^6UgkxT?%v53CWit4t}R%QXOT6ZU#ABd%)(c4sioDt zi@P5>_?N!v*C9j=#9LZg(sr>^LK1(!`}u(5vgP2xgQal%F5*UtZZ7n6d!!^lrEy9) ze}(n5LM?$oiK*zBZg~0ho_TBp&h~!z>%hX}g%!p*pQ;Um=SCzh41E$$y*2}gQnDWf zX?b}aP_NK6ZhLTGtoOy8=jypkZV57dTI-^(og46x{l#xsRdj21w$QjQUUwCAcK7}?_$|_|My{w{mcA0Ja)>Fq32a|SC%f>~cTd0GLEZxGNcW*M+qXw1 zGy?7nM$Yfbq%iQJ&&xM*$W3E}n!tVG$7jp!B>TI&fI0U2<(wIipky9ZvT3NF-J=rg zOXf!LZiD6aq(Hl2(9VWb@*+A+1{DSq{+xH>Hitt^uQ2F>3iWj>8pK(egIm4hjyc5M zIb*oC9K6wtw^Q)2eUevc6o)mOWC7()e>JW9mWa6W2;=WU3hUgDGl;Zr5_2VRn z)i9Ub)n<`?6`DyCTcP}UBQ1{@wB`_YIA0U1<)5>|FvTMOWgKI->otU+c)$qblkQLz z&m)!aU@w7_T6Z$@y;Z7ktv!_6-N-$SiA0#M>R2 zO3}o$ER)_hj6uOy6;wA3>bBndm4|4v@U-c9nn&%&HHG@zUX%n$_u82x6TU5KqE}Rp zk|3(&(%Ao4diQvy|NsC0`P_2{Y)m=MX-Y*opCVyfy^2cls+15bIV7=4Oktb7(m6Ug zCH8uC;PvWYMJ0)+ROGlyNDdRBh&d0leIM`7@Apstxm+@j=W~z8<9@qcuiB;8)M9Vw z6)wDMY*umQ-nicD#!^>xkkqOf(7}IfBdQv8*%kS9dPZ!{zpLaVJgm?ueYXG-!fRC> zh{!K(mT-gjd&sD3)ynsTipDHMzjO{Ej>6dWpc8dmQJK8>_vV+4;9(N@XP?b%KJ=~P zbNGvqb;>TnV)fF$65Z4vKmoW^`o*T;vRLI7AV^-`9+CK(*OPW3s&aE zrMV%t;0Zju>C^{sl8fs^U6@<|*XS<5Xb;krJ>ao1fVSS`9 z6;fpj68F4}7W+<4}!bca%-r4A_O+tw%BW8gRCx=hkpU6i!|PETtvPCh>9*nmE|hH{8unq z#gQvWmrhf3Im$8_87!DqVE$1g&FS#Z+@@4tFK9N_`Q(XN_>JDGQX~z8sq1_XVGhXD z9(v}%*8heQsA*OzfuGhu2DfEzrk1j;|G`#IJ9+D(pPueXmNr2y zhjmJ9R2<@)NCx_1r0G{V-iTGVaz%~g=VAbUM_8TrOQ?0A40RA=-kzo(hFi+~L^u)nfVi+W{zBP3G!EDb8)zl_A-3yOl+AAGHG&ES_H8k18dE^NIXQQtgYzlqn$O)D{4xMUOp( zsG3dz3HLC;6C_%!X;N5}ueejOSBEF$C}5Z?&pGNB71mkZtz2kFrSD zx2S}jRvyE|J8V$13k?NZqf@-crSrIvJxSQ^bW)JF8Y!Ap3U5=kT5E(iIMgfT zWKUjZFtXEnRnwEz%6IHnk7znAUeY2Meo9e1g^QX(uz7D}#Ki1jZ*ilexPk1oMX<{K zx--k5x5e92m7EJhs-%>elZoB3t5=;aC=@Zqs<#ZG54=`kC7jn|Y-Rcu%AqQzFs08^ zZe8uwkz@o#9}sJ{nkM5JTar`b%VQ{P-2_V3OYZ1`T+P`>sWYZomI{|_mXn40KxK=Z3ZhC25SRhslZ_OjbL9cL^&^>U3gxs+d)qc|`(JE*S!JnI zvy>&8X_@DQesg3^B6mk=u}jWjSucC%wzW~RxRmPzzj^lr=;htZ8h*vPzYg2E5>Dxr z#A=pQ$OpO##EdubW22aOikz8#J@cSc#Z^_QRQ*P;DvPw`+yb@wPFub%{dCt#t_O!_ zU4?DkN#zX+_;$bYtrfcT_@_u)Cu}_gT`@w46w!e8kN}TFRjUn2kg0n&gk0Wjcconm z8s%39X;Nnkk$lk`)zd23N{+p&1L!({@8|EYJUWRGl_aMUn1Jq((1`wVPa7?o6^tvb zO5JIE2sg7Wp`TIk96+U6ct3rl=4!Ck`-`FF08%z4SIj}TMvoKFf~;i z0Eh~!t@HR?B4=KcoexWLH`v;SrRrF7Y$UhC56QwlOi`aNVjWbKz-4>~)j>q~HC()= zm>+-`uY3QxQg`3&uX4pJxct+0gdL#H@)@^hp=u6ii2kc*=N#7~_AG<%PAt(x+gLn_ zRwO?lg>!l0B?k{O331!ID`ZW^tJgG2WH@2Stip{|lCP1q4iIp>tuUin(C-`AG#X6E zUdJ0=<>yC_x04+bFTD{am5r|EV_6nZ%Nyj;P4;+3DLDErUzU=D^Wji+TWjbJHvD>o zFi+pI9ctfDTC39Khu>O&Vt|zk-=ft{+#Qa)oL?Z2Cyze=28815cU6b1eI+-4DQ>jL zb-cRpWeO6opqoO?-Or5m5>|;<7gomT(r}MCN8%ey#fC+fNSRg&@2=y3RDJlKzF%cu z|0Cui7&X`XM%>4*!#Y^TCJbz0Q~T;#iOjWtYW_@#dHyF=n4Or=by%4DG{u#blXkV& zh{bV=aB~~lv36a;67k7x!4x$^TD7s|vO43{t5l-C!?&(B(`*7?AG;36!XO4SpreH| z%0TCMaI713sAJLzT@t)@vnX|`J6=t^=`u}WXPXFxopKi|IT0jS1JPPfpW$9NiSFni z8jx_4d+{}$0GN@Znx7%H%_)(Xp;a63?HPXUcB_20WA$qJjVjzoTDuxuvU3}A(}KPq zpSzSmW4*GDIHl>JG_O$-r{5lnwH%d_9dflw^wdgEjS_&q^=zr$UpxphjKN33&N(mb z5^>!JI8n{3S&hx$$Pli>oB3G3$T3a0&G6!b@qU{^Irgr`l(Wat)jLv8qo3oBHk{-x z&NKsGa19;t9z?nm6!|==v+4}e;n~Z5oP)C@VGIpa*7PSs)-FkA=5HlaA3X4C+O_Dv z5I{WikaJ(o)gT6y2SOpsEpj9n<=K^#~-8|Vo z1$a(Cebo=$_FN$ZBh}3i2)NIl@T?bCT7Bb)n9CyS)HN*t7M7&LdeDDFvNKAw^$+H@ zokN7`z08YbXA7)Bzdh5OMB0I26AHAD(P91p$3B8+{ zhYn%O`v=G-Ecoljp8h@QAB(sYqZYd?wUPfSb|@Wl&%CZF#k8w(_YtElqw>ByRCV3! zL-y;lM!ra`wm9aXk0EwW(~*g_?BqnW?(oV72c*Y_Tk6c?9|vQy;f!y4js9+&xajf! z|3ui)2Mz#t_mFm~{$!~<_(f2_hX;k6^0w^bKj!yKFv~YzsCl}^?jLz2K95vQHkebW zcpVMq7JODBPGVxfPz&nVsiL>o;&GLGwXUoNkzRqrW-0qVCN z@~it8t>(Wf74!=x0@<)Uh^Yxen=+w*xgpWu#6^VNR*D zL#;}&NB84HC#?4Z_hG>z{TH3jt?ahLc)SM@6@<6QNL2(Ug&eTKc8id*zENu+0mFkP zP_(8Efk&2Oe{Y1=+R>v#_cb;%SIsFK4bL@8{QPh9e&lgL-Q7WDD|5TS(^FFeKif!eu013PzM5R=aTPC4 zT|%?l(uyj11UtsJ2MK=e_S}q~lr=cfpGR`hcRqqU&*@!M9|Qh(Lx)w6i`jLCSG5Dgt?q>>YAH1#) zcz1w!hPyq%{IKu-k5p<;lvFzESo$ydI60rIzH#U9((T3z_@@g%yktHbtUGMBH5YgO zgnPNQWx?I$^OM!zRL8hZ;nj~%^mYVFNP<)yszdv;i!(7ztAwn*vhTT{m z*%|khtN9*j=%Ss7ab0k~%tqo8>hpPSyts{2R(63TI5&rPof~K>-b*qN*e~#o+?;FQ zq#Fb+WO<>Vy);*X54qdUP6Aoq#To{@BN)U;rzp;CWLH1llJ?z6NYoQ$j1yq96Jjbj zgr>d7*w6yf z&@V~L(Tg_p%g2236-3c(fmVdEdqk5#3AuN@WW-4n7c64KhhnsrN7Azu1=7>0M?O>J zM?&pv-bkHtHpw5Ht~gMhtjC@<@G*MZR+z-UHiUjY^@F5fZ07)lA;{b8;{2y}(Cl+E zaAAz6^q^Pg?1@W;VL4`DCYXMe3<`}C_R`(PVn1AemW{Z{#i;gCwP2e)Bfyst;vjs5 z?M8^#3Gu8LL0El|j-88@O{rmU*=+tve)?6Eplxj6~K;nJ02XWbr2O*-jjfoRM zZ?si-13;)7Tu<=2E~Bp#k3Lks_KmS$`~<_83OV=T66okg+?RfVb`?kT+@FP?Bj#R7B)aeLQevB#veVZ4 zd^|0FY%MBF6d&yu6PGP}h2@!l|BF8O$~GnJU%)#4Rguhyx^^l-i(LvJ|EbUOSCJIW zxd$Zq1r4H=b5Q9O!_w_)eyy0I{P09!YA@%Tw`gY2NmrR%@>?$!BzzvwblZ83Ma4yK z)r+RHHZ4{670jhC@-}Gyb-NN7T%~u;MHMrKO1rm%t{o4c> zlSt!(e7CrK#+CqHuNG_FlN&D~Npf`$`Yy0p*Qh)Epa?eV!I!Ph<*V8iG+QW-)FaiC zJx{5ZD&KNR%tp0HoJ}ro2N^?VoGn@cS&>p2v59We*}YB@|C5wsE5*CJt(l2{-Kw0c z9Y%OG4(+f{SsSXnZDVx6HEd9@wOVd_Wn7;czf_L}4}0&Bl#Drv)tut?)TY>|iS(4j zS!xl}gE3-<`-L_@8u9n6p7SP4?39V;@6$|%vcC!B^7}mTl*0XZ*jb!r#3F6Pi{3s! z^jUoW4gcD=-Z z3R49d=N~AUkv-2o*?--}@LvP(ljD}?$E0qp%sf|E8)Jud7(JwxK9Kazz5Km{yih#b zjSD)CI6$tefM{`NAV`JH*Fl5(I0&IO==B`RT99wVi^^Rh78T!SdngtUr_f?3p6VW6 z8b`S%_;K?sr5h8V8u`nPwDX?^Fz4cVY^hv$kF6Nm0D%(tsILY*I-9UCZjB5**H9Dt z$BNL#F=_*;hdYd=?>`@d%B(C<{n$<EO z4-2Ht87idt&3YtnuD#}n>m^cK8jb0*`(~)~xLDbwc-^dmYERoZgM~a4fRzz;$d(CP zlf!UV2(nX>+gE*|(xvKIbL#?~bL#igPl2wu9=!r%m@sG@s|{83>vVMX;JvJ4=#7a?_)m-h71}PTeuWif@GJmNcr79H zkcj!|#mTdex%fMCSE8~Ak!AMn_*GN{=n-cjza-~pX>;`pdxchSK9`lboWFnn{#i7K z`k3?OW;jXkQE}FMzG~j`Vp$qbin>92(z-`Os zmX+DrFp>yX@7c`~tX~MX$yf)Yts>~!F8FDG#G&*ZToj_O#>B z)c%<1X4JB1OqX6z_;ehKf$=k+8H-7xj{&pP*Z33m_={pIveTr~<_yg9$ z!W~&q{DU$|Z!|pulqqofXMot09Xzz>faqAO*l;)6p=Wor8Ef=AJhkL<)ktdg5#HiH zao~F4Z>5fK@~;KHS|9WXN+eo{*xc~%{P#-qi<{}YE($VWT}0=G1SSwSmUrp8X&Ccg za^!$6Zv7Uowu?DAt%w)1tBC+G-+73Cx)$^-9)t|9VO(F_>g~RHnsmYLAgZ6dPM5xarRZn1HTOY1o41Px zxJFDLOqkRfef85FW5UoYeW>s7s(7+N6`0)nL3<>v*+R{tfp?KhcZeWC4hZyX5-56w zP{0LFz5=l(##M$ip(>Z+jn*bh-WOS;javn)y@JGUr%5SefO9i;@({)-ZHmzT1G)Wh zN~csa_c!&B@>((r_np8rKd;kn$0kS3@YS}1NP+V=_i(6Hf*4nH^it5|M9M z>7s-@XwZUt7^nH-n_BRJKbkrP-!2{q_>1uhx!MeIyV#c!->r+-MP|KK0A~NR`Os9} zT48IxQY37WhM>#!O7oonyD-Qf1*5|fLU4JtV7MN9kfb@D5%C52U-(=R6~Zy`vtT_md1b`cH4*hI`m-qn)D#Y7^OVQTljSdi0u_>+BCNYD1<^&#~5`=_CtE>9w z$i};@#iZ51q1zj*SeBi4dC3a3-PKA_unnq0!dpPCZ-KGe_-9e`c;?6D==BTq2lMSb z3O;t$ID$n6Eu20KmG*>J^e@J;bDm(~S7lm_`39lakL%Jc%|v^4iPm8ScRp0WMcx{O z9Y0glj?GOVv7BWZ$k4&vqF$;XTiM;+D)rk7BfG-dZ7JUC@P-qZidIsIx>9>TAvAWg z7-I=^z*oWnf{}GXJql7^f%lhIM}dAyG#!9hzo6fnrW9?JML?C%v0i*8r;=;#SyeCz z5rVss_>`xLA8_-KWb4Mqm%`!41E&=Rr9n{p$pbQDtVJPr(pABG;R)ZGRLB{fjY=cm z$DvoZY1{=LdGQ3Vl>xs>sMK{w$Rg}f_IHAj6xK7=6rasItJE2bUxTd(O!|Pz2Q-k8 zboKW0bire&aFax}o@Y$wy!6LuKEj2?#T%d25z>9&rny;|aF>et`VZYUyxkx68AjKZ zYC5R5lU$9|TBwBSZ+Cf(^6aXrs*ar++lsgu2nV_1$S9CMhNi2X7SXjTZ~!(%2$pA9 zg_iIu?Q?zowty#&y($swY=9bl$Ku~ZXOC)Po-1LOnPdKCef7vn`^*ucs-~>R8nJ&Y zA=~`TosTy507H@Y7}bs>Ip!x{MRFW2Akge}e;u(4bm3g)A1;0Pf z0|49&F`Zx}n?I8zAl!c*GP9X!CL@eNSXDjV*z|&OS+qgv@2Tb(mJTMimte~3Bb&4T z%DxSk#6i26Tz?{Ov`K6b+56xFN(_85wWPh~&^-C&X&JSzM^Ui03-dyq{s`Gos|8;w zGTQiFZAVl^6Mc29!`{@GNbtOWt=fBgV*}yxe08gm;2RP^kbuS>CO~NeYMZqez4PHO ztTVSUMEvLp`Xn=7{Npo6m%i;0qhL8Nu6Yr^pNGr611OSDRZHRzT7NddgS$-!QO&)o zNd=j;N~yDlgO6%_1`TK0k0=fRV7XIbsx~34;E;H3a5((beN^ye)eGLJNi1vab^C7%L$&T$5sr7m&cE<*!cUa z0c$x%b-<#|^+UvP^;=_b?M!{2_Sk+gZN)6-z^`Mhf70@geqh%0Nfq`iAN>|rZFuGz z-9%)aj~Vo5IE_H|PlcLyZzL)3B{&`DIDCt;``?;bd}qG|U3L$$AVp;u|JQ{7&S&$Y zM8-{2aiQzb1j)yk+xq0<u7L+6R$5roPDWM@HvUzb_zanu`BJiE?z1V$Sbk?AUU$H{hko<0Svse>B3U!|U87=Y21_{3 zI9?m6o9Zld^pPn>C&8`al4B!ivBt_ju&9#`4}ZE66TXQauTu_bMG5P@xchZ|41^oo zHYsg0=X(n?u3rt6DvcydQmn#p+R5>wUExp{N_5$*7F(8P?0gwY>%(uqj?uAtjW?=( zgbhTBM_ZTTU+E$&vy_S2$M1_lYLK`B|9x!Cy#@;5_wU{=w{JXa0=LbZ%H5{ilw@59JPZ6_=CqWR@y1qF1Z% z7J4n``fTv#trvRphQfrV4qdu(^Vc(>rSZ}Bh3d@OW9R2M^&S`_XBp;H2qybUQV_o33rk$9GD(N#)*xGiy<$UJcmj zEY7u-nt0zZ;-0EB*)B}nLKPN~{WH}flQBQr&`0@|ya~as<_}hBWTAquL;xi3}iInEGgyjKGk*RDg2AKBEOPveElt#B~?kL@4OxK zNDH2*`*5Mnu9zn+LrEOm3UY~;rdb^2Zdj=%MzGP2akjz}Ay`>{F?Ran7_0;HGP3y* zacbh0iL_>t@%*B`=U2A${gG6Cl%&@2Wwo-!mzTVxA8qJ~1$xNNeC`=;VHTGE@S$e4 zr5IO?Nl8KXpU>x+lX<(^&?&tCIa~)7(-AXa#Ma8{h%v!u++He?nH0{ZRgK)CxhkaQ zXYA1lav_uXDxyvx;N-wJICLBasis}{1er}X<=>1-Kv{6CAr=g9=Gw(^vRXq5}|fnGaa z1FwyZ;eFdwnRE!TZWU`_j7DLD=^yyVvtgLEq;8n}H<)92W4gGAo&dHyfHT~otg<9X z&9fdZr@?-)yvJVnXG`fxfnm&9J%|5P51xRI%*2TH?~g)5O68cC>|Q2()B=;2J!@#Y zf5EVQEEBuG9@n{K_P70pQQ8zMos+9VQe;)yvYudWaVqKYCWw>%Vj^*5BL_3O=Md7` zk6QlQ(__!|$B&eM0?D=g*eeHEHr&YMP+wL25p%KSBjDhlmp+a`7f+l9bEF)HOIZX}$DqS7ka0?;^cPW$)mw zWp#9Dv)4Kf?HPQ9hV(PS2jJ^?zOJN!ATs0#9#`Gko1TJ6G=e3&|Ec7FzQUCSImuN^ z&*2KzB@J>YCF!yLXrc)^x}UV%04pQ9`QSmHQr&qc-(_Q^1@T2rv#V+3<$JE-yd&Y z#>0Z4^Ch(?xjp1I8O#{A=69Z`-LWCvg{fL6O;v6`;S#S6*x+UO5f5HLG4vum<;q#i z^!a?)I!db0>8QZ0B}i8QF%vwgK_IgXX-I^Yf-3$Bp-2BlweAX%omo`lY7=I$7gV~a z9qXu5_@02X8*&Kn;X%J@-n34GTsg2;x+rN_sEsT-bCIf`h!IlYa&U z;eEwsiv%&cG{RrKgo0R%jW$C$SJiP>_IYmGW-n7XT<|U-m(?jy&&}?N3Gk^6` zB~5hEsWUX1JG5{QR0Pnuh4|IA>g1U~1KK-_; zY-)s=bbx52osqc?6=uJwl`hTdrDSx!d?%52y8(h0ymRA&hOx0|1*flxZ?-)ko*<6G zu_Cqh=Vn3Z3(8uGMpP^F)3t-7+PRu1E$8424*i*1q3`7kjxKlZEDz4&(7T{PhmENjct`vu@>^%^ zAbBwKx>G58Q2tN(l?dUyMtwE9tDM8@^9|+=A7Hb2Hw{_q7strWK+2ua z43#C5Vqq(SgiZi<2R_dE@k)yiP^6Yjsx(0yx~3-{$yCzU=(}?wysA-t#?;9!r3^ZI z3*0cOAfvupNrW91;nL%0Z&p2NF=#)+8SjbW(U2jD7d}5!5!?`dP#v4coFc?7YO!Kx zsI0tfGW&e3zBtf^%F-LMXW1)9Ox@mgj>2wQFQGSOqT4Cxsui#rTTJ@t3j^K&Mz0lzh%Jg9DdVuL>3j(IeRf962X&L^Cb8#d24l7z|b5jUXs z$*K>JQMkbCnT2wgFMzV@6LF0veOHq4BqIb<6tYtn%lr0W#R^a&&pOvYuE74KRobZu zPIxiLaIJO*iFPDfW%(iL0>Va>SmqX>U{MHNzmWlZG!+msDHWATb;ftY-a!8SQ#12h zQpeC$%L$T89BplJ*{RhDcsSH8l^kzvo0!bH$@AEH9=@NccMmH3YW?8v)#JmH1({Lk ziDF<7bd8IavLUl#258`63Fr1*4LBjbiI1fY$EqvA3$`(#GAA9i6F?2$`1j`uCG}P&p8NyL--1?ygsg(&lEEDv-QeP$Y#L z?SU~gU8P)3^igNO){bB_ZWC+%%#43XN^5Vjj!@ zVDc8Ogue4_gu6o$V@_&xp8dKYU16ecqoKg9?aOz=?I=!!jC99U{Fd5o*nH*P58nD$ z+^bb8Q4Zyp$9+GrMn&%|(I!;cLY=!mgh{-)gsrJ*ExmGD4l%3V*iR4G#Pje+bWU;YX2T;u;k=!iWnLhq8swgClf@tXdO7~!9eoU&-2ZS$tE@A)pv zRt)UJ2if}K*L`E+4><0^t0milwPa;0guWcVXl^HiW^Veu{Db0L$iCYix80ESzT0>i zv5qXzciqIJ1Q9x9gh73u_XTkSv$HI0UgKG30hIU?CtSck^i}Zhhcoux=e-r#TNU1f z)~sND7yj#{PIV}|^3Z55F6hunV@I0c;z{}oM`a}34h;B=SQqwj_d@L6himx%T>}1J z1MWg|x19uby1`q!o;MoD#P9gPo$}AQWqa=Y1sm@D4QIHPn^k>R;t#J@#)qy9#U~ja z#UB&T{gsGXP6&SYU{KX9JJDAw>4U$_SAXE29uri#`pIG7l#n6Ebso!#$EMff{p2s- zsT_t=tUPc(*Rf_+vu%>&UfW0D);cTg@jfo+$mh1Fo}Bce7`ZCm+Z1R= zDh*=~X+$*7#EUUHBIW1C?)o+-`15i>Kmu^2M(q7Y7C%~3j#3Efs&!Mf+4`{u-sy|7 zprI7Jc<6VC_``BR;~!vb`p!h~ZX-%Y`SC5Y?KqNhjl z;O0`u*JyO2noV}Ol3KCv zeYSj12@F;0Jo^U9F@le}g@wU+dux}WlHXm1c#(h{@kO_AVDS6F1I!jZd=kf)+vg-7J}U$%(2YOok@N#fbu!^7WEv~b=~^N< zDFp(rjIUQ?2Hh&f*ddj1g@EW<)s1Pg;BA&NqI?*VpFhpe($Iw^%)upz@Z(%;SC>Siv<50^Sx^-| z!*~0ub)Lp_w9gDQt{2b5*@_>cM7*d>$Hz!Ac=;fj0Zs}o&4S3|8DOgyC&$Mv;Xd*J z@5Yl9`Y8Sx6t;F9Afx;w^hZv`=}34hSAH9{efvPgMg|*QZasPK%(5Wa>cWErLfhvT zRJpn57F%~XE`T0Se#*5@48_ilf90LvSOk`%KRw-3o2^HYv@QicFs~Umy5&9fTTJlh7txa)m(m?1YV05bs^pS?hQYb3105>Sq|O&rvcqGZV{19-F-YILvDv@?pjzFG(|iOBlfDZ^AsNsgO%Ld zGlu#bvIEx@8Z!^#^9CkoY+2dn*42Z9FRF@-ITglg0_Z{LlA3H-$I@+qwzlrvf$^s& zNXI_DcOJa(_pZdHB6s&%SC)sqvk08?P?!!tQ`4}Zfurv19Yu(u7#uv%8hYRW;nB`l zZ|KXQP}bos$0T+@hufV19nX7f$~>|oXmbt>vcr4Tx?d*%YRKvb>XI^hksnlugN`gg zt$tubquamhsjHSBNM7|9kJk(V|EnAJAWO;g$soZWZr)=>wuWiz07N*td8?}sQVx>P>MV~r{Q;y*PM&& z;E%&a%hfSq@>%qH7_B^|VXe{!Zc{`!Q~mlOCbUU2;+?i9KK6!IM4Ho3`{QQx)0_rt zzY}odET1J#MW2>PAxT~_nJ&{k<>YR`-`LCykxq;lB4#J}*5{zOCCo02&m;0ujzY<~ zjyRIX#bc|I<~WrggQUpMr=pIu2##A}D@F@XLSHG-Db&9h(TCvZePNh9ADPi9WP&FC z;sp?m2F9|PekSgm<;DZlki~VXi z>Z;%Qc8ac$Xp*sBhR4S*=-a=+O3y)U{C<6T;r$)pl_QcMp)U$GNX6L@a~NuIWM6i5 zr$?`Y>fQ=e4+wrb_%y1m!2*w=k3D6N68C-sy;o@`_@?}XMEagrxtKy+EBenx^faLV zTLNPgKEJG|i8!oh4F2`+NA?hNM?nr$4rRhLY|w5KC{Ts;w9krVUUua_gX$yVEuRDz za5u&oU9@x~phwL+YuX$H?aeuESG#SSZ6UNEuUk`x7F+sKDq!+CEjW){1&_Q)hK)1` zTTKN13RRn?Z0=2?pvH;3h7jL$Y4DrBd-`o0zREc^t_!*NT0z zrEKXS$0u23&r$`sY^&T-(lXG4j!wjgY)8?3x3iBnF{cH?9~pyGu8thi$*KZhIc4PC zll)KCPQr`-LnBiZ1t8wId7GIy@FmLq`@7z`1N`Y zHOjx1b6b>*b`h-D>6oH}F0bV)qRJ4zCGv2oY=$Nw#qYsKi<>H5cvpZf!e)F>uYyF) zV*umyuGmeyHV6KWxZZvwdL%*Z>zV0^bv~-ByVM(B4-8KQBWe8@%O0$%v}&^q$E*3Y z6z*ypiBqy+R#Oql*rcGJN z8YTav-452x8VN5((=3o>!#2c>GR|8Ay#&0=_dIoDf%=N3xg4U#ZxPBD-DAJ&mO z^~TP~>`o7@7jBk-2I1F8ol+e4A^x=w^nqdj6kjrCtzx0Bn@*5%DLt^W5emH#9i|h~ z-H+q3jD_B-#EW+dtnH6KJz7AL6_#Oz7U?r{7NZO zZhr0jfrXzs=z?aYt#O-7P`%^8Pn}qEN3+G0QDv+a#`XIIsq^4*lJSg_cuRc`&*M>X zV9z_$?7>?ZwFSfUWHQ@dC7U3g7Tuk*wAyhLPdP-k#bG$2pq@%mvyp*!8=Lah)%A1X$KvO7EnLf2) z0y3+v+5DRu&h{zh)NOT?1Y!KFc!dm0%{Ru43p#=Uw}`7`pGPW%Y2;7HuR(=$W^N@x zj{v9_|U7~eiq!`~gELHHu=VZ=KtDcfS~r68G~uf#gM#;h1z$=ZEdN&@Q_ zJl=CZ`ulY&kv?$MFTtI^B)sod=v_4MPzF?bgpzKfmQKYY{z*EqEzDqOsXAWN4LU8s zKtxsmYwiG;xNQZ5^=L|9Skdd%Qq0Ihi>Lfg=4CJJ@ zqgDS~WH{2ys*5Kt+Hgm`q)6bfL}$oDw0K=$(&9%qnF9h4M{j!LDIbt^Np(O(V6M%!KklC`Y{Y;Q?0YL4)fM3fmOJUSLBXwsxGa14u#kpSd0&g&0BmRKC-Z`l3u1OIDExh@LYps2=$Cx zlA=Vf;d0TBN}(09-X{olZY1RV3c=)^ufYde089j`Q37D3`DgY+ei7&S$fy%*-A|7A zf(;-W0jAU@z0v@Qj$IR4AgGtA_pB^C)F2bTupf?@p?CT-jE#Wtf+V zQ!HL|M*r}gquvR~{i(P=@>3!Q4QMJm4Pz0dJ?0r6Sk8wxsn$j@C%a*GbsZd`T4~gx z@OaSmKd}8ts5CNZYEe>4FTjwA~;UXCTRnO%O*YUN6k@cBQ-_3GA2A z^#$#I>v#qGD?^~|dw8RNaYuX)fPB9v|H@?q-1}ZkNS`DZ(pe9j4${HQRg2=~o5<9;oyTG4&$k)ZN4UG9rCWAv_5; zbDeN*_}0-4|Df;i=vR`q_`ppC-Q-$1ha%;f)}&YsEV*_FHhK@c)>GNU222)Bk*d%H%tff?u|{(=7aEROgwC;gi(nSO_2(1 zpeKyai9&Z;ZJ)7i`winP5T_NNghUMrwseJ$GYm~ z=H{wzk&JA`;$S7ZKkSnD#4pCTRH|EPjWF@6GVA1;(4m_Dj~qGMTcyP!io3c_kcV@niZ1blhVWc)hO*QZ_8TCaAxAhZQ>t!B(cEA^rOK?# zgZ=8)8;2)bBqjb?Uu-Hz-u*ssTzKDM$cE&z`RsHt<9jV3lsmFv^bWs;7a5hcz}OF~ zr>c(d?A*Ynd|n}V135r!Mb)CBHk*21r=^6DU8CyOi5tL+PId}0JXje8*X7Mvs37`9 z-d|B~?OQ({f-GlokEF=ai@0ZyQ8~LBNJ$#3v7IiD?ybNz$zC z5!*{Fq%D%1jU<%zrBYQ_n`xq??5NMpH~3BgKJvBe>G5lDNwI`5H18-5(h@~g1&KXr z$K}c&&ojZvo^FW+o7SV4lpj?0W3?rR?!MLy5$3dT_B2(B_g@M``+j9}os7nz%<&4& zB(XeZua^pYmxhhTBsAuU9sM(et(tobQQh!AcXrSJB+~P&pRjG!B?2|k@@4G_asdf;pP@K! zMtTH|bQ#COG-6e;JQXen7~UqssXQHEGoZRCyO>C* z?8h>KNZN*e3)8K#1jmvIqOksrl54P0Y?E=}3;_qqDY_*OVpg(zwIb}*UzA!Pg^tkH zqLHZdUEv&gN&^RMcmB65XO(u>i-ig@V*=0Q#`qC zhBd_gvF{tXQEW~B%%>+vA}V`m@6B&61t5SbKw;=TpZWVp^ycC0nmZdqc3@c zN}xGIboQtF`Jq6eL&5$+zDn`idWon|ZaqvBF-;^-hujst&E$27c2FA{;ymLJrRd7(o zU_6yuU&m_%M4NR~){kM3JPn`&@x~S_R)PzQZMlAT>UigTy&~Uj@sejHI=9F{dF~=D zju(2X?EkfQ=KoOb@gG0u%w`yd$j)$GOUj-lWM)#-P0URtT8v~#Vk$+JStEU0Xt^pC zQ{CHs;~U*8iQ~E`k*O4wqAsk{a=dfVqv48I%T$( zNp1?iBT~z{EKGy+(N~%5XZfsCSsot_IkgMq*Woe~A$v>S^)Eg9xzuT~Rtl#k1Y7le z82d9XQAm1d ziq1Ky7O0x@VW>$J+7tynG4vr=1lrr4g_E{;+--ie+`L+@SytV%ytEm>70aaGpo_xA zRe&Q{I!pPP9#@AGAKl;+y{Y<1eI7gq3&#?|=wnjnKDw$g$BL5R3fa%^fgRe8sd@jE zuU^W~FSF`ab^h zWy=t4%se+i7$BOC5+e0#dONL&>Xc_?a}~J zL%j6#3zdp9)MHK>+3NTIh;Vft{@u9kq6r~y4fMFJUr&-%K}(@QAzvx`NFS;B$|ncdF}4ZfK#he=kg=QOtAy3web}4lSv@P2+{oASl`Vx=s|TiS(YJJeL=!V$zCQ`U7({M z`hqdxQ?agg`YDIIC!3*0rqlrDEH?x%?F8mt#QwHd6SO&5K~v*Bl{1P{{jrs=hy;3y+6 zKbvb3{EC^9OtB=7*dyJE+^#A2;w7X%!Z`)Vwn?;>-w52lIy&JyuIxQ#N5U(GkHRPk zmkDP`jxx>0m06RDcg@ak8+BzFq<}7gSTE2q`ykSzTjpTsv8RFPX{zh7<&}-b$J`p? zwHQ)horEr#Rm%^8&qDu;>>!(`DnWLxU?gqQ9Z22D1s=dpgs&|ih8DSHl9Fy{?=aA| zksGY)-A|=$@ypUfpNzZ;N!+Uws6$AboS|}q)nhwwuPXhI$T8Hq=W*vk^9$o9YTk*i z9Qu}-!Fh_GkDdq*9JbOK@$X8)ewN#paSl zhaN?E67G65VuzhBy#Ly%k#Ed$+kL3KMO^z0WR=Uk;ja?Y305boiA zlUPlX2an=CG}sl1#d*VlJU=Dnn!8f|#e^`B?!}45Nx*;CsC~tJGxYfv)pAFjq;&=Z zX3YZhMlh#JH|hDDKX(T9wug;p*H$tLgMu;UK)QFY0*vnq;X~U<4U4nls!#*bL<7F; zV-Ek=+(AE1onEeXH1q^vxf@E}{;XE~>>p(3=ZC{Z3Y<~A8j#g`#_ArsF`BEcE<%0g7 z3nx;k*@vFn4Ve8RTe>w~d>ValFS9!N&FW)Q+3+Feb63eRsoRSxTr|X+H_97is~-LA z;f%)dx1WMS3))e&m+q4Nr1y1P|C3P8)jZ^{D$x_KcOkKtpti;sV$&eJbOBC4<|g{w zc{E~*5Gj5S8Ae1QyLTe_XZUpQN8jkYp*|O$fz3dkfjmQqZsq1Kd%&Po2?@Tq&`wR3 zX(p|4Wk;%jZPMc4X|)uLI$-S0InWGwHmT>osrCiDoFz;xd> z#6m~W3#Wv4bl|IFiOtN&-X+};(EIV6~RLfk} zzA~0s{^+(<3Z`AkFj?tHX=srqKzH*fPp?zUe6@cj_xzyzeWgq(*qO%@ZuSXsQvnBR zkX~*#Tm6krlkU1QBTDOITdxqsr2@wE6OA7Y_AbUs+>TVfIPa19B?AjuVsq(Bxec8hPx7n4ZQqG+T%-I(w1y+OZhv--IL0D~Jd5$W1DcLLD>8X5Xq| z3U5_QGrdpS#$$>xff@^h-RU_4zUeH@l=vgwL^KQJi?h--NPAdr6rn38agbXFd~scP ze*#adWP6f#)Ys*+@+2|V-?UNex!cNc}+Kd2?z+pPdWUlc{{R9XnNO*l4)!6 zPC~|6O=$od8u0-fXG>tqDj3%S+El?OqyTnfGk0UdWf0 z*PE77dX{pGL7%K#_a8K4Yz?}N^n!l?i+lDix!|lW+ZU>QvR-=t2GPcSbc#=31Sgyqpvq zJ$?4=7g|Ex8`_=HiC;ZWgXQZ-#m}hiZVNq=kz|7o0mvKhuU^sN!5sa~h|?h_7e`en z5kl-gMH3V5EKnNnJ?usgzY&Ho@neKR1;IMd;IcHi-vtU$f6hbRKdwTjN^XeeCLHGBtFz}P1XjMtK)#arOf<~ zB9T9P5$Rx4R(P;B2_CKI&o0hZ)dE&)dk+1&A+bWVrrsFR?adOVTot5FZB z4`&bq?}=|SnS?|Pc2%&S;11jys;WD{^^e4~J|9ANh*%{^xP0fMmyW7gYgL5)2jv|> zi9Gz+zu~^afLT6hS(55*Nj&JHm^o7fd_(gZ#B9Wi@x z_)RdG5NUy>%H2^Xq8nM3#{v4>avrfaF%Yv+*nRQGs~Ez`8TPwWnpEwyFl0~lXgwux zQ8d3GE($gH;jO1j0Q-1n=)y*664Uc8!y(En$Jq}FqnpLtZUh4T^n8n&`c8kjdl9 znc9@t_x1p^Mfyo9)+lwovf;Q<1vgvEgjM zLE^p(D5g}6A@Tz0fH}eLC1MLj>C0X)ANo;trBm+@cD)vm!i|Y>LwFc|YHXvKk=&V& z6(n-EyFh9rUIe@|Vg9;N+1h#Sz0C5myPC6HEmQuBBb}EV!lR)Pe*wueeMuR^B*}Dj zEOVZMo!e5pI3TTDeb?%Q-6Z^`S*XT8{@zkqQ%B~*A?}?gbcxa{(DwcCcAjH;+W3ht zBd3yS(oZIUUtl;un3`fMnTL9`2(de%l@@Z{wp8R#0(3;X6K>uEOsrUu@GTN5(}1mH zCdqZW_fOBfW|9kr5byPblsNTnekwIfkz9xiXcgjoJ&)PQSesX~CS?!D>b0@4-J^Kq zE;?k~7gMT5-{TRb+XU@UAvTubYy;ixkuHJdF}}QU{ohS@6pI0-CAqu4RlwUP+hB7V zCBAMX47U+FW)*$@Sgi@FwpQ5mp{htkd5L7QZ*`wWw~D1xz4$TU)`O$gRnE{3h$+lC zCR4Y?rCt+0fUCSy4+Lo2S!$Ro)!T2#n)hHJJsllA7PV?!c`cP_laIM zmkUfTR1R5TsHuzmb{ifpTCNcJA9oTu%0Joo`EY|MrB94wU6vO=#q~P3XD!bWxq6ko6nw20a4reqPcyhWFu|y}Oj@~K#gw)%|Bd;F;?0dGt0dBgDrGO} z`@c#S2w_CxRdwhu6>K?~eF&({Rvv}&yMrmF7vZ6131AUD@r*wJ0l9JazCJ`W61r+@?=<_@ptH|2xz@MEN$ECW#Z6+*`)7%4JEZu|K|8gq zO{4Js{dGl^p7>LN6QQUMSRGCG8)!7{Xj#zHF5VNupTe!Lh3P4%-k3PH8F z^ivn*h*~GG+N6_}zmY!NNaH&zw^0hrGmkQTVvR8hZ=xkpb^2D#Z6#P=09R>hl>NPT zNq-b@1~`61T_3e>cXAYlA;tdy_dD*a79b)nlLuy~@6*a!j{2?yzX7YuM!ZYLM)FFE z48UTzEbAU&G@0e)9(u(*t(&cO-0zj}h6y77W9QWe_7XMG)p~}qs($P;Jjb6eL|yIa zqg6tMPWacZ1Ch$E(BK?+C71H;j-(C!v``iMHZZHBLSZ1>4`;`bgb8W2?@ffOzK)hS z&;&sGfrL!4zfYfdsK6=S9y(=R7ev%DqH>hUy-oRkex82KbAixKt%cf2)1&WW$bOjE z%v38di@^j<*BQCQd3B9ISAO#bki}tDA|MgcR!rP+pyk@3nmYveocik^aBoWQoq$u^ zwZIl${+u)*C!MLJn*!Z6OyOvU*mR^bmq7y=As}3t zL7>`*J<=zjC|l+uV=-dS;JYw8Pw7bO0$Ll)l!iPKh51SC|B1mc+iZ2CMT)xak9^pR z$jL(hn96Ax-wzDm^JnmJxqFR2X12h1aWsz1sjJVMW2=c+)y2OA<5l0zT{tZ@Tv+_f zpgI52PLl@EY*lUt%!~T(EyDIU7ANEua^MMh@FkiD#iDX%Y!Fjk;p&H_z_ACIv9BBfHyYa(BwNRj zR--{Ejb3g^PD)y8RQwW1flk9=dqshpqoN`Ry829gKH-_RROu6Y@CW+B*>#woE(go; zD7|!*3h-HKRZADr5V3{?I%6Pw&ziXo`fhiYN%w-5!*5K{;LC1olPLG!4f6s=!u%{8Ss~lippYBg?yU$8z zQ)~m|FH7J{3rZwG1?gy|dwMUaAjtdNvzVy%|FA7O1JK{Zf-b1PN~E}pXOIinDxUFc za<9TIVUUUYbnizaY+o3Tf+6i4M~J?W8woujDv=_b491X|?4W`*+bTrcfD!DRxyanBy&Onx1`SA z9Uoy@D&DX+WpE}KEt4lkW(gop5QN2+Rc7;DGfdDuL4Ydu9tpJ7eiJc-cbr9TL@*4D z4GRj|Er#9jW~7sjQ_>G>gL&DfAdN6LTAZDbOk-!Fv2_e}(Hl+u|Gxe^ga7Wqe~-a` hq2T{XBrGt8pfqgX;nlqx^C9rrur6@zqcvRd{{b1BFHHad literal 0 HcmV?d00001 diff --git a/zeus/engine/graphics/Renderer.cpp b/zeus/engine/graphics/Renderer.cpp index 87ca3e66..469150a7 100644 --- a/zeus/engine/graphics/Renderer.cpp +++ b/zeus/engine/graphics/Renderer.cpp @@ -37,7 +37,7 @@ void Renderer::update() { void Renderer::begin() { //Clear Window - glClearColor(0.1f, 0.1f, 0.1f, 1.0f); + glClearColor(0.1f, 0.15f, 0.2f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); } diff --git a/zeus/engine/iVec3.h b/zeus/engine/iVec3.h deleted file mode 100644 index 69b04525..00000000 --- a/zeus/engine/iVec3.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// Created by aurailus on 19/12/18. -// - -#ifndef ZEUS_IVEC3_H -#define ZEUS_IVEC3_H - -struct iVec3 { - int x, y, z; - - iVec3() { - x = 0; - y = 0; - z = 0; - } - - iVec3(int x, int y, int z) { - this->x = x; - this->y = y; - this->z = z; - } - -// iVec3(int n) { -// this->x = n; -// this->y = n; -// this->z = n; -// } -}; - -#endif //ZEUS_IVEC3_H - -namespace std { - template<> struct hash { - std::size_t operator()(const iVec3 &k) const { - return (k.x * 97 + k.y) * 89 + k.z; - } - }; - - template<> struct less { - bool operator()(const iVec3 &a, const iVec3 &b) const { - if (a.x < b.x) return true; - if (a.y < b.y) return true; - if (a.z < b.z) return true; - return false; - } - }; - - template<> struct equal_to { - bool operator()(const iVec3 &a, const iVec3 &b) const { - return (a.x == b.x && a.y == b.y && a.z == b.z); - } - }; -} \ No newline at end of file diff --git a/zeus/shader/gui.fs b/zeus/shader/gui.fs new file mode 100644 index 00000000..c6ff3658 --- /dev/null +++ b/zeus/shader/gui.fs @@ -0,0 +1,14 @@ +#version 330 + +in vec4 color; +in vec2 fragTex; + +out vec4 fragColor; + +uniform sampler2D tex; + +void main() { + vec2 texCoord = fragTex; + fragColor = texture(tex, texCoord) * color; +// fragColor = color; +} \ No newline at end of file diff --git a/zeus/shader/gui.vs b/zeus/shader/gui.vs new file mode 100644 index 00000000..74e25c36 --- /dev/null +++ b/zeus/shader/gui.vs @@ -0,0 +1,18 @@ +#version 330 + +layout (location = 0) in vec3 pos; +layout (location = 1) in vec2 tex; +layout (location = 2) in vec3 nor; + +uniform mat4 model; +uniform mat4 ortho; + +out vec4 color; +out vec2 fragTex; + +void main() { + gl_Position = ortho * model * vec4(pos, 1.0); + + color = vec4(1, 1, 1, 1); + fragTex = tex; +} \ No newline at end of file diff --git a/zeus/world/GameInstance.cpp b/zeus/world/GameInstance.cpp index 71be6f68..95ee4411 100644 --- a/zeus/world/GameInstance.cpp +++ b/zeus/world/GameInstance.cpp @@ -26,9 +26,9 @@ void GameInstance::initialize(Renderer* renderer) { //The world requires the blockAtlas for meshing and handling inputs. world = new World(blockAtlas); - int SIZE = 32; + int SIZE = 24; for (int i = -SIZE; i < SIZE; i++) { - for (int j = 0; j < 4; j++) { + for (int j = 0; j < 3; j++) { for (int k = -SIZE; k < SIZE; k++) { world->genNewChunk(glm::vec3(i, j, k)); }