From f8217304073b5cd13823a0602568394be93bf310 Mon Sep 17 00:00:00 2001 From: Jason parks Date: Wed, 26 Jan 2011 13:11:42 -0600 Subject: [PATCH] More work on the Crypt Keeper. * Use the DPM to determine if we are encrypted. * Fix misspelling (Comfirm -> Confirm). * Animate to black when enabling encryption. * Add holo droid background. * Change the progress bar to indterminate. * Display the percentage complete in the status line. * Fixed bug 3388097. You will no longer have to unplug your device to start encryption. This line is intentionally long. I could make it shorter but I am proving a point: overflow: auto;. * Actually hold onto the wakelock to prvent the device from sleeping. * Implement onStop() as a orientation change can happen at boot. This will start the activity twice and there will be multiple handlers with messages. Change-Id: Ia752d106c39e0d81431e856f8f500182e8ec1abd --- AndroidManifest.xml | 6 + .../encryption_bg_complete.png | Bin 0 -> 87388 bytes res/layout-xlarge/crypt_keeper_progress.xml | 10 +- res/values/strings.xml | 6 +- src/com/android/settings/CryptKeeper.java | 97 ++++++++++------ .../android/settings/CryptKeeperComfirm.java | 68 ----------- .../android/settings/CryptKeeperConfirm.java | 106 ++++++++++++++++++ .../android/settings/CryptKeeperSettings.java | 8 +- .../android/settings/SecuritySettings.java | 16 +-- 9 files changed, 196 insertions(+), 121 deletions(-) create mode 100644 res/drawable-xlarge-mdpi/encryption_bg_complete.png delete mode 100644 src/com/android/settings/CryptKeeperComfirm.java create mode 100644 src/com/android/settings/CryptKeeperConfirm.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 1ef8a46ce96..69f91edc1fb 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1095,6 +1095,12 @@ android:theme="@style/CryptKeeperBlankTheme" /> + + g%afk~5G4002r&4HW|bfQ0ZXa32CDe7&3aj3Ru2 ze3UhfAcRjS#37FGH<_n~xeow90l)kqnw$^+L-;47ud11^p@)-ifUUP9K*_yDG&f41%fXbMkb23-P0 z1W_9S=*lXeZRune%aQ`{UZ*3@DLN!|dxC}ossDpdzt!zg^B|6R`@1`M^s{YNUUAHKjdzIkVIIigF#gY-tMw52w}IFUK2A?w?gXGS`jcA7a# zur*_!>Q5a#S3pV6jpgsW{Uf0D1I?;V|L_i9w(`|Xg4 zGzI4^S8yrGr9c>763BK9)!7~%o@~jObkU9UP(t9pt2PC=ma_0FUBX3}foLNjJ>Yk* zcRa!0aX$i4mOcDQ8Vt-8EKmXP^*TMZ|ESD(nhB5##>YqaR9wyh8k4Ux{?tK<5LopohEHj$8UDU6(XHvF=<>S5l*1y$vQXLdO8ENc~`QD zMg?-E89CHu0KG$Wz|Y{sk$kQ}?}he`(R*JRQ5gV~x3lD@C9%5Y(^4=oqPyutfW9(J zYn|+p5Nu)@K!-yOD1N=CZICU-ptoSHq`zYw98w@9jl&Y*O4B^gFrH^sctEiL_ECJr z57-qcNGlp3vWbRAZ#R=iNz2~CN9^T-Uba+QkI2|U<3erhC=u8vA*Y#8&SSgtD1+PtKEWO*_eFJ0OIqc+lq!{#rV*4i{PXy}_fE zCEqCwbt%egIEMOaSA8M(F~CuKvf6G(iqq?X4-Xrei1~qEDF)kVzPtB*TQK>L=&7rHT7fk!b&Sy11h(>JY708oWwTESJ2}d7e3Zr)rV%upnw!rH!8VI}ObQ z*~a~$AhPyWVecE?oq@}b&+dc6vp(>b+~8c2Oq^b7E?sJb;0@MqU9Mllh!O>U#drYc z;yIpwuPVHk!_`hU+cc3=nHbk-mQBUW zbveL1UBz;aWb)uG)V^!}WDr1#i%sYcW&3x@0)c{R9^a`@J#~_Mlv%vs3RaSJE|4ba zr9wq0)HHD#62+$uw?rbTeY<>S4Hk4I+NlG-d9V!MQ2R;pWloaXb`{k*jS8}B2<4S> zW;L6XBPOg=eD4B}sPeqdz92(VWhz%x`lTResvv`tv|Q0{SW-Xn4NpSn9S@eBRn+)2 z3MmptV`P{F<6yc{j;goUY7xf@6@D%8f37MoyicOgbmQG^>KV?HdyE}h_B3l6RW5fz3 zLU5uo#w)rVym&?BhDu))+2K_Hm8PeTFocB;a<-%d0$hKdj%2dlR{r)gR6*T&-QVmf z23d?KFt=zJ$-tJt1o)WV8Q5O3$9~Y2tl^mYT{m-_oK4P~rf+Ko{TDvgF-M-PZj8up z%x_ZnZ$xfRVO-ZMM>0_1tQs;`HvRZM7hnp~6GX-s^+Mz4dh`A+t@ikHEqmmfeABtT z^gqh|F&b$NJ{rG|P(#uZR~S|`@qcFCl;|9Kdj6b5cdQdKDgeN)QM6}N=f*jI%yLRF z*`UDl8>fhO}zD(Y}~kQIudVRB{8`x8o$TX3n^y z6c_XIlbMWZPU7aX-iSxhf-9(?Dm=s$|5OX_9nB(o#hJ-(&14!><(wzLBR>m0q$@v? z+mk<>7De|~SZ@M7+0lzm272AZ7gAd!=N<(X|i%i5eCo$AzC_FEIttHzA>>h0E7gqvpmJ`zEY?$j^Aw|#>-8>g+AMdQKuly-y%2=27 z_`zH%Kl3fYCf613#VcvS_POa>2L)bCG{v#^@>EmKnI?bCn`swGWNu{^He9^u7tkqA z$8z?DS#M~wjZB@#JQ|737tmS$^Oj2E-$MY6|0t69yJ-YNK5%T0jE`f*is{5Hd zN#s_RjLm5HIuj}(EnI2ro7{s6f8KMPg5Z55M^{dWmrg zZJ2?MQ@lh3s|9-`VY+YzDuzl1!Wv~|BinL3_IC?@uYBolasXPqc~|pfKGWuD)A-2R zfLFNdDoS2t;}%KtjMoMH?`OfAziwcB?vd)Lg44(^6J7{@XeHd!0wa8gv8yN7&Uw?! z82^|*6}}!mYakkN9N%yzStl@(>9T!-H-pjfkPgEm4bw1(G?+maVoj1u?JjkG0}5nF z6E+ln&c}bR?zeui0Opi>TZaFEKxaZntAZF-;OO&TcA!)7hsumL#)3!$l%Hfui0K0_ zfji{`OxMV)FFic2v2p9)1NrO?O@Wgnl`Ym?KyMh;5cN~4HDRnk^HjJrXVH`3aXqTF z>yfIOO7$72BISk%U(}0ru*}f^L^UAt2a3byv@Flx+$JBo;h-Ux%3HvVuw#~Vk}n(x zJwO%o(LQWh2fP&$u|bdO z0?XwSzs@SgAEu{zD(J(<55{1mWz2DZ3@LNaMV9wW+l({xPao7uE>cL_Ub&JN&@_ zN}hKk3!WehA{M+M&quFug$?VFF$VDMJboUr#BaD0bW~+Yig;n|p*?^Y{KVoidyfn8lew-_2 zp7D4H`8O?QZ?qOnT++S}5&cH*_3bBJMS;c+A)bG3etuo-S^8sEA7=6C@y`r}dyE6v zi59wwy`N>+;zjVfbUiE~l`5fSB*-*`iXIXEw4qScF$hW6gYm|%{0NR#UB`Fbzr%8} z`tyyPi(KriwOu_nLgo8fd`#UK5@m03Eq=tS_I)mu)!S)jOnA<~NF7O>H1cw{!2o#{ zB!PHr!RnGlCE!=JzxyYZ+*g6&lCR{IBq-&ZnfLYw+}d=COdTqcz%!5TTt0o>pSuA z#(u1a1+tE&APJVhPOSdG%YskNj~<~8vS5VoxDbvS0dKScer0`G5V!xe{;|8`tbwz; z0r_O=_gP+T(ar?PrNmGpa~FdkM&2TKUi}A8S5THBIm+a8dGI3|3?cM4W|QBu0yF$7 zT*VWx0rV2caaH6!M|K_z%22OtwEm5f^T_W>N%}KE@~JL!|Bx4A-9|rz1{$@vxgZyx zW?O3}Uo+o>#$;ixYm!-zTJe# z(CB2s6WBoU+N9+vXu}6=ma_*a6&3BLHg%9zJmo0G(+45WP>^KA<4)Hz`d*1JO+ z2f6gyNPIZizJ^!Z-0F03Z*BMQn$%%BF}`OR#YnI3mWG+7q2R*0>s0pfLX^7aG)=cs zIf?>)3nwwwI&O4LHd+riW4DYiT$VNQ^Ue)37t#=Xt*E|DvdLY?EcBOb(g#$O)R(EV z&)sg2RQrlHXQF6)Hzu0-J5^Gu<}Ud0`5m}Rxb?ydx$M9{$gV!81p}7MKa;nz-BBP$2uT6#YV%8|V zM*N4Ki_DCLG~cwJ+Iyo|>}lrSqJ3)Xd<52(9ad^1{xN|1(~Q#Mbt!-sq`{zk#B+OQ zzIM%PU&kmC3dvPKm#%!rMS$o7|8Gq53(Xx}(+!f1lZlWwQr$=I^J$0u^}T`-O$VZD z$n!O3v`Ue=JhGJqn$FBUq%R|T6MFikqg>&CEgm}ghw^*X;Eh?zyU4^Yn4$i}^1m*uYgxo> zCTl(hDrH~K<|N@C2-41k3ur<<=z_D-$OY_zkZhN6$w@^Wu(fBTbtBaA>7DqVQlBT* z>K`c9@Cj9m3BL>1t*8c86)W-;Ya+iF7CICoYgnLyr1nDGt+F_GGA{t{MvHGd2Wt*5 zlUV|^*^Est-iYN2ZBpbXII4bbH4ak`?Qs4a+rB$?TG^zb5FS8FhYnd0SP8t?tQSTj~gs`T{`{*nPE~y|P*1%)6V|~c+z)3XT0ky)}n``i2 zas>z(2_Sk=wnV{yyrU*U%Sl^TXh<(|^xkK;;4px=w5O=4P`c*+OGR|ooy+C&`TMVe3Z+2E!PgB)?m0~es3c=tL`Lu57K+A zc90XoIRm;+#IlkUIlV3&;d!*(n5>fEcis6gQDPw$pUA&MPM;ydp2y;w61iy*x!j~{ z&Zc28{&?p?=d+9bGp#{Gj7ap7!xZ|9!;)vBf0d#Q@0VIv8MYM1%W#oGylfRQrP-6} z|7W3{@OFpnajj4GFhjo?`Z@tr;fs3mgv~z(EBqb zAH7Uod>Dz?tns}!G(e3Z%BE1)BV9{J+Zv*G$H)ubKzwiUUJ3r|7YdvhM!5CsFlz(3 zK@vpn(a>j9IpcRZvu@8&1<5Sn1n1PF1?6{#Hxy}-w3ON7rDl^wFcqZ4<>2LK_!I-A zy%sVK2IX02s~|QU#+g+qy1Bh2IH9HeRQ2B{;siC5fy6-6qE)H*rk_ zF7Y*7RNI!!&ce{v0~kgU0`kH5pYSDOL%Pu1U=gn(Qw$Aenf24LNr74Og*B2U=9{B! zT+q$*s5*@2G&5DeqbTg~vyx|csKIz3eQjrhxt6De^0*umqEhg|Ye!V6(Ng83qtw(< z3(vUSPxOA;oZC;8^7 zh_ntynmt5DAdc=)$Y?0>Uy~MkJ@PhF8xjoZ)Y!zKM3JZPZ-1%?&S+eL(na5Jyo5l( zQlQyWf!TT;{e6;0U)qbC;qSY}9ZYYnfxcGBxi_ROX60IM(N$%9d-zssfI6z{LC}1@ z`=-*94s6}WVrvQ!1h*jK0r~6+u7giibt+`DJ@jum-HNlyquH$wOr0Ib8xf$+33q{Pc^1 z(~ubT)>#H>%nu8zvss05(|=18LO-Aajp75!;Ij(gahN(thL*ychCum9zVUfs!F8I@ z659S72!Fv9IzEZ0J$|6O#frR*7s#RRCR?@#`C-qQkc&9K=;X5sj)ZhJU+rrTh3{P4 zqzl{nRbt~j)Ql3~b$J2T;ROvYM;OoZ7fCPZDkcppX8S{<^LW{{qwLFp^X2y6|Ie%< zj1li|`$y8go`toLR(Cj*tj@H3J>X`3#bky$SQP7T2Va!g4Fxq`aEWf`j|m?9p4&|u zzXyxaz4kCYa@G^OOW77)rbF>I8`H{*$3&r~eNhbbQr$+_v4f?j&lD#k2!y2o`m7?> z*?*UF|N44rE&Q7D7=cG6jpE=2%=p zcdS_JRoO23hd<5kCiZOZZ~yhjBRo_--TeUhmhyqr{f$-*x1Aqo3nmiV&qr9RhvV+j zUhVyatW65Lufrf-t*dea((Ex4zW!Bz6Q@{Q=Nx7^w{OX|lS%GNjgDPjV+B&4Ic#k0 zWHP%d67qXNnEO=jH0#DatP*nhk`{3g^8U6f6FD;mN< zd6^%f&3X3}@;K5$9m#qoOPSg3UGp)d8}z*UEqGL#t4knnn42PYjeWMa-i_D3pUcM1?CmI&_I#IC98iS*ie?t+Nj=dk{nEle ze17K0OYQ*>b}gqfn18w<;dtj1)`ZE#j>?Mt<(%OWoK#S=%{vqA?$bu5l2a+2H`hj0 zY%Mhrda#)E$X``>DZ6nwL9-+pqiw0h4Ako=Y=BHdkejYD7_3LaMT71#HQ)qlThk?g z2q|oYP)*TXj?gKG4ONGvco^-2?|M0ZWUEGqM|CY9Di`XugnHI+Dtt2xPZA14%8+>hhdw$5NX~vQnNa52}+vE@sIr=lNEL z!8OzLmyb6a(vM->gNi^IHq>PP##>Q@7vg@rQofKCxZ|Y$D3$d)mtNiB4Rg7e`%mgx zRyrrh`N{hv(&a7TSf^{!v!12)?L-U9lb!ejt&LigeeW9Gr1^WiQ+J}8v!{3%Tj`Y_4l zb?M9#c}yLY7h(U!6UvGZWim^GLOWCf6_I(O_W#Qrv`X4QX32loh8M*%S&T-`Q)=7P zd486&&6MM4*1Vh2Cf8qW@?857ZL8TdUMkEkI-m{fOz>FRdp%yI6yJ{xvOpHlh=r7+ zzGt9}SU1wB3Z6lYw7V|u_lYP)1~X-o$|`Up%OC=d=AKDnODg~B2!&S!9TO2k`(TxZ zn&fGBE~J|`jxz@=QeS4bTKwZg(ZSXwTOdKYBAo0^k*h8z>HGjzNMs|O?r0(-^Lv{J zZ)E}%LvxGltSILOC&<2(cr?0X-Ym=kmB85>WQcyRf|?k{_>>Y|yuB2@iNp~Vse&=?*HxrYvy~ zUtyX$xOM*y+ylDCEqM5bdjE7JXnv)G`QaZcCTp5J&0fUJh(g!~*~k2dL&F%8 zHz<#As_slfR05RYV!&o~E3B3l>P{hWERc%rNv=YPu6S(dPe>=DFON~7B%16T<` zsf~+XO{I#mzGodj%0QGB5_m00l7Oy>^ODY4NlwcL?UqTt#F-!b#3dELb84lwGo3gt zASI~mQ;04HCBhO&)qL6U9fHzco4_D=C*=f!g_tZfH2wy<#8q+1KTn-gi3;0%2hbVwcemkFdw1;bBaGl@HUTZRWF7*BkyTf%xdvaUNEo!m^79=ggf+O_hRsqu zTqc8}Q7%xP4H>|Y!g-l|k2~=L?6rFot5Hqf_04}bG-swZN1kRG#4cTU?8CuM+y=d^ zX~68%((RY;16%?%H-sUthVhklo_Pl2GMqVzkQfW0oflM4Vd7ykw#Q9!?HtrD7Cv2% z_cYv$JEkJof3RP=o1~;d<6UL)F^B43!^VMhw0xD~d?lFgYxYFf8#%UdU3ZD$PkD<*!U;VhlNNDeOYeR|JJl}BHPmeF z*}o&^4*H`If=&fK8~aEvku!#)DJC#(_|V4&dZaMPGquCBCLSV{{BcU z>DDF;926PVB#1OQL;lP@T^Od>mj$UM?vb1cUz5lVbX8djWbiZ` zQf(^JCDvQ-h`6H9(u`d3Jpaqm!(voNK&bNG=eHE!;(~tYoWJe;6~d8^6gw4a&4}8? zAS)Q5f?%I=655OVZen&UB+lHR$UCwPQ2LEL@*^wef(M|aC$SrPipp0?5c|C@!3#L2`belt`Te3k@J6BP8+qLTY1x zf|8~D*3bFgi^nwHt|M6n>ur`Io3gg6lp{wW!nr(99?1M;q{u2Z5|L0qm%v3rX@Iev z^{2*&OrpbFR3eG(qXIpGLdGm}~HckFj_$6ct(JPQv}{D-Y+` zbPoXbAto`4aed#-d)yK?MRA*bO+3?7s1sV7aFaECZ=53ynaZNWPx_-D8)kuwr5VYD zH^VSPzSwg6^R)0yoPh&&3~rlmw6qaQvVi31fe7$Yx}> zG0`_I*E)rFK%4f|9zd*Zq9-cG%YEFR|Lk%T+q5awWRUV|DPn9^I4&B%cJ>4-LaXl- z*V7zjKeJcX_tQF?Nw&%#HQy>H{aFLiG`_BcahhEVO!Uyw)Lh5qgGPsS%QH-7n$t9XHr$v zn_r{+^s3mNsl*c9bZ;i=N+=jiN4Ot(C3{q|1kr|GpevHTL-KBY<^v%9CwzG}Kgy_? z$$y{q3;&z;G|$RkzTU{^h!GBwM<3(2{#I&7>(b9sDEZL0^WO2?(U564sa4vRA4o-) z%SObp+T&9K^QVD-D91xgxqE8+AL)Awm6#JUQiA1l?JZXsld2FgB$tL>)-lmJ;Q zzu{U{PtS!x%s8UOvAe0j2`3GF=Phe^=fiqL3*Q5+ECy&cU2_`7;)!!sCq*H=nHIx4 zg?`@SI)!$1#7?~Wt45NqIkbyhdvQyb3phF%-<5T?>tQCE`&6{$;!u;AN3@gP#izuU&tID~metI$hP};>{5gQ4;zfvZn#I5p zGN}YCzzh|@*mD_L>dFNXDNlxmpZ3jS*jB#FSOG|QMef);@<@~A75Oj6cds*$GhR!# zR)h${*jJi&&m(L~V@5!>X3|oeB4!aZM_OcSa18Y%`g#i5y$aVTF^h4t;Y)=~yDIr9 z%okqE;ip6#c0^2Fu?GgP;l!zG^Z=hz8H|C}T;x}zvIm1|P>1trmULXHQBJeMwTuac z3`S4!lVzx987LW61nXssdL)y4y7D!G4LPpHdhvI&#ptsb_Ic@4>rD;d!)?i0);f?1 zEg=n#D&+=@x=XGL|4s=Wln>{LAD>zN_YG-DeD7lnvYAnbAFQ2; zStVD>_eHh6u7Dbu+_(px6{42VBLSN+*PetosxFQH8L+1NngnPKu`m3@f6@`L3m@+a zCx`;c_4zj7#6gVpFg?WQX0r64thZ#jgw5e^=hxe{_neQo7OU=a+KMSj3GMXqbW7Pa z7+sE31k50MR^S*y%Go6sDEBez0Vt1y&R&pWR~>L3M!~V!?22pR#0FiviUB=lcZfaj zf#;CdIwWI79_Nf{$hc&E8_mLYW#nBC$r|oaZD0!9EP2mE)~EVAfgd{M5GaE1AZx5~ zm}7EFfkRn9ADsuSA$m68q(sh8KK(lj-YQG_@}3PI_{oSZ$kMk#FX=~LnJ<|J0FP7P z`k5W_Fdomsgc@cBx#qQsOFORdu-{FnE_jfzNzvE1cfx}~<}yNa8IH7 zqAtup@vv5g&**&KWVqIt8fOjmPx_gL?yFLyrZ;EX$tCv<)k7IkBOaPJs4^f|)0SxR zBUMr(@X42hq?;yHkH?!qHm6~ulYMCp)Fa7eGub8k`d z!5i6t5a1O=Sd*{OVfdt{!Xzza#sjJvOf-0FHis3v&luAl5G=}pP2W7!<*je8=6pp_ zDArd??H=)``EbfY;^kjgMm3Jt0%QsP9@>1+{DS2t;9%+S%PSbK#LLpIW06hco|}yh zn|M?eKIc+7HWq{>S#uNJJ}Ez{E?EtOp9P(gURF?AF;Nmg?bF(@Qoit`> z8UtgNgFN}@@jGi>r9y7P4TxqsjOHZzAw5rV`opu}c?XmN?PvL30ook9AkRQ*ms|

_#wzroLH3?>jR>WL(1OYz1GKB^l77}b?iaIR zo7uj)#Ah0~ABeLe9KJJgZb*ozB{Nt{(TJ5$%Tp$TP*3gpyYJ!Et~*+26+8maTGpH* zUspAzMY9`6SH1nYQ7~g+nhGrg6Jw7&B*eGRD@;OKzYj&ftllUC{YX05z9;yjtcqOV zPRYx^H*5KGpp5+bZPxqrk-eFTo>HV+;hoQLdQWX{NdNk^_PlzsefrlQ%HxXp8(}q{ zv@vrPh(d2)E|lq_eFLO-)> zjb9g*$NQ$#&a=q?SpgF>8_72ZZ%M-F>Clm3<3@Eaa=oZO*NGNFriCd?<~X{Ww!DodvWj?o}_c#g^>XM_jGoeDq$C)mppP~?y1p8dT(}ZF{uUMc;L|yB;I`W#Gm1&&nEqFhG zlq%qQ6z4mo01<>G`7@B_S#x!M84Q|DC7=oJEC*U;lZM3O@T1bc-s>!#zxlm{?P{eZR5Qt2yR1isa&&O!B!nwU}c>x5ty zFX`X_DyMTII~Xj){5CO1_Esp_^b|;I1`y9eHDBT-`Afq;zZTbuw43b z#X+sMhdfm8YPgJN-;+l4x5xF#%=zSc!&$+I+A^LFIpP>qD_`CX5qV)&DYI!s2m`aT z-h(9iVO*+2Le`Vr#jW^~tXJF9a?_+`QIF|r&fHo;P%Ov(z3wM9MRGftvlru=>8X%f z+Afm4CrBDkSzA-T_1>kg;UHtcZ@o)v};)w|uQ?o0(6B@|ygRNwhg z<45ZsYk$rvJ19fzdPkV7^4|c1Ga171F8q@D5#*$VHz8>hjigR1oqE63cSY>aF2ro^ zZ{#p1d{VX($uTC+5&%8wyUR2@dGW}g85WIv@1AMRvWIfi3J+%Kov;OQ!XT{q! zSr7RpWFg}SA2?kTj}#|Ne@`dTrw&*fzJ`zGwtV^(%d@my@rvC~d|+sTf)a=AKCMNI zVNczA*o=*DYAQP3vhX<5P*fcz;>2F3;>G>6F1~!_)CqM5iW;YcRH0trGjnFB{w6Z`eH%?rd^_RJjV4-5iB8#%9ru3B7Kew?FPaBEhA{q)n2BP zatd6-n38g$b1nlbllMj(SXn)I3Z)VOV{w`#fbF*tk{fW?yLvk;RFdaVle(O6X_9d3 zffqj+g|f*})g+ZznK1)<)GolP6rHJEEdSx8WF{*Z1nMjAOMig5;;5--wj#=!A2r`E z1u<@F8wqf-1YaYVYyl4t_C8=|nG_K6_>JV+li}M(0q@0DP=O+5Q8Wp8a40|MB8%eW z9Bv7gSohWkgEdGP;$)6%h}rZXYEMY9d{+^3RW!au6NI-;_~BXL$}p}H6=MZwGzBJo zoC&+9knO&BOYR!Mg0TVxprxPWJ@!nJfQ;D9lLobwM*&Uml{1nNoi(Vk?Ro}qLzG&hTyzA!boeraWUF95B4;I_cx*}0E=0| zAD>&|yvTSAjQt$Qr23W0tGjLN$le*C2)49TyC!(HCMOX$&}b?C=Pvy$V=~Y5MYm}= zVnmRnf&=7JMtuD}PEk85{Tc4X$mGX6EI`8wqOdGbvIcH+qK^$(2V$IZ_{o6^FaH`q zz=x!1qiB#GEOt#I{@@g>mFM$UQ=U_&uE6!h#AYej@1l8cxt%5<=(kl3+i?SffUH}E<^3`jH^Kq8v`{$l5(S&qur53aA3Yp#e}TVMI=I&orJ)LltK&% zN;4Sf?`gsUZmi>X2YHM5t5pOzm8UX5*|*<{TSR4Gi(tO@NN1UzTZ3iFfvVsvNODUh zz5Q_N034ms0lM-Pwa&6=yIms*nHqbL|ya2CKBJ61NcL$?1Jw1Y-_A?wEE7SB0hjPW$F&Z|z zHgZTE`4GjYMHI24Q+e8)3Cex?lm{@OD}pkKMfo2f_ntgFw=_O{k(;Aq1IrQwUtAA; zZ-~K1W9L%U#wbTPiC-F^>)0CpDeF*I(i-=;;?RxImd)23Qf;7}%$D?st?aKxH+dBa z91jg7SB#3kHYgG@C^EFnwJQDMlftZ(lamGe$iVnW)}2T`ksKTHH4QR?QzR}YW^%;p zjnSWYh|x-wGu?fLBQpOO(p5M#H%%`^S;-im3-Yyq7ia*tY7lUjWxr^uf6|(YHD}uY z@(CocTmu7PX!|}nr$@{s5z_F3S%Je}IHxGbBo@i3^hn2Yl0I#`gYx+KDf-kA^^pfA zLt9xdoCOiMP5Jr6>xW6HRnxq65q#W@cOPbNj*qHNyv#l#Bq@pFjwVF9b91eei6)oN zrQbg}j1Xv6m9%&Kpcmw-q~MyZ0|D!ju4SRiwWCH2(L%$Knai4NK>IQxw=59!wZDFtSzsXy_8+fajuP@|MO`|UJU?o4FQcWL5iVxphuN_uv;ALtZodL*A5 z>2ZsjWziI1VMkh|oqQ^{=s$=1XiU(b3<0WbNCfIy`d_vw8rzc2k zkI=qVo*pqb;gAtQ^tv!eA(J#p=W-{;Tl4`$N!qy!6(iQ1%kN?pD7*{$zFa(5^oLLB zM!1eS1!#eJ6~r$G%%hpQ58XH3DJqY%Fl~HV#)%?T`Nr>plDL5%zkg84c)BqeQGGTt z84-;CNd17J&$tItAFBaGBs)^P+u1#O)YnN6#iyc?tlh_y=&=;)?=_dIuqPNIC3$3@XNemqV2yqna z00yz7)gxd*fYqh5AQi^excc2SHqv!2lDp66{ky}J^-Gr27;R1HrM%N-pVa`UD>wHV ze7B~h;S)D$oSus0<0}uPWT`q$?L)_d2f+(y?aIx`9~}!5N7nE&0ZqJ*ZVsm10YOP5r*~H9ZVd zu3vQe0@v3q`PEI~lM%sO*_CKS5GD_8y)&S=k%92gm4!oMkyo9IV%hP$`~^coI$c8k zI6;g#wRS?O7$7&xRwp1@jzVz5*S*XUhin)2rA()f(fXtPS0rONg|31bA z_&gx5t?{+Ebb5e&OQ0p+JHnIZ0G*z@>wIK=)auP0&2kG5qk6cgG4uV|+Ub9pjD;j6 zyc5>g3|f9quSh+IFcuCJfoyF+%+G23p23R#<%Qd`!vxg|CVMu1}-> zWA;mP-HoI~%VMRQ<#7FvAwQ zVf)2Ch%#-^B*r~hxB(x}28!kP8$LZPBeoyLh4c3Pr4qRIX|v^LkFN^qp7(J`Ri+u` z{VI=+Czki<{QAwi+yclxKdR9utK7~PF|;JtAt&S!xSa1G7Vm2S)L9B!Gi#W|c+UVX zjL_*`7a+b{0er5Ca*m|@_|uKPqH>0nvQlqjGc7JyiF@*S8ju53@&2i+-v8YN_-gjd z?a4}907ZV2A=&)5UxSYluJlC8zX_tqL3oP^y|9X4)G4Gp%EoX~D78SvJowt6zM3Ri zgo$*zBkN>D9?e&!alc3NJyR6vtEmweZMs{gOrl0YD|NW}rseuIY{8359bwG_s2mUh zBKY4aF}Y4*{F`bWSS#DyemxW}hC=hm#de%Q)GmbDhnq0*Syu^$>j*a+Xehp-t+CI? zY%J=x>|ncVIZ?l9u(V29L?xs|0My?=va1u8f~7xmKBp;&g-x4gS%KGdNWe7c#>>+0 zv%BIOj&=}PWwniDQ_2{z(RF)X&q^AW;Ru3!dT;XqQbP&tKH8K>S&aHdf(5<1E4i}1 zAn|A(gq?Ua8**L>^odt&6T|k1UssZxb~2rOI^jJp%7M-E4>&3-5h4*nl4yJ&y3K{~+bh+#x$Bm4X`k;#fv1Gw{-B<*@sPq{xxt^Oi&}AMyw&v8@9Kh2J{ZmY z%QY2WFgdr13^)F$1g2sZ|Fr8b&~4Yr%)9mQNOeA~+BEa~kH3M_;wJM&58Cb@FGBQB zetX&Z78ECbx>+40TB$#kc#v!4OyEGR`N}RqG>TP>g@}R<*b!SHw3gxDwz2qZ*846( z2dBquuYK1eud})+z<8Y}8?^KHAsbQVoed+Wy6?W^V~FiNSy?4n>-@yWV*h9^!yG&0 z(*CrQ)S>>ImcK=~XfgO0gA^#^ORfsYbc^c?@bo8R%AUCpW5IiUTDZS+PQ`Uwqv$5m z*e`dyRJB| z^SbW)x!0#Uo$LbCmDF>sGA?~8E?$44c8ym4%XdZmiZEFKvz{o~IRCIZc?`UKz5Y#Y zI(dw!Dh^9NPsmd2*>whj(517fg?tMVYC?*; zmuN)DqJfoj!bk2CW%Gfc~hY!J^kRfhn0s(!VX9Xrt)U$aT0r za@ZKsl#WOanawWU3K+hv|$R`XO z*0gDwY-pup?8|HG`b|W!7c!sJTVbr(6|BJxkJlY7+-BXZ&FY)xyh&m~IOFEan1<_i z8!M&LZ6>o#49g4{(T%@#%2O*xgE}QcEk)fZ<%%gTCEe=u$FmXEbr+3gb5_jDD!O#) z3Uw8S-g$dR6gkzdg)HCh6K!+@Cb1I-I@`i0OZo>L6%2gf&Zc7+HhOpa`*&2`8@F)k zf>(WqQ`cOBNJGzY8#Vb=!p5n?yiCacRO1bgDOrn%jZxqJbTKOiMS|hbpfB1jaH9Lv zDOq?dZ*JgMMNH+~U*=Oqml9MQFjB?2GVS~EVb61~m)kzy@H2cQZNv2H28G(k_6fz% z?U-l>oQ^%M{8&tzuqmzlNKKc*ShP>Bck?QJ%uz>S_QxE_WHLZ-hpM167oZ*0r|s6G zPOr^~yj$Gph8N8YB2d`URslH$k##svg1lk8PZBArvyk zHkerCcT!Lp-pC-N;vm07bbQs-5%mG+X7R2p*@DzP5J>)^@81BH@k`$9(zbu1+)2sn z_sYy0CpA7EIotclJA9wL_fjtP_xBCL36hO#&g<(GMs3=jbX;OwwjYd(COq91o5s{$ zF82R$Rm$ts@RJc{&j_aJAo&Kpz+jiAcEk(CyVbkfHi{z&fU_w=-d1o z)QJ7is-08on9=haOl#>E-dZuw1b{;+Yf7L?#t!elfyN1UU(Mv|)-So!-C8gFGk@Sa zgPH*9YP#nJ`ZeUr%+nY~-LaQ>#i~%Izl6Ty`5@c|olZi?Y-o>A?v4xLv%)t}wC$2F z*7CNJo%G_33&5onnv~}-%1(2i$u`#^`k&$jAEs-Sa(-^`*#IcxT@{>$~E517~C4}9j(8|&a{?!fpf=@o>pF# zqD_&)qJX~EbE0(O>(D+^)4v+_-shg)w2y$69~sVOoa@W@-cye{T#xD@>pKCrzu(C^ zAE_pWSz@1wm&+Xoi;A{)B1#e#Uuy?Eh}@!~3}O`l=KA*jnFs2|EM9qkGWsswLQIQt z%6R%QMF|R7Z>(KVH2wAakiUUqft=Cz9P+!0u4~)JqV4jgC4S`-+ZJ56gfnO5v)!Ho z4r6~l`9x|y`9jvt0`ghh#(}e{1#OX=TamEUp_?W7sS3l07}YaT$T$*gk|V=-)bq;OwPCfXX9MQX@7fN}MRP#*NP_mc!odCxD*WHFNOI$$)pg6E@GuQr4|pNjvkN98}k|5QD9MZ?Rf6Y*|bBi!-#rC ze!84S>t#vKHx(|F|A5XpIO7>RMzh@mw^I((dqs!hpH|x9X6~J$#g-h<2^ofKRHp zw$~|?4k;m>+Zp+r)h^RER0P8izSup7Hq=#M%ATMzF9Qh-Kxn?RTg{l@HFCF^8U=HS zG*-3VqN<}S4+=rsp^mpJzAdN>92`j9S&awAaX!b|5TV|7_j2_jg*Vrqm_<)U*KY(ltRt!avj^Uy;^QR-3W{fz|xlg7$RpD+Pl%C;mGwvJ|gdZDua!x2bpR3`}t^Oq`w1{dn%eyw?wOslO+_ zBXfGo{LY)OmlDF4LcTdIBj$3z*&?t|>`>D=l^C=ZZpQ*E5 zIU2IU`~;i4ZSXwweVSp&J>@lnYU$)*vbWaCu0{dE4=&LGaP{@Sp(qX#-o4ResapZa zY7o!Zqjwjz$ztlJCFTDho+Cokl&IZxpU0T2wJWu;0R!ofpAVFlR!A?=Xpa@@_%5W^ z-)%uR6EMq9B_DRwkh^~8qV{Vm)0_0Tr#ff3js1Cy0@1xxxpS+6hTh0fo%WS?Q7h#k zG~n5fOOh0_JmaW=Z$Elh8`V2^_`PSLW+ zw!z8>R?M>A)b7Nnk~g-Ew#ok`&qV+)1J9`gNK1XHEV(OT_V-s=g7@^?&(j<5xcMUC z>fqs(OQB14y{n*&riDMmOog9(6rgsdbKQcpv}y^Ek_p|~hZ3}FBXM@Etix1y9jBpv zFrEe2C4wQdOM*YJfLnIw!3GrfE;LZP@^j@K^I*&9iV|nGTkDOdzoFy73Kjlu_T3ee zn*OQ=sqL0d->dn(yZNNG>7G|lQ9m~JsT8Yhv4hW!3#)m?^QI>XD?rKpHqb98i{Kfv z1XU&2kFqS*q-ZdYxK>~CX|iynPx`2kxJXF7{L~-%c{3dNk}&zX73b1?7bNSLw7^m|iLR*@-R)=#sj4{Q-c5BfMRQMj&Fg@Hik8=nc~x~@X)!%3N>j<$E_(@}&2uVRRp1X0#1K~b zKevE5(9U=+th0ZDLfAvk5ahon_4fb&LCEn~vSMP$)q$J9cj*5!NqLWlKA`Nop4iXh2*!^R*GmbIfD> zqW)5_1b=bt(sG8Y^0oe7R6TY5{?8&Xs7qt3W?*@#ZojO9K%iIp|8z(5K=hwJq*r9r zA!hTA;ozJ5-}Kfrx`oD>Py3?;#ewhfivOnqDP}t6p0S+Yd3le7wMoVOO;RMT0Px|T z*Y)TZ8!>;xXqzXWUfK%!xqdToR$)4)xx|lqnghKx{37T$?SSt8%>MBgL1OsD0&U_X z&u$L!Vpfp&{t)sp^ptbkC$6G|dG*R$dPF{jSF5qs$NaBF-m6Z~ImcqwXyr0&MueQV z2~1<7X$t?dkup{0zgdYhqu7Pa&>UY6pP_FexeAuisP|1$X4D0{cv(#6R?w`=IMsi;);Hg@L7UsJs#;@q2u@6dO-XoH|Jui4}HHtya}_rRP+(lyRtHp(o8sg z6;>j<>Q?!e*j8lWVX8j0>LzJmnlx71>u(iRreXV(kBsbpu}1Y#cykWucI_b=X4H5^ zfw20tBXy1w#*51GYp`qG!ThL^=j=wmLd;>yH6}KrhllzT~gxdm~T-< zILOv5Z+p}#$Ch?0l&P}s-DHpytHnA}D`uO;c5t=F#pknCPM--cm+jbk-Jd4bc#QCU6TY~w?!G%Y z&M8FhFcjKWfZVjy++~DcxIx~2cpenmnQmQOm$R0K9dEYSWZdNNAAYm$R=f^QS%%kT^}jJ@6T-Ad zsl6`~P4GrQHB3ZmGc#dJi}1snCx6*0`qffQs#Gixn^LG0H)1RY`saaq&=d&_Jeyh~@vhO||J$GfQrkN^9TiT#AOzc7hTV@lIoIG~&3M5#QBup_qT88V$q==wTmO+76HZ(gNZ;Sd8++Q*+4)Gqe@zLRwQRod{T$R?ZU$3j_8pK)Qoa5wRZTJ(+1(A(B?9#2Ao)mafb*7zQuC2`Wa zP~-kju9HGHxFqy=7b@uEmev3AY2PXd(L+ zkSiF*iXpBZu$dYl`GI9BIrNsgoAB-BAo zqca#E_`aqHnXiZSk|$~7jailv;FHCH2MmxTj2Q`sSIY@X`S`Krcvg|W);YzUXKpu0 zkGy^9e0HjNSNQSjO5Y%5HIV8H*!<`@Q7z(nRB9n9(9pSK6xx?U3fEI>s?3Tua$$Bb zsLDxh+Q*qtj@R~Dz-AMhSWk|nl*LwWN=#Fm@{{&zk;~&eGs(-^Lhw^X{l0?IQZ+i4 zTHNl7#CR*ZTg%L&D+x$~^Z_U7?xv2O(_(Bm-f3{(q)z2v>#84CACiDElSCc!!1`OK z9dKi)82zCACd-DZ1b;~Y8iRupiKTY%ed^b$A%5@AC~L@r8#k6km^Ds6J^hrMRrLxI ze=4p^oCITs)xFaSN!{vJYljeR1QbKf{_QTsomIPDv%itqv#*u5@M35T$y;rruoiGS zzmqk#3e00nXtUGF#x7i9v)UXmY89*$457wWIw1|RQDJa@vLlIumT1hLR%=UakPZ>z z8+w8?8D4U7j%E^5o`L%d1%Vq#o+L*;^gr-i0#ER&y#;ZcKV{B~pXYQy0I)aINk0dA zrIf)oNO*b{Du-0X!fXV2+m+5kuIfWN=3xHc1(1pwlc+{ z0UiBV|DcUJCPZz@4Ttg)Ak?y&<$S^)H%_BxkaNsT@eIT*W50jvQQL+_pJp2U#GofR zkmOOE6955H2+iOHtEy+NvJ_@n&NyxEGGB&)2=f?nb?gr45X zs3-3OC)R!592tM+dOF-<5~U!%lux4||1tYJXo@z^jqrODJ$2E?&Z{ae2RA5k^z+A? z2K?HtTYoHRA^GFSz$MS!1QD=%UadrJtJ?OCUkHY1=G|{C^8uoEgb{>j?znvWd-G~N z;lx%1y-}W7gY%TPH$+wttt?y?kZYq~rKqug{yYggk|jR7Yip}!bThfO1?zCLf0Uq_9GnuYPj{7hnk4jt<`c^Folc@i_>#;yFbxW0R(n#N7{ZTRZU^0BI42N{ zX+OhqJ{BH6N;(qPz<)X#{DIa-R*7ZFS1jI5dX1p(gI6|1EWKs%mH+Dtp z-Xlp9C$(C)>rvwIKl;G=J5H3dA$X3?DHaDE(t0}gXrhgfOET&4{t5I$u#HAx$>o?= z0vRRU_AD98U&kLT?I;%V^P_*^q~-p>%sC4L06QsI=)V^V*pUY} zt@fx*BA&RdX5<)30xzy)_8(lq5T&1u6HA7G9 z(p@ILzPad9H}30FSv2*>oy*DCN&rAaPCa(tK?An_B{_du>WW{c$CW{aX#u3Jn zIVWtfeTl=CU#PJY=vC6X2Ef>A>i2tkg7lh!3`xiALN_lsiCxT}<>3`Wx^ZI;3caOHSL< z_y0h3x_@P9zZ|Jtf2F=bbMye=>L^zHt-{F+rcq)==g#Nh-89`;pWp^P@$$p3M=TXH zSbm8m{>(?8B7BwyO{bXmx}$uSc1dWjlipQWAGONK5B!p*&+-WjE(v4>c2;gF47;-I z#d6ff{24t1TtkMne~m08WnrdKF%pS-%&rjc>4;YK=_3dD;vNy(`ByKe3)vEQH2i4B zyWZLqx0^x`7HhtPL&PtLrM-Oo=&YMAp%4|!8;2>jlb%5?#cr11WOxw*(*Q^#h%aIqKosvjpiv-C5atbN3 zz`X#n*7M&8xU@i&S;*R>^?;_^P^2Gn%}`vS+|uvDo4uHvCf;EpTE=g2IlyD_1FlLg z$l|`qr{1P}5(+MuVj+CVpuvL4oi_*U#jIX7p`W)an^4%$?OyQg^6#tAY2@XvuDCy^ zPri%NY+Ajqcp6;a(Z51)ga&T@H8b&-?(+ZU)c{$U|aq(&f>RJ9I=!`L;|Et=F0v=_jU@GoNWCwS3_4sch%gu&gDne z`soON4n=y{)T024;dv*e0C#wxPad(g*4DInaqq>Xn`iM})#Oo?qa=qbp{1w}k*3J; zUZUja&cCh~nNiEGTN$gDD(V&qhitIE0I-J{K&qsmyLNu7gE+|!GbH~m>6h_Iy9iG* zKtrG>0kHmPwq3+&Swb~+h7df14ff^Luk}XH#RM-*OCV$mZ@YL2SNQiR7v@Fe0#Va~eq%HJowPJafSY00llf%BuxOMRG=0N}DE0~4a=OqO1 z{0h5jVN+QIv=n3S`7!$Kv8iJ1U5&dh>MD7 zf?KN)&+(G+$%q52KWZ42oYEGc>3z_Inyuseoj$x_Au;{a?EuwXIbF~yvdV_uvk~#w z2C~CFjHk!Rh7NaA%a@3olFKt6mLH-e$yL6;v_hQfE**B5@61{wS`|6&A5S=80Vv)< zM6>Pmm)GlKQ}j(4U6;&TnL_jy>aOMuu9EEtFaJ>Vz$t`)u?0Q0l_g6@(}n1060u~= zYc`;6Ap#851I9^E+|BHhBkhG}Zs%Z4`z8U(5hO)E?ZFIMp*}CPzh{;xHXOUutNsn( z9mmp&KZP)bH`5;xi$|f0Xnn804R1Hy)W7;dp2D0?hr|4ClFF%}GV=dkDJZR0OzBjV z(_6Y4_&Ydc2$eWojNb^Bgq*~}dSQeiLyzU(p6E}IV57DpoK*dWMb0=dyCW9hn%an^ zh0WFFYKXrsag7xCbk1*4SAApf&Xip%+hfJc%?sSj!HTrL`~5oEr|ndJ*od3`06w0% z{ZJO9hAL-ezhKi#(xI?6Q@O}4sP4qCUcwKX-D|(T)7RMLJ-PETqshYg!;<~w8q9`x*UA^DO2Sc_760+75lygtCphS7{5w7)$`k|rQVJP56RLF1GnbN z5_t*Kw;axC+`L9jf!}0~(vB$M0t17x!(g)pl6Byl^==?Tb|G1OVOFkxHKbiDYmjF= z=z2Vqi_ByaJHQN5W9cbxuRC9z_XLy`c;?13m4C}4rgB|8z1}p3S#9cTq81ox}UJKw( zIACL|TKjgg;V*#p{<%GuCEXZ+)17O31DW&3w4Ie1X8bqbl@0$K_+3yc-iTiNq!hTV zUSSOuIpdutj~+F;`-!d&N!j^TnLP*ssxFxUuS88NvU&r8R}AuD{AU?{223T+G}zt3 z+Lu^2)3To{Nx9jbqNDbHM{vF?A_cvU^3??pfJl_|TR5@EU_qv)FMIIi5K!DH<0l_l z_R-3IM3`H@e=AdvgF}_sg+Pz8EY@7t7L>xDm7U^yvt$;VXbaX*FV!T*NDaVie&d)(=hor?BWUAgdl4y9oC z+lo%YVLW)<&DaHMJ?3HZ3EzpFOYVVgyjR*E&^S4CQ@ROjbvNB<8MUUvuax>M?~(xM zSb`}F?-J*QfEpTiJREl*Cp$bhEi!j`^{fuoLSji-UXO(&10@{WM#qdIoX_ym$|l27 zIg-2g%=b&dEdp{7@T^pxOH4l2QYGHHX(+6O59!+WMobPRpTxHOn3NW3!R?36RN5zA z^uSblqWAJwm;QA|EcYUeh1htk`??}b(K|V9yg8>B&1GU%Z3_{Q*#eJiUu<@>5Y{!z zB^&YAH+jL8_7DjEh4AB4rMItz7-fU1Gp8%xLhqU!kAaGF!77=P_!nY=GIpQ;K*PPFy*f_&wN8xhtisAazD*%Vj+$rT7jYETCW%D(+@B-lA<)02l=xxz`MMV3pVq-{ z0e%mUVA0)^5e>hU$%y56k)b}cZKWP#L%vIp@)-2&4&ZY{nL*A`!Rb!k7U7uU{_(bL(%2xXK=SxH z`460Ks}+0v{sA28IDMF}waET~Yaf{y#&u#^?$n4mN}Fl((*%5)>!hxQFRH*fF@$Xy z$dLtO+i)#qLy}9UIDq_Ot>T(@GyBi1beJ@r;jubVY}rzkppXCaaBJ3gzXHD~H+9g$ zfzpJ#>pdQlS{fQOJjnnD21%XD4wDiI(xjtilJ^P?Xyp-RpMgln;{`A-fo1uyoZhzu zIZbn^|J)8t+Q)LV-l6r4qgLwQ>8ZR$>(BPM5(saiF~!CuJ1Oj$dduBn8!8(t1|c;0mY~J#k2M7|i@VLda3BHyGTzv=@brs?_R;*DxplxocHpktTyhHB zM{@^dRUZa%%KwbX8=7$9&(M=lzy848Q`X{j`!){8v*{gH;i#nVnR7Tz%mIvaCK38) zrrp-G!nJk6zm<<}81k&wkf-Ga&+(+V$9C}n;0u*piDxzI#I6TR@gl>B&;X|sG>P!O zg)l{M3B{<~K3T#^^{obPYMV)jpL9b>pOi>Qx#h!my_2Cjk9mwd{NV|s)cl1EVhW1o zvWnz#8oZ!^>*xEInm_k@RpR61_C}L~BLzYu;c6ee|G6#6k1ML6^`Fk^5u=f1C9}H3 zv|2_*f`k9vfeaHmcdX{+JLT4HpGS8D(A!d|IL+)C=g56ei2noPG3m4th`5iWeTkDQi`%2aLcJ=0jUPpZp zj1Umu904)PhkdK1Y`}S{k-J)#T09D6E6@5Yx86~*5!o^LxHmwwfw9rkNfJdmQbg;M zHn|!-T!g@cv{Lk8j}$^JCHYKr89Nmk*|?1ip!OC~08cW)?S659F5d>WUHrCte3m1i z*vC$(vy?(SuR|6?&)8_YuENa)5#|k7dnGC+PwPSvVvTWx4nZc^D;b(~C8HU?SvS60 z*!Krg9Szov;aDFg>Ww#V1W!!y1DmBPJ&`x*lb<4O4TkXMa^l|3sH~tS+V(DwjAO;( zdZ>ExbWTd?AaGQ+SLkF0?*HIh$xZzRQGMhA5(kFt^bABT@4%mItNFl zyuZZP5ad#i*mdoU&EgCMimP87RQ$|_AkWU=2@u)DG_W1S!~AI)%!3D@;mDLH5h$}d zkcOksXsqloQBg5T?Q}P|R*%#tOx7?9vX#SvZny=fx%9I;)v&eA&xwAGjPF?@Q}nbb=GQw!(MZ@P0R?S!mRim}q!e z;QraZFZ)DXQSv`U+;$hI#GQOs#=Qbhels2IVClyaK~ihCId`$PYsFXlIYNWQ?#g(y zP+|G=;B`Gby6l)ae^DrU`_^-W;w^Gec@-VA7z22JF8sZ^+WiMtw*;6Q`rjN4q(b)> zXxs2>*S?s0F_G&isA^=C3o%FqIcI-XLZ$98ag6&#)rf4aPVFqfj73BWC*vqW z9-lwb-$!Y2Usl*oqbFV}FcdxQfH<-!SVN0@gto^SwkL1h#2CKsG2^CW$yV>|fb;8E zU}0KzC+?N>1Ds_+x#5*__8Wl=rPVHrDYV+l*R@_tsh*VFPm-XZZIP#TZEKAvw6=V= zY6uk4!?IxhOmT(CjKn8W`<^#i@z=hFjL;Frf9StcQSsI8Dh#$Qhkq?pU?wX1#$6)A zM1?s$Kk|R~^oAA*x(0~7dqVuz`i-rirID_9j{avdFsfwQmqW)ara?n7Y z%zc_7L6g}p%?28~FUgq|D3JQaToS?TJXHQAxW4SGglHhAOHxD0GK-Ezt z21$C{_%s2!Q1IrWLU7qh}>}R#=Y(O0j4Wdk4Hv^56Ct$ zoPz#ySL)OaUu5VVfUjSFq%vbUHsD@t(AVHXp*(e z+apNfpDO85gT|vwb8M_XIq{^emr^&VI+n5BjZtZT=8iRf=K`x~SH9iqjdl??o_R!U zjDXW%<&$y+2M|wnEB@ukuq~d8GB{p_@DjFYz?53V`{HhmEC=1gYN{UQ@LqSTlFs)E zMItR^#ZvRxJqkO4fuFZUrd~<;9iL+B-3hfaE!Zfoz@wdahull^UqEeDA9#)W9??)& z@=CT-MGveM0tA`hnjq4}60&EH#k)sNtk_fi2}Vix=>p zr4sZ@PBiYcR03&1S4SSb3$DI^kJJhvl2NFR_)>PaQj~jAGyT4r<~(STVtzb@ zm37}KrUI#stTqHK((K}$sWk)Msjx}hS{0_DFEY+fAGoh7QrMXIf1q=AT%K)OFy8XcR?3+lNR({BJ8=AM8oL0>+=}pBb%=elNl>GBEksGbeDWtd zgzS^8%>|#n`Bq5Y+M1&8f%BBQVv1{Nb*q_wWw1 zaR<1wz9bB)En^HK-EraIB3_*|stR%WsryL8^5Z);mapuCGbKdlVae*~wMC=Z(Jz-s zMPX2}Ur0Ci<4d$;93fJPP+yfEX;{U4El*a*RN4j5nX~OnK?8Ug+Z5Q)C)}mm&Er__Bm*NJ6yLR?T&Y6IPszE=M{pS^BU}i zjN~qya#;LlzV)+^aG}QSqVNXiYGG?v?Y&t4JD;W)-Od*#`r1GMV9r@;ot^{H(sZ$%w+hx~ABcVSfTY)HH0te@udJ#kd2PqEtX#Eo;%=L|mX z4SM9lK7XghcO!$-yzSXeH8@HXj}iDU7fE-X%wJi6%)MD}MsQhB-dW-N@}u#uLWTy@ z%Lo&5GxudD!P^&VRYniN)z%pU^EyoXb>#1c$QAp7OJqpS$A!5$Qp%ttY|g5u1Ptf9 z2+r;pH#Gr)nz6X!91?O?9R{ApNipkOXI|WQ@HVGUb(ced|_U+VKpP{+EGr*5108^@?UCq)t`~G_B|7(BbQ!)gkIc3e)K21 zS>b2|h>A~I&Zn;$my7t0$p2TdM`Jn)3qxH%}mWQWh zCD9j%T^+o(Rmm12@>83O11uL`Nj*JVSz;&%7wi9$+uX|uX=)9nk!MWS{|fbH7bzT- z0K-%#*eXLq&uNNRLTF(AMhzMK@TjEvW%`KJ)L+|n$b;hecF4E)-c zd-B~PeV3PExRgB3hBUaB`|zzfXyQA?KF_j&r}6X+N9jRy34TZSf=$?YH~6kXISodQ z{a?LNg*o+HBXh76{Fz&4%E`8D_O`XY7o1V??i^*`7dXK z8mSe70&%dRm#+tV>WQ7Q6T`K8L@DnPo z>A>JM*EeZM2`Ve?@PYNjAXfA=yQ?efxa|ay!;0yLLjZo={TWp^2o*6@BgUIHv-`<( zIEr8f@1e*Kd$kCT%*MpJK?*SHQXC)nOG89Wpn>B zQp4zg=vw%7s(?p*+hiM9*S2z zbWoD6pJcU)m1gEI%bT}FF2D6iukla|>EUBD**a755-&<#hFDoHxA(}c-rQ+}ir|p} z8FB*_I%ktMJV2@Dp1vO=9-60RW{0QkW(oW(2`m%ts}R+u*9ec{M3kQc?8?E zeZaM18!s<~SPAcL$dLSv2un77q95pDNSwA*dt4|J*{Hg&2#d6=Kk0 zgaz-FHO}zkWs)ZYfL{D#a#ze=rUllj1+yFG!BtJd7r)*13~_(Ee%n^vU4`A?aU<>Y zvTn=4+Z%O%=M?OHH$`F@FK`YA+FVVkkm@*~nZx%9WO9bZjXmL3XAF5%bR)(g&o=7Y zsi#65L7vYD^|(wru5y}NK;enM^@f7j{bEX_<5oMZR=<+BN4nifUrO(x(b8#2N>~1? zVE=zhOGZg6i>41Ntq0J`KXz7&rz)2P2&d)!$yKtc-qo>Xxo%V)nr|OXHP9o6UouMC zRaQL?HpDyTPxKv~e&jq&YBWilN(~ElLi!%NFHotw>=i!n{IpHaYp7Qy4Cfs&Uv&{CMWAx*f6SZU6)f@8CH~&Sim6PWQ z3&_xeY@c2$k``^oh-a;6Ep<7O?03GSCBOzNPHh3JOLrmZ&C{h5_#=sm(NRN-d@{J0 zObge#rpZ`+UM{4#KU`ky5`MWpiH`9id%{Y7vJWfskw^%9t+4E#-_IS1(w8`9T>Pl@ zw`b;q+FpP6q;`uA7pa>wN0aA_mguy_6K{Q|f<-JD*sWOLGp{N}8i4v)hTcPk7bTiMxnw@vD;-}K7Pse>f7|>@~yeu7o-;q0Su>qp<`;W&US@) zIa=1_KxgY$FL9q_Wru2iR80c+OExrpJkXbVxf;y2OL)nKRoPTmN)0Qgv_{s68_qEf%oAWeuH ziH*!&3%l43A{%3j`?MJ;{qb@RGtD(^mH2s~*NCIkfzWT>-=BAX0pB4bzYUXbxD3TC zS%wb3SsbMJ5x3a2TVZqX;3AB0!Wz5}MQOsERtnIcM<+{{PhNiBynM-X?w=>pcm5$v zA5*eY$29@I)pHo~_uwkiFu0q>x0mTorL~A*T2sLzK4fCeJt<9*!q=Z#e76G>43FQ2 z=8w(>Shxyi+MDfUTz3a0-*Lc0i>>Kg4kZce9jT^fa=LB$tOw&gI6s{D`M9r z?^pYa&@;3tb(CW-?*j&OKUVWJvv!D!kN-vQsFdX5hIr}q3srH8)xgIcQdsvu#{Pk( z?tC$tGR)E2RF^iNq;2H_=FB25VqjM9uaNe^i+X`1QUhp%Oc5J!JO~XaQYJYwzn7vYn&T@|B%sdmm;l2o~E1Y4dy~zYcU|`Z{@Cely5u49H&j=Xt^gBNj7cE)fgdR-*7gE?w$N!4f3y_J0*<2mQ zR8-w(sC@pZurs95@<6{GjwA+hgpm_&cEX4|WHCqYZI26E$PDKp*N<5?Yc9Q4m6XZW z^|jJas^V?ylow_AvLUg(uQ}Mz!L3*{Tq$n(L6d?tggHA%$tFun@jeaj1eMW&&erOP zQ=GY6;qaXD&!3U8tEgu^M+LHNC%g4~XQ|+xo!`wE%$KW{Ws!XroE(^!n@ci{fcG zFYeNNhql^C2Y4+VT>G~&?LGn?5E23L)@vw7R~TfQxPJ0YUf`xbm+>n7_ZWTxIt(FWyl0BQfDsk<{%^ns1q}QaOG6A-+TP z3dYqtcIqVY;*z=w52HJ8;|J@`o2=c}sS84=9=W`7bVFcu^Y2{AFi*=h_j~&@3^8<whyc-2RM+QW#2WySOH5GQ5T0Qfm?@Nq77n0HWf5v+AA? zxoSMFK=%NHy2w-fHLW}GdS71HA@o)2e%vF|i=nu5=^3CxbS)i)3%)N*FS-c@4yQp2 zDw|1HG3(3tF8AK!Sd8Qx@)ql%-@*d5RAeIee%Ph)u7B0C>@u#e+a{CkjvFpj$d^y@ zFp|(>5#HzWWU4NxI20Mwn7DPp76t>JBsc;1DA9RiDh{^Kgh5a{61;}-4jd~Lk7xN0 z-_u&s&?E7D0!rcwJ3-qyCh~<_)_aP$Qr_QoXrr|S^6Z^u+&iewdf3CC?bJ-X#Y1(W zXLmijQwU4~5(i*${F$W1LnINXefX--KL^0PYP=$sq>-!g^TCyz> z+?J+;yIzp&KBC{L{2#9uF=tsgMWx`j@u|A_`V8nkW~1%?-{MDRYggRgk!5Fbc(PH}S<-*n;s**5+zgtkg@WXUt zQ+$6=S&-s|J$)SVHdz{NSFKbPeCW3HutSwy2wJ%zTr`?@SiJxyq1NM>phMGjWL{Yv%5{+1{(E^fP*2JR=N7RJ=VyU9=)RHu$r zGsQ@wbG(>@nx7PeV0*kgTFL#7+Qd~)27BQuFEPn9qh7MJR`r$0upD?E@VK^2>*O!l^;KWZb1=lq%8a~YOnR5zArH|dT* zvnhBdqEvaHy$WTnn^QMhJ~u&9rqL)Khs@>#m40WWWV+~ zaBP%6$PcF4pmIDO+#L&yQdifGi$|H>-&**0xR5V%c`m*Ke_iF7l=QKEp0V70STx!f ziVk4_;pq|A0Ao(|7R+aEsa$bj?e@Dbd{W9Pl$JZYRz9+uzz@vktMlbyVUG^Y(9(Di zkP^d)!U%&qlaqtKx!gELyGISI=3-YFEJuZdRDJJt2p#x{cxtYVexFV|#9YjtKS@j* z_S?uY=&x)V7I3#Pe4{3QeqGnWtUuhm@?q7$7j!dwJ>$OU1Ac2ob@qq*RhGHz;X!c+ zAN7zSJ^jYMt}_qc?VR{Z??WFf=?Wr~F_V%aF$&HB&NvZ!K1zSQX(R`^?XqOz8I5Kp^YC{cn#}?jEac z-7Rd|v333yI|k=r+!q4kb;#;;+p`zJ;_LSl^zYb9Bpsr_Ryp>2V{5|0*~BH*n_XIa z9Nq>`bvhMtf3SpDdLC>V8dAK$x2*TUw?nKzk9oCb18D8j>O)OWy9%bt0F{3}^Uvwa zca`-Y1Ia2XOi&r^@QQI-aw$S=QOf2LoOFy$%$P5)&_uQQ`S(xb<9#lhL|i9MmM6Xc ziFe=IEd#l+qteNk>${A_p||~#o|x#0O5Zrhh`r)02LZK%YGW>_AaUk^P4iM|Uv>w4 zBTfPi_2Up%!{F>f4;D3RcWp{E3~t5PC0)8kQ5`)@(m7@ek({8t;yl($tclX;!mr1J z{#u=c%uWg)FYQ(MY~6kZG7hBM!HmB2#Sg*iAX|*d&aNo-T+6T(5CQB8VJxi^gJIyK z)~ZkXrlw2$E_F|*oX8o{@q*3b$zvf4P75awsDxoAhDf`c*{|jFZD2r4{5UReWu=(w zWf_L=xT~^aaFv8hHIjotch7y-6IwJ>ZV^58ucP3q*5gm(tnPY{A{6%f?>aL05tQ5E z8I#(l4RXpxFki#b{*b@GB03lU_unx&SOF5du6B+buGg@{_)GhmpyU1 z_mUDb`tEq3_)+uPGahfRiWwd&+!CG53D=qTwKX?hafZf&$O?}wC72AsPKK$@bJo7_ zZZlLm+Czb9{Vp7x`GSAqaWHB=sR=VDG&uAe?H9j-?|m7+)#BnaR!p5(utx!CEEONK zGK9*f!M!GaJf4@Q>c+_A%x!y6pcnCKVCKT1l}YlsRSzqjY}sloICpFhW^p@B-Ix(T zdxV8Lkds!v`W!E7>_`(8crB68D>p#~jZ>llR|wxVbTo@jh#ZeziT#TrY6Hs>f#Mq? z(k`wEa)kyBx64zs96vYXS8rtSDlcX?iw}s5W`fBYqFf=4#Y< zpoPJPTpriJ?L$17=*+^$TD~K082$T|jR{mA5MbF2ZgO0iU z7(JmAlkNYBGH(<$TG>vF!IfjSG5OQNj-=8Dp&s0v)S%T&>_HuLn@m`Dl}AW1*g>nb zu{E5!YRRKpabhEsUy(C8?L=zk?}@Q;W7%BmRSZ@Pop6g;6iYgunDjbchI<`PyIi_% zwD|vf-#J=!_4D$DYHpWhqQLSFYZtQFtS8lne zwBz=SF5vVQLY)cIFzTyBhW1P2EG@?RR_+-llZVt!x*h!_ZOq^_XnA7v`>mC4VW<>6 z{a1k$q#Nz~-5@E688ZTq0iXApl!S!FbCHKFspw4Jsgli*6)1j!w$gYWecoRU>;S!q zsJhVZ&BQMk1|+9nXP%pw{|pPpc5r@$GW4iU-0Kn#=nP-$=Hi)Q0r}p;o7cpkU8rMd zZm=uQs-;!0Wh8r6Xz+`0IjQf4p`1pmkZ>YpZ&gJ(?nV*{v%fhJM!(-#c{YRsL9Fb3 zUnsU=<7zH`50m4`z-*fChrhiuq82{3kY5nln*-S{)T$ApYbqr5S&WeGUI{e{tAZ{Q z-MR84aP6C;&sw60cJeBUq5t-=KHfX1IlM+zqG!aKLmIcOw9%bx{jh||w+~QxDGURh z%$?RIhK8ViFOqFNzQ?Kw>ul6)h4LG&M6|t?Uj!}0qr-z;@GWm!Xn@xi;s>~-;<8X6 zX=d1oXAz754yNFkurx+obK}kh&naDrH_pBwb5~yq=9!ejUWt2B#gJV-St;Zo2sx75 zvEB&41w=1{=FHZ|YivKd;?Snh(7`cHBo$<2RLU?h_Q)Nj5$1CD4IfZuKocP?kJke4 zI=#^cD}Bpnw-Y99{~l0c1+%@NH`tM7sTH%Oh@$m&$pJ-J-M+--rojgx3Z=~PjrA=t zJKob_xn_bTK;rssUn5debEU@9<{qX+O@QM}zw|2Cfs?oONBqvvp zX~1~+J}c}$>U*!^G^NtuXCa3YYc2CbiOo-~q+|+$wEaQl9~9SEy$_$`8g@0~f&Pia zjaQc9t2(dh9|iyZ9x_sE5HaGnMyy9FcU+|*ZMHf3b>V!4(*-_0-{Lp!L8IS37!%=9 zDE~6{;oT`gN}Y$eJPrXztm{a3E%r&tEh|VNQ$v^%O(8%FrJlImEIZoQjy;3B)o3e_YDy@ zMNSeEgkL%SqHTet4Wb_0N_ynp??#95rN{H^^WyNE-y2_fRTY7YGp~y37g6I7e1Okl@|JJNZ zC)7VdHF4ztw}y%PT&!`H+}5l0C}tzCvpfbvuk-}O0o2iz>l~RILS?avd&=Nfkpe>F=HG4@_eZ~ zXA_;b80+xjCB@100yprcO)D74Pf#+0({|q{HB*;JLcK85F$~Ra|Ejg9wteG&=XNlF(*R@F^_tJ$ zs@s${P$XB3K(5S>0e-3PoH(-gAUTQXTqU*=@3+wH*^j?^F@s{R6S|LCy9~0uxxg&- zZF7A0N#u6r&CFzlO;e&9-)n>Hj)o4AnK{ehk4yITxXM>aRt@CwpDonu8gh&cTqd}( zkx3|cAi;n0>Gq^rbEz^>5R2e;trO9+-3sD6?nQ*HSYZk)Ot$XfyDWyNoUbE&Cjo>JG4PtAQLN-ZN7W%a@G-)pmyF7%d`Q#Y z$-=1E=kKJl!=<5^*74yaeIarU(<4%zC`L{oY5i!qgzj$d(ckh_DJ!C>re?K_@{@;n zm5J_$8);Fm4s90KSJi_bog%z!@G%1(9*AMfhiIUG_e}9g#yYxDWm1(IM??BrwZL7i z=cQt(V+~K?d@%qCEkA72q02y0L{NLUA#|9#`l0?iju`_^8F!RZ*j?oAK8`Z3FrrPU~v$*iW0Y;*|N_g_hl*0%G|ck)wUEAGL5Or&xtAZ1w%?gY!ym{2ccMfdM9Fn4u71Ff_}X# z|KE-p6uoz`AdK3hM!g0lg$lhu8_xDOcV&|XYb;K?8~LL_r8>UGD>De=Xw-B!<4jWS z-FIHe={txD3(wfHJt~TLF}k*ru4e>$(;f97(v%eUTif$;)l-)Gd zYiwI*wyf>NE4&~zdCF_Iuf|C^pXC(zqon6;6eM`Qxybk4Zc)IIHQ5SGM!JUZ z??t~wTnpWN*340dWa`xn+C!pGJk#oFsM*~cR8MH(y?loqriZIh1|<=;E}j19w~5Qk zjePQjQ4HuFEMA!!G-Ywhgh(Eqvd5<@J%2bWn6i5_4(K2es>>xuuyt2<5E7=%X1a@L z50>^?R>Kn?1QcS7oFHH7_zKxx?XbbF(BK87vCEr1hyu|?rOi$xC7#*ThJ@P%siJt-o_5Li_An4tNRB)utG5?`%m{F zAI357Fa=-*IT#V@y=CHLuU|yY4eRLa+;2f>#>dmd))DLuBqrs8pwA`O{vqz=1}CbuZyvHKH2kx)Ha<(Sz6t849~4@N zM@oh|^0vfoX7?HEn_GT#jCJPyWp*N@{a--yH0`CXMo`5(#p_RrP7{($HN0bse06iH zPjziGoo(cL9oQh; zN-V~>5(h_{-M&j`(U{3Gv4tOomR^<}bv@OUF8|x~^V~1sN5zZi2a{z3vewI8z$c13 zREtSoSxSz)Cy7|tn|LLJNiTiG<)jx`M?%A=Lomtib9f;_g!WHC@F%?eH1z4@6u0sf zvmd@9&9YHTOOPQRLH=me&K}RR(B@}5^)RKR3wI4+6S4%irGQ)cKJKl*_DXUaV28-g z=TM(U%Jspo{-BWYGhU}G%Hu?iN$rE|LG?b)Mcs7AReR|}CwSY}ZaKts5a@X*WmjkM zVo{yMb0>%54rbn({sVPh5Td70HtA9cFXHs6^bNyWo^eG(X+n#O^e<|IKQ0^DekgH7 z-y$6dp$q3_w}?OCw*tP-TN@C+*4Zs+N7(9DB)#!^6?h#<#&Zq-4IMbVIBM zO;kf=`vX~XxwiX!Wc?zwBKDL^ZSlGg%U|8oKb6dVwzIr;ynIHRN(dUPHzAa|7;BD4xZvs0fgu6^U{T^U3uDAEIy)CLJkj6KjmHJm>JdmBVw7Ct-)nQsB6E)XluoD+F8>4~ zo{?i5vK?b#H#aez6LIK`=^OTu`J`xBzKS8$ z6U0i}9KW_#WaX^snF36bO!E|rA*ttK?scEGdXk1;xZQu{rU+<|A&d^!-KDK-brzta zJeQEYNkmVfToey3qQif@7&l4BWKd;fC_=246Cxr)RXZ+utjuR_vWTG$Gi40yEwkGl zz`O+gOO*!nEvpl$O<(I|`>>ZhsSy45!XH6@|3OAyC1tL*SrGc>k8wz8S(;Ii)Gl}N zz48OyF1s%nxHF%+y!(U5a86YI1`P{ zVom>EGuG3c)vj(}P1zz-ZKXhIZs50at#L;6pY$rCaM?kho8*&2XXfRAXt9%%_826| zlvD9+?{%2n>Jb~W$|F16q zI)HO1a30^$?4=NS?vCL7$N>+hY*OoG&D)!rrTP zxBpbRVnM%v@|h*Fme!GmAgUlcdM@L5pzpfNkevXTh<})q#?z9s z=823n;Tr(09_oiizxS*Mu8;T+fgZ~_Okod+)%Cnl`5<*%b&H_i8#_sXQuTcBZ=4iy zT0u%5o{;ydy%I0!9Q=B4-vamx>rEK01OX2{`OgZh6yz{IwO)FCbRN0^8brit8|8$U zEr2TDi8NAXmaF3OptivKq!x8+Wr0O$P-ga4#v0=p% zxiMzm^(tzk{28#v;Mm9ii+w zrj36b&Swa83_^Z568Xr^Y|9G5mNFZp1D6R3!EiGX@4g-6`?+m#pCznq#3wv`18x0o z$>VKd$Z3kW&h}65rk!LG!IJxb?B`3ayAPr*Eqy1C&$zGp8ZqUbFmJa*%{VI1R6msl zIN<7TdjxH?O_iRn8ex5yekvomfiNvRAwRxhN}j{XTBqs$1>LP~i&&0+wG=hyJ>X_tGOtBysH4^5^N1OcDx?Bk_k? zw-qLJei)XFH=Pf1Eu$vJ!85XoFV+c}7+23+Dtmx>hHN6h6@}XOwDLC!9&**leb_w9 z;m5>bQ+NZ=hu{{!m{qAN%3KNmHmEo?SKHba$o~keaP;nxSDr4!@)eC@C6|< zoROLiN*q%rc?@YGk+j*&Y`6G(=~S36ejFMq#g#gKi1!kwJWDhc1cwF(OrpL9pM*XBL;Yqn4j=3s1y}4YyNR}=lV(o7i7e)<@$$O9 z8X2udTA^Bi4DDxDFbQPk&A_ga~3USaaK0 z91FhsjxJa7O4|+P;rn_nEMCjk?YCuG)-)v(I&nIfnpE|f1v86C{Q9lyi)^CUqk$In zrpZ|PfqDUKf%=)g5nmB)6-JyoGUI%YyT%+M}UwcsMcJA5tU``s7w|H&84W;zV4_Dfd7*>C} zPVU@0Cf|5%X2`MZl}nlHcJC9?Z5snTsh&Xz)+~O-NTSxYcB*8~H|ZF`9KUGiJRA<4 z%Q-W7A&)a-qEa(RQRn^3QF6?uH*2L(v+s+k1P>n_sW9*G-*GG>S)_1!zlRq1HvOW0 zNdGCkx>9?94pxfycW69S3Mpa5keAL??i1r=I32f-P}W;O8Y2N6DU4oNf{PqAhqp%TBDE!KT z+PRVdEH(ai0t*)RW2X=~&)_&k!;_Y)yy&3Z9vAJb&W;cu9kTmDz?An6s0Pt&!@Eta z`J!qyZYrP)rIw&N z?{5{BO&)YWbkB~|NZo#s=rl#Dg&L>8@Swh>vY|7*ZxL0yi(eR4vSz+O|L?yzl=kO~ zRSv9tG^j;;SH#oQf)zW|-959s-?#$%9Ye^?2FORV8x_*Ie%VYk}4H>LAPQf#D@F$)U94!*nS+QB8$WACNWo7WPj zu(?$FopI20{MRDG(NqJ(#26E{_$#a~jmXuvs@`uxlf5KO1oV?a_{oM`%Q0GTs*Bsw zWB=;EPs^#Xog+3QwNKVHCYYdhJq8z{HjOG}bvGKCiSO}?Z_&%sQ%D`FDly&1bxtlTqc6h2aMXs?y$za-JnhSHt2eqlV@5XlVXTOobRLC-b@#AtZ7c1k}+i!K?>(lyG8$e8gRBNCIKAI0sOtg zTor4Df-fVk)*EW7dd{!`xtFH;;A7-AKu${NoP2_n1f4JGH?}w2@HJL5Rs}roi-)mRn5$%<+e%>9Z>fE$KPIwel*aeg1(up;Jd?12hs~1z;nHrtc)^kdy z0_%l#G@sz#>>|ZC*4$(nyl$*~K2-7Ly2|e{wUwn(Rkg zVJh2ok9=L%c*wjX5O7=}Lwgv7c7uU#&Coff=-^|&sBbv$h@9V6QW7Lsx^D~z@T4@f z$%m2lg2L>J3(W~!uMTKCRG1p_}!AT2tA_RX%IQGvKtw4;7h$~7wlSn=;i%X2hl;4-s zRASXV0rmPB@k=-Y1$_287j4PE*7-!Yj?(e^UOvR7XJu(9&8A8G+Su24|9ilcN4q@l z@0QT(62q+a*UCE?%P&J0p8MUBFPFKAIO^MA<_maMH>_6pdxGRC#xZ&aaQSV#|CN#SLgE_;fk$!KXP;=?f5 zf4J|iH>rS_Jl-D#t(;2h=D4F@N_uekjKv~E(Q0h|fpMCd_0uk`(o`b$uPqWoWl`Beua+p^9bsO$9rD+)i(BHDWU9o#Rc@;~@! z_4EyfK(x`_q|e*;Y|_M1s`)vElBA8N78k7+eIJSPrpb)fH{}r`CnAa==>9`DXOnOF za(=gTa&(X-6NZKM0qLaeVLM%H@3;ea;2Yoe(a^ReGy5?WmtipEQO_ngIs3Z9qyTkn(Moo~qr!3!{*cYR$lQgKurX4wX$-A~kh*rT`xlfK+x4_S2 z9KH#opSPYAGa=eaC_o^otM(@kU+@qyK9lJqIpz5&7r%+{$H=kuWl>wQy&<-C4Y9~z z4@}3!ap->RBQKA?&$T~|&pmv?%57$7#5zVS_zp-3yjf%(Lu$2%E@Q#=%~zIRHd%E) z;+q_xQzsCoiin~Ak9f+>27z)OFC_ss2t8jAZ|?Mt6qZKu!WoKq&M~y>MVeu0gt?8# z)=HX|viAF}{BGWArCF7(yEWRDMcLFDH$>Ia6AXF{Zz=qe&wE_*rv>eF2&)Iwk^5{E ze{X@_L1SUgjL71X>Nhk{T#YoC)7*rp#5l#J>v@UvoA{+zw$EAreGhc2XBOM1Tl}4t zl@(<;9{i?YkYe`UP%=cYP%L{{5Bc`tFO@gp&%8;8p=51qwa+@36aC%FmdTB<(}prAx0MW*MZ!S2NGvB9@zvL&WntwU|;7fdsK!c*FG-DLC)aA-1eJC zCjwhWgtYxfH1=_df!;Wy+k-=PcFfZOs{}NzqP1j<4^$8+vlXK%RcS&ay0_fkYMnGTBX6E= zer+)pYGD&w?5J?WnU4>Z>{B$=|NZ5yAZ1n-&YR}$l-IpCU#@3#Cnk)s0^0|jnDl-9 zRTe+ft!7yIN}4|D%05x*K5xfy$p#-|rD0i-;$J7yzK>g7nM?C{syAz78{EyV7~xFF zV%i@hRFvB}3i%MDJkYC&abgAYosgc7TKNy^2axOgF+mI1>^8?G`_5{Snz#sC28w)i z1<;q>PphddgmsUt$&|}ReWS(6O+vht*>8$w7XeRXzf%d29YG58gJ*D}i>Sabe(k+6 zl}^gne_mse)oxm$Gt|Q)&=~b$S?KJlc#k(%$;YFFqP4!&v9G%TXcN~t;B;0N=&FD) zYU~>|J-h=@*g!jsDiuPWO`k`gMsb-iG1@-hUiGs;WwARZ!B-;pCfWa52LUE2Oo*Uc zp|*BE-<@h#Hb$)X^K1dT75j!wpbU+PZEKt9Q@?DDF*ZfJC`)S0eKBkfa#7gf3(A+0 z0HZD^tD4%qZ4V+q8#uz#MTD8!apqa)fXnC`qE-RST6l7046>L=0qYVPgBVN4xo@)1Bh zU6r`nvu(b=6d2;J)#SSNMWync=#-OgNQ~{Rc@$t^0|mhw%YbENUJa(lP2A3n3eG>Z z3O62djS9+ifQwz{2%wSROm=F+`Pc^!edPKV<$m|zt^ft*?2B`fEB&*UP8*y2{Tu$~ z(l_o3s_x2ttGiwAjA21{Q`((R(w^>v{&_9G3n^OrjS_ z0utQQuM!%LZtUcHX%RvT(j_tko9m!uk0eyPhF&G~&eEmn0 ziqPlx4B{I;0WH!0`0UPGwg^cmi#$HbtX8Eft;jiq(lsfT->NtykH`BxRY9A4T~KxG zq8P~^bSw(P{sli`7uDMi(~CrXf#cWFkeYWQAdtdJ=8))rn=$gw|0(VuP%-CG0r!!_ z=O8_2VcR_ZYOZ%_7yI)p!iC*}S%MMo9=p_W0+snJ2# z{)KF0oTh)W?0Pb%59q~E5Uz;e$k5lz4rDYx&o|;f(Gdhu%v4t2Qijq|JOfbibs6v- zrUKRRGY)<=kYTC;6|_K}W4gKD*<{|S*X1RERL+c({?!cd@HygU7v}F%L_)Ko!8N^g_y2RU%6LDJt)G zQwa`(7J3G+*>Zfmh`&;1I`I0~I4Kd!-XCjXwE$HXJsa{#=~Uee3_rquywZm4-NaI4 z>B_%|{;JN={8$XxOy5s$&jAu6Cx5Z4Hr760ZyopWT?dekp zt^5&7!h(&trI4gXw&oWc2twLU1GUzH1(YSGj|OpT+#0H2CvH3ymFo1)EY`fw*r|M2 z7@u*yFQ0VC!ko(ZyZ> z7-)>P$c;^P{+uMggf@+&F+5D&uABtSct{Em>N z2-F`+!~w^mB{1gIo!l1nreqWSMC6jJI9w2SuyO?Iixpt+U7tc)$5w@K-0^ah~7A?TY92j_pd+?iP*qWs$Vn;INwo2 z0q$tfjZ9lBBjukR>=VEV7nX;&6^i4hHOQBlo(Qaj#mt+Yu5-~bQ$g4&JAvDj%jcU> zCAl-}WrSt9IVAekMKBbVq3wNBXSa~)f->B%&1$2MCV5K_k=H*BWw=3DLL&320u^JT zNW8SLLjcs@74(hp1{2ZWQB!UvrV+w}ro9$B*fy+PVFkl48e&QeBhwAtN^th-6OrHRm4|>Hq+N zHG5cnkqsnoD3JB#v{0eW;hg6+t1fBVZT-(@nbDT{%x_Q+NcT-m<{fnxZ>L(9*3sAK zC>6(Sp7XKl25D49F@0fZcgM|Hh@n9hH5PeTuu@3(u(e7O++>!^*c&D0am$=m59?1Y zhHV4kijS;XcF$sRY*;e<&Xkm+Tem zLR}T92*25zgMs;~xG=eOA;fg+(oIu<#Lv&w5)VC)5vk7A^)r`Zl3pN#k`V+CdU6p| z_kZP>1LL7+O2$1?WV}L-(OHz`^(R2R%75Mzlavu{X>cajq)-+)tc;?6FLZo|BQ+p; zhz)N~?Xy~avv8&&_;ur6{*u^_kMK`dwSn@urF_kmYUy_zzLNKju{enF(A02#Kg$%% z$=eRkOnUteOsm=Nxw6M)m?!CN?IkPQ3vU;^)vy>EL=Mh2((>OsRgcOFjd% z_BojR<%)0+MbU3&Xvk&#_soS2dvTJuirjA-CXX5|+zNRP4TvSfNN1=~bj>XG2tf%9 zRGOgtv2<=ZEoH;;j|z2YJI;ebmLo;nhuhh(44+DNG4JFTQRZ&@bK^-IAHhqf=w^%W zaB4>7lUf=RjTxFpFGRDm207)N!we=>PpcztKwsXEp4QZ)BxhckH5c5>%l}2?LN7yJ@ zp54>-Xa1g%!DZ=*C$(?)@gNH7cLw*;AZ!6xT#BnQD?uZLwClw5k;zFmx*wg=@CP&g zwkTT4ql$-XnrLq(<5=u_4Q~42;3q|WWn0%T89qQ5@F2@+)8V!V{L)CuE%}D`N>r{W z4T4=(xjhmtCplRtrt>6dDV+=R!RfHQo-v^K#vH;Sve{@=lKPW};}iOSpT|%>Sta&Z zL|ppGS5cjwzg(QMvNUrC&t~N4H4r?PBp(eT9hR79k5f@jKB$lpl^73Os3_jOUFG`{9*^0KZW zefp8Iw4XR_)QnD#{O3V|=txO~p@k@PlgKzX-bZ(KFuq>?>&-X*{K{=&ZLJ8N zTv~!CWK!Vo?m3aC2-auYl0vB7a(T9FTg-3Vkl*W{@5aB6l>KMJhg z{P{KgHf`v+HjA>)(}6;HnZIfSitiA)Lkfy$lMrzT$3}r{GK9$3UZQ7-ec`h{`9*Oh z-K!?B$B2?dNF-}0GnH;m4GW0{H%^jR$1K5>p=O4%?=Lh!%M$f^6?2McFCe&+82^A% z4gM@v7!MbfS}sD`(~~Sbxs-j`6|Mif&i=Ji_8+yM*Ml;2D`!6sw)W9vi`+uG7?WwO zeFhJH8@B3cgwpdn@4S|ML2#oYMsUa{2usBX9%<4CKg7-GVvcK~J?ICSBheqo^}A`p z+z~ZCBIo5~=e~cMdOpvoy(%_J7Z39Ty{1hA=R{4i)Y^L-o;=H3x zJ$L={rVNqAcz;5))ZuaM^U*Bx&-w$MuUnV3cB{p{ZU6Bo>skrBXmWa4J_JpB%-19Q zh9$x`1vJyw4G$cksUbY(Hefm_&6Mxn_Zv;)P*^Nj|Nkri7T|+blA;xZKH^$mltH7`diqaK$lPvKzFBc!e*)%&He)?+5YHbzWkxx6sbkAZiPWfHS z#^>DGi+B5pT~}Xwby2P*E}?S76?Bs?_p2F8+8xmz57WKLf8i5xrMLNQ6F$=qJSz8! zSjxU=9LYXmDqrCkCtTGnr{1Bdn|`bKxC^?&G^Ij*;ljL+a_(fCf?rJOSeX!)rkhW) z04)LiIkyWw8*k7TGL@6wRU99t=t8ECwQ%C%T%TWRn9K`@^76^Q(O_f>7p!L%sX z;?l*sFmrk6hJRBC(PtJGJ;~p-wK2tRTGH9fGC^%eEo$Xmg)&Rw3W2w_dKd=Oy7*`4 zw;|YQ-8QTw$>oSKxWCKHRE<&D+unfqMo-Be%SJs32Qw{{AtqU}o~9-lXmT9Rx98glhet9y>wgygTTd_aopK!4E`WYr0EOPuv(fd8K;hLh ze&BJ5FwqA2afsOD8EiigX|q_ZuCBf)Py(Kr$dpnm>NIom$Is;VK3$;TU)#rIP`%|) zB0!OU zMk9ox5%M!=Q>)D|2;3tFcwj$r`kLl-wNP zUH>UjyKbj41EmpvGYso$_t$71-;w5axdUFICefw7I2$;hR!>p>sY*S@Q}8Hg@YQ>w zq*B8?4>v*3hkn^)TluWwDi*k0lesxf#HhLon(Qt(2mg@=>d=9%Qq-yGP|Yn7{e+j; z;_D`zxSGlXBch$K(pd}?6Crh4AH&AEhGZGPsq|e4(eqOK?g4whV@VcW1XN$mww5zDqrN!5u+Cj{xwV6A1gz0xkV7%8gkVD={HX0kyknD<|+02y#j3%m&wb4~0~_#xRH(7UlkC8P7x zu}wAM@2XSk{1*O-fZB{7wJzO#l~C#z-*_@lkX^9BSD#XUij!f3`J(Pmi+#*Pb*I(c zQIXPnVBC!-7oYUTG$kbP%dT(ZUrm7I65OR0kl{kYcIm& zf%De~UQhhzEQ+^@iDCsS6x?p*S(&G!-}Y~lt(M5FzA&ov-4Z+(!vqDk!SdkE#5h@j z<%s}INT3*UKNRSSCu{uD(&?`^unkgyGYv|G^4Xe(egG-A;2q^3m>}q}^}c7Mtcwc> z6a~bMs$a>7&~l)U29L~;QVohENzK3TSbDQ7nY~glb7z!OQumc*vm&q9Bve+%bc>by z%YU92LDvU(P2NfQ^!#eauSFBk9$qeLNND}_#QW)$;#RSn%d1I$r(QXZX6SX1fUP}k zaSpU=E5I6*A8Ac{l^cR51P++Im1f~s zQ1kbQ!1wmVk1Qoo34RhJ5rmwJ(n zD0<=?wpCUP9jd0i1!4aXU%ei|tjcv8KA!;<ES$ zE{W{eOK`T538TIXURLC)JTF`_8V;CJDv2E#2O2^sQ?-=K(qHTvN;p1k>RdH4@HzbH zI9gxibj$fTr&pZQU+^aMwOx54QfCv@aYm-Z57B=L6H;%{r9GY_tbOBCzVAB$JDX#+ zP)uR+B6Aiqkv&D^*jO5v+spnRO;;7whSIHr6)jq{xVt+PcPVZ~g1fs0DJ|~q#kIIo z+`V{lcXtVaoAa-AA9&({Fqzr2_h(ZwuVIVkcA`Mcm8ec#!>Uzr)>_`a-^mIc>^y4@ zsTLAk&jz+O2|!*0iOiLN%2D9Ke4DJTK8Ny+7;}Tb(^%pqM%|D`*Fbu%C%u>^_7Ix4ugwngGRw ziGuyZVSA}D%X-MT#H7AwQPb0dZEL&;j=K<$QX)h8226f)2v5NK!2LL{|4u@9b<<$I zNdC&T5kNbUW{n{Vz)}&-yfI42=l=HAw}4>qyiz}vS-J8U5V9ffiqvtarWOmgUZ|RD zb*kbQANwfSxSh8yOkrRY*aJoGBt*9}M()>W&03~M%N3qqs&xg38Dk+Qh)Co98WU4L zj1WegF=uR2HOajB7@)72B_a6J@L>Jr>!K=biber5GGwc^N51XDbkD31uN-I^YyByX z9=na(DJR2jPX2y`?Xx6CmRQ3cwqRITJ#?j<~J%^gR_&9Cz^Vt(klQ%+fGLe)%X2p5OsMQgZtMq+JKiM_Prlu`@ZOTjG8XGceQL=167zp#o$cO$wJ;WlsXd)sN7SsKH4*g+6M5pTF zeC>X6C*EFP@&1(D;*1hd;hn4e`7R>!1O+^{q*ioL5e$?-MZh5XAg_$~f?HLb{*eos zoS^s>{&n!o`Kl%{QHu#Fi1wEx?kVj(c;pfBe3gF_mVbC%Ma8-CbNT?h_Ja`uWBV}L zf2lpcALD9$x_;0Bb)oDQ)Jf3$P>k2i)`WRS0QK(dJj9qm0|LHlAoF@N6C!clujFN{ z;C&C_z2h?Jt?h|GKnj-g;X)^X{{cs4y8j#EbLDJ02IqrpQMm6@WUuaBv*G9m?hX1P z79@1OTuQDByEey;d7xVZQ)SQV{C3O>wdFz`711QwyHIW9e?h^q7_gYI?kW-neipc= zR^R^1uXq>rb6TP9h&cd5U=rIj7nbqMo0{9LUZ&3LzI1J$;-d$`2D*fipbzIydf@#lm-B*puQvAs*JvB)m<&0s9+}AV@qt$acNN{M`CDK#d20mAdtBk+%$N2K@v@C&C7; zk-<4Pqp@cp0)l{DZ5pRzN^j*C9n83nfZ3&pB~gd#gTs#pX)q#h=dffD&xj~6MIYht zFp%Z?T1WAW7xoggzP*59_vhK?`}wybHFsJG_LKlIRt4uvKRcmWcgq7aMe34O`-SH+ zdU(}E|MoG-!+A^}vC&F*4nwsI+-^8mSPU`VBnR<5+(NJtwSmi*lu{|~LxoR)T|E#w zih?#82)T=2&epyc)9Xu%kUjJnNg33w!4@y?EBl|NdCXU@<20bBTV+QseEbR$y1I$> zp4IaL?+I`Zb^{}&YRT}?Mj;Xa^HRzC6zQG{X*l!;SVHJS9H|m&b=_Ak`E-?SI0rT+ zki%dyg^SD?7le1l5mjd6B6n(VG_q@Guw%B(iu^U`JFZ}E|9lZJpLF4%ijodv5a=kL zw^O5vpBOl`coyYdStQAS%Ll8f@PTwM@3`q}G!ta8 zZ#W@xiZ3vJiEO8&(b-qaNes9J?5nbaY*oOI`zCDjSU!XI3P#%xd%0MiwOv*+rWu#! zCV#piM?Lla{Q|>&%}?U)3x(vFN8($tsODfFT)=}kX4k^EdI2xnB*Rnz|O%r z6})t|$K6=GG?*fI&t~I>xm7Y^vW9}K=>oEb$xh$u(HM{JQo+-8$VR!0+P~zu-u}5TzB-V9fxOKj)yehhuag$rM{6s}^|ezPri5vO zg7Yo!5E$6v4K|HhaDc^9l&eOFu#g+;cqe_@Fw)j-Nxvwgmr(RMN?)PG7?IAmV8Wl> z6B++f%Cf6%jALsJZFHTbUd6M`sZxZ?!RM%ZmJybkl`7X`=yntesM1R-mMHsAS zh{))9ZB@P5;DZw(CaE+XRapN*SRe%|XAskOfUW_9R(+esp#kH(#T%EnQp7jIAit#V zL5LxL|K`!JsR-b{v=%5kv0<7?cr7^k^)x`1Zs(fg5>@tBN{{SPetmbh0rs)?)tHEM zdYwk%$^h(XR zA@OEDgr+`(JIhw6a>xT6@L4H6C$znjStJ{f_QAmuAt_;J<_2-`6^C%X%9P)BSv68kl!vhIx$az4P1ltT^O1TO=4wE)2k4 z;NQF#1i#29|LxK=E75b6G8`GxbHPvRywgh@35^~(*ixs!zw;}QV9}(CY0u_ja{HH1 z7L$L9W)9)j@$kZ_8?e!rLlk+rB~PdGfE{;xsW!Ur#gInJ>sp5flDV&6nZvg+?J;&K z`&!NeUa6TpbrnuyeI}M)rC2Q)`$y;bc_Dxo>D6CG6DtTDqK<;hpn11w-+Mj$4#9f6 zdHzcuF0l6I{E z_7>OC;h#6Pe750#`fUAbm@Qn{AR;ZfV|FftTPJFvh$>VD!e|`859w@#ef0DJ7I+er z8z^faRka+p?oDG4oXeWBIvS>uPC7jC#D@dhW4_pQvYsh z2w(`L8ABG4ROgr!f#pCJ3wm?QfRTlp{|DWCOP-L&>{ZL2_W}!(3HX9BW8xw5{Am#Zf zlJdI?Ptx%QTD>4=JO?>mPnZrzHSjV>wA}vyABOZx-u7D((l{6f?;FYo3dO(!#aO?% z2cSTbF6D+ibzP4q3)Urc7a?meAzxIRtp&&>7vY9UZ*K=^YmlPL87AoDYHNW&SkToB z-`5HsvOy{-q@aG`)ts?OtC!L?=blyg0F?N zNA(^rY7qi>>JJPEC)ZSS*I)NopW@3d56wy$32+)e5h*xR3e6KlS1__{pgbK1Aoj^g z({KD)?Ny>Lw1l-}Pa603wxJ3yoXHx^2gujRy<{_7k%bas#8YTht10EH`ZeYW#ln?Me1iLx;~Iv5xL1r03w>&+xd zZlFtW*!1BO@IB7zspTC^veES~SW+S=7%pB(0tsNOu=0tP`^OtAu3!~8oR)g!Dx>1N z(I)hqGz?9@*Gv`qu@gK#KCKfNE<=uwqXEp}#r|K+&*mCu4 zO>rXDwI!&r<(cbNQO*`&J7R*uX+l*Key%q49DJ1~9@1adC4GolmK7ghhwg8dwiUKp zKm&p#|1Odhn)m?pLg)*pKuVU|&n|AbC8b-HtvrQ4U4`d!^7`)ywlT)?@qh{ryB~r?gU>$wdvFJ3iTQ zgtUHB8&@ify*>xJQg^Buo zjgqE;GK#wSvqc|)m2Y%o$W^Uq^c8tlEDS+1OOja6)%HDl<*D84Lttx|^%S)BoMRb5 zT8F#>+j~#6#ZE5%7%RXt+Vm^XvDfaS#-{~~i6g=KB_vL8im#>&WG$dOfi{Yt@e#K7 zzhkC7N=~rxLr;vQBFQ8k#}!l~Io(c!h<0o7EY5$YkSY^<%sQtID-Rnk6(JRI)*v_U z+t$sL$%;{bu^bJT?N%!mvs{+yawT?-Pg-^_po8UmFJ<)18zCkAbx0`qd`wPdz4K)f z{d5&&6j2xZRQ2&xxJ2LE7tKU^>=;RKPWg3C)LI3Sj%DE&J@)!D;4+x^tt0CSp@KIMcBjTvZ8&=!{{U9w z$6Am#3eLyDGkHuD!=PdRSZ*_bYnM}$6lJhnL}T9jE;^Z!({;!DGfXw9l=s^pHb&m` z)$J0~>(!yqfDm%5y^^MU&eElapq-HPJqri^YS>2Z=;_IsY_Eqv#^m zp{NimNuJqb$vSvlL7LN1r(*nKJxn)(UeAT4K29%XiwVVeGIvj!_T{XO(j>sSS~`*jDC?-E1sK+sWF>=L$H$4#P$<`Q zH)-v4U@C@c+q7X+EuPP!QD=!SrXKVfT@4CS#l}Yq zM-C=nDJ$Z19_O+r{p^9(k)d+EwW3DGJ`ru}-T_5}&aG$qvYI$^Js%}pzVhJ`r zMreotFx3+pv8UeM3vfoJB_K#MW-avBy^oXA^xMi$kx8Ofpp@o9XWx2|j1B~MZ|v;W zutG-()CoLjO35&j|Mf5vwC|o(}V}O7#SiPO-V`tfef?0l3J4W=YNVSS zkQ>lEKo{6LFxW}nDfNDHP6B!zXYu?TT=Q1y2S~jHs?t*!jbuCZ~0NXzD=n?8mf zLNs6Oe=azC>D{%y>H&AXL=SB6Ty0*H0)VOCG+C9qF48NLn!pl7`3T53FSNypA8A7v zmye;}iX;JtJx&`R*2qzgx4DlHH`mckeDSIM66_}A^dsom^M}g&8#Y;h4-DYxsgfo) zfOiR3U${<~3BUR=0n!xXf8dmTr}4Qv~@QJ-dI4)&^P ze!2kGxI9vPjdR1S;BBrO0wk*|f1}Lbw_%2v8`RcaWtYO&7s{MjA!|V8k*p)kV_%Ou z$iCZEm&J@h);cATu=4m6Du$6*>rxWq<^+_`Z#Rk=0?kr{Q)Eo7`=w_-s4B!T599iO zP>}-eE(9b7&}`-=UkMrIUe2l%mr;eUq<$+Ek$p&%-N7ic#doaHo8NB%a`swujj)-a zr30Pqmww2jOx%@FeIbgHk{_>^7b{ZzJv74a_gQBNHt;#H=K5X~xZ41&tc9Db99eF{ zFV?ZL(^miN;Wr@lgHe~-tstDzq?n?9>(X#cYkQjZ02v z6CKUl!_sBQv|8X~!_~f^lL_jN`oTnTYHS#*)>izT1Bb*hD$A_IgpnZtvtBBFA)btZ zihF+ZFy5y+Ko=xUA6mX~b3uZ`!`=EjH=v;B?A<~({HLRF1YWz~N46Gk$lM1g8bY~z ztnH(ObaH)aEQ@i%{j=XtjgVk(=9bw|QxY$=|Hh1e1>5=8QMZ{^GlEg^E7N#Y>qW42 z*IL2P+3Bi&{;Q)x0Vvjj{g@|(R8Yln@jrxRC#-vo@p@QOBpL>jG0%BuHo`nIB%qq= zY$tJ4+%=0~W_7=~mFz5l@C4b&abtMdJHvR{T%t_@d%(SH2Ep53pv+cH60-ug(njl? z*2?=4GW+1Wljrz(ckF1>h+p}rn(u=2sO|2V1;5wq4I3# zFp3SKzA7fHq+RuSyQ^~!2(chavOwT94Cz>~tp5#Riw1Q5*BlPrMD9Yj>3<*y9zO9c z!tm`hzW3WREM-D#=hv%?w2wyb^@Ha^xFjP%Unt6M(hy);+2D(%+Np}+)jiaG6-@@& zIQ4Wr*=MUB@GF)L6x&-aK5G6Gm95BikTeP03r+T5UG)BcEr4*g%GWcJW5G_kc4ys} z$u#0Pk=)&DIyYf&>|jLU-{$o=tq{!J!x|lL$So~j1KaM2?iG2ZY$MWaW62~@LE9Lg zyt$+39f|UAbQ!#{<*S8K9Aq^5$-LdKbKty#-){UEV-ngMrd^GQQqKRX*auS~eQcsa zUKsmrH;3j0EeMY#pFxuqqLh+JmH5Ycq^t>2+=GG*W z<6bEHOk&_M_TTPZ_N9J{Y-<~-5q(}N*;j@IBakk;sJK7&J6~+#I42U^HUL}9OD(_e zXP534Mue6}NJhgqCfUunJc@5Yh2cB@{p^5(4)dn3kNDh}+2BI4`a8oYF20~$FN+$O zw&3a-(s@6cM(Kz;*0!r9s4BtER?KY>gftHbVAAONZjfYtYl?kk+Ne(lZE7rD8^2J* z)5oz_(!9sxyFc&m_tn@7cet!*>aMU)0QXr?xgqCrQ5&|I7x#dr??+Dl~h`PMy$yDsN9K@i34n!YW z-ZWzkZ_iX-d8Ydg!EynKIh-1_M5A;?sxwYiMYbIdydu9o$rZkb0;DEp9eY0vX|?F~ zrW9=xw+5tbtzvjRJpeB-WqSIda9at@Uwi1V$X`GQMUJGNcH+|FBL>zTLLR#vuO9~S zmYh7py*SUcvSg4-Brw^}&7C|={0t!$D+RIgeeU1me`{hUE;E7}XVmkp-g5-FnG#Y` zN3&~J<7@|dkGkq_3J8ZGrC6ka!ov&DRkrw5u+F@blL)E_T-#de{#|Eyx=SBDF&^78 zrhh^&_yHc9_ym*9oo|ymwF1mHj_%H_v%ci@IasasAubXr`Pg$UkQ2^4->-h1)j}Ff zjTFb=4kH38_FzJ+9J9--L?w!lNcko5mACR#%PKuU=&mUtbhkG9qI3E?i`{;)aG4iP zz#q*=Rm)1-cFcg^s5KdiqV+YNyoE^JyZaYx0=UOZO?L-7HG0>(;iAUg&xd~Vz+2`L z=bG{`pI*M*0Kx=QS*>MJ$*#N40;5lFa}MwZ@LL} z`Xs4)#xGmE@B8th<(X?>h2Okm5vQrv{D>){2?(rO|KRW37=^2V0$~_vc1UWwl%2t# zutzp8?|0kMAzvmG%3qiZDP)MXn(znMX@?fXg~G1J4{KXuY^W9mZ1_z&3AI(IPS<|- zElP9C7B@jAP&8%cmav*sTG!x1x}kF@MFS-qVUcFTRrLk7LHEk`KF0s%{uwvVbQhW* z7q+Z!YR>HjB?WKhzq*W-BshOAb87Cs; zy@#=-EWa$8N+|9km87mb6i(8PgtF%}EjB^lx_H8%IevcBB{oxyWqQKNk^-c*;#^0)!XAd3urp+kdn2i+-Yi8FJzw)u)+r3_Q=1R%8T9d8Pn1y{Hq!|&4soR32^}7#dM}G)7Jx#vOj`W zc}^h}&$xw6+!LHf30*ZoAQI66CY&xa&#D)03!?;3bG}!`p6X50c(v1vmvIEu@}ci< zK^sGq?!+|`^L6Us2e1Xfu?}0nf7Lj4|6k!#rS2a2;~NS|d?ylRd2 z4?{G7IRe0ae-I3k{kuwEB`20p*6mjCQ_*>y#2X09_&lsmVNENi>eKn;_#OD(EN|s& zXz;`PiMbC#hs8=7n$89X9~`M*VBpNm%1WnLm^RV+t+MFbiL{q7IiH$}T=_Q8h?6k;X z!4J~InxZTxf^rn6i$-&bPYUMB|t zV>XLelkkoT=`?x0GqlSFjJaIlce6bq6H;9j3P;RaIEU#Y{jy&2wy&19w~xGPap)mp=8Tl6 zCs+m&i1i$m8}a4DjaKwc9dK4N-<0BbK^l!&QoS(UTrgFVe6Xt^|9`x95!{2$>4lKOTG3*P2D9ve1|E(N2PF4JhDK9oh0?MhVe%VW5*qf|7KgjCNXzhlqnc1ChV-lb7G4j9CnEJrLC(PU` z-*NA+Q~X?B6yGyCWJafZ(77YgrTPMn)z$i{P21qJsvVx=WZk5dq z?Yh+U9{AQIAXqx#$U>el8r~_7E93uFdEZ|k%Ix^?P*YqZdAr_~34w_55Z17c!c z-x)}LyZe;k*!6(c!pSh<%XDM-oh!deRI-VVP!}smbv+3t;@q}73p#wM%T+lgLhPE) z4k2?=Pvr-UbGN~(4q05G?S41sVE$DrnXeC;d?5spAKo_>)X`xVB-!RGLX(t;)!w76 zlK2b)4AxOpm_#`4`xicKJ_MparewWr->Vs)43Aw9YMIZZ`3tPkwvS|&cpOo_jOkQo z`3HhK7<*3~%DqT=lbm9#{Df;?>fEZ%yBL8&?@LA-AE7?a#o$=irW;ke)S7X|1{=53 zG3HC{YN5#Km@{h$d6tG?6RS z4QK=HSU5!2NJq!s9n;FaxqPp+TD~Esj%;Zyj#IaNDxWyu zgDY0o!G>KTUlwD?e-`{jAh2GFjuR!<{0apc$?cOfxV|Z4yWT`Y#C*)j;tY9ee&x*Y ziJ)`}qo496Zk=*XACzN!EB$&5)=ts#dcxDwPTl(Rr4bWkIPUOAi=+scRs77;F;e=l zQ}bnir$+vx!PW)QM$N06=Wjunn*u3I*m#b0W$yRrku!`hA_a;N(GC_m--CIGo;^*X z?$HR%PjXW^Q^l_3=MwC&;xH{+@w9_UK&rW+vct0uBmD16)hE`Zz#n&uoEp^;MBIUN zbptP~Py+5mo?_OYUy^`OpsaoBCs(ZX&}@KNJ2Rr7IvWz_%;;~{W@cmUHzj!!%fQmd zJXMQQY&JD)6%_J_lmVOwsXs~KEl@%>08p`G$~NEB5*}-uLrS$_TQ{9U}NPPL**dHpS+RyZz_8!>m}vHLe; zhhE$8s*n82_t{HlftwLv%KpB(cCwDX+~V&_i1Ml(P$VGW`tSino3rmnO(vUm=XrBE zaPhvVC=`$JW3>vNd|?k^=!U}*!b@ovq?@O7Ql>Cm7kX@Kb7H4z_F688ND;Q4gO#ew z1@(4Zq-WoG%6BrFVPk%qh){}$K@9yRpQNvHNyF-PT0GupY*9Sp_x#8Hf$r}}vr2?y zQ#ZjXnbj1&dN3U{bb5KX=*-u%_A{G(oenEZu^4T|00?B^s)CYwV3<7XDFEn!%fQ$f zB~iK6Pw8%#uTKFmvr5XPFIQz$$JrW}WH~hFy$D?@Y1FT7??aH{(MDN=1ulonK8xQ; zA6@WnzELy^9-a)RxzLy-4OfB~w+|NDYXXfZkkVT54d32&a}aqxOIdC^xmnpdJ)4q43S$&y%)+YIBnBUG;_EL>)34f!r&=#(yPe??IOUyq=^Rp0QO;sEDzap^pVa!V zbW(#`gw8(=mb5Sgy7SU;*sJ z4NDC;ceP8}nJ)%{>tFB!%@jmaZW*FP!+!Y1Vt=mJw3nmkg@sN!stuhYV(FR`~^ zVkwuacnh=G0p!``82X9;ydO3kl!@deQt7$Ih&9P(AQA33h~&sohp@8&z~#WVmURn) zzu+cJ2J1zp$lg1!drpA3t^wk+bQ^2d@IXFa@~AN62eTdqKRMz!{HDf<74?<5CX#AKCEH_4F{P8zC{^4N%D$EQ=8yd3MoInp4; z(GrVeK4`c))w3(l3rG09w6^=ynS{1vACWYrXb`voqcxh{dY1$AuYL;LF@X(g zn)2)owoBEym3D)##$EXn!>EpRauWxDT8<8Q0*t*r6&m>jCe+x-Qc5w3B`#RvPvG2M45(S(;{9q3;LN2xLicnh1PkXIS4q`FAuGqyc16r^w~;k2l%h>92pbZ&@K z?ey1Or=xdR8Dv;-8GZQ{!R(d6r@&1(vs7liL^S>T%B{SlLZgxM=Jyzh!AlC>wgPTj z8VC>}I$V4QeEP%?{$cI_n%QJBH2XOzJ3Bc@4nUghew*^Q;ZH>!>NqVA{a5e5E%1WO zA7JL}m~(t|m(&8hT1|^3ro)Fi{WBN6`76vfHhhbHh-3FE6;3k+lWYhQXcHkK--Rc< z8c0IiL&(UNEGN(wPPpJOG^siR$VwAMvLIgnAkZ-t^WYwcI;Z1--S{cg_Lv}qovD*F zV5tD2RgxqOKh+aAgZs*S?EMdt;B65NwTybi5SmJ=07u39Lw?zRAi5$hKdt3RdG z2v{61iPTgGPszM4=$@4&gHT1q6Lp(lshDN9gR+w)VAT~POtJH^Yq2T~!x-fUncZ}f zz5OcjJ21$45D9e^4`7DhJB_J(mk_8B`rEK=EY|(MtFo-FS(rJJo>;D0kwoF7O|Z?6 zLdVdK7}Z^Og_7X|Zd{(jvR%SnWK(hpaNO=o%@3$Lq><95iM(pU7!bB_H$iq0JAa?w z+#tq0IUkTZfIQb9v)~l0Gf>n1!1yRg_o#BSFl|9Fv$T{6mZxKWRfsyFR4=81jA^vD zf7rh*f1j1wsqy0lt;_mTFEfZ^NonIRVo@F2hXMe4jDRGmrk!8r%gNSEZA1~080iHQ zmC_U_>^VwQI{<24CYt9nw=l#p<|?P(5xnewLGm5H#yeSi#+i7~f-v=@(I-okFg0k_ zx}{S2P99vZoO4qMb*O(QiId3dI(^h>Y^#rP%RiP(zN5tbtYy5mLpMBvK|h!1q4m_k zQoTFyGFmXzwBe9@;U-v%H!4C`9)<_nw`<29HdE+!d?pz;JF^x|0pAS(!BwxFmrtRY z5t%wIUbVh*wC^xJPblT?rj5~H|~T1uaFrIX0M7rVBibKIeB#E`ll zQ%A6_rqKa^Ud@TX=9tgB+*u;q#ywxln*)WGyza%*=7TGArSd&ah{d%W1`$b?eAxik}4+gu7uWtS2 zUp=!ax{fTiUzFO)+*^)R$yZzn9$#V`bgb6;e#8Q}anj^YePO_S;!5e*Fy7Iglr=iy zx}`xxdh^prWkgxEE_I#TJB<6A{i^tK);U6RB5&U#a*gV56iGd%XMXJ27EP8B@9QQN)0!v}NgMZ@(g=Xv|Qk?9gUX`Yyf1b>U&*NltaJATFJ!Te=+ zD^w3od4_}mN-tJvF5CsWok*dS(A9B$`4$WPE3VXt@kxauY}b+H2xL>FzKQpRInX-y z2FFRZwxnF2uf+m$t(xaKXR}7*Ciw9AOf1b+VrICqS>r>huVd7?(>uS0Ln-|WpvEFk zAz-Mlrjb9d80cd}{q}*O{2e8m(6cciSt&;H1FpOdEhHUcvV~}=vEo#bOM|IiHNQF(ytXfGuNCJp?yn8x?J8uWmRlRsUx?1FPsai# zMqw=5dC}k9?Fx!?Q`x&OZpaxb26h)l-1`d z^#0WO!|})Xv8iGjez;|?T5lZ|>n-~3@6x&LcT6gmndMR456j9|BB#hDSvA~F7Y9Nn zMmxos){$s(DC=btu(iUB#G()@Hbs`5i*2-t5Tn}TlP)ocWxAvzfx9}4ffK}QG~;cOv0{-&{pr5 zm!W~}@bLMwsjKwAHK?!tSws_Q2a-)^b^^JMVVWar&!6hn_)dtv*{=&RzF`e`&<|N3)5hH!3{85!?K6;m#8 z`F!V8Wz0T;9!c^DNQ43P6b|(M%}Dfz{=*+JG=;bmTFg|VznLqU`lt*_59(*cJtZ9v zpTXtG4up!=sKz?$G%l@l z*hDwK`2^Nq9)%p}`Ov(^vRbQ#fo^^$9X?Be%dpkOZYM}1(P60Zkm2f zs1TLdlZq%wN-;-r{g*#5s6qpilbtr+ubGs?HG!Yawc#t*`XqjPmM;ux87`j}c>HG{ z-fnqg^aC9ohw2`)i$W_QTrH)Ahb^MOJg*N_mvA#*ee8;B3*>rS>S7+g&Ql($>1~bn zv$}okI?8%$g9$#{M2-fs)2ofhxT#pvJ>#Y`F}o?KD=_jfk;D+9iUY@e;78$;y@C8 ze|d4bWjc`jI5i5o;Lc;9*xi5YzHx`{8?!1YGCOfc_*`9iU$%o--T~yx<(CBl)AHQ< zu$-*D@NS&Bxh%MZNp14N(0*txMV*v@RT+in0LVX$O>)w%gvmPEo|)C1pe$FIwfn;B zR13%Qfg;$O?!GnqZ})-ZwJ%8X9lZPiSG4rT^+PI0|cRZVXxIK5p@VAIR->~ zizDwIO92jS%)1+F;4b3W_ah1XR}ud8PC?towA=NSmL~$e|x|3>GSU_r%5g1v?F1fnMCecxyiRmk;?9tN_hN7xCyq_ zL?VMI0dz&!`fT4|~keqGwCbGP1X zwxBmOK>R<4#I@74SBXK=7+mQz1x2?mJr7hXg}1D-!B@1Nj8^LK@+4`1cFvDn)V>qq z%!5Vp;i0#h$%Vo{tcEp`AW_!r8?9#B>Aag}uwtNJr}R{(mZhfhvK?z!gH!7Ja=1u} z-W&o;!`bcGjpP%_l#TB4ekHX0#8AKa(x(n=azkTQIpkm?t!+yz^ z*AU$qLdDyqV~mB#szqOKscp-k%JK`|S}L{Fbp3upLS zXHqb2`!GOo(f6aPeX3oDmFRNsBFWdImv09xs&~lkQLV;DI!hEuF^1uBnOELer8Lj= z#HIA$_I*9W64Aa(XGdyC{p<^K+yI#x21ABz)XU(8I}GpP6qIqK778Xe^?vgInYQVq zemx8qL%0q=h7J?FMT;-@am)iD7auSI-ww^IdxRO2+&B<4p>M zH{tc%&L36$ncbPr?=lN&eEu+)KCnYMZ+P+eIqP`LNE5MKOe&5`N58M0o@ElATwTHb z0-NReUKIP^5*j%K5fGBjSZoI1)pqHW#eiis1FT2&(Y7^@cWPmIO3>kJcwsj)Q4>Li zYQP2GSJ1k|jRq;vbIp7>M3B1PT*+kav{>yke$&;f&{((s;^@B&JC+xPdbwsmJUYku znuiR?eCZqjWvRGiP7)mz1)c<%KXBEX1Kv++p{02&S2tlX7nzj^h5+YYayS}fek;t6 z)W&!$#pZ}hGofp8J*u{Z^cpZvTQ;HO>iba1dNB)w2Ww()V~tq@JdRY}C%W7WVA+r^ zZ}4PJtogn;ZJ%S8Og;a&e^`Y?yz_H_5UX z+U7^cnp*YwmN#xp+}O_Qk}AB3q@@wx_-!7|8k<2o$*U#&v4v3*`#8BBbs8Oqe?eIo ziV3Mcydcht7YvIg@W)2ez<13(L;WWY0n32YnKLrJRmE--$Bp_WP7R1!rvgTCv&!-4 z_qjGR=~u#Ix>?qqlfyx;&%)j!{X2|3kYTKi?no?nC27bHF=NUPF-UUmp_p(*^l>N( zKo{5bj~S@}N>QTZNb?ir!m6`a(c8zRsDPgH4uaJtRWnS=cWX0RHZ{Ybu}eOsM=6nCTtl%aa)v|ZX4o!lJ6(Be!99ISqP0q<)eF%a(PmdpgQ zclWw~Nk@k%x(!d~rGc$|R@6P5_sF%DO$b${`s$DWvzjvBw?e>BWjbl&b%mSf`bnY& z@!Q+&xpzp7&{Scb@0pXU@L`u310?E7C^sw0l}JRNoAoBS0HS$ei1(;z3%$nPMke8z z8*6bG73ARoY1sc!hh0%F&+JfDXv@HTmL2XnJ|NggR8B>X=X0$b%`ai^YRiPclVPdn zYgI}l>JZGW{AVMNkDw>vz8xa~Lr~ggO;db)iFG<_gnZT5KFk*>91y0ALNbl~c4&OX zGE{iBoxOYQbkGW}9h(GA3Xq?T^u!u2&0RbwMcltuZ7d7;xQGIZ@RCQ~&BRv_2s%X~ zu?CEjJz+$??mj`?YjFoVzo{FKbqHX)`0Km!nj!zjzIz*We!6s0-_WV$GP9`>Cse*@ zn=bbm4KPGi(Re7wo>F__882Pm7UeqDaZAZn@XSpl_`pDzK940LQKA-94*#iV8d!4$ zes{%)@}tNN6c~=W3dTgD_eOWrep@q=zw6(rqna71)!;a}idrZXZMl;myMzjshihqREx z&YV&aiK9uNLg!t_neRDn8KKmTHlI)DK%f0rUi!U37VDL{Y<>&35MJ^2^BEj|Qj%QP zui{r0Jn6Yda6jX}Y3+jn zU;7jDpEEPpUvSt7)IBf>CTMZOfyZWlcb_JRx6c1H`)wEH+av|w0Rdb(;igI)7#}K^ zV?mF3O$t9ycw>m5yq;TP;z`X+z)(Fd*5v#t0B3lsz`_XhKXAGBWxHip+%{SscOwvo3rYx$|@>F-kc?+Xl!z z9glSt4IVM<*zv6Q1Lc?%fuckT#%NSXaR-a;6|8K>H|ZyqS^n!>yJBAOoBTA-d)cwG zHgdRJ)SZzrGg82NbuSNVwW*-KOYdrGNQGjtwdhiL#5Tw7qkLI)M>HIB0;V`E0B7iG zH&3Vaom!%C>uHCK^%^Q&?|qT!aR(!q85>ZVWXRQapfC!QzKXC{h{Y?5U))`j*a(_&X@_FA`7$3i~qkj^v zk}1I(t$iSuR`NJpey;UJ`OTzXEurb^l;1s-KsJd?@94_(;QN^d4GDeag2U}V=w`y1 zTa;~6)b&*UMj?a<^1W)eKvqdPIxLh2{ns-K427nT`Vrjx-BFsKH(dAxDmbz1sJ|5BLre$C@JZuVbp+Kq*E(C)jhvz|=V z|FoNaDn*=6Wq0`J;!ijQbASj5N<^>~T)BvdysRx15dE z#Vm(TAP@!WEul|-E@Ttjp@bMqL&2oquHNM2UG?O086&rVs#_Mu{CSmk4@Qd$Qk7!5 zV7#}v{QE{N9BiNIXOunj>a{1a^~Wgs#L@6Bv=EbgJ2pyKay4?JTt5kbA$)cpEzM#c zUd8dU@94jVM#^+^RNV1PeDLPGM1tVw2Qv0F%U89}Ma)(Ut5Xe@$&T9Kt=-X%GhWBT zbiCS$z7KtVsYEAz=A67YevtZEW=ufhA5pgu^|LF#;KJ0u^E(i^BbpvMa&iezGI#`NENhAFnwEEU`a>lb6c;YLnuR2wZaT~26AZTa0IkS19Z}X zg*#6x97B_ib#k;~z@+)ZgWLy+^0)OEz|cn%VzIcoO*6W{VF}FOVVe1q%fsvHn$#Gd zFeg~YUhM}6)fz2yn8nT}qC}NU{&{j;v$xdJjUF*cy5y(G*}pHx!L6?3VRa@;heF3} zxj*lO-STVDcL{SW(E8|gqqaKUB`ZrRDd1gb!e5Rn4#sGW$fttD+(o(L`kyS~r%(bN z3+DchFc&hs03Qu_=$eSx|5=ZgS+&!dw01K2zG@Iqj#%R@dj{fX3Guqzd3Mj2{AIHD z7250&bFg{y@f(%Dgj^o87NV)F1o9bbsc0odL!r2d2$}cr{4LJ{f*rdVS#IoKjn#9cCJ6*7L1Du8ncx%@z-j9G#CsvDCYErEBNURu?ZZ25o zlBNWzt;n5kh8uyDP9+ds$75Rt%am+fn6)g?Bn5VAjaZUQ0~*2Gfo>4$((i%%T?5R1 z2IyD2D^09GKBp7o`($EWWm@Gc&E3J|Qefr-@BH%uqtV%0CGqhlvs#A_mk;;l)Qw8l z12UR`Yo}ckKQIkkK~x7q1@fA?JqIP}Pmdy05ObKvrUCnR%kT0GcukuDXi$qlT~A5@ zoWFk*_}_hWSqr^3IK!tmIxC}Q*nZ&i^5bj&k_!$}iUUi$aq3Jv zvA^l{6A#zZz)zX$Q)jn8W@14$#sKxBlhE3IYW59#9J!ac_VztjIQAc4^V(gTxYTU3!6 z@R*bpFac#o6tWKBzx&?DT$WM*jO`wWNA6QBx@!W&G>;&IUBxusCD@u2S-bb(naxNA zBg_09^kYlv-GdS4?5f@r$v?TmW-hWe-tPxxZfRRF6y6>FgBE}pFH;_!C*Ng$mdCcN zdi8hq<8G8d!e~989r!__+EF%$&}H4;#o*dyGBogl zVEe~_*(#p)AHhh&%jHm~{YyzoZP&zROH%)oB?p$$Qo# zN&9tE@`4E~NvkJXuy6h~J%5-7*5j?3&m`m}w#>8HR>Q(q!AW``9r}%pujKXiSUFBTA^BwoQzkFH|zREIH76jAKLT;ftL!n(iPb! zBP6Yr>ulcK&mc@DPa;48oYfF5%dEt!k=03+U9jATZN)R#8&A+`*qZDKm2(nD=2tBm@EKR0c!TzsUP z;P-{tKT7)kU5N*)v>|3^Q&p@x;&wNCcWUl~xj>&YREpoKUG1>&yQRqsM}JPGX9us@ z2Q8eD>e=Kp;qp?*6Ue(2_=^+aPli;KRqm=LDc&oqFZ)S_*my4wdDN};<#F&`lD6BD zcjbZCF0JbMvxp=jrp{B3H1D>$K`16?+&Oc0N*)pEuBzCsVBxSg?l~*-cU*s_f~Bvq zT)@1K0U%wTV|+?Sr)A%dSNFBDnU%6as+fU{Fb^5V24)&5KxP3d8o(-GCDOS_>s8?Z zh293MjKh0*3IH4wzHma7FdLYe^!4D&%=OE<=3GeYLA%nqNt5*t=;^ zS>eX?>-nhjx&a&k=%$o|QBB8X9TiRB+m`uI;PPu<2n7D@u&p!VK*5TxvfXIRbbhLy zrG(r)=7b{JJR$JwE!e-jHeV`i{0#b?AZ%Efjh`jdt7LMkf8ghUO)F%mZnTpM!p){GejNpLY~KyU+LQu*X``^Okpi+hW62VkDW3(0hC&_`iiF#x*RfTEvR^}QF zGBBmL>)|yTge5eB(Y&>NW{tTA4+p2GWp^WbE&j5Yzc+q$OOQ&z(ICmUy4Y|lUHg`U|=pFSt~pyo(3-m@_33`oO68m^7sCfLPEcdk?>E{`%mTj2`4Sr_%&w*r< zz%SQpYr5l=OJ#)Q=#xp>GLB`hf%Y-KJ6?R#Azur3|0=L5UCo=IC3UDD(5#%q!@l9H zv*M0RQ-$4`Z%7TsS z^eOnl*4OgDc^&H`#8#s+=f$)8W!rd@)S<4#d*pg~28nhoD5y3q^PeqmAAc&UEpqi0 zgtNn!-BVxtt8#zV{3ZL#%o-esJDqE0N^PJYSvMe0kTCkz#*?zKFm_+JVTL}y$N%ZW zC{|+&WGnDU>(jD#%^G7AljcpfqHJ**cq?_;N8PVfL~CM2=i>y|?V>8Oq_#4C{ni+p zud5RtgGB9bOYs;ou-TGzxs{;TdY`^_o;p$w&;I(!B z!0+nA+4cH*2Mbea+e-cER@tCb&)1|eYbB|aCk6X^9nHQM98RMXloBJBYT05QdfE)s zA3V?A@!nS)5*{Rz`RFM2*=$yoILUzPX7{mI09QZPE!6zaHggcAA;TL6$A--rdlWPN zG5SV@%VZr)9eRuC2OsGNGFd)wvdHBxX=?+ytIc=0QZprdS2{coYF(263(~#6=$l$Q zP=ztQ$*{XDy5}iAT8hc3qU>!6KFGD+@1>=&%$>l#k-T1Cb|5QlG7C%d8x?jn{zK(n zuHAnZXofCAl`-qD`F-U$o_fn<UQRtdicjd-H{kN_}43oCa5NxP;Y7fxHE9gE9>$eDitB0Q$A1l^n%oLKho<% zH|1LP+#$rTVs$np*ya^WrIxVv9H*l6^pul-!=wF3A^ws{Df-E-XvU&DAL(;Wec!ZV zs}o;JQV;5P{{6Ho;o+9oW^61xB*X4~I^!}lkS5_6^=A|+_k5m{H5})mNb_i2&IA$3 zR$~Qv4=QNM{meZ$GpP8>Naj>Qocl|v>U8^Z4A~C}_4}JVAK@*@l}-*NNkY-&A|~JdG@)6{uFZkvk6wUvZY8s;8HAsDIR=9!Gx>UD|s^&&ryy%V4L~YDor+ z4Xudg8|u;%$uu1-iLN$(-M;;ebu|3zfvplB1GL*(i7Ivc@0;ms4|jj#+@W0la8o*{ z`1yR&RmCg){^%7(&UK~p+td1m6$euOOH-C_9}H>mtdaJuI$V-^UQ_C^!i-LQ$lBcrgWla?ayZZ zOgH3#u~pNrvL3zYT-dopiuV=DYsBv?)s^b6i;2*2+~+?h$3=EzZn~cZiXQEG-M(vY zXF!S49NkR6)vHHkou=*sxqr!q4zpD-*8EYH_mZs33t-i{PPFcNchdv{n5ae7vjQL` zj?n~qbnu?Fhc~?nqE8`!e2ucS(hSei%DGkhiBnItB;a}W>zF)}dx*$H3AFF7wWG=H zNwR$ciP-FW?bUe_O$(rDM zBy903?o!t*W$QUrNI@~^nUdCcuzQ^V&zhgYDx0zK#nqy?+l%|Va(tUqm0Sa?ZBt|G zzpJ;)4NIP~7~GPHx1^>Cz`nd=7KDjjQy>9mt^Lh^FDV(st2R8Q>}ByKMF9)}04AxJ z2cvdGSMW4ZlQ*sD{AJ&u=d+Gjnh?*BfaTl72_am4A}tg-wS@S0f7pi$)lMw$`|Az|zAOR{G#-}tmunkqlOmy>oq+SGTmfpt}x zs**HXKr%q#JH=m%x$o!hX`#4SA_?XW(>`nXEq)AZ*n7-#=~yu_qh5VWzy0n#>88{A z+W`b?M+-wOias>GoRTg+8T@JcU6zmPWCSB8{X4jPf>jszw(b;+tNGJ%D88Y7R)!a`$Z5ncYIMmy)L+Z_*{@u8-v*(l6E>(fN~Lf|W6Er%qvD+p`Ot_O z(E}_tq*nUujPvReSDo7<3LiuVxac!wwI!)gg6(=m0GJdEVcD$$zf56ZVsZ38@ z5pEXuDt&|n(F8cK?kH1Da@-T9P|=d&0Vc*33s<<@gmQpeG9CnG;B_RoFE*nv5pJhu ztkICSI!yv^Co;<4H=9K3Xuq(JW4-Fy;bfh>6%zJF8Na9JM?LTdqtY0s{z3n-vrWvg z$S+vgvecrN{-=HoUCiAQ*2~M`hI=P_Yl@Xp@Ip4=&!xdh56N{Nmfe3R2Z2DXm{fUn zR@364oDmL1_GQ01-jk&^K2Ky#4uH(_wi`i{$T=gNcizyg^l0c)A!B&SqTSjN%%3e- zW;cC&Eu%aM&5&r?GZWEZhiOiaRnCWoS=MCI`2xP4mjz>jiQCdWgv&-Mm(;zHY;_6k z&#j7SX<~!{di3v?(jCvLXeKvQu#vw5li=*OpLEXD$9mmSw>hB&H-m32~U)qGCF zuo#P*Wh6KyXU4XoP`USfhcElEmB$@H1LoStI_r$kOHF#So(?kB1^{IQk zyUa(mIbPAy$b-Nn-4VsMK|n6c{hA*B=-E;2X18bQ zked6=hGI0b<8PlK|1po=uUlBTmFyc9wxCc@4WS9}Uu{gCoO>U{n!tEG)?uvrsg;OC zTkI8ZlH~-GrfncU;+RIJ$yrtH#D^@VSVR?qFoBr!V3df~RI5PABweWDCCkOwqiz3C zCt^|VtVvp5v1`>1x^nT}ElXj!c@hn!b1>&MG)N*wWonZb%KevDOC!jQhRXMOw3c#_Q3@^pfD>v{`UHLG*-@9uqFdPgxWQNw z;-H~-3g)~5zNs4WQkd6?2GNV4=b=|nJLh^Tm+VIsvh~&k0V9IsHnP^U8P25&9f0cb z;eiJSmM*3`V~1g7z1Zgq0X&4t{$<(|(*EN*9FiJ#I@Ze{8zQi; z2>ucVbl1|Yc%?ZSc+lowKd0*b0J}Q>|GfZSA$_jD>{(YXpz>KI0>3%QO`dzwS@>jE z|9bQ|W@YcC4q1td-F<#6VzAw?xf)&Hn8ykgk5I_LW=}pP8ox7tt*F}7jRMhdfcVD6 zYZe~MWk2&xMvyZ?y>f%Ts-)e4CxsKPQUWbQg4rv32|xFe7M&oql<6B;M2Z*GgsYi) zAYu;v5DBSt4YR>$#~f~kUv5$;`&Un=z-7AM6mRtoPJW0TthXY#Rs8En={()S!KtN+EZ|Blhi?CZFnDFaD zM9x<@)H4&dg9le^UQ3ioOFq5*oo(v3O9|V?1TgK$-%mFvQ~kDcy_|S!EGn$ z9CB2piZtb_vIfpRuYsM*~LH7arU_Af(0^U3nNq|bv`GuO_`23cgbK{7VuIk)KiyEfjj z{O@bADku%(-edog1xV1AI`_~KM{;dWy zy?=L(-l5*i1n`h{+Dzu0E(m8xIRjh&FXx1G&Mm=5-f=}112cQtg^LQ5@Z1qq>1^C+ zvD+h4AjEra8xWT^dvi-7DMwu4BNt1taM~#a4ardnsB0)Hxu0v$Yrv))h7s|waMn0<`)(FeA zbd8Rbo_)#~1y=2NH#+mz5f2(tkEjq84#9xB14|)aZw9E!XPGJ!@B7%>H>h8J%bz5G zzFD8|=|M~%*$u}F=47_6#uQxGX)64m@85F~1`}APeB6PMvwjp&n^L(=^y4iXLjvn! zS4-6St;nAve{7Y(zu(tzLoM{=PpW0RtfS~lbNqZQYw!8x&>pPktk8~yKK5HYyXn+o zNRicDf3{t3i;5MF`7O-k!;pu0mk56#f;IsE)Xd(&pXq`^dG!85#=ae5PjMc zJu-9oVL8pmVV}Wu0nMqv!)SqJ4!`9-zbA~e%rL|MqLia5v`_@a$#@TVN#vm|1(isl zZm+y<7ou%^*mrNodsYv;vK`#9*M8c17@jl zgNwg>$|BYdKDOcBYG@c?9ZYlS)>`~8XsUCnSEIwL^mM+cbh5q;pDlR6TR{3`h;q(R ztVCIo5~O0@blcZt@{`OhAozS@tn?fm4}L}dcryGBxwn7bZ{{Z~+oonDNc9n?x=u}p z>g4_7R>B}wXw!$5v?#h`1>Q=i?DXtx98Nu%Mu99n_Zj!Ki2*-b&A%v;9LQV0k`BvWDeB|6Welh6N$cpINzZij#b6tnvgvQGz zGJk|Qi~uMo2dFk50JD=h_w%Hye!6Ku@BGpYhBwP_Te+r;ZS$nR1&l)hAE6+xmZ~`< zOO;bbFZ?*$8DxaB)|mZk*PY3{r%a__>2n+L>aVbi`BFLg5>vQk#Uq(}>jC*sFLowT zLek|ku3=j3J$6SIXnnv-)czJH?m1+%9CY$xN3XJ1`Jz6k*YNEe7G%))$#0X|+^|K6V7{OZ00eX>UMod}~%F-Yigo)MW0GW(C4y=?^OSn06KrJ3T zShf)yeWn*=#2`l%f{IXB`Xb>D=4N^sLq9U|ppum19+=+h%#p{?ft@Od^=gfi(EMJe zF}!t2OqHI7a6EN2H)T7cB1AaNkJu&@(0TydJKR7n*gy?%A|yrf(b2AIHc5=CAhDCw zY7CW5(+i(!E+~pLz5|oJlYP`P*j-ZG!k57s(Lt|lm!Me&R_#c6b4G~v1hgcrYC(fg z(3-2m*X{>6AdS8aS39WhW;X+F?iQyE^ud)`J%rl#N1yHa+%C3MrV2k==jn?#(jfQg z<_-O~X}#7QL?BYZz3UhuQo+_ZHEx|`MtvL~=76B{v z>(3!98jWUF?H+Az{e9`oxqVY!B-kiMIbqS3JeFIPick*pnU?3s0ZuO4KZS}>mkP*Y z(K-%63G!V6>Gy9hi*ZwRy-C@LCoDq|pMgrs<%V`EU*!>{bAA&4>rGwC;kEpWpqo_I zrTP}Vn=OJqM3&#?(U~Fej+#Tkji)XthMfdb1Yc>tU?n*x z^D5^N?|xU7RZ@qroC|<}IgU~C1;1b=E?VhEWSK(&T+hOC=dy*CbBioh00j81h)ZXR zq@?54D2SBIGon%lXn7Ty$m=gb6*SLA+o!RH5ok$uB*Z zy9;-WHzNR|orUb%_xrU~osE5#5uP-1y;LLV%y_NAjO?F*sc;TEh>+;pjy-|oOA;st zF)6ERMME(czDQGnDnvg4D>~jhRrnq zi6}q$YfkW)vm#ANRha-3k$<11`e=RoT$>CKx!dfm_7_@dg0A0U-#4#8fj5s-IPm)! z2uXrlBGgcAO=n_rE`oP6AC2)h*>9tpOrqToLl$Rl1Pww#m~dl4^XV4VOY66-rc$b` zGzzZUW$z}=UH@K{k;(yEr_Je7+ea5z79%Hi>nrVr5GZ!>Q`(aP8r#$DY?ZL2A99}= z#xJ>52R`ZDn*6*mA0k>fmCG7IAOe(9f}GZxY3_2;MDob49q?ifA7J%40BP6URPN<3 z;#Dm~A3fS4Kju>Y#-~BpeG)H=>`P`&gJvzh72^6sNuJIpK~E3@YGlkv{&iX;GF1=l zmdTC-s{~;*=+{&OIoGY9Yh@|CxU%C3n27?EEMZb4Qg~VR;1SQOkUZMQ_rdFYR3m}F zjFUD>_Im^g&hJOo9)6byP7%4usx7Pa=Myqw39VmZZ|ywz(P^19FWh8Jg8~g8fis^67b%NxsUwedtA!XL{ zRkwgP!8%EjU_vYMY%n;DifIMtV<-jx%w{J{+&dk<+m%7Mb?Ny;EWg+96L-dZRme2) z$8*akG%p*pm);7}+-jf%@AAB5(+EtiBa_b{fUk*DHp;iCcrO!rTrJlIP z(;K$_IV*nxB3M(P9AP;i1JGAOwck#gHuNN{pBV)c-v9&s*KvatdlLG|@Xw^O^fOHs zj{T_iK^wpjqXD*j&sPj=I|svKQ@&RX9i7}Zr^ z7D$VDtXMR$09OTYSQ~lBBotRtNlLH1zN@-N*?!Spp)Rw_AR8|$Xm3SunGtk2Bz^-V z6PAGSJ>d(`!fO8Ex>{OQ@e>EHxaP!yXFZ6`4Run=lz8|ye6e2|>i*C=V=ba4uU$M+ z7oY^TnhR)2GR!ywx>E!R*LB3dSZGNsyiRk$N_wC9%m?6xuxx+5Nd3%k-5`u5lr(W4(oM_ij;`G8oIXOFJ8YUo(9_ z+Y(MgTzzI5r(E%516?(bHsWUt#>`=9fhn}5Z8MOV50+h%)83zxw<4_LeoSK3<=nWL zBLikohAU~d8`hpXhww{RvSiyxuVa{P%FL$4Ur$ePhgKa5V-{S^hS8r4BSsA5=Pb-3 z;atUyKMTb{!yisRM(B6)J0H76S!*8sEtL$w=S}+HP*cH~WsZ~%S+Ip+CY~rfC1y@X zp~K*EynB__n_<<-7XQK(Q0?!C%(WB8(g(xz;w+zBmyHmW%E*8c#NjB1Ehyko-bBgx z7qE2iAuVVnetL;LVZ8OBx{-3AZKOndwAZyuq!E%HGo3s|ki+0zh2GS&%-lud)O2Bl ziPw*gnrAT8P5AyZI5I%Y=(yS>7xzq2jktxRWH{R2U6P`^Cs5k$0F5uUBWrH8~ z8aVHS7xEyf8*@r&nVP`kRH}<;7h-t;EKUu&%mA78Oa)Pc_{T%XH zjS*VwV++B}!-;&B2g%_fuez0I! zwv|uDA#lmr6Q&>5RWPW8;}%#N@4Im2+gg2e*|dyU&~M=8SE6*S zvj#XHHVcd*fG>eS%xMhNWpQ-o3Pv_$VAt3r-6G?4bUBT_Rw`iKv`u5B&AujUOIb7x zN*cDdj~e#0IW*BHOw?R9MF9&}T{zyWwq1@@eLmV;A1XgA`@qSIJ+k(z;wHS$v7_Od z-Qra(5!5e_5aCCJA4L7>?q`Ya1cN|+WDQCRs@jE0JHt$Bs@j^=>NbVnc$%6zuQqA* z#U-n%bibWfOCI14O<1NY*5TJmx-qkA)%a;0j;#**UNdxngyo>J8m!Kh1^2==_QGZs zl4G;@Z1`x6MW34b==4=&lRz5!XXnX&XMH2y=A;lT0|B$j(BrMaAVdV3w~L-JFpYt$ ziLc9+DxFG=hGOlX8B0B5Fuv?rs*ca>$UVbz3u-lf}Ss-wUw>JlY(x>LO_ z6Elo)gq_!f!a2y93cF^TfDV)PKEmO${zLqe9HM|tx0)-<_VanfVGf821X@uR$<+5} zbW)|ZR!y9kf$+AUoE*G}O~ae6^`W+!I|h%|I)9&|^UkOfmr;ueIz=M#T@eiam~zXO;0+N~phCE{xa_%U;jrO!(g8^s<~=7i%nhoYG6P=bQMYym(yh>3Ziv?OmB0 z7)vS;1O&Ruw~3`2`p6(!{6O6V1}_B9X^xj2{XXORld?9irTeT!_2};wk14)YA$IEK zt$iiLTvgLTjEGprjB~Jj*WpVeSY87W+<(E54A&UjIXOS)*n9G#R|~%+rYN8ui^6Zw zmU{AGV5zjjwT#y$J{a-QgehDwOVEESCVB14t*=&px;&vQlNQ0HT$DXyzCA5an*KW? zt5h-Lq-na0!+>M9r+^?WU%EuM0}h!9&jvy}PM)`)Yd??=(v z9y?}^^>misAJ2sA+9q{e&GIa_muaijC!%ztHakp)tnG3S0>6%QVtUfidLR(!+_^z$ zWoE5hv|wsV=NmI2U)iawfMQVupmQLQ?qxAG3Am&@?#n`@+W!?-F4Ar5*qDK6=*HI9 zV+2x{&mY!r+r02PlzQ(Z35M2z@PNMgor_uhf+^ON#@z=Dr6b)UQ}^5DyB)bV zCd%P3#2f>{`mC0>l48!t97gp4hJpV&sOYRbnKeR44j8U9@#E(BAT5B6T(RgD1(0tX z;wQ7`h!P9qOKS(NSh8z=~HsGIqrLiUfGVgo$Pirlls3-UkWcYDVXT;}jne*}g$zV?L z)<%Z%tH7B`X@HaxXij>Ymbw#?t6 zX^R)4Gggm6X1#5g`Y}GB5UOA{Vu-oZc6|4kZr>#Cx{9LfTRVDZOn32F7CZZzo7wsq zoX;8G=y)!bBaR>K>7;eH-oo8R0aFzJCr3ffNE*9~45d>JxGK>?oQ4S|akiVL%j+o# z41I}9Vb8@|#+5J7I0o$5cX7?sZ5o~H!{{ZJJ7N-7=x7>VuwO6ASr(Y>#|L*tW2yzN zysE)-&%Xmn?CMb8`K0KYYO(XtzYwwa8l`mu@29mI&H*9>fg}>BA*r7eISP8|AWC** zPfJ?calc>1V%xA@r%gNn_<7bc;tXVgg*5eV7wrm0K8%6@0_y2vzWTUK#j8$9px!w~ zL)~%%EHj(FJPK#NLZ=1nH({$jt>~=}+Q(VJ^Vqj=*8wfPStvC!eE-~`{}Zz75V#XB zL>2@>1YguqeN~FOW|&1nk$gJ z2K+v*^}$Dg4eQ@Sr5b2%S$@X~Lkja4=X5%mA#o*dLO?ql712_c7tv{C(xanTM(~OO zCQ5$CsehaBU!?QX1?&@ar*JsrX*nN1YkDzS+z;fxYB(Pd@+@rev30mq zkM;%}pn8S>R8O!FPf*Grm2PX_X~a=NVU;{>m+VQI$hIV*6&Y8t(>7b&W|>m%y2YmfY;0EwdzItBxySJS5YO6l zwfbVal+0muw$XxPix!ODzz8G(F<)h2ivBO$uAD9esz<8W8qF?C%D4Fw2x^T7btkQj z=&a+GcpP#!n>$7--<|5l-5+xS%&vDqzj$e`>Xm^SGUz+4j6*`ojNS21aZ=%df{zVH zvpt9S&iDJBQFI;Qp7aOUwpEpp4*chrUYtq> zA3083FDw{I`FVDyl;Fx3ame?wCh+mp7r$yafNu700K%wlsT#U=pi8;FH{_P+a9mzr`5f>@+igm=(sm*y1WzQF`mUPx{c& z|ImxeLA)&?yxIt(uZ|o&UJ$)*r0Be}bxn$2!4M)qAW*z&?1KhAl1Sr1UVBcjdXVmc z6_~$$P@mn#kx0|sljDrqF+fJK($yHX;qKOuV={ZkAbZV@T*5!p6*M+F6dlkeIkUHJ zDLr<&(&%(_?Kx}W`*_G}z+w1LDZ|*73-++y#KEknG2xwq8A^rPz04VKou$26BDn4O z?DGy?#>0D-ooO7M>)$$$u1Vrl|M?FFidGKV)A5x^V~=-U`4&qw`=q;*Z(FTQX^M8( zKeE~SRXv^Y3FuKV&ZW)ISq-t(k~INlRD zu-dHrZW$Gx<;&uVrTmsOfh{v&Otxo?o175iN~6B|czPvsrqNZWw60iKo5G-5WS}W( ziudV^-A|2v$E+@cI&>Q+UylATsrwq=i;$(BOM(3!hgu(C$HXhh61@< zBIJ4=;s3M#-JABwR2yEYn1}0jUC8d@M33TZ3%{4hQfHoq_vXD;_7I0R#{3De;15$lCV0 zGH~&Zbcr*g<&?PAxcK_a57$`hT}Kpf!a%o=wf3L`!pA|pT*%k!#i7pb6vV#2#2&X+ z=Mz=8(V6$oZ#&wa6&s|Ybu_7mkyq+_XAkRfE84gI0Vhl@wMg-2`*B4Fbpe-o`7ZRj zlHl3>omu`AEUy$Hqh+V}?kb8&=w!C3?s)f(060>Dg-cViFWE|WistAKN}ZRQPjAmG zK7~Wany)W&H+9Zmac^ch;v@hzSuKE*u&-XgknNNHLrPu-GK@}ynwH>x9PhV?%6pz3 z#Hc&G8xq2!xHbb&QfY*>%_<6TWbv_*ACoFAyO+(o2QS?B+2>KG%|54IlSm0Wb*;vl zc^x1|>wMdTA;!e-m7bi+6hpllS2loyu}R_Mj+uAQ(x#fI54*c+HZ0)>sMAdlv(P^a z2f-^!>Mjk)a(5Xn8=4yW?(hjlGaH}uv6;>F!lHw%*bMFYIu|qHldqzlHBqnB6gNv% z4a0o4(bw&JZB6$ZW0y}CDySt(e@xQJ|1Ngi8L1)mKs|J195&kJM^v^c{brar6?};y zA&1BUKkHE8qZU0QUKFnlL$t($&p`Z}5m-<4Mc`TZVurKBq33yb-KXwaGMbsP!113e z`3zu_&VHu&Y%7^DG+%?#sOV5%*t)wbrs?wWRK$aY6QP?-g%r)i!QC<|+5eIcV(c;U zL$Sg}L?xKMhSBmx+i%l0+~C%DY|UKVf5mwrEbB=V~2zHTRCa1%(#E{aQjlYIEq=!@?J~94trn{Hw3OJ33}> zi7N%JvoF?T2+leFr;{HH68^zV`(t!(E3yJh&&K)~SIrD38mS7i!#`lL25Fu#TpZWW zzB5^tJEBgr`tMJjNWvRR)|DS9wvzZg0kZ;nWwE!P>q~WN&|dH_@L>Mp|7dSwIlD2o zPih~Q8sVZ=!^<=DSd6}j>M))G;T?mGs*s;k({42{m4vW-9nsr3#& zV>3q|cX?zjWWWoxo2B9zyhT7~TTB6u${ffPJ(SvN+9#gR3H~Ab|9TXMbS~}jxgi^N z*Zj2m=htGG79#B7c;)cdmW$&3pV8RWIp`+R8*WW8G(@AVIc|g~6}quFHq!Pji&pz` z+Y!C+LI-JDEvjh3Zh;I%n3eB%T`&nS&$jr`bvR^2cW!_|%J=`p&6VI$x|jP|i1B_n z(2V%4BSmMUjL5l=f`0SX=)giOvWm@uW&EDp8pFiLh}Qj4JZu69u`BFqD`wpcY#ZWn zX*c*=^Y^7w)aSA)GDUut^$%3JGAmk+Pjc;Vk5Y!hSx>p=4=7_ROCr88hK@+GYc+(zCD~uVbR9BbcCS;B z{MatX`Amd+2wb$%itgZ0a4X`0s7*bw<#Ge#Kub_@eF|US2a(+PCjzB>i%esm{2pv9 zHj&J(2(T+ILHd}sR#6|Wqy*zAFbVix96O+#0Q19!pZ!U(wXr{P4~BehuK0ay>|d^L z`?-EO*9@~9a`*L@nygkDYG@+ayRbizb&BcJ1Q@4G@x>1D*0vyrPxIJSvx+Gy>2 zg^7fvW>+m_NqK#kYgrRb)7DF0s&neH#Sf3G^7MgpO3${vO+16{V}O*{m#M}czvqw@ z$4&!MbmbwNeySpQHC#3nLUj&N?&=db9|@9Hf| zx$Gq^{URsBia#iTDEP+34Z(Nt&h*_?PVKzNbLKGT5%R;L|o%*4IfLttk zwo!VvET1a3bi2SQ87bIbXlOsQf|U^+`kyQP3O$6U|vD81PP zzRig8`}UtJc|}tv>G840v0d1aJ{Do_HsUaMM&E<@&Y6hGvVM0*krERpaiwHe$D6+w z>B3Szw--0H;Z4>Bv}$ah9&~p$P|zoq(u&%oygM^yue9&0`<FD3#@4G4@LJXHFnM}6Zb113V^QagWio~0It!WUZLTkD;9$4qC1qa0A<1CBLSJ9T+A%EL?VaMAeJYhE4J6qIL;{bo!3 z1)gd3jIPY;N<)vkdrf}by~B3Di+~UT$l>?PXW6(++cjGN`GbQzy1CPK0Rek1py&^? zEXM(!#N}AoLS2iF75+OxEA(Q49>b6TC}&Ts0G0|!k<>VxhdVTK1I9xykfnqt>1F1fo0RT0={Yb zXc-@nggtoPFUKMiM&)rFv}V2YT!z z#&vr|Mj2y}xqC@S!-%%9<;Dw7GJJ`(2-6vY*1|q`$VlMu|U(F(!P?JCk&x{?AU=^`dzl< zuoG|DzCYkGFdQG?vfv5}Zd)>Nt`gNev{`V=HX1$xtno<>>iH10I{c=k-q}8R*BoSY z#$kV0^LORu+^DYI*lO)&bM6a+F<2aklKMaJrj4Xq@n|%8QAjk`?>}5dVk#BfS}v-i zCNx5Qyx3hk>2E(QkK6{lmj5C2^}J(3Es8|i#EOXyd9eHJ;= zEShetBUAmgF|CD9Kyqoexz&cRt2Ra$=fU$IzmQV?p3mrNz)$aNxR?7< z2mNrFKYDl8zy<7!K?zCQ+IvYHFE@m*QbgYVf zFZTN@#~-owEs{-QZ$@jv;GT|Zyy|4vsk*)}$rGV@chVmNIoF=JMfSD8*nxMd_N#** zBsNbHW9-{|hK{Xwqjc6n1G{$)4VdpY!m$uwgx}U{abQ-2hMJi{aso2wO zUA06tvcJs6Zb?n=?n|DH^cP;775P^V0hNHNoN@yX@K$q7{;_3RHYh&rKYXS2SPU}o z0j!j_^a2|{2Ptdwq#o8m{)yu`K?wAvaCqdob%dR*-Bgz$sSbT(O#xEoaHt2v1W&!u zox@w6GcLU2{V@Y!Yaar)Oj3YyL842qpD5j@sZ&YI-j;89&*O+!IyUFJ$4@(Sbg~cB zvJWio*_x&<4gb0OPcOEnlm@^?A+%l=ieLE9&)o!9P?s`@+GvP2r0KGhn%EQ>TW0FA z_{Y{cqXG)iitzc=n5mA%!cf!V`0HFEcsqrDze|jBuo*^c`Q*F{>EO#Fs#8{zg3NU+ zqb`kTYjR)Gcs5em(hNjQ-315ZQZGTU#yB#>9_wg?_wGoEz&166W&!tR?SHF#HeDO= z1n0sG2tXpg+Uo~SDG?K<(Gk)~NSP0IYa_Y}BW?EI+f~JjXl?168<7_ETS^#lq*D#w z^;~G6JDhv@Kumh?La~Cci-yO-I^I)K{gI`ARq>R^^6J#G)JP@TV2Iv*S-Ln@wCNo? zwpxzQzV67yY*x(Du%}b#GHWz<@6ucp6e#oG;d7;~0v71HB;SREIr{$K9yUJOv;GR#!mlx0zKa1U?24TA|2Sj- z#bE>vFWuUNRv2KmRVlRYG7#elL&mSE^^N--zaPh(v?#_tW=2`dlrJ)m)tfQ=Gn&Sc zCINC)*pC*tT`}D5UZCk+IV+>!uFC7CP`H^-KO5%!zvApUJI8}^9`;N81Q=dU*z>N+7tQ<~54PT{c;TVuT_2Amv6ykEq7Xq>DpV_+%Mbh z`&5;D1uHA}Kb81c$GzcO)WZyhceDGZFFp{>u!H+QOTz(oA#lkTx@KX>t*wl~+)Tk; z9!uT692Nh)RGvTYmF(=A?~k|IzUa2#XWd`&@Oba&{p+^9amu}4-W##Rm~$@wd|*w_ z>)*MD@4wqQ$9A5TT*YeZzR!G@CEVXVm!9^t=8EN_TwA-{J7;ZsZX(qqp3eC0e%?d& z52`E;z_6&PEuDV4SHa-w*IZ?Rp0`JTE?=+sXrJNqd)2q=Z#h4gU3SHcarvZ0F(&`7 zEqi=)a?E*#82#M~^2NXPUb`Rvb55iDd~m6epML$)>W!uhul4wM=Nw-#y>a>?tTC0ziIya+ICwLwm*B> z<9<(kAQCO`_8sSi`GmIAlkx!Q2|8DfIE`F=@B2Wat3xa zP%nj{ff?L^U^vhSb`-;d11t?dVTOVPCI=uzSo>_{OYwgtKuR0(U6_GAVd`6f?!sqZ z!tH?rCBQz`?2BlgIGe}@b_<_3Wlp&vGx6W6;~+a2YLvlcA@L!C?p&4zkTE0#=qq@D zrmXv957KO*qkI5F<22-qSOQ4iVngIVaP%KHJ^ddf@L)#|12d35&=|=C4l;~rzsbY{ zQpgS-@B-3i;i3*80Sg^o2#qWKn7MCd0i_^@J}+ok=Un>_va8|oC1|Y7RxSaJGci0^ zk@iy_q*P|QU;>D?Fz|K&(GL!oKolI%0bc$M)XIDrJwnwQz$WaN0~(M6xvv}QF_-{) zIzAgXmkF%YeJNB6OvP+oNLUn}6;yHn8D^mc3)am{3LpWQ>1+@hmRWMvr9tf90COly z15h0>BDO)p6+GDq4BxX0A-1-|Y&CoRALQ}_g>V&trO?noH;c&us1T9WZp0iG0%s%( zEodBUh-3r{^r0tfvv$b@u--M1e;^T`$^yv%uoPhci$?SiXK4UwEJ!FeWdx^y_NP1! zAQ1}#SfDUL`HTt-Kmad5&OjZvVdp7GRBV8yG4vv2S_4Sqfks#epr^HGFdJcRWK;lY zK-dIL)$r7U%OWNRkUonImTMT - diff --git a/res/values/strings.xml b/res/values/strings.xml index 8dc3f0c8042..38536cfe908 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -630,9 +630,9 @@ Encrypting - Please wait while your tablet is being encrypted. - Please wait while your phone is being encrypted. - + Please wait while your tablet is being encrypted. ^1% complete. + Please wait while your phone is being encrypted. ^1% complete. + Try again in ^1 seconds. diff --git a/src/com/android/settings/CryptKeeper.java b/src/com/android/settings/CryptKeeper.java index 5afc3f614e2..6f847f3d535 100644 --- a/src/com/android/settings/CryptKeeper.java +++ b/src/com/android/settings/CryptKeeper.java @@ -64,49 +64,20 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { - switch (msg.what) { - case UPDATE_PROGRESS: - String state = SystemProperties.get("vold.encrypt_progress"); - - ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar); - progressBar.setProgress(0); - - try { - int progress = Integer.parseInt(state); - progressBar.setProgress(progress); - } catch (Exception e) { - Log.w(TAG, "Error parsing progress: " + e.toString()); - } - - // Check the status every 5 second - sendEmptyMessageDelayed(UPDATE_PROGRESS, 5000); + updateProgress(); break; case COOLDOWN: - TextView tv = (TextView) findViewById(R.id.status); - if (mCooldown <= 0) { - // Re-enable the password entry - EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry); - passwordEntry.setEnabled(true); - - tv.setText(R.string.try_again); - - } else { - - CharSequence tempalte = getText(R.string.crypt_keeper_cooldown); - tv.setText(TextUtils.expandTemplate(tempalte, Integer.toString(mCooldown))); - - mCooldown--; - mHandler.sendEmptyMessageDelayed(COOLDOWN, 1000); // Tick every second - } + cooldown(); break; } } }; private int mCooldown; + PowerManager.WakeLock mWakeLock; @Override public void onCreate(Bundle savedInstanceState) { @@ -139,17 +110,71 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList | StatusBarManager.DISABLE_SYSTEM_INFO | StatusBarManager.DISABLE_NAVIGATION); } + @Override + public void onStop() { + super.onStop(); + + mHandler.removeMessages(COOLDOWN); + mHandler.removeMessages(UPDATE_PROGRESS); + + if (mWakeLock != null) { + mWakeLock.release(); + mWakeLock = null; + } + } + private void encryptionProgressInit() { // Accquire a partial wakelock to prevent the device from sleeping. Note // we never release this wakelock as we will be restarted after the device // is encrypted. PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); - PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, TAG); + mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG); - wakeLock.acquire(); + mWakeLock.acquire(); - mHandler.sendEmptyMessage(UPDATE_PROGRESS); + ProgressBar progressBar = (ProgressBar) findViewById(R.id.progress_bar); + progressBar.setIndeterminate(true); + + updateProgress(); + } + + private void updateProgress() { + String state = SystemProperties.get("vold.encrypt_progress"); + + int progress = 0; + try { + progress = Integer.parseInt(state); + } catch (Exception e) { + Log.w(TAG, "Error parsing progress: " + e.toString()); + } + + CharSequence status = getText(R.string.crypt_keeper_setup_description); + TextView tv = (TextView) findViewById(R.id.status); + tv.setText(TextUtils.expandTemplate(status, Integer.toString(progress))); + + // Check the progress every 5 seconds + mHandler.removeMessages(UPDATE_PROGRESS); + mHandler.sendEmptyMessageDelayed(UPDATE_PROGRESS, 5000); + } + + private void cooldown() { + TextView tv = (TextView) findViewById(R.id.status); + if (mCooldown <= 0) { + // Re-enable the password entry + EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry); + passwordEntry.setEnabled(true); + + tv.setText(R.string.try_again); + + } else { + CharSequence tempalte = getText(R.string.crypt_keeper_cooldown); + tv.setText(TextUtils.expandTemplate(tempalte, Integer.toString(mCooldown))); + + mCooldown--; + mHandler.removeMessages(COOLDOWN); + mHandler.sendEmptyMessageDelayed(COOLDOWN, 1000); // Tick every second + } } private void passwordEntryInit() { @@ -211,7 +236,7 @@ public class CryptKeeper extends Activity implements TextView.OnEditorActionList mCooldown = COOL_DOWN_INTERVAL; EditText passwordEntry = (EditText) findViewById(R.id.passwordEntry); passwordEntry.setEnabled(false); - mHandler.sendEmptyMessage(COOLDOWN); + cooldown(); } else { TextView tv = (TextView) findViewById(R.id.status); tv.setText(R.string.try_again); diff --git a/src/com/android/settings/CryptKeeperComfirm.java b/src/com/android/settings/CryptKeeperComfirm.java deleted file mode 100644 index cf72ec8b219..00000000000 --- a/src/com/android/settings/CryptKeeperComfirm.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings; - -import android.app.Fragment; -import android.os.Bundle; -import android.os.IBinder; -import android.os.ServiceManager; -import android.os.storage.IMountService; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Button; - -public class CryptKeeperComfirm extends Fragment { - - private View mContentView; - private Button mFinalButton; - private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() { - - public void onClick(View v) { - if (Utils.isMonkeyRunning()) { - return; - } - - IBinder service = ServiceManager.getService("mount"); - if (service == null) { - return; - } - - IMountService mountService = IMountService.Stub.asInterface(service); - try { - Bundle args = getArguments(); - mountService.encryptStorage(args.getString("password")); - } catch (Exception e) { - Log.e("CryptKeeper", "Error while encrypting...", e); - } - } - }; - - private void establishFinalConfirmationState() { - mFinalButton = (Button) mContentView.findViewById(R.id.execute_encrypt); - mFinalButton.setOnClickListener(mFinalClickListener); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - mContentView = inflater.inflate(R.layout.crypt_keeper_confirm, null); - establishFinalConfirmationState(); - return mContentView; - } -} diff --git a/src/com/android/settings/CryptKeeperConfirm.java b/src/com/android/settings/CryptKeeperConfirm.java new file mode 100644 index 00000000000..0269c2b57d4 --- /dev/null +++ b/src/com/android/settings/CryptKeeperConfirm.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings; + +import android.app.Activity; +import android.app.Fragment; +import android.app.StatusBarManager; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.IBinder; +import android.os.ServiceManager; +import android.os.storage.IMountService; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; + +public class CryptKeeperConfirm extends Fragment { + + public static class Blank extends Activity { + private Handler mHandler = new Handler(); + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + if (Utils.isMonkeyRunning()) { + finish(); + } + + StatusBarManager sbm = (StatusBarManager) getSystemService(Context.STATUS_BAR_SERVICE); + sbm.disable(StatusBarManager.DISABLE_EXPAND + | StatusBarManager.DISABLE_NOTIFICATION_ICONS + | StatusBarManager.DISABLE_NOTIFICATION_ALERTS + | StatusBarManager.DISABLE_SYSTEM_INFO + | StatusBarManager.DISABLE_NAVIGATION); + + // Post a delayed message in 700 milliseconds to enable encryption. + // NOTE: The animation on this activity is set for 500 milliseconds + // I am giving it a little extra time to complete. + mHandler.postDelayed(new Runnable() { + public void run() { + IBinder service = ServiceManager.getService("mount"); + if (service == null) { + return; + } + + IMountService mountService = IMountService.Stub.asInterface(service); + try { + Bundle args = getIntent().getExtras(); + Log.d("CryptKeeper", "### password = " + args.getString("password")); + mountService.encryptStorage(args.getString("password")); + } catch (Exception e) { + Log.e("CryptKeeper", "Error while encrypting...", e); + } + } + }, 700); + } + } + + private View mContentView; + private Button mFinalButton; + private Button.OnClickListener mFinalClickListener = new Button.OnClickListener() { + + public void onClick(View v) { + if (Utils.isMonkeyRunning()) { + return; + } + + Intent intent = new Intent(getActivity(), Blank.class); + intent.putExtras(getArguments()); + + startActivity(intent); + } + }; + + private void establishFinalConfirmationState() { + mFinalButton = (Button) mContentView.findViewById(R.id.execute_encrypt); + mFinalButton.setOnClickListener(mFinalClickListener); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mContentView = inflater.inflate(R.layout.crypt_keeper_confirm, null); + establishFinalConfirmationState(); + return mContentView; + } +} diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java index d26e5ffa1ac..e584a3da89f 100644 --- a/src/com/android/settings/CryptKeeperSettings.java +++ b/src/com/android/settings/CryptKeeperSettings.java @@ -58,10 +58,10 @@ public class CryptKeeperSettings extends Fragment { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { - int level = intent.getIntExtra("level", 0); - int status = intent.getIntExtra("status", BatteryManager.BATTERY_STATUS_UNKNOWN); + int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0); + int plugged = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, 0); - if (status == BatteryManager.BATTERY_STATUS_CHARGING && level >= 80) { + if (plugged == BatteryManager.BATTERY_PLUGGED_AC && level >= 80) { mInitiateButton.setEnabled(true); } else { mInitiateButton.setEnabled(false); @@ -171,7 +171,7 @@ public class CryptKeeperSettings extends Fragment { private void showFinalConfirmation(String password) { Preference preference = new Preference(getActivity()); - preference.setFragment(CryptKeeperComfirm.class.getName()); + preference.setFragment(CryptKeeperConfirm.class.getName()); preference.setTitle(R.string.crypt_keeper_confirm_title); preference.getExtras().putString("password", password); ((PreferenceActivity) getActivity()).onPreferenceStartFragment(null, preference); diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index e4139157959..3f061b89842 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -29,7 +29,6 @@ import android.content.Intent; import android.database.Cursor; import android.location.LocationManager; import android.os.Bundle; -import android.os.SystemProperties; import android.os.Vibrator; import android.preference.CheckBoxPreference; import android.preference.ListPreference; @@ -188,17 +187,20 @@ public class SecuritySettings extends SettingsPreferenceFragment // Add options for device encryption + DevicePolicyManager dpm = + (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); - String status = SystemProperties.get("ro.crypto.state", "unsupported"); - if ("encrypted".equalsIgnoreCase(status)) { - // The device is currently encrypted + switch (dpm.getStorageEncryptionStatus()) { + case DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE: + // The device is currently encrypted. addPreferencesFromResource(R.xml.security_settings_encrypted); - } else if ("unencrypted".equalsIgnoreCase(status)) { - // This device support encryption but isn't encrypted + break; + case DevicePolicyManager.ENCRYPTION_STATUS_INACTIVE: + // This device supports encryption but isn't encrypted. addPreferencesFromResource(R.xml.security_settings_unencrypted); + break; } - // lock after preference mLockAfter = (ListPreference) root.findPreference(KEY_LOCK_AFTER_TIMEOUT); if (mLockAfter != null) {