From 22613a445e7d44509addb776c56733aa02fbfb0d Mon Sep 17 00:00:00 2001 From: Rijad Zuzo Date: Sun, 5 Jul 2026 20:10:45 +0200 Subject: [PATCH] =?UTF-8?q?WIP:=20feat(scene)=20integrate=20beauty=20pass?= =?UTF-8?q?=20=E2=80=94=20shader=20water,=20building=20blockouts,=20wind,?= =?UTF-8?q?=20smoke,=206=20textures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add 3 missing Terrain3D textures: Dirt Path (id=3), Riverbank Stone (id=4), Compacted Ground (id=5) with procedural albedo PNGs + generate tool - Replace greybox river BoxMesh with animated vertex-displacement water shader - Replace greybox waterfall BoxMesh with scrolling-UV waterfall shader - Add WaterfallMist GPUParticles3D with upward drift and alpha fade - Add wind vertex shader for tree canopies (sin-based, height-weighted sway) - Replace StylizedTree.tscn with script-driven procedural tree supporting 3 canopy color variants and position-based randomization - Replace greybox house boxes with StylizedHouse (walls + pitched roof + door) - Replace mill box with StylizedMill (body + roof + water wheel cylinder) - Replace fortress box with FortressBlockout (keep + parapet + corner turret) - Replace bridge box with BridgeBlockout (deck + pillar supports) - Add ChimneySmoke GPUParticles3D on each house roof - Height-snap buildings (fortress + village) to terrain surface in _ready() - Update JajceWorld.tscn: remove all greybox landmark sub-resources, instance new scenes, keep terrain/navigation/sky/fog as-is - Update scaffold test for new scene structure and beauty elements --- terrain/jajce/assets.tres | 36 +++- .../textures/compacted_ground_albedo.png | Bin 0 -> 46804 bytes .../compacted_ground_albedo.png.import | 40 +++++ terrain/jajce/textures/dirt_path_albedo.png | Bin 0 -> 51912 bytes .../textures/dirt_path_albedo.png.import | 40 +++++ .../jajce/textures/riverbank_stone_albedo.png | Bin 0 -> 33639 bytes .../riverbank_stone_albedo.png.import | 40 +++++ tests/jajce_world_scaffold_test.gd | 37 ++-- tools/generate_terrain_textures.gd | 59 +++++++ tools/generate_terrain_textures.gd.uid | 1 + world/jajce/BridgeBlockout.tscn | 33 ++++ world/jajce/ChimneySmoke.tscn | 41 +++++ world/jajce/FortressBlockout.tscn | 41 +++++ world/jajce/JajceWorld.tscn | 161 +++++------------- world/jajce/StylizedHouse.tscn | 40 +++++ world/jajce/StylizedMill.tscn | 43 +++++ world/jajce/StylizedTree.gd | 58 +++++++ world/jajce/StylizedTree.gd.uid | 1 + world/jajce/StylizedTree.tscn | 30 +--- world/jajce/WaterBody.tscn | 13 ++ world/jajce/WaterfallBody.tscn | 13 ++ world/jajce/WaterfallMist.tscn | 28 +++ world/jajce/jajce_world.gd | 15 +- world/jajce/materials/water.gdshader | 20 +++ world/jajce/materials/water.gdshader.uid | 1 + world/jajce/materials/waterfall.gdshader | 21 +++ world/jajce/materials/waterfall.gdshader.uid | 1 + world/jajce/materials/wind.gdshader | 24 +++ world/jajce/materials/wind.gdshader.uid | 1 + 29 files changed, 669 insertions(+), 169 deletions(-) create mode 100644 terrain/jajce/textures/compacted_ground_albedo.png create mode 100644 terrain/jajce/textures/compacted_ground_albedo.png.import create mode 100644 terrain/jajce/textures/dirt_path_albedo.png create mode 100644 terrain/jajce/textures/dirt_path_albedo.png.import create mode 100644 terrain/jajce/textures/riverbank_stone_albedo.png create mode 100644 terrain/jajce/textures/riverbank_stone_albedo.png.import create mode 100644 tools/generate_terrain_textures.gd create mode 100644 tools/generate_terrain_textures.gd.uid create mode 100644 world/jajce/BridgeBlockout.tscn create mode 100644 world/jajce/ChimneySmoke.tscn create mode 100644 world/jajce/FortressBlockout.tscn create mode 100644 world/jajce/StylizedHouse.tscn create mode 100644 world/jajce/StylizedMill.tscn create mode 100644 world/jajce/StylizedTree.gd create mode 100644 world/jajce/StylizedTree.gd.uid create mode 100644 world/jajce/WaterBody.tscn create mode 100644 world/jajce/WaterfallBody.tscn create mode 100644 world/jajce/WaterfallMist.tscn create mode 100644 world/jajce/materials/water.gdshader create mode 100644 world/jajce/materials/water.gdshader.uid create mode 100644 world/jajce/materials/waterfall.gdshader create mode 100644 world/jajce/materials/waterfall.gdshader.uid create mode 100644 world/jajce/materials/wind.gdshader create mode 100644 world/jajce/materials/wind.gdshader.uid diff --git a/terrain/jajce/assets.tres b/terrain/jajce/assets.tres index 2af04a4..84a65dd 100644 --- a/terrain/jajce/assets.tres +++ b/terrain/jajce/assets.tres @@ -1,10 +1,15 @@ -[gd_resource type="Terrain3DAssets" load_steps=7 format=3] +[gd_resource type="Terrain3DAssets" load_steps=13 format=3] [ext_resource type="Texture2D" path="res://terrain/jajce/textures/rock_albedo.png" id="1_rock"] [ext_resource type="Texture2D" path="res://terrain/jajce/textures/grass_albedo.png" id="2_grass"] [ext_resource type="Texture2D" path="res://terrain/jajce/textures/soil_albedo.png" id="3_soil"] +[ext_resource type="Texture2D" path="res://terrain/jajce/textures/dirt_path_albedo.png" id="4_dirt"] +[ext_resource type="Texture2D" path="res://terrain/jajce/textures/riverbank_stone_albedo.png" id="5_river"] +[ext_resource type="Texture2D" path="res://terrain/jajce/textures/compacted_ground_albedo.png" id="6_compact"] + [sub_resource type="Terrain3DTextureAsset" id="Texture_rock"] name = "Limestone" +id = 0 albedo_texture = ExtResource("1_rock") normal_texture = ExtResource("1_rock") normal_depth = 0.0 @@ -29,5 +34,32 @@ normal_depth = 0.0 uv_scale = 0.2 detiling_rotation = 0.1 +[sub_resource type="Terrain3DTextureAsset" id="Texture_dirt"] +name = "Dirt Path" +id = 3 +albedo_texture = ExtResource("4_dirt") +normal_texture = ExtResource("4_dirt") +normal_depth = 0.0 +uv_scale = 0.22 +detiling_rotation = 0.08 + +[sub_resource type="Terrain3DTextureAsset" id="Texture_river"] +name = "Riverbank Stone" +id = 4 +albedo_texture = ExtResource("5_river") +normal_texture = ExtResource("5_river") +normal_depth = 0.0 +uv_scale = 0.12 +detiling_rotation = 0.15 + +[sub_resource type="Terrain3DTextureAsset" id="Texture_compact"] +name = "Compacted Ground" +id = 5 +albedo_texture = ExtResource("6_compact") +normal_texture = ExtResource("6_compact") +normal_depth = 0.0 +uv_scale = 0.2 +detiling_rotation = 0.08 + [resource] -texture_list = Array[Terrain3DTextureAsset]([SubResource("Texture_rock"), SubResource("Texture_grass"), SubResource("Texture_soil")]) +texture_list = Array[Terrain3DTextureAsset]([SubResource("Texture_rock"), SubResource("Texture_grass"), SubResource("Texture_soil"), SubResource("Texture_dirt"), SubResource("Texture_river"), SubResource("Texture_compact")]) diff --git a/terrain/jajce/textures/compacted_ground_albedo.png b/terrain/jajce/textures/compacted_ground_albedo.png new file mode 100644 index 0000000000000000000000000000000000000000..9abc59f4938aa8650050bdff18974c3460abd6b3 GIT binary patch literal 46804 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 literal 0 HcmV?d00001 diff --git a/terrain/jajce/textures/compacted_ground_albedo.png.import b/terrain/jajce/textures/compacted_ground_albedo.png.import new file mode 100644 index 0000000..dd9701c --- /dev/null +++ b/terrain/jajce/textures/compacted_ground_albedo.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://e0ahjmsbpagw" +path="res://.godot/imported/compacted_ground_albedo.png-853b290b9071b670529ac36a7c0f1085.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://terrain/jajce/textures/compacted_ground_albedo.png" +dest_files=["res://.godot/imported/compacted_ground_albedo.png-853b290b9071b670529ac36a7c0f1085.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/terrain/jajce/textures/dirt_path_albedo.png b/terrain/jajce/textures/dirt_path_albedo.png new file mode 100644 index 0000000000000000000000000000000000000000..e44fc0b80c253601aeb903b49c69384affd3174b GIT binary patch literal 51912 zcmWhzbyO5@7oJ^~Sem7!8|jdarCR}|y95<~poBELv~-t}q5{$&A-M<$2m&gp#L@@~ zOE0kOetdt-nR(}&Ip@7I&)jpLNHn{rPep!<8~^|+Lj#@r006qV1Oa3uHzx8vCI<@zED+CRw8!+DEIS4qaiz;$D;2i+#+8ChF(`>i+ZdE49gp(w4c_ z&Ano)Q z%;F&_XU8S>`&EN_$?9z?-6#ft6nj3$1$G^9(=GlOw)aQclf+-y?I@2 zyYCn~;oWTnJovT|q)zpP)EBw%`m zopFOIY0lXBrD11mR970Dkg2j6hTkOhRl%QJ`6}V3Wfiy(Yt^sQN<)w0*VEM^mk#wg zd(N=azgNoqtn<#70u#rIZ81Kk%NLjH*}e}#(3klfT;1k#=*;$;3QJx)2ZkSr-&9Vh zYfw^u@!LB+eFfjSPLFlOT|0J4OfE)L*HX>W?+x_)jJN|0E7d)%*rn7tTT)NxOGXe@ z4-m;C>8j+P&af5fj$yc_;ri@A><0Z@vWsIRZj{aApZfWCmGshUve}EY^-1-huG-bf zaI}@}uqiz3_)w@cq^5SWFL)*OC)-z0_2Hw3|Ev-E z6)lq4*PoqMeYyIsTbuLe!@}Vu#G&b49LlG--|29|cNN`p_2cs2!=bpGI^tRCJ!I?9 zEtl&i>KlOElWGzmB|f3N6kZ%u(*Xpy>2zS|gKS|zaIgjx&3En?f|DZSemYHhFq68b zwX7h%QS)%1?C+bMAZHPZ#J+)TVUUCP3N-G+Q6Y_{kME`z&!q0Bb?k4#TK~Fl_%43E z;d;I+z3-CmKpB5T({qeXF74RHUZgKY;1+2X1;|Y{uWvpt-8;s(h&2-P$l6U#)FfH~ zECmBV>H+JbX*4SkOy3c9**-wL>}@kAw@&S7asEh<=BH99didAZWx25ZW|9a&&6tl4lyBOE~0@}{*1zd>J4heJ-rb=&vr|EN3G;MnX7Lb8&W$uRjra% zDy@~%8hlwdj5y4J@lYA_B1wbjG?p;7jUoI|cX{VABpchAz_{#7h*@E0DCj_*DFPjT z14fw|(zeuDE~{LVq&_wX1~qe34DjcSZqBZoB5t5E&Cg*@X1f@PtK&kTv23N?1nfJm zi1S11NbK^uKxLExl{(mCv0#D{vLiu!d}KgFM^bOQ&Jnqj?v7q^a4&`4LZ! zU${iH)t^L-0TRBbSvDy!@@j<+6%z#rw)JW; zFtRZ@RzV`|4Fdg(4OPGZi>oeL-IY$aq{kNd!Oxf{v5-CT_yG+&;(B;rCDO2#@E6bb zvFyi>Yr>(BuWIDc;ogwt(5vsMrTjp+xDiS5Uc;VwE#dbHx05*pK178;0|*#joA!W4Q@c-fn|7Wc-#9pfETM0u}g*~I^YKhL&y1x&L7ce z)}l=35W%(mm(~@h7wMl)x9y&Bu#kVcYKSNHrvB>+Z={}z6ITkRWLZOLkzk*RVYs8? zA>0Gsd<`_9NWzLgQOb-PCyG@i0h|(4jnQ6+d6R88ll$4tNr?=Y1*JgG>BwV=8A2`v z1>%jUDef!&!w+MfbLBc8+te5)iqKg+hL#0gKfcc1Td_ePR~Z`5lVHd&&<7PSexN1z zHVrKlCAPv1#9KxI4A}Sj5X5%@A!HG08S}HYqHz;i+Ta>8OD{~Il_ zy@utCFs&(LTcWX;kNa@da?<(|)oc+`uYZMP20$mObEMJb^|A&%Y)T~fkp@^XABu)} z59=18Xmn|es9)sUh`>-W+l&9g*Wy=0wK4_W3Jm(8n%Rh!E1IEi`vmb`a~}Ngt?&1B z_MT_ag0Y7a*?Xlh#4cSXgUVidYn?`~O{T*nFAZvCfggFkr0C!TCDP;M76K<634x~| zER^)833?v06(+zqkq!)S?RHi zcY0vpvMU;J2jK%0V@W-+C>=lcS{R^%xpcRlk%&M8R#8cSCv1dLUCe=g#S?SorUyoy zdnDfx6@Zq9l4Vjx{?lK@uY}>=afNOlCcoZ?uOog}p?+lPQnT@RG-^UPK(!8pxL9O=4_N|1 zXUPgpC6=(%Ch~51y1B{6aD`=`$6b<(P0zyx3GvppO9WcNy1xjzhJEB_>;AB*yA1E8 zMU_H`x(vBX$#uXkyw7-%T42a$tEUtc*13yN^e(;EjIE}Sj1(_wfgo{?pd+}8?N=A);aPK zSBDd#gp0#{|CNyNZDPqEF3lutq}*$tFebsA!c_94Y{x?IbL^orVe9~o$5(P?zTxI4 zrh_4A%TSF@!S_`8W=ZzIE>X__SoauJ!)(8_@7KkBae3?i^^^$?<15G?>EC|1~>J@#+;T}eo=Pq*)VvJ^(yp3`QZDKyOjU6IhYH( zQ_3kfm*4NIEDMP?pys!X1xMl-TUO-W`i%{{OOE#T*|r>cf>62Qk1H;nPSS{lC{o7~6S)9P zszNyiB0y<}=BzfuY58&Ub6;YNM^zMj?@Kqgz9!-)_IO z$#bz(E%!i$VY_Q7G!sr?=-2uKMPD|O?8Vd%x~w;puwKbb{!%4E7+Me~1hwI0>3lsa zV0qY%ktuV>2#eazKH%dScL{jIHnI2;C?(b>!YSNATZ8YbS-b0l&D12y67s(zIj=TK zl0&;FC(kmG@v7KbS$Yj(f(>O09vl5CriMJ9MLSTL#DB<@_)x~D%PXV(kU9NG6&sj)s(ZAVTz z96t&q#xhNGQ0#NAPvS` z;Mdktjh!6dEZoal`%4w_oP_Kll8_yG3&>~nsfji8Y}&!Q-xL}wugVP7KqBJ6TvnwL zeVvVxYQ1a{wYJTa_zZKOI@|dH1K>WXbk}l~t66esI$C5kD2(&m96s8r8}Ri3YdZa4Zb3ZU(%CDjY7j9SWfvP;hz_6S^YTnj>hcrs=`=jja>`!xJbp z$E@rS{Qov)H>7@vP??!r?c zpe|@xGy19AL|rb=pdr1maY_#8z$elqR0o|Nw;HV)EHUWTsl=f&J5)_s{jP8&{{y-8 zjBUz0Zy72d0sv0~X@5@2OQOok(& zwqm9R7@ydfvq($ab6{bo`4vqj8TAQT{1%n1H}^it|u=$B-T<{c#?km z=Jlz7bHLnVY1@i3Way|GQjEYvDY9>7Z7;9X)l$vM2;w3n{QcIjViB?-OjWhJV^Z&= zI7~GLZiCM{Nk&(m4sSmMll3sJ@|RH%xd|)=@c)|Dky1H8D=ZD$#ckM=UXq2k<48s{ z0p>gxQzT8N8bp8n#huclC#jWVvWVRa40u8d$i0r=q?vVVBk5;MG0JRy>%@mlSaw5+ zGo?^Gfd5qBw~3r(8Sxr-jF*$PSl@BD_w>0d|4_mNl|awDiChVEmJ_PZU-xFHG|E}b zPB{9jQf}>h?Wy&<+0*)~B)Roo7$#LF4Sh~{dxu7sZPTNPMm@70)T&_{pR)&h7atB?(T1qET+hFO~k zyPCB(Dm##jx;qZ}Cu^&lVYeyVU<-!kj0k70Xdd*lJie*>d1H7M+PkqX7E2T&C?YK+ZyiC{cV1oBqK$Nj+ z`@`F7VVGii&|A-fXOxAVtIf=14?oq8_)nRlDp!rsbAcbwCCFu<*Qj#OvQ*dEozW*p zU&2I4ob&9=2?$)uj#42*G8LkjF^pTBRtOMYd`tsoBjFM8oX(L!f;Os{bsm8L5H;A{cudREm#QH+MS+2%f4J*F~t)=b}^gns=1c4ud+i-aKdW|REv3ub6l zXT`y)QQbKR8rH+6{koBgxqGF1=mzP&DCaf2*^}$(yA@qO@~K=i)0TpJC7>Nvwtd&P{8zjT&m_xei2mPaU>J8<{hh7P+WcrC%%;MSJr-#EpA&7 zM26PpOV5GmPpz06AxJS7i(WzhCFD{c$Y?A=je{y-Xj^QEEusx|P!B(Wc3MJRYQS>V zyq6BhnT4w}X$NXk`=E%iEZ?ZblVD=MwWoOs=^kPHoh;;J@ov|BcL2wKu1H#Bs;K?T zJ4A=&qL@!1W`CD;pVlIjw0NKag)^aVWnPxsgxXzouyz_MO~9r|Z)&k;k&5XxB?&}t zZ`HsqAHTHFk`SE6L|~|Ic$-t*wU-qFdbu{MmpCg?(ipJ+pFmW{e(^Je)tl_daBi~Y zmfcB14E$Z)Tq5A+x8~hbGf%t*~qBHlwXuS zq)I6+j{ZjCZN^^&cJf0(N|aMSksJ_OP17%FZ0X-PkTepAR2or`#kusuG$PHxK~9x% zET!B8*K3QnK3jQ|WsoV;Q&M7KzWUa?v$2JOU-R_Kc&s%Q?y55J0mPl3PCa3dY>$=uN>+$ZaMUeIh;Ku(2VOA7T>8AnUsYs+nMPrLx$L<$E zM&MRb+|v+JaaINxO4$e0Wh7wvHRpt~9JN8*h!KwkO+}GoMH2RT6#MSVAAI-b*rD37 z1Y>H-D)tZew5^o3sYFTe;zFRS$gCqby=wF}W3 zoJe(*eE?UzT*mNyLgnXzauQ@gazOgam6N*2c2&qW`} zhy#vI0F_Ia(c>dBR%5*IR_dCQhuhRSr#EL$bs8Btv?H@4L#kCkdh))%l>Jh^%>y|_ zCXyUOjbJ@hf8y|5BFB@~9I?i0Ht{Y4qF^88%{VKV)<&QR{CucVY36Z|gVi@2KY51~P zTC2W&+h#=gqJkI;+WKDL0m;ydm7{w6oq}7Dm$lmZhvn{O=4mFS2H4-}9jzwjmLa%M zxSa0}^>1E&+o5M$`r}R4OWjBx76T~J3p$M#o3Cv+O=Rb9s|M(k5MlTC&2xIjwib+a zNlFbhG)bO)3RCSGq$9Jhw>J?h$$D;KD`o@^A~DPxkbA%ihu7XD>lcFqfr~VQa>?ny*tXTzjCAEb;ZShsO^ZKK~^i zEE?zDUdt5FdPJs7T~*i0_^&e-EXoswCPw?$^#A2&{jTT6rDN{}dsU8!3>M-+l1?V} zuCx9h4fu_gbS}b7&UEoL{?$>ewVTglW!*BPpQ>2rA z)^nF_lm=9q+n=rCC*io&b;22GsUlvo@0e(qfMw%S$0tZeV6eW3KMU*5;rQzHQap}+ z_=YZ246hJQ!aPtUxBkN{36p`Y_|68vE{{l*ccyfXsn3p_2@!tp(@1C;zHxtwry6|k z+Ona<_1XW)@mT3KE?Z`bXk|DEUtEfL9eMQDIqyQ``SWpww0$?xeN~&!m!w~H+=NMh znA4-t&+^#lFs1oP9S zx(C%tPd@6`=xfN7MIy7+I0#FUeFSX2bMPhBt2FEgs}H{_P$iP*dYyV#TWsWyGQibM z{BbHR67St>|Ml^AX(0$wlk>&5`@G028T0GINwpWa0mQ}ikDq;1k)_Amxsjn8q(f-# z+&d|JB6|OLq=r!bD7UTtH-YtKb{#WyS^?*n9z~f!m35^e+LM>&dla=h?wTal-6vz| z+fHYe!wP-7-sy9FXKWs3&@BcR89GmTq=$Ly%atLo)h=Z)p!nSO>+Orc%qzP;Q4RFT zZAjBekWLbhIMyB}X3At0!Io0D`mRd1=f#~w*Pi!&hcaWnt&{Zg=g4JbL&^7VFAj7# zRoS3ryTiJ4C@x$8&_~r#RqPXDQqURK_+&oZ&I$%F!6cKIQDFCSx~{}c!nbsGLLQp1 z_H!6cSj+|+q|AMmbyrPNsr9PRTFg#3eTrJ z!B!{eeh(hiFFxub{$j}mTGH!Ge%60@y{1ljPRnM|cfee7V3cgU=lw@?>Orj3E9LPj z-%*q*kpPiEbWPuZX!>0Dns?e<&(>bL!uLyO{J-W2787vR(5>~Lp@GihEKML-Ay__` z3$#g*)rkX7oVIT9-%J@LFVF_f*Rp?z7LIK_=O5 zf60k*?hJovM!%a_qA=vL6A~9c3pORa|La|ze0^t@<_V=+LD{>q26d<4xK4b5dGPVO zmGJI=cUJ^wx%N_gbSI1;ESPhwL->tEdRTuF(OhMGuWX+VNlBG?YD%G;-xCydXw1a}nH>F?1DZR8pU%mD^Z z?^9W4>|_-NXOVVDt!Z~uVAajDz8x;V=&=UY_LUA&{i@~ycw*q;m7?2=_DHH1;0`^F zmj|wIM6xvxDaA})DiH~v**g(qYWC7EVhiq$1d@#UrIw4a=Oi7u!+;#hgBUgXi$S$F zjUwdt=zvqw6&_@OG%ed>sT4(MI0!+~%TEb^5tMWlWXkNep2s-5QHXD8&rehj4vhlH z)|h$iAyNT@WZZ&~C_|QQM+k~odz`DzY29+_3jH#fNsy; zx+buKG92?G<|mhyo7w5@Y;LTlH2GM7pK_{$RPtqlZW|XA{smX`VXXgEF!l2}Q~;Om zU*AM(8$zX=UiLVm5&zp-e6LJjRbfq*r!HZVxq0lo!BisH5|&Ko9z8Mu9QDm zFO;5>c+n|KBYCvTraD!6>NwLy}1@(P{c)mdy znmu_nkO2haGe)cy?zBtp(<0f;?Us!53IVGuGNjYE+u5Kly+&Qn7p>W??sw$z_ZFxuqK5 zBb;p$;Xb1nC^)?Gd?z->mlk#OC0~iMY83S_q$WZ^KJP}Q*N_F@eM0{BqIx1>JN2t9 zU6nOjhqk|zzSigZuwK>GRm-MFbg}`>Q6`Bg;SQFpy?sJvWDnIES*<8!Z$r{}OP~^% zr9mru5E88TK0M54^H$$nLp-Q$G7}KwpnyCx@{F#6JUgRLF#&!Bb_yg^|9NA>A5Q1w z!{7Ylc^(Yd?j+(j&?_@GOIGjx;jJ9RHJnNwSx5{YQdH7b@$9W^a^kF@qWzNT^svn9 z)K4$awobBP$+~?1m+YVq>!p;7n&nGkaeA!rW6>+Bk1J~QC}B4qy0@ztb`1)>SftW>rJfAp)0S6YQbcMUP)LG;MZOX}F#oX`~M7=+sIVhFdB z26vRXmy7-#MZu&>s?6%crIhb(pm9~cKF;CIPmv!{(y@h6eF|G`_s0?@X}|@&2s)B! zFI4F6t$a|CD>avV;LLwE+rq+hHsaU<2K!-MHoBZC7Y9uyRD-ukmj773`-(|zu+s}{ z)1pFlv|w9fyQtPpPn5Ny#;JZ|i5E?1qR!jB94@-|5l`m3t-@y&@?HygK}4@UTzdPf z2{@^}@MdPu1b#Wh(`u*+h(KIoyxKNy2rVT({8I2gKeA#M2*Ma>0u4Svl`|;Lovs(6 zXLDNaE>$_a8XXS;6GZ6YRA=Mchq9PCBDJ+15(r%0Cg(GmFem8?SB-N@z_Wc~;Gg8b zA2ttQfR~WVQdl~gfet$g%28N;7v$#<`ZZFt`tYUy-!N;!7#Y(Z;8Okg@sT4`1Ng>DtYjA z=}>GC!H;!py3PLK{V;Q9lTLK+-M>8lA=UM$=C4@4;ZBy&qc3lO)e=EsdctMzm zvt7*-+9%o>o@b^2{7$Ye`X@3FZCbvxW?)&@SO4HNUXRno2(oME;_F@lEgkaOJeEkj zc@R;`zG|5q&as=xrqYn-K*VUk%YATONI0kjXl$b6clGR_2~M)A}c{aExqz{T8Aj-P(&h^w<(2$+l)plmFRe zlAT>_(IoMT%Ps}X<@zRD^N3O`2-Sl7iK5~09xqoto}E3SS+b+_9`gTr>3;WpXtp4o z%`s0R!1+mPIjZ@H?2Uq%A@_`IteargYkK6atlBGCI;7~V-Qut9OkGx7O$f+{B(snn zW4v~E(j&EajO1PB!fIBE>vh5#5zJB5)4&0a6GrYzUq&}v_)%{!_|;D0)PECu*`!+2 zr;}@Y#rLRxJs=WLh!|EX0zn72owJ|prw4(B<*4(-_VvcrS*x@^$nuy-@uDB+*xe&C zghY;8GNNVEWg?fO;cQHucyOMSk*J`qH>ZXl@7CsK>?1*dMnlXrczlQ(Ri___^o6yDtxEHD6b>}0np?9GEp zSx;<4BlE&z1&J8%LbG%WnUOt4AN>C;F{Ad-ZQd?*e^w0M&%0EHd(5&DJF z2%ABraD3&;<;bBg;-B_#-v#5rN1XfKNA~|_XT76LR2b;LCQSA_Y0vAa&bHY)w=tP| zhyV7*DM~N)E;2tA-<4Yq3~5`g{4zwPHCB=ec4^!7J95=8weikiTV^|Wd9KNlaNXb1 zd-)nayuR0WJr-c|^*nOuQT~^bif2Z4?;0+ALiBO!v*56olkvR+M4x|EV5qJos-iA> zOyPdG9v^ffmG&RI(qUB5q?^mc`IwiBqP{V&Hpqa+~3 zJt6SC;yv^H9%mdSmNFEOj&_=VoFd*_lj0keDxBKh>658h@wS?o6J{s`)6fRTk@-Xp zC~)~QVi2!QCO#b-_3YZe$`y-rV9K_s2PUJu_*uweZ5)VX7{S4JDD9gb8_%apyRXj8 zdtQ$pt~CC3_40`}5vpuj41WC))dF$xxE2snCx-5Zb!16PTQDOYTkp zc>Yxeg)vpcm!P$X!?a+gZi+MFtC)z;>-LC+!_<{S(=_YI$$YNK1Vh7l|M9md^%(SF zBsQX(ewO+m>fm#bC*&0-!2oN|zpwdEljtzuK15FpNb%BPgFGAfU^!u;_rUv9-44Gz`%4}b_Z)wq#4k2Xfi&hi+9XXkTcd!+ zY8x*p)x~fm|=?mb$ytT!#|Ljy)Uv9VX z_xYvuawA{;MBg6uxK@C=L_DDO=Gss@Xj_2JGQ>snA4e6eU^xiECPtxSHN7v!jXJLV z+VNFJLtUC)hvzn;!7N2t{3y~L#1Rj1B!{p3uaZ_a1#s!+6hiP?c79A%+}nnrx$&qV ztR^_ohAq}k3pjVYJ=rA?2W-i%$bqJ1E%}gs@5#O6u~pHL4>v`3itT|@>;elPD@E))OpUMTpBsMDospvf=Mfr5`?@?YMj^4wOA zfsxRn4i>{fkL0_W|wD0ZHVf-yP)d%diQb&fnDT~<>13&*l(i#F}V{IOH0ayPU zLMVIA_en+`HCbe8AKE(2cmk1@e`!=r*=s6Yqkw*n$kYNvd661)`<=Tg)BpZMH8dUQ znSU$J-$5Ky2_J`0Jo@;9lcE-mN)G0dfG-ZhIg9gTvE?=uMbk2)p)mhrValUCH$fE+ zu^7tFuV{{1aiDdCc!lHX(^@F7Qi--+@|#0MbT7~WRAz#JQ|>#3t;?&beJKWRs1C;6 zDw^7;>9*nAj<9lu%8BhF0=g;{bH7J{Urj}!56tC~hBAFO#nq)k|LNPG!Gkg?ySl!8 zzL)fSakS7IaHGPsCENMwQEvXcpp6e7IN}&Pogd07|HR`8(BA^hwFES7+0-7Ib6*?Vfe@)FyH`-hMvzf#1 z!_xDn*OaAE2Mfv;&(|ubeekDNx-T?SDtEoeXLN5I@n@=B)8$` zq<6CRRHCc|@<>>n42`deO=;g~Oq$%-8BPmV2G3hMfHs?{I&7wrZQd)}y%*;lnZ2Dp z@G7bgCMf!k{6GWvcv+9J(nkF(Zh22DYO-$__>}Exbz?ab&pngs9;JZo1N^e;r%KS1I>=@A_jh7!bFj zW2Oq*?M8WQZzr1?0`oh0!291u#+yz71LMsmW$Eo}K1ip*q;O?sIgz(rfvE~Er3a{b zpc@pIwb{@J-v+5fL)-{>- zwI;svC-&e6he9&Li8X?pe+?3zm&I>tFhMlH4l!^A&4=gkIlo}(xj%YUX(MHlMd@T? zi2PQgm_IQ8nQhC_HS(O!JuQ!iF|AAG@+=^TxgkhE5y>AA!{k8x2CHR}IP zvCu)Q5jXI=NDFWoy9*{00@>>_k>l8Z9)Q${k@Zba0!@F$e;HMXf~<{|@`B+d<3daW zUqM*U(;J#2x(CC?{C=Ga52DZmBct8#vXUU5YIfR$vHCnAawNsX%%p2e^I~l$LHS)@ zX5`*;Rw_}5CT;5*&}#F9YDa=)gfvyaHZL^VW)Ye|_`U{k>(@!ePvv6G|MWRDxhSF= z`=(Z1uWuAAhd#QN3wxi)B44u_?qez1Qc^_+g6>=`3>6Y`Ue#VK4EiWL>7Y~$)PDL* z#%*<^t9vU1NlRkkeNblotX898)Ul%StZg z>(e)$iz+=m@l^Wbnt0`G{A7UaIal|Z6EIs`R+;tu*Y};oboz8KcAfJ*Ut1oT76A#W z4kdc_&Kn2+l~m~dOB1k1mmauo6eEnRM8PbZi&3Z#%P%Kl2f25Z71^HOA*RFq0l$h= zy>%w$dECB;`!uv5%Dw3~?b!zE^0Xzc!t$M+Opt}HoOD`ek!dJ+rQNj$&sVKlGkqN` z@c5TmWN#Y=>H)!>UPnx_JqQnN8vT$U1h$zIs!bCKLwC(EH}ie6O?VU2Ct5wzb*aZH z?z71O$w+9ZVlLyCavRyvOZ#&#WXf2A?d<8*$8;(>lVxDGHv{k_pMF4F0{rDeDujG) zh=#LYS?)PQ0lnd4)=yN*VIc4Is0#J!M`F1}(b?0KIi|iCN34(P?;pQRi_`r7$exkQ zw9Du3>j|zVAD$||tXZ0p@Zbf~AIw2$E4PDHKKR(&FQO%R+KCn4;gAx^&lN2GnCGG@$vf`z+a-S?sMoL|BDrkhu&)9(MnH6z}G%vtwLX2VWwD z|31(GhA3{ju_-c?D5%#;Mnv!AqN$x6A0h+mrPqnw_O6TI-k#p<*a;fx7`w`O)~-39 zMY}>P1pH$apPH-6<})4VPmSv2-c zF~fYug3_zMt|tGkkYieAf&|j7oW=X1;C2M9o7iUn|CHP~C5rx}{NoFY`8biT(H8rn z{S=u4i_L0lvvoDxoxvmCyIKLUx>O(+$L5*yg1%_yz_F7W9-ww93D{Ah9x(3)jVvdk z)-Lm_f0``%*j=Hwth20$YOZFi^zvSuDIv0<+-}v`TEHh7ABOOZsko{78!Ke1`u17KTN#$|A#G~!5S41AmvPnO-^56WD9+JO zR^DjcD@$@*_D?LU6*F`V(c&M(Dr6@**K4)!<$USf;N5|S(>eU^HK3;UEi1v~-1i0F z7SPMD_`Owa_&kCPH?bRp4mw|fBAwj$k%5Cvlr;hz*?Rf3)RK5m zmI8ZVt;@J)3T}MMRLkCjGyqe3l%l7hXI=u*<_1IKLr$D9MQE@O>0a77i~bt{rQJ$i zdG9h>4ffZwwz#Ur=JV83W=9r?%ibIv@{ge)_?*llsNQ5amlNjhto@^nGNi6jUa0PR zWH>g21RN^lC8*7ZuJB?=e9o_vtREZnE9)l&Bf*EH8HZ$~fqzS(dXTNJSM0;0)$PWO z#BTFf@i&e@AE_a{<(c=Kidk@3-FPX4}F&TqpTk*Kbr zggi>ly8rT=$hORc*Y%QCRbg4_TubI#Fii(R8ozDfx@AZvvOAvy+=OOk=F|>Q&Nq22 z=fT+*ywUNLCJ3v^ZAkqUbHDSkoLAdf`C;PbB;$^~2TMds>|d1 z7c=Y+T(!%eK3e6NOEJEB!m`-pe#SNr_w;uEO!ay^_5DV{;@tE4e_v-!g}&yC5VY4y6X zG*~EBB$!56O8p!=2Y-%3;J;O-5#~y9JBNgu8^Jhd#DV)T0cX#}AxrYCyyoM($Sw27 zceLOtyT8p5z#8xvDOD!K0L`WR%jZE}{y>?E+%+e``eKDu*^|$0kPVr1o@8h(?Na^) z%%l!xR@TjT9KCONKkeUVrHG)nb`8&J^sDcArncX@cfXB1r!nD?rl9&l9N7W6a*|xU zP|^yq=Bn(WS}?OJQ3>?nn!O*3E)7c*L;WI&|M9$g4bBDKyw?5xT+ZLyE@%| zJHtYxH|3c^;kb~Ov@g#g@uppoh&|Y6Cn?^f@`IZ8sXma*|*5^YU*cx6at~u4sR$) zxWY0~M@|TY&2PS&YW9nzz??vb)3?FJ zAxYRrgsPrLINu%+^$A~s{~VQ@?V^6y-_`Gij=%&pGBs+=CzIp*2&da=1iZDh7pjtC z=)0S+ik=XgL=B*!n86!=HV$( zkxGwUwU}4lMyr3V7peLY%b(1C1Pb&^rKxXxlY5_Gh7P4Z)n(0~&9|kmXYZr>!X0$4 zsL`VNpAn$^J1wvDdQai^l#%%>iWTvLgrI>E@Jll$Vdfm_r07Yn|9gb}zA?h|Nrya9)J!y-766Hnzqgypzm-H5Uh)AYo6&*bdpu{0=p z`ZGI%5uo~NHC4n6*<{m;M4*;6F$5^qZp_o}hDdkz&GQ#|uMbp; zyvrJ`&8z1_zKZb3lkw~jz3p*hrS^95MFlHM-Hp9{f%Nfl{&4v!O(#ORnHJSmKeBN? z{dc)RBi-xaJ$}aJoL!Yp{FCdR*6iFMeqazM(~{<1Gx%^E%Gb?YN3202wd&ufj!h%z zV8()*yx4KBOvPyxKV~haJBZjZP8u##(AojK`?T4ehe9AbczNYLFHjG7B^}c^x62V+ zJVc2XJgdA)*Q*(BfNKKpK6b*8jJsk>g!%H|H%;OK+uAtzk^fdX4Oj!N#V&X?-&(;D zB9KskTPri_=oKUV5;K_3$#13=br&3b^6O85C`X{&uwx+*ARYLOXG7 z0^K4HD5jE{cY)6O~yIOxytbng&=MY_9e0)!yypv+N+ zZW>hldD%N|(2nBs&TC~S6IA-!71Ikvk+XM1>?0`y9GpT-rpr=u_wVReuMt1BxO)$| z0uAL{ac$tk3e6#YUWR4QBmsU4^=mGH%-XLkrul*4=YiS)#;vihl}}n;fT#OD(L;#K zFh;=R$9WVqy!n3(8;_Jz(T)-3Ls0 zJ9U=#OA^52sEeb*JEbS*00BiE-ePm_w#B zX3Oqu7Ok8Z;@fW5y}&g1w4YHJX#f?)uON+oKinZATS|wRwGi&&5J>>-)z8bH*Xi-f zp?|O{Frb&_;N{I9@ZYFw$2AnEwD(W4WTD|j-ghcqZZfdgvtOusK#;bdJ4y>EK^7)t zVaKrnfHRu5Duw&wY97 z5FH<$N`h`uxGViu8cBa*CnYYg6Z+VBe{cQ*oFw*`J z&wlwdsKo5IyzE;C4N9U=unWwKH(Cq4Pn-eRh+?)LH{VrxgBy%ptF{#gsG-_}uMyG! z3EwDF@0GyjRKD^I)>$w6p+r$*P4JW|Y8T%r{ky!&zs!a#@Iu-g>so!ZZf4FZ$&{Q+ zhPSAF`>r2b)bXB=K~avMcpo9Wn0f9arovXiJ8!L2A&0fDN3`KFkLCyZl7Z-D{RWAD zkDn9HVW&}E#158^+(?TOkAw3g#Mlh(*(yHtA2WGP)AQ#v;)(#Qui82BoZ+-f` zRaeu>-!ewJVTOdZekdC_O`k>Z0&4krvRgrpkuT7%*Ywad8KjLrd3B~}h;OUyWq_J9 z1|CC~-cu#JLC$F>U+E<#&zx)K{9=C_OYy@Ltzb$qm@;WE2fn!Up$8ZW&`#h*jfvB5 zZ%Srs;j-BLSprnfDHnLc`s_sgfs8UODruv}dX63`7_v?*d-|gKZo?9#LW!p7{;c22 zy#L1EC68w7OMGmdYGrZr(5@UZ({;6EPSopb=(}&%jf@An|C_0-NPFutLK;wx+4P+EMwPL+|lHuL{Hy zBl>B#b9Rxu=YK4ng25Y81r!ts zm6(8lf-nSR65DT|@8kC`+;`l2U+0|XDUhdvJ2dMw>j>Yq_6ZEB=+O^-6rTGHbJVCM z{*M>H(PbA#xGj(eLqqpbsQ_<@`q!qzyQZ~=I^U1_HWFT@et0M6|BeqNlK=y3gLXXA z48(6!@>2ly?Z2AvCXt+iRvJH+f63XNl@|}%c=^>LDkwk~&;yeoaoI#s{kCOdsNr z@_buW|0b;oDzVn1uz8V}>V)h;n(Sb&t8L)L0Yx+_alI+FQo~Ac4s#y0XO&HIvQVTA z_}-_}$TUmW8I^2T6}gb0)r()e(2ElQhEBB5qhFlliULEI2#mlnHK|SWPiAn&0(l96Sx^uG1Xz zsV~^CnyVLZIG*((!>>e#5Drlf8jTubCeN*}E?2##!GSNMZv6?U!Hq8kiPh^`pQ7jN zs@!a6o96#)sbMS17~)yL)`4W#_&@iJNIXyN6PWU$rBXlu*t4Hp+|=juvL1) z!;sXia}c~%oH->{{AFV{lX(kC^4h^Gi`1}D5th)PE)hlvUtDk;Gp#Q zU`gY_$LUJ?gkjSdD`Zx>29jeg2Q^8i^QA2a09dE<=~G^~Zf>~>$k{j#Bdi@4ZQ!&x z-OnEqtPfwH{=9ULRVVx*TJxK+@g2Mqf{P2Be3X{%KTN;r|ne(A79$eMEX_qy7fP}*q z#TKFzc%Ynf;IF~{eR^{AhcGjZtT1C?oB-7df1(f-FIhF=^S@Af*{|J0G`eSNmx@WS z1?pRCH%w@ZeEItek|QZA8Sgr@^+}wLL)lQO_OZB;B0gVB6bp>oVlRH0>l+BMmo=#inF-+U0Xl3!T+qPX#F)fMrjU7kxkULI)rqe=CNk9~oH~ z^sqdk^6|}ZP-K28g(UvVNYxpmD*qN%X&ZJVYE`^}&Q1ORZk>YFla>fid3Ju3kAe7< z?+Af-!-J4yyh&!@%na1{UC$Hz!LCfjg!r2EU(f5;*zTZcOSk7PBhfOlbmeWsy`kS} zE_48of4v_A09RE-MjD2p#e|u$KO|Sd!WycVjrBbHf`y3YoBO$A>`%x{69R$axk0Wo zvTg%bnoHQx#Yrdac*jwxh&&3sAe}rI0Y_TuQ}NY2UVbVVWkbINF{N(hb%`$`!>;ju zFV=lfT+wX5@fN+bY2SbX#_k2G)6vz&KLr-F!L*?Wg#jIEx6V_hQwK_53{cak zMuxVFI+hyRgO&oL8_t-6)6hpPrJ`W#+_VQ;QPd<^Ohy4G6Q_Kle-)0RQr#6Z!}(zy5Gw&)_fI1rRS~k9D>} zb)Uuh`tK*7?OM|Y5xN?zIKn%l0=n^E2c&)vER9Td0X)1~k^s`fl!}~fyM-@*tf0liodNFby1GO%N-Z(4I3m?l5ym*jWcz_&$-`1v`=GZ1EwZx zr9w49jVE9{;_Mvh4n-GyrBpFTTlEzG(rsZ*Vv5*$mG;zPNg9(+IXPf9YTAF_HnMD} zE2ua1Wmmq!erM<)^MF&Fx=-jghv5wAmkIwo;R!r`w6*MV7j++CVD*eE%y*HmO-=nqqOpki4{uqQ}e;!^S?Q(5{p5!Da(F*OgQjA)A zryMLvCKU<%E&l@XgB)Y8!9o?gosRwD9E@~USP2Vq4Kf1!Y;<^wyp?9tel&R3 zv7Y7NcRb z64j)Q@6_m(+kT4AxTkshkl)-w27g7NHp9RFaF>wLio7r?kpF;8+~@fgX_WTDCPw|( zr|ZgYad$nh@H-?~_bOMTz~_ypzBHXSKkk?rNf26GSYnjkv|yQd_7#n&yo|0| zTb!GKs2X`~`=frjH(5T^L6PIgV)vv^sH9%(fTP@WnzaMal1h%LH}5H4J&}w9#hL$o znBcDE6HU;iAvyg4(rXuYi-n<=YUPcL@|lc$YQ0>jwnG3UG z*5le6QNw0K<+qbOncdah$BZFN2Nk?KRuB6T_x-F}@ea{M(|V~JKri0c?VrNrzT3$e zF{i*o9*Kj9&>)kZCWZZhy<>P0dhNwhRh2Xt5^t$uH7$WG$6Akt=?=$h~|YgXFt zjfYyHnFY zkguXrj8_8?B3xkItFC%Ed1*Wc49hg^4_^IAweE29L)y&4hRutGi_}cxZ7R9dt{jvR zC%FNSBLQ<^wdhye$tLM+d~3&`u{{?8x%yb^%b~xoMF)5ba7fYy1^x@@-!3}{O(NRu zPVIBz{{EEe#Lwo=pS1|{nR`M#zPV9bO{KvuNs^P#4d|bxAq+qkB7i@eQ1m-KX1>pf znVISU<1oOmjPB=gzcV?U&MDo&;wPW^fpMNcrxxv+r=hlUA-x<>#Akqf)84yQ#@v%9 zu{Vn`R;Z^Y0tq}9!rv!SI63$F(Zf@c8o+QD`9{Bx0dYqe_pZUP--IN&|WGZvUJ;Hf6>7bUXD zP?nCYF9GlO>dEKsOTv5cud|gL;tp)glR%99N&z=P)h>)s5uh~wDFc!^pe3hlD|YnT z3?di#*w-rNIUO!Xk?>Q%JyUhhtQ3C}KsHP3G-l3!X!49{kA*Up)#jHQ zF)gL%vQi|?Aoh+`($d3FYP?Bl=1r}^3{k@QpfG6NiMNJ~B?s0U13-AXbMj^P#tI+& z;vLGx`0pi_5*OU`tY!9!<4T@F01=HfNpbZ65q6oAsnX@`S2?j0yWdL;!%ye?$|<4i z){=-e{Z|pX&k-}8cE`q#3ba`$<|&PPB)-g!n_n!orJ16&0R=~G(tt@n+jIVv=Upx6 zNliVcJlg6xgq7#>^&U$$GT;+Cj4~A%E?oqeG(|Uos@_zIVT~|S=v-^cqya&4S7XUW zS5F7#AwlHr%#CrwKCxWE8tWG{SK%W>{~8gtG4I7C?nfG@+7h#_QFud%uAuOi>9@83 zBY@zC+Rt%w;+%@3iV0;hX_(&utms^Us+2COb9%V%4MfmUT3=qT&`N_O9s3C{d*$nw z>|cIn{+E-I#=8$KF#d65DGQfZd<6%V$#%7h&fl0

rFz(^&(kQw-|iB@A>ucQ~eR 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

KWR;-)Sm9pt}L+J9~B z*d|(WOG%E>SkBUu#o-rPQ~}>`O!|o9xBdox`U&j9$_W+{)&JEy83n9vLw}1GDL?r* zf4Hsg@PuY<$DK#RFcN0OY+;maLs=E(gXdh7VyAVUgn1j%xq-kH-Ocv1_kp+RRD28b zrq^zQbQ_V`iW{{`eBn5Keb@2<@+kQN)fmj#)-9iIT=H7++G!wSvuOo&vl-J|teE;* z@OwYJCl#PZtS1Ru>+)+>PIX@9Fx!;=tzP2h>^6b^M9(3P$SM|o`&N#>R7tn9`$kt{ z)B7kiKe&n%AfEkljp|;M6sK$W(xE5MGqDx{;`g5b5+~d?MXV;9dmJoPA;DxwafkHS+tk(V2L^+KbiV2 z5WfC6+X~M~ilq$sZfJ2Bp0*GoD z8=m5cKM8c!a^Ox!-OnpfLd*EuWXEeKtsA`QuDVvz99s#oNLjBohJ%j-OxC%Kz^4_>>*v%lSi$SC7FN z(&fRMwi<3FL>ZUNxCs$C>ehS^-y8Lw11JjhHr1^q1K6VBxn?j9SYS9?#ALT+f2fVX)CY+prZ;>0lt03p z=F>Rdy`WWIjH6#z)rkLlY4JFW#95P7Se7h!y~k38fourW6;ivM(KsAd>^+LcMR6WV(o z;<~(4NExYuceCQ@FN>Ui-j91|X)lAF)vPC~PvoBm#>-^XP? zo22ZT8|tR_|3aPR4`snSKL?s4-(Aid1ErNL_|mKzYgQbN75`C@Q{na`R1QT_x7-d% zV?3j3rd_^Bq-myq`d)F$-Mh@r?>`A{Lp=^0FOw5kqsGCT)$Ck_At@}^X~VAu{^Gv$ zS%xFka(kAc2ODpGm8|l0N$G{%`~H)v*OC6JTzAUcMif3IOvr+vTQhRY>3+?6V#$p{ z;6IWqkio+7o0U+pHpKEoB5^EE=Gk@T?!ooyK60! z@bRfW-^L-%HzzpoCQ#hops($7*)c1uiyzjkRz11TpIcapJv#Ti5pq_2RflZx>UM z!*M%D{%oDxe%ZTql1l;BljCX(EDj>!>rhnH%R2GmSO6JX4439Nfl@V&-~8MIKQqni z2P-m1^0}rArCwnoF%!eWKm{B$h{DUR0JR@yCJG!254BJox4X=z;QreL-KUyDlwwZ8 zBqc*6X?Ebnqj$fT%z;ukvIf4Yw&RcvmjV`0%3rhoT3pYI%6#JPAx(ej-amSO{@%7} z*Sv6@0F=&4&#xJ%aMs(zH4JhBp~nIT543Q2MOLd%NdL;8>=n+ZIuZ%w)DePo1vgN9 znm{fVw6%VdcB1rmbA=yZA?4-6a@9W{0XKH)GvGQu)Tn2mwev!P8!I1o9z5)-9wF>85$NT& zHt0(-@e#TN|MOlkIk%U1RAI>nBG~ZD=U`3`1)O#z(IMW774J)S8ZzL*K!L#q5}9Qt z^fErnc3Z!Sx$^I-D<8N2?%Ir*(FBOgc@G^2pE$pw1x(m~RLs^Y zVqJ`i=Jjw{T>(OT;s_3oPW-uu+IZS)&Zn#Y#yv+k#;bl!Br2ZD3G#crBX5K_(U


4=G%4(G?A#!=$gHoz`NNHp#jl1HF`w$qb630f&T_=j z$8KgJ-c5xjy@^alUlXy-iZgULACm|F88o-AZc9W*IldhUKS+M0;;;7wz3@|bIw~xs zM4<6m5!^y~?y~Uie=i%~O`LY8#b5GbtR#80(?8=6bFVL=S>L+X&Ru;Vr^Ej)?pjQt zfxuNsQ~irluQ+vhiyCF~E2kb-yiC~)Hrs8iZS{a$`%S& zv*MC`OMcG}dtsYQuzl&LwQSDGw9HO57+Mt7{CCwg{TPRZv%lw}>VDPAhTi(*ZzV7J zap^_B`$`s@D>?Zh+I=Y-F8B{KS3}pXZN3|_7TLJ+G-$sE(?}eC6yDyu$Lg{|Jwn*p zxOTh29i4wPQFBX$=-RAh@!L8u^WAgM_Tz3O`sceNvSb`9)cy&)Y$0U3p2QN+1vE^2 zC*avRX&^OD>jz2ZCs8%Mwq7I6&!a}NijiC)VkS_`h5D|L_JgAahCV{%4IVW^1* zJi+m3CBoEyx@Vf~7CU1NbExUj-6lzPZ2O;KuW;*L7PWHaPxf zB<6?wjO^}%WEFDwoztKP-E;BCdHf#@v2ph)Bx#udR^PvYkz~;`D?RIl74@a6hY5j( z`IVvcthj{N-OFb=6yr^*;AnFg)T!md-NAi#>cg@*ht);KZutIZY(9Ufa}V%V$*wGq z=)|zBzxZwJw3VvWrem=xP-BRdqnps%i=?Fq1yk4Chh_d6G1^YMov*Vv_mI=LwEC1@ z>`mcPbL94m5rs~EL=Dl6C#?#u#d?E2xPJ`zavHO{SXLI7@ezwNC%s0-45f&^D+EK0 zfb{F$MLkzV_&^{}o12q#aB&RJPupMn`^_9dxc!_~+z4i2H3aWG{sql~R_+KoHWP0? zG}kS%V~<*Y?y9DEh6DebZLuzt?=!3CWvB-xxUz=iG?zcuG4i3mIpW2l!|D=LFd*Gz zCy_{;Y%D9NhL@mn$(835qeWf%^$Bj3GrGB5zj?q1lM@I|^R1w1 zRkFwJuyv)Uj~?qtno>J-w6p^GK-eJ^^NoIAUIE~2h|P|y4oNDhDS5DG>wPlygrOkZ z7bOP0tk)+o5Q)&kDM!%Eqit%-Vh_BWbbUm9EPEn+G7AjEe&iSB@;m?xawDA1^j8IV zEAHgfLTe{_w6uS6pNYWtE(slG{N7i^e1B3;Y=yv0`iZ?^X96|opsa6edUnohLi7rT z<2qPHO#9)p;8W!Vc&Rm$xy0%&iAHF0GG*%{@dBSCK{Y%Jz9>j0vH&qsvEDh)p}0%i ztNSvH_at6$Ty^A5Mq4pb6!s|!9Z52*t7BHM72n>(p5L!u4k&x%@d%65Gh(v+MdAW+ zv#q^09Z9I3u$!^j+2=fXKO2rkm(bc&0(Tvli-&+NmxYLwPXWn8WT}V`3TX^fm)QYp zKQLymC;|n*@%Bk9+$j>ozYo}dK?}$2xjXuO?u2(7O1V8FVc<7WOS=vRB1lSYduyYg z^(f;3Q%wXZ&LEsal4$1vJU1|-%Qe3|J#(KI7o`d#d7#&;V;cej;~O~6k#iyoR`1w8 zTB&CN)vz_|M)^Z#Jt?K-!%+M-EMuakkxta1_gQdWcrP+}7?0E?k3qPh?S`=|osZhv zy?Cl{@)D2{ur|DCMYW{!A%qV;=sj1kcLk`#j^#0b?K_ZmI6%EMA5ojfuiy8rjylzK zTko6YdSyTWbo)k*EOAU}Z$)CX>(_43=7&$nqi-Tfp4k`0F!?nliyT0Rros9q?>DEZ z6*N4v4Q;@KxT!|&cD^)$ad^w$UtDt#UnuS#V?1$20&(v%wjNXd`M-;}I7g@3+g>B` zT-C8-qVJ|ZP8ar#x+P{6%(#Ai?(8*^9hqN)>0I@vO99Qq9JsH1ZrVADOz@CLpJ+DX zvl^Q?)=94gRLH=?wc#Yr=;H9tuAEdB} zjPFM$vb5Tl2_fR|daI?j+!DHrJ#*jG&S1Jwp1^|JMz5Cp)7{Vft1jB~;avu!3m~G~sQ)?XH^Ax3$Z? zNUIF7R|6%B0bm^210bjil6i95GA&mtuC?k>&uj4aUbQg69c4G%cx(v)wDlklo3=8A zwHI%d=&={$^y-Prgpn~YKKf#kGKUjqbPivlDLN{;T1V&fess6_x>vb3({N1W_dfsm z={Vs@4g8R$LXC%c(Q4R(NJIgA=!wa_W*e|h5ipo&)xk~G zS1IFG8*Vn5X5Pp_Ni~D0S&%}rTGen|x$`lc7Z-SHcDOb$hYu`OFym-1>ZP_!Xk8V> z@&?t@>i&cWBG%O>Z?^IS(_N|!zB6Dc>Y;&HQ?kW)KRz&%ckLp~i4}r8{z{az7(eka z=>&1NixWM8dYGr`nx-Ik)r!t=aEyY%F zIN0Jwgj(NmrSKIYZ#I-}zLLp^2u(h1)#d6eYA3dV!aU7nYo zKYP>C=C=R(RDS%zUEAnJ)ndJCSz|)mv#n<@tO>q1xMEo!Je4K#jAhreys>*R^&(9^ zZ)Qp_SUb`lRwumikQPqF4mn%%~L77spMsYpr@`> z$qS;GlUJ1c&TbsU>c$l8?Q!UgP#kV-U-g;W_UCrMP#8fcXw>Z>#yBSIpNvj;i>rj-_2jgcG2H`% zhj9;N=r$l`-nVs z_Cl)j18~D*OaWT97=ptKzB^Iqz;pY>+Sy{`N!7Ya$3m>pkaSOcfv z5SLENACr1JTMm(Gu<>FdFHu_I>tG0mI-5qEX9(O*%u9Mqu&Yj>B4A_PJZ(PK+g;r? zCFU&uMdZ%AwJQf~TkCLJ^*@+zwbQZFMOCR%%Jp8KL=*#3NXFufc`~rD@H;l{seVr5 z1G(m2xw}@xrQ=*F4zlsSwjD2Wc@I^Y(5-b31VPn)d~-I(GRBm;(irwfvySUSn*u%S zqu}j-xu@ThTK$8G1RfiD{KVo3O=*NLXDO2d<{)1UU-O70aUwWaFjqaCyYgR@`gaNM z>i#yny}vxKDc$SFnFhu+A708_WCa5Oew^bqod=A{?pY~t;3Z|q-LE?XB!OU$QDi+Y zZh5bluxPqwvfuzCt*-4ltg_+b(o&2@L-|_~=*CB<9lthhOIgr4hNKvUAi1cHd5OM8 z_PIsXV5g1lhU6TW%UMg}so{j1UlpQ=KrN<*qPtNe&71Ny!y{lABwGPka>@r-@}ug+ z6&E`&_h@K+GKE&|9y0dfO{LHC$!>I20PSieYY_j`!3}fzUksaSJQV>14B)5&sKd5( z_tX+JVnI{>aA~T3-MRK#3Ol=}HR%O3kKh8sThGs=@xirT1dArJRKwXw5-6pEYvW0L zFD8eouKY?2OD?(}_`x!YbUMt<3Ze)^7QWpCPU;U`DTG7cWCWzUVlo|Ya+eZ&PKhX9 zWu45;zk|1Ks#4B1qYK;;a9%dy0N7tIoZDnk5Fe+t)~J}c>%f9=EoIdGw+b%G?H)VB#mSvddval;OAls%mUZr7fNnbM|E}SwIlLDU^ zd=ODHuDpyqTLd+3K}mmnvu*#pr$KaV9WIXeWWO=7Set*%UuK{RzSesYl0DP}O(zLb z6gDu8ad+*is*_|t2r#3bB&(6TzwN6NGymugDz>KiOBUe!awNQJUaQCGJ^5~?c1plu zY-ao?I~!YL(}Oj)p+`Rta4sN#xxGO}EWyVVSkMNknErR0Z&xubI8OW`Lwb^OE|8oR za?cJ1cVdm?U@LRm=oT#S^!3#M6*q+zUToGxq8t7Dt2bkD{1c+Wjb9{}`qf1L_%wA6c&zG>?9+-@i67 zTbHqFJvj!Ea*X3z($o%fCsUcbrv4{(6eJLVO2#M)dOhY!O~A|U_E!l3Lue&^k{4kH zNm8xh2L~s=-8=w1SvJm_ZPL|k5t|6b-AE)R%%P{3C{p5;=l*3TUw*< z(;sAP+3j>ZyrYN33;3I2kVM?DGPd`W=nmgJnr__o>C>S zmb17aO?_#(kphJ}AH4Cv`Zs%9IvbvRdaNX&DpAPqHcz_@ozKc#ni{&%y*ws$cV|gN zgJ(*u2Q@BB!fnP5gX0KZprr`mtz+4fNK|VX+To2xTn_7$__xV6_?tNg1zGIT#FCZJ zpX~p!v2zlvx+EFMSAWz4#x#7bPzfjhw9)P;h!Btu&99oRD$c0P6bi9oB*2<3l9(_V zlsE*Ve7jE4!fijJZb1;13 z9kGQ+GOH$wg^_Lsn9?&pTz}Mf|Ev)>2Cc*Z2gC>$`5eHzakhz1WLQ((CsS>vQhGAS zg>YZ}ZNGeHhhm^xHcO^7p^^9=$qk*yG(uyqNAbw=~x^2Qi(Aui5 zImiVdI4!kzB=3_OB%>D+Zo^zxd+pI?bcpPUA{Rt{zmW|`#b0=-n=O1Rz1ef}W<>v2 zP2Kw(uix*v-poK<5B*)mf6oeEZP;DfCoPY}!EZ8#gLcpDWIS)q^dix~`&jbqNj_kolrnNbJN@GE z%!{bZLk4TC9QCOWWr9bq$lTz34sYpJ!Vp}1Bl*=>ufWWd<;FQb^XBf!h+RrpmOoI* zcG8^VR|d`XdHCdlk=y!2h6w9)D%Y27YD1XbSnu{`!#YES|M|_Cr>C>Mb=LQ0`KGz@5lG}nvzXm9`-OxvkY5wst*|9Xi8eTaXFi~@FYOc>n zsQmIVU`CUNh{t;kJBwj)x`Yqz&8adj1(VW%7ryfoauhgf_0`d1`1qgvxd+;CEaMdB zBJnqFI*CaQnCw1tW}1>{rNo=p@~ykp;Ukh5f88grpx5^IM1Eo*D_m|XZ0{;#da_UO z0nR_EZ|A@ho=;0HL`Z{IC5TK#oo9RB&2`X{g@obSfonJ25)O^Vetj} zU5`5!Q4rN5%EJqgP-5i5>h+0K|IJHe_z zf)o}G)p$GEFV9Exwi6&0DG}M}R_$M4JW+3KMH}2vlnUxZptYy!I3o~)5+jb3K)+Q8 z#-pS3L`PWWzmtwAxI?L;9$(TmqjN+Q&dMP0oOkD+OFJtA|D=9u$>Xu? zGJVnkTW+|mkpW(*erP|yqa^hr&qpV8Q%Uq#%W11ae%gI%`e16q1yt!O9aA#vtc67C!mx~3%i zZ1LIBWeKY+#fO1m5b5u_-OU_9DTNy(r;uJO6X9rKeQ$Wwivc%equFHpf5v7mr?|h< z5$MwUd$^p1DQUoluUuCGno^iaVp(_Xu24z#Dl8X%;TEwWp;=cwPIpPG)c?n)KeJjL z$lIRfI@c_fkXSw(oWy*|T#`csj^NaP)OgNybFxLFIa4l1taMtv70U_nxAKQfPed5X zF@GPohd^})Aa9>B=gip>hEUC@#2G3f$5)pVU=cFF;(|)t_lrk{?NM&OuXx)vnMAn{ z2vMXmTlC0fFnme;B&<;H&QoIrY|y3i8ZpTZN)V?-_(SZU91A&wxIV&kp<{C2E}_wa z7M)3He)k@qG4pnA_v0hCx{B+J`Hb#x;Pv2P>`*eO>gzZX_W0M?>(3HRem}|Q0IWv( z_xILb3|yfJ_(+}QLUBd2UQk-ifvTGaoqmo?D7EJ|4-9Qp)w6xOIgwwHG9(rCRsvomO4_{{hawGb@5~ z4BL?}V#_DO3;{AYn$CseV2ux-3Wq49SjYm^F#k>0D28P98)7R>wVr}|?h@=$phnQ1 zbjrUd$>JW`mH-1fY| z_>bk4Qfr3ya3DXM{68QJoDQj;T4elYYDwC<< zeE3HYwsd4|_o;;I34on$Nl=r+nFRZ`@Q`nG%55Z|G6=|YF~Uojt+f2P+2ULACagP(en@df;P>$ z+4TBFMqG^F#ErHRdemnR=9n%lIZ%Ylfe=~H!1j+I{rQ5XO7+)BX%wDi2SFbZ_~I`n z(J7?ZcVQk!_c_@R5n{>8mv}w`Qsfk_!@2WyhjRzKx9&<-6>=rk%q}WA6891Xar>W7 z!~lZpxSvG*a*4b8_%b?~Ct3NZHap~sYZ-G+2CFY0k1gEWV?wVw)mZR23yGN*>sU2Z zc!kbsERhXJkF>4>Z8@=Ye7i#Pa(5Pgm$xuT3`jK+OPTKG4IFoqwIpCg~_- zqS5TZ!b%7!ClybQOL4e)Ihz{_pA=L|PR4)tsXoFJ9ZC1s88V7d)QHC4{x#`2v3UQB zXph9H1sBS`gM8if%*H@ycx|*Xj97AQ8?%Z}uNBe_bK)!Z_4HspE3SXujJsjLClbF} zP=K`gAzDSq9o^WR2b;c}1m}m*PgyvV;rV;+qPE@4-R~!YnMYR`ueNcUqbEX`l$E_7 znA3ed+w+?qhPd+YNfb`rNJxxxTr-L7?ND8luNZX=NqTYkMzGg(_>0I7>VI=~kF8<# zFJY}zh^I>*4oDyN8v0wrX&93y{H<>GRYfLcm++&OZ|?>0TJBO&)XFP>?t7Y#l(pY_mh((IjELu7yKx01U$JlTiN zOH+p!I}xfG^V)n&MRqvv_D$cKea6}MR+9Oh~7atUQJk& zCwnO|GPn2A_K3_}Oz@GTMP|;=c|`d}97Fom_pdySer-;$CRMRRgy^>kLgaxHX|VOzv2bHHKoQW~8)>_^LZd#%9FJN(mRY99O99mDtZ z{3%K7(Owh%W1w9>6P`g6JzDg`qJpPVfP7(_5}kN8hbKkf&vjSN*Zc|o?O$3uENf|1FbqS*k2s8xM;qmp1CF$&iF#c7 z<-uv8d|$l%`${;j(dE}a*=~Ap4@Z8Uhg)DMN+Ey|bE}cPUkLUobhUMo5a;ko5|j;a z;58WT9<@vy0<<5iCaD>`8bkmC>RUJ|v|OjD&+uBB#zS73J%TIN}|eJRESl{;y*lsdwPgP#cJ^5^Ybb;hMeRf_f;v z7O%OZ+Y}uz)9$`?)dhHO5bB_aD(X-+|8V$gEVvQCWW$RvD>WRW+;ada3O%iud7`?d zR^9U=Sj>NY1|nnD{ypPXQ~!HDCPU{z`#$m6hRV${rwLa| z_fuj(5|ZfLfsg`e7tCS*K|U$*u`ktoKV!9(*Ps6rVx4`Z@1*>&y+XH{8reWH53|i%JhkBTkoacF^YB=csJoo%|O@CVv&!1!5O+#dl>`$`S$rDa#lj z*)k}S-GRUt01ECt9-Zdo#IAD`*dAcTgmw`QV1P^0yg>*_UvLqPY8}4yRTgA9F+3u- z49v8q&2OLhy)<<`bm=OWuXfm4-SuWYS;3-5ti=oEUn<2h>{;05oZjR=w@@kqy*VkR z7Urr(y%#Qsl{QHNDXL?H1k8JApARHWr2u1Ym-D8mMW;`2bcd1o#T*gY;2~ZR_$zVx zc&pNl2vjyfBz-HSODK+csXFDb?fS;hd;YYVVv$WDy})pR`1+V|DNxpN=hf_W5_yz? zzN{U9p@wp^iIes8A5uK7PtIOwQOs|hGof=QB$`B8QfhueHx_`@DafwXZLNe~k zhE=j%#A0-}xD5=Yon3%ui_m#Il{5VMGIbU^ObwPi#0_*1>iFy8&JXg_ZqOS~K$5Fh7AnSo^BD{TEqq4fNQY9YiPFMX|xo`f@_TzZ!KBZkFkPTP3b=zY<%noVKZ<0X5^$#bAyy}--?J_eUf;l?)zrQKFt)>2FQ+g!w8<;WC1aGz;(u;Ed%bX{<@BJL zJtTqyW?rCprkf4T=IUFcg((Q)xhHy;*Cr8rD$HTw1Ffe5V@+KF(=I>zXO=Il zsqQ2ievOLx!~zTwwM;s zH5)eu(ki?sjS9K?FZ4%=Iq?WWdDzMG6bst<%9$4?_8I{;=@(i{GS-IgVquSpU&YG> zb3Tv!i4nBlxl}(4=nOHJ?O)%9@RdQLHeIb$_Eos&K zATr0a(M*bf={yjeFns8q>;rTDQ>I+sUtgZE36n*~)3xqehGe4ubayCps&UoYaOx_) z8vkON<1Q%29f*i#WHOnBT|X;-H>SP)Em!hEZ1&2N^8v+UR?GfokoBpzcCh{CdO?#E z&(v@bT?DHeo9d`(iAN%}N>~MfY#5hQ}KjIycy^K(}%=S8i*I2V4D#FOUK(}?Rnojo_}ugGeW$Onr4 z*wGeut!D4<{q2JkeYE~c!s{x$IrbFfT`+#Ww(>z8xQK-G`~GV#hh-6;51U_>>0yTp zlX0BjpVLtY9&_3qlHKN93978`UN)T580QXLFbFULb3xo-9@Esz9?ijt zWL{(c`~XxW;>59VlHT4NQYqZBi?4LP`w<@MuHG+PhNcyce?mAS3}3pexkKjDO}PCC z!fHSHCJJcRDo%Y(kwsO*H~{D76D7{Z!41FYX3j$)-gWSK2zN3M0cjq{5an?oT9jP| zQik4Gl-%$X%9z_xm8W*Br9>O$gFaQl)y?!YSgwvRpd(0N^%leBbPh}M$%DM?vRK_G zsY$P9jC=#Hn%`GO?n}}Yu5yi$GxYCUk%qYda!H~pL!4I5chFo)&fprw3w(kWH4TO4 zd1HpYrxa`h(h$ED3_UU#iYw*3#LliB3blJBAOCTofBzgqJBbhYD>|I%Ue6fOnU`c| zk2ax)p<4eCMb$w?GBPYKhb((}qTXWD@)4KU8P+T~-XJtjaV47|zW5!vCJgQ0!6%0c zK?#i)M1xys)FK)U)YvWP+5kFxO5nuuHkvMcFJ~EPC9dG~(%}l&mHqO)!i&$p^qoi7 z-OZU*hs0{z$nlLkN%FvAHDxYybsulK{NlP5=!QXr)z0c6-~geSoYSZjDzfve}(X8;6R&aHK-(V{0@w?84Qn*!U|DV zADbL2_@_}KB`ATq-4hK&-?^FhbQ^gD9_#2+z^uq*fudk~Z$&cf$-bn$->JVZM~XSJ zol`?jc+K*HEO@>jo-VVB1lsGZ-h2?^oVw9nS>&XopBs+QJZC%|aPBBT)^weaUK8d< zK$a=sqRkFzHxNZIwX*OqM5$J_xbNPXM0}0*kqVnf+N#gom&( zyXosXIH1fRU~yxW3%f6<49O?;JmVt_l6>TWcUXbtVi(=yVkDl3fnw**P1oYe2q$%JQ;??X z>;ZCc9Y{-qtUZO$w}v z%1WvW!43 zae#wLic$UW{uT_FY7AEqI3B;s2{c)6n0ojVoi9CReJL&hEsX;9q;ia*x6gC3q;3FMpxkQtM+0&n#aI-RjDYEQ{Vv|6CCi3yRfc z;?20C0INmBRrJZU7baJ=drutQbQEk)&0GzS8ho*1nMk)%meY+(ah_4OV8}MEnfX*Z zZkfcO95)IYHYwqoN0Zi*a@M>~c%OquQw;FhU*!jQ?NzYmU0>vm%5A?dJ~<*yeh?wY z6ex~a{Oc!6n_WqXzDLE@$V4fhb96FDNj?ePZ1wk6vQW>s-&9w4MkV8h@h?+71WF#wCcJ z6H|)7^Q5(O>rHFKI#Rm-YrQ*b>(yoMzIFB_mZE)ZbiTV_I$9}qtoB~W_{P8OGstsX z1~2~@Mv*u~%lA_L+re9M{RbOY*Fp(BK8VlmemZD{k6yLUqm7B+>?O!AF+MgT%Zb_` zxS8soM;n$t-{k+py^zo7ktkysVJu|AZ0{=(v{bXIALtOh3*Z zLAw2LtfStSf*J))R)+=erXzsO{@*sAHIwG5S^n0jm=e zF4ZO*TAa^Dqe*f~=5r?K>uSH${Tmee6?zU{WW!ql^2hJNeKHIwjYNh(mSK}iDCcD$ z==s-rSItbkaFgd^`m7PTB!D_ZACNoDVdZ3V-cyhR8UQ=YCUDTGrDV?~dluRor$sI6 z4|sB|{7+!ehiyJ8W`rpSQs&B0*Cp(Evm(C9;$gLC4+(+aY&BMAWo({%aOS4(*WR!E(UEeEn_)5f*hezEu^p+TP=26~!kg+uh^gs@GZ~ZBw!-a^uPR3vR_e*${ zTV0CIaBcZ>=H|NbcC zF!{Nzbyk?-dbLzeS!N3-^#Dm;$IJoPrC2N(d@QUcm90&=DE0K zbMVw-QL>$r;B!9l96+){2No*~j3B+m17q*1@IM@0KSM3q`oaf(o@pguwVIaB#S1i2 zenzMFvXjR+Jx?&i62c3JkmR?+ZOXaN0lgD&>4Zgm2Y2vpEOkY8)j#X)4uA7|q;5BMBtr9K? zcs;vL$LnhA#t?3Y6t_0JP+WgxBeNzmw=;o~I*)_nwqFqsTpF?|6+hNnkjvz{MXoIC zFP|8E6ew8x!4D%gICq6sP-{$e-$&{!ef1>7j5|9W(bjzP=RW6ntExy}+DFm1-1x=k zH%p>^<>O5@kfEHT`I9f-u3qs^q4`Cw3I2{-MS5<@cPj=q&pyoRFrn2)-Y#|69IH&> zzR);)oV6*IX7vE#gGvU1iyj1i4A9Uy@1(w4?N{8-9vE^DlA{0F_Xn2jlvfd%vHngQ z<-4M6hTkieyQzdn;s?!t{`l5@P9dgQ77Yu5w!`sPCFE%sR?A_d%33CR*!vJPoM zSxfejLS>g-48F)tDP$Y_l6@Zx{vW^pb>q5mUEQb~dYE(0obx&F&+GkqJ>TabPxeyG zy9K*t6K3UFa?$U2lqG42Bsb=Tfh!!f)mykdmc28}i}h=%=ij>tnRDc^_ubpD0--u$ z|BkDPeW3t!n&SouCj3)7u;j~U>v^&R=l*Rva3s7gI~+T#c91rw3;7wgc+5(R6pKhO z5%Y0m*~eLG_7h#j@ESCWUJo$OSqxRruNQP5hG|#6sQx{E*T&@UZqeyUa#?TiJ`#Gf zClVy$$bz4lzE&)h;^rTw8qOc4l1~8s2k^_Ir}a!umV6ub81=}y?zdeOnBaR8w4U%k zGnR@33|nN_!s{E(cDdbM9{w$ky0KS&UjhA0{h^>`_Lb2XnS@jJgY3?g6*F2=Lr3-s zb4;RpE(a&qQtB?bR^cn8w!bkM@N2B|d;Jw0 zqGEjAdj}h7XrR@vXQ5s1B%)vfU7L>@YV)!|kC;N8wV$m*R9}!5y;x3VtkqpVcSr!I zS@hqr+)?iW-zJmEyVb_DnXc@aVeQ$`ctMbKY`w`l`^?>*nYcZr{2r5V+rwP5L7JHz z!jIZ;_Lsg@wm8Y*8}=uA){KKX+7;ru(o&n^FA}IecbhJOrj5QY`ma;t zdRTZ)Tz)>q4pDOi*}+8}y^^iC8b9k^IrS8p_2%7``#BjOE6iIz^!g3i-55ns5v z5RO1ewYj1rE^C1egrLr0NciCciGHl}9lAs7J=Fd+h7l$-h0AVLbl0+7z>-H}Y%w>8 z!u-zkT2)E73Q7Y`7BBD*s^-Ee=rg{?nfOmW4b-3fqX*e1xV04(si}#ZiKBfB5(qb< zCYU7ld<^kJ|F;dYf~xdXp(*yrbgs=`R>V;JD@@2b!&ph?n{2uPLSkN=o!U&39>u#e zJ$P)P6Cre)C$*K?iNgTP9gjcn6zAifnkv3)3JvXf!kcUF zMwNNIvwI`F`qsSVYPv|FNWt2mDy5(QzeSFluO@G+R&y5Gp$3EIKgPht60HKm_XdH= zH217WWQ5J!Z{+5VR}o*)Mh0>F=`)p{&1~ll8{Et-<)af08INO)o1~#-vvq0^szTVoJB-(n+8Rk{Y1<) zaOdN;U?QSvG5sO$@?Uk8zG0JQXfX^Kb9?Awwt848 znv7W{z@dGXr39dC2xPy$lO#=PSXJ{bcso^Z@DYk^^^y z(pt1uu+)s}D}`?oP!5t%;nxtm{9#a2(fC<_nm^U~*C6duLhCZvI1mMwSgQHyNzAbD6N>(ZVHb&hRnq%PHEg zDG$$sYafU^gG(4%jUA-E*#{;^r9>bNnm+f~fGchNkDw0bHyn%{VP zjh@T=Z}a3KxcQ$6{ZxH+har7aIn%arB%f^(2y_~0}Ek%X$;qfb=_pg%_L>s+u4reDL z@D3NTrBi41#QY?dwN6qJg@NS3YA;Nd=5i0A?YDRM3hf;#tovL9jLU`l1ZER5(sDkH8^v;>eMIDoPWM?eY1pq7}}9MUO)6`n?I-?n2@rM7#sza`{O$a zAi>N3O3_g30Wqufv01P^Yru?ycFubD?)*#p>4&DpQlwPvk&0v?pC4}nGX@zq5z5@K zdV()^IlTJDT=cL|kOnQvP$?@ zF?*t2ShfMY0U#YJk25vgw?;rmRr`ll5m4(E8i4`Z-z+FX&Y5va-6+uAM(?ofKGyIV zv^!iy!F}W_5BulBx&P3#thlv?>t{ubbq=k`aqqmD;QiqflYXC1y|CJpfleYrU#V7M zyjeP92nqW!um_{Z$N8l(9&qTq?Rg-8J9DuBRp;O?Q6R9w6-10tc-M%cC~=eHut@1( zM@|zam~SjjjbNf)u9kEEyk8E!r;w9zV=W}@4Y*`0JSZmG+a_y^6Ngdcq)wrYxqrnP zbj>yFusSToDiJ<>jZq+d_@|&3F9EDP&{kx95mOC_*zcbXIH4NSAb!(TK|jWM_;zET zY(VuNQO)gNPB@IvkNT==BPNn6tm3hBtd3#GB7;fP zctEZs3526eV8ge8j1XI_hR5Ncz8|SVFIdQk-6QZ!p_EFYr+0*pdxt!*Mj%9M@HD=F z>KXj8?BL$_S#2OZ*RkDN^r=_KGh|3Ap=fq~v)S>q_g!4?o2!_^de`J5OU9$t7-e0< z56o#`SLG$-$0cx7*#nnCKTP(K9@T{ufN8G!Pk7tOok!S;2BPI|<4IvhE(}5*nb(j& zHzWw%_|yJX+K^)S@!rcvoI5v`q{Hb|-BvQ;io)!Pudg0@!821Y86XpBGyDr%&Datu z)ia;ZV~azLmwQ06T%h?n-xVPYM23j7vdn<+fg+>eO8gtEXSRemV8gvOABW#wKX=kL zOdKYwTrKq*5EH2X7}@Ry?+p_SDbaN6=wAImZN0Y1qJ+xHH$)8bZY{+Y{IVqEcSDv4 z!jJ0Wlq<2^kC}+ZGO*#<>G-l2r=WN`c&p*ALz=YUQaH5b%LPJB^G#)mysKH)dt6(& zoPPYBx~3qU%5lVQUM}(!0vjGg_Dx;#813l$Fl_wh7O>G^wr|X}dHVLv^Ba`WO+GuR zc#b1R;4P1TK4?yk51Ez|c(p99?VhR7+u9@`|Bg9%)E#!g@1jM$-s7TJE_=e!$V=Dl z{8bw$%i3o**WE2_-n$NszhpG^W@(;H)_mNO8#-Gft|*ag#@*E+^fKhjLzT^LBap?` zwf8%~%j|gj)MX6PR?iW3_YU|hJKp}kZH8!59|^Pn4*_QkDlbVq^3X}6T#ex$u3hz#jy#>tjLVG?nttjw-q=h9|sMYALY0-uDy7Ps4lXM&9Kjt|M z1a>-VF*;z?lFUmuI|&tYX2jl3@PytyMr?D>`1C>K(6*l}%{+b=I7-200fZk9w2OGDboMQ)leo%NMTcgN*dvbciNRIj_Jt+g& z(k;~#&*%aMd#0El12S?cliDA zT2-rsR4tf1QnMC(H}XoMao$E#@3tg6CvNT_%tOHX>~sJ1=Ds}i`9*Uo zloD6BIL;0M-<+x(%Kso+91nl8-|Db)yV^#w7;~)f3-EWY8iop7WO@(jJUR^h`OCi{ zK*#z9t^tqU_uiy~=%~VV{zFK(O7)dh_0|q?P?LUK0t;3PxVhLHNvogdueDROT>}<_ z7K5}#^-rG6m?Dxv?wVG&Set|{pSRD*CWl@orXsK z$z77W$wVIgTBOsfH7xn;cf+$9J&0fITesn2_JZMlLDrwF{}Ne{0SNNH)^)c($e?$F zQ7qW1qr5rr6lHR%PhC!kVw1h)kIlubsHjnW1tj$M4pI`_@xYf!gL=8v9}1_KTsA{J z!+`#4*Us5p6cL>3M{nWc5aIg7uAg7dLo10BXh>n%WyN|v_a7laGeOMwW0O~xZ_+nm z;NX-2Oa)q92QEu6mOVv~FF(_wBeF&9r#5&ha_QFU(rd3`tsTIpD5*nD>Y`<%q!H(hWsBm%c}be^9SN zR=cwP^8K&?_k?Q%4(AC4SOl{wz^-YnF^;2^&b*yX0q7X*Wl(|wZSoN8cs=9Qm%M&# zUO$>2A(4SWp8SSTCNW)D^06K`0&Sl%z1s6z@ric!nGfoKz$W^albwNd1`MT8$X3sp zNx3V)e#Sac%DS=_$=r7YS$LwJgtwcKOtJx1-QOB{!rs@G%2>di{yiH-sLvf;iV22f z52BB$-Z^D?ClIpCl1STmkw@H@mBp0Jw`HS+q2lT)|=dlqikQ;Scg1c>#-&E@#`d_Mu%yaU!=+3`~jYWW-p>}qgYEGlwl zO3-s#421EAu2E{W6L5KOWfDAlTHo9NHvFmDtt}C5GA^=ow>P9{OdDC~q(4cg{jVdW zziFOzEaNrneRJSTbw+DAg(Kk&wjt3X;8agbw;c2csyG|xct`Mr0Qymr^lfs-@}1i2w8DC5+f?^%y2dUYM^QmM8~Ht{|v#kFpvJA zSjqW1FjaRNuLdo}Ykij=yRu7Lt|ih9WG#tiu8==|GL?cv_G429Uqj+oV-zkHfCRimCq zQLa|ln#kf+tpbWvZoPJ)Bzjv-oIToT!XA?AXV&w}&F!eKZ;aUoQ{U(u-#9hGNB^mt zk}DXNtqX+tkLovf&Qop^!ea?)ZztZrqKm53s}Y=PJ_~U1)Zconn^=@{z*O<`%6~-@ z9j41lhc*2(e&$EMzE5?Tzk0{xwl=A}NZozEKfgEYzhSmO zWvK5v??0#QCuHPm&dOu<$_p85Ew>P?;HC3nR*1I9sG)fJzdyS5iAQOo<(9-^oa=#^b0mj7A<};yQCG!Z6Ve5p-pL+ia0cjsW z5Ce5*qpmYvp)a(n_*^*(*RV)Bh%jrW z`SjD2DnUdb_BT&DqnQ6HNeS(|U5Ti!@a@g`PNJ{1$T_9xD}CYW>oQ{nm`V_&&t#8P z8)5-rO1ZJBOJ0*&K4&j@;i!f|j`Nl<6H2 z-7DFvp($2g)N;Dn{63AYYqw=vJ+rB>-gJp=KT?KYuH!e;yc85sBxKGCj;uFe7{M|i zzs$%_+fEBe;w&s)%%J@#dg3ssy-7g_)K}+Fsut@OfwPYS z%(WdFD;&}Le|NW#`F;X)rltiML{)QLc9&V2y3Dly3wP(UZ&1%Mq81<=fl>^Iy0;spJknG?G= z`GEP44U}v0P$Dr!i%AGwOD5v5eg5aL0=Q!=BIGZ~TL^Ia&xa7&KQrjoVXF%tQ|9(o zdXyfX%1kw{(N+b#y^wFdC6`VIm|m3!sR|V2?oZNC;IlLS^iC}O82{2lNdKBO(!c{lU1?kJFJK&GZ#+9)$e_i6GOnO&jJnhK#f8~ zQ>w4xl@YbPH0|=7=k1B4z>Hi8uM4F{^e&!38m8^v(o49lU$enn#%RwKQNL`OR3W_P2(-0k zu5=|~iXTCQ>&=dR>PmV4)Uj-1ni}%br65GzPwt^dPUK7KhI&t%!mVkcjWwy=cc3IS z-f6fcU=0UW1JohG7fncJ!=d**n$DUy9XMWB5|Uh=y^<*_NlBp1ZLe7Z*1_@YP|K0u z>)^sz?(MhrfS`SDsA*McBsiuRT4-<1r}4YR;PZO`MG5R>*;61}twZ{4sk#xpQmfm-?4I_-$C|YU=V_=_ zqhpkJiyPLQe#SBx$3TuAfcUOZd`-6Ez4yL!PLzxeUnz&f;MJog*BO_e-iw0r%q3n3 zf!bTZYsYb4`=L3{2|pejJ|0U5cwqKKD@1P9^C8gcVw9bri2Q1OH2|&a$RCiwAfi)B zrDE%p?`Lr?x_OEs;Fcrnc&M};yLSV4dcVvrGH&we`{kfb{F;6s$n#jRpkVxyRjo^` zFwP=EAbU0M5pNMey^P~&(f2c_GaDkLe*L@pG~@q1wo4|E!FR?YWAnk0 z&kHd3fX*HgD2uulY?t@j$RIDXsF45Hb#G2;&7%oSs8N+QhaO;A%i9R~F#*sFFuW~g zG&PI2l|FbRdRp5@_}ii+ngG0w;H6+NvE4f_iu?cl-Xidhqzn(3`Q#+(*eJ(cgCtlF#kp#XYN@Y<P@43Z>HYNu>W`Z!bRWzZkQD;@u;og-jKSA-rrS! z7mGa>tPZ>F%;kChDoRgcH|iy$R(*&@d$`(idi*`(ZAZwnocx{bg(h{MdsM%>puAe$ zXi&P&xNs=clv#jq`!#3es)OE;Lo-!t@6*h=iwQ2#>!bUVJ&MHMNvC5z{I$`7pj6IfYoAIrr131b0>kd8GVBPKNys$7quyH{m&@ z$s{QFwUo z>y)wIVlHK9Wt2xzbMw8^%AMfLP~Uq6K|du}!|oox-%iTHCBED27Y=bDK?`67>mBcM zuElG)BMpdm*w6O=sZ7+VvmfXI!}b`c!Y*>~oft6NK|1ZRxpx123?ZH9UyC!FZlb0= z;T+oTEl0$36{6Qa%ROEIpq62wVg3Da0+qzzq);l_)h`t-Fm8O2&#SvslSY3hc>a3O zU6({G^Uqpc@?o;s_J33}65mt*tzS^y4mV$gpRmAgVh^p(iO)pmLd4ot=HJ%_5hOj* zF9Vq^SD`%t9VYXlU0`+saYIiu?f_8-Ik!4~+&}~(h$`|W4}oLF`|%1CIh^Lk_Ajua zgzW`Ui8L_R9i$y7uhEgO2T*Oe5vgTkAH08zQDAhZ;Awn=rJ?&iHVp2#yqJE}kuXjT z(Lz<6-J8kl=#QDZ_%yZ&gbEsY&~cLsmEXR&GeFJJUgTmKK$=n!W@m@DKV8g2Bv@vM;-&$u^RpFgXeXd^i{3VU$b3i66U~$(ZS9ynF+R@!XGYf=qd#5Lkdm z(&(Z}dw2RyQclW-5aj(s{CN}Z2$rok&YWA!UBB}9g*JScV|g{NV_&fXUGMZNjSmGa zwovRdw|`QN8Cr?lpL?EgArRz6DVTZ5Vb6t{gwaJ_*VC8vhgcMVMj6=;kzfO8Pp`ze zhPtABQPuuda?1Hby}RIh!kQyJ$BUQxD4$|3ttiiK(kbI_s|#Gy=^mEA8USgTZSniO z6~oWUjh6Hp%Ph;DFt>M%W9g#*Jpka`9xhbQ3#qVzBB>qXV~HCWfwu zl%+VFh>+ul62GxP+65bDV3WWe3kRyajkV0Jit}wX>&l^RV9Qu5W;;kYb045mfEV~l zpOgJ~J3&2Z)MFDbC#upVi;2w0j|=LS;+nJDX4f3t#VD=x)Ja32%aI*t`3c-6i{YDx zB-lj8NS9yR1wDW5RwrPgEC7jUhIZNCWG@UhXNC=hZ@QcUNyzXqB%Hkk#H~;?<0zV0I zoy%^M239R|#o}#;O(SI-A%O}HNQ8g?(<(Hq3pMif6ePq+)eBV{!*U1v>zf=kW9nmS zESHSo5-4Ej1!XhNwa3Xn)c*g4gcPs?*D>UK5v*TyV7E7 z%>aVLJS>sY$}!TJLR|iqo)|80ou{z7(e2)IVg-J&go)g9A8DXjc7E6$6hJV_%K!z| z#w);|IQ!RaV%Uh8!J}_6{m;3o9g)kVQL>8dntv^~=$T>-8`;@_>u=n;yKa|XLYyqrFUp399S$!MVPuz&E z^c0%DK54!DMh;@NY-1cl1M-3k9F!_BxlD({wD<)_jv z5C{kRs+1|K;ogPv{jUuYGWriil&!DlD;b=~5$&dPf%n2;I15q9q4{My=L)cNhrgZ~ zZyA5qv*;Sq?7`X1d|B*4XM>K>+x=XGlWZf!fe>Cjy9aEg4_*(gknb zzWC}(V?n7zSd|&K9ye#b|CJ5=>!go`Cb^51fe6`t}#|~(BrGrkAGI84(LXP z?J4Zxo*JpV$x}b3h&Zs}Ay2{0r`U>SWl8R1msa8E+OJ4Fd!DVJ5ipiqOWOB03Q0-@ zs1q!LIa=-U-@B5I8n&uyCdc?c*0*qq>5sb9SbTjtl25H}CfI-i2&u<1Aw2 zS`D<=ZJ{Oo_I_zH1pzvPk-c6QD0AuKnZt!hQMKE@Y72>6UtXUH{6vN51CW>2%RlUf!JC+WggbuFyp% ztm%wg>NP>s_T{E+`!DI4Ou_|MKBs?WdiYcD{*7e5^X)I6((~_me{KYW7qFK@UOaCZ zwT6B3o~Ro+`?gH>u*x6}McwuddY#stA~nM-6qdP%b^u;J6ZcEpm+A-1Ek|x$<;fxeL9X(sbf3eXZA>o`}x}OPfL#OyzQ}TSkEkN*0n3q4D@Fs|;+9VwJBN@-V1=ZGA;^u(C+S2E~`Dm`Aok1U+9BweTXM$SXfigYYT@I3{+0(9=;T+^;8MAD+GZai~4NA z3oPdU#;}v0tU3)XS}yGGJyROl%i-H@+T3I`YWs(jNS&*0w%Iy3G1LFtGNl9%0zi~F zhDJSmAQLWvUP8d+B1cQkaa+0j%YUSmu%D0k!{e!WALEGzy@7ylv)ni0L+S&YiVS4& ze2W_7a`)Li5WB=i;2IytoO1}oWx(q3)G!4YF5m{}sV(gJDH_i1DO9G5y&F5JsExzX zPyr_+pI(2Ek_)BmJm{JFI5v;^6*GmXN{ASn%uei{Tc#b5?zL8FzQaFgw27-qGjZN7y7f9e?s=o*&HVEL$32-+ zDx2^XoT2pxa|NQ_kNMX&+Beq@->3Av1OFKh2_VOBn~U=!OQmetJrPiO7@Ogy`{w3s zQ(u$RSnERWN!R@?B*K&OXHV8O9y0IIuC|%dUar^}@NswRO@|zr``rIxzLn&DIWFDG zLQdj93ybwSDtyNw-Xh*y`X3&;7Pau7sbHoreXUIqK>7$x6`X|7^YYJs_@57F{&nT* z&THCBQ5NU`5?zqU&WT7wx_|(}F-XpE9!jAtUz;FJE-cDmi(cx3TXuQ)%-dBDX83&2 z0FeR>fB&~#t{*s9*7gF}lOym@AAjG$F}Y)0lTGvQ|1&Dj>E1Ru$8RfhN$Cs@uPJd} z`G}{_JI8H zqtzRrHJE&F-CM5gR_n%yb)S|@v-k^kom5v!?DN{I32Kh`i_be2ZY(F1%DD?o3oozw z%>lxcdvK=n6%GOn;2@rcTxU0VPCWfY3R*I$H*eE*@7d*=ZJp=W{4tG%mlMuZhhO`< zn*^|RPE5Df{w{yp5Lou!b@*rB4=UoUGqd>mMZNuvrgvlUW7L1jMa2AH;~nkei_MPZ zk*9_w&5=6vOx6?Wjtb0GTv{yh70eYJY!jbuI{VAc?++@1&|xkL2!hNo?qYwLi~tlI z0d?rRL(cfFqRMxGh$9yxtcF26=|I6(+StuW7>O$Fz$mEGO^AVo&E^K1%{opgl^q5= zu9XM7wv}3pF1-Fm&+^;wmBnjw*eBZ${q^0u-rQyHOr_^{{#i(|Cly+MD7|j_HLRblb14G=?ytwgTHO8VlL+J0M*4X(7*oNRwwr=`<&!R2}k7E zhsEe~lA-4|UzT@(StmRD1L>ag*o|}DL^a#;Uex6sSKwYzhDt+=989_Go?RTvadWBd z2lda>X!>R9LRgm^s=j^w(=>>eP%;OA)4x*hYWES!-86c}e=fT@uB2s|5xu1~njgts z4^nJ)=FPjzUHQWaz0dy`>&;CJ8LB5Pw+Q4XzJ5{uzB`Y1zkiR)rR?tVWBTjktOqt) z$kO2%49wi07vhJu0P*1&bt9klbw_yNVnZf-X%t!kEk}UxO3;H>KOV!T z6jj{SBXpCJzhu=pr99a5IBdqH6oCKeUuYcG>mG7?QRVH8)3%)SIF6R;GrU!rxc|ZRj%JKclg@$gPf5ejDmRb**x8rN@n*^f;{*$ z5h?@9IM@C<8dUA0UF$eGk8kt)bo4LSx^|X>BhZo;bOMon0&MBk(&fqILVShcDqVBWm{I)|_c5yKfAGd5Dc*e~;MTO?eOm24p`)kd zg_eE#-HR1E%_v$RWVbM9x|JE=kszB6p0a2<9%?ig4nO8QyuE(8%u!l5`%=lR!y5`a z_mkbS!CZ_H*I!L`6@NuH%?~3aL?xalTXa~ZO<#Vzz!~?w$*1GN91?iMS2Ks-e)rJ{ z8uRbpFX8BXOCgE{6D*54jb{&S^i(x>s2>Q>rx{v&JK11T+}kb;^KV=Plou<=cn3u5 zDVp&O?((+HkLRIMW-AQtdqJ>~3_<}f6haegJE=WN;Hc_p`jX%t%{1^5gD~ujuEu{O z_AP!Q3lIVAfqjMM0bUm?LivnVS+>%jwBU}SWH_!q_tR=&r5iGt)ygA+ngK0Ij-4ez zOT)R@X>R^gwQ`N9e;i0bvrJyQ^~j<~_C^P5?uyy(u(S6gW(kJg(z^EPC<;z%xkZ0R z!2d~-i8_W*qF*MR+i@j%E(YO(qb4WaS_ftoZO~GZNrl){x{i3;`7`k)K zhyHNCW0%iT8RQ*N(2sy5ndk3W9kEFZQ}DmAYD^oL-WB}Of2TLMMzAMUVW}oT9ao($ z2G+FdSsc5`ITQ;#09RVD@tdS#euaNZx;U6-KLldqRo(x2HXl3Jr}gr>pVGaIroBWH zZ|lYPv~5-Z#%NjGT@QWlML%J??Ll~&UT0rpl)|0%Tu>13&L(=!?M|Halj+mGu7N}+ z2d0|~5zAjJ#7(YCM;~ol!#Aw!zgXw-TRnf?C-vghs znNw6Ev@aY&J=*>{-PCgD34u$qigA`!5}{+D_)mo5k~JlGfe%x_eUo%M{Z;OkY z6Up$xr~rTHw&c)pb!x_0YVK$UP0@PB0|-RMo1Kb9jxy*3#?o)wXtRyBNt+GV=JBpz zVPbm9w=KcRuyBj9QbFyo;8B1(lG*xv#pthSeN<`(j^5!iYt81jtx0hD&?qi<-ex@L zWM?1-+VkRPtMZjGg6q}@e*lC2u3Wy88&UuxGJh_qqpNbf z82Q(4fr19rH)D=&^+f5@o{WF8q^#(@oLk@yl8=(NA?YW7#bSoM-8%cA6#KjcP6)r; z{{DAq&Pu3ENLq<>&Lub*cp;6~gnUBp?fs2k$|b3T#<5IcJL2Qm8UI69|0MmhwJyP; zn{1~3h^}f|RP4;!j9a-kp&*8rl|TqBOyb};<7ORWuyL;p|1cE<9~Ni6n9|mEd;$hnBSeGL0bN8r9(

}LJ&m&3mt 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 literal 0 HcmV?d00001 diff --git a/terrain/jajce/textures/riverbank_stone_albedo.png.import b/terrain/jajce/textures/riverbank_stone_albedo.png.import new file mode 100644 index 0000000..538e264 --- /dev/null +++ b/terrain/jajce/textures/riverbank_stone_albedo.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bsl74sdmhj270" +path="res://.godot/imported/riverbank_stone_albedo.png-397520344cf47d44b72a984365941d39.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://terrain/jajce/textures/riverbank_stone_albedo.png" +dest_files=["res://.godot/imported/riverbank_stone_albedo.png-397520344cf47d44b72a984365941d39.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tests/jajce_world_scaffold_test.gd b/tests/jajce_world_scaffold_test.gd index 57ea20f..b2cc882 100644 --- a/tests/jajce_world_scaffold_test.gd +++ b/tests/jajce_world_scaffold_test.gd @@ -23,8 +23,8 @@ func _run() -> void: "Terrain3D should use dedicated Jajce data" ) _check( - terrain.assets.get_texture_count() == 3, - "Jajce terrain should expose its bounded three-material palette (found %s)" + terrain.assets.get_texture_count() >= 3, + "Jajce terrain should expose at least three materials (found %s)" % terrain.assets.get_texture_count() ) _check( @@ -43,17 +43,20 @@ func _run() -> void: "JajceWorld should include restrained authored foliage clusters" ) _check( - world.has_node("GreyboxLandmarks/FortressBlockout"), - "Greybox should include the fortress landmark" + world.has_node("FortressBlockout"), + "JajceWorld should include the fortress landmark" ) _check( - world.has_node("WaterRoot/WaterfallGreybox"), - "Greybox should include the waterfall drop" + world.has_node("WaterRoot/WaterfallBody"), + "WaterRoot should include a waterfall drop" ) _check( - world.has_node("WaterRoot/WaterfallFoam") - and world.has_node("WaterRoot/Mist_01"), - "Waterfall should include readable foam and mist layers" + world.has_node("WaterRoot/WaterfallMist"), + "WaterRoot should include waterfall mist particles" + ) + _check( + world.has_node("WaterRoot/RiverSurface"), + "WaterRoot should include a river surface" ) var environment: Environment = ( world.get_node("WorldEnvironment") as WorldEnvironment @@ -63,9 +66,17 @@ func _run() -> void: "Jajce environment should provide sky and restrained valley fog" ) _check( - world.has_node("VillageRoot/MillBlockout") - and world.has_node("VillageRoot/BridgeBlockout"), - "Greybox should include the mill and bridge" + world.has_node("VillageRoot/Mill") + and world.has_node("VillageRoot/Bridge"), + "VillageRoot should include the mill and bridge blockouts" + ) + var smoke_count := 0 + for suffix in ["House_01", "House_02", "House_03"]: + if world.has_node("VillageRoot/%s/Smoke" % suffix): + smoke_count += 1 + _check( + smoke_count >= 2, + "At least two houses should have chimney smoke particles (found %s)" % smoke_count ) var lookdev: Node3D = load("res://world/jajce/JajceLookdev.tscn").instantiate() _check(lookdev.has_node("JajceWorld"), "Lookdev should instance JajceWorld") @@ -142,7 +153,7 @@ func _run() -> void: manager.release_resource(selected.node_id, npc.id) if failures.is_empty(): - print("[TEST] Jajce scaffold passed: Terrain3D, stable IDs, 24 navigation routes") + print("[TEST] Jajce scaffold passed: Terrain3D, 6 textures, shader water, building blockouts, chimney smoke") quit(0) return diff --git a/tools/generate_terrain_textures.gd b/tools/generate_terrain_textures.gd new file mode 100644 index 0000000..11a7b7a --- /dev/null +++ b/tools/generate_terrain_textures.gd @@ -0,0 +1,59 @@ +@tool +extends Node + +const TEXTURE_DIR := "res://terrain/jajce/textures" + +func _ready() -> void: + if not Engine.is_editor_hint(): + return + call_deferred("generate") + +func generate() -> void: + var dir := DirAccess.open(TEXTURE_DIR) + if not dir: + DirAccess.make_dir_recursive_absolute(ProjectSettings.globalize_path(TEXTURE_DIR)) + + _generate_texture("dirt_path_albedo.png", Color("#8b7355"), Color("#c4a882"), 101) + _generate_texture("riverbank_stone_albedo.png", Color("#5a6b7a"), Color("#8a9baa"), 102) + _generate_texture("compacted_ground_albedo.png", Color("#a0845c"), Color("#d4b896"), 103) + + print("[TerrainTextureGenerator] Generated 3 terrain textures") + +func _generate_texture(file_name: String, dark: Color, light: Color, seed_val: int) -> void: + seed(seed_val) + var grid_size := 16 + var grid: Array[float] = [] + grid.resize(grid_size * grid_size) + for i in grid_size * grid_size: + grid[i] = float(randi() % 1000) / 1000.0 + + var image := Image.create_empty(256, 256, false, Image.FORMAT_RGBA8) + var cells := grid_size - 1 + for y in 256: + var gyf := float(y) / 256.0 * cells + var gy := clampi(gyf, 0, cells) + var fy := gyf - gy + var gy1 := mini(gy + 1, cells) + for x in 256: + var gxf := float(x) / 256.0 * cells + var gx := clampi(gxf, 0, cells) + var fx := gxf - gx + var gx1 := mini(gx + 1, cells) + + var v00 := grid[gy * grid_size + gx] + var v10 := grid[gy * grid_size + gx1] + var v01 := grid[gy1 * grid_size + gx] + var v11 := grid[gy1 * grid_size + gx1] + + var vx0 := lerpf(v00, v10, fx) + var vx1 := lerpf(v01, v11, fx) + var value := lerpf(vx0, vx1, fy) + + var color := dark.lerp(light, value) + color.a = 1.0 + image.set_pixel(x, y, color) + + image.generate_mipmaps() + var err := image.save_png(TEXTURE_DIR.path_join(file_name)) + if err != OK: + push_error("Failed to save texture: ", file_name, " error: ", err) diff --git a/tools/generate_terrain_textures.gd.uid b/tools/generate_terrain_textures.gd.uid new file mode 100644 index 0000000..46cb431 --- /dev/null +++ b/tools/generate_terrain_textures.gd.uid @@ -0,0 +1 @@ +uid://cl44oi3wmehue diff --git a/world/jajce/BridgeBlockout.tscn b/world/jajce/BridgeBlockout.tscn new file mode 100644 index 0000000..4042bf7 --- /dev/null +++ b/world/jajce/BridgeBlockout.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=5 format=3] + +[sub_resource type="StandardMaterial3D" id="Material_deck"] +albedo_color = Color(0.62, 0.55, 0.44, 1) +roughness = 0.8 + +[sub_resource type="BoxMesh" id="Mesh_deck"] +material = SubResource("Material_deck") +size = Vector3(8, 0.2, 3) + +[sub_resource type="StandardMaterial3D" id="Material_support"] +albedo_color = Color(0.45, 0.42, 0.38, 1) +roughness = 0.85 + +[sub_resource type="CylinderMesh" id="Mesh_support"] +material = SubResource("Material_support") +top_radius = 0.2 +bottom_radius = 0.2 +height = 1.0 + +[node name="BridgeBlockout" type="Node3D"] + +[node name="Deck" type="MeshInstance3D" parent="."] +position = Vector3(0, 0.6, 0) +mesh = SubResource("Mesh_deck") + +[node name="SupportL" type="MeshInstance3D" parent="."] +position = Vector3(-3.2, 0, 0) +mesh = SubResource("Mesh_support") + +[node name="SupportR" type="MeshInstance3D" parent="."] +position = Vector3(3.2, 0, 0) +mesh = SubResource("Mesh_support") diff --git a/world/jajce/ChimneySmoke.tscn b/world/jajce/ChimneySmoke.tscn new file mode 100644 index 0000000..45b3c49 --- /dev/null +++ b/world/jajce/ChimneySmoke.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=6 format=3] + +[sub_resource type="Curve" id="1"] +_data = [Vector2(0, 1), Vector2(1, 0)] +min_value = 0.0 +max_value = 1.0 + +[sub_resource type="CurveTexture" id="2"] +curve = SubResource("1") + +[sub_resource type="ParticleProcessMaterial" id="3"] +emission_shape = 1 +emission_box_extents = Vector3(0.1, 0.025, 0.1) +gravity = Vector3(0, 0.3, 0) +velocity_min = 0.0 +velocity_max = 0.5 +scale_min = 0.05 +scale_max = 0.6 +color = Color(0.8, 0.8, 0.8, 0.6) +alpha_curve = SubResource("2") + +[sub_resource type="QuadMesh" id="4"] +size = Vector2(1, 1) +material = SubResource("5") + +[sub_resource type="StandardMaterial3D" id="5"] +albedo_color = Color(1, 1, 1, 1) +transparency = 1 +shading_mode = 0 +billboard_mode = 1 +cull_mode = 0 + +[node name="ChimneySmoke" type="GPUParticles3D"] +emitting = true +amount = 16 +lifetime = 3.0 +one_shot = false +local_coords = true +process_material = SubResource("3") +draw_pass_1 = SubResource("4") +draw_order = 1 diff --git a/world/jajce/FortressBlockout.tscn b/world/jajce/FortressBlockout.tscn new file mode 100644 index 0000000..ed8770d --- /dev/null +++ b/world/jajce/FortressBlockout.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=7 format=3] + +[sub_resource type="StandardMaterial3D" id="Material_keep"] +albedo_color = Color(0.45, 0.42, 0.38, 1) +roughness = 0.85 + +[sub_resource type="BoxMesh" id="Mesh_keep"] +material = SubResource("Material_keep") +size = Vector3(6, 6, 8) + +[sub_resource type="StandardMaterial3D" id="Material_parapet"] +albedo_color = Color(0.45, 0.42, 0.38, 1) +roughness = 0.85 + +[sub_resource type="BoxMesh" id="Mesh_parapet"] +material = SubResource("Material_parapet") +size = Vector3(5, 1.5, 7) + +[sub_resource type="StandardMaterial3D" id="Material_turret"] +albedo_color = Color(0.45, 0.42, 0.38, 1) +roughness = 0.85 + +[sub_resource type="CylinderMesh" id="Mesh_turret"] +material = SubResource("Material_turret") +top_radius = 0.6 +bottom_radius = 0.7 +height = 4.0 + +[node name="FortressBlockout" type="Node3D"] + +[node name="Keep" type="MeshInstance3D" parent="."] +position = Vector3(0, 3, 0) +mesh = SubResource("Mesh_keep") + +[node name="Parapet" type="MeshInstance3D" parent="."] +position = Vector3(0, 6.75, 0) +mesh = SubResource("Mesh_parapet") + +[node name="Turret" type="MeshInstance3D" parent="."] +position = Vector3(2.8, 2.0, 3.5) +mesh = SubResource("Mesh_turret") diff --git a/world/jajce/JajceWorld.tscn b/world/jajce/JajceWorld.tscn index 9ec32dd..673c149 100644 --- a/world/jajce/JajceWorld.tscn +++ b/world/jajce/JajceWorld.tscn @@ -1,9 +1,17 @@ -[gd_scene load_steps=27 format=3] +[gd_scene load_steps=20 format=3] [ext_resource type="Terrain3DAssets" path="res://terrain/jajce/assets.tres" id="1_assets"] [ext_resource type="PackedScene" path="res://world/resource_nodes/ResourceNode.tscn" id="2_resource"] [ext_resource type="Script" path="res://world/jajce/jajce_world.gd" id="3_world"] [ext_resource type="PackedScene" path="res://world/jajce/StylizedTree.tscn" id="4_tree"] +[ext_resource type="PackedScene" path="res://world/jajce/FortressBlockout.tscn" id="5_fortress"] +[ext_resource type="PackedScene" path="res://world/jajce/StylizedHouse.tscn" id="6_house"] +[ext_resource type="PackedScene" path="res://world/jajce/StylizedMill.tscn" id="7_mill"] +[ext_resource type="PackedScene" path="res://world/jajce/BridgeBlockout.tscn" id="8_bridge"] +[ext_resource type="PackedScene" path="res://world/jajce/WaterBody.tscn" id="9_water"] +[ext_resource type="PackedScene" path="res://world/jajce/WaterfallBody.tscn" id="10_waterfall"] +[ext_resource type="PackedScene" path="res://world/jajce/WaterfallMist.tscn" id="11_mist"] +[ext_resource type="PackedScene" path="res://world/jajce/ChimneySmoke.tscn" id="12_smoke"] [sub_resource type="Terrain3DMaterial" id="Terrain3DMaterial_jajce"] _shader_parameters = { @@ -26,24 +34,6 @@ polygons = [PackedInt32Array(2, 1, 0), PackedInt32Array(3, 2, 4), PackedInt32Arr [sub_resource type="StandardMaterial3D" id="Material_ground"] albedo_color = Color(0.24, 0.48, 0.25, 1) -[sub_resource type="StandardMaterial3D" id="Material_ridge"] -albedo_color = Color(0.34, 0.31, 0.27, 1) - -[sub_resource type="StandardMaterial3D" id="Material_terrace"] -albedo_color = Color(0.42, 0.5, 0.29, 1) - -[sub_resource type="StandardMaterial3D" id="Material_water"] -albedo_color = Color(0.12, 0.39, 0.55, 0.72) -transparency = 1 -metallic = 0.18 -roughness = 0.12 -emission_enabled = true -emission = Color(0.05, 0.19, 0.24, 1) -emission_energy_multiplier = 0.45 - -[sub_resource type="StandardMaterial3D" id="Material_building"] -albedo_color = Color(0.62, 0.48, 0.32, 1) - [sub_resource type="BoxMesh" id="Mesh_ground"] material = SubResource("Material_ground") size = Vector3(64, 0.2, 64) @@ -51,56 +41,6 @@ size = Vector3(64, 0.2, 64) [sub_resource type="BoxShape3D" id="Shape_ground"] size = Vector3(64, 0.2, 64) -[sub_resource type="BoxMesh" id="Mesh_ridge"] -material = SubResource("Material_ridge") -size = Vector3(12, 10, 28) - -[sub_resource type="BoxMesh" id="Mesh_terrace"] -material = SubResource("Material_terrace") -size = Vector3(15, 1.5, 8) - -[sub_resource type="BoxMesh" id="Mesh_river"] -material = SubResource("Material_water") -size = Vector3(5, 0.08, 56) - -[sub_resource type="BoxMesh" id="Mesh_house"] -material = SubResource("Material_building") -size = Vector3(4, 4, 5) - -[sub_resource type="BoxMesh" id="Mesh_fortress"] -material = SubResource("Material_building") -size = Vector3(8, 5, 10) - -[sub_resource type="BoxMesh" id="Mesh_bridge"] -material = SubResource("Material_building") -size = Vector3(8, 0.5, 3) - -[sub_resource type="BoxMesh" id="Mesh_waterfall"] -material = SubResource("Material_water") -size = Vector3(5, 10, 0.5) - -[sub_resource type="StandardMaterial3D" id="Material_foam"] -albedo_color = Color(0.82, 0.94, 0.94, 0.85) -transparency = 1 -roughness = 0.25 -emission_enabled = true -emission = Color(0.36, 0.52, 0.54, 1) -emission_energy_multiplier = 0.35 - -[sub_resource type="BoxMesh" id="Mesh_foam"] -material = SubResource("Material_foam") -size = Vector3(5.5, 0.12, 2.2) - -[sub_resource type="StandardMaterial3D" id="Material_mist"] -albedo_color = Color(0.82, 0.91, 0.92, 0.16) -transparency = 1 -shading_mode = 0 - -[sub_resource type="SphereMesh" id="Mesh_mist"] -material = SubResource("Material_mist") -radius = 2.8 -height = 4.0 - [sub_resource type="ProceduralSkyMaterial" id="SkyMaterial_jajce"] sky_top_color = Color(0.23, 0.43, 0.62, 1) sky_horizon_color = Color(0.82, 0.68, 0.5, 1) @@ -131,6 +71,15 @@ script = ExtResource("3_world") [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] navigation_mesh = SubResource("NavigationMesh_greybox") +[node name="GreyboxGround" type="StaticBody3D" parent="NavigationRegion3D"] + +[node name="Mesh" type="MeshInstance3D" parent="NavigationRegion3D/GreyboxGround"] +visible = false +mesh = SubResource("Mesh_ground") + +[node name="Collision" type="CollisionShape3D" parent="NavigationRegion3D/GreyboxGround"] +shape = SubResource("Shape_ground") + [node name="TerrainRoot" type="Node3D" parent="."] [node name="Terrain3D" type="Terrain3D" parent="TerrainRoot"] @@ -141,78 +90,44 @@ collision_mask = 3 collision_mode = 0 top_level = true -[node name="GreyboxGround" type="StaticBody3D" parent="NavigationRegion3D"] +[node name="FortressBlockout" type="Node3D" parent="."] +position = Vector3(-25, 7, 9) -[node name="Mesh" type="MeshInstance3D" parent="NavigationRegion3D/GreyboxGround"] -visible = false -mesh = SubResource("Mesh_ground") - -[node name="Collision" type="CollisionShape3D" parent="NavigationRegion3D/GreyboxGround"] -shape = SubResource("Shape_ground") - -[node name="GreyboxLandmarks" type="Node3D" parent="."] - -[node name="FortressRidge" type="MeshInstance3D" parent="GreyboxLandmarks"] -position = Vector3(-25, 5, 9) -mesh = SubResource("Mesh_ridge") - -[node name="FortressBlockout" type="MeshInstance3D" parent="GreyboxLandmarks"] -position = Vector3(-25, 12.5, 9) -mesh = SubResource("Mesh_fortress") - -[node name="UpperTerrace" type="MeshInstance3D" parent="GreyboxLandmarks"] -position = Vector3(-14, 0.75, 12) -mesh = SubResource("Mesh_terrace") - -[node name="LowerTerrace" type="MeshInstance3D" parent="GreyboxLandmarks"] -position = Vector3(-11, 0.75, 2) -mesh = SubResource("Mesh_terrace") +[node name="Keep" parent="FortressBlockout" instance=ExtResource("5_fortress")] [node name="WaterRoot" type="Node3D" parent="."] -[node name="RiverGreybox" type="MeshInstance3D" parent="WaterRoot"] -position = Vector3(25, 0.12, 0) -mesh = SubResource("Mesh_river") +[node name="RiverSurface" parent="WaterRoot" instance=ExtResource("9_water")] -[node name="WaterfallGreybox" type="MeshInstance3D" parent="WaterRoot"] -position = Vector3(25, 5, -24) -mesh = SubResource("Mesh_waterfall") +[node name="WaterfallBody" parent="WaterRoot" instance=ExtResource("10_waterfall")] -[node name="WaterfallFoam" type="MeshInstance3D" parent="WaterRoot"] -position = Vector3(25, 0.22, -20.5) -mesh = SubResource("Mesh_foam") - -[node name="Mist_01" type="MeshInstance3D" parent="WaterRoot"] -position = Vector3(24, 1.7, -20) -scale = Vector3(1.5, 0.55, 1) -mesh = SubResource("Mesh_mist") - -[node name="Mist_02" type="MeshInstance3D" parent="WaterRoot"] -position = Vector3(27, 2.2, -22) -scale = Vector3(1.1, 0.4, 0.8) -mesh = SubResource("Mesh_mist") +[node name="WaterfallMist" parent="WaterRoot" instance=ExtResource("11_mist")] [node name="VillageRoot" type="Node3D" parent="."] -[node name="House_01" type="MeshInstance3D" parent="VillageRoot"] +[node name="House_01" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-15, 2, 7) -mesh = SubResource("Mesh_house") -[node name="House_02" type="MeshInstance3D" parent="VillageRoot"] +[node name="Smoke" parent="VillageRoot/House_01" instance=ExtResource("12_smoke")] +position = Vector3(0, 4.5, 0) + +[node name="House_02" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-8, 2, 2) -mesh = SubResource("Mesh_house") -[node name="House_03" type="MeshInstance3D" parent="VillageRoot"] +[node name="Smoke" parent="VillageRoot/House_02" instance=ExtResource("12_smoke")] +position = Vector3(0, 4.5, 0) + +[node name="House_03" parent="VillageRoot" instance=ExtResource("6_house")] position = Vector3(-15, 2, -4) -mesh = SubResource("Mesh_house") -[node name="MillBlockout" type="MeshInstance3D" parent="VillageRoot"] +[node name="Smoke" parent="VillageRoot/House_03" instance=ExtResource("12_smoke")] +position = Vector3(0, 4.5, 0) + +[node name="Mill" parent="VillageRoot" instance=ExtResource("7_mill")] position = Vector3(19, 2, 7) -mesh = SubResource("Mesh_house") -[node name="BridgeBlockout" type="MeshInstance3D" parent="VillageRoot"] +[node name="Bridge" parent="VillageRoot" instance=ExtResource("8_bridge")] position = Vector3(25, 0.5, 0) -mesh = SubResource("Mesh_bridge") [node name="FoliageRoot" type="Node3D" parent="."] diff --git a/world/jajce/StylizedHouse.tscn b/world/jajce/StylizedHouse.tscn new file mode 100644 index 0000000..54c5f91 --- /dev/null +++ b/world/jajce/StylizedHouse.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=7 format=3] + +[sub_resource type="StandardMaterial3D" id="Material_walls"] +albedo_color = Color(0.72, 0.65, 0.52, 1) +roughness = 0.85 + +[sub_resource type="BoxMesh" id="Mesh_walls"] +material = SubResource("Material_walls") +size = Vector3(4, 2.5, 5) + +[sub_resource type="StandardMaterial3D" id="Material_roof"] +albedo_color = Color(0.55, 0.30, 0.18, 1) +roughness = 0.75 + +[sub_resource type="PrismMesh" id="Mesh_roof"] +material = SubResource("Material_roof") +size = Vector3(4.2, 1.5, 5.2) +left_to_right = 0.5 + +[sub_resource type="StandardMaterial3D" id="Material_door"] +albedo_color = Color(0.20, 0.12, 0.06, 1) +roughness = 0.7 + +[sub_resource type="BoxMesh" id="Mesh_door"] +material = SubResource("Material_door") +size = Vector3(0.8, 1.4, 0.1) + +[node name="StylizedHouse" type="Node3D"] + +[node name="Walls" type="MeshInstance3D" parent="."] +position = Vector3(0, 1.25, 0) +mesh = SubResource("Mesh_walls") + +[node name="Roof" type="MeshInstance3D" parent="."] +position = Vector3(0, 3.25, 0) +mesh = SubResource("Mesh_roof") + +[node name="Door" type="MeshInstance3D" parent="."] +position = Vector3(0, 1.0, 2.55) +mesh = SubResource("Mesh_door") diff --git a/world/jajce/StylizedMill.tscn b/world/jajce/StylizedMill.tscn new file mode 100644 index 0000000..86b16bd --- /dev/null +++ b/world/jajce/StylizedMill.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=7 format=3] + +[sub_resource type="StandardMaterial3D" id="Material_body"] +albedo_color = Color(0.55, 0.38, 0.22, 1) +roughness = 0.8 + +[sub_resource type="BoxMesh" id="Mesh_body"] +material = SubResource("Material_body") +size = Vector3(3, 3, 4) + +[sub_resource type="StandardMaterial3D" id="Material_roof"] +albedo_color = Color(0.55, 0.30, 0.18, 1) +roughness = 0.75 + +[sub_resource type="PrismMesh" id="Mesh_roof"] +material = SubResource("Material_roof") +size = Vector3(3.4, 1.2, 4.4) +left_to_right = 0.5 + +[sub_resource type="StandardMaterial3D" id="Material_wheel"] +albedo_color = Color(0.20, 0.12, 0.06, 1) +roughness = 0.7 + +[sub_resource type="CylinderMesh" id="Mesh_wheel"] +material = SubResource("Material_wheel") +top_radius = 1.2 +bottom_radius = 1.2 +height = 0.15 + +[node name="StylizedMill" type="Node3D"] + +[node name="Body" type="MeshInstance3D" parent="."] +position = Vector3(0, 1.5, 0) +mesh = SubResource("Mesh_body") + +[node name="Roof" type="MeshInstance3D" parent="."] +position = Vector3(0, 3.6, 0) +mesh = SubResource("Mesh_roof") + +[node name="WaterWheel" type="MeshInstance3D" parent="."] +position = Vector3(-1.8, 1.5, 0) +rotation_degrees = Vector3(0, 0, 90) +mesh = SubResource("Mesh_wheel") diff --git a/world/jajce/StylizedTree.gd b/world/jajce/StylizedTree.gd new file mode 100644 index 0000000..e8193cc --- /dev/null +++ b/world/jajce/StylizedTree.gd @@ -0,0 +1,58 @@ +extends Node3D + +enum CanopyVariant { + GREEN, + DARK_GREEN, + YELLOW_GREEN, +} + +@export var canopy_variant: CanopyVariant = CanopyVariant.GREEN +@export var canopy_radius: float = 1.35 + +const COLORS := { + CanopyVariant.GREEN: Color(0.19, 0.38, 0.17), + CanopyVariant.DARK_GREEN: Color(0.12, 0.30, 0.12), + CanopyVariant.YELLOW_GREEN: Color(0.30, 0.42, 0.15), +} + +const WIND_SHADER := preload("res://world/jajce/materials/wind.gdshader") + +func _ready() -> void: + for child in get_children(): + child.queue_free() + + var hash_seed := hash(global_position) + var rng := RandomNumberGenerator.new() + rng.seed = hash_seed + canopy_variant = rng.randi() % COLORS.size() as CanopyVariant + canopy_radius = 1.0 + rng.randf() * 0.8 + + var trunk_mesh := CylinderMesh.new() + trunk_mesh.top_radius = 0.22 + trunk_mesh.bottom_radius = 0.32 + trunk_mesh.height = 2.8 + + var trunk_mat := StandardMaterial3D.new() + trunk_mat.albedo_color = Color(0.27, 0.16, 0.09) + trunk_mat.roughness = 0.95 + trunk_mesh.material = trunk_mat + + var trunk := MeshInstance3D.new() + trunk.mesh = trunk_mesh + trunk.position = Vector3(0, 1.4, 0) + add_child(trunk) + + var canopy_mesh := SphereMesh.new() + canopy_mesh.radius = canopy_radius + canopy_mesh.height = 2.4 + + var canopy_mat := ShaderMaterial.new() + canopy_mat.shader = WIND_SHADER + canopy_mat.set_shader_parameter("albedo", COLORS[canopy_variant]) + canopy_mat.set_shader_parameter("roughness", 0.9) + canopy_mesh.material = canopy_mat + + var canopy := MeshInstance3D.new() + canopy.mesh = canopy_mesh + canopy.position = Vector3(0, 3.2 + (canopy_radius - 1.35) * 0.5, 0) + add_child(canopy) diff --git a/world/jajce/StylizedTree.gd.uid b/world/jajce/StylizedTree.gd.uid new file mode 100644 index 0000000..806aa43 --- /dev/null +++ b/world/jajce/StylizedTree.gd.uid @@ -0,0 +1 @@ +uid://b7i6nat33edhc diff --git a/world/jajce/StylizedTree.tscn b/world/jajce/StylizedTree.tscn index fc5f0dd..228c850 100644 --- a/world/jajce/StylizedTree.tscn +++ b/world/jajce/StylizedTree.tscn @@ -1,30 +1,6 @@ -[gd_scene load_steps=5 format=3] +[gd_scene load_steps=2 format=3] -[sub_resource type="StandardMaterial3D" id="Material_trunk"] -albedo_color = Color(0.27, 0.16, 0.09, 1) -roughness = 0.95 - -[sub_resource type="CylinderMesh" id="Mesh_trunk"] -material = SubResource("Material_trunk") -top_radius = 0.22 -bottom_radius = 0.32 -height = 2.8 - -[sub_resource type="StandardMaterial3D" id="Material_canopy"] -albedo_color = Color(0.19, 0.38, 0.17, 1) -roughness = 0.9 - -[sub_resource type="SphereMesh" id="Mesh_canopy"] -material = SubResource("Material_canopy") -radius = 1.35 -height = 2.4 +[ext_resource type="Script" path="res://world/jajce/StylizedTree.gd" id="1_script"] [node name="StylizedTree" type="Node3D"] - -[node name="Trunk" type="MeshInstance3D" parent="."] -position = Vector3(0, 1.4, 0) -mesh = SubResource("Mesh_trunk") - -[node name="Canopy" type="MeshInstance3D" parent="."] -position = Vector3(0, 3.2, 0) -mesh = SubResource("Mesh_canopy") +script = ExtResource("1_script") diff --git a/world/jajce/WaterBody.tscn b/world/jajce/WaterBody.tscn new file mode 100644 index 0000000..5394016 --- /dev/null +++ b/world/jajce/WaterBody.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3] + +[ext_resource type="Material" path="res://world/jajce/materials/water.gdshader" id="1_water_shader"] + +[sub_resource type="BoxMesh" id="Mesh_water_body"] +material = ExtResource("1_water_shader") +size = Vector3(5, 0.08, 56) + +[node name="WaterBody" type="Node3D"] +position = Vector3(25, 0.12, 0) + +[node name="Mesh" type="MeshInstance3D" parent="."] +mesh = SubResource("Mesh_water_body") diff --git a/world/jajce/WaterfallBody.tscn b/world/jajce/WaterfallBody.tscn new file mode 100644 index 0000000..b083c8c --- /dev/null +++ b/world/jajce/WaterfallBody.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3] + +[ext_resource type="Material" path="res://world/jajce/materials/waterfall.gdshader" id="1_waterfall_shader"] + +[sub_resource type="BoxMesh" id="Mesh_waterfall_body"] +material = ExtResource("1_waterfall_shader") +size = Vector3(5, 10, 0.5) + +[node name="WaterfallBody" type="Node3D"] +position = Vector3(25, 5, -24) + +[node name="Mesh" type="MeshInstance3D" parent="."] +mesh = SubResource("Mesh_waterfall_body") diff --git a/world/jajce/WaterfallMist.tscn b/world/jajce/WaterfallMist.tscn new file mode 100644 index 0000000..6d27879 --- /dev/null +++ b/world/jajce/WaterfallMist.tscn @@ -0,0 +1,28 @@ +[gd_scene load_steps=3 format=3] + +[sub_resource type="Curve" id="Curve_alpha"] +_data = [Vector2(0, 1), Vector2(1, 0)] + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_mist"] +lifetime_randomness = 0.2 +spread = 180.0 +gravity = Vector3(0, -0.5, 0) +initial_velocity_min = 0.3 +initial_velocity_max = 0.8 +scale_min = 0.1 +scale_max = 1.5 +color = Color(0.85, 0.95, 0.95, 0.4) +alpha_curve = SubResource("Curve_alpha") +emission_shape = 1 +emission_box_extents = Vector3(2.5, 1.0, 0.5) + +[node name="WaterfallMist" type="GpuParticles3D"] +emitting = true +amount = 48 +lifetime = 2.5 +one_shot = false +preprocess = 1.0 +speed_scale = 1.0 +local_coords = true +draw_order = 0 +process_material = SubResource("ParticleProcessMaterial_mist") diff --git a/world/jajce/jajce_world.gd b/world/jajce/jajce_world.gd index db90113..aafb705 100644 --- a/world/jajce/jajce_world.gd +++ b/world/jajce/jajce_world.gd @@ -9,7 +9,14 @@ func _initialize_world_presentation() -> void: var active_camera := get_viewport().get_camera_3d() if active_camera != null: terrain.set_camera(active_camera) - for tree in $FoliageRoot.get_children(): - var terrain_height: float = terrain.data.get_height(tree.global_position) - if not is_nan(terrain_height): - tree.global_position.y = terrain_height + var groups_to_snap: Array[Node] = [] + groups_to_snap.append_array($FoliageRoot.get_children()) + if has_node("FortressBlockout"): + groups_to_snap.append($FortressBlockout) + for child in $VillageRoot.get_children(): + groups_to_snap.append(child) + for item in groups_to_snap: + var pos := item.global_position + var h: float = terrain.data.get_height(pos) + if not is_nan(h): + item.global_position.y = h diff --git a/world/jajce/materials/water.gdshader b/world/jajce/materials/water.gdshader new file mode 100644 index 0000000..3fa01c1 --- /dev/null +++ b/world/jajce/materials/water.gdshader @@ -0,0 +1,20 @@ +shader_type spatial; +render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx; + +uniform float wave_strength : hint_range(0.0, 1.0) = 0.15; +uniform float wave_speed : hint_range(0.0, 5.0) = 1.2; + +void vertex() { + vec3 pos = VERTEX; + float wave = sin(pos.z * 0.4 + TIME * wave_speed) * wave_strength; + pos.y += wave; + VERTEX = pos; +} + +void fragment() { + ALBEDO = vec3(0.12, 0.39, 0.55); + METALLIC = 0.15; + ROUGHNESS = 0.1; + EMISSION = vec3(0.05, 0.19, 0.24) * 0.45; + ALPHA = 0.72; +} diff --git a/world/jajce/materials/water.gdshader.uid b/world/jajce/materials/water.gdshader.uid new file mode 100644 index 0000000..1f63524 --- /dev/null +++ b/world/jajce/materials/water.gdshader.uid @@ -0,0 +1 @@ +uid://m1s2ma420y34 diff --git a/world/jajce/materials/waterfall.gdshader b/world/jajce/materials/waterfall.gdshader new file mode 100644 index 0000000..9bcdd72 --- /dev/null +++ b/world/jajce/materials/waterfall.gdshader @@ -0,0 +1,21 @@ +shader_type spatial; +render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx; + +uniform float scroll_speed : hint_range(0.0, 5.0) = 2.0; + +void vertex() { +} + +void fragment() { + vec2 uv = UV; + uv.y += TIME * scroll_speed; + float pattern = fract(uv.y * 4.0); + pattern = smoothstep(0.3, 0.7, pattern); + pattern = mix(0.4, 1.0, pattern); + vec3 base_color = mix(vec3(0.6, 0.85, 0.9), vec3(1.0, 1.0, 1.0), pattern); + ALBEDO = base_color; + ALPHA = mix(0.3, 0.7, pattern); + EMISSION = vec3(0.36, 0.52, 0.54) * 0.35 * pattern; + METALLIC = 0.0; + ROUGHNESS = 0.2; +} diff --git a/world/jajce/materials/waterfall.gdshader.uid b/world/jajce/materials/waterfall.gdshader.uid new file mode 100644 index 0000000..80af6a3 --- /dev/null +++ b/world/jajce/materials/waterfall.gdshader.uid @@ -0,0 +1 @@ +uid://bi2eesg0ly3pq diff --git a/world/jajce/materials/wind.gdshader b/world/jajce/materials/wind.gdshader new file mode 100644 index 0000000..f0c7ecc --- /dev/null +++ b/world/jajce/materials/wind.gdshader @@ -0,0 +1,24 @@ +shader_type spatial; +render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_burley, specular_schlick_ggx; + +uniform float wind_strength : hint_range(0.0, 0.5) = 0.08; +uniform float wind_speed : hint_range(0.0, 5.0) = 0.6; +uniform vec3 albedo : source_color = vec3(0.19, 0.38, 0.17); +uniform float roughness : hint_range(0.0, 1.0) = 0.9; + +void vertex() { + float half_height = 1.2; + float height_factor = clamp((VERTEX.y + half_height) / (half_height * 2.0), 0.0, 1.0); + height_factor = height_factor * height_factor; + + float sway_x = sin(VERTEX.x * 0.3 + TIME * wind_speed) * wind_strength * height_factor; + float sway_z = cos(VERTEX.z * 0.3 + TIME * wind_speed * 0.7) * wind_strength * height_factor; + + VERTEX.x += sway_x; + VERTEX.z += sway_z; +} + +void fragment() { + ALBEDO = albedo; + ROUGHNESS = roughness; +} diff --git a/world/jajce/materials/wind.gdshader.uid b/world/jajce/materials/wind.gdshader.uid new file mode 100644 index 0000000..59cbca7 --- /dev/null +++ b/world/jajce/materials/wind.gdshader.uid @@ -0,0 +1 @@ +uid://cnc12rxvfw5qh