From 794306fafe42dd454fcd5bb974aa762ecc75c1e4 Mon Sep 17 00:00:00 2001 From: Tomasz Mikolajewski Date: Tue, 29 Mar 2016 17:46:53 +0900 Subject: [PATCH] Render thumbnails in DocumentsUI jank tests. Bug: 27383277 Change-Id: I0b5f267d7dc6c6c426b68f261c470f4ae46367a4 --- packages/DocumentsUI/perf-tests/Android.mk | 2 +- .../perf-tests/res/raw/earth_small.jpg | Bin 0 -> 44514 bytes .../android/documentsui/StressProvider.java | 39 ++++++++++++++---- 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 packages/DocumentsUI/perf-tests/res/raw/earth_small.jpg diff --git a/packages/DocumentsUI/perf-tests/Android.mk b/packages/DocumentsUI/perf-tests/Android.mk index 919fc560951b5..5ebf85f74d2a2 100644 --- a/packages/DocumentsUI/perf-tests/Android.mk +++ b/packages/DocumentsUI/perf-tests/Android.mk @@ -2,8 +2,8 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := tests -#LOCAL_SDK_VERSION := current +LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res LOCAL_SRC_FILES := $(call all-java-files-under, src) \ $(call all-java-files-under, ../tests/src/com/android/documentsui/bots) \ ../tests/src/com/android/documentsui/ActivityTest.java \ diff --git a/packages/DocumentsUI/perf-tests/res/raw/earth_small.jpg b/packages/DocumentsUI/perf-tests/res/raw/earth_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dd2da3e9081b16527abca03a505746a3ca9db28d GIT binary patch literal 44514 zcmbq)Ra9I-)9v6M7%XUz861KW+}+)MaF^ijHn>Y5xO;H7!6CRza7&O7AXo@+^Ici% z-nIVw^zVK;`_$QeYV|`^cU8ZxzwQF?6lE1;0SE{P0Qr9d@CpY={pabwh5v~Bw*>z4 z@#`P}h>ie203adI0uX@+NI-0T22s`1ejaH;w_z|dsu2(@sOs+uPe)D z5_;`_0+j#eMETDI|3@G2PXPrL4G{qyRx^ z0$K?TR6;HbcTgCbWGc6&M{)De0ulHZk7e54mDKAd02>M6pDRc}fEeHvAoh}!l$1y& z_zygG-~VBu^godO$NpdR**!2V#7@$4{y|nCEBF=A0VkOkN4|Ueu+TUzX8>F_$fkrv zXpTQTabLWM?X5KkZXGu75G95zEKVn;46kD3xKG5*2XAGsEg4^`U9!IdXkGz=L%+QW zvf2W$eKH|pzkOZ-^QMx^hGhq+D40 zDFqfQ@Qiu+J|*^Yl{7#}D?vFH?6vy;{_y|DkN=uJW71Qx_V8^qt|lpHh1zl^1%h@& zdZtWzATN)vfcJSKXiL`R*)W$&0tyAjW2{||RJtAhC-a~lIm(+&)AJJf1O7rpdE08% z_nG-c$I-O3sL*S~W?VP2diX2A0Ws)Iep*=l+4=al#x&Ksy}oSC@I(%oL&nBjfS;_u zDCaAn+wX!RWWG9IZ&zgAoI0RnaMwVN1cs7h%b)GCF`96YD<|@@NWqZY9{g-@|K^WP zg`-7H?aNdoz5Mt*5J{~`J^>8Xn-9e1%%a)U!sZCX#V;5|hj~UN+ZSL|m+zNLvurqk z8K+Y@deml03i`$WS}J6B(iIFwz(AoV=gNLQmkuKj5K`G68!e=Mj$fcav#Clite+Pq z^>WUffyZLS;I|M916Jw8RKs^6J!w^vO>5Y8t!SWx1ieo+3>bSr8clQI%+WQ4mbs%T} znTo6@h3~$sxQg1v{nJrVz%AsDEoCeGVy97-e>hVCUt@(uD81h^P7l#NdFL`#ilad8 z{wX;2K&0mtp!|Fxv&|4{QILxS^LR0~1&$85Jj_|-_<4`-2+VmxZAoU_;hay7G5a9_ zB%vBJC-?IqE}U7M@cWdPo2yIsJCh#UzwU((XMO!+F}p8f2d@DBuVmkK?p^`+9hWto zo{3(M$e*)1n=I8%sIwz0DIWc7LFssWG*5S<5UM4rB??QC=4H2gbVto0QDF$FlBhmG zJPZGc*eX85EAmGAkkgIQYy^>*fQcb3BD@d?PE-?=o&E zY)l0*0-Luv3MQ$r$KL*R!$XlKmcHS3RJzX9Vp;AwFzS7QQ|s6vaiva>JT*lM zjej{x=YD^6SzsxWiG72;uN7&1H-ly|ltKLN*s%agm)wp{lfD59etedW_AG#qJ`2p~ z743*LCp}!`2Zba!$ze=kX5l4SA6lS?UuOljzP}znyC|44n6oahF|)T3xw?;JduU?m zJ!mG!B&ti3yE{0j`;I4toUBxw=VeW*K^Rs>z~WrV z{nx)n-%hwQ9vhfT&M9Gx1{+MGyt#_;eR#=LBI{Z9cbVy0>s8yaMNYxBNDY)769|S) zT8X*msNF&9h;7I32#=CiVhf65+-yxAT6o_0t+RbKE7m%Gmm!7w>yQ1%sT4AEl7Ksg zRQTVg}Xk>Qsh4ks*Zceb)=67!|k|+K5`6ZrUyZOU=)4!;Q z&+KZTT<|W{hnm8J7q7&BA>&j?@jsE{zYZP$i*8(oFimkpdNL{TLm?DCbDl-*oKVR9 zoIj7_4SWDj6?n^gRf%;Ta0V*S;b6I9Jd7%^MnA^C{8K4>&~#8>X)4x*aZrGXpCx4D z|9kQWyY-PH$A&%wor46wa)k})piI(6A?Tp!GAF|#*IXZF$>_t>8hb#JEpE*Hqep&G zSF(hs+1@+`dtG0ZWipF{hOm-3VOk)Ecmjc)53DR{F(b`~1uaNf6s35eYrz+OsVk>( z@O8(D0~;a>Pan~!#3y^S`e#z^ad#IETZ~l%&oceNyBZX&-1+Lz!ymJ7~Et;bi2k@?tu?VP=^kdaSlqw@b)4z9lzCeVg(Lxwm^$7 zeTR8WD=tY+0xVZ8SGompQB=5f`TID5pvp6~35x$RvGdRrBRu2oEe^EJMVXvhS|P+ zjo|LVaK}*q<&ia(`>ILG|7O!&+dQ}SwK4sG5r3MNrL=FY6P+XbrT<~P z0EvcLb@Z(p_=P!zu!3|=usp+Q z1$rdOX*CJqQB3R{ym7QuLgAnZZGFu)oMX;ZbF7Yv9TNpXXObCX_wM56bZ$6HGf6?Xv4&Gcj+F4IZ{+Iauz@Pc44SagLpp#*@puVgpCbjI5Zr@B zW1TFyZ|U(hbc;no zsI>AwLN^#W0#ch#Cpl-sr1iTddLe>bXM%BKay94Kn1%WC=EK*$4qN8)-@t15z<$K4 za)XQuv2X;&md@1mNOO6aSZ=2}Qap|{d3sBw@x3?@VL)vyDttXfBgY7n2kSj@{HU|8 zBB4wEFA1WM0bv5!Qx}nBiUuQOU12htF3X&X2D1-Hkt4aX78y&AT$6GnQ#Kb=c#!RT zx;XTgZLXGoQFK4#gF+WXX}rP$T<>p*LN% zkr5g>)Oft5UfBM+jXAX%-;OquAMN7ocwI=QqTmhIu>>PF_TNP3lrZT@)_a*g;waKA z^VUcDt?1>V4nSEEs`L)eR361)1r#3Q;b?-PxxxJ6TKRM|2N8syCpcE^F`FL!P_@Bk ziI`J}2JZ}zW6|B}dNQJ%X8_0=%;9`#I~8)|`qjTF+tZIO3!Oe4vSrtgVCo?dzN}+kCDwW6j5^LTtmBIQgUC4-sUec< z5nM*QetwFxg~dZL6>T*F;{;=FBgg$34TLOO@o~pkYti!Nlw*HR!Z`HUmi)kkIbjI< zb24RshBjpvttq-SU+HOfVpy-D9GD+GZOP_6QNp{Rj-L9PMYFnDU+MxB$vnQd4im_B z<3%7;i{LC!;}7sSGu-%qIU9m+Y%)Duc|hZb=&EvE6aAT4V!+l!V|sW=yaJlrVBi zHCzOxob2f!xYixm6RMu=?<)f#k4k<+z= zStpEM5ZG8!*wO3%WirR1BokLi*#cbp$OyzucGmVV>BtJ^=X}+}rXX)xMz9S#5$X_6IVyeZy@6BL6}KJ$YD0{S#F(o{?I4f}F0*-66X1juBBKRsGA z2?NFGT)s&T^>oakla*9AttzdvfoUn@FVIdpmxi4mmlTPB!m^k1a>|2Z_6Q2~O`>_f zF|ICCZz#lsU7vR~K5;#D%xa?v;~$69iOS&w4D z7|q=-H#L$x%vc}xePiq(1ks!n2ff9lwi7b}WCCx;;>~yTK6w`&IJ#`Qoa6g7kKr&% z@JKN0eRY@i9Qv30&O3w2vne*t(x<5j*Tp{_bKy3F_9%|ICMIzg<%jjJ3OWCbv)X`R zbV*yXLBg^;#O6Qv+sPZ;OXD4szCF|3M1rl+<;UASbH_L7IiYIs0=ncS#Qisi@Azox zg>FHGa@$%t!ra(XA~!qy??TikDGo-%Uja5jS8&RMTphvjk!ZF@eoRB=?XO98c&sp? zN0rTdLfNIi#oM9=3?umw>te+h5`D=c^Ou)ZLZyvA-E&Sjv$&xL0xX+|9nx{L zx#~YD3;#i>+&{=BQvL%O&&PkTTY%aMTtI#1LYyF%g>^As*Gevui};R;n$*u6Gq;yk zljH?vwAJQGBjt`TB-K7ZZLx-ZXJoKd!Ywr-W%X?raVzQ*mOs#GEv!|uSM23vuHn3y ztjJ-&?l9lr-UJ%RPw_u{K$Sg^NeaQnwv^HCwv<CIY@3lpKHpgg&&Kvnh8;+Y+wBnw@7w~fSfU(44PHR znciq8g1e9r5p7LOoW)OO1TJW9_`@6>n-8vQY5VFI!AHl;3jDB5?|kqJ=yBRkKYfp@ z5Z`dFH%7V1!kif9Q*KaJuA^J8a6MGHYR60V>}^=v7NX}|{?>fh32fldj-k(UI{Ynb z4#)U9GnW|kGj0xj^+A-?M9;k74L>Z`Aloys$D)T5mu;5LFsp(Fn8=>dy-}~%-WxC8 zB+&kHk2EDB_brrl9T};rCt9bS&cwve{93BY&t1%2O*2A_)Jm726RQVFC!EV+xoM+z zi48&r*@rPt$Rewyo(s8FnP8J*?-Z`#+moEHn%X8kZmvhhRQpi}DWOgQw$l&``r|5$W5 zDvW-Hkd#8fjcWu&{{0Mv%#XJQ0~?h0gR8v>9jeZlt8bWz;t#pGEgkuO=YMppSi*0D zE=pmU)3M6e*rn?4<-Ds#1>dI@dP~=Xz;0A^tE;TLKdGB#0kn@OtQmG}*q-6FK%`KL z4)>|ljz=e~pMLZcO}t$Wy)E6z#+vEYt9+F8JtWm~TH3}An^)(xv_O$MJrgIKroQq6 zWb#9e^QnGaSrV=A3DPiZxEx65nhy3ImSQ6JW1|sACld?O9ZKo!96nJialD$=YT&mv zjE_?T8TkbroYCO)yh3-zoR8@faQpdW;eXWfc5PLeJc~$;SD;zgcc`Nr)ot* zo$K2ImW(EMGs~Pr>G~H1iz&^`O0R=;XI_%O<4w<0O7Tx#Mnh5XssYnME{rbCiC6m`VJ+$16*o z;F+~mPNIB0J$t@JtWn@@gbYTMA+q1OrOGY@5$0Rtbm1aMVV-z~fBy5b6-TDAEd=E6 z`-a7X%L2QUI;&94Utp(l%Zh*b;Wx()kzZ|&WA#40@2e;xbx|h%oNHPQC)~zT3wIyk zx$TGNB%pC}hFiq4JRPr0@R9Rfbjf)oGPa$?BY!W2!@6v{2eo;y68JZ)pHClD6ukWg#4W*zZ$=d8Eay zyK{*1vdVbrNDRFMi?P$r!-m-e`+0Z~4Ir<&Xez>mfQ<`d$ zBz4~m4$Sh@k<^k_uxeUwX5rjFUDZCN9*!lL-q2>lrj;<)ZG+z0up(eSbCyYlT5xTp zj6kRyIU!@w${2b((&qqgeCzb)>J{x!+u;@xe9Xme5^ z?~OObrN>D_P26uTc}M6XcS|#!XOdUuBQa5c#GCTxC-ZoG$3k_XQ8<%+E%8egD1Y1e zN8Nrglg&>ulWKBq&l&-` z+CTk|k(rj8gd>m%4N{9SFAqwM8Mi9N#PT5-H7a~~1bPjDA~5je)T0ltvRv@Zsv@#@V3uXDFFlaf*OobIBKu;N_=B5zI zsvKpHmjNIR%ffX8V8MWM9tuvI@Sg79-JjedSnjUa8!i&i@Zxn&rcJp$EN5m`>3I`~ zIP9gk2RZqy>dIU(l2sdvmsR3%^c!@X1W&)CPPEei=$fZIhOaaGI{MYufyHk~w3X&$ z8__@adDAOrZ$*zil%iWmVB52D)wUGjsNU>aQ@VQ-g6$jW*E_h7FX{`NF*YaY@n;Vgf2PKZey)gR}i$wW87_whMLbk)Jg=# zlPFOh)Gtf2%|ty@hby5eLG%&W@uEX$JS{d(M&K|U3~3rd7|b&~$zrmJ+bWIEf&wzN z!WRTrY8^5BG*wExl0H}SiC77+w<_QAXy6cYg->gf8z)P%%ZgGpJ!<<4tWdxtT5i|Q z21?fJuf=w}s14IepeHi0NIaYyVd)^Jle>f_N@}S(XCZTdW!X|-aN4Pm~HL}<9v-4^@MTm|9Rnuxig;pRtS|E z2QhSV&2#1`F^-m8fFHRBl_N>w#AU)an6ZZXFssDTf+{o8 zBpC8`xvqBB6Atlw`$cpO5JbQ5-|uSF92EU1>q-4cOUJaiHbOwrd`YkY3&ds$`eg@c z=O#V4442{@y<(ikPvVB&Vw_yu&0i)J@mbcVm?KWOO@q^Z#rz)8jJ6GXI2rI2KtFcB zf^kP930rarxNm44;z(x@<69xk;aeJHJB2V-vYv>!>^Mo9wF?FHHWzNp3EA=t#QxzL z@2Rq^mmU9jRkeq4Fsd$u7~DAND*5phfbSumq`IrQ@NP|qSKQT=;{!u5HVg-iI~SAa`fe;v!B-di#VD$MID0V^vs z(|DTVU;~I1Yrgf@Gv{DhfT1AxVbr~71>T`s6cJ33y`R( zYZ&*+9j@FRtv@oB=5lESF}oDFcor&x)wM1zdi64tO32hCK#kU!KUI!J)7duTFx4|^ zhDJn|wW)R5BtkAGoQ#?&!XPjV2tkvezH4xK*PCjSa+#{mSAZEmuAipW;SmbisS1t? z*`Gni-ox2X!&iY+9GZO0k|Q>a=z%v`wDZa@g>@Yl%XhlmO)IyQ`dGqa(=0FnvR|?N z9B0?N6@27>oJ6`G*>TUYGi67OzcAj-dWhBZ3B@Pdj%^nLKc3ON1-Z8Cb6MKlTg?0y@%49CF}YMT`L)NoXDQD*M+JaPNG6h2#Py3r*h_4`IkrqZsvjI}OJQZ7pVtGNQb zY}iG0!SY&wj0S5)4iAy}+4?%R{>bbU+cA4hj~MT_>mW`IDbsKFCSz7LKij*f^h;?) z1JLN{f>9&%ETy0Tt5*O@G79_d)ahT3eHwan!;t!uPj^Sr%ysAKs!WZxpCYUW9=)AE zSS}xu8d6}dv$kZ}Fww@6x;;n;;2UIE{f-HDq004^@qY86N$bq;CYzi-(?qU!#pHea zkW<$1=@LO`UQ&TJYY`!?Z3Z zN``+h4We1+={{_AL%>*PY(N7bj0bG>>9KCgte0os%WPK^ z`pocqshDgTHKj6v^T_wOH@*-nmvCK~WyC&zsoZd#{<_0A`-VPUMTbw} zw6!a@O9rj>49YT23B;rjSbu#c%N1WC4=vJcmlS`{D**S*#7Ee`JFfZ_z@AsDU*D4{ zQ%%ZyqhK6%w)WFWa&p>scN7D?`r4ydk7PJi(_ozgK^=A6VkWR?Dyp>X8*s(u*-hWk z&}A6*vgT8#x$WC%kzg27wzJy#nU$rPDmsUe)&kzFWHo336@31Kf7Ja6Ynh#X(TV7Z zVWsVb(ID}-eC(&&?3S0^vPj` zvpI!9Bf-#neEvR7L8ZhCBHivmZ=p=)x3zM=`_A>nQsDXq3Xdz{=Jnw+hHWd?Pbu@G znDmi#jkZTyjWLh((-)ViPJX3H_+S|(=NDOyq`QRjrg9= zwE!62yOHT?@$t9x;jxH3A(=0m_j-j8 z`MveYnZZ*L82mn!oTIp9AyGEIE??_lZ|4&hb4R`1c`*YQ*s{UNq3SeYWp1h_uc6pS zrEW{ZZiJE7-$xrcMUBh4z2q(Sv8nacWA1T5a{FJbY=}ObwLMe6c5c-zkuCcE$J^yb zBC{IDsLs&k-toF`40<|NDw^ZA8MpN{DC>^a z=Dv4}RIAyB)R7CW4o<1p3U<{w^UKCdHpy=glt%D-vCfS8pi-uIAVL+{Pw@LJ^(JDt z-}!MKr-^)xH7dLQ9eR$=l?y zU2bbMm2}?CqGU&Ioj+}22!5nUcquGzSk=Zi`zA?_DNyGtqQA3b zm`-`{$$M1y&+}>bPtYYh?UHC-Tr5_u_wUhx{=8|z@8ST_U(_cp4^i1kP6lI3Z24iY zo6(eNloW2J;b1J+<8c#3Rv_k%vXV~`q@DHwC3tfZoa4kZ!0FC8gG1&K3mLQ*=~u^- zHQ&(07uy5;$xIG)o>WU#qP7etSpvIdnm2s!=FM0o(RaC9Y#|LQ>G>7h73{kAy|@j|VzhW|JRj<~L|*oP~6L z=#*3b5iVx|=qE2c9!{GF`NC&tQei=^T#wUeW->l)TA3C;YoTC+0G;k!>))H^SDt~5 z`sKv@WCxWL0Rm2+PFaV+@L0+|H&HGaaC0D6k@GL8n=> zMI@9mNeVSvaIve5E}$;~RY`vW(>_FyD@HT?TKZ@d@!+Iw=%T69 zo^P_7;&5r8bm3!P*7>-4n$Ksq-+9oavzx%UWF(T&mOyHWQ)r9~vuKv;+_sIXGW(8Ba8 z)_HYC!9ugblp41{+C~+DwjE*K=@sx%&1&flXMt~y1%>C%qooooX)Y)mZ#XNi#l36Y z0H{zPEt!*u3!KB(6rXXU^-~o6-CAJjo+S@+pZi9+LN4Mz=^i>%WiC6+#7L1BmRV|g zC*3r*E43zFl0}0uOn z`j?tpk7m;ox7RnPC{$WIONxrB#7oGHS)iDp-b{O`-!suhUB#lWfN9V?XBGylcNT;j z-(WuQK!|wE#Hd-r+Cx0r7HMKP5JnQgKL?hlB7p^7{Y(-7d*;AE1s=jSBvg@JN;P-4 z^x^sYS2ekij-C!CcVT0uP%lbVxJL}WB zPKDyv8w|D1YyM#%b_}P|2nU0cC0&7kcphgkR_KB}bE31g+xz({kR72IToawYc?4;w zQA1kqg`gaD^UJLoC1{*KrIJ-n;JMIj-;=K3p|`~DU1ZfC7S zFSTR|SFXAuUTUHrzbSN=%E`%`n@|TVkqa{jOE}5dy^6N#^rQz-Pv0JQ1(DjTcfwiu zbcb^5)v27cW`s+BPLmegB)5l@L8v+|cQ~JKlIkVg-{>m68|I$1+}@xJ6|&k>_I)^v zKPYNT4mJqgML&$l#gvyLh^*k6J}uf!9;r=S@bEuecW0Dam&NR)(y{RIr8t;y@uMkMUCTn2cND?TpZH_Z4R;Bk z3JPr94+N}*@f@KCtXiS*gQ*&PttjSz_bWalMgt;F7d2IvdzzV%dtaO^O)}F=L0rKs zc}xj7t9s?cl70}bTng5{W?#ilD`?}#=Z5e3*%A%$ZE<>($aoK47Z{4IDq#lv=p+_d zY&IIB9L)xH8Rrmz3>|fZNN(H3=datYJz%hjl2WxWUn2v_!>I5ju0exM$rz~k@$(#T z>V(=Jxb%UD%KA7IUyo5Fm}Kuq(}M#c_tXVlbDCV1tfA&unBSY-)Ss5|a6(M1D(-Gc z+$5%tP3XmJ23p$&s`C*@n5%+bskqB>DmX)@cJzFlSgvSu~r<{?Oi ztj;8Fa0v?AS*{`s8Mgf}=^Qio*$R!VNwgy4_m#w{l9Y4+QCylrW9an_gk-EH5x>{g zhB}&_DFTF1fscxey!0Lms7R2C%X+!*(#WoKN}`eiw@Bs>z^r zmJru&rx#1Wx*$GOA800&`+S%lG}PjESR-0kb@JsG0}<+_S?`LWt@*o-iII;HkJkQO z-wHP`yfx%ex>$I z6*r3WUa*;8Z`5MwgqM2r^M}%d!j)K&kU&WFW@^H#X0oOgep-uEHCTP=`up&F@ioVQ z*<0sKW_d+j88fX7f_24z zh~+Ek5Th-xjZN(>BVBy1DeU+A5?^Y4uLy6#!Y65o!sih|qX;v;wtePSyT`TCSEBDt z&vU@e)5)o*vXeTc-k^D$bL(wNJqVLfqh`*NRZBYTJ7^ zjI4u}%;bFc$v=E4v)OLTC}3gT@5!g_fI}`K>fBrQ{rdBB$|eh{Y~xHqv#f0W1WuNj z!af<6f8!_5@$%Ih2w+9DIcaV_FcP%~F@L%xfO9R1-_jWyv#i1?Gl8|9><25 zILZ}@mrX?8_tiB99c3_DUfjr-o-(ube$#&44f@O|eu)tPc+78AOll#Z>=oR%R?6=& zLg7s04)Tqc!s&kp^Ab`d_DA=LM)OKzSEU^XgpUHXS-rv4O+q^^;zY&{p&vFsoyc$A z&EX&1Z0tCG>40Ofy+<<)-ERxXuGwm=Zi-S*>JyQT(|yKqDW&X@OPr*F00#B@_*cD+?gFWBKOy-z4*<;T}gi@2rIR$xWVwRebI584(z zMWY>s_9ySyfA2IpWux2Y)f(Q68+>cgOW$CpIs|a1k_Pyr0mm{!G0f&L)j5Jz;n;S~R~tI~ zZ!k6`)Q8Z7k;x@@Dv=Eqw`M3@YgZgCH@|Ev8Kq^H>1i82Dr`pzS-W3`Su(fq6+=lk zR*64CCHr}svSc$jxzRRbdKS%mq?G`xb7Oq?Ws@y3=hPmwveJw*7s5ckTuuiCXnG+j z$uLnrhg+9>!L&#S56+Fvp^HK9>Uva=<~DI7XOppbHc4iDbu43tV-rFFkQ0q*2G5*j zOmO(i4onZt{Pg7QWWMU$OG{=0oF&9!0B@Ess0XmXK%8huBd(OwNoSse9!;zpd#K~q z7g>z1=r-qpkJc|`KR>7ph3K2#3&Rq8#AGLD(?c^}3%sUcYbsZVtyRU0< zN&4iUg^FYa3tjZfPczAB@W=dRc(yNcO<-9BmiA%T92%i&Z_ zx$tp|8?E_0LEgi|BgKc7ai#s_QSwawhBY}CVY8NNuZHp_2c2xGl38abw#8vS?RDe$ z5^LgA{kHmgUQcz0zKODahh$Dc{*!n=`d7eG2&1}(X}NJmJDZ7;TB+idhq6MOQ!4Y+ zE1*gF*xH<_`l?rY3HK!=g-$IS+=$gpHY}D z#WhFB?d zN)uXRykWmUP$BE>M@f>2Aood?Qy%UOxxs>sFv-cn2NP}Qq#tUC+>LB1^T z_0)RR1EQ0zHB-n-5?5zyPQPzDS70F|p7H2g_C;YwvrIXxN?bAy#Gvhy290~k9K0AC zG^nh!t;eajvf;5^F7!L$T(MXE!fRBImGTb^4%`hIobCIwbxfq?-X!s zw=D=(%FO=|Q0=rQT<6~r19#BN8auVhBvVI=f=GVaN)igzNeKJcS|XPGR4=Rkk_-M7 z-|DO*q`LakDZFo-wO%q2aP42R;M2CyzR~FqPuwaqca*ZM-Aa-$ORJt4a{8QWjy9H; zpF8$36Q$gumKw2t6+MHxE$!R>wb}6|Ic4txP3Qs5*;xy9K%d zC8q_H3yVjM;&91{t-@lgg}e7?hFlLHzb8_yb2`1&#rc*pxX0#@_5NIJ%sB{ge)#&&HiaILit-0{DHZpHq zVgq1h@d1d4r_zD{g9+TT1_bA7B1mA7_=t%J6%fKdsd*9LWuDN^nbqP{?^Z#L zeYE+0V(!KNX;N`E_zfK>zaoF?0fL3Wlk~5W$#ZOz(plDEOjgN+90(KHJHW^Wr|e3| zai*e>$ZBRs+cL@FB?TUlN^;G3UG5ExC~}(4Q=We28D`d&617KfoR3&&frejxcgWGIV1T z5Z^C1{oZfW&>smku-2#8m_+4{l*EXmA;uf^%!ODizaMht9j#_1Nvl;;it9NuzZ=A6V~4P#wyOcISxebuGP+osH#){Y*AGM&d+r$L!b0*%LYv=gwdR~Od$Rf@S?A1B+`3%s z(3ug#tn-;*-EFZM__}UhWbwNON?0c%QP-@|d*!kFoCS#>S6T$#_Aj04_MmeWzC`=^7?9eV^oB zxFz$g)F4!}FZN&)dt}(-Dd;HaG079^1LH3EcVo#>q<{T1`%0BPIgHqxsv0^dfb`QNG>*&$l zv%owQ4SR(0>i+WSpr7m4>EX&-y1jNb-+UfL@Rf>Yt_{iY5j@I3!zLj%W1}9CzsVv} z=U;~CixScsI_F4YM?ods_a?pmy?TA<`@9G~(#T5a1B>W$Ok5I4l6%p<{05Yp1R`os z2!aZWCOABVU-x9O2*}plTVxNdT{?bua5rw56;SXet=rmKQu%x8>`Y9q-9vKbm>;|v z+HS5~Bcn$~wetxVM-X?|ooG{s0n1UBt*|e>(f@XhA!#1QqA)GoR_%%4+#VZPcER`|y6#hZv%NdJM`n3=ZnwMJ z`#ROW4AOY2w*q+|?bqHgWiv^X0DW%?zRZlfe|3r$ko5jy(3Gpw+~`L90bRrbHGPOs zw!Ut^W9J^Z4mRAbsEC*4adjpx%LI;HKVidE>$d-7^qrt24zFQ9u&O~(9P+gzt;B z@+;@$C1&9b!Pa2|A^3C0-y6Js@_RH(74sn{z8ea1d)Sg^(W;ltZH5;0LT;Q~p0hH= zY5374mI{{Wk+G9`m%i7h2r0Das%?iZrPZABRV9d@v*Z$F0NSc%BU$FHx;DEi$q*)l@*vaaqYxq z=JtTkvaVF8wvRe7eac;z2tLfEgdNvVaM!yaf?qU+E?UPD^{*t$ShRcD+#i15iiS zsYYwFCv|{Fu+((<=V#McTXd9)k9((HC`Q{CGwx3{Pny6Z}mR>z? zrrnI^D2^Sqp1e*#i%NbY%%ma5)tZ%2brTyXOD{`wVgoi?MA*|H!ReV%dM6L+K<&^2 z_#+J64w#8m3pGGizXVOKSsea#pQkwcD8@IgdXUQ4*Q%fg;vTqtuhZtta7WqlwV4qt zLR(c#auX-wifH5gcpMVn7x1SF{yS)gmm=3oqmrKOQh-I7}K-hBHKey z2Z+9DPL33cETX;OaAWrHn=hAIR6_t#$>-sM@WbMgGw*|S%huWEV{o~d!EJwnYzo^+ zu$QB;C|%uK$PEfq&)4~+d$6=DqH04%jWL=BqPC2xAhVcOLq&@oh{K8GlhB4AnZ#E{ zlLn|#JwiPV{HlkX_vk!Zu9ZXWDrtd(JDnMNzXlX?SWv0ufs*XR_c{<=y0YyeVPJjd zr_$8mi}5-I_iNqQrr8W`bMdvna84V)G#|RUW6*HU}9U-xM7eF5b-QgK+d~; zqi_5p&uQ?#B7Qj%q?xm6Bd=q>kz_Q5Y$cT-DOx6X-yqjm(BW`SH{$g7lMaC$>Qdw0 zTbc6pT)N5x0lgIvT}=3=-rd<~H=-yO@iv=wE$CXKOYlS--7lvLa*y6P<9gVq8VSJ` z56V8g*d2c(81UL(Rk(_Z>J5rB)EnnRg=gQt(oVm+Y*!m9V zo1(7xRbMQ(6WtMKIbDLrmzeS_c}$V&Rc@~j-xOmfoWy5i%KN$C^H_4t+MU2#Uje0a zGAPlov9kjIzCus9abMie`q3{V=0`FImNg_cJw|}tK8KZ7V)cUJe6!rEYh@*;TOh3c zOSfu!5O*So&9s>8)H!TQE!Sah-2{KB%VWh8Tl~vz6+Jc!i@JL1H2xm*xQU;`ugNMF zz0v_T@aLzfkkMO~@o-)fT3lBO9z z(C|tbH*2$;+WM~3Jyv6jnC;>g#Lj(X(Hh6B+(hQavXrBe=#bP21zG8LQhO)|C-^CgGt^}DGee`v9duR9^E~r!%#M%L(|lt1-n$A zNWGf_Bl9!MQ}agr2>hj@bDF#ID-MUZYF#6w71OB+Q=!=$pZOdS7p|UE{WurCOA)4^ z-lt+6krx+1))pHP6y4%b*`yc#m)>B6l^s=-$TCSW|Su6zw*@Ne$&^~_GZrw4ncuJd% ze3O6!a_zZ(tVDsO;Or@8*mc@NbpI@ zaBwISc;o`_cw)czt%TP)-GKPj6%J3^Q<~u3vS&5)IU2~ApXJKU8o}@Ail{=y;xl;#XH`P?pRElOW)ZZV1pm}Q*jdu|No61iD+X?1<}T@Ik1f1?E(OAD z`G#hOTW>P!WAY)KtExKbY1W)vbzmS6TBFWJ4YRo~KOTN$r4|#8p<-7S7H}@J_cnSr z=?p^2kAFgxZnx@NH(+jxP!DB`cfIuj7V!G7{7Lz7I%x*ZC&yl&TbSwV7Meg-@!NK4 z((Sw_`LLA5b7)s4kaLY$&wW)JZL^Es2!ipR%4<$W#5QwGX|8cl&hhb2rx}pCFA`lH z`tgmBQ&tskWHAmo%BMS2`)mqWn#mw*FtL!yTHB;aR=o|#+W}o5dA7YVoV*pRc#-=b z0Es|$zx*uyK2dBp{D1_udkY7=uy|Z-)-MLF3?ellPfakDa(y)3Gx-Z!V$Utj#$dq+ z1I$>YZ&<#FG|x_&ZMNe_P#cE!t=C6aoCFkkz!e@SqAzXsQ{Q zno_=IW4)+_Jd#K}4^`msn%e#w{-AjPZlTNjRW5~Fr`6ZBrB0;4QKH`>sJ09#wjOVb%c*h<&#xw2X6DA`pW>Lm_VmQpPiDR$4 zV>2>L%kP;;nDNYWEO$3x$G$U+#}UM*3`a8UjAtG5p8hzNOdufY-Y1N5B4J6+Ir8() zA%lxOp@~Nr9A_C|n9pwc#3u}P9K2;RqVg3WRRB1kDu`bEhLOVuYdLT_x}LP z)`m=fYK$S}8A?(6_VLe@rH=XW?fQFTF!INFW54R}VA2aHR3>MJI{=-KC7j zwsZE*d*eN`Kez3U+53IE*e$z({FqqIVH5d_67lXxFC1eTiLoe3J~75TbK5xk zW43Q-tQ@OZ%x4k?#1d&dV;GFEs{xGRiN-j@ahTw~-XRaPayjSua~~>}Yyw<-oK_r5 z1fUPT+aCOn^%{1qO&o&!thPUXeSL1Z(rwY#(6IK%LH_{goTL8$OtX*tb@S^SB8eW{ zYHLSZj~^xV4c}Hzx0VlfgmaJakI05|{{U=tr*$fDkYavR(uXW}#%`9+Z}X0GoOLD9 z;uH0LmkI4JP{NG z{{Za)qkjT4;UJSJ7BQX=_KZhqa~LyJ;szjzRD#DyW(UX)ZB}$l5*f_$dA2`bV$XK` zv5Z10z++kfjDJQ3GR=z`MnDQ9@fYga(Iuji80}!}jzI^?yn}pYYUD8_UngngSS3aF zVR zk50OW8*)x{?E`)_t)sOup-W4(w5p3gnYJ=1fUK0;M8eHtwe{#qpvfx2S!p5r3PsaTp|utN{dpO@E)awci!@ z-CDSvAC0%)Pn@P3tAb`#WB`+5D-FmeAUP>zGmHi^V)3g_5r#_~!I82{7G01AXf6rQ z)iJTV>YDDs#}#N;@^wn!okgf#E?l5X{4d&RprGW({`OwpNBbmh`%1!Qs3PbMSZCAG8v~e_AeAkr$-qUObV@-oY00x zFdfxp21oDYZRxw+os=rIYBQAx$O(+1aPg|8iF_u+m_r5#;~+3*DpjntUL%nLQK{{f zNKX?%>CDyYhUK`gBVs%*QkIUTC-SU+aFg;4T=4@#x+M_@=V<|{+{ zc+MvN6XwrMoFl6xQEze{CfIfo5SKcp^6GUL2)AE|tky0bWbpyxA%+Bz0&%EmeK~{#`H&;|{TqCa6>`GOxU{k%? zt!OOU)rYN9UBabMu(Mr9?J=VAC#B9-+xIjP;Yu=H+s@_~0}GRowO&UUQUHwcLG7HfP00o ztwpBAn<1pY;*(N)1FFS}Hqnd&73?EFnfjmb_B?K@m6wR`iPK|}DV`VKkkPEdC1|$E zTUD|dqK%!KYM6lphi1_5{wbT}7Zy;`T1`jY2Y@Isc7#$+IDZnIyhDhwH|SU zB(~b!q<5X3^{Gs;TF=JHiqVr`WWqrUM8(8NOvYkxmLP}PIQIG!=YCC= z(dt#LU2TM8BL+5)a%D^^n{w731+3Xb-JBRy8BZdykZN77k!p&)!sF_=m3&qtqas+&Cm3MXXdPK$ z>3JV5g$_Z7d%#Z6V~|I*hT)rgBxRSIYXBiQ9<_vkumT&8ugN8nV&?u|ZfjeCTm2SR%2{8=FJnZ`sA<>FFG zYu>@?2bH(F2KfH~N7?q8YByxKFDj^~YhN2BgE`6ob$ZF=*AN@>i&a&)Ar|>AOv!8d=x9VQh4$ zt%y78fCx&>^mueHWWJL za|~xvaIpB%BYyyno0)l$y2stZkm6%;i!)LPg@GYY!670i?tgfV4x za#jqbrJ|{(8rpv5pI)4kM#gmqxnE$Yt<7!C6${E_4LF0ZrmOZBxXaLV-%+)7$XDYe zlQFB4Dmex*nsOTu$0zonqPaolTIusVoJy)vgyMI4JPSI1U! zEY%owDh(BeJS|6Mb5-qo$X}~E`z@GymmpKN&E+gfEIiz0nb!h04XqlY#gJ#q1M|dG zAv_{k6oNYBDHtIkp!_fJ?^uK4-i?p(h9^G>H_!;2$aH*VGBk4S=1hfW5UZWuR&{O2Of~^2U~cm?Yavp6J?pxQCEZU5{vE!dzaizl ziTo3FQh?A7=kC81v=ZPqK0|S6Nh1AzM^%%Dh$4l5m8T zH1JH;`N+yx-HPQ~OPlNYzYFVo3p35NHP`34W^LxrrGG)&(0hK`^XX_f@MK0Sh=)_dUsGA0jH382F+NAa6OeRtFJc8IDDs z_Of~B@!Su`8s~SKzkm4DS+^xzk@BT;1ZX3G<(4HekVcV5DHdYPJaGvB0Cf*%w~(g^ zK$4uJ9OvgOm4z`mj}nd$R1nYU#z*WU-#>2o%&|NUGVj~R?VNq*40!B2iUC|o_?iVg zg96QQMpy!PWM4Ddndh8jjdq`D;~124h++_yAQ;CwGE$};$Y8?AvU_*-zv<7Y<4)DB4{PB5{9p9rN>#|P3tItW z_Jc;oKd0L>&T;<$@2qcG?VdP|^`0^Ne3|F|c*cMG>jTy)lDl$eQQ2mY0qy5Je%hQ* zp?|`^=rnaJaCsmuR?;Uww0^j*KjSRt82(vIZ zt&y5$w;U146*ZW|2P}j0C62GRGnmBjl-I3iZKsmM{dkBiuz17!TxE*vs4l(-TrR;E zT^&M=zfWAe4<((nB)~P(Y>GCMYOY!2QX>nnEW-fEysdY@~%@TNkP(UmdXvSw0$jKlBwDM@A^9M&545UBNE}t$uOP{(&3qD39 zf$Nbh_?S56A+R$BwN@-bljE~p0!COv9}j>ws|vs64()u`zW{pEyS?ebAE8YZ3`(g)OtN1xpad%7UtC+)h@T+teQ5`jPF=6;vzjsWKa!Wnnx@)7q;Q z-CdanRL$;Jm6ZNpwQ|i|2%rsZ@!l%ukwG>i5n)0#;uW$kpuG!vve11%=%{gy;j#TI zkZIXAxEeu72%hGhO3LNaom&!~OKc`k1%?>KkGT4>OEX?0$R%M8JsGO7jAm@k&k>)t zWS3T~?K)A&c#w$HMJd5Z_BWhlb4+I#NO6*0FqHaM{5g0Vi>vsjUiAgbZof$Gv#=#= zMtW9k{;hJQJc|iixkpB`4~JKslJ<2ld4oo}&*{d@$W_EArI!40frdJAJf0_tl5NIl z6g-|Y00M=tIBFrnkZ4#u9Zhuk9K8yvwz5FlKhTTdAHUmI1*7_B<2p@Z^$SDV4w3u& zO9ygiE^x_Lu6UWGtzvD=VqkUaMxbS0aGbB6V=Z zoriF<8oKeHg?)Smz$UN}a@ApxtRBl1Rx3=SOx1z4R4$Z4jQMNU&jM~h*mN{GpE`BQ z@L^qg%Bfq8#I;beNbJ?vY^>_E+Zg!$Ji%j360#c=Pb%8te9Ab#(yKY+^@r;0#pE5G z9VcRz&BS`cR5X{{TVT*gI7TRVQNFl2Ll&RpL++&>mNV z(Rzna$R{99mHMS-jzmJI!vL$&hGzr~s^^7ZXn+jCl~e#I{tf>CUi@+DJO1^3wTbT* z6nt0AR5x5Xs+xR*M7_k!^_c3I z9Z7LCR9lDS12WbUD;H??uP3*S#~pv@l9 zLt#&0mo@cVUU{*x)}O%}gSB^&o6o))7p#^{ZbHA+;>f_2OGj*_%uf$2l0;Sf779lC z7LpPOSeafn7qC2oYj!>A#aJNMJ--BV@5gNw+cj1a8sao0x-v&B2{9{sbtN_S zzV4?=Cu-HBC}pKUe(pTPkywjr*{W8%dz%_=w0Ce8eY{wF7Ja59x4G3Pt2}cT%iBIr zh@u?qB8z!A84nCOai9*8Ecl8SKOLiyoX>`eiezv^szpkK6;ZglOyi7Ph@)nLUPB>` z+VQ6G7sK#!9hj=C172L^&0CFMscZA?jJ%K5aAkFz>+2&b`-;bY5jDIntRxl77ut(O zv%MK2cWetQVFCArHQ0Q3sp~FKJ#vRrHTM4i9KQ77^VwpVfy~Y|Hx)i#cOWXx6Aa2k zld{6=k}Sh9VmMB@Yl^8kk5rXd?W?Ny-9D&s)9tM;8WI}?I+k;1I^A0DE0rtm#CP0m z5|PzT$|4|yoULa(+U{S6@i*-{_d3d!s73UCR9OHmRc(9v$wkWp*5kpX&W)Vyx*YrooRlTeN_@mCA}sL^SA1@5 zB#F$w!Tn*N%*yGx(U>w3$!MyBZ(vd25*7^$HF$5mnMFk_iQ<|yk+~;`+_JFRHLaoK zEb7*_9d3~YpRbtaKqwtyUvSxH7G6<)ti?0 zYcuP5mJ=K#oeKdH*?VBJnpnsM2p-GLCD6S7*m#3lE=99>Wc!lSMFK6{ThV8FVaOukrUn z!|GUYX7uAGY|~@Ae7Gxz)8?8x9onZzq?RCRP_G=6WMp3cDlrU6Vc#q{(ijTMZN1`o zL75fT&a|75Fk~u>3}(W zFBr0W2L7wtuY9vAj~+2yxH`fsdrMAH zZv}E#_TwUu2%p|%fXB;twBs8mC_}rH+OjnPyPlvJwRv1PzU??F^Ko{4Vs~GiOIp9y zY2b_N(92)8wUxSIv=`;uB?tJd;#>QDGm^Htw)AVmQJYJ4%(>iYl($;9V6xVc5o#&# zGL5d_r0%vl>U%{s_1JQR$u(nYy48wdxqb5&ff~oLV~j=?7=ndWfEI}sC8`LjYxLBP zLW9{XE8%%SyBo91(8+eFPRzo7PznMz7A^gCDdWJQN0@Rx=V-SlA zo&}6a9K?{22`qNRC5YlV#Pc{xG0r=APZ{y=b z6E>^>v0-5!dQ1VMTGug=5dxrSSt~rM^0O02#M7?0W+M@!Jb02vm+*%eU~uxzW&9aq zz9SrGIgUdC;C+V)cg}PA9Ih$h{9S9C2)1pyr&+5lN)K8ptxx8ijavHu0C3N%@4=N< zsw9N;A3aDWNp9F)n6?gGGgi&5_IS?a=L~-Ur%L`b1^aT zA;_LV3dmMkh0vti36129*NohV@uNu^Xkc?JQAE=VMtS5((?;}Q@6@!M@X)~{H% zH2cT+%U9mcl@)%wa@*91Z1uHP^039$yo=AjMQp|fjr- zE8jl)?Q!{-VZ1G*lLXjaksCCWo0Azc@d4~tv_^okBgoOlQ^&C$sdqBro7)Dvn+SdjBqI;iA1Tzoafs(&E9jz zl(5-7#5>Ks7R|`@e0I>axmRA6jVkM)nT>Pk*-`1!+gChmEtlV}t8XQku1K|kQf4f` zvn(?iOJ18jExohLOuXCyLLuI!=I1?2>TExCeaBRAtGwAStiG9(=8m@Bw$lQqBS&4U zIUwny0M;her%R_*>GMSMLz#_`u{VaxkCP15Cc?~z!;z?{RwN$VPdi2GeQm(ts}Q!P zizy%-t+cY(zeZqxl(0OYsO#)OSvb&Go+XSJI0i(_^PGvIeb>z3Qsz^DF(zZ~F0iIa zo->q(4z^mh;ZBQVHE1B+fnq$hV7!kdz#$xDAeJn%Jo|>9oXId}Ihy#0^BmyA#rS%q z*R(z93Qc>Dv^@^1P-{x49X{c$B<)qEyRhp{GKI=bO9P7ptoXo`Q=E{Ivt@ya;`{l* z7N)z-DA@JntuNrU*TzXh8p7deIRM#0ynJ%_&UzrSwZ_-^~@Rks-DoMDU{ic>t9i5ZL9txW7rc+9hyd%1_k7ngYsGRd=v zWO&b(Gc4v<#xvH@dPMPwL8xI*bTW|Vf#O6Mqa0v(2!$95WjBr^lgfVFF)~Zs&$*1l zI5{t^am|57D2O0Nb`dr~d#y-~07}>m_hsdeQQJ{%spQ z{{Y=Qp_Vq@@+>wq`N>iGyWM7 zV?O==0Hzx3BOQeaG_z}^VvvZ5#=olWPuf#iR{bW>>!YN`)A9;GL$>YIL3RO^ndHSiFp%2EV%K8XDXtQG6#lc9FRaXM>*6<0LjV2$l4kiWD$};C0T%=ZqK1x{{V6|K^(#8 zJ(-5zUeT|^rCRP%Lfc!@tcht;tJ~`FR;71tXeDww@0YX?&y^-M%j*QrBecA$+C5`O znw4!m8Es0Bnl!5>%+A|jYSi_^cD+tk*HyPmJ)d=AEEkJnv<~Q3sANI1`LiV4T2fJj z^VsL&0mu3ix`6L>o;J?KeaueKYr8docG+tbbo%P4ny{OdQ^&Zhq(YUG{c6) zkOIh&tyGLJ%zv!ENZzKnYi|b3T{mO0*KE=yy+-9%XDzW?Fk?8i8@Rqsf}TTN`JW}O zs<*@$v9%$yLPmYnGb!JOdh>N$c-Jo}VtI&Yqse$9ndZf4jDRq6ET|a*5bCVz9#Br= zv3ZdPgyf>w0*O$>1%B2lhrNP8y7cD0E_B{tYf_}%EVbFaO;EcO>e#_7rodICAX1F1 z0J?SHbj5DV;jr`LxV^&_MwNp~!U`0PkEZ_sU0Zh;@czxhTRy*2ziY0CV`8qGXRR6A zrBhY!KY*FJI_s|^Eo9_c#cIntVPdKF-}K36jy4+ycI2VKfRLP~{IwhXt! z#=`f1DIhPisNL+G6%o9@S5*+|;B3 zY+D_6Drh+W0C$$xcX3&`?awPl#=&Q@Izm3(67EEIc-tx6PRhCYLt}c%%F4q}mX}Ay zVtr7Cze_{u`uj>uMHOr=?Xa^J*E>7x#_5LH*smLcE;QI{ilt!1;SpWalF^T+>oVF0 zrdn)_Kz3LE01VbI<*OwZRjXwX@P;1>`5a=l9dj-`CS;GXHl_%AS_ZjAQ2wntWwzT< zYzrk#vthGU(=U}xjN)?`$rc%lp7RSnq)I;7oJ|L#HN!GNH%d%rW)0#N`c%d@EM)e1j00Y7H>~!{Uzb8GbR9xs$I(ehz3Vkk@VO7hf zuIEUKdp!lo9j|Il;zx3(rAs>Gb;jEbVOP7gR%^=3;`!a*s4f1+tJEz|A!>Vdpq5Nk zlcm^oS?3tTRA~~jveh>GVwUiDRi>3F6LDiGIM{1Z~lP?bCbdZw*);Yc~?ey3aP-ponX0 z2y(F5tE#5t0~sCK`s(kG3Z$eFg!8JICc&;%_cEoU5>Sn)35&#ef5aUrGURFT_Bb9i zZo_LwBR_22wV7lRg$C4+tu=h;RJ4VFVSqjriM6imkK6nZcjxVY4EVq(1g^EI#$+C>i z`|^%+iOl1Q@g$`_)6DY`=RR4_Z09|)yy>@V>-yfUz4CGqVR_0|32LKBveMSH_|w=# z-oVXtSrzh^$sUwnN@DVtU_>q9J3zs3sO<5!e5Mk$B&Jg|>xiOdaa9%WlMB@t%0ExBU5YO#!~HW_aK zgz!0^)z(_jHkee?^1h+Ul&=6TQ*2sYv>fkP;q3=fJ(9h7&NN#KN&%-VHTEXOjZ7H8 ztmGz4P{y?H`C{`?wPHjNS@~fhJ)Ddzc`V1s&OR|=iOp$5WGMyg$_7$poPjVGzj)t@ zehca!6MQJxT^(_ktK;OupMvwq*v0%9rjA@_WCd0!awC++zc5!Fm;p0H0?iaZQ+a-4 zA158o>~h{z07zB9u&&L**iy^I?F1VXZX$=(?t`<{Ql-9CNv)na9872wK>$~=7{zc? z4!E%*=2rzgLln=0A|T>6id&pvS(=6Qp~G99MOW7}HKVcVykN4ln;GbF=U94M%P1C_ zc12ov3x#JWBE7KlfsfjXVKfxf523%r-^1UEx>j#l==oT=ohvFpv1LLa8Ti?_ z?+#>1F((dXk~uCcn5Se(glrm=f!;?{m#YEuF2^zm=@`;BLZYb=vO8FIF{-OB#c|wO z1*#8oM}@ZD1f$e=TZg$~!<=}UJeRn7o90b`^Cp~qH}eL*o`lY)sj&b(s?ck#9#rky zZAqte_2$NoNf}Lw^(g-Uev5q~!_U3{8Lw?wA zwr!Em&K!_IGi9@?lFlKksjBPux@y|}ZAoQ(*ceiDuY+`KA(%LYpU$~b%m~!t^Fg{{AT^SQGy%M z(zAM@nbqZ|(wqes>yDi4!Z(&i!7pvIsXvTZ{{W(|sLxpx`yTtwd0OgRf%MRTVt0(Gh1Dlw9QgE&l+A-TSJm&AJB; z?Fm_yG?aE!`nI<2$%z#D)Go5zVjA~tE)A2#uzqKk#tU_ElFg%B@(5za zK7MP@lCdcH%&gST%bb-GZ=OkA<=-Pa64EqOP-uiaT+GBc>Ku7> zC36;wv(d1#%qei0QE6j{gKX+Jg37Tm2#gMEo-8BoELk{7BymlV7X{u!qf=8=)@&7H zy0I&gvSy#@y7joLDl2Q^Y&?4l+e9lTaPwIjt-*zra=xi($vn4<0x>Gx5^OAaG6q9P z%zPi05u|9lc`vzgkt54c)UMBW9{Gie)X@#gB$+0i>1qI)F){Zd#O8|(Rj}K zuWx&2wW*0O6tJ`finV&)&r?UJ-PGBuHZ_5$of0@jiLTpLWRSwDHA}|0ia3SLqdIu` zBI%fza^XU8Fd>OctT41ttYEoT-iTLXw5aj1VyAKyUp;Hh#YleOP~6we0DGTbFs}W< zI=3ES)Ha%KG!b-qdL(Ow@^0d`($#Ghwo$1OQ`&*C?2Y_1!owwcwNWxiVyZduWQO>+R7aHLplOj9lMJzo6DMvO8%s52nIJ&uGO=5hNJ@EZXZR1 zxCc0;KPAYxI%m}#8Oe;HyBFe^AINC8LyK&BvF%%M17pgC|thuWTWJ+ksg z0}z3wI_j0!TDuvP{C+Tdj79A}+03RWL%)}4L~$7Lj9_r;MdVe!oo{J{#>(luV@-c{ zan4Mn$?pz1n58iq5ynOL#IxRT^3E}wVmMznXCjpW@ribuQov#TGvl7v{XgZLdE-5^ zoM*N%`{Oz4FR#qF@Jo_Si1DP6NFah)00l@iY_Qr#704#+KEq|3!!eM`?6tJmtE0~b z#c~fIis0Ut@=qioC!F`p=P74D`=y-!0OzmAM@LvmHc36nv-|4FqobpvuQY1Le-ACt zD{q!s1%p1yn;@ekyr&q#5BA7`nR(_h_M*&}DgOX|!ih86zizrGmi@a>=)_i<6f-ut zvo;0k3xz{Jdh)G}XJ%jpYGZ8zeMx$I1=4sptW~@b@v5OuAD73+8*S}qySBZvD>*_{ zwjd#~9OoWuN_c_cp5N0W%)Z@q3q6oLm89!@ky@^ETesDwJIB?O+Zy|&T~Gw!*#>18 zjJqrZt@b_1!Errg=)pg2T&O>=KY-nKF0JtVpATg+JiQ+&q=jXsyj+$JsutCapB^h) zDxfOSajFl*xaS`y_)q~ z4B4<`+R`+s66a_Fb><9iYM9ipT9&c`cujQLvXKtWeP^`nE5_f87a?(H8tR^%H(oj6 zzGmSn!bY0WEylB8enhSMiS26N1jlDg)m7ClGgKuVu2Dbj^yaW+X0|l!2)1$m05b1< zUu{Qur!`Np9UDsPD|)@0P_)-JJlxXRA!9w1RvnUwzMXS*K-(|IUIHnY8xv_|Ud%JI z>(npVIS40ZL$tXIor96}bH`kx6+N4;ToR!!KATZ1=c!V;#oujJ-jJ@VY!VuHRA7M> z)?eYCk-H`t`fM$aHc!v1EYf(1m{ry1R2wA4D4rjMEN)Szak*n{phYHRr^72L+!Mn* z3NekO3$m}sHY)b7sMLqb+&9M@tGeu4rwm!CEkfp=_iaiJ~nwp*6eWP|8 z8ix>TUINy}la!NNG^KXgX4|n^vq9rdaL_Bzqtbm^aXxuFU)8cw>u(@;buL4vtdJ_c znuu&dB}HpS$I{tFb-sL7WEOW8FDYu$H6*UoL9o*3yAj>vduz(~b(>kgNq+i%H5-7pNk;R^6*svOg&4bZNE7cXDY( zqZP09!pgFva8!*a5+i4Ebwhqe9JFcupyd+sQ4FjW5E$lMjGRcLK@`f*A5wyqlrk8V zWOgWN$~cgKKSj42aF6D-Dy&bKaAQ1!T-XBcffZi5oq1zK^n=Dc`NZ7atZLZgA4oP= z?bujw#VM{VN{DsV7N^?NQqyg#*X^zBGMK71cr@^>OhrC;E-YD4QMGDRChh4TQ*WE> z_?OZp*Cg>y)5oZ69#qI8!e z3D%Pn#9oW|1D`mcTve*`g)^B$Si9O%B=yF_vQ%u>MAfzSDy*cl*%FDjV%1_+=++x< z1?)futjmEUqLqFg5cJ8;{+KmRWz{pwTE?%cTGe?hry!$nQS!qV4>PQ6 z1#XlpNaK4=xi>P*#IIn4kHdRwK##Syi&4)D>^_mjcjYJa6YCd%cn$7j2C2DGyBZ^0uo>RU{U?hm^U9_)n<4F| z3BmCoteu6Mai;o^+Iza+V^ThW_nuGKbiNfsa1c(TClQdPW- zboSkoN4j3g3$LszUuAI4tO$Ht)VhyMRmp7LnoPM_YY{ljI~*C~L_*FZ0Ep)>s6^RC zw+1N0l3YPC3KjTNzcqP*u|V^6WRvao*0br&`+jKFx2`)K-j%0MkF^^O%t~Fj8hee| z-EU(KUq(*ZPYBg)l$Bd;oy=J)TIF?(4zTqQhjnwB)DMf>pJR)y)xNBO+Hci85vsl7C|KzBO}OSJOVR>BN#K$mnR}p z7D%FMJ{;K33tJ>**a;P6RX50Rtft4)vGwT=(k!TTP^*PU8a{bTaSsQp&^ zQKh5SXTEEQ@-3;h8rq$2Je9qRe?j#(MK9k4Z1-*LDc4%<_APsmx{W|=-`VyHI$DZ0 zY)4o7GW!q23e}qN_Fa!*89`fGy>`Ua?!34gt$sEXkxqXK+|QuBm%NnGx?aAAEj=Ty z_CQpAd_BN?>&cwFzY|euqOatvF6(%&TSUnlH z3nhWNvH=!0*zfFr-n;6jHfzS3u$eN14&mlPote&F1SsP#ISbpAA^dz|B`l?h`?JI* zFBs1-mArZm^^L_GAH|da=R1V!VMTdobFNHO*85)Gzy(btmaC_rcyZMLkr{Eag3ar? zk^$1VVJB>;TtT|%S4-LT`%kGn8susj!wZV>srY=0QpVNgJl%4<1rSJ&v1~7rKF9INSve#_zrHV2}B? z6P!Iv@wXuJ7R|~0V*URB9wAXu$ND*?QDnZ0BUg~93P%k>P)s;1+uZ%@~6X*Q~+VX@oNyGyfBSM4inm6dLqv>>%Qn+CnPYx`cK zdtI9`$u=sSV#2E8q%--^RE)_yw*Hqmdr9VgP}pb4X5wv6aNI9#YPEXicM5$cUDWnz zZaVbsHnM8^Wn$?MQbw}o>)}^cnx2Ujl5*<0VAl0q&^;B_eggPgt*lb@KASe&ELicP z&cv2%JlOH$RE;8L#b};rAq(QFWCV+kLh1>KDerZDWeDtb~xSxV<_bO-Ya>+Y}Vz zf^9~+LSniDJ8v}6ejy&bId4hQ_;-)}KXMJl7R9uebiaC=YnTUDRjM&+vx(7XWO_{f zH3-)yYf?JfEv}x%OINs=Z!2 zNug(cvzVf(t1O-^Byx~t_g`}qrKbLKcP7B$oJrLzxr3)_f1y7mG?s8 zC$*=uX>4#PU43ph*jx=v;32JSyRx*A=`0yKFVK%8X zO$#~3lO3m$8Dz&1BS|NNzGY`Cli|D~P(-zRR-R(yODsX8Vt@i0e$Nx?76D2Ih@~M- zfo$84JkxHQZ#VMqBaY)^T->R-@@o*aw!2ED#q$7*5Qo&PPR%gtsnXX|jshnZRdJ_W zyyCI)3l@s}>Bioe_I^{?#i#Q=-3@hZIX42eRXDagD=Vt9Urb1)b!YHtoUcP+S|pV+Qx(kmuCZ2%RRvSB%`A3u$74H-AuS zA}sAJYhW-$7a97iOUVLGaQ2Ew%X~@kPg20?F?_E|o2E^f9^5J9Llfi29PJFO(aj8R zjWC5jLJtT?7DSM=Y^tY*ls@AaX%IKoN~kronqB+(>NYGL11yU1M)uLtw>~^>WUTX3SRj?)_1fYojwaCoCJ-SZv9G$>@%~`H2+Qq^-MR z_;+^$UZKUlC=v||qI|uN2v>?syhD5ORwD9%QjRc5Su}Ox)}xF4Z)4-mE|v6@+qC)x zh~@1Xm9kC^tCvIyJJM!Hku5V^I;5Vk82&b9l&qevIOheL@$;2L^qLc5=G=1H2^o@~ zPSu7p*s}J|VkWSy)!)n%i*USI&6`s+p(8Nb#)wE(i;DcwW0y8XmU$#{iV{NZ&PxES zcgXC-$z_XGg5{VfB+}wP4NGrg1G8;ytf0sco(MD+wyN?h1{d2^S?V8N*S4*`zNU`U zKPVJoX7QD(oW!AJn!v2heNqLTgR8jP)yHX=vS1DovT14HMo4~ZpCD2XTf_v>BESj# zfjNV|F(VWMQcHPA)1E>xl2OP9+88u2Il^-UXD157i}vcF+FdnUU?q*5zR(X@8uxN> z$|P6nE0Yo^{7VeT*g05?;=EcJ8xOOL*B>M8P;%o7`^OS=q-roMry>!{5c`plF&xa1 z$i7}CAWXUUem;9dkPZh3&f~&R5>sgMg#aHn(ku^eW6uKrRsA>M@L6S zjU8XF;UnsnqNW=!3GyB>Wvgvetn2QoX^-9*8G$iXWR%SUMh#ZBT*4B>aogS*Cod3V zwFPy)ajy4g#~Y0{*H&4;we1c^93`0G>gHI%!!F;xB@X?+!#Kuq_r^N8d-Klf-+5kB<6|>X<`25#j)NtLKEC!bSd5{{Xecq4cBA zZFN`79CF_rTv{xmD^8DLr>wrE1O7i8NuK3sj!<(fMlBTwYu>IbX4Vd6**;lR6T{1` zgt4*IlC7}T>=ua!PsNEf{i&eFYHXBjo z!S~jSS?K3$TG?zRZv^)8}>^n z6ff@X?gWQYC=SI#aCa$E+_kv77A+PaK!QVyJ1-8wiaQhuTIk1rW*>Yrd-i^2*1>v? z*4!uSw(I)sH*l}bEKGs=>w$*a*40x(&^Ct7+nATKc4xzd^xABI@R_E{fPqUU&6sxD z$q17*21<>_GD?{+U3_ZTpXp)zEqdO&3zg}i6U|7%>@2qJQDv(&9YG4+gdOXl#Ze}0 zwrYZ$ToR>Kk8?EsR7$F6A@VpEtLOacYx>^u2zX5$zM|IpG_8T04#~6WeSxX>=M$>r zTCFU%jwJ<#C3y)-BpC&u|I75ndt#E3-1Ne}Z?(2>gtZ5wgFKJF>gu=VG2hMCk^O!B z733Au%~g0=8P%V@eb4N!ETAutQqP6o=-&?ep`$H;LAp_ATeVvcHhQXceJUymF@qgp ze{Qg^{b38)k#X!qr~pyp?)vM`_jgpkYKmXw9`_FF;KP`w<4nrrW z`j&iaddi`K6wfN$Y>JcM_g`=0=9b>i6ex>7N$kR54Z+HowOBQ?4L#!_rX}rmKAXC0 zCzD3saIXkWZe!hn|4p4#SQ!ecV*4YEb~#n97)S_An7tPek2^YH$2lKVony!wV?C|4 zKIDk_ZWk$Q*N0CZ2H234t6~bDu){DLo#BjtQNs%Bpa2eDBb z#d{2P)b3t7Kbh;G9bF_=wKj|rIpgrO5QowZMq{5jJeu#g%*}t3T=QQ*PSB&23!9J)8SB15tw83afO;38@IN(@c>rO zloO11{OHe=Oz!CfNJf_6V!*+cRFT_TVBF(qw&OaM*9yfM$Y}w{nQE~jmWoh6XKPAB&i|ILWT5}GzP0WMR_|oo#3R~Tblgv$xwBzB@lp| z3j<5ER&@x89>ka8yj;_Mzvw3;IoOrp(b{hKToC2gqiPg>os@1koQQXg0xN&=qkWy z#DnChiN_?X&mFbDlWe62Ysp2*;~_Na-8>K!#rrC$r3;v2kHSWT6nEoU`x}EJypW}W)LR_CtL$ZLCALx30-Fl zE{=jvqN2+me&k-h*S$i+-x)F_DF4XCy~n*RF+heY&6HpeSSgb zBuVkD`#~sDubiPm%1zLS%aw^b4P+wh?@tN<-2scfE3Zb<%~=(~BaI?eEG%_FNA!er zho<8@;M-ZOi1cfcVNuikg|BoYO^k)6q^hkfU4)xbw|VUrt#)~n8+_7=t?9cD~STWmdD$Hf{nGKcF{c$4N5+CUQ4jj=r_3s54miznathxrOQ^ zJXZO(X-;FC`!LMh3;a$Vs_IS}s{kDck~&!J3!6`NG<^L&7;_`vgv1b4=)G#51m5*hNQx|`r* z$Fmx3Qb|jeJOipKc?2D!Hd-GWUN`+$lj*NOjbB#kZtlfjcy#?{6)4yPdnnbWuq5!? zEtN62y&w+ujBSho!r4AyVXC{HUJ9W`BtcP|``;{TM7J;cSr^S1mt}~Hip7HSG1se2 zd>8vm%w{TTqE@>33^u!4xWUyZF<`HVa0VOuy1G=`HWg2fGVH0rdt=W7Y7YQM7p=`d zq$@L@MY!Ya(YcVKPJrpcN6?--hl_*C#^H0+j*6`7(t26b2|V&pSY?hUqXGZEwc9}G z9}<2M4;(S}YkA|0n1ZLGS^LBv*r~Zkoki{S)mqitTLP!AGG_>ajlH}EYiv$1!P5It zUe^l4f@IIl{X+sLdS4Vaz&LxfD(0b3r{H%b4L^kX-9|B7j5>4{YU8qJl4zz!rn{}s zoaR_YfUTu30fi47A+7$dT^$M+e~7{^1FLRwl$_2&#wn`nK*Q^JajK}x->fC=+@;K z=26l>>nJX>ir_A1Y+h0hQi3Ol=B9k7J*d-szvzk|;mrHyqZwB~kCU}gz$%ej_JxB| zSx92mo|iX6Y5Ec-tiU0AXB9K=abIg$c2K?Epb20MolNBdF6VAl?QM|CLaCRm4XCa6 zc2#pvh4qtR|5YO5_45-ICK|cQQC0;a8>)YD?!Zpr_qggPrkw9P3d>uc_2*4{^x7$1 z9>F>pJWJ?n?ooga38TeRM)}~qbp0nv=UzuFS%|w!;LTZilt+wpjrPb1|0~-#_k`!z zfP?IIh%W98vQ#m;0#o~P8m&8g1VyP1#ai$K*ZrYzIM)>jnyNdHx_6-$_>ibYg-bB+ z-^yqg7ZdcwaPWM*(fMzbkD1J)>HsB22V~MjuGt&MeOl2tP9$^Bm?ywN(70>2#IPxJ zF%S3qdHySdRk__|$p|(6(Yt2m(uLa3SEsdI&v8nJX)2!|D&$^s;_bKkTcH$B5j!bP z3vBs50_Ew^V@7Mk7b5ips;i#mH*Ct(r&NNNPHL-8lD%8OtVRcd`E4LPVJgenB2!)x zbwTFV4$jdU*1TQ|F{NUIvOeDy7ckLDth3(Y$&*1pjF-8pVPi4aY{h!tX65p8eJ04c zmQ3HCh?<--Er?Sy5q~AuOggW8TwzLjm3py##HUsCLg=DYCw&V29QZwyu}9<`dY}qm zBf3vMd^#{qsKb3D!NfEs3y1JkYf(?=Yht(qy*i!RMsKx&m?R!H8MLCXqI@U8w$}gZ zisI`KozEkFXIS*nd9TfS=)~qBT>Lp5D=}4v$1kv@k-1Sbey`quC1*k{v&_;xIW9Ev z8@cD=kGw^SwysI>t)<>P<^3Kp-@Bw^tcgYeF$8q5e2i46?0Z!8>vpfyk(NR~m*- zHAvslNc95E&T**%7LN4On9PLYRYXzNQ}s`*A2H94M&^}|IrEO&nq?ujd)A{qc2wJy zCEF3g$s$oNYyz6e1DnK*aa{b8&jT%J7h|r?ry517txe+!w!Tjpkv#4NRz03#Djpe6 zR`}Q1SvFi&)R4QO56*Vg`5AtM_IruY^;SnmXL0*PcUkH#5;d|Z+3#Hz*n}(J{M4GF zRUB+>inD{)ISZ1TdF$qzMt_7hzRm{F1TNTu3lzz-JXgmVlb!F*iuNr$-Cv!jcsC#Ko}Um& zC*sFqA!2D)xTi}uTg0aFta*2yu0i$P0M}@K3RJ{-i1cQw#s4Ozl@$8_Po+rx3WW!l zZ-jLlnfbf#;e5SsVnCF1$PPhbv)rjoO6y`yiUbBAXTzIh+u*0KoR9wbTpz)l1R11;&~g1+k+?6z00z9As~bDN;JQ-%pn+=ggwcFRHG_ z`^CnX!JBhNz%Hn9 zoT?ry@@dQ)3i2SAvlv^rdU%5x$!u7?N^|Dj4AO&OuhoZj#PDd1|)jsj(xsd2_oBlo2v99`JcuWFEUr7d3NR%pmiP} zFg-Mc+@PO3J1==TfWQq?eRJRHb>wthj%rWhpJ$OpTtyYRwJERgOJ4NqApE z3L3})#`j6Hj*q`#8cCXw?-0{H^DSbh(6xovj8zMyCHhx105a= zjhgf$8l-=@flcelPbh&C`vom(FQRi+4{G!kX3jBnC0xU4aj<0jv8cLo+ipg^w4T{& zuF1!-Z8p3#xrO%3Nz1t7e@N-RO2*$H#%W_qhI{_ACbI?SP=6yQ{4>rHWZ?Tk8*|pJ~ zgitkw=0(dayHOYLWjo0kLw0%iHh6vKjC*EU3%{xSC#ttSe!3QrcC*D`!8*RYn5%Byna&h3r~Kw=J{pUFWLN6O2>)l zI1}!f*bI!4y7GS>+NyW_#9@vu?~qnz<$U*31|KtaQ2AK0wH}5DZX0HF0>Gaq9aqt2 zT}`V=TA^$DT^y^(H4+pHsGJm;b@Zka1w=U&qo|}7vDSohHelmp;BxzTXJzZiS0hIW z+yix&cjkjO1}T=4@rJc1Jd0x7Z^^hlid*BVWpun1AQK*9?}c6S$zp%UvyN#;D#!_a zX-}xANYFyfosYFlQ6tU>{~hm z+O^a|i$YTO2h<^c>hqbXqJhZ%wg%JwHl(MP$>}c1$w}$|vb~@(~P#sGSOj+mD*dq$JkM zm8Wzx-B;-1u`9K9yd4XfcGzx1OAHVVNo@Vhc{5tQ40^2GbwOW*juyRU9}5U(SZ$4A z&}aY?R0VPTbB6@zxHUFkZbYF33c|P^gM@JkM;yw^9aNLUF7%E|Rk}&CZ?kHu0tx)ObG11BeL{RGTWrNW2sj&}u zRy~eG{IP%ImyCd*43PATBL=kTm-2?mYroh8115aVQ#+RO^{QrLoKF}aF2M$iIHQ%iXl!XQR5Ad zEr%S9)vo+?u%P4|aRey^^HAEMqG+^2>d+QkZ<$!GS0dMUW5NPdq1{lpc22ymiX`D5 zVU@z$O#O>ek@2XY#OC;0dQEcu#uYQSx{Wd$zz7V62~8Tq0InG0G_?M6B;e1V1b?wR z)GY#BJiq9`7L|%yOCFbg2L*g>TJY&kH{FDtkzP};_{?&{7M*W_KF;z3UU#SYE7#42 z<_?fuqV@xO)Kgtt=} zVs>H_>YJ((H3;AGu_81z#eI#5|4c$tKDvrA5h&AL`9k&@%8y02%oMs9k6Dw{bZO>p zqS7H<_Ib9j`tFg_t;7J6FG_RX$*$>aaaRC}Cy^!h!kFxq?lwMH02B@pQvq@++=v{J z#?dE6SS_V2)Gx;F8$m(KT)}|wI~3OR+Fq*`ZT&uw4vBI=mNJ{+j~Qjhrmi<>{vnkO zpQ%b!<1L-x!NVq{$TRsRAlxtSiuL_62I=)Uv2;&d>YNFHXb*8{N59FOk#ssfn$O&m zU{!qy#4kPVp8?Z@&n2LfGgOrgt^Pke;3$X`kX9RyzBW0>Z&~!?G0+8}Qi3Hv31d!T zug>VWf$cX+2~HNgPaE%rB5npf8rW>PhzNrPplk>c(@!zKOt$2$h7NiHyiqit^gM^( z7P9LHhdv|Y1Q=$#X))6}hk&st&v=YGy2>s46hR~$G!<{=6;iQ`Fi=|4- z1RGAKK((BQJ>S|0<;xbny7=gq76!8nc2B~7!j}Sy_H#*zK#z7!&u)-!B#}hk!9!?& zJW-}5-ZD%~tNjuo5j*kvwOC`bT@Sc^W=D~c^cjdfRH==p06Um}2y`QEJC?s5tRHa+w3=SPG zZk77g^R9ey!;4CO_*97#RXoVBMXjvf3DJydXr0EVF8uEMrzuJYO=8U&`Hu;;Z!*T~ zyxqt#i@Vk2T>tYiiO3c{oB6FzFA1)LB|ZnB5SwmS#79-5(mR8?I>ToY)^|&2QMexoVEbSWJp@JJcWfFjZzf`2E#Av0h`paebj+cizisD zz-*%?u}caa!>n}Rb6 z7PlLc3$^(42wT{AJ{~FG5RYTJ{JRl>{&hUJ68KNI(w>u7@ZacXzbHLj)_8eCB>1To zSZ5c+okD`oPeE_Dg^x8P8d|mm*UAX+vm0;OOH;fDJy`~_NL)Iq|5q|dBic|!!PpHd zGqmKd1Xk-sfJ*%g-}RJPv`b|?rKtm3aH1DsvG1JK*<|0u+NE29raaW{hGA?Ew->aq z4-Kv>&!DqnikUsB%fz0;dvcpUp~?z)Lm>)*p2cK4kG6al1qY%}wtg99tJIKK+3{ zMe_%uX=1UgOEQZE67?R7J$GXM1Z!_DsUyK6pXog@+S`sI86x|06e_yfGS6I*EysFh zzJ5N;2C1T!rU-*h!j;DPrfd>_Hu z?^2yi3M`biqVd&4{YD9v@yinW4zW}GhvbR0HIW(~UAy2<@@LMXa?56wilB}x^-I!v zm}FMW1LbU@-uf8@HRSa64u(lt!INCj$uzU%bV8gzDD;h3nt%W(RF-#2o{Ng>-@Ct* zKmgyQ`;E&12^%V5b;jn)8rLx_~k-DeVGd%L_}3j-^vnNFedz&xdCxd zOD@eMZjsrPw9?HH%=(fqWqG);_T^YaX^tCQT<|VwOFN4*%u?YKV1>}PHj4+*=_7}0 zk*;GMyW%&+#gf8bfB-zk{FT0s8w<}*4-#(lf5+)4RkBv?V;R8F9Ko1rv$avh1x9De zLUA%2JLLPRn^Cz2VzU-~CZ!#`Pw&D*P#N%-6~8(PW+w{R+|)(!SHZ!!XfPV2tM%wbhpVf-{Zw!@lrVe_4y{F>MIcLhgQZm~pK z`5F_b<3-l!euJapA`GAMe>h%k9-OtQfd%xBt~recDq=dV zKgqxmA$fD>4I|=BC!eFwc~Ur|nkbD(dbLN%G;iH~NZN_>N0)Q;55Ey)R?=NmZJ+Jd zIDw`HRtf(UYAxmHGR^_I_BFX8Uoyx65xYR-1{543BkZN-$;f5z9)rdyO>#aP-x%Ty z4a&MP;*ZL@O665LYpXo7ibumTPJ?+}3EyenFQRHxxS|zFNxaiHaTznNDbr!*McFYgKD`f+`6639o12$JQI)$nlkynAP`+d{QR>fo@80A+ueuI z%(Utmr|pDgvXQFWxZ@a5RfVR#ImtD|c6L2(B}_)ycoP5!%`W6Ru`;!7WO4TY!sGPk zETHNvW>h=+oPX9P4PthYgExOd(uoS0T_mDIZ}QNpk$9WRM=#{`u+r|{5#t}t zh^%``LpZjo@&MwBd^V;LB~~LNnQQCgyH9lld8umb@fTZ=bgXb@>lkGG|e3& zLzkY|P_u>e)kJilQma^v3)zb8wI)1fytduZPpIR4qZ1ItLw!6t7g)4J(2I7a4mUH( z&S19FP7^Gc)0-1iCFV-F63gk+1@u#i##PPBin>yPzv(9O5-O-R;y3&3|HZTWM&trF9_D!A%y=SH78Su;VbOp zSL0o{eSb&^{!SM!TgU5_#Z>qq^b?2d0L|LsHrj652gbj(rqtPKV!PrlQPMl=mh1hQ zLsO;GveOpO6 z1vt)F`DW0%YckC8i%iG~Ph7yw$ebtyyQ%0AFYC4C{R2 z);c#zwZJPZolzR6XE&9K#Y3FhzO^cbdAo)KAI!9e%Nj`-c zM~&(94D+~DWjK(M^$Rh4lqvddp+Nedw-f7+rk;Rp((jhxhPfW4D#L4^XY(8{C9KWX$W|{)I8NY|ISpC+5u#Nl}vnyy1Vacon0HPK4|yU5opw1-wan$VDiGNS%S z=x3U;W>E0^Bk-%p9sSUV8}Xr)ZD1b>La^^9-fn_Tr2WFfD1rTSo#g&EI>GJ3>V5k~ zf+egFpw}g$54EIpSReU&j&}C5<6Njc=RbzT_=5}JhmFpNa{%92fI80xy-IPqj`jq< zwS8LFnO-4ArQ|Rzpg`6nj5i1gYa!X~EAY};=R>vb?2QjmPEJ|*Cn&_4}*${HByC9LX zx&3>7+88Pt79|q7pAo!0?)s)B-M0T7YC|j}M#St0Rg}WHRjlObY0O!elbt;<_IP(f z$p#WJlx(cc=(I-u9^>u&N@SQMdOySpO447~o$uz0DRT`v%fq9MwVP9mVB@^$e zDp@GUmk4g=#;2L-7j(m*J5!aqjm~(;J5Zj3dYNoC*nxFf+A9))?YV@OD+at)w$=#{ zvIVA(Pi{ZQbEj0T`aCjl4)U-N)WJx&OmR*%W?L^12NEPmyJkqQI&j&G~tcWNJ!nBdHg(CptSP0BWQT(^vO zs~6S*1_!;c-li;@f-!@M3a$gODbG!@so;lKaNnlb$-`@!$f!;6|4tKMp>&D=_ci!h zZWlb9c!uUwV=QQD|5+f1LD@#<{($_FPp}xn>g?%u0P?gWWoB2_JG2z=pIc?^Xg%yq zY~j($Lt+98%{V-iUrYkS4jYd#(ww(8YTLqI9!WT_{qmdmGqq7L&HYmSU$IBg=7a*| zC06x`cYz9LHbg1^iIp5grToF@m=Cs7ADp;Ws$i}mRNPC^cakc=wMB7idVB%R`0Y47 zZp3#Y4;5RBpLW+v!1963RwD`%PBOndofO2l_ukYAEIJ=1;eCURL5g%pkjEyv*cd8f<&i#fT|9b=&D;8Y6!KX>8~y^4s#4?kb{r1N+tk!PH?Ak{H3 zJ*i0YCL@@@$ES2Se4s>f$TEwL7mIkiSWh~A4ct>N-LKyQJi{2kaq8sfWp`rvd>Ml) zst4bQR4e6DUA8-+%WjXwCCeU7$2w%J4+PB1YRq^%25ah3nuobnzE2u$8^!w5RI^Tf zsQfm-!%^hd__xx2sU}bl#tM1yVe@0S?>tc|t0HLf>{Jj@QG&3BD{`5b?kI zO0=14jcYB3&gHhNj3dnDCjnMWsl?j04sxp84m{UC#7@bHtyWXmus-d|`j0)HbX1FL zVeeQ9!_d3p>k7z7JW~Mf1@+2mqdZx}(M%gFo~?u)+(G`7Qg`H6%-&!S)V4Bf+Q!7p z%19M26xZqI^yH4SC6J0EQ3-B*1QSNC>-%HS22+dyjq=_|#AE9j>287!Yew7kXIe)B zeM0nWGn+{1hicXrQ&?w^|D=qu(7UC##e}`Zl&6YRHzY5SGyr zv0y}k>KnF&xtoU;doKPrlltzYb#KF_@v>~FT3o8yJ67u~rIs?hg-!+JmmK?gdMa|% z-vn^?LlaShaB_FiYkb$EN@c`MaUysOhXf{?mTn#^RIcr0c01rzWbI+vYZYeb+!!M{ z#RIUawsmX=l=LapD~_5^_ZY(6_hc2JmO)u_IzRt76)F5T*KT6`gVM$D(JG!HV_!LG z4m37U$v4SJxW?_IWW|TMbzg?Gi{X6{uH;)bG>Bs@V5LY^l1SpcPEF${1S&%B_`QaZ z&rPPCP`^E!ehK!Q^BVlCf3&|X;})3PYl5IG~Qft4B1(ev(SrS;PCixZQ%LXqTi@;H+`XkI!4v_;My0K7g-@8}noZNA}7_D{^8n!Y9%weejI%>GstEjcX3+xMT(H>^^Yq`D}Fi zyJf!Rg@S>viuzTiQNs?nPry>V{Sf~SvH=j-h@ZuON&4s7y=4H6C>e$8?N!yT;|Z>o>z})ssP2- zd!M0@gH5sV>wicw&sgQn|Bz;_(rfqLGvp~vkj>=PpBrqnN$Zt8pZ^{op1Hb0y3Dbn ze+)0Y!nX=D)jJKyFT41$n*MCxjY?ZKYvkMRuV&ddF_~vztH9g&!4@w=Uxu)Vu^E3%gLdxR;1I+9Jny;;u7Wz%m;fp6k!;M!OVmeN|cYshb zcLlBAd;RLtP!=5ti_}#YiPVo?=8bIVyC0WskV_&iu{EuLg;^Q_W$dn%#{6KL)-taYp+woU%Pv;Y&)u|w1L)WY(1|_$&buQT|v}e>qdMS z1yYx*ITX*?4r_m30XmpRIv0ZZBX2t!cW7Y@57!AH3tWg|TEJDx&JOj|LF)r#ulV7B z_V07AYw1){Ipc|xDIN(=^*p22ijE+?%o7q5a?g58?C`LwA-eJ%f60fVYMHL-(fuS# z^`RZn?2F}>4;N>vWM`YN5~7e^!|VK)!+%Iwlq>Z(u^~d%N05YnNPPmshTjxTl^4ZZ z`YMitWIyU@(); mChildDocuments.put(STRESS_ROOT_2_DOC_ID, children); for (int i = 0; i < STRESS_ROOT_2_ITEMS; i++) { - document = StubDocument.createFile(STRESS_ROOT_1_ITEMS + i); + try { + document = StubDocument.createFile( + getContext(), MIME_TYPE_IMAGE, + com.android.documentsui.perftests.R.raw.earth_small, + STRESS_ROOT_1_ITEMS + i); + } catch (IOException e) { + return false; + } mDocuments.put(document.id, document); children.add(document); } @@ -150,6 +160,14 @@ public class StressProvider extends DocumentsProvider { return result; } + @Override + public AssetFileDescriptor openDocumentThumbnail(String docId, Point sizeHint, + CancellationSignal signal) + throws FileNotFoundException { + final StubDocument document = mDocuments.get(docId); + return getContext().getResources().openRawResourceFd(document.thumbnail); + } + @Override public ParcelFileDescriptor openDocument(String docId, String mode, CancellationSignal signal) @@ -171,7 +189,8 @@ public class StressProvider extends DocumentsProvider { row.add(Document.COLUMN_DISPLAY_NAME, document.id); row.add(Document.COLUMN_SIZE, document.size); row.add(Document.COLUMN_MIME_TYPE, document.mimeType); - row.add(Document.COLUMN_FLAGS, 0); + row.add(Document.COLUMN_FLAGS, + document.thumbnail != -1 ? Document.FLAG_SUPPORTS_THUMBNAIL : 0); row.add(Document.COLUMN_LAST_MODIFIED, document.lastModified); } @@ -184,28 +203,32 @@ public class StressProvider extends DocumentsProvider { final String id; final int size; final long lastModified; + final int thumbnail; - private StubDocument(String mimeType, String id, int size, long lastModified) { + private StubDocument(String mimeType, String id, int size, long lastModified, + int thumbnail) { this.mimeType = mimeType; this.id = id; this.size = size; this.lastModified = lastModified; + this.thumbnail = thumbnail; } public static StubDocument createDirectory(int index) { return new StubDocument( DocumentsContract.Document.MIME_TYPE_DIR, createRandomId(index), 0, - createRandomTime(index)); + createRandomTime(index), -1); } public static StubDocument createDirectory(String id) { - return new StubDocument(DocumentsContract.Document.MIME_TYPE_DIR, id, 0, 0); + return new StubDocument(DocumentsContract.Document.MIME_TYPE_DIR, id, 0, 0, -1); } - public static StubDocument createFile(int index) { + public static StubDocument createFile(Context context, String mimeType, int thumbnail, + int index) throws IOException { return new StubDocument( - MIME_TYPE_IMAGE, createRandomId(index), createRandomSize(index), - createRandomTime(index)); + mimeType, createRandomId(index), createRandomSize(index), + createRandomTime(index), thumbnail); } private static String createRandomId(int index) {