From eec6d0927eb3def76151e552bc9d719852830a36 Mon Sep 17 00:00:00 2001 From: Unity Technologies <@unity.com> Date: Thu, 28 Feb 2019 00:00:00 +0100 Subject: [PATCH] com.unity.textmeshpro@1.4.0-preview.3a ## [1.4.0-preview.3a] - 2019-02-28 ### Changes - Improved performance of the Project Files GUID Remapping Tool. - Fixed an issue with the TMP_FontAsset.TryAddCharacters() functions which was resulting in an error when added characters exceeded the capacity of the atlas texture. - Updated TMP_FontAsset.TryAddCharacters functions to add new overloads returning list of characters that could not be added. - Added function in OnEnable of FontAsset Editor's to clean up Fallback list to remove any null / empty entries. - Added support for Stereo rendering to the TMP Distance Field and Mobile Distance Field shaders. --- CHANGELOG.md | 8 + .../TMP Essential Resources.unitypackage | Bin 1278401 -> 1277940 bytes Scripts/Editor/TMP_FontAssetEditor.cs | 33 +- Scripts/Editor/TMP_PackageUtilities.cs | 291 ++++++++++-------- Scripts/Runtime/TMP_FontAsset.cs | 77 ++++- package.json | 4 +- 6 files changed, 268 insertions(+), 145 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d20a38..b37dec1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ # Changelog These are the release notes for the TextMesh Pro UPM package which was first introduced with Unity 2018.1. Please see the following link for the Release Notes for prior versions of TextMesh Pro. http://digitalnativestudios.com/forum/index.php?topic=1363.0 +## [1.4.0-preview.3a] - 2019-02-28 +### Changes +- Improved performance of the Project Files GUID Remapping Tool. +- Fixed an issue with the TMP_FontAsset.TryAddCharacters() functions which was resulting in an error when added characters exceeded the capacity of the atlas texture. +- Updated TMP_FontAsset.TryAddCharacters functions to add new overloads returning list of characters that could not be added. +- Added function in OnEnable of FontAsset Editor's to clean up Fallback list to remove any null / empty entries. +- Added support for Stereo rendering to the TMP Distance Field and Mobile Distance Field shaders. + ## [1.4.0-preview.2a] - 2019-02-14 ### Changes - Fixed an issue with SDF Scale handling where the text object would not render correctly after the object scale had been set to zero. diff --git a/Package Resources/TMP Essential Resources.unitypackage b/Package Resources/TMP Essential Resources.unitypackage index 1643503d4f85e6e8e2cca504d2e3f7121b514d60..f813931d2faaee6d58016db117f0e50ec90fb22e 100644 GIT binary patch delta 1243717 zcmV(pK=8l8gHH7SO$Q%~2nd^Zc##K}4JDw6SOONqgF<7_L@cqZ)CPYAp5XuM|KD+G zAWM%8j~)L($oZcojm`9DQE6;=WQBv~A0bPb%?0uN|N8H^&~7Am3?A)4rg#vrZbTfx z%>&~>^zfjeP&79;vfID^{SOv-|3gHh{{Q~x-*Nq^{{O}Af56x{G?4)GkHVu-Xf&`C zuK&kl{_p?)9hZ!`wyu8?S{WxI)6!boARM)Cp$QPTgcxHmG!ciM0wV*mNiYnCgqZ>(5b%FfV893`!>}kUc?yhx zp3)!4NC;D47%XlIj5u{3;KU6-1x6%Jff3Lo>=YPrDlY^QX37{u3~?%q2x^mHBs3a5 z1xCP3mJ1q#A&@4+@B{*OGK@^bO_m=91B5UchDYJ2!f-$4F%BaUCiXWvFm9rpN0}y1 zfN@w9kjJn@gn@t2au2vjSPX2*WO9J10yM}HHeh%#fu)j1D%wtKw6rt1$x@v2533x3$T7yi&5%FXk4nxwx=;+{3I$D~#I%Ew3UdyTSy20=Mp;)Z=NrE_pW+`K*V{VSHTIpGJU8w**STla zaZNK6>WF{Rnp@S)R%wnZZ@rIrd38;jE?RWp+Zy?PRD9VV;X9V}Sj{)vd3D-Xl{K9h zkA#bz?gxXc8#50k29z6#=9r2uVto5>BeAtrvsN;$bb(Zi=|de+=P=2G9ju(42d`E= ze5{`1ydvGH&(p2_($NJbZW7BR`<8me(|hZWsu6$L-x@v}Qywjl+9dHpqq0Op%2zqi z)w{*;@NKhr(dkF2)zZN|TRTrO9(eXNv;_{iR6L`t_-?D#k-B_No#nk(78z?7tV&Rr zX0JFs@l&2y+m_W{0hctA+^eT?^2`26f9d*k4hkhFx8(YET@DU~a^Esod+1OT@3ape z=8Au2b@D__pK;v6{09FCb%PAP6}OAbBlc4CcG^LSf)-KA0%$Rh*{d(kELu1>+7#0F zXioCvIVBVEm^TX>8F9Q~H*NMU-fTg_%#TaN#jhV3&RO5=wl}$`d+vh^k@t?0OK!-h zw!G3ZJF{u~P?`H5i$CKvd9xA|79>d6ODum>zD)6MmYpk)^7M0a^=fu)c5|nEFOn)c z0X3%-71gAay55p5k}Wy~)ur4isx2zLQ!HHs6+JF$PN{3&c_8JQ_>}`MBG=q5N^uZ6 zB_{s(kHu?*NreMn2iKkty?p$$Qd8fCuPnwb|L1h|CmFNW%{!OE!`rfqhj%)UaQuIZ zFp>1Y|S!}sC!?;Z>RR4 zC6=cK;nZ|nsTU|)c=&mQTxY)g)g*sVxCz0F!tj)(F_dhqffYXaO=GrYCGmrv=hj zKr|jS@U|FaO^5*LEE*L#IE9TdmTKS{=MX>6p$3bi$qaG=M~x72gQx@k6Ul$zzcUP8 z#?st>+o}b=r~qfPY#`AQkER8_)A%j63D6qlx2@*fm)u~=1f-|YmkOh%??Oc_N%V*uO!ZXAReEohOQ)IKlD_ ztiT&GA2tovG=WW#<3}G@O9MhHqhK?0?%D*U2?QdY#z@Tyc^?BX88oi6#w`=3Qn+MH zKQ7|L@kkTKV^g^{jz)hGz`FI*ry(CvKp^1&u5P4B3B-NGlXNP3^F34_# zI}og31K?ulR1Jow&&Ud(`PxF@jGQZjN!AD3kIssSMNO0fd0c-AQ~mXiO$7=w?uGSt z#U5~CHmc9v_F_;WjoBnvwmLLdNoQY)j>TCio1kFtvongPdu3>BPrFm?O{1S@ZB0yUYsgxsxwNt=Z*E1<2h=p7%a;dV@|-N#BYl5PalhAt&6&dtTL!6@|g~TiW$fs9QbcUUgbx zzpHVqZIm7yvbudSqoVJ0_m$N2p-dYkB^B1^%C5}<%V;J>`Kv7C`8Ur#bJ)dIEFmv~ z9u+)YSHZfb-F4Zg&N~D1!xyTaM(?=N7%fQ=?h)*H5Z-_7R+K+WIyu>N*&+Si`x>V$ zTiK@Rj=uCvydBlx`R#cN&9>$i-;F!scXvk`$SykJi0uw`Dz^68S=IMatoK4D9M~RX zTHtM$Wa7Isrheh>2d?Ylx|R;-iJLTU{)SrW@1q$){(R?_X4VU1wFmLT$y+e9X3^W@0lNd_z+=c%rQgo$Fe&a}N!_3TTK| z<9)F4;Ctf)_N`;QT3g@ES~~q*g!H4nLzlx9-Z#3>GNdYY8edAIo6o5V=yyDKSm9n< z(3bL`53&-{qB|})p)(2x$u4)#3iLKJaw94>UT%MR9-3SbmcG8EMXG---z*;QH?sV{ z3a4n)FFdB9v5}ssv4ROW)n{6PkEE3FDAW&s2|PP`#P-MiBx;JEL}MoTNgQe1PlA8w ziB1xY{k4-MpwM9JjRBvF5hpq~5{NlqObl`(5YUc?a9lj#ptu_Z9El9!0R&GNp~REN z93g*(3}{ARc+yCJ7!pJPX&w=SfrvN&Ct@Ky1`QDjAlBdsfCA0MLZD=bL?8et5qJQ= z8`t3xfV;%w2w)5>=mY7Ki~~KQ!RRDV`{{>A#zKJ-M+7CH1Ds>ABeVo0TgH*WO#*me zT#(+9(KrMSMn}pKmk#C%FtB(Mpdumb8i{|xpd=yQ4&1~)b@WqzSi;0)9%%SytN3lK z)TVok?TMU#6?pi-9xfiEv3U$>V!xOv4x2>AOz_u4U}%WFfIWijXm2pv54`<`kvIG- zHih91b3fVhp?Ppdo>&MW3_cL^rNCaneqJ;N3^3_TcbE;nT=jyHfWir6!W=KK$Af>_ z^dNxi1Ga6RU>zX7QUlh6wP0;n2iAr4V13vCHiC^|5VK%2*c=8MMA#a(f$d;>*a4=% zZZH*ghiR|}>H5!YsmL8N&E5JwSa`YT?9{ENo~!E5o6o;`{*J+W7YBG& zpnXosXs=irG~j==E;espWEClU=-M&Uf+xO#T5GR=FXzzvDFNl1JJbAbK1+WiT+t%+ zY30j0Kf3&hdT8@gHr6Bf*^NS%SAI<*1HKLs;=*r{XXPq9^KQT97pv=%*yF^Wt!(ymeSq`2_pb(wo_+dSdVWBB-O-Mj zC3%OH*OjM`g`KX~chh)E%6Dcay+Z z;ZI_13hwcxW#BpFVMA(ia*|}yPq&Yx&)8k5BHNYHYxhNAP;AIBd|P3?%ggiMNTFV3 zmZg^5yIwTL^8{%o%|sM$@lg7vS!IH(_sKnhBKUjdq1zM0H@Kzm+V`Z$$DM#$a#W;R z*MmQIYW2oePY1>P3=4nBWf6yV9eb-oFe}xL<@RZF>VdeftSE4!p-dxUEOyCvWR9eSsrc!xKjX z836-=6XFWF&u9>&$iLgiV~HTVfUpFHBw~?}hDU-B5}LRnkj#G#KS-Y>A_@5q@CZOw zBn&8#0D3BMQxkHrBhB#7aWl1qi<1}Fp$f)Wx$0TcvS66ga!2*{1$ zVk3Nj;DrONSRz7$%#DnMN5Cl#+}!e~;DVnL1jwl01%b)lf0Bz2p|O};5AOjoTG#`8 z*7UPK=X!G!t|x!D_~FZKVY{iG{IC1*zr}OoM?E(hLjV){t>-3A_S~4CJ@-_r{!`CQ z_+1`>A^mmNjYdt>3*m2Z-8lTut~t=7l?ogF5)# zGv3Z{GstV-HoW;;SHi5=qKEU&UQ1%wyh?l?@F+08D!hN}#FHHr%dQvfeu-H}UGQv0 z(ls@wh1qWtUJv1hiLXMcKi zbHWJ&dWYYiZ~d~k=EU)5CFg9jMao5c&q)?Ode!{#>RbAwwEpLuP(#&W`OPoNnxnr4 z8yxlUxN}T&qo&9g zcbL139v)7I54XuYj#st6v;T2!S!&s$HokTHjZmSgA*!K+&y1GOS|NX7w5#D)L*(1rkL2%|X!o`?qP6J#aaECoZvA{Z!yB@!Nti0t^d`+pJ^ z&voG>B-;SAKe(Bad4LE_E;%qYi3#8FpYPi0<-XTk(s%zjHPz$H4rTXGC3()+p*1FtI_&2-Bqv-x z+>l;w^0?o@=ID1NrR1_8v|XTYVZ$56@LlK1l$TaNDEAKa{rEOmyr4Iog2R92u1m1( zH|WfeOn#G^u*v)SlRWy(B``7L)%lh|OuAg!EAm}jSmv1%4BW$)DGqp}@_Oq%ukAe~ z8pGcN6z4xL_?ktv6_ZWATd$O}SK!7U=ZojG?I@LbV|4#8`{Pm&b1%p^U0Asq)o0Xs zIJtX)QG}do9slBY@F8- z7?;S7rEfjsi@mFymOt~`_1x{7Q5iEmKPwgSxOhF^@T<^^!Tc>YfCW4CpZ%WJM4NCw zC}J)8NUYrR@v+6~OIv2=mbiJ^eKp_56Df60j8|-}dg|VEf%`h@D{L&xcSd_YNEb`1 zPsf+lrsGfMbjFbJrjFW#r6Bik0g8 z=U=R5=qhO%eq#f+GY3hz_7@zhwtd~L%sFCTwxPxhYwx%`B|4>w z8!(z|B4SsOX2-0jM}XH3LDoKPIJ)=h0FC!%*M0x}^_4sd+l~$7 zhc!RnU_!~+-C^|ck45fT+k^-mg(p@#=CnE46sqx9bP8riX$aot)T_VBG;$EtxfxJ( z?O1dM>G=U_6uEXr^l z6gPo7#SX1Z)HPMh}iSeEauL%^_CLx z(qZmrqcp#Lzr#5FmJsjHw{=6R|Jzxg!kfbkQ=f<$MXedKdYc`comBaXdn39y4`Db*j43|QN5F`@b!O_vyt(u zCzd^1?m4Bat`93y=z5--Uwa?2JjSE3b*lRyhwV>U^4>Dkd`YzHmmFMoo!nh{?!@73t#{wA zFQi5_7?EOxZ*Db(DesS~ZY^HB!{Yr5oAyJCyel4Ag|o3b_V)WPS1*4yeCVgUgmQQ} zx^Y=-e)r*u-xQ|-+Mo(Ip+(2{w6 zj6ddWX^+;K;fBI zC_HA^7t1;XE?zLmpZ1idc$}VGG-zEBe)~%;Hu3xgi__EeOIHZoI%-Rj_R>|(c(;_U z-l1^sUTdOc$iV(hPI}@Ml5$So*L*5B-JsK?N;*8{B|4So9_WAfRA$p2ZncfUXCJy% z)h+5NI>UVtjk+byPq#@r;rnFGvo^xy89sKa^#@z2Vtu^;!^BLSbEf;)??ZZHcO>f>m+8V+P?5j6)Qv2@b5UJ8F{3LyV ziS>V*O41lU*;7?3u`uqQty0grV0mZLT>;b1*}?upU$gR`%EZ+!LwguLDelKT>68Ap zLOG(m)UZnD^XKnE8io&a6!^4HZ!GK$=(9DGxwl6oJhp#M@0h;!CcZW2mlIVV3?yeg z&3Uxl^7EmUb*j$W>b~E*nt9w^SI4wc;@}r%e&(7#qOsArCEY2_(*xF72EI|W=Z%u! zrRoS=+M!+ZP%~1hZ|4Kc8|HhrorLrb($qIzN=e!2YEenk+^ST(vn66iyZK7{Ojh0@ z!v*#BO-Fw`;|rMc`t}UvRCp8|4IFBE-(O%7Hb>{dkad^w9DBL5>2#Ycy0np(;AT{7 z6V)L0`|kKizC|HhpS@r1^>*>lX>w8#rpTapj-Sf6dml3D4hnp=i0sBox{KJf%@Fdi z62W$;?i7}|R?)|QesS%Uwfnr?%+|@ct~s6*?h88`@g+*=-auWt07{#3-X-xhNtTs(ilvV8)P@? zxZ8i3$DWMb`e|19@aLY!l1-`7!Z%%YG~uw&p#C!?Dy%Hl8uh#}=-}eZmRZ-S&f6`L?meFN=Ej8-(hs}bUPA-zH*yzX8Rr{sM>ijld&3B}*IMqEZacJuuC)!FBcl|buE3aOyBKhi9M zNc$faU7jX=E?7==wbCCw?lH11>iF}KIX%7Wwkxfit5fKIKV5I(nV!n}r1~3fIXBaX z40pVH*pu$3y56()>&2wpV9(Ok+xma(8vTi%h*^^1rWqTwm{%1=?3Wb8VBQu%}5ME7QJEYyH+tAbgt!6mmb=HOE-Jum1T{myY zq`Fng?~-)#s+V8Pxmh%CRm7@lLB0B5_=C2dSu3 zUgx%acy;(i2P)@6=es3@&bMW;QZl)7Kg&#PgP?yyWz7P)M^=>q2Ux+0x?K($0clO|H_1oN={WV`fvs(F zR@a7S(5~ILl0*aegOhqGU)JrrPk1%Z-ni^(eBo!I4J!tVi=td}A&r3LHfvM2xE(L{ zoQ10@mN{`I%a0FVHh7O$z)XARw5Jw%0)ZU$!0^kn*ZY&je8R-Dgjj!kLfO!fr;vHn zw;Dh5S$Ra_accJgFG}}=6gQ|`bUi9G+X1td^tIl1UUtrt$BM;m-06nTBb>! z61})fOGz$nX28bP^_Wyem4i?0_oW3!C0n}b89^E?=AZH`r`ibmx`z1uB)*J zdbMNr^|r(=I0<(?;q6;BCk%Z&3^gs6Y*mo4lOgQn_vXm=`jme=d#ke8ey4RY<$0e! z-ygJ4&^-BltHH(9gpIFr7AKY~tv6IybnL{wTXPOvcxw~T62b^;Aqw5QcI>*L^i6q3 zsaV{6UGKITZzNWcBTsoA$9T9L(q1Hz(Z+c#FmHcK+?$Ygv(QpP!9|o^{gU8{y`qIy zrP5ig))@j9GkAZ%=W>yKqI0{G#hyOhWBu6dZjN0A%7k(6`>G-yhJt|0FB8YV>HRAf ziz5BC#PL9=xv1U3vg@9mjNnTuCVN!Ml6&T?X<|6X zqdqqB!Z(|vN&_Pk#Urmv+>5R}sl6$-j*sFx;}0lOUvz&{iT7JNtL*H}z1{DYJN55z zdfp%K;>BQ1|FQ&Dy*bV#=6%*qlj!K4-B0sn*z8T;(v%t^`S`XkjO_|?e6Tu$d1Y5; zq(fo;_ewNsqqO3(!S*HJb(Wnz@%jmRUt(@xTb9#6lWlx|SH>S~^&&;9ve^wM?>ZUJ zd-|~5gW-ResP;V1_15%;56MbtN!3b6$ybkVNE;|GUDbW326q>8uA=&+Y{IPQRN3S- z-G&1@7T^uEg1u#zM}JIBe=RDOav~CMT{^=Xt#v!s8d`D2Eknk7W#5*rGq*Z@8qaQQ zIOUb?olMut+mTmDBCj^_mk*HlzgDG<(mS#+fY*PiG}-O?Rnj{g5hX<_eWCj-(3Gw0 zU(o)&krr)~W0aVAc|*a5sKh3v8s9>va|28JYi+A+x*Fs|Tn?(7HoR_j{@vnr9glBm z&U4h673DTP!~sXSG(&4n9DfoudcA6qhWJA4aM;@KrLBu4bsf51?w>D+b@hIG{1XR% zcX5Bf74HR`vmy>ksjNlc(mwJfeWvE=a5dZSq?aY1#7!@RrV@8hKQ=17mlg9}Wfrcu zWZU-n3M(JCAED$SD#ohvrJvKT4_~0Z`r|C@uZj&4(<}3ZCc>dzAEN8BP(ea+{j~pU%(6yf`39l3yb1aMd+5xp<@a-KF7o>Ukb9HL^7`U*3Oh zj5f7+_fbHoOf{63(Y%9twt7JNPNdn9aMJhIW|G}{OX($_$id};PcIvYZ(CfBJyO-3 znr+h*LD{%MU#BU4_ont;>-4h(^e!izS=}JC%BSQxcCT!Sf^nWkON=9oS4+D6D(->t zD|F7@1<55lTxkWQ;O<1qHPsD7i3@-GTVsTt-cs>;k@eH_USOHcx!lHl;pHp z-lQvEp8Hq|*fxdcb)K^3V`BXri`Nqt3@E>KZ|h>8gEzD^n18zvHReEY!;Pt!|}Mmzlwv*sqGlr2E3m$VWkMPA`4(#b1AE<$3wU z9ZLp#!dR_hgI+g!1{qAY)%pL7jRZYoqJtEp?&f!1Y*w)Fhf4gwArBR=fqU6$8&xLzm z`>)w$zS@V@tfezRNIXZ{Lchz-Ws%K_8%}Nm(` zSm-A0QI$GS?3DE3Y^#T+{+-H$*xhSN?Yr);^6&M({#hkmDlLk*y-0t;{=+mc2gk5& z`#gw!LyB-l%&A z&6T%YE!v0L7NMtyJ8`q}PVq8vP0d$&0XGzSf}%z7YVQN%iob{-8cr_ilXV@eHR|NG zTWEP<$JMG9+k+Hg^85tlKMve(_oCe)+kO;#CVhN2-6HVSy|;f+F?nx8mV~Y!+$pDG zmojT$=zL7v%~i!do9^Dv)xPnlIwyD4W+yp&#{+W50ymXDejMZ$C%bUbYQCe#He6m+ zG2Lx=na%22!z=b8?ot(Urwb2uB{*N&cYl_R0)M36AJXyjreRm`TcT(1p^wHwvr4Ti zvRC03+?m0L4N8Ae_ZEwjBrUw_9>qglv91MP@EIe(nDv0)F<}SOdHOuXPRW4zeZ9QP z(y=X!haD+8S9sZ1ni{9AeIcWeHt$o?z}k}>*5(<~{dvdF+MXIHUZgxd5c`O6{OXGh zke|oJBZkdV0gtjmAmn05zQW>}zRcPt5xIjs?P zU;PpO)@u*n2el`kEu3NH+WkD+Zhm*^;R@8F6np02M|}r*BhReZ8yDsU-%pHMBlBz; ztbl4ng>N(z_g=YKN~HCfUlN_<(@;XO44wB`F0O<0*vvid!hI2mPn}JF_+K=6I`ga4 z^etua=F@+9pU>glpCHky-{I%(HSJpJz>S4|hwmToihJRe)6u5cBXVS2=0LVkftP6Z zCcy>T=iddYXarJZO>d>$9fr#Hn$J16w6kd_;(LU{70p9K$#?EtR(_FdcfNn0+B4(W zrLphdm!YT)>*wXUDtpIQ=I0bw-Q095SJ}?+d$50zNkDeOsiKQ(ob^`b;e@WM^onHp zosJxkAO2FO!Mbf-|EgSVvq3t)=9ZEk*|dRK{r5|13vorsm#<9M+dm`zskh2Nm)1sU z`u>+5r{)g~$P^S=W`-zmXz}^;KhJhPjxDzS;N=s4TI50O4aF{#`_lvW+cpOj^5fecGNB*?D#Hc}wpn zzgZC(vePm6LHen`@N!SV*#K7hf0hm?7z`RxymVn>_ zzYb1&(&sBTYj|_AXf0hQwJPhB8y@lxo{oz9^M6 zsdCjWXrJpw8|;WG{g*pc-gvdLXf}WHss@9X924-i+u6K0Qhs5dH{sf?CCXjd<6fS* zBEwW0@qC!Q=4P4?z*D^(hJYTIPXp0u_0G_#&BG-DcoIcu6qU-$L^3tdny_1}<+8>E zcaZL=S2lg_DTzth=6ei^6Sf+KdTF6hn?-Ki3IVwFBMTlU32bvXov&4w>8yWrt6@nY z4ETID2nOucha#}U7|Pk~p<7HsfCJXbRV>!M^rbALohi%t8;PhA3rEx;OsV>UcJKxh z#S$Kt&Y4YJY^1Y$$V8A#r(m_e^@Kt4%mI^RadE5#yr1v@RByN~_9h)k zMD(ZfdPMXK>7?jZ6VxPU1vP)1LXP5Z3U0Y)xxwZ(jq~&(IY%G86_@9eaATK?yyXpZ zRZXu5)Q^vF?D|i4V(YqFjgS^f-;cheRrA5XtEX&#n0sqV$)%E{8R(yYKIi&D&cvzD zta^Lf&2q#yHsi^;%Wv^CGC-MKiVn-PApm6G;`XKK)Vl%VOgIw;-H3lE8y}{Y0R!1g zMo6J(Z`MC9l@KXsb(Rb92T}n{++gW|kOnsivMAA5Y_kbI8FbY78Xyu!7_EGjK9d|y z+lLF{7lIcFZQ0FaTRZY%E?H)E?f`ZId}Od`pF&!wyw*&+)RU}|dCkwpN?`~(3eL0V zmFNIn{L@%}+D)DxngxIB;u-e)vYELfXiXjoj`b-?C-764vBQveu>P63sc#>0Cu}*Y zLa%2MJN;4lL4MwPdU#0@c5mhedCj`3lwNUA=PKPVI}HDt8HMW*$oIgE%DoU^=3T;JD4@ zKk;{Vic#sMyorA`H>=?@lzM!t3UL)<03%>>S^|?CJ)=T@6-6JaD{!ySZ+NRLkVdZ7 zZ$uv~Y{2}a2)9pE!r-xA3hFSK<*8;PHMdw^O7DddCgw0(acmU;#&1Z=peYtWft$fL zfs&+=(8onnCKz4%tkiPen5B@XmdZm>3uQ?Smww>6iJgDMwXw=20PmWs8nscoHhCv6 zM}O=o93|u{@FM>r>jCO4u!H-%5sLZWiclOJ9RDOjaVx{fp^9Q>udbf{@bjxpBdg?W zC&t#P?rFoVOAO5>g?8iTuFOS3M`ysNg7ha%)EYDMca-C$tBVx(Oi;=fr7S@V;tGmT zxrxFKo$Y^{)esWa8Q$bO?^e+Uxjm~%&%Vm8IsWeY`m#x$J;zKoE*hj9wWSpgliK{v zb1&~^UA0j#52w2mu~5cue=xaPB1T zSQ8I9sw9_e)y^q0(-ONX^C_m0ZS9W^0kDz*NSH$z#vkmzkQ)YNoDd3T1W1KqpbP?7 zqr;XN??2O==uPnY69E_Gu+$o?b7e2X9ul9Or;NuGMGyF1AnqPu?3#WM_j8 zHKOdBoP+M!Z`~hSz5qRs9=-Uv{KuwRE{%W28FZTv`S*p-=wn6Trk8?1sM?GW9e;Fg z@?Nvy2FaU1>?Uns(jA+x?|nlaBp-Cqa`#-7rhbE)>o3P&?!5K}fz-B4+nsS6Nu1o% zVC#g8=wJ+t#1Oy)XPm+I&fGBjcL^KB`dY0n4xLw#+v0w?R2Z;&`W(R9n#rknUk!h# zn$U^ZK3sn$5UaujD>_DOOQu?4ZxC&oa{&nZ2Qd9N<|Z&T-Pc*vBOP38TksuX(aAQ+ z@AVY$0|i^5ikW}j&>|kP$A_ZeVn*iuqLD5C@fUB=hI-IoxAJq+H`bukE7FK(zB@vx zKZ#o8ta4*1e*rt)fAdRrar8P%&VzqiXT9UIVoB{n9ETSMVhz2Fv9{bW$6i*bbR{cd z;;($zhAcs?5_>Z@>`OYk*7FtjlfyH-cnQ6f_UINAMiKc;-|B+C2d@~xg35wz)IfRBaK#aWNm(U>v4_P;a_mzK zGRR!^3&fiNYgG8$l!+$5plcJb4zC%Q0AYdV*p!=SO+_0&8y*2~d^35#uliKUhG9C9 zmb_4uI{3K&Y}!VY7t(oS%l>~D88Af!rQaCpaKlndf*7e zIMx}V?Je=HXEWX8WbO$&1nSDc^hVMAo;ZMjn2j(Zq$Vs6BcKsd{FV5ZvVI>h$#<>6 z8-5DjvY%a&;o?@xN-ORN&-vsb6;;Z|M zuk?ldgc0uK(iz+zTT$w`GC84Oo*9G{)UfC9SkLO;WPN{1*w?_;^>FuiSCc02wA9Up zMZee~Ku!h5`$!>2(8A9s(^1Hv{hmx1;vl9>7 zFJ0`#a@K!vjLg|9;*~5-g1*-SrH(1tLXi;+XUHIl&otLChtqMAhXk#2A{^8*TS6Z^ zcT-H)IJ(D{_^H#jSYYF87+`2|1%~q@Yzy=k4C(~AMnlu)w7H<7L`o-L$L;p^MIlJi-TN9)-P%LoSIn@)rK9iI+*Ag$%-yJ_#~Ue%hnp zdxj`x7*Kp6XDC&;1M|g0V`@y;zD4(^1SNVkC~e%kgC6!2O$=N0{QWAfG^xx; z2343|iHp4fZG5d-d2cJFp$6`blIWdSJtL{(c-6v=vhH*T&a_h4U?*D8G%wP57$#gv z1;P@rj_wDJC!j5oCU$VaLtjmMS3Q5dMK;-_zT~#4j#3Z}P)z1uVL|LV)=Vm_+)~Jt z)i`T$Cb37WCy4Xu^s=mCUVZCje6YOOSn5N}y^OTZ)TSyASEQOvo5i%jZg2XlMaWjb zP!WioRuy}6C}|QUuJO*0pB`YwXXUiJkC=-F`D1(mL(sr2ic;EM{{R$%L1%w?MHt0q z@Yy(L$Mktq2#JQosBO&l4k%;EyiA$1U$NqcTrz?4`yA*ozp%DY(qyB04xRT3l5e`L zI5s^JwD6@>)h6iLNlYjwn&rP0`1(oFOxn?j$(L}lcrV(NI*B(eVlR}gpMZ4-Vw7`! z7o_9R90@}uw8HU($};gIAXAfu7oolA9YK220@HtuYo0$T=)J!aYQ^*x>6mU?0y@CKlQLK8QmNOXaLw?PfM zNngehwEB$OeyV0(DBOdLdS|w7tiER+`(0fV^b9)a#@%F$VnKi5RB58I%E&=mKe;m` z{RCB%1Z9j~n0+IgXzam`%8{8`>k~xO;Mj4?1QTV+NCy(fecF%Pm7%oK9;GO zH869*%J3VdXe!ECSIjJ_UH6YqveeFc_yQ~b%1Z6mHo%_&+*Y%~tFOtHFLuQbrC8Ih ztMpZ0aCz*O=NNxJPnh{s7OV^WQfHNw%X01g)->f)BcgF);g?J(%f6l~iQAJ>g%gd% zbd{ciwgL;8E2L`>64nx1*~s_Dz5dykzS*kXce4q!i*EH^JLb*w*}wYgULEpo_{Dc` z{^I+akG=(WfXZpG?dFig3XvgXXrnGBe+uO1Xq~@2C`o^Gt|aL$w294p0nTz;8(y4X zh>#R65_8^T9UV9jn{NA~5|o8T87^Jz&0%wA8*(NlgvgDT3RGbcNz!$iQa6p$o{W0= zs~@IZP6*A#Np6{%#5mmLTA_K=LSdCNm=F8+O|{^K#%c*U-5VN)jr>PD7#WGJq0q&J z_&M_lw10nd#`PSreXVJd=?3B%D}Fl#wXT$Zj^C|BXF{(VO{1qZuYA*UK?aK?s>*5~ z<^A~#CL*g3X+HzS28Mx77tJqMPdJW8e`RMqW!-wr(5fYZF%ioMY$Pct9#?`_*$f9I zAGFOR20qKL4g)#lTZR$WvwF93TejK9$Hw4S5JZnQPd&wuFp?dPI0peE8 zghLQ2bIk?iYoXs)DmGldiHaypR+oCm8PJ4~Jcb!V zj60e00w_I^|Smtsh@v|6~Oj~H6tN2fSKXXGyjE(mlNtDTKDzj)r1Xe z`>K_T>s{8UNkhAS!sOL2R-s}MkOjm-p<)Yv2q3Z=-ShKKLd2q@qSDZ!@<%CMLg1G+ zh3A6((5ym2q)DC&@TWk`H;_b10ts?3i$4HCK)%1-oZO=bcx@H!P#-yRS}Sb3ntfpyzAE9>P^MAnGV-F^HGuY?^(7a!$>x_}r0 zNpmPglOj669h^#|BB@e*GHQnd=N?UlGx%zLo3J00IS?8Nd%W^1%!Ke9Or$IT2V+`v zHU9fBHkS4;&%J{cYe{qiEB0x?7{{y{czBT@fQh|8Y4D5=V#EDqCJKm+TPHk!_mC2p zVTXg`LiH+8Hu2?2_Qfn^9Yp*{hLTz}%b?_`Sj3M=n>eV*86$&n@|8FTYnr9gR~W)} z6N&Wm3ge8FYl$*Ft<0?2^s<{gyVkpEz4Nl+J#;lJNiz7;|ZI@2i!*72B*57S9}ts7lAQ+<+qC7L+@GoEs1?vAQ6~ zlFUcMfoPGw&;cq!0x=zFVAyn~3A$;iQKr_R9XTmnAfh{Ga*ON?(>s>L-T=D*#V>j4 z>3umw=1<{5MWpa#;tz$s>k~ZtnAjz?2s5kmlXR6X=H8e)rc`k7uOyC1n#Xasw^KZ zJ$<;`L^JB;Dco7MLfh{h0nhuQX znbV*pZO@da20d(;^t>)+<-x%@rE5CE23J6_{?%)~3YSGPM|1nd!S!|e_)C7;k%Hyp zPw>N0R`oUjk&MXDvPOVCY)MM5pFjD$|6>2yJ|zJKmXq8-WnbWv5ohUQe46NRL*(Iz z!mk*qn3!2v2hHt&R8(j(G~Hu{Od1AD^8=mYrl)k>bb};KlN8J6N`?Z1Z`8x;Zats; ztLOIG{M2|A@@9;sYSp5yqT9+;qC`euBH+5Ie?^`ZXCp`Q35yIQl-ytt%^s>e@Y7w0 z7g5e<)dBvkPJAP6)@V63as3ecmo|Gn{&#XI;Ud2%!RE$)7NO%~XrZ?Hvavl+ZX{N% z@$mAyJUu?bl_IkWOSlnCF!sh(&Tq6U8OjFs^uiFyeu+~SY=u@-K>3|{u~{qTsY zrue;e)cxS5LM)p9Nsb7bw8F&1y#i!Mpb)$<1(FY~Y}wbi+XmU$J0dC~JUlQoNDdiR zObSrxpf&b?=V6(QyK?#!fT@Ao;AucS!O`LVt^^fThBjS=yR*R-4PZK1U0MDm zGnx6TdyC^`+E&+HV%yI>a9u-1$MN{3W>Hq2w-?#$*TZNGosFjZBHioN&#|q~cb(5k z%WjX)C^m>~PN$cVVQS8Hclt{2FAqsR%|%z^dsa1nsF^6mcGy}g+78c~5WG*_{MHYB zGu>|cbAlKjx1*1nRY!=Oldy=CuMZ4gS$y2LlX(I-E4RHm0>0OUAl)MlDhziUb#UP05#TF42JJ+o9f0{o zFQpWJa(JMQzG(g^s>xg$Y_ZvVzW(X>EH$BcXo(Om?LfbZ8`KlA%#SkC2t-pdo=A4n zAV?yGP&Ckiw3i(FLd`kp)8L0+IZ3?*JVZYvHtJ{)Ig2+bOsf6nrS)XwCT>@-A0h++ zwwvi=@8)T@Yq#URn}Cze$>by;FF`N^x!R(C#qVH-ySdHQ&9FL}J@c8lfygy!g)oaH_)A%Tj09wE$zxDRvnH`snA&`c6=t* zFwFdbhdn>@fWcV*DxAz60pwhKTF}xT1Z&QEG4P4d44yh>A^6-k9|}0}H}vd0KSo2U zx|bC^*>a7s6lfC#i6(%!x;jG_QEN|s{FqCHs-fNxMk10TLBfserx_j7Kk( zu5W112YL8^36|KWdxituO~CtxQ#XnM5xk{P7WvCK~f^T4}*mh`f6 zsj^01W)x8Gf{M06(%K+^sM@Tu#^$2M`eN(s4gwGHtNxp9U0aey4Q!%zJ#cL}^8;E2 z2Ak4ila0mbej0^j7uR+ssLwa=xM}h(RUB5fL7c2F5D( zBp8O?tBw%g6J?+Ml&v;Q+!|tkMJ2Yoc8aHwLxxzo%8;AZ0)cp~atgZ`f;6ZP ziEVbp3$-nR8(`~&z!2aOll8C>ER5%`fb?hz(py;1761=;aOt`x5{dSIn}G<~K6L2z zxZ*i}ZciEKe-Gd~S?bmSm_EONXU%}>+k@w$%8`)8oL`W=hN z0(=2wXY-7$%FWP5KMS3IW!Cn=Ak|Qj&sd<7)P-Sq!;ORDIn7S}Q~UvWp}e5TCF*b- zqHDbF?EWu(E6F32rvV!~$)BTenbr{VmfiPgdu!ij)Hmw3{phvf^LK>AaLA%Jnw-o< zrt+66G<#4fiR9OXo8LRzLrKja=BHa>x=7JJ@(&yg%l1=#9}&NQvKvYoJSPkZ5y(Ei zRl7w!cO(5IkCHu?^MZ7hYm%-m1Bc#oqwF3o{Im|l91vbq$Tm$x;5{6!uA<24D^HUo z-!cg9M$`lHeq>{yzYei~+`e1T+%48Th1*yxLtWl9*_iJ+jrf%-CD?NV)}m>~b`ftsD=QA;L0RG9plvL6$m44gWS3yyZjVe*7V01Ec79C3xPPhkI`U4dM zJq{_u7g}5kNLW6$C@xaQFuy(#5?aKVIedJUf`W+?Q<#`Sf|`~YE_@son~mB3e1g`2 z(X?Eg32^-RsI&P#b?yD^(IVEj7EUOxfQEv^X{}#4oLL!vIiPg8w}_RE($U$^gi%6D z-{h$xNu}UWpR9G^M$=Q6Gw!1@!(f3qf#bblELKjUFC3p>A}uRDE-tIn%&oZJ<QzD#DMe{l%hW8pW3-Sdp45b zQXL|fIOF5|-oM~r6<=+C8ZD|w>1Vd8>g zRsmdp@OVW$R0ehECtFP{z^RQE)c3+{=U84Y01e%8!y3>P}Hgw8nP=D#FYJ|dleY(9WToY*Fmz*dCOOrkeUo55$%83`BA z2Bvl4_VIYXz}Rhd*YjQz;ij*Bd_#9L^L;^|(+l?a1$6YuFK1aw1EFI&ajdz|rHfgwf;jqxfN6IdC|wrh$4Qh%g8YhZT;T4bO9 zQ2o`l2Q>m4Tyh6(xlxea(A?#E{*P##Ant&I#<5JJBb`M~eh$Zci}h;5vvy@wn@*Kx z+M1Y6YE;VB?5FFqD1@XTwBtrJ0rjJQv%Ms$1x7BTkgNc1Y~ZwHl<`Is0b*WxLpt6) zoE-`{BG~8hP8V@CJAajSkxn8@X`Qz4px<=5zJ{l@0s9==b25zZqe=mIXj%He#gehBQT7-L%$8yh<8w0{A{;>NiLB8 zL7`S^G;1ej(U6hJmPa;(NSkm!Ciq4UXdZS-F4x-*G0QrcrMjta0=U9kvvybSfL1Uk z%rj190au#5o&Q#=tz%kc`rc-5wCPXED9XpWkibpzQ8IC=4}fA|rzc5fp+3{RdONce zz_>UheR2_}s6^z>nyau$k;~?P-r(E~6NE(P@dw#Y*rhKpH)BiD;qwxV0^!{UVU5i7 zaDp93QV|kLJU zDXlhY=Uk6|OFbiNO||bA6kBhzOOcQwC_4i0bgvXtUCvu&BJ9<0U_(ePtwiQIMe;qN zY7_C9m64y@E)~%W*x(kZ{sblQ^8#^+nYKLi?FHG}s^Qk~hPK7S-oL zjbZSHt=Su9ZG^6pS2Z61DgkB8gCPDFq_qq_zq~9sWoZ_RR~GN8ab0Swmq-z+em3t& zDltvU^7S2b1eeQy9Y_Kv=3=)3gXqel23@UvK|h{$UGhPllqS+5`n9qEnW_nOHQ9hk zzmyt3mBk!2fNV-iT1r`TA9!1md9X{{!OT*)*BC@y)0WsP#Dp#hD#PAWcsxiSf}I$8 zdJ;Wq1HW?)HzX9QC+TOOE0f37d@pSImgTETu_`jH{z|HU>51#qFD%!}(nURg&bOs! zZKHk*Q4 zxl0OKnvLosm&>=9sXFMK6Kk7`vXthV8>cBy^;Te1Q<%deUj0YCeMO)*oqN#zL&t6D zX@F}c;wA6ZgZ9m5|Gex$SH(wlr3an!(M7zMD=VqXxb?>58lIO}uN=9Q_EpQ=bNDH^ zg7+4G2T_~6s4v<0b>{LmVd|v0#@;kjtp{C=b4l)e0!D&=>Lo|LZT7FpFR8234z~R2%L$%>2kNqe zrbGYOl}`S$A#J&3wIgaxUjr8w*`>Q}+;D6ssb@_m{Fk4kG;o-Dv?n5#c5xwJtT|JPsc-Z;ly% zhu*axFGCi?;FZ0#OFel` zAOxbb@v8~%r-SXF{-+?Abp0g_AAiOAL1Rz?$x8eI~ z-eaW*ux*VfEU>o;Pkz92pZ(H*<4MTNL=dOAR8lBwc$CVnFB6K^ATXtt5cdm1X_0gq zW0^3(5iEzPv`l&?3x_#sPQeN8;P&EMmLb|;c_s(>(nNady+UHjUI*%75!F%n%YY{_ zFTn5z%;c-Zm}&!?^cJ(n%mIG`gf#x|7LIt#i~RRK_W8vd6|$GTnxq7Ooop?LwU_70 zn(xwCS9shu1q7V~6z&7RMXhiMniT);jrq5rj+G{*FE=^Am zz z7QuqA!Be8yC4{?nM=4Yyj&ZTj`vDI7Uq(sw2_-p{$0{a;N$!<@P%%N>a@=y<&@!?R z$_N`F?-}kH?kF9jo@K_TkTQE-(=^JU1P^N+oZ&{1dJAR>r~0$Lyijs!5~{9TsQUf@ zVpt6${yV$O_&*i!ng0L&{a=~)92|cl?->~w{|n3>@E>FL|CRv5%+CB5s<)!FZ6*U^ z=RNfnQX%TnMSX^UggpGK++sNgEswIYQ4eT|UMyeZn$I?4EL>UR>==aQ(EaUJhkZRk zYu}{wT|xy$pn%tFQ%rox`!#|dY)gwP!ZYO6ogSDE<`?*A%O^DbFT@<4E_i;4SL@_1 zT_@SwRlPR}{!5Gx_>t%s7Is1pg7AfhFMo_?|OZpQ8 z>F$t{?vPx6x{;Lb?(Xhx=@4n81!>`;ez!ZGd;i>d9(b2IbLPyPn3;24_6(wNVnjMl z1Iu>q7-3J$u#bDkBg)*g+N%K+1Gh5t=D6W2`b37{S{9<~l8#=_Y1vI2viEYKp_xPK zBL*`;c6KR zOU@5C3YOz1m(OF8sL{LII3!mklNt*KsXANx$RrwXM+qYL*muY@50)Dmm6uFjIQMWL zRuUj3((6CnA3v0PdTG`qol;2YlY)grD#9dny}|k{`-s#}`Vo%>4=F;s8yW6=51#ET zBj<&G<EwCVfOd(LibPg_Dtgdv@)r#n)oBLtqON+8_nM3iG$#W0OBEXSPC&}>>R|%RUSO6}1RJ|iwfD>=NCBFE zmywYpBn>+nAuayKf>MUyfUCedRBSf;f&^PKbe`@PiTubKLz$4%m#oUm`&AfO0x#Ia zR$FBX$}B90mU}CPr;br~8Kr_I50u9{<)UQT22|Xh>YZs0@wy=&MfIBx3}YKw>n&bL zF5GO^-@WeoQtO>w@4!OL`(SbUYw}}%yVS<#r^9Ei%l`GsKMwXz+zOHZ!uYZN`E{tA zTz?S4v9mG#NeK4`aTW{v@8T@hKa8`upg+pUnAka4zw`U!ILp|=*wW&ABFI0CvHs-x zGf5@o@7JIGq`fEoH**?r{_T_otSlVAH+}!ut9WMiKXTFGqb6Ns7(Iu4-NcT6=)rSI z)G{^LHru2LXTT6CxpV@9*Jy9A!`RKz;hwCWe_OXbE%w->(;u@WUV;(i2&7nt67l$8 zZV7yz_d;hR)m&P79W?<$zfQ2;F%BBQA3LNdiFf4Wz2IC`-BCX4^EBjiTlQnw)_t`@ zgqMZ-z>dTzX+7O2QESgD?Wx0mPV+YTA)f9nF{z8t8&i*O57shz*;M__j71Cx^U;Q) z6mr9F_`jv~^t-7lTM+8sT6xrOJ`|ZFmDWQG1buRQNk@ZGK>wAp4KUYZ z3H=Kbhy6e5WjX$vUY6;1S!VvS$Nj^^GE9G%Scduc`DYZq?;<$5tWF}Okb@;U-kiI zxlmKPL1r+JL34cmHc7OQY{v^)wMMCY?3WeU z-Z%cg$jlwf>6VAddMJ%PsAQ$nk$o4$h3kK=-Vl87N)Ud=U9VqEk#x5{an*DlK|?Q{ zN{D(-qN;R%EV0hyBaM2uX&j^Siv-ni?dLtOqBdltHkJvVCXSRPj70c8U77~w?`|q} zc1G}c?j6E^FnByxK}=wvH)#9?vRl!KhJmFmKYg*KmmW3?$in*SetdXo&*8to$+Wv@ zI6o9E46gNL(+Jl|E18~VV&aouw17y+y#&k_DcQ^3ZKeQhk>*0tFO4a#G=!^@wKEu1Xk>%pOZe zr$BYjw>qp+?e`bVlkw=|ysqEIwp0fM>|70hu!7y3N^)`5ZR;YfY0h_hN>i4oB;L;w z`t?Cn`yFrG&Bx5n4P6T~KdV0Mc{@9A-{IVYaJwN$D(1Y#l5*-Hb&FH7-`aH0O0w)t z$OK3i^e4w;J9MmP__DiXVyvSdh)%dl&aiL*^iCOf5JU5LI1vg5Vf(iw<7zQ&EB$PK&R966)j*Hfi?l-WXGtzkjK!p%&}m0r>dKLWX2x zDE}`Rb-{>EFvPYc9apYTWkU$WIi$U$?8J-{?O%0VTWpUh61besEp7;UNHY(O4_5Z} zdV|lQ7uG?glc_NE27xi~+D`N%2|PIRK~id@b{}ARoGb-w#}N7fijXck$&bi?FNw(S z)-lKlLABbvv