From 43814f4578db51b0744fd453984c4e597866d199 Mon Sep 17 00:00:00 2001 From: Nareshkumar Balasubramani Date: Wed, 11 Dec 2024 12:59:55 +0530 Subject: [PATCH 1/5] Test Plan, App for MDA Display Controls, and Fix for Asserting blank value --- .../MDA_DisplayControls_1_0_0_1_managed.zip | Bin 0 -> 108087 bytes samples/mdadisplaycontrols/README.md | 34 ++ .../displaycontroltestplan.fx.yaml | 406 ++++++++++++++++++ .../PowerFxModel/ControlRecordValue.cs | 7 +- 4 files changed, 441 insertions(+), 6 deletions(-) create mode 100644 samples/mdadisplaycontrols/MDA_DisplayControls_1_0_0_1_managed.zip create mode 100644 samples/mdadisplaycontrols/README.md create mode 100644 samples/mdadisplaycontrols/displaycontroltestplan.fx.yaml diff --git a/samples/mdadisplaycontrols/MDA_DisplayControls_1_0_0_1_managed.zip b/samples/mdadisplaycontrols/MDA_DisplayControls_1_0_0_1_managed.zip new file mode 100644 index 0000000000000000000000000000000000000000..3cf7e01882570c44ec5efc59f72ef8bc5f11bc28 GIT binary patch literal 108087 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

iT9<^qv^foPZG9Z#+I%<6x&Cs{Fu!wkQySvp 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

g#1`N0}B6A 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

LEa$TM&XZD9jqQfz4|K~w)d&slOT zp;M<)i`MsoRzhr~rQ1{MOMTg2Bf4d_R2j3^x4{kct%bZd+g1!bZb@nBXG^m!)oUH( z1vKu+k?@w>-m-UTZoZf?9Q^L6d5t$?3+aNyqmcMQjE)cF~ z1hwooWcER$MTMRuxk{yR4J_l61s4 zl6TXSCciXwVU@e$_U-$hy`V4{6!H|y<6pg?sGQ%upvhI_^811l(Pim=Mx@^(Hum*~ zM5Eg9%=dkjD)3?D&z@h4&U-6;X(#phNdNNIhHn%I`Owy#5y)B z^A&52_+L?>Yg7D};;bLoyFV_)3>he14GPGHOh}*8=6pdv3dWd9nQHI@GR*nIn| zE!1&<811W%zzMvFN+e3%kv$o-V7Ix*c#y)v|PU^ZO!jDc*^{NxS6=op1Wr? z1y-zcy>IPg&As~IW>)|&{!j!+6d;oF4RCy(k~~2=c|`DT6N|GpfI2_8)N6>^g281B z1(4J(Ykll7eJ528ZtNtzsnHN|+-4aE6MrODqKZu?rzw}?OdplKpRCQwz zEPD>PZ|(*ePj2Y}wO`uaKB(cNKkaUll;Kq%-N{x_z&uNTua`$SfJCvC`q-PGPgzLB zN+SL|tB;FWW4|7dqYKu3^7PJAG4P*VxShVzKDAx&XHQ<6&w&ssb|p}jN3I^3RhN%z zfdN&Q_cxN3(4Yfj`!HW30ux1z1&fmpA?@6P&V%UidM-|SKqW2P+fpay3BO9YwcT%{ z!f~<~2oaL!7Nx)gizEGX*ykWKLKvfltnME@rLmRbF1tzf5XrmQ5XuDRwH94@U7}!u z^k7BUltT3pCrO0x;>@~=8Rq@)yD;u8Z~I{M!;k-X4Kb(UqWi#Q`!-P2Bih*W3z8sA z@O4R>?)NN$od?ChLlQ88%)WdA(b}^xNS{D>EkBjo4&Oj{z2Rj2e&E{qehs0)S5J1= z+cnvB_VIe%*M(3?o)t%cw5)GZ(wRH+;pO;r|BCx^!23}Xv(@86@cb;xsAKEX9Bxz=`c<|K3Rjy`++_7rL=L7lB4c|1 z=#bcJF--E7-rU3J7L?4u0giS9am9ACUF-^!jF@Fu%^s>09ka_u_ZOe>1)!I8n{`y+ z5M?|Xi!U#KJn|%$^5xf)Ny^nei{y$3cb~ghw4_q#=2QAuE43GtW`T(X&(->s8Qm6t zl`4#pQ^4^KM^pY$bOzgHPC3jlo^bnfjIwv+F2r9Y*tLy}ifT^WnL-1Y%mln;k=hd) zqq5tBQ;j$HWxkLWXLQ9(HR`4k6PHPE9{u6UrCY65OMT9OzU)Yq=)f))NOu2H{`pO( zY4zYm8Z8Bx_u;atII-WR?IZ}^*paAM#BsN5&dj0nKQnqu^cHmjshb?eT$mgWp zJK&Uq*>p>FdDO#z3&-i>!uC#kPTaU!72Y#S?YKKk0JAn!txb7Lb(NCYNm?V%rZ1v< zq2fyhlR-q|QD(zBygAG!;o7=d5ueJ}IlLl?4hqcnISvXu9$iKM|SGezVeDLaa4BBE*lzkX+~Oac1_z5AtBByA)IU_>nslE z6Y+3a^VZdM;gv=Vq-|PV=u(iMFf9Tz(kU0?{5WhFLnzOSRPS4GGRl!~H~8Z|u(D@| zM^`9KRWJY9z)27EfS zCdNqv_qnZ=w@GH9vn%F41pJh_5h1@DiB{;z&-1>Mmw1F*P4r#$ku z^Ab@;AsZn*|GA{MSnso6RW`V3FqvgU!P0vBg{AE=KT)!Det$a$O=9z4ajDDOcw>37 zIV6r?p^uT<<6&x%>;mimaZB%3Q^+5(_)x_ldOI%^);y_ zT;AaFXg`fWvuEGvuaaJ^fvsO|3OwkFeym`q18xdJPj@$v19}orXfH(;dS{z1@F046 zG(zX&Wp=S0{VITTdfRw}xCAOsnnw6Dot`p+7(4c(RXR2-xUWS_MQDHpRC zKgQBlPBHSeBi-h)!*+GKRY@<;=>rA{TEZM!ZO1?HCevIno3BtLv|FH;M;7+!wQ_aX zDJIbuWl$#$;w>5(M>-(IId~SfmDZvgnzDOz(Aa7@wE)$nP>GYNAXS$2a&`BO!D&O=wq{O z?|P=y)(H9UQkX)DjuzY95Mx1JER2e`G2i5{J+|LtZ?WyII9?53Q=_-0Ma87hC^^i! z$41h1UoNLkqqsrAX#T`Z~Mv@1kqr+`qa8?6&~X=)Y;9LLOd4U{9J%w?i54{;0AxnyNb7qiL35(I{LsfMegoC4J7 zTO#5=zT@EyNY?^1nAQAS(2qt_h~{A4jjlYXLqrWz*Z~r(#(f}Na0Z^iLp9TYTu*phboN9N}ETmWvD}-*pSm04-UbT;MS?nl=hiSY`%y z7}V%}Eg*K(^gU^Q=$-Z1gT};UV>3{#njT#`s^L^u_Z0 zhthY{>;F>e>xucFD|+SFe^>NIgAS`YY1v?8+zh!A1z6y;g}V*g>9`YZvkLxAp>Owt z;Xi76QYJ(V2Q^4a4bS@-fiND+STNzswM$VGr~=2Wi} za?OBJIpKUbEpiFW%CUkH^OY6J@Y%8Qba|Ey6;91_DT-vLb^1*_^xhbXfISS(w zf2D4iG-^)g^2*9al6fmj?sdQ5T22rP<|H|BC+5`!zHS(-0}ET`+IcaZT%}cxr#Xez z2*o&?5rxn)XQfvDLX`z7Pg(GC3#TOh@`}pZYm4MYv~*eX2F>p%ET+8$9n>w8A{AM@B;GY6Lpa0Pt41Ud$1Ky91s2_x2UvOOwR6`gsJ+VTf$rARP8fiVE%v1m#phU=Yo+D} zskJSnS}G-Am`jlr@hoky1NypdDkS0C_y`y;xu7FMKlh{cqn8rVp7zM+`wO+UtpmC=Rt{$n=ToBDMd+RIf%#j=0?P=U8HWQn1x5VR6>7dYdPOnreq>r z;3?%Iy{Ek(h{zQGjz43>YAq%HGz7rLo+B_q_;eDyNTB=)Yj9_3>&&$0S5vPOe8L-M zf}iAfQ%`dXyI>33q~}*tuNizo|E4W{=gj{7((vlcUU(zwhl|wiW;3DXvs{@pLSdnF z{S8O=&wxx*$NiJ-Tg<}x5l6t&oQk(Zokl3U5_Q+)mNgAuE(72unR)*&Bh~M%v83vHm(C4<(ghcR?ZQLj#HacajwK% zb2=LG02+rjXlQyh`&(@n{MtHPe8P;U7S1j9UkuNal$Kq zWV?jnNY8d6!*I5R<&6^56hM?O8#Lx&JW7?JH7{g#c3h+_UZK(+X@az# z^c^CgRXoCk&Gv_?h+qFxk?X>6u=9zL*3Ta8Fe^1mN)qXpX2$8eQz8z)OgXcux>AB< z?_4-lz|ayEMr9WR6xE2mdP)7`SQ>_wiL6cEGr~;hx9Oqs&bT%jE!>HKG|v>)uMfOZ zVcTZODhBS@#PI55N)~J1{&=M^EX}G#!60O)Cvfe2*t_sy%=_4K7(lE72KQBGU-Pty zotN=Leo~(V@ zk0s^@=lwI3Vko}sT{?(cO^VzjtfhTeXgNt?0JQunu=Nm(f=8mF6@!KwIqdI7R|fPe zy>jmn@~7M9ZTgqnhpdF`>8r{#R_eFJ|IpCOu;+KcRq{>!*>6EVo8YJ}XL#83XG1R_ zcp`#eFg-m_FzLT;=o#Xc)`=Rz5HTTd1tf@UwfGs?;pdZdgY7iK{AKVBV9M%w1p008 zo&ROGQ;&XVVA(SN5oZ|2Krr z!Pb|R`0{>J0Z?wZ2#Rm^A;EGOxJq+m0YsHG!Cy?t#lyOtLDL5EKBLidN#NKb&_{ru z#P^r6$LkX(mOezV?$3W!^@`R0s_JD%(*J4fImq~{s>cO=kQ}gx@*jmg)O$OBRrNGP z!@(Ez!O=u0wrMYMal_3qyOi~m{I$4api&#ak?B#m_YA5(<42M05_kj#kuz!$2>$Kr zUHseCE8u?*^QWu#Hr(xtzxuU^LtoopuHL(%f78{g)%4rdD_9HukHtT#^--;Vxq9m$ z*9ZRT>P5%>4;X+6J?ZbIKVScJ^)}mqYnS|E>5umPzn1>kd&gF5WstuQ^huDU{?E7m z=zS(%Bv?Vjv*iGf`eVGGx|I}8z!}VO!mgQ@?q#5Ymn@r?4q&0c(O@Z055CFq%D||! z!JO%hirZ;xeB}I^Ge9`B~~7@kzu;GSvF8 za4c;B9SbSG1w2@X1+Lx3lqlpgID0a}e_Zu*`CqO2DMjG2%n}+5K1f2KZ`;x8!h=Pk z!j*Iisq+mE-b;+ZTXsReQ}v$Re)^p2P7____1R4hAS4gwA2|TK8BfAADKwBo>rXZ$ z2-J<8N`@=s)hfl;U3gB5E2`xYVO~XG$^X%P6_arbvr1bkMjt8^#3Db`M!y+G{ngGqZ-k8EsPia8oh*34>0EHnreJV{1?V6Ht zB)KW<1&R`nx@vLKD?JL*+Wb}t_5;4*vAK_7=<}@=&8W>Np!fw-~CB0f03)lh5+%9K@yp_^! zZwaldHrd)OgiTuet?wPl{iW~a0t-&H3b^}eV4v3nY2(ys-7)i6v6nOei@g7A&~Tl` zw-yN-#e_%>=axj}5FvX6iH$}XXM^22GHPpheAfyd1S%4T+G@7;HoW4O4p{ATI_V)Z zO!~|?V*`Z-5!}7-_U*ND_Vg134#HzoA(SSBw-V9gJJd*~xOD9Q*9LynO)~QO(63nf z*KIO+?M4*L=HTHDWMI0QY93G_)aCwBjINW~lTfH#->*jJ=K`XE3wG#ofcPwkDfsr_ zX#5Po>RX-U_Uvj~=TspMn?sko@9@3rvFm&+ox zj9;=r7d&CaOsJfGMplw3`)K!OytUj1e3!Td^~c(WVKPBw@*#uRP-RL1uG?Xw)73d% zgrZxSw)P#nLNYYpz(69i`iy==aZ?xu-}uc`&5pA@ZdF~U3IS?!u3UA+&eCPW=E zd?QHN-lQl{&2~~=ZB$?Q9E^csJ&D4!Qu*!NcRf!pSp5TY+Q=~^^s$1gwLaI(luzVc zW?f1TXbBq02k#~rY6bYB;w!*2i$a9eaEh7V%oytD#J9AT)GRhi{`70UH5*^TFq&qA zLfNOaRAq?C&M7-qwL_%1a-d5NU8WTqBRf0V-6g(^B_#Q9I!qfrl*9OC_31x?uIy$K zn`Q%1g%ICON`nKKRJI#A0fbvHM0d}ZmTMTLsqEHk*m!5lqv08t64EskOlZWErG~tw zOF0`|tfXfvm}Hx}-7&QNXPp7s#pDdImp{lwq?ezHO4&(q ze{lk2tP!y+3L)Th0C zG#ZvTe#7IkT8c-F5|o=1mA)OC`80=eMI^QwP&u|mrfFk?@!A#y>dEm6G86_91}~?B zKfdT&;v{b5kfL$G=eLZ$0A&z?_(~#^IZNsU@=&)5i@!`h`Idj@~M&EEz?~n8&)qJ15o{P`DnS81Qi(h-s6w%v07_MxEVIq(~cZpN|4BDQ&sycX$8k|AT2Tze!CXLeN-O=8Wn%}N-; z3E+fa9nrhYc^4s)$)2`N9z45O8ZXOrQt%-}J!A{pjB6&e&nF7@SF-BcR`LxmBBRnq zt2p>BfVgD`2+gl>w`wbDDyK>C7m7cteB{*8uTg$ zgsDGmwnV#%bfsPr?A{jXP>>SpB-oyL9Ge*Ba2oh*2I<1YAg4e5WMKza>8M(z5OQGmdp9oDJBPMVr#Hu*YZO8x}^k{K9vs zRn_+Piwmz-=M#3hMTUc%UkhX&-N*%^H{W0Lt=Dtc$LYAqzu_(CX6+u#IilUW+Fb++ zuamfP<492}=&j+<U~?FoC~Pjnjjsa^+qpFB1{!ke@l0^zjYfSeX*U*mKC%l zF7iH(FUxj+PjkE|WI5rh6qVcY-yM^K^mP511^8Ksk@17=y`PcbY3=r@3L5mK;r=|zxlvL(LgAxWN{4v4zZ(piIQc{H*wE}0S3 zYq6Y9sa?>tm(#b_v+x**U%~u?G|?W9qEG;ChexmA8cEXJ?cZO!J_)FYHi~?8usiS^ zJsxYKN{13G^6#+=FGv-n(uG`RiWi zmWJp8NPgF;p+PS{$XO03Y8QnVbOvE9Ay@@X&cOgD2B2^7a%JlE?a{-uq zA037D2H!}gyi1|Z?Hp!+G#J3jpsu!>q2CYD9o^*;vTPlb3lfOLh5^&n`WBRu`f-&I#5Yf|9)xq?Nt+I_cl9}Zq=f zwTpSB?Z|7ro0KU1<^%H}(c<@lD>{Yi&`s;`VuJuV?|+Zt)yz7!{15Z zR6B9L=2>~sUZU#T9#A8U&s&&#H<^Y|UQAq@B5!PCkvKY^JgIxEZ+<1*auu`l=q5)#yxlx zM&)3vCqgW2$D?hBfR*?f{0#|@d0e0#EK+gG^RNb}>AUZG;ZBJEE()sAPa}WMn0g9h zkyFFR$?g8*!k&C>@F>aFz%?kK8o6*>k247n>g_}w;>%?x#iOya<9eaLUBl_i>P=as(R)Ikp_2QC7}% zQ*f5T3AlqLF4$r7<2?*j@RCLIMnH$(h&bKSASfJ;lD+pokpn}-;P}Ut6SFr)XrM}2`bXUiQu*n}BJ}2L zrgwcdKp1@HZ_etJYDN4aLI~uYmIux?`e^q)T0KB}p^|JVCC$pG3vxS|&~<$-jEQrR zqRQKMq z^-Xdt=2PF&;?a^e48CiZoQHsdZ!ar5e25U+E+jH4?i!_BYHBcLq|H{YvwiNwHQw2K zP>_dK-#!K}c779v+}QL;eMw7*H0cW|y!5^LogEMV1O_i1&3G!#O}?^Q>^P5994huH zGXO%{FYFRfW%vd(+aVm$UJ7M0GVJ*m)PM6s-pDD8Ioc1Ix0tn$m&+W`Y3%%UQ%PoQ919vD$pZtzMas#`tE ziST0OaEklG6mvGA=zg(O>>JPe7HmJC8>b?!yG(KQmrqx9Kb+%=gRQG1J^a-rH7#3t z)|{MaPY7kaAMzx6lv?+h~kSj*ZbnhY&rj81oa0=1F&cN&sGgE zY@%x!uu)@3A-s{j!yyz1jFZ4tEfd!Fg9G9`jiOcx@OT z6IcR#Rtzrlz0X6j>>*TL%%!(DopNA`p*PU(prD`oOmAvK#$qYEesKcfWzc%z)!uXPCjZ^uvvRz|XJ&(i_k`EljZ1fG@UVfE z5$DC$Qs!IE^;aUH;R3KVMoc*B78wPKFT5;yTkh>j?#FT#dJy4GOW?Zc=v;xl#me0S zvQa^YSldy?Yu7q*onDhelRT9a)}TB@g<*}40C75!3^d>9Xi|e*Yj{MaY+>vzCkSr6uwqj(6;O&H@R;U~T;wIZ2k# znWaDRp$4g+Nc;}m8)XQN>4=radj^V27C!2yZjY@dReiQdMz=791Dn398&&9Tt3_z6 znd^5!uM6nY<9rBir$dBCci|JVYnWmZD)e;eP}PLp$Jb*=P?k;w6G3*c4v^`otu4&W zy7fTK<1b|ZgC;?`} zwKx;uRa~ec`h3Gc)CBdilW^B)~ zB=T1lz~DA;K@YRQ4BL+~px|mm3PQSWL5G23JZ~*B|H|d;Y$=TdwfU!7M)tAtAOr?r zSelxg5v_oN#HizF4o8!-vB+EnP^_s()=8LCM2-h;$Go|~*B=;V(BK+*hE9$s(NL)v znY=|KBe?d*?IS)AruQ~#{y7mna7dk!j*IoOOcZ9uP8sYU4%bzuvJb4 zQu$f=%!tr7Dfvzx53RBxx@+%%w2ItGvoOgvNri8-Qa;6zOfi9#8f=PnwodB6aF~WU zj!IIToD_wgxaRH75D2bK&3URzk|5R(O*mFGu%csWP^{3s1bQ&q-@>jI3P=VKxQiGD zX_}ZE_kILaXggM8>^uM0Qus8MpYa&&o>8oO6=!pE$8H(TDKdhl)DD5*qGQtT7J*>$zAMYUF;)4zvlZAunBpH z345B~^F6U$^h33)Vg@(OPj9MhZkrNUq$-@*Tic#E=61^YqL7(dk`-aj?)Qm_x*(_X zqucxNUkQMIGuZ4ItK{ZeZ*FG${#^jp7uFj-6VbKk<|stgZzAr5I})Uc>BKf(aRq=M zrTHUR)2x%?d(quE0a(U#ZgM_^h{cmftfPi5o@FNUavY_dUm_ec`Yy!Q;+o|V1^Fph zcI+tlgcXsKt6)_e)$pP1*rfa97r0n-W>=L{#QF1vq+Cc{qjuTdPfhEvn=zfGoQFM9DfM#ch_KH{3bp2LOgM>+i2O0Tf2#-O#Ka&YPl_KF zF0&U`F#c+BJmBg8``dmIu*Q)~aBJJvlBJZR)v^;7WsFrXp_SgoaQk)t zzp?ig!Evo!m!=pkw3wNhnOPPyOBPsQF*7qWGczm2%(9r7nVF@w@4f$5x2vlnYShsk z@eg*MJn`;9o{Y%Bv)9@yY2E%L^d8QDf@->n9ugBxSFCdwGr3;MtU?R^CHr!b zw`kmFYDTfnUKSMxIy{hAv(^D}^4z{HE;ct?Sa>x#{b-h-t=+{%P$c(gMn8LQl)}+M0gWFk7 z=5gW6gbvQ<4rZ)})r-d>SOgy`7xr9by{X+ia^ZDxdQ)MoY9kYxjDyxFR^&<%E!uXw zg)S#*Qh)k}CNVakG#0uR7EoAcTV8>I@nCCFhTSCTNK>HpW8y|$394_dlqPuei2^gT z*N%cF%2uPased??v-KD7&;B58vwl8{JJvM`J#<~4gPygHG3@A9XC=e_^uk&7*r>P` z8s#$9?al&T3&T`i<6Q(^dPo zqWDI3lDAtzB=@a2oR~!)u$Q-J^izu=c&p(|k8fL)|9^yg+LnA;U}C>dl_~o#aETrk z`AGqlP_lPD@3Z$8YoNLb*70sO3oybrAwxA)U;ETJY!QXEP z@MN$A-dc!i#KrR={zdm7f6;yDLic&DazOf6?W3JlFr4xZe*x!` z_fh}Q{pH_uzm&lJzoGkGyqf%>UFhF*za|VK7UK%cQ1hGaiG6vB{-OI9{NHrX{x7=6 z`J3*wQ+EXa*L2VLAG-I*!n455*jSpt87HZ!d>ZtUyPG`D`nF~ZuTXS&(fhRy*~Fob z+TfS%RU2k|v-5Z%?^hEC%Ko28AwS&xz;lnRdu{Glw+TlFA3>~<9!xfFrv4KD-JP0m zE@-^PwsAWRnAD21tVMJDsZBdWo3yVQfkb#a@^$sx-d03zTaI2HrQJid!+-6=z>fKS z0|gJ`tA8gDvFDswmZ+z{v7`5}Fsn{RuMc!{69to76g;AR4#g;zCJ5BTOS7IKYTqBV zuiY(ZtkJ0}f;z!&zmaPXkIhAaNvvA!n4qA$+Ou|7w} zJUD6c#AKVN4F8AhZ_2-OF)Sb{qJ5TyC>eobs>T0_9_dm~`SKLVj!z zi7(^xru=%WEpZ=9X%=oO8R-3%q{hQNR&1zke;$Fcbwj%ss0C^vnzXY^L#S`f_C!2} zj{D}RyzA)bXNYq9marN>6cdF^ehG-6?5?PlM10s``_74);Mo?T?-soD90C!i23anm z(8FSMezk~zVYKyEK^zg+bOLp-B{D`E+*IQri%sO)d{D**RxZb6q2WyWgsd2ptt%PX zK0>6ZC*Z(=!v`1?vZ8I6d~6p}9qp2O9;h~NgIqjxTh~E^p(A4m6#E7yTJsBo*^v)P z;doC~-VC`I`$2>VX=an5H&awRqk06T0`MUrc)A7D6sYQBt_1{!bFGG@bScE_-hgF$ zyqcK!YkS#_6ReS408c=$zdg@N-5kIW9A0^a%o)3SE7y*CYv*DCW%PR^YU9-z_HT_sE zuUAz`uSV)xRckK2{%6;0MjF#yVUkim7ja0lM~1P?)tk{pCx~H z7X0pbfUH`0ni-#Xw0v`#5zfh<70y?_ z1rB1G?JUXPDRvEmG-FQsLQ1ujp}ZeGUabRW9KOU$Vs8*ZirBfy!6NW&k{76A0lhV+ zj4G0|G%lq$D4xD8mkAW#{wkJSlVZZoXRDm4A$ITVwv3rIDvBI}ByF_mj!*dgkQs99 zXjGX(1gg9Qi(}Xev@h52qyrqu!(6Mw?91J1BVbf9BbaoaYI~ItsHo$yv9gf>j_-lK zl~M0~b|7yilB{tcOLEKfJe)O!;L%x!pmIzrK<$Yr@)$h4e;og!H!8ly072TS!0#|> z0U0AR3;q&&xb@l^&X0NZw8ueK#U@m&C#>5-$uCXz)=RL&(>?}} zB4BE;GQ!HOKMvg+8|Cppl5XYa10?lD2p8FoNNA|Fuudeae-L6NP~}smp>w^Az@i## z;z{A?mC&Uz?xbN?os*NCnO6GxcWoDVprny7G}-iEx7}tL4G*lULgkqF(szVd;YEPY z=x`=RvkDPI)z?T~&zn!pTPc1c(}YS7o%u!1bb=^bi1b_;4>RaSZ;&4`*7ImRPmb*Dy=K{m)1TYX^dx9xuJ>7Aa z3Umh=?(7x3osxJ{s?)8508^hkz^6o++0o#`uk%w7j@YweYNz}DR3w#W)W<09dv1x@@lFB-X>K3GChiOKCxg9VwJ_a=HSb#VPv zne`n;R)|y=eh``Q6+9F(5ZBYA9SqN|e=qxjhxr+YD!=GEToDFuE^7(|C6@TsD1li! zQ@r48MPqV=Y&`}0u4y|iH@8z!D0me&+Tjnk`C7ps6FVj8(O=-DVbH1cT#iEvQI%$C zi3i7M7^9a^C1x-Zz}n*gR(VE)eD!l&Vs5dp07c7Flzh_W@L5FmT*N%{C_ijv^SXm& z_p+3-YZVAw4eq)yma&y^S~1OYw4cIz#_r4Jy;8_P;>>J~)I~qUe_2IRh>{MQrYukO@O`F2TCZpH(6K@_k?3D$TIz4 zh2YcB?3qf^iq6tXqKa|l3ONf#_lvfaQ5>4hLh3o6sKN!PMNqkyhqVfgJu!wwEh>o_ zTAo8KVAfU5_O%L8r<^V3_Hjn%_GDmz@5b+F;-A&)q-99P6ctA$MZZb@^nS+x0;N~Q zWx0xjGTIVF+Cw5Nr+;8nG{ZCRtX?-x!ndWs1)z^{psU8ale- zxJQsy=wmC#%7s=MwZ@hQ9&W;bE~8JIBbd|%p4leKZX0L6my^oZKEc;M1NM*ueZm$x zWB2`Z9py)KcpLuMk7(?Z^#F?@miKfUBbiI7#^cJTc2i0Aj2Bewl2AjgaOU=zWt=Y(0|F1FMsg8?n1_ zd*l{Fo1rZ+%rAIzn<4$j%rE0NDeGBf8mtMjC)WKtIONyd$j&5I3H|ahVUZjeF!IwV zfrY1j^Ej#!AULvLZ4+3dBNy+S=8Y9&D462cM|5^wWH(-xe*$;Ti%?nG=|)Kez*w^U#iv8vAD?HZ0pi9WX3 za@XyXq&xi_BEe$8E}Qyo!+q9CXlf(T{FJQhxD=r6W~J&`oMbqD*LG}1n8`b$6?sNm zQi3;o&q{Z(l9pY$j!8G?aON`PKL?FZFFJg^n(f_C$=%R~SwvolK*Bv|zn0;4(fa{^ zky%r+x>r@~Un&X{(FSUQ(o>I8G3gfQR)f0sEb=^nu-jkz0EWgPtT$JN7O-(kC^tuSJFg$2!ZX|TpYgzhp zjfxr~$a5|2B*;<`7xs8QwVr1VrI*2xYAlzDPfDz~1_vhGP+PT(meI~6iq0MgyLMX^ zt9BC06OMgmF%Uh+mBIP)W^ngoeGcQ={plgmkJn5BxyMT2%lElE z@Ul|tk8MYe{}lrY8DD0TZ9PVCTY*5k+0{3CLp?VX5H+EfW4t^!3p<8zMvxF_YQM(_ z`J)q%G2t<0XJ!yH$I|Xhg9xtEKFB}I1JSG08jiNk2W9;BOAs{mM}2Bw(@eWslyf9l z42}lNLH|bX{3_`VE72P4>4Ml!bH8(VpfXl1MB2^-D9?t6aZ6J4N;eL&YnPM6#pnKN zuiOW0m7@_I15CRBSrZOPw=9=FaD`t&H|KY5*K?&hw#a?NOtq$P;Q%q#C#n)Iv0#|4 zMg@!BB(UPwt&d|j=L=x^QGhh>n-OnroD|9OeU|$~doGNAx*qgfPcv};T-fP#oIj&0 zVl){X!G|`|Qv5F2-D@FHL*IxbsObnr2~ofQE}14MAX*X0if(9QtOb`%KJ;^HqM4`z zpVcSjeBd|R$Nypb&VSe*66-IvUrTuX->|(feogg|@E_%VOW02=rUjUx={MUm`|?!$ z7u)|)?)m@4_8EV({aWgd?f;tX4gPP+eL&~Q)?dm!)4!Dan|~?y<=DE=hEe{T<68qA z7If#S4CT^0<~Q&&eb!lIDBOFf4q zOq+ z{QX-xQW1Y9oB4z(N%Gza)V}$Wj9T$4HE=N&dEnkYFwZDhG@hBkXhhQRRd!$aY<(Z9d83>V3F_U4L{*G_rBFqZ(Qp)wS_OF+1IBs&r?rHoUqw6G($ALChDkZaU5bQJ1$I*Nu)Iq<=srM zo4%{rx>X1=azcSs82eTAUwP z%?wyVJ~+}Nd-0?Ah4ECOmZ<7!pQie6wW!2e^b1%Hg?jt@^o-ZMeYU5n@1ZOro$ZN!QzN$$F7` z8;VfJmtkqs2)2N5Y5W_MxUNqOZ6UbNxaZ3Dt4$HBNdhep* zhr$Ir;QXyGf-!<-SfZ#_mDSHXJny4gZ~PlsukwO^A`@Nq+GtEWfWP=qcba_<5PfP$^&ej!lM z@U^MsFfhWYVXSuxpY8}{?h7ux!@}M-hm0|Mafs2gLq{}|YVWpkbpKN>h zWiWf`Yo{@CABdM<5u|&j5YcihSg^pgf_&X()fsvLF7gaVb60}iiBDm0p8!R3V)B|O zRnsAMeJih?hrN4f?lDYk4E2PRRujjOUVKbrF`n1xFrivdPgL|jemM~hGq3nQx-8_0 ziW2s-BCl7ZU_%ueT}5r+Nh7LLH`y8QVP$WD-)WMih+O8pS}FF$qqWC5%=gNvi0>vt zR*x8G|A+G_ksRErcJduqeNxkcgJ<*ciSC?u#@mHxVnC_Gm<7o?R&2hM?Om=(x&IGU zjmGDUY6$Dau~Q=plVWq9$*aaTh_i1xZ5FX2dgBVwhj>IS#}`JT{V~FvRQb|1u&6tE za7}HYq`n(YYe!zI9);IteoV{%K7JLs^c?ALmz z_kh|5i1)BHU_&|BO!kZI`xVjjG-D4gN2>&A(!G!d>|W6*gOa`r9mwbgufFFJ% z1vUtODe{|*-`zwY83l}2gUXe-CB$!zz9P4T_-q*15`Sm&$8W%Vs~O+=eXw~TYd-g{ z`h)cU*6(-!miMjxRAZ*~t&!2p@2gAA?i^4efL2#UE#B!!_sTcd*#Zd zGbeh|!rFxEVRIqlMPQ#-A|y@{y7>nShNfM9fijWTPm!Kmx6+%L+_~;AD91IhootLQ zP{DHLev#Q&u#@b)*kd-sWAl6d(ZEJK3^5=TzrHE^9ARq13_xi(E$19)&|4YmU@&d$<&9Ta&}AY$jY3M4)x!n z&#|Z{o%*)CBd3@bd_}QrX1*&&l5!rVM&85o#UxBfgeM;;elhm=B@e6UiNTl{4zqok zW&If`pB81nWY(v(=OZC|X|~;S_!=-L1?q#3uB34iP=tmZFKeF3uZ4Q#koC+GswHV+ zI9H^C zekQ|y;z|_&XX5NDybNnktj){gWSS|xMiZ}KsF|4J3zbYS@~- z_1KaW!}bBhfx!3|7uPpDl}dC{)ts@F3^dAr+YXCi)>v^v4E2}~VOq^W1J;xHkRmzs zx#tB(X0~!z$IMnB^XBc#_^gHRrI3CD4Z59ONzq-dR?x4= zcWz~-DnmYZ4v_2Gwx&w?Qyz*b2lKtVmR{&*)q>H3z2#}^Qdk@8x`)h!z)W; zfR3QpTY<<7FgBJJ<~_cr5%E_vW)Zy=66bf#B|2Lb4&8;F7iAXHw(o0v4+y}mWVN|s z&q#(TTSAv9VW=J@rtZ@^x6{%ZY&J9*%0Xw7Vl&|i=s@BONiy=1j68;T%?q(D-4s_KsY`Y-K-|YZ;59Ic zAcrC6dyR4Wnce?exLqAMPdPys7x|a z^|)q#0H*@9`YyGFFbGFbl%yS93N1l&jeMvFHbIHs@`ToCZATUcLX(@x83?l-)j7M838i5j{z}hh{|l z+J}*TBo!?3BMQu3_Cn0lz&*AqaK&)#K<{j9SR4yq7UG>I@+&?ixJ!CVh)^Pr5u!yH z=P^Utu-k803ZBtiqSMd~xQ*IyO0Xt+ul6~4CfA)LowU*D8O_je;iR0_j$YK>s}bqU z@dha<(g;EGw}mNFChDnV)Ssk0rnD#jy5?G-LdmR&-{%caFFOgZR?@-;9jiR`O5DQl z#|k0H=k>BeT#Gsa0|wZLY!o+V(9vK{@ED|L+ZW!|I-v2WtHG%UOEXY0mD<5j3Edr8 z(@N@Qssb6Kxx*dmw7|uL!Kg25fVQ6p3(ahSM7q}r~-4SP{?6u82l2B z{|Hw8qy$|sBpNFQ&*yQW4)ht!MfL#wDa*$or)(m#e93`+1N?YrTgE{?Q6oBb_`Rvd z>`W9*md+o`c|mPb`oIa#qv72~rq|yCb?uv(NocuInP%v+adgNrDSnTepOadEzaFJ~ zw%*sTuZiv!dhu*x@k@(*H-xBC{oEjTIzMt^&#lnX3@S};b}{Coh-=$4)CU_4MjF~Q zrpOwF$9_21+u+SdGZ(Lq3%Rv3Dk3i=d60w78ttVlAvDE`cZvqP60~F+A<)kXOs^w) zJSF^;Dg#`7 zg!O7IgT26Wu4hHoL0cBY*UfP3P6lwMg|R1mgM-Q{m!GncQf{JbYyMi_7$3p*w1}jR zUSt@UJJ9ZRvM7!vwx`iqnMXVnW{KKmIX)!2xC&x}mj<7THisZ!fW#PvV7k9HBuljl z;fF5t*&yTwWj^R_!&78|~d>sz^ zNJ^mPLxTJ+uW42y=JYV-$N82*d)QT@issgF5rJPheF|?XI33p*GuGEvR1QoIR|!$` z7vf8Ubl0#N-c(@x>g}_AFbG5OLngo$rsI<&?Je(&x(EH1jvN(jF_>2?t$UXNUW@`> zcRcIRMdco41P*avk40!hG zl;xNhxKJhGEjG2c3}}%|r_M{;niI!Y{HAPVIKM|Of3E^ZQ#e6&{gv6Xk#BuVy1%=q zk=c@wb+PcwU3oHcfL(-VY6lMYD3Q9gvh(DqTA7BcODwc~VSY zTE#WWe5V;c&Xh+0!f3tya=UgOA zC0E*`fUWrchx$+CU`yC--BD4SYhQj-{~NTSI9w(ACETv;H02En@hG+bCOz9r^|LfbYz0Q*C-ZJXbc^-ZB`{R;9t zi2o=1+wTKF+bUM$zY4H=5xr{pICS3hy6d$1e%-u&wYqK@`KPq39#?sFQXAS<)BdW} z3%M1`NAlmD@lMfyUB%DYGX5^SOZ>*w3;ag+e%HAR!d1z(QumpQLHn5#U1tVUdjRX1 z+{(|#;P+i8i_hlq-FJoGuSq}V_|5EB@$a+QcsA&d1n*YT3Hh(ODmfh?#@)k^NaK-h zde{S8gl#3m7)0(4sa5);)M>n|IJPJyIPmQbO|d-$?3f?Ijkn08gP?I?UEO6bmG<%=<-?foJD&`MxWd^DOMF;Qa_91b>R$$jzOB6GXNp@(K6VqnJjV?jlnm6L|q)6#GJK zZlaK3#-T^)5DRn&&u7?MI0hzCudiuX@{N>?G6w0*o+cBXqrd~X*w+x$ESoRE=DwQF zp{8C8M|)LHB4Cm%|4!`j`KBcsi6L0deOEX8V;x22K_SGNgA!klEHso>`ywgJe4405 ze%0qE&v{rt;KR4T+i&HjC+fy5y$rA(D4QJ+>+fXXDsgv?wNJ5xHvT~tZn1I;jk;Us zE4GTr*SHS7r0zmoPSp}`MzZAdcV-@Rp*oyGt@@oOwf!w^QaTCf{366cN5}3g_;7uu z-+TFcw^<}uLFjP4;$KVsB5xV{kGsDBLNEqVnX%(~VFG7!$mjCA#J*44B*h!K$28-j zga*pa6Nbf{kqRtKX^<8LD4RK_MCtvE;dM@4Q>@~;#VRSgsJ2@}&{;&4sdxZPJ!V&0 zS{zvSP)5CXXk31LE9WyXZOGf?=R-dX%dg3&MXcr#At}eXfYidDEp9?Er`mAS@)<+r zBNUUz^95_B8*~Z|OZ1WoXo0n-+-;p-^|6*tZf8)`Tg*c$&cfpgfAjf-2kg8|v_byI z%@;=vA-IQTx<2I%F5h_t{sFoC{|RTg9fNK)5f>#c+fjM>!El9Z%1 zJz0=&q|z1tF+?-UoaKVTsS1?^LmrOBcJLA%aV-a|2tOdOXmp?$QuFv6(PM$8XSX=~HQZP>7%_g4b}z5xJ^eTk_%O%E@>pp_rvX>Und9Sh}IC zkd;*wz{}c#M4vHKvXEHyON#=AlSY`s1(Hmn6`FAylm6ZXhQ{LG*Kw^x8f4qO*Rso2*m3K7ta*c)QlWlGsH8C=B>`?l52Z)9hx-) zN5)tjqr3ahp#=p2)9ozd4w&O(8WYk2G8z{F(ekUqoJ!-03P1#hMNw(EtlZ`c;xa1r z^C8yZUa_A|S$@BgwV3Tjk85csAzJxrPrp)=;c>^whj@0!1`JZ9@T#NA!X9z=MGyl= z7jE`>iv&6v&O!_o^^PP9iL9Ndv+&`@3l2OLL}Z087aQQg;#ubk>@(Os5Z4rZxJLVeesCul*MbTWD5EG z%(RRzSR$vs@u^fS$NQ1yf}_dT-mk6SC?#XV7Z)LK|?FQj^My62=Y2gA3l%`ZfPeQ39kuO38fg z#Y!^9)N>KVxvtWgmQtWRO+qvus5ZT#J|Ea~q3-PNZx6yL4?OPwfdc^~>u(1F7gq9l zNHdPIKaZ>k=Pzj@2&dil%;U%eTD#MqFTAT?h0%_m=El>Tevv!IuW{w_t&l(!Bq>m) zYA0YNpXFUqi7v}h)rXH>s_^HzX~&Bb^6 z1#yo>q?Pu*uH~Z z16TgI$mkK{Rf2YxP(|c+R4trv!7Nowgc*9mQ#$>oip1rqnmfr65Gs_}*MY|?+vg4m zkYT!_%N1puP$?coE(-ve|0$gtKh4J?i)Le>rHOMMiKbD#iqu{}#IEo3GUdh^X&{%9no5A{u1WxjkRc(wEaiy-(nyU}H%`uv=>G*#(0BHZ-04V6D7;&yK64pc&e%O^F+7mahe{nTw}Tk^pyjZ26$?YZc&exMrj7m^kaO0=?Jc zv2!xSLOxH=3WAz;DF-+?c+3E4)^%zi?G(R50L`NIhaqOO_@=DJS3$8Q8(!|O!DE;7 zdz)IT#;&kKW_Uagu3nd*>xUE*_L8PM4m*LGD6p|JX8TSDlA zoxazl;Wkv0hQi=a9Nmm8+$#B7Ph_IfoJVnFp;Xo{e<3~dq3LbVm-`k+3-}yLl4%p74CmG(MlgxTvoI-sJcx&II*kXU-Y0&pzbJf02E+=osT~vJXA8Rh6X+ z#&TN-o}?bW=6N!G-A=<{{iMPH6l0QkMU9r7!9)xzqzpCr0heOAueMsH= z`m*wJI#U%n=m$KUwIV-Q1Jo9%HINLnu)7J@IIydKli;vPL@T0)!Dvn8&2HsMWrw#ZygP4BPKtdyjKA)b6Y$U5KoP{Fwk5hC+9oi%@7Jnf(ZU^U>RgN7S|-g8w2W;= zq+ha`7kYq-&*{A@rsSu^gjL(Gu5ZxJXZzQC`v3($uR}S!gJz_df7XS+24TNLMK8mj z!de*TE}l+2NwRf#C7_|43&FJT@ce8|ai5v`PFIdMK|b7)2V22rRN;Cf4SF>L{mLM! zX;ZOi%HRP`*30emXDslFX1QO8+>Zpg737Rp)12_Pv;TSw>jlfR^&00Cre9Ui_&a-_ zVk6R`oi64sl3qZM9~~u*2W_Aoc-o) z#>jKfA0z6Bz}8R&G>PxDJh!UGjXFhB!_r$0j%HzDjSaghtr@1Bp8kurdR3v_YFSDR zVhcYjXi~>xrQPc+$!z$|IRJl(>vLmHYK?0t-F$wcM2wo$+NNPuOyZUF9xe;3Jl5k~ zJkv)Gt5dR&EU> z#s&MR(IaFQ#a!!jYahN!S5Ou{lHN@4@s`gK_->IOw7%>1&(N;|(MBLAGO{vZFl*|b z{$8R(Q{THje);DFj|?#d!#Ebhd`%h#P$l-@#^}m-^B+Zv@ovI+&EJY+|UKQ)g(N$vtdgI$4A`m69Pk{*8da=i#Xok`P z7cxGgSgzJ}G_97#=tM(cN1i|Iy2`$Gkvx76m2BCZgO)?$pfjR+CHSb2{it?CTnX>T zjq;4~f@GEmPL0@vbu(I{kUbaX?5;ja0N;wdVY>J^#Q5tOA1cFFil7=w{CM0=FcnT9 zSzSS#CN@8+^@R}KPLJYOl zK?WUSnN*1-!)J}~naVDLj=&!O99P_*N5}C`_SBavRhi6`3%%G?rC_YbM+)EfUmxh5 z(%@Es`0laAfpC3z_Ormp{>=Y`K_e~_1x=Fy$~iSCzKG5M#T3b{9uf6sFl|**K3hbo zcQWlxQTc=e^w?PjUdh5t&t29Hk$`_{?;1zylZToXKSmW_L+D$9H#4633+zx^c#wjx zt+>$K=^`r%9b$KtA%26gLJhU6yy8X5_Is4uIm7glG>GGJjV z0?inVeAJ&%snSO&UU5`kiAH?%`xy`^st)B2$HdP9y--L-q!kk1*D~Ipaqsyrc>HRv z?)>2?jH;g^R*ZCnXo-k?S#4#I!Ga{Wk5P#BEFsv}3@{!9-!NrEE6@`ZpD@3TWH(04 z`a&{1D=SUb0^8konG8}UDdSW1SxR7<>Iu>q=Rnv7%jF$!2A3sv2ZZMICTt^{6C#I> z%l9A!?Y6p8_X#58MZn?12LT%u4!q*!*B>aC_BMYc1IcLRG5yGju0~_b!US-RYY)M@qTSa`;-Nrr#`aCZsKt%h-MZ=C z8mnoj)MSdW(k>~-f016S?}dO>rn3%YtA+@~`{{=p!c&PILB6Be5R0MPFVKgm%%eLl z5X0zQmjtrKG4)+*ntTOHa}LEW4|J6gqr_Lb28nKl%|6c$4jSjoU#<>`!5jx=7*8sL zv-09ZSOlD1dsS|D+(>4FNy7RYiXA_(K797WU8@U6 zE5|K_4#*-^`pXZP(rU=?dg*A4cYPllLPm!)9+9AvcK1*Q!?V-=vu1($j8kTuztkOG z6T3-c77}@_Xa#}4YrGy8vA1AlESpqdR7awfmTad=fIyU3b7n(dZ4=0WWyb?j; z_e57t-$Qc3Ckf4J@jNbYrN{)trvU+k@pv-Y1pMGPa?*umpb6!Zf=rbo!bcl$!Bxl&$w;iSNFc>q z6eU=}X}TZ+JzNBh{2XbO0dGDycPa%Z?E>$!lZ{?uq`(BFa5h#5K^hL!OcDz+6_rtUXs+mtkfK+U$1q(+{B!lH*z4o>_9J>k8P^z1qN)2z|B3= zW2kX^TmpbQDb*|y)8;Z<8NP|a*b+WuBLaJ!ay2@DKAN_zUfnB+cGu6JD9GV5k`eCE zz1JzvOg+bOqZ@KS~Fm|7mR8eus7duYtkfszBm}!~Y53{>d zf02DFUM*i^;tsb`EhBbg9UbMEktd_wEfF@?RYg}XIaTI{%oa1H27G3;gXjNbXE zzc=&HSMhyiE4UUDe8xk~3?$E7l;7p8^}`NKfg7q?gXq!dXXWkN9*!cV(B;uK9J*F- zTaQyQ#7RCt|KaX5V`moYvrOb#}0BmWFgy47on>8Pp>3Jh;+9 zpKQk2Zxi%j57`{>XV)NE_PJWc8ifU}Z3K0pO%E6C_EN^RKdh^T3llo$iccD~xrD29 zmbM+AcTk3BV1h1%G2Bq7OGjfD9?A1Jl-c_*G1HI{$m&IBa`<(Yviya4zLH(8wbG8+ zKCTQa=f{nrEurMlXjI~OP2JXLE62 z@o6s>E0;{bszH;@JIxIbd4rlte911NE1?cX-cWaL_-wuOm^MUhNt`5%q>r+hRHWu6 zEi`iFW!jEx)BSY^%v2ef;&l4`#CmGIn7iXL``N$7Qqo!Z3w6|1l(_YHnDxrEwHi*q zIt$4(Ahsa5zO7Ye;b1Ry@nA0jaw6uEB$6z>dBx(!+(dMc^90df72t2K%;n0h#MIwv0VqYYwh`KFJ|k1-is;cx+wa#ckU4W&t8n74hUv!y3(Z1 z(q>O0w3FbA_1@}SnnA|(0*Y2KsLp-Lvs+-qGR%T{g5Dd0EH-m3z0tk3$@x*DarRl4 zj5i-#Wn#)pVfZO8|Lq&|;f6G=zb~#47%3gbr>k)bnx;=U-u1%c#adxc_k<2k)Fmd8 zi!6Pmaga1q{-0qJ0qks%{HA_2Hh~rx-89JVSPKda&P5~0b;s4@+H)ZK(i3J~nei~q zrt?B+Lxt3URw5j8Md9L`@QD z`V*(WI~Z>_HE^uJ($*PFG&L-3CKq9d_y4LMaUhvB$2!o*cX*++P~T)7Z)N|7p2$Vrfa{h2O`lP{6|fWA{am0j4#TunCu>cVf%{X^%3HZ9|FZu;e~Yji1y@S^cIUJFeG9 z-W9-h(I3;;^BsSUU*~dycT4oSs6_lvT7|!$_Y}|?J!%gwZZ?Zg(oa;?!ma#bID!L@ zSE}Ce{Uvu!KpzCvHNLqP^^7|-8kt__wFxPc)R!9;k!~Yu&@|-KN+#SKh+?n8Z*njR z!;drR@6gzTB@p=9uhor?QKIk=Ai40e)<1tlwSsC_Tc17dq1shPe_68muQ-YCp5xEI z;#(8`vu`p*S-e%}h3CBF2SIU{&Y=D7ug>_8nFn&wo-SWQ1*CDim)ru+j36l-?pp z^B<4Igw#YpNWWi9`hC{2tTGcrBEKD8?cAN&1g2faBT9mI@W<(oRCxX!Es^%Md2>WR zPK#iWiuCF4pSWUN!ZG7ODy&$r*hbPh;nX-VOxq*tTNa zCKl*4xsmDv&yAxoL|eejFEzS&=@S?K379~+Q3**Bs+XE@EGSDz(S8U?(YZmYAU3rZ z<#=+ebAD!Jtk!E`e_%D!`?G?Q&d1$x&#J4McgYDF`P2U2`H|!QPkyB3 z-}#YV;iAJ5te8?{5B`-9@z&F}oDvu08u{Za^6fpl(lZB^Er1D>Ga(x=RohYzq_0v_O4)S$>p7|wXVWuq#!W^aqN3g*jFi)hV3<~Xqxgi zKX@QN(rY4Vp`reagSa}m%uGE7%7Sm9?cnQx3}YBcfQLlG6wb=Vx5o~PuA;WTryu1?H7r|sSgnRSFG;truy|nKiPf${Umb5d zBRdb2En?vex3pdDv`EBfKYw9PVhe3Ix7!jNQTx~4MhMn_?QIZs0op=IdjQVumrqU4 z0xxFcpvNw#F{@i+oKYqg>C+}y46yOpH3&wNa8p)woMb1~hUaiEsFn=<1^VQd4>Nc(Mek9tkV^SSS_UH6q|sQk+yg9Q}H3|1osPfcx>4!oS$~ zIZSYlqXzPA5Z&cJ2=QCd-^D)&d9P?5<$Jm3BCNoAF6kcqKCreTlvE;Rn>jy2}}Q&JQwEFkf)rp^0R$6i090!4Q79>&h@F*%4tY>Ej@t-`D}QC|-ki zKRfB7LA}ap+-hJpP&IfuAg?qpU{JtGQ`W+!usHXq*Xn_t)8y%ql)4Y1kqW?R?Q|3}$5`g&V5QkY$_)*gDV`asIXX2E>X(3aN zyZ4T5z>0}^C+#lsnA6*`xQQs!4a7OudU0t6yPfOvOF-b_71-wa8$PITle|}R5h;LX zSz2A1BBOG@+(^5{v76N0e4~HSoC?2*Hh5(>412T}xJbL9UBb@VK|{`Z=`W^ZwjcL8 zY8mGr3Y82x;tNQOj#*Sb<1$jLVnDi>jPkLfETm#>hF|2;U4IM8_YwOSi64$*vA%akI5CEr$#J_ES2G9KrB}2<$F#BN~iLq0z zA)pR!3LBo+WjVG7FW8++SKb$HlwK{O+k7A6)~1}!bB7!ZZ-;3|1V{wo>(xePGl=SK zgPICcwINrlM?N^lDuhZ(z0WAf$)@O^?)iI$4K%BYs%t@x*>X-Y_ZJMeMlXs(Wp7_N z8wf7A!_onao);u37R&h zP-~}Zd1a%9;Yx;x2$#~L&os9yo$0qyL-g4@#r5!~2h9n)m%#AdD)UFeF~xe2`O0{g z7nuPMQYnMAL1sksoef;Dlb|=OwNU-4!tk;F7jzfwJCHMwD&w5U?eb-?D9s7!3r}Zp z&C$uI>*m5f?{=nP4-zs()+Gxh>9g)ilk?X;sNpR6Vfw_WgU@l*Hc92M#_NP|l_`t8 zT;8O^Sf^C{3d1L{l0mKR>{cy^8ze^|NIb-Cje_DhQTRvYz4+20cB3MF8D;70(j8B? z^h2o+O|=+jvQMnFqzQ|@Edzq*3)@07;nVrTwU?CH-C!Bam8d)^IbgrgfC z?TTtFjuyNjhO{2t@xPJjqu_^tMPg;Vzw*wME?)<_D_`bjp*$-^;70is_c;%?#vhVr z(`?kJsi5QWFMtI34rL!r(ua6m#j_gn14=&A&W74OKGV)FdjFmZ;c1kmPqEU$sO3<6 z(dYlU6K!_(xf9*t#0R#S#}p#CQH>S<;`7vWnegFnfh7l2@JPvwahv#5wNre1GL$&X zX5O+_DKkQdBEgLnDX)(TP5%46qQDY>$GmJm96LE4d{Oo@^03cR!l$C8(|IL809HV$ zzqyg{xKCIBQemjb`8nNI0Q9X*a`Bh`fj=iV;^SMxus&T!HIu~&>4z4Z9$1eM3pWwa zE8tQ4PDs58r==s3PS2#WynJg4m;3sk4dgFe11YmR?p_AnBsQ@g9)_NN4qH|A2zB~c z6AljV>-kzIpfu-N4rV_CquGMe@9tV=krDYUZ2!00$4JpH-#`{+K>&B)#LJ?q z=KBV=G8%&88wIgAPBIHxU{dZ8Dpk_Qkm8cRq|rkXh*F=3yOiu%={zpXXwxK&{QyMz z9Q)whCAw_(5uv`zjtK~Ws|Pk~;)%efv=d@Za=2goZC0MQlK-tjyv zPXooh*9s^J{o zUuP<6o3-bN40|Ar&zasM#5QPI~Oa0Y$wJalv-M+5^ZD(M1?gLG|0H`BP?qitH{*g%8pyU;V`V7OJ&*){s_~-9 z;aVieW8?p#2r5WHEE~~iSX)=MnlU(IUKB>JUtC43d*Gc?0 zC~QLUFHpE1_Y)L$jSjkCuW@dsDk4_C>mnOCLts*t&TO35;1E)CQkKd5c2e%*cBscf zXDvsqGV#Yl6qlm6C{1fiRR0RjXj56}{Ty$OfqJbl{R|Ff9LimRGF zyg1Xzq=I3mr3+i6X|K7)d8bdppHV4okCM^GoO3h3b>{B&Rg<_0im4~0E}SLLVs91Jddn;n*4hhog+Yz zwb@~yAh*34yLm=x#WmIv8D&$%vdyz#E(&1UI(&3W5fx~u%xZW{(e3YxfWZVW zyqA$K#>xb)<7Kdbwcen&qFVIjlypUZ(GA99}U}2qI}&o zi`dt&&7V1811uNt%88QVv7EsA(r?6^5=p&K zLmYnC$Idok82bVN{oG@^nEZNw zGVY8ySsL#J=QBCFHy?%aeKX+FLK*pDArCIY-z(Pp=V&nO@VCR>4{&3EFQ;LRFxZ{} z-)t^7hN%GkYA-tr;WtztKMLo^G_v8INc1>AEQk$f-zJ4J^>O-h>gm~ZsyKNV0q2Xe z4UL034Bv?Gx2SA$sop3l+Dn}*o_dZUw-3i97Z&q?4e?(yvmk0Cd8zv@)RsNzy*!JB z$T5yxXfcv{6TKG;gECmT-2&3-<7oMRrYbbs{%{s6&~_`o6W=Tu(3N{m*e!L$xTNkm zrmrBJ(14*%+N0r`+M|23u;QPQPoOl6$e0<(&P}+ttSdtG`b$e)s81B>SFy2s0sbb z9~Qh+$WW%326qhAk4hIA+AUXN%c?`xmi&noZ~pi%tat(W6Dy7mEBwTYf2f${7z=vE z=b#h2x+{u8uXY@9!pzUI^I`$XVK8~gF|b$%>0d52rN}K5Hj8&>?y(4!vD|yYIA-kp z3~%_^Nqd`ooELTJkcq5J;tASZanC4Tpw``lY{q`cBYu6s_YU4IP9`mP+>)6N z-fN*26j3$9;C!bv+;ghsMPi>F#wLYTek$6==%%_~IFjG<6@Bbjh+A#Z-LKhVNKC9B z#j}vwE@HO!MR|wBp-ogEXRsLMkGB?u43{~#-x2qRUdBY`5lqlJGP4J(xdjiAz@G+FH=&y&jDunTr#4$85(O_y-Eg%qiMGjbpRAJFb?5=^Bu&38LLvTz zQY>HD>`FcU%Hn9yS_AN1j~o}&w&9XJR&a@LL}RjGK5^!IR7&dYTv9(I9P4`{)}B-| zM(K%cMx2oEJ$@K218#YYkQ;}r8MgVHrISpQR6Ia#7y>|@pay;eD_$U_8oi={#0bEV zVH(h5%Xc__KYln)Ie;Ewa72K?8Lm?UmAuBBAbQi50Jw#m`AYtH(iIlc#dL~u+@)uS zV{HC$(Rsd5`Iu54I189YR52h^x_rU+Njzz=#zWT!-Y7|Az+5qWkP6Ls1pc85u@XQa zd4RzNMZi>keYnz^?Yv&d5k6DER(#iiJ-8iL1EH_V$bh!u_#n8%WPFa6L&5>l2!2yx z_(D?yWO|O4B%)w4@qkxh^g#fFVt9cg#0ltn;-I{wV~D)NMC(Iz(2NMAjKN|T!Ysdk zGQ&Foql$r|FCVN)RJfvrvqqgB@GEBRCbqa-Eac8*&M>ZGMkYE>V&oI7vM)Lk(|M7O3R>%QGU6z>mAa-OcuL-cD(>^GW+C{iM^YyG@b{8{U@$r)Pc@i|eL=_g z{l^6h+lhl~?S$n8r^EwZj?jYu*o!^b8GdI}ahqkf^z|FVr&o4nwaJvs={KN8jh1<1{HR< zo*@0JtJs$n4-}#JcA{q@vq5T>iprxeb6Yzz~(z(U7 ze{;ogCCfYk|1($oF(u>ptSH4I26XL9<%!#v(dUF%5#v9KT%KU#x~avjUwxo+(&8nC z-*CsSl5lgzK!w*j1k!Y|Q<&>qsRDUC!vUt;)BQ48 zT`2GWH<9d?{cWYZOl;1sWOu4ydurf#xzLC@Kvi*sFo=-1jImI-@*??5*n*3c9m%Tu z#}QCNS(qZD{&Xvc!@}?bCx`vC3DuaiOf@$O;bP6?rGTBpaq8W0YN2`9L><&oU6&zz z=(i*AIVUL%!l{%j!YL9D>4H15zg(c{8cUJ>{ao}tJN!{SZG`n2jKecYo9~u!8YZ(B z%iQ60qC>^j8x2O>r5V3<@!d4B9(iM=_{d)VT#F$}kP6wTvwWJCqBGe1olHB6#th?d z?_d6^R>cS(n+mTz~@MC&f;n5)U$X>v*O+;MpO@e(p#32c97`il`mJ*(|=U8cQbZe4_|>4wAEDo|A)Q2|2mvy_n#@m9;FZe?_1Zv16@4!p zVF@t%H>Aw&D*ZR499CNU7o;qP8TfBVSt0imQg+|`8&du@@i(OWz>NJ*NcmoyKVr3z z?QtTPuaIckr8)Ux)j>1MP~ppe0?k11{t;-VLHP|;(lsom$R@*jIQNniMms|_WUGKh z*>oqWHI$n&+LbPMViHr>6+=qBD$gBLbjC#`V_fA2NuuKu(qL~j6SCAy1LvV z{FJyz+SMWeBou*>w$;Cw8eBs7Ixk!PUyyRtA4u6{?ATiRe}1wZV(VR_z z#&oH^f0>l~MP%bG?)+YZ*;*wiYa0oHX^O)CAJ)zaj$%Of7uW=v zO;-ujWw~HibbQS^y~M9!l1ib_x(*86a4#dtI@jJNBEY6z+(|>;eHO-^Si_o{>PSJJGJjWs%+Q@!6EVxpcX0U`}A1Z{|1u z2W?(LX`BADr>u?D{mbU`;k%MU8Hs^Vkx?R9mx%0ec%HD$etXQbtDWP2!o~+x$c8P) zgNL;F$8s@k0j9>Ud2UYr2MG5e)CfhJ@^#R-;QzzsvS5?>@tco_%EB6RbmeBT z`8)6!4VS`v?Ps;CB$0IHeHLX^a{UBhQa%x>F^iD7=%|GJ`vnRV9}q5pKY|zp^GlvV zSV)gc^d*+%AwX|$4&5t-s3vPd6tgdL)i-oTltQ$=6rWerJPc{(UN=>W$?*?9;mr-b zidPj3T&}Wk#&vW(2@#+po+X{>?x}}ISoAJ2EXp_RB>xXy0pHWg3c|s~LJC&TT6>$; zoL0eFwm>!gK$}jSo*oNw|R4$#j@XpD>!Mpn_>2HGRnLWARdMvz;FFSPuHZ##`lL8J2NhUhFYMb16OY9i5p$e(zO zmsLf6M-U9YJC9 ztkUDi5taV_HMLhv86G66-W;3H8?XcbkSdZ8SKSqm!QK=RvNM4ffPV;(5i-{e_orS> zZa;p!YQaG*q8=>?o^|2#DR?Wg#m{mc5bL^d03FO@<)fjLMcY!|?K~OV=86Q|@_gGg zsrS?>z%Bp@0G}Y;(YC9P11wOjqaC`9Y7Qk_pF?D^&{N!!9;%oO-o21iJ3EfCYeTnr5xT#erekTZNp z=7)>fLZZsW$}Od&>X zu43u$@IsRmIc`!!HO5wOhsqq`5E2ULZ*W@svuv##{CY57@tRD&l>p*{q2Bh-fn^TE zp9+Gfb;*Z3)U1j@Js0K&kfnap@7~0KdDzxzj#AYs>TB^v0yTKVptU9jB9J(*RoO4GC=6X>&TCMKu@kR>1FW2>1WNzrTz*yOA{Cak=B7FYERBcP#zB!_udlw#lc9wy9f(wPCXq zd*wnA_AG}6b7k}QgGZjL!6((lk|!(X%tmx*;bHQv>r87km!+vw2lY1k^aCl{GKU7* zL!`;$yWYi;Gc~k_j7Bz%Vx*TlmbBL93!pJ!r-2UGtBKfb z1yt(81~Wi~b=en0F43G9Vj4~2ekO5;?A-Bo2&ipQiegp1d7zqQ{%QfSCIF_8N`ON# zLSq(ClXb2QqVui4rz}MPJ8Tx;1xcb(v#6^sJDWyPBQoWn2c@Ge0h8p-Q{|CZRv{@U zsqB7YGJ$1EycV)Zp}Q=A5KN8~+*UwbTlZ*;@l5aP!&l(pa6Bi-xy8f_f0whe?`3C0pyFT;3cd!7nL%6NJ1s=sNY-#J0{`;}WP7## z*Vl)1gcib6&eM!H<(qpE7XIcz#0`|L#l%bc@Ki*bXRwFLTPx~fDG55S`-~#V`JY2! z`;!3g-a#{R!i&v}-QlDawm&6=V3ccpZ6X=Sk)4r(Yd&1?Ow#1_I2;mm^ub`-4gj+5 zevKE{@})-Gd(x|K+Q8{*ZC+_lZGw!9dicw1ncWap-hTINy5)fj4tU>wzk0`eF6LRe zsEjC90nS#i%nT@gfdhN;aWEZj%%2$(Y!w)ZFgrNO@ZA5wa2M4DT0nhmZ`>fTO@5|5 zP~OnEXnF%ArB#@P)lbcXosCVMk;F_en~>FZl9D;yldasFl7JJD&Rm1l$-U}{EpOWY zD>3zf&1&6DMk6b}&Ob2ldxzj)|GVoCjkBv#AuKcw`q2`C42?+4)M_vMa>Ykkk~$RNeN9umHN5JL{TwUvzA<y0P6uAVSOI0JBCB@~zC-O&v9+Ii>ls186B1H=_Y^2L{z#_jv_9SH&sW5jPV|tZ zmY&mE5Qn6Xcg7!0^{9Vqml2O-M8TuR3TYK&>osVY6{Y@x7#V} zZi^!&B(f4}zoc<(=d%%T5s5iIBi2|qln|y|2VG(pRI>JN6jY^7=aX3C4-HJOEn5mn z4X*052!Zj0ta87AbPA zVg!Ce<;K+KANeJZQ~?n0rVJWy{Z?i7_s2bQ4TD^&L&4e6l}7PylGe$KSwY zw`SD$4Jv9@<#5km4cHig+4GZCLl-g}U7Z2PSC}+j&yTK?WMuBP&CYqMFg{r|QFo`0 zndeXs%F_T{tulo@@7%Hdx|uzFRf*O$vZ~i=dy}EKthU=2U$QH^Xu^dK6IQ%xv4FN0 zk06gk#?;WIu|rsKkzOag@Z75lqRu2pj({R5!%7na`~E#AJInJ$F-|k!Ye8zm>8QH+ zP=(0gr_-6D6;J)k0nHEf-`k`cVnEX`CX5uD9fA~;=t=#}7`K9!@MU_~6a|>a`}pg! zHYV(ZMg?o^d3EKnbCC!_>iKgAk@UEVLnIVnt|!E;PW<~R_N8b_v2^)!rUK%5LE%zj zO5&yV{7!GP=T~B%Kp*LQ6$?}8cY9;6dAVk2Kc6gXziMUWq=sRuio2}92qDytj$ois zr7oA=ktB>n!feDKN5$ED<{50s#^lTsz^v_gG1T$Siy5V{4&+xmpdxUUCL1Y~t3r6E zIoNK0Z8x%y=O0ul0o25k^~~IdV2+Zkzh;dS5Jde@u+LueJj~wE!dl7~>gVu!L~fYr5{P zGlk;Y1UHPLh;DK4TsYKv93XMZv;+Zh-H+YO7hVjgJeG)&Pw^NMaks=BfuR{ja=erA#U;w__oxd?P~!WUVy$iama7g zvTRYt5itz|ptdU3BT0NcG&)rHkzxhKvkWWxD-j(WMDuVP1IAN&mv`F1(9gdI&9diF zC1(qShj8)Y4pJW+y5iSLKonTqmyu4`cgVgB-54aJj67^A?fG($iIZZ!Z|Cp8hi7MC; z{}fVfS)F)qrZ^@BbQPMFctk1WLuk;EsBmIT@%vLLfqpkV?%{iC&y_|?1GAd=A!g4W zpLjb-Z&r5~GCDL9)F*dlvql6lk|w!bG9%RYLH>Su^~*N=;UkeLr)#*tqi#FajX+6V zm^rv)gj9J&fLq)R6q3F~H$Mr+QuO98#t~KvsB^VD;_G+GFJQ z6(ej?EV4WDxIh(YIQm8V*DgDOxX#V>#{sP^>JBm%B68fKdMZY(9ZYaOpCrPuO&Azm zIyuyk8$%y-YM8Zs`)%)sA}|TZ;)TQ>4p#xAN2n%R_FgtGUWaVBW!>s-pB9=(nLK`5 z?nG@U+ifacOy71@d_6f@gF?6YVr@hcTk1d#T)lgLpS2rs%8vORPj(dW#YIkEFGnqva(Z0F_r2}q6z9#^@#zSbd~mRF0{urN>x(j*S8XK)Vf z*J4G9(#8GlT%5%BbRB!Jm!PMKu05*AjvXyw+N!8>cq+jJowhGgM^0l?(C9)2(FRMb z(QChw_0X7t3+H|%^I@>SOpO0Z-sZH#F3ww|5^!%|miOF4e2)Yxc>`wz7aY?;^^i9#4Z9%Zy?ZM0e7vNo%e z`6JpGyhmCZ44ucLmG=WIpNGDv_kvY#GahB!5;YY43eY%ix7pUW*$$#)lbp=1PsKJ% z;xZX8Ul7IoIB9g}v$n9|&!8N(G;n&Xb#&lKD5@f!w-BjaP$Y*g%9w>xnNR+d8SeRJCj^~2p=pR@iLh7p^P(XuwS9XD4&HiXT0=P|PeM_`Q zyR0oR15+1bk!JG8ZRK8^73lY2eJg)>J^sBazkYsL9+FH-8CQO zGXp4O#WV$wRS$)fbuXg`-XUygv6m%mRfUokFt0uw(7MMhLXIh! z^JhKguP9EuQq@>w8nQz4QOXHfDEX{NRZ^j#%Lm$PZ{EbJix$Ndh(k~~yZdb9Y|ic& z4~=7hsaaVb!|1p#niMDoitC zqL(Vj$sq~=3lg{*m6)r}DVUaEosAw9_(_o4N$f}|=czaRT1dm}&p_$E!g|7dP>|zs z*C^=<+t|e`Yd@R<9pv&j72a<0kKUU=Dk|5-8aHOfI$FznX4KN3_3gEJ?a5j_+l2QRB4WP< z9@mO3zopfA^gyCynDBJpKRZn79;)a8+~VW(7HV&ujXp4?R7g~77Nmq57ETOjW+$c+ zQBS`JUz)KHH8;#AxL%uFD2MIoc{g{;5|4ThLH3W^NuIi?ar(ZF0=b{Y;o6@MUJWQA zR(0vvA!J?=yOIWZqPE%l4T)DlNW?rOZb}R>3c8QlCbJDPf-mC>=H;Oy#&WcG`ZLk+ zyF)8-s~l3@uRvXL!J*(yM;_qbO!_G#vZ0Aha60>!73mC!mGq3gi{ctrDnw=1F{L7trDydh@y}Qq6$KU8|WC zG#nkrnWwnQK5t64K42D>QAZ#+kD2t@_-tPHpva(9Uk=S)=WMudrrd<05!J9lwUj(8 z@lZD(h(t(;NwqvzmG)QTGfMy;%Mf3j9Cq-nP#AUl?LkfB@rI4+qtVl_q zYYqKsz+K_^bx8T?0haxhGg1bqmqHc`@Ti-w{ft4@zd zQIy}FTJ%!VC9K88@(7XWKx#uUhH&jJJ5J=mXhMfEIcb0h@C9#-=!D6~#?oz(NlQRU z!bN)^@DXfVdtDu$G9F;bfdt`W)hB94@Z~k^t;UHMo-aky|8zbZ$IhS5q296Fnd{4u zHxrL?5qA@xP+Q=EpozV}8I5aU+!T2lN+EzXf-m>;tzW7qmTm2-VxngP6MUY4ueLDa zwlGnD4oeRkWiK0j-{)BYI6T_EvkqU|J=q@8Kev?K7X#{udBZJpFRBly-RsyRMwlQMMsCp9{@v>Q3%EB#-!P)YrD z0^|!jw%fkpO{A2Xe^R66`?m4nLyT^gETwEz1c=$f$QhQi)|e&__7;8`Q(RW!$;aIg z9SN21A4+=8h*0GGOGnfF-*vRtt?`~E5mDHeFlAN7-`|(BuqAxOADqg}>68y$B!YJ)hFud<5xtg~dvo>{gfWyni2)oh&RCekmfXDdbK zM$6*=R6e()nDj!gnVTsgs#|?wl16t(qHBpeVY0=on^Q{cu%H0EvCPYPC+!2sW`d70B`jv4$YrwSQ3GxfBzm+cWwkaZd|S|USRbd~I+&yOYEYiB`4m`VpQXzNQ6@Lg1WDb`dWnP9Al#q4 zE>++*zIarSuCm^-??pg1n#Q9ve{kNKP?7m!`cPfI6d=QWQ>hw?s5g*=gB_y6eOLUp zbK2G$u?o(zdl$5)RV-^xK zh%{_UItrG9=|=({4;U<&E{GUvKtUNs?zKxThC5>j8Sq7u@S%D~2BRCMm^GhQ?f5u? zvxp31JdH)5kdLt-WXKx%ICW1CRjAifzRA-v%RT79@1YxsRRG^30FWh+r}g?3EmICx z=PJoNXEmpmE4#Mq^i~+b#AZlntOko)1&cNbf4d-s~a%6l=O!ksss8xKO$@~yr4;%WiUL455n-G$CLtXk>>qSU^{;?w*D zv~=*6*}W0W$8%6qP^Y|QxS<+pOc~>CePGH0_8Q5A;fKz#0J7*BjzH??%@vJ@Wt3Z9E{;^qVk0v!elPfS9aplL@SQ^b5viJTk zlE{gpS=3&ESTyenWxv(>we1wFxX%PlYrtFItFg{Cvat3QH36#F=zQos$S}>PSK9VZ zuhi*puhi*puhi*puk_bnUMcq)vd6(<>#Zp5rU@TkmU@tc&m8 zo;F04qr&USYNkI_cd(SyJOD*~Hb#B!e5=LeM?PNS48@H^c2nv5VG7bi^R2}fEc3yn z`}O4Y+8P4LWCxV)74C;mc0ca*fsmu6r}hoptj8n>be(GNL9HPQ8@ldSgDUxUW&&p zrc6+;gs#8^M=x6nuLmm4Q>u>GLW9v|2jtm$lKR6)w|VriU7b#4nyu;~XzX8e#89|v zs#xBX>uW#1mzIm&t;kg{B|!!pAKdmSH5R4XH%(>wYbI5ajY zwLr)n5!b)hdQ{c2n$_tPlRtZQ@S{ZhL&cw%{9jePQ{ZnE4=;FD7GSJwwBkuWyLD!6 zmu53@ng~i7_tW~TseabF`kqJ)`q33LS}7 z${Bu?C=c6K$gQFSV!Et0+R;peo!SPAz92unn)^oppOuS;;2&?`{moIR8lc{qB#*tQ zD_Lwgx&J?j_+%Xlvbj)fj^k~&m!Rixky0@z*^UtY%SIZB1luJSrJ8946Kr8=dk{>V zkCt?MS#(}97%+5zMC5!RL3>*WM3TILqyYSp0d-scmDaM7O+f1kFDtdu*jW}zD_zBv zo|=X{IWvJDGs41!QHX`p{R&oiqQhZE$EEssWzKO)TdzN$GL4Qv#9n1cAhML8ZGk5> zBFk#`+_LvoZT29<2K*ab#mMGmjmhhW~GFdO*>;|sa5iNwvf zMH$GJU6gFOwEQtjTfS#3}V6#aq&3b7{|UVCfG9iOI^$$w$yfOL70c!RkX(8O ze;Nhc+F3c5;U@P*fbOz3pB;ES+)?-4%cxt}cRKhScrV(=3HdzB0V3)v0@%7qmu>Bj z`wL8)^F3tS4%7(T#w|ucBaigW@_GKWFOmf4fnZvhoYI?Z7)@B$vq&YylI(TW;NI)2<~VPtth_e z*7K%le^-Gs1{$c!95zA5BLSZ^NT}mjFm&mFFrkkVKaxyD^x*DJ65j{`OYYp$Y^0nN9*bbR;7USwjjPt49rCjj(64no1L2z=NwW}q(Z~lQo+Mi+L3v6L5tbhvjrRs>2$?;Y8^{>dZ zU{M*gN&2BwP&|!5Qbxr9AbXQ$m6`(~(HOtc!;_8yZ4baMupNBD^l41P4K~~GI+iAi zv>|EP`P*_<2qf2K9Eko?B|>BO&qk=iJv;%)`{PN51gbn{bMgh;*z)P1&j zk-2jcpU6UV1?R-*y?%L|ay!T>g4?lnQ+kbmU|<1J#tPGHJ%MqvuwrgJrD*{=8k8Rf z6+G=%cG;U4l-Mboi6daY{XQ4We4xv71d1Ol1g5`>3fg>5NsXVTNGS3qWX?YV1|<)*=k|1kr-1Uwv&sD zm%&I^WZJ01sx|0z0;Em`TcUz)QWh`c>}y}Oco9GwZpCj1#kDraoH=WxNjnko zMY`Wl1Hi1e&W+_W6E}8ubbs18A%Hquv^!n|X17IMxUXaYXzDFs$rh7N6y|y@P%H&d z?PtlTYv0p)sBrdjQk`rzL=YU4;dJ6yGiDI#j#_mt%XPnY_jATytQSC+{$L^28L zg}FbVWVH*hVBv@Mt58rqrtG=Lp(c8(8=y%%rAA0S~O`0 zN^BrAas+LxTXPyYrd~OalW8_(biXfcS(6}rnlPvx(0J;EJ!p$PzSiDx-{QkU6=_Kp;G0plfu5bC8z%T-LIybx-QK;7-4ywtCbk79BqT!J4n*hWI`e zo|?}-%T1RFZ@vxE>mdAo$it7xz#yhYzzDp=q~Mu+O}jZ>{)7fB03I3UCzj%e=;uR97EJ20OCba@qYs(}q>g`4 zxhjs*2~ofl&#kz<6~Z1*jM^E`$eY1UpZ;OM65%L$O&gi7%T1=iT_WAt_tNvS37Lr( z*V!A3(VnB}_6{vg6kGi$-u?6J=MuKex*UXAo=Gp~Uii*|V}Omw+K>O3@Wm9kMK^+s zo4cI!wD=wj<@(vvfSFfIs|Pr?N2b`ew?D!>ETOUMh?_LT*S^wA8|7EK2T zG_^g71R*7)Jd|R|^IXKv7wH3A69UQZ%NP%Azo2IIOqs)zCnRJ}wE?jfT@(FCDk7Vb zeWP#E@r7SW@1*Q&pcx)CUKC%4%KBWC1mVCu01u;)?_S zWyLT0PGjutxDobLQ0BUpp5mdn1${B&L__&WKq=9B421T)+50qd+>6k(LIRN({_rtQ z6PsJf zXIfCi*P6(a9(pPK%?E1OBG!iUt)Gv$?LmgXrn~HUd=7HXc%Dxp4Pk9-;D>sZtPIUy z?NO^7kx3usz~4ob;)>w8EssS3-oRc+o>88$KllXXN_7f13*;|xN``)JjEd`PYPNY( zBT_iUzx00#SAwIFX+K>y4$2z9=^$0xp5^PZl`DGu_Ki$UmfWT77T&qzQKmFmzWNh` zCVgY--h;V^y2auNj8Pol|JZEO&i#Xr> zn3;GZRz_y7^=t3Qy>eY~-MF9VAce>b!ydd5hWTAb@W4bwVC1?1&!Od!Tz?CuI0 zC=;A_1JXl?+Z}ezAkj*~FKME2q#HE;?3y}03WleRe(Zz>Zs1A}aN$6hQgUG*scj~} zP(r=Xd3d#)b%Ec)vRZPM_uX&+v&UFllZo3@yy8xf?ZXJDYA0aX9_vB&6-jg9S6|h` zW{Z7Y%Z*TS2&LJKh75exWH$4WiWNz;&o9j`-yS?>w@Rf9n(y}iLqX4&@!tjgCIwkg z3-fEJBUhK$No3CEPti=QwMuCR|5XVsD=mD}_E&<3UGg4yAyQi^n>MljEJQFW6Epax z3b=HQB#VE>U$ZtSVdcW`b+G1QI=fiK<#bu*j@%=}Z@{`JB7XJ~0-HF|U-%16Y6Q5j z*S)8<;JUW!E$dl$t=&lNbB2Ha(X2fzLr}ddL>wg|1*}UNv9X8z3LYJiq|P3rcX-*- z{Oh$Vy&tea0$PXVs_&4>HzPe`(CMt7!ci*pcaB)yYu`ZeEhWwDtH^0q!6~4WB9*FKj!y$yj0wEnH8gqjH$XIUh5t^J95^O zsLNmX0b6lX$^7-MJp329tLHYsT}Gbk@3l{jhqqos7&*(ki@&L~{ zs9Qr$(#mG${+41ddbOOaBnu zdXHmgTY^^ats#y7qW=Oy(xruWjViPWQmuNh6f%_`0;$Y8K|*c4;h2J)2e)I1U>Q_; zuX|oiPA3B5>#29ZL(uCt=3s5;_@pNgeD1ZAzCOLViVI4Xm%fz^RJ(^IPi+Fnt!5zr zHfX0)QI98mGWm<~FfUWY@BR$DY?K|^vMy~I_GHLqfzu+Ab;tKwWy*B+s9*y0cZk|& zpj*{mJp^%^EaW{>F}eitNo>T99*Ty^ts>WGeI=WZdCKzTBWAJM3xY5S=w_w{Z7FG-*eE5w2a8&Ufa6%^V(diF>-_GNG6pMMH&zSt$ryT|7apbORqSO1-M5wJw^_cRUH`gz_<` z1dp}4PlG1 zculMrXcbww{VDa4=X=2I$sPMO zzA{KC5kXVBQG#e;^TArGwCTfc981Tae$SHx6{}^8XLe^l2lJI}WfMJRyk!@4mV}^~ z;vWgeQ#;s>WM4+pN#HCI>%#)tcbh0w`bO$FSUAAN{u;jtK5+*JYxmEv^>tMDcQg+C zGa3P>=LXI?eD$U#&69ehn8@o(h*O$x2aYn5$iacye>k9BnleEO^Qn zsvKFU7F6*_H|Xrezx`SqJX~O1CbG2z zeN8tea)r6V*q{n13VXGRYfUZKri(efEK64rCRFmFMZ-4Ub0xWw*q{nC2~n;b+U*BK zwNX%SrBk0W2r3L55G8_}II3Gs->MFl`HrMwTF>2Pl{qz5l{2Nfqa|EObSym^p*k^> z_FNdF%J=eEM$`s|EoNlCn$+~qZc20=BsxpSOhAnPELz){0P=b=HM%M#g#?LIRcp?1 zVzY)^Ct4cpUiqipbHu;5d)^t+{Bf9d z>rcy8R^)8hIxEd!-PQZk?m0=kRfd#ivA{*ajsr5Rk56;U_|+U5`@gCcEmg z;3iz%O0qmB`}shkP1Bz%vkiIEr`(gFi!%R$ti(FrlB>u|Rw1ptNt&8f?N3?$`|r?t z1o%8~UYhXx!}$!K+YZ>3E!mLdDK8z|BaRxm0mD6Zi(#A>_%0{7=~qj`-}mxwl=h21%gg_jP*U%2x}FtXEe9gMx3C zzfh!99aJ$c^zEkok=a{a_8S1Qd~RW+`CN&ct>Pp3P}$DeZ5o`un}p4+Tol`AOqQ#P z$sunh*98l&SBlDUT&Jhx_1)bUw=9i{v9U5;UG&?eSsN#zC*ZxcvM#_{GvV^iS2&uH zEgnQ0oXME#Gd(6oPV0k#O-#2|{?vRQO9Rs})w>!5<31hav$$YYpU^!vfI04)?3%EO zd2?Mbd0Gu4( z-LiwzxI__A;Kz1nevm%4vXg&4{z2z5(^((l14c1x)Wf5v^Q!9=bbU|&^ifhd2+n@D zL69e}j)H)0sXH%jC$N`aRnUNLuhD$-fFn|ePM(io5lwUS%mRg;U;!c^K$RdV8_$g| zp%6P{^}tG5FvCmQVSaiUQ174fVoz{y%>`;tP3v_Sk|GZbU5_8TRMsItF$;vb{XG|8 z%1Hod6a>_ddDP{-LGEUaB|acv*NPpIm|SHC+Uyhtr}AwrAPSNb>0#|{r-q;t@=;x( zS>tT(cmlHNB=(=yUfcWc)}Fk2B;wxiU)Fx$b^&eHyBhMc)pZ3(lLw+4(&4K#YN^+{ zU@YJy3^}VB@^m$5Zo7u4iA=m0WslQ-sedO9@bbGTH|?=WC0u%14-pm zY*$I4STZFHyd9!8A5@>UXJ?L~I*@TGIlY59nN^1APE0D;d`w;*mj;Ou68HfMsH24X z!-BI#>Q4C1uc}^5q*ZKtqpGe1>Y1FrHjq11z0;?*56t!bHf}0H+6S7{5N(BxLff0m zRL|!Q?4DNWjUe_zGH1|1r~FVduS{^llbU$rm-RkC8ZxMT`|Jz3fg!&RZMu!?tp|O~ zEnjn~9o)`5rtNS25QVw>cJ-9x8_t64z&qVuU-o(@s<}e;VkuhyKD)H~PH}$)*~e<; z3jHm}o-KqM+u$?k--GOH{}E)5YV`LYdxv&UQz)xghX4&09*d9UKY;mB;c_66NalG$&Y7((v zi4K6g{q2bv)vX@?)GFBpwBxtm*08Es^(JYYM{kXo<4>vl8`;3II zx03irjF6{v!iG2dTZB!`b!O)fQK@w1=ij`ax}=SPpwbBPu}${ zJ_}mXtI8`c73i0r$NOI?&O=4eCqi|K)lIV>Gv@7tfq7Z#i?~pKn%xzXU)e2ypvAJ zMeMT0OcyLLpLBr19*OhZWTGh;u1)mVWHR3$&P#LOWXcSg+GlxaH<5^05(|%M8p^o^ zV8s_a`V6o=*p;(jijlb@-x{EHmbZ{-xuH!cCUJ0MffZAhhOjxVnrvIb!A6d20}SrQ z4EDD3p$Ul{;$VX(f+!H(O1fdt1iYC5q1ypG{#d2&;p*ws^6yP+6@=j*yvZSF4DEDB z#Klfq<{5klb_5Kdk*am4Sw)=&!orGM;PE%yw3yYqS1CCq6#Au&p>t1gliL`Y4+j!F z4XqbXraS{O%xdRPGb{|ycOcCIPb5c&EN@@($R1NrA|eotzfIYGtX)SDs>X82%~?xrR%T8IH9cY{5@oAC@65IAv{pqyNErBWK{6H*pwz0>FH@XgEt z!Q~047Z3fr`#9Xl=npUu$9ASEtt;=%u}=r-gdgR2ROD=#x6;E!qzy(cja2x?3;blW zP<(E%C4$?9^m(j0_#0B&KcLY)q3MmoQolcD4m~W6U2q!dHi_*$tJVC3em-Xm7~yIf z69Q*f4Z)XYe`2;cvsCPIL9vo8>ep}Q?6Oy>qAbp&Who(0GqDQ)jvQyIRn%EtjACTQ z>Cr`JD}>TGR_Sw*ZAJ4f{bIQ+oDaWdHpx)Yjk_R*qh!G<5bkAFM`!Ri;kKiYr$#k4 zHUBawu7DT9_r7~0P~Iz^Pqre_#xlrNba|HVILl2_Nn^{IWO3`z)IQQ;<}L!1+HKGR zPFFN*L3`P)0Q2C1Cmh?t5nFQIxqGOqtC}i1DsUM}~%k$Z3RS$E%e^%M@w$iHEuAszWh-jP@-N)0e25K#9 zlawi;i)1PZbR)P-w>QwosO07A&3Sz5+O_8gy0sx5PWHoJhV*6#b}{=#Rtn|as&W&; z7QkPR`Cd1*lcNdaz0!c`wQYI>oY4nw^OuwVW9!#8Bw=l?3dR1-*#AL%;*7pOAaDJ9 zMfJ@+gPhnXgS)KmH|_t^*#ANNk-soMZ>suk)>O^i{NC+z)|B7J{J!*V_Q-FwZYq$s zxos6kYh&Q??a@UsU~5H}pZ^4R)%u0lbL4(tE3RwHbcMUQWeVO?P77~FE%Mg=A1T&g z<1BFqe^RV@h(q!Y(WRhR^GCjUxNUjob?+%y&I6%b=OK7qPRx_wJnEoYKP;wg70 zj*ReE7vm&?$%ha4fdLc+l>)@!XafyNnmZikN_?+F%ZzoYraE)=#kSJZQl&b0_>J=z zNo))>Hs;D}v$c(J3Kqno7A&{QS`bLz4K+N<)kDj5j7d4ZZh*`%Jp_@y79@qtP=Pmm z@6ie@Y235TIG3>9g%s-uXmu5(SQ9nU^Uw;pFze*Qp?0qg4nBM-bhaJJ8j+`A3HB~{ zX?fhe@t>OK0dq%w%BYUcE*cihw=EqFl?$Lxur!cZk`_fNyj9QF3H$Jg+r-uxm&J&O z#cOiR%Sipc!ps;ofTeE)`Zaj_*hjebusxlAHAI=vCt18085gC(E-YTB~$BHQI(d7R}$)`MwS7qrmKm!qOs*m1k4WfQy-Wx#MzFt<4=dresQNW-edm6p= zMePUoNCtNsC=UHFkpwLVtio#c(UWD9JQ-kwNhwPn5`;p3BPsAWH1mvO0}SE* zFNM}Gsa(IHu7R(8sO^JA9>KKrnq0phzA$qn2z2jJfAF>N8+r0Lijx)wWrNHsokk>#J_9ScIdR*-0Xy4V9mg!OY|lD{q3JM7SrKlvncl{>%8ynR4yP&2(AADlyHR0pXM zCOz2eiI+_3L6n|f6LqYagpmPV(|OW>w>JT%a_LyG_b`^i_Qz)thSJ)2S8O)^t#}#i&EJcc@&CPe zS(wyc`S$)_0=(Xjs;Wr)d-I2mdFo{e8|2yYmHuw-YbG;n)E6|LJECJy_;7bY&`d)) zsRCpEifs!;F}3?cK2lAI9y)k%uY#vFFQl%uda2tN(p&wb)LSMX#1d^-bKU?iMbfjO zx-BqMxe6>t9KlihqrWjfS;0tM>i2u2!~X1Kr!D66z>x#iZ_+Omw;~=2S=*a&^G%N- zaQqT%xxFc2NfIY}LcZQf;wojy)p|~rRE+1~Ne3Y=Ck1J~S3T0UijE2!*#HpUh7s;* z;ZGJGCBn%7M+}@Jx|VXor~-I40Ybm=z5l#O(aX}?q7~ec*&qnUH+-H+z!2H$42_PO zu);I+=xOs6L?d3|NxlFw1B8tlvA`3oyJ9)0c`08wK*;l;3$1oXaFf>*Q2+-LJ`Spp zKrT1y-%Do~MB63w)vqT_2ahXBhNNg^e#;n{Qz9Y=iLpZ#bP2y>6PzX1UmyH$S@j*% z1ja}(LI29CKYW&?nm~G@QXcLZP!?mm*=gq}Y2bk9@C4M4fo|h52{Afg1NP_CNjsu- z?YT1kYAqV$Q-M!H#-4sA-Jg$NW#raOg0DZtM>Yq=?+jkZwVO|wO|OQxExPUwis%YL zuV<0r^qe;II5K|BWUSF7c6hH?J_CLKmD*>NwPx%WfL$>VQw+76kAcxD%ut%(NLwRtD+QM*MQTdi_T66wQ9V??=r)RMlSn!t}L1p zqjn<1NZFY+C!V=*$|@xOeo;-gw>WF66OKG7wx+rM%CPVgJP)4#}0u2hMXx@rw%RMeN|f4JOJs#j$tt= z3Oo(aQ4FK88au)cOFA!G7e3lQrS=zs)v#t163-hBnM{EkV9~KGNEESds5B1Ha%TDM zwJQhP-QTI~dYY=1uYaPzrHX2v*Zjcl!p^K#{3Gqa`$hI;tz%1e6@5sG< zY}vQs`#m=!8cp=ZoP+RV2zM|aBPoOOZ%{o8XY}E(!hEin-pJ8{@n5XMblWjM`%Ufq zCjORxQGGC*t0M7lLLdDN?e)K*-TLvqAZ}{sFW&#XQt{C_l@RwA)gOJcwEm6$>leo( zY;P}hQ~SSP-k*O_eM1FLqdSj}c|#6=qr38N%J02cG401&->{CRy)tQ$!D;~*{v;34{b*u=1ou`A#pZD~IWQ_&?YqB^ucibi1xzut zD*)^}FQn`%0Y~Te|F4YtkGua0DMmv-YR5Hh`khjSvgbGJ{L4 zH>Z>Z#bn0EdlilZTU)aY)N2k8wDZgMZI!!p8!B`{`bMlu1hv_dFY z<${214eQkE_e6yw0*8*yTZT1V0NcP0h)7fBa7@=Y9HOfkYe|zv_(=evqTLgmvJlZ8(Pm+h=irv%1BL4{gtNzS-7*>jjTqNh^E+%PSG&NuOLb- zsN&-7e_C7Rn)Vl)HMvG!V2mM4HB~7^CC}?*Cbv>@3n@=2oPs5#SCV8sAjY@_{1;Z_U z8G)8KX)%596POUR6V@$G*>TD;UADNJj33-oE-1$ET3E_V;0@PiK0OdZfHBvk9nG~( zpSQ~A%68#FJ&G-l%?MXgu;`VQ&Sc%GpdivBEaw~*+o0NH2?o?_G{yD1osyGLI%$@& z+NP@V>((luLzXWlvr~`|+MXX}ii^Q^DQi0@PDGJXL{viXY;}M^0-vd%bH4Epo$R|O zVjvP?(L*yTtnaLZH1qSfw9gL($s`~GOu>#6Pw8?0$|Vv&0WAB8lR-n&M7lhz%~Sv% zQ@Co9-o$1CrZM#`O2J2|h77IfyH);%(VbQPRXv(wY+NI}!th2Dqusdp5{ZL+M64{% zB5aLl85CdiP+lJ=L;s(#0&tuQay$$1XV?R04j^R`6aN_nu=de-y4S^{yw!N#G)H(X ziyaQj(H5`lbSAR+QcbpsnyVrmmgFnztL|)1*|=F-0Yp_yat&BEhZ^aZNGTgNC1i9t z)oo}F(#TBQdoF`ENv%UThfSf>#uP2m8y7^9tgg^y<5qLaB*<+>_9Hv0m^8ABdJ%&| zI3F(VGInx5E3u%`Uajg@2#|Y-9mMxkC26<|4Qb)f;Y!UT`um;xEa9k0NO9<*L-0J~C&cjp6>639Dy`HuXbZ-3f-VdXN(#;`Db)}7fz@$3Psh|Cfs=H zh2%DeU3o8M0je3!;YyVfj}&M5 z&QUM=lJBO;Y3V&vyQs7Ev(bLptqsLJB*tvPv!}}<)gEknW9t8u8#r0)friF*R;(zI zuMcnN*9Z4>M9XaLYr@U}J$a8XQ@?A&uG2{{ekiNe=&{HsN}!gG95!XQnJ`psV)95o zX^v#YSu>^e=yzZ4gn>=YVee`ZW2-NVb1*}9w-HmO?LlbdEaVS4*c&bA^+{wQfw)2I2!1#iRwZ+fMp>$%aB zfi^HllQmTCl*nS7r&{6gM9N#srn;u&LS`frta@<_f3issg zIBHo!5dOM4nvti+rRN#Y|F`mZNxbjO0)BXJhc9RIPkYo}6=?1&&sopmtO>|4|_?V)##mJdY0F&fq{#z-nHKXiG2l9Oxzk zyWFxX8nOK;H39%cYhdQIQG9Crlux~8+IM4qf+{6fKlxlxrtU)l!1PmJkXT44AhX!Z zXS1B0CJT}jJR}huzXZ$MAZFKK1fbSO{Rp8gkgm6Xp?!u2>K$v4CdydEx)0uKLo$kh zcMsb0hXQnH82R%4&=@0GXvjVqf=@Z5b&uPS}V0N%=X^FE-~j4ta*AC7ZvAD&gd2p(=Lc2E~ddDdLY zkn-UARaTFx;vel(h|7niMo^GPf$#MlB%44241>u6Nr51`s+OeuA*zGKPa=U52FX5d zqbHo-=AA2ZFBHh6sD%D5wb+`$Yzrm{Yz_t=uS26SAU?zZ1@vBW^{&qO40Q{9>q~V9 zChP*Xbqf{G_w+Z~7yJ$FtDt;>eYU^&<)wi^Pyhe`AOMzVBQ*TRJ^Wih0RS?v0RWJH z&nkU4(pED1Zen7~NM~i0KnJRqK1y+9vjM!>zY}QVq_+4oQdr%poCbP^vT)F zX|AzmIc_lMo54Cvqh{&#kL#{@n|H#DHA?y;z*;9#oh;9*Inj(lB#6?|b~Qb`EEvclk6CLh6~1e1NDDPNWg)iBN2vJ!Q)bXxh2>dug(& zgn}_oW~2$$vJA)<&d=m)!qvHRUQC+(6gvPHhCENM#!TO5xrip}2#o8z9J0ewO{Rn6 z5!IVa6i`7>xaYzL^*>FnxcitJ1N(rUA7Eth`&YECz|CAeZ!*O2>hSiuIXeU@7ql2& zd3^ocau!at5y)KOd#1%wrj4B>bpm5vK!$2T8_5t6gXSNtujzrb2I5PT)_g+5r0G~c z1TPyWtwZs6B!XY%Ypa(OQiJ2x{ozd2E}iH&Dzh$D&ki<9(OPXVSg6M^mJzws|jOO8@nR)5`Gau+PP4Ff!ia zcJt(E*KwQmF`1S?BAOE2L%Kb4PNuKal1dcq@)MKKzY{-y4a>PGT$oE1d}9I8Chl0( zdi-)G8@q;*nlxy_eTdk&@rFaC9OQuqmR6?$s{{baeN{-CxBH_FMzzx8>pOU zMy9>})UJkImP;L_qg4+gb@jqFq18QHxs$)HNPi%}?Ai1HoO z@;&(77Y{6JPV%@?bH-_l8JfD&tT2HYKG9aVqsryNG&_sNC~0~hH@FVr&) zSeXqllq$1a<06j5(m4wem4pW>3Xd59gI})}B28eh1!m^6=YStI`3;q-;WuC$li7WO z^dvR2%F-6V!9ST9;x%br(9c=Yr37El|Li=#0RMHL7sU}e)ddCsphN@!fd4%!Y-j8A z-Ok!kn~~1a(a!d#>cqEw29(VhmM?jeC<5O=mJ6u~VyxVsjSSF({Uq#BKL@8*zDa}M zUOQ%qV;>7DF-r6Tg!dLAM%D8UD5}k#K$}^E)K< z0Mk;^0G0~CAqB%CbYDRjHGsN{AS$CmMQt*P)n;A>vG|!5+b^o0i)SH(dXGBjg_(B~ zvHZKRsG}6BEcrgW{t<*U6hci;an~ty6w5VulKcwqNEi^67QvHkj!V2BLv`@_I z?}|=^pZHMcUYJ!fl4o%Pbp%_oK}b`uuS8JEp+GCVPlJZ*=Z?MyD(0;+04Ag zDuGlVWVm~n_oipkY`Ly=-kq-aeYapuG}v_jvq0?%5lFJ?Y)E2aE@BRzGd!rC6H!V4 zcLuv+R#WK(cPa?Zr$6DxAfwOI0GMJpO{ALVhvNE208=bNn!PycF1xniKhAGPoAF&s zvVOSHfbr|0gIFFZGSM;pgs%d2*e+(bp4M#+Q9)>pK3#9cZXgGqnQDxUVBP~(6bWl{q z&q57F%;_$3z=^qupX@;|njTTpp+Lgv2&DkbulTJy|6J1Y%ox5&S2FAZR`ToQjBNj)6D!>`j) zPv2D5cr!zY1wG6MJIhbzx_+|^u{HW}mDYb1G230D$Fz=I?@KS?DUb@iYev}pQW6V^ znL#^F2Fe;~v5&ygtZoFzermD%lgMB^bAst;Wig7B@?QO?(<{8U_XqfYeH1Ay=bue} z9}n7r{`M&TIdTcw+yCdd^}l`G0s_lIP4O2JKxFt9A;qK=A;<$Nk2NaWq*x0YLQmn= z2c-S`cK=^&jyG-9pHaWJ%@F}00JPt;iYBHe-%V_dOdPe9%}s1f9RJ!QFLFvLSZT)h!2xw`J=MKE37aAdB8wE3M_-VpHi5b}tHJFS!H!}n7x8W%@n%~K$@+iiE zt-H#oO~nRwJI$W2zdmxhy4cYRNb(e3XA6G39(_G+Jv%%ICD6f6g9p4%1l&3fuw0pK z!@M~9gwa1eerA2ee0hr8{Q~?!RKP$>JN4-`9~nqBD5xTqwb1V8 zdC5J0v>e>y^fUhTKINAixPPxs|0{|6l&`01UdytOokJ>+?Rf#>PKcGCXUTildKKH3 zc}^$YY?}PRwDYL+w*t6MVpe zuu%T4uYKBSkL_CWt&f23DgP<0!JKIvi{AyNuQtR;6Gmf94Cf^|zOUOx?TJP>(AI9; z4j@MzMXpcSej=IP9>r#4z%gVQ$A@p<9v4=mBIS^=DLm7&Kg!PrgU>Suq*;+@U|*F5 zUV}W8!>(puuT;ieLX2l>Bv8Vp_Fsr4Jknkj>RzV8cNpLIW#SP#k@EnH@oUvbp-mdx zC_;mX3DL>%XFHgr7C7odM^z?&Cg7ksiVb8^{-}NGhBaX}me7eEE!kBq&1!^RWU`=o zz#=idn=~3e`kZ!v7^^@5Q>r){K#Wx{5l-(6C4N9zucLv2;UeBH8OR%C!*R!X#vIu> zK){K}Aqi6_A>9VWcQbnj#tEAs2_p^kd<%8lEn5jgwnw2uN@mIlj4yQ~FX?^!<|jd@ z#Z4(G&a~k`mTLG4IEhCzX(;`IF5x9RS^?vFGnMKMuzy2I(j7?seGpdOK|5xrWiMYm zegp1$HtF+4j}y(zD1zlU^!Kl70oWkIt?Ip_>tdpz0Jx70FU2n5dXVvcdK!+Wx>Q=v zd$Q-@sE5Y}H`Cp*;^o}4O7&E_=0~qe`Z5*mBZtt229nk@YJ#9WltKl^l!Kd zMwG!0fIyqU-TMS@2S>$1$xTCFT~h)HWp(XFt$3tDd>pY~+(_ZXhasv0#nw@7Y4vZ@ zx@w7fdwH{yi`>kHkui~|SVnO*t0jWAW*Vsw#QG6FhQGcG<5{?g`}=xA`Mllw204r) z2jhM&$8N<{pYG4+k=%OvOS|0!L5raUld>!kGO$Sws><^DmNE+-XMv>{c^cEQ-H#1&TJtbi7jybIJ-b=m0xlZ0&=_Xaa%#m)GDZRpNkb0` zHf4z+xowbcSQq%AaaF;G2=pn%&vV;KDPD~PEgqX&yHLZottW^A0~WoZ#Aw%A4+{sE^5(q$;v3rai48P7A7pzU!RV#SYp z!?{A5Z+&$rJ(Fa#?Jx=i@J#J=Ndreawco(m2m@so(5y{i7^t5w<)>RhV*JTvFGqr- zNQ>bk=G7uZ2R!M2S_tV`Y!Q>uyP2&aZ|zj}>bNh;mq2M*-vE(ezfBq3U|krZ2B`Z2TRTP&=rAXrAdRB(YfIqXAP8k`#l z6%SCvC9?Avv+WOvdMKL_IDj+XEFOSh>st;xOtF#1Fa;hS1g%xkQq&s+jvdTN*Hl01 zARylfFr=d|7fOALD+vhI5(VCIzd5y7!{E)x)fv`ztotO=cJp&jvL$w4BjqxW7*$Jr zC;u#2Lp>Ql^9U!}hJKm`x>T&uiVobgxw$V>4c1XJPh;(NW6ORh$aHyrQp4_`rtYDa zG!l+iD zUVNs{AH3mdEVQr_o^dHkbnDP66$@9zB6A5FMpPg_$65tAQzW8`O1d;+i~=&dZ&4jzz7Yw_(lxQ))?iNBgkP|g_wAK zDF}k29jF%egR_*-QN|S0JLc^@`khym216E$!3@i#!$8eCGqjX#s#it4nB;(E|dD zdzuptXxL#AMH~8Wr9W!fKS~>e*_gx8zmG(fW(?sdi)PnUf05AP!tHIx`2(Xyrm$4p zEH|So!0VMqcSqvRq@$B}lQ^(UVW?EKjX;cU+e6#6MJkLog<}!ku@d9aNA^molD97U zk|B$0MA7Vg{=(rJ|EvT&Zf9czuW+P0uO-GXD78=#btHmGewT)^zVOg5;H$1S$-$2> z&XSw9(~kuTK*1SZ+6#1(Bke!fvG*}hhc?tFlDw0?99CorKs43f@h-MU9d zTG~v`6=y=3fK+MR>9K8{t&OS+xx4)Qv4zsd5oCu@PO4SGqL%AOi!(eQ;=uCCC{U%z zRUicugMb@Qd8xkD(%wp4Gf7kGXU7d~Kko^&0=sEm>rW;O9jMSs z*lZ4#SyMjPq>n(oJb$3LClSF0dNit*wzA#`PxTUhB`FBRQ;%2RCup+gR(A+gxPZnv zpV{$L7rWiG#;*z9NWC4fz1aN&>PHG8Y1p>#@=)Jg>$agc%tPP4 z@rLMl?y-Ni^!)_-oTEkcaX$9sMWA(?r6%e$jwy6)J9K?}1snK7xQHNyo>>MzoO1;| zbP-@gh(WKZBaDr9Rl>rz&-}jmrIP^OC#6TBia=@?nKP4Pu_-ibK!$$O^)nm$)EkLI zN8_cb%^yB1^Mjz4K(%Z{P;gQedl!&yoX&hb;)1(;rqCBA2(S+gE9M3E$9vrqpSj|} z)}co}N;OIHOkWchxjCKkGKp9m?^*}agf)Gu-?k6ezPg%UQ>Jk(lE)}WV+8cajAH=w z#u+}ENAXWHjs%X>v4?RS_sCjYhK_a=oHhES?2<>cShUBWbZ0}+1V3gMd$oykMEGE{?jr%Zka0|__pvM=pRcQ}AkIUre|#dp(x-RM?z}ZPGVNr; zF)#W&s!QFTi9!ce4Z&%P%Q1pzqk#QF07JLM0`0vB4eo2c1CSyr5U8a=2~tp5 zTwyvV3kR2~dHfr{Ai-{9InVRJ%Pc{ytS{iw-wVKFa7Yyobz%34GC=g02JKyfRL7o{d4wXhkoftZ+ z_?2(f?!y*GDD36a=^~aC>tKOW37%Q|QSw&eWq`rVYlgvGn@Y(+8=dj13+#8qcJd*8X&9*Kj-OlBF{l5kbt#c-r#W}hxbgdy zbR<}~=YH|cxqGib2{CO(D{{ytxwQ+rB-ne=ya--U*&{RSJ*^*P-Sz;D)_?c( zWZm#xvwEu*hjxwR7)=oy$3KQbig=r9ysnF-rq_eh!FDUUG&;Fs={p4M#6~!}SUhG* z-yG#~n=ZGpTGq>5W3&8*W}DLxS$676Y_zmEW3d0oZ(FOUQ0;+K!l6t+J&D@;O>7J- z2opuh3V^YXS?PMEm-ha}_Sc>SY2b1WO~0<4tdZGqM)f%&UR(y&K~}hf;6e-(w$QH* zk}Rx*#-*H}SI!}KW=)87xW=W&IHWV&`;A%N%JUI4{HlU#hu%bC_~6PmJT>ZoRn}H1 z9k1zw1%03;fCh2%8);XQLgrkO+Y7vTiy%o}r{2!Xt{EbNN2+%BB()8YIWIF=c#ubq zMUJ&4F-ZpxvSKX4ii6~FYZ~sE8lhmF83XB-_IlPfiV;nzw$xU;shwn~k6?Nu#jYBU zg_qy1AeHq)yY^8uek{?P5*u?+Q$X5o%wQXC|5ZqmZ2MO*@aEEko z2-0}t9;|V9clY4IgF|o+5?q73JA^OqzVj;g@XovSjjs7)R_!@z?OnCz?lnh^J^S@I z$K3hShRAX>v}YGyy3T?)$v(FIjY9L=MARjm! zrGHXGPbqs(X>Ipg&hAo$r^5t_pHkx4DtI%m5ux#%?|z?_CiqaMc4&g*vOjEq5_%&m zdz})myU8Mcsh6(rpGmUJQ-T*uxM#u(=dzS}3!z##6Kc4O3aVg;AT;z%tV_L9WvA7eyD8~s$Pdt#h+TFRm9*Pjx3o_U~x#$6h9a#U&G8Q`&g-xswg-lU{#pl`a*V7cm1AYV94XF|^+ zu5ka>#3Nqv`(>&zSsCdiTlzz}psscnFSy>^jeS*69YC-pej&I^2=49<7k3B{+~MNx z?(VL^-QC?iIKeeQAh_!VmiM(!wzgi+)Ktw!_o<$#(;rjQ-C3im)4T(XsJ$iwY^moY zMUG&p%C^wGBZ2-ScR6$$a07@vSUn-OyE@=e8|*PFI{|%VV!SK1)JeGw?|{|F^va-BM353WQhZNM)6s>YIwTCzK?# zv^Cz>D*5{z(L{es#T7YSL*7u_1bqDVe&RyUgq(gFEI2hYuU#N6vPwlg-{4N@y^Q$^ zVLx161rqD{+~u0zYSzMsgw1vCB^w*Bn~;2T(m&+B^wn*@gfl016p;XG{xA)RQdGDj zfXXGiVvXg>E9L5=SXKy6+M#`8yG;34=9D{A1S;;|t(#e-Nna~8wA^jg$<=d`e+Eik zR|F=GT$An%lCtiFk<7%uHxNrwJiw`vks-x8mfs-2r#t&KG;*&1?oj4rWYCi_*gO+G zsDY+JKr^7&$0EcBd^%;=A9u+o{)i8u{&W@xHl+qvH7A0xW?ym&1GvGZXwFYD)sqQxbGNG4!s2VD zR+u6`G zd_ME+a=x{!dLt5BWyX>8MO3$hjP_9Eo)kzj_?g30_a1)ZD6l^OJ4V(}hEZ*=UdIm` zvKN_G@xW0zq4(G*@MsZZ$X;2T+p%D&IXu2+mox*e#gt{vnFc|*{ARc8UJ=e2pCuTl zV2C@Z@(N61g-_eXwA)>`SoN+31RynpOQP|z*<~Myitx)`*sk&R!sGtwW5USc%D(GU z@f|#^tHq_6&4l_fKlUz6i}kHMCPt|6*CJ(Hpjo3+9FGgJ4_O}(NoNgqkP}}n&Q$>Sk&rr<9N^uxQ;t~-1Nno zmFcAJlnoTJJ1msEJVr}EOcb9t*#b*91gd%OBeo5FRXF)qX}ZN`MnY_3qLPRqJn{sy zI2ktBfY=F&;~m2#b5iIkTlpvp!bTnJ+1auJd|vveds|N6?B@$F_hweqf7x%IR2Sbw ztczYS)#V(Mxx+F&p=0e7^KzBlfb!c@Wtz>^rhMi81!u=g%+F>uWnHX6raO(57cUKg zi67Lnk4ih0%} z7L4*k<7aRNc2-79XJ|0qMN27stu@!xYj~|gWig<5pJLQF?ThhX?xD!?mRK>mr#C7N zL0!vo*l=1Lr1*&#jjI0F;;~$O8T6O4Zw~v_-Fm-RXx=$ViCiJxc=T5Iss1yN_nOuPMdN==>3*cW9_t~)vUbfRK_m<0 zbq>1m&d{+{Z#Twxa;lz}T5iT6ukYiVPMP4)>QBCU2>%Moc&It(G9M~MJDkbfF6q*@ zSKZ3?5F7+A&M@=h%%r^K@Pbj2`YwGWbU>JZEdOMCDy7@nExJDd^qFyY@uTu%noZh71M?qPq)FzfTt+a9JRsFI`tKIv8*I)$B) z&epow-<~UoXZpD6#&h2oxtbQwl%ju8WddD1AUS+>{-Qo*RLy#jOwH8bY9-AD=>-^Y zLM9x*LuV`crwN@fpcTwNX_Y=du0Wj}Go}XaCq6K!l>0^tG5o{2&&B2b68a0VwZYshEVp^b8C_(i-+!1Q@2azj|M4U+>ZBDc91n=;2$V`&9e1`l z@6#>8L)BB&wLZU3CLs6@`{U_OlnM7-I$=h?rsW%}0=gmd!h&xLHO1Bepaj>*W2=SB z&4FRF#coYpN>9oe)G3GBoumrMT52T8&)G?AFssh!hxN1Ee!uXEbF2a8KC+nK&3&us zXFPN(U)W;X#uHX}>fOxzXbZJAj}p~7JHK7jlQE%nWk(AG?>V8`4q7bmT#@x&-SHs5 zjiKB;a~K|&RS%z>FSTxg@@0s{N`J4TDT1OY96c?ojWP=0pog#12b>yRd5XBe6w#NHEeSP$XAt!f1-2bk zImVkYxwQm-*_o6d4Mlk4($TL!UmnNxs)1V6i%Fx5JaFAhyL1>q-M}Wqx@@|+>&bHf zSccE{b@%G|IgNM_Tssav`yHF)tR#|Pv$%P^I!`#hu6tykw=lMnoupLaAO4*k$YtJN zP-ZOPJ60@M(4G=iwv6Mb5dfJLvh%Pv5dLk7n0phm>>)ytu*Ld89%_ghPO96BqYk9Y zFP~J!1PY_4jGkb{k3)5wIzr9n)*A0iHQ+34-df=D`o!+$I%t0VSH~%`**8CoM;FqE z`(`Rn<2)b!d{4VFNk}xLmUtlzgGk4n%7{%a*fxgZY3_kbIGPCg<7F`?)tmB8<=VnH zm*C^89lKjh(3~ECdRXs*e8yR?3`}X|*hMUbf}_I`2Nm4R&q-Ko&QFFY^RK`KCGb)W zUCLm7jo+>99Y>{rWs}@_dmn-BixunjnMN_G%d#q6kih%AGd^yx+Cpm;X)x;Knsjj4 zyy(`Bx}u253xZ7g*)Qbyo_>z zmuBp|%22E{+;45dRoL8-NwpE&n*-=42Nte|k=C^VoeDMr=2IWRfxVoyvwMt+rg zJ9^6Q45p@ww{3o`W#oeQMNeOm$->C0wJQQz6kX9wIciiVY0A&cvR0>cW@Z`t9k{bq zhG1ix1vr5#x0?G&u*6v%QR_WK!zba&s5|v)0^(sRm)Wq5sP90j>Y{HXOd$$rV1~Zy z`~@mR)QBSn@4wlP&(%%ns{2x^`p#c$k;1WrrgP+G$%xSBGhe-Hi{k>jw`Kf)=6FgE ziI`vewpjng85%

?};)`P(m;wa_jaE5WZi0};GB^X&zIOyfx6Ix4m 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 Fe*kU{JUjpZ literal 0 HcmV?d00001 diff --git a/samples/mdadisplaycontrols/README.md b/samples/mdadisplaycontrols/README.md new file mode 100644 index 000000000..476344b47 --- /dev/null +++ b/samples/mdadisplaycontrols/README.md @@ -0,0 +1,34 @@ + +# Overview + +This Power Apps Test Engine sample demonstrates how to assert and interact with the values of display controls in a model-driven application form. + +## Usage + +1. **Build the Test Engine Solution** + Ensure the Power Apps Test Engine solution is built and ready to be executed. + +2. **Get the URL of the Model-Driven Application Form** + Acquire the URL of the specific Model-Driven Application form that you want to test. + +3. **Modify the displaycontroltestplan.fx.yaml** + Update the YAML file to assert expected values of the shape controls. + + > [!NOTE] The controls are referenced using the [logical name](https://learn.microsoft.com/power-apps/developer/data-platform/entity-metadata#table-names). + +4. **Update the Domain URL for Your Model-Driven Application** + + | URL Part | Description | + |----------|-------------| + | `appid=a1234567-cccc-44444-9999-a123456789123` | The unique identifier of your model-driven application. | + | `etn=shape` | The name of the entity being validated. | + | `id=26bafa27-ca7d-ee11-8179-0022482a91f4` | The unique identifier of the record being edited. | + | `pagetype=custom` | The type of page to open. | + +5. **Execute the Test for Custom Page** + Change the example below to the URL of your organization: + +```pwsh +cd bin\Debug\PowerAppsEngine +dotnet PowerAppsTestEngine.dll -i ..\..\..\samples\mdadisplaycontrols\displaycontroltestplan.fx.yaml -e 00000000-0000-0000-0000-11112223333 -t 11112222-3333-4444-5555-666677778888 -u browser -p mda -d "https://contoso.crm4.dynamics.com/main.aspx?appid=9e9c25f3-1851-ef11-bfe2-6045bd8f802c&pagetype=custom&name=cr7d6_displaycontrols_7009b" +``` diff --git a/samples/mdadisplaycontrols/displaycontroltestplan.fx.yaml b/samples/mdadisplaycontrols/displaycontroltestplan.fx.yaml new file mode 100644 index 000000000..c4c8eb385 --- /dev/null +++ b/samples/mdadisplaycontrols/displaycontroltestplan.fx.yaml @@ -0,0 +1,406 @@ +testSuite: + testSuiteName: MDA Custom Page tests - Display Controls + testSuiteDescription: Verify test cases for Display Control + persona: User1 + appLogicalName: NotNeeded + + testCases: + # HtmlText Control Test Cases + + - testCaseName: Test HtmlText Control- HtmlText Property + testCaseDescription: Verify that the HtmlText property can display the correct HTML content. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate HtmLText Control"); + SetProperty(HtmlText1.HtmlText, "

Welcome

"); + Assert(HtmlText1.HtmlText = "

Welcome

", "Checking the HtmlText property for correct HTML content"); + + - testCaseName: Test HtmlText Control - Tooltip Property + testCaseDescription: Verify that the Tooltip property displays the correct text on hover. + testSteps: | + SetProperty(HtmlText1.Tooltip, "This is a tooltip"); + Select(HtmlText1); + Assert(HtmlText1.Tooltip = "This is a tooltip", "Checking the tooltip text"); + + - testCaseName: Test HtmlText Control -OnSelect Property - Positive Scenario + testCaseDescription: Verify that the OnSelect property triggers the correct action when HtmlText1 is clicked. + testSteps: | + Select(HtmlText1); + Assert(true, "Checking the OnSelect action"); + + - testCaseName: Test HtmlText Control -Visible Property - Negative Scenario + testCaseDescription: Verify that setting Visible to false hides the HtmlText1 control. + testSteps: | + SetProperty(HtmlText1.Visible, false); + Assert(HtmlText1.Visible = false, "Checking the HtmlText1 is hidden"); + + - testCaseName: Test HtmlText Control -Visible Property - Positive Scenario + testCaseDescription: Verify that setting Visible to true show the HtmlText1 control. + testSteps: | + SetProperty(HtmlText1.Visible, true); + Assert(HtmlText1.Visible = true, "Checking the HtmlText1 is hidden"); + + + + # Timer Control Test Cases + + - testCaseName: Test Timer Control - OnTimerStart, Duration Property - Positive Scenario + testCaseDescription: Verify that the OnTimerStart property triggers the correct action when Timer is clicked. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Timer Control"); + SetProperty(Timer1.Duration, 5000); + SetProperty(Timer1.Start, true); + Wait(Label1,"Text","Timer Started"); + Assert(Label1.Text = "Timer Started", "Checking the OnTimerStart action"); + Assert(Timer1.Duration = 5000, "Checking the OnTimerStart action"); + + - testCaseName: Test Timer Control - OnTimerStop Property - Positive Scenario + testCaseDescription: Verify that the OnTimerStop property triggers the correct action when Timer is clicked. + testSteps: | + Wait(Label1,"Text","Timer Stopped"); + Assert(Label1.Text = "Timer Stopped", "Checking the OnTimerStop action"); + + - testCaseName: Test Timer Control - Duration Property - Positive Scenario + testCaseDescription: Verify that the Duration property triggers and stop after duration period end. + testSteps: | + SetProperty(Timer1.Reset, true); + SetProperty(Timer1.Duration, 10000); + SetProperty(Timer1.AutoStart, true); + Wait(Label1,"Text","Timer Started"); + Wait(Label1,"Text","Timer Stopped"); + Assert(Label1.Text = "Timer Stopped", "Checking the OnTimerStop action"); + + + + # Link Control Test Cases + + - testCaseName: Test Link Control - Text Property + testCaseDescription: Verify that the Text property displays the correct text for the link. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Link Control"); + SetProperty(LinkCanvas1.Text, "Click Here"); + Assert(LinkCanvas1.Text = "Click Here", "Checking that the displayed link text matches the expected value"); + + - testCaseName: Test Link Control - AccessibleLabel Property + testCaseDescription: Verify that the AccessibleLabel property provides the correct ARIA label for accessibility tools. + testSteps: | + SetProperty(LinkCanvas1.AccessibleLabel, "Navigate to Example"); + Assert(LinkCanvas1.AccessibleLabel = "Navigate to Example", "Checking that the accessible label matches the expected value"); + + - testCaseName: Test Link Control - Visible Property - Negative Scenario + testCaseDescription: Verify that setting Visible to false hides the link control. + testSteps: | + SetProperty(LinkCanvas1.Visible, false); + Assert(LinkCanvas1.Visible = false, "Checking the LinkCanvas1 is hidden"); + + - testCaseName: Test Link Control - Visible Property - Positive Scenario + testCaseDescription: Verify that the Visible property controls the visibility of the link control. + testSteps: | + SetProperty(LinkCanvas1.Visible, true); + Assert(LinkCanvas1.Visible = true, "Checking the LinkCanvas1 is visible"); + + - testCaseName: Test Link Control - Text Property - Negative Scenario + testCaseDescription: Verify that setting an empty Text property does not crash the application. + testSteps: | + SetProperty(LinkCanvas1.Text, ""); + Assert(LinkCanvas1.Text = "", "Verifying that the application handles an empty link text gracefully"); + + # Spinner Control + + - testCaseName: Test Spinner Control - Label Property - Positive Scenario + testCaseDescription: Verify that the Label property correctly displays the assigned text. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Spinner Control"); + SetProperty(Spinner1.Label, "Loading Data..."); + Assert(Spinner1.Label = "Loading Data...", "Checking that the Spinner displays the correct label text"); + + - testCaseName: Test Spinner Control - Label Property - Negative Scenario + testCaseDescription: Verify that setting an empty Label property does not crash the application. + testSteps: | + SetProperty(Spinner1.Label, ""); + Assert(Spinner1.Label = "", "Checking that the application handles an empty label gracefully"); + + - testCaseName: Test Spinner Control - AccessibleLabel Property - Positive Scenario + testCaseDescription: Verify that the AccessibleLabel property provides the correct ARIA label for accessibility. + testSteps: | + SetProperty(Spinner1.AccessibleLabel, "Loading spinner"); + Assert(Spinner1.AccessibleLabel = "Loading spinner", "Checking that the AccessibleLabel is correctly set for the Spinner"); + + - testCaseName: Test Spinner Control - Visible Property - Negative Scenario + testCaseDescription: Verify that setting the Visible property to false hides the Spinner control. + testSteps: | + SetProperty(Spinner1.Visible, false); + Assert(Spinner1.Visible = false, "Checking that the Spinner control is hidden"); + + - testCaseName: Test Spinner Control - Visible Property - Positive Scenario + testCaseDescription: Verify that setting the Visible property to true displays the Spinner control. + testSteps: | + SetProperty(Spinner1.Visible, true); + Assert(Spinner1.Visible = true, "Checking that the Spinner control is visible"); + + - testCaseName: Test Spinner Control - Behavior During Loading + testCaseDescription: Verify that the Spinner behaves correctly during data loading. + testSteps: | + SetProperty(Spinner1.Label, "Loading Data..."); + SetProperty(Spinner1.Visible, true); + Wait(Spinner1,"Label","Loading Data..."); + Assert(Spinner1.Visible = true, "Checking that the Spinner is visible during loading"); + SetProperty(Spinner1.Visible, false); + Assert(Spinner1.Visible = false, "Checking that the Spinner is hidden after loading is complete"); + SetProperty(Spinner1.Label, ""); + SetProperty(Spinner1.Visible, true); + + # Info Button Test Cases + + - testCaseName: Test Info Button - Content Property + testCaseDescription: Verify that the Content property displays the correct information when the Info Button is clicked. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Info Button Control"); + SetProperty(InfoButtonCanvas1.Content, "This is informational content"); + Select(InfoButtonCanvas1); + Assert(lblDisplayControl.Text = "This is informational content", "Checking that the Info Button displays the correct content"); + Assert(InfoButtonCanvas1.Content = "This is informational content", "Checking that the Info Button displays the correct content"); + + - testCaseName: Test Info Button - Content Property - Negative Scenario + testCaseDescription: Verify that setting the Content property to an empty string does not crash the application. + testSteps: | + SetProperty(InfoButtonCanvas1.Content, ""); + Select(InfoButtonCanvas1); + Assert(lblDisplayControl.Text = "", "Checking the application handles empty content gracefully"); + + - testCaseName: Test Info Button - AccessibleLabel Property + testCaseDescription: Verify that the AccessibleLabel property provides a correct ARIA label for screen readers. + testSteps: | + SetProperty(InfoButtonCanvas1.AccessibleLabel, "Help Information"); + Assert(InfoButtonCanvas1.AccessibleLabel = "Help Information", "Checking the accessible label for the Info Button"); + + - testCaseName: Test Info Button - Visible Property - Negative Scenario + testCaseDescription: Verify that setting the Visible property to false hides the Info Button. + testSteps: | + SetProperty(InfoButtonCanvas1.Visible, false); + Assert(InfoButtonCanvas1.Visible = false, "Checking that the Info Button is hidden"); + + # - testCaseName: Test Info Button - Visible Property - Positive Scenario + # testCaseDescription: Verify that setting the Visible property to true displays the Info Button. + # testSteps: | + # SetProperty(InfoButtonCanvas1.Visible, true); + # Assert(InfoButtonCanvas1.Visible = true, "Checking that the Info Button is visible"); + + # Progress Control Test Cases + + - testCaseName: Test Progress Control - Max Property + testCaseDescription: Verify that the Max property can be set and retrieved correctly. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Progress Bar Control"); + SetProperty(Progress1.Max, 100); + Assert(Progress1.Max = 100, "Checking the Max property"); + + - testCaseName: Test Progress Control - Value Property + testCaseDescription: Verify that the Value property can be set and retrieved correctly. + testSteps: | + SetProperty(Progress1.Value, 50); + Assert(Progress1.Value = 50, "Checking the Value property"); + SetProperty(Progress1.Value, 25); + Assert(Progress1.Value = 25, "Checking the Value property"); + SetProperty(Progress1.Value, 100); + Assert(Progress1.Value = 100, "Checking the Value property"); + SetProperty(Progress1.Value, 75); + Assert(Progress1.Value = 75, "Checking the Value property"); + + + - testCaseName: Test Progress Control - Value beyond Max value Property + testCaseDescription: Verify that the value property can be set beyond max property. + testSteps: | + SetProperty(Progress1.Max, 50); + SetProperty(Progress1.Value, 75); + Assert(Progress1.Value = 75, "Checking the value property beyond max property value"); + + - testCaseName: Test Progress Control - Visible Property - Negative Scenario + testCaseDescription: Verify that setting Visible to false hides the Progress1 control. + testSteps: | + SetProperty(Progress1.Visible, false); + Assert(Progress1.Visible = false, "Checking the Progress1 is hidden"); + + - testCaseName: Test Progress Control - Visible Property - Positive Scenario + testCaseDescription: Verify that the Visible property controls the visibility of the Progress1 control. + testSteps: | + SetProperty(Progress1.Visible, true); + Assert(Progress1.Visible = true, "Checking the Progress1 is visible"); + + + # Badge Canvas Control + + - testCaseName: Test Badge Canvas Control - Content Property - Positive Scenario + testCaseDescription: Verify that the Content property correctly displays the assigned text. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Badge Canvas Control"); + SetProperty(BadgeCanvas1.Content, "Certified Professional"); + Assert(BadgeCanvas1.Content = "Certified Professional", "Checking that the Badge displays the correct content"); + + - testCaseName: Test Badge Canvas Control - Content Property - Negative Scenario + testCaseDescription: Verify that setting an empty Content property does not crash the application. + testSteps: | + SetProperty(BadgeCanvas1.Content, ""); + Assert(BadgeCanvas1.Content = "", "Checking that the application handles empty content gracefully"); + + - testCaseName: Test Badge Canvas Control - AccessibleLabel Property - Positive Scenario + testCaseDescription: Verify that the AccessibleLabel property provides the correct ARIA label for accessibility. + testSteps: | + SetProperty(BadgeCanvas1.AccessibleLabel, "Notification Badge"); + Assert(BadgeCanvas1.AccessibleLabel = "Notification Badge", "Checking that the AccessibleLabel is correctly set for the Badge"); + + + - testCaseName: Test Badge Canvas Control - Visible Property - Negative Scenario + testCaseDescription: Verify that setting the Visible property to false hides the Badge control. + testSteps: | + SetProperty(BadgeCanvas1.Content, "Certified Professional"); + SetProperty(BadgeCanvas1.Visible, false); + Assert(BadgeCanvas1.Visible = false, "Checking that the Badge control is hidden"); + + - testCaseName: Test Badge Canvas Control - Visible Property - Positive Scenario + testCaseDescription: Verify that setting the Visible property to true displays the Badge control. + testSteps: | + SetProperty(BadgeCanvas1.Content, "Certified Professional"); + SetProperty(BadgeCanvas1.Visible, true); + Assert(BadgeCanvas1.Visible = true, "Checking that the Badge control is visible"); + + - testCaseName: Test Badge Canvas Control - Display During Dynamic Updates + testCaseDescription: Verify that the Badge updates dynamically when the Content property changes. + testSteps: | + SetProperty(BadgeCanvas1.Content, "New"); + Assert(BadgeCanvas1.Content = "New", "Checking the initial content"); + SetProperty(BadgeCanvas1.Content, "Updated"); + Assert(BadgeCanvas1.Content = "Updated", "Checking the updated content"); + + - testCaseName: Test Badge Canvas Control - AccessibleLabel Property with Missing Content + testCaseDescription: Verify that the AccessibleLabel works correctly when the Content property is empty. + testSteps: | + SetProperty(BadgeCanvas1.Content, ""); + SetProperty(BadgeCanvas1.AccessibleLabel, "Badge with no content"); + Assert(BadgeCanvas1.AccessibleLabel = "Badge with no content", "Checking that AccessibleLabel is correct when Content is missing"); + + # Avatar Control + + - testCaseName: Test Avatar Control- Name Property - Positive Scenario + testCaseDescription: Verify that the Name property correctly displays the assigned text. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Avatar Control"); + SetProperty(Avatar1.Name, "John Doe"); + Assert(Avatar1.Name = "John Doe", "Checking that the Avatar control displays the correct name"); + + - testCaseName: Test Avatar Control- Name Property - Negative Scenario + testCaseDescription: Verify that setting an empty Name property does not crash the application. + testSteps: | + SetProperty(Avatar1.Name, ""); + Assert(Avatar1.Name = "", "Checking that the application handles an empty Name gracefully"); + + - testCaseName: Test Avatar Control- Badge Property - Positive Scenario + testCaseDescription: Verify that the Badge property displays the correct badge content. + testSteps: | + SetProperty(Avatar1.Badge, "Online"); + Assert(Avatar1.Badge = "Online", "Checking that the Badge displays the correct content"); + + - testCaseName: Test Avatar Control- Badge Property - Negative Scenario + testCaseDescription: Verify that an empty Badge property does not crash the application. + testSteps: | + SetProperty(Avatar1.Badge, ""); + Assert(Avatar1.Badge = "", "Checking that the application handles an empty Badge gracefully"); + + - testCaseName: Test Avatar Control- Visible Property - Negative Scenario + testCaseDescription: Verify that setting the Visible property to false hides the Avatar control. + testSteps: | + SetProperty(Avatar1.Visible, false); + Assert(Avatar1.Visible = false, "Checking that the Avatar control is hidden"); + + - testCaseName: Test Avatar Control- Visible Property - Positive Scenario + testCaseDescription: Verify that setting the Visible property to true displays the Avatar control. + testSteps: | + SetProperty(Avatar1.Visible, true); + Assert(Avatar1.Visible = true, "Checking that the Avatar control is visible"); + + + # Icon Control + + - testCaseName: Test Icon Property - Positive Scenario + testCaseDescription: Verify that the Icon property correctly displays the assigned icon. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Icon Control"); + SetProperty(Icon1.Icon, "Attach"); + Assert(Icon1.Icon = "Attach", "Checking that the Icon property is correctly set to 'Attach'"); + + - testCaseName: Test Icon Property - Negative Scenario + testCaseDescription: Verify that assigning an invalid icon name does not crash the application. + testSteps: | + SetProperty(Icon1.Icon, "InvalidIconName"); + Assert(Icon1.Icon = "InvalidIconName", "Checking that the application gracefully handles invalid icon names"); + + - testCaseName: Test Icon Control- Visible Property - Negative Scenario + testCaseDescription: Verify that setting the Visible property to false hides the Icon control. + testSteps: | + SetProperty(Icon1.Visible, false); + Assert(Icon1.Visible = false, "Checking that the Icon control is hidden"); + + - testCaseName: Test Icon Control - Visible Property - Positive Scenario + testCaseDescription: Verify that setting the Visible property to true displays the Icon control. + testSteps: | + SetProperty(Icon1.Visible, true); + Assert(Icon1.Visible = true, "Checking that the Icon control is visible"); + + - testCaseName: Test Icon Control- Change During Runtime + testCaseDescription: Verify that the Icon property updates dynamically during runtime. + testSteps: | + SetProperty(Icon1.Icon, "Home"); + Assert(Icon1.Icon = "Home", "Checking the initial icon"); + SetProperty(Icon1.Icon, "Settings"); + Assert(Icon1.Icon = "Settings", "Checking the updated icon"); + + # Text Canvas Control + + - testCaseName: Test Text Canvas Control - Text Property - Positive Scenario + testCaseDescription: Verify that the Text property correctly displays the assigned string. + testSteps: | + SetProperty(lblDisplayControl.Text, "Validate Text Canvas Control"); + SetProperty(TextCanvas1.Text, "Welcome to PowerApps"); + Assert(TextCanvas1.Text = "Welcome to PowerApps", "Checking the Text property is correctly set to 'Welcome to PowerApps'"); + + - testCaseName: Test Text Canvas Control - Text Property - Negative Scenario + testCaseDescription: Verify that assigning a null or empty string to the Text property does not cause errors. + testSteps: | + SetProperty(TextCanvas1.Text, ""); + Assert(TextCanvas1.Text = "", "Checking the Text property accepts an empty string"); + + - testCaseName: Test Text Canvas Control - Text Updates Dynamically + testCaseDescription: Verify that the Text property updates dynamically at runtime. + testSteps: | + SetProperty(TextCanvas1.Text, "Initial Text"); + Assert(TextCanvas1.Text = "Initial Text", "Checking the initial text is set"); + SetProperty(TextCanvas1.Text, "Updated Text"); + Assert(TextCanvas1.Text = "Updated Text", "Checking the text is updated dynamically"); + + - testCaseName: Test Text Canvas Control - Visible Property - Negative Scenario + testCaseDescription: Verify that the Visible property set to false hides the TextCanvas control. + testSteps: | + SetProperty(TextCanvas1.Visible, false); + Assert(TextCanvas1.Visible = false, "Checking that the TextCanvas control is hidden"); + + - testCaseName: TestText Canvas Control - Visible Property - Positive Scenario + testCaseDescription: Verify that the Visible property set to true displays the TextCanvas control. + testSteps: | + SetProperty(TextCanvas1.Visible, true); + Assert(TextCanvas1.Visible = true, "Checking that the TextCanvas control is visible"); + + +testSettings: + headless: false + locale: "en-US" + recordVideo: true + extensionModules: + enable: true + browserConfigurations: + - browser: Chromium + channel: msedge + +environmentVariables: + users: + - personaName: User1 + emailKey: NotNeeded + passwordKey: NotNeeded diff --git a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs index 90dfd2e82..69218791c 100644 --- a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs +++ b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs @@ -110,12 +110,7 @@ protected override bool TryGetField(FormulaType fieldType, string fieldName, out if (jsPropertyValueModel != null) { - if (string.IsNullOrEmpty(jsPropertyValueModel.PropertyValue)) - { - result = null; - return false; - } - + if (fieldType is NumberType) { result = NumberValue.New(double.Parse(jsPropertyValueModel.PropertyValue)); From c83dc930d7dffd8c1f4cb4675c1aa284e5882e83 Mon Sep 17 00:00:00 2001 From: v-nabalasubr Date: Mon, 23 Dec 2024 11:57:34 +0530 Subject: [PATCH 2/5] Remove unnecessary whitespace in ControlRecordValue.cs Remove unnecessary whitespace in ControlRecordValue.cs --- .../Providers/PowerFxModel/ControlRecordValue.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs index 1f97a1f26..2b063dfa9 100644 --- a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs +++ b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. +// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. using System.Runtime.CompilerServices; @@ -110,8 +110,7 @@ protected override bool TryGetField(FormulaType fieldType, string fieldName, out var jsPropertyValueModel = JsonConvert.DeserializeObject(propertyValueJson); if (jsPropertyValueModel != null) - { - + { if (fieldType is NumberType) { result = NumberValue.New(double.Parse(jsPropertyValueModel.PropertyValue)); From 4e5e5470c74b26cc6228f0384bfbd83057297f5c Mon Sep 17 00:00:00 2001 From: Nareshkumar Balasubramani Date: Mon, 23 Dec 2024 12:08:10 +0530 Subject: [PATCH 3/5] Updated file enconding to UTF8 --- .../Providers/PowerFxModel/ControlRecordValue.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs index 2b063dfa9..3f639fd06 100644 --- a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs +++ b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. +// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. using System.Runtime.CompilerServices; From 2de181a8fab2d8940c78b7412794ae3ea4211a23 Mon Sep 17 00:00:00 2001 From: Nareshkumar Balasubramani Date: Mon, 23 Dec 2024 12:11:12 +0530 Subject: [PATCH 4/5] removed space --- .../Providers/PowerFxModel/ControlRecordValue.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs index 3f639fd06..cac3d0634 100644 --- a/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs +++ b/src/Microsoft.PowerApps.TestEngine/Providers/PowerFxModel/ControlRecordValue.cs @@ -110,7 +110,7 @@ protected override bool TryGetField(FormulaType fieldType, string fieldName, out var jsPropertyValueModel = JsonConvert.DeserializeObject(propertyValueJson); if (jsPropertyValueModel != null) - { + { if (fieldType is NumberType) { result = NumberValue.New(double.Parse(jsPropertyValueModel.PropertyValue)); From 81bcbfcb39df751b4a1cf7fca95e2eff79850726 Mon Sep 17 00:00:00 2001 From: Nareshkumar Balasubramani Date: Mon, 23 Dec 2024 13:54:39 +0530 Subject: [PATCH 5/5] Allowing TestEngine to Accept Blank value for validation --- .../Provider/PowerFXModel/ControlRecordValueTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.PowerApps.TestEngine.Tests/Provider/PowerFXModel/ControlRecordValueTests.cs b/src/Microsoft.PowerApps.TestEngine.Tests/Provider/PowerFXModel/ControlRecordValueTests.cs index 13864891c..8b07131ef 100644 --- a/src/Microsoft.PowerApps.TestEngine.Tests/Provider/PowerFXModel/ControlRecordValueTests.cs +++ b/src/Microsoft.PowerApps.TestEngine.Tests/Provider/PowerFXModel/ControlRecordValueTests.cs @@ -199,7 +199,7 @@ public static IEnumerable GetFieldData() var dateValue = new DateTime(2023, 12, 10, 0, 0, 0, DateTimeKind.Utc); var dateUnixValue = new DateTimeOffset(dateValue).ToUnixTimeMilliseconds(); - yield return new object[] { BlankType.Blank, "{PropertyValue: null}", null }; // Happy path Blank + //yield return new object[] { BlankType.Blank, "{PropertyValue: null}", null }; // Happy path Blank yield return new object[] { StringType.String, "{PropertyValue: 'Test'}", "Test" }; // Happy path, text yield return new object[] { NumberType.Number, "{PropertyValue: 1}", (double)1 }; // Happy path, number yield return new object[] { GuidType.Guid, $"{{PropertyValue: '{guidValue.ToString()}'}}", guidValue }; // Happy path, GUID