From 9e2b0d396ea8a41629edd4e89affaa3dd29ea6d5 Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 8 Dec 2022 22:53:40 -0500 Subject: [PATCH] Basic scene loading to server --- assets/Data/terrainObjects.json | 16 +++++ assets/Models/startingarea1.fbx | Bin 0 -> 141996 bytes assets/Scenes/testscene1/someScript.js | 1 + assets/Scenes/testscene1/testscene1.json | 19 +++++ .../electrosphere/engine/LoadingThread.java | 4 ++ .../entity/scene/EntityDescriptor.java | 67 ++++++++++++++++++ .../electrosphere/entity/scene/Scene.java | 5 ++ .../electrosphere/entity/scene/SceneFile.java | 31 ++++++++ .../entity/scene/SceneLoader.java | 50 +++++++++++++ .../game/collision/CollisionEngine.java | 10 +++ src/main/java/electrosphere/main/Globals.java | 6 ++ .../electrosphere/script/ScriptEngine.java | 38 +++++++--- .../java/electrosphere/util/FileUtils.java | 12 ++-- 13 files changed, 245 insertions(+), 14 deletions(-) create mode 100644 assets/Data/terrainObjects.json create mode 100644 assets/Models/startingarea1.fbx create mode 100644 assets/Scenes/testscene1/someScript.js create mode 100644 assets/Scenes/testscene1/testscene1.json create mode 100644 src/main/java/electrosphere/entity/scene/EntityDescriptor.java create mode 100644 src/main/java/electrosphere/entity/scene/Scene.java create mode 100644 src/main/java/electrosphere/entity/scene/SceneFile.java create mode 100644 src/main/java/electrosphere/entity/scene/SceneLoader.java diff --git a/assets/Data/terrainObjects.json b/assets/Data/terrainObjects.json new file mode 100644 index 00000000..00f9c3c3 --- /dev/null +++ b/assets/Data/terrainObjects.json @@ -0,0 +1,16 @@ +{ + "terrainObjects" : [ + + { + "objectId" : "terrain1", + "modelPath" : "Models/startingarea1.fbx", + "tokens" : [ + ], + "collidable": null + } + + ], + "files" : [ + "Data/objects/floatingisland.json" + ] +} \ No newline at end of file diff --git a/assets/Models/startingarea1.fbx b/assets/Models/startingarea1.fbx new file mode 100644 index 0000000000000000000000000000000000000000..d1d4dc3477563ecd3a9be9df9360be1a1d4289cd GIT binary patch literal 141996 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œO`m$Pc8(89U_nKsC^OA=)T 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�d7wNC*|&zK3-!uDC{u75bFKT_ z?5gmdh4P=cqQg^}Ab~Y?Jv=-9^G2aYZqRUO&s} z7h-`vlX@|B=2!~tVBhVfho{E>dYUKl)1Vfy+}}?;YY`&lm_x>artC`n@SY{!N;xYr zK+5e2w)F1m;=l7h-c1i!66B;czApKz__v8EI}U-{n_tW*0Jf*Mb zvW`m4*9o3`fAIY=Q-~Yg&sx^$Q=2Q`t!}5EtV6c=Y*~?1BG%=$5~a`T%qb-EsOs#x z=Vzdy``0fy$4OHHBoCG947%mSJ9+9WeWLmw+lCoM5uBYI>cC%{@;*LCESi8E5S6*> z*_)vTkA3dx?IX~xz=c0|oZqtCS>uU3tZfK|ji-h33Bxn{h2$QWUKoorc2) z8)`$ciZpi^vUX&fSBd*IhU*2I8QUdF+9zd8eT{%hB7Gt4v>F47*1 zKC*-M?6pi92{IN@HU}=g)AV^yY42dgRo}IrsDWHyZEAsC>-aXcqY-Xj9ru$P?mQX_ z!q38clE`&9&OuACQ#2Eie9(p^`go2P@q33{PR*TInK21+{lSjW54)9Qm}+(n{;-ei zRT5b4q1mIV!9IK)ZXaT`P23BWtO)i>TuPee z3OdR+@0K6VWgRO|`gwP114X`QJh4-^?&=vNCAUwr_q6h?10{nt|HjA=|*YeBSRFN%{UWv)WMUi|VF+`QwmO`oMbK&;l*qB3vl@LrNW-AFccvE6`@6Q`lo(R&$tQ-S%d+O-^Vu^Gr z>@T4-5q|4zSd_b)aB3x1(R-y9$h4gnAbTRC9*gr(HlHKCQ&6jVE6V6eS38IEk)%!0 zWYZ7Sw6GsnxX?H5?m#0IB$7eM_=}n+!dsZqJxidDC6j&3Q@{x&Z>f@Ktj+H>Bmzf+y<9vRVnnG(;Z`>7rr9K7PX`=;-23z-aBz~6$(9}z-B$z^VFy8U`}9G+i-3c zd(iuV5jA+%8fs4^$i0^1U@Z zcc9kit7)J?cs7A;hzMIWVytIHhZ2_aN>#xs8VmiK~d zAr4~l8gJ{7e1PCu$*EqE}&bOZh5TqKXF zVV*LxPp^sjg6n)e6>ASNQoJP|i?UqBw=YAjazFf@wP8Bir|wxn(+$!ELeX!YZ@>%(W%818nt8GqSpE=qE(XnR1DzIF%tmhnrpOK<9Z(1N^C^ADDfaF^H1 zDPi}BESLmQJ79u2Z%ylCoxM0$GNrlE-2KWS08Y z9Ji#Cl##V=e}rVEt&WjUJD3Ce@xrjVf_*4(D7>zHS`?Ww9<;8e{G zk_JzM>_0*{30qo48*iGwO2#U%Xdld;36tHZYYUpn+Vhdy&=~>HOQRQp6%BnIfNj|Y z&r!*}?hRpC$gmCKYK{fYw-rpk>hec({FuJ{9C;S^wiYqeJ1W9>c!USPt=y*W?60#< z^YGPMPw`ssukJ7X@5mQ>5OUl5otu>st1q1XlCwGa(V6HS3g%I7x4aAtt5p5spK@%~ z_4lq-lKKBc!Gr4vami@@Dg z6j(4@1O`rHUNm)r4>Jz@ZVkP4V*Gi`JB6AVbJG^tt{wbA!o5G4@&(S(rY7w$1)pS- z7`j>9JU6-2>6U5P*B>CDtBrs&DtRK>y}>|{%F-QGA6Lg`yc`!!hL|ZC;N9ox9I=tL zk~Y@6i*&;umhkACj-FZ1*zxp{))#Zpg&wZ`v>pC889+bo5~G03?u~l@nj%&GYNp;L zFmhX2dGK$j1Dm;(2R&9~JbcgflI+MVScJSY_)e|hJ#jFcG>F;>JM^`dVgnBej~>#t zj!d5^07{{ppKn#~UyZ00Z4j3kgt`N*2#TIr0@VVfOiJET*MAhhI-_l0uro=u29KCE z@!PN~+*g|@U=is@p%tHYFzyRV*(xrqQduqE)vW&@G9#KaHMU<^KoqZm2iuvo4bAP- zARSzg7T3Fvo1^qB9()O7<7lONYu$&gGw#>lLlsV+mP9Mr@3?Dmx;N0Ik9e}cKzugS zDi(1gD<|ZD{J`7Uo0-Z82y(-t@g5Ic069r}^#&HtLi5J92*Yu`WY@0)b} zJM+m{Zn1VTnIFkLOx}J*IQWP&q|-f~N!V}s_64uLyVmug(}&g>H|9&Nyk1Y-?8kf2 zLq1zHC_$y4l7xczA8Obc=J&?N&hH^6g?kk^UMDEA+cZZts13Jt>YNm1+&imyC(?U% zHVf`s*Ziy~csxUzx%;$OT;_|F(eiaN;S8T{J&IvKmlDZQN{ibeNz$Q4g*?)f4h(I0k-HtBHr{;>h zy!zKhb5Zpga!;E*a8F4k&RWKv8*4nI1w1Pi(YLZ3%w+G3p83%KIBwDQXws)ZS(#cD zCVZvE^x_5b0%tZ;KiSZ^|J)0@idn&dx2qOu!l20X%ZFkNm{zs3bV1b;+-3MZ130n_1wz8|2YWLb~6qb6s*)rzmHp??P$vh8D7$6g-wZmt;d$v zqV=;N@qAs__qDp8v-^w)cbvZP7d4E$cIj(?C-~bsoHmoB_hXgf{8uwI;3 z^>u$vvn?XF;d=(*$&^tIUGRMX}!NY zOMAG8YP4F`zppe_YzoZ$8l`*b!boUd0nIe`QU}>g5Osn!Z8xZh2sx&5${ZIT`dO{b zYV4P-pgt(IjQ4~3=gDrNCMHKK;Kl_?`bo1zWdpp=JgN&`v_6|_Tm4jhrHs-rL626X z&^FcV8Y!xDx=)xle6BN5^3}m1OP;MdIkh`8x=XJtN+-DI0OLT~#$6P%ZnU!Tr)`rD z)``+ByR{eT)H&T*;rZe24ye6&`?rMb@I&_JK--g4fD4MLA35s{D4hGK96g;C(zaoC zt@F69Fq@#gaeiXr`RPv;iSVt`y-KLn=FL&Zm}Nlij?S##NzZeT!yg1Te)}5s9-H($ z0YBM$bxHDt3O>C4@(&ih1AQVTLk(SHwT&H1{$tde5~ssGo`4;ks@P0zm#hHw2YMV$ zD%|u%{YJ3GbN)uEC>_cHuw}{{f8!oxxyi&Wy|EG z%H#+7J+Z8Ai>h7lH&yK@{s(lhvAA{Q;!}bHP_Ue_Q`bCwagq~^RGXx(f?Fy7Z3@3* zG%>)zzAv~x6D#VO&|6d1m+%9wLF)U@1^*yy3-?K(xh*`%|4n_{A5?8`!uEwvRzEtN z=5xaR{LXFSoe0+lc;mXyEz>RGnxR*n+@3s(_HBqvS3{t&KBcEm85FA2)MY)=nyX)! zSGKl{U>N>svg%Wo_+8#5wzueBYd#b0aL$3=cbkYOpbLwB(lO zqrZQHy)1^JhAz>9-ByZxYvOOK`RFSK(%L;a^n5%01f>~)!rsC0abWm2;bW5R z%*Qofnto>~N)bHg_^{-vTGqq_toy#st1W-Dba-pwyst%{lIG7YS;C!c)D0+LOUs|% zPAooT=*QjDshyInnNe~Q8*{4aRxK=uJ!2_U&uqQ9qiIyHhbBBap5GP_F%<-Jm#DvS zDb8NN{O{e+M@B1FY`hBdL-@e_m!A*yg8zU2$F2W+LDUQQ9=_6KNTuiZ2%j9!|&QEnOYURQT!seVmH1E85;E^`b ziMw`=ygO|6Z{-X~Od5{cJn)*7D#McE9MGGHQM#9QoD0jX>ZWu@KR1PGqg2q;1s;fZ zRP=-AEG*?+=H2G;IY)x^B9yBQq^6ecBz2Uc%m}&4;}z)wDHWaA&JXWMXC(8^@`yYf zZ-4b>l%`b4@~PF!`3tZQw%tk{icD2rI&X}Z!ejAnAu-j)Qfw4u43kMUM|mwx4l|pI7^nAbpdy#D!0GOm#M;RV&E7!W*noBm&ChNy>d7f zVvWyD$}#9JX7YIr!74~i;*&D4X#wWFX$PNSz)ay?s6ICQ26C42{!q6)W0JQ|tbjZ! zwIrtc1C3~maH+c%ku%v=@JagbFVBO##u^-ZkxC$Cq zW=F}5`$fr%?t*qTFt!A%idDoxlKa6SNJAoCvO|nOs(ECP-jrRyI2hI8>|OFex#}v@OA|ssy=QR<$qDn+9ju;doR-)zm#VnK!}e2wHGv zzT%y)ekD0ot%g?cNF~Kvowv#&J#DA-|KJS;Yl{D?Hbn10ts9Os+@*IJ5FuaveN%@s z^Ej_TSjBh{Y+L%?DD~!yX>B1Pc6zSD3ZIvG< zDtTm$?83Zg=W?BdbG)O~g_3)s>yo(OW7P^oXPE*~1sLlb2+TS}?v!Q8BA$0OFz-&L zPf|L~*89ZNiK@kOPl}`*dU1!M~RBi z=MYkJ1R~8zCx~y+@rFl0PqMsZxxw4StB?s2jcOxwA)=TW z%`E5CPgbziJ0}^Nm?@mIyc-b*kgKITJs{{}sf#&9F?e1zKxHLfmsn(O(aNl+aI#MR0f6>R4I#QUg88)06W}DEO@r>sYtSP#+q}NEb z!=1w&#u>4|usXdfl-#9G=Sd|S8tZ*=r!(U_XNXzAC;m>i7UUJTs!y~v39@}V3OXt# zt2(vYjLuSWV0pg3pr7Qr5iqfz__}C4!U(A-TY)q~sd!u_fruM0#wcCXc1vgUrc5f? z^qt@sO5eklqzBWGt*JKjNReGdTM|bk<2=u50}p5xh`LfZ!&nn+B3k13GDCzYrhwtg zxWGX%_6l`*HasTpJR%Ia0sRHBiBZhl$01HqNAWr7T|OPOiD3qg-N5)9>{9(*qPi4L ztLZqxnC6&Hx^(%nZJ3?GKGi7^M#uxCO~YwrXOmt*&w`#}x(Ug=$zXF)7RO7N7#uFX zf_zF)B(5PVS!R&p=l7HAWrr-YhPtucJ}uB!Rk<#-u!88$hs<`)Fhg^yDjWa7w~Ny1 z){Q_7HW0D_pGzmKh3zHnMQNf=O5-Khka?n-oz{R)t0O?w72FdA_-x7#^|z+EE~8<; zfUc$4;lJd$F6q=aq%12f`8$HLbU(U8;#hqQ^;!Z&s><$&y{os#c8P3w$0cf_odDUn z$;?oPNV`ynP`c>%l5@xd=o$$cU^y330wfL(raIt~$hMFq^m>qk)nn4*c_VqWY#S6y zdR>-4c7jC9){vb?aAo%DFR3=rc?vy3tXr)n3l$-F8zoy1(CRHHvIK_A6w$jBnbktK zNqUF+bWLk`w@-J}1g3L_ZNiLZs2nwI1sErl?26um+9xfP_*dt0d*18i0?!~}T?(|u zO;iJK~jM}LuZjTVDcoMNL_Rk!5FpC@`}uys0>X-zwnPCyF*^+#^d(0F5)h#W91iM zjkq&O@3qH7Lk~1+o?6?)|!+@AMI~(>(pd)a-hs3Q`iFP z2cyQSmwMKq7z)=mNPG`jBGEz~BJHqD^pA%fG`dV_lpltj)3X7;q}o;mW$80t1aFeq zaE|j1OKu|ct4~O?BnHSDku5-g_H5OO=x*x;R?AFx9;1b$$J7zN;zjfJ3adHwjBP>_ zju|hT*TnHZ|c1skQ+k%561DuUKW1(QugsI4I z<>)aygi_`}uu6og2+g}Lxr7L*K4obuTQNL{Sj?k$VaJPG1lgcQ{7aWSK|Z|&+g(G8 z>*O-u3Y{iwm`iN^NoNL;@r=V_S}ufl#W8LOe{n1s>g?8u6vi-fFGq=aLpaQUG5UnG zNgGCsFpm?fx~rbg-QqGBPouw;x4wpM-#mS@zY^;&)|sh)z>%ERPWwd!T3)B3y28HX0an=v^} zK(uGY=%&MOd+ha2uzWrxolvqg<_wE+b|1>X5Hl z*@AX}JV;Mu8HO;_Icx(aAAgHqYxJ7ZN0;7*;0^P9IyFo02cMQ)k+S^JDnIG z`)q?(OKimtZh$53qG+-2f_e+R<27@-uOe7cvInI)gOvD*l*GEivm966Qn0=6Mh^{n zmdtNvjby#3Mtnm!!eR2vgOAK8is6#;Qbb>Zu!y59E?!Wa)a#}(&HA{!)xs)%NNM_l z-mfNR%@_*{&Ts1CmxeJf36F`_^tA#00Amh~FEvwhsUNgmSsf|tT)viT)u_QQY6tWM z+14r&o#}ta15BP1wC+ba6>Fh0B0i9e(T^hzOScdI-41p+CU-`u6r0NIMQf#dq(Pic zUO;sU|0HUiOcUihbL01ZQLDJMjqGIg3g8!?;R{KRvTlnPJB1n?Exrz0I$6)u$|*e- z?99dWL;d+b$b0lYVr=DaBDP9*3=bgV%AR9xVDfskxCF^IR5%xgRnLp=7%q{B5`(h} z_%5zhG+Z($4;IZjq<2m|Km5P`&P@y8Y5eE;TJ^V}Y+OFZRklZZYPh@lZB`8C3WnIL z&V46wlwOhga%`EljP#O2%%lbN8Q53xUENop53pH_@3Ni94Z}m*ZE#Gv;H6xa#k>LG62HnVY>bsmEr05>Ts~ zm%3ZVhad8r^rD8^SaI;MmTtWlZCPlZgNZS#{04CU>46quSRyZ=#Qz4en7H;-tFa^O zN4o`xasfuy3f2DBn3_nDyUB23*RV9)(iwTG1`C1^KPpR=(@DHg6U@G_|3G8-mzi!0 zi^oAIZ%=={2zxV3K8~~HGMc>tV1w^(kwg5C>!Zi-kCq}kYdQ|&xLbdYlbt7k|{;6gq z^jSM)qG9?ty#eIOk@2Ze7#E!H>2x6k7;$GLys&_B%g5vS-@ z9r(q@@EciHf{)yc5LM!hwxGe@zLOE*120yy)^fXjE=(=fx_sbf{JD`y|KBjA`T|PO z-7Mo88uxD+y{D`XHO1Py1Zd5ux!WbE&4LcG2R>P^YyOju4Yed5g4?Fztc;Hf4n`o% zC`{}(6LDFni;%%Ks0&s+@aEfQ*$13r{KlSc`EeRJAISkW6+8dTae(aLuE9WN-dKxsk_RccteqQIev zAsHfUv&`5CVoA4KmSzJv6AhJTijSd-4u{j`CXr0;$j5x-F4A*xWXN0oH;K7qPk+21 z)dHmhQLkJn%`&qK%@4^D*?SHBj_dD0bOHX;*96Npm;qgN8OJsQ(pZ&YtyrqX#r%cd z9`#b=5`&32Hmlm3U^Ky;;c&9J3dkqo zK(Cno%Q(ST=Uy|RQ%_Q9cZtEI$^y;9c*KRnOFm{%l@rLjpV z1+dyy%eV?=^7NGfX5G?8T>C1`(!47W{DOkh~89IYbq~*Z#?k1@B5VLE2$@hp!QFosx@d6>34LBSQlLl z*hdGjPY|qta8n2Bka<_rL+X$I3dO~={_*7$xpY*pmWo#^k!&bNTw*yi@cf8xVRiYO5@2bqy}-7 z$c+vD1&pHKj~i5{;7WD&6!9tUV3Hu(LdqsMPGwzGe@{-eyzJjAihAmV8Y`_ZWzf86HibozMy%Q5FllV_81mCI0 zjYmKL<*J4ac@Fel<&lIxf2XD1L}p9)%;6EtYmro5KEj)O!M>_+JqJ)i(O5 z8%4GDxIgDbya$u^D(cHWu(;qBrm z1l!OABs~F{(tQC1%lEgkl3xhFFB`fL0Lz|MpDkVsB0rkJ2xj^+2R{m{@g`UTI7jfpqV-9szKugeh%Q{ScEQ^^dPM=$OFn9Jl>BX0nL8d5n6)g`UUn-Zq&$PGFNt2B zPRUFj+5IggUag*9k;gA5_qt5rM_Hk5@TJpWWT)IJ$ZRt%NV;z+4)IZRdd6U?q2}j5 zik8QD4~VtD)d!*!?PB`WCAyV+ddR$N8|w@}M*Z#xozM+3%W%_Q zvf40Hvfq>z;dv^4S)>irArfc-#x|uzFT*!VwA35+a?-eFqcGyDpkOvE=JTiZyk#T!A4I(>=*!IAffYjGKg`W+{{qZ_jy|Q2e;9JR?Yxln(f{{i7@%wuO^Q zLklBLimZCzY=Ys7H$P`)>A& zkhEa*PJ{Iy-41gKR#FhX(rV_6>>7FYFFzbsC8vz+ZC!d_#TMwKi zD?@2UC*&&zoB#w3{zK4wEykK|u6mk&Lb9}speHkVu)VEex?gGB;g|@6JCSBLWd~)D z{`jzuTwueb20Hwl@|}|zi(hC;!&RUkKnN-s%aLIoB-9Bey-pT%(iU0)cZY!i(zy1P z<>%Kxuh9`XG-0RHIeH7-?#3g`_Sd9sMgonmqXq-%tfvu?EN|Jd^4;Zd{v24YcqmBT zD9Gk!zUrS_Qj})^h8t!{m_{j+<_4HC?(mxkgUKNN5pG!{^xg%6F%Swm2}RT1lBmTg z^CP&i=y%ZTZvjLS=a$*9Mw!|{iZIwmcaLP1wT-}8r@`VaixcL?m~o#%kwe>+kaz@T z99CgEa{B)fDXXQsiyYbugt={?n~RYMcDw2Ff@S`K#L$e&Y(c&IJaGxY08j|cOux&? z#Hps@r_9gd3hz#Wo>!TUh?dzYBfpqT^BGKMZMLtkGM0M|WR=5B{>^7eTV`cOwL>;r zf!b>zuK_wEwc|*svv)%*W!5It`)N6e#;lc+UhkhZwSe6y>DguVpocKhCcXyxrD(4w zz=|`s|B)-uuwMXF>>IHdDZu&^r`QzLsR^0qM1g9cqZ6zCan&W}TzkL1RtN zOSj>ICe1zcMw3p+BL=Fb8qEKRFz^9slPM%~Cs~s^_#2J|B9arlqSsmY;{nM@a8h=MtNzOJE`;FwFTt2s z7uxVT0b+ELoL^2bTKHY2jq%Pd37E9eq+OQaZgWQyKEh&YVO`=(l$H<>dA=-ea z9e^cPua_qin_3`E(EGB_s_#;&}-bx4woLm?{HmA4Ut_Iki|p9PXtzMUA9)95l!8M{N%8pnwIJR zPsw<816$b>V?4w^d)%ld%;Z$yoDz+|Ud_u>~QfLqK5O)E_e$Fc6f z2*rSZohFE;BP11oe-SC;N@sw3;EQGJ+Ks%P))HnMqS~R?Vcr9AtRFB~@4vJ^h`o0~%R;IFBY0<%U>ej&T8YG`6{w4qBI+(Rq)EA&DC`IyeGKQ`%!2439(+0xu zo`?dORY)vX5+&~&frkM;(MQ-jeIjC>o?%p@gTPz#TFMh-%{f# z-=|yWYgrG`?P=lb*$)5H%}6l$7IOE-8GJxh8S)6H(<*qEQ=S-)^%`o0J>Syz{%XhksoOb{e^9w{YAzZ1u?Tq;WW!hAmpcgKBp50!=J=@ z#F6_Y56W{@MvDIhcAY2;gsLFVsRn%bR5&dpkjSGqBMV_;_-jTfAuga4YCP<=H^B$^ zORteje0z!YgUbWG13ofY`41otH~fpkiH(#zx0XlkMhmcI%`(fdGQTUPd{s%x17BB{ zko<^MGTm?*anyooBVRIg!2|M~EH^yXMsf9dr^UMWKftYns!?x*#+z*``TA$!oJ##Nr$2Js1I-NyiYk6(jItZbfrmE~9!UNU^hjo(TT8p8#!8?}R?b zoE?r~B~V7-!yZOb*Yd>awGrW!Q6*7kZfH$XWGWjHlEs^Z`}T|p|GF^t*Q}@ZN$!+K zrZ&w0$q~T6&>xf>BkW{`%7Xr~A0F<%jMNpe^sDzQp6huJDhI#?y?fZZi@p0kY|5<+50C1I;nl4`|W z&gMKK5|KOE%wbO1W}AKO_==~2^lq`OjoPl-dD7HKFdgG!rDV{9g)`mmr2f{7m!sC10jT%8-8JGEO* z9QD4JdyMaA_nU`g0FR|qfFx(}iGn^Odg0_V`i%lQGL~NG2P@1cZQv#H{=imJa;y}F zmEwsZK<@BkO~pLc7qE05DTDjLe*1}R6-k?zw}~s)MV$iuq&>Jw;1$?M1Bysfj;-8@Du9rY+{uF2|9{N8@Q2IUDUCd*7jP~6;ecBfjUqB_nZ+j3HqF& zPu4*3GG#->a6c>1Q8qq*E}d6>BRYF(lh}Ih2jBrJ1+24ajo)8rH*h5cXkQi(ILeJ8 z4>*A};_u)YpwQeT_eOGPL(E^na{&yV6$c~4NWyk;WS`;0f;pUA5B!um{FhAjNcFcW zAZJp$ZyekQ)M0YL$x5}qvA`Md30s2=N}~Zvv-SDSXsha? z=#r^(5$SRy!5jQ!u-@nxxpG`KL_4O@>`@2b!Fak!QqA$@{#LAP(BO-tIkY_s&;*?= zs%Y{VO4HN5N{w6@O`mcVUz)1`@_(jEUW2t*d?uIjUEt75EYjmM2E%$99n`R>-zNTU zfLTUnOf41ba~)i%Rf1{|3)%`_%+`7z*7%s_X^>4Woq~cx;en+OoSYJERGlroHuY@^ z&bU9-c3qP5J9e;*lx}c!lvue8kp1$u*PypqSc5aqnVuRgX-6`fp$$=Ry8#GDHg;eO z|I$La68A-JtA0H9?A+XxrC-$Vk;G_`G!<__XIrSEf@D5-EP5Q>aMugllz9Z2Zt{#| zPKzhEgZuk}iAUbv#_P=HJM`uinF|=~ORd#*uz>-PQiF3~dkM?r{zb*znPDV6Xv(ED zo(RKKMLpVB3{?$HxW8#1$cvwPY0RTWa{Z|YtTHcMa}{gJFLfRw9%UL+h<`+ zS|WMR@zW-OF%Ffug)dd>B$B zqiGTt9@?c%qs65cAt0}6xk2WrYypW0PHOF-41ECP#*{n0`%%M)xxV(W1HY#D4+t-Q z{LU64MCF%_s(R!I_(<87U+V{W^lgdeYXRPr=yIQBj{3beGK(wZj|+1$xwXdux#=pK zONUTw#N3bDtV4qPLtUA}UYR8z4t>imVvI+CICPp+(j?QSDfe)*>KH3%ta@yVvX0K= zMuqtqHJrYMrm?c-oc~%t>s{`DP7mMfi1s@@{Qgj-Iv~;zzT{*N2_4VBnnFj%&Ec=y z?F|%EH{|n15H=&9_;?ez$Nk=SMgshm%-;I~Bq-jcHmd15>+|9AMrB-r2(}@acIn4@8v8V)=d&rrC0SszPjjx zI&T?4+VAqPm7&8*Q_iEwHaqdl;GK`zRX5PIm_=oj&+}O6)Og0NY9>Au`^>X8Mx92A z^26hagrMlHq+k6J4~yQY^Y##=w(ViDm8R833Nxifv;k7`q1>R73wlsTL5_R@0U|Xg zXhdHV=EO1Hu$@!U3_Z+oKLb_<^*Y9bmxeMR``5-Spn>dtR4~cLK0!5+DJ(TwOkUNJ z0dqi97Ibp2pAjpYdQ-JDv!gW>TY|2Q(V>yR4lN~tfQeqMbShsD{>Hc-1w|5(YFQm9 z2n$3al}+`k>K&@->rrr|0&LI1+sMJrC*=~U2f;*6RHs9cij@TSxiUaDZV3G9iYNy( zwEUn1=`?U-CX639h8AGD8U zTikfPSD!`#Te3hP-3;~>W{PTo8-Vu`KP!S1Y{8IE0D~f9xdGt9PX*}umD+%4QqVXO z#CH1)WiG@rhH5)%hyjGmFt(J zinmR{rqNFF+Z*%AP}MTkIr*mO<)qcs#?|U7;q|DMNX35eTa)g9gQyoM6qImaBV_RA zntV(wtA&1x<_2p**Jd(HhGFY*`GZ|ts$dgo9oSK&sWd036Ree->rq>g3b5}=nGCEG z!GTKpR4Vq9>J2+L3C&o+$R#fzZBW>dbgS1^FC*h?oqpTo{tSglf5fOKUqhL)?lWGp zP2$k1Wh86HTGIBa6=XA|A;C$BR_CoJNY{ar6hr(=;{iaF;2!_y9AjmrIe#4002_j) zVBE+QvIfSGY^ai4k6MKU4}=XQse{Ww4$4#VPk^=@r8Te%5NQdrfe}IWm_8r?HUepK zhSq=*5SjDs04BTSv$X&_gs#Q3vySs;Yx8LoRx@ffBUd?}Cb2Yf3WXpNTr!Tit1mACrTdC%wP1 z|5|%@7M)O<0UJd;z(5ee?-ih}aa#OwY!hS@dW*gvTf?|UPvNzo^4P>=v`R;LNVyA` z5bc#;0SfuO!j6r9B-CY$+*2X}|YO4P0a6MWzoV1v+uzID!N_mo?CQp_B zrOwkMNMnH`ay5R$*dgG%z?TmfOzKx|07Q}@w;2!%^5H|YCU_mI4SRxbIoKtsMKM_r zR+3UnwL-a8ZX^F2uVeV;K%?N$7(+nmqzuIrd|EPqBS_~1gL0za)3^;_)rP&!`-DBo zZ(?_$5_#q<4c5(po8+9UH^E7|5A3Q~G}%hIPB{QXicmn%cr5U}TU(vCogh^LXXIyr zG|>*Z`6!$z8I0P9qqDoXq&l0KCqTO>QeF@Cs$mGd*ClI_ik|>?E@rTz(}_PPtb&p& z{!*x%3DRodvD{hUJVp*PmAcDKCL+{%7k*has!VALP(@@1$kol&wCLYBt=ujr0zU+B zu-R6^_N$S2$LLqO@yF@)TxrE%OjiY8?I$*lk-^GmJ13!8YN#a4LRO~j(QZX3Ax7>i zC#mz0AO=+_7=mBt;T`NYxNe>db0>&%;{zUN#} zK-h(OOaJb{?*-q&&Da0Svv<{T9re$9Q!`*6UN?QX^8NS!ZNGjRg>%oS;vBdG?*o<6 zNjhV}@&{`cu3JUc%h8FqSn*iXb$i&>HAzQmvkn1EIq56@~y$lR*-~VpnE5& z!NP1q%RY}KNAKM1emV&Kawko6ZjE_X^TCxxcT$aqEey(9T>NIzX$w|7)k)Z}`^e2B zIl6bBu6VY=<>bdB)FsEB>fS5Z?e+3V?&|KRE8iEm_)Z+5E!y^UdFqATo)0^7R{r@E zYz1>U{Z}VdJN&6$?)Yx+^3GgS(Nlw}aTkoVlQw_pIh{Dey2CfNO!YuI*fWpP%$&*&DK`lfTsQ%=?$z5gyp|J6DD!jtuDyBoNyGO`FyPOeYZduJ9+mI}4pOMwQ zWwnQ{hGaYSkC;mEH7=%t2Uds?!w!7y0YAY*c;$!*Z?47-Dae8mMvPc<6sUaIfH9{h z-MP?m@h;6K)*Xi63j<>qD*wsQeJ$d)BC(CnJHCU{Cm+a!hSx#GMVX-{f zefQBj={YN&TId(JyPW!xPF;G=LNBXj_wl0i-2Vgp#y#wQvLoWf0q2RXYd5w%*>dRo ze!GWV*YE%NWc!u#2b})uicJfDV&^-yA70)SM-@GR6UPpqq;}V0m!941vg+gJ8+O;z zZ=K!dzpB-~$u2he;MuL74?b>tZWou;c6LYDgI2_7@wJ3aXSW{~W?gxx648A2G8 zHm|b{ODOaia)g(**jx=utmq#?LU7IIro#Aq#E=6F*JAA_yirm)YM$&m+ZS3FzQ zxM7$3{v!{I?&cx%U+i1A(KF%Yu{_7^FWhY|dM1{4=OLG!-)FwMEB^VmJO`We?$)Qe zZhZJN&)H;bpOs@*!kh3sC+9JDSaernwI~mzwyJr}BD?sHw0@6d%r3@6wOk--N|w z_j7hcm9{!h3$G<2I9t%Tk9Jhy^~_4nb}X*dX+RiDA#m(4z(;ts5Q+j?U?d?o4w_W6 z&}@Azkj;)?WAS+Lp;dLdY5avcu}Q9Lw;oB_zwL=$+=GU-J3^8UAUGM<;w{#0ao@Lp z>z$12cb~4^egR1Q^QpPBVe>xAtr-cg&Y3$oG`rh|W+YY)o1@g%?=xHC8UJKOp8dM@ z?i==d-uVAR!~XNs3>*HqvH9+qr9lhL4I9rlZN49JD`QgHo9|sX7_`VPtMT&a z=1hEB(0r|v4QKDay&JG8NZtBmEKu-x{{@Y97|2TpZ9-0|l#lb_=|-5fi!Y{Q=! z{TSZ`F6?I`MbDrL!$T6rK)~Dm^PY(#F5W=t?ZLZF{T9B&(YSAP?Hsg8=Dpqs%;p+l;t>&(MyO%%Q z9KX(ZP;fN zx9F|6(+{4r)H>O+H!}2ghR?7i1mEIDT5|aI?iJ4$@7b_7WdGqiNAEsg8nD3)zwvPT z{$tOVcopo8xOh0@RQGf3hypj_>d&|LZhNkI=)&HxQ=jh~|MU5>D;L~i96zUfgg@8v z9p4)j{W-%=^c+GQcOx&_e0$f@z{M_xO~HFN-#KzCaH+o`6KA zL{S*C*Cg7vEl&%*HI&1)$hZGw*dCfD^kJ{fEN#<&6Z-#2y~_Le>$9L^Ntjn5RNK1}BID7XINCOVwHy%m2cr4#ie150@!!J3< z|9lL3+P5%tjJGuGd~)%wkb zfuT5P!7Z&>2M!yAHEjv5*`GRd%b;?^nFiFsN&FPX^~uZEb#CdzuU&dZ6MgQ9Zrq6m zGo+^bLESs)56SyLoBpCJmaw@EuFFA=a_8=IWBnJd0WXiHICkforC!*p1%||*@YI@l|>mD{lj_l64oC)a?|tX)?c}&VDGYvo|)2ZPc%QB_c(B>D^2@X0w3Q4 zmD=5|UFyFuZ`G$0O?Jr}ekGAC=7N>QcSl~GT?V?t-W|pFeu7~ZW8ZuxE#$gq&IrPw ztU>=xNXB=N%s_A-!~6s{q6ouwATp8V!yOB@ZQiB1H@HqGZL#axC7?~g;GitDu-wq% zzH1|B)3$T#oIsl*XFPBJW7Bmn59dDYer~$#yenwan>)bt_hW1qR{DjuYv~yfCtA)o zZHWcFcVqE`j@>JZZ|VPH3w;eMKfKEX4Y|t7;S(6?v4uX|Mewpl6Vn-xS`Dewajh}P znPeDYNP_`CwUfim-!#C`1Zn+h-x;U$qu<~6z zm;%;Keyag9YsQbMp?Qh+A45DsZ`$Pyt<5a^xczEyCTKxJ82%H8GO=jFh!aY4^{JP!xpy_Z4f+CaqPHk)s*UF@+BG#kj?lh?aiS%S0@p__3X9Fd7( zvuj|{om`(`GgRaHLnl9aCU5*jVhY^UK;Q>s(Ai}CAUyhW%7Ew@>hBm#YdIL;Sp1+K zBzm_4Uj4B>`&$z@j7$Xx(r)%G7eMF$?X@zhl<8tByc<->*2m&Itg88OJI_R{s$INm zJ;-$Vu4}d)N!~@cbNkkcr=w7i%icO?u2I%}2sG5cA};q-_hT>z?Xx@8b$>SeiPn!X z4|H_buZUYQl+}Fh`Ia~k?QBy{{3h}dm;W%&{-2?yx(_a)n6V2{`qJ-n3Al@KZ9QBzuCpGeSOpBG{M1hzoBmB zyPSKk0!@s*H3TZbG4y>xY6su-%o#K`C~E^VbKL3v5hMlI;)LWU(+OOV+Z_75xI7*# zD6b{CnyucFbjSx}hprZ84jbHEEdPaV`;Xk1IhMC0q5y6F@bj(FKcAYIjJXCychX{) z2Cgz+1=6>zRQH2t9EJZ84j}*S`xqG+a@#+Ly&}k=1FX&xvinDECAg2)1N<}!Vbq!h zP-t?8{mTw+uG5L#=W6D-CHWATm44~pB&%hAWN3OKcr44B#`U{E(wRKb{d5PIia-K? zcl6IE%YKgU{TFQ6TW-!e3Fe=alTAxN_VWJnSuKzi`e}#6`{xXA1Noo2ZOFaJevVlO zuGV^Bh6)mBtzY`zH=6Y}-fBU5^8WC%Iw^pK1;~p34OFBh;1}NS=56&V@UWRUOp$JT zYG`x*kk#Mlv^j58$F{)Yq>)$tc20fFBfs5yWH}7aw5p!Tc$6OSaNZN0?1dIq%d(n1 zkV`yo{?Z`mx=xOtv;0IstMalM!bjgd@Ol+wU18t6r9Ct`yMJf{9cYFtjW1}JFa7O~ z8P~(lSsKi3*n45)k=*EQ&-H%^zGzEM$icvs!jnxGcf3ojGUk9O_M?sI%&igvMsAyj!@5}UlP23fd<1ic^Y(?|Lw57NxIt}8m_qp#^C&x-}a}}-F<=p z;qc1p&YZ~b=LQPHrt_9ta`Br2^(X(syd%2sGNz}WARQ}*jJO>MG0**b)THvKsM*{)_LIbY) z2mJR37lBt@FN6m8hp+r+i})<;i`wjFYwwMV};ogrjO4+Cb*?8UY7wU1ke zINXQqxZy8xp1riNZmS>dUc2xm?wh(W8wUZ;tvyYaaz-0VO?06Btm!x9yl==|v1-Ny zd^h3kl_p1W5o^Hnjl@YO4(U^csls1qa=iKyxH`dP3UB?aIHWE~UnGo&YR|+p;aW2O zs67*Cyq~Ui)>nsTsjFSp0bGN)tJ`S28Pe@=*3NOuxGXasV>)NB=Od*gxZqj4PJ|e1GIBmv(<=#z*{8B>&y111nH zw0xL%alO)0^mGRdJh+q*mRxAxJ=2y@zj$bq^rb0tq=bd!k(G|Km%QZiOpIzHQR$%% zarvRT6Y3fAVx;dF@PZ=?u9F-^4krfjYSvbjm-EADlVwR{*?pA8h`%L zKeL`WG8alPUbW2ow`WA`&;%r4a^Qu8vt9A9hbk0T%$qYFXY#D zJwoADQ~KfGfBY%CdR+4U*pT-Rjlz*5sTl}VBx{J%A@&_ta_0;7^k^y-56HnWJK!!& zbBOd+!;hl1EAKNc>uofcLm!I0KA%!lK!LqMQt`?*Dgx}#sf!pFXDA-=R?2J% zw|1U73Ol8}H)@08{?PUXRc<+%PCBpU*n7Q!>2lm<+lG-Zgtz|O@-_dc>F7w@$gvS~ z^x7pF_9w11j(lln8Dn`UdcC6#D0=cdQ2W27r#1Xf>E(|gm5?8?L)ET42$Jn`biOtv zf`+F+FpU#6yb=hk=%792aj5* z`XrwCq-0?!bd;CiU`R#L3&$mip9Ig#660>DNlwP3AsC-yL7neg2pR%C4~keOwLosF z)o^Oc;Dbv=s55IV02W>3|fpCUQ9{7M-(=K0kZ*X2>e|Oyy z8sU2Ht0z~25pk&GI3UTRqR$k@)DHE@WPlfMgfNl{Wu4{6b8vfB`#7U<*gyKJjbIF z6IC2Vd~q|e`^)4`#7WDJY%GH~ppxy&EqMZb6;DKrOZV$zfBqchg81|sZlo&&--FD9YhJUhj4O5j#+HMh6aSiA;Ds;_?Lt2KM{1P5x-t8<=2Lxl){C$2H>Q=~ zdn|ZWge+hqzf*OS>P<9P!v7+slke!8Jp$W`3qm~j&&Z2ql~PYg_BXX5yy?F=DSmERhY!uk;%!?Oe9gtS{q1!Kc<+D2ntcEi z2YoN85S0ypOK>$o`AWgl`dz+<4Z0Klj^x2@gtra>NVGpP%WbstqNAUV`Gu zui5*_Jq=I~Ia`42H%3!An*Ds&VRtc-lS7MJeA)hu#bRUj=aQROL1yuv=HMg0MSH?H zGIv3ASXha2m`5q#m_@*q+24Q2CrWEW4`{;m6PYumAyI`N6psabnXdM5i`~0@)XbMqzLy6<#UsRpZ#F{7ryc|!$#ns*9b2ek-r319`Ng$X}KU=GN-r1zQ)X8&k6iX zNI#2LwZU0p;GoN!S34iAJKw(MZ{S8I|0`AV;$EY~;=hVY48Y_(fVM0DzD{`OgmFTB zBU(a}(6G07)+RcrkEJE$!`o+LT(MilKbOcU^{k{Y-!7qPIp)QGc2<8fNAI=&f0Qh1gNgSs16)>=IWVv_Ze3$(igW-VTJO_*_Z>#JlS2mO(iQQR{@#Gd-@khzyI?e z?Z2HO8F9=wkKE*yORRb2d+!XfIP3roPy`nz!WReyLL2djlQ|6KY%tR6=Gc}y4l zod13GunfHVdwaEG*uRU2Gev((a0UEx3%rh>?MH~&iip{oHcA&r6xyDO;& z*t+(w%ru-|>{@2J`1+b9>W?>_zAraxVO?x}eH>PMo281n_VI(I0p8Az(~zu}j)xXT z_>vVYhMc1^?M1O@5EguPn@TpID&UgEgfbLV`C4$gV-_V3@)u4iJb9{MGE)8xKt=y0 zp{J6+I|^0GpVFTaq)#vEPg@3LbWkwN1iXL7*%2Tdl|OE32u+YjD;;APlP%T2PZ`r6 zY1))GM>{2navuC6(-}8(1;2!;=BK=qtD3%mBB;7z9Cb1Ym2g_x8z^|(7kw1Uxl&&2 zQEh|~t$RbAMe&XNpob zVdoq?)ppE1w}h$~PtMK2P6}>DiPNCG5ijJ}d{qg*Fo?)zhgH_^p--_rNrLmY$h@H= zq~Xary8SEf4r!v}N2TaCHBwuERVjKRI_CnafqXlKPfoBsjPHt`_?JB2XaUjsLt>VGF|8svP79|WIj23JqDNG6?`ypLJQ4-&&GR0ndovO zZKYUi?yJ=>#z$To(55Z>gqeE5lqN-&4*zhtKnt2Xp&Tsk@XXP8W1ZVMC{IrDb1p_z zi+7R6yaql^x-~(&Vk2;WBr3;~$;AE2DeruN{5JK?#9&>Dyo>TKY(va+0ZNv84TTdu z*6Z*Wyn~^e=%2i;hFHW}$I>|>-DAv)DpHd*1Y zhzKD?mryX$dr|ntI8t*5xLMV}v>wn&KaS!&OPnfTB~Fa*8W?_6GqbV4OooHp`I2ly3ZQJw}s*k(`S}J2S!-Y1Y{tK zq#T|@Fsh=kXCcVBMyr_75qA)Ds_IhUj)De;o!&fP*?)Vd*F2bKqL$F_r%gh zH>;AV_#iPoO%RWYzQAf%^66Q*&F_4b@rfEn!3ST@eu5O>>;Rp9rcR!B4hVJj{lQelMN0ws%Z%p`uT=D!_ zu`?ieiD`lOaLU0^i}Roa2jDSyV7#}SQ%mB$Fa4%6rd37JAJ{e~z!mi*99lWzt>}dL zU>oagW2S}-d7Q6w)9);Yit_uY$X4crk!toN6Qy|RA`E_^Mi`Q~Aewq7;;7l^_Ua@#yxI}Ma%{trJwt5(B@F-;{ zvwhr^s83^H=Op^m*#=1Vost2}$Q9x|?Q*1Wj5zr`1`!S8aY%;@f^(vu`g4=ypQ{LL zVK+111qGYSJHYY}&qoQ}c)@HpKVgY*$c8N4G|-^vMpV@ewp5cg+D2Es$5a(SxG-v0 zI;kjTi)!i%aqf|U<7pqDDehfmVJjT8IrHS@Hfvr3yA@`D4T`Vs~c1b#cj~(GP6kJy! zFMY&DKBLJDch#Vbrz6F5dCe9X?yxF6$k{jgr4hlX3#H(+BBkkWA^CAX)I?jPx3QCB zyTHS5p|g!6?&KLGTf&s27d$>>6-^2zvXxL%g4?)3xH=tCAJY((D-hPB21Is(+B2pw z5=1Z{ajY0gZJ%9%#^rmHy0f*%G@+|ZD$W_m^`A}d@FWOEB_O(?iFA+Qp`mxm?gQMX2x-(AZ$zpa zjuXT1MkPYX{H6}CYHxb`5Jz7%u>?CkGLsO5_`D1uBDOPoM|cP4637C42TC@*you6y zfZhZ+$mT1%KDEzR>~XG1j&j@vvt{j?DO5cyVR@o@-Aq8Z@yQDSeApg+Y=MzcLuyW{rVCi61dp4c(OMRGh+t+!bl9W zUHUj;suQN1N@P~K4s@$magv?!O&W?*n5uGSfo%LJ0{2G=uDe*q-UFLyp;RWp2cA0# z#-f5xVHv{Cvg^?3*vXZwneV&>lf8Wz8X-L6#M92b;C7*kWvbvYF2BYGDVzzNEyxrt zM46PTQW6i+S$n4iVe$N|msgxEs}qbjp;!?B&$R zX7(8HyCg@TnTQ!W=4Mw6fp|+b^Hz9`IM8MVgJ-qX-p48Piv~?2yBTymmwX z^2b`z1U=Kq@sk4_EI79VG{R*QCDrRuO2utno;3q^iX>7;6dIIYqg3-BRp-)z5cKhb zKBB9y=mV!TFmi2LH3e=z{!DS2LYdgxFH@K*X)}}6YA9tFg|yi@NzG4y2%<}Cg$Wwv z%UJ~)ks_fU15sOOJ7_cL&$ZVDNP8(`dJukE$5F9h)`ziwsVkcD2 zSsot(D_9eWjfY{$b&~{4&3-rFO`@eY z@rsWm!H@|+5jRKGIQLgFcbJjn#>Ktj?72#?{j}aS`)23d;s6Mo}5Xk1r`D2N*?dq9+T#ww(5w;(v_FyU+~Mcx`m^8b;H zA~7LIL|>zm)5JaGm^W2qr0}B-dn)SkYz3dHar|Z~ewH2QO^(%oLc8t(l^p}qd7tR0 zBxVer&`OoRaFYBHeb-Gkcu@hMI4oAo*n+G6@^KcxR=EJ8`Ewhmf2d8>)9nf9ByZy; z>P$>4>k?Y{mD}zOOkfJR+}XzLn3pQ(LI%9Gb;^MY2<71=C1MSpEb3>tISHR<0F2Z8 z#=FXDVDf?D#GuJ)Yri?LPxzSkYbZ4Mi<-$hYtz|2qUt_Np`1r2v|9DcTTn682IGyM zeqR%max)dqfg@xIWqz}~b3G-6_2VNOVkW$4HE}#^rJ`EhKt2*737fl-;jCD|kfw#r zgYm;nZ*g&=ALUlEd|%}tx+7;BqUzK8n6sKx{ z8#B{c5lGBn7>W(5pj#0!+Uu|$#_zug@1L6HVFqG2dj=YXcTFlewF)K@pJx@>t!MIr zJonO+kjY~l2t#)T0iBfYlclpU-()5*WhC_-(_?NhYEB1^WZh&4yQN>v$$dXmtP}6p z)aV$&IAdn&Q9tl#H;zA=_EsA^RUE{?J6_}72XlmEHbqY*y6ne@xOxI&;9N^b3H&eT z605adbz%JKF8$y(P3$$E`5{$EdV=lgV|Fpq%UZQ6&+@ciK0G$?t_71n? z4Gd+N=0c{Og85k1P>J*}MXRLi2y3Q4M5 zxZ0Nm#qr0YVt9>eFr>hWF&)DprMlTqc{9YmavKtuF3e3|pUy2VBzILPud7Z=my|FV zsTwlzchMvdJ9(hpE`+qfLo#2wxL2Ai&P54Rpz?gTN0e7{xwSy;06|J+3Jmd5x7n6Q>bU5rn59xlmZ2AxXSp+S6ddtGXQhQ{qwDaK^9d z=FoBH1Ot?lRbM6~;)U|75wR(yoa)Ecp-BIvDMwEG3C8fFwJ`!5M^-X2GNPh*I)7nK zmw=uBD3dvTh)MK}iyQxA{+5bVZ;jDh&z?azBe;S$rK0T_Xq}X%Ny60_vicUd9C&Z) zr}$xC-5Bzo%pwZ>NrYC2uVKn*R2)>BxRdxX2F>a%w39^1=JHU4@sf!zzq zBLWDSv8oz7Yy_6+8PS`06&WT#L!wpmC6;KdpP$)BN2fGIDpO=+%6EJ(h;@!YA+1q8NSTABPP@pW2<B?Rl+1+hccmVd5 zsZ`jQj(Apz=pBVvVn2SQ#a13X5yVMgN+&Ls*91jW6HaEDK8F&Z#PhO-I0Lj`;?mqR zCp1?ua{~ql;xr=SR2&Rx%CiLXF;haFdTCwB&X}It4zrbKO1`3;YYUKHUGM|E#?eMS zq#X8!Dcx#3Tj1i@n>o0n1DRWk^&{QHvNEN51MH~kFGDei6xI88_~^KL`^upXg(eB# zP@(ivO!WtPD;x4rSq4zkhAUNowqK5x6Ip!7aRaMMe4+P*v9us2L1~7JzCa7RV*f4A zAhI!$kqKh=T#cQR{G^-POhJ2FCU4vmHN+wT<6b0rb-3t9E)#g9Cm4r|UMK-Q4F)Ho zy4j$D|Cv4q88^7v!2uzEp|(UHmlM+jXc;IYk)2RP@Lx=t{h$HNnMm$7@1OC2Ht|~| zEhXZ1HTw~@j$HE~lPRS?)VJ;v89{-B7<9BJ&+=p^P}feA@4ykY6e!^@D{2_kndsav zt(EG?ryM#O&TP6WZ>12aVnfG1mfGN(j)#)|DztoJ4?$kxoy?4pZo(8E;PnX!9@rV# z<99sdD8Pluh0&o}R z{d4St4)`W+zDG^eLcElvbW*wfR~cfcR_|A<|u({EOKdX46r`PYjj zp##*{o|qr>mrA$`8ZDXZ^VPAm7``}m`*z6V-Mc^NMkF;ioH*fIxqNWn7DyYh5Ks`Yxs&;oL=60pdjt9<12C-vM z2=5wlN%l<-w+y z{WV2pNSd!$%9~g2H0Ov|Ew!HuiZp3}YGDsl&tok#a`%nLeTop7bzHw!ORt;Oej7Gc z#$PaO|JHddxb4PXj0GgmYJp7A;a3?m{POL#sWN68F50s8Y<=`&_#<>4Z>Vu6cCXc0 z?;UGxr0bn}ID5=Kc9Juk6UHvZzuAS}CQrn%mbVmSvbXE2&F<4j=Vr*{sUU;W%0e_|IpymHgnzTp#7&HI%m ze$;A@Zc5*~lxS;$9+B4vPcOG8?K`wC70&O(j8Zb z7fhUU-8P{C?smo%K zUurXgr^72d8dg-6zCAq5YStUawo@01rXPDOqU~pG1j57pMc6SV0QpR=E9#_a%r5H5 z#MxT4vvb!W^{&_pjilPT5&Y_W?AB;gzsMPl(2J1=EhtZ}dXUYex<|23Jkp|WCoOe4 zbgY50^ITKP&ZSl#!>WGv86{>3hPMx2;NKeC+9q!!Y!8pXU76S?ihAOA?M*x>R;fYP zvrBE!`y(LB!NvJn`MhY0@)g`0X1aRVGaIrnS{?E2JEz?g4}GsZKqXeY56AI>nASM2 z3FonD5!Ma1H#0Wh9P`AK>9bK}75L_H*XI(-gM)4PbQA85IP6o27IDL88@AVH?AQee z`e0iES?zlOwBmzj=F_y)tA|Wokk@_h$3|hZ+n=l`-?(KyRSmUZO79)D8SShIGj-w?TU)-e*n|q=-RQ`ljvu&H za@XfR!YGoK17U0ngASg2QD3BT7&sMvA$tbOyvI~jKfdsUu<8)-IAKKeGRyOVF1PSI=q z3{C1B+th{{obnUBw!+39+H2Ls*xmnBnNY5aVKTa-UTE2c-T6UD`g82yFmu?k!64H0 zF-mLGMn&o${(roFaC*P534Phz`Xjo&^B9g59bLug(N^M!wP0r*Nne>T(25gxX7^QE<&{1h3oe-kZ zr3+G|DHc$gf=Ca&V**kFQbG?sKmti1kpCdO-}`-c=D%|_@jQ zCtJ8jTR??{!rZ>jIaBALZ7WFQ8CA_?eXABGFT|Lb%5}0J0{s>gu=x0Pwo!~W>T`ue zfZYD&%^TCQed&sfAk2WJ_6=X0#1@Z#%HWp zVM-g}ft)^ix##yjbV6;7HV}81L_CDwHt#T_D&sy4RLIL!-GVt3=bcm*-y65#VdzQ_ zU$=l>ODs!YeMOJ}&2@}+*xR~oJZ`biZ)vvS3g+KNt! z*EmU0weNNM#~wfR94G9JO-4JBGW(9}Hj9hMTjOXIJL+0VAA#*p0zqWfAIDCw!mAe2^)%KG5MT9wysH-m zRcwS$8;BacL(oVW6l)fS!0hHly)Tms2C!*+9D511nQ37;*|Lb4)sH3eE60q_{$#{n zt-3*WHnZ@>3Uhw05Dd8RokmJ7h(m#;j?&aNnVMVNsK7hY$Gv@GTU7kGE4z=G)BZaI zLwt*+`%bnoSPd)^_yLn3`Wwxg^*SFY+hcl8Z&~Nk12mE1b|*bUBXx|#h-%MR5IVPi zL?FWlwM^}iw1PAcmDeWC6|8v+M!KNb;f^(-fvS%0QFJ{9!c4YEc6|LpKT$Q&LpCGD zO4Zn}QHr)3c$=k|^{Xp2$CY0AMW!+E-$XEg^?!V*;DgRZ*{$sGZ=6+StEE#A+^dL8 z8!*l{K_tWnu4Q=!7il#mc=2N>x0qz_*n% zD>Qp&rCtvkG%f1ww8`r0tC1%HGm6vyVfT{-vl8a`&iS%}B2Fq&azJz#l?7pbE0W3*A&oIe9dwZ*qU%!qTn#pw%+2!Mq>%nQwu-($c zzjWUE)Y3lwP1sz>ph_D&I6o$i!5W5@DKNo1+}j5$zsp`m${3odqlB zh*viKi~DxIC!y^5%d8fWC)Q78R`6m^ZL#4M1XZA0HUYzlZx;0Slvrp=uGRAP#Z+JX zew?DHa1FPs@Z_TBF_^G8L!nr(=rH}#x0dt1nHM*keW%Vm2MO>C)&qb8ZeeOIzy1=W zW_q)tl_yLxa^ksl+dC|o%J(wB3JH2rao{Bb zyZUy|Y)JXYEF~{+%{mP9ry1RrRO4$KGb2jinGo+}6PJ_P8xdt?mpn6e_zBHRY?@!Z z`uym(Lp$OOnJnT_Dd#g3ITREz7pGz#YRC=)1X-$~aQ<~6mhvfBqI0tfYe71*@TFnfXFf7wYSYu27jsSSy_=xLwq`31P^8O3t4{?;SIN54mWf5u;LmvG#3o07G|x(A9ZC(1=?`ZFwyynylWC5^j8-PUm3sc3xr8<#LKz9v91 zjMLkvg^7BJEv#yw)wjnk!ro2jj|mL*)lmQJf18<1<{_QO$t@rw;dC{cXjK694O?z) z54FYLR-p&K%ziatuwr|I-`T_Fr)(Ynx=26nRW-+k>a+y3a{;1pv3=B_m_{kgFKnM> zL0Lm&JLVnYR<;I`C$O1i!`9Guo`vJZdU>xQ`hc^N5~b3&b!%y(e4txNpu@ zGYWz~?O^m|n^Ozh=t2di=Fu2GxhMNQe#awMOq>RE*@koYetMP0w~qs=4X{snEIw>Y zNekfK_fy=9d+B5GJIcm!Rg0EJbY_-zY~qYQ^8V1JjvnW5X#1G5zk%Sn3H2r2mUDtk zAXu|sFF2%H$;Tz|YlFz$5=RwwYwh9>LMxD^pxJy4Nq?%%%R4_C`&k%zH#!FwnT+7p{9*MT2cd-`A~Vudh( zohz}7mPK^o2eOw5mh<(o6p?)kqQ{T$6{tdbc6A}xq!&|nj$*J^;o4km*K#e;G4P3> zyck4nTYAdgR`n0JGjIVpuGJCbN=n=OK5Or)TJswi)W^CsUSWh2fs-bIaHC(a)AdcM zi(kg43Rh^R?EkcHodJR#d>ua`B61mx>CzI^UdNH5Guz!U3GL{f46J}NpugwE(2%4|P%z)FBGT%tt+*RsCYj)BfX^S?OfmH}Q4WS(?dRygD z$m>8z&@O0Fb!(z!h`P@>&AfI_y><*-DpAUJ6-11vgZaQ?(8EpxiUs-+9o|W?P zHGpcO2M7V0^bNnCg(82@i~Eu}zj{P`{n58S=lMpIm2Q61#t**qv70y)-nt&rgW`aH zUM~+Vk*;M*e)AB}q)Y_t)ln_I?DE?55q6~T-8MY&P+=(saKGz27}Zf|Y+aA;$drv#KZv6NMGPLy#QQf{gpnk(WexPSNIzEbI79*qjwl=Z6(QY@VK@S@N!(AUN{!(9~8p zJC?34L*8;fLeKno*>01nZv^E>5|m}IgT(Ad3|k_#!&k99oqzN90Xv#-Z*;*(eKn>G zFds%M4?GW%MJJK0dkBvv=>8m}`F>ttL#?SvCYP|N+J}QwI2d%q67T98`%&_y?@IFK? zqcx6s2XwC-BQztE0joTP_5p+wBXRhyT2magF@K5JE_!!s8kh}$Rvht{nlcHjy1m## zZ5czlYvov|=j$RJW)(D)mD96#RHi_u(g{!C0=22%Pi{x*$uk^6j<~F63LiF%+{Jg~ zT!=`i??UwK8@$N$PA${5SA0Mc)|Z<@bWsir% zdtV5)2BIBduzv=;{c=5fiPrA&hQtSyX!{!tE#vp!+FpI$C%}lvFaoKzUWNtnAIgsE@-=26se^M4gb6-OisAyJ@xV#;bqk3t z3iEGG0Qak4NS2}&8jJ?#CwnMU6(Oynhoap&<1v+n_d=Cs4s6Lf5ArhSEAE3VtxlTv z83QLj0i`LYJ@=blO1A7$-*O%C)FXa2l^ch$E+PBJ35s>Thh8NxKpaf+D-!m^-yIL& ztd)lYScVJF;RY6 zN?81|m$iu1O|Qr7>9-)&o|HAC_x7m&BE@!CEQVGI|~D>?$4!&(EuT4fPd z(Z@gMsk}m6urZLY7xytQ7G`q2BHLNW@V6Gc5eU!yHy-vvToQP-odscg;tcapco9{< zNxYD6<0`J&_s*_)a?a&|BI&fF(sisn=kb}($fM~7|J)L)E3Im|*@SFr`<{2AmdOin zeo0kOk?^QNi!;X2Uv^kVkPbljgFE-He#%1PNBF0r(!ehaUy1gc z>{dI93M}75>)6SV!B1e}d*(p>2CBTc_#foif9GrPTvV)^;1Ua_tLBhS0WGEh)f*Z^ z98LhJ74q5MNlgb7RSXLsW(`XqS$_ca{V*N?fI)^9p6Wr~!>|UoDdy}5LI9_N%XS}H zZNK(!jQhNPeioY#Q#-_nZHX!8>fjU$iL}4PcI-61JB1nDe9qHads92`#uRWDXKy0I zh}ygi+m{U)*%|w$_VB~1C7iD=jqwRwJpv}HK*ulXXQ)-xvULrQTiia#8jqG!JGI4i z{=pm*uht*B(EOEKJr%L01y*bNCm5EU*GiQa;wH|h9WDq|E%J?FB^$617_J-TZ>mDa_6J%|9TS}O(0`hv)Rl6Z#$bG3g2FMf)C8Ht~pGc8UbJ*NT(z2Pm3Dy$r8~4kZg~PKa-APXM1o08oE** z=Kz$ygC5Gowj>RtMuZ;WlCyDlwJa8W;*GP4@D2k=VG3vpo;q1KIV$Cg%77E|8}(fR z_b(nngdzMyj=K1*zYwunmHNf8KweA~hqT#`?Z4;!@IYDU$J_X>t|XyvGfYI;AMp(Q zJcn>t_i3%;y8nNsJDMJB?hb4Woa;d}iD@C}4n%QnTx#<^Ztta76y$K$F4{+Z>N#de zI?wIXexiqpTBPljQn%QeSSZr?K6(^(sE|Lzo;wN$kuC#|Nd>cd7&!vxUt9keht zQCReBz<=gzaZa+}bd3S%#h>~OJ?-LFpvWom243=#DG?K^6^1f(TDu%Sg70pI-RP1! znz4VP*g|+g%n(eK%NKlwc!9`(0CKtx17ekQX@G0b9>>dt{<<)I)T3U%mG^-lwR!8P z&xAH`mv&pCpUuC%qy2*L+0YOWt#9UG#`}ES_K;DPQHsFr{TmPKD*+8v)_JJ4LpZz< z-W@J07h4;-!yO=z$O`^X(I^rK7G^Yt6v=fQdS=iLF6b;GL{>TSYS{6g5kYCVraqpe z>x{f~V!!XG{e@!F9!KoM^ zACFCleIEN>lx}Z7*67ye{i9ggd2PfdyLhT~Oa7q9tyYaLydhPLllsOZy%#*>y)FT* zK)bDxp4x*r5|5?50shgmN5rcKu?gf&t8D?pzaYWW;AqrY|6Nv?bP;mWD|VCtNH`Sm z!KB0hE4L`}%I$NO%ahOlDhf4-^!U;)Q~xsfFbXTq3v{c2s3+d+a0FcS!UBSUY}Fzt z$!J3n=$-``t57BavRF(!M1H}-lXgPRgBO+h`G8)3d+ggSFn>wNM8~?zdVb4Apoz%V z^LX}T1U&F-N>9Oyf9uM##iLQ#6)2ZM|JpZu>hy?ju5hhXnMY(zi{HVLMMW#f6)4HC z*R7s3xk$7r0EutqD=#*xYxFSp+|)mamZjG5xvWIYYdPQ97$stOup0I9E`BF<&Bt!~ z#1>_eB2?iBEXEEBoSdcojh!WynWN>|80HrG^1PDQcowPp=lhyQ{sURjT6rq5Go!Hp zV_N*mzZD}&-cO|*wOD=>gEQ0|5!r$GYc0s=2?L~3u_>T?z=!Mmrds=SD#>uKmGy^v zqtxlB!h>P+zn$&jbcjbgA9WwBmK4yD?Z*-xl)*Y1Hir|y*wc*CCis;3S?o_^W}_x`>f=a zq%FaRp4qU7nSU&7bq+sx%h@*gGz89UvG8FISWxG@)ck~ox8jwZfEONfZ3*774(5m1Pzd0;d{?>Z|WfO;S#&7CkB#{TfnF z{taK0mqDri0@J$aKzkpdZxI0f@^}^it4qYreUGW6#yzaZ{5b@|<*w_=LQZ#g|EU++ zv`~H${N78=PPT-mOr3GLq<8J(QGpBYaSWHx&I?gEOgB3E z5v<0kVYeNV=HIMreL%ozZVEp!ciUzce$XiN9oZfVRII<76LGm2vj27v?sk`ow+>eY#N|OOIL^l7|E+Bq!ZsP5Ws4HOP-V&4Ix7X? z0Bko)`>8JAsulZ8Q!-;$%D3s$4%GaEdTseSP-U0+8-6&Xd$8Je6kO+8+r<*m@JYEA zz_^qTQhX?33k{9un275akX>8Qcv?A^>k`O2X)M;Xk~kM<*>~B{0vUvs*Ap)14_lIG|~bYvt?B) zMWsaVViZJeaoj?~(%$fJzAN}o&+DdE@iJNk0@_3DQ_UT`}n(E%Uu%yAn?nGcI@ zS|vS%FOMg2wr9RTvDHaOy>oU?tWfQLR&WNbF|JGj(wf4)&OiIAn<;lpw^~Zfdwoy3xtOi zQ-`x1;^v4*Ybz)HlWXmCg@Wi0^!T57anG}33=2h;zj!e>e{mcHIJOeGf5Gbao%s%0 zcwo$3{y;VsZcs)KtRC2Z9Gj`?tP&Zao7YZc10Kx?_QM2h0+*1)U+Lea_=0^mHHbNu z&bJU>bR`a#2`9X>CKVIGM*s@(?cBep(#$9W3AfDQikIp)slQb*73g4%@*Bb+{#P%pxJpK&)XnpL?H}6o;QO^Qv`pgDO-%SMyy>r4Y-HI}}|K9dBkyp8Uqb=S? zaTIq~4wLDyl6~@M=aTKJP=+Bdr%K`ka^ai5+yOSo?5H(5GRUJTMj4j}IM>@6Hoxl~ zhSJ6?VPJ6q_s)A1T zL-JZ-3ZR+3@F&MD#{!7e&17i4qY4wdmnhT)*yv0`#sX=HWeAeGfD7k__7)M6R<_{MWB?7+Dhd+!WrM{cxY^LJpuEO z{^)-mmH0y?)xIkH0=z857 zph4r5I&Ha~obKFW4FBo5vQd|gJp8y?4dS0cw zP;eFN7Hd}m#5pL>8jxq=d}WO`y%7fSKtMu(=+v{L%I?{XtWSV_tmjgYf}AS_Y92yw zyDrLAnWQ>>ZLd7a?Gg4D5I~rYiGpO1DC~ml&K8CG5r^zDu<`1{X{LpE6TlxR`2GBL zHaUEK0;n&bb0zY7rLwbDvxM_k(<<9g^L0=_SA{(b26MAvtOJ(EPsqIweXwPm{VRL( z7Fc0P9Pa?|8t;jIG08nJU?$6Dn=>79>$yp$-`bH*WLIDl+OW%#?MZr$(BN~-OfByt zRg16DKt+;E0Mm+}QNE7)&YF^Jt;)lr4Pe18Un@bRRHjAD+cj5CR(gRu7Pu4BOfEFI zkpNYFYQ@x{lW+f-Ntz4bd2@Mz>PX-bN8mM*Q^UC=v~i9N@JBH+mXKH|HI(elan9q%B?!ZyJhJ zLmh1Iu0qbDGddLe%UW>5TPHYDc#)HUsoj0A(+@lD!#8;vJ}m>5RH zhYb*gwYHm18D@faSGWa-5+7j@-P9|d-j7}~)+gc;QTO=^|9pI9*Z#tnXyr=*s zXuJ!z22o=`5kO*t$*(IFCENjA-#M)l({w2;fb&;(-_ldn=pp&01)YD1?pD0ncgq9j z`Ks#aQ*+ws^C%WNcyiE7D=%QdpxAOA5B;32>21^QRrqk>27sxU_Z6pc+rk&(Kdz}K z+la8psvg8cv_|6d>o!i}fovq9x|t4GFR;thu2ykoIDRFj4fQOcnrZ)zxA;N1e+g=5 z7~yY`oi8z|xUkgMA9;{u9ORq56>kISJzuOtr-OHfCV?^~Oq>{OPqLalce3$o6XJsy z^XNhIh&662)80NY&OV+gAAvaOq74)XtG5dc!R9)4^ohwn*mj@XMO^^y{L~S@_$DjY zgZdBQjV%ejrACPZFe>$935!?hNe%ij0(5H8NTcweQ=PaKeEPN9E##*>`5;ao89`g1 zME9@H(7JL#d5M9)jpIMbvF#jGkZlm&SnX%nNaG_ck3at;gW?Uq>+aE<*KPVncGPC)% z{H&h8RsbMV>La8iKy4)171*H}eM(V02M-M}>%}LagpS3iu$5}f^B+B~01I0Plf2Td zBP0!UOY$^9W!u5K6lh`4(_5jVshR#QWTkn(nb?L54PYFvZ+TMX;^zzHK=F(5M$l8x znB~_1VzSC^I5u}|Oa{BlMD1@5gaO^o(tv;co$iMXOIQ5>o~1GZ3+F+;o!sntC&dCS zSX|V~N`9n9?g5sTK3Yyo(o#xH(FS$#)#owpxrp;X_vPSwnsHcpXa94(sxez#_!ut$ zEX6MnhV_LfSLlWxY-%jU%^p99?&-JHPk%y3(|8(v26N?j6_peDf$EsryxgAY%3sY` zE2+$}CE#s%@ce*%UC^Zais#VrrJ@A|;ISirE})WLQVA`TLMK+$XbF6I|KFd&iGR-? zp!s|Dz~3VWkVhY?JvdL`KSvHY0DmX|_y6;A`oGUAU_N>yPTIbM zO#HtFJb7@R!{1Nr{vGw7H~#xO=l?d6@6kK3{bwY`|Hnx8AH4qmI?DeH`9FVXpFMtz z8n_|>{G-=)^l)?Zeioqr`mOH4#bYKMz<&lFKJMPOkKMfm&X8Pwn{y82l2)HP-c6h@mpe8-=g7;&4 zM=u9WU>XNv2;izem6cgQP<(rJPHyr~4ZXzt7<$mPU*Q+-bL$D-W@i1~cIS_-1n27a zkL}#Q$4&^Rv^?mGD!-`l2=ee@8>@?3`F$FxbAg{ylByYE=ioSKa9s{^0~Iu{geDQcf8Jd ztl@ti&`Dg_XCgIZHQ6?{wQ8<~1^bSP*X({>#nHMn_?=6HbL;Mq)nfT3!^FcGYj${v zh{SsJb_bZ|PT2Ch5;NZQtlpoVz!(2?3p~bBG_95|yYeU{tei$O+m98KMm<-$V|I|x zjS|6-FeL;bFL9q_R5J?ql3`i?s+rzkFyQnD8`I>!4pC`^|1gqT{{<%vr|PcJ!q3l- zpk665qfA~}cHtt?ZYLIDch0(bZhTs@x3FH8 zU660(o{i{pZgl2l+~x8cQ$}(5zRk%yh7s25U`of*j*<{HjNUDqa}6X5>u)CYr1Qkm zPXEFJZFKG)pFe-)MxYw;%Ma#)W-?tfvhm=#tjn zvc6?x#prS3T$+%73RGkH(NwC-1UN?%FRH4H-lLCyIsXmt&7u4CyiZM>LEb&BHyY-K z{HL7>H)|hL^oKiZpS|dQ`=`6OyW4tEaO^>7OeoB({02+g>hk2(VT$YduPGznw8zOb zii%{JZI`b8kQL>j^4CKWX4JcmIb07tib7S4+_bm-_;2p(V8cB7-?5RLS2Tt%D`Teh zRk=KTD5@nwss7WpGI-4#{%*lB&ny{RMj#(=o-_N za}S{@=R-*=55YeWqqo*WOztsX8nabV;H|toa+)`BTV}e;a;}#J24{A$%q~;cHiLUD zYEEtz(MDSM`s3=0vOYgK;q8F9o|*d9Q+#4`u;uCG(oHJ-uON>W1vHWIsjn=X;`FNM z4{TR(D1lqo9|t!xQq9!zx3eOeV_I+Kw4*MlUR(`>d7FW{K5(4s$SG<{lv2K)F#VD6 zdtyk^Yt1v+jT8sFWmsW_n%_=M&u)T-3Wo#QD65nXRViPY)Vq3AnWben{9H#nzW!s64q%}}IV>gj}Cb~c!UgG;xw z(hXbC5L}|XKATQ5(4ZaO6KdQ*LcdKy{5mm7CY%~BF)J6EsFWeA@eup{A=70WXC}Yu zUffV;vbRc9KISRNGuBeIo=EpxHl13f#yDtvEgBhhVyzHFWjVpC7XY2V@N{BJa=LMG zi)vbX=sb-jl#SDA)mY_&hXrq)JcsZ1ufHy#`A@zoD^vO|WiobR_qPk%RkSO^&4L1l zV{-4q?uQlF-=!7c&x$r;iybws%Dcm~CA)PecoyT_-ik=-Ww8>uGbSFR4w|LaXkVmshyE4*4aRrk)4UT!gnP;|t@r#DIb>mQM z6r%5|U2=G0Q)?^pE4l5id&5E=66)3k(-D(Orr{BPNQi;F{D|q>u;DLc-KSt#X+~c~ zQ}^EL@+9l;LFSop{>de0LSVx<4^8vTJu^eH^O~d8*64Nag87rQ9BP2?}5CW29NpvilL zKa+I4D&jO40WGI+Gv0DXk*EFk$Gv+5Xe~WPwYD>*^YzHLwdA^;KXE=U3$Sf4Sb3@% z9qr@|Ul~msYFou&&^PO3AWsqzdfdIKByX&eeS4GS_OH}?glz=3tIu%8S*(7~iDFZ_ zruv}xJa=@Y-Z$lO1*)CWU53qOlJJbmR?96BG2_&hk96D@TN6C05f+9xL6!G-9|2kY_fzI49wmrZQzar)V>DraUf!lOErQ&O{0T`p9VN8qoR&;7c?Qdf-H zhkYnJaZl$B8%g_HyaFdb3o;IpH~{KS3ccqeWlS!*M7r0k280$8`AxU{Di-%%O38iw z`;6--XcDoR@~wSrqZV!Wph0yL_wZv`?1U`hBa0b|`@uj10#(u8ShD&2;-0;PF}ep; zBx#}gUE!XorjCEIXHAe{{e`KYh*unwIF7;hC2DLTFVHG9mWKH+2{CCm;90GXtaUs- zuGcoBa32xiH6#?~T+`Tt?DxrStj@4a*>ZxF9Z1QoxlXi_L6SOv8lq$iP9Ak8` zb{|^ntdEb72j_)j#^q{M=kzG&iQ1HeQ;^wOrCv{6#)wmX{PVE7_aD?a*!KNx>}ym% zEkbTx->v>Iw3y*Z@;A42cgxIKdy+CSJu{@+j$F%*?G5|saf#3zvkg-3AdA3 z)88b2`XIs+_;qiTmqSP1bJTS+R%k0Ph~-e3>WL+A20>+r~$Y^HT)+IV)neBGT>xs@K4VtIESK>A$r=5FbQE}>M<7sEDwLo3(+tn`l94EB<}==t z+NhQff6>NHvmt-S1o`HtEK)PV55ahZ^eg!+}r+eoH@2k{tFOn0OEG=Dl z9aoJ(6oak8XSDd%mv9yi=T%0a#QAS-q+Xj0yaiBC!6_j_yl3flNllow;o8Z>dvYx& zwR{$JCR)cOB}1h8s=2$TV@LgVJ`x!!*tcqqq0(z!;5zl*p5w$&%N@sr;5t-ytv|~{ zQzwjJgP3}_v*V4TZo+TBT(b&ZLRc@JPj>LtJ1Hz=0H_qzlQILrv&FaMC5Y>(5HyetPOlplvF9w#;|jofpW-3_$OWB z*BoSVz?4V{F`6Un3%kASo+}N`-#uRpH`+EjpKY^hv$X(uLr@7Nvk36?ZB~gr+E4Rz zfQipV%c?L0eBkec=nt)hs_@^!;n5x!;xk_@_L`#jRW&o$Ba*>v$893?A4U>A+hRo_ zf+DxHgQdeQYBIaA$Nj4H1@>@*%RHQ>_t7WZgO?b1c{9Ty=JRK05hb;{JDm3KgqR2d z`(Gb_({{q?|#u zP)rRed%Uml)x-53-&0vRT1@V)3RTYa9Y%~;^vm1Mv>UDW)i;tr2-KQscnJ;ohRT^t z&iQNX9AITDOqY;r`1G1$Mq?;Y>uRRdGn9E9=E*M zyBk3Y)+Y4PH}N8CI->FjTrM*tEXwA7=3w8%($PQeqY@@`cdkON(Xwm zuPXVsUkdp%zjsS^S#Z;!EKcvKq@5M+lKpOt?-^!yv1ORrE=W8#W>vIDtIp0s8C#$T zv>D}>10$cdzwuMwZ0>ob(TysqGZwv%G47p02TmB9oO>aa!bnw&5)TJCJ&?q2dBTQ; z_*uZF=igVF;f~2G;dt<*wt0E5iiwR?RXTjv-xTR*(0XfqtF|r~9LT;ZHqSs*Tu_>H z>U%KUEJ;qWJf#id)1!##KYM?S z4|<|9FnwQ7K1?8A+jZ5prT($5kGfA4nw}gFd`V6)FOk0#qaMLj618_F@if4`BDBW6 z%ev9*yC$f5?b3%m+Pz45V~-OzjXt{>ecM3{q3@V({eCh_ksgIgNHT`0x08aXy*1of zrYEZA^{|x|Jl`Z?fAY)bGSp+=30d4#ktyL1dS@cEm|3JM9<~_?G7KrUJoiH0d+83; zM}|%S*3y?lY2Umr7V8sh%7M?y%4&X3n9?b9vEFPaMbY|zeqa{J*m!5yg&Gm4z8OSMV!TTHKMBS z<(V&~-f8 zr<3Yl$@~{{Dh^B@Oe`FxYuz3YH6Ub`DplB`uq@`Sx@0W$U21#%O6z^@Ihqpu3c>dl z6bHLefhdsOI$ZBg1BaBe{?FOwhu`gOIa>J+0gzA~Lv$A9Je#WbzHwN&|r=n8Gh~?{7)A$>9m*03QpmX8} z#HM_$nP3v&g&lRoXwb$ycR2lb3!9k_LC)cKSH%0Njm1(KKDo<$R zywsG@;;N?rT1fQ$8Oe7wbJu>f?FFS~#xX85!`}G4=L^JTZ7Td|q9${aloh8f;p&DO zdYR1?-Q4omIx9Lk`xu-zik=;RIH?cUgvZQtwaaycdPulej;VIX5j?~nJz%;T&@DeI{3LsUoypXB2uU~ zl%gFRLkslh2|1J3u1%vmGmPoZkSd;Cj%&ZSA4@)+_koY{a3b^%k(Z(yoEXZsP!oXn%4oMLQCd3*Bs9xjHlw58%VRcM;U#9G3$(>zJr_Gi-CD?PR1(SK zDPM0opG{`g^S`c8nP&B?zf5Zg6ce9vU-wP2a;_2Zi3IeJ7ZPI)<1ZuXZ0_3)z0Px9 zB|{=ME#sBNuu~S!35fwii1r)S+VjIb*;9)F^PA#)O}L)o7QvqR z_O4UWBb~~7$HpQ;NL(bLiALwzAGJkkR^10f7Io5f-0uh|p4oB)bd}DY;5}s=f>Cn5 zKGEbtW)65D?SkyL>Z(I)4hA4x&TvecWP8;yrpL}MnhPyImAU48>u(mfFB4y3rAjV28R77Si9TXDi#ebjF$|9B z`JO)B(_dpJd1Yf{Q?#cuCg+lrq|?~$-`H^|iBP3pP(t*$4H zkmt-R&Qqet;>x~9=Unh|b&^}h8>YP|B?nYdOHG~$POklwwl%$YUz){{sIbXN=0)T7 z9ME>#$Nx%RqkI^P%EV{|ryVHT*snCLu+pB_4c-u+$I))C*$t)Ur8Zj)r($Y-r?_jo zy^5)$N0|Qxl1fnJSS*WKt3}uOj1jZ!399}(uT+J-OjKg!NS8Mg?S|s>P%Rge*E3$j zkL`=VXWqTh*}rVQ#_B zmjMm2a)td~@yd4bQQ6$ZD`scgmm*4rmZfkOH!$TB+ku;%b^ybIM?~lFV+zE9dn^u2 z9Q16Df35nb{ymwQ1e=piM-Rq#RS;)3oUobHcu@o8X2O2TM3P zuj6;Pp2u$I2;=y!83x-xI2H2Jwk8)160z@cR#i>sK}#H@*j1}Jp4P%sMjkH(h@Ja5 z$BAaX1pd)%0Gh5i@%jf^S-w284Zeiq^Q$MfY_B~tmR1VOlWV$ASV6H%M{|9cL;WNq zU^&YkD1!*yj%Lo3AOxw_Z-Kv4sP~i$sa*z}7O(un>~Q~*{hV_gLqf~uK8a zv+A`=cnq`ooa>s9kcQ4hg=eQ1H{|(@KB)u~$uwvTl=}Gb<0seYUnuMTWs_9aVm@Mv zYiAG%y&HP>t&H+5^DY)Gc_Y?a7mfalA9dr}U_kf*MXIr~p4-x$)Ieo`LvCI9%wr9E z>vsn0?17d7RmxPFp%QN!6T;EklWaGbxj&3JwXmFRGnOY2Irj{RT0#NP*msvA@@={ISQI1`xw#yOQ~ z`yCZJxoiqK50TqNFf@SJ4!)&f`qV^2)><=Ol&vWmoLP9MG@k zjLk~@Wni6Ap{zfTn324BL6bgLUYJ27`GDJSO5;xUD}Z@#Fkk1aPd;F--vFbb@LPaX z=z!ShbXMdiv5kwpv3wVQCrw=JiwFj65W=M^bNRH;o2ie|ulqjArkoa$4*SyMa06i0 zJ1)~{ce&fl@P?RK>$#!QxUJc5FN$VMv#eHZ0j}7ad~^yuheU0?*_31xd0_bl6H?wHmP5eu|6$y~D{-p&3<|y=*0UbpBtC z(gu3iBO)H~(aZ$_mgN5s@#q862kNl@rA{u&BtZ;Of7(qqva?Msp5%Z1Ssnjne(Hkt zOxdS=^)vU?AOGl9HaY7lC^`x}y`WV$yxV+I?Ml=|2j-Tt*IYs&kzd**;-sZbFxRXN z*RY#R`0BO&XJC@0sp|3s!5U%!Q4M9@p5h>Y)adutL@%E$l8T$XGdqoVdza|=Au4h9 zzCrlKyACt^^=V|)g0yJ~LRZx?;~np`$~DhZ!4+CNjQ-1K;y#e8DhFq-krAI`P7n*6 zFPb>aSfpf-wcErt|E$)loKR)+bFmHq@BIm82=F0Z#S2MFR<~vBXoR}s66!mWbP}Vx zrI@&2&81e!^;cZ#Qpv8$Q&uJvF^|?nFd{9TPL<7c&u+5fl~G#~n$OPpes+kpHhp0&n|-;Mb0#bw;0hh#CvBMg0}INsA>b(c+$)3lB@V>g46{<*eD z56t(mqjgp8*;HyHlV2hV#2Vol7aeVcZSdITupxiHE9&~*x3cn8To_nCSi04sxSan? zPi{x+Tx`{Pfylmfm&MRVBe9|Ne(UEp@DE=m(yCO%`~{eZq)d=L#dYtQT)=7~Rohde8_tH&pUC6*PEp|R%=&;c)9GM~70w;V)}kMApVocf#$X;ue0i2mwzMRG!}qad ziLGPhLTeSRUTv*!zsnJbKOSl!uMVc7Q7xuSN{Z zFO4VbvfBpxRr;5klH}Yg+4tAFQy^WVo@tfreq#gmcIqqG*{J%w*E!MMfld_30%zNx zZ>XQGigD33j!v-m6Lml0H-~;vydniTInQ+UklB-xZ(1u6e;xM-aG3Gz%dgKgQ-~!a zz7c*YzKkkpFWJ^EC#+nk@51Tikw^UT$7iv$PWJok(ff(9zG;;ibzH%skh44SHEy)q z@s?xfc%ya;_z>;5Wkc?WEeTHGTw{zWWa6Q^&-eHT(YZTi8(p}o^$P;$mRV~|8yJY` zm2j35^=W3pDYYq#AZ=7*>tMyIC+xnD)J`5->7;ylb8Aub%oOKp8BEJcBv#?o^5itZ zG@Z`Z4HG(YX`|Du!fc$;a~R7&V7(^F4~tpK^&^pqEzuyIvG(*6446Ean7ZvKAh zqfO6hM#(kW-9{pX zuLM=LRQMMzO3}HDo*ffx=O-Y|(m+(eVRi*vm>l2Lv9f$7Hd8`I8d=m_r=wGBa`R%^R~Ec~V~8EN0q$JFl|7xb*v)r!QDVA295yhfDfS z{6e@Fw{-PgMnDg~5hjvY&MPid;cTNB<*6qjCLJvyDw?#(!S863)!lXq`*uSBD!!dp zirta*hFOUe$8%)tDDR-_lIyp+tAaMYJU0f#yo`*nPPlu?9_q-O z|I*7{(p@|Jor>UA$CIzo_%Rg#0c*ya@9-xMDP-3^F~2$#VQCq2byumv@%VOpb(K+W zMJ=zSyQ#kB{#vM{Tc;S>^%drMw9;t(bM)n^s%-Mtb=GWqNy(-jQV1Vk+RZJ$y2qV> z@x=EgX0c=O;r0C&%HWRE51P*seKM$q`5)hZwUHC8lvvS6nF}YEC)bw;QnevfyEJ>^ z+kh_^|43Cv=d=dnK1VVEh6wyFI9_BkD1DwTLu+mvz1WO z!6NlFPlbo{EXUHX9^3NVCECKDKGC)r?`kc|vY0}N+4p*kq1bxkD=SxaJc#!{MELWy z)_(W*=xi-|XNu{hER?4&d7vnlVgPKH0>9l^sf-{sxl!In>@e}f%LR+skj~@zw;13R z#`>1E?rn7Cl(E1rix|dkHHYc1%h>#Q*HW)DOPfw!D|(gw0c}hP*jg>Q>Nk}4@s>4O z-^r>RYnDXjnT#vk-f%nHGSxo4My7#S63_ze4eFMLN^u2hW)A$@Af%SVJ1LPEx@4OW-h2(>lrS`k<%;n zWza(AMFhtrQ#bKeh=-*6FX=7g_-Ic)$NTin)!EU}`7$_iFq|68G6+F@-$-;R3AI!pcttZ(1>-(C`e zPMR24IijNxQbQ9kQYmoPx4(E-3%RcywqJ0!6 z=8VSH_nMuHz

}+1qUyr#t*mt%=Bwbtxt2^yfNM?CRdxtzuZ5d?9YUzpG%d-d@#| zGIimct|F;bOdW1cx#oPmIT^cYG7r~QNMMInHDj-O4?kVqGco z-qW=r&AayC%=3IfkMS*2rV*z4>n(qqf&-VDq$=Jw6?y08p+N8%4&EMzZsEN6*_7k* zIJ(&dzC=Mq19Yp=#rE^6N;m0BJzPaDy4{rkp63^M@=YG`T35e4t0ubDaLU6ije1}Vcca|%EkW|r zdL3!!{&)(%gNLn@&r{Q=X%DyF!u1rKpsGZh{v^M1A6z;!z;f$c!@I5HmL7t4rf^r% z;vXJ;jJu4$ktzwb**E}{IJ`@tcHrcvyL&5wh~~cl=V9vj)@Qu1Ijxg!xIZIe3Wxhp zawNXptL^d08+oXs+!STFc?KzUuFye1x4}yR|Alx|8I872AYn$XR}w2_Zaov!jg5w7 zhS0rmCAt-klNI~E$ViNa3zcYCdD-pngDdVw%tYYQ^0ruu<1JN`!%}ZmXU_phzqJ?d zxv3gp81SUnyr?(G!>y1c>aRY44h*KS59Y0%Nx@mN!)vFrsj{?>h9_$&gmSM4>htFKV;DRyGoA`I*EnNHElZ{-y$X_+Mu_aICn;x$R%SUqu!o>fE5d_snB7sA zl{kYTg1ObF(AA0cmkY9bO=g`h`CUf0K03jMA4!RsDMV%LP64AxQ)=MD7*$&f0iVW% zU44o+T^DSuX&E}kV{H{fv&ab0(;t=ksCB39k#&<7Y25u%Xms77A0|@@MQ;t=qqw`x z))OYRgWl>!&xl?bN_E(ycCn)TleGQJ?hBQMJ*GLl&2PM1-4q|~8;^sT|N4{p?lTFx zvAE%qK0liovUpKYtPaVy63iL{D6{6&nhD?P;vxE~w<)+`=Y&50k#ilIB zqE-x%3~C89rsw}nll+T7nr_>NBz3U$4ZJ33hU$f(|#Hf)R zC9aV^jQ6W5enzCXCE}C=Qfnw*`psHymLD>hVKt`jpopkClkGa5gEmw!ni5WMh}W6GbB zXQJrDWT{jz@aJZ647t=+y(k(!_QET0ruo6dN-)f$Z0iylyCn5`o__QR z`laHPM`X>+%wQN6eA(8!)W28O&9T$rRr{zS{q*e?U01gckIxMSQS=k%BAvxtoe6|r z=Iqn8Cj9!S+ed>db&dr|JMT%lIz5ml*)dzybPsktCEEBA2mWKGom7$F&c23#XYu($ z_&2TX^a)rcsj2OJ9VR~C3TzsyoUOH`H$!P|f2=4x56>OcD??DymW+xPRTs1lsG=3$ z%Q4PrQ_2?%l*r7x^f+y}t|L$`3Zp6^b@}$>T8sS&Z z=ptkJm)=M;Ivni!EvLjYnHO_RZukd@OnS8S!9iqI`-!x@V1lRmo<7=WF zRNCv-pE>2-nf~*mKGi;JZ<3h0pbK_AD4R*3_5C31(3U6bc7&`(cb~eHlssNUxE9`d z8Lcv~k$xCvY2sFMGD9>+l_Fu#u!3{&FyP0`N?Eq!F#z(^Xd2 zspad_QD6+L32En#i)jCt|FMunHJLSNt@@!|?{T(wM;>uH{AfUazMAdqNkhliEw)vb zPGsI~z=%eH$sD;b+1bmSDIyUmSJL*Og2-X@665d1H-ARa@3jVu&sCt3rkyWE%+66h zyaZPdjnX`{)td%Jo0;_9hlL2u?Rr4D5^r*Zbp?%%~Nn)P9B)92&6>3CUr z%^$$MfyJ!LxH{MxrABy$;V&fCUkce74!>@HWNPgcPmn{gDHyr&8os4 zw5dXPN}zk&bRW6$lG;hSOJ^Aoma>aFg!1+AzfaVSGsaT-Xumfccu5Gc>8sksrT?Kkv2u) z=N(?s2&(Uwjz)@Z1fs~3{JKmGrZP_GSDsK5RvYV#g^5fVm*gs{3aO9LU#8V%`5x#S z_+T!QA?7ekri%C~sQ8wAp{pbO8~PjOJfE0Ts!slrMJ*n|amk$YRejK}?*e;H`Gx2b zq*l{;JEBvEPd>G>vcJiz=4iV@O=#0#}9cFVz=-h`E?#V$iE}P zgQQ$a=7>l^&_{clD85s#^AI9FExKyHbXVF~dQZLN$^P*!cwO??#MsM6{_!vCvxGiz z_Xl?I;UjhHAIyvmlD&*!ur}3#zOfeltQXa_-uvoPdlM3Phba)Iw!FMX`d%P z(t2O|^)@7;$KLDquE8fxmFvT=T2Iqz6s=nto-3*qdnnN#Vh3JSZ%!#9*L+&zP1U@K zWSpo}a0_x_&uZp#?IDl}J=X?%R@-fjAa9F%e@T4HP1hqz+NX8cyS!o>`qm`JHR zZti)tKkAjL5W#d4(f5YN!5i8qCy4yo+jf1iJ!Kft^6pBMZLAZ`a6H0w+yo&XD^hE+HNZ_+E?byyFW(z%l<1k@4Fh5O z2QD8}2)-p1R+Fd>ZqghhY`b4>QKRW+KtOwH2(9XnFiVwG>fBgxZ~ZEp%{wv3U(4`! z6{5h9>*J7ffncjr<{wp#x?iey(F1MSRFxm2SD|f|EWhPJ4rgAr5ck%wT?65+Z-2a; zuy(61f7$J5FWxOk#lv?w58Loub2CtG^1)s_wl#cr&vT2k&UF%};E|%rw@%4LcJ4mW z$(G1Z-qZXRk(Jw(%f0YRL+peV)9!NfR3^jopG5RV?;M zKTDQAN@?G0;oa@MTZ>nSX!$Ng}S?k z-v#@TO1B*}8Y#nLxl+PnU*}<0wRdb2c#)j&l&Ec^Tr+aKK3L9P?at_+mD`zcqHL~% zFt0-`-O0z$N`Fgv*>O3)rsQVF{gkIuxBd5&yh^s<1v#9Zj{9+!sO5g0azp(^sGkT= zP83Guio|iWHAD{ZIwZ>HI(+ge?zb;FP$DVV;ddigJH92igtuKTcVtXeHAMU}aVyBU z00R{{Qxe9G=f4_?%C-NTu1dO!q_m7DC|%__bEyUBlC-Wmw8o*q!To^$!TQqrD+#KO zRM)0-#ov#RY*fRk*&ARTxubGzoO+i-A<_k7IT8^`;~!)v#ikqpit4#GjYx$fSD1Is z%g;*D$t@ns6}Yms=n5WVUq6l7eKDb3FZwtfBXqmNj-k}_-5o`BAHb%AK*C-NuH1|Y zoGiLj{j#k!$gs{HjYw#|3A<;)W;F~0I(`zVyFID9mll{5B3F02CHHfY1LgvkP7Xg` zHX9t&p(N6R`ONni1OMG4!#Y<2w$HC=v@@Mp9D1zcQd|eaZrS*!!R?bV7W#LN%x$p! zoNldKh{UB@NBZ)pl?zs^1oeV4Eol|2=GTdX<798%nu0PJk-2D|2Xy|kp*6`~d^9I) zVzU?LQ(2hRuna>rQ{o<)PfP?uwQ9@-L~jn~b=R%Br|j$Blb%_a<;oo4pB0=@875i? zfSNzPJRal6zT@>4d>Ow(?Z|Pzw(GKYE=gh|GsoJy$(o?e1p2sIaOty6@io(G{u1t- z^PSSIhMBDYx=~h>I;5QxefX+reE5$QVO>CzfXz2g^?99qaVqL!^N@EsqaWeUseDCX zy|N=vg_3!(MW}|r_M5KQrtk#SVfz8L+`6r}M+z~a3T*TCA9sGMb=WD4VTvinY*nB+ zA`CA-Q~bM1#fXpf3DI4vUifWh2i$eo^p+jJg*5j*RqBRnt8ds_arlY7HpeDSUxRWR zETRr`;4?;I`m}QD8!jHEQs=r?ue-M^`9)3g(9C@LbQj63~K7+~2*^LyD{_hJrq zr}jM$eEk;CAqTc;{gh#ofs@+4ZB;C2%9Cs}nEk@Dug=sB$u$$?D@KlgDWaug6G@bV z2IX#VHMrA>>sqzkddf~a1q01R6nJtsKMZ{%g{#R2TT?Xk#|qjj9$7b)!-cM!!{4kO zkuTR;8_^PUBJ)Ms;_MBil)#!J=F=;d)mSH4=5-76HfS{#5fGSR$!e@*Mv4En8moXs z@?WmT+5{=|7&GQ{}9#UgrEf)CN?bmQ>J}OfuoV+_SVmmbs90CBKL_&z8`8V$_n z+l6XsL@_iF2889_j)NATK><84{2CxQftLo@X6EMR3R%iBUMyIS9qMVQ2nT!-jo*5f zN@IuwbC$)0g3u+!x-E-^7oVl-FmnIl)r1$L*x!AY`kBEGb<@JL)IatT>_8eG(Agdm zNKmZduU`norTE#8J1}<;>Bo8eLl^M7b#0qO!}DmQHE>?&jI)g$)0r)^j&+dLl5hG>9)ZQ4Sk`xj z2+lK{2K}|@J0ZM49cT*vul@Tg>;L!AE?EJEbcfjr#+*79gpLYm9SU?Fl2muxK>re(N_A z`{Sjra^WNo5kfxR`+0!Evwbw%c7?WoPy+iQ^|0}<2qc;7>G~ky_|Ys^whC|A4FRjn z@NV+u{%=fA`5{^zd|?~SE%F6-k0J{jU$Ng0d^1yzBy(gv-Zmum9yw}b_?*YA{to9B z^Vf2l71)l(jq^EWh1zViNG!{HyK;L8vhS7SPt#mV8K=lAb59DaLk4Qs?a9V!i)y1E z>U6W2pfzuHi(B}=LTA&$^0_6DlRVAsDqL6O4&C_it>2!FY**CdpKy$bq<3<&bsY+O zn89dvUeL(P4HzJMA=I$&G6skR8c6&mwAjVp8W6Zycoxn)$eAHn2#W)P86)=}`mu0E zvA;VYJYeucjj%8vu$s0cZ3#}DWt>V6ivo1mbf)xgFHdDO)d<9XJ_`Og`U6cp5^n%ci}N=mW?o0V!q zc~DqL1T&-_1eri8)VYvUlnut|th2+Pj-j#)nNX6A?YIU*6ieb2kO@sr6u=M2+zcXZ zJ9~^5c-`I8)BWseFHgI#%L-7?jOVPgCkir4&)L(?!Ok58l5AghCZIE%ux)WO0|q)c&`8Ld`JD{r(E*JG zKG2}>M}V}k=(hwQJAqtgSOO435KqxaTL5HL0{{kI& zhSYx(9h|^~??;C+L&|rc!xo767CM4hXn#P*O$KQxI`SF0e-|B{;`8W$^k=w_&TFrr znI#))1NdXT^j?aMt=kvXUV;r2a~y}Cxr#o5`;2AVZ`pcqi%2b}C$D2U0}cwriAz%1{(EE{t^v%q$DSvKaV zw!l`gEF06kEwGW6Wn&_Jfo%&g4Vpbf-S1cvi-ETV4jU>i|w*(%sr?K zn6}`SWnlZ)1CwSZ%kuGb tQ5yH_insPT7rulEQ6&Odxdwz-kN$ttv=dS1+9q29M+Vn+d&TTn^B-x4s(1hZ literal 0 HcmV?d00001 diff --git a/assets/Scenes/testscene1/someScript.js b/assets/Scenes/testscene1/someScript.js new file mode 100644 index 00000000..c2804e3a --- /dev/null +++ b/assets/Scenes/testscene1/someScript.js @@ -0,0 +1 @@ +console.log("Loaded testscene1"); \ No newline at end of file diff --git a/assets/Scenes/testscene1/testscene1.json b/assets/Scenes/testscene1/testscene1.json new file mode 100644 index 00000000..99c6c52c --- /dev/null +++ b/assets/Scenes/testscene1/testscene1.json @@ -0,0 +1,19 @@ +{ + "entities": [ + { + "type": "item", + "subtype": "Katana", + "posX": 3, + "posY": 5, + "posZ": 5, + "rotX": 0, + "rotY": 0, + "rotZ": 0, + "rotW": 1 + } + ], + "scriptPaths": [ + "Scenes/testscene1/someScript.js" + ], + "initScriptPath": "Scenes/testscene1/someScript.js" +} \ No newline at end of file diff --git a/src/main/java/electrosphere/engine/LoadingThread.java b/src/main/java/electrosphere/engine/LoadingThread.java index a31775b5..73486677 100644 --- a/src/main/java/electrosphere/engine/LoadingThread.java +++ b/src/main/java/electrosphere/engine/LoadingThread.java @@ -16,6 +16,7 @@ import electrosphere.controls.ControlHandler; import electrosphere.entity.Entity; import electrosphere.entity.EntityDataStrings; import electrosphere.entity.EntityUtils; +import electrosphere.entity.scene.SceneLoader; import electrosphere.entity.state.movement.ApplyRotationTree; import electrosphere.entity.types.camera.CameraEntityUtils; import electrosphere.entity.types.creature.CreatureTemplate; @@ -766,6 +767,9 @@ public class LoadingThread extends Thread { myCube.putData(EntityDataStrings.DRAW_TRANSPARENT_PASS, true); EntityUtils.getPosition(myCube).set(3,1,3); + SceneLoader loader = new SceneLoader(); + loader.serverInstantiateSceneFile("Scenes/testscene1/testscene1.json"); + // Globals.entityManager.registerBehaviorTree(new BehaviorTree() { // int i = 0; // public void simulate(){ diff --git a/src/main/java/electrosphere/entity/scene/EntityDescriptor.java b/src/main/java/electrosphere/entity/scene/EntityDescriptor.java new file mode 100644 index 00000000..2fd0db2e --- /dev/null +++ b/src/main/java/electrosphere/entity/scene/EntityDescriptor.java @@ -0,0 +1,67 @@ +package electrosphere.entity.scene; + +/** + * Descriptor of an entity in a scene + */ +public class EntityDescriptor { + + /** + * The different types of entities that can be defined in an entity descriptor + * Principally used in SceneLoader.java's serverInstantiateSceneFile function + */ + public static final String TYPE_CREATURE = "creature"; + public static final String TYPE_ITEM = "item"; + public static final String TYPE_OBJECT = "object"; + + //the type of entity (creature, item, etc) + String type; + //the subtype (eg human, katana, etc) + String subtype; + //position of the entity in the scene + double posX; + double posY; + double posZ; + //rotation of the entity in the scene + double rotX; + double rotY; + double rotZ; + double rotW; + + public String getType(){ + return type; + } + + public String getSubtype(){ + return subtype; + } + + public double getPosX(){ + return posX; + } + + public double getPosY(){ + return posY; + } + + public double getPosZ(){ + return posZ; + } + + public double getRotX(){ + return rotX; + } + + public double getRotY(){ + return rotY; + } + + public double getRotZ(){ + return rotZ; + } + + public double getRotW(){ + return rotW; + } + + +} diff --git a/src/main/java/electrosphere/entity/scene/Scene.java b/src/main/java/electrosphere/entity/scene/Scene.java new file mode 100644 index 00000000..06aa150a --- /dev/null +++ b/src/main/java/electrosphere/entity/scene/Scene.java @@ -0,0 +1,5 @@ +package electrosphere.entity.scene; + +public class Scene { + +} diff --git a/src/main/java/electrosphere/entity/scene/SceneFile.java b/src/main/java/electrosphere/entity/scene/SceneFile.java new file mode 100644 index 00000000..0576a173 --- /dev/null +++ b/src/main/java/electrosphere/entity/scene/SceneFile.java @@ -0,0 +1,31 @@ +package electrosphere.entity.scene; + +import java.util.List; + +/** + * Model class for scene files + */ +public class SceneFile { + + //the entities in the scene + List entities; + + //the paths relative to the assets folder of each script to be loaded when the scene is loaded + List scriptPaths; + + //the initial script to run when the scene is loaded into the engine + String initScriptPath; + + public List getScriptPaths(){ + return scriptPaths; + } + + public List getEntities(){ + return entities; + } + + public String getInitScriptPath(){ + return initScriptPath; + } + +} diff --git a/src/main/java/electrosphere/entity/scene/SceneLoader.java b/src/main/java/electrosphere/entity/scene/SceneLoader.java new file mode 100644 index 00000000..cd2a8d90 --- /dev/null +++ b/src/main/java/electrosphere/entity/scene/SceneLoader.java @@ -0,0 +1,50 @@ +package electrosphere.entity.scene; + +import electrosphere.entity.Entity; +import electrosphere.entity.EntityUtils; +import electrosphere.entity.types.creature.CreatureUtils; +import electrosphere.entity.types.item.ItemUtils; +import electrosphere.main.Globals; +import electrosphere.util.FileUtils; + +/** + * Used to load scene files into the engine + */ +public class SceneLoader { + + /** + * Loads a scene file on the server + * @param path The path in the assets directory to a scene file + */ + public void serverInstantiateSceneFile(String path){ + SceneFile file = FileUtils.loadObjectFromAssetPath(path, SceneFile.class); + //spawn initial entities + for(EntityDescriptor descriptor : file.getEntities()){ + //spawn entity somehow + switch(descriptor.getType()){ + + case EntityDescriptor.TYPE_CREATURE: { + Entity newEntity = CreatureUtils.spawnBasicCreature(descriptor.subtype, null); + EntityUtils.getPosition(newEntity).set(descriptor.posX,descriptor.posY,descriptor.posZ); + EntityUtils.getRotation(newEntity).set((float)descriptor.rotX, (float)descriptor.rotY, (float)descriptor.rotZ, (float)descriptor.rotW); + } break; + + case EntityDescriptor.TYPE_ITEM: { + Entity newEntity = ItemUtils.spawnBasicItem(descriptor.subtype); + EntityUtils.getPosition(newEntity).set(descriptor.posX,descriptor.posY,descriptor.posZ); + EntityUtils.getRotation(newEntity).set((float)descriptor.rotX, (float)descriptor.rotY, (float)descriptor.rotZ, (float)descriptor.rotW); + } break; + + case EntityDescriptor.TYPE_OBJECT: + default: + throw new UnsupportedOperationException(); + } + } + //load scripts + for(String scriptPath : file.getScriptPaths()){ + Globals.scriptEngine.loadScript(scriptPath); + } + Globals.scriptEngine.runScript(file.getInitScriptPath()); + } + +} diff --git a/src/main/java/electrosphere/game/collision/CollisionEngine.java b/src/main/java/electrosphere/game/collision/CollisionEngine.java index 94800985..7b784a4d 100644 --- a/src/main/java/electrosphere/game/collision/CollisionEngine.java +++ b/src/main/java/electrosphere/game/collision/CollisionEngine.java @@ -124,6 +124,16 @@ public class CollisionEngine { //https://pybullet.org/Bullet/phpBB3/viewtopic.php?t=11399 } + + public CollisionEngine(InternalTickCallback callback){ + broadphase = new DbvtBroadphase(); + collisionConfiguration = new DefaultCollisionConfiguration(); + dispatcher = new CollisionDispatcher(collisionConfiguration); + solver = new SequentialImpulseConstraintSolver(); + world = new DiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration); + this.callback = callback; + world.setInternalTickCallback(callback, world); + } public static void resolveCollision(Collidable impactor, Collidable receiver, Vector3d normal, Vector3d localPosition, Vector3d worldPos, float magnitude){ switch(receiver.getType()){ diff --git a/src/main/java/electrosphere/main/Globals.java b/src/main/java/electrosphere/main/Globals.java index ea21caf9..dde2013b 100644 --- a/src/main/java/electrosphere/main/Globals.java +++ b/src/main/java/electrosphere/main/Globals.java @@ -56,6 +56,7 @@ import electrosphere.renderer.ui.ElementManager; import electrosphere.renderer.ui.elements.ImagePanel; import electrosphere.renderer.ui.font.FontUtils; import electrosphere.renderer.ui.font.RawFontMap; +import electrosphere.script.ScriptEngine; import electrosphere.util.FileUtils; /** @@ -244,6 +245,8 @@ public class Globals { //micro simulation public static MicroSimulation microSimulation; + //script engine + public static ScriptEngine scriptEngine; //manages hitboxes public static HitboxManager hitboxManager; @@ -336,6 +339,9 @@ public class Globals { assetManager = new AssetManager(); //load widget manager elementManager = new ElementManager(); + //script engine + scriptEngine = new ScriptEngine(); + scriptEngine.init(); //hitbox manager hitboxManager = new HitboxManager(); //ai manager diff --git a/src/main/java/electrosphere/script/ScriptEngine.java b/src/main/java/electrosphere/script/ScriptEngine.java index 09c67a6e..e07c608d 100644 --- a/src/main/java/electrosphere/script/ScriptEngine.java +++ b/src/main/java/electrosphere/script/ScriptEngine.java @@ -9,6 +9,7 @@ import org.graalvm.polyglot.Context; import org.graalvm.polyglot.Source; import org.graalvm.polyglot.Value; +import electrosphere.logger.LoggerInterface; import electrosphere.util.FileUtils; public class ScriptEngine { @@ -25,15 +26,15 @@ public class ScriptEngine { //read scripts into source map readScriptsDirectory("/Scripts", FileUtils.getAssetFile("/Scripts")); //create bindings - try { - String content = FileUtils.getAssetFileAsString("/Scripts/test.js"); - Source source = Source.create("js", content); - context.eval(source); - System.out.println("Evaluated"); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + // try { + // String content = FileUtils.getAssetFileAsString("/Scripts/test.js"); + // Source source = Source.create("js", content); + // context.eval(source); + // System.out.println("Evaluated"); + // } catch (IOException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } } void createBindings(){ @@ -56,5 +57,24 @@ public class ScriptEngine { } } } + + public void loadScript(String path){ + String content; + try { + content = FileUtils.getAssetFileAsString(path); + sourceMap.put(path,Source.create("js",content)); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + LoggerInterface.loggerGameLogic.ERROR("FAILED TO LOAD SCRIPT", e); + } + } + + public void runScript(String path){ + Source source = sourceMap.get(path); + if(source != null){ + context.eval(source); + } + } } diff --git a/src/main/java/electrosphere/util/FileUtils.java b/src/main/java/electrosphere/util/FileUtils.java index 3dd988a2..5822bd8b 100644 --- a/src/main/java/electrosphere/util/FileUtils.java +++ b/src/main/java/electrosphere/util/FileUtils.java @@ -258,11 +258,13 @@ public class FileUtils { recursivelyDelete(child.getAbsolutePath()); } } - try { - Files.delete(file.toPath()); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + if(file.exists()){ + try { + Files.delete(file.toPath()); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } }