From 2c5194f3f13d3f9ce301d8100b9f5fe0cec6d7d8 Mon Sep 17 00:00:00 2001 From: teryanarmen <61996358+teryanarmen@users.noreply.github.com> Date: Fri, 4 Nov 2022 10:07:39 -0700 Subject: [PATCH] Clean and fix formal verification (#3798) Co-authored-by: Michael George Co-authored-by: Nick Armstrong Co-authored-by: Michael George Co-authored-by: Aleksander Kryukov Co-authored-by: Hadrien Croubois --- audit/2020-10-certora.pdf | Bin 0 -> 504847 bytes certora/Makefile | 4 +- certora/applyHarness.patch | 308 +++++++++------ certora/harnesses/GovernorFullHarness.sol | 20 + certora/scripts/noCI/Round1/verifyAll.sh | 2 +- .../verifyGovernorPreventLateQuorum.sh | 3 +- certora/specs/ERC1155.spec | 145 ++++--- certora/specs/ERC1155Burnable.spec | 25 +- certora/specs/ERC1155Pausable.spec | 22 +- certora/specs/ERC1155Supply.spec | 15 +- certora/specs/ERC20.spec | 2 +- certora/specs/ERC20FlashMint.spec | 4 +- certora/specs/ERC20Votes.spec | 34 +- certora/specs/ERC20Wrapper.spec | 5 + certora/specs/GovernorBase.spec | 2 - certora/specs/GovernorPreventLateQuorum.spec | 370 +++++++++++------- certora/specs/Initializable.spec | 96 ++++- certora/specs/RulesInProgress.spec | 23 +- .../specs/{erc20.spec => erc20methods.spec} | 0 resource_errors.json | 3 - 20 files changed, 685 insertions(+), 398 deletions(-) create mode 100644 audit/2020-10-certora.pdf rename certora/scripts/{noCI/Round3 => passes}/verifyGovernorPreventLateQuorum.sh (87%) rename certora/specs/{erc20.spec => erc20methods.spec} (100%) delete mode 100644 resource_errors.json diff --git a/audit/2020-10-certora.pdf b/audit/2020-10-certora.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ac5994391081c55061213232f30eaff57605fcfc GIT binary patch literal 504847 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

QHqA@2Oe)@}b~la2G$o>xx* z?)zEUvxSzb;XlerZl4`8pK$Lo;m_LCciSp!8j;5TC}8HDT@>uw?+3==`!$~^?mq^8 z#yEb=stxhK3ob9x!jst2$EQp3MSdIDr8M#!i1uZjbZl6|n1<=M9#!!ZsvhX$qu5Xt z%9j?L=_Z%Y33<%NigO6HwC>NMX?HnrPa zHK(mH?Plg1wZxIOOGG`6*i1Q3&RJ|#9yh9^) zTE$KYCeA({v40PV`LiM2ZX%DEEH|cw_R0AY?bBTo?#pRypxo>83-kQLYJ7LY_1A^{ zMO_p^n&%>QAGfBjnSDyC18G}nZeKPPUXvJI$mjOI1HOw!JIza{n+!c?Q2aLCHD01R zk8~DZcs1n*Y&>UuI&>7V9C74eTVzs?&`GL5 z*2sYuZSAl{0+9av6sIcws4ZwdegRgBd{qrz~Jlhu?61pG{;>=!Ag6!iLlEAm@}*zt;Fq(iKfQ0lQph$ttz#&OSHnIc0Fa}*!j zZxi1a0DgOeqP6#wBpj}s{Cq#wGH{zMMYhL^ii4Q+Q=PC!$)5s3}TSh5=+70kN z+J_MdN7L!UeFzX(Kr*Dw@YIxXNSPCk{No)`$vDhs9?0hb=OkXPS|X^Ctaub-`25`U z`rt`-;TQ-l)co?WbJulWB{D5eEyNmdH6AAUdUK2O=Z0NUM0u0-D1}?XGs{yB6%oPN z(cW<$0589sJ0c?evo72_^oLi)+q8vB?R)FJ1Lumeu@Og-P9#l%yRPe#o~IE>%I`58 z3}HL1Sht@k@XcXFmZ?<`9hjr0J$ggsrVS)s7-K`P@z`)Y2~h_+*up^8fcMj7-(o{W zr@mK2E%OrL(_U770F3=qjhxouKDIk;XO3cU2sZg1OGIkAs+0W3&Yo;6N+o^4*LKH9 zHThduK$5`6GLzL0bVNLFhnJSM=qzn_@>6ZFfYfo?JO` zSlcPu^ZP4SNax8N19;{OcLqM*+hydGxR$Fy?;(;?!gds61u|lXH1u-5%oh zRf$&UTjGT>0%lY%@yj z2TqtV*1Fa75iBnXKa^;h3uLVb!2hAN(7v0=h_7h4;?f1}uuL^_?HaMOw!rN5kcA(J zF&aoh0Iwd2)`5ag*>%v_*b(f+O z@anoJ2iUL;q8JpTKi1$w`i5K(>pD^ESv6TA^jspBl(-cs;G)F{>Nd9kCo}wXuWn^Atq0Hik6J@ z_zEg}0cnZ#b9(u5Q^w9`wP+EgrU_o}B9$k1SW^0%lehST83v|+^(UzqN!XYgd9iV# zQPm^Yek8#bV>QiZTo%om3n{3K)nrx!&Ovy@za%#Kd3&iz{ZRG_LCRnZ7nf3eH=+;1 zW?|l1Jbic_1x_YS7)X2#y9f;ZRE#~!5L)i;5d6NV%+m(k3JQP z9f3G|8N4~zNo@?&rV?W8$T8s^<{WB}UYEcwZ;Y26CuNe4-2-u==yjV~lDMkET7$5K z<}#a^)yuNH^@q%rF^933=8WG7zcK(>Anf5fN5AxQpMqz9R~` z%wf-{LIeo;+MHxaay1*9iQi1<;ZMB@T;RaBt+bjy+gCui?axe;J#*+%YD{lB9eJYe?jezkTU@eLxPv!bt&VMS#}N6CuOvN z5Zbl+ISxpifXMH&(;O9%o0#0w=gnuvji+_N(+%3d%W+DL_mpe`stEzbUKFDYe_SI* z8SSE5w3GY&Vb-ayUh3bwRE;)PUiqi|T6O0-vu)_&t86@U)%pDNyW# z5~z;iU-YJaIy4L%vaIjeNZ=d4*|t-rDMI?L4xj%ddk}w<2M@iaP!0Z!p-G&XV4h0! zW0FL*iE*p}o0$v~g6XZEdf%3vxH3BdCrkTB5SD8=YOrxkbXa0!xGT97pPQ6q7y)R2 zS`#;U)|yBT`lcApknC(aD`dp5WY9p55HrJZEJzXFC23EBLzCLmpNS)UL?sQL_eQ#y%hqPfe~S z!z@mSSxL699kx=2tD)PGqv|LeW7$=h7?$|}8%sxP`-VF$W+6;raG1#m##Uwk|Lq3_ zRh=c0Of62hD3A2y(mk}>%$V8m@!F*GjY36p;e=$SCZx{9WYtmqR4sbbjWL{cEo+IyChN|Pi&0hAxs56ru5vcARa}- zyIgGMGyrM*@DiJkc>UV^Z!n128~M&erc~hJi(U9WtTpu;~@ApUzZU|fZ@X}>G1v6-8w35G@_WAqmadwm|F6#WRIuCzwbbeq1B zl+$C+EOlxs+nHCKb5g(Fui|KJTjKlFjWO~@K`Vzk^RWXXT?eq%s%mx1vHZN@(9YwL zVD1V1?krkj+T+uoSF{|*yNMy}p^avx7jC+;K_w7>WNw9H2?gdVvWTbLcxBimZFg0D zx}c3##+pLO$-!e>3$m{TWtRliT(;57@k%a@y2AC7fetp$t(_@$80b(p9-x)OzpnsW z6*;y-G%s~I>CN5qjMU^2HolS$IX&rFZM+tZ__3Psa7nP^>yIDwbtB%x?YJBUkCr(% zIeZi*M&(qt8bevGWOin-6QkQ|FKUb>3Mi4mXmnGUI*`G54828l549P3i+L(RjZ+^H zeQqZQJn(%6;|?c`>Arc;d!>~H=uNq4utWmT7c965SaefD5V{;O(2Ou-U15_)h`8V| zCBaf*Hhur|9WXtWsjx&s?C>~rqc9riH7wbFI!HzcN6}aOAEH0%nyk6RVXzW4)DxxyrSF^X~cB=1sTY^x?~l<&Bz7vd=#z1pw?NE{{h@V4ZI{C5lb<(x3J2_~ItWI8 z+EKa}=V)L;c?e)_qFX~cGhCuuXFD_eqhDwkt`i8V7GQ|lb>MN%eK3QJx1O_To4#SA z9R8kGqg~&a?!?*L=-b>P{5S{G%<~;-%-Ce}^4{oEQbwK@yu8ecO^~dsE+()iPZPd4 z4rq`C09A8Tn4&qs_o#2Bev~y|CbOVyn20HdwHScjtNpa72|vbzREZ?d7%~TQ&LiJ) znvtHl7A6!HxTGe5=BSIgDZt!8>S?=uXLV;t!Rvr~h-}|fO;U{@(x&IHWUC(aG@SBh z4*O}?{>L2!;Iw19Z=)xK1Kmo%f35LnF4JZ9C9h_h7a#QbE}9T~Bm3eVV^urxH>{2J z7n$aVkQ8Lk;YANWy|pko{CUu8Ddu!Z8hg>?X;dKaLCfG>AIFpLN_41${3&}hc`&+P z1?AJB9-m#Wt=e2}MXwAeOL8WH8i0qBX_5ou{f$&7@iVHFkpr~1J^gV z*msc+!9BoIeVZ2xjo=g{+}|06&LoMIpJ(a!XTRh-%ZbqoNJ^%J7gt(;XZrRr#Zb(O zI6iTkuE|=);TMZ=-}{d<2_||x%FM1LiH_y^-3Q<@B$_mLm=6hd*u)emdbIsS6W~s2|D~*1-EKp>wS9%+D zsi*`nVAqX)IGxn#Vforl$GwNNM|xvlpr?c=7k{~}!aSr@^64^sdOqz={fAFwAGv}S z!EQszrJ#v$=|+9r=s`Qk(%nIrzI-&$uh;RmkEP7%N5F^Oxl{HUnlTdgm|El$tKOw+ zBMrlJ&-glF4BW#hmSL*l-0$1paUJzRtO}tvthqzeW%4xhu28}7uLghguX!WP zdX2zRI0auB{o0M*DqCyx+2V2bVvY{Siwy;{Q9K8^Ty-DO@|DZ@Wy=n`jQ5z{$Jz?^ z>oeP9L5CC%YZS3JI78KJWO6SZm<7*mr{9Q%aIZ)WW6 zA~Mj7y8;@0V{sIoj=ge@Kaj$QT9-1EVmv&(B-xi5g<9V*o>Gfi2mYC|yyWTDfF}#X zmswE`X#E*l)dkR*3jJ7;6Id;Blz2+VvN}}3+7&(Nc^#dUNe2NZQdwaksXVpuggoYsSb9zbh zfNrc$>c~&m*Q`8&PPa6V`OGrouPY&b#OXL$?H3G@8bppv>>ICp^$LjL& zl!m?uOs;<0P5CuN5rdV##B1*aZ%f+uPR`APXMC=dT<50H!|Fxx-ts=DUxirk3)^l)+u75`bZ%0})Nh-) z`{!j_sgVSDB8)KUD0&|XA8}sxO<{jU-aNse{)i-FpxAd#FCd8RGuvasO3F>*m5)DP zM2K_~HfpdH$tk@@CtlUn(e-MJb4b-y-{xpI$V<5Su`CjSCH%Ymb9L^rJ>(O|ZHnq4|&SeIoJI3FWgG=M{e%yd9XqzXO0akd0sucmHp8KjOXBOO4f{K?2- zOtx|5Md=^EGx}gv42&7a@DK^s$89_=2gTC1lQH4zS%`5}o>0zLEN%nZ07N(7-tHJA&93&k~ zYRna-IBX`P zJCQ52gTbC3)oewExO_He$WOj7R1m>0tSPTDl!C@`++Km-WVk)`STaO2F;sPIp`m!( zm~U0*>WySUKc-}HvZgj;3neoaR6G#-#)>P;vYxta{8FGAn0?`qPAH1SX%J2KU`A4 zKTT=E>}$w$Cz|fG=jn;nIe!cWLCjc}$pWo1H&!5OQufjd$+A`>#Bf7#Aoi({1mgOz z*;1^5^eQuDU8}ih&wL}PFoa-cAcGyMd^kuK&!7=s=PJ!ff!1uyU>+Qs0xJIyqRnN) zx-bJvREK|hz!-AC-|my#h|6Q1=iW*YSQqNL%!psjcRlEBMMhA?8PnVQJPjgdi(wCXlhHay+glO{P@lL=r`Av8y>@@jX$qb%| zx-zmYtm*RarS#M6i?|m8dr;IM>u3X+wNskFqvV_hz?D+1N}b_PIaSCA+G+Bo+4oH^ zW>RCs4SB)sZ^%*_YD=Xo{sUB-TB50~rx9#((&4Z}mO)=^Ch$x%qY+H=qOrafqTP?F z>XQMl3Pgz z+2`4kAc?y5ReQe^+M~gn2r`$FzV37v?EK2#D;VLNndV=Uf{pNw@N9-8qVDiu&6(%@ z)PtAtj?|(AM(5%fO0^YIZ7Y;ewJY6aPw2EBOXK3`v`DLbq!Mj~ble$R<|i6H>m58s znNkfm5Y#j#=^Zgd%eYjWu}4*NES?=;}}4GeY+~ zK^t?Ut?_>woA6f%Jdp z<*!Dm0~trh9u0Hv7Wr-gOz#oMF=0it$4Y+N5rj=H5Grz zm82Wde#&p{=->iuel1BJ1;JmfM2?xsgk-sV9Q_}My{Ua*_QQC&peJ9UCob$0=+q7_ z1}I@kSC#3g$%G+Ch3z;W73_&B(gHx0ZS+P@p3yxLHFoG~QM%N{6iu4)s-u;loEBuG zWmlyhgcdy;xuQK^-4QTl&hS0DtYZND!S2Mdc&03&a{U>*=B1WG?~0e}!5E*>xy7xa*q3wr$D zglPP~Qdyj!e?c_3{|zJjUuM!cdAI?boFE{GiW9;M0E59G5Y%QcfQOrp3pyeo02h?m zg8V0pw{mlHa)mN!PA-lf<}QGLV$lGmj`kc- zF#(xDnUjAXTI1yW%kcagGW5SZJbzIK7X-k`^RKkQ3FZQTxj{VO|HSb8w-9@rP*(e& zr^esUD{_H>03KdG9;gsNyZ}xxA1@ab7cVDN61;z#E>M&U$O+>5KS>-=Q0bq?=kF&P z|3w@iUNC@<7X%%Zzl07>Xz1YNhJZQ$VdMe+i}`;))5yuk4dCX5!kZun4}cHC&C5;2 z#R&lbLD1Mi1(gW&s~8B^f5!NKl+f`P-j)0BhaUf;4lXbN!VBi%1N~JVATTF@4-A5i z;y;W&{=&R+|NZPEhzAIOaQ-b+fIvI|2!sy;;(=}z;{<@9;4>E$hzkgXA3;Dq(0{`I ze-w%Qg^PuX{C{8W0gWHf9E2Ch`>zxN9V_VK%lVJ9zWfD_1^=76S zO}YM(n}Yw6oBl_1H3-7Z30=0S{^_~LEBnNMDUN+GWzE;2I{62AYkRRCrD(Y<`$=hX0p_^{FEN`i$A@}SRG3Q(QUQK{`%)CP|juE3h3og ztLnNg=i+uh&+z4*{^NtrMV{YGpU3#sY$BATzh-QMkFFnp# z?fbH!@21RVL4kkbR1+zvsl`7FE_(gO!}xhxujomgK2xX$1zRJ2i_z@D z#Gqxmn^8feGp!(Ecn84ZWH&`ZVsQl{uns-Z8#R4Gig`Qew6pmZ%U~vBA};UGln>Tt zfaA`?&$!h_WLWm1TNwp74=iS^S?I5+wt^AYcK!%DqoqPkQ&!G`E-}`{qVN!InlO8> z;CY|xBnG%eZE0z%ULCT)i8nOw)X?kugM<~SVdf8)xKPon>+Tw(HKKRH6!zD4s8rQ% z1M)6t-+tkZFigKYB07?q#vO`K2rOHeNOSCX4j^~FEcItMsayj<5R;vsMu zI3C5J#et%)or3mlzwKKqrCG4(M8*8A*f|&ZxGx2Kw_nWgWI#vE=Yj?||KvFOZlHxo zj_YDpuywsGqXMJM6t&<*qlIcu-9Qop`6iCAOx;M#NJKAv_HHABY>%cdeTLfkG2{Y} z8#H6(h1oN_UBtN~U0}&WBe41jt3>9ZOdfIw9Q__U^Qno_qCr>n_`FGN(U{ zR3lGeiFB}WRV(W6g`Bpqjov<4hkh#^)l?}-)xLU(7V>!9r$x-;Iw_22)}6KglXg*5 zs-v07;7)w40F!zG?b@yw(rvzNVy*FS?j z1TW_iXRm+yM$ZD0bziuDha_e>jXtLiAgl*G-0$9*3NBMRh&)fGy(~wN^m8iSA9SrD z8FZ4q_M2uqk=;LDC=DdU2ln!w?rdnh_H2w=e^6n2&0pAF^`7uNB74$3jlLQ%?zxD+ zz3Y34wauc~zc|~GZev(^KHNFl&7KLc?1(T*S)Tn)zH~nNTofOmpL%h>7I?oA_^M>; z)b)7P^_lz$(+0J{B3XrX9g^0I;GD)y(U8<>Xw*DCB z&;~v_tRESF04X+Kr4W(2=JN@A=53n`>&Z! zc!S%I?U#|h&*%-Gab$gcw{}doypbhy1J+Z+n6U}rncHukZQ5rKuviZlsPkq$>X{bt z{Ye)6?UMbO=gV-3;Gd5T6sZkL^b`BSRsf7M%})75*`&(ezK#yV=0fOB(k1L2Co2z> zCdjclt|buTt4Uu4eUFg@E6}R}3!Q}tqq3k++KlgQF|^L&Y={wX2i|6TIz*q1z;J3S z=~|*0>D{>%>Yc!kNV6Z|(n+>T&OAuP+YLeh;5Y18a;ob7##qju&KKHN z!a+G;N#i4L(BH7O{-zdzum9s4VMiZDBk-inMavEZ-Xz#nuJVSQk zJzuR>+_J8Dq$Kb1tu8IZI90Ar4n$E>5PEzd?zgI#vFjhClwpxYmi0-Efp5dBQ&HZf zY-KFhC0zlahoso@d!WE&q+*moy`=uj;tvM@5^l)a2N|UU^~L`Cv4K|EV2#@2 z{L{pPHpk+m|U}tQcg8K&EXAma^Mqs+T;cj9-D0F;AbO zY1&Bfmy(_nM;Zmdo8Pr~6G1p^sNJfNRrzos;C#7OMt)C0VRwtJ7q*uWUouP)jugN;l7U%Yhxt9z z@vR;22Y)V=ALtB{5fS4q#XfR9;Sm}b0UDJ9#&hMnlO-XVW|#{O|rFJc3HR zX`2eZ5elR)A9vmdDKp5vx1}_#oqq&oXKVM=ka&h&ZfiiX&+s1d?poC&2nI z+}Jt#Qwo_^RrmF?getn@Busnv1LKtGDqV9^ZVzyuBFyqNe$!y;3j-&62AhfZj@>2@ zw^x@Nz~=CMk16&puHD95Q%)cvt6)?UXJR6Qvu3@b;`E9j8JIUek(Z45$UopN%j3p2 z!L}w+O;P5v1%Hr4DlSJ?WiV>QqHgFLMbWNFuz*WSiDjzPD>%%)a7e*ln=}jE^fa5P z$sL!1mVFw4mVL6Y^~gHOipO3NrIc<=x9whPe3(r@y(Ko&?byq#Xq7|M4NRlBeam7# z+#chLmm+<`dFrj_Ff7RqYiYPw)-61#5#F(*S~(t{Nid+GRKoSrs-gVIvg_90fH zkbaL+q<#I*U9F&v6v4aXwBCOAZ>e~=~YI)8(((%67?tTk&^aE+g~sv)GrTa z*dQQ^(Xv14PcDj_oQdvmnY)PzYa{VnjwcMJdOBPYcqIFg{z+BT0#9SlFYx3PkH^Qh z$Vdu`$BD>DIq_{*fH#4fiN72=B|tQh2k#-S{bqIA(~zX_;=N&+yVnLx-D^vo5s36nvWkp;?ZDO8L5AyR zeN}`8=psvR?z`Mv*ou?^y7)#D$!V+OpdtYeB)n6|v>QyQzlDKNE*&bKf0j|c(@mHJ zERmi#?Pu8H8a0ASy-Z1MLJ|1lse>PrLDcrej!zih_A=P;VIYDgwuLMqvWIA__{vVK z2IQ!Xw$_@LMOtnp)+>>F2#utfS)0-v5xuc)3w=4xgg@2{CSs6>Iw-IU>%bJ3!}DGa zt6P_3t)_cR27v6{-W;LPcvra8`X3Y@7;-G-d)zsDFNL(xSwm(>HHk_@3$>#;YS8%W zOxWF#ir;^~R#ew*CSiRxb2lSnc%$zhL(t2K;sv z=OI;xatt1wo%Jp}&+f@5e$tz*-SUB7?F`p@u4HRR>e%SgXT{~OxcKin1;Zw%gxkx& z%a#%O{yXnStFp1opKjuAVcSalLkz4af#1#G?gfqR>al;PKrc>rPH)36BVWIN4C-M@ zC`Wdid_bb|2tRd&}53x~1ROY{$$L$ILjUF+z54NAI(*u5`Avx3=E%p+~(&(^Ah;Rjul-TEG9##yqAM6f)PTlA+Z_Qaz)z;oKGs zo=*ZHUILH&{eLv>DFx6D6Ys#=>$(iA7+exO5R~U-mTMO9>4}_>hyb!Wdwwuw8da8J zzB*xgl~-TYkq_DFVNcPMAa_afDRdg8zEOqjfklDSOM{|Fs44>}id=zyfOu6cRYtl3 zI#a-aPr6@}IyM)${e9{=jk4%s#lcJ@EUz^cn!aZfk$!O=#nVPWf)ds)gU@x~1{~mH zp3X1*p*P98&!2hV?BlmtS&T z1E43eKYbKj=e&b*`m*8vQA+(?Fk#iWDFvI5Qs>HG$kPmUoC;U`5*5N5vMMqi3q1u3 zpU}fZOVJzsgbYM%jAxz4QWfZ14HRI*5Ib^x7Xh*tpK}UO@u(Sb+}tz|$x~eS{WNmt zdywVnPkRwEp%O6%2s>sZ0g@{JHLNcf0u9Z-cQ-sN<>PRFVr!#F!Q%d8x=={P z&hNWbsgdi3pmUsV@yisK+Vfqq4h(UDICcW8zPVVbNr>qNDF=ZB;G=X{2S2e%!&nLf zpN1j%?)Ri6wT#i5z`+m%0q3tGc_UOU&3+alC#PZ!T8|d5Z)AId|BxJ-v$xW1nJyMQ z{rK%!(}{V!q^OKr_IZZ{uY{AAuuU_eXce`&D#cwP3xS3zp{tUs9N%`$v{`kU)|jgV zy}!M-WuZ(XoKjtbBp-?1uhD#)OxnUajd+wrC*AB@-R-jJolXHoBMqdXQ`uxII-Rcd zSeZJ9rP6(28QnP2>_K>(sH&sDPbB}%ScYMDwl!Q^@-@;6M6Jq2>n2-%K`R(9;#K|Q zSSt3E`G)7;HJ_Sj{$Vk4#!#9V$pirimq7r+j|Qj=zSMFE4_-Aq`zYz=m5?^{x^gEI zr{vc}`m--?1;VOAN!)CCcn9gL3ASDOuVSZ!Xzf&C1^wLpako*MUgR-0`;y-#*LBX& z_r8tsjRp9ZS#B+&BzsQuJ5ciVCtL%^vwBh*Vi^m!gy20VC-@5?SV}kIWX71J`#jZL z=ZLm^JXj>N$1T3tEYy)?EALykw&^hkl=s=FWRH4z7ie#`6(^3_aovZ@OyP7*TmvKS z#%Z56lnNw*9Oy$YXpsv^hf}X#`=4FB<7QC#<2Sei6X&(~*jKb_7K6H~8_OW%H5l6ut2RBRwO33OJGafe{a}*ePM^+yLl^Bg@^0#n zrq2DMT3DjXV@FGgrO-P@-N` z=Jv!1TuPFC{Y7>Ln!^(Urh!ks6jf|;i|(2E)T%+>G|lDJtPq16Hp6{;?!m|XS=1X9 zY~YXkCJ`b|i?G8`R09&?`>t7luC;ONSaspQ+@2^>4HQv+x_!y)o?`XGo6c+|h(C=? z$wFRexv`=K?5r%2884Zb?JT)ji#cyp^&6L34P7{K3eP6k=ork6NMmO*;_Z`z*Cz(a z7Zn^Ip$8UyDPd483Y2)xX0#}x2A_wf{Pg7;Y^@BpBtOOAWn|DUF6xqw6NcNU!UE^> z0HqIkUrC%X)PPW>jy;8;N?Yq4Qci03p=l)1Jywe-52OLFm~ zTHCD)ByNJ?lZ2`4b<->p%OtrGC6CTO5N(tHvUR#%0s}Q5hZ3~1n#&aw$NRI;tfmBJDb=KTLW$ zb;ZZ^YD|On&&3bPkzHNPt?J>6lD3X{nAMa&2yr58e8uRIW3j)pMnn{9&^(aZ_0R{| zDCW=cu0~5LA7v#qAF3W@bv1uab(Uc*ugBml*wc{u!;69Y8+H@zNc#Z_xg;@qLKOld zpz%?Q_72Iw#qG3C3PgPm*C);yIzLF$+{aR8|50z03N1kfSR)IAvf*z^ zFC@a`A${wwmy2soCf4^2NgPZ2XJrGwTHdC9brf40Spz94(5>rhjfTGmbkqW~5FZ+O z&Ce6u+><{{xd8Ih+uM=8yB2n^*n-7)^d(c`>IGB|B(pBT{rKC;p-$$tluO)H>J^z& z10rsT4PjDr=0;K3x6$1^zbp%LzS_km2Q^Pd)Zl$6#E16sZM$HGekzaQ6%ub~; zLG3@@>>&@*HT93tr$|51Dl4AFro4~X)*s2Yj8b;h)|F2C)(FoJ)M)%qNrX2zql8Ls zc*D;;Tz^_V?eU}QykC!8qR`Q1@Kt?ZHto*&hEIpl{!90Pqo^=-YBg}?B z;@8kCuf^wsC7;=ca-QW_8xO>(kw=HNsP-brR8IR3rKX3uIs5^v;GeUk8T^~15aHW( z2kuN+ZrFDfoU}9a2m%QCv;`_cO)Ho(v`l5X^e1ylit9L*4Ekii^RGjWO@%h!WLU0; z77sk}KFe2j_M`&FCjslNmX!_S>3g_GR&A8SaoE)Oek^bvI*8PLG>KR|(9Te+{SE4e znCF)Xa}jn$!N|t*Gr-kKSv8=}sR=K7Pbyg6cIrsKXeYbjsgWQ`=PPiPg& zk+TEP)5MA)kO%=3B5Y$|3>)kRkhpNFy7SnYcL|zldO6tU=^%+(QhQ2f4Zt`$^J-i~ z`pqd#U{9o(yaBW+Z~6d!NnxD~G?*!`$8nf`fLV6B7L;)7Kz=;juU1y z48whjqY2-2C>n`#A>Goov9bVnYcFLu$G$02+Z8N^iOY5pb#i%4v})%yS*zZ;7)et7 z;uA~7SH#2Erm^uTd}ym<*KrlnoPBjgcPw75Kh^cIB~Rr2h+?ZV3wjy!c@k;wh05wu zQq^xoZ#6PzUjcYKb|K^Pc<#mY3wG8qm^wrX?M&gz%;Q$X$WgBEs(rj?YEE&7beb+o ziVBI$1>D3j)<_IQBm32DOOMqVFQ0=|FV3n6ieH}$y_wHgs;UW(BshR>p7((Fn z0MGXaP7zrTeVyO{bjctwWq+9U61F@g)I@k}80%os-q=KyufeSxsX>qaQNP%-VLYBW z6&jEJ9kuh_qedoiQCbEuC5^X~)LP7EZ%wp^4*9axvd$wvuu9GEKqTCV;^tn*s?G87hjOpe-mKmC$`PO5Y1Y zdgzhc4-NW41R5TF;7I^$%Y#8swaphg>)pfQ>k!KmY$Yy8i< zFcKx+gP2I*BwOkO4aP1^(P?bIx{z3wi4>Vz4o%~3xkT4!xvVVl1qXZZD|sol+d^sJ zd8ppx*&C_I72juF_EU8;^t7%ZlkUUJr}{6|$Ld{Bt2Y*A_UKEVag<#7rLRs%FKK}X z$GXBwt-L~4c{dIh0+qJsY}VR#Kh}*-oa4A_%B~2P!B1{;STZ93E&@z$>DDC z(PfVK$>B~x2k0Ei8R=8eEj2lua#@G#RhqtJlcS;wM-rr8X2eh<4D?2?OP) z1L^O-4h`j}3*iqL=S%$lc95)aOaD}*uVj`d-?_y>5DlgG%D>aKofh4~hhAfo$F>Fo zH+6ox5a#Pr<*L&9fCJF}&TsxbcpY8-^E7*4&!70g`|4g8t7>KIZ@w!Y%Un*mFw^Dv zk}wt*_QjlF!qigGtB?Wgt`oGAE&5UTYvJVKU!^Pzu|p165KtGYGtyllvCnZNFu?rP z_oVR2{-iAATa7`hlX`?LC5)cIYS!Jt0^89N?{d##V8E*#8T(W*J2Fx+jfR4$I>R%YK=Lo#WOU6!`%kSsd{Ko84>)RoD``@DI+L#7gj4@t$fnU6Zqlv1_9A0PAM@`2)`eAIGGGudO z(6nSeO9Lw{7gnKOplVB-+>Fz^C^IU%BVar};gH-@DXpwrwW!wx*gu)5HHl<;X3;^n zi!BpI6ETV!*`9EZ%B?ysdp)Sl^&PY(5C}}@5eo2bgy(rh!0>O!9!YK#s{dAZ<@Zih z*Qb#~x>IN&vDcJa@0rewDw=fE5NlI{fa%?MOU_9vW6{YZ-yWe-N|KKpbity$pmF0> z;J0t+$tlR>WtsCAN$0SKQx^EB8zBLV@1$A@vPA6$uuOa=r;_aAt;ZFkpX^fD;U&jj zA8fVpq)0N|>`0w}8D&aqW&4CmJpO~UijAP;KuA^-dcwYl@&m$jRYhdMkndDjAYvZ8 z-rA+-<#sZyroR9IEDUC!Ul<9pM?OaE(W_=OJBVQk65QRhKb^82T$5m+-B$;a&#;c0 z&I4Q1YA{69nRmeuhNwe%A1J{#Ryu(cZw2&SF+FgYs-ej5mea0BSZK0Hvj>xLaZJll z00u04|3ezI!ak?x+6FZy7k6*CK!KIgEu_PO)L@f`GN3ow77k~M=@SGYeQh;X>Ll6P z1r2@|!cWNqd)u#Oo3PpchRA2dMQ)SWUbX1#^5ggL-X}M<-)7e(t+snxnQ|#by_xLO zNjy$j%X{w{5Rp_hDV&-5ewqUT6w|oy2qhSJ*n6UG>W7&Gwf3B0qzsx?5sQ; z94hKtZc7fRe5#OAqy&Nd?-Ewkl@_X%m6{8HVsZ(s-u04lHMC?xqAgWZ(0`db~M^Yuf&}?Df^p z2Jc;B1pm6;WQzdTjka11O&a8VDNK=)9 zdf41--4;PFXp5jy2jxCDndy^!*okkgjwyFW_ro$zbx&ZsB!uaWKdRJc(sXkO+3mlA znJyA3>HBIB|A1eLJs8zhh7f<4`d-*aTLM>^Ia{tIQ}AXuFs}aSr;&KQfYxh;zdQwP zmQm_e<@9yUa*g;9rIa$UpV3c%$MeqgiLVXzb*cXu{z0+az3EiYg3oy+E~>30yVDg5 z8A*akGq8VWiEpNPsCgPdG%5T*O*Ew~&>f@0|Lrf5|y z5PH@+P^YGuCwo5b%uEKr8ZRl}l8INUcU1X8j1c!gQ7$H|7=|{rHeM24H$v1BwnA!75uIRT(jb={mCx z{N_gwsS8@P932-G5|k-cwtlz-4jXr>rVBS0vRMa&U38NWzIXP*6s#k9N%6eLnyCwD^tarRv&Q)WFB`KU%eftwD3C3s`Usv|Xm_m6 z8coDeGp0)P%;RF{%6vtvZgujE?3!KND3Go~?DjSfWq2inVF9}I?kIFSV4MY-6MvRj6|>m7;# z<2T2#l4H7sZ;6^M6y@#Nqo%zVBQVB%>9SGHak6m_!BNYnKrJpJqNZSAuoZAwzuv1+ z!+`EIe)!&9mQ~9c2kst>k@J+c$oHqT-B;u39SCVg3rXM$%QE=ATNT~umt@siBB!^A z2Mf?^T(!9IgCHt=xzjd0eX6P}hK$GFAKUR`sHv}cwgE5IS@J2HIQ$c{{UKc1eIZ=G zgHXVAq#_+$G5Mj~KM_H+1)~g)-F$sSJ!H=Ygg7S4!<{mE!d>F?Ls5QinYm^Q5#JKd zNxmc@exsb%#D#2+AwrgRnWTbp1Rc&q{7`8%FHAuweo<(X1pJtPU3!boAGpr&t1KN0 zcjpHk07kGd`i4;%Q*t{0dUUl;#e|DTa4%&+h4yzwfY4ngzjHZq!cfYw=z*1jPN_UT zR?gh%x6)(KCQI|oYoWVA>6#KTXDQ;vIXTI~GOalCvgyn@d8ZB~$&&5lg)obN;tgnP zU7fo@1+8+XU`9}}eEHc>aQS(g;3nYNFsCjCrCGoo>Zd!t8r07ra(B3&LySw7Ud%b| z&xXEO7s76Hc_FCg?nWL8dWg#C(30ADRPc@#&; zX=IFHsDtjx{ZRX>V44~5;EF$(lOp6z*b`MaBX0zmYGW8xvSl=6@CA2!0Xv)|PPg{K z5y_b9vl=4W^GhPzh1)9JAZo4G3eGZ)58LZqW!GZ>S}&Cfjj~?H{-s(uld5}3NFT~s zjqXWAaY$Yp&9#ZL0edH*ilOX<1iRL*cxjuZyLK5wdRFS#U=l)cTiww~>ARIZM42+# zy&$`_9Baw7bsbvSPqGc6LB}cEl6{*w;<72SJ`pF+cumF5O=Ep!JPGY63plFsd`;m7 z$uiW$FH+Wdb;7hdP=bq5H~i&@afA|garNfPI=t->`Ml#TO z4#1Mw1*#}oIdkVypwk%mVvU?z?)El?y0SJeMQnIPaltn`=212*9QmW-?d?(u4RcKm%pO)2BFjLyNrgM;yKigwJ3l(dXlyWxq0 zlDOuJhL#oHQzz=enIEMP;tYzFa+n%hZ!$ncZ*d^W$?AU#>8dub&OCwD@-^5Q_qPtE z%T`PyY8j>r0#_}IR$JO-YA}AR8rU)iMXrZSleH5iYdR}ScdZt-Qr4U}L>W-EDo3oB z(&c(=sc63<)C{v*;#?%u5#+x2DB^xtX!R|_K$2ofz%0SV|)`~&v*n*qroy}kDTYiRJJCb0bs)^A-D zbm5_Xt2`r=vn(U#DL=RRd49lPUVx~O>?pFpmO_X0;)%^8!_RP;hfk6&RLIsI@9HoYSS?rjn-o0VGb- zV)>;o7H*bG)V^+bCkceU*n?@`u;;j>jf#08Zb^U9w19Q~Nirs=!8wp~0;7%u#QuWg z4Al_eK!QBo>s7)DDPuBeBti!y^oK`vzbQZld&XPv_}HRUIGkKm+AZF{Z?q{|-&|CV zJ9+i{hZH|QFuD?#%e;+}>6&auOfF}nA7`)SNLIY-Ag7(T@o#;#SKK2_#7fTgYivT$ z)Y(K~&c$2|W)OIuENsRe6k9${aI95w^6m~y%zI9jlksvqd`+h=vJkQ_n+V{~UZ@+( z*jp=V51>2LTicrLcRro%ze=wR+zf^cISC`+ydA0yy4I~>NPjcQKOpNLniY$!JjAzb zYUZY~O7J>f@vN3K6~5T+LGB$4<{OR!+%q$VpGIh#u39o&Q9kU4_vp^B2k!(+x31K- z5!QXMdpUv1uaN+OYT#Cj!P|Aq*45SJpY)$Y97gU>{k>g!Y>vs<3-O4;bT1{teLIik z1Lq5xBh8w-3Wr)Uz2%9&$wW$X6Y`3VSbU$hjoom*HY!+flj=7OzTK+#)Bujt9U$Q= zM|WZUzP7`2O{C0e$IC9m&)lD6GvcPG{FK#0n&<)()aA?5W-YC61k)XR=kt?9_kH4a zyyD2|(s$ZNQ~DXipoFOpaJM#MwM+4q&PpACP4RpP$3+K750kK9g@mBZ%XA>%qP3*7 zv9=V|ho zW6~cl!Rv7BBAUP(8Y;Lz?@YYLsgO+u-(h~p0u;vK(({O+N8&hv6fiT14U$i_oq3LE zQ2W&^I?8?;t5BcV6-vu8`%nfTU8~6b@sRYccuMkAZ{#|qX&47(s+u@CxK(b1qgH46 zehbg^C(&)Gw$5uRWLuuihWStrVzsCES7Z`0ByBc|H99w#aXO!NtpH$f_4X)*u zjO`37UGdwl=Cw6|hP-$`+}Y1GdoORgYZ5E4^UpVsd|8#lsj4h{@yDB#=6!Tblkhho zgieg&N9>Xp{hV`2=wMv=C!y=0`Zrn)59oH6H34~k@i+vpXmUcAY%-c&0r9v~go{4f zd3dDf1Bu%J>R0j(D%zE1gIIA7MJN++Hr3}X82UwjC;i^yh-(EzH!4R}ay*tAZPGH4)nt(mTLuzuB*!9t(#-^so%=Q!@E(m&S~?xPifZ z30VaLrjg*F6jF;vJCD!)Sp$IQzfs`(yO2P}Y4w&w?kL=)H=JDb>m4ZFd#Ab3Y?HsV z3Lqa1MQO255n{92RubKl4yG`!PgFlyt*=!>vQ&)B9O1kDiB1J|H>xw3q5g=QnhZs{hzWQ zT1Fg6PX=s`pSO)thUyPdt6Mo|eyssbhBGFG%^c+J?bZrnfX1zJ9>U2Xa#J;c8u3Of!xqZ6@wh77lU3&(UF znN^S5TkC%9AK!cnSrga_U$$$Cg-(gOql1#186Ne)3WluyK9(~kAfRsYeqKF)M)Yx4 zNR%&m836mvLAX_!=W%4fQ|@|fBqJx)?D)s&$7hVrUyYg!`&Mtepw+eL6%U(ddaQ0nIPyxLW37$G#Orc`m6CZURSkZ26r$WIVzg6$^fj@>~@89abQkhCyp4c@Y6~N332_I&yE)%Qu&v0eIA8ibDtzAM^@rW zx^VK)PibZS&4#;(Fj@vKZ8~Ub2J0+e=W7FM^#t7wf=*I1FAjLNvuu#YQjaG$MRBC* zXCD%~6rA`!Ge!~vrU6OhQ)2NW-yS4d4g_P-C&0;^a&svL)8cFBawZmAi>^r~!?`+> zX2a+v@plNl`O;K|w?8=YH6C?^B}RbmBK1W3DX+S6A5eM z9%>NYDa$wW3A5jz%-z0e;#yu8T)HP?zLOl^P={U-{<{CN{_v8i;%frO3TMk2#vpw( zrq!*-X6wz~)N&i`Ti2R?Cpq7WOrD8 z`{vJfCJ8P)G*y=;8T5=J)IXmt!E=BsipJdytW0+Z~8%%VGY9E8sT7lsBsgqLiqc7OWj zYv_6?aA8itv-YCCtMk2o z`>yF#=ctzE9PBdFfWIj^zuy^mAl5zK?4d23aU)raWb|d4TGQ)V=Q)&sd0i)fhx^^k z596wDKkR_&IEq`6EY(ca;x%U2Yv4FP6UO9a>qa@6%x12OE{bRQt#EySpLYfGnyl!? zSRs4HgIX*7qKz`D#B$+uim1?nF7SbOR?6N?OE52ya7_H|6xH^2xD3KvFKY}I5KQmZ z`t05cHW2Zq%g&&-DMA(GAO_>KREBPh1i@>eqF|5w)i|1^KD2(R?6#ohTrM^yb$BJ( zY7N(z!Kbv?KWQkVQ9;a^o40O{$E>o%T=eT?3hsQvwi~OZviuD!HgwcFY-*Bhq8~zge1f|YhhSpk z($ku^+gJKtu}luwU1J)(iPOz5d8|#1`5alfHo7J`-Nb>yO>GmvX;?GXX#Q|3 z@nu(A%H?9y`bl6=I-Xv9XR2p%#3WY>SSt~YTYTf>L5sT0#^|2Qjj{9sNA-bb?UT4# z_GB`n?AmJ;T_KN^%Gyy^H=}%cmyruQ9LiE*5bk(0Z)MD$`Jx$#0^C>r1yii;<)^Wr zqe`1|%)X8_zO&@W&_$}R5}sy;IFWkHq^j9oSN8<8rD)9f{q3RZ{mlXQp}0AgA{9|K zI%I}D^m-Y2;DXg?wUpUftDx~YsUcW38nga#C~nP5DDDg&Ddk9bC{kIy_`uSp8mj4r ziKykH9rl7orRLA<#b+$CZJVm^bNI1XPMVO-+e*9xba9Q8Mxq@{f5ip{QkX-0G|Lg{ zc98+!b@2gTT{1)2uIq;GR?s688YFjBSu?vUI7x{E(azziZTQ>&RHiF11qL7|2vCm9RZ?Orlzj zeEq02G(^&3K|H<`lR15r4hw5E%Z?V2sYrZ}PEkj=2n(z97~CYrUdkdL8GuXtsr}{r zPc<5X2Vs|Fr3Hrfz3@6}=i@tPC4px2eA&ekf`rQ^A?|l7dJ%pz6O;ZMrD4@`L%fkBy_; z-C~kM7`$ju5whM|Nwcaxvdn2y54vPQ%izF#Js3JR$)vGr^9XZDVF7xHYYj+RCwIzh-GY_Z7E%xZhM6=7$dRTt z&A7x`$fEOEHc`|RYbSP5b`akLzd;=&_}kQ$wv93oz+Oe^uhC;ngQp<^+KY@Cx!e><-6zviRBtSc%I`#e^ft z;J26a2y`Bk98Iv^L`?)IVOB;R=2j6M2v&`%W~*IKH8o!vX30ESVN#LGCt=d{ve|$O zmhP(s?Zh=lE`A0?%+L{;Vba7rUy_xb<)w>Of41J%_d75cEVta6JLDC)rB|y!XUaXD z__LgS8FaXoghjxYA-(>vKBZ{j=u^xkk`LX8e{jHSXB7D3hEo4Z)YaK;x*%}iP*<6G z&BX(iO(&Zy>E;%3wamj0OP}JBx*;z3meYT$)MJ(0d^GL5KF^h-#tnNabpT&6l{f|7 zF~_CfdMCzDFvFKl_vkG-=h{B&PfEmnWTos z9g6xBY1Zf8B%}TYmqfL09VAXJ z7U^w%U&HXzJtC-~%PhCH(U$6j=0@BfrEdnVx3kS(f(O(itqDRly5DnA^e_fiHQoEp zfJ2jnk|Xxih?`QTg2VXNep>!v_d~ug9&@Rv-65_9q7Rs5f?=7{v~{2irr*YNxPakz z>mXF1D7clNad+Gqth%hHZO5IxCa3IDyFT3kFW~k>WRb^1dmhHac79{;#m0F~=7zYQ ze625EJYK)Ok!m*G$vJ&<{Xma8g{b}`Qm`hFp{Td+dt{*KQWyflLmp=Zj9jp~P6k`8 zA%puM?V(6yW5bv{m1EhW(4qRKWmm1_PbsQosXu_WY)xBHeXixr`DlD zxpWlvLAr-$F0X5~xmK4Bqkw_}>6()@o~D>iBTM;>T1f(z!(5Z`577>F%js~dX_6zI zrvt0|>IaKTKDS27&mrG~hAhV3${Pt|PRbh@doSM>HDk8U7x8Oej2&{8)hzjj+SM$3 z&UGun32?5`*#(z5EPI}3nQWJQ&uy2WG;EjJtc+!t%$GKo$1~iL@0LP{%$Pz{%a=YE ztUlhAh4HlNN>y&DGgU9uR4!}t_M8N*q=nyYTghtN)2!=OfVU|_Iq!yQ(?YzA!E6fptQN%k;GDrTCW{!NyKTmK-G4CnJpPFl1y|~Lnj_A!GiNqJU zYY8-y+_GW`qjQRe@<4{9=^5`G#uyo^lRkFp2?(F!lS1(Kz{YiI$4N2bznCFScY2Ai9 zGp1jlE_1p0B*csFx7C^)k0rk+F-E%EiAub{vJuDPWjqx#zEVUEdO9EaNH)!7FP4#h z5k9bJI$tKE>*U>$4K>zZ=Cl}ttn){y*Bu%2t@@06yKylpbrCZnb@5fiCRFgQ3Bad2CUrLN_|*4(bgnUaQ|`esyw~W5X|Hjcshwv#E$)^qdpa(8yNB(_O#l9wVC8jN>jvjc z@NDhJq}~W*z3mA5=AA0w9RHny0WqQb zX(DW#{c#*J%`oTQuYm@!=Tz82>AUYL&ay-Yi~oYACL1(b%3h<4A2f_D0dN+E)KFn;?Uv8LeKGxw)A$sEeRz_OCWGjQ}uJ>0iv|8HzN-r;4-` z<5@B%Bl6WxriwOmj0SnrSu7XVl)8Idj&r@cX6}AZ8+(AZO^t)LO#z2Kk2a0)^s8Fl zr%k4#prn5#5(B1KcC0o$Pk=hrKY=>cO+nkH#-X%)erD#|cncLyWJK~{Vu?GkoV#jU zjS4e7nX2ul^)ODe2WRfgF*xT}1)W;UY7}d|w>66#TtydThxhCZ1$A|jKd(sV-HhrY z8_Gn$pa3Z!07nOHYUcU$H*{2I-HvSgp6J}=ByN1G$3xXP(OlV36=kPTwK8al$_oFk(I{!Hy#%I zzYaWN1z~Ie04_FS4wkY#boM&)-%SAT!9fm{~af8SnYe7{}j8SipZBbp(<|<^*tnSe(S{>>P~j zK#)W(F*6G*BPd{iuyMp7&JiOk$Y1_1BBinY4TS}gx&BvKQ2!0nV`pJ!WZ?t>LjP_b z>})I`b}4}CpJ7q{N9=>`ZzwE~r~j*e|G(`61Y87>I9Zw5{=q&#pf~`CrpED4#LoXA z@q_JeEG*!^Gc#pl2QqSTuz>(_e~TY%e^G8(LD|PYF+u+s`}kXC3jEhIQ)YIMwmLI_ z9l%D+#scEzaWS)i;wOmS%gMeAAieDf&b3j6tvDVf~MymNUdxj z;4w1?2k@WqpZ|<`{4F&F{_CkJGYFQ)3PM|hsHUtyE=Eo+b`DVP#lZmDEB-pGHlwkstd0>Dk# zSj7ktcS(EP*fEE{&e)^>CBWX_$h2#y^04eR^>de*KFUO;x|(sf%fTVuGpux6V0!p* zQ?GL-yK(q{$lLRIQ=TM)iRyiH+Fj#iHQOkBSX!EfuXx9bskG_+Ro>_0w)x}yiD;Ph zh+^PZwELLHvfgb~H$27AHM$Yqqnzu|$NRjVz{#M%TmQW6J2&4)|A$*2f<^Q+$^O;C zVW%UMfe%ecDsSh)}}HS!qQuHzr`yk&Fs6fKSz{* z@d2~&&a9rZFj6|&A>x_fgH;#GN(NN!)mmrWK01^^Q7pWJ%uN&%=D-V2U=&Ox(2dF#sZsGI$08!%}>d_T< z7Rud-(+ld%w<+vW$)4xfZ9#@==B@$$0<#mcnR>^wR>l0GtI@CXG9v#)2aM_voWA*< zi3?tloliDUgFigYB?J}PC@771xPu9ye|O3dUjuehxu{b?%XV6lZzc`qS4hY@N|W=K z47&s*A8aL^q(DvXXjFqp4$Pi$5X7(PSe~OS{T&b+P&5BKfbd79x0fadJVbQ%^hp#v za+>HfXU{wO)W+G#oQ$Y6TAGIo=IK$%#tkmmz7as+!_|j@$K@pw z0Sd}m{0k~bzA>!cygpAz7IC|0P9r$;^GfV(1&J8XGZzF-FU*yo-AV)Y+F@|cUEqxc z(_U!q*t}h=p}Or#fBn)`r2fwHLUBk9ReNm@q)JEri5lsKSNP(W3VdxWs|KMiZ9O3_ z`v#7@PQdQ>Zbyo(>O8fb^WHLtnOPtFBzuKw8SJE?CEvs-4~lL{BJ zM>SqQ^vhm;*MScepiC3?AZM8UdgiW46Iw2&QiS2oLQk$p2+)Bu+koS(nGw-Q!2)2L zq4UexMClLU(inWIQBNjT%|`*auuHc6piB_ph7@UDd_(>$T-2NDMtC%Rb!KlG}K%-wP>H~u;fATqP zYu2I>v3)6fVVE1Pbn1_|ZNKe%|BbEBOM3Uy`R0cm?_K-m+g8jb-`jq7!Om06$IX$v z&rK%!QG~~?1C|rnS62A3O85Fw&BnD~|D*DGbE_x%)vW)$mX z^>o+dpb}N|F4D9lQsvT+&>Cu2(Uogn@1RX-om{j=^4>pWqSA6u3;-MdzHHhw6F4@2 zt8Ty8L>zPgBP4C8x||0tawl~fss{MyEP=614bmh((NE}ghN0@aN7Pp$3T#ot66Yd+ zeqw%3;D;8DBn_q! zhZb0}0xkT*nb!23c!|_bTb0c~5E}7HSD7C1h7?ywxE-Y-xmZ4o^i0l;2Y?p?2Yg=; zi)jo=9NHY{l@ zDK7kDGY%9+0}TY7xV28uvIu_}Z^6cT?~|b~&&@K!C<+TaAz=0=ip7Cdkk&Z(jY2p@ z;^@>}e&<9b$X0?9ulF?&S(H@v>qR;jLb^TG$V`$H07M?3n}_N5v)UX({Xj&QCK<%A zTAs%A_fYI4;C_1^;1~k~WKO^K!9{E7osKKwW}S_13{WF3hjh}RA)*{C9l=H8`1~4W zRR}vxjYK1u&K&*Hd!-(!GL%G(7&AT5371sdam6)OI36l3G9WDOX4)EdeJZRRN6dgbxxhiQ!9 zT%@4bX%Icp`=}Ne8vT=#M2v? zWTedR?R?Y?A0;;d{m%hmBvUWtsNAA~DsMZNa9dSD;_ftCv#5pXPqIhYgy8KV;{MUK zf=2z>9C#Cxi)&}uw96TY<$iuc?< z!i9Q9_mlbN>kxjDa7~zVLx}NR@6R{Lx7|VmNG{vM#T|d%n*E+dxyo4~nO1c-BK{QI zev`__JBACazJ&9!c(?7OiUDVodAk4VD?tmizy}x;(K(UCta2k@Zcw6Wu*@wA z^Q$^S4Tv|hazeDgiVIftDh>f2u?fJxoU_BAL+W4lh2@dyrx6xiQfKSDJ|_rrF8cL; zWRsWnpwjHh7WwJ+lj$#CO4KAx^YKHtN5w#`VX-au?~rvSJcimj-i$LjvQB2}!eo9v zD$3^BVf1hB%=m;c(us^Q*NLIz`NX^*<-xn3>mjy(f1OK@b8fBSK0%Y7pd&;cCw6m9 zUr&fw<2YU7x7gEZw z#cYiuO%udTEky&2H%(V0oM-aKO_*rlDe8~6Xf-zR7UMFD9+T;xBNIlir$f^`p@KGc zWlbaHbj^mYceAOFspNsfu)A0Loc^99hz5P*`a1oetj6xp2 zP$QK^x2B@ldbbK|vUnhUS~?|^>X1aQTC=^+a3Usd*G5g`zKa%E8;`wu3FzGYI7ndL_Z>g7&q6`nInmZmFD?k!k;S>Us5q4!)iE_ORvCg>6s0SSd zY~Z`h1T-ZS8YfgH3Fn~We!mf@Lqp$8$rabM6Q@Y7!fv?+dcseUKHS_B5_O4{hT0Dm zpuVca{3*q^moUQiJE3NflJ_~h6e0}uC}yQT^Ct)n1O^3TUi-16~L9PpBxAc^wPVd1}d9`_NyG3`$ZI4TVA!_1Oi|L|k|NU*uP5R(>#z;~ALiaVDvoYj z`-R}{?(W(&5?q73ySux)YjC&V?hxGF9fAc2Zo!@0e$PGkp7+zS$JqP(#{Q$|T3xG( zQO#U)KE0^tx9Vk4s!gZWn085iDk3h!tR@Cop}~SYpA0x;-3;sWGLpcc`}o7L*JVS> zzcQ!XBkwx-6T!NBwL??twR$7)X1jh%d&?Z*2+~;eIMg(`opz>lSyL2x4R0*XyCKW2 z0|9EoABWfjJu@t}I|^a{&|TM>3#SFr*Tte1A$#8?bv@^oa_v@O7I6oKKU+kZ^_!iO z%O7t0@aoWSnOq4H#{M+eZ*2s`Bp1Tr9E4X9UdECp2vJ4+QNNMnc&MOj^0R4?g|B!& z`r?8nijUF}37!`wp5Tl3p|^`E_%ehP>=2F5O4hfFgAc#FcP`b?8PJuJ2}FL3);BFT z&V$Y?U$Sj>uPVY<9K<9@_iy&EE5ctRa8s?>IV*p0`m50$Zyk65YsOHFzvk(+MsM;$ zHvJt_*=;Q)8PuaNZOhuRnL2vH%WZ$9Co8%=Y9co%#>0-{7Uky)*tAf}HJ@hn< zdbhkUN>a8&F&R&l4VamhTj3+V9QbLiwYzLvrV`qnrNa7NUwL`PM{2omo3;Y~SYH_! zr~_(H5m47)hM&Em^q)Sf$Yr#NP zSnZ?yTVM08|7Icy6g|HTJi5p)B|YZd74?wLw4&5Ga_5tBZG8OdL?@|DHqko5VE+1iT!Ix;yMHYgB)_mBcJ4{^i6 z6%v5rq_UYaM*h%)4Dw3q12GPmBaJelD{U;&enSwH)~hR{_h-#8Fu6&~0f?(TgSCu@ z?o__C%IWB+fu8Vt8p*Sj2+`+e&3!IVcsxHtsZNvwIscxj{Teo0CrWBCrCD5@!^;7R zxg%us4~wNfk(=*17@{#O@6C9W#s-3RrBS$BXF18_QMlzZ`iZ~pDwB0(2B7znjVPnK zPm1y2Y#p-54d;n7s4yg9plQ!cWYw~^%A34PRiW4K@~sS1Rndv73%ad5t6vy4m1-`x zqAm4y-sM{nJ|tR6&o*prx)N=Zy8yP`>UHZgJbr70_;~B~%-&65z@B;{_lJgI{aEvj zOY(k!KJkd$;Uu;jdgj=3UtP;_8Kx6+k3;W1``MN-qF>4k?j^N>mq9g*lkeAUR0<;R zVtUx{(A?@zZX?$l7KA$&&x6l{zYS~Us%?8ibFZk4;KMRk;fC$-?WydV#V!QmXrgk; zcj^3-5v4hEk_9+}=pKiCL?ml(-Dizt#qQw~r7r|%2}rI)V@HL=L@{wc z^&8`A+mKD*;v!X(SwVTwl1U?0Fl61rYH&!L4D!QKGi#Zoe8%)NT+VG9rVaTW9G$(2 zOErP8YoOx0qUcEb-8hM!7zG9>5nihL+5}CfX5eW}NUjuJttBBaL4h5oTyL(W7|MxX z(wC1wiS|{3F0vM~NmFVdg)nK3+y*ZvoQ{?iL-w?rLss}X!Z2RhA0-?;v*;iuqc-%z=6SE?MFmN}Y#>iprBDXiiMLz^8eIUZ zrdU?FReu+o2bpZ|bS~22EAkg$DU+8Y%${q6oT5q$gZKV9E}z% z_A6vk=A7-fs4xaiZZ#>ykTAX6VxVRqh&M*W@s*d{N~qqGC9xDT4)Ls1xnE=~IfX^D zd|gsXw5oE@v$)c@SKvCg@W+dqH--BB0L?;K!^ey{ad{lXvK0I&LfUeP*veSqg^Rnugbwd)yNZX~wsDe)_m|@)$4#AaL;i)i>a`2e~hwwF) z>KjVGeG_uk#2$+_{u0ZtxewDP(Qhz#XyW%3DUK@+Daj*9ZuOLrfQJTwK$M0gds^I* zvwj4Xb8v=>b1i1j_JY(!(=L zEeW}`HWj=_4u~>>Y!$1~{wF(cw%h3*^@5soFNRqTxR%)xdZ7kp7R%q-q!W!=i_P9; zgW0?_Ez%=WuPoh-+Ywc9E%gqanUvi~2Wj0!g56zyAJzn(^x1j=4Ym0vK2XY6GMN?N zWY3h+zlgVo&h$22rIN!}IO)mbXRHh`TOi9;nXg~Sl!Py>&O8apd}c&s$g`emEr^0Z zu0Tud*v85f+nOj~$q{)p zDxL4b1IJEqlhvavj9Ux~M*P1sBJYPyXjZDR%o>or`9`cO&u00nRa(-%$7AWA;-t%E zT#=m#8&L8BHY6S_AA%Th?$c~HixJibqy!tY#4H=@X3!c3lATQJqJ~Y^%UHj{WQd6N z1Q*A2O<;=N2&m|eD;&8UV=U@f@`QVz~J-kG{h}y0zQ=8oi5o5-#No;$hY0x zGaV1g9mNP9aZp9hkC2ROd3SBOb%E-cpAAn#SxD}FNRA4WRSZ{+0aZWr`?7tn1 zYlt~Cg}H>Hu-+4l<;&!P8Y1|GAYT4zyk^bc{!P3f1B!l$(~xz0Gh$PILoVJ2;f^ng zwtf8DckL+8zDqJh#Tp`gMDTEH6?g%c^d@1kO3oFPANoO|OKdzD=uE6>r=@-zEW+)q9ys)GN_dlKD|)*y zb81hu&u-_kAFSCyH)OP##dPlNOL6_v&tZ@k-o7so)qdO)^W5Dj3Gd(_=Ml=-t1`pYeJl9=`Tr@)R+5x07G1%rCIU^GkMAru*UP zs7f^fB^qWH-=Wd3PK_mGJ6+o?h`HqyqKY z9RNkJs(#|1K|p_@UB$dsqOMoJQJNoY-*Or~rG0;0riwp1VDaL&@};hAO62syMcYBH zCQE#M=|!uj+sy^r8$;M!m>bPrJ>G#b4|q5fs}&8gXUs6lemqN!J})6h|{UvcY&hEg}unku{RyYok7Zt^3)k6Q2+pjLIp!ie(0DkI-> z^+yVcTh~#^jOsxURC=1E4?Y+_fG}CVD3+$coPDQVdg%fyxqK4SC^_{Agm`Z1S%C264H`~ z(Ja%uEp&tL`o)r_Nb+H*lNzn5m6Ld8qJxu~_4&^#poPh5G-jMhey?}*f+Rb+8MHObH&yK5GAfML<-`hsu)0#t_X?aNVU@d`~7WlNK7%)7u zj>IuccF|;Knb1;7nK5HY6ly{=jLr>>GX1{R6dOU%LfL6mM~j?xIFgggO_#t$tXt=M zTNr%W%7fGPAN0EYu36Nt0$kDSq4KR5NSMnN`J1*-to0U52IK78bpIhz%SAue+-3GW zJQm+(L|xvC7v!Nowt}B!x&CG@223qPfpltKoJV6ZzwF|tjJ0M~>qp8^Sj2+lRT8FFhVc&)_UhzGm76m6=e_A0kDLf*=7$8c20|A@ z%jwTp%VdWAV0F#F&*43pcPm zrYzD|N`=ex)4}NQHPz=hgGsCpolgCL^jjOcV$}X7FXD~8@i9KsPHX-uRCx)*Am%vfq)*0(xHwQ$L>g`(rX$O)X>yfD{Ys@}iz%=-!fqHelZWMiuS0V6 zX`=!(lV>T9+3F*~%lS2CWb*50mbD-FlWUAD+l}BJbcUiV3+MxfXsVUb&lrzH^!}%w zo1@<|k^tH_Q~Hxs`Q6zzu&@0kGUsf1XKM{v&hjX4aXR7t=9RFApGhqCEO%F5?gA=a z?(Pifna637Hahh`b>=&SRJA=cyl@9Hws?Y7q@xR^WnD}apOi^6xtuN$;jzxjGpEy( z+kS5IrC`l(bt8eF0u)Vde7dhNe4Om_omhMKsOX5MsxN{$KG8{l4fM)drGPOMsOvV4 zRW_@TD}qHwMW2c?#x{J!MK7Q2*1=V+WQLl+WCXuue1fl%UOo^f3Bnl3De*R@ZD&dh1jg*R6e7ODvj3eX=LuP|5D$Xn$qpk`~mvR+^k+H%J)Ev$zg3 zwG1l3=XPiAu9)*BB<>?iMH)3x#;4KQ5{6MsgRZm8vbn)$v}Mohnj-ef?E?!0@*YL zMflw$jze1SU^kwhZ9BhxDzBt{H?Q*Lk#oB&+T*kscLHf#-#05jD5Zoa?D*Tw&mf-8 z0Yq%@m@l%*-i7tUW|j84ad0GIUm3p6Y@3X8RCoF0vsEdu_A2pCLP+78^ zR-)5NGqO=uJy!g<#5U}Su!ZtVte&tX(8^zjX;i6dGM%GV8@uGW9uq=O98ZyV|2phe zn`lM-kc5^WEHtuRB>4c(5N-NrSBdg9ldj@dqGai~hujGb30F&K7ugBM^K^yhFMU11 zEtCKg+~+7bURW9K7vgNbN*-wx^Rgktu~rchsLxj`MEp;`L$t`p3tOGH>_E?tcWm#- zsi4mzHSv0D?Q(~Ze18?fD{Uu+rmyjk%P0d}tATnUO z^=)DX6LT;OT}r3I>554~-jd^wp@ND8 zAu&j3lvOToh%gquC}5v2cv=H%IERKclR3maP>&g>&-Wr70hJZB=6P}p?u~Bxkuls9 zK#sYmkMFsalBm4S%%ueEaGYzExL;e~wbW9`4==aMG$k~JuI9b4o3Zkw?sg$s_=IX2 z1*LGd#cc`}Sp6JCxfFB=ldh<-@p&&aa-s4780lG~)xen84&1Rwewxp+YnJl0nO0^Q z+Fh|o3KuJMn?C$HGzM+xH=(XR<|0ZNx)q$+W;B2w7cheFY@S)dwi%1#;5C-DWFml zsgQOXeGVVcuNH!6b1%Jl0m3NdHiY9OB(; z%cG2Yc$`lE#aj5m|I_+5{g;UVwj;D76l6-`SlfKsFBADZi5c7XY6p@%cIFMwg;y&A z;x2jPhhe{76drOk(9?kyp$`1?7857^LmK@zv#lPIGw)4sRqX`sTLe6}VtvRq8R;A( zKKq_Yv0SPhx$QUdM*`bpC&EW0l!Ic4;pM%F$v1TT4pOZrombco^QwA%++cNo=9zEl zU^*?Cm8zAP-Fsv*(b!q##McjPkk&Tk+15DiU`N0=u9?jwj=?TG)AxLiP*`jB^*9pf zOFz@_+c6)TJ9Bp$2X<_XfdRP~sM)^=;;}tpyD1s*;ImD2pFHyOCNoXo+0|NyY}-Bq@oS*a$rMhG3+}S7W43athIY} z>&@ITz2+!;m1%`NBWfCe3UrJ6>0-TR_S_C79&KR-vhX3bM*t6wMi?p^k2aGMg;!+L zFUx2--DLx6quGv?b!S@on8ss|L+#SJ5w&;m8=@B9XiPHgL@YYlC2Pia$cwjZzZpAg zBR(mGqN)bQBlQFS+;sQ8N$=4>+u@rRZ7Caq;dMsBmcmyi?+qu(FYr!h6v(%~#g}97 zxk-!Hy!ho?lzl}dS>8Tzthy+0rZi&v^R`JBLhX&L?ou2o-%x?m&Zhw^(+UtJF%&43 z9a(!K{U-D)dVcstSyuGW`>&YIP^4LsLS`R5p`aysi2w zcN^aEuu1CyGg9`vN5eYd5PJP|=670q`%yD@7bTf4E|0^kdL97{+=oP&CQgr2>F>{a zDk~?2y-YhPlQcJS+!bZm(Omv=oPJu3bb^~4{*HY4)+gk%*5t~u1}$IhH^MknR4rbisd-AomYviL7Sxk*Jcla2dRD0MA>I3!-jJz^!p~M9?A_}Eg zEO7j}B3;aEDJKIm5(=dVEO`8xOkHMof%bU(V5_mj^*$0P$5cgJpajxvcJ~V>E!=hb z`1*@x-vY3xEok~r0a#v^wq%P@Py-+24WBi%feias}HrNS?wtOLZFhsy_kVn8n;@JAUrB0IJ;d%)lFwjy`Lx62xt6P?oF=cQl!BF()JPeV zR-6QxQF^_=Gf57nZNzODYbma*QqQMf*;I^JV1A>V>xKu$pBiBjHR_2UCJ+crj{rp0 z{D3H+zE#dnCHth!$#SnH{z-Gui`#WgTJEP$Vr_B^NuH?|2D5?F$vOns(;_VcNbb|^Nr~gj@1uU{DZVwW5o3Ii?Os+7y`8p zR#Zv)n@3_ecA zdOt+Euy{^`5QRTE-&48itoc~_=znHT_LiFs)XLvsOlWg$Qra$=&a0VmXq`Q2){-hZ zGFQYo;Mzaq`%&F|?F=}MIm^EG0AJq>l}YMMX>t&0YbQycomOfmb&$6ke>()z=TIe*kI=s*Tk7 ze!U))m=H7r?J@7S3B2B#y-irK`!D^`8F4@yuEP@)S|#ss-E6~xaNki!Ja*G*_*^nIa9!+fF<1;mZJKGhB|0N0igOgzt2T2-?w2IKHVSM7tDy#;ZqEC5Fm>Y0gZyk18pL7M zgFyXcwbdCc25S8Wsz9UJe8fR)he8()b;p2Xe>I?8Za6rnp9?yA_ab)Z87KLgS8(D< zm{)M-DK~%Osm9~|8=jzno>X?QzZLdx-xR1J&KdEQSoVgGu*Sgr)ANvc|F64)-;6GH z(~q!vyQdUdF(okknBT&$~ilR6@i8%ED zi7raFtcz=Rb}39(s`UtzIBcCpRjfgc(c_}{6pX<&veUXr7)c@=U)XzT$KhLWd6I_A z5CZ;9r^BdDt0o=%P^W|Js2~+6Wb9YVy3K>OtaSBPACLW>b9u)de=}hUxuWSeI(ucb_TIc z{1WYAxZ>=-dIZ%hpE70w%iswFDTsB(#ebQ}uj;U$&wI&T^tve0n*v;$m z=ct_*bG;4|N#EIxuHouId*9`-uh8QXs9d+CC)AfcfQENIXn3P5fQGjMXn0euSiehq zIB{th+oFY{TP8cESW}>@DBH7#IC~^pt!H)|JwUroU)+1oUfjQ^+t-=MKu_;aZ|VzP zwRZ<~CvFfN=WP)5F|~2kb2oagNI{4%0@Plc6;}_<-~>3 zBW)WOT)*^BNE5dThl2-d40ouUc7BtC?DlSep_X#pefso830nQTaeFt0&kH1^p~KnCs>-UlaLtoU()jBU5nfb^H;z^XTp7%G36jpI7J06*#!y*tHQu&g{X{+)F-Z zS_MjL3&H0yjF74zK?6z^61m7hva`@9>j~m%h>7nn$kzjeR%{>JR+=YH zyO`$*$(Wern<4pjlomKO~v7`D)4PEQ3GKS#Z z5=h2Hp8=(2)F#_}NX9U;C~X+U2d>GbILG7mgc=8aWM}Q;pwx^Q?vNDi4|jB|kR0r+ zMnFGKBZ>Ftl3U>_vxL(YkC_2S4weN9eF!3D!URcUaMTmQM2mEiKuJtuJL#+x8zOI3 zi)@i7YoqmeCTzbdDHfs7f}?i0&xUm7vc(u+CG1U!m$2O5eNyD6!6xPXqA-<(Vy;UM zkwa>u<1U7fmmgNk-d9SY^f!33Qv**P73KvoQMB7L+JLmxC1yHx9W??#_{ajOlW*A7 zbS;X)r1jWsJbFP;8xC<=1!l=31LI6g^{UwNJfz&9Ham z0op8C=ht*q+S)H&a4jhX(b|chBwH$1UK<)EjjEbcmZTXBS?J4$8-IW)Yt&Rt&t}U{ zA~fkEG8k#pDVP$N5;j&x^p2d%Uf#yY)ugOi&Wto1fIzl!Iz;9+$IV7nRvf0c^h>qo z*=1zzBlX>!(2Yh0Ip#P&+52k;!Xo@8FahoY%wNxobsg7pneZ%nEq>Iue^DWLEb>~c zpWe@6x6ji`T_JjEGqbmO<#y3gt>PE3zM^Cn^*V~!&xN$*+wocsA=#EHdqHvdVwVuT zG=RzmCs7e`qIsm~nb)NFCJ&Lz^LXWQ&qsQL560m68+T{6i}qwX@X?0T?c)b)H$Qg^ zQxy6nuI)TD8ZC4<-83v_n;)vbe~oJ^421zarzc)*%~l5! z>umb9ork)gUdcJlh@nAacojc)mbk6xwNukl0XKMKe5!@~)<|8_^20pL_$58c3ON7K zHq_(mhCsBeL$&p5{lu@v+|M}hc12XRg}bj-=YN15cN>27YTw677W-nCh~?bxb2sAN z^TIy@Jp1}!o>7c`>eA+uqj{mSdVM2j%1I_mX7zPt$Ks!b9QLX{iM4S;xA3#a|Ls1X z)I3TPxmiD7C}6|=>V_{iz1_Ml_*mM@z=a~Qt|IWfURCRx){r3IK^)7U;3(&lGc+c% zl{!1dza&zLd7GTfoeZp+i#58*%Y5{jOCETR-``H&wiP0n!>xRu{jEG$9q6?dv|Umi2t9hy z2(NT4t}|y#R`0Cpj`~h!VeZbZZ;o3pXBmQKa8%efr-4?W860X4?A;X(&gsa1L|9^bT{Okw91NyS$YbsskQabUKiOp9@?;x@LQPa?JJkXEsT4&KeHZKa-s)s9& ztHsw-3kTupLDt_+-}u$e4io(8-0EAr3r%Z;8R%_pRZ_rC*g9IgoHS}i`5fCgSs)-P zX>L~z4~+ZnAa{PeRhM}`c&#|t`O{-6@?(AHWKpXsD*>up=$|1@u@?x{ywyyk`EY;z z?!NP08{JP=W~i>HF`F4EC)dbT!$5CA#>JCZn-9M`1trudl`rDo>b%&Tm=j2)wdYi1 zny#&8smO+4UgixBut?UvQx+{qDuNE5Qdebk#T0Hm9*zkPV~lug{bi8=PUJA!mVD(B zxqRS`SR`vs+37o6va0&2FP|HsX7&+`!QVQ|Uy1!fNNHTle4}GCDtdM~;&c5Xifz;O zL~LZWd!AT-QBrHQ+d?g@`4=RN)FAEa$|i`fxx7cR1cUa)>#Q=un^4weWC}cB<}jKH zUf||B8A+xGOWpb&6QrzFXStwdQRxGvDubj;ey8}8YRmJbijmgvQoDV!#+p#MhTOOZ znC$wbCMTUYB1D{weC#3RT%BqAj2qZTXjmy@Y!n{k{6OK^fXYbm^G+apW}2cbny03# zJdrFa+{A17wN#Od)wHL2C=-(gNA=NSiKnvXDg$VfCZDfII|WQ4eT!BR^O3?ehL=0d zVw^x|x}2!Ep;w#jqm(*N(!*>L8gwh5r;oB&Nlj~M&S-(hJyaJ1lzp^R>tNJJw^sKz zS=SR*e)DGfLftU(nrn;q7H2EE(zgD?6ZABsm&2NWjek>#3w(pHt90XuE~N#**_4q= zHKS>Ax90T7R#6!irqtZ zHJ!46k5)17GZLDGq^3S@X|H~ZypI91@W%6(4UoK9Le;eEH->3;(|GX<6 z008+Gxwv^aNx9fqnYmcm0RU3KU#tKSO8^L>)Bu<{I02mO|G?emT`m{;$}6fq#Q0aQ*Y9cn($$W^RzV7X%mq@eu$#tULga z6`Ye9zzO&0N`LJ zW#{H(2GIjRm71NEo0*N1jf)Lrln0F%0Q)~g^ZEzF!-&U>m6OYi-2}j9Y-G;GWe(c; zZ;OjDw+R4XYRm&LH|H|u~#c4&r$HO?9wyv4M~@+-(0gObOuMmQorv-2>60Er-M92+PW*g$YM05>T+=U*a~n;SGvKoBRMzc3sB2n_Jw zC4Kx&n{xjvwJA3%h{FOB?;xbpf3Y-qK#3Ma>|y`6Ngtel)27`23T^rq-3$bY1mWxYS`TN|wJ6s>Z1aETqUTLfTvfi@Zg?~OG zdi@e(0zO6+dY?CLZW8{yV!VG;KT{oa_&4YMHV`b44@kYfq0oDHzIj%$uKV$OInDo$ zqVDQ$wJ0`gR@zYBZb`&Ynkk{R$E&9ndr4jY<1OlErpiUwPwmNhdOweMpH>%C&pQ{_ z9$~xpsnHIb0RB~sk*@@I`_*URkmhfu(5W`_l%25mH z>V)c-W*-#~k(hp;dJ}ytZA3wCtc+!1;QlcYrhLDWn5QfkRG#UPs1H_7?6pDax$w&5 zZ2kb^kj9{HAOB#Z?W_j@q#TkCR4#mz`MZUW?Zd1@v~T=|6oE=}`Nr>v>#z!V2Bc(s zXg`d=`gc;sT}q+qf&2`}QpyiWJrqd>ZaP%k-$#EO>S%Dy8D+2jfc{-f9B2XOSm4=B3RShMMPr9eXMDec zfPo6H^$M^24dLY11hcs&5f}EMM{+rx)rz|QO#uVWrrMKjdx}G+srR5s^fZi(mTJ<( z&$b`zK~ZQp|RtTsv2FFX=k6N6TuDN>y=IoN>J# zMU~oh&I)(Szha;OA#@hgj8mA2bvjuOm80difuCj8v=&kfHp)>u{D-$QBjN*-yob@K z8ROPXL+zMh`H$P#%uM8Sr~9?Blc)1Txt|4_Z3IGP*O1@rHw|^@Ss( zhK&HZp54k*r~7LC*;N4MN!0_r27mOb5Ke!SGt<=4cvByV74>Pv+26@9N{%#m^NnTC z{aM?Ttn#1uOou;xR`-O_;W@LKvnr`l)r{2p?7`Cee&O(O`5N#VabLCbe)$;i^Z^1( zx$x+J{1y~=zrN~8XM0&d4%jrerttqmWBaAi{jIO`O~EFU+E2U4gODQz;q4kkbUBFf zf4nLCGlTTLpU>e}PZW#EMOj!SQmAI|$sfBCZMQtRY)CtwTk-o?WItMG3B_`-7n zB4z+|@=S=Tkw}j!DY6wx+gYd-AxS>i)u;!jAw5{H-~-$Wr{k-sV!$oQpQD{Wi}+Jl zA8#ywj;;j%oREB6^>)2IJY9O&s2W&mdW1dK2z>Zhf0`NJ(!Ku40`Xd;%M{#$tqzd2 zrD9)OC4>`IiG<}e8akA}NoYaqrQVS{Hug7z*S2c!X5EWyL1;Y&nsm8R&l)f^oH6%O zUyi?Y&WR^5__-u5O>t3jbrbGO%35?9i`AZtMrAsvH8b|e?@&fFa#7MZ5H1b49(2`D zt=^s4GFV8g*8P|qIA&I9ScV-r_R}0wCO8p6v)8`W)!cQ`bUm|xSfnCFRg;H zYsoC|qqqfko0=pp%`P1Vy@POWYK~*Te0(jW1q8v_Z@*8SYZ2gwkDbt_nE&irjLR3C zaxy}S@!h{uJ)DgwbXq?FdND0Q`0PNx6^`1Ksiq{39zL`N_{2!c9xC@^Q)qo+w75i9 zP#7Mr=>89+5mju4_Rdh&oWPlq5IAhnRs?kPz?!i`wgeh?dgoPv4-Zjc&I?R}qO#w| zd3xOnW9OG5ua(2ILG7jz+}6r#jw2jfzalGnuQQ9YR@@;ptz%=K8(e~RiCbL;WG7xX zUdS@zAe(jXo}VeetRv;NaXa5kH4a%s{6EJ~B_-G01kq~y)R^x~Q6xKw1RMIYve|}J zD&tVzu++bHAO+#pEbv&$N#jNVs^j%aW)S2lwbz)-I7^fAcMTK63wO*K`GST1EMRhh zThMXhe5ljWK&0seH*loXM=Yi+BzSxQ0zQsJwkb20=HUV4*KgXVHVehjLt=_xcThFr)uGj0~ zX}>15(YFPIsk@cI0MBgN$F?Z;jZK%xhH|04OorC8tP}YMXS$JxUr8t1+CGhZ$iHdD zMX2EP_`Giyo5x zdW9yzxyf2$AZ|h>xdeJ6+L@l3-kPiM!H}@95MGWSF)hov~f?U}S{0@cc%WOFfI->|vF_ zIsTE-T2V3av)y6^=FGcYoaL6E?^6)F$%7ig7}FKvf>ZZK0fSO|V;Q`|XdG=-Cf#U) z8R)lr+%AU~PVpf)1st?NLWOL3L3>!SkVA9j2+~zbgef*hBIRHbS&B-rxAZ+xq2l-LvWwwPzn`*};3FHuL;mBM43F=^k$ruGd+DjktR zRwIXRdv=e@@2l&Eu7{jwY)1XLf_h$w7W2ZVUz>Xd$#F^@kTE#k?r?}c^`2g_MZa7S zuvu*N9{Dx9`Xo-IQ9=DX9*G(CL4p&VQJ+?Pn@n96b|{)k7Pi6o525ieXaRPt!F@*6 z^O|7A1|YG>@SGGZ)~lls-%141r#99;)V=$PK*f3mtrog1(P0Gb+->qKYf=+oxy-#_@9FwYSA5c|xjbByvm`b&aG=Itj0qd5A7V&MPH3mu0?6P6c z5+!oiDF(~rO0hA)r+RG^!HtSP8tawt{Ku#Y(1e;KEcz@l@{9@IBMP(5NTFA=*fZ~l zD+Y6ws;@|CW_D20NxC;p(aE1hy~}dvwP8{ScXsy(~P0YOyKL zY|tssoNwu>0Uft}PbSM~VAbAvXb8)~>kiGr)6pgWMjN~NX*%W68;%3u3fkNeH~`wT zlYHbNu_f&}PDAmKozS4pkXbxP9>={@b5rTKmgc0!`cB!f92*d`Omo$8gF-HMq@SkO zR$)0t%f$-TVP+|UxyR5xH;+d?8Ov&kk%I_4=6J@a4b!MN2|-!9c1nk+eUTO6ITCkR zRG;^n$zIWBk%+GQSm;&6B1JD~L(jb{0%YUZo9F``CS_7G3;8Fy3j7n;0p3xd1p{!r zHea-6f#Y3D!4%30QjQ~uRr{%G7!u!=E8XmMGBW4oc`mrk5IRFMaX7Dx%q7xO?O13T z5qQ0p^vbcF5de<|$h7OkgHy3i&|aaLcq;w`PUaFk3`F-PMmAy?Lzz%bVvlp}5}Pl5 z+)akb`}<3WX_RYI8o0LcEZ>;w3BD~yekt;6koZQ_I8!hjZC_;91TKPM2@y5I9!?ln zDUb9+KU=tYfo;`tR*rt|GW)I|0+t6t!}unWc=Q*xpNb^6H`^lAoqH+Z7)P{oE+h;8 zTalU_FyPINH=!bc_IOI+#b)kVqvI-lCP6IM2>B5N7umVmE-mTD*hx^039)D_@5x&u zXY!-!IMBE9lOA9uRNTTgY9vcQj-RK4Ug9G&Y8)mZPG*IN&dGLQ(h^C>>tZ!3-pA^4 z8_%o}-Z~~PH045n3K$sc!Tbpqnn*Q4P(ldZipQNxK zqt@G2+Mcw2D2WSkS4RBv?se$^hr2S|HBktz7fO#ZcEEKltYb4FZzpsH{ReNXl%7C* zQHX$ZXbOQAWy)K?Lj|c=a1xu5n=6vR-V(ZWki0GcRRZ*2Co1*;r38{~L%a$^HCaHY z6e;Jg6jr$PZ(;5F{oj<^u%%Z6xrx83ei=OTTEJHd zOTPEQXwAp53;yfq2ubURCTP#Sc-2dBh>-ZthEx4k|Kn@u<~ zOb*UUEldtxCy}H1opYa;(YtqFX2Th{1@t4t45A(~H^80u=hU%(pB5>KcAelXlOvhW>80R*7?=c+cA<;orM`E$<@U_8dRy^X=@V~w|;kK9` z|8?zyzpkybmNlgP;$J!>N>MkEk(1c86-Fm=Q=%*jw?NS}jt0 z`Oy}m!{W`=tF`%J8v|VegihFB;rS!IxAHuWrX8*0VwZ-J<5Wu$sWaFe{XLP&bkA+d zM*zvy+A+z)y7F>PlT~GZw%Kc6SUMIV0H>4hEfZRHy#)!@Ssk`gJqmxJJAXL&Ho4wG z&Su_~TEDwbi1^FL$3B{V%-EhfmV<%t(Au~1x2@ujALR9iqfV?RO(c8ISHrEKkDs_$ z$LiVUWGfx{;>+Ijcj3p9#dkn*IgL+336l>KA#?aX4yDr7FTum@u?R60cXYS*bx5e0 zdl9)+y^gXRSPl7|lwPN5%*b2k(iX?b0N zmBPKoHX^|s^t3v@9CS5L!Ud+8^RdzeY*Nr}*tRuWP|3PBjaUAtv|8$%Ma}L<4$=<~ z14+=LDlKXNBYdD-8p=$8m`3tJ9DrJB%@pqtf%lD2F-g@GoT@&X(&Qa8cA&RnT>_l! z%ifC&j}|hY8ey`dbEB$PIOS;$V_61uEFkp+I}+Hq5Fmeo2foO=Ei6S3MT7v6wfJoVg$ zVW0DAEc=|~c_oCiDNzE$7%wbOaE9;i1s}hy02Z3-o+_Ik(PQU>6JGX)&#z-+I zF)e1Hif2w0u}LG53BI;hT6XL;X3fVNT<@9!U2Yf`wUP)1#anU%i$*9_@WrRE%LgSx(0hm9iNHTVA zn7c1}2wrHazjdXn3YM)f{eP&t%cwZIb#d^)-QC@thHe^{puydPLvVM8K=9!1PO#vv z3GNo$-CYCu_j_m7-1n@R4`;1&?pMN+Tf=7hEF-NZ}-|L7qB9dsB@g!Z2seVVlyB%wr9}v>DkuP%68> zR{&rTom+*`I!po+6Z4a;GAcnjM!X zaFJIi-W3{78#j4B=fE=jaqJmVBj78P-j-A4{hGJ6;N%H}%_pu%Pz{BSXeCQ9>|Hzx z^OB(+z*U!j{OTK%SX*7B%g--%(Iy)xEFu_1Mj}E8M=~NxV zn&UCXuY#e3EC8&YVkfr6C&6esVY4<;oSPW6DYuu~nMiV}Q~e@w-8=C+(z|PbK^@V_ zbvwaxCQdx_Dudhj+vo}nQps&eLY^C}Gr9U_`=V+lHJ>=7^R*H=gmCrfG2a|6$Sr!K z6uWi}Nb^6~a|!x*pvFq#8uS1^jdGUID=iA%V@hHDfKBKJhDyXxn%LUM)+=F3^`+?9 zQP#tL@+Or5W!4PmOZ|fBW3<*4H6WZta_gj4R(sTk`ZX6CHbN1h7;#8ZV}MCz`$FxIJp}}2v1wyJK!{Gy=WX*@AEDzqOuFxl9d9x zwZC>O#u=c*HK)w7tgMr&yswaJkA0s3?Kgl zRZ%Nbf6Iio*n`i^u%N>#7)Z}qzCFHSnDTld&wy{wC&oJYD!ekL@Y$k3r|vBe>L#bK zxSmTqq|7uT1t3LcSE-1hYmzD1u*9`twWh#5g^~uF-;JmvF=-+mK|T~p;HM!2=HpdE zxb-Um?$e%>7#%7q;7p%X^kulb$yLX%#~s$G$%+BjBZIr}@&(twG_dDf|D^E!^O>T9 zj4mfCU~P4Mr3=tLXhEG-$Ol~*gbfjNIFjl5Rjj|XRp0c5XS zQElTbwqR=Y&aSE446EG-rcqcqDQv;7q6(f5C0O(b;vERM)-$~Pw~b%YHQSgA`@kHE z0ZQYQ@p4prLs=pHypksTh_gxTnY@a(@v9tZhT_E;vWUjqbOn-I|vDq>C)b{ zz2;wWl6K#Pjxrnnh(D&E&)Vc+krAOv5IKI3z z3QZ>&0UxQ(iH#{_&d!)8<*1yLjTAIQVk$n)X#vNKi;L3+(jNh?2LoR z^GMHkNG#qr6_LhRP|p=F*^Jv4gFZI*jx3uArR~QQvujRCz@e#z!WvNk9TY1?nK;cw ztn43e&rQ>}+ua`ky4>oNht4Q>Sdv(ck2IeC>kmFLMgbH~dLp(jWIueO$fr7UG`fDc z3;El2RBhe(FF$R9LJlYv;q^7enxQ_l+rp%HufVh3HKA#b6x#Ku+OGr_uR?y|-+-ol z?MG5u^a3=xn!>F7BiD8To#MIy$4Z{u*JwHYh{vviBHil9q!%ll8R)eRgsPYN)x_H{ zxYab@Bz5YD!)arN0fMR@eAk@ZC57T7VKhQ-w6A8RRxMn^a>b5ZDKZQ-j|$4irtZ?% ziqo??wYKUnGiR_A@6oW@$KBE})=8_wN@ZfUsh1gjx3p8>m=5@@FI7%CVIpQ{ zKOSj6)-zy=GQ@^os-uF{}m%-hpSBNu9adt4#3VP6^Y zCpsw7yxQdRXpAfkm#rRWgp%tQPZtavQhxqjK**?zqPuE7Et(S8T# z5OQi-RKEyW>St0M?OR2v<;?+kgsGME>dk?VR(Sl%vm&?kC8hgu-3gC=d6%v@YLu>w zEN73wcGbBZgZF9OLb6?%G5rOWA@I^&+2>xJ&E3iG+rAtP(Wzyt@A8dX8LQ$5M4&8D zT~4?YcFvGN%PONLc`C)2IMN@L1zGq6joAqCNv(u8ct(!G@5J1U3PU0OPt!7ht= zJ$S+jZwf_VIF5XfS&PB;G!}+k^76kNflXX@nUa3>VD??GAxHZy7?f3|43zsCnMG+s zwg?l1m8_g0wh05B6iI4igEWK^bPrUe=9ATYHe`~}o@#4wMoHf=^46Aw@1EA3(ZR#@ zq|dkA$oC3eLJvHMHUAb2Ekr-}fGbE*rHzM6@?Oz;iY*fQ$?oR^cjSIAp1UufUzSI{ z4-MSRam7VJnzAE%xNQ^e&}^YXO$>qx@s|>VR#E4=p|MljNJ~WE1_txj4~woFWu6oH z9fyFBWlkWiahE8*=?&Vq?WfrB8GyVcK%lUIh*K)`GRnf}D$L@`)wFTl_jrrdLY95# z+R-f*N5`>mo0J(3-=~E^B5<=N=xCOcq!be_Eiy@nE+vehV;6;<{rxNz?D3ew9~te^ zOYVm6_>F!;Y5eqrXV&1vRu|b}FUucrdLKkb7StFrJXLaaKR*s!6aoog$8FfgHoDd; zE)z|^6J|dVZZ;tnR%Jk)$8fHI(Lpk0XIz>6v}5-LG4#$iI9!Q1(w z9XvzbC%B(?8o?Q-$T!JMBS|VjL}W~Ukw;-+>du>HpwUeQds|#WL(Q6_nk$G4Lv%Nc z9oqRxBWpRxplo;pgppl!%3v&C!8dyoo&RlkgBOCu%?nxPMrK47E4+kiI6X9N?H%3D ztA00)QhV&@6VtBXj)_#&NKT-|?5>zA4oq7xgIpwPvPtazBn))_%#+PfCZq6H;kC-7 zN!?_}RGR6&U<6qaGXLq+2}g;KCJ;xR3q9u6T)=f8^+g@*DM6PSPNz?CsA6htQ{zl8rW`2J~*O>{c!+rJC>H{c6 zVljJ<)7uyvYM_H|?2#gIn7oJSZVqnrY9+grX4}w4H`e;E_snV9vxe7Z?_oNdf?*A{ z741~($_k_%>h4!S-w*L{&6FK)!a2Q5=iW02-f6?F-zS+keqwvor;>eb{68 zbc6CLYvJDGw=h>Hl(T|^R4nNg(u5^t^8oE<)vCKT%VwnGK%&hCQp%owXJwCZUxT>z zP=nZtot^R$^2#D!^P&}M09jZ^hL`#+Wpd>W&)C~`3NE=;V3O)~#07EomT?vKfnS%N+cLLL*dV&C2!8D|b z2qk?TI1_1JTv;oZ9*l7NL@JuBim>8vP{o+Sae_h7-l51vU~wJFd-5CTyDy8{jM!4s z;(OHV__{|)Vsswpume4<*lB1+8b(H0{y|jE8SwNhkEDx027e>yY_hN_ zSYjml`A2$f!_s1-!l0gDUXKbC%?+mSZQBC}Zg;L#K>XC2N4mabV(rCqYXrF0%?r!5YxT%Km8y@-?@JOW^31;A=>+|< zSGPGUT<&o=?da5M3e8>N&1RSO&Q2Bl?(^zMHlLev@4hDQdq04|7#F?d{f3QSMW#0S zYPiTo;XHxq%bl+@gXJZDaAhW*i@xnKO_PcEB7|}5YdBI0tPFNu)zz$MWYwzDEOc<( zLIwi&zS134Ev2xX1Q>LecHfMzc^sFVGDYDQGagi7l8dFLHoNIs8XB$-ES~MzMMGXJ znD4c9cEo(wqY{MX_0vo~aX(RimZoW5avhX%zgU-5Pc&CZm zbGoAJVLv9W&v9{>k&2)nt9ajJv4D{b-7%>qs{9ML2bcMLi7QKp^i(6NA^5`l5-}0= zw(8T~^L5kby_3-u!gk1ioUTG9hx*0r8M+2po5QzjV6ZRu1GVRGB;*i{DT(jH52?*! zKBA}>8ke;mj7vcDGAN*78H;djnL6ZMTz_4yADZ|%*P*8TEz6LFEvWp=2y=d8IjU$C zkPf*Mp(eLG)6?#uG1P`-Xg-&4?54H1h(OwgV=8^|sskThF~^VSlN)UoY1^)}fN{ z(_(%5W~#hJ!HPmyIhkh}FN5?9BYQA5%eAJ#;G1E46|7K5{T%RP4Z+~kO9$vy4Ot2ZtL_5MHBO5#JNz%2ezdZ7 zcbTDWlP)DN==x4XjiXOg^)mNl9UvIuFXgCLRI6{~Y*crkZ5po5YV}PnM5po|)lX~& zZ(ngA%39`}qSl_ve`|iVZE1mPp2?@sHt1H{y*Y~X;ZS-0sfTwVL#Ao+ngI7Q*=_B= zxHg#hWTqENUr$$P=y3lg@og`+-rL%z?pi4^*4LTei03u+Th4Nh`q}u;kJNYyt*Lnq zXB`P@!PUDBjZQSBp=-lT`C87)%NgNflOA-bRZFn>!(wNx)!k;xV@S+MkaR*$+k7dPpE{cS>P z>EA45Q7>0iRFPTySmZLmzgIRG1vZ{*AXk1F%p20belcIbY=Lgx+i0wSL=+{{$zFp%iwvSDt;3uc4u`V(arJKJipRz9pK< z{(Dr$zHPgoBV$kErAES&bbCUNA_m~Br;VWZM0ffaKZyp6(e)$km~w`qaa?;TR%yvo z62R=yDpr4z|2l^%^z=y~z^AD2(4kS@nWjKktAB>CGKCO9S@2AfKWQ&Mmq9{Yao8FEFsT1(#cFJS!>>;qd0`CL6?YLGcA>*i>=)wp;bgZn6W36U`=8@|wVgk>yN-o(fH)dpVX`x| z%&wWJ|)arm1{Tsr>*@%+7Rt**XXGuJ_x8I*$w&zTvJ^RZC3Ad(? zE={AShFlN1q%P$6ZwYB!!E_=6h#~dL-~qyrMI0@~MXAhM)yRpYF}YNn&{sJ6IL>lx z^4V3jEAMS8j8I?&8=i^8)RHCQBCb5jUSp^=ck- zD3=Xvv57neSJ*RF8+}<sLv!M z3+eol0RhJAX6lDO4AaC&1Zz|IM=Utz>z;i>UmJB`1kh$t@Ymp=Si4bBTfShjUed7# z9lFS?_JTjl6cPZoq#YQTXF%O)=p0|8$<^m4NNaKwctF41jy?(nY}#(icmuf>e|{9d z*9xeEaOwNR(|+<<%(}2TPr~Pt0)<_)*hD8%1N*0_i(oZ%zTQRt%YodSja$dTd3@*% zgrz~WeKssRXrC}S%Sm^Gmqar8lDg5X9{e`@$Ctck?0vGfkuck}W9iN@-&j5N_Nn>h z-=dDG1b77SIvh_?<19{?^33|MC3D(u)!8!V*VWr2dD({N*LB;~AWE1%pw7A`>qcWF zSN2CO`Da6c722kW>n@WwKg*N(+i#!iNDvz&ma;dr_4gj!1KV#{qCU4RBq~^DKm)w0 z7%~_0(`vOMhYz8yCpg&ln{yc08EC@C1-cv4NRhgSwPTAt{O!1~w69fdjF_;RMt!2p z5lac)9ba#6n@f~$$L2&`{N6X&u0?48+!}l|kOxr)R2-bOceHydP=gJH(l>@F4okO1 zcdzRovE33*c}iYXx~KV8clrQ>TU|?;Aas|l^_Y0pClVjQq7k*hULsYricQAYQ&t#w zUm3shSQkJYUcm#H)UXEG(nrSpTWBy>5wxZl60s)JhxZEWQk)fdY8vH5d`{r`JozjjBg9MJ+uvnolj!nRqX- zoT=0qC#}z!IXq~Xy?+T^Mv_Q8O4M^i`I^>56Hb-g=6dK5mml6lucRyU9c+iZ53d-b zczU0?%Eu9&E>CSS^noOu3Up>>Qrx))a*l$YPY&TT zVIKK)EFP0-(*_S=pcRoF>hzZpD+1mEdq+RRDejfu`B>rUQXv=OLDfOU48?0vU$S`J zB+i}mX{SLEr#bBuI9$2jFb`gmh6-18UeYSrT|P52S=$A_@ILQ`=Z|DuyvfDB1TmXO zq?%evEMLV;*xxf8McGDPWA2rST%B4>gsV`tnjyb$4C5F`8pRzIs94>{F5&QlJsB%g zr*_BxQ5@&?)0FlLr{58cBPDwlYt5=Ng?L(5#wZbHvPqLhIu2#^q`ui_yY(neKbABf zF#7}R1qMuj%zS~{R+)dIjoiug%qj~((ZXjdJ`*NiHWp2nrS#0aAF>7l#?J#hlu+pv zFelbahtS4N6+lg~w5slqfL-2#CRI?0cpBUOr%bWm93mgQkQHvmhCC0I>Y7&kES%a= zm9q8*JQ3SDa|BOd1|YMatID8GF7m!Pyk5RZ3pid=DT{XOoICaVAc0Q0TRF%(vB~>v zS(peX>%u_;5{t=Km{Qe$RtYikwf?KcIbg}GQoQd)BN#p0%JEBu2%o6bI257VY5~W= zDik4y)E6Ps$`_&C#1}z;%oibi@DUxo5KKUJ83U>K3DSw|!*)eBrArVzw-%MOdbX z{IOI`$OoB1>=$mAqNO)GlW*vn+9P6T$>m-Bn(8BBdo~BvrL$*j-pLlY?;P@5!`M{U zayHYYj~VI&5yn?uv|oSPQA60bGNMn@)iQcF`_ld-?f~vB6H#hYc6fH@6UQ$!C>-=O z33nzl6$-~GW71P}={2)2AsoZLLhE=Pylfi@PyC&Pj|pSai$dvfQ*7yRfi~O}#t*Y} zp@xd7t^?-4*_6@2+&sP_J$4F_y_C_?vtIo!D}bD>_t#N^ok0Gt4z0d?b!A#lDWeDf zb@R{uHE*@GYWF8*io4s);_JrwGOjp~VrtfrR>G)%VO5&!k--2z>yHHvB{4pv)9l+HQczPa6z9ELM$GXUPv9QMC%ZO0D(kQ^qc4>1G!Rb^n`5xu; zD9mgOo);smk}vx`o~}5GP8|MAhQ5K_LV9C2b=jlWbJB#gYo~p+>C7J0K$us|i^6P( zJIZ0vY}TH(=24-sf|Vb#Aw|@OkhC$bm5I2w;Z6#yU7d((9pR+4P8+lP1^J_e;%r}y zDi^oiw+$C#Y>wW8gLArx?^Wt#F%oHuEEQFns_W8$k+tL2pv&ok5qrC#eqa5YsgW~2 z1TW8IkE|NO25P~HQ)tUcm(*avUvAt~&OthyqoPB2$$w5NVJU-AvLp;a!P|0p?^>ya zk=?-!?!wHy(2Zll$D`uK)FRdk(8cZ|)>J{yb#8Oo6>O6iu%eAA!8Z!nc#7X^4XT9$ z#A%E_zBe`TcwgU-k@`z0D5%c8fT|une>kyvb}rv3N#&Ts>b)J`^yIEZxpR!cbZ9v;xyOOUnU zxZYku_OBrb5UUc9>1&YZd{mVxb}nc)=)2u(InPC!)s5a9K{BAvbG>{HW&02hU%Ox! zIUj_&AeUzWxgbF&zk{u)h&YR#)MIK@nj5K+VkFq{)Lm%`W$`|3t_v1fG7o>)wMmi- zo~`7lA)1qWi^Q^6d7$o2yfV2STS~=yr!>n<_0eFw*zR}yHr?oC7Fij+wBCXzi`Ln* z=sM4dlR8g%KR2i z+qJjl#k!`q&kZ!xd=q}_Wz5FJnzvp87y<%;I33Cb03yjP!L)~#A_}#-XspJ$v|`5Z%cI7mxXJ6? zNCUkWh!(VbjKri4bcFO53fi@Kc~-~K!3DCnPN*wHsJJnelcsP`p!u^(IePE<^J+GYJ2A8n?*%o%$U3TRAj{;JRbzNCi zkxbr_MV&?5noxlcq+tql3m%ej{Uz8ZJthanY8?r&qAMJ7*UxPuHnVDm=jqIq;%Dz| zD{`Vf|zy18QY=VG%nJ&Q{R_hjW6B!${MmRr#ZW0&%D?6^2XdIp9nKIVm0LigMx<2VL zEq$w8T{xsrFA_X)cX?Wg8MUROPbJb{*Qq=cR{Hs~GP)84&K6lBmqMi$7*gpjcaKzK zCwG^Z+vE%EG!*%(*KaL3=6~I3XdueUWy0_DoS`9jokX;vh};N-W)I+x$n}CdcCzS z*xYJA-@GZxs5{>*9(>ur><~wq@=^Lrrv-LVJn+%;k3uoz@qkj%aE3*!{R2t1{#a2V z?PDVM(5fr>Op8W*X$=X4RzY+MYcyUv-(3TCnFpoT-@iZ2KGNg&j0bNZDSQ!hEkkp5 zp*cI@$TUufjb8i0`>m&SNr0SGu2i~zsL=Bqm^7$|j+@un7$Mevit`0Xx=(!883pGJ zpGt8{P4#KhL7#e>tM#w|2Zl*H`~W$qI-a*QJCgv9?Ax=CM@vEMt2-_s8SRcup;fs(uE(_trzzr|sLqlpfKS zmoi)US)`FU2l@0o8-s(ymY>DdH%x*ilN~gd8D1XP<}GHBPlvQzM>}XXGrS;$&rR&q zhyCo`>>JzIF7x#(21@kn6}B72TxTYIiZdj!TVTi!@e9!=KT>6c3B7$XRMv`luWu)$ zfWPi_wpgzUsJg%Q$?q~aUh_(ENc9GlZ=-Z(-x?pUm31e~wO`S;Myg#*{4Cf|>Lhuk zDfe)yxu$JDcKX@mG4Xr_oNs%L^9DawZse;@ytJKgu&|30Ui`r>u_T(9?#RN-cRmhM z26r@Y3XzGWk=_VYkQZwISW$W+o1f6bWIiatFFD|zFfRQaYvEu;D-T&d9_yV&`n5#& z1Inxkd+1f>6XI+g$H5l~Bk5FvWt5T9pXlq#1fsD?WUR6sTmp3jG5l?g_To=T%g@`x ztAZ$V<@B`1x(8vk%NY&ci{FXGQS64WO9mYf^;lj<(#YqGS+4|EuDQ-+F!E2%Z%;p! z`XBn)q^}!%AUIj+u;hP?{une57&s)5#t^SZuZbX9{Wj#Y!-Hdk<6-(>HobqbW7hibgRY$`(hyIP&6nq^iR zYsI-`QUPzF8(Dkv#GgR=U$cNS(t!SQ!(0^NR%P%WLbeVeM_cVm{n9fk!k3A~X;pLt zXLp^Oqrm#uiRvhctn^O|HAe79W|U-Xy{#oUq1VhJxXAoLGNs=|-OJ$hbJ@)`CIM_CT3H6SReg*0*7$IGbjMO>p)J~bp%esDLqaXVRj=lzu!IfeKPHScSuk)wm0w# z#Po!xZBfvR0R%*jxKw(ZD*A}MH!ZbcQPAb^ANQ{@gyZgtvNJt!V=A6)ZVIb?jsrf< zuS6XC?`if+$3BwbeEJDOu8(Gr3|U$~D_KdCd`&QxY8%K@*~jODdN7!r_T5@Bn0N1zc2aly{Bz9GUo#FYOlA1 zw3vW~n@%8}X~~8VauRP@v3jl4?0e%13{u0mu??|tTez(dqhzJ;%ClSZCP@^)%AtFO&xqXk`nRse{61JSKO&||dRj}Cg4#L?5 zxf9t$3}lWED2BNWZgGMF`z_9)2Y2o2D2*uWvHl5k0n3kbjeFa?3rag>kUlO=bvV$FH`|Y zz41@Gdml&Tx)%J2k~kE0{M_-Kg?&&6inSXP?31eWC$Dt)ilm8e`#}W0Vo+~!7r{bD zs{#&t#KVf7{<~W?|FZ}c|oX2MeZ1U3sF=rtO3 z?egN$-KJH2V-{>eLgYtD3BJuX)tVA}u zzIwwKWBepP!)fvG;3|+obYz#{Lf{U3gtQnD2g#kb?CLE%w{&RbH=jEdXODfi9$Ax4e7E>imuTbym<(l8D9dk(aR6{T zsJdC*zKrQ%=_RU4awTH4_#-;3jQr}tkS~5TvlYt-hwYOo-ep8XGEYHPS2%Z;@wmSx zE<;e?j9lV59PJBL2sgnhvL)vEifo~hhMb%fWu>s7{u~w1myzw&2+M!50lTv40m}kC z3GcHL1KYlv4TS=~hOTz71A{+3h-J%w%BQW9NmTn&ILN5cxT3eKT{)1#aSJNESG?rR zeX_4l`zK2}jB`Gk65I?L`}o~E{oE52KG`W&*V2-ZyXuPl-0oQY$!p8sui zt0ifrQckr!=R}+>&K5|4T3zW1}wZ3^Elks7}E8p?=9j(ziG zbq-;-M3@qEN7Y&`j;Q>Y49tst*Zs~;mA>w14aQn6WO*(Rc&BLBL{g#CDE({vodn6a zsFE?bXK@g4(%=;JD$HfO?=K}+HxgnY(H#>-n8_4_b z(;WY&O(o#pJT~yZ6WjuVKj_~ofjobSL10b@7z80c0e{h&U*<<;>Z1edwsyak!+By`d9bQe|vopcM2jm0=fS|WCK7DKP~`- zHvA`!pZ}fk_?yTE{@1}Rh$Y6(!^_13qy%vBK>`KxI0^)Igbb-5FvJoC0JzwJTwJ{W z3^(>qf?NON;qf<*4I&`_`@-Y@;x0M=VQ>LJWHvs)e^BxO{f%RTxUK){)^l_Ig#m*( z0T85*58_tx@Ihcl00im#%L<0X3B-qmB-DT6(D)At4$$8;Ht@f*G=)5*&(00vg%FW{ z8(O#_V=pfcq&WL0cF_My?g0I*GzI_brRiTW0fr<@2;m6H9o)QNh!6>Yu%A3&9^Sv= zgo~Y%n~Uq;2uc4>=MK={DpM}be`jgR#RoZPAa&Y5j4j-d?7__g*?<2r@$t9Pl#BCU zuT8l*xgpgBWSb$_DHzD}ml+JP9C-i`$`PV~vV*vRT>lJ{{GXCM{#KWAasE3CQwW34 z4&;NB>s)_N9}wshGTr0i2LChr=zk}F{H-*F2K;N91{qX% z*g*hJ9>^>P07)eP2!;92Z2x~sjQp)Q<$}z_{?!5azpGP70)bHdkmCJs0}LbzA(K1E zsPi8)c>(>cI_2X0*UM9gkIc>shEy^@h&m2Q9*}7+1f++^upr3z1%k|C_;|U%|IF6^ zr^LtKs#6G~|KIT;^~u&1f{AlT*&4f=zc)8^Ff&KykT%_q?NKZ+9C}wPpLLY8z)UX%DxjA*eu&+mDb*Cp?c*V~)XKfXx$U7EiW9lV#k&zjS=ue?i=?2pP0 zZ205+UrM_Jo>l@}UIwq^z0tmBOMkmwza!{8sWFk^?YOVs25g1>`5oTfb@Wr@wSUy% zjeqTJE1+}pDP@Q4hafre$43s1{Ouaob^n1q#?h4zj5V59gY@d!&IkEUOMd;OWSQi2|#FnyfOtXUQAbFx3@#o6!TmM54whKid!qnj6g0lOS? zo`by`1Pu}SVk}Ux9%41+2R)faQYFaUNF0!Xq#)OjX z#HO5U0vTBa2YO>riS{=@tLvV0prNucUd(F3(b`oJ@{5wA&#)CDz%%>t?lQ~#p)+d! z0v$~v?Xt6tMo?2;>c6e@dwPPDT4;UXCZDX;jsjX&PKX8%Nt;5Pv}~7c;MZdKt*slZ z?uTC)dNvJw!r)~dwL&NoPV1{f~OOzSGXCN zq?xYrq}&o}X#e3WuI*hVtqbz~EdTmX97kffnysc??OrNy@_WPHghHlh=I{c%0rOAs z!3QcVOj$ves#{KL>Yl#&8!7k1i*SkE+^1pOUxB> z+%|>*-v{mgbQEv8lw{um&7<0Q|8RHBX^hILm9mF)A@$U~(z1@qe${3R*v2Ldex`8| zqOIC3lBpdow38D(kK+jwq+=pzomapbMo3&>cTjj1>U>t>_~XX+^b3Gtdhgvd{iWu> z%HwN@k0a)1!P9%FxWF8huuI~p=t9gv@Eb)F0>(zr&K5F^TkHg(SwW6&W!V%HyRA`q z3UsC$`bPY`H(Hb0WPvt0KNm7uruzU+G_2LP{H+P+AC#!Oq{39a`Di}cD~~$goycyF zs7{CNSrKfnFk`0Ap3|dK5xCk5YkC+1vj>@S?Q8N$!OJWH`h&H*2epUOdFyZq9=$cu zC(6<`_T3nT>CyoXH7YNj_pc%SxFrL7#LXe|c6$_3j_P~{%>1N=6lR=GiMzjWb<5&2 z*)hNZCUHJAaSYZYTuvUeXH6q(DV=(QfR_s~{@4v1<+IuVt~9E}NZ_eb#c{nQUaX4K zqgM4PryrB6pEvJlQ0Wg5y%jW5LhJR+N5X`qDB#sGDq*$j%JXU3nwOQw#JaG3rr=^d zE8htXtBE0L!g~(xsM88klx7eNOAv_Q8_F^-zMnT!%0o|e;If+E9qnmfH^m>K9Tas> z<N)0QBhGKyAuDMEOLd+TE9vY?&e;ldVE2S%7Uiu=4kF?)}Saj0Cp# z79c^htK))$G1ILoWxKLemYoU{SR|Dhf_nNgObYKM5A(2_Dy{m4n25gvSZ|FZ3!Fp; z^MpKgj|%d4&IQ+lq&f*bQYAPx9GO@fmlPz^ZMPqAsXFP-KC<@3`E1wWQO!^} zl0~YXyVRVCB6Nx%H-Eq)4sbrfqxt|W6{ED|vPKyjyc1=o!Usa~3kGxB@_CsAz+`ip| zBNwAY&d_+2^RHIF`h9tgZwK*7t@I2m)@gfq{X%UpIUF!p+=^6N=Wj>QZ_8`ZMs-d5 z>1?`1q#ZIz&2-|3X;~L;K7-?W)M!M~{2ZZ#^B|Edq@{r+5B^AmW5y`OMut)@6Nlan8UL`FFan!x^4nU2- zj&*gs>$nQ_wH$ZIL5SdRFRHM{yCQnkUun)j{0Tdzw-)nPzlawNDP{`G7GFIk0?#$! zR@_GHO5C3(p#R}nC&jwowr4K<-ovMn7R(vN@>rT57?&CD@`i<}eKxx@Xchvl zQxooPMi_)>Q}z?%c6U9LFhO?DJ(O&A&2KQD_3`d;U_yTL-ZQWX8u74wk#Rt`Ho|=U z5o>FtoY2zVfq!+gv;;;+)s<#%ker@qXkQKzkAr#Ig|}JC?kYPW*T$)<1$%LRVdi?3 zM7X@MYMW><*6*SHoNbh+pWiT{Zf4}x-~nnX@I_xvJ3X52MheO|W=hsuy)1>BIPe)T z(jGg%7YqFIn61uZgop;L5EtjOCH!5dfzPNfQD7kp{z!yIN#ajNbx->G5(@@dZWJ2)g6+Si`yXerJ@ zybrm7hD0$&oh&38a0(-&=w1cj!Yz_D^=p*u>B~}r!Y%Q(^!@k}>AHb6<~&iydd;KWSBYXWa?>mjZ$K92 z)512OGI&Bl`-6bDu)J{Lx&9;Sk-#Hrdg!p_kSAs?6#(#rnqCNLII;;#;M-#pbB88Q zeI2G1mnfM>LetrlwHngI$*1}z3~BsH6T0V3 zMpzQ@C7!8P4m!|8be!7oi6D$|A z#4Qcj4pW^Cd&+pXe)Urd$|C2z0cX9_>le=JH=askb@d@MPVI42Rz{?eJXPzDK}>qk zR$+vBQ_MydwLwU)&=w_r4aqo-f?pEBPpxi_IbIISN3sFr` z*I~{DQ**JK=HN2Xs|w*7mi^H7+Gn(l2(P7ohMq%b_6D8*@RSJ*#X42=65t%R#g?L-+rM{x^%^E3O?2wvH;JjMWSq|dojuk!0&mNW`Aq`JSS9&fo%E2F*Pz@J zNo6Pw^br?UB^S8TI$S?JoOCOb@bWdM=T$Rohs#+?2o*P|Jkbn_@Q^$Lm2&6vhbFlp zaY`M;pdc$vY)zw#{$3NbxjL;9=y$WH$>j{tpYD-A;VO?BrnfPqS=6*drWhedGsstM z7(NbQ&Q0H-NGLP+zNEsH zDeX#DD@|A0?^etR%mCDCB9-uD-C~qYS*lKxFIOGLDKrQl?yaCO3B0RAxDhe~-$sGc z*SJUkqf$*)3qh6m^C_n*wghz{^;e4~a)9Pp){+&?6AWPQx}9yM7DBy_hlQ-Nu)$!ETwZSWQ3tvgHTeL^$mNq`h_Gd7bpe+oGNZroc@V(ju=b zlE@Iz-apP!r4E_e+P5l^WyyXVEa^>ALvS*|Go8&F^Rn`1C}PmW*vR7N#07uRSQ{;e zk?}HC;cz{csV6QuKc1ud1jO_XBgyA}7Dn9S%&@#Xod`1bNV2>=RTTSKoWpN@9)^U+ z@8)Z8_Q_?sH1c9iKJ^TJ5*HC;qPG+P@O5puGLU6Zv7{hGT0D~(xqx}Xf>y1=U zB!V)18uz@ZOr)aZ&#Doz(vHgJN;mOotFPUn8CZFa1s#oiMhuecpdQQ!xzGGuxG1`3 zuV{p^jc(XzfkPzoAK&FT-z&_%qiIT0Qk8?^`lyz24bN6s1T(Uy+}NCYHlfaj@O1+$$~C|8pq5$w zS$_cvMPu2TSM&;352a`}dt^ZuX2Dg?{?{C@QG=V<@%e1iIdN@Eca>>850XeL5)?P< ze6c+=!04)rRR_j~K1~fC!J_h0;xAGjs$@95?TDFoMX+8aMs~;{zN*6t=JUjPm`Ms~ zP|QBd>Y8=x5?yxQF`r2auCXO?1vsnM4HrdG1MR+ahgZe;svhF3&~cEhaMZx-wP~0( zMXdAL3RGb&4OQ=3xY&~QYp%S+oxL1e-@~%wopR~>E;h2t(opPj4_A+TPR(9UaB&Z) z#y+Lj@HpOA&bN@uS-fkLstb3YcT;+ETV)EJOk}7h{1a@FMkOp;#d5}L&xRfBT)Xq| zTME&-td&Tk>u~406a2`6|?~(eiXXTg-F=}>A zUr-M`YGx|m@9RJwKpacfYn}c^q=|lKU7c)Oh32Dh(Zs$u)2^juelfz&=CR~gWza@sk-jE;ma@``-5BQD%D5_;mrg$?H(Vu+I#BCFx-;YV96}% zA;Ng<5zdS_gK1)X-=K~m=T5_j`1wl*Kji^8*Hf`z8^2lnOHE>j-^mVB8-H9?VCb>1 z!X?_lO5&D*aMJb`{NB62ua`CH*p=Z`bQ)a^uid^nK=Ug)y9}l^*9j}j;<84J^1^r5DBD&V4US;~ZJS8ZuNha%)1LR1~C5zq5t;4?yM^@9rWJbcbAbqX$H$bd}Qm`e$ z19JtYc&+ar1u9-X7r-ue#2}+bQA`z{Ryt5AT5HkF0y@uJ%PgFr2=5f~ngwQJ)6yy# zu#>F9pr$_S!Z1i^+hdCXgr#wFQ84rAqAX3ilYRx_y}BpIno==w!1k;CEvYqdD7 z$ANxE=-YD7kyR+@z7P|bBb`w!o)ZtL@s1x%b?cqe#=gSCc`u^HDjEaZ&b$LR(7k!7 zBJ4Y#>f80yBTv4I016KpAkX;xb~V50GF>D2qpi`nbVs*fHNw8c2phj`d>^(r`PbWJ%M+jD>jj z=aDAo+hl4(v@&{JpW#hUOw^TO_$|aN=&(g3oR!qNbb!1UEM3nUF@afWsd(%=6zP`J zPe;Z9R?$<8Y5AEy%u4Xge|S_-NCVM%VwjtN4<%zrX>IbhBC`P|Ae?uV~EX|i+FX_N}MC)s069zDprKBpfy%^K4Ku2oRE zxIE}lbDjUVXC=6td|DuY`*mg2C?FJ7iC9FeYZdeSU1EMWNoE~rE*p9G`|Z5td+`u$ zLL(sFzYE(uuE@Yp(^>?NWnq)`(?H{f+7`2uXl`#*0P8f}^LEzSu)xig+*g6qCBdU> zx9{FbxWBAA?AyO_D-mi1U^+FRK!(_ZN08zJqubAlGF-+O8c`}T3zHP>6k&A5Ht}}1 zvMrzIIkr5QcNJ3$1nSzpaVs0CSP1<54!XG`@TlFLTIg7`r2_1qMABUGpVSm?v8Fziqkz}+qT_L0=TJqqfn+RE zIhoHxAFZD`jN~U89MTI=20Pd!x*=f{0y@v2pBg8TwX$}RMK9!cSLTBkO|He!7q z!uV@ui&Q2>dU0pH666IIuHHJWPK%`m_0;^-MLcag{lfBJ$RE22yAM?*UT6`O~^Go$VMY!-g-*BW)IzDSNEZc*QxkT_#HB)@<|GM zFRFya+{K?h?btsHCh~>hS?tXEyPi3L8{aGrBODj_{K_r~*V40sm z!y(D3J;gD+UC!%JtY?+A=2RSRrQSXhja2=8R$g||(c@oD?XE}uEg=ctBE7`cfDH$w zVzmZ`oAo*zy?aZ)Bc?&iIlV;GV_R3Qre$vPxGwlL=bzn{pRUw?*ODdOwJv;Nw$!>j zFq9wz@zHvTGq)brt<(IzTw^;4_3M@4+v{#{T(>aPgu|$fJoi^LC`byR{r~9B#b!KFTQiBBiO2*c=}kDiK$nJ~f+qOh+Cn7wlx5$mdF5ihnnk zq<{_5e=SZfqN@Zxk2PaLxHIT7{z$Ac=>9#=ZUob}lS%^G{uD9LtU>U%I7||tTyDc% zaf%En0Cb_7orM46T>B^-x77;6aVq2TQ zbXdROoW4&GRpT*FhYeEUu|lT-TA>-kgdF+LGrYnsmbCFe6KZ`aMT^b_dN8ripa!p#XG2v#-&yr(#`!*fAmu{b` zCpz7*2>Q(V^%$pS8L`^C3Ut2#>f+FYNv7-u_=IxWL<<|YIO>VR!)`_PtE>_-98~v& z>SEJt*2GGUMwFL7*u5H@k}=erK&)4qC7Z(zCxUoJ&cKBfaGN8`uq4B==ft=Y*VtTA zafu?Ka8y>Sb9HG0*`{k}WVp}B+H%m&e8=-^QboFb`n-N^oq|qbIO@cz4@13bUv96(w*V>KjE{W-4f>%y1(yB!i4WT-aF6B{_=lic z?#nN?r6%WU1~_ZC?c?o{A9DS3LZo$!mFGz=ou6KiuZCdayb8a4t$te*_J3gy`b>2^ zgXY^!=<*KQE4z~Nm=W%N6!*g_@nwT0tyAcrybA6Z|N5iHNM0yl-Tx4I^@<(hq@c2G z|AGB?MQ#q=X^DzthXy>hUo-Xogg7L7gJQRWiv6UV68h)HiUc>9Qh~hAFCuIBsc%fI z_T=)0ybrr3bT>O94vcKXf~>0;G%&q`>-LK#p928$3T(lB{zF5O5VA^_Qdl9;qEx=@ zjB!e4ECetzjOWAYrov0OpW2{kxUzIUvwoMyl>X6m<~TTbQOL~OROVEqm`zP%ma|$` zlr6NGk~My!ZhI?O#OpqSVEGNgAztu1+$7u{2&sZZ$i8eGstNML9+wK9I0;>T4|3ic zQdK;di}PfQ+((kr4_)?W2|++*(hFX>VziPhM5$Yux-rBW6+@I(<=6uTPz*ugkpS3$ zG)dzvTN$#PEBh2Ox;tJ%2{q>VrCL$MV=uYHYm5zbLv2O_bSvJ49XQI}KJgo`-ELQz zg;vVK-Km9sS15s@GnrUU3GMjN%cnnbNu*826R+l`{PtMd!=#8(&ORDv=x8p8?) zs)YSn8C3ZyH`3Izp+p_%Y~}h=o-2wJU6>e;nF^w+GIgOP!-9y)g??1v#=BB8(uY(t z>Dh+8O=rA)LMNMjhgQ?rsLyL1Q=_GMQClmyp7zz}=Kkd%`&w;jkcn4fm%}+ z@f$iN)V2H8$;3F_{;BE7rQn=g2IP*B63ufNgTI@9b*H2J_I{d&lj?j#1v>uT#2@)9 zZOBT)K9wCsnFk17P zJP?JpXAg5-l`G7zgVRGZaHSG&KDR@T8&F?_*Reu7C_v6&RY%e>6O3f>CeW#mp9Q2z zAs){aQC26|FymVB9lA0=a*}z3ajs9Tl}+^n@LUjoAT~QsHW`MV+)SG>BY&FJ4kdAe zTni3ZIxb+C8tk+(GV(nxY*YuJZxZ|D)dn=zgz{h-8<3 z{UtCMuJ_t&>AOo0S4wr?Q~<1)v-Tx}E}N02`B50w`df8vaEc?EB!qKOU{-4jS3l{ zrE>vi%Oa0OZCi;YqXDgA3k}PbrDDrAU4x}sTFZ1GquUtMy-x{s3l)h6a~rj2W%psK zc`XS$PW%A~F6VZGs%=`bh3Y;9cPlYsvF$k3y#hR4?B!7#yydQ8%}tS6JqkfxSaG0A zsCs{MVF5z9)oLccEwOhhhp^AGG+B$DvTf_*f283#WYf20W-sD(9%vXVQ8KDVId}uqS5(&p=^O}Fj147#*)!#i4TVMDoXWt{9_%_$!@Ha-bYD$b| zyQ!}uOsiwjuK3q!ju%>AmC3S&+}%maMkMX?R7eXqqo zTRW(>RnxXxY6$6yCkx!p=ekvXwCQ&@cqpgr&GuUa)QY6tw?Thjxo->Is+qyLYY_4> zKJmp)GF~Z4hhdb?zi)%m1pej0(?{}b5z?N0r=kfzlvUVM23qo_1tvHW_0V;CADIZ5P$+QK zT4reT_s3}NIgEx^t8hcvE7St9B5QkS%bYw&`isVE3rZqC3>HK+p$dnE~>&$~- zwACxr5^sihk<&xtrE}0EkAZ?)P=U9#2n$^$|K>zPV(mA}R}um;0i0X=9WyB`vj*~2 zXIxK;LSw!f*U4EbR^>-Qj&DGmC8op~9-XR%=N-*&O|FHf?nm3lC7PnO!P{Pu|7; zA%hz=9=CgjUAI;mwgEwE+updo#IS+>p(}_QWk|b(DTB`KnLu9KMu@3yzm6kMNasfP zaGp2y+*JNN6)L$6!--Dr8pp3%)q?p#ul*?K#7D4c5W%&vJ&NkmjWJOCc8#o! z2EO~Bj*C2?(;FY^Zzd?nQbn>;d-~8|Ik=jrBaSX9YLb`9$Vpzh+2;8eEGR$r8S$Q0 zlcvk}wa@5$GZ}m?3@xsdUC2ftY+ zyf0+u>X32AiP)kL6f_vH+_-&1?e^f*mi-a`QjIutFuXjtcjNgEeols4#>CfJ-kAfN zmGdvJ`yat?lWWTd`>*1cAR1>pmt*wSnM^E8nt4*^JkBv9i=>RPfW()v#waLGeu3TMqvyRB>W}P_<_)ZPz7Dxus=CG zrJGeUVxCB*^$WRaG&!}Bf=vlFa^hJ=G+-#`z)pdwU=VGdRt_>FQ@VnpHa}6O@J*T} z{O_L_M~mlh$H?b}2~&0at;V0xt%`MH zHIS)2j)lHJ<4VAV>8J$thK^Dx;x3Zb=UeR4AfBSjU;q^l^}_)smd9Q-}Gn9Mc*-zDXh4F7`$EJWr>47UzguqpZ_sYmw!u%Pc1`?LV6&2 z)sXr4ApG>5y^OX)Im%_DN(enF1JYxi+j!%7{FAIuQgDL<=Hb|v=Dd)7^I4aLn_ANu zlIASD^XcBbyi1C0oeP&JZ?l3?&fS<#rL~w&f}m4^>)|MEtk#lpvgzS=sZN)OWrIP# z;FWKW!QlB(7XsN}r^u&q!DS}!g@BzY=LqGaD{PCLp9S8G0kZ?mAbsqO`(1U6^h(*^ zyK7|FTDhpwkk+=QNSZU#`QIMS8_#pvr90u>W4w!4eqvtv3PpPt?SQ`-nC2D*E?rV? zAGa~>#x(J*eBw4+0VOZ7|%$oS6BvC%`fN#RH3YG$gvd_sg|CRCjB_sZ2G; zE}`9EC?L95d+tjQq-rWPnl%lG!Yr|Kn>C3`WS*N*Te%H$0Yw#)_D3w?lMpHgLRQZq zKJ~dTVq_6}%$qwg5E>0Gph;qCNK;%lg4AIKLW-~NQnp3>%|9vg$5`ZxqVvRTp*dj6 zz{}OYGHdn<$O}I|&xhIy1@ZZ>@v*LTqopqh8@JCH$n~Z5L#HrZ2d^di%$_Bm@0Q_> z+4mg~GSdnZLwvX+Rb5p;S514^rSn@5c_f-L>826h3*>5s|JbT)$1~0C^)SXEZ<3Yj zRcaagQwnXqVXi_5z2p|&$iVpp+hE)*A2EhQ zf);so$qI{+egOr5#Yw+NG@&3qw;^_oI-dAIiHw`j7l&zp+?=P*7g}_y`DCv>T|Hi^ z7X_nv+=ADQN&BD+`5wR%@z@yslve-T;FJLPz8ZZM|NGv0DD_x1pdPRBDz09)RC9;a ztjXA}Ss0G9DO+X#eLsLA65phc{GJ$1Fflx8apEFd{yM$ zV-ft&UIfPev6Ot|Un6@WTyw8>0wr9FH2`kL>(+FaETNB32R&yA5>QJUn^B0@>U?|Z zAe%4E@liiaZNliKe-{6X!)lz3-b^#@+Sr$5yArq5$=E(4w2Bx{X) zK_;z2M~B7oEaC2JB|vv`SiNKuf{zd%flz&zS>&xmbxRg^r53qm=X}VgTe%jw%kFpjYo`44 zXeN-o!KH+dOCevf>#EkU{)U>?+rmZ(HfqxHl7ESHr;yWyKGhH}k;wx*#s;40gDxFI zY{v`UmrYM9SqQkt+$dMbTa24x{SvC3bbBOn)(!A0L!I9^>>}4~W-;<=xI1ET8?<}@ zgduO5v1{|uq6(puEv3bgzJF1MYha$9|H~g&R1J|wa((niPW`=ulvan$AQwWulilIm z;_rS#2DFd49Xgjs2S0!mlXg|B*1g*~9f;|}&NL^kvik0#`%UTG99q8WAutxvJc;n zX@Kpr3S(q^KGYL!-gtVeW07N6{0=lpif@@eUd?y+VQ9>_z3Ok7JsGDvRw1YQpxWpO zwBpsXpfOwn-O^1RU5^aTRgOk!Z)ZnyZnW8I?|g>Cb8CYj`*F7YcDG2kHzuD}Cbn|V zosr#Er;!(O2x;^xPf~j>Z7OGkbaJgW%nX+v`V={Yd;RdaU)BvQ1!y=}ZefCJZ(-79 zyQV)ubmY;_R;&rK3q|>DD}nET`MRbAA0UL&BAH7){|FiA;=A@&j7f_+6Xn<5UoCA3 z$R%5nw|sjE7%Dx|)56FSwyM9>ti-`EDlsZ>t35<&_z4H>ds=d4u%A)vgnFxDUl!;+ z{ns&l>JtP~Q_98ziR=X0D_+2^C&Rjn;9%vL{ewj=#OfBgR_G167SxZA6TMGq(iztx zEE(6U>+`;#^Ni~oWZAF6@}}aXdp+nvmkb+14aA{WDfiycUmqE6E>AmzYj|0iR$g(K^D^oQ&-=Z$|ArQ!9RAoo z_yYa>h_1B}c*0dlEnEayY;=bm!6J;ZnNamqCV7o}Tb50a?L)EWcH@SW1 zjeBq@F_*gMb6^oX?XGcXVfMr7`+jN_KX^$bI4v{*#*&lU4=p-}G=JiExItFH^R$k^x#E zrr1H$&eg@!=%IG4G>fbGm=wr%b0>46@W8Qc2v6zphDqu3V#X0)L7+yRpBkJyr3FOo z7-8>a5_hm+61Qvhc18mYDN(E8fU0QI6%J_7TipCUTcs z04vss8M45eNm_`?!b(EU_}flOl8Mpl)$rK#r+S<)V^YG+)=5{RU&UPlk=skp%hULo!$5D$ zfXW~0o6G=u<3|8}{>tYi=K?SA1b7Hu`HWM?&ju6T_FWaSiwcC)7^(qm&bQd%3!)_z zFcRO^6>42505adaf!+o&%L@l-ER!(K(iNre!U!_HO`fCe@`E-Syw0X0ecSfLd0;pm z>w;7~L)!lo#De5crz4$l&1(2b`$LMo#;QeH%(WoA{H={2Md|a?$d-aFol0}i?i=UG zgHjJ@1QFC~cH_xPJ2bRvi6)x4q0fT3@$4q-wY3K2Yv+wqb@yRay4$Jknmht)!qt5_8c$@lVi`U zDh4#Lt0xX|&JNa)cQbXY^>hB7_^RPmC4IPDtW2Tdj=3S}O4%Yw)Z=~Ww?gWMhL^(5beXhNYhH)gTBFABfi0g zW`dGRw3}vvy_cqf5I^7GRz1+rRt0+?eSdR9F$ES?`Hul>chZy%ege1Cgsqi)Q|x?h zG(Qe*+X}xESJMC)O*yv;2{%W-r&nLi11V==)<*np(1$;c zzwqBUb>5Wp58jgY4|c>Pg;=rSG5+d*4g>!y{1=L~=TSW-(R290?^Z0L7dZJ^sZ@(tJN@%-ZK@vw}pdOgtHZu?MBdW1}njc2UhmEw!T8-wd zNE_R42BCM)u}_RkJ~!tq@;>WHz>+X_6*0^YzN+^N8D&4IlHbtOr64)i8J~!?9#;~P zm2@S=$Fro6tr7QNLtf?oRdyi>PJ3n&S&2uhdwpig_ghaO`+mLX4$SQgG*a^Hw%|2; z-<0y!sz^1<3pYXuW@u~ew~Za51Ml|_1*rZ9{L46mJ3xcfE_v>5=;LuOTY;-5w7L#N z=HL~?T7oNWTIde+V~8y%K8RXKV&g|h;(WYr^&%FfVVqmy=kPG{Z5E~GpZcF?=x4A7 zfR>3XPu4Csw(#@8-aR}S1gXik552YiN!Q-WLgoVa9gP;wn^&XWwxc_7*Vx%jn`ivw zIjKR^KgtC0p^*1PAMTFum8(ci1kMcRybRDr3`$2j7)Nb}%FH$vcI9a*){}U%3uya? z7Yv_`D1ScR%qsfzyGv?EAU;LUPI+bI+bUazQ^cCgmm_K(WVvMABFe`y7&+h^KxT-d zJc(KQcG0qTZ6#%FlO$wpU(%G*d+N64ssJJ|(p%M(`9nX{~*3Zs`epVBQ*2 z__;Dx5&c{(-vHhoHCmPD0!>a$YJT0c?5p0Vxs!MPC(p5y`P<7G zKD6vl;o;;vN%-&MDU*{o@t+U<*u#)8V|H|`%B)wLm7N)fH3pS*mRn1!&)`I6aPnma+bFn z%?S#sE811rJ2Shv6_Z3nyMN&qE=w5vs^D)(-gsL@r{FC~CkVqr?%>)vLgU9d z!u&Kuh7jC6o2JVjR`1=L=e|>}qi>?O8&&!fZ8N(pxV=mI{wAEGyEs+9aiM?H80uSi z3>R`#Ei`zYO8Gz-d{Gwnz7q2Z-U@fhtUlVYs>-zQYM;@9?8vKuY6p-&Xb(f53kl;N za|+}4?{(pGjZ^m2@r3b@59FC(B5Q*Yvneb>l1ZJK2xHDSFMOI#8>k;g$Det&GZ9dZ=pFYyeU85t;0xtEyAXaY z$sJ9T5vXIArt{4=Un2nOt{i!j>2gLf9esF0k^4YI2h@KfDQqYCh88j{I=rzC&2%iZh0_magLx4#iph z*Bdg!rNhDhT9g8CLiZg(Yr|{JkT1@7i7B&w3EvpJh)37hmu2$2NW;+#OyB3y5$R(z zqnhJ2%x3%{f6VE!x;?JrERlMAh2mYvvj)o1YPf0XIya&6VO4H%eyk=`r45KPq{VN& zb=uN9>w43tvj&2eD-a+``A%dr9{)6qQ~Uf?<>Ewr2=V-1RFF`XgvsgUV`#7Bqgpge zC0HHIkz{(g9Epa;%^AFid@4km1hTZjCM_v4>Qcd z9X4sSe3@4Q4w2S@dlgx#_B)r|4ntbwwS@XQ4%l;BRW-}U%brgW_}fC7s%yFf8<@&w zEc(3BIl7(UKJlpcipZXcsQ2WaXDRBxDq8fikA{+T8q47)lI|LTn^sRJn%uG`~n;OxQfxfGWq=F!gCTihAsdbU*JM8z= ztst(YM?G%J-&dO`<1cTP{+-2H88`Ixl6oFHKk~R2ENQv~xs&J>cQ&b%Z_m0K*KE$F zriyKF>-=-ehyAPAk5G%XjS{h-jOP~G6z{}d3h2~J`OVzv?EvSpi`}z3CPe!k z;IG>^!&t5X8eec9UOMcbj59&Fdk8$zM2C`q11#vT zg2$RYd+UIy{?yNK-m1;CNe)fH<61thDp}bXfTys_^2kqH#$n1s?q`C*tSg$LYenek zIY78cG-8FoYH9v~eIM%YAQhD-GPEF4p%Oat5n@XZ;pnNam>?%pu3=CAutL7#TODbp z{%6ji!-5}6aRQKh5oNv)xx_J0;7ej8n^t|!i1sO$laIdDeD!!hn32l~? zo?_{Z4zB>zvwr&|BYG|6X5v4L0=Rx-rF|N*j1LW8)5>|B3uA~nC8i=4oXrPJZFdY0 zmxrq;ed`6|D|&qEyAms`{Bkwj7VDQ$g|Om6te&yHo4tLuM@d zdjt1XK}LK^;obh@%hH6|Of%aocM!arptCZbtllQ=a)tI$p$6fMI7Y}m=o}b* zfv2n~=?B`|1f8{_fvBbN4ST9mtPd7^k*`?)clZndhC=>x$-n>qkk5GjfsX)K|9xMA z15BTB{hv9%+-y8x<&1}oi;M%D5e?vC2dCe2a{!n*xOqAMgYwz`v@gN)4}Jsy_)q#0 z>|o`I^S`)w>}(v&Je-`o|J&drJpaH)0DylVmtg1QWoG5z2K>vR;brFJ218e5;0$?i zi4%+mfFtBz1loVnJp&_qoIK!0rKu%=$Aa6;!j#wC^1s4XtN;#HGYc+&r6quym6hER zOt68C4>NX73s%;D!F23kX^Dr+obCS^w&MAxJ_7hp`VwrM+{|D`0xaJA0}lX`am<`t ztQ`Lx`s@D_U4rMI`Uv3P*CoJ+1ejOh1|v{xVDAhp27o;Ra7Zw7gK;r%(13LfRt{G7 z{~#{$KOP|e1V{k?NnC>MUq}mBqX9=LJ2&{h0Uta5wKD&^xHLTfbVtBD{J&eV0>E$) zJ2w|txB+94V3&uT6TD~ef^kh&4t4+;8!LdB8|>u$H`e~YsY?8h2gX0u5x_rGiGQ11 z1%RtyZdOiKz<-Gk0QbLuI987Ted?BfvLoQ%`tJtF|AlG-*m=M-4-eQN`KPK0-~^w0 zfK^Sve-Os|9}kj$(j$O>oSpu^(j#2FoZxEdztSU2BOV8@@6osRy(N?BpD{QOX7IuiRWEgAiJ$1Lmb z+dcC8THM{!R$Si4!9sUSTEyR!NW+IB;<)662R7H~xXz~Q#8)1Yzb~)KL4UR5geR?T zCURd^eUl!CjqYlDluGt5s9R!Z&e7j)g+C4p@czEUPQXF;gnX>me;6R_%7r zD-VLyhJ^`Qs?WBs>$XSw0{YkTi}g*Ynx688zn$O7Ewb4$^7`_GKlv|#EEnZguV&Nj zLwVKihBRQyb7{cN2%0^Y#Kq0KP*&iEEi7MNZdxnoZti}XX@%0mI6x?59j#9kK7?? z=-LU;MBpYr+EhU$Hfx~}lc8VDGlAe~!1l<2ZQ92~F9{-SI`{P9@Q{^$=RPGVbkJ^` z(0K0gwNT#9tJcejxQLwtrD{SjvHCYJdLQKzYGQR?B@dYOQ*ckgW+7oe*kf7lS?Bo1p2f&yAC7#6wch z1xFG(W(4~{wg!IgrU~5cGArKQbRA>a6$_z+B&wcd3KHn>9?$RmVMY&0$ZAd2Nxiwe z>=1oV-T+4{laCYSMHZs}A*n7biL4$8tdF!_oyJYx$2TS>ffM}WJk_9FgNgzBbh2%u zHM!Uc{;W0*-gfg>2TMVZCw~=a|FVs9Sh5t&NcrP~wnWh`e^DV>tY1LK5(*Zfn24Dz zCl#a-Gx1L}#XSEtiT%?}$g{&eg=xPfpYv9T%4DNv{Y^Vd#}TL0NkLtZDe-e-J+Xtv z(6~kt5IwyuVYoUYzw3h7Ynkc7AU8rbGA@gz;T{bKmg}cifbV!vGvOKBtw4!|TxekF z?m>sn?pgq-3^r>hKJsZ<^!C_+cB`}z{foGfqO^;G%s zO?)7KjY}EM)#CHy^CR$VpZce>B58UO@BD%grW!ZKv=;U!P?17t%sTAeldlK!j}!AVB^yN0Ai4M-$mRgD|sxfZ|!?!p;>ky2`2L9+Q7% z+*!N`sM;;b3aL5S(>KvxD+qE z{MFzu|8?Lj?RqRlt?9|&XSU(WYJuJePyg~Yn4?}rb91_Vl@1{pm#LkxPm#8-N6KY{ zIdtpDRi<)u_Y9OLOYnw7R5veCpo%2msC_<{&^P0HHteCz@18}(nc($xLD z@S(KM7_ZW!xbRI>;XPYN^py;@`u-*%MN1l!|boJ-5uy}I+%PBGO{THIHempE()Ty@4TW^5H+e6s`S+z|CzP01aBlXq z4BWP2Ha=es-0e;>%h{Xo#}gibMSln(?fC_c|D~k ze8(Ng)65;XdaL)-_bhU6%4v~>X~}xBaM~eNJ8Ov$j}XN0Dm0vtph(E}mz~di$hkcoR{ zPzclc+)C^WVa!UyDz%XHSr6k*1)f8-0H@bDALY{vr2RS@AoCBOoJMf}IkhCaX-uy% zsfn)?7DxzynuQNn#jI=>=Aex&WpEkhF&&L~0tF||Y_yh>JB7&~h|A5YO77bGC$lsi zL&*5aSj%3`CCC?7vGaO0IqHbYWONSaQ!QdOatF@jH}7eJ4aR7sAXvDbbnH*L$O`)9 zCgb1SmPaeM=$znbNPuZPxDgf5LMdWxDigpi zo-~~08e8EoRl2^^8!Wxt(sp0VoDMyQf6BV-&JzkSNB^saPs`&cAXrH83A3~hM<_Z8 z%P}(wDd;zi0R6XV7u&NUzSl!T-pU52%dR5&sog-KOm?=^Z&64-W@8yT-1QSuJ+$WT z@!{9UZ1Qz5o*zu=h>Rsfy%H9_p_~?`Ab^(^orqi)@R5c-EMw_YV$&KdhtLVQ zZm&MBOEpJ+6SU{t|K8uR*6lsFispl}YAR{5*6ahSLv1WIGsAb7v|Qr*TJ!S}f8*rX zp!t{?-u{`K#dzbKQlnwAua#XDQ$u@SX+$z*OC5oepA9d_)4P`HoIpHlHL88P{-?*g zzTxwkj;CLqg}6?#Im_uyUZ%O1Q^ViqnV$Cnn4ae?(!cL5c|lL_L2oWXyk~!_j0CrL zD_=j@Mi_mZ^|0Pw4n|g6H`zmpgv@?-)GuG?)nX)n5jM00g9ShMhH&Ryp`GU0whx;< z(BvL%8gHU@eJdK~)aaHfsDxD=<67kBA5OekpgIB`J%cU@V>0J~4;Je#Xb1O9z@fmr zQ(@LI{?tzIq`dZOOeb2yZlKw5?=kPA5`sq|gz&mWEt^xWfFYN|mB#u>$cW?b&TlQ`V%*mf zac^L6a#tvY&@a6-D^-f@Q5^hIeb1B7GO0cRAz>$w>{d{d zp}%ZaHa}|+)FPb&E)t2LouCwSXjq@>Yts|v8oeI9MXcmY;8~+&=xFY6)1OuPk`csq1fr=z#Ra;oFxX4joYPVA{4`$kH~$%MCap-Iz@^w=72}*Wej%$WD`i?!E$jA0!-kqpNwdweexYDL zu#6BouqZ3W{iT^OT_W6Ed_Tnm+~a?$c`7T?A)jk6upxDRdyA=NL-Pv1p&OieR#H^7 zmfIoIy2V1nXS{t$cA5ydWxkZv$6ecNoy>GPrTy(mJ8b)FnmM7NRnMNbh7DfVb6(i9 zv9@f2I*9ms+skwtZ#l$JD^PUbEDPHV{(b;vye_CGDX8VSU@Y*cNA@pqPsZQ(2i_(O zTeo1aBoXHOBA3ZKT!8ttV9Y?49F-9zkBnzn2lHF~;aZ4owW+mdh8V%zXTC9J9ixOe za)V8D$sr|Wh0@izv2?m5o$&(R79aq*orqpPG8Ahr>vLEgAy-cWG$?r^N;B?JWO8=3 zqYw)p%V#lJ&v4BY=?i>z|kP4_&1L>|@mr-HI`fQYA(;j~HXX%XKpB9Bm zJl~mQj`|2c;Q%aFOT?zvYIg_=zIqi-PaPNqfm}P3&z2j}X6k3wk-$B76$Yp<%0Ehf z?BUY8Y&g&_vkVw*5;T^UqWIUXUJ6_HO(_=K zpHWvGzJXY8{SF?MGHL{<@Q7=8e__T4Sje`Wfj=_ z0|b8!eZ0T@PQywH)B06$78RM6NgHK$K=!gR|#UF03zWC@K3V z8#%t_Ajb08FDw1pgfo~wW$2FYf<6pFNU`WpcfT9(P*)3n!~PWA)~dx{!YQ{XsnHtS z7%$PUN#j;_E3%y4kc-qKhMJr|)EYUc`I#<$$Ep&i)XE3}B8&KrLWWMuv^Jh~2!V?w zX8bLe0}M^2YRV9ymk*m||AMT~k6GXkVQl|&n%t7|)QYXlngikbK8Xc~9cz__rB+C| zrS}JUtLjhL*JD-uoI^>;%^a8Tfh(7V*2o_;D9W}Df=bL@_p(oi$L)W9&yAg5h!ch4 zg{?Ba)D3>OF&H($NQ_@0V0AM>@!R>J|O&iwrOBv2U_O+QQyo_#)qElCQ{x zMQ6x`Lzu~XqDuTmm1pHgolIXj_i0zb!!K&^n0lYP{(|J@(;e2$r*rTyx$KoKRUgR+ z!;9(}XE&(Knx)5&n(u(iOc5ArKoJ;iKp7aCOBonU!l#>7uGl;=(^|~hcip>#DPQ+^ z-ln!`5`g7A_yv5JqRcc|T6HTL9jOHT`j)7(ciyHhAW4Y1iqs|H2JLBdNen$1(Czgr zH?pSwS1nv+6+rAuaEN0$N7fw#hiOBxy~D0Pxg38#LdKt)thkZ8^nX^lwZ@bL(4ttET-&mz%R=0F$RR= z+lspSY;_l32cKm^X_gf~Qme^3##8UIbfO*0O4ZGodu!;+?W7e}hcpytQ#0xe$xIY* zi__t3_Bi$0P1jSCLU0evrW6#*;FV92|6t(6>$OL|s0l~Dya{pPe~86C4z=)Z9}Sti z9o(A?G}}(&&Tf1|E#aog(r|dRYn}1^=FsRxrFVPm+Wg8)bWW=OZ8agRvwp&*&wOPc zYf_0ZET=Q43YK4TE^nP~^Qh7j?XgX(6u!eu+sJFfXbej@{#1KO#5;8->l*Z4L%Qv| zJC)tVy=Nu7^UELzt8-wOpq(ImeGborhqGGhUWvgzb~L_2`t}@Oo;8U`*bw7p8!Gm~ zdAlr4?2SUB&Rh~r<<5>Dn#}EU&ZhvS$4jp%74=Qf=gIYHjW!rsFH<^+H^;vsLeq|8Oyld zs&gI@C6bH8WK+wPw}y>h7lzD}4O+uLrZ3f;xUQ1{jR6UCw6B<;NuX;wZ_N^%=7IQ@6bl{eIijmh5%PV~Z{X(x-qS9D~K_ z!NeAK;iGT0CLiwAEbJ<6)PB5~KxXD7>`^uYxdvo+`rT-!bo~u>C-rT@>mN{3dwf%< z+6;8KelXh#&Qt>?1RMtBIE(JP_4b;w9{4l7JdpR*bO`k=D*X2JsH!)8qcTOm=jgvT zAewQJhA}zkchT*yAHrD8TZQhy7BV$ zYFX14&NC5jp{8V&E!Jm|kzY$YGMsS6kn~RGJjlS>fNWZeJ>MqwalV?~u61&*5Sce$ zF`;^=OpE+g<|4=d*4sT!JBn-$&;;v2DaYy@!l(^hPo-DF#s=&-g=OVT& zkW|}(A!#0R|+kiK7f zrIY|PnQAF$ZnaK4U78+!s-K^WI=6_(Y92dNrv`jzh%lb`vNAQla!J?lnY9$J8*gge zBq8fh6Sk#%aW~WGF&w+EzoY>uk&zww$-@C(=>!kR<%Y(RS&V5To5Rxeapd_0o5~Om zE^=p*wbA%SFBjKxeGL}BedN@3oKD{dQ*Pm68(7PW>_hHa9qY$l?-jHsdzFySH{zH? z*ClR}Y@}8%Fn(Us%@YS$m6OM)&=MRx1Mg z9`Z~sw#Y~IP{sFq4s&jN!PN5(5AP99dvW>DKRs5)+Z_J!4ZqB^G0->Z+AyR&p8c+!EYLa11Th^nKzqmt+rksDkJYtyIH*FgFeX11x%1*-JS@}IOz3tGuq)lQ=*0-yrWh3Hf+fS2YYj2oDw>QsY zqmrf*F4N(p$)~=ozkYP44@;ajH&5h;zv0~T8%+x*LNEVv+o14uG}WXXx#3b+nL&naBOFpTs(`h&zR>g z5;Q+6I3FwgLZyq1OfwNtG0Jh8EW2WLw5PnvkZHu!_>~+?vxa}rMd2v$r@JBznDF+; zF=P_fC~Wb(C*YxGx(I8127c}!!vw2kX@~bKplWbt7O!jW4V2ynFpwYy(&Qxn<0Bzu zrz4?nK+kE^v~P3Y7PG_dA=~oGU(czleLy2Ig^2U5&(GRz8&I#J|2+8F$H?%>byiJ| za1FL&4%C2hYSD1y)4#29TXuiQaI;WrqS7VnPG&Z1TivODtGzJ!BG!Wow9W?XX`Dhh zelr?&w@&EEM>-&(VJ$LT0~hv(aoH*(@1#rVHNGxzU%bve$al<2zW;eaf|t8S;-; zds&_t^HKbH!>{vfhySR%6g%UN7}McclGsWFLpa<0?I&G+@DdIqyimgQb67!QPTN=_ zFRxInTrHqgm0wjg1dupLF<}OM8P(-wSNnYajSxw=yZ07$0w#;_?^G29usO#2p!vY{ zA6JFgR@RpYnms_f$H*SH@lHR%{$nX1Kmn`17c1l3&=xCq1ym%o&6$(KgW5 zb{5S@Vh)#mFUG0g3>V5<>>@X<0Z82_t7pG5h^5T!YtVo{cBe!9`TYKd@RC#Js3yuF zoSZtY6M?!Shc~(>%?Og@3up2GT~RuFd9lzOTem_((tPam8ofz1Yl>}6a&nX$TS2sN zc$q5fk#ewi{biG499w6?Zc-dMYMAygXPoLQ!UIzc**+H9dLqUXFCQa&wVhy#hkkp7 ze2rMv{%_@Yrg)HLeye0hoBR3li~{kdk&l2?qK|-8$-NCb`|clh zY2AEweOh(nGv4Qoyti6rT||)S`(@z>NTUbE#`%dw+XWle1+>1?s&-gZvbys(vmF|0 zVIg6rWP9U@i)nq-)$@+F#z3?l6O}XK6AT>JsVgQ&stvW8@BD*v7N9)<33D#Dy z@>JZA3(TGPZD&hl+<-?Cri&*9PN0|uzOo+QfZ-taDsJ2BLmYy&mW^w_HACp~P`+2_ zBS&49estQxvg?mpAoI03i#aOI!DgMDBe8{pgKckAqT%WWyG|b5#|U~X$PhiA3iF9& z4s~T?zdf!{nN`Hp?@v_9gPSat+|HqRY!7UXTi3o>FOi)~@t(EqZA~!LBfE(?+ke^j z*~>P<=O{_Ja~5^7H_4=|f7DoszU$6Fr1(kC__6gL_VW(hJ1_m0Ruu9CUTx>NOaa_I zt}yWt1Je&=#IJW3!IeBzku^iKjT-#ekY$uon3`5OU@=g>M(eqtbrwTUuLo(xTTsKq z*Qa;@H)-#=Bwzp^cMO?GfZ<5C>jEU3Tx#icnqBX-o?0M6omn58UC1i8IneXt4%H@> z9cr>X9tzUP4$UuG$@*w)h{Gaw0%gZgjZ~{Jn1n_h>953cK9VA=_WAbX9Q%P)DToBY z=ett+(x{Vpc9;oDltMBb?tz2-Iy{dNR%5JHvUYjd`iXm>H(mb{OOIAW&*EGN-RNH#&vPcDt+3(4 zFSDq=xd*bdcwJ-J`4UH0g65i?k6yp>G6UzHtVmr zS?0IRKK5m%M|dCsNVRFmp#AzdaJPb7BB%vuC^+H9rzQ6wQNz(f%!JY=1eR8#wEp)xDpwb(+f zXlSK7FrY;I9X?2$6{c%j{U{2@p(L*tX{org#!ecc-@1bNN3w{VVj8Q<2jSSpIYxco}t8d;u#V$JY!M`}dn29$W|HlEo;jYT)U`|=!PH|Lo8g#N5R)L>mV}9H#yK0T_cM=^F2=VT# zAadVuSx{SOrLy9%-v~Y6u-W_{V0O{+CuAC4&sjQkf4H1J3M@ z*y+#F$;phwu13M`5xn=3A%pjG*~#dZf7tn&wmI#h>)uz*WM!M3KlpD9 zyGxTj(t@1q_ka((FfiAvsRCttSZvyw;91Pl;DRpHy-D1CVc20M&0X-M;Xt24jv%Dv z2gFjY&G^Wx_o zT%pyAi!ki%@;dIAUrfBhalaK2bI3QGibJOpJa-ADo4I3V+#1)SKamdE`hcY9Wj8P2 zVsJ>{tj@os+d6ub!gB^$SQ_Sz8!d8k$zZ6>-!jGz40M%8I{e^Pu=Wv&ROg=#0GoFz3h?qFk2b>KQD+x2h@IQG>1SUeR;iZ4@)`dI~e} z$7No`eN}XVMJKoU>5#DEMFPEhyH!RK3#_S6^+GLsr>*)MS|XqLv*A1PEV+=z40u~z zYw}@8MHdd@`a^~5$BjeorVxUu9|W3Mcm(sDaPhO~j|rJG^g+v=mZFhZ)Ry;7dlkj& zPC+Ky=fKJw(pE1w{C9AJn<}N!u7$tNs|;ceLWdIX9VR6Ex6~Z_a?KxwT$tq0nlv0?-E$t_72<-Gr2$;oK6JT%He`9iP#3P~tu}HVVueHK8ELU0W`N zmn{)tOx_fKVfiO z)0zp2cD+1<$_(tZ3O11AsRRs>-&dqUg?CHv-hKZTyxuPGfa5$;9y9WWo7V|8Z#7FFsvBaQ3BnuJj>b0 zRJ{*Z{X~MD2oHuVQfZ(M5-wwTR+irepSiVLOgkhREEUL;99Ah3)#Dzv@8 z6qJ5?qb&pZCQrGc9EJ^^;b9Y-{}e*~Nz9^;S`UiLv+ zwQNccaR_feNu0ZRm!*ajL2lYCH*+_Q;drH23NbxCO}jQXbH4qj=AN$UJK1y?1s&Le z_YbRqbfNSar(dw#tOiZ}%tJrl$YI+>tm@hXrpcCIfqE)TJS5~6{P%J~?i()|95K%)B6vj9`N~?AHNvob zlbCfStW)x>>c{*PKTXalfmjEA&+4){e(l62ye=l{lQ0_qP>Obb<1k!HTB(1LFi*$H zgluCfYV#em&h{C32+4hCfPq?0Ll=A;X+)0Y1Q|?qX$qQc#Z2#Lb&Vf+0s2NOLT3$I zvi66}o0%-?LuRE50Je+ZteoNU_9}=Qxjw5Z4@fDC;SwVUsIqCzhuBxprEPiskV?7Q zA~rdh{mRe*;tBo*WAz9Z55KI2IRPx?RS1^eNg>jaUb@6_X){_C}M&sd6~Lc2`Iy1EKpJ9?j{^8hf+N7vn&F2%r#G& zzX!YxbzbtP$m?9u?0+_-=Wd>mJF;31N7G&sMBB6>;R@XjGh?r+$}li6_yYEHCtI^V zGXtF{kWO6_;FGw1x}*JWO@@VSA}3}U4e(~bw!1b}fFIk5E-pkL=l)XibfnUSY0xR# z>v3A?d)PoaOGcry#v$CLT~6s(|Ht1KdLT!|&M~ogB9%p*le=?Y>4$>n7w^cK+qRQ9 zedfH=I|mNmn<95YaCFZX%b@S4Q$r4J2skvvP(~ZBDt}rXPlU`^ zCE3@fMh+0u-=ma#*6LE0L%<>GimVH(T}{lS0c;T|vE_YiuOn72L=7C-wX)I$gi34y z30_N71maG)wmFl|B|IGt1Yc9n?@`LeeLzpq3kRKBj7s&-fFJbdvK>n4wZ(z?@WPYM2ahMEFdgN9x=$xEwjk13pK@NHilVr+H8>!p zYA!nu{3p+W>oMLz_i^L1ZDo?O?N2s`~Ptk}_eL=pSE$-53k2g(Lz?COWWF+J1~usFi9`eksE4f|}nfmY{>G zM(H5p;+dNN01>}~D)Q4ogvjKF2>uX;(gzXU>mTCvLx{_N^qhSNZ-NeIidXl8az9FO z+*bp4ibRWZc!~49&Rpe!>LJot zA4Hk)Jf1G9&iG`y7^ z%n!g=GPDOeL7M#oI%zr@OtZ)+T}?j=O-dCHj)c343BLX~L zkE&xKT1zdziVfR)^8!Y)8Rfgj=8tdhZLlXPmIyrG#hc z=JHUT93y@^^>5%Nb7@>9o_vWb0DFD7POdvtFPxagMtU7onRdDyuA7X&W+VOeZ0W0p z4*xdRFuu(&^A&%J`N!ly^2Lze_G5C;vR)3q&|b^O7Z*Rivf`uK3oLV#Uf)-z&XPeRt+EbRc)|KJXu z|G18!Vm-x|`@pf%BKsiILU$p2IP5zxR5u=lUSvC5^QtmE>tW|Wd4tYr!Yj}o$3kVe zJ87J`7EHaq`!4nUm%+4!84_wtcmI8hv;~J?S|e=`?1i$&*N)UYHD$AkAJQIY`FR&h zqR*E(AIy9ExsGl1L$|c)5S8n zjEw?;RwPsxD6jKD8%AED!PT^%&DAu>!MU_EQIE9havxt7#v_pix(7sNlp&BJk?kqR z41YV}aTbu|vu+5Yc?l4h{j0DsnYX=npVmi!7Kw5M7dd%Vo@Yy}9JDdC1>c_6h39Z^ z7+A@@sp4GFA-=zjK0E5NE0%IN?9Zg2YWbE7Gu4w|7$61JNSyHXY1dcdtwbKN(u!?3kSpWOD$_lm#_Q91 zk5NH_2IoIp2(K)U4qI{P#q#g*0KTP%5Vx2#8JP<0fApOze7?e;?iK)7bnRR1s85&O zX0I(_d0?tM6{sRLAKUvCgGNlPu;>cejy`^Y2#)YX55Jd{E`$Q&f*mothrgM7 zcNrQPl|?hs5E|KrX6DH06(t}N@*w0D<>l`v=4I9PiN@s0_5w>C%76Ynleu3eRmkIH zlJyoeg5i&zymEcGkWp|tJc{A(U7Bxt!I6G-wl<1k`uH>7|AND>oBdgl{H<{mzL8co z0%H_~;`Tr?(sY=}M^`ekvo1K{rQTy4Q z0?)^b91;4RJSJN6R8|{1EoKJ=O5H zZnjt4O0QUQjP!r50@70m7+SUEm3bn|D`TH$=r*3JD@C^USZb`WMb8w)_mvnJiqn=y zijiDAbU|-Ty>m3+7T@m41I9MLTp?{tdj)!8HUyXMjq+k+h0>H<82)u^7T@(m8&v3} z&_i;Ta+eoU84TJv7u7u5P=(%Hs|-yNeaVAeVL@0{H~ECI=Ea3C=Lb_vg4(ROIIC21 zFZ-)fJCN%e1})dF+8Mlx&iO1M3^numnnk*qBk9AyS5savb`X=wa= zw{6P(;nzg?@N1&?DJ1wt<J~6<@cj3!RUdc&cr^wtfcohd>ehDMZ~(FPRNlv)`aZ9ZTNb)tXl`_8M~>VTp!E{ zIqBrC+tI|HEB_J+@OC6H?t190wLP162ND#XgX+;tJ%Qk~yQsQJ5Zgz3M1{El(Wv#| z53ek=#tjf#P=>idQ2k_Q&>H@EOA6wNIWR-Q7MM|29Vh+e{8&c;mpxij_C-)H7q=`1 zPqF4t(^52mD7Ls*(B!WMk6tZk4tI?>TQy7DJHsMt~fN>Cpt+fb}gGnGi>2pgg(HH?%1k4pBt+uc6Im&=oZGG0G+- zn1jY7ZLLL_c0x#KkrcRr>*?~a@Xg7>?!4~GK2HN-Zfkd{Q*8oyg=O95SrVC&NJi-o zn2HaIqA?8f=AXl4mkot#wCKn}+rt>?w` z@`>VDQ(!5m8-Me}`W!XpYP~t~Eo~rFY7rSnNn*$;rIUC>!zNU<@GkivftQ)LD(c^) zJ7%9pV0!)PRG@Na@dVNzA55*O3s4=iziK+zs&{}nyLKXZ09+l+vOT|~T3vH+3dk|6 zmxj2&()Mu|z>XU+X2Jk@Csnh~*VWnToRc;G^B#C8NShr;kg=v(Vws~M5?}-Hu ziKRP*dkkUMm&tU80B%{eoWj3;rNHY6N~iF7e8d5G%432912Oet{!wq>vS)APf6;UT zEdQ*wo9R|sJ@ejZ@{g0TP&nHfz+dT#w|8~p&~qk$Z@b4LTFYMB{Doa-#x}ee8B6I) zM4)*uOSN>-q5rZr*pZS1z%?g+YkXGx*2PjlHLRcia6XcG2YbqYa#HTi_L*y&{A({S z{M~jTB(3Nm2X>IZUBmZgU)-Fc<%#w|7H!|d8n>YCZ_lhULl#Aj_(}4CN@+A<(UX8Goj%?yg z(GwpHV*idUDfyNgPg$bDIi(+-_?Jr_J1r|Iv|q{SPdC=(MlAhk_YDX zmwvx4ZR>mfo5p#^{zfnU_IF2YKzRo97t-{5j^Up#^EJ013MH-IDs|9wGpD+tAkivEy<1dZCQXFldn#dT-!l{Mn}BAMnm)^IDq0X(B>UbJ zq35Uynka>{hwrq8sJw8rr#T&#`j?2KQ-R>0G9hbyvFwF*G45Zp9W!P}QGCgRk4X=_ zj(<%R>_24@*s6Tl0wxG6-EFFFr1uJ1M&+JeqyJ4Cwmo=`WXnGmSo}1Tlx}eV!ryV%zH~l+h&|b_-TI!S_2;BY!r4*)^MnfNZOe;Y;64v}@dd&s>9yXjYXREA z?_Q*ZfJ8~Yb9W5*ReucllaKvl>xv-mct_7nk(>)#vjCL6UEUUFqi}5M%MN!ej#bmo z&P485J#j?$s0_IA-B}`nXf=4_reef~-zW&MG37|*xJvjxVo3PMwB00~T2AWsw!HV8 zg4jqgq6f7x7?4M_F%bU<1%~MFoxemMknRYO&f!F+@*JQ>!g?G#Ni>jR5KV5UJr4ao zAixjz+jn{)!f)_9boyqMzWjm`85?1A%HIBn^D)pWUG|-7DiTh{Rs{6d0U^r!>|cME z&p%Cm`x#aSwP4Zk?Wa}%J#M`yGA2@ZjrB8BxGjVRmu>s*$1i_QP1}s;Hrw^`a1W8p z-y%i+ELijTWJV&9rRlc=talR;2`VU_v2;D^tHZPj+_Ae>)4UOMY+XGgeEAwLd1yPj zBI1(0Mit1potNt6 zk;jY^05{uBH7%&E6Y$T9S}5Oehj`zKuVfED@Qm6UiTV{*(dKyV5H9e3@j5U8VBmif zXZ%RJ<9>W}Rsqh>k}>?^y<`H^{E?EZOp($V5jCgFjwhTOYY3Yz21Kc$e+AC7iK^EJ zOGO0~>+k1-V5a!Ik5i~%OA3BjsCRsWa3B7PmJurQxA~zkff7V=_zSo^s>Sxhc2ix8 zzD?*R7ew9H$nhcmakCh;|43uxnY7hNq}w3*|0{{DEP!QEbMw2UPh^kGhreK6Vyb5Q z7>{jU*+)CRW{b86e_eA<`qd%x4t0F?D4A>90}wUFpkH)I^%DU9y|sEvA=NW1RU z4QT;6XRscaIMAYb`B1w)J}`~GnMfyT&5BdP3o~=N2Kqv->0X&b;bM{@tthyA?I=nv z9~ju^@93XX`iSG)Xm!(nSi27ZPel|DK3=V5Rgbb~?tAf%GOG7;c4;6nID`s#?LNU3 z!1m*C97~H)q2>_whq)a^5zF8DgURZ?9f#NuL%r*7_VjYOGlzm58TeEy8zFHDz=A2+ zGE*D%VQ=k2bAfbQpU>X3mb@x<2C9!v-^N{;GDSmV0Y^4b|*#XZAB5q{y6TZ z87$?_3Uj~vSy}NBoa#=~;|JHzGjIpj)e~z5|Xqgs#8_5=UItLQxzb(hO;H$f;HmI!S zIhCs0_LmL-$$s{T4Vu!tN_w-FgJ*-izC!JJ2U@tz-B$*wip?SSPJg#Ng00Cr@~9Xv zWk)*5`8*jbt4@9Bx90H{aXmzP>Me#v*8B}STFD$oEzX|54#1mD|J1^Tx?y?tH@|~f z_IvR+e}`FYdG$X;MzuhGd!ArKs0Kjqq4g&ita`Ezb$8h;PJFerGc6H@Kz&qz{N25+ zo~&FN>-bRt(mw0*BO&KN%d%QhIz7oDTCNq|=5)QrfH@*CWf@YZZQfdA7O2jx4J7P3 z&8U+MTHBVb*=OeK1W&o185gFP^qLiYRa# z)qrhvzfgFqG26WRY(t&I!ouKR4PyUUi=dOO&0BTFSXzYC9s{$V{NEXB>KU@_h<)GE zzv&rVEb2U1*shmEfjCGEzVar+Z|aFJ1GRhz0$24I2=o@n;~7y$Cp((VqrE{1Am#b8 zlXaDC&o;ByrOD2pqFHf2MaH=PDVYx)%4konq=ub>p6pa|XeXYY+r)K@%=6yB%Efu2 zSMlx=o@}Z;P6qR=FzfO)ZtT!$Gjrlw?z>)%G0K636E)|bq{?ove90#AM+YI$eWR?h zLjLpiip8KN)@z~0W!SO2!7T~$fsT6q`CPY63L_a!a! zB)%^W!Iyg>wwj}YC;7^)WIXIZPp{~uAp=w4(^SEEQ0iV&vpc+j!{a%aC=TiP7H}iM zPtt@A1M&~$MOfvA8-E^Kl=bK{zVVrTGJKrA8n{Xid`@aCvxc&$K>i)pnZ{U`a9PaOF(oV6d2%djw}O}AddKwi{Xx6n zWEP@B(f4+L-Djv~Q$YL%z#-vb_29{*y#AH%OWn){cw-o`%R zyge(}`~zGi?)+&=Jls&IF0kA6XR)`QTn}6nWA$c#<%C+%cu0XR*I4PfH*_etzhmST z5AcWftF3B5`}w1LDP-q9FtHN?mC*)Ka!|F|0GI8w`maCX+#5K~rPtk(z|7>uSr0o3 z(Lzn&)4olN<_>s0F+tU2w`jFBpgYU#@l(w z5}9={cs7v4gy0Yt@iJ!0qE-_fs1AW~&@J9cWv%9M4efbGu&5SV;d^5$2}SSk!3w_v z)6s%|rW*>nr`L6c1#M+^i=jc__4~94xQi3TT&shP&H&xS8PP@3;5MI=sd(azb&54> z-6*U6PKg7aWCAPO$$+^pP{O(eNUW=E_YIRM_=RQgx+`IV2slt1>rDhE_(r3>j@)|o zwy!O0dIf7n5=M_YsDD3b6fV^`3b6KhU=nBXMz%3w`Dh8@uvGXD8iksm+&$d+J0A9e zJs$E1Jlpcl_Yq9^ftdEupCuuA764Jw-M>t&`;8To9C&q_R+o$4{)|l?aU0_FgKme} z1A6A<=CwTie=J}doz)a1Qa)Q4U79XPFT$&}aL+yw0;+cB!J+tMMwVhu&DU|)k-vD! z?l=kM2kId4UdjWe?ctvHaJkR@dOm1kT8*yCH0j!n>C133;ga(Rhg_v{1OC?Wa5Md) zfSaFo%$o&HA`!R5UP$zTcqgIDVgbHHHbyUQm8hM^b1aKDl8E!Fk@dy$=&eUL1pXIK zvrOonY=Lv?1QQBC8; zN?#<75@{n?=#UArmgTX=5mJ{hY?ZFbv|d*--sj`})+n$p9QF^@BhuJ&zOO(_YE2s~INY!iI)^C0&(Nam^k z09e_}sQdw5FMY5cznoQKSWVPMt!D@KS9ee}Zf#5&%A}@t+DApm2sC%a+qZh1kd%v$ ztA7E3JBY=X%(5#ggK-GeL{o@JvC8=M*ytQ=Oe5qfNFnm=uzzJqu)q5MV@qRanSnznY{=4k!> zRv#0Cu(u|mBBA}*-GpMGtJEME&L=G$%SA^uh^0mE9V|N5rr*XxX4{z49YPkml@IQW z-9>pV&E3alTanf@cAT@P%J$o zp(>nq9LA#Uhgl;%cNcAWKSuB$L~@3dEpdNes_6EDrtg2cvJgI%lg+vts9S~Aruxy> zcAJdU9_I4YqQ!^Q@*-9N`<{v$$?u0v<3-c6+`G8pHlQp?`S1sf>@;(6)}91LL3za8 zN(j^8L6CgZSduZWXuKRX0tvnjwn~TWW!1p1yKw=D=2!0&0RcP1h6BAN?=O>+S8t2^ z4}I@jJARLeffpN3;xE5%DEhizE^R$2`sw~Ph#o;Ojp)$K!d2UY*`; z(R~kc&-P9-%}%;!h=`ct{e~VyXrSQzXmWD4FE^71J~bwEVv0$o@}N#x1chj)Ywus& zR))Xw>&{yT-|P23vrlAi-viH9*WW!?uWG*2=(PI2nF(;b&~Nl;F(N%HHD9HQ!S-EU zcJEaj?|Zr^%{ToHyjcyS?|W`|KfiiwTHLEJe1Cj@+iEv_dwYL%WzZoQ{CHgG>anm; zufCNcBb1+YA|vJd>dU{kQ+<0F+8OigIfX*W4`b&qV(0%c_>LL7tw!aGJ($n&BDAiF zrW3gm=Up+lHCu}5sm$pi%_-0R6G7T<$++UGtNT>7E;^z8tV9-;_PlXp^IY#6?{w`at~{BOcuPKUp^{n0(7GwXcSo4dW;GN&UUpWl_N z)9&d0$&R~y<=n!7ePvpIv_7W;<80XMkFdwu6y$NuqQ2y{+M9c&Dd6EhEgkEIHFtYM z#Pv{6<+i8YFF-l4=}RRv4Rs~QTl${EH3=v=0dyFfeHu$jc0OCM zfrDvN;g_k^K6%zT?`A59UGNK4r=vcD=NCPspC5slFn7&M&E|5dCz$ z+7HE$?Wy{DW$i6wv$FWbLskFDdOmTh=RNwf5DQ6obehu{9rS05E)1VPNrJZmJRZV- zubr(fJocV3&SosJlM`$*Q^Tu5L0Q>wn1z>J^i-l4Tg6H#Xn(LSnmnh?g~j}`J^b#u z!DIo#+kfL3ZW3k@$9*O(2Z`B^rmN?ehKLvC$2;9s^I99(v21M(<-zBs^J_2yfsJKO zGA60mETe6sS*i9vTsifc2mYAd>+`G%b)x-EcZ?z-(I-&kn_?Sq=nu4;%-HETJjYby zzw!uly?P7ux@y`K+xO^u{B5~;)p@p6Cl=^+G}&WlaQS*xUnO3)4xVuHeBjwU^tS`d zY$RA-Hb2MyQ`*}0s8a8w@QrU;8ST`+huczb`rKeHP8yw}a6YM?002 zbM)f{_-F3B-t6?=b(`KgPM1-qibFUK?9U%`F#W#{_vDaDc$%+5;*6d_ldXD|M`g7h zqp&`mym5W?2xKWmRP8AMU2WiAL|nr&Wa3-Nl3|}?(YFlnA`EA zMOxve1p9~I0Kra>lAaA9wGQV=2W*;$yy-ulKAG*!1gf#u1??%UH)Qo)r3NUrpCWWz z*az&|l)DqJtsm?2F4I~B2{^1BcX*KGsn6FSe#5R$VSz8vZ(pxU%j&NpNh)Cu9#x}_ z(*nEJ>ck8yc4js$opN%98cx}9lMkXD!BX?xe&+5=IOVhyrqY4QHDUpL2I4ath5-MW zl_fMKHTE~FtzNZG_3r-KYMn||9k!(^>6#lBJfMmh{$g0xqhc>pTcoNO{KaTd^uDOv z+|MHq0Q$O*SKC9Lh*jRmhjpAqTgwzm;I6)xs9F?B28L_PP)|YqjT8H zD6xEq-Gb}26YFJB#?(f6UT3;D7#!aCyyUMdJG@a7V^J#Srr7;OLcV)d_MPCvb)?82 z{TkYl1vBB%_zt+V(p0?9do^^`7jFB9uX(?lqDfnMVPOs@d@Ti+YR}#_yJhX*(F#ct zjtMrOD_+F(Jr(uUN|pc}k0cOY`lwH}9j{{5n6g)190*&GKn<8p?r@^YF_zB<_l~!= zP=BWTC`hXSfVp3V>=+teSBsxd<|cE{AZo+xs)%k7w~yN<+t1&M1jz-gS)27I(KXMb zaV>;B;a4cT!dD}@hcbKHgJwxuU_)H{?5Vj_FUSC_h#YoY+PZDMcx~LW-;D}=gamb< zGf7P_5}-??6^C>U$R^voX~^Nqk0(PlgRSxLxOwM#Z5fUbsjY#MGH@xd-_z*}eQ-q% z*lHLv&DISy1Nx3xU31~)|vwyYWSEkj%>fa|6!YUXuHd`j#A)t$f+#GX$P!2a+Y<6zBdH^g<9 zw)r%B@D@nFA~Jt!P9_`wDNXQ%$BioE9gr81Kd5pgru5#c4&lcH8y5Wr5W&s)F?pZ$ zTZ*T&-$GMuYNMN{*>{k-HrQh^CB!prQQoVE->a((YCmnvp5HXC($Tgh>KLkqeX+UT zV}AP{UT5WV?yxH=_U(m z7yB&cl6CWB2TC_#KEv)OQK}YJRb9kIonO+*W0DQ5kry`@1_(EI-Yxg7<4m7=Z4dkV z1)PC>)KGScujct(XjSv7+rx1UwJrgsX*q~y;>E6h;UaZkWKM}l#Bv_4tIn%2qjqj{ zE3%k&7<8qxCQ1Oa#gbP_Ld=HB>Q9A4nJP%T2lS*b(?vEC$Exmq-;0At17IykTv3*w zMI)pA*#7XHNhQVL6kfc$AM#9=C1;26MA9PxDtX88f`ypW5Fks z+IPp8UX=1-K3orIpM+j|wBffj5ti3~N@^gMSShR*`zrc<8M&a(n~V*M+|V@PbPUA# zW*b(Z$;?QzBdhOdDnyNkb7*Ijyh!P5j*a7$F)~vVQjYSH3%k0tapinzy)i9e0_quF zTixqHpVl`pOwfWV@s{sq@@F(#Z%erv?q1Ww@XlrQkyWdK*v{+{On&1yC9pE&nkHFL zjCA7BVY2-_Ew7meXdKkl0yY@QxLBfZ17zr-O?mXYx}FfG^voI&nY z-&Ev6;cJH@d02yVE97W(GVrD2rP%s)CFR2)?>6)B4bT!Qm?V?%OACV|zhGK!8wcRd zznmI}8bj&%=s4kXOk$8IB5{BQ5&G&;)v`b0ye(l{E*h!ep+tr4kkC{=x{KlGK!Xv4 zC{}C6w4k7mSn~tje#yo+SzVT}SQT}ol|b1}+Dlp8NOGkoCK-7jmU2mAN5xzX)1)XK ztGN_6*5tevms%|AD;@cTo0b!^Pa)!CE^su-(L^l#ir@aw18a>;K=wmdX7G|cW4aM& z$p&=JG^nI0^65fStE^9n!%phnhFAnDDN5_Q4kgj;-kR+LZ5v2y1}~gsfoBIT$9mu= z-D~i@wRwz)xTbjIpa}6tW%b@PzZ!ud8p-3UV%?yRs-xYM&Jhg?xtpj*8>X{x`;>@y z;$GNbja}#MfC3o0PJ-9oUr6-oITg3MDY`y%^9o@lu~$s+`;*;kqBx9vTT;2lcv1}& zLbWv_^AoSFuP%U|eh3r)ot z-^0mu;(Tg^%~~t!|57k!AiB$<~etG1ZaC5ymS7g8cjzFX;&HcV$C~Sb-UAN zse!_1V?gP62<_zkTI`HgW8p4=>Wt0Yys@!#)qS;0A@foAc1<=ar|n6@Tp)vtbS|!S zJ*An(`9}aSk=}W=M>SKnFoj4^w5WRRm3gd@$s=0x`n{%oX^}2`pO!)k0{DGNZ$FBc z=pLQo)eH~ntz~fKr^*h|IuolXRv|uOVi9yI@g8SrZ}8o|aW+6zSPrB5;9zuGMhMD- zS&4RrX{N!H^CL#vlSNnAnOeC9b!lcM6f@}blW!v`rEmv51ht8h!z(sk2QL#p zjawZy%`Mm{fHGShi;Fsmo+60{x|Jt9Nq7LmonK$fRY=3ndA#V$E5!V%taTyt(n^%S z+)_3WgZ#ia8q<_Ml1^+c&b0;6c-_pF?ibG#*lnn?2VmxnY5L6t)QzaymCJG!tR>ix z{2=j?R2PqOqa>3{a*8-)OjHNdZL5j@)OP8%dJ3S=-~39q@AhE5$+FEWFUubeJ=Lf_Wrzw0f*! z;47efa((*rm(bkl=(-D5_FXkQa+RT>Ab8O<9#|sG-+1I%Z%p!O^KitBfz7R?`BQtg z_d0!B{zWEo&_-9<&=9L>&VeK7V8V7$(^oET|c~Tk1jo1YV)A( zsXthkKggIC=V|m^cM@=QA?F=C5;(42QC}K<)>{&Ic-2s0`Qt0@4nd#E20f%}S3ZY1L;tn_O;q1^5Lqj$4D%?!@ubQ3$ z?;IcATf(=cT80Dp2jXTaM}fAoKqV^r*lKO<&ZW5n3^hD1 z-jKQz&mJU-+fe3Ub_#7`Q;qtM0d=&DCL#b$UhIS+mOvF~py*B8>ROrtgIJ&OJrBup zMptq7smh-&I}1;*m01Nz#dU2m&vuB5o|H#7y!pMo^F+rO!O5SHi;v%%%3o?qXAWR7 zm%Fl55z>2Aplye5_Scngl8ArF?cjUOt}IA&_jo}c>Xi9p_WI=BYi#JtiL7(3gqRPZ z4{xZ~-o?`o0qN8porZC^y!|1w7oJ-23Efsmxw>?4r@}Jjs8-0=sN#eNygtyRip%Q2 zciwEo+an)tY;SjYiPlf}v)WV9RC_cs4EFVx7`Xmc?s-c)T$o=*f-|vRWWr32a{(+d`9Xm*<6l}Y z@e1MS4YdVy!t2Y^SU?7IkRNlXxTH2ZuTH{q0lG}sRWVt|nxU8jkFOyA^u`Un<#p1y zE4k1Om8V(f(#9!0j#IFJC#HaA7HPdhbzEIYMJ)0ejAq0Fxx<7O8A%nhWHizuq56gK zLAl1Qp`o8&^UiiD%qTJ64!+RwDqJ^K)b;@6PyEOW3izpiYg;lS9tF95ZN{yRS*| z@xBe5I#e&m38P(Kl1^q^0y7tVt5%O=#}?dELYr1aH^^eFdS(|L{Ua=j%}BYytFBM})XBXuTHNktNC5x4-AQM7=p z&PKnOD{xb1T&!1}6!v?np2oesbe_L^yvB2Bhq6~$k z4suH25-BGNayGLR7-aa2Ug^y>=-O7Iq#zv~zC7{{OKRv#WuGimE8CkV?>yH=taG5hS3q^1HboswJP%F3!NGhx zTQOqjhbdy{wZzs`(eS&W$|i8E@-c&c8L@-B??RjSxPx`t4NNpxq&6S%O#oz=RoNIR zcc0y2!~|Y-VMRed7SnuJ>?B1I8PC%%qW6$qT9GSeu=<*{7v#6!YqM0VY8xjoA;5;R zv*0micIYx~IqNc|7;yDFLTRbF{1`n04*MHTi#!X#xJ93&o zFM0lJp(8z}4m7IX&rm|Ys1u!}RIGN#<=;fOMnCbaJPf;>PsW{Xu$`Fq84euk2gFy{ zxfVD46VcNT*(yu;k($?xU**5dQTWDz0bKvbz^dN^$sY-F2m=QK1rD+0?KG-|Lk!N4h62rv*3l_>5)9@Ss&x7i z9jp6%l@{mUQEDuk0|Wsi>e@`S|zp-_zEkO z#|Fa19Q5dwGj?*-pRWr;-z^H0(<66g$bomJ&w+PkfgV|MVjF^Whj)E5Qj=g043nT| zx+A;Ik$-*Z^w$l{Iq>d(9c@0*%;yCYj5`wO4&;WRzkFw|Sy5OhPNZvq_3vn-p|y#V zzB(Rzl)3l*0tV>@;IPz)ZJJb(xrbVtzjrkFUh5U4aPO4AJqee0`PV zN?e(k@|7Fr@_TI*5p0=nxERwAs$cCqbFQKgV<>9X(Y9!w7LR*Lp{3~4*;Eh1Zhk7M zn(zR;P>yX$)<&0wvR#|7tjt1C0cWfbPdHwOa1^TUP|4L5Mz{3KIWZ$Su9LWXdPTi& zmBzw5UG;Hw)%$|Qt@h^y3onjid%5WH!%&Av$GCdi3ib>0f*Y$u^m#_BX|Ki?sSl^6PI?d*eJ zNJ=m}$QV=4%+zEAq}B8VNYtFz>}S8pQK+R!NY7RV?3RXld1;tF@KigKF^)NRx&<74 zy}%?&_{|9v8cVP$Nb~vi{f(OG;*L@m=VV_{*N~LA*QPPyYd-Nmo)ohju}olt29xS z@>(SLG(v;n6WgT=tAUNDUlgydr&?>OpUqy|-t`JemK3VvJ%o>GZk=9FDU%;8&FoLV z(0x0YQ2mLr9+v6y_C>{Re^l5_-gZX8M5Q{>rrrA@QYyydouKI<{P||a=1z1cQxomo zknyj`=%rY`Cgj4~uug~_8ukuW5@||;SLAGSrM7!BiVE-TcNTqlgBIKTa_hh!Jr5E% z7n>O~KR?52IsDw;>44^9dKJ4~-SFYKXtGhHRl1e$LySl9b(vX6uw-T)wJ%6EYoCNFe!d)k}9=$H)L^;@UW8js@IQXv}#g&)U7GqJjU=Gxm4np&lh z*-nCwq)N+2iOblXHK{x*fy};6yCoPCWS*74{B|??TZ|Ei_bs(UE^LnQAqDt&|J_5iM%)LoPb0L76dxb6 zz9w)-H*Jn#b^dNK{X_yuZ~(fZol%USVwfb(oIg+ftoBW(X6tZhpA%@DJ2=(e(aF&I$PG6`=}iCN){*-pQ2AGu!mNEwMls zSrTRjA+rnI3F?y6WU>u$^Ovvuq^ld=O_~wXnG=76i zL>!QY(JK$@Bfxapd$xCTe16t{co%AuIkgcE3TQ4roS)>a)FYYsu?OTWt7>U%r5%wg z%mmSNSTrIUeFTU_3bJGJq<9}T{z z+uCcBs7!bAAf95R=Xj%J(AVK9R0ZO{q*7 zWLr^4Pr67SyN$E#wa~@~OB0V0zmF zn;y@1Q_*i`iLUX#_4PL?d!f_uPu1|wr0mD9Wc6KmGnT~xa)wrMCEpju6ijozT?1=1 zQR@eU!zN6XRd@*qNr)AewET~(gOM;{AoN|jv(5Qg?2jtH{d`I-ycR+UO%uEW~v7-w$vgiy)6liuvn5+ zR8|}AO^A0C*TOKZdrsNo$9wW);EKt}Pa@kI5=u&49Cq?D4io8p<_{uTfDe-QG2diU zIMf0_cBO=S7Fzm~`(3Ydp8^aAWzl9SJg}HPIMZsxGvTmZ0gStzjLt+P`WLM$!!i(GbEnhp2_iZ}X8U z^5O)NB?Y}-65idP2#pS;g&l_{I(C4$fce%!)5)g-OiQX}daGjZQotmGpufb-FoI=} zvX%!|C-M5&Jf7N3@T=XRujU4#!!q<)nF+gx;J4q?-XQvEmf)Wgj>J%gZ9P*1BAq_V z=qH>iTdpk0m$_X;;H-~qGk06`EG}o>776hy;gLG6P=3eDa29B-Kzi7`J4Gk%@sO;t z+R<}9rzWF)D2HylixaGI$FSF)&9p*kbjT_l;!ArZCVjpz@EZxDML{47KPXz(rHf0? zJEG?DNfdJ0^GzF86CQWnGE42401HOeu>UwJ={~WLm?P3Uz%u#ziJCnkv{imgq*UQ^>veF*HQoc+DPt6 zyq>UzN}z9DGnb3jSmVKQ>(povkTaxDR4Pc^@}8mxmbkmOd>yl8O$B{OrNhy2PK8R- zOF70KCKqX4AQ!M3oU8T8D%bxLdTwdIkyHty>W4eTE1i#WDl}e%2g2@Lv*9368DQ`H zH{#@77rPBH%Edd)XoyHPXIH6F;2|QP~Y#s9lHbmc?m^nG}7B6Zqx4)e9wBhTc zt|!hB_6ikPnx7vAyOVSBeJqBoZ%^s8Vn>f}5Q}#N`)~Js&$4EA#HlU2!$L%K4)L%5 z>;*k>5AlcNkrZA`$q*Cv%gD+4i0*gM+NO&q_$%KFfNm|XI8O6MXot?M=kAai1w|!d zwV>@jd*E`a{Mi)?(OL@WF{vAYrvjW&=|Rzj<2KK#r~uiaD}*G{nZ=@eDC5+MV!Uzu zkY+qZOUYATM%h{|cv>JXyup&*{t0t#&rOK3*pL!_yNfJUXrb1&m-8cTVY(2q;$(h0 z-DDOtn3FtWI4niPj2VaT`xRBQnaSC}m$wI~I2kC8Z~$&lFgH?Ct^~Vf9y6gk0tQ?S zx!EZL00SAl9LYj>{I?I}9l{%EhaWB)+TrhJv!Zg73No!W_rblZ8oFq>HS?2iMnwsv zK9%}8LJyY-0^%Uc{Ejv8MY6-X&u#jyn)X#7n1N(woK}(56xE9%+2t$KrPPR@nydSf z2B&#h1L+i8PDESo%zTd~EaJ%!^pJ0Of1S{!O;^<5(twGvZILa%KBL2YDW#KM5+s0p z<031XNkv5xtFBeU4Lg;nU-R2|l$-=3;iG1Ys-VU$djt3~cp07^wgWXtVBmuLa*xsw zag!aQipy@CzD;E?vy*E`4gNN|Kdl}xQ(i&HxLeg;I-HKJvBf)3Y5i*U6XiP7V1K`6 z{Etb9MYaCelhwA4H1{QVGnlzRhE!W4QK6w%aQjojWqqioYVC5vqa9~&M~J-h!Td@+ zV{6;`&tH<>$Mo$n4U85Iwg?3rp7M@g3XTx5N%k^VsIl2(c-yFM zbkCGKwvRbV3RKqV+vY=e+N9R<6n}&dEUKovwH_Uw)zgyNwz#)W8d(T>K>sp)B(1ni zvZxtY%y4gAFtW(x(>nlim~-p_>(cr3%z7A4SpE&iB4Mp^+%<}ry>PnG>a zTEUsjMxv(QE(ABC+V##te&c&46|$G=Jm$BtAVM8KsJb;$Z$u%Czr27nn~j zzI>eP-kBdnUdNF{M$p4w1*p)RWTa66MV}n zb(L_>*3Q)VSU8u+dIU!QIv@gnwP9%b8sa^ASPDPtSq-VOG46J8)I-=7$hcqv@IKQX zBkkKuCBj3F^_v@CnPlu@GG&oseSVEIihiZ5G^M8+WiO=)Re;?cOEGR;P6N!E95nnM z+C8ZGiZ&%~U7%EJ4%VdYwyjhDU=i(l5!vsXYNhDP^eh?oYD;hO^Az!%yiT!f`hYNI zRSkp$Fum`z>(F36WtM3n`2w{R2ial5-XmIT`Ad1WaFldXp|7UkLC~e)ou8D%Y0j#czCeTE~I)Bowcj`*&(Io&>lNNwi(`Qqjb(F(W z3z7iOrUvwu8h9~lU_Yc(jggj&EG*yomibKVuUtbEdxe<{7mpo!fc{h0vW zCn5d!dpRpv-P8HqX5VJ}XJOjgD^CM~m(@xAv6mN)u@~E5SI54Rg1fDFr`<0hncr!7 zweKDIr&eotv+osK6&}pg%3g2_uxy@ue@3|4SgLBZ)g#4)X5W8dNRp(4r^R&4FL(@-Jql4^DUu-jA&YwB`^S z1-C~VSGW8g5%!Nu3G7Ep+w9Rj;H*A7TK~Dx^f!9TYY70dM);mbtO#`bcTHlw{%gE% zNCDmdQzykSm$j9xqW)JaSW(@igKSAA6tUzT_Y{!&vvERWW@n)24)7=M=0RqLs3d@I7A6 ze&k8BO=+>>O8VpU_^*756Sf<-o=f$Lg8#bm<+CZ8Ncx!R%~RH}de)V_8Xk#1;CKg^l>A_tAn;aT zkyv?KS%DTkGlB5Up33L(lt_Iq)!U?5^+*h-0iKJA3P%L8x4b*2!Csa4nP6Vl^Ix?W zOqriBj<+vt65$2#T2wYd}=RN7^4CESp}<@ zDnU45ZLjy4n?eQbTFE#u63kzD@gE5gu8MAtHEJ0D-Zd5Hh;=IXDZjdi45S8qOQ588 zH5YB21*ar;N3j$rArV4nBE(=h8t0@P^+g2|6%oHh4lGgCf1}pXZc$n|a9=I$A_ti{ zA@1R%&O!Inu8|wxVe3vsm1$%ymVUDPFQRZX>wFL*Ik< z_2mv<(D+t&NH-X-#63TeS>Ec>Ui+BPUcF$^Ug!oV1+|pXVz_8mkg`<9LeGCPocm=s zD8i;YDmGjt2ccdbuGt*S^ejUgfa7{SejUh;&a}0cS~SLGS}4llUnwQDx$Mpp*im-p z0K_=lUxVZKXzUy#Er;M?;O)}m)rqbz+gPe>ZfvMTWB4+hZ?LFD%m2(l*}(rrCl>Kq zp$qsiUOF{^P9^%JHYdcB0*I?R;Gl5!nTaUgdW2| zM6Gy`wmv`P5fcXb2{^mhHHNM@6Jr7zlnGO@sOSrVwzxpAd-33EbxV`ez@ZHbKW_sq z?w!z1h$s0@$Ro3@{9hm$&l?WqY*aSkCld?Lx{X{M%wcPIn`)=;T$P~cbfPg1p%1*P z72Scm2ku9_^96oMxoctaCKcSw`cP6cig?!vV*HG=iE5%*ltbM! ziwDTO5oSyRdxSaC){+$JXqx~kc!XoMp_vVdzRIFeS|Y1NMPp@?qC`R5y2JqBDNj2AZ?Y79XS z71kO_f&H|g69H(*!9KF9+g3b$+*!jp07KQl@uz943jre)7i6w5ic<(7!#lDian-G^ zz?@sY#`xmt;EJLQekw>@TTqsQ7hf=r>SWNVRGHVef+yUo+x_(W0U3U8jSt={m3hzr z?ah4NTw{Dw27SR)Hpj^h$L|2aJw91^c7g%wqfc-37T1~pc#V-gOIYpWg#)G)^w7s? zq2PQ&8;0-hYT0|YHXHrr%L8-Nrbor1j4>$4SNHp{BzWdRU1Y16~^XVYJmI zXH`{5=itinkfCZN$KuLk_VsWJ&+lxO%KC3+o1uoC2{mjQs9}en5R1;-2Gq<4a-%}u zDpP~LRpy#6y3=h3=X+41K}N8+BY|_e7d!cauM_FB33)N+es+ zqgr0PvlG?1^$suQjL(}lT$GpY!;?-esBV7<%rY(i-Vi@0(gRW{u5svbW60)oAB+Py zRxYUv_r9mJnm&zda=2MOWG`E^nw6G{V$AlXZee(7qT3b=;xOv1=h?5#_`{=E=(wtW zT*jGdJhfOuf}91`#c%+s7>Wg4X4#0L>rT^W(m;KOAkxCT5Nq*Oc=hT)Ih=`i8oxxC zLflYGTiqiF6|DW@hX6LSaE!69`$CVVQA~jK*XVo@gGhV!wz`7h^^G_NRNwQfbpgt% zNYW1kzHFdjoG^L?>GvNKVlV=j;&OI-bBrXu1M~R%-4)!8N{OhICQ+1!jZeD=N6`|p z(Z;&8Tmp38V5H-@>RJJdhaUIKFcBVmR6sDyp84a)4X-8#m5BieQn7a=IC;nFOtR{O+m>T+u@LHASpZfyV}Ac?RbhIOUDa_t}wXq|7krQ@E?cGh6YmyaIk{`KyofN4i+#6CkN=yu<~5&>?}Ya z5b*DcD{o?8Ze?y`%3^0@N-rRQ!m8}#@Y&Ew!N9@T#tHgd000=euJEstu>E9#!Ukmj z$N1Sf*jc#1KoF3e6U@Z|1_3zP$l19$SlEF8E;eYH0HCqd*}(sjxbk3j5SX3S0B8XH ze#;n#xrpC4orpBy>#tu%l4hF1B#&*!nlN?#)?Tl@-jP2}ESwszyhV8oAZB&Y-r5(|ESoU{}}EcWJ3*`9m+WOeAvN`?)%l(hR{s-A0 zs1bv}T!8=N#X(>&3l}GlgYDl$ww-~aw762y~I~NBz2*l08#Rj$Zzk&AOW7yn(;%EEET!YzI zxB*;1E)Y40jhzL=&cVh(4pjmy?CcyITwrn#kP~X-oS?r`*Z(`%2LFlnU#ZX7xuMRB z11eAcAe$Y`%>n|las0a)?f=TKp$hF!`2Sp<0f8J)fLuTzIXfpi3mZEaD$0NyoKT_4 z!2uO&Tu{jhU<0xLjk^A?=b8=hr#@rV%-|30`cX0iu zJc9}d0Qp}%5I#QEf9%ECplufy09vu3SpS1;HZCv=moce= zvjD(gE_Nu{AP@^Dn4OCoS^``E7ET~Hv^xrQYS6}w1HkroeA|Bq;eSdr_J5^BV`GC# zG&T^lx&BXt1EG4A8^Fo=cVx=Hhw(o}8v8#NY3$rwEF92=n}Zz84()z%aRa%aO*ohZ z>PP>VT;+szzrcXMC0zbH`2JI-f&P^;jgt-9)quLP|0Kz|pk9p~#Px3*SoyD=`JXZk z^v`7)2-fV-5gw|Ies2Ho%`M4LbJof4sSbxs?-C za85`Of8Kbbu8rzsUnL*tY2LM`0{@m3{Gm?48e#PS@#G5l~WVj57P5#O* zkhlv2j>!Y&PBqJzKqAs=1o%7i?fuP9&&!-(9*Si*c*Xlt#OspdqZ44&x}I;vohudTdJ`pO^uL z7pJ@|$NIEsjw>tTO#KY39V4=9!>D@9bM zOQ6dBp3dCBFQ6xJ1lJMbPwYVk>Y&TFd~C~}3ld-I;~s;)#B2Nn_us#~7f7(TLuC&immUiHwOE^?GRPczA)rPjONdPj+lYIUB9{DQj;&LD*HaykK(3n;!^T~eq{8&P zBktjIOGY*MeC;PyKWi^GfE7jgtXL4J~D-&$Ay)> zSMMII$72dMU%AEa+;!(!!VQl^{Zb|<|6Dl+n{z(E<(WH${1U|-El+oyX56_Bz}A0d z7rdCfJns8LBt+RXYEEKsww|t z{T7>D2vwaW5gHEi*xCnJ4MDfaFP~uEQgRP#sUbyh$(D-vciPcpM5y?6(G~d>`epcC z`~BwABaX!6OgiUcht&ysx*a$SEsy0J9iehErX$0n;8 z|2o+zl4xYqte~Yi@9v7KQU?I1@tkYl2S!vyNW)Ip&rPsb*1P%bk>ZnNk$AvR9(3J) z%QCKIV`S)o-I{7SqcVskf9&#K-;A_njp(@wWq4KWkr5I`xN`Vqg!DVMhzEn5&ab$S zrAK-8-SX-Rc}A!*M_WZUA&D)`Zh9h%oF1Cx2y4deSP=|C$MmC?Z>hyAtmBN*wSWuP z_cBdFS2~|tzZ2Rclq)SKlRUVQlvp*_oh7E<{}H!|?Gu#bD>Z7x%ct@M(O(D0;fxB^k)^*^OK|o67NV^VHS!sXE2OTjO`e`F*yCk~hBf zTc+Jjq}J@%Ggr8}(wZ0Fiy@-#z+vmHm}mlt^JE;}%&^=5gImwvv*-JPDVCjhTsT=J zL>8~>h`4YnwYhM{+l>NTM1S~4i84HEU@+B0Lw0<8-}vENV8QU58STi!NK|t*X8YOdc@CSkYnkj@j<5+5(tHGN-zIeS}MW8LaPK zlC3vZZ2&c9!{{z4$lR?!^Ql@C2xF=MXLh~eK;;{3SR*Hu zxO@F?INoB%{*di@BmS};{C>GH`_YomFRz4X80lzlCVz)s8?W2ZmnCT@zO6c==scXr z;$*ruymcqA_|2KX_=t;>=nqhPDpB!!(&)FxjVFOT-qhZOaRTe#Qe+4`m)^#od+;e< zms*amWk{M@ip?aLUhYRtZIF;M@ZBUQGQDQy`PnX?-25vWy46uFsh!wtCW7(4OmoAgD)maxKp({5@KY6xZ0?&hd=mv? z2AV2@_TDj=ZOhZJF3ZcX348&=Lo7iBcg>U*}y8IgR zL#YF>?aetffKH_46ET_^1Mda3fT-aKXc2?zGSHd9uoCJ3NA~$qZQuv~PckMEW<#TI znUbFjO@|uixMfT*2APui&7c>1U>OtEFEvKj{$QDYwOLJ|2P%sWeSX-{7Qgm(uL;H4 zR?7k~$BRolf2VH3PynsyNOh^Cq-rMgO1)cJrgVzcLMN9G4u z3vT*&MKSlSS|b=hi1t9(J&Usp$@HrMN#60T1t@&XS|7jiN_?@tNAvCYy_wBg7a9u7Ye83IhC8(JwvD#3cG4hc2dhoZI4 zBTKW+-wL=)J1egO4&t*n$eYmYo`zy20!_45MSBfnI$XQuKRA|eo*93*)a?=Wky`Gj z6L;~QNf~;>hl=dy+x06AVZ%<5k+vz1JqJe}PU3YW)YywpZV(B?u&Y8t zV^e&wp~f;JXVoAp4a>Y1Cd`pG+{D*DA&;`WMpPV>GUS9MmQYS zS8=xR?6q*5{yrFmuHZZ2$y?{OiP)mF0(TVCj<$LA*9NAI{ISC4DT@cNHpma8bU6x5 z6`b#pOr;7^c{`6*8jL?BO~P37!=jJjLsz;)U1(cJ;^)zQv8D;YDX;WGZlolVpg>c` z>@^D(mQDdx8!EstN@O`bZ$7H!7$MPj%zVobw%@V3hQxIX_DiBEO%_(A`KIYxEDZs~ zGs6N9)4ojTGifw?dV8=%LsmH^)<`XsXwW(lVu(tmSh&iVHy+`V08W<1B2#7i?lAW_C@EAnT&RB!(EH_N#ahZFdGX{ z9FCYY{bqoWri5TdGk88gcV3Q085V|+rR3OC*c&ma==_6V?Q6V3whGdOq%JV;9YY?M z|2kEu>9p>x1h=USvx?=WZ~05d5bZQ%a5qY|rarZX9lvW;Y1%-3q)DM%GNJ-$)cn0o z8cabFB~MNmR+1YjzZ@ArNhw6XB#kJqoJw0o2!Ls#ia{=9DSy; z72I2xZ7X6)HW+%Z;fZ&Z))dw}Itc(x<$?lD-^!Ne0vq2nT^w%MQ!wKq@-PPsSbyjY z&u`>|NS0%11{KN__`NDA-^ z|5A)bdSLK-bmTswcd!zjR`IQ<0?=d7b{OohqPCGThg$5YbdaAxuIQogrw z&DdppU2zP_Y8kb3&%9$F0`rb_809O!G4y;#$<-xX)bo3T8B;ziJ`Bi{>W<%G3bCIm z=3zmgGginjd`nr7%lLB^O9rpLK%wPZz}4Lm^)Sj^bx6F!{Xj8hF>}QG5GE2k99y0S zI-oS33S-UH-NQ~omg-+ zAa^5O+7dDNm_)K@lX!dU794KMNIijt;aX|SNXRPcmhe6(JJ;Cy+s=y?uERx2B$ny16ETWo!hdnNdJ|H*`hc>Fybe*R<-$e!N#V^{tgBbDev~a zT1+j3^(x&F`(G$h1jEo)4jNF67*L@y1VuB22pf2dI7@$-CMS`oRtD!HZ2@A^{o%%f zq7UN;6a>PI3hsUP4XAj&afbF8Je@EDia;2;`@!!k;f6ZO^|1Yts8WNw?> zVpuS{)$9)|FM6MYOr0Bt5F^)`pIQrRr18bG&W&^Vfu~n-bI0##ROrXwwG3rplH_Y7 zxr!`{P9PtOi=5WK@&2VJN9-Tzpy`%o)r2B=sI-3%(~ub~r_6rLKUT7YOg=v3Ut}tj zMVF?r2h-iF-t5~l-%|+s2=;Mx2>g(H5k&h0x_Vq|LO8cGF-iX+Z$1p$TSW?he$CRy zmJ}*L%t)E^(<%ca1}mh!P3%{v7e(5ui2-px!;^@0sR07ul6<4w`EeU*i*q#b<+RW=1YI>po9})#BqMPL}O+yH!RtTJ*+I2o^q< z7MPOG)KR+$DF5K2keA>nM@<$!*tvti%9K^zmE@$oh9%Gg~fIEc^lF2`}O z$BobX?$M$k=WOrg)J~8zew&Za?8h~S-0LmPa+H0FhY!@_DQe!zfup=3$)V@t)tOuD zzkX69_qaXL&uGZq!A&P6C{H7>s>$gU!6VEue%L1?_qX6rL7{dGx4bYx6#9?>@x>W5 z2;NUFgTtZtsCeh~E4$ko26npgJ9`41eN!!4n*kyw#qA}H#(UPK85N`u%t9^S%lmrK zyv2L?S6{PfvNb}eGjnyP`>9K?$Z?`mij92WrYp;9R8iAXvEWurn1#Y|d#;(?tcaTS z6y8GPvv1T#6MdyVV0-Ez6iLDwcV@LAJ|_NwQLPAxM2M((W9GCUzFy`|5p8UN zlf1><#$=j>&w*lyK@bT#fpnMuBmsM~-;}EeX~*~}_horuFns+9kErRj$1BEz z%=Grm`tVjknbu!|(yCUjWqXE#BC5+a6vZ1oaX-jkjpWRVYJA`TIsL%J$)P%o)B+gL z&dk4Vu}M(O!sN(-V=n5$-5ndP5z4k0LDW*KVI6q1h=>wsMeUvm$KY51}r||4iFmhF)B~EWad46JT{i!hB z0S)3=*&=~ho3)n$sx*zTADu9wu3<0UWek?ZI7E6Sp9GmNZ+z|(UoLKJ1z&nzo)WKOIL=m|j<5Wh+NL)?y*TUrIN~o|)xyh8A7W;X z-|gs`$ugg9_<4ywcCsVE`!G@DQspTI)fZ(dG`Lmi`*yTjG4m7}zXeniMZ=M^Qe5DZ z(83XwR>C1NrPvb49%{7H_e$RKdcO34O<;QqWjs9w=ePaMER(lU)&)H2loS}8vF|s@>FAEo%-Jty*n~o;CzQI`GM|MD}V+^OrG}-Ib;B>A6$R|tGdtern1GtzaAY)XR?OEzjUQuaX?;`H4B{G+x?8KHbCaD4 zZmr|fU~R}Mq6HuyC4X7L*?C07XTFN#BO37VHLzwpsdh{S%W7)AY?4?~z^xqCa5wbi z1a8iLnL8dUw*NL6$RQ`eQy&eB{~zy77#==H2opw^fXD&YMLkFUzSg zZCidD_+&G|B_V|cu==+O6i#FgL<|+_C)WuZ#oeaYACU4VpE09Q*WzR@Zw?o)A8Uz_ zQBSNDJkWRr>b!d+lI!f**mH)QatIqwZUe7-3H9D`3XwF@mdPM5&NYE^%Qzj~IoLu5drV zx0A1`Lwvffa4V6U+Tot_7SuZ>cJ5IQ%^Ta{yt~UQe3>H-7$GCO_b9j2E?$UM9y)U{ zi-XM#JlD7|?;cQKcq_sY@muTnO)e)(h#)PT2PUWa+FU*DEijac*KlYnPST%lCmDh} z+lJcOn%}{n+xjUi)afdDYLa(4o3sB8A~S1Vc0Rry!Q$R(y*@^_B*8yzwdSn6v2A|S zK4(R4?69pU`t@Ya1`=*QF?6%f6%~bFRl4Bbu_|OfYy10l?vP6%gX2rKH@x}gjnkQT z%>6EOqobbcghO@n+lyGs>zoLpBe$|>l>#4u24y9;82sdkv6_&Q)sGL86A%29a~&1o zD4@2B)*R-kvV=B!V{7#p$rOyrwZ`q!Q14?pbsOfBlzwWIT)TEfDV~B(C%KXLcF9A* zTaXE99DmboW%GhuVsGDBeYjjlE+P6ES^k5!Z4<)5B|NZG_M};}J~S#9atKXY9Fjir zgug5cWp{YqWfAvUdS1jpHeF!q;os1m;_j$ezKh$93!c)0wSZ+3vKT{Cpd@*kZ!em4 z);!|juCy&aJCcDLN;yB0Dezs0$od>Ql%{oE1fLVvc!9$&_;X3sZTOWs_(lN;bn2+ToMtbX>P?i9 zTQ}^QWofP6*bfg`z%2~f)}Q*;DVd(U?L2ZGU*>!7#_=@fOjz;MbU9;wo+I#md>#BP9`|jFRzo#PWyl`43qRF5r zPYtmf60i)DlrVl+_sLSx?;=RQG1-NqDi@hg7;PxxXnnO};_B8`n>M%Mj|6D5K@C1y zr?0dU<%3~V0wEtF*$0(qwJo4jRS?~r9-L_hK74fXB(Au zcYEh!AEG-Ki9`;T>-W_^&w>h9636VAMI<862`Iv05sC;Fp%i!rNQa$yMNW=Wy^u?- zuqjFzijrHK4n+75(cwj^yzqlNkK5-kq{u|#XjtJh>-U*Ts3|9M1`<=CqwIAU2a1{$ zG)ksLInGh1fq`noXk|LB3s*16NnS~A1)4^$cqyok@ zVr;)!gwn(3>G@FS|G49SWP-O0y`}_=e&av3e=)xrEY`~Tq4RRh--uh{u<1)zAiJ1> zv^Q#)TD&|rdB+97*Iwdo;^>5s(vG?{aWs7l$@7MNy5kY){j`-f!J1C@Ww{A|p*Y@$ zfzw`M08;87Vz&l|_;zgq{q%0uvTv8ij8V)QG!Jj;uKYi-)`)}Yl7uTY?^#xU3BwAl z)_!3$K8T3rTbJqJDhi0DqmHc=kB^qz$S1CwgN(a66d@S{h1y?ZG{sXxAFUrCnYc_d zjYFl{q*Az?#kPI^l|mk@)Ar-gq0&>jOK2qojr~g`0>J9}fhr{<cn`d050hqeCx*w&C@ngZk=vS-o|iX;`sh@?vxlQE^lT#BhUcZ zXLRKUKt$M9nzVf!KCubhqz`Ci3|P|ecit?f27x~|G6s;pN6}Ey27S>2+#|gI_=`42 z4W1GTLa?74-*5d~44`!OJZS*>6Yz5W$PFvMh&#ir>9IDkmRQdNg$vLRgR*wZcP#_= zeyV4EM2%7w?1F+7bM?`c#E1zfV!ixg)xBy&nvN~tCBI6q7w+gWGV9&8c`6>=kPaL} z4MqA+p=bm>?*i3H(!T~4EnMMD$Hy6s8>U+abuM8OH{=_K=16m&f}!mTf9Ngx<3;lA zUeFf(>f07j^v$Yg-6%vc6)nUIQu(vrDL-$qC0>})V{kg!vo5_)E5t0ya3P*urm zr>CfYiI#K|FmxeOZPe(vsa|2q5wx=DYSKc5X1seGS%jaaR-6W1%R#+zQX+Z~@?eCaQ^j<{P=di4jC+SNPc5nd@yT3Zf-EEStEPeM{|IYRw7;ORBEs5KsaV)bulYp^XA zGAJdhZ1-aoF6FLlSBVm?lr7BHoja8xqDK#qCGo%Dy>AG1{PB@AFlpF!=nX6e)fWpM ziQada%(dge^~E*ai-1H|?a!w)GisD0SEl7paNM!GWT+hS)aEy;RmPYN_&Wc z%vb{8VgS<58#^3GOTzaS_la=Yas|tfK5hHB6z81zpy6b&O?AKFL^DSfYTM@|U5?p( zQaYE~K$#iS>%Yld!gPt51+yb4Y`V>y1AgSdYPv+NKsm)Wlml~RgK-t93Xx)3 zO~hyO4{x0d9i_+1hSWvi2rTaLA>FO2c`ohLzfx+{W_xlfdO2oOWY;|~@jufsRozq&dOz04Z7)j=uRb2@=p2W)qc!@@#VtG7 zCnef_(CN0lxZCJ#AKawQUabr&R|sFEjPWCSw7a|muI`+}L17bYCbLeYn~MVuU3?f5 z)6YM>@J=7wT5j+%@Op{2_?cb`57KHUAQ+=rAx<}U$b9{=jL}XX7ub0167(H+Q|pc$ zm>B+}|H<3xubZg@?~q!aP_6*jN$bbB>KjxoK^y8Fgg=ub7Fyri0y%DOf!zBC;qUqe z8-xBLLqY{QgNWMO_B=_6F`k$05ysgVxhzK&xa#c{jDVsB0 z>bYWq|}W+OCHX%>NF6L@==J_EgIw$Rxn4JKv{uGo7Hg@e_L`Ev(tm4taZ7836~}& zR^!OA%M9e&-17c^PntJL}Egt2EZXROlMI2wriqz?@X&wzO`Q%7r$#nXG277@9d@$NF1aC8I!R zLVG?8jrJ2;SgU^a;1&R8EF;g-V3fW~<7o^}w0f?O%~xO-md$WXln;MD>E`Z)ENnu? zIVKNwL8jLToRy*@J)nfd4q!MuwFS=>KUO5r7^FyX{BRO#M;fGYgr=oJMbEf z>JZix2% zG6A_i|9YAVD>@FSlz>dk`?U7w73buXlwhk|BxH|0sH654aiPE%O-aTahhkOFpY(%E zWgzy9DjMdTE2)I}N(E`Zi+0c-ZcL;HkwMC@n3NSc&Rl4o*9E@`u2SM%#y$E#B0_ZS zVA--roQ5h^!}0NEX9m=h<+*78No$Vw)c`$Hs&Ze?AzS+d{o$yRgMqbkjz=CAlEx)|%#W42Ry z!TS5D-3Qypb1tk+WBm7R=w1=!CUz#;PRHN>9{#+=pU^jY^}=T!IYhSLhdi)bSlhWj zAkSg?^1lW~21xDWUA$YsduHKOE!W|ZNNUI%w@fNW_F4?@X*|(>WAWd}Xw%15&_nPR~Z#s?RnS$nlg})=6_;9~yk1K2G))U+jHhpncp>#O%JdgOOF= zllFd-e|gSA5sRI|FSeO5>-vP9Li|()O~n4mTaAF9H}>YDZ_+icljcrYWbPtg-IY%skduau@+jvj5-~7P#TU6u1u|@j6r04Brz@z=Y4Xd`*9Ze1aqUPqY(vlG~|Y;-9iiId`;Nx z+S|LTQ%%|vf+uO*Hk3?fXomlho>1p<3}v;bXmSqK|3^C5qNWLqQdNtJ=VyYYbt1N9 z6^ohJiMYxNi?S$E?FoUCCxtn8$(DbEqei#Y2PkyNLb5BQ7i+#b>=QKwGhr31$P3q2 zI_y(6g}c}}$p~8{c8}|C=Ev@jS69or!8Qg3C%Q5N3l-J+WRq0eC50_+F%=e{|9hn- zNUEJGr$HK)CHqgFQ0Fx8A=4b|fxc&3<~;w8qBg7x+{TE(j|v z^FWzz|5JiY?Q*28-0g+@!#Vw+(7t>|b%x*MYLee%c8jj=OSk~TtHIFu?2$c+QfB># z$EvSm=XnIE@AY8q7^CPaKwwyMe{3je!ba!m$FZ&4P`{Iy;7LchSoZ7iOXLfm^vMy0 z)pB<)UP5BsRPDYNQ(Hq$Y{yy@e)#-LS=T!EP+8iTY zx0>tnG}C7-(9Af)XD!*RK6UnSbj0p9H;+zuRgER>+vz*$B2+ zNs$I+aCnf$%E)DWeH%tkT{ZBI*JKHeTeO~Cl18mh%yvLM-%5uxv@aw8=!jcReTH&U zsEjZf!3&J{l6hZqp#3|E>W|c141lUxdwoyl;#rkPa4Jj_(}XVTTIo~QVeg=C37&v0 zKu_kl$1|X*c>7y+rGIjQS8a#z4CQs*TxDnSlviP_ z>@T8BTZxcaq(XF+?I1j!G{h)UPNxr#X3hV;q4C0M{BUT&4D7A>AW==?wiAG$W$2fc z%9-szcunp$H)of9X#tBzlEF!I4^>WcHC}`}`7Owlet$@xBNgoZCinfLnQV3igENlJ zSBCsJq_1*~t(NPdLc{I#&)Nr~i?n1$e_u^L%h47!92s=pmbT{3dA^37wW2LS`<17x z8wf!}gwyiHw9F&S8wtAJe`B_F`O_bknUpt9ZuQxJ6$|YX#>MWmLDmqiN0huDu=Z}%}G9TjmM2gi9;%JRjm2u$+v1JzpY<}&PbSf>2++ugO{3J<5axxm#06SG5>Pn zp3?1we~Ebau0E>5t32Q8?feX93qzjv9BDUf8rQ+~`Q6$bR<+4?>O97YCRD2+pfZh6hatczl}KKunXn)d^~12vBwg z!l`fbRf#P9KrOeO%dtJvoiq3hzLK+8Y<5A*V|i(BMUY>v4x1X#om;+1Ay`7yG*e(qZTEcOs-6GS$e6=N)PX-D(!T&^MV}etY&%prs z4uPN6gC^pSygrg&#jtkYt*Xg4r$)%*Zb%YS*Z$FLaCyo%8LYM%k2Ft;Z_!q2?(MrC zIZ8dRU|-;O1?ER>XGu=QXeShrxXBPuge|9VWVkvSPmZ>^#)EN!CwfX2DlUH2C3_g6|fjq*{AKpJCWNH)Uxv<`aC}nO0C|-Y(=5Pk_lMk*4X-p;fCcrr9juZIh11j10lTdOMY@oxSR;GpB{Pw&>-E3;{>`i!IfNKkD1$yk%~S zhw9z}4_6wqgrer#6pl+Dsu5oeU-{=Aud<_J3uh^Pr6;AT3rW-r2D$ zI?TFWD{_wAD%!fV%|BN50g$o~zTYiY_$-52h`f}hkNl{i2lnu#?w0|BWlhI-h%{PN zH%^Gi0H+N500KF{z&kM=20EK1q{KbrQ$87B3S1KO)E$AqS*49+b4%P!EX2Plp!Z=I z*t3RIknv(D?R1h8;l*lz=5+!a%AhHJ+-JaP$QQId@W1w~fy$WYa(P4BuK7{jj-=bJ zCb{YqJT6vwJ8!D&NxJ{uUNTIx*EF`=`d|At$WjBYsTyS!0oRk9wJGC+H0D-NXL9<+%jlldDR{RprM>K`cuOVJOEOqr+tJh_{}W<9&X z?0i#~*$55k540||D*}> z?RGLC;PG$CBGc)oTok33J!3~xYxVC6a?{ecPNvGWG7TTZ;pLq za_2q%o9$!i z5tvGc3|;R{3epjdFjV$Ud%Yq^3JW%39Ot6Bul0d7h*@Q7&>7Kee%X3x(T$!wr@K;P z+rx$&7oQb{w^zGbnbScnr_bpsuRrjU>*g+Vq*_0VFvSXBw4b7ss7+-J+V+D+3!BaB zECq7BFV|8l8e$Y$?@zbbCVzl;AJ*8HT=aHxr~)pKxw~ZVpF+mkk>0^>-=%t=8ye@^ zW1_t{4O%m;F|bnfjGN38r5B&em#=_U@H=|tk>YYn<)!5)GSxaxd;kr4;agkawAKW) z7JntPplVtXXfSU(mGDM*tC><>2T)iuv&TYiE-7WeJp!6OkxB0WT2fQ@qxxS5c8u@< zuIZp7#$ZRo>dh}XT5uhy$-=F}c9$MZvJ^ny8PQK2(BI6`KqK#?L^Cz6z~~>7lYfTL za9P$KcZ=X-PoJHn$76KW_LEWnQG<&cMMC>)*hZxIW<|_ZfxBF}{4~f-p&5r1HdDgj z{I9Lq_5eH!cfDgUd~CWVgbZA=Qt<)G-7T`Ce7^&Bm_PZ50XWNR9V3mlfG5V075qvQP@ikl8FmNxZhkQDVQO)j-65Y>mtQ_*=fdJc)111*%z$i3{a)#SaE$THKJozFdjEbw-4%D;vl}t zHxA2@<-P@vwBs}GS@b92RWg0>t_3v2bT{F3j;r{62_f72u3NfvGk9%yeWpM9&Hqxe zA|com-OAC}Q?PC0^hRoL_hiFhRL}*-Z$#qM8&kLP(15{ogzMQ3Z!c3`>464E(=uU2 zZ5hFnFB&yjn7JlBepb#!JUL#?-%UyjxR%&(ZPhiIZR-1G zZ-aHXy7PVu-u1Y2HLl3-xD@@2%MNW%R?>>Pc)hRyXFaonv%9tcXFyhx9yZLc*Uc@m z8a?b~5;2S))Ny5(C36GEFWH*xaj^vFB-$2wy1yVhGxeee8-RaqDwwHsG3fMNQuaAr zb0+lW9^l)cvT{b9bbE7gBc`}UKcJ1Ca(@_p8`R-5=C(cjA@T zano?SOxSV?myx`6VRq0U85DjiYBY6DA|C6rO+5tIIE{?WAST>~Y(_k6EG*nyu!~{HVamqI!D(u0#$w20%)!cK#AW!u z<&D8WGXDhc;Q03$2mfgx91s{sjT1)K`X>Y7WPzdQV1M#oIYs|R^zN+xjI-eQ_X!6a zFyS+-Rs4fV!wqW|u=c@D%E<=9Zow#X?4%qp$Q+Ez#Qy&$TMmXWV>f~kyMY$31%fN=sKEdQraM*puGdDeesV8DPR|Br0^|04v14aUIW zg20*pDLXriNXN>}3L#}@fnn$%Fr_>x`#;!p+&mor3IgO`^&t?L58yH3GKKBSkj0eU z*p!FO_=@j9U^7tZ6K2^*aMGIW8P8y2|# z8M>eyL;2sK3zycyBV`?GKyW}NrTSSAU|3Js6X$Dc$b__Z!<)NZzRrQLfiUIb(W`xn z(KmC@a-2hN-Q_O>Ubc6|I(>#~OTLm2 z#xd>D`}pK0f!)sIN!5r{?0u4fR!~uJzc(i;IR?a|@ovLPi@&XE`su z3pFKXz?4>VJg~}2R=be>@$$!w(&cuHy#H;(j~~F~_+%}6rsq?=M+AEdA1m)5C2jfX zquDGz0mG#}w8cr(mACdqhB{cIg^GVrSFn%it#UgjGG|>@)C@S@HeO!xp*`14qa;=p zea_H)nC(xMuJStQ=G6_DO?FUmxbE{CgQwB|e7xM}L%`DMhS(=>@}_dnM`y%_oFnE& ziQetxGwAp8kpK7+6zYUQsTn^L(tvdq~dR8{t8+2 z@#RUo%y8`#9R6|z8+|>f=vkLpw`fA=`F5tVCl_*a)jqTW{77FbZKSItyInE=&NOxu zUuC$)XN`Z!sXWQwWg`%nAh(c-AmlJ8cxqbZJEtutezcTUJB&PE3N@Zb60tUkq+ycdJk_>!>pCwxca4P2OdXoKw}HnbBz3J zX2#Q{+CYkcT_(c0N4^6hgeOoG8>P{10ds*uCQ2a~F0)(nYV1=%00y2?YI5=97ij`= z4$}84by4Efz|v+y;ggRw4WD;d{s>!eur$4y!p6-Qf}@@XHGO{nm;jvQVUVoqkG#@d z&)AO@PHP9pQM_d=C`$BcNn{|EB&u4|q!?nNaVR4y{^Z^kD9z*z<-zf%AZj!UJYWlU z#A$I>!T==&v7~%80)E%WU#~k_Y5`h_8MY`5&q?csnp*_MQQ`Sle3cX?K#vrb{Y^g@v&rUD4JHuT$IU-q&TA>J`INT#dIpIV~gE?g)!Zu&A=fa;qt zp_SI9y5!1f|5EGU`+k%Pgk2Ben{q8tS8Sq3?%=;qK*s+uu!c(-E{Yd#eFB-aYC zB^}XwhaWs*{*9{;Ugq}J6N+x`gzqVTD4!BZ7RoF?s<4;3nlpgbdle=+pFbmmvnFFV zUh#SLZlu$T&*Ik>T3K{)Gt_nun%QJ=fxALAt?kEszp9*) zkGpvp3-5ADDxzI2PLnHr^vTRQTJ;n^dEh1@a@JUGW8%CRNd2XtHU z3Wp>Y7`GR}`B(1)YT$?@OnB|a1Afomen+QZTSMdpoJk=1M<1?Gz)|dnIg|EG2nUc8 z0lahI02t1I^*W|!*m4X(ReJyyV%6$*0O`s(XTVtiI)Hy1h!6uSauP|5i(6z)06%=; zjh#o49X4vdP#X}K)n>5DYqpuiw?okFhYmJ~Tr{bEnMyb0K3g?eqVU+Xo!Tb~NcTMD zkdf)|Vhy;+`Z|>5rbSh>3QZOEQr`<+YnN5V-qn}Q?VxuZ+FfbdFLgUBng{|4ZzrL3 zV~TPK55%DXws2&=f<`h@$k((!VORs!VM@T{)?Nev$-Ho0u22ooe?BbA8n73D2H>v= z2uA#{09c131h^Z(0qkmk2h;QJNOiKLcKl!g(tn(U3jzTeynv20jPFSH3{OFmn19m2 zBK1Imk2$zBAG-}n!JcL;w4T!P$jh4olr=>N`9+y12;&bV)`jS*EM>eUJ%BM}q&_Wb z`V^PU*>zA664)*GFXo2`6ty!Es-Pa-QrJU}qCldIbrsMlv#NfevFgZ0MmMeD*<4vo zPkp&1A+mi&j&-_YVBL{=Mh?T0M)AElAlTboPT_~IRRruzQv+Pr!4zH1Jiv80Y8q() zN09#)IlxsnGJu#zM01Ey4v@kWnE@~eym5~My9Z$D_grTUFr`~*s5@`5gBPsfK^c zN=m_Xp$=`cZTQ4CCC~?2E22PEXn)xT6OP0NtTg2XbsW{%5K&mkf00tSagM-D6d<7$ zS-6aY71naVrepu8_AUUwA^sn=to@&mhx8IL*I5)m0_+;t(86Ny$$1v0hH{YXlpOq{ z`7=h5QYhWL3emKI-!2%eU73JW(I#hg22chEHY+$F`}XRzxrwwxqmWLdwmEsYl8)BF z#klT%r6^b*%FBN2g7bpsG7M;raHv^kxG>jwM5wLkGW<=xaGs|ExErU#8XqQrUjc*=lL#{jN=21+# z1!fa~Fppve^CkMbGjQ9ApPvu~BD zN>=kzCA>~|f3HELrm#;HWsCXo?GJW|8cWOE_KT)>o++se;YmEr63#lv3XoZm5zm32Sq0;n`HbTwKcEnw<(9^FNdB3~+GLLf3n0%J#5i7~`+f8o@?#%>_Lgd*K?)n#&m*`Eh+rO7w zZbwzL-(DUqp49yk5A9Fs#%M1+U(yK$t&~Y_r>t5>Ci^Zz7jTWz`?-AM&5zKnCIx$1 z7)|-7Mi;g-2>QR*a*b^^<#sI?BF|-ysXZ)P#|g$Pv=K+SY`4GcbUju3-LtP8hYGzs zzTPJ%XTM&*zVIOrVRYp$>DjNX<>BABKP36B>*EwTeD;q{W<04R+(=j2cLYJDa9&XQ3)6}!d*+F)Flrgp}a)>;7xo#`U_ zR3yo^H*+i1@h*Fo5c}q1+g_xfBl%s>vIiE?q+Vs9mHcwaC5;NiubmZzm)s>%FNIbp zU8rm(PElLt!S<%cyDC(4?F&Y-{0q~o#OuqF^5VLR#XR%XpIsXM#7&z*I{0i)q%{mk;?y_0M0$MyQ+#c>9UV8X#N^7}E5)~6T03*qNY zZOvw1sLQVO~~-|&U7W!*6qcB@fKMM?F#7ohSgERTT zK-wjPI6&_K-~ZjS7X+`^1G+pQ%wci%ztWC*xl25t>SyLL>tx2$KOVdW212FXp4T0&5S9_`i3h5~N|0REU?}i6dMVt|%(ceIDzj zL5C{|DwuV03BrGK{NdIh(dB#K{p{eIB40UgdsI4#o`4b_czt#;<~z!y$@LzUjNYYd zn)@EsvL9f)vWJ2b*NC>_Du{;wnw$=&r{@#1cB@-HtFzG2!+Lg0VCb95Mls%mA$b|e z*glcNb3L1hhM9VytpuSXbM>R+EsR57*WQP{$|k-?ge6G7^njK2B4__pVJ*Y@XcO{x z8}{X0msXBV7so#xOv!NulThXyEK+`t+ZWI}nqEH(^7g^=Tj8+kz@u6~;N11z3g9z+ zAT=22S+TB9kUcrBJAeJGN;vn&LB{q&98SS#ssNWTjo0^8flDg&mBgQ{SO6rfNq%zx zl2iU0g*$kII+@{}6bYsbT+Tm*O1Se^)t&b7KL0m zh^87b<7_7DO7>@>vj4@Xp%jO(htNhL$yvY>@B_0zkrXS}YK;3eoOh0^>XzQLrk^AK zE039_dH=6>!P=$6NHLiwz0C>&ihJK5D#nlZ*M7b&rGFDtD#srA=v-qMJ&hl_pwdia z=G%5hN-2dH$WQBlRL3nDlB|?VE|Qki3?AhEj+H37prAm#Eh}6l6Flj(}CPg1j^8Nz9OsuEdhdmS$3dqw*E>>UdFSb$K8f`vz9#V?gGy4h)+jQ@iWh6-Y{*k z;BmkC*W;*<5TctYUw;0h;^sv;-j-Ps57{O~@ z5(G;vZp2+}w*_;z#j3=R3`RP#E{lmM1E1#NYS?EWFAJPs3eJB9Xmq=aR-WLX+@uK& zMpTlVF29Ttrb7kn+N&auX!~AW^h9 zWXn*H4venh=F*nP|?0_{KX4@Wa0X#wh;Qp zoPU`$x2+f&sf6KiWnW-86*qHj7;7BtFV&kEaL{?vrqN53eZ%;VqTC3F^(=|H)*kg8C%_86%Tjfk#hvWO_SEzT83D_T|Ev-&UE_z#dW9zdF7PUVAtTc-k!v5Z@4 zu^_0)G=h#fNGe2SY&a!auRv>c&m>T8sy0~kkrR#80gOL-QewpC4H)vgI`jPYq(@CNCIQhFL(XciYnjgn^x zVFvGH0*jy(wwOvd!JY~0hUk1x*UZ5vO>+>hUn(6Z|(rEA;urav6|#V@$N>%2*G zaM-ncQyif(-L!BiBYo|Dl(M!8 zesfH5Lu-><>DrbS!KUq{k|$$UqY$FH&)D|(FyVOuY|5I+$K0GEX@t3ZQMw+YGHgXEcp!+D7iMJ zd~aMR&(T5cmso|h5U`nw1SvXfU$OCyj0^a5Cg%OK_ z7CBW%a?04p*gbwU<0dMHeXy2kfr}`-Pehh;psC1`g9|)k?$q>+eZpap9lx{HaBYqSvpMCF}2WQjI|nX;;LOzoZ7c z4X?C(=tXg?te4F!9#v4pw%^b)2iV%122MzqE>4jsj_SI;qaInE5p{KWm0ADl~;y^?#XWc3KOm*Gy$)^KUx1XdY(XF4ID9zP-RGeP5q>or~5cQ`5&rs%O%5 z;fnm+Q#!rhHe>v~5m^=tTS9brgrz?6DxLFKGn@j+4bi9EN8F$OoY-}|aCU0le0wC^ zU!}*XQrDX*zgV4f8FmLcC0%#UK%ZvnR%_3%Vd@}x6DL(CmJ)jS=^H)jPOKC=ica=F@Xb2DBtdiGr(h~n+zgALH!&JL zsRk13bhUx(_;Di0I2j%hk+8+t-81i^AF{YH*YG>#yv@&e&of2t&!VKgsa5B{MCMR- zvU8Au&HwTR_5XGYxhL|M_BM|l{?+>X7Dxd1{g@DWle$!AKrW_r|7@e2ebSr%KFB9I7`Ex=l~+ z#>VKJYEp#8k!gHtHn4PB6c!VR@}v3CM@Q=>f#GYa+JOPhCh51w-*YOa^9V?@zp#a7 z^u48%6qjp02Sm? zn!U$)ePvIZMYWDz2O%ICPpE%ryLTxEf$z_zUnZVVF`b56=JYyp5dd7B`xEmi;=8K7 z7*#-zRcQ^vYmt$_)L$q9xVdx@^Fzf!l61r^@80C!;!Xs->NJ7-?&MzhqT}3-yFu5J ztzMxH4!)>6Pw)CmZ`0Sakb{MX8#F$~T@0b){(XeGO|LY&5sh}})6$p)t5<}T(o>lf zaCdBY7@AUh?ST!xl=rq735dUH)4xigb&-7DbCq7?D0ble>faLJ>5g_UpS~j{*N>r4 zM@KCNputbck^=}TSo$MM=}uNba-zoo0_XYpL}C7>NX=U%bCa zA6M4;2h7+`h?Nd(IYYJ>F1oo%Y^g>rZ))hjq{)HmbNqA%q zsPVazH%HC!Aye3Gyg9}#MPQ&MP}T!P>qOIPbVp~jk(v2!#4yM^!1HwW@oy8P_{cdN zz=mcE5lYs+s`MJk2<`GDy*&$1On7%8RVmb}@{`Am$);b+!$7ER?`(d*#|L$0A+(By z5osk0`)5pSd=yKfl=ROM!l3iZd>v|;g1S7G{R9zspkfn_sH8{gcior|S`;e#O!IoN zCWYTb4x&U5;1%oeRU|De6xt;XgTB+PptUh{XgHUk8yEI7%lC*6wDzRz$p&qtq9KV( z5fc7Mb(NOYM*R3~qM!rlh>Nm%!qH1N}Z6?8c{zglyv;DHU1b{bw=xB8qqyL+vhHKqa<>AUKuYN9RuAEO##ysjJZ+Ir>I$c=(85&?tZ5FCO zSgL32UJgajPqwP*gU2PI@|ja>c3@W()JFuxxAW4nw{X3^xPuoyyZXL2I=LL%JJ0cv z6+V07Gm2pDQYE%`Uw>BH@COrT>#}zK&z~OuQFBR?Zj2lW=5j^(xDcmUL2ZO0_$&VR zS~h1y{C})=t%f4F8H(*KK1K77cj57&ae?yg_%5cpO0+@wbrr+HrdQ&yC5$6hwwu^^ zZ{~GTUW8+4?;>M#U6b|r#?PTc=cwt9u1|rRt$5VCpoFbekGYN=Nx2qe<7}UiG!FhH zRC_#v5`p2ns!Q}3tPmi}4Ou!#eaCF81#Ld6Of&bcC?IJl$7z<$54W9RMxLcrr;_`i z5Lk2ETeb&i(A7?2^B;gyS7=(8V=7cEJ_98XlqvrK1`^(uVEIRVDF*=?Y^-KD5w_dc zl$iqp`|b3?FUy4bZyxRz@C5ZM=Z5)zM7j9UgT925->T&GXrT>q$F3_v2HoH@(ybWo zZG*C<1*n8X!7+=nwhWIA~4a%r8;jw zau=2j^OH(OQ@m!y7{3U7o`~K%_I`o-xi%;+j(;6%ke_(ayv;A2&i$^Y`h|0G9RfdL zbm%O0SjA50(}Nwf2T?K0OIAGp&SWuUbf!<&G%-`^|D~U&@nf5!YUZA!>Tq6A79IXd zYnh$%bJ>0ZjrRswu0W#y>E0j6r4J9)@wx8y9d9XG$FBX8pg9bqCEKvF?yhm zy!N&I!_9qqaCI$$m$Z^cCl=GM=;O3PW+7-EgMAuU1jqENcG_f?sIO3h-5RAcZ! z6oKtWMNt8{?O>Ta@Au>i2K$_#K}#*UzbQAZk0x)}kDc;|Y9~7W$TAvNd897si#uGh z>2u4A%Ly9VmgBpO9xnSSM`u!#RNGuQ@Xk8sxiYaV0jAR@rRD@b?B4MhENM*lff^Vk zj@4{TPt-;~0<3$0ygH4lOTZ*UcoVNeCj@}@*T7NSZn%%tl_M*Qv~d1~IY)_j{z{&% zQnTpKX!jT|aJ|2|Sycwd# zmu<94uh5A}#|~{um@y7rDs#GJOcCvFR+ap`mv|Au0!WCwt5y1oiJ%IRd;dBZ`csG2 z1Es!n+bSD75bY1yP8qGycAvjj-gKZk(tkd!vVONulwQdN#d4-sK4r1NIn*t$ zbb}JQS{a|#+29|;AS*3Xd=qEtzuSc)rAEmA8*gtN6h{~BYY#5LJxGw?t~0nKNN|F? zO9<``0|W>JcXxO9K@;5FCAhoWowx2+-+AlQy;Y~`oVtJPmfgF%rn*<}S$p^TJ?q2F z{g4N+>yEV7Ay7;>9nUG#@!I}oTjkWd9Xi$5$EkG?(`0sdFcbyv z2R7&@I8v3$mggoBSn*-Yy?VjH*f;18sb@C%?67rd=_LoCW_ZOaHfy1$zy?(3Rdcwu<;7AD@V#*Rie*pZSFDB@Lj0bg_2g(Df@4J^xe6UZDnk~- z@+9ScDmKrea_DKFfohYIu8b8~0VV5BwS|=Sb)LhC-fhYXI}P|Su>^N-eFf#ERd?bu2TIe)U?<3K^X=<1e zIomjpt(x9BTAUGPrg780fe>*XPp{Q-U|^b$Y~9Jw#j~+xOq@sfn=zA2S5#fC_}cqa zjGwN5#?NZVl3PC@7hZX5noq^Nd)s^!S$PY2dIO%WKWwl!e^^%-dt>bA^l3R$+-Vtl zZR9)bJgAl4SpyL?GrH>=XaGwH>l68%)ObVd0^hy|#hrh+DZ^J-N(>XKxN%+0ul1pG zi5tpj`rKg~o3>QfDt!Vuq}|lg1~C*JwMz5hGn{W7(!$7*Zk!y_?)-S3dTF)A*|>n9vF`Xhr*15XyOuEl$_xRcgd2Xk}CsV=EQ?dzhiN4=)!Cv+|J!na#wd@L;%Z zy9k`7w1QS0@fI(3L-DK-Nm%h@&)ZdLbUP$sq|eQjaJDvDFZ2bCj?@ZHc_?zQhpWwS zvkP8nAHl>ZrgbR;(ci>7(>%I}U+k1&m9F6BG66C&-SO=+wYwjZ!(peX5#r3j+Vlg` zP%NM?I}1#)B~GCtnoJ2*kr$Y!XZV`C;jfF9U*x=rM0nS*;0FhqP4$6+)qJkog>-Ih z8g7nW@hh~pF;i85w&yW#ZHQF691%4&@x1Vd!n_ph-^qWg_i``zje?PPtH2>GBWB)g zf+Jp)#2k30@Q8l+-5i!f^xZQ$Snc7)@+{CHLT*dMIW608O9XE*#chl9fa*kac#m=} zuuv9SRi5nzkQz~+m|T(c)==6WQGcNd%jA2L>nk%*`!eO^6GYusQWd>Tyun1RWfDj> zZTo;K?F8=~L`}kMKshMMlf1$Q*DZKtitxE|nmGIw&wqnLRX2d?Yd5OC1**}x5@S_& zQi)+3v9tnGz%NxFlrdGF;rTC)+WS`2DSe1;m90WPZ%Kc`XEjvw?|5Rv7gtJRuFv^j z1VInnk_W40&Fi`gGXi3)C^b{EZM$Aoj40QSpM;^4^X`r#q*22o(iAxl2s89k(Vwr# z0Cx6*!8Gxc-Z)7uaoJK=`T!o$DGz?upVZy)yZA8Q7YZK6bqBeo;%kK36}dhH^BjcE=8 zOEKFpbM)p`)S?k?ji;)=D`mgcAMqPjcp3MKJ62xI@u!2i1-c>x4I}ph0e<~ORo~!*93}+KmU3xaVR?HKV2)kZxs^KC8BZ(He#Q( z33kY01&+kDZn38wHusJw(vjzjqliV*6<~?c4rhDB8+ndvAZ+iFKmpf)(4)YeaCvvFO@ql zF4gURQV>GR)OG>hJI|g<13IGj3pA*aM8g~hHQM4ZrFuFo;vWxWgF}WbGCRUNd#z^r z1@8Bouo8FT4c>-CCa)X56U{!~5=$OCK9CIhKP~tAK0Q!L-Y8h+v^pTPurU7B`9(DQ zm_jAl;wz1v=eajL-|=(Od+6vFk=ge)0uHK9C%xZ4$wsIOg3AwKCTbujR@7aD`>%~v z#a(MZK+Qfk2)Cpa2KXGt{SJ9Qv7Z9J27Dv%C)yP>Pzwhzrmb|e!*A5cp2~g&=sC79 z8voE6groGN2%3<9{;wh-rPf~OXnRQ=BOqJPSnQa z2?vu~5y1$}u^V4YqJP{l>0eHwAAAN`PX6Rf+#-zRZOo{R}e6m)z zH>-CdTTe_JVxG&R4nHq_0ynJvicrHzJwW6^|HKbm+r6iwtV+u&-?pqAv%-<jm~H{%uV5wU;ddgiB}O*d6gH&*sf4aNQ7vBb2Ci)z+7SPrh9?Oa*~e~P2sXc< zOP1Z2J60*}7UX`7gkP6mNZsZ>+YvGnwpd6F=c7lc%RS-QWV(nDe<3UVCgY--x0#`W zHCnHr!F|AAHwh!h@$>YP8Eq>8e${@69A4nKa!JIgJc1y9ZwdOOOX;CFsEnT=<5G2C zzemj@uT4WJYkT7zp~Oo~k3?Kg`{q-?`i>OLcmQ0d&HLPGivBC)+7J!XqAG^5&)bJ& zIPI$*Dx$VIRkhm1XIUWKGw}k7!3t@)8}D1t2#Kv*Y`Rn3r=GeBI|Y)&%$1?1**_|i zf2NlmJ^ihGS*y}xN$CcsS*|_^#!6TAe)CQB7hVY#sLEN&m{&4^X<}&wPoK)Tg$V|v zO%;%|ny=_O-7ez!h!j{(c>8AEnTW-xnx?;%jCNXi))%Px;pk2$P3xLcogU~EvBxcc zJkuCxdqUe4_mRRelQX2nn-!9Adl>$Kjd?b_%SnkMYbq#tSzRE9(~5;HGf2Zm=jfi# zbzeqfgd;iTjGIV5mxB3mm9T{{q%4d~E1`|Rd#rYOn~-DACe4=uvI zk{-sr;Tt~n9QJe>uX$dWpc>A1v1$6DGcP5pfe~o5IApuPthI<?2hw3x43<=7p=H}1Ha%;7**?Q#N);_h8@JFQ{^pK$u)=4Qlp))m!oKlP zh!IDJUZ$hhA9G=n&)Uttm>xrWl(!c3CxSkQ&N|OqPFw5KLw~&q-=5!}Y3SWtSXXfw zxeG2I>AGHpQfIzy3W^+aKOSD7byl6r?4c)Ajs-nl^t7BMZn|amI|-{7<#~BRzqEW% z1Pkyy7C}c3)I}{3QDxnbpKZ5?NsdL4QN3SHTWns>>MVa(w9i3-w^V*CmcPl@9(o1* z-1jigo;Nf6R@WAb5WFVQ4?6F>on9Q*+mrTaX}E_gs{B@c&zU;dIJ}(;V$5@XEgOqm{N@!8P26EF0&CFaRdQ3;ugh zf4py3Nc?N-DRcu2E!mDQBMar}b*jcPetMvHF3u_0V5$7P;r9r*myr>PJWn-GFlo2?>kWpy3s^_a8hSMk z{Q<~PXAmZ;4mQ*J2qW{HctcxY9iv~l2j*cMkz^<^zA)iW?TU7&TkaYjE;asY36uu# z_>LBG6%5tb@+k-zM*QO9fGNgyrd0yOxYQ#o%9c3j>R%b7Vqtr)zT*~^w{`2mbpMTz znhN;zY^X$!*fiy;BFqA?d9PhqjHX{!U#uMay~p^SerC_$JsMC-;Bk4^%p0Abo3iS0 zXMaLBK&pA`m_Y2~$|RSA%(ytBd%KZ?YJqvNPeKhL;>H55^vh;pXZEyLmU`HPr zH3i{|qgymVzys5|SS9jyRrpUdf^P1mulX)rYPC-gU5g)y6)cB<_VAME@9+G%zdhj0 zgo(PUKqmlY>hm--@;^D$=gnJYj;lp-*ZGN4z?1mzgOX-NY#aN^UoSQsGiL1~&M^J%@-zn z_gyLyOmR!l*gRlPQ2a_3z+*BgxPa_Wv=}kH2s11G)A&oNTjtx&$1Z3~+QT9tix-OtL# z8hc)6?N4^7{R%oJ^?P8QY^@-;TB|c#=64~sQR5kWsR%@;><?uK8{Zf?g zK^NedU_D4QUZm`ND6Rt|>Fg;@R76@1QHfX_e zUbx|zE`keEWO;^PT<8NQGX$B4zGdVZ4!Lj!E@t79>;6EMwx?xO=sru{Mj$NsM4X-y z=49`!avd0_%7b#MiqF`*CS4zprY?kzp$Cold1Is2u97Yd>AEgs$?vS78XLAO{r$9a z<(EJ;W0(uS-jeJ(!mgYaEMHONr~)OEya=nAMH`=-b@wg;&ccvzVr^S? zAmxd5cw0c=uM-o0LE`9yrX1&Y1k+_*BNvQS%SjUBWTLBund99@Ms^GJIc`@;5KIah?zh2pG>pHxR|^ySuu)5D9;cp4 zdu8<)!NP-a_f7{#&ZpIPwbQZB6}87hzl(Nj{Of`Uc59~V@Ya)<(>`gujJ5l3Bhg3s z6t1m)F<-=I0q!r~4|t@c%h1tZ2`5#vWef@4{x+qyS-M&f!F9mH9yBSkInqzAJr292 zaMNl$Q)kQ70zTFf?lPwZSm8YjHesqs)LL_ySIK%_2xkk}No?3ZpO%ONg0eyoaRl#wAAhOn5%5m3;)?tm60*^4@hpl{K{nDK<#8et z`+RM$ej>a(LR;%vVzEt^LEliz%|-!_DY++s;v(L^mzc5OKZEJ{ff`R1Z1(dm+5{Hy z>KZm`HgG><8vT=041JXZe59kY!X{XHhoLG>v%@}tv8oH;)^}cZ0h;^;Map{oqOd?5 z&S}D9;$lAZZr9HLt3zy^bjz^7cjU_+%CFq*I^>SXB@iN-}l`Uch^yTYbN&O3persH|;i;_m$8mhp~62LZre?=~K_sIuMheYg-KKMPgry z0`Ki>pGb@u6t70f74$?Di=laWe}lH){0du|G%($aZEF1_48xv$QEpxoI7J9KN%;=1 zCfC`sI@UuC7#7%V8zkWF=D!rbF_KRS6DFQ0eD&Xy{+677_xNIS_je$5)9IQ=8Zwq7 z`{?HUHEzcS`8H*xao9z2RYErY#3}qykjp`5OCna$&u#(!Y}Bt+;G%zPo}gnzp2E^wBFjA2zE}UOCyTrB z`VLX~Ya{XWy3S4%K4I1?MtC3H)3sagr^mJ&$`>Dfk+_mQC-bESyGgl;Oq;CGmAWXd z7d^zh{%g1QjoZ`f{riqeAqAbog1?X5QmSXoI>$XSJWgq0D4+C#{?K(!U(xh>3Y!+? zL0wRvqCXQ?nbhfhj_aWc(|<_$OQV;nUHNpyw_uXjusH^cAW}vjB}Ub z?BiiIk^0@FoaHAPu35RHoQ2O~_vK7iEf8?7(;afHuinslpYm~Ctu}o_y|!)}d^!HB ziUlH2iL)Ll>=@0-NM(q#Pk3OhOYqr!N}tUuxpxgcTYemp0~e}si3m@;bRj-?G14caqVwq&S*q`SeY8NRowG}Uh5!hkr8vziPGfz@SORTp zJ%3lPit?F|1T|b3DPTl`Jt%r>Ymh7z9&V~uE@pR4&&W`(q@AVQv z9x*KpEMFVE!ynMeIeedW6fjA`?w;?@NW8nY3_!m3?^O22c_FhU5`N8Hdn6s%&%Rl@ zyjjH|BJt09t!pa7_Wc7Z%YBRnnTC*wq1H$&Oef4N`RcVpD|8879(NTrJ^i)B) z*1WLX;a!vTc!ey%A>w3G5|SM7hJ^l1K>dGUPeAzy|6O(Lf5?JC+(4+do(uGEv;YXm z1y#rL0skx7`u{g*fqy4g=lSomCph_dppsxdC}so1$;%4j0P%7`<>JsA!3R|ygP}XdHyHa6F?45RxThH=-=vbASYCK&&dn= zugItWpBM<|zu_cM?f-xG{rC?9;o;+A<>3SJ0{_E6fb3A#0uL|8|0Gy|-Po9ukIUQ` z$iu}BG&SJ?LXG7=8Hfp&83#8zlr+I<%x%oW%frQK4C3W8HZwIgGBM>aH|H_oGBM?2 z=lnmb$2tEEC*k>@L{D&YbF=b6t%2)bcmZx8CscjU3;M6TL;r6K*3+P4B@Hwt}y@Wkki#7~K znZ|Y*`=>1Gbz{OZdjX!*G-a8PS8E}OFmK-dD3b6WZP&^x4-Zc=Ydp<$IQ+}nj&6b(k$*Sh#qc>pgQU!hJxFbb4AGLut~kcFpb?fB;Jup=V*Lqf9p2M z&-=0JZS%J3I_)z3aQ z)M!&Y)637yb4A6HO_hVDsOJ1eZ+DreI_~tPsm4aLM+L7nnW~3kfYXu}3qWPbY5gFr z-)TJW^!k~u>toRp>W21kqlS0VtKYE{QgcHds6%XZIR?~f~7dgRgjn|8C`|GcYy8-rHA4HV0BvU6;Epe=5x+2- z-C6U(Bctx^uTyKE9>h8o`_-e)DYBo|JYD5sfnR>cSv|yDIenlO+9dOD^cevqt?_aS z#Xi=zD!@siepTMr&#tiXY4!&Ii6K8psy|L=Sp_3E=ODE1{cz)^1i02umf;c@=G}b^ zn~k~KYbU!lmj(DI#FWLUhEUic=V5~a}kK0 zhi5HOv`e?b-#nVdkiPUFS!Qx_?U?j< z5kJ|WOueXpw;mf3uR&b&c>4unpO)eqDwP9zK{YAUbG?(6k zvM`MIVRjT{8n@5JvI-o?@v3TsS*z>ou5E7UPOF6R_FN6X$04zdOZ--KSCz+UGCdmln{{k^bm z+)1>$F%2(^PoVO{z^D)7meJ7@-@xCHN5(AkF8I%>YrR9m0n)7gHz_~STN^}*WK7`7 zCy_BeEC4e>waiEp7wKB;7|2%ZTt=a$-iGX$t#@-*7~#$yBFzGrUtVDJvMJq9QC>W= zK~Y2N`9{3iTv8#*puS=okE}>vui&)LOqAiw`edI3zJT8^yLpDpxP37g4c?q@>H2mwrDq!5t2k@6X*i*`rf5}ZD z$_fe_QI2nzXu93*FJA4LSiBS$g3Ri;f3Ed^$}}-J9`EnorM+Gf%kw_x)jU&HoccoM zK>8)`khN3)V`A1I;G~JY_IJU6t>k+E;nH-xKMl)F*vQA-{IDO`7@Py-CL?W-a#We# zjRI|7@_d6#-0R=kc-%5eAGo8|YsATR);7r5%raLIpElw%+d$e#Bq86vm=5F)#?<)G zOZ&AZ*7+lK(`nq3*Y?`j&De7UWN{dM{6mdjm_&Pcv4ZL7!tEgtXhkJ;OGZuGy_&?o zt9sfql`c zKglSO3U;vowJ|5*$Az3pfH+bkb7x4EaBx?_1dadpEY|?4fBwq#rh0$6H69G**!5Gl zX%2>%Yz`|8R{dWkd!__GwrO-Q^{*$4qgK1PN^1WjvEQMh85x|(gFA5X@B87KBK9!h zxeQ9ta6cCME>5RAad-dRQUl9%*MhBA_U}BV8mR4I2C1X>$n?6ni*-=qLqou!CsX>n zBU@O>nPM#TaheLpjj~7kN2WU4k8qVKB{Ffg_j0N2Jbp~IwlY31CNS^h_2uE|e|SRV zNGNokzFqu*2`r*pm$m`_p0v@kgZ=n2z)!5Rgz@S#71~2g4Ng`@6G{Iq?fkeI@_}7m zZQDjd4ltF!3+<)=W0plpLR52x{S}@Z2tWDMu3*uXb`A9JVTN^W7*MAvzc5A_sMWxeXFeyPq~Og$xe;+%>+r?{L*9B;{+zP6RS3~2 z4QH@ZK(lpdUOXBo9M}otFy!60Ej4sdHGmRJ3|W$)d5lVeksa)IsRClt z24LDVumuAKuLxTFWtc}jHyG{o>-{H58nY1rdw3&OXiAwC9;>hewChKdfsosh@xnT= z<#yjF(=Gjz4Wm%yfWB(W^Z9l;JitzRx8mC_gSv$boJb-a+xMJOo*2QpCbL`4wbP2b zTiU7Cfo0_rSvyyYraR8j%9L*;RCXga?2t`2xU-BOD4}k2vqQxo0YzCY$?-YML)CjohGURUszbl=jQ{+a}1XUT!NE5vClrId>Z@XuHmZaI^W)Em7w#R@~XYfaGIP*}WB^2?dK_-=`nRArN&G zL30SIz#ul+tbBzDi1K3WS`flFJpccX_@fk-sLJ}k@5qDgN=7{oQiAEgPz7T{Xa6eF zQ7)rgcE9sXzHhwY97B90bh~wQiG|8r(#8;3imQ|R|fZjV@aM#Ok1R_BP7|F91K;S?7x8Qf|-s1>F z+Y$M=(@b6!2qPa>%7B6G ze!R;IL0IPnbnv(Gb}Gk-k$Ct00?O5?hZU)i_$Kht3#6vL@=|@4e^$p31X$BvHuPw- z?LG7X+xK- zEw$n9stJ%0`dFSl^Ad?4A119GQ4XL0jn)JNRQ%+VxR6Kk9!CXdXo_{~_oUzhSgE=E z@$sxlpb}mt4=5$B*gbWdsofHXf91AW3V=L~NwY}d^`RG6RND6R}pDlF0WK9Kt6 zL4nY99wtTuPKYY>T@_+b>wSTYE#_)wMpy-qYDM> zMnKEFR*|gffmu&IA;5&Iel{mp4teLyxY1r<`OB?LrRpz#w`w=nM|PJR-&MS2`Yu!W zag?@e=d_CHH>!FBFLF94roi{{;vbKrw?=pXTzBp)FZhX0KTONPAybgh$aDXW?%qo2vom_GF0m&}59?c`fWV5Uz z>QQ5ndb8nXYoMupQ{-%=U8`bu-hg~n-~+WZ7xCXbV2_L0ROPdsS=-C2pS|MCi^Yiv z#FM!I+u_UAP4oxT?7`LZ+G3K$to_b>N)Ni(BkC)Wk@3*V>9akam(aIH^6NXsxAhAU z8~$F6%!1~&h0n}U$Cc|hlN|H+M=oQo2k)3)rA0Fd;eM2IBaRwy%6(5jsKl@N`eOK^ z5{)(wFRiicjYsM_Ng`V1=D*ki_X8mrUEV2;A_gY7W&t5x09ACc5_#wyB7jduQnZi~ zu&B-PEuQ9vgC(u2eHR9cA+qR#EX2P&9}sMr;mPhkNrT>)^O-_F9j0$iTXfSJ zWekJE8TKj{Q}h-F_VN--)VvH;VJ>+i2>XSaol6efsxTVtzCW9lIYhb$=bZ3Bg3;(=ejNlK8J+(k(@J$$DUk_!r;*5D-(^ZI-( zXeDi(?@ZwB>s!r4QpKk>QnkZAVkYy-E9lDraGtOousmStyS){zWo$-D0^(uepNMJ4 zpP%~VDpHU4s6iBmyaL(pv=ERVizuw{0>$y8ihaPL>S5wxg;4BVvfY7mN$K@{0&yUw z;^y$@!j{cO!$5n#9F$(#@thWleEYJ^KcYUH;LmhuX^;>M5|_uDiH6T}@ICb5dT>iU zKe0z-5sa++g`3<1NW%*$UBt|hchB1>^gbs_v{PW{h@nskm^RQL-$lEmWFvo0vJV(T zE5H3omEwwC{?4J3Rf4qf2cEO*fTN1iF~@v?_(jod?CalbB0J{ow(n}Coh91Y#3b2s zrH_q>ZH0CPz;k3WiaAGZ$rC1?vcbFW?A=!I0WEXgsKI(6JiPuiu-!(*&G7TN0r>3` zI6WIRs)m7fBx-hDzUS;L8#F&QICD5gd?8L|tEC})e{DS%ZV*Sb z+baKqjIoNz_2F3sZqgr%27}H~oNiu(Q%j73DS~@(@8tH%uM->Y@a7P+f0q3554mLP zV{ckkOy#TnL-^}cldy@ko$vjQS3Gp<*zRQY=&m?3MAD;V{zvl5A0e{c!Q6>e@p<`u z)=AS;Z_d8;2k9zRzJ3KA*w)3RWD(MO7$+=h{zgf49uN7hiKW$n_h z8xR{w{{w9&Orq{RT!g~l+C7$wZm=RL(MBj-9R7?o>f0fh=E~S*dW~7Cw-q-z-|0RR zsoV$zlz~PY_V+p2-C(02hC|ctsKFx3>>!{nq`;loG&O(3RRI&{n357@OLFmHpxyuW zhmrXiZ;5AuBfnFRc^(RDGB{&d=bMghE9raU$=_$sQ~=qm`E~n9z<7jSm0J#Kzcq&B z{EEK`9#h4^e)Pe{5D_1e@6lxZg|gK_q!^8DCPgJ5b6vVk7UL8e%_x$g6Rw|{Fn}-! z8Y7GsKQL0Fqlp!}Avi$$UJB2%U(2pF>B6Bpt7%t_dAVx%<+`wYzZ?-Bt{?)vP|iSh zRR5h21!8T;7;2(w8;|BH4{Z0Rqi+a0m0QHeud)6cA64}OKwk$@BP~#j?3Ed-yE7P$ z@aNt7J!fT09XXEBUsbj2&LO{U5Jf7=LGI3Kr#r9f{hoJKZn#C@Z81r>c?G+=&H;X20k0S z?uk4z`HMUstiO(nc;7#eznyhXviaSUz1+BVn=Y=bUub%b*||{OJr0J1&il6BaO5TD zY5Ef^%dl7a>Bcv|+P`G`zGSBy0iv_2k36r*%_<(Gjz^6kkB_HYsYh`S2c`$+-&%#X zSJ*HKYAhB!{{E(Kk^CgNL~RwlbqESwFSKip510Q0@$ZQoiT^SBx95Gos?J4AG-On+ zKc%cjx|vUDp*DrFTFaW>o~Yw}Xs0xVfYREivC^ltX$YpMb#c$m8Ei4*exe5fzfRp%Q{n0fSwj{T7hhSd^s=NmXnzPP1zRUIG>J^l5nS1p4Fm!8EEBg?cWzdob;KT;&j zopP32he_NSSob@MaYUU;-+Oil)u3UZHyXIwoyt~!Pc&RISnu%-RY*J4t@(H76EZ$M z@_d`t@6@&lVMR9^{*+xNV;H`ZT?VAE|DdHna*6!~jc-Z$`GfFdG=uE^kC}wE z9~hrMLFK%zdTD(gmTgX99vwQ1h>WsZw%gIdL3}yM#3M|_Nu_F%^V=VG z{gRH_S*@9)(o~b`4gx9kUTuX{coo?YU+$D8waMo1Rgx<0!4$-{WR>5xT}<<2HI1>z zeh$ew1DW+-*0^fuXR+(^oAS1q`37wP;enuJ_e+iS$E@;-<4OR|= zEOZrkD`_pVYRE6ujqbzs{C!)P>=|gDZhlY{B&ok0=tq=Q@ve3+`Jy;+YqmRjRcdZ{ zo(i<6?Vq6t9-Y0*;WeW(5u;^L@EG#`V_Vfng5fdd-)!XZXY*L1>a&T+{6ak8r*0W3 zZ194j3&sXrVJRW**Y?shF5sf_q=)ION516y$vyI2HxJ;w)ZGgsWMakbX6=;gE?=B2 zbVGz7nXvKKE_}jDhn!NHVC%?Ru2vhoO3uUMmv#6~r{4myPu8@Zl5Jjk9tg`0r5E}) zm~MV$m-ABkzIV>c z=3S5qnHve3X{JxhZl@n0c@tl9{J12hlH^)O9~>`A%|(~p?V~Y+K;`0e5o*H4g>LvmJD(U_MqqcPg~aWpg2Ys;c-Oms^J z8n$uRxKdLis=eJx$R<8xiMbUmP$;z!rwf;eT?Ia?aKIms1-xla(6ErBL3qTe_I@iS zhSbMrSq21yl`ZAz!c%2%yMSi{CzU@wBoo*^Tep)tuH)oJZ{pO`Md}Re?l8)F<&SGi zCJSJ{Egvo?*1)qXo%KuRnBjFvrz3Ur{o;S}7~a`17;c6wBYo(k1`xeXQJYcCAkiwG zy3x9wzEb5#S%(hRTGfTMd+|(1OrR7>RJO@2>o%ooLnVa>uAj}qIwY_CGd4K6v$WK9 zeI}a^@Q-fm)Zs@P7c25#!enhUbPtDLHW54@(2MXoC*=K)?wV8iu7~fMDIj)!lC4x{ zNq)@)!Q_>@aw7UMce4I%zEPlYi^~3I&WU{;*QeJW^Dmw^!Q%xN^eiHni`QHvIE~yN zgzw!8w0elA!ZX`&f~$-YryO{cH2m&uH#>Bi&j?Nl4L2X3SV+Gv^!&m!5C5>xRHfN; z28llpl0VdX-TP7{(`tp}>Q|lPkmS_AV8F6xn?13oG1MXu9nq2V?YuX=t^Gwg_EcZf z{94P+_FGl$Xw=a*X;lBJdV#K@dI3_B=wN+I>z<8V4qr^% zpX>YeX)Quu?{qtTzS~@rRNMl673Ux=>zxhymjaNbG+V`mo3?e~MvhC8QDCaC%2Gu8 zdKZx4LT8m$(O1KJXwAnuAhcxtJIMcb`BLHjg`k5WZ2cINaOn@D@}f|KQdlay(iQJ% z`zKPJ1qd@o(MOBr7%2~M50fX7^2JL7+(UosdAutq@{;}p91v`obW$Q`_{Gnz4 zr`|hE-f#kX+XcT$JRUUZD#OzH{IqoW7iv2j0p(tk+3NerhfJ5dV9S*^DJ{2$pqK3g*S-651DX?CN5d9# zjN`!TQN2fdU#D{6>vadiELua1<)YOTt2;}#NW^iwi#d zK3nhCAd^qR8oiovpy()Eg>PE%)bvvMlB z>S-nMieM+w1-jvs(y<@>Di$xAEN8a025rK7t0{!&QFi9@;xJyB{uE_D_hDD-AZ@_{G=DUv~-iq_g>1#gRq{A-D_c)n>mV|M_eP2 zef1@(mrgOAX#c|>n8^4Uy_8v1T{Xk9Dj84+=@uMt3nZINLrkk9#yXAz0yQ~(Sh8H3 zJiCfkwJZ=mm#z|rpXNfkMWG(13e>|K`NzYgf_j)-|9F`FrtJ6h(C0e}eZF%U(=bq@ zc*I#L`L1pckwpniQxAfM1FCs>ytz%SJvP=0^jmZktwQ|X4wwp7cV1RK+%g9;d&vyk zoxSw_uC~7I(XQYY}}LUa^8d=6KM+6vZ;RySC0A_e1_TOKKVvYl9# zL$2dk8va;k0RZi_ZRdlqq88YES=#KLb&QU}*f96ZANL#y5RC^VTV(A4{7mD)*2rCZ zGXmLlvFYP=L=bHTzN`e8blII?G>mLrHPE&fVAjkgi;UBLVoC3itlH_2Y(lEUt!uo* zO%z(fhyFGyCcyYAKuFpzX<4*~mmw=`cDOimL)W&xS~fy_l-o z4OKnHo5!l1rOmA(%%X>yK?O2obJgW7rWDNnrCmS%C?`}@R}MM4Yp<%Op#N%MTs1Os zEBT}euMR;O{!?mfWa)8Wq8Y5dgZ^#~5;AL}6)pVx(@KSH)Jyl_?E-nZZPcy3i&s5T z*>awc=IV$3-q{leLFmRmhxe7^gwYoE>%4u4mL~scdI4=34sB|Z&UpsT;5x&qP&irZ zJp=|)BN(})bwdi9TSxa_p!;q-JG66GtB1heX9|@=l!GOpk4&mp|2)UtSjTZh*xHQ6 z`oo@=Q^V4s{IVyD9kL#wds$2C@bdg@-6V09(a%Pm5auNhvekY3M0#=ZTu0oOh%ilO z1=`5&n38SDtfEgJgtn)C?klSK)dHdohabgAb-sWL&cUeWm46L+Sc zX04$w!*5!Z+B8qS4B=@}INQ2SsEj=nPWaN)@^lZp&`(q>ZX1@~uC$y|z%Q@IL39aw z8}zAM%g+)%bot8#`&6l$9L@a10Xcvr4s^;Y14Z0WO_1R%I2%P86`lgjvVL`I>DPj^ zPCi=K9me`h{a~&pMdC(5Ah!w@=UCf445gaDm9vO+}~}%A#XklFW!S6m~A8>y1IKfve-CyR=uaVPTCqa98C)0b?#0QTiqp2 zW5wVSY-;H%93DU$v#G4H%>M&#mS#n*muc>9>lBfHv;a7$)8B;0v?K%yT;^D9g>P^r zyWD}6YbIoPYo-(wz#5;Rv^j(JQ5nRcLi@M$AP^WUQAO zN|f(Kx}9i z7zphG!=YVZGKWuv;bl2efXmDns`@`;Y~2t3E&V$cb&=}TTl|&XyKL`~U&VH4+;I}h zH(cZp0|S*E&@1H-mc1Yau-#&%t?(M9VfZVjQ{5Z6Y6gK^8l(D|Zy7f;26g=soT5J- z7U1aG()0Cpm)rR&Xq%FD37>d;Oxr+iJG#GwKCkffd?CtB{A5VL`=PE``kRQ@_vNB5 zEF~Ee_pQh*cCFhkquv7WFP(D47yRq3oSzx#iKXg(5y)`mqvvpLvso37in43Pg-us# z*n<3b_|Cj;EjQp}E!Ro1+!{Fhrh|K1T$v*(W*lL$^;}i6f)osWPHhsUC!Aei-#K1> z)##d9LZN2+J!_>Afe0&&i`1~O`-?ljB79FDvmIZ;=*I%sn z7mb%_3PA5!L^|n8Yq%WKn=4;xjb=)GDt*gB8m%2f*efoNDZMpW84#A70u5Pjf-Ob3 zwXd0f%@R8N6j99gfwKn890claU78-xw(Jii@Kfk=lv&l}PvrqdCYqcIts>1Yz$F?D zR;xta7eu5-Dh!O<1kz`gMCaBJEtZgpN}B5gnJ-9mAP(Io{lVMG!jy!5sqLDAaimG^x_W7sKjxgiF08=bbDx^`h-Xpm zboPGszXf{lq}p*cX@GtO4_x#)4`oz@)a8B&l{T!QM-a8(2gO)z?zz zu8o#CwC;z>IkeAr4dz6Gffuixo`!^F2>G%D&B+Z=Fkj`O1K7j z)NL$QPAQRvP2B44({=>&z)s%mhRPE$J|AHsa}|^A;+$$SH1BpjPA_dn@07=w8nwJ| ziChDuj@`Q!cuswz0aT5icfBcB;k~R5`!KR2w>Y?9oK*-sD#dM&S2QHuV#NI)5zo_6 z2;ny{PUvY6xjo5j8488<8B&mO^*k{55@xO%Mnx6zOif!&x>Vv9%l$cChae;In(byI z{0Clg8g8TG1(XB=O)He0Exr|<%@xt~E$lUN3$(G%BA*PfSIo^U=F0-*CKGJ{t%i=L zUx=8{9WnBT`niYB_h;jyCuvaSw_CO;6{yVrjb;#n!xi3q$$4a6 z*&gm!&BRtm{GK_bBa(@2OMfLHNy}$@Xjsz%F|F-UXu*Ok*Kp8%d%sd(t`n6>XCk(YeOX)h^_V`9rob<@x{x3oOpD;*zx=ww68X#^!C zIn3-jGP(*iwLJg1?YaKjysOKt+!Fz}_t=9VKLiZ7805Js?+K;(yi!iI(<5f5x00G{ z2gY zD^Ab^@QDrB6pqb3%QG(%wHU9XFil;xj55U&Y#8%NUHQqOXRcl6!HbyKq7i@Vy2}NM zcus^c1P#TJPW8V4V)sr%2xlke*Ga`?A?{ecI~Re!QTa3-EAXi3!8H-t zOfqr->I^{_sLcxs6KZCX`Z;1*g|&*QJP}>_T5F;J6m@Ys0_HJK`)Y-yKEwWNn}E?e zLd@N-PxK344+ae#HHwg~%Himy1da4%( z(yKBb?y4o)3}ci3)P24nGBGo+2^9$LicR6+g6z$7yu(j5%Z{YVuBI&^;(^cT%xWmW zK%m2q<5#VN37Km2nJZ_MHY{`(P+V@3?;JL@&q}DyhY6uU9xc^6p61*uo<<(M3@kwb z#+l~78WK!Q#Vw3NnbzjbPvvKSuBpbKo%8K9Gh$H`*4oEgjc%~qX;tu>_9t!IppqTm zB)V?Pvq3&L&XcE7cf+RKF_qelOjK2mpa!gLb=_(=h9|}`_I0l@m0Pue?#JR|wL1NJ zHkiRMyt~$PjE<^5OeB=x))6xk>5sN3{I)AFN0%vs$fA1RxGZ6dQ9j9@M>jFuTqcG) za-Nl!H|4+2W<^yP%))PW`(NC>2iRRj)dngxGyxk3q8va<5XiUt-hd!2gc?W!0s*82 z2rUp2MM6guDgGc;njkeOQlv^pK&46(1Vk*6-kZP=-Zit<>@(}^b!PS)`Mmf3JUq`S z-^pH6*1T)Y%=^xKZPrrT-0|9!_10YX>>nSt_Nf=YIQ{0sKfC86I%nN58jkxr>%En- z4G;RkQm>vicEo$zo%yS?7JPO6rFOgQwpT`M{Hq=B_`^;wocO2H7oFo5|Kkd8EPmu% zTW_(6pL%Wb~;^p1tcaPo(1>E0WWbgU{RHgO~q&Q!5O>yZ1F96NFQORrvVr=^zKSiB&_JmC*Zh83}kIna~eCZej|R7&9m|7 zPi=VR?4Mh1hr3VP7IAecec4`Bpf#Iz~o~N-RrV^ll@ly z>a+*O{qfjyH(u(&&Hwjn=U;H%eVZTj-omRt_r+V5+4H1TkGbW+%@5x1fz6+OzH`#_ zkDvbZGK(H{-!cnUTbJ8y`|jV?dVSlY-#ud8XV3cC#y>f8{O3;}v-LCQJUsIL7x!QG zth=^4?1t@EdGnU}uYYjd1>=+aqm`#`eZvnIy#IzZ4_{)(OFp=0tINkf`_wj@U-HBf zOWnKV+tTVS+<4GgyDqo->W_SO)R~vfvDnKWF8=nj^H2E35sz=S`FsoB{k>KG zwe%?uK6}lCA0PRHiQ`^7`@9v$yne=|V|Lu>s%fi~J3sc|v)68M(*3`=b^o2-Jm%rg zJhIq?um9v{$cu|J)5<|f-dx8zMfdF_znH~Hbc&)odL01<4Ui@z-t&$wL%6tEQW{vF*Ja5`P zAFsX3YM(pi%4>Gt^x8FVS$gWF%b)q+@3OJGzrD={n~h!MookOCH}=~7U)o@cvDe;v z<2+l9y>`i)PTywi;y-(CDdq1<*g_8+i>mdtbHGP@PXCe z-Tm;3m!5O|BR>E2i)Zce{D(*X@1n~-u5cze4Ccb@m8W1d;*i5)lj#`WXIKk}ug zkGb}!L;mpM8TViPUu?r5p^qYJ9a@l2)FWvCZpKS84tFHRlz7uDSJ#XG)_k914E3Q2M?JK6=~phy3A-XD>GApC8_O(?9$syMNwQf4=`o=RR@Dnop(cA2-{B z`yX-MZPR`?@pES;-@W%&%dL9*hA*tU{wrIb{`@7cd~Lr&mf!WN4>tYmj9*WG{LDQL z{QK(bUpDQnx6az(!M*QzaqnBteEPsOcl_LruWi29JujdA;2GP_SaZ@_`@Z(jUU$EG z)=$rTdd8ZQ=b!DF^PfE8@b_-nXYbo*>@o2Nn~fT^=NJC@_Ft;IzPsKotKPl+i?`jn z$3<_gJoz8R*Z=bNp8GyA<%8p1`ug$rR(H+1?2v!Gx9TY$J_;9V%>2##^Dh36e_iv; zjMG=WY1c)+cid^O9&z=wTjxKbd|~|Si|q8%*N(jI-8Y5~n18qF&y1Mz*IzscUoJS; z!3*DX&7QBH@~!Va`9C9WpSZ*W2hI14e)r)UJ1n}(l!d;t);w#xc0}joe_TEP+MR3u zdHrAJT5F|wFP-zlYu21F@9M7{vGBikUv$nBAHI0Ig=c^8#?GgfeEEo%Km6{Zb6#`l zh0|ZpzxzAL^)BCH!hMVF_wdiAE`0MABhS3-o?l)(d$z~#}VtVyv@^FPWt@0SMG4iu7@ph-PK=R@`}64nWuj0>fKk^ zV)?nJZ?x0Quk7&DEt{=8X|umyIpL@GUa;}Quif~>;R}s@pXGvl(k>F zd)tHd-~6Q$xBk(gSN`#+h2GzE_upK9(rZI6ufOl>r@r>&&L=&)@|yGgcGt~cJLJxJ zPW{sLSAIR;@z(7ZyyBguADX!Ru2;-BY26bx{`J1`@>7m4*Shn86X%@r-4oZFw84*_ zdGn5gclqHnZys~l`D^|B#S<^R@5E&fxc8+$p1AB!ZlAf-(C=rwzWA~0jH%YYd7~L`m^uvdd2bw-h0IcSAAv4e1oemy!~e{tTxw6yG>bgfeXJq;fhP1 zyzur9e);M`r*5efFkfHr!(0Z>)6qQzH*K_QH48IAo() zt6qQGg>yVJ5!NrRgY}DRH#qgPqo*9a`V-4-{#ZWW>km|Se(kDNzWvZ4$N%Nm3!L}s ze@s1Xz0;n#<*bkXdB>)Ix%f-)|G#g!=u3Y;>g@The|715XS?X3Z@s$v&)@yqmD|j^ zVd@!|9Qtmt`jeO5e8PnBn^()c`|zkYcli09(e9(Z{PbNrf8*nc3tsW$KfZm*4Ht~q zVDjFF{pQOnyz`qqK6vcB3Ddu`{%4-w^Xui2$KLw$^_RG5-_9bh77P9IgF82U@~cO_ zz3Gzg{Q9k{;l{O>FUYQ2;|IUl>$}TecEdF{ZNC@1OkeYY8T-Gx-u_?v-d2D5$Lhyl zyU6FRykg{PlkdN5wWYT{`#X1>G4Z^YH~99$XH2~B&OK&5y}_P;ibo%Q&uf34Z{(=_ z)wkZe_KYWsGZ(#Pr|Rd2J-5WAH)Pw)zU)8md*y<6?tgfXGoIRDwePQc)eUD~z4PvO zo(UiBKITXJuQvI&e;Bjsb)yen;L|tk|I(j+yVYO6d(*osAGgo$D=hiixeLtpnLWPx z&2`Ux``WD*`qNeCKd|mUo`36ak55g`cxt5;_jz!xJ$5|&$k= z#Or6IW0rsD&O0|5wd<7GfAz)79(&`kmCxB|#JuOOcgPF-{_(QQX8vLE18-Yo^NV(x zeY15QoN&%zlVAMsvo{~J#ENHMJM-k(ub%gudy;RQxxgxa8nMzF(=Pq$VS61h^Tj*Q zy>INP|D5fvo35F$@+qI5=doQrD$o4++^_uR*NdF<@|0|=Pfb1G#b@7G^34f*KD)zg zr{8+oqKkd;<40dU<+%r=k8k{V+Xc7U^?T{^gqA z`OVR*zq;k=p$Br z{7bK|z2<_K70*68$NR5b8eg>j-%pr2$ELIHK5xdZYpqsIUSpF}vM+q)gu_?*<`T!Q z@OU!k6C2<0{B=7NZ|{2h-M<(yVg{T}aOy^XS#GOp#%nt)e9f^(%sTm&1x9~+`i!C9 zt-9{*(_Y$P?&Q|F*SLPpFZ}q~)hC<8$$#AUlHXr&=;$Bc^6a|Lj(_Oz z|9OAggAaf3_TP=X=GsMWeP`X7>pyqcAv2dbce&{Y{q>dY=ec~RYq$Bu7vI}xfww09 zG(IZ%%$R9ozHrA<e$m>ykL(RtKRX~ zaR-0(z_SlN=k1*@e(&wIPMdfAH-EA7A%`t{`YzvD`h*?-y2HqIesjaPm)?76%+KCA zYx)5vPI+k6e~x+bD-WFf9QXd7t8KpFuP^&>jtjSZ@0V{~@W0>qMRLv` zPx#Z;o9(&F<1;s3ZjO&vnz`(#S63K0`-r<|-f+?dQ=i=7z(@8NJL3CO#~*mpDQ7Kn z%KKwJSoPPdt$)nWt1};4bi@^Fy}8n|*)@;|M8cZq>)%PGA}7sxJ*aazJs#LMz>U-D=sTH!pp{ z_ZHjhp}S7_*7Gwr|JG91lwUq=pPV9F||yfy2`Cq8n>7p~ubyFdT?vJqc7 z=|)a0dclSl3HL9*gb2jBhu+h+aq_Y*&S@y3r29r@9r(~r7p(R-epzSFmodG5RV zoxe@{pMQ^-Cz}140gSQ5)YuI;DqoO>j)QC3M{PBB zr#&X^JWYMQRoYRCYW?--Df{T}MrR!*GafhJsL^>x$!XO)kPGAQ)B`q|w9Dij*Pe1f zXQGnIfl9VhRQfLVefF6$ZU4?hC9xdWQA)#cok;xzUevY5@S>^-FS;z9NZanf^~Cy1 zZL1S$LvVF5eu+IT`J$%jnpSN$fp42V8o{^)T4PEg6KkBKSptnC`M?D+z*5RwCJ&cke zxP4tYER3!Mgt6Mq)O)y}T|29K4@0mXga5fRtVM$@!9fJlTQ!Ih97G8YBDew^zO+Y3 zqQ_HjizfYBG*#7_veO>(0b2YwfvIj$1vsBvYo&-FDI!RUIFw=&rr3ljHerfQm?93P zh(r2X`f(k7Njtpgr`XM#=?C^UZ`!|kn+IC_mmT(#ZC-sq1vCscp+1cOK4BAT>G`;h zmRG|Ic0`UHkz+^X*b#6`z4GN8pORxoS>jVl{S>>g;V=mJd#{7%{Tmw& z8u`D}*d;b$iA`8x6IR%S6*ggoO;}+QR@f00c0`38QQ=c6d`dKgkBNrxInfY4C>p{i zMMLALNHm0P84Xcm)(Iyyrb#(X&S{cPlXXVeGZE&Uwy#H+ zgZ4UmX*I6ysBStLMXC`0C20B2gJPXe!ucA~u&x|6)v5S@sixjc>yr&)5zQ|moM6DD zg~p$rEvQKhxlD|sIf}^zV{$=E1!0y$E{G{0e5UbCDO*H2TSQ4)L|GdgETVb?eoxQS zIT(D#u2YE7Mxg0E2~7f~t~Q7#uzG8bVs$660FyGHBT)3x5#(^+7n z_4Zd&`suJ50Z_ZqrzP`Pz(2lg1xGimCyDN}bG3H68d6pcb)qcgFd!)>w-3p(p; zuxParcW7PQW zshP=Bxibx=tjQXAsJk;M(e-(8>g&wR_k-N`gF zHPU0dMU4Pedo9BRm(|FJX|=QBasqVy;pvK|Zu_{isDRLkR1& z3~8#}%lc6+%k|L0wJWSFtz1dHOo^haml;m#)h|~8daB+sM~xsjH>=KYQm?cHSZ<4F zLez&fC)Vh#@r*UPj)5Yc>BP{DXAH{q>S93E+cvt8cSO+;tGX{Z2}6sPOCwq+jcBDb z!Zp&~ULK0=u^j6q(}1dW^X}Tar9>kVGL0zWgW3n(-J#V@>#)4z#9k(Va}6zfY{z<) zIH2m?QaG!w&XMkIbU1a}>SZ{D*OP*TkT@N6!(P`AX z8r?>fSTDi53c#u!;R1h)s!ORt#0RxEU^k-{Z7iUxjO$QOz^nGP-nJf!d0Pif%wn?x z;hVg~Qf?C20E&-tHL~gD7Rt1FMzMDSufkAa1SjhH;HWkjdkwo zs(O#*mUtFRsX}aL;j!K~aak4{opxF3YFi1R&Xk-{tKe1l#g3k;w+z^^lq#@A73@D} z)f+>L+#QCJhE;ggJ<*Ag;M5#i_E?Vf-jmB9uPSa?wLlRmH{pX?Kgwmf?q%FB!=Xic zWl}FwRB;Tgg1MRAZgUl&r|Oh&dQnBnO=8~YVR(l7fh`(cN)=)jsr92=b(R|)ry5eD z)2Mefx;@Q|^#-P^0E0DpBBcs3iG*mt~=sv3eaWwa}}~jhg&ScdxcwEJ&nWBw<;Q-t%=<&Gahn5>v10;3Q?7*x&B3 z$dYZn$?Pfs?^UZ5wNFVioJ7h+5(b$1Q7+3;uj-bEUezgAbFA8FR-_kLoCfqdjJ;Wc zi&343s5X>fL-@r8kBQ|$Lk!9xZ>q3W61b(s(tL`vX}@#wR2dm>0b*h z7>H|5k*fd$cAS)Nrz|PZ6>?c_x+W2$Vj@PxNQi1g5uSHxmXym*PYv4+J}IwHS;D1x zS}x1YJ@L4v;`1by=Tn-^<$5r$67s?NOjT%_Y^WUq%-g>ZJ(}es+L)_s6UL~h9U~tH z(;;N1K|ijgxhG>mv$W$*djU&j{LWMMozwxA&tB8_-Unk)_mAVId}sW=JMPng(4$J- z{R8~m{GsU^445@1%vIQ)hNRIY!j|1kRHPoNi2Vz3eDJcVpASRXAYOVpS@dic%Qbgy z7|I3#%~LjM2RuqyxYvZfVJMs&i|kH~q%0_7p+>U|hoNwC7_)P}UL`K6R2 zV>LNlE(0m8|1 zi-f_YW|y}22PCDofO56Z?dwZv(Kll;TAOo~Zo;|<=2rDjbq_#O<`83Z)hwmsd(aozBF{kSgWk{Rz%<;t!m8`QKEdNUR=n%Dk*LbaBH zRmK8B^FG~A$g~uTGTzrJVH<`97dJX{2IiXNJRGK_IKnutvF23|hiPd#&FE0E9xX1@ z5-4aa1ZFk?J<-NvqK(Hy8;^-Lj@46>&Q>6je^MaA=FVCO;H+m8`$;r_Z6r*Z*`R51 z%bkM;S>G+NU)(~?8A>$?^*yGk4-HozkP#@HD#o?#lTQlR`FvSxJzagm(G?Y^eXN!G_SY`#dnsq zGI%&lOE6xr1gohr?iq&z`m@@U@pz25xlynM46mAG(9%hxtzfx~RyzzwpGZkBUlP+^ z?J|w~8ZoNSG3O@@dQ2kpm{jO7?oD*yR&j-$@Je$761&8GL>(yuYc0}t6^M5OO1oQt zp4wjMT_A}HmRxCJ_;8r^!&L%s<#S;PRtg3yTGBoY6;N9ujkYVlhXJv*$71uJJR?88e z*wmNdyjQEkVb#)(xM4Mumh>w&T*3rOaeLEJV6AwqeIs?yTKi|+nSa)u`Qt(+&AKa= zqw4l@jy7CnXCA2+V>&Tuv0_xm{MS)~)kBxhS&t@akYbR0rU|Dk%hJ0nP6N1Y%ys6p z)eIXldY7UT)6rsZvA2j+37Z3l>BM4GC$&K;AsGPqkFBE#(`mIgoeRkTXh4{0742Lt z-6Utw(N%FDT^8F0O~S-U37&k_qE&N9HiStdaXJjiq1Vko_+nKat+^^sJD4b+(WSx) zNsFVOJcS{%{WA#@TP04hm7Q(p{uQL$zg?dL!h8C|-(zw~>^>Dj7^u)#pDMfz?NgJ< z^hW(*=u?&tYsYdH7J<}~kI@i;<3-IXJx{;bzHXw$SS|xBswS3<%AHH({-~M@i%uXo zV}0cVAI#7al&R79Glb&azLIvGVFZ0LyUv-NCM8i<|Z(wLKl$ z+O&|pfRfJctuRSif-<}|P%Z{YJK;#Qm}(drypRGUQ!*!B;mUvwUI?>gV6EE?-aMJH zXU{+y9y-+lbifoSAzdD}ARGsby!e*sBM=@wq2a?E$*Y~6AfTQeCr~f#(7l6Xi18zm zFl||asoGC{_R_lEjijG=a%p_%- z^^s8lueE@rq%EAw^Qyq>pBg^W*f?$ca7TQW2eqK~oEWA>^%Ld7HZmjQN~|Nih>V zrnE(VAu$m_naun^`LL_HJ;Q;f7hVLB&RmJv!4Oytm+8h*5jGTLop?fP0~{GuEeR9P zB`Di#)2hN&0jQ1bR`p62aUm!{shqZn#g)MElV3Do+^r-`f|po&vgVxLMns8C7_(EB z60eGldtZCg{?#MtgySP%Y+#aG2z&U`6M>X@K-sfDLYC!c_3ob`!< z6=&VBPs}9+YL0=Y_5au1n627`sT>m&ueE71Df3_o-y}@K7+_kOwKGLp5~ffLFfC0+ z*sU8*Q`L1SWO8!y``ET7_5XHmGU;WKo^r(JUQ{gJCMcfIg9y_Zd?s@v40W zZ5RlDo>{cSv5lD?BncDxwQrbIT83xbuB3S-ThB85fDNNKw!VguMls`zCt+H^fQFGq zF(cO{VOqcd)BdFyi6ROjVmlaVrI{-j4ccweC{9@j4wDN8G>kNgIp0FZCReQ~lVl+n zPaMWr1hW9TAO}$zK9klhLBTJ4MoJQnN%ePRN}?;O&-6Uf`X#9KYa8M}v9ybAHG5Ce z5GELOqYL#5HIujs+q1Clt~_Q@wUdth@i zFKM=?$+X+GNV^mV+5@bae``cyn1bBXh8VA|lLi}W_#I35GFshi&2}e^;~w} zN~a~k0T6a1^{O`=eW0_=Hhmzi#$*gPyee3^4=`NSjbQZwEnGPJfH#D1-0~=9xk7DT z?gId0ALL6jK2DJE>cpFTGk{XW!)*3PmsU5e1cNlKc? z5>il{+T-4<<76GY#iko=I`*5JQXjh#I0iq`gq;bB6aP(6bZ~592{98=Buafu`>M`9 zW|>f!9@H*IZC)PtQmRn0X_&53U?0EtdCV^xSr4Yc)|votT%Rx3Dn1~ zZ8+A)QvOhKSMwojJ&y5iFO0AKFFL~mJl*k?3AmFmEo5R9!`;UsZG`Ei@ma1u5XP}? z`wo`6F;M~et=-3An#IH^9JKpY(Na8NE0)4KyQdb-h1DJ}qiT3I6LBYDmzpIg;cEfR zA`^p&TN5omb5)7w3GGcwNdOaxVl`Z*g+!e0^ul5{orww5lQ214f_k(z%_;?Zrb11; zY_gtaZJT@cIoOH0x)i3Eel+pQg$6C15F|inWDW2%?0&U?K9P5a?1quZ03gF-rSp+n z2W%K=&l`kS%(Pmga*c*TO}AKI5f)fLCTNuo`@vPZChnuG6L8<)zwV0;dcZh%#gmOv zS$_tqP|JSmm3pw&Nwvli_z&LY0_oNY5W6wcJ~F}>xM!UUh_Sd0cmk3rd$1bxt~Twd zlWX&u`MCg3AT?vARbDw9riGaRNQjteU-~p?tp(Tv)e){LZ&`}qjG3Q? z$%NWlmNt`M@0<+~A8riT(b859C~=tSutc%-2vJhi2B{@#j zM1wZC9~dG(GAJcuv+Wq9>V9ywT{9Td&5bGP^$;6jhKRa7c*Rv>9D(Y4y;=gV6ueQ) z0iS7xiHfd9Ihj-|_1-4M8yYV)lV_9+ULy&^*gc4;SD+>YW0XKO>cp7XX_%}k#oMvk z)Ja0egympinyCQO5I* zY8l*FWasjiZ1l&=@6PrODQ%R z)v+`IVyD=qUS*gts?kPcR5RXq>ZP3WI=L=y<8_i|R*d_cdaq_0)U*^w*ri-)nEWVh zUuy}U8SOgta-RpSwFIM#c8%3=`EPUF5V;Zi3dRWvq2N`o7dCy1Ef|E!hElv{s||oj zu+2!XX_#!Ny=ifopYbfyFxgOmX=z=G-S(7*$%X<8S5+!lkfzXme86J zy6{?`F{l;z`1Pfg!qxD_VKNl{7C#4nax7?(hmQ zEul3#R3r6jLwHPV-QeOb0wd&OH3EH$aEopS!-fMNL-9ewx7bNAsaK7`tBMMk7QQ7( z1c8}vr>|j3mbATTDLQ~KeT_Bdo3zg^s%=xR_F&LjOKYL*CZ{w^aS>2!39Z?|1Nf{k z-$LOE_>!K?!7Jew-fh+NErwfRLX6ZU#9+C+y4Ad4n%&KW&vI2&*vFPd5=p^kqFypD z@;sb9chq<=2`S1#mC1sihWXLn!PDD!Ul& zy%6bIc%T#8qt~lF;G@@S0gq`ZC^24h8pieys5JzoZoe2(D)V~jk`mwxvxW&Wx4RTh7!w+w{Zo>ppo2m1CdNP3s=3$7G${CBmwmh;CbcA6RR2b=GD%|UCDHds zJLK}WaV{xlG9qs3RW#ISXK5I)@Z-9p%5pARnshoBTXyx*y*cDq#qc`*(3doR4H(GD+O!hnL@`|hZ+ z(2ls24zvTFDl36+LxVe)RSY-UsryHI`v54h%(U_hSLY6DT8QGnoMonc%&I|6LxAh{ zi->mWB9LaoFpgi?O*?7(J`utIkP}(Mgr$}3O$+lJAgeLcVJueb$`6kx3gHEKam=)D z&ru$RxGi5>w}xR?!q^YvfuU!WAPbWZ1a!F&;D8KhnZ{?ih9P3Sb@N<`5ZFoS&aITx zD=FUj1m6>pfvEB+QRT6g%?y``I8trMRUQHJ(GPov6$oXlie_G}eP7JaT)caZ`9e$u zQY9;f4{?pNW!4o%Sa><1&})LugaYWDtOP;mXBVUPbrIU6+d_az%1j4o0|HD-;f8UD zGw*F74D$m_OW}rbh_kT!Z~{yV^Qn|^h%-(6b&aM$Yb}K_Mxo8Zv;hINmckf21w0GW z1_YRv!Wd&DXWly!c!MJWyTw$ckir;a{bt^)ctm6&>UTY~tuUrjbT_gv@>%A+-i24* z0=U||j4V zSx<3#qYrTF8S?ogc+Idze%XAmoxx{b_I>}b=3?TruvSQ6jWKF7{VZ4e*Uo3%&w_=Q z!x~YTTvHiFC(gVKP40YFG2G5q3YTD|jMJNisRgq3rlqjPIK5dI)jz;Agf-7prj)`D zqy1)Kg!)XY2m0t6nM0OR_+g|`d{(eS5;wQ@h%Oo;H^hyG?8ekAjME>`HBta%2MFV{ zT$M*OM41nwA%X#*8KE7qm(jrh<*;wyRYp4|D#*Myj0tFmqoRR!Oreo!PPD6H{m~9- z)h$A8DMfikkj?b7T*au-4oThE#6;+poJ)&_JD7AoBBzRC?!DpTJHgK2eATqB?OaOEoea#26Hr8R?Rnh){u9@k5vIS(_ zb&vCGl!7s5GcU=##&dJ55qNlpDM>d=vV5((5RWAh7JV6QIMcKYS37WIvx-r>y1{c+ zcWH<->TVXs!_Qh${Pvcm;l&Qi%)(gs?JY}bDWmXaVI=(amZhAKF?h4E zTRhrZma-*A;LXC=`0Xu2s?r^NqW4P~1!MSTVRZfWWs?#L#>dRU*!t})OY&DBf7*d9 z>>7>COns!N&cQ}P8%DUrXSr}rL|QspzlJ&sX?66{nR8#HWo+XtjK3ey?h@cJ$}c|4 zRe6l+)}2fknIL*2Z4X{`76Y#o#Yq-}xT1bXi&%Qhsn4{CrM(S4V_(9neoiwi+WXU) zR|hCWeOb>25)0;ls+6vV=pXfwM=wv~xHC#&fYD?#ud<+aM)PD9_UZlx$r-zQG5wv9 zH$>2eYi1RrHZKBSBt;^|Z_UC8{{g0@P{b~S$ifK!0j8x`#OT6V7~wy_v@~xn*v?}G;2jQby8S_(3Z zFrIlY4d640){r8}qk$pD8hn`0Op+-B(~Ox`vtCz3;kCB-v2Gxh?o|bH8#CROK4N!s zh7{p${%WN(-F>&dQG~I4P$_q*6$6u>G13X1M2- zF7!`vT-PR;zSE~k#Zu5=$2wTbgqY_`H+lm9&h8VhvSZNFNx^|r?!vSb0iGz~ z9y_Tz3llVCNKRbOj2cw)#x@0bYdypJ`(Q8U7s{cJMpANdsPKNrWT^*a{80DQGiT zc?aO-V4P^gf2I`6G$+;75dGu7#kF;ZKuKi|G$y-#emX7bS29#&;7&CXYP;CeO-_wA z+Y$ePP-U0ED{|oYV->?wd0`d?+%0BWWsa^s7}T^7j({%4O#5iQgPMkL)a@5BCZxjJ z50Kbc>3k41Xz7HtAK=X~(_!r6_U-`T$k#AJ*Z?*kD_z(O)^)c6%hXdTY;an(SN2hd z4XaHu;@H_P`??qtB|$P!;h1UPrZf)= z?M+Kzfsxg7uXK$r>goFAV4tDJ-xvrSmXRM}TR6SjeTYz>ek3!^9Uk zQtI1`R4FX5)1mQME@Tu(Djh{$4;3pcXjpWI1x5+Y!>)P==o%?3F#0_{%T;+D7IGA7 z>Gnos1GuM~O>$Hlz-L@!%JEhZ_>6&*`l^GqY=#A<|3O2p@(5u8;iC~2n5HS$6k6AV z`-cUK8eDg`h>VhK7wAMb0QlLzw1||WIs}^>`M=#cx#euS(cR9*DDb&gaKQo6Du$=> z(rkgTz;mzUWKh#mSYQIV{;*I;vjxUc&%?wRIr7n4pkE<{1$Le^KFc*O zYV@-_0SheWDLM)CI3$}uhsi+#x<=Sl$=CtJ_$*iD5&clgMnjR3U%FZXeHze^v;x#O zom{?-0mz074SY+R0@}%{F<>=X55_~wTov0GdZ-iGhpQ2b0#6E3#}3gR0o}rgLNwST zKr{rg1MMjw9|86haJG=)!V)Yd5&V>z1;ma9$}dU9mPW9*YJi~#l+tCKgT^@bj*SF^1c zK8HzPa@R!^EHp?mU7!K7D*2W(ng=82s2XV2iLKm+30HDdAhhX!DKs$Rc&^n8uKwo` z)!wue8W?dr57W%FueH+udZ4e8CMi4x@yeK*xJHT)Y*WBD)Yvroo{0u>t$lEHK>rD; zOSoa^Am)zDMkyH2IB%`n$jzVuK*h3)vCXKj-=xYq_e0(8Xad)O;}Wbg#0af4sAnDLj}jfj(mx=lWT# zoX--rL*Qw2KO->bUiHMF zrXiwr`^8L&86v4`Yn!EGiMUr{GHB_f*uxmcd6=jpZ|@F5@PQq48;in39Ra3==mR_{ zW?Es{a0~(=`~caCnO4g=?M)+Rx<%lVWR$>}V5VEIOj+HW6I;6;{Z{0og(FAg1NMep zf-r4I`!1L6qXnXfZCY2!)$SPiP;hhqpPrMr3dfN8yN+=1N|BQI z?zw!DJ@6Y@`Ft)(DunR~6 zAUR)mpSxe=1GX0{fp5u>qpVeo+PnzxlAacJl9_4W63(Eeg$WgGsx#9*zZ%pugf&m( zi-qt5`}eGLVQ6R(ragTkg&)q;@-mfWhs1rQ+PZ~?derN6`o0dyxYD^-Su$wXNCA)? zqMduSWQc~=jX*i6a&po)<#;(uC#M~^9Q&q&wQ4M<13i!Rdporb%kyzS_M#o|0PP2R z4~1!LJ>r~0O;iZBvC_SEK-Fa1@m@T_`wqG7ZID#TAUNe)^Wt5RY(UeJA{FQ}tk%A6 z6Lu+y&YvTlzqeU|x5EsCVKhnuS~RO9c?C)kGaZJ}?M+Luk#nZC_9LK2Y0@WcF0rYH zbQ3YK4p^;yIbn}8wKgq9CQe88a&QMVEljw8fMwOX2)m{uZ{OEa#A8h8LK7N>qpzii z$4F>}SF$o_gG=#-ohn`gibUEsxCEDs(^mwFL|U7cG@HOoVs17}XeQm%3zQ#bdYI5G z1vK-deQAq*00|v9iCg!BYn(JU!bl*NlRzvdNnK9Y*5t$q!qGpjgF{ih;<+T~r0O%S zSQex-C{St8h+Iq%RD|6PQfQe>pEFMxhD$f+0+oUFwJ*hQZV+Q}n^_uTvln64ZxmWz z(yC4pOfqILKFihpI2|tVP6wRy*_kK)1LuQ#2?A8FM*lMkdEr%DFmNqgq66Ol z60S2IA3n=fC87UOY|^L`hSR1&$f^HA7n1n9ap6auX%}w00XOZ||mwgHzc;OEP551n) ze6T(1FT4_hzH6z4>(&bHTvBjkB0X@HQZZi5=QkAeYuS*m==K z*xeTarv0-GNf`+Q6xJ{bR$L>BgQYdB-2R+PV41V*U9-T4!?cJa3@5|10Rep?j$)RE zhiL->OpBwKVON+opm5!jz<@iKk~zk@#Amtsy3PtL4=eC~jPB^~?m3wCc~>UO$izjM zHlTgGOX5S=Ftx{+u9BB6!B%L_6q$^o@QWokP*cUi&LXhe8d(I>#T4F4EBa><79ZXXJcSet*s02e_tuWu z8BtAuc@mvdUt71Fv3pJtj*BMm1-8g-j|dYW6jm{6^WwCskirooniXM}Xaty+W+jYr zT!cvp0!+iKqze*q!${$XQL+m!0i8#}_I)CSBgTj>!t@9M4I_mkMu{%M^auf_rEtU; z&qbIXA;7d0ju_>+@NSk4*w>Ou4)%@hq3 zzlDC5D+G#=i-L>p(6%5~Gm+dAH^#dzyt)rw`PRc*xsOLc!agP&f~wJ6{ZTt3Qob?%6WzNW3YIhK@SE&@zTVUE$Di?E9{0!&L`j-BINgb6+ZOiN*oah!`V zy+wP|(v6?6xoD3u%_(w?F%Gw_JzOaXy8%HQ1k%l%u;s~07exLDXc!?0hFw->+6O*^ zHjJ<|4;#C-X|EJyP}2hHz+N&l?c+}kYFa=Y*uG|_!}daqlF}P!Dgkw1cbl2^o!%@4 z8e&=3NN)uiKkpp&>{$uImiO8ZLjm_-Yuz@jpXEXT%z98=g&~&iPr>jA*$OGDFmR~P zw8}x6G{iUcJ*{#eEgU{mRz&il0%zr&f_Ur&^4A;53cG}&@CsywEC}1L`CtZ(-rFtu zXF*7?*Ns)XhrvK|vT#2IGHle_-Q&I9qxMZ?_hSzcv%fZO`DS--8B5Zf6Tp5wD?u0% zTE(c%i**+!LaGH1>O*HvW$9s7|L%c{FN?=InH4)eeQ8O#3D4o_)&|PdrAN3tOoVg6UHl##-L>mW} zLJ{Mzmtoh21elfrK~JrHQNAf^#FkQiqtlf}w=x=i8FuMN>AG};LzWb2*qPU5*p(jv zrlt86JM+2>6ORO#mLeFV>z7(w;Q|a6+S{8}3RzElm4v3SJ!xZkm{KI5bW#LkVuI2O zFoQOXG!bHA0<4CsPc(?z2e#t4fkB44B6vk?!|qkz3?6$1;~*eaoP=mf}Os0VQY~B%sz3KIbeTdzDgxe^b6)BH$;4-U4|(r>|%H- zFNHzIU@o;J!c}<=6IKg&OiQy0Mo%uo#2W#%hA`+!?Ip!5tV`Qo@1+d#hS6e-K7x5R z;4&#{FdA{`6?T}lT)Rz5S}v%&rMuB!R#RLnM2tgSYVPAOc!kmeH-L^2nXyVP(|U4I zS{Jqu7<6zL0btW@5a?j=8T$ra^}uY{XF>*iu**J05Y(#>7RU(Bj)O0~GKKzVhn(3K z*}f#ChW!%e*S;l^+PSPtBCzl>+UdHx(T*{v%P`SIX%(aPZE>SOx=a@~09oaO_Dlmz zORHiP$CI$6sC}&=!1>Tl3ImK9RE8-RN+f5uaY!i)Fzzxw%Q@go__f*u3oJXNUOsg@ zB;ziZVcLlRuaM?rjJu4_a#bGD&eDpNM4-oEq|gnwMN1;iQ{Qy3R?QTQX$VTca7+v1 zN*nF48yYamL?NYDoX{WbT$fU?P%2%X3)=zqfcFYSYP7SoAy|0XxwP8A<6I1Hy`(#y zM_9#hqn&hlF6@D@%7>v{d(%P`hiw;TIt=aFn}*q^2kj(@IBcKUr3(`)l&F(vfp(Ha z9QHSu=^@Wzgy@iTAb;%XL8+es-J0@Hxy-GD9w?o%#pdHhJlwMgvf3!p9ZyV2oybGux~BVhA@nGQp{_NIj>4*M0% zbQs#THm#KS9<-Ch;joKhmrirV+xH1l%v(65B+Z7+4raPF+F5N<61lzh2n+4>sCT0s zqbHYP7gdy2F>3RoLl(j^C@ccnmDkU5wL9i^T0@2_2PMe>N}~UlME@^|{$CRPA8Xaf z?O>OU+4pTT2xy1(??pS<8@C_qxFt}@PS_7CUkWq(CPq-nXH2+WDRVUmb|zL92IoXD%|h8QU^lg$Wh{Y7I-49;mIP zK)}eTRhXtBpmfq?hcQj7unQjoOiMEj#x$+M4_mJ?!u z`y|x<%^}!YVjk(6W%9|6RSwT!kOB-l_8B|TReMaR&Gx=Zs7WkQl31do`w~hLOW^n# z*FjHKuQ~;USIyyrSKU61_>i(Ju%&2%Z5m;_G#_kd@RgTc-#5{&Tul4O+|bbPAOToa zW?k+}HI3I*=E2bPSol6(ryhuD4V9%ygMbxoy9{A$f4d+Jx8v29<{6BXTZOUx158WX zMvRnOg|YnuOiS3#NV!!Ql|R6=nB?<5kuaF?cB?S9e?aLZ3}(#6%1e1?02p9e0zh`q zbfsCyE&$}FUFY8O2A7gg#@wyE8UqmnkT%^-H0;TCcj>x61~B4s<-N0mSKk674+cot zCu0v|FS=S@hn@!2{5XFdP|cRcKl}LJuZCUdP|X$@j0t72}Vf0 zrO?TE-Bp+dBgD28I~l9J3cJ=L#I_VX8L7PTDh3AbZz*yyR(TaBlnAJ|bmjr<-PpkC z4I+cqTV0CY%___iI>#UB)C1T!VdYa1X*jS?I`#n8Czh!pS&;j40fCye`fr65)imrvg?oz)KlPMrbFyHe{=z06%6%%cesaV7#n}tz%wLMMs zRD}YDMk2$gyH%J#rE&>WIFLw}M?>;zH)xnXB*eCqAu_&r<)tk1&J3uxl)y2%cBQG$ zu7NPHZ7G3c9K$N?hK-Omml8O3*mUL9t_)mn378pavkH@ogwz{=*$0k^lxVRdsnMXz zCvZwy;nhDlS0=4ig^HvO`ZS;!QtRQB(2@?x$2Ms4y_mwJ3cGWoLft?cl#?XwuySkz zLfEAnA+`mCh1F_iJLm+`0Nawb95xr2Z55teo!>JsXdzhI8{r@<-3tw?^UQWwHrKwt z)y2@g!3S0?nC-A^F2J?`gs_6cY^%XBENw0TAuMY#+d*dug!q~Ogs`Q+YzL8VLTtAH z!n8#uDc%1I%Ym#8VVPKf-$*#Y*zuK?3=D_gC^fM!kVvv$SQ@q4MpxEVJ}Hn;+Dx~l zR9eRefrM^Lspz(p3RMj7Jp~rLH3dE+5v3wo1-4Nm(7?8#UC=Q3Oy!c#aL|+F!LUxu zY=;4EfNcqQ7@NHcyX_;S-YurE(p|l9LMY2Vi;!e1Owa zfn?KR^Fh*J6DoD6aeAW+5TICv!jRrY-tTcVVNMRq$jr7c!U^*>r0@4u3U)T^2Yc_V z=)cL0GJrNITPEbKuncRLLqE*fiKM%&P=$b*D=84_4JK=c3pai=y^2~}NFx|my9$%0 z*afKzATNex!lDMOIoS0NQ-*}tmO>GuN>_So$kp~dZL~VTQ*ZfhVeb5raun8ISlfgR zJQs_+$F`JOGFoG$ALeSCdgs+@mWr6Asmz>55nOD(VuPwK{r#MX%S97&>Gh0?7sKjb3|!~);ywai3Udl_?TX&@~R{H z10NnC-Uj$2^)IZ!*%kE4S84}CIRdsZNfAT`(`%GI2V>wHCQ_-ag46|&flrbk!+N4! z|1gP2h;1pVGR}16OpLz3jHvo$Uuc>&Bppt`?~1N`Z>56hJov;KTlbS8|<-ItfKk%V2pbhXzLSV?Y?FxEzEVYB7E&+j$u2~QrOve?U zgE8<8Q>#=~LFxj?z$dAZVM)}kf0$Mz#I_XGIf>fKndJj3px!O!j)k~)m zi{{KTzCsELjOSeGhq(s6?3WJU(|_{#C1;v@H7~sW0sSM*#Mq(2=xDC`W5#FBzENaj z5)4(OrK(Uc)Ts=|4EqN@%fQF<9+iHu%f0}7*Z>XSV+tM+RQpyW`Xe7Q)>|Q;G}q&l zX74Q>wTB^LUYn)j%am@zH3hAB|H&?+mBZu0HY%*5_^?k(E*P^KjE60pwKpy)gDb|Z z2IFB{6#>Ru5Mv~9DXe!{kpT)Al=s2!Df0O@a-`d|D@Jpsr#T0pS&Fe*h6>%sJ@vY- z2LTz+8y*+7w_z2<xa2o03i@%EtHqw(l?YF&!dJndL9Pjk<={k1}DDo zM#e#|x$vs}1RTUxXy70_ytncm57ZzRS9AhMh1o7-u(VK*Ezq#Xj-`O=25qyz@5xForEWP4$ecGg&MRvMwbP>;!0fn#+2VK@9&$Z_Fy!(O%VPUnUNKV;O>w9Dc9j zAg+}($BN-@_fsdqvJS(lFp*4%aT!cm`K0wbMz#WbL0}(JJ}J#+3~P9p8u6~)@A19% zJtJ)nGm16U#AUp}lY@U_(2H~u@Qt3fgD;{|qT!2-tPj5mf^GOcCCB1eXMHUVbw+Te zhq-Fp+$EtBH}{wrXB>VNh+)>11)eb`fe0fogK^(lfYg&3Lz>-X&%vXiFkuIjL<3Tv zJlOnELx(icVEkWtn6tZ5$Qjtq9hJD*U5s`OzX}|9cxyzPdP(U$qe6o5!1S%XaVfKA z#~Fk1zya9axYFtf!~)jq>bh3%ZveHuzmdR|9UTod^&vZsiXlrpLXI&G;EX81)L?=` z*(>DmE8m0#voZLgMo^lvVdFLiA>(?(KMBlGkfq$lS*5E~VOGupc$ho_N~?jTm34q@ zZ%0e;$0)XN3`<~s6Hr14r5MQ;towStCx!=Dm#~DFZ@meCFdeXWhiD|a;->+??tF^CMgbsR z%A($woR8EE@Qum&NZ$b8=rm3JSf0AF^V`9QFJY04^g()TAh@x&V^JK9~ z)8rk`fc4(rG!YqU!IM_6)`a}t5?er3vj3SoORlp*dqMgZ03PdqB%e2|D8pgY{6*YhQN> zav8skyvXJA!q7uy4h%g~puih5Wuya?s7=*i6onNq^!QZ5%UtepKa0WaN%vC;`5Ai< z${3icwzn?aR;iW+*qWkO%`tG@1?3u8=PmEmv!DgvVC@s8G=bjK@ZScO zg=+^@^2)6T0%L%62^bltnd%ZcJoO5e8hSeFsW%!j;0;ND;Eh?vLcKvFDP;$^!_NZ| z(z+<1IXumxf1gcrH3Q&1;0q4YMkVSd8uen7X{eWK7+3Q$lH2IDHrRNi-eencvfEh& zrR0loTcH#__%ReW_^Iw&nhX+!x^7{MKW?^h6vqvVBP^vcig7gL6?ya^fmN2e2sOc% zwSklZGL9`6_bpToY+Opc7=ady2afUfHJ8^4SmQ`2zzD8TKHmr!xN)THh%tP@c<9*g zx~Ru3q~wUvYr(j}a@PRusk!UY4jKsajncp)MX2|eJAYHt0F_Mj$q z_arVp*DwoM*2Pr@K%39z(_ydFpN-Yzhk!<2~Q9g(A@_&08!77U|xF7r?mh{OL_t=poygbfFuBcHwF?(0s`L{NEErlfERoLOF!RL4iOTuEgHj+DC`9pm0EB?O!#icfP^k@)t|c-^5GVe$L;8_gG;F_{x(Vg16>8a@7I zmBr_8Qewi%sxU_#HtSMKz}cNJKN~LV!a1!FvDrw66{}&hE(Ie_nuQTJY}Tb<#Lfi< zCl1U6+k2gG3M^P-DsCa|oG`-XnVHHwsAf8wztc zy!1D^anz4#Dnb1T-yrM05w3ca7G7177z%N~G@jifQ_&L&r!zE}*mQR-)W^(?MEMbb zE87-~0u>n%N)g&b+gOUW?C@Y{YG0TW_PMdhy&Pevcu&Q`a6CdqMXQQQ5tI|ZBdUo`AZTNTc#F$gPqd@hAZNdW*!tuf|E*XO$3KU7y z+zWrpDq>P&XmWlwKFv8aO?qfo8~j|ORP*UP3h0h@J-yd!G{Cj-S&>l1ncb0>!rx=v ztO2)ZS!s=wbE_jir@v3j>PbzrW!ZvD6evNlJJ08{Qf|SS+xRqBzcx2PBf0~J2D6G; zcngktqf-xfgTSEPC>&M4!R41mYj90W&u0@#Ar4B62e78B!&}^d5q< zz4wAobG1wtsgNzKogM0lO;GoZo%iSf=$_s~vcQTFD7%QPveZS8wV-4}yfgB^(r1%Sb=D<2*Jc97UFPq%13=$dW; zbn{}Uf8#2~z(X$;q7o#|%(`|bmvxLv5#GyTfY;2IjAA7+ij~MHRwAQViHu?;GK!T5 z6)O;^us_us-EO@R3)a(kS-lypKED?FSx@y$VdZ?5>xLrltr095b~ouGR57$kzfvg_ zva??yNATfrHxyb*5cqevs$0h)D->cMc|sxQ2S;Aoc#lt7WvPoGhr(0}g`D^t1^VHn^g#rJw9 zA+kSF5e^quNW!dp1s{EeCmp|Dj}3cx>P>6U@Z>b^C{ULW(oMo74X~d#f-h60kYS6x z2qppQQ3IpinDscLGC|*06Bwg1iBM$%-^j8CSmWR&^DW=fdK?cB2p^5$!<9ynS2n-` z1fMP;d%R7IkjR1%Tv;u>@`aLDPZ-4-23FFgTUe{;n5p})xdmI0$bDUEKPN$9nl?(x0Ae{ZK zvU83-4#(++FE+2Nk2iPG7kAEhi z&XM$4X zCQUA+DFUaI;ws{?TKaj)bsVuy&WFate4;La?Szy9xSfzERbF{Tj}uyD zsf*C35u`Z6S!9t{V=}mPDUR@?XQMz(M-)(Zh$B9n6pj@KFXn4$fy#>r+4F61vXs*O z9-g^Zb<)L2t7(Ax;lN4Sn0LBp56|2yuNd4(q*+G~&s^861x}*ijd0Qs93vxeKu=d- zXp|1rSLz!Xx%ipgkyiyMq9XQ70~NWzC-Rb79jIs#U44KcB?dkGYCmPQMn#l^P=h0B zwL9c&RMayK&*CvBnaAFXKYCowDvPfXr2K@_ykoD-WN_I?90tugc zc-6XQu126)176%@z?s&15LO`wBEso6dS_34qgT+?8%!SH4Q;@p)9D}6l03FSa~{#7 zQ}T*J#fXW0*NB*0{}p>B3H>8x++LngNx_0MqVZ|29;w|jM%4&*3f4dt1Dc(2r(1H; zc^r6ggYN&bdZ@Nh-x$d^W3N*kq*3n_=NX zuTH4>4!xnKXc*6k^T@~u-SCp}6lxrdj5)tY66JcaS9AdrdRq_b8F=2@t;R%8s zf3$C(y0>0Lf)O`(SiJx;gjAFLM9xOpPeh;R>7Z8+)7$}y#TzbE*yoL-hCxWD>#U(o zrwdswq;}l68gVY;j^J()kv-lgB)pK=@Pf47Yl_X8Cg2^Qv_Z(I3t*+3=8R{Btk~U6 zfQOWo7efKHt37%>wRL9*X*Zw(Hy*atWH&@z|2nZ?4lbm-fP>64Ct^OQaK!2N_%v6)cavQP$qrQxGL3P8 zvM(fa4MOZaU4CF}hyWIS*+V3u7gq{kr@IA`WLmJW=jhrB_3qaWCte8OS_8|Hc<;;KbYJDaIPhgfE&^}To#bqL~S0^-h-6h=M zGLhJ;mm1u=gnza$%<^ zh-Kxe1gKms5qm{JT~M)_02EM;Tv%^Uc|e6rcw#NWXy4%>-67#Rm*>QR@}&Ul(iJWM zC@h=MijHBayCl2^6yw$d^IXdd>WCuexsvc6pp#h-6h?)#ytEqFvqKgrj0&;d0xTst zGz1dfK7p&r0lg!^Fuyt?_HJ8p7!GM42_!k4Jr2A#Cd9e~j9e!aYsP-SsI&wRzHuQT z64wdE`e`ofePEe%26YMSTuYZFfzN?$Pi;ALyXP!M=>h!;9sGhLcP)3De8?`kVW-cPc{NMCEu~~ zUM1Ai&dwWzSPr0s!QOUmk^S{i!g5wab$mZ1xl-uNFc`rU9ndb*M%9Y3E*HyoZLt-gHs|8%y2Nmmt?U3It;+P@`RqDZ}mgn{Br(P2n;yL+qrcgV`FgZ(nOt0Gh(ll zYjEpQ_Q!7@iM^7x!L3Uxm|Vsd2kOT{yiVGT;rg*SP(K!8T>^NnABzL^V;UBY zG7d@S3CR;{C=GOhnVpf)VqjC5ow*0a-_ZOXdh@SR8?C$(4smp!zPLGo(a@3lEb(@m+v%DUad0 z!z5697hqgUW4P=v36#|Z7?-jbPH0I2RdoTzr6h*$AS8kJDFqmp0g#PL3IF&UHwhK} zS%b3~d6;o&PQ{@y2^8A}G>*uEk=Sxy<_6N_lAds#8Q`e8eZhr^6O#n zX#>D9DQfBx*!iW-bUbj(^^S>G=f@i%qzmMHg?VTsAs4@E1}(Z8N?180wLAnbN)R#Z zKw60*K)<0iK!is94P~4N8TuQ_IB}e)Z|JTsctbnM*n&+l48PGX2^8=p&YO^U8_M|{ z|Bal_@!zz7Gm#g|g_2luSATJjvhz7?rDj`l1y~YzuT$c@*NL}*1esilnRsP*j)V?x zkLj~2$VwvJk{EMYWa5=Y))}4M1mL=QhoPIh+Yn;$Be6U}M#sgWiC03#JKQcyjbil_ zl{bQf;{2@6Bv3sUVqHoo`LzX!S0FZc-Gz)2;Ec^J0xydSsk;EoFcaX`!xSPR)`grB z5S&|A!LB{bgjjC@meRd?5L$Q%)mR#y5(;T0OfR_guodHw_7Ol5f+)8hrlrbZ{$D>>hOC7ZL(4~o#r+gDxf?xX z=uSlVVry=R*0l^z2_^XAy30h1X@W6)`Q+t7n+$b=0-YEHK{Ag#UXXY zgAddjS|d$Rs;s^-xiH?`qrNe@FiCCUoBDy6KEMq_CIvPEC2Uh6f8)>;DDF#8?bK>` zw#Z=<08g*?%4_2+IZ>C3`JU5Rtba*)O*c7%ot6 z)}~LStH2=9=hl7XHb+j4!oyZ25mBKBHGP4r3*J@}z*unP)Oz5!r{xd;S%UzPjk^t+U`acN`XmHrKEUEVySzfIOIXL%i%Fn9F2uTobzHre=saXt zur8CZj;j}wKz&?D-6gE!%ETm4p_bt7U2W0~=^`V@VHw(Z)p>o=43Z?(G2Wgd>I}q_ zW^jRI5_pSOKo=-ZurE87F2hNoYQl1 z8hSZBFDG4VPTJL+%AXVEu)yPhJB8lVAJ-{ptGJ-E7fY&7NeA|pbQEJr^($!svZUpl zit1a@dQnBVQBi#>YX8cpGKQ!CaBno>$&fkiamXCs}(Q*tK2?tyjtK9?c_a;06k{^9TB{i2w!5NL_pT}l-EHQe@ny zekG5i%dpI)Sj|_8kH%|IF4C#b5H*}v!*n%7SHo(hAzvRgibTkcIe^-nKW$E(Hiu5r ziQ(`&gj71Av_r?E!YjI}Ii=N{&59@Rj_c6LpYV!fEv69$C->-)W{$H8ekJHJXI`0; zu9~mdzUH_qJSz8(I*VH7_pnty7hmhzQh>cF#c1935hQG;|bg>%EkC1O0^0uLD8^*R_(D#3(=aA1E zf~sNmG+*)e$U=nlfqdU^dJLtR9D)yFDROsTG02;w zzx#@_3X}SGU#UElGT|&;Jr{k^%m)%mrEs{z-$^RkebvvgaY227eMs8Tr0*+^!-U3D z-&fL?CY0tTl!zpR{RyQ8^(&2+gs?u*dNwFKog1AH)+dDZ2}v2cuZYbF3K}|z@qd#Z z*RNRql(=u*SL};aGqA^Xy07@$RI_x|_t@4cjgyqp$&`}1l$dWRHs*pbp0 zNGaP%k@RHug>q8e7b#_5%~vWb`G4AYMgK`@<1(cDfX}qMA!l!gHO-kb>r9?NSIdMu; z;*?@WO8%eHd^n|8ky1jM;&}ovwV-yPgg2$*KT`7bl=7C8Vn9m1o09K#U&#l^hg0&| zl%`NA$#qil;qEK_JCf?8%#ipH7LunUN1?bZJILQ<#i=H6vfm z$X7G+)r@>KBVWzPM>F!#41Kbb5$hZ#*uy06%t8Tna8{*;kFW#ms8O$jraI%PDa z%gB#1^dox=sD{#GAR`~j2x~L)rHp(jBVWqMmol0TX5>@dSBxbY`Bp~xNJhSu5vFG3 zOBwl6M!uAhFJ*+S8TnL3K9!MAW#m&CO~o?ut&H$8qv>}>zLk-0Wt3lJgpV2dRz`V6 zM!9fCIN5#0v6+$YW#n@i;bum7nbCAOBcIF2=enA9Gp;$jSF| z^1bdW`fN@<*nLI(&B+II^0}OFF(+KiX-eFE#s165C+k=8$(%4SCydJp<8t!JoP4r= zC7;a6Cv(EKoG>jXOv`E7os%E-f5m>t$q#e#znuInCoId!@95R`c~wE}^EvrqPQI9v zFXrTn^(*;gPCl8FPv+#4Ir(BvzL=BmUCuKS9 z78IKc!pDMqwIE;Zz9L=~qir@}-J= zsUqC#z9Q~a6q758#TDUVMLt!LPgUeg72#h+K2?!VRpe6@`BX(dRS_;$fd2_Gx+*@}F&BAo2Ln%^U)RfLHZ`D{f# zTM;I9U+LeGFIN<&EArWje72%^-F>BhXBPK|$Z6sBH1t+@gCP#yV4vD=@L$6>SX_96 z?F4UhN7zoSo~NA}wo%Np&DO?H_l+?^s0cqc&n6#+9Tu|-LtYEtn1Ybs!Z+q$32)Fx zq9Jl(`;93W`7!*-l!rVSzQG{|Z;VlLX86X`p4>MY65g19MJ^1#!8~1jQ$Ns@nLroz zl1x#_rQsV>Fmh`6#xw%CHGE?pNQnS!JelW^3&S_2%4TEmLqqEz-pj?W4fo4Rn&Z_Ga@G>^dX@PXh<<_#Hzo-*H1XF@xeZ>WW!9P|xAH*DXT2NGz*7v`Uv zT|~HSjsBJKakxg#d}FK|uZJx;`jc^F*pf5fm@*sx1y+OklQC-CHZpD-nT<-iU<$Sq z33uU*`B%nmBjdIajqk{~WMo`2GM-3# zXi!4qfZaF70pU(|sxqN1?2ejdp&S9eF=aOH7a8}9jQd5#>!dfPRVgWj4m6!Y5DeGm znPM0}w5}32|D5Je@MHStX2%OISfhWA_dA1!o6RqE_Zn8vdPCi0-MvZ`q`Oz)pBwix zn_}YKh2~#jGHQ=q<%T$R&8`_-@2OYKBggaIz~m5E_yYp=fyOVLZnqk&b410wK^sh7ct|IZKwY4n(V z!TyXvXas`+X44Qz0yIE--`Jk08cca&O|{)@$Em;~nJ{(Ir1?f|I(_f`I}?W#Z-+cb zy~W0k)m!w-M7_n9Pt{v2b*A28%jW7W!eOD_qGOiu)=Y%dTPm$GXAmV)?+sk3_cRb- zUIH_dI-;vj@KY1K)ki3viNWe46ww^3ranS3P4rbCp{QoitB+7zGb+``0(c};ef6<~ zkJK;fV+9{+pus1|?&^T5K1T4d`(qe?H4#hwHGz-a8o?B&z8+2eHS5$Dps9~}r)~=M zv4D@(lS|lOHS-|&YXu*>PljQdSk;HYn%1oiO%=n(?xP@hrv`4p5EL-2lWF*vbyAbT zsK4g$kpi9iSah=Pyl@DX2{MB@>aP`iq_GAcVTfn6hy@eGAxKs;lN6|raVImeU42a8 zW4E2*FPTXz)n7CCNMm1p%sW{ly*~zUcK+=%c6E5)3A^6y> zJ|xn)J7g7w)$EXm7gnht8!u?lML)Uf6eckN zLy(yl26oiPs8g7ct3Jl?vD@8%8-+=N)nB1h)}RCYD6LTj7*ZNAS3fQ~C9RFCVnE-P zCIwR;t4?V-17J#NwIq0YX{HeHV<=#05+C(3>6B)MpgyMXvD;;4k037fB9-=^0FN?sxhw?=xV+J5oFdubYPEEsMl4n8%{2j^{b%7F6#~fg>h_1a zz-P0x0M7$Bg3sOh1NKAOR`(B-9X@vlJd_wZB%iB*(PBhFZq79cq6KwKQ&Oe+}i1DOjNwW?*)ec)=DT3KTK8t!wcg(mjbs+JTb?60Ag23+i~p_XQrYJUy2G*eak zYpA7}xY}PsEzJpZ_SaBLGb^>fhFThdf%P@qWB^|`Mlqb{5AqoVMf=xKOLIJk{k5uP zb2Pxg`0zDGI{VkEmK4zJuT?DxSM9G=Eh*`(6 zV`i%MuT?E6qS{}pS~iCioN^6cH);uo7Xur$foyQvACOQR4GU)h!`B!jZIh~&%|QYO z_QKbVPJ=US;p;{%;dEJ;=`>8jxv%hb!z7%@3h|LrMXM-qSSozqEIAxf3g1)yWB(p1 zT5DXa@8O6(fcA!2I2#bYZnR>htWpYWKSVv8@;Uo!XhpN!Y<~@{XqKA0Uqd3KzV2;B z$cNO|y%-K@k@~u~KOsAUuPM8;pRGzlNrwHkDhZ{Q_Sev#MxkMS4d)QS*Nu|EkuMOy zdixXdAoVrob@oG`f6M~6{q_Gt*O!1}wYBe;G9*)>Ql?U*%w)(^p(tc1GF0X%8Oj(@ z=6Pr^WG)#}k_KaBPRJCIQieiAhLEBDYwdIP@9b}{>wjI}wDgHzt7t1x%ac* zeJ}70;$3bc3}%9hHv$Z-F91wlSwO}C_}|Ad#L?gz#9tI4!f+=4K7}O0a3=pY&xkPi z26354guyq6zhpvy!5ibC@FL{FtK0x4FE$|0AWU9tpsfO7WI=!zX#tFo2X8@wGL57G z2sZ#DGr?-+zg;%MyumSvU^FrlaGDT+k(q!)2LX)C1RT8wiaNp)91I9xviJj!nIMdQ zB&752vnav@u`2lQlPMw$=l$>FDIyH#{qHj>A`B<^Z(p7W!wLR-XF`PG1pmGLB*Jil z|90>RFf3sB?En#m6a4o{7!iiwAhIiq!b*j|PD30G7X-4;f=6W#My^Y6A_stx?7-TC zA38;d4UTX4zc+A*Fr47OttBE1zba(c1R5T~WN8lCco0TX49f=o(heautPl7@1tN@1 z5TOI>0RF&%I2umy-y3}*48JPmmIB;PLKs=G!1)-!$chC%zW_$)z>*<`?%%Lvh@ty8 zFlPk<4Y^!_MJa&MnZOC6`!_K41TcAmU^9j=`EmuDF@(wM1hhgy;YBuTut!6foJ+7r zLl}(>=8Zq7`0x7$TQ`KsRSNW10gPN zFnRfa9Ua2R1mW!={^Wx|2N*s982P?oIl>=(5JtmtB#zvDf&CxA$c_y9#t=rnZ{W8B zVDuy5ypfF>lm!SQ*#YJ)07h8C+e7hxpO+Hm4T~54;uH~v^G0@L(9wo4@_oaahQDP+ z3!7wk7+F5B9N}+o5re>Q z@ZT;E0fyxWf47SW!wDj{p5WFM!bpn2v6KKtW&+NO1TgZ&f)f-0jN}rW?+D~G@>PM; z3;~QRp9ApwMs{R)whVxgkHl`u5J?U0t$`jyKN1`P2Vmq%1Bapk!HTeir4DcB5xzli zj2O_G$Tbhn_X02)1hB-P@DPIlmiUt%A`DpKPkab4Rv6K}3f`3APk@M{0ZaTz5D^9} z@h3t=7_h{j3=v_#5`RKOgaJ$ZNf8moa)~S-SY7caN5s)sE|GPD-IO7P5!6Hw1SyQ5 zCPElV1H382T`34332QO_l!^$$6^mvboag{xWUm58EdUro2ozQT zBh?jjRUnL9B=8;(e_N3d8y0ljV}l4oI%v^_l^cJ>kvJOCL2EHE0|zj|5*BoEq(=zt zvjI%bB`Dhb;H^iphJc3C04B2pwH(6aTtfS00Fzf0bS4HcdEQxktXO!bD}l7E zfOdi~!V)SD{5@P^Y)A)b?*Z)uVI-GOh~O{n5`w_)FmCHZgdrV7vjOb{VPwTZA%eg7 zOAG>8BAN|oCkP`fp%B5}7A6LPERkDr(5Qqk!V(G*{MBMY5GX`&vmzo4St6PZ2rvjE zETIs=Ur#0mfh>_WBj|QQ7-0!-#qoEVi9sMsMEC&}2VsOI6e9Qw(1ajRh~O4XL>SUR zWFpXf5Jp(SHn0Su9)acqFw&C+4ge5FSi&23{EckFOrW&DU(hDPaNdXn1*!tV$Q}!& z1^(j|Vh~6NQKmpuKp0^OrG*62j|K7pz=-w%@&UpKOQ<36_s0n{ff@pToty|mI!Lbo z$Oi}`EMZds{}B!`2&98(A0QtfjIac!ssI?-eV~SrK(r6g2@oc;1Udo2z@c?bP$%Xvw(X7 z5Jp33fm;L+VaO6`lmI~hVT2`YIN-hl#2}C*qJ2Q+hcJ>$s3Gv5fDwa0I*9fGl^? zMsf)?1a3V+2m&?40Yv+NS`J}^CDai3&lQP5AWKC1fLab=B$rS_96+=WDB2K4_E;zu z@Sj8yJ`#!r+#!PqLpq4|0Yw|a$Q}!hkOnZq5^4zCU4s}K(m}KjDB2K4SVC!mTX7JB zK$eL10Yw|a$cly10{8781c6-(+{S|lLzam40Yw|a2us+tz`Z|+K_E*+`+({UVT2`= z7Whw6i9sM8MEij13}J*Nloq(#2q6e;PvGVwL>SURv=6Ax5Jp(S=MA`12{8yv8lrtb zb%rp)5_T6M$P&>$pgKdC%o0>*2$Qc%P@N%6-hDtBhA?@>f-($YGD}c~0gPxL zP=+B)Rt2C8Lzv7Gc=14(y!(JM3}Nzh3Cb{p5tf+ZK(r4i!*Ddh5>p(A_5o!Wjz(C* z_Jky&eL%g1Fv1c(w7|V#{!1FDw-82HLTQ0J#}G$@?BE76L>SPKMEX9U-a;5*3A+~f zkFAM8K++_Uz7MFk07f1XfqDyJge8;~l8E*Jg%!dGODHXHe;dL~fXg_5kz7J)fxF)j zM?*SD-v<;{2qP;Nb}evg9AXei2l-_aD69}hSVF~t`{@vZz^;WPqJ2OGg)p*Wp|rq% z#!d_Z=^)w%R8R;bxrEXJckm$w!RR0>7D@~Jr}Bi+uxlZSXdh5PA&gv?P;ua%!^9wv z4x)WPse~|+ODHXHCm~`GNC(kApj1K_$t9E)xcv|z2$UAM3lR~9bdbIesEH6pSi(L8 z?x0Kz0_h-qA5i=tjIe|n0=Hi#1c71!w?87n*aQ)lP%PjkNyO1`-bmjER5=JED;72! zaN}oU5SRu;`+#x=VPwTZRe--sK?nj>0q)2|gdrV7`+#x=VT2`A1-NY!F$koC^nE}% zgD}DpHXLw|Ct?to9i;CA${Bi`B~%6Y`zFL7 zkPg!K0k6wI7-0!j0q#si3~!vS{+ zBhbNA0iu0CC4!@oT*7A=l8E*Jm53j>ijn(1pb|kCVF`cufP0V;W&*_mZb?RjLDF!C zG9nCE;)Z2J7_h{B%ZM;Y8t!OMgaI8X`CZ$$fmY5`${ zCG0HV@3|3!Kst!_0o4M+$aM+JzZBB<0c8Qg$aM+pJpL{n;Ui(4$DQPeFh&Q-C2S$! zK6Av;kPf1KKv{q=viram0&YG>3?(O1SSp9K4AZcFv1dw1>C@o7zDCJv=7+-A&jtuVgYykBLsnB zK?>16z|IlENG_pRz~A>I27z=C?E^M?2qV`e6brb|ATbD}gJ>VH(L)%yE}>Y!O$q-C z0ycUGldns#(LW@KB$rS_;7*T(kAxZmH-03-kR_shz>W@KB$t?m zK(r6o(cx$$mzY>Uv=7+2;b?><>@468l!OVw&H`>oNrWLCMEiiP8^TB~VP^q%tt18k zNyE)6i7=ppzkyAJLDHm=z7N>CA&jh8C@t{wcL+hCw7`8ai7=pp+hh`9KnFj(hX`YI z5SCDJ;NF_V(U1?}wl+6U~6 z5Jqwd#ey`__W@fVgb|id72wVf|IGw!fe*y|vSu!O1rx6UPeCr}mOPP#-G zql2)7ssMM%AdZG~5bXo@ItU{yp(>C@v=7+SAdIktc zAdKV^wh(apUt$nQ2kHBOO%1|GE@An{J%fosVA7Dj57@mRjIe~|A9oZX1cBur_aP?2 zkPf1K!0rWMge6w~k-iVuy})Qh`+(gG!U#+FU;%eHCd>pY|A_Vh+Y}s)u*AwgqJ6+N z1xF(*7IqeJ6J_E@!t5a02W(RiMpi6rIN(mp#2|o<4AS=j+Z2S66${HhZs9@*0?R+{ z)=Y#!(*8AXCRj&+Z3@B&OIZG8kY`?CKY}olOQ;HP^Jn5mLOMv_2kb`>Msf*N0qzt{ z2m)0BZWv93Ass~ffc*%<$nFEh0`6x+3<6mq+6U}M5Jp%+v4Ee(NC*N|0q#^ygdrV7 z`+$uH!bmQmSitSAi9sM8MEih^2f_$Ts3CAKY+?{d2hl!Y_R`aWRefiSXSp|rry#w1P<(n0z@V26P) za$Q0VA%kciY1mo7&Ath-p;*AZzlkuMH==#ORsvy!C43Bl8-){t!0aH}2W%w}CaVIl zl|Y!BOR#4^n9LIF830DK57;vxOujC`o&jNUF2SAwVX`U!dj^EbEWw@uVe*Ovdj^Eb zxdeL#gb|idL&zZ72kaRTMp!}(A%kciusJ{&VF{l%;J)bpr2%XX5Jp%+v49`EN*E2r zf()X4z%Bq`ge4RUGDzPCT<#D?atT!d?!iU;NH}k#?*lG(2qP?^D!|>`i9ui*5bXml zcL*c7gknJk>HC1o9l{7pC>CT8?E|iB2qP?^D!{$O2or>=0C$%s!jKN4eZX}MVPwTZ zRe)R26N12|0Pa^tgdrWI?*p!D2qP?^Sdc-q54eCKjIe~N0QW>Aek7!WXdiF^Lm0^= zrV5b054eEgXk^7=ssPbG-~xuDk?Rsu1&H{Q-{fg>@d_2wzy}0gmv6O$2}=eBrYN zfFpdN1OPa~7d8w4j_`#d0N@B;r~-h24Z;`p3;>Ssg*pJ>2wx}!0FLm5-2{Lme4!Ko zIEgPNO$9R!t6~HlGWL*Vtj2Bs00UYB+R#pJVc#)+Q zz%gEAZ3S?Q7g<~Z9OFe+R{+QINS0S1v;Xiyu3t<)fbI2vbqg2|d4X*U!67ejc_TRF z1ug>whrGbDLvY9oqzAzvFF*sqAuniX`#<^$WDw>N8rza_$QSqSC9G#mZ-D=RjK}zr z^%V$=@g?gkfMdMK`U>C}FS5P@IL3>tuK=90b# zOou?@Tr!UFBI_#<2g@T_UjZEBOV(Ea$M}-<6~HmRWPJs2j4xSVfrMbZ$odN47%#HE z0yvg0vc3X1#*3`40FLn@>nng`yvX_r;21Bmz5+PLi>$8zj`2eD75EP@FNnSZslssb zdIt8=7*1Z#AOwb!^NU#xfFR*6D#v^<&-GZO4^xt&~Y%j6#2wzOMh$8w5*kQu)h`s`Lm>7=m#q^0N zqOXAcG&UaLi|G?lL|*~>X>2^g7t<&BK~MxckUj*?H zzL-8iyjVdTj2EJ>fWJ64AA~QaPY{<@kXeiuqOU;4VH`wX0oz&(NBI7uTM&H(oY%4O z$a=>59*E&9m=DGa(N~zCBbX1ep0U0M;=={LNyrPahy^(0g?Plm%wjmQp0R!iVjc^| zLtcn`EWqJ)hj^<49Ij8q0Sw@fFJd~2hmp`Qy5O(uP}E>FrLg8WC|NkzJ4*=Nid$w7xSG2IC(vT zOkr`z*Dq#B3C>kO_+t75G1~IJRyP9R)H4<0E}4%*qnrxh>zqE>(3z0#UKvG7wJcV3}W*^u18Ggh#`6jWDt%=^b+R732-EjnEpZh zi@{33u3w}d1x%r__(&cx{ew6g!&73g@yPXv=^wvjGB7G;|dJp3uy67K6PQ=F; zW)>TdkjeyTZt~*RGA*XJD_>eDh>;}ML zei7?skXgtVIgbNo9K#V_m|j8->Hy>6^^2U;0dU9{F>wYs&|o~q7wIp7<3O=ENPaOL zg_uQyI2d14|6n=_Ii3WJ$M_=p2eb18H_c?en4c%W$@#?$JpoSUi#d7%oV@>FmYx77 zU#DOtK)#6n!Mr{JPF~NL*(bos*D2=q366v!>mSVS6X0aMhxvU19N~-UE5!2}t^_zw zq`!n&egYifi|H%G_8P>&_#)5m!1*#*e1tEiuMnSX5C>b&NPh|VhQm0BE&?k7!x6ri zzCw;{0pBpj7kPdMRst3W;fwW!5G!sF2jh$ABCry$I0#=%Umirx<<`^SG=RXg}8?O1m&BqwuO-nDFl$iddx->a#u%MHsu z-_CtETIheE>-zm&uI|XkzO^)Ka%kjU6^HJzbT^)zQ(e;$d6MsBK3AuNfsN7HHb=#4 zKi;y%Yg`ygHr~1B^plk=Hhm%5)uC4@zEmQXYgJD_?fYgtFS5YMcWqIB%|NnD=av`O z=~?VsYp*0;9xLqix?_|^u}zHmP*Z~JY~lTkh=)aM*tb&bo%v|cX;pD0?+L|tk@@P{ z%hT6a_vo@uJz+2WcJ75u?)|o_JJtj*Sd87DwN`)nP<4glcW=no*0YiqZIez}%LZAF zd2p3_f3SQyV;Fok(BEsvc*w=stwP6HUU{84SM#PXKcQ>hXu(zJn#=I9mn><{-0LXU z#VAuePP7;DbIhQ!x^}Jg^xo?S**|T2*fbzdy%hV}^5UO2*XKH77SC+Usy?Y$*N|89 zYfGz~P)AyuRORpAZ;Uwa*gg7vZoctKRZUv=`ZE>gP9r-MS6vGAIfPC&lpa67F~BQH zA>8=7Q<_#(k!@qL7qgXanSj>4T3xrFOF3_)>zgaR6#{;G>v-%}NWFDJNj1BkDp~b( zIzO%TaSF|Mk@pjpombf3@UH)@Ma3$@bo7-?0-f%ceWTa-T$h-Jk0`!;$Z)i}r zYMDD+Y@g1(oO{WxEk|W{#&$8-IeJWNw&mNpxY#)N8`-V{iP;BF%3GARcaMKze=ln- zt>~(9mSb|)0$r=g$?T$6%L&4t-F@$f|A=*QTpGIml5L0o)_{jOeAaYPdViPK#wt1O z{6rgXvfb_IYMn)rVCG&e=%BXUKJZpDMo8D6+k2dEggE^{~Rr>nthD zpMOPPjIN$Josbs%dw27A%=yPYtNb5Rx9{IEwB1dR(nLm~lD>1j`nbs1SClSGI++^> zS6e(TDp#;HYa|HdOeXf+4!9Hiq3Pa_>(X+!OL=o%MrY>p=g&pvUSPPBuHf2ouOdDx zpYrEmV)>S7TCKdt*F1AN5%O4;I}!g z-IDC2By?xQKkM1z%3sJ_49js>xnL6$5_g6;GxLmlYBi~$K#+DHL#XW(y z%6N6@{BN3!`IciJBssDNW_9I@OpU|~7MPBQ%BRg&+UI6QKV?#XS90#7zV%Lp9f6*O zm4CD%t@)43dY;Zwe56Fno3}w#oZ9nDrmn`T`7PhY$~MRT5V@l#YvI(Ae!c7TZPxag z!aw)-)Tyk}Zk(CDbh+^9uEYT?5uTXTZwsFC4)L9)MY($6y%rLC3wP7X9osOsgOja& zd)U`!^^3``U&pFUD2UN>sml%>z90|~eKh$j-xj;Byui2lxuz|>e|2(?>Y!>`$Ty*KzmDLXs?*~LS2LySIbO)Pd9*~fe z9DGx9A-Jg9{BmDpkZG*xQ#zGZld`Ii_@m`vp1Usgg<8|J3+GrbzWPzTyZQC0X0BW= z&RLc3Y}BGcUW?BXpVUul)Qopl4}81pBPwQp)Zz-=E+zBsBQI&`I?F;sYs_x+YuIq^ zpntgW;#8624~{VSy_s*iVcB1BBB8=+jk@-nGGME5UV{} zee^c_=ZCMI<}-f{YN?0PMK+)Ha^9~Q>3flmS74+2(&~qNWyZze;BHO3umJPtwz1!A ze~tB}6u4Cv3Z-qCNja%JyE;UYb%&ipe9mjXn|kALkh>!*NJMG+ zFwYw|!`WAxS$w6Nc|Fb+QFTu9b}Llydvf`W*`}o5W|3^L*}uQn{XwlO=YCto(;dh9 zw;$HJZwf%hlh`(1-{ouHe!MQH| zxY970paagf60Rzp(l1$V&s0~unaFBn8G1UMmb3p?^S0pQxr*Ewn?#?xT5L|DANW~$ ze=KfTJfxKQ7~AdC6y6igY&*_)%&(?DoopR^`z%h$=QsNY5!*K(o(DaBb2NReVVRrq zZV9uC;~#84h0c$~#%wnz3wOvc>V84*D1RX1Q|PDh4l^DHyZXb;d)9>?>Y*RI@_}N^ zn<3pXMcQLu-N+t>Lb15c$8GT&cI$p04dDACf8*GZHWeQV#^giMj}$++bNalx>bhgD z`fTxMO+Wft27^(VWa@h~(XO-uyqA0j-_*v7Y;y<>W^Roc-)!_`MbCpxlbhOiXv3-M zGY@?^KP(BCw5H2Ab4`xsy`u3qp>Q6`pA|~|%){vZD&;5pZ;io#ilXzuKf1m!=)`;M zblyzcHe?{ouI2XXVnJ}oXzW{mx;gIdj_TU7(CD4icLs`nuAe!jIzP>`lP>;Mq!Z(` zv+z*Y*-?$!(9jo7H31_}vbBq?&oi7b5ws7~4^5Gvr4G0kn#Ua6=H>JyU!Hy;PgsqT zO^NHPM(EB^#x~zRO5f_~!pmH~Yb#ZXxz8nea8K_l{=#O)-FjndfY?A>{{?2oJ*gDT zGo4&}#I`IaGQ6+ZI6A({TycN@=KXDbsUh-zudi1P8BVYLd|#n7S!krcn&T;hVN73L z!3HyFo-$L$36)-N8u_1W&Nn2)?x^z>#X9DOzRh%WTDW}jvg2&PUye7j6uo=zsr=kK z5ujKz{*!7`!KzM&su1sN5O%{%2!TalaiB^6@FZA z&R18y_2quZ(yi8+x!Bk;EjxI!{z7KS`VUXl_J4kLS#kB6 zPe6O^Lh>uiOY4d$KPnkVjDMTIoHn~Jt!C@&>Tl;27KQ8Ly1dCe>MWehoLkSaM1>s~ zRDYtea->wV^zfg{j)$i{4>G0gh^{Nsa<_b!nWwdxvAQN_;p7l|dD!Mv;o)NHr~!dR zwS?hapSvv9+j5(~{yls|EZq2*UTj~Z{IJiAh$ro_Yv$>jXU?gPk18LGe0x`_?ev`0 zl0<6R*#5b*SFUj$eJgJquzz^z^1WjIkCY$3N(ZTYyfjI5YvSTZy-E5>!AYhCO80Hn zEj89Z!++;3di@q$>0C*wE~&QkP!Nz4o?z~0(WK>5*|${Z@{tRXF^Ecplr_9L22PFdQs&i zInnMS$F+ydRVza#uG7v?pV_Gs^)g}fy5@}jhnh-d>KfT%%ioKFAHP=TNzg^#J79P+ z?Y`G*Ess0hZH+EG2glQ58@`CYTe$DUR}vr)(9mcq7GtcmuaVXxsk9_?m?}q2PTliv zjP~$eZfYk%MP~Eqzw_K(KlK;I{%|{f^Yx$4-68oULSZe}&CgXQl~uj{yCan@NYFoO z*2tNXqIh~mu=uUsmn(A_lqILU*QN6AqT;(f$n7oD3T^#=4Pd#+fwU zeatGw)lRpo%!?<#Rm&8cDJTi{hA&J^9x)!HdbUU4g-z{VYhGi2y{Q+<0#8JpubLT{ zDU=62Q;hW)=Igk=|LzWcyDuj_`e~`c)t9Ts&3tdo(>p2J&3)ERqL=n#`^oD~smR1OQcu0g9k!ykb4tUB|Khj#YLUSP znlFOvYI}|fHO30m>g6kqU9A08zV&^*_A}5sl;Kf6E&lx?J_IpQlXpVaSQYzCr$!l(;`0BR^v)8sY zkruKMsuRj54s7{eqIj?TX$Y;78n5U2F+=A-L+&+Q)!6|@Di?c{SyLK*)XDQ+Z)@ws53Lf2?L)CQ$P#S6vOPARW@VJ^0>(w=L7rs~P((ZRd@n$>zL9)1bEn%u5% z0W6|psm;9pe|!oaU*(MM{E>Z}MXo?TF#eF_J}S8}_ga2-$g1y7g-fgWSZ~bKkFW(l*&j9ZXSuuwE-p)Bf|=&t8rf6HZsS;%Rkv_&1t3mBdKJ zD>ygakdX7{RMj>9vLTDodu{oN*(XsqzX~y?@2!y-Q0c0nRYCf} z1OeWMqiV5Pb38Gzv9XiEbT_G2Vk4ZcNb|@G`d_8~nO#59&^frklgr;19USJ)Inj7J zdF$9v$Ln`Nk2oI2>^gmO&tbYk|1l=9-#g`HZ?QJhQm@P4-jd1Jv^wTt*x9LJRmm^R z!C2OMXEJ>8YHFd6%vIw%_Bjq)lIr|ebu#%^!!0aLZ^l?^2AlZkIY>+GXMaQc6wG++ zu-wHey4}y`nrNu}qg;%R8aiCL<9JBT=Xh7FtK=iSvaYa>H6K|{7Nw;mg=-wiKd`P^ zrG(Oevcw?cqksSnUz2#X$A=ozygR0Xrc-Rj9$WV|(`3>|%#YvntGmAM(ZN#(SZJTT zU(Nm{T$!HEEk!|TN3&~nW7wtepZVPJ^a2K)VPD2Vlw(ds9{u_A%h`gxw>E9l(+z6k zdw%?5jsrtcO>9a^q+E^d>fU{Vf`V^?b&g36>&G7rzk6TB^S;W%p?8Zj(=H<;vJ<^g zcf93RJmSyBrX==?JluCbET>N4luUf<*CP&V&r+#QwtJkS+a{9!a2r)IZF;fWt5=2B zJ*3vK)hwzh(uPgXv2Nwby>Ld9b8UIkWB%8TiPBe8x#Be?AEmlPQ^VD@q7*s2b-QbO!f=q-BZugEh$Ui#2mOy zifZ2Uu1H!Ly`IV4GcPlq=J@ssxwTss+{!)U%Ml>*+c3wT-v+*@8cPcA7 z?K;QuCj}yTg-cI48knctG@=bisyiEH$5tCNddZmQumjb%wawX=#oL)g6rKy^8Fojl zcA5P$j9{91QXF;p-e->C?=p%@-VZ+vYMv-et4r~uv~;C%*f!FYcSc6MwEQr`r$=uK zO>7vmcV=%dDm@`8_D9eCfzYj{$k7OyCwj8oGwUCD$*j9&V#bsB?tVg3_xr?RHR)!x zy>Z+#swOw1w!3@sNd~Oak94#jqAod6yyk&N%#JEcmr}pwc_;VLE(hyJCca7szg~)S zO%$|T{?6h+6IWksq%~MH`ts4#o80P%a2F41&8jM4KJ1JFZ}IQOmTJZYH7J`MEWCL(Tq{K#*#xv zq>}t!8Xt_$II%1J1h?MSS}zJcA)0`S;|tlS^YwEK)qD`33X_p39tiP}NbL|f+>QC23R)IT*PQPyiRb|NKkPj0x0+xP05ais-iP2UU0!sjTBZyjFZ{AQ3)d1zrk zhpuBpbiu5Gu_js3w8CHS6?b!*=GV&XR91Lwm*gv70F}KHf`b^fmR`N~!yJ=Cn(5#F?JGXB$<@3}vr5&ao}Zl)-Ju z$$HNPi>o6~GrkCwrslsdzis$JFZ1HJ<4;e7AD6nEF`=cMBlb+@RCb3^Ti_>U=c*3Z zklRdmbL0~w)W^r}XjX{ny$?4x8@k&T)su1l`K}jZ`qy&iZ*z7%wi}BSVPLM4j59a9 zp3BkseDvqzY<<(x?VXMyXYVN*1lWpZ?Xgk#5ObHFAN(%W75+J>vR~)fF8Jp=OT=frOq(wL?Xh<^!9UvBHp*c~GvS{U9BGR=qC`v2FOl-k zKQh}~;J<-?gz04NRe^uH_>aflWr2TAW#h;Z)lEmjm~;YM;GdXX0W3RH;GayIF_wKg zIjR}E0w3sN{|IAwpqcS~_USg}d!vWLI5Xj&l)KdYS7P8Fmw%B`3)!N|Nk-K|F12}{ zMxPW5#TygHZmg;np6Bb0-n|@a;cGV*l4XbSw388XJgq1t{O{>jjF;Z~v60e^xu+cWl0nyE(& z{x#l-1*? z?Ww063>^I2jw~@F8(+VmxO8D{uI{KzzAHiQ+ zy5?K1-zVM+WjTrVlS}?=EZrv^I6HofH4D}~EE9KUw`z6yrpegNZ^1V#CKWRAD$$F5 z_F_tv|CtpFF|WJg#new54*F|18y>tIE?Sl@zVOQ=B{7-$aB8gP@vqFz9|h9d*pef< z>fNbkMfXoMx0pWPSa8o?poLGviD`C%<+NU5wyL!glT~6$m7ShZkg?>na=@+>`L)bV zB|;XXuZ22lnOnBWv6u5K(%W z)XBxk(CJ9Qo*ilKRKj!$O+5it9m-sv+3ahnjt%TBl=UC6a32?lq7m9?SM|}vb<}|O ze9rL~Mh0^NH`mY&d#OQ|QelpWf(FI}!noZ7xyB~zVWiB?s!H_EwG zMe@m+^II&>Wr@9hJE?5kU$57t-mOgKq@& zRIs&)$g{{Qh<0eu4Q1B`yw=+MRO(PoX2z2T)jmE?=n#H_Y|)SQWA}HMra+E!WXcPgx7eE(boti9c>m!u!p&k2twofg&Ivb|bdOI5boKdgOO*R~ z?ah2&Mf3C8xsgMX$=cKhsBFiJMutb9@7mc>YZsfPs%kB8-f{1?+I=dAU(z0~)O6gd zI``IWPj;R~_JdP%r*qqu2VajJtg_&+?$15=R_>whVx^oFz2NS%t6PPALsz*o4v2Yg z$?EPY-9K{0{70u!#*e10**>{3od>Vh8^@hYVl`qTkzmmde_&Ik86-C3!Ehawi{FbkF_jIyJjLva6u}&YAPiT`P5r8^SIa zoOgZr_+YpGBfY$Z1KymS%k^15#ON+^x|xbi-95VQyVC{3V$U3-i#w`WuDnk#aQFP+ z!1>zTM8G~O5p;H~)F0;LrUoZ&t{&XjvhAE650 zxRpYpmX=qtmMY?y=I#w;c8?tEt?RN=os<9Am))hC(wwNNK4Re~VD{-r-VvRU&F|>8 zxvD)=nuyuEk#&pf?{${53xf<56wLL`E^5}HoWh-Z&L;K>_!zu9trOcUs$l7vt!Nx1 z?{azOC06^Z!+-UThj;6{S-7*fo(fxZ8L{%-_Obaz$J-k%>;n6YJ&rSZl;p4l zM%q95!}(pEag@WoAiTQzTXmpv{CnX*4b2TNPZn&{eI)cQ>AZ{GksGaBj}%@iEO46U zzgx$@`K8kn&FUrd&$80h4A+Nf>LQ!>dz*ix<{Mt0PI`VX#GX7YXIB+M+jV^@ewOkhHuIj05BHzkH$ z4%4ASS~Q-aQyFPdDq7dh&;^F=al4LYD4J0Yx{IuN!?Ztx z{R!>ekS?w3(oEAvbbI$RPb{>a4)M>}?o2bNDB8^tl5?2ejDt>-JupLLy>mj;FRgHC zc8S_eTEQMsQ9Pz+25BPvmTDE99ND9K*6=X3b~)1}`%7;*x--hZJtVU2nl$J1j)XNM zybLwU+x(?B)bC2o9z=+>~l?j|lU$4u`P6 zK}dX!eeG`%K4+Q_CPIT03Bewe#>tE9TdMbjgn!Ygtvh&bL;Oym>rKpQRXR3G##9@b z9(PRJ6;n)06^J-9v7QtIw+t=yt}>Lr_4aoFQ)KxyM8FPOO8GPOgJf1)K8^ z8wW0Kco_6GytW>3zbt`5$8{8t>T<&8u)ts3&4k!d|VMQP$<-hDs%Gsu#Q5YKB6}zHF%d z6hdvnC>OdYAQxD?)hu-3iws9v@Q;w?bmnQw(IeiQQjdCXm_EBGKcT#`PR@T(%!TKV zc7tM7ey!|J+KHpytn=IzR9?)EHEFKi9H~kx!XBK{^gY4FT;~pXGoMp0r}VuZ&-B^v zGv6Ny#~LoC&+VJM4tX>F3GrBS?yxu4IhB<)(;ACR=ag3Vudq$?c*sBD`ja)(@RQ1n zapKs@`hMjV*_A!hRNfDU4ts2z7WddOec5B{bWGIwS6-oi{e%bB4C?>%8FXFTu5f6D zNx<&vp&pwnj!XnT-ZT{Q_z*?K;gx8OzXy_h)QiR%T#|eywo0zbe#-J) z*qHR^kwa%?*TtoxQjNda4xN8<`{sPVORlDYe;pCFU()`R#npasY19AjAAdmH%EGa< zKaVdi@qz!3a?zN4sm4_M#VgScor>KTmm2;)8T$)9uJ7D~gh0)we0ADUO9WMNqug zuxNSx=f$-fCu>D($^*^2%mvM_WVkgC*qJ@m*Iy9cqc7m(#A>?L-H4KZe?9L-KF!+b zf`uRPwGEvm)kek45p4pV-Gc15St-J3-8_XGEqo;-Y34Lr(!H%q6>H;XZcSzFD7BA1 zHz;^2x`=&J-tCM$-Sg*mk%s;p&tp^>9%*r`+trU4*U%N3pX8T)qz=wIL-e+2*zGa}_-&%ZVTlHyWe*MW8Wyzbr2AzD!m7w6&GVAWh z_Ti_pxA(|pK815Dj5D%2Gw0-nYLku)HVi6?Yi?<9k3F_w`GC(41{KLLs@xvSFClkUkw9uy@b+$S!#?-OZD7BBv~T-?Q) z>1!*~@ww_x#L;ZcIbMeL!_phsPuZ?bUeUgFS?A54%$w`h{l2qAIeEeUD?>`Oxj94h z>FDSx?f37xA8roY_*mQbbLFXBUjumJ%ULU1_`GLt-dsJqGF-c}f7gW4XP))$HuNXx z^XQFU>)GZN*3CrB@TsKQUvQIJ=A$0z`BplzG_wAyouMFu7FEKrcI`nY%K*>tneA6q zR$k6{%`VR=O<(+a@u|kIpz?Q3{jaS0K50)`^|C*UJCl35Mt0naiGsR*I$**2Amg^H z14ZZLTBa!Ke-2br3W)Bx9=Ap3n{(eOwFnD8jYsTX8d>(VXO({XYPoJ7bIQp zSfRGTBXxnz?WSPnx*MJP;@>{$CyVCctzX;W-yY}$SB_Tea(F!SHzGrjX zTn37AvA^CN&tm(!rhJ18O-zWSYp{E^ul|R;6|R@dFPE<_ug(-aGaaj;xOsJ9*4?vc zCaKf1oy$+|Nr&PMu5TRQc6^I}T5eDwpg8h&fNwVM<&I9tEJr$fjnCU-elTgR%Q*D+ z)$Qv$D8|=KQ4Oz2+FI1fO0U&rK`%m?rM~XKDW3Tm_7R%WF{QJ&5*|*-+U&O3C#uby zB-?2foX+l4)+lY!%k_*?D_-k-eeMRitX30^mTfQIdTrdw{_xS5puK^Xzgtw#n~g?2 zMy@XM3$7m?ura3S$#)9a9T3jz^0Tk`sF&isslVB(($u^2+?7E)W>jxTYRKe0>rc=?z`{)g$7%Yo~x4@kA#9y-4mvNE&G z_m)kUQ_&|XiDo)&YWJJqz6-62Q+Exvo=^Exmv>(Nz`YAsK0T>tmt@}h8iv25&qrY?a}=pHN&H#ZfEMA)Mg%U}@!x|B*{bnb zY0E{I|QbMHvs9&FIbSyL&h2nmhHgdMBZ{ox@6N&vOs69alfC z#sBV(P*C`ofWr$B{Z#Wszo$`KHuQzb_}~3`AsN6Dtpw*^5`+mx;?H!(8biS|A8FBdT-?e74AHF%jK8;KX)U+=V*Tze<3kM~9RDf`z=pR9KA zT7|Hfv&1)Q6i;orP#0PEsP1CjkGk=2*|4u#&bFe0ZdO6u!+Tw|j!B(;fBK#8ApdM% zIB$++)%209Z-VyJ6OT+A_0Dz_9+Eneuk2-={-G`+Ce89kA4l_~g!!Itw-4(K+`L;@ zD4ZC?6h`UJbF5gvUrct$ZM@%qZ$SIA+ou^!!gopWRrglsCMCb7I=GbEps$gr==yaj zE;yf^YdC$$p4@cBy)J%VR@@UMVF8nFTf@N^r%g+1d_0VHJk>E6G9Kz*zYyYks{dQR zq)#h<@9|Xr*5s*Xci}Bt_V1@OxTMM%T{F~}O=-;9X5IzX1#p<${_j-@4d=M z4V^(@4ZgAbj|`z_?x&yH=e$|-oc@QI(5v;<4?kQgryL2m$k@;}!!BSUQ)c3|+cfAb z({EK8sVg+Wat_fkHO;b<^ER%FhMU>9`>rM}o*&9u|ot*1Ds{&NceeX@lplKD}<>C#$WPo#FFf)ZtOvn^`C4w4ubh zRsp_k>-%JQ zO2(`CS0~rl)$rk~b4hPvbuZWnrAS)@7s$$w)GcQG{os7HAtK0+`|n^QZTQt0t``oU zWcnOTw_n)5lSsyYW=TON;w{wWP#7zv}7U(fMt+?0H__=y}y1OC_@T zo}z`&feTh|oA>Xm{XYePm$!mG9Y%S!b+JO@%+DhJ*#I;tJCetE#He&zAByOeveJ5x$; zS?u)uXlQ?5f<NVvNT|5HuJPWl-NHWU3kIg{Q?t(|vp3Cs=x3GAN^&weIg}us@VM1P-#}uY$mwW{ z@e;l9IpxD`0Y@{=j&2G_Z`=25!!gQ=vnKuG)M8)z`PPU=jFen$jwv|&WHdFn>Gz)` zoeO`%-f7wWYICe&eJwaN#e0Kq;*ah6nN4c!gXfMZOo*s7-QjZ-?NobXZ<*?uda%{) zcInaEbUcyo4a1#^>O!9f(^%epUL>QIds8~{m>-qdPnj#ayVx&#M3kCTP3vBr=RDE7 zb@PjXJ4)yG@JaRkXg|wVnm8Op`?q3z^)byfO-9FROL`@n_oN~uoCyy_KE1r;XN z-k-TM^vmPmX9$NoJx_1gzUvtmm(Fn!<+P?&9U)19j1#|)-Fg(n@y4OX`758l7jxyg zUJDNc&$^$S@~#~PzB6fY{B{!Ecvvd| zpE|i?@yh)wrwZ?i4vU!bpv@<4F$~{(!>#m4WiTgnD{I}CyFUH*(o5JgSu=uJ1}#PpmnK*K-C85_$Ct6V2_)JdsiqfO$<#+v* zFE`q)oSOr;wb!pWt-b8~>$c^>sk9#gtlzyV&3ENX$h1HGw9QOGJKSgVjuB1Z#-3A~ ztGl-xp1r!GSBXw}S8F|EgJPKP_P;y6$HXrWW^YbMyU4 z^-}tC=-UzFQ1-7>jYGqIB^sBgi!`E~Tbt@L#m}AFbl(sA ztA3m}d@}2e@9;&&#U0PP&zJN1VLNNK?*@0fu%yFjrZ3Kg{@~nvSEF{5?_+maP5Vs? z-6wg9txtA~SKeh?eWElPZLpJ`v-@qCQL#})gG+Q^e5gh2qZ?B1%T5`X#mDu;mFmr0 z7(S47J8s913(0wB^W^hh?qB6?j1r%4?_JfbeE&6`UB#+Sf4B4G$BR@HR9#GBPE_BV z1CFmVOh3@J#fH&keXZ6Pn`>0>J~D7mtZL^f#7nu}7xv9h47)j z2g3Sozh0ZU6;4@etH|0G+EVi-HTh{)_`91shMI=FhROz;)c&>>IsToyXPr8h;kfXz zv)e#g#K&``VsYK{?@^nURnb({-I}S3iH+AiIry~764~QydhZrAl{7V_@WjYemr*?L zD{R@aF*Dcx^9#R;KY_=-GEg1Y9b%?<@Jl`Xj?W9-t`Xh)l0Q3rST(mDjO1^S+dQq! zZumyHGTd8LfH}@F#b==>{JiJDz(swAG8+q(;DSDmKQ?_2COswfr@U6er@IHoTq7^H zP+dJI%q;G7?rco3!qkEN>+-4>s;<6`oQ&jj&b<<8t!8uI^uFcu(hnuP8e7&Kf1%jI z<`i_bH{K(k!gEuMm95Z&9?uPJg)09duzPdZrusPTF+o8uIp6 zc-c=Uy$x}36)XvC-gEi&qiM=%uQVgy63K~@ydlN32^E#g^t6BTBW$tS+GuwvQGU`s z`1|fhZyESp5AI~K3X9nHgQB9B&&tk6R z$-TbywpY9LZTB7Ta=+K9nd{)*{_REbH1E*`b0-F^t|k|ahC}a$XfD@DY<|+KIW9|; zHe2bFy;`@`@Nr4;{y$&J^wmpk+**RCjE%(|EV?^`13nF%dpX&@(2=L7!1-4;_iDM! z$FkTRNnH{ybCkT-fA7A>oHqOU?)(Ce=*6ExM(!ro{Y|SL|BtYDfR423`n@N%ZDW#& zZQHgzv2A-Mw(W_{j*W?piEW>r=Y8Mje$G1QJ72GBt*+j6m3CF{WOZHj`@>V{VN17n zhBky~c}4?@|A={BW^Tr&Wgr}CO^w^cO|VTiPs2=)XU^M88JZc2ESttN_E3;vo3*iz zAI8T`;}dz3+=fE;5IYO)uTEH#<(m4TqQD_Q{HdC#l5FC_wPIvVJ7ozMqi3Iv`o?0A z+&0w7?%ZG${rpQd+*onKxCHwe$H&~gBngKp&2u;X?6*(;kq<-q<;H&T=7tMq(awkA zjRw@br1sCm;GZG3*oANT)ZTPUlG>wQb3(?ZL_bFbJSGjQZ$cPo6gwqQ33q4lbIMAE z#wM?^_A-=Au-DjrkTvgvzeIf`)QcmaWi|(^|E}sWnK5W0qU{V4Ylef3Z$c-O{iA_S z2!KdhS9Mw9Lp%71i5+yaoI56P?xJc@;K4Z1p}~EAX4hlhq>(A|@I5%E>TCroV=!cT z;x{CNOx#I>U%{C#j`0jT_kB`Tkbp$>JJhF5bp{ z{Gu9d+*=%Hq(l^vgRb*rQ=#;W+RtUYXnX12+w0oh%Y^tjdz~&D9~ae(E{~agGlixu z*4H(SNjP&=Q+0_38FPbX_l=t#ePQVNT)$Slv$?Gfy?in0B;{^ZOV!mRH?uC%NYT6% zUI~gH81ci?wT6W7U+3Tp&`FDXKe$sjRyk$JYzxm__zubyE__KT?yu$6zDn!G?|NAy zhfP-qq^%-+ccH>-IfKO<_!+-v@|3w}@{FaB^_2c@dqvO+JOHA>uUV-kRbM1Yg9~$j z|BNrjZIE7Nr+C@CvDd!UCFVQyo^#4_-D=62DU0nOxq>)o3ZK4Zs9!-iSIkz@RN`oB zb#BF)q@J<(vzZ}QfeiaK#HYC1mw##)v;A``%q9GOuqIp>F-D5_B?+NS&|aiT5nf@r zb3^DRCQiq{p>spwM!J^oYQbRB-~vAH_4;|U;%n;U$`!hX2Q#6-bzj&YtH<1yH_oHa z4i@M{2Om=WW6-#fZ>TLAr-1#k+PrZjnUFVN8lmM2g64ObFMjY8gACej6 zH9x6npWHr7y2B5j?Ti=TXL6dPJ0el2y*sp|p|7PZIyV3q3r6DC13qqtN91T^!AybFB@KS8BN{A4Njj0P_hW>QQ6m~h}(qR(A@E@CI zzbQW2Wp}FP%!6r13v2FkxQSFji;L{CrCu;dJz|hqn0Do5izz~qbC{Qh6LWnjhK=n!keikog=QPCQJG zYNb1OTq1s&f7Ub#ynH5^qlz_*)4i;>8FyE%w1m_YWeyVTju#w1AHC8bm?q!1+_P9% zg$~Ysqhmqp!-|-i=1v!D5I-^qlcrld+Wul>P-h%S1m;6L6Q2|urjQ6Kz))4Z_I*G* zBWn9zVqn8%7Ezx$9pOEVBgD)rZqO@^?ZpT|&KZ~G<#6O#I;V}xa@Di|o1K!;Y2n*N z*{A@$bU}3)OABN1w`nAW`ycUqrdbvh7Tw{uPh*F_v%N|KG5z~?QubL--J$NAViU|5 z2pCOX1G+P@2+ePX-ZLA@q-dM+LbXnH8z*gu4zuhOG~LUW$6?ItX`xgpyT0~kX{9E% zsh)Xbr6*IrjpI$baX475T-U}_0AhWL4t{neUiQ2r9kNf^r-{7Xvb3H>SaomZf!TeX7eyFo= z>BV5_09Z$F4rl&7hq^{dcB1%s;^1i5=*8&fpF1M*UqM8sg!^TZcvBo{c=!YJ7fBat z@RV@*;BRM_j^LxC$! zDhgYvkJqhTe=vxdc?*uvKt-MrAGJZeb}JqNL%bMCyy&tDY8Wa@2V?j!a4je#_RHt? zlwaJr-=#2x!_7uoT(0OKVp1A3nB?4{D3*+3owjQul%WImhg}8r_Fsp4nkTS1E;BGv zS*P4kEOve^^~Ctgt%n=D#rUbPJI>kaJlb^{`i(j>B;fa>MVi_hd9lElanKcWoHmhq zH!Ry&Hd8en5UR$aMa`wm<_JMKDa{LNEO2C0a>Tm*e!WmbFRh^$FJa3Vq}HlB6JUMZ z*O}l7v5NW)`=OJ55n^VLS6*Tta&}HQkL`P?Al}+;5z}s*Lp8-R(LmKCW@CjIPOA(C z&|C_>eoL?DSBU=9ZSfsrxz62VaMPFY>3T?bsVu4PHkz7H!(*_dY&#;+j<}Ss$gx@T zx;TjEznKupbm(;D+|*sbpejn-x&Xyk8ih8w?;7*{gK%Qfk2yeS7T>nUFfPxWkV6*7 z7&GoM(W$b2{8_l8P~wgNB}-LAH1Ws9x?M&FPE;>r5VNU0$GvN3SGS$rbm63JFqo@L zYoHFWX=&A@7`-&*7M0!INd2|t)Zja4{ytXb#G9$UX3|90u~&`OtfpIC&xYF1^Kv(y z*FvsM%SUEM3mgjQL{tssNNMI0^NH!@q&^GHfqL_1ai#6AIvO5}rI`a~@ef)0bkka= zznQC`Ee*RSP*43VZEG)%R)4}&<%bt*j^;1}zFqRFVZ@eQbew<(Ks{OAXb%rv3}VDU%2ye5 z!Edd*u;)r3{1yHo+6mUZj`{gAN@qsufdHI= z9t~67xI(Oq-sE#l_dA(W(y5X#PT2hfP3xE*3TrLO<iQpCwuD zeCthEq*jkc=ob`KBkgkpL27OQnZ>`hL$QCCps02EK z41to|LE=x%KYYh2PXrzXW2l{QOG~}&flxcAcWDJe+Fx z6SYgGB|EzyYCHO%a$A2vWJ3K+bkF8JT-m@{I%^*kuKnBqL*jd~90sFKSexar6JI+I zldqnU4l2r!OW{s}Z+ee?lSG$tfYWLmWnZGq%RF;fJwu$5icF5A@0E(`+jha3>0`%r zG8Ka}6KnZO9!TF{@cEv~!$RA>xwcbmyIH931(507o^b4NnGbR0(cLeLZuQAoE%IQJ zm-j6jsN5^(*%)fT-ew$ID123PlDkRuOZ7?@wVh-OGUuQ0FD2IdF{@gc$KZYpbSu+B{HFA z9=!%XjrUR1Y5vq}m=(zU<c*F+%YNvRjBTPox?feT5hsU4B0nl%b%i*D{F$%z_d7+0HBd z50>=)NuFqtmihMyl5@eJk-BMBZ`ZMBi@EFaVJweX!n&ush0~7xL-J?b`$s7ZGy9EN zODVr|S;+DPTZHSMN~Y3p^iC#klTVLJCW`)9x;US5mty;cY}Zus@A9g-*O4z8T6DQq zMKjbhZX}dvXb*4_3Ax4^(7F%V5LcSDw&6a^Y z5ArFp>+5#tVQmv_`8p6Js{}tR$vP2md)R*5%Y5GURVhBHbJ15y;VLKeesb?U)i>Kz47iYOBalu zxH7|}#Y%-n+t!qyKHQF5xZ!2q3H12M#*fZ8?Uxgq^ME}hj9 zaBI^dDD%)UCdFDFkN90o^rrf$d<$AnX@p%-`3Sm0llpKLj5}V3L$b{m^0?7fTfWux z)!d$%;QA^wnrKP{4r7Esz|zj~O;P+jpuJ7(TEu6{wkOkN(=)L|U(;W~o+bOm&~b9a z6>m2wuGL?<2ZdvO&71joGR=O7%Xxrul9r1%?(2Ck^wIPDxrZ4QGw?c+NT18m7=@=DU$3 zz7MsY+1c)6?f-ZS-h;yWlz0ghJm>E#oiTTvMf@#g4~=#=PQTd3|75kUW_=rrLb z$4Bj9tkl_GI?5eP-A|S4H};J62%cDRp=0$*i^%HSuS$8Vwz9QiokR_504+D=%z$T* zKi?VSb!8XFy6xmO!sE1Z6g?l!6*8vINKW(}vg0$dy&UpSuzX9lw~PO*O9^4u^?TNH z*YkUZ%UYX>KW}nKTPh0OyGGa~-Cq~w6Su51X%SYBy?0;!GtEwTD$9&>? z$8+fhqm>iBiQQFS)=gL&%|7CwV7wA!MO$$f_1j~rW)t3Xlcor`UegQjQMt2ia3hv3 z`;MO-FI8tTS+L35?oB*x?RH)7T|Y`>Exl5-RGwZ#wKwxl6jZ=DoXtC)u|xNQX%}~e ziBBq7$h}x<+t;|q$)~ObkrQ|D&YI`1ICOi~7p}~o<>D{fENA%%bJ>0LS=9$p#KHt} zv?tUOkyp}qF}Y0C9h$&rn=~BP5+&(4>fAvk(r;X|4EdiKgc-CFQv`VS^A6Yy^G@?_ zoqd4~SQgz-lNp+r&>)+g2Vvu=xcOPmgIPw$T*r=mdU=DBISp3*&YT-3_ z#_}IxpPCi=h?#uyJCu-?lzPQI|B+3|9$qaH3zbp+-BoMZXOQzkAlZk*cO^~gtK1Nz zNu{G8k12mDcTHtWQTEFk^JB@y6nwhKB3Zfp@ACFsfmHXIq#4f&- zobL)POO>#RBCI$pxc90w$?B&n^5bAH0r$U0G&0=SE@OQ{@WvN4Fie?4$T}?Fe3u$E|1uLWyI^aL((T|?@A!F z4dpy|VoepM>r-_h#M;hd6M>(~n$;!sDrv=c9t640okxV_Cc7_*%Xp}WsZW96RdN#) z4h6JTtD|L!vRH-ka<;$NVJ{sR8n<4aKk8X3%h$2 zITTf(1Z5qTKiv9v5kl7ZT{McYHQV7pDRoRI#4x;TXPCsQPj!AZ19@ zMrQ;L$(nR!;-F2uZbdRVnr76QuMrz9B4A=gKF zBlHvgAXzf(anCqGc8}Cj$(!%#-$GN|LqSh0KrziUg0n%>K~5|iQ{|(?g2&!8Sa0HUZM<0dlsH^>OGO6?s;b{5xRe(HAY9xMi>u8;JIaX9z+b02Vn{2mcv z5S=3#&sNbXr>qt}eh~H+ffn!(wyv_$MOnL<8H19+^?fpu{4rr__RitV1~;i!xiJ}6KjCUQIZ?{hHf~T%$&m!7LZHzK* ztO}!(E(s1}^e4WZJr;}qS%4kkUXRV(hw&V2tCS}@NBD_Ir(_9^%$%82&cZk0SE9Q6 z$4$5GbZv;odHYR$_9U`Er_s3HG!a08=GQ22uq$j3RIPZ!xhnY3*IFN0xG$w>KN})_ zlrUmRadRzOZ*L#4FZH16>1VZkG6G1g_=)D(E+|Y?q-Vfo^3~6iN}Rcb@W&DMwH076uGEo5bA$={Hd6mH&8vG6FdbXT1RcR>UeL@)r8`^FjZ`;u{|7m ziEU3-k_DJ9V}6Zgd<=+FTNK%|&TigC`an#;;3sMDe;+)bT~zPoY z&jMvGfCPd?tprXHoq?Q$D_`4%1n#&!J<&;8n^ua#EWJ?{CnXGnW9kCF@!J7#J&~eS zFcmNe!k{M8;aZ^RDHMLQO46}PVLORd4EJF<7nZqJ_DpZjx)295ZQ&J!TDJ3rKBo}5 z(Qi*hIJTJ8auVkknXYGffp7_w9aXsl&72buCrZS5uICmJFlX_qVG=sN-69eCYIoH$FY-IuicJ3C5d zwj991WD{0@@)u;KKmDDkXx%zy=ve}7&@2@L_g;wuB8(Jo4VQSN!1RHVNKpoZGgB2; zdn@zgVBNlJR4<2RP(~Kk7#9P`@gKVZqidps1aQ7&6zFVj$UrQEaLI$vF{t68XGpCu zD!}2^;T2p1-V-5;MD87oe2~!LY}E^H-@u6@Cz8d2mB>Rm45~`KG*tU$3%u7h$#QW$ z{Qkn=Ou1Vhtg9y4;lUhaf>Nf|PnUWMQ?^%x>uS?eDWr}}8w;>2*9UU0vhIngAGc?) zEaU|hNn%n2R^|}O=6WIGl3A|xzisfmK&2V!%xe`=2tuiV5*?YQN{ zJ5i=mT|Foj3yJ}RZ*BEV@YyL5Mt=azbY}o&&Z}@A-V`M|0z11OY0zdv8W7$V>nLLe zgXz)mt~LJrOBbsAsm*F04K+Fr8nRhb^Lm`1w1zbp;0GO9Xhk%6jb)M0eU-=*RmBP;#N%$PL2v&oIB8MS z!ZNY;paQ6?elSw{v_v3#619j>ZkL&S2O+zhE@+q3DPkavtShkAGmElooUPK*jDhZy zl5#S>E(kzT5G)k=C1cbZ#GD_Jl`%L-vpCGH_4_9mQUbAQu7<;)h1p@ncJWsf;&E@E zfrFgzS*K_5`wqt~nvOfSc<{EU^L-k(B=FgBXCJjcB?d`B+nBm)<5Zi@Z{lV6h+%u3 zOeSVpHdOKveo6D2U0%HAO7EzTg18&tIYds$<3DQ7bmrJADKQTECire9B)}c?6ju1qJ#2D!8XgbO`gbFCmh0?ljweP z^ilc{t%pCRb-Rz?y}X(#Q+-p&Q8VZ>5a$ONc9F$NDihZVoYEW%GDa->Ii=y1x~5xm z!3o-B)eAE!HlcyhCkbOm1sdkj&tN)$dV@+6_Z@zKKPuOizrb25`s;GC`{*e8A*r=M zK(r|ZC@^uj+S!FccC*{t!D^Inw6J(Y(z*t=qiE1?crdlhS9`uWM73avA^j#bu`>jdC`6AQ77t zX!%>qUlSdWi%$;}5@%%pi-t6_RVU_Prw3|O05!H@8AOa6B+aZWEM15>nAqq!ff4{r zKwu>hL1|?oWM^SxM$GtMT@V(w_aN4xV`t`|2TErHCFbaW08M&Uc2=MY8n6%xJ^Np& z^1l*p^qg!!K@q+GDh8xUnlb++U;c~X`JV{Nf6=i2kCFdZsei@~Ec#zKZCD0jBWJU} z&iMaugo>-Ni>Cw7O(IgFe{WL-eqaWU4+!71myi;bGjbqikTM1O!^*|;UuG3gXP`6w z2dSxSW?==K98Y3uA>h=QeT8LEa56P>va+)vrv9H|K%u~%Fy~;?;%mExdkS5Eb2lNE74l@e}JqOTR9K=9UDm_p=5;*36Qh#Uu-v$1|{*Ue7 zDPVP6#6X-d8yj%q*qDK!T_EFE=igQ75d)5!kK&5&-_^o`2W=AJsDc$Gx2Y?(;uoIR0mV#Q)U(kL{oP{>lBP?f+ZuUmyHO zn|j1RhP=){qx`4v|J(L&Py9#s|0(;=K>tboQ{O)}PEIbM`+y>udc?qq0iQetHREV~D19Dl~Ez*D>i7xhZh1E#XdM`?P+{~3k<0)784f#}}>Yb zM#2A|_#T>i$Se{qNZO9lWq^Q!i0c2#W2Db-&GKJUPjxwDhM$9&r`{ODLIc%xp_*3 zG?%jdb?vJ7r5RUTb4_y`=_@aMeGBZ3o*? zPjHpQfPRF9@JLUIY2z@2Z5jdn9m#73Rr_#KU+DC})<6Oq7@z~>^Twb{@<}--xpMxj z5LBVF`HHx#$j)wrANZw26aYUGMtTIvmnQ%pM1u{cAxI|+WWS;`gWG_#crmCmz;O%0 zBndNMLkAmiE*N&fFy5wmMJjwU90C9UG^8Al?cCM}0WNWU?piVWTr!m_pR~77AL;oc z^B1&7Vu1hw`fpewyTXq7Nt6fx=VTXR&oSryOEwN`zlDbx{mSuP=fI0;55F1#OYHBQ zmM(kG!B#!T7RB0JW*-x8=?5Uz%}uz|nTe&g^>ju(1G9bCVa^dUE^KX^E?vid<7f|O za;K>eCGKI5rFXbnw%rXMVuAd9U^qzOixyL#@mxzKQ}I8?QDe-M`}gp}IoETg(PsJy z%2^@E*0ZFY9Vn!gm?sU?B?Re=WQ)aQLB_`MlS*M6*i?6+hrw57hj+ zpl5q$T`);=es&I-jbt}st-{g|`HD>lxEpvYt&{o|s8w!pA%dZq)V}0(E!B#5x)FbX z_Uj_}gik*toRJT4?VxxL_gLM5>Jo|cPs{LYmHY<7>CNFDAC!@1+;mxgD^VD1mC0Z$ zM;OMwm}dDRm}ca0=G8N;CVyCWxyP3qQ=F7kqYl~5ZkTz(A`!rH2uVc##wQrU)7IXn z(@0O-(62V`)k=-VDvS8Jiw)_h=yr6>efO!;1*R4edACp>WejrGyPN1FW5ITpyFvA+_w)*rJY5uM|x#_m*GnBIn$3A9Za#4d9?lLLC zZ-Tv3B0@uZ1(4q}1s+#%)N$8U4}7RuYh$!l&`St>Wwq*WJ;CP4591ri3Z6d4bEfA$ zemOw3w>wtp+P#@$wNq=e_6pFe(QYC|UgNBKxtSv#$iVG{YA)XKbFF;YDO@5(qZJ3g zvU1UqbB*~nAOWeVpjn&no{3Lm!R5*V$|P6jZV5cE=*r2OqsD~Y&A5DaE$U7oA5h9$ z_ubT$8k<%I?zimG>4tf*+5lE_Yaz&Et&9_ojmm`7kR3~gGECRb4Pal!?7MXJlrqKu zgJTL~lrWeQv2kD|NKp}Yh%b#fV;i=*+_$0c9t+4e7?~kt%zP!sDlO8-LpNHlX~^or zfofY|(t<||96eL%KgLi7#vXeUWaa52aZ?Orhn<{^S5{<2i}*Q9Buy0V+hy#+pQ~BX zD>Oi{NnZ0{J$dp=bf`@I8Al*JT&>Y-`lB`H>rVDvztl)uhgp_pWnfpEP`omvEKB@K zD2b*>%~%RmOaN|7B=Av6(7&^MMYMiyv}4+R>OohKPtk~hR)fdWA)q!;OWm~{95K+N z7>{O1E>>o;&izgwTcQj+`Y5ABJ*-zTL0@st#2@o1s#XSs!7)o0XNZ8l8%u8lkS|&W z_k9`_E&^~CrDOf9Qb<`A=?<5cHvC=RX>aZ-Imy%FXQFv3W2aPn^#nVQf^Wy$c8W zRi3EJS<12MVZc)7t92ZKcp0ksdTxmIS;?L0XJekWlt6m2#k!1RxCP?{OL%~;`+(a@ zO8Nxu$Y2haQgxdid@C{7TW%=<&0}Z?l?|t>Lqhz)vizM^8*6O`_{%hbo4~g)9wP|t zd=sWa%tpVkLf2KS3-SwqTVoxeFzr1FXN>D`FG3w2J|OuCHl>&Og3hK19{%X|PB`9@ zeO(%o>Q5hMqn(}bsR`q%{(aF`rR-KZM~Ph}4|q3628vZdD8j~3%KjZdOMeHD;!BDL z<=)5VkhPw_5~x0pZP}lJlsD z(Z`b;M+R$-M|Ur>wqm&@(iaIJ!0w?YM-FWFT72v6*aVxbLz`BALc=HX+L7Iz1>iJ# za_42YfSVqFT>> zGyjmY0)2RqZhW%~E!~DPCK)uvZVQqniynn_;%N)Vr>sq6uwvj&m?|o5v(g27r0V9# zA$t=4pfqZ$(|%*tClJ8)C;Jc~75If8me2c5?Br5d#*t@i6vYE+dhZGbB_a;{8vX|{ zj#$mWEu<5zS6b$Xc|Aey4fk`1kJyJ$H`U=+ZXs3C9u`TKEBINiJ8dtju3W;tTh|u^ zuR?kH;PIVyhhkj>4!m;hzUl#Is7I#Do%k!5edq2v{bgbs)ErbqXbaIUmqPfPN-RRF zal2P)#Ovhi`|CeX4}f9AVWvA`thXaqBoRC>(23q_{dm+Cj7?In{p@hl#2iybCv)C( zA>0wr{r$;({hKuDR~AzSr(*&qTq}0PT4`sA)zF6$k?YO``4R*dg05h@Qi1qY~MMuW05uhI0Yqljv|xE((eXz-e^8u`7u6 zM=ezT@Z=o49PI82bJr(68AZ5jEDJX;c;Vb<&?U?r=mH&X-4op<3VQUUb4*aVgQ>LF!Gl6#;g{_z9G7SZh|lReS>TeBX>a+d!<^ltrv{9!yg|}NVxYSlzaoy z)S80JSrnJ|+F`6V0!sQP+-ZwEqC515UYZYrJBx8tYgB)+W4mzN2f|iZ$UdpFgO;Zd zkaa)m2&DWq)b~~|;De>uDITOdRN84Nt+-+R`W~{VhCxa5wBVFeFr`f7j1JopXCX$^ zVb|D;#>)Xhs;9rQR}rgF>RU(9X*TdN_12YH?@H|cMQDeMry?&KC> zl$Vt@7U`6dG9md9=8KOMQiv}UdZKW4DA~}LwIw5icE_sOtI$(inm}=<8ag zEX)^}^W!Ky0`@&%#ek;X1qV`EKv4DQb-DTxMeYu}ByQG3a#d$ijN-XtK~%m}wVz0y zBFm~gWbo&f^p?#>c~?)e-zw_Jwf$ML#8wzKWE7G&p8W?qIHRgj*??la5MV(`mLQZ8 z{*=)MfIL8KoLRX1hq{?7WJe8Nf&@tfT?7L%y?Zkz-l|w4gRJYl3%|@)UsR@70ck#U z;YsZ!2)9T0vtWq9kmFZfIRjX zBm5vE;ea+g>4pSL2Guj2Ml~EXw_f78YN!%qc5rr4 zOV;`i!cJ4r%_BXtny&;-mM!aF~!0DGXME>Ol ziQ26$hGt9!Z-zZ&q8YTq3aLbK$O;MDph9k^26LK3>P6jAFugZg6;6yGK95nGPzb-h z=oL9C5%z-0uMLg}MWYa{#omHCFhv9}@L~8xjsc-7wkFgCKf<-#!}eC;_(R>v-Ptt0 zCpG&G#fMj#;AjEOFM?1?MZ)z~+Ba0Xx4y*KkqOB?g=aV}Svl;VruOFyYDr9L$_ z)uToky1d^m!L>c-&OT}X@HWkVHa}v1j%RC|O|0NqQDC1VmZ`aWM!)MImaC;2_jOHv z;Au9_`**eU_?KwVrDc60H_~;a%Lrs#OVR-7udU zPQFi`xFTueUHdZgL!oP@tU#TaZdFK|K}|+vc3~uyTT*D0p;*Q$L9Tfu$|mW)UOmN3 z>5o~|P;xb!BWcEf{_e79sF;mF+?U!CjIkeGUyZzCN6?oF(~>LmFvz?Tqn1A+6&=-x z-Rwlmk}YRl0jl}&7hLskmIGh+pFIs_C0}ex}64j znf(`KQ$Bim$M;=UOocT3N*K8dyiDv9yyZpT^&V=%;i!)A7rS7`1G37N*l78SwROJL zE?(ArdpViUiv9uvzS9($X_~4RERITJ4qDUc6N5X3sAx?`|A#8le_bE5A14ih$=4Mp zw#;`m$1LrIaN|_i;Fkbp`ACZC#ou zQ(x6hO*4bbNr68i23vKEmZ<&=TKS`BKa$Q<>qyu-R{ALSVGRIl_%me!uV5^{*TYj+ z#fzCe)8a@kDE7@;RIJKodHKXPA*9W1ibLRlhjHuW-x(`Xng+lE}v>W zNjl`>R}21>P|P-7s*Y@7!nK9H*yL@*or z#PU)iFYDbKd(3)8?4>3f&MHdefhLg8G|u?tI6{b3&0jcLAOKtV4TYH`0y_*I0KJR! z1A+wL_9JqckThb2=8vHIF1|~ETSOa;TZj!n{zq_HxZfDpQOpyc_h+c)muzG>5(Y=i z_OfLRZZb?E5Mw5E%I;uPj1D0zzy(c;um*roF=QDn3S~Tx{2D1jm;<0cL-30uiS$9} zjpr_uFydea?H7?3n?;_0C<>Gy10Zk)&+$hT#tf7r}W* z_(+AQ{=wYXv78`7#QLF6Y_cJ^0I8!>UxdURSio0C`fChXHAmb9Qu%ONAXN{(Y~W57 zqc#jCqG6k6q6d4BfKv5Awi8+ZVvWMl z&kYDi76=L7aRW$fBLXCLkRsyyvLlhU9b0Ly`FTN3Q8@aDP&g`|$k$_^(7pCA2j(4! zb}=z>17A^E`oSWYJdhpncA4(3IEb5j#R2D64!eBIAo1jzq1iP2aPg$g{U$(|o+Ds` z<|0ro!rRDsm*5Ev2-UN|c8nH_&y=PquSe-kDw=#&VVPB&NL5#xJnODeR=%A_#Nb3 zsw>#tQkt9)4HSXkfr#7z>j;D1)5xW58H}DF4&{4w{^x7L=aQ!bpuB z*3MuL@xh*fj)>2IN93MhlL!m7H$r~NPSC?`5dhIP8Gr}{sZYTH|Js5x(1Va)yfe=j z&nLqJXV(Fh2_%=~L!Th{unjme&6$-JEl_2_7nbnO!Wcg z`r`dbbbQzHSvmjr+H-mFZ_ob71tznzKY%zX;8pATBJ&AsptoBmu!}o;!p&lN=|#{p z2P*E6lgTw;1cWr;n^Xezm>>kQnG_}n1BF)fbJojfw{|9$7%XUVqE%<4x+>mhEfKfm zho)fdlCFG5-W+`~qTn1d2)S0_PYMJF$tK9e-WqZOOiC*Yy`P+J6i(cW3B$BPWYGPW zLOicRu-+AYd1ge1u&I_3o3}kPQ^6D6=)dd0o+m7qtQuQizSki^&PbjhQkFHTtrkZ& z-b!{9xxM+nGZtBLq`RbA9)b&j>u-B3P==Ow7S>srL7(cIa8Rc zSsXHtaRZZq^Pn(d@OzCs`y4Zpo~@zwQuLQ|;yTY*0Lef<=g!uTX9WwNGoCq~otw3C z;V#lkEFyq{NUWk_o{OVnnEU9s%6>nJOKco#C`Yl8IyU0Sh)XOjZoU>UFO(wA zL`xDDZdfwoAizd&&t%3%p~#AN%^D8VN1XgP{;AtlHc<236Jl75%1FV5viib3e*-bk zY2u*1&S1Q38rf7U_(U-Qz8nl56?x{$wkXGlvEX>M3a?#Jye{YiP zP)|u-0Evo8#96MYTdT&TlB873ax29+OEb9-{GCvwrz9H{H0h8=&S727HX79zH^2Xw z$Hyn;O}uT~^E6-HSU3|TUOKC(45bPDOJAq88pNe&xWXE6u3(Kk;w+kiRIML(US!)9+F9Ect30JNAy>b_3?9niK-o)ye^?tl?r( zT9t;?*>N#u@b0}VPQH{9jt-&LE*;)_1?5Rt!8`})_tNHa;B^vqahp;r$(IJ+18OEs z>0;SCrP>GVKKU#y1YFDtH-4E!;BcHQf0w0%+a5EyDnh)%CXSu_-Xnm0=glH?39i7I zb_~@C`@&<41%L9xlUF`|_~_cQuROLcg|f7755E556H!9qi)-WUE!h`w#bI@8cAY*; zcHFLVuugGFiw17&i3#|ZhTbDc``3vo;%zl^MxqWwRsV;h`}Qtj4e?r@ zePyU~|M!vbB806bYj5*3EwxoTOdg;TNg{)5z;s9yv4@BLN(!rrmv#!(6Jjaa+B`km&f)qpKz0f``*nLO zJJ&aVtZh~xYH?3S5LtR#uX)CpX)Dwts6RWCbYo{{5dr89X}6O- zoH?XUI6OV(b%7?hT}7bqDGip7f1}p7|B|I&+F)`L5GOw}K9EpQFgI5aq`y587I#qG z6_wXmR@Z0=?m{QX2P>;%=6-f`vOEjQmGV(l%(1re%lGlDYU`jSgN%{!fZ0x$tAf+D z95i|>7lyEBSmg(IUT<(Bj*Qpc(ME^F^_MG`kf5kdFfYMNLW(YLT@bz~rFdgcA)(=* zpvHbsJePVk;{joR2?Zg$+V%DItzfr@VZ5235UE55@XjBjH&uOxm>$9U_Kqh3#tic2 zh7HEO0sMSn0USh867bk_P>^@WTzS)?XP_ra-x%np80h60Xxs$5O~~25!T#}%=6Sqa zZ@UE^!y$*aX@Y{)aH6}@HsZ(taHqAv5nr3gh_@>r5=o*4Pz7vOUFbCa z;EF3qHmG2;%3xKU&sZjE!jlcnh=(3dRYqk?gNxMJx(cDSh;U*rZLF_WwHhy{v!xBK zSB98wRt7h2PD-kq;fmki*KDJQaH|1sfIo*j3!M3I##@t2u~_UHQ2g|b=frHNSLG&C z;(^9T=`QZ2L-^qul7K_%UEoynfS#01I?6+3-%(%a#WMc5HQY1U@huLi(6wKujL=)O zNsAIRN=z88H5t9J7qT$Map9XSqdrVlKLlr-_v%|O?){MMq5RjwtBYc@Vo4XeNJVEO zrKJK;mqqf~8f2%pnkAay3%z#6N(t)leL(m*g#hYa%kb({kAB1V_Z)%2_v>E!oLYN{ zwXdp$YS7woF`(y=ag4CCb%7morgwPd*H+^_e%)-~fBLJSb082)2Wn=Ti$_Ld2(_Y9 zE(mly$@yclh>0#Yn*4q*b4<4oyt049x5g;M|1ak5G0KvqT@-bfZM&+AUAAr8wry8+ zsmr!)+qP}nHczd6_Fn7TxObd$f8BqPGiPKV=ZrBTGV*!tkxq1OPN-FJaq?{%|{B`4W3yn401wuqC9zi3O$d2L~tHzVCO5UwfIpLN_t_=>4yWG1X z?b$DJd)S^}?06~L$L5o3@D3G9)2WA`aw|1(x z_Ynjz)DX&c$%e1Ym4D_yi(xa}RYcsS9X)2=EDG4rw0kWb4urATbn4w?tG}Y|h(#3* zHT5G6?cO}!X9S@oiG?;rrccIA6QaG68cXP+SE^@!`Mm^PVOg7H{9c<_@t6z z!h?*O0p}L&M=KX>^tuBFoPb4X2j{Y*P&@yU!3Q89m+h%olM)}H7ZsNikd9nsDb&d+ z50|1Wl(5KQCPk+Y%bf=yZt%_A+B~a>@p;dm)BJ4B4Evb6=V8p8Q5k(qiRQ-hM7UVh zI;OrvcntB#M>|OBnC10~@Xog@^p3TQF^YLW9n&5&$()*pw-}Ta|Db zk_x_Hft6uHz-7rfg4>FmVHt=l@^FY_!PF6kg0*NNlf^IH$kzUP({)<1-@nW?A{*Ow=FzX|0!HRZTzXV!n zF~j?CM-j`0!$!nYoYo@Vmh0KNFDWc1=VX(SMAdA_n+@ypN_>h>vrodqu!oLKiMRb# z9tEkRuymxf=OjmT9NV>WeTJ?r`Y6m8jAx5mxSKa7%eq|yeIN4(-Bk5-<9hX|v&5HtUOH7qzm_s43~?-D8Dr6FymD(?cYxgEUK78 zV8&pk*<$A5#SZxV__>0nhFX=*kQ}BPXGIm+UZed)TTgfQUvGvjplo4Ixy)XQD!DeL z5V;Dr81+7)*|K-1ZEV< z)!PQlxeOUs!j;oz40&I|)FafhxXjmsQUA;!Hz2ibSoD~^mWO;ZkSqNoSTHx-RXv>A zDHW7*i{$No_Q&!E(?Z<^&BYd4-L*-M07xxR1d)9yCtn-8O1X7Qjn7=rtYZYl02eDZ8*jerH?Pve#_zy z8#lIO(3ls~%OV#r-Y&Wha-{cT_9T%QK3jrn+Jwz`ZXj4IDsJXn6p=wHEjmrp8^4H( zDQX;IU!`AY?(Sz)FxC;1Hl${>4wuZ&D-~H5ttz0c^cGU4%AB4CJ|f@t_1X|4c)}St=}Fb!mWh{Z8959=E3PS9gBGf z*a>SJX;0bkB&(u*?Mx^YS>vM^(yhF&7XqPimwVL~KJ>ITSsPi50;e~??m(p1J;?3x z0qxx2CAh&%iWXkpk?kd8Fqjg0=WJk;9L*+iaF5O@no- zE>#9~CRIlkLr1?I04(5!{3EGgD>dH4eopAe{R+stfCTO5<=B$lb7gjDXYB=aDrz@OqRzrZ1H(2?0V$ab$gG#p zL&Y)=2N1!WaQY5W6wE&FjD_|1N))$*>n=wxZFE!cjrk#26?XynnP3p{WuohlLB$ZBiAq<6t$U`4e zMc{yGE^r(g(2Q>aV?VC4Z`y-Z|Jqlydg*b@b^GM;YUBzPu)*_0=&|Q@qFU>{)X-Ep zD5n{ZrM7S`k*CDDMZ?I>NIYNMqDCnF^u4EzDWWwkAk9%fQJ}A-w$>}sF=EjC z#>k|}25!?4&wk|UE``ros6S>Wcyo?m15I|Ig1P9eIls9fA-7#Av(+?Hzxzc!6jeZs zlws`xU+fMN#pySjYs!aVJ^|vm3}#UbJfxU6LfQ;vN2V}y$1JPSX>Ef+YNiI#7tl#f zy{oKH7ZzT4myEF%#tB2?+Hl)qe-n6{g|k%W?Tue~hm=Cog41D88jb=v*rc_OcV0eC z=8Da8@1&%NjF>0ExCkB{j(VOG(n+{ude%!&29ihH6 zTl$YS$GVwVYiXII+5zW7OPlVkE!tJ)LGD#9spJ&z45Nkv?MvLfj!mh3xz>?)l{^&7 zZ8^)(KPHnV4sD3NjvC5shy%a@GIg)_nyFDsWC(Nk!NA}IxLpj0(IMxLQrJoJj|rBu zi^|%XhvSp`xN=kuo5R?<$S<keG^VW5=I72o((}bVzCPlkf>rDyw zY}WuM(_T6~zj-V_9oNgJl6Y<*3NmD}d?GdP4owW_8gdP(@`Nl$=|4isP+3I5+K_iAC^bmXa_vbKy5s-qtjXH-XAu5Tc!;-QW zGl%{}ggq?6M%Uc)hl|b1#PkrDSRW(^v*u~1?2L$C|5QD?9p%yHGL(2%(re=Kx>mX& z1j`B@Vv!l%nr(1+QHk>T6ljbR>*-@fTi$}7?Lm=iBYQSfi}l@86KTNAf;9|@NKvUl z7AI`s1F-7mZNLSp5_?eJ`Uu_UrCU=6DIaw?JJ+x=^l^AX8V3rXf#LJE z{|#lKap%=El0VK{YpfP-;~4K?F9$l{LthDx%~_f`t0xIn##i+B8X5CX@8;`u7a`4@ zFxc~D6%!D}qD(?(gBJWQXRlW~WHgE?zZd0|sJ|TUr=S+MDv%G$l?@@Ht&>d98ianJ zKha2_^#Bpdqrnrub8ok%Aw4A&U&g%=*{8*W2-FI?$7hvX#8+-q147g`0^h;EIh7T* zGzQKhK@X6O>;TfM1RRB2lkd3q5G7$^m1qr^=t?DqEt-$nWz@q;V1|l9Di|JzDXd!@ z)Y*Er_UwB^m4EmI<-ZKJgwbwrc&r6l0u57vcYlL1ai6U%5?c#li)b58_+HzISSxDW zOi|fVWII31pS2gFwn+00+4QB7g$e^Lj+xD~)w7i5 zWUGdmrqNF+jH$uO6e5ld02C0ad5h#083|3X;EJlwrEr`D^UUc6XPA-qCAIU)By)UP zZQFf{Z5*>+Wr{p@+u_b&=9z6bEq#W07IVAY5iGV}&D+*ojC+KGEREDgWge>_a$Gr_ zM@YP|)k;a+2u$Mf5+NO~DWxy%%xr718<49@c-c1kOPy0w_J%p?O~p zb=h}9`Rsc7jsUij_~|SJ>DbgAFLNI2H=vD2?wnaCB-|Ic!p%wW^ zv2zW|@s=<=^BvE!OK{Y-ENz5iBY9kgM9rG4WuP1?K~xwEl%kEhZ7y`=-jE(A&N=bj zE{$t|qOg8`%eyRG0D**TV7TN>XaD#Tjix__OX7uiIJNLjs+n9y(CZ`Tni-t{CQdQ6b=F^rB-OxWtHg_yB9j)K?V+{P50_O}W7$ z#;+4K8R}OmK5a}nk(Lg@N9HQ-R?C&B=Tl*l=qtxnTz#O<#;5u_j(hO z=Rq8rm>QqRFL)k)NHKM&nGb?b45ACTPMD#sAJphb7xXKfbHWtykZUNTD9qYLPdmuK zMHDUc>OX5qw+Wu7_UQ8+1K#Wz>T@174@x8`^33Bk>p3#G8Iw$DO$YCZE&Lk0@@`K# z%sV5xuyw>L*WPq5wkKJJY!IBWsN!5ESCMQiJW>fQ62sd@ta-)p_{D_ckWR+&{qsn| zCPgW=It)G(_SL*MXH%c^2X=q;KTCcK4ml}WMJ6cZCCl-lHSZgV_oB7fXA~vL2_jf@ z2+Xjzu#n-?5qFcflQWdG)QnVfm5d)V)hqMnud~mAVsxhu0CgkA%xU8!9fPsL{dUvLP;Df8#(^qDpxdRot`i%li=sjg z7B>lwRO?+EG&3@oQ#(LSU)KdSMTyWN1!z8o?Qu$Nfjs>s$?e=$C6^f&jTy>Cr_ zj`+LYe}=3JcE+TQ-R+c9YlbwzvB+YkYhPZat6Ad&bvB^MLGz(5NZ(OJLVKsHc>9bFdvqvWSker7r0&&vK9Q`V&; z2U|ZHl{nNJ=vl#RF0-obPU)&rt{6v{m#;`afIeid)Qa@mE{E z46Ewwlx*Iqd=r7g!o|7uGKK6r4?KbvQ;L^As zf_&CrhGoVAHwvlJ4B!%w>P^oyny2Ea+E(xy4me$z|T@1EvO9+kv(sM;fro63Z z?^Tj8Rkj-MLvuht7}lJ&=zKO~23vIW@NR84uav#Ma^(DZy@qjRzpiTw6PO!;W2v9( z^nItLv3F=Y{EPX=#1Ar_h>kdsvQ9td0joe8^LFuFtamg~Q_1}eJY6L8T zViRo_+fTELbmWcnutAqnjjx(lS2Qk8E@D4^HYH*Vn352ql$83}Cc-mD#X>4J#4F~F zj4$CNBlCPcTHIuv!QF4!f6Qd`UP7&LhwHfRGwVNxV!7wIZAF&B7GF`XkUH`6JbZLN z%>ZNo$HH7RS2xCS%jgt!33Uq9Nq6b^2v#O7Wsv)>3ABp=bL=$nyyl zUn}v3Esh$dNEXuPX)jggi<3y*vSU<1gkYN1YmK;yFV4cm%O@JZf-3<|2tXNSRO_%3 zf}0kUTh1(4iL3vDIq$%Rq9%U9T-f725bqT4usk9(3t66CH3dbgy||jdgwjL6w5SNN ziOY(h&CAD8J}bo}?*6PSZ-vc)g^TsekC5Xvt!hl#BwBL0H`$M6qN&db^!UsudGodd<;FwzR9yG#GW(N zH8-Gr_VnHz=IvP1rcRyG`On-zZ4-&O2CyxNYI#$#8a9rFNEr~Y_{@EEiI2NbqL*{h zgtd#>J!Zs|bx;04IZFy)=t?1(ahNbo+qvIJdA25mb4PazG7{!`t)!ex8zpKThGEp) ziJZIHFfF(*?o1>BBp^m3Lw6(0`lWKMyN0-l$9jU5DMF*$x>Y5?LEM|Sx0r)YJ$TBh zw3n^D-B!u1{oC~tg843r@b~;LVAdZ^Aqgll0%B-zJZL)CsexpY7>qJJWu*&Rb@Y%? zUpkDNTrg~bF1-(QIu)C@41~}E05jB*A}ktgZ>htTb55b0c(Q5>8}s(i`_uD1mFq^O zmZ*s8lU_QcmS^*!N%As}S>`?M>U&<9$;VLQETwDzbr)6aGeW_{aG!5mRDLpev%ypm zLZePO$sd13lPfHFZ4DgxJE)?o5}(4IWfcy|lLJ^Hz=p=ef&=5l%rKQz>M3Rz>Ksj@ zHXlJKV%Q8&JwvK&Atb$+FDiLk^JlI$DWamf;F9=;T!eDj4p}L!0fmzgll#PVaif?- zLxrKpeD>T4P&W*o_);l@xd?-v`*_2gE+@QU9oZ4~oMCZm+{}?=T#lVj<9EEfUKAV$ z!*l^atY3+$J&&*`0inrAY8OUrLABa>M=qq3fJv-n*6~ZU2{Q8wYI!{iDudm5JFOEF zsGB;U<8ssQW8?I5msVAt0)9#d9aTh|GOL*dbZ{8>gFqK@4nyc& zJ9k#7gbD;3(1*PM`CXj6eP%`(LEHm`2H-nP>e`FugeN_{&g!>F=3_s0>}s!9o!M;& z^tyv`KnyZr{v;geBlVDmC>A}O@GV{va4ct;2~ZdQjwcn76N8ye%3(R6Lxk_w+h(pF z_(3X2tp0MkDQb4G5+r|+Z@)A9C|S}X$keq^#etbzjg=5DIVHDMuwSg1i_wF)3z?W5 z?pY6H^#z@vV4CGfpcS^9%AcRz!NsM;wB2jbe$+e0v|f0zt`G-mwPMegI{H4naC0(W zP-!+G_ie_&mxAlVilW9ti+Kj2^`0U=*1vbxhcTb6$U7ah*8edUT4FY&uC5|!>U`4n zY-K#J%-U=Vv*V)R&ahOu(n5c@<&PvH$DRPtM*#UfZQ@Ez*)x~=woKt$_qE$ev<&hQ zLCsgowfVg1vA_6y-_~E=HeHGn{~Y^t%awzJ9CLqch3QYSW_4}Y#A0ZY=VD1CewN5Z z+qNj1#??p5)kbZTpy&4Hf%D|XjCCH>mSx#A*HN^=_Y~u7v&v&h`s4)PHFq_760N1$ zo8*W-40lYcUOAHTQ)ViqN+-uh?JI7l2-`s}C+1qbXq?}~d-@P_%iGywb#rY*)mYPF zT~`u45N5Dqa87vA^xl3_`PFcKr*-V`L0mSoVB*QX^${r^0v^`5ah4)iTshtg5J@lYA|P#>*6guy0|ha@mr-JA$60saRPB4}RSgbugIi6t5led@Q%W$UwENb?R_9UgQiupFGci4ZnKjDdTw` zJfJPNHJ0`#t^bO5hr^D1TsjWfS{qs&V(Vq^RWqq@*c7?iyJX@lsW>4Oi;*Gb8>n>RET|PyyVA3oQOzC5~TRUJ<>^s1% z7Vq+{yZPjbf&=wsU8)58FVoAV%y!dFB$L|(mz>v_CE~P9x-g23MDN!WgB!dT#|EH3`pkViBABx^4+tHXtl*w0iHG9EA$J~KE*zhU9`xo5w$%2^K`kQWZ7EBSPa>E z){HV=-epTjiqSLU+~mANc89nWmZ=8A%eY9?F(!Q1p&rmt* z-+P#j@K$)6mHOP}_NG3H4;BQbI&9Au{D^NxvlTrV7vRVe1og-=Kv z7y?&PN7&T>0?8Q1ZZogzF49F#El&%tx2o}{bCZzZp(;n9|-W*n$N zu=@>d*~_rUU$(Ke=h%(%_)!97?#zjG{fY=&)a07e<@`@$42{qRq5HRQ>R=9S^P>l5 z91Af%`me}j=?hGaop+2VB_;;aM;qe=;z8?0G3^z<3aB1lJL)TP7#~16T8j8F4>ge+ z_k*IPAWNlTAWC%%g4Yw;I6T|V%AU>i-?ppzMX5bYthAZ!q}J%zC3QGo69>{pOpgfH zLhzh^XV!=LAb*KLSZ;7dtT(hz)eo(Nnt)_W9oKQ>5TDkW1&?fuWE@4do^3pxT(MX( z5911O2#j}ZO|+?9t-8Gjp49%HOKVrxFJfb+m&?RgPU>fD<M#d%| zT8$HU!g1>==*jDfu*5>ES!-6q)>;IP08XuYkh?L=r23Mc0a%GewZ&U4?1$rr-@%0l zs7PZLwG_0prOr}LNncGljsI4Vv`I<^?98TklaB?a(~~{rwRg{OR>qo_>d=tpYrcVj;>8RsEoG7#ZHro! zCM{E;@$~j>yu-U-O!RPQlgD8KtLakf{(1k2<@4pt1GmfjrjRNO)w1*v8tO;}Qv+E; zN}Q)XEt<)NMJxGcF9t-$ZpG$&>*@54hBGR!3()sXegkc}5eoa80XPx|DZ|Mye)I%1u>hnjE9JUS6>b zAt(k2%(C;X{BQ{|8^}n)%uaQhfN=sv?nb-*8_e4gk3x;t=6I=wgdN8F5KcqX<`#1% zcl~ZFLX*~3BbZV6M^|>iX&VJZWz-_kp507=fw zD^s(w80Wz>VJpA~HQ#o1%4nc0DK8s!D-^E|~-o+X<>eYYmxsrz> zz5yYs19Uu96Ri@7?YnYQnp*k!dgE&k1H0i@if_2Y+nVqX= z=aJ1iDLKjTl(rS&F{HS}ju736lJE}$rNc}5>-v%*xKaKVlmoB<1phrO0N)on2o~nM z1me7eg3PDl@|%d4SLFaCh>*MQb$&^1rwolb6DB4WFhLME;vZaLyyMTC~MARjh!qn*vvbJ7=!ha65wr$P+ zgis4a88ClLsBNmP9ysZwoMGkkQOq9$KY0apiBY;n*0y!Hh%JLjS)j6Y`5*_)r)w(9 zjm^@!9-E!KHeO8!+>QR^+GQ(Wea9lJ$a!5R`;)@f#$3%FcC?E{hyofHU!S%&cJ|?q zZv^@!!jf@pVS-Xhr=@D))chqjU7w(Xl1Ar+*_s*F8gD8TGs#xt@}i!^nrf~aIvs{l z{*~dcf+*FKA^=W)O(w?#x%ac)YD4#MgE08d`qBi&hZVHP|&Y&C|foFv7goqD#v%`%{0&~K}~<;mMgDv6YjE>QrfVp1!;5O+xi_1*LdLf;} z7f!ve30e3?f-IJJkbwUZL*iB*lApNb(BqHl(dhB$9_gwI=TC00skUeFKK$GY26M$L z1qy>Wm&P{%?5A1NK`o6|@;$e|nW&Ko}zdy>ARhVHuH>%{FaRkFfi zy=W^l@_r-XQWrzzF-X-}^4_^Ge?PqeC1T@EBgV#R5Hf{MY>@kd#&yGz+4Vf(tof$b zu~M!%%mN`mykfQ3S;=kC>_NE0BE4v2k!UlQ32UNKgA>XMYJhE(-yp{#(u8dsfh~_FNK;lx!Fk2X9VptxTrrMxDw}oePvrnJ20w3X&M~S~^WY^Qq+E7$X)TLxYHHe`m z^e%*#E;p&gl4)MOdqf4yB~0$SZjENLMy5h02Z@WFt$}Q@v&tK3E9om%pqhPL+sGFA zc#=ka;N{CFVNXi7Sg`wAN{*SG#%Dr(|RYrS8NSQwEQ zpM2V4_r86ui5hW@kZGVb8Fn?p|M6*Rogj;y;3}N!UN3)W?qJ^Wuo>aDc4wIoDehyn zsXC;}1JM4-f#dROa^$q1u`P|MW4ATDGKn%Hgry;IwivaaTws-+5;qe_7OY=Y9-Ll&=bi`&;OlreVC?^L`fI8%Rj z)M3~ucb_l7F>#4TNe`w6o-l6pJLffq5x*p5%8dq-6|Sj5^=MjqL~Ov9ixMzrtLLGI z@vAMLuL+)v=dr9}mK*#YB$1Kh<81(keOa)1Rn=kT+NC;$Wj9NXv5;1L$lTp&ArM-? zcuKk-s^M11+3=9;*+7B!K4&8sPBvPP``|zERQWN~?+X$AL6CSon&zx)=u?wqCk2f^ z8J2xX8+Ut5DlJMfoX(sK2E*GIQig<`>m#Z*aVp9(I*8o-K0g|OBd!R2d@$boH3x#y zbIk2>SsP8=O|4BEn)x(U>c?*MPq4y&wtC^ZsCk{}tTXeZ21P5w))a}EBBt5K%@eWw zs^BkM4%H}7Zc#c3xffJQg`gzI)n-Iu5qJ3Mpnnl~A%r6&v%NK(W}qRSMY$HD6P*=t z8SW&q8QE!oK{VjMYF52LPAm*`JI(Ecl#EBL;LMF-60TDwO(o-5lz+LhKm*M-qt zN0dj*lM!P?Vu(U`j@)NB=v#0SFjFv@R_)qJX}xKjn{x+ZFM(7Gl)aoa{vQ({fqYNA zdlWaRKSi@^Va853Ld5$CU_c?Ah^o63MJhtzyBS*E`Pd7IF7bKxF#M{(enRHQ_eMwN z%lN}qZ6S+qR4IlSUZDm z0^_ssg6THltd^olro^P7&I7&S$rTNA(BJeZ$@QrxU->!{CD0+rrMkiyx;zxCV=d4mc#3+@iC4u0NehdR4X8 z8#$GYG0k^fHc-uJL~cIyklHHhe#W*Kh@iOl9w04Bmug^)MMdd2B^@OeY6v5P+T%1A z>))RirpSDq6O)?>opj|Qt}*+ybHD;f{<4S>FWYxxWIMh_M8>B;r|&KZu|q*p7!fT+ z1tcg&*TX1u(@STyX6{P9+Ge?>#J3oC_NMU(xY}d;q%{Y@W%b-@53f}XECPPHSD>)X z3@R-_nWiAGcVVFPujW9?$}v^P(^CRdYf;F5u`X{h;5%t`+IV~7*sW>Dk+E2s@B-av z!M%l&?^4b3+%1&H>qr6%UQDm)l(}6H=oT>`>=zK^`x7QlO`SXtR7Zd5E9BQlEbvF- zCuCLJ8URXV^^jEyy0vRR%toAN;`d&+K9`<9sBevLkFT@biz2k!M*h5I4F39fd=llX zBOVy58F=^9=CR7?rHv#pRD1Y84-A;va>*IrMBVDXZ4)CNS>O%0;y-fowTY^Nsf8oJ z-+Rg_yv{rMTMf)rvf3Y3K&4J&?%POZHfd{*Sh)7km=&pn(&9F{(3M%-M)%woai+UF)|SzqA2>In+>n9DG+Tk z+r|W?dzoKG!IS{=%@*6!1&1J{|4?$}Ebg1zahxX`hd=6ZD;6?EQ1LymWmErE4xh9q zy&Qt8kGq41ii?s3s4*b*OneRPje@=ZwBypV_N-uw=mXc;pVa+>dZ0Uqt2@vD-%n&4 zls7tJf>ASpIgT|n*|)qpI3qV0z#lxb_O=H255k-ku?ib*7_@I=4t>0UpIK@Or1$Zb z4Wg>A<^C|T|8M}o$=X+~Xe75yE!)cZUHX;HB&wArsE+%t2sQ_x?EE%)aNqZ}!v=-*cC$YkUugj%0l2LG!0`*^L74h}>|GTBaEYhity>PvZi7UJ zN~AWJT8Z>gdesO(xSW=$JK0yt^;|d!#iz{@-W)+Ho6=;U220^wl)DU~rL?DN8#`vE z%*7G*gKtw8L@DV4a*=KfJ(N=6kU2wHpkST$yuJ9BZ6m+`UHB}NOB(C4@6Jz8o{7#} zv%=-4QHb&W#|ifsKSug8FV6ss%%_i~vVQw(m@+P2RiyLd zw?tpA4b82R-U{}_zjmM~Q}c>utqg%NOkt{pk`ik^;K=&lcLZ)a>Y(WeZ`D9)hQXR} zpWLSDbWU1n6%|c6?%`trr?k_J*EUIG(;{ZabDDN{>lH*WfG_KN$rCgguJ1I~zDUOZ zeke(T>yjN)Znr%?DU}0z%y-xJ&UrTYdEa%p6qVB!rxDc^b*S}gE<7S(Jy?JcueYLeyf@%Y$RMq_-rOGEu`2nz}Ao4oh#LCs7JMq z4#*jtS{Ck(`UvoB0~T(&iuXs^*2n2dT+&TPB+lSv1G zj)ErxCHv6w#e`pp14P1>p6aBSQ7iKHewnKUV&rH3A<2F;M^7{u*A=;_sd6v}DS!Y7 z#0)ev;^i?VVw69qVX#-Jt%3xT-=IMFA)MrufJRPhUtxiLrSHqSdry!Y5UyKe%%1#^LV0j zT4=RI*6)}9_;{hRbAB%Yl1+!1Kb67G(Png*mi}76Ec|WFpv@3H12u##s|Ozb4dqY> zz=#)O#Eg^e)(Oun%P{1|W{hVK8+PBH<}-=Zar_18y6`eP1}+>Nvia}28Ix17z?Q({_5tI)2d@#9L+1rfX! zvJtARe`wpkmv9%(_Qy*HKQJnk9UTEDsVB4>c?VcSy0{=^v}o99UO$S+!cSqqLA~H% zz~A^49|BDZ?7)9)RD2Pe4CbL0aBD@ESw|7bKs-fPtp9XdubQlJoTHsHdvJ7H;I9Me z0;vMeGR7C0Uw|kIRRL@NV!ddh=T)CwMLVFpk)Bc?=_?1zUfBxO5K?E{iu>@c{urSB zDa#p$f%+R3k8UQir;doDg{kTZ2gjJfV1k&aG%EsA$j3PSV5SX@&jqK}juIVZ^v z#<2C`DMeirUS@HD5o_<+@&(_Vqdy5J`xC&oqf%+ZSE#gG-ExgCzkydLhDF|!I9G?d zM)JBKuOamQ_$ET~piMLCQQK94Gbf_sw-3)zncU*v0jZ@D%K`!DoB!~sfG0*zkzd*` zQiipUV8TQr`1HO#oiP4k_uLc9d<)m8_6vYCYsJ<0;q2u`t)Q#NPlg<3HT*U*ItQzrpYSK8X)zae=3e}UltKO69j-`e{( z3C_U!e{aAuGg31#eQW0520T3@H47~ZEyK3~PtQvI7k&OMpMSIGbhK;?tl!4*UzPq3 z1D^FS(OCXJ8OQ$*^zvW1{%QJOJn~CfdKQ{Euz^e`?3m{)<`vKbH2lX#dYyHbw?&Rz?&4I|MiSRd23KGug6i|CtwLK{*f7{Pz10rt{M*8UkRZkE!BypXLF*!ywR?dvd^(}= zB#+X7@)L4K?;c6xLel4V64~c9sHa7hr4w~&c3GN3*Ys~3jHugm3{(DsrqzxmoNDwM zCo}$boFXUPOpL8KAQCyK)rdg!*H8c;jWr7Rd9auQZd*BqG6B5~S5Rv0RQgiX+=;NqT zii|u=NJZ!&RLpk{w}MdRhYl2{*SFw& z*)wH4J29f{PSc+BVqLv#1MaTXp`x%3-B}dw-oT_4YE1t7X#X#F=AWVduhL=eP17);#@pWRLG4BL8pJJRLn7<9`Z5aN!Bz ziLBIl$<}bcDdsY}A~u^b+36HJxfmTii3=W$g9siS9f)5R;DrDWgf7U7jDQl&r^tI8 zFaRveOV|ue9-7P0CkkqZ0no!Im`!ozbLvQt%W&1%^3>7N^;SrskTx?W0lO**St3`Apx(yldixh zgT;ekW9tD&U`5C;o^|t3F(->pFR&i=W8+!OA#H4J-T_{`N|5Z9S3<#SuO(g27GkMK z#T*K__>cYF4kys0fCkA_a$Fa_J0t%l6ukU{Wa_G{&$G?YmWU`o(#zn;gF|7<#T|@a z+}e-5_}39B&;Da-l_-D{j67$y#I;EOG%g* zx-WQ{??gPFgS&0pJV}5734jua7y|>tn_>!&`CB+=#*{ME_b>;<6v}<27>FWvzE_SY zly9V%r+-XXK=bBwMv(FA$aUFQgtySlcd?V@b+bE$6;S85CO`bC1usrVUpDfNKFY95 zZ&f*ty+}=SP6YEWJZ9PkOVNcM&z1lp{X;_)&2+v zp*5nzMAd?2=!rywGJFTov#yK^?erfibULjRg*PnnMP@Q0bNyHD;5o#he<)U>2Z^@r z!Li_+vH)B#2Hw>NW~cnFgoDM#8AGIy%&%(f*!HJGS7+SoalFD&mP7yax?$DtT025_ z_*d#;!1fDxFED@ggK^FPsejg17hfssAb)k(@)ak%+>bmnc!56t>==#e5BP%vX<0B|y=in10dP3QqNV`rufv z9+AsWIY(s19NZ25yaijo(lL+|x?Me7V%F4OaTw>qWup$Y!XI_TH*dc4OHXq(2-ly+T&w9_np~XeNyhV|=nPY|ReyGT&ocB{ zEH7vg8pLTT^gmq!Dm^la%Rq1bO@_NUuIQ>&LiO@gs#cKCFN)PFWvY=vv~%?#P8wvZ zx-q5<`grQ2#K#0lAj-ka&ntjYAqQJO3h)oq!JP09ij2N8(1p*Q&Q@c}rnXu>H6FIy zNhc*_HNZ{-esA?bi;E*$x0G=h!`k)#$XJt!C0)Zf%&YfRVbyZNS^xm^;Xc13Q6zKU?@!z@eA^V_pLJKu}- z6Lz(Xeqbw&4va#T!Y?2zMXhF2%RQMIVzwE#7OHUYy_G($`QUw>?=+t9IHfyBIb@xE za$^74e%|46KfZ4r*1d0>RWPD$MdA;HCG{JyB7zzsN{?Wmq;aVN2u`%?qjf9MZ zR89ZTfN;>Cz*GT0FBtcXHsuO=@_l+-p4+&f+=^{a(A8Af#fV~`V($1k?0IW z%9`G!KZQ6tGD+K=Q?^Hhe=UpDO)In2Jbxzm5RuUtP064Wmd{ai-eS|L4!(W zp@k9}q9q|kQYp$Vk<@d)Ki}v1eLtPM>$#r49)ES+o%1^9+~?loyvHS`3j5v;8cdz@ zyTeGKeUK^KbT-~sFi=yf5 zn*r-?b=s^dSeR1q=4QncpSfnq&Yym!zwG>Culqz+Mx;q*Z&im-fx>K`;I~Jksy`g<(#;@X6_Omwyv}~;mWp?#kkZ&;YIIY^F=;kRIIIDmEt+tsPj+k!Imavx1 zP3OB7St31IR-~iuR3g7j(6f!5THeo3iMleymsv3$-jh0T$vI0v!^eL6jGHwH8vCbZ-9VtwCq3TuX1(Zgdq?zM5*Acx%RnnBEN=U9`0o z92Q->R<~yUUVp>Fi*IjsS&7e+Q7lrKw`_~`V7aC4oxt@$Pd_eiaCa@M+PLw#xfQES za;4#CeM?t|(KA1jyOnC6>42>x3^cg*Z1wR-t1@XE|OmLQCb52k1wrn4c$M_lAp!Dg+GzsSHOHy0G~B~S>KUA zVk$Ez3Y!AkjDn*U^!eGzE2{Kmh8TYDfBGj^qGYYYrkLE>#$}I##%g5kMz!tA1y%|e z-m2Q_xNuD5X2wTh)$o~untY;sKI3-H!*4VH{Ly#Y_*14UOwKQH>wN|OZ4A)`8_T~a zzn!r7*eu*V^1J{2JA1xe&AY`agY6b?_>)^V(*N|%(m&SvZrihB)AuS4|KYTiHM`aI zH&7$YD?^*#m^L}a{Yl>aXV>p#jtlmx=H)BM$?eQ+kda{Rq{gZhsU2I>p>I4j!Ox^K zMQyuDr-t#HV>R&!H?*Ub)%?vQ_a@f-NVqXSdO^adxn!!kzp!|rVN$x$qvQX`bac7|MF9%6a^+65eUuz}z9;@+87+ojnsWup`rk_&d zZ5*l=EurpjBB{K(Gt9VLBRVl*v_h>txn@a1@CHd=N7rdDP~-*9qpRH znIEm15Nsw{Xwq4vCT`q$M(vjRbMEMr}@=}Ik#Ld_>(b?V9!YF6sU=SI63+p8Z}i(YB0wz_I= zbnv*(xeM>VcI5c%9GEq4NwC4jH7`eRbX~r1hC;1qeD38(m#dQfrEDCeM!lxAFZ`YKAlWAQe)2lA1$R><%WqD#SWsmYGtfBK zN2h9v|Cr5g|C=^k|5rASqOavD#ZC6+A^XoIcE)3vPz-t=sSuuqS+Url`WQ(kyVn>Ff&Q%V#(14*Q6$^ z^((xY*+yFV=e|wNPEKlF5+=M)=|ai=h5(Z~&C<1d4mVhtNLZ~m@TO+3N>Vyga;#yJ z$*|Vr^NiF6MU!H!$LAP{4WcIbNf)edWi~KOthLO}GSVB=OlE4e8F^32mNt2>#kAgX zu5oqFz6OrT_oN=pxNJsbgO^EZlHpo;fs!uY|OxKiK@?C4$-K71RQ+DX zgi|HA@>9f8fhUuGPaak6kcfE7mpSPPpFV%+S6ih}`GFZ7D=M`rg(80N_w$=i3YQ3$ z84&N-R=FW!X2kmlHosm3o3BvdDF4?mqj%#|JD8QZ5!DeZA`V1sUnbKbRmoo&Ua4Q{ zv`pj7iY3}D{4D}4V!?7nB1P644)94uZmrAV%5+Q7mN zxylz2aVK)_TJW>@GA8E<>GB6F7QvgIn-*;n+r;cxyCY;^ex)kk>7^N6cUm&jyRNsy zUm5inOBua-S6@1Fq4Lh+r%KBA`({qxNO@e;GO+J%fv#tVbV%o-#cy8j3M$lQo#kuU z-ZUj@mTBMvqc?+Fu0P%$@}@;^yV098)$RRdVSV>o+XTC26-8YcZ5EpPo;f>Nib}ob zICOhxbJV$@B!NP|gEq%}Ltd?p@;M}66Q^j?wr}t}b9P#7e$eOIFM)&Q+g{F}m1g~Q zYTl(jx9dLB>T|SqE}Yl8U1o>!^Qq?=Yf7G^y;@A4ccHXY>OskqQ_ou$3*7s4{ZGf< z9sIxhLl1vEJI7<$f`~M#t4F=)nKaw(JwkKuFpsxAD7tjqg-@hb`BP08cW z6Vw&9pW-E?D{9YgFK#dBC7?UmUf6z;{p4W2qUl8{CqthK)laGCuNSPJRL@s3>4Lz8 zNf-F$3C!c4H>pp+l&^&EzQ757vk1dw0-F@iC|L^0ipUDcid~u#JE@WHGQTQcHNQ=S z$ujO4QA=S>eo+C@DWZa+lVReSf{n=kbD1w zqCA?F)`rJE9v#)S?yq#8x(rzzt6Sw@8{_n=_UfLNh3EBrx@}|ntRzQ@?el-%)<~4r z?(e>;b`q`ix&Hh=6nwxODm154UHK18KzLRZrY0V zMf9uBfA2pXoa0G z5_jaz7n)s_G5wxI*$&EX&APE#^~%p{EPpw*X>7VmNq=?tTdjcH)`aWvcELBeHF1Nq z;AP$~T85wYN#2%vlH@xY^y-r55n*<0Uf4PHiHe!Y3L-O${i#nvY(HNTVf95He&qbK zXXEnebL&6!Pt#aYJ!Stk=0k;5J5>+9eRJ`}=KOv3>#_$1bqniRq1k6HsNLh}-LhjS zYn+fUPN4_v+c(nnAVgZ&`91B_!S~|oZ?C&ISZ^C;cBNCxlropRnKW;YbxZNk=e(rX zPMhMdpEa9(tWaKk=fibsYysN{1(&$5-JwBH76M1ry?Y+O!`~$=HMs$Bn5q@dGkuX><`|+EjN8zAa(1irH%gHurGmOv(Fz`ab~5p zqn>eG-fZEcx~A`v(`22ag5wr%7?i3TdUif=2GvYjYpZnA?CTr#%zMQ>_+Qw+d;O^W zbI|WA#fj6txLrQ2GsORdZaVAAPwj{A&ZMpQ5T3U#P?$2lvuyn$YiG-@p{XaNOpi}q z+7j^ny;9pNrOm^$>;f;O4R}@=<((XuakOkg@96v1roubDH(dm>#>KM6<+AD$->!Q< zAhJ`viZ<_L;Mml(Z*GO3NKv2upyHwx`ASMd0|Wm4Tg;zEv& zZPo98;Pn%rJ`JWF zk)f8la{28oUkWG>qlLCg-HsHYrB@Z(rRU$c=$YBKLu|~Wq4?gU$TbH-?+fTHxVE#? z`}^s-HD#H5e^ri{EqRrk{Zw0ae$4tRi9$CIx_Qj9ffP~x28l4=ZWuMlXuDo^I%&1FM zQ%3n|`<0V2No)Ih%_0Mpw^)V7s}CA2QaG8YwxH{AtJN3%Y^qC;f$(S_|2dyz{UYA7+ zeT`6>$!9yV;_RiC0=Hk3p<&y(Y3KKh{LI~--077sJe=}Fb|N^EAz1L}XHmg5KK8WWak2ipDvt|X!DJyr&Ku|kIga3xc6p?18c$JC9xMD6e`JR zQ0VC^Ij4*KGK-GsJzP{#dThh3eJviemachO?^gU|?ho%hRI>Tb$oE=X&yZh-M!qcc z-_tX3vrFsQo^#{b`#1Y~JZa_bXg?YqeR>~vW~A<|@|l@wC7$60VO`he?d<7&yuwp7 z=FQ0DB`F__qz}DUSvtj}B!sRQBlS@8Kyp^>T0b9_N5BkIL5HS=w2XwcjZY1vqisj` z)l>6CuUypVx<75V-9Z;$*FOybqE5SqCyCnSPT{A2oj7Ks_`zkS(GRKd62*GD<7nMP z0NebcfNIzdzPfkII<8psXI`ijesW&qdaKRh_qt+>nV#z^nto_Cd^^43=WU5&A#b^5 zQLT=JYyF{kfa{>LY5hw7`9X0%_B2QIhupFgikb8L)s70waD|D;bBQxDMaP3`G@MW6 z|IE$zPx+o1ANsr}qtyHNK2z=VbyG6;baMIUU4C6xSP`$o@%`HR;D}z4*!mvX1uCjn z&vb@4IhiP$wqNivo8dS*yR3}1d^p5sC|eN}4AgPtv0p$mdw+Hzm1smJcQE%j1lEew8UCZ*Lyy|4}DSNxx7n?}vr5X{N*X z(9#^A4>z*b#xt|~xF_}IsXkL}P|6(qHt^AX)s+<+Xqj&u9O=|Izw+)sSTWn-_L&Cm z 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%0DWL!65A`fUyw`u^3!*M=W4{^3GXI2I3DElZ|MI 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 $(PATCH) + diff -druN $(CONTRACTS_DIR) $(MUNGED_DIR) | sed 's+../contracts/++g' | sed 's+munged/++g' > $(PATCH) + +refresh: munged record clean: git clean -fdX diff --git a/certora/applyHarness.patch b/certora/applyHarness.patch index a0d61ef51..166366b8b 100644 --- a/certora/applyHarness.patch +++ b/certora/applyHarness.patch @@ -1,6 +1,6 @@ -diff -ruN access/AccessControl.sol access/AccessControl.sol ---- access/AccessControl.sol 2022-09-27 10:26:58.548890299 +0200 -+++ access/AccessControl.sol 2022-09-27 17:51:32.011301116 +0200 +diff -druN access/AccessControl.sol access/AccessControl.sol +--- access/AccessControl.sol 2022-10-31 11:08:30.540461238 +0100 ++++ access/AccessControl.sol 2022-11-04 16:35:52.557358427 +0100 @@ -93,7 +93,7 @@ * * _Available since v4.6._ @@ -9,68 +9,82 @@ diff -ruN access/AccessControl.sol access/AccessControl.sol + function _checkRole(bytes32 role) public view virtual { // HARNESS: internal -> public _checkRole(role, _msgSender()); } - -diff -ruN governance/extensions/GovernorCountingSimple.sol governance/extensions/GovernorCountingSimple.sol ---- governance/extensions/GovernorCountingSimple.sol 2022-09-27 10:26:58.548890299 +0200 -+++ governance/extensions/GovernorCountingSimple.sol 2022-09-27 17:51:32.011301116 +0200 + +diff -druN governance/extensions/GovernorCountingSimple.sol governance/extensions/GovernorCountingSimple.sol +--- governance/extensions/GovernorCountingSimple.sol 2022-10-31 11:08:30.540461238 +0100 ++++ governance/extensions/GovernorCountingSimple.sol 2022-11-04 16:35:52.557358427 +0100 @@ -27,7 +27,7 @@ mapping(address => bool) hasVoted; } - + - mapping(uint256 => ProposalVote) private _proposalVotes; + mapping(uint256 => ProposalVote) internal _proposalVotes; // HARNESS: private -> internal - + /** * @dev See {IGovernor-COUNTING_MODE}. -diff -ruN governance/extensions/GovernorPreventLateQuorum.sol governance/extensions/GovernorPreventLateQuorum.sol +diff -druN governance/extensions/GovernorPreventLateQuorum.sol governance/extensions/GovernorPreventLateQuorum.sol --- governance/extensions/GovernorPreventLateQuorum.sol 2022-08-31 13:44:36.377724869 +0200 -+++ governance/extensions/GovernorPreventLateQuorum.sol 2022-09-27 17:51:32.011301116 +0200 ++++ governance/extensions/GovernorPreventLateQuorum.sol 2022-11-04 16:35:52.557358427 +0100 @@ -21,8 +21,8 @@ using SafeCast for uint256; using Timers for Timers.BlockNumber; - + - uint64 private _voteExtension; - mapping(uint256 => Timers.BlockNumber) private _extendedDeadlines; + uint64 internal _voteExtension; // HARNESS: private -> internal + mapping(uint256 => Timers.BlockNumber) internal _extendedDeadlines; // HARNESS: private -> internal - + /// @dev Emitted when a proposal deadline is pushed back due to reaching quorum late in its voting period. event ProposalExtended(uint256 indexed proposalId, uint64 extendedDeadline); -diff -ruN governance/Governor.sol governance/Governor.sol ---- governance/Governor.sol 2022-09-29 10:07:27.126075551 +0200 -+++ governance/Governor.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN governance/extensions/GovernorVotesQuorumFraction.sol governance/extensions/GovernorVotesQuorumFraction.sol +--- governance/extensions/GovernorVotesQuorumFraction.sol 2022-10-31 11:08:30.540461238 +0100 ++++ governance/extensions/GovernorVotesQuorumFraction.sol 2022-11-04 16:35:52.557358427 +0100 +@@ -16,8 +16,8 @@ + abstract contract GovernorVotesQuorumFraction is GovernorVotes { + using Checkpoints for Checkpoints.History; + +- uint256 private _quorumNumerator; // DEPRECATED +- Checkpoints.History private _quorumNumeratorHistory; ++ uint256 internal _quorumNumerator; // DEPRECATED // MUNGED private => internal ++ Checkpoints.History internal _quorumNumeratorHistory; // MUNGED private => internal + + event QuorumNumeratorUpdated(uint256 oldQuorumNumerator, uint256 newQuorumNumerator); + +diff -druN governance/Governor.sol governance/Governor.sol +--- governance/Governor.sol 2022-11-04 16:13:34.398935222 +0100 ++++ governance/Governor.sol 2022-11-04 16:35:52.560691845 +0100 @@ -44,7 +44,7 @@ - + string private _name; - + - mapping(uint256 => ProposalCore) private _proposals; + mapping(uint256 => ProposalCore) internal _proposals; // HARNESS: private -> internal - + // This queue keeps track of the governor operating on itself. Calls to functions protected by the // {onlyGovernance} modifier needs to be whitelisted in this queue. Whitelisting is set in {_beforeExecute}, -diff -ruN governance/TimelockController.sol governance/TimelockController.sol ---- governance/TimelockController.sol 2022-09-29 10:07:27.126075551 +0200 -+++ governance/TimelockController.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN governance/TimelockController.sol governance/TimelockController.sol +--- governance/TimelockController.sol 2022-11-03 12:06:09.356515929 +0100 ++++ governance/TimelockController.sol 2022-11-04 16:35:52.560691845 +0100 @@ -28,10 +28,10 @@ bytes32 public constant PROPOSER_ROLE = keccak256("PROPOSER_ROLE"); bytes32 public constant EXECUTOR_ROLE = keccak256("EXECUTOR_ROLE"); bytes32 public constant CANCELLER_ROLE = keccak256("CANCELLER_ROLE"); - uint256 internal constant _DONE_TIMESTAMP = uint256(1); + uint256 public constant _DONE_TIMESTAMP = uint256(1); // HARNESS: internal -> public - + mapping(bytes32 => uint256) private _timestamps; - uint256 private _minDelay; + uint256 public _minDelay; // HARNESS: private -> public - + /** * @dev Emitted when a call is scheduled as part of operation `id`. -diff -ruN governance/utils/Votes.sol governance/utils/Votes.sol ---- governance/utils/Votes.sol 2022-09-27 10:26:58.548890299 +0200 -+++ governance/utils/Votes.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN governance/utils/Votes.sol governance/utils/Votes.sol +--- governance/utils/Votes.sol 2022-11-03 12:06:09.356515929 +0100 ++++ governance/utils/Votes.sol 2022-11-04 16:35:52.560691845 +0100 @@ -35,7 +35,25 @@ bytes32 private constant _DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); - + - mapping(address => address) private _delegation; + // HARNESS : Hooks cannot access any information from Checkpoints yet, so I am also updating votes and fromBlock in this struct + struct Ckpt { @@ -93,7 +107,7 @@ diff -ruN governance/utils/Votes.sol governance/utils/Votes.sol + mapping(address => address) public _delegation; // HARNESS: private -> public mapping(address => Checkpoints.History) private _delegateCheckpoints; Checkpoints.History private _totalCheckpoints; - + @@ -124,7 +142,7 @@ * * Emits events {DelegateChanged} and {DelegateVotesChanged}. @@ -102,7 +116,7 @@ diff -ruN governance/utils/Votes.sol governance/utils/Votes.sol + function _delegate(address account, address delegatee) public virtual { // HARNESS: internal -> public address oldDelegate = delegates(account); _delegation[account] = delegatee; - + @@ -142,10 +160,10 @@ uint256 amount ) internal virtual { @@ -139,21 +153,21 @@ diff -ruN governance/utils/Votes.sol governance/utils/Votes.sol - function _getVotingUnits(address) internal view virtual returns (uint256); + function _getVotingUnits(address) public virtual returns (uint256); // HARNESS: internal -> public } -diff -ruN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol ---- mocks/SafeERC20Helper.sol 2022-09-26 19:10:21.166619395 +0200 -+++ mocks/SafeERC20Helper.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol +--- mocks/SafeERC20Helper.sol 2022-11-02 19:02:32.463724228 +0100 ++++ mocks/SafeERC20Helper.sol 2022-11-04 16:35:52.560691845 +0100 @@ -4,7 +4,6 @@ - + import "../utils/Context.sol"; import "../token/ERC20/IERC20.sol"; -import "../token/ERC20/extensions/draft-ERC20Permit.sol"; import "../token/ERC20/utils/SafeERC20.sol"; - + contract ERC20ReturnFalseMock is Context { @@ -106,42 +105,43 @@ } } - + -contract ERC20PermitNoRevertMock is - ERC20("ERC20PermitNoRevertMock", "ERC20PermitNoRevertMock"), - ERC20Permit("ERC20PermitNoRevertMock") @@ -161,7 +175,15 @@ diff -ruN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol - function getChainId() external view returns (uint256) { - return block.chainid; - } -- ++// Harness remove ? ++// contract ERC20PermitNoRevertMock is ++// ERC20("ERC20PermitNoRevertMock", "ERC20PermitNoRevertMock"), ++// ERC20Permit("ERC20PermitNoRevertMock") ++// { ++// function getChainId() external view returns (uint256) { ++// return block.chainid; ++// } + - function permitThatMayRevert( - address owner, - address spender, @@ -173,7 +195,18 @@ diff -ruN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol - ) public { - super.permit(owner, spender, value, deadline, v, r, s); - } -- ++// function permitThatMayRevert( ++// address owner, ++// address spender, ++// uint256 value, ++// uint256 deadline, ++// uint8 v, ++// bytes32 r, ++// bytes32 s ++// ) public { ++// super.permit(owner, spender, value, deadline, v, r, s); ++// } + - function permit( - address owner, - address spender, @@ -190,27 +223,6 @@ diff -ruN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol - } - } -} -+// Harness remove ? -+// contract ERC20PermitNoRevertMock is -+// ERC20("ERC20PermitNoRevertMock", "ERC20PermitNoRevertMock"), -+// ERC20Permit("ERC20PermitNoRevertMock") -+// { -+// function getChainId() external view returns (uint256) { -+// return block.chainid; -+// } -+ -+// function permitThatMayRevert( -+// address owner, -+// address spender, -+// uint256 value, -+// uint256 deadline, -+// uint8 v, -+// bytes32 r, -+// bytes32 s -+// ) public { -+// super.permit(owner, spender, value, deadline, v, r, s); -+// } -+ +// function permit( +// address owner, +// address spender, @@ -227,37 +239,37 @@ diff -ruN mocks/SafeERC20Helper.sol mocks/SafeERC20Helper.sol +// } +// } +// } - + contract SafeERC20Wrapper is Context { using SafeERC20 for IERC20; -diff -ruN proxy/utils/Initializable.sol proxy/utils/Initializable.sol ---- proxy/utils/Initializable.sol 2022-09-29 10:07:27.126075551 +0200 -+++ proxy/utils/Initializable.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN proxy/utils/Initializable.sol proxy/utils/Initializable.sol +--- proxy/utils/Initializable.sol 2022-11-03 12:06:09.356515929 +0100 ++++ proxy/utils/Initializable.sol 2022-11-04 16:35:52.560691845 +0100 @@ -59,12 +59,12 @@ * @dev Indicates that the contract has been initialized. * @custom:oz-retyped-from bool */ - uint8 private _initialized; + uint8 internal _initialized; // HARNESS: private -> internal - + /** * @dev Indicates that the contract is in the process of being initialized. */ - bool private _initializing; + bool internal _initializing; // HARNESS: private -> internal - + /** * @dev Triggered when the contract has been initialized or reinitialized. -diff -ruN token/ERC1155/ERC1155.sol token/ERC1155/ERC1155.sol ---- token/ERC1155/ERC1155.sol 2022-09-27 10:26:58.548890299 +0200 -+++ token/ERC1155/ERC1155.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN token/ERC1155/ERC1155.sol token/ERC1155/ERC1155.sol +--- token/ERC1155/ERC1155.sol 2022-10-31 11:08:30.547127922 +0100 ++++ token/ERC1155/ERC1155.sol 2022-11-04 16:35:52.560691845 +0100 @@ -21,7 +21,7 @@ using Address for address; - + // Mapping from token ID to account balances - mapping(uint256 => mapping(address => uint256)) private _balances; + mapping(uint256 => mapping(address => uint256)) internal _balances; // HARNESS: private -> internal - + // Mapping from account to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; @@ -471,7 +471,7 @@ @@ -278,9 +290,9 @@ diff -ruN token/ERC1155/ERC1155.sol token/ERC1155/ERC1155.sol if (to.isContract()) { try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( bytes4 response -diff -ruN token/ERC20/ERC20.sol token/ERC20/ERC20.sol ---- token/ERC20/ERC20.sol 2022-09-27 10:26:58.548890299 +0200 -+++ token/ERC20/ERC20.sol 2022-09-29 10:09:07.479688477 +0200 +diff -druN token/ERC20/ERC20.sol token/ERC20/ERC20.sol +--- token/ERC20/ERC20.sol 2022-10-31 11:08:30.547127922 +0100 ++++ token/ERC20/ERC20.sol 2022-11-04 16:35:52.560691845 +0100 @@ -256,7 +256,7 @@ * * - `account` cannot be the zero address. @@ -288,7 +300,7 @@ diff -ruN token/ERC20/ERC20.sol token/ERC20/ERC20.sol - function _mint(address account, uint256 amount) internal virtual { + function _mint(address account, uint256 amount) public virtual { // HARNESS: internal -> public require(account != address(0), "ERC20: mint to the zero address"); - + _beforeTokenTransfer(address(0), account, amount); @@ -282,7 +282,7 @@ * - `account` cannot be the zero address. @@ -297,11 +309,11 @@ diff -ruN token/ERC20/ERC20.sol token/ERC20/ERC20.sol - function _burn(address account, uint256 amount) internal virtual { + function _burn(address account, uint256 amount) public virtual { // HARNESS: internal -> public require(account != address(0), "ERC20: burn from the zero address"); - + _beforeTokenTransfer(account, address(0), amount); -diff -ruN token/ERC20/extensions/ERC20Capped.sol token/ERC20/extensions/ERC20Capped.sol +diff -druN token/ERC20/extensions/ERC20Capped.sol token/ERC20/extensions/ERC20Capped.sol --- token/ERC20/extensions/ERC20Capped.sol 2022-08-31 13:44:36.381058287 +0200 -+++ token/ERC20/extensions/ERC20Capped.sol 2022-09-29 10:09:41.376517581 +0200 ++++ token/ERC20/extensions/ERC20Capped.sol 2022-11-04 16:35:52.560691845 +0100 @@ -30,7 +30,7 @@ /** * @dev See {ERC20-_mint}. @@ -311,9 +323,9 @@ diff -ruN token/ERC20/extensions/ERC20Capped.sol token/ERC20/extensions/ERC20Cap require(ERC20.totalSupply() + amount <= cap(), "ERC20Capped: cap exceeded"); super._mint(account, amount); } -diff -ruN token/ERC20/extensions/ERC20FlashMint.sol token/ERC20/extensions/ERC20FlashMint.sol ---- token/ERC20/extensions/ERC20FlashMint.sol 2022-09-29 10:07:27.126075551 +0200 -+++ token/ERC20/extensions/ERC20FlashMint.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN token/ERC20/extensions/ERC20FlashMint.sol token/ERC20/extensions/ERC20FlashMint.sol +--- token/ERC20/extensions/ERC20FlashMint.sol 2022-11-03 12:06:09.356515929 +0100 ++++ token/ERC20/extensions/ERC20FlashMint.sol 2022-11-04 16:35:52.560691845 +0100 @@ -51,9 +51,11 @@ // silence warning about unused variable without the addition of bytecode. token; @@ -321,25 +333,25 @@ diff -ruN token/ERC20/extensions/ERC20FlashMint.sol token/ERC20/extensions/ERC20 - return 0; + return fee; // HARNESS: made "return" nonzero } - + + uint256 public fee; // HARNESS: added it to simulate random fee amount + /** * @dev Returns the receiver address of the flash fee. By default this * implementation returns the address(0) which means the fee amount will be burnt. -diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Votes.sol ---- token/ERC20/extensions/ERC20Votes.sol 2022-09-27 10:26:58.548890299 +0200 -+++ token/ERC20/extensions/ERC20Votes.sol 2022-09-29 10:09:45.489874234 +0200 +diff -druN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Votes.sol +--- token/ERC20/extensions/ERC20Votes.sol 2022-11-03 12:06:09.356515929 +0100 ++++ token/ERC20/extensions/ERC20Votes.sol 2022-11-04 16:35:52.560691845 +0100 @@ -33,8 +33,8 @@ bytes32 private constant _DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); - + - mapping(address => address) private _delegates; - mapping(address => Checkpoint[]) private _checkpoints; + mapping(address => address) public _delegates; // HARNESS: private -> public + mapping(address => Checkpoint[]) public _checkpoints; // HARNESS: private -> public Checkpoint[] private _totalSupplyCheckpoints; - + /** @@ -165,27 +165,27 @@ /** @@ -349,7 +361,7 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote + function _maxSupply() public view virtual returns (uint224) { // HARNESS: internal -> public return type(uint224).max; } - + /** * @dev Snapshots the totalSupply after it has been increased. */ @@ -357,22 +369,22 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote + function _mint(address account, uint256 amount) public virtual override { // HARNESS: internal -> public super._mint(account, amount); require(totalSupply() <= _maxSupply(), "ERC20Votes: total supply risks overflowing votes"); - + - _writeCheckpoint(_totalSupplyCheckpoints, _add, amount); + _writeCheckpointAdd(_totalSupplyCheckpoints, amount); // HARNESS: new version without pointer } - + /** * @dev Snapshots the totalSupply after it has been decreased. */ - function _burn(address account, uint256 amount) internal virtual override { + function _burn(address account, uint256 amount) public virtual override { // HARNESS: internal -> public (to comply with the ERC20 harness) super._burn(account, amount); - + - _writeCheckpoint(_totalSupplyCheckpoints, _subtract, amount); + _writeCheckpointSub(_totalSupplyCheckpoints, amount); // HARNESS: new version without pointer } - + /** @@ -208,7 +208,7 @@ * @@ -383,7 +395,7 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote address currentDelegate = delegates(delegator); uint256 delegatorBalance = balanceOf(delegator); _delegates[delegator] = delegatee; -@@ -225,12 +225,13 @@ +@@ -225,36 +225,86 @@ ) private { if (src != dst && amount > 0) { if (src != address(0)) { @@ -392,33 +404,55 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote + emit DelegateVotesChanged(src, oldWeight, newWeight); } - + if (dst != address(0)) { - (uint256 oldWeight, uint256 newWeight) = _writeCheckpoint(_checkpoints[dst], _add, amount); + (uint256 oldWeight, uint256 newWeight) = _writeCheckpointAdd(_checkpoints[dst], amount); // HARNESS: new version without pointer emit DelegateVotesChanged(dst, oldWeight, newWeight); } } -@@ -255,6 +256,55 @@ - } } - + +- function _writeCheckpoint( ++ // function _writeCheckpoint( ++ // Checkpoint[] storage ckpts, ++ // function(uint256, uint256) view returns (uint256) op, ++ // uint256 delta ++ // ) private returns (uint256 oldWeight, uint256 newWeight) { ++ // uint256 pos = ckpts.length; ++ ++ // Checkpoint memory oldCkpt = pos == 0 ? Checkpoint(0, 0) : _unsafeAccess(ckpts, pos - 1); ++ ++ // oldWeight = oldCkpt.votes; ++ // newWeight = op(oldWeight, delta); ++ ++ // if (pos > 0 && oldCkpt.fromBlock == block.number) { ++ // _unsafeAccess(ckpts, pos - 1).votes = SafeCast.toUint224(newWeight); ++ // } else { ++ // ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); ++ // } ++ // } ++ + // HARNESS: split _writeCheckpoint() to two functions as a workaround for function pointers that cannot be managed by the tool + function _writeCheckpointAdd( -+ Checkpoint[] storage ckpts, -+ uint256 delta -+ ) private returns (uint256 oldWeight, uint256 newWeight) { -+ uint256 pos = ckpts.length; + Checkpoint[] storage ckpts, +- function(uint256, uint256) view returns (uint256) op, + uint256 delta + ) private returns (uint256 oldWeight, uint256 newWeight) { + uint256 pos = ckpts.length; + oldWeight = pos == 0 ? 0 : ckpts[pos - 1].votes; + newWeight = _add(oldWeight, delta); -+ + +- Checkpoint memory oldCkpt = pos == 0 ? Checkpoint(0, 0) : _unsafeAccess(ckpts, pos - 1); + if (pos > 0 && ckpts[pos - 1].fromBlock == block.number) { + ckpts[pos - 1].votes = SafeCast.toUint224(newWeight); + } else { + ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); + } + } -+ + +- oldWeight = oldCkpt.votes; +- newWeight = op(oldWeight, delta); + function _writeCheckpointSub( + Checkpoint[] storage ckpts, + uint256 delta @@ -426,14 +460,16 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote + uint256 pos = ckpts.length; + oldWeight = pos == 0 ? 0 : ckpts[pos - 1].votes; + newWeight = _subtract(oldWeight, delta); -+ + +- if (pos > 0 && oldCkpt.fromBlock == block.number) { +- _unsafeAccess(ckpts, pos - 1).votes = SafeCast.toUint224(newWeight); + if (pos > 0 && ckpts[pos - 1].fromBlock == block.number) { + ckpts[pos - 1].votes = SafeCast.toUint224(newWeight); -+ } else { -+ ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); -+ } -+ } -+ + } else { + ckpts.push(Checkpoint({fromBlock: SafeCast.toUint32(block.number), votes: SafeCast.toUint224(newWeight)})); + } + } + + // backup of original function + // + // function _writeCheckpoint( @@ -455,9 +491,9 @@ diff -ruN token/ERC20/extensions/ERC20Votes.sol token/ERC20/extensions/ERC20Vote function _add(uint256 a, uint256 b) private pure returns (uint256) { return a + b; } -diff -ruN token/ERC20/extensions/ERC20Wrapper.sol token/ERC20/extensions/ERC20Wrapper.sol +diff -druN token/ERC20/extensions/ERC20Wrapper.sol token/ERC20/extensions/ERC20Wrapper.sol --- token/ERC20/extensions/ERC20Wrapper.sol 2022-08-31 13:44:36.381058287 +0200 -+++ token/ERC20/extensions/ERC20Wrapper.sol 2022-09-28 11:25:39.319711517 +0200 ++++ token/ERC20/extensions/ERC20Wrapper.sol 2022-11-04 16:35:52.560691845 +0100 @@ -55,7 +55,7 @@ * @dev Mint wrapped token to cover any underlyingTokens that would have been transferred by mistake. Internal * function that can be exposed with access control if desired. @@ -467,9 +503,9 @@ diff -ruN token/ERC20/extensions/ERC20Wrapper.sol token/ERC20/extensions/ERC20Wr uint256 value = underlying.balanceOf(address(this)) - totalSupply(); _mint(account, value); return value; -diff -ruN token/ERC721/extensions/draft-ERC721Votes.sol token/ERC721/extensions/draft-ERC721Votes.sol ---- token/ERC721/extensions/draft-ERC721Votes.sol 2022-09-29 10:07:27.126075551 +0200 -+++ token/ERC721/extensions/draft-ERC721Votes.sol 2022-09-27 17:51:32.014634743 +0200 +diff -druN token/ERC721/extensions/draft-ERC721Votes.sol token/ERC721/extensions/draft-ERC721Votes.sol +--- token/ERC721/extensions/draft-ERC721Votes.sol 2022-11-03 12:06:09.356515929 +0100 ++++ token/ERC721/extensions/draft-ERC721Votes.sol 2022-11-04 16:35:52.560691845 +0100 @@ -49,7 +49,7 @@ /** * @dev Returns the balance of `account`. @@ -479,4 +515,48 @@ diff -ruN token/ERC721/extensions/draft-ERC721Votes.sol token/ERC721/extensions/ return balanceOf(account); } } - +diff -druN utils/Address.sol utils/Address.sol +--- utils/Address.sol 2022-11-03 12:06:09.356515929 +0100 ++++ utils/Address.sol 2022-11-04 16:35:52.564025262 +0100 +@@ -197,7 +197,7 @@ + bool success, + bytes memory returndata, + string memory errorMessage +- ) internal view returns (bytes memory) { ++ ) internal view returns (bytes memory val) { // MUNGED undeterministic return causes error for Prover + if (success) { + if (returndata.length == 0) { + // only check isContract if the call was successful and the return data is empty +@@ -220,7 +220,7 @@ + bool success, + bytes memory returndata, + string memory errorMessage +- ) internal pure returns (bytes memory) { ++ ) internal pure returns (bytes memory val) { // MUNGED undeterministic return causes error for Prover + if (success) { + return returndata; + } else { +diff -druN utils/Checkpoints.sol utils/Checkpoints.sol +--- utils/Checkpoints.sol 2022-11-02 12:17:36.976298213 +0100 ++++ utils/Checkpoints.sol 2022-11-04 16:35:52.564025262 +0100 +@@ -83,13 +83,13 @@ + * + * Returns previous value and new value. + */ +- function push( +- History storage self, +- function(uint256, uint256) view returns (uint256) op, +- uint256 delta +- ) internal returns (uint256, uint256) { +- return push(self, op(latest(self), delta)); +- } ++ // function push( ++ // History storage self, ++ // function(uint256, uint256) view returns (uint256) op, ++ // uint256 delta ++ // ) internal returns (uint256, uint256) { ++ // return push(self, op(latest(self), delta)); ++ // } + + /** + * @dev Returns the value in the most recent checkpoint, or zero if there are no checkpoints. diff --git a/certora/harnesses/GovernorFullHarness.sol b/certora/harnesses/GovernorFullHarness.sol index 026a32eae..c4ce83959 100644 --- a/certora/harnesses/GovernorFullHarness.sol +++ b/certora/harnesses/GovernorFullHarness.sol @@ -19,6 +19,7 @@ contract GovernorFullHarness is { using SafeCast for uint256; using Timers for Timers.BlockNumber; + using Checkpoints for Checkpoints.History; constructor( IVotes _token, @@ -37,6 +38,25 @@ contract GovernorFullHarness is // variable added to check when _castVote is called uint256 public latestCastVoteCall; + + // Harness from Votes // + + function getPastTotalSupply(uint256 blockNumber) public view returns(uint256) { + return token.getPastTotalSupply(blockNumber); + } + // Harness from GovernorVotesQuorumFraction // + + function getQuorumNumeratorLength() public view returns(uint256) { + return _quorumNumeratorHistory._checkpoints.length; + } + + function getQuorumNumeratorLatest() public view returns(uint256) { + return _quorumNumeratorHistory.latest(); + } + + function getDeprecatedQuorumNumerator() public view returns(uint256) { + return _quorumNumerator; + } // Harness from GovernorPreventLateQuorum // diff --git a/certora/scripts/noCI/Round1/verifyAll.sh b/certora/scripts/noCI/Round1/verifyAll.sh index a7d3c8ed2..68cada876 100644 --- a/certora/scripts/noCI/Round1/verifyAll.sh +++ b/certora/scripts/noCI/Round1/verifyAll.sh @@ -4,7 +4,7 @@ set -euxo pipefail for contract in certora/harnesses/Wizard*.sol; do - # NOTE: some spec wile are not governor related, and should be run on Wizard*.sol + # NOTE: some spec files are not governor related, and should be run on Wizard*.sol for spec in certora/specs/*.spec; do contractFile=$(basename $contract) diff --git a/certora/scripts/noCI/Round3/verifyGovernorPreventLateQuorum.sh b/certora/scripts/passes/verifyGovernorPreventLateQuorum.sh similarity index 87% rename from certora/scripts/noCI/Round3/verifyGovernorPreventLateQuorum.sh rename to certora/scripts/passes/verifyGovernorPreventLateQuorum.sh index 8b74837e1..35ff726c3 100644 --- a/certora/scripts/noCI/Round3/verifyGovernorPreventLateQuorum.sh +++ b/certora/scripts/passes/verifyGovernorPreventLateQuorum.sh @@ -6,8 +6,7 @@ certoraRun \ certora/harnesses/ERC20VotesHarness.sol certora/harnesses/GovernorFullHarness.sol \ --verify GovernorFullHarness:certora/specs/GovernorPreventLateQuorum.spec \ --link GovernorFullHarness:token=ERC20VotesHarness \ - --solc solc \ --optimistic_loop \ --loop_iter 1 \ - --rule_sanity advanced \ + --rule_sanity \ $@ diff --git a/certora/specs/ERC1155.spec b/certora/specs/ERC1155.spec index bd88e8c09..3804ba5db 100644 --- a/certora/specs/ERC1155.spec +++ b/certora/specs/ERC1155.spec @@ -15,7 +15,6 @@ methods { } - ///////////////////////////////////////////////// // Approval (4/4) ///////////////////////////////////////////////// @@ -25,7 +24,7 @@ methods { // Function $f, which is not setApprovalForAll, should not change approval rule unexpectedAllowanceChange(method f, env e) filtered { f -> f.selector != setApprovalForAll(address, bool).selector } { address account; address operator; - bool approveBefore = isApprovedForAll(account, operator); + bool approveBefore = isApprovedForAll(account, operator); calldataarg args; f(e, args); @@ -33,7 +32,7 @@ rule unexpectedAllowanceChange(method f, env e) filtered { f -> f.selector != se bool approveAfter = isApprovedForAll(account, operator); assert approveBefore == approveAfter, "You couldn't get king's approval this way!"; -} +} // STATUS - verified @@ -52,7 +51,7 @@ rule onlyOwnerCanApprove(env e){ // STATUS - verified -// Chech that isApprovedForAll() revertes in planned scenarios and no more. +// Check that isApprovedForAll() revertes in planned scenarios and no more. rule approvalRevertCases(env e){ address account; address operator; isApprovedForAll@withrevert(account, operator); @@ -63,7 +62,7 @@ rule approvalRevertCases(env e){ // STATUS - verified // setApproval changes only one approval rule onlyOneAllowanceChange(method f, env e) { - address owner; address operator; address user; + address owner; address operator; address user; bool approved; bool userApproveBefore = isApprovedForAll(owner, user); @@ -73,7 +72,7 @@ rule onlyOneAllowanceChange(method f, env e) { bool userApproveAfter = isApprovedForAll(owner, user); assert userApproveBefore != userApproveAfter => (e.msg.sender == owner && operator == user), "Imposter!"; -} +} @@ -84,12 +83,12 @@ rule onlyOneAllowanceChange(method f, env e) { // STATUS - verified // Function $f, which is not one of transfers, mints and burns, should not change balanceOf of a user -rule unexpectedBalanceChange(method f, env e) +rule unexpectedBalanceChange(method f, env e) filtered { f -> f.selector != safeTransferFrom(address, address, uint256, uint256, bytes).selector - && f.selector != safeBatchTransferFrom(address, address, uint256[], uint256[], bytes).selector - && f.selector != mint(address, uint256, uint256, bytes).selector - && f.selector != mintBatch(address, uint256[], uint256[], bytes).selector - && f.selector != burn(address, uint256, uint256).selector + && f.selector != safeBatchTransferFrom(address, address, uint256[], uint256[], bytes).selector + && f.selector != mint(address, uint256, uint256, bytes).selector + && f.selector != mintBatch(address, uint256[], uint256[], bytes).selector + && f.selector != burn(address, uint256, uint256).selector && f.selector != burnBatch(address, uint256[], uint256[]).selector } { address from; uint256 id; uint256 balanceBefore = balanceOf(from, id); @@ -100,11 +99,11 @@ rule unexpectedBalanceChange(method f, env e) uint256 balanceAfter = balanceOf(from, id); assert balanceBefore == balanceAfter, "How you dare to take my money?"; -} +} // STATUS - verified -// Chech that `balanceOf()` revertes in planned scenarios and no more (only if `account` is 0) +// Check that `balanceOf()` revertes in planned scenarios and no more (only if `account` is 0) rule balanceOfRevertCases(env e){ address account; uint256 id; balanceOf@withrevert(account, id); @@ -113,14 +112,14 @@ rule balanceOfRevertCases(env e){ // STATUS - verified -// Chech that `balanceOfBatch()` revertes in planned scenarios and no more (only if at least one of `account`s is 0) +// Check that `balanceOfBatch()` revertes in planned scenarios and no more (only if at least one of `account`s is 0) rule balanceOfBatchRevertCases(env e){ address[] accounts; uint256[] ids; address account1; address account2; address account3; uint256 id1; uint256 id2; uint256 id3; - require accounts.length == 3; - require ids.length == 3; + require accounts.length == 3; + require ids.length == 3; require accounts[0] == account1; require accounts[1] == account2; require accounts[2] == account3; @@ -187,9 +186,9 @@ rule transferBatchCorrectness(env e){ require to != from; require idToCheck1 != idToCheck2 && idToCheck3 != idToCheck2 && idToCheck1 != idToCheck3; - - require ids.length == 3; - require amounts.length == 3; + + require ids.length == 3; + require amounts.length == 3; require ids[0] == idToCheck1; require amounts[0] == amountToCheck1; require ids[1] == idToCheck2; require amounts[1] == amountToCheck2; require ids[2] == idToCheck3; require amounts[2] == amountToCheck3; @@ -245,8 +244,8 @@ rule cannotTransferMoreBatch(env e){ uint256 balanceBefore2 = balanceOf(from, idToCheck2); uint256 balanceBefore3 = balanceOf(from, idToCheck3); - require ids.length == 3; - require amounts.length == 3; + require ids.length == 3; + require amounts.length == 3; require ids[0] == idToCheck1; require amounts[0] == amountToCheck1; require ids[1] == idToCheck2; require amounts[1] == amountToCheck2; require ids[2] == idToCheck3; require amounts[2] == amountToCheck3; @@ -261,7 +260,7 @@ rule cannotTransferMoreBatch(env e){ // Sender calling safeTransferFrom should only reduce 'from' balance and not other's if sending amount is greater than 0 rule transferBalanceReduceEffect(env e){ address from; address to; address other; - uint256 id; uint256 amount; + uint256 id; uint256 amount; bytes data; require other != to; @@ -280,7 +279,7 @@ rule transferBalanceReduceEffect(env e){ // Sender calling safeTransferFrom should only increase 'to' balance and not other's if sending amount is greater than 0 rule transferBalanceIncreaseEffect(env e){ address from; address to; address other; - uint256 id; uint256 amount; + uint256 id; uint256 amount; bytes data; require from != other; @@ -315,8 +314,8 @@ rule transferBatchBalanceFromEffect(env e){ uint256 otherBalanceAfter2 = balanceOf(other, id2); uint256 otherBalanceAfter3 = balanceOf(other, id3); - assert from != other => (otherBalanceBefore1 == otherBalanceAfter1 - && otherBalanceBefore2 == otherBalanceAfter2 + assert from != other => (otherBalanceBefore1 == otherBalanceAfter1 + && otherBalanceBefore2 == otherBalanceAfter2 && otherBalanceBefore3 == otherBalanceAfter3), "Don't touch my money!"; } @@ -341,8 +340,8 @@ rule transferBatchBalanceToEffect(env e){ uint256 otherBalanceAfter2 = balanceOf(other, id2); uint256 otherBalanceAfter3 = balanceOf(other, id3); - assert other != to => (otherBalanceBefore1 == otherBalanceAfter1 - && otherBalanceBefore2 == otherBalanceAfter2 + assert other != to => (otherBalanceBefore1 == otherBalanceAfter1 + && otherBalanceBefore2 == otherBalanceAfter2 && otherBalanceBefore3 == otherBalanceAfter3), "Don't touch my money!"; } @@ -360,13 +359,13 @@ rule noTransferForNotApproved(env e) { safeTransferFrom@withrevert(e, from, to, id, amount, data); assert !approve => lastReverted, "You don't have king's approval!"; -} +} // STATUS - verified // cannot transfer without approval (safeBatchTransferFrom version) rule noTransferBatchForNotApproved(env e) { - address from; address operator; address to; + address from; address operator; address to; bytes data; uint256[] ids; uint256[] amounts; @@ -377,7 +376,7 @@ rule noTransferBatchForNotApproved(env e) { safeBatchTransferFrom@withrevert(e, from, to, ids, amounts, data); assert !approve => lastReverted, "You don't have king's approval!"; -} +} // STATUS - verified @@ -385,7 +384,7 @@ rule noTransferBatchForNotApproved(env e) { rule noTransferEffectOnApproval(env e){ address from; address to; address owner; address operator; - uint256 id; uint256 amount; + uint256 id; uint256 amount; bytes data; bool approveBefore = isApprovedForAll(owner, operator); @@ -443,8 +442,8 @@ rule mintAdditivity(env e){ } -// STATUS - verified -// Chech that `mint()` revertes in planned scenario(s) (only if `to` is 0) +// STATUS - verified +// Check that `mint()` revertes in planned scenario(s) (only if `to` is 0) rule mintRevertCases(env e){ address to; uint256 id; uint256 amount; bytes data; @@ -455,7 +454,7 @@ rule mintRevertCases(env e){ // STATUS - verified -// Chech that `mintBatch()` revertes in planned scenario(s) (only if `to` is 0 or arrays have different length) +// Check that `mintBatch()` revertes in planned scenario(s) (only if `to` is 0 or arrays have different length) rule mintBatchRevertCases(env e){ address to; uint256[] ids; uint256[] amounts; bytes data; @@ -478,7 +477,7 @@ rule mintCorrectWork(env e){ mint(e, to, id, amount, data); uint256 otherBalanceAfter = balanceOf(to, id); - + assert otherBalanceBefore == otherBalanceAfter - amount, "Something is wrong"; } @@ -487,13 +486,13 @@ rule mintCorrectWork(env e){ // check that mintBatch updates `bootcamp participantsfrom` balance correctly rule mintBatchCorrectWork(env e){ address to; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256 amount1; uint256 amount2; uint256 amount3; uint256[] ids; uint256[] amounts; bytes data; - require ids.length == 3; - require amounts.length == 3; + require ids.length == 3; + require amounts.length == 3; require id1 != id2 && id2 != id3 && id3 != id1; require ids[0] == id1; require ids[1] == id2; require ids[2] == id3; @@ -508,7 +507,7 @@ rule mintBatchCorrectWork(env e){ uint256 otherBalanceAfter1 = balanceOf(to, id1); uint256 otherBalanceAfter2 = balanceOf(to, id2); uint256 otherBalanceAfter3 = balanceOf(to, id3); - + assert otherBalanceBefore1 == otherBalanceAfter1 - amount1 && otherBalanceBefore2 == otherBalanceAfter2 - amount2 && otherBalanceBefore3 == otherBalanceAfter3 - amount3 @@ -524,7 +523,7 @@ rule cantMintMoreSingle(env e){ require to_mathint(balanceOf(to, id) + amount) > max_uint256; mint@withrevert(e, to, id, amount, data); - + assert lastReverted, "Don't be too greedy!"; } @@ -533,22 +532,22 @@ rule cantMintMoreSingle(env e){ // the user cannot mint more than max_uint256 (batch version) rule cantMintMoreBatch(env e){ address to; bytes data; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256 amount1; uint256 amount2; uint256 amount3; uint256[] ids; uint256[] amounts; - require ids.length == 3; + require ids.length == 3; require amounts.length == 3; require ids[0] == id1; require ids[1] == id2; require ids[2] == id3; require amounts[0] == amount1; require amounts[1] == amount2; require amounts[2] == amount3; - require to_mathint(balanceOf(to, id1) + amount1) > max_uint256 + require to_mathint(balanceOf(to, id1) + amount1) > max_uint256 || to_mathint(balanceOf(to, id2) + amount2) > max_uint256 || to_mathint(balanceOf(to, id3) + amount3) > max_uint256; mintBatch@withrevert(e, to, ids, amounts, data); - + assert lastReverted, "Don't be too greedy!"; } @@ -564,7 +563,7 @@ rule cantMintOtherBalances(env e){ mint(e, to, id, amount, data); uint256 otherBalanceAfter = balanceOf(other, id); - + assert other != to => otherBalanceBefore == otherBalanceAfter, "I like to see your money disappearing"; } @@ -573,7 +572,7 @@ rule cantMintOtherBalances(env e){ // mintBatch changes only `to` balance rule cantMintBatchOtherBalances(env e){ address to; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256[] ids; uint256[] amounts; address other; bytes data; @@ -587,9 +586,9 @@ rule cantMintBatchOtherBalances(env e){ uint256 otherBalanceAfter1 = balanceOf(other, id1); uint256 otherBalanceAfter2 = balanceOf(other, id2); uint256 otherBalanceAfter3 = balanceOf(other, id3); - - assert other != to => (otherBalanceBefore1 == otherBalanceAfter1 - && otherBalanceBefore2 == otherBalanceAfter2 + + assert other != to => (otherBalanceBefore1 == otherBalanceAfter1 + && otherBalanceBefore2 == otherBalanceAfter2 && otherBalanceBefore3 == otherBalanceAfter3) , "I like to see your money disappearing"; } @@ -622,7 +621,7 @@ rule burnAdditivity(env e){ // STATUS - verified -// Chech that `burn()` revertes in planned scenario(s) (if `from` is 0) +// Check that `burn()` revertes in planned scenario(s) (if `from` is 0) rule burnRevertCases(env e){ address from; uint256 id; uint256 amount; @@ -633,7 +632,7 @@ rule burnRevertCases(env e){ // STATUS - verified -// Chech that `balanceOf()` revertes in planned scenario(s) (if `from` is 0 or arrays have different length) +// Check that `balanceOf()` revertes in planned scenario(s) (if `from` is 0 or arrays have different length) rule burnBatchRevertCases(env e){ address from; uint256[] ids; uint256[] amounts; @@ -656,7 +655,7 @@ rule burnCorrectWork(env e){ burn(e, from, id, amount); uint256 otherBalanceAfter = balanceOf(from, id); - + assert otherBalanceBefore == otherBalanceAfter + amount, "Something is wrong"; } @@ -665,11 +664,11 @@ rule burnCorrectWork(env e){ // check that burnBatch updates `from` balance correctly rule burnBatchCorrectWork(env e){ address from; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256 amount1; uint256 amount2; uint256 amount3; uint256[] ids; uint256[] amounts; - require ids.length == 3; + require ids.length == 3; require id1 != id2 && id2 != id3 && id3 != id1; require ids[0] == id1; require ids[1] == id2; require ids[2] == id3; @@ -684,7 +683,7 @@ rule burnBatchCorrectWork(env e){ uint256 otherBalanceAfter1 = balanceOf(from, id1); uint256 otherBalanceAfter2 = balanceOf(from, id2); uint256 otherBalanceAfter3 = balanceOf(from, id3); - + assert otherBalanceBefore1 == otherBalanceAfter1 + amount1 && otherBalanceBefore2 == otherBalanceAfter2 + amount2 && otherBalanceBefore3 == otherBalanceAfter3 + amount3 @@ -700,7 +699,7 @@ rule cantBurnMoreSingle(env e){ require to_mathint(balanceOf(from, id) - amount) < 0; burn@withrevert(e, from, id, amount); - + assert lastReverted, "Don't be too greedy!"; } @@ -709,21 +708,21 @@ rule cantBurnMoreSingle(env e){ // the user cannot burn more than they have (batch version) rule cantBurnMoreBatch(env e){ address from; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256 amount1; uint256 amount2; uint256 amount3; uint256[] ids; uint256[] amounts; - require ids.length == 3; + require ids.length == 3; require ids[0] == id1; require ids[1] == id2; require ids[2] == id3; require amounts[0] == amount1; require amounts[1] == amount2; require amounts[2] == amount3; - require to_mathint(balanceOf(from, id1) - amount1) < 0 - || to_mathint(balanceOf(from, id2) - amount2) < 0 + require to_mathint(balanceOf(from, id1) - amount1) < 0 + || to_mathint(balanceOf(from, id2) - amount2) < 0 || to_mathint(balanceOf(from, id3) - amount3) < 0 ; burnBatch@withrevert(e, from, ids, amounts); - + assert lastReverted, "Don't be too greedy!"; } @@ -739,7 +738,7 @@ rule cantBurnOtherBalances(env e){ burn(e, from, id, amount); uint256 otherBalanceAfter = balanceOf(other, id); - + assert other != from => otherBalanceBefore == otherBalanceAfter, "I like to see your money disappearing"; } @@ -748,7 +747,7 @@ rule cantBurnOtherBalances(env e){ // burnBatch changes only `from` balance rule cantBurnBatchOtherBalances(env e){ address from; - uint256 id1; uint256 id2; uint256 id3; + uint256 id1; uint256 id2; uint256 id3; uint256 amount1; uint256 amount2; uint256 amount3; uint256[] ids; uint256[] amounts; address other; @@ -762,19 +761,19 @@ rule cantBurnBatchOtherBalances(env e){ uint256 otherBalanceAfter1 = balanceOf(other, id1); uint256 otherBalanceAfter2 = balanceOf(other, id2); uint256 otherBalanceAfter3 = balanceOf(other, id3); - - assert other != from => (otherBalanceBefore1 == otherBalanceAfter1 - && otherBalanceBefore2 == otherBalanceAfter2 + + assert other != from => (otherBalanceBefore1 == otherBalanceAfter1 + && otherBalanceBefore2 == otherBalanceAfter2 && otherBalanceBefore3 == otherBalanceAfter3) , "I like to see your money disappearing"; } ///////////////////////////////////////////////// -// The rules below were added to this base ERC1155 spec as part of a later +// The rules below were added to this base ERC1155 spec as part of a later // project with OpenZeppelin covering various ERC1155 extensions. ///////////////////////////////////////////////// -/// The result of transferring a single token must be equivalent whether done +/// The result of transferring a single token must be equivalent whether done /// via safeTransferFrom or safeBatchTransferFrom. rule singleTokenSafeTransferFromSafeBatchTransferFromEquivalence { storage beforeTransfer = lastStorage; @@ -801,11 +800,11 @@ rule singleTokenSafeTransferFromSafeBatchTransferFromEquivalence { mathint recipientSafeBatchTransferFromBalanceChange = balanceOf(recipient, token) - recipientStartingBalance; assert holderSafeTransferFromBalanceChange == holderSafeBatchTransferFromBalanceChange - && recipientSafeTransferFromBalanceChange == recipientSafeBatchTransferFromBalanceChange, + && recipientSafeTransferFromBalanceChange == recipientSafeBatchTransferFromBalanceChange, "Transferring a single token via safeTransferFrom or safeBatchTransferFrom must be equivalent"; -} +} -/// The results of transferring multiple tokens must be equivalent whether done +/// The results of transferring multiple tokens must be equivalent whether done /// separately via safeTransferFrom or together via safeBatchTransferFrom. rule multipleTokenSafeTransferFromSafeBatchTransferFromEquivalence { storage beforeTransfers = lastStorage; @@ -853,7 +852,7 @@ rule multipleTokenSafeTransferFromSafeBatchTransferFromEquivalence { && holderSafeTransferFromBalanceChangeC == holderSafeBatchTransferFromBalanceChangeC && recipientSafeTransferFromBalanceChangeA == recipientSafeBatchTransferFromBalanceChangeA && recipientSafeTransferFromBalanceChangeB == recipientSafeBatchTransferFromBalanceChangeB - && recipientSafeTransferFromBalanceChangeC == recipientSafeBatchTransferFromBalanceChangeC, + && recipientSafeTransferFromBalanceChangeC == recipientSafeBatchTransferFromBalanceChangeC, "Transferring multiple tokens via safeTransferFrom or safeBatchTransferFrom must be equivalent"; } @@ -873,6 +872,6 @@ rule transfersHaveSameLengthInputArrays { uint256 tokensLength = tokens.length; uint256 transferAmountsLength = transferAmounts.length; - assert tokens.length == transferAmounts.length, + assert tokens.length == transferAmounts.length, "If transfer methods do not revert, the input arrays must be the same length"; } diff --git a/certora/specs/ERC1155Burnable.spec b/certora/specs/ERC1155Burnable.spec index a5507bfce..929c35e89 100644 --- a/certora/specs/ERC1155Burnable.spec +++ b/certora/specs/ERC1155Burnable.spec @@ -1,3 +1,16 @@ +//// ## Verification of `ERC1155Burnable` +//// +//// `ERC1155Burnable` extends the `ERC1155` functionality by wrapping the internal +//// methods `_burn` and `_burnBatch` in the public methods `burn` and `burnBatch`, +//// adding a requirement that the caller of either method be the account holding +//// the tokens or approved to act on that account's behalf. +//// +//// ### Assumptions and Simplifications +//// +//// - No changes made using the harness +//// +//// ### Properties + methods { balanceOf(address, uint256) returns uint256 envfree isApprovedForAll(address,address) returns bool envfree @@ -22,7 +35,7 @@ rule onlyHolderOrApprovedCanReduceBalance(method f) /// Burning a larger amount of a token must reduce that token's balance more /// than burning a smaller amount. /// n.b. This rule holds for `burnBatch` as well due to rules establishing -/// appropriate equivance between `burn` and `burnBatch` methods. +/// appropriate equivalence between `burn` and `burnBatch` methods. rule burnAmountProportionalToBalanceReduction { storage beforeBurn = lastStorage; env e; @@ -47,7 +60,7 @@ rule burnAmountProportionalToBalanceReduction { /// Two sequential burns must be equivalent to a single burn of the sum of their /// amounts. /// This rule holds for `burnBatch` as well due to rules establishing -/// appropriate equivance between `burn` and `burnBatch` methods. +/// appropriate equivalence between `burn` and `burnBatch` methods. rule sequentialBurnsEquivalentToSingleBurnOfSum { storage beforeBurns = lastStorage; env e; @@ -72,6 +85,7 @@ rule sequentialBurnsEquivalentToSingleBurnOfSum { /// The result of burning a single token must be equivalent whether done via /// burn or burnBatch. +/// @title Single token `burn` / `burnBatch` equivalence rule singleTokenBurnBurnBatchEquivalence { storage beforeBurn = lastStorage; env e; @@ -98,7 +112,8 @@ rule singleTokenBurnBurnBatchEquivalence { } /// The results of burning multiple tokens must be equivalent whether done -/// separately via burn or together via burnBatch. +/// separately via `burn` or together via `burnBatch`. +/// @title Multiple token `burn` / `burnBatch` equivalence rule multipleTokenBurnBurnBatchEquivalence { storage beforeBurns = lastStorage; env e; @@ -137,7 +152,7 @@ rule multipleTokenBurnBurnBatchEquivalence { "Burning multiple tokens via burn or burnBatch must be equivalent"; } -/// If passed empty token and burn amount arrays, burnBatch must not change +/// If passed empty token and burn amount arrays, `burnBatch` must not change /// token balances or address permissions. rule burnBatchOnEmptyArraysChangesNothing { uint256 token; address nonHolderA; address nonHolderB; @@ -169,4 +184,4 @@ rule sanity { assert false, "This rule should always fail"; } -*/ \ No newline at end of file +*/ diff --git a/certora/specs/ERC1155Pausable.spec b/certora/specs/ERC1155Pausable.spec index 53a66e4b6..a6601b936 100644 --- a/certora/specs/ERC1155Pausable.spec +++ b/certora/specs/ERC1155Pausable.spec @@ -1,3 +1,15 @@ +//// ## Verification of `ERC1155Pausable` +//// +//// `ERC1155Pausable` extends existing `Pausable` functionality by requiring that a +//// contract not be in a `paused` state prior to a token transfer. +//// +//// ### Assumptions and Simplifications +//// - Internal methods `_pause` and `_unpause` wrapped by functions callable from CVL +//// - Dummy functions created to verify `whenPaused` and `whenNotPaused` modifiers +//// +//// +//// ### Properties + methods { balanceOf(address, uint256) returns uint256 envfree paused() returns bool envfree @@ -36,7 +48,7 @@ filtered { "Transfer methods must revert in a paused contract"; } -/// When a contract is in an unpaused state, calling pause() must pause. +/// When a contract is in an unpaused state, calling `pause()` must pause. rule pauseMethodPausesContract { require !paused(); @@ -80,8 +92,9 @@ rule cannotUnpauseWhileUnpaused { "A call to unpause when already unpaused must revert"; } -/// When a contract is in a paused state, functions with the whenNotPaused +/// When a contract is in a paused state, functions with the `whenNotPaused` /// modifier must revert. +/// @title `whenNotPaused` modifier causes revert if paused rule whenNotPausedModifierCausesRevertIfPaused { require paused(); @@ -92,8 +105,9 @@ rule whenNotPausedModifierCausesRevertIfPaused { "Functions with the whenNotPaused modifier must revert if the contract is paused"; } -/// When a contract is in an unpaused state, functions with the whenPaused +/// When a contract is in an unpaused state, functions with the `whenPaused` /// modifier must revert. +/// @title `whenPaused` modifier causes revert if unpaused rule whenPausedModifierCausesRevertIfUnpaused { require !paused(); @@ -113,4 +127,4 @@ rule sanity { assert false, "This rule should always fail"; } -*/ \ No newline at end of file +*/ diff --git a/certora/specs/ERC1155Supply.spec b/certora/specs/ERC1155Supply.spec index 0060ab146..00842aacc 100644 --- a/certora/specs/ERC1155Supply.spec +++ b/certora/specs/ERC1155Supply.spec @@ -1,3 +1,14 @@ +//// ## Verification of `ERC1155Supply` +//// +//// `ERC1155Supply` extends the `ERC1155` functionality. The contract creates a publicly callable `totalSupply` wrapper for the private `_totalSupply` method, a public `exists` method to check for a positive balance of a given token, and updates `_beforeTokenTransfer` to appropriately change the mapping `_totalSupply` in the context of minting and burning tokens. +//// +//// ### Assumptions and Simplifications +//// - The `exists` method was wrapped in the `exists_wrapper` method because `exists` is a keyword in CVL. +//// - The public functions `burn`, `burnBatch`, `mint`, and `mintBatch` were implemented in the harnessing contract make their respective internal functions callable by the CVL. This was used to test the increase and decrease of `totalSupply` when tokens are minted and burned. +//// - We created the `onlyOwner` modifier to be used in the above functions so that they are not called in unrelated rules. +//// +//// ### Properties + methods { totalSupply(uint256) returns uint256 envfree @@ -6,8 +17,8 @@ methods { owner() returns address envfree } -/// given two different token ids, if totalSupply for one changes, then -/// totalSupply for other must not +/// Given two different token ids, if total supply for one changes, then +/// total supply for other must not. rule token_totalSupply_independence(method f) filtered { f -> f.selector != safeBatchTransferFrom(address,address,uint256[],uint256[],bytes).selector diff --git a/certora/specs/ERC20.spec b/certora/specs/ERC20.spec index bc9cc8b13..1807444b7 100644 --- a/certora/specs/ERC20.spec +++ b/certora/specs/ERC20.spec @@ -1,4 +1,4 @@ -import "erc20.spec" +import "erc20methods.spec" /* ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ diff --git a/certora/specs/ERC20FlashMint.spec b/certora/specs/ERC20FlashMint.spec index e014147f8..99c0db480 100644 --- a/certora/specs/ERC20FlashMint.spec +++ b/certora/specs/ERC20FlashMint.spec @@ -1,4 +1,4 @@ -import "erc20.spec" +import "erc20methods.spec" methods { maxFlashLoan(address) returns(uint256) envfree @@ -7,7 +7,7 @@ methods { ghost mapping(address => uint256) trackedBurnAmount; -// retuns needed to overcome current CVL limitations: "could not type expression "specBurn(account,amount)", message: A summary must return a simple type, but specBurn(account,amount) returns 'void'" +// returns is needed to overcome current CVL limitations: "could not type expression "specBurn(account,amount)", message: A summary must return a simple type, but specBurn(account,amount) returns 'void'" function specBurn(address account, uint256 amount) returns bool { trackedBurnAmount[account] = amount; return true; diff --git a/certora/specs/ERC20Votes.spec b/certora/specs/ERC20Votes.spec index b99895f45..83a3a360e 100644 --- a/certora/specs/ERC20Votes.spec +++ b/certora/specs/ERC20Votes.spec @@ -1,4 +1,4 @@ -import "erc20.spec" +import "erc20methods.spec" methods { // IVotes @@ -62,10 +62,6 @@ hook Sstore _checkpoints[KEY address account][INDEX uint32 index].fromBlock uint doubleFromBlock@new(account) == (newBlock == lastFromBlock(account)); } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Invariants // -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // sum of user balances is >= total amount of delegated votes // fails on burn. This is because burn does not remove votes from the users invariant votes_solvency() @@ -74,7 +70,8 @@ invariant votes_solvency() { preserved with(env e) { require forall address account. numCheckpoints(account) < 1000000; - } preserved _burn(address a, uint256 amount) with(env e) { + } + preserved _burn(address a, uint256 amount) with(env e) { require _delegates(0) == 0; require forall address a2. (_delegates(a) != _delegates(a2)) && (balanceOf(_delegates(a)) + balanceOf(_delegates(a2)) <= totalVotes()); require balanceOf(_delegates(a)) < totalVotes(); @@ -82,7 +79,18 @@ invariant votes_solvency() } } +// for some checkpoint, the fromBlock is less than the current block number +invariant blockNum_constrains_fromBlock(address account, uint32 index, env e) + ckptFromBlock(account, index) < e.block.number + filtered { f -> !f.isView } + +// numCheckpoints are less than maxInt +// passes because numCheckpoints does a safeCast +// invariant maxInt_constrains_numBlocks(address account) +// numCheckpoints(account) < 4294967295 // 2^32 + // can't have more checkpoints for a given account than the last from block +// passes invariant fromBlock_constrains_numBlocks(address account) numCheckpoints(account) <= ckptFromBlock(account, numCheckpoints(account) - 1) filtered { f -> !f.isView } @@ -108,9 +116,6 @@ invariant fromBlock_increasing(address account, uint32 pos, uint32 pos2) pos > pos2 => ckptFromBlock(account, pos) > ckptFromBlock(account, pos2) filtered { f -> !f.isView } -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// Rules // -/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // converted from an invariant to a rule to slightly change the logic // if the fromBlock is the same as before, then the number of checkpoints stays the same @@ -154,6 +159,7 @@ rule transfer_safe() { assert delegates(a) != 0 => votesA_pre - votesA_post == amount, "A lost the wrong amount of votes"; assert delegates(b) != 0 => votesB_post - votesB_pre == amount, "B lost the wrong amount of votes"; } + // for any given function f, if the delegate is changed the function must be delegate or delegateBySig // passes rule delegates_safe(method f) @@ -262,7 +268,6 @@ rule delegate_no_frontrunning(method f) { assert other_votes_ == _other_votes, "delegate not contained"; } -// passes rule onMint() { env e; uint256 amount; @@ -274,11 +279,10 @@ rule onMint() { _mint(e, account, amount); - assert totalVotes() == totalVotesBefore, "totalVotes decreased"; - assert getPastTotalSupply(e, fromBlock) == totalSupplyBefore , "previous total supply not saved properly"; + assert totalVotes() == totalVotesBefore, "totalVotes changed"; + assert getPastTotalSupply(e, fromBlock) == totalSupplyBefore, "previous totalSupply not saved properly"; } -// passes rule onBurn() { env e; uint256 amount; @@ -290,6 +294,6 @@ rule onBurn() { _burn(e, account, amount); - assert totalVotes() == totalVotesBefore, "totalVotes decreased"; - assert getPastTotalSupply(e, fromBlock) == totalSupplyBefore , "previous total supply not saved properly"; + assert totalVotes() == totalVotesBefore, "totalVotes changed"; + assert getPastTotalSupply(e, fromBlock) == totalSupplyBefore, "previous totalSupply not saved properly"; } diff --git a/certora/specs/ERC20Wrapper.spec b/certora/specs/ERC20Wrapper.spec index b052e3c87..3d9bba667 100644 --- a/certora/specs/ERC20Wrapper.spec +++ b/certora/specs/ERC20Wrapper.spec @@ -56,6 +56,11 @@ invariant underTotalAndContractBalanceOfCorrelation(env e) require balanceOf(account) >= amount; requireInvariant totalSupplyIsSumOfBalances; } + preserved depositFor(address account, uint256 amount) with (env e3){ + require totalSupply() + amount <= underlyingBalanceOf(currentContract); + require underlyingBalanceOf(currentContract) + amount < max_uint256; + require underlying() != currentContract; + } } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/certora/specs/GovernorBase.spec b/certora/specs/GovernorBase.spec index c0fce61b2..def58708c 100644 --- a/certora/specs/GovernorBase.spec +++ b/certora/specs/GovernorBase.spec @@ -2,8 +2,6 @@ ///////////////////// Governor.sol base definitions ////////////////////////// ////////////////////////////////////////////////////////////////////////////// -using ERC20VotesHarness as erc20votes - methods { proposalSnapshot(uint256) returns uint256 envfree // matches proposalVoteStart proposalDeadline(uint256) returns uint256 envfree // matches proposalVoteEnd diff --git a/certora/specs/GovernorPreventLateQuorum.spec b/certora/specs/GovernorPreventLateQuorum.spec index baf932e19..9e1d45dd9 100644 --- a/certora/specs/GovernorPreventLateQuorum.spec +++ b/certora/specs/GovernorPreventLateQuorum.spec @@ -1,18 +1,68 @@ import "GovernorCountingSimple.spec" +using ERC20VotesHarness as token + +/*** +## Verification of `GovernorPreventLateQuorum` + +`GovernorPreventLateQuorum` extends the Governor group of contracts to add the +feature of giving voters more time to vote in the case that a proposal reaches +quorum with less than `voteExtension` amount of time left to vote. + +### Assumptions and Simplifications + +None + +#### Harnessing +- The contract that the specification was verified against is + `GovernorPreventLateQuorumHarness`, which inherits from all of the Governor + contracts — excluding Compound variations — and implements a number of view + functions to gain access to values that are impossible/difficult to access in + CVL. It also implements all of the required functions not implemented in the + abstract contracts it inherits from. + +- `_castVote` was overridden to add an additional flag before calling the parent + version. This flag stores the `block.number` in a variable + `latestCastVoteCall` and is used as a way to check when any of variations of + `castVote` are called. + +#### Munging + +- Various variables' visibility was changed from private to internal or from + internal to public throughout the Governor contracts in order to make them + accessible in the spec. + +- Arbitrary low level calls are assumed to change nothing and thus the function + `_execute` is changed to do nothing. The tool normally havocs in this + situation, assuming all storage can change due to possible reentrancy. We + assume, however, there is no risk of reentrancy because `_execute` is a + protected call locked behind the timelocked governance vote. All other + governance functions are verified separately. +*/ + methods { + // summarized + hashProposal(address[],uint256[],bytes[],bytes32) returns (uint256) => NONDET + _hashTypedDataV4(bytes32) returns (bytes32) + + // envfree + quorumNumerator(uint256) returns uint256 quorumDenominator() returns uint256 envfree votingPeriod() returns uint256 envfree lateQuorumVoteExtension() returns uint64 envfree propose(address[], uint256[], bytes[], string) // harness + getDeprecatedQuorumNumerator() returns uint256 envfree + getQuorumNumeratorLength() returns uint256 envfree + getQuorumNumeratorLatest() returns uint256 envfree getExtendedDeadlineIsUnset(uint256) returns bool envfree getExtendedDeadlineIsStarted(uint256) returns bool envfree getExtendedDeadline(uint256) returns uint64 envfree getAgainstVotes(uint256) returns uint256 envfree getAbstainVotes(uint256) returns uint256 envfree getForVotes(uint256) returns uint256 envfree + getPastTotalSupply(uint256) returns (uint256) envfree // more robust check than f.selector == _castVote(...).selector latestCastVoteCall() returns uint256 envfree @@ -26,99 +76,141 @@ methods { } -////////////////////////////////////////////////////////////////////////////// -///////////////////////////// Helper Functions /////////////////////////////// -////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +// Helper Functions // +//////////////////////////////////////////////////////////////////////////////// function helperFunctionsWithRevertOnlyCastVote(uint256 proposalId, method f, env e) { string reason; uint8 support; uint8 v; bytes32 r; bytes32 s; bytes params; - if (f.selector == castVote(uint256, uint8).selector) { - castVote@withrevert(e, proposalId, support); - } else if (f.selector == castVoteWithReason(uint256, uint8, string).selector) { - castVoteWithReason@withrevert(e, proposalId, support, reason); - } else if (f.selector == castVoteBySig(uint256, uint8,uint8, bytes32, bytes32).selector) { + if (f.selector == castVoteBySig(uint256, uint8,uint8, bytes32, bytes32).selector) { castVoteBySig@withrevert(e, proposalId, support, v, r, s); - } else if (f.selector == castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32).selector) { - castVoteWithReasonAndParamsBySig@withrevert(e, proposalId, support, reason, params, v, r, s); - } else if (f.selector == castVoteWithReasonAndParams(uint256,uint8,string,bytes).selector) { - castVoteWithReasonAndParams@withrevert(e, proposalId, support, reason, params); } else { calldataarg args; f@withrevert(e, args); } } +/// Restricting out common reasons why rules break. We assume quorum length won't overflow (uint256) and that functions +/// called in env `e2` have a `block.number` greater than or equal `e1`'s `block.number`. +function setup(env e1, env e2) { + require getQuorumNumeratorLength() + 1 < max_uint; + require e2.block.number >= e1.block.number; +} -////////////////////////////////////////////////////////////////////////////// -//////////////////////////////// Definitions ///////////////////////////////// -////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//// #### Definitions // +//////////////////////////////////////////////////////////////////////////////// -// proposal deadline can be extended (but isn't) +/// The proposal with proposal id `pId` has a deadline which is extendable. definition deadlineExtendable(env e, uint256 pId) returns bool = getExtendedDeadlineIsUnset(pId) // deadline == 0 && !quorumReached(e, pId); -// proposal deadline has been extended +/// The proposal with proposal id `pId` has a deadline which has been extended. definition deadlineExtended(env e, uint256 pId) returns bool = getExtendedDeadlineIsStarted(pId) // deadline > 0 && quorumReached(e, pId); +/// The proposal with proposal id `pId` has not been created. definition proposalNotCreated(env e, uint256 pId) returns bool = proposalSnapshot(pId) == 0 && proposalDeadline(pId) == 0 - && getExtendedDeadlineIsUnset(pId) && getAgainstVotes(pId) == 0 && getAbstainVotes(pId) == 0 - && getForVotes(pId) == 0 - && !quorumReached(e, pId); + && getForVotes(pId) == 0; +/// Method f is a version of `castVote` whose state changing effects are covered by `castVoteBySig`. +/// @dev castVoteBySig allows anyone to cast a vote for anyone else if they can supply the signature. Specifically, +/// it covers the case where the msg.sender supplies a signature for themselves which is normally done using the normal +/// `castVote`. +definition castVoteSubset(method f) returns bool = + f.selector == castVote(uint256, uint8).selector || + f.selector == castVoteWithReason(uint256, uint8, string).selector || + f.selector == castVoteWithReasonAndParamsBySig(uint256,uint8,string,bytes,uint8,bytes32,bytes32).selector || + f.selector == castVoteWithReasonAndParams(uint256,uint8,string,bytes).selector; +//////////////////////////////////////////////////////////////////////////////// +//// ### Properties // +//////////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////////// +// Invariants // +//////////////////////////////////////////////////////////////////////////////// + +/** + * If a proposal has reached quorum then the proposal snapshot (start `block.number`) must be non-zero + */ +invariant quorumReachedEffect(env e1, uint256 pId) + quorumReached(e1, pId) && getPastTotalSupply(0) > 0 => proposalCreated(pId) // bug: 0 supply 0 votes => quorumReached + // relay havocs external contracts, changing pastTotalSupply and thus quorumReached + filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } + { + preserved with (env e2) { + setup(e1, e2); + } + } + +/** + * A created proposal must be in state `deadlineExtendable` or `deadlineExtended`. + */ +invariant proposalInOneState(env e1, uint256 pId) + getPastTotalSupply(0) > 0 => (proposalNotCreated(e1, pId) || deadlineExtendable(e1, pId) || deadlineExtended(e1, pId)) + filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } + { + preserved with (env e2) { + require proposalCreated(pId); + setup(e1, e2); + } + } +/** + * The quorum numerator is always less than or equal to the quorum denominator. + */ +invariant quorumNumerLTEDenom(env e1, uint256 blockNumber) + quorumNumerator(e1, blockNumber) <= quorumDenominator() + { + preserved with (env e2) { + setup(e1, e2); + } + } + +/** + * The deprecated quorum numerator variable `_quorumNumerator` is always 0 in a contract that is not upgraded. + */ +invariant deprecatedQuorumStateIsUninitialized() + getDeprecatedQuorumNumerator() == 0 + ////////////////////////////////////////////////////////////////////////////// -///////////////////////////////// Invariants ///////////////////////////////// +// Rules // ////////////////////////////////////////////////////////////////////////////// -/* - * I1: If a proposal has reached quorum then the proposal snapshot (start block.number) must be non-zero - * INVARIANT NOT PASSING // fails for updateQuorumNumerator and in the initial state when voting token total supply is 0 (causes quoromReached to return true) - * ADVANCED SANITY NOT RAN +/** + * `updateQuorumNumerator` can only change quorum requirements for future proposals. + * @dev In the case that the array containing past quorum numerators overflows, this rule will fail. */ -invariant quorumReachedEffect(env e, uint256 pId) - quorumReached(e, pId) => proposalCreated(pId) // bug: 0 supply 0 votes => quorumReached - // filtered { f -> f.selector != updateQuorumNumerator(uint256).selector } // * fails for this function +rule quorumReachedCantChange(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { + env e1; uint256 pId; + bool _quorumReached = quorumReached(e1, pId); -/* - * I2: A non-existant proposal must meet the definition of one. - * INVARIANT NOT PASSING // fails for updateQuorumNumerator and in the initial state when voting token total supply is 0 (causes quoromReached to return true) - * ADVANCED SANITY NOT RAN + env e2; uint256 newQuorumNumerator; + setup(e1, e2); + updateQuorumNumerator(e2, newQuorumNumerator); + + env e3; + bool quorumReached_ = quorumReached(e3, pId); + + assert _quorumReached == quorumReached_, "function changed quorumReached"; +} + +///////////////////////////// #### first set of rules //////////////////////// + +//// The rules [`deadlineChangeEffects`](#deadlineChangeEffects) and [`deadlineCantBeUnextended`](#deadlineCantBeUnextended) +//// are assumed in rule [`canExtendDeadlineOnce`](#canExtendDeadlineOnce), so we prove them first. + +/** + * If deadline increases then we are in `deadlineExtended` state and `castVote` + * was called. */ -invariant proposalNotCreatedEffects(env e, uint256 pId) - !proposalCreated(pId) => proposalNotCreated(e, pId) - // filtered { f -> f.selector != updateQuorumNumerator(uint256).selector } // * fails for this function - -/* - * I3: A created propsal must be in state deadlineExtendable or deadlineExtended. - * INVARIANT NOT PASSING // fails for updateQuorumNumerator and in the initial state when voting token total supply is 0 (causes quoromReached to return true) - * ADVANCED SANITY NOT RAN - */ -invariant proposalInOneState(env e, uint256 pId) - proposalNotCreated(e, pId) || deadlineExtendable(e, pId) || deadlineExtended(e, pId) - // filtered { f -> f.selector != updateQuorumNumerator(uint256).selector } // * fails for this function - { preserved { requireInvariant proposalNotCreatedEffects(e, pId); }} - - -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////// Rules ///////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -///////////////////////////// first set of rules ///////////////////////////// - -// R1 and R2 are assumed in R3, so we prove them first -/* - * R1: If deadline increases then we are in deadlineExtended state and castVote was called. - * RULE PASSING - * ADVANCED SANITY PASSING - */ -rule deadlineChangeEffects(method f) filtered {f -> !f.isView} { +rule deadlineChangeEffects(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { env e; calldataarg args; uint256 pId; requireInvariant quorumReachedEffect(e, pId); @@ -131,57 +223,53 @@ rule deadlineChangeEffects(method f) filtered {f -> !f.isView} { } -/* - * R2: A proposal can't leave deadlineExtended state. - * RULE PASSING* - * ADVANCED SANITY PASSING +/** + * @title Deadline can't be unextended + * @notice A proposal can't leave `deadlineExtended` state. */ -rule deadlineCantBeUnextended(method f) - filtered { - f -> !f.isView - // && f.selector != updateQuorumNumerator(uint256).selector // * fails for this function - } { - env e; calldataarg args; uint256 pId; +rule deadlineCantBeUnextended(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { + env e1; env e2; env e3; env e4; calldataarg args; uint256 pId; + setup(e1, e2); - require(deadlineExtended(e, pId)); - requireInvariant quorumReachedEffect(e, pId); + require(deadlineExtended(e1, pId)); + requireInvariant quorumReachedEffect(e1, pId); - f(e, args); + f(e2, args); - assert(deadlineExtended(e, pId)); + assert(deadlineExtended(e1, pId)); } -/* - * R3: A proposal's deadline can't change in deadlineExtended state. - * RULE PASSING - * ADVANCED SANITY PASSING +/** + * A proposal's deadline can't change in `deadlineExtended` state. */ -rule canExtendDeadlineOnce(method f) filtered {f -> !f.isView} { - env e; calldataarg args; uint256 pId; +rule canExtendDeadlineOnce(method f) filtered {f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector} { + env e1; env e2; calldataarg args; uint256 pId; - require(deadlineExtended(e, pId)); - requireInvariant quorumReachedEffect(e, pId); + require(deadlineExtended(e1, pId)); + require(proposalSnapshot(pId) > 0); + requireInvariant quorumReachedEffect(e1, pId); + setup(e1, e2); uint256 deadlineBefore = proposalDeadline(pId); - f(e, args); + f(e2, args); uint256 deadlineAfter = proposalDeadline(pId); assert(deadlineBefore == deadlineAfter, "deadline can not be extended twice"); } -//////////////////////////// second set of rules //////////////////////////// +/////////////////////// #### second set of rules //////////////////////////// -// HIGH LEVEL RULE R6: deadline can only extended if quorum reached w/ <= timeOfExtension left to vote -// I3, R4 and R5 are assumed in R6 so we prove them first +//// The main rule in this section is [the deadline can only be extended if quorum reached with <= `timeOfExtension` left to vote](#deadlineExtnededIfQuorumReached) +//// The other rules of this section are assumed in the proof, so we prove them +//// first. -/* - * R4: A change in hasVoted must be correlated with an increasing of the vote supports, i.e. casting a vote increases the total number of votes. - * RULE PASSING - * ADVANCED SANITY PASSING +/** + * A change in `hasVoted` must be correlated with an increasing of the vote + * supports, i.e. casting a vote increases the total number of votes. */ -rule hasVotedCorrelationNonzero(uint256 pId, method f, env e) filtered {f -> !f.isView} { +rule hasVotedCorrelationNonzero(uint256 pId, method f, env e) filtered {f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector} { address acc = e.msg.sender; require(getVotes(e, acc, proposalSnapshot(pId)) > 0); // assuming voter has non-zero voting power @@ -211,13 +299,11 @@ rule hasVotedCorrelationNonzero(uint256 pId, method f, env e) filtered {f -> !f. "after a vote is cast, the number of votes of at least one category must increase"; } - -/* - * R5: An against vote does not make a proposal reach quorum. - * RULE PASSING - * --ADVANCED SANITY PASSING vacuous but keeping +/** + * @title Against votes don't count + * @notice An against vote does not make a proposal reach quorum. */ -rule againstVotesDontCount(method f) filtered {f -> !f.isView} { +rule againstVotesDontCount(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { env e; calldataarg args; uint256 pId; address acc = e.msg.sender; @@ -232,63 +318,65 @@ rule againstVotesDontCount(method f) filtered {f -> !f.isView} { assert (againstBefore < againstAfter) => quorumBefore == quorumAfter, "quorum must not be reached with an against vote"; } -/* - * R6: Deadline can only be extended from a `deadlineExtendible` state with quorum being reached with <= `lateQuorumVoteExtension` time left to vote - * RULE PASSING - * ADVANCED SANITY PASSING +/** + * Deadline can only be extended from a `deadlineExtendible` state with quorum being reached with <= `lateQuorumVoteExtension` time left to vote */ -rule deadlineExtenededIfQuorumReached(method f) filtered {f -> !f.isView} { - env e; calldataarg args; uint256 pId; + // not reasonable rule since tool can arbitrarily pick a pre-state where quorum is reached +// rule deadlineExtendedIfQuorumReached(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { +// env e; calldataarg args; uint256 pId; - requireInvariant proposalInOneState(e, pId); - requireInvariant quorumReachedEffect(e, pId); - requireInvariant proposalNotCreatedEffects(e, pId); +// requireInvariant proposalInOneState(e, pId); +// requireInvariant quorumReachedEffect(e, pId); +// require proposalCreated(pId); +// require getPastTotalSupply(proposalSnapshot(pId)) >= 100; +// require quorumNumerator(e, proposalSnapshot(pId)) > 0; - bool wasDeadlineExtendable = deadlineExtendable(e, pId); - uint64 extension = lateQuorumVoteExtension(); - uint256 deadlineBefore = proposalDeadline(pId); - f(e, args); - uint256 deadlineAfter = proposalDeadline(pId); +// bool wasDeadlineExtendable = deadlineExtendable(e, pId); +// uint64 extension = lateQuorumVoteExtension(); +// uint256 deadlineBefore = proposalDeadline(pId); +// f(e, args); +// uint256 deadlineAfter = proposalDeadline(pId); - assert deadlineAfter > deadlineBefore => wasDeadlineExtendable, "deadline must have been extendable for the deadline to be extended"; - assert deadlineAfter > deadlineBefore => deadlineBefore - e.block.number <= extension, "deadline extension should not be used"; -} +// assert deadlineAfter > deadlineBefore => wasDeadlineExtendable, "deadline must have been extendable for the deadline to be extended"; +// assert deadlineAfter > deadlineBefore => deadlineBefore - e.block.number <= extension, "deadline extension should not be used"; +// } -/* - * R7: `extendedDeadlineField` is set iff `_castVote` is called and quroum is reached. - * RULE PASSING - * ADVANCED SANITY PASSING +/** + * `extendedDeadlineField` is set if and only if `_castVote` is called and quorum is reached. */ -rule extendedDeadlineValueSetIfQuorumReached(method f) filtered {f -> !f.isView} { - env e; calldataarg args; uint256 pId; + // tool picks a state where quorum is unreached but extendedDeadline is set and then casts a vote which causes quorum + // to be reached, so the rule breaks. Need to write a rule that says that if quorum is unreached, then extendedDeadline + // must be unset. +// rule extendedDeadlineValueSetIfQuorumReached(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { +// env e; calldataarg args; uint256 pId; +// setup(e, e); +// requireInvariant proposalInOneState(e, pId); +// require lateQuorumVoteExtension() + e.block.number < max_uint64; - requireInvariant proposalInOneState(e, pId); +// bool extendedBefore = deadlineExtended(e, pId); +// f(e, args); +// bool extendedAfter = deadlineExtended(e, pId); +// uint256 extDeadline = getExtendedDeadline(pId); - bool extendedBefore = deadlineExtended(e, pId); - f(e, args); - bool extendedAfter = deadlineExtended(e, pId); - uint256 extDeadline = getExtendedDeadline(pId); +// assert( +// !extendedBefore && extendedAfter +// => extDeadline == e.block.number + lateQuorumVoteExtension(), +// "extended deadline was not set" +// ); +// } - assert( - !extendedBefore && extendedAfter - => extDeadline == e.block.number + lateQuorumVoteExtension(), - "extended deadline was not set" - ); -} - -/* - * R8: Deadline can never be reduced. - * RULE PASSING - * ADVANCED SANITY PASSING +/** + * Deadline can never be reduced. */ -rule deadlineNeverReduced(method f) filtered {f -> !f.isView} { - env e; calldataarg args; uint256 pId; +rule deadlineNeverReduced(method f) filtered { f -> !f.isFallback && !f.isView && !castVoteSubset(f) && f.selector != relay(address,uint256,bytes).selector } { + env e1; env e2; calldataarg args; uint256 pId; - requireInvariant quorumReachedEffect(e, pId); - requireInvariant proposalNotCreatedEffects(e, pId); + requireInvariant quorumReachedEffect(e1, pId); + require proposalCreated(pId); + setup(e1, e2); uint256 deadlineBefore = proposalDeadline(pId); - f(e, args); + f(e2, args); uint256 deadlineAfter = proposalDeadline(pId); assert(deadlineAfter >= deadlineBefore); diff --git a/certora/specs/Initializable.spec b/certora/specs/Initializable.spec index 0adbad08c..62f30b1d2 100644 --- a/certora/specs/Initializable.spec +++ b/certora/specs/Initializable.spec @@ -1,3 +1,33 @@ +//// ## Verification of `Initializable` +//// +//// `Initializable` is a contract used to make constructors for upgradable +//// contracts. This is accomplished by applying the `initializer` modifier to any +//// function that serves as a constructor, which makes this function only +//// callable once. The secondary modifier `reinitializer` allows for upgrades +//// that should run at most once after the contract is upgraded. +//// +//// +//// ### Assumptions and Simplifications +//// We assume `initializer()` and `reinitializer(1)` are equivalent if they +//// both guarantee `_initialized` to be set to 1 after a successful call. This +//// allows us to use `reinitializer(n)` as a general version that also handles +//// the regular `initialzer` case. +//// +//// #### Harnessing +//// Two harness versions were implemented, a simple flat contract, and a +//// Multi-inheriting contract. The two versions together help us ensure there are +//// No unexpected results because of different implementations. `Initializable` can +//// Be used in many different ways but we believe these 2 cases provide good +//// Coverage for all cases. In both harnesses we use getter functions for +//// `_initialized` and `_initializing` and implement `initializer` and +//// `reinitializer` functions that use their respective modifiers. We also +//// Implement some versioned functions that are only callable in specific +//// Versions of the contract to mimic upgrading contracts. +//// +//// #### Munging +//// Variables `_initialized` and `_initializing` were changed to have internal +//// visibility to be harnessable. + methods { initialize(uint256, uint256, uint256) envfree reinitialize(uint256, uint256, uint256, uint8) envfree @@ -17,35 +47,47 @@ methods { } -////////////////////////////////////////////////////////////////////////////// -//////////////////////////////// Definitions ///////////////////////////////// -////////////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////////////// +//// #### Definitions //// +//////////////////////////////////////////////////////////////////////////////// +//// ***`isUninitialized:`*** A contract's `_initialized` variable is equal to 0. definition isUninitialized() returns bool = initialized() == 0; +//// ***`isInitialized:`*** A contract's `_initialized` variable is greater than 0. definition isInitialized() returns bool = initialized() > 0; +//// ***`isInitializedOnce:`*** A contract's `_initialized` variable is equal to 1. definition isInitializedOnce() returns bool = initialized() == 1; +//// ***`isReinitialized:`*** A contract's `_initialized` variable is greater than 1. definition isReinitialized() returns bool = initialized() > 1; +//// ***`isDisabled:`*** A contract's `_initialized` variable is equal to 255. definition isDisabled() returns bool = initialized() == 255; ////////////////////////////////////////////////////////////////////////////// -///////////////////////////////// Invariants ///////////////////////////////// +//// ### Properties /////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/// @description A contract must only ever be in an initializing state while in the middle of a transaction execution. +////////////////////////////////////////////////////////////////////////////// +// Invariants ///////////////////////////////////// +////////////////////////////////////////////////////////////////////////////// + +/// A contract must only ever be in an initializing state while in the middle +/// of a transaction execution. invariant notInitializing() !initializing() ////////////////////////////////////////////////////////////////////////////// -////////////////////////////////// Rules ///////////////////////////////////// +// Rules ///////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// -/// @description An initializeable contract with a function that inherits the initializer modifier must be initializable only once" +/// @title Only initialized once +/// @notice An initializable contract with a function that inherits the +/// initializer modifier must be initializable only once rule initOnce() { uint256 val; uint256 a; uint256 b; @@ -54,7 +96,8 @@ rule initOnce() { assert lastReverted, "contract must only be initialized once"; } -/// @description Successfully calling reinitialize() with a version value of 1 must result in _initialized being set to 1. +/// Successfully calling reinitialize() with a version value of 1 must result +/// in `_initialized` being set to 1. rule reinitializeEffects { uint256 val; uint256 a; uint256 b; @@ -63,9 +106,10 @@ rule reinitializeEffects { assert isInitializedOnce(), "reinitialize(1) must set _initialized to 1"; } -/// @description Successfully calling initalize() must result in _initialized being set to 1. -/// @note We assume initialize() and reinitialize(1) are equivalent if this rule and the above rule, reinitalizeEffects, both pass. -rule initalizeEffects { +/// Successfully calling `initialize()` must result in `_initialized` being set to 1. +/// @dev We assume `initialize()` and `reinitialize(1)` are equivalent if this rule +/// and the [above rule][#reinitializeEffects] both pass. +rule initializeEffects { uint256 val; uint256 a; uint256 b; initialize(val, a, b); @@ -73,7 +117,7 @@ rule initalizeEffects { assert isInitializedOnce(), "initialize() must set _initialized to 1"; } -/// @description A disabled initializable contract must always stay disabled. +/// A disabled initializable contract must always stay disabled. rule disabledStaysDisabled(method f) { env e; calldataarg args; @@ -84,7 +128,7 @@ rule disabledStaysDisabled(method f) { assert disabledBefore => disabledAfter, "a disabled initializer must stay disabled"; } -/// @description The variable _initialized must not decrease. +/// The variable `_initialized` must not decrease. rule increasingInitialized(method f) { env e; calldataarg args; @@ -94,7 +138,9 @@ rule increasingInitialized(method f) { assert initBefore <= initAfter, "_initialized must only increase"; } -/// @description If reinitialize(...) was called successfuly, then the variable _initialized must increases. +/// If `reinitialize(...)` was called successfully, then the variable +/// `_initialized` must increase. +/// @title Reinitialize increases `init` rule reinitializeIncreasesInit { uint256 val; uint8 n; uint256 a; uint256 b; @@ -105,7 +151,9 @@ rule reinitializeIncreasesInit { assert initAfter > initBefore, "calling reinitialize must increase _initialized"; } -/// @description Reinitialize(n) must be callable if the contract is not in an _initializing state and n is greater than _initialized and less than 255 +/// `reinitialize(n)` must be callable if the contract is not in an +/// `_initializing` state and `n` is greater than `_initialized` and less than +/// 255 rule reinitializeLiveness { uint256 val; uint8 n; uint256 a; uint256 b; @@ -116,7 +164,8 @@ rule reinitializeLiveness { assert n > initVal => !lastReverted, "reinitialize(n) call must succeed if n was greater than _initialized"; } -/// @description If reinitialize(n) was called successfully then n was greater than _initialized. +/// If `reinitialize(n)` was called successfully then `n` was greater than +/// `_initialized`. rule reinitializeRule { uint256 val; uint8 n; uint256 a; uint256 b; @@ -126,7 +175,9 @@ rule reinitializeRule { assert n > initBefore; } -/// @description Functions implemented in the parent contract that require _initialized to be a certain value are only callable when it is that value. +/// Functions implemented in the parent contract that require `_initialized` to +/// be a certain value are only callable when it is that value. +/// @title Reinitialize version check parent rule reinitVersionCheckParent { uint8 n; @@ -134,7 +185,9 @@ rule reinitVersionCheckParent { assert initialized() == n, "parent contract's version n functions must only be callable in version n"; } -/// @description Functions implemented in the child contract that require _initialized to be a certain value are only callable when it is that value. +/// Functions implemented in the child contract that require `_initialized` to +/// be a certain value are only callable when it is that value. +/// @title Reinitialize version check child rule reinitVersionCheckChild { uint8 n; @@ -142,7 +195,9 @@ rule reinitVersionCheckChild { assert initialized() == n, "child contract's version n functions must only be callable in version n"; } -/// @description Functions implemented in the grandchild contract that require _initialized to be a certain value are only callable when it is that value. +/// Functions implemented in the grandchild contract that require `_initialized` +/// to be a certain value are only callable when it is that value. +/// @title Reinitialize version check grandchild rule reinitVersionCheckGrandchild { uint8 n; @@ -150,10 +205,11 @@ rule reinitVersionCheckGrandchild { assert initialized() == n, "gransdchild contract's version n functions must only be callable in version n"; } -// @description Calling parent initalizer function must initialize all child contracts. +/// Calling parent initializer function must initialize all child contracts. rule inheritanceCheck { uint256 val; uint8 n; uint256 a; uint256 b; reinitialize(val, a, b, n); assert val() == val && a() == a && b() == b, "all child contract values must be initialized"; } + diff --git a/certora/specs/RulesInProgress.spec b/certora/specs/RulesInProgress.spec index 18a79d619..877b437fc 100644 --- a/certora/specs/RulesInProgress.spec +++ b/certora/specs/RulesInProgress.spec @@ -140,15 +140,15 @@ rule possibleTotalVotes(uint256 pId, uint8 sup, env e, method f) { -/////////////////// 2nd iteration with OZ ////////////////////////// +/////////////////// 2nd iteration with OZ ////////////////////////// -function executionsCall(method f, env e, address target, uint256 value, bytes data, - bytes32 predecessor, bytes32 salt, uint256 delay, - address[] targets, uint256[] values, bytes[] datas) { +function executionsCall(method f, env e, address target, uint256 value, bytes data, + bytes32 predecessor, bytes32 salt, uint256 delay, + address[] targets, uint256[] values, bytes[] calldatas) { if (f.selector == execute(address, uint256, bytes, bytes32, bytes32).selector) { execute(e, target, value, data, predecessor, salt); } else if (f.selector == executeBatch(address[], uint256[], bytes[], bytes32, bytes32).selector) { - executeBatch(e, targets, values, datas, predecessor, salt); + executeBatch(e, targets, values, calldatas, predecessor, salt); } else { calldataarg args; f(e, args); @@ -160,17 +160,16 @@ function executionsCall(method f, env e, address target, uint256 value, bytes da rule getTimestampOnlyChange(method f, env e){ bytes32 id; address target; uint256 value; bytes data; bytes32 predecessor; bytes32 salt; uint256 delay; - address[] targets; uint256[] values; bytes[] datas; + address[] targets; uint256[] values; bytes[] calldatas; - require (targets[0] == target && values[0] == value && datas[0] == data) - || (targets[1] == target && values[1] == value && datas[1] == data) - || (targets[2] == target && values[2] == value && datas[2] == data); + require (targets[0] == target && values[0] == value && calldatas[0] == data) + || (targets[1] == target && values[1] == value && calldatas[1] == data) + || (targets[2] == target && values[2] == value && calldatas[2] == data); hashIdCorrelation(id, target, value, data, predecessor, salt); - executionsCall(f, e, target, value, data, predecessor, salt, delay, targets, values, datas); + executionsCall(f, e, target, value, data, predecessor, salt, delay, targets, values, calldatas); - assert getTimestamp(id) == 1 => f.selector == execute(address, uint256, bytes, bytes32, bytes32).selector + assert getTimestamp(id) == 1 => f.selector == execute(address, uint256, bytes, bytes32, bytes32).selector || f.selector == executeBatch(address[], uint256[], bytes[], bytes32, bytes32).selector, "Did you find a way to break the system?"; } - diff --git a/certora/specs/erc20.spec b/certora/specs/erc20methods.spec similarity index 100% rename from certora/specs/erc20.spec rename to certora/specs/erc20methods.spec diff --git a/resource_errors.json b/resource_errors.json deleted file mode 100644 index d9bd79235..000000000 --- a/resource_errors.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "topics": [] -} \ No newline at end of file