From 16f59f289bbfe0e9038355c889478443543f8457 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 6 Jul 2018 09:40:03 +0200 Subject: [PATCH] [platform] fixes symlink resolve in Windows file access helper (platform part, binaries, tests) --- bin/win/IdeaWin32.dll | Bin 73728 -> 74240 bytes bin/win/IdeaWin64.dll | Bin 86016 -> 86016 bytes .../openapi/util/io/FileSystemUtil.java | 36 ++++++++++++++---- .../util/io/FileAttributesReadingTest.java | 35 ++++++++++++++--- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/bin/win/IdeaWin32.dll b/bin/win/IdeaWin32.dll index 9085f6512b2d6281639c02a9201d1f5604989cd2..ae77ff9b23095ecabd1f7dd62d26072b5d26b626 100644 GIT binary patch delta 25266 zcmeIaeOOdg+xNfsFvy6bj5;VH;Gn3aSo8k=LJ3HQHU{#Ns90zdQjyLWmO9u#K?6l? zyR@>>(6aI>N-Zig6cQ{lDl1AWG^%Y-VG&W1^L)=eU|jd_zJJei9M8Xx$8qvm>s)KE zz4lt?I@inIV_BoPtXW)ZWd|O%&G(jNUDw{Mo9P>t6Sp+`&LDo`mcM-O3w+o24EVvK z*L*EPz69T+;GHiv``#7!r@#}pToTxEQQ!@?-t3~Xng8<7naVI3Z0HQ;8o6WH za9SrLiXX#D8RjKu9t>)4jpd@*#giD8WeQn_DHO3xBBdm=OmgVM@e@OxEE6-9dqp&T zQtjVR2d@hLZDbfJ`*3{pge%>vOWn}T+K)dn$V=Q`Y@B{wI)aUmg^*VvBmO0$tSbvw zxmQ7_xC(z{xcdZfkXtN@)+dJ|h&nK%z;WP+f5~*|y4A&Z+{~bANI(^taiILbQ=%K$ zN5t>38@TtyS12-|_q7HhavIAv%NYM(RjKuBA||FDrawC)$}2f}sA*Bn)$B)?LXH=S zoV+}oVf+KWW=TcBGjZh#P2)2EqCw3EyqomjEpPItHai2JeaX%oe(q?7$*!57knB%h3pUt2{r;AUDMc-Iv_j7$TT0ngA~S?Dtk)|RxKTjNNuS~?X~>jnXtyU zQDpYaMa~$?dAd7xL!5AjC`!rqj7LiEQAYL_o`ms#j%(*03uy{DUX|LDOzr=47{hpn zIv}F_ab&7E?H->Q@C?*k$1cg?kHHvx%`*SeLH|jAYTw-Vmeh!yPIRENM!eF=*CE-T z+KU_&jqa(=WS0W9aQd6(rVfT27dmL`PywkuniFfPqzh2IVabvuIe|!dBO~+oqIs^I zT_nopC!;3*4zh&P?ny;VX7*5)9NvZ$U$fYM(Z5I%@bq!NgvE0a5*3@oT`h@>i9s@k&kOil7mF%dL|nv9EDYOJZ3C_qHU4oydJDSvl>%Ux9$HS?=%1<~v~Y z$V|mIp~qLQ;4g)8xuX-=MsDk9b&Oz2qg-uh!JKS=St(2;(C+F$w62x=aCG$KHZq-2 zF8)6<)U`hnZjRsgcOZa@O;|Zpn{c|-cgv4SnamrmJ3 z@R~gd$imcI%e*N@*VNQ>Ah|mP@il&SjYY)uhhGu)GIBIXj&ZZb7`5yDLcx{}&#aI} z=g`fn1Rd(!`$r()M|aDI@8e#9>TtDVntS*scVF7#+}qf;|)c zEh~eTa}Jq@`-;hN@<0BGhl6oStDfYMv*NU8!m^>PuLrYw(XT}k7mc+{-iWqG=8DFM za`Lf7j0-I+DherLio#&pfygMK*LzVEdOf22Jd(4En3_X<(7437#D8*$GZ0C2^mlB% zNSbwXFd~aYOZX2d8GRt3UZxRCgC*cSM5PU1QgJ$>ybMVgU7Iuk-$luW=|h#v=66Cb zRL(Q5rgT(8KB8-?(xlz9d>6$V;@9}>`JSn3d|Ti=;9=($H%EN`N# zmdfE5vMWCJjOEUbRgT$?VOBJ0MU|3|<6_3$=AB0I>D~7s>k{AUL8c~kFdI{fG~ki& zIW#2Elv23iC{ya7dm`V9$Am8n=YOD4w`j0R;y=CuRis<_HcJ@yJX~1B1aw{Kn?Pie zV7i{DZ2oo1-y4WbgvQAqMl7#t)QaWaCd*i|I*;hLrt^oXE)o}WiIMTkry_r<)HlF- z?&hyW0-ilg(|A4&O~UWT^ha?%6$#zv`E$`|;z%Wmu8VQ7GX8KR!_;-420Rl%IX8y! zzu=PY5BdJ_6fafqF>)c0Ke>qE*JA;ahw{b*LQmnM^PT8Q{vPD)J^}6O-K4B&+;VSv z9fhcsd^TkQ#)l`APsFwSUntz~k)fF)`1!bwzZVMrc}^#rIV%UjrtT8ofXK5Vper4Z zO0}YTbiZY;!x)T3EI(%oS02?Xa!C^sqSvEFdA_}!gMk23Q_%$!WfU<^{+4L2Xu>ha znn_4TJ50ptCIZ$IaF3=!%TTL4!O^VbCAenDyx@%LI#EBt)&jat1-EvhVeSuDHK4^p zi$e20xFWlVJu+F$G-elx`1NQaOnPWiOus9dcvR_wiE2@FD96f|M5B?i{T}!T_tc_J z&BwWa^jlJ;>m&Hu09TzJKP_mz>1cVZK~8w)_-xKu=x?_ih8)E(TwA)r8;Hz6y5>Y3 zWri<%^r-)6lW!))7#a?NNF&mV*g7#xg+DQw`a;6j!tQ)FQlWFve=PqpQu17*QEh$& z67z)T+uD;rrZJh%feRC!PlV^Iy7Lr#GawQx(@nlJB7b%sw0`{gt2`> zEVf-hXq$kUtpesX13MoI9RU2POkIyaaa}K1gLWRIc*PkseoLqkVU}T;-IQ3@hsSFP zzxN{6q-Du{1O@1 zmIMaFq$GnQ}`*tXu1$h z=ff$wbxXbxbGwXgmd_8scJqqH@;66vzr;p+C$lnl*b@E&(zc`y!e#<|4r*5<<&$VM zLPrnh-%?x=aL>r$E71FS7F)g?*U7gA3W!plgYksr@DbFJ!-d4*s%+jvb)L&27m8vat?VkK2{)}mzT}&Kz-oGvw7Nv&|(l*$@uZG zj6AsACRziMKMlGS{{SB*l#_>i3x-|GEm#Bjd*N03-5RX)1^*Kue|Oo>%w)J3)8wXR&39bv`8k-Hna!Vs%CCz;R?X?ESh|GTezGY}xS)Rcf?tApviYZ= z3Fzd=R~1WF@ikC*abpVKi?HuxpemNq;k>J2No~30jxfbi&D=1%6;xz)AkvCD){$~| z)Rp9r++&^mHI#;Oq1YXBS(_Bpl45tt6js(7aa6f@nP;jHIif)CPPZJV%f&)Q9pzcM zf_xhPMr_cHjf>;LCQbJi{Ef}Edy0$5|2YkPi2H`a&jlh$mB&w-&M>Y-tomGX{NX=9 zN0Q}v=DXAe#LvaUaflOSltD@vHXwt~Cc#r6pL?o{Lj10wf~8m>im0J6DVxv2NXzDbL3!DH2yU9qe=LM02`I2RYQ_2H(cG_-mU|~6Hw;a}yJ6G_#JFn7 z#7!7EQ2q`R$_q~L5;Qa$QGNmyY6+#;p8UWAsj_F1s4F&0nTQHnDh4gYuOkZyeCF?{ zT7C*UG!f0MUO^v%nJBzN_R`3y-s*wJ|APg zsi@FZPfr_;NYNPn_&8huD_uTVlw73X{;i0cY(Ue&&TvL?ei?>fT{0fF$|mN{DGXyN z+91dj8y zByT;+U}03VpwDu2-B}F5bwA-@XQ9`Qi??1%p2^BKH3V&S$r7JUjvCM^?J+b0w#>rb z;T_7PIh~VP8JmJhJrL=pqII-ztgVYa74Rnlyfcw2*5t(IhDE4grHU&3(*0kk6!{E^i7$@nz7IDaLNcFS^b7u1o{fGyi zNjGMEv*8w7LZeW1vd%ng(3=8+@8NG1a?yS0z^S`S)99ps{0BdCb+b%t8TZw!$>TQR z$yKR?HK{%5g;Gv5djVU{Eu5`EUu>B@^ZEiLqYk4p`PB0;NVHiXvXUCBseANL5GPVA zRt_!Dc9+@Fu%Wb^cjNp>5@=uEv^+3#53Ydg*j>(zPn3_TM@(4Z?5-5z`!2_;Ic4JH zwEdUkwf~eh_VOy0$_%b&1CiU16{}aFv?b_^M!5Hi{*5zt_u09c#1t>ngky=oXTch| zq!g>8DqdE}1y%V-l|oQej#MQHs_K!dbU{TGyj)hUpxQP<<#iPcx*a2Qu5v-ObEImg zpxQN3RWGRaj8wG?s(m9>yr9}YQpGgWL)Hr_@6dzG1>M0B+3Fe)aV3)ea{W_;T!%;G zauo`y#*wNrLDf7`wM$U7j#M2KRNl6cx^_X=K2p^ss5(Zf`UKUfkt*@K^hjq$s^o&I zbEGOkP<4$|d6NYlKT?+^sCq`K3I$c~NL8tz>Kmb|8$iTWN&3qzwok}4I3m}|ItC+A zm?&ZX*dXi}HfCW)+=&>**{)$F&1AKR2#M9h+Uy)nKT?7_@JBF;>G)BK9nwrwXgd7W z1{~$>#FAm_ah}$J7M-9B!79ObDd2e*XEec$f97nQDcLAd(~mpwDYT*P$ivyp4EUXC z*?cYvp$y!wbLT{IlsZ5z$uq~4Ds>At<5Wo#WB;T0reN`K%e|Q1-|6L6B}I=Kpx^+v zHEG)D;E|H6(ZJOu)lRtZE$*;D;=f)Ra#ABz@@K#0Qs*5ljfTsH3fFmMrZ}L>n8j_7&kD^zLoes9x=ImI@-uv8K>K?; ztu`YMax1QyCZX9Ylh>c+Dz1vRP{em!vh`B$1k6_F;IpyNZl`(qd78Lw!Vc0C#lMP0 zYf&68!DQ_Uz`gTt_i$&giX6A?B5ok;1|s-JzT?Eo#GEc{bZB{~{hRLE9hS}C(}_&O z3kJ-ow9n_4q5P(zaNa_b1x>D$`<+}=9Vc0=2j|LFc3(@BYZsP5m|7p?e9Bqk22_{p zOwJMYP2fydXNh`axQDKumTdn9_VZdf)$0sxit_wvo6voeO;MhSPG0d(>YKEk&kJlQ z<;VP^WWM2kzIvMXo3GK>_iaNV@08)s+!iO_Ca87{#f~5rc&!pK{s4k>)_xx?yKDn! zJNH!6j(SAshP!c>z-yGmKY)yRc}1ggYo6MLcvY&TW=qUg??4}266+5`E#*EVGRL`yb71m z*5^6uS6X}qbop}b-TAXbUk`FW%{R^!cA4nYG@Q2N`CI6;uyN(`rs3tygrdLs4)O&p zp>po5E>^Va`$zP0wXjDWzgwuof)X5-eQ_xes2b%@6R)&{(vsdC>0c}fre9qG4{@AJ z(`R^-PS6CsJ28laAQS>Hx-pUadSo?=@FItwi>C9}(>Sx#s&|w_JfMny|lpnhp`F zJcG!A%PrUqaRnxMlyGv8%?CP=Dr}sp7P$PBSZz{7y@&_E=0fID(!ERi&`=)+_{Yz2 z&89h`<-c*grbVNvfbb=}zJp6MPfMe2Vk0Wfq3LkXyXoA3?m1svw+}7qpD(G~PxMhs z)E%ba$*M(NzCS}Z%hvc)u9L2*5-+Ns&An)zk`~FzuI}bh*R7XuY{P7pJy0Gu1%b-@ z6q8t4TK9KCb$urS*!M|16NQ+Kc71Lb`^L}d&arroa7(OGNzdNYJ;R6N|G2FegPAgU zD`n!xpTY4Ed0vK&ul+52^lw~_T}fo?km_EjTtaWA zMd9s%x{v$IlF3fv7F%bC8fSCst9N z#qSoL;J%Mic^l~91{X$@N1&N-@pGiW#bfDW>X-6!X-*%WtnU0!spOb(2mDHauNN9lBc?~C?H$Na4X-0M#R;0 zE!{}a^5G~l8P&3G&;=ELB3Ds}s}L8~NK>oH29D07JA5=Sw>NtU|HH@BW^yWpyrQdk zxQa)pirM^yNG>oXa^{zq(}bIOHoIgBmT{F*P57>09lCRh`T~)KoGIFF@1_%IXHA6! zj>Cx)hBiC^y?_?pBdz%)*zlS3kKYN47=E8LMDAr}PM8z+Ps@R^svoV3dtfz~xJI5; z)X_E>1242FDtAQ__HlSSNn^Hz#!U)s?Z}^YeZy(gGiEJA94BX8{5zOP=s03YCYJrl zsMYX6&1bZi-lU!(a!%rQt7puU3AaRh%WKkPmgDQ}&P;x=o2mi-t~weJIcs7XhL29T z3+gGXlpCX&dxbHYI?RfatL~#PHkZCjiR-=>rs`U%n;a$cSAWT^)F>n`&?>=|d>wbc zWP^?bPr<;oCmpR%kQEwqWSsn1GJ&@BWE+omG_fGq+Ti6rsdiK~L;oD)op+sGQFB^zLi4dE5cnR2U?*I}+~De8%*dAT zb8cf8tchqBRh%HXVM)N9Amz|a+qG)uo=HoXC(4i@SPsh+X3nlYo+fcEY6vP4sk3xs|LUEQ0>!xqL)QFPq ziuNC$d-Ui)sIL)kn&w@PmfN~m%9O#D@xnJvfhG7sbnMXUF`BsKnCyk88ZHdeW;PbKm^%6U zxbX`%OE-Rq*CE22IOap{@dfeH3{p(*{z%i<{W-V5w!@2O^Iht^>yFHv-NAPZo>;yN za|srOp8>%|p&t%VNJiuLyT$&K-65J2S1-Xaav(AtH^+fxz%#2zy37Md%eDUXyvG{BlhGcy6>m zy*t7NUBXX00Tn90D6?A$9h*kai>=JiyTCJ4nGWnfRt(i7Ih#)k*2Eo)=iKmqHXkG0 z_>~WY`_d|v&KH(9@w=e;=k4KM#PIg8`y5~SANrc09>){!aXslDs1k6%$@qF=GBu~? zkB%iP!`e5-MGiQkoIb_ToT!SWOq#}sXW&UXxgW2+lI`TCEG(Rm2(|A+w#r6NTbvB8;pW>6!y zgo=kW6N8#4ODMkZ5N3BasEM(JN{2MRyepKWu!PEnG+zZZ36@a#kmmiM#%Kvm6f|BZ z|3*+{wS*=OWqK~CNw$P4hcu4{H7S-*?U2S7)TCQNjYFC{gPIIWsC7uQk~BeU8+t>R z=O1MW?WG6Db0;I&iw755Li>hPR|dUnekwpHK8|z@|h{Wbqn- zx%^y#`TPul1^iTjh5ST;E`E%_Vm?G*34gJPp3%+!Ca{$67PyK37Nk17RtA&fKP7E& zllPtw6n0|XcZ6^?j!RLkG00o~Cf`b&~ zgdi=&`AQ*3OGAD$f082E zT1E|DGQOW{&q@?`!LxFMS<_7g!ep4u7otz{GWq2Me@o5k9y$>czN*~+PH;&J$BWr| zXtF+Wj>}nUo`SUimW&g8ykx8KtFLh80ACb={CQmU(iGI|qotZj6J$fRX#1xY&-ZcB z+3`1y!GaG9Dtw9Lk>fC%&bVR%k@=_+O2w_Bu)fBTUu5S{C0TTeP`lpCwR0Z%Z)$hj zS?FY-9Xm ziFNeHe-tzAQ|OW4rjAcI%KdIPWQwtR#rKdVoe_D4wifgXCfn718i$vWr-UlgA|v=V z+Bc9BQBj26&Hk@BBFZzNcJZe41d;HMYJFx8*h1z;Nz*@at}JU#AMe4cRrZOr`)#qjPtSc7CF z7lqK?n2Ly{sHMeyy~#$maxXyT0=jfAE%}-$R68UkK!u`X>9ax@UgYj%Zg+ANYvkTc zR(MCh^-o{Xk|~mZ9JVslt_lS4PKI7&j94D=xFe1$MEnyi==vtU1nX9mFDaVDKS&2f z{h=9{xkT=Gd=zr##-Wcw!thZ@5$nSKBN^M)qPGPjD+(FKk7~t!jBC9vMpW`G_x*LV zMec98h>Y1XC)$g?ofTGdyL;_iT1GP4!`+{;QPkGP{grVAPB{}6&5ocY3{E+}6l25t z=FG$cH!gaSUD~l4{oVOT3oT(hkw?#qeCI-Ze@fQP`E73?;ZaJh^|!o9slM~#by8nv zNJwiSp`xb{mnGEjlnxdX2cb(uAY(OmJ{ZIJ5K+>h6%%PFTnKqdD=1|hOFT$;1c>b`{%{`dm-OF$5%4cF|?V9n-I%}Un@ zHKWY6l?d;LoLa+u@0=!b-@=70NhGM2C}&a*l#vK1Ax20tBpu>}z6Gd?se|#?5Jzj3mQ74?KW1NC{3`8r8lSRWBf;b zXQyE!bM)*ezqo?lsYV=0k%)brc<062FJHtrzs4DJETWbW&XaSEs94Oskz>hfr+sKD zR>Yb>)#k4F&1dkb(Vy61?%*EMcAfA)ZB+#3)?ThxE?mQygym$bLTj- z`P%Pr!SF{gy9>DV+#9lK^A*t64<|MaA2Q?ofbm^q{Vnbgf9e_j7tV zJI+`FZt()NlJAmy(-p(nf?GN|tQRzRWPbF^C|8L266%?>?q`H&_u?b~#lXV&uivAG z7M}PmY@X;t16LG-eQOyKj?g)-31_=-D06V$dll7^&U>?6q~rhn5#o7u6drEVQ7D$L zqC%1XR-wdy+HgrtMuKE+t1tI#M99&pC&nDjJ8wokhSg`ohP4UwB0=slQbh)^NfXXN z{hKAez$FhpCptj(NY;1$b^NIaL{vTvT5RG+3SzQ`tS$sr$GX?$@ZI5PFglq`?Hsbn z{*(|g>rTw!yQnSUX?xLR*j?fqkVJ&=(Y2=w4l;_*e-#snlCOG|D=C)9*0?A0?_3AbtWHCigYG9_Fqv=3}CMMSGZ=KN&*9qQA8^Wlj2D-uyxzZ9;C`*n5W z$TAPF$r;=A;^kJ|`y!{f<++g=KDwnF6?@xt?MS8U*4dbUjJM{+wh1;AQEtNG@x^z(Gf7}Sk!J*2KV~)=1$2=;bSpFH6aEuYZU8sA%%+RsWRx!*jTG3x6vX08J=6 z**%J`>h8(rmw(Phti3|A8^@^RCOP|BWy%gJgy2687XX28gzHZ5qqTjnimK5~|A_u+X1;oO|KIy0cI%*Ps_Sws}@eG0(n&_yZ zH`n-H-S_7u%#@YE6#n4l%-z>uew;NlKgRuk=f{3bkN9TUFP312ymsjFv7XD<^B4DW z-xSBi(Sw8>MRU;0&EUxvE%>E$I`?)nH}$rq3qIdFTtk10|MTt?EZl1r4J-+MiGnK` ze3u0;7ZDs0PX0dR&+Gogf1FwibN2VaIh%X^wuPcko4AnMmtmK%@^;;r;G*9%j(=ef z_w?;HSqUaHdU+Pk_h3xzF5!A^k5h|<(%t9QpihL?STa`wnZsXi{#SSS4Ga+OP|8{F zh*~Oi+dclTk6sM*U-JDh?dT7v1-zWFav1i7kCVy57v7l7e>?ojaVS@RiV^KM2A|Vm z2<7<)y2tUm>bU3cn5VY|Z&L&edCJ~rP)uupzY|pwj$-js5lIfe2_sgRQJuTt7NjMq z%HS-3cSQX;{0_RI|3j+UpP^JcX${rxc#26(zs8Ve^UpoQZ7rEO_4t!Gwp}Cr1Nk+L zIP9xRlT@XNF}lz|M@tfQ+z}AiN?C727O8>FBp}P*ec=vNGyN5fw;o-46pp2+~ z1`X;TyNA25sU~4RG@8>PI!c*;{!vQNk#6hi-T+Q_LM~87WvL$pT)AZuyN^rVGF$Y* zqugL=IolAt(?MjXJ2eFFbXd4kJ(R%wX* zd?Edi*)@!;5;EpNMwS4%A95??1mp;WdytF1?>+OcFOZj$R|GbS@H;j-Qg(;=7s>GH z{b+tcHSKG=Wi<=NRK{6a?~?O6(oA1jW#kY055(OcArk%a%z>+_Vp;hE=XH)phMDK<=o8=J}KUVH7EDWLsPkF4@pEXKf_(|(0NhwZcbkNkm%L}+}>IPD?RX4 z?FCjOd75i~Bz>$CdsfCX9-eh~ubi97C5oz^;;!fRiZZ=iKc^CX`X+b9w&kpoyMJ58 z|KAQUaW6*Q|F{FB)c_dwB=wM(}^w0k+}-)QB?Ib|5?m zNqAP+0X9D?>;M7U0a6Z>Q3{knD(M2q4#+OZKFC|o3Om5yjZZ;w2GRpzo;&c!V{VpB zI1u*4d{+AR1~L@-30C%J(fb>?Ejw=zS)V)b@lG2ndU`K6{;A0mHkH5%gde&F zzuc^MA22_qVWnTLAHICmdT!&>DpArS-2SI;6FKU+sk{ElE{0)uFIeN-T*kO3*kD5V zT@%KU(&eUvv6f?=nTW=_HX&LwUtBcF$*&<#9(?`$HV$@<&kqUhp5`k5CqwEp+}ho9 z@wvtJ-T7?dfxg|}go!>X*prAWSIBOn^*>C?RQ(e8@V;y^vbSKFFJpcF2#RtQWuNW|?S+ z7P1&p1gV77LmD7$kWNSsc3x}WONZ-VDete++)t5#ecugc`xfg!$9hm!l#V9VTaTB_gp(A&u_D4o| zEw=-tqp4jWPPLeQAiZ>J0BM`u2+~jFT0v@pc95E&1EePC1hFAxcu)%Vg7`+A834zD zOgAILXLF1ML{oV&*n({p1yWlnKx(T*P!1|V9NaNRkUB0Iq&7?ksSTYVwP7wuZCC&b zZ3xC9UIJ2EmV(rlWuOAA1mkgkrWOHe%N^hha2J>W?gM9n_24Y90h|psf>(g8Aem4* zI2Y^ylfX`J9>{}NfxVy}8~_a<(}R;SKmwYm{bdN)!6?uHD!^ng5xg2yg7ZNmm;xq) zX<$0I0Ca-ag1O*AumHRcbb*V(67YJk6m)`RU^Z9@dUFt{Mc_to2e=yCMF}ANX83!@?wY(sn$*a3!tU7!T)1@Y@QMvi=Az(K^NpyVgm1nGZbys~i! zD4>V{lR&aMBRC$U;Wq)K;WrUXfnE+e!ALM4oCLbSD9{Z~0n5N>uo|2S?f_%JJzy+Y z55|Fqe}er@L!cE31$YXK2Rp&(U=KJ08~_tQ@z1acPzKHdW5C&9B6tO;1?Pat;9M{R zOagPkd0+{66}SmhgOy$cvJ>g5AFvIU;}6bn?V!U4w}I;patYXJJ<(0K;{?N z4k!h$2BX0FU;>x|TESE>9ZUngSqLmZpa8rUECv^XrQmg7IhX;~f{VeO;Pv1>&N^mr21?d+->7W$M0;9nK&;pi%Yr%35%SdJ$CpnG}r)!gUz7Si$FU9 z(cl@-0`edW*Eax)LGiCB0F;5F!5Aj?6ab?gVKD1(;okcYyoBFTn=z6|foH1-63^foH%E$<6Wzd8s1)Dgr@F}NQr z1y6wZ{#5n|SPQ-h?gZZj_kjn&gWzXiBiIhM^`rl&ghQ9q~uOGvE?13i)W9@`&F+>puoHng{eju?|!qt^%1q zgKKLS;$}pph~G=;C}2EDt0o5+1$`Bm2xbzYSA$x_X-(dU{4>F1#BTu`5KjOz5MM+0 z&qd%tkQRz_!9v7u14}?3ScU>=hq?*z`$&(t1*}B89E?I-32sCDNpKf<7q}nvfDPbM zFcIZX0Gkp27uXJZvk*9gz;;lH3==^f@ft841?#~+#J7M(q{~6(uiyeQ8SzL&rHJQ% zQQ!_R0jvhK;L~6VxDQN6{z+gK;<=!+8{>a60tHayfwV%kg2jkeP#k;?EC)A$wct*$ z00m6}cOt$F+=uvdBI1SMLGTFJ3^swMzM9O2p$p z$skUAKqK;NK{?`2fj1^0a1R3Q$T%BJLHt(G3ElzbgCSrscn;hI)`FGbZg3m;D!2=L z0o)I!fenKPiaw4L9jHE~ka4ec7jUwljH0YEZsAY2M|a}LgvuQL*J!}~;2acdAC8~I zb^a8^e#ZUz(^SdraquY+?#xdyvXq&O44+#E=prY=luveW)<4Q7ggM2}Q4-zU;6%*T z{v0L#eO~Z-(RCK?$DiXwd+h=`uHlM)i4$k02&qw{HeL&py_S;1*DV~<6icly-aRQ0lym!X3kK zJb~wly7A+;u#13DStI`q|G$4u{PKfEf_O+05jR58A@vxAy%>4BFq+z<7-j`@PeQ(g zpv`Aph-1fA<39u({&xenku)u6AdvTJKI>x9*O0Tu0wc2a11h zWI6jETF(6YbelaSStsikm=QQ{li#Y=C$>(<)~nU96CZ&)2H{Z=YH z)4lH2+i%I*Sh6~Y;qLrnGWX0MF$dcJ7+_!ht5>wWcN8o3&POjczl)_Eqz%#zIR)u} zoPl&gct|f~03tq)2@VnkNq{6mk|0Wm7Gi{0A<2*wNIE0~;)G;D@*yrr2?Y7QvQh-f zAeE3>$WF)}NIm2*q!H2#X@_({hV8Bw;QmqGQ9u$QMo2m&7g7uj9IH{=XCN(7$B7 zuTmoa|0GlAjr0g{I?(Kg|*%@s1_V}^v>mh1p^!C$Z*(*X-3?|F%q2t*5 zS>yJaaqP<>dL%g_*m=RE*Kdnpt3|Yzre((c%2!lPstc+K>RNT3`YrV*>f1EiHLqx5 zvXXwcf4Ys4vq$q<=ww zSRZD%({Rvmr}1Uum&WgmX45KDrRh!6XC|k)(Q@3R#2Ost;73sJ>8rqxw$Ot@>5b&^`EPF7#5UaZbiuTZP*#~?AvjnT%LMvc*GOfzO1ml+F;cN#Ys?>AN(A2U9M z7Wm%yvynAPP2)}RrgW{-KB`33Vq^PA>(&Aj<1 z^PlER=2*)jOPS?S%M+GQEZQ}ES zL~T$nSKq1Lq^?nO==&Gduc#Z<@2T6>->A>4e^IlVF`Dt3B#l**s#&C2ttr)P(Ufca znr)iLG*4@u)9ly0s(DlMj^2ly3Oho)2Wou*s!n`S_BNi#}2Mmt_RMH{D0&?aeB zT7%Z1P0=pY-k{CVF4wNs7HPdD+EVRitxxOM)@uKyeM(!W-KTv;`c)>aNu3br#*#x@&cdby>Q6-74KJx;u1kbmYCd z`*k(CM|F?ucIo!%{;fNpdrQ}-JFYva`$X5FJFEL%*Q4vx{iTz5^^^3muw;!sSAUzn z3buP*e@P!{h&Jd9X2UAO7DI<&t#Q5a0pmX7kH&11+qB*EyXm4S);!O=(CjqdXf84P z%#WF$F~4Mf!`x{eZ@I#fW68H{wfxJn)AEO9ku}U_w*73=+85e=_V4VM>=BOnj)jf_ zN0H;Gqt)U4(D9k$f`dthh0{n^hASs4OA4ovSr#U0P22o|e%~)Ya)e*Im+G3&VX&e^URoJ{FJRFf23N1moRc z*kpLv@QmRl!y&_A81Gp_gmJnTw%TvJXdG*rYjT)UO~0D{Fb$d}n)A&!o7b98eYSo@Gh0s4ep?9?Ly2$!g0s%j1@3EiYQ?Er%>eEaR<{tV^voT5q$XpAXKg+9iH>;=v*TJvren3k?YPHL?Rea=*Wo?rIO6D{@$JM09f(v; zSI$*luiT{kQ8ikvP+z5fR=r={07DFeVg05F*G9sGp4Yw#r*umDn^vNmpqs1H>8^o$ zx=rWRJ&ZOuq-)WAq3hQDt&7mdqia+3h58NpO8w*d{rYRn&zWaiCRv}ies8_Sw$W?* z#D3b|X%{;tI`obOjzx|<$E}V#99tX}jz=9&ICeXpcf9O4z$~Tn~)i{+>wF$%Qr0R_7oGMP;r0!P#sotw?f;oSy z?bh~c`?Levc%65FZndshR|2ao)os$1>B@DLx{qO_XLOyqF5N=?Qhka3F8wAr)^hz` z{fBziATdY{GK1U@Wr#5-3<-wY4Q@jz`nJq4%Vai9FdNPD&8y7~W~t>)%Vx{(mI!N< z)ofj6y~$c-{g?F#Jo)F=v(_K17h#$!y>PetZSUE>v7NW2+r9S3?C;pGalGbWO0a{( z)9ICNwAX2K;5Re$|I$CLZ_&paa^VeMGQMY& zn-qeND=|G{dd&2l=}(i*oMvt}e+gT9%5usQW1VYVXk8As?|s4AZe3`*-}bPr-p1I+ z+h^M6+LiV*_A+YXGVGy%V&yvJ2IW1L%!~)i>(T8GbZ8VoES8%}30~%^#c3ns2j|TaI`w zY1U^Q4Ro_wOfW!_Myb(ijPQ5KniNgCCPU-YWNC6W7ULtvPmK?mopg+_E7&@@%A1wP zRTI?~OfA1_Cc?*Qv=(hL3^ZMPr*^yc5ZqWJ99gTjP1_E0?a)q#+e*?Yby~Qly>Ln1 z7G0aJU3W_NyKb6(37k;Az5v$h(ifxO-TEW?W__!^P2a9hGxnRe+m_mIw{NyTW&g~s zanNwVK8Cr&^sMC-%Tdd3Xx8agC>n*q#6+oLFh?f95Vb0!DoL$WD@+NdL{pNf&{PaZ zw#ig(s@}eKDm%l=v}3u3E3>Tm)s*)-%>F zYmc?hI%pN!q&B%N#+G19vT1ErTZ%2imSxMg721kzZrdhXxvko^&9)Ph`F`6$+hJR? zt<84IcE;9a>#_CO25n-y)GoKj*c0qYUc1(AwWruK>{<4Fdm-jBH|DZ(d$oO=eW!ho zeZT#n{jj~+-ex}q%jm)k*JmHZkd->*ju=ORBgvt4SRE;j3`dqD-%;o&hJ)GUD2I#L z=Gf`jxxP0@)tQbYsTD^Q zOO>xGR28e-@B-zkYSlK?PSqaOe$_$MVO6uLO?3)>p-a`H>QfD>#1U$#T7G$*VpVVd zcnW)^cTg?XNHuazj3xoouNDTG0%Oe5+aC*!kk;LZGfq^!c04~ zomyVo>xF+}gy}X)r-0Qebw*vXE?wuuDzHH3g3Bs}yQUIc|Y`v}l_S_0%?tts! zb-h?eF~UkQO0Uo->Xmw-7y7rmZmb4t=Md z*L!>Q19}GDP6kh>FeDn32BRU_kZy3o%@hcWu~PWFN<*z-hhdjtpP}B+U}!Y78rm^s zcN%y@uVKKz7$ruTG0LbgCK{DSqcPc-Zgd)Ru|#tjON^z)GGnE&*0{sC3)6eOvBB7A zY&EtUJB*!1-fQeN4j37e#3VCC!Jj3XlqRDo*_3W_nsQAACYPziRB9^2y0+G|!?eq^ z&s1+}Fg2Q5P3@)*Q>TeH^_m7uj9FrqnWM}Kb0S=i(VT2f$EqRMTwr!#xE@ySLC@h7qvO-fHLV5=WvV9hU8KRKlM3Vd22ThH1$_2VOFz zQt4EdV69iLY==?yDoM#Q^y|I>^`M&3h&2+}k_^@q1$$D!q7q?K|GlHj*A&3QTwcM* z+%U6EFtl=*S~ZMq8_aDd3~oOR?jTI=FpRDlX4eM8I|b7_gY{pRhS&7K0Q+EqgD^rd z%uotLl*1HbV2lYc$0Qh}7A9#O@|GDe%q*B@zP4PuO}j^XP`jjA+ch*z4r)_OMza-- zmxAWYKm%r>3G;KN=U6|1P^JfG_xF!uRA-{*N=ujkLlUe~;@ zbDeXabMAAWbDbaeO=Tw}Wo?pLt7vGyZMo;pC)~Pu!_jw+%hKnr+-X60>2vSinJDn` zoh!ga)m3*Yg>?Z`S+jfVG^5(|=Ia4_2XoK7g zY37%TqYcT+pvqC+RPZun!oOrBUb=n9_B&uR1>*-*;X*(ezegNBMKKvFD#c9!ryhMy ze5+``O8U6uJ<$XF`;zOGYY^q_@<(L1mF<>uzROjq&08a;rMA*feMGsBR|K0qA6>1H zOsSEiiYYHv7{+nF5$_2}g}-Fl=1tnR4Zc;Q+S9C`?B8ze@THz``b(OUo!RUrDaU2i zEKhXStPnY2uaT^DG98TG6Usu)h3v$IL4{mlXd##Fk5sgAa^H~ms^6VgliKCX@<&Qw zsc7R*1>Ymikn-k`Y)`*ZB=?mypw=1L{vKawmS4{V)3Gs=zvP%N)L+u#*AEKzmTUGl zvY+tlhyKHky8AkC7pFHc7b-?K&^`Wdy>HMvD9gyo_U)GXOJv!;P>-*y7OjAihqPyX zp&79H$_~JS%2cI}R$SNNV$;NLPE$iz_a8eyX@o5*BDL6tef~ z2okhVM|hpuHDXmSJ%JXeTtsSnRq9AkN6^WjwyM z4r@-yl_qTKSKpkugz1^OwYCu_ZzQlFiz-O@W8~9WM?`6ur(b z3yT%S@TWATc_MuLI4yc@qqq$L^4Zq&UUtkGb=nK`J&F~+m zoI5KT@JnOWSJsS&Qz)mtHdJ-IiHf}tQEo(K2f}L(#naQOxruvYh#o~vFQNy65Z>w& zZMBH`eUq*aeF-UAhTHj9Cz(9=`Gkxuy(RHMZO*a6sstPATs9&!T~&opN}GF6pfWWT zN06JBAqXS8hOZ9)q?6}At$;f+y9X-bUAu!avrKHn8q&lAE!p}_#>6V z6OE|&_f@~&@)X^rJ1S$WBB;XEixa94D3ARHC7{g$S@ga=ZGJ`z!$K?4)x-pQ&iQ>ijvZ%xG^L{&Xi zk6$!TBt1Voxrp*vNb3xgeNjk54m6@X1ZH1N7gGD$=fhDq*yzVSb??`xQN!L#^czvp zhbJI7o7i8y4KgQhgSN-TLJ_a?_f4MRp_=-7_g;}8=j{nKvW>WTZY_J73K}Apcfnm$ z$Yo^tkJE+z$Uypvv+gYK70J%ITfO$Yl9;XDJ>tBQNI>E!nF565m4pf-eL$>j^F2ZL zzqmJ}MzX@`3t#8kTa7~Sz(#5+Qit(GEJN+95>-pn4QItoL8e`Sh&(s_)C!s(l;RIHf4GUaa1eH5NMu#bG&ZYk$p;xCaFa(=xe zP9*n7CLnu^r>L<}JLHdyhsDWO z?)iaGb_$QSDvG@$z}LBX!+;`-&8GzHPq1}zc*Y$3(8dnSWa?uj;-5RtKR5}skh=PQ z;pA*lEE*zJ<{c50Jjg!8CCE6`qis9C0xiS}F|5hJ-bc*9d3HPojUTB(y&A0!k(@m? zgX0=U&<)rpLdpk1*-KCcK4hn+(Uql2_OD1mnNi5G*k6K_g5)Pb# zb<06A!u>v!wycp<@0L-{Yty0axRPKtf}3LRp&GstIp&54HXRqTWR%91@$bmzdm^EB z3>14u#3h^j`qJxAsXw54RNw|zD|&aKi2V``L#}U#+|nhCYD|bi!u^yGDcwNRKT?PLtP1h2miPx|X0cDu+j7r$;41G(5OoLk7c3WYwQb2vhGxlyI~BT%OoZCD z;;#KAa?E(>ISkVgx~GghZlTP@T}8V;fn^ge^_9qQGcvQDZaAX6pAyn-UlqB7y;sF0 zdf#L@|Mqp3gr_fH+>TW3?nhKf0{TRJ2G$Ky_Au<2+@XDr`W=+>bEhs5$$970RPh(l z{F76aV%a4A^{MgV|snf-}82;kacO2#@)EF%@4LL=ii~HSSl*cO6Dp#1ZHZ$oc zO2piYoARYf8#z1&A>h|@as0?Mqe#cA6tiX21u!>m>R>47R)t2~8_qwfSR3z;OhfZ& zPc;TQf5a2*zV;69d+Idd!MCHj?q6ZYgza_hcvQqqwSAG8{Brv%VLwlHp*=43T^& zqFuFmL&+>5@Rl-CB%fX&ouuB5 za>Max@i<`0Wq(Ikb;V->cFFO>PNTz7$1hp#Dm5YeGNL;r@iIyvr35>vN7@o_7f9!x z)?HtQGlXu^!>~Y2o+N+0U-ptwg;<Fcsc+Smr zC6mF*`)AL-Stth?q4dQxN@!ec!p(TG;B-r2jU;Oa%T>VN6b7+`1yscmkvkHBSrkBX z&hgrk);3mAWfF&VYD?$iei-@s59=K3tEvo#HCL}5pH6B=mR_nz?K@ag+Ob}ihnb4Ktz(wpW#N@idBwQQYfyi9JzwI52 zr^#Xl`;MnZ^tgiy#kr@iZ!ArKN0{uU-^gP6jV+>Iy^DTr1^C@s9a$@2a=C!md;!6E z0_NukSdt0UKNegG_)@vXT>>SIWnc~bY&C@|&Y{C~26th`H;6b9caUNm%Mt7hF2yfZ zxifedG#Uh*!IfiLp(N+7Hm-A5azSBu2f2wojE!=w0-oa3HE4$gjO zA`1=#bwW_bE({5=Rv~C*-v@%pLNJ;227)OpQur1GAE_01T`pd?PGI$Op4b$;$DC$1beHd_%dpQ_#D$<>3cr#WQs9xs^v@E|QIz9r;=Y6gP{gcC;Jr%*{N6+!>ia<51c8_8i zSGA%D!(MujnhUyrXAzUfO=u)IRgQ^}X@}OoGSECt)bTseHctx*djks!b}Mwsh~0q; zv~3-(oa<4WSFnz0q;`YD@Voz>6}Y)55xW@+O1eAT+>-H|`zDm1KFbtWh-5^HL2BD z5xe=mISx@guT;*)uS2PeEh3+>z7MmU)z{fR670L^{ccYCcOgN#in>L7t#Ww;T`#i5 z(?lRS4%;`%3^8DgGbqU6RHgRQ-J~OjG?Y-p?~QYM%Iv~~9paO;ROQH5p0}Z!R&5+* zIP*Yruov-wJ5c!?v}7)x|65ds&yF5zta+G2BFo5*x!z8h*E7mtMc|Jtrdm$%b|&v_ zr|6oM!vyY0Y=D4$=<7Vi$(HXEtuGo&_UO(#o8B@rnPT8Ivx&I1aJQ~ zrP7|w&Zvy7Pb7z5N_p#PIgS>K;~$xOdnm0*8s%~P&vWk*ADheP&-+OHbsVpaUo9Wc z@iO{MmQO#z?~k7;&YQs>iJuisiyb^ezxzEzU^$vmhDDVe?>ibvXVKu*lvT$-*qDlAw@sVJ7PAK%@Nl)kv>S5cj7#e8+1RnsKfeiAkY6}- zEf#TZ3B~#&k0DZ+91b@9muMB@k6epCG9jMU{^L0`UrW)<%N8m{b^MZrQDTLIU%4>F z<2;RH9sg&6O1bhV)JV0wW-1U&RJCiSV!=e!xn|lWn5YKVOm%{(d7`OFFdds<^0-x^J(ooE^qOl=cQ+y_+G6BA8J!PGU;WD-o>6HQLR)FYTYV>ezP*v?Ey*4T@H ztCZ~5Zs~xK>fD4>u496!Z=$J3F!fI~4GAVT(Iokhs_z+`Xj2Ndp@}A)U>ccdN)b%M z6HS?dX>_8gKrnF_3fHRd7EF?fCQq$klTNf95=^p*relIhKGD=Am=qICjZp}=ddYsR z$Ppn`%!E{%8YcC)su*Llf zi+eifmSICV-yGZk*R&Hyq4jW_drvY=2V$`Lbj9sGuy`(M~3uZd-HY=KWlMxNH3|q zyk+s6AQxxm?^s+rHJ(aZDfO+91%05EshHv$J~(lOxN!!*DslG8YCJQ}J;z04DX1(R zUbVTW;24pbgUsF&Qr~*1Z1Wsrkti9qJvq z>YnUdBMFoy`x>QZkC(1tqkRac4sYJHfqc@nWZ#l`LM15pvT*DjqSr8y~sg@47DE{)qn0q;ra-m61XF$aAEmyIPzGtJYq67|}IZF@-+dlMcU z2Uypg_xl3}SU>k8=Ug25YtNcvexbrk@(QEaX`I>#=PWp=8TmVZacP1h7K?NAk1Cyz zY9KU=t@#p(#utH@Qt3d1J&N)=3d5O&s!ww(<@t6~BEMEBR-p&-Pg}D? zdr(Ds#=ls9u$I$S9)(WadN(GbpJO2wTo{$JsRJ`D&cd+RaShR}x#=i%OFzeEe9O1Mt_rdhj{9y7-aoTA<^aiVV`4v9(hQx?`EM|q1p7k={ z-aB7~6A}zQDTY_c)XrcE(i+1b*^P%Zkmw!xy(OTvalP6u8_Xob|YMSXoD5$%KQUkdlbK zSLsN|jS)2UQzXVIQ5Y6~D_uS$=HD_Xqkg~|9&38JtC;HY%};2$5B=GagUU%)A#P6Z1pWK57de zVpq!wLuzW%XYjWq#fL|K9Oww$-TcbbI=*jhjLeUR6nMF??^9m7&Ln>GQ~t(v^JNFF z*=K#q?^t)ec=MajsycZR>P&X{ovoN!g@pjn@c zG-IbRw7bZ1Wn%dFBinGlf!7Ct{i$~(JEEcx_nq}WrwF`XauxOPWf_s{OL28}BW3E3 z4_1A#N$!XWgIbY$X-CBJLwbgwbnC{y=JRKu@#@+&iM)KEPT6%P{%i>23%7$A`c zsV=a~0`}l6ioi=W6u`fksSMfu0X-YOVOh2~C5peaEK@9x<=3d@B!ATn@A7InD#W7T zYcYwe*oBN|n4?OjIa&L!u@{6`|ISi&^UB+Sh%49ThaV*|ofsnVJ~ zF?&5DDRfD!FO=HaYvM{GoHoW${#thFeY%94q-U6OPxq}HMIsp`3U#t`6iIO%5^twG z4f&P4lEqHG&sV9pP@@c~Q`Xj!)0l_OCCrVsv$(CHG5@u?*ge;~r-*aMu=!*!E*kS< ztI+Mqi>YxL9VWQ3uN97c{Q4s^`3lVf@r#4}OBz#@aDW5PwE|u>*Vjq!=h`;oD+2y6 zH$;hhoc!lE7sf2jZ4LMy~p2kV}ZwmLt<^4_N?}l_G7Kz{~e|X zY>W%Jb*`OjIr&;vxQ*kmtfIYIQM`2BTE9D9!H&amV>EAkN6H;6$679{P_YSfc4!NS z5j+rLIk`L3ce0UU3MEc<5)Qku3<2R>e0HHEt4dFC?4@t<8sOKM;KFDuDYPHIUK|bY zD-(O$l{M=mdoR(dYE0kEKw_u;+$KtmmGRCm6g#crT5 zdk>v?{0-*@v;cb@2H(*5>)5xbuUCZ(e8Ud@hyA&L9mfOjjkP(P$E?CWeo!$L(N zNf9?EP?bcgN>|0Hl0{w{y?y1}c)Qw&%XxF8l8;(>TAc%r!+8f|GPGxxhsDyP$I?~0 zg-*{R%G1$@wWq3LDUr4<;u$O^hxqAmQbT-dTEWyjn7tp0s%)eTg!pWE{F`YrJ(NjR zj-)CLyN!`5r_7hio~MrLp6vZlJeC-P=3+ZXuXAPE+6V@aBn?rGi+lmT<_H8VcA@!$)kz*|4zkwvl&bkebj=O*f}U4ER1U{`VN zb$Fl9DGJ5xz`?3ey3!RHWf%+EV|IqOBy zdQ%?e%D#)8)HWrN?dQebZ-Ts+q}vz${H#Cz35u=tb-qEd-t&^}GH+i{P?tZxB7Flc zi?2zec(5D6+C2PJLXK?UFXt>2oAUU1x$%UXa%1LGPWaem84v?eKx7aJWE9s7Lk2hS zkL0E)D5cL&IXfYFkm5Z4yW9fnnT-^2@e7n!4i&kL*X&ZDW{at2y|@4=C~+-=E`y@m z$nU##j`++*{_w2{gpY1j&8HN|qmmLr>L3k}CP*`+1@itze!+$`MWEn*7zQDu5c#H~ z4{g{Y;vK79qD;PNwRL(kodKW2rek(zPEDDS)i8$Sot+`$8C`sx?^=@}Nue~uYv!8i$j>*D z#mZ=*o53C+_&RI04APcb_`Yt&8*l|<{dkZLF343q-p8+TCh>=z4pjPkr*?WBozzoV z-M^OgQVXwI8+Yq%SYDz_;_HX7*r|KeI*q|m)fBH8tSxi-39ZskYwqHdH37TOLEm?}<{##<)S+4YVXU%U6~ zIhY9Azs9jN4!5!9dn-jM@%AOd^L^M#+0aF7eJh`}(IQ?i<@t>_iZ4s~&o^2!n`usO zJcIRtAKwtf?LLRMU-6%##&NqxwHJIFrBx+;7Gau;sM&{Hgz3vCX~q!Tcp+Klb!R)X z*wTOEg7G&r2g~@ao7M>@<$hiBcx1=;cAj>l-YX(sr#r}(dX6bkbO(y@?e0g(omBGp zgh$_E{D9QH6*5b34E7;zjP&~B)SB2+2P?-cj|40VOK|*{r4$wq5=B{p6UIzi1BqfR z!HHv*%z#B{3093+ZVXuBEy21miz;9-S%TBXEVBa^t0g#n%pwa|k}bi`G0Wv+sG`=l zBE=G%Ic8#H@~ud-1m}!dJ_}gVEx~zXmJ`SLH8)3k8wehlQjs;WOV{_SgpW3Rw*!_l?g0hr2<{7SYQ!z2`py$0^KY} zU@3D7+{MyBs>7>g=wU30tin3q!A|O6tg;sRd|j&;B8(^bG?02C7hJDTU4m5i(Lw2`U}au(t$NL8|Ad zphuD3B&ac@J|(F5Jb+`53u-*64-0Ansk;O{XtOkN&O0{_e2ba z;e?N(u|HW)Q=Y4L8zyF~cBN}Mj*r?LFW&HH-o9BY?%T%i*!)m@AEI$gwN~a^Co`{= zmISvTORghh?VH6I;{%gO;b-Q@d3wp0KXrP{m&2XL^P(d+oOA_Se>=$4eJ?dB2VbYM*s#QhV}7f zY=#46um5U^oGIXZ0u$T$*HCDMKSEmhG!zTo4%glmlQ}jI24Nl)xwmIC3*8|dpQZMV z&5{>Vf+Qk$LN?RM5QTlsps*aFgZ+4#yN7U8g%v;)+l*0;FF>o0K7RXxThl3V2ipkS z*u4683;`^DnHqJZv$ZG=JGif~8Ng>{8~fpNy;rZ6%wQLh3}0lDPZ_KCt5oj`5tUC; zwe|6Q+3hnE#;R?iYL|qwKT+OFZlExWrC|9J_+Ucv6kb!e-yVD25yXyF;%*@!KU6$N zRX}&z!EOkYch9eBhS5!_qBo*$G|9FMVL#0tzWCTx#c-Y_3i5IvRd;zEi@QWjCJ!DPe2 zTKTks#BehEbs~S{Fu$iD7Q3DLg8Qg|h%L)R2YAPpC8DqRySFSAHS_gb?0AWLcFWRV zugT}9ZCyVxxP9vm(H{Q0t@DvmcIS;c%DplrT<4?q!3QxZVjAt-`5E{fd!!@h!x8XR zB+%Kbj6MW-=+3r@d8WIvCx3tBTB|l4;hSBDCnmUU+W?ANRd~}xV?*IWe09)Om>Zif zbfJiH8(voUjw?}&)_;B_9Tc-AFYxxeqCMkHlk5&FONuU$U>h96Vqc&lW2o7`d|r6s zcuoV7#XtH^Ui+dc>)F7f5$|72)Wdw(^Sni;CT5(ZU~#kvrz@fFVzALiHCZmQv6e3o z&TS-pZ2je7Aymo%TujF?H_)DYe8H8C!(i;Z73?w8VeBbKLY>q(ka}SS)_UeFyphM( zd-#;)7wiqOwnNCtc46OyE>O|-KrnI`nC9IRLmyr4jA36i;%2tSpxXN zQp)0bq=ZBGuitlITYc8NNm`=Dru#q#F2Xk&6pqYrHQ)n>niVo9`&}#lQ_)=Ed3f7o zL7i{_bRS?e|nCebI1@4EdH*O zUw-cf?7N=6S3fDRjVhVKHa^RLb+1iciy4mI>4dXE4BUgYd}8rz4ToJb00q>_}sVoUByxBg~#?A-l$1@=qh4tEu< zAcuQv7W?}ZR9g5#Es*L05{cZCvREcYP_A!eU<%7P#Gfx-Vi-a< z#gp{CvpBfz=)i9di$o{*xYGTTTVRZ+eg^I7n|y*-@2QFJhDCceNKY}#&p$yida~`^ zGDNH6pdTq=@dG|&aF1uYsEe=gEEI42EpL6WT+|yV=?s!nNxgxR&Iu*;z&KvgIiaL} zSg0h5883-!6G}QKlypugsgFt$4e&2{oHE-J*ZgA#A68})5AHvjR<P{{gY@if}fHx09>nID8Cam#gV;bwFOTa#H1NOV|Ah#>g^vbCrqRTYYp> zWrSFK@3TkmeI!<-_`{3HXQLDcF(LF(^!;J1zKU<~#mM%cZh=dJtN1S8j<9reAMEOj zTKSaf)gm{~R~y7rEBW`UZ8J5M!cwU9VdQmkz#aILi*Popl8>v|ArA8Lzpa@QyB#iF z*lLcIq+mOczHs^mjFHRy$2Gqb-*=F|`_Z+^UHgP_69VASwFvuDdL=Js1p)g%`7a;6 zL!7mjU;dai{>=&@Z7SgFIDZ%&V=VbJ))0tVRKYhs_LL;M3}->h_Rr!s*Gk20&+*%8 z&x=2Ome1V(nE3f4{I~m!qPLI6KK`RfJhPFPA4r>Agd&?a?b)Lr|K2SUdwON2mVLCK7Lco?rX)jH%1+LodJ~-uQQdca$7`@M*0`R^uMOT;b+lZ%~VEzvTxT z?iO!*mEUmia#kif_Q1-m-rZ%Kd#Vjx2!C>faintPQN(1+J0 zVCKSUAAPm{7b(Y`TpkoWFvnH&Yl7hC_!pm9EMolU&*X{Hj_Mk}3Kf@c;UiyMDfVnT zy6MI1#JIQOmki>V7Mi2fdyt=vj^#zWHemj0N_OAuwRQ3DysU;Z8-7_Sp1kMi^yWn( zk2^@j?SmYGG(+Bkd<^M>j6lM%y-t8&QsPn|PRQ+$Qb;wV9&!ZI1^Fw4L9Rj+!6I%E zBnh$tk_Rb*JP3IlatQK9u*k!mf${@HfdAU%+N$S@=XCk4}`cGQxN4F0EoKiW9?=^Hrt z<9MrgY(0AR*uSuy__S*mCl6j1u<_QT$KsYEaw-0!e|h-N0SV}f1akbR#}?zn1Ajmb z8NnZ9;1P2<9h{sFOq)S$ZaC=)9BYG45HIYwCU7d*-{s`^I|0rKMv)!FTSzYIBqztl zigSVZQjO~cX=$I<$;oGf2f#UG2bI|QaSdG@eT>aXPjT|O;K+NNycEoTpOZfTmVpm~ z^&p+Jw19rF?fs+ETmKXmLLdHjE#x)Fo_po^3GtM8ykS>CtdO)Ge(9SUzUTC=qbFX= z3li>?8nyTvPIxa=3eqc#G7zhHt`elTK6M~%6dFMKBef=w+NK$#wrK&WZQ4L=H@Pkl z8)L2q#MeDsFE|D41F_)7F_6%P9&QKl36N-=A0mk-1?GS=!2&QE zECy$RyTBN*5{v~8fV07dZ$0P~P>#T$1Y5v3@B}y)>;dP2=fHT7f%Cy(Z~@4Dhdu$y z!0W*%a1j^}E(TR#B4`DdfSKSjFdx)_MIIEocPmK@->nV$shX1Cziu z&;oXYcCZ(8fc;=HI0W7Rj)KcU>G$Y6pb|_46Tuar#{^|1loaqL&E-)Q* zgR8+Za1B@uI>9<{9e4=L0-M2Xuob)&>;|`h=fJzbL9hrM1@}rY{-g|@44y;*Np0*b3UgE^xUN-TVxc zyI>du>3>Ty3eumPNYA4ppaKj7m0&oS2+BYc7!9U?7BCOI3v_{4Kysy^1S|(b!CEj3 ztOvuvCQ#;qatul|*alj_Zcqf*cMg<*3=9Q_!7y@(KOh582Fk!FFdB>pEua+?!9}Kn zVPFmz4i%4Vu6%kR~9Spi&V21DFTi1(v~1 zs|q*5cYvj+u!rXUG8oVZTs62GtOMx?oz?)f4r)d?mFx&hz*dB5;^_h(25C(|YlJfh zqY;I*0j(AK5Pk+61owj@AWc+~e{%App!}bB{x3o)LzB`>7lQ~NNQ;V4FcD#z(OM9e zf+mC;!4&W`=md{|dEhC~1wIbC!8gD%@LjMPJOcFQX@#K;>;gXl zX%!O&oixXP3 z^dRh_c-&Apcn;xokQN`b4E8V>c0i$Z+9Yro;R7Hy#L1rpWZ<8`C~y@R555Yjz*f+O zM@NenE5emzN7x9aAxxdS7x~J-OoVAMLW><*73CxBM)|_J4L*n~g5hPb6r{xnEfgn% z_!dN1z0mS10pVJN3&CQ9=YaJH-v-ixathdlFh;Jhu8aVWA^Zf`2CfB1kdDS_H^S>^ z{YUGuB{1~DupQ)Z2WkSsrC=JuN#GE|4}l!gUk4P!?f^$&uL5O1;)Dj2!ma_M5T?a? z1Jch2;}O0StV1{+R3W^Tn#c;}QLqOQi@`L6?*=nLFPM)EX>Xd3@IKIqumvnaxE!Q) zqY5lV_$ja)ydSIuOTcXnR zPZpU=&K}m+e3?4#wFPMXjW58yFH-W9-JzzfUv0xX%n?WV6 z(}QOa-UXH-UJ3Rgd^_kucs4kQa6TA?^g3_^;Xi`6%7<|l1Em=W7lH{0Zv%DUyvQHk_SM5gZzz$BDXc+aEXm@u4WuP5jKES+cKVIr$X`rQmCa zq9mp9aH6CCijkKr;^g>X*H1Bfq2n6)w~K$Z4MXRfafM}B;0j5ORZyZrs&HyhZ{vR$ znl0I2AF~xZ;F28t3qQ^lFTa7J#LuPjix7%iDTKaV!@u|AZ28H8KwYTRTIjs$$0%{- zT@)vNw1_T{?7TZro_O6(p$OIeW8r_?FT{8LCQ#(9kG}!$3Zc9v{u}!r=5Z?g@qq{t zk};7Y90f^$C@~cCG5lyqB}Z|b9k$(&Hy~FpD?$qtu@7;d1?BY8jxjiWT-rEY&x81(|w(Sq3mS*$GmkiS$30hO)E-rDW zY`MMU&J6eVZTH;CAHEdJ4_=Ci*haYrY?%)fZ#f!#`HG0|5u08a9TF#O%EmbVzYzQ{ z5N~|#R*`5RNEG=b4(s5+#{SWRUJmK$!4d@03poergY-ifWDqh88HGqb!aN9xfy6^p z5FNw>u|kp|DUdWsI>ZUdgycZ-Ao&p2M{wY7D7zqZK{=!vasW~fX@WFES|MGKZb%R0 z9ApSG-aAL3OFqU*0iuA!K;j{Z5FI21k_jn*ltQW@^^oR|;lNvLAHM>xG{$25$ zRrEI&fOJ$+Hon>qYt}!{nleMaC!h%SA5->0n-dooIS1-HhSxl&c}w$|<|%Erc9AYi=h3z5x^!Fhcj@obm+H&(75d-npVt3Le^md5{*?X$ z{iphV{dxV6-mi}~BpU8Fd~Jv~er1d^-E3NKsy5Y|m?^^SFdsG_OgfzOdQxxF#iS{g zSj$Gs-Iix9FIYUsEX?wYCDeMIb)D5^-ETc&729Um)V2e*cWhSsY{w?YHpjh=GY(FP zf)r+d5s#evzs_#`pstc-7RkV7cdYSqbb+&q=+NIv9 z_Nc4Wzf=EF-KajMeqH^Z`a|_O_1Eg3)Yog&niP*_jV4o5pefdrXv#E?Xc{!_n%lIc z+6wJ{?LqBfZHxAE?LV{^wZCYky2Uz`&Z@gXm#=HmeWdHx4ePY}TlDLNcG;t^)<3R4 ztZ&hu(7&($SpN_GMg4q($?&k@h~cQ=q~WSTVhlIRjnj=W#(Bm?MzzsobQo6{J*$lC zjT?b4mGd^#8-FV9Qv2la>tXZ0roRpTdKk3D!uadq+(_L@5!LrJd zXW47%uqdpvt;yC6R=2gn%3Dub&sx8>&a}<9ZLyWxUbmgG&9u+4FR=f{e$;-_KEtun zai^ok@s#5gN2}u3~s|N!(Kd&#|#Gyzc)N%IBa;yaNO{Q z$IxczGMqMiVmNE)Gkj` zZ>UeHKT&@Rw{=A=(?o0LYjher2J;h|XEZNrKGckAI9-Tts_rJ;ZMv6qM|E%OUe|Z( zzl6JrGVC_&GdyZ&@)$Y|=WtJcLm0-U(zwo;gMrv@oNO}S+1_m0XPRfe#hhynw#>6w zEz2#pSe%wj+}U2sVavOgZrsNiORwb|?xi1hqp_N-Rt(7$>kHQ7)*kEU)^pZAYri$v zw#;^$&1EaH72DjlQrj+D8HVTw7^0qD+c{gG?PkZz4lW;i0^H~_)ok2dk9w`<4vkbB zqaD^pV|cC9{a$xocSSc@KL;abIo!^j`UmtrjE$G|?fO3bPkM=AI(mP%S)F7{I-c|) zTO%ApdZT{7zDqAdkuex>R>OOSdyJ15 z&lvlRp{7`q%Cydui(c`%=@(Ooxz_x9^KtX0qytIkk_M8(;r%l$g%}Uv)|FPzT5GYj z&H9n`TkC*z$XahpwkJ9?=^%fu&!EHt2>~}KMvP;9h_l|Ua61QC+HLPD!op>M_;b5#FSF24>7)K&bCI{ zmfCE#O}5|KeztMV*p#9k%S>C7?n~O6bQI0{4IQ_%VOI_))KTgfwNjm^R;hLBCmUi# zOFf6IO;)Z4yCN(s6sjo9p-PnwlUa%`U6-lL(-r87bZ*@)T{)_CKv%Cjq&uQJhKc`# zu3L9TcMg-?Af~%fokTCwD^S;X)KjOo3SK)?p9h~^q<8Cgq1M&<1NwUXA^j2kF?}m0 z!*2Z<{W%Yu^`L$ju3BP{85HO<@mMS9&~H)<>4r>0o}s`{B)I5uLp2<9z2Ok%&0~gE z!wEyT;S5G-zhMx5XB4w2`Q;d6JiM~bXf>u7(~X(%%LT?FquaR4SZ=H~9x&D$4;hab zj~QEyCyd?bmA9S4kRCJ+8%K>2lgy+r#hBtvi6))Nib0-k$~5Jf3QR>Nw`rHD9E+9% zShgH89Wfm4Vy+y60^*#FvpnV&5356*=kNPr<*g)c~5>jOSH@r zlN6tnn50XxqKl;`WhUh%6(kiUxs!G!l_yoB|JNrSN;-mhp*875Qg_lBJh=X(!KC4& z(IkmQW>HvTEb*2^iw>S91^&|sKa&q1T5Kt`lvye3O3JZr7B4&JrN+KlnvX6=H5>Vp@4(1qgj5sj=dALL9|C~yylB16+RS7DU%A`tGrKy~%996!`r7Fg}Sf;8} z)vD@L4XP$pv#Lears`7lz}5As7-q{66{nV}U^vwi`Av- zGIgc8R$ZrVP&cWY)h+5abr-yKFXmPcgAW;j|B%9WL}`?o1dU2#(j;rrG)_&9CST*y z;EFEtl@?{Sg4KAtS2}knO3eeDre{dU`SXdMSE) z8TxxAdVDSVd>wjy1NwavdVVwdehYek8~T42MnDh7Krco?AI1U0NEpIM;LH-U6r(|o z@eqX(p)`Bq%?TJ5Dhv!0hDI_5M;eBQ69Xj2oM+BA7noh@0=gZYrT$$Z3o#@ufnHcOHe7)i+(Nog2M#Yv?})Ik;KqA}>C@#vG7K~Wq~95B=lin>uSa-?#=9HQYC>A}e9U`GqwQs}RO zW}IoTC@pcQFikP7D6O!O#=DIMZkbVP=Y7}ytwY}X?)$v=$NTTSeech;zH6=Dw0`q% z??a_E*3uelWvTo7l}mqqJ|^yvFBnrUA9@AYm~!dRyCywyXea2d8y`5d+q8>6^e1TS zy32=NFlmEHw`s>s`h1Me@;6L6?dFArl(xc8-ULNibZ;kRQpD9aK(xslt>%enb$)#5 zAXS;EDoXQURY@k}N>y=MK}%KTl6Xi>i>&LdDn+F6Jxz*|YT48?CTNgrafu7k)_uZa z>0_CCljv`ms$LRzTl%WbJzFf7ETL1>0~T0le(x9o!QvTfLS$?ZV8tvoyCP&>ZpDNF zIr=+B=OFQgwZGb11a-Q@vNA}l?DVSopcvJ;pL<54ZThU)nX@uyYn~rcHC@dNf2Cd1 zf63AR@K!od&IxG^+QQ~+y|bo&n61C-txSe6M{m>Cf8vVMDyDd~iV$syXVjeHK+SW` zqIpji{|mZe2cqQa$9%C;5eq4Kj;3bL&zv`Z-VH~9%5QTg7CA3`kyE}XF*&FFwnRs6 z?2nnAZ!I|$NgG~Ql-K-GHQmrW7cIrzmSlR?SgtA_2;BgE)8 zfo>?p3qZVA$uHUZo6SBG5=eP7 zSAUx_sR)^5^oNnABe%2@OUgqgQRq@932)85zMNPG4{MRDuR>l<9D`bo2t#t}0P zeB0oPgKdu9pr1Bvd%zZq@ttY#m)RUM5)0vAvrWjmIXe88qr;OLxFStIexu(1jb8i12NY#}LvgsKpEM>T|Fnj4 zUy!@dB`WMg#DKt2{U*Ug^R#vhO2tIFyK?m0Ld;tAg|M=ApaF*4vEY zjZt+(gsUls>s>ka1)0-Fu{ zQBL{Z#6nmZg@1Ux=A3|`^dQt|zqx3(%z7G#G?2ELX}p7O6l9!6jB~e=6`~gbq+OVh z=02g7yAo5gDkgSLd;fS=B2AT+obp471uy`1pwQ?XO)r!C+R1(4>q5;m9#5=>iB>Tq z(TO3GS?^C$y-_QFF0s~B%t>^5?R`-T-55j4r70Nx6|*cxXHuITK75^fC(=j!Ed5PQ zZ=ykE|LrP@vi`^LbsMM_>pux!w-$`&a=`MwsNfp3q_2V}jib<@c3~Aoo$BX+Us66k zq_vOdvj6g)OFS8Kier~}R$As1M}YWWjh6PT>@=sIrnm5{wp=|VQHZcucUGcP%V>55 zptBi|prmFo>h@A8xiY$}ZL6QAV-k4BSO%*cU3y8=r8_b5bHGx=X!=IkjA^F~2jR6x zshu7>N>>M;YH(#ggz6_Xra8g6Lea*Xwmo#}eZ3EJ}1@bf7B6eNapP7RQc)z-2f5 zNrc>jjXyDE={bqca@6(+W-7-GG%0E8Pq;>!>E!5#H9hoFx~inT@3m*`G2PqUID%+M z(`)a)N9m%VXPt(i+>a9wU)k2W?I@6Megj>yBs^gqM2MFW+OLP*7tb>{{Pi|9_YoV~tM&h*O+Kd#$ za~lUxNFx^otR$)1GiEPp?R70Twm{K(hv!dA@jN}W20|k?mZCNkUw@zkospKs%L$P1 zpa?*Y7!7);i)@3*RzHc>i%fgp=z?vA*FOG5>HR4I-quLtO{^g2!cPC?^?LsFgVRnJ z0fFL|t|^w&-9JRFrocGi1bXUa#H`k2^dU)#70&Lu!tGEbV>j)iKa@ zfZgV@WSu2`?>0(}6GI~M@=_9bl3HJbQfKPz`Y-xf&mUfw)oAXC5xOWb6%#^E;;^*$ zGwUBDhn|I4qcu&d$ZeuMfJ3X8U^2*|aFIkl%qwhvZkihO$y+lXOUHT1KX7O_|I+INY2?S+=>w~01;%8Utd=t~$1$wr#& z?bsPrSby)KDy{ySry&A;H5vPmIf((Z=W^(O7{OQAz1v||o^JetM${_e_w^8WMD|HA z`#u~+$$5NcHZ!@L3VWc~8<{JHQswx$E0Xg~+ul?)ikPxB{^o+Th z=5tpx%`w^VirALl-;Kh0?OS1!b^=!D%AF85{Gr1bgJxkpN#}Ec^AhDtR3lNLM4Kfll4zYoB@!(+kzR^YNWo$$ zs3AdxHG$eOqY)Y8LjF2Nzk*%iCUjTf*E`1jEXJvZSv8exIvEkLsf0cUV|srGY>jEK ztkm>_4V2t^uPcQ%l{fdKM92JuF6D|rCclBvGTL2Xo~spfHdwrX1S(|;ia9@=H0sY& zb>~n+9Ccthp?;D4g99By4^4_z6&jAcX#NQ^9>y%FhuR>-#Db|~YZq~}cVGWUu%wHh zd)t>hxQq0!MPa#ZH%7u(&OgPIFdv!ok`ak@M+#j-_0R`liD}75HcfpK(jZjHYcD`r zng`QSxnFB%F)!UEZb?kC-2IH$lsN1*zn(~;d@WXR7;h<}b$CDd(s&7T z9Q@-UO`Dg66>yrYyfD?}KKB)eq3ex|r?fl`h@t5^5yM4ZmNBl47ekUFZ-_=+jV4SC z=-%_tX#z2+8GFNN=q%|DXJP9+$*igzF0#j)Tk%vqGz%6~-)7h&eh=E0pEN$lH0!n7 zc8aY@iBm0<2s|EQ%z=?7^k0#f@oDUyJCC6z$E<#qmgRJ8UA}pmM!MI2X@{9$EOi;5 z+-o1PLsWN9a_@uE9HYL83jO}EsYupd42`D8Kb%U%!Vdfs^cp>wx@)lU-oMZ-JVyeG ze}sk0v^Z%TBB35Xm!Kz!2s+=Du^ziJ)(A6}`=oKN87(wHMkAsaOQp;Yz*u6&O8N^Y zYfASgNl$vUjEgwPdB*&h3kB__-Ze7JXeYh)m$p;cLxV?CqghYEg329g#K^RMp~(^Y zUo*z}G^*5mDK*wd(RK8bZQ+Ll{7x1pz_gtDQbqiY=Ab!=7HDciZOh~D>?tlsMFl2c zCyUnFm@Ilk4|ZR;fc~MMbw!~Mw1PLnQp_d@!12QVF$umMfC5z5Un3t^ggyXbgrQ8B zyC+keZotn-lUt?995T_V_j$&=kV7?2fZDG!>yb3?_Dm>pqbF=?MVwV(F*=Xynp zZ(;_`us~Faxql$$+VFLqQJUk{TL{1=t8Dmuu-Heh|CoxahYpxR-Ko=70&TP^r(*R9 zUx(gF+D@j{*dmt14#;|G3uL1@7h77t)-wKDdZVU?d+j?&h$#hKc{8!)oxM0Nhdw`< zk}Z=;;D=3IvPFCtJH$PcDqayf2*ilT5Q48wUsQySCs7bYl@oAQ4>#*&yn_k>7WX-B z4Id!uAr&t}k*U9JgkJP|LA~|}TbPP*#IoNMm3vDo2Cp*&xFpOmED zENp#-#;k!~D=R&X-g8f3(Lrx~HAPjj$_LKN7IXSI!(BkFhiFHV=e6HdBcAPZjpa2> zTK+-i7GYpr5TAu^RGEo>O{kB(WdM`7Xf{3oE++q*;hPUulNo%A>BC(N7#7Fkr+(7+V+^i!{&i0Bs?zcbZ{QybsphXom>H zZr{;#l;j79zS|eQ@x^hX-#|y^eTf(!AAf6VSAbW}*=e(jt)qjEf#xj@_OIu^_j)l2 zVy7}E(J@ogf1n*3CjHs~v0-4`fDMmOeJ4a|_fi;mk9)k9RWDMQ%8I!PdD#sD?+=$pI-aihsd4wpUmc^NfPHxDQY!ECy{UOM-Ui(#2{g{kAphNqWsg0A` zhom;FLwm~9{w2&BS4nM~pU)q!nA#Sp-6XZ|`>Dv^bXSe3enYBtsovWWd4s9lF172W z_Tdh#%hcX0wQi{`>CnzIwS}Zjvo0WUg?$AXnfbakQ$1Nm_Q=SiJ0cG?wFCYw;~pK_ zI8z%YwfD)mN{6k!)^& ze*NEi9CT>kF`cT3^x1$sCTurEi!mcYMDFmQq<)yd3IiH-ZsuSC~54k8;TRLA#otuZ`hsa!&4H(&%+n= zxApAMr_kF4r2ldcPQM6-zVvH)h!rC;0=In)^NKN#e=S}cF*tCgL@q+TMfAw+=^u~4 z-0JFqz0rH%4F5=T?-+K#oN;M`a{yvJ=b|msoP@LW53>DE8JAVSx8;1I7(Ob|@=oHO8%B*&XFYY$>m9GJTU(rk&4^!PHvX?4$@G5t z4)95YPZ5qIv>|+pa2DYxf^~wTTn0Ul@Gim+2wx(6fY6X7e!c3th>mLs?Dx*#r0KQK z(}lBpVkG!0E?cyPXW@efFNt{>(cRyq&4C{B1ue*_)PnQT#Fun&e?|{W)+OVa^o@ImhJ!53<*>Jd^INBJB zyS@Fm`cRC=iSrV-nROPr6!1& zG09z@{}YAv!)7g{5tVe}Mq8}P%dx-{Z{;oWdn-^CL$2+o9Xmrg>upquTX5C|-vXX$ z80i^>n^R-^6&5pao`pp-S#P{TUV27sy|$NojuhG8iq}gim6Uf4P0Db9H{mD=X1Dzysp9zfIWkD-qkeV|7&(%|qV zq={>hfQl&&qy9_r{PbMQm`mdF^xm;_XXqL8G+r1h#S!~)L*O-T_NNn+7$mlhOSD}3 znK&`7$H=EqNmry^O2t`kU5MRRae(n02E2xQaNXLUCgM@!16(-PkGJV&sn>^&?j(AQ z&l`WI9f^A`{#D%dxb;TxKZk_tT(rI_guVG+?B4?9LKE# z?c&Apd6qja2*0eJmLD#QK3VhQgMUQ@>7~(nx=PXXKlE&Wb2sX>*Q^s;v)q>Z9HRGx zA(pHjV%CI_mf#-ZfeBkIsqc!R6O%#?pCvE1>!IxyRV@Jc3F+L-=<`&x5H2?zt4=TTMJBtgC#C=%waCCdA_7q zXTC;g{*)pfA+>p#CHyBPTH2aL|4IEVbw7()leR`hVf3_l1M%iSzn@ah&Ugn`a4Sv; zn-=RHfVD&oUr(KwuHzL<7muDt4fOH;<<=5(e|>yFxpf&BTr8PyValy{llUVX-;!VO zddp|v68ul=YP+`ZExhBK60#(-e4UoQ0JGQ|tzYRMk$&x;$VFM*4JI41qNB!@ty7C| z3WR}pMvJ|^G#mW!*3U656rjuDP>CA~74L9R;?Sv($Pzz(5>+ja9|J*~*AE3fi5tS! z6nYui2NRO@4>J5*zJMx%tug&Qk&r#nlJb+dDZ9Vrg+GPJ9^SpcO-n=gI_&u{=ukL1 zk1TYHFS5H^R`n1iW$013W47K)j15dNG5CnUx~NR-oSbaw8YY@1$47X6#)|f4 zE_Ug*oQgOn3Nh*rp-#Cc{)zi!3d1)NgA|6ZBnBxAzvVtrGi8j$b3%MEB|eEp&3-JT ziZLh_HE&m4-6c!_#M&9}8PgOZcEt6v47^XAh|Bh~v?{_LpX6SHn=zP&uZu@LDyI4w z|9}7yLOo-8giw>36g8mV`^SBuaQ1pI?PWVk=&D(%C zouikJBEen~ROB8)tU$`QA|x}@tf;0R&Q3X|z1Oa#;BCZ5M(dkiFQs%I<%aP$m6RY} zPQPuej*@v$!{rRukFfYA7N11~tQ$uWA+z3wd6wclifmhN-H#59+r~Rrh=24LKX6ze zrA*h%^wt%}QGBRCuWub*ySfr-=o=HAbfuAY$_P9zKI<`f)@XF5Q-7bUO=F|)e-n27 zZ^FxOT@hVI{vIN6{g@?|oLce5nALHI&Ba`v)kc*d^K$F;JyC^n>y)12hOr|YD?gCS zW;aN^_8;#;73dp;(2J<3*Z$dE;>EFjEEUn>?ATrw^`GMM*ck0wN)z`FqqW0cKdmAT z?!~3aY(zz}C5VUD>0bLJ6GM+%XZuxBIo(u#+G zy081-J2dT-;bR|jef9Ug*Qyw=p(!fOmq*x#p}_FDXStc(q_A7!NBBe!nYbtZ;S7p2^P=YA~w;x%a6ut@%;;~qP$(wPm}SWd7F%cZb|*k<9Q%^yIcqR@ zbNh_fVCbdgV=Sb6S}K1ElFH8Y81_nQZ#euhY<#rx5WG!3jIMn{faZPIh4&xUBQS0K zj=p8_Z4~jw8t?Z`2ZD4&e8 zOPyH7>VFl>XAX!T_fM}k{J^bI;pRyKUl2_(ccgUaxM`VqeP;Kxu>Z7}++mTnj9UK` z#_pD%Ddo48j-<`duOe{PpaD-9R1#FkoAmusvh(~Au{t#Tz|yF2&tcoSHKeXUTHd6S zOU1%jNouMnpH&ui>k+Tl_qt!aArfY%*oKm*7dh+Aw1(EVPKiIKye0E;ok&52pgi(%uoZjZYdI#(=_%I6&7-j7a|GDrc<)qOQTVo8j z(AH;-@9}p2xDtZQj4wJ^y8Y^ET>Kgf(_0jjF;A1G`u(OY&?py zM(Z5S^JmLl+y6`dzlShU52eLt7QtGVDR8Yweij(;XA&;Vk zFgIdXxAA9jA^+(SU2u<->1kB6@YWSN$t@H2n$!FB!IFTpG`{J_@{%kqv}i+}PZdECp%LW~{PKTTp%H!5t zaADw_7mhnz*z=77wwjtWaD%{6S9j2dWVnyRcRA?$o};$;N6^aQ>lE~9`b@$NgR`2R z9fc1o5)lt$VBmhL{S*fzF;WsMCCQN3q$E&E@QyOHla%~kZ^lZ8O*eykc5M7X>7o?;Jk{_hx2`MRo{LfuCm1ZV#M@BAmUo3Ssyd*lmJLB{$N%qLP~6q{7XtKQj!lz zUm2@ypXrDKNaCgBbCQ_ZnXYd``*q~!*0TeQ*JKo%@v>y1jOQfdFt$l1*?3eksm3Og z2{y{5z-g39MlF zNS=IXL`c4x_yEb*5P#_vsLp)E{Bx2oAihTOHN-zC`C8)3Bwt7TD#_CfX%tDmf%rv|ZzMin^3}xW5bxIY zCIU{WXeNG`(a4j$ z`OTz}B|#}E(j{L;`~b;U67P_FHSrOWuOU7_^0mZY+GEzfj`%jo*AxE@@p8gB<(!#0 zBXcHyt(_+(-WXwd?L#r=#=9*SmxzyUoD(;p8z!)n7Oi3x_T|_%J$}6NsZ&_6yBXsz zh-(&(v`k(i$`&U2Ct?RL>K2ao|11E^?+Yh8Mt0?x_*@c4+>P4f6`7g$*hqsAS+SZQx>@)M#V80hp&WdaP7DPcnAAsiuXlZX7U%e;-7LT#~ z{JEI4xXNqUKz zBPG~>21a&+7*o&^Xcz+ zF|N1C>jP{-2Vhd8uhtZJ+H1de0n#x)#w#A^wJV71X`dawo<Peypia z_359I`lb$jA5(8*{Up1axN@rlVmd%Mkl9gRaa!kbF4s$=UoTMJ698ZtpNn1_Xny#* ztw7AbCVEV*sqO`JJ#AjjoyI@d&^-;YhHIFG+Nj|>z`L&Z+Ao_ahdxXydT00JJn`~1 z*;;=#9p<%Hkp;5p=WUWVtoT?$5ADJR-MseYY(VD)X`_dJg`KO{K4+eonAgi)_N+M^ z^UQbqbLP*Ri;Vys25A2qZLFy4=nC7=1vOm6VC*Izkzcc}`*GU??Zy_Hd}2f$ z5J5K#u!QL%{RWREdzE}@#%rWxUDgr5=omn%vrLIT22gsBMm2)81*5gtd_ zjc^>{D}+vW?fGTyV;0MbpZ7da@U-go`N(b@sO|94*SqkkXrs5)PtS}q{Um+h`QtC# z*={!NFi|P3{XOyeYAxq(4AagQX?Pse3_sfZntW;p2*j9|2M*4%L)ka zv^a50nBEcHShdS51{aREyl)Y%!l{<){lwA2+r~V10v7^lpJaO8_R`z^jQGc}EnB@N zXW>O0`R)ThS&zUC@%yet7sf?-T=Q@OnE91?hhV+=2l0=a$Mr~(Mt?$c4>aB*=a%DN z`3aYLQoMb0vKuMmGeuXT&HQ~$nz!N_)i~XVR4V5C$z0!TMXn3Ag})-#7s2C-9w(y{ zuAB>*$kk?y3Z_x-b#?L{$5}ejb1`Do5SZTUGsV#kpMlMwh@p2%;lB(=4LXr-UEn5x zC$UZO9%z$NcVE#1`G*?z)2-JP-|e4&R3;I6{=+W?9J?vjsP} z%U07bRrD{k!xyc%TKEo&iKit&yR|JpTlfDw{I#6a0MD1IYc@XO>IzR(lJr7WYJloW zfoOaP)f+R`vFS8@6bIouoM~7Mn(5{RD~a7m+Ma@wS(I`Ac3&YpC%uTd1~K&`n7xZT z6vmU=#IQTlhc;|OuXJGl(xEwr3pbRzq&Oq~Ag+R!{lmO3zKClflsQTHOgwpKtR*E# z9K5sV2#PIhYfO*{dEWJ+ht#6<`tjCSV=yOQ^|xWeR?&6oI7?xJn6-3x|1Dd+-mG$m z5oj7jB5PwPL>MUNvO80K;jecw1kQaTUS2xNGIpzITN*ud3Z?(9@xvd~@~aZf3Ezp? z0XG39pHM9S_RI@e)_~IRb^RbVf@?*_vYvJ)bk6Vxkz~l>Y&|CwGu_N<#huIIErYHV zmCHt0KKxiTE*odD1c?w=vLzryjBq93er%S@8U5WNUEzO|@4`27&Wsz`KjObGmZn^10 zF|uU4Wy@soSxJ)R(GP_G-Hz^gQ^?L0?6)d0FDv6`_sgxgr8}K1GVUJR{o-V)!&u1E zkDaT+s~N9-O}41KJHFdfkKtSPAKKZOaN_4@M8ni#H^1GT&zf@74NO4&|>2XGKPs0E5=Ov9EtGmqcd1^u|7!8>FVTJ z5T&%X8IOKoj^2~TaMTXlBy`2zAL4H0!;Tjo=CBpk(tnD)l|3w*-xozIV=SK^6dPB@ z^n3{mnl~#WWIsOl$7cFf`Wz|bcibo0G(T)DzMdqGuS^Sj9+w)+ZqgPW#t8oNJrS@f z(K7ubF=$nC!pD>7_Sye0%@gA1#jR1KQC;29yz$kdcvVvJg(^AT=5=UVb1~S4WQ3l_ z{lKz*nDB9r?R-zXv8q?{b8H;ZVQh?nsAHwo7QP4L3r!+qb&tqa&Q(7O zncK_`17nR4)oT;O>n@Vhu`XSQb*B5<;^bP#lC_YTiwt&OhKmd`j<|YYQYs{#Tp65c zdIi(;C~$I`hW>FB#QXu>yV~JDte&qD(1f+8sOR8y^{wycAIs_zfDcDqAtLD3y)QPuK?HH%eN0IQ5-EbO>X4XE9>k zV6n{;twxAfJqeb?7sThDXiL%o@rP%CZ6z&8()J@b;gT4>E?b=@-0PCvT@pwYIx7OC z-0F9Tko9pAmWTd$&=g)EQek~p3KcRbx1N*2aSjuGEzvNU%C{2DGb32d-%M6m>w1`$ zXQgg~)SV6hG}mX*A1|49ixB-G%jwtmw65=@#L9XXEPr#2_Eq;ILp|89K4;)Uh zzVzCjkoyj*0d{OPb?dK(#Jgpi1Lvb$S-L&vkhrD%VOt~8)jyx$_eSd-xVb!VP}nxy z8GAK^nHx@Jo^JVl?$OwWBzUiPyy9B_NoKf)xgI|qGCp0&2g%lW`aAi=tUU;_HhUwrbOd#R={PR66{`k(CmJR%D<^G4o#$C5q zdOa-KcdfH*{6MU!jZw42BenSI{T1Zr<^pMGVhScd-gZ=UNP~xMWddwSP3W8l(ZeQ9^1TR9A zwMWZPMtqw)7q6cdCH~uo%2UPH&-J!+-6R5br&vB{62o_ATOQscN_Q_(*Nbm=za8@N zO^R~B+;voM6R$nrZ|H6aGApi)G!|i-i3KR-TmiP|SsBNQQzl@e(g*h`{+NdE_nD2^ zCZb=64JqnKCvux`zK~*B`>^=O3v(=0}nXcz18$T9^QTuyX)U~4KKzDzm6a%-%{^&U;!F0s(rM({+;ui70 zsjzOhAwx4C9OA!00dXtGWin4grs~`>%0N9}_rIQ)=l2g)mxwR-+xv(8*F+cQI&hZ7 z_d>tdAZf@5y@;qUaZ$(C84+x>3}J=ZC-9edl*MF)d(9zonyR1=IVPZe?1>w2|q@Oxu|T;8%O} zL@@2cbTrdEN!>~T3yPR-WLnMi8KwuAHZuL3>3OC>_fOgA&#$@BozV@%I5{fa2^SAJl@pG>>bXPJ2V zGab!zBGYM1=P|v7X(`jqOlz3F#I%v=8K&QW_N9#4Sr9OiUC6XQ)3GB}@h?kK{Q1fB zCrlK@kuT}_Ig8i!X+6`% zPeiYGCz9jM2Rn1~$@@&2;}+I@>KM}{20gaVrJhbj^b|41MYj1gFz&+G@rAUPsY4+8N)?IO;p8U%@z?@g>GH7<(BPFrKE2P*V3K9ljX2 z?N5ukudcId>nsZ2E$e6!*$d&~5ZTziCMsc!J(>BGGR7B(=2OPl%D9>_-JsG_!??4A zN-bkYZT&e&iq`w;5i#sXg_ zYG>^0L`tai2zMeSfH95+=3`@QXB@?tb^-J_82kEMGGnvPk^fU!;OlhhjD4NX$=KKF zG{*5}@`{qj*w+d387Hv5fU$#dA!F);X8RYhz}E>&829D~rHm69mocXE20fLG`$(u% zGd3qW$Z8n(V|^`SOfzQwN*xPQ*r1;A0LBfB2QqGCJeYA4;}MLT8INS#!Z@9=!FUws zue7mXEE}{lzM8QTCi{SsaRB2?#x};|8Amb3rGxo67~_h=e3BVYlJ!R)U_mw;q%)q( z*vWVbV~z1t#(9jdVVuu6k8uIxS&R!AyJxeYhy~X(E@8Zwaj7o?;|EX6iAd#%pp5kv z#?_4d7}qlPXWS@P2Df5mK|LFE@){Uf*tgboW1P?S5sV8N+ZmS-ruL6yK^YrFF|KAD z&A66v4C8vnv5XrT$1!eZ9M9Nb+=FpDu$$)n1QrC?q>CJkqZs#OoXofv<8;Qo8EcFa z8Rs)jVqD0$591P>>Na;4eOXY(2K^XUGw#p0mT?N>dd347H!>c`xP|dx#%+v;GFG~{ zWsQfiz}7|L;fx)OM=(xhJd&}KaXRBX#-kV)Fusa$5#tQTrEV6CWkDt5s~OiYb~3JG zoXNO>@p#5fjI$UUj3+Q|XFQRyJD{tq@gx>RG0tY3%y=^6bjDK{Ym9Rk=QEzlxRCKR zj7u2jN$gh2STKzZsu|B>T+4Vi<9f!|Gj3$Om~k`XTNxXSZ)4ofc&&*s{sOv552(B) ziDK-}*teJM%s83#fsE4`2Qk(dhcM1(Y-3!=xEo;_|0OJlV1qKok&LSu$1tvC9M8Cc z@c_n6j58P;jK?x=XFML5@>c>Pqz7(g0|#T3_gJZn{TVwMcV?W&IFNAx;~>UGj6)cg zGL8x1^|z7*8EjC?_*TaCj8)$FH!}8T+|0N$V}o%Z<95bDj05bl!XY-Z{)!UCf*3YP zW}Lw|ow3TBK8>+I<9x=Q85c4RWL&~Hh;bR?5H|~|SrEgxmT?B-2F5DyBAXZoGHziU z#JG)d2xBEu);NZ-jj=m}1<5Q>d6${aIFPZ%IEZmR;~2(;j58RQGFBbb!>~tW9Oy8i zQX{cj31UH=F9F64z626wgeG4Cj9VB7F>dq4XRLJRVVx}F+ZYEjc9S3uHl^F9PERUxaiSp~&F?h;a<#QpUc$ z;y7uh__pV8q#S=`YEv!Iso$BgS4zsR_eaSh{U#t$$y7{AN;EA1@! zfDHnorR&~j9L4x)#>tHLGfroGl(EM6Q^xs>edmKh#;17xQA$|wI!7pD+{oB>0`eW9 zs#*US>+2Zb%D9vdFm%SFr;+swB~(iIkZZO-$(q@KyMkgcUd<8O8Si84y9e;y6WC&; z$0o48nltcc>|p&Q#;Fp!mHSxWyD0EoBse(&_r;Ej1K-6$9_zPq`~t?C7#A`2ov2C~ z(+dcCDoqUkKP$1~JK^}wbTu47XT9&D!grHV$9mrpt)6Qf!1fKS-^RF!G2RrLPYYpc z|L0iH#s()CE3wk0n;F{}A7JcY{3hd6#(Nn%8Gpz)k8u;@0${WKr?8-i4H_7iGCs}N zcNG)JxRUknF|J{ZkBiKwj`2r~8yLUExG9$R|9E+5J}qo;m~k89GmMou>5=V>ZH#v_ zb};^eaVlfM*vYtsab6tn{|~aDfDPVZT*UZG#-)ruVO+`hbH+7{&oZuKe9ULh!?HKy z1~(h{j@iDO4P1?wPZR5JW9+*+@m;mFu)dJ>zT2@N#%-+U8C>z*e8`($nt$V^OP6s3 z-*s9rV;k!qWb9zPgK;Y3=NUU0=Q7S?{0id&#)l+!E54fu-_=VI8ZP`KMmOQqVIZaAR9Q@U@2pTuTq9E&SQNEV~zD!F)m>JJ-+x{<1UPScTHFO*8d`o zP|gOWjHfdW;0%T`u4KLMR=kEYNMd~r>u+LQ&H6;fb*x|FTmKtaa6cRPE)-LInDzf) z+``zy*mu1)hH)F~?`7<}p37jYB*-RRXZjz)b}nHm8`#+33C0e_cQH<7T+G4dW<|AHleW^|Kf|q~5LA zSy0CYvl%xqu4dfCcq8K$#!oSBV_eHPnF|ofSaC>~=QB<<_3(dp7T~AY=4I4%jPtpM zqZvC`zuuPs<6VrMjF&UcWBj;J&jpHRTtIqi{~K6P#s<9@7jXiM7?(1Bjd3O8BaCYp z*Dwj>dhk`o4#qnfr!#(p zab75||FJ#+8$8Omfbm?$Hg1wM#zm}O!MKF=PR6CI-@rJX_34Z&d%9(bOIhG#gHeoY zIDxf{^VvgjjO$oGk8uOz+Zh+IeLUkP*3W0`aC3&kS*xfix_{!xRh}v<4VR` zBu-OmSnv`X)G>aBaRcLtjGKDx>DAW9vM2AC{D`WuBV0|lRBx)fK3sj@oeo#i zkGpyXSd@SnbCm+jFK-|?6ICf&lyBnCAe%ulBun}$@s)9+aeE%DUZeOoSc)j^JYU-1 z*a>oCODY1@t zC|E}ZRbSfFZf4y|efb}quGC=a`X>VY0Y|gGXQr7rAWBh2lPs!}66Knq*cKuC88;{- zAA*oaIwb#}n9}Nq3;mVptCb1VI?{z_Gl|C|;!Ps}0_h^h2V3M_=6l#z~2^!idRYh)HnE%F!ujqguL7#3w zsCyFtPhdeExz-RY%0&E?M@*(V=0F53TsPu3htXkMr?b4r`tj3B2 zak(0?C`gHz5vW8A13%4Hq;|3>orYRc)j<65>Km)p*wsjP7redcHmtMKZD@EAWdLt0 z^%x7^A|xCG!1Fu!LD=1;Gwu@PuLKS2L>1|XQ`JvVwjlW8yaN6+gpN3IK}y`Ba3yY7 zm=d=%str|Y>e^uIW+p(jpEL*y!(c_Z_E^=pZfc)izQVLX)-4r31?0@*z`uZfQSq^= z4c*kVV7%T6#UBm{9oi|c>YHxrkd!M5r^baKQ=1Yucvi{6OEloOTU{)vk6 zB0?qSq=t7=!WVT`!co=mp}|F6*nK|x*^|+^5q7h^bW7(Bw@{iFrs6;8a*d)KtLkT0 z6T0}KzL1CilmoV_$EvP__!erkbXZ5HbXH=Mb|2^ zGxC(!Vb>_J>SQINt!s-7H6a@(S}yR4y8E))JzG&)D4>)rv#Zubs4-)Gx_k5Sw-c^I z#>Wxx1p2Fr|2ReQ>CZy<83NVBq^7>=W26!3vss1J+z$(8gqcRw_ja|vx$C4jvJ-Yf zC$ypy`YRD#(FwyWO4!h#)T+^uYAOw(+auKxR;od2)r)quyMtJbBHKD)AcrcpVIhib zbBNhslxWqVNHxk$*;8L_!aN><#bYQ};R)b@z}GY8KA+dcY|KD3W`GhtEx4oGEr+dv zu#D}wkvsHBt1*}ne2t7O71dv@%IL1zJN(#v4f-y^MqeWK0L4BmSg{Z7(iYwl+7Mh6 z)G>Phg5418g0>y6y1%>HYlvC%Sj+}^4I7SuNIlKx+umiU48j3U*UY@?kM3$;v;O3b zTgw$?1H$`P)^{n!cyy2w?Fv_-7lkR&GeVVUcrkjjy`@W+PD+l&N{ zmLd46fI2Gv_n_P1L9YHtsO-#=)ZD!iS z)L`1iRB4v!hA@p{n%Jz!4;+$NFo0<)(_u{0nT}@aWSYfPW17P>k7+*B0;abybuk^* z?3N{4#e#KAH!`heTFbPKX#>+!Oq-ZCGc}khXZbTA_Ogv}6jO(rnPjG^Ow*YNtkG4O62_M5T~_?TsG z>127r^bM;Am&$nmSLnXWL)4RgZv2%^FQs2NP3F~h)Bhdn=I1s}_dKWjA2dh#55fP0 zu{k$Cp>DcX7R=|&Y2Qm{&{m9|8Q&}WwvABd`EB;Ixov-+d#*ea(b=dBAp++kq7?|q z;E6tukPf~MbT+QyPT|Z{06K{led0lVr`sz}v2>cR*n^1{j1-Ep+N z^4Lqq;T72LeF`I@4S%;Ddh-v`a5V zIRriebSOgJKvfwAdIth!Rs>qfJkie)$h$3|io3To$^-o#ffPT0hTwcak)uEtAW+Q~ zfeuf?%MI}9p#FVvS^*ygIt541^Wbwp%Mi$(=yS{y9fYGMrJoA=3qo>V{2in7V3zfl z5nQ0v2$V6=vn>A<^cUvOgI+a2CNvuKMg+>t1sa5R1;j^zE@XZY=ureJDACIZREQ{y zmfeHV{&P@@I-FlW!+CWh_!iLVxXUBA&j6i-TdFgVYoOsHaP9(c1I-*M-JS*7hM>Tn z=r=ed)}aZAUONh&q;x>vM2G^PeiaIbK$To{l^ezYRBEEnjFtRe(9_JH0X@$=(PdZT zas>&wK!0Ms4fIYY%R!$*pjr~8g9`CP-yDa|2)+e0Xaa_!8z2PC)d*Aw4Rj*{MIhR3 zqI6vZ=z9paL4F2w_$29}PeGSvb3d4j4vVlIHkF{iAW%B^wTKdj*SS<Z4}zK=ldbO!Y0shDICp&oQ84(CUakPEaPCvpQk(IqqBQrHxNK8rvZd3x5M?|qd*@-s0B|n`VLv3IMDl; z-wyf>0(q3^?4@W{*yn?8LLhk!=x+#a0_|Y#Stfh$I?z`TNL~**$)zZl5V;Q2z5>6# zNkJh%$0Cr86Z9$OYltF{hlnm-DLvr=y?zy@YQ&ubieD!wbHIbTl_>!0017~#N2mo~ z2YTNc3{CK5pf|hGw%~6AoqHb=K!+^={TPAz%BP^?%Fqu;4%)XIO#?m|v;koec%rv# zKy!e<4YUQ}hkls32tib@#)fJc>VN(YBB?3*u-+=DA9|eWH z7WBpkWPuieK88S^z;CdWLkQ$8qQ4_F!@eE#xVsWP8K4pLflVkC_|(mc@?91B0%kD- z^vNeAUjwS{RFnab`-3JUP(nm^BGAH93!4873Jsp1E`*}G_ zy6eEKeF5JBL9q_Bz7B-|-vB!6Md_6S&>Dn%$ZJ9Sz9i+NLFetoc@gpg(2o(wi=ToH zdIfz2w+?xr5AH*c2Tyc3Y$KOQ8;OWMf zZgXd#9}uNWRN{%!1uF4GuVtPn-G`E#DBV~RPn0gIh~Iq-9qJeZqF*pi7lCx)M@B^H z;*NNtbc;qjQMy4Ro+#ap5l@tEh=?b;jd`MUNkwv^bQ?7z41kzcsladds=~6=DIEX zwcF~pl{{PeY}vDwRi8~(2L~uESWjVARWL<;E4_V3z|N?h$ve|`YCH3H7Va$BS+=u! zXYJ1VosB!2cN#m}cLwZ=+LgR3eV4W?e^=qIl3iuHs(01ys>+{?^TyCzb*!aYty-F^ zmW@o^?%bZYyJI0Qyd4EQiguLlsN7Mr zqi#pTj;0+gRsC|*_t1oj1H%}kWLv;?#fd%y-nm^vlKDuq5XqJx;W8v$jl^q_d_6K~ zL>A4+#6ULf$S43=MIp0fWS5Q%HDsBOObd~12{JA-v#v$v^~k;v1!&&UvcquiXxq`g zL)jUy(*}1q;E+_f#0jV5!7T-FOc7jD3g=Y9JvDGp9bD7^CpE!MEpSvDT&2KCg>X>q zuEt$TZB(tJHn}#nwq|$T?)u#gyBl{m?QY)PvfJ3*w!3{dP5>CSN*?x^AOo7VG;e9y nVr*&K(!NF68nD&2HEL_}*3_-(Tb)~d4O(P2Y2{X&;XeHzZa@z2 delta 32133 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 3 && drive >= 'A' && drive <= 'Z' && path.charAt(1) == ':' && path.charAt(2) == '\\')) { + return path; // unknown format + } + + int remainder = 4; + while (remainder < path.length()) { + int next = path.indexOf('\\', remainder); + String subPath = next > 0 ? path.substring(0, next) : path; + FileAttributes attributes = getAttributes(subPath); + if (attributes == null) { + throw new FileNotFoundException(subPath); + } + if (attributes.isSymLink()) { + return myInstance.resolveSymLink(path); + } + + remainder = next > 0 ? next + 1 : path.length(); + } + + return path; } } - // thanks to SVNKit for the idea of platform-specific offsets private static class JnaUnixMediatorImpl extends Mediator { @SuppressWarnings({"OctalInteger", "SpellCheckingInspection"}) @@ -433,7 +455,7 @@ public class FileSystemUtil { private final boolean myCoarseTs = SystemProperties.getBooleanProperty(COARSE_TIMESTAMP_KEY, false); private JnaUnixMediatorImpl() { - if ("linux-x86".equals(Platform.RESOURCE_PREFIX)) myOffsets = LINUX_32; + if ("linux-x86".equals(Platform.RESOURCE_PREFIX)) myOffsets = LINUX_32; else if ("linux-x86-64".equals(Platform.RESOURCE_PREFIX)) myOffsets = LINUX_64; else if ("linux-arm".equals(Platform.RESOURCE_PREFIX)) myOffsets = LNX_ARM32; else if ("linux-ppc".equals(Platform.RESOURCE_PREFIX)) myOffsets = LNX_PPC32; diff --git a/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java b/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java index 5e6a2849f725..10264227a0ec 100644 --- a/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java +++ b/platform/util/testSrc/com/intellij/openapi/util/io/FileAttributesReadingTest.java @@ -60,7 +60,9 @@ public abstract class FileAttributesReadingTest { @Override public void linkToDirectory() { } @Override public void missingLink() { } @Override public void selfLink() { } + @Override public void innerSymlinkResolve() { } @Override public void junction() { } + @Override public void innerJunctionResolve() { } @Override public void permissionsCloning() { } } @@ -292,13 +294,22 @@ public abstract class FileAttributesReadingTest { assertEquals(dir.getPath(), target); } + @Test + public void innerSymlinkResolve() throws IOException { + File file = tempDir.newFile("dir/file.txt"); + File link = new File(tempDir.getRoot(), "link"); + Files.createSymbolicLink(link.toPath(), file.getParentFile().toPath()); + + String target = FileSystemUtil.resolveSymLink(link.getPath() + '/' + file.getName()); + assertEquals(file.getPath(), target); + } + @Test public void junction() throws IOException { assumeTrue(SystemInfo.isWinVistaOrNewer); File target = tempDir.newFolder("dir"); - File path = new File(tempDir.getRoot(), "junction.dir"); - File junction = IoTestUtil.createJunction(target.getPath(), path.getAbsolutePath()); + File junction = IoTestUtil.createJunction(target.getPath(), tempDir.getRoot() + "/junction.dir"); try { FileAttributes attributes = getAttributes(junction); @@ -324,6 +335,18 @@ public abstract class FileAttributesReadingTest { } } + @Test + public void innerJunctionResolve() throws IOException { + assumeTrue(SystemInfo.isWinVistaOrNewer); + + File file = tempDir.newFile("dir/file.txt"); + File junction = new File(tempDir.getRoot(), "junction"); + IoTestUtil.createJunction(file.getParent(), junction.getPath()); + + String target = FileSystemUtil.resolveSymLink(junction.getPath() + '/' + file.getName()); + assertEquals(file.getPath(), target); + } + @Test public void hiddenDir() throws IOException { assumeTrue(SystemInfo.isWindows); @@ -535,7 +558,7 @@ public abstract class FileAttributesReadingTest { } @Test - public void testUnicodeName() throws IOException { + public void unicodeName() throws IOException { String name = IoTestUtil.getUnicodeName(); assumeTrue(name != null); File file = tempDir.newFile(name + ".txt"); @@ -560,9 +583,9 @@ public abstract class FileAttributesReadingTest { if (SystemInfo.isWindows && checkList) { String parent = file.getParent(); if (parent != null) { - FileInfo[] infos = IdeaWin32.getInstance().listChildren(parent); - assertNotNull(infos); - for (FileInfo info : infos) { + FileInfo[] children = IdeaWin32.getInstance().listChildren(parent); + assertNotNull(children); + for (FileInfo info : children) { if (file.getName().equals(info.getName())) { assertEquals(attributes, info.toFileAttributes()); return attributes;