From 0d2f337be64e06630811f416a9789abf2069f158 Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Mon, 15 Jan 2007 16:40:03 +0000 Subject: [PATCH] Fix for bug #41357, by moving byte array creation until after we've decided that we have a valid picture git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@496398 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hslf/HSLFSlideShow.java | 11 ++-- .../poi/hslf/data/PictureLengthZero.ppt | Bin 0 -> 165376 bytes .../poi/hslf/usermodel/TestPictures.java | 51 ++++++++++++++++-- 3 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 src/scratchpad/testcases/org/apache/poi/hslf/data/PictureLengthZero.ppt diff --git a/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java b/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java index 774129a9c..513d42ab5 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java +++ b/src/scratchpad/src/org/apache/poi/hslf/HSLFSlideShow.java @@ -270,8 +270,6 @@ public class HSLFSlideShow extends POIDocument // Image size (excluding the 8 byte header) int imgsize = LittleEndian.getInt(pictstream, pos); pos += LittleEndian.INT_SIZE; - byte[] imgdata = new byte[imgsize]; - System.arraycopy(pictstream, pos, imgdata, 0, imgdata.length); // The image size must be 0 or greater // (0 is allowed, but odd, since we do wind on by the header each @@ -282,8 +280,15 @@ public class HSLFSlideShow extends POIDocument // If they type (including the bonus 0xF018) is 0, skip it if(type == 0) { - System.err.println("Problem reading picture: Invalid image type 0, on picture with length" + imgsize + ".\nYou document will probably become corrupted if you save it!"); + System.err.println("Problem reading picture: Invalid image type 0, on picture with length " + imgsize + ".\nYou document will probably become corrupted if you save it!"); + System.err.println(pos); } else { + // Copy the data, ready to pass to PictureData + byte[] imgdata = new byte[imgsize]; + if(imgsize > 0) { + System.arraycopy(pictstream, pos, imgdata, 0, imgdata.length); + } + // Build the PictureData object from the data try { PictureData pict = PictureData.create(type - 0xF018); diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureLengthZero.ppt b/src/scratchpad/testcases/org/apache/poi/hslf/data/PictureLengthZero.ppt new file mode 100644 index 0000000000000000000000000000000000000000..1cb0cda0fa9afb7fe5b819ea9fcba57adb0ebd04 GIT binary patch literal 165376 zcmeEv2Ygh;_Wx{2PuP%9Lcburgg^ihDFH&076C=EkhUq1WMc{hX~6<0pr~{a0*WH# ziGYIAf>f2JG(ivq5d?$?QU&t=e&_CGOA>^D@BiNW?d<35y?4r)IWuR@oH=*q&aRy$ zkIwnD{LjM4wH5|(E8k1F+xZ)C-$i@&7h)vtb%0y>`T6vY0t^8}1K{Oy{{=M=S+zo5 zS-lWje&2C)&F9^7)}+sB_IlYJ{pY%&5v?vPK!`}A5Fw9M6cJn8#R=KySqJA$TGw?$ zg#VWF&qa^ixFE4s$uY;2#}@V(y#DL%9t)LC>%HAdFKkz@X^-hG{wmx2^%hrS(q5R~ zCUtP{XT7WS_`XDs0Ta%53b>xMxMX0va~IF0ogX^&O65^XcG@`MxhD5t&8{22`*foJ zkJS>MF0*2Emldt{o!k6sYTHV0hR@%7{>)32mpm16YEsudEzIHXMNJ+Nv*ne@#_#o? z(WqHt@kHw@kDl9G`HRt&n$`LKnV#hjY`XMB?eV)uy_`Lz>$!Dhe*LX|*0cJAc0qIf zbIw1WTw%q*Y4N#vZ=Vm&d9K;cPFGj;n|h`8wrcLbubx+a`M&A-T|U~{_3Y{^S&Np8 zt@Ws7&rADW{ABfSi)$~dJ1!{HIQ5S&#=Wp@)|MMLI^=)&@XeaDGM0=D-SG3|L5<$r z&~)9|hI4maTJwCf1-&YTetV!>aEr-x!av%-?6;6il(Y@RJy!zO_Hl?Nv z8FS^K^B10uxV-b4`KL>bo*#7WrL8lSYDcczy0!RUn{QPfaH&Q2VV)t+XMC}3|IjZF zT))<-O}%fLorKW#1*?sl3T1&@%k(rm?;$(dFwr9JR|6*9pZ^sUw z_fq=JKFhw^vQCuUd+krM#|>)~mJs=ylK3!hq zwr~^QSlJ^c_GoNmCnC zAHVWP`{ohX)_0qKWB<{thd1UmeCX9%hy5=1_d2w0)sVKsYBfLdlF!D$8}r)0zs-7& zUT?X5)@j-o(@JmL`O05|8$P_Wr6Dl%;RVCmc+}0W^61hwLDMcbnsd5u>?>Pix-|UZ z`%7h_H=M8Cyi&@TF;jK5>aKgQ+{P8J9vphKq2bn_{d+un^``mR9r|7`lz!&Rjla%b zyz$zYQ6K9o_Bi;%_vHe8J{($aZ2Ecq=AB2=l#-Q$qka8bmtFqn&-$qm{=Jn!J|Rn9 z9x^o7T>hcJcY39oU+6L*c&x|wo4yi;l{Yr}mhlj|HIGfv#DMGSssUFGxN5*v1Fjly z)qtx8Ts7dT0ap$Dm)C$voH8t_Ks(NFhT5PdyNnP=VcQ|_p7T6!I~qB+gVULWm+`E8 z@HWCUAUpvkvCTA%p<=s<&vcBU6B|rH)_eMS0BBe8;)6*DfAOUW*@+I~1(69WQiezr z7Lg(p_?IfgKUjo{5QNo7Sa-yY5ow5@4v0fqr4T%!A{Z&|wtTd6v3x!N5c(fiKGrSE zR|4?wt-lL~NHl0evDM^@tV6{2Cbm7>*d+FPsBOQ(6prV%Xp=;=WfJZ+UP$^VKoAmU zpYu68FF@=8%-Q7;qJ`71MO&|sUvL$|Sj}IkxWs+pV)=ylK=Nd^2*W+?mGdMGc<>Cy zA9+%Uk4@xt-s{2N0&(9rrQpd;3t%Pa3i80=?is{H)(ytP_CNrkK& zbRtEksKvm2m|ji6&J}5(=>!h<*~V<-$-4A0W+66MFE3T5a?e`{e`6mZ&?UuG0PCMY zYFQD6dphz39j`zs{dv!D#^sgu9S&gsBQDZh9zdtHh5eO$rr~E?_SHZD9pjPCs(gUc z@~3}k0Mj)Ty1b`wZ7e+Us^e-fI$Im_MHSScBo*Owwz$rwr+i_w#$_71mxWJW2(F`a z$j$R*qVXKvmLcnO{wQs(4ql#{q))!i6J^%vk<>FxRQ`jsFco9a?+VDPBJxZXnOs~n zQ2to6kv{m#=8Z}0@(4wuDx#E8ja%BtxL>}rRJ&LuIFmzYJQuRNQFK#2N;fRYe3ETgp^w z9>i}CA;5jQx>pFhVi>xjjB5X<3jmIMjdUYfO>?XYlNcM=TwY%fWVM56DZcv){vz<} zBN{a&TdSEwNH<%G7L}dmo2tUEPgHz-VoJO+ zI58tZ>6{oFYfe$RN2Lw43{tvVV$DhE{z6Sez87M?iIvd4dqf|ldGp3f$HbJVBqbuv zGQb>@;nzMPEiqjQHzyA^CnfpyPE59>C>_(H(#>hg6Df&<%xUR~8F-bkz{Gx0iRj?i ze^@?)D91H^;V6 z`lLlArm)J?KqWQJGAJ?D9E<0a^u+WG1|cy*(@-f%LzE0uF@iJ9Ss8wQPo$*V;d&z7 zoUT|>5GgeYSY;fo1vLRf@{L81Pr+4KqbZG?E1?%+_KZeT42p_QGArpBQ5nd(wv`5! zt&S3JPBEv!KURqzq9mxiphW}`>2>@%sWH%&N;0`aD=Qn3j%796YgrpRmNm!J7-+gf z@rV^>40SDpB32m`(F)h07y|3#+D`uG8ior$_%KFqC@EBO%(&0M&=v(%Cmn;OP3=jQ z3QaUZqT!z;!-gPsvP{Q;H4E6HaIG%}z@PaQm4-@@0u?Di<`a)JDIy*|aWao&+@;%< zClSvXpvTd70CH<5%iaNHNJI*jS5?u9%Ga^1(I{tqF%Wp~RMrexN~&;!fjteisz{0z z)PV&w*sF%b#gZ@v%foOg9IRKS8;mF7BRx@)Vp5T7U<-6X9k8~ko;XrkI5kYinz>Wi z)p}OzGEHJv>zVcKm`5TwZ;q+CP6$;>b3E-Q9)>Tx!-jCFKYuE}L&1JkcS73^54G89JL!n0$6l$(-pZ<%rX8TlsO!p(Z22 zIr?gHM;k?n&4W>-a~vXyl#!v%awi3d`lGAPd#t(g< zhwRBcFx5(id?5}6y@yhQsbi%qbL3fD4rcTj$`VQx3wjT6Fm7$6V$SSUDF|a9R{LGL zsDnKF6q%1csb=82!CSkUL@vpEJh%OET@X2U>P+zqvGl* zarFUx%*TSXtid!fNXivW;;}4hj7)3o#zVfSQiswf3*jsoWgg?!all%*gwa~Sj1p6B zsr5)Xt>tA;4W+jQb)O<79b4B{E4<^lLrFgfrEzRY1!eLRpBfm4BL~MGO3S6UeJCHb z8n|;=qfj#(iv|HyS*Mo7c|6g0GZD1ew_jl;)u=71?#ZvDo!nt7eH8py^W5n_x^_F+h`2&=yy*U#8rIrA_E$sR6@kTbYH zncvkp#Iu@|yg`r@aFoBE6lf>&r8Zk+XqJqvr9~kinUS9_1>OSF2>kD&ADm5Mbx}Q> zWDfIXdV`z-G76t;vd|Xp=s$>2;T(PWq`Hd+PH{ktECI?U+-?Wnr6gTVWf^ z709P7fU~yKu0WhV1>)oy?D3HM+2-UHt$$H(c~SCC59B+?R2l!)Q5bjC0d#VRv5upx z`v~}HV~wruFg=&f=EIty(*bO?O{q@j=&Owj9Ie=%tW9@DkN3z z@s>2qfReR}R5Qvk^+4h$q`+c_RyzsBG?knf2#X}E5L3HqH&nzxR0IWV0;-5AtRn4i zs&Hi&(F8@}JqWO(go3j`PmwvY6H`P|7}deOz0mqQQ9#kGinodi)j!hA+$$-;D0vr% zBvqv*{cLpmLGV*UBjl;6bX4xt6tSo$RZLL1C4100HLEH`{V+gxYnX^B9{Z+v* z48dv{oLS7qm<@>o&gRoh^>AWJDWDKSN^A_QQta$&s{vIkP?&0rOmm9r92uFGqIOX+ z1Mkeq(-5n-9K1PTkaNhBsLzUV+vciCRqI8OUFFC)q>#8u|0^PT~uargTCe@SQC1g8<=4g zNS2ldO}?l}b4;ah(_XfMO`52~Ih7~{{l$zHu@~Dh@S)z+Kk{Ak8 zGZL+7mmBJfWd^@ObJlWnoM;y&MJOxol#d@K0~{>a`i|6nYOtvpOHmeLsV#cqIt;MN zz-fg#jEuvb>K?IP0H0qKYvsDkavE zOgmFr1{*UPq-dST`VxqBh(=dC6YQC|Q|lr4wx5hKF3$MUb`Ke# zicM+}j81%BMN}>srI$H9Gbtloh|{tOP2#HI11}cnyn(%#DRp`eFHHr(BV2%p6nP#B z?qENrhse&(me*BBkBiXI=|W7OE~al21>#MaGDXJw>qu{rKRr%t3q{npg7Gwb)3@b| zZGh0wZQ_&o{M-0`y8MU4qv2yYCTvDo;*jZldwd6EyupJ9%WHoA6%o2^o5+udK>oIP zAV8(1-&43EAU0YgTegrufGu7&urRM@s|a!A`*&pd*A9u4X?D*oce{L`O2!kRpb_yy zS*|54UcSgbsk4ix;tP$NE{>l8O{lw$uXmO4@=n5`|evYapFrNd)9oB zzb#JucIb=S_~L+vtt%ST%vU(ltsTd&qNWq1Rnv^bJGL5v@oD&Fkh zP;6T+#Q0e`pz?iFYy9g9yrI%T#%eB13Iei`;~T2_j9?(Uzi*-*p}yzRIlbqi(*FaX zC@c!X$bi`p6oJYfoq~H#nfP2y*`;SX>PKpLo*@!B>Y?}Wd6n>Y%O?K|<&N*#sHoEs zmnu0ODe0ybrXSEE5 z+s~wjomdN3F-HP3OC=LC0$eKm*jmg@b*v{X2J1+YhalFEL@VzDfL)6pAhHX=V$~_F zDQ#E+?6COTVe!Xn7+>Q)pfw47-VR*-g=Ze62X#Pq>2Ju3lUHLN^-G=b%F~1#9&bCn z@RsR_oOGFlG4Fd^1FZgf_)~Fy2XE=9)rxO%br*z$vnuMRGbyYH=b zo;RU(++X*1t{w8YhfZyA_9?A)n5_^wCWd29g#n%NOY0HZonEep%9o-wV$B9Y0 zpVlPc4SxXA;JrBXE2Dt|yp4f#DF3_Ed+z;Z_L*SHo4xOTr8`=tMGLM`s)*-s%pYif zpq+(=M?TZo6pvYtNt`o;pb0fy4bg>s9n2dcviau$Dkzb2KnW%CG+Y&{L?*8okf})+ z@R9ZEK%DX(>AYr_MR&FXgN?|A}6a1|{&QpL6~wD%!kY z{`9A0>Wr&KzYh8TH}Dqurn(*9kQP67d(~z0qVdfn1d?yY;~HVlHxPd0o9Z(BF8Ky& zG`>kg9$LNW;m>yK4Zh(BF%m$I=@!z-w`h*J(}?XSI{9+ME{tRBb2b!_bGXGhXM0|` z)3{oqkepe+1$YHH|EKdxw(*G+^2#?b7-%wvv=qfFEf9~q(iqolE3Y(0{Pqg_P|zQg z2Wnjy@}|J{%sQzp{r*M+MEXMc2L6Td&7n%GO~vJ#)zFsif^Uk*S^Smal(RkG9Q9U; z)W=GQlmae&t8@>h0@A<&WPy7YT?{!D~ z_fr1;CH^!OEWh_1@!w1RrH51b4QqJ!aDb!2E`9{}Kf;`#%88uY%tTVlMdrF#l=VRnmr8 z>!$(43_jQD*|8tpiBD`jG|%v=o5~@qXAN`U9WmdDLp02oa09c-8{L3e>V-RT|E%9t&eDBR_=)TZpu8- zK<5gq;eD0UHe%YBGvvO?Svbx{_f<~Y_-kLz#`jgu!f}S)S2=BC zu6;S1+*dgZ$JzA0aMsZ087y)XurFt``=H(8Mw|upjfaWzzNE?$V`?e4G6j2R^ZO`m zPop_7wN$|xcmz0$+e0mG#HrRmB!~{M&WvC(yF(3N?&+!NGthAzwA?^Z?GM`L86JtN zIztkMM+}d+FOf4O`__9@L6l-jmn9z0c|PZs-tK{yy;{j?rPQ)_7PdOlF(2RJTg+$c-0~F6BeBIS zF9@i>&B6^hX$jzLls%6&3@x0N9)@wI%{irWIG;JYA`Z?Box}MynrS)n;QY=x+!NuH z6`V(L#>2enwEP2b&lx~f0CivI^npSRqsC1=);XMpy;|@mjv9r8!#F12gV#YA^-JgU ztRto;eGLi;FNbi_PyEz$oYR*_IKw;u)LNXwDs{*KjIEVAC1H)K{)Fzz6xoeHM zNq^%)!fC-}80(*-ymNXioRGLlKSylmaCiyoo3#KOeVxOrTEkff97&zSt0A1YIU;iG zat?n8;Vc`&ISx68S4TMIF)d+~_0IfJ1L2f;v@}tkI)~Rpco_V>0hC$J;k6Ln4*s0K zwgqV6|MZ)sAMj==a@V?B#kKyY+FSp@B=>CnM;i8R%HT9yH5sgjzk*6|w*CjzS>?wO zx$yTzceeho!h4*%u;Lbx^DFWHxb+`7-;YfFcks%R?<-9#F0UN5=auHg;1#4Plvm(i z7_YQkx?gH<#o?9x;K;k+l_GK;zrZnh=MtT-DUsiY}Y?@$oW5+ zR}Mq2?5fvnGW-N2uFPvadwUlwbL%@|zPmE}mz)=%mf3y| z*oK&ksn4%BT=M&|q(4?VsP9j-8g6&T(%wxy=nZVU>;l%-PWM&X-rkYE>#;7*v9w(t zKxx@(YH96xxa)mmu4a7R?V@{50lQ1L`>u!l0yz5sXLhkU;iCIm&z}pl*Aw?q&Yz9M zS+Jb_?gJ+|_FI$6u{*%{bA8o!iP6LfNv*A=$`+mHK*C`J&^vrHMYFp=VtMBC&uQ&t zh#}8C%(E=&!7ncbD4o}=8R3(QomE_OR}KFL0GvX(M=2<8ktZETjFb6XMaaT2l=DI4 z2_$M5 zpB0b?etD6=@7PxJ<=U*MM)lEHDpeer;S|TVLSw+$+KOYp>Q`9n%<>>+ z3&Qus6`UTku5Qet{)q8St0Q8*L5Z_Xy-{;Tv3Ytg{7wgqN$W&K9mi#NYL7 z0ci@GEg0di6k>&#^fkB{1IL4%S!SX1n*GDwnzOd*!bs9@uYvS$@0`CuMo`~TwN3>Bo?i77l{&S4u{x}56{TbXJ zmz|w0+8_~jC>rcXom}4>pQWWHNUJ6d*+Q)MVNU8yOWij|M1eY5IE{JzaIcMaK`5a= zN~l@;eRS-*YI)Q$qlr>OU{3q zKuznq=iO;q0}zjzRy3|cr|#P{;Wi+Q{)W7_??ux>n!+?KJ^TyPv=U;cd65H(qiIcp zRq^j__-;ky{8Ys|+wfC;3fo1g>R3hF@OufHUDh2r-=B`v%&oQiZja>!bS#hi#@x}H zm^T*Cu{`e^v%6 zVMUEV)^UPUAS5ixdUkg@mS0%$+xC*1t!?dVs|0X5>R6s{7pJ!3+)~`vdUU^|j`pq?{ZeMHW0eGDMeA5nTfhz)O{XcYj+N)dQKy%j+1u+_#4Lopj`a}sjX7yR zVTkg8H6Y4YjtG?99QmllXc`iqISx^(QCjku(n1U8Jx4&Mr+m=T|I-@K5okam)uudA z+*J$_Rt<>d$7j8y26RvRU6H0x4G8`UDnZkMM*_dxAzl4Yu~#u1Lh1fq10ofL<(&QW zLrzvMdwu`T`(4R@jybar6yQnZd_O$-PxH#p;FX-d4MK{`E0OjqUV@6jD@ao)ufV^s z7VFdSA733+M9#UbopZi>UMaXPt59A+&i~20vY#_6VQ5ZXc@fhi&4x`{{J6YRb=kaV zHtf?dZF6RI3|GY}S4gJPS>=@%W%ymLctM&%c?JH3@k;Hv7?h+usPncx8Q0t=d39t^6`j4qEDQjIJ7ulzu&cOVdnLE69BL#h=EFgCA*DgPJ#K zQ$wV30P@u*ru)zYl;SFH!5d+)DXFU>>?tu7LCI4qi%&@eYKD}MBDU6@C}|QJ-0YEJ zQ?ehFX>C%X2ugCx7oQRZ3_waqkw!_3tWR}5q_qjxKHDEZQD5A~lwT3#y%JV@^4LJH;bj?Fj%41cp_+yShcqd6L)o*OZxNK79aelw*g&L2 z>qK{=q&X-lKFjSzduc4^QxqjLicbkyj+AJfh?GQ;NvuC zeWF)U47VO(8gbr55cg+j@rh&en_Xa*q=BGJ<>clAJRdyx-+*0z^C9xPc^v~C{t*yqdw8AD5|z0Ory%92&%G^Ijt}L zP^zg5q>fZQ#R56?A-?Qy8WIws9!sPi*rU-@QpVS4QlIEm6iweEOry!Y2%4HJ#ixla zM4GfNM4I}_GCFb`##_<2aFR%_jrr6k`V>Xda)fClxfMZ@ad`1bBJ+_Xtuv9NFc!$6 znN%GIQQ@@aP@m{iRM{gD)=sBti6yON*Q}z{S+#GIe5;#n5n{iN82N<~ZwK9M9rQ#` zgs2*tR$fXkmYZ53JByZ2fHj|VXoYp*@0ia_82|1j2Qn;kP#M=ThrkDtgEr)=64)_^ zQV%2tO^;QT3UzO!R!gO=IXsBgpiaiRQgt)Oe9An)eAwD-eJvmRRxf+sHKuiKUJJ`1 z=)QBH(9nd3mP4c+=azdwb*1$T`!)gU+fqcw2Pm3a+u!Ru)PLGqBQ1OT<{b4GCH>Pm zc0*;#n)&-v-IFSGD0M4t-y82_K6}y>*sfi-64jp=cjEi@FGck0)w%klCVgJ0*5Rej zE4P+@W5BA!XM4>KsIfJ*Ug!A%Cjx?RbXH2$*2nfMXVkx9Jh7{u@dclNc5_q3rnsMW zoL%~Eb93(z?Q(aP|9$mv%TGsEUx{1YcWuJ6!=vW?ULh&F{jP|*`{!)F{KkQDD7Gb@}Q_jb$JlM~in z_sPG0&Gb~I?}o?qXf^ho&PiQAs+5u1@yn)@hoz2~TdpC_=+4EHQpC^so@Itp$PoK;Fu)?m9ReKvPy4j#vo7PK_gj5<;e!!9<3Br)pSbShLECSZ?Hksl{3D)C+V9)b zJ!h6URKMfGxA%TH>-S>^s%}p9{^YA2hQ2qiOgnYMYg@GeHx9L5cxqi-iMLv=IMe#i zl=fd&$v!-LU60fG?emX3ogX)$@0t7~K94?;zw^m6Bm17Za&6eDvuDFCmWCZWb_{9M zXw2cP);`Iv6I zGdItE>bvF2%d?v{Ft5M(SMKZM*LwzzZ9z&U&%pg!n2IcD@%da?6u`hu2*wyMJBNq^y3QSAJvkQ^A=n(*x44yk2%; z>)|ynU-;~cF`FhHssH}yk%Jo#`S9?({*j;T_n%kmWXGS`FLYe zR+C0$D}VdJvBabkA5Hpp(joJpm2JOi`p2!D!}+P#HvbvY{CAHk7X!E4n)%wB`&;}G zH2Bz&azoN1-&uFI=k;eoZhYJCRvG;(RX)vY{a)Uv?zb#G&&TDrInci1?#FsAYj&na z%fxF#zqWkz^1uu;I0{BeMJdy5rJ{&@P`$Y&iM!vAI899UlA3&p$r7dTwTq z8(juWKGpZdacB1Lu6H_q$8$IK9q3y5*vfu&8rHjZamu43(Rp7u*tgEkmGR5g#2-Ge zYTJk=*E=72y{l)yM~{YPHavVPwb$!=4vTBQooV&HC1l5{=r0Z=RqGJ6_(JY0i-&z5 zQLdv$$12%xADxo_@R*=qgD85MK<$8r0@1T7_4&N@Urp#`Dz_`Uk|A`%y8M~GNu8s| zhix++_Y4VH(r(kOoB8=ws&Dk&nBQsrME%H7SC51}8ePga$TNDY$5#RFZti_Yw^W|n z81dTkrH;Bq=k^i@T1NkQ_v)?U?$WesSlZayQDQ1@-EZ*{ot}qmV{#pB_0#DKl#6bLG6tJytGYRO_9_(d{dT zRJ@V1y7Am+=ZWRBU)7cL*!Y9#!n($jwr@S^yZqs)b3{;yF1}B1Oz5O*7xq`wrN*CL ze)-V5?&b}L`~qIy>lV_|dvu$~mwsI*B6svO*NzJj?T?KzhMcJSZl^_SYgPZDt>?s; zHci(@d|u_rLD}D=M9hkR_51hDxm$HPE8|Cf=;mK#-e&E1?b07b;r3K5Bi9pkVhw^~b*-zb$W5TJNe$ySDiGa(sMzXx7l7p{GutZk%`V zV(8ZFi${KY`E0~wpBWv3Vh6SBS8Ln&@!Ot#)_AdDV6zw6w{JiC#*JYs*M#_9STTOQ z@3WP}G0z#{ zYss{LuC+_A8hdF^c4Eu43(?VYJ>IW;V^!)OB4PEkt7T2)V|u;6`JGXQT9fx(iHqBR z_`-@O0ygH&n0naq(~nm|FaEkcrT^Nz_qD1uMDH9G>eWQ)xrCr{`vs!t4edEa`N^)*+R{dbtkiL(*eYehI#3!RFmjCM)XZMXPownl3hmU_)aoe)&X;VHb^@Z;*Bc7X=|IW&TBRjot zvXi3Qe(dC|1xqfRy?m(kl`rOtTH|)jzS{q>eqZ0({!`mE@4hG+_*{zr>(>6azI|)W z*3w%CPOR5Zqp}Iej9SF&d#;s ziEWpUJ=W6e>)DGwXta80nCGh_-dxoD`#;(}^F#C9(_4<)^2emSn=c=kd98YM&|4?I zUBCaW@tK>3Mx|CMaVU6iV5Jowdi1OoI%j|V3qP)p?SB6Ih8KJ~RR6f^m!DqwywB`u zKUNOhU+3M!t44f3zwe+eagjeapK$Hiq(Re{{`JO@-JOq*TUudTgV?giho24psmt%v z#x%KHy~d8bPbR-oVbbhAgWkI8acI-*V^`{Rj%kv3Y*yNDTQ-K)=rLr*w<|APocFkC z^LOPYbO=}<5gYPDoy6DE>tM6rnZyOW!^LLFux{>u- zVE=kGD}I*OJpEW)&EHS#v_uWrKI_P%U$)v&YGnV%R(|_cxyR4{{Ke^$4S!AVHMH8V zmX9VMdF9R2_h0RKb>;=jCS=;BWv4Ya_YS-9=QqO>js-qHv|^o~=KpwQT}-8w@s~%u zcsiwZuN%LXKe@V!{d{Bj-7QOyUWEB zi`E}1b+Af{mTzv23w?KY#@;Iz*B(CQYZ*7Ib=jU9S51f>4T*v)^v)S&zJV^187 z9MiPsjL*Dg^oxA)%7$B;TE5)WqvEUyZ`NzMG`Uic<(K`_H&6TU%=rE<&QDzF_wCb> zKZw?QJV*Upd(DtjE!TJ~FYi8n#zT*7h&Sol`<}bC?ef&qX}cN*uc#P; zqvy+pLjYi|!Wpet3CnaWtY|Z9;U0GAt#yQ$(ME_1?QvwtAWUi^g!uVIAvU)a;`OI- zbo6i`eu=|T9nnmENq#Dvr+?z~Hp&%IWt57T#si)B5id+m8G>QR)`{N?wc(cy$ph_K z0`F1bqv*s26JKe`=)G_{lSO{9 zyn{TSDGldt-HR(D+_)}PI#T36VN~q9J$IHIeOfFKU(`9}fNQtUrNDt3b*LXXYvCnA zp6!)^@20Bj`@53YNRURUYrARO;3L zyGaAy5zks9x?yzz4^icD$*g;xTc@5yrXHZI9y(ey*4m(-4N1nh7y46S6_Jk3p9I3y zL%Q1Inv7#gGEo^ku!|><_Qr=sc^ntdbu}YRn5fn^Eio!dCRdMSZzQ;nsy$8>muE0# zq$@a6NwGT*N@@JJF+%?~Mw7pd(Nw^AA=1n|7T%oJ0_VcxR4I9y8HaGY03O8N%N&)& zQ{HKdv`Zonr*gv6Aq$79Cnn=yc1*qPV{4}}VGb@jW@cojnU%hlw1EQa5MkeqGpFG! zD|5Q=MHgn5WGykMqa_7(gd^2sr5GUdGKf+j+?<{mpQ7|JC*z#;46_Vp12de&bx4jj z$MOvKp4~bqy>Uo7&Z>8agx9^IcM^_ySNia16E%=8)U1x;p#fHN^BN4y4&nfQ?8Rgb zmJ@OXh5Aw+R?tD74rx0@ktZLNLL6uRV65;8L0El+b(g(64NS!o8hJ>oQXsy9_`yhV zSK^M$ zXi{{FS`6HW>BGqHQe;IMBIPhh@s(}NMxLxoALD$)M$_iy$W-om97c=~IDEzXK0qBV z)p8S=Oo*!{)OZC->CbzHlP+Fa-{AnfE)!D$98O`Dl1^(2`z!fO!_T=;e2IH3BcN|^wdH0+(>9d-> zUUoS#V4|(`++=CD8wQuq|pur)&~wPlfL{j zq2a2?fk8cqQ0YzUurw}Wh6EPU2;4rPUftEoSZ)43# z>Du9s?14Ds&&29&-#wy_(!6rW*K0P$?$8Rkd~OPgqxEGo0F3KdM74Z zQg8-jR5}jkdLjh}LZ+p2gvM7Q*hBe6J397cl3@_#_$Zx9g3-cq2WAJd#WO9dARyHCX%W6IG z0(W;=*2a!y%`r6wn(k0BVxgfX$>XY585GeWFp( zEe{!vf`-c@o2dEn_-6&Of~re2LZacvW27^nqT3&Fn+0r9@aF;6YJNqfQT6K>ks$No zLD#Bw9VhchM(T9C^6+SC^{8We-vP+2oh*9?Xz7Va!SdcqS))9j+;3y-1AV^mye61!T@tZ(N!=Guhjy4xqfL;Us=4}%NgCGV@?9!}ne<3{sW zhcMN@ww=Gm(};%-sL0MJXX_N`o^|Q#3ttQoGKTeD%3bbAg#XEWyw$!Pi+w|nSbBuW zviKu4N+VNS?`3N4ZifHK{2EMc7fX+OJwm8-X#Ntb)n8IlO5rKwD%K#}BeKkadq8o2 zGQT=gTSH`O-0LOE1@dHHd%D$oPlzE&IT8|=%@+m}=_scdVi4-+rb;f=Crrk0PRX3< zDCN|6ni}SqLrodWIkhHtP?gdV8!a)ayGywf>MVD{QT=@&bJEZs*#}fEBfqPCf?Udj z;8gR1t>5^e5A={dxrdzoM@t+U_cC>?lx2=QYsA!=wm*Vz^uVEF$h%KBoE7?#>kX%gwiD*@hEk8uy_{!Su)Bz#;xOk_0ICc zEahtkQfYEp%gde`_1JjkZj+E&t*{IncPQxxp)`&ysh~`L;!^|TaOB|FLmW$Q`%pe= zHE`#$(s0Bn;-K4QRb{okJf+mscry{S*|%R|CDo`cs_x0Js+o$Iw9-e(DLz}u#vQyP z->Cf{73s*8YMms3GuT2jSq5po9i zC-b{Hhj>Mj~M+W;}QwLQ1nfp;m%nm9``=Gj)*#&QMn zDGT7N?X)Wpr%!=6xdwYYu5?e9DxwOjNK2b4 zT-il5L6LY50<0*Z;4IKnWRC2_6p<80b#QMlwEj*MP&BLJt)fEpk2Ev)N=h(F-UWh9 zRjElo8{He5EIN)qP%~TI3rj!B-A*95{z$(SgzP1`r#R7$?#>h0(sLqj*1K`;%DrVrF zIe8jl^_GJ-2Mlr!c~Vu@)yYXmw09a*e6~0Fwk_H?Uizs@fAZgQz*1~=)Ht9KFlhaS zx$w0_mqIzB1xhx@^ep~E0IDNRD!DcrjTWl<>k!VGr|nON0Yg;<>C3jo*Ha{@sp(6R z!}hVqVrvas8%i;ScuZjn*940{eCe2nw^|U~IkpEew2R72ZqV191ZzSsa|7#Mmqbg7 zCSTN~Ii>-)@e}Q3JJ{rjI-paHQqW_}XcK$E%@;RRz0^r46#*(pR9dMnY16gBC%k<1 z!?eo{^~Ewn;W=wLI!?672Fb0h?gP_k8wP`9%jPsQCW$}naN7G#DV6d z!~}~4X0tRH#$Z!(u$=kbA)<;g4eu;1$+UB&Ww6o9+yAd?G3@JTVSt;>@HB z#(T#i<~ zQ8ulCP_WFDSaVujl4Y=8H%q+gFS`qvYK|!q^lM^5i0ODz>y+~h)loZF{chLx?G%hp zCu2*VXKa<{Wo+rEHJyf&O;_SJGDl7?y6Fn=JUIgu0XCH!2D`eQ+1{_4IV%yhti&e{ zB44N0hE-Y_Chhfgl(;nZ_e{LoAC!o9@z!2Lv0=tL4che6{W`pmiCP_UyCPxKmTi-a z_D)2@SncAdRJKSmrBRe0xh}<$p~PoKp|53_*|Zk6Hr{B&n_<3ZRiEEk#)>Cs)XT?R38tTy^Z3VsSV;8{L|U&XpK}4{HvWy zv#YU%eD1o1B(rk$gQLbW-}D5~w9m|tuQ|*aN>oy?Ux%cqXbU@#l4g$0jFF;9z5yYx zXMv-Y+EK~TiSe1djY*11$6Jp&eqB(N@km9%h1imFY3;LdZYMmc1=jrNqjI7~9Ya`I zjOSGZbsW64wH@NL94=j7oY3~J86cn)@P_kuQCwe~u>ayj3)GOq7bm!oKy}%?XkVOI z02bsIC+6asZTBUc5|Q*b7`|Dut8K;2#g#Uxb{u5D1o@s%|3aF=I7kow!rF1s!GD5-?0J_|6qfU$;No-8 zU49D*Isd2gO6oh?-Yzb$EV1X6q+;+2(iF-o@Gq>zA{RQhn4aUX^&Hp5SS1!&dbq*) zn=y>xCknP0{hj5Up@^KtBIle9b~&qGs|hUhYc(Yb$(cF>b9Rs`$oW5+SAKz9@qeRz znd0(Fq&=@ZRSaH1nnHO6{)O>M*sK4zTqz>wpwZ4b-#xDs{JLAAyn>wnQ+S2tgQ6mB zNbC}9BTfvc0DlSa0?@)tbA~T~Qw=IIRHA9>pxJ_RaZVXHv7-%%FIqT(3j&k_aJs^E zW)%Tk!^Ne{T+W~XsscEYKLn@_r~#l#Ukgwh!08Jt@}eG~KA-`B#+HTvPIfqTX$%Mj zGyyaP&}PeJ9L)ib09pVZ1+)aT0<;FS0fYhC0@?xE1Hu6v0389H0PNqffEWPR)_23T zJD>-kCm;gwIG`7xH=qxIbDbvveF1Fdrvd!{oOE$Gc@FSApg$lIFam%bhxr7oSj;!$ zISvpHNC0q(HvljYKoOG+NC8*?sel&%94*rU8GuZ{Ai!Wi7N9GDxQF683@{wf3XPtP zEA!(jIX%DtFaq2FeEr3x5qx{V2@2R0326Q~@Y}s(@;MhXB<9H2^gMwE(pNbpUk%^#Jt&4FJJ_hJX-2BS2$7 zD4+?TDWDnPVE~u*JOZEwOModY+|&Bb z_XG4P+HwDheLWQ&(-z{1+X;My59fwn=a|>M?T2ZO{Efh)l|dr?n?K5n7_8;v5aimBk|JyyW-b^aAF5}jY8cfoI>rkCROJJlmOuTenlat~>IM_40RKlfm{8N@MiFYn+$chpu-_s-nt4-H75Ez8Dy=$&* zAT;unQm4hPZ6I=iKKJ%|tU5a7+;G4Z*{)3>^6i1T@S06T?Su9DZ&;e_IylikkLvRSSpde>AJ7o~Qx}$M z2Pe8d#qatQzw1-{u21p1KE?0)6u;|J{H{;&yFSJ5`V{|v&8PTl%ej%icykn&OZkgG zW^-k_zevKAvIMU4Kjd;Kf3fL3M6`ZxpT-t`Zhs)sELfni z|5?i|Q7Pgjz{`MF0Ivc@1I7Tx0$u~W4j2a*510UW1MntbBH%5++kkfflK_(eQvh7Z zHVwe7;WGg50%ii(FtY$?IFSRG1DFeVA3(dnJOCO|d<2*e_!xjj6AJ;00E+?t0(=5k z0{9fL6tE1i9Pk<7bHEC~O28L@p8%@>s{v~OYXR#3xq$V6uK*hW8v&aDn*mz@TLE7K zz5#p-*ap}R*a6rH*ai3w@I7ERU=Ls~U>{&V;0M3~z(K%|fJ1=80IoMbg6mPh&wyiq z96#>0t@cEA(4LVP`RMdx6A@6+k=k>oCn6k2z9ybtzro%Jib4LVg{kk4m zz%fMi*U8!r^QtO2g<-_QR#)TGM|Em^{cU`Fu7!2|tg*lJ8<-W`MC1e)CaT%ae~>-} z{#1P083REQFVCr93B5>{p1jo9yPhsp?hLv^D`PiMHTf$c|4U*gPzi8LH9&pbsbPEy z#eFF(0Ide_mpO8uh)RLKtT#viS*JR^zFO}g=^5r^wctUxge?nTmyo;0pflOvU(9|JuJOGgbpVTbF%x zEPz-i0yvJ$2Qc?t0QM!0zpU+}07|@50FFy}0FFl-A4xZn`QXCwiMYA1Ef81kUt&*>CbZ0IbSP-kSg$JJ*d(eg;%R7+#DChj}^(2W*k?Bp9y9? z@f!p=U#)rEWh(yPHx-jB$jjtA_8pGUbvA=j-izR>>K1w1yB`G4e$`4I-mxiCZGAFYglvhV8Pu;Yp(V60Y7}g*9QlIXYVm} z;z>nUdwmcG&GrB8>jTnmcbYKjg%b%*AUI)geXYUuwFdUS{F`mS4b>F&b4vgG*Ba)d z&tih=IzAM&?m9jcmEbx)^q)CCG>Rr2*LNeF7q~A(rMQj{MJ2e74|N?M>N-A@--HN9 zZ-7<;lX*XB2gjqlr;S_lr_G%X&oIU-(jZUUyEMeRz8m5CZUnYls>l7hjt@N-AD9Y@qL#r53?9)}YF*3iaSnyEO>8swX7+(^Tf>cjWm zbbPYaAKz-zIr?g|ACA*}f6jO5uJ1;;z8it#CCLu1<3oqwvsSL-L&*w`g2N_&xJ-u5 zF`s0yaD3=lMEx&6J{0F-CT1k!^idoz8jCv%4wUUB4>MNJ^)<)hDBgH;ikSy)^0e1% z(5!u7UOi%l5?@{1D{tg>B-M`#dsW92s-K!x4?||64ANt%FJ-sjp&rJH>SiW+AEbVn z-V^?w71ca_aqml==kCuZeO~6mzq>!5lnaj?S>X2hq)H=ZP9ikoxL`pgP5q|{LFFj* zdA^Bf-24+~m_{c?sprXNWb(*rr8bX0<$<->%a#~puCL%EYuUCP+bM&hl5jF`9lwr= zS?1UV={RCo$uMVSAZljHKpggrqle8&N)*nRjfy9(XmiG3?nqF><*BuCi77m#mJ$7$ zhJ@4)2?Mme%z>w{^(F*Da-w z|L<>ea&2>QZF6yLb8&5Racy&PZF6yLb8&5R`JdV5!adR4=F;l8y1m7K{VLqvG6Dzm z@{3qs;(*>jp@{wXxWPjCV)~Mai*~hbE#;7IH4g3NB;9^n%iEaNySBAxwhZ;P~J#B>50@c-x`rf;KJi+_me>w&$H{-4?A zGMry4acy&PekbDE<|5{s$aSu5F0O4Zu5B)^Z7vW6L5kF6sD9~jua}Ga7MMQ3v$~Yn zrlP6qxa0;OgldYL>dVhx(NWc5i0gP%*YT*XZ7xwFMZ^k4EH${cxj-nmwz;4ZoFylv zrRvnhCY*Fqic%uGjz_g$#j8!{9Y-G5HWvt(43Q?xA_>1l97d=>>{uXp%($zKu=-*E zzE7!$c-J-;*ESc^Gzga7!nMsM1oc3t1E{Jlw<*{*4Mf`btLB zKr&OteaPo`J9m!m6Dz$7dj(Cbdot;T}`iWRe5GQo2Fe~#gc}E$*GwcW;_30 z9sSf3NX!m9R1y+nW3e1NJp;?|m2~q9nPzO?z|wrIr%p~xF)I;0dn;*{BxIcsm7$oU zViH{2TvB3&pn_f7TngoM*ESc|HWx5Pk=tCHU)Z=du{^j zia^RqWG{0%j;cw=8F-vXBH1}ZbreJ|&Ko$NWJ*6SMNwTgFNJOE$+h3slS({>yy{47 z62`pRNQ0Bu^0XN!acE92yybQnFrQpG!}w_k46yp^;jf@Py@gL6Pc<0{Fp6w3E$5I} z2mCsbFaLE0J*gGyMy$m+Q7E$XaDz#dwC1|OM>EFx;nX~n@XLe73pdLoli|)eXG0M= z3xjjc2D_Z^e9(QtoLRrjnS7*mGfm0k9{g4I>`%qvL4 z{^i_adiWQ{D_b+2TkL`JN)b74Jo1ofosMfi^X0$JaQD3O5VjFIa%rKwf}DA5(0?+o zMEq9uE!Rm`t}S5ozGxG-CiLLA*TPF2J9yZ#?T5u#o<2T4L6s|a?9|CaKPtP!oLOJ} zap12{>a1S*!%LS3pZNXxm~Oi>H_v|RyXDHuvzsBHo#?ylcr{F19*)@{0HNx5sW4J3Ury%j~o$^RYA0 zrVrfvMbG|GDdinCV1W0xcLx--r zcJqyT<)((mjO^sUWp#L9tx=b~KT23pp-t~*RyG191%4zo*~G%^*$ z6N;lmL+-kKv_Pe#%J%d=)$u7hQULApN65P#74jd-N6CVaKKi_ z23^A2_Q`tw_xDDQeX{R}{NpS9Rt1Gt?HaqUO6IX?t4lpc4iU8Rjr zZwqMfM5oUB!*9)XpV4qp@Zx17GYsYD&Chsl=3{58%vAz{CWm;xeY)|xmCVyi9PGB} z-Q?#sS9z}XkHe0fIr-zVhp$}AJb!WK(Aj?-&& z>Wzy#XCKYxm-Tg?VL2O(w|c&o*(uXAOz8dLJEFU=WDjBxo@+mkqDLShr=pZvzzpu_$lnbGva!C zHM2bT1cRD>)Y8D*3blv&gpITovk^S9k+_J4Ba$?7jz8>+SEQNOD>SD)Ja%P+B=r=;AN8vI;Z*%RfqO%L7j%n(m2 z+N^5X4ps`ektv`>;zB>Dn^vxf%8g@0Jf76zc z{WG6?;nf!3O>RG?#NIledOh^Eo22MiK;GVqW!smCF}(0&&ozG@KYsknGxhpJyjDN_ z=!vQQ_kHoNgi7mQa`PEhW^{cOeReJVqL4q0jg?=IZ5ns|!!D!NZW&W1u!PC9s>Z8d zE*-G9Zi5!{pU4|uF7(gdKldFmrPKDW-tD#hiGAVS^PlVTX!R*4-+X#>O0y?@>TVj@ zyiCdduQjclx2Jc{#6e;0^#@}j2MqY8y5+~uyT`a^R@C2`u(sPow?_`uTo&opKeP7B zO@A9X?6WC{zFuD;FLCLpQKLQ?cB0S0T4T-hp42 zR$b`3qDy*|&-ouG|I+N~fTl5-rcIVZpQgrEeWA;Y#36g?-?;gH^%Y;gJ^$%hZ9eqv zH#$G=&v(lY^q#w{S`BO8oQ96{dSc(@)ALnb``SqS*=bx!kzWn!Ztp0Xt!~F~QT8^xJuItH8Z&t1|{riXC z3oAGIuy@_o2j(V>eK?|2*SQ`bcho`SzC}-mHg7)vNdJ*HFD-s%MetKga-KXmJv2V$ z$lBrG&Fv7pe$$pQfAyQ5(`(Y}z1s#=?}W-pi><%F8$Dj}(|edIpFMYOP>ohuc}kxF zwcD1@oICy%$bjm;L4Q!hT<8`S=z+%FzRZ13s{n|#&eN98-1_|XuXRk{Lig_e^JmWN z-u_cfy}P@6MzB{4Q;%y^+Kjky;l#Hmch2tXpS`{8E75xNv8aIhO{%_Fsq^$Y5KGe= zcRKscw0ha?{VP-~r$nUaXY9{EH+Wq=_b(5uyKprkCwJ@CvHv>NviXTml$S4|WA*#& zv0B%=c(rS!v#h&$IWKR?i0?CRF1R>0Vebn=T2?Fb*wTKW>cZh>t@CeO99A#v_o`x4 zvy!`RK653jZ&s&HTlVbf6PP*V_=JaldhtwyZ);cGy?b}bSLgqAAuGK8q}bcSFRy3h z&tJV7zhmZiO-9x9Njd!GiFKm-hwZXI9n~kK*3)DCOd(HCtR52!8N9A$#1|v8FE==K z`gFflgBE}2)#Qhq^cu^q8r~RIGPlCkscTN}Ei)#k`RCz*p0Tgxo;|QE`K>uM_3bW| zuTbI4@4x#6ck1)f!oHuxeSCdSjet?*y0z?dY*KW!RUdCzI_{z&`ov?8*LoeSd$3#B zL)Rb%9vysc&-Q29GR3|L&vx}Vx#PWsuZ=u>Ho4r-vsw-P^S2!hLLwHr-@0`^|JJ6m z{h$3b`qh*h0Vf&fqUWGGR` zR4PQK$jrepJ7z^lQW{hmkUE59%veNdL@AjPktT^0MFZhm`y8I``+4r?`QG>a|Nh_a z|9#)R%XO}6Uwd48?X}lhdtG~lf9!R6R=BE7y>plnX}v0lh7815j*5=$5saJmloVH0 zjcrvk{Ce)&9wOHG!|< z66nkKrFA0FRvPU%B-*q8M4=dU?=wx#DjX}w$g?7%&y;&ldCG#My7jUq-ppZb#Y z-7vK~_oy5{4!|4fJhocWTsxWV6!nNPn(Iu`K(yO#gdGT1p566!2$p~n`x+iOYD0t5 z#!xkds?o$u_TZCf6-BgA+Gz6es5{^N9Nvw5{Wm*df; zPT{(2R%(S91*{H~e9QWxE^=Lj6szPOBYsUAz81%h%HGRSSM`+=R5XSr@iEX~24wT`bogB_XuXN$NNHrMkL2UMVFBK#h(L?SA=a5L&pE zAl7kZSaZCdQOSV#Ec9u$4a=&t#6wK0M+&2|THTqX(|o#+6N7p>`bjh2=rfN-`H9I!PdnI zFboqmzDn4j!ef;{WX8)5+VV0KBsqo^X^Qrrt`8%$UlB0fT12Ic57zH}R^o8@(+%M= zRmo)2*c)*pMZ30t2+~U)iA(j}vX-lvpMj0ZOq*)RZ8tD2r>@i4A7dcQ(t9(!)Oy*- z&s!B07H@C?w|)+H?%Z6Qy#43QSZS$aeV@RVHR~Idyf>Wbw^6)7)yidF`;> zD|R&o#pen!8EZIn%X{>+VB+giU4A+Dr~MrF=r1{bj#b5Ch{-MNpvt+k4*h29@O;U! z0@7aFvOXC6a{lD|u$MS&JUl?2R#FLW&ga4rQW&rry41__w{I`+O65(#Nx-S8{#1F2u<$V|dN1>iPbybmghj7d9kW;;~W$YFqr2p5>Z?@SL^`%_rk? z--ntQ#~G*&43)veOVK4`55S0M|(SlK)? zj*G7;Wdv5V+5vA1s_4eB5kLLfu`z!|8KUwkKK{%xjgL$x1Xvdr=b+rkBK;TH+g`4O z77pKdrz-fBsYXrYOd{|ne$x4Z%Y1_N2ii9HH}>)LZd9x2&L_RXNl$}X!;R$Bl&Af+?<_>ALL7AleL%E_x0wiiIW^D zR2@|@XLV8$+g>z|cUxP1c!%=VBFZ-VZNOC97vHvL$Xnh@3awNWh|^LQ?76G^?rft* zF;$b*Tkh3!&r5UPt~dB;n_k*fe4T%+R@ACAA#cGcdfIBkGFFS;8$oZrH!RG(d2mAh zS${x-;*-X=V}<<}ZtU(#E@dAiPWstf>2JYr_m1d#ygBYhDW=`4=`gR1aX_YzebeJ< zQ$0h`(c$7lvoLF{>UnZUb~r z!B02Si=Sn!$7FO}kH&;%UyXKn>bJ*&A^6)lI4OhXs@!i)TyQ!4s==Y9qgTWa7qB z)J5{1w|SU+x0`MfX}*x#;hWb~9*9?c#z!Ly%j48;K6h7}P(G7}T`&%oT)RHJF;(~Y z@~u`#lKmkCYuGu@Te)jZQUYep_oB()#^anvwWX+ksWG`(*|Ftxm_W_tt5uB4IJ|^T zJm$Yr5j8#9s%V&5SIz0NmNZmjLf`;;u_CTIyh7;Bbb)oG^6|6<03Il^>~}2-R2KOjBb<97&n~wvYh9KuO`wcbV#KbXl9f! z&+quU@AQOI)0b_JcC5Q6ChOF1;D+Z*AOatv7PQVHMS5KC%)KJrtVf4c0q!+OwbDPo zwyJbF-^4}+?g}kQx_)Rg49KrQg^JX6e_VpV*_yS~jetQGASZ25x8Gaf;3G+>oWUHT z>I`RD(s8;`#Ov(JpK|zwL7&*2L=oWq2q}V)KC;a6>$LIL68jBCDIOo%)``o|*kYt3 zx;59yIdw-yHl|QdAM{td(c(aQ!dJy|>mJp+49A<}#g3#7LOT-j&Q6@H5o4&9@=8j= zA)M+%3Zrr9W*;WGm#$`8dH2QFrKd#!oBj^eRAw9-J@t18h`Qh5=)xidJC6Y^l(-cZ zw<7OI#%;uA8c4)yavkHnTF28UGjW911(j(Bv$b8WN#T9Kif^CGzL=z1b;~&K$DY`t z%ZD1Bgp0TwWMK9|N`AahBhru(b?oRVBq`>OdyJjWEQ_No$duujRik>K|5JO9Vg9j3lar=D=7s~asy z9cw8xVuAj~<5*wlXqX%;i_3d@vdj*AGyk znT#|xHkLTt6j0c0HWt-gPR_e!yz7I2O7u{&B88CRgAJ)TGwhbv=z029)U@~3t%pwE z2pjKfY1tNC96I3nyt#m27Rn~!!R56Ejo1Y9DL=-{%*?sDxjT36SU&>o4Y02vyT+o* zt6Hk3x<0jrX0z@-kTR~JHx8hj!UNNnHVs1RH{fVv=4Ni)x&_25EIfP+m)%Uge%;20 zm2Y$Yg{qQg+@treACNgIH@Tj>Sevy_YwxOchq;&tWI{?bR`FZzbDMS>_DSY_Cx1-~ z-v*t>bLZGi{A$#n@vv^&0j)hsJY@ z+UxP$Z%<$@GtKW7XMu%;7x>VCo{leZZV!$>?}`<5b90loDJcpa*wcjH9!s1%gRdsU zKTp6lO7LL0yf_)M@zE4u6~48cmhpSYFm8Cm`mXN6}Ss-2&${2(&d=zg>PgH=0s9Bu-kZ=$=6Ryo|2hh z=DF8@bfPC?%|o_~SD%!3Dr{v~Xj~m3sY{TH>$&+nU+SHV=pb>}w>xUxJy?0oSKHu~ z#WKROtfeH|qcrzudx6%bVojS`u=KWDdh1zR*5%>wzY;M6z9b)*F)ubJc%*MQU3pcn z%pPa6HE&g)yV8+1UWQuRy112TQly8m}O~id(B?iz^_rH zOU@vZ`2%_-UrT%4c4*w3#FjQyBTWoApqX-j*}l)i&hB1+hwNCy@(52UldmF}Ns;`xYyuV6PH_Nha{jPM&GU#?;0R?es$ zb#dP+>vrdM7`wd^51PdP__AW9ko}?8>Zb(Mvor3Ac$Kl_p3L+}XC}2avoL(Vs2fs0 zDVAN)>ad+QL~3?uhz$6HjR@)wu$tnt#RvQa0tmCksrN!RT;sMP zp(eiaFp*Vh$8mdB(7bx|KF&PMDXJARGxb4ZPW_0r!k(W3ZP_D?45hdiB^_2f>-b3Z zX764ZuGc#y-CkXfU#$~01^VgfZ{Lm|KQ3MDp8n-82&2u+t2>9r_kjweX)J40{e7jz zIe8P+;#4c&aXT@6N8lHTtc;wdCdv|AA!~$$MOFw2J?(9L_wby$Q_8`fkGUL_ASH*| zoQ-opI+rb5_T<8bH!W2bqkV;LHLT2WK^=U&I_$-UGbt54EkRj3a0!|iy=HK9j1 z7`M#kiJb&j)0ktbTt-TD8{g3rC&qeYUloK4-Oup#nP zG~~ym%i-w_YHIF+PcG^d%Fo!}+E>Hg;8Yj!G_!xFH~UQGm~j2|g0xJyf=mA@7GFat zi0CgE(3+H%^ujy1F}CLOl4Hhtim6;oyd$*^Piv(4K1!ay7t_7-o6m^7(>qV!m$wFv zr2JwNRLUppsM)_T&nshkgGXL!PqBTx^XtUc0{eFk4Kei;+k?ek(cOnRuI!CIal=Jd z65l7wB3w3qdYdIC4d#~~?&HhMl!*&R{GRm2`k#(6IJ?$&LVLX}b!#va?+wC6cAlc$ zWw)6b6&`}FX58Ol0W`2tllKIRlbF~9MuZ%`yFJVfKKSE#q*aS`t%%6(>;4XxJ7T`h z7FZR&_48699>6u(%T1nnaA>r2%as3@b**6i zz?;u6YTlgcKBe&N705UxcazlAv#2fDdz`HUPg4$jn(^PR7sP0q&Ziyz$=)E%(4=QZ z)ZG0w>tUvKXAi92QO@&hwa^h+#gdt_j;%$EEwF^Ta(Nxlq;}(OhK=vSXNhKL25^)p zm<>hCHk)c%I{cdI+$lOaRJ7k<-H7eJhi4U!ynojD^TLMU)Q1UOr-~+H(Ml3}Ufsv~ zt~g(2;O9Xdk;e8b%-SK(&Xs@Rl#{Xt-Sw^Bg79QJ+Yb9d-jiE03+@jHXFYb<;7>Yr zv+2R9qPtbzt87e3GdGNd?c~mKp1gVYR-l+n1Cb) zyxn#)yELjGEH0wfb1c!DtgyoD&^Lwhy^$)hFLhdNay2wG@}4sFf1em`%b2nJ)xd9K zRlZ9OOLR=GJCx*cWAFEpJel~zRRv~FZJQ$|hIA)nGVTrGxszra*mE_>tLhJF3+IRK zzkNC3BcpLwbjz)oE-vhGV!=($59YH2;V-){H+b}@U+_QEK2opuDKtBxvAfXbp?P~| z%;&-SC!1zJ!kC0czqx;Grt3~U&q$a&C(&&_EZM3Rq(NB@;&(fp7cHf={UaI`PrJm6`MLrjX+B9DlN!Z#dF>~V))=1Ihigs?i z>__P{Uf1pSiao+NC8gT_tbQzJ2$IbYR&om-;P z>o2pf53j`YogwO9r*63Su>I!{yJgKZ-~9=H=a*Pc{?%0H_@O)X2RTMmSks$rFuIxC zv%~X7#qV2f*0E1-we>gsiS3Wl*VDU-mwYP};d%a~Qv4vbqug(|#ZZ0ZHmV-CprW07 z@UPmJ%C_YOJ`9x+x=QiIo7$ri0$?APRW2k~K2DD#V|UScgSoG=6_hOJE%Waq6SifF zwTm;Hkk_sAO*G$;`BosP5})$X@cf!<@0dSjy=)We?`#m5Z+WEkw4cc@I&Pz$(7F!c z*ILEn=@Oiql82VL=S-Th zwJ#VjEG+!Iw9qm^eDO&_O|EgXoD#7EgdP*#302mPkPl3ccjE$x=GdmH*}muP%k$<= z2rAj<^R@|k?Tjz*VXErgxmW02U*npWNA>lwYtCIv$d$XIeM*)IC>=;3#)R*Ku~@8Q z#H)h@S9Zo5-wFMWTcU(?ixrvpeZ2x?UMJ~MQz{t0<#X>^Ehx5qFM%Djsw=QH-NbxrzM$nY@tlAiK5@0;6HcgL+%l$bIs9gU4kSm!a6 ztb#NE#@x;Inr4UchVgG1dhv0fF{q~=U~bza125 zmp|+iHw$XN;&aRgW4fzxr%#`5N{*^A-_!2d(9XlbqNcXJc4oO6A2G#t@{*% zG;nuWCA%Vs@3gS}F^!_EVi$DwhMiUHDyeTHd%LDjLq$UWgo%D7T0*Bz)QOhD(W= zS-kp^^{Gkw4pyBndel(tuVwN=0uMyI>Z9Ea^h7e&ln}S{VY&f_c%<6z`)ioj+i^Q4 zq{UlL$&^YouGH-pVO)pz(`4X}g@p`M4n0#&W_2m060MnJH@`zi$5J-V?sCDqr-2Un zY;k8|ZP{d?2vt+=6g!s)_v>)L7Aw#s6!Rz$V}|ixybSCUwC#>*=@Tk|<5l%Z*RVVq z7pFnIVuVCvArSvl7$ho7S(|D+?c=^ZZ`#v>3(wZimUv zo!_UXa4*j|OOY=ffZe6B>DDS%)8G$mJ6Lrx8U|i>_-c>$ocSWwuFWvN=FG|K-N8cJ-WnFwdQI}=P!*B!ZrX7CP02X0& zYgU$+iGXZO;J$rzbeUEo-*=`<3tJyqQNvjN5 z-qJWFa_sb{9l?y*=7y8Z!rVuG%|f4V*4DYR`JB(J(4C*zl=J{{!A}Y6^WW_dI{K~_WXmr4YA)xX7YW=RzRI*jhJzoov~Wr$CWBfg*}sH*60#pfX1sd|^665i=X z8#DDs9{#Qa<8w!Bl3@JQEr#<2jEs$2JCl z*-*PMP|ep|L!rz6kjzi+SoEPj+(lQU>U?_uCf}xy28zJ>=dq|1x2tKXo;?I{k-o?B zxMCXx@m;JNB>7Gz?$U#~D5a()N3%NM3V#$Uq}gW@2h*Cb_eMU{tfo&md#;hFw=SvW zv<{?wUcsUcjaA)7=-J`F!l*fi{i>x2D#Lqa*-SZ4kggTJl1S(w#?bs0y4dSt^kUGu%(D(U)zSIn&m2y@OM*l_Jp#m?V z2-)!DRqUElf14seMgbi|7Hux)*sgTsb0WG=Ct)775c^LA2!Jx{xP zza{mo5p>S=6HUdBF2Yoya~x(u&8jv?RM0A5wT^a zc70y{DS-g0VXQk%-5PfmZ#m85TEh`~*Hh1P>Fgqv> zeRW1TXwji8*KTOJGB$}M;pNV?yxk_8m|%G@4+^_b5YpX-6jVPHGuW1mA?Uxvyu6q&im zaiF?O4SV*oHnfmMbj6C^DxYUy@AXZ4(<4S8G#Q{pYdWwDv{TtzVSfP=hj#bm%-33Q z)%-LtikKelK7O3z9NNT!wHA!rR)J`H#o=XL)+qnlCqr#^$-Y4Ib_`TW&GpE zkDouUUbRXi>+?6KPOsSo98~$Ve^#GuA z>D;jAO%4wamp!wODROz}ZR}{#@na&!#22xiW8!EFMTFsmj`yJD2^*)nxQII8yju~I z*~4sMpI%%|1)G*LgR$wupdV1Ey*B!)Z2UF5TBRThl6QC~dM^vCw0!ZP&Gn6!`AwjC z_gI@5+gsxm_f&hu4}o~!^p0`+kbrR4cV@fmY$e3x9!XG^n^|HFxUKEZ!ahl{!>Y#m zz2AY$xx^~mzAx_eG6x3FCl~!jSR)GAmyG*P!UQtd(k=UHk)~bc)8YzY3i0Q~eG%Dh z(Tf6n~CcRP8GwCs6TvK`tTkBxN#nh_J}p=XyF z9!AQJu|$e}AS;MIx-n;I(Tk4j0yyRzzko%v6KWR%HGj(513wBmbQ$Ry&{$#T8D31aR>Ev*Z8fntEARI6bx%zvaGnE`Txti{A|mzX5j z7Qusso(c?Ex&MOzR6D6*uK7M!t-%lDaHpLbVg@{$PLRr;$A;(N5&bsf0f25|9~b~t z_jmsdIM}cJ!s57hyefrvh}FVUcP>8Er&N1i55Fx!itWVMTWZ-SCz-|LkEHu{7gzzO zw>fk)bszR&FtjBZ9*2eAGPkCi z^S!<21q9?$%(4#pr!?~Pa$%97B|=0tTyJ#q6@Fy90lJQU3bBw`!?)LYFGu1x@vcUq zXaKdwZ*A|v_A6p1VPf;86N3kQvp|unnX+M4CH&9LzWJ^&U3*Rp@;xk#2C@UT=TekD zm+x?s(?SrDk~f$p@D0xHoe4G^(}y)vrR;!OTmn{p;HV*;1J-IRP}l0y}RynVWv zs*9w;7R@jzpSz`OY^<->Nzg%z3{Tso7bn?&$5KA!vxYMpo2}#d0Qp_CZU1qw@oV>I ztF(_Xbzmq?l)V$5q&ku>eKcKh;Y5WvRdWBMqM^sTbbupqXCH-~WYh_-WpP3qqRV}k z72YSU+O#hM)X1>gM%e}u!p)mEr>E~96XE6MwXm=N^HCig9iN_}t5T0wRj>w}`;u=P zVbRx%@z(f6_>z*Xz5kJFNJW{Q{hIkZWl5E%Zj_dO273-&mO~t(eYK%um$#lczIt;B z?=0Eb*%|D#*aQ^v?F1I?TN|fT)q$0@$4To^3ud2=g~|>+O6IvV?4{v7Ro-VVro3<| ziDg~XC(D!RYyF?r=?F%}#=_>>h)LIQzlaFL6@0V$$^`p$wXRNJs&Gzm&v1pa`y!FE zBY<5r+l04geZ=Hz*qe`UVgL>Eb08iw(_`ux*Frw*Vw28~QrUGbXl*8rp4u9kL_!UQ$pTCkob2r6a_7K6vlwDPKxq%3Y>7(2`i{k>@xY#Z?Ec1dKG5${ zU|XenV%g>&O<>jLuq|Do7Ytc54HM_b5)2lX06*Ac{ShE~gcFPgOkviCzgvk*KB+m> zU@1wPAQ)Ua+H6*+sr?x*!bSes2&`DV1tWbo&N#<8VKLQfUgtc*riv{a_)Cb;{ftK92SkW&eras|2yts@m zS`Gis9QQKneP;Nt9fqzJxJsF(rgqYzOQin&^5n-!@KIERWKdzTvwaY~D^4!E7&f=$|zd&t`tSa1n z({^}S&yHL^G5>1yyl(&DQ4_bG?Q9-x)O0)H@tF(pbK6KwoSS|Ofdx^=j=gtoay+p8 z3QJ1ETz^C6n84U8<(y|4f$j;7u(KO5P)j=Vw4Y-ja!bMcLg8I)>M!8ahMzqBVH+se zoa2^kYphf%dUjbn%d{oEKE%1YdO*C`(izCNDbrO6iS){N+u()yxx8~xB56Cfgv{-9 zna?SIgKWH%Kgj#kCcY}Vs`iD)j;zAeJZr!ZBAdwSeSBtigG0#Hp#5F0vMVf2GLMgi zv*u;aq*FD`EGrVbQn^X(>pUNiRA3y7EZggK_a@oCNp+kF7Cv6|Le*#Ox94^Hetx-oH=$}-zt=trr97f1HNE4Z`Yb4!A7u&-?<}Z)rLLh8JZyY5 zY+*k73bjaR<&`dE$G-P714WW6fS`Y$RlRL__oHwtHHYxY*M=s;KLsurM!s8HIP$Pa z>&yIY{|#zU7bpQjR?8DC*DX{T^{A<5I>n53T|MU%^L*|g>sOgGtHFeNOXt|!_m|f{ z)D;}6KK8_w^OSYw1apV@K>o_Hp!f$@F2(f8S}5&*)|^vE89Okg^`P$MhS7eiwg>;R zG^-~rT2u3%#A~8}JZRjuclK#LbUJ=x*vD(%?CUmP<HUGV$6wEF>)!NknF1Js!CqFLTdsQl%f3E4 zM#SGOxV{p;`q0ep)YT(1qLCy1+C+)d@I}GSy!;{~#VlLD?15F9!O>p2=`VyeNdyO0 zvdO^giIp2%2WyUF7q&fvFChY6Zc0;s)~1@(`i5N+r%}E8SZU%H-1`aFfZ0t7-Vw=QGTD zzLjbAbZc1O_NKfN-w8Kw@9me$J=(8#KKgisUw)UbQ<^+$06|{bd|mgKRhs=#AA8H# zMKs)VDf6RQlUnz_+x6D0(wzzjVc0a!+LDq3&}y>%^lI02-r^IXcODCsZ+%-Za%sJm zR)H=@a&nh@oUq?y5&8PU&G66Z=>ild7#V?Gc0Ou{te!Fs3*|qok{?a3th=o~)ZCV1 z#^NcPS82xj&Q_?($Rzs-n6ReekMA6|Ee;&$e&Q{4;&ync!%b-$s>%-b?lf54EF@Ns zMmg@E3!Pq{XV>(|Zik7db;b4M?pC+XZqaP8YSssqMP0p3;sk+#?V0D#PO<2$$%pcLBNlqAC9k+8{qsVsLB1NZw{)=!W z@p9iH`3wN^S(jz7$b`YRBYc(Oy}p2*z7$V@obi{LlT3*6t(Dw4*1O5;1Tu3fY^VZ3 zSJ#K_Pxez(B@!I44bzV|e$Lq=o(t8Ei%mRQ_oQyBV@JbGcj>LET;;j(m-FM#Zhcel z)(`h7&bc0}ywzyv^v+FJ+x+G~KAHbm1E2bduSVK89^48Mqj))0u@n(37D@M;u{u5M=8#zwUaE28Q_nSi=)5vr zfUn=8x?&5}fjlkjw0Ct~+xM}~;rUQ=mu25H*k=oN){FPlry) z`{v#ntTAx{HCxps_^#%{qc7>p+Qd?%8S1aZGJ-tA$x!d;1#-BlQ>N36z^3Tv9}`(K ztE2n)$Dahe2VCiqcMQq?{@tr0oMf)LQ?L%M+d6A-a+jsn zrOD-MZ_%~DS7u_|7|FGcsZ4Q2yzO`DKec|EKA>DT5$|Y}zkN(`lk%+}*``zX1?$^( zDn~sP@i!LAZ1_I7*PPG7s0r4H1D`dzd~Sl0{Ayj)ole+oy^sRxh`r+qz}Ka4fW#59 z-hvgu>T_gg@}S=h$3uf&*8^YOZY>x)ehc`F45u4l=3_7*7cfyf=2SzGat%8LBiI5$ zj?r<&Q(`GHSdFRx<*uI7wHpgYsl{y7zR%0aozhYnps39)v$=Qk&OO!}@;pj566d#c z;)GW<^Gc7h#>E4JDx2?O&IXp^u;=~*6e!yZAB05r6~0uwv2$y&=#l&P@4qXd z?Bul|o}0FL|NPFFFQ?H0o-X}k=2^qM^1>J8zAmE}VlMGr^!I`A{og7sg@%QV+VIZ5 zS-tS%@`+6|u!x6$dQs!`RGekG^z4r}C(gVBR?TT{)aKIu`JcvXb5yxx<>G{nxG5C) zk09LwO*-HM^^HN6f$-uZ(tYqfuN|SQyttC|U}CaLbu6;+i$-){uCbIkg3(;|B>H9! z$%5{H+J@CiwTrVl8w9N+y~ApYe2h3UG%OE&igtn^HP=B9o9UmXAfBEN?Kqq)PWE3+ zEemr#+e{p`wPOg3W51eJqqZAyY)?#`tCtC!4T5Eefws=jl(xKzS{%8raiu}p<@3+jMbw8?y-E!t$KQ__j!6< zUHL_?hvb5?Ao`kp^cgX`qHQleUiTm1F@AoV)Kyc0>px&;q@tUjBwH(Q!Y99#n_of4 zf5tAbZ(1qpCGd1sCW24aa z8tO5!*xD+$0?;B}s8VON_q^ZT{{1&SxUw$?=}(1;JpAl(;=_m4=o6P)(X;k7Fs+_) z9X!U>8w9-Ql#d~B=8I&U6IbF`@4aiPQRWFj?R{}ZVV-%Ym-L>7nC~}VTD1L%+C9~6*}lAXC1K-ra%jfG@D|JZSFc=h1uxlk{xZo|PK#RkETyWuz|<-?Gq)^| zD>zZy+x$$yQ;u{b`U&T%j2pc9aOF~%kVrwEy#S-wv5@r!!bz$>ILO_t%~F(!195zE zHcoA_SprsM1&aqlT3))(RHh0a7Yilmaiuz{YqFR!?XX~rdFMoMWt0}erAsyzvEb4r zsLWT^Mz&S-Swstzga`!%5{^ zX9u)lh=V1^K373{vvO2iBXvv2`ytL3+-O!f&u~W<;Uy3jJ~+Nrs$RJ zQ{9}b)&zX=(KUN)OX3Ph3Z#%@_V-$LS*Nf^+|WCawaS#uN4umgpGrOB)5JN)ls}%iP!eoxIqsV@Bt3OLFr2j$ zK2;HaVSJZOxo&8SMD~i?uUUli)Iw7`eu;=ixbc+CPePt$Q|E(V6D@3y)yMPV>={G3kH5pmUR5qGqP0HoP0KZw4cry^ zH?OCTJ{WMYzpkb;UcWFuJKC1H(n^2lAr0(D(kVyIli7R)o}Hup_1nWYMMsquSal4W zeZ&vG`gm)_l&^0&flnQJ5^1XIWFg$b#XY`TJq_=3M9i{8!EwLRwl?Pv9l076RFx#E zdlhSjUB`4mD4W*)v*yCKb&AVy`lfFYEW(L|x|)z0q~{z|Q)^ zx61<=M4Mvl2ajIV6;yWo=(;@At&{PBKV_GbZAgiN;(eph4L4Ln%E;3Le0!$~YOf3? zCA?czlV$Y4By#-Lk8k|}W76K))+P2=pES%AHk9*j6fVfaMV;cX&buedcQo)0MSqlS z=&a%%4Zl7~(f5ziE;~7>t6ArmrmE0}=SnS9bV^?jP z-d*ZhI#hi7F4LhNhat!AQ;+%sIn&v<+Uo1Yi^V)uHxB}}Pw)rCJ+EasX6ciEM@|Kd zqn5R`zZrs0b+QGsQk%G$x-GEsy6VOAlW!haCERx#wNzJYntZbG>q*(DlT4YkeMo=s zzNrYshCo;#nyO^jtt_x>pW=@3=j;s(%ymsIU}hP+=$D}XuC)jDghF#zs3PMHkzez6 z)z-)z<0tbN_(_bs!x>&xm}81BwpqD+2W8@NiWoaC9v3r~89o??$GLL1*PCeu97|bv zu>aSC(wJ%aW05iAK2E_rAv^X0i=w{gS2x7|e1B>GaGGc87Ke$2=zX%69c*S^&JDao zI){bXhK1QTpt&erm?>?TA8R<zfHn!dT!`rz~~rWu!REF1oD?8%duZxxRpn{Mr|Dx^;AN33M# z%b%hjT>Dyj_J7sf?^b-fb#C&+{vs#-*Wa(~pSdDkT~HQsWuXPQ$A?byyC}Ejr%MZ^ z#=dgS4{;VLs2g3)(~WO$X!MqCE>Wnsai7PXG|Sc%@AOkJX<9~VE$%hX`7HBWHzJKV z<3?~@cjPE$;nokcIUL@v-Z!Cpw~ZxRF!e#I#s_NqJ#FhvPNCL!*qHadE&S3YfL+4{ z$}y(qTqV5{Vqj2Bl)H|{+^_eWmDTxDcV=Qrh@;JGR6Id!YEEnVvfIIArd90P(0aC9 zrEevb+}oz; zsYoP<0VB#1XQ;5q4r=1&S8K277;TdhcZ1VpFxw1G4NCN!Ia0}2Rd z#NZFbZ^kf80BA6(m}L`^@XLsMF#dR`zS@LZAAC{ch~Q(V1%prryqaT{jh;AX!2Af_H zJkd|$N0S)??#RX9YU$$XiQE%~lS8}+Ms%k`CN318fG~ndfIG=Ic2 zm{}6muU92(A^W@d63i$8-XymWc6~1jIhbHT@(U;V`m$S){Q~?6TPQBU;7G&DpBzS_ z1d~G|k?R3rC_@w#2La7S)ILUx5PGBqdKUnXX#sTsp*%hO*_i;scS|o4VW}IIF2O!a zEv9G5=lt9C{NJwUF$8eSfc%EI!r_pvz*Zn{ogv^~1Nq%RYz<;HBEVA!@^gZGb`mf; z{~-@LCKCA?@q+Zon+e^g$sc`_1VfpqT;$J#41Xa|H}dT9JJuU&)5B;%tRb`k`3?<+ zEAk5RUu~-^v{M1&1L^-$TalMQ)RNzRRgh;A^o+cWxY6#H>P2PIy_g~oGUzx=H+ZJ^ z1No8(hbL4X>JQyt3+hE9BkILAXgTsHgZ$C_xu<^(d6W-9=0CNa4re;lD74ZMv{4%o zl>P`!G7y3+&h-o!3?fhvfHK%&G~ouKX!mI8hd{eGfSaXw`qD^`m;FQh5}N?&U`-{^ z)>XvX(f9_u9J*Uhpm{8yrC7YD(cR@x4sf^c7id0I7T+K;hJ|}9yrH#)3vxqiXt@{f zX}P%|H^jeRkb)eTKcvFKJr>@q_(MFc)WvvOPxzozzQs~kz&#|U)vy9eh5Pplk|_7$ z8(MC-|J(IE21DgE0PtJFjHSSQME-l|ScdSOJ|_?!)BSBCOh>bVK5y7z4w%wrvMC%s z>j(4&l|g{ngQx_`?GFFwK0ANo?C%;#P!^&kbnivJv@#HW%R(+xGpYyqWI}V6KJS9T zHxfIv70tW9s?!bXUMlBzJ&4Nv(Ni(TjoKcEU8XZB@#S@+p)j?D=0X{?Uu`?~x=xo7gdB z|8O+_x9j;V&Wk`~ep6O6%pry)ifgtQkA>eVM2nEDgj+$UQaGTnaQ}W`$3MTpi_<9Y z3Sbl=Ao`0(1nvC-jhp?qZzE`_m-0d*fHFgU%MlGN;6!|TJBovV*iH1F5mqvKKu`2l z01q!wz4Z5VR+#?uSMUFvFYGT%Luu&YDBc%>K{27svrc=+w&F4R3 z@_9&QL0i1hf=?HC=y;44Hzb^Z6&7GwIAAn#zDNK9;tLBNila0Aet^5%0RPYvoy|wn z{`Vrzjwxrf1gxVo^=qMorTKzp3la*pEtcR8GY1h7I{TyrEz9DxhpP(w(F5ue1ML=_ zpid7=Z|U(2@E$=P4wHww_X{wr5Kt@{TP*Dt`8HUJMI;A}&mT+qt5KzqDM*KE`Tc&0 zuyCQ`AfP%}=?#IqKaU40LC+=BPtk_t>*ht+MN%XMhmief-l3Q13q329(;IG()6759 z6EuTEU?k9}Ag7zif#h#7)eT}0>qTcT5k)`@5@K2ryR;;({k0HDUd&s`sDPg1 zWx$9NU>}3_j4pI=A!?5T0@rc|+AUoEOjQLT=FiTn$srytzP`bPwSOk6`J6u>sY!r; zfG==#WH$ojV&6sb1^OFC@{J?}1iA!;k_aII1b32aC|&y<971skA$gKX!R!WP4-c{% zIFdyv`~uuVeO)NzC=#f%J^jh>#>F4rko`!?!GSJrBmxPgCX@blJr6MF_-_y0KRLF} z=llr8ScJe>5GVn@Bm&u;p1y6DqA~}JwAugVTeT47;iu)RZ z2PMFd5F8pvqJ)uyN$v!<07_tJFuRq1Fp1<(OB2j)7!(R96G`wT`yf<+?7;+&01Ckm z#+w`n6$YcagV~J(++bhB&m{tuZFYop{sAEb&rlZ%j6Mm<2GoFdz>bC|i2&_^swl7l zg3yKJ%f8K@972Zdkis4A0{ny7|8_n9FSD0I2DsYW@g8CdI1vl>8)$~~RB)v;XiGvd0wVAK&hFF8&Zj8{7x(m`_x=P@gd5lt z05d=U2F#u8jyMFgaJvxn;p|ou7yn4;yeEYOT?Y_(z>Pa_17v@Kzsu(^5@ZS{(Lf*# z9azE$3`Pc?=ru0Ip_t#8gzOY(ifH&oiK0a? zA%%Daxc@8ImvDRu8J3`d)T&Fl6#%aYWIte5`~Vy@r2^{bc9$?0)OCanz}6s}4t9&s zz(7EtKXW)V9wqo+>)r}=&;z|!ND+%L9<_nx-}DM0>n>6-Fi%h*J=>BI2LcANTcL+P zPZXr&+C}mpQGjhG{lmaysk8HtRhM8H8Uh+w;G%%N`YWBc5@DB%4=LD-U=Zr*;!c}u zR!RgtB``k;b|EVfEJQZR@C927k1al1i zgut}(2__i3xCVe&5I~7kAZ!Dq1GsO4*-Z`!1>^%z)2ayY4e*5b7G}DprivRhl-4S- z8w3Cr{yPN_!HeV@NE;zAhuKV!UAtj}+8SuJOBmUmur%S7=&dBVLn~(9y86Zh zATJ&WBD$u=W>6`#B*fE&5~4&13{)bhuTxZCuf(nknO)pMXni+>mx=)%iWY$+fCr5d z0a-wms-j8*LOlukPzF?^K-eDYi@LZYG>}YkgGabGBe_E>fqO=fG9&qud;Jmao5g~NbA{Rm+CBW6imF!Cf5W3M><$rWvk3{iDdUz8O z8gusmCFrSNU??5EVN8sng`u>J!30$mS=BXKa74P|T1`}!E@3N71mNBOh%zBy6J%)e zTdz;+0U3z0ZeXAHgRx%iO~tu*|Hj*d28wz`A@k^l@$$Ppo-6cVj~zd}S> zA2b1)+d&j0=mHLsef>zm3V(rtzm1>}`aqvS2q7Wl(zn>AXt_&qgQlX2>RKfNqSa_; zY5`3m%x|$-9G-BnIN~rom~`|C?s-5x_dC||AF*P8h;{o%EFy19CD3U+DgiBaOR>L8 zKqR6L-bm7N)6GKB9Q|#fwnP#cG1nH;Ac8$;%LwqafGn>e#Ky+bes2!F!K_=ChQXwzVbUI0kv)&Hx#?*NPHXxlyusHh+c7{R)>*pZ@%8f>W8BO(T4Oa!DVvV>wU z5Nqr;u|=>O%WGmxG{J&hU$MpB6>E%%L}Lxgci%I6*acZ%#bzzv7-NIEF6RXYyzqNTOpmSTCz+gYG9XZi8R_Bxt2(aDI&2%y1CE+ z8cSo@wkhmt>Ekf}1=)sEv~^F3{NPF0i*016n70Z-rOI)FQt~`f0`g*!BRtF-b+NXT zX1PpTEzQ&Hd^E|9O-nK-F5;8wfTxUQvK@268yzeiCU&?+Fj7niaTQ!Rrt!EMrM$K^ zp32D}FLcnj_NX2@NSuI{>xq1EUk~rb;w`T9F-+EJm3G1%JFb4Pm#b}J;Ig?=LCYG5 z&04)4#cy~0y#W&N_>7 z^n$Fw=eJo_ZbDX$EH755pt5qrxRnuC09nC1dCCgx^OBW)@o!vKO!&O((i@i*`204@ z3R@XIzg3=2S!t5b7U?P!3bry9<9gXxR!~K-mC-~z&u1$G@8l^fu+K|Y7P#ilvHa_m z7fUztMwIUHxMsI9O!(ZWU2dOWRj*W`clx$4^@^e_7dvzw<1RrHZ4qGUV-<~3o2#9Q z@VxC3^qt4Dw314xlCf3@D@LgXE%>8H=g4wx9G{1toH8@M*G)SIFRxA|s&$`u{nu7s z`1JH`S8Y}Uzt5|*`J&yXeWj=LO^N8`n`B>oUv!;zEA6k_yJWW0I@YuZ?&)l0G1}_- zkvdkN7q|CX9IfmQy?E%(`uUAQx{dHkJzVyW&BJvUFKvDly4ingc(37s%l;@Anb7Kp zPwi8S_B@<&#<^_3kz1dB+skGC-!Y{Jl%7<%>WGg=yN%y4XrXshpW403cxCh)`e&&| zSqsYDojAiY_~zuTPm53ks@48V2^W&KeRw;oRo11CvqC5P|DJWJ_y^sy4uACfNdH@po(#Kn=T2*# zuD-Xox2u~QS=J^VYF)kGFB<}{UPu~}di2_o6&^p#bvTo8Ic@Hs_vW@AXXm}xyUx$e zL$`RGo%m(z66t3z=+aKF9b{d+cyXtS6}{WGEn<#CP~T$Zl!jo}8BRVsJ*8~c%aKeD~B?OvHv+Zsj=>iJW}DPw!M#Cyit$3B`+ zW_7dS)gRvb@#k^7r(LSMWbDX+?t_D?U(b^-WJN#O^S5iGKZ;bk@38kdc=}H@`O9fw z`X%SVu>mu;-Rbi56W7cGJ)gg0F}l+C8O^@QNbLMv*X3?#R`WBh${*{{<%jovukIP~ zWaxg~ic$SW)Oglwtwa4McSa=izH#WmMvwOErq!Q)JALuF$HRlKT{-vB=EdtE~erm!Ejgk3n3k~X5j z({|@4bhNf#@qtHt{R_9EeJ32hpgj5Q_ohp9u7^^Bem)afrH#|td#R(>4*S)|*}I5$ zrGy!mzsh=loYM^_s-6byAC;u)Ns0a}WBZQDzIM(>5-M1F?A(^Mz$UU?(4-b=R#&ZE zUBC0%{rp*0R;6mYY<6X}-9F7?Wa8sXEj|cxv~jWy+E-+Uec?id{l|K0Ki%c?%T(4K2-*(N`8r4p>w4TOM{Krm)22g-TXBx%Y=c#YS5;o|qc5Ahor<^*d!OW+u;7XQd z_tcDi=`dgAk^kCNsVzpdNw)5J#8G7fff`FH(8UFvj=u2;8n-Ti5YySbk9 zP?}6g++N+urSO2dla_>~W$cdWR(XBLCRZNfNHLE=Lx*~Rrqw;;{(X;q3HLAkHtLSg z?BesRBUg(xkLry{zuncX;n}kU);j%pA69i>uAOjguzX^s1nwThD7v*?G!d zA^Ml1+Un%c(s6{xC(pmC(*IejLfslWS-11~uwsLDaT&X^eSDYfnVD!=WA@2Mp`oWP+}qgQepkl4uP^8> zo_pkR|Hi?n-di)m{?+_+W~qDO^~0wfoZa&K{*x-lIy_b;9Pjbo*9VSH8@u3>Wu@DA z>^pP4M9}Q7CZDZ5rMcx7M~V#})U?R{%#Xg)_D^*Q*m(2C+%+AWZuDE3wQTw9J0okI zN_yISq)V6aZnc^PpE|fZWa*fVzr25SdHJ*-66Soh!trODYa>2gmNj$J*^zBOzu8u+IhcNP;i~WM-FbMv z*`uFVDm5k^NqXG7L(l!s4_<7!W&RMQUhxNE|2#i6{lN4s`%3TYH?2;~VHOFMz|Ov= z(3x(hEWatLlxz8La_8H>6k2y;U&CVS9?lv$F73y#RbQp)Hm}{3ysm5XlJUVkik_|W z;R)Y*OMNlgpuy+rjK7so zXVl}*7VOXrp(TeLV0!>*lYD0 z130dmKT{SXMEdB9OMc$sh&{(zXbNGxm}5K~$6?xYF}7S{Z9K9g-RAYbCgRU_Fx&sH z68~rpti$-#3OT=d=89>Lt6U5BI^Xd7+6_O7`fc!&T8FnP-P0bXcknE_KWWWUx6MOa zSdSSobxosR|ML3ebfaT)Jtyw{YgWdyQI{4xsTSlk{rZ9Jr>0Me-#s)ix>AYrE+-r+ zY+PQXOBIhrr|RB2w>`M?-Cyh9E8eEsw;g}^{?SihX zBIkD}r9Z0Eu1|xA^o23M?cL>3{lmfY4s5!2e_2<%Jx84vT6w)Ls7DeU2hA-AKN`DWfIdvkLoi!Xn(Sr)Z?;*=U| z+g)llEy-(Y>#4yDP7SE$;9bpo{K9()?eAY-v;Dl|*-A}3r|t{&n13wp#H0ILFWj=x zOwGZ1`{jUf4d0#jW6^m%1BN`>`FywMsD?$#FPuEJ zj_3OR6`XX}PR-pjXZi1wdJkC{vB~zp#{s96X2-1)uhiT!_?G9EA{)vUo;0s&hn)ep z+syuK>aVM93y)2y`)%0@t1JWEE-0DzJ{-2VVmpt+N!5S6b7hJD?S$Un?sZz$xY+1f zHOH6STJ5h5+fIJ^JniAvw_}dfciC9p6?55T8bO>mq+g~JrciL5g8gB|aV?5jmlC+P znW6zdiI4Kj5RIZ8rBQAS(#4D1t*kqnyLA z(k;v0E$PQ^mNj9YfZFCVS}O$aSp+x@ts1@yqp<^L%N_Bfm=*h0oPMxV((LB&sd7+I zH}H;5G|EmpC;dI`IOxfeB4+V1eO?lT5bzGll51s*hhBdX%RqA57o1Zkf8nFbW%#%! z0ug=d!pC7`hEL4P{jY}ao@D?s)XYhwph^rz4oK62^`wyMtgO4jN>*O>yk`MGA<}BJ zqO|b7g@t^B_W_mx6gS}}!77183FWA`6;}@;YcoXeK`ET!gSV}c6>R5Kl>In;)=$2(wo#vxE#;s1b2h*M?CSAa25_?s+W-&^_bEE7ytf%86fID*=oH4Zlx6XcakW!4mU?knQLJ3*g}aczKH*~D1FZwq z{SaIgsNW*dMC-?;s$2>uH%oAh7S^GO%@a|vTyKR(cv-){LGG9c$2t63Zrjz z=eko}6dXlI;;X`qnuAn>RB1w`Q@;z7b5$VKX`TzLUfAE`3zuDjKr1yMFerP^hPI|Y z4h&l@Z5URoaZgXMHfXRmT=H7U%^h0q8i}oCi&bNEflWbjF`61yRTVR=maiJtTpL=F z?cDL1&geCh|07at`A)HvoHs+U!Irc5>ITcdTt;RtBQuu~>xL-Qyu5~r`ZNajtVJmuydzNx$8%#*qe@;Ixp|31Eo7U*o)N5s zTZsScyum=5nz@W}YcP#W8~m5;byh0WnbeDgvLEJClbN}UkZPt)`}#%Ls*+ zy9=X4@qIa^9N9^v%ko-MS(1;26DJk4E-2V9XR`U;(hZGsm7X%yGD81GPUada2X4fe z#oQ8xnI$D&G_Qmm8)7UBD#ck9k)L`ZGppMAUpKSD=}fRT>s@BE6^Rb8nafDulu8z( z@n$X~GnbKE`flbjqT*06bRZ2^)~lU7F4aGdpXxK}CPRlrYO37TImfqYa=NV{Epyp& zES@H(TeU+(y~QV%_>(55J9V`DKe@|0L}~@8hJn6X&;wy|HaFOi%dr-BLKn z9u1TGbB#vIviW1cXC4Cf7|^}sVI_AuhQ?#hHZ~M?CVNPHf9zevHou5)oeslh`r)=5 zBWKvXY|^3pB3MVbn;FAbF<9Na$Sw$BMMG3?#B`px?}Gm_=^0&_5-!KlR*jSUJb zx))6gE4mkR58@yTvEBmRQQ4X^a~WYgb1+t$EE2Q5+n7{Fn=<8Z+R5Y+vt#(hjIc2w zjhrzulEx-lACp{0T72UFDwmNTcMrD;kB{nyacJ9a*ySrWj5o)z1A{_>n`8eo*be$P zhwv^E>Eh8;w)M%ILC z`Ba-6RO5C9$eb4@g3P>0+{Q}ccrGE01vs(A?WbnmB#u&;d6Puz*vy+mt`#GduXShh zhRp@87m`Na8Pi5d4V7%?2z{k)=O$lQn3zy*DaOml(M9fHaxqilIQ&fpXbzF{hzfPe z*}&SY1p`<&40zjO3Y+eDTn;C)!^EJu?0riX;!wQ}+2B~t={LEH1C_f*Y+xLbvsF5Y zr(swVsUB`2d8j$)&Ixg{gz=sSyzpzB1`ox5vLMUjFAN9n&;<{=P^ZSpPR21lz7vgS z@=%>15o23ydGCxr`Vk4g$<$6>WjQ$?BSI|WOMf^W5DvQtv3iqn<$H{uj5oQ~nSxw; zEx!~h;zcHBrYrg1Inf|p%k&^W9MdmGq$sZj4n1cr!_F_NlNNEn+QOha7{VZt8a#G{IUS9ZBTGGHC=UNI+Nd|*;;Iq%l~pT+{Ss-Xx}z%^L#L6? zxdqh1O7y!$N0R+_X(u|8!j9jPT}qWM;23RSI5NtwSZ1$!GxYzf(Sb0sH^pW-4Xa^C z88qDG?A!k*-ZhU`DL`z>cR?bOYM(P`%#>&(AWvwKSt-fVnW1XM#cWjzkEzV+j<2Xi zOlC9(q*E-p=7ZU$t^%>e5=ItIia!N`=b;$hq=4|fmOuouRxJ>8OVJ_ie;vgQb5|@p z6hUS_XTVf(W#Og*&>0mcPb`tdQYTPln0q zqp7g+938sM-$_)46kr^3Q&hfc@uJKOf~ctlfebrp;Yh5aFIeH@p+qMn?cOaS` zSnnoC!Ln(};s)CyLl%j%RO;wcLRP{uVY8pnCN-lNKLyn`R~CxgLXL;U zgOg7i6CVlkWxCJh41|2aLNfFxDG0F$B|CJV5ZjiKk-C9e$dFzRnlq{`5Cy$7i*cO# z_>H6!_c6Ffu84b8;`vIxL|rh_<&y{UWkis+wm9aK9Ov5j zXtHWbK5RpF=kkJq)en^+Fvfu%D1P&wOcK`0G)$5*CX$4mY&AYujEYsPz9E5NZ6Ew% zn&`*sa-~VKoeMs#Htb|msXyvVHkb^x54)VKDdkyb^|BjO+)F1L$!fjII*SdcFnrTT z)M#udN>_5voffvNQ&}_d3EKudUrhSOI!GRB!aAO3O|r?$`j;V+;ZrGswOC)~4S#sN zkQxd$-J``@S`d%2{%2Tpimbh4^Y!Ka@+p04C0Z3KEiW6l@(>mzEwZpK{)YfGtc^5) zf!EIZq2r>;xtiikO?h@0b#@a-PH(+TDar!eX~ZwpE`Yy8=Ys7m+2H`G za`wpGD!XR*L3ySzNU^W9kQ?7{Zz(>K)6E#Y8&!Q((*LHUJIi3;E~ljD)aY#nVO>2A zhKP!LQG1!v=&SHezkxhVKs0x3-CbSfNd>GMamKQLw+`BFI9Y&frLL~F4P9UU+%Fu& z$Jw)tS`eFpW*DarsFiQ_NPg9jV53RSy4s+4JzJ}nzi*oylayN8FpoMR#A+Lo z$EK@!B)WU}rC?!=YNxuRD;nWO_UaE<_W>n9dg+b<($JJF{1m=m4#A2vqxv> zVX1vYSvol^!1FEp2`$Z9#@H=OF~4f4$5{JtaD>AV)Ig?sm+kRQ)hFZLC~KoI_$d#F zGW~vjdrPbpa}KI#VbcY=*l^gF;WSfKD>lJXe-XD}oIyx^EeDjC8q^5nC}b_lwB#?w zRIO#Hrzm&S2I`o+BFf)ilP9v{PGS^0%~8-=!-WE&pZf5_w0LQmY6ZBAyzC zHmYa8A-+%bB2Q$am;>@eLt4`qw9jYK;-$kLYGcXJ!sKQ`X`~Q4>wi&*&Ai$#9;{~O z)i(2L$BFY1%)HuaE4?su1$COGx_aHHt^bi;pBVJi7cbbj>un6*X{xvRZ+W$&jadwP zac=e%dA0Elb@U5d$*|W#Mds$!UUT-1GhUkT`Mk@2%VH>7QIgS{x%mQLA$(^2qw*0a z($QPQtDO$U%jlVDGYZO%YG%@v?C)kKUC6aG3B0Hr?6V;6Dqp|Wn00x40rU#q$y2Yu zJ}4)4tTe7{XKPlklvSONjy`7QI8ulLyt`$RMf zDyUv@HI|i01&|fIlc%h}J}+6BRO(Ie_2-Zk6Fv{y^2X~R`204@$}PxB#`3Mwlt zjAdn70b~X5WnAzN4V|xW-sc*Ba z7_+%oL%%~kGlos@{G2c3W2{$Z6+o}xojmml?DNzsu5VngnDE(k@*CGH@cC_)71lwQ zdq3D)P`wghEGu&gAS-w$Pg#L|Ub0fRSMD6+*r?jVT>H|qsPfsiHR1DuNx6N_f7|xO zGY9hQGsEY%T~-28dOa?vtVA2j%7OyO3f{?6R$!l(tep3M<9fw}&(%K3?Q{NR5l6<@X;n|<(;_=FFo6?*R46M_ zMxNlsSZYvPJK$U~j%|+QE1IfGmA|UsSCS>?e3Ex^md8r`9f8~Zz&`y|)q%2?UG{~O z!ze`#3d3rZu><#NU%n*#wZQD;68P&0d-#j*Cn#&SoWl8G%sJ!p%(iJrft!l|ina0i zVe$+!#8#XEn2en2YGa5a&r|vk-%{tQ7r$jn;I`wL8o6R7 zBKNmP!6V1)NreKV9%m#Oxy}qwuJXiMsBt3~*KB#C(t~od7XJl3o3Jn$kyJcZBU02v zL|UIIctn^xjEGu-7?DmQNI7$f?QAz!Lp&HULpdszxWMPu}Z@;HC9DT#44db8W(U^(5h5zE--eC zRSyOzSFB3HCVM58evz{pCoWMk6`w>f*CpQDSrrQIfxCV=77;@Jx+TArn!u8eZ@yQTP}owJ z@KSp*+-ys+u&Dmn>-~vEtFSigbNaIY3mo&~0|k~oNWsnNgTrg_L9Ozo2F~e&<7@Fj zZO6(+g;hp?Q7Vl9OqHm`a4;PhYn zK&7E757h_bJaK+aX{DA7<2=Eqv$cqZKhV%r^ZspH;cy8(aMzQIE*EsPCc${LCYc)I z6<5RH9X1N6S&ZicEnuHl4?NQ?_n66RAK5eE^W~>#bf82S&bQD1Xbn%|&c|87@cC_) z6^_=phNjImpWbOcz0-Vpr}^|w^XZ-D(>u+lcbZS{eDkMwnon;upWgVIPH*gmHa1Uh zT#Zu~d3s}~C-U^hz0Y`hqgJuR_}jvp8g$@FD)z@UI4P~9^5;bj7_dt!%}#1Sju@@< zJ*`o`I;&B3oX77g8pZpnMv1wuQM8XZs3K2zqn{{q$l-vQqP>wzBtj#B;z z`~++SHUU2a7l9ODGq45N3UEL<71$1NN@^#t3)l_p0rmp>fc?O~0S@YNu=*gtq4>kV z5#T8BD{u@r4x9i^0-TRL4V(ea0_TA9zy;tr&Ro2N>t)~ykPci0t^wD98^BHA7VsNz z8~7c#1N;H}3ETxTfWLryzkLUwq-i@BgbNO6=h79MLC67pn`6)3*6MUND$wJzQMHX_bC~VPQNn zZeT=QxHhk|+>}yCLh^j5F8u;y`-!jS+Ln=F zx)=ntzc}_Yn^VYO?F`3Wf${z8`Mp5Pxt~yOoi2oHVW0@`3s4j&1{4Qu09$}*Vh5B2 znE6b92Y_KH4ZH)C0hm%u?y^8Rpgd3ks0dU7v_NH`3Q!fO22=;$1!@2_fm%Rqpbk(M zs0X+J^#NDF4R8lMfCfNA;631dpb^j*XaalycmhpH2=mPivT>)R98{h|Y2R;J)fgZreKu_Qkpcn8d@EOn>2mnR^s_vm5 zA^05%gaP3|1ke}g2Sft>fha%+L<64#F+eO32gCydfPugupd-NV55;vDFdS%sOi#d- z_P8~f|CE*2k^hX>tL8uRo$t|@%768_bY=cukQ6ZM|9bkxS>R)NLEHcTq5r8jse4uZ zZzJ?SbX$~87p?6U7}GB>hGjV~L#~b?iWYi}93x~;io%sNsL(#-nk6X{DUbMo@O zRa(Y?Xit1jHV)igQbS1>FRR0(3y=T!jRybGMMF{l82Dt27};1U86Ft(lCcUiJkgU| zu^uy68u0+JvNJqT32SU%Ys57ps!QLHP_XTR%`R54K~>2dV9m#x)LRz?Qe=?g1&fN; zLjMS^l-41!5n)kUzmWdmPK*l? #ODg)J~e^5v;kMr%)sSS99Vg`i7#O83s8oFB~ bc=WV>5pm$&6A!6=^~MUT}8hd literal 0 HcmV?d00001 diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java b/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java index f78e9df82..797f97cda 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestPictures.java @@ -387,9 +387,54 @@ public class TestPictures extends TestCase{ assertEquals(Picture.WMF, hslf.getPictures()[0].getType()); assertEquals(Picture.WMF, hslf.getPictures()[1].getType()); - // TODO: DISABLED: Pending bug #41176 - // Now test what happens when we use the SlideShow interface - //SlideShow ppt = new SlideShow(hslf); + SlideShow ppt = new SlideShow(hslf); + Slide[] slides = ppt.getSlides(); + PictureData[] pictures = ppt.getPictureData(); + assertEquals(12, slides.length); + assertEquals(2, pictures.length); + + Picture pict; + PictureData pdata; + + pict = (Picture)slides[0].getShapes()[1]; // 2nd object on 1st slide + pdata = pict.getPictureData(); + assertTrue(pdata instanceof WMF); + assertEquals(Picture.WMF, pdata.getType()); + + pict = (Picture)slides[0].getShapes()[2]; // 3rd object on 1st slide + pdata = pict.getPictureData(); + assertTrue(pdata instanceof WMF); + assertEquals(Picture.WMF, pdata.getType()); + } + + public void testZeroPictureLength() throws Exception { + HSLFSlideShow hslf = new HSLFSlideShow(new File(cwd, "PictureLengthZero.ppt").getPath()); + + // Should still have 2 real pictures + assertEquals(2, hslf.getPictures().length); + // Both are real pictures, both WMF + assertEquals(Picture.WMF, hslf.getPictures()[0].getType()); + assertEquals(Picture.WMF, hslf.getPictures()[1].getType()); + + // Now test what happens when we use the SlideShow interface + SlideShow ppt = new SlideShow(hslf); + Slide[] slides = ppt.getSlides(); + PictureData[] pictures = ppt.getPictureData(); + assertEquals(27, slides.length); + assertEquals(2, pictures.length); + + Picture pict; + PictureData pdata; + + pict = (Picture)slides[6].getShapes()[13]; + pdata = pict.getPictureData(); + assertTrue(pdata instanceof WMF); + assertEquals(Picture.WMF, pdata.getType()); + + pict = (Picture)slides[7].getShapes()[13]; + pdata = pict.getPictureData(); + assertTrue(pdata instanceof WMF); + assertEquals(Picture.WMF, pdata.getType()); } }