From 96ea92d4ba904a2dd001fadad1c549e653436ad1 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 24 Aug 2026 19:24:09 +0300 Subject: [PATCH] update doc/*/world-generation.md --- doc/en/world-generator.md | 12 ++++++++++++ doc/images/normal-cell-noise.png | Bin 0 -> 30079 bytes doc/ru/world-generator.md | 12 ++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 doc/images/normal-cell-noise.png diff --git a/doc/en/world-generator.md b/doc/en/world-generator.md index 3c0a774f3..6432cb421 100644 --- a/doc/en/world-generator.md +++ b/doc/en/world-generator.md @@ -284,6 +284,14 @@ A method that generates simplex noise, adding it to the existing values. The noise seed can be specified in the `map.noiseSeed` field. +By default, noise octaves are mixed using addition: + +$noise_{out} = noise_{source} + noise_{applied} * 2^{-{octave}}$ + +To obtain more normalized multi-octave noise, you can enable the `map.normalNoise = true` flag, which changes the scheme: + +$noise_{out} = noise_{source} * (1 - 2^{-{octave}}) + noise_{applied} * 2^{-{octave}}$ + ```lua map:noise( -- coordinate offset @@ -313,6 +321,10 @@ The noise seed can be specified in the `map.noiseSeed` field. ![image](../images/cell-noise.gif) +> [!NOTE] cell noise looks better with `map.normalNoise = true` + +![image](../images/normal-cell-noise.png) + ### heightmap:resize(...) ```lua diff --git a/doc/images/normal-cell-noise.png b/doc/images/normal-cell-noise.png new file mode 100644 index 0000000000000000000000000000000000000000..c1c1031857715390786ff6f3824aae1ba1ca8e78 GIT binary patch literal 30079 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

<1*09j#U z46*M+T3^Xgws1e6_#`7O_tQbHG1RlMRF0k7I@hzQRszfppfPksQ7iQxvsqtZ;Eq>M ztXaaOe{IhF`}c3npRT^I!4MzIMt~9YZ=bZtJdMKF6xZ1i`=Y~)QHP3D_t@$bEI7k{ zf9Z7h$K=w8qnzsJd^AG_z-BEX*;o?I*fx}ML#P4HNdzF^QlE*wp?U*j7nnlyXAn?VA<_0Obv{MXH z{R^-5TZU;^nF@(ybC!6Z0INUzGOK(k#yLrQ$2@+=9NO$53@HE^Z>h-D*SO3BSCkZ`sycvrc#;6k&)F6T;ae{*1m~t(k5IwPotXo z$rUO>2^qkolp>c6ylR;Vk9iISpdS`KZ<-M&F_iVqT@8@&Mv^!=kS&jpRhrh*ZtyFi`%pBB#A@%Fmuk%$8-K$TXiTWgyL8Hcv^hQwHSU$j){|z$H%X;Cz zSA1u|2u-+oK(nR&bR&CAB-OPhwTv1Rl|8N=(arXjZAwB57W4`ob4ZsR^QA{Yr{gpe zQL>qRMG@apBZDh(mR&|+?*6i6@v|t0-!?}~23T`7IRKG0>1D7TJ}QZ=BtQg$CX^dk z<78y@WPSB9q^8ZxYR9H-Ty&!_G>nO1CZzfsGex-~H&LeI>aKdamA+T-+x5&kc26KP z4X*C(*~@4JLn)^~`&k9Dc)F*EVD}dI_J(st0UleA9}>d8yS;mckj*U&Ue!MorMy#U z5)lJ#VR$Og@$O%CsEC?6IYMlxjV82e>t&!cCcU-8fmF0Mqms4tliZqgy)eO6WM4s zu(daH7$B+gxz`=wjUsH6q6id)I@P@TbAASxjS-EquAYIY&RgY*vU?z}&ev2Sk*)4* zV-`U`4W$gaLWa$zYNe0F| zbJM?H%p_&$-fv1-xFPRPBZv8)yBA8FMzZvM^$m|{bzai3Brp;ioKX_ku8wu8mO7sZHEUg{RDVr}ykSkU@Qt8qe9UfH%^ZM6{Q_6AnOBKhfvJ>DaE(prUXB188*HjO z0LeksRCx@1*7fM~6o&uaeV-2zHbo@NhBI3x!bc)jVRU=5g zT#3?R)a}9nT9AaDw9n0bv9+H?HIDm0n$GS3+-hx%iI#rnx!ISh%td| zxt~W~A5&?xnOS;2&YB5EO}<0~*~kvA)5gia6~kG<%c*e6ECKHR%=}G-0uRg>_V3%h zHXX9nEnTAge4cdA|;KokTjmk z_N8GVCVxvz%mEl0+HVIKf@8c<1@<&DCiz$0QyIE8wyIZWhCMYS?^Dk)m`SiZiYa1N zG-6ff2kj>TSd$HI?B7xygI$12Y~6A_kEjhd3Mr=2g4gr8X0ynO7+1kj;Xr3jOp+d_ zaH{&IGUI|QVh+IGc_~Fr2Qa(lty}M_ zmQ*<{yL!qh95_Z=PtTOffi=(J-zLfGP5u-wRyJu*(@sG5HgfRQ+6RHSk_DMRyB*( ztV4&idv$EX%Gh1Km1%Lq}(<<-PZL9Y?aIgeH;^-J&Tw;w>hmz)F-?{N&O1Vm!Y4 z>rUs=jSsYpBpA=|((b#F3+52r2}n&-4r`ET3xS1VHB-*}*~-N;S;0(3LrYYtoH1fW zT4gLBsi^XyVg_!(^K4#1lzGbtXu6%wSYR-(AYIt_#>Ya~kC$)LMJsf147M0HN z=f>vS(f`y0uTnTe%AO*TTN2LTU?W`btFQdn7`T$zhHqk*625hjLpjTOl2j8Q-NU4M zi!387>6YWYR%-e%BmG%z+7vd?yPq#?)Bnwm=4Sl2zWNUV$#jUzyIH|j9jkw$N^i8w zOtz@{IkwRkCZrf~)W4iCWoR+?s_ue1u&H4MWk)}>_6flo6^_mL*4!5dNHNTi44fv$ zdOl3@=7;I?;~Cj6bGhBez$~29Y7v=+qh4foy*QN#AThq@>zp+1z7RxBjUEOI^ZPYL z1Uthz5`zY!cm~Da7Z>FscYkD9Phd7#t+38m!IU>|$&=$PJfE(ZK|~9`WLJrm|qT}kr=BQMHIrf<9kN?^#=fWO1N|FKy3JN(cE~l+6zNq9n6%C=XVpz`X zi@n&&62~0-1>yxS65;=T8#MJ%B@M5-S+W|q-_6gbstajD^2t)_H^TAX>-hwTw8#|$ zmfgef7b;jsI!}9WovM1&A?~C6RP*XzZqrG75G!Nr(#WlPl3TK{o_E6ynFZJ4oSyCH z3d|RmHZ_@x^O2SilV{o`oixBlC)`h5{`vW#B&uM!cl$UlYrn0tG8Z!aITA_#bO7Em z&MZmj0_`>iMEa5hGXcz3sojn_1|c@an-z6ePA6)LBkP&T72>V}l^Cpc?04W;dH1ZE z8UHBl=={l^be?hCNY$#l&1g7INO=3*clF2(CKn@DJXVME$Wz8?42iO*F@Zf+_gI6q`V3xw z@4nT7ZA!`EBkqQe#A3sg50~JgEQasZ_>>-cG5Ub-IpXJlBgyiU? zyG-k(94jX!zG%eCYB^6*i_aae9c5=U2?5&JT6Fb=r-B3Ifyu36(QaX|HZe9nL`P$P zDUyM1@!Wb_Pq5T#%O6V_FDMJ{}p-rPeSrG$jnWT5Fsy(q0Y>Knt0TOqOrNn;0WePj2$eW;#{XR|fAyGmxX zyk#LgaH(fRgvHK}2lUUYPc~MBs}%zy8(atzl$>?${(wv^?`hz+V6RV;7bX%He${tbs;l6`oPb5->l;6ZY$4pB^V!EHTW-hmoACig$imqZZ8|4b)+ow7g+3xCtT6Iz` z#6OvQVN<&#xG-;9ct^#sl7Ex2F?QwlwotQo)5lK(l>s zWIgY6>)`YG=)A#Yjb|)a2&G08xX|Btac$$wfD~Ve{Rw1T2((cJjO3q^Q zkTc``;{Y_gn$rNJOn?qBCiLI!XNjQYT~}WrS$#~G<|}-iY7@I8F7LJag`DTj6Rh&W zTFr&6A9T*uzxhQmQZV+LDsU9K`Y+$Cv*X~V001BWNkldK8q(I zI849wc)Iv}K7w-faqW8{DK9*rT~mzkL1g?lEk?L7{B^uPI`g&pov(w}?ZECPH ziv20-ima^qR|?aU^A&Z&qe$|E>v{M?2iTDpsr@Uy z`TjQrT9M~$ByFpYv)A-Zk%9wcvjunGG3%)Qk;>~?bs;rRFBTQvn!2#yL#rh8X}Riq z^tGtWHLmmPHEMA6Y^^%I1dd>|T*W}hSRhPJDU71`^f-d*=%-U?FZP)DEWCUE1w+bd z=kLCFn)NLTq-!ac78NbZ$TT;K%x9gN6?Eo9lQ0BQP*oT|Jz~I_&{Wcly?VS{7|lmV zDhvgtj{q{lUH!>}Ud%P3n2`Hf2+xoBSYei(aowzLF1mVXFyzU8_M4Cr`HkFQ zbbu9aN2r2|jnzD^&Sw34PY=0hO)8i<8?Cc@(RnFV&qv!w9VMIAX^2eeonWIKqk;{= z8hojeIlzjrm(|SJ^f3d7h{*gzO*k5fjk~PBUK~sn_A^zYy){B!{RII2o3V#oqz{bi zFog-}fQnUnS?v>qZRI0dz}JpJ-=a`c}C?q%H(?{yZL~ z6}9LaYV%`RrhzM2FU-C8^9>8DxeJ3-@*v^1UbKf%_;OI9K4z!t58zA%8c8Tv#wpoO zP1*0lYV^W(E>1Ayfvjodu;GGSsXj+EvCW(tE6xJv?u%gi$#m`eIpz}dZS#RQ8LS<1 z=B%K`Q?G?#s$!N*Ls(qbjimdYCc&ytZrHth?+<_Bo{@=mBKyz8)C^4C-*_&T$jTWE z$0GoLY?)Id+%7n3gRVdYO%wNJLn3UlYk> zHdGm{7RGbKP~u%!7@*2|lDE@F?4r8AiKbNi>d(11!Z~qZJA3*r*dGTtKaoVXnXEYj zBi5YEnE|Nb-8We*iE52&6sqZEa~j2LPhnCvNn%-Lg#%DRT1N-w3~Josw2BFt;hz;o-q&PD(l1Tf z9Ds;R!wZE$ix6-y$_fUz@*FcZpPXNP#mS_iZX;!xN6`#~X~fj(i(ZA;Bf%;PG2Aba z)o5f>XH~PjwBU^kL$0;9pMj#lt?JQXv<{ge=#*m7h(-_cFDsZ-Bg=P$mD8Gjj4Vy8 z!7W+0dTM7taTavI|9n0l`-R#<9FiHBptJkYcU8s^qBbeVdbUvzGTq3@0BvTRAVw8a z(!v~C%BDYz2Btb9>y77MYLK&n#Dq2X^U)Wcr?ogetI6A~B+uAy)?eL?Nn#>T5a=^B zmdU1=Md&h?>%4&@-skjpKLfjE{BM%TzUHg-(Bt#ZKmYItXLuVeK{iM@o1Ivf?3)%+ z9UFNn0u|@1s&?P^=kqz#xt|>-HUlQ0cVCjb;`h15bKcrD4m)*^4CC(6@SgAu>jV9T7)^5@j>bOp&rX zQ*%AbvPm0x0{>OD4R2xSDTJh~tO^$RRe_E{&zDj%1aJSdq@(;^VzC>JN4hgbx$($a z!m*BAT*4_wGSVb)0#q+M*E5Q(we9(?Fr4;V z7JO^?)TOLhy zB%!fibvPq8a94zR``7Lg5zR0fMOR-Hs7T4)xK(}hXEl%{V6(ai<@5ilFqPVrFl;bUvQ?)TdD6X)w9?D9v z)SSJn9+GV}gCH8pW_Ti4lanXDqcO}|tYu9!skrr3(`t-)`v`;dPitp~{Yo%K&8=AD?eiyl)rdA$?B^XWb;MhQ#t68{PYIdgN*KyRO*5fTkE6pFXG{{AfGcU4cYW@@ zNK)~-er~kT&1M)2RNu>w-(MW{(s=#}$#g zuvAI`Oe%HCX#f>WNVA3A6GbXWLz|0U*r8;%{Hslk8}#rs{X!4>eKP?S6r`kzTDW6H zRa3!@<$I#{A+6H^D)yREKC|l^dumEsO+8g3n)MP+lJ^Y2W^X%h^s1hBQdA;q>^D;t zg2Koi{k@-kA`DA!mg0bDK1@+e<_T8 z(q`0aKU-Zg7T4F;s)VFgV~XkO#LO*jR&!6E!R)edCa1e z+#Fc{GUs6yYvow(nwFfcsOuaPzO;Jov18CTFj@JFFoqIA9$TPn*;D~Toyin~ z#{xv>Iq%O1l?M{c7{!n=#)5O>pWg{4x$Qupj47JoQo*MRa*(?weS!C+em%)pb&BY{ zMDs>9V$q$Q?kCZby@{6!D*87#(Z&7>l)?!I|*zbyAbv%J`-)tgT^JNpfukHj82MT~*Jl|6imbLVJhG<6sZ&0g7~Rj0 zXlKaZAf*5@Gv`O<_R9#atE06xb_&ojXhM7VmHg%@$|Y0)#KCy#gkK!DZ!KJXQML;uRs#FRbCsZPH?KR+WJ43-<=)_Nb~0dKEqous-m z#?{Ta`hd%j|D}F<;eKXar&A-nVhJ_ev00-!|I`byNKSB9g(Vv~ zH>h`t>y|IotftA6b?kgrHvf4e2VJhZ_aL**CuprIFnG{fI$J2sUP z+LM;*4?xeFGMV$Cn<^c$^xfoO_}o*Lzk3>LHsHPVa*p-X?Zzf#iIHRdiXEITg&I)yT3n_Yfx;T*3>eT{@wAZMk7yk zQkstH%Suh&virzs?bzQmF;%7_7JWWCvRN$Ct`9_s06+M(jTH_!Q_e`hW?yB5df4`eWGGn9CMC zGVALWD<;G0FEyJFNVi-vTbL|Xc=(DqN~@a~;^=ut^t@EW&|+QlT_4>`l*|Ea`vd(- z{}SP}5o-!GayOSU&Eo$W(ZAfgV_X{VE$}$4$$K|82N<QW+Ba|lXe6pu`uP|6ecO_83#ten9H%Rq>=V}-P2>{x1YWvQ!Vz>cq};vGRE&d zOj&Cc+r`ZXtetwstMk`>*vrC4`k|et?e;WQ)8%-nKwsKRWK-kWmodZ)r!FWthfQ^Q z#e2MJ;Rx^{Wp_^-*o_hN#=9)_%$}`|DWe00BAdnLUD=?aNgQbd0j(BfBr}YxZc|uQ zW~eUEk?X&lv|b*Xb7u8Y;d!Ju|H)axk*;*J(0`^l)PEJ*a%>RTi7#9%nfihyPu&l_aWPtvn<3U z(aq4TT;Z#B*N91$G4Am8jb$k7x?yP+?bV#6p+qTb?5c*^BuAtErKV$2)wlitQU> ziKJ{NQm!XJ7$Dh#%7yRBj2x?X47^BX%;R)jwC?<{qnWR{4Tsby`#pjn?Md60kK(Cf(D!;dY?* zby8Ci>9VlAk>3!1bASrBO!muC`#mjT*+|vyzAQtMum$zI5Xj6Zq}h${A(&DEWTO-v zz-&gfuh@c;R7h<%{FT|N4N|nX$zYzKMwkdC97$aLwUp@`*i@dRG(sdN$bPMW5plbV z4q#f)_bk&h;f*D<3mHjpNP1Dfz++0z+c~qm`{M#0Q%4h$1{Db7vJAbQ9%bG>IwZxW zYN}=wC1M|IS}iKZzfIMNmo1fK(WM(NN~<;V_*3}YU_FZ%36u4*k@L{%B!S_cQF%Yn z)K*$Ho?z7ES{reWR@7(Z3ob`t*pZsz)tvAU*o^@;{bWbsji$9>SlxfpOtja9FEv>^ zG&Ct!@fe=+&{&Kk*}H%uh8jr8CA;ObuzXsxivkO7V#SHiA2X}nsKyzpMi0EP37-m@tqq*NzYj1nK&{9PsIB3y zV@?cK50(`xHmmQSx$m1FM`0bNumx9S%XhrnKwBEDR;+^YQkeirwlI`s&FlFApVjw+ zER0ds_1Iu)loFZ|+1j{5Izl1X3w#hv?TiBh&;?Ua5Y<~+}ryH_u)!`2B3yCezN28;SAM< zck}lY95XIw2DQ&`gz1_dl^a-UOXG+UPG<_fp%!dv#lL1nbu?~m&tm}=W$ow$Rq!_H0{N^!vR#X1zx@}PrXx3 zW0LV?$Cuk`a)2H0H?xk;ypiW^c;S?fy|3^hg3ug5*5WF4Vazg@&{f02yv-QNrAG3@ z#5LmX_tub}!j`D!cGVq`F(0z#}tFq)dC54X(A?3o+^`#oayYAT?9lnx1Xx z6DEvy=B%a$ZS$sWRv2ATrv08N=8d*&ZxY_m*Ab-)d6sL1BMC-kf7h`(|7ng#Nm5LK*k5&8n38WQ6)0;J zRzz`1FdB7)m32~2ixWIaV;hO(uIk$QEsPTBJbeDZ2Yjc(-9G?BsZs@2uxL%YSY`ES zx9lGHsU1yh3)a*6v;q0NW%*(~v;-1NVxg; z1C8o1D4YtE)?hKt6g)?`t-hk5npf+pN2R!Zxl1R zdZ)=O9MA;&WxTQmGaT@$LfFsGkAZLPuyWSPf3rselYq-}tp1163lYJ}m2xw%(Vh1y z%e3gi6_x7oV=M;N+rLybr()!pEvp-Fi8bXU$&wRnXS`&VJ4IG87d8J8IjV1?$h5)6 zH)FQ?x}R^Ey^U`>e1;VaD}%-Sr(Pm7tEnCO`P;f}nt+@%#VNd*<{W=&aztGoh1mU} zrroHX>^He;^1l>_Y$L@BCNyEpcwER^NFglyw5uj0t);(j(@>VwE{$PUPacqA*HakR zc~uRn0(+rxiPGv{X-|H?k!JNVA%QY$^1xIZ3#aDUCizyKx&<=uKuk^?*7$Z_<&rH1oXSXmIPi`r1$IOdM^LJS`mZ zGxdXi4DCebdVa2JbO0*I@UN4}B%T?0cH@bV>B~0BX={PEX!gY$-E087y7@+DBUbnO zUM%%xh!LNU<`#y9!L72MMGuQZ($)g)xGtG)O(iWJ?|592i0?jjCDqRaJh6CT$lG0Ce6M{Mh|maY3&R_!+m7(Y<*?PAkH95^SG-`5K+|US?+WT){qdpI z+m9UFmGpcPEs%^!$T`Cl-@?2MY0Hl6!iv-*K(u#q#WXKC z08um5B-rkscYpH%g2k@Yol1I$AtwIuBooUWse+Be4FBl~)!BdbkIje~5<^qrdT|xX znN~|zH$zZabIZ|o3qdf2QO#_VjU>Wvs-1%mFN_?uldDHxYmu_jWo0dkg6#czzKOY> zls9Eag0j1-KP}REBN@%WP{cK6b|J;r6tK^Y{7M-aY{*ntm+DtH*gZY6un3jiu_Ne)!1&DSy^30l;zw& zny?-6Z%vDsEF|K>E(2j|1f}Gr#fS?XAls25JZWO@SiG~mF3n7tIZw!@bSVc_U6n1e z4!LOe64H%aW%a#%Bbd59ZKr>!*IQ0e{l_y+{&SG&z>X0>!WiSNf;#<>{T4{9s)Y@D zLNbrOOK#oI?=R5-)YsWDdOthqDZnV(f;ZC-zuapk%!x-%xJlME4eqLwYi)aPn;tA= zdMi9rG_qer)-ee&dg=A@g^mo0siu)8U5E#y-IrB|>Wk^;q=9VMYWB<=_-*;?lp8yO z3R_fCFAHIRp97r7iZrLC1V*Fp<=l0?y_~Z{^25NAqst8hP=y27d7DvLMnwISzQ$lm zYxd?zliWZsnQg-G#=_Mf*oo8Duc1BSxqFgRF|}R26dbI&>8Zury(aVOKTU8dT-SA2 z!C1Z{aiVrP5}Nfjs<3OLD?=*V|4?Cd&(x)!$>=pb29geU>?xAtQaAE1LC?@-5s2a~ zxcKUW5>HkqYsKu435?N2GLSSjYUy5<3ieBKy+1&aczojnhU;O!3}Kb6)3hUli0=zw!aLd|^R@M$HzkzIJY^8mv4s@^$yL zime&F)|Ani0HinsI-+8U%fghg#0u8Z^+ zX7jphJ&Ax+9>owPcF&5frd*CmV+v-%8>B4-vKj@i-QlCg9^K2H#x6}JVo{jLGOknM zieSKBJ2iDEA*V{l{tfSC7nFa6dmABkJPKWXJHUGUT=MLm#;jN#u|n_}`$-xeRD4>3 zy6+w`sMmKH`0s@kj$bHbGj9|uyqb&}?^Sn}9c>iea^JTGpX%0B3x6G8^}&5bj>XPw z6;FBW#e-)aNqfP2k-78YT`(>Y;LjL*5Kw8s;F)pq?o@@+Osl~!%J^f$pQ<2fu z1mW*)P-DLdp*rbpypgkHp1h`&P>x)*Ix&(EBLefK>P8+ot^&o0O$!lFye6R4f$Vjfcfqk!9Xmrd z*EE=1v3PG@ZQxSV1aQaCe9#cr^E}A#5g;aswQxVnrbLfu7sw=kyJDr)YF0P>nija$ z^f?JTusIvYNqL||rCr__pRQuk(ozQL@BzR}74F4{oEX$C=ITiN;t)2cXM|MWkGFfE@vHY|eTjt5S&73on^<3;2?MW-TiM z=z4Z{rnDjr?_!;e1jZmGpIZvRWp70>)$-ko6Xk3h|G>8mady(zY$Mue$0fap8mb!>4|BgU|`{4^-c4; zrzi{I#86v^H)EaM#|N=Q|ML9mQN)hZ2S!X*|9uCccjJ{8TQ@6k+VnD$n_woqR47oy zv?HoDJ>JUhbmqp7_oU)BN~G|DcfEM~eiAKHf%Qk{A%^Rj>{V=$$Qj@Y*Ue@>RK||; z&NWSQ3v94_fT^MAvf!GD=BW1g?+BJr!EC>$XG{zEr72iJg4C$`*MaKE!bid0KwjNf zO||raX~`vo*Re{TPb zX~XIviv2O2V$Joe1DI2C1R!HBd@10rgA%Kn!3VExe@4r@{OANbrh) zD(dq=k97m4EB-)h%8|K1Lig0Ls;|dM2FjnY*x|?xNG4!&mmvR>L1e6g@9Q*nC zv4#1ZF)t*v5?F0AW)TxJmYJ-&ZxDeGsYdBn4Aa&DVbZ-u9R^D_F5ZYnB+cp(sNx%a z0)-IM$|#5x*X1*8Y}rFN3k%nAW0o z1qEBaVsb*y5vObVxQIGUyR1G?m?YH~h(;eMc(0&48#(Klyo&vIJpCBWN1#k9daul3 z2oUo(6R;`zfZ?eI|1N`4;&c}?61A;x03*%92vGPyQXxK7gg2v$RbG)NSR<#hI^`0$ zPOctQ*u~W+GwT`OKA(>TW454{&&gcMU^Fskkk!p1v@lq(>DQAa12a7G}LgjZKj-V$H)Nl~z3iy{Ty z2&npdO-mU}l#_6u&&Paw!7I*5&V^Fz>U`D7TtwP^n-)bf`rI@N^K$a3 z;26YB&n#7{>ht;N)hF{1TfeJ`i+P;vA?ed&t@0I%Gb={yg*>*x0SN5wyLZiY1cYQT zWfeQj7FHpb)Dk5LY`!`wD<9Z<|Lx2WTFsFy#TfF$o;|xAdHm8BqJs3 z)Z}soaYh{#qRd_-C(maK5}SZjpSqaIjVJ|oVuM$Ixw$4zY%FfBzUpe$dGi_bgw@CD zaoF6E<5>k2a{yYoA_gb6^i@H@v9}@|kggUB>KR347t-b+>(mIE-_PG6z7iUnZb<)|V=$NDH$WYw~Z}j5nq(20Gy; zxsCm_#D&cMif?6dR!tU~z^jk)WaOy+j#B*_HWW{Rzb3z;Y19r8W@}~w3d1@K$)>Dv zcXS)OD|g-5fsUX#7r#!z9Ziq~_Q1Lt`*XR)Z*U5cpT0SyhnuV4|H)6d+w91*QzykT6Hl9tTi@E$=Nmic|=q0Axw-ztVSWzLiAlqnl)Bi}lr1U3 z%Dif!R3hyts!u%W$)h|hcYmXxdYE4bjz)m$Ofa!i#~t}+f^ZH#=gCeQo*aF95WB)* zMEZpne9GCrmF%rv2FGD90(GY(g)7WS;Dx&=7nx;CkmW7Fhv5QS{C6@{chjWk) ztVgr?7?|=17Ky!jvHCTIc~ZxyR-O8iJXd>jShhJpPG?#9!fYgEFte`i0Bq3Ak)V|v zAnnS3nZpoAyK6-Xr0_4Xq=x+vVrpV+PNY`k=%m8#QOz*g*tJGxi_p>{8&RFr!cxqWao2>bPCK^7J*u>bBCFA&qUa>4lND%9dmN_YBx1&IBCk4YS{OBfDTXY5 zE@iUHzRUy%77zadjt3U2tb4W~W_&&$K803&TdAd3#4F1fgI9O0(XQ3$n~%-etR-&= zCF?Us;wV9RR7WR81xjV1v9O$~odsmo>Vw`2S6@$tCfF-JKaqE(nh8{OPS^AiZ(3Fd z_q5Y)g?lf!y#T!NX)t?=vhd_#B*~jD2lkJ?;zC)?8O{y)gi>^|`r?q;>BdXIbo%w; ztTInNIZ}NFp$ZbLo(>k)+UPtKUYQ#$_l0L1;#PlfLjctg<2~D<7S+GBv!3mi0`rP# zl_efhmReMg#FA$eHTkrs2z8{&1q?OF)@%_k4XW-a0E5WeEn_1TM)0clKTm?WxtBh` zgH!nR5q4mKkQ^dAZxj;!JGYYhR7`-1Ue~nDXH2q?!|p8nuXyagdPGU#$rX}-vnjHsogh{WcyUaBDy_0stBDc z5;jBCE=iFO*KJIQib22rZ3NJl!0bV*oa9YU!k47X$^{1yrPwtaA^YiI<}fQl z*TxvKA_tI9Ue8pRM5mlKm9+fR-nB5=rPgdyun<_*=cr}avgHf2!Sx{CYg|W*WK%eQO(6stOlr`ag;j6cb zTh*6(Ol_OWkfXa#2Wd{)iR?GHi2^}UGQ&~p>Z>m2yz*K#Xk0NOp2md(GjB=Ajxw)f zf=;Uo0n5%SXu5h_m%W&sUzlwZ>WxBMv+)aaP~O7IJn+XtK^9PxY5b(@GxUyAypz zZ3JND6|qnvT__8~i%fgQMm4^kNI?bPa9;R=h^$U>SN9Mjgj%2qr)#^#Jb(3=Y6g9i zoHr7L8($CLjqG|w8fk7!@z{ba!t61tsq%gH0%_=%^k>b%=Ah)_)n~m063gmbwV?h) zPz}DNgUrIO=R;A{fhM6#Fx64z6%X|Yv}z{3#u;RF_Uqn-K_I#K&p-cU(A5W%tA{Q| ziqqzKZbS7K7JM=mUf6lQo+R+Je0G?boM{@Jxt~Qm((%T^&hDE~Xic*Je!h83Zz<3> z$x2BIb7FHCs$+B7bkSSi1+o|;;chH|n9FWFu~Sc^WA(9B0NJo0ne^|*enS(Tq!H-! zr~;4IG@YU(XA1_qPzx6p@5}&X)d*|#&6ws_=Px&AZhSQS=)#D#d#PtTt${|Zb!;C@ zrm{IKvmH}hbu#wTG-QGmRyK_;JQiTJae`qXcu)Suf9V4$&nbU@DEnlwN2W6+&>l5r zs2fgZDp`WaOAG_Xt@JS?js7*aVPA~Ul2)UW;8;`so!#yJjV-HRFRn-&^nBfVp}jR= z?oMJcAX%uUxWkH23$Bzog-`9i+-2;4!;toRJKo(NjGb9w_jyqQqAqsN7#WFZ9p3d( z_@QBr519TVKxE<1&yOYd>W>Ogy;MdVy|6JMS^GU2?Y^B$dSz5DkX{@maI9c5bDWgq z8a=d{WbLQ|!wS`rvQmVd3dYq(D%tfse#xyzM+N)&nToRChm<$!+Zj&xul|sf_;18- zayNw;3xQ$_l=-koDLmGg`MC!&4 zFcoStItD4L3iq>!HadWgb--z5MaU8RN&4Lx@Q#2B^`eTdiPMz|+G0EZw;l8K& ztAN{4s{5xz((Uqr6>;%RTDE5WCg!WJG>i-`gen3k%Z}dlg*4=D0yVOhhFFOGasd5H zPq4L$1R)_xG9;vCR#RD(Kf;u1P)TF6=x8ad9Kgsi!cAsVTuEj`Npd6>$=4Cb-S_ur z8A(G!>Rve#8JW1tLq^t`7Hpp&P%4dkyH5$^+t;(_Vq=heV@%qJ4eC4AK!5dT zs0-m=4H}acW_Y?W$*tC`oq8!>0*t!0zcjf}`*OSJvYx4wx+b1q;vAo65f(|JiI$p@ zVCI3l7c%VpwI`L<$Y`?a1R%Br&aGZ7*R{rf#qS1)Go%38K|Lu&o`%ZZ|R+;tB4C_uISYw#=Nu(-@>L`O4nKJY#B#WQ4Z*Hy)hl zFnIN+lEU!DgGjYg-8uJ^{S)5%nS!r)&}%~KN&k)Y<=ul(w!b6pB-Gps$Ydj}aP{2~ z`rV;$|j=2JmbY9Y8%Y!jn23AUa_c5+>Oy+loeOm#BXOk7xBx8GP@kubz-^#^C! zCIO{Xl%MF>U8eFWIi;g9GJm`Kw?MeQZgGUaok|rf!yEy(4MpkX#K8zb8K@4qeu`dm zHEULXhk?|jvDn4^tU&(!{LnyFR(~91_PQ~}A6MKVjRx!4SYe(+LP(wQ`)4%G z+nn`&S$3;ns`^zSyl?negZ669>ZQ8-CDbO{@p-DFtCEm}JZoG#{Ji>ecf*AGDyJyh z3uNzinr>scO_8czo$W>ExPD9@nJMIH?9abBl2r4zVAxd>)-sx^wo0hni5*F_SCDwti>%Z2^GM$Kcn zjd*;;Bdv`fYCVqjCRWr)q_IyLHv83oDyRDFU*d6<$xKVJ4N&QFPpdT5Nm&RMJSoLDlFW_4 zxq95qVk}G4({CQa8yB+2 z6e$(IvDT?#_32}~7n8x5lnz$GJeCxDMO+`R+QImpzp<%wPBXfZ*zR4=ih^>dYuZL( zE<`-(Hb?AF^>Nm~Dj3@`oVzbSRcCG5iH%ohKjovKWQ>%5vy*yBT5E{Y{%!NUbbyT| z9it|PBjuFrba&5}ornXsjuQ~W>P^k+Gm3N-StpY*%K!-))ig?t$LULih<4h3sQ9Z(^9@!tIX(%x~| ztj8~9^#NgbR^`e4@F{7ncSPw|h8W2~8BWo!hTXBJO-d!Iqh6`VnD($W6RA22SB#t$ zrlEpkvn)3j_r`c(0uV{+Zi%;5Ce17g6kO4OQq7M!mdRm#%M(VRHzF=uqck-CsY61) zZEY}fF1!?$VyD_G!gGOPNf*Inwlu`kkkW{fGnKM85?PJftv(_pp2nL*NsZGh?wIl> zbjH+rLXXxY*tn{t58V9&mAhxN*R*eEj2$GQp{g5qlrL&pHFtoVda8E5QfY`6oZbv3 zv)x#Ttr+R-pk9h44AoWeC4=?lh%|88azE1s#t4FNKO11oNQPm$v@wrr zCQ7EGZlS)aY?H_x!y1bwKe->9w+l}`6we%cKN-0mTw36uX-pS_rb~*^lBy7=R4n@Z z{fXI)^j(p@x(m`pERTwUv%8(zubR!1wjB%HOQU0sH7iQQJ3SKfl zQ8CUGjLs2^<)c;>W{TwcIUe_yv*VO|VIz=?l=|!^=n6ja(%RH+88#vWDGxOl)(M%B zmEzfuUDH?EB^WpP@T%E9KP>g8h|Hn(Z|vsCUk)!gD$SqKB+aB7cYkC~MOcRfU&eYMk9JUCdD@*i#0+AFy7R}k2h{D z6f^M%;2UeL4vSJCU1DN<$7ey*AR`)k-;ws5HqZVg{d?s9>`uXoXDG>)1cGvq%GvnB zP+%uFKIv#yxv{F9ydK$??pJAn{gC-;{Fo_`%~Oi+O_SJ{Gy$LhPWxV!W9)B{bNr1?w>xxnsa&CXh&`i76`I zVK=I%Q`RR|U)aC;WPsrFHBMquplHFz*r`E5mL96KNw7`Pb{}xxn5WNeSNJIPq=@N4 z7fMBVtB9b2cwx>|5dZ{`QQ-uD8!s>rT-|HFy?bcanXyoJTU6MwqCjgU)Nc-8awcd6 zM%tMbjxpkFMUwMH?K_s<=@m(OA|s>ocWEUO73X$EL z@|5ek{yqmFgH4~DfpL6aJ;H4`z>3$IFRYi7`XYn~YL;7lE;vF^;ornGe+?xO$$xdy zM(yg(prVj=I{L8dW~kmbGSB7!*{l9qxRSBgw7#L5@(QW9pOlVu?q?+{M{u>d`p~go zQcU}ow-aJ@J(6HVSqPknW%rsDZ@e9Ew%I+m%J09^#l*oQIZjzgg&Ut15CSevDLSW{NyGOJ&rJy>X6+Wl-9Z$a#**!VX?!&R+ zc;h|v3!g*M+liwOq|gb3nMaszyk)C<$ACv8UH!=sxl2hZd~)?s?(Wadc6TARLydN% zjyA2g7L3Q$$(MFywKrq!KF+Mj*R4Jsfcg?8>m_UECEhiTldM1{NJ5gt96*Y**$*qR zQS+zWhg7nY|E9xiL_xK=`)?4*HpYJbyCM$Rjb!|e&}%T+ilG+TsD-J<9(ND1!q*a> zjYlQB7a?qB-u=nWhQBer+1(GRbuvi@Z|bZF=Wp#0K-uC9@|;GSaSbb3O*XQz{cYlu zbT@C`eXOYd;#BpQAGaLf?FUzkbG)=W`)LdkG0SM1niy{_i+1MUy@1h#Y zcYhg8GH4ty3&}m0Pnt346-IP}J>@aekO34RKVF|h-y0OVq|{G@fVNAdnzhNA zcPvvHl%rC{p}d`yjeN4JrJZjrjPfL0Y>Fq(cV{#Fr!H!lY@>K@bhoZa4-OqPf$>3r ztiCHz&7K28+bC+3kb79~yXO(ZcIbrLPBQn9h<9HAv6W!sJ3V$PgZ+wPrv}>C1lq>d434|2JSXl5q$~J0BMR+_0S37yf zTOw4)*v7_*s;=^t32RX1NKeT2MbQi2oxl2~z*9cEGs9Y>VaNtP>`dcXj-gvj=d16G zV99lWG;js!jZ8bj*zU>wTT|vFlsVC7claNyBj4Kn39%}( zoq~5&@R$-OOti$8Sx)uO{YeJW-MnHn80(C^Y(yXih3cPCVf*?3R?43~wh+1~Hf2kE zbd_T7KFz33*7Rg+%_w+b&&w$P*sMl?1cbFL#XaO4zhyBo#OU$e_0D$nHpM`*&l#$OI6Q{8>vi z%iE1(X^yd|og2Sy!FcpB*WW$TSg&F~H-+yA0~I758?*}c>cd#AFlrmh)x+VNV1;17 zyY%g7A@C+M`yJKXeIc)4SE^v*72Gc!fTp3E`b$q^wQ=IBtLDa6JhRhX_p?NEVZXX5 zwJ-w6qZlLPW5kf*(n@uoUwzw)kyFvxz?2yFs@*yMEW|k)RYH>rT)nxU=daAYC{1Ql zQk(H+?7cb>(+_oq<3^%p2H4nmlULbAYGjVVq87xG{LOIoXg{J_h)+~Rw;PEU^2r=z z>=yEP#i|!MZ85^M+X%x8qb^aEAr^K4oBH+8L-Nq2ZAz{4=32%9@=8uc3lg#2$CJOC z;f!R4xLW6~fmG?7Oro=E6VgmI+R_|AD^3QeDXvQug*fbZ#f)N0 zJauQ%UhxYkdrF5S{Fwjjmnl;=vY$O#)g6GgGdq&970k|Kc?&O9U+0h(bO6RRn_?9x zN5LwdY$ga4Z}0t4VsuU4T{2FLna_^IZa*2t7Y8uuQ#k%h8B#HGYvU;8ECdyvR|}Mr zk%>-Nohv4cLb8njhN>-4NOB|Yj_97qNH4qP4NpVHaFBM4HF4FhFNxDd^53WFF|w+^kMMkWs{gOjQUH;8!y+J^pfxJUT*;HSk~PU7srTe z7NsFm?Ts9FEW(s06;3#qW;-eWDVZWOYU(bFxH~2%Y$wNoF=m^qi~ySYcCXFaX=@tA zs{N}27zG78K_ddBkift3v{?5t_U%55Y{WGREMPzDiRz0EyD-?*JOqW{Wr5?P*7?)u$qyQlFwVE~;Q)iif)E?sM*s zZsui9ZcMRy;TcV0sO>%im6Bk`Rm;rUL7)J_FIg{rqr~uJQ>E z=b(neDR(?KNH*Lk$&YjIK`ish)N8|at9ycaUp*dYn+7IPdLxP1$e3zf7-)9MY`uF- z;Z%)CCetX}r(z=>MXV``C#D2QqS%c7+-pDkKGJuGPs^O6OYrLMapgM?7IJRG*Up%Y z&tF9#d$y7pi+Q67MhoduWzuQ;a&MrkSbU?QSR2E9h_aj3ivu zSx6t!b|wth7%IN~k+6?SeTc=4FXPsf9H*+1TjB6z`So}LeRRcq!#s@&bJD4VZ?x!X z`R?m(d0^S4+|yi{G_tiFazYi}7S2Z@EBI6s z6Y`j6Ryf;wa&PmE6hoJ!5sOsj%Z3J#+Trm>YckrqqQG;<5<9(z)VX@0xEG%PCHq%j zQLgT$SM23r0#|S<%h?R6ilB9hC{mrE3j>r{W%u0R44AursMYco>c!T?+8Yl6zBm=Z zv8x+H_l4)*7W4F1gtJ%SYI0QC&Vm$cE@WaxR#KnK<&=Lt$s`FQqN@e@?KsOCabr_D zkm*0Hr|%uy&o8)e6lSAWe~iWCUX~yP#KJ}u6MFT5@51A2V*tYd?={L2VjZk$c&%`) zHKhjP%cq$OO&gF9Acqy;^>FnG#vY*s|nein&J!jU~+)~wZd zj$>r)>O;*a*y_6hR?nb}W^cCJ{Ug2|ZWdp7Vk#qc# zT;jM9fp#CrjIw4Y(^h8$im}9)#F_3L&t(lwGG_IMpnHlJqft3(t!H*b*@Uxx6@dt| zNC3qPN=53+H2M;o$w_RbavF<(5bA|eAPN7bBKNbj&+%dR7stiS9Vkqj9b#tEX(qb!+^zlfzCnt1~2}mE46--w+OxYGdJn{CkT# zWOK@_8IGMFwbL0}3(-jXGo8*fJ<1g~QiNAEfK)HGbR$u?R6>b& ze;D~Ttt@;_p8xKttoU@Mv1j*ZAhNv)wj;D8^N1A>@~VWX$P5Y8g(W7ndEv>ZiDZCO zgc3#pQeRz+A&EM2y2vS01<`G)b77I{bgkX>yAO%`nJJ|MR74F^XGf?_RL{x3-v-qI zw?c49lsD5DySt{O*_c|;ZN#>8fQ2N4)F%WvA=}SSV5}!do6oRE%1luS=(yCtIi(p} zz2{x*h*Q-BkUTR}nVi+#&#+||6+=o*DFn~6qvVb0b?nO|qPk<770mxve_l}$UhCZf z2>$oz!zBt+ZRwRrqOh<_yE?zk7>NkULB7%k7S9rEJCh>-`?A1kSrApozRW^0Np)tJ zY;SQ|uha-7qnB=f3-)8bd+!TNmPub4g^O=glkKww!pLUdCccTuexlEgO+@BV1aSAL zB>JYzyN5rMih^kgmC?Z@PY!&(SlXoD$Pv}LG^v-8tTm4uZ!sBC?i8#deR>mvl6+~F zCK0Szxq3Xlo_9N$f2*U_AAGWfw-F$FXQC|fnHV|a8UZ)5svRD``D%*CGb3dSum0S4 z2ZJHp`W;QLIyTAC76fX|l3ewlNmV@>PeiZIw$+zDQyDg%_Atp3tp7_f4}2rE&91(9 zY)vp3rWRw&TGheH1*LO*#Xb@0l7WfIfH9TGj~Zo8U$NXw+<5%vt68&pSjidf>g$0! zqO}_50i~kK`^m9I(KngRWbC*7KENCF$^QL}2J&OOq&B}Wd%R>ikRsNaossZ4n%kIQ z#vZL}>ZEV$jHZL*$A8`&>69~Sn{9N4^ZOJj6{!~=Fv8KDM&zwc14_PHoft>d^UUsT z-GVe7C6|X7)COaUoeHigR8=gm4-TM8);HCD!!C=_llVBk$b{oiNom>yDh0MN=3nJ3<5hB^@&>v-%W9=V=HLE6r*m?Ral^ z#aL}Jubu*3csNVL8M)b7*5`9ARru=w_q0Yy=+%v;vkV?1UVN%w(^yXslb0z^O`r8L zER1LSiE|V(n^og>qq;B~AJw?*bB^`l7CZMPuN`8mnrqXEWKtJZyI#&XVMoNTQ}# zLL2Mg!ZUJ#$;RzpKJEIF2QGX@$qF%KkA!0Nb?rBUvfqVlf+BtCclFq05kd0oo=0qi zu&Zy(Iafc{2Sua=>m^$A@9LvDiO#vQ&RgS*3M#fvEW+6u!fA~gQ5pHt2BZ$3A&@0> z6}iEMtpxnBvx4JMBLZvIs_8c&t)|^8D;jR3V|KLr(4@W$7WzDU-!I>oI5z$D>zCf+ zv)u2kP$ox`9MN+_2+2j|90a@bZgKc)h)Cg6{HrXwH=!-6qsjd$`s=xq^?-e zxBe8^&dD+I5p)^V2vOZ5mDehq7-P(kbg;LP{l=T7>P{#mFVmLnk+LxXE4YMZ*k%c9 zcKiUcnTqLLB2axIK9WY@t5~O_U&$QAv!bMGY{U$`reuLFWE~pCCg=ppjFmpd`W&ou zOG|;$5eN*2!w@s9;el%u5@^ z_@V>kplST30@UB2toQIh^QdyJW1MQXZ#mZ}%nd5YN_RE*cK?)vG5+cwjHn(AS;^gqKFQ}If^lkjWU@|+LBJfwR$>4OQ|WzeD#$yVO3GA1)Ur#jMy64 z7-7fdEE84bBWO5}q>rwbCs~4iN0#!%>ZE(pMd9I|J_9j2pti1*n99kDg`;R%xOxVwCi~rUy?(;*n%ob`L_k zKm0bg*QAr`n1mS-awS0hE^Ip=3CEKRy2(PeEM2IS8qqD1S%1^P%vB5=T54g>6&C}N zQF)g$X+0Gxg3HvXjOz+nDPcMw-~EHGyS_5JVj( zzU<3-Ts`Y!BX5=%e{|8*lqK$IuVMnuMv??PLpB%{%!jK#3P^~?-X)tEw|YrRN&Wt}Pv2B$&+gkISmD$;FQA##*{tR6 zHd33H5|P~_t6fcVatc@z3u$To`VjTa-h~5Okb#+knnkZD);^Vzgm%8d2X<_W$Y!gj zB6<6Y2hX}{0GbKJBAu~I7anLN@^8|bM}P0a zCcsrc>#n+&sxsFEGulzRG#Giq#h*7DR6Kv6kn|a|(~2S6^u6N+k#nF2&$%34;ibG( z@H!FVOOQ^P-?C6$qNZclX`qE*oa{F@_(FYlls<1W+jHh@U6CY5wof$JmQ5^SGRM`K zaW$~ui=WS*pQ4c&h(5=e|JT>KE!PghFw|!D|9^33a~{&@EK5)xI%&$q7s(islKt)! z?bB;K6&&cfDPdluoF>19Gxg~tBLMLy6Il<+rf&VGYz02cEIt3#m}(l(kC}a%>knaa z-T4Qd^i!p0u=qomn(oWd6aDwR%oPcfx%ZUr7k zz2Ro9r8B;zCjokNo8ZDc@A(sR!J}i$0s3_#kjN`5UOqdjCV~HOK=#0!wg9tb_kIs6 zpzbx1N=Muno4zK=X@Qh5?^EEkKsGn^dlo959y#8jQgk;ZG^s3w{yiQ&TdKWnsPpr0 z$3pek&(F_Ky;%xp00~6rX$51(BHF~3jYzO!AJFQnH(TDQ)l*YJXvMzpQFnD~>2l40 zQbFm&t7OpIriwVMd0ZWGEE9%ho!+tC5zA?lbccku4CjWwBd<8c(eg*b=FN_IfV!KB zYW_#^F98HNvwj7P_I&Tf_GirNR`_B%(NGh1W~rme3;{C1ev`2rCFhFtXp(KcFFfl{ z-1t8(A`Ngy-`uV>sFq&VXV1iJ?``7MWU?{M%t-Z*^y_yf+%xB~QAi~9oZGtw)}w}ylx-D&h)c(?ZZ9?oUjRwO6Kg_@1H zXM&;TR+%r{YAkB=GlrFO?`HUae3X?k(qi;ANSPu&S zq74<0O8e!Q#h$0g$6U@6)?As$ShgD=Pl!L7%2Z*UcB8B6`SN>RP|Jv5pilH0VU8tf z#_Nj6Livpk6vMnjNSXRJL#py|XQGgc8b;G51^{ynuhRl{LD^~s7n3<@@Lc@=Mp&N` zLDe=xXL-J_QSoq|I?zT2vO-+h*c+9NIJ9j~Nr2;J_>8Bg_ZYX*wlr};s4=Jsv@OZ|rbw3TRl!yEn8 zbGo2xW~lupjRgFMznE6+BJrBnN3zyLPkPbtt@P2@s0viLkuacb;yL1r45ZuXbCbe}m}%_0{c(?6+iiyzzbIL@dyzxQSJ zY;ARsAWZTwk0?CVGB4ctu;$M4|4$_K4D;-zzyaxFR6F^E%!M3wPMi~fX*b&`}wm($L~cfAC#?+99-HuV|SH;TG77SXB{QvMYl zzIfoxD7In~)@)*gw?XZ%RvP~RD3Wt@mg8{hN6|#uJ=Z+iV>}2;^Yxq=3IIxd*a`bA zV8uM4iFM7VAvKc?OTM2W_+N!NE=|yL0;!-kFNiSP@%+xCf~^&I15J#cnbj9(2D46M z>+^<>dSlp%U91GXIbPb?qY@MH2_kvQL&|UzFELj!hf_#v$dUr|+%DGzi)z{egOt$b z!NO`;@4O<`;- zb3j_(s+sj@fjy_$W3@e}L>t#yb%coqUFG82yqB#Owk%~mYQ*|!|C)u(iAkG#vtg=f zDoa{h-93{3|3uPL)#y$Hn{erP4cVBOL(?MB9B;YXt@=yI9Mw!}o=BTynH z5s;zii1NHIR58hvRrRafLoH0-B+0@lvp0MY@MCH> z{;&DjTD5SJG2p4swIj`BH`$OY1p4Xd{v-gq%2c871|nBu>dgS!NCgYrpe~kq(%BtU z*L`+wX78CB9I;*#(|^NPebOMb?NMt|x9$np4(f7(wf-eG1HYla^*Z#%j+J>)G9>}z zkM$lBW;~{277nZ>wcZiGJKCc8~u(Gcc5DTv`t&+EY^wdSw4j^5*zx32XPusn9uaA3rkuB%cAd+u mj;SdHU_S|cqk+0zYyATOe0;ehi5@Zl0000 [!NOTE] клеточный шум выглядит лучше с `map.normalNoise = true` + +![image](../images/normal-cell-noise.png) + ### heightmap:resize(...) ```lua