From 8a0c441af64a09de118dc58ca02484267f16c27d Mon Sep 17 00:00:00 2001 From: enne2 Date: Sun, 11 Oct 2026 00:58:28 +0200 Subject: [PATCH] Add classic HUD, auto reload, furniture pathfinding and death flatline --- assets/audio/fvox/flatline.wav | Bin 0 -> 44166 bytes assets/audio/fvox/flatline.wav.import | 24 +++++ docs/GAMEPLAY-IMPROVEMENTS.md | 61 ++++++++++++ docs/OFFICE-ATMOSPHERE.md | 6 +- docs/WEB-DEPLOY.md | 8 ++ scripts/game_hud.gd | 87 ++++++++++++++++++ scripts/game_hud.gd.uid | 1 + scripts/main.gd | 23 ++--- scripts/player.gd | 7 ++ scripts/room_navigation.gd | 73 +++++++++++++++ scripts/room_navigation.gd.uid | 1 + scripts/zombie.gd | 48 +++++++++- tools/test_gameplay_improvements.gd | 117 ++++++++++++++++++++++++ tools/test_gameplay_improvements.gd.uid | 1 + 14 files changed, 438 insertions(+), 19 deletions(-) create mode 100755 assets/audio/fvox/flatline.wav create mode 100644 assets/audio/fvox/flatline.wav.import create mode 100644 docs/GAMEPLAY-IMPROVEMENTS.md create mode 100644 scripts/game_hud.gd create mode 100644 scripts/game_hud.gd.uid create mode 100644 scripts/room_navigation.gd create mode 100644 scripts/room_navigation.gd.uid create mode 100644 tools/test_gameplay_improvements.gd create mode 100644 tools/test_gameplay_improvements.gd.uid diff --git a/assets/audio/fvox/flatline.wav b/assets/audio/fvox/flatline.wav new file mode 100755 index 0000000000000000000000000000000000000000..24a2499c89646f65f46033ace453fc9e055e052e GIT binary patch literal 44166 zcmaI8$C71hl3rJsaY()a=X?Z?Fd%3&1I&O%SKgGN<7ln5*y?B%TI9V|jizBhqZwY2 z>+^r_b0Vv%X)ug#pNP-hmoNV#GPC~a|N0OAVf6q0=}*7?`%nKzs@V8n|K~sb=}-TT z|M$QAZ-27?|L^|vKmFBnE*9uEJ{>id5leQ*Bv=ey0nPX5pH;g{fl+%F&gd-H#<*1ygFbsxR_ zx9Y$5Di^!oSHbVk*Z(QJD*g3tzW%@GpU%Cr-hW#!cKDS8U9nJd+z`AqlZ6g|Jf_v z?4P{Z>tp&;bX$BoM2kOG-><^+_P?&9^)TZ+ACeXE)`ayKw&d{QFIC+4<`-TK{$Y=lbws`bQ8R{%HQwq<*t}^24W>{GX$2 z_VF$V-?rC3qTBlKn_%%r@GU>R9R4*5w|^ac>h!MsH$S@jS^KYE<#zKFgijB--)7n3 z^TChaS65fzb^9;NVEM=NYk6`t`8|quf9d?!Vf$+K9)$NVm46P(nf;?5KJU}tW~u7? z)}Q~Jou~Y(?(d6mMKR6M<>Zej-2ZI-^SE`hc=f}Fr{brmkbk)I!k6vsS#;ZY-%t#( zyvxB~7vbjj;ivZC+WVbi-s}H7t)(|l)8O$T_c_Xyp7yk0b$K1#wEkEHi=Wf4#mV*P zFA<;W{&~>7nZ0?z;kEL~FK74ne(-c4R=V=G3!>Ng#cg=oQ8B+yzSPIpbSv2XZ2x)O zx?Mbb!TmF_in%*J^}I{{m}hDfGy55y<^1cxUuMDjkKyO`;D&BdOyi%Y_0;Og4;~&0 zzs(B8$AcffuC6bm+t%+ZfAPEby+o{^#QLL0tn1)CAXe?qel@dw^n$0m?AKYQ^1Ab) zx5edcc+>rT87}{re6G`Dy0!h;`SY-IJA3tlyXVrUu$aHQn})3=VH*TcWe!u9XH zPrd$4_)fRpYM(q}JrL_Y^L3srz3eDvadjQtw*OcLi{B^Ts*~#p-P-=%`7~53O_NPkT}8eCja&cT z|E=G>2}ObGs${qKUPxWv=9%(~C|F$Hgh^drYeG5*t*+MX{MiF(wL5zdJG=DvS*G^3 z4QB7rc{ZV7^o3a78}0ttq}{j6=YV#ruEGO#y{vC8)b16F;Qt`j=y$={|8u_=Q&9i2 zSIcam;PEc^b(STT7rid8Zo-=m6wvN3ie(gZ|2*v8L=8gP;mcL{2UdE55W1dxh7Tv3Rqlvd;`+q>i5BK-9E9r zVE%s59 z$)zN^s-OHy zcK?7j?y?NA`mzn8_xX7`yfy*+oG^MJ9d6&-pCo{nsW$C%SYp$NwYxo^r)uvTWW(r# z8;GQs(U^;JK660(ROGhvEA2`?W|a5JBUqecXqVhxor1`+3w59c7HzE?(@lZS4Z3Z zNNk5zPPY4Wvfa0%?XG0IpV&?krdYNE+kHCO?zfZe&X2Y`%Teqf*zSGwr8&Bp(jsj4 z>14YvN84Rrv3@_X-Mjyz;N1-W04UJt^>1U_{dTe)#KyL}zKK%p-?81#$@l8yhD8d9 z_1mbOif#AX$#&cZv)x;Cnb8ce-S6YCEn;!q_O^ap6tmsuqwP|cvvl(v+x-mA3)363 z-FtMF_t7P``zfusx`cc^y>_;)T6b zaoT-GEW3F>`=3BQc;n{1)IWK(Y;3!4vt0QZ+o2V~2?ey4IV(iq=pQFd>{k|40%WARIDyXVafvCs;i3h41I#c(MHpSyix zVY}D*Z&PBK?efIpUBMe>iB{4r>+$q^C841EdC(CB;oXZi5v?%VefIl2S7m>r*BKPt z_WnQ+KPTT5i`%e!Z~ZoDrbNO0qik1@?Vh&ji&?tyj_uyVbKo5O)G3zju037|`&Vft zvyxUG3TTB`bZd1hIN!0|PucEzOfj4H9$L8#->}_t^*6tg+jAQp?s5#V`i$+~<`)?* z3I}}ot{w~NaQoK&ZQLRjwtFgl2}=dp?rE30Kr6f}qSxpm7u-T5#f-kThc`aAVfWVf zOsqBCx>qbN3bwP+r?qLbciHY{{0FxC+5e(g80PR={Vk~QuAp0Y`ET<)qu0CQIu+gW zIP~cjw!6`7(58)fS8yBdo+_Wia{fT9$6ZEVdc$@QsaQX;-S6YiemS?l!=Z-^YUdFZ zL@)EpRG6}2nL&Mg!*d8pyJEQ=6#JQrbKq0v&@5NopD_a+LgRe+wLQ4?ZGRh|ruFm+ zN#EZWzs!myJD;l?9YVcUetKu+$<63pSH1TePfo{q?Ki)g)g$Whko!K%R_v-Tu2SJ` zY`d?C?cO`T4FO6A;i=5UDI5;dkXYxlOx><}be=!j?rUPZH_$LEFoWXPs8C`CJT|Z$ zk0`UgRR(h zUt-(sUsYFb%a0J$^<$o`Jd1*lwmV+ZpPkRL-4px!taiJ)VC!hR%UnXi=v!<%9#OT+&BMPa+kT#(`sMKQA7tIyc&to&U&2a$ zFWYT1=W_&r?c!MP*zV`}3u@oVc6#<_*hJaxDjlY+*mqr=TNa7fDmJ}vwu4w_JAKtG zTJdLZ;e`(2?_Bkt!*A_D%75`~{ieD&X1lMlowTyL)gjbt< zzBNa;Q~j{;+SJ9dtNu{@7TfNbXTLq7g83Vd4exd+&fj}qdi|8%K&;;vt)H_U#FjOK z=f%x!ly3jzZTCJos~H+_-uW_Wr(@fJhU@W8wqyO^Ji4-rgYABfzqg2G-D3T?>dtmw zW7|Ei(^s=h^G)3fu-&cMj=BoId!WBdE5Fp`Y-e?0JL=-V^EgypXytZD<5ps;o6^q> zR#!E*G27+N=DErf6g+cD!=x_QvP)`pwbEugAzy+m*x90$TwRYS*orCO7YE;o<-JJ4 zE!v%4KAP>Q%WU_w67sG0rBAF2V(I3Ayxtu~!E@uYSI_BL0P;U(d184HTG1(n0^0pu zv5bQ5=V3P$>E=CFXg9HByBrkMpP_(96cosI%eV2jCR)+6;FVa-%<_@f%46wUY`Z5( zSWjs_6rSWA-EVEsKSmj4-_q5~@m7y4VJUy!>6m-81fRo$6 zBZ^H#E3zFu&evckdYN5igH&w0ABx3Gc&lz{(|D~sl)uEbd)#DV3g&O&Wo*0E&*4|u zj@z(%0qJITsYld(;rpyWEOiUprQ2`nmM00zcI&quk0_AFc2Bi0el;)K-5>G{vG$}_ z+Waaj+bx2{n|kbQ_uBq4ZWC)tkIP@fa#6N>+@`NgD`+FS$~)UFATqJtYx4`SR&A)(c?GoJhq(?Nh}Prf2n;5s%#qCI23-&3yfaxio|x>w3F?K#rqlC zJyySlm4a;du+3h`ODoyVVqv@G&+%8kl9%mxU!!*WvHf|DR??lH6zeWdY&$EK+hKPPS`)#&%02eRo&-HY>UFDKye;IA;duiS5uzV!P-17r&OX z^C`}Aysu@u8?)WQIBzfmy$IhrUlQAC1|?=N4N?2$(RLRFJ!Hi>>vy!BF3w7v-6FA&UMeb`D3Y250q|E=Fm$F}?GRr8yJ z7wW(#wwu%LV_gYbs;ixzKeE41LO#D&T_0_Cl}8Yw;C=LiSZ2G|7O~O`YvnJy59z!jBK}m)+XA`yWi!`kG8wc25DkR zD`$$uZP=ofNh>qQc87<`*QnyO;%xWIv;H-_EPAQIo8TON>ke-DZ9%YmHm%5ZcX!1f zvqHt$E}e=po!2GZ@+9H0e*S&!@rYvdez1#e$8EUZ=PzR0Ny5AJ+I7FLS;y*;9?xG20UqGxF(-DmU*i0lkgKDS}}()=3R?(Uvgyr0c>j6T~^k6*ou z$}~0p83slqv9R6lx%M@&okm}%#+#Oj(%tvDPq)q$i`%ey>wX>UqM&Zsu3Fe3;fHPR zQui0znS|4Qy2Yk_liK4=G_3^D)9gAEW~^9%YK&7nhl1^E=c|g<{yvIWfU>J@UzNAr zYj~wYXq*qfcLr(y*=KUiFVhAWC$XK@k3*Q^5P}B#ORvx3c_kv-YY z#ggsNie|uL!%La%-g@79eY3*ux&FN$6Wi|mXuIyW5u97Ms-ThI zniT+wtB&nnq8lB;54N*zY5j1C+3ve+Co8NoH=yxqw!2Df$0N#Y2l8*G71=JS%h~Qn zR4m`~f_Recq!p{{WV`P|o=35(tKe+MfzMYTIq=k#4wJf$m-LOg+L_q{wiEJY*ur+3 z+(neH>xZD1=voxKN3z|SZ1-%BsIN$P@nE*2F0I_42&w%fe4 zw24c8MUU-%$acW_xE7qUUGx&r<21#{cHg;qvfcK%@oh>hvt98#DpVez;Bk>kMOoQy zhV4WF?=600{66SrB5nhZsBd94zvYE+zlDNA{Rs-5qnjMIdzT<4=dtZJukEk09TXhy zE8k+DYF!o??wD2HSm0 zZ1<>5D{Ren1r700-I`tJ*fb6}wmWM~(z*@nmskMU?xFHMw%x-fgSYfk6vbQ@u$_u| z9sTGG)3V*>rTL9mdfQ<;VwE5=u+f7wJ%05rE7SD&9oxP3jYxJzLXeCdv>~DDG&_L3|ADuzQY=_!qJD#Mx?d*J- z?b14g+FunrNsnHb0a_XK(lO`X{1~Wx;XKOozLxE7iPd|>c9O7w;!`i(Z`dx9?KFdO zNwx!xtH^98&WoA>oWG2Iv_|Qvept{9upOKeE8(2?HL)}UehY9}^3wJO(hT|;XNAUh zt)IH7XFunY89dEX=`hPPPKuC8aX#m^1X@NmZ$ zV1MP~RVo!y7n?|3`T}nupX&eU_fB=y3e*)+7e1ElWbw?gu5-29vGsk_&c?Q*-DW$n z73FnYBI+ubAfQ0DOMCp~1?o~P+0J5>%c|>fl~G+#K&&fbjb1I*w|+kz@W;2ir{*`W zkzb(|A@6J#J}pv$6AEaz#iE$?OYhr|VvGW{ySUr)TG{4B!4o@`Y@#R_^N6xV**q&& zPPW_MSI)w6 zhzy8zOEGkd=eXJKEew_-l1-ECo@6^N3fv$~VQiBrL6%?amV0X$FpS*6%DV z9b?)0$qH9xY==&h8Nm7Osqw=jmTb2#aG$FW*zR$j7ErHdyGz-QOUn#?#J1zH@q_oZ z^>|yLTRb*oyIUQ?S8Vq>K9}v{Zt1FspqB{{#8!3Hifd5<^0PwiK@@OF16S9J zyQF*r+WkYeW2aPCP$^nnuoV>=dPKoi5kZK8*U>q#upK|nv}t#CaWC7Ul}Z_{1P?+! ztGa0SHL;)|SiKCs5BeEVuzhTP_ZkJW9mq#TV)5rFi*zQ)bSY*YZz9EDyYI2>cK5X( zL6umtT>%Ojk7m1@qBfBq8DGZdt#O7$VH1hf$}Q*?S~-{Pcy~Ok6br4$cGo38t6~;( zt2ZE)+3v@bSk89Ds_M1!us|ysQZRd-Ue+cVqu`}?Cfl(yyGLS4E3zFuF4pZ*Mz{GO zYl5K1ibdTPOPhx6?!=DS?%vt%8QVPvHzhAKcu|js#7gsimhGgKg|u=gT|^~fsasi{ ztY>x0(G=7c_2k2#xdM zd1sKtcBXc0w;(pQJHvJY>T!|b5O!>TDRz<>J=;U}hpnGDZ~Tz$1k|p0$qZuK<$`SQ zWv)lmxwBoce(wGl@>fW85bm{pWo)NdH?i%WIfMbR;QX2O8<`bs22BnjRydRs&apyD zTH!uF%XS%T#|*eQgREKMv2hmLPKS_-qZwek48^<>>t%9PPdM+MjXJr=tWX0D*W-=Z z?h)HPg((gp_nBAu_@YBB#^u&8JJ)S+R@h^O$5k#B<=f9@yPL#z)K$iIuVy>3CEF!+ z@qcYo0Ax~Y|AgL?9q_Umrifwlm+wN|izs7d@ zAxLaN!K>Nsf><8EtfQ_U9G5w^+aJ(MrJ}k(-r9}rT&&o3Y$6hdf`{f0*$xU0ATQgk z`OTtYWxJvvmauI1-1{-?W$jsTuXckx`@6w*g~kK6dy33<3~BLvwB7oNSO`M4yK}Le z?TBTzdkSvK*p6bb-MMVXZP+|E&tyAx>abU=>b>@Np2>uHke2O?0=o^p^MU?;GjKlC z&#;{~?H~$@jRz=rjG!RPPgyGFQnsV+^>gRPgiUj{I}592z3uMT`P(Spifsp+X1kZ6 zV##)!M`@)X+wJ#dvmLkLLAJ}qw&N6M#uS6?&SX3GbNir815SY16|Gy0{%OW3=KV~M zW80~ir_PUYhgfF2^PtM6DOT=QTH$T?=(J+Rj2L|u+xhFK))}#u2hZOh%9j$r#`o_v zdXVO4lxOd{I?aw>1AqBEI9IHD&yNMLI{3aukL~W)EW#`!+r7+uVqG;S*$KX0A%L+i zitl4PdR*G>JpXQ8xS182iR~ETvm`t|lkIlC&&842wTTb2lx&AX`Kp)AahBhp`_c-< z!Z}~H$_!9DvDf*VS&>JSY$F#}C@%{b2avoKxc0Lzb4k0su zbBdj0&2}&SGl<2JKAfNVjUt@;c5#Ya9PZRCE!#ai&YNgOZ-M9TnQZsqV%ZF^ozN&W z9~CP^!VpWb&!da>D9ewGvclQKY{v{L7h&1O;@OYw1k@8&@Kj8&1daY62j|S7dFByo z?_yy)&ER2{$%Z-Bk76cQ4Q4>M6l+ARJH@i~vmS4X*KkfO*{(>e7i{-3zU&Z7-Lmz| z&D5>C>N%X#V;&o3yC<{4ZDpDr-to5M=Z3Phg6*gawm#N{?UK5%9girGmo8NoYz=9g zvDM3AJJogW)k`bjrQIYHTTno|k9Dctj;(Xqj-8?|kcTbUS)-MrwVS$*6pSv3<+-|O zcW$n_4yvoNM=STsoVD9x-4M$tc;?C3KT_Z|je^6rbQKAC*)F44P(Zsc6AGSsu#>}f z{`QVoLVoJsZHhNgpr896Bf%-HES|?@YEvXEBx z(h9L;yIeNRcb_C-PZA#MMflW5D~z5^yKkKN^%A!8>G4feY}^Cq<4h73((@j+pV;cPtEd8{@e`PG5XxVWHh>z0N9x|-TFtiWAx5;Pu@)p+r60W zE))yHY#tPgLr1r^<*TS%k2ftJ=3?7jD;B<9J@?MW5&*^A(c^k~L$?m=f(d}PT^x&U z=~=I0A(o4S+R+M}N9lZ!=MiPLV+LlsCs(ZY*KK0V`E9~EGr)H2FEgOnoX>HRR;HSP z+3rHN(;?KwacDeKEVg^n`Z?P%gU!iy#<{Z{TFD1FvmKnbC{{1Rr{4LnmzV8~^J-n3nCHvEB3dO186Zv3_l5y94W2t?bMS z`E*ohJKLpBw!5vEE@g3P#ccQ37F!E`Fgeu~-Y-aKw&QoX(#nv=EuIG#18hg*sOuuO zogMh1*b48tq=BpJX>w%isdq8zs4m&=0^1ooYt_}Hu9z)RK&-3IFz30th?O_n?X51; z%EFMRE@ItQr#YkGNe4d1rSv!Vt#fQAt?aku>!?I5ezQ2wV!PfGwtI>Xd_qAkGz#k4 z#0|DPtc!y4-fX8$>>CB+%l0^@MZtFGlQz#GY#3q?K#M za<(H@V!Mm5R&ll~#1uqNL8{{AhEFEp%N`d6+pQl|Oi{Mm?J5X@SafTV%f+^P@&spW zJJX7KeAhVl8>Kbf+RJvO#+~3K7Cn{#9@S$NBio(Jc65tPy9{bSiCFfmPTK$ ztH*3wKFs%?xeZT~8^xkq62Mp&MYdCqW82y29~ZKn#j+kG3n>ReuapI)ujg@Txn^%XR`Pw%u-5y^N}+6=opYX@8$6c9I)C zn(gpb%z0BY&?5@l0TgI(r)0alIM+iqvE8Gyou0qCI7i#1qN3T3_cgK1c8{a0_9(|M z$Q(_`dFh5AFI~#w=+f2o09(#>uCChNke81;PjmLy*m89_wi4Sl$}7H?9r#jR z$WvE7Nb364c7=$aF5?5gQC+LzZK%4qlwrEeCO(ISMb?$Zf!Omw`5oPp#2Pxp}W*!c5W6_qlo6U&W$Z zD|M?=;Qj1xty`uQdYlf6ZQI`*0J5Q+3qT_-F@@IY)7{?m7A!d z(X(l}LYVJA%{;nwd$QdHwhQ$lJgCPN5xHL#O#lnqG{t(17~=TStJ@~-HxTO{ve>Q= z6p~_F<2-`!QM(nZ{dJodbDoMyXodCD41@-f9$jNQkCP^~Pg_Md1GG}D?E#7zNGsZ3 z6+6kB?a<1wFGn(i6XzR%(#2tNvuq*A_nDjyVM{a6JZxc1$VPt9-wf^ z>`^nw^K9^mb$PNKGjKg-{jl9V-FgVKI)qQy?rD78C6;wd>zAL&c6-*ZR^8hA6|$gV z-SX4bX+E(XJ~rD?m%f0j>r!>`YZ#8pwe}a}sfz>87qGf&d;uD_cpMm8qC|By%1aDH zUHI5+cc*q!*GzTYsNH;nxGrbASSw-+t+;k$@$!*^8)A9<5_0{}Ay#1~+wH6_)5?On zi~?TfX~ojbdo&4)g7qD-TGs9z$cJU4fOZSc$61iX5(N+a%Td1&Bd<+dV>`4W3html z5|&n=;9<-oDsRsM#cCJLcKce~t>CZ}oM?ql(QdC`wtF02K|yT0t7)q&3ebuqEZZGs zXr+i&_y_*e+eSh`|4O#wHt>kL3ZxZ2wJzUcJ40F&6#7q*v7=bB-9z_Mw$rBV>sMjD zsz=meSws-+2VN@=0kQH!x}`%W+o@ak(n=}bw41P^SmE8gAUGee9h)ZGxo$D~f)4ol z(A4NtxJ#_WcGcK+8TYOT?t@I(FAS_0Bhup= ztnS-a#9C1Ic2~V|MEVDf9;DS{FIAuB$4}Vqad15t6awmA-#0IL?pTjEmD{M&I5^uC z1G+Us8m@jvh05BQlMb?y+4Q%h~Qq#p=KF?m#R2*dE+P*o~t|Q!Kv#Up}CfUeSsLjiAO1_%Ut;8l^UWc1f&s zMOqQ(C)*hsvH~-x-2`R@JvMZoWjkh2!*+=km;qMcs$Y4;Qn$7c3sB79ZkErh7_&l3 zw&T(=gR4=u7^-f~pkCqSgcZsuUG*ix53+V~u-)TWR*>y@Y(Q*brcbec6l1nq6otlv zy5(nNg*|UOhdgZ2xRHGUWR$Rl?UK5ba6v+8#nmOPSi7%Z&-~DIsh@fwYp; zWo$Xysji4$n{RdCYe%-ivT2375(-=_k3XQIE|4$I_`!r&)Kybm3G%${65CmnYzGDNhv9X9Q1GE(b=SVeb_?dY+bULlPmd3?LOv*= z71<673P!<0|9S|VX1nG!wi5+AQBaZXg1az>?Mx69qgdPqYl1Cn;dvWdSGTe7c;?Qp1O zfbDoh-SmbF81biddTb2)0EO)itY3USHx+kr zKtshA`*5zSp4g69vfW2Cu-&qh3CnGMn{TlwR%*W=-E>9;{en!fV$Piv;#m2-X~pL^ zE$Nz9&||~RplG(cYh5drh~*HoM!c4DQT! zIUT}Bv)yf%SaG++xoo#%{ovfzuP8K_9KVXq)}{rsoweIN&>u$j1wPcpA4^l$ZBVVl z7VVag#g^)VE!mE`ZU+5gY`bgO4g*ma2^$=E)g=m!b-7Ebx}5E-E*?>0XNgum*sj34 zLlh{M+3vmr^3HZ!)m4*L_H*hoixVrOSh{%*c}GE;c2}g8?Yf%6c6+sZX0iUpcK7}3 zQC!Sk?FM=FcU6Ic)&UCcLPOpt7~giB?Ur}M>Nwl&>bJ4&_KV{t-f>*Kq8?G$?nbub zHaOe4SX&p19`9#p#o6wDnwIS_5KqpVVXp)Q0a`H%RLrW9jw&s&gYC+G5jgdTN+}k% zVR_$GEK#u8HEx1NO^+y$PAFi1fm62QfZz0oyenio6;n2?Y-_2o+As;vi^S^Po9!gw zv0jAtjDFxozXxe&yX~58Ra$#Se;4J-_I~zf_b08~^{&TVVom+^-eRr!nN+c`9h-*j za+Rc*(XDKUPU-QDVySM$;?Q9`8@;m~qi9xWPxHt&HNA0dyvz<0k zoJ%WAj{TKGWjk@s`u!u@)o;UkUBw<|MIFNXnHSwpGmS}ce9uD`&WHV?&mY{a4l(Bt zyRN3g3h!%vJdN@tzu3RGShsBf#ixw(Qpm+wgN9$Pt=D{NSGlp}017_eis&-MdesI2EazP$6AeK8dPAL|?UK!`bh(oy1`qgXLj%R-Y{P;`{AwHP2;StX7yNCr77fPJO5ah+D+rE zu5MhH+U@Fst*~P4hOMdz0t%>$Sp4`(T{j$;8NVL3cGv5w3*@ccD#lY?M#25?W;jSF zxS6)m3J-8mP$d==@DIx!1++VLqToihGYaB%o9z+`&>yU zoxygQu!>etcL)WgfqjEXTCt$tVo56>Y)3JRaxN@)Y=8Y+ZCV`OyG_G(Q`;G7r81*i zn~k(WEYAL{BslK`r%8Cs_gdTy=yA!^y>H!kO@?SaHrvTtp}fVr!k^u##}4Vc-c4e= zUE|ho#G8hM?OhQZ7`-2NYnD2d^W1T^b4aVl2!PSEGe#t_=+^4c zQn%cp)2A3ciy+&T%y##ajABuDvT1VUu6gS>Ybyk>T~@LXc{k^uP`X%ji%q+w*d^@Q z40Lh$JB=Y);j2M?@Wo5fNd5amuw%fOF?5f9{>*C0E1;vu>jB|+PQ+IthcR+od0ca%a zm#s-FaDL~sBF+!);yBx-f|`rPA(U1$16#k5in$-$4u+-J3b(QCIE0Dq_EE7IlzYTt z{W7whv%>ATSC;MI95h^yZ3bq$gR|W|w!0svW81m)E1B)Kja1y@{k$yO-RU;?xx{w- z+>o@J{f%vx)Mae3ztqJ}p%svKo9Ja>i>I{MO0kKjx~dCNvaYg;&7CMvyN`8=t)#B5 ztIOJ5U5OplRW;jDmuzQ^qb_H=qgG@))n&HZ%}ds9Y8(qcG4}2g7vm}8#L>7z!#z*v0Z&y8r})c5wVK0onjqrSC=4m z>D8{8 z@|*S5%H9=uZQ2}Q7`?MyM2~x;lG*OiNy&El1{-2=QPeGszS6xj+hv>6lG%x3ao)c5+V(ceH*9=jA{LVap5}HiPY=k`F2! zIM@5SMzL%MwnHnW4`|rMVFpPoSplt>?a)fetZ+9-4Tfd2!oHni{p_mC3d~?(GZ0W( zzjy}Lt$vDb1?rZeQL~G(Wc{k`J#V{1P|ytS1KBRqBbK^#u=R`RmaSi-zSgs0UM>Wc z?m^x1^9^EcXZiwcqC4=8t-q;jy>a`S*iO1+>!p>ru3>sODBC4fU9DPdJCLU?*{%o$ zab3qt%KpmYNnIxj0@cN$1cjIat7}AE+Qhgneo3KNjfU#l&8W*P9>+2Y?s#%)6QN*t z(#ooq4b*P_^u=QJMFE0HYMuQUt3G&q(v35`Z@=!1k1qY+R7Uj@QO}h3Ra_x4p z*hGuPr)0abke=NQ)A7w)?mMDj&TT-#ip52d?Mgw#YVFy7#L3zNtL+k*jY_~Y{h?Uqb726J^V+z89pEuhn)=07ReqQcXOjU2Y^}3$1 zSafSv7Mur8F`Gs#yC`%^qt|O>*G_pY;FRrZ)-AK0;IxZ!P>)?P#7bZ2IF2OwjIRQW82wR)&4RAXFFz)=?%+fJ2;o^ko06F zxwb;Rj?4Oy(a^AG zzsLG9gXSrgwBpvUEZfZv1AvkhJUCBJ+ch}%6bsvJnZb^KjT%%~KR%@ylqYwdH$U{# zV`6Qmp3R_HTdq8Bv#jOdoIhk>2E`hSbcgNk#@QaRobAMUxb=wDOvCxg9vc;*;bIjU z({gM(*KUSLUA@sSbs1YpT_CRmpVZal3(&aPA+epSt5utGs)c-5Yf+adC_{m(E30((d(1)eC_K>@L#0Iejp+wwnk5LD3$6ijoign~gvaH?B7 zZK7_Tw{{fBcDtZh^*}oGBG>`W3Eg7T(nweo5DN+#Jfghqyjl#ZZiv27z|LsX23(Yb z=Ph<`5vTg^dQ~L_;IX7r5I|{teBct;SohK<7|Iq-J-`9%eqA@4&B1@wlk2nVtA(5 z=VQ&30RBH(D`^i!EonjF3mCR#y|P zhypE2tQFXD6dcAm#Y*bJc1D5KWm=h0R}!mWw&TD{!e|9}m)owiGSi|gp+Ly(($?d4#%lwo^_XtSb{z0xEf&CjLXRsp`W;9smi0JGtmV?QBHQtsWPj(I zR%AOiO#=W);h9*C7@Hpj*pEK5VpHta4QX z&^MUm6-&0;yG`RZEH~SFnl`#)GtslfX z&MCH2xAVEI=L67~^D6@WffvOxIXi?}KXKmYd)3?sA{y z%y#QVy%5wpHaWj!7sqU8vH0iNriyXvS1koK*DbH8SY|u5yF9dn(#nUr z#Fn4brA@?kennq^*NUr)cB?LTNf+BrHntu6OTzX)s>@x{J$3a|m%p-hySiY@)dgFs z%TeHBsji*svYY4XGOcW8)MXU#V@OfRivqWaqF}L=R_e}n4N17v zWMkW{mKIB+-x14cCET5~LM)J$0NAwLF_z#o+if*^D<)*qOaN1FzUwNMx@EDrD7@_$ zeOXAW$If;Kvt3TH_y!_Uwxe4sY!@_QA}cof5N%8fvYommA|(KIOFed@pVu^cXS)(Z z9MUaG*wcTvi<78*8yHYHR6xmg{9K_Ks93t`W`I`sl)kF79h}Fu6B_+d)r&cwY6fPz zTo40gw&UW+c178aKdsaH#kR8<#9CQ4-1;#&*$&P_M>G=7iRH8+&STp}`=QMMoic-5VmqM$P@u8lAG!Or{{A!rbqmhN z{aT=IZQ7s__n7s=b{xX3UltmBaX!xX$JMFpmT|6bY5l~x)~}{mJG!;=O3i6?w8mRP zUKVGF)J41P5p}G~7h9*gKwe+KX{9=%anX*toFLFjZrX0lI1@ag65CN%HLhznDX87B zHQOb1`3`wk*Iad3yFp%pNa`XMb!M)8PN5Y;KB1s$i=uAzOb{S_?3UX^#oE$tD~4{# zb|B6Es#|famBm^c1!$#)R`^Z(N;N zw`9ATvmM2>&35Y}1-dArU}qA}$F`eWF?HE)xooOiYin4gE);|#rU&rUr5V#i*-9sti{3}QNXFu3u&hnK4nDeHV`W} z>D41_w_Fhm0nD-8htW@q?P--m=Rss%wxa@V8qb}XY`4&-D28vqzXCYMDk|2ING=M+ ztkvVD4&BO)ejD*uv0NtW42tbZb-cxP%m89z&NTx&2nzv4EGDO7 zYbVYrmQQUHpfm%E#Yy|fIcP{LaK4r8%nCLGVyT$biF0B(t%&m$Kxb=R z1zjA7wHa(e2b6WoIOk@bte}g-3|x=r4Z7uk@+(4PhwXObf@~LeOPpf`i-qm%u~Dl8 z_1@NOS5_?94y{;SX1hXcyQD6D1IHIA$ab2iA#b*e>!NYS)}UsWbkohdy8K`2QoH** zSJ#QHytBAZUHRDJ##X~=#n>|2sV;2i>dJB8Pj$6a*E*suvv}O@*ml~)go0@|rl9HC zEefh93TzWk6j(9wCK~dzJF%VHM5Dm8qGv(8iH?GT-*T~LA1P>hHAlfHpV&^_B9>7Q z$D$ZfP&eCco$VY2dD)JqHnu|$2?dGmHbJHC)pYaFN-?n=S~*f+TG88XJ*$@;1=`=l zb~|F(Me*jFlU8Iq2|~83$#z?_o!~UvZKV~Ec7izBPH?V&wcS>>tDzNdwi)Cn{d%yT zc#BoL;I&(_-D*|`&MrS~_#3~XZh>^T9Tx`U+LWD{ZF>1huMtrJ0w}7-bBbZ~bPJ@} zt5Vy2gJ?S{jD|Ijam?wl1fWkX=y8)+{M5|fAN6bO%rx9iN{U4V2p~U!V?MQ5b@)_s zZm}9=ytIjEfs3`Z9>cl&?`)#)HgT;P)X@sDnL%8vzAD8cX^KtMPOisj!#sn`(nTCv#9)UINY^n85+ieiaHu}HWoG`3E{J*l1N zFR{jhx+}Jww;4<{gR2$1t+9SyBs8RMH-m(8 z9YTO&25bH$hHu>p;u#2yIF`D#W(MtJk2M1oBipH4Q*o|X)-B^)JzfHo?|@oIbwfkl z^2)7AZM+I;w{PN;E@A8cuP(G=KBjR=yR9zAmaD4(1v62yFdqwf)#WH~b?M!qx(ef% zg0+xO*n%C|&e%Fqpt`Uf6!g{Z&~Bd9wbZj9M&2kWgS=6&9p#S{^rRJAltr`T8}iah z&8rQpn29^^qF|UGv%eGr@-7w>%o|Y9$oIHtC&q3%l4N|bZ|-#c3k`o?RLe4 zY~qoEUSSf)S}In1rTyja%^K4DBe6-TlWgL!FpA+^6U#lKmb!V(u8>~))rMD(W0kaN zbjxB%E4FC~1*=)3Vn|PU##9tbJHzOSWj$V-R^m-7x>$6pE;u)C^opg?Z-_Ol8`3Ks zy5@YzA}pF^zu8@Bh=JfV0c_M`r)a_R#;Vrhq zk&+eNir3FBieh0qJA{VD#%x!S6=XYfX~>)HlDdv;o$As~MW;;^TXoaQW>ggN8q&I_ zx*}H>38_mI)I@>mVt?aJjMVOgf>*6wy&b;Zc5 zuFaIX>PEpv5+;^z9D$?C*GJHxCMmhCKT_Yf2D`_aAS<)?H)%}Lq4x|lE>(+7fDsR?O1J*C*9AXQLEhGxKHLo=x95N@y?lLHO2oe>-NxKr{w z6eBA%v`9>jt6r5AmNrBs{J_?~QP&Z9+r+i8rFO$sX*6uawxh0Aq=a)NG~2}##C09n z8d|&mzAoBrivnATAjYa|%7f03?@<>&IxVa&*KVr|3V4}Uj}*ib=2N1;X=Nb_TD&{h zU;fIL*N7=_$V0)JSVO0kWw!+KGozp>3X)i{R@NLBw$^uQgFIMxAJQ(uc27M#*Loa5Uu+q+0ME}EG~+=73xzW zlF^&(=vG1`b!+sVyT6NhyW+RI%ZSM^dS9cT^5b-+H)-fLX!OL2ZAXvW+O$Pvqj$Em zSZj4_Qc|({?>dA|?Zi%ivSJ%Hx%HqF+wRvHRB4gzuS3Jlpgb5grs&pjo)mioDwzSX z#d%{)77n4CfpK1%#z5H&xHw17*G?<8er|F{&O31KZ0FEe*?q3IH3QVX9+&%LYtd}w zW}wL}I%N;rxr+m_0HqmJJJW_)VT~0=4P6{&V6oIKi`7YH;K4bu;u(nZ^{_M^G>!9Q z{fu*Ui(F62b@2tn z)_PQy?UK5j?Oa{3#cvL!l@E2B!$_(UNhP=gU3`K#p+i6AZj*C&dg*=CBX0evkoou2gkXGEH z{0#-fa+{b?usR`4w}uG?{W7)-jRF_TY}Zh?tjCjT_qd7l*eIASyJgwVHqFHn1%5pd z1jQ&8w}D3#n?|>=-9n$To5%j1Y*&+nwZDv>Sh4NsaVtP8b0-MX3V*>(vDB?85@wb4 zDMlX`vjpj+TWt+dqj%kkZFkhlDvmYrW-iu@x?QXunY|&G><<%97Ztd!OCV}2O*gOR+x7xd@AO=ahic_XFv&!rdi=btU1KG87w~l1=8~DU> z$giZ8rjCn?g&-#S6z%Sc0vD@qi$b@iO;I3rhKBSsBGx31H9y8$@RuV!8H+kY0@{4r#uDHjP*l^|(f?MM#e&VW*Wi7O%8$IV?{GEkEg2 z94oR|++T00(W}Q4L$}5ffMQi-JJqdNY+9sZnhhZ>8QJK8mu|UOR1gcmjb5K}qxTyY zOW$Bpi@T-KPfP$RMr^5D^F#prah;1rw{#w5JN@^W*-)Ff)K_hpLyyHyBYjmBYd|Gm z6|L0$Hd@j8*$gO_i&Isxw!fzKz!h5|HpN2h35{Pk2Ms=DlVb)a&SNyJSSEKw14kNA zE!2KO!)zxsPO(hwt8sNOc0k25U~-y)I472fby_hiB%He$xLB1_EYPqSEcjcgbjy}@ zQWNJ4If-T6(hOXWwSI7JXf%Yz$|h&AobBkbwj;5EozJj!idFAm1!p_8`|s)+h^>H! z&98OITfb^0SdFUAc1EP?V$~Dm)eZg@;;F6^Ta~d$e!LhF8w0^RkHqj_p^eac(b!-#ekOb$^cC;G`meNYg+0KxUW{fs!3r_ae zXMYphEhp7MtQEx?INQas^bO)oM8d@COk1(-s&Yp?l#!|LIK}ksaUb?JW04ZvK});71P$H&1N5B zwKT+~Zo|~Usctd)k##Flk9!^K)~r+atXmQQ&mker&#gzT(Bs5*)-9(MgHxmT7G8sH zxndFlOevzwbd;~rqMG*fN`;)#KnpQ!00J|c+SdXXC zyjS&94C@ox=;@Yv>|&WVtXSEwO|kJ;HQTA!qeF@9id8pVu^+#xo1DS3F1#z2W! zTI2=GacwYe*&|9bP%N(ctXtFixkdUAt82yZsgGz>wSLCAi2X2wA>Q(rlX`#BGTSYO z#<{w+IL+X=e$1e0oNLIF8r_;C-NGfu9=li}-D=0(YINz=+zqj7y0p6V1*FSkUEaT4 z7heEDBy~Bqs!-r;*Qrz2T<{uOr@G=zw7N*>&Ej^)Y#VhV)3)pct3JowwX zpdgOLr$Bx{yE_5jU>327zrNaS9j}&+o%eqA@daUo26vH=AkK=CfcfKqZ-I_W$k3DwX z>Z`{gw}Bov7-Bs7wl2yEX=!CatRX|3sK+(0*Nu3kDV8pZ^|z$|(k&M& z89hB#x9D*!fREi$F~l-Q&ieJFm@w`ZKj*nvbW6b4e?Jl{tuTYOX5d<+8JMJ9u}3sa z?EsY&yEvku8K_t!&Hg%|aAaga9nnZ;&{VOS+{YQjoX0@v;%IUf%T3M^n|!KcKz*En z#fm3q#Jb51^}UX01W7S5u^(nIRV-Uth!y8HgF$`L@BTgKZO6F-%D#a(pA0*meFJ9D z11R;l+tlP3GCfu-&476;mUT<(*Y>#$$@=lBdC-X$i63q()=WF)HG6Io`MpzvcE@$q zwTb$+QLo|lSGtUm$JzD;tlb~j`dF6|nj_V2+g~M&H}T)9i*|PhAL^3r;#jUO#j?5_ z1=7kaZnuiDSdM}?mJNwdS-Yc9S|OI(U*L@Q*J2q3iB`go$kXo5hgiRS3K`9ZE|%FY z?p7SjY&R!XG9+iagn~Gh*-qV>&ZHG*yZNLk+ku(7H69rS>~FGZ6!W25ooQzjQ=nq# zmc<&nZc&Wa@0nJN0$0qmB{8^CGo%o$>=ZjC?Tjm?>m$Y!k#s9Tn#E1J#YJh*t*O2N z#o(m?`Yl$kPb^)Ojz_m#F-fJkeNXC+f^JJh`T(O%OJe;x1KY$Ie@3YpoNTAb zor+}>g@)~~W)O4E43229ejV#(43uIY*Y5)wERq#FKN5SK!I5)YzrZ;E+gQiRNh^Ol zgX8-3;$oTHaME#ToH(~weOo_AENE~ku!3vRd<0MwV>4)+*3ZR)bGqebpvevR2G*@n zV-j<2XmmqXg2^4b<+V>UXnu?(N2*)>2Au0tT=lls6|uyE^UhedV~9z+Ro6JFO9@YG zsV*i~=o+Q9$G3O^lI`_ZJFGD-0=a zx5XM-x5B8eZ{Q^SG1iftaY8}xAy#CuA~uoz?Ic5*v_ye@uoGVgPt3GPjC`TNLwrf z5F@Q(W*U7r?s4;aypx~kKLLyr~9g8T6Y|IR6`BZT-e^G4TxGygB)RM*J!MM0aZ4!U`WaZ%&A1-5LlD>v0elb3`Ma zoO-NoxmcdM#rnlPp7~v&5f>v_McD3_AvR;%{leBSb;a$T#dXDOjk;p%@9G*@H`H$G z@-XW^uFDd-x=#E1vE40gqN}T^MTsex_WS03znchxV$60QkhgBA-98cy9R*QB!QaK2 zjhawkixS1{mLPg<*s*T$yI*de+CBS7fnw=4xOVqLD2PtpQmkn=p+Ng<-5UNH%h-ud z6wH3b`*R9d9TSfuhqL>o})~)V%X13F&oqF7}V!}Q< zLoEB0hA4KDSZaZ^LbvF#y5*3j$8oo`X~eS8$Fa1Z^!SLhM&A$g4FVgYvzr@Qg5|OT3BGS4wB~}c~*cGF1@L}}*w%4~sVe}tj9g8s{HF|p7nhxS_ z9ed2D)MH{DN3Xgy`krUVf9O`PW5sCeJ0gg(!&f(>B7hB}Z;V`Du~4kQSo!4!x@1`tVP5o~M*AJ5>B00ssIPd_(*Pd`Ur4j{WU zFE24SHHE=5*e!$$$agIFaaJfZ)H7o6boLKW0*VCZm*%AuD>&yDR2F5XXOyI-C?r)X NfJGHt^3#j;7yzav+