From d4b5956a815788e3d3e0c48d3f495bc7f0561a04 Mon Sep 17 00:00:00 2001 From: xufulong <839789740@qq.com> Date: Fri, 1 Nov 2019 02:06:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0mp3=E8=BD=AC=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 增加mp3转码,使用mp3lame进行编码 --- OnLive/src/main/AndroidManifest.xml | 1 - app/CMakeLists.txt | 12 +- app/libs/arm64-v8a/libmp3lame.so | Bin 0 -> 222976 bytes app/libs/armeabi-v7a/libmp3lame.so | Bin 0 -> 214484 bytes app/src/main/cpp/audio_lame.c | 224 +++ app/src/main/cpp/include/lame/lame.h | 1323 +++++++++++++++++ app/src/main/cpp/openSL_audio_player.c | 4 +- .../java/com/frank/ffmpeg/AudioPlayer.java | 20 +- .../ffmpeg/activity/AudioHandleActivity.java | 10 +- .../com/frank/ffmpeg/mp3/Mp3Converter.java | 340 +++++ .../java/com/frank/ffmpeg/mp3/Mp3Lame.java | 71 + .../com/frank/ffmpeg/mp3/Mp3LameBuilder.java | 147 ++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 14 files changed, 2147 insertions(+), 9 deletions(-) create mode 100644 app/libs/arm64-v8a/libmp3lame.so create mode 100644 app/libs/armeabi-v7a/libmp3lame.so create mode 100644 app/src/main/cpp/audio_lame.c create mode 100644 app/src/main/cpp/include/lame/lame.h create mode 100644 app/src/main/java/com/frank/ffmpeg/mp3/Mp3Converter.java create mode 100644 app/src/main/java/com/frank/ffmpeg/mp3/Mp3Lame.java create mode 100644 app/src/main/java/com/frank/ffmpeg/mp3/Mp3LameBuilder.java diff --git a/OnLive/src/main/AndroidManifest.xml b/OnLive/src/main/AndroidManifest.xml index 4b6de5d..9bed52c 100644 --- a/OnLive/src/main/AndroidManifest.xml +++ b/OnLive/src/main/AndroidManifest.xml @@ -5,7 +5,6 @@ - 8MQh#M+0C6zfFJ@Ppbac4 zL8=sd1wq>+ibbn7+kygKilP>(^72+&0kwvNt8z&c%;ia0pKkzwK#@o02`$#{yB+sYJO9~>yDL(;zU#@Q zo*A`RlMdC}3xQfWefCd8Y2WPo`mgS_*l)=VKNb^+Dcjgb0N5QobAMOki{ca;#E9Tt=cFu+I@EBK{e|OavQ362e@Bn-R2Y z87F2Tb~E09bg{%U5orek$#DYWWP~vY1qela{}QC>T7)o4Nuf`S5!n~%aR_%K^gy@` zST5p82wx)oKEmG-=(-2koe22|V?g&o$UyoK;wKS?Aw2_uu116`q*oyR5n~6D4nR7E zX^?G~7pdDB{}$;VBfSdo-EADI9+-jO%Y64B?GpGEo>q<^QN>VL6_RwCR1d^Gb(*=lX;O5g)>HNLL~}h>*_tr;tuSm;*YNu|mYjzy>2GQ&WaeL41g(BfNt& zU8P9RLNFrGl>Z6hmkH*_A=Ackp7y}c}Uxt zzXb7S>7IWkNw)R7Y`<29RZILYDv+ijMGsZ{~YmjPHR!I zme9phLEp?+hAxlDpE5R3%FCA0T5>WHzd}eycnINM1iF5NP=>IYi0`<@NqNznb|KC~ z7>ba|7)5ain-JzAJc@810$o2*Be4tdc!UV1ALdveEn%Q1;%!pqQ&M^?(oZAYg|G)9 z2w?&OUC*ddhyT|y)sN%H5Wj-(OQt_UJQJaSX)St7OCausFb!cNLM=jP*K&XxIOD$& zzsl*^h`S9S-2_Y2W9|-@0um)iPdrwC05+VvYGzC!pf1`Z%@<@5uHmm=(7I*DV7st|ISz6J3g5Vjzc zBK!&AG{R1V&k)9=P2CZWApHgcU4d$({C_|GABp^UginwTMjVCkd!+3McOcO9h#H9( z5dRwC5<(5a+X#O_n212vel-#UP{t5Wry{Lg3po)xP_=ObN?a4W*cj9)J@32WOvK;|()lhfH>*YG1DkPBAE0|wHJb~|Z@()U0) z=LQ-Te2VfvbPR(X3~Opm_frr@g_;q9a)`g8m&)%@VevK$FX8tEt9U%)kKlH~9qc4V zsnv_0FkZ!-jAH&k|28!e&)HObf?Wl)_W!1j ziod9nPXgF_a2w?4PUe3-v|~A&U;wCI#REKlmMY`OH%rk; z=znMBRB$=HXcK}9-BGTym=`p^$`s2BADQt*N;{d5q9<7XPxa{7-;t0%&AX&y=r}Gv zH4+af?ZLcY`8bqZ__nO)yRB+D_c8uA*3ahOsyJ>}t~~tTS-&1q#@#ADX1&$qUw9q) zEQdPL_`X=Ame0);qd<06{&AMism6}{pQ2&Z-v>RK^hXHgN#W=&b$6*bbQgq4KM( z#h#D#@Pj|A`fvd4peq%Q2es!uT|1|9zs!MZh1$GZg?os{=0r(umjH`g_U9Xd83+qYHF10<}e6gD4Jc8TlP)fmmmdp3M zL*=J+jIKr=U(uxE+PqlH^L@Yo71#PZndf^w+h=Wj?_qgaspcXH7bNOXgR9ra- zK;AUg|9G}z4(5NJ=jq3^QN*Q{^90+a0c?l0_5`vWi|XC6onu+f+jQmsj@!AbtIEHQ z>+Qnj2Mkql2jgFZq;Z*WNd>Mj9>(&&GEe0n!FW0IAJfg>L>`x?*nT>gzg1iB*bb*N z{uty&^={*JQ!788%O9W{_g7d?-r;$q$!CpXAGlB{s$>4WtcMzZT!32d6drd6-{ZPY zIlorsomFIit1>pTgO|zr@3%!A#|mEer!xQ1k5zuH-a)*+m$4nwa5wu2CA2ZerRgX6 ziDb9Wv0vm+ayIn-%r6t`ae^r=VQ41D?CrNdg&~T z_?x$??sD?fg5B*C3YvaK=AT`rAR2 z3UM#<*GyO2KM3=Rt_RruT!~ikBo!8KFkZuQNN4Ud(w2!Wk>#P^=vL4>8)5Ai|4(Q}Fp6zPD5LFHirF1;YQ1q4wDLTUX z{~7yT8h;DRb6rG7c}~E+7=mlAUYb7Z?C{UHott#+e4X{}0{ay+xx}Awy+_Ze^6_JP zmBRD=V;)~kAA(rVKVUyc8!_r)w=mOljX3DA6V3Izq+ztRIb}!ui<&IJ4&s04)Yt>{-^PNA&PN-E`KApU(@rC zxILe-d>qU_nCD{w%SXc>Mn1{s^-7hojQLly{`As~;}*tW*Wpj`yx8lnw*MV2hn_Q0 z`3H1%xE5@L52wRXT%*-t7TtK<)4x)I2|O?U#^avE_E3`psf|+3A+;P{KE>VFnMZf< zxrcUsrQU@ySk5o%ZVO7$M%_0hov<*|H@>BjdGkIO0EUufgI757m&Q`V{l zOo&nA`>u07bAj#2eY_7!SJ}natPgjyK4|*?F!$@6PHvNUosBx97NGHu;d#1?=c#I4 z@m!7Z(OK&F9@WN$=kI5{zG&rq#Qbxk3l~qGx^7o@2FY`;QJ%@fTP> zPwCE!KIi#c#^sOT_WVSV0~1p8XXc;7{nGTAmKCbk^*<`J_6&5tqK8%ywM*?UH%ENK zatLDktd;XBkNaqy-$)Ovsr>YAYB>&W(<~mZ5OR!h(X(*6#__z{#`aJve{qOf&g(HM zzh-|v07>QF$LFF|T+RzTF9zx4Hk8Lb=}WafZCqLy_oIV*T$(@WyUzHI4^r!WN4MVj z*ly3^d5USGTw|1SaISJurFS!K;_-d_YqjCq&Ca2t&ZIx8_lH9d=o-uYt)YkPxK=Cw;~6)P*G%50qx;JBH`c=s z*uT~E=eN9GU(xx!Et>zSvnO3xukQYfTJ9)N@4B6FvHoOUXWhx+`SmQfN2|A- z_3ad|v)a6P5eiKG4aisfTh6_Eh2=2(P8B~2{if?-E`I|1En4{-c-&|5KDR_=7x%FK z%;WPhZG2y4xjoDC*TMWpSZ^!XuYQX0S%|5f>({8ji;UmSc3`G%o}S_MzcY*5&-{-m z;|TxZuPTtucm~U74$r$Z#$RLpiVF;|KD+^iq$s( zW!$-JDS8m|g37Pr^ONDM55=rk_px8+(C%Tol&-@&yT+S4>&lOznS)RYo{zxt73dWVL6xcm#f6xgP4`;d2utHU?xoCcOhM!e%*#G6~ zE!uePU^#EoJ*T+B`~zN6`P0-$T;%qTVEH>3-@x`^8}A?IFg_E8PO$?zy}H2qX4d&X zTX`PMp$Ejc!r7j@!gAit=Qf(2%;0$u#V>bhdfv$V?=U`s<#yY3=KF(OZ_>>wqnYi) zF0_H#f9kiY{2?yodXekR*6k~kuA_(3S>Jl;&N;`i|FenZiDoEQ3FBryf79^0kxTk; zRHzNytFns+xxc3})pjN^PVY8#rVsIKCs(t*dXf2mq3~n9qZhPrm7$+>W$?I{vHojz z?{=Q=Q*_Tsd-|zztN2pAU#P{2RJK=Ty61)wY|qc}ywJwC9~w{ckJtG*BN-3U$)||@ zgpbdw6&~Q~OL*M%&s8Io{xXvk^+iBfy6==`_mc)Sh_Q~9;=`k3{+ zN~h-u+}{DZ=S>-GH+HlAcW|2)viuLQ95j6Ob^0}k^{s^GqbAQK*U`@v7gwt=>b*_;TZ<=qj%nPUa2_wse_P3VmCffKn%ov(K&kyniE07I zxcqw+yUm0YUFP;|;(6-eye1y^b$m{KAL9d9Zt*OiG{%Q%`#9aX-=C0A?K#HwyoULI z#p}rWu4;e78UK{!e2Dvdi1FbphmG9dc*ak%eH+C7!*IsCGCq%9e8e?}<>}z@`fQ9^ z?*Yi2E_$z(+BxE0m9YwPq-*YV^pK7hh~M>=%6EXvPh|N=@r$w_Gfv~&nLY@oGpjtq znd>gfC~)7K!(>KTPPw~GOirEbT8?&YL2;JIDlRNp2r#!`VW|ro zr9et>!@}HL)S#eFg3CNP8HFOZ*i)EMCIRzv%A5rmg*nbrSFxwexhTg|>Mkx41Q%wM zJ99mhrxxZcMTgK5XI60$ipy{pl@Xu9qEzfIaw|on8&sKdu~16R@py_oxuP(qFsoz< zMWs1qqO>5VXe9MSNyVwDG7nIZkeKR(jL=oI#92^WTp|*(v+v0COryq#$=7Dj992@f zB+FIo%z)ILi!wdp4lotvEY_DpaB)Gl9#)%KlvSLa<18#0rS@7BW@nW-OBZI2ju&V# zi=xC`lv@lDmx|n6NUpeOzLHR+Clmny7YS&`l6!OJW)zkbi!urp=5&ra^(D36 z;Jl_VMIv%J5Q0o%;-bO1#ho;~ElXctdxpO0WuyfiiuYi`%fOPH3{M+fl983;T+}A5 zMI)WXMFmT=>_u@MNX4*7+)T%*laMAfh66>AIw`88K{Wa1i_#JgCUmaA+|6=%C@RV- zETOopxIiEjFNQrSD_&Sqf;dq%MKg-BbIQducTx6iv^%G?jB!QDF=NwE@SKHZoSIu$ zGR?C&?h$rp0gl{91q!&4w-E>NtrZ?3^5lKlbi`tobN1KQj+6z(PZe5c`cHkS%P`5 zm{u;J6ouy$I}6DKN&KA^n^jO;nxo#GquMMs_DX>rAhf?YgIm)v!=00pb zJ|+A5H)C#hb`wdhASYu{PWJa?JHM~`_L5ZA?`n!xr;`?>PMW0{>FeM;J6JYYwcVwz z4rM3{=(UKmsCa%xiHg%a$|)~#7L{TZDqC2@0wuVxG}m3;&b44+Mv-D2r90a(bqQ9v z+civ4X{edHrncugOERz=vKG;zg-Kirzk@|zSUNvfWme`jt=YM5p7<)F={OhR$tfWR zAUlU|BNI%^WnoT65iL22nz!pMWp~nPf~8Iq+1^35JsmN*)7Q*_!i|6$ej(BjIdI;VmY}PS@3&`J&I$N z1^sYik|HC^Szd@rAS=~6m3z=o3rHyWoaU(=gu_mX5P!Sq$QRHzJ=Q>MsGo6Zc z5pae|as*5!c})vSFp^{T2G3Ykd~CS&;$2EMpTpD zhG4YYv%h2LsXRy}Bg0vmQ&j3MgCxq9wBM=d)nr#Hxo_=gVMb{_tZ;@p0&R76fMs2v zN|YY87omEnWiC$+QgGr5JcZZKWUVG;>)3Zjq`osk##=3qfHq+;;at$3cb(1?XC_UP zc210Xj>k>DP)5O>?eMiCqI)~YqMf+|EQ^Tlkwm1Bxq3kH>N}B{!mZ0J6%ZBe5Ed3> zkoUPDE;GZEPyVSgM`mS|Cz4)b3`dV5g^m;2Y)~{AiVVDMXi=8pt;m4tCd){>)D<;d znC&huak<%5ZeyI2laa4F)9vM_W`I}msN2|5b4m&_mJkLzM&7){-Jazx!iK3mhcw-l z;mLN=G;J$N(SK}!uC;vBP9+z$TtAo9MPtU~F6b~zX!EuhRwNfQoQ9#jX4=CnQT7Go zA5a0Rz7-TN%!b$GDV7!#HK(HtGk;1uOm?~2`XebO6-m2B%p=E%x^O?8WiHx!O4GkBs{_am9;(doEGl+;+Kb95EP-Q3+aRsGs`>R` z2r-z~!f?>DVM(M6+F!zzEH2B*qAjD8BTc_~ox?mUNhb1Sy-VgUBQqzL3qK*dGnFK~ zT?gBXz?_1W))s53OGQ+RrdW5W|H_7XHuha@5>XJ^eajI1H+47P4!SUGB^jlqG z7rV2|*twx5Kz$Y8m^Ru{!BER71s{Uh0T^g^fL=37v&VlwF2e-wX+t_mz1*@Q;E)kr0j(- z+lov&3ZC^^*+jH+Ut>5F1Mh^tAx%dW(@ok^c`cv;SB`JsDayMA1uyfsandnk?rrVW z;@Cso(#(fMJHT+#B=1#`lB%BVTnkHc(lD)yJ#x3TbBQ)FtNT;!n1Y5Kb|_0Ng;u8y z>jwjpsU)O*u63~Yx-7}wQ_i*aUPI}?>spK6mfNYl*K#|I6M>x@cqONUfme{yLT7PF z8EovmWQ&Vf!;~z=(bC)g_MCRxPuR7#pU~?Vdo`?4pB#Ch%GVEu)foCAbpKF#`$VE7Ypar- zSX(utbMx7rCz($LyvBTLXb1C2V4L|=hz{mcK{_#?gkNhu6_h*K zqR{{L{X4N=GpqI1mzb`xz6#jUw{F)W?BhFFTZQ>rYs+xEwI!fqx zw{~OQVJY%}C9^=ZV|eG!?Gy zu2i}Wrw?sUPzu~wKQZPMsidOIc8Bd6Or+9i4|)_zBOs`Hkp_o`g#Q(^k~1%v3X zyt5!gIA%gtAU!BHiN}D^MfoE+pJ+AT*p@$se<#6&_YdgOepgNV{R9n9`J-B+OUHjZ z<0U%$9>&XccrN1=I=q1KDjj~A@%1{~!}um0zJ&2@I(+^fwf!|Z+_YE4cj@qzTu!|X zU&Hub9loCN13El^w_5%o9sVfuAJyS4%zsRWZ)W}m9e$bnbxwzW!2HcRd@GkP=BNX% zjqj7pZ`R>E84uFo&odsP!}l;AuESqvJW7ZEneh=i{3FKWb@-=@J9PLd#*=jTmyFNR z;XanzJRN?8`O|f{iRI?f;em{o=LWhSjf0Yg&#Q1t0ehcH9boi}| zZ`0uu7_ZUcDcqi2I{fl0YCG$7_|I8xdv*9MF8_cIpUe0m9exkvM|F5H zcopO4boj%JH|y|CjEmbl>VF;MW*z<#<3T$76~;q!_yNYlb@+RXN9pj786Tm;KV>{# zhyNFkmqUj)Fn^K`Kg;+W9e$PZc{;ock8ipT4`ke>!}~H`qQk=&FW2Ewj92LJ(TrE= z@NtZ<*Wr^H-=xD+7~iJDZ)dzlhtFetmk!Tlyk3VFFuqrZdl)~U!^;^zq{Ay1KdQsm zF@8*k*D~Iq!yje*oDSc{c(V?Fj&YINQU70L+^oa*G9IME-();Qhrh#kxDNk-@hBbs z5#u9t_~(qr>+o}oJ9PLJ#*=h-AltDyI^53qJRKg(c)AWB%eYI2I~Xs~;nNu}*Wq_C zUZKOCj92OKT*lYy@IuBn>F|Y&Z`0vR8L!ddYZ%|9!`Cxjufu=E_+B0U6ypbU_%nT{F>ajq!LLzKd~(4sT|Bjt(DiipNWbXEW~7;Z=;6=rev%zsXgGr#z$ zZrqvQtjC!@M2|CnxE^Qz5qg~YdL4cxRpsBS!~N!}_yHaMBIAdygCEu5Po=5l9J>zQa2@>Ib@1lv;DZ0| zgl7M>dd=6tgRX;zTn7)o4jy$Ke8hF|UA%r7@cq#!WyMne+r<4MoPIA~yBeIT{u>a< z_%4Zmy2gySLgJV4c@oZ_rYd)(OE`aWrQj|JA1ak!BH=L-UM}IICA><)QzU%7gl9|m zCJE1#@NE)aB;hp@{-A{KlJG|*yk5e$N%&p~*M1Y5vJXhO_BRCxKP2Hpr13f`;ruBu zv5R98K1Jd`C*kzBC$y{LE_K|Ei1?E?C96up`4eviUoYYE_iURa9G`%;UE3rapPsf| zH4@H`RFu4365hX!8^3ui;rtUTO730>51054NO**VACmA$2|p^~110>Jgb$MN1_>W5 z;pZegO2V5Ze3*obpS8>XW(hY-_$?A1B;ndOpOhUU;Ugvfa0!o-@F)o%E8!y~T>Hk7 zvg0LuoW$>t@bMC!B;ndOtCT%Q!Y4`m^Ca9M;pq}SO~PFgK10GwBs^Kd%O(7F39pdw zpGbI>gx@LQ>m~eW623{oe=gzMB>Wx;uaR)4gzu8@bP2DQ@c9zHSHklo{D6cPNcbTM z_el6r311}P$0U5Qgf~cdxrCpS@Ove^S;Dn%iIwcT+x4G65msQcgjY!A1W9WKxPm=IoO86WJe?r3NN%&R?PnYl~CEO+9 zJ0!eB!k?D#atZ&9gjYy-jf7W8c&&u5m+)sKe3OLll<;j5{#yyJk?>s-zDvTNm+*QC ze?h|cO8AQsen7&1FX4wIoPU}~$vrCJdnNv3624Eu8zlTS2|p*{Z%TNxg#Ssx#n0RI zpFbs6a?KKcP~s1g@OLCUM8f|p;o%bg7YUD&@b@KrgoJ-6;qelFM8X{s{y!3)B;kLR z@HrCxv4qc)aQ^8pB{yBdKau!d5`J95OCHISIE(c(a7_PqeDH+|#cA{HHt=+$`bz)29j^B;oY;ShOod!uv>g zxP;Sh%xG7Xgb$GL5fW~f@OTLyDB%tXr@tkpT}cuiBjIx-oPXL=xn-V&-y-p+OStyi zKy-sk!ucnNlyXWWoPMiVyUHbel!RAEIQ@)pDW>qB>Zj(KPut(Ncb@cr@yDB zT@4bRF5%}SoPVlZxusdcvn77P`!d>p!s)jv zwQGcgFOu+h38%k1r(F&S*Zv+KYub}r!^xr|B zkmwVjjkmPd{}0fS65R+oQKHX)&XnjcL03xjCD7X?`fJepCHh;?CnVZ94fT&`ufGfE zNQt(BPL$|wpfe@92k1(P?gM(eM2CXjFVS|;CnP!&v~gs6{X;-UN^}h9M2Wr`bf!ed zfv%M3TS0G^=<%TUOZ1OHpOEN8(8jp-`lo@8l;~v8i4r{;EDTjpN(vp9VToqLV=BO=0KHwJ?*hGFqVEBHLZUN48-LVZe=g`qiOvI^DA7frGbP#sx>BMSf!;3B_k!Lp z(aS-fkmyR##tH59KL9#XqSt~>l<0>*XG-)2(3KMXDCq4Hy&3d=iGBj~35nhg+BmVj z{$GQRROw>|aSo1L^($9f`(A}Fchw}S9m=2coOI;s(tS01P0l07O``6E%C|m|{)G65 zan)y9Tl+?dZK>vG*Ltk3ntCN2waU|opYU&jKWGW5@a3PM-jd(X;?1*Iy(auALQ9Cl zXBEckWP`&u4ENf0uJr^YIea!(etlGgxxaatwZA#=olvvEW)ll;noD(CTn?XB_9TD* z1t|uRW)%+KBtNkr!z9vdBOJaY-dcb%IU27Ar^yNTxPz<+e;RSeu^tx-|`YGdC(oj2qTV zj3d3M+Os*;>~htg>^dN>F-*jH_iRkX-xyzD_7}G&8>&K+4AEQ6?)-Yo=mekbmCdO% z7t97r%1M(s2G5;*NrvXJCru(QAl%`LHrP_44OUyM!7tcpu;tf2za}(#SwMeFpd}>+ zx@W~)3~<%eTQT>P`Gxt2v&GS;4Pw_$=={!pR`0Wx056`f_X@x~{HnXX`RYT?l$4b}BmTOYf+G@gH5S$=cKvc~SK%@}ldtdrx+Cw1gQfO;6%a?Ot7)So@XD(SmxaslH;A)%u#@ z@Redi?bq{-wardb?WLdk)n2&GzxL|VE@*?H`hv+2Lv?Spiv@*4MVc97bIEj5++~d8 zCXC^)UfGzs*;0|Z&}jC41KjoF1YeY&7~>kh(zocx24DWI2|o0{+BM$bt2I{mXg?e? ztM8U%cX>UH9e%z$E$>lBOJ<~+7md6KLqD&>VD?V_w)HW0By7<51YaJN19{E}giKME z`&KFsx&YZm-z0kA@2B|OC}+}JQSsD<6()1O8*QMn^M6-Gwlu|s_RMs<T2t2ZNyulYYdi{8E(i&*Vj|j z*F?3i`61W#^$!@|8`;-)p?CkMea%$+Y76e9uQzyHX}4Ld$7HL(md1bI~n=uD1NG~*6yq6)HX2|SU zEVCc0MSz9Xo#ppG!ZA^_C zAbMDY#oGvZH6a8{Nbuo#$(VrnmA=4@juz_#gKr&dW$4 zpI;Zc&d@z20DOnsh4J}F2M<0NIy~~7&;VmV%scMb_yG6}E6`5x*#brze5bCorZt&D z;!c??bq^YTUjGo*^n8mryfZ=szlZRk;imeB{JYc-Yi)fg(NEl-_)Y5=W&NG(hqcg# zz6798f#_Q|^szhE!XWGi{My#zX!r-TCR*TUEP^i7tO{*@8}{B63O^2c7Wf-)tN#Bk z)%Q0mzCYQfIt|_O zyJHOIJpT~4veWqB&x;*qj)TQ&(Hl@Qzfkwz6*#H?(Z) zGRGrL=x_2Y+ZG$zJi|S#J}=baYrF&N+=}R>FLb^qL>4y3mQD%3P`Q9w+mL^k} zS`X@b%Y93I$GT#!Th|NF-|wr-#&rdtu6)$xb`P&FtZVNZ)%7acbsBTCy?-~RPO6XU zr8*CiE}HCdry);$|9;D|+{&`7hAh`XhMwqmuG_z@EK99_a$Wg$sw?b2QkOEvFmC^m ze!Wcn`VZCh$`30;Ss%%cd11ry^YZKeQ{$HZ+<#D(FZ>7V`oj-1Zh9M;Y_NIpr+Iw& zuq9pt&ZtZS6dM)`8~LCiFl7bKfeN3;nF7+a*l&^T8{XQQM)z2;zg%pzdh=mp8(|k# z_=^R{yNI-5hKkf5!rp2&Le@Di+E9>+^&C34)gl%=IZLFS>U!hnR)JCUB7fx+>^-fA zXOM2Uv%|L(v+estv3-T{hhh8PQ`V99bhb}j6KNg!BV3hKYh zHtE-|4gbXYWt|n%zD}Y(C+cc?0&73^0JaU49mbH>xb@2`Q>#~0ruL|)Oszn``Da`r z*4oL(=K2zcr}+|v$@VGyhC$Gs!Mwh%HuzzE9qe5p{PO*=zUJ;)9hxP&q)d-`Ep#>F z&%$3v>>uOD>+4$rIwsWh)rd7Oac1C_$*5z7>z4Y=&*u6DLbsgAPkgE}H1R$|&l_DA z)k9|z)UU)-bA6v;oPW?d&Z&L6(RCz>?%o+fDCa9Azw8Thec7R6bfyUMeu{DXXX+a| z==;aWgfYs(7`Y+0MB#wE!v3kU|CRCYFec43CjVUf|D8HWR+(4k`ke7%0nX;qTq4+e z0yYuvjQPl4Cf%^i3fvOyF0S7pDpLO$IsPl{n2d3A^SDhxTPj7G(iS?eTO)cXZNc{w zJ~w3jL)70v*5)+dr?90rx{n>|2>1`w5p-kg*o-}lrh{bP$hKuGcFiwk4cjkejg;o! z|JNzghsxaYQ}uZz^f^liMV~VvrypFGL!blLxBQ^GJmALanYR9Qm@k8*D|m zE?t|t0U^DI)hqDaiTs>M_%s9Ar>Qg;;nNKCP7=m^6MULMyDCE?gkOq()V|O}#M{I7 zBR0ht*{30!Fo}H{f%Q^gy|iGxRLd{Y5N>LYpz-J zn13IgZ^dkR)6fOuJJkEC=#t;nT^#??t_MP&7QIs*jd~;WO~h|TzKOVNOc(bp%9+p( zqsjIvkFOubcQEQ$J=3~nYOjDTt6anCpMu{y7=G(k@T`7nb?9pNtv^J4R2TUtQ&8_} z_^zMBcm2WZf&cnB?COoIhh(S7P}sbycnu|4{u(~)kp5!yQ}AIw$DI6U>b!N(_m7!B z#_Va-xdZZB4ZrGh_^|&>+5f6ObQmA_vHxrz{@r>=W>3MF-O9df4Sd+ol(J><{627i{?ldY`(4&RM#gEkL4 z$Q?fI=kRH7WM4b22Y&5;q#pRTH?khss9u_0k{u))_-n=fbxC;*`+Kr;7XI915ll@iZ9sFFptV6Fncc=_R0(V&I8VgFZaiDOgy)2 zxJCFT;k@z5K_acSSokcf)~34PpS$tQ^5l<1i)GQ;R6I|s)BHSo_kf>QoHbRIsc%6RXC{l5+EpP+S#FdyV{pKhXiIPJtqF5|c>X_fZ# z?23215PxF|jiG1!N&J3OneG|?8k2fn6f=vS@h?`M@vpq*{icvD^lnoX#v%f-_2PHG z6G1Y@m@4l$tug&;?>N01^WE<_J&X5#YJOW@Tes@YW=-y9JZ~On3bnn2cOqWhAJvq9 zxi#(VAE(!vuuedRF(gBh`3%TBYGRu2ZG(SxBV_n0-p`1Eyx)erlRuo^^3rn0BR_+j z*Z!h174PbKsgCcH^9q*p*QWkAT+X|oli&63$#==wDZNjTqI;j>F1%0iZp>e=d7r{5 zy-#s{Irr}%XOc0=Nz>~j$k=>wt`F}OD)0C<{0Q%SLFY+N?|`1Z^^dujj}G5AlN~Ml zzMbp)+GMRW`@#o%ah!A`}vYwBz3>QdjTTkDyz%(BH9i1)HW@oqQDetS0FF}Ovv;9XO%wfZN% zsH-d9kG`7zeiYsf{F=&vOq2Yrws9*QkHGHLHHb)QZ?sMO5Npf7JJ&vu-t#)Bd(Z0#-t*cSbL5)2 z_KEbK7tOW0Rr8uj4&T5o(R`UP%L1F;-y1!3uJ4cN^CjrACJ%alGMeAtBzsQlC%tpI zmTh?oYxgU4a+FU7oXfK4G= z-Sh?C|GEY5{n9)S#ytP5HLc-`DYYb<4>2!l*={}wo2l8$@g3}CDC}jwx{nQF?J)v#r*Ctx05ipqv1EzVqVgG%g5TNjSa1rG&eDiy?rpR z$u2C#JZyq*0{f@vt{FOOhR&KXcf&Audt>e@?<3-Q``4yEH++3;`10SMv){Kq?)+!g zN9ZfYF?cD)auUXHAN-CQU^LE6&rGlVsL0&^Wyr>c_p_DrWQ^;R7h2QE27d?}T!Xc$ zme#6)j+Q@QytK7SUZ+}yIa+AUCmBNXC%;DPRA_$EYw|kPuWkp{BU-0^&SSqF>yfff zVZ79Js9)V3$g4rSo@`sELSuTjtyBH#W+VTlwsops-Ai~spVlci)+M|{S?z+Znz25a zu|73mE&0S~X?o^e^}SPCTdMFb;3BL)``}|Y+~V+^#JyDaXxRN;@M8`DzuX^vDK#Aa zr4f1$zx*UHl$m1XZxWL5O+r*)m9kbgz?WZrzV$KsMu6TITtnqTpUF?ytNQNiBjy+t z-+cr4$hW8RBH_0?g*iW*zCr2fXn7r2om~XK3VS;keh1n3WAIw1@T|m0H>uH%UwNos&)``uy?;u3heo^$It=fD4o91l@g8Wt z!JM)VVHn;69gg=vWAGm63cO>leKS$J>aJ##(UgEPt}dN}cR+8$yP&i2PUtMW8#)v3 zxu)Q|jj)*3$$rYat~a4AmwvhjeE5chzulnstgFVagr8-Kxo9%fH5i-6h8c|cjaWlg z;@$n8uuaEIz2Tqrtg~S5nMFm9swYHCAEOu@h4-q=w|G4j7^~wdPs~Qtq2Ob@o;7){ z=4eAt@0z@*X8g=TudmP+dbhME%7C84(03jeZc9L$UsJwYlfQ4F_f{QLKK6BM@c!sp z?5~8V^3XF6?c0$Rc`^09&Y?{hAJK2`#Pml+OZx1JiS)fn`?o6J{oP2^QyYBIHK{(T z58pDRObW(xnC>DireT9`%rfI#?8^>C|8089t!A^gq3ca?$@uP!zWYfUY~E6i{ins> z(PFbWS}ve(|7{#pP4C}a!G7>zwD%<5Pscl+Ej0cOc+YmP(Xq!I9&UdFx_lCR(Cs*X z$OF$0V#ud%KumaJ7reJb{9PP-q7C*qGrp&y`=;VP^fj*0%K290!?(RAzZ>UwLq7S! zy8Fk&hA(yB8-F=bR3Ab3V^=Y{5$~MO_#b!qILux0v#NOSSftxKTH5xG1F&~2R`!nc ztzO4(V+M5CJ1&JzxG@K{?_)?dBq#lMG8SnMX~F#aSH6>p9roRO$O8BsO(yuV=r`#g z$-0-J7wu~n1mGDCVKjz#=N@|b-S3RIt}^2NYd_2}f6TQm(BH1mV>9NI1>a^Ft4~5t zzB2jMU4~B4{A<9sNzwP!ZaF?y_!9bw(N1B?xAs%^pofy7TTS2(fKCzb47Xc(R$`8} zZJCF6{jcCX>yv%qFGJ7F(6biE?E>_RzJVb9YUnOnzUnJlJ{<~qLH}%6m!g)G*T*c$ zuRj1CO24;!_sK~jj`Zi7pKc8$JtKW1|Nhii*y|q&-_``N0Kb`%7B*2V*nxOB=H1LI zTRm0Sqn+vt+chz)2mF>8)D_nS_n!ua_b6j9naA`2O=&0Yr7~i_-HLa{18u~UJW=#0 z8u)JLvk}8>r*WSCk--|%h%%@RM3auE-`uLcz4MA9rgzeD1Qa-4;oN5?GL`{ z>u7oT$D#+;;?Wo3OWo-H{qld&KRQRz`uB{ke=nhbg~L9)rhl{^(|2oH{~Cr)j}Ebk z>I3i%us^Xi48{HyKGngK^xeh`%&8>It?8I!(=gYjVm+Hui@B$)Wewf?UHPu>0b9E} z4!5qFbojGdu=nKe6EB*Kn3IM&vi0ztnj89>U%)pCEv>EA+SXP}?dAUttaZV5eu{4z zzQS2wgH4Pny90B?=BPF&RivJTy>7%hC@Kuq#!MVw+2H|_}c8Bj1 zdS?{aR?s%gmotBL*FT3e@o4#UhJQ24dhXsLd^>`3P_p&V_jSRddMAR@U~Y=Q_W)nv zo~`ta5ZXb$-8#H4No}FMJAE5K-*UvZtk}>EXAo!6KiUV-yPfC3L+J{%1HXCn;yF`b z-FZ{@x?z`k`i4Cay}~gcY?Zz!y|Df zy9+!dOKRU)LpSd_gs^?1o1VcpFvlUA2*~sV>QnOT*Udr+TE(3 zgnfoDFE6it82qF>gEb`v^xODmH9uK>4;q+_Fnqt`Yi%{xx>2vPx52tjXDH2Crs|e~ z#%c?`qy5?hdp%aPL?cb#m|e&+R$u%S7|up!;Ct5okWnAVC|BxRn z4hM!$0P`Hy9FP8$LBuM?{6&4NJ!Ej)I-W?=Yu{ zkO({B0+@C#br9d@kUTPwPkYT^$RP%L)d<}=jeTwt&NEJ#2Gl*bXGQeZmY%+?YodJk z)~WiTi#>f0-yh{$XXxXl@1JanK3SU_XhX`f{##})&8vUVWb@K~Dj(nIy^4FE#XU~+ z8Q(^wx$mg((YJAroBDWLu}5k8vNbJ=e8;g~j|)Di6?zhb@4VJ-c`()c_=BnGd3n1t z^741*K^IP7uVoytZT7$cPtJDIoI~5K;IaMJgQ=O|%K~3S)Iht4inJU39eXfO*NgB7 z`{e&g++%nr!cOOB;Q^3M&~UpjN7x^WZSXrZ~f5qd+iuEJbh03Dk| zdz`x*zVnz?L>Y)`g0n2XG{Tg zXHB-c6H^_#Uqjf5@qg7|ZHmBH2#g8oIc#2aK6Gdu0?iBCx2@=ZxZRDml8=XP&U?8p z&GqFy;KF{|ns11P5A81wTQH~T?1Iij&G%EDIX@ywxhF0PeIVZ)c4k2X*?!pQlbA2? zaeYz2Rh!A@YCwBWqTLFOXGc~W?}x^DJ?gh^@HMUCMa}luaIQl0(@W?t2JYcE}!+UJq??9 zB}}wb867P#D9f6)&a=|wUu_BO?VaR~X;!eDb)G19%#}5l=lTTpV#e^5sTTLxdWQ*m zgmQ%Y)+>)-3>(J6zr;KVgFZ(<{!}LRd~p`c$(SX#wFt~RLy)67WBx&~c7i|;UhKc)6c(`3aaTQLTY zo2*`I#p+agj&m9J9;w9Ig|q3U19AUAdbShY^bF2eTpqLyHns|WGtGzSl>yZ;OKR%j z4|>B5VMo^dZewaep1aHl`Nk4XZB( zzZdCZ@Rfki`truq67Vbl&l;o`fX4$K+wV7~dcc!TWg(poo(w9deq(9|cyg#5q;tTN zN#*!9!gfU0XHhvwXMrc1%K5{_)NJtNQaMQHf@eOJ^T&;;^TAUFo=1?r0G^9^rS(>< zcTHG3FM@9o#^zGqsQShs$?i$e4Xmwcbhd&$wK9ij-qwa-RthX_bbd_8kbX8;9E8K>TaO zqYyq2L+z&_dk5Bn%&0+j{NC!h9Z^Hdzx!L_o-e?=9(+GRcoe*6k^jN*#67{F zKZ_b+#}C(>`%TQP_KTkCZ<3p2n20@>1 z!+Pd41T+yJt=oqz-MvPf1)PQLYK1*Bnz6P_6T9;?5!1L&|W(rZLOykX)nqnUp#rFZA&zK#T1+cKp%or@E!x@ud!IXF|i5s zo^o(Ztik7jU+aWl@5NdB0+dZ<-HfpAnYErkd=J&_KJ*Q`+KBfc>5PHOE;I&ui^%VU z?GA$dorL>o9KHnKG3aoxaQFMCodn~~C zJB`7L?@xV*CY{F^PTCjO|q4VfOaJZv%YQ zGb|3@owS_9nS&W;Nwj7)cD2SuFIm*w1iMqW+}a=dRh_&nsAv9pL-i@x;nSx6aYb)9 zD#OBi|YcAK$TOAVR9C+reW?Ji9%JjmCsMpCLWin7C&M z(h=r?_JPL9u!)21iRK~p4F>b!Rlo+p4o-z1^Z;zyG^5zF;ds}>tK$dT!{fv43GoB% zQwTfX^{^54KatXhyB-$t@KKQ#I9rTB*ns+=4+l@6zJXm5_xN>5*fSX6A4`gMlRq2L zWio8;K>I4x?H3ZzD zhw!aG$(7`L$j~?L&zL(wmzKZpaF^`PKuB~K@6JLvWC)3S&p#xN^4;i?4dKz-^q|Ct$CG7KO^jZ+~*8M4w3fP&v)Ikx25ZzeHXj#*?+a` z9g$gB zy6*{qoJp5Shm9_G^KnyO$lF}!5Mf8obPv69`gfwR=@~;I_Jf5N;V)je%@1dl`0b?0 zhUx~$)BJS8Rf?^(YHZu7#sSZ(ao|e{S82Y`xe3h`nkVGrT7nAf+l-m^Zc%RgUW*I+ zpFI1v#@5G#*=^rvDXj3XrlOogl(QP~4um&F zp!XADX_^e1`w4st8+^aX7Dw!1%#9wHBgYXZ8iTz9@qTu<0Gvx)Uj9N5(!qE?x`!}$ z4Z`R(3KPEDw8wo0UtlV9b_(=(5c-jW_;Zt~?jJZW>XMhU`%muN-KmJ@qTNBRoZZ3b z%V^MJK)(!|_LzC7{Q<+&0kF#%pKlmc@e-i`$6a0(eCwdU4A$|$vEk?Pi@Ke*^7fwfd5#kHu zN87)My48Lpp6ZIT_ZUCM9uzaiJ_h9sML7$QUy6Hf%^SSCi)--iRLJa*dkES*WOrA{ z@pj-n5uSz|NtRuOzqb|gT!r~KrMDw?HQskTi?g1rAW@xb9)x-aV~og#(-;p`$9}+5 zv$u+XreT*_(~=dR&z$c))tW}@nErVfJs*gA9p7GmYp7lEt*FI$am$KJgIiX7iEsv? z5#b*Q%e&UDSl*>}#m&f%9MZDFju48_2cZY0dm@d{1ECv&72(_XmK9$kTtfH~;Y@tX zBw@}Egs;-D_2E=X$HMnDZ&T9(XJA!Tzf^Ean@b*3(kpF9U)rGjz8n6oQm=-O;A7xk ze5amfZdj$HkD;8XOcgg^UrhXX)*2T9{v`B|_`|8Ldasf`j^8#?c<_FF2zbmNtM{f; znfQ$u;@^k8GV#>ndjZ<>EBrXy3}{P>I7?glCgnMX%41iaN2uk8DSqI|FHA2)%@oxq z-&yyidD)CDw#yq*EmtQ$V*PSMYSh&vZ#tg)8PQ)l|8?cXG`|nqWWETV3rfG6&0kR* z-R#~DA3iUt*}QyBsyjxsxbd4h?k+uBENj*%XPT~VLt4y#TCF_$bvMShSR4dAp!3$GNLab|A8*|`;G=r-8D z0NDIM*nCs<70gR|?t9$kUwhwh@#0qe?j}87C;g&tla3F=nB!aw@4~jMMIW{f73Uk_ z_t4(sIPguEm%o1uKKTh#NZo3*<2cUtsE_mReZZ)q8W0wVk~Wt!J{a%3VYx{$QS#^L)b4KYQWi2 z6~>_3{?(}s11TNowe(258q+87YL6d1l=^Tc*0rI8ck@~>76BNSvpA#azIsh+1D=&t z!5-uJSDhK_*CTlD{!9494LI|!GIsaU+0GT4XrXm-YgcjJdlTNx#oFaUxNPb}&xj9h zHCdYC_dUM(RDlIxC!KlTRBAMqPUFDcJ4QRgt!vkv{IwcUz- zUxLq#_n+$myNVueoFlD8ptGL`@xH=y*hAB^k<+HY6vDbC+>G}YV29Dyf$I5UaH5&k zQT4o+&V6HBTgSYOa;Yq;pUN{rx9L7xcRF7Y=kuT6v^oE3;`=Ek`kfM6N@AcRb`b18 z?cKEUXq}%Hm=L=f{e2p1!0M>M==Tt;0YmJA`z6Fuoy3!zAgU>!@`z^@^2ryZw!lBE z9(J{L%yy$gISZzUAipioZWc?PFo&nx8y>0JY`Hr1{Yn4hfBqzFc+|?O z%~e*s-$}O6omU@?zFFKc^{*}$wWN!UeI1y~@Cp0PZ4vjsHPNue8ZJ*Ofal`b3!A|G1~Bm+!kSZf1)Aq{fQ0On_EyG z)|#EP?oof}Sqt^)-4m^f?HWlo$A)LHgT?tItRG33i#Q)S7?1JmgRs&V0$u2Zxzwl5 zcoH^y$(q!SurD%xr2%J~*x!+zqd6xGAqP{yOE#{`7;;cNDXIyd28_;E@SNv;vU9Kt z-k6on=CwUw>sJ1KLPZzYx|M&MKz6ReSTT{_p%cI@OJOJTY9|QfSx`Tv&A6`$>$qyq zXTes_gw0NY?M{XbpMmF|Nwp^jPA_a6<+$3q%A`F1Jb}3%zSp@sYK}N;FfWbG3Ub8y zhujxC-;od-oU|;qbWUPy?|I8(7pG5-?dMt%yR>9V>`hY~yJ>$x{zq2O)Yzxt2fb+? zVeh(cSuCA@rCQ8h&A5c_xSSIakd}X@3Kv>@30ND-&Zz0_A}hu|G!qm z27$lS;n+jZG%n!2zThdhO@yr&Wgj&Q^+0DM;gc;mkQ6%(XLPG^wie`0h}{@7*4}m4 zQ2XLzGh!qDA9HUWA61bp@ZZ~=KrcxM5JCuW)19!SJ2Xnz5*E`5s3Aer5H}nr3Akhd z9Z(bmO$X5FB%ri|I)gI;Do)af;}SG^Lu&%+pp1@D2c3EI#sDq}K?N5`6wL2?Zg)e# z_5I#^zt8WF`?>eldg|1vQ>RXyIt6{_q)yZpTgIV_ODD|)=v>CcB(1=T&JKOuNawkP zk0v}>b30jsk;k5zsjtUmOvqXnokOcKNC~v#NAHp2Jv&5pGI!rspnRa*B(j2;wY$o9 z^190Hjw;1xf)}~hY@SoHX3LyXbVD}2mBy#%n3Yjl8Dp3=z?<$NIVbJv0!`Ku)z{Z7 zu_0HBZcNIuC}rAV#zZIjyvj)BX_-66yj;}i#dc;PJS&NPh7@#p?UbWTpBa$1nmscx zUrl+~oxuJO>qp^VdVJ>0fSECM2As^1Df>U2ZfBk}AwSMv^T?d!{ZCGp@t+F3B5Nd_ zQ0tRUDD_DSdy*^r)+ep(Q=c@3?}UNfNpU=}JW)I*o-apsCmrEA%+t>E0gr7|chWGP z1fDpaSe_FZ-AP?MU-BH`Im}av{KEXHznM$rE%-g&Z&=r{D^zF|AHXY&^(S|W?_X7y zD;m&=%6#`cXDnnrw=XBfcYM`!Uvv2m&N|}@`1ay1k0EQ{4)zOP%rPI$23IFn%%H3s z=svstc;A_N9Vfo0j-DB@tzrF8a36nI*B5=1hFczXcQ^2s@%`dQq5b0#LEAKg)uYR5 zWsGf+r9`LTb<{5Dz`t`%TJ4ff^b^>qHP)hc|B}4e{`p_vEizIw?>d7!ll6_?#2F>g zIoof+CXT&{1K7MBq`tqvJNwFm@HZ1Du)PCLCQ|PpV0xf@sjgG>j;UQz zQsXaJ1rOR%TC?N>$`t)0zH0nF&KNvUKJk=)9n6tw^Y&%{~76ql5W_kbZsH{ z>Uf9YvjX315uO3FBRmBzaK!$-WgY$UDgBbCMmYs$d^YNEH;3|jd*zq*?d_Ex-(hYBZ3)mE|96gB4pET02Sm=)D&CTdr?4B{c z1FXgV4y?t&G4ZB-Jz?kp#8&ig63#w=l+#W*$4T2LZ`Nba@%|~@tn@{j&PxpbJCSw8 zrhVdA*;hz%4jijAeCbjemeIyW-oG=rm$y$%N*7yf4=}dBzo|gJ_siO_)?d(Wsa+zr zO56G0)9x=Qt@G;t3uR47yvZ7jZ{xqz?=Q&p2jjEjSfhepeT))rFq&$!iTkbKZH1OT zhx0h?WpxF0_0@WLZOB!nCVzpqyhi_b$MWy>7wqW>#<$?Zxi_30I-KT;l40!UfR~!` zvSt1_WkP;r^E`pST&+pOw$oSCZCvbtKT4lU-&YIIpj5GMiMb-R(OThb97a0?FWwMdie>%Yc^WS&Iw66Z zb3A^3Ur&K`GwW^OtF~Yt4veg$(w$|uFB5zCdDwFKk(b4eM)uAm%_6JPddOJ(%wgjY zXWMPV)7N6lx5=Jbq0gDiE0!T6qYt*!&L$uCF2+?@x+b6aw)i)jkgL6vC%94iS8rsk zjh|GdI|16_Oql;xgVGSj=Vs}5>N|x~{a;D{he26h&Hi%-|EBKBx0`iY&s3Yt_dfV~ zJGLnA-=4ax19`6<7~6>-cCz?4S?aLPQsc0_dfipQy1)LQ=RvXOJRWCC=KsR;YM0-xrkSRz*RnUj@m91A?3-}lMs-h2q{TRnNvn2lz($s6F0Va>X zKkume?6lGG|f`s(P$t(EgZ1*V`qz)+` zzQS3%B`j7h4Nm6mhQ2h+prEun&42S@u)lsbd{q9T{DluSW0v z44ON_-pPHDF|}^SctIcc@+@P&il@ac%G5kB$I?8{zA|=h4v$UoBo-+5C8{2LB;!Zi zK1~^r!;`hrxL8@`Ni5?124iW!s{0ac1|<{aPv(nijBXppeIlK9^jDJvUySQ3dF!+U zO$Z&#g8!M-VSC&9pojQ|b8Xl`R6!>>M$_I2*ecD`=_tgXh71{84X! zuQ}UTdn_PN8(}5-d!Tcw)D4aWuf-vp4$$Ek#6Cw9W69z_1U?Rf57$WdvMi&ef^pOO zq`7(C8+XLceVw~Co~%+XeS@*}{vF1}>#EizMh{Xlwy{nZetbMa*$_NOImj>YzR!8# z&8&}Z{jZ+M-^U}u{2?CxAhOFX%tg%CZ_uf1EkOjVxzT+?nOrzUD@%mnN05-wqw+wkVg1-pw>z8Ia^q7Vl#3 z(iGv&+;6lvOCyvCX3}Pb(wakQ<-9m+!o{Vu+04B!xx*92%Y76b=meakFAAl1hSKMe zzKHbg^t~m@ooSvf>CMh^=DHt*Mal<0=QWbnLO-icX^+7AeczKl>>2#^4S!~hry`RW zkbRM%SFkT*RP{SF!t>t?J^C1P?!ZQ0a3eCxEj-KV7tSFy^q%7uoi)cDW=`ro#}y;9 z^q%8HR~x3;66Uz%&>Y7>i!t{%Y3DeWB9tPwM@)2^RQE@DKE{ap&yIB!p4z#H8-+rvdmXr?hz0h zLg8;+@Us$dC+BLXkyrTWzoE%fxPq4pu6~G@>v8{!y!=J#78nA(V30b#%geuut4iPx z^6SC=SqFo2Cu_3?;Y0iBE74^PWKP{<7+jllG$}*c_|mG4wIcUyic>PqtS8=I!5OhI z9~(zLU~oPt@IjmR^Va2yNF_a=J~Z&fIzI;-nCsg*Gynk%XIYD3hAs_O-pF008b|%ndDfTCVr{|D~&Zfya>h4XGe&moa zO)A`56Q;?5A)1smp71d76@PX+rOuz%PFWYq+&j?EUdE|*exE!ZUI(|MukT=;atN7N z))iLPcj#Ul_9K68LH<0z{BRK6#|P+Qgw~}mg!lBUR$IH#Wp@=B7(YhF(dm8P(`)Dm z);~u7G5D3-+tW;64Waxd@F%oja@8)G46S{MzU>|A^m6tnNsX^4hSzN%YyzY4gP!JOJNy&bf}I;d8bw&=hp<&92Oo# z9i^cAPw}$HRhU%eT zPVpdVi^xD>-YfrhNs@x~x)M8c2Avqx2SjH2v1(#jgN z+JbHsdPyrQ&v>G|JVWlB5P2#OepaNKI%mMc#NK?9K{?uP*sw7UeR%JF;y#5_{S=fj z64Ng{5Y%nFLtpECJhpa8h(CAN)5nMC*K*zyR0S~>`(*U3aeO~u!7jG1yUEP_h>S47 zjO=0I{w#00l36oJ$*i6d?CZ@*o&nj?2KxEcPu3PleDzz(G7oJTfqWx;b(2Nu-a-As zd+U1f-eV$5g3B<^8V0Og$e6z+eFFGsgI@*L#qs_R;b$gekZ%c`Qm!Z7-TgoedpF7O zA6=HBu6U*US?ZGb((+p~!gB22&!{WjuTq!D_z#kPuwK_->Jr}+gZ!^iSGyrz=aEvE z=(PlQ_a{=<6s1Yl;11SVGWHzsKL_ip@EDWzh3KiXX;;`5;n)>3n9p+RyU|xOPIaAb z+*dt2gqJ=G9RFXB`2@y%W3Mqk_BTBUQ5ROWxy?R*|BdbpQ&d&IU?Q5O{``1u_mlW_L6kn##BG{p-;Dg8|;|& z%Gy5>`1P?#8K=jloJ)@PA7s3Aut(ZcK53bZO({e80O`}K;RO%E3;Kj%U~JC~!SEF@ zlox`z|h?ml%F1;jCh?thzu3v54%Dzyk9=?6b!;2s^Je0hWLZ%VZ!`D^e_Ki z{?PD6&yKb5hi%~Ezr!EC!JaoP6Lj|*+V%Zwj-c+o5cz35&u@`ux+}-zleNW+k)c#SY z+rQ*zwtwM|w149Np#5r1u>JPOMQ3!n{j2{k+dukr`_q4B`^Wr9`@a%8{(sy5p|wM{ zS9G7J+dtzc+W%u~h+E*pb9r=Gp0}(Y_Mn@W^}{Rga~B;xCflF&BzEjyQ^0&)k%})C zk$H8!EVNsPE?&mG&~bf8A776?{(I>c-LtHHM5o*v{(-09KfS*bUI+XX?aCTR);}_K z-wTahZ+Pscp6X>k_Dan zBRvH|C%=c@6?m43_0S&nKzip3*E1O!84QiQSAN^6wQx4$c^C9hQg$Xi+zVdbE1%4~ zG3a~uYJO@jB|OI-m(wVs3`-Olbz*+nUq0!qK9KoWP<2U>b~unAo!3maWnsw1%{)XS1pwF zU*#Ob;#ug3#rFqm$2j5^x1fKzpD`wNUQK;p>HRgx`6v4880|d)ZJ4;1&rA6x^mIw+ z>5TN>14-@-^cT*pq>E?Hku@)}y`KIyqdRl3t}7et{DbuSS@}~~L*Az6AMCuJ_`&2K zLw*x^+G(2?7`%Pi?`sO4gDYiU;~Uo15|>oPS!iUjcH>b0;6d(;E6CeSIP=|vRiV0) z)J%OJDhw~<;1s;eNptMmo{54ZfmdLCUT^bY=aN(TGtS7*diE5&Wu!SyeyQ_%zPm-A z%=ZGmStB`9lYmjpsMw6}fH3~^v9TBY2)^kcC^5PfJ zQwHxK4)6DGU~MJxg{-k;tYdE!l;+oO+T#9knw2fYABOH2 z`YRlREL=gFL)e@|Xqzu*(g)Xyuc@6*hcB@m$ zxd@%Oz~T?VGMl}EpDL#gJ%=mWy}X)o9C|rsXEeHs&Qs-BEAlDlr`l8sPRc1G&u(`9 z7Mz6l1YPX=VJCxqeUyJYW2hS%*rX2WTmTL_40k?LeS6umEcOWH&aT`$66VfA&ybIv zq1~ut;`1c4)2d|RM{*`{E-t_m_&yzCX`|Jk|-rLN6P^y|( zTh(U>Hm`%=2TE%TyxR3hjpeO@GZWOgbxahi%+Dp$D@pm;CKw4 zTL|k4zP^EbOGCN>Kd{4#bX$*H-t$7^M)ZCsZu$@O@9?}e1$qB!qq}LS8XMdzVhv!cDD6Ub)lee*fU(w}cHle5A8tq3FI7o}es0Sj zv{(6VTTa~ciaxF-uU;SWwUjOG%A;(NJp@NGCiQsa&v1MW@uC-!cscW`$0OrNJma`w z3h|q6XAc=#?%|!wJ86Y-)Fkg^%F#XGSkJ@!p30hI7IR~{(QMJre6y#Tbc=GdWAvuP z8bz6?!^i#GrtZFz>-u1aNZ*M*rz45x4C+&~f`pG$c z`+Ft76gx`;c@*0M?XS?23H!?Hc+0&H0zahn@O~*Hm9v}J06k0JHqZ}ZGZdB;e%nh{ zsABCSHbX7--jL0Z*dZnP*L>ac;BS!?^maLedfRq%d4;r%F&*sFwAv*Zv{%9s7}I)M z4dBm1v^8*UoV z!`}L5(8K$~O-nvy&z-ouPrLh05*YNhP?nTY@^w$)5z366)C+d@uJgdjJ8E2Q`8Pc~ z@|f@aO6nwi4~%|rR+NMDxY|vI_|DXidJ1Lj;p7hUTJH8PXP>&fkEfu5z3NWvXUZ+; zSe?qH6){R?{-Qy1D-wBM8Z);-<2|wO+`J*mfXV?%W@WsRS&>ZMQA(zRx^H#jC-j0~ ze|$=RI91O8=@Xd~K7p@2N#EQ=f5=|@QFvZH?G}2EM$e!sk$YEhre%g9lJiTE{*R3V z{GN!GX|K4I*0zYMX^*4(Pf{W~v+>c2@4z^>A!2Wd5>dO$5Wzhd5uE*r_ZO3XE9sj_ zzm@bwhKSCVp}H**D&?P7{+6*y;WF%0es22xxs^ zGS8*}_YCx6$!2$VF)(K>iGiFX}I%GgT2yGAG(2eC&eFetS}qm*T7LND01 zByo194Ook?Y1z;CQWQ1MV^t;z{_MbH1BZeyu|rA*uAB+rQc;d($KJcq7NOMsl5zy+ z&G5Goz@Fq*jxJ!lM;=~z-$-~2JffB}$gM>NwbP4VsTS&||9qPiwbR5u^E7jG1pIS= ze`cIJL(*Q$zULNbRfjcR$v8$_7_VE{FG>ccRcT6teUQ7m0GMpx$_TEKr2W{U?53|4 z(B|Fr8?fv98Fp~>h-%ooJ4W%109TS0yJg>9;A$(ldQ4f9crCaR9A68r4uGqDoKwjW zI-|Y;sY*i%^%dm=+c)#mmG_OHeZ`!`Q-Jw>gVJfje{3^(+v(lf? ztZ#Eaa114tz^m z+Wv#I*#^GdoYx#cKJ+|NPUba2TeRB_{#9@-G+89DFt0$TI-X@743FW1_{08R8NMCgV)nw;6dX%#&s^&VFwDWItc{Oq=i! z>iRJr(!RH+5dRH2PZ1tc%K!c!;USlk_EO3h9&)kN^D}u>9p&o0Duln(pQz{ic$MH# zcn9`w4K~`PGH$XM2O<|`Dg7&ij`8u(iWAZX1-jSwQh+n!G%s)M&7bbVzHTdabuVI1 z7qMzh;!OC+qai+pErZUdn5TY{Pv!1DlTYp0_0xPxWSQ!hdUgy#&!@|r$WL9!wv&-t zm(ji}STCm{-=vykKVXo54?dhS|0VimrIs@kzCFyH<~wrVw%l>a+on5$bEnLguQGqW z#{9WQ=1=C!deQkZ#@Gj+;75mL#*S_lx}H~AM@B_6_Ecp#@^NNQjB8W8%MqwITWf?D?YnvndmOVCzE4uZI_#NE=W2 zUIRXw)cCzY`AqZHpXh{jM%s(%^V;@C5L7486&5 z^6rm!XB?nTSvNmJd)TLMy_Ggfx$%_y3F&)gsIAAbX*t_wZWcZs9nd&ybw4_S?mf^n z=O)vO6vI(`QUF_$Kbx?Df6#pzpMeJlb00csi`ZbO@DMZS{k=|a!6D@ER7F`XICGkm zOcQHg@h3My9Xh}ng?^!5Qo86g;D-&-=uls0tyox=mLWFHS@?96b1gD1W~qNpc|d~<+-vl4sTfeCngLc3x&+8ZXB-|*QPtb_IU z|8^bsQ?Jx9h&p7SFTIjr#h0z^08IoHY=;7{PrM z?POg&v7y|VK^wrmMaR9ga~n2YE*Yk1Mv{HrcfJ5%4 zNrOM6!g~ZpIlm-hSa9d%t_`8}QqnGFjHH089;31K*cE1Urxx_JR?cS`d||q(TRptX z#<+{a=HpA?-jB}V0QuE_=z1!DCB8IR`xo}sP1UcyMn8XK*ZG9#it{Nu54*Bi_0*-? zuRQy0Ps3M~b&T=5<_s4Zh2v69 z{4@4MuNAf#=qAxbih}XYc>tl_XXTAQAdh# z(bqRbpu3NRX8J%oeW6QyW*bk_rOYLQcNAg`UVNs<1H-L44Dl5u(4#(w5m&~%Zz8Ug zIL<|M!Yc~PuuGJ&xrlFtxkc>rO0iq3#AeNlUn-g7wh`wYp!=Y`RQ?^{QqqR|KFn`h z{w6ri1;z`3^#Wi%AARaf&fw0VEjf!m8K1p~w&^tQ;qI`_$O>Z9*V9*NiUa4i*sjT5 z{HT`RP2Eo358#8CG@HgMO*((U7n;l?gf&Q*_nzR{9`kt;?&$K~7y8c%{o_Mg=ke~) z{{`8)KlyR=mxNd2gTE9%WhNzQd?f8YBW$@gfHE7abF!N{fT7_#d6e;@kCr_6i60Ow zi}ZQfP1Vp~1nFge_kO*OrPQH~FU6k!z?AEj}D;v7PCNiENbqtexVOv_6eo05&Y0SiL%Ty|nkcgxdMN|1?SJDO6}m;BiiAgPc9|^tsGc3tjI44%4NPKKpz2 zUs_bvXTwhw{@BxV)uP5q%HPkp$<8j)ea_y+cMiT7)CBx`0kgnuM@Q{amT8Zu=&Cb# z@Ef%5Nu{aEuLLB2C-q8x8}0YxRT&mr;yf%llsMT-Jp^A0wl{LIB^6op>6%3EGva&I?5y79ZklDne=P0S z{eA-btF+aj8qe^1=zY@Dlr&OVya%~Wk1sLna#T3HG#uXF;xkdNhyENWaE9`gLJxYr zr%lYQoZXCcyH@$}jf(zW*WshT7ahKitBhhDU*bQZpOi(vJ@GDkomUbmCB2ws=FwIzLJ@u91pC=q9zIqrVapKEI!Z_Qd z`||k(VKdiNx^nPsCVt$!iAqxm{+q-Y6Lx4s`bGB}n}P2LXvG7a z)PLSHQT9Xxj{Bhb_UCK$I@Td~iw~a})FEw^G2`BX59LvH1+V>e?UI@s6@9$Q*t&?j zkc5}IRb`^|ht1_aiH{1+#<_b1Jbb&4{VrhZFu0p!T$)yzhm!71J9{psMZ@L_Oa{^m z?%WB*__0`~iJh>QG5sguRgbuvD5(h@*+ij%EtIp0`i2qbAx$E1i*KbczQhmFAi)>o zG#nL=3eWge9ILuA>*LQl`Q12R7K?{atG zb?9mfbQN_+)KK9AYlXfT&#QXTmrnaPDuJ~%@N?!G7w~<`+_Z3`(zNy!#aT9xK zukW}gabb?qw4U+1=yLqgv$yuEM@)`KrES1~OjRgt&E{PTPonN4+gmKYZQS2c%lMGJ z)y`fp>fgO!wBBLWVXO$jIRATKlzCI?VEl6jijppKYQ+oO`@vk24-Pz%Cza8`crLc6 zf!a6l0g6xbZA#bVTGeVTA>Izplexj5CTm9cf{kYZX^Uf29e3hSr}A#(tyPMCmH}sI zh0+gsyoGN_{$%pc@1q84UK79lU6WbU=J_-NQD=?EVwbKP2yum`XzhVBXi~x zXQXa>0{%;QB(0Ps>0QvW*iw98yy4;Ym2ywR&~)RG8?;FL2;QBrKzoI7I#CxzuYl*0uf1vKbr9 zs{+3pcn#zgIOo$(!gpkju}OIBBKn&?CtmM!`cQbT@aNR&?vt~!-6u`jeFfb2=D(eF zu;mE8j_`vheIamjpvPAN%*n=N?V<#yws82iIpWj)B528w;nL?3;m6rLN@^*z5~Que z^rvD=)1ttWhu68w+O$M0z|X~dVklxxQ)=H^WLU&`dMQ?9_T zl3r-f7AjZr2u(=2Hc3ml-~1h$Jkoj0;A=(Z&a6s&k76TLoactd2Kh%bhs!)H^8@`i zL6_0-_baky88&`0516olsOuFccTnjv0CPzR^T>S4s+Kv5xg`955%r2LyB+yQm#?4p zB$~yKu~~;l4@fIzQz89rSb7>Zdm)-ZKRGh;P%x zu@9Lu-Hv|T{aM3fy{)F8to)qDe(Xiwi2st9Xm`_E!fq;0YwXwG-4wm724Cl68e;~z zn{Fz1HTD|Ok+O>un}fnA>ppZ7?*@Q z8vBiNH`NekT`A$zJ5j=^6aD>K!lLhxaO#~d;nbT=y@XlrlyLkfpD*FmJBxY=i>j1% zq&3D~B;jKkqqqZQ9bqw^8ho;o|1x*e!t$|=QCCqfVb-def?1bs)qS^@U3UKx%QX_8 z*0@&fm%q+iQ?T|9$3s%@I_@G}%bH`Y8f}fKt|?fj_OmXcoOQ@jwfsNH|8_OXDs8sb z)D&#jA>(OPN;i zQ$ZW8;N?d7R!uljp}jm6{7WB88?4~Pd=GFFR!W*0zGLo{b~qY4`X;7Rj}@PYjb)V8 z&b%e}A3T9y>usv1pa%agi~P)u%sUlg&xT!G7V}}ATANs&tTZ9JP7oh8^6j|8G}L>A zr$FA~)87W~FD`fPl=2Qyt^>dI5?AvhaTfgk|6sl!iL-Dgzz^p8kvO?O;0N>lNSuW` z1%5E!kHlHHbKnQ_{YaeLPw<2Jek9JqodrLb??>V++-dNG`FdPNWOts5Oo*Q8C~ z^8KXfQ$5%*%lT(~3EW{Gsan>%BgWfFNOCEt&bTP8-t`J<|S5?Bjz!;vt zyuc&#R}|@b!z-`|%+(=yMK;%Q7%JO4YM#SMnlv6uOU;s6o^o{N75L)J<*auZ&ss~i z+`BZvgPdUJJ_v(6_-+%QXV@|Xig^U?cI;AR&Xjclc6{j_)+F@#!`ZJfRpcViFH7#{ z@I0rl2PepU`V8&$Ja>9-z4h(jc?=WhF-mV&nmqr39FIL)c4zLRun z*Cf5o)O(0J^?ssW1$j{7rOl$lkab@1o$yiS<MZ&b`&C&(znOQb(Kl;(J?Eq>`rRjH=ISzNMdTIp zNY1@7XD1EO<#2tx=;02fDapl?sWe?h+s@7-eQyRAau2n=-(u=a@T?z&%vu<;%Kc zT&wGE(PaH9GHfbqaaCmS_19`Le*Wyz9_sKOpnPyt`VryxuqObnN`J}seT2>DP5q_Uqu&Hx#uaxuCJhMV zuN2u`!d|6*TfIAA9&VUxnP{48XCBJBLs@LTC}wUB-*WFl3h%15c5No#MZ~RIi%yhp zNw<1!3hOtgX1XqJt{s1w;%{^Q-NRifc|<>(L>h&>^9fgY+=R_vrMWzJ&v30Cn9%GQ!Do?~G@hVT#qP*aJB(jGZmAZOK-W}G5^6rRw zC_no3jdDM6d42Ry#$S{01h2q=9|#rw>4Wg6ciESbb(5F%O%HR6mp14;g}Y6Tk+&2& z7P@*98q(7xb63HYo`SHQgXB@^-}cAppHSN2I(-iG&j``tbn;d)uZulEve3fAz;OZT zYv7a2C1v+1!UreFST4Iqp>IQLIeYDrV)k1~XkQd%u@0VCNgmm!lKsO{i_%ot-81;_ zl>b$~;a$D&N0$A-fx)wYXY7fU(C($Qo5M$^+WjJJkiHAIyWv#32m0^(PP>C+Q1a{s zraIa!@a)msKG6Sfz0JYj)_IZbP4P=kEbXBhF7WP6!m(^zUOz$i0q+OZ3#lA!S(NVl9J}&K^=+L6i%orP z8RZ}=3fxVCL%R~=J3tz-VTlBHLJu--WvqtpN!$YOA?;K4+!#IGH?6{lo2Se8Fr#No zqkQC~3DCk*>iPJ3-fHV7`bWtl`fayoxphv;QwZZY87+{oTePzN$! zle{)F`xj>PS4ym&_rJ(nB6=3|EvfK-(aQ+m{%aV%2?O+WZ<9`BMbW)Txl+FD8yR?l zk82pH=lKuf!uzoGtFP8=4FqQ= zS6mKlUj~gA)}JVv%N}gOqMqH6`rc~?c{b;jQ`^d6ate2lKNH6~p(t0#^ zKo6T143l>JUc!?@;kTR)e?Y?F#d`YpPKU22ymYKSM?8fr_LL(#-j}yM-nW-;>F0`T z;(fE!>W#vmCGUK`?XiP(7^=v-3OQUa^V(q8O2YL2hT#9Q@c&q`mc*-f4W8AE*Y3qr6g z8=~jCO7bx;F#oOB+jexCFRx{Y*u3d&$&t3a8B9ATlve7ff)`5t0*l=}%$H+I)XO_x z(!ke%AxH-q!}ahi!h5%QYWRO;Fn+S++XejS$J<%c>21yqwpny><t%8l0p}{UcBAC;awb8>k7>WrXGT`WCPTj`O|Q2!(f1zvJ!jx!$8t`lUv!#uK6FT<9krxzNshT^@w<2|S2jZ)?>LuGaa!@qr#u=$~|U)l7s zx+QE>DD2B%*q0KP9txXj*VBC_VXO;uI5r2v4iQ%R_|=X@AGw>P?*u=29d=)Zn(Pxi zWr3Tu)ycj$_%7>Tvr+o=jn|WXUVLl580z0$+-+$;lC0OUPwMz*sE&jbJ*<_m;(fs} zq4)JADL!d`&W2$8s}lc4Xw0+)!z6w;;S-Pz;`IAiZ|TzEzH)?Krh&D_pNTIm4~0Jw z4A=Kj$=g7jo_@keJ^fSs>wWR3U|&f2DWNd$Gc`*}=pQTcw8>PV^S)u>^v?z3%%Sl3 zaGs`MxFr-GOSsg>aZt_vL9k9`c-#*KM+TvG2`1pM=OyI2y)nN~f`4#-jd=a+m=}5_5q_??wxUVzqrG+=Y*)v%Ge`%Or z?oFh3LchVVp}vvf@7$rjBIjY`MaG*u)-Cm$9$2+t`OQ_L0uxoRh#;7~>8p8+AEV?&gTc?hP5D!PHC` z_H9Y(po((J6FKpI#*t}PC@uGOD5OP}Yq*#2o!qCrU-v&e%zy9SbbG6Ak!`|Z_#)`8 zCj12V4oKM^qtd+;+3T1=*)amV97Dzmx4Q$M{pbZc?cDt#=gd#8m<@jN!BZaing!l+ z@yUN-eY^PMpAoculk?n1z_-A+5;@6(j}+$chVcAvg-1%7uTS(e{3nm}_kPZ&9xx8| z3r~~wT|+x0pR{Qn-`I?G>wSD}n%?h>SsnIGz+MULmqG`}RwSjrMZHr7i@j^O%tU0j zLF|VOaem18WTD?J_+*s(cgyGx3%cusJ1h_NwxQaOzhnFfEpA_dJ)OECF<91M%1LrA z0B_*Z8GpQIvcObvxx49J;2g`C9zq{PQC{@!jRi5atCq;v6!};5MBcgR6L>7h-{E@) zE7(*0tOCl=}b{r8!GktQ@9`e zpyK=BZN>ND?x1`nZTuP^zCD$F9NjM(>rZgk)C6!+T7!NG*`xG6<{s8J?ZDcxZD#$! z@t&q@ne&8hq#Y*iN-=SNgPpk{hi55yZPEDuC$4?+1&#{Ren$DT;8EMT)9Xpna?gWx z7P4OXXt(3A8dF=zynL^E@5Ul{=tAaa%X@N;6nihyVO!GFo+5T>riv5vbsFcx_Sep= z{~DW7!L`>ApWgw#N3hQ*_&!KopJu7`7Xyc4?wZ^I9KYXftBqIUtn5<>-zo@L?=xqAMenqixs_A7=b7Y+1W;9e0@)G4ApicVm~8b$v#f zO?G^IGsnKp`fWY!`4jz9n7k0Hw9noWT9gv7KeeWuIZgs^151 z=vQm&byZ#e!w8IdcpJ|M#eG&XDJc6$)Xj{hS5P3t3_-h!v8J&yJV;tY5(5CRX zkI=0MpWB14BboP=?e0K0Y&T&t9~KkVZj9i(z7d;UgEN_Xxq@l9*U@NUyqNtTB1b&m zy9{`Wl>5vNm0_a{JnlKyQFe zS8$Iuw64FJdZo{eO`O4Q<}P-0B6i-gUU735J2n-%ENH}DPwcpIObhhAY{_GonzzL7hYykex;dHblb~D(evr@2miu@OYdP{Aq0;X*kp~onfpAY zZ1p1d$y*F@wNkF^Rd>IRE^Ynwnt?iG9Vg|;8F4RVnUzva_L{R8pS8du`K25cn$_V9 zxC1u1JH$j;?vX*;Ebj4?HGt{J^95dm(sZ_tpd+P;d%#rYD+BYEk@+ivd5n7>SM)(o zpklA;ZtdA^I(47MSI|P(e@5NvAzg0==kGJ-cJY zxb^%x*JX&kUOU?+&kRo831ymUWSxusN&+@tGM66jHJ69)kll~HB4s*hvyV3a;2p9Z zDSufg`W1W*I6s5Gn6bk!_1l+d+8;l3kHM6WT(DSZ;D;r6Ic;>%-dA*DlBfG-wZ1xpj|cEYJPn*20tfgic3!ED@R{Iadkln) zb~n`<67%;HNBQ{*HXE{b7n`;ub--fFdQU+v`wU6Y3cBv}8R(IPUw&w;P82>PbBXx% z6<@l-CuII#g}l=-WTd22Fr*ht2BaLf;5%*)=|U}qsTFTQCc zjRkx9c1m3FCYw zez+b?9IPtVyMgIr!p`(dgU$|qRtheA(Pu>oJgXSm{Sx}9WW2b~wr4jf=rqlpUm7DPuU`@-d`r$YiT@gOHqNkrnzLbe`LFuzDwBIb)C&4W!#ER?|#N*-C6D4&scnxx}FW<;M1s1~0X`!DP+PWMb#W;IW@ zGp+~0e~)p8ch?Ln;Qp8?q@&Z_B$?-202~q;MMMUP)67?JiAMo5bE#=w&5+A^qT_55%vR ze24q?*cH3=^EV#LcV&(J$i{MSQJq<7Fe9H^SWlMg=Q}K&Dsg6Wa4%;YwzK9fvVV{N zVa0Qw<1s_M<1v*-sdq4bOjX!PD@v2_@EZEcJS4bpJ8Otp{CuLDXHSnX{hu-&5xxGS z`DYxSito>VRImR*{KxkC$Ck?xfdi}Fc>#+6uXRp#RqSwER|I}Xp zwhBu=d!N>{IU;i!qzHvLa?pH--FYZ5Kg_{gHyRvHH_2R5Kd=-Q<h;8TykCiD+J_4wk@Kls$+=ZF5m zryhS@=pTIQ@!WT+mk&Pmc=YW0Kls$+7l!`9ryhS(=pTIQ@ry(M;8TykCG-zI_4r#u z|KL-PUmj{>2%pFu-;sw);FUt7sqoRWX|xL78OCQC-+CRCDKN`g*mAqb0Q4nyC(3_~ z{0r^zFEppaup$HlI1>6jb3Rf1tckx16S9V!;}hSHUc;I4SQWCC*AkSw(&YOQ_HN+o z2dqPxvqe{s#}J2hiyE_0MMfXP6ZC88U~;*pmKvhrT;eYx?@4q`j@!|dn|I}PJE$uRwmUVGPxz=vt zoE6Uk9uJROP1=XghsF8$1(9>W+g4WoW<+WE%JX^fL363(S@T$IzpXrLI2*Nj9l>M7x8fXdA?4P>JA>ukDdlqCdil;%<^Ig_W>DUgPa+nEoq3d2P^PteX2 zr{Ka4MQqQ1syu;9#zW8QzOA24jpKaeAkIm~voAN8^=AU>&mpWo6Ip)_MW!2uOgEf+ zsQbzta@}E_tN41WTOHrkUJ&9}CAzKCdiP!DpA;Hl4`aQ^bZxgOCyPt+1MFk0{~OPn z685nY@LZQ4XyyAYo@NO&q|Vv* zoPScrPTOAcdh!DTgK7QwCnI0Dr=aaGq+1h&W!47LU95Ds?N$QC-uytHhu0PSd9|_C z^v1mfZ7f5#{f%eOT_{}dA`=KPiqpiR1 z%RffccQ7A(eKmIxb+RuYce?(~Q2)grP4!=)XYYKsPkkr%VT4#Vy2kvF*;ZAMYv)aS24O?SJ>=cDqWcKicMS6Xk^8Tjx&M3%&trUVzS|wxa*sQ( z!4TowWEinnaoe@ccLVPO?tq=|E%zvaEe~S@B;gMb{&*<-VZxsbg+EUCbD{7j34b9J z{v6@#yXfV-Ksb9+dO5EU&i<7ij$P4~e}}^N5&lsq{NIFs8Vdi2@MEFyPYM4v6n+d^ z5V*co0y}`erK_i~1Dt$;&LX!c;UUX?s|t>fX6lWI*MAlN>dap85ybcUui{@lzgK)D@xA`5_*XCJ72k*WUjJ46s~7f) z?@N5I|0@2~++Oh}{o7uZ8*0BPz`X^FTl&E#&vAEu`h0G^>=}rD9op|bR}HO> zaf(mk<(^~vC?&9;a0BuE)F{e~(evv0`Va?x4P`fSkGr9@LN%Pu=cG)+4-o$b;aNWA zs9vVjXOVp8Q|1i4U2>t1cJ?tjwUM0v zeTB23cD|KVJ7=BKI4hjOT%4xgS-#pdR$IW`@LPGyeEKqJT1elAI^5jPJRiDU&9lIC zllBh2sBRbqQ zl9or#_iRN^yDD^cS!^dC zJ87qbu%vPL!#Unl_)q4@!+*N4{?q3#sJ9H@{KEClhos;0o>qMqGj?O4gEny1QuZso zA6N7KAp5GFTX}y}b@k30c*_{d#vbn+^nHT6{jTi5DrAq{+`XLxOerRG&ZJRv_>wj0 zH|W79eOp}N*jdFRFwxJg(x2I!v#w*DM`q>+7e1?|gbj;m(Hq z3fHsmmbo??3wAdC=MApsKfczrv-5ga#H?VtKOeu&)#sw%ci&5y=l-Y!VyBGLE}b%7 zyKl-wZ6J4Xf9cH7CUS?jf}P>5Y16dZoD;R*PMNN4u-LRAq`lKJLfhb+uH9i7rQK{9 ztsS2-Nqdp+f2U2*0z5ZQnV@|+B||$-`pl{6+TgUw+P7)vk!G~EgS?s6k))YO9h0@m zQzvT;7r|d^TJu~+@*Yj5_bTw9# zx&C}Zg=^<+<*v3rx&to^+d3z5icLG0@)lFpGtNoc1n{>M+KGRX2$Y|v~S#$smRXfYEPx5Ya^$O)O^(KPPH-i$7`=- zjMkFLZ=VvR=|>rFkHCNKg7&N62``bZnQ|VjQC(Z_Ho6{L)z@_^`U&B&He~M2eP*~G ziCO9Trs5Z_$KrEbk85|hp1L60m0_BqU1gfen4b#2n4*1CakVQUEfYSJtUWX5PS+5^ z<`bvzEYRcUxsub^D`8wUT<&%?5w@GStvs*j@mIN0(!fE+DDAmlR=R#i*hj>z;rUpP zztS}-ZIrf#_GDV7XctMnkb!729L;v=5%;5XNQ22#>=ZC`c`9`jBs0pNwLgrylq6A%VSVlA;Yv}SJa*iVM4)U`?YWO<9(P3E%vCtW|Uy!uS4y zucR3U)-935^&w4P)-9$*et2tM>l9xqd#UEO{;hdF{FPgWq(>>NMVTYr)hk>hk&Eu( z`(E`D=E|JFjNh$fschHIhrcV#g*m2kw0l%jtIV~#NM~nmyodQ;)}N!1iR`H(w3i6K zM~!VAhYWPdt9Q8OGiG<|VR5bFk$e8aJn<6gU(v%7S|=jw6#nB*SAWYm&B(ZYQx6~3 zIvE*fu4TM-0lecaJxpu8vZKOS-mC4~uX8 z#YwkoI`Y8~Yo-=wouIv^hY!$Ux3f+@51DM88q<2Ub*gr`b&~c^;uYYxr;gKdw`aQ? z$aH_OPS<{G&Cqu0aWdbI*IZTZ!0h{TT=%F~?o?7o5jGJVSSS}BkvdshtM+OA7C!d1 zb&B@Bo-dv737Qib#%y+I!_3n(uY_kX)|rd8n_P_HvD#Q>qtp#U?>vx>85XayiGG?;0~9 z*EM$91+LGnO5g!_{gSC8nJ-3acfo%i0{;=rv!C}>0v|kRbX_|oSzF>v*5<>z4*W)S z9hfpjJ1|2D9B}f^QUZplnc9KTN?;Xp?16KXz$0l{+JQ8}Go9Ljp}ZZu$18#4%rxc_ z(hla^k)|nI@&gAB_Hjwu2D=M)TDJz}f&&-312@xmot89haD9HjbR@FXdc@ND1nE-f z8}pIAt#QtA+D7Kmoy@`2nPat0jg+Ix{Em2g)@>%-}4V zTbH3CUI(6;*@1)36m2r}rOQ<_X9Ok{DlTq7)eQfYA2{}|TgOZKY=djShe5muOanXe z13Q>kckxU*nje^YiK?gjz&t|x=Iw0PMb`1!y*vY-4(6F=o}|s=xz#aR>)R9z+rT(n zVoleEwgmqz%=dj?4SvVA2H!Go{U^Mj?>~b76HPI$KKp4iVQneyK!xdCf&0yI&N1+w zQJSq3y+#uBm>cDK+dN**!ynPZ7b<~+qoMIY_Q_;qo6(=-2fo;w;}ZEhC)KIN?iM+{ znD3EVt20x(1z3KS@hdH5c8=?+)Tz)D^FMNn(D*oKs&*^*DTluuNOK1=Y}tg3(4KT= zX$zpyh0y4M@$SGu#>b<`TYqL;4w{;*MKCWPm`wVWvt3(L&(oae8eC)J6xVRh_YZU= zYnf?jS{icB;HmV5BSRZkJjdlc_afJU8SX#<@O(S<9IeNZrF{lnuA4ee`#thd%+x8` zm1!B;yv%g1!0FU#GAC$0aFLnj&?bzy&{dLY*YauOVe5si1>k3e6}fR2XRt0&0;N+% zXcg?Q@1yL`%%imcI6y}eIL?1op%VCub+neUu#an6vB~wQd6f1F&kjqmb|vZNwIpi} z>RJoz71{H(Nz;%Kt;O1S=Krgwq-xWa!B}BpMtg<#t;kq04u@vSbZFI1JMx6Axh5cAjn~Fg*Q`{B_BYb5Wt@G? z8fOQ27GzA)oR`dW#W1c*9jRIxvZYF1m-_FX=;s ztUGLdUG^!Xw2$DEzn(fBd3d_^FUIj_BC{i}W`Ns|o3WLry`RzE1l~exW5-xsA44m@ zrwyNhKZSSX@6JE@U+|l(Wf!~BY!|vRk$dN5y0kopOItVPTx~rvWg+r-0X%Lg{d4n_ zG1{1nd{t~*zfT>3oOvGnItx1BELG-I zZADtDmK@v9^%%4uxR|(1b&XTtX|yFPR|y=Yf2U4U0uRlYukECdM#n0F-y`3~LZjDY zjMEOJxKCyba|cQ@Cu#efY1-aQ*0!l*wR^z5!vTB=?!Z-3GWGT3Jj$@ccZ=xHoT*OQ zHeFMuLKDnGzlFx^sbjR;kl`{Ze*=9Y`qNnW^F+lR_?EgSWhenhl+|S`j&|7-j4lr{ zf54id>tKrQJO>Ma%lt3|H!GC6Ja8>2laE za&2P_%i8IF=FBy;(>cZ+kiMS4nxmEeevUQOan>={Fg6nC$3({TxxhAJc0bpMRCi#- zROHw<`?}68wz|%pIg9y;wH5U>F@N3#48LG3f6kh10pUH&n|(7mr^lF@3f|M>jINQh zvt6&IIkjJAo~N&8rw)sD-GE%M8oGK3-jK2^(lrAaAsJjN;LVP2sbt_^#r!YxZ1M#9 z2|1yJ^+L+I*fY@vdld62{72RsY4G4lGnK$(@HV|P!j<`}C|8!v;BpMJxKilb^Hc5phMhQ${`uGyD)OQM zoiz8a?^d{b-H5;3pe=>iW*8#6CSM+*^p~@B;-gmVzlzc4Y#4xFQl9;Mi>;Y0)uyE~ zMv7U3DJ|HJamU9E=;_4v=Gm99`(k|9nooz@hHaU%op9YR33;|WToBNGsE}v#!vg}y z`IqiH(K9h@6MpQ9?E2%#$nAY+o)BI8XH%b}t*3n}p13IjSvL}yw-2&!U)qFk#T91s z>;_+t6+17ZqxAr~-2Lbw!*cW2=-l;vGVGH?_nuqnZn_LT#r{Xr@wsaB*U|n7FLN#j zdo5Gcp2YTTQBAok+)ZuRX-ZrNaiS9r|9{AT+qOYXQjV+x_9BmCqmlmQ7e*iQz0bZm z9$Sw@Klem6X{7bsKE5%x5}RbXE6iZ(`~v&Sz3dr%#acw_{Q3r^8~dZh+wr+~m~vzv z>+r9YrYAo7V}W;j(57nP!=5GEncJ#4dm(#RPxAdIo~L*`(Ghb*M%i|M_DM;Tiyc}G zHWF#1<6i3ST-y5AE!ihO*_wSa#-Dxi-rr@Ptp7vy$uC($St+l5fuyn2wpYm8S}Xea zZ`d>a#SGQ=)w4!l_d#r2#6AprzV;&Y<2M`eeVXWR>+6}`eznqlg0;%QZL^#9Q=Y^n zL=QwCE;ip{n>7&I>?G$)&;UL=yANO^Wn!-_343DMOFq~a+ZAjzIG@GShuY- z-KfcU*hCra74B|{6B~F1UEEhUkdL}Q>LYiei_K^PcoIAIA)GZBV?Mi{ItFMUHpBb8$ZE%G|#U1q^v{q;f`d=JQ(3Sp3~1~!3KN-|CI(y zXZ}%qM1e!uR~H}9V~G0%n)sA{{_G2*Pw<<@KJ=x~_Yva7F7R`FD;!eFeADR>OpNZI*HKh<%sTe9Q0?*0(#{!d`^{B#=WQgjl zV60TIF5V8jZ}3#Az=eKL`ax*4gE7-V+hvS5A5(7<{udr2GCtadV#9RIc$0;5|1u_I z+`RVcjKGs$eEe41V9)efqO<(Ad3r7WAPzHrpFDrx=bhWLPfEHD=zSJrW9^oB-y5%O z`Md)fo5dJ8{B-uoFBlgt${V}d^LYnjry5;D^h@|tLYL4s&@;V^zG=orDvmxBox~96 z{44PGz(7yI;L)A})0@|8Vt3hLl`^Ai+xmH?M_+QC=Ke~(sUx2ISfq$Lv3|0zjjGm@X&`F5C)=J+T2BsqVB%gC(;cKCUd`q1N-` z9!j55*p$S6&A5vO^B?~Z=UNt5Fg6U_8Br9g9Gy=eh`q#U>dant=Y5=~Xb7j3yO+jU z)Y=a?e^4A1F-KXmV~*i5+r?t9n)6=C9JvdJ^P6*K{Oi^mw{Ra$&c7DiXyjYrt(>^| z#vC4brz|Up(ZAohWsZGW$($VC#s4b4aRL2p|JVE*mC}+JTWQIhEXCOAQ9RQ>;7*<@ z`n!mG2-@JaHU-&)vCDPytO4d@BaFVBN7t#RmT9^#MaG<+`OJ2KvXeVeDoUWC{uZS+ z9Xz}>EAF8J#(fcEyNZ3Ia9H-F!ltZq@rQzb?sIHA3Jhv~4zwtEk^2;9fRBUNYe?LZ znFAiODMsrD%pW#zVb62V7JNj6@F93u!!we$j-rhh^1g(336BAsEarc;j+^;6uGaB$ z+l}*2+y;Jb15dociQwfi@Uk16ME-mJjUVx?{A=-z>%q^jz)vghr+H`p>;Iwc&Euo2 z&ISJWok?JpgsebFa557RG7}I8AdApUf+8f4n1R+-?==Z%&13)tSD>1(*d`fJ2DP@v z-%Zrok|2r;HB&Ps$h87d3bnS?E+!y$lCXtEiISV&_jzXqBc;9d{yx7y-p{+8^*PUZ z&a<88l&whQIh$wZO~S zwahU=zfy>m#ub5~*d9byvWbkuCFvv%TrO*PE_b16_zorHu2;spvYDq-i0wyg?@2um zz5hGx1+7Yg_Z3}&*H*ErMJZp^a*+8Oze?xRVvS17QTF-DUSFGG89W61!nzse5VnK&Uqa{P z%&u}zN?kwewBY-;jO4oE&pzoNhCMRYk(2@BYwOF zx2bL$`HeqV@49ZgQcRpRudMx2Ub;Tb6WsfF>QVYFYj;Pe&#d1=wY^oc7sohQc|z8v z<*eHyHz*02`jJ}wQuj>#$O5VN_xSZhcpx413hZ{#mUhY&eoNZ;3h%ThTjFWTy2{=i zp8~8UeKLKKy0=Ll(#tqVo}cml)AdU6mFheP{V$oUto(wt^+nb`S#w3t9-+HQv|VK^ z1Rfp0P1Dsv2LvY+)$ZF&*%zOm-zfB4Xf$I!V;}qbFNZ}X`#A)+q|II1;bFi7H+Z1& zGdwqrNv^YxU(DVmlNQe|2u>R5W2BzQ_^hKo@e7tUSn8{RhReC)yIH#h=ViSfxK4CY zXFhl$>vYMU%AdhgAHG%oiNAa>hdohe^*)IqApBlAyj_9Q6MUPYPx02jmD#}kP+AyF(27s9x}v@$P#mrDQ-Z2{`J`Br>;Ao?U69j@BTT_hr2vV zU+1VH`1-_=KAwCDI`4hfy7;`VZX$5r)?P$c;#jeixi+tv0yc@7x zE68K`Cbx)vH(edw)4^D6qg?chJKgL7BCaKSz^=;fA_f<}Z-<2E{(?GW|HbEtGkv$R z&t3TXd)R-t4Y;NlANM;w_q1GOKjnzMv%HEm(^8AyS=E7Aoc(Db{zVFW>hPvqV4FEu zDX#jcyv1NeCIqg7xK!{?+7#k}u~|dc!Og{s`0iw#m9qC#+|xpT9FoR4gE$S`Wsi`o zCr0osM@{iG!B3jh5$1gM{jK|`qQ#_+G&ArNchr}P!cu6<=S)?w(BZ;q6t2bzM$lNhfw$!^s zmGw{T+BVI{1U`&duPGjp=OuQx7oUQWq%Vi&&0|hgo7j6#-0{m{qS7|$X9jH$zZQYX z5b`z97P~&B&48_{(PY%@Et-sNwOZzBbs1%S(Dd`nvz{2%h;6#Z{cA~IiEXRk4Ce_A zhNgipa+Xa|D|;87OZ0z*_utj*MP<~}w{|gjx(IxAfw#rr?@i!)5%!|OU=tUY-A1U6}g(dRdd1La{N8Z@wwLK05W*T z^PK;Q4Nvx!eMjbbB|f*ipLRWfpRM@)l|RfH312NSMDN9)B$B=wc{-o;lGeS(>6i3U zP7U7`ZJvmXp424iE=sv?j`mAgLZjM%f%x@*c2@OuKm%;;p;#SHl6ER-Th~l&E`PYn z->A`HL-+ZxjNVCl>xcONhW*LRtoO*;homnxjk$dh`CR0U?a1p!wnlzE>R~-hW6j~a zE*2Sqf1e;niA;S0x%MPuE_-}6IXWy?3!Mwe)cCr51DX2sbfwpgUt%vlbYCorYSd^q zbMXTE9Yki7^J!b*yD!aeWZX}8hjcsAE};(%@P`xhBHPOQ2=G#9MrzY1w38S{&2DU< zBGU>VA!n)If*d;oIW`3u>luAWj_nuv4lVDZ&J)mOf&J&*oUJq#UJ8CD9~p25>(uAO z;}ie8Ti_99%n8e_eA_MZ;b;Aed(5G+7x`3VSCL1LBae!VdV)K#QcWj-tMtfp6e#oCwPqP*Z|9T2K`|%!ox0!hukw--qHA8oQK&&N^M`di`OC6nY ziiUStoc+E7d=dN**lt7aG$Egg96FB6%$g8`%qZ~%1-?UoO&oocepS$yHM$tD_%uoz zJ@{D58Nk89xVnB1<->CrMh&S;hOZSr#V+Pwr^8rhf?ta8xq=5n$Fc`rO)h9KC3_>h z?g;8hqn_KqefIbF9@XaLFvg61tMI%>*zcwByB?>;?*;51g^yE&R_eFysjBo87N2iuLxgsowSAVFvJe`UMhR_bPZ=xpn04_-kpUHqJ|IP zPCsjY0sc!zm}?#MJ&!qkl>CBwRp6V@oqdd@%vBi^1N1~_&N%93yrz`@FvL4mKuaP# zlN)+*BF^d0gr1kEMvnu$$mhBHtm<2~x}rIqbLBQeo8gUo@KfEgzgtVkc^12YgY1dO zAx`3Q@(G{SMZSX7<;@;dDX3IqwY);p#g4y#yb{kPLKkIUtgJa>48wNa?eqlbym!@=}X;=~GW2>d1PlE^*xLt}=Ac`z9p!EK3geGZ-?G%u5z;(@j7r+b4I8FPdIvDZ_p#?;?LMMdzeFrx5G>J^UNdQwrat!dqD3cbp5b6EWVL zoxE85VkL%O19_k0dY()FU7JPdU7gZphi&Li zSet}*b$kl#m$Q`5q5DJE>;G@X8Tbf&pcoFYo1@9 z6*J_WxOYNA%9Cfri``xi1$1BSI4(UEHQ<3aeq!dHZr;Jj`Wd* zZ@XWZ#W~Qv@AviZ%28vxk5Rtx$3H*!@cZw$zuzqF{5!hOzsLM{>O1Z+&C*Vpce0*{ zZqudHds9YjzcF}*WBA8X+?jolJ`$q`YKJHlKSg)hVJdmeW{~6 zgLoUz6m3m{W}IX{^a<)X2<{3#32hZTIXO-7zr-3@)LXgrG-FdDd65l!NF&cy+8hV$ zd3T&ahbTH>wYt)t6Xjf4z<9>DrZ<;Fp3wv6T+CUizO^p3guCvo^{EOmDC~;ST&yIR zT_(=+#12rR#&z3uMspA4RngB^jR{_-j&+}M1V`FwhZ7tzl5Y}p%>|C+pw||;HUe|e zD{JtEpU9dTqx_#(#Q)$niz*DKGbJPuuoNMv4BDNXmi;CdD-_5Rab)d%+-g?Nd=?^$*h#l%RpwDz7XGH^RGkiplx(D)CM@cK~F!2vR zO8+sv(P4zQJwn+>=}!b6pXi4>K*}eM!WV|V4Mkrw+)+nG zq=7~VZ{H6M=|)EFLOzk0Od_KQZ;`JKBkm3I>nV6Sc&~HFup+Yw?*(7vSq6+c-VgC{ z2c>LcGE_6CML!_2UL>8&;f@DFyorHy!kY+BAik35S+S`ayG8beZ-6(s5nf_0JjD(0 z7Q`mHa}M%v9`bMQ@~*-2G+Xmyf*WxoF8<3{BKoT@#Sy{RXs1=(Gy5X^N6mk%cZs}P zed~Hx)%K0E>t9Rs*L&<2YHnHYs`q4GsQ#YZdH-(s{pR%&54=gf$^ZIOiGD)?edLTF zfx)}bu1wAou&eBWKbz=x@T}<)Xs%UrhJ z6|=6^Rr7hGzxGQmeUe}HYkMPVu!EV9!%BdgTlUeC zRypGqnHx{C5xdj}BX_U*LkhLCy&A(x!KL zkEI`va#gE_wno+DJ%HZ5o485iU#YYgfbZh(Xn+St{wr9JJFGdM_e|nBRlniVXjBI_ zgz7h4{`$2>=$10&Jb9l4jt2CNoE^9beOrRSUStO7pu@4!5WI zCC+U+sKyoatFayjwCYTBoH+ql+(eAIGY7KKHN-h`f8%TxJI`+Pz3L50^E!ByOw$mr z$f+PM|DwsjK2;}q#$WIa4ZTHpK$UaxtWHy&I~&?k5k*K-caed}G1 z()YWG?==a&HC>m`jV@~OsT(E`|7(~xhB@$cY{hVC&&Lt9?#p4l&|G2S8Oq23>Jer*hOH?dB>%eM_`>+Fqt zKAv@gb9uqN!<%vy-_nggTXFly=L_%PdVYTWg3>+SS!H`_XD!)NGfVbax#4ZL(Lb}< zA{qZuD82j7$8D8s^-6?(z#c zlxahDsOCHuBj>r4s|IfjXSN8OMNd|)VylAxEvMh}KAaN>#wnpP;7=r8nxqe6NB@#I zI&W~^x9G%7Vw_MTY@a9rRM8C_vEQt$OT=I50^xNPW$Gi%14tT##>G_;}sWHp} z>>UXo4^dWL)TcG&V%Pc^F@R*v$)x`RziMK7-cQ^8^!F)Xmcltd(yvVP`H_A{`X+Ja zXS&~LzRum;EHF6qE8>4@HuSIhRH;w(ETmo4<}|O09y`+3xA6r>=X^MwJ@BOI7Ckij z|HCwpR^QlPYp?Dwe%Y7w$i%yA5?z__q5BVv_L}y>e-is;Dszu> z#l6Qhd&;m2o#@B#clKAGaQXf42I9{q@z;*PBa5HHQ#%s<$HprDX2no&9G>-0E&Wf) zn6r}6P@MZ~^U`vLk8{Mg?8Ft=|%wD!b%__zHow@>Cq7qp-jexMV5(SH08&M?jf zbU7*LNjuT`)Ijt6l=(;IeNdn1=tQ4WgB?+9WBtgnf?qMftpj*R`lOfshx;M?Zoklm zcW(0sNiQ^6im_URN0Ks5kS`8dP3D-; zJKO%;KCuysZdBf_ymwHa=+@$p;{@hyx8aAuzkK{(o!`5+3VG7cWm z%UbWj##!cB)=~kDwpu4xenuaHz-Kbs7vQw)}mvNlg>S^#mU$%r%!Ue zNkfo1SC~JV;)lSzYNR{wy`djQzw@3oS0xc+r@GqHphV9aN14cX8I;!G~V1 zizUr(`^w&zxU?tf*T+{WJ@Xl}kB!bVhm6jxJ=nJ=>b5+6P>pYU6unD#beuQN6yJ6z zdWhMl8aUrA*1K7aH%mN#yVN+Z@`-ZSc4+aY{gb>W;L}vzA6uvT*3bWV0s6PYkIcu9 z>-OggkE2hr-Tp%1HQ>H-`?H10ww;AB=x)Tu1HYxwf4QHe-1m&J-k08XHhW@~gnD&| z=iOH}rAog%^u3Gml;nj{ZvDPSKX}=%{zV?|Rfk^Nw&IPt(UE;XWP<_wkfI{vY}{gg#1{Cn)FTaG!{g z>pA(#qnG+r<Z*I~fZt7O>#!t+dn2+^7H-OZc9jhaL=>moo*u;A27s>&gjpy*~yy zO<>YyiuJB=FKd30vB)BSJuu2g-&U$BTa@M-dzrV{teFK(jNwAy^O%`<1K{Nu=3WXD88i$r)-B( zd}0a6Hn7nznIXJ8jLO4F$A8$($3AHXPR*+w8Q@eZcPB46Vp;FW2hLaF73o zdO2I#R}ZZ?j!Yo+b|OQ-EBCy247(HMnx}>6g7_c&E80*BY_CKcwh>R`E?_Qn=hWdF zd($biO=u!>R@O7Gnb=75p#r#{`0_Tt2e?Darkr4|H$g*d7(e8|Yh{dSr)K|Zr;jJ} zF>TA}pTv^3{e4bgJ@FdEk7Awsniebif1!u6H=qN0_!52GO&?F75BAbWIqz8Tr3=~z zt$>c0y4&D^g8I@|gOzc;5n6V%85`0B;$Abhor6pK>CmL$Sf`)3ECs=|^z3BT-`)7P z)>79B`YCiL_>RSY1X_4h<6XqwnbcGaO_X)K{Y?w8DTjKbZRu*Vhq%Mq{dgAeKyRL@ zSEgQ`H!qy`{3!HLbX3f)I05esprK^))DwC;WsoM3tg7*Sj+wRWV{KV0WZ>t zuY_S&NKer;cI8d2hovr(tgn^RbY=6-sBAJls?IL zdy(6M_>FZvE@@1j;5+rHxx|DIJ|%u$22b!8^{Jndeju-M1O7bi_rSY&oq@mduY>1I z#&th3oE2V2o=;$}mj7bQvRXZs_waSn;ZrX@Fw1#9YF;@0Skg`7ms-T%Ol%__ zaD%c=E1V-NeH5O$eLjA&qF2603H*e5JHVrXZM_=1oV4k2X%lk`XIJh1822NTA-+we z*5#J>SPvy#4d2yP{HfSuBz{#(8Tu>|H9Ot?Zf8 z^2lA~?3dA%Rs6ZnQHLG~kcF=w?o%$%Jkv2CFl;s@Hk z;Wx8{ZW#qpD_iB5%D19UUm2?dM(E!QN1R8g=fQ8KQk%qvqSC>;lGQ zK0a@qi}0_2H_n0Xb`D04KsJD1P0dsdCgL6Vb5^tN$@rA=24wQyO_Ue0=eD7rF2~M= z+^OlnB0gy1d*(pyK~~=K3YTWTnn%X{DE$Ww;h|`dHNqj-WK1rqu`?WtsO}U z*_Fhmbc`!cXsPHB{^>rjq2I_ZD7M88>T0JRW%UCsV;JxA$np_e;dcC2#rGvxm|Q3R z;8RB>*KNaADEo1K6|ogQe`QpS_dhrL|p!nY$U@P3M*$UIbw!$>c zRydfp>?2mGW-HVS9JF&#LbgI^t@v*R3q$(|mO~dEv`uV<0%L7mW?cwozg$Ol{H&?15AC>ebC(xB20phfXWu%l@YZGfy&U$3VN`2jr7B z9i1k4E;hg6*aJs6o)Vn=2YX;@lN-2&(xoE&_7@zdsf2ssyk z_>9lR70da>26&4`=8=76;@9}84q5BbZ{-L)Y4^n6GBH{pLH<)2m7tgEus*3iG*;eSK<*8x40^bX4X1NOIl+34G`d+lRglcMv04p8r$Yp6Co{ z<-)U#kauh(^8VTDJg0`9U*@~m+vNMZRoHWHfCsys@)vNa)O&e7O2SudJ|3>?=adu4dp-HEe_c86&`{oAOaG|% z8SasMw*zDN&c!RkeLcZHh=&Hp&yS?|_T5GwiMb>BB+gw2bq|Hl5IBFpzik=ef9Na) ze()=&m7#O`RMCl&C$b+ghkOlVLTRnEyTK89u94?!LeJ0fd|kL5l>!@J5=Ebm(>{TT z)G6&zY@zfYh5Iuxoc3p=6}!OYX{AjnZPNO{m`C@j*jr&)1T^*|HY&h+G)H!g> zuGl_%D36Q&NcmI9dpW#?x77Ocu%WJ<{VZA=N6hKtY~o(oQ!4ud#}$O|9~?ih>62IzXZ4O&cM%k@86&&7FHCo1)_M%U---z)(E9(C4G^$8eZW%JYpy}FgEGLc`oIyeJ{)Q z)fk}38Fp=)mNgN(=MHB;Epyr%_NKKc!1I%IB@pFy2BJsgjc?e%H{kUNF^i&>6FX?e zobm0%H&STpC&Vm@T8Zs(GqFRibr?!~aT=jcbWXRb$MuJZ7Ar#isf(WrorZ zb38;@4SR2G=^$>;{n%Ld5yM6P$^Q9v;L@;xe`&-zl6PRzo`Y;UJp2wk+OOk1Df|vB z+T)1rN=%=2Gx3#(7t=^Ard?tixoUgiTdxWJB{exY({L^IYV~l&VNAHq;uH2go=4NS z$N3+t(IR3oG4Ied$X*X^E=fKq@1<~go46~PS57B&m4@qjl(Mf>mX$Vihs(+hr-{&^ zkHAlfX(V+X&}9HWfrB$pBX{8NnB3|AX6^^c8^J*>y}W~qGCrX-F{x=G^*Hs=B7rS% zf0VJ2v}S0oz*=A?Fg9jRun24o^y|qm{IvBT48M{A@GGUB6T~(;H32>r*o_?Uex?2j z?2eK~>b-;ZXmNXy%deDH;CFqvt|O$qQW}9@j+6(S4A`lR#IZpaPmEb*@l@^nmZYZP z{Qp<=$k@-7dWaKstvX$^>6@4b?W4daVrsR8aoi^D)z;pmrhJ~;vt%rYy##)LjDFF; z{1N+^^lg~5H#sH|IxtneX&7sIQqyd{Nqn|8;v97nlMG$dlu~VNNNSo%8#TKZ=?4Fc z_D0fQLz;VElJi=WKsj`Bn>Kgu{4XPPkyD~H9h{Z6ME2uZTSGddWZEF<<=ii!rLs0z zr-$@aN~aR&Te}c?w*b0V0R79yKW={GmvhiJj=B;0I2Ss31Mz0AC!S#F9LR5E=N~R{ zSwRNiEqjuGglvlsUocDQeeK7{ zk~eb)ZkePt%3xKbNm|FzR!&sdf*=0W&-NxRL3f5>3fU;Wr77xRvo-t6ydz~>5o z%qqs={ma@D+^zIVzJBiKpCYCP`K3(gl26K1N)5iqIbg}^lc|-IA^Pd<=t6^W&R$u& zYPq~z@#ynqEgAVpQ9$mSxHfY=%7wo0^z53VfTTCRP!y23Dg~R10?T|wfz3}A1z!4T zQQ)`#58t0H3OE{z0vD*?M4M#~Zpu=F?@R2wBjAIdwp6)3#|AVq!&GV$Tv-3xZf2BH!F*e(>dRs^@NYNty4DNv)Io$E2)xzg|{5-!6J{8M9o8p~U{V(b~9v ztQ+d-AZE+|>}C%NlsrwQp?D=QxfMszs%tCMpd~s)ogZcuHH-^##)BdZg$1-zJ}usq5gYh@ zWND^P7f<|YV)#bIJ1j@>&-;Y^eaD_3rKbTwT`(gx|>_n5#F0PH@9qVnPkMgf%&7dp*|GV7Bw~w1VBV9J51fDl@INy_p6M&kXD7>Z zXk2=x4M=m{fHXM+(#-iPO{9!V`ESe*e5g(Bj4lS%CM}dn0{fR=h};B zf5iFE==kno@Ausmo`A%bTK%xKZYEN_LFuEzH-+McKT=NAAYrjm>(kd zO8htc-27YNp9Q9iC@1+~wng$ER)zp6rHsxDA-*3*L{$-?Nt~#U*0;ff^tul_iLX>suJ-POWbtBAw z1};L+D)l3?WPL^k%T8ck2tV*sE@1BX9{rI%NZV#U=4?)de|;PtOx`E|*4Zp+C7q;^ zHCmq0vG%a8F7BmWXCKVe&ODXpMda&$U+GQ4c0GgfpW(T$`HMF8uxPgEWY70JlbhFl z)W7%wX$^a^MPOIlLpk`D`rXvi`HNit{BRk@MOB*pzm5LL`7_dRI;nx$Qp+_9yzx74WZQ3?*u)ym&q5aJPpSE@mGFM56hG(1=tvH=+2cMQaRGr=1j z7k=YTe0K4H-vkZ+99#*$Bk$}nhF%9fN^fiZL0ItlS@;4>seQVUh?y=2|I$& z-cRpTi}EJwIWuCcC5E*?&q~2s_k0&faVF&aEFD zy!U+rHmoV?P;V#wu+#qQc!md>B5_?Q<{AE+J)-M4db8-IQ;>>+PZpPcOmZdUc5tv-4yhey(y@AC5m) z_LmG|E@iB+sr9q0eH&(P!!Ns3k4||lF<=C)v_mmiE%@$xWxaI94hpPWU%5lhH_6*v zxub%+@)zq0+h1%e6hlLyjVq7xmP%YZr?SH4R985EZ!IjNKEpcpFs@e)D}Nb7`Y|h< zkL2t~SFJtknEO(XtiSERdqbSpwa!iK4d9qwmfj=wP4UY&u+G%5wkmFW3$X`Z@2qt8 zI@<1eU+h2TJD*wQ{ubwyh5cydo9sC^-??d(lr6D|3V?0a>dXu6YbaZAJ=)MC_GafJ z%0(OHpQOJB>7xdB^t2BAj0LB>8#cR+QWG2T*jalj5N@Pp{KGR{?emsn)29mRn?$BKz z1v}vB-s*4#_8xNu8ejjezp44V{-`ZuG@phg3y7UdJ(N?NN8MsS&m)FN9=3EFdv9}7 zY!*9vX>)AKO3|C!TWeCqk4XG)>@YEGEPSmD#st=+ub)*+E+0?rB>pWE*NEr*Cm)siI)v zdvrYUcZtWj)Nr*W3cbTp^e@r$LEgpgUz%dI#M9373}xlS)-9<5H)8%d4h>bNTd7a> z9h~9<&WAT~7ruT6G03DZLi@xH6KPXEaL(e|G;D+GMc|z4sc6abcv@=lz4x*=MNhp} z#wvG#4V*D+zVtTwEqj`6v`gTo7?5FUlZiH!06Rx(t=1;NiEijth1)(|v!mh5VqgzN z&C{D*_yISGUtJt~&*PC#dT7(>zb7;r@C#-ldkbO{y~}rP^mo1ku1#Oqdz^B9>|Q<{ zSu|h-Ka>wwwAfZJZ^?V`{+1f|s_7p8_5PyO#5gn9EC;b~8)=ioQ)_S6|_toO`z&ZF|E{!?pJ zf6tpr?}=X!>!VHSjRKa^E;-)-UzB3IXU%lZWcKDW7ZrC!OIZbQe9+zEn4e|2Rvl)R zb_tw}^Rg`S(39Ai8=2hqv*zqmQ@vK3L-V(_j&Nwa=6rN7yLG9a4scvzu{cMdv)~M6 zY&AWZ&vIU{n&vq{Ug+^5)n9}!hRyNkO zw~g>-$UG-)CT((o26Wy zxtCI&&;m4o$!oS(n&s{-!9};_AVc0|5ri@w%@Ez@MZiT z;>wY37=4pDioZg(K}{@}Og{||J^cRShaZ02s3dvQpet52*(-aMj_A{xu3@bY(pQ5D ze?H)QW|#*M{1UthGXI1R5?)4l6oVSYH+UTQE0Mv3FA}~+_!8{Yo^@}sp6(9ucH-Y2 zgtrsEPV-FxH}-%VU0Ljx5I#(JFHiXewapp0{*GJx65rd{u-=si-1Wu8PGimPppEV* z<%w-(bXs#l^$KnB;HSjAIE3F$Z)Tt<@Hy*T_0yYN=V|9>T*Bx41f9Z9(Ixx`yhQSC z8(q7OB>DbuB+e&!I*~oR=n%^P_Tc*!4s%^Mb*&+tjQ?8hLf7U%AFMoIj~p#=Xa#PA zOv)2M@*bs*Pq>!0C;0?^8{6a9`y5KsXCw{vcQQ9yvClLSZ%N}h4l6y1A=BbGtoJ)U z;QCPSXKcq?jl}$(r1+ji78kfmY}sefV^k8T^I3djPx4LH@y}_u>E#WsllmbN3%K{> zjY{uJjL8aM-wOYA61WO~BK))&*ovRZ0pTU!d%H#{ySO zjclJ#HM^?-{UKvzc*x`b@nc@sPvSPYPBHeuB$a&{_=d92JE$AxJq0h*OW(zhCP=)K z8PEsufe98XzBiZZ4|6z##usP8*Tw^H;d#sT&R2VYaquztY4%kLKby%OOW7A6qz=K| z_QAulh5t3Oh7II@4b*p$^+b5*)GmAfQQz?54S#uAUs_SNZ*k8B_zjcuztTWgb zVKjQ%Sc8O*5g*Wk@IKDB@QDp3<@(RnDZNkVoLe7%SgFg@;ZKW9zyuBW6*@b?yXBl%v zc=RBBUzefOwd;q2gF_u(5F6y-m*LfKZk;VKI|JSwozOaaw@K;gAdlc4duO$?0-b%W zvvc9kg*Q)E<6pTvK6Gwh6`q(IW()4YEBR{1D0TUNxc_}Cw6XI}>ZYtN@K|_tp+lVy zID0+tzoogYv&wS!%<`aT^Rg#;No>iE2)_Lfh{% z3M0IFKD@gXe%;PJT{XO76P_KIiQZUYZn0NCdnE7^x~0~B(wFNIukzaUI;bn#QKGhKyq9^c$19@Qaz4weS`x*}%^G|qSSxbaJ6yE9|dEjJ? z2QGyNw!!Plo|&@M|8a>27Jj0ge*<}7@vAh*`Y?b8u9;Bgubo`x7oXlM^S^S=t=*z$ zZOKa+Wtku5e}(rIzEXH!!HdQXiPOO|jqmkDcwW|ajprS+(IsPcInR57cKm=e(}8=b!Vsn^`}0Ow#)*JRyG9gMZ*D z@Ll-ac=%k=mt2H@G!$)c5$6ydH_p2X9=G~|;@%i*GVJzU)7N-bO|N48KF&I+!s9-- zdQFS)w$<<|g{$vs5!pxhTNCXl(V0CssS1C4Nch_Y!rwlQ?v*-!4{z(#C7G{<4{}2v zrm=?OquM({msn7yOZ1+8T=h>^6TK%3QW}rL+jeXi)+ju!v_;|?vKAK`J!|1TIYxf8c*AG)yswbx-^Za z9Zy~D@VZ7NEzHyY6rMIF!qe`I@U)M>+jU{93-h!)BRnmem^7aDJo|$#B3pjzMUAgL zG?1_D*zg_tmh11c)w?{wse@PdLPQic(n$^d7slrF>zhSCYWg9nrt^oM0%PQOaL5PY!v`$D|n zaQZHI9E2Wr(y#O3IL*m_eenGde;8LFyrCUj8JQq_;ZWj~j%;e&5#b4wy+TVBzK8h5 zkxkF>PsZV5!NSIq(~25p-3fxb;@5u=o^S`3#v96d%lcdo@6z!bXgT&lp~tc=b&e{+ z58CKiCu@{WOZs(@ zaXH7@Cu{LG^oHfE#ht9dne4GCH?SVFju@G{5nfH|5PmJhtEDx`d2`ZlAMu$xSvN#y zmf7L*OP$rf)B7_!iv88-S2K^f{MCQs{TT0ZUV10*UA%Ylp2|CWsjENZ{RHo0c<4}$| zqsUV`(G3%O!0F46cJ`I;!QT3IQNYlVlu7Q={<`Nbf)_7t6~EV zvbU`UTbE{UWo*tO%b!4ouYphRraXyl(fE+D&hsp1S>XHBh0R-JwBA47-1y}i=*QsI zku%U&Y;v&&&MSI@&Uchv<4V;xoPB)f@D=Dp7f{9i{Sx-zm+yV*=~;VAnq#2VB5x~( z3QMeWiADCOzsNkz#O}~=)s8~xrwYyrFR=}Jxr2XIBgR`){2&zOMFVoLf?Q`_FkZ{s z%DVN1qU}Ged3r))yW!c#sp{b>qjSM%E)V-m?W)e_^yTajzLA(+yE?HSdBGWp zanMb@U6hfZVDRSK6koY&C@6@|ZKe&yS@7=L&|3!aEzt0m_2~EZsb3>n_bAe*ccb054eVF#sBnA*^PX=f-^-nQ&%CE z*utgmAn`*4CQ@$!@x+2=&1Ye!%op&wH<^BkAA|k9qCmdU*%yO-duYgyVW;7+=Etzp zyuT=b&E`-Ym(agq_#rf36H_9Ytg<+cz=)3Rr&;-3+=lWn9DnUrs=dzqr0@- zOuOZ~#Js>B)@!0Z!|Hpqc=?TEOm%C<46BQlH1I+0CBy1w=Efbqh%ch(;-s8$;IYcS zBZ(z;%c5vsEb}0D&P^?uVP4j`p`>M<5&aoDt`oE=!}CDPDB%s^X$zTWvIe#qE3|#- z3OZbwdo!DeCCnK}&x(IdW~nw0b2khqbMH4V^Xe;=xpzRBdS~F9wln?;W!^G5bk%%f>pmz7jLO7EO^NZ@6@w3(&f#KkCW>=Vu|)(Xav#He zEa#(UhwbV?>QCfZZ1vSVyV!s5nt`)0x!SFhEoT=@wzOKaEx%ik&7E_E-<{0&Y|G!@ z&9(@97c!q$k!P_9ITbr@_Q5HdJvWJat96Ry@Viq;KgDvI`xMTYtIn`$c4Q~^S6AU= z%PQ(|lJ604)0K*E3}-IJb6K&)jwu{NS)8p{IF_=Anf~q=%HllpcgI>-%Y1pn&6G1( zM#IBht*QZ;_Zy>>;_EN;PyNPcap{L#ijyYiZ^^k^H`j;tW%zlWL*A}N|1_^m+0~wp zKW9d6;E2e%N7<*2tStQ6XG@?v>@h6DRx)KfGBfl`z55YYF?fVb)AYDb>Ak7W>2DhP zqH8Pk&xek+_NvD;dzP%7y3h1Qq8p1bZg6eJkEQCITJ$KsDv#mIa`(eoe(_=HAvQ=Z zI;Z}M>y!;#>u0M`3alaTQM^a-Zs6I#vqAo;JJcB7 zV|b6@J)Y-yp5x`8Zikx8dou6Iyr=M-!gGrJ)9+A6@;;LHk-S@Zw(@M1e^EQs(Y%l5 zeKhZxJZJKpDgUB(sN;Aa$NMEJ+oo_`;ELk9$YtPC9+_>6k#F4NH_mogll_jH;{A@%+!x3Do#={XAH)&# zPDgb*ui%X>N;zC{Nbj#u6o18ExW{l0a!=uYj{9itN|e81BKH{Xv$&^lpT~VP_r=^N zaxdjRi~BO}^SD3AeKGfq+)KG{QP`uc_;W83m*GES>ttQFAJ+Sn@|R{Q{;C=q{XfUMkC^65zJH6q1p3g%9F_Q&rkk#|81bjP0M43knrb-?{>B~}jh%a} zrE1N6Egkwh|4Yt@$$}23nOTSgho$;&@RxN(7ErqiI;Dfeq>wjv= z_n-D_zV2(Mwn)6h-8x;j7y4)@+~BJD!+KXKbEk|x9i?5L(9UDj{~Ya8ZbWvVji;94 zuXLv_q*rABTl-RHAk5EhdGy1gfSGlwG}hV2w=M9vTkiU6k@g=S@xI!|+`iHTXP+I~ zTa9hbi2l`7s+}LhSr+Mz*e%y;eO^r)zMu_jf$7K}Jn6zWy)Sd^z0JZKc!VdJ=IkR@ zxnr9y#jIenQ-rrnVV?(Q5X)Z4*<&ePNSvDZd$n{O*I|ohY|_<{9$QPP)=oR^w0RzE z5t&iWGt$m73hz%S^-OOmXZ(;GyS=QTqI0Ps{@lI5>l5IGzkK$Q!KvBLtD*f$f`6aH zDZPJ2M%4aY!aeqy@b8>i={*BpF8SLM4fi}rUyY|WM(C3SJ_7&Jq1u@4)W+9%J^Y*cP11|(;q%Xbn zg}n!Tr5#0qHQ+$|jUjl)tX|uqFfXd$@7o!hHgI2IZdBPhi}+@UmJz^fEll z((ufs;n{>Ro-NnL&rg}vYu0MzF~7csXHM|U^e*TAA@>WOJwv&IXHt(Ef3+nOT+6_h zZrupl3*7bKlPzTg~cbpLj z9_GU|L7I zSUO6XD*F6)1*YIr4HtWp`fOJ_`!pVkI9*0~IIHxNy*$p8Qp;4*${a6UlNAV7;M4qnDG(9&b+eps*q2G8UrpYL*IM=Uw7t|CU+o<8KE&{@HgU9Ahr+_@unRTEAdan zo541893O}k>q?rJBR_nMELT8U_qz1v-H~Tx9uM;0CZlrrUHo|@zDO0Y_Y5(4WBwS5 zS+k71^#ju9v(6y5X)*ti*A@qfF)w|!j(7IS-8RYDrz76GlbBQjb1i-ZbH_qoGohto zBaHAo#?ycQoqOXi&Ikqsrzl`#Y7Nm#uks=RCnVs0C(K)s`9&&E2X0N8;1~HF%I>8}3I&wQYfqZlU73c!Y=vvF+ zC1Z*=U~`V~D(jH>k(044`I?aXgT(XMkG#{FX3XAC{Ab~3(p7ckv*4Jl<^R`yZ4x|K zOTU;m|G)MtZ~gz;FC%-^2lmT=4f`I}5MA6lcra}bS<^V$`w6-OjsLo|J|<~vAi9<( zM5c?#dXe+Io(10h`XS#)#v8_b{6>3M_KrUM32Shq?$6jKZh$^Jl?;pQS=q0XHH)=w zgMuIAIxU7Ou_zs;5mt-HJXze&@h^)02|XM#)!8SuE%AB%SV!E8pZ_>D79X4M5c8-y zPw{>ExYZ}IO|9(LY6MSZ4qqTnw}Jdpujn#{S32>9s7ma@*U|mw>73VPa#WFC^mkv7 z_8e!5T%@1%`eB|JSyQHSju-sYd@fmAt6B3D>k7;D;CPLGM8P)GaLrfFxNDH+tI8U` zSeq}jeLIfd8WR+5!IOsOIi2;^1L7SlkJm?4)t%O$D_&lX*J2 zC+1f10rXwH*iv%n&x^FpNLzB4Bi-nJL$*SL_OI=&pQe^F&%1!3z{2? za|hb#W_{kZB*7OG{{u@hGQYqn4j9G8FSC5km|Os!Lx7Vx44>+sSK1ZUIvbbpB{nWu z-)+V+-Z?{*%cR_G$>J(uJ@0z0Hnmb6=4pG&o7(kJMRWH@+nX~Or#$RV;@c-_@;P@z z;(l%arQUBQreV`Wv{Vr`Gpcad+nmwa~I7XW6rqQp!$a1K2M8ddycbew0&XlIyUHx zi8V`bb=aX)pAlc`0>(?m>Q9`f)eilU{wnl01sr3Z77Lw-z~KvUQ?Xku9XiGe-KC6G z6=&j>%2>eYvSkn6vva=Iqh?4^9{89diDuo`x=$U z{=nSj$HTFmzY%Rsl6`^dB|XuXTKo-_bFk$sIR!mXVn`2!|KR8PD9-tjGv$U|c!jq0 z>eC#R*cv>L(H{IauD~A^_pV#!xTa@{s?_Zo!8pWQ{o}~0C3!Qym zQqEcGiaoScqXX@6ipUelL99J%*R-f>?`zS;PrzOa4+h^M{EUj9Y;KDU9>Qj^LJM?^ ziPehF9W+e01)Strbbq?|S-@M){j-H-g}XK1JR34XF1)`k{&wV_C6)=mTgl`MWA4JY zDcDhM2F~NoH~y3pyaWFK7{{hW`y*Of8M>(LD@$Tbf2R$xE3?$7k*(WeyZ z{vYObIdt8i4s8>?(^A&KBb?FAnFL#n$RzD?hQeLQ%1XMSP-2aC(RXFzkwP0+KK4W5 z0j(R`3)QF;&eQHFOi{l7U!unrn+*Qn{E@RK!kmojITpi9WY z4^3hi36CYVABXrmP*!QVgM5w_(rWQ$&ESVl=-&4uOxEG79Pjv778+3`rCJP2Am7@BNg9WfHCLZ`(HD^GO#=gq)(06cdfe;V(ub(xSs%M%rer?#cC z!rmOSCpQ3%-04PtW1M}xJRd4W?(7__^qP>NuEo#5jQ&(?K=-1HPl?}|cpvh$8CleT zTqUvdC5Dq9ztCT;d7$~v@bnKprn0Xq)zig15FWNv)~1wk(5K|4Q{Y!wmou>BpffPa zY17v7vUjnkA;&pI4{C5|Yw>?Fr^>Kt;R}?Yt?|f?rFsQhH*^Tzss9$G$Hv^RCg#1g zP1+^;$boH|>M3uYxi;LUB2%;Yv`d>BbYE}Nfq%12)5C2NebLw3G&Izv)KHsh<;)e} zD==PLQPDj9?c6}j{@j3^+n7o_rHyh{k`bMj%mNWPh9i6bYRKSbvDLHJ zO`9L3m%;GA{>}Er(B5aUwWH^`)L!9_>e+KAFqAr_twDU=)2AstoST3S%}@~0xk}nS z&==A7EvF9#U|qx6405J|^yLBIEqZm){Yjq;;r{#waKCl!gUuhvc+lT%2hCc4q+Wr) z$SDJHqT=7|kF0mnpJy)XkHAU#BmJ<`r}Q+X2Rr=N`eB16lz+0Y;aO~n z*nIXqH_W~-BhJ3>Ip)MWM}KE{_Ah7ne}?~OTGy|e)w+H?*9NYQT#w9Z&8y}9!&$Am zs2#0ud1vi=E9QbB{#zPu3lBN%-{}jmdVzGZ4!`^y>lEwO6jeDbIAcHW?8D~W`^2j^ zUW(HoyojvTpQ-41hcbTn@w~yD6TVN%5Z{SMD5qaHtXtAmn}%{W*YGAKn(;%vn@ZWc zeto01R-57Hjq%I1vW7!*YB={%bSf#(*%*!gvxWErWEv^=F3PP!u1VL2%4Y3pYN(jj zB6^{uvb2qp}8Q zc@9SMR9LE0qc7!IczK?WqP0AtE9iP&?0`v4&7>(kBYNan=)=$-Lqmjqh`hWI_+~=$ z>|8?ovbeCP6&hZyU1fZQ^BlR%uhy(50pG*VLLW*$qrUfY*{k(c+b!Yx48I(ZXTY=JjRD^W zJR6z^d>`;^;EWJycj*_zG=Wc5utP=Qq>uD1l176k`-ca#=L_IH5SE5t)vl`HGQAlt zHv&IkC-I#kWgovRpNv5@d5kTvQU$}s+# z^0>^qDUa(P%BvWs^?hK!-wu~&U_XJR|98%UXZ`hs)?xMV=SfQMXE*CvbE8;uk>BR1 zzKD$YIl7Apz8hkLl=6MZzg8Kp_|JN?5Ie?RN&Fxql_RGz&S zf1XaxV>GK06W{2u?(wFUh)xrG5Ai;>bPpPCZtr#WiNBffHg^+uyb`(D{Hizg;K8Zh zyB^Xd$(f5iqZD6l>;cXg$yvFbIc|EZHnpN6t9g&x)1vL2gGUm(g$+G?9&^+-eF<_p z=WeQTo^I-tGP_^%rmj*==8{3qm7)tW=}ZMB+V|SjtTp4CrLFj@nMJ=-0RO~(H|?y= z9NOEB?pk;({%P^avpB1-1Rtbw$`Sd%0#C;I2pW$iXDbRFK0%uYo~bD396rZ>hHPTd zUw&@ls+iwhIyW&-H`bCJJ~uIsb2tZ{oA_LG=-fo%v7GQ&Qpcmf<7Liw5Sio@XSJS+ z-Jkk0XFPCrf_84Az8CHN>CM`t@5GIizKU!lwu#K1hqkh(;`Iu2d%_QjFPO*yvNu?CVAvE6J2y5ImTi2t z(4)x$$nMRraQ4L*jjt6uhw!r^XL;6?hxMq&ZrQi$g^mi$?VQOfF}i7wXFGjG_M9g5 zYxpF6sPJg{HgV49CU9dJ_~51e>Ga!784=u-I3eluse?NE*0S%U=z4g|IgRX_>g`8A zA^88BXOVZ1tJS`ce5qqiaY`H^Y+8m)r(MD4N%kuU%~$3@*M#PL*JdeD4Q5%d%CvQ1 ziKP=obSaYoL0b)}iU;FnyG(~GW;Hle%H&SSF0kyPxFwWhl>SRVB7K{T2O_*!?7*2FDLWJh*}{yAGb)3csu(zf0^(Ih)Wnoi$D4 zjalzm=eo1@E_?Dh;@9aVew~iEOnPL3DEbkNOfU$UU@$U)fpIf3ekSOXnX{91KB3`4 zlSF4NwkY=(E`Kxekv>DGat=Brc;q35xU@<7??x7o=b7YdCvKRP{_^d#*oZ}UEpgct z`b3(YqMJ%(ZEYW{^jYbTq_h7ubZ;kKn?k=xcgV!KRZ`|P(Ybwwj@-aAo7TI~!vq?T z2@IS$CGb{9u#N!pBgFMG6OSU6cxOfM{{qXUz*6E@9YJ?0_B9(YEF}h)?6De03@#1t z$QujZ2(H~s`i{Zi=>WKkuEYwgJ1DmbSU(G_ZN&N#7^5?xTzDYhJPZD!9G({25iyPp zUYmPOivfRS(UGJBt1Ng~9lA#Mff-&sc57)vm)_vWfd3fHUUSh~Z$x&j!dK8^$JYuR z68YDGJU2sc&}_<*)`_m8+LY$iV-wTiQ&)-|IQYl<)ZyxIbLm3acNyBByJ5}RmZe7a z(ukcL8ZJJGVpEfTD&^o5{Zd(fOF2uYT$kqUqzt2b*7R2NcjaGf^^3i?QqOrX_`%A4 z3&v5iLCDz2*cjzZHO_)7W$(YlnpdoL3+uD^z4k1FMu?uo{Y#fW2fxW&;G54mEft*6 zVtS~luA7*w`F%^?&wtjOW*Dj@hzu)wd4n2~J!}71yQ&FUsFw2+ny^!MuYJ;0qMAK1 z$lFq08RgkIKd~FX=y7Tl|BRlRSG-R*avqP!D0cRQ%UOy>%9M25@!c86H87p{`A9m1 ze(ZNfj{&`eTerwxz9boYw$XFI60!|i!EJn$4z2lYtKS1I3T`{W?PWYK2bWjKH*mWY z+!j10?ddjf8Q-(MDsVd!+${okWj+aR|G&h&d3@C6wfO(}%p_r!>@0x^W&x=)6T%Xq zqJ^7DP{{&8LX>LTn?PKW42wZ+E2s&JHOT~FK&2(NVUbFLv4YrUdZ7@o7DZ7m)_(2n zy(A!#g&omE!TjFmGcz!WZ2f-w`+ooUygu8rKj)n1Jm)#fT439NKHEZMU>9irCSawN zb^S72TfA^xdKs=wz;!tAH`xc*4Yl8eYlo3}2d3=!qw5XV>qy_CzY<)71C;9kuA4Nt zMlRV4u73gj7M^&M$>K7>#}xy6%olM=rhCM;IT4s<3`<2%Lq+Zk9J>M5yd?TJ8(5b% zo#2eA5S`GaKA#F+I8Tgg(BM1~d*+)(emC}h)vUp}q|Kf_xaPqrX*&vlcRjeU7C7$! zMmGTC<-nTY>}1kBd%t7HM&q!!R|bl$2|fqF=ZT~*1kMYKisA}^^9S)$xHj?TxY@wD z$fHhB&hyZcWyK@L?P1?4Ye*Pv9!{I*&}K=4%u#FeE3|q4CES#_0D_y|HjmKS9D1qE z(w?Q$F1Oi1+mBP1v`5;UOq-{WX5&vBJ3<({yO2{!yWiH@?e($HyWI}-E}h`^9NK=8 zvVKRqUoRdxZV!Hvga*r41Ba(K0CUN-f3C0nZ_{q%SU#H4v)wkW-C<_IYk}FJS86!#2xLl=AP-64)-Nh@>P#y(ekUf9^*4t>(OL+pq|Hr_H>sEOd;#*5((%^H)m+(<$V&I^Af-l%?*19a#yiC@<4A#I& z#P+?L_46*)#yeRfC*r#>eGY4;mxuo+*G@lwBryghW-t7`#>1B(OEc)Fd%k2{{faeI z)&=p+FSOE#y#jnb@>8XYIr)e^{zu8s8QI&5O}6;R;T*!=$~+m-uQIXrnOS#2;im>; zqlYhA_euHpJ8WMjIT}sJay{lFxe^<1OcG@|iPbY3Kkk|i9OanJgIsequEJi=Aigr9 z42kbqLW!AFO+2P%Y$~uP$u@+AW;-~K{wrs+^`=2CboAk24bC*?$I4n~qF$k2Swah- zYie5Bjt8)}i+~o)6530>whxFKTA1eA7$=ltR7}n6@%3x)TY2O{_*m=vFtX6ua1Xp^}qnd_GnS~2yZ+~bZ za%0xFbmYcMxEJCBw|70+*f~ht4k@P%IKEPu6Z<=~b}n5od;2dI%-LQ@S<>b^!TrK< zH^;rg`(1|b#Vw_L>4VTn=|dv)rsHDw*a!L;%`b93TgNK7_fMnj~`4i47tqI@{V+#N7NkFef;|VzDgI+|59JmcQ zG{R%s;s1rk0Fx=1O_dhpWaj;>6Cx8f=vR3X;2jLS+dfE)6Q2mF@C)YS-Fd=e3rq_< z`{7k!6TiEjxkHrXV(_y7don+s`1cX(fUAENH(#gU|I``cMB}CNL)lxO0}thlumb%o z!ABSIvFxmO{`K92f2<_lE7`+V9ZlQu8s~=MV*q^vS2#R`#F?)`#w~K?<-~`u5Hli{ z*aw5fwgeoN^Vb2lVAt|;dG5d*?70|+u*gT_!r@EXkqcB|2iDI1UdB1;RaMM7^-MKBU^K0Ypg>pHAXeq-F6FhT}6v?Rb;=-#5`Xtad`1-P{bM^hHXqY_Va1X zt$n(sCS%&uTA%hYuIBpZa>Zv;$58BFXzT2mPkE||lU|et&ogtpCjC!$)CT&fuEFTf%DM!Pg^ihM@P{uYP2hHSTB31-@~+TKIN& zVvzetA@QiF>s`LLVsm3YKiy**l+{%R54RTF_m^+zq7C>C$k$-aWDjCo zNN_t^WTN^gyW14)8eQ^WqqYyzDcSLAly)}NlH{c`iF>UstIm);(m~I)(3LAvK3n`qXH8sb`-)s2^UQo35y?p~xBU0)~#H=xfpy#U*QeaQv_5 z7xGW#Ok`rwunR{SvkgTvw;yHPUg0kNILtT~lJ_Cr~Y>gf`wL z5-&ROqe)!}KYw()=pi;&`t}`)axwlsx|CR_Fl9=&L zr!Lbr(~0Sxq_7yRZl`gOEA-aI^GonQXKI=52~E!PwD@Q&K9$VUKJ+rR{|5e*@NSyE zWPVYxy|MKXhxh$f@4MJgSfgS%+eQ8#hOZ;qrWoeN8E;>r*`+oA$bsC0bJhvG`~Hc& zT64bd``Dh}Tb;;IC4HKdZ)?Plc~{4;p{vkykuA#lYrsEO>rnK9fyGpKUhSQA#Jr#L z7uL5^=wrzF>nSzX)xDc|vF~4&<@L~2nrQr|^Z-71xqI~&Q~!kQNJX}-aGtCpBU0*L zrG1suTlE`kgK{_L#vyXS!SbaJ)8KP z)oUD{$-rP4?`HB5dy~ldWWBGTJ`lHB6Yp2gpQ{c^aXp<}Gy7uMLFdI;tMI91Hmm0BnW}1rmU_fz z*X%(`G=1=xe(4~NrV`EiZAZQ^M)WHT{O9=%2QjS^m09q^#I&Pcu_0BdyB!(J`_y%u zx@=FIkY^6Bu~V0gy2Q7jSLPu+otZU{I5Wf&PeT@pY{w&GU?uLG?Rc(78w2{ze!yHL zdx9c+qx_fehCGKSlz){x8;gn?&FBmmMys(AHz`q4=BX_emarmcQcSc$&Nst~WAbp;*Rze0?-eor2BChSsn89I_K)?dcZTkn9LaMioMSIO&;`UW^O_`6m; zFZ=2#Mz>Dt5`M8Fur7G=YxS+#Ul;s+V4qqe;x3#+{^TDA(d`pk$#T;B$B&)-4ju63 zAHQ?#&0G7VUyw2B-KY8F6JAQ|7x4vdq^^eo>l$+7bf{9 z4gWa%%V=Y)!PSm+%(Xwh74>OyiFuUSd;FuN9)T%K&w0KQ?DipTAnf*lC;PSGsdJ65 z9{cs{IYHX1)-&ST_56>&9^%FYj`@}PbMRXAq+Gk6xBc~`^sGls0M;|jr?Yynlj-E7h-U{uPJVoDUuk6De*%!;VGQNopqC7v&v-Hcq_Vk|5-}u}0 z{hsZ*QvX*4_CLB8eYoS=^(-ZCfxyij-q@GT=tW*_y#4+DSwMZY&_3k%d99Qo`WBD! z&rd&?`;?+y^&=lo={=r)e3=?fhQmN2488 zibu{WWc~x^?P@f08f9tYU($1YuEy)!70~9Qxi`)e+(y1jyw2R7JVCE9)%buU(q9!n z<}25vYlHoLn%}ceSE?uKTJ`+&+V$xC_5Aeu^?dcqYxHOFwd-jmuQo@Ed)6a!?ptrK zx;}h*t$G(+yWaQw^)BdH@0G@JXJ9?1Uh5G4#;!#J-tgD+i|g03F|eNA>m9Ivt$JSa z*Hd-UqT@?@M`K>!))ouS|!oG)6xqU%5XYW%>Enz&2kgUr}Jb ztJK$fE&GwL%>~c*>}&6I({3=`B!9YUE68^VFSp*z98|VELclSostE z<$vC@{Hx9NZ2@%@wcq$$+sJnbuFz$@5x5#0Sl7uLuPZ#TE^ICW>$=js>jLUob@s-_ z?fi>AxH{W&+b|Pn?l0uu<>Ot2pJ2!>=c;SYx5_owoR`U~;qJFR$M|Yvx+0)1@qM7c zr|d=cA^b|<8AXwfIIh|m$JJ%}PgB;Van=z-^g3rEr2%!9#r4`ZJ#g)Q&hq#3fu8*g z98W(lI78YMIDg1>48awaqJO`!Ih;g(fxDuAXAaRRxRE)$!KI6x#o*`6Xn3OuCR?x zawp&?Jdi)W(z%m=jK6)MS9_4F?G^r;w#k_Uy2~ljHffIm8I6VyKHtysz08MC@_eoK zenvf4Y;Wn++j}+GKR{VBuUfmJ)f+y$+C#oea30+g&aYP2?*r=^aN~7t3ao2D&$`-% z?wE599WeiSk`@0AVrL@fa%;%v-NW~-U(K`7gkt(Avd&e!ul4u4M_bbC&T;nNHgwPI ztI6D#lGhJ+WyBn=U~Y?iWfAA)ny~hSuN?)?^n~x;`z$!F!9-tfBE)sz13`{yBm5zjpoh-_$GrPXh8ArhhlToJR)2kN+%D;74o?jFguUFrJx|x0e32 zc+Vy4i}~M7TvdO*-e-^kOa3#+9Mbk4?=!1<&e!O`_6~JjcfMN4FXLMPoCrPi(+)qK z>Wz!iuaC(ix~73}(l?;qiXr$iASRV}o`~^){q@z(u$y|dUkxnh3hlpAd)~N0drmP{ zm*Dmq?Fn4#q;J2L@d!aSuHj9;`v0aJh4+g4$~`6MDhLc3h!24N3ojjv!vad`vo(UaYy9V1pm-wN`;2*Ie%!8ogqF=BN zJyM5S_#3Yc9`;jWi-#{51Ab-NC|lN(Av5o~sFFtId!pl^xP*jRaVGxRH2qjBy_fbJW^ETaWeex#l8^r}GM92D;4kNV z#7&)n=kVvz&GVlrPL?qQ=6A}P3a=(K&OtlzA75G^cfQZ$UXiZiQwctTG3ZO#a%PKu zL`p@Ls-4+Z+%5m(X-i+$vvk(qw7TZYnIHZ zPj3Gme%r4P)S zR&=TQmFI?k^jxmM_HxcaHlr()s)jp{>n$m+EiTJcbY5MH9iD27!&82@*e1=2tFoD5 zvz|7`W};(eL%-byE-2_27MtE(qo7|1-oy$_t3JIg1-K35jr_3XUmJx_lymOX@k;4l z)<`4%5^QI%(V$%GAY%7^IM+vAP48JvU!V%n$UKaZ`I|`}3`?qVDRqr&C1qI>aMe!<{G;U3%qTLS7V%AyDKc6`WXBa#yD?( zbG1dvj^Un)k19>SggOk=K_5Enu=z?{M83boce%^>;cIfM;o}wa|G1Gpf4t(X%<*x3h}-z_M`vZO z%|ENk72gD!z4M!@`}|P7`{b%1cco3~swAfC3wpDQ^{1g+RU68qh~@ZSDz-5p?vv>2 zw%vlxE;bw&!0Qt9cq`2K`(a!S#dVGGs>NB4kAXIH*2PYw`w_;}Ow1H?+cyDE17zM; zsrZW+P@llOOMB0q!v-InMDe@x#SC3t7xo(!I`)B-Re}vv8@kGpSCzaQRCk*byEDoc z*pYIjoMN5BBRa=|Zw=4{(UGmu<4cBn0(YrL{1Hi<9q|qPGWW;0i$BEpp~U&Y-;(Gi zw;g1CJeFQ}0X;T}8PO{G$>=VprYUFqdF8w0`vzZUG7cU1jyt#f1&@I-t-;1j{KRZB z_Qg+42)-qQ++Q=c((en5bJ4#(Dv@AFK`w7K}2 zLJwH8aS?ia9QyHwsjn+vjc{&#Z=`GOdm~)X?T^Bt0jD@CyN7!;xT5f_0a|`aKhm!3 zn$%T_j_EvIgn7$*qg|(1TSiOzC*q=y5`%6gHUPSknTkDrde5ZC(Rnd8)=nd6qIW^7$QFiPg~js*GP>=bT>Y>ll-ScS$caGBEw-ex6O}MYp-~ zfDxm!0ld5nBf<53n3r+%N$7>p=DNMNxlF*Y#4Y-gd0zu8j|Ki}pa)*qeG}M)Ml*l! zE_kdb>{5@w?i`;_!A*wCu-n2|364r1q&=O$E_{JKULEM1(*tgU>kqrTS4+Cawb7m; zV7CqYu@wWW|0~*4EU^2JXb=A3yx+Ea;dk5H!0#^71HTeGN8ooe@GG$E-xF3olhwr- zbfhtM&|`cDTCf?o>;pt-`qz)7VORT(rkD2i3Qm)k=nh=Z7v0zJIP4!j%J|(%PnKtr z*uuV%fPHdWZSIbYC-F5f(8?YIJ16SBmLHx3=0Jg7`~C3D(BDifH>GO>d{VK(TEN(z zWFH{Bg2cVd_(QJP_rFnqt-km=5Pnu-8xT*>UWdKed&Gkg-r-)g(qg0y_*#rQ4Numo z@ntdft$)+mTJ%cS5p4QS#(VXZq>NMg0rnTDW51%@CUsP>wp73qm{>1w<9o)w@vcnl zG_%BBm$-M6vDuaX)uan$9ICO~twvrq#cXgjV6W=}pMaOB66|#+`|Nckj=3FM-MR46 z#lQ*v#G%_JC+*4m61%Ac_C2!SC0+z^bYt+x5m`_BUpN`>@EpNr>NN22A76K~hY(ye z*iFJGgXfB~c)P?QRf#<+JZ6H};Qyu8B6gq0xp&~#=6H!67>;#L1h1vPGIo2|<7Lp^ z0oeOy6u#hj7g{3g$Q0VsJ`#Hdc>Dq2eSm_VYiOXp?rsqu5VtX$IBT;(PhaKfGkQK>H0!EV!VQ{!F)e%|P8R z*KEK)V^NTI{m-TiwZsH5b1&LEo>=YP@7SN`<==xzJopYh_!vA` zBv*tQVXnaEourYm$i^Ob7qApK|2Fy{<0pH>9|=vR{Qr}A7kR-C{ssM&_VjM+x53`F zYBUvI{4n<4$Z^KuBmetTyK_C=teIwFWBPGO*0%=ehTt;t4)aWW_Sgrr?Qg0%xP@S;)f__jsQndKYe=T7JNB5pu1Cv z8&$1FnNw87RlwDvkE+*Imo?n^QdxsiPHc??+-$UTf z`>)&U4cI_i^Q<*S`0Ts{TTRus(6#)NNp+179ghNkc9`>;YoMy~FX`jB_@7k&!y%G#Qr&?)YPMwlG!(%55EDt}#(=>%#by z3^m&G9(*r*7;K>J9j6$dB=}g#C+#uQM(K}vhPkF=gt2B0@llOGUYuLag?}^GGNUp! znQ@=OUHXLsn!G8rEk98yoke|OTPps{UdPAR^U$Oy%8R7Ds2Nc;(ZoeKeRpJy`23O{xn^=Euo$0HBk=*|;8}Gja}~JQBZpJ5hoG)G6jJTSv z1%qlXOj0~u>cMC+n-1FdE+OM{?4B1H{(-JOaEAK z&-Cyrw`bFy4EP0K`Kh!gi5Os#{=y^rp6S_BkDp5UlY5m9{ng6H-$Re~zz^L%o%y*Z zuzbat1YVT+U?c;WDS>vv^Le^iv&DXWFLu%G*j~#wiJvC0l%Wf9Whr{?+aZa$$T!2J z#krdlgX=w|kM_L`*~mV=w@<>}lz$oU+a<(?ka9XEGUn9T!T(nFf~E|KLt=8Zr((AY z|D>gXzqphJe+56kY*7+VZ+21xP*QGb? zvugWplWP{`;j1F0i#_c7&v&o(x9NoJW9Y9j3x68)--KPR2fpkM+F1s?OFIp;-$;2T z+SzfRp{59WTP*Fw4^0w&yi8o;Q%2fYMH^p6Hc_j$Xl)c<#Zr#e&R}WhpzpLZ`wH#+ zhIX#+(au<{os|LY{Esk)N5(T1f5q2oXVz8PDgKG__1>}UA_mIW_eIo5S&L*$jovY> zzriv68Eut0zBHcMm&bEcRJrGVcp7}VU2)$1bMB&@SDJJ0c;erMwbVPF24^B|tP3k= zuVK*Sj6%cP?=#hyX#?_%eOe4A;7I42_o=i`=D9MUT~4_nCGD5Xa1gX4ph z(XHq@wCVBf$a6XKDtj7WFDeszVSim&wuOR^SO1@Uo&Te+^MCAh{@;F`{}ZnBKkYjI z@4C+a%xnM8p0dz0dD=ox8RI&KaV=x4+8Ngl{W43fZ`@?9ls%=Kp~$*^{Jzkd>U$S@ zuKEA|>-_)8b^g!1&i{w5^S}5y|L0uif9aL~3qR&w^jvQAg6DFZ?~AO7fPO|YG*L>l zE1Kt1?@sE<{bW)Xc4RB?{kKAV)HbXOb?;vn=3e{c?8a18(P+yqo*8pz3AkG>@Q;rX zM@d1W4qhnnDMPFhWQxsK6sOpu!J~PGbHS^-YmtjKiGOnVwRcII%35Ov&;0yxC_HON zin%5fIw*c;g)f`^WJzN!yo~G*%AT}0N@txueAYS-1`fEi7FV8cHi)?Mo z#czeOg1yNK+q!Uf*18Ddl_{keQI%_+fG@Q*vxng?p9&nb*wX{)|sO+NY8g~Pwe zn4g%`6_&O*_hg^JDX-PnYyB2~2k+Nc%}*w7LimL6no~m+_eY$?L`Ii;qMiw@iRY}! z#U8(zu}S&1?BM8c3l5IfMVsdbo6YzEvTuDi#g)D|ztKMj&72hq#1|@et0$I zMoe&c8raJu@jk+l>lvBm@a$(#x|x2DyffD`>MrCZ@U}_3kIKmPjLvj;B5Cht;A!;a zTu;grhleq7Ch?wf4{e&}@MPk1XESqnR``(NoO6we_9Tso_6#2v?MWUV?HS>S_KdtU z+A}I6+B14`w8wT&v?rw*St0XlSQqI|3YxC*P}$U30xwa9f8z|E1y7O~2aO+LKHHf~ z)6=G!*I2h}g*GwQ!h?w4;w1cR5C_9PkNrV6<0ClIjtmCBSRV0DCH@%2_ab%T(>LBO zups-Y$?U5pv)>M5FD3h^HqJB!KE!|Wdi*Ch;6K^M9!hy|eNN(o8*+--J1GyY%TYGH zkz-`Pl&^+raUEs9B;}$Lv2VB`)Ft~HZEwT*7ISjV)Cw&g}-A^DRqJ8_44d4Q81twgt(^lxofimD@A9TH%vivk_B<&5PTM@L~ zemvUqhDN_4wYB^sjebQs+o>;-XW1hyGiQWa_?|gByE)T1DmeX?6E~wk*YIm^W1??tuyQ+PBG8m*tAj1 z^ZWQlkvWk(LIc9bvX6s5?Do;dQIr`)nIgxP@jL^pL<`R9!nHC_>Z9#v@%blmkkOPm znlg|3%9K2(C^KwqM9uHu<)loJD-8Fw6aVSf=~I3;pqu!wrT(Aww&dBqm1=Io)7VT)F*Ds zPH{$dPrZloj7Poe|I*H`1{<(`D z^JrwOq&x%V8KOd6p*tKl17jh6V=9N4W7~#>#~Ox(#afwnKh3XOlHV!v|3!?4=)w5) z!QQLtUJYEX5P4g*`wn*)=OEAjv?^ED0Kt>cqU27WEH1^?WOQdC)01=cP$k?ohvyM8 zrr_=AyUH8);~z0zhYwyFP*QQhecFoOsYK>n*hZ2(&o+#4{_Q z(c6rnW>+Y3MQG7TiE{-V8i_n-q@L?}^c>!Ev<$0s`d6qoy@II%@^IyHsL*)5{ z_gTktJ7u@&V^hQrr%hiDJOS_AP27vQ8@RWb<5C0<>Ufv4$F_)g%@06ZU;Iwvk7`PC zLyg29dmVT=M0?lMH|V{)VJ34sQ#q5(*hqgufrF{|Zc2W-q2?qoPzyZFE1uWrL{6MM zs(Ovk-v(f!fxOPN2=h*2mK|XYfBj6^%GZOHZC}p#6Fit&r&E;`>2J%qYdq%|$fZNW zUC_Rivk`++jvxbE+P}>9i<@>^3k}MFo#T|!Cl=LOhAn>9(#`X#*@LJ5l=oW}KWC}s z{bSxAfVk&?Z0p7?t>F!&AEH?DymxY=sFtt==)Ii+Bjx8Sv94<|)Hq!oRdyzs~4L z-Vl{0{#BzI(vYPa65>W+bNTG2bGN7SoWpY=_eA1>$+uCwFXeqMcZm^pkD_?);dwdN zBL3eKq<9v8I&b?->@206#rS)i$~|YiYD)*7(QO!;NZms7g&wrQUnd$I$+UfijW$aC z4lX-+%v?h_e;E3ybG!JBl(=R#zL~g;Hg8-3IX4peVj#Z(oDn)BG{z2%G4#jJ8!#rm zJF|c(fk$}bGaG>UY~aZWU*X4V1$uK5Ix{k@%r-i6w{<`9sv|-o%=d&unIkgijf>2D zbeybvVLD>sL0js07WyFbtlZPa|2JeBAhD|e}{&|e(q}e(9kuhYyVs5#eG`WD7a~sKC!l*qA%~N%hr_9KjHtX z;Qxk?a;>RWBV5(=Pum0e`nQb!ah|_+LIoTp0vih;)x z;L%Ax^HpL?0F%m#*pl?>uk=s)EIuBkp9a>Y4*C~C|4!34;55p}S!p-@3ma{&$r+tg zlfpH6)bcf(f&15tj;;^5a!ih{QMyQ1(fZw7RoOw0XCp zGyhHrGRwKsSLnB{14e}J6j~+ikTyi#*<_8p+Z^jIestU`Tpw}Cn5IzYV)Dycd<1;Y z*Xf)xt{ICeELr6%S(75b`3g%bV~kI^OYrpNj2#+X^zSdNtShp%$eB^aaMyg}FxULD z66?6fIp-`VMtK2e`JYr0w^*lWI$DPBx#mC4nUeqChk^fY>G^MO;6H26e@%h^?3e!~ zp!@bm{`uQwNTN-&OX{axjS?eI{uz>8^Piv{Z_-B5mn&edA0Oc8`YG@ARG$s@lF|wRg|@J z!I)0bIjRjYok;_(4Wm}(298M;X{5b|(LKK}^?fgR$vdv)yqDoGM(fY5m&afi^*qTx z?R(1QzH9IJMaCAR(?Oa?{b>>}e{=H9(6lDkpXL#H-+lSLkav+&y!f22eBvbd+g{E% z8pciOs-WyyQ~*aaQC;vKgYf8C*Guw1=KHd8b{e>8eClVL)ad1(}ln|G=^R5P5QIX zMjt5?nrvGX zuo1uyr9#ZwzXYajBJH2Gv@7(V`eNIV)-5VOnDz$xb<c=%B=`YVR{q^Cj9g^iRar^7;@KpXySk788sz zrB2b?(Y1Kz!a#n7dL*XSSYMxYN7FB=_dGWynKa8_Kh%)A`+5_s0q{p0dCg=g&><8Uc2&+@J4?W#-P96W33 z8eNyZDLiZ6u+h1cmuLC5sp3WA2(Q+@SMaPLGnMZ$-ZH-aG0&877Wk2IKf2&xHu|YD z&Mx{O=OAT_F}fak8H0>2GxH$-_VG`?i~LE>%>85S*XNV}@t6LKy_R<_v@(!weWwh~ zj@g^W5XE}xtK)JRaXriE|J^b+DdO|fSH_?#lz~rX|9`C=H+{DZ>=rJiF(h804B)Xx z8Ns&UoMtKCm4|&MH!UW0vY0_f3IiaCRYM z8Dw-UXf?;DC{48wXmI0$FVVMet@XlC7&3E%51tCx6B&FkRL--&k-*s^o@L*x=}Y+b zqpknth3VtKiou5m4$8Iq;9s8QoFKzj=PpU-gJpS+;h({W7Y_O7!v{I%rmmD!Up-Rq zZ@raBYGHjD6*RHJ1T|^r$Aj7D_j<}yWt2oA4->4AN%Z!e$wCOxL z_}}P*(8E>hCq8Aa5t)XZ!wU_}qKq_O+eDrr`{u0gBbVTNL0kGo>R2&_=Mm^)Hvfot zXtz5qo<|4!Jo-5!`L=dR{|jqRq+bkXk78m!(y-*-3v2cLFYIbayBIQJWv*Et>@uM% z-(09%YB~>FU11 zUgn4^r0&=wUOx@e?<(Re%)>70C1*)z0yckQ_h-cZPh#=4Au~t5WN+6S?Zp!NvB4DE zf$do(^8Eyx#It%RE`j*Qrd_h7f+NGynJok1Kubd_6ch<$@x zu^pM@18EhO`_aiQrhGXYc@;Qo!M|=ZdM~H?8tP83Ry@|F=s1rQo0PZ|XdSxEgX)L! z?euEO!tO-AeH7Jsn?gLu^XL^R1B>Gf3*x7H`H>NEVq;){pXkTgQ(LNX(O-TvWfZX= zEYtPtSi9iX&U5UYl2}_>(ScG~KhyQI;wI~d#Kk|Y)U{IA2Ihb^*8dp26fGt*{^Xmd z6Q>dWJdI20Teqa&1>tqhGgje-;c+7e!V{D!(`0^HYZXuX4Cp*He_iwj`w8$K^%xJ z`j^H}p-*D}szeTnlh}3sf0OvWUVra}#3p2Yq!%8n<)+`|+zkF6UYmO?Eyb}e1qd8*OTppQyx2p*K)&?jwTLqbSUPU3}xx#?VmTuZq&a=pWKj7#}8 zVXkUa$fJ@+*U(4RH?%LwnjJa5TJ?vRz=YgnDJHWlr}I zpYg)HiNJe0@b1uXt1Z=WQQ$^!L-+=nYk@n-qs=q4#lZR15!c;yr}}1q9}bV;poVi1 zL9W?qh)dSpe01uIiy!JNR~;9#UtMFFgFa`6J}i3*m+0lmxpkIaiI%v)q_00|jB%+t zV9HPwHx>BN^L?nXkoZ;w=q5iJcMs=H@w)!b63zhbavm=+=z9ZLL=q1+{o zN1?SSu9Q4cAIdq+Go2D&SmO6M^wF*(z)2divzho!Z+b7$CHrd?nRa535|#LFqU&bG zv18bRN4JYyP0lTs5@%0h49rA0dJJtS9p#!fI>m?ER*v)g= zICx0w%(%IF#Z#^li$))=>2-AIlc5im>~6*E?AW#Jf#c{6BSXxdP5a*e`)oNMj>=~p z9FFewOz^CTwhh;ZXV>!0%>MjL4QKMs*pznoHqjTHszzmZt9_j9P0v}f&=1dAq(q5L ztS0B>{J4^}F#Cz8S8|@dP12nr-6_(YCf$c=qg*42Ta&6rbnJy5Yv*H`qg(66ghM)HiolVo2%#pvD-Sb_f)MB-qxv_ z_Mr=)^=G!6)6*aMKb8L{_&0*GKQM*44yj=sn`jH?RQ1xgL+EfD!C&!D@BuNA_aonz z^TD;xde8GuabCXb+0=&poT1I5Kb*mLoZ!Fo$4GyqoPCr#oA&0bmX6`*cub}}V(;u^ zeu&ZIuH|Ss=|f@+VSixd{0c|I{n}WgzC;!!bhV6qK_@c1$KR;LCM~9Z^)t_`Dk8qq zyU4m0VP7UTH3`Iyc@Fv`_EKfKftsG&Hl5;m9Qe7o@Q2{%4A$fOSeNf*ea=JYW;%PH zT-NPrtl#$#Z*b}y)^l&X!HFvI1oW)i#0%G}?!1qF@YhP@hwvBJ?k_u|4k zY172I?un{a=Z{I#y(j3v1((RDqS50Ia(`Z{Z}@DruHo=)fsd172+M{s%cW_?`a=81}X^OC`x9o(JJv&~Cx z;#uc*HYx7#KZ%Kol2J< zo-^TxZBc{VUxPCV#H`=6WKgH$mMoif*Pj3E!fwX8YsuN}vc7fA+1QAeMb*ikD*Gqw zVW6kPQ|vOZZ*J`fsWZq~8??P`2KM9nU^nNqr?ERbEw~mvC+Vs? z7QM#t(8w>a^XY`Q{0dxaT?n6fELh4a&42RN#@4Aymy0z$^9K%((6@GIfI~I7?C8Y%0Uv9r|M~|K z8!e_jRlY6Z8+`8RTi|P@jb8eJ4p%>Hvj*3nz(#Q%aSla)sj4`&?pKTAI+w%y&Lei9 zf%CkNM9&Ue!EW>e_v>C<<0O{V^J-jYbql&(@JTjeadzDbzeC?M=#$tXy}%iX#86E{ zx1)82qf2P?K=cJ)-lIaR4NessC~5a;{)t_YlRb>^Gp*B=t}p3h278rH{>WJ$cBpdZ zQccXoFk(8MTw-vani%aqZN4exjCn9RKEdwKpnpg4NAme2mXu@W*pzSK|Ko*MvMG7z zr#rf^DXq6g^m7@We5x^C_RF`hR%S)jlqW^joPPw{ci>`XSbAqXvDGT?2&<|3x3HSZ zTd;}xow-i?mc;Xq@Zn@2mKSA-ZJ>-}8*_PU0rASplrEdH$`fC$>%{)w-n<0(_!;TT z@vAY9JNr=D)75rN@tkK)zG99_bcXCMczN-C)@JJOx&s@lwuO$a#7wIzL--kV#?x0< zSu#0~7kXcbO^}tbZqpmHC6CNu8fWkmIfG{oqO#K1JNRP(C%{w7nF4Xm3$!~i&be1I zPu580g|wU-Yw?WM!mp$I9sW4*f0Hg9UuZX_ z$lf&}!5X)>{8@`Jc)`l11;yJdSJXaW3bsW1|Lt4yoCVttbG9)yy6FMub}MI+ZRj?L ze9fPxcu}PV9UpU2*kCPb4LZ7oZXExAo z*T~QsJ!uP{91HKGcUCcmt)$n(<4B$g;I3jQI$xRNT*eR58&gTco<2|h8`!VLGZ(Et zb98k+_e;x8bfoIx+w&uoQex}nwd(r2Dv9N6z)wmAcE@c)r_?nQcee6-UU)UI7A8FT z#CCFM>OQLn7OV9aY2mu)*0z--EVfF33_VEP_{p zXM%5ncY=TIz%MkYUlC=(%R3j6uUQ{!m$*9L$hdI{?ii`}58!)-evr8e+{t7t1m}me z5))7Gj{bMAQA%e+_v*3n7M#0Z?Z2<}nSz6YclNSp4r;Xe$qH9Gv{mTbW7OG+znECo z32T{Sr4fEI72dXjv6FTR%@dngD`SW}awT%weg5ylBMsCWU3JuDSNmtTArnlJ`y<4z z6h4{s1>r$CHhd4TKiJnndBa8b13njFr<=VMayHmXo>u5_-zUd4iZ71%T5txQ zR_LwJ!1Mg?VC*4qw+TIK<80E7Y&HL)zBG-tCKX#7Wxa?m)oEwN-{{TQP9uXbXV(?d zN13};=0?_+itia}+L)tNLya{B&!=^^79u}jj-M~@UM=(EpF`#(u1oI)(lnVLpDy zb1QVNmG$cUMDY(2QP%~{V;!^~8H!J!1-CT{4bEm?a$)+^y05{3Z-8rJYIEL;?@GN_ zzG;TuWb}1(=@J&@$~=p&koAj%7qHX=Y%hGtxVGqHSmy>219Tw#_JI0X{NF3SbD-sm z7}I9bETTPQ7?+A8(>;|V^E}cgu~%7$j})tFFh6jFwFkKtF&m>Q?p7Kf(;3WfN*fhy zl-QHDzM4~aWGFg|^jBmIhD7uZ>5t%Up-yk^)*Se>|B4Z|F zasvDOlgM&DWKBk=ZCdxm)KdAsjC~*U-VJP`uN3J_WPe@px-wSE@4#MD)=k5NyLXJB z4{g*T{DZ8YGUlfWgWO#sm6TDtmgIi3B+mU0_PDpP7Tm}6*`JlEUz4_zJSXYbXA|Lt z$kYAg7;PS1*k8&!^t1j@qSw~?AK;bfe77O8XcG7rN}-2lZVtejUKvdD_{=I+?NX32n_sXDd(hH?|8I z1HSZ-2Wo5EyfR=7SdsZs`IkTp0r^)P_#L^I$e?V<#bkbE{ViBHcKch5alF#s*@C_D zNnk?8SH@P_u#bKS{#)_i@B!r&EX0q7f%CC}Hch51<%qs}=0fNJ^C|LmIlq#;$y+CBZIK2&unGS?UZt%SMX+`*&X^&yNNYqIM;FVRfqL+RR?3c zK>B=NT5a7WE&FhL66r#@%7PuG$d2=F=Q-c^Jc#GdChqDv|G==!zre4||3t=fe2@9} z&b^Mgw=wrJ$Nu>io&Vl*-Nsz+lJ+kw7XMZB-{|CA&AdqDq|9kwwXa$DMxjez4N=^m za0&nT02j2$nb^^tCo(9(wQWK83*;^|_yT#p5xm33V$MKfdqa~2E^5X8^Cl&abl~4D zabGZ3=fQyre831DaWP+4f{$a*T!s%#UKs!b$ac32Ut6p1>lFK;3hLNw@#44xnOr;N zcTkVP2LowO7H=26A`xFE!;#$!42b+@_LDYk3~Kd84F;sGVaTnH_f7M(#ix1NW79kx zF=?La^XjF!6#htJb;?|}#jBpVSCy^Iic`GwZ432^2xf#Tu;jcZ>5jf*lNpse6hzn7hh7wS4*Hl(5NoH z`SIBaK7Z|-w{O@-`PYuC&Dnx$&eoH=jT zg2%S6TLA7#3=rYBnDfFNd$YO7=n4WQT1scxY#Q<9)a&I(TO0 zua)`BW^6RP4exsiX9d3-7<=rT%@U8*N}9=Bf`0<{Rx`c=!EX(Bg1tCAZlSHQ3>ZoT zhXgKf2Up5;gPl$1yEQzJG2hHsde73uBqjJ{2pi1>zG)>PzCj33@(&x&Ml~ z&S4iUdtr@6(!XZb4X=-!0rfBVXs+P9;5vPnc91sgAVq_L(;r_ z;c8zVscYX8&~5r1`pja@H-fDHNx=AIJ@!Pb(d(JG;`fEm38(vS} zx22x#>q%W~#YQVk{BRvu4($S`I%GU#j}(z&s)-~fc{g)$O2zh#Hon1_2o2w_hT(4{ z48K^6IctK}|5DaucoTthp;fIh>~G`LK2Hf<^2`aH0&SG7_=ZdR6N$FzjJyyns{egGQE0X+PUb4u?OD=<# z{DwX0SE&L^VfDAO@2wEto_17}!Edtm8{zkhpE1@*xjB??$5+xW)@Lb`seXlK81Xt?`Y2nJUc@FqCGo!E(qPLJs0ro3eCj+)8uq+ zsj|2@1KvD2v+;B4@PFIPw|&)_jVF-}onqgAx)2>w(wC6_JvlR`k1bp}-L458?0X89 zuAMt`>AJbfgRkU>%~~SgXDwaN`}&-8p1uFrA0rF)e;>lL|GV&BGqv>Va?<$DKGKyH z*4G6;>Jr{E19^l$?M(i+vcIZ8XSa^a|6T0l-s62Q@&d6(D`TJbuFjZkz`pEEzS4CT zxkU2}rK<(L{V=km3%79onhpOpN$EN|QR(_TRS{XPa}0C%p3anQMPDYKK2PVqX(l`_ zJp5qf6RrBb;%~`*0zNigWKG2Fws7`T245-o(l(EMj}L~C8M*E7WG>2cK5dD0h8@)Q zT-S50p9vOcpYl+N(PQK;KxAi%CdH#_+Z^+Tovi4s}!@lNH8fg2aG})Ka zv<=OulQis`Ju=S7l07EISoXpOU_!>tJ6>jIA>(!UZ#i}2YI8j;w0jeJu%eGD`?anO zQ|lBJ*^S=Ob<5N63)7Xc@~;v(dMej5t~T1E?aNigEOYSH?n=wTzpb&n zyl0K2NFQS^)5kcIIa}=9r+A*ycix7N0;jA^j!g7!WdAUXb(VSf>Tgr)0_UO_9ua?_ z*;!8yj?H2&WbIF7F5aX3ROX`X%_`=?=&bb3#n6Dc_<;%^8jI`>{5OO572oQkY&LxD z+=5)5x%nDe6$5-M9A>I1Uc#ONoGISJ9oQ@8oJ8be#hhn|Otcu;Ya4J_jEt`hSS;4- z+-<;OF=r2Lz+>@ro%`n#$qQT-7xGPmO?(dkYvTphupvu^&#dj%m%h9EWea@S=+-wY zE#l)-_7y7g-@Iqhgyz3+?c@58>mb+Pxc-al5Z94K6B2y3rSK-s)>VBxt*iTZ^yopg z*7WfV2liS5VDBsDOJJ-(ziWcZC9roH#=Llc366j@fy+y<1ibZt%l{u>?))QD>kj`+ z_P{-1u62nQ-URNdp2Eko!wYlAgS;@;z7PM-KDe{@g1Z+!dD-&7o=VGCjB$m|Vy@L$ zoFAO)&RY%43B1Yq`r5I;9P@DkePz?TUi~kfhi8GiBxsV<2Td#e0AD~~=m(_W z7nztF)IS=U16)?<@b3a#3O%+Zn=Zj+^PZ*&Eq`g6aCl$Sgd-m|P5A6!(}bgcYnt%+ ze>F`wcBpB>=_5@OMBY{m++uUx5G8BY(k<*ix8$UA6>=@*+Q{_|*DG{tMjg#lNS}Lp}Ahu%GezC|*3_aG%8! zj+hru=(x?`Y5jr0vlcpd4!Sgec@4y`c)>5`u?_kn^Ctn&8R=%}EE2Qnh548h-0-pw( z@lxB*>0?sP1FxC1-3mY23SVJe#QjxsowbQOw9%>}GlDi+)3`$$t&6xr8?7Qsf;L(? zpKXOUTGO~g7p>E{Ll>S&d-_C&pZ9j5!#XwtI!J~c}4r~Mdw*mXxfctI0{Wjnp_~y#xdW>s~l;>MZ zv4zF=*~T2LUg+C94{pmjzIjqz3*)ZU%i5a7y7>*fwf^A^IZ|&MYiuXuBCtE`;f>z% zCONtUUj$d~d3c+KFX=q{@#V0FFY9v_^X(SOIIQ8!`kdXow}Edm=ZQS~ab>1F`|w2Y z=8=bA%{dHSAty2GG~8I1BlCZRf0DPFHVP~VtehO`=#uqO@a0|BNLlj*Z}M61Pk?J} z;EN4-mpz!+F;@Xgf?pTF7s0Ddr1isAJh-?Q-e9@DC(ig`&WkgH+2dTsnRXw}G=no= z`*?>m@(%cnV?)(z(dRL+0X}?Q&I+OPg7cfR98KZvnqZuQ?W&aq7tmho~`W61gEg9kek@o6_xboT&7=*$~mZ{TSq;oBo2;GqYg&a2%k1b9d9uhBWiPJD*3Dko`Vr*GoQHHc zS6r4Cw;_KN9<3Vw$A4~Jx8(j#XmUpr{CBfnZ|7Vaf4_Hg)_oUe-gk2LJ&`kT{Cv+# zL$Bp8nqIx|1;P`gp$D3{$>Q#i@q&N*HT^AMtiHxi>{{-f+_&>jOLxy8_hIxerQe5q z>D{Ccw2?|v&;=Zrh|Z(lewZ{Fl&_}Ut?9_B=nN{>#5jq$YRJ?_#jCga^lAIr+VqB~{J502*Vu(6@ zEcfO?aPDc1dms6%@I<29d<4AuDd%0*so&SitklXJpq1Gt zpe!jTN-IbHdCRFL|81P>9)ah+(K3`?Wz42Oa-JaaDE0*QO8OxCx6bHaTGsSkW7#yI z@_~h-2g}(~YNEu^h%tYGKi@+9z30a(^F^=4p#IV#Iy&{ho0)McWB!yyt7QH3`kLO8 za8HKlOzu7VF9c+dlQ~G8s*#h$O7=*by&O~}QUxBlt!+&TBYcvkyv7J1ID3EFc6&yl|8zC8EyJ;(4o z(Dxk6^I+d|JkJTf=b_~jl2+h*G&CsZh+cHvBCK?3|Ddzj<2FJ>7gX8Qw>MzzDQ$qIr1v~QRNH;x9 zac>I>c6~|uzZydJJ)-O9I>hL0J>Wniwv zc0GhKKgJniSg-e0Pd?IkEL8N8`eyG0<~P2w>VZSt-}!je1KmnwhaUNH_b;(+g}*rV zlw;*Nwa>oCp825W@o&=(uA&dbmproxSdufBn<-oFN!*_>IaZdL9B2QkzPRQwUH^S= zqU-lUNI%zGrvCeOGe^HL_HjL@>*JEX%Q#3I@XIpqPJHTqOn?8JacJ^m=*fPRak<~= zzJ3?_`u#cU{+sk&&K1R8@q`1*EU-!Hoiz30b%`vQIIPv2g6p!;RzjPz}z z5|#a!E}Fjgb$1Uw9H&IRLzCVY?q zUps%ToJmx|&FT0TDMS}L&7|;8@$5myRwg=Zv@wkK$vKedJy&xXKZ^F$g|VmJ8%-c!~E)`YqxKh}7V7W!~;VGeYC3iN$4yhk?vhxD3GX#LNx zPW!Vd$4NQuKH87$@3iQqPKN$xLH~i9(`~Hf%kGsJT+=*{tna4T9c(I>j z+?QN`yVKD)M(vlqQ)Ql@-=FAW%&VdIFGBCj)EMV4Lk47bY;{4e`#WDU4ak0d>+_a) z-9TsLn=7E@1DqeS4zR9Fd+1{K*qiZ{TZ?@2?k!6#(nd410RIs6N1=(Iah?0(nS=d` zA8VXm@>t`?tTnYEeVt2p)mk=kEn_T?2@O%AI>bM?z*8E0-!SOaPOZ#mwK84s2drsY znUg55Z}B6IlS&?GJP3T1nfd^al*JsUQ&v7@bx@Yz{*}f@+9YkOW}T=7&L34*Sax#% zkaeP#u|CfGeigX@XX*2{NPokfr?x!LJ(PPjYfXgnMAI_#vcj-^^zN%gp0JL-2>ir9 zYV0ax{Kd8wAK=c|SzDCepR*3${vHlP|5TL$&;qb&0fF<@^7~-Ma@wRdxUW z=L{Ez`+%r;!%@)yQBlZ1ff=qMqN12tS%LzBT;*bFmYCLKYNchRWo2c3OsTZ2u#k(A zSy@?GS&uzhSy@?HS!s#$eXVn51Wc*t)93fk@95%v_Fil4>)O|I&K|MH*BO5-9gIJH z8Gpo9+m1bL$D9A_F(#BThG!vTzh!I*Wo*&z8COCXSERkL-#Ydi#+3;5ziT&#Zs2@_ z3w}TEXL%RVPupwP<}%;&PTNq%E9`wZ`w^?YgKW(2-cs-A@dNh-oO2<+*-^N2^qDZ; zMSPnx4u>j1tHV==@!JHPH^>=?KRWq_PGVmA-uyYWW~1*4!^V4dWEe~y!|59oW9E*2 zM#G8(`kv2y3}a2py?Sy6y2mZ5ajYrOdN+qQ`C8|f)iHf6^jmXFj|^AEFY#tW<`=ww zHiNd1fL(s!$9nVY+#(seVSsUbjoL83u=7COp zcj9ae3Y>-eHb~A1%Kdm&T|)3cjW6;u@f!^;#jg^)7kaXn60&`=8uA2TbAHn068{O+ zup&f=J(v@ak>9bg1Gum8V-gT5T_Gb;y zPu_JTT{74C9G(8W=O}s#eu|{$Xx5ule4_#o!vg0Q|7Yv#0Hc{{rHZd z{rMTJUsi>@#aWJ^)O$W_4|yk9-Vf>fZv4)Kg8aHv-WiqmJLNr z97#F9jU8-0W4l}-Us9j)4(%8>&gY|C&@=eyaR zDa7N9Z6pg~5637+BV{Oh3HYUvZfDM#GP5S!%)NoQMJrkjx2gUkSAq`Y3EjHLf` z#3B8x+>2fUW#G*BSQ36JdQx`%(CbS(Tph*xC+@=nKQ~^cmF-b<;#s@TKu1v4@$!zn zJAIDvEOQb14|%Va^%(Dk$a#v&oaKxYTU_qw!L#;ApJ6=X=RMBvnbQ>U?QsL|WQLH} zXLz?v+;1}nJdT~6AYCWun^tX8R!`ij%gVP=7K5Mm?UDSZ#*gsi>?1j6Zr@;jvyXoM z#E;7AjFZZ0dB*(N?Ten4-(`?*sZK0bR`*}CVSEzgbhkzOtp;D7)yp|*8>mmQ_os>P zPO)*`pOEw6#w*?{o@ITtpS8cNuTI3f_k4$U$%=S>-$&j7qRt)ZlrueL4LS}vZ}i@M zV(|_W{iQGc=dd@l^K~PC;*3tQEjgDdd0tU%F5}i=+IDCBo={!JJ`wz8k0AVC#V;?v zC`#s#uQuM=L)oyTr7zsZ`-R9K7+nnK^~u^&0ox%zF|XdlMm z&v;L<&pOU+h3`!qvfgjGv4QWEl+|yto^jh7yds}|Th42jKEcfU2?lg!zhoR^P0Ni< z+WAJoe19YT#~{$iZy~z{RPT^;06ZdBlpFIm)q3U^){f!3|4{hB{I*00NIHC%hx3gH z~pe)%Bl`xINR+LM>;h7&&JDarA5A)k+)-%&tmu{hKB^)=-FLLL* zpYiC4`*w7mZOP(zCASqa=Rl9=!y6`fbN-Qce#z;lTe9xiH-B(#81i=!_E5rI1c|=L ze}=6broFw1p5(^^J&*jt)3UBDrhXp5UhjNjWskSn126t~NbNYaddEu6n&j*V?RznI z-pxtlx7`VI4*RJ)@}F4I!-#A!_tFmf7?mA^oUPGP)&(wo{G@I7 z6Y8ABltI25_dD>HdoOFW$n|+h)qZzZY(YU@8CF^9j zE72z{@(y!oji(an#@Z#{*BV{i#Ts4G-5Oog+Zye4T|mS$ki5gR7c^2<>_=UZ-&a}f zE^+onegN_z*67l~t@7_6n?Foh?c>S&7?fclwwKnD@P4{#9D%(=dy_98@?#=x^3IsV zAvz}^lS$c;=5_Pkh1h3}lWBxkma^LW4t2G(`%UCW)=l2WRoaWU_AREuvxM(E^&GBL zFOE@M*f*%YB}Q=*ToR*r2`-IMdRnbv8VeE((6dO5AyQuh9|#?#d^$L z&WIhu@8E`b?d##TP}$*jwKdxPI`Vs^HG0rZ&Y7WJ0TCX(dqphzY{;Da)sI{=9UKE1 zgG?c^-{&|7;;c`v^Jmtz+{pKfyIEHx4nF@oots!|bzaXiBz~V)`Z$?uf5V<=C+eqw z-~V;zyoK-hCP3!&a+aq&H!I|Kex>cpZvl_x_k9a);eB?I<#&Da`&oI0&Y7|!R+LNn zE7`XS@p`kz?RQ3uaqFK@DOj=@)+e@L4TyG^muKS+C*GLx{4^fhjm(^lzE z+-bA+v)oQ+&E67IWpH1yi9PCkRe3=fF7Jl~4(|%aRJNXhmM>?pajqBR?slFz?l{t) zHj}TvL+;1?=`-B&EU%xUtXX5Q?%-qP$Y1b#l)W|94wPT#&2?3_`+2|g-Acv{`Q}V) zUvSZrN}Drx?dxCK4du!{sQ%rzoY{A_Q_^YaBl?oZzKT2>?Yy}UY4Ijp2}AbXe_)^e zbJBg`xo5IA&3Cm%bAG~b`R;<>W83WByLUu^L5b#D^XO%i_jm7bHjL^~c#Lz4Q$zYh zaHc@?a_aFr((mruCt_@uz=%ST-OO*LxYPdW!{m3iySR9SYW*>NdzJ8c4>1*6%6CUU zkb3kDj7X)=6Zf(gwdYBGsoeuL{%mh+^s;)+4eT8lA@#KU>E-48CSf$ct6S?nATVM! z_sgDvKbZ80|8s;lzmM+!vX$RARH9R>2n*g~(rRIx6Px2~1I@W$5ZIVXM?jA$dmkWXQf<1)IP(vz!U#5v^^tx+`+0bRPyhbUpvl)n@*Tp2$OFz z=7&(PA=?61hq8CT8hfI<>YkR?+j@5>=i3{52l%D-O-(Z@%6tR!2eAX26W{Wdy7NrN zgZ&Xt_DQ_hFJTY-MjzUx)A`?V{FOa$$M17*TGHcmq^q+1UVfkZ7xuN~y`co`r<%3P zrY9*AQ0j6SU%5|#zlk#6>!d`^j@>-z81~3s{qS!eUsdjLQ|N<5EsNeS zY{`9}bMZaioE;JsLceHiaq_j$H>&iDvQJMvZFYPkyLrhqr|D0=TO2NXMiVH5@s!0l z$|Rk#8O!skw5Q~|W6De0KaxDT(Ki*6r@`dai#|d6n8#-q*Lli3fO_EUlKnNai%vJ~ zwC?=;sl=9<@;)wSrpO+{ccfR&FZiCkB;mJ|=Tx$`yi*AeJWN0IHqU*Ra>ndZbe1Bw zl=G{Wa(>30{O}2$$PAu`tcqf?P@c2>A`tW7TQ(-^Ijv* zQkW-1x_NNUv4`S2$cuB2eH7ofz#k}6=~qMCbl#f|9{xXYUobl=sxU1$%Gg=)ElvxK z`iA{-X=C{b!7EDA!lK;i6KTWIeSDR9ZeB|CCfb}^f1ceWgsk|Cyt&^LkQoZ!oikHu z6w#s^jGXZ%W2QTOX|S87b2@pIKghJN-vDzTsa#g87hI?Kko! zW6#0F?ap&sBhTGD3avZt7@ij5_HXMB?+V#tQ8qtAdJeOWQayMF_kC5HANlZp*$L)U zCps%T#6C`J8?yR`f|95oe3TtNE37+);5UKiYeOj~pZ+V#eF{r!Pxk3Ee4C}(&#(H{ zNwzbc=J@Qos|Pr2D0_QKYY90-Sp!;|B<{M=j?Cq(d<>nE4~#8qgE(W zvje~Huk0AiIa7zp+iZQl7Rubx-;496#81WweoJY%g!4V~k`tYJ43~Y!Gu@OkKD*_4 z;k>|;eR%hJejh)Ztk;?EPN&QkqvxK;Il|n_+S{EoKbB)N?n~rsVV60Dl&SmI%xn0q z!cZ-K_d@2LlS3E_ZWp=3R(ZERG>vMx+=s3x|M=#B zOx^?9+_iA_JbBMb&M!7nzD2Z68MkNC7PI)xgMMoDq(AumlOo2$UaFf1zrP$^$e7rT zG3*;3?K|wvX^TvmV;31S3q~l>-}JHWSdgYf|8Oq<{eqE7^l{q3qA5!BqH7ql76oJ$ zO;V!2@6TF`@QbfkqEB?T?)d&@=gip&gqxy7+jz$QEzj8B^zG(xV~G;IupHgFjDvAX zbkTSvx;T%t%|LcG{YR;F$NXEA=2>m1cpLXU8N2T$F2XNZphP>yK0aWLuDnx; zo_inqH$(gm=oZ?$k-n0(=#Oc%dB>P|WnUgMFdl3o%=`zG=&Fa6XnsTXjFC1vpZ85R z(2tzGV865NTvg^kA(XSM2{&<;PvIeSg^%Ym{#cU+ulxXj0B7&dSqLW`w_0F^6k$DUQoZ$#dDb1S=}b zvrA^>nsdv`OUuo9MO78~1tqi0Gph3Pa?8y_h72*gD`QG3bIVJziyXcMB{NG)Dhetp zb4zBBBoaq&vfW_M8*=?VfEX>NN7m(b>#bIMUP2bYyrREC@v_!GB0x0R`d zoS&PWLw>SLatJ&px1c1i)E@IR; zx#fA~*~J&h0}K6v3N!z+&3Qyxq!-K(vw2LVIX}C?T#-9Bw;XTsS5YvdDAznQyQ(6$ zg3c#=zyPy3J$_uWd1h&GSwT^5j`@ay%6#f%)~xwvv?>ZpOU$Kt=2vW zW|z!Fu(YhQptxW`b|oSeiaA<>y1KNAf}T$$7E5|c31MbY>CD319K}3L1PItnQEO3B z(WN;OWKqG4^6c{YO0t;CNb|V(snb)FHETJijMbMKkZOV-NLhmTM~Bldu+z%es@oLZ}@ZN zKe;bYdn0u7>~DKKaLp$pUtaLL>uo7}20oehRoDBbd^qC8xxaefIsWY-&y@TS`0(}r ziL1Z)-1SR}EL~3Qjw^1y*)n41-q^(Bi!58+Uyo@%x5%>0=k-x{tyrG$kW+k=mTv1^ z)(u*@JZ0gO#660#ch^UcFHRWj89S;f{A^UW_fkhq*|}@fXJ0>6x7cr6Oy;_O)lEFK zt9D)8qc0EreQVvPYGCY>%e>>dJac`+8 z->nrx=Qir)r2qBn`RmKidw)7=-=W^Ge9`mPn9ywp>PDP+DaPk*W8H#EkGe`PkGh0; zKh(YQ({-@}pLC78Hp$vB_S0>?qY6JxjJ@NloSnO4w#DrEX3@^OyEp8dks28H`;^9* zkly2WX1#b>Twv;V^{Kn7Ej@q!pkYI(k2Q00NaMbY5!R{k0qw$nx8}#XFTZge<^6;E zOCK+*j(vGa!z+(%X{x)fQ`b6|d9JY&{`2h4D^|~{-yQg1+@Z*nQM)H@jF~w(D)#Md zGwNrj?~SW|Z&v-Bnt}CU)0Wixj#zFvSNt}QZCkH3!&cRmp1!rNa*{FT^SQHQKMieq zj3eA}|~S&z$N zy_V$H9iLE8pZu#|edcdp#&uGiV`G0Riv2Bod2F-#`Y5l=nQ@uJKB`X-@EldsSYJQ( zKljJ=dC%M~{H_g+ugn%geYK6lg~yZ+(0qC4X2jdKUZy)kiM+|2O! zhWdPhdYT0XXXZClEJ5w~FenimY^-G>Kvl3_O*!m z&|N*^zPS8faUVQl**PP{b7$yfpVnU=UtQl?yNWVn-a^Z$mU)&L^UgK|m!EAAcUykv zkcE~nv*uYkhn#KL-uG;SxZCm*b}X<=yR*uYu;cfJDO-MT5O-Vtyl3WH{Hpw|qON+;VN-GYz}k&NPU-Ex+XWTubtx5=+VPUmHg5{gQ8Chs~Bj=ZfTf=^75O-Vt@e^Vu7N5c<}=E_pevy)h_!-p zH6&Ldv=oYmrb78p9>m&2SqAZLwQ>h!hE%8ws)nMWm5|JORzM>m)@sU45bydaoE61% zi4AgS5wrlB2hD&Yp>Svfv=HhJG4WF}pbBUrbOXd*n8L$oB?uY?-3$$chC$at?0G4R zp$X9K5c?5Ie<%l90`Y80=?k$oR#=bA;G#I)Qa)ZV}yg#5=p<5vt zVH2RsAP;C3#N1aI3*82JLF@@BaZoW-1$BdpplMJdbR9GZnh*IvNsu>Wg3_U@pt+DQ zG#R zr9wTSUQovP(aPvCDN#y6arUg-p|i_!XW4JdN*s5y3i6ZzIZ8rNRc?inSd`6FYNmM- za~mbGw5p_%=}VH#i z8knF=%AGYUJ6DM>(k8=|1#@$i%))FXDL0#0*tlFKb4mtt>B0&nlUQ!mc3xXpp>eTLKs@I>?wvdri2+(RWV99;%64* zD5IHG>fxIciweq=(WOi_iUkJErX;6|G!>AZyG^(U1R~fIR+I(fEl9)Xs zyF9m2tDUPPJsB1AXXfYT6oFSzw z?9at#~9!rLq>%@|$@BlVT+$ zyQ0#ZLI9;DN;%x63@K6au%WI+RIswC8NA_ z7K@w;YRc}>nn~RwbAEAIz7)CLSyXz1ewR=%%bdXKh5{`uuc}azvn%GC)3qgsq?G68R#eWX;*+YVYpE?gcS$q?M2cub=EUqWEWRjPZ(6D33vn?y zb1Gp{o-|1jAE>8Q5<rb?6;))jHpDs{eMx*t0Zlzkl9oBYq%vP_w6)lPiu0>IZi5F@gy{Z`C7{D|K#}zE zTpNDdvo+5BqsPl)-A~AH!s7pcRYQ;Wt?BnQdRPvaKAU9amqQ{Drhg{ zd6j;@eHQom=WOZFLTEiyji1mV?hioA%2~rzowH>@MUa-hHh*NlLM|DrtK0Z*=Uzzs zg*=y^v*keBA?Fpu301!WL%a4{9k_-;FR4a%u_bff-~USdWOAVU#pmTc32(o(mK-DiEyce}}KCtc^Yea;Tmd3oiI4}dsg36$!@iM2`-$|cKRC?=kf*AD8_%9@n!QfN| zd4g8bd+YNBNxK#IY05GKtc%p=g=fiI8E#2;H7NPm080KFK`D)LKyJ%kY>9fpv z<)y`Dc1_B2OWE%*7nhcl4l!ruR%*=i`y_S_?3~;o?u-N#*~Mi==(EFAP*PS^X&x}k zT$sARY-WUPb-F88YCAV&rA710*bmAz=NHV%FQd~n=M~7rBg`!Obrl6N2$^Tl;giP8 zhlJ;u32N~9+dl_Gzx=-lr8ODt_02g271``g<+v+XWtW#|*(%O1nQzX?WuJ(xD7LLi zN=ju*t0ad_tUNk)b6#nAadu_vwh%@8zfmsFuFS14$3+YeHy6$*qZTU&JEwG}K24Hx z32|54i<#Pubmyg}3I=s8eFJ9UnwcMN4lc^gWAE@n#xS<>DC-M3C6ekQWd;M2IheYV z-9vLxX=z!A-LHV!uzQ7>D=4QB#Vw!RQ_6$gyzKIs`MMdo<<4W2rB9d1ocZe50TiAa z`>P~Y-zKvckfeI}kjq&-SQNK$8OfsuW2))d^BFWF+?Cm-1tpbs^HXxF2x%r|T*4Gk z3{jCXugE2(+6Wh-Fr1Z?-oSpT-R(9Y$DttRLKT$eWh*bf1Kt#P<@uLX6?QRAg!El3WS#BM zH(M-b>Z5|vFD=eBmoR@XEy)#MwDpZpt;d`3yp%GrE}+0QNZ?{T5Y43a%F~wfP`tjzKx%*+L{m%D3NsljO;Q!PP>xU z_vA6ZmFCeJRz+oLS*xH{R0`8|imzzCBjI9|?PB_qgl2TiuPC7S$*H;xNlGi{m$3ov zNVlX(oU^1-X-N`=1T9kLNURHuA~wH^*tM2|%aw*A@_MmmGoR%_WwsP9#|*ZsGy2zxidZcLVdm_j z%2LNYyV{t#!&Q+tWB4%L;jYYQ{b4sc`~0uyd`af=NM)wvNz9sN%!a$(cF#-DstR~6 zAzhVygB@cm$}vl`t}5dxMXp&h<;v_?^c#OA5+-8?4MOV^atoz-{&!j|;d1O+=X>f4 z#-sBi0go_RS>?HNs^r;F>jQz-)Ml4lR!M2nd?Y(O1hPMB(!re(Tf2O}9lUtm{c~a` ztlw5NZ`X^lWnU)jiafJDc1!xyV+&sV&Qf7_+xP7oK6?H-%d}n#Ew9`WWJ&7%Y}|qU z!{To0nPhqHt}@HF@3_XTC{41w)%ieN%8li(++kZ}>HTPaUGAAhmVdo@+0K@|xVJX# zjQ`|jOXcX1^^0G=(PF6BQ2%L<3d<+A{aAl+N4DkM3r-E2mR@Ta@&166VVzS`lD0jO z{6E8fPI`7ue$tc|*C!@Nj7ZvC@ML_o=c>d%a?Uhw|6p-KnUkr>p!^u``|vmM{VYqY z_5OcYu3vK8GVI?6ET2T*$v%IgW!I~(F-z3&Si%(=~0M$Nvw9)>%(r}l6K=mn<;{eUa709H$OAsi_I?2 z%-JmVBeo+pWP5gnrQ7}|Emhy`wbXz9i)FzrJ*)+P@FLt*tE`2lpRM1Fd?~)I9g6*7 zi}l!|W}`%=*^=0m*qGRx*q+#-*reE}*qPXz*q_*<*rnL0*sIv?MH7rCX$~dLp`_a_ALFbEb?+$*q1YY2L>F zNo@N1kNA7PzsmaV_b~}WhW1a&n7JYOxnm!_dUDZ%=A5{9cFn(bcjG&UVlBfq_*-JH z4Xxj%c1xJO`2NHh=Xxc1_l!^Za@p3TU#CBvIQI3k@sXp_tWRh3OL)$`N7Ck-*C%J5 zJof7RGs~J=79QXAb@(TZOeNwCB*IUN&4)m`;%84Kl5r{?V9G6jV`-y@%*i^xvab8+iT`n=533t z_c&rsc-6KlaqLsiC%RpomSS1*deRp~FC=#55Bazl&-+UCmX1;UM@4v53UN_xk z&yh(Rn!mcY%kHMJ?oB&BFlznIsS!KsuNxec@WZRi6K{MxF|p~@aVhsj9!Q$I{iVeH zm8asLa_VP&`mPP}NsT8HcmHce@`5M4_Vn7mrTLc7fxDMwc5f;R{wZ$Vtj8=@r0uN# zpSuSnta;*=#20@XAOEkcjFi!rThwP4_rk3w}CiE%~A@acJKBfIwO8BGZp55`H~JjAC7ZL|HeiUDJ z`(eve&+Uy5J$YN=&=0RlzSkVK$Mwns&8FtryPF=G(R9F49k=$?&n(d|c5V3fM6ZOm zclAs>HR1Z^&+nL&@?!R>q%%>^C4L(GPW-|z_gbRA8Qx@iXG-D*zm()LZw=qm<%vVh z`CD(?t^RsL)3eWxjg#@>tGm(~g6`>(&_C})g6WI9nqT*wnDS)$uSvHUo=NQb$*b|b zQny(=r!Q$b;@LNG;+GN0zx@%lXQl0n<`qG=?XJE3wx*mfyTwV~55Fb1{V%=LgU$)F6Fz7j_}18zgqmNHQm%MBu`F*}{2xW@ zEE7+^(e!oyyoBwpKFQB-PTcePH7AEH>|Jpkx6Fx^9kCxRy4*I)?q7nZ-L>m`OP+T9YH3OO$nw#-C+zMY z?BT!eKu5R@`uhpH8{Qu`!!$MesO6fRQHLko@sY*&WlSJJ(N_;;S7K=MzPgp{?o_j{ zRlP{UZQF;lHK91h@V5T%+5N@OA>%-Yp94i-uJopJwvAB0tLJQMz^#z;u5-3tP$ZNN zjTt{VdD8g!baV2gNfRcS$BZ}2ifVlFRp!JANy%YmmOrxfz@$1ydkdsImyOIyccuA_ zb2ckf1f6Vizm|KUus3-J<8M&X-;j}Tru|L1^?y@t``?sXNnZX=K5GA_T;$)B+xIuq zmqmEGUH@peqe`n|&M5On#}yIrzLgneVnjrRUG609COm%9n1@D+9m#xCb zEzxvjPWsn68`|lZ|CUZ!I~~~%{Ofqkn$GXv7iwt>|6l0HbIHGsr?FAWt=mfzwRo(5 zOGmaMTXooa{2TEg#Qt(*^%Yt?SvcCK&CDL_g>_m@-EOr`8q-_TDf^R-=^{FcRrZ}r z{hTzN>I-xpSa(MHNn||R*p3x)FR);X@lb^JTPU>g!-h|YRDIPKW>=y}Y zt0Q4Mbch2TrHP$qbhLX-N%n`^>PX++UPo-ricb5>p(DO|dAC{Fb!K1x<3^!~h%a!r z#$iCF52X8Tu*&liqCFq4a9YDyM;PlG-`ZD0{XH*b(;$2aL)LW9J#-g-5=JxQ<;BCu z%Ny7z^wz#2?>B1|htxI&EkKwJ>D8d3eH3 zdl-#;j&t!a@UFHKpoP;UHZzvd+C&I;ab&59Fl2v#hkO^I=HeCpIhP zk(XDO;CewA`ZJcj32*K5q%1q5Yelya%sL;2r2VzAKEkuUweOV#SueLu2Xz52HSw)| zVerGaUxlvN-LmsxprU-XAP8PHcKu31+df%^_rSWR;N3_2h#(yi+;2ix?69^;+7%+& zHT2UMtK2-W?&SnW8U!T_z5TZhqn0qj31e@Q^Z}wL*SP~zt%4GU><2i)kubzY+owbN zc(Lt+P3|A{AEk+Cf25rCFa#Z8$i1U&U?+_ata}}j@@a4DvR9$E>kaV!Z0mY?{GLEt zYsAJI?a#ufNBuGY5(aI+ZXbL9Wb2OpgSu^`J_$$4RT0uIM;OxA=@Uu|qlLWj|r8C5(5^+nC-C z^mJTk>y9wq+Lulqtju{Il00A^Tie-~-VXFIF0^$=7}y1AxQB2K5r%H-GQJUBn@bPF zVPEZS-Iq4EPs)QZOuHPmE@N?<0Jzn|xX{)e=|I4$lY}9*zE{fhqG1eL`^e)xZ(C8f z>Bo7GcZwSnJJIss#)s!UzjH-|_r_!I#>H)Y>fFZ9Ys{lKoAUZ^`UTK8AQO%Ucr%7x2FzbBW${$BG^;*%@i z+V#p8UfEV?Xw;m_Ez<9B{oJ6hcRsMc5A9~HtGp+`dCGq*UADMpmpn4ms>xRmYwW*l z+4NrX-?Gdozj~B);Fr|HapKg89m*!TkBHb!_*-c=_q8JuXc=+!Sj*bm`u>T2f3P}k z-NPqi4MgN1m3s$i@$*NX`QQHV7nUzGk6Zrd`d=&$`k%3Qe|*+*<6YlcKDqy6%jZiQ zEDKj}BEQw7Erzl8YUpxq+i z8Rdf#=60wN`X|?alb3&5FPF;8ZDip8qF&nCfr&6>o^heAMdByrC^m5oR02u-Qa{a* z*qWJonF2iqUChQL?5>d5a4;lcCP0&+*^tytBlJ(Mzsif)_Hc;TcC>eTr-Bl9HMAb8 zhrWV17eYycs{bM{^89NcBw<>i3@8V>8ES<7$@N!xY1;=(BBDG<;+1^tf=)ugq`wGi zga#V^x?ZGwWI{3?lJ>G3+72~B|KxH-xotlqHV_20&4ZL(7E}qXgf>BYA+fFhrXTzN zy1o4WDKAnd($=Le!lAb9q6qg=Xam#;9fJa}BNr&PYbPPsPMwUZBL8GwXn>qFmlOA*-O1Sn86&>J z)Bou_gHtDGXN@O%uFNJx)0uyrxbMWht0u37Vsv&fx^*(Txf`KQNV;fzgBGrfrX?}! zAv-y{8l9abeVvRX&rQO2=c&7izarBKl-NAb^Wtf~5%k36$4tfp*-pgl#uIo+k1ITp zwdY21?`q^PMd9x5L1H}kojLjI$sbQoPbcI#I+5^Pv@{xs)lG|2((FyxPNc+_n7l}Z z#P34<9-6EtZfAR*4bECgJG;8OyLWOm5|_kBELt>j>*XcoB9hcmzSrPR!rQXA|75+FYdIo zex#xcDU~?I$4p*0k4-BZFH#yv$|ObI@#)N$LOtzu*&n?=^!yxPLAqRcucHULdQBQh zy*H)cMjpKRD|INg<*NO&Tf3HUt(2)uH+QX=$p>ZZ;ZCac+O_9H(yv#vy}ms?rQS@W zA%w4o1`@ZVL29-ezCDP|7atE|??MXQx%cI-k5)gu@O2@rQXiekjo70Lwd6~Fdh^$d zlp4sVv;ZGXSJE$Tsb5#hNySEJPn5X3W+h?~G=1EfrD*<|tx(v)qkcd=N8;l0REbkk z*N-oVhVZ3SD7{@0l*kA-h;&J9c!K=4BtBBs0i-zq>`%JI#=XdE5H&JP8K=aP@?dfr zOgj4#mI)buzGI4IUOs_u*sO$^&iw#Fm>9uNY6;Z>O#JIkbI}a#d=WMIBJJnb#lMRm`PUnS zmLqR_Kc;2T%iGJ_!;ycX7srHPAMk4U&a zzP?^B(8fDB3z|{}8Sg#dJ9nYF81DoxO&Go|e24SHVZ2vl98O7gJTF_YJdJ|Sx z!VIRriKdlKfD=s`lCkv!;_OLV9e`yg(5fP7ziEUUj+BL#9Ea9GJ~uJbvZQrPBi4B0 zxQg~4K`W0SrGb2}DX)WH&v&n531tCcj6ph-REE)7x)aVI(moDf3;xr%OQ0+giRE%~ z=TBJuaK#Y+Fv3XZel~t1i1{*FnvWKK1RB@S{yAv^J;_0c*23dx!Be!{4InL6axe(I z0-x^W+>h4i!8f5vr1A>VKZM-H6U$|kru3UKW_2RHVfYLr6&CcR{Y&rA8J>~Qov1BI zo7CSRN}?;J6+n&XJ%r5cM&r|u7aNmycaxV^nwUAh^zaSI#%d11|McWJ`3 zU9n#YO2QU#AFXH7T;le@-O3cV$jOB)E?R?ri4(Vvk3Rl|QT7)02Ch?TlzUk_{-k`S z>{jNfGM|$1&mS9%(@HrLJ4&K`yiN;whZ@kwzk%4rNWL4sMtPL_U&I%}CCa{R^711 zKw3-`Yvdiu(~6sVr_#cDW|g{BU7+q%O?)#v0*lB|YL(|$m)xqT>M7-@^0Bg5Em7Yz zxGOWT$ZN6OCzOYjHHwRRTDf1nL#Pbiv!Rpn05(5{ufvxxSp1@FR_{}ntJUgZ!z^`=Axrh(yYR*2{U+r%eq(P4EqgLPUTK7sm{vJd=WmE+y`t_m)T%G2jjqnhcZTaT)k2KkKuj88-~|hE1Zg*iky~s zWjh&^`RW`sPkBZ8(D0riPkqhss$quH9@kk;w|M0_J;xB|sm+{ZCMoktnF;DXGSAf3 zMD6>3Z51IVC{{%0s?TR}+53N)N1eB2F*m)T=mv&4F>{2CxoO7eV`3)UuK&la*{*JU zzP|dnstZf6ty{0omHwY-+x7o;yFcImI}Dq#MC<<M}It2E6 z5A7wHlM5DMC1up~UZqaSQWMqTYHzidfgVszz`|~(#g!``Vl9pA>RhSDs)N<;s;lbB zflW8^&3zT$!GA=1+f6IER!vhQ)&8nUHDdqIs};17V)P4@d$AXo~pqxpY%;oUsGOH8u)>$7ud5Lr^c(p)V^wG z)y;6DT7mtqH`FRG(Q=cWz4o?1>zm__?3GK8tY>Oj@3_E3FQ zch$+TP@Rj-7pnzou4+)+oCDOZs-Nni8dWFyj0LpqQngUcSM$^y>|f@$j&-frzpSD4 zmAr2MYy)WXKdn>s^s=ur?Ja<1o4xzDce`G0j`f7S8>YLL4&EWp^3LJZ1Jqo?wTI85 zN)xs_y)>4vH4m1B+Py;>w=^JKSTlWh`uhvq(q!b)?ODIKyU>>j6_?)Yi4 z{hy5P^3Su)Kk0pRlF?n{WRFDFqoUoaudjR^`mJGzuB1>$(U*AJ>beo5teV}C5*OxFPUI)nv)`z^x+L{k?G-{1kbltUhMepLeUYfq>==yq^ z^>nxDdS9Tg$18D5`Aht*dKcH4w;6gy~N$L;IMkzW&1dYq25 zJK}fPMB8-h^{mGydJb}=+mQx6euqsuY{L;}+k8uTIpTMqpFRB|cQM_zY4$^3FLNC` zYi@~O>{u@+M>-tob(E9DC%TR>bX`6FUTy4G>`;10A+c)*iHuGXUt4m;rSGgtkJ^cr zEdTVrKyTA}%aop0IF45Ckds-s?EHy_2si@!x6sROFAz^@pG~B94O@__ZOnP zZydVq=!luKmW%8Q?)Or`uB zdDaY_pvL z4^F{-mCYtLD0V6HHZv3qg+rI>8#lmfgpNQ`&{ioh*+K9BW75&yp zF3I)9F0DAuGs>*`?bSLSDYd(^;@5Aq+4e)npi_|Jqw4mbDNmVEo+1aj^5M94FfO@I zk`~L$osFFB)})uex|=#7Mb#L5{4T0x4{kcHY7993HH0zdrdN?~MjoSA_rdpsk1@x; z1)oON^bY*D;d|r8*qh$K{U&Y(67_ZDdGV={!j3St4(K+KaIRJ3>rz(G2Gwarqffu zL!QpAIu!YDasPmO2=1Y{Par=S`R|cGj(iyWqws^^4}kwA{LA2f4gV|n19A7m{W_aI}iOQasLnQS;#+ud@k}i$Zv#S z1iuFU)9{PoKMTJUehK_%aBs#v8+Re@Eyx!j{}l3@kk7|G4|gr@9k}Ns{|fRqBEJCn zmvPtQz8Uu-+zrUzg#1qA>yTdve>?n2_*L*Qgv;b*{K1%EaCiSX}%p9y~w{JU}AhkFX{t8m|s{FTVxi~JhoC&OP4e;WMj;6DU^ zI{ZiAKMenR+}GfK0QZBquSI?x@>e5275TNem*GyuJqGvf$d5&S1@g<0Ps2SP_no-! z!aV``JCGlTd^++g;U~dg3jbF4$?*RLe>D6Q__yJ{1$P4OMBGb|k4Jtn^3}*&;k!5) zoG%#loDidW&tK~KJN+hN$guEm?Gz&I&a4a@60YP|R+fz%I<$x$W=KWekP;3*8xbiT zEpha88s+c7IhO=fRNi6>=YBt!3eKx&v1Ng)s#b8(M7qAd*sjQ;Y2w z7HZgY^TAgZ?)J=-n`@fc8e_-?DYoGsX&ctIQ2%FR^Cmybf+9aE4X$I;fZ@K;eq=fB0O*t-@XR) z;GIc+j5!=!xu5Vr=MT==8o^`WX>ilWgwvC9`ZwhP?){v6fcw5g4qWrqIom-n<7>*X z7vcOsKESY_C^vBH8TjDB-w6+_{^Oj@)Em18gTb(~gb(I`S>PJ58ax1Q0MCMrptXhi z2lGK0%Qt~$@BnB9{m-EfTES|t8r%TZfQ?|V4Sg^Jl!^N)&5Y z5H4@QB@z$|bRI1k(lZUB#gM?hmg)^g71gJv)ltOWDH8gLnS0Nez6 zx}Xn6g2%uj(Ab}M-oRk+5SR*vxuOqF2A6?rz)fHyxEEA9p$`Uw#vtkg3ctV z=7m0(10Dodf~Ub|Fd&$A4Mu@M-spqr;5=|8xE99J#A2<~}4bB6jI-?KffVJRy@F3U>o(A`UrZCbA27~_o*a2t-^TAZG8q5IK zf~&wa915blT!GIx*JKfL+ zE5WJY5pW(D6o5XM1J;78z=Pm^@HBW93>Zqk-`!@jg6qL7uo;v&^I32M7}JCP09*(j z0qa0noSp^EU`$W+!5T0NJPuZay?UV!7J-ez2akYfL0%G2j`v0%j0{8{+zw`eN5E>( z)CYYq9c%=bf=9ruATJvzwO|0)2!?~J%=Aa%2J^w=U^S=&(VoErA>7teFSv0u@q=qpDL?TaL;R7n^Ra{j=A;u2cpO{?_8LdL z;HinMF~Ooq^rPTD(0Dm^mP!7>Ltqqm>`Kxv?kS`n47!T+gJ-WNez0;n{SX+Oh5iV} zcQ6>N&Bp$~>KW*P%fM=I6}T2$3vLBBfP2A>;1O^Wcp5a_Lit@m`oIj(x)gmdW;y8x zEAJrv;KsX1Kj?Wk@kf!~dx#(OznA=j+waHzz-jBy2b~{8AGCsvV9sOcgZm$+{G-Vy z7z`c*t>7teDyVE^JOMqyWncif0gM4_h0o=$gQ6~&q^Ju6)t;UVPzG-%gElB0Yu*tKx>0!e|&i5EaO8845|H2kq zrFdktV=L0kH$wUFr@C^J<>0%nG2ZKbpXdGFYfbC?9`Jv#>-qrLlD-4bsyQvT?V#h5 zaE?P^%=u&JyZ$PiAVlPS{iyXVw)Nb%rpq3$_;E@4laQ-HZnAi!JJP3RPfLFe{3F7b za`}t&OFGve@BB!MZK>1WlW#_T>SN5gy^+s%#D9_UaY^kZ;h#c2b!&@lFZfsKk@5^8 z-AA^u1`v7s6$#3_^2X=w_1ZpPE~%a_W4v9`OfF;nT+;nr#&vZWFV&;fPbGS%&|53z zVZWptSK_XGk+q8WUr>$`Uk(0CYg=r`U2t@q&mJygdby;T_4tmW7gbOBv`N3@>n#3O z)@E64{H5OgDfeZp)pEFJP`8__qdZOGtL;(8AlHmsr07q*KyJM*C-LMUx1Tj1L-zSg z{1@VX=inbM`MR+D9PQe! z5CqnUJZt0A;`gU?x0d$-vfbcA$jKKdW6|FiqcUdvylOUfmv6J^8R z#Zd|35_TtY>B#LxF8HGM+}dwcirkOvg$yum{L;jjG}zOJJE75`JBhktk*{}}E)Dd_F^Z)fd($^O+PwX4gR0GG5LE@OMS zqzAf;Gi#wp9O>u>d$Xq?KIg}A={G&K`YVFJ6~6J}^|#*SlIrI&Mz2Asr}fA$^JT4# z{kF@WORBre7*CfpZe)UV@ejk_6MsF0cyP&m68=W~+m@&JPs87Q5&25|dtF3+CH|2Yk>7}a_(lBd@DIbk zZGI)*1NaBwFL`%d;(r|fDE!-|Q|isxo$A7WqX=J6Z^93Pe*k`}*x3dANW7BZpY3(d zc3j%|UysWO>Gr)4y{&!D*_MjO1?^qpT@T;i%sFY7;Mc*=f`3H#7oKr?{@62|EOPcs{CnYV3OZ+#Zv`Ef_($TO%HE=uZaYJ>fBd)Oe^&f1 z$dBk1!Cy7dUe0awmg3**GU`R*xrp9I_+i21vrRgZ5Us=iR0w;5l9{p&?OLA?1-gti zyQKGX85iU-exS>QVARA$oYBu=Z}JfKp-lE(rMjdVT*f%Nq`A6`HM*p`yNvU68Sm{f zLF`P+Kk_E_AlvqaFGJd$E5`d(;61h$2F9UI0Fu!UupLa>UWV$0!twaA< z`ro!YZ9XV^r_ftJfwSot2mY?Tie4Dw#lb5{H~q=q(9_}zLo^4y;Op5dq~HCk{zuAZ z4f0XB{MLsrj(<=-hY06v6?>Y}-~M&GJU?IdXC09=pR*28b6j#ChJPylMrr34X>aN9 z!*67-_M+pTcWeF2I%N^%A^rL#?KYr;+Sl!q2kDo4SU0uco zxTI^f=t5yNCWLc?7Qf{YR}qyaw+=3uW`QS zMePPAm()`Yx6Yi|xL5Ph|47w0e_B<(WhJ)RLrdjCN<3khcp&q|j5gY-xxHxthOL+5P!xWCx=aTNZ-PbuFv^(N(c z7XSSJFuxK#`z8MVeq;;(l@3o(;t9k5DE`{I=z?)d`04P^!Ved{^L*(nb^Rjvo`-4o z;&Gm@&+kQlCHye>GA_09TlH(;N5Yr7Y~{D=?}IUHGl>hrwUjfqpvtnhx}f;MaDbzY_kz4)kl_ABDeA($|`PZG9x^-v{4%O#K>-+BrC82HA|E^Y7A;0M6ZxQIScYrof& z3cqcBB;GaXMd5F~h@SAb!=DO2xE;UMP7lD(>OlV#{OS(${kt+AcAy^#e^Uqgli_cL zugwor?c;%@l}plJ`4{?Y{z8BIU+5pO>suwli`4rm`1?CZzkfH{VF&4tgfIG&+lAj+ z{*&Q5^Q`+){bVKlUhpqfe{0|eb)df;eoP1Y2jC}lpnnSfv<~?GR9s~T{7CpK;a|+I zrG6*FuY-T7{8hqlhHsVfYwgF*_rq)8ABBIZet0|llMelh)b9cKrY|lX|0(zZ@U{3a zqVM0G_Sb=aBz$WJ`jg>jT|!^leI@*S_`1bNA?W?sO8lo@;4kI55&zT<;%l~tcd7C| z3csuaeP{N2R>8lNeh~b%9q1>)ukAoT2Yw^`_U)y0++GU*6#OVDh>O(6M);mbFU@a; z9|ZqW=|2iTtOLF?@1R6>zz>2S(?R@6@F#bmp96nd2l`9lS9YMk5&pss^qb+Y=|KM| z{PpmymndInjI6E${UG?w@GsTgli;7~KtBimS@;Vj{)@EtrSPZnPEcgK^y#ewma>sQ zMer|WAIt%C<*$wX!$01E{zmwx zI*7j+z9;WeT{8dh{o!A#{G55WDXatiAo!6T=qJHX??68X{^Snym%=aVKz}3rO88p& zUBrHx;je*zsqx|{{0;xFz4Hl;{(13viRLk>Fh zj|wV?K&j~V^PTs8yQ9&}B&JYm*dOe^dEf8v_j~XC=FQBTnIF3u_Bmd8-^s8qz;DB+ z#cu+B2R<$SRruWu`xbnT9Jn<5Hv9m5TKik@g$(;0_+o~AF3)-)!@dAN37;1K3HUmE zTKuc<%Nh19_}^vNx8d9HspE&=ginf}uD3hzTkyx(HW7Z1XDuDWb-o#V*0ndzcGCH3 z1YZ7<#w)+m@ONW=h1bFF#BjCO0$&FoXFKuw=l!MKS8u_8l3~9CAN)BvK59SrHSS~J zr`3MK@l}8ygHIZ->?h#Q!H>&6;rd;LuVu8~f?tGByRUDQ$zuW$C_m)ip@O9n;W$;D#efUKMq!%aE!uU+WPy8(&pI-m#@KyM=4txXqUEcGh@J0At`0L_({R`jkYX45c zPyRhVPkZZ}I{bO~)bYdD;KvU8@7@=#!MEVU`O|B^%WuQ49%i7BAV2!H<%&9*##ki12CfDe&-k4NvzWNJPvffuikMP+-fB#dSi+`5BdryG{$1{{f=AMhUWv+^JmkKz#hBG)?1 z2eNp8OEm6D_-W-Rhlu-54zVaxQE4<%>LqF5t^=HYYjo=e(*X0NN{uik%KGb`n?)z$udjmg3a*)GuN8=19 z{vLb_euM4qeo!(AB7PtK)br%<3NZT!KllRsIfLh)T!Y#R$@YrNH2lfp(Ro`34-)Ve z_#XaT57jBRKUTp%Nx(P2?}BT3n5f-t@XZ)L0=@%&3%tgCK<4=*a(+;plq`Dx4dy%B z-TCF`DO51V*WeF2oqIYSvd&ZF)f7;vqko&6?gO2tlJd)drMH6KO>(!%onx&_&(Pg@{JUa2k>j;e%B)NHr)T<2S4e!ypYG&AB#Srmfhfs^z-dbr>Jpx z5ncq}zDN#r#Gm>*0X|Jm`7P>ewjciO>v`|5 z6OxQ{_OCXmxs@seJMY**qCk1)@LhAv!{bs=c|o{xoZA$y)yq!{-?8z zrMZRq{7a?L(%EmnJTf|*&ktQfv6=^+oc!^d5sH`TrKQ?Zv(cdIy#2z7irhbl90bgLo*zqMFz2BqfgGT)7bYNc5T zO0%_@EBYbjnOYTns|BUG`MKsyrO~Kd3rbh0*tV?X76)M$Dp%(&)9eB+ox@8@OF`-K z!quy@^Zv^9-|b+(nb0&Zm?<~}~VNZAdvb}@Tf&scfVFI;RXZR;cRBme4y z+3R;(L-D14pHL!w`7nE1e-u4#_O^bq($-6;g<|UytB>oFCFW@hr|DXFix1QzpS+Nm$h&9HvS9P$o_jWMr=K2rLF&DuQgoU zeg;f2vGr#B`lsLDj*6{ct*k;u?ZdK)*|C@^))K*QjxuBmDk;tl^?zx)$XmI z4Q<5iPx7z95-asv!cmF0e;qQ~{?OCT-b($BU{oxAhW&~SEwOF?*!{q{w;U4JS6fl} zfQs%{&ED=8ro6qy*=*we{s1ALW?%OA8)a{QKV}g3_aV00_hxU`kJ0lE33E2!EpFz{ z{M?3%wr}?zwF}Pv*LGurp2X~}{3BS@J}CQ^%Ff>OLgR?N)&Jx%r;UGaf85)bpE?|I k8;99{#D+A64e+JeS7W$&ily;9R!sslu>C*t!>fLO090Abz9cjU0mHQ+p@cNW*i5VnPS)N@@uX9-`_juW^Mv@ z+g;u5>-E39PQKsId4Bkw@A;l{&mHc(dhRU4FqHkcRk^ZJC7v%%cPr&md6mki3JEJy zA6NPKOPKAf1SIm{C(cd}Ydx=D=0Fe~d`9Hx}7)UfiEa2L^Pu5_!K z>$1*IhT^1LyNpV(?Iz+c&JLTG>}~{}_DFhpNE+IA$fazzvsfu{cKZ3Gch;|;`iYbD zRL_c63Z-Y%HJ@9gzL^--`R||qeC0njfA`ww3eI}(6IZ)i2^#cJ=D>3{+{FV(DZy2^ zg$+urhMuj8)z#3JuS!p3@qFmf^W3T*I#LZ+bUj&=y=kO-*(J!fi z`tJa*e%PgIbpDTlTOOj1HU2Kxex$z7g3Z}(<)eQ_QtKarcSeQK<@e>7P~L7ah0{e8PdZ zgU9|&F8*WS+2Bf@{z>p!uwUbT@Dt$Gy1uW0?MKQ#It0hS6Mv%Aj=XGreh2RRSys15 z{YpK|PjD&zf-eQ{I?S9WFTnwD_bb#%<0aso|CqyF;N$DATUIQN>T=as}Ck5X3ucXoKKRG1+sUbL@cH58WkJ2G{ zJh&~6<|muL2(hSLyy(2rhktG1B23U_bbzo>h`Pw`$oD3IgptKIRDjIC|^dajt>+ zQ4W65fv*719g)lbb6_9Xo}W!%`;q#r0M~rYrF`&GpEcmBoi5d{Lse+~{U~^^;Z_w;SwFr7eVzX3*7^Mq96g8h8ovszI@eHhb$=!${PQjq)ZxDa zZ~C~QT4=YF=Vf3|oNo-s!vw*^-$FbIzZ85B|@cj;}_8nOTl*dc<>HK_;m1Luw7mw*n5$oBD(ywVEd8&UpEBb z1+My}q2AN-^Dwxw!cbx2N_)Qw?hCq=A1SXI+&$S) zOLh2M@Zl+j>LX0@Uj|+{)fmv9VQ@_)^G%1}4?YGStJ6OPUL6GM@SlL~N6LE{yy=vo z4#P|Szm)VzLoL?ri-7~ji~)U`9+LhY@a(q?f@o8VHL^n9oVpQOK|AJ4`Q4T--B zJo`=LgS3+0o!|-RT;&&}bVOZ;p>m=6!?fE zzjLues~q`F73|3GYVZ+9em8-G-;f7gHyffwrX?gEF=?-d$H!Hdby#!pIo zM|m%UPdac4e0Vyo@(PI`Bw%9=QBk*TDQZ8(eePtpee! zJd6f=f;oI1xG(5YM_89dUM7MUE96PfM?ZKXM!8-8tHD9AEiX&J-C$duZUygigl_`B z47T;@m%$#!+fIJ~yvZ^ChrkCN_$c_81HS_v?a7Tt{s`s^I6~W{Kh6Um0o(as4t@`8 z*Kao1pO*_?0$vEV!$aUrj_?iOCmi7qgH1>Hey}G$XP-O=E^*+Oz@=bY9)AgL1l#pH z4&DT|%l|F-Sx0!Gm-4`Kb^AU6t|-WrHw9b?w$s;uTflbyH-fh~!fyfhJHo@@*B#+I z!J`Xv>Gy-DflGDyKLrOJ;ctMu9pUeTH#x%3#YlYuY}d~ZHXY$}z@A~b{F}g|!9iVK z7~BH3A3(;qG`d@=99oWUBsdHd2_z>96|9tRquwU1w z8a%c*hZlk8g6;OTfWu%r{TIM{9pPKSM;zgM!0$Q2zYq4807|F!FK(7!EIoBJRXwx4*T^<@DmPv z2z=O~|Nag9o+JD>;IZCZ{&}UW*WjpbUm4g02Q*MoOC)~j2<{f_Xvz{efo zUjutNM5xsHJqNA<+wFT5+yb`c;~02{BmDQ^gO2b~=OAB>@K1sZSzqk*SAi?RcK(aN ziyh%@;66uqFSv#E$WFflyaQ~f{|fk^Bm8Ob>yGfh1s6Kjmm}axu$?{y?sMRi;1<>! zyS$QfDGzMN_kj=~OY?;Jj1xx7fd9z$Xgb%A@i5;CI1ZjVFRV z!*ckO;MHXq?jg1=|m*TQx{}!liy< zzl4T_uNs2y7=qUg!FM?@OP#t0e4sgZ{_$mS#q!+#<#9)Rsn3(({`-l~kV}1jAoyXI z+OPNH{{S9~JV<{@_J%)(-k^F}Z!Cr8QBfko8g#%9m&jr_zR?52xEb_Qd z<9cx8*Ru7I^ZX95oc|xy;j4#)Zvfkm)MpFWd@3t%lKwGA_;|v90B-wUPX7N1ywrhz z1zzjGqsEe_1Ahu!`gAV+wP5>^@^1joCcemvw6A_hcnf&vH*)jgc5oEDSI6HDu6e>W zuwVWrxDMQ{!=DGg2KH%eg5L!r&Q^KvfKP&%<`y3I3D(PR=Jegi!8;uIli;!6a;ZZ) zegJGgKA43=a1(g#L6_QTpRWxGkARQS|8+V%3hs9F-$8Jr1OFYk&w+mhKJ35+=b?Wc z{e3>z*}qf4(+HROEB!rp2yOt^Il{Y#;9hW_BYe*g{C)5~NBH3(I0=5)5&r*%;NtU< zmuJzxx_;+@7lQ5ib{V)4%&=MYUjz<=?e)41yvc!k!Lr|z$E)5swHaI|hu#|BJ0x7y z);6rJuWfE^uWxHz)1>BJJ7cD5YhBjxsjd#8D??M;>Q^=i%EqkkZd%>it(G@+H+K@S zthKv~kouT0p7B$cjh>g??3Y*vHXVylnSK zW^J8Ss*6NZq<<`Kvc)xYgh+1ngIW}7qyw*C)z#WSLse^gtCbtImg?8ut{Upw+BzCk zOSj54v%R6Cv8k4!%J!#P+1Sus+qG(0WtEycHPm%SLrX_(Jp){O+p^9fO{*M&tJIA% z=GV42-Cj%YGLAH}wymQhq-Nqh#7km!v^5U(o_>1F>5YvyF6*2n0;9SZ`s}cWTHBjD zRC6YAqRg{|FfO_G&rXkzqR8>e>HFRxwR)ZW=t+t%9EZTm>atLDz8 zCInle^)Z19g!gtG}F?FbP*SwM*lNMzupuD|aAZXt6Rv&b(=sV_*ha>x^=E$4fB$2!BLjh0}DgpliPq63yYB^2#o*VNK(A}fPZh^}CIWCd17ne5DgTB_Er zto$u+>sZE|Z*Hq!-c?JjTagwWgiJPdib8M(S|wS^CREQ%?NSR?hGuo%dTo1S(`waH z-&H%c=5rmlTio^6FSh7{1y|d2ifU&7n!37YWcB~7Rc&qAq*lHwyOuYr`cSCt4)lMM zRMYa7UKKU6vZ=mZrj)gE+_EgxrDm~Qd~Q&VO6Q!-HAGbg`sUVE^#~q=9m-`p)K7Xn z=ciT9Kqbx`B5783HMg$LW$SIW}GdO2@xLUVp_sEA-&Q~hmCEFgb4ri3Sj`k95bGyAvs^hjBshPI9_ObQmE<;@L)BQfk< zEm<#F`q2zsXsAZj+||@{iwdsl*3xAaZ;6s6D6EU3=IG4E)-Iv7vw~M=v*~OKiFwo5 zq^mP%LfS?i%Pq6EGMmDV(IVQ}DyWNLZR)5M0j|yY+VMUh6l>;|+U`3-XG*ecNTAh- z)t$^K#G4h{YFXEDqvI8cem&a+dFGJnrpk7m(^O$#NZi7YSm0~vHVmk4W8mxC{HmQ zvt6B4o>?Hu=**gQAnr2JuDPUL%~lZ(56igiZs}~o9>cC{>(t6bv~`;zA;k_2 z8c27hKxaDXdq?qu;mZ21ThLea*`6P0#31jXT73G#+15Iq%M_o6Rh_pvim_(r%$E6L z+h*fQH3wz;0p8BiB+cN`w2z}S@i}v83{g#K}n%cWsyAjlGtKP)?1LM%XYGtjpriiI6i-r_@nx{xkYrBq^6TfWFoaQaDC5wiZ`u6sw zwjmi0_O)bEB&L@6t96fLo1Hc}zg)b|*5&q&DHqYGI{de($h>grJ1l28qKU4~Zel zIhQzx?6BJURoxvJfCDwKw7Jt$Vj@r|R%f)qK2{vrJ!LnTDf+?4Y~Y=`bj+7 zvZBYDI&bS}?aW30fS_z0a+-f}E`@VJ_yBLmI^m4HF)-e6yeizyJQ@9L7pE*JGQPe;t# zTN}HzMJ=MLqdI&gZVSuE>Div{>x}EjLNc}^JG><}i}YZ{KgdJJ$R3pq^cGPZJ`$(B z1HW8*hd{#4WJcutq<&fZA?GLAX8qbaRyDGV@9c2soHK_=nugokT32H44%Bv#hm|V_ znYS}tnlXZ{Gr)nUa>RLhh@@H7)wHl_B|8v?a&)Vi%%AB{I#M?iAuXUQco7&oBGsHo9vo$t@j`Qyrl1y^uY;NH7 z&p=5!U+H(B7boHcz&8PfWzS2r{l|M^18I9S-4-TPbboZJ3 zFeowHIjZ1@*e-V__G?=c#~-#wO_M-Jsk(!2oWG!!N)E&myg;zCS7z`ELEa-s@$&j~ znH)IPHgF2rzAB{sWclP+p}V0)r`4}On^re9@UBwFLRi{rIXY(3-_XsRv8yM=26^o^ zsMrOZmY!*ZZT}C7{Q+ZZB|F2w4*1U`!_!B!w$`rX{2>FUyKty?F1{WzJDxp)1Nm7V zXBxijU=Ioz$aS!Y=)4De4#af~oQ~-5u|{}RcAjNV>+Fgl5c3)0j`juJ@`BCbJ(opi zRsHg&1&m*7b8ABl3eFiWcz#pcjCz^hx=3S^!|)q% zBXRQFt?7f}2VSAEgxv|>3+0m_^`>|Xc^=hqr$fI@*aGO^K;OcJblhw4TaWuW_-hgm zC(jP(HPHFcsCe-F1^n5#<+y(X*Wjk%&I9kmEyR5cm%;CAIC);g{S0?2{@36hhHru1 zgZmQhcAPwS;XV()4Em3_diYP{p2RiansAHpzX`e*_ZaRu@I2^loIFo!`V>5$J*(?* zzp+A;x?YC~Tnt}?yA)T8>%+-6T$kYPA$&jd2HcIfNw`kj_i*y;f~(;s@q{GmX?CgS*f>jR&QbO=|TPkXM=KHk$p zl$w49zcYEw!qYb-AON0^`!sGGZV}FY#=~5%!9v^9K|kr>o$L|~E{9HX1aOsp;8_6o zS=?3HNA45aj|-;51`aB>!uWzneMbAWI>KyL?h!hlnGV3!JL{=(_}T1*npqERustF}?Izr=y(YW@OEJ(^C@bd#n+>NH=g>1s_6LLbq*O(wt$$5m^OtL*^j zU*h&Su+46P`3qbVZVhfXPM$AkiS_qO{QaiJKhX4C=n>qrxNEiFPoX0;-w6F4?z^}a z+~;u4=MZ4F_P7Q5SGc{nrMUe#=VJgquRY?L-U+==^FlgtPvia>_XbX$6}VsE9>9GH zHyU>_ZYS;=xWC1{gOg`FuE*jA|2Ygi>F|08zDwiVpzClq<1WSh18ys>47V01&)?&| zisQ3l)en6f_gh>WPM%-mN^tvdPvYb`3-_MIDRn>eUvQ7%^2tNKEp59b{4c|A4)hqVMu*RVPQ*Qf-&EYUa3$dXfR^hx^1B|DVEfqs z^L^YEI-E~#2R+L*x?1}iL&7EaV*En5PvDAiKg90;RpIjO42ioxk}`TZ%J`8ziSs$R8fb;~c2iUOrsIS$X`;-f@Sq!XIT)+O}CXJo`X-LyBWR@1PieVT64bc?1DO?POzQ`23V zMm625={`-L&~(412Q)pX>9d;lYx<(5hctaz)5Ds+rs)w)k7{aa`nsmaG(E2A2~FSC z^rWWmX{xTt_OnORLQP9F^=ewG>1a*IYUwVE znm(cFeoYT(dQj76HSO2*MNJQB`m&~nHGNIfBbpx7)YSBKO^<1MT+K}{EG zx>(btn$~IBsA-F)ZJLHO?bdX)rfW3~YucyjCQY|!8qsuzraLv=rD;^ty_)XRbibwt zG(D*4vzqp6`l6nOonr_i_r>46!-KXgjnjX~jSxsNo^oXWMH9e;3aZOKZ`ktnRb96g3 z9j)nDP0KZ{(6ma^X`0T~bgrh0HC?J{i>7UwuGVy|rkga~qUlaecWJs$(O^;}LRMTUcp43$F`;OMU)U;635>36DmTEd$)3KWRG@YnvxuzAG`ZcZ8v`W)y znjYiFouvHZny!VO!xDZ}D8~H}p@rDxLfKsR31z|GB$Q3?7NH#OM1;=gTu#*SpoZ z*eM>Nz(S!MOq2*M#(oi6#9l=x8`RN4+3b%MigDu;I+DGj&{Fn>LfKSS2xa5#7s|%C zQYgk#mC*Az-xPX2c92jX`%a`H!;3K*<>CRx`gu+p&WYj3$5ckS7<%I z+aYurdqANLd>1OTk$tPsCgf6RGjb}Fjjbt^jrHq7TiC-3ZAGqyuHYSm&|BD}3gz(O zq|lX|GYD;G0(=hI!T1XeG5$htW&DM9GX6rl7=NMNjK9!TjK9#E8GoT1h)fiEJL4~O zHRCU|fbkc4G2<_E4dXAAL!W6v!;HVsOBjElV;O&;9E{8r>Sz3gZejd|Ze{$1a&Wa& zXoT?>dJp3-bUWiObO+-v^Z~|S=!1;E(1#d*p^q^BLLX)Pg|hkW6Z#nAFLW>CFZ3&n zztFET{zAXT_zT^~_zV3y<1h4a#$V_+7=NKpF#bZn$@mNX7UM7U+l;@^{fxiRrx<^s z-(mcPevk1N`ZVJ&^dRFe^!tpz&}SHbp&Z5?75XgWFZ4OaUnqw`$Aofda$IOX<1h4i z#$V_QjK9zyG5$hdWc+V{{te?V^v8_9(4R2=LJu+iLjRWW7y1(8FZ8F3ztEQ%f1y8P z{DuA<<1h5@8GoVWjK9!}7=NLM8GoU#F#bY6$@mNX2gYCMtBk+U*BF1HQN~~B5yoHW zUo!qeKhO9J<*=nrCLU|F^B9sH9Hle&62?^yzL$^>~W~~-_yP?(!<>gdZC@+-y zgz~atlhD61)E1$4@SAu-zi6l(LU|dtQz$Q)b_qp~Mul?7vsdV5L+ulKx1pX8y2ViY zg>E&}0inE{IVh9^oo9tc(BneyLthKsi9Q$lCG@yZURoU%%FB`0gzn}y^MpnXbyVmh z=yjpIka}GxFK>h4*sBn-|yh}Iryl9-|65Z4t|q^4?FnP z4nE}ITO53ygJ106gARVSgAX|PDhKa(@Z}EP=io;>c&~#mbnwc-pL{3Rwpw zaPUEI&{ev^X_JNVTOKIGtA9DJRFU+mz64t}9gAY3R*$zJ7;HwQ?NB=wcV-DVQ z@JAf{VF!Q6!S_4(gARVbgWu=iqYi$jgO51)O%6Wn;8#2Nkb`e=@O2J;v4amf_}LCV z;NYtqyx+l>J9wXiAMN114!+RAD+hn__m2K|@W&jy>EMqz_`?qVkc01c@CP0Ieh0tL z!ABkZP6r=x@S7Zb*uk%M@F54^;^6BX{9*?mbnvqse89n1Ie5Q=FL&@h2S3`udmVhC zgI5mz_(cksvHJ!(&qw{GSSe}C$&qsOs_R4{SgsY?y-sY_$Z8;zCt_9RP)8Nyn%$#kMl=T+z?9Sam^#>-IFZ!MUsYhPs%l_$8=Bb zF%7N_iQig(IPRT$$(x1yx5n>#d7PU<{9$%4+mjKOGFMZd z@VID9>ZUe5$4{L$nCFd+Cc+bYOxv%9I)(z5yy^14lKjmLBNDDaAThQ-k_@X+iM+bP z#Ctc4809u!NxB1pQSQ8nrcvlk}7t~ogGQRoS{o{R-65LY0h2Xw0LYPv!-lPlm$J9XoOTC2x*K?iKZl z7MCDrJ5mN?9KCp$%%ix>zf)f2E}y(3*`s<)TfUX65BZ9u_Fi0)aQSwm+@XM}LhG5k zHzf+f(O5qHW7I8+kM-|J8g(0pJ1=ImZFuSdw_*15Tx0HJ9v2of$5bFuN*pQI<=d0m z{xbbVneGYeOf_yD^KM6St*?(sc3+Ys1@qbWPQC4Ao*VSNHP5}&SLWl$jb?!wnRx!v zXzbBX^_VZ*8jZbhYp+-8R55Z#vcSuH_x8k&^^h2e_P6hY>XnVk1-zWleE3&zAJ|%+{9_4K4TdJDMRv+@}ykpbIH%j zYvek!d}KCn>Em0yzj{M?Hz$4cyQ+IWm95Xsmi`{*jXuekn|{(7k!wvKb>ZelqJpxk zZjQ#>p?}~fM>q1{bi9x%&(_;4C+^>#I`vW^eO6dEJzl78OmK(fnSu7x_UY30U^L;E zGU+FdH?wUAOPwmDe!hp2>wN1>*A&|A+s^pSkDV>;rW|Rvv}xZMk^5frQ_^mgZLi3W zl%?no$w%58HfXc-r+Uch+mNEoiZ)A~!~H3#hoKh5IHiaoQ%@@Ibki?&2wtt*yvSNfuka^-CE^&fJZ-}&ADQkz%N=DL4KeQe~04{Y;j z-R4b0+I;ng+~xy+E^Su3lfJq@+=pymN1L}%FNGey4~l+B%*Ib4=bqqJ<^WFmA@q-W zZe{0sp+X-pZ)I-%p*io?b6)I>GtK!9=@aI>&f|}p=RW3#?~kABSIAsP2F_8)z!~Pc zCn$4$capgiE3BIp4^k(Y_a6Ge2ybFtS{!?p^$Y{?Eu${VJi9S*4PpDxjULg%!6#EP zS3J?_aZ5+iUmkR$K_5#0**el^>xrzc`GY#r(iM|W*O3!+e@QvgXHxDTtsf(HpDniZ zW1&+&hG%PCvDnfTi(0gwC30)y;$_{jv3T{I$1rtW_0)BYA$LdF;?#B2Ji8J=_ zb@3DTvhH7V$(!iE1jochA~WuA*ji7NN&f`Uqw^x= znP>huC2{i9!dM>t@2QJEnIFB{^gj|#<_Bs_->s5juUS4hoP3=+VS6Mz{++2pY$%U^Q_3Ici@S>!CjQ^4Q)Py4e*72E6C0_sUJtwV zdU)WhJ;?)~z>c^Wd%zbUkLvn;!C|(#^7MJzAfVKOjk>W=m z`=U>}{4-5gU1xsm=Jm{n=UMw@Oco^4^!Yi=8)x39KE%9xd_AU$ zL}OdnBke`DT;u!9eLqFUqU%y(w^d*>m6}-_q#!75X&T&?AZ-aopUk5zdEsl!65l(i z&s%L-Z+@(NT?{=#TfQ{V7Aa54kunVASIU#JT)t?wzoZO*whT9GzVsLQ$6Qi|Zw6(| zG)qG7q&_=E`fI&8s%m3Q`Ry|1Tm5C1A@f7ZvCG)YxJjQ%y9`sgt?~II+w|E#vQ2hb z$alhzJSa0_*>4|q-`VB3C};FXG(L72(qHBO3vH2d_J71}k^VaP5tmV_b)3s&pG0|o zik$tibH_P0`#$3K$hbW55tkwTbl@W>Bim1prtG;tj5X9tSp^}{Wy|BDlii`{lLhFn zqUc8UnhO&DDeGKxU9x5ZYm7qonEO+QrxhhmU3CNVU~AINS(QONu1S;)BQMc0ANCmA z<2#!=h#bvDcd_?N^te=+`$H}>>{4$PN}gXB#yMC~T-s8o>MT7^e^@$LIoB-qgaviz z`32cEOYB0v03EF7Ie$>>-S!r<=Z!v=n(LE2*8Ie!dFq+j?5(BGlz&Ic>NmaXW}!|J+bd$ z)|+rN(dRJ|<-X$NeSr$|HMfBsyes9yPx*JHTxPFX;mfY!R=w(|mueo|4|S|}Vm~1- z`Simu)}m}bY%panob8AEa_b%aAa#;67y=z~zU4+iW6 z`oJxHKv^nujX7+f&%@?9x6|iVAAE3GCS}REDsxw^pFiX>UboxxA(v4?zc}URn2eSB zYiz|};wW=i#!2+jpVD_#mc0IPeJA=znP1MX-6EeKa=#s?JyQPV)h>&aTy-;*oR%lKK35If8qa(z!_RDWNnc1 zI9or9PL}b`uA9BG2hwu)e>}#2j&e7oPAC7&=0XWFBzu>SaxQp30yz~OCOX8@sjRi4 z|3=HY&blOP#h#TYAv)`Y3=3lYd zL?;f|o<7#7VD_9LPupzh@!UB>_-bq4JYcge##XV;8BX7u+qUQ2u-I&i6K!&ysj@bd z8sBG@b5^qu8?GYE`q6)1%2mgC33ajh*p#)heefB9vmRo{ux2cEXKhDsfxTwz9BecF zbXX$a%;qcoP{MdFrc4$5a_aQ8>C85&*k+3wvgMpRV4Dpt$Cek#f9Xe&e~`JP>t84N z`_EMWMFTcAWA>zr_YN*?TQ1<8gPaQuuK%L!Ifq`irS7sn&yH6Zn>85QVV$>T<->@| zSp;WkjO8^h^^84NDk6-Z%yp47Gm?_?io#F25^}y4nc*}0CK`$Du5!yx_Q7+jm;LO{ zl;S+F1bMK=+c(@Hcfr`-ab6>Ght2(@v_aZZg5A0x#5*>V^Q}eLtpjow9B7BN{#*6P z+Q?FtWgoMa45O?9%8~L4eOVdju+%Ec6{IXV8=@>ZAIg=*`O|pH8aRJCb6H{|D>={n z2+I%~S<3Ky1Z7~~XYDF8nmRVY;QcOVq^!kU1uioF#PX`GG5X{BjkTXPZBKqw<0AI4 z^x2=!;zS!-|Q>$M7u(i(~u-U0o z-XE$@kbM6K^FwT783*>EAK4rf+xVj{Lu}&@yNsy3&thC;4v1cock^!1d+gUm*A1K{ znc?Jsto<2`>7SE)NnK9z9J(Zg`Uo?vEh{1z8|(6+UvPpMyW32qtu<2ZT%7J zXR)oNuRh9ll>4>a#QV%b=I?XZ*4BF)AGRmYo^uOFik^VQlVH5d@-T&{rGvq8qc}3Ur{tn(yJ#p*(t-sF{TPEcD)f=8D`q{UU zyDpS>_V!dr#ows#?M}J~S7-O8touXi8Qxz?KJz#aRApm%mulaGYNi}{|6fXddPb55 zb(+Y#^NEHkJBqz|vO?}?_L()DTOTXgldNno5_5?!_n89txu7+)ty^qU;!VR(Z2bU! zLT7{Jo?{_*cvJ{~FE-*ZS7KU-@GyGY7foynU@Mjyi3g1f%qqrA-k4S+X_=;e0@_P0XHRK^_t9)aUuF2a{l1HV#I9WJyy_p}`mNL{GlrQ$ng2ZQtFYo{4 z%+|gKFpfSzZ+s~CC(hUX_us!iu_&f!FKy18Lm$XzLsHyIb%=T!vh z8{UUk`o|>QzICR3f8uHEdFfZb%nAColKzx?72H30JiuLoDv3{DR{f!V41IL{__JUC zPw%1JWc6c#vme89l$um8zj%m2X>ewD*4EZB4EVtusYdxi`t#d-Qn^^Sr!Lik*HxcKZD(cj*4qG{4+0TxXsbh5xu- zbO>Qauj%0)gOpc@JQOh2qJs*;*>WwrpZrIYe+B;5nJVd|Y(KJ4sLPjk3Dog)ZInhB#j;4BW($;xBP}7Z_`3!k}F;6?b-B&5!x6R88y7?%sgL@nbjlf z%&d;MDfXZ5pL!<17*OY!Q+J9kNxy%p>^p{fOU^NvFNxXcDA5bwLa&IPQeo-WKC=>i zW9g#0EcR=CBxUr`cMk-{nXB_;e0s7v%^It1sS4)9_2>7XuY-wcbz75F;9-EmcmwvJaIu zST;9x7kxQRT^HZ1!pC~Ke<^7cX)39U=sblEv)-4pr{M0_E7H!dQ%-r^m;oK;`w(?l z=AHk>+zZ=xnQpY^UA}YP)y>lL?#ArAyODYK0e3y+E|VXbs6wu!eMaOylWvm%vY>qO)qMK#S6nU8D8c(EttzJkaNdf!SfXPGw;U)H@!!mToqBU#5p-ej$m__K)P zT=(|#J%F|5)oqAdcNe@H%{**!mqK<~dt^OY!g?2E?ec`EqxWfR?R^h>aw4)no4LU+ zI8z>X&x7!F+(%ctlX7Q3`R-5lpC64qGCXWf^j;V5H<%Y{y;Yx8$O3hb$+rle2>Gh- zBaaJW9_(Sik+b_-tax&Ee?Rxz7sU99fTA$p7WpW{`UW7xe!&#GVV3z`|DI$|Pr&@~ zh-fT2e1j?bgm7T%vGcjh%P)DG@*P4+7{|92Ue?Z1+9q`!4V6B+p0b{Ge0y;%c)tT* z4c_a()4@9(_%q;aJ*7Q&C9Q7-%1ROsjhV@O491F>TT$6RA=8GJvuN%-%bf?8zbEBK zzqpI$TlY(4UdlcG0D1e6J?A$Wgt@sd>*Bs_;YF19%WGX~-w$1CFYfS_F7bQ=Gc zJR)?y?SRwR!pqzhT1&m-4-4!biVMtmk`&d9ud# zCH>G4-@MuPaK~~Fci(vICdu0+_9uND#L=g6ZZ0}}9c?`}1wGighdWN&QhRSHN#xh{ znZEwsc!7UUD(}`Fb38Iu;_5YrJ+U#a`ms&TXrd$>Nfui7Rl&%T2U(JDSET-y{e^DG zqd!#9gK4>s(qHu5jQ6+iWQ<^RCUF*cB(9EQ5NADO;qmu6;;o-q=!oOeaa^oTxxCiT zEOEqf>o~H0Ipeq^M=bp>`h7Ze@_M(%*Q=gm^1Vule`~UrIlkZfN-Qtj!*?&)J^nas zHGixxDSLOlPt*Rt`94kp9hg zMUeZg$x7nM{LOc9mmS$DLH8^2D9bI8v|^N#OUDGBzwB*5u`1E#xEU_Ft~pnR_n~Mb?f5f zXL?A(JFVCVMVoxl#0X@O`CI)Cab3uR$G1CqtM}9!x7GdnjZss2Vpbe4cbBn6Bur#i z=6lKXKC?H%-iN+XMLW`Vy?P_-r=PlNM8a*}gE@o!LRvTR?(_O+`|jjzzEgaI^-AiC z{wLq~qW6by7~UCXDSaXL+2su6)1rfj=Zo%6h8dszb%$eqBl`|PWHWabvXSpVSaYoJ z$2QWRJCV-^lRdP-ID4aM%V+jmk_YK0$s_mu*wKv0=Yw`0$mPat`jPU@ST;Xd>$7sX z3ArRa{gt&tB(EjbUZQAVFR?LcMCY)Vu)^3&Jea(EPS(aQ<*rcnTN10jd_%R-`fjXL z?M{ZG^oLp^Hdj$m9c%PQ(AG!($88tSe+v@$wo6suw81aHzZ9S=R3cp--99f2E8Xy@pGV2{^aEsX=*cxw%(5KO@@xDIR@H)OBWjthGg5G&% z!^jQhs87**-q{?U6b!h$^MM8V|<_UOoX*AsGw+k$?^FC^m@Okl&6 zxyp8=ksa){9qD}XQ)QDg{bk?HsIqX{TJQPB-Y5!ZuvF7he`%MbwZ?(I$fF!%@4vQm$i#zICS5UHV1No%uc)TW!6_Q0zJU%LnYKT`7gkNI&zvchSCz{6utGK6cI) zb1pKfitbCh;a$jvD!VTon6y7Ly?TEpk9t2r+`T%knv{*Fs_#p?iu@TjZBUcGM>`H! zHp}#){eLIF0T3wLKipL`E@PBM(h9n+Y)|_6qHG*~E8rKZ?CFfFC^F#3PqsboCT@v0 z9Jk}S%EH(4({yjSBW7YR_j%qwN9?C?@cFdl%QS8&ypXo0qPx7$qa+c&d z2|OuV?z!L>bUj^@!q@Yi@IanY?)!P73wn}#>-<*#q^C1)TuGg&r~BgZnIydX;wc$p z%=panW1hC!OZ}{Ia}|X-wpVXK({5b9*hP6OvpSa)!&E9Jd=B;%KK<4kXM{| zf5Z)xd0%QFGA6R)mh~HXS85$|D=Iqvt%F*Yr!W>l&C_4cyil|!%|3x$z+M@7=UM0w=2;~=nmCvQ$SiX&MBn(4XVD*& zM;|?zs>5IUt(CB#DRchwiDuef^_a`j0hQt1$?~&RV)R4kwrC*Xz7`vfesQCZ+>tsVu{*R=4~WFUl1CUccEH4(}}X4%`utAeZro1e}!QvTVV z@Uc3@S~WF4u~gP7A7kK``f+!7WY~23dQzhavwnjEzI*~aHkQ~NfByRT&ySyadm-gmXSB2#-Bu>$x+X;vjn*0|`k1uE z+tQw5BV7b<44WQ*nRIeCEPA1l_#VzNL?+K(yODQ#;drA$ugUrlxhrnzO>~Isaj|u8 zj4@Wv%#Lo2OW&UDdFWV8gmaD1?&P#E=T||#Yi)HU^2t~FtdM+%ePLtVM_z^GxYhq9!q25msxEt<*QonW zss+ENZsv+^#;#WQ-UKqcLL*n(}=d!%FAuAl#@)E4|kTYejoM)` z)_0+&F1>;EgSFK9-HQ2%#?aOzy8W5TC^FhFdT3sD?TSPbMJD}S_T{vJTzJfTSl4cj z8R#HcyNv!V@j~`iF16IMA?`EWCco`z>9OqvZqr+BWS%cO$hz2<7P(zS8I68yizUSw z?~0;KC35K9JS^j_c4g}DS4C4YD<|zqd#l}1(_PKyLw_KQmrxp_z3locTo|_sj{d$Qw|LmO(l*eGtu(P z%lIsspBW1kJ$pT6M96Qn;7J!`E?RO0CPDT4Z_fAZ!I)md+z2RPXFtZZGZXKm+m|Nug{dvW5o4P z-d?DmItXvsNA&5V_;EHJi|RWF62>A@v?vuR?w!3#;Tovy~ zyNVw@j*VPaFb}&c5KYKAm&eC@Lv-VUvlg=dy^sAb_Db<1$4`n)&YC=>Z9{xYNjN^7 zHT6x#VsT)1@(FD>i0vc4yCQ9=puHWs{Uv-$$r>4x^+biUcC}^GVpGd+NG&ec?IYaq z9!we3*=VBKHoV+nroWJfGTAfF_J!jM>vkvS zU(8;N{FI;b81}&KTe+J+JKVSSaE6ris~EQ}Ddkj*>q!RLJIKC*?*gAW&c35D!kTM_ z&F9Y#$LC+%6JG|M8;B(5f1xKX{mvLB`u4JSvi2hjt?`g^mEp8k)$O#t;aC1`Nl##8 zvWT@*?vrisZ=jE(qk1QAG(Gj(Q?mAW>U&e%lS%e+FIW6a>$WGwzZBi=0k=#CGcGOD zd(n;eC1uYfI#TN5;df6GjD=NqbXN&y6nW?_zTi~wh?g?B$! z;yJw4I&*#LEq)8<8!q+!kETwXwYKB4{z=AFvwt}KD)_6qce~iE`V#hjwUqs;5sAkB zp8ojhh;aO>Z`~D_Gg76tCf9Ptynh!mWouR__nsRO=dlT6cOJB>G$@$1!k)JVr zUe1N+OJv$h8tXS>E{?`#lp~MzM^eU`d&qZT;wrx5yEE7vcX>DPzJas+c^i?FEvA|i zVXv~$?62OIR%`B0f0j7mN!u)4q>8qszgX8CS4$%3qKh(tvTbQe7g!-S{{`rn3p1`I z{>%(?l6%hN%uH-e&!o#THPx48j5+?ybo|4U-03e?yVG~hai{;P$elLGb2|C-P{#9= znLlzPb+|umP{wrf6&cQ8n-=F zaTRmSviG(o@9amXqf6f7HwgAJRx&QiyqEnLx-s&vsgoa5*o8|I?xlAnTur79n#Gy{;#=Icy5M8i>dX+I=VEOGK zHR=AeC&*om0Cir%xXD-|7pfW^$@+Ebyl~ta(>V{)&TPG<&Qf=gkJIbjlRkMqwt?8W z)jjEVZGKKqn!O?GQy|Xzhb=cZZuIjGiSbp;hiUdcm~(v>zbPkUUU+zG{KO5<9Xp%x zJ~q{*?Dq>^&WhCC-?L=urz6-4)kPBv{(}Dh#?zTAey}H9_3)nbr+>O9J?-s1>CgO* zwfmP>W`-4Ck||*?>MfpkyqLK@wRlfj*?t!HM-EGK%hU6J9vx65>ujF7JJ& zkGU$7kFD=PCmBUICWe!bDxRDv`oWdfo>tBSlE~j^$~IO+6XPknuvp6U4V0OAlXX?+ zC+Y0`&Mvtz5h$+C6cShV$CB5t$ZIZoYnopBluAX&BEV} z`*&knC$;^3;HuafG01;m+1*Not`fVz)?;$!RzyGgp|aPnoWMJ_$zksG$r^R9 z`4jp_=7#i#=p_%jtQ`I3GDWvXV}Iw1#_rkAoFVKU-#zB=Te&0NbGLcVw!1mEx!W8* zBO041VULg>?_3J#+ls)}WKodcXA7XiLOAA&$XRheJaVU&JeYQ`sLbT8nUa}VU75KW zIh!@-icCKC*vu7EGH$S%vp(%654B`NTCG6-C9g>v(}h-k%thwh3!Duo&IEo`4ZU&# zX^`C|yV5UQ{B*{%f_XOQvdoXJd^$5@2{zrN%gMVk!TO>bniD4VpDoToO_^;)TBt-sE(w|3G)QmS5B98JZ#=m z&pyu|O-!Wyz94zbnTqYXHCf<~#!5rnf!a_1E}4+=%o(4#8hf(XTxS+X`QAE=i|`v_ zfoQB4+eEF|nRZJ%SKMdyS;3@6=IJle`DIPi{pacY6%#X3cEK8Sdr)MVIr!3-)9UeU z=~!7O=Rp5VoGZ}JyVB!VG-V3rG-f33c=Cy@>B>A()|J_?`LfK9>7%`KZp-|Hakywj zL*}AM%QA%zjn5QTH)JM0Q_XlR%jB<^khx~fTGCI;T)5(nOng#Trg6@iO!Grmg1?Ya z4{c<8o==Y>{kXDanXgpeM!u6X@v_@9k50Nh)3D_B%!D;pWPV)Tjjnqky@4@6#$po# z(vL5v#fDN#UP`mp)9!m1*F$Mz|J|n5rWJRk^Em&=LpFWE-N~mI8ySz%5bu2Vla4h} z&QN4c^6bAZ?pZUzvi0*;jL*m#oJU_<=dP2+XXM>{0qOK$stWRKy&_X0U$O=x0~n+5F|`Z?0NAIcp#Ic^50c>nVL-F6$NJ)_?5O+Xt`_ zEv)*?Ux62@zPRAy@P#G0um=@&wFv(ZnWQXEJo+Lkr9y(D~^x*3SR6G zY;XRHfTBY0!^s+Sh1m3Y^u3I^>=*g(2FhvzyREwoe&kcyFpMWK})Px=Vf&DN|(A z+Pi{%V3FPDHnXmR$AV=He(;SfmV4PU2H$6mlyJEx*$6HSO1t~83$`Zr>v0IcAJBcv zSzgkTU*gEUMUNg6x!YllWu(t+kuml4nKG~B?#G3^dzE)ZC3(D~4MY=jeNx7~W))%Y zdE~wAy?g`8{YuT3z{@)qx7-o8e(Q-nMl@g+vCk`rMqe3*{f*4NG#WingdLV6Jzq(j|-PI4IJ#)Y-&Q80RT)^6J zAGYE8xLR>x#whxSv}?^poY^l(_Z8KlpV!5E%IY(Dw7+1*<(c)YRX*s|tfOj4Z(7c) zIg>8S)^$lj>e@&hGJpLK+68wA4rp-R)JNpWQeT9pCg`0haXAZU~ z_vwu#BdOacUAOINYfo&|?Nwd3dD*&Aw$x3==JdMtV9WGabqgTdYTSC$U022)lD?v! zMZZa%^ZOYyIiqLKR5FkCmUk&e-2-tY^`Y%9)(gqUT|I$5$)5ZC2kk8(55A*#3+u|V zukO8j^Nii@=~WgE+#7H)cO-ww+wI#NFJQldeyx6q-;W)C>1K1rWOM;`xZz(AH?UvS z3h9UO8Dov~#RS$`_G#Eh1u_;zuh2Kx;Y-+4l)aMnGFEwvn^)?EeH5+sWu*Nc_($f9 z%ebpA&*Z^-IAgQx%zn8{&Nhm$QPjmdt#>G{V)h)xo6^&ye=er{F}yb#)00-gyOMJm zC*@^Mu;x^v-won=mvH7c=3vGs4qJ9^k@#U-SEsUeuBoYetotP=FY_?Y^Y6~LvKo!;6(OSJ#r&D*t-G!!g~Yc zW*p^-9uhyF_8W_zyoX=t-4K^JqrsN$BF;n|XB2)`yJ(-Z%@f#c7KN@cv$}Rs?6>cq z`UU4tZxsf2qgxlrZ)$I@sbl`Drns8USr+ds^Oc+#F?Qr7YrNRBdF+S9Pwd^_z9DB| z=w#xH&K3VWBVhgv|2*Rwew&*%U~7o~A^gr3-7N9@qcPF*dFYUG_Digd=<5CG=tppo zV^&${!{glhkvvM+*Ohyx$A{`{Sz9>g;N5!8X4yN*rA}VrQpa)f&RyQ!+>HE}_D^ST zGcsLDc`n{T8Qh_9FYzLak#yeX?Z_cEZ!*1Vc7L>~Et@$^N=W8P+O+L**Ut2II9 zZ#i=JDrW)S^g8zZ!>eCSk4H9Lla{8>n)7Pfy=H0pF>J|_C9kIU&RL%EY#y5~Uco$O zF6C7(O<%C21>5p6_Qu=OU&YpR6&+3&khfZMH0`Ahk51}l9t6qTml;7ic{gUP7@O{6 zK76I9E8{LBKIsd|f76=f8RMZ{=?kgr$Ti#3uE%$!zk+@^n>rP&`DA98yk{f5XU^gD zgz6R4@v=`Gt692!ME9xV!G@;Ha~%(*x-fqh6GeIWHMqF%k#q-Xr( zd}G53=1&p(2*UE_u&;m$4itflwxm6rq3>hf$yo3k^D)s4_I}nS<4_lkS@sMvDl%w( z%Ej+kYyh{{Yqf6|qB2U2kx{LMF2+ZW1e}0VLJ*oC`hW_a?@+=}x-f>?6Z)~Pb z$mA5(^cToi=Bd~>26dGBDZkjba(+l1SqnY9XJX&;y2s!1x}2HH{197q3Uynkn2Ye2 z!sl$<4d%t*oPE5(ya=4Li8q)Nz&RUugLyu9t>_EdXZSXxR>OOXMrVZYh8G&rv`tf& z-Zw|B_fTKIN=@niG5-VC3qOCXXNI*Owttr#J#B=U&&+ph>!J#|16s$vm*4YOA@<;b zd(C{~!BnA-I3stYE@K?!oN@>EL8QI%Ti&l<$X=kA^QY^wzja=St!Mm_J$8WaL?u6L z3Hv_FSZoyEyd9X)i$=*=cOL!q@5xhd_kYoom_}b2p#XNrdh^@(9UboBx6#E844~`Q zr;dSz594QH;)o2rDU^1+C6qB&>Ypexn8+jlwUnPPb@#KkkudJdQrov$@Xr%}>$l0b z#{ZSH)QfbBN!#2QPT2Oj5Sn`S{7Rfg^yn~uZK4XWRwT_lM zt#?0H*h!wpHvNCxy?uOC)wTbB&O9WONeBahiUZ;Sf?&WpJopqJm_V=?P=^PFrd~Tf zwKj5ZM~l{`*iJBjM4~~|DoPovZ7sFmMnR?2)*wEW>Mc~QUaIxXjALwcPVM*ly|uQL z@B4FR1_s31+t>I0{`k%7HLtVxIs0Mlwbx#I?X}ll+hgR8@ECdi0m6by_bpha^!>4H z-)LW*X{GAWbMx;#;+D`8M_^wvyf9uqn$~kr+MWM!+Mz@K@wB%LdGergftCJ>)gccC zffqejlz(skF`*sVv7rw7BI)WXC-N-8UCL9TJf9{Hx_*yE9_xwhSZf8eoWzE|kiLAa zpng;zSXbUQ+>?YhQ^ce6x3ReHY|1iv6mHEPr7$+WUirsBu3%Z1+Xp_qnyW*5In$ED zpTd0BQlhaX*)vG9hVQf?{64g88eJK$#uNR2G5zFm%XPm8U!_ldd=qU1>F-v)dyC(( zQwiJ9VP#yrB?>I~siji&01I3vvYKdq7Z_Srh@NP;>` zZH7|WzrLY$?kbli1T*${?)k1ac>hL`?u{g6mBKx%`};~^?AX~K0p8Wv_i+Y;c4LQd zgy`xP19~z#hKp`Xy5eg?9wW}bgm>8)Ypj~20T1bak&GS(?+Kf7u*poM0BKR(Le^=r z!L@d1{9aIpjefA#{*UyBH)C^2+JJFkdSC5e(q1@Z4(qnX0e^OhZ??)vGtcjx<@aUJ ztSrPMtSy$5eMiO$F5vq@f8qN!@GLwo7%qHv=l)Q;Hse1wnOVr0um8pPJ$sNZd#<Q$c8>0ghr zCNr$3J7*l_^|~~iw6i0k-MODwA^7hN8Bfny@R$Wz?a!H!8>CNh=|ncHwHAGmV!sX? zUxnSN<}c_txRtyf_J2IlX40?BnCw@p49VvxOb3)+V+DfP?t$K=lL*+@+4iw713&yc zv{e&9&P`~{EzW99pnaMGp5~_w=%>)1^M{zU1$xT%hMq}ly#c*%7)II^#%k7Ysq6~& zx>i`TY}Q)#NyT!t-gCcGZ*QnC?M0Rr4Bl93or#V^1K5}7&Yezr?QN9caK{C3eRwo> zzrc+>Z5qB%w{P^|I>H55Vw4$qCS3yzvI~M|Z!kl4w#sV44tHa2C2;w;6Trh7p^owc z%qglP7>nBaCf$%=`a>;ep<>9L(3aM^=wYDy!d#K#45h|}=BNuOL-K7a&+@Ufh&iG} zn+E+mD^!>xkXcw8rLxV3(C?W?6uwtQI9ouPebXy4;5j?oi(hJBGA+Zq*tZbAWO%iA zXhw`W)#o*)f_EeMA${r%O|cX7#~((o&8SZQu^sN21@*%=U@nbwXg#aGK8Ad?aoQCX z9YR;3mCS+2G||qC?B>NU*muWXsuMXUmHm$_yvU`AMXu~spojB|WBdFe07lwH(!m8y zXwRdyGx;8}USdsnetPPR$KM<`F=YlKE9}wiXMH8I@6Fd~i)9(to7OY#dPjDn|C>4~ zYrq61)%(+8y~6XKeFYw*@ZWeJ>Jxp~(8D#_s|{-0md2~buK1MBeQ2%$_N+VKgdQvM z#kILn@wGXtNptR^>=^Q|m3$KcAIYu#ZhG`1Dl=krW>j8dyhNkP6E~@E1J0qzXM^$cEpN~C45ZKSTL^MFd9s24{chI9jkQc7rqiv zx`p^*pE;KBF;&LGaWK*@!?z;sDW(NaADebCX}uxJtY6{M1@vM{UTHF#GP;8!%v|SV zE{zo9Rm4T-r0MYZI?{#t-;Jkl$?h8{%`wsgYAn&$X-_PbesUi)76(r*k2+tv0p^wh zy=ndz53uf$Jl5*+rSiE1K6TJsGWC$TU+sLcw|0^e=41LsQ7P*cWP{Xlz$e= zEAdZ1b-Mi1SK^=0A#fM?r|>QQ$-`6ix|0Ow}%k^TbjSmp8#l_!3n@|CVd?N6@CT}D}Vd=F_ba_e5~u6@kpqs8{D{%Cth$M~Z?t8-fGvewCH4S4d^ z@GkJ}>4OHWRN5M%HN*Tmt))u$x2e5n9|gRT?%cU`&940;@Vs5UoA$G3P~;=&63@`R zOlF*K(A75g?9u$J*Tq%gY=rhEKQ!#DwQe1CeYWm3>Us};Ta^+WMvHPbepocd(N_yT z>I?cp+>e3G;Et21aK8W?{@TSe-@}*HR%Evt&!@jgzY`zu8P6lf|2pUA>ET(yvxR!j zs%a+Q`Dw<_uK8YH_8fm94u9P>i|@0|LVQ-0uP$abLx<-N8BhHs{$f$~LUj9|^%mq- z66~5=R_>x&UmY^7n@>FZ{3>5|0WvPK^uU6$`eqLH)y=Lfl&`VetaO#lT9XVcDk~q^ zv~Eddp*-4E;44KL85sedu_!B9!I$jLP$@Votc7djd&Xj}jJ(wEN$lyDeYNo9>ZOrI z(E~IxPmz96HW*ETdeQD8ckSiF-mLK7I||=aazv8gu`XIodgJ8FlL0 zzg1Rbe_}j|Z8>+)#P7c*I*J9s$fHebas(F-1ILVcqX( zr+5VG`7$1%^V*`Z|2ZBZp7;L;KEd4N@(ImR;uDp{u~}6%?#JlcVaENNm4_eq?9033 zUc5*0-T-`|#B*dX*qeAE-5cA(n%A{^boq|fby}A*wslUVvBWQa`!W3DJ{x+E9^e;W zbnDuf6VEu9U))*7FW4vff5DHvQH(8~EUjrCNPhNIJBK6mA`F54qH4VmsCV>dKh zlI6rVKFb+b@eS7djNgRHN*>HN=nI!`NOvT8?L5*{8aM1;>$8mA+-p^gO z?APU7ne9ewH2#V9K6glaKlM+vcgH8R_xu0N_D(^^qV~oPY46hi2kqT`NPG7dVf*j& z@5)bT?-l>e_RhqHN9}Doq`i?t+gtRL@sV`~^ei6ju4AB^(i%f{QGUj40spb=;3GVI zGqz~YdT^y@r}&X*?8y?(G*<1WM|b^Hrr!{qYQ3#-@mb&$UHT|naF^Cbz9PIKts!JH z^iR;^i-+{jRsTf)9Q6tP<2_ve7_7D8Nya(rr!n}qV$a|Yqf7drj-iEh&ds*gIcm4Y z-?O^Imh`3ZH~xL|;I$z9#*B;SoL5}CoL?usIC~+CZ>TtB7qkB2u+aNAzk7cq)FjC$%w zj~+J4GU34^;MqJohO7R$b%j1(pgw0EDSC>q7IphP-kn=59I$p2PD*RX^7WqPv>uOZ zqn-&`g89H&Pcm@@@aP^!d@q2L`K~SBrKG=ftk${QJ#O7>OOEq!cGl&?Q}At;Kz5G5 z&|evQrGHht!(JJaKZf5RQ@oVkXAGx*;Kj^w{`fKWKI2o_|3v;^RvGX|6t6?>7OzgS z=NXf1vfVFyhV1Nm;$KGZ%zr@NmLkX4*w@=bfW>~rg~#kG!jme(Gel>eSx-cT?+e{M zSLyc^UlH5eufC`5U{h>%CQR5%zna#2l(is>oD)`FBSzcf!VUVL*dO`k-Xj@YnNa@4 z(*FdT5}zUeV&!S@$5ZL6Vt;t^n#3R8Tp8=KS0}n`wY|6JWn_C};3{;6`gVOp?_Wr- z*0bk@^wqrk8sD_u)4rF=7VQZ~&{WWjyqNnmx<>HBS)q>1HKY|CS<+i4ppW>=EZxqp z(>}4_-DeDS+j|w|t_Ieti)Fj*jR@X_>WlsD^(64AUEb!h_U@sLYHtZX>OiMiD1-eE zx6L}!tA5kIfcj?>eMk8Nr8s(pA;O{b3lYYzYtLMyHxCOb6WwQN4YThx{3mf=^{xD4 zUtlknXWwNWBiiOMN;a_UQKU_`Um3rK`e#ucYu4cYJ-N_}jNkcnT8D}L|C2IRx4{|~ z+g{mCp6m;~m^+;?aEATpqBVYef^W{x-fH>XzJYSv%F?~nBiwb*qO2>gxO8z~%y3__ z%QMzcr^{E6OL`M8(eA}{o$5n7m3{nIgR|`O0Po_o`l6uk$6uzMVqB-Pr}xNa^?7$c zM!LNj#@b8*oxbS8*y#0QN0Q$i#9HB*Tz$ie%#G> z5&Hu*p%wO(#y(f4JjCc2n=tmFua1oaKV1)nev`f`DW4+qU0RzmxR5VCf_zqoebxSa zEB5F6EMpP=QIx$FbJkjWcPk5f6UGa6!AC(XE4vbZ>L&J|=BH;tZ$9Iu?AO?5OCqcF zB6n-PL+=`%Sfjo{CZp{W1LCVZx!>Kx)0=!gH;wYE=)0TZ+?l|Bmg;^ewA=Q?k?Yvg z6YSEpdPq|nl5OP@@=BM`k(AtA+mlLvLo@*1O8D82`%r1`ZE<10i}byTC(N#MWG?WZ$J{q&al_ol=4FEr-% zlgCb_*E2>Rffs*6m^x zx~?H?0?Riv?vu2Uyk950{7W8V`WLB{bnM?8Sl`hX+OPQPYX|lz>ZNm(?Fu-3u3B>n z{Ft&z^H4qZD;g8ll-nq0VO_>kuy2s>9}^n~uW;M*V88q<`HUm8d%62hYXl>OZhF5? za(%yhz8QFcD)`4&(cwgx)1uT#S~s1s9$sGf{`=DRR4Ofbls+q@Nr=ZBNcVavT_Tm1 zTy$tTFPFZ@vBPCuGumif43wf=NU54Wlqz6cQAzg*{B5fFr&|w{uF{_ zj>e9Q{#qGY8(N*{u<45dr3<>W;>r`jVa4<-6Kjo{#LA(g_^y0p4wlNQ6z>jk-ZIgI zeK~xgSZ+;d<W~o@6TfR(&8b^%VCutiWFcITvog%H#l~E=K9zg zLw@tlzjLVKpdlR1CZvnpc{wn$TH zJe{jhm^2o1m!GhYcY(gAb5;B;>Qu7ty z2D1iOlhCj9aVKF9r-z? zKBxo^v+oyglyHWOA66a0#kHc%!{Gv2xR|+0xHyJ(8S!7_OzRgeE#K;GuW5cR_ZLmGUMND;Uekp(PkKeyrkm61X8LFo3*ex}V_Z4Z1 z{vPkjHauNhM$7P8|FDc?xI9&`5YkJn@R@=Z7`H%E8 z~B{&9e-TA;Pvht<(`pZ4qJjx|3Fmp z=A!Izz^$_yvSZi$&U`x@xd-_Iy-s2sTPlm|>PgdN__JrZww9}0z0K^sS}R~*$J*NE z6T_tIhhK~UcY2DCAcMGb5AkYaRi=t(kiTKQNL{X9J@g0In^}Eti1+H9_^$Q_DxoJ& zs4vI4*Nho?iSG+|?kJ2+e+{^cYQ{)b_pH44_Ql^ ziLBjQ-!qMgagT9r>j7H~bVO;*3s%#&h9mnkM=o;hFeG1s58}7>`;iAU7RS=};vH(E z=B0n7T3-;zqpmO_1@ z@g>USmi4GnC=s&R~n@ zinw8GeIp!=77n-rurf;f6Bh{v;>-uJ-IRYGc8uJE9&he9u?dv!fHN3jV+! zpbx`(7(8;Wy14Fn-sZcX zaco99+*AxHobGW2KXPE}cfz&H~>U#{B};eCZ0#t7D-O^u@a~ zN!qG?j<2dO60`+5>6_3ue7H+%NMGnT{ThoJr&o|hZS~Q9=|9z17J8Lohny9mA5Hc@ zJnVl2-h5@>+fiV9^*j&cF54B^fG((G@enkuzMRT6B71<<)wu>``w9PKU2x#NC$z`K z4|LVohT8+jpZN0o0;){c6CUHO^oBgQl@`K3!{4GMpFjrPAp z|6_j+4{__prrEYs_kyf#nZ>#nKp)056aUSHx`#kNhF3J>JA`He^apy@zzX^!LSIU)^bM9<>mB64flXaH>bIw)FWIe69jt z=1tO(EXw|Z@628FT`Wxt(9zt=`&f2og|Ul0`>e;)iO*Q+ZDQGA71yib?)*pX4L4C$t0I3p|E$-S?Wa zdB2JG@~K!~%wI|V^@qtH3iY|^yu~t(Cho!wY`R}SbtC@wUYjE=r=;_nTVZTCyFzO#?v&#m4YzE@*WJcF z&;w^wXt&0h`s;&1^Rp-5Cs%NBPcr;A^+J?q)JWZXDs5V7-HKc)8&1yA!7opy4aWkH zCyvg0@TOcJ=Q}5cIb)8Ee@*1JT+~9Y#E(nUkh)4qV|!orw)A^T&o)QZ{#XVQ;H)O1^37|1J+@JW=#9 z{71jhB3qCVoU5;59rQc)qgdY#s9o39xO+aEOYKY1z7*{f4OxUO+Uy_1I2@F^_kQqY z8rZ}ZadZywFJ)Y-Kc&Mx)IVagVHoJ}j3xZG;FgfFZUxQGva8|w#-ER};=V=K3h|aCTRI zq?CVK@TK%mD6^)RH)-MrFok+asz(o06X=kr+Zn-@!R)e)O}V%2Ku3Q ztEfIYAE8ZN+T<_dLt*F>n&2E3{*g`U?xWxOs(=^ibDK@L8%u$7_{I82H9r2){}kx43C=*ezt2!wI>@owGd~_?NZs- z4O)=G&I_rxwC5k;fQRiAnhUG<9$J&l6R~{Pc{|Ox5eY zPu6<39Cw20zTY&(%u=`eo;tT&Kf`d}Q_mK)7yFOBYHKs?Q(H%rV5wOk-SRHln(ZsL zZwPU<4c?%-Wn1dTX`}S=yJ&CLKBSFGtG26+*YRC#1dg2{=y_>G^vk|6dn(MA;nbJ$ zGkl!iom26{v-9ab$y*nspXQzd`oiUTN;AwVq!|`EI1S@beFi<~o{NQoFWdl6fLaDd zh*v>lMtnoAr=r4MKl12&#l@7bbLDLXy2Zb->znMz;L3b5ep_w_u-qE&M9&>dpDccC z&B{E+`_p(=lYplr_?AF^Oc-05;qNiU;YrlrsQSgn)IOf!ImdI~27E}i3i!kCzZ8B9 zd;=eW&jLP=$NnksdBzsuYxpR95z2CL7fE>|k(GYw*tbQn@q-_Q+6>x3TN#7$wI+Yu zP597zl03o@bLMuhwaN|^%Qf+VAz$L5pa;IU&G9rQ@k!9(G~thLCi!U3Ksu;>9p;)b z%uoCk*8KEW<`RSW9LlVL4$p+vL*W9vZn^NwXhUbdk8!3sg)zR}!x_DU(zt%iA9iNo z3s8GO$Q-kt3U505uc6M_n!jcO{|w3q1-+lKFf4*Y$raDCP*PZT(nZvwPDc+wVk zPpQAo5dX{?pL^8VIu{?cS9IbtWq#Td0jH7FgHK=asPlBu2m8*pt&V^0bbMu{=Bpg$ z+a{%BE&HJQUN-MuBXy4j{92#(b3cO00!}k<>d)aTh4y;EqhR!m?7;6Dc${>-i&xDV zE}X(c@lGA)fW3XpGdEAd=fKFqo)~n}TJPQ&3!b?fD8Rq82lnOP?0b7=*ew$(NpZlouHOgzk*PQve75Lr-_Ch;$JOv*5S_}0&)wtF1;X|JGx$WJ_d)n9J z?!%Fuws+{fsrJsjR%(w$KVt(E4mB8*nZVxydwY|T?p)YJo9H8V?@#XolODmBY{d1K zBH9!E4DQ$86t}U-(P>FVM&GIjHu9Hki&?dwX3!%YgxC zkh=;>e)ys7y-neWa}M+PTsIBAUBJ03XW*Yj_5Gqa?=pw%QaL4j`_a27UCB4%lP?wg zNc8>oQRght7j;J)xC^G}qhEDJ!&C8VaR#t_w4S--IjAn;A6M58N_9c!X7D&iw!Rj2 zvqo@Lz7M=MGmpDxBuF;`KH|>n$-=%QJR%st=ZZ-`GrtVny%0{SUtxZ9gY#~G{L(+q zy?w^GnYYy3bN4f+7W^ar8GneWUy{Eq`EH?{l3XhN(yP>|vlz|DQ#xDF!Fo#k z9NRAYInv_4@u4L%Hs#opvX^mY%WKI#;GzB-Lbv>0GW)f>L#Nljoab8OmRygG|C~f; zf0FnQ+ws%Z*NI$wj=i~kW_D5hmfVm(UC_S--?pKiTR3++%O3KlCH?G2BOZUNQV6;aD;JY@I(_vy8UHJNus_EW8A;%T@gT zqtRQk&aLEK2X+l1(iOr5Kc>T``?EJBZ^?NRo!kk+Sq^;Nj37+~{W0p&LRyP772u}o zU)j&3%-xsxvlm3bBW1owI9?3DLio~R_*KG}7sEE;rN!_YgcHT^TZESt!|xF8Ox%)7 zhHl9%=iRjyxphjFL% z&8$uB&i;DBdiTK5Yi;gWvAq^Ju#)y<$|;09c)!Aq6yxR?{7BON>BL2cCzD_4>La4v z&i>PU{%jw#sWs$q<{^eQ_p!L^-RyAo%m=YwD4%lc4AcJcU~pw&$HF{yAM%FYX%6K6 zo;uzQ4}}fK_0P|Jc3LyYXRGc+i!mN+nzMt28%QX1VQ@JVTOx4!bT`2# zrO{mlpOi*-7kpA0-DmLeX$)JoGq+YVM;av>OXgoSw0=)W@9TY)wRma0=VeYnE|IUU zpma7MWW{(VJ4br+YNZioAB?@)MIsI^5<{HY0DN2tMr z|10)Q@WoZ|%az0j_Vsz;L*KFL?uC7C zKTy_|*NCeepxmM|dW-2<7rNtf0Yw6}ab<7WA*7bXbtm}V(^G!_7!d^;mZRP(K{}4!N=3h@(|FwiW`OCIS^o#t4-Z|+PeNDy(QiOlK zB^$1*p!1Zs-b(sKOZrYa*H2O@-2&cQq}BRKX)V%1>&WL1A&YT_ma@@z`aPmil@EQC zmtRl4^1BrMC(2Qu{3CUHmF|$Xy09G5))FjgC%T7^^l55}z@)_(pDLU6st8 zDxHCJn5->)BOh{x;P)|v5B1T|biv2@?K!PE@FSOh7n&)IUGd~ZwgMhyKx1WbR+EoT;n>L*XILz_0hc{hZRY zJ?z+|-%VIBy~uMn&sTW9$n#a6ukf^acJf@p^9G(5@YI|Z=P8^Dx48zbA?IW7f14jX zdM@P~;an`7>pz7K<|7{TIiB_@&XX_)}emk5t>X14U+RKZ<6;<*+0RBS{SaVl%#)6h$t zPMiJUp%UI4XtA7%27I65w{#9XPIvxj4mY_Y!P8LhuwI2;Hb9T=en(ikYNO>5N4`$w zPt_;ijIJMVV_;TSuXBfF1?WMvJBxansneIhu7G;a?CL~@{a*jwZkq4+@Ah#|l6$|~ zx8N6r`?`h!L-Z8gpBBw7hu4ZP_e`_w9*<#n(ns3ckZ&;qJThlWFBmS_;KHYZHCjt1 zMblB%MXNISy6D$^Db1uW&JjV;+%n4A%D!#&QH8Wh$K0FVx@X_pDFc7O!U5$e?NZW0 zkLiEqsrbL~Tn?SdUPa+M=-1OIzmsQ__iN$rMH;NTA=C+2g)>VJP@mc(*kr?TF?sb3 zdhwFi<=aad1aD7jSl`;7{scyZ0sR2iBI|o3b2u&BmemCbwU1$v2@JnAL(Wclt$s zBn|Ff>Ie&P^kyLUTWJ^*iDug7h=h7Wxo$-ocPF zp7yJ5t!q?959=E7wPB<;hZc2==&+=N5bOm#=+B%H!2CGv9s!>2hF*lj+y0Cm$kOaoA2lNj7(9fsNpan+qiPKIlw6C=PZp4sfqBi|;Ucsjy zWobXNw3q49TJikbep-u`Xl-@Ih_3EmaK%Sy?LUC!AX+0G@@4u+-lw<+vz*rU@J_VG z9{m0@h(7jShy0E^TI;koQm_e_ESms)NQKZ34M7*xch@#&$Bo;Zv&gS@H0v2prRVT` zacI%MBzv?fTXq~3kyJXVG}@yiolBFPiyUkmkv$u_$1ixs#1FgZ{SUh(D;`0(Fdp6_ zt}}&8kX`WK)o&zjN56c8>w_!69=O`WJmZd?*GOv^E3u(K&Sh_Za>(QE^{d?9@NL>K zZ03(XvrtYkT?OgBI>eLRiv5+!_E9$TJ?F^}F8k@fQ}*M0Tgdusisip>yQE4fLA6va+QU)c&A3 zaw6kg_h(s7c{yInnL)lNbfddfrCVjL{vFTXsZ8a6Og0ro7*zh>D^IjR`vyA8@(l2< zG%n!*!9>}&EZ>%cBkdoOZ|{<_Z?E!A_pVGn#4cqbJkJNulONM4Y5w|yKmPjci(@k; zpXf2Z{gi3^+moiTg#R-BZT!E&|04eF{O{u5Jgqp+OTLa6Pa|ZP#yDAok9yZWq1fJ^ zQoiQKDDQ>85*{SGh)yc_Ht{guL?@Me3mxX$_XIP(?kC3KRab*s_FA}8H2co5O}Tfb zZ^~6#Hyhd~amOZMFR$1T7M@mu;a1)~E1&sASbK;+Ru*4NT=S=B58QU$PxoX+=BJ&XA^u`Irj z_^7h@xx^nMua~^|g6ayC;HS;#$_Ji=XWk8rebc}NFbY1wrS#7#{bBC!n+Ooo`A7NR zA-hH3d=dMB`xT}P_gRGfc(wes?pXB?Yv^0h^dG4!NpnJUI_WcUl5w~X`6imJ0T+47d6sfsEGzph z-c5(kY~{V$-%EM2d(gSf5{+nF{f=}~Nq1{8U8(Q&?Pb1cP2^*&YK~gwmhmvQnUurY zQ}zElX(SJ7zkbPK%6OXZ&Acy_`vmca%KAsJ$#?!0DksUka>afzur`2O1Q*s|RCkfXc*bcf+ce1eC+KKmWF4B8XA@yvGucS**UooOn44tb8$ zd(!DXw7{f>{X8cya*}&5l`*NC`vAJRv$i|Gp7fe`;`G;Yo$ZDmuXX+Q9W?GjYe*LX zr*YD%?o!)@(-nN1S2kySgLt$o-cJ1FqThPi^4?L#qrbwpI>y4X;=5YHON-%Z!j~4q z0m2D*ulVpn{xSaN@IQtB#r!|Z|BL*u;IB02@{fJmW1PkFGXCa9 zAKN=u4uprv?oYCypMA7bzm4r3dWH8lor~`=_JQ#!Y~3UMOl$UU@Kvqju(L^j03Y@h z*K~hE=ZKt`)%bpoG~23cvO(z5NIuv<$~}X)#FhKD@}B(t{=%ATvuwq;|2w?5l-_u- z-*VGyJ!1s7@J%v~Y=kc-tZ}6~BNR81$(+7j%zMi{H>Y#W9l5O|YqDmnOSW^a&$Yvq zt$oK~#$DKC-Nk(?8<^`BNMEyE{0bYxx}9n#aG-xl%T6>X7_5|RWzeyv(%q`FZ2wWP z-oU$27JHJwCSE8TJ7jErzkR3aih3HhLf0P#I07r}xp8#Jb$c z*2bLfbJN~%<(L)rJl2J7Uvkf;bO^Piy+^nKM}ETwZ}YQfQnv0B*1aP0ET!k}oh0`N zgHwZj1cSS(M^S#@%GHKp$&PzLcI0uX7x1BJ8`j#F(1>E2qB`fNKMme$pe@~}D_H28 zbcKPsiMh_bo7l9yYOCmAh2WrV$Ebg(zmoRI-n$~6q|Ws@Pol{-5{0^DKQ7x6Bed3q zQD;eI4=MOY&|j==pkMaUqv8kddBE*1UXj5>$KL3j?pXvQ%6+VyUv&L)b0z^f&-Ggz zif+u+f}cQawjF5d1YYj3(!GwN(KvUXz>^P^sab!TlB>C!VgDVhUwVGu+x3$@#{Yqz zzB|G5v3v|Z^btPxD|}d$_*gmrtHM6Vg!hRD9xmUGvV6ve`_2r_E8O8G-s$P1O^g+f z&0Z;G$ZuT@eKIWC{d=E<&o#<^u$Vujdl||9adjgMn;p zP}c7KJfHp*&+jbHXCzPhIG8<$f%)okm=DQol+87V%ln10yydVeUpcOgVta*W4{a6B z7ni|Yp0_-o`uT8uG^Z>tdY6+D^l_-SJL8GMmtx{`g)_ab?Km=BLEo|<4c|bwr}^uA z*MFyhUJfZCjlBu;mm8KXo%ZU|_dvU{F<02rWPAOg0^c{`uWvrbH|o+i2C%DN(LJ81 z6tjBnhle>=={k+VT7&{Ff|5ePC8&q1-!1kkM#D^g&89s;aRx5=^B-f9JsCM6RD&p)4m+#4r~J!cwYe? zYz%HF!Z`sr-$tIDjNZ)u*<|KN$fpah(7NLG{rd!xZ?}L4U-cID3!2a?jB)o4TsuR) zJ;XQF{n%mZ2Itvo@O%U`t$TMr)y0@bw-`XjC_UcXB3=TnzHw!~bl(eY&n5@Y&7%Lw z?SChIVsiULbIP64$L+VH?c4WylzU;$)EMS&n3>W$mY+Y64s0AcFmo^K_Bg&Ln5R9d z0{wUrHg(8%SV32MGJY}c0Vk){N*=mB_r9xRo{v2@^wc5U?vm`Ce3zb3eE)Wrp13cY zcCM$L(Exj*&`&`p22JBb1Bn$oB4fMeJo(ocif$~HxFa_aysb7@+e5EAD`WJ)n~WPW zRkKp*KZ@ok4|_Un(C$D-$30)@FkKt9yU@$h4^`~ngxX6sl-P?&FWMe*X~wwgQKu4m zMP5ojO<8C$>{0C1R-rf1o}tf3_L{~G=&X~r(){t41sc~Fz%Y65@wLF+^{7+jP1>5X zr56t+HNQmNwn@GN-t0qzn=-m9Q0l45?ws$=iLKZ%73O2ZXyT5m?u_VP^B+E4 zLIqpSV_mrAQ%v)}=CKjXg8{-OVVw)nxC=Fg9LYpO2QADdr)!_uy-#3E)8BwQkxEO( zsp?s6S8`TY^M4=|<;lKOw7F0I{XO8`NQzf1&c3{F-{u4U79{s|1tvo$L@OYg)Z#2VNsfE2SdQ`s601`Nu;|R>MCRX<57BASw`QcM*YXwbKwm@t&^V8g zusr*Hv56mP-JpKe`OQ=RP3LQF&AtESbK!Nd^ia{X3BO99U)4F!L??Yv^pTc?cP3~* z|I2|}-z)IhW5f)vb!BI6l=6|*q+GS*Y3ld$)S9ov6IK5OWFi;=sh+7ZRi^J0j zFvNi~UZ~%zbaDALPUg-czje_^>)Twcubc;KY!~JP_YQ@RjA6IEO&Y_CT%E8HQXA&u z2f1*bNMo2iE99y3vgnkw_fqEv7PU*f)3C6`P*SHyR!euEvtSynmNb z-yqW9k2N!tG|hZ}mUa35b6q_K@MFtOJA6sLPY!06Yp)6Vh$K66$xU;!OTqt#-(}p9 zE=gMh`p(|6c%zSSJ>Mtue3$tozCT0O4N#Tlsf}*yrT` z*BPqF?#jynmJN@5DNDZ}EJO|NA}cixH3Vuc!Yf@}JEA4&u#m@|*a0 z_|+~^&CC*e&&>8D09ro7OE=xHr|r!n`^Y{ZCLe9v?k21U zfs1cY|8nH=xsD?%w#OezQ(<2Iu`k^a1Y_4-gl9l;SnSMLVTHXi zS$qWXVP)}A#7C6HE#jlf;`PL>viL;e^=0wN#3z=;Bg93wC3vP2kCfufaVIlpOg9Q` zeQV@LaU44gj^~!)cupCPXMYTi#Scn2{ulan2{c%c4R7l=ighnN>gmVsHg|1VoONApd0CvbRxVkJ8$JCsjA5NkEv=bKW9S6IqqC>fQ(8Yn%KG;> z!BZGF>4uN#Uvv|0|Jsb9+%MS6E5oh&cV1aseHkl@t1lOo#nqP@ckGXI&p=Vn&$#qN z7;CXQ?o~B&KAt|Fo>))+FwSxqu@2Vv>vLxg#wSGtnTB%?x|c}h2&d!K#zSy!sf|UP zt4~TeN8fc2&fje~80YVm#f9_t%i_ZMU(4e7IOI;+1NlS5eWf^kGR!FSNl9j4Zgcrs zRPY|sC#RP6$;pDZ*eCSge!j*Wx}UF&B#rp#aOT4#eR4z90s7V*b!*GwKH@!P@c{8# z%i=Y}?eta)RSQP0bEvG4TQ+?s52V^7}K*VDg^ z@a%@3{F&jNyup3Lvs!rSu48cPZ$fsC-JCJ7=^18oH&~Rj%fWib|86HbI>T7b{}ukz z5k_R&C%O760`x-}qhp8@`Lb)li#{JB0nNP0>@W+Z)7D{KH{!x4jCzQ+h#}wz><9`O=$e~5vRV7{x`5^WG(kDXaCo2Ko7t^-lfFfA%4^5LR|N|zexN>&QIyP z?wEg;_zj$;TJtvV;y2rC{<10Gb>pV|joV+(U*6N5JFTxf7m0VH$1cEI1-#e#jI8b> z)ESElcn(VtW(>{&o+X4ssqWk&{zeKpmv!ed{zg;x??+jzL7S3q^{%Y|R@SXCc!rs@ zn~m;Vau`0;jJAx{xOx}mo#E@S1L$l0iB5d?$Y)(DJ(4?(lE!Lm&^a4Tc#Q69zhGsi zs^&aw1|M|Ba5icj?-U+KcziKDp74ZXcmm;Li{WDlPb!8d5k9UMK92D5#qjZjrxe3e z2u~}9rx8A(7(RjUNyYFgd_c&vTeNwI0jkr;VpOvi65c2+>sQ!Oo?f2j82+a+r-r#h9zB&2T#>ifk2S<&gJT?vc(g1Y zB_1z}$B8G);z{DEvUrMkUs=45xLp>viR0a2e|<*q`uxz-1&`|IJuv8<|Fn<3`_y65 zRU9T=_%P`z50h^6VbXbA-1Owf9!LFU@EB!nFlfWIiSC?iRaP@UpUjvtcc2dd$A*>4 zE=g?64IQ1t_ZfG+$G8W*=X%@VyghdZ*|@~C`@%=&YvQZzzJ?L`8XF&M*xS}1=Oo#~ zNa7Pb8Eww^m^+jBGOI^6oT)pz!#W#q2lL;Z+-J@{Iq$0Uj=0`?8Z6EfOvQFr>CkUB zjNYFv$h*GqXwouf$*b}_?mOb5f$+C^Mx1KwqF-PvT;2n%z}FJMuRYJDv_ZV%TH2*{ zz&|q;4eRn%jr<$p&fu1H`C#M4P8D;5H%z#_p1ai7<*T{ZygGOp_PSGXZ*avUQPqwktBOn#%kLWUu)NLZcTKcF;R={UscQPdC`J_ zEL3YiORdE5&t)`n=R13mBinAL|HnIC?3vX+LrHIjk8zUtHj+#<3!JNe=TaVb+}b{9 zO?2gH#2yZMn8i1jo`MFn!#O6}W(7Cqjm`h%jBVJMSKlAgvN1ogbz|N~S(Dl}=KbL2 zc;e$4H|EdeZu{}PJGOlz{Q9+g1^62i-k5);J>pDgcrEW~o9;~J{inmP<;T+R^}L(Z zewkwjuXN7c@cI0RV0ZpYt?xSXHy@p!9sa7bV8hY*S=@8KFnDzS;>IhT24uWo+r^F@ zCfxD`XUXQz=P%*A$}$?h===aWyMS`;Yx#;Zq^&D|A9>zz(|*yJ)IP!SH}1+G+jyx{ z5#E(=0L}<-Jl&@8bEy+-sdqXWzXJTnI346^3Qu<$S}((vd%RPHymu_}=BkFPpvz^> znaF-`k~Y{r&Y4Z!W5C6C8m=bYB~CxzlkK0Uo^j3(!*QnqTjOL~+}Yg9SZz4T$+b^& zx*9)Ezf5z!L*3C0z0Q5XYp_j+{#*Xb@wA-i%xpN(S&e=BGi{v5CVdlW&6Y0uwku!N z+LaH|wn6P(`Py(-eiHaSz5$$r|0yjSDR-)K4EXnA^FEPxBZ3?AV|g#UN3nGl?wcD= za>li8%m-U9a#Af*+&(kgr#cO!5l&{ep6I0Llj8`_0)|O#mpH!mlbn0P3C9n9(oh>|&=HT-N~an6{1i3BaW?g+KLquzf6a zG1i#`o|M0#G452shfg9N(+xn;df1v2FFhwal5& zQs~1pvQ|_0BxglK#A#?B&p4RoOllqP_Sc#8)pwx5F^%v5%AQSm>JKkCn8mls#uJ^- z(01`5jdd?L_krWe#;$yzwJSfEc7%dm$YmRI;)&viE-z$0Uv6w1&VF;r@6eFlJagG$P~E2HBr`8m2ivA)Rc~l_t;-%x@)cC3Pro1$ipT zuRLzvvV1=(%U4Oh`^i^P%;zUx#mD5krz~Fu`R*p4znITQKL5w$yR9srpL{*!^A+=X z)wYkxx27zgk9?iv^A_`Y$mji-eAkub^OEmc@_CB+O!9d?Cf}81`8?!XNVA!PJ^fJi8hTDcJJ^?_PkcuRg+WMi=Haj>QvaWYe4=0rlHGM zXNEq|l^KehKJ=ZNGVH~q-SrQ0#?ZAlWQI;g#z7C|WsaYW{BMLd<}!cXw|zM}(aR6n zmx;3{6DqTbsHeWrFptrTE~GJ0 zbH?glPWV~V-fzq}s&~iFI<|j(#+rnK!ZwCAdy2Wy4-dB6HAk+`SF}mKd?{bqZZThy4_V6!UhKrfzoDL&@;>f_7z1w_ z9bTN*I^SZhy}0G&{AtFrtk(WB8(+?kh5wIjc$x7z4%ta-p4;;l{N5LQfjUlfthP_( z@1agl_~rbnHqH_8zLM|$_Vw`Rsm|EO3CtVh=Uu$@Q@}UDspMM)-|i#5mpLKT@~M1h zi^X2@3wgitkmlls1^HUe;|J`UGMZy;>Zxd(;8c-U^YV8{-`8+Ha7}ZbX#G}xB`^fZ zuX4wdF3C5^HY-}bMcXDg(e_W}XDc7+?uECj%<8uFdGW}~mSdbjlsg9gYy>rjPD7>> zuE#rZzN?(L^cu{QwY)!*cS&%q`ORv)E$^j`ec)VWRgh*dwzMIN@0^o>u&G2QNxiT7d2eGcNFlw*!4Q_ zea(4cV3P~quiIbGPyFC`XAkec&wROC@m-Uh@3(ycIb^b9l7H~7)0|&^uqi)ybAxk~ z@~YZJ*UOymx4fROhi<;tc(wE0w%79` zHtfiMuO;sIDf7q=*5y|tbKFx+e|3Em*k&+~f5q9<_p<0|OID+mXMoeTvhJ zTy*3>N4|3Ny8IEl)-hI2aw;h2Q`^_&TiTa9!G`6|oYt>1-+mn$UFOVYO!aSg)X8ne zw)Za1jQp^{$?SU6nRmr0PMUgmP5P7bOzTuf{)EOMPk52rv<7*CIe9j9rP~+}$Q{qn zj@if_-o_K0X42Oqm$>H%+dA?`hj-*F8+PPJw|C?})wm-+xUnODL@W4g=*S1!*X4&b z?8z^sJqJlN)S z`Fk6`fE>FgKfC1`r=tC8r>+&5o^m>ob%wR?$d72*kw3C!Pd?ke%()L3J6pc!3@!jj=UfEE^7FyE4y`uS+g~?!@PFEKjlB0e|+WT&40P{&reRNn{#Here{|3gWsKf;q~v#IPrz?XP*Da z-Lp1->3dDHr=8e5<+m@+*!oh(%!D_zW5~CE-{dj=*rfH_^QV6E3*S!t*Nm|4~;Soo88x z4kq2j@I^!GThc%C^+%nHp--hZSkp?rt)q`?Np}R_wT_+H&b-5S(eq4rWe|MM2BsrO z^C{9?1ne`ZQ)y;G<4xfc;PLv#m}*>?mo8vt3$k$IR444d>tMcEmv17jHQ~rc;$eKO z&@VpT&uoM*w@h*27o0oi{)zPqYhvIsp*ue`ZnUk-e;3>xO+OCrT9=pHUfD)pZ&;T< zlfE0a9p8hy;M03gaRQC&@^j!L)dQ!||Lf3=PjQZ8sq@^j%!8b5>R`>OUm`I^n( z5PV+Lb{%DR21fJ2*-LIf8;r*A}A9c=k@ifCRemcns z@qIA)Ysvc@{9rY8UIbi2cpn58wR~$44*7o32h*L(@HfeS5-|*iOv`JUiE?Aga7su9Y1)_LbvA(oaB4~I4hy!V>Wz~^w&7zhn2L$Y`e;- z*szCn%T(w2y(c=CcU|ZF>VuP=x4_r2n@LOG|LTKNSnt5gs*iP!+`J=SK^-H(@h|Us z)cJ1LbmxuMt6e>Y`0pFRtDK$C=Q)k1I8AqL%0IpNQDx)!=&v_<9z+Q~=jZ)_qmzV0NAQC&og=85V|D+&Bq+ z&QzC0O1dt zus?8Md_P|ELpFklhwvvHJ-)DSr}HxSMef($Df0Dx`y!n)Fp#so(URQ_vL}0&vXdUi zKFQr4GdnJb?mmf~1isKc@FV#|^GQ#``4Y*6JFtU%g8q1R_ zM_^z0FFW_WExSXVOWaZYAbnX#qwn%xa30@fe<)p*!TDb4`bzp;tT3K86N@w4W)qej zq3n|mw;%HT*9!X~!?-I;HhO`%+^=L|hZc>}rcM1jM{}mNeQw5^N~O=e5WN#N16uD~ z%ie>}Skte2f=>jFSm@5&QBQDwrbg?W1K+0d&5Wn8FTz$VzNY`v#AVy)V^2k8Xf1=y z$aZsJZl*KZojLcyb23UR+aleyc{J%OO#EoEx1jXcwxlU9&0RCwN1$hoCGX75>0y0> zeIf=0dw*KHCbJBiJ3r^hw1@Hb;5Dv&zxE}yzRDAya8$Q@hD`ezPZ6*AVXvd_A>#A6 zpZPSNrh%Vbt$TjT*=p847Vp@*$wYWpr8N<8gEYRsJmdte!oHXpV_%8)nXXOw3}Y>Y|+?3D#R(m_pNVH(@r*b;)N!pRqHiC23gtT{}g^fJr{2m-?EvCDaPD`@B1K;Qn zWXl_t9ggs_?P@byiL8Hi5ZXrH>gwyEajjPa;jxZvOwWe)rHhn4T6b#HP+nv*d#OWu z`h(Q>YwF=%uAC9SBUc|&d(Y3#p&uqE!CeY?w6=`m+c&Z?*J@kByTiia%6g{53sSBDvKU>XvKX8A4q(IdRSo(3X2EjJNd^ZmKNo-@#u> zcm!|mxfS+K7SRs+bV$r9^yN3ycgFQ^bPh9l-tq=(cY6ta;bWcO{`r-eyIJd*p(O91 zi8yxC=u0b%MQL=q+v~xN_Jrp2&?amzBeY>6fJ75qY#{-(wms z9vXHCe_gEm8O!K3r2ml3Aa`Ov<-_M;1%C0_$K9?zQ9CrYq|;DXIt}%!Nm%|Sc9TxH z^3vz!<4a@ee>46ne!9h3@WW*0QpVmw#-U)ooUnL;;>Ir@b%evy2XUtir&7=NiK*_~0Ap`3V=wf>P5B{=KgP|#fBH@+_%Z0as&B)c`u$|a*N6SD z&!pSmn^B1W;PFD-7ky{`w$Ur!-toA2rG7{H&aXZ0p^Y=};lS^m8LGR0&n52OE(y1v zMq6DwNydxD>ty;$eC=WNV?33OM&YZ_i)igu_7JO*%p0w9Gv}T&JF_I-ox9yU)^_;= zbI97^>>V&i*`jgVue}x{>I~`RVVI46r((e1<=;w>)Cyyyis_8mmqLG~+BgYg^O!x?kYqw(3aXsS|ebm_Mv zr!ns8+C1HFX$;J>*u$*Ud9j%6kM~;1HT2IS`~!5^fkeyx@;L7nG+X9ogr{>yH)phu zdj~M~(GJaV(vy9QxCi*Ky&7=ocLV9EPic*4Pww2>vobf5W@l}8Mtz_>UBs+cDfZAK5y!DSHXBk1Yy);(}M=x_uLvUNrS%h!u4>NR2|75}*13!%X#c#0n9dPTT|AhOm zQkUR6P=_&~Is-kav}jvC&sCP@-g(f5_?7sfcvdrUm&byC!IXqwXzmoRK@J!$9PrHP zELdk;W9RzZwWOIG#V&_$f!t}MjWM_PgA<)I*(;u*G>o4#_ik*Dhv*yn>?mko_0qTL zOGtOAja&k+97&qfz}JN53*%B}JLNx!{q60{qsTJM2VZ0CU20}~zBR#~@Gsq&_1Dzf z=X^Pp?KyvfeRnLCU4Qj4_T)uo)}OeQaj`hdS()u;RimGeaUak~e8R-e%gFbAHNJrL zuVJrH`=vF^TROL5j%0svBr;fd6}rY%nLje$R$jEiersW&OzrJsXBM8QI zCts)qAH3jk5OJLgaO+~u8^oNdzsh%I#V}>F-&v}|l>Aus&ZJ&X@m;}J4C_$r7ixed z2Q0}eZ?cy~yEER4R@--LoTHOWUesxOFIr`*UhS8<_2{fcQ4VdY?)`W7Y(-nhAz#0V zZVmgT^bf(e`skcrt#x_(y~KZl|2y@?1n{OYX{6YhKJl+$LBB_OveL=J+w1^(bouL#Lo0&uKFX;_mwf^8k_`}b*@x<~uY7#p+wXl~ z8a49g$NHe$o~VL#z$?Y`#+TzWL2|RV2i{)vHxuQIv3%C)?1^dh^!vE;1e@dV)}iqB z(6^xZ`B~-<#>`Ny5rU5~9+ISC@(3TN}xcvhC5BmF)O4)*0An z+wu!;9IG+P8OdRZR!| zNk8%SKD+4)VyFly3ex z@+jjET)5}o9>d3`e#<`1%KM#z&x~kXUdg#PkIuctQt3M?HepxKyoXO?Z%VwVVDlHn z=I;(@x0A9{t2(=}YOB@xAo^UwJQiL1`+YEBn8sbe?MD_re(kt%r37;-s7AW-dq+>eksh zBf2X0Inw$}_%Zg;O0W4)_|$s%0_rx*b<8i_|ChD*fsd-X^Zw7BnS{wCz<^-sKxNRV zG0=8wd0HA#CK6i=7zYcLQnrmP+fvH5VM}*iRv#x2{zb3>Q7}RoE8W^i+o)LCRNJ7o zj}7WlYg;$9Pj6=X<{A`|o@Y z`$ynGqsRsLo@qS3PMJ~ouh4@Jmy%uZP2`>a@%h?|Ze`@_zPu%S!;y4W@^i&y>8#{p z$;1;V%Q2bU@8PR|4_|%g8praz3Rl5g>={%^^(3tI2VBS&Q86=_`KK9ZYGKec}>l4cHc zu}?m;H$NjqUBJ7EHq4IiwQY~MQZlvVvKc90n%I_)Q;vLFQ}FR>PYZIa z&gr{{dSojW9>jr9g_Yw*$b|7sZb2G;ideXTHscCbb(GhX^yE#($NDUXGqNq;2;Tbf z4XLZE!npgMV4ol`k-R8=M)IO$W%LexO-cHMEL}&R^e)Kr<2;`crLEK}J%@Nj;1E%p zojCh(z$LX+>&<-XPAYGPeMI0O{mcD&YGkEOFKOuLm2rLVbiH0ROzI-doc11i2j za=B-2sY!djFLwY!_gZFZeC(7O@x z*Ei{>#_2lt3eQV0&uOda=gd+1J{#Fu2OK?4uv+W`@Rn zkMm$zza$5}Om9Zt%1k(m&kVDkMP6ntYh%8R+Lxalh5!0kC>LjrI;kXMwXY!BFaA@w zHjj1980a1I;$~tcrdoI9E6gUwCo^;ed@^axW34~lvmf!SExIdj>T7ag;JzTaD?cT* z3%!KnrV_jI$+m6z4NlVC9;kH7{Oqz;>dyS8P|Ldz?b;Qraz%qg2kxbR8x|^djplJI zSC=NX47jDUY`%s5&+g|&=6K^QCuEGb#kLhCe+oW|_t{Aq6(;GbyiI}^|5|soj#m-~ zAkn`!e-*lpJq?rxUzg-es(Y<&5uXZl>WcGwk4<~J#oem69zW9Q9zQlW(%Zs$M7dVs z2fUB?&;?!FvR%-aF6`FOrlI4|1jXUr1|KYbtITILMtYw&kqgmLK2fst1^!z)J{<5FUdzU=#S*pj$@)j>++E#-{5;t zrYGpJ2CLxhEbmL-B%7He=i?$fjv{Y#X|zB>!QZ*G_bT|mjeG=_vSB{ja)w} z08OEd(1%IjcB)_Wby5TPC-RHYooB@U6=UxS{CX$Mjvb|BcpGO8c_4E-&`zR-F3;{b;)rnhZ^i+?YFko5pIB;^cfyacwG~ zuY$Q?8D=dJJf)WvFBCB!xsUx$gIe3QZmL}Img3vO;7p=l^kQdT+UrL|Z zrw1JD`M!2sG>%$dw2s%X#z@8%>@$@0Yt};Xls9}XoxO6j7r#$SKk4ik&r8f^jlPmSfYQ$$OU%z|j>*P!7y8$= z=wZG zopPmniFB#G-zuC}L*D2&3cu6yG_+FRCLSn+m`9NmdDNfi*9vQb6}e1w13XKID?4K_ z>FKWmiC*+zvNI&zK%(8 zZCe@d?t+a$N85vKne$jHIQM?z#FW`FF`a0S(#MHSW=CG}qi!Vzj9^k_K9fze9tFA3 zednQv7A7_H!-L0;f?zQkIE*rl?wj*^-=d%9+s*m$CYhBjI}V@xWt7w5R`jz5N4I9RA5ZI9!8-i8pbEw>cxbsI-GWE%${S??Tg-5`roJxcRiT4!zAN!AMD+Abs>z3|Rq zel%Hmi+ByDv#==Sitk&^ zB-6S8{}WNn+QeCO;p}*D`G53cuWFBKG9f1@x8BEMxrnZPmRM)4y9I$K@*r(~8Nldhm2mhYhM2z^ld)kdxL zhJHyuTbU;Qux&pv+DV&KSH4d0pnnniq5i2K!kZtS)tB&}=!@bK8QQ-kfezZtbF1Q4 zyTLg9Fzeo0zuHFji!s3l%D4<2QNJ{H^i4Wajm@9z7yYsQ>N?XejnBw_b^TxTYeRy4 zVDwA6>UD9^ra#>;Y>&~Z zJiNLF_!G|)T892?;O(??E9>pDLB~A%_}1w!|1q{iS7?vC_a0j;9rNBBvpgFhkK`MZX?KN>5$2iU?Ap_k`S=#O z=qd3-LGIT?nM<^79&_Ng&?n`gKHe|Y|08NAmD~2IUBn8D0m5OmS7~U$;Jh}?|GV>l zfHpuAncwKGC|_l(j!|*yr;Z%um%sZp!+?HBQ6L*{FR4<5)pOQko?Ba6w3G4K64_N?EIB2Piw#Y2Tg0ID<12KKJWQ0JU>RdZ`k|pX41>e*6bm46Y`OfjJ1OF z_^p|o(ru)*rlt5lkAL~vEa82W|Jy37av^YVH|>?L$|9cCanAZ|7aT^Hlq4M`t@~E) z!~VVGGsAe)`v0Rfw!l#E6kMAGQv*z=dN56rUO{@c%X(_z*_GF~4rMgif5lOg{m}#$ z_+`%Gzm{@kkE+7vt@_G#z9~V|Sr=nJBhM~G*IL%coFByQh5wuEQBO8NKd{j~g-+W>Ql9puzG2Uz4!*ndbU^kq>>vEM(HHAi5j~o}h5LXRmzxk} z9ul`C7}fkGo)Yks4Hh4Q$o;^$VZLB13`nkpZuaS&ttSqyQ;zti{^3{c85POlS6akR z;YSghK|I|B)T{Xx;H+cuB*fr|XszczRsvo}{O>LSUj69M%08(f{7n@L^B);cjir22 zHJ&HPFF5EtjKla#sQ;3QTOz$<~OhUVi^q1=NYg8ru;_O^L}#OC! zjA<%OJ`lyH z+XGrRWFPi?do-_@W5d=51N?U4^0y>^LTei`0Pi%G@M_s`+b;CiA08UTIo`4<$Tvvq zhImTP=jR5kr#(ss7W&_$?kY%+1&{W|H)9#MQRc>JUOZ*|u7`h>M zquNQGT94GWHD83siEq!_`V#A~!-FgRj6H1})wV;pFhty}o`Bn$)qD+7zw(EZj~2q? z?#h4Q!X}L)Yrg4ghle)t4Sd(`qK_Q@eUp#tNx_0xAju8+?YCU)GAH|PPSQX8dQ1{o z0$auS+RRWZ&jQmr@aNf^e*ybt*Xj%1z-su1xNvV*QSA=E$BXuv`b{3rfrp&C{=BId z&i%E;x$Pgn)K!0i+A}BE(}#Zora^E>b4TYQ0%sf3v+J+puIzVeOMrR?B6k)Qr@%Pi zXFYiSraI5y`Pp>}|Aarno%YkG;n+BH-Z6dS(eVjS_OITNf93|(KF%s0#kg14G5_Mw z`@y~2W}2LI1i?g7@*_C(Va4(8!*nvNxuJ4HE^X4>q5O+|{PX4seM)e?V(KfzG~YoU z;?gAdPIMOTd|NQFf#V*}Q$Hh~kJF7-_F0pHPe}q(e5K674e+L%_r@61;d7xi!f+0l z=$?G~tvw(n*sig#eJYU|(wc7)=-8phx6n6_-Y>NJbc^@QF=Ot)KEpfw0LydpZsuKi zZa#|fMDPCqZcJjV)HjWl=A&Y+pH7+}Gz)kv&h-FC@iV>fLAET`gEVC==b3mo^mpvr zRbAWj@{_dif;K>t2UfI6m)?%wy!X9ygraLI=L;js@Y>Z*8N2fT$LH*aceMjYb*Wv)FA|6Eh}ayHj~>KEU#HLm{~hW-`&ybm~C0?!d2!OMUY zf0CE^C;BN~=6U)jcnjAbqpSzG@1kt27d~D6$x+Hbz;nsu{} zo~IBB>Ue%3?UFy5{>x`x{VfW&!>qsM^lI87e(YD%_gP=6vhNV<;o!?W3rxp9()TBn zjCV=B$GctHK%bl8x0dcL2H3|FVxN!JNX@7F>Hl+lTmEj}?@tdNA+2@>sKWAE(@Dlxf)a6JT$agPknM{-mw6U+@*&N5Z)C&%pR^C|fZ8(jWPL?VtJndfKe- zTYi6f`0R229Al++$7$Dc%9n25+aKc5E#^Sq{h!#Db$>yhlhBBWcW&ue`Jw89_mN+y z__3{zdiDsFAvz@bWPWj_<-_C`#2oEATD`9*-0uH{2jAo`dRv}@ce;?cDjGZS&~s^r z;M>H19k3L<9_KsxxbAmQ%##i4uQS%esud?%WVQwY-sc=JhA$-tSmhs_J=m4}%3TM^Evi}-7&84A+ zhfC_ibiS2+c5XAgWh}`4Lt^tmr)@k9a6<7u)Xy;EQS&p$oJ$6%U|#%OeDU$o_c4(Z>e7S@9EjaYRemTh;Mw~w?};cz4rIi_myXs zkuRxTcd@04FIy;EsO4#!=o?HfeX+b)(DoDEw=s@8i+2}z{pK6%Umw#m(HyO7v!Ii} zEhZVS*1||QoJ5alW9#lU_V-W?#0L=*2+CcJM2^#@n|?sQ}oeUr|WIne2V zFXscxab~>q59~KMBUknS8_~X-*{ioAKAANZe?Hc=Ky=}M@!xGHZ<*hB;P+oSeL5nU zRqK*$2jXL@UORn)7>y&~_#@xn{x>5LyU|3iex(-X;WQc zIF|r_4D_MneYz601`&{b$Jj+4oS#gwz=u z?MmTg3V#UdFYlGP2OI5O&ZX8yTSps>k<|MC32W_5Ws+9`Z{tZjZaoh{{TZq1B4Es;XZ)T)Tc9VPh5%#E1uIieZ@WxtxH5GjK&y;z#O;+Xp zjOQw^d@tLpXOmq#bT{kDgp_ZS#a635aGpK(qeGwN-R!7W#}Uey`4()cyJ=t9j{3k; zXY8mC^h2$%Plz^2w{b={1^CA0+>+W6$K*dZ+xa zI_AW!>@|_Ta%BE}}2!0U_WfY&Mjtzr0c*XFm7M`i4Pi}~EQ zm=F2!&$dnVE!Vz@c_T3WReQU&bVe`Rk%UHYbrc>otGPi{nZ3~__4i7c#KeOLn%eS9Dt6Y3H z?7ORZ_vDCj^_|vem30O0hDW^9eAT=u;~7)yP4*c1Lxi<&rVE^8&i= z0Q#FDl`Z`K8EM^%R!#TsUsN8_75F%Svz#g``H__%c*1E%WnJu zcK@sBu*#UgIX9#EM)%C^p(ytu&a_clK1JHsJdS6wQRrD^TW07V-pIc0A6&nzTWRmv<-nsh!z1^-zWWcgf4N_hEMz7j6yG^wBnUUW6{#5c&@QR2OXKmced@JTKi47b7wIcn^gJ> z@;t*h=)1q0tUc+TPFdf7ly|k*@AXdibtCR)jJTigkB{=G?`7F!WWNt`7RgBX#r=L? z$u}zhy0g9=O`q{eu`s*E|8^nmE5koL0{$c0Ji{+<_F3hPY)j&-w$%D4z_cfIlW z5PX~Vjo@d&`JPXl{i;x~e zI@G!&ALf26_u&+_BkrTz*R<`(S8+d;`-%ZB?&I874)P86)3_fs%r|{66svn)D27h$ zC{FC&Q9QqANAYcaJBn`~c%c{@e4#jb_=Vz>Q!f-Jb-qx%IlUu4GqWRK$@d58M+D!3 zXpciYR`$(dgBGrfH(b!u0M6qV9XnLIuJ4M{^PM*%YjgIxjoSGg0!8( zS~`W~D2P5W_|VeNd^A_pohUK3z&2*# zRz?0YY`yy__W7kepX$SMtn!SYpKtD?SI%#Iyck7ZqxCc5_;}{)qTU2^4~9kmo3qO= z(<6M_hx_|pvwBB#41>1)J}$n(w|}mlE+2n>rh4eVWVq{lhA&>CGR7QK@DRdJ^ppTuhP$3L*6-+Q9C~>VrgVN>~}n?V(iq`>h3wEn!c-4 zcH{^!(R=X~zwHH{K5Sp({#^ZFUN-Zc#nF-9o+N*We(Wa}MO|k{QRk#ZI#ny+Cy6~|P-myV zmwev$=p2wiozA%MdU*22+aI64d*A(|u9}WY)R^pn`1gCi@rV5j=iIyh_>Zr;>h|}J z*{?O!MNUt$&RPGCZ=XJKi2XE-PwvWhNzb-8x4`V0C|{Cfs1p0-CO0;k^{sPTaX}K_ zi`H%Vf8!hR(d9MzZLxXgVYF}2@EeC_uQOjTT~-1~<=QGEa4)Z+V3 zadmP}Ol|EoT>d_jn|TScCOVwWl_nQVw7Y@+cDI9P0T;U_cEKg&nN8ZhOSQYV=v}hi zoyWh4{G_;u_W^95Ysz`zd}p|t85d%BuHwDEHA`P8HtCy{FJf~f-SCs*UtWdJ(b~I; zW-05|JGmzw=z?FR994a?<`7(Vu(3cCEw84|0aIn%f(MNzfuYihx0@AuarUq zDdNrbmVSyq%{42Dt2~%uA9pXh>4jP8k*~&&q_MuY)Eet8-4|Jdz3*u85@LDYxAt#K z-{|{m;#+>H)ZEuwx`-Hyn~9IwNo>w7Yd=%Ewx_o=ue-N2qw{^GJBYdYJ<8vDstx*> zD&9f-%&)I)D?LDb#Ic=q#0|Wy^v+XjN)J+|>01pC9%UavI{P(Z2^!+RZRUB;sV|hi z)j6G*Y+ovETl(qJw`s%jwXc*mQ}4B%y`^UAQvUhW``MNFf{nPT zww_qc=)%EM6Z>iLzWTP(5b^I!{ZmB~`GJj}5SZESYL94!`4s#Z^)X*ed%GLeIWWYp zxo7G%*#Q1#hWM~y|5-TFSWFXBPdK!gbCT|h^_L9zIl+JL#IB~kqs1COJu22%G{mHx zc;7?gmab#&&DAr%e@(GhTDB1TV*I6;(!n za#h}2Ez99MC-!6F2L70~{P@4!mS^M8Tgs3eB!rETj#3&W8}ww!&RN;-gQN2OH1A_<1e}Y7ytg# z+^c=cr?!l2$H+E}tiQlIXl_pz7cj?DlLI;F_s6tKXF@D0e5BMa^?xEbSoNMxH}h`o z%RtvUPCi%*t#6zm_O=`I>RlII*Y8BH;c9=9x%~s_q_vli{f@aJIOD{?(=m;V`%yce zTA_dCZ#OjGRN4Uk9Rp8pYIx;&^#eJ3X&D!P*zjr#&sxw|EUg;f%^sEYxe&hS($k}F z`bpLJ&Yw$vDwwA(~!wVRxabJ?(B5tw`-IXg?sd)wSJ<`e50KtN`r8A)vgxg)yGY;SijV%XyIE=A=_ISN z2fBDh*@C_J$3?*3F%_`CjK}P;xzls5XC2-?apDDcWJ4R<-Q|pv{Kw=gZ$1s&NFPmd z|2OR}_&A_5ry>@oGDAJz;tb&v>Q_q^-=tyr#lmaEWJfZU?XIJ^Ev(zp6KS7`_MfO7 z<@oP2h=DT$-JglAW1ZGs%%skM95CoxRqj1wTe3@37J0&)V-wIGHjlrjth;T@F1-tJ zu8v~rSR6)&p*Wg`c(L-SRe9G&;0GyZddvLme>eud(u=>T_wqT>o~r}k?(xaOXZR1< z5sCSsGBnQ)(C1kf!KcKNIreD}tv{c=HSnwQDPDK!7I*z6>)cuI9g}ks$(;75IPam3 zYU4N1+v9QZEP{odv|&zK8?MF z%F7$!{kZbS&*#4c=ufk zj~!qSo7z|bT;xM5y8fiUFDXF%_!71#o-J`2VuAPux5CmAWB&TLziXWKozEt<_fqAk zj035?cCJ-i0bfB356vTI^(Mw)Q_*2>hly=sec-%;%ki7EV;3)t5uN93v7e5B=Yh!N zqG0-9Y%=-rBcTuKOIiNKM{{sh{p8{y`t!Ml$;D?9d-G4>cWKws=$!@IPyBKn{CI`8 z`2Dt&{Zj(x{7T3=~2zT7{G2t>1Pi zI-c>{!J5$Fik=~3W}6ylXCy=%XU?MZ{j#p%Sq*X5llWK3uclh(TSV4V2W@VS(q>{V zCW#-zym690JjQr2pEhNMyYfvEPHA6>a5WHb$)3Si_7FVm7^gqO9vj8zLN2HM_#aq* zAsF;QO9#QN8b>(FIaT}%2J$_%Fs9vQU;i3p(*QPc@fPX}GF(dlU$AH-K&-w)rKEhs z)PBwLNW0hm2DSgg_)wdtY7#%-+mGkQBaf(#Rl?_1+M_o0x4T-Kc5@EPp?>gP^P75h zg8PoiQi$C4WEZG0{f%S?-_a-s!r- zP3u`ZxDdS~8)W~|1Ei(*?G=thWlp>xUVd3IT(v-E5NSV0G6H;9<^y{z>^@HK9G}cH{(p0;dt0QtlMP2@hQQsV_GTJl zE3#Hu7&NdhH*+=^w1Iu3rT*qeExh|19xXLRdhZbIuWs&@pWYo$`*2S-_qJ#)=lz)S z9u2;2nW&howX9bYkj(xNT>>ft2 z4s>+zx}$lf{Wx_~L%CUT%0c$iTJ1!;3ztU*;iq;KUQD1?+aD>Fef-)+Gba7?kuoOm zUgL1MPcc5z**Iy*4ALo<;Plw_RxS}vNFJKO zyO(YMTeEfCBTweqZ2opDr?_^%-5pI%(y!Xx*uaqL}gjN zoIOW^>xGqI4^Ui!c)N{D@EUtVj7iUSqNA86X?K5WZ@xX*?%oAn zn+@%*%4}`LHqfRvSfACHcv9AiH_0az;9>{!af#Y+%h(*UPyY06*XKeNiibe{iS4f1 z+tdmjx)_`#rcfZo*$>3Y9My;}we^EpXMP8~JGyK54DDAd%Pv*$*E-+O#5$nM8;ba+ z4z$J5mn5KD7jL#Wu6?_bPZY~P9fuFW7tV=ajqJi%=!~_MUEnW0*#+4h9xP(>uP-V_ zkYtz1cfbS7c92r6`OMJ&`o`%Kn!|b)A^j9-?aixT&drB+3j$B!bKA2XKffvoFTq?8 zZ?p$q;b3B0{&Hx7=AxlZfy>vswGR02^Y!>%^r<}OrVdx-y%oORmXB^iYvU^)bxdff zV~+A4=D(N!avb+E&#&@Tw&q9;F%qkwCjp<&53B}uKA#`B96k;HQ@qp|=||x64+3A! z{R8mW55ng=vBZDj@9Bf(@9XH7`1@d+XwRJm_45rrpZ$g6??(Z*bMg4v|0h1b1|C0H zzYZQ$JpTAMczmt>;_(ke=UX0MFrD2-%u4FGrIm4yuXksqzyJB(ql6`1sAatBiLvuf{1 zzFzHq6JHM>Bfehix5Xo~ku#9Jb^2_cK3NY>A34L*H^R?oU9Vw$ok;qR^7Ov~wl9Oz zmCR?;zYcjPlY7?E9m%Gm0j}lqwchvlv(I0=f0X@xY3Bd5cK2EOW$_q3SMdbJ$BV}= z^YRt&_ga(0&mUrbX#EmDAGEyu&kN%3Ek8f-(e33qG;UbuI9R<`>Kc!CmtLXoHFWnL?_QDlaKZZDqH~B?UK5!Kn&S+@w-3Hn zn&0Q~>iTB>;0V5*cjAvK;M-3Op5facjBK-f`(O28mrAm~kNB0pWDd@tE#HjXUXrd{ zv5G69M-^sW?@`ia-o4DHi+BHK-`|(m<2C$GJ|8!dcmH1xc)a@q3F6PV@Qbl4N?~}} z{(j^k`Yrywi*n2SyX9N^ZYm8@Ub(Hb@A;pRRy{BBKZ>z_ma&i@;N;KGxBU8O+Ps-^ z#J`KSTHN>f_b_;WFwK~Ve+Tyiz*Bf8{>Ws+)12YuztO#_bUkg}O52h%Dsqn}$pfsb zCUk;JT}AOp;t7Q(5qSI%JY#!gI%`21yXZp&Q`??zn+~2zPesg9>66q~&;H4N@NpZl zhi)$(qWnPpMJ1JUHXl5UY-M8U5q$9WVmfk}&+DcwuX}bL-oxvruk(21bXIf5>UWU2 zHJA3NuRb3<1D|m5!Pwh8K6v#R9$5Z6>eEMnf%>Yn?Jv(3@=Sb_coy+t+6%M1O>4IJ z24FA!!YbyB&j;_Lvdm;h2eRpjLr2rlk=yiUJviYK0Z^)9N*~n1}58j zGu7?+(gkC42mCx8yg$IZMWM?413bH#^aG@A3^=~q&$CrL+t0Ha_F860x023~oN z=|!aXkglbS-K6J{-c35e`<sHt8iM$Nh2l@f7iF zlH2k-&YR|Lif?jv&#cUanBObF)d2V_Ia%NL+j61LZQJs#ZSZTY#GZ_%v(mZf{9)0& zQHDCx_vEF62pPr8U6QkO>j*ZqzOEv;HLyVIF8CyzhDVA?*V#Yd$=H>wr!~;fljACK zhc1|lk6yGC5G};7ik)7iXMI|^pr^N#>_L}G`P!f6(OWFIz)tg3a0^iOvr1Dh8HN>0 zlDzmYz1_aYw+Og;_8*<|w5o41(+Xa@Z&&f!0ov4arcDvQO|$$q{qpO6n+EDj0|Sz! z?|Ne&b%@xzj2skqNUCbS`<9L69{n=*y@n?YX(`|e6;-hNF zb13f71;rt|ll+g<5AlAY{gMGiPc+W2A~UYwT^N2a%JUUGyN&!7?(|jmG&d^!9ec+m zUouytiS5T6;%S5uX)9kWK<0j_RdgYx`1*a)3r>m?_eU{b65I2YtQ)3HF_&)?ZHNTK z`-4}(HWRD@UP02V!+`k1_{1R7CNe>jXs-bN!vXM2&q(JhS|tmwI~HndKSo_y>Bj$s zwki&o+WRDRN7)Zv_RA1W3WM9i+XQ`Fds`+qfQrc3^* z_8cf;sorbxKsp2ASb(*P!5vNjzq0>OP3GSG_5gdcM#=B}-n{l8VG|tIeFz5I7^!|2{HhuD_7nZ9=jUtny!Z^_oA&*G z@c08mzUS~aG4e_K#bc$nji?hI!`8WIM4jOLIqP)%IxDEt(enp{;#|b3z?UF`&(RZEV|w_7Jm#bpZFu~)%;!rkD&7k)mF9Bql;)O!Qtni zi?hxflMA4?N(VN&8=$YW*frJZqSljT`7mNK3FBa3y?Ava*tN4SM$N#QdI_)bzSbOj* z@Wo$Yes_OzX>aLMD|_W{I6Nk`&XrxJVr4C7gI-knAwB@&pMTKsDrds>w&))Jgwm&$ zdiOuzJ>OcLCFMNdA9>B@znJkDlUk1q^;7EqWa-#SZ@w(Ae}%I^50;kW53zjZE2R(C zd;SH-XxlXn{{7m6rLQjiV(F%pUb=tjYo!l0d-u?)!GCG?+Qj!Qm#m#u%9CI1qAyD? zUc0HZiF2wq;n#MqwyWJwQ-6rF$@R@svzBO>BbMn4K2eSCl>tJ(<;kBss5j9rz&Ld<8nb&D`ruPwD$6rC6sk#FdWUl|Om& zsGJi|7xqBwO~1)GnT-X}{bVh+SMFC#LeH5-_Y>V{b$|)#_-5M&bAMQz$;A&h<*ZK^ zxFfz}W~*dQ>8OlJLhr-0nRuyrYwumtkvGe@mUQGbHx$DuIkO@cY~ARJ2RS;|$?f>m zMQ*4K--Tx8EB`O@O#h*z_y3Zg4*Ths{dA3=W*4Q+ANAA6{PYArecVq^^3x~%^b|k+ zil2`A=~w-9t)G6~PuKbB-}&hoe!615*Y1R$4mEl0ndzs)etMRluJO~e{dCk%H(uwJ zGr>3M#7il1KKr{jJ)<)>@?^ddhUxO}5KZys$zw-jvEd}keQBUWu!yX&-m zB&%^b`o*ezP1~0I)BI23{}BJR{2$;y!GDJT+5GS1e;)sv`Cr8UE&R9g-^Twc{+IKA zGyhBY@8Ev{|6Tki`8S#MdC|pn__9g%czwQn2#AG4`(9;EIrvkC@RHZEuPTAhBRKyk=cpvwkmaObi7S@Y z4Y>=&Uw-%D(k%F?$qz0$xe^{F(*1DhN5fN#VRYz`!M;-EsfSC=lUbkO8Gq#Sv!nPf z8Jk@ijSgrGI-oJ|i(_N$rLpLNWH0Y$jj!h1(FkqSUS|2nPh)P&zE_T!A-k3n`G=Dx zu6@~yhBz~g81~w?zc+vIeA?J0UHUf97Hnk8U+*rRGe4`d5BlkgWWBlQrEAlB^Kr%p zUnZ?NxtrA|{NN?mOwoFjfe%B5F88uTtLrBObj^9_f8v=Z*{kBb}3> zKBJ$vG)#1?ypP-acal5;b^p(Y^vve>+ z{ePg}SUProR`+J|_vuqtQE+@G{c0kQ+T>Ix*eiy=6#WP*UR|}<#xXo=LPPU{I>M(nhyp&PXbv{^WlL-!$*rh8ur$EbT)nA z$RnjI;dvslzS8Hxo%YyO)`ucc|Bv8U+Uj1%Fz38|Uyl)=CXEge+q*yCuJQ3J~=Ox9t~Gi=2^VaalHsGA?T_*ZH`7v5(8;@-Opox!T9&`Zwxgp1}W} z6PM4#!U2~*VsTmHR+-x13f{;O;PcvRxth4<8525ukhXn0a)-qS;i%vw929N}muj?U z@kqR+*gF3Q*nJ5c5w9cO$?%N0JDlk_+sYun@!R-=$y4pVQ=NaTv+4Dn|IO0!Hw&t- zwBHQ--yA*bn=t2sH-U?qJLNe#ruvammVBD41OB`<)qSPrBivxvx`Pf=^_vG$%$@p zzXV=~lbodktnY-TiEh4z45+#BDE)f|eEeNC=ZtA@Xm!1vo4>R7?G^@gJ`7r`13A+T z>?ya5Pc_(qmJ>_ma^x$OE4c-KunPoF?E7Q5K7ToSgj(91$f!+Tyd`AZzC+M>C!Wlz zjfT0oel=$!5;t%?XQ(J9+^A{oUq?o_F$cB&{xfY#5g**{S%XH1{zQP`PkFBU5a-j3 zn}6d;(G>MfI?WE?sx?P@i^QW!H(=Xt9xX)PHad6Fl)1SOIHSD^f0zgz;QxTXXNefL z(EPSsJ-UK%@U)@6hf7buzqTN&X^zCzpCgZz9%b+Ti=FVKJ)9vr*kISZXzU%OC4yVT zqyK74HSOAgBbl8#`!^{iYKJBMOw>%7QFb2OH!A|4%%`xe0K=wr0 z1LTtlZ|%qjCFc2G!mkcojnB^##%eC-(i>o_G3kPiXiTg<2>pqCJuJ@GKVs`y1ix*^ zfjZ?gUcO)E-^&jWpN-=F=x%7LJ*{x-8~-vfT-G7OVk^bI z(kR=Nd>OkFr3tiOI+B_;$#p616Yn!glUvmT-a&`rjZN4w@jnA*=q;f~j$J#;dtD{x zo5*F>#;WzTPIJa=I_6;KWd*eQ%?j2UY!nDFi_z_wfeL4fTh{+3qkozG!^QAt@$@n6 zH~Jm06<(^&GG1aI>#I%jEMsyXEVt{vCgSKLBb?Q?h)*lEUZ34I=S^)R))2Dt$hM(3 zv~5$H#-m3+yIn5x*d({01LGVf_WcN-o46h4@Tw zr!4uEdFO9;c={T%B6p!3_R&Dd4C*gPrh`&;rSjtkqeE_C%MO z($~jsa-(aVQWD(KxF_MY1mFHveaASZxmbIgzRe}m13q+aE=4=R7s|Ek*5Gt_sCSgs z0soIp+N5)U?KjwUq__PN-{|~2;f-+6G1xgc@9{c+ zt$WtzYrwB&>3|jcUic-S_k-tKU;MskjJCl0dgZp4(xNStS;2aweukmvAGhZL!{C9Hg**hFTG#96|gDSBe-1(-1O{PWCYQ-ANg=fPVQ}~LI$X*hTla8 zc<4Tl7Hi&!A5OByj^W){)?v{^;iPDFIE{a>Y@)2+CbFd{-E<9YSRR&+^Tr`;hJB$7 zb~|)zHLP>Yr5>Ggn~Z)Y8$8EcQXCVVqoRG8pYma`BxIm9?VJIC?lhCmMyr>c9AF(Z z-~Apu!FNhyPXI4qP@{PU3_@)&_{;8mbS-^n?Wq>;z* z3()5v?Wptn7>#o-`Q#@k3%`WOI4dt4uRjETR|lT5m&2GxbT&w3RAaoO;GM;n_RdwO ztYyIs`H#V;JK)p7^ETj<%6fneUpDzh{BE6Cy7ayXa|rvt=sdX8Y#5ue4v}>k*gp2W z=9)*pHbAfIY+D{t8yU|Qe>|TbF`i=>&v*Fit;TdNV`?T#_u6<;W2E_|{l=q5jO+dW zxI0}R&C1rGaXmj$QIs6`0CPaGs#ctJzQ@@*!(zsxSCih^wCK0fs*)2#cliD8OFsRX z|IUA%)Qdj~F>azUrxZ+jv_^efzF9m6dyW}%IA^g`3=}_I7uI%E5;r zTn~JSsAsb_9p!5qO4 z=P+f;?2u7JVZU9-WZh2WiqhYL|0+v7r{+Mb|J@h$9NhNa zr7a$4pNo@RWNiZ0cSpDYUncq9iS(TO4&yliTBiM1HEI42=$zS)4oM#ywmdv*zuq%G zwZH|PsI{Gjoeh>}4n>pM3UJ2K@ey_dY`HH$Lto(h!5=GTxA02-5$jiPDO566I=_%L zsZa8~)7pgWm1J*=M=RKKGPqvr8qaNPW_;*Foc}Y*Tbc0t2$iCrY$8_RoCJCuuDQSFrTr)_@tl%DEo>)mS8;#QB_ z>fs@FQh0i7w4M*BVg(75Bk5BF+B^yR#P|=@*mL7jx$Ds1ft%?1pfTwEo20+#>L`@u zHE?Ulz>6F6P$3QfT*bUz!d!oO#Hr78RnOA$Ip4Wbti0aWA4BeK0wAO;(gKKs@(A<}P#HT5&!!5#n z6WLruw--B~{S!aoUwsbC&mXv`-{rG8-)cYh|CxR~^nclpBX6-Em3}{to<|>AS#L8t z3nq^3Wnf=%CgT>rNnmTi-%|q^CW5Tz0+DAL5RPHyJT55%_HFUDLRj%sqMaB^t+{Az^vWVb;+mqK`i* zIq3B1+ioM`;9U8NXukn;O}-1e2zl76uBjLna zH4;ubBdQE1@qoxDIpHbr@qN4+Eexbv90>mFDW;+RU|;tBY$V*KV#oTp6y%x%#=D=6Z(fS+1j8CTdt)GehaA z^K(B3Zs(#G(rrK+6jzw?($Vsh@;W%<*0-1NI$G?`#eO&cWmewSF>qNeO z62J9WxcWP#L-3D>&ZGQR>dc^zKyHuT{?U^55qz_K(-M-AY!O9jot1u)#n|mKEb$*_`(qCY&H031DQO4i>sWKSL zHN2M&=1csW$oEQDum+ekK;+wr>QSVJ+rCD zmPMKKs9WWz4wco!d)1YqETvVR%3nY}0vzTK*PBfj0tvym|BI;))ebHK=vUXhWpywDRZw!hcr9AD{}&0HN^6SzWL&wkeG>>hva*#%FG z$R*=T2JL)E8Vtay*QW7 zSN%49mn~cNr3IFrzGO=goT zS*Cw#W@s9*aFRD6w@_9Eb>#LyOCqV<>9OX1O9NO_BTff<5%2NNwnxt_Sui}g-H&;u zJs;818+sJv4`}lvCXOFL;A_Qkw*?JNk6CeUinkpHr68}-pPufC5AaSkxCruO;g3Y_ud z3K@L4Ig6QCpf$t-4Zz=rH}gGf7~(Z3B{LqB&_IIi*_tJql1NuF_jZ=QU|rJtR;;l#p27yQ)I zqmwSjN7vZ|Rwvww{tq|=fI)ffU8^!!)3r9vXrRyN52wQ$+x1*JVb__=hL1=HBT1 z?eSkZc(r)pbJ+tV_euYxvzM9QLz3@a=NwP*%1*S8buP&m>?#OGl6fSvNw3}^oJT+R zXb=3%?eIUm6E2GndI(rOG{AL=s~f!(x~PYwpZW#*DPpULSO37NpBJkf_7V|iwGuh8 zVi^AdpQnleqaU5Z_6z(43+wj{e7+TVSE*%qb*cH(D=mU=*@t^1e5?6Z-*uz&5k8&` zU%^#nj*VPpVfzIiw(YTZS=e6Y!}V_|Cw@gJSH&KZs%e|tatspDw{Q?Y0|T$mUM9_d zr-88$@55S%4``ohUSF!@JLIY%?a5n-uE8wbUTj*4zdAIeV(G;t`TwaM71U3>y%zaV zSE37e72e3;)22C4{#JYIB$Fw>=3JGNcCT#iD$cF<@Jr8<{{4yOgRJu#o>bmS@J{FM z1!-TXVZDv5QH~3N{-Z@_@>E4>r@{Ze7Mm}$^|{GjyRMr~yuaza&p!#=XVhO_dXhR+ zChdAEU=GuF&j(%hJ;f&4V(BL~M;`}%7Y2VR`@NmmB1eN4aW0)%06d=Y%VNF{fM4wM zX0Il2M2|AS_zbhAXT7sRcf)Jh_)4({BavKBq&c?(`f!m04-ZXFo2%UlWK+Yx{m!h* zEuZ1@1o2%3#cjF}8ry^))32_GKxb|k;+&TOm8n<&w~oF6yE6JN&fhu8ncU8}O>Q8% zz0e+QciA&Oe9k#!(iiJoUFzf4JNxC@nRS|1B<#FXnL0my9A&NQmrh>#6T$Bt4z#c5vC^xYX=*aN3nA=1N5*clv6AF#RnxXDe@Wle;w8wUmk^8c z65>!^LLACV`aV&-_yqFlz$dVkOBQEt5f>w(xkdcqDVkfS&dja3_ntm6FnDHeiB}ix z`F7;prRz_vw)@r=Ft^IFAx6%vnS86c^_xF4x9TEu?A-b*aGSDP+GFpwbF1E;TN%pH zyeiM7o0(_GNd@^D*?HEFZjmvPy}&f=v3ABF-^zA^-+ABXnu$+IY`z7|E5`uCr8|m^ znp@z4=GNiz++sf2xrP3#vU#SRTa~Tw7>upT(D(h!mrnLH2)DJr((Zqnw$A-9WhR@w z`K9Mq`}faKc6okPB=BWm-OxNceLU( z|9q&H`K%H1d!K*$3g%ezdrMDKPkD~1|D(+F1=G+`6ixYD1ASgSqR-8{ij7O@v;5kd zYfFdy`a;qtF13Cw*$Vcrik`@>uYL#AZ_1Ib()PXKU`cC#x$ldb>2rhE=VvI7n4c}> zzK)`gZv!S3OD`;inm0ht_7IN`Iz}1#UNLf>qMxEAe=+l|_c2Hx9r~#A9c>>SuaAPQ zZ2J!FQ``#MS9Htg>}zWA8+}zjN2TG9>9hJK{Y<&vx-a*;+~;zC7vtY1x^#A*C&i%g z@UPa7Ahrkj4xcx_&-zy9>Z;Elhklmrak9^0V}1TGGV~1mEXp+3qn*ze0@#dN%`WJs zJ%=J<>e2Bc%a!wK&cWB^wNJWry5xKL6s6H2L(ADWEjxsG0QL~s#O=zEB`1pA?Hzhq6&nb49y9v~g+#@CZHHirC?5cCf^ zsI+v-I^$XXJxa?z-6gF(GD<6^!~vyGdFh#?L&Sg+y)@FlU@s24_vXhR*qSwI+R~=> zpey11G4v1rIm}s53G#OBD?BTGM8Dd;uTa+W$%k+jbk`*0=h1y^{}*W+zP8U??c{V; zmLayzOmIqPS$caWSx@47Cx$QI@wV_Z^zYanbRMdB+IRw;_G;W zSWlum3N?&{Xje2zOtpU6w7LWSV+T4>Vha-ki@jDu72s73=ZrgX?dg#Mo!yVzM)`&^ZP|afBmWe%%Bd&*)3wC< zryjxYNoclWBZs(eg1+g#iFsn{S39U*?U3He!Xd>z$^NbGEXG!CQvK{rvwc#%wodA@ zbwdAC*QnK7+^1O|9KU~Nsp{L}sy(8AX5}tR>#t!=`JiG1Kz~)g>_MtuzG1WIdwZPt zb@Vkzy@H|R|EnzyV=4RykGmt<67guV{OQA{ed1-Y_IEtr$r=q^UE#}C(%CJ#$6J3x zuIAgvb6U5n=}XwT!yUz(Okop}Pq6SsIHLGR3Hon3e^@lpJMxS_{pUwo`OEo~r))DB z!#Gt#;~d7yIW@=X46V&p{t(2>lW)+bbLcQ|9f z#yUfe6%BLnrN$ofy!@pbyL(HQ!ZX4H4xcwDdXQmXGV?d~-O_cZSevmEs$AlF=AHPy zf-|_jXilw%o~ik)HK0L#8iO!%u&NFGYTaeW zRC~^d@$snQrl22qRQ!gC?s-)FtaK8S7^5pMz_+b!Z@$}!yR}{0@^$HL`AOn))4K|5 zr)F|HooR047x4L_J*`RfQ`8Yi;&VaU)`HWjSMiBgNRMSi!#!Dkoqe|i`ParV9CKX# zYTZ?+)f$0Js=c=0bYyvaZ~i3XbG{4CLJKv=!K;YiWL)|J{nj`_Guamk{Q5JwCBQ=8 zX^u#?GU+bt8vM7BR{32jhwsp(C&{=4IQQaA>@RfX6E+nBs^B) zYPa$x=q~XZMNeca7Ht$g`cG&=pdWtGpM&4{#HW_{a)ZUy@_C9XD;f)ws)^Iyy?UD4 zOCJ=cPka1dpT&MZbj5d1nC1rXFHhq`7lgi7H%u#8-s_6>#YTLL4Y6kw^L;$AICO7g z6E@#jJpU@n{NhFK-7_z8UvK10>tr$)f^MbB6KY-W2I|+Bo~&o>oxZWy+(3*b`ef+O zmGq~4#wqX~)H}|L&cBr0$$VMFSgjeaAt$A8#I&Kp;4LK0(hrT^nPMkt;a5GB1%^?cJSCXX1|f&ApWbeS2fB% z1sT>%UQayH6!Gm$&vMZQr`^?jg(lhfDT1HQ09W6xmOl#l15w4)Al?A>l?{wdGR3}) zWM*gyaIO)4f?E&JFO^p(d}!MaUvOjYe&k1sFVHj5t5MDd_a)|W6S!>mv~bS3?2(Ga zw1oGw4eNeuW@u4@cu_nL%ARUAX2q*)?Al1|rw#6se%hQ8?sgSK^D2?=r{FhMV-~s# z$S2#iLt8nc^C9)cAph3DH_YRm=E@T4PPM|TB;lWEFW<>$!;aGe`ZJ3D7{*_7*zVI} zy$Z2z2`3kke?bCXnK4>KIgI77#y5bzphfs{(M4{nyEos$Jg!O-izuBL`pV@Oxg9qV zhi4WxVem1S*vQ)WSm`-muDNc6TvOeA5pgpaqxmCnleWBpo3zC&y|Z|!Uzf^01nmf7 zAE@A6$9?Dn6U6Xq?s%h|Wwg2Ka^idPUm;v)zC-aNYBxAA{9(!$ek$HxXzBXW%iyWj zBfTeXCwR9g$NdH8lkesWygjr|a-*xc(8#)f*yrz&-JY+;SHqiI9seI|Zv!7kb>02n z*%$3iMYypl@l7%>_W1O(IMKH!BYcK>Hnk>|%j_WoHaZ<|TBr92d!C+Xw z@)A290yLD;CpMVGaUfaS5GYMsNJvXuo@RE}%Nl_cx6RY$pVI38{mslSLP#O)=h@F^ zJ~KOW?z#7#d+xdC-h0lugW`oK`MxRM!Uyi)GO1f2E+HI{noZ@G=g@T)4Ut#r(x zKC^S!R%U1`^!R0|J?vwDs&XUWB)9H4->PJRVR6Kh#heRIzbsVq*)8SGt;B(1J;aNd z5+bHJ@ow!dtI`jjh4439k~+N_w)@;obD_K1lkfKg&+-BD{(r>(w#FuZzCZU~{@dxw zG|p=Y*}m_`B(1j*m-htUI(V<|qrW}Ox2g4S^w0P#3)@)YD+24M&kx>0eL|+UrZrxT zYc~J?dDrmk>Ps3YXXc?3H0UbGP9*QnqaVcb%p2*4vBGVx#usArmF6(F(HP#6W&irU z*v_+O5X#c$*e{sHx0%0%ed814n?!GTdYNUWU5@?`*fU!61L+Olzne2_v*c^Lm3wkK ztNXszQkh0MO!^Xc!`ZCCP>x>uD&yT@)rUS*yBnP1!4NWShhX6oo)gXJ4&IoRW*>ZN zOJxaTj%Dwx;mfG;a{sP$r)#oKC7fMfOI^e|m)a_|lYPmhCH6HAYki&ZCEt{;>r2%du`=f)?d=ljPLExDwa7=>-lP| zqL^-;&v|i2ZBg()=CZ$0yd!DlPc2UbH{(GfIbep~&zg|-ezoT6t^41a9BRRyY2!^B z-3?iddsky0Wsdy;XJF(r>nk@leY|2a{ngV?W@_pAPRYTB*_b7+;zOg0416^cMK9}T zZ(rxj7D^h683Q`BW`Aluuc@pFdHWOoe$t(}JKaCHv8i(7jo?o9RX0+;)Bo*LwM#g= z_M2yE-RC;ZSN9t;pS*lqUgl=ilf6%!@cr=K2+leF?hl*`tjZhH#q(QhkN$N_MeBks z#EzDn)YxzENAb>EO~3E89@hCf5!ipWo@Op2NFT zp?3I_PU*o<^txxIkJKW>k`1SOD9f@6ab=5r=Zl`q(^5`}=lw?o`>}QI(ar_#S*atn zcq(5t#BU7S7jrHJcj^%`Y0__~=JHRSkZ*n*-PWQl#hc%THyKl*9dkWmc}3FePlb+C z^J##c1xvurlxU*=jM3#?C0O_( zn%Hp$^PDrGLA#Y;KZZGv=wbLZXcFN6-Er_Yje-A)0Dsee1OLV2;E#=ge{O(3_8agw z_P>ICx~U~zpS%Imo>n9T?6i&c;}3PH`9Rk@y;0s@5dW( z@5DQA47_t2@IKyo0bawnaLPW;FVuH<$c&Qz-J{Z_N2Ti;C*7Ijq-*eHK%ce-+;3Np zcmsaydYEy_^XotsO@K$J13FFyI}m&p;Fo_5zD4*pk27n)_c!4D zI@ZVV_lz+H{;6PT_xJpUF>o|pRyXj!lRsCE(a$t~jT}!_jxKk=_g6RI-ideh7zb_3qWdrN>*JHr;+ZR`Q*mPr=tPy=aU;Cy~o+PX{`4g1U}SmCV0j?|sL*MRf$?hooR66Uer0_M+0 z!E73bCVLxjejV-@r(8Q5aDKV&7zf|&4LBcPVH|wD4LBcPVH|va(tz{v?HC8&A2r~7 zd^^U$_j?Vvcj`I2!97~GeX0TP)W}YJ&e{9cA<*5EM zh97n8_0))ZbeWZcU&-cO6`35re0}Z&h@|6vGN5|g5j>Z0dOx^Dc+oB=a3$-%u z))^RwgLOWA?_nKRYioLUWbsq1XB`|mvizwb%D7PPwKq3&R{!98mlMyOa(g-__A*~s zxpi>u@Qk$PRJH#&YyL<+jjL>4zapvt`{FaPJJx!yY^&>Yv2o{Rf$aVF?R8n;xBtWA zwEtiO&ZpPIqv;jkBY5W9^ngdl!S}NUoR9C(aq#_J1I{nszH#t9(}45w?HdQ*_Zo2T zlzj)r;LmS0;C;LY#=-kg1I{n!!Ews@wFaDz@8CH2wl?5=e8q9_ZEV2#_=@A;`*H)$ z$M@to_`cA9^YJ}74!+Md;Cy^fkAv^C4LBd))1&bP{p_j+oR6=ryIe4a?y^|0@I5|k zzxDdVN5{ec!7=b(5a9pdZ-YPJ`?E*ke_{1OHH_fEO|OK3S-Z@9Dp@8kVtK*##{7{O*i>zcB?PIknHKH7kH zD}S}wx5Z<~jsahsH6q{G zC>=gCM!lvq;Qe}K#_2E34LG;aKK@+&D(#U>S;ktGXg->5|FN|$2Ymc$pJhS&$liCn z_8DxX^ZD>67xAPu|5|@z$E!PHQ;2KZlmpXqSM$zx%fQJztYX{#r)^Uq_fSoE$;N zIvE*A==i;(&xzM`bHi;e@>vSH2?c_fKSi(gPge_vHpy!8?e|iFZT8wDhqj^ z8)Kd6vIeY68@+u_yk?C4bWsD|=f^dp_)%s3uwc^q?w@09FWp&H`97%kylYGEJXLFB zYU?^5Dc#Hw>BNimbY}&rtdQZJu-X;GNC^G?>mS#?3N&279!P!vLwhQs`;SN9 zMHn>b`gZ|d`es6VD}rsiOLf>Y?p{iqy%fomQ-D*i;Y}p zA@Ts3t35T%<3Hu&EA3p7b({YPdv@OG+cMr;#4T&Wrn31I?ZM_#`gR%bqnW%roi%E$ zXWNYD+5=CnvOHhw`S{w&FU^ZjE5Ezj^Fzhk{jr~gqWcs}EzQ2XnXt+8`~GA2WeW3n z`Ek_a!y>~T@%HSOCx>=MjOUl3G-+b($nNyXJAJ#;;)Ex?`S%N)0VEz(JD$`YlIQ=D z9v&Y4`TTl&T4`Tio*K}JaWHWYW1iBfUY5-mzUZkF|8^&SYm8@-L1W3=sL}&37>%RY zH6^t7Y#2jz9!8A+vei<5(it40CGxdhIz!j|^;OAQjd$I_bBO1e!Sm>{4yeyTle;IyDW7A{%-GCkO{ z?8Yty8S8qw;}@J#x>@#gY3WgkwS0r_15s=gzudxkC-%;&gKz7vPr161<}SZ0V4`ij z-)3yLVEO)CZ0W_vchk7?8TIW)@bO9bKBVGnk1torhZK7i@tW=P zg3d%|?YegoZP8-(?nKt!9SY|QmQ}c0Yud}+OG!t;O228qhTei*0c_pRp)HW#S^NPk zhrE~%V(vEwdPZ5;97_z1S@8z-4wK6+`Y9}ac}Jf)B0K@wE-PvEB1ctupwDT9#_iG zc5^@Wd5R;I#LrGT<+{{HcU@{dwkNOD!l{3%DXw30VVygO|J@1lm7j!S6}J?yUC-TL zQ`{?L#4)ejDL>|z&S9a?4ak4P-1eE}uA$zU<#oSB(WB$~^-)`bs!jiDtzEJ8OAj#X*~a zRnrtx0bBlLy7KaL_%!)KEtK3``@^~~pn0M83hzVEQ$BeH8LKnXE#k*3PGh97y&BIK z;OT3;_)T;0fsM5i>kxi#vA2{BHdb+~-&MXJgtwl?Kh^>lvS{FC%8cz5^T*A#S9oUp z_MUgt%UO_p*0rS=bchvXqeZ^~kMe5DaL+sU>w9y~*)N{JM(WTU&ZLcT=7;K|{4Mft zp62%(<^N=mKR)jA6?sJEjgKmCjPeThGWw{>8qZ6{_Ea74Bq)nz{;Vds zEZR>))*E8^w!r6VAIVz-tZYLhHz;3+Y&+IaKLgDT_O2$$ns}-}?AG40{7e-0E0Ww; zoyojK`N${HN@8EaxniN@Qg<45k#oe>KxGyMycC*>Cm3EkD1!9R0`3%aVO- zo9K&_v)%{0u+8`ULo>T-%`F?s>XSOJr!9>gAmw9j>FxdAW|_n)Vld0@t{;0xm;9pQ zml5y&k$19@2vbkJe^9i=$L2BMJRYSlK#y7%c{ok+N_SQ^^y$hH3!7W6Wn9;AUB{K> zTEVrFYc*GnYYo>eTx+@VT>V^|xbEO8aP8o_hif;N!}TE7T93B<*uib7{_UiG&j)lS z&z8NhEI)$~ZEIm)+(kP`$CwQd7;A%PJ19O;jP`b$vyR}MRGM~76^ONkE=ivfPqbw4 z5y38WM`26(WPVHe%5M?dAN(*iT@)ph*BDZ5PJlMhr(@e;68 zWPklwtaWouw$QPgHq~OSx7A|ShMMd(Jzo%PFeCVZD2{_4SJ^w`=1_Z%Gd{DNKbMAI z;Jc&nkm#`LEc&16cSZlF>0e8KSH4UBSt3vJAO4_yHh8{c>VJ9`-PAAjEFUvR&w0*) z)7|cMjf3yD&H3`steLo^@+-USlnsnaTdImX9O3+?1aw6{KXT;<$e-~p!kO_QZ2v?H zW9vMFD@w?oV>3Ov_;^GsopWXL&ZA2Kn&rf|_h8GODWQ)YlYO`9Bz~MH-YaaXo;1XB zB#rV#Hqp;|+!o>Gc?aKgK41OY9R92S)&KiG3wg@ZUl#qs#Kl#gIi0cYuc4vnX>!8l z`x`#3{!G1p)n2H+N!(V;B1MSgyL&!4GB4jQmuI~m{eI)V`Qwe9GwQN`Ee@|Y(d`LE`Irx}yaUWxs zd}YEZ;s?33DRMKGLq=qr%31E=n)tmXeOfh=UsSdxpLQZiENSJ_kG*f67`b`;|4jNP z(CZ&+(G2||nRj)ruXumeUe0ue7OMNie44l=>L-jxlFi_cG9GKJvK({NnTWyDI`*S-O6Op|+ol7@TX5+Vy%#PZ~)YJ}7 zW~<+c7krsbU!V@MgO$uyEH23s!5iRX^shMn4TAUO_H8vUZ_h?}S519=8EM5oO|(Tn zJoFd055N9N>bCTh+vxYc>}XQk&}X{&uRf!GARhPn3(xB7^}ZsX%X(jF<5}`XeM;vg zcrs7v9r_VG(|ldNtbQVSD?Szv>TF5%6ZHf274;Ke&e!`2@xS4Lb11jul_7qm`dq!Q zKzDCURUCQ0uiVFY@Anne6Pq=!o;OiXlilp~6~!Z~^S}Cv`bWL5Nbc0XsjrB}_5YGr zCg=AR^%M0G^%eD#F6Qf9qhj6G$En%mz2+_0j2;r>8uP{b4v9w9p+Q?WSKk7`Wi}$mQ&ft{o2EL&9muU=(L%R>h%$%EUA*^Kn}=T)taw0mkbdcnCD6xmRPN>UW%Ib|j?P+A-p$z7&k-$>jwSyJ zlXoof7;#Lovy=~@?BuV!e+qhOoreCqEAF4jyE+|X0UbrdaGJA{ntVD&sMowa{6pVr zE^KBzV2(OI;eYWq$N_+CDUbw(C9GDo@p4 z`KkM^mJMF|ay0(HJVj_}d98LfCc{3v3L_fo}6b@pIQ>on8h9r^t{ z_j-ge7kPD*Z*E%hxH5zFDMLJSF9uVOoeD1*& zyPolxJ{bdE{ZYE5;v*<-ulUA%WZOd##dG~gUzL~`hfEe7j{c|^WIEqU<4}t7zfJaj z@~IQG&3;^^d-u;>Wj=BIqE}ee>E=4|9=ZwZUiEc@HOT*NWS)F+x29}l(gfx|6RQ3A zvUS-Ls@try-8VIsy67M9obh5SEv*m}^ic83li*8eu+H*)ZYKYTHU!RV%j@CC)UH|t zIj8wNy2GL7kM@_t^LHX2u?<3&N#@1U_;1pFiYaa2i~4``yRzlF;ZPd-xf^08d0$j| z1hJS89oKk~qAd2~tTQY`K3t(SiH@%H)T*6BCfJhKS70BmSinoQW^`y~cB~T zuIICy#lQF5>F(sUeP#98ruqIkLtfeJzQeS22|q*1bcNT~h1;?xmxZ60A0FOGBk<~d z9k=kJ6I3R5|$H`}= zO}XC_s%*ojwjaG|$K+1;z;xCG=;zuW{6~1HJ2|zQ(Hxck|1cs=|7^|{B;CAOd#gL9 zoa2U)du!dK?MBycg6~7ggW$M{vDhTE*7F?oX#+O30Q@#_EsNW#5p;l%x!IEqEgG}Y znN-fFDDQ0eBz`GpTNNi%)9_6Seo=Y53Y-u9p1sv=Yr4EL-@BmOwZPX*Th1mBEIyUpO6m)cgHSI-;&LDkEz`xT{);8e_mOD}gS zHu*==+dcV@Xw|e)2_qs9a zt@`&+pC0m8T+h3)u zI(YfhE;;htzTjN9i?a0h(Ee*?c(hlWEh%iPE&*Ryv>#FbX7XMHPS$Lyv&lP7oqU+R zwG3s*cxCubEy8>8dA-bvOGPY)O^RJHa(Q09O^@iXV2h& zR>Z&mnI7Ir{-u+99^#!d4|x3E9$JJP)BAbB`yP9b_g*n6^qzUW2j3mMpB=nMhxgu_ z3DMZoX!gpCjAd6U)1B@v< zayIj>0&TmrqBWl-qoaX?v@JRa@Hd^)}?Q_$Yp1xMI{d;is^R-=U3+ zM4q4r9Gg53U6}tN`OeP&dQJKO=PRk-CM4TJ^k2or7QZPDg6@i|p!AGK%yr-!^0diQ ze&t(j+l^DMVPs^BB_D9|OJ2g*=#;u{Bi}(CAjSyAbdA%tUU_LRuifAi(RW*Fx=-I!AM*#w zds83u-Ck=UhL7}#(e%~Ws`5&H>Dew$t*YF@uW}1_oVccU7vYEV;8WVaB~AX6d14-Z zgD=D*dsXHl?_KP3MwDCWjs5ki(zkegese|oj>$3?Ng34iD=ML^)+KnKWv)lRuo#=* zSM86Lq$^liXMZy2BNpeV>6^~|(>L(!R~~JAS03Y~Z-1Bc)7~Y${VwUd-X;CacS+y< zF6mS6l74oO-V~s18rs?g;yo)~iq`0$F>CoAjSJA2y~wv{d~Hcaq+j+f>8}})K85Zu77Y#pGbhbA*5~FW zCscnaocX*v)6zVFeOb<@GcGjF-Q~9HUFt5kjeDplf7HD-ts_{SUaXgr)w%sUA#?41 z_9PzBe6ERplgiT1I^l6^cWql!$cHJB? ziPwmm;GIp!7@?Sg8uz6iN?vd8>?Fn(a-hqqY)4O&UaLMfnZ3I(XH8}aSkVtoiXozRjGx!T9oG&^O+K{;SU`kj*@i7@bo^n&7iv(#n8%B6eIBJv(XnQ z%T;GzTuJ`R6}4~tU7vfWeJ5wo5VLc2pEn0Fxm{I_%@OjNKt6Hyvts+4!xM=067}vG zFHi80=M^Q^jSq#~JKb~)8s(fyI#1k|wAQ-(dbUI3B|#Z(3d$flsSGBAP0YVg*CKWO zeBQm&+{vCIW$9+#72bBDg>n!tp&S(-W}L%O#;>?{XU~s&6EO)iAB_~8QaZnfe2L#e zS*~GT;G!>DMmpv`Pv&TkbRTVcF0p^;oStcXw537b54Llb%9*v+z4$j8jpW z9KEyEms#hy;jvo8-BxX44JytY1AXME&JJR&gy;Mb;>VP94|%#u{)pD6&ZA#vJ^kle z;{JjwdzTw4?W*m6=zBfHT8Ub$J@6bO=F1}FVdDH8)jSCtk}k-QC_=7(QKRuXBmb>wftI^h3%X?p%kSCthaFcKSwlBH!)_huuZwwc|rG z+$FlBm+ylXiZ7$s8@ngktZDSZ`?OQA7XIY#F|WRY_24x0%Ccs-@7uLheg`_-r_r6v zBaY%YLNDgF1NU6Hw>rB_A1V^(iFs%=!+7HEtWKmo1iLnX-3II$U@ZrJO=GK9V9rb) z(aiqZqNL&~-CK=7N9y&6&cg6)6v(5WbUhhl#boyKNS`KcB27P`FGrod#P?txmwuu) zPcY7X)dcwpM;kbF_Mys2pB{*l_EK~K&4(pdtmFZ&tm%yGHJ5s6P7wdUo(8!*&<)O) zui$J~()28_nA1^i>Nlsr-dp;+wI0$c7F#r^>ps#ezpF_*jkFJvb`EnkoAirFue6c$ z{+eRoEn>e(@pD9@e2{Jt>24v7_ShARNHkjF(da-e$-5=cC`!FWC#A~->E@Dd5$O~& zPx-Yt?3;hX&oANZ_iR5hy%#U0 zk^W?QZ}kn*zmcUp$Tw5Oz9xMaF_Pw&o6xaZ^6=*MJ8DhJ_xiiPLu~&25!x$y{nvSi zO-i0U+HCJLCWEd-EUF~75juB9eXxb^$d_=vFXot0%;EZFvt=BvmKMuAJi#(uT=V#! z{wGS#m5OuD1ym|>Z{vR~wOy^s+H6KLZExnVw9-+aK`bfUkN(Yu0zMW|yz6)!uC}@7|)j zop(5p`4P9?5hqAO!de`wdG{7F)w`obA%31+)ajiw>F5&&v zdjGuEBE#7{HT+a1mUix+nEqjHP5KwFDn_YMAEr$st*nctdq}g?Ps9FWNb@apQ7hxz zFZ;20=7+VPbH<?4H1?S%r9zB%@PaXOwf|`HF1#w9 zyVIK&t1LT6JIP*9ZZ9%6rifK}{&xD;%rz^``)R@Zr-S!xyzl1y8NvIPg7>WZ&uZuWnZf(x!TUJxBfLK=c>l}b zJ@RN)d)}$oyeI9z@f3DRw2A5xxniBWHghWVxvJCzoR#S>$7rW^)_Bxz(2|&&7t>D2 z>3mQ5QPMt|5iR%DBm?6MSPQs-wU$NeT))o~Lnos(g?xFU>`|vfYul_N&R``9?@Y>> zbs?Mak8h#Qduznx%j+AwfbO*}j~pmrhlkkwdi4v*;a6wO)LJ0x#kSKMqH*ZIy(8P^ zO^d$7^&_qWT)VmYxmI&6<4SS;(y(X2{Q&nI@v1^8Qt2`AZ$dK%dKfmcC8#aS?k`=|Zz+ z6GyXe@CeUgrA6QR2jo%<_7Z9vuaBS;5(g`;_>k7DtzLP14013*S9~`#3MfnB&Oyc2nhot%4wIAdZETa!ah~nZQ>L+o zXl(kXOWUXYwpTmendY2BY%D`|zl&WbZK{4FIYCTY@Fc#wpm zvXEcMyk31%+(N^CI_u2PHh^IahQ7TmfzJ5me;Sih-7fdfBBng0lM@*iBPLL{^f^y9KH+^wt|SurPFrFNS$$y~7;6N~OXI-& zs_!j4?ieu0w!|-hIeun@ycn<8hgF{R_Sze~(|RKAZzbKj=sU&m0&WZ_)7}Fm*cijPZTn zi0`&_kB3|Ie%ES1RSlz*##9K%7<37TxrCWfu z_45+aJpUVKFzIajdOTvC5qo$uXKVlA@;6jx&G9}>*@u9$3QlRrvq_l4dF{wRVq7ZD zrF>(a1?Dwi27>R6Z{V)+-b~#;)cWa9z2TkrbUWiGxWnN7uIQ46#(CfWNBJ=iD8*8o zFUL2@v-o-Yhh7Fp>v@;H@$!Xx2iHLVBh>Zid1Kf02h{ZkW7PF~;CQ#X+T{5-aH{L$ zVNQ>$BurZ`T*VQEylIxwKxk=nb8b z9w(k@8@^c<_wadLoWYhF`WCc!0a`q9-q^Hw9$NhM7_|5c@_08|e1kGQ0Gw#?z&Ny+ zNS(e8%-%6*v77hf(Zc)&TJ(>g#TIag7TYh}JE*$X=^~KEl{eJR;n?AZct+USVyH~&0e&D~KQ1tJWAKd8uI)nd5gYQ#|{yA}{q(67Y zRhK8f_{odbK<{hM8=KyL481=;2E9kh63sJy4;+ie!0{QD| zwO)4d8&d-Q4o#im@pPRo@}*2Mme$LC#lbTmJEzq&cVIqCOxDk!>n}hDU$MaR<~d2OB6e@s1WmNlu541-Us5dQ7p)-Q1J4=rW!6By zd`d?8%dys}p~_^=J`$X4PfPC)RopZE|Gz%NdEnQlWFBB2@YwXzqLmrv;1dI!Y~v2U zFIp*{;s5{gH0OaYw`3lm9LFy1PE_(!CwOo@(-My>U-=2nykHb9Ke!#*u}3D_+0t9C zEHUmTBGdi3o;3r1F>jsShp_^fKLqA@=UXuTTD%Vv3Se#k=IIeIEhF%R1DI=pd2j?w zas&*t_R5n1rhf!X+XxtR2oL5GU{;KPX&(X86u^88n4S?Z(?-C=0+m2|V2;~w(P!oem_z`>I#A;25is2&U?v1G*is}O908LW0mJ&2 zS02rk`bWUb4q#9f51kUgph9*?)`y=9Wz|*)dRnZr|a*SyM*=LpCk2BKG*a0{W<-@>r3=Y^_@xJYYqC1<{I?vf$2fM^xZ^} z{vmihzs@%|NRO;Y(5EV|A`6s9%o|%p&t5Oic|Bjs&|NMT95iFD<`m*-D=_Vas6je$ElLw$+w_ zgZg0OsX3fey5y_=d|zp_XRG&3jNf1U3Ud(7lQ(InblUBEu(|gA{eK^L!+0G%WmzRX z-yA(FPg^suXYN>uGp=baqw>w43cM*)7g2}V&{X5&^Fa)v!xQ!meT^|uF$NZI_G1Lv zd9%GJ%JwE=)*siNt8Ae)UK<-9ZjIm6smOUT&A0asB{zqLj$C+fNc%>j zr|5X(kzWn9P_O3m7@IjKX4bLnP{(;&1}9G4f z-Jy^42eq%-MfAzqtcS6#Xl1eOnz{#FDL+*FkAELhoJH}d&YqoxA5dN2xEy`sdCnk| zKDaos?{5uf2exo-&7=X&5LCI*gGh4Ex#W+SPAD1@n;s=sa>F3xhIDohpjctOz9i6XB&N^ zE+eG(x4*Av*?)94H}oS&JY(@W4f-Tcsc#yGZRTJ~mm}lPk{E z!lm}I;5V-wlX>_VUw}M5gwCGo!;?0-UG|=8VRooe#HMg%lK$1&=dSPMEU5I>+O{+L z$~ynY+`e^irpiq}y9^#J7O?L$anA=$=WR#w{qp_C=5Mo`1>QR|7+zVVyuXJ&3I7z~ zLG^R-&}q4Ar-sgi{$HhCMRUbOSV@}XswDij!S&<{`xozLA5ZCG4*g=ng~adp znBNXs&nEwTViwn2Z;eEHyYy4_FX3!T-sVQFO|EcD-bpUQk3*r(b?&0`n=3l=N@vbk zOV_z8u#J)|iR4)O&p7*a4zgi?K(F z%!ar9vFCZ&*67(gXWpG69Z~VDy!wLhbAQKKpqh6C=Y?3{Q`y=L z`vUB#Je>C966}MIB8IVP$x|nI9+>kgXOA;x*JICn&qd*X%z99GwpJVbTtcg}-E&p%fYReLbqzOMW3!CgLeTsMV@5*)Lp)p_nE6V3O-Y?iIn=Lz4>J)K^s{yR?Ur&G4ns6sHyGQ?9 zZ*#qOwo}Sxwp8E8`!)3Arj*W6L>BN~JpR%td#fw6#B!jFEAsf)PRc*|M9bdl zS2ph*{K|dOwfEN2yc69Oqh}t^7Iv*ykxu7;sjZR@c9!7FGu}nnQx)Dte4j`Ad}7j; z@+UsvRCcGF%EQSm<(b(n)w@Hs3(r+{BG|Lw+h}cc^H#6B9$!)G`n;>NB&SUCZF-W0 zeN`Kn0q}U~;1Mf%Z!JSvl-@i4o&RxcRNL%7tBPMVm+Rr4G#@X|$xvR}bTgX>)vt<p-P<+8W`xN}5r@tUs(n0blV7y{oH#JFhJM`?{AcZO>oxA4YA*MSSK~MJ)mDO2 z{=c$2;Q0xY>w6;Fd8e!X-JX36o<-K6pXG|c@lCONJbf=?)?v3?Ivc%BHn=meNs1He z<2u=u+Aq{pclloMJ~1y#U!|X>47yozPjwf4bPn%yUZ9>Q(jN?Kp)2?nN4HC;&2#h{ zc>80FD?K)O!z)cLbu0qw>u&cCBMU5io@GzG8kn1t(2{0%)Gcm^}jhq-Ev>As@z)t6)#LoJEh-&KDH5k3h>5(>J$HqIVQM& zH-f(|ZMYkI{oTazX+};z>glDDo7jCA$uR#}a@mU~KwUi9jeHMiT$)G!zn65LtXKWO z&AR6y*VnNlpLK2-dm8_f|1NO z1^PE_@P2S#=a4>6op`4?SSE7ci8Z$H`LUvCTh0dFRc%I&E3U$qXb1SaRK#~*XI@T& z*3to2r{G=cL|-U<0=g)smdYPSc1@!k3Ff+&pVeDl%(oo%>4H{DA7NcWbDjh?oe9R! zB}vxF8FwRQ({aO@mFO7d(AK;^b~>9~>FApC{ylBw@i1ehY|IU5H9uNGT{T9FCgLT{ zI~Va^^tg`y7V|mrh+sq;e_Xwy^aS|g`d$>@E-kUx=bdM(I{a31L}Pf7eS$3I%hOiCsy*X}H`mmrw~|Kx#oy{D z&6HtHS~kzyD95tO@F&d!%t5ic>OF21uJw4`(`^dsW1DMdvhMmh)?Z&K%3tZ)3KQPy zhrzk%k$ppM`ZDiKOO3Y)?A}Ea`L=lTa@L0qPte|DLpI;4HIakxi8m)_pa1aGx4vm^ zy`OJdV>zs~kVobYNltj(%Pk+J|FQqyE(#r5z<^kS+(@I?FJ)30yA=N|mQd`7=wp4$%I-$2$j%%6k=UvUe z1%oc?Dwc|DT_s0-KE9^(r}_^4njQFrx$F-qyZ0^aR9;C>sJdKgzkelDz>NY1{erwpIIWW^IAGT`IjQ@z5JuXHfSI&s*s0dA{|N z&zC)#T_M}mW1^d7(r!QfU2~cc<)zI0PF^h8wU#trMuwofL$lr@zTLp2i_qkmetXL^ zd3#Iw%oh3^`z3yV?|VjTb6U@l&rH3JU#E`uWRVf+RppM&XAKU2)l{13U(!+i_FZ0i z#n1*^DPR}fN8id{R&G|G)|%jNLHqKb*4MhA{e2&4^c|DfG^p4fmb1L9IC2A&OZ~_z z4|wUj-hN@D&)oMG-Owd~eTY7%y~27QGF~6*t*$5b9StxLHhv#kKdKLfgLVtkZXPUg zHPs&&#|O0HJsWAa=$lf&5C)Y#uUi__Lw^~pRL0#BSv6iviNF~dmFIA?a34JJS}7n9hWagc9W}j z{pgYLk1*$?u1(-qy@iKC!}d3q zl`o&P$(u8FX-xiHsN%&%0apD%^Ek}~lQw%kJde~-ycl}WD2k4va{M1~+G)zqyDrtk zaVnY@rZT?%lLp6n*)AK6PxsfP_ehsokM5X&4>b;|Z#@hi%}pPM*Om7tKJQd|S+CyQ zx!K*>WFy0|6~t~@YtZMgR+)77b8b8_C@J%O7J9U^rTQp7O^e7|dZCrX|4@5w@*&GP z_iJ7k$*nssnZWuP*VJE9@=RmDEi%E7FDw z(tRgb6Fsyf3(X4P$`OC-MLe#j2{sbFWHKW(NW`eX~} z`8QbJT1gzbFS98lzEVxOLQVTMv(dG$Nu$5!dGDQ9aZmMU@Ui;L7m0Bpn6o0pk8*cZ z-=IyzZ&ngtot(zzURU#`72u@ZODlP{?2CV_x)EFP$m*=*d#@YKIxnh!ehc3c*?#77 zTdIhWLrv)KxFh4iv%G?<$)P2bReeKz8|(Gy7suzR&}7_I)EQm!UFdgJDJJ^ScS7t7 zoXh%_==V3!Pi-?S+o%`lgu_o8vsyz`>wy+82U;Tq5HT(OnEjZ73R@IyQ%UKnPMn9Xv}OLqD+h>HfjJ`Lcb1`T#X z+eh*Dvd#m}*;>=Mx7uOsZ&_Z!cN9c4%c(3`O zXx%h_T8(%p#|^#<+Cz<{o&Ce?y$+|%QTZA*&9`b6u{e<-l;KOB?U2gq@il8&P0&d5 zM~{x_IvsaZy8=4Cz&uGXt2{dHsP3Ll-+*r7clneueiGXdTlIjq#n(~R1FZaFPu8k_ z3262s_AXXZcda#8h0Tp`)&y*nY{!ZtZ;k*XpYzXvQ*~B-d(^hn)0hQr6LwNfH=SBD zHvX-^#cb8}3SzWqJfp6ieqBTFQdjZIbvf{Q<-WW68hp4L-cX(9lD9KTetiE+qvS`1 z@-*ZJ{*M{aHsDie8%+g#I)c8V^Ze0>Jkb#o|7%p9_bX3mrM@8^6JM#_JX(y?N90GZ zwo==wuXye1)l;_RcUQkfo)LJzUe_Cfw*A+T;@$16YW^F+?@r^j#>MUeIx9ZKsSIlu z4(m24%}@PtUUL6d@Xcf`oHnn(2OT>%*zSEXoB6cjz+kVycfEUw^-Y_xTyjqJ5sc=8TxvWKKyp_&0lQL^gq4kU| zzG)pqG3@kT!#bEY9XGd z7x&txEgbCY6rV!&bz#~{{iWc&L!aYaD==t%l}Rppe19@Lu-f~^S_R+mq43~WjDVM& zPuBa7e+)3hmmF9!;y-%wz?>2PS(_i2dXYNCov&4si{nF4oAIUSRPs6cTY(EXkk4y;!N(Zc z@Ja4}lK#c359iShk$q7Dg!E%iqkb&8)Ne62#$G|=&MlPnQl+CGg|kkHZ}{@DuS6-x!R|(*zcAMdXDu|%>zFO&q%hS-ZKXGmvfn4yt+QfFT}g`L4Fg0 zd|Di*#Jie@pZZHKyh>kFK8C&|_yqYWAJw^@5BSOF^vW~XXAb`l^ZC&@`6v&MzSIXA z{zUqPc$kp1wXVCMRo6PWWShT6|gq*vGTfj5;@WDN9 z6^|W{WEZ+k=*3MrXa5|=#g_RWckjr4oOQixN)dF(CdR6!0=Bl;0B9{na~qBMc6J+k zIU0|h{W`ydd#hqJgcL6#wa{hF2DxH7jx#j1Q=$X^aW{<5Bv=z<|)+JtkLxS^Z+Yg%JGmoZTK z)p7LA$%?a!Je}-1GeRDYrIlFHo7aUWrJPFZH<)j4gC<3%^6QJ(bE7QMA1C6E2;a`q zJN?)D81sQJx}ovr173L#%kNg>-9+jxzh#x_9P~!!znk?eJ=9B+U0KFgy+l7cEZ_Ae z=qCMAX%e{wZnJ%{H-;-O(NOho>CC%FmpX@^yFf7|=)1r}(?hY;#_~~oU-|Z;$@DQs zc;}=YBGxdrKwQ^vz@B=0wVm;A{q=tP(k4aW0{)pe@Ue{Z0M8G}j>(JflH`03_AH)) zZqKRB^0Z0nU@h*j?pWZm4^`J)&%8SGU61GbZh}tKZ~bB3(U(nzc36sEeunrMOZ#hF zE@du9+?`dmM@#BX=56b%@f2sTu(ulL8JRy_k&ZwOMePeZ}lnhua(43-QgMA+AiWiDehVewiRtf>>88Q-Q8Nt(PuNs?bX%l zckHDzu2yCi_-5`h8jIC0Z=|jn?>lS4q8qqps$N;*Qj@R8Yen7{;R72Pl2+b#xr*`F zPCj;?eRx;Tr0K+$&v~&HvM+VJ_#dIXiP8dha~k^OU#y9TwI?yL=nx~}Q;OlT-?JlP zj;pzzmE7dodFVTTf!m9Xy<%UW58;DYm?Q^VaL;-%|@I|D@LWmX^BHtg*Y! zi(yA|JabI_H$wkVoEhQlL|)7^lo6cKd>Va(_<4Edx2&Q$V6vWH!Ot(^kQY7$(sM$r z5r-`1wb;BFYiX&Od`9NMTFfEUKUsiwj^tV(U$WrJaHT0f`RY3poPj#5Vo0{9flrZ+ z_jMTkSAF$evBPcoOJ^KQbE8<+v1D`5lyO>P$VyM<8jZE0G3RU<=l-ZSS8(pvda(33 z@;@9&&!^7IN-ZA!i8%#5y3i9O+dTT(x7A!d(+4b`p~--3$D)$6A>Jpc2XX%uE6d`U z{a?Nl$BOSS(@%uQvZ-esPw*^!piSJ&UZ~~pT~#wxk8G*EFKX)_2s{`%L)$ic&#B_cmigOGe{crl zWTsG)tPT_3EV`64figR5;t4x9p}L+v-Idu>-G1>3w;O!1%wqPBIVVW5!NF%4>{^*4 z+rVhuSMff=Ou!@aiD_RjW!u8%p0mr*@i;%vL1)O8&3xb2b7pozwJSfNDjNhVcX!#s z&LA`ky%<}9Ft!5Wxt&9i#hmGejEOGq96GX!bJcIv9>HnYW8UeSRoe!SCjN8inU4SD z-RVP3oUvZO7PQcToxQ%_x^2*E72MXrCfyS+dhr$PxgQ)dvo;MLCFVhF?rh>L_|Hvq zKSX>5|2fP($-25?D|F?jvcEjli;WZM-Q>2@$0OHoaJ|^jtk=YH>s-|@%riQ1B0URx zQJxu(&}Xl$%!2O?@f$+KjW|r68jF&N$wNAGNp)BJ1=(1J1VjC;#oS3}=I$C){llbF zJP7GH$;1>t9kdEBo;~Enav1UM>BUbCH3wxO{|?2T(EKc!IMq)FU8B%RaVAvPWTFlH z=d+KtsjB@K)3Ir=nYuMoPmSj>=8>z}uaBf@UwER0ed6Qvmn3U+4m`uUTCE<_Z|x6^ zd7A4EF8%J|et_#iu9KG#+u`?!7m^Q^-y{xFQO8itp5Pq}P2+{mQ%W zotPY32cyfU4>hftK9po`6`nhN=oxtDY53)b@XOIz@XW2J4;ALN4iy$p9tzL;`@!<8 zlSAS2Z-Z~P4@S5b7Gqc3@sq(A&#_e>9@6_xcqi2H_k*$JAL9S6!BWS`p=WR1HzatI z_{pG6n^=jzAN=7e+Kat`qqN&Iw1JyAIi$8p-g??la_*F&i8rMz3d!)t#-tP%0Q`oqUp{SJ7}2j>MtN9U%f-#PS=uA%7iv-v(_ zC`$g}xgQ>iP|h&(%kRLy6D{JUBuT3QU-@4uZs8Q37cLjidNB+W3m3Du z$MeEf`|!s+IkZ^(3yqhxVh2aO6X`HVRF_$8Lm{nq^DP2TEnd8Lu!l6W#mjmJ{Vm!< zcm<=jXd8j!hjkpC!m*9Ie%R~dUjG)}Tel9Xy;L3?>AiBPy!CQ*QLbme@ih9I$~3Y( z2Y44*{2{NbqI(Fwe}+1agi+t>0j9wGdy@?gU}Drm`jTKR_6j`NL3@0B)rY)3V}Q~6 zg7;l{di|KPdi}U_Xnw~Rhwi7pHqG+e#p<{K-hwB%%l`Z1#-~mke-hhIF8vi;rTmiS3Cm` z7dKXwk7Qcd{&7ul3`0f5OT4b4Z^*twy{(H}$;$iQbGu64G1A$7}IVM=EV;)~_;YPxsc|Pn0p%xXKs%chW>=Fb`Agk|0eK8idlEdxWjA zNfQ^x<{N#sas*tI6Km$_S5BF_}A%>AhTv$3qMxVr0k;5k5K8P8q}OiTUwV80VqK{h#f1 zt@-d7^;w?@xzTjKCcQ#_w5-J)5^lw7${XrQ+^la*>T`?U^BqBir>AqMEn-{A;+3MERA5W&j<(ACEvI`$K-_YkO zrec)+NjuvYQoL4U@2cXnKpNBW19YrYlD&PWCVRK>aX|lh?(5>ev0tQ&PUTYann-`R zhCAy*9Tx9D$20q99U;MFoXQ{bAKAz`;r{X2KSqml>7ipSFlL*pG$SUo6*55dTuxkVQZ$I-(&ML?w6Tm^5gem^CYGr>~ z4JChCZCSCQ6t;hg55@X&Q(JGzYU?W{ll|5Ax5nM(4`Sy+niy%??f$aH=ce3G*>gKm zvl!b}uwEnklohf`Np7#DKSKW(&%mo~JNG0!M4?c=KbWam~H7NjCqocr8?jJnDZ31Zn_)!Cpo2g_%!C>dHCC&&pbS^gQF~o z9(zYM&3pNn+w8-o-)mJ?r&xQYuT9JDs1~N%uH@?4ViI-{ONIhQ@I}oPBsZzBlCG#^E{{G&<;I}3Daz1 zQU^5Fd6(@v@ACGi;?qfIGavKj#u?-f>k`6w8tSqR% zMsviHXa6hOnWxF)CDwBKkiAb=dsr7z*?O~1>DR;(?9KMwZ)KmZwy`H=C9U$V<~)FQ0eT>hJaLVPGxbdXw}C{y#eE|A8Ps;n8>1H4lBgx-icB zJi4=*=AFl*#yqYwh<8&jZ@h&LYt7E6>IZB`58r+t8Y{hFT-2J`Kbt1xZhngFdlM!f zw#Xx7UaBJB;MaU9#DDJ$W?~`8W}Vmw2fI^ytNYv+O5q}F1*sR0Tde7ZQ}1`bfE{gk z{_fiFyou!*$GhBpZc%HQ9g3&0XcN+pUtOP(KXaUYjDy_Orne~OH0y~W+Sba`CONgO zzxKU|wQBqNov46UPkDxY`X=L)dKizz!;aa-`^=Od@LqkQsi1n%kIZ*#^tZ})u>tAQ zdpmfaBu=o_D%sPpa!!c_Ab9qg%C|@#2d`{P-uS$4^BSj(v%|x$FLJh&SJ00VeE%xn zc4NDxyfwc&>ujA>=Tx*t@p|XQmDYc`vNp{4_`uCh>4A$jvVQtJ<;Wu|GZn^2)}Y7_ zy9cd1osBFwJZVEYx!4-gIfMWC2=SY~hwruOo+u2~`?dCx4sT{Zsj#b7#3$AB59FQf z9St!zw8!*O+SRkqOrV$ZU-o#G>G_6d;}0&+_6{G|3HZ4-%l{VtM#0GjWSD)Xn4z5L zLMvDsmcPn_)NvZ?zN+WyB(chKmk@z{BXVP@#<#>Z)K}~Fv1GaSIi5}Ox!NDcnj|9z zE*-Dpnx=Ekux$rsRy#H&JfEWHHm8*0c_Pn?u+y33 z6xs90m&3HB>bWMlvE0LV)s=DC<1e*+jPE^0>l%JrzpPl%l)Wd(njLl5+N_oO@$uoc z5yn6415-2nK5%}ac5crM?N4^Vx7BGAeEHm6*jarrr@pzX*3J4%d+=WWXY&6M+OVDb zoZ_zPB6lZoeRo!q&zqr_GP|m_y$f6CUDeeoo-^3_7PnO87)u2frf%KjG7T4}8%c zepPGf8`%@u1b*RF|NF}iY$*Trg?k6DJg={8W^H4A=R3qn>Kl5FcVT?P6?^CKRCxW7 z)*-E*8fVplW^kAyWush@GnV;^rx$6SVVO_(x-svyW|_twN^;4{nWG!Opf+Dxv0dPj zX39a@r8jh^D;gt1>FdOy0T%jgR?N0&tHuaFW*h6JCe6jVhPj3-LjKTXU>bMnl8kZ- z@HpJeWe{PcXh_hfa-RhMS;=BedkxIL5)pV@=UB{3?uv2`Pv+eY zV7&Py&ue*(p5pJhxWRkr!OA;E-k$Fb{f4T~c?_ zwQ`^AJj=Mhr`pN?Df~A^W9PHzlFwF8<5E99o&VbN(SEy0x<}jjuXWQI%n{$ib2qe_ zj{FEu?sYr(Kh=Jgb!6zrd)Y%ovHNc3n#Q*?z_}7yNLHN*+*!O+9BiBWZ0?=hQ{1O> zpT~U$_nF}C;=T!e>FoTo;JnK<_NN#_ktx`DMeOPBIoNsKZ2#ibQ0La#jGpPP#?&tA zbPoBQn|_w@9~t%kw|6G+QB+yHuIlU|A)OEek)=Su03if|7$He_XCoj>B#5Ytrb9X; zlFcj#$e0EKB7#OmM{o;@4kAiWR1`=$fCvtbIN~~}ArVD}QN|S%;eDs73!24o=FPn2 z_nrm+oV%QR?z!ilyVTm{e1C#HRn}SetAdnz)y}>v*yo<{))HAe6~%M%6T`ohT*s0I z9${F(dF@*Kl(qU>H@^DR>3x^EZ&q@-r_6l=H5*%-^RT@IzckkBXj!XOdA6BzM*7>q z8W+I2Df?Xuef(&t@vY5j`cdXp_Qs)RzKq8|kk9WTBQINio04bExGzUpo{MP=5X1JXA5y>oV#Q01coC)m@5X&)VE=lSSBc>G5P=5^y)ZL_{fv?EA|%M-&H&PjIPmV^^ZUOW2JxCV+Bt^_mPeQM3_#<(|b90^~X?L|~P=&{FWvC#<^>#AN$(3*y9D- zw;a4j@oSNHIHauP$D_0A(OML~6(;TKL0pM%*ssLrrpj}a-Mwwoq;1sIA)<_OsVyq) ziNsH$G}@*}+vJ(cG>tWaw&mz{wz+jh>`^tSIfPunfnguQUv zgZRINy}SPIzuKYAGI)Lm%iwK(a*i(b{lN1kVkemkP&!m~J6bKd)LRZ3*dNxhceCHo zvTA&7%Xa*~cBMRPep`!-FWwd5IogTxTVpbIxK^;ZRZ(u^p;*RTyu2^PH;s92q8&W4 z-&E_;Tje`VGADZPORi8GYFp*`Em{9meGQ!?zhN_689a2{6_lwVM**2JKcJVyNq(NC1R$~JtJG&LX4t-R&2j_{@ zfh<4d1Y~i3O&k5VRz(##tg#DP$0)TgFs68RTY2RkDNntmv4>oCAe*|S4}}+7tjP&$ z`+TGDpraKY^uyHk9VmNfKIxJsZ5JEH)BoADyR#P}N4|@v^30OhAb>Vn2+KQn^g(E} z-gf0sN1Zw@RPex&Cs$v@188KEXD~w#)Sz$^=-kE%uG(c@Zn;$MOvedH(7M zHV%TyyA3kWi;T~aA@8ex!+b2~tNtx>Tjlrsq`jT%_?@YG*>5x+{Dx~uVccsDZdlqn zyJo3=eJny*drm6^axgeozU@)JKZ`!*o*MSQwk@>2zC%bo_NTwC^@}@jPSjEE z+hs8Z+M#pzIG+8XOf-G?7xb~xo>1ccY#RtpB<7`{n(2X{*w}JM+@sI_iVR zKc4d<+AICdo|7qA{}y(acE}0x))7!&zyB5F2Xme09o;5;8yQ})tLV!&hyKQW=GJH7 zkv_n_ha~TtPnPPx&7Q8*>EB07iog575&A`JW|wz(vW@ zZ)s~8-1mUU=QlkM^we#|HC^tEZ@e)N!8Z$e?B@?z z$rD{H$oBW@Bff;)xR#*LH@f{qha6omY0t6);|Ys@U572N24R|vP0o|hnLWUvB;HrH z>(}M$+pb3^@%3QQ135B=i8JTdw{;+$YZ-0oKklky9zDb$J|yQ7T-QFt{^Sso!y)-r zC1vhqZs;KM2XkN-3->kT*(iUj{B9XCt@HH06PZ$%v`1(U8RxW%dfRx;v{k-ckDUF( zL}&J#(aaD2M;_*S;J>efLci*IaQ&5Mqjf!`&hzPDrEb+@=;5zj%snK+UR^Fg7gG=U zJzjs$yw)QQ=7n->9nUjuZW*ha58jFYO=(%$I@!LoH9S|+o@GpK2EOzm;&-y%wX{t} zzRU*?py%8Z##|}$8}9(OiLGTEb5FHR{E+dYUoVww2J&pUj5GOuygX+n>u4b9rhf#) zvwmgEn0#Bm&LVQ2LVf`BPVvvVd|#e9$AbQ2@PpoReXK5r_t+>y+x*;0t75-Tpf%|8oY)#}^iI-T%#)!sPZ z*Sw@f?$2g3t`a@>1*q{ITGt^nSkbtivGl;6!7ZQb&zITd-p<6fHP}GpX2CD>l3d5} zuYV{YICqKVx%z#P{<%w{8tnTb)rQyG{2K0PDZw@hze%Nd>gO{q7OU~w^>qFB(>(PT z)2|6?eQ2v{_itTnuciNu@3u46hV#rA>xvS}miUldqeF(D>IsYTuV2XgK1KH6`j~(B zXP(8YU!c#=V#j60Mt`j!|CEjz?^DT`@YL`Blk6Fg$MtXK!YRh@(Z_R+TF-SZz5}~v zUH$$$D60~ltS!*rS!2(@K4oF+HS`tdBKyTBWjsoKw@7{V>{i+1N`2wjWDxBZ{pCC{ zAf9Ko;_D+dey1Q-dpzJ4^f37}JHJn*+i0RZC)ymQ^&b~!hn+-7lX*Y9UZyDmc?d6rE2O^u(=^pMjwgtW;X+SI_hRgX{c ze8&XR98bAXHu0(nEY6UuhSw*QK}9K|AGHJ@Ic@H`x!LZb$un2fo(F$+i3C zewx`1xu2%g<0J7rpJ-ojAfENtFMeT5Ed4cB7vOMQ*h+n%s#`@a%T*B(9P_i|tIT|+my=5t8a7{=Qvn>REo{qe~9Oc)%pcB5(8VSE#pR|NV zwpuKO7i-a^4vUZ@<+-M`SkYu}8>L?#lzbUa zsymeu_!w(MfD&TUhy3l6NFE@N7s&${rQcIztQa{bIt+e-f|IPkbPpRvU`+I{-I z6FY^9JpcG@ZF}O~pFXVfOm4f`TR-pQVY+K%uMipz-+km;?bEP_T%+Z;t?_;O^+Vnv zZ>_c0@4ro+Nx{DI{+FM6PbWWhuGlh4?t%IZp4TF>@Z(S`ZA%@rv~{6#eoK(OzNgh* zpHSEZ@V!6qDN$@ek2O+LwVYcG@R)!haV_TC%r| z!@c_2h%?6Vhn%(q+SIGCet!jh707dZR?_0czU&)hzb$fuu|xJ?_ovrW&Rs70-PR(0 z?$7i3*N~Qo-D(|j&zJYNbseA7brijXuP;2zafhtlJ%v8DkuQ69k#7|{BY%|0&o!=_ zWQts|Cw5bO$QYsZW0w7C+S2+z86h=0ma%!7%u?@w}<{9{zN1aBltG zMf9B&y$fWlV>|p$w_8uj-btF+t2^PvgvExppFFv^oN$_~vGe&IBd+r#Dt8}DR0e)= zGNSIF((>@Zp6%)m%O0d>JGV|XZ(KVS-{Vd9=+vSfIc$jpJ;7k$09OJhxCzV!cY~E+ zJ!l4Rf&JhgN4zpxkO6vv!N38o1Ws@hm<#R(E5Ulu4Bi6!!9QAb8S31IXR)|M84ct3P{sc~?P+XD>GQDKfS&aWo5y^FqKcE$i}Rv`0;!hS1&F~oZ_Z3W0Sw%(Qe^G$X>TGj{mvuPukXD5(m${H z@D7AmY*QJ2UG}kiUC>eVA6Fuyk zo~EbYrKcO=*Yxms($^{TcS+eC!mridriXX6L*_cgN6!3n_@%DbYTY`&Z@osiN$3CP z>ApNh*jLYAl4G>X(C1wFM%#Vm`0`(+w|AkgvoFsm(wl1M>gi(%e^P7M#J8;QtW%8k z`lg>7Hu~b9r~eX<(JrH`FOL!S?K^3^Y5yy9-3@KlP?p*z^ zj1ga+|5n)WL(!+%yVm>K#5Y}Re%CMXG&C6dOy9D<)Gz0@{j?4Z4X4-Tb;`N>oOAa) z2ET7zzU#i!HUB(&7+?Nccp4g1x9pAom9X#r$9G@hyEpI+`?mL&_CJ>OqJyyy5B@j9 zYghbS^XWGyYq~!8bB(+9LH9;zL&F;P&WC@ld7t!_M}Dr^2c7un&o%2ZA9SyNLh_$= zPkhpdf4k@Bnw{j&eCy|$-O%k&;am3J&o!L0D|Jv0>4~2i@p!1@@BJJ(>r{9B7eCjm zCBNkmacKOP244(R(i4vu={vuN&fn#>A2rfF#|*xW(ADty|7fIZKf%|~;Ep|R)D!P_ zLXRJXO1=I;Cu-{8-wT!YMh6?|2iqC(m@p$AYc=A<&|>%}MxLlChbBdxsHuYX?r@@J zCUiG+4s>HQ{Ll>@jq=5vjr6@xz22^d9-W~Q4~{ueQz+%3BLBz$L;j*zquy_!k{%X! zLbszoRN9pb%_ZG_#fh4H=pLxZ={(-xpLvxbXEjvxjK9{sE<+>9! zi=c_nCD1~s*ykbWGU#sT15jnkiJFI?iO_ne2f7NHef#(lilX#Y{D)Vp&w`M2$IcV1wm zTcKi?-cZrM1uFV?zT41$^)f^M@&^t5V;(o;)UPr0SGE}XPxcsc%Aw-7g-~g4@OFcL z&rX9s=FdjH1{Hnkzo#6NMCYRhzdevN(l>^l)a|pn-AUa(og+@7=Q?+y^`tI89xC!Z z7aIK5t_Hugo53I4{iJS(_`Z~b?`VH~3mTtbl#hW*`VpZGYu(DFLL1zgPS?0sL8ToJ zL8Tu(Q0d2gP`zEljCy-Rr5`6kWgL}5#r_XKMZO0r^&W(7gjz2v6?%kt7W7+aKJ+NG4tgBA7OKy0-t@iRcnehck9*T&Mi~6*P~p#pikt_$ z>6@X-x3mT74?PYIhIUS3tU{BZR%k9X8d?kO4BZIr3f&9UpvR%Tp}mt&*2F-wp|Q|n zXgu@*=uqeeXd<))ngl%#mG=9m80qm)Ngo5XLuW$Mq069IP!DtrbRRSu+S^87L$jch zp~cWC&_&Q(=qhMF)B`PqehMvyDt3GW+8bI0wL@n@^PzK~Zm1i&7FrA430(w@cATtP z0*!~(Njh{HR7s_c(B9C8pmu0IG#|PO>V~d{u7a+GdY}!^!_W=T;52LsjfHN8WyP=1n2cbuxVHx-f zGzNMUItF?iS_oCXqpeVX=xS&%bPqHPdK7AfYMIysng#6)Erxc5E`mzG)_K!6ded9H z=?A^(T}K-HSx}8~RnXqhI%o{^eP}FH$)au0Sm;n_7Bmq$2bu(34YfmeL(`!Lp;=IE z6m5b|hGs+8LMK8$g-(WsjmBS~L!r6QDbRdqEwm8&KC~F>e+B*m)u2_-Z0JnrBIq2b z2kM3%h1Npj$B+jtgf4-83ax{79gDv}lb{bk-Oz`i8=>`3WgI>NO&m{~pvBO&(7n(G z=wavvXmB=Vps~=+(1}nFbPiPPUh7TIzS5XCv!IgxfHz(Tm33_6bw<4#okl#S6uxyG z+=(|sn`+(Jv!&b`_o7>j@&;Y)-Ys!9z}a)4>n!fxzc=dX3Ke@!yw$L0OO0XADQ?4_ zi=bl9;M)v)Hb5I1R=aB#dF3xL_^rzf{v@dIuZ4>J6{jG-oWW8$mkMf$~KQnhqxz+BC zQ1PqWJx2Q8w~X?;p<>_Oe}TGd-MK=E7eYm^-g^yyj)h8kl2GjSzBjJDL;NX=yYst} zzuG-Vrw#69I$h&F0$o?}oZI@oQC{fNwnX<@Z``BPHSX9CjQq_|rPklQ&l`{b(1=fj zt_^?A9sO7M)&;wder)gue{!)RI!P39iZ+IYqNw3JF?;tI}05qpYaH5I2R%2krpb2g}V{~!!_SSa*;Me%deoI7E@kU zS=H|p!#TMXuG5*iO7S#q8>C=&~dDmDH)wE`+FHVhM|X``yNLT9B`>6+oHAer`6 z7UdPYw5iVON>}A@twXCGPsMwXS-CR^vNS{obHcO*aWl>qFR#u=* zn>tmiu9Qx6=Ff1JPKB|oysD_AXtuKomP$ptTtr<{R*j)&(TOFZPZ<)X7MD$(?#frR z!NP!G4O8n?($Qu4BC@zBufka|OUV#-8Lo|WOuiv2!;zjb;fB2QsLVv(YcFw5a}Bz&+%?S`EH5=f(~1g|KKV*&akZ;bNh@|@ zgQ?mClv2{ls!OY=H(eT}q!(3AEmJb9OQ$O%E2?o{C99}>U{+bVGTJ$Nwlda*WtDNR zn>7bnzqmVl$DaNH^$peI7XFHcXbJ6rT(c!`ASw9y|0YKm5j=?wBn+2Wn>v1Mgz-=$n??E zFjXpM6YgRqTMU#_?!;naUHL^-^goU9twj@ioROegBcrOYv}h{zR24$fofXq>c2d%4 z-#{NDWfZ%nR#lVno{rKD9CSJAH0X_Zw@Wnx*m zHZ)#IE39BnDRRO|?;vlGZmrRDaIs4nr)#fWm7}CN^PCl~D!qfR7QM17XH6}1<-3Ye zV}c~)6qemwRb5K2V`GL&g)*jWU}ll@NS@cUnr<91vZnh?HmW;u30k9!rGKQy#1>j# z^e!$|vYZw9Mho;t%AbL{twgUfnH=@>oSPXXN~W{2O7r$|sw=N7PZXK5v_Ii4BJDY23~ zW=-85^kXSAmg22(mXcalRyB({P(Qn(sDwJQ%jo5i6=lpNN)8RKfQUk)@q)DC>O5s4 z9bQIONuE;?a}}4tlFEGH%%||pROO9KD4bPQSVF6GKhCUhxhkt>;RNZ`^t<$&(a3a0 z3oONDibG3tmNO`doyJf!297>kXjxQ%SsB8@-q%oB^kK%3;U!%=RWzBXFM=`&6rol{ zQI(92ajt2uigFoAxJc!6!*5cV41E06bmT0TbH*(19Fbbgyx=TGqF!`^{E2hv`{5hQxek0mEGJ^$;rtWqNHVCr4`V|YP^qituj<`R9BU; z>LUzCo~9L4l$B_#9Tl!JW__)sth6jn%W+ldnWt6@Zw}e{t~kE9?y7W_lowN;b+)Lq zyt+#3GfkVGHCxk|BTh#{m8+{6Tzr9ssDY<~=Ze7@|0krJR^!a_T7FTblQlX&RJqz&QK~nq#92B^%XhI_vLLf~ zmzI{v!d{xsQeJ=?YXxN$CC;kTizBA}pDA47ta4RqDG5X3wdr}~bay4P^UJ0htB2U7 zU#JpV!a6xTG*k(xWIEIJ>obkm)WUczrr1@$4(jZT!E9)-_1QV4qII#7$1v1l=quSn zX~kt_<^8;AMf8R@DORh*PW_aSLiUi@gFTJ2Vrrq`Mj@`5Of7h@tZ~{k$$c63335Wk@>$_fe;nJz-go%yoiF|>}!cNI8U zvHB@7KAlJtWglF{)GhrfU4oRf)CszzkQq+)5we9lo#*%`d6USiDE!5ul3l`hLC5n+ zHnPp~n$4!sIhAxpS&2(4WhYct>XKAS8+${2%9!ZH9YV`xQ7LnJR|K&<7GO5cSG>k# z$5~yDpDQ?gxvR925N^!I(iB$78iNgF`{#GX&8Q*k$Y1$2KH`V^}R24WsQPCWNO#@q!~p|DFG z1uXM2R!+;RtST!%&8VA7VfTXhif5UMi;JF7(>WZv5S z`nb9ot1QSHGT4ZODzn&zF&4dk=Ux4ZPZ`t2iRM&kmUuRUn$r+t2%q9$U=?w;CR10a zdE$Xb7Uyd+zN^bQdvh75DOJvC%p~4(lV42i zl&*Yl_}8Ugo;d86g`Vo6Guu2VuOd^I1c;CnyPVgX81%4T~Pql)-WFN?}!1 z`S3x5is6o{EQl**SC}wFlv5P9-J{j#wpi=3_ry1p9|>NRwKHaQ;la)iOnyIc4dfCLiLpM}?8@6Q3?%1`(hr2#BWna?fIma#YQn&VcEUz`{o(X>$@?6E& zp^Hbq-ha)Fhq|n|_QTFTOVdjp$PZoT3!Tpoo9rogk@7v!w?$2@0mVVj&k?TKB zX}tBs_4A8u9lzR^QnLM4+psM=lhY2@*cw82C2@PlwkTrPh=F0rBdX(%CwBTv)`&@4 zwvO2U`BR(cMy*fES$^B*EB9^PxP0@^@U6I~gwLjbO$jz5FKN9_;y>ieD50`OH9Z?s3|H||2KN_)nU$;$d7cEHYzkcuL zVPCzJ6!GWa&9kf8ZLSJ$w>fp@mzy_z{k!D8PX?x3mu_#0TN-A+dF2vM=ZSx{$A^YD zFIw5j@#xmz=1U&^lfC1k*LzM0ClEZ%x>>7!XT*|srf%M0u_S-AK61qL57LsCewM#w zThjWZ9beRJx#z;BEqPhpQ+}M}N$S^a+?L!IFG=a1^|!{XZEo8|-@MaQ-#@~hGqIm% zclI#*WJl*Sc-nco;WY_aV`$)B5i z^_^nR90*nU0J{7l0M%i@34KnCG5+2jjL>HQ|dnb zCTY)I1Gns7yC(U_ioRQZZg+A^vj2A}PwyPpH1oS-$t@4xV0-)lsDv}EpK1AKKZ(?dq?E- zSlW2-`bScVmpU4QXADSr{mQ;6Q{x>?7k_QF4UAZpH0A1rNq2mow&nSN#mOVIry6@d z`&r7!YXXz{*=}##HuAodW4#xiA^*O|zT5Qovd&uuZCaXq)wBgkhqujbTzqAZ6zz?z zNwbR*Qa;RyYJ5QpZfe{dZ3{fPEa~eGJCpW~dSi1<%cL!nUny-=%U?@5w&#MBW5wee zhxLBEasHE*Gvv=(|H9_oz0;HL7}Ix)tN6f{i{|gz{BB{#l<^5~ZMo;oxa6xo7`o}J zPu^?HxH`m^z22T|y*@WNzscTs#cK(T{kL{WX}k2cly@GrZOO|F+tUA%j~cIcxEp=@ zH*e+~+lZfM+VW-|Z;Gin-Xw9~{0{x**bd~*v~}orylF$v<4qFx%};%Kwr$Ft)wa}^ ze{7oc^p8yv_syUA>@3^IwUxG+&mL=p9DI=%xzWbv=(YZ4EirByr#T z(!(=s83RgfrH8+78ourOCW-szFWp&fTX<}`ZRyVMnyy~F22UBE~0>xkoNCUqE1Hdf6dj(25Xb-Gl z47eK10FhuExC>N(Qjh^Uf--OeC<6UKAJ7>jf>_`JIpBJ5Be)mb1foC!mW3r-nq_Mg?1$)yy z_R(?psu)`dc6=XWJ;lF-hPW}Dk#>ROjolB~Mb0PP`I-%73JNZ8tXO`b1I zpRQv;K?*b*k$9k6J+>BRePgbdVS)hJEd{4$;C};<|0P(j#Kr{6@LdFVB)yDQv&AF8Mh}n_^Eq^>pk#L+*=xbnfifueyzjO?jnLY}GSw4p{K$ z^Z_qjbC2+>g=Z~1YvEZ7&suoa!t*pdPs6hYS!rxKTR$^UQZ)8`V; z+JrvOtUdJB18dtR&R=_M-8F05wI8sypx3ug?;3pj)1z;Bcnu~v?~zsKUi0kuwlx9I z-n8b>n}I2Bbl976M_Ib<yQ|!`chBI)-(Qs8^xpHolWEX);sw8^4;TKU(NbC8ST%BZ zW4DIpEw}yYk}cg<7H-bGrDD_S+UsoZzwESq)TPok_mx|0jt_6O{k*fr<~mkmTY9oa zWSsXv=lRo{Wa^&PK}F4sHv+GmZd$o zb4vQ_e;k;(E~Yl!^YH^|b07TP@!CT(>|jZo!!JLGKOCj9h(hdiC!5w79<>bEMBHvEQ>| zQtC^g1JW0zKb~>%H#=UPn=*BK_EXPq9nk+7kJ@>HZR@MArF>G?yRq(mYpNFUK-!W) zm!;n{X+);W{aE_URewxt{`@D$eSg2&{?^}u3u2(yy-Z=LUX?Z8QrnkSyk$GTIL;CkOJd<|CuH%lOBSzbw z$?lcbHM(U&n3DSA;gd{7$g#!^`iqeLL*s#@`L>o%-dg zi_>m-JT0yH)v=lP58azSW5Y{nd#b*5JmuHR{>)wVj&#qFv~9QDkum#;@Eu(@JiUEh z|GwK67=-ACy^?BAI7qUB4+ z@}>*zH?>T3w2pi)t*Wp#?$BO*ar<)ZvTaA_3}}`y^^N}vwoL~;jn~cYo7xtB zQ`+ROM{IM%OvwB@pMHL)abwypzk?3zz5e#1uiv+qwrx%uR4^;!-G$wDT$$3m{i@uo zZGYRF+?+k+r4+wUU$u?2Zf_j*VDHqZ*^|>cMgM8rlCC+K?;rbH`pZwgl=i~~`yK6m z{8o5UGXB0Y?K(?Q##jD*cFgJfr|s7IYqkxuWjCj0KbSK3uX}BA5gnVpF7BC{mync} z6RB+5;XQGWX;w#i`|JP$v)Fm2GgS7+R(#qJ2aYVUUI_8Ye~ zKb+UR*XB-n;MM)M%U`^p>CjhQQ~$j6qO@4eM|o!_P(OMEWvqnI}xa}MmZ zUH-+8X6u`i((0o!Ge*5JWJkv*_H8e0xMiFA{msqm)?JZu{rtnW&+Z!C)cf9!sTUV~ zm1=FfYx}OqD>I)Q^L_d}%d=@0eE6!PYu0*O*bVcW`KW5zl?M_se)uVI$C8t6+wbVT zaNEY)7dGb~=#(OD|K#;6ns)s?EcKI+`qXEY=e7@gb6n=8m%mSc=fvu?gzQ%wuU_|@ zP20V?`HmmnPaSqk&y0hQr0n=C>(KUPJ?`B0;laA*eJ|`vZjAoP7O}pj=>fYX_4;=@ zq~4hN&i1}D0e|~X6>W09GjOW*+?P$IBtL=YS zdEd6wzz3U?E+3U#vi*c@*xP+F)7L+dvF@hA^o)dI>F%()v<>gfO|>ZhaP+dxw-4@+ zmHEfP-=t4^@u9ReMNc|@%0HG~&WH6PANiu$Tq9+jG>?RYx9#j$(h?FXy>sM|W>#;< zgi#Ok4MAg_7yf@O&{q-^)kF=-LOIPak*#D(6vduYNMz%G-UJp#{U5C0a)9cA4a%LHg{oC1n z>ZWfS>=Q&!CN^ORBSvZpPJ^3%(>&nmNG`7zrYyLZDA=Hokd;%+-OxLk$5 z9+>q=d}H?m=;5)mvogzg;3A$2jB_^+)VIupjg7X1gy-#w@?+}ZD`!&P4ND7gJ1~wG zh;JEW+Km1FkEvPv<(yjj#_E904vYhZe9MSzvkY}mMroFPx;Lzsk-evHnSz3Xv&x9C z*(r18VV059f`Wy1cC?%`eBcozB(xFN>yvE70($5nNvpTZw~49tRK1dQTE=o@Ecd*z zdoBIHS$i8>bN2|Otwx-H{ z*=&pGWa@z*Gzmzu8>sg{bs4h1{$%_XuMAJB?90z5gJicC5M55Q1VnGyyIUvAS6A!p ziqe=W`}*_Ap#P*l;FJE&g*X0`44M1HXGKOq!RFM!vt$_OZ#z@p*d2x~J5bh6Sr0V# zlnl}RwJRbd&;G{lO{sEz;Hw9HL0(qc8@pr4k0o43S@F9?r({q>*+08Cd2alAQ>yQr ztdh54`BUWG&-h3{j|9T2DJy=sv026yEc!9%qa?coRxE!d)zm?#$S}sguZ)ezh)2fG zW|;$|oE#_iPPPjb8FKz($`Kjjqi5w5Ce^>xD@Kc+I)JovcBd!9`{8ixfUG8hA1|JZqsubcA+ee0n= zkt23h1o~mhkh#Vjb7%Ydisdic@y4`*g3p>LFJp$d9k@LThscm~%>{pZ>y(VMef{*@ zm%w;gB7is7PBCn2$PjAGll6A7$JxGa&bhG3{3}-pJm>(g{S5yweO+Xn?d#_H&||>> z#!FxPa60wNwUY;s@zyCHGsc0T$JxGa%6Mb<7}{XBtyuoBv;qHUIK#(`abUetgiKviy-F$rdU$ zp%OMhP(My`-2OyYikKYUyTaiTVVLt9=lwpTCv>0HLL<;lye>H z4_vca3w;k7%si=4egx(72v>l68KX}_Um^Xt?sMY1CVcx%!oEIf#)Vh>%y;a`+%LQ) zzZsWnHPVmfA?u95Jh&uvMqK2Y5FU|ZLgFG{%1D|VW}QMsA4xacVCI==5*ObVNE_rZ zWl0%1gh%u<7Zc?A@#pRk+Zx9QH0Xj{;4wnn90!zSZ zuoHX8X#SOWHdP=wpP708?>?evwe5$_LVpFA4mgIe$`@PPm1_;=b;K}CzeV_+*d z2rfYXF<`N`EnWXfTe`q6c9L@hCRW`>g;0^X0eHZFa{N1O`A_@hm)f$B2K+br#n%t4 z$dtA3Y+oBnn%Gf%;#yD&q<-n2?Ld4@qhBV0$H4h~Ok`gG#D`;m$V>$j!Hq!r#smJ7 z26H^`s8$1H@1pdLI1R)Hsh2mGf8DxGskn(FTtpauj41q26$ z1Ox?z1ciiz`UeCA1_TBM2?B$Hf>lNS$$rfO{PdU~VJRKt9{^7Gx98cLH_=F zo|Fq@*B~YR`4>buh;X3JuS*H`4+stk3JwVk20?HJ==m01Zh&4&YBnVM`3DC3`-^@- z!KfD^@?c9aX}Zf-C%j93&qmUi$4QF91)yF{Nr@`Tsh8fkrCFn=*c zXlOf>Y1hv98%8iJEX)u7KqQ4xN_4bPYlvQ_=-eLJerOU&P2p%E^#@RYJDoR-xWBi} z7JuE+{(+&Pp+SMc)Ft(`3!`ePkzjbZ*h%z^&@~o41E@Plj|C$&n0SQV7HO|aEkW>0 zi&RR9o?>_QPuNO&6?28kA8DPm5nEFmpf$gGJCY;z75-49SSc&Ih9Er%h(%1> zV~TcS{m^#UL`axn`>-(VqFW!!V4d*ruy7+D9!?QS2$y~dWkmHti;ie2bxMjxTiWS0 z2cba}t?Qv{bRnr7c$(oNZ(m+axgN~$-O*6&-WA<7Z%+oJeS54Bf`s<`75j>B1?vC2 z-mWXITba%b3DwO^JFs!PP_#CB*V_)!-{@#>e}{!hzgf|tA5S>+rEbwdytEUkU8pUR zly=nK5e-8LNAfp9@1L%u2B53-M+aIX{un?nMbe&b{0&D_3+)FSR=XsADS}_ED`l3|?^K&oiyMbp(u0r~?JhL)N*E2zH zUw`z8M&DTK90%{!{7uFV!_crhIaai|kb3&SF@n@9+24&pTgi{2$J?R5_}}HUbpqwH z(PucaI@0bgXmEjEz7wHLTA6@GmyzC!mR&^KL-2=QShFjV2GjoT*gYQG4J9RtwuwIs z)ceLx8-~C$kh(h1ABI1O55yxYn)1ETjBL0gBCLoqGsB5m zy~A8`CEE(O6x3r8)~G0*-%PMZMjFz>BXnkKRHRXFd*apzYh+Xh5pI@_jEsyj>Lr)5 zkx@}mh>DPUI3lA+Fe-|)T04;6fqY@LM#3Ex)iJtb6zw+#gx;d|-g!)KVtD)T_U+8} zO9QD`ANNKJb;&Z1=_(rSi_lj9(TTX|5iVm)H#fts+W96XS@mN<9WQO|)90FqA|kDD90T65d`I#Tp$Vt?fl0qbX9beOM6Q z6ouyu!msD>)YUc0E&RQi=i091nKK){6o9{6#F*&K$VkA?Gx5(HMtVO+L~p!N*38bt zdJz}zwd1MdIJe5iXM5svUGcpEc&H8E{~fiA;BOWq=nD9{A?pHU#xUPp&L|yE&gJNk zfv=}h=S7UwK6rL2qiQJQcQkV2;j%H3Qz+G!$EY+$mW+-m)asy)s~P_ZjPe9D?ani0 z^772}Jezj~Qf4D#6x{vMGM3SDA#w(w`&d$Kq)#D~iY?NpLFgMxN?)|FQC`Ns%nlvM3r4yhy(PLy{|&$r7htW<^oTJ- z$j)vgDZQwnD{YBn?vWWnW`|&4kv&F0plsa?H^$Z2Qp)bajEBoU@>Cq(3o;fI-HpVL zPDODmiRy6vdKTitjE1Eotd#K{wtzHwy;O&Gm{>Z zcm(m&nGzR1ImFo`m_>}39wiTUqz8=kuP=TvoM#)aRaVmfH9W;ws=THA8C%QzeF^?-XLXy3Z$84A z;BjTI@|rSVEm6B5tvB)OB@W|`%+$WTW zm1RnRdQ|y?x>T)F=cu#%s{Ddk6(=&%ALShTF2!FxraZ0Qtu9h))b}jAEZZ$X$_jjb z6i=|uXR-K>pW?V*U97s*Pb|~a9hO|R9nY@LrR~30eo($p4k&+BZdX6I?6>T(RQpx< zy`=gp-|*Dx3|iNwe8M%mLzd4hEta<|J1tu+pC}vDK;?C%Mfq6yPbD}fnfBh^%Tu{7- z$<^4;67$agvX46D%i?avKrtK)cVg#AHtwc7V}zBR@EP+zaou;t8D;)A)>VU9W^KcJ zja-@ksrHQd-|P3M=6}<%k)_Z7ESysK)cntoIb;53y)yOJM?$FhZya;=JxUT&q6Km7i5gih8L!K<%MMt3j%2xmhh| zdU6bGEl~6Ef7#!f=e6Shat>{r$s7L9WdMEu zr%$S3;okF1?+Djr`_-n^L)ZP4Kv-#1aIMmSzjYQ5zrS$3Y#+k2K{JEiV%C&>nq-NbB z!#E>ur`KuL>s$8B@*+d(H6drP5wum#t$AHh$LV^dY^YwZlskXfaJ{^gG0Gb{8+xBE z+y1QbM!izE*k9^DUGD6%=c`-vH)Mo+%ZrUodl_vu%lYcK2@~v2S0UE_-GR{Aw`lRU_W}Uw67JHfXn>5O+zwn)}tgp^dls9Z{&<=WB>K8vY z>}2X;>TB9b>XWjj45O^k{%{}v6+e_2QXqb9LU;^FeZB}JW?Wg788wKJEdPwTz!=lU z$ds8@a?DX~^2sh-uKY;}GaQUeDdjt+nPx~ieeGEz90TO~b|SC?^Ik(aVK=A)^+4{; zLzuCCy-Ynk9?$|%nU(N#`CqGF>iMOk*CgcfZiqX@ke9xe@Fwc`y%CppQd;7uugB^7 z46!zseO8xp@U%h<8rhX)?hCtGMsc-!fmVPwr7i!u^sN|Uty9=a@$tQVd$9?mB z!=^lnF!GH1C31gX(A!J1e5l-mmAFv3Pa}|fe{%Simv^x)2A6`7K<>e0g2^BQ$h%-g zpb*Rka)g3tAou8c0`VtYjeV=4Xh7}}iX7Zfm&=1HiXDsw@~nhFY%1`L6V=nC&&)&e zMYcc=vz$;lgx8l}(oCC*{mgum`u5NH!e&|V2eU3|uRz`@`e%^-ls=aIjs{{tJou$K zrJg(wXaSd3 zs_Y<+r##JQpEVg7axBK{Tp1L6NW z{DCI3_Mdz0UX`~&1)LjLFEe@1>^;=PEs5^p1ZG5q`C?+L#Ke+%(?;&xd~%`Nia~CI1=nOUPeGei`|tpCGuY+e+Kai;?EI(o_Hnv>*2o%{&M&m$j>Ifj{LjHzmoiW$LPe;@qI;GanTL*!2(|99j+O#ThzKT7^1AW*CO(e%oy6}VJ|6z1@Q;Om4E#&TPba^Y z`~~D^kbfKbBgxMse4?{Hw*k`f!{3fn+1Nez`tpM&Qs4Uu=iby@*(&fd2pw}E@XgJ2a{12%w7U@O=SJ^&wsPr(=9 zTksQ5-?u1HpcCi{dV)*95ReA00#m?LPz-Jbw}X4YL*Oyc0A2!{!FKQ`@BwHAUx07G zPr&~Jo+AVuK@V^V7zl=f6p#hRfr(%WC;P|pkHDAU zBxwJkMd=KBf*5cau!E6c9GC>AfE&S0U^Z9)mVgJqqhK|720Ra523x@{@Gkfid4w7y@!lqq{f#C-f2-N1zQ{Z#)jw z(En#|`Uz+faqe4|nd1re|EmxCUgox)=W6TEHQe9un+^Vd^#Og*j!a7%uEmTTcU3=a zXx!y-GqoY{gD;IAJS2f1%BtYE5%f=k_fs6D`4wgS;LX%xeuw4MkA)<}CB_Z8?9!o$ z@tPLH_uXCmUKBt3G-lFR?Q~W@sYm89nZJcnnKG@6Z?F%J8$6h}<1+p@UCz8BMIA^m zz%gO0HsdlSFf_;!%u|D*{*jg_|7e~O?Bv&3?PBR}>818n(^Vy|vXEbXsB-2haeR^8 z6*sN4Ixeres5pNhzkd{$KdZEIR*6BYDwH^W4Wv-fdAvVsaz^9^N=SKc-VGF>@gl?s zl=GuQaaFFF{6)Pu0#dCJEXtn=QgV{#qi5OaimwB%9vH^ zwxeIpR7v)H;aUukTl_w^-3V?m3auS9C1L_G~ttVOyExi z5|=~j6$}ODnj-6tpqvU!KA{2!khMs{vMvdz`V9Su>d*GbS|xn4UJ2}kO`Xm5-awl8 zrSQo*Es%9u;&KR|tk;D=_)>wa?*du8g-`ZDCLgy=bvwzrZq6&wQqX&t_1;8WY$SYg z9wnH0jajQvrxdvv2%qHCZDzj$I)@SQ9;Uo`#NjI!Dr=qKfp$h;3ahE#QiD&IC+nhM z757EWL)t0_w?g&3px8_H4fbKD_oI?;*1M9h=qG&H@MXhy#LOhk+_OGQSoR{iJoX*- z5vTXhBK1!j}$TI(+d|AaOa&c5EYT);ov&*PJ9jrPgHf@(KS=A3h};2K$-y znyUU8K54s%@Q2SIzA2$ngK?OAZxfZ&crzV7mp3d#@&x;Uj5qTrhEM#|JWP4tkU*W~ aX8I!d63qzI)Ig|D^Arz!erBc*-~Rx$*cf&I literal 0 HcmV?d00001 diff --git a/app/src/main/cpp/audio_lame.c b/app/src/main/cpp/audio_lame.c new file mode 100644 index 0000000..136bb4f --- /dev/null +++ b/app/src/main/cpp/audio_lame.c @@ -0,0 +1,224 @@ + +#include "include/lame/lame.h" +#include + +lame_global_flags *glf; + +lame_global_flags *initializeDefault(JNIEnv *env) { + lame_global_flags *glf = lame_init(); + lame_init_params(glf); + return glf; +} + +lame_global_flags *initialize( + JNIEnv *env, + jint inSamplerate, jint outChannel, + jint outSamplerate, jint outBitrate, jfloat scaleInput, jint mode, jint vbrMode, + jint quality, jint vbrQuality, jint abrMeanBitrate, jint lowpassFreq, jint highpassFreq, + jstring id3tagTitle, jstring id3tagArtist, jstring id3tagAlbum, + jstring id3tagYear, jstring id3tagComment) { + + lame_global_flags *glf = lame_init(); + lame_set_in_samplerate(glf, inSamplerate); + lame_set_num_channels(glf, outChannel); + lame_set_out_samplerate(glf, outSamplerate); + lame_set_brate(glf, outBitrate); + lame_set_quality(glf, quality); + lame_set_scale(glf, scaleInput); + lame_set_VBR_q(glf, vbrQuality); + lame_set_VBR_mean_bitrate_kbps(glf, abrMeanBitrate); + lame_set_lowpassfreq(glf, lowpassFreq); + lame_set_highpassfreq(glf, highpassFreq); + + switch (mode) { + case 0: + lame_set_mode(glf, STEREO); + break; + case 1: + lame_set_mode(glf, JOINT_STEREO); + break; + case 3: + lame_set_mode(glf, MONO); + break; + case 4: + lame_set_mode(glf, NOT_SET); + break; + default: + lame_set_mode(glf, NOT_SET); + break; + } + + switch (vbrMode) { + case 0: + lame_set_VBR(glf, vbr_off); + break; + case 2: + lame_set_VBR(glf, vbr_rh); + break; + case 3: + lame_set_VBR(glf, vbr_abr); + break; + case 4: + lame_set_VBR(glf, vbr_mtrh); + break; + case 6: + lame_set_VBR(glf, vbr_default); + break; + default: + lame_set_VBR(glf, vbr_off); + break; + + } + + + const jchar *title = NULL; + const jchar *artist = NULL; + const jchar *album = NULL; + const jchar *year = NULL; + const jchar *comment = NULL; + if (id3tagTitle) { + title = (*env)->GetStringChars(env, id3tagTitle, NULL); + } + if (id3tagArtist) { + artist = (*env)->GetStringChars(env, id3tagArtist, NULL); + } + if (id3tagAlbum) { + album = (*env)->GetStringChars(env, id3tagAlbum, NULL); + } + if (id3tagYear) { + year = (*env)->GetStringChars(env, id3tagYear, NULL); + } + if (id3tagComment) { + comment = (*env)->GetStringChars(env, id3tagComment, NULL); + } + + if (title || artist || album || year || comment) { + id3tag_init(glf); + + if (title) { + id3tag_set_title(glf, (const char *) title); + (*env)->ReleaseStringChars(env, id3tagTitle, title); + } + if (artist) { + id3tag_set_artist(glf, (const char *) artist); + (*env)->ReleaseStringChars(env, id3tagArtist, artist); + } + if (album) { + id3tag_set_album(glf, (const char *) album); + (*env)->ReleaseStringChars(env, id3tagAlbum, album); + } + if (year) { + id3tag_set_year(glf, (const char *) year); + (*env)->ReleaseStringChars(env, id3tagYear, year); + } + if (comment) { + id3tag_set_comment(glf, (const char *) comment); + (*env)->ReleaseStringChars(env, id3tagComment, comment); + } + } + + lame_init_params(glf); + + + return glf; +} + +jint encode( + JNIEnv *env, lame_global_flags *glf, + jshortArray buffer_l, jshortArray buffer_r, + jint samples, jbyteArray mp3buf) { + jshort *j_buffer_l = (*env)->GetShortArrayElements(env, buffer_l, NULL); + + jshort *j_buffer_r = (*env)->GetShortArrayElements(env, buffer_r, NULL); + + const jsize mp3buf_size = (*env)->GetArrayLength(env, mp3buf); + jbyte *j_mp3buf = (*env)->GetByteArrayElements(env, mp3buf, NULL); + + int result = lame_encode_buffer(glf, j_buffer_l, j_buffer_r, + samples, j_mp3buf, mp3buf_size); + + (*env)->ReleaseShortArrayElements(env, buffer_l, j_buffer_l, 0); + (*env)->ReleaseShortArrayElements(env, buffer_r, j_buffer_r, 0); + (*env)->ReleaseByteArrayElements(env, mp3buf, j_mp3buf, 0); + + return result; +} + +jint encodeBufferInterleaved( + JNIEnv *env, lame_global_flags *glf, + jshortArray pcm, jint samples, jbyteArray mp3buf) { + jshort *j_pcm = (*env)->GetShortArrayElements(env, pcm, NULL); + + const jsize mp3buf_size = (*env)->GetArrayLength(env, mp3buf); + jbyte *j_mp3buf = (*env)->GetByteArrayElements(env, mp3buf, NULL); + + int result = lame_encode_buffer_interleaved(glf, j_pcm, + samples, j_mp3buf, mp3buf_size); + + (*env)->ReleaseShortArrayElements(env, pcm, j_pcm, 0); + (*env)->ReleaseByteArrayElements(env, mp3buf, j_mp3buf, 0); + + return result; +} + +jint flush( + JNIEnv *env, lame_global_flags *glf, + jbyteArray mp3buf) { + const jsize mp3buf_size = (*env)->GetArrayLength(env, mp3buf); + jbyte *j_mp3buf = (*env)->GetByteArrayElements(env, mp3buf, NULL); + + int result = lame_encode_flush(glf, j_mp3buf, mp3buf_size); + + (*env)->ReleaseByteArrayElements(env, mp3buf, j_mp3buf, 0); + + return result; +} + +void close_lame(lame_global_flags *glf) { + lame_close(glf); + glf = NULL; +} + + +JNIEXPORT void JNICALL Java_com_frank_ffmpeg_AudioPlayer_lameInitDefault + (JNIEnv *env, jclass jclazz) { + + glf = initializeDefault(env); +} + +JNIEXPORT void JNICALL Java_com_frank_ffmpeg_AudioPlayer_lameInit( + JNIEnv *env, jclass cls, jint inSampleRate, jint outChannel, + jint outSampleRate, jint outBitrate, jfloat scaleInput, jint mode, jint vbrMode, + jint quality, jint vbrQuality, jint abrMeanBitrate, jint lowPassFreq, jint highPassFreq, + jstring id3tagTitle, jstring id3tagArtist, jstring id3tagAlbum, + jstring id3tagYear, jstring id3tagComment) { + + glf = initialize(env, inSampleRate, outChannel, outSampleRate, outBitrate, scaleInput, mode, + vbrMode, + quality, vbrQuality, abrMeanBitrate, lowPassFreq, highPassFreq, id3tagTitle, + id3tagArtist, id3tagAlbum, + id3tagYear, + id3tagComment); +} + +JNIEXPORT jint JNICALL Java_com_frank_ffmpeg_AudioPlayer_lameEncode( + JNIEnv *env, jclass cls, jshortArray buffer_l, + jshortArray buffer_r, jint samples, jbyteArray mp3buf) { + return encode(env, glf, buffer_l, buffer_r, samples, mp3buf); +} + +JNIEXPORT jint JNICALL Java_com_frank_ffmpeg_AudioPlayer_encodeBufferInterleaved( + JNIEnv *env, jclass cls, jshortArray pcm, + jint samples, jbyteArray mp3buf) { + return encodeBufferInterleaved(env, glf, pcm, samples, mp3buf); +} + +JNIEXPORT jint JNICALL Java_com_frank_ffmpeg_AudioPlayer_lameFlush( + JNIEnv *env, jclass cls, jbyteArray mp3buf) { + return flush(env, glf, mp3buf); +} + +JNIEXPORT void JNICALL Java_com_frank_ffmpeg_AudioPlayer_lameClose( + JNIEnv *env, jclass cls) { + close_lame(glf); +} \ No newline at end of file diff --git a/app/src/main/cpp/include/lame/lame.h b/app/src/main/cpp/include/lame/lame.h new file mode 100644 index 0000000..21c8afd --- /dev/null +++ b/app/src/main/cpp/include/lame/lame.h @@ -0,0 +1,1323 @@ +/* + * Interface to MP3 LAME encoding engine + * + * Copyright (c) 1999 Mark Taylor + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* $Id: include.lame.h,v 1.189.2.1 2012/01/08 23:49:58 robert Exp $ */ + +#ifndef LAME_LAME_H +#define LAME_LAME_H + +/* for size_t typedef */ +#include +/* for va_list typedef */ +#include +/* for FILE typedef, TODO: remove when removing lame_mp3_tags_fid */ +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +typedef void (*lame_report_function)(const char *format, va_list ap); + +#if defined(WIN32) || defined(_WIN32) +#undef CDECL +#define CDECL __cdecl +#else +#define CDECL +#endif + +#define DEPRECATED_OR_OBSOLETE_CODE_REMOVED 1 + +typedef enum vbr_mode_e { + vbr_off=0, + vbr_mt, /* obsolete, same as vbr_mtrh */ + vbr_rh, + vbr_abr, + vbr_mtrh, + vbr_max_indicator, /* Don't use this! It's used for sanity checks. */ + vbr_default=vbr_mtrh /* change this to change the default VBR mode of LAME */ +} vbr_mode; + + +/* MPEG modes */ +typedef enum MPEG_mode_e { + STEREO = 0, + JOINT_STEREO, + DUAL_CHANNEL, /* LAME doesn't supports this! */ + MONO, + NOT_SET, + MAX_INDICATOR /* Don't use this! It's used for sanity checks. */ +} MPEG_mode; + +/* Padding types */ +typedef enum Padding_type_e { + PAD_NO = 0, + PAD_ALL, + PAD_ADJUST, + PAD_MAX_INDICATOR /* Don't use this! It's used for sanity checks. */ +} Padding_type; + + + +/*presets*/ +typedef enum preset_mode_e { + /*values from 8 to 320 should be reserved for abr bitrates*/ + /*for abr I'd suggest to directly use the targeted bitrate as a value*/ + ABR_8 = 8, + ABR_320 = 320, + + V9 = 410, /*Vx to match Lame and VBR_xx to match FhG*/ + VBR_10 = 410, + V8 = 420, + VBR_20 = 420, + V7 = 430, + VBR_30 = 430, + V6 = 440, + VBR_40 = 440, + V5 = 450, + VBR_50 = 450, + V4 = 460, + VBR_60 = 460, + V3 = 470, + VBR_70 = 470, + V2 = 480, + VBR_80 = 480, + V1 = 490, + VBR_90 = 490, + V0 = 500, + VBR_100 = 500, + + + + /*still there for compatibility*/ + R3MIX = 1000, + STANDARD = 1001, + EXTREME = 1002, + INSANE = 1003, + STANDARD_FAST = 1004, + EXTREME_FAST = 1005, + MEDIUM = 1006, + MEDIUM_FAST = 1007 +} preset_mode; + + +/*asm optimizations*/ +typedef enum asm_optimizations_e { + MMX = 1, + AMD_3DNOW = 2, + SSE = 3 +} asm_optimizations; + + +/* psychoacoustic model */ +typedef enum Psy_model_e { + PSY_GPSYCHO = 1, + PSY_NSPSYTUNE = 2 +} Psy_model; + + +/* buffer considerations */ +typedef enum buffer_constraint_e { + MDB_DEFAULT=0, + MDB_STRICT_ISO=1, + MDB_MAXIMUM=2 +} buffer_constraint; + + +struct lame_global_struct; +typedef struct lame_global_struct lame_global_flags; +typedef lame_global_flags *lame_t; + + + + +/*********************************************************************** + * + * The LAME API + * These functions should be called, in this order, for each + * MP3 file to be encoded. See the file "API" for more documentation + * + ***********************************************************************/ + + +/* + * REQUIRED: + * initialize the encoder. sets default for all encoder parameters, + * returns NULL if some malloc()'s failed + * otherwise returns pointer to structure needed for all future + * API calls. + */ +lame_global_flags * CDECL lame_init(void); +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* obsolete version */ +int CDECL lame_init_old(lame_global_flags *); +#endif + +/* + * OPTIONAL: + * set as needed to override defaults + */ + +/******************************************************************** + * input stream description + ***********************************************************************/ +/* number of samples. default = 2^32-1 */ +int CDECL lame_set_num_samples(lame_global_flags *, unsigned long); +unsigned long CDECL lame_get_num_samples(const lame_global_flags *); + +/* input sample rate in Hz. default = 44100hz */ +int CDECL lame_set_in_samplerate(lame_global_flags *, int); +int CDECL lame_get_in_samplerate(const lame_global_flags *); + +/* number of channels in input stream. default=2 */ +int CDECL lame_set_num_channels(lame_global_flags *, int); +int CDECL lame_get_num_channels(const lame_global_flags *); + +/* + scale the input by this amount before encoding. default=1 + (not used by decoding routines) +*/ +int CDECL lame_set_scale(lame_global_flags *, float); +float CDECL lame_get_scale(const lame_global_flags *); + +/* + scale the channel 0 (left) input by this amount before encoding. default=1 + (not used by decoding routines) +*/ +int CDECL lame_set_scale_left(lame_global_flags *, float); +float CDECL lame_get_scale_left(const lame_global_flags *); + +/* + scale the channel 1 (right) input by this amount before encoding. default=1 + (not used by decoding routines) +*/ +int CDECL lame_set_scale_right(lame_global_flags *, float); +float CDECL lame_get_scale_right(const lame_global_flags *); + +/* + output sample rate in Hz. default = 0, which means LAME picks best value + based on the amount of compression. MPEG only allows: + MPEG1 32, 44.1, 48khz + MPEG2 16, 22.05, 24 + MPEG2.5 8, 11.025, 12 + (not used by decoding routines) +*/ +int CDECL lame_set_out_samplerate(lame_global_flags *, int); +int CDECL lame_get_out_samplerate(const lame_global_flags *); + + +/******************************************************************** + * general control parameters + ***********************************************************************/ +/* 1=cause LAME to collect data for an MP3 frame analyzer. default=0 */ +int CDECL lame_set_analysis(lame_global_flags *, int); +int CDECL lame_get_analysis(const lame_global_flags *); + +/* + 1 = write a Xing VBR header frame. + default = 1 + this variable must have been added by a Hungarian notation Windows programmer :-) +*/ +int CDECL lame_set_bWriteVbrTag(lame_global_flags *, int); +int CDECL lame_get_bWriteVbrTag(const lame_global_flags *); + +/* 1=decode only. use include.lame/mpglib to convert mp3/ogg to wav. default=0 */ +int CDECL lame_set_decode_only(lame_global_flags *, int); +int CDECL lame_get_decode_only(const lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* 1=encode a Vorbis .ogg file. default=0 */ +/* DEPRECATED */ +int CDECL lame_set_ogg(lame_global_flags *, int); +int CDECL lame_get_ogg(const lame_global_flags *); +#endif + +/* + internal algorithm selection. True quality is determined by the bitrate + but this variable will effect quality by selecting expensive or cheap algorithms. + quality=0..9. 0=best (very slow). 9=worst. + recommended: 2 near-best quality, not too slow + 5 good quality, fast + 7 ok quality, really fast +*/ +int CDECL lame_set_quality(lame_global_flags *, int); +int CDECL lame_get_quality(const lame_global_flags *); + +/* + mode = 0,1,2,3 = stereo, jstereo, dual channel (not supported), mono + default: include.lame picks based on compression ration and input channels +*/ +int CDECL lame_set_mode(lame_global_flags *, MPEG_mode); +MPEG_mode CDECL lame_get_mode(const lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* + mode_automs. Use a M/S mode with a switching threshold based on + compression ratio + DEPRECATED +*/ +int CDECL lame_set_mode_automs(lame_global_flags *, int); +int CDECL lame_get_mode_automs(const lame_global_flags *); +#endif + +/* + force_ms. Force M/S for all frames. For testing only. + default = 0 (disabled) +*/ +int CDECL lame_set_force_ms(lame_global_flags *, int); +int CDECL lame_get_force_ms(const lame_global_flags *); + +/* use free_format? default = 0 (disabled) */ +int CDECL lame_set_free_format(lame_global_flags *, int); +int CDECL lame_get_free_format(const lame_global_flags *); + +/* perform ReplayGain analysis? default = 0 (disabled) */ +int CDECL lame_set_findReplayGain(lame_global_flags *, int); +int CDECL lame_get_findReplayGain(const lame_global_flags *); + +/* decode on the fly. Search for the peak sample. If the ReplayGain + * analysis is enabled then perform the analysis on the decoded data + * stream. default = 0 (disabled) + * NOTE: if this option is set the build-in decoder should not be used */ +int CDECL lame_set_decode_on_the_fly(lame_global_flags *, int); +int CDECL lame_get_decode_on_the_fly(const lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* DEPRECATED: now does the same as lame_set_findReplayGain() + default = 0 (disabled) */ +int CDECL lame_set_ReplayGain_input(lame_global_flags *, int); +int CDECL lame_get_ReplayGain_input(const lame_global_flags *); + +/* DEPRECATED: now does the same as + lame_set_decode_on_the_fly() && lame_set_findReplayGain() + default = 0 (disabled) */ +int CDECL lame_set_ReplayGain_decode(lame_global_flags *, int); +int CDECL lame_get_ReplayGain_decode(const lame_global_flags *); + +/* DEPRECATED: now does the same as lame_set_decode_on_the_fly() + default = 0 (disabled) */ +int CDECL lame_set_findPeakSample(lame_global_flags *, int); +int CDECL lame_get_findPeakSample(const lame_global_flags *); +#endif + +/* counters for gapless encoding */ +int CDECL lame_set_nogap_total(lame_global_flags*, int); +int CDECL lame_get_nogap_total(const lame_global_flags*); + +int CDECL lame_set_nogap_currentindex(lame_global_flags* , int); +int CDECL lame_get_nogap_currentindex(const lame_global_flags*); + + +/* + * OPTIONAL: + * Set printf like error/debug/message reporting functions. + * The second argument has to be a pointer to a function which looks like + * void my_debugf(const char *format, va_list ap) + * { + * (void) vfprintf(stdout, format, ap); + * } + * If you use NULL as the value of the pointer in the set function, the + * include.lame buildin function will be used (prints to stderr). + * To quiet any output you have to replace the body of the example function + * with just "return;" and use it in the set function. + */ +int CDECL lame_set_errorf(lame_global_flags *, lame_report_function); +int CDECL lame_set_debugf(lame_global_flags *, lame_report_function); +int CDECL lame_set_msgf (lame_global_flags *, lame_report_function); + + + +/* set one of brate compression ratio. default is compression ratio of 11. */ +int CDECL lame_set_brate(lame_global_flags *, int); +int CDECL lame_get_brate(const lame_global_flags *); +int CDECL lame_set_compression_ratio(lame_global_flags *, float); +float CDECL lame_get_compression_ratio(const lame_global_flags *); + + +int CDECL lame_set_preset( lame_global_flags* gfp, int ); +int CDECL lame_set_asm_optimizations( lame_global_flags* gfp, int, int ); + + + +/******************************************************************** + * frame params + ***********************************************************************/ +/* mark as copyright. default=0 */ +int CDECL lame_set_copyright(lame_global_flags *, int); +int CDECL lame_get_copyright(const lame_global_flags *); + +/* mark as original. default=1 */ +int CDECL lame_set_original(lame_global_flags *, int); +int CDECL lame_get_original(const lame_global_flags *); + +/* error_protection. Use 2 bytes from each frame for CRC checksum. default=0 */ +int CDECL lame_set_error_protection(lame_global_flags *, int); +int CDECL lame_get_error_protection(const lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* padding_type. 0=pad no frames 1=pad all frames 2=adjust padding(default) */ +int CDECL lame_set_padding_type(lame_global_flags *, Padding_type); +Padding_type CDECL lame_get_padding_type(const lame_global_flags *); +#endif + +/* MP3 'private extension' bit Meaningless. default=0 */ +int CDECL lame_set_extension(lame_global_flags *, int); +int CDECL lame_get_extension(const lame_global_flags *); + +/* enforce strict ISO compliance. default=0 */ +int CDECL lame_set_strict_ISO(lame_global_flags *, int); +int CDECL lame_get_strict_ISO(const lame_global_flags *); + + +/******************************************************************** + * quantization/noise shaping + ***********************************************************************/ + +/* disable the bit reservoir. For testing only. default=0 */ +int CDECL lame_set_disable_reservoir(lame_global_flags *, int); +int CDECL lame_get_disable_reservoir(const lame_global_flags *); + +/* select a different "best quantization" function. default=0 */ +int CDECL lame_set_quant_comp(lame_global_flags *, int); +int CDECL lame_get_quant_comp(const lame_global_flags *); +int CDECL lame_set_quant_comp_short(lame_global_flags *, int); +int CDECL lame_get_quant_comp_short(const lame_global_flags *); + +int CDECL lame_set_experimentalX(lame_global_flags *, int); /* compatibility*/ +int CDECL lame_get_experimentalX(const lame_global_flags *); + +/* another experimental option. for testing only */ +int CDECL lame_set_experimentalY(lame_global_flags *, int); +int CDECL lame_get_experimentalY(const lame_global_flags *); + +/* another experimental option. for testing only */ +int CDECL lame_set_experimentalZ(lame_global_flags *, int); +int CDECL lame_get_experimentalZ(const lame_global_flags *); + +/* Naoki's psycho acoustic model. default=0 */ +int CDECL lame_set_exp_nspsytune(lame_global_flags *, int); +int CDECL lame_get_exp_nspsytune(const lame_global_flags *); + +void CDECL lame_set_msfix(lame_global_flags *, double); +float CDECL lame_get_msfix(const lame_global_flags *); + + +/******************************************************************** + * VBR control + ***********************************************************************/ +/* Types of VBR. default = vbr_off = CBR */ +int CDECL lame_set_VBR(lame_global_flags *, vbr_mode); +vbr_mode CDECL lame_get_VBR(const lame_global_flags *); + +/* VBR quality level. 0=highest 9=lowest */ +int CDECL lame_set_VBR_q(lame_global_flags *, int); +int CDECL lame_get_VBR_q(const lame_global_flags *); + +/* VBR quality level. 0=highest 9=lowest, Range [0,...,10[ */ +int CDECL lame_set_VBR_quality(lame_global_flags *, float); +float CDECL lame_get_VBR_quality(const lame_global_flags *); + +/* Ignored except for VBR=vbr_abr (ABR mode) */ +int CDECL lame_set_VBR_mean_bitrate_kbps(lame_global_flags *, int); +int CDECL lame_get_VBR_mean_bitrate_kbps(const lame_global_flags *); + +int CDECL lame_set_VBR_min_bitrate_kbps(lame_global_flags *, int); +int CDECL lame_get_VBR_min_bitrate_kbps(const lame_global_flags *); + +int CDECL lame_set_VBR_max_bitrate_kbps(lame_global_flags *, int); +int CDECL lame_get_VBR_max_bitrate_kbps(const lame_global_flags *); + +/* + 1=strictly enforce VBR_min_bitrate. Normally it will be violated for + analog silence +*/ +int CDECL lame_set_VBR_hard_min(lame_global_flags *, int); +int CDECL lame_get_VBR_hard_min(const lame_global_flags *); + +/* for preset */ +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +int CDECL lame_set_preset_expopts(lame_global_flags *, int); +#endif + +/******************************************************************** + * Filtering control + ***********************************************************************/ +/* freq in Hz to apply lowpass. Default = 0 = include.lame chooses. -1 = disabled */ +int CDECL lame_set_lowpassfreq(lame_global_flags *, int); +int CDECL lame_get_lowpassfreq(const lame_global_flags *); +/* width of transition band, in Hz. Default = one polyphase filter band */ +int CDECL lame_set_lowpasswidth(lame_global_flags *, int); +int CDECL lame_get_lowpasswidth(const lame_global_flags *); + +/* freq in Hz to apply highpass. Default = 0 = include.lame chooses. -1 = disabled */ +int CDECL lame_set_highpassfreq(lame_global_flags *, int); +int CDECL lame_get_highpassfreq(const lame_global_flags *); +/* width of transition band, in Hz. Default = one polyphase filter band */ +int CDECL lame_set_highpasswidth(lame_global_flags *, int); +int CDECL lame_get_highpasswidth(const lame_global_flags *); + + +/******************************************************************** + * psycho acoustics and other arguments which you should not change + * unless you know what you are doing + ***********************************************************************/ + +/* only use ATH for masking */ +int CDECL lame_set_ATHonly(lame_global_flags *, int); +int CDECL lame_get_ATHonly(const lame_global_flags *); + +/* only use ATH for short blocks */ +int CDECL lame_set_ATHshort(lame_global_flags *, int); +int CDECL lame_get_ATHshort(const lame_global_flags *); + +/* disable ATH */ +int CDECL lame_set_noATH(lame_global_flags *, int); +int CDECL lame_get_noATH(const lame_global_flags *); + +/* select ATH formula */ +int CDECL lame_set_ATHtype(lame_global_flags *, int); +int CDECL lame_get_ATHtype(const lame_global_flags *); + +/* lower ATH by this many db */ +int CDECL lame_set_ATHlower(lame_global_flags *, float); +float CDECL lame_get_ATHlower(const lame_global_flags *); + +/* select ATH adaptive adjustment type */ +int CDECL lame_set_athaa_type( lame_global_flags *, int); +int CDECL lame_get_athaa_type( const lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* select the loudness approximation used by the ATH adaptive auto-leveling */ +int CDECL lame_set_athaa_loudapprox( lame_global_flags *, int); +int CDECL lame_get_athaa_loudapprox( const lame_global_flags *); +#endif + +/* adjust (in dB) the point below which adaptive ATH level adjustment occurs */ +int CDECL lame_set_athaa_sensitivity( lame_global_flags *, float); +float CDECL lame_get_athaa_sensitivity( const lame_global_flags* ); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* OBSOLETE: predictability limit (ISO tonality formula) */ +int CDECL lame_set_cwlimit(lame_global_flags *, int); +int CDECL lame_get_cwlimit(const lame_global_flags *); +#endif + +/* + allow blocktypes to differ between channels? + default: 0 for jstereo, 1 for stereo +*/ +int CDECL lame_set_allow_diff_short(lame_global_flags *, int); +int CDECL lame_get_allow_diff_short(const lame_global_flags *); + +/* use temporal masking effect (default = 1) */ +int CDECL lame_set_useTemporal(lame_global_flags *, int); +int CDECL lame_get_useTemporal(const lame_global_flags *); + +/* use temporal masking effect (default = 1) */ +int CDECL lame_set_interChRatio(lame_global_flags *, float); +float CDECL lame_get_interChRatio(const lame_global_flags *); + +/* disable short blocks */ +int CDECL lame_set_no_short_blocks(lame_global_flags *, int); +int CDECL lame_get_no_short_blocks(const lame_global_flags *); + +/* force short blocks */ +int CDECL lame_set_force_short_blocks(lame_global_flags *, int); +int CDECL lame_get_force_short_blocks(const lame_global_flags *); + +/* Input PCM is emphased PCM (for instance from one of the rarely + emphased CDs), it is STRONGLY not recommended to use this, because + psycho does not take it into account, and last but not least many decoders + ignore these bits */ +int CDECL lame_set_emphasis(lame_global_flags *, int); +int CDECL lame_get_emphasis(const lame_global_flags *); + + + +/************************************************************************/ +/* internal variables, cannot be set... */ +/* provided because they may be of use to calling application */ +/************************************************************************/ +/* version 0=MPEG-2 1=MPEG-1 (2=MPEG-2.5) */ +int CDECL lame_get_version(const lame_global_flags *); + +/* encoder delay */ +int CDECL lame_get_encoder_delay(const lame_global_flags *); + +/* + padding appended to the input to make sure decoder can fully decode + all input. Note that this value can only be calculated during the + call to lame_encoder_flush(). Before lame_encoder_flush() has + been called, the value of encoder_padding = 0. +*/ +int CDECL lame_get_encoder_padding(const lame_global_flags *); + +/* size of MPEG frame */ +int CDECL lame_get_framesize(const lame_global_flags *); + +/* number of PCM samples buffered, but not yet encoded to mp3 data. */ +int CDECL lame_get_mf_samples_to_encode( const lame_global_flags* gfp ); + +/* + size (bytes) of mp3 data buffered, but not yet encoded. + this is the number of bytes which would be output by a call to + lame_encode_flush_nogap. NOTE: lame_encode_flush() will return + more bytes than this because it will encode the reamining buffered + PCM samples before flushing the mp3 buffers. +*/ +int CDECL lame_get_size_mp3buffer( const lame_global_flags* gfp ); + +/* number of frames encoded so far */ +int CDECL lame_get_frameNum(const lame_global_flags *); + +/* + include.lame's estimate of the total number of frames to be encoded + only valid if calling program set num_samples +*/ +int CDECL lame_get_totalframes(const lame_global_flags *); + +/* RadioGain value. Multiplied by 10 and rounded to the nearest. */ +int CDECL lame_get_RadioGain(const lame_global_flags *); + +/* AudiophileGain value. Multipled by 10 and rounded to the nearest. */ +int CDECL lame_get_AudiophileGain(const lame_global_flags *); + +/* the peak sample */ +float CDECL lame_get_PeakSample(const lame_global_flags *); + +/* Gain change required for preventing clipping. The value is correct only if + peak sample searching was enabled. If negative then the waveform + already does not clip. The value is multiplied by 10 and rounded up. */ +int CDECL lame_get_noclipGainChange(const lame_global_flags *); + +/* user-specified scale factor required for preventing clipping. Value is + correct only if peak sample searching was enabled and no user-specified + scaling was performed. If negative then either the waveform already does + not clip or the value cannot be determined */ +float CDECL lame_get_noclipScale(const lame_global_flags *); + + + + + + + +/* + * REQUIRED: + * sets more internal configuration based on data provided above. + * returns -1 if something failed. + */ +int CDECL lame_init_params(lame_global_flags *); + + +/* + * OPTIONAL: + * get the version number, in a string. of the form: + * "3.63 (beta)" or just "3.63". + */ +const char* CDECL get_lame_version ( void ); +const char* CDECL get_lame_short_version ( void ); +const char* CDECL get_lame_very_short_version ( void ); +const char* CDECL get_psy_version ( void ); +const char* CDECL get_lame_url ( void ); +const char* CDECL get_lame_os_bitness ( void ); + +/* + * OPTIONAL: + * get the version numbers in numerical form. + */ +typedef struct { + /* generic LAME version */ + int major; + int minor; + int alpha; /* 0 if not an alpha version */ + int beta; /* 0 if not a beta version */ + + /* version of the psy model */ + int psy_major; + int psy_minor; + int psy_alpha; /* 0 if not an alpha version */ + int psy_beta; /* 0 if not a beta version */ + + /* compile time features */ + const char *features; /* Don't make assumptions about the contents! */ +} lame_version_t; +void CDECL get_lame_version_numerical(lame_version_t *); + + +/* + * OPTIONAL: + * print internal include.lame configuration to message handler + */ +void CDECL lame_print_config(const lame_global_flags* gfp); + +void CDECL lame_print_internals( const lame_global_flags *gfp); + + +/* + * input pcm data, output (maybe) mp3 frames. + * This routine handles all buffering, resampling and filtering for you. + * + * return code number of bytes output in mp3buf. Can be 0 + * -1: mp3buf was too small + * -2: malloc() problem + * -3: lame_init_params() not called + * -4: psycho acoustic problems + * + * The required mp3buf_size can be computed from num_samples, + * samplerate and encoding rate, but here is a worst case estimate: + * + * mp3buf_size in bytes = 1.25*num_samples + 7200 + * + * I think a tighter bound could be: (mt, March 2000) + * MPEG1: + * num_samples*(bitrate/8)/samplerate + 4*1152*(bitrate/8)/samplerate + 512 + * MPEG2: + * num_samples*(bitrate/8)/samplerate + 4*576*(bitrate/8)/samplerate + 256 + * + * but test first if you use that! + * + * set mp3buf_size = 0 and LAME will not check if mp3buf_size is + * large enough. + * + * NOTE: + * if gfp->num_channels=2, but gfp->mode = 3 (mono), the L & R channels + * will be averaged into the L channel before encoding only the L channel + * This will overwrite the data in buffer_l[] and buffer_r[]. + * +*/ +int CDECL lame_encode_buffer ( + lame_global_flags* gfp, /* global context handle */ + const short int buffer_l [], /* PCM data for left channel */ + const short int buffer_r [], /* PCM data for right channel */ + const int nsamples, /* number of samples per channel */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + const int mp3buf_size ); /* number of valid octets in this + stream */ + +/* + * as above, but input has L & R channel data interleaved. + * NOTE: + * num_samples = number of samples in the L (or R) + * channel, not the total number of samples in pcm[] + */ +int CDECL lame_encode_buffer_interleaved( + lame_global_flags* gfp, /* global context handlei */ + short int pcm[], /* PCM data for left and right + channel, interleaved */ + int num_samples, /* number of samples per channel, + _not_ number of samples in + pcm[] */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + int mp3buf_size ); /* number of valid octets in this + stream */ + + +/* as lame_encode_buffer, but for 'float's. + * !! NOTE: !! data must still be scaled to be in the same range as + * short int, +/- 32768 + */ +int CDECL lame_encode_buffer_float( + lame_global_flags* gfp, /* global context handle */ + const float pcm_l [], /* PCM data for left channel */ + const float pcm_r [], /* PCM data for right channel */ + const int nsamples, /* number of samples per channel */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + const int mp3buf_size ); /* number of valid octets in this + stream */ + +/* as lame_encode_buffer, but for 'float's. + * !! NOTE: !! data must be scaled to +/- 1 full scale + */ +int CDECL lame_encode_buffer_ieee_float( + lame_t gfp, + const float pcm_l [], /* PCM data for left channel */ + const float pcm_r [], /* PCM data for right channel */ + const int nsamples, + unsigned char * mp3buf, + const int mp3buf_size); +int CDECL lame_encode_buffer_interleaved_ieee_float( + lame_t gfp, + const float pcm[], /* PCM data for left and right + channel, interleaved */ + const int nsamples, + unsigned char * mp3buf, + const int mp3buf_size); + +/* as lame_encode_buffer, but for 'double's. + * !! NOTE: !! data must be scaled to +/- 1 full scale + */ +int CDECL lame_encode_buffer_ieee_double( + lame_t gfp, + const double pcm_l [], /* PCM data for left channel */ + const double pcm_r [], /* PCM data for right channel */ + const int nsamples, + unsigned char * mp3buf, + const int mp3buf_size); +int CDECL lame_encode_buffer_interleaved_ieee_double( + lame_t gfp, + const double pcm[], /* PCM data for left and right + channel, interleaved */ + const int nsamples, + unsigned char * mp3buf, + const int mp3buf_size); + +/* as lame_encode_buffer, but for long's + * !! NOTE: !! data must still be scaled to be in the same range as + * short int, +/- 32768 + * + * This scaling was a mistake (doesn't allow one to exploit full + * precision of type 'long'. Use lame_encode_buffer_long2() instead. + * + */ +int CDECL lame_encode_buffer_long( + lame_global_flags* gfp, /* global context handle */ + const long buffer_l [], /* PCM data for left channel */ + const long buffer_r [], /* PCM data for right channel */ + const int nsamples, /* number of samples per channel */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + const int mp3buf_size ); /* number of valid octets in this + stream */ + +/* Same as lame_encode_buffer_long(), but with correct scaling. + * !! NOTE: !! data must still be scaled to be in the same range as + * type 'long'. Data should be in the range: +/- 2^(8*size(long)-1) + * + */ +int CDECL lame_encode_buffer_long2( + lame_global_flags* gfp, /* global context handle */ + const long buffer_l [], /* PCM data for left channel */ + const long buffer_r [], /* PCM data for right channel */ + const int nsamples, /* number of samples per channel */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + const int mp3buf_size ); /* number of valid octets in this + stream */ + +/* as lame_encode_buffer, but for int's + * !! NOTE: !! input should be scaled to the maximum range of 'int' + * If int is 4 bytes, then the values should range from + * +/- 2147483648. + * + * This routine does not (and cannot, without loosing precision) use + * the same scaling as the rest of the lame_encode_buffer() routines. + * + */ +int CDECL lame_encode_buffer_int( + lame_global_flags* gfp, /* global context handle */ + const int buffer_l [], /* PCM data for left channel */ + const int buffer_r [], /* PCM data for right channel */ + const int nsamples, /* number of samples per channel */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + const int mp3buf_size ); /* number of valid octets in this + stream */ + + + + + +/* + * REQUIRED: + * lame_encode_flush will flush the intenal PCM buffers, padding with + * 0's to make sure the final frame is complete, and then flush + * the internal MP3 buffers, and thus may return a + * final few mp3 frames. 'mp3buf' should be at least 7200 bytes long + * to hold all possible emitted data. + * + * will also write id3v1 tags (if any) into the bitstream + * + * return code = number of bytes output to mp3buf. Can be 0 + */ +int CDECL lame_encode_flush( + lame_global_flags * gfp, /* global context handle */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + int size); /* number of valid octets in this stream */ + +/* + * OPTIONAL: + * lame_encode_flush_nogap will flush the internal mp3 buffers and pad + * the last frame with ancillary data so it is a complete mp3 frame. + * + * 'mp3buf' should be at least 7200 bytes long + * to hold all possible emitted data. + * + * After a call to this routine, the outputed mp3 data is complete, but + * you may continue to encode new PCM samples and write future mp3 data + * to a different file. The two mp3 files will play back with no gaps + * if they are concatenated together. + * + * This routine will NOT write id3v1 tags into the bitstream. + * + * return code = number of bytes output to mp3buf. Can be 0 + */ +int CDECL lame_encode_flush_nogap( + lame_global_flags * gfp, /* global context handle */ + unsigned char* mp3buf, /* pointer to encoded MP3 stream */ + int size); /* number of valid octets in this stream */ + +/* + * OPTIONAL: + * Normally, this is called by lame_init_params(). It writes id3v2 and + * Xing headers into the front of the bitstream, and sets frame counters + * and bitrate histogram data to 0. You can also call this after + * lame_encode_flush_nogap(). + */ +int CDECL lame_init_bitstream( + lame_global_flags * gfp); /* global context handle */ + + + +/* + * OPTIONAL: some simple statistics + * a bitrate histogram to visualize the distribution of used frame sizes + * a stereo mode histogram to visualize the distribution of used stereo + * modes, useful in joint-stereo mode only + * 0: LR left-right encoded + * 1: LR-I left-right and intensity encoded (currently not supported) + * 2: MS mid-side encoded + * 3: MS-I mid-side and intensity encoded (currently not supported) + * + * attention: don't call them after lame_encode_finish + * suggested: lame_encode_flush -> lame_*_hist -> lame_close + */ + +void CDECL lame_bitrate_hist( + const lame_global_flags * gfp, + int bitrate_count[14] ); +void CDECL lame_bitrate_kbps( + const lame_global_flags * gfp, + int bitrate_kbps [14] ); +void CDECL lame_stereo_mode_hist( + const lame_global_flags * gfp, + int stereo_mode_count[4] ); + +void CDECL lame_bitrate_stereo_mode_hist ( + const lame_global_flags * gfp, + int bitrate_stmode_count[14][4] ); + +void CDECL lame_block_type_hist ( + const lame_global_flags * gfp, + int btype_count[6] ); + +void CDECL lame_bitrate_block_type_hist ( + const lame_global_flags * gfp, + int bitrate_btype_count[14][6] ); + +#if (DEPRECATED_OR_OBSOLETE_CODE_REMOVED && 0) +#else +/* + * OPTIONAL: + * lame_mp3_tags_fid will rewrite a Xing VBR tag to the mp3 file with file + * pointer fid. These calls perform forward and backwards seeks, so make + * sure fid is a real file. Make sure lame_encode_flush has been called, + * and all mp3 data has been written to the file before calling this + * function. + * NOTE: + * if VBR tags are turned off by the user, or turned off by LAME because + * the output is not a regular file, this call does nothing + * NOTE: + * LAME wants to read from the file to skip an optional ID3v2 tag, so + * make sure you opened the file for writing and reading. + * NOTE: + * You can call lame_get_lametag_frame instead, if you want to insert + * the lametag yourself. +*/ +void CDECL lame_mp3_tags_fid(lame_global_flags *, FILE* fid); +#endif + +/* + * OPTIONAL: + * lame_get_lametag_frame copies the final LAME-tag into 'buffer'. + * The function returns the number of bytes copied into buffer, or + * the required buffer size, if the provided buffer is too small. + * Function failed, if the return value is larger than 'size'! + * Make sure lame_encode flush has been called before calling this function. + * NOTE: + * if VBR tags are turned off by the user, or turned off by LAME, + * this call does nothing and returns 0. + * NOTE: + * LAME inserted an empty frame in the beginning of mp3 audio data, + * which you have to replace by the final LAME-tag frame after encoding. + * In case there is no ID3v2 tag, usually this frame will be the very first + * data in your mp3 file. If you put some other leading data into your + * file, you'll have to do some bookkeeping about where to write this buffer. + */ +size_t CDECL lame_get_lametag_frame( + const lame_global_flags *, unsigned char* buffer, size_t size); + +/* + * REQUIRED: + * final call to free all remaining buffers + */ +int CDECL lame_close (lame_global_flags *); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* + * OBSOLETE: + * lame_encode_finish combines lame_encode_flush() and lame_close() in + * one call. However, once this call is made, the statistics routines + * will no longer work because the data will have been cleared, and + * lame_mp3_tags_fid() cannot be called to add data to the VBR header + */ +int CDECL lame_encode_finish( + lame_global_flags* gfp, + unsigned char* mp3buf, + int size ); +#endif + + + + + + +/********************************************************************* + * + * decoding + * + * a simple interface to mpglib, part of mpg123, is also included if + * libmp3lame is compiled with HAVE_MPGLIB + * + *********************************************************************/ + +struct hip_global_struct; +typedef struct hip_global_struct hip_global_flags; +typedef hip_global_flags *hip_t; + + +typedef struct { + int header_parsed; /* 1 if header was parsed and following data was + computed */ + int stereo; /* number of channels */ + int samplerate; /* sample rate */ + int bitrate; /* bitrate */ + int mode; /* mp3 frame type */ + int mode_ext; /* mp3 frame type */ + int framesize; /* number of samples per mp3 frame */ + + /* this data is only computed if mpglib detects a Xing VBR header */ + unsigned long nsamp; /* number of samples in mp3 file. */ + int totalframes; /* total number of frames in mp3 file */ + + /* this data is not currently computed by the mpglib routines */ + int framenum; /* frames decoded counter */ +} mp3data_struct; + +/* required call to initialize decoder */ +hip_t CDECL hip_decode_init(void); + +/* cleanup call to exit decoder */ +int CDECL hip_decode_exit(hip_t gfp); + +/* HIP reporting functions */ +void CDECL hip_set_errorf(hip_t gfp, lame_report_function f); +void CDECL hip_set_debugf(hip_t gfp, lame_report_function f); +void CDECL hip_set_msgf (hip_t gfp, lame_report_function f); + +/********************************************************************* + * input 1 mp3 frame, output (maybe) pcm data. + * + * nout = hip_decode(hip, mp3buf,len,pcm_l,pcm_r); + * + * input: + * len : number of bytes of mp3 data in mp3buf + * mp3buf[len] : mp3 data to be decoded + * + * output: + * nout: -1 : decoding error + * 0 : need more data before we can complete the decode + * >0 : returned 'nout' samples worth of data in pcm_l,pcm_r + * pcm_l[nout] : left channel data + * pcm_r[nout] : right channel data + * + *********************************************************************/ +int CDECL hip_decode( hip_t gfp + , unsigned char * mp3buf + , size_t len + , short pcm_l[] + , short pcm_r[] + ); + +/* same as hip_decode, and also returns mp3 header data */ +int CDECL hip_decode_headers( hip_t gfp + , unsigned char* mp3buf + , size_t len + , short pcm_l[] + , short pcm_r[] + , mp3data_struct* mp3data + ); + +/* same as hip_decode, but returns at most one frame */ +int CDECL hip_decode1( hip_t gfp + , unsigned char* mp3buf + , size_t len + , short pcm_l[] + , short pcm_r[] + ); + +/* same as hip_decode1, but returns at most one frame and mp3 header data */ +int CDECL hip_decode1_headers( hip_t gfp + , unsigned char* mp3buf + , size_t len + , short pcm_l[] + , short pcm_r[] + , mp3data_struct* mp3data + ); + +/* same as hip_decode1_headers, but also returns enc_delay and enc_padding + from VBR Info tag, (-1 if no info tag was found) */ +int CDECL hip_decode1_headersB( hip_t gfp + , unsigned char* mp3buf + , size_t len + , short pcm_l[] + , short pcm_r[] + , mp3data_struct* mp3data + , int *enc_delay + , int *enc_padding + ); + + + +/* OBSOLETE: + * lame_decode... functions are there to keep old code working + * but it is strongly recommended to replace calls by hip_decode... + * function calls, see above. + */ +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +int CDECL lame_decode_init(void); +int CDECL lame_decode( + unsigned char * mp3buf, + int len, + short pcm_l[], + short pcm_r[] ); +int CDECL lame_decode_headers( + unsigned char* mp3buf, + int len, + short pcm_l[], + short pcm_r[], + mp3data_struct* mp3data ); +int CDECL lame_decode1( + unsigned char* mp3buf, + int len, + short pcm_l[], + short pcm_r[] ); +int CDECL lame_decode1_headers( + unsigned char* mp3buf, + int len, + short pcm_l[], + short pcm_r[], + mp3data_struct* mp3data ); +int CDECL lame_decode1_headersB( + unsigned char* mp3buf, + int len, + short pcm_l[], + short pcm_r[], + mp3data_struct* mp3data, + int *enc_delay, + int *enc_padding ); +int CDECL lame_decode_exit(void); + +#endif /* obsolete lame_decode API calls */ + + +/********************************************************************* + * + * id3tag stuff + * + *********************************************************************/ + +/* + * id3tag.h -- Interface to write ID3 version 1 and 2 tags. + * + * Copyright (C) 2000 Don Melton. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + +/* utility to obtain alphabetically sorted list of genre names with numbers */ +void CDECL id3tag_genre_list( + void (*handler)(int, const char *, void *), + void* cookie); + +void CDECL id3tag_init (lame_t gfp); + +/* force addition of version 2 tag */ +void CDECL id3tag_add_v2 (lame_t gfp); + +/* add only a version 1 tag */ +void CDECL id3tag_v1_only (lame_t gfp); + +/* add only a version 2 tag */ +void CDECL id3tag_v2_only (lame_t gfp); + +/* pad version 1 tag with spaces instead of nulls */ +void CDECL id3tag_space_v1 (lame_t gfp); + +/* pad version 2 tag with extra 128 bytes */ +void CDECL id3tag_pad_v2 (lame_t gfp); + +/* pad version 2 tag with extra n bytes */ +void CDECL id3tag_set_pad (lame_t gfp, size_t n); + +void CDECL id3tag_set_title(lame_t gfp, const char* title); +void CDECL id3tag_set_artist(lame_t gfp, const char* artist); +void CDECL id3tag_set_album(lame_t gfp, const char* album); +void CDECL id3tag_set_year(lame_t gfp, const char* year); +void CDECL id3tag_set_comment(lame_t gfp, const char* comment); + +/* return -1 result if track number is out of ID3v1 range + and ignored for ID3v1 */ +int CDECL id3tag_set_track(lame_t gfp, const char* track); + +/* return non-zero result if genre name or number is invalid + result 0: OK + result -1: genre number out of range + result -2: no valid ID3v1 genre name, mapped to ID3v1 'Other' + but taken as-is for ID3v2 genre tag */ +int CDECL id3tag_set_genre(lame_t gfp, const char* genre); + +/* return non-zero result if field name is invalid */ +int CDECL id3tag_set_fieldvalue(lame_t gfp, const char* fieldvalue); + +/* return non-zero result if image type is invalid */ +int CDECL id3tag_set_albumart(lame_t gfp, const char* image, size_t size); + +/* lame_get_id3v1_tag copies ID3v1 tag into buffer. + * Function returns number of bytes copied into buffer, or number + * of bytes rquired if buffer 'size' is too small. + * Function fails, if returned value is larger than 'size'. + * NOTE: + * This functions does nothing, if user/LAME disabled ID3v1 tag. + */ +size_t CDECL lame_get_id3v1_tag(lame_t gfp, unsigned char* buffer, size_t size); + +/* lame_get_id3v2_tag copies ID3v2 tag into buffer. + * Function returns number of bytes copied into buffer, or number + * of bytes rquired if buffer 'size' is too small. + * Function fails, if returned value is larger than 'size'. + * NOTE: + * This functions does nothing, if user/LAME disabled ID3v2 tag. + */ +size_t CDECL lame_get_id3v2_tag(lame_t gfp, unsigned char* buffer, size_t size); + +/* normaly lame_init_param writes ID3v2 tags into the audio stream + * Call lame_set_write_id3tag_automatic(gfp, 0) before lame_init_param + * to turn off this behaviour and get ID3v2 tag with above function + * write it yourself into your file. + */ +void CDECL lame_set_write_id3tag_automatic(lame_global_flags * gfp, int); +int CDECL lame_get_write_id3tag_automatic(lame_global_flags const* gfp); + +/* experimental */ +int CDECL id3tag_set_textinfo_latin1(lame_t gfp, char const *id, char const *text); + +/* experimental */ +int CDECL id3tag_set_comment_latin1(lame_t gfp, char const *lang, char const *desc, char const *text); + +#if DEPRECATED_OR_OBSOLETE_CODE_REMOVED +#else +/* experimental */ +int CDECL id3tag_set_textinfo_ucs2(lame_t gfp, char const *id, unsigned short const *text); + +/* experimental */ +int CDECL id3tag_set_comment_ucs2(lame_t gfp, char const *lang, + unsigned short const *desc, unsigned short const *text); + +/* experimental */ +int CDECL id3tag_set_fieldvalue_ucs2(lame_t gfp, const unsigned short *fieldvalue); +#endif + +/* experimental */ +int CDECL id3tag_set_fieldvalue_utf16(lame_t gfp, const unsigned short *fieldvalue); + +/* experimental */ +int CDECL id3tag_set_textinfo_utf16(lame_t gfp, char const *id, unsigned short const *text); + +/* experimental */ +int CDECL id3tag_set_comment_utf16(lame_t gfp, char const *lang, unsigned short const *desc, unsigned short const *text); + + +/*********************************************************************** +* +* list of valid bitrates [kbps] & sample frequencies [Hz]. +* first index: 0: MPEG-2 values (sample frequencies 16...24 kHz) +* 1: MPEG-1 values (sample frequencies 32...48 kHz) +* 2: MPEG-2.5 values (sample frequencies 8...12 kHz) +***********************************************************************/ + +extern const int bitrate_table [3][16]; +extern const int samplerate_table [3][ 4]; + +/* access functions for use in DLL, global vars are not exported */ +int CDECL lame_get_bitrate(int mpeg_version, int table_index); +int CDECL lame_get_samplerate(int mpeg_version, int table_index); + + +/* maximum size of albumart image (128KB), which affects LAME_MAXMP3BUFFER + as well since lame_encode_buffer() also returns ID3v2 tag data */ +#define LAME_MAXALBUMART (128 * 1024) + +/* maximum size of mp3buffer needed if you encode at most 1152 samples for + each call to lame_encode_buffer. see lame_encode_buffer() below + (LAME_MAXMP3BUFFER is now obsolete) */ +#define LAME_MAXMP3BUFFER (16384 + LAME_MAXALBUMART) + + +typedef enum { + LAME_OKAY = 0, + LAME_NOERROR = 0, + LAME_GENERICERROR = -1, + LAME_NOMEM = -10, + LAME_BADBITRATE = -11, + LAME_BADSAMPFREQ = -12, + LAME_INTERNALERROR = -13, + + FRONTEND_READERROR = -80, + FRONTEND_WRITEERROR = -81, + FRONTEND_FILETOOLARGE = -82 + +} lame_errorcodes_t; + +#if defined(__cplusplus) +} +#endif +#endif /* LAME_LAME_H */ + diff --git a/app/src/main/cpp/openSL_audio_player.c b/app/src/main/cpp/openSL_audio_player.c index f683df8..bc6bef4 100644 --- a/app/src/main/cpp/openSL_audio_player.c +++ b/app/src/main/cpp/openSL_audio_player.c @@ -271,7 +271,7 @@ int releaseAudioPlayer() { } JNIEXPORT void JNICALL Java_com_frank_ffmpeg_AudioPlayer_playAudio - (JNIEnv * env, jclass jobject, jstring filePath) { + (JNIEnv * env, jclass jclazz, jstring filePath) { int rate, channel; const char *file_name = (*env)->GetStringUTFChars(env, filePath, NULL); @@ -292,7 +292,7 @@ JNIEXPORT void JNICALL Java_com_frank_ffmpeg_AudioPlayer_playAudio //停止播放,释放相关资源 JNIEXPORT jint JNICALL Java_com_frank_ffmpeg_AudioPlayer_stop - (JNIEnv * env, jclass jobject) { + (JNIEnv * env, jclass jclazz) { if (bqPlayerObject != NULL) { (*bqPlayerObject)->Destroy(bqPlayerObject); bqPlayerObject = NULL; diff --git a/app/src/main/java/com/frank/ffmpeg/AudioPlayer.java b/app/src/main/java/com/frank/ffmpeg/AudioPlayer.java index f6bbae8..cb82279 100644 --- a/app/src/main/java/com/frank/ffmpeg/AudioPlayer.java +++ b/app/src/main/java/com/frank/ffmpeg/AudioPlayer.java @@ -18,7 +18,25 @@ public class AudioPlayer { //调用OpenSL ES播放 public native void playAudio(String audioPath); //调用OpenSL ES播放 - public native void stop(String audioPath); + public native int stop(); + + public native static void lameInitDefault(); + + public native static void lameInit(int inSamplerate, int outChannel, + int outSamplerate, int outBitrate, float scaleInput, int mode, int vbrMode, + int quality, int vbrQuality, int abrMeanBitrate, int lowpassFreq, int highpassFreq, String id3tagTitle, + String id3tagArtist, String id3tagAlbum, String id3tagYear, + String id3tagComment); + + public native static int lameEncode(short[] buffer_l, short[] buffer_r, + int samples, byte[] mp3buf); + + public native static int encodeBufferInterleaved(short[] pcm, int samples, + byte[] mp3buf); + + public native static int lameFlush(byte[] mp3buf); + + public native static void lameClose(); /** * 创建一个AudioTrack对象 diff --git a/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java b/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java index 790442b..c291159 100644 --- a/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java +++ b/app/src/main/java/com/frank/ffmpeg/activity/AudioHandleActivity.java @@ -14,6 +14,7 @@ import java.io.File; import com.frank.ffmpeg.AudioPlayer; import com.frank.ffmpeg.FFmpegCmd; import com.frank.ffmpeg.R; +import com.frank.ffmpeg.mp3.Mp3Converter; import com.frank.ffmpeg.util.FFmpegUtil; import com.frank.ffmpeg.util.FileUtil; @@ -140,8 +141,13 @@ public class AudioHandleActivity extends AppCompatActivity implements View.OnCli } switch (handleType){ case 0://转码 - String transformFile = PATH + File.separator + "transform.aac"; - commandLine = FFmpegUtil.transformAudio(srcFile, transformFile); +// String transformFile = PATH + File.separator + "transform.aac"; +// commandLine = FFmpegUtil.transformAudio(srcFile, transformFile); + //使用mp3lame进行转码 + String inputFile = PATH + File.separator + "hello.aac"; + String transformFile = PATH + File.separator + "transform.mp3"; + Mp3Converter mp3Converter = new Mp3Converter(); + mp3Converter.convertToMp3(inputFile, transformFile); break; case 1://剪切 String cutFile = PATH + File.separator + "cut.mp3"; diff --git a/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Converter.java b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Converter.java new file mode 100644 index 0000000..8f4ac13 --- /dev/null +++ b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Converter.java @@ -0,0 +1,340 @@ +package com.frank.ffmpeg.mp3; + +import android.annotation.TargetApi; +import android.media.MediaCodec; +import android.media.MediaCodec.BufferInfo; +import android.media.MediaExtractor; +import android.media.MediaFormat; +import android.os.Build; +import android.util.Log; + +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.ShortBuffer; +import java.util.concurrent.BlockingDeque; +import java.util.concurrent.LinkedBlockingDeque; + +@TargetApi(Build.VERSION_CODES.JELLY_BEAN) +public class Mp3Converter { + + private final static String TAG = Mp3Converter.class.getSimpleName(); + + private MediaCodec mMediaCodec; + private MediaExtractor mediaExtractor; + private BufferInfo bufferInfo; + private ByteBuffer[] rawInputBuffers; + private ByteBuffer[] encodedOutputBuffers; + private int inSampleRate; + private int channels; + + private final static int DEFAULT_QUEUE_SIZE = 512; + private BlockingDeque writeQueue = new LinkedBlockingDeque<>(DEFAULT_QUEUE_SIZE); + private BlockingDeque encodeQueue = new LinkedBlockingDeque<>(DEFAULT_QUEUE_SIZE); + private byte[] mp3buf; + + private boolean decodeFinished; + private boolean encodeFinished; + + private long readSize; + private long decodeSize; + private long encodeSize; + + private Mp3Lame mp3Lame; + private WriteThread writeThread; + private EncodeThread encodeThread; + private long lastPts; + + private class BufferDecoded { + int channels; + short[] leftBuffer; + short[] rightBuffer; + short[] pcm; + long pts; + } + + private class BufferEncoded { + byte[] buffer; + int length; + } + + private class WriteThread extends Thread { + + private String mp3Path; + private FileOutputStream fos; + private BufferedOutputStream bos; + + WriteThread(String path) { + super(); + mp3Path = path; + } + + @Override + public void run() { + try { + Log.i(TAG, "WriteThread start"); + + fos = new FileOutputStream(new File(mp3Path)); + bos = new BufferedOutputStream(fos, 200 * 1024); + + while (true) { + if (encodeFinished && writeQueue.size() == 0) { + break; + } + + BufferEncoded buffer = null; + try { + buffer = writeQueue.take(); + } catch (InterruptedException e) { + Log.e(TAG, "WriteThread InterruptedException=" + e.toString()); + } + + if(buffer != null) { + bos.write(buffer.buffer, 0, buffer.length); + } + } + bos.flush(); + bos.close(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + bos.flush(); + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + Log.i(TAG, "WriteThread end"); + } + } + + private class EncodeThread extends Thread { + @Override + public void run() { + Log.i(TAG, "EncodeThread start"); + + while (true) { + if (decodeFinished && encodeQueue.size() == 0) { + break; + } + BufferDecoded buffer = null; + try { + buffer = encodeQueue.take(); + } catch (InterruptedException e) { + Log.e(TAG, "EncodeThread InterruptedException=" + e.toString()); + } + if (buffer != null) { + encodeToMp3(buffer); + } + } + encodeFinished = true; + + writeThread.interrupt(); + + Log.i(TAG, "EncodeThread end"); + } + } + + private class DecodeThread extends Thread { + @Override + public void run() { + long startTime = System.currentTimeMillis(); + try { + Log.i(TAG, "DecodeThread start"); + + while (true) { + int outputBufIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo, -1); + if (outputBufIndex >= 0) { + ByteBuffer buffer = encodedOutputBuffers[outputBufIndex]; + decodeSize += bufferInfo.size; + ShortBuffer shortBuffer = buffer.order(ByteOrder.nativeOrder()).asShortBuffer(); + + short[] leftBuffer = null; + short[] rightBuffer = null; + short[] pcm = null; + + if (channels == 2) { + pcm = new short[shortBuffer.remaining()]; + shortBuffer.get(pcm); + } else { + leftBuffer = new short[shortBuffer.remaining()]; + rightBuffer = leftBuffer; + shortBuffer.get(leftBuffer); + Log.e(TAG, "single channel leftBuffer.length = " + leftBuffer.length); + } + + buffer.clear(); + + BufferDecoded bufferDecoded = new BufferDecoded(); + bufferDecoded.leftBuffer = leftBuffer; + bufferDecoded.rightBuffer = rightBuffer; + bufferDecoded.pcm = pcm; + bufferDecoded.channels = channels; + bufferDecoded.pts = bufferInfo.presentationTimeUs; + encodeQueue.put(bufferDecoded); + + mMediaCodec.releaseOutputBuffer(outputBufIndex, false); + + if ((bufferInfo.flags & MediaCodec.BUFFER_FLAG_END_OF_STREAM) != 0) { + Log.e(TAG, "DecodeThread get BUFFER_FLAG_END_OF_STREAM"); + decodeFinished = true; + break; + } + } else if (outputBufIndex == MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED) { + encodedOutputBuffers = mMediaCodec.getOutputBuffers(); + } else if (outputBufIndex == MediaCodec.INFO_OUTPUT_FORMAT_CHANGED) { + final MediaFormat oformat = mMediaCodec.getOutputFormat(); + Log.d(TAG, "Output format has changed to " + oformat); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + encodeThread.interrupt(); + long endTime = System.currentTimeMillis(); + Log.i(TAG, "DecodeThread finished time=" + (endTime - startTime) / 1000); + } + } + + public void convertToMp3(String srcPath, String mp3Path) { + + long startTime = System.currentTimeMillis(); + long endTime; + + encodeThread = new EncodeThread(); + writeThread = new WriteThread(mp3Path); + DecodeThread decodeThread = new DecodeThread(); + + encodeThread.start(); + writeThread.start(); + prepareDecode(srcPath); + decodeThread.start(); + readSampleData(); + + try { + writeThread.join(); + } catch (InterruptedException e) { + Log.e(TAG, "convertToMp3 InterruptedException=" + e.toString()); + } + + double mReadSize = readSize / 1024.0 / 1024.0; + double mDecodeSize = decodeSize / 1024.0 / 1024.0; + double mEncodeSize = encodeSize / 1024.0 / 1024.0; + Log.i(TAG, "readSize=" + mReadSize + ", decodeSize=" + mDecodeSize + ",encodeSize=" + mEncodeSize); + + endTime = System.currentTimeMillis(); + Log.i(TAG, "convertToMp3 finish time=" + (endTime - startTime) / 1000); + } + + private void prepareDecode(String path) { + try { + mediaExtractor = new MediaExtractor(); + mediaExtractor.setDataSource(path); + for (int i = 0; i < mediaExtractor.getTrackCount(); i++) { + MediaFormat mMediaFormat = mediaExtractor.getTrackFormat(i); + Log.i(TAG, "prepareDecode get mMediaFormat=" + mMediaFormat); + + String mime = mMediaFormat.getString(MediaFormat.KEY_MIME); + if (mime.startsWith("audio")) { + mMediaCodec = MediaCodec.createDecoderByType(mime); + mMediaCodec.configure(mMediaFormat, null, null, 0); + mediaExtractor.selectTrack(i); + inSampleRate = mMediaFormat.getInteger(MediaFormat.KEY_SAMPLE_RATE); + channels = mMediaFormat.getInteger(MediaFormat.KEY_CHANNEL_COUNT); + break; + } + } + mMediaCodec.start(); + + bufferInfo = new BufferInfo(); + rawInputBuffers = mMediaCodec.getInputBuffers(); + encodedOutputBuffers = mMediaCodec.getOutputBuffers(); + Log.i(TAG, "--channel=" + channels + "--sampleRate=" + inSampleRate); + + mp3Lame = new Mp3LameBuilder() + .setInSampleRate(inSampleRate) + .setOutChannels(channels) + .setOutBitrate(128) + .setOutSampleRate(inSampleRate) + .setQuality(9) + .setVbrMode(Mp3LameBuilder.VbrMode.VBR_MTRH) + .build(); + + } catch (IOException e) { + e.printStackTrace(); + } + } + + private void readSampleData() { + boolean rawInputEOS = false; + + while (!rawInputEOS) { + for (int i = 0; i < rawInputBuffers.length; i++) { + int inputBufIndex = mMediaCodec.dequeueInputBuffer(-1); + if (inputBufIndex >= 0) { + ByteBuffer buffer = rawInputBuffers[inputBufIndex]; + int sampleSize = mediaExtractor.readSampleData(buffer, 0); + long presentationTimeUs = 0; + if (sampleSize < 0) { + rawInputEOS = true; + sampleSize = 0; + } else { + readSize += sampleSize; + presentationTimeUs = mediaExtractor.getSampleTime(); + } + mMediaCodec.queueInputBuffer(inputBufIndex, 0, + sampleSize, presentationTimeUs, + rawInputEOS ? MediaCodec.BUFFER_FLAG_END_OF_STREAM : 0); + if (!rawInputEOS) { + mediaExtractor.advance(); + } else { + break; + } + } else { + Log.e(TAG, "wrong inputBufIndex=" + inputBufIndex); + } + } + } + } + + private void encodeToMp3(BufferDecoded buffer) { + + if (buffer == null || buffer.pts == lastPts) { + return; + } + lastPts = buffer.pts; + + int bufferLength = buffer.pcm.length / 2; + if (mp3buf == null) { + mp3buf = new byte[(int) (bufferLength * 1.25 + 7200)]; + } + if (bufferLength > 0) { + int bytesEncoded; + if (channels == 2) { + bytesEncoded = mp3Lame.encodeBufferInterLeaved(buffer.pcm, bufferLength, mp3buf); + }else { + bytesEncoded = mp3Lame.encode(buffer.leftBuffer, buffer.leftBuffer, bufferLength, mp3buf); + } + Log.d(TAG, "mp3Lame encodeSize=" + bytesEncoded); + + if (bytesEncoded > 0) { + BufferEncoded be = new BufferEncoded(); + be.buffer = mp3buf; + be.length = bytesEncoded; + try { + writeQueue.put(be); + } catch (InterruptedException e) { + e.printStackTrace(); + } + encodeSize += bytesEncoded; + } + } + } + +} diff --git a/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Lame.java b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Lame.java new file mode 100644 index 0000000..4dd3730 --- /dev/null +++ b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3Lame.java @@ -0,0 +1,71 @@ +package com.frank.ffmpeg.mp3; + +import com.frank.ffmpeg.AudioPlayer; + +public class Mp3Lame { + + public Mp3Lame() { + AudioPlayer.lameInitDefault(); + } + + Mp3Lame(Mp3LameBuilder builder) { + initialize(builder); + } + + private void initialize(Mp3LameBuilder builder) { + AudioPlayer.lameInit(builder.inSampleRate, builder.outChannel, builder.outSampleRate, + builder.outBitrate, builder.scaleInput, getIntForMode(builder.mode), getIntForVbrMode(builder.vbrMode), builder.quality, builder.vbrQuality, builder.abrMeanBitrate, + builder.lowPassFreq, builder.highPassFreq, builder.id3tagTitle, builder.id3tagArtist, + builder.id3tagAlbum, builder.id3tagYear, builder.id3tagComment); + } + + public int encode(short[] buffer_l, short[] buffer_r, + int samples, byte[] mp3buf) { + + return AudioPlayer.lameEncode(buffer_l, buffer_r, samples, mp3buf); + } + + int encodeBufferInterLeaved(short[] pcm, int samples, + byte[] mp3buf) { + return AudioPlayer.encodeBufferInterleaved(pcm, samples, mp3buf); + } + + public int flush(byte[] mp3buf) { + return AudioPlayer.lameFlush(mp3buf); + } + + public void close() { + AudioPlayer.lameClose(); + } + + private static int getIntForMode(Mp3LameBuilder.Mode mode) { + switch (mode) { + case STEREO: + return 0; + case JSTEREO: + return 1; + case MONO: + return 3; + case DEFAULT: + return 4; + } + return -1; + } + + private static int getIntForVbrMode(Mp3LameBuilder.VbrMode mode) { + switch (mode) { + case VBR_OFF: + return 0; + case VBR_RH: + return 2; + case VBR_ABR: + return 3; + case VBR_MTRH: + return 4; + case VBR_DEFAUT: + return 6; + } + return -1; + } + +} diff --git a/app/src/main/java/com/frank/ffmpeg/mp3/Mp3LameBuilder.java b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3LameBuilder.java new file mode 100644 index 0000000..5ff5ef2 --- /dev/null +++ b/app/src/main/java/com/frank/ffmpeg/mp3/Mp3LameBuilder.java @@ -0,0 +1,147 @@ +package com.frank.ffmpeg.mp3; + +public class Mp3LameBuilder { + + + public enum Mode { + STEREO, JSTEREO, MONO, DEFAULT + } + + public enum VbrMode { + VBR_OFF, VBR_RH, VBR_MTRH, VBR_ABR, VBR_DEFAUT + } + + + int inSampleRate; + int outSampleRate; + int outBitrate; + int outChannel; + public int quality; + int vbrQuality; + int abrMeanBitrate; + int lowPassFreq; + int highPassFreq; + float scaleInput; + Mode mode; + VbrMode vbrMode; + + String id3tagTitle; + String id3tagArtist; + String id3tagAlbum; + String id3tagComment; + String id3tagYear; + + Mp3LameBuilder() { + + this.id3tagTitle = null; + this.id3tagAlbum = null; + this.id3tagArtist = null; + this.id3tagComment = null; + this.id3tagYear = null; + + this.inSampleRate = 44100; + this.outSampleRate = 0; + this.outChannel = 2; + this.outBitrate = 128; + this.scaleInput = 1; + + this.quality = 5; + this.mode = Mode.DEFAULT; + this.vbrMode = VbrMode.VBR_OFF; + this.vbrQuality = 5; + this.abrMeanBitrate = 128; + + this.lowPassFreq = 0; + this.highPassFreq = 0; + } + + Mp3LameBuilder setQuality(int quality) { + this.quality = quality; + return this; + } + + Mp3LameBuilder setInSampleRate(int inSampleRate) { + this.inSampleRate = inSampleRate; + return this; + } + + Mp3LameBuilder setOutSampleRate(int outSampleRate) { + this.outSampleRate = outSampleRate; + return this; + } + + Mp3LameBuilder setOutBitrate(int bitrate) { + this.outBitrate = bitrate; + return this; + } + + Mp3LameBuilder setOutChannels(int channels) { + this.outChannel = channels; + return this; + } + + Mp3LameBuilder setId3tagTitle(String title) { + this.id3tagTitle = title; + return this; + } + + Mp3LameBuilder setId3tagArtist(String artist) { + this.id3tagArtist = artist; + return this; + } + + Mp3LameBuilder setId3tagAlbum(String album) { + this.id3tagAlbum = album; + return this; + } + + Mp3LameBuilder setId3tagComment(String comment) { + this.id3tagComment = comment; + return this; + } + + Mp3LameBuilder setId3tagYear(String year) { + this.id3tagYear = year; + return this; + } + + Mp3LameBuilder setScaleInput(float scaleAmount) { + this.scaleInput = scaleAmount; + return this; + } + + Mp3LameBuilder setMode(Mode mode) { + this.mode = mode; + return this; + } + + Mp3LameBuilder setVbrMode(VbrMode mode) { + this.vbrMode = mode; + return this; + } + + Mp3LameBuilder setVbrQuality(int quality) { + this.vbrQuality = quality; + return this; + } + + Mp3LameBuilder setAbrMeanBitrate(int bitrate) { + this.abrMeanBitrate = bitrate; + return this; + } + + Mp3LameBuilder setLowpassFreqency(int freq) { + this.lowPassFreq = freq; + return this; + } + + Mp3LameBuilder setHighpassFreqency(int freq) { + this.highPassFreq = freq; + return this; + } + + Mp3Lame build() { + return new Mp3Lame(this); + } + +} diff --git a/build.gradle b/build.gradle index f209f27..0366ab0 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:3.0.1' + classpath 'com.android.tools.build:gradle:3.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d5e16da..4ca64ca 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip