From deed018b0165354d70f563a1f0b7a2a0cf4a0351 Mon Sep 17 00:00:00 2001 From: ProDeath21 <> Date: Sun, 8 Sep 2024 16:19:25 +0200 Subject: [PATCH] Blender Plugin 1.8.1 -fixed 'Fix Material Names' function --- .../_Release/L1960_Tools_1_8_1.zip | Bin 0 -> 30953 bytes .../L1960_Tools_1_8_1/ColorPalette_01.png | Bin 0 -> 16990 bytes .../L1960_Tools_1_8_1/ColorPalette_02.png | Bin 0 -> 15542 bytes .../L1960_Tools_1_8_1/CubeProjection.py | 94 ++++++++++ .../_Source/L1960_Tools_1_8_1/Helper.py | 174 ++++++++++++++++++ .../_Source/L1960_Tools_1_8_1/PrepareLods.py | 128 +++++++++++++ .../_Source/L1960_Tools_1_8_1/__init__.py | 122 ++++++++++++ 7 files changed, 518 insertions(+) create mode 100644 Blender/L1960_Tools/_Release/L1960_Tools_1_8_1.zip create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_01.png create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_02.png create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/CubeProjection.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/Helper.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/PrepareLods.py create mode 100644 Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/__init__.py diff --git a/Blender/L1960_Tools/_Release/L1960_Tools_1_8_1.zip b/Blender/L1960_Tools/_Release/L1960_Tools_1_8_1.zip new file mode 100644 index 0000000000000000000000000000000000000000..f794bd53c78f98af773108a133c7f1a3f638ea0a GIT binary patch literal 30953 zcmagFQ;;w`(55~1Gq!Epwr$(CZQHhO+qP}nv+s|puXazi57MbrSB_G5x|6=-rGP=8 z0RA5%aI{zde<%O{0R5krX5e6@SGKdWcA}I2FA({^B?y4Pd=GWsFmJy`Pym1sL;wJc z|0B@R#NNQsMB2{SiPqlZL~X}*ixs(-ZQpG_8Cs&8id~2yACwzkW_g+a5TrFs$2}BZ z%6U)~6*N&23)!QJXCT-5On$j8qq%2&#oH)?`;6<4&oC?yTEuna$lW-%13PZCC@Bfa z5ra0>>?&ScZ$}%Rz5j`j>P{WEL^>X$5wyfG14dFpgt+{;M7;d0b~f#4>t*rosfx5lC!=APnxSmU$S=o%}GGQiP=5W|Rns z?+km+uIkC$6BGF(hpA!rr}A#Jh^CVN=@H)LVBdKTbfYO6F*PZ--3>)Ijx0PX@U-HL zU`+VQX1B+;DF@z6gejB!FkbD3ftw2iG~W$puMU2!h&ZZ*m;m1`B?b3WlLr<5O!Ynx z>cySHUE^IeMQC(M{EDcBe)P$WlNVHe3gE$#x9+fC4;Sye`Vp#vq(xFjQ?T@0VAk{1 z)mDiTX#fg76L^#7EHN=1U9e27J#I>RrgSBN4|fGjFRUtVVFt5VO+iE0Tz2djOP*U* zdwG=;_Fehssg2kKFcG$)FmMDzA^Vy&yFMxRp<)_k8 zNK5fMNBe=D8ZwF#Wav$Z9nQY`;Ir`k@XXVp?DcMW*_L> zM&7!v!?Ctrv$J|}oPIjd|Mk9HNXi$G%;-8Nb|8i!u#jPw?QO2<#IU#BIgfOhWdzwO zg#nd3?1aSShc`H1-vgF`olh$}Oik?|mK zMFQob_pc(enBT24JdV9&j; z^L^j?3xEIqgP_+7QpoDI_Vy?_5)`}oU)0rB0gx#G7TI~wWYnuXcNSGJe3mZ86rY+W zi!6k?ZnC89_FF@-%AQMGk}8F6<>jun#?oHmw5ihjLvcM2Ufy%osrSQysGIZ-c>(zs|;P^gh)wF!)I0)u&d zz>!^P5Vp}5ub$bhdD?2HMrK6^VUy8iYkucGQectg>1^E`?T|s}qV!@Oa-hKNp&Pt} ziRM)h(NJY~o49waAmchlw;7i^)x;mekS^sgY&y%Z49eBtC)1HD#%?Z+5D;WXB_GqL zlmQ?IPEb=my>aqluz^c=H*W6JVFGapJhR$LDf}5lz~B_FL=1ne$K-2tBpRAvukmu~b`F}Q3Z2PMwUG!hfv;kbXl}*=M zL#qzm)M77_(uo6sygqYyj`aRV=-~p%HRSANQrQ0!`g8;U0M!3o==Jn0Y%QGi^!`)% z616ScBUX4HwtYYRWHeCwU}Iq9Edbhic3U=)Mg~l~PkH2E>KMb8Wb*iBQqhIJOSI=H zPNB)$?O01EgdJzyVNb+u7c~+vJ%NWKMLJ#&%Yz z3UN*)#*lStzHE;JHF?f763L+^gfDhOvoWg$LH-ON8W_I(bLU~%9_evnR$Co=-w|9# z_sU|%YjD@Rvifk8-UKQ(4=|X5d-9b@EExeZ%DPpk+kx-5I#ZXCX+(6+4>Dq6u8tIo z+>?CtP<&|S^kKnjb?s7WStZS+G}oEt@@XhPlj`J90&#)tTJ=CZu*Gq#*WCP-F3=2u z1-_vHd;4M8-RJqpt3fcG@n+O~xP<^*@F+_ZdHiIhf}tbmGwa*rqqIL93V24@A&DM; zR+%xaM>%{-`JTU>V47DP6Sm-I+^v78PKnlKmrpH8kkc&A!vA5L7^kfQsaTb zmM|YXSAuN5E@GUxY;1CXaZC? z@QCmh(^O<{*0WG|gu_r_QNQwK;xnI))#+naL>NT~D#XZD+hYKZe-=m8fLvVI9r z)Y|<6&rdAAKB#W>0ix2usXlG+A%UXw=Lq)zm}m2^B>Usz2pXo^O9nU%yjR@HhO=_f zJPKoKl?SDA0b`=n@x}fo4KXn}c>RINM?`CBLfwf?`ivF?!h8|BVulY}7AcRBZM zpxE`au%yr_YYT}rEu4*c!AC>vX8Fn#92!a9hK7(Mt#vfvMnYH#6tLkO^SuEG(P@nV zAnBF12I3Un<;7ay)0*$_u5&8R#^cmr9G{(R3&VPq?Wt_8qR)RDyVB=E)s7lhqDuu1 zwrhZRCvqQ5T{gnkOp*06IF_d+iHHAwrST`viix=A_h&Dcp>LW}8YQTBm|IKdZIC-z zt3_`;zpy+G(e}1=dctVhzj3zOnqa>G$XwYCwn)V}a2F}9EftE9V9bPt)FxZTEl8it zD&t)&0*}~6+iQ3w%OUS8FM!NrK7qll;nwMc>Co?^N$7CqRQ`dRmMraYBMKeJ!8gxt=UQe$|jy>-5zRC@a z^}8L8_iE7z7$biA0ib&N@@Zs4%nWY^T#?1RrWpHYOKUnL;Pk-H(`P4bRkRAvvxlAV zHpI5|fqU*MwhioEQPz|1RYi5P($`gYEpUgMLbJ-(b$ZHcI0pX%euF=gdL{Gx#`zo` zON_H-`p4Ns`fsCUA|!V8svT!kD46xwA@7FS*KT6{6^yl2kn(}ElXgZL!C{87Sf_y| z#-}za#D?%(KRT`Z;UnC@bIg5&?(pnkzv`BZaw3rPj#c-`Xg_<5;vN_?5l zXIThwiGJc|L_pBuASfsZNrYlFiUKwYQGR7X=pISPo;I|ex7lqjyWK1|vu_Wpog|ml z$&Ihf?;uSj-vF)Bm!6e^DWw5dZ-8vwJJWL?i;4G?Ys~08`dJ@KSPME<0Jc z;I5)3tYoBkwBZ??ee&4KF@iR-trOMe zG2d&DC@`RV4zg=|$Pv~)!*q}#nGJZ!%rE(InPX*i`^aau5QnFWlKAo4S{6J(Tb$FZfa7essauv<|meLHP{D7sO7QsTYQGi)=Uns$Zd@AhUGgrPVpof+tP z;y=jVBH+T7gC3PdTu=^=- zUNfT0fMG@oQw|lKz~4Br4?j@OH$udEuGs9-x{&T`IJzi42iQfI>+>$YR01(_YBz+n zmoK|#RD?~mNINOjySD$u z#3B>M&8iqEM-@0WcP?r^SE3!xU;YdlBz*-DN9|8tY$_U{*#gaTd)-^-Q}N;^EuD6JRDubs3k>LZueQXXk2hV;-Fmc zs39W?KO*rbj}bQk;X&V+V`)o)49c&-FmX~%hPF2@WQBSzODd(|N|BJY#%iG45dWYH z)CaSZBG0SS`H~=tT4wMRFs_mz$_?R|r9|c4`})F5m!eQ`95-HBq5?RwvG%LvC=$z@ zGdwQ%oP^G|Z)os(TyHz)*i_i-c9{8lV#|gXypH$L*R&8`hnDEDPBc@K(DfFW*y<8> z%c6IvX+I0VkomkdT7Zq~y#oP>RT2SSVzkV$@;yOJqx>f=8@QN95vYt6ODS@=?`q-f z0^bhRm4bY($$`LStxKM{^K>v4u@sHj&A%Ss9~H>Fnl9IV_5aF4K>5eI#@0Qqa+w>i zZO`Hiaj#5r7_X18aOD(>pK9li-f1;~?z|2kVC-sy>okpdeSfRDj5(z)+l9$%6R2_t zKfGpcV$b-=-QL_9&L$%TC19SU59PPl(`=g9S~+YFUndXmprFBw<=;N=#4@?@Fi3eE zNX1m1$E;BtC*g#-PSUYJ=e;yx`$}SiYr)nMwC)w6vUHTL-xW3n;rreyL7}S(YFQO~ zB}#)hSEv{^PtI!yY5Hn7wbeo;siI1Ny;fE*Uu(SUBrq2taGHp&aF6YY!|UaAySU#4 zu5@*Ahg2mg%`(j@+ST@dq?k92GDnENHYqU#X7HAHw>{8BUB(+1bc-?)Q)mJ|%-yY; zm~^=V6$~H5$>l;N=k-9o48yb=;1cX9v_1zqH0p@y_3q-_r1kRjBrOdjJh7fwEyaU8 zHHAz9!7wgFyI!m_C^N6&6Hl#~WwhLRhYB3Zf3ol^EX}%78v1YB-K9P)E67{xT4*x< ze&S+TGXuhTX{oIj<|~Oq`sb6=H7lT)if`+HUBx z@Ul?et7K)qxD}*umpKwR%Cb;D$DFCmEm)NNSDMT;L3nf!oDgT6o|n9*-b7g={j6c1 z8%~=|tV0r+LgH5Bp42M1@65n&oDI1o_}I(8?3|q(JX@k~ zw{8R8lRIyz-ROwZjRg-YX5PF!NNIlRrg?ZF+3}K}M~csOcu{PU-|2GDgH#dtv8u@+F{6e-GQ;g95YrOrP(HTiifJ37H~>WKRo1=Dai zQxEl|?RjX>-k~d}nfH@JlnQg|Y?a&@-t-^~7FBgfg>i4@f<3pqVowVW*c(m^+vb zj?v2kvgXY>J)^;?N8Kha(*}bjp;uTEl~N+bW|Ke=@n`(dB{kka*DG&~CPq6U>I@cu z$T$%h7MeLP#PoVeVjdNZS><`EPed%ai7yk3!Nv*hN**(0-lb%1oC=h^fvuI{P2Q)N zKga7{@aH;8lqu&0{&kjHP0fEN_)#&8H`rD!xT-W)swky+$I2al+uOFwFPk_z?qf(` zzhCKN)i`e|g-+2ERShb6*`N&f%cOfzH=;OAXip@*LfGcAK5<~T(o4Y?f+5{A_9Bwo zjFc3R(Qv9(x|C!|GFcwYf#3kuz;=a^zNoUW;JDF9dZD`G#h7GWuP3#uJ;L^-GHjZP zr*+uN^I1=#hR-6iq&YNO2{zsPP}Lz%`To+q{bQwAdof*Y?vm~UtQ#e2vM0}8aBnrU z`p&pjHZFZX>+;tT5)(P7$EPdI)-S#nx#)pI_x824__a-P7e;`2Xw_tTde;g7g>k28 z`P={WmpBc0%1SC$l87p&u1;5%SM3`CYX7jqox+-e;5Rp5@y%M5Q3%2WWQB-Jqw8@M zdDl93y2uURzpo!Dq#VSTixgd}11$WzVqKIgolW^0YJ}!2J`2F-4P^CqOCQS)i&-lo zGSC8-DwrbjX@PN~!C~W_Q#2rxFWHYTU=bU+x~s%RsXABI4w;K>+30)$GcB9I$x%BF zvA=F!0mVgfgC?`Ly)3Nn(IfKOp&5cHkN+%yO$b?ra0KO&j5-6)QPjn?x2E_sh#f;C zQ_qd0s;gXXmy$NJ_m86FYVdM9-{!rusbafY$K|#O@B8>Hu*i*;4^q|5;v0E`vkl)_ z>POq}0EN@YJ%I}C@yk;_co`*OGMp+Leka(jwVXj~w;IfH4cOqXScA!Ol=$r~)g5ZBQ)y=Xag(KGdy!pkq?R#Ct0TLG(=_tH z39h4)EF)ZL3@_Ts&A8K1OZD#E~!DH2^CaF%3Dp0;x)#6QXWf42bK2OY#p zzYNVi?K=!zk#VVK65sqUPfokq5jW2|9zx1PKe=&AU(7hr&=gy^Mv9Iho>%Dbq9v5 zQhXdTdi&Ck&>C(G`g(rs<*1kdC8+bU_m_SSKF6L{J7s&vG91OT!t4S`d8ZyULV4#&b6I?}0kPK`D^PR)So)Nk#H@CXSj5Ayo$Q&og;ti7U{GIqyf$Ma zrJdmN=X|vjkv-ODFQA2S1#SPjul}f8IaTLiF#ib2yq2;jruzbKAtfLIJqNf9gn6Dd zW>|v&y}Z41z)_Zj-H1Kse{`=rYp>`@3%0{rlubPCzDvBEnA$PwW9zaVW_V}R3!-ZL z=t!C0xIZFW)Fu0%(R2qHkBK1Y{TdN!g;F9*-}8%)7kX2s4W;vtH8$^tD++C~0nTh6 zA6EJ%IPxa*e>;ac8?v;9br<4Et`#D)wUPs3;xfJhde3_ma^dDCaZFjqcv`L27{5sAeG@QReTe~Ci|A`ip*&rU$o?tsWRovIN$M=X4tC>QuHplMAS ztm6v@p_ize;m%U_ycPNCfTp!3bJJDI>~dJJtLaB0c561FL^6lN>f~>KnZGs9ThX^n z9lcUr2M?kNgNg*4^7kIBEuDOosvU2qUKm6bsvYS}`4)$xdL zR>{$Xw~C#GWz)p}RJ?`S#yIa`%;;RrHRYBB_9FS71P+YKsKls36@H(;l@75W8-qxU zc8;jdN1if~-%2dR-N$8}t+7V777`65$qwmzGsSYnK#dc$dA#ZQ&|#Y0JiJ`4W2euq z{>^0-HqKAqvn%n8P?GK1#9`Mn!0kD+uHm;Hn(UB(BB==dgfcI*+g7YrKQV2%RyWBN zpyzdNdsLX!MfWwambaL;%6*O2@!6yo8)2ZMCIFB(dpW$UH33zKW))rJ&M8OmJj$xt z9XV_s<1PK#Q)&B76BgoU5Qi-kBq+ZAu!X@Ps72D%=;^pKH5A@$s^+ex{tGF_mD^l3 z91n~AaG^sY&Ykpw@RyRu6Hc4miC!u>yTFF2ZI zyD!~NPn%!>Y}Gw>>TJb?qHbq(S+S z*d5?As9)>XIwEy=o^ijVJQ&>cq_xm^Xk-oIT%(WSHA%;ltaC4ecKXmcXfMTS z*_5LqctJkpQrHZZJG>B8gL349iR^ZgWwA{uM@1lAQl7yv&-VSza8=nSrd@5LkkD#c zqWcoovJ^hsd~3d5+IBWKKVjdeCJEqh>eW&0-C4f;6^XUzU`3GOaoW+u)bD{9^^xV)t6^7nZfeN*Q3Kbs(~9(D-ZiyVsL(YhSgp>0&*iM?V8L-IJYb%m!v(eYX zbB%4@??~Gq_|B-}$M7yBq-0({J7q)EFkZ&QEsC`HgGLUDT7t>#ba&%d1)OtFsiQA9 zC5q{*3KFT8GI{RATXssAHg~VCcR@HB`A^#+!fd5~zgONyHj_Z}3!k7T-k?>*pvUEJ zmIMN{*h#t1;h?Z0$+zXJf{~ROf_D?gLS5-N6xJz6V*UcKmiwj9#235yEI~W1Xz4Cv z(2vT@tA+X((k!cRWzye6l?3cg*3+a2e#&U+?9u~e+G&np&WB~qbi?jOcB%(76^X1A z^k(Y5^QlClpjPOn6B;pcl@Duon+Rt>OYx(0Y{tBO!^;hz2SIc0{xv=Zm~q7JsoxH+ zhZC>%GBjNg=i#)Z^s}3=95m-Ou}0S^2j!3d<@^3SOv2kr|*+Pi1b~}l-hDMzg#IJK|#3RUc z@2!dm>%@?Soo!-ZRPIo$h8Cd2Bhd1}p?F5Gqp1Y))<7H>;KQ z(kCjXP=HUr2GzEj(Dr%MRodV(&fJ2E;aC< zDAsS(o1xiPExYEP@s?t`z#6R?KnwA_-GZ4oXegg*)zGYbwCziYB?P->|(>_D~hHMu(4nfl=O2*IWs__(h+tT{?fdV9)lMzQExwfoX zs!LM~1)z&ANhpC%;4U`-XHpIiqGwFFB9)O;HU%#!E1w2>IZW z@egJchWe*TQrV{x(!X|XL0zgbS5UY=hT$Kf z>QY#8Y}LG-`L7MOof`|quj&fdecJ;4QG-9zL!Fw@)1&RHx6`1yku)m5rV@wtb2nKw ziAD|qgV@K--qah!O2HB*reuZS(mO3*smV2ozB>~n?o~kb$jU6x%@=?5(+h`S5+c%ez9wZ z#J$-rEY|~mB*aS}M*9hX`#5AoqDFG4AVyX3i1N<8=`F7(cV$*ghqeF7IywKPlO*E{ z(l;m0RGtKzI$q+uXx0YMZeP7yx^s&1CxKi#cgusM=m7$V=W*wrir$a&DihNsc!n8exf$j6&AC1~*jfSzWFD%HbQ2re;m1f!zmC+X0$+}~XI&53E%@uRw z#vGWUkRl)_OY$Lg^haPwc(MUn$!=}xZ%KrTP#q)4wmy+rd~;dtgZLA6e;5dUh&1yg7r^DL{J_f#@#TQS^Ql3s2WUw=1a`+!Cjh`i zHXc0(bPOak@0?=U3{=vtN$xCE5FbZ+XDU1#j88VB-(U zvyn%)qev7Je8N$$FgL&a4uHtc(#P$Ug&+P6$tE`y9r@92(M{VO{06=Lxykt2{n`*| zptyyf(LFFLBe(lKq`BCKv2%_8{!$)5G@!Mm#e-~et#1L6oD84j4|qk?7lY)I zpeXMNI@(K^7hy*#TAaPPEBO?e3=o%87K9-L3t0yo!R~+Mhm>IO%I|3phL8uNq@X=K zCkISHMEH=I1SIsD!vSm}>RiGwJp(~`_2>E#{bp>x#^Lz~YReEm-Y4|DeJvk53_Of& zAIjD4Mf8XB(vJbgBE0d_SXSO#Ufxcwt}Lu9C@Cr|dAY}iA%q}qNc~$#NeP7b2YsR! z`%wa`0Lis%SAD+soU9_seYux|FX>W9m@1qyk^bo*l{{sZ|Fb8)FL}b!_$2*w)i|FcCg#T~%dgOWB zYjUvUdZZ@cO@Zs-fLKDq#X?5LM0qc+2*2V$XE$MwErNWv?C?y)7J|_kI~#Vp-<5Qr zzxKT^g6Fgn;bCHb!b5(B2yny0M#IEL!ouxAKNZ#YyOtER-@R)Bx^KM5{<=-V@3lk0 zYL&r1)#_i%y1#?>y3xM$Z>1wW>EDV6I?})8ceErw%kQWOK9=8+<3Bo5wBMf&;1DD( ze7i%VQT7szpm%t}wlzg1!0eyTZkur**xd4b_ehc#|Me0Od zGkwAi<@@C!Zzf-r3ud&QaNb>ZPVn?#VJwWC z8D<o&J+1y#C@GaL}YUSq~G9BG@bHu+nyP;yHETPHWVAmR0eS z9UhZG6KCG`QP`!X)l}<9ty%h8JX#GeyNInJedEgelT}|3QXO=bZ)Ued8#Zh`-RO}f z6@`MX9u#!$6x2agPO_di%pdN}%E?BDE}C9re+d)7!cVkxfVjKFzg)W`3E#Oa;rp4s z{9mf)Of7?7MM~-NX23Xd_Dnzqchn}MpHwgz2cN1)UJHy2n?g7UK~!8pdjn|^13iUs z#v#?layvsQxroQlTD#^-l%dB@|7pQehENM-bcKay%!uuNk``v;bt_?#5>bzr+FWmM zorfQK1g~|lWLgS%nN;q+_=`b>y$ErgBY0r$QZGEY$3M!OKR_Klh15JhPYBsvIakmQ z#K}j~LmK;_mb}Rz2ru-y1|_QGXb-qjWq$|$&XRdBgVwaDIypI@Ph!gM%4;Ri!Xo7w zWMGWFY-V5E^bLe^Uarh#9ci#T4Dwu-3(M&yqZ)gW0F0uNc$v);gS~z_C$6L@^AZoo zy0kF_KK{jc44U`aGQfQY?b*DAV`H;k+)p1e6QTxVX+A)f9Z@j8}pEDti_Q28gLSd?j1!jsZ$u9Y6*ZZPqg&kF2ENx z=O%0^fnP<5CGH>H+7gGnN)_?TT9VNV_Os{26Z$;vtNauA`%l=PhD%cQO+X&ru&3tJ z6_l+rTzTnFfqj158+Rf%oH!95d<*d(*@a`AjgaRUxZwC@CKH0QuyZ1t_lsBY)oF3h z@Hb|6IOjuXTROYte~KL^HmW^GP~9P3$BN0--pT*($R;q;j{zS zhM1CIXguXS4T)x{aMihEIQ}IB=cH$igEUn#xPAz0$K-uJ`Ohc@pc_SZNEYHiz7k3qFpzl0>0e_L7bn|gNCDAdIAx!aem-_jEl1q5qEVHadkrG@! zDeCEv)J-+lfkq|#jb`xw%uN9Aa>HTYVYGL@Ef(-Y*BSF5h(%KmY+tr7hX>z7udxfP zuTwy6sqhg!4Wl7LZ>aYv_91_9bXyeUsj{|F)_^B`oE%x2-5UGs^Ug%tEgWcHboDak zF&63p3FRvOvM9g*@qCbuj+>k1v2~al_HNTjzWih83`Lc82(2gx{AFI@LJiIuq%jdX z<6uq5FUjM>H_fS!iiCBJt%CT0be0UAU3fk2{$s8`-7)XaYJuWGAky^=vFCT$8M|Ex{$* zM_LPda7)VF(fNoJeuchW(qDwv`k0#o1PcC*X3OktZYE zU#ZEzHyhsUvjBCpDdal2xWxeaBHp0>gX+RjT@|+}fFr$Uf!zri8R<<-{Ve@>uHm4y z5NA(ixe?Akg$R0~;*zQO;;)8C{5KymX?RG(6ac?h!*)Y$_NIkLhcPUsb~pn&Q~{V& z;CIT(4bwipCa#NctevWs7)b~IuT)Rlmg2jZeC*W5sID*aU$9XRDyiJp};((xdZUqVNvwHR*|^-($}Tl?79)w zs?9?SWiy)=Y++~?qOqxBRL zL{llcw854(tBzMRRxl##e;hp31P7(65Z1pC6Jo8dE!kBuurTu%67)_jhaw zV|N7L5p)&#lns@AV`2b6U+ zbB=ZjwxPTxxtX3&rc0--;%C5P1V*L`a`j36IL4E5_gue9bzZefX_8$$kb=;pLD1x9Pe%*1ijm{fik63pGJauG-B*t z_A2LY+&jAM2(~L5hswXe0r}C~+#EDpm+foat1^kc7<%E(Gk^d3)S)JqF< zE@2EFjE9lPCV@baxsZSB*DRZdVp2YR*{Yz?tiF_NdVQ$}aGIk;amkbqWrJm0D0HE5 z%wtmY4wo`rQ7=8{I(V6>CSD=_<(ybWX+ z(H)7EAGa~Ke3Rq3CanP^7^(8~2bJL}WjBc{vah}DxhzSA<6X}kz_cD3&PT9hQ*+7r zA%t*;Pkq4ER*F{ZXVAZ7oDtE^5PH2n^o$TGL|Z7~q#xC}Dej)pWs6J7PWvnrM)p7A zMZ550^85{bbqGZN$KRGtSBfL4y5`7mOYi+4CHDMrED!?ae?sQ_Ginkd5aV=mMBoe_ zq0n;lRLagb>1=LEF12|6P?l*nzam7nT=V~mVFULX_+^=s}|B*V% z_5Q#!wr-e?61a9UWyzR1uJ^E#S5a;=r74KJnmQiHSxu=m4xngD z`;!2=y1b4e=zSMM)BK8>&YO-u2cN>5-28~9+3K|(sQqyQLN#LY{jJ$<`)7|N(^5j= z?Zpv7VkwMulx!+nUEU~xCo@-=~Ha8*=~kN43E8zQNW>P_rF!>AW@p8Uh4r;RfU{5>Ao|ug*ss_(`mozL zI9s`^lGMq&IeVc!ML;V$w?LP^2s#Ds2;H8uopYuB6i{W6K<`cj*suou7JbR{a$}hu z!8u6fZV@e%*aC5cjgtg|RouSJ+WXCu=EhF#mVoYtf(i=6q5|CJedtMQI^<89o+QJ0 zcq44E{_;op@CV7mYi)VVvAFI~ODqJ=)E~NB*R(TmS8Sw{NQQ^Nxb>NKNT=J~#snQe z^xTtRKW|%BHSc)j(NX?b2Rd&4F1(d)rpvGiiaJ3OA}ZoIuSd!LMvTRm~SVz zyF4FU=Z;M1BPYB$wI?TfH(gwkDwEj|h7kZoPP&TuC7Zs(DdS*Y;w5YDbX9sACDu4x z2HL4*KsuJ)AFG1HuWUIO#4m+A=cz*WdQXMy+^P>h46}iDezS+hz6rQ%#P=T5)1F6I z<#Ye$p;|qK8%j7|y@<>P6%*V@(pwRb(w6e!EIfa#y80ucDPhS_W&etj+P0>Dj zYGS!j7Uv@(#qYQ90IL=s|6D+ZWoT!<2B)R$ukH${ipGcOTkGA?ThqSh#)1|n4fh}E zhlvo3O3i)ENmg_Qi}yFd$>L7fzi-5#cl*dVIcM3M-HMqlZS4l-ulu94mK4lTVx$i? zp<-BsyZmA*8@*62hhdwACG347p|X`dtOY~<8KoKb$mqF%+C{nyd8c~xqacz5#XijF z6vqD|&~ly&JCIX83gqQa@5n)dorhbrpR}A9U49+X^ORsFk0ZW!xet8}!Lo|{R#bd4BrjIj5crmv6%lx? zKqNS%2$@v2t z{q2{l9@UX%A6iZ3fZVMynSsDuWxxwguG_fvPd{g~LdB8~Z4DBEa(+~vd>$x?k|{im zWz<`z^l(`2`5P5N>KOvqirIG|nAT?&rOWeCplt;5uOgd%l5+1La&x6-lnR|HNW0n$ zN9`ERbwLV>%rtLDmfP8vq$7P(ki^@t6%1Sky+(e8Bpt!|*oC2&%TE!I??dkFwbw~y z%~GU7Geqk!a4})(1Lm>kqW*-O8}W@nv!zTnzY`tuE{MvVjG%#R^i=eol&>V#(G?7W zz>mSh!9?b5-0@s7A7D|-Er*AtO7_D0h0&_V<$N>O80VO{qLztzqEGEvg~Vh&SZ{Bg zsq?P!YXN}2e}->4rmj$Kjhf7ab26!3o?uP#ssGG$imOo~cXyHUfGOCp5enpSVK>@M z<6vPSfugpi#)fA6GP>YK1Hnm9+Qb+h}HY zqazP@!_Ba{^uqV2Lt02htmM7cX8aH6f1n4>|DXqZsw>kyDgc01?*9w)!1(_`4{pjx znyYl=JyPHal;kYV5Q@o#%>avBg5u`{@Pc%bE%@Y$#n6-@nLq_-MB;ZnK|qk=cO=PS zyIf3er(dhnnQmu4PpjCf{}B&nc{{Ur*G+Fwa?j4U3W*Jg2L}fVmgQBKM+Z8L?eFM` z@H+Ct%6pdw2Mjr1Sec#|Tc7rWJUa!lweYfZeC)wUhgTpYLr*#G|9xQhkz@VW5&Eut zJ(~|R$wP1de*m)AQwf&A43dc0ZwO~L zm>9c{&Yv@Ohq2KgSS@&Y*;N^bpz6yTS(sW9kkU^7>63?#MRHl8aomP=M$M+c>F3AhQRB8+ zx#5SoFh@y{?0np9`btkAZ1xT9VmJZWCM{YTDC6T}@}9$FPOFMmX&V22H0>9!2~c2; zsK{NFT(^7|kgUuhHrA_1QS=aPr)G&AL4z+9Y*mGYpB1BW)@btgSTR2du&CWs0Wx zf*PlCppb*Qh0t3~U@>`3VcZ5uhqEoxqBpMgco%lZB>IJ8hZKw!WkyFeJkU21yAL$W zsp#oPj9>TjF%+;3>s-N<;X*bu1ax3hERIR@DNqA;&R!k%+5Q}hRG?<;6&V$rd5B7) zxGIg5d(Y5;!L9Z{{r-Gd9@Y@4z}-WZYMd8Ig7@r9+u0o^g3u7m%@(|UiYMthqd&>k z4lA*2rwZfMCeT}?RYAM1C>a)11>RSBi(~nP@B}{nVQf{23YRV!a9&tCfLL2tThC&r z8zeU4rtpKI)B!(%$kWH>S7d0>bu>U{f6yu@*U~duzPZHipLU4f`uw2foe*)=RM_RP zc=oY5euw=?eA#~U+Hsq@>)(oZwF|M=3P3l7>T?&TTy;D6q{X^by_&PGR-xOMOziFY z#zMeM7Ph4sIa-}Gbc3=(6rGD|ucrY%yvYfpmuB>?D`7ur%nRg~CsJ(KGz3=^*xd1PKB*0=Q-=01D$ z9;O_$WC>yY=l`nf9fL*ZwsqZM+twV`9JX!Swr$&(!?tbPwr$%wbM008o^S7UPg1E? z$&db2tE76ho}|668k=@Ny}0>~WcImp=k$m33{YB=Q&BUj1bd3fye?` z`Vkt|l|*R5T#2%>r8oPUS>)e?Wv*%wQrlU9TyAVZ0=EY&-V^uM%W`Si+d>RQ#DJ%a zmcn!uqSz8<3rBB-Y>d1-J)@EBK&Qv@^~OX{o{Fg3?2fO!lz2&!>XVzxnkJ3thd%`J z)QdD$@lO^MB`c6|gxJnEk`e%AZilEl^xVa`Swrl+&{Gk1%YJB$CvS^22?WDuOI=2^v#o5Untbmm1nURlx z`lBbry4*A@%s?e7ndo_8yORbNY)%Lzzjjt6eVFxHMM7TcLrQA|N_FVd?C3?=JBFb(fc+$pbM$6qjX94mv)F zt~|rv28sl(w5>7gId=rF5ZMqCA1oA638Ce-+70A~jOxfSs1GlbCa=quCKU0?_bv_v zILPl!yE7HPs%}3QhMCR!{X`8vY&FnI3p$}U_p6yISD0*a;{Yhb(DV5%R;p_F>S!3(#dUZ~mW1+%WD&UjeMUyRzE?0HrsDQlBv#GByZqOF!xcJ0ww1H#Ig zBczjsd4~&CWaGZn)bOi7tlr=}&F8$s)PXj&YAEbXce!=h5mVcrnsd7pJX7V4Rp zO=mn)Ysj#lY&ms(ApPAfAFw<|0gW|Zv6fNcxpJ5ZS(b4WxR{<6i8@q0v7_uw)JgYF zz`j}6#?G{941dyJP+nPeTeZ$S*;e#bRiMV@($p3`~7QC$3Q(>2p#5&p>%_zG`zvF9eo@RQ?ma9!Z!}?OP%iP-53Jh`|7@{<# zrxg z{B3cYbv+y0hl(U;W3l5Nlvf{NMIDLfrI3MsUA@@R) zmRw&SSyL8OQGM6Q;a1%uX}6EG3e$ScenB*=)E0lFpP8lk6Fx`si~a&NqKo=Mn22R6 z0_-3nqKa(!Xo{6XS1Ilkwf+2ryxuw0EiQ{7c(qE5|9siY`0kxkzL^zCqD7^QVUC}l z3QJpZrQDiDMOS>loENUGv>T(^G-8q|9#pk>DVz;S;uPbdy;9}6uN)oB zv!y~qnOBnWjzUfljV_VEcA;UGIvvwrI65BjOKYiR=r*`dq z=_hPk#Y{-ZU62mwkzr_m+iq^d`b%qqS!C!^%qw7xK2NiW-z3|RW8A=|WK$MDp6x02 z^!6yMex-C|RXStc3}cmKu(H;x-*Wcar%(!whQI23)w0s_8yyE9xH4Jo$~z3Bjm(Am=&*Im%_K@p0*BG)y=o9hpFW7 zEraSnDts&HN}my{4p{xOFcX*5pf?PQxbw}?(&=qrP!_E_iy?dds?VhoU+9IoP^fzA z>~`i@FQ*zdRI11ch#{5eJex?c10EgSRwKRBbq9Cwhq~%V>I<|{h#RnbD- z<#lgyO4ffm#fQ%8bACe`B)5$4gP~fh69ervUQPLhUolkIvm^Lbq3FcFdbps{^=cft z`SDBqkhuR3WQ|Fs)CX^gyVc^NUst1NfOJ32EB{@e_ytd|V=b9FJ#d=c?E?LHST{(t ztltyoT%+l_(}VY8VwQ$D9LvkRKPy*D1hnGzP`b!r=|rsi$fU26k4R5tWj1$svSBvD z0=1Sref+j0C9^4YvzJRv4)<^2pbx~N-nTz3f$FMPnvYlBKQ`8yW4C>AV-1pD_wMOx0X&p+(*MND7Q3JmM@%qb@`ZB(7Ir~pN0uo z*LbKe1{?sR)2YJCf~7okIB6^!TB1Z5oNQMl>wvrxRTG(8J);1Hu+->cr9mvlh2}dO zu_HZ)P8_=NKLk7%>V;RQwI5Q~qK(vKEASoyym}3v>LAgUQn;a&aC<~sQFRULQK=EkZtHech3 z;`%sgNQf)*&(*w{PRZxK>y^`{|M}qO#N@S_#juD>e>qNX#j14|(>ceMI>OedlschZ z5VLv}1Xt;g`zvFv;u@r!UGochseG9WO1#4F`j_LmZ|DQF8)ki$tni|X`h#4BJF~MS zm&{b!a9YNzGNO&!`uiWpgR1p)!Ork(`eq%R$eQ^hE+v{uiOb0Vz#8&5( zjpzW0d`wi~_n9uS$mvU`MMi*B*Kiwr_;5p)St~<+0Sq=3QPfB`Eedc^J%*8JQ@f8eMSkl~&DFFL zOL(E6nbF28(Q{@MTIaZx2|azsf}0$k7Ue8lY*Yco?7>*Kutu$eJF9$?HB+nvu&o?( zFHm^6gT7m`GT*hwO4lvO17)cWW4<(BjQpa62Y|haV8*s|&Nw_p)#5V_YOkU5yT)%!HfnCocB{p1{&G-VY}!y zmb*hLCMT{GmeY1cNd+4XBdzEqd~f$3R09co`2N6*c6#&0>e4V@EN>s{!`_@}YL#BMwdp6)N6xV?X~q%QAO&ns*}K2jY`x?>aqLVAt`m^l_r+r7 zrv1&Zt}X5%_iXJukgy-dk=Va0ZH=Qv&nY<1gQ8D9dZ58oj4Ht%wf4KRN6o0CJXk%C z07-L0s$O@C8q!77^B@R+VJF6PPe-)JzISke`H!bq>F$G>bOanfB|d3V8OV1GV)!>{ z^1cE`FK@!Z;#nqF`AYtlrl^q4*VNkA+4n3u)p}`9j=}cC633=y7VEwIwDWxHJ0e1W zFVB&RpDKI|;`x*jSEP{m4ps6jp8>S%Z{}i+?eID*YFFqlCQ?ymh~tnlkBXR0T~vg2 zHM!+^a(mS8(2KZd0uEUoSx9@a8HQgd@LO*r$_uR(*7-T8(DIAhaA_pY-k#bYS?XHem0b_62eFj6J0*Wd^?ZE`g57|b-YPp+MxZGr|tyt~s+_xP){i0dbv~DYW z!~2VDQU=L(@wYY0xhV`G_7z->)rS}BL`I3YFV~3YV`&4UfSq@-%(J%m)hPLObGA&5 z)?fx<%n0#Sz-mUPm2`zUEN!e^%-xn~AHi;~gBN1H5XkfRYO^$Y5wt|YnNDcaZ%Z?d zN;FFPgI4 zuzt6&+oJWH!QSp3uBP+4esiq2y=^dMI0saZZiE1p^&Kax*Z zXZY$=?G;(-YKK8}+BZ(ZS}{IEtTy(BLpe(_y-*+5MnqZROzamG&tl$ZNcjPGo-p4N zIvN~GoA#Mw$RC4m&LPfrgS&rJ<(aE(hg{q>%q~4drkoIG7-;b8?MptFrDv*kJ0t-G zKH{m53trSv7%5kKxS1_|cI1^uNAY*_FCX4Lgeawvw6De{PBg|tZ6&*=P`@_imd5)c z#F6wlQ#TyE_&~=>8s?UyL!C{zaNGyl??F*%-=W)rV>DcL8>srJl4eKUohs<~5e@RV(qioyF32k`#( z1#tJ@@iXQf6Ijn`M+|QM*4eOkW8nyp)b_8~6zTr>+lnee%GMR5dbaXR@r1GwJ0oS9 z`EKxLm`yOaT(aM7;~E3EG6@`=iv^-XcBfmwP(r08{-o+Su2YJVv9>k0>hy4Y@_Q}b zXxkvtTb8vX88V55K?;XvovpWe=jT-`MyQ|l;?jf$7|LKUI7-&t$$A6?{joc8HHpg5 zhe48te`S8ItlIm6;&oz~AOm8|c#aL3#-t1OQvz4V%K%^kw;p%6pgzjfGI%Fm{)f;@;n=ppLEv6N7X^S;-hK0l9K3{YHVDz_U=Mo8rBa}nE z*HNwJlt?@)x@UWq=bMa_M$Eq*Yv#$S=)~0ZTI@~6& z0Df3JC{|yd>7D8Nns4ZE!$b+X30;tSRIeWOjjV_&?|ArD|81X~0I0XzV3$5FV>{-Q z;l-D>a&`fWi0XlHMe^%H6Uft^B!qrl%3Yeq+89!h)Gr`##t-z`2P)6=Iktt{INNT= zj?}7)TDqx@qT`T-e*Xc@j2^lec3-?EsXrq%wNocyq3%&+{m^MO@v-Q<6(CfbT2zIB5ZkBQ=#9jOn0QsdWUbsJcIXE~WFDp^kiSW0G{A`TlJyq%A# zjQbgPD2rbgyl=Fvb^Cp~Vp2sB*t^@&mUHht$d>CIP3J*wHr4MX%d&7+XlBh0oj7lC zqeG)$wr3d>uH9()FqcloCjQYM3BvPbGHfRYxz z3N3nGgHNM0KB*jp^WUhKFh_z~g=wY~V&VB|nX_}=u9Lp(X}XrZ`M%Pcy=(;^AE5>dw`Bm5h*%cZ+Qn-ZgIeNsTN};iEKb{0v8|n?p_vNMq zKW{1=Z<1TxX8=BrVq1>O*;tlQmrZYzc6{im9rKnF&y{|lniH#0R%j z8`CF!f|;e7jc#b3O&`kPUaHOjR*(Z-KuJqyj?Eujd7k`lx4sVImzcS^I>nKwHgj-I zrKVvGUPIi3tn4%92$B)skd~+$7X!0lOd@PQGCtOJanOKxe%dQ=@kz0)Us<(dYK3as|GMr(7$Ws2E z1d*BcCPpBb;ZaxvO(jk-} zfX_|=p6qP{Y`)XhSDW!VP@9|R7n#0wGq7+#U&>rCcb+J;`+&Di!N7w;LVz|le!SOw zZe{MCUk|ttg1l@Xx$yk0zqtDlm~9~@BTr(9F8h49;6**!za2*KVEkGIHfhxm(HRE6 zWsbOE$Vm^$ukpn3Pak zea}-GT){clCcfUGlF$;9{KZBgCL-1%p(P{4Hy|h0CnO*w*Tf~l_=&Gbgo=!Q2qb_* zZtH{n33-LJ<%BY64_C)V!z4EZ^7^0a6&U&x@?H4!HOb{fFsLC>lj>9A5}HvPegYx1 zWlNxy*4w}5%5(BBe+!NA6_E@Y3Fq}AA<04Ni>p(p>#K`X$m`2%s#8E?B8u%wv<&Y z*dkBs_9iue{uG1gU%=L#e0Px47SK!rI@k{Y`pUY#>&8szpaI3lBPO9F18xKcllUjd z>1#sPHr5g=X=tH%?e%0;ZS6?%w+eQ7S#cA(;?Qz+-5vw6_H^!bzIoEU{q*|w-5fx? zVN%H3i|fln>f4J8+C#G2Q?OG&+VtK`1AU)XaqapJ3gX?ui|?A+0Dfj`(K?{+){LE# zz5IOK>5}{`zt$x9T7IgI^)P=|9PVKKDBs&g|L`V#{!|2A+FrqdxX1&(X)!UrEIO9b zVi6K?R(Y1Yo$&r_FP?O_=f?FfO(D3sDM|D4zE)kkKcfp7{DzIgx|=sP5kaG=aWg(faJ2-zKe?;&ahTSOHevXU8qp+4@ zQYmIuUjl?Z@6f2AA+QHyXet1t4mLZKr8FV=Py#H>OgxfzcsmQ1YvHt27`}QMIMBh8m@ayB( z6WPMeBD=(K_GH}qE*w>BI?Q@y?(Zowhy#IbZhj?qzKmwmy;Vbsd7FN+gG?Rk_7j~c zPU*^zUltiWnD(v4@$4BO_Nh}l+!JRHZ}OW7YP8hUR{|;Zzm7Wm0Iuzm86@Du+&8&uECSV-FX3tcTuIyyT$hGEB`0jDx+{6SJ|yNylfQfrT0*wvX! zbqRdS;?mz1d&vHB@m>9!=n>2CfIEt++1}q?b}j|5ILa@$4TrG=vkYhSd?FyrWBp#w zg~I|wINpAA?~R3w1yhZ)Wd=_LO==rfY9FAZ(1}uidjGG&c#%wz7hRWGr4(`H+2vxF z22CkKSKiW^vh`+t}wf4`*?6)GoS0Haj6iS)ApZwM#UEiPC`ZNeB{nAKw`$|4{!}(1g5i@l`5Yj4O z7}j&)9a-yKq|z!HlB}4`3|0TF5d~%-uUUoCHUX^_OWx#msmHQ@yB(;+BRyw2QCxS3 zG3K8sPb&3Pn2e%%q$Kt4heKccZ?_+$4-(ZGN;U}w$+3tBI#+oJQCL(r2=ILxFmnH< z)ysOwu23f#uz(Ussb{m*XX?xWo;ylny5ehfYVnDhVK7iCfco)62x}hT3ak&W^BmQk zbweKaLrLbY5+HE>1H0jYjhe3jLqzJ*H`*i`6ShrJ zFlhq=2_cItEDGi_k>RX3EGwfWo{xsJ4Z#|TK|G<2m7Kq+!S1oQLY0$W;XKcNP>^29 ztqkg@X0%4?FrrklE1_`?16c-KijJm9Izp45yxIZoL!)Y2VB_a&?8{-*Ip1;9YO^|a_Fjw7kN6w`(t0yJA))8S!QUe;2J37$JOS^pq|iC4GovhPxl+I zeHCzDJp#-C0JqW`&+=i|7*7DbDb?|l7(EAW9CN2EMgIy80}Esf|G7Zfcl^UWE95`z{Ev{|Of9v=6k@gV>kB@{2#>-6I5%i55m;M1MR<6wm4jJu_`j%LJ0UBlfTJN!{xf(c8rptHLH zttiTtY{E&5bp*6yxQX(yb#U_s87#)F*|Y{GEyloE%7XgID{~zSK%Awz`Ac7 z4W}G94Ym1Eedqfud}%Vqhbo>H*s@krvODZkNjF)+-XTtu9nAH9^^$h{n2)Lk#c9~v zTk`)tayI`qb)QI~b-=5?&R^~>&7uy$(Z#%sGJ#w$==%Fz%;@TElHGOM#m$@4UFH|y zC0kvp3B8qR2pf6D>91)_rHCnRWX$UAC(NlVN&1(F@f|v?wOR35^mu_N#Tsd8bc6$I z1H7Lxvtx>^11x#aHWV{~ZCu1Lpl$iz9B%>L=W37Z%+RZ1JSYoIq*on5ECWj}MgDqN zI2tn@mH<@N=9~*w{(Va?h=nR2j^J^!?hBUJ2GGBB3j09c)9_u21+z17ceG8hsw9hdPQG}9g*!E@l9%7SN=?3 zp&^rmJNYi!jAX!y5GDwqc%n=*QQNhKTofb(CGiw)@omSYNSVbbsz;P%e`ezN;3<)!NB>kL=kIG2qV+A!4Gmj>TVsR43@vr)WGY!J0ifzM{Hte(TqJB)n9`5iGmQ*XNPcg~b?`M%fPKiR$t{sIdLM7Tv% z#G~U(o-^nLz>BkO9=J;6CH$)=J(^iRLfVrUFz_XJ_DA$YroAm7&V8u~U;Nydqr?RY z>UdgjoGo(5JE#AA!4hpYE{Q!Y0VL2lp0KVShn4Mg-z-6axBzA6Q*_+FcWlYPn zQ>$%0jwSg(|!(~{|#9}DSSZh>tr}M}G7OQnP*M*j! zN9?}qK&mh-0WARcYJ~mO0W0=Vst0|n0Q)X8Xfj0w`9*ZJ!2ATBLED9KRIsX-wV-W2 z4KcDE0kFm;Nv@25KTglez%dsLJZ-jJwX-`cVv_vw=qC>$cIP_@Bd3cGA*~#SGKxQn zNx4rxO8iRbtqr4dm87W3%D3Sy*qp{85?!STEE}{Dt6oN~Jt_h;>Yt3L8!%?VM zY3!BoeVj5cMvx}x2cHS49487GbJv>Q4Gbm8BV}Ta0h8+PMEE-u$c{N2?06ZHnTZq1 z?fNJpI$viYy`|=MxZN-L{ZGhywR2d0dCu36b-?2g>jTQl@G+DV;)6vd(UVy+%9RZ> z%GA@;0>gQzN!m{dV#&RFN|?7?dS{Ipm2PP+7RBupjN_}V>sHY^w7;DrM!~g3&>kzB zV%<(>cu{faNf%|Z!qL9oq(iLoXe(=+0Ff{j4tn{tbg>K(h@I?qdUZ7Qji{>yTI=UF zIWbL_v7KCu{=OMlnzS-6_@jJkRL(%uSYPQy(X82P390RnxfJ$9$mz`U?x;O3TYmE> zswZM^a#nsA(ohg%3gJR2yN-vf-KeJT5O1hEaddtFWX}O1ikk{%GktzcBpuB^uMSMH zF7=u}$PI}WFUdSB^=+OzMq#aIhj@=b&96QsxoY-Dd0!3}@6u`iwq)BsXOUx7&19nH z`f$M96)Le-TznoSKDa)$r{6Qkshr0Z-+=kAAP}M$Gz5%{$md&!bnw<1BZBydT2&uE7$MxKaSec# zZo2&{qbUg2WN*l-*urHs5<$zw;u3)oi&smWcca%BZcsIdSO=H#XD0%*hQkDeBVh-* zQf*&hNlMHQGB{L91BD6x>?QTMBv&9(HzhJ;hlG41!|vLJOz~>&QE3CV)S+QIG_|Er zrPWQ5OE;K}I9d2;R9BJ3q)>Mwh5;wN4?H7fDUUD-7|$dSbs#N!<%u1teVYIc@2?wWQ^H7*rSdAQ@- zo<7b+Tzs>u3zl82BadsNt6RBu@oTkcE{Cc9uiiCEUbl;x>_fs(jXs(?B!k}hnIH2x zxdnL|6(59mUx5GnYp_|Iof?6|GDIc_0KgU;007Sa(nEJPFqU($wJp)SZ zVr{!Gg76(P=$qP(PgiB{*F2}K$wMG;&4w68Fs3Xps&PruYHBs1laRacRq-A0T|Zs9 z;-~8-?_5FNf04Fknw{l7e9Zwv1Q=_gZH+eT?rxoW4z{t3_0gh=%D6bZ_ABHz z>mHQGO}g_NLyIf%?r%?&t4N^c?X2)uOVXMU38@*+9H|FZ)Pnf22axjNHm;hNQmiY3 zL7Y+xW0@9nPwJSxYThriXng8pHnfef-g;JOn_!I0jeb}!T__0gFq%EWO$R_z=6cHd5GnqM49zJifubC#U{|Y5Y;1_npk?^-Mh9#(w?>wlG%a!;iSf9<6T|iyX=bBB&!d} z4mq4EwYi7;QHto?I`?&Hn@Z115{L*}{+$SG+12nQ+MaRZ%W26@cqHg`&`g%ol9eI; zQ%WkH6Dny(#0bI@&z~r8%3KLjig$)Qj(Il#%Z~1|MAZRwDsZGJumMShimf*Y(tN-I|v%(NOZxD;)>8ydJH^m-5WbRlA8yrnHA1*g{v$?GK-VGn^-WmVk~!H zO7rOKPR^IT4`ljHh!kEp>GPyYlnk1Hi4oB=Mn%h7aihQ%V!txFgiw?naoMitkK%(R zgxj4p=*7#f|A1#@Q37n{QJIq?;u;W9@87;Iwi@oaCrt{n<;RK6d`)vehA(ByqI^DD zkx*;EGk^K_6m6_;r~ZkMI8!JR%DQc>p=#mygrpI6b+`7qmJtb@16Rir&jSKBh&JPA z;javHS0;)^(Z9;&Vfd>69OLn|M@NxxJ}uIWOGw0E`YP08d{@+?-NVK_Z&6bDCkq9b z5sez@u7XPCz3+78`~e8@BQQMjBC_ptY|o2%&qAWYA6ux7|BuxjTALsa4VwsJEu{XL zNZsomlF2t4OF0VS`Lhfh>16Dwot;x^Mv4$_LU=AWkA9As@k8z@eTDeNI+ya=VVgP? zhpFo#A4hneJ0S$Jroc>=?hhV-#t$}MB!E^guQ;|-ZLl~9bD8SfH|d}1-&Km{5wW@J zT`7JEgkP^lTe8DB?_J=T<3V+aoVh_1QNUSNgX+_kI_D%5gc4#&D8WY|9U--sdIt-= zT|BOajap1rXe~!A40V4XwMCGt8dz zy^Si-ju3f^xfWqfCD-Lt#zjpjjnp`qMW?xCLh1y|L?4J;ZLsK6wtt|4gmlV zf)4=jFGIC|c&v#TTiF>q{GH93)Gur{Mp3_i^WE4EU06)^h9Ax>1A|;>-OoI*{MIHfsg1VWbywY~v_J$+oV~|9E z%xY-ZRi9O@)a<~F%kuges}r|xj5TV3H{Z~sUlZ-;q>;HMp ziz7bmYsKiopBc3r28fbPTqwIsjW^!GqXoE`l}2VF0gD7|%@ez&9qSs*353=PZGn(M z_@jI>YQ#TARLMLn*$CYq-86rRUPy9xGAV~a8Aumj3t`x+8Fk~|1=cOM9Y+gAt(HdK z`JJ@mkjv~MDX;zrv?Y`bvj^W6t5cfkN9dmJI8r*RB()|aNyr%9)g!%Ql(ZikpSbFE z8clXn+%*FD7}MgNY6`a|iTL6{(nn8fPE8(gGn{yLIdIyD*M^&I^7K_;Eqi3^=;|)B zuZEqBWY2zjVmRa(!MewQqInipf4u(LG*m+)-iy>=`tts;qI!9?{nn~FpXl4%s@M9( z^>cSx4s>M{d>tJy^aKuvT9m7h`%?$hg}wY4N379}Lh&}^I^_dQR88=FTnITkw7 z&-jSkP4`VhB%hyB3cr2lL+Znf` z#B8OVcaAZ48*8Dr?A)(Eg|L3@D@3qBN2Rg>7F4;oL&}^IET>mEX)c7;7}?$6oi{9+ zedNiINN9kk&{2eZQD=LLs=GK?e%*!ilSGf^J7J1-#C`OcD7RyOn@eqR&m@}_QTm~= ztz!r2k4J1uDnFT`x0H7ap;0m~iQOc0I>hCc$hfDwy#{)VlDxiNn1|&*pIGPnt1!7l zEx4^5P3nT=`NnAbt-LEbb9q{xL{9L3|7aq0WEo;qWyZ%&%YeiU0o3a?@Ye8tEQv}m3X<&L((fA~ntPnrE zUehzQ`=%zbYC^vfBcz$pMmN3vc@|r91@7a+lpT5;_`AEX(4}n7h%lu*;`9&k*v&QN zL@c8&TAB`u)&+}-9?Dv_7Da6q_6pjO*ROL4RpUqr+$j@p5{lmn+%tu|fcz(;i3rC; ziO>|()6-b-SKFzpFV!^8CO-Xp|TYD_EVCz3n z)`3sSIlCImG6+w_v~@ z`@@xHmfSl61u5>UdH1p`Bu7asNY5WLOy_X|og#VT))n}FGIPKQ9^Uy%wue8~?rCQP z3tlXJ$i5Ptq>(*fab01$fKy(6LF!;U?5e7k@L!>q2jA6(FBg2p-SJ?-!m7qM4ObL5 z@(Xwu;kC7tbtHrjB(Gc)xVfv{>ru91-+qKU=xf7@(nV&j<6A$2yyoLf;qD#8QhH(7 zw4Su1YB49CbQ8h}x7aT`y1+$WYwo|sjhRJ}F%?OWlruxjY=*r^7-{=zYVIX=IKry) zTpIT#t@J=z!T25_OMm(fPnDH=Odn3YQz78$Kqk~lZA5HX)(c0U|=-MLtW~$_4%UT>E&PgFi=62B}KxcoWu31 z4CyEGvxFXmbHYy%_xU3}puYI5dw4&ICQ97z{D_4KoHZP{?pQGinveRYT==>ZUCMwk zEA-d$n4l3eE=uQ16fe(B+&DqSxbnD)JdS5N%Csn~quz|C0QGEWLH#KXGR*G~#uBCi zz-g*pLO&d;NodC^v`7cv7Mr2cd?7ej*iH?;h9za$scG3n{i`ey7IK`?Qy(zv+$g9f z_uU%!3l3S>z;K+EGrg{U{p!+QamGu1(n?&UjB|nmm6I*1uz6=(Vf~IP@qqEtn~M`q z_VPeiq+uH%vsX7l|HgJ9vO&>fvI;X<8as|R3n2731Ms%z8^Gaqpq)h8*HsVXL)a&h zW`=Cz_~-8e3lIn&;QwX#O8mDR`PYW<@9@vk1PXxQ zzb*m-U;qr9N^upst^@w>`0v60Una5tJ@~)Iq4<0JqwbOWAC|HIM1@GIGM)IW1LkYN zlDq+K0E#jHJN^^(pEia6L?MCw57a+Q3;)TPU<7Ua*ZBV(XUqSS^Pd)7|K#}mbfo=0A)0*FF31h)fLgU%AOig8sed007{B_d_56fE(w3o&6tEP5p8J literal 0 HcmV?d00001 diff --git a/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_01.png b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_01.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ac18544e1ec26f5b66b2f11e06eef40422f6e3 GIT binary patch literal 16990 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 Opr)*)RD9Pu`2PUmEl~IX literal 0 HcmV?d00001 diff --git a/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_02.png b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/ColorPalette_02.png new file mode 100644 index 0000000000000000000000000000000000000000..68a926be528a08255b88e5290bbe12b5b98e9fe9 GIT binary patch literal 15542 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 1: + for uv_layer in reversed(arr_layers): + arr_layers.remove(uv_layer) + arr_layers.new(name = 'MLOD') + + + texture_filepath = os.path.join(L1960_path, colorpalettes[1]) + + if not len(obj.data.materials) == 0: + obj.data.materials.clear() + + palette_enum_selection = context.scene.color_palettes.mlod_enum_selection + mlod_material_name = "MLOD_" + palette_enum_selection[:-4] + + if not bpy.data.materials.get(mlod_material_name): + material = bpy.data.materials.new(name=mlod_material_name) + material.use_nodes = True + bsdf_node = material.node_tree.nodes["Principled BSDF"] + texImage = material.node_tree.nodes.new('ShaderNodeTexImage') + texImage.image = bpy.data.images.get(palette_enum_selection) + + material.node_tree.links.new(bsdf_node.inputs['Base Color'], texImage.outputs['Color']) + + obj.data.materials.append(bpy.data.materials.get(mlod_material_name)) + + + self.report({'INFO'}, 'Mesh configured like MLOD') + return {"FINISHED"} + + def import_palettes_textures(self): + for image_name in colorpalettes: + texture_name = image_name.split(".")[0] + if texture_name not in bpy.data.textures: + texture = bpy.data.textures.new(name=texture_name, type='IMAGE') + else: + texture = bpy.data.textures.get(texture_name) + if image_name not in bpy.data.images: + image = bpy.data.images.load(os.path.join(L1960_path, image_name)) + else: + image = bpy.data.images.get(image_name) + texture.image = image + +### PREPARE LODS ### + +class MESH_OT_prepare_lods_decimate(bpy.types.Operator): + """Copy current Mesh and apply decimate Modifier""" + + bl_idname = "mesh.prepare_lods_decimate" + bl_label = "Copy current Mesh and apply decimate Modifier" + bl_options = {"REGISTER", "UNDO"} + + def execute(self, context): + + #Selected Mesh + obj = bpy.context.active_object + + if obj not in bpy.context.selected_objects or obj.type != "MESH": + self.report({'WARNING'}, 'Select a Mesh to continue') + return {"CANCELLED"} + + if not obj.name[:-1].endswith('LOD'): + obj.name = obj.name + '_LOD0' + + LODnumber = context.scene.lod_slider #Get from Slider + startLODcount = int(obj.name[-1]) + endLODcount = startLODcount + LODnumber + + for i in range (startLODcount + 1, endLODcount): + new_obj = obj.copy() + new_obj.data = obj.data.copy() + new_obj.name = obj.name[:-1] + str(i) + bpy.context.collection.objects.link(new_obj) + + for t in range (startLODcount, i): + newModifierName = 'LOD_Decimate_' + str(t) + new_obj.modifiers.new(type='DECIMATE', name=newModifierName) + mod = new_obj.modifiers[newModifierName] + mod.ratio = 0.49 + mod.use_collapse_triangulate = True + + self.report({'INFO'}, 'LOD´s created') + return {"FINISHED"} \ No newline at end of file diff --git a/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/__init__.py b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/__init__.py new file mode 100644 index 0000000..abc6aaf --- /dev/null +++ b/Blender/L1960_Tools/_Source/L1960_Tools_1_8_1/__init__.py @@ -0,0 +1,122 @@ +bl_info = { + "name": "L1960 Tools", + "author": "Prodeath21", + "version": (1, 8, 1), + "blender": (2, 80, 0), + "location": "3D Viewport > Sidebar > 1960Life category", + "description": "Set´s up the Projection-Modifier automatically and add´s in the Emptys if not allready created.", + "category": "Object", +} + +# ---------------------------------------------- +# Import modules +# ---------------------------------------------- +if "bpy" in locals(): + import imp + imp.reload(CubeProjection) + imp.reload(Helper) + imp.reload(PrepareLods) + print("L1960 Tools: Reloaded multifiles") +else: + from . import CubeProjection + from . import Helper + from . import PrepareLods + +import bpy + +from . CubeProjection import MESH_OT_add_auto_cube_projection, MESH_OT_add_modifier_to_mesh +from . Helper import MESH_OT_fix_material_names, MESH_OT_group_objects_in_collections, MESH_OT_fix_naming_conventions, MESH_OT_generate_empty_for_mesh +from . PrepareLods import MESH_OT_prepare_lods_decimate, MESH_OT_set_up_mlod, EnumColorPalettes + +class L1960_PT_tools(bpy.types.Panel): + pass + #where to add the panel + bl_space_type = "VIEW_3D" + bl_region_type = "UI" + + #add labels + bl_label = "1960-Life Tools" + bl_category = "1960-Life" + + def draw(self, context): + """define the layout of the panel""" + box = self.layout.box() + # UV-Project helper + box.label(text="UV-Projection") + row = box.row() + row.operator("mesh.add_auto_cube_projection", text="Set up Projectors") + row = box.row() + row.operator("mesh.add_modifier_to_mesh", text="Add Modifier to Mesh") + self.layout.separator() + # Helpers + box = self.layout.box() + box.label(text="Various Helper") + row = box.row() + row.operator("mesh.fix_material_names", text="Fix Material Name´s") + row = box.row() + row.operator("mesh.group_objects_in_collections", text="Group to Collections") + row = box.row() + row.operator("mesh.fix_naming_convention", text="Fix Naming Convention") + row = box.row() + row.operator("mesh.generate_empty_for_mesh", text="Generate Empty") + self.layout.separator() + # Generate LODs + box = self.layout.box() + box.label(text="LOD´s") + row = box.row() + row.operator("mesh.prepare_lods_decimate", text="Create LOD´s") + box.prop(context.scene, "lod_slider", text="Amount") + box = self.layout.box() + box.prop(context.scene.color_palettes, "mlod_enum_selection", expand=True) + row = box.row() + row.operator("mesh.set_up_mlod", text="Set up MLOD") + self.layout.separator() + ############################### + # Enfusion Blender Tools Linked + box = self.layout.box() + box.label(text="EBT Linked") + row = box.row() + row.operator("view3d.ebt_sort", text="Sort Objects") + # colliders setup is allowed in both OBJECT and EDIT mode + row = box.row() + row.operator("view3d.ebt_colliders_setup", text=" Colliders Setup") + row = box.row() + # Light Setup + row.operator("view3d.ebt_setup_light", text=" Light Setup") + row = box.row() + col = row.column(align=True) + # Update Materials + col.operator("scene.ebt_update_enf_materials",) + row = box.row() + col = row.column(align=True) + + +#register the panel with blender +modules = [ L1960_PT_tools, + MESH_OT_add_auto_cube_projection, + MESH_OT_add_modifier_to_mesh, + MESH_OT_fix_material_names, + MESH_OT_group_objects_in_collections, + MESH_OT_fix_naming_conventions, + MESH_OT_generate_empty_for_mesh, + MESH_OT_prepare_lods_decimate, + MESH_OT_set_up_mlod, + EnumColorPalettes +] + +def register(): + for mod in modules: + bpy.utils.register_class(mod) + + bpy.types.Scene.lod_slider = bpy.props.IntProperty(name="LOD Number", default=3, min=0, max=10) + bpy.types.Scene.color_palettes = bpy.props.PointerProperty(type=EnumColorPalettes) + +def unregister(): + for mod in modules: + bpy.utils.unregister_class(mod) + + del bpy.types.Scene.lod_slider + del bpy.types.Scene.color_palettes + +if __name__== "__main__": + register() \ No newline at end of file