From cd42f56eae2d35e7de605d5e3bb353408eec9649 Mon Sep 17 00:00:00 2001 From: James Turk Date: Thu, 26 Sep 2024 15:43:02 -0500 Subject: [PATCH] switch to Jupyter, marimo was having strange issues --- .gitignore | 1 + 00.value-of-dataviz/slides.md | 7 +- 01.gog-altair/altair-notebook.py | 226 ------ 01.gog-altair/altair.ipynb | 1099 ++++++++++++++++++++++++++++++ 01.gog-altair/slides.html | 72 +- 01.gog-altair/slides.md | 76 ++- 01.gog-altair/vega.png | Bin 0 -> 64954 bytes README.md | 17 +- 8 files changed, 1253 insertions(+), 245 deletions(-) delete mode 100644 01.gog-altair/altair-notebook.py create mode 100644 01.gog-altair/altair.ipynb create mode 100644 01.gog-altair/vega.png diff --git a/.gitignore b/.gitignore index 0d20b64..69435bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ *.pyc +.ipynb_checkpoints diff --git a/00.value-of-dataviz/slides.md b/00.value-of-dataviz/slides.md index 2e0fd46..1394bbd 100644 --- a/00.value-of-dataviz/slides.md +++ b/00.value-of-dataviz/slides.md @@ -233,7 +233,7 @@ Final project will have a place where D3 will be helpful, but other options will After introductory lecture, some examples will continue to be in D3, but you will not need to understand their inner workings. + +--- + +## Learning Altair + +To master a library like Altair, you'll go through the following phases: + +1. Learn the key concepts. + - Goal: Understand how the authors of Altair think about visualization. + - Achieved by: Reading user guide & watching tutorials. +2. Internalize concepts & API. + - Goal: Be able to do common tasks without referring to documentation. (You'll always lean on documentation for specifics.) + - Achieved by: Working on assignments & experimentation. Reading API reference as needed. +3. Mastery (not this quarter!) + - Goal: Be able to manipulate library to achieve most tasks. Understand limits. + - Achieved by: Regular use over months/years. Reading API reference and/or source code. + +--- + +## Altair Assignment + + diff --git a/01.gog-altair/vega.png b/01.gog-altair/vega.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5a9a21fd668266a35e9c5fe3bcfce12deb9280 GIT binary patch literal 64954 zcmeFZbyStz6F*8Gx*I_bje@|Tn?p&7q_ooAUDDm%jf4n-fOLm+N_U5V(p|p?ec$(6 zcip?z{qwHNT8HPv&Y9V>XFfA~hbp|5#6TrQg@J*=kd_ixf`Nep0WV}^;6DrjC*3IU zfOSxk6on}pCi?+=NHS8FHkOlvc@DfshCzTOg+Y8Q0=$G^pZxRwB`gCB{O|AKU|@pH zU=aQ)^BQ1>V$2xzW2ysC$NWdpt;1!Sq`&Uii_Z+ytYr=tY;Qx7#43vWrQ5KVy z2A;|W_C`k54yHDa@0ocjfG<#Nr8FF1U1T6Q)Vjaj_Pu+_zY~UnDq>8 z^o^KZt!y9Lfe~=!1KwI0IqHF3tt_n__*@04ewW|_-amfLLIwU^#L+^KN?lF?EM{YG z1mwy`&1f$;M3vaqtT zu(7=WO1yAzvv$;TePQiD{il(?+YvW%Ft9hXbu_cF20yl|r*GrrC`d*1*wH_Kf5vI# zYWA<5tR4QE7BE4U$6r_=%&aW`v<*}hc>I=6!OYdjQbXL#3ZNO#hY%+ltHAH_|MSbg zdi=MV>i<>~!t?Jn|LvFmuKC8n$X?9G3h2^N=wIymtMb49_*X>%mdBa@8zugb`S-T~ zorO>ZSpMOe5Nf+q)-=FIGBa^`72pX7+~XhYqsTG*c|N{>e`a*40f;ITMp|4%#T9nH z8Kvp1MB;(Ys&UqK0Jaoz46A=Ydk|{~mnb~jO_7$C#00%e34>7XO{iGOq0sa1Sf&cO zicjXS9O2nesHl)X`h*UOAu~w#3Se=w-|lHSP1QS{FPbzt9ej2;c;36{G5yuz;e5&D z?p(7(^~|k@?t?Ur0s=m)1oZbK97;h8x+Y_Q3-h7ML4JIIbGo20qo4o!1Ux==L$m)b z4%9LggK~nb)OWJ}E-|`?qo6;!M*)lYr^!EMLPeesHWdAC5h!@-j*vindMycs{ip9a zY@k+9;IC(YcisFHmKM}}kD~zd_vn1NfLdSmay|YY9JE{#8Y)umjermH*Z3uJFo0VB z|8O1&{r{ReIn%iQPJ2_SiHvG##mYr#LY~)ODf9kCb(WVoKSJBHA8t(?dMSewngd;y zJ!^T-CX~ZBFP6Pq>(A#bhCDA8w~xD{DQt%M_Lv+d->9YD-`x=H{fPQUOrGGFy6fBC z{H#r{8WEabY}D%vs%{Jxez+PL>Z8xzKi(cnHvw8=sr6p*MM_(ASzZ*lJ?u2TyFT0U zr?}0j-%QeawcO%4f0j$~k386jJdW()uJvJB+rE!>E4lTyfcHm!eE(AI&-vQ)^(g*f zfukjgWn5ehqP>(H_1@xUuUS>A9QWl{;J<59YoV}zy47)v>HtDOA7vV zXxcyGzZ3=?$Maw94CZHV+vtlQ>Ig&&zrYFZqPRZ{-WnCda&lACwhOF3{VqGi-ExHC zFl&@duvg&^(p#vrW5)8!eH}u3xa0eW0ZPdl731dpD+B}hj-8jOc*{}~+61C<2tUMi!rD;^#^K6o~88sBD?9-hSOS7@c zsB}<_HcmSkNkPeV%29bJ$#PuFYB9y`r^zo#Y0HYsMFo z8j%$1<}+2Xr!7dARM;=#*5^+S(;Dd%*@Q5sS@>cMSJcWY!#+kKi`_J`p}j0 z^y{Z-xt|inLTelr3{iFm;cLaN-4bmVNplX96J09}du8m|SA!-Q4wTA-N1R}*#fC{l zeyUHo$R5YtQRI8ZtO1xI2t0giA=C>IK_0*Adt#BiOLlKcx^je?K25#`TIO0(86fDX zb9s5BBCt-i;vxI9-rQXO%lj+)+ShR7_=>!EQ?6}3upn4rlVP&p%iF7yp|ZwbyXRw| z_qXd5E;k75`mnSeV0M4lU~w|MCvr0Aq!P@nZ_Qa`?it2M-jJ;?QGZiDiU{{Pcu~Fm z36QUt7JwsLerU|B(E`UIl68m4JfMd&od+Z1!4$=~Xz%uIp^N%B0YXK6)y_6wc-iAU zUVuATnv;8l=Xoj=c4?gWJ#`ln|2ABAeK2<@VjK+7Y7~VC*KzKILAVBNBwP!Ul_l#(9QnqJn)W9*Y7nF7UsNs|VYExK88jwD|v)__?8?jb+?C1J^*{fM<(C{;&7FtasUk$O7ImXY0<6i7GlyQH9Fi(XQt&tGHE^C>OB;xu@xoCun(16hv^Uw3Tnj6aY zBxkwfS zUbR20sL;XhZ9B;F97leJEa|Z?(wJ(1m4$13mU1`4b55*F+JybBN@S&wOwRknB zD`ya1%ccg`-yNq!TX-w{c!%94O)@)E=P1AwD~i`N?1!0VKnjm4!k1)xU@6;tUHftL z3Ihq?SeC;dw&Cqb6bIr5P`B=XkPHr%Yo$QzDMX_Bj>wSp$kY$6?qH=(kx-HRZS6-M zQa|XvKPif?ev)E}csz)j;JI;!RAVt-N>Y5c!oe8DX8lb$CZy_(fMC?);K0KtRtbOP zCxVDpUdv~cNWZPvycqAIzoDj46;!7j@C0Q(9x23}gQF9RE1 zvR$IKn<2|C8}8fqdMYUK6FS8l?OJct|&fnRfr z|J5L#2ydjw)JRT7ALTCsXE_^)?S5J;SC0n3z6Ee?Y=V>Vbby!iLbJJi|~C zUf=9Vri2or3)IHK$7v2prLQxEnJnDoySfV~{~I~c7Q0*(D_h_lBS-1wQhB~N)f+~- zIsBNzMUv?6HzQ=QsKJNtF>c%%CMyTl)7$@@!&G=2C!Wd^Bl+)ywx26(OM|p*o~a3} zFPZ&s(Ji3pvxFyR^3;ghCa=f_R;SXB2}bH%wElMzcX=w`$yfy|=*!|^5-RK>Jd)GP zxdECB0#f&1H0Rrs@CC;lzDQxy3pn9Krlur(y==gh8E6m<`*9deQD6_DRL1GsIDEn* z?LP_BRTDBoJ`xnq?K*9S`^D?a(;~eMHL!B2skeBRWp|MMKjJw)%YvHb-$a5UI5d(| z1q@|+{6Ov~!Xp}AKH9{bhXE3Dn!yMOK`_isA9hz9#k~DB%RMirI2hGZgdH&40SQ;L z;Z^+~g6twG1$_P5wI$DYzVa+{iz6Asm}Yx;-dIh4uq597ow+bi@%kI9_hBZS0lSQ9 z0)p>;FSVBKI!h~BkWsFg8aTkms{ZT9F#OPvSBFxJK1u$zym1TmU~lEs_a%B3Jx8yH;u@FrZ{|Y*te^wVW)|lL>rM9 z-+i`nG?amX426A&&^p4WS+gXNk2d%{PR_KS2?xlZAGF{9u7 zL8pw)Sp-|({GRh`hT*Q(BP*K7Wi->aZm17HVyD#7qqD3tnE z8cTq8MBu1Hw6@it2eX!(&($YYz`AZeS$H#`Az|C9YP)PgGO3B9ikGsQBBRM;{FNIZ z&W#2CAZ zqG^P+i2)uJN_zDB*`+d8iNuCu;|3z&Y6@EtwJK`@dGGB%`ifg7RKy5;qH?7#T6fjH zJs4JJBk!V`V*bD4z@CJ2{(TbVTsxNH`! zHJ#`BoGRCU)<(K*le2qmK-t~9Sn=jAt2zXkN(A86^$BvEK5|a(^(a`hzSUp>*iqJW zKFpI0=!ZA|vFJa+hbr8kW#6wor@9S9hNAM+Xtx!#c)GCNIqw=ALS{U_@0fP^3|AGx zd3T?C?@hk^dO#VO0Sxs!wBSe)n6^Rkw9?V($NWbH*Hl#PD?kgH6uHTk)Zuaw6q>eN zZ0WSDdXN&u+_LO(RzW78$w9e=IV#806KG`x|MZN$f~i1l=5hTN-1km54f{ zbb2IyT@cqHXr{s_?{7+}oYC`0$?nkm8kZt<2n7Xmju( z?E#8nL&F9^gnQ4QF^DQU(F5%M1pm6p57;w7&;EVSR3Pb{|Gd7+Qo5c?^A#pnId`M# zuE%ECh|BWW4jl|qriiUQ6>*o-5lUGWj3gYGGnE)ruDcsUH zfjtGVX#ag{&QC(1Kc537jhe){*KQh2^i8NO*mn-aMcB~dh61h zN?f~}9m0xw*g44n+r@o2k$3`RD217l#~=>X6vGCi9qi9+RhHGQ+$rVHgRp@xzB|Gn2q z=q11w5E=k_nXJ87qZUxh{6+tvmhYfchDM*^rWC+0VNvvB=E6Jbp2w2((-w$hDs?H^ znsSN#Ot@a@I5@vM6`Dt*{~133)X%#^BFB!BVMrjwyJ;u<&PUh zf$^??nVo2hj@?*6mmDi2&^6g?6|0vbNyHnmaMyilPZEfIWJY8%kF?L30(Kio0j?)L zZg9IEQ3F$|`U-?;L8$tz4724|`#Jq69=k^Ks%$vei;!2zo~Jv9Uj{A=)@L?}VrEbP zvE>&352^cY&t2si20GQpCQ&2Fp!ZWw-5eVTB{yR=pR1L+y1)9p)7+R;=aSKaFxpjX z6ibO{EkFz&9ik#nd3(=uN&U?k&KHi=M~p@!KDICdeEn}j;v={_JdR)o9ig$cOBNg? z`l1R2Fb7ZLO{jXaSfUL_YZ#RQo7cXnI9nDldV>Gg=pkm2nL^X7_4D-Tm!tovT~96JwdT(8jwxPRiWG7=h{J7Br;t9zDT;E zDc7nUF4eC8{wkAi^7O|zeeG+(RDh5oCGLwrFRClso}27(r7yuYTp~5Es~H(2ML$)C zzkLedGh<-Bb^qAB{9nyegOG0kglw8gt7cH(e8#|ds#Jqk{`l@<*`}=dT+?CM^P>Lt zXuT)BYM5_8+iCJmq4&c*tzwG(t=L5hS)uRRwpy^AGW~{{c1e0e(H6pSLJo*e$tNRHM(Fw z@S@OWxdlV;3UKTFK3jeOCIz4pX}Twd8^t~hhg5L znU*YaTF_a}n`Udk_t_&-7~aYzIGqgfjd*$jhZ&(v7v-q&3+xle$v0j$f^$%R-4u=sz6HLAx@V3Jj{cmBoRqYq8 z51tM{;dJ(4p3Vik9&!x9n}1DDb;Y5wbabRdISQIUZrOndv3+%U-0Id%G>n;?_Wk z6HMV%M~%Tl%N3VE%;Beb#Z~bxp>!(emc+BKMY$&p*clsBLDfO8%BDgLL$q^L01ws{j{nIp{|JEl2}7o}9U`yxO@y_M9c|`o zK1+d8ws_3G=f@puVkQtz_$mE#+VxZf!)#jKCfotu#p2hlCY;jBfSgHOfBSss+^Dc| zkg?3!+RUrzDRKkAy2<-XLW@J&*S>`hMUb$QRgMThG^Mf`h0TvpgZ>v8Eb;(^*LXBX zgxTiD_kth*8^q0}*h-wYnQ*Jn_D<7z>N|U)n)a=PJ5{2DD^Vq_zQ>f^VFW_!Mka7N zs9&YOXk4W$Q9=UAZ%yTJkI~SdueDy(1D#u#sR^@u&|Y?P;*@_3fB3rp#uo)A`9E7L zTgxc=~Zubf-$om)ZsDK;H) zkSWUOQ^O*r=Mdzv-FwfFwv1`D8ft{uSjsM!r-F6*i`7qR0XL>5kd>^mhq%i1O-btA z^`|erKeK^tPxAR3foafhc$ORruo0;(zR(nHYdDiJ*r*m*JLL{Cx7X9H*330Rm7Z4kt2SnNQW0@BQpeI!$yBeOio1eZ1=5uu>|RoF0l8N8CyF zr^m)P=~~joi_(%gh>Q(}Av0tVtQI#a9G%7#1c@nIptsyC9;9s!B-eTnr#gMHT@@vY z_lfDbB!UrWL4IXocrGd{o4%_~h9`Vp5uKWD-BA42yV{Te@)5CMZZE+@@wkxaJ7Wi_ z4xBU(9{A4OH-V5RrIm*#v9KE1e2T50$tTg zT-}+JJ9CReMe2J_;3+PB>H(NtrjXGZ068Pb`KJ)sP|2}TY#qCBBzdSrp7e@QONWY3 ze@wKAzsNI09v`ib0S`s-9ocZEXEC=AZl^{L)9Y4rbRq4*OSRtoR&B}UH<22Z=KdV)!3XSp zx8te71ks&!=v zGr%cGw`rM0C*%1-)0zeUmzG=#S7LURY11LnAGAD>8Cd*O=Il z3yW(xK2fcPTwoe**yw3PX47`%v@iCNAAvlU@$dc=e%600Wd*=pv4l?QXo2tO z<3DWzzOJZ>T3{2Ph!Ik@8G5D5TGq`@f{BRIk}{p`w=)E+Q|fP(dusWG;T|5%-nfU* zcr4~ICI$K@@VOaJ>B8)9_Vv=1u9)$m*6y&7`k`Ka2T=s{jD$p{KC?~Ikv zAK-o@OQal=J+0cdJmtaad3p2QxgkVp-vpX1A8q;vt*5_~(1T1Zxi(|{qmX|wx!KY8U5&>&Y&dQg{)o$#SxIPua4Em5->yt8qb#U+o^@~i+s~A; z3H<}4J-f&Y(DY};6mdQOImHAc0-d?p2)ujkd0i*aXcww~u7zrtQ_jh6>3#E4G@Z-d z$9OHpzYxEOpOA5)4lk-ci4M{y!b@gB5}p{286uZn~*NsflP$%&mf%~{1D^cFLvzgH9WAicgZ^2gdb;G`D=8%F=p~P+xG;RLz`2>Xhj?1%QSeDE^VlUqIK7;2RJh zP>qSA;GJm_@GfXSfPPoxYC0;iN-+pHIdd7YtHRER&plzB=}W~QWwWdpU`7+k`N@8g zBt>L>b5(_D<0_-4il@*g9^+IR0eMkL8bwR=3F!?WkR`yn1&p!IKSsTK#DE%L)IUvs zDf6kBK|}vbi&M!N!H%*v56Vd!azjV+HDhN+2AhZP_OPq*s?&&1ydb zttDMAK~qgazgiKbuhELn%@+;yC+_mGpv5`S?eB_}cnCl(dO`T6vqD|b#atA6REkoV z#t8U3pB|+~;e=YdJ`dNw|8hc0b08eoOV5Crm|s5z!*YWYl!C3$gIBT=N<>JwM$oj# z6*xABYpX)D>frMu_ZuH2CIDfSRu6}#kQ(k%b@{0LuvmW6dlk<~tFlYo^psbJYd0?= zFGE_i-$)BBN=dDD@^Rt@D)JcL#y|X-xLX+G#2bAD*bGpZxtrpKg@CrcTZt3LzD*`7 z1f%q;F=BuKiUTY=1{fAmLZt8GDCudfZ_M@VW*xT;HOLPuio?>@o84dJqPfB_C)M8^A(xPh{q3$EA_D#h>I#PffK`wFc5vXa9Nyv4g4{lG zWU1|iQ*A&CnMKi40$B}py*uv-;mBw8)P)pmh29qh5XT(gM&!n%bTA<3Lt6=}ZicBd z{i(jWiN2jnobM;@w3h-Y6NG-3!gYYXxs+x-!!7F7RHA(${+VaW{^{orl(7cF@YnC% z#s5I$^l$$}jV7-1dWm@Vs4Xk2@TAgTkhGygb3Rzj&%+U(RS6-NhQ^db7&2y*kRjCA zcM5(Kay68R(uo0IPGc7PiL0*Mde{cwC_-5S#i?j;CW`a>J`(gCYB%USh5c3~z!eFA zA5W`)YlYtNjPaKMGRZ*R`{_cW{=RH>IN3*8pUnsR3s0OW8W{Bw+p<;@p@T}+-W{&! zMT~&f$dpkHoX#okTSem+D$0wpt+Q5BDlspT*9GuIlOi_G5F z9J%#8>uLS(&UWxJ&5F9f@KQ)vPuvt!JP)t6N)}V6tF7&XKzZcQbF8mXfhi;lYcfe> zJl_?*fWJ=e8PI9o+?V=0JM4N=g0K-=)&LL~PBKfOD5Bh}gW13tS-JkiXb5j}m($O{ z)oYPO0(!*s?ZXF2Kn1b>RzatI%wPYCGDS8qhl1C47q&LrNp4VP+?j!iMJn zJ?z1=5ACZFrDpb^JIn>UucNZ6#>K!~q7|W1# zzw~EkIf(ePvlO4_fyIrYTCsg?5eDhhTg^%w#A$RgkSXD5Qlomq!ifoZlGuvF8U6Mz zYVR04kn|TH7Z~&6!OcZd!ru^dat6On_$p{M<>+u;aU;e3&8nu= ze!D!#ph9f17zL0ox)k#=U>SY+n5y)(c*`>bvHhrO(L})C^_|_eV%iMnLmuF+ z@?uxq4V?owymvfrk^>A2M>IWgp0B2mM?Y1Q1hiL_q97*#7^prf>W|yc$`k-7>Ctz3 z4s5NW6=ct#y>VRXk+Am&UF^D%2*|!f*Hf)+_rY%M={QZK?PIVU$TfKrA1KZx9NNMn z^xx$$y&BX`;c!kNffzy|%s>jFsx3{fMhrg4C{BP92`#xixpXbbiQ+I8{0o*ipg6-D z)~SD$xMuq9|H-hxbzhfNpr(W?4XCp_nTl(JPWXZouwe#ZMq$3d<$UP8LYDI zvdyAu8f5u34!TIV7LKRjR#!^0yYQt$Bz3gZj9Cps!%Yc33NNExsu7jy*QV4(Ep}to z=4K)h6}=-w`x*5r75!v}h5Joxr9F>QVX+sW=dK|o6QW0_JHI7FM&63t2mm}_N`fA( zIaARX7VC{OsFw>JUWbkD%J2>ULl#tc++;s|d z$}b-44Q%$RFFf%PNR+MS&Gg6*H=lqQcFu(Dj-$TqcBV_3 zjpv@0@o)z3o2NJigv{Ee&OnyVr!%EeAQ=4XEimZHG?-zAJru)G*ztP?F@wYIHO^s4 z7~kj`pIO9pOKj=`g`GPbR+N1%y*js5mVvhu;;(Q`(OEG<yaoZZX{O$AGb!1mxy`yA<+>oyqjd{dlD znBQ7eFDu*nuhrrB98z~Sr8NY&WLhT~6;!X?sN~ihzCJ7<-YYLIpye9{nMI zi*>Cb*OrEnzL+P2Y=dz6t}()1RHG0S77e#qTJGcQlOt)04#ti9NdM_QB}iQB{qCj& zVq}0$6UtDV7XXY9p>_G3?`hSNs+!Y;ishN|pI19k;=~Z+76!>@bB+H*gV-XSM`x%- zl~|nscI3-}0lM4xH1q^{CQp`*lbRe-rZ)?~}IZ)NZ76?O$eY{B6Zf3}R21|pT z|K2G)Q^;``Proe!q40rn;_6ruuZ^u=k6$BD@jb@Qd@3dr1X=>+e}$exQQ5U}q9(k< z0hb49gT?iIXi05M4>o=XEYn7yDuWUHq7sN*1seBkmKTQDsz;tna>)+s1Q@I{RoOKav3z9Q(a(c@A{ z7t)H-NX3BW!1*Hr?m^*S~zqUP!;k2{;@L5)yL=o%mcc)LEhV12FdfmcB)3)GNtmIQjFqwTws-TB+!S;tA0|~@k&4HWm5)>?a>S5Z$NV5Z8 z!eqnM922m7z+H{@+1|^rUoMQk^JDp18{orXz5`RV)H4F354)Np$WEFv%rG1>VbuS@ zls4s4-9dug*28;4LJ4M+SR8%u)oHz3$;GpnCfK`cK4An7l$a3KTu7Z%s0gxj?S8Tc zbE6Tf;7UFa!wm(LRdLtKBVI(LZR^{3OrPc2LFTp*E4ZRK+=@U8x~k(y)A}K?Dtqf& z^scrrpa$6&*&Sy_6t#=Y=g?S>MyiX;f~yT4M-H}Fr#;%o6@;I{&1hF9(V}Z#x?kE zA2LpKGtY89s^i<8hhs|$U&5wa2uF${odR00M3Q|vLmz4@nIfx?{+%0*t?%lYX!y^%5WQds>JI~+tUF;J5UJ0FB2jMD81HQ*)KraSd)qnz87W#W(Ys(;O@0@N{48S+pCsMGkHI)|b1?>m|< z*TOl4tATV~mv28JI9(<%2oj0A5Sx>TXc;+Z6=EU+QW47sbu=$}?$wX47g-bZJv6q021Kp;+fY zaU~utSSut(wxC$70&=a8m!@$*5?9{%*-f=T@>}6gTY?_|7x^uqW}ZV#mwKx2V}Yy} ziYl2Gfb&+VvxKZjziibrbE7e1IuyjU47Y!YC+R_v)H+vgPlg#t+^Y^ojzOwn`V_F9 z`zr8jQ(Hu>7h0(g17_%VOe-HAvMn<_@ed-NW6l9yNVtvAYXe4hl1kFxFR!cbG=Xg+ zIH{HrfFJa541jnHLt&6uGM+zxd8S7`;cgi1@w{<2`Am$Z?sAa}Y{}#w&m>U#V0D&r zKkJYo85zD(7KdRUiY10azHbW9@SR0{CFWSdHYc+d4u*hez&HpSG0k*@V#KoERJWTc zR+rT*xe1;2*P@N!IZ*0LY4Tp**J|ivyIFUd*#o~w-kxN>IXb;y;v{PbAZ~h0m9)^g zNvnUjzrpa0romZW`7X=CX_D!bbSD~bBlyg!>@%)^-9^b1z%L(Ke6|l7Hi6#6TPX^? zKmWR0PjIk)F)g=znK8*R72^ z0-=;tq^GWJ=)^13-`|vGnC1c_<1SnxlGs0IyT~5PAy|>kX6+f|bDhq@8yYxKt3!+o zG5fL@^lEsVM3;?$ha7(hIR;+-o!MB=H>MS`nTM;iWc)bz&|059pK@;qN(c&NMh%0J zzEF;^hPTKX1Zvr_B5gk`Gw*I!I+2`YM$o0a|+7p+^!K} z(Bx^v10!-NizPz*+5YGe^<-(SOdKKWvW(u%fRS)%V>8H0V^^AR-y4e6!*Re}lJrjV zjbY7SAEmwUBZ(D_^!=Kw0h*q7!q57$_e=_Rm8A=MJO;P2!hj%p9Qv)zmDU<=TmRDr z1WC@WiZ%aTffY56>TY>$GLWW~4f7YxWYD8{w}?+>45A6LX#yVfg2}fCW#B?A%A0G5 z2Qp<&wnw-de>GTCc(MNkU?PuNzT>=*bC`JFQVAd3?E$SQlFts1FQOE1P(SP(J>7Fy zk?4@PUWjxdrxFrHfLP(d{xQzhYAGxm&S}@1y44mFZSpH>%%EIVe>PQRLu0u12zAp? zs2ok9Y)~Q2@eZ}4Ax*i`E^<`j_0P{nkAd*=KcT|$koHe+N(NIP24V7J8N3dIjZ0@` zYY_g@He|OLu+$~^ONTx?9WBW2Agzf(R`c$Y|44Jo1X*2Az*<79xrsm7!tp4YGiAQ2 z8iBq~8xbxTHr!AU;d$t2(bM-n8fX(l9Z>TA5P#N1R8y3E@zFe@hXz0WGX4ktIF=164viQcW|Sx{NC*Ix93;1#%C{E+Z1PR6uF+Z70IWQ7;pYszr6@1TDBi2 zq=d=!k$fR9-lf0@rAOe>hfo`XbVY5`;0AEPsKX(;{Ou&zdarR$pdS&z4OC8D2+-zn zV>xaUibkwP<|q;3VG>3 znC-d^R9q~NQl_ImW*iEafdZ?qd%;^ZKSw@@%#N&g7!@$+iXAM{U$vfKCqfre z8bSd(PVp^P5uqhTe1k0Fv+kL##@YaQ)AGlS%Sej`dfUX@E+-w3Eap5Z`W>fc{BG_s z?W3tiu}Di6&~J2{WPFjthXtJaT_J0yT{;if(_5Yg9y)z^4en>=C%;@;=La+Sr#F}X zK7vs^&IF_rtSuCmFI|Sb8DPP(ybjr{!AI4$XZex_AIdPJT4E(1z$ltQfJq6TLV$gm zj|-<8*uwwBo9x*aewCQWMg5mPD*MgzGx{)8*CKTTaU9pN~{j?ig7s4W` zW-h991A8#+fxEr{;6{+&6SJ+S&#?9L#g-D?p|I=1d5lvUFEzPs1wFB5z(v|!NoF;l zU?^Tv(E?ze*0;hf7b9Eu^xO4Oa~XH)wQZpLijK-jX3MWe>D(_uR%qi^fiRBExA<^u zW)v?K4uY9klwa%_S13!hP(A~6TLcq-h8@fx%v}>TeKLLH*V*d$3LmeCG$Rp0H#1R6 zIp$F9IABsh;_xfa@$bP4k7-3GTi>g{rQ(`Oni5@;Nqg5cqX+}apyG8hL4Jz1(f`{wUc=~0y{Z?!q)}+ z6a;?@x6!nb!vr3&AigCuNwx|B3F$O;}!IXe60SA>64OLJOHxxsUMu5z*>l z?G;O$gP})im_!^hiUvF>Z7=1xTbif@kI@i20l6TdVK9& zIOo17e$Kd6V0ma59aZ_O0Iy5`cv?cYb$fW34f!RfH&4>EU8>z9lY(8j=7MW1#Gpr~ z>W`WZ51#o69+0hZ2!8?`_^F>Hq(pff`(Wy%;Nbkz0*(tH?Z8V%944R( zNbDP4zCLWH%P^+*!{EP3mz~D1234ovb&Li228(}@tv5vh!>=7m9a0{9nzQrf$mL-A z#^wK7YK(+r^EnwS?#MFMydR4jbq~qRFu0{q--cD9v_lWEuwD6jRL1PoaZMJi)8j{R zmH&n5wjHGp`Amr(k-iNc7V z#5ggb&l_Hd`3^f({_1F|Rc&mOIwe9K*~faVIukZU=@Eq=Rb_xtF58_<%fGQb8GlW_ zXneG9>fPMjy!Ip82ap|m{ZVBdz)Oo<))+$w32nQ=RHuADtf)Lla`0l3PLT*n;7B6p z7X<0o)*308rlZ(>H3Yl&5~1{q&UP0@TW!t@)VzmX$-`vXQGY@UV{ABB%9v}8lYn-f z2l$p5oY$1RP)6))?ttxfeET&Vk0f#rb+tjXTr=8;T<9XJvFJGxJ)@;E5Jq;^R{n^% z%Jb^@Rw@e@UWDq->ip`JcULBR$AoQ&4EoYZ)Q-B$tUtdz+Zs4Q4XwpA}8}0ebgt6T>ganG~%PbNSV&P*e zxuYh7{6GnRt!0%Q{TZg>a2#JNBO1nP%=y*4TmEB2xUtN-mNZO9@GeM8{MkIWNRr`} zXja?Elq64HY;PPzy-+blS@EIso=kG2G~JC8x%tz4tLO9XAtHiK{O+EBwsARiZ)gOF zd;m4)5vK)toz-_!R3oAhru4RbeHog2esVD^=CpzRDJLep5yLzHp8 z=;w*^io?Tx)@`8jyUG?87??c_JRMD{P+((?`+5U*pjIgO# zM{&wVINnBSb5MghKgQGXCkRF}wxBY8m@y6{kQ^oFDENw?hz1pUm;XjQ@Ad65m( zK$;N}8$O)XIL@8uOKkYK_nE;at9!R6Cgj#X_e$n?w<)EjtrylT573f6J1JwPiZZmo z-|bAt`L4Nxk_bXtpds)rh;D|y_PuCY-K=JVtUyBb>|Lg|kbxm8Ejva>9sEYPk4bES zCCO%DKs7eQu5{e}mR4{#0Pe=^uQ^Xc;D^MY;JOVN^Uu7JnT!B;4yFnAqug3H4>y%f zc(oyxJSJS<4+DuGD*A1M{x7s@IBp}}xvmBp?z+4_?g|@_e(?k@y)951!s~5wFzvk2J%Q2D0 z9yD8xH%0J@U_)=)`$nUTN%$o;YS4(zU5@f{e6%;LCen4Mo$Y>z$ndWb-hKcu zA!J3EEn>lS!wx2t#Z;Idm#>S0UswNX?_aKcsr7or1W|V>+3w?;*w?@?kwmU8Ptd}I zFtGiPsFBjfsDq@da3jJ}QGRW_b*R=eh7_x|E*%4O-6QulKLgV2CI3pZmk1Rh18<`7 zp>Ku*f!4QmA*W@{bol=Fw%XDky>@{BH6o1=$P_&#j=?vA6&{S4VJJ#!v{dIKdesgrujyOSy0*jaizi=|O-DvRZa^}O=!IY4;eK2f%e)dG|>|Pni zl1z$eXgN+S&%eCqoJ_$64J5r_mv5?EKquuH zMRCbP*+Qw75j~@5^;A1*K=F>S4aQ%w@KK=er)&>RDe!sOW=wF09)>Znj||DdFf?e4 z%#$J=UA`gHb{xi$2$sr#r`3(^QdzM`3GkEZD-P46! zPspiT(d|t-6-!fA6RZpEs`O7J0jy}_er18XMH!6Xj{ulI5Ji)jIEr)X{!&XZxb?JK z-$i87a$O@A=hLcKB&^PcMhjwu97dAN&X* zCm|c>m?ZDla3+ltcsjtspj=70JtQ@>Jj3>nVaj#m-TcyLJe7MRttQvF`7VAGEZt8X zt~5mg9BOFeUngy>lm{Ti%s=Nq5Y1(Fcw%y6u;fr?vpQLJOWX3xW>N!*SqlJbUNmGn zKBr+*Gi1s~h!XpfSyz?EH2UZ@`AA-E)&vdU1`%RQ*1Jll6C%lPKN=4Eb^nx3y>W0x&)du zKs#^&Mu&=iOjrDroWDXOpbSP(T|(OP$NUF-W2rM&(5w#a=@jctqyrOJ-qkNL)v&{h zOJn=vhnV@ksKTAOzHiP6X2RYub$N0Z1Adu;GBrxG`UH?CYIGEmc>#9@k2_ew3{dPsmaxx>b9f$usjsOvsy&+ z>Ohb%Qx7&Cc8tWuo(`1~WRH1mD6`2709NHe0y+;Pa z=^?L^G)6%vgjRjlm_T#eZ=YPnRi;P_&5sVo&0)Rf88%*cJnzQ&4*Ms6)vyfhTLTRrvi1L2Y03GU6 z6`o^aN3&~LU_GPvMcxzF7@?33mo)V&;Ksf#sfZFIX*eJGhv<_GyX{ z7i)8xu(v8xJVdHYs4etU0T#Vv_hhLSkSLb?H|=%-^ACx_mfL2@ z67UDP*)7$z@@tzM{yqCzj(4C$Sw2gyUo!pHG4Fu~bg3rJAC!>ou3fiHFT zg^^(+z|n`k@_#%UQ^dQ&0EwwcoG(20SGLX=iYo_BJ}Cb=`M{S*JebBg@OYcRum0A< zK$et;>+%PCUyJia7oC$$7VlXB;6j8g;LNte=HJ&N?0M}zrboA2eq%{{JW)@_A=?C8 z8o<5$aDOr6b(1)}OgIjb6^Q?@YZE*t8XA!Fo-ja65jdCW@V7P`#SO5%oYpUcS0otL zt6Rr{B$kW=TcRCz5bF|8UdK$cx$kPauROVgmt?)Zu&`4mNX31oOf<#-1vB_ZKpBV! zHtaeVRHe`a`|-co?r&_HiS?G#14nR_M`n~uA5V8M{xwIyXWtYujma*GjPZIr)qW^+ z&~&meEugcX&sbL1q3!;oz?yHe$?ar;C_VU7O)JICOwXXa_qDQG>Pd{(S&2^l3(<#f zL^>P>JyA|Qr>)cPJnHY@u>?l<0poNFxZuD!VD0a_97_3SS;F_8PaXmJbmY25pNu_` z814_p8tXK3qeYUS0X2@#gYSBkx=hieK2HsgxP$Ub>Dr8@4w0CB+E{K6vfdmc`!{7t zq?H!>wDfg$LB%DE8A3?lU%-jO;)xMA0^yRia2Pk;ebXn-RpZ#wuOw-tC&XP8*0Udv z<&Zg7PClNhdHE+D8UU24Ev6fajkV8#n+j~a06Zz>@nVXt7%@ycsV3l73S$6o-*@F`@cgP< z&j79ea|1;`(F;u=ch18`64SczCl`$J+%>YYG ze`$-yh#CqW9nU!I&Exs~RYu@U$QT))a>pa`bW$XISG<#R`GMlD_x*8vw&P~?Z9Nb% z%Dh@#a2VlyB$#X(>)BC{@O{PAu3D>k%hixg8j#jIOy)Q$@>;9ncZNPJUGRTgn(?D( z3P^aZrb^Udxt%L|DF_>tFL`~r8yVf3TeV6(sP_3H7V!xsXiXWs_e?$0=jZY+MrlOR zV5s{I(rR=K%x74q!#6t?)u4Ga$`pxssL;=@E+{Jv9NB7-PoJ*=2WkpYe}Q|i2ym8a zv#eO-_W|F(4t*5i`nTRRwzAKh(h8movTqHtk2t>e+sNHDsUVZ)UUZCa=TNY42Mz+D zx1bbd*oX112H?r0d9J`yuwE=UL|*}m-t0Bs4;qKR?=;zn4FTd&b7WqZtF&}cal__3 zK$aZ5)SFMeM8cELas2K5j=Z0G&Mur?E;yUmQO5pMpa0z2U z7}J$3oQ7hq92Ddy@D=Xs=EB;()RPRNo=CE_T|DyG|HIc?hDFte?Z3ki4n1_kPyzyy z(lL~Pgoucgw3IYT#{fe&(hVY@(ybufEuGTc-LMxv|M%GY-N&)_7e4T5ty%ZF*L7dl zdH&8ZI>pL4yDgy_gUy$ky6VNY4|mov#qnST5&h49n*BPY8DOk@z>~OGSo+KlsDGUv zln6ez6F!`40iq8?iYWm0(NdUlK3^@_mWDq9TCY9qpi0jQa>c1+KMCRbza0lBKoL7D zbZ=4*AVLUjq!rt-fJWUD#A|Z`w8cBg`X!x!FjmDO+UhB$T!xQZGBVs&8*o134bbsb z&X`#R^P?(t)azIKm7oFNA*^jq%?%~p9<|HQT5kyU;Nmw}xe_|QpHiz`Bm9ciRWMM~ z%s@HZwrz%d4t;79k4yqJ3}0m7_d!@_8-kK~9dg;tMT`ZGOsa$)6=&2m+1|MCCy zcLBGJk{Et2`3m44t(%l3gTHZfaNzqW(@AW10*HQca8;`3e=Z$l^Z-Y!2m^TWl z5ViCL@tV$HLFgpJpAIkh$Aq1;pVzhk-5_XDHE{BFzN{t13r$2ijY&1M;Fg|(8=d|U z#Qq9FUK+r9@Nznbt%)CD!Z3}R$4bZ+gY;i4FhcG39qFk1aJ>eYbv<$PvTvQP3OCmZ zO_VSl$48~-bj&z&&-@uDCjZwbbh8ak%SesxK)AB)1u#)C_&_5h*QeX&N#nu(#`44C zMY^~W*wOem6sB8CKKJK7qC_p5`I)wRzqX$`wc-jU9S=%2u4pXcgnm^@6d{t=l0teX zy|rz8wchS{dz#>>0J1#%u358zf9>YBvi_CscB{(xto&JO-$jgn-_0sjm|KyiE&?QP zZ}Q5Jj%|=k!eC3c=C@5v+tboAJZen)cKr=q!qQgK$?t!e3{OE`x*J&$A#Q#mlJWKC8Uyw~>e(s!n3kGiPLY<@(2fzN$5+f#3A zdcz8AHk$!*%3a37@5et6QcV~ASBV7v#r0h@qRxQ4JkiIY3_Vh0i}mF69&+X}24|@qe*}IRgy6s81^z}vwv&6epwKa^@z;7#2(e44?MgpX+f5v%| z)o-Scw2sCoU_F@rR%t-cDeBKpX+9>56CS{ue%$%?E%8ij5Jnb~d{VvPMjmJH!}z2V z!^}5EX?;o=25Q_=(YP2B&52^k}UR>70>@Ruql< z$L3hd-R=DS+yWgU8J@@TLU*9C_o?^Oo0MlC^gv%qd~UbbTClnJ-x_#TX*lU7mm&C= zDE*(uMn8)1)S_}C63xEIURqiGtSiKuXX9h3-)rwXV*zSWi1o3 zxqT*6T4`KaKbG7fPqc{ZZtoN1iHbESxKpGqPpUbf>5ZKIGLF_$`VBS`P6XMFgew6h z_y&WUB3fD!U63jp4#5(y6*-Yf=BQJ~L8~NRk5e2yy6p zU#?;}q4*hyP11t_$kuxLCR`bFg#d+M-hT*%pudGcp4tc!+II3hPvXH}HX5m;89d_n zJK{x`w5)%T2`!k~xanh)w=)fD+9`(aBk5`*to)r-Om;Mljebd=DV>UsV;wos_}4u% zWa@B=22{_>&(NivGG-|bq>ciW!IBrD1qOZeW++f;SzswFl`2T|@@Kl8gvYW5LD}eq zi=`G{x(Ly&EmB9a&EoIBOq%bz2Ksn{d)ZBf$kG#@gs8DZC7~~QvbG^5hW>*L%@OojY>j?lkm>UY^~>eH+)9;yJYbj=i7T3``RyfoAJ- zoQo8OHV0SV`$M{Wqe$^HEtge#9>Z~vDk+D)tUdiOz%~*-w!1&Gvu(_f?32E@ZoK#4 zbFsBFq*BI6BIg!FV%~!XNFH}M9QO;>Q4kq|*7}r8fG#E`3FA!o&cuKHufoajH8QiS@S)K~B zH5?z+8}$OeixQKSlv`UlnR{5}^+%d%$>G4|CAY#eUv1nAF4NCIvxphJ5`Vta+UJzk zT!ms`P&_7%%q}~l?1dzooyk)2(I@AzNk9|!5oks*VkjkW@BoHVr$e_E4q)E;h&ZaE z4b%efLv(+>jpKZhGe8#9Y}`ueeDJ{)7_8uiF&Whbd<2MRw7X_x3U8B0V8k3NA6H`J zQ?g~evMAW>OaVHTz-YO_X*L()1parXh#i*?7fG%bxFyD(R=#!OXyr030|n#>76At{ zwv_Y+m#Q8MA8$Kws(2n@OmjJ*iC)UGm>x1)-&5_9qP#4Z6RF-yZiCbPNR???1PBffZK5}%KKq_>7NP2 z+rXQ=~paa4XTsPwmBq>qghczdP#$^bEE|G#JdaEvCM5HrlqovJWT6q9so0}M=8 zLqW5SeLMH-K6m+-fG@Vsc7z!yX6MQa7lKuAOo<`9Vr%UuFuyo1y#{MK*R4-)tJ^We z7>sz~urKJ*Oa}KWL_VMquo+mPwODg*khn|yaRl%E&EglF^)G{8e+cUAwwb+s>xm!i z1}OYrrg_?j>^JQjlzMX}s2M(&`r@mJ(uh?_%A`!hK_Fi06UN7gQ+Y=!>o9BHqgBIS z6<#qcFpjU9K&~;2rom_z-;wIB%^~)>aiEwI;L60P;s#l?Es!-{1n44zd)o#V#&zvD z-KvK$pew=16rZkWdfR*8knV7ZA=DHTy=$e;tsf|`l)yqsw_{4Rspe7Q8#$H^8a{b#Iajjnah zd_4Cv`)^+kuz&kCb3rh$f~cSqxCIC-qMgzqK8PkW6}gZ%2zbpsSr;PH3r1u7JQ_`y z+|+~)Hc8MXB-c>p8lmgooXnSNY^3C6IUu1Lb;6<(fTHPvu#@@9<&v^`yI>k1cFGjL z%{3F~p&3bD&;cJBwRwhilrd;!<8JKs@9i_vGO|r8w9?vq+;DT$8#sj)+fs$gRH6+y z2do-jYtzdp<+108bUuAKZD@|4rAa68F`6jn(c~v|t$mnsJo2?x$?)C(7!;lEK5quq zh11xopfUDm8t87dFqUY|=n&tWFrPwaEgngO;Xeh@S5~fDa;kl^UR0h^Vqo>=a|n}5 zxFS-2Hz^0a5JE}{x#bqlQdD@EJrj=xZ<)R>IxXK#Sruxl(C$b(5(2v5E0>mvlCGeq|CFTM5iJxAVrO#)rh8Pic^KD{<0D;hX4YM z?9;+Ht-x1)@UAk>Ppe7X&hu`_ZJ)t+&y#&bj=47*OsVb`OdD5}o|xg4`$_I+ysyHp z8tqQY+r*O*OSL_~#M3%F5oCV&i22LYd5u!L%sMbf&DYJ}+Byv@vixL4y50|FO3t@) z8)~m`6Bxi!$rAD#O4_m-MB{GDb3X|csRc_F(Z_6ydRXpmbMm;h5F+bWJhAnBPf<$m zBPw{voGbDW?d%h&s~>Er!Aj57bE zjbX8dLAC`eQx=_3zW!nKETwZNlj^AEQ%``oj&wMmk40+xbKTtLMLOk^63SFQKM$~T zVoT)mV0fll*&GhTQv$#z71(;MEp%I_HQr$4t2MEJK-G;XYLTHaX)51u@HABO!FM}p z)L%1E`ZPE8QDKVVs68!QZkNqJFUx9jlV<`y<-+#$P0>9vC={m6Yuwhm#x1K&ngJeC znkZnFJ7HYcN^Hk00l+0a3};c9fSy`v_wSCElM9UojyxYH1IIOg54wfwx+SMjtQ=3=G28 zY=Tz%t4kh~i62hnd<~owNt=S{NQm)t9l*t81SxQ-SK|sk=C#1URCuDRBbf%4==fz{! zIT}}?MNE+Qqi(yvH@Gz1?&K{*6!P@JKs2UUY)qLhIw2KuJAWTbIPpaN`) z>Nig5L~Qs(vS1b8IkYt_I(mX~>DbjTb5e`=-j4tVjag)p#JE^vsSPJqhk>d|bbB`G zPK(po$*p^4Z$_lNd38}#~LO5Hr@$fjNmuurh$k(GA0(rmH#IgCm)~-$}c)t7HuI#D(|J)e$CU|X!$B516d0i&*XNt( z)yAsiJf;X?tNZS?k#TD&tj<0jY(AqGFajOQVg8xoL70+SonM+{A%(-*AHEl)o;f zjY8?ci8t2nUVpZh-U_x*e3IZpW%>)ELD6%eZbH=Hk@TqFTb1bQEOucX3(=cIGs3K9n8bcSD>1e_ z%qS*PemvKk&-RCSV!x}(oUj=%-OT)Nx=HdM>oIRSEcVvDhzaq809BO?s~#w9e%7M6 zy=AQSs6>kfF~A~ecqVt1yn@>S@l2{_h`YrYX2FJ_PC3XDM&JTCCEU6m^AjkG=KAyz zShu1P#F!CT6L%0rO}3tcA)kTTJ@l-B{4uY}* z=0g`g34*bJ)CG1wn5)#AnyWx~w5l9D6o2nbNOWpvt7bCXpv&A4DJ(bu@*NSIfL_QQ zQZ~$bld)j9vTiJ+H}7|;EoJS}rtixKyJw6(1ZeR4B5|@hIy5sArFDf@$MoX>S&Zhw zZ@aa@FosW*kErW3;=u;L$@pd|%^!H1Y zJT&&)IbX6F$ftc>wI?T=_)@A~46HerhQ43xnH->|9NH05lNfZ5a+rA8eW87^(CJ?5 z(dUE@jaAaCNeZk4S%oJog%#58Dly*9A6AAqr-ltT=MDMC;&IkP;5`Y=-wScr%JK1q4BBz=|il zHA>(3uzglzlhi<-0=B^BAs4S~oVszQa_DMR9Qe#KdPq~dnoXAWQ)(*!&}Qe(?|8Av zOXt4hv-$tn8|b>MdMV9yF@+0O<+`!FuB4d<$STnON>#ux8JfsSJcXBEHt9fkXW&T5 zQ-T!>To^bBrJi9Pdr6|;m{S;D2ja3g}lsLat;-kehMs zGs%@?Vi-m~wZKo)A~b>ppn5SD`Fq8a-7SoGF*$q&oE78MdGgu>_gNZE3Rv7}fxWh@w>z4Qmcpb7qH6 z29U=Eay&1PAq|}5a!SKALd_A+>SK9H%PkZ96EwWgLyzAcx?6=cEK^lvfmI-%Xd!SR z*ik&l?GWCXz>7S3kTFW zrT`S(LVuuvb3M?fV|tJ~nP!e+M8%U=K6*Ncgi-pIIwy$1sh_&u?-jpzW{h|a)4O2Z z5uBCpV(e>wIuIJm;0lxt7qeV3+ht8qACoA3N8+r5eh=`@H(!R z%=V~@lskibTI0Lh;we=s-!p_`!=7Ss@tix0bmE&+e9i#01q3VQqe9BK)0zeh4MWW~ zdJh#25sV&uRp+Tyu{s}3U632$E*2_MVX+rR9$V8UqF-Ewmnt3Im1^3Jnf(R8;D$Gy zLNdlOl(wwCMo~_VB4Fiv3r1Zs~>hx0&J&u(ecL5lhc8-eyXt3TGC7JqtEZH za+8bNvTnV)3H`;?;Xew0X44wO%=@vPb({CTWe<^yQt+Ir*7*zulNiZQ_daz+!ek42 z6M5RCdgKnWb%HoxJIT&nq?w?e^n;poX^?6;?X?rx!a{8xTmrf+z#97rE{l-CnjMv? zi*J~N_uNP+HMw5AFlZPb49^n3wb$>_DtcvoZ-E`m({wbJ+i5VP_OUwdHRLJBr*!$^ zTIa*gEZkF`Kf!K+j@&aVH+<81Z03LczJ0Mo|*uS#nMTE=|^ zufBv1Hp$?NoBjoQtE5pL(~*S!XD<9dFq>rUb0bC*6YmaZT;ffAmiO`PJ5Rln=_^gU z-;2QEvC^OYp&+!>3u+jsT_RGzw@uFnDM@$5&_&>GL975V?Lu#%%|vbZo9qTp;Wf%7 z`HuSF{OiLK{p|Z|_>r_{U6FDSz&v*0?_v`FnF2w_ zNhXmzQQ~Jwt)~wo%gZi#iD43QmtJ8YO(N*GXt31vtBW)>*3ezOU|*r(Z2k4#OThLU zMl$~Q+^}Md16D;a=~=~i;qd$>ZVg{PURmH0D<{N-*ZS zqchlJr|UUz#7Aqez@B74(1TK|b%x9PeZJ0&kUYbHrm5XF{vRl=kTJ*-9Hc|2b#t&c zRSdA7lp%>eTdpoRJce6rmQyJak;FX3_Rg{!=F#TW_7SNEFM*d%1!B}44bXh#|7o)? zqV6y7o$fBz>)0i?3cmFD<4b6L7S3Mjwu}X4sJnI=<8ebIl>TR54urG6NdeLs3P&iR zza0BG)!L5TRL6n>1u6Skep3R2VqV$<-K;NVPmJ{8kiLi;HRlf-n8k^dth z67gx|uI4rDO@X`tb7$$JRC30anu1sMw?A_jlF0=fgP$4gEP|;n2_@ehzTThjB|z=Q zE{hhM3dIEbodB{qYKIu!N&?WVJ$p&l%v?6EvQ=R&1PTz@1+P#E0?1r zZ5z(2N|FJP+T=U&t-dc&64QV`rBy_!stBJ8zXy1ZmVBmNP+{xufFb#tIM0yv@0JqbJMO|3W>O9^Ru78mB?;!2sWW&BdBIWt`=73d_)I>#$Up_clH{Ez6F=Xg}J6@_QN zv{9+AedS~_rUm1H40K&GxmXBbR{BkMTw)qJ(k}|aKF}h!X}Hsgj+jCmoa!BpHOb6T zB>l4eue2+kTh<2{C6Je1eKCA-osshl5EAL_sr(O__hD8m^@zqa!=qSWjQM~=tF%cu zBhAiV^|tw~akNiR`5KzlqF$Fq`vjR=b6iBA*5JqXn~Jsdz%{fR92ltJx{=kZrF|C^+g*VKZq0H*aoxay4F?!r;yOAjyA8LU@qt}1w+gtxI@m+t-n290jZ#^ zWK97O=7mu63dV)b%xR|wRQpG(hX~_bYwg^#OfC=fyIe9{`Cgt^?z>Mor*yL06pi~e~v5P4geP?^d!Fm42qul zh{A7KdMfnjaTC`$rj5?6PRNWyBXJ~|LG_KyMNr5y2!_u7)zaJFBufxSWHw2A@spM$ z=C}$<^tWHsqOQD(4mx?Fn53ehYn6<$yardE5hnVuaj-1&j{y4!KA#QLa^Jxg+Rx9m zar>;^qDG+H^6(kMduN^=8I8w9Z+?HbVbLRZi*LpO3ov8h=d`!&3Tk@>$>+o3f#OQL z;+L=6<}CxKShHW%d*nZsHebC2zF5o{bB9@F}KhS6Tt8f3xjq{sMmRMG#IC75%){SkrXv6EgW{@xtv|K@ zV6k;~LSqKZ#U@r55e}eGcMFX44ZBxS&yyA?SK9?1jGMO@-y>iz(<5MYTaB32d5Z6A!3oO_Q8$heaz|c85Xq4a{ z!Hqbse{U{cD+DQpAb-T~LBZ>K79kKy)YRQ8j{Ik^LSP;|>_>-Uumic z=n3C#$2EW-pm1VhY*|xGdfgDl%bB(e!u7k?9 zwmHpx>)X3q<>%s=g#HEgI?n`x6i-x@=1H^_XnV95vN1hSXSpA8N{B=0}9-c z=RdACfQb`8&;krd3t>S+9YFAkNga#qe*ny$4A&)0Ct!$F{bPcI;=#=KO$Xp>a`zGm zxUFQ*PL%5TPL5Z!88)Pk2Zd6js7j{~WRNZFTv~?bEXmswS|zu=6=+7(-_m98qdvwh z%k^`&AOKw9`BIureJmI!9U)38WGjJ~U>=7Ps8e_Hb?uH-8=N1k@%-Xtc^d`;Oi>wC z)`p1z*xLEFLA$|BTb!k9;oLO!>um?6wV5uBp#dR#qeps=MNXK4zPet`#QpNMiLu0wWDgSA@m27m zqsF!YuqAupa{4o7IEI2ffL|Lr`-IO1w~wkcIIYt<6}IwrXp^}RT^DEa&ZafER=#BX z1>;BMlclB4ns6ubyYBkknNkszqE5KLT0++h0sGsNsUSvIDT7@=W%MC|3``i6tx~T% zS%=cXYxp=@Na(&wPMPfotmOYHI@8M&+0*C*?nCr}u>b%z`cvKyp+)}%M2o4PRYkfz z7qJcOfk+iV5JcgLI~kkdzQyJ=X%wIT=4UA8-7BEOmj^UI%2N<83^Ex`Op)3~aq_$c zN|{`ZKU)G6{+gjzGa(zX?M?aqRxid>R1m^&P_dnTrs1p#vckE=%jl8h(I3(wy9On0 z7T8tFit?YG)GE`%si)`bUDhf?&%C&s9)TBWABV_*cnp6n&5Ywq4|ipw_E)CMPglVN zggO12%Is@?OvZvNT*wa>j>qRWViVDdw7k8R`B-Ggbj^Wmu(=_@vwqN~$} zbdAUSSY+2Gm5LQ3a2G-;E}urDMtT1n_0vU4$G{+2ooKZ(N@u$tddsR5dKMZKd}d;a ziIq+!7)=go0WMj1UDlqVhkl0JcO4&Kk(j^~^VEiEM;=Xs|B$OaGUgsD?ql7Izhn=c zQ2x7Fk(XK#d76jw?elND74wjkQ56T>-Ji-1eQZ%c@P-S^KXW1n5O9U*{S@GOde>aG z(%l*A1L_y&wuj-~GeC=1EVKT9lrS;!-@ES~mSO9|4WYaaA=elo@9H}4Y6dWLLfM=K zSGP7he(!cp>V}FV_fhUpW1&YvOiO(579_%*<_Io5gcXCJj3dN&+df910+vOkfA{oN zNfa~v;)JKxgn-KrzP+03T4QHT^4_X1JX*FT==sl!-*n;P{=}pE8uK;pmRJeXP_`~w z1Ifb{%EGxb>MmKnt1eUwEI{rKGfICzXAO{=04&J@wnZJk%So+?aoNK^|>_qLTT=qpNu_VeCq|C^GPy!lhq4gT`6_j2f zi3&-+kP80`a5-K%>lg>~+^$*LuXuiYXjQzXa_U)r1sEUzeLHaO)O&h|+ITfq5<0jF zh))gl)HWZK(Xt}MbZAeEtdfLy=KX(8D(3t%F(*Cjdk7;mh?q7?v*J+1* z=pVF8$Al8YtGMXilm5F0z#u!XBM$w=3_!8*vRRd z5r2Oh^m_cIfBr#{gJ4<+HQ$%uBGRi)BC+qNE+MiUFemco(nn(i|$FhcTR8V$Y`#JopG3LHWd zDw$(~qQHK%D7Whq3ALV<>v%hKmFOG}Vw1)85KLe`iw%Wi62cjpplzTLbZ>%8$!&Y5 zd|aFGQkDQd`~!UGJxVa{A7VxNKT9G%@wBx<&HyM#RV~1~qtTPOX8BMYeN#$%O8|P} zVer+~YG%hNdHN#7Mhw_jO#T&^2&D!fr>+m3OizuUZAHBH{s8~p&>P6oN^SOkv`!)@ zmjOTuY83V3(6@CQQAr#G8t(G7)@zjb0dggsaV>Un+MA1cupg;&rGxS(OU z|GoSC45KX^fje)BY5lHY7&|S?R15MEfZS0bhymMj{I}&NlOj;?ehH}g0MDN|tOI0h z-|96uRG1{o*Tg$o{uC{M=sE5)gUcXB8lLDLy$=c;UHCLO#|kO4jGHoh@fMsz+(_Vr z_Cx*$6v3_sb{}LYnnpM+#u6Msip(BO>%<3rz?+6jT@CvkIzu`LN z0a~60@VNW$9&%V5>=u`O-2e2sd41KcplE(8aVQs-C~lDE7K3LwMIdz?HQ(@KWhGl! z3Q28n*E>;}Fgi1*x@@wd^w#d9!EO?R{omG*SDq;K-{-F}T;EA4lBo`TF@l#a*RwwM z8`g?X40uvE|>EU%RK2zx|gO%Jn5@s+VSf-6nqGeb(> zr>2KmNRHi3h^Tsur_N)2%v{gsbyTKCMLzSR#6{UhHMq>dgmEbsXY@z^GSV)(j>f3O z;@C`M#<+m!-F;hr_m)i0tx@+#`znCk@X5u{^_h!ybf#4v+LN_QFNI8N8FeUzJk~by zdbN+hD82aKIhwuXH{Spt`_%yMU?c=Z(i@mx2VLg?Pa|I`gOeWv5dLNW8FCV@KZ95; z(KFAw%BN0}{7E&^K5v~#DVY0LdE z814idkjnBOADzA2Fp1uk*@|O)G^}a%6d4)1#Eo?cd985OaE2%HIB|#A0U!gm1c1H zXnH|usLL|T#a7ww#Nl+MZHj5r!uvr&iyDdX+zC#Y4?m;FPJ+m~hE*e6(RW%2L|))+ zP_^)y!o!#uy|Q zcaYHN#4*Uq+=MmF^ryE#pwa*9(u;p>eNRCprSUrXvj$A8i{3O>-y+)GFMj0!A*&8* zq@te`aC$I33CtYV21sE^B;Mz?Sc!rNNADb5##L!T)~!<9qXc zPyOwJ93k%j1xBuf7j0Jb<6^IrM&y*~JxPsz699kl z_USJIJ&11>gWOV1bly;2i6nn$#^BHW>v|f4VKLFqf-l#j`=Uh8|NeAZ<5~9@6h2Su z>MlRbRx{)l5FmAScAjp`PEJnd78c(0jS4m>{rPhE?K)hR&!Vc^4&Fx5*2wUs9p)I?5E_7yq{9Ayhb$rRb%T zyLhB`f3SO|E*DQ%GYIzo0?O>jY3MOkWu1AXC$=@=)joK!*3%Kxf@p4T_C*EV8rD=- zi!H6y(-{Mz;K)6_w!YXy_%|6w z1X_z(F-S5~@At-gYbFp0E_BdCT)8S7Qwiy^sg`n`8^3Y2l zCqd7(dakwHd+@DYsrK#Hxz;~F6(n_5mGUf{u~=aBLwZy)_x3T^AH_^1zFmg zP}|_ov@jGBiL=wXbGm>aQXEVh-|lSz6sSFMTVHBBy7Kbjv6Otlt;?*DCCz*1_RJlNMddOwX{hMm?`mxvDfo z-WPYbaZl8`=ROZ|XG=fvdhcd{wxHBG*6%PSu`n0@JNy&7cSnu7fCMoHj_d5@h5Bp!5Oah;ZYbx!;6 zlR*i0b%@1CRb1o#f;6|qrK^RMF^=G@uYN`~aGb7%c1+SyA0?s|e;R}oNE zV#*!Mj6UvSiVhT4?M!@U>99FxG{RlK)dX+CC>(Ils#!9@hdZJoNiZ*>Yi zDK0F$`BEQ_PQu-FUUV}9lIP+JEyPM~fGR_kcD*lF8|W&eniz&qFd!WoT8=aa2sQIH z&PBKNJ=90&eRsQq&(KqVlTD3t+6bPAApeFNac~@j8>B3w7a{LG?I0tGhf~PlM#jxH zl-BT`Fv|x4xx=dS_>(BD4eM@hx((D99dWL#KWlaq^o>@G{hCTi zb@4=KE?Nr3(YoC4RF!)*RV;7U9EWBeM#M+p2Y^utS>L0;1tn*ne_3QF`(-)u;}>uj ziN|w+vI!uc}N>wOk+9}zHlgAMK998!R!E_e)eF2yRShea)I)V=dor%Vnd zb^rDr1GnMP9VWK-?vT&1%-Zt;8w9$)5B5La|DQ1PhbVJex%hJfdQ5EvFmi_p3Pytv z660JG+5-Xsxz;RH#vXRmP}VKP1)gm|?Y6;?R2#`HA8Kf8PFEH}dXnKf1v-x0!JO*G zI4`n0b-EgVU2{EUJGXx3wEyj;V_n^^t&d|RzcP=1yw3lARXJt&i*=`Nzu_TV*iP%} z;jb+a5*>If$hR!mc&Tz;`+$E+j@m67bYBc0)0+WT;KHp!lRD&`0T1H{H+hfN(BbV>!;4z8w_Yr0 zJ8fKDf0?KBQZ`ej|`avkXRx@9lLmE|p-)C#re-)m^*H z(?GAi@w1r{2a%H?}Es9Yd%j;ey7gKR$tPlVsQ0$8o#A_1>GED zX1?p=ejR@5tB=e)wGRo-N2|S5-q|e5Nrrz9BVG8@8j~piYM`9xjhdPc7nhEuGi^n> z2egOL3_=qBQUr!0X3%m5K&dCjt)qK2eyTS}N?z251+hYrdY-FqU8v{@*e7hcOz?IRHi;DQm)C&MOh6$Ae4h2Byh~0fFzN9s++X{ixxVHJT*xxfpKpzO(t3onv z$Qbt9a>=g2B{KPX>%+JAhWjCmeXqGVmDqPaLm&t`*~6cGNgHP6(?{AwD#ws>JR|Okl1oG@f7v&za1hlR&4| z*v3j*L7m*GNq@PIMK$?xBBzh_na9)-;>|b2QZh(`pBhUZr?_?r>-cuxXI|{ybNKlC zkv_>9keyqr@@EGhpjK*izOO~-i~sh*1Wu1iDz|M$k!09`FF~~|p^3DYd|X^kj%uZ7 z%4bJ7WUsFL)vIr^I3`(@Ak~fzNvAcF;n64xpjK2Z(ykzNI@9G+a<#n(XI7*3X%#je zc(YwyKLQYgoHa@&;KWDk2eP?B-#4iv+Ci6l6vb%W;)M*$g{!F8p=bkio@Ty!DLkz~ zNp_htl$wo|LnNvxxB8l_FQRI{0&7=`9}pzSUe*5#)@8~Ql^~82`R%3v`u(YIH>uTY z9)+0wx0`#5~c~PtPJ_O=SPw$9{P>eS_wnR5EOV<6+AXHN4_*T1B(V0I{ z@=Pst{c^K6_$0@#H&L@$il_abxlBs$rI26~8!z=5E^_pd{fJPFnAZVNT{%sJ6< zL=|B8Oj3Ro#IDj^@^*BDzD^81-f+t!B2)-VBVEpspsmvZczNvb><&v z=M-j5#$^)&jL_uq^YD_njpEh8XZPo_!Zw#CF7=6=_&Nbtz-uBT_mJNkkXW6e`(HTP z^xlQqQ83C^IZSE1o6`8*Z`YBYcjEK=2qWZmMv5KjQ-f3yLXqFwyp`;_l9HihnSL?j zyk)MdB7z^9x6b($?gSWqva(q#!o8_UUhVZ!HZ>x$A;FlW_`$x>L=co#g0Cy8_jY5Q zBE-|KWI@C$$E++d@{d8JB6lKh*KYZ4e;=>ghTZOH*!0JQ%^!3fv z%>9>|`3{cK1T^YvS?w=P?>SL}F_B2~`da(1+WThwa1=szjHBsKo*pH%3GkA?xN?*0 z2lZ__hUVOm&#W{=U^P`@)>c+s0Z&dCbFpW_=*72aNwW)qHG{iN&SEhxF8%kkDHUD9 z;=dr*>q9l+g6nCuje6BLWmEg_dr>vN0%;ClwSUWZwY}&R*g?Z8sO*lx^#Iry~#M3xtwNQ?iFvfjO+(y(XgOSL z#t0yx>NM%7;oI1cw{`7_k5$vOc;4yXaqEXj1uLul z%~Z;`rC5o7g-q^}rsz>QTxAugiRQjtGcI4)dbMgKQ}KN~0GTh%w-0~}x0pijL&y>) z17ZY3Vx`OiMV!meXFs+-qw06xu20%HiG9M_cwu+(=gyw5GmZtmaQVN$Rcs+E{je8+(SL5-ILO@|^c& zuR+Q~=3HNaXd4BH?E4Sq@4c^LHQDJCqgtLx_>RpV8*{l7{)3> z*N`6vJW}^PFyjkU1OW*g*4+F>(0m*`P z8Adgo*)l;Xz~C|-m+Ie$FY|WCydUT=THDqx2J#A5=>x$aKoj!JR*%JHk{%E z^SZ_d*Nu|8I(N0BL^VOf+RTSvGkgR>5PIAVl2&y#X;I*Tu;CH;WFmDsfK+jZ%j$eY zNIu?VAZ4ZuaZucQ>=T26+0=r#L5eY*S5xserJe58u2bFaujlPlMR)m~cB>|?6#EOcD<0xa z7ZgxcLn0p7hFJ-j`E@|O^yaT?t$_~lOHMp%)*OTTeIm1;bL1gqJ|B7aeE>b@QJ!Gt zPT}OAdr&~XH8_DOkhri+0tby)()XGpdURd~9b@Jj=CSvJ!QdQT`BQgWw+(Xq?4`B-Aw*6 z%1jM#IxyNLY-fc+woVRn!k+TZUyaxFT^uf_S1nM@Uj+UHQ0V=@ns^U1wmq|zB}kDm zjPk#PdM1L20OuF4f~eP@Il31G7B^TS!-va917+~pyC|~spP4+KXU_~%O&bDUpj3&s zMc$Tp{hlL)yT96CH6uPN*rk}a;~VVv>5qk+@s?UDm=ginB4OOS{Ek!=rl*fTU(hp+ zP%NV7oH*!P8@Pt#GoiFg+6K|vy0o7gVz@)}*;wWytUL`5c0_Wp_^pY^%FU0d+SSB+Wd zJosU7`#n`E`gww?J+$prX@xKCJ&WX}VyiN`pAen*MJt`NLj#u|aOkl9TQAIvTGDW3 zC4(jx;+sXWt`!Gh|MHbfzL;rYZDI1hixJ}>W?DWu8NQ@#3x%0nhqS!+{UTu&{^klh zp@dBvcRKUQis7iU|GSsoV>&-dcg+-|!KR_Z9ZTFmu$GBj@||-BZkWKK9%in;Ec{j1 z|3%k%zr*=OYhSN}G1`bW$|%vL=!_OMYQi9Ti|7Q=dlyD0QKCkIL@&`9(Mb@!*NEOb z=kYz)`_p@!|6pc6d#}CrTKD?gTlks8o|QxIaeQeL^XCkv_E3X;@aha&Hh38Gu2Reh@tljZH82g#+b5#O<-i2cEZd);eU z!vC7mIW$%b>4I7%YJbh1$T!~gd(0dQW0ytUg>^-_x)V*kv6(k95zVjOJg9mW#6guB$< zUhVt<&?7SBuko;w*q^`oY4KGmzdy2_&Z$XjU3fpnfA##^h}Lzk8)eiE$w4Owuaip>=D(Ii5Uap z?%El)t*B3^UOiQ?`C`8uwV_;m<*F6BJjl8bj>~T#izjHxjvrJ*4-)~^t>SX|%=^99 z!!f^yZM5ep#LWH+!C;@iz_hMT}MeW zKAb1zT%*_#?yEiae zQO+~lnvAYA(@V4-eU_Y|o7p&1dmTnN0R`LgXUS(m#pZQJ53>o6flQ&F2amt?x-vt= zC9mYkkU!`8S<6}T`uayF4;PzkucG$owtdVh2!R^i_3>xvogur6ke66O7{%%P2i#DJ zch1(jx?;Y=KJzOha_pC<4#Eu47J12BI*1e{INnQ)uSXugrIN*Ba@ZC1mvHZb=P(Gv z`s$@sQn`YcAU(E44>Vx7oWjRql~A!_jz!Dz-c zI-a=dtGF3)vOCS7N5*8L``GGn>fhd5KH{_%ITuIvP5S>8fDT#jTZM1rG+hVuKXoDU zY@rkiZjC@;`Es6C*a`YBC)=vON?rLf_Wg5H8nfe^d)Yho9va{>xwq>%-dkAs^Wi1l z-HP;WXBi(S{~~|@qw{=DMpq@BJD-cw`uPrEL!~cuM#P+xDi*26K?OVXseSR~$7MwT zYwau(tODG_UrKw7$}L_en3J^!voF))sz^D-YIUv)6t`TY znDb;#fIkQQ=-d3ltxey`c|zv^1wWt5N4N_U3&!uZ;5Jc3AoAFk%3n;;x^9!oCDENa z6}QRZiU(}|d;5bm!&kelW|gdrBrjQ6hu1VAFmUm;GB68$2E#`}%5@P$#f?r>FcYLl zCM{q9Grr=str8zHXy)WJKtnY3V4D0d*MgVN`v>CO4@ixkfdV%oS>pumO+whU)yO5* z(=7&of>-9e;_sLf*!xoFj`DWVjm#Bo0bW6Vm?v=XJ*kO&$q7JCYMCOxc|&3!vHeHw zcmOb{qhEQno+gVkK;)dgCm))9&fIbLF`1w9 z2*5KaeERG3a-u>m-(4FNGB}_8J3D{zCa^HjAxSH7U~9o=nZWJFXt;jfH(mFTnL@R* z#{nO>{|;6+{EJ^j9Z{7^(*^ppjGU$fymshGRJ|=-BzuX#Qm^oN+VeGK;4$*eMAEy< zLaR7{2o;)nK1|b~&t`FRd9wR7wYO9vQ7^uR`Ik=1(e#^-IbUCkyyX%k_{>ejW0UC; ze((3aLoM9V9q4?0(EZWSu|Xkm>}@hvdhTS>RX%{5kw~!$vjOZD$+JSZj7lJi=uTmL%i4zWhk=ij)p4Ng13wIpv zK2PK3q7)rUVBf>>5bYyqPUoo$R99@eu88;X-(=`^-GV=#<1#ub<#){6G&5Wts!}iK z9_EO2X1T=YredtX^Va6qR(joQCY5f;I5lf@H8d-O9xo9yzb8YqsxUfP;&rk`Vnn0ROTS=2>)ujNxrYK&_rfisBU zr-g{joa;J8?@)%sLRJhYnHrin?FeoYj#Q!Xf58cv#N}sD!QF zt*=>eDU+L{6ky2oJ~DkYB3s6vFEXEZ`l&*V!T48BVfQ?ughhb8G=#7A}JP(-Db!jVeS$ zRxq))l5=c_CivazEr=-t>gA)^JTXIf1Nn%$_{b2-oeJWz4i8<); zbCzF5?7EmdI1B=6~!8km4Ug@7+cX5GbnO99W z1ZR{_-{ug}<0uag;4aVvg`#zY4Be0`NV#vg$(j6*%ljKqLZd+B2~TW_m+|f7n^|oyTq6Yx$qn zWJ~N&cK*MrNPO3Z?)?yxrvwC{n1vakQbXQtn%I2@a)VwOJfPR+A7P> z(3T-j4kOSQG2!6MXHh{YwblM##OZ506Nn$#km%biVd9Pd9sq$Sgoo5TM1YwhNk%Tr zhx&1ejJYJBF63dO5LLL+yq>no=u@~juwXn**Yem_kA$cWtVA`;ctVfY^u%fI0^e+Y zowHF23~VZ$qiWc&R%|1+e=w4OZLS&ZO5{n`D4WOWqP4h+oAk@Vgdk<%=q%+?v-36W zHDk*;zG;SO8LobMqz!`ScBlEu?ZXfX?20*`95a|))auURHcWB!N>aZp0Rz)C7d|cs zBMTz=k~%}n3d$-E9CfxkNN^{umo6TDR#)(d8oQNLV#`we$;jDDm|qR*gfGm?yYfyp zq4lVo;m6^R|86Rg?efk{I0gbZh)B14dnOIPe>$Wlk(gWfi*~S&4<*kRL#(H(El(=G z*@u2ZmEC)?|F;AeZfjA)mrJAp`!xEWTX}VJM>^#R&5E8ihD&;U{;C>KUVqX4&x$7a zwY2i!M&$I*(_=EP{&z=x%YUqQOSpx4gO1$FZE00Z`(JO6B}f$xl4Gmw9B*qSb7~QK zS?mTgZ4x%>GvU^vis<>L%M#laBZD|SM=qk%?P#r0^EDbhHDXX;NBsFjL4< zDt&BqqmGcF+%>^FJ{-ahM6Z^;apwkVSifoleq-uK3!FUg#;C^%J~YF zO~bY9Mg3$+tRKX6z=sD+LAipk@j%WZWDH_s<(^nRtlPCSj(nu%bpN8J(+#EPFgAO5L8KxnH@Az zz%jVO%r!|?Teos7!ju=PRVoX5$R)%?)5p$!&b>3H2H1zrbKt%r7DOG~F(`uEZ7U<& zAzOhxsed58HgeX+k*si$?Z&Ow%Ip6GeC7|2Kln0G1{WOt>p^)4APVDIKL9Akf(D>jF>;VkK=4p+^QvNojyxM|D_s!~h1VaWwkV6Ne zbp=Trd_TGKivvIQ^U86(eacQkni9?nth^vud0FWaFrn}(u}%j5mVcy=B5eH&%OZ^m zZsdkPWPk;MA*q+P)VzBuYNdop4DBsPz+Y7g$Q##VLf-Av91%D+RCs#fO>lbd zXCOcP#t=mvTPbkH1E(qh7qqp!h-EwX&QCNGJ~8PL0CepZklSFov^TfE>^CCK+*&U?;T zH|H_)mc2tqLvoFWKuXXwAzw#b6h4RC1bD_tbdIk*^3m^rJ{**@wx4r4f(1^@ifp2U2J`VzwbY4*vdb;+d0neSSa54F%yY+w^fsv1CT^~==%R}7MR=o-= z6qHjDMVVt+Z5KF=#@L-$CEFiJT%{ZAB3^7iAnj(TFKM(qD5BfTSc#-_2+3)OiI)VO zkl{`9X6k)2-l%o8X28ynWOmSv0`*p{LLt~Wlu94=jaa3)vkIKLEVNpWtSx|AB(Tje zcy6(Q)iaDf_^rs~0N{;DJ#QL@{f2h(+w5@&K~I25KV@HTdO$PaPF<%o_?cYXz>r0@uh4bz|0My>Oy zBF2%0(O7JeCV?-bltU$*pGl}l$3T5gCOi!b8#}m$P|)*35gKkR^+36@9IO(42$YZ9 zyv;ool9VkF3ZwO(Tz1ag6?%^{zAUJi$#C%~#^{!jmN@8uC>E9bnqsy?+E_I1e8(u= zj+)(OvDA^o1j!WI=oV6O{m+_M1*TJd?r=-zVzr`2{)c|}1#E20eB5)v>eXa21X$uf zAeNp$^AH{Ey4~81JmcA|dWyaGOcxAVHHOPBC2@|}m_2kgI6#i=HBBM!3zu-b$}2No zSiq*LiO{`iot?5l&to8Wc&hqain7(i%!z+1!pQ&H3L13H`Fter9QhB46@6FM_}(Qt zMWli!wsIUGB}m$S{*{XhC&rL;x5fs~*Ur3lo3Qv^|Cq1imdibLE?I6!s{sCCF%ew% zeb94Le{}9-YT+W^kV`N#YjIUX2vK?3OkGd#>!Ranfru+}uXLN z4Zwc#-|1ko+x;zW`898QH3EyRCs-TaP!7B&aZ-}f-_7MN*W*HB>g-;7Q}I)2FZ@!YFQtpmR77<$i4Y_Hu`CMbRZ7C z|5qNOLPgOiLa!~Xb=v~Eo8`boANkUTFMeRA2IeC;g0e-TKQ2-43XTQ29)EM5tHF77uLIi1jvx+It05W{*a@DBKQxjI#NC??{AEA49|c zwA8lkrvgvRz_I*O^$$W;(PlQCz+Bds42NIvVQm0pG!871*^VrQ(>s%IR_+oeUa~B^ zHK`a2Zvqp^rLlXt{V{-R4)^ct;B6z+D|kR5{&sh7L;t!^9k<$U?xcdXu79$b%Ck~- zYH2)Xyji-Mo2PNm$V1{3#=Z}MvK#tC%p+ZFa@?G6>ESs6Cr>_~Gm|2DQO{8|I3gUp zB}#d*R=VwoEoehY78Uarhs0wWvt?8LuTT{xeOW#vpZ?Qw$g2w9ZFAlSDUm_R`QN=p zOAVZQW8myaMuI<)n6|QEj0Ra9SF6mSn}^nIY+p+5s1nI{H?<^fCJHz&J?Ed)>~hw; z7I_>7eH)s)(FG`RW{QBcrepd5+px@2E!$bya)F~gCmUa|%@rnTbo_x+QSINccSF2u zwy7T#^0`ac6Hf|x<>(F%;4#F455L1(Khk#kVAr6iom?UD(aw82cJRtFj8UBQ{oC>0 z7_OkDxJPkQ99ct(Jni2NA)}78W(4vByLn)(KoGeAYoJwnq3^O&AaI&PjxQU!8Sz-_ z7?MeCW_|bE)DKjR+B7{v3KTUeGExGWu;SuoKl9-~r*-1HZfpNmoQx}blnLjqyktJt zvDTG(RWoGXI%IA(gRLF-2Wz?A8y|B0go2;T|xHtaHq|LjA*47^#|cf)T$_HMlM=Axa%$FFC(8`*I; z`$(K27z}qhN!h~9Ki`-6)II2ogNe&aO;EIMcBrnlrEWDt8D$k{hEY=Y3h_G+6){zq zG4-6>JV=)Ekhuy|sk@4{2zB76)pI;HQ86yVGP0(q@4qn{@UV+*lqgIf_m%!ZLYpX2 zM%z0H$qS33=R$kZuKY9+dA^fkZw`61u0c%pwV`2Mk?)>D!AKtrmatLgbVM!EEMcRP zI}iC(DdtZY6$PP$+uudZ^_PutI5VomUN92(=Ht@MA^hMdKTJ`?=iLhFT^N-Sz;UH zg9a)9W>a6L``<(U9FzKp$M%M4k_VmuCnNKvCn5V#nZFhFNF#@lZT+ZK;@CWb=XgBh z+qvh~J0RX1U(zxnf*4){R?mC8iY5X&?DjSulV z`a>jeY?Oi}LUulI;j_tyW51)`0^}^&$NG|H%Y;i(_&3q%X`Y_UJ~sc(phKV=jbn%VoM1wP9c@9y=56Krz|)B zB$1Zj#HAx25F~3+JD3+Mi1Am}V%s8zywc%X5+P!b+_kX^R?kB`stTM^ru-)nM`K6C zS@G?mzh@eA$#{rmLDxS}(rlsn4u)Th5@Z;soUpubm_G%V#SEM$!9V8m$_A+Zb55pO z0QEAC%Pcqko9tWgYTnTz?95yGg#M&$_s2!!-kstPsv0;)Bnsa?ux&+555L$^6y=w; zIN}6Y-C2U}v=305?m~bg1!$8uCLmbN>y-u7!%nDBb(y5&jTXw^P}@ro6D(!ijx&BTHPDXA587a(Ru5ISWryhMp41EM!bhR(x@F9vySx#1N5|>$jEsDMB8P@BnV#X#0gxo2-N|0i72k&&DZ%Dpe z4mbO$-0uo;K!Sk{`bcndbD*~!8*=y<6>&Q*)V7b+Y-4$0Hl4jP&~@ip979Bv8~d3; z1LfipH$acd#oWD6Q7vUcQ*=C`llOvqzR!9t(82qLt&Lw zWxT$|-p?gSi=iG+R=wRbxeKIIUovo}D4~>MS|($eOo+=3*CAcVk6i`t;eVlX@LDzW zJazixHxFD1x;~ov`^jO0I5e2;PGnL2;y{M}8f^+lWq#&3)_WaUR{{1;bg2s8p8PEh zHAwh(u?Z{_C9RA8qrmxc5whj5VKVB`EdsYv>^vUxP!`p3{7I=SEriqG2aU?VwHxCD z|4NqP4cMbla1(EZB{GhJjy;zcP~7(^<6EICli>3QJx>ZSt#Hj?s|f_jywnuooCN0# zru&LPI=U55SPp_#e^%+51ezB}4}LZi_Mx^`K6>LD&rS_O0xHnuRykK1Rqnj0vf*3r z&nibk*ba_(X6?Be=A6#VpM}0^)}bW@b4L~AmX5u2W|?=2SM~Rx(c(jZkT%RORwX!Q z{~V4~6{QV+mBE-?dtc(#YP>ARC|lyY;qSu+cj`9yW~a<*+X;jSV1LwVhD^K>d=0M8 zv0N^*r^i8kEUE(3CL z$qeR!ta<0^``ZPKKY68j3%IfWT;aA+rwh?rz8x#shHDToG$LM!hyRq*(^I@Y%#PW zQK)PB$vOSeYCrd&Tg);RC{F}p~49D zXOxW1FJyK1lCr<(1^(*AD6FaB}lRL@s>H(tyvW}oBKjFq# zLgGT&P8lxke%AC#@i}(ag3yP`;c6`U)uIW<)Rc6Bq#3 z427ofK%T>j#%|JBlzQ?`}98#Zl&{D12VkdOK=7wIn6mz0CQux zj0v;h#cos)7fOl*Lvy;EzWgdtl8rDT1cP-ulfw!k z0h#Ru^c)@dgRyoPCnCN&iPLYl_f1C6Q3x2Uyuy7}j;|&az#9tZo)P{4$q>q9o}j<^ z(c38RtJUJxr_BXO$3o-g`xOvTGJKCo=Kk(7#r~4m(~~Xwd*L$YwVOt@Ry$mvwJCj-(@K}r9H&@*P{~IBD9}EAf0`yDVus>NI$13JKOyM_2)`9 zL7?cl*EMbgCwB7!YmvIr^J~r#V9vsKq_g%BeI&XCRA?Jj z|KQi24W|q{Yw|OK5xWFt#czVQa*hra7;vwMk&)+h}fc16cf%nWkha& zusXyuF>C2Ss&SwijBQJ{yFrfKgDo>HN7-n?m(Y2nyn%lxcWqhRxd*=zx|Ya1+Es(5 z4nQ&U$FH1ouAT&QVY+!`7o;zh4li8m+$Gk78kAz$~PCh+2(% znWtMTA_Aeg?FpCuHje>8@FXWom{FMei;jDS=MlpM|rXmM@jGkm8lzRmq56jJiJ+)_dP z+FP?0eVB-6&(#{A4}M~c&+Im`zIqhWL^Hw&#`Z-V{#)Oeb2R-p(4x4ZAA}gW(UIqEeJm$0O35XFttZ_5%itoKt znTYlA8l~EKAY~o0L*-OkfY6mIkl^$$;@-83P|P+dAGx3sh+X8i_aI3&X1AjcW%mk) zO1bns)|1p?(bl_=S?x|_Y~GUt-}YRhVO!l)88wO6$;s!BO>GgjkY`gQX{2?!;a54v zrt4G9U`sa+8?Evc98R-y4Ea1`^T6x6>7{Vh;SWQ$gUsmm;qz^7k)UbYG^);G8-Wj)v?cJ6aF~8)ax9{Vbu<=n{W;LH*JBl)#n^QB5Ev`iZv$ zH*%|fDP-W{&R4#sV9r~5uNj9QON!3Suc}AR82)4HjPJXI3g{5^<&iNjo;#K<+zS|r zXi+wfjyU8HmG8d)(^IWp z$2S9{0({Z7w*!ei%bygzX~UI@7ET1Q?aAEJDrQ8r+x&tT?9#Gxuh0L;fn=@VLIsSy zqlv9jwy5)a)xG$mKr8>G6tL%mCj*)O17kv;r7h=7BSHm2R1p<}hLzL1rWvJ)O4k^6 z+Fso=?5P*eL%EeyZqY2$yCJXx*QSfgfYi~iiVFi8%jMZ3I#LJAkgDGX*oy+Prq@e2 z|7w4cdMzQib_O3NR;E00wM{cnyF_6H5OI2SdNN$kySIH~pcL8hx{@|#iy`JwmHczr zphU3stf{&N90H&+Y%V`U#^%u%&i?63dby$E^<(Aio3BcrW0NTT?3U?d6!z?Y@R$@v`sdrZUC=$#s9;JLct|IGy zS7%e|c}Fi@QX;L&{wO*456>s`W@w_(fpiocRoeD&8Z7f(do8NOGhmqf7Y!OI5*ON7g%8#vx|^ zCNk-Bw4gHk-rgS1kZ`K=&tMt->&+CiIW|CVb<-j1Nhk;o<~)n>E)BJ!ZvR@yIC$G! zqFYpqHth%{4Byo9GV4p`TJK?vf2^iz*;z2>xiEJlvR3F+`0oB*E}3FdnH2B43Mx!h zV8!#2bnY3FjF+(SU=kjPWz15mIZhFt;oCFQJGOYRe&Q*q^YjYgKX5^Qe1rXvYps+? z&7V_H^y+B+Mz~8)#p`5$w76QMVxJ>@E75vYGQo$jo0y0#Qi;(Xbf)EC%81rs}``emh-RTv-Y4!%v-X` zZ#a+Ck%s0=hc!de7_P9Yr^O*^dX%C|38%zsphqCM@tq$gW_MQN=8I!?G(Y4q)ey}Ph698!# z%5(lDgP(Cv(X@e|W1K7>0XrwR>r(0sGZEFMb;G_VE7JL z)wj(J44z4)iQOh->tmLBfyY%Xm8Wh6eS*9IbrK}2DD6t<27<3_-EE2qF^9>CBu;VQ zApspVQz+|BEXMd8ik2g>cAnKi|N9a1M`T$Iw?lLnjEuN1SiAY8#m1sXaRI_soz~1b7seE*At43jLp?guY8%hs)G*gqf&*-`mn^I)YvvgHvVttI% zK^-dg)78D#7sCNh(~LYaScz}_;CNCGny;F~rIK~srB=I9O#0H1wsYND{(s?F-^b+4 zQGZ7Jz2o@hR$W0kYYYATNpO>YOB-ZX5ixuTy2%+iWDzRVIEi1PXXP5=8C%{TeKsA( zy|{j!e0}|ANdL`;wr{D5d&0lfYD=i1C;ZcC6rx#dh`4UCEq1nPC`)jxUzDp9mJUR& zu*xyyIVh} z2Br;wX(f|nR{g`|dQ~0#96dckQZIzAmwaaa-E2AFv;MHX$E!37?4RBD+(h9f0k?HE zH-P+7r1Pkw@1Y<8`DXLP+(B-r9L}d<6c*qQyQM)uBlTt#e}XXjn&ZWGq+$cvzpCFn z)pVQ=KxglZT%Lr1cg?E^6~xGXzWVF8*-u^ls-&#GQXc*zkF$*d9Wa0k-1z_69c_(D$(E3a^S_8BAN-1 z+R6SCE(;P9H>!BRwO{r)nY;fos4(y>7^PS~`~2$jh-QAlmyOB)Zc>^o=&xV*2Br-F zo@hYwY}NwkQpQDJ!53|u2L!uCBG7>CYPZ1nShP$Q*-EVeka{i&$P^lM-MSPXm%ceW zq-?z24_|m$X#A?irq?eAsr1Sw-s_|%u|Hn2IiU4SksjTav!!92EWL^;9mwn9uIm!M z%1A`jAH-=Jz|6Tj0qI%zZYcPXKoR#5x}eN(c6ET^ zQWHIsgoN;=a6kjF^4N3ky|>M;u~9||z4;Oz+4dWOeSZ&+p!_DGOG~t8UIA#ixL0)N zz^-vkgc@7Ayq;z}$GX&P#HiKN-|yzA7`+In)V}_eYYRD>agr7eJ7~iud;5q2$!eJ1 zXi}~#t_Re5x_)fQwNHHdlPXWWTIKy5P`~*%0d1Ut#HEF_BNZXG=lR_R{ir9Q0#?hB zLftJqF<7>@*KJ3Ree71rHFRkD1p-0D5NBf=W*@E>PB?+3@+O$ymn|K${R0u|9S)W* z28QJHy_q?71++&cX*FUo@(!a!^Kuk}`DqIa>z$UzpUz)P0&G9tqoxdII={2_{TM+? zov@;j5YZA}Dcd#w`XXGM{so0ZGx-cm*@pC5RX-FfbAMjCaH0O;nD_R#g~p~s1vp-A zaGE~8nug^#W`SuB>X549kZAnP!Tmb|=^4POFO8+$`An@cv5r>pE@A{=Jbvm>u&?Y} z*&y4Sc*r_1(c^9`S^zp$xoIQw5-HMnB?4ORuHdA+k^^h5-u^?iY?r!~;Jnoe{(YZqDXe?gJYN{Wz3#w+jTHLZb%}24Ew>Lllz|YKW6_ug!ZAmj(PLR+D6El* zl^3d)D!B$ezxd30`sKu?nSZjYnfRT&eB?M=|E8D7%LJ&(T66V9bi{|N>E(qhOg{di zTcCxgV$88%n8Bl?rt804`op$-8RR$R2cOI~E5J#z)Z>=XE} zd*kzhCN3;{W1c!Y0eq8liYrN3b%++zQ@oDhdNf;Bkax%__0+qFoSA}3u zSR`Qsq-)O;%Q+8ifM_I_-OvLfaOIQi2&DGlI9ImHMNS{u<4;IntjMaa^u z!2%VV^jTK2`}1y8;>`pX(q@7f1w$|X^s#Q_q&E2hG@EvtxFa!xneF_CXC+IAqy^`P zOP{8BMhI2vz;!f_B7=}1PBAn_E7m-@Ebx$nwBI1dJE0<)*~nZ?YJkRF@uB8q4QQO$ zzLYm4S4>{IL*jOi2_8UbuDc8~nO56th53mBuhRW)TpTFdMYhVj$I-VuxC1>t`g^xi zN2!fAku1XxRGb+Cu0C7xpv)~9GrmPKVaQ=CUq0Qy+1wKix_A&1h=N20F?D2skc<$M z5FBFt;Xt7(M!CZQsUcgffyEYyAueJ%bLH2-Y79x$vZ%(Hr>1Qg#0$=AR1oZ|*}4Vr z5=}FLrg9U%WSI-1geK%bW9FK6{ob3vI2>N581DOU3Jr?j_E?jlKBhL@_+;T)vfm`8&FOGlp>f_PvA{A%si#P$*|FoO=RpM}X{# zDNM?iMhAk6XfFQ5f#Y7<3D?sSnkz3}plH1>{SjIYwJLAEoG_W%e|)@TfH!8A&9L4k z8<^5@tEz{v^uxBc>~TX4R(0%$&pnP|23w13?mhFaZ~4QLyk`=Vce3&|tNWdF7&MS8 zJqq_(Hi>>4hg@V*b%cp=>BCzda5%-JTxVTm=s4D@uxw?)t6M=l(w3&7Y{eSr+ggFL z%=?oy&JFZC>O2OM##KZPvG01^V)}|8>&)=gK-(zsl%FBWF%YEr4JNWD@(+fU7_2Wa zFjyhuGKM}^lNmp;mfRepFc4YY$Wb2Y%2XEvA1?eHZ+`k&OI!EA5Joae6+yyi+Mfy{ z7dbR7!@^O*6mr&1F8989CR_~^k-p$tkuTuqh#*LBZ>mGK4wHgPque_K)aM(%+aHab z9{``L@BC(qiL;9602Cfhu-N-kf20K+bn;d_2HOO%4rF!P_NgoI6LlO}BoON&<$7#E zk_7C;btEvC&&HMlmB*@ND*_r=v(ryB3`!O`o3#TRrTTKpJIjMS;)9>p*4b~I`M3=# zOvTTbMY=&*dHYg^X@cj|kNd9!OA%*W5NV$#dfFQU4#|4v@R6^+OEdEOd9Nxh zfu92&4~hRL5R=zg%euU{YTh`k*+se;X|4Hni3dD#p@VzltG@yK@5pw5iW;bNf!U9V zJXA+ec9|m{M7GO|7p&ml&E-q_Le@X8G$q*P3(it5T`z0jrd@W*1*v}>bUl&R*QSN8PL@T>L*dfHHK?cEHvSv(vhw1$mzmaYRSW{ctkd?EsEsJ>KxJN;_Mey7LG_RL6q?4 zBtoa-?Qhu;M3iM|t_@Hxr4fZ^kKFLN4s z#~*@{g)mz&yj$}2{av>59fPUSNX_ zkHk5<-v2wRa9c?0*xf`clrS%XUi^}lTC~OY>70vrHFSxHP-Ip{00s*k0%Nx;S@vs9 zYkd3o9CWQuXi7pV)tl&AvFa|Z8fU2i5;z;xa;KFez}Oi4tcv$g%x<^G z$hhN=nfiowc}!vDF;8}DZ(N~6O?dq{Pa}ydviC)I6f6G6wA9i^KD!blfCeR(F0ou} z>g2Y2dNBQ`p^kKrtz&M7B_>&7=MaxA^tLp?#JrYV!26Thv$-e{Q4z1QJun9u6Zq2tS9{!A4gT*H=V z(_a&Cobu>k>9MqQSpeh8&45pBwdioZU)8k5zXC0*t!L*}cIyw=1)cZ%=cn9&C`8?^ z?GKm)1@c7Qw_X1WLqsBdWVK*y?~#yFI4lNA5Ct}ev2}3ZN&UzTPTaKiLc=Pc11>Bu zJdvZ`N$FvX;Sxump`Fdc)fm-Rdpg!n5YJBMt&;mcDuPaPB*tG^Osv@`g#^k<+vgB6 zsO>Q|9h2=!jcz&T`OfTG%+?%FA4STHPu6LGU=SMr#l^S3zo`&=bOD@bL77Oh=nr7v zPq5@)(ik{(oW}jHYO&%DLwK!k zRnUm!6ktNd9ClV1)M5NhO_YKOrve(;Q5FWB6|!s5Z^(`Jn)I%e6M*4?9>!Mqz$3c? zH}Y`qt{0Dnf`NOk>dE?4p~u$(k&ZCC!w}pp+}Ss0uBIgTN|;ZLl)7JUML4&|T2d*{ zs=VtIgD%^^s6$GZXd;6OuxaS`u2CrwSF#;!4v~duw*j4@T#z(bdN&f%VDPd3QD>#n z$9_N2@J+UC3u8v<=d2qFSL!Ly$0O0SUVz6<;7C+4pry(xR;jagprY5}5eX3F(;(o* zME3%phG1FNBvey5v{`nbQ}5bL_iK7WP{#aSd%)htcQ*@cp`U%{*DfAk%yo@$fH)>O z%;P?ebtrCZ8ei(j8DtjXY*v`-@gq-!b=gp>3Itwx>#5zT&1QD3i+WrO7DFKJo_;m>)k*0a7^4JUX%)UMup z0Z59=^q2u>4Wh-z&LzNAf&G$GK2^6}D>(+lfx(!HT?8ea{?R(+--A)rqt43K^CnW3 z@tQe;2N%JZjDfk#-0VVQcDJ8tRLWxEW3*n{TEG89I7M^U4e%SpjZA;mGmTv;_BSHP z!#AKiLC%QsXx+-2-imFJ9;&Wq*~dmrhIRO*q|_}?!E9~%{ciSkMO~SjMJ2CfiB#VH zjXSvf)nb8&*_dWy_0fa0_xg-2bQwr$`J#Y<2jK)Me4ARaNP|#xPyd@z2mQ4Z9cjQV*G% zBr*L`1o#w%X{_|jnDsoBaHPjMG-rMRKPV`8jAs!KJ25%^oUrs|`NFE8V-Lpncfleg zKZvg)Y{&{{uMooFj+@h`KKf}f0G|%20rfhOP&sc3Uw;Yb`03`x8gfDjwhub#o zQ+?aLqsIiHOfU#I#In~?RkL*YETlD+%?v>G#B2tL^mebN5W3vrr^KOvq`(gFmjqhRRNiN~R2|*R zy5eVyq7cgmta4C*(zI116i#F^(x*n!a2jFF7H7ejt?zz#w8o{uBd^g~{tF%k4Q+mB z@~mvb%ZjblMBOC2I)q8@%RoUIIDeq$;r+Hk7}WoN;ZG>;8e?TDK7TILi+do~!+@#X z6ID{ftO*rClWT&_il5qKO%ag|8e4kMWyKx@{KHlZWyxG#rL{lcX}mI%Ip4@HsyAY+ z%2w5QNp01^f)RC|oaKce7!B#x3-GI>6%(1_O5lp+WS1`A5i;a^w6(0z`1r9M9k_!T zOIo80a7a^Xv|OTnxL!Kn(6dQo4yzQ^wR2N81O~*R1g_qt(SeYVui!r^pHip{jHq^& z(a{$4feN$(-o9}R)X-PIW2D}imyDGhM`6OP#$}A1QiNcJSZHQ8JlEj`m2?poo@DRy zEyB=F!W5;@o?-EEooAGXWoMFG@@9g?@+?Y}saYbejIV?t|9GqRShdOqYEnPHUie}F zdgIXWa5EYD0<(B%1`rhd&0uV5gzRrCeXL4LT^2lvqkH@nJ+;+3b_|ywcN^IR;NH++W7y9wA8>4u_lPXmXH44 z!^WqYV6(sL8w{G8)w@g>=0UYm1;0wh>;JS0CY}Qn!>c0HQs-X5rednht2NPalW1?9+g7cH1x7nP~CSL_o zFVn8x1J;Pb_^)-0HL0}PV8EV$%wb=CzC<~R{RtznoT}}sg>VgB?*uBwPHzGFcJ=rAX6V|G+3`_V{_l*g zt=SfZm!B4^o@yN)nbIOnrUO;}r@gO^in{yWr9+UCmb3stLQ*27I}?oI)v zK?YEemhO@m8b?V%q#I#|9Abof#y7s-_jlL2>#lXz{qN;37(R36%sKm<{hWRFejX_I zHsyrN@TuyCmfDDj9{I(|p31#TT(7ru6fat%Z&nMwNTPp9AjMZsg-aewQ~(ytHLW83 z``<>(Y3?Z8n}+y+k9PXq|kbpU_ItKRMH$@ z(6>Jrax;(}FPxmn)aQ7D8BO6EBlo^rcHp(PRU_+uT9|^$$>G4JOSj2FXPDJe&nqiX z2uxF{)9PKT+veN&IMqH=Prz$DQ<=0_UQ0U|V<|LkvQfZN7_a{fd)K1DPvtAQpH!Z= z{n@h#xbe-h^>1+*m#CFU6XRGnzrv$KU8pqbdXZ!D2fAyhv;{#sSD*}?L zS-@40&WfHVwAw05q=8lKJ&gf(r>Y_si~GTMpyuHm!|T)V2?ExT9ck2D$qp|G9H9XY zRsk4t2S6QUMHSNMx|V^tRa=mD+tjKa#DJZk z)K>}1&igolhFFZX3Ymy!OKyB?0;jHNcKt--*y{$LVn3qS4b|A9-L{e^F*vr@Z31|z zR@Y=M8a0uwt3xh2R+J%k^y|_#Mhi021+6pSzN><(5_2bUkDE<8aH;`QhxiNUA8wQB z41!idV=T&~jKOzAH9`66OfW4vd{HL=_vDh|3-f5J%fY=??LXf=b2Mr1I#R!HsaeD# zcAcubluvjg+S?*o0ZK=OyI9$BoPwVu{S0eY_)~NR=Hl<=W2o^)uCajoZ zes>Cpz$l2@V>J-6`Z}+wcVakV_Rmr6b8p?JZC9u5%J10Om68!MIm=qLRfW><0`G-Y z5Tp-gma$Nty^1sLm9WBur`Q{i%cLA@PN`rd)mi2KRH~{J-`^<Mg+arf3x0U`&yOVe*7S|{E{M>AFKzf&H?TgU6nSO>fh?Ru+)I}s8=G!ojVL*WysS1*r8cs0$t@8JR_XdF z;u4I5z|hnkVPL!O8gYo!bhnf$KDpO-<^^}P8w?jl-#xJe1^xqkHv(7ki0}H&uepgT z2gq+dG7^`8RDZ@NJQP^R=>{1S z2m+l&I^RIpmT5_dOv)+UD5AS-w#|d7Lp9~vq0LLbQ12L!r~IW-V-{XUfKV5C8HkTt z62ywG;?t??IiXjN2RXs&O`owhx~wBf_s+Vm=)x0fhNUloEc7O<6XouCz|nITLtoZ- zx>+);Yn}D<=wN?L?F3p>@ptHB_`Q2)-z=W#=;pPuUEHZ&E%^E~8ws^t8r@Rn81{Uazt-DQ(9L!$ z$jc#PT?dZL#g27mP9()~AMq+su-lp|;53B5;SV8a7CxRDihw>Nc>x-!2c#wdZ zcB)Qyg51h01S1p~h>k1y{=J&pd4b)Bu@@0-xC?>_bY$1Z&PYc*EIFrr#_isc>uw;W z5MJ>Z?l&)>452#L);~tesLyl-F1fF=56FJr!wEc{K;CjX!CZRJ}fL6$tQM!-XENP zqnhNupE;KngiDwLn{>_X&S9x3F1Q1>q}FbjO0HOsL+Wgtb)oNmlD*Ar@4Ey`RSGkH z%MqRW>0BKaMu*x8-!>+T>UU<=*$acQZbmhzVnxajy{l2CVHnZNvNX>>h&IBRvKjc*O^wzsz}!0XaAH zu2sAB4gK+Dsx5$;{;YUkocQQ90_IW&{2`qCue81)l8sVriu%c}1r)H&~^@-s0vHSr(X} z+{gcO(}UpbO;r1lA;e!+G8;rPD6uIk#R%Eo6abC<$&1ux#d5@ zgCE3tV0yb+l1tYTl(?sTfB@$cZf=1{Jc~yvpzjT}c2FUh0PjR}!6E})(0#qHv)thQ zdb${G`p0H}Tz0A=)s|6>I;4IPE*OoWVvy{cfBaN0(PD&>Ht2KI^TJT!Dc-F z@wiXRuM@zf&r0Q@fTU@=sNF=VOW6wy#~XKf%SbG%OxuD8z{315(-}bdj|FWN{xytK z&-;%D+kDz>0_d)+E`FgzAu_*e7=)iE-P`NCKJ173VZ92^cDe^)97>AOVqU%Dex*U(V9AhT_t$~;7EE}kWr-Q#yhSqvm1^ec&2(zB1>8guqUP8yD$aJAQ-74N$oF+Upfl8Z z{6bX|9~)MENmh9F8Iv7eagRl`^()!&G?m>_%EDV5Tf(#$+1+$NT`cZt?6pE8XxbS{ z{oF;x;_G!QzJrZXj#llhsJ3~`#E8SHMcx+YKVd3i*P8Q#RZF)N=RcDyVIPx1`CJyj zn#D-@&Uh}p`rJstq0sq3HFF5ek-zKyuxMt$1u8%k!=G&6+Zu3yUrtv!ut5VKI3DxX zb}7ZsV{<`k7qskd!>XUkcsy(f%35Mji_p?;k%k2R0PN+ zk%0_%EtC}Qzki@Adqb?FRLAJ3FTVi(@sp9k5R zk44q5kySbW0#q*p*R_nD6JqJ8;bJ)F1gkb(ZxS*uzd>La zRMN~?fXRr!rpIB0P>dCGDc#c8z*xiH}YJ-uipCD zoZBF&nwt^Xlqwi`PDB zX5rpF{-1$hz!hr- zdl{&K@R_N?qRpRor;)woYti2m{d~cZYvEC5rA2bEnbD_G2-m@LEal7UI zhuje>@d4;16`t~j#pr_{iKsCdUc;suo;gflst&Wsd4b(_COj6(1f;f&ll1 zQ7zHnMgL7+DC@y26SIoUmd6a_dgAzOtiS~KY%Px& z7UevYLcojT-n->rx!8TUySj6tYMwKLXAbL82xJ(Y(fVdAEX)~bVKi=)I?*n&ecR)m z*k?iA|Jl^62DZIAENElPOxwL7x_Ch<)GrsI3x6lEiBsiTZuj(OK8>PRicdq(;-g;2`{r!}l?uq*B)E91 zowD^%OQ?A?ft)b(__4Cr=jk&c@k4X5;zM64gY%U&g{VPBHB-;z8gzvHIOrDjOtcm` zm|p!5TjiE-XlDz2mzKtb@T*mhsAw@J!pgS>{wFJzhpiwMIm$}VbBn#@L{l$&*Q zI&=*eMG(K+E#urD9}tJphIr4)!Nk0t-lhzZK`)Ry-Wmeo=J8c>4=E4^ETRGN_v7Fz z-DiCPrKG0ETgDfgJG(omF(ly3t}_Hu>l-{g6~_S5L7$~E5OtdhlZKE^IcKv&y=Rxy zQ;a-VutD-(FMl$dX0n>tLa5MZnb*5B?H9ig{x#54iiFD9$9%0d+sWESE;859>J}gx zJae|G-Japr+}pcC`Dfo$LEn`5M&kVsuA|7zh;Nuk&1ZEJvXgSE>;_Db zYm$TXWwC;b2e4o+sLSPUs z&MNuGGGsi6$9(b=s=d2?+RnBgj9%_-I|WGmdTl|_IoWnpE5hKj91&z2NoC}-UHj6@ z*8Ap+c@N>n@x^i?M0v!>qx3%MrWYa2(m?k-@Fb7sL_aXz9p3>`7%xapkz{5rrYZ)( zI;`q}Vmzk^cct)~5N_7;mc0RL)+C?V09vtY{0AI!e8BtEv<%L#M0n4d%Vb0UG}np{ zJb#r?hC#(o;u0U@GDO1nhhBgkQ}nxI zvqKtBYn|)KD?@@G4ohf2JZD&M2zmWT?Pn8yj~*VWJ|F9gK6aY=C*>$9GM4<*%WMF+ zVSf>d`5UHb0#NovQ~%jk{$Hp}C=fVl0@+cXzu_JP!v+9x&@D^-`)ydj^cb;JtN(<5 zoH$Z6zyhRdEo+Vbej6?Z0b&Uazx%7@1I(H^7)u%V=K2d0{(tCDmfR;tH~XKwiE7>R z9U;Rxav|c8-z!W*bOEne3}Un(o@>z+ALf=mx-_S;LUGkr}eMz ztKV4kXoQ2UE-lM_x}TKc?hV0LtW)Wyr!O|8i~-KY2qaAbL^1radFMG=r1Vyd@B4?Z zUU-${kDo=$vQyZMV(u4JAAIsZcG#OcrL>Sf1D?P;BfMs!H-`t@ts72SC9CQ(j=Tcl zgl&K+>~!^b!7)7JgCBqu-+|+95po2zn7qGS;Zl?C;6$0Xkr%t%itHr$ZUmeN*^6?p z3z4nlkQ$#1Xit}hSZ4Txj10>c2(Y(Q-9?rvkW1AJzj-SZAMnJ^51a&(tJcuKO(?^3 z+Fw=qOf(9%_EzV&nOtAMod16V)_9?L7jX4guUo~|KjQ+<%(hJ>1eiNwbVY@Mf)*~?}KvqOKE|I^>;A? zJ12X~O!>=%QEOrj(=}CSiV%Df+L!7`f0oY>pqgcD@x532sPgVT(^EmXWVHj(-r^-+ zK_SlW!{XO`0VJ}77uB~>TzTzvG-X{-r3Ru4LeMizWok2_T*3iUdFzoL9sFxNIULlp zwbzA_(0$m8mpMNc@{6pb3ZcFwWs40gsz&y@Eu{}FPHu3~ie4nP@+c%e_`yk*+k~#= zZl2f4N~-2OT5U0>m;{bex+g4g;B;h*n^<9>gC{Rp!K8$Y z3gU}*y-5)KhD9G6Ea$Q>%6dI4VX}on&l_pY=DAs^CxL&{v}XZT$9M4+P8Ftu&o){0TPfnhyh`mLNeTIuIk)lY65@z2248<@W+cKfh>~V0v9al?K z0t7jz41FIj-L!r5-N~sMRF!t|^Cq5a;9ZIYn--2pG;NXfbv9+CIL>}#`%L0{3fz%L zOiRb6vQzzjJv}#-m=w`OofH{UUStY{GN)hTr=b85^LyzcGNA`q9<%A^y}=7IG}idKXRyC8;te0PPs@q>Q4mo9ap=M}u1WnsCht-_e!4yxm` znwDJ`V8M6xAAjL2EiJ7%>5{m)DCH2M!0MhoIufBx zgxt@NUayDNX`1FlO%UGOI}vyH@M!lRF_tRR_mhy2_{#94y*A6))AQSh*4EYs5vqee z9v*bVdnGI>6MWL*;?b5Z{5l2(2S1h=ah_7j(rXDD&`Xfvq45M``8~b7Y&nF+UHtrh zU5@a@_5Gzct&K!|{`|QudGzufp8}utwznT^*UEpP4$gDtP$<+~Xi%M$uM#Z$79#t= z!^x?bF&!1GD%Sw4Mw1N zq4S#y+dN0QX=soywy&-faY2U!yLYdI@eUd-d1vCJ%sfVq*VxEtr=~z$t3B9w5y2tk zo4*m=0fU7>&YKz=H)?Kv-A_DMj@8MwESd6gc1Es1*dt%BRJZl>&!H~F`+ZE=Sjlkk zp5F}QFLYb3Xx76Kq2ywDNMG3HA7ub(@b<1}Qf7r6qF}d3t*G#c5(T(&wylKg;6+vqK|j2&OYp zD=YK`k5mr7X;$XTNJ-V&|Aa1T(Q_td-#=u*YNc0l*l5V*Yi?|0*cyv@h4#y`_#zVS z;jh)SU0cv8Yx`UgGBJ=iVHqAjZJZ2&g-=(cGM1H2yCmz%1U1^0Q%H0k=caDravEDm4d0F;I z^E=h0)=;^OIsfl55v5rgrzKV5cTC)FPuva)8yy{0%Lr9vY)O1q-fKK)JBri!Nr_@o z4a-#hjL0m&4G-O2Ra-kg>VHCh?CU>eIJhkSaD8-JFR^m&QpLa>!^-R-9>YqeUGzW@ z-+L70`r#+(z7JzlUkCc8AO)9r@;YUq=<^@Mw+qI}C1^}msN+YBlSiX)s}(Ds5%c76 z<7_IHvl$a!+4~b=cOVsb^Qm#}1XF=?Z;KQJ5(!W2){^UcrL1^a#t8AG)Mm&ZbTc{;km!BtSv0 z1YV;ckD>_tgkTHgKW3&b!o>*)$LgGiJAa@dLXYFsK-w!S*{#?5*nJ(vPZiMP>g$qt zmwoU?qMD>frhPSD-8z4p9ixnC+E6no{Qk59i{B=>BdPD~Jh?g5X}^=&e7R%25Xo z%M%h*V?G8nc8`dS^o4qX>Yq*Jf``M%NUh|+$AEslppd0s&QZ(!vnhG77%nl>4+a0x z%VqF=`{c4j*#BrMj7pZCTAV)(|Bqhw$zho$gor!H|IyT?n@B#chD&f^TP|BH@bl<_ L+Wn96Cc*y;<}%{4 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 979b67a..918cb64 100644 --- a/README.md +++ b/README.md @@ -14,19 +14,20 @@ Inside each directory, you're likely to find: - `slides.md` - My slides in raw markdown. - `slides.html` - My slides converted to a presentation. (using [`marp`](https://marpit.marp.app)) You can open this in your web browser (Type `open slides.html` from the command line.) -- `*-notebook.py` - These are marimo notebooks (see below). +- `*.ipynb` - These are Jupyter notebooks (see below). -Not every week will have slides & a notebook, but one or the other should generally exist. +Not every week will have both slides & a notebook. Other files, such as images & data will be kept in the appropriate folder. -### Marimo Notebooks +### Jupyter Notebooks -Marimo notebooks are similar to Jupyter notebooks, but work much better with Git and have some other nice features I appreciate. +You have a few options for working with `.ipynb` notebooks: -If you have ever looked at a Jupyter notebook file (.ipynb) in an editor, you know they are large JSON files, and once they are checked into Git changes become very difficult to track. +- `uv run jupyter lab` - the newer UI, will start a server and +- `uv run jupyter notebook` - the older UI, perfectly functional still +- VS Code will open these in it's own editor -To interact with a notebook, run: - -`uv run marimo edit ` +If you run one of the `uv run` options, you'll need to navigate to the .ipynb file in the window that opens in your browser. +**Note:** To stop a server, press `Ctrl-C` and then 'y' to the prompt.