From 61fdb082fb32ec29a7c348c95643a0c5ecb0f634 Mon Sep 17 00:00:00 2001 From: fredrikr79 Date: Wed, 22 Oct 2025 16:25:33 +0200 Subject: [PATCH] ex9: start, finish, and everything in between --- exercise9/lib.typ | 60 ++++++++ exercise9/main.pdf | Bin 0 -> 109497 bytes exercise9/main.typ | 43 ++++++ exercise9/problem1.typ | 114 +++++++++++++++ exercise9/problem2.typ | 62 ++++++++ exercise9/problem3.typ | 91 ++++++++++++ exercise9/problem4.typ | 324 +++++++++++++++++++++++++++++++++++++++++ 7 files changed, 694 insertions(+) create mode 100644 exercise9/lib.typ create mode 100644 exercise9/main.pdf create mode 100644 exercise9/main.typ create mode 100644 exercise9/problem1.typ create mode 100644 exercise9/problem2.typ create mode 100644 exercise9/problem3.typ create mode 100644 exercise9/problem4.typ diff --git a/exercise9/lib.typ b/exercise9/lib.typ new file mode 100644 index 0000000..cc5f607 --- /dev/null +++ b/exercise9/lib.typ @@ -0,0 +1,60 @@ +#let title(cont, size: 18pt) = align(center)[ + #text(size: size * 2, weight: "bold")[#underline[#cont]] +] + +// writes a butcher tableau using the minimum required amount of numbers. +#let butcher(s, nums) = { + let nums = nums.map(x => if type(x) == float or type(x) == int { + $#x$ + } else { x }) + table( + stroke: (x, y) => if x == 0 and y == s { + (right: 0.7pt + black, top: 0.7pt + black) + } else if x == 0 { + (right: 0.7pt + black) + } else if y == s { + (top: 0.7pt + black) + }, + align: (x, y) => ( + if x > 0 { center } else { left } + ), + columns: s + 1, + $0$, ..range(s).map(x => none), // first row + ..range(2, s + 1) + .map(i => { + let p(i) = calc.floor(i * i / 2 + i / 2 - 1) + ( + nums.slice(p(i - 1), p(i - 1) + i), + range(i, s + 1).map(x => none), + ).flatten() + }) + .flatten(), + none, ..nums.rev().slice(0, s).rev() // last row + ) +} + +// automatically adds aligned "if" and "otherwise" strings to a case block. +// +// example: +// ``` +// $ccases(x, x > 0, -x, x <= 0)$ +// // is the same as +// $cases(x & quad "if" space x > 0, -x & quad "if" space x <= 0$ +// +// $ccases(x, x > 0, -x)$ +// // is the same as +// $cases(x & quad "if" space x > 0, -x & quad "otherwise"$ +// ``` +#let ccases(..args) = { + let parsed = args.pos().map(x => if type(x) == content { x } else { $#x$ }) + let result_array = parsed + .windows(2) + .enumerate() + .filter(x => calc.rem-euclid(x.first(), 2) == 0) + .map(array.last) + .map(x => x.intersperse($& quad "if" space$).join()) + if calc.rem-euclid(parsed.len(), 2) != 0 { + result_array.push($#parsed.last() & quad "otherwise"$) + } + math.cases(..result_array) +}; diff --git a/exercise9/main.pdf b/exercise9/main.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cb9dabdb37874a3107cd1fad424d419162585c32 GIT binary patch literal 109497 zcmY!laBb)d7S3&>cIJB>gl5_YGvr%P~UaY<^fXI@&q0@!c`1^uAZ^vvRtqDln~$CUh} zR81}g1qB6t|Du%CB9NanV19y11eX>REfGMfCwd!&Txfj0|f&GGXnz!Lj^+x6B82!BLyP`Qv(Y< z0|NsCV+9a2F)~*$0YPI^1rRi{v{W!tFjFuwFjFvBFjp`#HBhinuuw2HFi@~muv9QL zF;y@$03lNYLj^-H0*e_b7#b-UnVTyZ8iSC9v5|tIiGraiSf`bi7HU!A)?ABH7~s+L&3xt93!BpQP6kxO)LQW)E5-n zpfJ;S%giZBEmF{T%SkLrbx8#!1CXJ`B}J);xm*=foKL{`q}GO^m~oc>^eLqYoY@BEXjUREEs{d4uga*OrHk>XD7E}?e!V1YdjMNS$fAq2Ip=)4)-WE;7P!lH zac{_>G}RlfcReE;C)`Q*y1$1%_}G)TCoA7XZ@nH6JVnB%uce@C`-kh5)lHFEZO=;1eu+NvaQ<$&g(sNjudVdb*zfaRy?Lj@$N!$) zf?in@*}IKp-EXgC_Inp$p}pgF%jT{w`#++Kx7?jqUt-p(?`)AQ8ttkjdC^zt+l&=@ zC&Pt8T}%UgOFTa)x{ji=Z7UR`gx7Yy z>ojvQ@0?~Lzj)pB$XZ92S3OszUw`@N6Yo*&p4mlp#&!|X_e^xXsuui^3VK-ixW~*; zyY|wmzG(TEsh>Ho_WnH%%D2#{gXdrilp+S2EKCgyiHiQ#$m$ZA@XGz=X=UFQ)}Gxr z|JKd9v1^yczO5?X8s)i7^{487r8hS=DqHfobUt-|6rOXuy@esKz-g5LhpOp>$8ub( zw+<-IjpRPjSRfU3s?jORE7&pWg}lruM;Wh561XY3*YJI^ z#9!9Rwk;wQIgbw|1*v6)%-qbEK*?D(t^+ z`ShyNg?o~}A4$tKy1lyl>0-lB`MahQuez&Om##cBEp6)?W?_53eFigG?jM=@q~2F; z>zX`m-xtZx)qWm%qVjF?R9p6M-(MBoJaN&zu>9*qX7))|2hF~1n)rOlMb$}*Wdg1o z%v%3WXZ8Cu^Pgf5D8&d|GydVTM%^;^OI-eh}1ja*s!ov68i+t2j)W*WchIhMbC z44 z$hm%gXB-yh-s)L)E@$?|WjC0LId^|~Rrjoo;YrvGCLWf13l8w?&Im5QzcEI5n@L2Q zkn#KUwA*z7vp2qewXSpP$>)Z`TJdU&OG*y2?Rp$(zq9*8{;@sfO||dmU3k~>|XDF|K(!uMfF}UIHdREmFoiGPM7unwr+?^F^qL8 zF+X8Hp={!$OKYAf=B>O^*1aSp<;~}+rCC?rexCkx(e1!X*`bTI&Ia#YzbgD$+H0;t zPu0Ee%;#(|@&2*Gch0&?sZZ8#ULw3-@UY7bf42i--=sC8jA|DCJk1(^D$uBE(dR1v zs~Qg;eU|1e`1VP+N9{(Et=EAQPuSSMZb;hEy<-{E+XN?R85xrrR@DXUY@LePUJGP7 z)E%xEd)bm{aeh&dFJ&@tD=oAJW9^q%TJ##%`Wxo zt*Y04wY2+}Yquz;)=g>u;G5$5ORw%b7m@pZ*X{SVpTC{|eczR}U44~^(IMsaD&A{r z7HxhYn{8Y3=g9B+Tg#t$CEmYL=j6!{`cC`{YlyDL4NlIl4$YiP4$b${2wi{uc4)_H zYw69RleNmPI4rHIznWnvsV%vq`^b!zl8B6NqQytkly!b*mvf62JD_#jGWQ zP$W{6@WuM-%uLh>cljQoc1l?`suhIFFZzd8p z|FRobl&whX*N0xd;M|v%5uP5?^>*F#(>qJVFLxfjYdfjx5r=YIwhF zV@B7F=eGsLh3y}uKS~eic-CWar2ls>!;&u=pWC{!75MUZs-*O~8*)r)lb9&d)N_lI zf778&AB=)m-Uv^rWNugd^lPAxdiefxCj++X_3GcI&jJ#3x4%I$)6zRE(yQq9KGb*eHa z4{NUA@aj1JaFO`0ol!oA<=rOjKgsHR^Y7xld!H}!ykY%}vOSY#~{ zD|6*7<6XAtsf!;lw|gJVn`@ghkHvt$^mRe->c&aOYp-d}d>U~2=GL_4$_+Qe1s~qs z@0(lxLv~_Cq5mrH*U`6^zrB5>w)@V*?&Vh&?|gUbMnvwUeIlH-KT6ExbX|;YnjY<~ zzP$2$%!%c~tFIi&$V}mXXsTEEwfu`J<6Lg5`I%oF&g{S9qh8i`#?5lx)XPWSI({ua z2uYg{FWO#8O~2F@U;+}EmF9meaf~sZWElYns_bH<9!u)^n+z&i`&Cf z*FFjLbIHGn=DL_zDVzH>y>D(f_ut+8_x^ud{C@A2XN~&nUTGca5^X=OdE3Ryb+)=- z<%g0FKb|~n*SG!hwfJe=ueH_R*YEs#XKsi{&LW+TprrPd^WSGV7aVx6d8t*8Pq8EA za?I!4E7LEnNn$Hnac^3L&@xB=jT(MYfiY`dU9>zbJ;S`C%js3`rXOF~1WpC&H(yk6 zy7}6iE8w2oEc393Q4XSpD&paD=N6XnoBD5C`ik*t_rurT-MyjG8u#D)jw|u4JpV9x zdrEfY)=eMo{|vD3UYu3GX6N*M8+Km#dST+^{^MJZzm9dXP*c7Tf6^s)I*%hnOPA=#)pQu>$(BS8a>kIHvYrxjj$7c(Z%s zOy@dfKE+gy+b3JTDy*?$`?@2k!%wY9NRzeH+9z52`lE0Kb-e{nVUc9=w^==zPwGX zTXJ=rQ;Z9a?3$?}8@8un)vm*o)B3&p?EC9= zmvgx0?_0Ef;l>$jUBzc@yYZ;@C|AwSzM8{Z=1j~tliI9jtok-8JYHLV?Pui)p~jaC z*MGlun=$d^nh^PC*QO+#RcN|%SY@J&z$xXz!&Zt@g08FXH)NT8O`#&U!}rRp2a>A{ zEw1p-n|1#MTQe8i*4cqqZ6tPuvhC(RH_7nOG=9a5M}j4lS?2o9FX{tM-(FbJX5Fe( zbuZwIbmFt+8s~XF??^3vy&{rt%2SqGQ)PHm>!$LyZi>&AUBTzt{o4ER?L#l)mpXq8 zN%FP$*d3zbryq8Qd;OB+Nu> zIR57P*6Rn)=D#ve`7z^_;^xI1XV+iwdr)G0sC#eAnf|qNrr(;qwr!KnMg3iySwEJh zUR~B|fA5}lPC;enqaRcA`7#Tvb$Kq^-^zLV{`|wwTrbt-)!&+&o*r>HW6@im&oOSt zAEccOa$}o%cTKX!={3n2p{1qgRxEZczZS~={$=~R_b)HL3D5M54>kX@B7<3A`htYl zFC7<09iRC6oz}FQj!(jSA||DVDD>VuvEW|FmnRG2_|E+LlUQmRaqrGD?S*c&EpC;W z#wQOat=^wn_U7QS$eZ?;ZeE>vQub!`ZQI1%Pd=Gm7vbvrI6J&Q<@DpfPx&fCEdzf{ zW)He3Q+p{aNNCkGNr~Hbn?6Lv6t%KnUAJ-TR3GE%+!Zc~(M#3$eE8FT_2fCG^OK)k z<(wtBuf@*RdxhM}SNklT!=Bx?n`wDmyzSk(U4o{@{c~58-Mp8wHqTW@t$6L+vyWPD zoioi2UYH?kFTYPj@75qsKBwFkd4Ar`mz}fw=lr|ke*E;ri1&wN=i6^xXnD`O{@2~ZyZvOUwXXfwzo=iE zSp0a|->|phN-KgnZ4Oo(cwM*DC(~u<)_GS62MBrl2>cu3w!Y zP+C&LUsX5#lL$&YR=k4K$FL~^~ZKkAa=Dt{;%^CVxe!-rH-x~fFZK`uk{M#iL z_FUvJr|R5L<(`+S9R7ctgh&hXd+6%DHMq7w&i=bTcmIPwp-oZmXHE zU(B8Pu=J{KcGT4*ZP|N&Cw{EG^@@F7<@aaNpI*MX6}D;n&ydVy)3@P^va_x>uIu{! z__o{Wzb~)t?yKK&P4@h?ti@;g9W{Quzi_s9-EY}votNJw*lqruBP;jpa-=oCS?q!L z7WUd7-()1(+Y~AZ#y#yku*&9P=smutBJTp~(u5W_&;7!uuYW4TG%&ePtoK6OijFUr zPMm13um3E5?ai+X_LEnu&#!oN@3XyR{0-0D;&lh!`n_1HIN$nXIscx++rNoE6n=Dm zruDwhYZrbz`ueqg%+K)Z{vU=PtWG@Qetm?yLaF?MUCYnK-{jnOz7rKv^O$1i{^(1o z(1Q8LpBoi)9(mzvQ(r9_y~jt$Y1)q$+A4k74Q-wdGDp9rZjzgCA*=2gBbq4s;q;O7 zYdWs$OnsU8OL<{@h1Z)yzZX53`pxsam;P7>~a@Wy$ z`2BunU+O=RPn_J|CvJDk+;%J%xO+&*YI(Y4*`s;>6UB9V{x!_oVDRH*C3p7{Kl!Z& z*DkG(xZ(Dxq zUHv~hTU95C`~3V{GhbZy%(tJC#~qjLezDDiTs6hAh!s&4YK zIa=8Ax&F+dp8uO=j?b9$XuA%N<bvfo zf7w29bGl);`s$DC9^X8ul&5p}Y-&YrQ9d` z2y^~hr|S04OD}vYsV(QX@2Tv%!ncnzRO5=%w14zJlxxpBQEq!&@6E|ICGv|7d^z%0 zdtFp#{?1nafBWqWuFv1osJqs3W$-Fb>j{Tnf3V$=G%x;q;pymSZ$908x&4$!{*CC* zVtZBd@9a*x5@)`@Ida0a4ez~v$IiB8$~Nqtc{N#TTJp5`%(Go{g7%v#Q#9(|V%5$gOYvke>69WZv)fTC=gob9WYRj>L)j4QzVbj+GC8@b#3WjDDdS)Ol z$c1j1IjKepMxZgvAka8;Dr_FY5@i$<;YpB2d=n)Rj=ljw&WMQ;kb0sgNsK}B0qBz? z#zx>71*Az5urh2h0J043INXyY*xX3B2@+#Nuy+(lpCB=^Fa}SMm{?jsrbbM_6C(=7 zX6BHo5mN)m)QGVucxuGh#1uR=Vr~wa7_n3^F*gLwix?Uxm{@}6MGOrUj7%*+^CE^u z3MQ5Ypm`BPV+A8~3-Hv4iGqoRC1{4k&{V<1!U!}&VrT}Qrh!b77@He|W=ISz6wD0F zK$9efmI@XYhM>6;BLf9WVSkO63d$jD5=#L^Np`(uG|rfH1L6pYOjKvO=(<_gB<3Z_OT3dR;7WMW{TU~CCO zCT122CI%2>pkQJMLLeO`MhYfI3Z{m}3MOC#n(P4ups9k9fq{aF83=*J%oR+`70iq+ z6-+EZ$QVRfDwtR*fb1{@%>yZzTbe4E8iJ6CA;=X9rbZB1V+B))e@#slK*-EQ!PE?d zOe`%?CXc|08j*xyvjmo=pd<{*ZRAWIP4UcEG8AZi|A*_mqL8IQ1>!}p9E z*-ro3w)&L8&(MbnD=ZtPLOC zHFj~k_P1{54NYo~C|6L~?0Qdd>H9rAdXFF7UHUd==hx$1nl3l@E%OkY_c8s)?Xt72 zypuP$r`;7ae&1W_`_Mn9LiBfT(e>+JZ@NzGSswU2_m`~u=ltK7HX2Iq>z(AS_Rcwe z`mMmGkMFOaigR>Gl5@LNHGg;7d;h!-hYlO3>(BmhCi!Unv*l8!`HufNzt8jGWr1@$ zpM3Tx;+@rK@q+UU%P9x%3tAHw>@(Z|IW8yJ!Ppnowx+dqr4 zlLzG6*`5DAI2aI~A^Wr0$ob!eOy_?e+9W=;#~MA+e>P>~L*_j}oh$04T=MVoux$5I znG~>AO<_e?;LIsZ#YN7wJH9&ky;ol1S=W6q!@{8?=uu#o`LVZep4DD%**sUTrzGI< zN}WBs@7k1x9uIvvdEJ`VZ^d8Meiqj=PkN7~`ZG30sTrUt*V4$s5|nh^2uyEIt>&zd z37`ACI`r!I!0__$`?0kix+`~w25tW}sWft$&i!fUJ+>8VYmNbZxi@7du>*^McSl(pA!W+hb$un6$}oX^ATWCWA@%Rp)>k-{rad)IiKEc z&#qlt_x|eYRp0m5|NkHFCZYJm>ARBHS6Q3-uu{vI=?PCWf7sOg_%d;FP4I6WrwVST zGk+!um&?qv`tj>6$41|lsw>gYp7U)j`@fHW;UVu0`-`}BZt!g~SGw}Lt@7El$?5s_ zcQSu6o=N2Y^;~#4-?`pfX0py6pAY_db8_cx|Ht)0`UfNvn_vGdDXa4bXxbvMe9}npSr%E5~q~eA_HaWtR60J zYP;Z8GGkq?bM=Gg3}^ZlL|@EZ(I+y+NpK5uuA`BZgO-$QcA&XcU*DqH7Zp{M?70@s zp3tTiz;?Hx>qOt44Eb43{0rGHGQUu&VyP9F>-PLY^##2zc@J*OzF^wLzgK?e#9;SI z*^{%s&U-0Yd--Ri>{9pUU8d&7Hs06Y%?pjcwDFF#&I^n6|2)c{b6HKkzo$6O$ac2Q zi=2NM0auSNOP}=XMvmk2PfxC;SXDkhS=iN!OFJ7NNf2nv{ z`oqd;d!8TI*OYfwTJsOXp4i$42O2y29vE)hGjXAJvbOiPJu0h8*DkRB^y=;t)$@mw zL*~A{F(a&WUGe0;W$Ak7;^zdPTp;GDmaZ)RGH1D^vVO^|<-$r%Li1jnT77@{lO3N| zExTRBo)%K7wYTow46DU*yKdI7+-xj`F{OZc?*UvABU+vEPwacV(haH=Bqur(j z{bwh0-g&$ZecK*uuk!T(oe7Rvb!@)RiA`e^1HsfQvrW%~}k+mIkqaPEXw_w+e8n{2O_aJ;a&GeML`e$D26u5(3uwC>#Y ze{cF~!z-PRN$akZwpVag8rw=rq%CcmEB^ZHu6M$v(Xx_WZc})!1+M@8^>NaH_n(ty zU!5i=u`xvZY2&$)Q?I@sTxB{}YQ+iH;wzDID-sMfqb4N@sc)a-vDB(-&xu=>^SBLU z7q|8u^mBc+yUyFemxcMG#k(DUr2fUP&E0XZrt18!GihrLw)uwz2VGkl`Q1nKdO4eH z?V=?yH%fnMpKK87W^K~?JpW!@qwe>ZZ^}JKmYNr|M7A$_AS|W#U`=AFuGu0U9*KlC z+c}aGE=QO=Igx0)?BzVx=BZ*|JvJV!I>9PtUBt`p-6nT&qVc1ac)3%ODF$H*_xYZ@ z4h;M*sP^OXBK-iZFwq5Dbe1*V5Zo5EQY=|w^XG#ZO3z;2Hi&+?%HZz@cURjRSr~MLCR0b7t_&4ZFau(_nm3QZRF);K>PB zJ($c=lu~9eel;p85Vdaf+PN;>#g=1BTCT%tdmk6w<`B{PT{capl_qXl8?#dD5r-b* z%+uj*9~nCSe@yuIbWVKF%{jrr)2^ia)7$xbX-r1(nwIsyzc=n^eZKah(Z9x5$t;#f zw(W~PQTORJv!M0);;fh1$CDoXbXM4}{-OK9S>*>0rSp^=yVEx+3LZM#cQlP*r>g%s zjvEIg7R@@RFX0h$h1pfPt@wn4m|)1YgV$efe4MkAL;Y(~Ft_*7hD(93T5rk-zkl8T z#W%I($lBoQ=jUZ_Y`T5**SGF-^X}E&u-~;`;rrEG>u>i8pIrI-n}0=ix58|bIoaHG zj9(Y|FKX*Qp%#+0%4`bLO@o4MZgO>|Z%Y_o&stWl|KefNW!JN-B}F?{luS=pa`2gp zpzNcf={iYLI+KMvYI^Mi9JWZa2&{UocQIhog5=DXn!B$rFMHOh8RgRKxZ#AS75}Bc z+GQJW9rd0g@lwrN!qfeV-fC4<-xVy$J`XI+)(R|{rZ=65OGA6csS!Y1Gcj$-LvMkex;dBUx;l%B_X<7;wq)7D{>p7X!=b)!*E;Hh zTo+r%vmd)s^)M+t_Iro_!j@YT^_jAN{aVeeye+FTVQO=hHcMcFLA?Fdi8_(%r|msp zw8^5$xorLv&TsA6^K?JTdAkT5E)KSKw^{*F2arS!iOz zq2IBLr$4NlabE7}k${LR*YfUvyqe;{cl^)FH^&zC_N%ymx*OZo%&>CX+4pSomR|G> zzCBwm>w`nS^0@$0;|O!pTr3j-Nt)ESkEknX=CziZl9X>dWdTOFqpoueScH2w#HH>#-S$?!&38r%cg?+L+RMDwf7jfjbKu2-=Gen8Qm;rTgy}5zUYa&j==zjD z0xU*e8xz&j&hGM7Rc80ojk;3Y)aSrB>xLJT*fn>Pz1tEp99As7aUrY4YAs94H4~#X zybZ;dSr&6=_%;-KmrT6sB4t*hdSZh%v$Rl?U<EDK+1~Kh{Wg_ok`Q( zS6%-2wyBsz9_O=vg-h~(u*Wm4CaPb))jO%=Pm9Ps(j>ZQZ-#Tgy?0kImvq z^CV?>qxagBRaZVW`eyk?abEh9gxAxA*(WJ#>P-ARd*74a3+(+w9A2Nz$f#fxQe0$U z_vnwP?{<9&y#}KPVXneg11!7sEVduzIwz#^{Ik%;TbULMynN4Rex8{(;l=@J^Vl8V zU+#YIl_$Nn*SCM#^+)3G_x_y5{(ipwr+xbJ|8MwK_ubjPeeL-dz8z{MQ42m?!)}gHy@Z-GA%sHA5B_tBx(Vexz@;UEgrG@s!7b?REU(ul}EPXnD`hNX|XnYLt?Oo*_)Hj(AkBBoFW^Ap$Ks;|ytH2ZNk<%N2J zxqpBMd#L|i|2qmAnOz?ah#CrBo%*9d_tWlc`z_6TZ+c~4x_U9;c)7K+w6pEZjOX5S z9S`a^`*UlY`L^%Lx0UrTIRxvLYZNh;$ zy^nJAonxfdX#9WI^?BX83vz8dtpwgHe6(HqGUMO`hMQhZ51Cd*9NfuRW)dS*c4w@yv$fE(c{+q`#;&Ui^FUzA4AE_}$vfrz`B{e9jW$$}q;n6sX|OO2evyxV(GtDehhKc)pSIT?s}Y?$MEcadbE z!f_|Vd8}Jce$;=lP$|&%ZdlAUyXB9iWJ4U-8@*gUaCRt(Dirs%en5n9lG>CRM%7`twQHv}%s8R8sv^L)*4;{pjZ@Z!W%}EI z%Af^&S0-@E+HrZ7ZoIK!lLF@%-B)=h7Oy#7DN<3fhTZh;CWj5b@@|~sY-3vVp-Nmj zu60)#r$@kw!{Hs;U%A?t3--;;V-KHcY;nT7BwMz~{gqjx!^|5#yJo2b*tV~~@S`lX zJeDhJCS!KMn)fT0xJ9k+S#hTG-dumXovSY#3Y|JNRnPL;vevzl87CLC2Of6(!l}-X zZ0XyRYi#Vs*>UOb(q$QwRx%jMs=UrEO1s*yI8r}dJyPF&b6kLflajB*UTse0gi_nM zn7PJfhuV19+0=e_){D$_;f<6Jb!PY59L{R8VGqZ$3lF(go=KlJ;k&(2^L{x`b@zSW zUit5f^ImcFn*Q|_XFfb#Z!~x9V^QNXsRzFR6x2(8sW%RU} zpFID(K7D`1vG~I(@Vco@%OHa(9y2ZDFS1nb)!~?IdT^fZ?l<;1r#lS~9F#rv zFQn9aN%{s6@2}xWhyUIRY2rWsZqA-{=?NK+HkR}A{N8@`TVGoHq`K9|*QR7k=B@~N zy6juN&l1AXVrTuYTdWXYh8vNz-?9O#WCYrpe{Z zeO5u2t>M2~j9Zy-K4acnm8r`VT*F$LLMjtPg6;D*KQpl1GkxiD{XnCSd$#3W-|*;| z`hN8jdhY7#_V+(OY`1zfTmACZk1-`?d(wXG{B+LgOk(=X`xdOX*ChM@xU>73%!*W- zlM%;HI2L{T>Rs>P?|AnN>sHUM9iHbD4n7R)HRSLpcR1@4xkR4->$R()Tlejrn&QQ| z;-vGF?NR|j+7)$zkKB0#&Q;&q*5KtP(^ag(YiO0@vV>*Hy}NA2+gKNKFLIrppyFA0 zDpp5|D`VNDC3#}2=JcwR?(^Kq8#5{PfYCY5#=u4RezRt~0 zUjNolS$}2o87GHb5r&LBoO3Glubc0E{b6pkwyNfa)cC$^WDbdffI*_FBO=T`JPaP`!Em zJCo0e*R*~vY-3itv3z0{yOCAshh^_(xb4+s`J`PbzIIF6?at|@t_(g_Q&ZRH1g7k< z74qIUA?(QA-!7Up;_pAkeBnIw@A9OxdUwzNUXper-L^yf@?C~~3eq3H{Cl(9*0G=c zRI!-m#b2-g-N{~`{<$K5xf9ch@CQGy)jOeQdlj4AsujV$m8rw$ zY+P}Q=q$y}C-#OdxSA=L6DPv4CR>eV3*#0eLx;(=`W^MmIUExY`G?2GYropLD{lI} z7av%aR{qoS4k`=G`EXI<=*O#d4{{bQp02QhW6G}NSj$a^-M#aLC){Uwz@#6$sq5?3 zx3>b9?uyZkX4c%d@>OK8)apGPIYGCUDjRQ|!p_l_$-H6V2@gZ_?RM7Ew|9B(tGg2W zp)|KTzx0o>xu2}w6yZi+&djQs^SWC*e_FrUSEDpn_O(xWXiBMp$s*r7GtNBQrT#r? zjcv_@twzna+ICijZ<+O!IaYSnj5n*EC^5>2{BGOb{d4c_U!8j`r*HakTwyiKmm791 zQgV+vjT%ldEfHC8VM^nbDLHTFEMjL0IzP3g=~jZ{<-^=<8oE+*xEw=xgv+|?4EAjB zXiMzyby0~Fnw$`>KQZWrkKCq3iJt}Xlrtn^Hd(alq%NIlzeeH8xi_Y*si~sh*W9}( zdu`*(Uh_MKtDhapdRzW;gMiS#9HZFC?dzt+wcD$l(Ar%3`|b7le^!W8`E)0EJ~6bjRskrH71W$j+P*Gg&st?)tAX_xpF*`|5W@C*~a4ePZFY`pW1& z*&AE`r|5swo?yxpJD;uID*I8y;kS)R3(_KNMeaLfG*)F9t1Xaryksc6(W-&zfNh%) zvwvpkbvDZ8IwaspIy6LD|JC56`~;)iL&Dq}`LcXOHGCzWqvi`m}(YOzS?w z`C=7Uy0<^NZ}0uZg!SVm)o1%1_u6yT-eGg(FsUvOI`M2lQzjRq%bYHU3DPM-Z<+*~ zR{47@*mC0S5e-4555XSqW&-5aXSy}sQi(cK*na6dfzyD)rrpl%DLVMrKquk!y3t9pCFpd3L5u?@i(7{U!ULtx7}WMPtyidHSzB4|XuL3MH^~s%Z)>(dq4Q*(^RO zf^Slbn&+kT(+n4dJaZEArxq+)FMqM*a#nMfMeeho>%HP`{fw+qWjB4xR3FiMB2zWA z?54bSUy;v>=TqZUwp7umVGy5n?Eu3eScVbGNf|T0;dP=2X6D_JTOksj{I={z5_?a?Csk=vi#$F(5Z1S z!)#G<%T$J?w?a3ti79PiVNzXV5op}sTcy1yPQ)OlSyXApmD1Bcti2ADuRs6pQGWR2 zjn5C;9e>yy#%q7v_+ip(ZC76PZD|ZV26^ir#5+m!$vmwnI%hHGvxRLsqpkb-$OYR1 zqIdDuipsj#U1&<(a=qk|nmJp_`qSLL{S9mn4j6elOw3{CWIfS1_eir)bm*^~@Lwh@ z8`B@I;J+z*u45L@@+$YPzPUVyU78fPUWvRRJ1N`s{nUAN~IYbt&(f(3!v+FZ^*%^|fO8pg$YMr+O5|*1ypgditb)*BZHJ zj;RmAMfZz*a(a7xy}?@M@?U%WtiOGl=CD+ta-A{fr3aSc=l|Y)ZfwW?CGm;QKUX!E zm**EfH~2E2apTen=d##}^e6FOvpk!?Xm9BFgh4-L;f2_?81vu9q$T<Z?3+V{dM{KH%FgW&EK^G0+*%Ad6*t-ov?`4;P|D}TMx6o{(e-F zHT}@mm0s@dh1rHLPlR_hI&7R|-g4;6ziM^!J>}=W`R$(|x#!>B&DZNc98)xY-)JWP zS#DLg^NXKlYzot7c?L_X*3ZdMKFb~>`l6}ymcr5|v!1-`Uy@E!PL$XRe<aQzCguN-fyUS3totPwna^IdJF%=-(B%DGoL98CAl{<24E z=c8Fxt_R&3-MFg7O!jPOd#2>FA^iHYTXi3$#oJKgC4K#FYC9{tyao>7N&V)-Q(JY){LqwYrZ||yqf&= zNo$T-qU_C$WxMXXb-mzmnlS%H<8{Rq9e24R`W<3#w%IvdIp%q_ZHmC= zP1|u-t>II|fgIr@3rbw7nH$UU6?peHZgJC&-^Q@AyFJvnuHoBE%O|3;Dh*D1RvCYo zc<77R>3gwvpDuWzf2uIEwAz8==#8+iH(t5~1hlzrd$jw?iB)WjZrK;ZKa~B^J#n^L zP-LQqS>E%ax9iJ-?xi%BT>O)@{MqXNJkMV@-(I$Q>)YEOwr}GP+m^rn`nEt>)xA+{ zKeowLMcX^}G966V!*w%r{mi*lM_shscWqUP&fvN5q|{g=n{$dO$GZ^u>l^lYU;Zub zpqP1S-^v>=UM>H7-KJpA{Ib;F+y@Q^O;q{Pu;{C<>#fxZ|MmBB$*(QfH;b{0`u`}g zxj*b^je>i!dCc3U7{B!s{_G2!eakV#OiQx)_KW-4rWY=#L>4ld$;+A_Z3%ua^FZ;- z|NSdA-M{izrIzbSwa(&_emk>}XEPGsiRw2@fw#JB56-nHyAi%~WB%-Z z@x@8Yz7~CdVVrY8TIAB1cE{qmZ+39G9#wf+rSfaT-plRNLv12|2$$+ly`pEw5W)2B zPE69`z@@UU8G`$_KI{<-4Z zt9+9_{=4@6@wpJ2vvE$3S7TFW25Z+Nz{qb-hqlb~u^relxc*6GIF z-iuOgztwSN%eQBQF~9lD^Y!Z80NW0xl|p>?vQlwKGfl`b%9%Lg5ZiT z-7l;bSbAo)>xl5SH{4ND$@P!CE7VnVW3umV2r!m?ZOI5+6OH7&)ueuyQ>3SHPxc}2M;#NiyqrJ(UFa3Y+d@IvFyq3YgLPPr1 znia~I!j+$vrr-6L_(jfBZnH?Z?%J%9bsJ7R>lWT0WLUlMN5)an7jz}{t?=fNdT2=GCdJny7e_s$hB;8^k`2TJA zzoow}^!~XZKf{01ewC#9htk=3vH$9RPdshEW#1_~#$fBHf9&5kzK>tE(D~Z*hr90o z(u&;qDt_)vM@<<=rGK(TkCq2=%xB`Q;?CR4@;LHIO6-Pz%pSYyc#AtYe}sSFRAAIU z^j-hf_c_jf&)AM^e(z-S+4jie|GjrUShCKSsR^mLSM{e_q$wil;D3+x*0<+d-0MpE zFt@3n-_G&I?&iY7TiX?{S8{%{=c)QAw#x9q<%E2(P4if4PSn<(u`M{yXz}`RhOTtu z>w4Gs(fsFEPE0pu-oSs4yX4i4ZuvHzpJC6!uAQ6rlx;_U(fSB0-T9k#t(D)rEr&hl z{4MLZ{x|Ly^jN+t-Sh6wvpo-LE|)e}ANZ^4f9$i|dFFZdt3ux=zL&greDxpQKau+s zMOrf-IzE&>H2cwgkHE~ycU14I+rJC0{r*$#EBBPkrGL(6oY}>=$b`9=%|vwHn|`N~ zZ3nLMeK@akD4@vbe_dlwv(-=Ls-%8HAD#v~5LF2a@yEeU3Ie*-^kfBYkv9uD5^jI(0y?dG<7@+#4x@pHkk zVuyn=Yi696iTQd(+d6bdS*v*S>T{c>zuU=MHu3wa4OR}9jSgi2=t-{B>U*=hs$l0~8xO0B8xpVnWHga`Zt>E1L|5DekANp!s&|6SkB@%; zUwzogm)mCdDDJ{B&It!iN+y;sdYi$P>u7zUZo+Z55Y}^P3Vpv0JZD+B+Pd|dV{C!= ztd_1-(l$vF6B2oByJt0s&1=g0Y4$-k-XXrFN|t$7m3`X9uQQwlKiK_mD>H8A-`vhG z|8<^iaml-D%IeSZ?aCh=`4ic)uVuR3g2(pGvrB(}>1q7vy!lwwr~Mu!iDjGL-R5kr zPEX!tTAsjGR9+gCUM##Tcy3OC`wW@67FSO0cRg1va7vYVc8g0^_#~o;%k_M$MM(H#1kTG&ZAfNv;|AoCwI0TuW0u6PV*5D{{fBtWZ|u8k2i;Nr-bmxLc66YiUku zk*;rINro=$SPxzBQ6u}9Y&7iAr!Rx!h3vtcN%%H1q&5VrTt8mR>t8gu0t8l@` zmw=Bd0UvGxKA;3-zo8{)`K_tB8FcL}cy+BIX!)&)v5|ri7?~MZDi|4qkfphif{_Ub z8Jj?tje@a(fr6PK z2!UeV%t*n^NWs+9Ou@_;jEpQ5%uGNClt#=<6+pKU}k2nU~URRpu}fxreJQS z07^LK<_hNK;Dl;!p$@}h;If`uVi*1|}^!bri)!bHKs z7=%FH0dY(eEDcQ+EWpUj)I!0+41_>-SePqVm@Al?StwXQkb$v+g(Vn)PUR=;C|HF;NT(xVC z<|N+vSIVx@nUL>UD@$P%ELY7ph1qU((y)}3v3*g98udDCpiS1J?XwmR3L;~fq5?5 zO{ph&Is#=I6U=Y8HXU@@D&i2JJ7Kr#)hEqa&3D#1r?9n54u7yYq1?il+pbkcC&W8r zqeV93RX$6OD+eEzu=-taTz+V#<%^ON2OXC?$jaPc{dH8ayfe7yf>M%OSF>YZO;Eur zCfSJx=GibGvTFA5T)w3bjW_QPm^0nO_!R-u^ z8>C&L40bSa{LQ@P&@shs5sze~%e#V4VawCguJUwBPSU*eQ6;8vSGH*|ZyBR*(d>I6 zGnbo(z7Lu&xbpnDYd3YiR?hsj$E!AP_Nx-Bz5M5vm>)X>kEI_V_4#XG;leDeL{FMWffem=c$ZL&)9!L%nS3%j$_x%qCq%M+7w{H3<( z!Ig&1-!6RK_UNT}!?{Zv^UPmrY*o|Uyft%X=$>EKgQTX$MY-$xu|K*jRS(-3aWDyXL<#)h0D1&CLu!tto690~8eW zv9<@DK|9f)$7)r~d0JH-Gx_@M?S}WBToH^;+S1JCzBOxZ>H2H2;(T|wv`*ZsUO$0# zr_dya8`bY69b5ziLJsKe5dFSl@!D(OTIAmRo)#z1-n0=t2@t^m!gcl0I4g0qpwyZyA zq!>So=l9W;&w`(yE^u6~bxQoZDN{J+y5KDNnje;6@mkoTY*TZ8|M5pNjsO1rn;x;V>U_cXP4kVCU+mvM^PySW>{{#U zH*W0O;?c7=zP_{f?u)JG-hY?ju|A#qHn!&Nf9vV>zu%VZnrWW{uDw zJIDRDRqi)Gd~U<`JLgVcD{Gs3eTri<8-EgS*E@gtrS)gOpM4iUKgDH@uw~OiXR#E% z{~pFQEAm$8RsJZrYY=<%gJ4dT)?aqE%Y8u%8a&IExJj9uOj!B!So48`&793b5vwD) zuKhh|%vR3#uXk@#?&-ed`?8xVJ6=z?rMO;FbMo;$CP9U6g(?|lL5myvpVd719eCz~ zp|hy7ar;c()w27lDlT?hRGzhS_m1ao?<8JYf4X|S-A?a!%5`g4oLJjXIl8J4ZfdS0&H`1zREabL;pIe)f%6nh-3wr0kK|Di|1{|Y;+#m(?gi}Vlj z&6@Y+*=xo4=sMZ&Uw587tj4|EXQtAeN%l|gUYQ&0U$go7>_?fw%a{7c+x)%pCHnG7 zp4*bUWhAo9=Cz&JefHC8K*m^mPmK??}$D0;hb00qPSE2N^$u$GLse0 z_MB>2UGTLeF)poYo!&~7t!}rO+!@X*&asHU!5@8i-|e1?R3%a2P|?V}+!q*cBs_fC zzCm^7srHr`*$W)^Z0-%+8hM;?Z`g#N7gL_>+xggM?g7=K*3u#u^B?d%dUW@k`&T*l z2z&3JiLWlGG)f6w^^{uj{^-jI78kmWXBzmM~(4j!!x!Co-Nz6z4+M}r;AMPt*bX+U9(TDOup|S z^Tcas^ejU%!qcmL+KMdyX~6j5c?YXO9$~@t%D6SVkd!LS5VK%(aIPw(+lCKh5^lyu^zqoNT6j_@KlXw@_KTr-Omx z`Ew2%wwKpmvt5%`ePB4_v#}V%uMfYKocz_feRpPF=wY5!7%see=f^DNxJy5lHL_X8 zwR!tVKFnOga#`~15vyl;2S2tKNGF~<)PBUnK~BPS-|rdg_g9xb&|5Az{X?O6oYO9g z-QPd0XOi<{n#TONef5tY7R#*zwzHWXUdDWSyQ_lUPT3~=^w{I`H?QCR;cZv!>Q!Cc zt5?NzzkL%E`?k3;aMB`gZpqvoS}ngW z$DLmLZ=Qzol$H7K_AnoR_-5VhqE-z%13#9336J^TbyzEI3jKfC@bS0Tg2z8BG~Sc` zwn9(7Z29}On@)dSH(?6%+2{(1G=_R!^_bbY*%!8`_e4Kjmo`)C<2v_a+`@{IUfx?% z3;0$Y6}_mj)KBX8j+J|oZ4U5V>zKp$yMooCk$=avNRw!#BqyJm+XBmHF$uL!J+uGQ zX;YcA*S}BVQS+Rn5$Y_oV)9EhI~UoNPRv{~OodgfeFBqZxUfW-ck%+p z!=W+TMfU$YpS|Z(kKy}|hq5hRv95pP^1tGrp=VypCBLnq8%4KWI>MPUXG%}ET5{&I zZc*bs_x3r>3V*uaV}s!n$2DHE%MS<(GfD-0Sh4tHg+}kcWXIz<-Z`h9t@zG(cA1LY zktDYBD&;>vICM&0b*@t18YHZpVXoD3=mpcqT>H0P1&rSRoBjNLfAgJwtC8o3;ew@_ z27j9FMI7ICquuuXX8k04yEol;Cnrk2pSu5D_zwQ>yKhGaMpU&-irkpH{etYV=Kubi ztXeYvC2!iYpvhvz=UT_M!{0ZY%ACLRY~zQuS1#2)t;y)hU9s}?DSbcPW*(0&FA;Ip zCDBd{EZwe?GF9%em=X~$5CBI)TpL6$OX3z2XXQ7#2AOGxh^oc7fjN-e} zkY&C$AosUd4R6hlY3I7$Dcfi;qEM=9j;QOQ`$2?cvE6!^|eGI-n-lnEz6@6{v zq_kCUcQZ3h3^@8>)gmKT-Pw#cFFbkrw13B{2Wfv7%<~oR`S>D!+14 zAAU9Eg*wL40W%-%4hVjfs8OyGv`I|qg-|SB`uL`P ziPt0-zNfFAKYjiD=_aF(hO_<~ZJcml@%*%9m7-C*Cta)B&6F?j(9j|KdWgW%?#FLu zdlxJTEf3gN?zTY9ck=X!)8encZBo{ro&5OmrFbbnm1G7NxqIzzx;$6!E}bxa{gs%$ z9nAAvla+N2xvfddIg*$6VE2>iY15uOoj#@F>28bas$Co(@}2)(He7eln6cZxi+gUjxNX_N#TOG7@8Q(-Uafm!x6stR) zbylODnol#Yh-xJ)p0D|SW=n-pLBPw|G94BDm;MwT*;ycFwSIYuk_Sh3y3U%~lzk== z^D9|X_L)4j?K)iMlO6Dn@gU=jomyI4AL}Yxn}41w$!iKaaXxUGofqh_YXN=tm*{zh8SI_1{OHw){7-HGH8!+@Z;Q6|9vDEgN6%jyidRX9tt|t52n0 z68D!lo$+fm_Y#@EBI(IZ!N`M}c9G|_!e?-QE<2c0;8%YBsTB5)>mMt!_2& zuF;)hv1wYWoCw!-g!p=I3M^Sk~txZg>;fBf~2mb(_;w=Q7T zyDq28II+rE`iWEMt=7dJQx5;=j!|lPz!Av%$%N&X-o$A-AEuuY+2Rw>U&EyE@Shu7+SC*!RVE0gA3L19dq1#dEn{K*hncbV3nRi=aeKsDy2sYGud*pp>`P;Ka<-DQ zuyNy|Q+xGPHsuA+N{@4xr4sN+R^UnI)|D+Tx893#yEX|Tq9<8K%bKIf~mA4DO?JX%(Z5DU0YO;;E#um0H;70l}lSng; zeg}1vA4tVrvZemtezBb)bj!tVa9rct}Yyw*Nydzb!U zpRsIDKZM+1n%P#7|MW>P=g$xyJ6EYhf3w5YoD~y<_}OeM z^!ILFCtIaZDPP0=ZPU&T!e$~C*DgGLVHY0pCtQ!Se?$3}Memf)ES>I{|3z>I$MH3* zbrUVm+{=95?NZ2N(>g!o`vjF~HPR|mFWPL={lrrjn%KkYzi;os-7}WWKNRlGJ0+0k z$ee{1;gS=cPJ9=ubZ(*lt|C2i>CWIoQ+u)-_O2IS;Qa1r#SYB}xl>&En0u}C;#Vmx zc36~F@m)my>hY_x9&6$r9Q&ZBWt-XaX5p4XCJ&9=kk#8n)!Fhwypi( zyee@n?~fAY)`PYpY~L^ZawsfF{Tgp^;T$pcxwmuG8dKAc9(mxeV5g@SKgGeW{e{G{ z$Wx1}9F;S2uiVp!y;Ry&XuVgO>7l?4SF7r%TeoEynkMLE*|*7P;fy>t4)MK31z=aKwMIe0|3$!|>}df>#dpE((6?A$#=1TjlTW zyLS3T=zL-^-=Om~)8U_+pkSF;P-5%kbB~4QG;X`HZI*WK&veH6uXcK8ll8I;n*VIw zeOIFWPIHvDLGxO>u&|7;S&~n0=Dj%j`+$z`np3-~+^+My*p@c?iogs_nfD6C{mmw> z)~P?Hv@O4U;Ec0;TJPtVTRi#iw_aYGm%lD+)mw|ccIJ1CcXHa)qspyh?}lv;?vAl2 z6r=npCa-9Pr*^sH$OYR8?C)R zquwP#74hh>6F0JEY*E1hCe0en&uX8PU8QkeeAmU zEwc;C>G~qm6g)V65}TT2V{=w)YdvaOO`SdKkimZk?Y;JFUijAxY{kI#xNGlPp1wOji8?3r)38yIiScqvfuaeK2-~M5WwRhD9U-|d1gx5SdeCvxY z@9yYrCfxp>6B_5;?NRfd?4+M&xM%gHZ7aeuoHrJpdE4^3Ro&mrG&N?)PO0@udtBT% zG}#KazuERyG`Ha_M~CRs3`UXg8)0wl#mbn^DaYA9@UJ@k+9;sH%=y~8Ns}~9#2=PD zI&@r7#$sB{P7CRe>z*xJcJzreUy92T)~Qz6``QZ>5>s3^ShHSP-ZK5e?BHWRCRg8& zKlpBY#r3Nps$QQ{yNo^sZC=22Kt?V25BujME#kEtOFQ(R8tr*~al7VfD_&hg-BZWj zeChj@wu8;{b)p>0DUR8CH;>i4U)-KzK4dj4uXhb&C{C9bwfZ8@duOQ=d-);u4ROxfJ}Gaxq~gf5!gR{3 zmpA{`_GsDZu_h@h2KlzyPVidtFr(q`y8elru8In7clJJt{-t+n2mAe)@_FSO8`$!8 z?J*Ks5VB}#m%8-FcNe#Ko^uIQ^;h0EXXTN3A2*(Py0l-Tz13#=o&!p!RIGP#YXv%} zJ%0UI_>Ifkw{s^qx!>FTMXfG}*p7S#b^V!zB z_|sDx)sxK4eJ7{YZf(*kSIqLv$=ahPdMR*e@vicQ>>X1ZW=p$t*D}98bl&0x%LtoOnp4Vw*oIa^_O5a;!afqhAj;(MC+8=P#H;rX&X523m2daASeyFl_P?%HbDu5uykRDo-(e!D)N`1* zOZnuF*=`zbJr{N)Xr65oXt3cvbm_BDaB)=ml{JEAS`Vj8=+NPok`VjwN!Xy5Byp_5ic`ifQ?W)|e+WzK?nKmzmq=jiT`XPS$6pb?zG* zPRhIU%{GwxFUK^GHG4#jg?l(Fyr_Xo!*q?e*nx1isA=dDdl5^Q4 z&es|VVJ&kxJUi0+9t84M_%KfG{lId;L*k*(NudaycU;>ezAsrT8R))%spRL?ryeuZ z0*w?8C3q^F&70Kj&{?o^RZwJOQu53!*HEWQtyLDPU8yq6xvgebB(C?UHHRn6*s54+ z{`&qGsmGiB&(<$3N|lb6J{3~2WoMB89Di;GU!#yKN8=}*H@<%4m4>jc-lEV|du*O+ z$h5Bdpw-WGJ!$oh!&jpB$3A@5YZNo{(3i=fS3gKi;pT~~X8Cz0Rr>5LzN`h6yHyRY zcXusv)sr+!;5FWs8^Q7V;Q`J2QX+1@t=e{daf&Z)ZhgNe?Rej{+0O4`3zaOrr8O1= z%xH4*w04px$o*Kn;Bc~jMilE7(XAPM?b=!&QqFCkemtBZNMdiVqFds!EjGDQ?n0hY zMkP`o<|$XX*Nd&&e{S02+?p8HjT3otnp%U{mrT2(mAq)vL$y}#!oqTetzJ^rvPYt% zDvTMQYjRD9_`H{SrDVkEIlWJ{i#}TD>?{gj8KONUP$B$6n~3l9^QuaZe3oBOeS0)~ z-NsE_ACIY>+3g#?b5^{}u_MbeFC|?rvJSpFr7PBGlTxCJK}1wr*LFp`hAhbR$5({hu@+SNZbes_)$s!|(my z(bal(_YK_?)B6)I%Z9H%t*dJr^!M@aX|t=o+df|`cQq_kOe*DgCeP`Oz28r7TM@&j zB5>j>b9+{|LI@!O9=gocPx71#rZ|=6t_feZ?a(8g^%(%?*-|Bd^8^gVLR>8w)3ReiWN`1Fnp8h(#YtgPqJ^l*mBO==W;dw9NXX+maNQGKFv%$dzfNt|1w&#FTXzP z(M6H4TDiG`^JGJwh}1V|d7RFTX$qV%>7(}6HjGI+m`s3yXwW)Gw&6DaaKG*eDm^Z zeZSXnb9&}j-aWW|+qM4%N$*sJ7?_O{5-#gJdb1<>{-&4Nd>7AsKRY4%hvZhf_doaS zzVUP=;{o3%&vzIdmHhc~=9YchW&c?poOx2Gv`H$}E$*x_!;a!D`)rnQ3SPOPp}u(U zGl{EJp zzWQ~+Yq&$x_TP0k)y=ZKwK(%0!wIo(H{Nfly#M@b?y`te)9>4JKbm#_?2?K7yP5SP zf4@whvuVMD;!|%$Z7Z(d6&3%mZuTBoLD!IFemn_9leB_^S0+qRs(o+8Curbp6l^D~ z+I=pVCres!{nYD@vZ3>;lB%}MI`_(L2ji;J4T2xnD6ja;ao?K%yp~ejp$|n$>n?*S+y|rA57(J%8tBC(VMT|D10# z@*TYSby-CZ<23i>?kTMzJB~&N)<V#p>f^97d713jmyL~=q{B{4e`})6IKWAHf z4Nmlu5nm*9DaNt5$tp&7;a|@St1@RBg-ucFUcR&GnLy^E5Mjnd0nOHq|LG=bL|=zUCda=*Nlq zU6PTNCEQ;WY?>E$bp~>OkXG&u5=-UEexjfnsByFVVe5m)!l<=2?SjWoh$_r9X3>Mss~l!1 zneMqg$vx%&+22nRC54x9*8kV*F%dZ=aNX#t{aWWjeQL4gj7rT_il;*i>w1>N9vTtkAPMUH@t0%oePRR16fK_9kyNver69(E` z!4D@j&ORl*D$cdZ$}n)|(skFh7#yd$IJdNYGcmV#wPTVfckQ1tP2=9N#BjFIzU-V>%lqqfY(gD$=P&U(kT&K0Nk!gOGTm=8dVW*{ z?Q=JldYk<3?>nwO_T8-VCENxtWIi}PUvM_?PoI(FCpNtYkvmR&NS6w^xAd0#8~ZK% zGaY~5aPK*huVB|R|1f`w*h!O;68#B(cmDM+iriij!fSgZe_=&OQv3L*I9Nu zrp;?o!eY1j`91qDZ|t8Oy5;a?wzU_OT4=ZwnuX%o#>I!R%NtYF^o6ejNF#nu!WbKJhzmxNi-sfL!uxRmuG=E%{FE9?G7|LxuQar4o; zRp-U-eN~%f<0$ob@sw$ggiJNdRkH;A6`M_>JcU~f>&T4joS3=CgPd{1|((z~A{$I!4C)E5spOf$>v*ARu;G3)d zmFA@mU;B=`T(WHZW4rEw>0{5cYm#Rie?LFFL9DppTfExey@z>!6g&5xbU$XgCi-su z!@K44ZB#vLTZ&6ReSZJ3!yx3ap}&%{e*TZEo2E~?Tt zb-1sq_PQWxq``c%;N7piH}4s)p1$Ds5`MP60|#P_TIOty*_p^BxpNj**_}ec(5hz= z^R6F%wfgWs{TrRve{>ZrD~n&AZm#f0Q_SY*{f7so-w7lKds_&kyzT!G*5|hP5=S4S zSzqM>7gqBV&a;*^-tp>6@bb>u+<$?)vh&D|Nj!%0{UerTA9$FR!P#Z-D35nnyZoH= z*xXcY&5Sc&QXVCD8-Lcw(Al)#=U9Gp=FWR*!c84P-*rrbOO`HL`%y@>r~l+8o8xRN zT7}iKUIn_yiGHtPj$v-%S)YE4bL+aw>Uk9X?`r!=A_8+ARrfw+C)~|Cjeb&D|`TX(C z`5&^LRt48hvTwcmH1lN1&yaZrjCWEdAK(mo{${81=f3lq6_=u>_C9*jW2BIFT{5F_ zws_a)K$kX;lPs;#JANIoYY@KBS;6}uDt(N|E`>D_J6P^PNsU|((2A+xxn0jGwS!h^eor9 zD4zdv)rPqByLJR@c(z`2qO@lHnTpc4LAj;b|1>pPOgtxvsIJ^>E%{s}zIBG)i3lOb zut|%T>3{xlbLR3-t5>FkZ=d3H`S3%tck}A@ol_G3z&8KK0h4|wcPUk6-c3f8i+?}X zjqPK$GP85I_u(U-?96Y+qiuZM%Ow6j{yx>J%}7IjXh|9F1K@AG`@sJPtF>9t9vn5t?S+eG(Yv-iDFe?e8WpK ze!u)DIrn9giVr-3gp>&ak#WKEZKe$nBpQ zk1ZxS1g(7N9QEbBRgd;O*_wv%zdL@Zz7J%bcUFDA?UqW%iKo)18(y9MnmPM!7xQHu ztv8=0%sRZgZr{4UGH(kXooc8aO*u7yRVvK=be!UU8 zft~{TYm|z>Z$%8_hW*`9ff3iwXPR95Y8iJtt=!!Hf$b&9H5R|t-7Q{K(zmZ= zzlcL@KyP$lz^#2=Sw~r#MYC6mW}dGRF9@-O@G=J zCc8bab#X`awH6L7pBamael7j+@=WBn71i7Sah~g9GwHH4ToUDJwV6*O=ip)f|J)yW zuXD~;zV&3sYujt5iVx5IFSzaL13%H$Ttf>Lu5#6_s`C%6cw(Qh(WA(yE9CU^9lRO; z8lO-5yYpWQXH{)eYqH;l!ZY(<|FrnZvT#T24^z%AQaU%Kr}VqV{`zZi^IA=U+>GqoYW&qM z-fPJ1jW@kIoj)(!&4BgYTD#r?M!n~9*7vSVy1ni|v?B9{-Ouc}!gaT%Udc`lJE*l` z`t8%Qe-3Y#x#wA(Avd*cNqtbM&@DypJ6q5;pCR* z0Vz>Avt{Ny?$pxM{1Ec#FQ&&m zzuM{8tK|;+#lPtPkNtmF*yf|r*=fms`_C>{pQyj*&kP;a-m ze#t{gwG`$54D9ujyKeT^ACdpxwf|6aq5PL{$9fLQHUCSP=51ssJ~2J~r1;Jk4A0l9 z%WZyYWLV{-_RsEv?4D@8_j^vJ*R4x&9I~F5zNF9g_r4tR>dl%>ccj&;UwK~=T=G^k)#mUT*%N%5WISIu zq+M{k?1>__8%96Qiz<{Y4M zv*nZ0uTQ)|FH|e-Y?dDKUn;e^*w`<`>_VOAr@sA5FUWhv`ZHLuPd_(p`l1O&@(FvG z=hiSQ2rvmR>i$2?Y5r;b-_L$LyM5g1GTV6>Z)y3+GMCF%4%b51?pD39js0kGR_nOj zpMOUM>VMr;a;^*yjQlC!mU1CF?wagh?|;UNc|3T-e*AZixTmbxy~upgn-lWgJco+f z|5#n<*ft_ylvN=PPuVOPfYJk(qpGxr;q!_s`SVmPK;f0^2Pk+ zF6A4AeL7h0^O(=%$yV@9vpDl4m%aUWJmcXUwddHDmV@@>A(oaywwSo(=at~v+KF`w zA=2JX`1L2y>sBm{OcZntjZ6&{j153LgDeaTDcs#@3Em7747qT{&{7Y6!HZjFPO33z z#~WyuA<~^DCfK&GI_Bl&qh3w#lbM&zr2x9QJ-I|7+StHM&(Pe!9JFW5P|wud)Lg;X z#6Zu;473N)#8S`9)Y8lx>=UPa(53E>3)dl+$+#(ix12gE*w{d>eTM|AV{%DmejY?5 zSV2ED$P>a24f0gb$S5f(D7MnqFR3gjF40RYD9{Jp3~y%#TCWegImQHZT?=|-5%P$+ zv7Whsfw`rEnSq&}xdr%Y50HmUEEG&FP4q0x%qjDRdwxhh#2+pS(V&gAK??d2kx>e8 zd(F*_^h^yc%@x3bgXSaD8xNr2L?CM5CYxHA>X{mtgRTjI`N-T@&(zY8#y&DLG}bdP z1tlv`0zmT-C6w{X>X{fDo0($slPTzGF|yO1iLn`|dPVV*kqM}NrD6$z z%}=JLmU_mZNGt+ffoTjj6C~i9nv$6azEl%b0hn5v>KTEKldv!`)U&X#v;eh@^_}zc zN>cMmib0nKg1Tkk{#9{)X;E@&G3dY)s2I2gELMmHwW$??K&O!yfGCi2flSCx7II;iy%GHu9t4$Wa)StwotKodjW>)R{r;C4FeWVN-#&F7>1d;fm<^!~qX?f=uhc7H$p?VhdwZ;t;x|MPWwem>qjyD0qB8nx`yd0yYH zTsz~e|MTaw+4t*b7hk*o>F3E$FW*`3{^7S@JAdEj?)R^bmcMEe*gLW z-tYXrT|X~xHvj(b>GfUT*YE%Hx_92|FY>j2r~do*_}T3DCGYL;T)7;dcP_7f*`HV6 z>i2yN3^LpQlo8gKLC^7eVZKZP#6 zAN%uD*4r;(U+-2|+rRg66@Bt{;;FqWY)+@&-@9j(;H&2MQF?Kufw5&jcjs*Xp11vd z&i3~i<@@*Nrd3~^xcT|*`qQuV{ub0nPdoGV>EXX`W&10t6YcY7i|1>d(EEM-^YQ9; zhjUB6e-qFBvdj4X?#^zp%GImm`Tnp+A9yeK>{0FeU1cnjz6Dg@FWdWO{rl&>3_qVf z^*^=*-%et7oQv-E&Nk?|k%;V*k`9hWBr(Y;V4Ndpm#Yj!$Jjs${G5*M$~u z%IlALwdVAn*W1oSwj1WJd@`?}qyFErs!-3>F)exd{o78v=70Z}QL!^;|MTy+_U;dT zpT7N0@b-23>vvvsZ}Z%=$Ls5B?bmBI9sACXvnG4DGj>(@@7%U9ucmb3 zt6A5yDkm+QcTcyok3Te)IBWiMiLOM@R*x`US>A%F8kJ>&Les~wZN-)VlmrJmsxnm?a2A zcWW2yxHb8a*2*Mf|5B@!Nxt(}>MMul*j*CJZ>q})-Mr4tc;%zClP6Vgd7Tx}aGZGW z@(0f}y{`{L**kxjc?;Q0Y@2U<^oxgF-PS8?v)?y6+xU*v7WgOSJjNoP;G6!p&D^&d)fx|L)^yvuduebMN)jJ{I|~U1R&# zCztOnyVJ0>{oZ$miKt*EOL@NzcZ6{1%~aZ(?a@_wBJ`J!kS^E3e+vy~PJP#;6r6lXZIa;fV=2F{X4ZIU zXN=Y+feAcj> zh}tx(!M-^{c+;&ZVyutS40^&$54bWVMp&N+I9 zR5@C&TQ#wBkH)`hdESK;R~^KX1w_My8;&p)i5{(&-*>`QbuDJSU8esauOD9@QJ2%l&V_V=91KP^D=m4_ylNxcZh@%jSJIAZZ8y@M)Z*T@qKAFeooA~jtk!T}6BW>=wf&RU zk!z-BLpy_?PT1M)I5YYJLu#HxglciO_=Gcaw}xEykQ1}op6S$LRUW#?VVzRnOVi-F z)!RHv^N#**&Di55o7Yw&A~oUY#I33h#};0?tD^a=>Bgbjp2~TdL#gUkgjTw<>Hjoszfo%9B8q z67ya$jgtPKf^*cb-Sd4C^tfgJ&&waee^;=-%&-4yd*S}SSFa80f3M!YUn=q6xA6S> zuUB2S?VlC+?_0R>vHSmCEiZZghvjKl=9A6&^$A4#>KD{kGUf5#W-m2TH*B^bAyZ+v{EQYJMI_ZI4wh?*G2D@Z_D%A}Xsh)wE@OjTaX4 zKasaB$?LUfdtAH5N9mSgNx0Ajr{{SyJp$X$+|@oA$Jcc+NPo)CNNYK(?UQd?mE=9) zv`%?fu+m^|^%JK}Kf9G=cE=cNklS$CsI*s1)pSL?f-7ruxFZ8v>#nRDgt#V%ha z>=KW1wb_zq;n{ZW?sCP-7?J6o+p06}MtL_zeNTvGYi|uB{Etda@z(eEiI;yVnFGSKlvxHosHkD{AaJKc{*u-yI!@kcJ-a;r}wnJ zhwa>cYH#SfwMF?;t3g6`xl?~LU#yVLZ1epZ{G;YrZ5>C$pW3<;Upw}n=fC;9UE#?6 z=k0GkJFnB*be=!4W&e5p#G3u*`76~Q)_r4n_)S&wq#f^}T>04rSL3&QJIbf}(v*+K zv14`T?6-m8|8_jm;6Jj%)-OWw-vkbKS=mjBHXA028+UBEs&#R>3;XH?i)EbtcekmW z(emAQ-p|ZQ>uc~ICf)TrvQkZU@Nc@>WX7bmPD|Cb`in^T=}W&%6|YIne#_f=>5z>3 z?FWbDgRF#7oy`*;Z#<$`A!t!KB~EE-fsn?M*;o2xm|khk3fZkFd7HU6KyK@l6;-D_ zj`tb+hzS)JcdyOm&TCnt)vOU-86vaBMWg)4GC!5nY_GXXm6LR5`Q2Q1OzYV9o>vxj z?vX;)pV}*Ka0p8A>#p;hrheY&$O5->Jpr?p9gTA?-J^3<#u8BXr%p2j8`2 zlb^rhJ@Hv1DJON}%+CsLowq+c;dv@9I&V&5w}S&ia&|Mzd4^+}AKN$jy4Ea-RN`A~rx`cL zQeUNT+lTiX58EB>=GC0j*xj|7CAFnnHC#xwS$uW+GhQ+MZGC=HoN;qryfJ^c=!aBi z=b@tyPduuBkmUY5gfC`}tmNUN-BOw_cm&p3UX(Pd*ciSJpTC5EJt(%q7!8IvgKJXl~I`ys9ed-ZUam53lpW2CN znNJP>@aGEO%+oq$ELzX|0(WjWyv->_S7K_kV~kSByf(k>7cB&gB(0|T9Y|10UAFev zGX;-R8)QxSwzy1^)b#$QZ0s;+VzhMB3NcOXnM;@4X%d~-x*)q$eDS7f7u8)-w{ki^ zy|MN32`iTcMlur`PuU6dm+LC^p9_ebdDUV0OjfPiB_%NlJ1(i6(mEZIwbkg=H0>i5 zQw~ImC9XSX7CgnFNF;J<=RE6M7DJFGyfGze+=+kSFyf`^-7c5!aYF zB#RSWXJl+ND0zCv!-YTc=7nSJ6Q)KhD(m%dFwgy`6}nUA@7$B8Qa8p{B+c(Sp*ti-3>bWF*!y!BM_n#PEoGVZ-fs#cqhwDHa5P^ugzW;?FGSsX=xpHZ*&h)pY5(cApW!u~j;XV!UFGa==WbkBwBppW6!XN6Q@SxF zJX6(g`-!Qw+?jE^Oji1~pjNxpq?^}vNO^RzJQDh8XvM2!rX^kyJ!uN}<=0NZ>-H+H zjjlMbeP?X%srj~__$HnSX8qe^_{D#V+tC@1zC3(>_qP0=-ydJr@Ar@2d;8_fyW#)u&U|V9>!tLs-l_Kd3UdFt@6Ebhw!y z-oD`Esbrad?6Ebk^3}`j{D1B*`<&VLpV|DO4cEeFQZn_w*CfocH+cHzYi8rq^nRYR zdqO_S&dA!l@7A>BBNp6?BMR-@cH3WgI>+HrsrteBM|Rzry6;Vm`qhfxrUprEA|Xn_ z2`#x|OXjpKC_5#2dZM1+)0=y?u~gRRUzSx)^Z^jo%K%l5}}OlG;X8dQZe zyG5pa`+S1G+%xiqLWJ`|1+~2YZQB_qo3KWu{pa8FC?mki;7xrLzs~~G%oRJG5~RA+ zQ}(Bq|Ev>S)-pr&*qgsT%gT=ZvEpCzyUnpYok4V2Y5wueClyvrark!5|7oMvd0U~& zmT}5=;ssv*e)!&G{rsisCy(ivS4YjWKFG~nrC#}hb<>O~p8pmdn7xPVgsX;$Z1dq2 zN>=-)U6gt%IaxWp-(_2g?87Bm&rRKXf9zQ-5ZZB3Z&_XGG`1tm@%H*X?ZTHocfK{T zRTFLgUJ*2Jbz06HE_uWHKg3Io4w@7*HBh5Wig4{S{S|@zTOfr$`YdBxX8<5!a zXI_uEu(y!1ztAqpmhctLN4CD?jS8`1Jyo23SvR-g>mnzqE9catb9cYn`nP)Xp?fN_ z+c#f3y;GCR4)AwL&>N z7w~R7vi)_WZ(6(W#WqEMRh1>;3)M@aI5NA{7tONdV$-ZpS{};qDYop6XeE=%qz4K= zgY2Y&xbHlQTH(YqZ`;;`_n#I_y3y>x=Pz7+lJRHZzjqt`CbLL!sw?_3-FftecjX*U zwI2^JTYIa$HmmqOA@IdI50>k`pT1l?xz2jCX0-s5tk_Cl{?*Bx)(!dm^-Dy$7i?y} zWPGgp#F{OQs)8SQINSoKWN^w^^{_B8GxoA=yAk!6o8A4i^U^O{o^D&&d|R`^;Ivn% z^_ls0>-Eac?ueSQtVYi#GV02`(7=@$Q_rwIRJ^Xy{Ip_Yh4uU@8VOCVgmm%9~Ig7`9c|)H=RL{NQ9~YTUuUt^^-e#+5+iZ=A2dX;{l}*vI{B(7T zqhgb>dwt{IZI?Um%}A^a{XhRs*4w#%EsLu48nWcB%IdJ6-&(7ZYHhaW6@;hBWOyGarXq0!> zxvu8bgxx1ApJe&(*mtSv4%Z)1e&;S{2aeqg29wMsrOrP7>L972Bgv8U_}XLxxuw2$ z8jfUnrLT>d{M6!{n6n$>e!ls66W6CPez*LWxWcr2XRqe}&)c7>*NcBR+Ouxk?O(?? zS?XW;@G~lGlF%-5vv{)wW)t2n3jKOw)6A&a=&L)m`vTdNZ?oo3Otes|*eE;ex{m+X zDUFHdljJX1IBPr<5{>=6iRGi*yV)%ZRey%qCRTnG-@0FdZSCP>x<|L}t~tweo&V0` zSDQTaxdkR1{StOXH%6^t(=Vq7>&rO99&v17Ja2OIRMGKuDd(JTe*I}sE$_3uaBtRr zxr#}LUa@Zf+MRo5%?t4hUyAF0y5Dq&-}OC8{@SzGTD+TC-Ex*XC;04qdOcK{JNvin zDprX@O~?C_|CKaaPGJ-JzVL`E}ax%;N=d$Z&ds=2K@zE1qacyd(hdlG~jF+#! zi`Dnd>TzE^!zaT3Vqg}V^IL`|n-Cert>x$Kh5Temb@7B)k^A4U*^1}otDD;-QM0? zFRFG;>8a4$*qYBO;fnLl>$k;yT>HJ+);suq%+%;Nx4BoA9bRm-#w~Y!)=Y~hD?<70 zp6&K-n;>NIpe0%VlAW-DqSLuYZQnCmE*SK8#c}R+etPHyvsTF~j=E55!4DSGD?8kF%)R?b;H+kf+@ifgd3PGS^8ScQ^;+MXEnWRTeMM~N zop<@I*2U8-EKhkno?vm)ukLXFxp29+Vxd>OZYR36y(`|Ax{tl3%DMP&^0mN83Ew}( z?|V2+cd5kb)yw_co2Oj-rsxMpJj7k#^QxN*Q{*M2zk|=+_B>$b6;D}+31GcKDE@DGaZ*ra`uzZ zyD1|zSO0VFCf+kAE2LXh)jbv-z46-Gao@TVhL`wXdcRwHY~zM0@?TmDKVP)ce&o8Z z;gr(zw`TrRb-CJ@YyGmnwAM}O+P~rbx4e%bDVbNI<-dfqES2|3brx{<)|6cF4-&Lj~ zWC?p0yNRR5g=b7Bcka}8Xg@rC`D^BSh8V%?d$6?TLDOG|_A_Kn4V7B+;Hfy$TJs<+ z2-m=-+>Fe@>n91d=HJG6_RD$-?%N+9C}dE^eC}M&iK$NyaquZOrrg~A((;0wsn8+a zhZ|dde0RBadzF^*CZ+keJv>fqy8Z36>9-$BpLU+SwBEe$--&xO=XlSvtFig>`N1>( zJ0Xi0vx8>_8O~TU*M8rB!?yjkzh3WO&TlXK=F8>w=ZF8!zw_kNmwzumw0~c|^YbFU z9{;+k{~tg6ea)V&`?qZQ`~q`JYuW$bUw*0o_r>^*Z@z&POS-Y&-kH~u^82joeq~x7 zKKk{~)%}lNroURtRc83S^5gg8yE*l;9~RAj#`192(^m}dY-D!uX1scuVDIyOzxAJw zwio3jZtV{0={@OqxHP4D<+R^A^6dg61p%@gYV+&c3Uuf5y_mnVHLExYfvO;%}0 zYAV0B7HXue^< z>q{9PI{n)|=biQI7y19RHS3-Cy-nv%+PPbEQ`N?~rK(Qbjybo;L`i*N%k9vf_dRgm z$*8k)_uPJ^#?AIFqr&CVjg~$|lQ~Nts%USBPt+)>J$ZaTe(e?ZtE=bR$K3pRGoXF#u0p=#-SfW{TA@zYm_ar8j!^&f)jJQgJk9o^Wi*n(2NSmnI%G zoNRP`LjKBgD`%du>=E$gP;b9j&UN4BP2`QGFW*GF@T459@woA(=zN^%f{z#5L?U({ z_3KQy@ccl;F7K?b&{)VxE_t%49{O$CW}m zT_&dVDQ;#wFi+jH)Ogx~mVakC=SstxKmyUEwwLZ+;7wWZJt=S78WYo-MMOU902}dt9@Vf#UkT zXS<)Rn!7t|)8*WjEqwkNk4!fl&XpYAXo8@G4R^w+?eX7tV-pukZ zmBm+2bRI8yv)Yg6#0?cQ$0TN3_Y?doT_I{k*ZWx3K4MyP>pWw;iu-PUb=KfD`EB>P z114!Ml|21hxQnayLEl0C@1>a;$L&8Y-h5J(FXqzhJ3as0xJ*wbWbivB?ta|&ccyHt zOfiq*pUovtYzkc64~A-0HCa#RRpQBExX0k8Dk*C<`9Su|7Y352?p7aOUzKoDDsbDA z?V0EP&r~#0{%~dm+iZWk3k#CfIbI4cOgidnx;uGc&0_OkZ@ca@^1S^c`a@S}$CAiH z+a9;x7Or@1sI9x0*=w7Z+=RX?@2{&|L{-1kIZUfjatY3sk3FH5C^KPc$ioj73f`8p zE^TMce;%(>*VM9ax6{h=LY|=q)gwx^p8hwhaoWd|lNgl$G5;n0;dU@n*rE1h38Ln;%j_WJ3Ce(5T@?H$t{BUBU3rmL@YvP_Y zvs`XZXl9x7A(-RA>DK$Ip9;krgI%=hrXM+BvLkAT_m=j%;%SYJ*QVT9E4hx>O3^w{ zUw=uKWy8F49t;T|tCW;ALr;25opn&i*4)YPWU6keN4#>wJfoBoi)1Gpc+4+Z2Xs)vMYKue`$#-Q#+|axJG(B(z0)?$Qbt-K8As!y{+MY`C-W z;+B42ySq#=RV(UriViGgIWke7JD$@uBB)a!vrDma_jI1v1~YT!bPH|GpgXKOhX41x zUh|V_Mfz?P>(-U0-ZXIEx%FEip?^=-l%n1GZEGFY|NFaw!-K`31JQ}a(MfmP zrUy=qzPzfy?uqzIX8HetLJudXJ?~_?>T&$#VlB=72Cdf@^|%;+SniJDt)F6Z+i>$8 z8JC98N0#fa%#}VD`82I!N=@{mcbX|ok|#CI5662NYOv_~uDW0N_Q83lU#`zg(@Z(F zCl$W=7BF#xlH`Lub$iw`&A4hZzk846s?K+l%%?ONK3@9f^z12{rhPiHe1>DK)Plwd z4(iNXi+L|-_d6-~9$qtrNg>eRZq-tTMYfNdw6;0*q!&1u+Xc1+ep%&yG)j0;-1iHU zX0R^(B>2VIXyrB!ku%YIITRiWUtIZAaJ6sI0$c8d!p!Q+m8R#GmaeMTnYI3$t=0W~ z);C_>-Cl1QkY)0>``;)p;-WOfup#lC|U0@i+T4I$b|=+-qf;cE}o#kV9n@Ka$(`L zNYT8FFRmWu{%~BprfIdUL*V(lT$>}}Ojx!3mwgI(7PMh{NXw;|_37dQlOD>xxXEgG z{=lwJHY=~(bG9vRJQIImwbHFyj}|`_W4d`uFxKVJ-Ny}jN>3j;uI+xox#W4NVb{7< z3$7b;2OmvhJJHYb&Emr3{rh4QuHD~p`1FQb9kWiJth~fzBqEw;{V)7$vF~5C%4-*E zJttbdx3Kcv`sC4zDXFh4!j|v0+V!?VadA=3&Cd8aO}#8{6OSl4_`FgIQoQIN868z@ za_-~Tz>~T{ZCuPxE!;)#TZAYqU8CC*aBt$jDC;2QUY5VpCrZ7HS%2la$H`k(OI5DS zI;7bd(!n%!H^s7KxBNxg8IDPe06^H;A0JvToc5gwdC1$^^Ha0pHiLsqp=<(p#%C+Hzzh><^Dl&EX@?CG@ZXdm+9JJ@;l%mr|eg7=` z_c8ih_MGLDx)o-J1}i&N#H>4b{Nw(f8qIBuQtI{NgEN9&GbS5F#A|Csxz zP22RU(DGMy=AWb4ZT~j4zCvGNz^L8(wVd1vWo7TBlpj*Kb2~e$NPsQwE_f2~htfw$VYWJE+e~y-&tv$SX?nl)$_ZxpBE1y6ATfSB1 z`i<>8e=5u5^t4`n-{Sq<|M9a0?-%GoQ!8@Uf^D8*RkF2?)>fRa~yt}C2nch z)4A&g&-oY3WnSO+>P9WD*TK9>YbpjQL#t?e}f|In=$D%aWEx&>D)Q_{occC zdDhQw&0KGtKIQf{saq@NFWF|ie~)#y<@OJ0`No%u3a8I_mAn1rQpGi0TAnM;*zD%k z(ENJzTVUS)DEsi5XEQit{+j#0h|`F>`SMb0CW@xwo>ocG`@LYZ13%a;K-q zhpv6FVY}~BiQ?L_fTF9@w=f+EWBhjB{NlGi56_>|{?G0(^B)hEUK(h1BBEbJ)m|EW z`6lsmE+8!k*C2XnkiCAHIVGt@3i@t2i6yBnsmb{%sh~Y;@P(02V{-dtw)6hmw?FCD z7T@)ashw5qw~lR;Jzh9_OStvVNvGRyHFAr5Wh~_p`TMZo?rePx#oL&#k7Z0rY>{27rMEo z=Fyx>x7QS1dy?zg&+0nusO!|^2g`QsOp1c;=-(FcXSK;hW z@gJt8PU%lOoRtuHtB9$pTxtKj8Df#kbJS$*mZa9IMTT)`mPSwWRJ(g{lU;UXSkT4l zTPcxKlyf)fTxv6m4C9z-7BTJfv|qZXU)_i}yS3n9#HUj&9vjo_Pcxj_q$d2(K=$AB z+c#w&rX2drD#Y(svL}Tvue$eQBH#J5>4&}uzdZW(Xr~ANwN)t#HhunPpjP<(PJzB= zZ?$z>R`ZM*$5i)Db_v+rpM3f1gZ9l?KeD$yTL0~x_PU!>bMN{*`s35>C_d+mR^G<1 zi}UQ}apuYC9r3gDG2M13>F+6>VAgwbFINWl-Q{{6^WvsU-|=0u4No1MUb=ZdYhUu6 zk68lG{oK3kW$q=17FJp0rMtgLnS0#w`Qpo`&P)_PQqgqo*X#>>=bc|BTOD-h?43u? zvj1rEoz+;gTJZzZjJ!`zC(h=6`cHIgiehBNj`e)x1nb!ywu3dz@&B#kyl!kqJSr_V*GVsSIF-HIajwY2q(v{c88FRg zb=h(K0LO&n3p+P1$ei-1as5k?X@RFsepKMsZwTK1IMOJmz=o4?a^czEJc_OQY8zGR z6@D-_$u5}{vt{Szbmyqt&3eh9!FT&NZ0U--qm^gVB?Eb-=0hrthx2N zVpr~iCl$MVA3Uk}wba&Xo*%P?aRiB!iT>t-9kxZ}Ji7Pw_mP?KXb1Y$A zoG5HIBEn$vg}8#~P+Si`r|ydf}RBQ=;}|#XXxVIi2_O=~;$X zSNk2D`etv&az#tVBN~eG2I*7P=j_kFrenkKgj;prjwh0rZpU>yy0-u54SuZdw zmIyXZ5!acA40)V3h2ByVa{lM1GdtkMhWG`~ESK;~w_O$2*ng?g_xDJj4t_M3`}H{{J-Pj^`f8Jm61$Ul zyrK?%JI#BP=X}np-0^PgLe1+t!1*0y2Si78m|0^Gwj>Qd3Nr zzal^SVaz0kpNzj3Zdo<=b>!7wA`cfl3TX(dFX-T?_SKCuu*fLhC}LifyG^HVo`SMh z=Sic50V@ysF&XJCG1~AZ@xGF!Zt9EB?{{x|RD8L&H@9W+=XYdSEIGpv*!{qxy?W{F<5lUA3w};B-6-i+?ZEj?*X3|;jfFsW$`_rQg|$1R zmh!rVM(^^zuf3o9w)t z%-uENhTMZszb6OIj}{3#Be__!+7_75sN~jnbg%mF2NL!&$l2v|T%8-N>2iPWnRl~em5h&0ce>7X!p3~x zg{MqUx@7l>Uca@bwbP|~=WFd9ua_=%|9kTIh0mLoNFFv_XBBUCZRVl?>-a;q&ljtx zu=_u^`7iRZ_THzfK1nxg9m~THPF)vVWc8HSyfZ}EsZ}*#T9!`Lx3UvwTz!FORIfr zx2%_p5OJ{&nRqnVZj(dk;+9(ON9jH@QoY-rw8gA?vF@JdPo+-Hj^FBab_{kW+@~Fh z=UAb@WS!9G{mTCH6~@=e$Lh39emC_<{?=v;57!V4KXQKA!INzQZ!}IBvM^t8d3w`J zo5lHMQ2M*SR`qiieG)SIT=m!6@y4=}%|Xvoqh@8^xEMV>^QRtf*}SVQClnaFZ}U${$uw1M65Yj{dUsZht?H_m*Mk?S{;l%bvgFA9+TC5@WR~R)qx{n0}4dKQ+IPyH(U#%3{yHny+Vm zMB43P_0=o6do8ePlkW=2bw5AxJkvj&)YkuJ>yy)#I^0Z)Usr9qGm%eNYyFw-JAEY* z|86{2h<7OtsP8|f^ZDWakK2+8lSTj3JN})sT{Oh6*tL4$QkiL$r?vzZc5j@Ux%h{F zVeq>i)g9eM&p$m${U6lzweaxXh+8eEw)glL-92!uee(JV8BfHYmM-?Z6;{0OK`HNg zF5}b}N7wqw8Gr7H_0zJJpdXL4-4m}hA;%iUdMX4fx%r~fScEuMc@Ewx;| z=%0s;Yue%O6%V(aD*cpmluhya559(MH6OpHb3ZJTx@PY5zt_v>?EC1zG#iE$t_L@k z>N%<(a5O2lvCnexT3TrDu|aH7?)zAadS%bo+R75sp01W?^zhM8=X+2dKEZ4EgDo<9 zZ*HpFy=hbM>V0byb>m##@6DgN{?VE>TR)#Y{NH!?<($p2MOG@G%IwyuDrViE|KiiE z+bPFQd358Hb@oqDS;v*h*SI0U`RCv4Z+%JeO&vGc^^#ds8MY-I%jJ0KYwlcUb$9(T zd4rTWb3gxQWYJQK!qQK}w(FicvuS3a-Dsq(jRR}J=%*Q(857k{dm9tmA7d$4`#%1n zgOY^q$6cq&Zq{|QL~P`r7{SrWl94VyL&wo6MP-w=;y>Hte=BSAf5z>0Hv7Gy>)GP! zQ~RD4?ex2UH|#+xp(`kKkxYc$NN_B zt^IYof4_Y#JJ)?_&Zez~?~Nt>k`zDWegC@t-P*1H-p&5|T738Yz4!k9R_W(lBhggz z>GzD@?rU=Mzo}{$CpVZsQ4hA;>0>!nIeW%mCy98+>Fs=TOezDPTF#h|s`-C`m$jke z%-M^R`X=}sJG1RZLhVy~{rlgJubi__r|+0sT+g3ZN;Mmdq-Wl~>Hc``4%=hwJNarB z>g&(qc)Zb6&u88z_Rt&Y!nWV4^!`eRTBRIz@_uO_7hdq~lz!Yn?fBY{SI;@k{#*ay z5$nExJAeO@_WAnu-23|d)|#_=4@kW)Yx4c_^3SjM-Qm2;CuhV=eEqFYLv5lC`<^`> z`*Y^Ve!AE3;yhRR@ASqwo)hQXpMU@9?%ExDCS3O4Z{>3B->DYPw=b{Weq60mZV{Ny zdHkvk|Knfu8CT`td=Ts5>;?u_mXCn_x3O?&|`^B?Kg`Dp! z*v&V8jc6&dx%x?J$5r+2p0A5|E-Yj!W@cn}lAo5iDcbM-m(9@!ELVm)uZfB7zxN@x zNS2|D<^IkuVl{IODn3r&`*NyBrHW&3P^Y{4m#Fjl3mRruX!%s%n{c^u^VIy)H;uG| z`X}F)Usk;PrDd(Xedm=c4~tB8)=twmTxz&2>gi&w;QhZNj*4Wmciwce>bGDwjN3CU zEs$Az@4@2VlkLPT1TsJMZh086cfDHL)C#xGb*c+{0~(*0KW*I-_t*MV+llY%uP&Uo zeabKK*K^F{JUgQ!g-%&b|6QCEKIzUMeEZgNpoBN3;oW2pk!p+_9o9l!p z-TJ=Tb>H6b3x!7+%{CV7ym0x%`}f;7=5@}~=CJX6F1q`>=C6su?b%CyEZAHs_kY8U z9nJmQuG`)8QuWuKlfh*tFEHz&+NM*Q4ShRzU7UY{##vqr!Rd=wPEYjomc0r zT$ReMvbFf8+ok3#!JBoH4*KeZnsJpxuG{bWzENuO(d3fbLPF<7a{fO#q}JAIWL55Q za_YWbqn+z`7Hjw}IbrUlzwL$HlcQl0-)~c1ti}G+ zW_o$=w<+d{NBS0&WE|-$sJxwjyhV8ZjgO9a+&;r$|i@m#nbnj?N!Y_clFNKB(~?(<#!kAZL3ST?%i^>F5&vc6F!00 zdcwXlI~-az@#~^!wUgymoCkkAN;%+p;ex|f^9L#mPTyQsr_Q))!e0-=r5j()>CwSYmDjFdcoa~fqGhp!WzW8c`q4)iEEt7z7Ipav zs2<&?a#iDs!*zz=##ZXLm%eo>+q-40SI6;r>DO7aLLbA_qhu-``&H3-d zUHz}xN3IJ~G!>h*#&Bg}>bK0Fo4p#W_H%fy4YPAFogTLDnMA1NqM(qKceZyX$WA+K zzx)4zSN?Zr%(}Glgp&RCti>&J1H{|sm%qMO_GwM%se{Fgto~fLw>@-Texka#GkX91 z$Zz#ZkKQ`VK3cVR&HNt*dze3Wm@T|ix3YB?C-d$%hLi6luw9htzt{AuX_CIE<&0wS zhq)hi$E-WD_rJB&+3*jnU*@ze(6HyToFKX_W?^#cx(Sa>f-UlLW6z%U{r_oO*YMaWdYuSs-uVqxo&_zO}uxRklr-XY_%kA-8AltLXu6zf9Kk?fdBB z_w~lS+L!JnR+7_CpS;MgW6JPT^zD4}%S9`NCLvIm})e5BxChvKAo9oiQ%O)2W-@531#r3tu@`%z?KYd~* zKk`2@=ck1b_lAiv{qc95gts|g3odO6?F)NfeWiTwypm)6lh#f5-*u-!`RV46M^7Fr za!y@+u~5P@;DlV&d3%m2cOLAST+qhc%X5Ef>aY1(`R~@3Iz)BLp7nb+ol1AG@}4f^pv|A*H?2oDaPEmi?{}A~KiQ{OI(<*U%{f8;-KNgAILNDGzT@-N zFY{(aJ(3i%?iGG`_)6|RDQLz$j)_V_w?Qko(SsZ$8K;Ecv?W<5L}eH{V!}mJZuw{j0nM>B}d4 zNNH1I_xOLb^4WjJU_*)dSlY>`>%6ErpJ8UG06jy3==lt=7L0bXp@lhd?c^xmei>7N zz311@=y2V@E)zaAb{qfBh7*m^N9LUYy>dl*J zcgwD>4v+VZ?ytWu`0sRM%sJKk_`UaR{yIO7&#(KP{`=M2WBK>@Ro$?u^@~1rd$+y$ z{rkBuc4&2a-&?*(_ld>o_5-iap3Z;2_xty_OAjaK)!)7McgxR@d7r;0YUXxZ-COH( zl=IsS+p=AzEjL<4mRTF!&AXca{k~k@_L4u6*0OewA5P|*Z!>w4@k)dLw!b^S{*zZ);7c^;xyKHoAI|=MXRxC4zWmSE zm+dxlPg*=h{E%_)xhIo9&y47oS?r-&)q8w=ALEP0W4Cx5G~!*+`#vl1s8l;VIiUqtRu`*+n|*co;joPxC62 z=5hVw=QZ8t=qvcoqG%dNJ(nN@ z|BUDdW|MPHdMVm1mM#iK4PTNOUe8WE$@MMs#lBu?zk8W-1z~<2jz_DmK9Zfvn4dZ$ z?CP7fOv`#ta5GXp4seGLAoJ;!3--e~GNx%PT_No`~R<;%!rM%By#wj`3^l6VD=TxTH z$pXbo*I$T~$$x#nao4H^#{~UfRy%K)obpZF#_F@%AMHf~GUxYkMqS`v%c%1FN9w)$ z-)#23Udk_Py}Z=cDs)z5^VY5e*VQ^5ZCiq}&ss`aD%y03ds}_-n6A9_$@MkIt{!KI zHIsU`kwJKVfc2-Nlh1iho#1i9RB`LIPgT9*-Yfb~E$(`8byEMaPj8pbWfD6w&G_uw zqHBf|L}!VvYptD}Hu2)&-OGI^9sWBzS3FJpOFOAkIuR4EWW5QttORMwz$5eSTkd7$jR^Wi}DoZXY+mYUM~8&x?;NDAr_YH z;w@WuSu+&%o;#d-`!lP`lnaT%TmFVDe&(GhUiVbhZ^O64F}{0PG76XGOuU;iQ>Xgo zyeT1pCECqCsrBznQVTt|oECeeAI|OfL@cv%a@~;=5+c)|HQnGoGH2<|1$J08eV{#0e-(+E<=4nm$N@v7h{NH=sfjL+@MXa!~@AvO>Yf|*{Tsf}4 zT)&@5sYS){LgI$xmW0neAKPSAL~MWQR36aFcy8g=o6yRcxiP6lXxCxG9+_nxxwlQi zmz;|@viQiu?1H9m0&4L&DH9ieIrK(2;_I!V9v!zs4G*)`^)qEQ*33P=VwzyC@ut!S zqZzsJzw28yBNz{y_!u1JdZ47Iry$Ua=lRUT6K##$`j7g_r9V=>Gx5U?Q4gOP&9zbv zEQL*R1}|dnEI-X6G&dk`-3tT8TRkz8pMMseds9PX{!w%J3(9;fODp&sE@Jx z%feZX%u6o_oV`-+^GM+Ag6(RB9ce;Vi*lCF^h)tcoApp=_4fXYJ=dUFMnaL#%j3o2&?AjHJ40sQ=ynEeJ?Z|P# zM;u+dYZa$P&=8xMbI=_d?Ga zJ2)g&58cQw>qu62bGjj${{Vei1x+CT7m#@?9kA3KGm;YB?^ZD~Zx%#@#|2{mu zUbCd8=HIsu$DgO)d$};Cr<5^%kM*7(cfGUUhR?4pule`n!}90qVrGSBLwq!k=XjMF zZxavS)^&yb@!dJ!W_o!aW#QVWR=@F1U@1qsZ`n#a&VS0Ks?!x$E;3@7da(NN&6PZX zsSSQX3at;fddb~n5zqP*zw*jS$?2yLzttV^(1@5^BX@z@HG4+V_L%`Xd(E62nq~f+NaH%w zRVt`DwfW>Mr<(q`2F;?sUN}$WE?xR&fp@4C?tox3)ISmfv{%LF2Ut4gW7(P@bLRZC|nGg!=~N#GSH}XDG7Y zHc1dX!dcY0&(2?%Gsd8A)2WLNOcq&b>n!EW8<+zgui53mZSi12*S4i>1qV`ZtjSry zC?~n?*`pI}UPkw-rY>fcOUmVP=dWl8-LUg?(7G#!mmShOl=|c_OINa zFQoaTF0fdmKuY!dt9i+0*LK}mS?w3O?)SO2d3p`aYaE{GANcsOVR7w8fs!Lhzb7(W zYtC6H%{j?6V1m0D%Nq~XK7~frBbz_!sVHpd^7}R6fs<_?OV3enDMuz1)eaT62@Dy| z_j(l?TV!4SdN9~O_Ilyg#9{c;sEwt-=V0LBFnk;exV z8BH?QA! z)cIfY|LUgy|0*j!%Fg@#_@MlLONBPaO6JPl$wr+G$Ag_-1U*{Z+|REnCtqh}Gh0%{ ztT63hsm(@{E@h1thxMhEEccSCKHN!3oPYdutT&c<8g+`#ZuazCKyk7ti%4JHh#<3eNNI&IiKlS=+s}naC=~-S{ z$RAkFbxX493-=Y}oAC~Th39^6w`FxctRtDazl~E%?PJ^bl`|GRp0ROqpzLIq4-<>F zPhzcn_`PWRG|sGZCpCH2F)selvPSR2&3!UPF%v`$`Cju(WBT)8Vsz%j(;ki)(dnfP zPj^P&@ewG$wB6MBr?kK(_XyFAOkVqfvZGri!;U-)m?Sl6mFc6oiow#0)h>ljoTYpH zN`2;$l4Cm$h<;ssbeWfEUYg_Yj@fB8za{UN|IRp(;OJSn_mR2r{!KAldP0ldn^mY^ zv~q8C)X%dx`FU>tUU8Q5Vz>LgC(Lr5YW~}1?!JoI-=}ouDxUK(-MP-UJw|)V<*(6~ z?6WQ$KH74`^so7<>HFC%>KJaHGc6P3LA#biF!XaMc`lodD)#R0RMW>HHesuNrzu!L5yHbh_ zIC_I$hzoSRJyBG`7wg7a8ncP(`1M{HuD#n^IMj1w-+fi^OS^-_of~i7 zUS8}gdGz$EiV%zc-<(S?Jv+Sq)1RDTQU1Qum*uA|k5%Z3eOXoJYvuTwtukZ#!ClEw z_vY3v4(czrl6Yt5?&ooBy;MNolQ6c0#mDA7zrEup&${saGwym#`89Le^JU+n%F;6O z{jU|?bGmV7pTvusTy}G97ft$c=1o-pqE~Cy|NeS~k#%dy;bU>~&&=}|^8U?S)hAW$ zE4}SyXz$UZ_wx3apPp+OB=hy{p%XXUeFFO%wbf1Rf4#h>Z0ov)uiyUSpRz*rpxGO| ztwqltXL|M3io56T&C5b(^0xbI?4QPSFaOempN_{*9bLZD;@-V&VpnF{>D`Rg-KKjl zcb!k(;ZLsx(k89t5wuCY@#(qTBiU$NNy_2$#IYM;5LP;ZTg^ zWZwNzEcTMn?_@juMnjGr#xI<=abzkLzvrt6v~V?AuJfV7{Ka0!z-i|qB7WzUI(p2o zHJ@2x*f6D`R4aJ#(!9X;yq7vdBcvFOJwtbHJmphkuA{d>xBr;q2BS)Gzn8a!x|SZ8 zSiJD|s$>-j={o3W|#ab&r-}#NA>%x}ZaVb{$K2#TypN}Vr### znQ>+Df|Prk8AV#W__n1pYgjL=pT4rW#Oub=-a6IV%L=V)7yYuL-i}`_`RjJJMZITv$@Od5 zW{(7B{@up)v;8jbqHH&wsSfi#3%!p2x=dz?t?!c)9A9(h+P@C<*}2b1f8(OMqNR4G zYXq|ms;*6MzkDUqexG$pzEZ5+Kkm6N-M(&+@V|WV`HkQ0cPEQKJiTJ8kZ5i(_br|5 z2MUU3uVwT^D*Nba#Dzcc|E4qfyt96JwOIUY%1*T_6 zNTev}>a;F2JjLoG-m*?2&Ri5O?x zdS+}OzZ1Fq z_B^;FZPj4@LFi(r_cmow4JWs)rhR<@uJ$_q~SN9<i>0KJ*D-u&5x57F(=ulUgxkhYL>z06|(&X9s>lZi#Ik~=I?zbr_(lvzK~{I z_$6Xf_>0ojQ?Dqnt$QK8U9@+0LsZt+FQ*L}XG<+~O`rC?H0YgO*XN|JtJkE0Cpa4I zX)N|mzEU>ddgGDm?5w-eR-8h6-`?j+vaMKS`uB3%{VA4Pb&qrMx6aVJCz%{QZ@X|= za?bJ3Q?E!^pGp%m{Ptybt$dX1lVaHw7jJ(GRLqx}cEUQMb@5fHsVlFnS?AEZV)7GT zgWS%e8j03R)Mmb$vMj6f?@Q%N+@23#yYA0-xojlzKIGumxXqIyOs~kSms)7z_q=(R z!{f7CRK5nZE*9iYpSCZ{_g+SXH`lZ7P4oZGESG%ef6mipiuj)0mbQ-q`JS-9nf$Oi zv&wsEwDAu8Py3eMH`%dNTMT;*h0uHCz2|AF4zrL_qMzv_1G5Pr6Ff82$~ z_YVEkKFj-p(>Fwf-MS&}-a!>FWhcJN*LF{|KH1_R$@orZ_p;vw*6KgM&p4L2+k@{( zjeefDc|)^w6Z_BaY+Y>{>!Y^IHhJi++&szf?(cmQW*3)*IA>NBXY76CW_ab+3Zs&% zPRv;n?k}}@MV)4D-t@#zw#0WI^Hl9m$Jh3lZY-*i4S&d;95nB4@ZE1l{s!v;oR)bg zKCkQbs=wlP?zUEJk;)I#`P)rCmHb-V!=YZ15^&Y_Z*#%k_dKR;=fjy_eg1i+s_9?R zlF#Rl&H3>2;M$*8w@-iTV=rI!{9^v=U%ac-GEp%h$1=k-*X&H8fB#P(btmsoEa}pK%Q8ND@DO z4bp;e4Rk%ektuNp6+ex>ou{&0uy+3X7k3_LG-QT-B={-5J zaZ1WwhY9swGfi1?%4Qu8>%dt(o33#`iW5l>>&#KCQ|FRitW>s1 z_+QwRt%0nMXV0F)d-&9Q-^Y6%38)|L3U~g$Q8rxSihJwHw;L8V1$tUr=d8>qIFWWG zNFoX(wQ##rgUF*7S`6Q`O@o z9>jmLGSvLEbmy=3Q&HMU@jDJom;GzupBC#Vw*Sn3AOH01l>CIrAqx&9M<**dR-XtA zV6!U}n%;PL-jr<%MgA`_+I{}c!Qf>v^5!R=Y~~bO^!JBp$G5M?<7KuS68e95cKDCq zcOR}^Z+Q21^ISXoIbTv8<}Gh$X0KTwtUte|zG81E;~RmGe=Yi(UzGOT`|e@hVoRkiHb>_mv3K~uurU* zSEx@Y!L3T@lF!t}o9$-{XRYr1QnKyDue;xNZ}^=T_;ikdU=FXlafEhMs>SArb6r}N z0xuWb*c?6gq4^@qFH;1Z4DzkK?}e%?4rV-fh1X+}5rfcI)n@l?0=@DRp7fk8ow3?; z7l*iFob0jLT}xbTJRYoRd@6XQdGl+R1zMeFCx2G1PFkPDQFY+k3H7y-#{Z&@Zx@=P z!F)d{^|=$<#k?KiF4<4nC#kNTbl#!n)SqL)sw$BwlXb7hJT2bps%zx9{OuG6B^5Pk z>CD9&qG!L&sMtIy?f;q^+s|+m|623=@Ik>2?yILhd8V0F-sd<{HSNg0%HDnUW!vB0 zy&RBpL@?Z3Nsl}Ivy`cS=DVm~mUW7+p9&ToVz#>IcUn2+AKQKF3$qQJ+$;2~VX7dt-BssO~8e%vv1wwdyF- z{8M@l1EgJNduE)yA}yn9WDv`DcZI^72^~$IOt(0G{BKy9 ztrwNswn)N3s8?;;RGW3z_MCcaT|G1O*e7Fk3Mcb zzSu_me#W)g8~?05N@r(aN2zW?sthg_e|i}V$w z3ri_VGe!37*mLXemeX-6wcKJ6rgJW&6(`1-$M-ILoHlFk>AMU6``*`+0%WyY>8MZSUWm*7awvTgZ+#B|CRa=pf-`J~qIcan9df7K@}t#CAzqzH?HSv@6onf# zY07*wpES2Dk?HJD?I(MKCRkTJsapBlH^9&|J$rs|`rYc6PrgOv&wM2zWyt;L#Gjk& zkFL$0l5AD3rsd|v%@?uW&5e3-QEi5S=Gx$BtR*=lOJ_Ddk! z4c6-&KW#27ZCNVMS6qES{{FLNm%r*sJ+5=N7TU!g&b$4teS5*`rF;6m3q4A?s;FBlD%{@cX7P!Mt5fkbAg{i4_Mz`pYcz%=zCF+{^9k8PdaY2o&EOWZbsGB8N24i zO*?k&lGN&?-Nq@kcFR9GSr|)QSUN5CpUB2bWvc8|zJ;IP+*Hed8hZEC&rZwNH4+M2 zt{YYZN&3*)*e!dm!qxvrkZr6#NY(`0X~N^!aC{8p1$UE;a@)pVX`?*H0+ou|k@ z&}0w!^_}e&%R!U*ovj~ct_i9;VagXfFDzN%9iKsD&t8R6)%$HCkB>{YO`R(LT1bED z@7{Mi7oO}+t82B>4^ZLB-g9lq;dL^iw{HG9GdpSW`$;)0$FE3-hbVqcDPp>i!Chif z{$ZxTjjtx+*T1vn3ajTwTkVbOx^>ai{zcR7JmvV5t)*LUJ%3)M)Bm!{@m;`6&Vq(* zGh3XPEZ+PQS6W^@@6WH-w{yb`li!7(USiMmO2^+CTdNnev;xu2q-v`dbf_qatD8Yu z5Uzo?dQFThEJ2NDB4%OwRksS(&5tiEns_41wD-N9eZ!&!0uh>mC*MhT3q?%PXmMnk zCh+O?=g{vvOSZ4x_4b})mw?lmH*{s7n)aX^yB@#N9?TD0-{!Xt9JbUb*?Y| zMsQj4NwX;xr&2%MobmDZc6cdzdLT%EabfBwEJ*FV?% z@rqHz>%*Em6lZ4m>&v~f`*+qm`ONh{kB`{zdnm8p+kH7-{#<>0-EsB#bK-1v|Nh&3 zv{?9>Q1^#~Kl=SA3JXqlE9VHg2S~(pT@htq2*B{5$BI?KW4ghsLyiw-E#F&yk?6YALH_^|6S7Cb8_yfZ`u5` zwr=Uq&vVjeTuJ?KhF_62+W6eEm%m>Z-`i!EKE*#LPj}%p9@U4djb?D2!$vfLt+ z>wUQ}ym*z;i$e*E#N9QNUi?j{nc{ZBho?>>F6Q#VeVfU6%H8zm=G(jU)Sm8rZlHPo{_o3kB{x~u_S?^U_+S5>-9MJ|zy9dW z`Bzas^RCmjiuwHI27bqaHMgJNx2JmD9GRbuHIg%3GPg}DFRu(SFnS`)wo4%|$??sx z%neVcJilxszH;IFW`D)2U(SDHx!9(tx`=P*COzJZ(upVZQ>x~(`#a7#q!H{=G5JMC zu$VZrg0kYwy}5VRF#32)HTCvqv1MpUjN7lUA#3VRrqSYFP%QKt9 z6!>o*4m62sWQkn5Vd*vTNi$a+J2;_R)pUi{m02g2D(~`=i1Nt_30su8$Sqfw<-Pm6 zj!lPFMXJl3(_gPBxM;zORf%CK?i0mG!Y~L~sM`b3eAe1d-m{`Q_PPlrnT(UZo51|hL0yq=g12= zbbZ^%^HPUW79LTw&UCg-QO{q&{zZ+iBd5!Bp<;1E6~!aa*BPzlJ9GOHp?%6c|v}HM*Amri3K;r?>ILuE|mSr%(&jO_9yeV z$4>tL651cgzODFk>X;1%9*Ei(D1zo8LMyZS~nR!?6Cuk>@r4Qk1J3rd(1H>^;-U%sXX?pnueq z+bQSbt5Xk1&B#0wCHs2IGMocC4CQz_Q|=9OskpmpV+LV}|*b~^kE>pu7FP@(I3 z28B~{dlH{!Ok?o-JNN4&fzWh8->ENVr5>=7xTmE1dTwnjN2=9XH^mK%9UC1xLOl=a zKH72V&Jl(SOp`>UrJfvcV~R+szQVJQDNeCXmrZ9eo0Gva=kp5<#1bEEOIqdQ7Q+5m zR*QXSexc0sqfJx(hcY@CC11UgSRgaG>G{_Q`%iu;xb30H`m1`T979WQD_^9B_``3O z73-D+pOcty%t348e_rX*r8_;<<$C|9?rbf&ccio};!|RH^F;!0Pt2h?&b_UBOrrS3zPh{|UAS0!> zd}=7m&ko7#X;-zr%ZfBznRk;vJ1EVy5B38|HfX>>+R4Y?7A?IoN?>3e;jcBZsPtav(co#M{M$E{CWW0)=C1U~gnVPBBfwkbf^ zPQj@sLo_{z|61>k=@zo9+frED+{%)IUagpL*DAXt<#y|sA_U=YSpY0c`X*_ zH{W?yCi~;>S@pPiwZfe45p$QT6(7>uTJcJA+s4yNADH>Ryi|TD+ud2#RsVe3sczK+ zY&>U-Oq#P2+}=gGc*ag$)?oWvFaGXD@3I4t{;I3o(tE3Vz4ITed3)nx`GLslO}6Kx zF1fUq=oUK!M(x!PU#;*v+U<)|QLw~=q+`3qN)>->nYig~$%K;j8Fw}&@W1@<;>GV; z(@UlEchzj28*nQvzE?u9vwZscZyNhWE)~n7*BKn|Lqlr-AvtZT<(=PIHY5yd?B+WAQSn1z&;}yPOu=H1STK zIqMQ$jhQkZ);sjq2Z$YXE@O(HrJ}Lu84Ty;<+PyZn@0mPo{sZSBWgxBOv$RWKUxa>uu$4 za&taAMxALlvVC>z-cvc#k8;ly-h~GW^Y8U?y%-mHpw@-K^{M*<%}>JbR9-#IOfY`4 z^r+2=FB+G6U4QGc>0bWXvV_}xc_iEMx@AY>KiD=t^Nva{+E-xx-rz+0t3A)#4fEz7 z^J%s&ndmmp{((*M+^E8K->t@f%N9y&zGl4jZo&caeeC~;{Mf_fRRpWHK+V5GGUCjqH zD;|p6yD`B@c_L@{`Px;twAr}KEZ2SSXIQVN+`(qD;jVY$Z40)CbKZ+iK3My61OKYC z5s{3pZyGPPol2@%A!dDSL9*wcV~XtNZqnE5M5kUotI`;kZEC79cUzom>XZE`2ivk9 z@mibRGmE-pzv5;Y&%=$DC+y_4Zk}>b(3{+{?cUSU9=9dDZ0lGi>;J#ChD*&n_4Dp} zslAfQQpd`F7}q8C&tLzgS0?I7c0;Ez*42*O^ z|L1Jyy}P(3vQ_Fu!z2aUtPGj6clJ+^nicqyPd7{VcZ=xbEz2U~cj#_jm^{7Lf2MWZ zRDo6UPB+z`te(x?zo)SAPODhkd-DfYb<9$CxVCSK5?aEleldLJ&MgmT7|q|i_j{S) z!_#-GA7>Y>-l6oMc;nBP1{)T7bWhwmIeJs@x)V=>A6g%{X(nV`PhP94QJa- zH_9-GyIHJe-#$nG)xqbta^G_nS4VVgne};PR0;RW3)ci!WIqWv+>rdNA!ps^-D_7D z>~Yw0C+kx6(dA4Bxl(=C{5XE(r(2w`_Q!m-Ess{Ko6GR=Y&8Ei;g{&U=EYZ5DJHwF z-En1=(&OFP$1--gzPXwFT%=`r_Q8$z;nT&wcooRZ*sEE(`MPVrmhR^jv-j#5R?psP z{dH}~m8g}I?xw0nTZ^&Q>FsFSb?fMgkT1V$7pnT@=RTOt7we!U#*yf#5vL!-zREIv zN}EjwN9BWVXU7`fLrUx~K33fPzE|SqrSe@~R^RSV+#t8$hfPSp`MdhL#to%Uo~mlr zt>0kB!7OsVeao{udoMfHeXY&@^mm(tQxi*n&7#I?m2ajU@!n1c*S$;)Tzur_ksIr$ zF>f_r^D%bo#@z0QQz8Xwvcq@VNcK%~m7KZY;fDIG;}7GdeMOEHI=H-D-fPN}`sP+# zZ-9-&huY>)qVgc&I}s&WZ5^vruxB{X%h#6<)H;U(Xz5 zGu$n;bdNJNxaI@T2#380j9{%Kq;EVu2SL-1?0_`WK1Z+5O7wK2zb+ znRox2Z}@j`Leb$_(WjN`|9<9uy>o``FW&66`+4fr{lqWrTK}SWj`zJ=X^f8+w6msr zH|Uvc*8b(OT4w7W`=*Whms1&bNUrr*FBG`yjK{e0Ze&t&inXu#PTPqq z*PqEAm+fiYpD9?JQxzG!|NetHN~@l(+x;o2QCMZ#!)LR^%)_K^GcNScoxUxd!AE$~ zuj5+h;>2pS&wu(YeUg2voj0rY*M%EvUhR+wwKA)aU6B95t0;C$vWeE~?q}Ours(MG zVtvOpC3{EVqP;!VNgtc;Xq+_IfBtZ}Xi>36{J{&}o3%w-IJNJ+&^j?OC(rv%z*CPy z9rb1pY%I*#j}#!Z2|K8D=w=lY^RsVvpADzZ-3zEfyLug9NheN`>te;$j-dkSa#Gwc^|v~_x2bK*|)-GwfC zzPVLbJN|3^;;V^%Ht|}<&W=w4Yi3+In8?q3I-yv(eP`&J8&?h{dYGzzI4kq5=6(|k zTa9Le>%4yEiSeP{&9xJz1Y`@!8Q<)RD=faz|2DAj$t{`4E6h?&W$(07w4=PGnQfiH~LAMb9h zSg52W8p3swJL{K2bW_VMFW+vhb^GU@pS}0S?#H(GR(WV-P2QY-Z2HXnG`s%kRh{$o zIsUUcE44`cO4r|AeSYrWr_Yw(|NUEh?i>Ag_ODjdx9^vGbbtNb$La$0_h$b4eJ=aq z(k~mo2WI>ctqKyWue_SAyr_5G{+~N{zlbY0Ipb0ru-J`bv76of&E_*6p4}XNcdzly zWRd-lCMZ$;m)zxnF( zo;3HYe3{^$;0Fw==d9WNWAYa9CyS4Fa4<)l=l^FD+_N-wz2}WfyFO27^=>iE($0xY zymUxn`_!^ETY{7(MS9z(rfwBu+#PXpUux=FA-A>RAJvl$(pxy!Z9i1`cGB9g7uTF7 z8z1%K*)OcmbEqNkLbGuE<|wwPgE?FGJt=3sU6t0iJ|gpZ>yc|_m(tgiTyT;q`|I_w zZ`uaK^?`+EOXs-1J0WvR^&)egg13|F)~hd$cZyx%3tYI(ve#x>=b1MxL2A+u73~-D zJ4Kxc6bXB3Y&YX+es;fzhWh(mnLijzod2Y{ALMGDVq#m_=ycd!$F+5e##KgcEvIYi zR)i#9;(W=p_>;1JeooWATh6zH3RWmb1sH_{Z`k=ic0=gG=a&{m^@`2mc<1p(VScvg zx3=|DfCih`3hL-VdWRkW7}Y-GN5ppNso zV&shpFBlaXLbe?@S6E%cxAMGSv-o1GtE($!PZHY`Gj-MMn?chIFXlX7W5C8Nm%Ycc zCd@6eMdhPnrhtZ+lodxf%QeaQKh!HfWV~7FOWAGzlVD4p4Q*UR4K;be~{ldjL#)JlTFj=HpnX{Slfx)&+J+x zsI@lh_13Db<%g`2LbMo^3-~uJUuL1N;C89mH|f9WgoU3UN*T0imM#i?(b1xud6`)x zQsc)h$8)cCOig>B;kaK&N>4E?y-^hiP(UwB91-2b( z-MU&;x3rG!UHam1nKxRZXAkJ#%1QtG_Q@0r_T4G_wrMzNdt}{~a%FQj5sq4%5ydI7 zN6)u>>cKB_SXC+&E_swnO;T1l!8mzkdEuis*2_;ebZ}Un{gKRU{HY-{>d2&T&)m0f zF@Jxo<;klX&OS#T{Hb^8Gw@#c^RT9hVk>K9gY?3h9|axKks@;n8l-zaNtz#;6DGBC z^_vrnUSa#htv>~rZkj6Vd#U%0M#EEu_cH13FAr$;Z&+NSF-1YS{l&!#&6aNc0uK+$ zEOh^7)?>ycAFn%CA~sUNXkXc<3-fXWELIw6?YgwdG5zNP-U7o1d^Z`sGdTw@nX2Rl zI-r!nbxzXmsY-qu@A?TIkGQ+IBiKS;q>%GDm*B6&b{e)BXmRx%3^+9XPaS@Z)f`<+P6J7IyjNZ70TKT=&(r2^gS-a|e z*DRSutK7a7a;gL_&q?dtujN^r@iWk4TgE3j5qc>SBs*?mr=~#&gBuDc7U9M>Nmmh*s=j?wa=FVQjC)kpn#O z2djLVcu;ZYn)$Som4<3d)!%C!Kd>meaq{lKYau`VqPH_$ zZ{Bgo;=RKFD`$*=EH@xU7yc}{SIsm zc%Y#9^q56@=r6%VcZ|>4JlGS>X{kw&pvEd8D?lOXx5wusvERzgF77Y+@(LZ^ZjwA3 z(*8X60prdF?LT3A6m3^OIrimT*yE5F*E5oxrTs2{-EwWhy2mAQ1=}WXTIv77nRofA zD#uATb^C)`pKaW7hOKhWsv|rn@{ax#w+-bzxldJRn8~-h8WVpKUMMG)YkAUX6 z@18vSk@9r!!RO`6JpZw-%$xlgTT=&h!4p-RI-rwQNo?wXv|u)MOic`lnuv;yUN5tq z7u3|*yYQ>C=)_4HoUU^>0p3H?_Xfcg*ji zfCdG_gw0pEL?oNzFy@|pwiBuEX#d0wLczAT~c53`)L31>Gx&-eB3=fpHJTA zq4LznpY{3c>*^L5i%)%`(fHcKG3K1z=Z`;MA5O2|@%`Tae;1!0f9}s;Us;!wrmp=> ztM7((d8y!?hll>YoK(HlbaJ^+)`qfu|LfBJJ!@p@fi(wWJ|v3K=Jb~yoI?k{qeI8=8#O!#}iaplBct7kr2XFC5y?6fnX zrd~UX4BoJt?c3n|e(}!4)(xtz&5AC6e@jp9=E!NimQ%m!q~(E?J+V!`ecW#6jxE$k zpY6PdJE?HX_kA4#|HH$R=P3E8t0*Y^ICcD$&E%M{KS%5uv?oupG+81)bIH-ltv5tV zh11R%zW-=^WKVj(y`96unm>&HE4u#gx2ySPIjyR+A9-tblvf!!nAO%$t7N||N8sBVzIq6t3tBr_1DfIN0CV@ zyp|q1JF#xY&vVCjobX!o+0!>IIBau&%;~Hvp6h;Y+w){r-D%&j=eNF1{u=6WCgX8` zV2szz4#VHR?B+a<8L3v=mIoYiHpsG!*d_2e?lR|_qz^@>OUiaWetAM%n_KeG;n4fh zGdDfy>wMbK{ziSH!3)D+IlkMQTYFvd+W4}6y>$A1D$L|Z>%Ln zxs$wo7Ta}f)vn1{&YfoCYIv{b-t**`l&PDAE4uyP+h!+e_NL!;mnEa`p?Q!f6sn-q49kFzQ_+xRa5i78eetmT`K-vs5+g0 zWoUY?nDXW@mq&3b)B6~h?~SP0T;$Vqu}Va})a%CSEvGH-#>i%BsabeGHvQhe zt$D8d-{y*zFX;z&MQ&Ua_U*%kuk-HTwv;hqh!GNdUGsJ0WK$iB2OC&U1CtCpWBm1 z_wFoye&V$I>;kuYrMgE&no5uPWr!&lr_Pr!YM8Oborl#wV#|>a+OzkGiD%!j3Z5ON z>K3)ti9PMTJJ$s9^XJ;Wb5B^NW4%Y-H9ST|QvCgVTd4&h^Wwf7TP(k?)b`h}2an}y z=YB1**`>5oATsd(*|Lm;gqsdrcDrPCC;WXn?a#kDZH5PDuLrOFdTpy`ya~e$9p`z= zRz$wax%tuLg-rj}gO@&TX}L1L;`&+^&g6~TUQ|k@@Kqd0cu^6R*q&4T+NXS3xS-a) zNjrOXi&{+Vog!Q3+Tb~(cIVRwk$~*imQm+t*{{luRbu@x`Q*kE>Bpr`g-@065%c4}^4vqxx>*-h&@<(p4k*xX;ZuILe-A$_AsZ^gPzTOE&QuDZ2PwUOVt z>PTluQroNDoz0UT37Jo^zZ^5gW7W}urAI@ra9z7tzqVfHeAXMb=?}_R_OZNke!NRL zr9ox)6!#1BT4Zl6?lLHtcJNT)|GjS`Uf4cVm9Ev9*;IA)MfOV7@M}E9Z+6b%7ydY9 zY0m!X-Ugj2bMNe#{$1hkl($>h123nqf2sB9tF5Yk*(yzCllZlArcdI6^N-s`L|<9O zaza(k&%3TTkJWu<3|p*~qHCd_{I5j*X_D%PvITpWa#z^ZaAbe$-~FR2WA=BiL;kxi zIu+?^cRp2%u+g!IpA)e*t@3l~iUZ$MVs^COV9@<`jPU_?7=NbyrSar(Ew*y7zSa z_5_D1$2Hx(=cQL%HV>-UJZa*suTO7J58pMRRqusPsM*7yNqqAvt~Yi) z&+ZOsVBUJ|*z{e&Ivyq}JpzX;m;XwieMy@k>KI${gr=UJrwlibabHPu+FK~T$4)`! zMvQZuPhpCV+i`|f@)5!tql}(6a%cWl=i#hNxaKNys6}FO`@QD2_V2NWF6t>doHzJ7 z@B7!i7owc|J>71{ozS{)Y5K!;)90Vluih26=5vOccm5vtY-d;2yffc3_C{sguQ~6) zFJdeCt?;`H)27>pYKr+1EnhMJSbR+3{n-QeW#SG>&);hCHN=cJ3^B zRk-ej^^4W#j5|*%$X;Q*`#i(oMr2k%xE@<2yJ=5e)v?9Qi}t<_7YO(eJkxF0t0cM9 z)w&(ed_TT;`(lOb$DE@VY=1sG%sSzy*k1hu&U@lBSmrF#UzUG;0Y{V3QxRX;8+tqe zn%ze~UM+j|PEduFi$!m1!rzPcIJZd#U(1X3d7E!ibBojcLX%6><@&phs*9caj{TaS zv%+_|!lpy~+LAnfwsBd>%zU*{c;AD&tL||cSheTe`0SC-;+lIQp8Mv*xvaK3GXMOZ zwe+)0NP@$pQ*!lfjvgDfy{Is8UUG7ZkS z`J`u`%dh`DhI;(BX$d_da1;<4^BnuJP!bT_`^H=*EF>i6vJgK1^yYZCWF9@mR5p>h>6&)BF8{ z{=W@kO%(c)f9~~v@$}wr*!Hy>nkdk0BLV0vN)lVLAT1azSu+D8;;vtd_3eLptn}{p z^%V}AI>h?d<%cnLi5os@ZDcV}QQ*Ga9nmJsQpu*o%JJ!a@v0NMzQ@?@dneaxA|>h1 zeAdK&qlZ}Kt80l@cjnX={wV(XW3}4;E4N-foqhXs{r(?;5A?HR!k%9%i@YuL@$$kQ z|Nk~R#EFYvQvIR2cBS~=NB*k+pWd$jzyI|5eN~0tduzU~u0Oi}=coPp?>s3G3PhTJB6<6~qRkn3g;`fgibr&9+am;U5>5bJ- zRa^JG-TXi2I|pm@(kWKoF6!|W9pAJ?Ao!(1*X(@8gs8CnizE`Fuidz{^zuU0`|l$= zyjN3s-EGdzM;z(QJYCekIMYsX*^F+O7Ix# zQ!%goU+zr1kRPA#d*<~m|KLYW`vSIAUyEkoFu&5g*+l3a*DpQ>w#YH@&~a8 zc~7kDNqf!_#mm*RS#66ttBmQiUWp8MW}^!|ukT;j#SzW|Zt4CJEt8+Ob*^YFpN;8}-Lg*%&%U+&o|Da76ryH2cyL&=ay@78ny*3P4h zXAk$AO36LGsjIt7PPyYaqj^QQwaeoP7ZROb1~z5L6tupcWo6oVOz|pfVSR7gamB@# zA26~wKb~+psOD{AW2Vny$%__KS|%@<#M{f97pIlD;81cvh3AWjZO0N_=Sv=(93i7M zZ=?3kSvR6DCKjE#$rj&}aj;c(t_dG+Y+6A_giO>+bNkybUVm^2@-+MB)-HEB=v3Pg zLH{L7CkSn}_{O-@Qo2z&W1DOJqk=cgUb-8l_>^msXLuS4wkOL6W!+FdmQwh}Tp~Qp zL+1C4O-(LG9(E|QHY$c3et3g@s_69dGJO&uK^zP-k8I@E*4`yrXps~mnJgY?@y&6m zhzs|!f+HJ*7Hpcdu;7idH>aH>pF58($MJgs7T*@ChUZJjC>qVx&NJodt1UU1d2GVm zgMyE}ixX``l0Jkex!hkLSNB`lLqaA~GsDcHYyO>OF}bd~ z4YgIS3Zc3!of&~WCf!L|ks`uJl>|7&j)tt~SXR|)Fj2duGfJ@INLSLTFeR%P3EQBn zTraLO*BE87`YTK~Q#v$7TU&|SZN|pMC#K%{y+Gb5{0UcFbIl=*EmAv$gqY&XvXk}( z6$)mjZ+j(L=cN@c5wg|keC!df=0%|rA}be3Xo|YIt`JyZ)an?j$Q=3E$9$F8ZyT~<5r8~RJAMIp)&<6mUd2>x`cD% z)Fqr3L$`7Yhi&CF4BNtK9JZCyIP55AVA#>lPUS_u5+a$4W@rhsxy~?HvCGAAswz*H zmSTV@XS0?kM~JJFV}J-}qLPP*vaQpC7lLfAeF7`8S_}l0rNTYC1y%&LID{&R>{~9B zn8PJ_ETmn-!>GmKs-joqRmCF_R~20%M3sCZM3q4FnFv88pNK%EBjKS+H9xgnBtm2t zEjS@?Y#CRgk84NMDn|(s&O^-4|LXK!mDkd`XIlI$!%3%yb7OPS%j5swzW!=(RQ&fA zNvX7dpG~K2v)V83-e35YRd#30t(U4Nd+wUwe|X`3Epz0T?2;!{KYyLq|NrIdzV9**X^A>P4lZ2Pn^-9G)A#Mk)!mvndJOh4J!wodS{stV(wZ|-r)f9GBQ;daFN57!L8 zW1=x1k6oUrc0l&}k`$Ar_8L6J6-JfULLa;{^EeqNuE@HFGbnVMf71D|4dE?fM{kQR zxxHrPfsL!Cy(wL2xp4K}zTf>SVs@Cy6T2pli);8E_RDQL#j0Hp9_f{K zSLj!YeOpnbmGF*wtIa9bj{bO~eDCFwbqwXDOHft}r)lB>57u#eoLs|QdOa#;=|+e~bLZ&fea^4B3c|y^(qcIR)~IsIr~Y2| zOy`F7t$?QOiQ9F3ZarLKV&8JI8tTF$o)FRWE z^G3q0z5&y0H7*t1nOfAfOeT8i93{2m=OfPrPE1}hCHTo>3yr5DcP*}YTDltar3bA` z>`IzuBgy3|Gh@k|L%i(rn#(5~VstxYnin82bE$pVblZ~s0*2=OmCu?DAIR3uOrQVu zwZ`6O4^8*`M=kQcI;qZM*@{D+IK&Dc-J;jQ?dTo+1)d@ zZA?A9%kod;zb;*lA zgJZAvvbT>#dW@GUU-b}y0j$h_@X0S zmS;>>pZ=CvsyX-S#$OLF&FH)PTDzc%LHAz&h2__a<5%5%b^2LkuI8QBNprGi2!E}P zy=k*ryLGdkn&#Z@QajVTc58K)R+sV|Jeu58zAbwD`Bm93a`M+QM;rDzO)2{EGAMRb$@9#GJ_8?c`OXs`y(v$Wb+0*{}Df=GwjuU@h zPCaV6X-h#^RE#qJnR9$+uAfkzy;=FT>8!+qvTd!~^-j56n%%ki@dvZ8dp;^xWi_mJ zIp^%TRZ(tyF`)bb$Me3AZ?lrF^*){{5i^K&sZ@%6toMg!t&%Lf_ z+Frxbe(??ad|n@V$!i(E_{I9OcUubM740LgIIPk5`e)hv*P9K(lup;S+6Psio0s45 zx=D2R=i;~KHpeDMYxDo#Yo2$s^Nna-=Z|;wmA7O{eoXN<`SgFzHoHfByMyip%=z{F z$d3EhCn}4Xe!jf(f9KracV{;Wd zCWp4Fwrq)vKFWFh`1d*H%so*L7kC7DU*m4K{TT76Kzo(sI^Bq;tFG~0pO$m>_uf^v z-Q0~1U(K6x;@aN%za}k{wyP~YTx$Q)DrZtwd-h(&WQQ>OJ1cB>X1;3gzB{*VcA4S3 zzoN(E+OvY}W8U_$$-G!px8v5|jfy#8e_yu0jtkQHUGBQ1&O&FB`TV~H`#Rf?j+(_c7+GKzs5x%^MF{)!k+ERJI!2d69qf`@v<8KHr$?Q`qdf zdv;80;mX}+cPr#_x@VV|?z2$Rk$l{-@l{XqsY#}N7T)(PQgvrO?%4LEFZk9Z+rEm^ z|14DXq@R?%nq=Fz!~37bQ$5KiQ}*Oc2>!Oo+3%;fn5F85h$kKU-`opln(W#qu|~}D z*@mbm9Y?YzDhsW4?eqLI&9$$>N6zx;#;PYB$8shGOYP6SA1*i9zc0hb&2o{U_0uWG zQl=_PZ4URVT$5(G$Z+S=DMxdrFTSz5&XR9m%8X#C)yaJkKGQ6__C1+-+ta7dQpqs- z*_5NNW(EsQPWQ7sv&{0T!Omw>4nLWtEH=41-gC`5%SRh_J)3d()huPc$=Q7#I_oT- zeUM&fxyaz=vnhvCW-Iee&iB*&v#d5=(&w6Gl0oJ3j)O`GQ})>}te*d6_KokM2UZpZ z_VD~+*;FJrVan+vCl32B&=O}odDLG)Tb$8zr%zAMAC^@WffLsJVcAqAIN{3aBPY)K zFE}M`|Lf}08Pz*}Wfb#AZ$GPgO;6C~ki2s21@A10iLOhy_3R&pDn!0)`pwd6yKJt@ z&Ig4Fa|>AnOFvz{tfXzf_|?;Nz7-{jA$R}ubd@Mh`1^-v^}_i9lk|F4Eu9}YQIBQP z%K3rQ^iHKr)9YHb9wM?CB+|91L~zQPzdc=5iWA=a?b%clIOS<~Sy1T@W2>*-0zW3y z>@c43q&r~7k?u(|wsdcb*uuSeMiBqhqgt^Y$KJeqF0lApo!im-{tB7mZdV_kUy&v5 zbn@}}6|??us=ht6;?^I@(6@&ggL?k)Oezz+kRk4R^)*<{)wkyrGQ~UhyY1Fk)mHBo zy02i3_-Xs*CGjFDf0ZfCCz zIMY|Zt7Ow3<5lzOokI5*XsoMe3*95&wXfdo>W}lzZ%?Y6zx?a}mVfqZ|NFoG4`v3x zsf_wR|Jwi4U|#&ZYyX#j{h#@_KI(sc#A|!sSot`Q_h13^zQkSf9cO#OnvWc zUEjNMXN=wBXOZ9c8`jGFkt<*8{o;V?*GKaw|DSKGJ>9)*>fY9+@r+*o+k_a7O-bT- z^kDw&=Y0Pnt^QuvsDEmU1}DR&+NfABRYnG9C+@ADOb71R`7_K|I)!0^fT$&7!tJ^# z3>&5vF*y`WaaeHRFiXSQ3VSBCSG7@pOPaye%be0!`Ln0a)J`~idDrFwHHL(lBAaJ_ zUU>4^%D?que&6f=Z#cE<+!EHCHedgpKeSiR?MK_o$7b@|^X6Z@b}94kdfOe#XKquN zz5Lk!NQ>9s)*pEI?ELSgx0i2STC$8c!Dy%cVb5C)IrEqCdc4fBc(!TdAA|KVX8yBn zx#utYFMsjN`bCFiU5=W5>Ui^}qoy~_qqtr1t<>3y2YinY{_goN6?j*1UR-X^o|zn8 z$Lf2#-U$e=H#>LNM`X*f|B^TF7_N);U9+oD=5kW6-??MUR(D#M_qk>LzAo`Nr)B4@ z4TZ*zuD<`JH0JOMhu{95uV$3t$MChR{Kf0=%Z>SWcG@p}DDPhz&0Qt+&;0Oz1J0U` zyYl(X*)le-F>?)BE+X?0-k=wQrhl{{40Nxwou-jr_E)f6MB> zOflVGY-Z1PT~2Y)i2FKOWSVt?`M;GOAjO2r$$l{8%Wd`0=K z;)!j}ucpmvvb4PGyzsAycg_y!XX0!eUnG|>mqcfLI5^`K+p}%!xB3O&ZOff+_PnG) z)LrITj^WkZ2hVQITegdr`}<3VegB)d&93Gy_#xx9>Ax-I6L>SXT(EeR6?wQoebrLEh2mEg zO|ArmA6RXoGyPNTop%okA3yGYweqkd!_SYM^(WaoIK*d6l|EPh*DmiEQ+aV|jp_HT zH4J9&g6$aio;*(bw7jL^onl#gO#|PtD{WKfeq#Lfcg4**BL!Otcw z_1l^KnNh9sYM{H#)}IVrU5oo(c=uT;ZSduo!IS2GSH&Ru)s%xND}%W%n-@<#@?@p5 zShf?x#u@u&dh66_D>khCJw;%F%d#GZhlcg%<15c_GM-8{x+*v^*Xh8MjlLW+Y?c}J zR=`DlL87x>bsS4s_4q}$FjLx((BQeBZaiW3ky^dH@6r0GS5uCfDJE>1AyeuSF^te36Y+HLQHqab$|1gU+@0FN8YppWsON zY?sQS(Qc{g;Nc_xC7dtVts!WJPpM1dY(WFf9AhT6R!=S8fB#A(8Fe0d?D63}{wOuc zZ4bwZN3IS+`ohMKTph&pg-u?$I)v#nO{$qWdHlbeHff=C*p@(MwNu1yVrQ&@T$+zx1*Vsg8AhRH2Z z%%E#hgWv@X3D?Mj8mENZ0v0EVsPZZ=IGZUl#k6P9n#3)OXDxAaT;3Ka6wPZKnPbv( z;YNpq;-)~u$tQJ^)F$_~393o+8m~Mf)#l8bE#c~Um?OibXOT{lNUEUn3PHoJO&x+) zIwV{pk7%4ya${EOlwkEdf}})awFIl@Q4bk2Be%e7hFzQbF3vdL*~>JkFK|L>&jPc} zfdN+yy;2t^t4)qP&M~off}oPLs&Qvd%b66T*Aj|GuVfK|t^Mv~%lYYL2aK&B%#{6bhOZ)x-DWeh#y6YI%=2zCPKU^Rf{D+& z$!MQZ#^9eUALrq}iTT(196i(8l8WC`ZZf7U*&x@o`&**W@$GWPb$T}$k1-c*sK1lW zo^Xk+`0vN!Z|Cl(vu|j9y0F@{-kKq8_pc|H@B36S{4!p4Xw#oMhMRV#C%iS6vQN1a zo^NUkD#7J8Obx1HShnWsef``0mzcK&dGfz_X0c|GXBDWl=by23lH7%K6~m<~UotYy zSv9-&w)xBlr!rZ+V>yMe2cjSdjZ_HDhH}T^9q$$>JD^_<}nfH0T zdUD<3an6*Tvu+eV-l23$maW_u*e&y-SF*C*VoMF_qVzq4ypUaU|#?K>^;+(8MEc{W46|G%$9$>$Fi2+-2U2%;&t;6 zoQ?n0IqC0O_ISH*pC8vMu6=s9uI|p`ebmJ^5)93?@4t=S!_;S;qY5@57%xhxX47|M*{S?tXb}%Vkj4;!<_F4Co+#5+@lz zS}-OV49yIPI&J@KoF%6C zuiEbY-Fvs5e|)#>5uFV?*A>Qy&%`Fx_ZvX!X0({ ztN)(uz4ps(^3C|j`FkbT>6hEby^rfmzU1(+b zlV*kJ8H)v1wGt2f6*?a|BZgniNo|wvbDd*rbwbZ=TJyk#)#y}|es)D*bEN8~NypY| zrIi-A!&hLZnqI0*m3g6f3eB3m3_96Z4-jCLrmU};Hh*a?2Q&^(4rcV9G zed(#6mT5l{$u0ZKSr_^9z*PM;7W1!r&DJ;}J$t>p%Tf;2bm^tlMq(gE;&zT0z>Zl8MzBXj^=sZ`pFTO)(jICz~ct-TcG%@oq15k#hb=E0*n(ij%6{ zUvomaQtSETF4(>=`ryHHuFcBzg5;+)2{%|~ zZP@m&`A8jO&Xn!fW>zwmIi_b`*?aHip&Q??irI1d_aalc&|a`Bvmz%$_#o>D`aTCTF&Zapv9( zV^%xZc&l;Ys z7oU7NChutww^UwfY?l1>&$9*2ZI%36W#D+X!HYGw>$H%j5yzctse9c*4_$MgWNI~6tJk;JFYM)nmpq*5DpPOkCHAXvaK)GOZ?wBO z%lE0Lz?{Y=%TylWXS|x*Wj{!|`X97jxAD!2vjz4}7E@mE>K6Q!+u?4#-@STTe9406 zzMGenHY|SmTC&RJh0ihG<<4`=YLx$O?y*`OuyDu3eG?WxOz7lIUY}IWCcSXhTC2iz z`QG7xUB0HM&^>&}#7Wk*6+WHaW zSFN@i9jE6ln^A4FtMuN{S??#gr5&<4TUL5WNQy)6;>tZf%O#?lnGdi0@Y!#%t>!0@ z?N+mn7fq9@w7hC)b}T5ltH+W}?MD0CWj_QLZ#*ab?5NMgReD-h2RWw4`JLfW3fYpW zs{1TK>;8q7r%O1t82voDreoq}R@W?>KbLghEH}&7e{*5YnTdxPFA7}H&RX&`qhm#L z&z^Fv+KoO^G8q+``)2)^5N{cMb=R8Nb4?B%pS6ZQ8>+PXjURHXx#tb4iqZ*4TP~ZU*vCs$V-_JzyoX;pdIEQ`gs@l9n+&-X8B)_J>=*bLu5*RV3;fPO4UsptI{q ztRg{LFsevn0}J8~n2(O`mvtAcv)`Yz!zD%j(#zkjMFNKo8HH`QaU=hxO@g~yQ-!LG zH%I56@_n;xi_>=P&RTX}se$*Z(^H<=gSe^Xh7<>wkTkIoD@i+%XgK%P+qcUw(gYT}0E{+pcb_h2ExY*1CEs|JBsHhjRk# zvhUk}diOZ>>9l+9Q-i-v{^%vXcjEuwm>GybL>-TXD9J7wO!rj$6_+R95> zH($R0@s#!7zo%c`mfv{&d-D8$1yS2JyQx}z_#J#;V$-)7epzMZWTM5^cXD}q zk#EGSjUw8s5ARQ?j9p<{<`w-ZT&L3P)R7y(`z->Z3Qwu$N-oXJy`e6dJH>2Tyikj3 zps4Uq)jg|vJ5Qya*R4FP-|+M1oSCfl%j=i5FSmTya8OJ9Yp6}@nw%$mFDia5nYuTK zt>9lK$}m!E0=-E=%=(VR4-KM1!qx-TNM{$94Vfv$OBqvz}V}Y|p<( zCs&p|y7E(hi`nn@PnY-$1if9)%CECB`PGf{54%*8<{F;L??3&!^5O;?dFxl}D_?Q^ zceBY}Ip5nc(XP|KOX#%L%iYZ@9QbCx4C!@B&2QD4oBPt;hW}cF!Eu|+S?Zfea_lzi3<~XCYWF6 zuFMW*vJ?t(i+FWnzu1XxBN36PPtV)8vR`7gO~25Sv*pC0ZA-6!DS-}leeXsX==4x5g}-fImp znto4F%`ej}NUCJgr+L?o-|PwjDzc32|&U->9! zYG=$J(Ou?-%71nwzMZ{BFs*sN(|@(ax(0c7n0y>BM5P4$eB*!oX(Jz3`uE^Kskf&S z_qo@7vO3xqbK-kPJ|s2e#o42YRuPr zKf&<#h4jnL4E9{L{DoYS%8Mph>lj^VQruB~rDm$*N(F=J(_d9;ZcXd#V%XF&cY{}H z*35$ff6ng;y7bgoZKlNQ^vVm@!`rU*IB{-liq!of7PVBOs_NiIlQlD~s?w@8J0dgY zMJh1zO;MD5w||oK+>XDJb3Fq^I~F*b?_X?UxN6cT4VMFnJ|A)-Y~SzGx)bnd(~mtt zI|Ra$8%ibG{!ZM%6>>Rng3NVWFRRqZLTklM4jKD?Xn(P1S3Yd(w1J`ff{?gm2xFqc zIwxbd<$)$2ocyN7T{-@RLx8b!&+_Tg>wD7HF0bFmxu$f!@Km+WH(Rc%hd$l2cJ@mC zEskquYxehFKg*Z!XllVm`xUbpw{827FOvQI*OvOH*$13rPcX05i&=GJ%B`6RcJ_`( z=e8{J;y4u<`s`@Bz?I6$#aGzYPjPBx_mNqZ-D$p)A$lR#mn(h|tA%2|KD@qegPXj2 zUC%_vDwoLI35REG)vqk9(&9h0A5Y}B);Qbr zwqn;^jacDFuY9~1*M@#Hv=Tn_<><5j(p*i>T&&S4r<|5;>@hiHbJ1bK_l5<{b6?EX zzZT!wx{c51g>*^J+|8XGla_^<&nT?lES386&QBA*@;U2u>{xC*@XWrpx%ENn_syGw zcJQgDY_?k6z{@CAtdJuie@rw)E%dT=fAovzX_SIvl$6J#R zOtxybd|~wPq}q+rcRxfvC9BnJOnw`7V9SL`oHJMEjZpG+vv(P!a5 zGcH`YZGX)5G0&d&l`l4ZkG$Z~D3`bVuhvVhxJ^$ccf7cF{=+1bgJzt&+a}(#){s&z z|KemD$Fb*m+4M!yDq%C;njc-5u~ej?==zg7<*j8FPWKD`w>_UZ>&m6z|Aom*jEoj> z7EPQ}6)MIXtE470Uu%lL=&AY*P8%B^%sr>{l#BIq;rxV&k43$d{Fh9;`&HCyUb{fy zdZ);;_)n&3bq8hDq`I$Nv#hSIe5A3pWM-?m|MLs$jvl;qgt6C^X}b30&w1W%N4NMz zFVreL@M_amXV*?Y@kr?*6?{Z0i+f z8!-jW;*=KrXvW#!W%uREp6%khzD%upCAg=vVU|&i-s230re@Ps!jq&{Hr&Vv-MFdn z<_D!fXSFmTQ~lLG*>C!FrX_~&dg*Xh_ORl6o05wQBiz0Otxd^zb#wCjElqMyLmz}~ zSYVy@@k8+2@0|S?!}4Dw{1d;scvgp2h5Uy-=U0DSp_sSKU~R_x zGUmoSL3r!(e;UUo2?;x|-)cWW;H+}@^LeG4 zvpwWy#pt{^9JYGuO}kqb?$<+p-;Xcfc6aXT(p#seoK{;`#`Y}2=JG`ATgOb-30&E> zSeD0T`UX*r3(r$#8D5Z5?YZ5?bGUf#r%m#)Qfu$zN}V;nJfn8n9B#K8O-FZzM(n%S z9;^R)^TI!CtfaoYaLP8ATK21XmfvgH-rl+0Urn~YJ|g)2)-%?}a@twtk(s}@7##XN zkNf@S%KeYm&GQYOxY^RU#N%AW{W-1)I}EQJjeK#H-{hK)=r#8QKb7}U)-f#cop-L@ z_hJhSo;bs-I>K|u^qR9?i*HUfZ+#lGg45}AJJd6D`u4W?^^+d9Pvv}XsOiMLK3d+)w%l6R^G~Hsp!j8Atq{GsS;f$ z4oDU6;_A9!V^XBuG5bIo5e@wf8 zn?cs_?ZKF6h3R=bwoFI=>bG9}qS<3-)zhUH{=l`+X4Zw*CNF1YByp_ZNj2YdGW@Qw z(!|;9(=SFIo6K^6Meaqh%+t&|@#FCagIqj(e@8sHw%SA8I&SLe!mr!r_P#ir_#w^6 zDO}{Zy0Ylk(8+@T*q$to(_8*};y$@WJMOODI$P08_4IU~hA1};lPBlqClm{sJ!R>VR{k^0e2G6@wx8Nt-SCvZx{TAY z=5p<(13KC2vtH$2^wYDhmC4}_{LuQqH_hOtbMk`isWE1n?-ret5%JJJ+amGFPADfc zI{QqQ=*J1H&Q&e(2HshTdb>||1TwSci9BWFvuKDb_1>0o`gm{eo|^})ryXB%Ol!tl zS@liVj=ZbVIo!E;<}*S0ijKwVd(t1QRyopm^|eNW$fsSs zntdH}(7EWO^>x5nF#0-%mS!eI?VgK@?v8O403GAFs7WvBc4+PDHjN~M7FD+EZ)VSC z_YDvbHsEA&{J%T??71`ZyuZ$|JIF47Xp{AuIji2i+Eo`?oAKet&!!LVN|qC~4u77$ z+rE5Dy@NAvpK6O#dr+*#z4!C$e=04%ANT*y^$&l}p5xD-xBph{&k5|49{#$1cl&kr zXMb1Ck)1Bn{(AcE`F6WM-n$iw@X1HIqso=V5Q~M$1dF;c7 zvj27-dH;U*{CSCM#dllO?6=lC{-lfRPto*E-L1~L%isUIVLP{D0%!YXzMl!9>si+b zR5Ltx`QiO}jr*&Psi$WAS?Q@~vFya8UqweV3Jl_B@-D9Qf9CgO?`g$bIx7z{1+#CA z%n24wZBG|Ft#8Kc9{#ZYnw+An-Qv2i+4h1dPkfJi9X*lW}U zl0KyF`CfVLr|Z26KBa{#z6OY2;QrAOBh#JTzAGeL^*QU;$V_PxJGg{}AIilDPRxA-Eibc;;?5_@p@HSKF@D<#(i{+Y8+w2U$F)L(VYH>=`x z?(tX@MT$MobCu3kdL!2Q*N$82%h6@e8QNnnthd%-H;A&!sD9H~^Dd0HC}DO~W9+jh z{nAe!G5tw({FfoxsG?&0=JHFoo-Do`)8+LU!qeY4ohp8`J}2qQ)me+bNJ$+Jm7i)i zpW7gjBl4d1HKz*>Q}a|?CFVY9%_v*r=;)Vmc&G8EnI-dgtF&iKSQo)PDJJ#4zL#&* z+|(%XLo4-Se7h6`jlwd*9M_$jKH)dF;uSU3{FN;nAm5w34q@$Zhn zNajAi#%E9Zr9%HHaLZUtGyH2+B^c3lvSfZ+ZsY2vknY9mtFxYdb&>uvb?d=pTb^+A zE_yMs?R1-P;inZsFV}4Ld%0TK$fRI>pbca6MfN%3FR~_?U;TGL?}l==@WjS*(vNwJ zj!S;H5%KIVlT!VTzwfVZEWBI4Z=b^o*?AS;l&xO;$e6|1{=LR<$-{Rd$zroM8N~AZ z-14zy(-|>-0hhe_bym|n6=nTR!Kf3cA%y`=z0o)#0rg_a$#l!O55e z+qDZOuZj>1oqVcorjX|~vD-I3=Q0~GD;~+Xu=v!v7wx42M}N*~;+w`59KY#q3h(M; z&YZck3;9AX{`{uR#Jq4u&r|7M=Bf)4%TC{C|I-<7eo?D?Woq@`hRRv$lbes7e54ne z@xN0ucmO`( zc`kS-!z3=|X0^!6=Q175ix$Ls+fJ3JZJL$jcfX-mv@1FL>#>Cu_6f!k*A$aG9JXBQ zoE9LuX^F+MYaD)QEQ=4P#ZPm1BOUD+VCp8w{Yu_#qP4Dw1yA&gzpEO#l`rgj8Y$Zl zy69K#8`d>54s`g|K>gVY3N?I z#L36&#>3su-qh>;_$jo_=6MvSv4z_`i?vDBXIbvFTxi$Y7IidjD%(6&tH-lf|2}oW z^x$mcRg>aZMgBbfBc|T`m@MB}kDCvUJE%()a+~wXDpww7R6l&D=f;)WiEpj{AJeEWRx! z7iNh$DP5hB_{-QlDbUF#{g3e3xq_Z+CDOv?^f4#yN$C7H@tSanrl%y?dOGJP6ZJp3oP+W%ImqF5g;;|9*)L`n@P2*m@bVRcRTfW*aTTY9FRZMUrdV7_?eCw245g2gxP zE7sIZ`5xbRXxT+<4H49tK&m!G3`xEP+#I9@qak8uU~EcMLu9UZzsm8_*6)9{Pi+u? zwkYUh9m5teu{Es>(gGd_xIMYMn^Gin7}aSMTfUH01Tr_Hxd|6lj9x^e%N9ih*&_FviO`e&O+|Ni^N6J9@a z+QqVe=`6R4`u{>c#qayw|9|(NSF6RhZ#^Bp|CjlnGt>Xq7EZta;Q#-spLgX0KKtvx z{Ip&_S=#*1TjQ|Iom)?D*N@*jWzWwi-gmhx53YN>__kBG;alyKmo|l+kLLOrk^V35 zItQ!w(ka{4D|?r%l`ztanO!}3Y3kZOVY@Q3`mIkb{O?Sah*^^*$|t+}%dV%lVyBr} z6s?)?_*&B1xV4H4cS>*H8JBc<_rnVjPv5m!)n4IyJ!ekCUf=&eKfTwlul;%S`~AO9 z`;V{XTWKZIdU{98$DcFnz1*%}nr-{N zDdI-W>(n=AozH51+rqv%zjRLf@!S{t+HGHKIBn5XyL#jIzq{1ls49p(3X96kW42#9coy!Mk-V>EUuDb*lWVVU_UyB2;V=EnM#^2FwtpxqDjR5i|gwT;?#r&w!xL_zI0HOml&+@&3| zDKeM#ofq`EA*FY7soI_8SHAz+m%BTzK*qW0@q`7fyu1wN%+r%OmdOXcVVHfW)OoYs zga`WqJvCIW3CdJ|HI&%->xNl;^_D8x{q0h#M02#H*JWsgZOjPOJ2Igs%~q;({o``o zsQwyjRsBU@S=TOhuyotHSxHS{z_?i?SA}0VQ5cLt*h|KyV6g8J=^|h z)oQn0`xf>-d9&%F-nwJcVoOf0xL$teMbGcNC)~aH)w@N%vbBdzI+c;)weR4Pugc+b3Md(cX~Ff^;IFh3(eh`DUM4Y3S0=1+L9R3 zb9?*O7Za4XbQR{@o>#u5gL%tkr-P;8N_-a6tn@aD6?*VK7tgw)#V7feb-I0qV0+BA zN4HOKcpX_~E-dKGw!?m9it?j?3vpf=H&;k79Xq)r$wfxX@7amjiymIMBNlt|?6bRO zdex_Hs@=P`t>N{w-VW#Eb^MH-ZO-n^FLiI9d0lX4rONDT5C~SZ$f!vO3#D z#=ZQ~+_U=x@1FGeyXb+%uE}k6mo+3-N=tcHmkF>QzqokI2KUIrg0@}m+ei; zlI1Qhr`vRNd|y5NejUsECf(en4n~!Kp7EUyT9bP5Sg&ojh51Jvq2PJ0tVcJmSnx?l z#CTq7^R3MR7b?W~vd$lJd>W~dX2Z?CHGScNPdZu}^ITb{rZ1dPAtozwo+FVx3(Rzm~>)Yd7 zQBr-Y_^wKypXBy??aiubg>7e5y zxVHsdP+6OO@m0_^SNEISRxH@0Yo)c#RXg&wSZCI4rNGo^i;SFZm#w)IS8UUjG2Q06 z=+w4?fSY2nqPG_R&%CLI{EuOfdOi$?QIoBdvYjN3>=Zl(e?JNkH z)7{xsEGVh{T1hMI^&*!wbGn5#ZqidqdKxpO>*gK}!R~TF-tN*ssjzddnGtik#Wq@q zU))fpr;_+IW=hM{(mv{YC+ug4Q781uB zZX4YAWq&{E<<*}%Wp5r64c~u={mW(NM;rI$?>oM1|9`f5udeS%eEaF^{P=%AU+?^8 zC&Rhg{22TGeS81BldtcW{dZZsen-vU+0*NP-dfYXB|K(#^v=2Kdin&*t75-j-}7#V zgiXbc`P-zzx1@Krur@Awpl*BiSF?ZcufKn7zTQ}2d-0<{kh7y_eM!XI{aUl%=Cr#Jn~E=Du1Z;a>TH?L!P7sN0< zAa;hT4ZqpGD4`vzPpgKA*I6d$G@lP=DlgsH^6J`0327PaNC@ZA&7=M49;>`gmz%C^ zn8h&9|H1VSHBP<_%;mlf-YfL>__r^7Gw1s zyOtSEZuJd%W*V~WYUT9Pp=MWiPCXrZ?8?u{r%J=FSWY?}`s{M$gwvsAmv{D^4rROi zv*)y`@5(tx%iWeL&7H9$W~ubtnjJAqMdl{#i22m!r4;gObB{pAse0X1?gh@z1x{|K54O{`(8dmD9h?nz{W%%Tm>M=kjgNE&sUY z-_LpX&d!;=&{pii<9BZib_6~6W?1&CaryJp%Xe3^g;kzddB(UWc^j{?-b-V?12siLE7y2;m>L)9K$38FT<=wH1o33qS9Qyp}c#!f<#sJUt$RBC>e4CiO!FKLeW+bfefIS7@3XvDTJ^EL zI~cm^-09_4cYaxyyw5MK@Y}I+yX&GSYIxfE)#@r^_IR&g;ko<&LCP1^W43qn??1L| z@O|h1UT59K2=46>-Pu?EZrc3!lj*F!v%0dkO=ra&)ZKe1n?3FGi?b;=Yd@O>-}8~1 zDq50PlAX5aR!X_?%7CzdmuGcPzRfba=9_M;IZftiPTQ_odx|exc6OI8EA*bXbJml> z%bl&=rMn8eH|@B^Qegbj@m#!V<#v-Ft86=J?#-RZ!)4?zzUXIqWRXFH=K8y_M59deBehpohGTL_g<{Tll{;4_8XtrfB3fzbzxnI36X36MX|l-H&%$+9)Gm;jQz^% zM*mgfxzA5*Ftu5JuRWonk2U9}W!Q$cf3Anx<|PYCSM`OQ`7$SHW8?FPqiyq&CHJ?T z*Hp}|=_|>3VR>!iq32WjcQ-?F{%fW%|C`*$`@`Sp z+K)M>_HoS*ei{C-cu{ie`OY3uyXBwOAA0U`RBC>*Xm(X!YR-oGpp6Irc^(m)r!1IV z;pejEq2;uViO(aBcKsFyxxzK)g{9EO3&mbXrRF6IW>@u@{*kg^O~#d*MqK80x#9nI+DZ z_1Wp*(LHAtnCcs^ID5KB^7A3b$8l*FZiw?`{XXQlO<&0PTWfPt{4sBX88>47axZ)R zO=k0r>H7}-m&`QKd&eqnb$rVW@#)!Jbifd)%N$4xBO%6{Pn`3x4!e})?GiuRSjOpTdexS&Azt& z;fl)aiAQt(a=Z4{KV0!iUnb@cx9i&ag)2VliAogoN0pG6S8It2noFU~;0xDqSA;wXF*m zY&0>Eq++bOs_2@CzfaBja?E!A72)n|E${Z z+?(P2bcT8Qj5hI175i8g6hQ^2LnQQ&B|kjg$FktqhUx5=E>CALNWE+?q5OY|KBGq4 zp+~~$`ivz#?c3&GjAl4gFY)E^8(xN-x6hCL*RFVKxZNq;!fkHgAM?*l2P8fmQV`zH zaNzWF7W=722kqNjw9|AsA1r@bTsPlKbYJ|${_aEH`=7f1_!qe9!{5H$f+G9sb?gs) z?+amGseT&Q!T!WYhHnqE z{Ew+~_;5aG*WKEh4Qo%HmfKTPwR`6j&VM1cOn)}9>(3Yd6Y@*thrQB4{e1^?_dSp* zUH&R(c~$SK;G$*0yWD19zB}vk{Uh&JZ+S6oNyXOAcWIXvG=A3Hx>I#yZ0@FAGegwA z>|LUsKKb(1C39x`xl5f}uJSmiYv-*!g~pMthkwq|yfaCC-L|*)ebO#e*ljP{zUAxc z-2LX4cZtr^*S)6u_G|FNpEJa7Ezh1;@$bmz?=Sy+Z~VM)uax|U_x!68%nEE&_DY^> z-|=V0zM6Uqd%lacTo(0jH1><0b1&BU`nJICme<*QnZka?l}gvI_k7egsXt~MRr1*K zH|P8MlnVRbhT0hq{wg2&P?ytOap}W9LBR_9w|80(e(x7x{v-Exxpd9{jvBrXbq>cQ zvo`*Tw%ez^=A(JZLH2jq_SfU@-hKWn@Mqs$dFegL-vxP2FVFw}y1phc;&DEQoKDlR z`vN}SE^n{a>9ITWAiuJ%{nmqgX0x4#?+eIi>&3tJuUmRw;P%}kuRqw;eg5s9*IIWt zaL11NFBdN4e@M$)c;72qb?t|`>~;4p=3kZ9j;gZ%9`IKD_vvX9E_E&aUdUB>ef7fo z$J!6wK6pg(m+l$=&(c-)tv_93eBUPOsG{3Yq@xI6QX|>7^qrUY{0ST;2z3;K7 ztycMC)VJJK<$n|YE5>*4o7fQF{@wF{RIM;;^p{?hJqLaVA8D&q7M1?e8c z{fJ{ywaJRoUwT_}E^as2e=h&U-<8SU@BL-9Kl!%goHW0*QT4vZ@o6>6veBP%U)^ZR zS9$Vu@!$47-XCs8+a5@#$20FM{AKz;`sIy=e3fM8eTDx_A4spf(UiX=iF@C~9^M~j zp?hjJ{}-lhuiMW7Ye&E+v7%3zDi>E-ia+!1C{>%Tk^q9+9ElQk3IeFX~F0_ zr+K2j8#N!>E3@(F-ZKv##hv=}uue4Qj<;o@e(KMH{ajJsi&(_J8#Q0scV@vxefOM= z`o&diSnwy-p8EJeZ16SWZ=Q@@ZA0_v0IMq-y-ntL9NQR$JLC-_9Zk` z$$M44z5Ulf{NKF0$G>FlD%R&MSG~7eygowcXM zE;F z{?jXar+hv9*DC8S_tUD!aT*zKxLMcM&b)YZU%-`H(|_`-ME*7k&H2OKeM4%7=A)zg zWt6u4OI>y2hPcqijrvO-Uf+M$UuxUC)UF#l#4l|q)o*X{-iJSKO zY=3QcdYk-aTXxp}h&q?I@=LpJ*9s5)?3S;7H7@(YQ1&*LUq8Ee;a=^+_L9ty|w=Z+?ghf*tk6^KE@d*8Dk* z(Q^)(zRJ6LGw-XE@BSy#>Rw8f29=ww+&}f!a-@=b(Kl5@$-Qi4t(X5fwdJeNS(;Dn zHQ9VV@|dpWv#ig@&ZdYuzYShi;5~20t!?$jGaZ9}-??@7(zW&5{@(L>9d>2kmWb_J zuKT;ZO)lEdYS{4e$hYM$Uq~GAfA9E~KXLnqx+`|`Hb+&;XUPliw*1SGCI9)N<#vCE zx6?N+PWi9fq%U9md&V>0t$SwPK5km3yZ3II-7l{HhmUs|UU_(FbzIcHJzHygGe5PZ z)vi48UQzM;>fCmtx_@)`$^YMQXHM*wdjIwh{|f>)-^4cGfV!-js`Cw?%NIyo_yE#^ zG2dWlZb;Oz!B-=1_sO{O)V^Pzp(pfVg4fM;t38w)T|~kfMBeUOpu&IBO+m3qq^adc zbzl1S^j*tiFPlCTa$SA*=FE+&W1c4ezTvz0_<7kw^My`K4LV)%x2nSU!aHuM%{$)I zu1j9$_u>A#*SpsT{rUM_yuSB(KD+(Cz5jA|{65j|qt_d5&l?|qH|zbhr4JS@F^bzO zH?QvBnd<)g1)op->wfd_BpuYNcZGuch+xb{0^@gQi<<*ay)bSQ|nvr z%PkaCXZTJ@Tv0Ci`tF<$g3{H$1&uVP@3>L4?aiS8apv1x7ef>Z6;+~@XG)z}7qr17 zZq_HIbq_+?{>U$@NfEc`ojLc2PtAn-LN6OP_XvBLBk}Wu;-iaey=2n+mKME?nVZ(M zp69!Iq3CoyzP|OIvGpwRg-)4e(|+sTS3Ppf>(|7$+aD#pi?vd5zZtQslgq{9&_o{A zo2>VwgI7Cge~fzV9ldLpNbvW!4tn7_q7#&({Pxw zw9w+SUiJqo?x3^ls^o^ulY{)cy}suI zO60WW&Qm<1#NuC>7FAe(yX7^{N}ash`@)3!4K!=SJ`{dw^Ai4faN?4+v9rv>772&G z-?NEnO=g>IY3k)k?bglzi$5gRrTdFXxQ0DB@l>bBY?H6Umco23VYA@x|M~tetG3zM z5b@$m-|<3?Ic#6vcCkPI@yhFyZG+n$m8mw&7bXeV{nK%9=YPCb;>Sio22q#ulj=<# zFaDMM$&c+zk!@1L_Vstv=1<}IHgR#BeSb%li>FmLgu>dVk*yNJ(PVG zRsC>r+_j)RL+*stqr+#jS!-NYI>&eTUSiaKy7R}eOY5y}SrT`%Aab=m z<7to9oL;x)M};d@Z)x@32=Q>)7!qf;L;f+-riC8@mE#pc!)|TLjI+8R889t*m3?B| ziKBG~w7bq7w2t%E5WDkT;9T*SXQl<0c?-Um-E$5;$KP{~?TkYS@7v}>yEb3kGC_52 zbIp^pUH0=db00=@ zf4uy0hfw{Vz%3Kpn%`|Ma=QHcM4ja2MO)i=*G+NM&&X~zZx%Yi#l$AKo-@kG;`iLc z`!~No7?H%`#Vq(kMl?{^y3@LdsVc&i>-38IcP#hp%}kp1(>Wk$>9OF1xH9=CS(ak= z+txTNeAe-$Supu#(SH@$O_wV_OfzAtm^4wk?`U*_XViw%UNzi0LV?!B^{Ye!_QWjF zuRe4-!y-BU8_W4a4k5dO!yMQ{XIO1cXUO%p`<8nCz^yq~>w;a{?|jaw=Kta-C$sAI z9L<+H%%)3Sr~WIfo^XGw`454g`*i0SuadlU%Ii+wye93GFD2R^*S>J9Kd{T+{`T=J z0{yN$y=?yvT&;ZD9scS2Z0CC+MOMpaPI#qp?8~GzD4SV56Uw^iwp=|6iexmw$_?kKu(aBubMGP&R-(;37ve)1fVHFm9^a(I7L zg0hrwHs{>f#=gZ&#r4si0A>AE& ziVfMMI9Z>po;N$?irz`Xz0AiXglh%g6ssL8C|q|;OFO(~cle#?t;MX&QeFwX{sx~G z6ue=a;it!a)z0pq#I++={HF30P1;_p>h(u&yYAArA)Pl1rhUCs#_OG-YrD23S6+Ol z=9gIQ8Q;sLlbV-alA&N^VNTp4#OUb$yW2n;uAE-7z7vaRJ8aEp&2PG^fYF0gTu&{1 zw|}{ondMiXGzdoTk_iIdC@C5gY863(vK?ir-?AYC%wK#R& z{^kCis$Hw)=&CJ_x4@lGd{ZWM|Pmi#6<#LFQ;3#Pg`3QDE;ul7PUgv zOG`{7D?8TnaB2llXg}fZD>B8`PwEqYCBvQbOH_D%@YcUPxB6yR(>)F8FAHsdF7cTl zvSm}vl~XcX7@h27HaU8oVm-+wfAW*$jHEO3{KPFT$?~{fG-CU!u~2?}@9+8PI;S6b zYQLQ$aAti-gc-F@6nGDWGdYFkX)yXkmN!j|BV9lSgbpDa#cmQ;W6_>|=K z<(Kz%aHcGjWsIKfcu?YLukqRy4tiQ|C*N#h-PE%$AgPc0ayt)?_ypz+-!~kH)ZSTq zaI4m;N0FB^5B@*x-g$sW@6c0*$J>@3P;}yRey}+%uw<%~g5>HR-??8o6!eo07;H~0 zKf^QO#$MwIvi6DECmb3hef2wQH$Ry;fzxfKOzXz09h@F(X0-@zYn%3D?Vg65r!8Bu zmau9)WV-VC(Kq?*b)A!BS^3*U+~XO&vL6NpPFT;dH2uotXX}|&r=5`V+x;+R@-1=o zg$=hI^6$-@t~2+}>WGc|zaB0>e!rOYeL$6K{Silv!_G;0-vo|WG&T3_=urIOaqg{M z(~kg0{7UhIHDR8MgLI$7pIJ~BClXY! zLF|+BUY#XnKicPCnm9>7^rWAw#I>gh8h0vK{w`hhf7$Sss%uhOuUmntwf>#^qERUERg+_clW}?x32A)bk?Ca^2^W zPZXnl?7BB=1vUy^`_;0^=cvG~nOvJb6x8pFc>A9HT<+X+Z;$)hJR;7uV;F%we0wMBQvW+p!<{B4LA0Ug5Q^fSe%%?d5fk0oE`PEQ*@1XUbT?kr&VL0 z_xA(I|9-H;q=amWyhKGX0b*L9QWiNud!VrCw=SZ zT?RcAK6_eWpfF63`E5&cv<=h37|t6Kk9PI_$A zu{h+&_m9>qe~SDy`s}I7RI69EMgIAV%?(*avGGrq#j2H0U~@jYcCYQrHAa^!vNM0q znpU{Xa<)@d|5sI&U-JxOWz%f;eV%C$d+L5D^VO=&Vs&9p^NKGtsVzKLWzfEL(s~x| z8Qj^vmes-u3-+D5w^f=`$L&*V*0xjE)w1rJ>#=-zeXUm7z|>0Q_d0{!XSf10!ddUN zZJVPIzcRS6lIgcN-|?A_np2tCwz1B78Cmw^#MX+|M+sa8fs)7cwT}K=aK`GIoc#Aw zY6b0`U$eHXZ`BRRUAB78wM8XNN2f>4y=L_z(O~7tOkH7(C%4Ll8vIwz*z;&h0>i^C zNB5;J-+J<~-HO|x52ty}y8Tr1Q`6riPHBz7U%!dZV$zqME2QwsR(9R{!a2LS-rAT5 zxqLb6viDg_^_MWK{u$S5}wdpz2sxz?$D?Xi`+i`1oOQ=Aq;;#+dtCL?_6tb&sIdbWO6`RI| zITm^OvX5I1uIQd=KH`Ldt)Idixl=IHS$3Y3X^Ew@@Ve745%`Yok_PR?tq^B14`c~2hO7OlstON+Dl zf5ez?|JLAs?8e(GXM_2F9AaqCdVA**bK7dQ;4j_tuL>}?mG}PbYdO77aMsaHygS+z zZaxq)d|Z>fdqVsa_Qxs01~(@=CpJ&3aR0|JVb?M-0sEU=k=tjr+(@5%Z_`PW$2-pM zTNr;=jmzgcZ>M09Xn}PWZk91!lr{rSZVrB!TsBf+-FYIsY=+QRZx}^SU z`iG;rn-_Mu3HC}ivcB|oJM(A8wBMg=4?Qr`DPP^j|H@O|P`=u6nJ?e-KmT;irY=qm z=bH2R$I~m90yZf(_Fk&>>)KlV)8g)ymmK`Pr+xKbvF}skh+exV)VVOJb?x2rcbq@J zEBv;@bK_p#>HZsc&;4sNxu7O>L+xCN^KTDt)PMGSn?!uRDVN6mkMVi>`#;&e3;*kp zP?46lN%U}e)`R%Hzrxr5>)ccIl6Pi2x0zjB(^95YtF9e663J#|u9ki1sY=TnvrS)3 z9)H=jynfBB6_ZW~?LVU@=Wn|ArDC1v45|BH6sG;~4SzjbuKU6H%+J2(4IY14#_rq^ z^wyXEdwqBAwR>L}Qk^z#zBOBJhn46(!}?8z>>j88_E*)52u>)v{J3MzU&~!z*IoBX z%?s%c|F})3c&Fd{$g}_EYx>BGyq7ui^XI{+yJB9#J!SDv*S4LiV|MHQwJ1k5cK5HQ zizioZ@%|e>{l`Dv7pDw1uPT^RxQWMHqxJ&x1Mg!m<3-sVUwV~t$ZuDX_*{2T%X58| zhldfvvkuuOdQFAOF&5K1kKJ>4o9DB?Y?oj8cFRqM4^AAG@7?EUYX9e3-M7!TZ=Rp^ z=8t*yD&c?s*vubzo|~IKYgNNdnP@NFD-uUClKIOP&NVZi`(E$+@1OIxrOo`8F|A6k zu9#QtD);NlNw+zs|18;ul|>p`upFPdTYObvT2_U{$uMFpf19tYPZ0I z^d-R{Eg0PbGXry?jw*UP*SG)4iNdz`f3>+b@ZWO|{P~yhhE>D{KBgRp8>}@GN;jx@ zv^^9{Sj%|$|Gj**nS%KnZW!BITU%RQ(JMTfF}L zeN*iOCoZ~oLx$+@}M>0sxsqMC(yHy0;qNJr@$ ztDKTIx9?RQ_r0AP&S^K9pSjT?OSZpxkJ!|YjtD05vSD!zBeE8DZwzEgy zxi!1*7nQHtGqp=9yLAbr#9Hr}gi9e)mUF|L(V!?#$dS;lycix@|pA-n%!C{n%wL*w~54x6b{s zM4;&KzJ^N{w>Z?_Wc!--*J`%xHT~PR`r~%C7lmoX;rC*kv+rB^iG|yK|N1tgMm7zp7_#e{T1>lU#nD6?8i*Jss&98NiKhe9>)&7Rp0a5Mk9D=v+#dk)#{MJ3*@JykI`N1JxR@)Z6 zSwi*am4k$L9X!tarcpA@{Ku}NH+ChOC*0t=yYQf7+!wtT(;A+O(oXja7%jw?nIGBl zb4qe*74y3va``jvHGI6WH0=g2XM9)1>zQ{a+~Vldl`3=QQ?^)^a>F&=q2SDehMQLz zdv5Zo_CCl^&eOrJ1~F+t&U!i7C%p*}-V%LQ|LH$L=(> z2ugb=jro3$l8T3f7aX2z|z>zEANWJdE{Z7({E6AP3r7%ooT>3Y(v*)~zSS^A@( zHD~k$3nrCW&O3WE*7fnMHrOusnEjCQt)?Bl5)QXA91oc#F*xR!UU1`)=jd0J$WT7U z?{a(s?^Z!(jzh|~npe6e$UQVPU1Y`-R^q#)(kIvD@&gOz+#|jYIX!KWcRB^7+^aRV z2sU#lJ?=Tglq>Ty<(RMeg=1pw2{~<%C1(XCCOd`&^Sgb!Jw3jD;~CcZ>=ujxa`na4 zhk|?#9XdJvi8h1XPm}jEmuWNqFw{wzyuRV5V}Zd-t`+&e1rELB+HkygM&|rw+8Oyg zj7M*_q~0n1@>{|p`C~`R#_4;nhM#JB$lSPP%Ou}Rj|4dd=cMnSvgD|;kXiiYH|(>v zR8;#3Yg^C3i(hZ$-ZNr5E^vEKoNvst2Rklnbe@)w7JT^ZY1XTtK-r&JORump z9+`S0J=yb}QJdM38wo|?E#0@i2`H@Oe&pnN@%;LUS5z1K$|Ti2xuUx8E0;&loLveQ z?E*=LJGrIKJf6ljdDnuy0%wEt)yf^KRav@fr(C_m%G>s0r#j!H-3#_=Io+^3<^8FN zE!%Qlk+?~O`*VG@QpXtA&(*VcUMOx-(>t>MnQq(tsXGkzP1-I|qnfW+W162>V_KY8 zV_KS6XIgH^;Qj5;pR8|54A;K2GG6=B%6N^Xjqw^!8^bi7HpXi*Z4B3B+61quv`K)m zOq=2~nKs31GHsgIWZDd_sk9kflW8-&rqX6OO{GoYno67EH61Xma80I7;hIRB!Ze;X ziD@itg4cN3B(AZvNnT@VbN=9!;KO1UB*7L@EWs8rSwgx|wKuWJwAYX&TkbH6x6)w- zZ?(gJvb3E4WN95{$To6j$Tm96;BDsoXI)O)i>oPZFR!MweT3o;}#nuVugL{@dF9`h8z{?=RH_`P<+B`|+v&zO4KC zn;r$$%h>l<*Zw?v|F87E5AyqdzJ0qpe(#^l<OnY?e@WHpA9vCWoYfrA%Jl=O~ z!p_5$H%-=NtQXp-)hgJy|5fTW`I?zlPtL!7vNEuGVRF^RrA?FmU2FYW9y?>+>(XF_ zyN>LCA7s8xc~f`EB)Hn@rCn2jljr|EyBq%t&28v2{LE4zbYq^w49h&X^Z(BXKRA8; z=i{GmZFc7DuWc!B*O+eq{r38whYar8)hsqS^(MWF%c^AAiS-8mYTi|DldqU3-&vdC z)^p(G<1%G)=_4om*dHxPi959;GU0OX^EZpvy{pJz(X@Qk=W^nw;S0Ia(&Mf&R$hI( zG6Hy}bcni#-n6?urD?HJ(WPfjZp$jKT#F zYAiQ*-zKlMuIZ@#rrTYq&W=vyHXrm=SL+4&rfd#XxF*YAx-{kL(d6X9FI%&JFMOsI zAv*C?nazHWqg($56pG4-<_b7Ez5N#IE7y0Y;>n*oR~Y_J_fB zt-ZDSX0-Me_m|Szo2y?&Yi|M(8$sL+AHO~8d306d;TZu#gIoKfnCWJ$!E%WpqxS_NB4mKMvcOvqfe=GCU!$XKuN z(lbF@08?BEv?tXb^{hg0XXYAf=UHWYI z%Z2OjR4<+JYsqHYPkFmlS&-TfB0fKl#k_ z4?7>|gx_?3W-xJv^7-o3j_cI3KOSgUDkHvb)f4k)eS7%aIaskTbx~1i)c(cV zyLKH;4qP8M|MtK19&ugm@Bj9`Z97x@LwY&K>-xG%(~1+CA0K`C|NPUV<0&t;aQU_G zpEbwx|6YUni>13)l%8*#_v&+a;QWsjQ$L2x@q4%Vjop*y7V7)T6C=d0ro68c3DXyj zI(c(v=H1`d7uhSnnZB`0pvSKzyDZbo!>#_9K*#gfci9C0O0E`=McB)d@}TJ zx!S)*o&`O);~GCe?^0GiuB_O1Fb69XA< z`G%zzM=)AFD(+$IwGr(VI90OrsPZi1?u{a^9n9CvT6*`8VDE~@N*n&w8Z8iHDCV`E zvc_SuxGtB;v}Lu~yWc2D2|g?P(5uc|mGbu7*I31CJCvSm@;LHj5~J^vE=J!6T^=b1 zL??C}44vF@z?AC?Q@E{?Qn;y-Q@Ch`>U5qAr|S|IxMNK_IAVw?$1SH~mwmzMol*Og z=uHb|MqgUMd1o@)-UFef9S1|pI}VCgdh8S}?br}n+_5uNaMqg)!G)dCf$bd8f$cM* z&b3Xswf?PRv7FjW?nlXM)?Uvsnl7l&tpAODyFrdp+WUiHt}hJtJoq>B2S>IR5S`-cx(0>6qpe6Wjk&_b)ii^fRNbVRg^B9>e?p zSi+CZ5Pj`ab+zf()vqFJS?4-@m-y)WuZdOi%kQ6uCAAzM>pfIFetZ6dLr+`!GUX=k zc~E4qF?h0XyuiUK=1=L|Qg0;|omQ)z*{J*exxd(!+5XZyXZ~5*WAntLRHa@sx9;^j z?$zwR{yekx8|+VU65g-mB)m_{NqFBYN9}#H_6qD<9h%`an6#srqd>&#yv}6nogUd8h4bY8s{v7WioDt zYTUCxttrDW?kGi&JQ(vvfm&0FYW!gJl3~J8f@*?Ml3>g~%jv_ZL<^>FwzUkKAy{yR zN`~qT)eNN@UKhF(rY_)2n6zMOytbo$oqd+0_JLWa1rBIA3h&pRu2^-lNv+CsdScDV zrmz~%Cbb&P$$>Rjo7AdQrzTdMYzhO*gVcmJhgGOfPb|AXYg1*{1%JU`-$WM9SNam% zQU~T~I@!CvSkCcRWa0VOTl@uof%*EXPMaGG%=q;}UKsA5SbQe_eCspIAD5ZGF7D{L z*>$U$$9@xUZb-MeDEG#NAGcgu^#5e(i;y`pw(j~njc@PtNqldMPWG0(sQs-gTcs~5 zD|K06#_bT} zJ)Ku?srTVyHY>u*NuP-~=PG};o#pVtuknMNZ%5H`fv<71D_I4~ zx#Y{Gh2ne{;z56Aib zzx;W*-BUl?S9!ZmYL_pZ9~5%Tz2v{h)bMJSHS<*7+xv#NotyPoJ>!(bmFRWX?|*Dt z(Q~i;<{^1Ct$x=}|DO6j-6{4zF1T`yz_stQPerty{yBGYfAZ2*$9`=Td83?FEVpiw zb)D0zOr!rMYQ?9vwz5yGykA{$X2;5<>e<$(&mB%WmXz^X!fVY@o$CKlI?wE;Io4*U zcS^oK`T1z=Dg*wNtLM2aun;que0wcx>5Sv6b=xPESzDfwn0{y9gSC90e>|M^>f7`+ zE06RX$rL}~k|_7udgHO$qa~JSa@SmJyZbVzQ!+kem-YU`mXGJ$dMSJE@#(^3d7U&L zTc6qeI%#tR7d`z`x7cuZ$m)v?132?KQr3q`>a+ z>fR%Fl4m`Vh&*Ev>of7jb_?q}ecR&B>xda&ik*I_X76gRGcyu7bL&G_WI3#n?q+M* zDWvmuzHC}e;+^=$HGCH;?uX}nbL~i$pBJ-SOquOMMRi6&`)g;W;@-snK7tL$&V~5B zcN9tU|Mlsh&dJk9bWWb`T661kkIwDWO*%JEx9Ge)%^f*udS~RO>6}qlr%#Ri%#_|Z z?MrIYwI8RsqdraNj8Znx&j?Kj%kWGH%QzVymUA*bEU$Opo*k+6kq1?4XC6?kpLs&H zcIJi9ukE49f%PJ>+orR|eykITxmw2&v$c*RX0e`rLFg~Vg3=dC1(7j!J3@0KH=5qs zRN#Hjs4#m^D(}`uy2VRkAAM??wk5S`+Md+DEn0foTc5o>>!jOx+C_KvY3?Y~>79{_ z_4Ly`W5Y5)_+(62#?_dxG|!m0Bb#=vIkIVo&xuJpeNIf;;d5fuyTj8yUaFlE@o5@s zL}~4mh|t=O2-Dh*h-uTrHz@rQSU;;!V10aadDcBF6Po6Hqh7S}*D2-0 zJxgcnuznPn_>)&VYQAt z%jS)1IHXe}Ikuhq}Q7*CU5akn7q|TK{`9qAuM~Qfm-fNgKI2phHANyhGw@mCHUOhl(gpB zrl2#IJ~0|vp7z?9X5g~1aGEJk_ZFYP8B3nFZkRfazvX7+GL4)isfjnDPIo72>*}}l zZrLMXcIlJjhm(EjoWDZS?_R2I=fbhHEx$jB2?v8N%{s z{z%P_{GggY^M`8T%pX@v+J1%>Mt)2!jC@g>Jn7j>UHiRHZ(okCt2*tU{}aqxzWvXa zY4h)Wx*Tn{{*>L`r(pj6Iooyi9Xx5gW6Lz=2Y-CHe-tlCoz=Si{H5uqjM7?yf4x~y z6EyAS>Wa(D1yUt1Pk_l5eF>Brx1ko&)7`M#PZLb5u3&ma8#^(kVb=KN37o^I3% zKehbj>BrYwmdP*CZ{PUk%Dx@@Y{bqVTYP%=m!}_B2NYLs-)B>ow{S_f_lKvG@14mp zGFolZfB((Rd+TlXZ*T5pJz^%us};sj=rz^eddkQ2hr2&+Umk6|^8f5ouK)Z;*dJD6 zo0vddtxMI32~*N1CO}#+CMJwbjEFg^q&8?HUy}pR-S^tFG8UyPZ42LF9VRS0=jIhh zL#vk!djIyiGwe)KX)&9=Z{PP@Qy30!Um{TB)%ksA`=@nb;V^1Y-FtRgXpUH0-{0p1(t)?)I}SXCo)iG?i%KJGv<=fcfjyY0Ya~ zYAqvEbOS)N+yxaWs^{Ngz3m&;XXc5G%r*16`>wMjv*A8k$y zf9`2>y`;c_chTa144t25*I)L`83_6N2+^n%o z5MqKM#0W!(8HNx;3?Zg~SH}e@7(q-i0-F-cWoHNS3MksS%t4w#EE^kSQIJ`fq9CI& zM2$dhf{23r8R4Ilm6}|l05%xBcrGBZq$IT{Pr)2yC|Ja`qQpJ8B(Wq_!5m~HSj;&; zC%-7TATc>r!5r*%kYR55c_j)qHe3n{3JUse1`0;tkb`m!6^vjCL9#{)#xPksI}|U1 zR3RK#T$G-q5Uua&?Cg|SoSLEl4w_hyZ7F7^=|zc^$dZ@=22zeN47$M27!t>R3dSIF zf)ex6Qx&2Oz(#}A8-k5@%giZBEmF{T%SkLrbxBRmPe}ziv$&)vH8Gc~VovRZz21id zM2`BeiJH2qSyo1*Nlcyf;!)3qQ_F-F%3r#sS^2Vk!jT!`n&)mE^ehx`FBLqpv#;y} zzW@t+pn&;xE~|{r@1{b6%w$=V14d#IP`vM>-#u__B4Dx5Rz=;j!V>$JPYvxjll{JD&zgug=YR zG5gK!<^p-G88b!R%FPliP?_lPrGNIjYrZ{IQUaBK&ozptr|(&Rf$7567rWLAI~2%g z$nAJ{yz{l0f8zn>fcqc*U+-_+$@a2(-!eI->AMen*t_2KMcxLkE9-QRhD8N6EL*&T z&E#CeKN*7(=Zov=7#}~1-v~<4(4b7sO990Y7bx;T3~&O{henl=8Fv@x@Vqx7eQapldxfazqv`omowZbuY^>yjoB{LJN@||9VyZm1uwk=ou z$+Bs0Sq@IkJF-@q)m-Vk^(!~W_m2zq9o^Yq%y_nJhxT;d17DdYdd;7C{aLSIrjxr& z_KhQak1y>%Gbi0qIWq8*gT;(lalBD4t~$@I4Ey<9FG{aA_wRm@eeb>B+Uv{{)mFFs zsh`>ZTS*~*Vp(^i{~FiM$9K}i3Y&gBP@L^26fYpX?(-4#|1G>pmhZKk<=&|%Ol&&v zdCr+v8k3ilv$U9>zo+zB{rKaxH#D#2Xk5L^uC)HZ1K*YZb_X@{JFE}>>OP;-?9{6z zOKTWk)G$e_ZHQ&OmfwCu&hrhHz_tJ-bVO(eBo?LSl_*$%OEFNU@Jp>IQLq4)SRk%j zW>Im8f(0mwz}ep?5yXXMV0}o*sSD0dA(m0+w}b~Z#CA9rniRnHfx-fu6fEJIp-BOJcp5ZZ zU`fFUDQ>`(3%YYH&GpO;OfixI$SO?df;<5Z4oFe}8whd_)Kb)>0G36!&e%-P!pO|P z0zEcBiV4~WuL&W+19BtSHBjqO(*npu^vE$XHq^5;vIJF%s3{+0GC}J>l_c0ci1lC# zkbIAtHb5q#TW@A&sb^wrY-Wn?dyvV5tVcvQ#Cos=NYaR z4mKE%?GWogP6T@%8rZ1>tur#V)H5)*u)wenl&mrBgQsS2+OmWfdl2j4DGzErEPWdz zrEjnk(fw>}pl4`qVS=8(!RF&}1lU$YeuQK|OL%br$$)T2K{Ft>ve*R4fzT!@QH3$s zE(`~Poeho#NGO2{F)$YzET}mUyM2a+dS)gD=%ukG$S8vL!F>z~A9#2`tw+s)(8f1$ z-UXSA$9jl;AU7g=7d6X48}vlk2d;Gy_CflX{-q^3nR%(;jtL~j!BsZcMo5gqQzazE zO+c+vSX;^xR34!l8IYKs>XVq1nghzI!3z2=V7f%X5Je}bC_(6SE=o--$uCmS2&pV6 zE>SShGc?wNROw)u%=|nTP{%;S#mdmq!oa}Lz|a5;qQFVbH$MfZG*bV?5>!GU?1VP` z3=IsxZ9hnO_@jQE-v>|C@Ur~^loSj;tkd&I9nP;o? ze)oPQh0GLNrEpVU1K$GY)Qn7zs-o23D!-8As_bOT6eW8*n+mIn+=ATHl0=1y+?>2( zs|s7C#FYG`RI9vVE0D0hk^)#sNw%$0MQ(v^c~NFbYLSwiO;JjkRgjAtR9jI>nypes zNlAf~zJ7Umxn8-kUVc%!zM-Y1rM`iYzLAk`QA(O_ab;dfVufyAu`<*Em(=3qqRfJl z%=|nBkb#Lw`K2YcN=i^uQtA%+%D_R3VKQEM{n6Yyi4J0VJi62NyE|^`nr*42(_9F~uw` zK_gQr>P(C*jZGCmLIyDN3{1>SK&?}dAVSR2(gFf%Yg zv%}2L1T=JpqR!0J5;PEoDrRA1V2q~M+`tmld__@bZf=BOp1Gxgu{oMv3nOC_bbnZw zm>L_Psk1aNw=hE&GcpGa+o9NNX=;HUriKPahUjiFG%&I-HbgVez`y`BD2QU7fq@}L z_!*cP8ChWH#SBveLqkv+M>WsP1k|xY6Eg!1O`?bynj2f7hn0c3F=#{*MV*0#0jPPVpI zH8wIaLXS6NBQqm(zZn}@V5ALWV*^kd9o0NzBaHAfHa0QCFwfWwG)Ri3*8ok9 z7)7s%nJIcXWMFDwV1^#{rbd>a;cOJWrltlM`N-75+yq^(nW3pEdRUp68JJ;+SzzXA zb3;P|^f)p%H^wl}+|m#J2?pKGCgv7sY0c2U#1g$MF*Gp6D8~&A zObyY~y`h1r5oq`j)xV}DCK&!OHN}h%Q!^}jG3qiy15=Fp($K)nz!WXN85)=yB9|p4 zMTwa?sYP6nG49~Zs#I__ub`kGl%HRsU { + rect(inset: FONT_SIZE / 2)[#it] +} + +#show ref: it => if it.element.func() != heading { it } else { + link(it.target, it.element.body) +} + +#lib.title(size: FONT_SIZE)[exercise 9] + +these are my solutions to the ninth exercise set of TMA4135. + +this document was created using +#link("https://typst.app/")[#text(blue.darken(5%))[typst]]. + +\ + +#outline(title: none) + +#pagebreak() + +#include "problem1.typ" + +#include "problem2.typ" + +#include "problem3.typ" + +#include "problem4.typ" diff --git a/exercise9/problem1.typ b/exercise9/problem1.typ new file mode 100644 index 0000000..a93f013 --- /dev/null +++ b/exercise9/problem1.typ @@ -0,0 +1,114 @@ +#import "@preview/physica:0.9.6": * + += problem 1 + +recall the definition of a periodic function $f$ for a $p > 0$ +$ + f(x + p) = f(x) quad forall quad x in RR. +$ +the smallest such $p$ is called the fundamental period of $f$. + +== a) + +"every periodic function has a fundamental period" is a false statement. + +examine $f(x) = 1,$ which is periodic since given a $p = 1$, then $f(x + 1) += f(x) = 1$ for all $x in RR$. it is trivially periodic. however, there is no +smallest $p$ for which this holds: + +given a $delta > 0$ there is always a $hat(delta) > 0$ for which $hat(delta) +< delta$ holds. this is a property of the real number line, thus there is no +fundamental period for this periodic function. + +== b) + ++ "$"Per"_p := {f: RR -> RR | f #[is $p$-periodic]}$ is a vector space" is + a true statement since all periodic functions that are added together or + scaled by some scalar are still periodic. this comes from the linear property + of periodic functions.\ + we can prove this by taking two periodic functions $f$ and $g$ and seeing if + their linear combination is an element of the space + $ + h(t) & := a dot f(t) + b dot g(t) \ + & = a dot f(t + p_f) + b dot g(t + p_g) \ + & = a dot f(t + p_f dot p_g) + b dot g(t + p_g dot p_f) \ + & = h(t + p_f dot p_g) = h(t + p_h) + $ + thus the linear combination $h(t)$ must be periodic itself and therefore an + element of $"Per"_p$. this proves scalar multiplication and vector addition + axioms, rest is trivial. + ++ "let $phi.alt : RR -> RR => phi.alt compose f$ is $p$-periodic" is true, since + it 'captures' the input of the function $phi.alt$ such that it becomes + periodic itself, always reiterating over the same values. \ + $ + (phi.alt compose f)(t) & = phi.alt(f(t)) \ + & = phi.alt(f(t + p)) \ + & = (phi compose f)(t + p) + $ + ++ "let $n in NN, a in RR => f(x + a), f(n x), f(x slash n)$ are $p$-periodic" is + false, since scaling the input parameter changes the period. \ + $ + (1) &quad f(x + a) = f((x + p) + a) = f((x + a) + p)) #underline[ok] \ + (2) &quad f(n x) = f(n (x + p)) = f(n x + n p) = f(n x + p) #underline[ok] \ + (3) &quad f(x slash n) = f((x + p) slash n) = f(x slash n + p slash n) #underline[not ok] + $ + (2) works because $n in NN$, such that the period repeats $n$ times. (3) + doesn't work because dividing by a natural number causes the period to + contract and thus isn't $p$-periodic anymore. + ++ "the absolute difference between two periods $p$ and $p'$ is also a period of + $f$" is true, since it just means that the periods occur periodically. \ + $ + f(x) & = f(x + p') = f(x - p') \ + & = f((x + p) - p') = f(x + (p - p')) + $ + given that $p > p'$. + ++ "let $a, b in RR => integral_a^(a + p) f(x) dd(x) = integral_b^(b + p) f(x) dd(x)$" + is true, since it says that integrating over the period is the same regardless + of where you start integrating from. \ + + we can choose a $c in RR$ such that + $ + integral_a^(a + p) f(x) dd(x) + & = integral_a^c f(x) dd(x) + integral_c^(a + p) f(x) dd(x) \ + & = integral_c^(a + p) f(x) dd(x) + integral_a^c f(x) dd(x) + = integral_b^(b + p) f(x) dd(x) + $ + because $c$ is a midpoint chosen to displace the integral sum such that the + startpoints of the integration are the same in terms of the period of the + function $f$. + ++ "if $f$ is differentiable, $f'$ is also $p$-periodic" is true \ + $ + f(x) = f(x + p) ==> f'(x) = f'(x + p) + $ + +== c) + +- $f(x) = cos(2x + 3)$ has a fundamental period $p = pi$ since the $+ 3$ doesn't + affect the period and then the usual period of $2 pi$ is halved by the + coefficient in-front of $x$. + +- $f(x) = pi sin(3/2 pi x)$ has a fundamental period $p = 4 slash 3$ since the + $pi$ in-front of the $sin$-expression only affects the amplitude and $(2 pi) + / ((3 slash 2) pi) = 4 slash 3$. + +- $f(x) = cos(pi/(m+1) x) + sin(pi/(n-1) x)$ for $m in ZZ \\ {-1}, n in ZZ \\ {1}$ + can be broken into two functions that can be analyzed separately first. + - $g(x) := cos(pi/(m + 1) x)$ has a fundamental period $p_g = 2(m + 1)$. + - $h(x) := sin(pi/(n + 1) x)$ has a fundamental period $f_h = 2(n + 1)$. + - we can combine these two to obtain $f(x) = g(x) + h(x)$. + to find the fundamental period, we can draw inspiration from number theory to + see that the combined period must be + $ + gcd(p_g, f_H) & = gcd(2(m + 1), 2(n + 1)) \ + & = gcd(m + 1, n + 1) \ + & <= (m + 1)(n + 1) \ + & = m n + m + n + 1 + $ + but we cannot shorten this further using $p$-period algebra, so this must be + the fundamental period for this wave. + diff --git a/exercise9/problem2.typ b/exercise9/problem2.typ new file mode 100644 index 0000000..6fbd0e3 --- /dev/null +++ b/exercise9/problem2.typ @@ -0,0 +1,62 @@ +#import "@preview/physica:0.9.6": * + += problem 2 + +== a) + +$h(x) := f(x) g(x)$ is odd for odd $f$ and even $g$, since +$ + h(x) = -f(-x) g(-x) = - (f(-x) g(-x)) = -h(-x) +$ + +== b) + +if $f$ and $g$ are both odd or even, then $h(x) := f(x) g(x)$ is even + +1. for the first case: $f$ and $g$ are both even + $ + h(x) = f(x) g(x) = f(-x) g(-x) = h(-x) + $ + +2. for the second case: $f$ and $g$ are both odd + $ + h(x) & = f(x) g(x) \ + & = (-f(-x)) (-g(-x)) = f(-x) g(-x) = h(-x) + $ + +== c) + +if $f$ is odd and $g$ is even then both $f compose g$ and $g compose f$ are +even, since +1. $f(g(x)) = f(g(-x))$, since g is even +2. $g(f(x)) = g(-f(-x)) = g(f(-x))$ + +== d) + +if $f$ is odd and $L > 0$, +$ + integral_(-L)^L f(x) dd(x) & = integral_(-L)^0 f(x) dd(x) + + integral_0^L f(x) dd(x) \ + & = integral_0^L f(-x) (-1) dd(x) + + integral_0^L f(x) dd(x) \ + & = -integral_0^L f(-x) dd(x) + + integral_0^L f(x) dd(x) \ + & = -integral_0^L f(x) dd(x) + + integral_0^L f(x) dd(x) \ + & = 0 +$ + +== e) + +if $f$ is even and $L > 0$, +$ + integral_(-L)^L f(x) dd(x) & = integral_(-L)^0 f(x) dd(x) + + integral_0^L f(x) dd(x) \ + & = integral_0^L f(-x) dd(x) + + integral_0^L f(x) dd(x) \ + & = integral_0^L f(x) dd(x) + + integral_0^L f(x) dd(x) \ + & = 2 integral_0^L f(x) dd(x) +$ + + diff --git a/exercise9/problem3.typ b/exercise9/problem3.typ new file mode 100644 index 0000000..ef32449 --- /dev/null +++ b/exercise9/problem3.typ @@ -0,0 +1,91 @@ +#import "@preview/physica:0.9.6": * + += problem 3 + +$ + a_0(f') = 0, quad a_n (f') = n b_n (f), quad b_n(f') = -n a_n(f) +$ + +if $f(-pi) != f(pi)$ then the formulas don't work anymore, since there will be +a discreet jump every time the period is restarted. to fix the formulas we need +to account for this. let $[f] = f(pi) - f(-pi)$ +$ + cases( + a_0 (f') & = 1/(2 pi) integral_(-pi)^pi f'(x) dd(x) + = 1/(2 pi) [f(x)]_(-pi)^pi = [f]/(2 pi), , + a_n (f') & = 1/pi integral_(-pi)^pi f'(x) cos(n x) dd(x) \ + & = 1/pi ([f(x) cos(n x)]_(-pi)^pi + + n integral_(-pi)^pi f(x) sin(n x) dd(x)) \ + & = 1/pi ((-1)^n [f] + n pi b_n (f)) \ + & = n b_n (f) + 1/pi (-1)^n [f], , + b_n (f') & = - n a_n (f) + ) +$ + +recall the fourier series for a $p$-periodic function $f$ +$ + f(x) approx f_N (x) = a_0 + sum_(n=1)^N + (a_n cos((2 pi)/p x) + b_n sin((2 pi)/p x)) +$ +where +$ + cases( + a_0 = 1/p integral_p f(x) dd(x), + a_n = 2/p integral_p f(x) cos((2 pi)/p n x) dd(x), + b_n = 2/p integral_p f(x) sin((2 pi)/p n x) dd(x) + ) +$ + +let $f(x) = sin^2(x) + 3 x^2 - 4 x + 5$ be periodically continued based on +$[-pi, pi]$. + +notice that this series has a jump $[f] > 0$ so we need to use the modified +formulas we found above. + +also remark that $sin^2(x) = (1 - cos(2x))/2$, which is already its fourier +series. + +since fourier series are linear, we can compute the fourier series of each +term and we can use the provided properties to compute the coefficients using +the derivative of $f$. +$ + f'(x) = dots.c + 6 x - 4 +$ +we then need to compute the fourier series for $x^2$, $x$ and $1$ using +$ + "fourier"(1) & = cases( + a_0 (1) = 1/(2 pi) integral_(-pi)^pi 1 dd(x) = 1, + a_n (1) = 1/pi integral_(-pi)^pi cos(x) dd(x) = 0, + b_n (1) = 0 + ) \ + "fourier"(x) & = cases( + a_0 (x) = 1/(2 pi) integral_(-pi)^pi x dd(x) = 0, + a_n (x) = 1/n (b_n (1)) = 0, + b_n (x) = 1/n (a_n (1) - 1/pi (-1)^n [x]) + = 2/n (-1)^(n + 1) + ) \ + "fourier"(x^2) & = cases( + a_0 (x^2) = 1/(2 pi) integral_(-pi)^pi x^2 dd(x) + = 1/(6 pi) [x^3]_(-pi)^pi = 1/3 pi^2, + a_n (x^2) = -1/n b_n (2 x) + = -2/n b_n (x) = 4/n^2 (-1)^n, + b_n (x^2) = 1/n (a_n (2 x) - 1/pi (-1)^n [x^2]) = 0 + ) +$ + +combining these we get +$ + "fourier"(f(x)) & = "fourier"(sin^2(x)) \ + & + "fourier"(3 x^2) - "fourier"(4 x) + "fourier"(5) \ + & = 1/2 (1 - cos(2 x)) + 3 "fourier"(x^2) \ + & - 4 "fourier"(x) + 5 "fourier"(1) \ + & = 1/2 (1 - cos(2 x)) x + cases( + a_0 (f(x)) & = 3 a_0 (x^2) - 4 a_0 (x) + 5 a_0 (1) \ + & = pi^2 + 5, + a_n (f(x)) & = 12/n^2 (-1)^n, + b_n (f(x)) & = -8/n (-1)^(n+1) = 8/n (-1)^n + ) \ + & = pi^2 + 11/2 - 1/2 cos(2 x) \ + & + sum_(n=1)^oo (12/n cos(n x) + + 8 sin(n x))(-1)^n / n +$ diff --git a/exercise9/problem4.typ b/exercise9/problem4.typ new file mode 100644 index 0000000..903aef6 --- /dev/null +++ b/exercise9/problem4.typ @@ -0,0 +1,324 @@ +#import "@preview/physica:0.9.6": * +#import "lib.typ": ccases +#import "@preview/lilaq:0.5.0" as lq + += problem 4 + +== a) + +to find the fourier series of +$ + f(x) = ccases( + 0, -pi < x < 0 "or" pi/2 < x <= pi, + x, 0 <= x <= pi/2, + ) +$ +we can use the formulae for the coefficients +$ + a_0 & = 1/pi integral_(-pi)^pi f(x) dd(x) \ + & = 1/pi integral_0^(pi slash 2) x dd(x) \ + & = 1/(2 pi) [x^2]_0^(pi slash 2) \ + & = pi/8 +$ +$ + a_n & = 1/pi integral_(-pi)^pi f(x) cos(n x) dd(x) \ + & = 1/pi integral_0^(pi slash 2) x cos(n x) dd(x) \ + & = 1/pi [x/n sin(n x) + 1/n^2 cos(n x)]_0^(pi slash 2) \ + & = 1/(2 n) sin(pi/2 n) + 1/(pi n^2) (cos (pi/2 n) - 1) +$ +then for the different cases of $n mod 4$ +$ + a_n = ccases( + 0, n equiv 0, + 1/(2 n) - 1/(pi n^2), n equiv 1, + -2/(pi n^2), n equiv 2, + -1/(2 n) - 1/(pi n^2), n equiv 3, + ) +$ +then for the $sin$ terms +$ + b_n & = 1/pi integral_(-pi)^pi f(x) sin(n x) dd(x) \ + & = 1/pi integral_0^(pi slash 2) x sin(n x) dd(x) \ + & = 1/pi [1/n^2 sin(n x) - x/n cos(n x)]_0^(pi slash 2) \ + & = 1/(pi n^2) sin(pi/2 n) - 1/(2 n) cos(pi/2 n) +$ +then similar $n mod 4$ computations +$ + b_n = ccases( + -1/(2 n), n equiv 0, + 1/(pi n^2), n equiv 1, + 1/(2 n), n equiv 2, + -1/(pi n^2), n equiv 3 + ) +$ +then putting it all together +$ + f(x) = a_0/2 + sum_(n=1)^oo a_n cos(n x) + sum_(n=1)^oo b_n sin (n x) +$ +which is our final fourier series for $f(x)$. + + +#{ + let a_0 = calc.pi / 8 + let a(n) = { + if calc.rem-euclid(n, 4) == 0 { + 0 + } else if calc.rem-euclid(n, 4) == 1 { + 1 / (2 * n) - 1 / (calc.pi * n * n) + } else if calc.rem-euclid(n, 4) == 2 { + -2 / (calc.pi * n * n) + } else if calc.rem-euclid(n, 4) == 3 { + -1 / (2 * n) - 1 / (calc.pi * n * n) + } + } + let b(n) = { + if calc.rem-euclid(n, 4) == 0 { + -1 / (2 * n) + } else if calc.rem-euclid(n, 4) == 1 { + 1 / (calc.pi * n * n) + } else if calc.rem-euclid(n, 4) == 2 { + 1 / (2 * n) + } else if calc.rem-euclid(n, 4) == 3 { + -1 / (calc.pi * n * n) + } + } + let fourier(x, n: 50) = ( + a_0 / 2 + + range(1, n).map(n => a(n) * calc.cos(n * x)).sum() + + range(1, n).map(n => b(n) * calc.sin(n * x)).sum() + ) + let f(x) = { + let t = calc.rem-euclid(x, 2 * calc.pi) + if 0 <= t and t <= calc.pi / 2 { t } else { 0 } + } + let xs = lq.linspace(-3 * calc.pi, 3 * calc.pi, num: 100) + let configs = ( + (n: 5), + (n: 20), + (n: 100), + ) + for config in configs { + lq.diagram( + title: [the fourier series of $f(x)$ with $N = #config.n$], + xlabel: $x$, + ylabel: $y$, + width: 100%, + height: 32%, + xlim: (-3 * calc.pi, 3 * calc.pi), + xaxis: ( + locate-ticks: lq.locate-ticks-linear.with(unit: calc.pi), + format-ticks: lq.format-ticks-linear.with(suffix: $pi$), + ), + lq.plot(xs, x => fourier(x, n: config.n), mark: none), + lq.plot(xs, f, mark: none), + ) + } +} + +== b) + +let +$ + f(x) = ccases( + 0, -pi < x < 0, + x, 0 < x < pi/2, + pi - x, pi/2 < x <= pi + ) +$ + +then we can proceed as usual to calculate the coefficients of the fourier +series, utilising symmetries of $x$ and $pi - x$ on the given intervals. +$ + a_0 & = 1/pi integral_(-pi)^pi f(x) dd(x) \ + & = 1/pi (integral_0^(pi slash 2) x dd(x) + + integral_(pi slash 2)^pi (pi - x) dd(x)) \ + & = 2/pi integral_0^(pi slash 2) x dd(x) \ + & = 1/pi [x^2]_0^(pi slash 2) \ + & = pi / 4 +$ + +$ + a_n & = 1/pi integral_(-pi)^pi f(x) cos(n x) dd(x) \ + & = 1/pi (integral_0^(pi slash 2) x cos(n x) dd(x) + + integral_(pi slash 2)^pi (pi - x) cos(n x) dd(x)) \ + & = 1/pi ([x/n sin(n x) + 1/n^2 cos(n x)]_0^(pi slash 2) \ + & + [(pi-x)/n sin(n x) - 1/n^2 cos(n x)]_(pi slash 2)^pi) \ + & = 1/pi ([cancel(pi/(2 n) sin(pi/2 n)) + 1/n^2 cos(pi/2 n) - 1/n^2] \ + & + [1/n^2 (-1)^(n+1) - cancel(pi/(2 n) sin(pi/2 n)) + 1/n^2 cos(pi/2 n)]) \ + & = 1/(pi n^2) (2 cos(pi/2 n) - 1 + (-1)^(n + 1)) +$ +notice that for odd $n$, $a_n = 0$, since the cosine is zero and the alternating +sign is fixed to 1, canceling with the constant term. thus we can shorten it +further with a definition for $n = 2 k$ +$ + a_n & = 1/(4 pi k^2) (2 cos(pi k) - 1 + (-1)^(2k + 1)) \ + & = 1/(2 pi k^2) ((-1)^k - 1) \ + & = 2/(pi n^2) ((-1)^(n slash 2) - 1) +$ + +similarly $b_n$, we can recognize the symmetry earlier in our calculations +$ + b_n & = 1/pi integral_(-pi)^pi f(x) sin(n x) dd(x) \ + & = 1/pi (integral_0^(pi slash 2) x sin(n x) dd(x) + + integral_(pi slash 2)^pi (pi - x) sin(n x) dd(x)) \ + & = 1/pi (1 - (-1)^n) integral_0^(pi slash 2) x sin(n x) dd(x) +$ +notice that for even $n$, $b_n = 0$, let $n = 2k + 1$ +$ + b_n & = 1/pi (1 - (-1)^(2k + 1)) + integral_0^(pi slash 2) x sin ((2k + 1)x) dd(x) \ + & = 1/pi (1 + (-1)^(2k)) [1/n^2 sin(n x) + - x/n cos(n x)]_0^(pi slash 2) \ + & = 2/(pi n^2) sin(pi/2 n) \ + & = 2/(pi n^2) (-1)^((n-1)/2) +$ + +#{ + let a_0 = calc.pi / 4 + let a(n) = { + if calc.rem-euclid(n, 2) == 0 { + 2 / (calc.pi * n * n) * (calc.pow(-1, n / 2) - 1) + } else { 0 } + } + let b(n) = { + if calc.rem-euclid(n, 2) == 1 { + 2 / (calc.pi * n * n) * calc.pow(-1, (n - 1) / 2) + } else { 0 } + } + let fourier(x, n: 50) = ( + a_0 / 2 + + range(1, n).map(n => a(n) * calc.cos(n * x)).sum() + + range(1, n).map(n => b(n) * calc.sin(n * x)).sum() + ) + let f(x) = { + let t = calc.rem-euclid(x, 2 * calc.pi) + if 0 < t and t < calc.pi / 2 { + t + } else if calc.pi / 2 < t and t <= calc.pi { + calc.pi - t + } else { + 0 + } + } + let xs = lq.linspace(-3 * calc.pi, 3 * calc.pi, num: 100) + let configs = ( + (n: 5), + (n: 20), + (n: 100), + ) + for config in configs { + lq.diagram( + title: [the fourier series of $f(x)$ with $N = #config.n$], + xlabel: $x$, + ylabel: $y$, + width: 100%, + height: 32%, + xlim: (-3 * calc.pi, 3 * calc.pi), + xaxis: ( + locate-ticks: lq.locate-ticks-linear.with(unit: calc.pi), + format-ticks: lq.format-ticks-linear.with(suffix: $pi$), + ), + lq.plot(xs, x => fourier(x, n: config.n), mark: none), + lq.plot(xs, f, mark: none), + ) + } +} + +== c) + +let +$ + f(x) = ccases( + -pi - x, -pi < x < -pi/2, + x, -pi/2 < x < pi/2, + pi - x, pi/2 < x <= pi, + ) +$ + +then +$ + a_0 & = 1/pi integral_(-pi)^pi f(x) dd(x) \ + & = 1/pi (integral_(-pi)^(-pi slash 2) (-pi - x) dd(x) + + cancel(integral_(-pi slash 2)^(pi slash 2) x dd(x)) + + integral_(pi slash 2)^pi (pi - x) dd(x)) \ + & = 2/pi integral_(pi slash 2)^pi (pi - x) dd(x) \ + & = 2/pi ([pi^2 - pi^2/2] - 1/2 [pi^2 - pi^2/4]) \ + & = 2 pi - pi - pi + pi/2 \ + & = pi/2 +$ + +$ + a_n & = 1/pi integral_(-pi)^pi f(x) cos(n x) dd(x) \ + & = 2/pi integral_(pi slash 2)^pi (pi - x) cos(n x) dd(x) \ + & = 2/pi [1/n^2 cos(n x) + (pi - x)/n sin(n x)]_(pi slash 2)^pi \ + & = 2/pi (1/n^2 (-1)^n - 1/n^2 cos(pi/2 n) - pi/(2 n) sin(pi/2 n)) \ +$ + +$ + b_n & = 1/pi integral_(-pi)^pi f(x) sin(n x) dd(x) \ + & = 2/pi (integral_(pi slash 2)^pi (pi - x) sin(n x) dd(x) + + integral_0^(pi slash 2) x sin(n x) dd(x)) \ + & = 2/pi ([(x - pi)/n cos(n x) - 1/n^2 sin(n x)]_(pi slash 2)^pi \ + & + [1/n^2 sin(n x) - x/n cos(n x)]_0^(pi slash 2)) \ + & = 2/pi (- pi/(2 n) cos(pi/2 n) - cancel(1/n^2 sin(pi/2 n)) \ + & + cancel(1/n^2 sin(pi/2 n)) - pi/(2 n) cos(pi/2 n)) \ + & = 2/n cos(-pi/2 n) +$ + +we could figure out what these expressions equal in each case ($mod 4$), but for +the sake of brevity, i'll leave it at that. + +#{ + let a_0 = calc.pi / 2 + let a(n) = ( + 2 + / calc.pi + * ( + 1 / (n * n) * calc.pow(-1, n) + - 1 / (n * n) * calc.cos(calc.pi / 2 * n) + - calc.pi / (2 * n) * calc.sin(calc.pi / 2 * n) + ) + ) + let b(n) = ( + 2 / n * calc.cos(-calc.pi / 2 * n) + ) + let fourier(x, n: 50) = ( + a_0 / 2 + + range(1, n).map(n => a(n) * calc.cos(n * x)).sum() + + range(1, n).map(n => b(n) * calc.sin(n * x)).sum() + ) + let f(x) = { + let t = calc.rem-euclid(x, 2 * calc.pi) + if -calc.pi < t and t < -calc.pi / 2 { + -calc.pi - t + } else if -calc.pi / 2 < t and t < calc.pi / 2 { + t + } else { + calc.pi - t + } + } + let xs = lq.linspace(-3 * calc.pi, 3 * calc.pi, num: 100) + let configs = ( + (n: 5), + (n: 20), + (n: 100), + ) + for config in configs { + lq.diagram( + title: [the fourier series of $f(x)$ with $N = #config.n$], + xlabel: $x$, + ylabel: $y$, + width: 100%, + height: 32%, + xlim: (-3 * calc.pi, 3 * calc.pi), + xaxis: ( + locate-ticks: lq.locate-ticks-linear.with(unit: calc.pi), + format-ticks: lq.format-ticks-linear.with(suffix: $pi$), + ), + lq.plot(xs, x => fourier(x, n: config.n), mark: none), + lq.plot(xs, f, mark: none), + ) + } +} + +as we can see, i've made a mistake in my calculations.