From f71981b79e36dee1fe472a3a148bacf6e909336f Mon Sep 17 00:00:00 2001 From: andriikamaldinov1 Date: Fri, 22 Nov 2024 17:23:58 +0200 Subject: [PATCH] feat(ref: no-ref): update ng 19 --- .lintstagedrc | 2 +- .stylelintignore | 1 - .stylelintrc.json | 7 + CHANGELOG.md | 7 +- bun.lockb | Bin 1048790 -> 1078786 bytes cypress/support/component.ts | 2 +- package.json | 77 ++- postcss.config.js | 8 + projects/ngx-mask-lib/package.json | 2 +- .../ngx-mask-lib/src/test/add-prefix.spec.ts | 3 +- .../ngx-mask-lib/src/test/add-suffix.spec.ts | 3 +- .../src/test/allow-negative-numbers.spec.ts | 3 +- .../ngx-mask-lib/src/test/basic-logic.spec.ts | 8 +- .../test/clear-if-not-match-the-mask.spec.ts | 3 +- .../src/test/complete-mask.spec.ts | 5 +- .../ngx-mask-lib/src/test/copy-paste.spec.ts | 3 +- .../ngx-mask-lib/src/test/cursor.cy-spec.ts | 60 +- .../ngx-mask-lib/src/test/custom-date.spec.ts | 3 +- .../src/test/custom-patterns.spec.ts | 15 +- .../src/test/custom-symbol-regexp.spec.ts | 3 +- .../src/test/default-config.spec.ts | 3 +- .../ngx-mask-lib/src/test/delete.cy-spec.ts | 169 +++-- projects/ngx-mask-lib/src/test/delete.spec.ts | 3 +- .../src/test/drop-special-charaters.spec.ts | 10 +- .../ngx-mask-lib/src/test/dynamic.spec.ts | 3 +- .../src/test/emit-events.cy-spec.ts | 48 +- .../ngx-mask-lib/src/test/export-as.spec.ts | 18 +- .../src/test/inputTransformFn.spec.ts | 3 +- .../test/keep-character-position.cy-spec.ts | 103 ++- .../ngx-mask-lib/src/test/percent.spec.ts | 3 +- .../src/test/place-holder-character.spec.ts | 3 +- .../ngx-mask-lib/src/test/repeat-mask.spec.ts | 3 +- .../ngx-mask-lib/src/test/secure-mask.spec.ts | 16 +- .../src/test/separator-non-en-locale.spec.ts | 3 +- .../src/test/separator.cy-spec.ts | 159 ++--- .../ngx-mask-lib/src/test/separator.spec.ts | 3 +- .../src/test/show-mask-typed.cy-spec.ts | 24 +- .../src/test/show-mask-typed.spec.ts | 3 +- .../ngx-mask-lib/src/test/test-sufix.spec.ts | 3 +- .../ngx-mask-lib/src/test/time-mask.spec.ts | 3 +- .../test/trigger-on-mask-change.cy-spec.ts | 5 +- .../src/test/trigger-on-mask-change.spec.ts | 3 +- .../ngx-mask-lib/src/test/type-number.spec.ts | 5 +- .../utils/cypress-test-component.component.ts | 105 +-- .../cypress-test-shadow-dom.component.ts | 24 - ...s-test-trigger-on-mask-change.component.ts | 5 +- .../src/test/utils/cypress-test.module.ts | 24 - .../test/utils/test-component.component.ts | 62 +- .../ngx-mask-lib/src/test/validation.spec.ts | 639 ++++++------------ src/app/options/options.component.ts | 2 - src/libraries | 2 +- src/styles.scss | 2 + tsconfig.json | 4 +- 53 files changed, 688 insertions(+), 992 deletions(-) create mode 100644 postcss.config.js delete mode 100644 projects/ngx-mask-lib/src/test/utils/cypress-test-shadow-dom.component.ts delete mode 100644 projects/ngx-mask-lib/src/test/utils/cypress-test.module.ts diff --git a/.lintstagedrc b/.lintstagedrc index 118fbe6c..7e90d576 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,6 +1,6 @@ { "*.{ts,js,json}": [ - "eslint --report-unused-disable-directives --max-warnings 0 --fix", + "eslint --report-unused-disable-directives --max-warnings 0 --no-warn-ignored --fix", "prettier . --write" ], "*.scss": "stylelint --fix" diff --git a/.stylelintignore b/.stylelintignore index 8062b4f7..16108f10 100644 --- a/.stylelintignore +++ b/.stylelintignore @@ -6,7 +6,6 @@ /.angular /test-reports /src/coverage -/src/styles.scss /projects/ngx-mask-lib/coverage diff --git a/.stylelintrc.json b/.stylelintrc.json index 536ca0df..9f57209e 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,5 +1,6 @@ { "extends": ["stylelint-config-recommended-scss", "stylelint-prettier/recommended"], + "plugins": ["stylelint-scss", "stylelint-prettier"], "customSyntax": "postcss-scss", "rules": { "no-empty-source": null, @@ -10,6 +11,12 @@ { "ignoreTypes": ["/^mat-/", ":host", ":root"] } + ], + "scss/at-rule-no-unknown": [ + true, + { + "ignoreAtRules": ["tailwind"] + } ] } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b531147..0fe19938 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,15 @@ +# 19.0.0(2024-11-22) + +### Feature + +- update ng 19.x + # 18.0.4(2024-11-11) ### Fix - Fix ([#1449](https://github.com/JsDaddy/ngx-mask/issues/1449)) - # 18.0.3(2024-11-05) ### Fix diff --git a/bun.lockb b/bun.lockb index de39f5a7b81329e801c8580d2e778135393398b0..fea09b4a36133c6ae0053971dbd085f77e92c1a1 100755 GIT binary patch delta 270889 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 z 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

N2g@J8Ow!=54pinK^}jkliEIC>1C*I*#gHwJ zdxoM4vkRN-g*oe*yWsp z)a0jvsX@o%6i_azFPI^58$a}MZ=6h^Ts(r|>y&G9tA5b-saX?cg9v$gQXt!Y?vJWU z({K(!fi*4rYZO+{0Y<>#^hzi8X{PEJhNqC!EcGGDm1Kt$ob9~~tO+>#R z8z(i6da;Q-s7RW<^kQe1??Hih<;VO!M`wTjt;1w;o6%Y{IE7)w1^@kGKc~>EXfGDg z+hsQaDwcH#ROD;6_JK8hPI(KcxazPyz zU!ZTS?enw%oBC#TR8B{rmr%X~Dg%W_`J4dvSY2(uk#eyd{Y;M6xRnAK@CK-8x(F(a zEZL%)$J7-%ZxP#Iu~i+ez2Q)&d2Pvah_Y&wS;`aJERZ$$b$EuovCvI#AM zO2qxI#!N`OmJyj*oT)UB4!c2R+iU=pjw71*oD{+qsB||JO`Z23_hWM-?N!g)5dHFQ}spCgNo?4LuCz^ z@XSbTvD``bkw~U@ue#z5^-)=0c@i zU$;C8+6H{$e4nQ+^jWCr{4S^rI1?(87!H;9;-E6oaF=eZ64Dp%ZLcpFW2!hKGqZWv zf-p1|Dxz)e+QxZMQQ5lzEq@3qBAyAo3_1!bj9dy8mHDB<$UC8MeQ^g=INXe=WJc4$ zU7;T*YW=0)LEvzfm5AIhY8W%0qAKnfh4d%JU9sGJ!m@_;iAo-rq_a9+l-tu#iRnIoieo(t6^H2S=hTOazwN6Xf8f&BT$<;0 zkPMYQ=`7Qh7hh%C5`~n-blAr2xDiwsig4?HX8;-KE2#AIo=abb3L|@<(%$s%C|Nwr8*nb7 z+2_t+n@g*X^f@#Ad4#@rJLNJ!%`3H>%T;N7H=RfVigY2rcps&PQGK+kFa<1%H@6A1 z3NaI;)|+xC%;x=&bYLRGioebNje*1&SL~oR9mvVSq?Wjz!A%Ihm$?j?2^fY=dBy(u z#u9RJPwnYYL}OlfBSm$^*Yvz}u1lH-EaxgMH^I3{1@EK1h&X+$&*^U{RAzVuR2VfE z>C8u+AA|ZSct;8zM)t!dE(2S~xi-LT;wH|_uQ>DEJm*WlCzzUAkTH!PM!Ex=8TKQ; zA*!tSo{>m^al~lvy;>z(7|NPhSj5i&r%up;dq8CwwTB907rEt=pfZ!9shQ68`O`tg zT~bxYDQclfDyBvL({zYtDOmp|O=0pPe>DT++$+RL ze;E=P=U#SDD|7_sF&XKyjB~d_wc6HDvEq7A@pwg(Fn#U?MHi{jRECOinI96E3~&Fb zYC9&wYtBvP-bsUL`d-Bk|J5iDi9?w;U6gO!AMbb$WOIpRU&Z|G82}08p22ej@7s z_DY>OI2j2U$(S(T=-4FHO)}lY;pUieU5F!@=-hZX6PTNLy4M2T{7pPe)s$Z>`+qDC63iJ9o1=<3 zity(oCKqx|*PKL5ylsv;e-(HCmE?ZBNhR_Mw3+Px6$5e;Z*QQ1h<92gk+ORW}ON(r)BwKEqD_%1;*OJZkWpgdry=Gj@^=3U`n0w6TzOuRhT=BlMxu@cdbGO&r={0wE&7ECyH&^fEp1XQm_HiIe(+9?3 znLEA4zqpr)%kB>M3GsqNKIXEoxwC6TTTucZKc)m`ny=k!o^w@a^qii7Fp;wY%B@6Tx88frd~nVgnM9huZg z`E+q7bLTwY^X`kf3z{^yN%NUxn8`hv^yBuvBPT?(S<@kH$kzQ6i|*O_dzD{i9U1V= z*G-?g=duometomQuh+G zMz;9Zy#=pM**3OtLEqmVx&NYTt@rbaw@=C+>W%98Zp2s1$EDiyPNt1KIy!FEeJ8>i ze{GHX;r4>!$WMmOsx;`z6}!eC{kqlQwb2W#y#+CmbuRd1V6*vspKf|!-H1!-PY$!* zFNo^v$$WDEmrJgB=krfjt{l;N-@wl&&%P(L3( zL*nlmb^f7F1*zk^L_Iit;@*Yh>L;~+tVv_LUc)BC7g;gWmso4(#)S7gvTwylPena! z9lkv#YEjeNRU@~ge|}H#H6J|^z5cy^lWwVe$D#43t@o#niF{=E?VCT%E695Gf|6zn zug;upHJjJ0&5?+XxixDK=r=a_@(W)K44-qsvF%TnbkExG(XXRQI~?gW@WLYtpDwxY z+UZfB{?=;1ZBw7Mic8v9lcp`V+N^GK`|aJVp|^KymO1*?Q_;zTdwu?;y==;l*}gpk z$6xE&HtPA|CweTbv2@am%LaeCY0SkfyINzW&amDunz8-h^d(+v{!At?JKu`Bwy!nm z+HT=zYGh3Lt^J`D+c#X>*B}1YWxYDo9RA!ZR^;4CR`J}J?FZ-Pd#%0qMOs7W9k%jk zMOw{njEZVg`0D-BzP4JDQ*N=O&WcS;{Mjtt|v)lG=Hy-wFkD34VdE29Id&?I! z{)#)F+23YYzrypDT$i@I(~O@s)cdYvb?P_Ui*MiJ+n#X8jPoL|JrcR~>^&VCO*r&> zPRxZVy{)~g)`n)>U3Y!2U%xnbSLmXu$96qjz3%p3HmA(KqW$EdAG~tW8(&=Bea?bu z-{&vdx3>S0{;{h&pK5X2D$k}SckJ7EW$}d@`?S7saG#sLuiGeMc;-z@Pu4&E#8lI+ z&a&jHg*O+ylyl#Ndj{`2($@5sa_WmABc6|p=vZo>f6Ime*3EZ!jC%CGH!f)OwXgSImw(rrFTMWG?)5EKdV{Oo_XA}e zSiA3v>GtYP*G=_zeJzjk(MhhByeGo9zJzde6@`0;7o;y$^0aoSr~ zw>vL$!>&VTCmUx_X7t_ioAr(B@ZsludWN1(s{F*y&m4bv^r?frv+A#%bg)64=Be+# z|I>>Mm>A;Qo!#dpdfbdoAPWnFlBAntJQOe_emwo)N`~Pv3kjv;9?-J9>Mrw;~H- ztoQGm(dMsS81%?<>)x-nWb$o+K7;HZzHj@~x6hoosI*hS+G0nA-@oJRN16A2-O}1S zKg#<0?u76Mewvkidhvj(t!8Uygda(q)V}gHKMb)BuaB`NmAnu1i7=(e+7 z+Zx`sji=S=z2*5S;V;$-to*s~;lec^_Iv)}u8*aU>>M-urG!UrJbmiT`BV2a_4Tcs z(_zwuE6+Up+Q9iwbjg1wYenxqt8N`WIP1__)4-Enm*rd;dj829JNL-l5!eV=ud5!H(s>AKv_3vh_~a z^(n`H&scNQle6v_a;D>{dyh7mF>6uhe3BP*cHlF#S&o`UieKgE-wddnoUyRtj z-GA(0davlK4wN>S`1FU3)@~j!`(Nn|uFu}EZM5~(@*3er9k;KD8uR0@aZ%U59sa?E zGd}2E<0(6>-=Sf{#(r00_#GRf*FGB4q(y4wYAZ7AqSkkMudDUREeF=0IP+_d=*%uD zOVW0xTDzLopLA-~4c%{ui=XgH^zz>}9aw5+Z_U3aCbWLk^IJY&Kl|&@{PU0B5H|g@ z-j6-}W5Rb&AL{i%Zo6BKRekW+!!s`3U-Pa<{%Z1%U)BBgrIUmZif6hSfOG?(;9QlHWVp<({bI4c9H%`9huFn)G_=;nx>OUSH?KslQ#7*C&3% z+&*7C*0ylh;yGP?v0bgm8>7Ojzj<+k(C7A(R>J!Hm>s`=@okmp7n(j^t4_^vx2>3) zRC!ot!Tjgb3p#AOZ2w`;CM$p4VXIByk}*GBcP5 zTd?@k-5=cWX3XJ_mb6U1u+HfPH`WTv-|}gz3lCqv#Xn%i#WhzB&3kN7Ny^vje^`BR z-)(RFd}rUp8vEDnn{?*d;;^J0eXN*ueWPxlGw6XIpQycP`bVj~niVXq6kDxzi;erw zd&WvAX%mzBcJuE)yMI&SvUl6@I-ud>MxhcP|ztG#=irmmQqE?v4 zIZTq&@5Nl`Ab69 zv6G2`13Y!0Wtg<|{o=QxH+J>rTFD!e0vpfsczROhm8!rg&|r|?I=&&^-?_5K)7cvL zdgpK+HpF|MwN^Zss59v;If{onGM@$N z5Ar!(?zdJvk`$;yT361pm8{r@;sZTE?X*2TUk4HaRCeBe1|)qU99mZ6EYbtya}R=svC@~P? zNv5f$xK+wctH246*nrn6c_iK&ZykLsDKMQ+#WEYe9bD&42nR{8I>vV(86N?{U0dtu z<4L~4`c}%uu7QX7&f`jqW%H%AVoy>amb0KNCF~w{gP=a3^96Z#TFFl&1-_w7x)0dF z?F_~@BaySmF8LTElm-t{BoYg^N_NHv0*zFuNavw=?+EMYlSzTClt~L`75Tpe^{|dT znHWgnTbk&>k+pvrDAOtbnWvGIt3l0(QQKsG?C0=^0}^o9^~<~3G(zVv+5m83j9Esr1c_& z6>oEE1!a@T`-$0Bwqoh(KVF^wWY%hDt05Y?iykuRK^5(5p#oLZ!9{+@JD}+ok^+xX z)|K{N3w8sQS{i3rvM=7>5!BULPSbf3m4!KPK5Er_DJk$XWx{Ki<5&Jpur1@XrQeQS ziCRIjKF)KN(;92Vp(Jmqb@WhD;4+-5s4C1c`#B)(|M;Q!z;+M=ibdj^-UFR8sJbLE z9AmSC&1D6>lH~iQwYBnS z%Gd}z4jOJ+_`Ai!ht=@G#K0_h(!Sv65l~-){J(8 zc58f~N=L(&Y#x=KBr|7qq3Q-qQOt!_%w#M`c&}u~zRwsSF-z6c*QTX?{AM(hWOOL1pJ%No zP4bsg*4t{hDKXHBE*+DRJs?m364~j9Pl8kxXDcPwnU#4+9rRt>j}#fy^t+*rKk32#w2npp%mzM@aVZ+q?;3$hfcFaI&|vGv42fP`=OEyoa7;8^$9kv;XnSJ9t@q zx3c#c=$s4_Q5hV%bs>=G-Em6($3g5}M3%Msl-VpQ~eR-YJtfo z@hFqWZJ^5#NW^rW^WO6ySA_Igj}T0>5s*6nt03GPE3Z0cE304kfpH*Fg1VtqAmJn6 zZ0G+1iP*JewE;RZT%oQ(pmTLMg5*6~VmD8@Ew#_zK^TU+dv(Y3L>`R527HHg^h8qN zBg%w_%FY_-H%R&R*})I6dV?H}Hi2YC=sqRWke+q7>j4suoIo`&3na2o-d_O8F6jg& zfrug6i?bF3BS9i3f=YP59YkYyzkc63dNL_chmOw8budUYpgb%F$;_39gCOBZHCJVr z&eiGJ+uKV1A}KI~GMTF*VegyPQOYjBctj>>e{;P5IuHRkntG0>RLXsJ$tSGw5vpsI zY7R(v^4YN`krGIFs$>U)=aA059nM{NQlD}iNcoj$YnO{ySexPl-+)BA%KeZl|2UVW zAZM}KC88A&Q*~Q59>t&i21Pg$3>$5JWvkw4IT9wHP6~9tieC$xega!T=am05C_zVLNwgcQPC*SL z6C^#Vi&zW7e@d8!kyRO|2c)`oY!t$5qGJC;WEmJi3lV8GM{Li5@aE;>>hqZDx!KO* zu{|v?4kWP|Byy=L5lrAckeC-6#~1PbR#(eLHttwrAe|@WkoYIC26S#_UxIX@NzixM z1RcvUDF0GWs@?Fkw{tj8A{z}%M+Y_fuj06-ix9pm8_Zy=i`00Rfy4})83zu7+JM6B z;H^j_P5ID1mw|dnopt<$_`ng6a0Nn&4H#OCkeG}hfIr3Kx;5EN9s}XMqz(y$Whkm_ z2ivfaKq3#^4Ry;v;$D@PcR=DO)RZsGR6hN7uqB*yT3Iymvt zt335`8pggAA83MYh_X1+#9#R;C4_@S2-V~O7Wf%7 z5LCx5xe}r0c=%s&ksVHywG@;D3OMLENQ|S3gD%X~x^M@jf<#^#{;#)JRQ9sbP}q;c z%69A^G?C}=q=48IVDM&8GKdw5y}l0;3$5gAtc~+^Aa(NcYaz8eTKW%wNZ#yB^!=W1 zuMBv*20C3+CTMypzd;mGC)*1)#Ag07NGt>Q`%JvQR{=i4YWP~Be+f@yW7q;-;;9ua zSi8p%4M;@eY+T;n_R;g1)QyF1^kJ7gNjL;*DJB$%Ez+UTKKd@-Q66p04iA*(<$c?Rpo`WG#h6@Vb5j$3Wr} zh$-<%HD;JJ7&7yw*!61h!eR==)>(I)KwbdJ%GFIO(mpCpddxJZKRKG`g8I-zLzf*O zSvVZ&ABp$3x ztAJt;PNTpIkQf5W-Vz`91SIOMW*;Bmiw{Iy=izS*3Cpq|^FYHv7}Cy!FhEbcVM3+O z;n!<_>TAY=#E5lcTnG|}tBdI!kjTS{PP|d}(RxTA7}BN8>LbXFE>>%Ej5Uw~>dFh8 z8W?}MTZf;=E{}r}r87JBLuM5}N9Uni@Jx{SD!BM5Aso;R;1PTFp9OJ**_Rl&e6G9R z?BEsNcwgFFdu4rZSN{@Z z9oKO6JUgW!t+&rJew*d*`);0HDy6M%{9_-PAYlzV!!4}?i48J&)OX}YyR;E+RJ}=s z;Edzzf0Lck7@lsp$zCaR`%PBqgI)c<(&%z)^_Ijy+nbG$V-F>S14MwLviQJ*ATbZ! z2R;VrP9oOXalT4S<#!!O?7(9mZ-t)$^{`fdpBVU&Coy{T$(&j&uv41AVfq3MLA-WJ zeN=G=P=@h1`}ixMo*=cM@`4hj@1*M4+wfNuQsiWf?qZa8zoIFin z6sVoUM(}WaU_MBMi2LX8eXy*h1ik0oqW&A*gZ}f(&fjE=|B#a!MeibB0&`L(-dpUI zm!Oi;TkKMyF}K>$%@9xUR*#bpBi>|*JpdBvu${xvhage8v$^{&SZqf(=Z%qzRfpuo zquDY+(#Bat{zHPq&;n<95@nz=_LsJ|8FLIi6Ynd$&0cvaJ#D2_U68EcFG13i1_=$9 zXdOw(CF}tp(Ub0i4}xT79I%LZJ_AV{}td*O)2F5LOrDK=;j0uBC=^RS*J-5tW*#;}SwMIGWecf85g(dWB`(_Dtf$?cB!es0%m?@jVu zY}+aA#gc5bd*#Lg$pTi59R-Q_w66Yg*D@VWlR<5$!^-x>`xY#>OD{(P&r(Xjxhc{6 ztDW2dSKMKRSysn)BzRZYDOWJ&nzBNCuP+@mAx{7ehVlSPFX9P6T$(l0QlSO@qxpj)}U}Z=*7!i zewRC@9lIFg0S%>6-Ph|NF%vY(xaY4na*{oE7^o9P7I?b1#R{3^v)P~6aQ zTCr<11gdEt-$UmhSq#pZJ+K_qMOxY=TfGV1HFk7o-oNB-Jxu8P>p_FcdOHhp`qmA& z+gjbZwCMs+FQ+?acmBV2Q7_YdpE6ErmuQ6T4DFu}>Sc|4yR)~%E=|HBYTSe7>|;sZ zME?jLGxhON9=qDdwsQvLNu=!PInd``6;eZ;)>FV_r&0o zNEEB+Sh<$<*K2}6>#hU!C~Nr?NEWEp{Q~M;hPrQ1d4=1@Q?a@GfTO5%;hqPSe-{qg zs3s85ZSb`RwO=Rf@I^diNB3rS(;reUz4q}A^tcr$gF73v|4Tu#BK^%biI+ciA~BH6 zQ(syTA|TchPzR?yF_8aF5NT}of`*&5Th62e5}BYrw89x9rUM`yLsoS~+dCxw+1f_w*?47J>;PNf%PuT-F^=5&jj#MYTtOp5KdRji_);XTYUw{o+a#F=F&JDZD;21m|)An6S*kks#>%R%HZ@aSD0QJz`;NfpnlP`LGlW$V$rYeuuF&VO7u<@9i^lQ27`vu#$%U^^d*FW#yZjF z&pYktVYKeH%MEO;;Ms(5KzC{EWFGc_t^^VDKIcuSx?2bH@Gp|NwQw#xj4`ElNdW$C z2ljM2kP!L^=yH&2qUS%V%&QItfCf{kN!7ozs1>w~rzM#amgr%Sbczhw3;d568A{y< zPy%%t3oZin6J!S)!rN!S{yYx zGNNJ<{-JvigtH75@+8A?eyN9Ze`b$eI*OOiQY>po6Z5^EkX0sMedqAho^osmE8YQW z1L7Mc+l}W*eTN-|Rr7b!=u1l(6#HU@7K6ktbtiffBqNZR|DF@sllIDFQSnnMcSho) zT=}aT#nee}8jbv4ZwI^SeTc&y_U@~^*G?G=KYus7qP_gR6y6}leG_%?hN$CbO1nv^ za~Au%_y0z5fj?K5SvP)Xr8rKo)6;4=XrB=J2GDp0cm3{h;K+0E@@Le8Yps7au$%L( z_i>&&(JtV8Svu`DbK;Lc;=Xd8eJN1Zs2Kq$n}Q23+3&g#J2((4E81_Tq_KNGPw^mo zT$(r0+uyF2PD-!Jv-k>oTw`xypbL*Z=|a^y2PC^%6)~=A&w`Sqj)fd%m$dQfO1|Ma z*H|#&4HQWbYR~HN(52D%GvyA0^oJCNX5U7xk;WTKhUsXBv>f z!V7;;hQt#zdPzkZW*<+$Cxc{_s5l-1$$O5651aM5YM)S*R$cmO13sG_L%s=5!ynbKKuE}cC_q43PQ=faC~uO#p-Wnz`+ zWe9w|rgP`uEdj?Opj48TI*<@vO95$BL8Ib86`aRIv433 ziVr}tqMb8dpv@bqAJz&UDi+?Bu4Wv+RBO%vf;kL#EIONC94^95hb z?G=T{;=&^yCxOgfmf?-}PXqS18}{{f4&zC`W!HGq~(kSfX}j73l=?%Z}>sw8WFY3u;Hp^X!sK>GVH7p8Y|njZ4)XV6KnF2Qomd z>5y|t6FOW56dkJ>O#T~*zeLNyv~=|8jkZ_JL@dMJ)&+&E*sphiWaHwzyO9*&+jhz< zobS+gbbKa+A>0Y-L>o477TsZx46i|3_%Yp@$?ox8xG%`LK^VA+Cs8O%j2_+u$%50x z*yLRm5MG4-MuIv}M^2uFQa-c1kUHT`zaYN`6612X@29Weg zF9cZMgT@N7k6(^LCVZe0VL)8Na?mI$9rgHr{J<)Gh$}N6^1rV`VT7|To&^aPtP6U( z=p*e7ff5xIgJj$Y`}i<+!;kFfxy)(c$I2VKJUPs5AaU-Ic92iG-jD54+W5PE!kbpZ zgNgpTc^c?sAV23xIgJ$;-RFc#kc(5Y%Yno^oZ!s=sv!9!>TPVVn1^IXeTveYD<8{w z62W`zl1A7*C=Il*-)g>p(w6r}T93Y~{ z-m#WLpb7dK%PH=2oq}_+3oHPsa>ZJ{1&JW)I*GYOUzk9`StsuRWi!#r*f04RIfz9> zWa!PbkIrW??4(o-lX$Tj@;U#M1~2$q_(%cC76$v=E?8)K7-R)~P#tu>WaLC%fS`Zrbq4-1p0AJ9;T|DE|Sq!w>q3`iAnKjc%q+ zEP=Wo6T$%^ZW1V5Os!_GxE)nZ{86ogPqR-{{4{$Hbz++62R(cO8UU(c$8N_AI{%~z zn3~R4fg8`LAociu5+uWVot%E4!_R8)EZ%40D_#Gy$9{W-w~H_57klNMtV!>$1d{gZ zm`a_)chBMlphG^(W2U`YMsMlydQ$9$4Pl9=Zd&*( zk3F?%6|a{RjWFs9dhL~Wp_J7WiFCP6dPSv#Fwhw1wZI6U*JM(-hjt@K`wJZ4QN(+` zZdqr6y@6`=S5)#EXUaYJ+bY>BS2D<}lsXn_1>cPKR|@k=N@%6Gvp38xT}}PTAiW=7Q5{WCN6KatYa<;fO<8F>-ALAdgfcFovErj5wN_6Q<3VD|F7G8k*&LLE z&p_f+;DB^bhZk)9k<}4;Dmw5R4Lo?50i(9M0Hrz6Eu2IFq_|7btQZex-s7y!KTsDs>6$ zrFf+C3Uct(s>PQXAD=90d7WdOlL@M{zLwXn-;&0sD3*Pys&HAOd2O$g+z9t@8sk6B z`7OyMPHJTWHL{wK!uRokyFo5j1fcPCR9f2f0$N7YZVyp)>X2D ztx(OKF66MAO#Tg|F>!@vRh!T^<6^8BayL+0P!-AX_^$!!wY>^2l^^(Vnz{Qj>-}$= z{!UX_d}LXQxh=;J4l4Dz5c53c>k^oGp~^!;tX&}Ci-mG2IY5x`<;7435oT%Tp!-E? znyhS@@jReJ3k1@S(Yf4#J3*1ti?hI*HdPt3z=(K9fF$7XXkPzrpvD>;v@5;R)N8HU z*(FfpV(oyBu6#Z21#(7^73#a`V!L!3U*ev**pA-L-taxOqC#E2O)kMS%1|yyLOc}5 ziFyl2tO8XvhVc_Xd65VOzFIfa<>z$c&j4|8`@uy2YM$CTR`3c>Dsa)+16WVl@?y=wcdWHi+}&6%)yBgf96T% z7Uo!Nvld=YcM#|PY+}ZRE$oy7NbXyTlPGo$CY5@(bY$Krfae7Ft=i4p0wlULn3HT>$W)HhOx@9hr~pU2X~=go7G zp8pPm#4lI3kDrh3>bF*t@YzB6&@ligBNBJx+!)C$qaQ) zv)wu!Zx={ZTq=O_>I4!L}u>V4Qpm_(^s+_=KGN>PQoTlUh z>UN-X!+j*A{vGJti|e;&+^RGEUw_c?T@r6czkxkZj4#tW%&rEBCqTE@R#<}9$?CEo zsM`(_{jnwBU%qmY^99z|qNBa?U-*}W9qm$R;Kz8g-b zxDzzGte0xtHL}(BCV&Q&)qM#XEJ)XOpB_3j2PTAr#D-B7&i}O@cFIZQ7jeZOT!pXi z6?UnVE~Hd!+KIpd?|}N04RT>m9Ynu0goB)b&X$qKlW@I(13^{{!W}3ys72 zDA(`;XL%qoId(|4gRLNUen{ynkT@@O>%IDx?N`Ldi~8Ep-(q&p_O(->fuE=q+ef2Z z^J>@6E|tJo?!&dVtrtB;mDVd$6C49$-g*e{KN( zBB{0;Hs{00K^|oRI7>V56G&VFi)Kec_(0=DgLs5BAW?$DRG{)8W684pPBJa+pe$DE z+;EbKF969|io`a(d<7EEEXqp=AFNRqE{D5v0JndHw+ZC1o+Tqj#QgK`;(wZ?w*3`mTWFscqb5i5wJU?>#zcRwop&l3Be{gI=)FW#>1caZ7BRNlCKlGl4d;*7}p!SeSY(K{;%QMDTG#-xrlO>+@( zCt0n)3qbJ*&Z7U@`9zIy9P#@HJV`XAD>`DN*{S3!h<`MY zP!D;R%S{Asqg-_9?A*SWN7|*oW2TW;s@da`k;Pz;EM(4yZ*r#`q`sF0;yZBV9i^NK zBSz^9x-v3BVg?$lt^?`o;%VLmiApu#XfoP$-Hv>QgG9m1jA7@2B%gVnb4$R#708Cc zMUBsSl3W&%4|mq4jj>ZI`HX7r8KdII>2O|n2XroiiAq*RoT$h@7SzoN2JYg?S>(3d zMhbUZse5gdQpPUX|5Q+dy*i1!7Ef*DH=W_+$Z@oEu8Q^L$t`E~ z-Q*(Owf2L=IQW`GwD>hhGB94dq!WgC#dvoL&h3sxAQ75s?>Ug@1Yy4!U+K(v{`ZX^ z>Jo^*TE$Eo{Qfl{F(OB&{`FF4AA5qt*3}xa)SXaPkE0m`QUj9X${di|iYV-9kSqz} zD?SScst4V3jvd5__-W{{SarOs^N)VD9Z?1JAqrAdzvOumk!S@-fH0=#Yu_~D9?2v5TzN-Szw)aX zXkg-vi0&;?%>RA2`2=>+g(o z@l>hg{51>w56slz-+6odEh1l5AzX6H2(f8tJ={8FyY!Qoc z8jze_75@ATPhwVKcFFBjM9yYm*sHJOn?uHI?zSVrU9-8{j{JY4Y7{NK`n_f3wW=gm z1()M|O|G*`Y2{D74o%p{n)wm~TX+<&L>xo_@Cm55R&>1Hcy3JJKNU2=sqp`c$1&O_ zF63%Tch&j8k=iJ%*z1|BjdFREC`@?>B+YS?1bScZHlUN`R`_Ol*m$mcJki=~faA-$ z^1U+GE^W!=>)c>R$1(X4H>hlNTf7V82F)y~pFm>RnpGG)PgjwKSvMJ^i~c2`Dn%07 z;Ww%aV1q<`16_pEAtSH^Bx?6K?%_3%ySw54!frCX$b0=j?n*%IH-L0Qmeu~ai-=85 zV=f@IYzd^ZZr1nkPHf%xf`l{n40g)*K+=n%y7N_$4)Tu%@rzyjt;Li0K8=x{0tp{P zn{ai;MR<+F@$TxoY=PlBmKL)>A~t#j?FPvKRfSl6p|-4Q2WzqbWT*cbWi*j&k3MpzqkxM4T9Z%7N zAjwH7`W_@n2Sw%nj8vfe(z4SCmazaN8zmlU7eOUR>{ORm?b~%(vSzUMV$evbvxAS& z5+pW^TR+d&vGPAykkdg`OEr#*=Vy2rMD%!XQaFX;WC*V0SH>Xc=xE1w0Wn#1ak8Sy zCteTJQi9>ic937C$ge3og7lY`o@H9+#D0M`Aay6Q5+{R1OM3O;fB)BX{&T~2b}2Nl#5 z@YSf%eVpH{h7TnAhw;?O9@m8VEaFkD2iL~o>MfA6?tEpgbHA!g{oYW}aHpv#a671M znfSiD-%c6LhzaXVcM_t`T4$F^Y18#?w~mRH&v~R#CwmYJR*sSP0cE$ufyx#B@@>m~ zDy)!K`5UPP{za#5wuF37z_-DOP7;lMK#pCiy5_jhiGlo&gNQ5}@n!vY9{IFJR^##q z%1&yms`BZb5OpFJ6v09%&;H-B_;+ z`XeAUz2HeEa*CTH0tw~VjxT*kHHK8*(1AlfF&ZMDO6MgQD_dfz^XE$8x>m0^Y zZ^tWj+@w<@iy;T=8-Wt#(KGwPqabmtIJWQO{Z%(RUYWl}mBo{jdXcY1zFnK`lnl)J zJ4z)%fRuXERl>u1r-!qOT-(3vroYcTZ5t;?7#8mvUf%`^WG+wfubu`C#T z#5rqZ`V##=@i^E%CXc;$lszuvvA>qS>y$Q};_K|)X{SsfeB6ms(z=5@a%Pd28|*53 z%;#~GmOjg)+qTYbIgmMRQ+afIf9Txf4?Mb^^?$UCljS@P*Vj(+==RXzv9h)cdDIC6 z-r~{Oscc89wI0`FeS~v5TMr^*n8)mS8fmZ2hU?4r$ji>-od3t(dq738bZh@G!ziez z7(qqEh$7~I8MCOE1EQF-V$KQU5d(TWhBBdI#DF;Xg`@Myj)x8-r9e6*Lr^ z?3Btj3|G`nr*O1udBI4vXUZnWY5jtZBNIQa`n9P)=c=?@6)U)QR?%nC@b6|%a+$)Q zx7Bp3Gd$oC*3jmRS~vn#YRy)@Be1t2PjBo8q{+ zG}f(xCt%-z#jT>B>g~^C-_<-h*+a|ZIX zR%l;;jLo1&N$MfH1Mt-62l=>2u50?bV04Lde?M3q(RzKNEnFf1Qf`Y0xQlzGj)V6oqDa>ip~l7+b= zygrII|(NDMwng* z3abVzz3-i4^g)UC)R=L2jHOyM4G)vugUr6dfr0Cr%RL>k4$>00A%3)pj(DK2I$~h}whDT(Et7r>O$hh{|WPPkR3%|s|aoHFazg}npcj`B~!(eIKMcbS9z^bAh;GdA<=urRtSJ|gO9u?4j)YcUyXZ7&@CG3Lx zVO3VXme>VX{L_=9%@-8Xk9Zy_ z4wZ8>xF5i=_}~qm!(NTB1>Wk{VO%S)Y5Kw9)j^+B*awT(CjBh&9F~6C!;@=2o=CAN z@=jMV1B~0Xey~^xZa$l1^5{Rgtgk`{&VFh$8FF^H42^S0n3KWz-t=A{Ug+~Rzda1w z5SeT$d)*tlUQ=b4@4T}egKC$uu77r(MBChiG zAN7lbe$^cTi@P-rJY0r;iDKOI5nC}7-E9-EUjkC74j*wEhQ;6*u+=oU8{)A|Ho_?y zGH-bFt&r=Jev_0|b--xX@ClEYZp38*YDf5J?K0K)%stA{7mp4gRa`}1#nE~hN$u-b zeLCL$i+-)g*2IWm5G?K__`VD$nTN1AV$-dnU-k9E{oz{tECrVS4))_nai7!M<&f}W z{DUoT>JH0Wd*I;^QXC24AqkwY{*yO}=l!OiQPGo_nQ04)on)asXt)>_4`GauilWQD zpxE9iuX9pb7_C(B-3i+iJ@xCCSoaW=GyWLEVLKEz8nh!5KcT>J z+7*^IDXZ-Z^I>WGxclpqL z%W&niadHNeK_1b?5b?KLlSES?4|v?*d!(@ZdvD6|8*{!kO{2u#^CqaqcAn?Eb0hW+bppiQYP`a0k|7lt?T z!5X3sE(T`Rn}{P5v%aqO2HeMT(6IoiF=&RaJ3C;1QjS+}4r+%acQlMy#;@?bY^9uin z>*QvTc>%4Y3Oa>ap=le-<}p&dPeYG#X1Z|^H1Vf-5vHGJ1_vUya#4fD(4XcGn0*sX zL*8P_=L!y)zls?w#wE(8jKvKW6P523Y(9k~ceRvC3-=l3;GbsS5(e$pgOYmX#2NeDHw_H8OtJ9b2Lpt@((?k+TCCgprRu&*)|(V>???5_~Ndz;R#98 z;BweJdhi$|2Wi3iP6k8s^6ExDV->6N28;13`XY+gu3)fOqHXB36@To+k!lFd8Slf6X$@u593pUNjp2uemmN zk;|WtX4Fm>L#h}oMsZcNJKi_2IGEG(ntB+t2kfnm7Z|Q_I^2i`PI5 z8u0cnt6D!Sj@jzN;y_uyg&P5@d1ATqu=qW_9wkR@sa-z_!_xXu#o#~7u&TrBQP5-b z4pJO->SboZ;x^W;jGhK_TIl8%Dw8^%!5E-~r7JUV3k0ypG9_u2aPPCr+C&;=q5pU$OX5#qy^*7bN3R$cHZiEyWh^V%U4g894}$`!QsR?XAa_%P zHaR6--W4W?!uq|{7U${=0hKz*Fy7tdpr!EBp`X z`WM07kmTy&t_hp>*Ogt0Jg$cRqqQfn^gd#@6!X!`={r{vjguyJhaZn=JMGTL8kQDA zIp;>Nx7IhFK9M>SmUcU#y?f=?8)VaVx@!M(%x}|9zy35f9&Q{lVh#vx^lKwWj%KZa z)d+d|ndhVA;TYqr`Wv&?W>_9mQGF~u_>O;`FZ7LA+&6LOW@K13kf)!855wXCqxVJn zw)%SD4h9F)zu73-f1qa#Pu}%o@-{Dy5m>xS*ALKN*W}mjat59}9Q0l2-_)S(UJmUN zw;)>G2^QOliAn5G8)5N8f;kY}+C7J*?FTCO70$2ik*9rcdK4+`(9?ckY1iRLk8<7W z!D0mTA%6BX1(v=i@yU_Hu=KUziOJAWztUmd(2gdsxRvxZ4T7bgm>A{PHBIaV?I93r zc*?b79VS#d={KO*XCN~LA5f(TdZ`6OX{L8b>Hbpw?r)vuplNG1Zu`qdM&7yrp z`|DIy#*4`0?!tInGOfsnvraz#V&B%ei+<6eZsISKw8}DehHPGBeczu&wj-}7!WmH{ z3!W_3n|EIVp$GAtasIA)pJ~T~$p_X%6|@lZZMTu^qrbDGem4$iw0C-}LlRSZOE7)X zowtOJuEq)`ZzM6y}p|ZIeE1P=u(1t^BG=%q13kyR^+Y=*b6;v2y z`yh$I9?RZB5?>Kg&C-k2XuzC>jtA$w$vE+XrVUJvkgn+>LRSb|ERv%Ga0e*BUSZNr`_GNj%kycH30w zr;pY#h{Dk004$Eqb<4HCKDfp--xUmuXY^M-C5*p)H){79PW%dmoA%dBP3-~t6$2Zb z&*m-u<*}*R$mDEFO6@xQ7?zyzF=OjFkbSBB|C>nZKab!b>=3Nl+S8x;2kEB_JW+tr zuT49c9tegR1-LDRh5yq551`ydipP|Gy3aINKl$r(m_D$0w$f%H49oFkdP=O@EvVW< zsM@)x=#a$y3rBA!SUj@zfy5SAJPP%5*fUs+rduV4>cC zqUbQ)QyYQW4u-{V6-?;Mwm5k7ef}s^8Hix^Cjk~mS0?S(!-iVJl}|b}eDQE>Qpj2$ zo3F6sdWu16tr7Zaps#Vs`qdhNJRXAjWXwxgJi(guS0+^+sTSH9D;xUaX>-uDW~4T& zVTXO}Ig+)NZ)Ut7XA~NwqA89-60;t^im67^Q_F9RB=YGx4@oI?2T3noEj%Vs9gJi{ z6_gbfASL;B{)w@?k(2gR6N`;PQkrlS$$Ba%1Hz6=4A2rusbS?$H4aHV ztWAmW`c7`pf07b_2hh`^(+@({w}tj7p!EdZOMm{SEi8Qx=e);OSRDA`5`;I>T1`|7 zZPB5g6H$fsnA!}aIPrl0KmwPVXjt5S`pv?xmv-9%lk^ie#&s4B7-VXDiOZrX`rsL& zg(W^In7|SMJtIPmTv?@l`PrSv%=QSeH+_aEC%t}CwYedl!(x%d?In}Vrs4KqPhLW@ zpPsBXoetVLW+Re=bTxM%Cq%Sj(~*?Z%~K?CQ_EoeW^hhKOFl(XPEFo3wfkE-970lp zmHIQW*d8Q@=(QD_m3YdVisT4gwfaj7RutP3DQV+9B)jUB)tSw(T66ayDeF^yPGWOc zA}QUFZEj){W*~`sa5gNLUD;;PL6iQbk*OSGvUG|MI&Ne}D_+9a>Rda3fshMlrfb;^5Gz zza|wH?-X&;=R+*8Sdl&)bPtt0Ub1Wl!Q%av6=Ek2n{3xY?eQ;ahK>64*ss3Bp<*Qe zTZG$CJN%1UWs`o=`8C3le^JxFu}SkUA_sPqwLr<#5W+wH>1f6;uw_z&=Rg$-2roVDuEl6gxDL$tFLOOOV8qcT{7M z#M_;iEVeT-IqYZh(9fjxu0)4MKa=x+Chz`Cx`bgUA`SbQ+^!`ZE251*MUUOs0d?1j zKa=4sf3klD>K} z<9_VYdU6z!9rR>0lHySQ0QPQO4Mq~Ljbnrq2eHTM$u2*W$B>j_&W944GXlwWDmoZv z>7QbW!`Lsh0Jgi4Z%h2j1+UnmrF_fa%vI+&u1d(j02Md$dtvFfr5Kx-KEcBO zC^a097M=Jp%8u!XD?>0$eT>VQkB=vD+GR_$d5|vQV&Q*z!3hf1fW*9-r_4RK!RnWo zm*+GtyNQ;9RSlN@{d5#84=s;hlsTNi$yR&6nT-#U%)tLhhuhkPu(*=?Y|$%NKc{r_ zpZzi9@9+rky4J_x+8Essa#r0)kIUajsGKLoJBl$>?h~O~`uC@yuz1?l2F|umVDZ$- z(YX_j>!SWRsq@5cVZaA5v@usrkmE1hCu<8y8?!hX(SzDTa*T#M3T;V>jElj!R<1F~ znsKkC**G`(BWb~tl(r;A?hly4(-x8q!O2o%8<6?!@Zn-k`n9KsrM>o7CmYZOALe(J z`uPR712={^(Diqzz7UUXl09k&s*xSV3CH9^l8)h#BHF_Dgh&BAr!(<#h z!maT#$c5w%g(sr5g=F%k*#Cr#i>I8mI1i-!Ln#mHJwkyR9$VEM@i?PqBu}PNCBKH4{HR-?tSwZgHIiw)TeJPjN=A^%~=%hg< zG%z};Obv}L{;82yf*M##d`KqC;1BnwN+4rYruc8j{3?=fPPVZIbkbAu&8Y8BW&+%P zb!6bWD9Ez)@rSmT1Ttq@=&hmiQa?=mhKnD`6`crjGfozLvZ18jYtuw9C#68q&50}V zN?a>>hM9wGwr4JA2V!18TS)4--`5s%vLiN#{!d6(+!Sl^aBr*i1MWKOYNt5dR%uI8 zWJS1-(H4>o!flI2+^A>^iJ?SeV^L??7`bZ;Np}pqd-$wf*Cg zxS5m1FN;pnz5;R|jRcu>1An+VqG|j_`o)OfeURt9X9k>qnDG(<1HKZz2D$tl>Hh|P ztnfX^A|IukIq4TKx;a_zSA)L4A^}Si{_kXk-^HI~(h?%iTei&nzmWdv;KzogSH+te zGpZbGjJU=t$2Hgwc{a&`Y`W!?a3t+qQp{O&bMiQ;EILVl5Am-mtS0#+_wS}4{hCXD z3!_DDn7CVjzz*^O@z27Se|}IoHbXmIVNMg7WSl^;Nv_@uu}Ru9#WrUK=)sb|T=Gd) zzZzuR5Yf$;3bJIVz!0O8HgsMmeo2v8q4>l8-3hWiyTqSlJ-cZux8}yI<&d!0BW`V^KAIt%Hpz9d7aP>iMHJ}hAQ}IJbafQ} ze?m6c3I6Pa+)^&LRdrY*umO1_gXFcx1*BA1bdt$pVv`2t*a{aF7B4L_NxKZl6|N#W z$#zr)Db*C6q<<~3NnV@li%l}$OV~izQ1U^4&7qM9Bm=YnxgM=SX0^i~c0fmA7m)cq zK{l+n*!{&G2-1HD$ic@rkZ~u2dBOD{m-SZIkj&U30?8I{6`N!Q+r>_b^xq+VyTtDw zvjz$!PydVWhR(w%xlDpasu}S9N1lf>i(MhhrU9rtc{k|11a$4di z8Q>ub+;3E18|g4xk<)^VV<&b7kUNGw$c1Ea2asX23mqk&WcgfTll03i zHp%jNM9*ikP;WOI?X=^sfMmLevpE^mRq_i<;UeN^PIh8h@pBiy@?uvIf0B);C^o1M z>O4d+Cr5pCpmQziNULgG%g4{q&LHx7u<{u$fq%~~zY6p=1olN>(g9I#1 z&@1Q+I}7X);y6n3NmeixWWWic{}ZypN$@8pOPp!`5@?15GAGw`rs(EmfLWp^MfThR z$tM|Sq1YttMPmCi!GJ*`ki79*DYiM;b?ZbYS#E=Hqv+;j{$|lhmfs1o=XQf=h`+@i zJz=pI_wlOp|hNIuDm z_Di`#AnQ9K`A67=6po3I6dB+w@)`KN_+J!%lKK^~Nv?UM*d$jd3S>PuCI1e{a{l*_ z;PQ85!3W}J&g{^?L+5Rt4NqOaF&%7s=-l-jCEuKAsK13XGT4&5;_!Fmn&cBdb8?Lf zicYe@t{|ln_`~?6K{lj3$T$^1PHk9JLV}AqS-?Ydk^!rUO|rsTVw23TBepqNk*DY+ z@1t9bt&vy3Uxfc<+n44g*%NS3n|o8+d*Dt1z297o9q{k4Ej z5V)qfCBvMoFt6z5p<>D-7+%n=8Y4VW*sIjJv(&h-lhxrc^` z9V+&AkPX=Zaxo|MouZTMz%b4Ua!Vb6z<|d=R&W|*fioZ%l71IOzXUSC6|t{^Tu82Q zq}U|mM2UV&>}ZhX?`Yo-Ga(swg)zc=!uuc>k`+7>{jo4s@{=MP@I>-SR{RX)3j4o7 zf?fLoOb@2Od5IO+fGn6wn40G+EaqgnbfS|Cm__WQNdIh-FZ9<0R+L>b%*mEIif&H& z=Y-DuTp(>{@gr&H7UmH>DQe%3=Y>Ny6u^HWp)DkPpeo2f)kHTZE3P4awZ*TF_>nB< zDfZuzCsA_;c99nfvVw*ZfTZ43Y?2i;1G%%d68)c$<$T1S^yjd$HxjI{k7SsWdOzsw zk%8hj7-WNni~rw|4ICqWBpbl*z{s&S+C@xDSY(Bu#4#zdz5IX@zzm*Ds?mGsv@A4v>TSQmJH*MM85d19BmGfv5;Fu!rPVll-K}ifSOA4X-Jz z1+qb&V%G&3uK~!VK`QLAbZ9IBNxK=yK+QoGXeIf7M>e3f_>r`I#U>f21IYNDMeoe6 z;6i~Fb^*EOy{Id{lSZe;NLcuZn>iW3FLcHmAo(PB{1G7YM}e$&EXXZ23BPEx-kyem3MJw|vB*F{~Wpb zG9oTFm%YR%sb?2EJD-nY%W?=EC4;1%6J!_W65X84cNU%GCMy84fUj z`jWJ|L}12SG)(MhgA2T*%)WJfK5sUUGMCl95b(4D|3AOlSU z+10Z^RybF5C0qdF*_pFA1F-(3FzLPuWcyb$`!_PoI_Ru!i}-C7zkfom&kp#LVNwp% zcWw%-csIxj4uP!jm^day`X85kb8`JpicZom9Hf3)^q)j?40x9lI)WW=N%BdSyDT=z z{(U31IoZw+&}~5@Cv|=!JJ=dJ^qIoWUz(G%$}1*%F0 z$pF>FCfQXrgtbH`=~r89b5gG(`JN!l*Au%w$bGRPSR3@8heReM)`499m+Ai>RhR<} zJ%I-EJK9^)@c)e1{{LCQ|6Vz^ITn8m-bg$}g4-kxo!@e3 z$D$AqmtDls&8w^}4^biA)50dxf!sChKvthg{74?%_M&G8>E{UYY>@|KbtOP9=H#(d zR&-E5&6x>W;0kbH11btD2`htaNL7#(Ru|R;8MrRU#hh$VBj}9RSp1ucUsGGu&wwo; zaE*M#p^Z40llkpMPl~Ld1M=CBt|0Ah;!o1<4zl4rMepe^8NEaxIl5T@(s7aGFBW@= zaGB`AVy_T;CCC+8BX)>zt#F;>hk}gnzezGSi?CJfZNlxM?-Yg!_kgTuzt{(bhlNLl z$Au?_r-Wy8`ddVZa317Bva2qLeo1%*f-oBMw{BpARB zQ8d+ng*m6FRH;OY%t$OBaI7UktL^Wgw64RUj9V`dYC``mYDM#kYWryFIN% zAwWxL>#+kFEVvtF!}f^de$YbMUPpV8us8sd^&JHn?-a9zw9mt4@e3g9y#%tptKw%) zRu?7yHzc3rc8d}Hp6H#D~hkPQ4(Y;&^W=c1GJdnq=_6?iB7B)U1-umtF&rFM}b z<-BYqLQ-VKDUi<|ND0!m5r2|;Dv%Ab6+116e-@6S=Mvpnn46hca{K>Cn2~|E&WqCTXd2Y%>nCycSI+t-v!yQdmww}iR7D; zai2ryW49Ks#DQeXK7e%iL53R4Ty zf()Eqm_e9Hm<6Q21IWPHM9(42Df!NlpIev*5xC9EU)^(DWdut|FKKPze~j?INF#lZ*U;nNAEUuR(# zkQHspm3&emT)%6 z9-0qwkg*)(Lb750DJRm$QJSIE|GR_&X&xw6W zXDy3sBHRGkMYlj6Hupg;BwP9bWCNax{Y>&nE9G}v9^rp0GRbi7K^FfYcD&f1Kvtvu zrbx(+GT}EyTz_l+)=0?mHln8youqCnOlyaInL;{oAlc&%Vw3C$N0950M|6_q@`_Ee z;rYcTS+0<Y_PNf!7^^m(G2lhPXeVMEq}^j{}jFWdlfA+ayzx7a3vIazSK=%lrZxNCIk zz;XvgHYeM86gqiQ@=1mX7u%d1KVA_3E5bTU+n*bqgE3rw|n?3_CuX-YpbhHyklIxinq@G2X6=cPZARCwq zDkJkNH+0E2Bkj=5rh%Lm;WyP|GNSHlk!}V%~%24L;G8VBf%~@4RYI^2f2-}f!s-Mf$XwqkPFHD2OtAI zmi$<-8SILf4CW^E0GVH1?Al`26?%c%lgkaY1a3)$O@+-t2JjZ!N7zQ#R`NTD-3jCh zbO(998vwE)LnMC~$Q2n5GVUnq-2cWPLC5iuF-aHzGGL(Ce+p-V?6J9G&lfHN>Awu* zLNe}3$zKDq+*+|WfZCU|8%5XxvcL|p!-RW<2S5fmB=%9^36SMZgWO~nK(6UUkPAus z63FsbK=#1(OxXSuqC~g_a@*bq8SpX4{3jp-JQe)~$N;Y;|E=)7@T25^7W=F4n~?82 zWIW5vs_tB4Du32x4UKiB5~cxJM>=5!P&;XXEb9O|gXKZCxhlvwH9?lE1Jch^?D`YzJ@xSB8 zv-m1$*l+azcNt0Q+^JSeAahb*1D!kLM#=wY#73th_u4H|P^0ovGBp_nnFq%n$tGFP zVUP#KNsz@)gFN?L0eLWRsU#nkuYwQ#YvRN9*20GiNxQbN4#)-c*9tVy?Ihm?$H0y7 zVSvW?@F+8T2OKPn0JOhJlMVNge3Efm3)}GEq(eJ=xR{fU?I~huul?1@26VxP`CUaP z*&{viq25c_8{|TAMf%{w`udAK5cU7}-T{a5To&m_lC1FGy#lW03Moj^aWy_{X$U@C zqYe0QF(>mkYO2oUSHMN0H@MyZ$*bSkar9#^CcgqMsaL$21A^8<>dOsw;0uIA#-qBz&Cx_|D zuYl9KCHWO_eDxa_lF4FXlgY1uOMV4h@+;tyUjfHcf(Ix4ej~rrO@0NO`K#a9L$o<> zlhmuB__WDju!}vUtS4^-y$c!0*=p^Vo81loId}P{0cbi z49Ty6OMV4h@+;u@GXpH!O~fJ=S_oOUQAzXFc0g5yIV$*+LJYrME5zXC4#6>!O~fJ=S_T=Fa6a5DUV|7tiq zzRIVXlV1V%-+9FwuUmgt{{OG9fGfk>mH+xH;M9#c<3Nv?^qp?)x;3!!nArVOk6w#= zQNZ-+`Ouyt`|Y~?pssI7h9`AibT733eC9??9*=adIB-Sevuf!|UU=qNFfg#6&p==6 z=v{#?jOiD6q%)ZUR>j_Hx%7iasgeN`|0rB@-PE-=a#Wm}>fPM(3rA;3Sa-E-yP7AC zt$yG+EmP(wS3}(n1GlA1m(8}aL%G#e8n)OKJ=rSK;BoNb$)Q&twc5M%n6JNInYoL4 z2lvfVxqeRj9i4k-?R}$-L-kUp@@*TFD!}UP1ygmm^=EG98sTSC>HF@F!GSfFZJ%ea z-cPj(_b4*8T;qCY(p_2HEhOgkE_Jo?h6-)Ud_7&Q)~s}KzWXk8oZh@fsRCuzM|oYz z`^9zezI%nMr}-o9%8U^QzlC+oaxZ63l`zf9-m7(?He>R382vEahcCx3RbGFz+R#6C ztUnsE;GqA`8#$NPIO6}dQq!5M?iBuJ+)`)DgYf#52R{ku7wcNcAz@dw*%sBNV5?YK zd`tHYjIdPWSD0F;u<2H|{+XsOo7o}L{xW-O2Nk)rWy7hmap%h9KlowS#JKo}JH0lp zUQ{L|ZhWq@<9oU9RP@}PH11I#` zyf5|lKV!P?>~DKny-WA8zZ|pKeRSCM(xy`6(_R*nXYcTLNw?Im z?zV1MuT45Vvx)Kzw6a%TSFP%KT{I7z@k8&y4N?|4|M^Xdl4CnRC{Z9w{cX{fUp(F3 z)SR;e&ob1S$zAcU*xFoj_=A>^9@;kxQS1A@z+5Ux^)QqD6WL{gYE6T(e(kwU;M z2&Mmo5Us}j3Bmm@2oEXTQN?FLh@~)h7K9iTLt*}G2sQtLa9_>(3qqYa5Z+UGsH)C} z5Km#%YzU9lYYHKAAvB)@;fV^K1HpS91k+py&s5{N5Udr19Teh}h9UjX4ag}2IXK7?=zgXcqduMSffwh%(T1rR=}{tFP=5tMsk0QydnlGBRdopp#Zy?d1VT#nnnK7j2+fy5uu;KFA$SKvFfD_SS~Xq< z!FoA_9TaSpWiW&=3SELBq*GfcbYB4>^KuAws>5;!_A4PAr;t(Et$+|tVekqFnblzm z!&X7aw-Q2D)qf=fm(>uiQgBets~|*Dn6wH)c6E_Lz#0gpS3_`A<5oj(4}tKIf|Dw~ z20|=_xoaRes~8IN*FvZn0wIrj5(1&lItX5CA>>mF)~ZYWIcq?br1@w zPZYd2K=54;!Bvgh2f;cNg6#$fZmRfx2w@cVQz)u?bl>>Hqqy#2zX^ilMtGD|JvO39 zIE4rbrIo`b2*Wl*7`+KXS#^qn%N7W3n<11_!#6{Sq!3M^f-1NLLcmrCfm?8N^Oaja z7OO7Pj*Q>6^vJsO&+@+MQ0v0pjVU)zjJkFGbh}mqyVr7@RqWQN4R5VyzS^0oar?E7 z(+5myVeHsuS*k@FTdnZv9JRhmRpqt~N4MWmR8&Ppv7*>*sHoCb2vyaTtq|sKhY&}h zx+=E~LY*BDg0?}Zsc-Li3SQeG)K&|&!y{xTgaitn%5w(5PGRk6s(Uz@I4H{Ppv%+A&i3U5eR)%t0NG) zAA_);LVsm*6oUP6T-DOmy|m%v_bp+)9_P(<{$51NtbMO!8d`6vciKudPHf!TJcD{Q zXi?y~4#!`{$F!J{ep!dtuAZ@-JC?fd;(RFX>X==9{n4%{^^PZ1?p2l&R(J z#{~wTdK{JK%)l|t>qb2LUc1x3N#zMCalo< znJc%~E?HCUKW=63Kl#q#b2GoVm3({7sm}MtD_@tM(dPA%oYD7-w2Iu|GNj<1YktLD z%Us>wa!AmFz^H@wc6Qs|L|q%2Zb8C7!43wk|GJ@tA`xFYL6>aQ}43 zl(f@amEQ?8uYZlhuT(^Sydp zuRgm}ofDxQE=1J2b0=$;MSjN)+Ff>-dNJlrk%^{T_KVLAJYUT^g@a#}Gk$MxddzXyEE>A!Ixmn9SS5LV5tu8ro`|CUQ)e_oOsZ{>p zAj{B30VBuF@89{$g|Z(a%65F;pWY=Po2@FdUvnPb;k{kx5!n$c==JDeOz0g z*>h*_w4Uigx6d8YCdZNJ@m(B_F4)ueeOUh+kJiqAyK`KzCZ$H$)VQBwMUg-i!RGbL zR4d5uc-=NWolF%AzRG#juI{7fx7||>QXQA{p3*SQgHOwwcYOBOgzR5eq?nq{$}g`& z-;+h^mb`lYUYK3mNym2OGHc#Q^X3(@TN4>}?aG^`k?Bs1D&H~u@uiqe#T`?BSd=f@ zxRT|*RB+kYX?2Pgg&l&@t_|Kgs$GVzlS8^WrPx_~*RD~YkLDj6(;NTWHkvoD*T`Gf zCl7UN^u5=ro3|UC8M$WapmozWq|ehX>)}FO-`YC(nXarZHr6|#`MmG3eI9pDkvmU5 z?}z6iFMPUlcIX}Z6K2gDZQeY)Kk7co_xW7$+MZQT)^=?$DBatP`^T^UaOdcZdi7j4 zhu*w3pvCv`t42B0%vAi0ahzSJouAr2*}rj4myL#gWv957He^z6r*LYUbPI>FzbbeV zhjQ#G9NU2>A&gT|6y~3XP$?Y31T`fbLY*@Z;wVf~{G@Psr zPhqyQIR_z}g5Nm^bJcDN!!AN_JP$#s9_JyrT!IimVS#eE03njX=nD`QsZ$gJE<Q-0^n9E0LZhN=ChkpLxG> z?)ZLN{0+Y4t=o+_?BJLA+K#7Zt7qBQJ5TF(9Pj@a_b)ZyT-A4XpY6G>c#WkGHys+3 zqO)<{!LdWrK0WoyqhRw=H;=pI%B(WK=zq1M!^#aoP3JZ5TCD%$Y#(2|UX-bMs9Orx zVf&tSRnb?lxdJbty}>H#652ceDptUEvZk3@rDZIY| zVU1dF6+*~$2niVETdq}}*C2RDLI}MEVZCY<3BfuFg70-)NJGurUog+1dr#KY>66-V zV)r4T@0(RjW%w{V>-4TI+MIorGWhPNW>@Bv&E;1tAf4f+8d@`5w*q;}&bND$C+PI$ zRn3cjHf2$vQ8*Z)PF%}1B&u2coEgszoe=(J!N()U`_)Rgt{djD#45w1*O6tGwd@qu zvBTKgnJl+fewtt?xHIO!)kF7Ijp~robK1Ezi_Cg=lX>fMv=~+*Xiw0NmGAEyUj6o6 z`%9l&Pjcz(n>q8bR|zZ58;|vjV!ZSWNLffJHbwU^X*%{=hO2|)9<=$ zyI1+%z)fGSCU1ggIKJ#U{LHtIuUWQb%DQdO;_z?R=Ds<+aZ#p2Eo~pR>Fe>d+hE&> z_=Y!2XBqpwr+<&U{&tR=i*E_eZhAbLZ}~Eqwk4K?@x9JB+I0fwh z*`e%ipu>mVf?(oi++|R8S;i$AJK~8Yo>TXIN|z^cPW;rKck=WMwOTOkXq)A0Bg(vP zbGqsKr>kl#uydK7VA08O-iJI>ot7_pkZ)4YC;Po0zM634TjPgK&DyftysJi6>>K3P zyT+Ma@$;`Anzemqd|1sYeeNwEGjHX=aOZ_m(LWp>X7*YB*jijJ$)0^tlBX|Tnf#CKS z9?@#}V+ig~>A|Mn(c2zNLF=Lz>7x11pj3JSm;0)?)+5g$1o7Z~s2{xXn(!2d=410M z8s2Z$wl?o;ILD^0>~}fD=|%Am_x5}|FtXI^!7-!iZtJK<wQWf<%6)>gjqfOOYE#LQa%DKC};#$`W%~vCHuG+)Dr!?E&o|w08=a>zp z4&RCO@MwSLQKec_d$gQ?Aamgj4YqvRaiO98g<3(MFFCdku)5-KvDe*U^*3BQ-Fp9l z#-Dt=$}Ls-yB~dPoa3atUSNL?K7H}!Zp@^sm{XXco!Yt)|+(Ybi*)HRm7dR{KS!mmZ-(EVd>46pcYq4&cc=@!4- z_+@fux9r7L=u7lN?#St*=ImKzDphLy*k1V$7pgb++>C%B{hTYd@c7;-d#^9!X57C} z>6!oA=P?g@)pN4hm^o8$H>Z8`G8BIKE@zsd56heN!%Oql*#xL3UEBB#^lZ7qHsypf zX~z0_Ug=t6=HtFq>z@uj?`83RL-?VKpVK+Gt+>+CzuMQcoxSc{C|E$ncl~(x?Q`2k zyB;auSLg@FSLg@KB)mjF*uO?U9DfPnt?Ka#LO6v8dc0Q-uOSS317Y-Q^wdZ5wm2W# zRPNZt{`DGF-d^TE)z>B$G2!ob6XQ9B!<61MUih&QS=+s{6!Uf3nAbgguu5D5>ylg z_xBJgy@T*wO?d|)mO>l^gQZcGf6p0-4^Z3?#9%b4zo^vt2<82I6vB+e2Na5@u<8Q@ z%t%lOiHFeqBLvJye1zcr34$pe0%j!Qty)^9QI?+oTh$6sVV{w`{}Zy)DVxs_x_^P- z_ZgMi8P%SQsMP)|6vr=c$*6jKflD}r2ndGE;xa4&%IL3f$*N9$g^SBK2yO`w9Mtdx z2$2+`DP&g#zd;E24k7Rx1V!!e~`I7X)`_2y=6p>NW6}chYhO#Y)Ar zUvX@1<^sd7=8aq5&Gr15!JP)TT#>p+?df-FZ!DDN$>-(PCF90B^nAFybWZF1WlL6H z`!Y+!rI_#n6PEY~JuB{IP`8~;SyfGE^usu#y7T}S|M|I5)q5!FRc=!kwJJASF-dvm zK`Y|(AS*Nvgvsg?g^;`uNQMlKy$gg03bU1i3xseAqg^1(Ri`KnD+s}@AOxj`7lhza2tqW4 z1*%{n2$2*53qe?36;qck)B5D@{$5*lv@Os=*_JfftLRebhi$50Y4k&QNp@X% z2s>01g<+*2R4M~umzq)rf=g)#aTIo|a%CYzQV1#wVXt~ZA)pKdFLwz0)dF`2?qwk) zP&lYOc~Xm|5LynxVf9Hn%keCjxgvz4YMci=>Xd`vSP8;$)uR%GcnT2|PAZ4W5JJjB z*k1v{Db=AO1n&wEMpuS#MxCOEbwvnnRUkyDwdEm%QLtr^^Qu(^2;D0|IL>M@3akRb zzA}Vp7QrZx?Fgsv&;!C%RlF*MVO1bh^23pO-KeJenOYbkjp`m5h09kT@CGhgws%gGp{`b^$4swVxx`$n~nd|*_D0pLTU@*y7? z)mHMcQKcFP#=?FEK7suld}>r3$!9n%lg|@#x9Tus`7v&;k66o}~Q++UVS0CKzou%!PqaWr>dlkGQ zhx@0J>F12gU#F8z>3TQXTWp>4!PVp3X3wj(`CA=rc5H2tZ?Eeg={dKxv%3UlBW0+NUsmey zzUm*`Mui_aRMVkXH`ONG!K>M{N1@&Bj(J|a=4YEr)z_^Vp9!NzRB1gH_1T)oHS9j% zV=}pUWZW~oTD}v(*`Ac|Sf%0ltRs}Kf2+O;3k}ac&FZpge|)_xflHSZDN<)+-*e3! zt-Jc0t`6VspLbrBf^W1Hv9@5~wB~`I?{A&6>FjFK*oNwKf?(YJ*gWeUwxN#CRv z*0~Va&OGqbpvO7qy}3}b%E7jEGOfsCxq54sY-@bm4(aZ>>AH0*$1x*TMWu>AoUO>j zEHh)`Z=5mp-1ffG>HIDHvplaowe$IgJyU2cwz6R04CaBiKD@s^=&oJ%CCz(nci%A3 zXKjVD_H$b0%eN_;gX`W60c{7R4q2OOO0C)pmyhgI>1pmi+Fy#XU6AfrhO#4eKJHkv zRH*a>!dhfBkJ~@Pf%aur`@d-1bX(_gi|c*QG1R@th&xvKPd>g^d+&z)QTM+MJ-VRG z#OWQ4QTaE1J+QLUgqLF$p9$D(+`F~@lS!FRo{_-(Uwbo|2kteZeznY2`Kx6do2LB8 zTGxy*WA?SKHXu)))^E=53`lqv-h9`6r@pIi7LDw4(`L4RSEKL8+lA^|7W>rj*;B8l zj$Ia((*qkAIJ0?RZ}(mCS3UN++)e1+@$-zjl~=az5}1DC%%(H8SS@<#xNu&jwuQdN z_pg%U){y+;Z~c{FQI@GKE@o{IS^2}!Grc-L9OI+M)&85|EI;D%U2|4B>iLx2S*}q| zx6U8`T$tv2lN_-b^E>U>mUTn=InyW9n&J3jYPnw@TOV+2;1uP0?>7 zTKC9RBH_awpW0gBv0C7)KLRsuf0t@)FQ#pNuGVocr;?9*XR0)4?UH7zj#adX*y$JW zZtvHH#)AG?maICJR*ih|=wbgcn+8?LQsjBg5f1{pHYm|FOTS%aEw(ogT;Rr?IeU8! zp87gx!lbqR%S>yWdTiw7_*uAFBE6{ z`C_nd<~bp0##E1szjm?tlay7beD2iIRA8`ghl!_mwYt~wxfa-3>xpdUajR_G-Js5p z(qYz%I*&Nn=0x5_1$rEMTfe1UEC0o_>xY{Ldxyq09OYKA!RPO(t#e#EY@;pOY-w!M1_ixcRA^Yc@);?{{ zUzu>rXJSNwcCSB-`?9CqhWA&knij8opjY9v#nNR=Tc_cQ6XUb{Yk>_~;2h?G>r_qc zS=`ON_3px7SDv*^cyO}v+h#+*G|cS{xT6ALECwcaf~!N57q17GSj z-@D-5N1qp-_~U8p=ArFxw%u2}iRG+S<1fWpo-bXwv{OKvk59*>DzVskd&*&xUS}^)VY#-mqF%v3+Rx2D{wvbDt^L(Ko}JZu+w|R@(pgkjp%7 z``vLNA@Qd=r*TWYe3f)D1Lrmm zoFV3T<0%%+-@Auo9WeEM>OFB~vt(#+cf8lT*BdSD)@LnJw8`@aADey{`sB&6p{5~o z3ydDW^}?6ApT{h6nOfW3@riya*00fdB(CFg_MX(gms9AlOZB7r5FNS!?iE z?N#u3%^Q6C@V;&-c8@w~@jk3j%0o`x?<(hLmGkM{kCR)MtuZ}QsZCbdU3Z4{dEPgy z+4I|#>Xe8GY-3X?>uAH*#={O~YVT1Xzxne^`K(l3M-0*8eK14|b;J;@fR*}8C8RYJ zw>c^5846mdg_$tL;N6DG0}Sk3t<9_h;@Xd6O* zj;sm>dV?_f^-v31nOb62^|!>J-sfIX4HIsNqCYb&+VM3bp{6t8sv#g_RnS z#i|9Kdnn!#<8znZn8KQbnV428hIS-uRoW6lYcp15;TK zLIG1QVIIRnr0NY| z;SP`wPp4pbh}sW;cn`qb58x5X#!!cW!yh05nfe1bc>vU4K!`m6KD39=0Y@bd)dzz~c0g8<~b0K9_$;!!JxaSXD-013z=7$C}fQli&(#--=K%o z`Fo<$-0~?8<7VqVD7eGy6T!6zsdny-rh#EfTSHHC(v8UVmb{d;8sa3L6gV?;bRqmD z)AYHs6rZl=h$$Yr)%1b&SjWS95>YXRB@8@I0g{mAQ-EY&fF=wnh?D?8_5*NB07ygi z7zq9VV$T55k@GWvA`Al-QAGvWh+Fn zHMx{0?ReMdt)j2T<%jOAJlE1Q_{2clDXbX8U+^=yeEauZ356SEQhuDPc}og6;PTkG zCE(FX-@*@mjPY68ndR3qq~6h<^I~Y6K_H^w8zJm4n_D|Ydij*;(G1ufs|bC= z?~#y};=h4T?u`onJ1xSA_1=}Uw*qy@vmWgZafKvp67|tjQkSSNtSn#6O1?n4D^`-i z#Wmb0wF&-wU=WOE%_qXup%BjM_(`}>Fx1oFK+1rlBi~pk-_P}3gKcLYE^JI>yP>E) zAWiN? z4>%f4hedYfi^>bQvW^|pS-M-LvO*LvWZv=m6l+%L+cMHMhV{=xVY7~I!us9Ug=uL@ zC!@GHVqtR!?#dU0o}8b6C9N+n94+ zmHqh#X}&3^Q$l~*s$ZydK9pD!mm6l>SbemDBE8pe;Y@EpA?M#O@gm4h=bdV;v z_+u%;BAWry0vAOXQbHCHAZ{@710#C%7w{)454*krAUc0dvF0vTJqF3gGDwGL@<7J1 znCF2E)1e$JQBOcP@t5Wzx_2|8p~2yMu5 zARSmH;lfr7LWl?PE&`c`+7y8lVUaBcnSt8iHWp7oMzPG&A*m7&Vgg7+3CJAW7-6Zy zqW&6W9*&c85T|D#^H>)DTbIytki=4uWvEXnwCTnYdp=vfDQ~SD4`61kP0A+XHc@D)+&IazfcV=*pNpxfJGX#7{$PjBx?YO zuK*%y0JflE40RaP-vMx-(02e%=>YQ>wjtG80HF+k#99Cnn#ItK!JrO+8zs~M_+t*a0{}nD#t@Yaz|jaGfJ_?!G;;v{)t;P4(= z>_HV6l5+tBn*fB7Z4&@F51<3XUc}!FK*$I1ZUzuTtr&_h$hH7T`~!;ufKd!E5%~kO zAQl2dd;pL}!x-u?sJ8;hqR>_Vry_uP3fW(gg@@N)AHwJ??07aD02H;l$ zK;I6ajP%+8JpauiXAnpQK!r;&a zpn)ndB);}+6w%q{aa)1sD#}I!H0O2iwcMpIrYQ<25LADp*1oG$wu&4kS#h`~I z`v8cQ01?I+q&ff~R1J_g0APq_F?3@v_ylkcC42(# zs{x=N1TaB*g8*{x0P-=w)ZZb1aSY}|0H!D#LsTsQ$1uQUWI7C>SqD&q!5p!F23W%2 z@EPDLs=$z34KO$n!k|0`a1;5D z0a&~Tm3xGmx-sN`18_yulK_4n0L&)=+>qrofLtp;(=@EtogRIZhi_KnSlqrt6Ax7X9hyXa z1Q446@I=lt0Ge$80~oxK@DG3`48cDDd{GaEBeaa64ui=&KmJu)OVC8F|9{KG|667p!{22R z{#zz$07PsBdU;NdTy&uq%}*c$AaG|Zyb8T6VF+FYNJ2drk_Q2le*>f-|K9-QA%JNN zX()6JfG`X&zXrXg(<8NYxB?VmNn8iXq(?uoSbPRC_ydwnkDmPjA%21Hf%NcwI+s2| zAAjY>|Idg2=hGt^Y5=DZSj3zfq>vuvU=bPx;h+I2rbm}(K)SKiV0lfCHq(Omje$7O zf|SvtN-T0;K?LbQ%IT3E9mqJA4lEV)XeT{L)HsMY&ZY{ECM=p0AhHY~HT38{1IQAV zQ7pBv38AnF$=^Vf8A0md*k^<`7K%+9c0oc@0-v_@xxS{E`;{{$76J zmr`%=p|c1;za3h@FQxERzX*f+7U*OKii6X$SOS^HGE0wEW?;4+aT(f4Qg8?4^2TI@raH0pG=Lgt^^!NdU7;p=2C^`vAZU*Sapeq6` zxX~~MKSqGRI}Uy)#SS1x0EiWa7QBdk7r;0Mhg|^tr~*S26Yc}&A%JWJ0W_HbIs^d( z5&v$0B@EuX0rsF)49P42vU>o8k)#j+c>_R%5WrqEjDf%k5X=rBhC+n_iZCc|29Q9i zA^;W}0j4oXqFD??HUNXY0MaO7FF+jzdQkvbq$djCv<6gBKz{(h0O=h7aN-8Y$8Z)=%K->&2QZfd zFhtoHx-oFb1Dr#q@&JB305up)5W50^+ztQ-1ppYG!!V9PP!RwI=oA5>cmX;vz!;qp zfF>V+w-Nvh(_vV`Agc@jBX!CE$@~DL7+|pOAOLwMK*T`+7_P%W5CBkD0f6B;6@VfP z^B7>b?ht^*E`Y>C05DvKfhY)|ivfn~Q~~NRC~E;Y{M#0%-2i{L1%~SmLkpoj0Op6G z1q|0==*GZt1OSHXjsW-x0n}iC;W~8yIbndmox*S(hH(skSL^X_Em0x>f7jyq4>b4w z4`8@X0~T4rAgc+T!f>4?K(Z(RE6xLk>$CvKVgP?T4gA*!LHvJxz;K;5v?#(buMLa9 zaNRKg3keMPw{@Xt76Wk~fPoIQc!Uyk0O~N%>jFd|JzW4NNq~F|=j{`*i zTWvRnzuWQznVx_}{GjJ&Opp!K#y_EW zVhU!W8gAeuTL-WJei6pDdm35%>H$X6(bB}lR^$S9Tx zD9AMs@^ReHHIPXt2^PW$5cTUI(@>P_AVpZ_vCKeOtUxSIf+Sjj%tB$X5cP0Bc;IIa zN;VF6Zgp7bZ$O)QDEcK3Cw-87EQ?T{o3ND7DG>9UAj`0$aE9GjIBY;xp*%KF%HMF9 z;J5~di7mu+26PR_KTsQpaHB!8gM*kF*+QV9VMLEJpoaYRV01{&83H|O#s7m@O1B^| zq8=OwNYViU6Y|G_84csWg5+;Q*nmQDU_}!+Y(%P#5ZF*O1Y~gz5?phHy~U2SoB)W% z0O?KuThKB9_11rD_8Pb@FJ2M1U_Vo13#+AVJG6h3qb%m7)K^`&r0CZ!p_5n~t#Tfjq0r2<&C?iW>0J-Y` zO&C-V$q!&0gPR|KDyqj2Wd$JS4{-QzQIMuJzyJnyBpd)OmM{bd0BE2d49PbDlmh{@ zkbfWm`6j?LhGR%R2!LP%5E}%bizYA>VbBc*IDw*r0W53*)&OYq7*T)_KJx8A(jP#R zQ)u}CG^xX2@(`LBF#esShn(y|SVKV0GX9;WhlFl{lwmPs{5w$(bz`v(g>KIMJz|ib z1MUVsEpP{683z5z-3Dk11Gs=lj{wFoxIF?eMfDh>90Al3z-8nS0ifvwFpt3;={*Km z!jS(M;3}ei0+8$spd1NciLx<}T>v;@0Inm`7yyDRKn(_K#2yP!gux*e;3lfTU~vaP z{WgH@-wzHVx&h2%u>bqnL3J3s;{hB{YdkFCbQeJODS#vLcnToo4ls(r8A&DpbYtLv z@9=O3F^s|Q9zY`g-JKf>eFh-sf&0K;zTJ`PbAWLSiO-=A4>XG*>OO$M3jj})@B%>7 z6M#Muz#Hi$0xV(3$KZ>oUjih10hqr8@JHDg$ld@PNdSS!Gzoy|#(OJdNb4o2+B z07X8~!XX)2JVX^3EPMe3QvgDdZ3+O<51<3XBgCHyP=~=g6(9n&VsP>YkWB+X$RiCv zC;(s-Lo||n1<;Kl;uXLXG>pM75C9LF!yQCuI)GddzgXcb{_$c2S68Bt{}G_eQ+5zGV0W<+**AjC%?9awT1 z(KXzr4vY8SaScZFF(1S!97MJN+7vRP`vo9E5g?;jiW!kqAxJlth(ZPp2K?L6*NjM^ z2-GhUG`0xZl`*1kSmY3hZZSwXTqTM@#<8qnsbECfB_L5zAn7F_Rj~P3G^0UGUW3#y zqSV(QOITP-L2BXSTndu>7zBSwq^W28J7iCO0)W4&(=co1h8 zdd9;#QO`mC4&r=)wPVqI0b=qF+KfVZ-hnJ(VXX!E3gxK0fM^#wxJ#jLInWI-2f!y-wn`>VHyKB3Y`J)D+Gw` z0pLLsJpgh=0J^;ZyePUCU>w6527aW~2M|>ZklqI%fR-_6mH?Ra0|=s&et;zmtOEdh zkl_G8@@s%H48n-%69Bms!1@!wUQ~>MPzJy=2q1W0E>D6w@Cm! zRF8q!03bF6a0)q30n}j_z+ixcrvaQA0fMIi&Y~U+Lhk{TzXKQ|+XjGc41YHcW+DAO zKAHexXP|`%n!q5}450f1-~x*N0WgkX4TCAtngxhz0Z5+(xQv!DXnp`N`3Yc-Qhov~ zVPKsDxQYzt0Fqk)$}m_Wre6T$j{w%c0Is8A41_iSo_PRkWH}E|gyHXp@FpTH09dqR zSb!F`sC5y5*n#`NS1xI4X00&x7dh)~ymi|9Jz8K3|Cqmv_= zT`6uZK3OxKNaMIH&M+GL-%ybAl|?@>J! zJKG-7!9Nf+C>(RGXj6pT%I4468|yfJJ3W|}%l&5dt>@Ni=gj1;b*7hQ#dFW%j`;H< zu^w2F?kcRv9YwFgipG0jMQa#5AWML#UV!x90G?xIQ7Dv69&R32G$6eq(~hcVaW*l2LHDS{`(M-sNw$>gV5fM z8Xy$aV;~MOu)5n&ZF-B?3;1kRFXy>Do}|vr$oObKdpyV^Ah6||TS&HGK=%B05jH~$eC?QH(0LZK6FC|avPJwtCdpI$w5V(dsyILc z`9>gNTFBRF7&ai77673h3__m)l<5GXkv|2pPmnx4fZrDeR^8THisI*Z7k2)k z>a(ej^ZC%4G8$ZcxYkou^ybKT34@AlNm zjjQeoPmMJNUbQxwREGY%U{3in@dV2BZeG0Mz@VZnPV7l%bBH`PzRkbjf?ys?OfA}z}-&z>Q;SK z5~R_V36E>FPX4pYM|_>#J2(CQl76j!_b$GN@I)C7yx83^Pd1T&O7_C;UK)eribs_3 zm~Il~sR*ud#fPMyf+sf7MFHn1uP!L+83*-W$B@ zyXtXbh3$vMow>@}^5IW{_e9#kgJ~!PVNN+-p;GCm#-R_&p~GuTh8zN;p<{=+R`aWK zqxwm#98al}#Mg@Y*aZ2>`=~U=wgiaZ2{+PhIU$oL_)&!F-<0rw^KVlqvy1#FTsyJh zJKK9P&I_SAtDE0?1^=$J-NW)y^T70Ib>R-P$63q_N9sux14sD?Rhs4djz3c1m0!O2 zU0AE!flf!f6CRT@5OvT0)T^Bi(73&=KJbK|&YP6MOW)&t6h9_U=o1nxRWl;8j1_;A zv(NJ=*$;-qA2QfUSJ@SAI?S!~>budi!fwuM6i0a)0ci_CISCUC8{KD?#e|kS`dxkE zY!&Wq;&k8=9%8RJ6quXh=hMUVA(D-**z3{(4J|)cfrK=1wquoHjy0pdIHIVyjq+4K zq)<-gN~hfFneG#72C-MoIqW-Yh|%MRmrqKCt$sFr+O&IH7l#Owq2l`bVrfWF717{E z{bh$BOVTf%xoOF_H+Q9yvVxr#1@6G3f7mH42bzjJO}CzJ7G*igvt%Q0{V3wTU8MM^ zyf%~G9hKL@g7yrFXA?t>Ii|Pz#T;m8JCc6(xIibPH*q;Ia<*@e7{yj+Ql>W+cx`8t zsPcVLpX7^qI-7GsPHqX_Q4kn9t1sCcW>(&v=b%@YBy@=surR_qIKU;q;<)?ei8!Kq ztH0Rt9Ua5Q9mwPxq!(bY$3OF(`LPRHF@+aZ_ZsKi)+UdyUtPPqGp4P6{>K5E+ZX#3 zWsHxn7xR+8Y+SaYnH=D7T++(yl_<*k-I;WnBE4+N^h}l~nD*NC5&7G5*pufcbz12d zMM8{%tPF#i)cLno#~F_w5%g-{Bkggm6`A2WKhkSEHf8iI@hlYiz1VwtelAnEGo>lM!Q8Iu z=cP<19Dk7SUx<+mif@;i@uQAuJx;~fbeBW=+3FLksLq&Y?-&eMe|K$;ju9A9^g2(G zUOr`dS#><@((!>;PxGkkotBxWmwNEFZ(xJzVH5B4!(F z-XL0((tTsZ>eD0B+Q5sl_3{?TdJ58ea+{CDq%A8(Ej>fUxzmif`rCF@HKV()*0^$9 zouevOqQ(m^=&#*&7Uj;NwNDR96LZR$3YZL%YH4^E#z@WUOOak7WqNpZrvGBn*G81NknX3<)HGy@Q;P) z)Z3lCcM;DtoDh0LYESrtHLWV?$FZxK))t+0=9mn3&dWE8kt%!;~w?$e}ra@$!xqqkzO$Y{bYa>LiaRWPUAEVehMS_By^~iDUG_D zbjP&3FMZxbS2nqSvgGkKmd@y-H)rRzyS&@1{F8b*dzMAzO7)5nW7<2T?RvwmUyO<< z`h88g*|*-Sxli@1-ua{&(eTbHgOH-RVK$?@f_^br^2VW}Q2N8idy{=r>q%Q@{B>U3 zoBU-HsJSEGGX1qUq2Svss#-3%Y5ER(<=jm@zs%W!5TDe$@t;I5sC&Fvm9fhl-uKJI ztMAZ-3tN}hCIfG=H9aY8p8EQTYiRfJreAhZg!rAeY<*w1z1wn?BE2%o^s;RI8yh#W zoY`x!Ju68@knib{&mreXMc#`M3N(|#Eqh)r#(A|3Taz~SNp{4T%SCTuiao?(L;SNh zGw;k^MfSUlFslgmiUPSYolRf0Ej(p^$h&9Dw={Z;@~dk_BXfef!|A=R({}71`u#~r z@cZY(JzGa)-hK7+;VZ1a(=p^v^gX$)Ad~WhRZc)^+hMPa&%j<;{#?j?O7y5Fs4 zHcqkG6_lH8Un5Q|jDC5ejG;8NLG8Qn_5hAZrtI+hCww9+(ULxDuE3&7biGO^% zXg~Fs{-2zTYI7pzkoEP!eV0%zeU9aXoWjFX+M4Pbvb8<$LqAZ?P_Cj(@7=a;WfzVS zr6T>KGHjCzB03T=2R_sO*-+@pNw}oq)pTJ0I|A=JBNF!u>0|w_FAo%#-c~h>&73%` zZXkP)*(D|#CT_u9#3%{wB5DXogoN)RX5nVEj(d%LoR_+ZMgu=8_wrhI=rxmdDP2MEs$G2u}?pkpkE@UvcLz!^xfBPxdBmGug*IR3ok&gHBp{fj zR7IY5%ct0{heC+SQWZ|OxjDvIM>meB$Iyv$e0}ZRkbAARXjRvc&+AV$G+%1q7_j1+`8S`x= zy>>INT=vn~thtK1%*q^h6yr5mqA_%gY_KCFdS)&GEbwf1^A4+&z?Az<2o;--g{@QZ|hyo%Zzyhi18TmMnMMi@EJ^G|$a>aBPgd^5bWl zEK*WRrliHku^Isv!NSKeE;h~?UJ2s!&M}8k(-Q2K#O<&NeFW670d|7lGHe1X9+@5> zp!@hIWO6GYe}9TLNceAh7M582bG2bOnd8$&)GBVn2J(e~Xm~+1e}kCwf{gxGiX|+g zX81i}lpAr0g?(&a$Q6z&I#0gb9%<%tG5zpn@kOTO+ZrR*V76=hVJWASsiW3DDOi|z z`KQd*R2#C+_oSZK_#hxbGFz-s1;wtxIiayIe)}ChZ^n_nih>qb^Q##XqSo6S7PxKo z3ckJR=C@%v+R&j|{q4)DiOa2*x4uJp*Ic?McxiEZaz}o@ol(OlGftrQY$lXy47< z{ysEn4YV<_)kt?8N*s*O36liWi_Zy!KTrr+EYk$^nG2){i#jgo3;~64GoFdCV1%(A zykBMs=n@|^AyR|Ks*)gcq_M z*;(&R^y#)W8Lf+L^%>#z$$c+%^-`L9)IR+hevV_gPPT_BwtJp(yK^}AD(P?j9oF*M zYd0;`&qtyCjeD8TwbYAAQVp8rT@9am6B+01mP6Wic6{&IFPlh}4D)t;y!8)fJve&u zD(j@JkTne>(f!P%Pa9Rz1JciM>qGRn7H_fmB}yO8oh^M}bfx09%)tEk1&QBgnJOp7 zb(#lRhAk&WcV2Yd{q5eu)0hi`i-mms6zMHeruXA!xv{L$+dd|Fy5fen9g3=Ao`VZT z8!u|~I9(+?e_$+0-_Sm>Wsp=U_9iI$iOP_0yR+rG!y${qMV!h7YdaS_5DzUQQTON0 z?3uxu8Jh;HtF7+k>BGHg_D5SYkD1niu#DgU34ewusS!(aR zW8x6x(}w0hKecq2xYOqS)!F`#W?g-ceu1OA)43ZgXU`0u;b9vXKT5ILtCX8v`89wn zuh>e+mdSFQyyI(sabais&?SK_w|+DKP%#mvWgiHavA?THs$RE^r&F@|IL=HJYU4Qn zS@j?xM?%)kJ_@-(4}-=VTbnI1O{)3uqi7HoUO&a|Jea@?tR zY1%U6OC7a-u_K54E{XZZ*K^HY+XqR}?xv1zH8M5x$t=7mRa%i86n#^d<=q}XBt{Q= zWzp1ijo+?#d5P7P|N3Caos_0FyQ8UX^pZ}Sc?ym{uRQv-U3_m_t!Z# z#=CC(*kiOf6;GE?mD%Pg6!Ed3u_LzVsM{kZlf!Fe9bT`~sqT~3#gC5=(`qQvrKij; zh^_2vQOw{OpS86snP=8{f(F+|z7MlVaBh$Akb2hJOjh;qxY0F7s%`svNnBC#WZB*} zU-kS_yY%q%KIJsJ@Ijbg%m`Nvm`|_ENZB!am%`^!f(g@dj-=SESA_7bTm&o4Tp7Y zczm@!WJv4;#bz@xp=%QG?1{_-pUKMaceYmxqQ3EsGEVzX{d_99uk(F;(^Fku;ULNQ z5AsgFM|y53*bKeyw(R0>77o~eHYI#M9TqUo!hfKIb2Z|IG$&0^ zG>PHet;%ziIx5eP%bQ=VU8!g*y74vhJYCNv*}Ej;EH`F;uI|YU9n(kRc8X4env+K* zi)h}dp*1Gh+lTh|^_3dyo<6TiUrw~Ma$xq^%Rs%Qin&bY@7;Dt0SF zy$rj+s|j{vG5hqz&cgbA{cDqD z?*s!#0<95_FMmABq`Oe)KP3Co&EZN~WkK`qQ(VY|g^{RJ{A_3U*=x-Thot7OmF{pj z7M#p->Bt$vEm1`Vw}`_HHC{hT>hq}z9{hZ%kU%`XIft>Jiv3N6ie401{&gPJA^fLB z{`ZPpcI2-IA8q0W_-LDG!>}^^>Iy?0fcsX1?62qdv(?>}V*cYdf0Q@$byadzykEO^ z%b>*|)4s@b z*X-aB3;$H>!Hmd8j^b2W(}z2mb8BW#Nd!7?`EzA)`;*9^RzSI>-` zw7dSs>_<^Sz}d8ShgFK$1=`3S=8iOcynU5Fx;?C(S;72uI6mp0ep2x7ezQ%x>a&HU zAywcesy&hg!Kdmft})Xsl8Yan`w|=1oBLg$o$V4&!%N?uPZ0&z4!^7jYxbLDloAQ0 ze5A3LGP?sGH81J5u}$Ah`@LtTV9%~^LHY9uvQw;EhU(7-++Z_b-NL3d^kkCMoPF5s zz|ZnfK6VGY#rgDE!h_AF)sNRT-O(DPr+X>!OU7}U<#e+v2eMKJgC0+Z7n@kMm6nDj zZFLWb5_b`CvC#WWcQQcJgl22RZjlYar@xOkD7;|kZ3w0Mv|r)h+gtwKXoxW(BU316 z5eJkr5tmbfGU2{37lEpyZW-hdzVUmvG}#a}0^w;K(=JHof`Ba2s>;3v&eoNGG zseIy8qd4-VDf7Ke?()`@>~{%Jxq4^MV!PCmE!XxhP8~+Cr24I9s>#()kBU}3V*fy5 z4d)WoUp^hFoWJREx7B*a4=>Ze;Tz9uWl-5RNElCr*OjI0*n9Kbiu8x`58ZzCySX`- zh>%q*$E~W)Jg4p3MdRobt$d)CDW`JVUhKMwFB4jf=^|4|6nkUtJEu^$I3B(K4ER@a*HFuKx2&W^a?a`lB)=$kKr71>^m zhephl-tUS0^VnsZH%QsU8rSFBq zNLdlKAAYcit7svLYbFO^i|WMyh++U@@&NF-TppJUK<9=Zzl%G4D;w?Vi4R?C*T-e) z{70GQSRZ%N?26IR(X_GJbt ze0(;Y)@$v|m3uq0FPSm-lGq=HaL=Xw4yL#=jkMiHJ9kok2XbaYIaY8CbVI-H-8Z>t zW}T|UY<^QmhfbuVw+0>EXfY|>@BaKZ37tvvqLP?Nqrt=KwD@kYPC z8k2zJ`oV$)*8^Ux6X$Kt2B$QssMQ93wp1Qc>e?Uap`U-+bZyi%=le8!J=-oRit@Tq zrdQ`GyUy+z3q<89eN+(nCs&A~lnTpDc!K*E%TpC~9XGp1!$ulP{ z)?<32olM1gpIU0U*bUv9n!Za-V@)XRRk*&-uk+*K?o7((0q&IPS+W9Qm)jR%X4*yMo?AUi>`$>H6_uzn^#^ww)ow=MQ&^Aid@CX z&0}ZRg`CK8q|02T{!YU%-_SCe@*drTGP@A_k9PJWe2_M>QufNciyQfj`CP(Yo8D&Cv@9|CYy(m};idXw7Sy4@9 zzIy}PW+SRD_PT>RA`NOpiz0odXschI9b-)+ubtCbrand$RsJc0)!|e})|$oA?}EqI zN4)BM>r~??_N^yndVDjUV#S7Zn3^nIEio4@1y#27>@`1bSDlAxNVf>6usrl09Ej`xG+2HTgm(NU!5O_|;Y zS&@&S{Yo#taD>DkZ&Z052#9zXvLfu-Jl;4}m+V$+!72_8)y-fzXyI)+%no(KtRHH+& zGLYWl!IdZ5_q;XMY2-Y!nepPLU3}ptA=4Gdo@i}wZ#Y^x=%e|B*jg1VqS9XUom#^gp zw^z=g*tvm}>4{QVCidMGk8cg%el25%h{u}6Cil*o{tq%zny;g1)~t^<%yqmPxBuJDEU#gb#}CspHShx0n=nslGG-KJ*ePlEdk9oN)V;*hxF>qBS*Q`vuP9d9!~#BtlB+wdcdyr(ACkhgMvP%qdrL9bSP_k z`!cHUssDRda-@Mwnabs_b;g6m16x-`PMl7APf@*xlV0n9oPcLF1{sMJdp9cVKz2D9T=xY?pO{I7U{ojYrK`}05UlM z=@n(~xt02GWLt%m#B#6_TXm6J*z-=K4NYr*_D$$e?G$;tIoa=YMC4_++ZW2bip!Ke z!@L*AuFi~~`u=wI@zxuZuR;o?OpkW8LxR>Noa;U3W!k8@xsUSI6QS8tk6$~cZTWp{ zi8n)!eMidGiS4B3v-2Cf)kg+IEM_aR9<-n5SGp=*5_eJP4Pupp^oE&hY09`vsJu9x z3exU<6Utibbn}!Lv9)Jv3X(L_wB8}hHp`Uu^{7UrzM@p}#R7$;;N1(yw=IXHgxGu+ zyFW@%y+@Skxu)hH7d+iOyC%&2*>1{&URGd;QCn-fv;e<)?DD7Pka(4wt7=#JNIze; z_a1yFw|{i#(XJchbS6TB=~1+vvg<7>!|5Gwo>euJmDApyCSUr>e%lV?o7oGuY*cSI z_=l&4dC52gZ3}96bbk4AKq+tZ9>Gb4gA81bvEs#~^Z~USUfY%ay{_=zm!JsB^p1SY za@)Mk^ZwMI`k)j0i=WOqA3Yp7YgKMUOOO0Hn^u(;=#P=49(JZ0l9Y@XD!wd~-l@eH(IywX` zLVgddtH3YGdlII9ZKi*wT9>`Y^Df8k2h#`JFAsd9s2-wBZ{StB+KT@=ul;8>s;uXY zr3Xo=VyP!SFFwp4-+C_Jm}E%Sy8XwHlN3j~ca!Vby_H(6;0+UpWO|hz1=4dA>p3Ga_117Di)G`65Lqm+$tjk~e+-PK>JQ$x)=DYY!weyw1r&X07j#pZK zWQ3o*Q+55u>jdh>`-Yr#18G}@9#KD@*XkuDWm)u6dk_O#qNF&=n8%-#EI;{GxuJ&L z2e~OiIZrIe(&NT z`72U2ZgVFz(V-nrNY|W(oIantAh~^5jIK4~&ixncPSKq9J|7=a!=MuC(ys6h4{=|sm{sgn&r+nNDSw7FoUwGa= z;V=+%dBDP2V&fJMZZv@VjWvOO6Da$wd}wh$>s`B7n+~_smsAG70h41N6eYKK=)Mzm zlb|iA+%2U#@++dgUp+)RaY0K*uC_^>xNP%KTc%Ze`!`#fR@5n~R5orB zzq+kWmp@COS8=|QgRYQI;oA7Hi`vxJ7k8IJKD?GOR=GJhY`%Pkt$$2Ux%kSVwx#f= zu7bBjG~%NckY7SA*^woVB^>DY}8Qt3IwMe_Q0GoYozu zSZA)cOl`Z;Kf3WXzu^|56_5I!V#~3<`Q~sMdkwY0gCWin<~{N1e<=S(RU&12*-c%2 z&xg&a`ud}eAHDLz_VtL9|4gmQy`R2Di#?a8;__6vA6}U|M0(V}DPo^~M@*8-$;pjo z?Vn?03-`!7M(XIJX-E&HYr%&H{u~2*c&L+6iZ+B4M12fGDl)_&4P`@ce?_@&!A{-_ ze4zoGc6>>0-$~ApxH;9vvroQgUnPHb)japTkn4S#o9N}PKRa9$d;h7?q17VJRO#}v z+VJ+N9=e(^yB3O)r&IQ8Hgw?Jw4S<5WVuMpzL3V0LVn+TIa&79if!&ST4$QYBt9v5 zE|uCiyH@{pb`(z&a8T1^Za8RDY%ORjAzywk?HEPJ8I&ClCY64_+C3}ZTGRZ~{<*Rz zjQ5o^c<{Gp8&)XOByt;uxK_5@_Vm zj+?T&e}AsTSaL3SMxlFXQgK5GSzt_f)Ypn%>)%_Y|6PX)n2_3e#xw4Plq;zF-b#DW zEBiF91^fJud-XPN9d@|1$D3;Xej;c;pRP0?^MLELpo2=r{vVIe>D6Za=sJn=%)LX2Nd<$x znx5Y&x_?dCuXp}>__Mf^70-O^O5=W}M%!q{6+P-VzuaW!?wuj%cv1YGl9i6tA9k}= zo5q2=KE5pHGjBydSSK1*OzrB}6m^8RTCsb! zh*vFU<$&E23Te#XCBb7o#6+(CnE^-O|OTENkd@#Ql!1>B5zwigHDS zD|>$y>WsOX-1KKTNw_Y$Wzs8LPH4+`|MM;1o*h|}c)lxo`TdU`v(`B2bVMvMRECnk9J1FXp50Q6f!+3$3_-H_6@%KnO13q5y@vf~zKMKA1fh-eAh z{xa`?_fsRUZ)fd;sV|x;lKD=u+hh|rmc-L9Y`-#aCfQi;IbWFunudPeFP_vc-Ee=b zVt!^9*?vdI_Pts|iF`Ago-=J^b3OmUU$OJsYE%xr0z-d#;1NDoMpu)>6rC3SM^!Ff z$4MW#;H_c*U+h}S>=Z@fs#K3k>k#z>u4$;P&~!Z*Y0ybfm&w>1>OcC)FYVw#vs3SO z>X7Qwk}mQDY)kqu&|m3ocRw-v_@)>~dDfe2C{`PW*h#*Z$xlbDH;-J6+EL^xFB@!G z6#wu7?dtMui-xkoW|66zeNWw!?u4oLmOrKSuJZKKJF(CE=Q|z!qS{5a=W1Ii(yM1e zKkmmIB3hOxm=tPXAce4>6YFxV7@a$P2T=|a-2f{zi(ClUaa3t z+3!H2+TQ*PhSnA&=2O}CwUo|3xf>Dhop;r{$KB35W&agXZ_)ja8Iq-3DLuh^Q@S82;|DFo|d+U1(WyiOoJM}kk(z}uAxy6N^Z;Y_X^)=7vwA5%` z%RBzqD|^vUtgQ2CL_vs$C^yYWh7WJw{k=*o%_kO4c8_g1n>L#9@9$as>-Ym@#}CuH z^LDb+?r&b9Dv;z76<`vA}%>yEWcQ6GIL|aeUH%RK~Zz_DZ8yM zcj|I7IXQFtp)5XOtvktdGy6q-jUK5u`2O$3`uCvYkCYuVNF9_l zI6|cVLb}4(vO4oIa0YjRyTjnnxVyW%%^-uj{_9P?%;_`d z-22}=y;8MTzS>e-v$Lz(m2E=naa+EAsONox#@l26`LHAAd)R@5#ReZ==HI_)@S9p+cpdx8$ttJ%G}__$IRnEU? z((X}{-m`BEOzz6r=VIP#gG#=7Ti|=CqZ^9O+k5)>_XzJRM5&$JRquAX zpDl0XsejK^=8<>ZdH$cprLZGTFu%+P|A+08)^8iH#?+0sp4L6Ov1EY{UyIzxlH_jD zi|cCMo^q^3sipa=Ou4_gnB&h{6>?u`di748ij_L})yuPBUBEfeiqmif5fj?KlP`FY3d($y`8r_T}9XaffcSd+Shn*>siY(#j4h^^~-HNH83q&{)p%j%1P`m_OVX^%qvaQ-?-=ZQlmBM?eTia> zUGe7h^q50aHcQYV`m8Q}12(-obF)W+`yWpP&b&H%eUWaq?$l55jj$s=u)jc_Xl=Hi zY%EhGnA!Yh;uFPs_WEl`q!%*=<=_7)#+aMy&;3#D%gB_DeDPDbGgajrnrRs4(A#0h zo9x~v*Z#4O`Ym1`>E`=uTb30Vzidp(D=8x;*fjXu+A(K}2elYq_R;IYhl>`BmnTx5 zew7=(nH#HX=8U8JbU%|VzU#p!_f3sApa(yd-3@YA?ZLl#x)C+(hKBdq2QLYc^UqS9JN}uzS zoYEIT?&N(*U-A>b(pN$5b4p+H1Ajl#H$m<}O5gJHzS4I=?(DykzUTK}r5}Ra_ekAo z>vHm&QiRjtCrlCjCoF#KFRK59737|%^eaF0EB(f0aWT^GLGBq!e{e!o>Iin1Elx_` zFbkCW2fIHj4HxXLT7oouuzQ8lfMBLe=Zg2-^QE%M5+jd224NY?tZ6zv)awe z9g3H5(8GfwyDcZn5ZYiYJq1-A{g@-Kq7>uEcH7 zVCkU)G3plDmb=x{a|O~(Ec-og=AFe04ZK|K_?Ps)e=eoNO_Z=BZvFn^>ir=tFIO*r zG0~7ZO&``yohnhsVYi>(?%%ZXoIkJkh}rJaA4{6wb9FCUxY6%(a?byly3UFYV{W84 z^m1Y7=}6NrdiF8zNj_@W@iuAQJ$do|3?8!haJ+m$Gt?Df{^ zDbpsb-u?Z&g8e3~2~4_iZmAb%qY8Kl#)9yoYLM$WyBJ`*$(#-_00* zTK~rLdY=q9SZGU`kzo!u(Zh~-Tk>(vA{`$$4xeY*(`_&6JPo?^+y5vo5@eEewXS=t%S299e)(7!@BkfhUU07GW^l=uk)YU($4 z#}+ye@^o_ik`G@sbSG}Xg#Kc@bV!h=E8lbyxF;w{=zgpuk-JDYlEm)mN|Lx=k@zPK zb|=Whj{m2gMoz^q))kV4ou?-`zE*9%{&A8?RZ8@0cYM&zS<|2VQZ~h$b?2^TJCZzo z-SAb?yu8!fe`%kjr$*c=KCeyGSlbT$RQ}^%6Ef9`ka@(o=kMKPT65igp#8Z@1MW;6 zUea}J;=XT@x<4E>Z0)oC-`*EKTrJ<^cg;rrIxynOGrj$f)Xf(zV#+o3gVJ@bxo>>3 z-!e>VI3q%XZY4WT-#p~zpum9>vW&X0FV?bCMGhT1 zSG4@I>>b|Ko%Q>K`aRw>Y?R`q_y1OTr=2d?-6c2Ut<{bxjmb-0We8hW1)_xW-!k>Y zvhORL^NX!N_HbkRz-r}Z)M{F)>A_grSHw%-Auz(~gO8^Kw2PB3!OxXP$0?SyV8LCR zBLCR6X4l#%t)oSl6m41DNtKs{caI#^#dA3bvWXN4onmH zb2tSBb#30hNAoTYhbL~PzkA+1XL!Gi?lI$?FCzC($3N+#%y81kD&q?8E*uj0;D3CZ z6tXO%#u_w zhkI{~rtc+?m@m*Uh`OYu%xn!%=vJ)eiqEUbUC(_C{~D`A##OB^-^LcI?uD)bp7t zB%(Jswx=`;=L^HDgg@qRMAVElv{8?y^xtcwWxI|| zG)HC6u+=Cksdsh*B3!1JyYU5QxuCJkhPDpB&}=815&hhSpF59u*GBx%vqzn!`~oW9 zqqNr2I9vG#oYCBSj_BbO9Im31p?F_lBOPx2oQ%cETd`94Cz?(M2Y#*6#Qe6b5cPCrr9Imm&?~RUx zZrZMO<~Cg&o_`k=^3CC(+qgV|IkZTXy^B=D-8n+wsDSc*eva6hnH-*ZY}2)Q*QTl_ z9tsSSZt1Om?{JlC&Y#2WIOK3wy5`Ii5E9_$h#E>v8h_7%bh_mX^hy;x?wbsIYq|g9 ztTpp2t6x_4tH8iC?)=FD0|R!)@$;_LQntSS4DoXWYpUh^Y}T|!HAT-7xYJ%@t*c&F zB@GPp@0-${`I<9{|IL){ir1V?0-UKSt>C1d!v5V;hhDqptms+Sl|3~Ol-|!%fw4)W zy0cw#CUl=!;w_4tn|><8&)F_+J~9yTM&&6aQVA-TUr3^ZJj-68inF^R=IU z;T56J$2bRh=hW|zn|=9b@0h~n^K&H7n0C7x-C>=0k3!F#oxD}>lRNqucJI8Q$(A}t zS@9xns`9D#^MaEaZ%*MIlcz%5+2%RBdJh(H{lkv&e>=GSJ<)ESC3m&;b3|v;8BZEd zvv%7%t)iNVo>tr6y85yA@nK!>)a&)I)$x?Q?v687X#OA0WgKFjJM(*HLtDR_{od(r z>K{1UuZY_(Twv4KhnjddVzxBTOUDRL?OgV(x_Ci>-u<3 zDNfoJKiD(uu9qOtHs)6RNE0#4s`Tv7+K_s>=OqkG={>iM^X_&ae~Oc#{nG??2=Cblba3(C9VawO#=s|j-bMYl{j8jC!a98Y z4|(r)89y$^WgU^j&V=W9>AS#q?wn_1(51^<-|ifG_UFJ1e*Rkuhknl;7=uHQXZw2Y zT;)wzl#m zJ;#Ms(ZRuYj?3?vc%qW*Cx0KX7J9}N_@EC9Kw)>~1c8Zk%k^J--&61A`LAN$704kh zlExQtMI3KYR(Pl@P2k>tp7yj)Y22$^1OFv z_3U`kg`|VKHSf~3IakK)5S$G24iBjv7#dPLDEI5&!uHiUq`5n3o!|m4$M+xJ7jy3T z5#YHurgMYm4+n2V0n1lTDZKbebTj#cl-V=f_18vxf!j=bg);lk+# zE7zlryta5rEiei$pSchPGR!{XC}=K)#pz~5A#*7$PPJFeTpEkhU`can&9PxST%}B= zGZ_n6+FW{^s!-Kj-dsj=s^$vjGUGIZY*daa=CaxN;^C^A%Wh@k_Nn!%*d#9RSS9Q7Z9Y-+L~QtLPw zG&5Her&>r3t;`ko6!vZ#ZOoN0my)=4=1Q7Nh3jgrl)2QnZZ4ChO=`pHZmx{Ew78z; z%9`U_rK6zjCgpIN!SqnnTm_5EfcvD4gjYp#8OeV!=c;5f6Y`tM%H}fTK5BF4RRyPs zWP#7-s^L^yS)rdYylPt6Y~+76SIb;>+)#71z2kE^av(oi^VYgv>Bx!mwaBfH)2^8d zepp;Hi_X#pT9rp{y35wZ&=I+!?6-k5?O{_G9gv-E1NqEifOh zr@2n%^5Z(2>ujz7t_w~ZS{HK#$q%fK7OJ1Q66B*<+^^B)uh%eh70JIhH{4t$ z+-GyYnX8N&X>NqMD!8%c^qD4H6&jfv9f9dq;l0k8=9O(B3A>nZso?2 zYJ|UlR*zm2EUqSbtqQ#+nyW=VnYl@%DqCC2-$pBm*A$a=$hXC5BX*msOTMGI={U_y zJ?Ld+XPB#xt8H$kxdu4j|Ms3`t|6`&TdGTEuGuCVk#CNan}gH(Y78y3N%LB4aZSj# zvA88TZI4Z%gT<||xMsNi=2qgg#LdBF?su(!ElCR)XmYg`ZiyReZjHHCxMb$mnrn?q zVQw8x**1{U+(vV4ajDFOTG@8m{?a0KUfyD|J^A$Jw&JvOy8V>F+)j(@h|6jt+-0s4 zE}OaC<~rkYn%jd@Ep&l=a$5iUEU+v2{1&+10=waK5Yg+P#dRltiFKpvhC>$DgZweA zFJ4E?^(247+%YTL3%3`iYl-7Hm*%E7H030(!~aR7(mv44+)bR$?R}xSIqjw@+YdT& zC86_^c2lj+U!f;XuMg(>lkaWrqd6Ad<=D|^TI3C9=_><8@hCy5l3`eTK;joPfYw4Xht)1Us z9Zpv^!8ny20qf00w78MDwKmgHEN&DozPYG!TK}UV2~t-(ntPqX$3Pl$$!vsUap|mZ zN*m!gTr8Zfic*;yPyU%zb!u}HaDSOgV{RhO_1t7ylar7y&80Ip8TZ;;dUI27Z_H&d zHx>8RTt;(l+&gob%uU0+_d1s&v&remPZpTP+zi}jb6L&J#C9S996T&BlE* zm&4o~+;?+1J&yXHi~M0Smj%wldA3TDpUllC@24%5*U#n_koPy2+uTB2ICFW-Ey4ww z%WG~iE~3k1KBP9TB@oG6K?_`pi(;;jxn;O$<_hDqD=vrF=89U}3S3-s#mue5B{1hI zZgLeep~({Fe#a#;SJK>STw-&j%&oyCF<08$T3m8-Wz4O^r7&04>s*fY$m}M|S>Og- z4s+$rZN%j?SHavSTrP7JajJ#Q@RPa9=0b6K%vH6rTX5Ap-@lYGxt09AD7^8iZf+a- z6t;cTFt;6-(%diRcHq*Ot7&d0F0Hv*=62yS;zCGkyO5ge-H_P=>zdnx%WAH^72b=> zX0Cz7?Zf4?5jMhUJK7I%be3E>4Tq@FD zIMvoEh-h(r%$>&F%M$826B&0Qit%iL&O0K=DIuDJ;~P4^1Zcg#bkBb{i4uaci{ zZn6bl!!5AFQ_Nk*Ei^aP+zs3!b8eg_d=nO%n`LpgaFcPa^kin6yiLBM16SXWTO@{0*li{sJc~PG5^OgI~e-;I2PT)A$Cyhi=2+RQ9{B|58#oCj${I@CW(S zHbSR4jUki81>!Ujeob`vy5tD9IDSfW{A6V#TAUs~%xz^O<1}Hl?ak+L)W5zGOY$3| zBa#)?H(~}I5qOJiE|!f@O{OA7;6q+CbmGepY2LMKc6QhWzZ3sx4RsL3Xu;nryljr;tJ!EnTv`$Z!WpHXt+x_ zy;7Kqj&ohHz?3FqAT>ip2~1@!Cc_)8aB6dUkUP2-iB}qPv2j|BrEqD@@uR9kt5L6X z=HlYMXd~15Pj50FvMF0@X>0~_@o_V~fsTyk65w>eDob1@oK{^zoDM{KWwp3OI30-e z%4SYYGjt%*E4#;0|4EP&n6O?sEHEj~jVp)CX)XlUj=~jixy&WQ>CC6sPv(;2bSBm7 zXPhc21x{bRE0fP-ar_$Pn5)|>dgVoG9#SC_ShW_iKz>N}+(f9t=Y`Fs!9}yOMQ|#j zriPzvL5f*iI^0}bZ9XrKQ*H5cvuEMzkav}`zzoQG1lC8EHkT3C&_-CsTqax!+ZM{= zG~vv+ROZTCToznZTq8cOU@j}}C3DaOSJCTSj%>(RCMzK|huLwj%~iF+IdFINA+KsU zO*kj+qPZFtmkW0s*PPFPvACabb1bfw#r=#M<-7i?Z8A49mIc-^mj{;s*NPF=HK!;3 zOXFJO>Y3wbc1Kxr^>G?aeq1?acr~)P0=UZN8oNvuL{?;x+7Q?Tr==@|t7NVjPTN#r z9KXnUUTrO|2##OoJg@fVisEWn*^W2{9mRO7ZE>9}&Q%~NO<|^QdG29J&HCPc>TtU1BSX?FC9jdK6ZlF0eQMhYvknaC7?BFLo$1T+_ zufY~r6{llBFWeAw)o`Ua9si0OYOXr&XFEj?Ggkwb7uTP-;W$uqqZCo~Uqs`U96%J1juQ51Hq%JN#al^=uv$%S=1m?!$!tq&s zTnNrJoPkMJxB+r=Z0{Y8DOR|l1&$$Zs>LE%MZUk;EZUas;(+Sr=<74`c%@)`hSq`}#7iz8xt~71~PQPF<=;+E@5!^=d zTg`RD6~Jx6ZNsTnyWJ^&K2L}3Z!O6uLL&2mAJ0B2e?EQw+dGa_XjSqx!-XU zaDU>Gm|Kne3HKP66sLt-gG-9jE15UWTW~eZ z{fuMKv6Z)9aC+&>rQ){XYFb=goL1d-TrG12a5_lsz|}Ta%!SN|+=;AfvZEE=g==W8 z3r=&r8`lV@R}Y*fya(6V;(A%xy|^ak`r_D89Q$xh%?-9V*M4L(lfz6Nz_l``&YLum zgSgf>z0_lpw%|j!b{01trx`qq>tt>+jzPx}-a4C`V(uueOCXO&ZDYa3Sd&pZoi&OJrxktR!w>Y&7*3A5YYie;9NmUDf z;+mVgVsVdk{%v9M8mUJ3gg0L!%IoHy;xuF5_*|bU?ip{I3Avl*{=)g1C*Lyn9H%Ab zZkOXWPBZvIj{FbR|6L1wiPV*k#(vM-EAr*Y>!n+CT9Vhe66F0!A6eWR@+HmvVeT#N z69vMN{%P(V`7h=kE8nxyvJ2r{==rLU9Qx{M}ptZWAsM?uWSu zxIktwF;0(9Fz9gd)`7TWIDd12xNV*}g&Q(nZZC-jTQ!*N|IxZ6fYKbC3o7R6UlRWY2*)oxi z*yiHmv|-BWF1QNE!@b32XFzTDlVK^Fb1u2}^TvA*(Tp?T%b0N6Blq-TuYAzYBB(5kf#9VS*cF*${ ze4rM8eC9}j)bU!cK_aLj`vHBN_Qz0z9QG`P16mm)5m zl}(G&%#^{o)O?QAkq)UZk7XIiXf8cYUlipsnahA%f-8^9Y%U{iDNe5}I0hY=c+*5G z5SPv3GUM*EM^wUP_d1s&3$h{u)sZfv;|g+WJl-a@&- z&;XamTn=1At|uGe^4a)u;+mPuZ!Q2^&_?((uC}?tIL%CM z+$X+9Hzlr^mCb`|L!4g4t!!RgTXQAN<-@fzS6a_sF%Cz5v|yl&1s1>^Ca@K* zoVkLyUAWe`3g!yocAKk&(+n2I-DQ03h^uOGMR51bRkt`-QRGErM*?diNgTy+G5B8C zoq<|7jvJ2RI9-hN!qvC95;$FC=+(enN!)&1AL1ICD}~#M>xXM(t~4&EuKxxg8=EYH zOvEM9KwJ}ZWpPQ(H8n>=1xIw;VB(sYE0256mDEsNb8{7N=WxStEzIdItB(D@;aUc> z{z*NzS#|7}Y-NF!2|P^U5xCaos^I41^lD?SD((+zP_MS;s^J2t!EuyrhhxxDowo?) zI#^r{?f*`b9g$jhx|jQg5ss&D7b{HD3eRD50*L~3crLE5IT~g-K2vxBt{+Y_-4OTH zoNuFUg!^G`fR$~G^J9D}J205_PwHrbyg{H|g9y|)q$%#AxnWkg8Sb*V;pUp-^c8#| zBl^u;3!K)mzD-s*BSSktzX|@ zC!6bnduwhAPBqvS_s-mOoOa`GxcBDf;52({%g#v;NzfTw{U#2)u#YPQ-c( z{1tc0+y;y5kGpMdv&Cs|x??WX+yLAZ4%Ist-xeH$j)A;Q_c+%7Hj{&pGm(1fw|NB) z=53a_UFL@1W}DlC(~=Cu%`vyv+%Vi+bNkE<$IUahUry(r-;nc79xCQ18nj48* zXzmbB>v$Ayk-1|QHyXFt+;JR(jxoF~F?Z73Se$DqQdM)>$6m6Ns(Wf~9xj2oXEwh1IG2mUy9j)4feVlW&Al+U5I4x&ODntx*9fQAYn*Cf zF|G-2H{*L}ZV9fb#eKB0OL1|cc#1k)pOIR}%aDnXdl~p*ZaFT6xv%C{;8L6WW^N^} z8WY(^+3z^b%qm& z;@063nTu#~>v5l{>O&NYWN{mCU(H3qX=XO!oKac-x?>gH zZjiYUbGvYZ%_TFp8#l~ca&vod!_B2I=h}-LXEG&{LB~GcCYwubf%|b&&80DS09OsC z+iYpA>_Oaf&Ksw3=`HRMZa+1sR|a#3aR;NY{`D;;qsb%4Py%(EEt9#UxTaP(v$(I&Sc$ z6OdljE$${xCm_YuFn0^L$>M%7cN_P+IXyi`xZ@5^S4MXj;ORN<{lB|NT?I+jAy8F) z4|hx{uD-eZINf5^tC5ZH0d9r4#^xU4*5K|_wu!k%xTQGVS8QtT4_*K1mfIs_Gn0Q3 zINC<2TeE!Rc#Io^(~ZRz=APg>($!gp5fHBpzaN}G4~fv3-?^t zUu}_E;^)Z91ir#`u)r6%(m37o>uByJ&YzS2J6tDouW;WOiEia}HuoBrgtEGo*Tvi$ zTvBsgah~hHx5yiOY4}QDHzb3Ocf6g#>2_QXEBqd}mfHG(>uK%-Zk@Sa=04)qo9k`v z6Kupd$riA3NqbN;weRCQF`aC5rflMxpa_nVC{JZ?S{ ziG>?!aRE53rZ~7!<|5#AchYRAA%caE*PhE zs@HgP5pi0jdQC7F38!sIuZiX&<6OCr$zc+bVMi3+9il6uxIil-0$X+;7;NS;MUmqlHzi5rYweAYvT*S z<#L(aV1a7gc7Xk}1c4jPCC6#QtccrWPA%RvV^wgQNg4FCc>9Y5sfyc*Bk{C&(}r1- z0X<`&nodn{3gYx~?J$`Jxu0sSOQ0S+P@r1IX~Ok!yUeA->8o`E+-`GfEvK*6a(m3F zwVZb2M!3D^GU6UHjV8E#UgvUTLOwCM-vTq^o|!vfE(`7&t|^5Nn#+pQ47R`>GNVG^k z5>j(h3fYiAxyU#Y&tsOga1$7aYOV}%WpI;mx(}$bdi1ggZVE02j?KdJ=w$)iR9sw~ zX1Y9ad2nuALjC?PSpk^~ISr|sjVfFbmlii2mlDUIqY`hb{#m#*I1bPMPUWm(Tt_H3LPT%{oS>a!B zz0BpXxSF_5IDHr7_Ns$5;HZUbfzx-vLKasWmzn9h^kuNHN&b_IBRY$|99P6#U0iAk z>$_V~bMB~~@)p;exG}`(yF&$wYoX_Vry}*` zK@XP@<7mlSKinyt9vaa^TH!Y0&fuz#6aX;~5W+>xI+92lt8VYOZ%U*8fJNuHn0x>_gxzoG!z=<47ERab0n`yzYt9 zF53^M3F}h2ua*53rwPmHSrE-kf1J(-y86+xAadI40vO3lUH|nrIRL3Kzamf%h$wI% zPERVm#_9PGxk0#_Tp8;UYoNKoI6ZLq4yR{E6gLF7nRU!nu4Aydp}5YRDZkqq~ma!nX%*>YHGYDSll?=T84GaH__a9^13F}HQyw2 z6Ugh-tEcKGo0~{pGsESb%Q3~|BxD+{N_2HH)!bzAI=`nQb(@<)J~AWBPCCupRPw4V zozth|NE~k7x^ei{sd^Sp3o?y-7o1Mjb3BgqKb?WDCg)k;44ewCOJiMN>_w6|e&MkTSs0qEqBb~){~zVjrA{i+~fxGnrpce<~EYo zT+5v_w~4$aQiAl9xy|IGGSekVPvbO$q2#0EN|TcmC*Ox{rUvO%8{rP}g*k8hLVC^IPVy<4a81(d=5~=!ZSDq+9n0a` zjZ9IDee^RPjg?)oyO_+0G+D8 zTG=z?b)R4EyTzR)uUqK?&P2LbFX>11Y9i;!>t4N_zqt$Kb*o-39FD}(@=3Sq z<@5zbWiOG}PdU0qaGJYJUcUo%CJi)qh5R}k%g?diBMvA1}y|867CnT%$EcW^qt>rAL!NK1E@ zyw2}(G0fc~pM&G6&W@I zopdIV#y9r|dCkmJQvHsjxIf8jX5X4a7wGp7@^W=1EA66XAHnwbr_Qs#7@Pcx%)MHzG9aGJ2r z73Iu@$7%c6jH^KEx&G6&nl8C?vZ!c*5iD>EuCfC8+=g+snhW;Tuo9EM`WBzY%0&v-Z;@9UY1W=@CQ`sSkJ3UXNHsOxexFc|}>-)K$~*w9=|TyArX%*DcG z!|4#)*j#K}X53j^6LWEJiE%obHZ>O)mk@Um*UaNs|M8GI!s&q1+ydj{RMk3=v@n+d zr>d4~X)d9a)$yT~xkNbCs*VM%ajMnC=5#D*YffEqMc4g5?Yr%*a8gO~+J!op3o)lH zxudyc=CqM@GMAjZCajIDGfop$Q(YYiwT*SfF$zaYi_FwBD4Q% z4$Cp1iAZj=!15NT+Sp{Sg2l;gHdoQ&R70WWDp{P|7IT#?PPMkxTosoEN^Ub*RRPS5 zs&c!zYUWf!JIqx#rzP5Hu7)|y{4R69nA42zHdoVJT+P)Ula-qXGg(d$vx41OZUrZE zCt4o-(WS0w)fH`iQ1`RyZniKKfuc|hibDxd7qjY7Rz1j;fwE8z)O)OYi>(NipfaeZ zSoI96o?xp(4fqAr32ZG;$FFr_u!X3%*LqMN)XQr_XatR+2{Z+D*4i9eKub_Zt*t?w zv$h3w$l4w{Ku72VouLb;W7cla9eRNJTI~gD#ynds#OIMwqiZ#?o(O89tR~57Zmjmt z`M8424+TJ-vK9t)#99oBLkTDerJx-6J2^;007QUKTseFOb;|k`)DP=-cncpxxc&4A z)Ski9et~uLfqYL^TrcSD&bBHzX6u1uhl1K-s_muPT7CjGuT*o&ub?KB-@(&tl2Q0W zI8al_0NBoFYAC!D)W%QT<{a9^NnZ_9b!T(h^=Phamc9S9CeiQ64dF9I=NB* zHSa-vkkY@Xr#sPir0Sbc{SK;|L3Jyr?m$PuXi$%z>fuv8daD0g^;cUP>Oftn2lb&L zG=ioPGO)FgQU9{7pe?k6_Rs;;O{}_wRhO^b+|7RvPU`AMHU!iIXfw{0&7lRT^Un^@ z8M;Du=m9-JoqMV?Po3V9fUZDv#i3JRBM#J!p((V0me2}XgTC78OJPUo1f9dtOJWx? z`eN4udP5)R>ke8STqspCvdJL@q=ZzE8qz^V$OM_)?N_tje=3WR~gaHiys_vp%5YQ4@ zK^tfX?V$s7g3iztxMkrYnJ5qyqCs?s32`7UY$tdJ>;&~;rasGh!)k`tfVzZK7m(`7F&o5#qI_N) zO2D7Y;1hTX>cvsLHmZ}x7x1zXZ?8bTF{<}P^|q+q71f*K2T%u!>M&6qB&tJ1b%3Z2 z4?X=G@|(2!FI0bp>Yp$?I6?gq20<`HbQf709Mh$q1*1a@hzYSkJqyMG^(Gh(;)8k- zRHuRJBv73KsuRGZ5CX|S9RRAszm$*)QbQU@3+W&|WPps22{J>LSghr&WU_%e22@9Y z>iAC`{i$QWpCLEofog1i4_H3+*;kkYqx$JnzkI16HKYOczn2~|KqgQ(ds#qT>!~Zf z9FPlsg4~cNW?eQBGU^tu0H`ax!f+4PaoD*;dIrwHc{l+lVIT|w^rEOI@=~gXu5>8Zp|&FrHm#0!)NSFa@SUTt15r2_PXP0`)oPhUqW^ zW`g>hn+r4fx3g~4Sk?5^n*JbfG@x$I0L8Q z7@UA$t|tQ+M+Df<@J`qQTb0LcBz3LiZ56DBHLw=iG2-^n0n}wr5@xC;X%q_S`J-qM z9b$l_EqQfh zrH-rWK?7(AWkJ1imWK*Z5h_7tr~*|%ooA}E%o?E1Fl$0Bs152ydM?a^`7jNptJm!r zWa2WX31A3$b!Ih`85ss{ww-D4EAAu1>eOl;%!dWA5XQl8p#G`!jZ5FKQh~m+>Pu8o zNCuJN3bk|S0K|0;zK!b;zUsa{hp)9KZhn*Pp!UQ3JKu4~4C;9rWBo9>@#% zpa2vCJ-l-fE`c7}xdM7n=Q`-&oSSe9^ia+nxC?q1N6+3ogh%iPJO!S;p??H2&*25U z1U;5in>nllbwSTU>Di}kupac(m>#~H1$y9a4s4_bH$!o%xg2H6Lj`cNAa^)Jsb?5< z1hbqPRzE7MAuc{%40rbR!7*H0s6BOkvXfNZn7o4{a1@Tg2~ck&OW`u38%jD1TreEc zLk7qQNg){oKw0Lg9O$u#M$j61gMLESPv#ey-^*$wruH*SK&_6J!wOK#BDK3x#{u=A z0W^W8&FAE~Si~Mfb2Ad%^PW`#4W%>_lQN29)fj=x|cm~^FGtwrYhTv-VtuFMJ z!ZKJ6i5bT?;sTh46RPPZfo}5X?u72EB?tX3a|rf>Zj0+S_$tt?blu$7J^Dh7s4(d1 zmJ@Ii^i<1f(332Ba^*JY8K7mb0#?Fq=37reJcH-p%Fdgf!3+m_E>}+|>xpEwRMxZl zaUd?lgEtiZ6CT48cnV7)2{V)wT9YpWWuZJ&fXCEEGq%5utj^BR4)!sfJ&;|et0rv3 zOW17}LjyLPme3kLb4y!oZq>$CZE9mP5_ONU4|af_MADN-i^wM-O$E^)7%Jd4G2T$n zgQN>U4~kY{9MzyYs9k4>)_)GxpW0At?cU9_wbYZVq<=-4N~uJwf+;b&pr~bo)X-(7jyUyLIU< zrS8q@UaaoD4u&D1d#=M^IOtyM2+;l2QJ`C@V?ei2$ANC0PJoG^Tc)~2s#~IJRC1A- zRRa;V^Joov{zK1u==qN6ksR*ZTY}@e^lZj_(DN7zLC;_;20eGN6!fgca!^wTwOH5$ zYJH$KmufVy9Mn)?CHxMnVKEGZAutT|-2Ye@2jgKP=y`rRnBYuIM!kt7gbQpB>WM4` z>oXi%{T_D7?Vx^}*0Ap$U_aKA==#44`bQ8q*z(ttZUFs9ij}~>zi_O8)szWj9J+(4 zd${^JMnARehTmZgcz&tUuTc8cNxw4bSEW@HQtQ*zum9b%#&|szNn)s=eIZsZUm&5a=nXM$j0VKvQTAEuj^t z`;Fh3PFn~^#e|3KY(}Z65Oqp+9*VHAb=WENtJ*dyKn)cifu2Rsvj=~HTHZN`^9QG{ z5(3EtK`=ywNDvvKKvd9g{d1`-{q(M1+SOcF&2!a;cqX)k_7IQQ*wB?DatDSxLMPBO zyIYu1brCv=ikt?K$wz^xIzT?7zza~P(tk05=b-=n(HNRRYv=;4SW9i8J?J0W^oC|^ zTFte2L09MrH6SgdhYWCu@g9QXa1!={{%48)M@e%RZ7t@e&;Pb1c5rC-vskG+^ZXRb+euqV!{X3cTK9d4s2({YG=F?)V5e%dY6X6pl-YG zQ031cC1irEkR5VEKFALdA&QPok*QiI1A(Bv0e8V}PF6)sby_gRN` z;Vhhoi*N;wLqyhjTjGik7nzzYL>hr%^&#_-T2l|qlgR4<*zWq4&<@cW%D^mUW+Lbx z8Vv=FMF00`APj>3@PUG2k74yk9Ky_~d{okC5FKJdY={GKA&M@L zo)YvDUcqb7Pp#+RJRFB3a2OImX($Vopdw3G32H$`(8NBn^q=4h{D8Mm7$2GRHZyl0 z)CuN7SOl(Oyxn2R)v@eZI0vV|w?x0OVU2*1FdD|dSQrQ6VFFBqNiZ3vz*Lw9)1f1D zg3izdx9_41&Qh1cridwbWrFECqQ%s~{go z;oP7aQOC6zAS0-6+H8;-;z4|^e|0dM2$Dcj2m$patHwrZTQnIOz)V~fs0P)c2K)jw zp%&DJI#3ttL49Zd4WSV?5d2{RyW2Pz1EXLBd}jY1PC66@ z!$5Gsuh18ILr?ff+$*>Nx8M$31@$$%AJo6>dRPT6^&zW1V`ss1P#>`B^K}@gOILN_ zsxDjegSu%=$Z;Yu+@^Y0v(Y`_KvRwrWLen8E?kP#x9#L7Ul20EHEQrr&@<+zLC=-b z$EfSys#)!P)P!dStYhRGU=xI06^b~=s+ z>J~JEj{hmisP9kp^_d0|gSzfiSDhd45<5#=#2C==_ybLnCkFy z4XlIpumaS}raG=10{x*c^oE{V|6QRwbcXhzPAcm_J(vKw;3rUDlM%oPA6d_psMg9* z1@yRoHK-1He7`2tg4$3A>OwuJ4-KFpGzM1_-kL%)Xbvr)CA5MzpvUj^xP3>^lk=TH zPsVoxJ>=d4dO|Pg1N}e`tM>;zB02zuz;O5tM!-nW!_!T5{%_8@ZUNQcEc@?yxB!>n z3S0yAw4lx@cEd7Q1=OI8F)=;5^%cU7OnuEogIJ&@AL`6j9o4GOxa)8UF2g}k_i#Fa zX~uQ3x~=1Xatd7|jl?l}6RAJLI$H%3{EZE;Jo!DO+hGUnf>2ObZh^$l;`8ayjo}W^ z6qhbA4`jKq2*r z7Pcnd;_ktHxCAHR6fA-UJpDJEEpBWP_<4_sfMy^DcP z@BkiydeV9Y#mFB5^`dnI)N_`4%DT>H;x62?ykgIhzX+Eg8OH`W9}X_Z{XiXK#e`T; zpM`4xu136Ri`>Q5t8~Am>h(&)s+Gd*t63o%|!C3lcoTDo($GA-8EYOYsqAwa7IwaQrb9nkgD$}9k-*AerEV9 ze1{+4hw~l(!!E!EK08U7)1dLJWZ22}l7e-e5|kJEYy=zbNZln)L6Ev$3I9=q^lV4%Ok%RB*#IP-jExX(tr6!Zz3r>Op5G?1J5}2h>~6KG+WjK%L?o0(E+$ zPHv9EF;M3=C*Y)>qCZ9EG@JqTaB~jM!v(kqm*6s}qZ@T>qmFE@!%fhG&+#Dv=vLDJ zP#-jdpdmB?-a9b)b2J8RfF;?h zT%~wZXGH2!L;X6b7mY)(2R6e-SPi}-qI$rX06HlhWhBQy9ab!bCEz=A4kbSZCPODs ze-jh|F} zaq8+}9jGgZ4WRBDHi2eZORj5%Rj@_-|7Q08APNOTNAjIO|D06+jPxiRhh1=(g6ev~ zS6Cw}MVU&VGh7MMj4+>k*cpD$OzX_41v~?%p(ML~4AQ8&H+6slr63pbA!o6>a1Yc~ zi+V`80^#8uF<&fJPuXpOHLx63fX4BFnb(BEp7neuq%EABwt{L=GuVdXjqAT1R-GIR z)Y*Xg7EoUT>N}tp_+pQfS3d#1;jo9~|K@bI%+7|M19Czx_z9R%m#5DF&9V5IJs~5c zhj-!g{}Xr$&)^zd5mrzej`E7v$V4PQe@(5u05>!Eg!C}px75BRPRvp#fus-u$+Z6` zgzyjmY7OIrK!^msbN4?}HR1079iaem{~UhC!A8x!pM#os-vQrDoTtnMP~&;m3EmFF z5jX&QVHa$NEwBmJfLhS6gAK3>mVsK(tHt~hm;{p{2M)?jzji z^9OJd{yr(WIFz14oPm?D8+L*o(beO;i$D)8>*;7cUF|!(s)5>hMyfXDYC}Gf@u-dX zSeOKpVG2wIH%y0NFdTk^5ik;5LwHl0@n0eAoNr{qU@a^Fwa%UbQ}qL>n@rfF)j^Ky8^L!>&;{r$hIsLA zXFAqr1wBi?0PUNY4mM{wIBBE&z+wCyyaaXYk{9xUdRuw|PvJXp+h8rzcdP^7@mvQI z&Ale%+qwhT3;uscJKyJLI4u9YaZ$56^r|K`^Q%}rt3h46_~Km)m`)mwdWV^?f_#Ts z)y6B_@67pg((CrQyxN`lYDN=?%7&>n$DKj#jMc8#H}n6KzsKJ5AgUv&;}0@6@E`e< zPWO|O!KvNPP6nrp{?D^VeD~v%!D&37xikkEm}*9dPCf?6{m1b(j0+*3EX=U)nEc<$ zq-VUo@iW(+84Z)VJi=EcQP_1x5v10xeW5V*ostQqg4B=((n5O302v_@WQJ_ek}}%G z)JQ3Wd|FW3QeR%F_KMR?XFKfBRqQBM_BaN{!va_ci(nvV15kl;%!sa3G-7qncAqk8 z|M?8mzEj;XzJa&!4&K8D_z0iiGpO07dP?-8e0Wfk%~Lvxsh#E#P|v5+4BuAm+n2Qu zYya&IJ)kG_0$-dqt_W=Tevll0n|<~iY-NVKu%Yc^H`M=^54+#zAl9XJ9KM3uqL0Ec zaI>$iC)K{DtyUw}7OpKl3d3PX+mCP9m;Tdhd$d!k>pxEP|2*-lZJ##CXpn`x zn&zn~o|@kMZ=d~hU-r$+zn5YChaI6N?6E6ZUGQ6(iL~rlwWN$X5oX;*4#O`m7)mE(8T2Kl}`8HK$f`89^=MLLf1O zz2&BsaA(-Yv>Mf`u4@i&TF2rJ8_YI7xWa~V8GIX8PS$bZQazE33fw**`Zf zt&;eL4q9r$l?SqejvGlx6M<^kH%{e`>MW++%{O9AG%P+Jw)%ZeBZ$F_h5bx3p^fq< z&`c;M?B`+g8jmaN#C;?7rD218bN%0(Cg%Ixmxhh|U-Iq#zQgD%_|GcRa9HPy`)BHl z`)4{}7F#&4J8!%VoLu39I2^J?>*3rDpvSoMuy%2`sT53;BP^vO*Tn zd$e%K2!(JDLk)!t5CUmn0CA*7O$B-(#_ef{b&aa$tGYhbn-e`5yJ31Ua?+> zYoI0FRnU@7AK27RT|0Jt>y*}HeSq~S`Xgrl)sz|HbVPj!4uZb5djR&sE=0B2KLh&k z=g*)60GV|dpw}*X^>PaIa81YE`huzSvXh%+g{#*=g1!x^kA}*g=RI-O>4KJ^O80kg z8E(Sgpzm)^CLy{x)~nrzpwDVP0No@9P&SiL^mb6?uUiVes!I&XAt@w-l%RWeANU3M%7`zDm5qM!!8zb zp)Y`{r+%u?NXP?uK{EM4*W>wh)>;5u4+YUjK@7x#7VAZz1Zcrt3d(>Itpgk7Jb(mM zMAdzI1=RAOD~=?Xbst|H^ir-WG=SPr59&f(9sW}vdO$;H1ufwXP*ZP&Dtmcq0*w=x zo1t$CZ$fiu0g{!!?xPaw?IosESB_%Awy#&Q)E#F{_WOU(4)X0+z#4 zSOSY-5iEpxpn^~{P@oZL=U_Jjro&X20%{5q;4>HnO6;f5N}o*_fo3>-1WLKuK&{3q%SxCL=; z1VvaU=r@^#L9O^6j=KBR&rni<0trO*g9bN^St-%0JEcHX;JPo?y>S5C#e4_;0X;~3 zg!&K^u6ou3RKkc0xR1t*2RXRH$uaA)SqYGRI|9%Jv@W89FzXUp_WG?%H{A3}Qs?(d zxDpbCJ~ikfTfeE1oqkhO5DGvT=qE12iQoFZZw4$fK^9O|==Uw*pf_G>@wZX*?p!k2 zAS>jCNXQBK;T3oZUIurf%Z@&W%piHm>M>$o(1XOBN>L<%7X;0kYW0P%i-stOarCWF zwY)24-v29Q%{cWUy*sN6dV`jaG^$pVQPqqJ=QZprf@(npS{Hkzt33L*QOlv~m$$Ei z!c!j0qAvp_z|BKR^to_X@=BrS1>Z|ngRX{URZxSjfI}s4sx{!g>2W({22Xc0>~_lV zv~Is`h=l6L)pOSO9lgR(qDg$5rTG}cU{H!b zL>&YJ!L?WFWiPuAKpj#4K0-efhJf59=ONN%=*Pn+Fbr~&APrlu;-OuN&YZ%nLz@TYy>))m;_4GF9-WL*X)@ z<(BpNlN=cIvp~H9($z#NJnI-t4JI=lblepHkFdW5f5IPd0B*u1_yJTU8lW{;uf#0X zE&A^;uYxb(3y20}dANxO)!R`lw!#tE1v}v|?1de05ZWNCNcY1wSPk;C8P>sCSOc42 zBW!^6@D=n1$!r0Iw;jG#{VP?9P?k!_KF6#CDDrRN8_c7E7xB?AK$_VWJ_?!#Yj8}7j0@DJRDd+Lb~(5OA>HX<=30$rEKkZ}#pY6g$TNoqp3-TFnT zZoIR@%kUCpgRGDR^wkD^y+L1W(3cxBLKuXCUM}kevtBX>D>vy(hx>eDp(N%KpkI8w z3Yl;!h8hbxrY%g|I;qVCuRu=F5T@Id0uTv#ArI)+V){vmZq$WtU1X;)b&^*Yih$mw z$u3+4kp+!rQ&~iSRL(oBeo-1hO$F6atAPrv3TiprE2CC|iZVl4r~u_b8*2T&=yga+^iG=j#U@l0#Trs$={lmfJ9dKci8#R2dxyaRpVJ?I1PLwUmNpP1U{ zhhZpu00SW>4)Tnn<-rjQ7=&3KKZL=cb-@tSkKhw%g};fY8m08_Q}ivd(+)ukc`Z3L zbgn_KS$Zm}wa^|T&sb=GG8%mxs%mEdsuo#VN~-;RhTCvdZ4tC^9tzqCYAd3pfc7w> zkQoUPc-??`BP@Xt@D*rpqSPs1rV2|w%a6CXmeAHIRTunR^}e_GLhi+-o<(eDBE z!rhpC=(VHUgZ>lLVXzN>Yqa1_3WAK+db0zaWS0mtDO=y*%0 z{*~Kv*!==e=UnYVIoCp04YDd|@vG18^oRGL6X+8>iNFgUxPiYbZ~(t?m(f&5a|!i4 zs8}z;-$Z-?RSilB(Fpku=Bw}<+=jov4eWRH*Wnu6f z(L4gBunF;WK-G_^+Cw|&NaUTIT)l)@Io608j6NNt1>J)x6G5n{ASI-L+{h_on%0tF zP7KOma@1syR5$z5qy~AC=Roj*ANYSjHvW?pGJvkDLf|_}B@1ds&^3haL^K6tMpYZh zgc0sCA$gCzYO-+_UKVT^pewv z7Kxe*a)TOWe$;%B7xF*>a1$l75~VZTXw*2}b5;iZGV3+aFS8VAc~s@59F&DJP#Q{t zA}j%~LNO=;u}~Nkfl8?m6ouj-xfz663RQj;Zbhi1FSTegQ!cAuAypS`wL!Vo$krNt zD`*IBKm(``^+4__+Lq7=WG}lGsLkL_Xbkcr`zEMO9lgwNs{Wf}AqNE_OP98eS%Ii= z=5ZQnFZ4a3GYq0GCEo*mQgDCu*A;zt(DFfkQ^C9N4)g{sDAlmv)Tx&-8auY3P6IXG;iy|cOV>53|MeJ_ zfeyl!qAr95@Hy0gc`z47LOF6d2X!{6t;E1|^a^|wdMq1p0!kglW4%XRh57}ofaS0fzJ#?Pw{@@@WG_FPK=zwqBWwVb z@K+%BgmQ5bkfR))jwoSZlG_TZH=&YI-F}VTUf2!WL3Ua_?L_}Ad;>dR7r1s(9X&5Q zG3hd_0C1k~`3I_h_hD!ZT1AA8FEI_7hr_1_uPld69S zpTck&&cZKHhFn}iy#T+$d2r|Xi|DW7{u}CLxFR!LgS>RJOt^(Z9`v`dy9Iy34XBL0 z;`<%_P549gFM+?{Z@A;Ax$&F}^z+e|Asb|Y2ypik8PJD-B216^5^6B2eyo!gluLbf zNMC>t#`8mX0Qcb@+=YKY zd;CK9FM((i8g(FHCdH2?pQf0TqnEpNMuVPDQ@vvSvezwI{njYqQcEeemRjcLKwsXt zP>f;V9sy=VAMV&?Ld^^-h)0*KS<$})*+F^AfvOW0{U+CkOiEB;M`F$g`Jn(5gcyj1 zVYm;4Auw2Dl>%}HzKpCa~ffC@>w!*G}od((RsPZ>lZB^aAERmPPqAX~Tli8&rcFJ8H)Y?!B zUUTfiu&;`~3aB}}j#?SiJY-i5WOo9y>}sO_8MOv#b%@j6SB5uW5h<&O+5j|C*GHAP zDv4~4`X-b?ukTzc7lqL`Mc)J(Lmte{P+LJu&`91EwGHSrq&;dU(8fx;!;VR*f1PEk zUL>rDK1JXocpd#~Fckd|_z*HVeuF zGU470HND2Fu4oEj;RYb2#cds9LY~ zL4E%znQqE~ga)Cy32<{T5W7&^K0qA|S( zg1h1xfjSDb5s$lqIu1i6ieIztSoEXeGbo4M7*t)ct7@jAp8}I$A{bD~O-9u#3N_s6 z=x4$Vm<6g?Uv{kk`ovu#&=--e#JZ1=oiXKVIiC#LGw{ZlYr@{`pm%u&{;iY|cCP_e1VR5B_Nl|&GvhGd}OTBY%b2$U=3SQ*#~ zKfw3!9UO%ta2O83LDl~OH2Yy6?1eqB8+O4?_!ho_9k3m~hHapBqD1RtT!}t|`823H zj)M}R3HK-TN{q}uJE{_V%+gc;C()b&d3p#<@T3NK3vR&ga1qq-F2FCKNHrwupLvTL4${OWcsjf3P=Tk;0M|3 z+&%<-dPoOpKv#unQG>w^I|KUH6T+UAcN0UNUb7`(BPqPGXf{B~+@=EvZ!3 z?P|{?N?^k4{F>K5hV;DfzT5&ZovOZb^SjTp%s=2R~xsIsttXx zQELS^z=SDIm>}1^{8PDqmW(T#&`rlzisy-oi8#iEDzv$BIOt}g27y0fo5AZ zWS#cZLahl28niWyxb0b68XZ?QL8d-5fQIk}=u4-KfqNwD>!}^l$93R8QAGR}sz%@T z&<$?f$_M{Mx6!;7un;mABkNT zC`V~_);C@|V0a5O6Sqcv-U@pR?xR67>lPyW4D}=U1O~ygjy?urKLF+;KN1vaf6R}M zK1xvk?_)6y$Ao7eTA}yFz7I%sk0JV@SJBOdI1`n@7aq3~uR2Kh7^fjH42FX2mA;W6 z`%&;Ii~yx~ILJMroZRImd-)j*AHoNaFf7SA>xQ^T&)R0Fkdl*tWRMh8n<}8G*c%v) z-9*$WFc~I+PP%lPJrBKJHE3z0?aUmxQ*bj;bv!!*Rp-BUAD{-0<2VaTw-d}p?+(0j zn~Pb)-U9d>)B}}31*XV!0Oc-&tW^aDxi5y5pt*M$sz!#Ts4HMOXdeDD4$T)&S+2pX zfYs<VLtk26YMbJg8Br=q4be#9V~VxJyRIEG^&ycG@Za zgL)IL!|!m#(O*OT4X%RK#&pqWw?w-k%F%6zS{GRhIqXsq=?&C7@F)BM*>Ts)slU+Q zg4^&nXoRkZ`UslH3|f6E(Ha>Zpxy_maqiIY5QBz>gsoF+V=YDHaTREtrNxq6W##6@E#Y?08M?U2X&zi)P`D66KX(ps0LM` z3RH&IL3^$8P!38%DJTj0VqXb(6^cPoC<3vdzq+BnxS_9|M(e9iQE2q@Z+!wJFX(em zuYkVvlpS6IeFh{eWP!|(3G`_|ttfq{`T$Q-NCJsL#jRyRGDq*0ni_fv$xuc5mibw& zrzIqh@}we`+3%QD)D)AIBSof1L6S?2oz=+D>tp$8APCfE^Z|W+NIw)pARVLy{-%ia zw?*6!?JK;vgaIYgyMez*)kjhkp#plATu#S57iw;JhD@CG)fEMzok0PFA{|c(G-1FA z6Q^yC8<@5#uDLnItFTrGRBo7r4R{g$)s(>n?%3TR`_fXGEh~yF`?7uO`{jVOH zlAwklf9i@#Y!g&B*KQRm=PJd<&MRT?SmT)&OKt&W?9T)h+7gn1U^r1-x|o`oYS4C`Pc!fR3W z@MI?H8kl7YXJwna1nq3l;^=eKc`z5|z?DRHC@{7<*b|FZ90d&J& zG6}<4`jk0ATyc*DT@S9RfL*;-YOX$kXDf0At_ZbiQ$AG?Qk7Q~oC;+lYyi@4*=<4J z9{pxblG?0ALk`eWF**JXd!Yn&f1w_LpWzls{WWlNs;c@8^HsPG|4jmK zAm=9VPxLAUm55!U)crP6{RbzqSRib43s4Rwd_*p_0=dnoI8c8mYp{xD=qAkfxgkGZ#HVhz6G;R zyY*KR@*txp!g>gu8+|Uw2`_;Mxwvd-)Mc`wZp9)C>bH2*7f5!%LEQ8?Jbj@+Uz^q! z3zpDOwV{eZudf)WyXlm(H+p?;eFyIP)RjJY)dlLnx7cY2s)1ggL4F%^o)iJ;1M*=A zhxDK?NcsuPMCJ2^#wEez?mk_0CDG{3UK^tC5AQ)Tp3r$G!-jSH+2$p zbF73YH*RSa#9RRM)osZ~I_k4_Dq7LVJqgt!SuM$Aj#B;0QJqiiRvk?3{pnM+`1|W; zpRA21j3-al;t$r^;ie9*uR4^3GMHOHL#V6uTO~AwaVP|CLzEgTJBm{`zwVuj{53TZW?dPU{@O25Kbl3imLzeP|i^+pt|3ptBigT3D6Uo^{@

`7~td>_$g|apmYzLXHZ&0|D!Uc<#sX zWEOR?s}DLJ(ba?2X&O6K8uhT(ahddbQlo1LEk@nzjLx|0^0YO z{!w^tfAT7#Izo!6+CBpTfuR5e$VPFc?07K`;>1qXs~K z=m&k^eMmT9X&};IrfOvG7-#LNbTp#DNJZNhLO?=k5Z1^jb3(VL^{)H#)DN97B2cq9 zVcD|Ozce|CNP#{bfFd6TsusD)?9L6t(T{*nKoNw45-mB&$W1abD^f)+6pzBR;!=@W z8dL?MHsG4oCS1KDarGI{t4h>vT)P?x^lDhHy{o#Vs>m}sVQG4fn}lH-8vQOxbs|Rz zWp;!TdXU}?P%T(``IkSrsb$Mf0n1*!#dUM5KyvC4PB?Ma-#(HdVcn?PxPgC;n*veM zEXYMu&(AQz~Kg1UEr$@u?fSMd$|ZstIMQAgA@C z){)xF7e;0LvgQZP9~#VZlL#NnV6D01PUAs)?Ng}xLBpw*s9JdM#OyA(tD;w8^dmj3 zqgN4#*2`Lg)xphO`{qHfp0EKlN%h2ClT*TfZUXsDPn`7^Gxs9A2X?_dQr`|wI?I>c zZqO_!8Q0D|>zBLS+{*!1ejk1{8EG~=iOdN&4#(hU_z8Z5A5xgR1$~+04xqmSXFv&- zKP6rzlrZ6%GhFlE$liv(;1>J|f51(+0l&j_xCU3@H@E_q;SyYg3viy9_;^8Inp9eE zDB_exD4n+AQ;j?T1W#ykQ!1!Aow9Ygo0!iZfX{l%euaqdbLaWSYQPL?Gadk zfFFTeYY#=;y;kLQOTdbCBQEK2nR_vDmK$T=yzRIY;}8RvFkBXO8r7oru20{Jce#Q~ zYFw6=n6&xaH|O`@QY^BtDOk)G<|%Bd6!WzYFB%zTUp8e$Zr8p8S2EUW7Ma|Gb(Gn< z*cWWh6!RtVM41c4e6>6UO_5i9F`+R5ZF_a@(6u+~fqDb`E)QC8C%LCsWK@iq`l@e# z604L<*W$j6iHh=f*0&V*#e@%`RB2QLtEb<5y;8Q0tCM@8Vf6^qY4FFH=_`U zQ$15_183wIm@n^;wylzT3P%=>RK+BrZKT2F>s~Y0{aCu%QM@XbBq9Wtbhw<$cIVKP z_1V&TRiV+56m4!?RDj*D_1V3=bI`bWm!eK+#m%N=wcj|}+;NG+Q)Qe2@$|-=TXm16 zE0{ChQv+Q1+}ObU?F&qPx9hmS;$7O{qWmAuF?&l$nmN_tUHapa4VQd3e#+bb^4y8> zF4J*Q;x5eJTj=8{9V*BrnVs&XW@$-ZSeQmdwWi-Tmaa7PqZN@}PqV0klxs0l_Np)3 z+%4(LkhySVltyZa)jqw(_hYI*UMHX^8agF&$P_3=^_@l_2!Zj5dVJS?)rbAOp6EhE zMD_h{`j_(MO`*5Xs^8bl%2HHTU9%T&o*Cv*DPQ}-3vg6Adz4)5zubLHDN<2{M9}W^ zlP!7MmbUm`&8v;siwpKKIDKGdwe`oC1EqZ#3r8{%sLl@r{rT0o@-1VKB5u`bFrCy&zL3NO ze#iv2M!tvHg1jB>W0MtfjAysmmewEUnPp0svqX-ggnvUV1e4r$=ZdGV-0fnt*HeTR zs($jb*(SLQW^{QJ$F$zamuqs|R-4@ADf|59%>zngxuBmQL$$g>O`=425 zWYzv@Q?|b^UACyA^d9S5`D%xsm(TM<|G=-__jX_D*2w|_w z7MLE7(e!(BxRP&Bcuo4hTH^8!i@)EOZgYs!k{D*1ndP+!r<*zZmOsqQe2p0Tnhmd! zk)mns)_1i{JyVZY`g=xq#>}tx9RaZrnM%`J}W}pf=%gt46=<)R2{4W%;60vHBId)HnLsK(@wiW(UR(s&#rtT4g6O% z*VG0Zo8mG#mX;~T^MUDBgP`h}+6&zFxz}t$E<8;RySfrLjIOso>7s84)@cf@%}oV# z)%a>sgm-e7GBtgng_FEum(a;JqrYr5AaMaJx3Mb1)Q(HCkIpqeUin%OE)!ooW-TBXC+jkO{!!C z7`ZwrIXhv_Jmvi(+T?qK)^GdvK8Q9gWK3<2H%0atdC6?R(fxbPn?n>#XZeR`FbLB&!^@QmW8L`ORLgDu~$7c_NK2A@9PW4 z<=BVYLPHMR?C-cxnopM7PBW+xq5oi}phR54mqzGoZGOFc`{TZ>gJ`Z+x&2+p9BM>f zodQn9pv}NCFm>YT=bA@H40M8LgeYb*HKqYL#po13{M4NxGcwuntwAnto%J(nz0#+$ z6PZu(`naKFGTYQp?Di5~ zD3+}o-jby4y>8}|N|POL*j6&B-$c&oBUT#>Nldv-G0U4V*rKxw)HC0VmSCV+j1nF~ z0V)f=bH%Sz9XmSE$pUqr)0~!^RZbz9Np2BDwe*`gDP?Sy^&@_F;-)Nfn*7ZWZDLv` zP~wx|*jp)ayNBIxpKR+-^q*%5Jkhf}PBV16m<$|zs-ua@fGm6THGG} zWUicU?j-wZ;TH^z@daR)e)#ip8Dp1Fa8he5bIP2??hH3gO(%^y@xeLv6V3YeG>|Oj z=37k8c}?jKNR>9DJJJcMu_~t9TUazSpFXx%AKN6$iDsKD|0l2iyPufw2bJvk`PQ3Z z$^L#gM0+r;O=%M;%;}B{TXkNuH;)~YTuhoSZ|jv#Pbc}UaM2hrZ2r}L=8}I6F6>6N zHkoJgccR8uzi#h`ddxo=@J`OKw-C_I4}q$tB?6vy=I|_Eh}k{Vmx=&#F3U%=n z^8Q)fbnN1b_CBg%rgx!B+7TzF21lF2T?nOz`Ay0v=1q1eo}ng7SCp})SXZj=aeNDgH0!- z*(_|UOLwJUI-7ajd@+U3*R?0O#n~FpzB}YmcBjx0NRq~`ud8=joot>ic_Cb!y+m&l z*quZdF@px8lrv>z+HIOh`Pg*%7-ha0CDV2@OQut1!^dQAw5j?&rghq=g?ayJU1RZe-_c`a2u*cQ}%yC#f&O`3|kE zgL%}GYP6GP+VvuyO=eIpBKX#nJixwSm8=e#gIGn(-h$s74}3hAj$WgEVmr}`;$ZARG?W3Omg z>2&<=re+_iIowR^!{#7+b9<$A${g-PQk)c7O(D!RDH+|> z(q3NW&Kt9CT#@hR#b@-S8H9jagHDq;@Tsqc_wSY_^GF(dGBfCsy$KC9wMQarw-qyZ zq_2kE4r0Q~w6+&V1y*L?p052OZ6tJv#yD8pjOve{Hl}onz_9T5kkb-4_oNlM3l#Mf zx8$q?rjN`?$<;8~uCVp{^nx#gY51c*qv<}tm)y3E39nk&-tWDWZGZm}=d)b1O3oTn z)0k~L7|xaqpc`Z~I|oo__Qu=$pq&}n#UIKlu0R~&vqY(kg&(xDNA%%s#;x3VZ1-u71MLw%Af$s`ZyzPgJ-zyzFFq%BP7-yJ+R9XCR0+?B zS9P9cCpKKo)+=8|Cv%KT&m4AYnuGW%{AMS+ns1jG*<#iC?~~h^D$G83I+dn{e4^#; zg5S+CE@hCX8OLRsA!eFPgNX1;yapi<^j?pZ^DAblh*#(IVY{h~faj>m_5q3=69-8% zuq=ERU%~iFv3>Qj<4u3n!K98X3HH~{_P%3`r$DuiH!f#ZQlhPa*$yH6P#3$Jzs+?Z zXPP%YT!(;l=2|cyVNB^wtq**O!=DomOByG%=L*@fa$i4Jr1~i%jxa*VDB_@_Y}_Q%hnvo!r%7Dj=;{%p@7nvb$Z#e>eG| z%IlkZr>CTxnTSK4GlMx8+1kTCNV!!%OM|Uj2G~=j)tLP~?Hx~S@K5g+tNppEK@E-k zW;gkVkdI>KwIQ_dp{6gU@cJS4_*1mXp6k(5GQQ{aSX~eCL}vLA#*FdYi)RCST345%L8-cGv7=zu9GjF*)-a>NwqPC8qC?x9$SA%Rjg~;^i_4J z5o=E{1%%KyuZP)A>b^seP(XgUqcgIl32* zh)mR2W*iD zx{jwC%5u<-r3be^Fb}M-V->_VX4ZJb510*7PMGfzk1e0nJ|_&{99Z(&tpQ&n?i>|g zCLmQp0d^71_O`r*3&Uq*RIz|R<4mauzG(J=Jtk06-huX<+pqf7t`m~|qqVFWA6t`D zX5Iu^nV*;+z$@5TJZzoT;-wZ0X4)mn&2IL5U6(ihs9WG;Q%4(|SsRlF7J9r&2w z3R?49z)wV^xqEtS>zXTfwC{~e6l-rHiWp>9*3BC^w#<%+-EWn+Rc?83QE|*(`6%VR zK0j2o{MZwz;e;W~lrg@H-sFQ#Q{!vrsG;VBVaqjUut__SE!XtHrV?tz=Y#Ep`MqEK z)U(O_74bnKF-{U=9EpDdUs|2M%*-23GN@NOf>1YtXGmIwYfBcK2ktk|FUut`<{zK%|5JY2ahnakQh|npMjIIydRrFlYP~^ zfy2!QsGim4;AGsNILChC&PN-nAyc>>7&pRvHHC++6Az2_jhg2wl7%P zYFg1M|Cyhfm!=ZO){&aT+a)xrShWgDbYGs7;Yer|-+sI~Go4kkbK_uNeR-FTH<2^2b*|B_nwA=Z?2*Wem&l_y_BP99 z`(NIcIdV@2{ltx$F0KyD2Ji>0WCVk0TxDBevIP3$aR zbV%zC`8#xN*Nu--`R;eTx=e?x3|OXXK7R(&ca|?3dw)+!e^~fv!d1u3b@SBky)xX; zF|E2ZO~*Pk(D8$6CH{;c%WQgakIHuS%$qR%YLcui%HoR-q;ca*Q+GD4;n5URYnd<9 z%$!Y!Nj24Mob3zszBJX`i1LS;>sS`vG0hozrVkmrXV4LyzDDa6MZtjJ>9)(X_xiSL z*uP&5+eJ4_YfZ^HzL<#b5lBOtvrO}zDU^2AMFi;dMIws^G@W5a%ps<>Gfazls6A(x zt(YS|oME3G|4_7ix4~70sq~1987*M^40CG^z3~;`5Zmtu zFXIt&Oy?s0Q16^MCTmrH`Yg1B_H*rPsRz@F#O147Ag|YxN24-p#rNzI^o_FC}=qp&{6PjuQ0T*DdibPd`U- zUChjdzKCj1zn2OAFG76!QB1-RBkk2s7M>Z+8s*EM^*^QDN=3Wph4}ARJ8oRO(5Eca z&fQl#@h&gSap===xj9x!BLCkj>4Hzk8=u}03+xS0vKoEg?VkI3Icue2J=qG&WbK3W z0fDS!)qT@t3$S>cdB_*xy}Q7Cwwd0MXrVc@jZTx=EMCX!sb`0(u`BaJ`+?HgkB|3W zS!0j3;H)w%f4**85-M+oUOHnKsoM%-5^>E38i}%FPeiMhqbd7iEg^Lo`HS?ca zzW*sZbBE=}q}l3AA2Ak3Rnh=*5Qf_B=h9!)&tLR>kZ0~fGh&M`Yn#N2?97ioUfJ`- z;T9jo2mC)rN!B6=Ej#fn%ye?s_g_@JZHH!pw)#S{yJ`6Vnas%a+E{<_GH>deR`wY) zR50d5T7PKAnMml!;8eD-v?)ub@*=^Ci?fD+Rk&yx3`_b(_V8TqjI&%cQU+|rB?yKWh|$m|12^=>HMLw85Y}#x^?X3^s^TJ!jb_A>nTlMT;#V@Gw;UleoxLBjL1w~oUv_VmC1&GtW~IhU%nc-B z+bprGqUePD>wygOH#rYjL?_=S0ArLS7VfiLXs zSC`zGTP+&bswPjYn8YZAfc0ORQ!9Ou9847qD74B>DsZ5VeEWe&rK-in8z5d{A%;qo7p?OG? z^M3c0S+j~I$@5!9gT*HCYG0mG2R7Inz!&xRXAFea25;*k(|I*h_rLpY(a6G9f6u(p z%tXTLbWaXkOY;cOTWq7bzM8FpbDQxqCRcI0}yrM|wN z{mA)E=D=KkHSg-hCSsmH+IwS@sWp#!c~;%7pp$>`m9Iv`iyE$pP-A?uaYnyzz1VQ8 zNxG5zk%Sf}{Ty)ed$DJ9J+-XU>HL+<#f`q={}0<}^y6}PZf}V;_118TUvVo#t$jZK ztTw7eJPTZBu8#e`GyBoLX(OR8@cZ<`=^#(3lJ+BC%Bcox1b2uk_`k+)R&4WSc2^oN zSYkYT9@d2N{1~6vPpzYz=PWV82=3VtSrh)t?u6f^L)Q*nI`ry2>EyUIwTE6P$o`+9 zPXE@LqhE7!lg7Eph$=ldN52o#aFfAC-1_(LQ6}UY`_draH>SjPU$qSXF6&p32r@0N z`_jE)%_7XC_HP!n2yoxB2YCh|HVhl5O3V#H<5hmkt-R)LxWkvh8y#bMaLW@O9nkCT z);(MHY8$ZTo9@0T)zj;yG$t}elW*Blfx%|~R(~?P$%Q1LNRsR{Cw4GzrrK#wb}Iuj z|2pi`h54<-Sfh-+(Mn9evG+)N(-G=OhcApfz3k%Z0Hk#UK+^58C*mape5Ci2o*g&6 zS>^J#RwAsuFhx;oA45R?oo2~5L|hz6o%c0b{PLB+A@6KNQWrS{RoR^Wh8#6QK#Pi+ z|7>5qF>$NO@o{xF*_N^gFO$_D!BdEBztM$Te9I_Ap89?3YiB8l=5BdeXJIUV15`~8PaG7+VAkF>}P zd(DBJbct+x&83|TwUDR3|5|)sAlx+ukQ?&Eey6^YR`{ z!%e4PZV><70Gl~O$T%~64`ndJ%u31PV!7EO)8k`_(?>8_&sx))m-e#yoq5<^1>`$o zPvz4WjrlDk{gELgQkQ7VJ;jcgrhB=m>6XS`3_j@WS<(Ha3dfMpQw}6f;5UeRyK}ei zTVFREH_z+&2Ad4nG&TkHQ?Z_-b}6@MwEgSpsb?nfdafdn9)aHG z?8_{NFz=Ng%?Ag3(cvSV-_azyR{QT07u%=SAg$jAL>8=W4j$lWyYo+W+4iWuXI|;8 ze+OC3iN!ZR)59ejWw7}CmUW?{-YaUkaKIEpoS6=ihObSUpMAl}tYTp`+WjQ$+J2WRfGwf}C{%CwwW+pF)`fDWv>RoBs-zx;F0!MEDuVjn;SBs0Yi z5kh)1>=50+S%7eHvGN!(=QlSGp_Dbg!!%;&M2Gi*&KO~L;DU)`ig8mu=s1$y&9=iR zc30M`7pwE?{zC8momc#-)Ks)`=cRPj6TFoE&@4Yg1-tPtFf{p?h@fNkN#L9{A07`6 zy{L=2`*#7(TIatyWlS*TKYdtN(7Rpekv? zzo$5?LJu~rzxUPk?m21Jeb0J|9l)zUFtSZGvwpD3q4Y9;hD)_b*1#7Ir$TLn~Q*U>Y=wD?H`loMtQtyTNJ}@iPgZv zw2b*z+peOQj?Mz?Ma|pVqw?D0KQ-p`=FBl);-^|PQ|A*cI>fX-PQ^dnrZt&y%KpDK zX-{=Cx7w=NtT*GVl(*jPxY3MN7PSVWgn&MLa(>M`gj-HHP&c3iT z%ba3}OIVuuQfM%v3rGhUu<#K<@sbW0{IJpWaDAT6D2)7`JnE`LMsXsoqsKpAuR9MRjuZ{dc>r6ID^ zm3OrWJh63w*HaxEO=ulZty|Kte0NuzNIH=aoZnTxYqI=8rT&K~V#1#vwiQAQ?~1aN zqTm{uF268<-!U5q7Ss2?_zJ3^Tbc*2^H?agiK>i}(e(J$H-*71@H|7;B2yM6ywMFi zv2A-#k2}8LQ4y;%TT7fpX4H8?YhxB7=l%7DIdz_C_ZsqA_P)P==hcwDwRN>X$*S`= zGHEW@f|V{%7xCBYS@aTX*#)aLSue5Z?jM-57YMwrxhG|jY1xfzv@!)QVya;VWeuzz z@%tZkOhKux&ssSxO>JV*d__n7=MVG6MWV2NCK#f3p2f{0+o$#TD*q*4u_s@DX%R8y z5@A0P1urHuU8X2W`aN5^tr}M?(f?AgUlb-d|AR{`Ppwk>z4fQt+oM2 zvMl&_Vh1`gFXI#>{ZOa zcWDv0q|`1glbLEOZwV8pF{n^dF>%Kw}2eDM&T=h@pW1kJ2zD_^ljOOhw zN4Ni&h~H`8`^ZCDB!0Uzd2-zX+wC8@uv}(ur*&Xh^mAgy%kwTU%$W)-B>rq0ST*IE zyY_N<`(1NpHm^(+^})NQ#h;Yk3EVVZymqd0#XQ^AuBY^@#1#yhFF@3{6^5BmwNRb~0_nS!^dvTFCt z^;Ur)X7;Zf9-nR>n2fze$(ve!*=-`L#=64|3q`i-{>3rZ%Z@f!vQqxR+>m#8no-uv4m z!wTJ+5Pl9crK*v#b4X|`tovI?Y=ieZ{DohQnv5fV2Aav6{rOGl8vYC^?<1zQib-W! z)WF+wu6`J77o|4+lJVlhem!RvCd2pI)OP091)9c5{COUmok};QlK3-v^QSRyt@F3z z*5cqgW?AdjqP?lLp2x}WEcT_(X3h5h?!#a5O;@K6-)P98Y|-d~=^mJfx9Dqh+Ss=O z)oJ;8Z&=1>by|DAH2bujvc;S;oOF z+gC1Li$0UfU=&v7K)*7is-t1XA=hS$YKX6e) zJ3K2W(~ex1YbK6+obD8%cG2ZYn~P(rUuMO7%7lx8>)c}YqaQ}EFB|U?pbK3#XB8zf{U%TZ_TVRtNO&d{FKFGt$8%DA&~es`eRMtCVzBtJy(t4yKVO2 zp?%h<`;?)<^wV)>eQ;ntQ$IssHdC%tVA_-s+3l{EC%c*XdSGb8)Lr)cocH@VJr8&K zqABO)j>M|$=F}tB3)`}rd~5vGSm^S~IwT2Q@o4t(Ef`h4HTTvq*@g3S`I3R54iWm&f1L41K`%&3;7|kv^Blx}u(2f9|45dmFbV$6U{ZE+haAs;vlnJwc|^1mO_N8g=&P7fk67$mXVKOk)cVDqe)~tvIZa6) zndy?p{F=<)&O7>!sg|5U`JFs=-IagDuvx5nD@1fx z0n8rj<$6AoE`>i^M5^A-;rPctS|@9YCg;a9rBu5De&Dpuj!bAE4Zk9W?c$G zDW1<j&LHba7%cJ4gbGu0|YtJyqx zjQoN5KBb={?jt6p&mYZiTghj29m0>0@wD0E!!@XYx#gpd@0+rICW_wXY@k2vSx*U_ z^V!tn&1Zg+&n3r+mjgq?+mE+*Y-O95el79hDf-#4%87FAW=;}f#4`?Fd8MM^`%pnM zAQk0i9}7PFOxOykylGCNVz1_~mz=M*Thwc8&So8nNtp*?In2G1cAgi7KmWapa}& z?q@DCBY9lozA13-!oAL$n}}!L{#m`uxnY07OOgNlCg92I<NDd}TNO36Fvkuq>apIHkNNuRpVQY$^D~u36=+>Q0~Z~3Y#d*t;{KqQc*^9q zrG-V!^bqRt+gDB3?1bI9xY?N9KhQgmUxnwu{)^(KXAVY?mrIyqGSfv;z2Xnebh@O+ zI)o2@DbbADGYg$3L>-^dZh4Gt%D>`|eAbu9SY28lF*74x;SDRoqq)n}qBeV~qHjcB z-mvn^r7Lb-_M+LVh|4n%Bz-Hyh(i+wu$Do@ zs`lJ0JCk^E{x*Uii3w|}&PiTm2QRxATbZV!2-VEY!@yq8T+72C_pND}gPrrRa;7Wq zlU@I2%{)$|Rz&$znyz`ddL3ql<@M)%x}IbE@Fyg+7hFI0yL6d1Z)e)>fsI~TJ)L&7 zZTnvBXj$XWM;pv(a^&;3NBJ}#WB3F7>5X@#*yFGKka{_Hi}X8dTJ=}7``zxvJ?qz8 zm|U;9`Dl@P2`5e`@{yC0CU<_0G_9}E#CWSzG-LA9%l^lwEZ$U=%!)|T6@Pk{iC>dF zh@_0{Uz5FH?-Wsnzbl~0VMxuMf4-M=kM(0iyDPu(nyFQg$+;C0+CdGkd1g|^2c31Z z>2&tpW?Dfav6Sjws^@CK7gf*4Q4BHe3nJ%Px%1W1E#Nnbm{1j6$Hf^1q2Q8Ne{yw!Wp}N>n#cY+tF(g#|A0-)+>v-|w$C1!4o2aZ`s+b#9X<)aim{c*S&gqmX z6XP!wk+iB^$J76KFm+*;ZsVhtS$6pk5xLXh+t)Um ziz4y-pRFXVYW^r{^^wC>tRYNoBjR&H3?jrnTY}F7r%C@0A(9zoXKigWvY0V_x;Q3s1sd!qLLJRin=b zt++6%s5RIs;(*I0U2zuEL+hLFL#cN*My-nbqci?{Q{-)6kJo14U<#>P1JiU6?WJ*p z34>|;zgoY*^2Rna)k=`aZ(p^uF=y|@_h)oGqBHm+_H|U5hGt+1hKJe>%>g9&eUkN^ zKKu7B-WCl_L`jm{xuM;EN-j+?Zs^iox$*C;ia#*Z_+gC4`biYOoh#|j#5AEYHi=6y z3p~DIDptzhK4Peo>*|v>7x^XSh-Cy5#T_h_6s$XFZfath zmLcdvP0TxG2>L`5vja8aJU&##s}`K=le)+-?wOMkfD#N;bWnf}wnv?$A%@XX{} z-*QXb)E?&kPPY4<7OR&ubiydY6+%<948IZCkx+$~n$$WXN6U4qkZ_t>fu`nMS^ojA zBk8ffCKNG*0tv{hWJLl3SaFAQ_F%i%CNnuQ(fNd?! zq4MNAacgs>yuVuP>ehBIUp(!vg?*>QZHWK%$#z_{MmY6Wk?c**T&wmM*23 z{Y&@t%_hW4yw}#8sH8^F)|9A-n!1f?P?2%;Xj?nhnsZ77pNKfZMCgWj9+#}7C+}+` z$3;|)wV&=Y0mZ~5X=gSQMntN1_MovYZ|@KM%d<9*_v@tCq^#u67|{VSRnP6puP!LJ zzc?TMaHCk#&XlP{b8!NU9o*gyu+y8TH z`SaO7t}5Kq zwU?P$o5DKY%Y26#d=p6(MXp7G&1){I|7x)3VlR`ijz6onTyJxu9L4#Z3kR;*>-RR@ z>rm0{d;ed}eRo`xNAUM?bhvx&0qGnH_82Jw9;k@edyU4fpn{?_0ebl+K6&8y=Y zKAhQ@V7)?gu_`TZfgBr!bJu!yg~a!uA!$r{=~_1RPk_yG*dqXv=w0*RE|)i+XUQ4Ot| zykuDfhNyThA@##ldc=yoPNi;bA?}3%d|`Muapm-%PxW_3!{sAwS3uaDTN(XuTD{9} zIs(EDXRwZa@=2C&7|RIv`wIbBE_sOJu(;q4^*+s1b2$)7E592 z!}K1Ag$@><45DUVgDg_)xa1+s!-4|ULkH8Y8yNlq4sM@DfCN&D_TVEq1(p=8?_@1a zo_}72;@a=Ia|<`M^{Y8^V*hhjkD%Gih=3KY9WCyl2{LgoY(A{up^}@rz==}Xjvx#_ zDl&ZxJhmg)7EJlBGgxHFa5~Tte-93)tWNlQdpIpRj8iHDE-V{P0(+$!K_|N4?}`z0 zojq3`NnP+)-!IKfiiz9Nq1uI+dysq{XLn#{l$0yeUj+uUd)S>aTxr)$x8I1Nd{(Jb zY0i%HSzYl7rGoS6W~$PtU~Z26rKwe(UY9D6wiqwcDH82BXh-oW6SC}&iYqsKSZ%~e z11qsbJZ0;2`;Km|h*d-Lq_Sm4(FWFc<)g(kLjHul_==PY{sHk6)K5F8mcIczCbdAv z4MnAhviueg0msej3TB-#hH_aQ7sqggNq4EdKJ7m3li3NA@&+JmBVBG)*V&Io&0h}) z^gAYB9*&`s-M}|I&$HSvmhyf9h3bu^@!g;r?iPZX~e7@_@Eq!@VPA~OJVIuGka;mm>DS2LW>~2Uf7Ksm`vW$ z*f$KrMw!XAn!R&-4WG~#C*U~cmgI%h%--s6rjT6>NQ1xOF&Mwxr_8VZwI=x` zV#WP2ji0Pdo!zj{Q_nU2(&Ux+TJlAl3tjF#ToUyreH0{N{D(6ICV?)WvFB7BK-`*} zy&<=ElGX8D_=>z|oFqerURn0)pcjNW`={c}Y$w!fr^B3lvDK=1e0G&juujw^<< z=Lf&Af0;Z-8b)T$Q|$nRX*~PAU#!cUPzxbbiX=Sp9VH}#w_Rq_sUXb%UCB@oO45a7 z@cqo$WS63uqd$VuOaM`po}iyc z8wLR5i+MEVAU+X3kI&*i*53IlVe@S4Ql-(t9B4R?-VK0=hJu+p2qoIiqmcvgx7$1l zH)xxwW9L!U_weW`F-YTTn}%v2HPiDgC-BX6ms>^YgFxIrDe4%chr@gtehjtnS}WOk z&FA7ziSc$Htno5Tf>EFCYtNNy-1`Ro)?aFrq+<;o%w=QwiHFwSJ68WsKxE^jY$>L( zgEcMGT^G>#!PtZ6F5u`TE40sSANBCD+&i$wRY2I_PU_vyJoKXjGomr+1>47;3n**| zTKLxj`g#ax=SP!#I!DyI25L%f0NNx9lV&j4Fm7gS8r;P@yJ|7r0EW8GVtO+S zLj;r0hS7MI?NFfgx5G8P3!0%Sjer_idnq*=0kk$tDP{zi-*Fku!C$U_x>N&IPA=nw zxASvKYt;Cw;SyD($iF4a`2ar{d+xQp5WzCzVnA3v7Mud=N1~RI)N&*yr4%gV&a5G0 zM?x9dw1U%lY)hMjuragYMSx;V#H#kKpa&z-&AqT>v1Q^~-P%{LwSEJo5DOHeg9^nNs>;oQw8aTl^kL2@XD5V4!yi7 zHJ_O&RNSW5Ozp9f)-V(1r;T$XakOT1p_k2+mXgyL82$WZ<63C_=p{YOU2%rNHfoGC zm?XW%U|c^jj|Ot{sFYbId=<5T!BibSkNS)SWj;Z4qXxsV02OKwqe`1`nyt)|2&y`h z*LV#s$KVEAy=OVD*B#v$zN=T;FmGPJ zGsc?A9|X!W(s47bvLBNbk&KC$Nvmk>MDWlS`f;LWl-g+>HJSv{datA5lccTRx05v8 z?N+YiEG5r)edYE1xe@Io*{qBK-Mr9!?q*2oAFru(GB+tuaY($Y}$w zVi9HU_Z>Fgwz^><^TFnjtZaIKvic3E9mGk0(lGJc*=3tvlQ0a-f^t2Zyr-acn@!yD zvH8{`D{g4BaJZ_}Q2`Jpeute1-8%01qf16e=q5^FW$(eynk|KOTDEK1JYxp-87OOD zlc531Is@Wf#lfsfsewp*$L1fKC7n0X9+cG^W^h52v%37cf17cOy!`0h1 zQN>K4okV7dOjP_cDrUZTZ}NJy88>CyX!dEz%B^~|iLw~R8(_EsW9iq;%x?QOaAmWI zxiLuYLO*0;lpQvc<5c`bU~lA9kivH}7Yj?=I<6X#wfz`ttTg9UH2`6T;_wzRFE{;g zDuWS8n(V6Pn`r~esv|d3W`MR5yoU(i zFnII=hB|XIeaHSH!N-X#urtqrNFTBw3u3W;vVLxBecLB4`o(5`Zq5k!ZVt7WhJF^+ zMymR;AOl>1u$e|rLko7uEjaXT%$x^aJp$YCbeVHf^D> z8KBHT`Mc%^8pSs18`H{&adrzO0mEv3NPbH5Ro@I?RV!V~VyX8uCXPc{`jz);M zmG-f+<+k$W>0YGSAob)^a06HR9SR8RZ|3m{%|qzM1|y{LR?^Hw%Q^#twSDpSUz^({ z+NBsV`fa5MU>HUKgK=Ek00-5bfm?4HF{T2-D58CyQm%zV;zAQ`gtu*J_u>;L7NAFNo^EV{<{T@G=fHQ!>(|G5|$ z=2H}-FFI|cb2=CWTJNSFv%vCQcGIj`n!)PS-6WF6+o@pMGWJC#LD9W;d7#~@Ajpv?{ zw~S?{Y$5%37)+ClD3t{xwgQI1BqK@~XHh%TaZ+L{w4MBy>YTCmJ6mW0D{GPwrLv;T z2<@Iv9P-P1^Qp$N<+joT)-scfD3t{xdgDaeV3H9fjD9i$Zq{ra{m~*c%UJt}t(1VW zdXtPOl|>ZFlGzYE#YYb*tX9-ZhuN~2m_`Ir**V}4%^~VAN7Jl|iEtv>3&s@BfPo91 z89bW1!hjlqd<$PygSTuM%yQbeWA;i{t)#{Vvqjcq^pK>kC~gRBwJf@f zgVm*VycrgF7R??!Jmb5k!#BhFsX!2YRCyiZYZ?G1iU{nGGn*JQ1#+hVkLXJWXZw_BSNV$HB7{f#YNu3_CBsi%i}AM;bXFi;omL z<%)Po9tOlhRGS~BfLEv~;V>oqg};*y&sufn2i7NW(4zN40Vq=ZkEkXmYXjFJ|?8d7|}WKzjNR-Ps~Lo&qvK~EN8Pb)`Kk@sSa zh2A6|uozes_#k3&aeN?U12&RF34dcZXdnnII|ey60%RhyUy9$!_;BPIv0tKbmWSMn zYAw-tsn5KnZc9KA9T!~qEt5RwnGZ`rli5GYzXUhEA`bk9;vM)+ z#4s_tOf}s7eu}(TXkrW&r};W_ZPbFG8-`)fm=)`KQQJMUQ6bd>3r5HaN^n2i)H|%i?yVR@HEC99JPdYcxevgMu)j7W%<=je-)9?R5U>&; zY`%T4=-B&(d{P*5{m=bWdi)!Ul&AbZT_hShfiuZ2x0x zwp0~0+PjGn()%1$UJZUzPCh{|RmwSv#5?^Mlw!N^8r#ctocNo6MU-M=fvx4Vb2M`` ztTd~E!48i0SLs&q<=2_DfB`Lp(c(BD%u2J!*829OpMH)5ME2PI`5e7twZ8@iQ~#Uq zyO$d_>*r)(F!#$K?6%HRz#8=D%kzAs=VZ4$u(HKPmVSXdXsT)f!ss|k?XmfK_JeAG zurntJln&=+zl6IF=c1YX!}G!n7F^wRC`=AdlGXBlFvR@pQjTj ztKSO@roahpcTV+=cUxyHd-nXSwW$1eATU*@LF=sRoBV%24g|T|ZvbKXYVWbX#y8m- zc3Y~Pcj^MQU}Y;^;B5EJ^cXn(mV5&Yg4AlT(wTd45YBhFS6eU3M~+D3d-{!_4Rh3d=y7#fLNp?=o5S%Fka82T-Y=F?LbNJ!2MdK=4{;;0#!Frx`OHC0%+8SQ32X5-CcfN=hU#0^g5xl2<@3UsTv3;3S| zy7k|sX==U<`1^NhqPvu7TG8)L%vowB|m*tYL}O(px< z_xYxG>wPm?xL@PyT-duvG&=y$@%@@o>VJO-A|HH65hm;$77cI58*HTha!H0rrhli)BuxCL?KWXp|J5oXeB8C z+JmK!x!uSvMFx{DMbfEr>kfQ%h*%VN)csZ5bCiYh!|3wgos3TWfO+*gb=Hp%@g{wY zu>2u#YykgqQ6Hm!?`os}jH``IQ+TE%9RW?bPluHJmHWiFso@aQ4P@8rM)0k->cEJ( z9_}HcWWkr_qT)&NH!d>hm0Uf`j#rGA3?NEdlxmf6-;qxH3bc_`V$xGaY7<;cZm?FH z^pue>WcJaQ9mP*QhfiLR(dJz#IK%=hVJIIit|9U_6h>s8H4=mVCn73^3-yvED3ZTp z^rkL!Cg{p8j5K{LSXMa}{99jlaybqqpaL=1GX3F>+&Am?gIyj6yx*Tun_YU!mp<9) z%xhW#pXCnjKayK+=tay7rkr4A^n7MU+m1u>!u9g*aagA1G-v)NAjx=^tU2rkkOwCK z<53y~R-J#6Mb@3l;MPBsWtab{`9{Qzl1{;hEC&+HxtwSp-kA<4esD_TE#D$Y&FO3m<`i)ROj++Vi$Tkkq#|;ea-dMWp`Zvv`jk8BRixTw!Jo^`AE3n^&?Q2 z(izmVZQ}3FkKW)T{D@wq{w-92bKnK}l$vr+X>8Q4 z1L)B?O+CvF??3IvCOAkk)8Q;Jy>?L74b1bFouE`zsiYf3oM_B>Xp=l@#QfEJ=m_Vb zKA3$lqs!-^HHi38;R49zi65QugWpQxM72&J@uwW^ec%H0rGI&Y`M`^uv!Eb3)5?n) zFVD?2II~>tDXbfFst4TpM?z&_>eQzW9WBWB5_IEnDjI$XQh%z7vM)jGZ&0Zvzx93N zj}HAdrzz_wKVMLt0)*{#j?DhK+-9>6%+W$7@^32ofU;0!&(zlXQT?AWn^14e&p1Pu zv{^|j_VOHu8rbq1I;O68`+RFmT}AUpYO>2<0!hhsBLB;puhbXE(Adjh%uAGW8H_QA z?q5c83puR)&-lT46p#a!Jb|?f#b1GKM9!R-?;pW^UIP)O_v{K9WfUKl6meD4$57Ei zE$yjB?D;Ca#=!|V-%~_S9Y8$M_mxS`S6&Ds%m87-0-@B^g05c$^EbZwiz2Ta0EF#Ojb*9cHLw9}63jKJIGaRqlFUTvC^Q% zOe5J4M}2RgCyJxU+#48!f8hGt_9ik&Fsar5rlzThg9n^%<=(`>L-WmCPtdH%&8==R zuMY?b?Jo#>eHha;x3DIgwCqW?--;F#0Sv=$umQ77kN4L`FJEwWA#;+D?YEU|)T-uy zJUP0pXFb0kelkJ^*-$1cTlDysmkm{IL)i)_+o;D>x4*idXGRdY)~hyjm9@;$RxL#b zyj%PI$mAhYX2G-ELBnVm8woj%d@+!QHog2$}oaDdtfwm$kA}OQxcO%hFwv;=9PTvd}1hJ6eab`Yym=Wslr% z@_yIlYom;1$J)^iR{I)YKo3aYS?OD^$2(@?*=;^#*HwP^aiXKaOm(+ey3Eg)Z_O3!oO^$1%v zlf@&*kOLZOb_aF*uAzu``0I=v7@iH)w7jm`RR+zUnOmwYZ!R-nU&q-$YhFxnXX|Qa z^;Rm7P*tRsPO-9?D2wzD>7mw{J7-iaU4W2V0AXSA?{WuM`oVD?gt|h&vs%*sj?TZA z%Qo1x@nz_Dy(fN)@6)545rTAt;dfECqyzu{C9Spd z@3U9EGGf#Lgnf74keIDo*3@NoVR^FkbD$|GtIq-k69-=Hw&(0_dUTKxBgcUbFpR6f zV5{-O0ei}+8(GH#1EP#cQrPdM!=fh+lx42PM$SJhRx~4UsWUs)^s>NIZ~HDA>1LAv;G8kbDOUVvaj2g;1t>a^!q=`{!-mmE`!-E z;}$DILsYT|rAqf8y^W(QH42kHF|m}-=8xo>Q?zWC+%iXDx-kGe~PeOZdOw2AgN$5;$vzJ~1USadD0-Fj2!EBvz}F|cBb+?hiCIM#>hpj%h~@Irr@E-6lZ3eX z>A!3aY{DY61GtCB7#GS#ZH5eBFjaQN_lF;J8nomAFyKGSI=coC<}i8cNMQJpD|Prd zR%09TZ7x*uAj-WTX^F=QxAmjC*E(u>4`pHq&f{%L&| zN>OGn2z_OE;4IZG4cUNOC(E3lre!<@GuW;u8MKM-- zCYRF}uS(092GdD-p{o=#@!(1?%W9|UjHbn_@exqgn38z&WAuXY`-U#zT+YfDYNfIz zP(&6RGpX0gmZ1QC{#eSpiUJ_1h_dPU^u0^TYO3NlDxc!!Z*B6MV~UlOZ4k=lw$(a$ zvvc5oHH?2FKIDy9ejE6}yQvk{x>JLusQChm?<;I>gqvUpWqD-+ridg{%ZjW1bBZhd zV2*fbgcrpAw&FY(>#<_K1!#ow88qV zKxb-x&*1HYtDkOfWkgrncC+5Gn8*=RlFy8%2$p%l|nBTs&e z_b$_kX@|0VK`*LhixgaPMn3Ze_0+W33;s(}Y_-8CeUJf>x$UYg$XR@=gOE=)hLhmH;DhMm@_I-`AJL$zd! z9(DbGbjx$q^v1rX%a8?`uZJ89IPk&*AO&l}Qkdm{yvh8ccs&RvF29J;mm_VIOBP(t>9Jllx(_t>Q=*53sUW1c(A z7Y59Gs}X%bU52MJhN0cs(;IKPHk2@!)~ZrB=Diy;s$)duhxeHe4yzSqM3$ z*t$*!@keP5ZPpZ^85?9qMHh7t48o7>oh)Gd3ZX^z@NCFS)>?RBXQWDs>Y12|1aLXy zBGN8>I~VG#ln%|HGA4kdHUesu6Sx_sH|5)&u*#!1zwq#%fC9|;2?NVwKpa54d1+-e z*K#)MxKBJ(I~F^;K&y3YwOPhEGk(MX%kU#f(w(HNzp6trq(gkK(BJ>4@`lF^Fvxj8 z*pT!cQvdhmJFsvGcZvIOu2LI_0r)GYxn;R zSy~nIaggQzg4i-u(*8>o|AS?|`YdDomk-H<`JXz5Lp^DR=}JT-Yxb9DBr$-*ye3;B zO)wK|#RLSq*Z6;BO7KfrA}eX^n1X|pnfb{vm1p;2!hMst7_3A(sJ<(~M(&S20 zVtc2gB46oTi(2EXx3LulqLS&zst@=MGpJqNv9j_Uv#9y`-%-IkOoH5hNHhDrj8n5# zW4@w{?brM$?$NLhU(GldX$OexXzC0IbBWBY+3`}pE~&FfD514WE1qUW*EQwVy3(kL zNsIgEKJG17_7XGH%ijo=A(u!0wP%Kl4grSUuspMdH2}m3Wg2b%zK=)Kh-g5t{`j%0 z06GEW3{d^oCv7gKw`MDk><*C#2-_CbsQud?S&J6D1w>lW5JlLYlV(a^U)LFP7XAu| zOaM~@%1L7iLVoeM7jukW>*HjK+7#fU^)}pztO$MH%qPt`n*19{AL6C*c8>= zc7%gMVs(uVeDxArAo{fUo^b>xQ#7XQj#_s+nK@){K3BE#*Rx7!-RV+kWRqvjrN9!} z;O761uQ?ft9dT(Mv71bJe|dMR;#;1@GCaKarH*dv#MjGl%NBTv{kja72MUAhN$=gD zQ6K6=d7emd@B&HsT_IG?%LTsOwYS-Jy=@CdOX}vXb=OO3LNRlh9_pY<2h$CAt+$DZ z>13*%w8%y4i9}0Sq2rO1up~A?aCFHnp>;Fu-13f*8QJ}P)OEYi0X+=tt-5g5{TST8 zMWeO%M6^}bd3$vs!Al$HWvVxv*oFNwUDe1bn1wQYKr2(8m)45kRptKa#aU8@e2Kgs z^s6g&O#E^#jvGX6Jhdf22{%t|kRnJnb>$1c!}2HLD}P+)P=G&8O+HCn6wjgCTk|{} zb6TBw+Ue9RCP-wl)VLd0UT+xE_T}v>VJ=Z6z7Re!Pw^Z9-k3s z|7EHy?arl4@1%`?cK-H2WzazOyf5Z1S(d(_Y$P9sy=J3N4r@@WqeM8I2dPxSfH18x zqG895+t$Bj7C5GnqD-Ags_dY3OY0v0_8pH-p)(69#^2eaPO~nmMFE znvp|_){_ELkVT4RG^aXMw9e-6Jf?0bS{HMKzEka~I6DchLYY;t=fHwO2?%<(Wcd`N z^iA$cR&pK#o>tVMR!If15N>wNFKXY;M@v_1z4}y&+h-gN^CXYTFM6w+>3Ds#TXhn( zF|}sq^}y|?d*XcF48A;peoTo@hW`r#^|`O(Hxg%fCjVhR>9eeV5ERJ;fZNP`liD*kGn-~GAP_%{3aF-9I>+j!qE|U=om)xOe zMdSUE(S%J>6VaSXna-$9L~VihAH;V2^)hz7(sxSYL#A>q;6v!OHLXp?f;(a}iD;{w zE5OZA)IX4&u?M07h4Tk7UXvnaR7jVw$PaZW8aa|vjI0cchpA)@(k-;AFW|qUSoG;9N= z4ZQX}XdDX%t8}wuL$84OD^VtpTa1r_Os;^uoR;xq>DK$*Sjq=p<}AvvVd*m^w%3)} z%Ua41HAK zlgHYU%vTP7w%IRcc}dN(8mvqsGc8YvqDCi8sEtkAYnp2U5!Be%Ib$MesU41l$fAE{qp!wr8t~%$Yn7| zpOh&uoH9nqP?c#GWeqW&|A)vq8d&p-(%0BhW7iaRk%?v&LOxIIJxwsKG@LkHO-ce+ z2#(~}Ov|neH|Yi_DICfagJ0dcXy^fj)lt!Gc@nqPnRbnVDy^K*(~CH5N!jTyFs=BC zO!^l}jcI1e4KRp-im%PIOF^I|+J!#F!N1R=_`=kx5`u4v(Qu>?7i-)?6u`1KiD{rt zDk2q`_&d|~%=8O&U6Zj%LKaB4jHpazh?Mf*@eGkJB?GH0M`=ft?l9}s*Jd6kTS@!O zYD{+XtdVYN9yrMoJ+RBU4nUCLt{P*G$Q{AB5b@vSh)iJFBft1ujz~!xLypKjRkh9N z=|N2i@^{i&8%%id%iBJa0hX}lC;^tu+=?c_Vs0|fSl%J;q?v(s8?;`ZMw8J~0}h^f z$K(u?CerF*yDoj_)7+C4>6Afhr*==FtPt!y{8QA@X;wz-0aJH>b#}8vV<|X2B87ek z(Z;B)5x^PxSxk>qiVW4JQypJTi89zE1!49&BBdhR({%i5@$h$1-}F(l{889+Ar^B0 zy$gjoN;{AOs-a#Jv2JYj#JZ|S2C-_|K!biDH~-Y1)@%2Wln`bym#r8kZhVo;4jDuz zSnXp6am#VFZ8f@<)_!vvWx3^C`)htUpJVhuxBOn12$HFlk*-!s`_lsdzjy&McUKE8XL5hq74%uwY1mc5}qbb$jSl(n1 z8ah@*wHe=JQ9O-Lwr<_!nL`_6nd<^&W0#W_sJaLoDAVaLTX%IEdBx_I5$6NG2vsfp zWvj09@3kFs*a$Hhx+b;wD}8Ev5LV5Y?TDl+{}P-2*Xqc#q@O5Y=QjY_m|-(8CSeG+J{!N~t(R zWild9YNpAEJPD#gtQ=#hs!>zN^|&}s7S!xJCSvr`H=|9a20~QHG6` zp--7PuMeMXW-L=Q_%9K-?!YayyT>Ja#qaJ-Z>U44|DPHUmfJ(#{eLEk4%UdjiIGzb zdLb$)a;bn(gZ#dNvvx%n?oT5;eBfv6(2BV@vde_=^@0`=#SUV+HYq~!AAuBmhJtL2 zjZxm@o9`6!3Ae%&`UH1(!O*;BZ99MjVNkI#f zY%^*TqAD&%EmW0_=ry*GcL^FZY1?-nbB%mhTm)Q*%19yEXh@}>*n2RCeJQ9&HZ_KZ ze5Uf^8e}w!aZ)qGrb2$>FC{d@rDTZdXb6c&g&Csg@P`)Yis?uO_JzLuAz`PEg(&c4|*wDn;h?+A2wlRDbwLC1sU9kTX-TXUBgT<1`rwvi9t$wiL0AX z!Ho{sT>&THFMAjBYA_HxbjMMu(oSRH&;n|+(fX|58Czm3Vf>sCS`^;sP9v9aUJ~cwAuYx||WAV9zAlk8`H1ZoJ2A8Wt;p zVN^AWVB@)o5+j`9LMOh$o@|ZFEEe!1haamix=?UiyjIYR?J3kha7sZY`b4-IMY7Sr zU8EwK6%WgM;ZYGvQ)YX#M>*~(JW4XY-n2Yp2SsB`(^Xaj+AE1E&^Z5aNcmd9cgBXv zL0G2a=M+)H!n0st%RlD&r=m$3yP`BK_RT*F-j;fZ9+--lM1Yp*$*+7<`KwR`^(d`W z>ScAHhsEiL1=k4Fri6|auH}>GV!p6X`qVhJNfAl)dXb&-6K+@e!@42X^Er4q~3tUJj1Sq`%^ zGcOy-C&_{xg%sn1WFniN;(S!p;sXU(O1~*5eFzCq74NfCG`J09 z<~RlFh3qh5B9KG*la$6U+0bxiWaqqu2< zu{b;BS_lYBkhR;%#j)$u*`tk+F@UfPpxZt^cxvZyteg>&W5pr5TW6|Nes}zx5poU? z=36u|d2WSk6B}z~NE$xmYt2DkLtC2N8Ga$%SjY{9*gnxJ^=z-WQ_s{!$ZQ$X_WJ(C z6aE_IVT9;V8!PjB?Q%BH>(=|h2I;>q7(I<~A@w&f!DMjeqjg_w#bfINUQro&&hM? zyg(7=I2ISVwtw?-r?-pWG=13SOMS%plvrA3gU)#I(H7Q~w6q6!Gg2bovMu=>`ybvyi`^?*>;m5j&oWi?wY)~ zlLV0tnacyhJOs<+j?A`fI=H-rtbwRhH34BPH)))cMN;-%KO>|KAWnef-p;Drv5d=e z8Ip$cl^B2+Mdr}aN<{(vQiX>LKZzqiJVf+uTSnH5aFKaQm`+)y90Nj@E9djzJ>(~J7>Yq@@$ zTpDPbd8WY~ldb1pw?5t?O5Az`ot3;BR4N{qFCU@1c@<6Ie(wZ#`Y$GdyPO=;kLRZ6 z_rklRM5UxK)w9hXb-r z2i`CTbUBTzt7*M>RV{6xos<}rQB}$t>R&A=NHtZ(Z>rGxPKK?NZx4tzxFcwH!-L(zW6E>d|y2Re)g3ld}|L5^Hzv#Zr8|jN@rcFGv>GXT+XLe(JXcGHO$aCJgtKYxtSnu6m zOY7sA4f1cPqhrNhjjy!Cvjd*5rS6-#zuAEw{qW2J;CDPK_tT6gHnFqt%$lL=-rBX| zcMZ<2kjoD_x$)iT!GBcECfm{4QtDq`Ql-(D0{Gj6{jK$y`m(?6Ueh=D>)00|3{0{Gu*AI1PZr9kpd7-K{R)e`rii&>A)V_Ql_T4}h}?{OxwHY?ley<$jFk z_3gCNCT?-AxU4Xo2B&EQF#e6lf)stx^|3}0lwSQkS9ZN=ynW!NLm!IyxMSf;u@>w? zJx$*Hz>inTzHoBxX}FF3^rs{$1JTM3B7QR4ILB-Hl39gGQ-N4P4d^f>KGbo31giT0H;9Rx7k{sW?uhoqz?$0qcSjTu72ZVP=&efkasKYc;D zEp+85>7h`P+Bm|1lXXC_q1M%e0NbRLIAG&{${Zz>qoJ*J_Bp4mgvSm!f4K>lEwr&I zzCB}sA^oMBuYt4A4Ni^iDhXwCPI?I^&1p$3(TDOX2v#}Y`v{|KC_7!SbxKYgkQ$wg zg8YXsi}|3%wZzgCDTvmzzmiZMo410m?BaDop;wW5onxU_DCj^7JaslS*;D6L2nc)& zdid>tnYx-*tnF0sMG<;QE|RK6XP+Q(R8qp;7+F- z2(IK)UuYy$g=e|<@ZsJ(2AN{&3my5#+$o@eU`f~O3uR~d3N_4vD9l&*GAG?va5b|{ zOiGPSM9qohS4-%TbKFm`urUjyT!Zj6)fX|GjY5RQH2b&^fyyd{3ccuKDZ!2|h6*VZ zIYnzlJG_PRIqRzlxH02)4WSI>RTmP>s#5nFLIavHO7Nz%Fz|yAhVG8Ns61-x2{sn+ zp$eiZ*+N-L3KuNM24!56JN2WFT(|UN(;xkTi<9sbFyj)4J=vbzo0U2fs^ioL0DK{&{Adt zp;X~_j7WB1s?;G#(J8*6NEn~3)k8R{3E?n#@q$-GB~F~W5L=i zr*9Ksju`?{Et?7FC_PfJ%(>P~h*4AC2%!?ZCa2BTmZ3$FpjGwdI`^C|Ern(3oUk^+ zR$GegB7{)P6P64DRj}&v0t@z)U1o(MaTUG&slARFkXjmln|bi zlps7&TeBD;uoOLU)RmxN{e=>iRfB_qLuf{S;d`3CKv$XuB@6v2BL&^nqzLV3Q;KjK za%EPkaN35hjTG8|&{fiey3SGv7ptpBa^j$r=;V~R*pyVdmL|B>j)_g^<%@{^KGD9t zVv~DCCq*apicaV`#8=|v2yPbh9~6}m@0*a=E4pW5!ay*$Z%X2T$HQt!>alja1zX7%*?i

eKJ5dOr`J=%#-cyA7bRY@Pe(gk8 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 diff --git a/cypress/support/component.ts b/cypress/support/component.ts index 8d983917..afafdf61 100644 --- a/cypress/support/component.ts +++ b/cypress/support/component.ts @@ -1,4 +1,4 @@ -import { mount } from 'cypress/angular'; +import { mount } from 'cypress/angular-signals'; declare global { // eslint-disable-next-line @typescript-eslint/no-namespace diff --git a/package.json b/package.json index ebfea910..ca1c284c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ngx-mask", - "version": "18.0.4", + "version": "19.0.0", "description": "Awesome ngx mask", "license": "MIT", "engines": { @@ -60,47 +60,47 @@ "url": "https://github.com/JsDaddy/ngx-mask.git" }, "dependencies": { - "@angular/animations": "18.2.9", - "@angular/common": "18.2.9", - "@angular/compiler": "18.2.9", - "@angular/core": "18.2.9", - "@angular/forms": "18.2.9", - "@angular/platform-browser": "18.2.9", - "@angular/platform-browser-dynamic": "18.2.9", - "@angular/router": "18.2.9", + "@angular/animations": "19.0.0", + "@angular/common": "19.0.0", + "@angular/compiler": "19.0.0", + "@angular/core": "19.0.0", + "@angular/forms": "19.0.0", + "@angular/platform-browser": "19.0.0", + "@angular/platform-browser-dynamic": "19.0.0", + "@angular/router": "19.0.0", "@types/jest": "^29.5.14", - "@types/mocha": "^10.0.9", + "@types/mocha": "^10.0.10", "ajv": "^8.17.1", - "cypress": "^13.15.1", + "cypress": "^13.16.0", "highlight.js": "11.10.0", "ngx-highlightjs": "12.0.0", "rxjs": "7.8.1", "semantic-release": "24.2.0", "semantic-release-export-data": "^1.1.0", - "snyk": "^1.1294.0" + "snyk": "^1.1294.1" }, "devDependencies": { - "@angular-devkit/build-angular": "18.2.10", - "@angular-eslint/builder": "18.4.0", - "@angular-eslint/eslint-plugin": "18.4.0", - "@angular-eslint/eslint-plugin-template": "18.4.0", - "@angular-eslint/schematics": "18.4.0", - "@angular-eslint/template-parser": "18.4.0", - "@angular/cli": "18.2.10", - "@angular/compiler-cli": "18.2.9", - "@angular/language-service": "18.2.9", - "@commitlint/cli": "19.5.0", - "@commitlint/config-conventional": "19.5.0", + "@angular-devkit/build-angular": "19.0.1", + "@angular-eslint/builder": "18.4.1", + "@angular-eslint/eslint-plugin": "18.4.1", + "@angular-eslint/eslint-plugin-template": "18.4.1", + "@angular-eslint/schematics": "18.4.1", + "@angular-eslint/template-parser": "18.4.1", + "@angular/cli": "19.0.1", + "@angular/compiler-cli": "19.0.0", + "@angular/language-service": "19.0.0", + "@commitlint/cli": "19.6.0", + "@commitlint/config-conventional": "19.6.0", "@jscutlery/cypress-angular": "^0.9.22", "@types/highlight.js": "9.12.4", "@types/jasmine": "5.1.4", - "@types/node": "22.8.1", - "@typescript-eslint/eslint-plugin": "8.11.0", - "@typescript-eslint/parser": "8.11.0", + "@types/node": "22.9.1", + "@typescript-eslint/eslint-plugin": "8.15.0", + "@typescript-eslint/parser": "8.15.0", "@web/test-runner": "^0.19.0", "angular-cli-ghpages": "2.0.3", "angular-http-server": "1.12.0", - "eslint": "9.13.0", + "eslint": "9.15.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-json": "4.0.1", "eslint-plugin-prettier": "5.2.1", @@ -108,24 +108,27 @@ "jasmine-spec-reporter": "7.0.0", "lint-staged": "15.2.10", "markdownlint-cli": "0.42.0", - "ng-packagr": "18.2.1", - "npm-check-updates": "^17.1.8", - "postcss-scss": "4.0.9", + "ng-packagr": "19.0.0", + "npm-check-updates": "^17.1.11", "prettier": "3.3.3", - "puppeteer": "23.6.0", + "puppeteer": "23.9.0", "stylelint": "16.10.0", "stylelint-config-prettier": "9.0.5", "stylelint-config-recommended-scss": "14.1.0", "stylelint-prettier": "5.0.2", "type-coverage": "^2.29.7", - "typescript": "5.5.4", - "angular-eslint": "^18.4.0", - "typescript-eslint": "^8.11.0", - "tailwindcss": "^3.4.14", - "bun-types": "^1.1.33" + "typescript": "5.6.3", + "angular-eslint": "^18.4.1", + "typescript-eslint": "^8.15.0", + "tailwindcss": "^3.4.15", + "bun-types": "^1.1.36", + "postcss": "8.4.49", + "postcss-nesting": "13.0.1", + "cssnano": "7.0.6", + "postcss-scss": "4.0.9" }, "typeCoverage": { - "atLeast": 92, + "atLeast": 91, "ignoreObject": true, "ignoreAsAssertion": true, "ignoreTypeAssertion;": true, diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 00000000..1c25a754 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,8 @@ +module.exports = { + plugins: { + 'postcss-nesting': {}, + tailwindcss: {}, + autoprefixer: {}, + cssnano: { preset: 'default' }, + }, +}; diff --git a/projects/ngx-mask-lib/package.json b/projects/ngx-mask-lib/package.json index 15381d26..ab7f5853 100644 --- a/projects/ngx-mask-lib/package.json +++ b/projects/ngx-mask-lib/package.json @@ -1,6 +1,6 @@ { "name": "ngx-mask", - "version": "18.0.4", + "version": "19.0.0", "description": "awesome ngx mask", "keywords": [ "ng2-mask", diff --git a/projects/ngx-mask-lib/src/test/add-prefix.spec.ts b/projects/ngx-mask-lib/src/test/add-prefix.spec.ts index 5694b87d..21b198c2 100644 --- a/projects/ngx-mask-lib/src/test/add-prefix.spec.ts +++ b/projects/ngx-mask-lib/src/test/add-prefix.spec.ts @@ -12,8 +12,7 @@ describe('Directive: Mask (Add prefix)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/add-suffix.spec.ts b/projects/ngx-mask-lib/src/test/add-suffix.spec.ts index 420767c8..1a3095b9 100644 --- a/projects/ngx-mask-lib/src/test/add-suffix.spec.ts +++ b/projects/ngx-mask-lib/src/test/add-suffix.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Add suffix)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/allow-negative-numbers.spec.ts b/projects/ngx-mask-lib/src/test/allow-negative-numbers.spec.ts index 2e105b52..335845e6 100644 --- a/projects/ngx-mask-lib/src/test/allow-negative-numbers.spec.ts +++ b/projects/ngx-mask-lib/src/test/allow-negative-numbers.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Allow negative numbers)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/basic-logic.spec.ts b/projects/ngx-mask-lib/src/test/basic-logic.spec.ts index 24cc97f6..667d8f3c 100644 --- a/projects/ngx-mask-lib/src/test/basic-logic.spec.ts +++ b/projects/ngx-mask-lib/src/test/basic-logic.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -944,9 +943,8 @@ describe('Directive: Mask', () => { equal('11/11/1111', '11/11/1111', fixture); component.form.setValue('22/22/2222'); fixture.detectChanges(); - requestAnimationFrame(() => { - expect(inputTarget.value).toBe('22/22/2222'); - }); + + equal('22/22/2222', '22/22/2222', fixture); }); it('mask sepator.0 after setValue should be dont dirty', () => { diff --git a/projects/ngx-mask-lib/src/test/clear-if-not-match-the-mask.spec.ts b/projects/ngx-mask-lib/src/test/clear-if-not-match-the-mask.spec.ts index bc318931..88794ac5 100644 --- a/projects/ngx-mask-lib/src/test/clear-if-not-match-the-mask.spec.ts +++ b/projects/ngx-mask-lib/src/test/clear-if-not-match-the-mask.spec.ts @@ -12,8 +12,7 @@ describe('Directive: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/complete-mask.spec.ts b/projects/ngx-mask-lib/src/test/complete-mask.spec.ts index 89cae0a4..c6de3d70 100644 --- a/projects/ngx-mask-lib/src/test/complete-mask.spec.ts +++ b/projects/ngx-mask-lib/src/test/complete-mask.spec.ts @@ -7,6 +7,8 @@ import { NgxMaskDirective } from '../lib/ngx-mask.directive'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [ReactiveFormsModule, NgxMaskDirective], template: ` `, }) class TestMaskComponent { @@ -26,8 +28,7 @@ describe('Directive: Mask (Function maskFilled)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/copy-paste.spec.ts b/projects/ngx-mask-lib/src/test/copy-paste.spec.ts index 45dd458f..59eb800b 100644 --- a/projects/ngx-mask-lib/src/test/copy-paste.spec.ts +++ b/projects/ngx-mask-lib/src/test/copy-paste.spec.ts @@ -13,8 +13,7 @@ describe('Event: paste', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/cursor.cy-spec.ts b/projects/ngx-mask-lib/src/test/cursor.cy-spec.ts index a83b43b1..c3757d19 100644 --- a/projects/ngx-mask-lib/src/test/cursor.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/cursor.cy-spec.ts @@ -1,13 +1,12 @@ -import { CypressTestMaskModule } from './utils/cypress-test.module'; import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; +import { signal } from '@angular/core'; describe('Test Date Hh:m0', () => { it('Test value Hh:m0', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0', + mask: signal('Hh:m0'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('2020').should('have.value', '20:20'); @@ -22,9 +21,8 @@ describe('Test Date Hh:m0', () => { it('Mask Hh:m0 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0', + mask: signal('Hh:m0'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('77').should('have.prop', 'selectionStart', 3); cy.get('#masked').clear(); @@ -34,9 +32,8 @@ describe('Test Date Hh:m0', () => { it('Mask Hh:m0:s0 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0:s0', + mask: signal('Hh:m0:s0'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('77').should('have.prop', 'selectionStart', 3); cy.get('#masked').clear(); @@ -46,9 +43,8 @@ describe('Test Date Hh:m0', () => { it('Mask d0/m0/0000 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'd0/m0/0000', + mask: signal('d0/m0/0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('77') @@ -69,9 +65,8 @@ describe('Test Date Hh:m0', () => { it('Mask M0/d0/0000 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'M0/d0/0000', + mask: signal('M0/d0/0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('88') @@ -92,9 +87,8 @@ describe('Test Date Hh:m0', () => { it('Mask 0000/M0/d0 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0000/M0/d0', + mask: signal('0000/M0/d0'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('999999').should('have.prop', 'selectionStart', 8); cy.get('#masked').clear(); @@ -104,9 +98,8 @@ describe('Test Date Hh:m0', () => { it('Mask Hh:m0:s0 check cursor', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0:s0', + mask: signal('Hh:m0:s0'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('910') @@ -122,9 +115,8 @@ describe('Test Date Hh:m0', () => { it('Mask (00) 90000-0000 check cursor and value', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(00) 00009-0000', + mask: signal('(00) 00009-0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('910') @@ -159,9 +151,8 @@ describe('Test Date Hh:m0', () => { it('Mask 099.09 check cursor and value', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '099.09', + mask: signal('099.09'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('910') @@ -179,10 +170,9 @@ describe('Test Date Hh:m0', () => { it('Mask d0/M0/0000 should set cursor on right position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'd0/M0/0000', - leadZeroDateTime: true, + mask: signal('d0/M0/0000'), + leadZeroDateTime: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('33') @@ -193,10 +183,9 @@ describe('Test Date Hh:m0', () => { it('Mask d0/M0/0000 should set cursor on right position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'd0/M0/0000', - leadZeroDateTime: true, + mask: signal('d0/M0/0000'), + leadZeroDateTime: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -208,11 +197,10 @@ describe('Test Date Hh:m0', () => { it('Mask should work with showMaskTyped 000/00000 with prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000/00000', - prefix: '+38 ', - showMaskTyped: true, + mask: signal('000/00000'), + prefix: signal('+38 '), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -224,10 +212,9 @@ describe('Test Date Hh:m0', () => { it('Mask should work with showMaskTyped 000/00000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000/00000', - showMaskTyped: false, + mask: signal('000/00000'), + showMaskTyped: signal(false), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -239,9 +226,8 @@ describe('Test Date Hh:m0', () => { it('dynamic mask after backspace should have right cursor position (000) 000-0000||+000000000000000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000||+000000000000000', + mask: signal('(000) 000-0000||+000000000000000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('11111111111').should('have.value', '+11111111111'); @@ -254,9 +240,8 @@ describe('Test Date Hh:m0', () => { it('dynamic mask after backspace should have right cursor position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000||+000000000000000', + mask: signal('(000) 000-0000||+000000000000000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -271,9 +256,8 @@ describe('Test Date Hh:m0', () => { it('dynamic mask after backspace should have right cursor position (00) 00000000||+00 (00) 00000000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(00) 00000000||+00 (00) 00000000', + mask: signal('(00) 00000000||+00 (00) 00000000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('111').should('have.value', '(11) 1'); diff --git a/projects/ngx-mask-lib/src/test/custom-date.spec.ts b/projects/ngx-mask-lib/src/test/custom-date.spec.ts index 0cbfe9e5..c39b2701 100644 --- a/projects/ngx-mask-lib/src/test/custom-date.spec.ts +++ b/projects/ngx-mask-lib/src/test/custom-date.spec.ts @@ -12,8 +12,7 @@ describe('Directive: Mask (Custom date)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/custom-patterns.spec.ts b/projects/ngx-mask-lib/src/test/custom-patterns.spec.ts index 565b2336..666d4729 100644 --- a/projects/ngx-mask-lib/src/test/custom-patterns.spec.ts +++ b/projects/ngx-mask-lib/src/test/custom-patterns.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask (Custom patterns)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -50,8 +49,7 @@ describe('Directive: Mask (Provide custom patterns)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask(ngxMaskConfigValue)], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -94,8 +92,7 @@ describe('Directive: Mask (Provide custom patterns with symbol *)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask(ngxMaskConfigValue)], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -149,8 +146,7 @@ describe('Directive: Mask (Provide custom patterns with symbol f and F)', () => beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask(ngxMaskConfig)], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -196,8 +192,7 @@ describe('Directive: Mask (Provide custom patterns with symbol B optional)', () beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask(ngxMaskConfigValue)], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/custom-symbol-regexp.spec.ts b/projects/ngx-mask-lib/src/test/custom-symbol-regexp.spec.ts index 0ac1bb90..bbe4e83d 100644 --- a/projects/ngx-mask-lib/src/test/custom-symbol-regexp.spec.ts +++ b/projects/ngx-mask-lib/src/test/custom-symbol-regexp.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/default-config.spec.ts b/projects/ngx-mask-lib/src/test/default-config.spec.ts index f4c28a8d..b94bed1b 100644 --- a/projects/ngx-mask-lib/src/test/default-config.spec.ts +++ b/projects/ngx-mask-lib/src/test/default-config.spec.ts @@ -10,8 +10,7 @@ function createComponentWithDefaultConfig( defaultConfig?: NgxMaskOptions ): ComponentFixture { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideEnvironmentNgxMask(defaultConfig)], }); const fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/delete.cy-spec.ts b/projects/ngx-mask-lib/src/test/delete.cy-spec.ts index 2b3a12b1..864656fa 100644 --- a/projects/ngx-mask-lib/src/test/delete.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/delete.cy-spec.ts @@ -1,14 +1,13 @@ import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; -import { CypressTestMaskModule } from './utils/cypress-test.module'; import { FormControl } from '@angular/forms'; +import { signal } from '@angular/core'; describe('Directive: Mask (Delete)', () => { it('cursor should correct delete with ViewEncapsulation.ShadowDom showMaskTyped=true', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000', + mask: signal('(000) 000-0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -22,9 +21,8 @@ describe('Directive: Mask (Delete)', () => { it('should delete character in input', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00/00/0000', + mask: signal('00/00/0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -37,9 +35,8 @@ describe('Directive: Mask (Delete)', () => { it('should not delete special mask character', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00/00/0000', + mask: signal('00/00/0000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -52,10 +49,9 @@ describe('Directive: Mask (Delete)', () => { it('should delete secure character', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'XXX/X0/0000', - hiddenInput: true, + mask: signal('XXX/X0/0000'), + hiddenInput: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -68,9 +64,8 @@ describe('Directive: Mask (Delete)', () => { it('should delete selection', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000 000 000', + mask: signal('000 000 000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -82,10 +77,9 @@ describe('Directive: Mask (Delete)', () => { it('should delete prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000 000 000', - prefix: '+7', + mask: signal('000 000 000'), + prefix: signal('+7'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('1').type('{backspace}').should('have.value', ''); @@ -93,10 +87,9 @@ describe('Directive: Mask (Delete)', () => { it('should delete suffix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000 000 000', - suffix: '$', + mask: signal('000 000 000'), + suffix: signal('$'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('1').type('{backspace}').should('have.value', ''); @@ -105,9 +98,8 @@ describe('Directive: Mask (Delete)', () => { it('should delete specialCharacter from allow few mask', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(00) 00000000||+00 (00) 00000000', + mask: signal('(00) 00000000||+00 (00) 00000000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -124,9 +116,8 @@ describe('Directive: Mask (Delete)', () => { it('should return value from ctrl+V', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '9999999999999', + mask: signal('9999999999999'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -141,53 +132,54 @@ describe('Directive: Mask (Delete)', () => { }); it('should not delete special character from backspace', () => { + const patterns = { + '0': { pattern: /\d/ }, + '9': { pattern: /\d/, optional: true }, + A: { pattern: /[a-zA-Z0-9]/ }, + L: { pattern: /[a-z]/ }, + S: { pattern: /[a-zA-Z]/ }, + U: { pattern: /[A-Z]/ }, + X: { pattern: /\d/, symbol: '*' }, + d: { pattern: /\d/ }, + h: { pattern: /\d/ }, + s: { pattern: /\d/ }, + D: { pattern: /D/ }, // custom: The D on the mask can only be the D character + H: { pattern: /H/ }, // custom: the H on the mask can only be the H character + M: { pattern: /M/ }, // custom: the M on the mask can only be the M character + '\\S': { pattern: /\S/ }, // custom: the S on the mask can only be the S character. Escape it to prevent digits from being removed from the value + }; + const specialCharacters = [ + '-', + '/', + '(', + ')', + '.', + ':', + ' ', + '+', + ',', + '@', + '[', + ']', + '"', + "'", + 'D', + 'H', + 'M', + '\\S', + ]; cy.mount(CypressTestMaskComponent, { componentProperties: { form: new FormControl('12345678'), - mask: '00D : 00H : 00M : 00S', - shownMaskExpression: '00D : 00H : 00M : 00S', - showMaskTyped: true, - dropSpecialCharacters: false, - leadZeroDateTime: true, - placeHolderCharacter: '', - patterns: { - '0': { pattern: /\d/ }, - '9': { pattern: /\d/, optional: true }, - A: { pattern: /[a-zA-Z0-9]/ }, - L: { pattern: /[a-z]/ }, - S: { pattern: /[a-zA-Z]/ }, - U: { pattern: /[A-Z]/ }, - X: { pattern: /\d/, symbol: '*' }, - d: { pattern: /\d/ }, - h: { pattern: /\d/ }, - s: { pattern: /\d/ }, - D: { pattern: /D/ }, // custom: The D on the mask can only be the D character - H: { pattern: /H/ }, // custom: the H on the mask can only be the H character - M: { pattern: /M/ }, // custom: the M on the mask can only be the M character - '\\S': { pattern: /\S/ }, // custom: the S on the mask can only be the S character. Escape it to prevent digits from being removed from the value - }, - specialCharacters: [ - '-', - '/', - '(', - ')', - '.', - ':', - ' ', - '+', - ',', - '@', - '[', - ']', - '"', - "'", - 'D', - 'H', - 'M', - '\\S', - ], + mask: signal('00D : 00H : 00M : 00S'), + shownMaskExpression: signal('00D : 00H : 00M : 00S'), + showMaskTyped: signal(true), + dropSpecialCharacters: signal(false), + leadZeroDateTime: signal(true), + placeHolderCharacter: signal(''), + patterns: signal(patterns), + specialCharacters: signal(specialCharacters), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('{rightArrow}'.repeat(1)) @@ -205,11 +197,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with showMaskTyped and prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000', - prefix: '+7 ', - showMaskTyped: true, + mask: signal('(000) 000-0000'), + prefix: signal('+7 '), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -250,11 +241,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with showMaskTyped and prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00 000 00 00', - prefix: '+32 ', - showMaskTyped: true, + mask: signal('00 000 00 00'), + prefix: signal('+32 '), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -292,11 +282,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with showMaskTyped and leadZeroDateTime', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'M0-d0-0000', - leadZeroDateTime: true, - showMaskTyped: true, + mask: signal('M0-d0-0000'), + leadZeroDateTime: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -309,11 +298,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with showMaskTyped and leadZeroDateTime', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'M0/d0/0000', - leadZeroDateTime: true, - showMaskTyped: true, + mask: signal('M0/d0/0000'), + leadZeroDateTime: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -326,11 +314,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with showMaskTyped and leadZeroDateTime', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'M0:d0:0000', - leadZeroDateTime: true, - showMaskTyped: true, + mask: signal('M0:d0:0000'), + leadZeroDateTime: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -343,10 +330,9 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with mask Hh:m0', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0', - showMaskTyped: true, + mask: signal('Hh:m0'), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -359,11 +345,10 @@ describe('Directive: Mask (Delete)', () => { it('should backspace with mask Hh:m0 and leadZeroDateTime', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'Hh:m0', - showMaskTyped: true, - leadZeroDateTime: true, + mask: signal('Hh:m0'), + showMaskTyped: signal(true), + leadZeroDateTime: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') diff --git a/projects/ngx-mask-lib/src/test/delete.spec.ts b/projects/ngx-mask-lib/src/test/delete.spec.ts index 62b6ebaa..73c01f11 100644 --- a/projects/ngx-mask-lib/src/test/delete.spec.ts +++ b/projects/ngx-mask-lib/src/test/delete.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask (Delete)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/drop-special-charaters.spec.ts b/projects/ngx-mask-lib/src/test/drop-special-charaters.spec.ts index 0827887e..e1335d95 100644 --- a/projects/ngx-mask-lib/src/test/drop-special-charaters.spec.ts +++ b/projects/ngx-mask-lib/src/test/drop-special-charaters.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Drop special characters)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -28,19 +27,24 @@ describe('Directive: Mask (Drop special characters)', () => { equal('257898', '25-78-98', fixture); expect(component.form.value).toBe('25-78-98'); - equal('123456', '12-34-56', fixture); expect(component.form.value).toBe('12-34-56'); + }); + it('should correct value with mask 00-00/00 with dropSpecialCharacters = /', () => { component.mask = '00-00/00'; component.dropSpecialCharacters = ['/']; + equal('257898', '25-78/98', fixture); expect(component.form.value).toBe('25-7898'); + }); + it('should correct value with mask 0000.00 with dropSpecialCharacters = true', () => { component.mask = '0000.00'; component.dropSpecialCharacters = true; component.form.setValue(123456); + equal('123456', '1234.56', fixture); expect(component.form.value).toBe(123456); }); diff --git a/projects/ngx-mask-lib/src/test/dynamic.spec.ts b/projects/ngx-mask-lib/src/test/dynamic.spec.ts index eb436594..6a600039 100644 --- a/projects/ngx-mask-lib/src/test/dynamic.spec.ts +++ b/projects/ngx-mask-lib/src/test/dynamic.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask (Dynamic)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/emit-events.cy-spec.ts b/projects/ngx-mask-lib/src/test/emit-events.cy-spec.ts index 4844ea43..ed53b2c1 100644 --- a/projects/ngx-mask-lib/src/test/emit-events.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/emit-events.cy-spec.ts @@ -1,12 +1,12 @@ -import { CypressTestMaskModule } from './utils/cypress-test.module'; import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; +import { signal } from '@angular/core'; + describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00 00 00', + mask: signal('00 00 00'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('1dd').type('dd'); @@ -19,10 +19,9 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with hiddenINput', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'XX-XX-XX', - hiddenInput: true, + mask: signal('XX-XX-XX'), + hiddenInput: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('1dd').type('dd'); @@ -35,10 +34,9 @@ describe('Directive: Mask (emit-events)', () => { it('should add trailing zero when mask="separator.1" and leadZero="true"', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.1', - leadZero: true, + mask: signal('separator.1'), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('9').blur().should('have.value', '9.0'); @@ -47,10 +45,9 @@ describe('Directive: Mask (emit-events)', () => { it('should keep trailing decimal when mask="separator.1" and leadZero="true"', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.1', - leadZero: true, + mask: signal('separator.1'), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('7.7').blur().should('have.value', '7.7'); @@ -59,11 +56,10 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with suffix separator2', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - leadZero: true, - suffix: ' $', + mask: signal('separator.2'), + leadZero: signal(true), + suffix: signal(' $'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('10').blur().should('have.value', '10.00 $'); @@ -73,11 +69,10 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with suffix separator.3', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.3', - leadZero: true, - suffix: ' $', + mask: signal('separator.3'), + leadZero: signal(true), + suffix: signal(' $'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('10.0').blur().should('have.value', '10.000 $'); @@ -87,10 +82,9 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with separator2', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - leadZero: true, + mask: signal('separator.2'), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('10').blur().should('have.value', '10.00'); @@ -100,10 +94,9 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with separator.3', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.3', - leadZero: true, + mask: signal('separator.3'), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('10').blur().should('have.value', '10.000'); @@ -113,9 +106,8 @@ describe('Directive: Mask (emit-events)', () => { it('should emit event only when mask is correct with SS000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'SS000', + mask: signal('SS000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').type('SS11111DDDD11').blur().should('have.value', 'SS111'); diff --git a/projects/ngx-mask-lib/src/test/export-as.spec.ts b/projects/ngx-mask-lib/src/test/export-as.spec.ts index 09df4b99..231087b4 100644 --- a/projects/ngx-mask-lib/src/test/export-as.spec.ts +++ b/projects/ngx-mask-lib/src/test/export-as.spec.ts @@ -2,20 +2,19 @@ import type { ComponentFixture } from '@angular/core/testing'; import { TestBed } from '@angular/core/testing'; import { ReactiveFormsModule } from '@angular/forms'; -import { Component, ViewChild } from '@angular/core'; +import { Component, viewChild } from '@angular/core'; import { provideNgxMask } from '../lib/ngx-mask.providers'; import { NgxMaskDirective } from '../lib/ngx-mask.directive'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [NgxMaskDirective], template: ` `, }) export class TestMaskComponent { - @ViewChild('refMask') - public refMask!: NgxMaskDirective; - - @ViewChild('refNgxMask') - public refNgxMask!: NgxMaskDirective; + public refNgxMask = viewChild('refNgxMask'); + public refMask = viewChild('refMask'); } describe('Directive: Mask export As', () => { @@ -24,8 +23,7 @@ describe('Directive: Mask export As', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -34,9 +32,9 @@ describe('Directive: Mask export As', () => { }); it('should export directive instance with exportAs api by name equal mask', () => { - expect(component.refMask).toBeInstanceOf(NgxMaskDirective); + expect(component.refMask()).toBeInstanceOf(NgxMaskDirective); }); it('should export directive instance with exportAs api by name equal ngxMask', () => { - expect(component.refNgxMask).toBeInstanceOf(NgxMaskDirective); + expect(component.refNgxMask()).toBeInstanceOf(NgxMaskDirective); }); }); diff --git a/projects/ngx-mask-lib/src/test/inputTransformFn.spec.ts b/projects/ngx-mask-lib/src/test/inputTransformFn.spec.ts index a8e5a35e..56ae77b2 100644 --- a/projects/ngx-mask-lib/src/test/inputTransformFn.spec.ts +++ b/projects/ngx-mask-lib/src/test/inputTransformFn.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/keep-character-position.cy-spec.ts b/projects/ngx-mask-lib/src/test/keep-character-position.cy-spec.ts index bfba7384..82ca93ba 100644 --- a/projects/ngx-mask-lib/src/test/keep-character-position.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/keep-character-position.cy-spec.ts @@ -1,15 +1,14 @@ import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; -import { CypressTestMaskModule } from './utils/cypress-test.module'; +import { signal } from '@angular/core'; describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: (000) 000-0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('(000) 000-0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -22,11 +21,10 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: S0S S0S', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'S0S AAA', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('S0S AAA'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -42,11 +40,10 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 000-000.00', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000-000.00', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('000-000.00'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -60,11 +57,10 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 0000 0000 0000 0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0000 0000 0000 0000', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('0000 0000 0000 0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -81,11 +77,10 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 00/00/0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00/00/0000', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('00/00/0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -99,12 +94,11 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: (000)000-0000, prefix +38', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000)000-0000', - keepCharacterPositions: true, - showMaskTyped: true, - prefix: '+38 ', + mask: signal('(000)000-0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), + prefix: signal('+38 '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -118,12 +112,11 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 0 000, prefix $', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0 000', - keepCharacterPositions: true, - showMaskTyped: true, - prefix: '$ ', + mask: signal('0 000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), + prefix: signal('$ '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -137,12 +130,11 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 0000, prefix foo/', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0000', - keepCharacterPositions: true, - showMaskTyped: true, - prefix: 'foo/', + mask: signal('0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), + prefix: signal('foo/'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -155,11 +147,10 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: AAA-AAA-AAA', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'AAA-AAA-AAA', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('AAA-AAA-AAA'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -173,12 +164,11 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 0 000 suffix $', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0 000', - keepCharacterPositions: true, - showMaskTyped: true, - suffix: ' $', + mask: signal('0 000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), + suffix: signal(' $'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -192,12 +182,11 @@ describe('Directive: Mask (Delete)', () => { it('should replace character to _ mask: 00/00/000 suffix test', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '00/00/000', - keepCharacterPositions: true, - showMaskTyped: true, - suffix: ' test', + mask: signal('00/00/000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), + suffix: signal(' test'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -211,11 +200,10 @@ describe('Directive: Mask (Delete)', () => { it('should delete character from del', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000-000-000', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('000-000-000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -236,11 +224,10 @@ describe('Directive: Mask (Delete)', () => { it('should delete character from del', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '0000 0000 0000 0000', - keepCharacterPositions: true, - showMaskTyped: true, + mask: signal('0000 0000 0000 0000'), + keepCharacterPositions: signal(true), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') diff --git a/projects/ngx-mask-lib/src/test/percent.spec.ts b/projects/ngx-mask-lib/src/test/percent.spec.ts index 46a8a688..4075b8b7 100644 --- a/projects/ngx-mask-lib/src/test/percent.spec.ts +++ b/projects/ngx-mask-lib/src/test/percent.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Percent)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/place-holder-character.spec.ts b/projects/ngx-mask-lib/src/test/place-holder-character.spec.ts index 92f19ef3..ef95b8ab 100644 --- a/projects/ngx-mask-lib/src/test/place-holder-character.spec.ts +++ b/projects/ngx-mask-lib/src/test/place-holder-character.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Placeholder character)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/repeat-mask.spec.ts b/projects/ngx-mask-lib/src/test/repeat-mask.spec.ts index fd20bf1d..318468a1 100644 --- a/projects/ngx-mask-lib/src/test/repeat-mask.spec.ts +++ b/projects/ngx-mask-lib/src/test/repeat-mask.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Repeat)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/secure-mask.spec.ts b/projects/ngx-mask-lib/src/test/secure-mask.spec.ts index fdedcdf8..295659a5 100644 --- a/projects/ngx-mask-lib/src/test/secure-mask.spec.ts +++ b/projects/ngx-mask-lib/src/test/secure-mask.spec.ts @@ -1,11 +1,12 @@ import type { ComponentFixture } from '@angular/core/testing'; -import { fakeAsync, TestBed, tick } from '@angular/core/testing'; +import { fakeAsync, tick } from '@angular/core/testing'; +import { TestBed } from '@angular/core/testing'; import { ReactiveFormsModule } from '@angular/forms'; import { TestMaskComponent } from './utils/test-component.component'; import { equal, typeTest } from './utils/test-functions.component'; -import { provideNgxMask } from '../lib/ngx-mask.providers'; -import { NgxMaskDirective } from '../lib/ngx-mask.directive'; +import { provideNgxMask } from 'ngx-mask'; +import { NgxMaskDirective } from 'ngx-mask'; import type { DebugElement } from '@angular/core'; import { By } from '@angular/platform-browser'; @@ -15,8 +16,7 @@ describe('Directive: Mask (Secure)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); @@ -70,7 +70,9 @@ describe('Directive: Mask (Secure)', () => { component.mask = 'XXX/X0/0000'; component.hiddenInput = true; typeTest('54321', fixture); - component.form.reset('98765'); + component.form.reset(); + + component.form.setValue('98765'); fixture.whenStable().then(() => { expect(fixture.nativeElement.querySelector('input').value).toBe('***/*5'); }); @@ -88,6 +90,8 @@ describe('Directive: Mask (Secure)', () => { component.mask = 'XXX/X0/0000'; component.hiddenInput = true; typeTest('54321', fixture); + component.form.reset(); + component.form.setValue('1234567'); fixture.whenStable().then(() => { expect(fixture.nativeElement.querySelector('input').value).toBe('***/*5/67'); diff --git a/projects/ngx-mask-lib/src/test/separator-non-en-locale.spec.ts b/projects/ngx-mask-lib/src/test/separator-non-en-locale.spec.ts index 75391381..527fc9bb 100644 --- a/projects/ngx-mask-lib/src/test/separator-non-en-locale.spec.ts +++ b/projects/ngx-mask-lib/src/test/separator-non-en-locale.spec.ts @@ -16,8 +16,7 @@ describe('Separator: Mask with FR locale', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask(), { provide: LOCALE_ID, useValue: 'fr' }], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/separator.cy-spec.ts b/projects/ngx-mask-lib/src/test/separator.cy-spec.ts index d7176ed8..14eba918 100644 --- a/projects/ngx-mask-lib/src/test/separator.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/separator.cy-spec.ts @@ -1,15 +1,14 @@ -import { CypressTestMaskModule } from './utils/cypress-test.module'; import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; +import { signal } from '@angular/core'; describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 100.0', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: '.', - thousandSeparator: ',', + mask: signal('separator.2'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('1000') @@ -22,11 +21,10 @@ describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 1.00', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: '.', - thousandSeparator: ',', + mask: signal('separator.2'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('1000') @@ -39,11 +37,10 @@ describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 123456789.20', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: '.', - thousandSeparator: ',', + mask: signal('separator.2'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('123456789.20') @@ -56,11 +53,10 @@ describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 100.0', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: ',', - thousandSeparator: '.', + mask: signal('separator.2'), + decimalMarker: signal(','), + thousandSeparator: signal('.'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('1000') @@ -73,11 +69,10 @@ describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 1.00', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: ',', - thousandSeparator: '.', + mask: signal('separator.2'), + decimalMarker: signal(','), + thousandSeparator: signal('.'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('1000') @@ -90,11 +85,10 @@ describe('Test Date Hh:m0', () => { it('Mask separator.2 check cursor with value 123456789.20', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: ',', - thousandSeparator: '.', + mask: signal('separator.2'), + decimalMarker: signal(','), + thousandSeparator: signal('.'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') .type('123456789,20') @@ -107,10 +101,9 @@ describe('Test Date Hh:m0', () => { it('when decimalMarker doenst set should have right position cursor thousandSeparator = .', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: '.', + mask: signal('separator.2'), + thousandSeparator: signal('.'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -125,10 +118,9 @@ describe('Test Date Hh:m0', () => { it('when decimalMarker doenst set should have right position cursor thousandSeparator = ,', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: ',', + mask: signal('separator.2'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -143,10 +135,9 @@ describe('Test Date Hh:m0', () => { it('should place cursor after backspace with separatorLimit = 10 in correct position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - separatorLimit: '10', + mask: signal('separator.2'), + separatorLimit: signal('10'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -161,10 +152,9 @@ describe('Test Date Hh:m0', () => { it('should place cursor after backspace with separatorLimit = 100 in correct position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - separatorLimit: '100', + mask: signal('separator.2'), + separatorLimit: signal('100'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -179,11 +169,10 @@ describe('Test Date Hh:m0', () => { it('should place cursor after backspace with separatorLimit = 1000 in correct position', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: ',', - separatorLimit: '1000', + mask: signal('separator.2'), + thousandSeparator: signal(','), + separatorLimit: signal('1000'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -198,11 +187,10 @@ describe('Test Date Hh:m0', () => { it('should backspace with separator and prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: ',', - prefix: '$ ', + mask: signal('separator.2'), + thousandSeparator: signal(','), + prefix: signal('$ '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -216,11 +204,10 @@ describe('Test Date Hh:m0', () => { it('should backspace with separator and prefix', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: '.', - prefix: '$ ', + mask: signal('separator.2'), + thousandSeparator: signal('.'), + prefix: signal('$ '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -234,11 +221,10 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.6 decimalMarker . thousandSeparator ,', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.6', - decimalMarker: '.', - thousandSeparator: ',', + mask: signal('separator.6'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -257,11 +243,10 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.2 decimalMarker . thousandSeparator ,', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: '.', - thousandSeparator: ',', + mask: signal('separator.2'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -278,12 +263,11 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.2 decimalMarker . thousandSeparator , allowNegative', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - decimalMarker: '.', - thousandSeparator: ',', - allowNegativeNumbers: true, + mask: signal('separator.2'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), + allowNegativeNumbers: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -300,12 +284,11 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.3 decimalMarker . thousandSeparator , allowNegative', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.3', - decimalMarker: '.', - thousandSeparator: ',', - allowNegativeNumbers: true, + mask: signal('separator.3'), + decimalMarker: signal('.'), + thousandSeparator: signal(','), + allowNegativeNumbers: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -322,11 +305,10 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.3 leadZero allowNegative', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.3', - allowNegativeNumbers: true, - leadZero: true, + mask: signal('separator.3'), + allowNegativeNumbers: signal(true), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -342,9 +324,8 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator', + mask: signal('separator'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -358,10 +339,9 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator leadZero', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator', - leadZero: true, + mask: signal('separator'), + leadZero: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -375,10 +355,9 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator allowNegativeNumbers', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator', - allowNegativeNumbers: true, + mask: signal('separator'), + allowNegativeNumbers: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -392,11 +371,10 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator leadZero', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator', - leadZero: true, - allowNegativeNumbers: true, + mask: signal('separator'), + leadZero: signal(true), + allowNegativeNumbers: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -410,10 +388,9 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.2 when first digit .', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: '.', + mask: signal('separator.2'), + thousandSeparator: signal('.'), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -427,10 +404,9 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.2 when first digit ,', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: ',', + mask: signal('separator.2'), + thousandSeparator: signal(','), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') @@ -444,10 +420,9 @@ describe('Test Date Hh:m0', () => { it('should correct work after backspace separator.2 when first digit whitespace', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: 'separator.2', - thousandSeparator: ' ', + mask: signal('separator.2'), + thousandSeparator: signal(' '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked') diff --git a/projects/ngx-mask-lib/src/test/separator.spec.ts b/projects/ngx-mask-lib/src/test/separator.spec.ts index 93529b7a..1f2e8ea0 100644 --- a/projects/ngx-mask-lib/src/test/separator.spec.ts +++ b/projects/ngx-mask-lib/src/test/separator.spec.ts @@ -15,8 +15,7 @@ describe('Separator: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/show-mask-typed.cy-spec.ts b/projects/ngx-mask-lib/src/test/show-mask-typed.cy-spec.ts index 535118c5..a46a5a87 100644 --- a/projects/ngx-mask-lib/src/test/show-mask-typed.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/show-mask-typed.cy-spec.ts @@ -1,14 +1,13 @@ import { CypressTestMaskComponent } from './utils/cypress-test-component.component'; -import { CypressTestMaskModule } from './utils/cypress-test.module'; +import { signal } from '@angular/core'; describe('Directive: Mask (Delete)', () => { it('should place cursor in right place mask (000) 000-0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000', - showMaskTyped: true, + mask: signal('(000) 000-0000'), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').click().should('have.prop', 'selectionStart', 1); @@ -17,10 +16,9 @@ describe('Directive: Mask (Delete)', () => { it('should place cursor in right place mask ((000)) 000-0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '((000)) 000-0000', - showMaskTyped: true, + mask: signal('((000)) 000-0000'), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').click().should('have.prop', 'selectionStart', 2); @@ -29,10 +27,9 @@ describe('Directive: Mask (Delete)', () => { it('should place cursor in right place mask 000 000-0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '000 000-0000', - showMaskTyped: true, + mask: signal('000 000-0000'), + showMaskTyped: signal(true), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').click().should('have.prop', 'selectionStart', 0); @@ -41,11 +38,10 @@ describe('Directive: Mask (Delete)', () => { it('should place cursor in right place mask (000) 000-0000', () => { cy.mount(CypressTestMaskComponent, { componentProperties: { - mask: '(000) 000-0000', - showMaskTyped: true, - prefix: '+380 ', + mask: signal('(000) 000-0000'), + showMaskTyped: signal(true), + prefix: signal('+380 '), }, - imports: [CypressTestMaskModule], }); cy.get('#masked').click().should('have.prop', 'selectionStart', 6); diff --git a/projects/ngx-mask-lib/src/test/show-mask-typed.spec.ts b/projects/ngx-mask-lib/src/test/show-mask-typed.spec.ts index 28b9e2d8..9008dc9d 100644 --- a/projects/ngx-mask-lib/src/test/show-mask-typed.spec.ts +++ b/projects/ngx-mask-lib/src/test/show-mask-typed.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/test-sufix.spec.ts b/projects/ngx-mask-lib/src/test/test-sufix.spec.ts index baec7b6e..89590bde 100644 --- a/projects/ngx-mask-lib/src/test/test-sufix.spec.ts +++ b/projects/ngx-mask-lib/src/test/test-sufix.spec.ts @@ -14,8 +14,7 @@ describe('Directive: Mask (Suffix)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/time-mask.spec.ts b/projects/ngx-mask-lib/src/test/time-mask.spec.ts index 5355a101..cf15da40 100644 --- a/projects/ngx-mask-lib/src/test/time-mask.spec.ts +++ b/projects/ngx-mask-lib/src/test/time-mask.spec.ts @@ -13,8 +13,7 @@ describe('Directive: Mask (Time)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/trigger-on-mask-change.cy-spec.ts b/projects/ngx-mask-lib/src/test/trigger-on-mask-change.cy-spec.ts index 0ccece86..66a438d6 100644 --- a/projects/ngx-mask-lib/src/test/trigger-on-mask-change.cy-spec.ts +++ b/projects/ngx-mask-lib/src/test/trigger-on-mask-change.cy-spec.ts @@ -1,11 +1,8 @@ import { CypressTestTriggerOnMaskChangeComponent } from './utils/cypress-test-trigger-on-mask-change.component'; -import { CypressTestMaskModule } from './utils/cypress-test.module'; describe('Directive: Mask (Trigger on mask change) [Cypress]', () => { it('should put back initial value if mask is toggled', async () => { - cy.mount(CypressTestTriggerOnMaskChangeComponent, { - imports: [CypressTestMaskModule], - }); + cy.mount(CypressTestTriggerOnMaskChangeComponent); cy.get('#masked').type('7912345678').should('have.value', '7912345678'); cy.get('.formvalue').should('have.text', '7912345678'); diff --git a/projects/ngx-mask-lib/src/test/trigger-on-mask-change.spec.ts b/projects/ngx-mask-lib/src/test/trigger-on-mask-change.spec.ts index 2d84f3ea..c473484c 100644 --- a/projects/ngx-mask-lib/src/test/trigger-on-mask-change.spec.ts +++ b/projects/ngx-mask-lib/src/test/trigger-on-mask-change.spec.ts @@ -15,8 +15,7 @@ describe('Directive: Mask (Trigger on mask change)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestMaskComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestMaskComponent); diff --git a/projects/ngx-mask-lib/src/test/type-number.spec.ts b/projects/ngx-mask-lib/src/test/type-number.spec.ts index b82144f1..5d0ebc05 100644 --- a/projects/ngx-mask-lib/src/test/type-number.spec.ts +++ b/projects/ngx-mask-lib/src/test/type-number.spec.ts @@ -7,6 +7,8 @@ import { equal } from './utils/test-functions.component'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [ReactiveFormsModule, NgxMaskDirective], template: ` `, }) // eslint-disable-next-line @angular-eslint/component-class-suffix @@ -21,8 +23,7 @@ describe('Directive: Mask (Trigger on mask change)', () => { beforeEach(() => { TestBed.configureTestingModule({ - declarations: [TestTypeNumber], - imports: [ReactiveFormsModule, NgxMaskDirective], + imports: [ReactiveFormsModule, NgxMaskDirective, TestTypeNumber], providers: [provideNgxMask()], }); fixture = TestBed.createComponent(TestTypeNumber); diff --git a/projects/ngx-mask-lib/src/test/utils/cypress-test-component.component.ts b/projects/ngx-mask-lib/src/test/utils/cypress-test-component.component.ts index 70cb470a..36248788 100644 --- a/projects/ngx-mask-lib/src/test/utils/cypress-test-component.component.ts +++ b/projects/ngx-mask-lib/src/test/utils/cypress-test-component.component.ts @@ -1,80 +1,101 @@ -import { Component, inject, Input } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import { Component, inject, input } from '@angular/core'; +import { FormControl, ReactiveFormsModule } from '@angular/forms'; import { scan, startWith } from 'rxjs'; import type { NgxMaskConfig } from 'ngx-mask'; +import { provideNgxMask } from 'ngx-mask'; +import { NgxMaskDirective } from 'ngx-mask'; import { NGX_MASK_CONFIG } from 'ngx-mask'; +import { toSignal } from '@angular/core/rxjs-interop'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [NgxMaskDirective, ReactiveFormsModule], + providers: [provideNgxMask()], template: ` - -

{{ counter$ | async }}
+ [mask]="mask()" + [prefix]="prefix()" + [suffix]="suffix()" + [leadZero]="leadZero()" + [showMaskTyped]="showMaskTyped()" + [allowNegativeNumbers]="allowNegativeNumbers()" + [decimalMarker]="decimalMarker()" + [thousandSeparator]="thousandSeparator()" + [shownMaskExpression]="shownMaskExpression()" + [leadZeroDateTime]="leadZeroDateTime()" + [dropSpecialCharacters]="dropSpecialCharacters()" + [specialCharacters]="specialCharacters()" + [patterns]="patterns()" + [keepCharacterPositions]="keepCharacterPositions()" + [separatorLimit]="separatorLimit()" + [hiddenInput]="hiddenInput()" /> + +
{{ counter$() }}
{{ form.value }}
- {{ leadZeroDateTime }} + {{ leadZeroDateTime() }}
`, }) export class CypressTestMaskComponent { protected _config = inject(NGX_MASK_CONFIG); - @Input() public mask = ''; + public mask = input(''); - @Input() public hiddenInput = null; + public hiddenInput = input(this._config.hiddenInput); - @Input() public allowNegativeNumbers = false; - - @Input() public prefix = ''; + public allowNegativeNumbers = input( + this._config.allowNegativeNumbers + ); - @Input() public suffix = ''; + public prefix = input(this._config.prefix); - @Input() public leadZero = false; + public suffix = input(this._config.suffix); - @Input() public showMaskTyped = false; + public leadZero = input(this._config.leadZero); - @Input() public decimalMarker = '.'; + public showMaskTyped = input(this._config.showMaskTyped); - @Input() public thousandSeparator = ','; + public decimalMarker = input('.'); - @Input() public keepCharacterPositions = false; + public thousandSeparator = input(','); - @Input() public shownMaskExpression = ''; + public keepCharacterPositions = input( + this._config.keepCharacterPositions + ); - @Input() public placeHolderCharacter = ''; + public shownMaskExpression = input( + this._config.shownMaskExpression + ); - @Input() public dropSpecialCharacters = true; + public placeHolderCharacter = input( + this._config.placeHolderCharacter + ); - @Input() public leadZeroDateTime = false; + public dropSpecialCharacters = input( + this._config.dropSpecialCharacters + ); + public leadZeroDateTime = input( + this._config.leadZeroDateTime + ); - @Input() public separatorLimit = ''; + public separatorLimit = input(this._config.separatorLimit); - @Input() public patterns = this._config.patterns; + public patterns = input(this._config.patterns); - @Input() public specialCharacters = this._config.specialCharacters; + public specialCharacters = input( + this._config.specialCharacters + ); public form: FormControl = new FormControl(''); - public readonly counter$ = this.form.valueChanges.pipe( - startWith(0), + public readonly counter$ = toSignal( + this.form.valueChanges.pipe( + startWith(0), - scan((acc) => acc + 1, 0) + scan((acc) => acc + 1, 0) + ) ); } diff --git a/projects/ngx-mask-lib/src/test/utils/cypress-test-shadow-dom.component.ts b/projects/ngx-mask-lib/src/test/utils/cypress-test-shadow-dom.component.ts deleted file mode 100644 index c9f942aa..00000000 --- a/projects/ngx-mask-lib/src/test/utils/cypress-test-shadow-dom.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, Input, ViewEncapsulation } from '@angular/core'; -import { FormControl } from '@angular/forms'; - -@Component({ - encapsulation: ViewEncapsulation.ShadowDom, - selector: 'jsdaddy-open-source-test', - template: ` - - `, -}) -export class CypressTestMaskShadowDomComponent { - @Input() public mask = ''; - - @Input() public hiddenInput = false; - - @Input() public prefix = ''; - - public form: FormControl = new FormControl(''); -} diff --git a/projects/ngx-mask-lib/src/test/utils/cypress-test-trigger-on-mask-change.component.ts b/projects/ngx-mask-lib/src/test/utils/cypress-test-trigger-on-mask-change.component.ts index 4215ac72..43dbb481 100644 --- a/projects/ngx-mask-lib/src/test/utils/cypress-test-trigger-on-mask-change.component.ts +++ b/projects/ngx-mask-lib/src/test/utils/cypress-test-trigger-on-mask-change.component.ts @@ -1,10 +1,13 @@ import type { OnDestroy, OnInit } from '@angular/core'; import { Component } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import { FormControl, ReactiveFormsModule } from '@angular/forms'; import { Subject, takeUntil } from 'rxjs'; +import { NgxMaskDirective } from 'ngx-mask'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [ReactiveFormsModule, NgxMaskDirective], styles: [ 'code { border: 1px solid #ddd; background-color: #eee; padding: 0 5px; border-radius: 3px; }', ], diff --git a/projects/ngx-mask-lib/src/test/utils/cypress-test.module.ts b/projects/ngx-mask-lib/src/test/utils/cypress-test.module.ts deleted file mode 100644 index 68deb46b..00000000 --- a/projects/ngx-mask-lib/src/test/utils/cypress-test.module.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { CypressTestTriggerOnMaskChangeComponent } from './cypress-test-trigger-on-mask-change.component'; -import { CypressTestMaskComponent } from './cypress-test-component.component'; -import { CypressTestMaskShadowDomComponent } from './cypress-test-shadow-dom.component'; -import { provideNgxMask } from '../../lib/ngx-mask.providers'; -import { NgxMaskDirective } from '../../lib/ngx-mask.directive'; - -@NgModule({ - imports: [CommonModule, ReactiveFormsModule, FormsModule, NgxMaskDirective], - declarations: [ - CypressTestMaskShadowDomComponent, - CypressTestMaskComponent, - CypressTestTriggerOnMaskChangeComponent, - ], - exports: [ - CypressTestMaskShadowDomComponent, - CypressTestMaskComponent, - CypressTestTriggerOnMaskChangeComponent, - ], - providers: [provideNgxMask()], -}) -export class CypressTestMaskModule {} diff --git a/projects/ngx-mask-lib/src/test/utils/test-component.component.ts b/projects/ngx-mask-lib/src/test/utils/test-component.component.ts index 194ec9e8..f231a1cb 100644 --- a/projects/ngx-mask-lib/src/test/utils/test-component.component.ts +++ b/projects/ngx-mask-lib/src/test/utils/test-component.component.ts @@ -1,9 +1,13 @@ -import { ChangeDetectorRef, Component, inject } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import { Component, inject } from '@angular/core'; +import { FormControl, ReactiveFormsModule } from '@angular/forms'; import type { NgxMaskConfig } from 'ngx-mask'; +import { NGX_MASK_CONFIG } from 'ngx-mask'; +import { NgxMaskDirective } from 'ngx-mask'; @Component({ selector: 'jsdaddy-open-source-test', + standalone: true, + imports: [ReactiveFormsModule, NgxMaskDirective], template: ` `, }) export class TestMaskComponent { public mask!: string | null | undefined; + protected _config = inject(NGX_MASK_CONFIG); public form: FormControl = new FormControl(); - public dropSpecialCharacters: NgxMaskConfig['dropSpecialCharacters'] | undefined; + public dropSpecialCharacters: NgxMaskConfig['dropSpecialCharacters'] = + this._config.dropSpecialCharacters; - public clearIfNotMatch: NgxMaskConfig['clearIfNotMatch'] | undefined; + public clearIfNotMatch: NgxMaskConfig['clearIfNotMatch'] = this._config.clearIfNotMatch; - public patterns: NgxMaskConfig['patterns'] | undefined; + public patterns: NgxMaskConfig['patterns'] = this._config.patterns; - public prefix: NgxMaskConfig['prefix'] = ''; + public prefix: NgxMaskConfig['prefix'] = this._config.prefix; - public thousandSeparator: NgxMaskConfig['thousandSeparator'] | undefined; + public thousandSeparator: NgxMaskConfig['thousandSeparator'] = this._config.thousandSeparator; - public decimalMarker: NgxMaskConfig['decimalMarker'] | undefined; + public decimalMarker: NgxMaskConfig['decimalMarker'] = this._config.decimalMarker; - public suffix: NgxMaskConfig['suffix'] = ''; + public suffix: NgxMaskConfig['suffix'] = this._config.suffix; - public specialCharacters: NgxMaskConfig['specialCharacters'] | undefined; + public specialCharacters: NgxMaskConfig['specialCharacters'] = this._config.specialCharacters; - public keepCharacterPositions: NgxMaskConfig['keepCharacterPositions'] | undefined; + public keepCharacterPositions: NgxMaskConfig['keepCharacterPositions'] = + this._config.keepCharacterPositions; - public showMaskTyped: NgxMaskConfig['showMaskTyped'] | undefined; + public showMaskTyped: NgxMaskConfig['showMaskTyped'] = this._config.showMaskTyped; - public placeHolderCharacter: NgxMaskConfig['placeHolderCharacter'] | undefined; + public placeHolderCharacter: NgxMaskConfig['placeHolderCharacter'] = + this._config.placeHolderCharacter; - public hiddenInput: NgxMaskConfig['hiddenInput'] | undefined; + public hiddenInput: NgxMaskConfig['hiddenInput'] = this._config.hiddenInput; - public separatorLimit: NgxMaskConfig['separatorLimit'] = ''; + public separatorLimit: NgxMaskConfig['separatorLimit'] = this._config.separatorLimit; - public allowNegativeNumbers: NgxMaskConfig['allowNegativeNumbers'] | undefined; + public allowNegativeNumbers: NgxMaskConfig['allowNegativeNumbers'] = + this._config.allowNegativeNumbers; - public leadZeroDateTime: NgxMaskConfig['leadZeroDateTime'] | undefined; + public leadZeroDateTime: NgxMaskConfig['leadZeroDateTime'] = this._config.leadZeroDateTime; - public leadZero: NgxMaskConfig['leadZero'] | undefined; + public leadZero: NgxMaskConfig['leadZero'] = this._config.leadZero; - public triggerOnMaskChange: NgxMaskConfig['triggerOnMaskChange'] | undefined; + public triggerOnMaskChange: NgxMaskConfig['triggerOnMaskChange'] = + this._config.triggerOnMaskChange; - public validation: NgxMaskConfig['validation'] | undefined; + public validation: NgxMaskConfig['validation'] = this._config.validation; - public apm: NgxMaskConfig['apm'] | undefined; + public apm: NgxMaskConfig['apm'] = this._config.apm; - public inputTransformFn: NgxMaskConfig['inputTransformFn'] | undefined; + public inputTransformFn: NgxMaskConfig['inputTransformFn'] = this._config.inputTransformFn; - public outputTransformFn: NgxMaskConfig['outputTransformFn'] | undefined; - - public cdr = inject(ChangeDetectorRef); + public outputTransformFn: NgxMaskConfig['outputTransformFn'] = this._config.outputTransformFn; } diff --git a/projects/ngx-mask-lib/src/test/validation.spec.ts b/projects/ngx-mask-lib/src/test/validation.spec.ts index 6ce0fdd9..6e566403 100644 --- a/projects/ngx-mask-lib/src/test/validation.spec.ts +++ b/projects/ngx-mask-lib/src/test/validation.spec.ts @@ -1,484 +1,275 @@ import type { ComponentFixture } from '@angular/core/testing'; import { TestBed } from '@angular/core/testing'; -import { Component } from '@angular/core'; -import { ReactiveFormsModule, FormControl, Validators } from '@angular/forms'; +import { ReactiveFormsModule, Validators } from '@angular/forms'; import { equal } from './utils/test-functions.component'; import { provideNgxMask } from '../lib/ngx-mask.providers'; import { NgxMaskDirective } from '../lib/ngx-mask.directive'; - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` `, -}) -export class TestMaskNoValidationAttributeComponent { - public form: FormControl = new FormControl(''); -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` `, -}) -export class TestMaskValidationAttributeComponent { - public form: FormControl = new FormControl(''); - - public validate = true; -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` - - `, -}) -export class TestMaskValidationEmailComponent { - public form: FormControl = new FormControl(''); - - public mask = ''; - - public validate = true; - - public dropSpecialCharacters = false; -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` `, -}) -// eslint-disable-next-line @angular-eslint/component-class-suffix -export class TestMaskValidationTestSymbolStar { - public form: FormControl = new FormControl('', [Validators.required, Validators.min(1)]); - public mask = ''; - public validate = true; -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` `, -}) -// eslint-disable-next-line @angular-eslint/component-class-suffix -export class TestValidatorNumber { - public form: FormControl = new FormControl(44, Validators.required); - public mask = ''; - public validate = true; -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` - - `, -}) -// eslint-disable-next-line @angular-eslint/component-class-suffix -export class TestValidatorDropSpecialCharacters { - public form: FormControl = new FormControl('+373', Validators.required); - public mask = '+000'; - public specialCharacters = ['+', ' ']; - public dropSpecialCharacters = [' ']; -} - -@Component({ - selector: 'jsdaddy-open-source-test', - template: ` - - `, -}) -// eslint-disable-next-line @angular-eslint/component-class-suffix -export class TestValidatorEmailMask { - public form: FormControl = new FormControl('', Validators.required); - public mask = 'A*@A*.A*'; - public dropSpecialCharacters = false; -} +import { TestMaskComponent } from './utils/test-component.component'; describe('Directive: Mask (Validation)', () => { - describe('Global validation true, validation attribute on input not specified', () => { - let fixture: ComponentFixture; - let component: TestMaskNoValidationAttributeComponent; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskNoValidationAttributeComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask({ validation: true })], - }); - fixture = TestBed.createComponent(TestMaskNoValidationAttributeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + let fixture: ComponentFixture; + let component: TestMaskComponent; - it('should be marked as not valid if not valid', () => { - equal('12', '12', fixture); - expect(component.form.valid).toBe(false); - expect(component.form.hasError('mask')).toBe(true); - }); - - it('should be marked as valid if valid', () => { - equal('1234', '1234', fixture); - expect(component.form.valid).toBe(true); + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ReactiveFormsModule, NgxMaskDirective, TestMaskComponent], + providers: [provideNgxMask({ validation: true })], }); + fixture = TestBed.createComponent(TestMaskComponent); + component = fixture.componentInstance; + fixture.detectChanges(); }); - describe('Global validation true, validation attribute on input specified', () => { - let fixture: ComponentFixture; - let component: TestMaskValidationAttributeComponent; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskValidationAttributeComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask()], - }); - fixture = TestBed.createComponent(TestMaskValidationAttributeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + it('should be marked as not valid if not valid and validation attribute true', () => { + component.mask = '0000'; + component.form.addValidators(Validators.required); - it('should be marked as not valid if not valid and validation attribute true', () => { - equal('12', '12', fixture); - expect(component.form.valid).toBe(false); - expect(component.form.hasError('mask')).toBe(true); - }); + equal('12', '12', fixture); + expect(component.form.valid).toBe(false); + expect(component.form.hasError('mask')).toBe(true); + }); - it('should be marked as valid if valid and validation attribute true', () => { - equal('1234', '1234', fixture); - expect(component.form.valid).toBe(true); - }); + it('should be marked as valid if not valid and validation attribute false', () => { + component.validation = false; + component.form.addValidators(Validators.required); - it('should be marked as valid if not valid and validation attribute false', () => { - component.validate = false; - equal('12', '12', fixture); - expect(component.form.valid).toBe(true); - }); + equal('12', '12', fixture); + expect(component.form.valid).toBe(true); }); - describe('Global validation false, validation attribute on input not specified', () => { - let fixture: ComponentFixture; - let component: TestMaskNoValidationAttributeComponent; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskNoValidationAttributeComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask({ validation: false })], - }); - fixture = TestBed.createComponent(TestMaskNoValidationAttributeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + it('should be marked as valid if valid and validation attribute true', () => { + component.mask = '0000'; + component.form.addValidators(Validators.required); - it('should be marked as valid if not valid', () => { - equal('12', '12', fixture); - expect(component.form.valid).toBe(true); - }); + equal('1234', '1234', fixture); + expect(component.form.valid).toBe(true); }); - describe('Global validation false, validation attribute on input specified', () => { - let fixture: ComponentFixture; - let component: TestMaskValidationAttributeComponent; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskValidationAttributeComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask()], - }); - fixture = TestBed.createComponent(TestMaskValidationAttributeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + it('should be marked as valid if not valid and validation attribute false', () => { + component.validation = false; + component.mask = '0000'; + component.form.addValidators(Validators.required); - it('should be marked as not valid if not valid and validation attribute true', () => { - equal('12', '12', fixture); - expect(component.form.valid).toBe(false); - expect(component.form.hasError('mask')).toBe(true); - }); + equal('12', '12', fixture); + expect(component.form.valid).toBe(true); + }); - it('should be marked as valid if not valid and validation attribute false', () => { - component.validate = false; - equal('12', '12', fixture); - expect(component.form.valid).toBe(true); - }); + it('should be not valid email mask A*@A*.SSS', () => { + component.mask = 'A*@A*.SSS'; + component.dropSpecialCharacters = false; + component.form.addValidators(Validators.required); + + equal('a', 'a', fixture); + expect(component.form.valid).toBe(false); + equal('as', 'as', fixture); + expect(component.form.valid).toBe(false); + equal('asd', 'asd', fixture); + expect(component.form.valid).toBe(false); + equal('andr', 'andr', fixture); + expect(component.form.valid).toBe(false); + equal('testing', 'testing', fixture); + expect(component.form.valid).toBe(false); + equal('testing@', 'testing@', fixture); + expect(component.form.valid).toBe(false); + equal('testing@a', 'testing@a', fixture); + expect(component.form.valid).toBe(false); + equal('testing@aa', 'testing@aa', fixture); + expect(component.form.valid).toBe(false); + equal('testing@gmail', 'testing@gmail', fixture); + expect(component.form.valid).toBe(false); + equal('testing@gmail.', 'testing@gmail.', fixture); + expect(component.form.valid).toBe(false); + equal('testing@gmail.c', 'testing@gmail.c', fixture); + expect(component.form.valid).toBe(false); + equal('testing@email.ua', 'testing@email.ua', fixture); + expect(component.form.valid).toBe(false); }); - describe('Global validation for email', () => { - let fixture: ComponentFixture; - let component: TestMaskValidationEmailComponent; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskValidationEmailComponent], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask()], - }); - fixture = TestBed.createComponent(TestMaskValidationEmailComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + it('should valid email mask A*@A*.SSS', () => { + component.mask = 'A*@A*.SSS'; + component.dropSpecialCharacters = false; + component.form.addValidators(Validators.required); - it('should be not valid email mask A*@A*.SSS', () => { - component.mask = 'A*@A*.SSS'; - equal('a', 'a', fixture); - expect(component.form.valid).toBe(false); - equal('as', 'as', fixture); - expect(component.form.valid).toBe(false); - equal('asd', 'asd', fixture); - expect(component.form.valid).toBe(false); - equal('andr', 'andr', fixture); - expect(component.form.valid).toBe(false); - equal('testing', 'testing', fixture); - expect(component.form.valid).toBe(false); - equal('testing@', 'testing@', fixture); - expect(component.form.valid).toBe(false); - equal('testing@a', 'testing@a', fixture); - expect(component.form.valid).toBe(false); - equal('testing@aa', 'testing@aa', fixture); - expect(component.form.valid).toBe(false); - equal('testing@gmail', 'testing@gmail', fixture); - expect(component.form.valid).toBe(false); - equal('testing@gmail.', 'testing@gmail.', fixture); - expect(component.form.valid).toBe(false); - equal('testing@gmail.c', 'testing@gmail.c', fixture); - expect(component.form.valid).toBe(false); - equal('testing@email.ua', 'testing@email.ua', fixture); - expect(component.form.valid).toBe(false); - }); + equal('testing@gmail.com', 'testing@gmail.com', fixture); + expect(component.form.valid).toBe(true); + }); - it('should valid email mask A*@A*.SSS', () => { - component.mask = 'A*@A*.SSS'; - equal('testing@gmail.com', 'testing@gmail.com', fixture); - expect(component.form.valid).toBe(true); - }); + it('should be not valid mask A*@A*.SS', () => { + component.mask = 'A*@A*.SS'; + component.dropSpecialCharacters = false; + component.form.addValidators(Validators.required); + + equal('d', 'd', fixture); + expect(component.form.valid).toBe(false); + equal('dd', 'dd', fixture); + expect(component.form.valid).toBe(false); + equal('ddd', 'ddd', fixture); + expect(component.form.valid).toBe(false); + equal('dddd', 'dddd', fixture); + expect(component.form.valid).toBe(false); + equal('andre', 'andre', fixture); + expect(component.form.valid).toBe(false); + equal('andrey', 'andrey', fixture); + expect(component.form.valid).toBe(false); + equal('andrey@', 'andrey@', fixture); + expect(component.form.valid).toBe(false); + equal('andrey@a', 'andrey@a', fixture); + expect(component.form.valid).toBe(false); + equal('andrey@te', 'andrey@te', fixture); + expect(component.form.valid).toBe(false); + equal('andrey@test', 'andrey@test', fixture); + expect(component.form.valid).toBe(false); + equal('andrey@test.c', 'andrey@test.c', fixture); + expect(component.form.valid).toBe(false); + }); - it('should be not valid mask A*@A*.SS', () => { - component.mask = 'A*@A*.SS'; - equal('d', 'd', fixture); - expect(component.form.valid).toBe(false); - equal('dd', 'dd', fixture); - expect(component.form.valid).toBe(false); - equal('ddd', 'ddd', fixture); - expect(component.form.valid).toBe(false); - equal('dddd', 'dddd', fixture); - expect(component.form.valid).toBe(false); - equal('andre', 'andre', fixture); - expect(component.form.valid).toBe(false); - equal('andrey', 'andrey', fixture); - expect(component.form.valid).toBe(false); - equal('andrey@', 'andrey@', fixture); - expect(component.form.valid).toBe(false); - equal('andrey@a', 'andrey@a', fixture); - expect(component.form.valid).toBe(false); - equal('andrey@te', 'andrey@te', fixture); - expect(component.form.valid).toBe(false); - equal('andrey@test', 'andrey@test', fixture); - expect(component.form.valid).toBe(false); - equal('andrey@test.c', 'andrey@test.c', fixture); - expect(component.form.valid).toBe(false); - }); + it('should valid email mask', () => { + component.mask = 'A*@A*.SS'; + component.dropSpecialCharacters = false; + component.form.addValidators(Validators.required); - it('should valid email mask', () => { - component.mask = 'A*@A*.SS'; - equal('testing@some.ua', 'testing@some.ua', fixture); - expect(component.form.valid).toBe(true); - }); + equal('testing@some.ua', 'testing@some.ua', fixture); + expect(component.form.valid).toBe(true); }); - describe('Global validation symbol star', () => { - let fixture: ComponentFixture; - let component: TestMaskValidationTestSymbolStar; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestMaskValidationTestSymbolStar], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask()], - }); - fixture = TestBed.createComponent(TestMaskValidationTestSymbolStar); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - it('should valid from one digit mask 0*', () => { - component.mask = '0*'; - component.validate = true; - equal('', '', fixture); - expect(component.form.valid).toBe(false); - equal('0', '0', fixture); - expect(component.form.valid).toBe(false); - equal('00', '00', fixture); - expect(component.form.valid).toBe(false); - equal('1', '1', fixture); - expect(component.form.valid).toBe(true); - equal('01', '01', fixture); - expect(component.form.valid).toBe(true); - }); + it('should valid from one digit mask 0*', () => { + component.mask = '0*'; + component.form.setValidators([Validators.required, Validators.min(1)]); + component.form.updateValueAndValidity(); + + equal('', '', fixture); + expect(component.form.valid).toBe(false); + equal('0', '0', fixture); + expect(component.form.valid).toBe(false); + equal('00', '00', fixture); + expect(component.form.valid).toBe(false); + equal('1', '1', fixture); + expect(component.form.valid).toBe(true); + equal('01', '01', fixture); + expect(component.form.valid).toBe(true); + }); - it('should valid from one digit mask S*', () => { - component.mask = 'S*'; - component.validate = true; - equal('', '', fixture); - expect(component.form.valid).toBe(false); - equal('d', 'd', fixture); - expect(component.form.valid).toBe(true); - }); + it('should valid from one digit mask S*', () => { + component.mask = 'S*'; + component.form.setValidators([Validators.required, Validators.min(1)]); + component.form.updateValueAndValidity(); - it('should valid from one digit mask A*', () => { - component.mask = 'A*'; - component.validate = true; - equal('', '', fixture); - expect(component.form.valid).toBe(false); - equal('d', 'd', fixture); - expect(component.form.valid).toBe(true); - equal('1', '1', fixture); - expect(component.form.valid).toBe(true); - }); + equal('', '', fixture); + expect(component.form.valid).toBe(false); + equal('d', 'd', fixture); + expect(component.form.valid).toBe(true); }); - describe('Global validation true, validation attribute on input not specified', () => { - let fixture: ComponentFixture; - let component: TestValidatorNumber; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestValidatorNumber], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask({ validation: true })], - }); - fixture = TestBed.createComponent(TestValidatorNumber); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('mask with number value should work as expected mask 0*', () => { - component.mask = '0*'; - equal('44', '44', fixture); - expect(component.form.valid).toBe(true); - expect(component.form.value).toBe(44); + it('should valid from one digit mask A*', () => { + component.mask = 'A*'; + component.form.setValidators([Validators.required, Validators.min(1)]); + component.form.updateValueAndValidity(); + + equal('', '', fixture); + expect(component.form.valid).toBe(false); + equal('d', 'd', fixture); + expect(component.form.valid).toBe(true); + equal('1', '1', fixture); + expect(component.form.valid).toBe(true); + }); - equal('', '', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(''); + it('mask with number value should work as expected mask 0*', () => { + // public form: FormControl = new FormControl(44, Validators.required); + // public mask = ''; + // public validate = true; + component.mask = '0*'; + component.form.setValidators([Validators.required, Validators.min(1)]); + component.form.updateValueAndValidity(); + + equal('44', '44', fixture); + expect(component.form.valid).toBe(true); + expect(component.form.value).toBe('44'); + + equal('', '', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe(''); + + equal('1', '1', fixture); + expect(component.form.valid).toBe(true); + expect(component.form.value).toBe('1'); + }); - equal('1', '1', fixture); - expect(component.form.valid).toBe(true); - expect(component.form.value).toBe(1); - }); + it('mask with number value should work as expected mask 000.00', () => { + component.mask = '000.00'; + component.form.addValidators(Validators.required); + component.form.setValue(''); - it('mask with number value should work as expected mask 000.00', () => { - component.mask = '000.00'; - equal('', '', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(''); + equal('', '', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe(''); - equal('44', '44', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(44); + equal('44', '44', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe('44'); - equal('1', '1', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(1); + equal('1', '1', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe('1'); - equal('444', '444', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(444); + equal('444', '444', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe('444'); - equal('444.3', '444.3', fixture); - expect(component.form.invalid).toBe(true); - expect(component.form.value).toBe(4443); + equal('444.3', '444.3', fixture); + expect(component.form.invalid).toBe(true); + expect(component.form.value).toBe('4443'); - equal('444.31', '444.31', fixture); - expect(component.form.valid).toBe(true); - expect(component.form.value).toBe(44431); - }); + equal('444.31', '444.31', fixture); + expect(component.form.valid).toBe(true); + expect(component.form.value).toBe('44431'); }); - describe('Global validation true, dropSpecialCharacters attribute on input specified as array', () => { - let fixture: ComponentFixture; - let component: TestValidatorDropSpecialCharacters; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestValidatorDropSpecialCharacters], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask({ validation: true })], - }); - fixture = TestBed.createComponent(TestValidatorDropSpecialCharacters); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('dropSpecialCharacters is different from specialCharacters', () => { - component.mask = '+000'; - component.specialCharacters = ['+', ' ']; - component.dropSpecialCharacters = [' ']; + it('dropSpecialCharacters is different from specialCharacters', () => { + component.mask = '+000'; + component.specialCharacters = ['+', ' ']; + component.dropSpecialCharacters = [' ']; + component.form.addValidators(Validators.required); - equal('+37', '+37', fixture); - expect(component.form.valid).toBe(false); + equal('+37', '+37', fixture); + expect(component.form.valid).toBe(false); - equal('+373', '+373', fixture); - expect(component.form.valid).toBe(true); + equal('+373', '+373', fixture); + expect(component.form.valid).toBe(true); - component.mask = '+000 000 00 000'; + component.mask = '+000 000 00 000'; - equal('+3736000000', '+373 600 00 00', fixture); - expect(component.form.valid).toBe(false); + equal('+3736000000', '+373 600 00 00', fixture); + expect(component.form.valid).toBe(false); - equal('+37360000000', '+373 600 00 000', fixture); - expect(component.form.valid).toBe(true); - }); + equal('+37360000000', '+373 600 00 000', fixture); + expect(component.form.valid).toBe(true); }); - describe('Global validation true, email mask', () => { - let fixture: ComponentFixture; - let component: TestValidatorEmailMask; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [TestValidatorEmailMask], - imports: [ReactiveFormsModule, NgxMaskDirective], - providers: [provideNgxMask({ validation: true })], - }); - fixture = TestBed.createComponent(TestValidatorEmailMask); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('email Mask should validated correct', () => { - component.mask = 'A*@A*.A*'; - component.dropSpecialCharacters = false; + it('email Mask should validated correct', () => { + component.mask = 'A*@A*.A*'; + component.dropSpecialCharacters = false; + component.form.addValidators(Validators.required); - equal('validate', 'validate', fixture); - expect(component.form.valid).toBe(false); + equal('validate', 'validate', fixture); + expect(component.form.valid).toBe(false); - equal('validate@', 'validate@', fixture); - expect(component.form.valid).toBe(false); + equal('validate@', 'validate@', fixture); + expect(component.form.valid).toBe(false); - equal('validate@some', 'validate@some', fixture); - expect(component.form.valid).toBe(false); + equal('validate@some', 'validate@some', fixture); + expect(component.form.valid).toBe(false); - equal('validate@some.', 'validate@some.', fixture); - expect(component.form.valid).toBe(false); + equal('validate@some.', 'validate@some.', fixture); + expect(component.form.valid).toBe(false); - equal('validate@some.e', 'validate@some.e', fixture); - expect(component.form.valid).toBe(true); + equal('validate@some.e', 'validate@some.e', fixture); + expect(component.form.valid).toBe(true); - equal('validate@some.eu', 'validate@some.eu', fixture); - expect(component.form.valid).toBe(true); + equal('validate@some.eu', 'validate@some.eu', fixture); + expect(component.form.valid).toBe(true); - equal('validate@some.com', 'validate@some.com', fixture); - expect(component.form.valid).toBe(true); - }); + equal('validate@some.com', 'validate@some.com', fixture); + expect(component.form.valid).toBe(true); }); }); diff --git a/src/app/options/options.component.ts b/src/app/options/options.component.ts index 16d8b5b8..f2d53679 100644 --- a/src/app/options/options.component.ts +++ b/src/app/options/options.component.ts @@ -5,7 +5,6 @@ import { initialConfig, NgxMaskDirective, NgxMaskPipe } from 'ngx-mask'; import { HighlightModule } from 'ngx-highlightjs'; import { AssetPipe } from '@libraries/asset/asset.pipe'; import { IsEmptyPipe } from '@open-source/is-empty/is-empty.pipe'; -import { ColorPipe } from '@open-source/color/color.pipe'; import { CardContentComponent } from '../shared/card-content/card-content.component'; import { ScrollService } from '@open-source/scroll/scroll.service'; import { AccordionService } from '@open-source/accordion/accordion.service'; @@ -29,7 +28,6 @@ import type { ComDoc, MaskOptions, TExample } from '@open-source/accordion/conte NgxMaskPipe, AssetPipe, IsEmptyPipe, - ColorPipe, CardContentComponent, NgOptimizedImage, ], diff --git a/src/libraries b/src/libraries index 339053d4..44bebdfb 160000 --- a/src/libraries +++ b/src/libraries @@ -1 +1 @@ -Subproject commit 339053d4cd781ffede25ca6049defbedd69c67b5 +Subproject commit 44bebdfba90c6534af67bf84d5f90f8f1b0b343b diff --git a/src/styles.scss b/src/styles.scss index b5c61c95..a065c93f 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,3 +1,5 @@ +@use './libraries/styles/scroll-bar'; + @tailwind base; @tailwind components; @tailwind utilities; diff --git a/tsconfig.json b/tsconfig.json index 49d5458f..e154a50d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -39,6 +39,7 @@ "isolatedModules": true }, "angularCompilerOptions": { + "strictStandalone": true, "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "preserveWhitespaces": true, @@ -48,7 +49,8 @@ "extendedDiagnostics": { "checks": { "invalidBananaInBox": "error", - "nullishCoalescingNotNullable": "warning" + "nullishCoalescingNotNullable": "warning", + "unusedStandaloneImports": "suppress" }, "defaultCategory": "suppress" }

XLQMX4EW1*6Q5j-_#qP3S5bT`;;;^bbuyD;Zq@ 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 BoTUH& delta 252791 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