From d814581da8e11b0f51129015e17fcfb3fc2598bd Mon Sep 17 00:00:00 2001 From: "D. Danchev" <12420863+danchev@users.noreply.github.com> Date: Sun, 16 Nov 2025 20:56:23 -0600 Subject: [PATCH 1/2] feat: Add Streamlit app for interactive loan applications - Introduced a new Streamlit application to facilitate interactive loan applications using the trained credit scoring model. - Updated README to include instructions for running the Streamlit app and added a demo image. - Enhanced pyproject.toml to include Streamlit as an optional dependency. This addition allows users to visualize and interact with the credit scoring model in a user-friendly manner. Signed-off-by: D. Danchev <12420863+danchev@users.noreply.github.com> --- README.md | 17 +- pyproject.toml | 6 + streamlit.png | Bin 0 -> 244464 bytes streamlit_app.py | 132 ++++++++++ uv.lock | 630 ++++++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 782 insertions(+), 3 deletions(-) create mode 100644 streamlit.png create mode 100644 streamlit_app.py diff --git a/README.md b/README.md index 7bf592f..27d9f17 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ podman run -d -p 6379:6379 --name redis -e "ALLOW_EMPTY_PASSWORD=yes" docker.io Install Feast using uv ``` -uv sync +uv sync --all-extras ``` We have already set up a feature repository in [feature_repo/](feature_repo/). As a result, all we have to do is configure the [feature_store.yaml/](feature_repo/feature_store.yaml) in the feature repository. Please set the connection string of the Postgresql and Redis according to your local infra setup. @@ -248,4 +248,17 @@ Example returned feature values: } ] } -``` \ No newline at end of file +``` + + +## Interactive demo (using Streamlit) + +Once the credit scoring model has been trained it can be used for interactive loan applications using Streamlit: + +Simply start the Streamlit application +``` +uv run streamlit run streamlit_app.py +``` +Then navigate to the URL on which Streamlit is being served. You should see a user interface through which loan applications can be made: + +![Streamlit Loan Application](streamlit.png) diff --git a/pyproject.toml b/pyproject.toml index ef46c95..aa467bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,3 +14,9 @@ dependencies = [ "grpcio-tools", "grpcio-reflection", ] +[project.optional-dependencies] +streamlit = [ + "streamlit>=1.50.0", + "shap>=0.49.0", + "matplotlib>=3.10.7", +] diff --git a/streamlit.png b/streamlit.png new file mode 100644 index 0000000000000000000000000000000000000000..79653364a64bf5d688490785ad5ae554e3615123 GIT binary patch literal 244464 zcmb??bx>SQ5N8|+?!kjQ1a}DT5Fm>!?oM!r1b2cv1eb-y7Zwk}-CY6%cZbDpNxr+P ztGc?nKW^($HN4kvUe9z-Pxr5T!agZUqrN44`|Q~>R9P7b)o0IMwZi{c5nsUXBsEsH zJbU*3nXH89XZMW#B`+N{bAOQsTE5jld9->7^7p}Xi2g=7s>Kw`pOCd9fYJg7Ry}|s zwWYdwdzaa+3|;y$^2<4-JRMoTd@6J8w2@;zvw4K#MQX>U&P)c zD4pI00AKWyRAgTbh$uJ?_c^g3ZN+cVSXi-PeC=E9oE6%ofOGWhS^Fyt;oT?Zp4#hZ zW0?P%!QZwK|FwR7bbj@>_0{k_|3AX^4;UoR|K2lr7aIMK>;sB~^uN}-H@TGmS|~67 zS9j!u7lhu%m&s(bW;~99tLH9O!sk3a^|2zv(ES?YqqLp#Yx&8Hv%YW0;g2<}t`yvF z{&lg=1KXB?2HVOaE{Gwnr1+c~#O)1`AASi$l>(ce6-_;DtD|&{SfjgeW3;{t4_znOc{=vFE0>+Wg46h8nx- z*T2ty&^A8U>jf0vvq?94DyD!g&YH8*tDRS*A8(q_)g6*q{&2anmfx%n)S$BNKc3gD z_*PQ(hp6kr*n@m8@*ZIa_K!#7^CFM*6|ocEey5*T2i=74wvQpB;LzSgpW8kUtfog1 zzpK>|Y7yOD+jqB0|B1mpvT9nz=|LUaaudbvQVI`->r%bCu}K zxAeltQu-Jt4MRhtm3yy9s%vcyj6;4{6L7$4lDKH>R|+Vb#oU&|?$;e24g9jZr@_v$ z(%*1LO&<7(V`GRo)t{#7-!Nm^Q*w=+d{6bQ10F5YI}U#ieDO@8R9G=iD=fp`_LaGM z2sy+@@!)qqlMbmLl+ydBHtx0EqXvnLiuVwilhekpqPL{GTpKP?f|g7TsuBpVyv74D z#Go+PXaSEM*JUr|cr`*{1VNPT#A#T1QcLiH4)Tv$MaG43>p2_%l*~bZUfl*Nq?Vl(Q!!u$n#e^92;8+X$RaJKO9Y zBW@#iYDpBa*ZBR;7EGn14;RJciFNMvmu^|*H;VoK8z{~zMdo0ng?AMr4>19j&zsgY z(Dq*n!5oxCK-Qa`qH;R#R$FaqjI+u zCWMLStVp#ylY)X>XXkEIo|jNc*HTH!j*s>N9U1+iyBPxSaj0+X& zL2FqZKxsjP_ttJA765qW&TZi|@=!&~gC&L{DJwfSbw|lG8sLyNXg^#6dy_P6PLnw> zBh>NYY5hmq>Pde!4;9|pzO0YqY>6=iUHWBWQ0E0}Zj}78j9XdA`U0@O$X_Ys$hOP8 zdIbnP@tpQdB8%q2YITdA3kg=soI8Vs+j!D`9LdSyqCCR*xBQ`lUqrA!};z@{;x{1!in=O|N7LnfxV&}tBw(NWLpy#0~T z&>d4d*`N4BL5AC(U=`hz#1+opTCJQMKwIxuT?CBUC;iL!0=eF%oR|WPNw#x-1}zot z*HbivBUXEJt9ZHhJck0cd^$S{h|CxIbr-*`as}C{nBg4?s#;XOeI~x<@>(PO%@9Ae zhLbfnjNyRHHLP1?pztl|%vgBoBlNj&)lgsr;h;Vr&qy->Mj9k>rHJ^0# z^2Vljq5?xRH~N26&PEaGBgLaznDvziFWta)#t)^1iAKC1E(HsZ%HlOe`#`~vB0tc-UmC=@c()q7iAyHgc3L?{*4D}aZQOfK(y%pH zrKs1KflOaACt13-P)aCdnE&APD|f~|Qn%Ou7Nu&;_45r0=HrU=3_I7{V|rSWTX{oq zzJhr^b(XMGQu$IPIZdb2XWXoe&3!Nry8h8X<3k(lZV>WwzRZyyAfvm7uz>^CPxgDDQrzeRMgI z`&wk7G{@B=ZQX$>9KEZE6 z-+BT*8ZhF`h0=)&FeG$`0E)7BQ;ro&OhY~z$4e!atC$vL2x7Lbw=dfo-uFyTZe|L2 zochI`!IZlUY{rY(e32>Un`xy?#?~z6=6d>IxbRc2xL@d z(^|qMGfB9n@XI&Z*>gvr2fggf9FgE6b#1nE;ofQ8{TO!VL`F-j$XI_D+w%j&GM&jh z%dKyL7>QPn>Sziagv`$ySVj>$;=7UL4b7w zs7=5HCR)HO@5?I8<~NIJE+tw4V?VrbyWNmtEQ5^A0_KtU)Qr3L*hS`{8ln&D^}G&|JE2p<*I^MX8}!stN5<=L(AYybkU@!^vdXEX0s- z*<{bV_{p~sU5gz&V0DxxkM)brczjND(xn6tX(@6p%e{`&O|MnkZ1sLd>m=<7vg(Hf z34;9vo^(ntj+!qz&+}m3Mpkp0du!n%)P<-H#8M$cN(#KO0-teQBJM73(>M9t?)}7u zC*N7J`ksi!dCqqAx83~tBRLeHpIy24w83P(HnyykTlhr7@n+TomO2;+$r;^oK$-Q= zH`Y(o7N)#J^V=w>^iY$9`vZL|xEI{dsTH+)l=6c}!*}cmWMuuP?R74fV$W$hUP(wv zzZpLMK475)OuGFAO~`1CEF6&?DAj6F;&bl$z>NA9{c@jasJRrPAkiHsnCO~0ZajNG zy3&#cSgz;lYEDHVm*8gnBx{cIMTokOZX6sp5PTCWO4!Ka>QR{i)lc(SZTdW*MFGvN z*|P6GL^ULBuHN#WMU~&`rPF=bND$Gl&A^n%_GKyeo}zg?i8-B5@PcW^^}~#khoW@w z2n0t03E67aJ@)uvtssn;6meQlyOkMmbe7j|{E!;Yqp`V2CqI_3#W4Lk&h;HL7TzqG(ecuep~Mor~$ zcg+ug5I@A|2RUENMd*>>I-D=*u4pEdGBFmJ<+Y8t6KQDZ3#RLsT|_=6#Y8_cHQ%tJYY5LDc|rz$<;vgGSSIsd*8z ziQr|i~9NWt5EJ1CsqNAg0Kg4w{3EqH)V1 z3LhuCgRmlIp#F@K=({Jp$JskAmpxi{cNS<%E7^;b8tan`Uk zQ;)E;4WBMN(JoDm1m9IZzlIDS>Z9jE8@w&k?U<)u3CY7DoTY^Raxsw=$~K5mZ|d8F}tTI##+aq?XrZ)z4TSLHMD^DhXe1 z_c24vyQ;YULwD%{mrdl>k0y@i|3<_JkHu)-_3Ua6$dSrXI60l3> z<_mZ_G-gx?%U*Nld8Q~8W;o#Biq*Q;z9c2!oi*RwD% zJH=}r2@Lh-bCUb;CD~3!JO9WU)2D^c`0?P!3dyfM&sO4@c@=l_c zW6>Fk8hD+T^8Hi1)5T@47qO#a-E>Hx*}k-nb?;7T`AV4K_6heJTzM09WBB`kDDk6V zN&z(^BxBvrwwbN^ho*J>pu7Q@6o;w4r_c+7oo_4_q;z|Y4^j_ia=*Yw+WL%lrQcoc zWG`9n!C2yD;{$iWPVNsPW=Q(>Tb@stX5LMKScA*GxmwM;3UfPK>{-x&)$TrveUV|= zq^JfRVFho|LEX`5{$hLb^|HDKy3({~aU3}0&EVgv5K|u6N9GW}=>ssrR=NO_+cqiPGI%jp4ATEgTP=dL97?A6J`Uuwd$Hwco{ zbWlEIaY$-y=>%l$dAG*}-~)tzdG=16uBB@a?XEoR@{Ub#2-dM6_QUz1PWIBCGf(KLM7ZV*6> zT9{QI$!P+QJ#8~h@8V!12ShpvUQ}bTr33Qy8J=T&r=vIW(3$eb%msYI)b9fv z;Ln0Th8T)?v>~aJO9~J2U;yL-R#Jz-?r6*F&-93gf&paCq)y+WJ>6FR_Zib)2=i-or-f2lc zxA$kkH1pyQKkDDOBi43V7AYs7sSinV2*(m>+^{DIo^QyEMBv3kX7W3asJ*zQ83=Nj zmH2KflT52I5PBqTWf92(bIXBxyQ(7@Xhz&py@XCIRGD|)v#Xjk3ND7~t&*APv$V7N z+y>;92F2)^sWaHa?k=0SL(|aK0Ad1eM&H}v3>OgPi^ZM7+&?32G8NU{TGhuJG8->J zUCwT%Z>g-1@rvS;g5&~N=p3~I`s>Wu$~Qc&9P#D2KJRHiXvjp z(jv)RF5%0(g!p`r$5d?WTJGWEfH8d7l$qE(gj)^)W-BQqniRlFNtbo$@#jkcyQYaguOX3%v{NGpLahurL$6qIJO1ak_=p6h9RDd=TiWXMkE zkf}>-;j{o}{JBU}Ps{|g&dvCZV!$_;JIk>jUL8!cjT~0JD*?QUn> zj$4}7RmrzrvZ0dHdKW=zO>en++7^ZGwkt?u1?oe#h#?9WIv(@*CzeUb)MU4Ui+=VE zHpJ#~f-Xwi3UO+)SCLgz)Q0kJ$pd+%Nnz~d^XsCZ%j57xh>+k`v7}16BR2X54O(?E zmGi*#cI=SnlU4gr8)je0aH-d_&eb=^Y%P}5nr?FrVDFTXx!C9=+fK2KSPYTz$q==t zS_A7Zc5#Y3=^(QrEj4rH-t`V3tG9ZWO-?9B=e$_$`#6xd61BqZHVbs!scyNgA3m~O zVn7NHNAmo0bu*tkNR-6ob^7DCsPzF=*2rsZfK-yn#$==;;oJINp(C*Gm&En&bX~z$ z%aDG_TIb~st^0`5@-j<8*%FJ5#uhR=WMWuy$*H{(_2y2GOW{85m`DVnW|%x8Iox4E zw>q~Dy3}vGy1xiFOjZLgxcxQ{n0omVKEB9h6O?%I+Y06D2Ux-4-U_KMBW-P<<&cn< z9@$BEc#b`WrB_(W`Ji97Q(z&9rPyM}RmP3*6|8`4#3r)`LwYlIMg3)DB&SKw$q0J6 z-*HqE@H!g1O{jLblr4wXVCmLDB`bjW5bC^_(-IpX9gS4L+}B@493n+{?SJ*#c(&JD z%%92ntYLg`|7Ul#<0UF#?b-k{`(d6>)v~x>ae=54!XAPwz0rzDv$Q*5Ti~~(xL~`--wHZ^e)MExh=o#FoGqmLQ<>_oOf!_z$ZZAJ6yn4vOv}R#2|qcS=piCakC1(x%>0caaqQhi9QP)v6;!`6f7t zGuxWcaBxAc?YAjNqetp>{~Ks|QKI#g9|=ZkLPAEGLk-*w7EAeBthfNN3r~oz&ZpuR z7x;EIfZn+W&^Tl2LBqWbx`qlG7^WTxlJVbr+J9^C2SK?+)XtR^hsgz$sYd7M{gej! zp(@(83B3t56h=loIFaVw9sC-qrzJC2+ z#g$@@Qz6yE9(L=cyzCv#y0(g?tQ#M0j^XOSR#QxK@!9mzqvuZde|Un6bRHLm5$nbI zrS3ai>?Zz2{qV^r*c@ASbdo(By3okW<|^J|^QkC%z%*AK!9k0x)6dX*Jx?6uY4yfk z7najt(snP+<2qCOE&_XnKYz~ETR$)XLoeBvm!;44Dx{*xj8x$Je$~-6o<27#H30t| z5q-;TNC1+?OLUT@KO=(I<%U?CHMYijZYlDwvs7&^dn%3;4vDCHDL1cEeK09Ab}RoP zgO^dy#c>vdMXD&>^VQto96oEON)6POt_n1pSO(rB$@fu0nw@_5MO2fzSRS>we#oQ_ z{H_a9HTjF^)!8hlPu(J@`wn|bv@9)+$B>r>^5FMi(!4iQzT^KR^_4azmS|}*NWB5? z{L2$??~bA%R!%9X`)Lm`Z>nuth45lE`8F9EWwY^67k!GF?Muo-R`)k?5Hky3luxS@ z{!_;Nzornr89Exgdq;!tm$sXoFJ#V!CJ^zJe;5mjpkAXA=imGAXr6K;J@n)ITnv(I z$L2nT@1%b-6$UmwBv3TH(AjGgjJJq0-*#sI-BuW@%8TFfaH6$OJ05Re&x_|dX@=%u z|ChJu=Ic~Mq=_$y=gE;?oanUSb~~ks?=#^}MLk%|V|fBj;b8?{_xMazL{4T6 zrb;cUB%*eOu&{w)=6R9Y_eBa{q zxaolvj?sasdooAqKR`}M8;LXw*IF_(pNy(Q(hG|727EfShXL_McQB2LhKHRGF0cmjyRppa3KgQHNMSEvVF^WPLb zld{aHi_QR7Cpl#feeaHpLC>O==V?AK^@knV3`n|*6*5JMRIyt1f2}LY>hHq*j6&!k z<_`KIi_I>9Ae}ag(x&pSqj%pKIiAHk*N{RS7rtomN z8M3ku_%(a;4~Q+m0Fi5%ihp1Gpl1wnnM{6I{mrUo8wwi9ow>Bt{w?Ru&k!j9vwzIs z9+Fm~f=9Eb6{L~=DeJD>IGpO3fd z?Bo(vW=D^y%;Xv1N1`z!uQ;F6rJ7xJ&j-i~lLPHkKtiyqA4?#yU?qsx>~@&Xc%JOP zvHSlh={hbRc&5xu+kL2l|JV3EqiKhW^X0P`?3UfdSp72Ho3-6cq%FBQXT;_4q@s)cfCY*)m#92-h)x3;RPS}U# zv5J1?WA|F;%&(-tLH*M;aDo*|7z(_*;|4M3SMG!=wGD0x^z&t-QvaPI&~T?n4oG0n({Z&&=0Y#k z-fLt;0)OJCd1Fo%DMZP1+C?Ofxla*(wdmZ=h1H7}+$Wny zOhmVwIe6;nk543RWC>-YXPsP*1xB6Gl(1443E!^9{t=7D(A_`X)W3fH;!Q3$Dq-&eMw)R~y?A7lOvd!B|l)%^P;BbN#V0 zRhY6@yPR3OOX9IFsdV;-jB5v@rl)t1$n$B|zchn-%$q1-1-$B+9xxdz*CPh3f|w@v z^Vgi4nVyXHmH7R`nGZmPQKImNg|Y#;BeYb`b%oi&!-ueWP!X1}#@*r4@z@N)cy+3i z|1KxjhL!D1H(kki4?qDiXG5+e1w#y_aknum`g`-CT}v#+Uw`JSwDD7BDH=~j?Ax=d zlM;&e5)w%CKq8_n_FBX1I5s0twPQa#aGwq7yq{S`6<(V1w=tAsAi9&g5(nSil^8EU zRT^zH?y@e(vn~U-!?DosVVc2NpQ*AR>|D0Z^g%d1iG_ujV)>ZB<>eFY{5F!F@b0Wa z6T_+nZm=F69li4H+Of3dh9G$$V=v42gTh$bYbNr*IM#)m;VhTcEEG0%)67Vb@0x>{ zV*QVf+!yBLM9tD#7qYUHuB6e|0DW9;!-Z8i_ zCx6U=jAR}Q7ZaE0YHV4hNbO0pQh1HSqPZ#LB#xJh&Q}ewkDR7f;t&B=K0>}d~j1?`p1Ps=ZA%|K5KSXzm`}8$= z<)^(o>7`1X4<6dSnIa5;vPjhveIxZ}#VWv$j-?%{u5pCC9O2uUw=rbPE#&SWALXAo zaS!btH%Kg$EVlQ?Lwxlj4NqtON9&JxsQpRtR zR>QMGMb?Wb>3%D&Dcz7HR-qQtp&e142e~VVU8JWNb_TvfBBvBwy&Na7 z<1AT2Brj8sLE?V;XqKIEiAz4+;G3JWb|_6k;Et8FT!Sd%x(w}%(Kakw(`E&TPnTMM zAHab`!v&q|~k3#Oq70erqqi7vC`w?60Q}s z%{0=d(#j?r2-m}~y*A}LFMW^)nteZ@PSbW1tRhJwBULk4pwX%m9GPqsHdO;VdpmNfza3U-g^l?<$b84J6T5 zub(8vBy=`}`8-%kHgV*}wWupDp>u!`q~z1MSflS26UT6g{8_jm_lCj=fPs3Z=h|;@L(ItL4h{JDNpc^o;9KRdW0Z)nFMF^GmJ5SLgsnzt zY}0}9=oYv4Rn`fgDYULt8>)+A@sG-M z)CCPsp8Sd5mi})*&we=|ubilxn2EiSM}%j5Lm;$dyKRWr5SJ}1kE@rE?FezQB0NVb zfdi^ox&ZOJmQcuho}yevH(5&c*IufD81sJcmF+w4!7HweSj7L>mvpA@4(lW6umnwN zza$@C9b635tmrXi7dLj0>mZ`1ZSgUs@bS>H?~b>htsrwAR@$VqFn9NAKs6yOtXx=)PY?d4QKLJ@{PB#-e6R@ zT^GL0ezddCA9SR8*UfX;?)SJcaKE7bnxO#hLNftgNlMwmrUb}*FBZf>fBvwE-q`Vb zuKj9B&&9v)rxSbUF*;u#<97y?JUpNQHm+}foBaX)AS0V#$mS&syPr8>dmwGG)hZu5 z-M$irebG?(r0kpEfxtjOxr$`y&C_)hk;#b55pL>rd4v*=0ug?ay&#HzVHV$x)Noi8 zk>_&=74wd_6pUJN`=_y&KXvD)w1%sXX6*tFdmB?L-i~D^V<90k^mCEdZgD1FSeLJy z`r7!u6C@q4YJ0f!|7@`gCuuTD2+sBAmz2o&&p{;D@feSlXeviY;?7$1sy1C}wdI&9 z5|MFSJoy>@-WV3f`q_7ndoa29!Tkfdz}@wU;zMK?gZ0KeviLb)kDpHi1^ZzOotB}| z9l?EJ%%!wf;Hq`aSU+fbYJWa7St*r-~O z5VRHBE*J-Rg5GIHg##oiP*ob~DW<#VT;}+=GGZrcYK^k$6Gq29o~uGiV@)H5vnB#t zTUk1Qy95{nEwzk1SRFg3@}Yj;6PO1YrGk1`RC~QUjPXM&bX$j1$4#3q4>UIz%mE2oRqCF6nRzG)Q=|A79O9#CP^A zST*LY*=x9@^eP&&fNDk1h0d_07nFCPKm=gl8pmpAF!eP?&WTG77U9cWT2 z(70GEvWj>c*($2Glf=Na#bn<3q;?zqfGNm1lTlfpqFg^aEYNu*dbFnheNfK3f{bGD zCcr5JLdVl4r=eRUoep>s`m?X(f(hHb*LL2F;rHi5_`jw*^-b?uEIP2oWbZfot%pf; z+FWnh6u&rs4SaV#U%EJ$*4{Akc-HQH5tg_0`3*cKPD+H(ZMn}o5rb%joZ7=I)0{_M z^uP6VMJIB4>YvC;#&~fakL_F8^_PujKYGLo z4HJ=;&$Z^^PGqr{nb^2jBGqL$FCMO3!5bf;=ffO84wRnPdbEd8W$~P|!+& zhC|@Y3Uf(83l4isJ0h7PEGS)DsiHAO{Sc3PBw<9Ga&TpA-Q3ogR>V89k} zgRO?i-M8#EP1>m0*2hnkfuG3JjpSoUu0wv|5<6T*EkW&}_$4>pMv0o1V-tamn-vd1NDs5sgamO5k>z2`ky@R#9KZPQF>)?jg{8&1jRcNj1f3jRN;}q1N>iG^ zEk)v)FqqWeFKlyN!V$Ke?LU|werp+U5-u!6k&uuSTRy?aUwcA6zOSsRs;a|{=vwRZ zt#FWp*Rwt!sLsr64(R*|ulOTVceSx;KHA+q{j_YQnxarRt^V?t45^D~7K&6}EXFBD z>j@c8gOb!nYKu}98WYIvOC|nWw(Lvs(?MUotn=Ft6^}yKOVL+wocaX^Tiq^@FWUH> znd%CfzTq=*L#-r?=f8N0^f46%hM}}{&mUW|`mSf_Cfp*mh7NzHsoS*rNEc2W?Em|3-M?~RU#o-U z|GDx%OTpVqJgN|yNj4)jm^oB8bz##ZZl7#z*QO6F=R)CjWnNL$&zlgrqxe}fFz6J8 zih6~b8PoV)`HfRi4y5rA)7w^|c9)^&t7baa1S-YioL%3J8^*=dR3~??WL=w-a zW+tnReh?+^AFOhdpX6URn29L4*K<%gkP)FVyId|$2f+FokNM|-seU6f3TuI=d4_fq z>Uc>!O4B^O68iEw^170y;IZV31JByKtP z3Ez+3v-TN~g(!*NFavz{5Y=9<ew!{+JuUn-M7H7_vD8fNN^9X{9iHhA$C# z-8iSZ8C;!FI}oJ!qPyhRZ_bF6u&{Fafx+t&*NB5NWW1s5149A6Fjal8y|u0kxt87` z@X)@}VBnXbD@XR4(}DC2r!0LOLb@8t&Pf&BjMx;d8I}|62ImtU^pFSOjtw+5)fXy5 z`Q=2b(dq6RGu3Fyeyqg&DalH!}E zD6x0(rrYT<_qCI$>t`<~u=vOt#{gVjWwrHUvTG8LJk zkZe1?#;% z0qTi6A)BL;sUb71&Twj9yUQ0oikk(4xx1G;Bg{IN&Ex8vCo^l54N7o~3)GMlr=_mw z^{QO!q~kM!q5RSk8Apx%&Y6U5yJ8 zwnH;hs_5@;a0D%n3Ak^>c?2{EK+p66RHh{G%UrE(6!1(zt#7>@|bfEE&o&0AckB|(tlWZOy~P1`1?lEsW1XznKwEcs+QM3pkjHg1n#oP+9V_9wh!)&oh>JXYICk zj(VZpq!labimTB$(8fO4Gxpee^Gt2(^)-X-)P{kT ze_oTR97O%u<0n{htPnlgCTVsw{Q8n@vA^-!SY^Y<2Z0rb(QG(3?WouqwdnCoYBU$u zk%P_R^f3jfx3F{GF~0FqqzK#hn7N|rnVT251oFEmBZGqLs93X_f#K797T2Qr&(2b{ z2OVDP3;A(a2ay{S_}9n2i$5Z!OV-pI`ir^^cLm?+-KsgNKchzXZ{^_)#U4k^u!Fbx zx0AZH^8y?W^MunCICRIXg%s#1_CaykfBQiffAI>c-b@ zikj!`kp;nq6Jye#ZQEt?*$wKSBG#ip-C9Gf-}kv7e80wlrr~hyhYrr7K7kAD;PBg- zYiZp#?pAZ*wxlkY-CYJBLT$+uB_)8srp(N#D|%DfOl(3}hZD!aYyX{^7lnLj448LDBaHJ5c6g8vZ$mZ*BL$nZkd5>32fxqNPbHe*Sp_74BU27^94ISd z9Ua(`3LaX<{pRE`TcguX8P@m~B1#AP%fBG&H49qww=6K^l`CwT2xPU*o7F(`^2C`S zFf7g;5X(LD0J+6YDSq=p>CvtY?t@z747(#r)|tNENpo@QA1PcO#luDSqHSU9N+VN~ zA9>uAXW+9)f?+tY{be4wGXvDqxkZn7S;QyX8NBPCexU@?3qw0`OymtsJ4#&Q=*!d7 z#`|NZT4I$USj2X|o<-u3MH?6@q3)M0fZA9czNv+r#H^1Y0ocNsoNJil(rx~{_Rw)E zS))7IjINpio~3mDjBH`M^U4(dScBtz5VJEsR95^jt^Hp^*=Ias=@$_2qC zj?$UCW&s0d70oyd)*x7k`hLY1_|Y%^h4gbV$>Xz{qLhKd-9mQ{$1C5)@~cP>(;JkZ zKE9jbl3C?5G>`n`nJ@uK)4|1pG5M_QdF_OxitJ50wG=grG*Uv6)fH{P{OHbavzfGP z4F)eeN#};-%c6k-v@@P&EWU}Qxo_MnP|uv=CF?Hv2s6aVom5;Fy)2TnYSm#lN)Tbr z@5ta%vuJGfh&W?eTw0t{=n0L`1eB=XbX4Oao7Lf%TiO;4@H0NZ>UH{@81?k<_0C|db6DLam4~NvE%rBfk0|Y!+S4@w3;MZ2Dh-i)w}056N`u|EaELl*EhrKB{$_XFiin4`k?qW}Rn5TUT#QWJ zMRLkwZhUu;<{4({> z2p4ORByF)4x!x8}x&ko{qSyMF?)2Q{!{ibVo8!VQG|0tF0C+`@1_*NNtl5ORS=jN+ zGDT`*ZnAtQgQ4nUbN?Q2kiP)K+gEQuyc6hsH|r-04uq z!TyGXSVpa@090>EE}#3$CvCuP(YER=?(G0Fpmt?#NDjH{m28M+> zbH+lz=`FyaY4InkpywQNB;-eJ7vJ&CoSHU>udOa!&vUrTu34lPwb}2zHxSU5sRYdi z!cR0j-*q*zCl{dnhr5#qwwvF=U zvJWpsj!^57(=r0|wCg_2d2Gq08YqQkXIM3{BCj+W?r;{JEK{RZ*R;&!J4rtt@t~Ke ztgxIRp`AE@Tg&mFUeLE`FrO`DC)}&sJTse8)jc{^)@0w6D5twbc7*4t?B?q*(+Px0 zK{v?cU4oYeAt4FLA?5CedFXA3$dPp!bb=`b3kR=ru_Cq6;GWTNLJQE{_4c+mF`_vr zO(D@Rc-&UZPBXIG6#?NEX?E0r^h$u?*|zavF*9_I;_|a6FEVrMg3W$`of7wp*n1rF z1sZ0MeTgl0pP6SuQuA)8Hd)LVb0t)?mTn_mbx@-#ZW*8p}#O6j>N9wq>#bl1Q(_#8RP`kj)UsOboF=imG^Q%3QiR zPM*esoK{gF$l9))afG$G+(?ixau+}EH0+dr)S-Ibu6Mqa#o9B*6 z6}D4~4AK8y^aBhoSz@YVf|RU%=)SzC?jQkG}m zTUK%jfna%+Zs;i%0l!v+M8q$gLni{cc0Gp`=nyo5h$ykb2=KS)S)w_q9lsdKNCQFY zYSZlwQHheJ;kPzUw!dT+z){n`TH%gvZN#`63@3H)*HlhR`L9{k1v|=%%e1w2g^O&V zmb@x(A_wNYB-@ZA6P`SklB$eh?w|iz3*bg8Ah&H`ZoL^v1BN!26+$IJjR0-?-{%)E z-yD6YTLCp6@iWSh8y6~ET~yhFCkZoksNO(IstVKG(y8k#XQnMnBUvVj<}sgdZ13)x z$g4oG5QwtY=WE>tcIWvy-2n9A~36Q1gV#P3z6NC7SO*t@2Zu;%1UTswkq%j2DP5y{06q-n!au*MXpX*d=>Od{k8Cr0gV^ zY}9&Uv4ru+&zo-kr%yOYQ-VX)++5l`jQQaA9|^bJ1%V+-5wuL(C@!w~Th!gVbT^^} z0qw&YDUK?`#f@R3*xBK4-1P(kLxC7M@Uw`jV$VnF+%B7H1G&{&%-#D^=+%m5kp+V9 zGNOrArjH2KW(aILooRtUXEi_`kAswWNS|Qth*111$wH`8?oRx_?Zlq%E zvoU0JagSCrX7GFH&$n#1c&(3PEMTxJcWquo=c4c*!;DV>-feZ5v{L!Z8YPET=Wha* zXU84|+H8A8tnR@ftKd(udC4oz=CR)$E9=Ls4;PtQ^Q<@KBc;@i@T2-Zsdy@{7#7n( z3#K8JF7t)7hLzl$ny=lBYOTZ17)rMA7^!Q&qS#Q`b31e^$=Oh1g$8y`a?qE3q{B%Y zq~RbpGvZDi5|g82PamSeuG-h5zzE$Z5fT(6vB*iTkI4feb0IMYy~2@{3F*rfi1;Lf z6xwIQjcvr8j+7Ia)W&}1Egh0tO>q3HX4FpZ*#Gr>FszCC^~}xpUag5N^mtD0Nt`Vc z$e{kVP1TRzvU_}I?=x)=XmVakI=rZg@2R!C#5qyDW@q0KuK$7D8}` z;1=AS#@(IZZoz}QTY@zN3+@oy-CeqY#@%5!=Q(HI|6IHm^O?);-o1BKty>Lb@H`#)=ii!Xt}mUM+^q zPB!^MO=OMq{Vk=81+kQ2K4D%lbW-$+eU)C&Y+kZsM+yDe;VAHS1VlEpMVg?m9|^ws zJ{aKMR60;wj3fzv-}zW*rHjuUXFdMq{Nj(fp1pQT-%6$z4iW);t*>*S?S z><4RNSGn(40g40ildnWLNMo6;jdNorb1_5`1~w(iDP^6-X+)Rn@G z@k9}KcV)^pvXEry&z~(!FDw2gQV)IE$Y?N0s?naj#Iu;b4yto;%7TDtKhJ!4hdxbH zP_a&6L)!dv=CtE6oS%~HS|jgvDM;zhb*hpzbB_P*7*prdZB*uYOwI`I>&seuCyV{g zY=Gd!$$%yi!aVbry}V_gO*tW|W9W~D2aIx?Y_=xzU zW{_HFW8!&L397yB0`Z%86x!1tKYldgX|(MLiY7Az6I~aF{TNC6(?=<})*cevT()Up ztx!?$xqbHN@OXQZac|z%aW_TVZXWtWwn14QZw~@JEQM|}Dx~}pr@kiYWp2;T)HDEU ztEfv%b-8|!yTeNg!Yf--SCtYD!i+Vs)VcMMv~F)! zbm5qwjz{KY%&PBbtD9A~9ae0y`*z{cX*(~ae|}wuT`phb3ehUJVG8?hEAd$ul#243 zGpq%nDej!veLA0EE~_+io58wBkt~;li{kj2B z0V=%`gCQD#k$ov0GpLlxO*7HiOGs=LY{C{rUkQ)TT_2@I`%$YgYjA!!yIh-7pjnmK zBAwVqWWN~i!}{QC1{9_0CD&1Nkm{DLFtz)`5E#A1Hf@@LF%`bOBlYy8k6E@uMNh%T zCDHl!iNUaNdb(%?n5-@HuWXb$DDg)KdK;OJZ&Bmr&>Er?ZXSIr2vj|{&QEluN?63^nit$j_1%ji-6 zt2anZL+>CznZM2nJ9Ty>%90Ue%u@zrC(ApX+}_7aVm37098ssINd=YNUaYO&bqK8v&*! zFHv7ZuP+URYa)eEkYBM!9lq&gQyv2$`$3i=52#+Y`*fb;6(&Q-Ad^))JEUV;da#J_ zuhs##x-lQyv@h!`x= z%DRwHDIY6C(JxOD?*D5k4rSxrNl?WUE7FoXu0qn1ri9F z7iLYbO$@9YpG5YN6lBGn8hPLg>F2uM6kj$W1&5FdZ~>nVy9uVs`MJi(W{U{h7!gAE zjL4Pl^>Jy7>4l61I=*Ffrotj1sUpMEWla^n}Re<=-rAMPo`t5;AyDv}rQ{P%RB?ET40 z2N}JT&&k||8ZwdZcQQgK9S%=R87Y%C2*fLy8onCDaCxRGgNxn4dZ>+XlN}izj&z#1Lo@J;yoU5N3 z8kGips0VpLUh_aUNwB1vhAC~kcdaO|$#!~or2s-r_;h!=had%=nBx|GvMLu)%^pJc zmi8kKvli5P(rpHk2+{tZzn;)0$ovLt<1=s6HKUUfZ?k}xqEmo&&5gqe<{(ZYtAa+| zLnMo?&2PNw=HuYqXq&J>iBBq^U4e2oj%ynoZ%G{;3-=nud@_Z5aC6RJy&3mIK8 zcMBmltE)Op3?ZeD9&Ue6l+^az&v0c1_{4 z+LaK_td6_hD={mTLOa!x(DrY;44ly zZ=6@pf@3d=`a7loBf+hTqjoVWP%|x|WoW<4(=wdxX~dDX+UCu+C96?yHQOtt9*%z1!s#^vr)D);*+D`48aZFK_2Vy3h;OQ1=`Y3T4h?KpOnCM6{MC{%sggr zOqbp$GX|HFq&ZF1RVx24-kQ_X%I$!TCF@iyeNnnSCy>C7-Vt{{YNZ(im3qY>Elur2 zU~oZ=u9*H0i$RO8nxzYHkd(kJVwe`m7ln6tZ?_P#K4NzSZ=moY0r@vw6u_~_uU$|hsL%$G|GnZ1(AGMT^0XGC1I zc@@+>S@UP};KYdPbTHiH?ICT_n}fG`7WzfNv$R?yD>2!#{jC)VDBW}eh3X_k4QqEb zq`TImM#@s)jr3k;mJc<R7tzwRb2SuyjHWG4;vY-I$FO#NDqB) zVBlQLHwE(s0!&Ufm>WV46AG$b8MByPp*Y{)M<^2`! zssS=n1?fSL81a%d<*bIvZnPTb zeFN^okw4Bi8= zANvNvRZ#)sVtW{L$GO{e!cY&A_YoUytmnDL6aS9)0kF`g~P}4v)x>M zsc9J_nSN&NTDw2rOIZZ&mm2&c>pz7~{07?oy{pN(RcG=Kh%|Ily;3T{nMN7ux-IgU zA9WsDyX~fUJDnS^H;(_lzwT;eniewz2?y1#8}2xHE!@a`WKYG~Nn`oO*Yen(e6951hk#ZxBUW{p&)czf+J?zbJ5-mWym7-1 zYS|98OE$KL;y)iJ>~6wr{G6;MF8Ph%DK4&5Bb#8MS)VLw2?0&38iz_>_8t1EQc*K_ zhSoq*@FObqxI{6P_d9!xxys;TXGkMY+FGLDi+IgtQ)CbBsE++A%if|02Mub6ty9k9 zq`Q#yA|J0^;e|gwwe@3Ra?Quax&~gU8Xnb@@W1!tMOY67{+UWAach#ADY!Oh z*A2xg-7t}>YFncnuUZv{)_+oqa^pbioo9EO4x`_xaSk>=8a0rN*f!d5RO-#~3ve+j zPvZDZyJyK5>Zlsb2((61CVDlup7HVMZJs>7oesfZ;5@h60(*ucd;RkD`2Ljvy<@Mz zd^xosl%;O2FqdB+D&Rg$8<%@%VO`s{8kftAvR1Tn93ES(JCyj8SOyt^4^uulIH2FB zaWreaH?gi&)YUPz^Co#09AD}?r+Cc81HF=XucLPPq$f)2t~NsY;1Jo7Y4a;8>UTK$ zIw^0i1nmIxVw1Fp!D=lyKxVlH2U)2vF|Oj(J9E+q5ZU`!l>FytfO4H=W0B{hfF*N= zM?K@?xdH=>bLX9{;vj$C#AUJSjYA|K2fK-m?m)>f%3;aV&M(47c=)NXruJ6T5SG(B z=aBo=N)M&F)jy0UC7=5eNy*`ef4-i>GHUT^Wc!c;w6-UUSZMHa(fvJUT#frXFpz^6 zj_$fbXQ%(_PO;ca^W1UVi}x;Y;O;i-X9Yx{`P<(7*i)r*HtwCKh*`11QKC89ll13> zp_jo_%~V5B#CGxUSf->W_Oshyng1Is_xejUC?OPVeZk^+il5^miJMcKeDsE#yD6P zeHE3Is(pA^mjt9}X#8jV%&Wb6Nx4(Iu^H5xc^Af0H}c<#toV2a^=ExJjpN2bj9HNq zl5nO3{zh~|ZXY>4AC({PcVAcuP`|Udx>ILPd_9W{;!tR&^!_%DAKc^e&Dr8hy%iy& zfmBbwkI{vMqKUz!W8dy2Kh_2EXL<)?e_uPKnQ0^NBi#Ma<8ws3hIb3&l^SYn*A&)W zV_v$R!Gu3o5e6FpWA4{|)JAftquBOYV;9owoD7BAi070v!3i%Q0K&I@EVFD}MARAU43 zv(n%3r4a!#U5Mb$r0MdKyZUvd-2<_wv$30Ym%VmYO3dNyN&*3L;!no!Xv5%86lu(G z537>z1)JFyLjm#9fXoR6>D3}`=BL9A{6sb9k?*LV*Z4ebQ^*P+v!P9wgid>J<%-q5 z$w07Kd5>yw1G5aFfN^?ZOu$<$9-DXKwy2(WMsK{$Mb2?#!cJh12XW0NuhDJmZSGoV z_g2*I6IqtkY}|QahnnSGwU*#q=P-nCcrG@e2}upgZS#=d4}^c~Xsh)uVcw;q78XvM zGWE*r#%n6|w)w1ddWi6^Ax#&piK<>{L2H2xX2L+uakRX;lSYTv#bSjz@&78ZK;s|~ zD9~C0XZhUv898U~(w9_H4~Pie)f@=L*xs_HGitC1Dz_-arG@%Oc5ln>4*S%xA&^k( zes;ogd$B<(5Wk-MQr)^0ijm>wdb#00Uq%xmDBKr^0SMWf$r5_)Y##nArYkIvxpwoQ zt)QilU^t?4Iv!aIx2i((2kHCV{4!jK$?A?6r|{A8!_ouY6?5<`)^!i#k)cUu;g;L1hGL!W>3Zo&1v935EeTk40l}x5EsA3tJK|$I zD);oa2!A1bH2!PkxUuNo=pU~H zPX?dVXB{wt_K^_@+ouhlRZSRrLd) zs69c>D>}E)tTK;{a-|CsIq37szRw4GUjYTe1M?36P_u^g-GgkXCG zV|{5MC;p0|PJ1pgnbY|AggX5ubz2Wbf1GT&{i>~>|Iqk`Fi|q&QJATk3BFIJ;Ezg% zpU`Tv`kdmnGml**diyn!f~p-AfVu?I*`x6HXm|dI!tsUicJjU4-w);oeIa?m1ob#lpjW|C1b8k_d*#?Ukw8uLD z0Qt1YT8Z=FREP!fj6+juMuQ`h4Ri0`S_w*yyPT!#5}>n^5(Py(KmyO;We-1q>E|6fS(1Ul z@Aw`{vW*k3TP4k0-A0QB%Mo)mJ!(eX*NJvFPq@ zjy}&oQLGj-hlg>dsvImI)I>yGvUn{hCs9mq)@ppJ*lVv?hB*LF+8Utg^1uEO;LhBMBlTeoI#Pj=cOU0(=DDt`Pc&LNo4 zOy=L!%W=RG|C-~vy+d0IFHB{;*6UxhGOvx)SH^_-evVL34|93fjLm0%&N zeuqYmv#58ZGk06P;g{~lLI+LZym_dA^f{j;FhIDSy2p&LoTA(}r?oy^ipzhwxh&4kx=xY~rz|e`rh-~@d zBEONG4_wf)7+d~(_IkDZ94qV}H$+QG3HUz!V=|@l zXu?9Vw!}irYfb~w`3|2s$4yQ-DZX*rIOPBNQs5CEYj>&0qrUM)dJpKrj@2hR zzi!NHKS*;q@}&UgU|j=$yQ=JZ7&>H1^ySLaypvWSllNh9rtFXTPh@5n_%;p^0gRD* z%H&Az3Tx9#X+RBPQli`3pC*y=4L$+y9zda89`VSuI5I);080!d{I|<|US~*~s=5&E z&eJ_g=H-Mx4B%_DUkKcHWq2imF!FnG*n~9;HYk0Wjde$Dl-}s+vC0mYtYLDVnh9Lc z;>gO(T;#~xC3xZB$MmJmYWRD4xVIO$6|~HZY)(%wemO|+i`HT)?uwvD2AA90)XVf6 zB7GT$j)vTBP45Tq7WZxJqc24aO!VxFZBGa?o{ano2eMzh`r!FDhGtfDw?@q;uc?}w zb#TVqlD&NBLP?5?=1b{lX}L4sWB28YoG6mm7EyCc*RI*~342fw1G-d!>8bifhy-PL%M4Lp-s`l7cDp!Tk`%gj9HwJX z$=RzIh*$#!4Ix~My5pvkDH6@R62LEjq@G(6cJ<@IgTv46_>cPLA!W0>w)8e#-R9L* z;go6Czigr|FMnL4#nNwdlbL)+O0_wT$&$Eclwu)wY{pq|u%{gxVP;oWv@s0uput-_ zEFb>k5+(iZ?BWu*PM=O{RGVu1$5~FE3jj~?O{Gi_h|Q(#dana2a)M2@I+G5ltfAfL zIwL)z*kv8#)WIGP z<%MCCC>mEFXbpFqQH>Z3w(xIWf=A^VSOUJiJH!9>8|=lKDVvlc!qZ&l*RI!$+S;t6 zsij_4ZvBzOoQ%wYU8-`;hIzO{o5lH3ElT?OCr47SJ#|OIN1{s}AllN$S#;F_#%VBh~pj!8zoU z*Um55Uo2Zia(5GeSJM>KCh%~7ua<(=Dfybb@o{&lT=9j)t=sl8Y=}=si!O=l<*q<1 zjj)_@J$s*-)n+=DtP>8VV5zW`7R})7$t(dfnzo_uLCy>3ie$ZG(Rml~`EvTzzge~4 zb0vN!1cWzmN2Bym6&5^y(Ml)Xm4liu@ne$XZASq2^kLZNd zQoc9KtOjD{M;I!5GR>K46@oOG&(lvTHvZ*bmPRE&GM0(;a0?ohoNxj!e=l(maPUk!t9}(GkpZ%mK^!5k)Dvt)q?00COKi+-u@A8zWdRkxI2Dpg&UzUlw(_o zIyKX_-1(yXDc27?7g?5ACnucKKE7KU-D!~fFg=3vp}t0#q(zGfQ}j8d?VM$d%zh}6 zpCo74^`q+?-9%fBS+dxieNAN*3>V!)F35jp(vcGKbmc`r5M8SwXSm z+(J~evS%`bGFcU6!!|yv$FCj*6N=?AOFBozi_cu7K@ih-FCpF)U35vq2~Ts}qHo}v z4V6ynX7qOMUj6#44+d`!J@1uE!g(#*l#igMswhol(YCzY?{%IdpgEh(W<_+fbiQ?D z>3UwAO^u{{#J{vf^UnHYHWU@d(Dlvvbl@Ca>E-!&PY`bQx+#fnH2!R_pQn0%+7|!D z@0@&ov_8O)C%bxKBl`YU-oViW;1*kz~Ujtcs8T*=)>WN*q2Um zKYSlbPd>leY!1_3<&`V0QDDO;qY{`crop`80!Fk6%czWGot5wBVaKRkG0DC@wT|j78Du zH_!Q)M@i*}IMv5`S)AYh4N${*BJRo?F-Dw%L#kR*IBA2S*A+!9ba#h9aAd*6d`+W~@LS+RRom3!6 zo8U7BrpH+W8}H989CAYem(q%|-NBC23zTay(ry*D-K9{JXQC3{Ni_Ia>0{;Vovm6^ zKf@;AIfv&+_%1d5lDnWl! z8Q%kD2hboFwOYd({a7%)f(?#m6=Qf)AH#yhsB`nAoD#t(e}8khBZUL283VrPQ*0PznCgr(6x5#gRc$RQsIGRN zMBLbA(EQO8hOzDbND6f%5U8=y+uxr_+a`Lo8*ZJ35|)xPH<74q2~a=vO_{A~l9MYD zTzsjT<51o?Or9(|K2P81H6SmZ!>EP}Cd+v8?4H}OdlP!wZ9xcciOOz<{49;o?=)AB z%bZ=oa=U#(9L`6|_3|rK;`e1S|b{+Uz}Taa+qQ<(6ZB zzxjQh!HVz4qCdLWp~{_RR1B_omY{Sw9@WYH(^(afr>d@E_W)3wqQ#N4o8#~_B z)ct+^5E4>8Oc6wHY`SHRi5^?YPNTT^k@cdOuYtz21?;@4FCG|dGK z2=0eN*(e4Ox*<$bPnvWe%=fp3SNNpUt_pg3`l|Z$;Xf$I!^79tKem2(^0MtEqR^LX zi@^Yuy=n`m(|zq$vO{fe^h@iMIq%I=MLH^B$P6pv=QV-zI@%_h8C`Frb)_%M_tl6u zynC1D2bIZIMP|mgZ;8{H<=QEQHDz_`Nh!ZdPTFV~gOX~+dn=gR$nrEOH0kqs&UIqc zUWNkNuAr?OhM-N>ph{+eXIq2GnF2BaA^?G1$0%^vQft~@iN2oSi+5**8SwTBxzg2X z_Yx5=xX;54chRaAByc-uqG&3ERe2~hGle?4W`eC7%=4sqHx1E!C&X|(|ac!S;v73W_=_R=E_GLsDR82;3`u!cP3 zXt*J;A|goPXK=)AUNoaJ8-CvOsHE(*_*LO9nWOlNvj$g{MuQmq{)mfMVFmP1Cdx#Y zGN>LW|83#feb>yUJ~aM~%iAXxm#VVai3heOPk>uIF|u}9n*1vwV2qGclE@PJ{K@_1 zJRhSiRP)qqh}f+k1|Mc?o9oxy4IkL>(pVCHcpdc%v6WXgU2{xo0h4umJub2N5m%p{ zn?f}mKh*ofr=}EI*4g;%!>dzG8>2QzLqECfa?Wv))Tq+oUA%`&vWVEN^gCN_xonSR z+*;&JFntFIBxw0IpaB3V%P-zlz1rC|FX0?|2)y-ILJ7%_?4B6nymTqw0gP@C@k<)cKmFy^NUJ zpKLqE9LH(%re}uisnTs&SC-%q09tx@_H1m~;R5`W9MC-SXT~!OLTHhxJLipgb^CWQ zOKWt$^Mx2x?ZBv#?2+nt3j~i8L5N{qf;+fvK?@B+WY2pqzDPWhO7K#DSiAEiVS#cy zO8u5uTv-juc;#cNx;J?&9%Kq!alSSk=@PJYWNlkVuMb%+LXQ?J79FF(EZ{~`u*yBn zjrddgkXoGYsG12=d3hOaDvO`X!qGO1hrf^d^G$rBc(Co{_E)c~DTv^3ti%hGP7hi( z5kz_uu~YYmOHM>bHEiuTqo9&e=<)mvO-++8kn6sjRJX(UWrJAB)5BAA8g|fO23**O zcb1oV*i(}_qp|r#F$l~WR93~ULV})!24JL)GPW{kDQ+AH__z?m$w6{ z!Z$5>KxU7{)U{i^g%Qu1Km7bcrf#DklnDT9(ed}$t zH@)rj@(T?A%U=7+%1;I)|days?B4z?AYO!=XMv#;oy)LbTP%=a}Z!>B^&cCEu^k83X( zCpg#Oda3EpUD8x%w#*d)xbTLE&Aay__um7ogQ?``ql=Ixy@rhh@;|C53~)|P6lDkg z&V8#M!rotKt~WbP6w%SOxaRAl8jXymEDiXa3^+`5(&KQ_y5Ta)VE|oTzWZmtYIK78 zgyO{pmj4jbC>gqwa@t3S!`9|b>@C_J659bFnM6AIsj|ne1}Ty7G_@IZSOzAVI#wKW zvr9pyze}lm#R?U#T}3KF8978jChLxJp?7c zQ}QZqj4oJ!5oQ_NM0k;}Cq$2armxY`0amme**VE_%S*mFoQa89?lwLK!?HR= z5vHZ3k7H70ml0wypH9m^ITyy)Q642;IMwJ0&o`8vtv$rFOs2@w@z&jbq;WYW*ZGpU z#~SdWmDYi{L-tpt2l1LNRr&Zt3#ccXd8K{tCQA;a(TP|Kn%>K4PY2FS#yjzXBuj6A z-s8SIELDQ!eDs5w)UK|##7Encd<`c2?*;ivFHC$z%*~1SWzY|k_7nzZHz$+Dp!hp!!sXxJhvDt} zQ+yj*H}VtSDK4-Sr6id-C>CgeyDOWnjvGsm4-xTcf{Mn?8oG0=3xS|dHJDpWLmv%UjnD!fjwM<$!p-|#xskLGK`tA! z!09QG99}l%Aq!D`ZRmj^b4n&7 z=X;rR?Ygu$6Tm=B>hR%4fLrOj-`}L2rzSi2tiAmrY_R2CmW^x@_Jx^P*aHUnwnm1p z(1KQGUinVTL-}f0jQWQn{i@%S*^liu`@LA}WDdTj=hy6iih0_b=DT|omY0A&NM3{4 zCC{}c0Zfw{KH~HgIXsq?O?9Snywl7h-^*ud#P9@zZC~;N$#lsIxvA$5cgJs1S>3}mfeS}7T_!b^71dOT)1%|TU zch9SwFO)k{=nl`QS6Ap{8)e57$ItcRk44+PI|Izg!VkMw1GZ~0Mlt3uz=`(_n{HeBHN4nCJ5Oz$WPgFgoXL>*F}eC zfbQ(QUhP=!mGAt|#)Yc%b78ZUARfVjlzml9Xxdknlgfy+ z1&b{Gr~X&3XPz3_^NZ=9oqhx_Dm6Vxhm;UhC-cB^41kvGbSw{#C)x#4b*lbGr_KDv zk7LC+foB`>_}>*#euME|8}=KQYC5<(jZOA%Yc4gMUN-MulU6xAmUqk>Ls~HKqcuJ5 zam50}G|dCr>m>-i4(q$>syYQ!x_C0qjyK-%_!DFJ-|WtU4)TsYp_kJMm-FqyOHzZR zS9?Y89XspKT>K}0xH)=9lG-UTbu_q)JcT}NN*oFyy5R=h-P7>~_#F1#8lU~R<$?q8 z8~n~>U0lbpe0+HU`Z{-$uzjFbl`=6RxGkk0-(WV%}Qnp)~*+NSiTFfi&} zGCk~;LDWIv8y#Yq)nKD?Jb!%pdPrIOi~cNyTT^)J6xGdKq18EDUjIz%X~V6qo&LE| zzW;0wftMW+c!;#5lhh6%JgA~tmN>2CL+5%^a@QMT;;dh&=%&D6sGEltKIM|AAx3>^n@VC`I=ROy=;-^oD30 zW7y2A3v?2Y2 zuyHLSdQ_hYI{}Y^RbchX@fZ7FjCFmow{AKQWEOV+MjuyzgDHsZf)D9?f$sz6uniRm zWbnZQ<|v+b$H2{R@Z+*e|K6ij*Wue{_+nD;;*3}c<*Acm^kZRBg1e1s)89UHn;BgV z?l>`}`UL0^|J#59{~nW?t9@?k7HmG}MMk`+?tVucG%Gv2q&|~xi@!S*r46^8n>EVo ztJH%2?TGT@Zw-dDl?hR)?>&E(S_P>}H)@uGHU(x2C;?~pzDJ(_c=nv#XR>v9FX;WF zk};|0?@NC;Y}62-Yih7->zj?Otv#2nWA3a)ZI*oTx`65JpOs?`hUc$_qK-eUi2+)S z>V`Chjc?p3Ih-pG6%{Y4z9F@jSEwEGKL*1dKWWJI+qeCLT30I9UW5%Xn1Fo?baZt0 z)-{LI_I39kf38IDPkFy6EG%#fOr}j{y)EhoxY|cddO`XxjrusGBa}B_B6wu#U9!LBib({=y8p2DM!4}@QEYN-UkeN`%d_IyWcdUACFjy+1GWv(sQTX z{eNf1fcHn&FE;FQDN&TKUXVp8VN4S8@DdGtUw|pw9EVs`%>iyz7qH ztU0FBY4iWaV?qllaV~XYMA#j?h3B1;7@Cs!@fNaqu6KoA!w;5Hbj|tM2kUiIMbFnp zBp#yG^v7iU(;xo=e`Ec_*Gj9dSM{W1)0{uiOCAccE1Pkd;RR-;ieJ*>_?%vzu+*TBU9#8Zb92z2P&4u2}sC%cv zxRPIfmT|>;UwpOSvqXtEhK#x9Ge9Oo@?WwyevmPlpgg|fw7<`t^>=^2QTPX4L9MlX4s9DjrP&EilT^KzOillOHtT8ZrGGS58r}l`{6{gV z8L*$DW3()NN#ML?uF`y@fVtxI)J{qUn^T6QY#QEW`MQhAWJKTN1eKvsn(zH;QSgW) z2FBx+)^6`~tNX5p5A;9wAiC+?R#np@BWLAZ_l>_-GRq7+ByPFLDS?556R0(DdP!X< z2{19C>-pq9s_yn}z(I-hzmZThC9s9^wZtV&D{>ffU(c}H$0p25begG>$^ob%W)Q~8^>Oa3h zW%s3LxQtjA8Bs|Qc$O^?qRIZV2YupdS#2xouo#SY)UdQDYYU*S{{-y1y)q;gk3nI^ zox%R_W;Xw&M|Q<(*`dZ{|36$B3T5YYLrY$>Xk4<>SPtXZhR1%Jr$zQ}@=Ff23!KV+ zIVAraUAc2Ir8zbRN<@pECGkxQz~k*^RI@@%OY}(mA0x(E$oOCa`+mH86L|Y~Akcj8 z^#4D<{x8Gu|G0U9gGlk4O7U=*Ux`D!Uk>)06Bt6WdEQ4+b0gg3Lj@0fbck!;|HZ7` zU|m%7W-*Yg*;M#3Xb$%~6cy6a<#29(``p(|mh4ro;2Xv=rNnxFJk1iK*ai(z{Gtwz z_TIkkA#&j+Yp$tjHQO>Zr3nui_d924jn(T(qbp@f2QHg3E3DogY~3X{m7d~|P1?Li z6L=%%SK-k^{CSRcMr)S=E*`~M-pudnUXJ>k|GiV4rb~8>@>?VM*lZ47v)SEvLfvub zz~}64X%ek4Xv!rM(Q3nbl_W7q1%LB^8!^8Xa`AK^U*I7bpJOTw zAo_kWkGcn416h-bTZ9z8dO2Sqp#cVqNAnI?j%Es7Nz+Ea zT(6D!ENauSLa)ubK1L_H6AY0{jT~?C95iOmph0fWIuE53#3YqhK52M`7eOC%zxl!&^G<+5p!H1t?y@;+qr8a-$n)~#Ib}cCm&>%0(@*M znaJ8x0ss~Q#<%HmSKV*-8T_7I8gDjN8*?QOXPBusY}Ova{JghEGjOB=9*xJutub=q z*fYL;><>n&l?``l9~dK{f(uN%WCQsL55iCw-MYbGdK-DNtUW)Mb*($#t5WL+K#dOa zMycCD7>0Ce%Y`#T)PQ(+rK?j=gOX!>tgg@5=yHdmL~F~FOIDPLyCj)nIZlkhABW=) z=8aVQ@0uM2W2xna9XTiGD8-}(eI8sblAJzvX#5(QgWE+CgyHNgOMRw4Axd5hLHFhet!yKXUu*NaAUKGp&S8KHJEHD9CCx9TKd*EH;-= z+@UMlrI+i>6$%GXndAx3&ZFAdn!3(wRm^hd<-c6M9z})*k+jdZx3v4L%Bw20cZWpC zx!!J_imPz~VK26<=J5+l)&><@i%F{)ei>;Tz=?7?{}z4+c(`*pfaQ|QN03_ZCZ)62 zL1!Bjap6oO;ola?nGaURV6z@4i{<&w&07kvyP7<(J*BE;AIGb%B!ysk^PhRo=g@iHrEo&H)V z09N0=sVayM_d?f0NJJ6wPq}x2h&qpBno$DHfUk#2_P$=Gs7Q>RDUTlEk7^*ApErI1 zpM=8U4zA)lH@?&#*cUg`ZVd)ePB|@HUVm87J`gt6xSQt1X+Ke!r&E|M1M{oV0^-La z?u0(o&3$4^=JM{jh~U8nw56TAH~@_<`LD*aL#K;+#r*=d?PT2}6R^GB$0DL<@Y2{p zlvQ4W>Rp5tI@=3`AjgDkF|VN9&Yed$ibf^P%%{9ysh<=26O1$>g{X+=IgOs{qej+; z8==F(ZCicELlz$;9q%ABdnv^uG&e_aFPti-FyL*LPHp}-)trn!i5v=muW->9wqD0A zGg*5M(H!prjaDJ#pL*04UccHZ*=u#MrNRNGk`*?j6gvg`Q>ZUZ(NBd4l9GRMs(f_D zAi?@#cU7ltj3Xf7@#Sh|!Xl>w@3P)cuICrKHQ)^OO~(iPjRFwJM&UdZMp*NVbU-zFcd0c=?9*`i9ic*qMWcb+Z+&RSo zsnTN?>}u}QKKygbY}i4A0_gIYIys$RAEzj`eKgP}O2HUApx}FP@j%f(O2uF3+dsLU zc!}zKb=D5tC%dg^ZVIxzds!RN<1FzPaN=U4x(=KFtO_5KQ@LV;5?LbiA?Br#MWicmFb10FoKZ?n#rq08OW}H@MT;j9% zvn#tx$y%{Y14J+)&|~11dMnI%rl^>cd(~4XJP2g7pr@>57j4Rk^gI1=8G0 z@N+oAgtyK7Y=PjE`Rve-{3JTNSCO@?Ot3~GUm}ptGw<D;V;N98Ab(cayC?) z<3y#fk{PpHhx4fMij9MZbv_>50CB<^o=SRZqC2nvtks9en_89M(*qCAtz&v{1ZZM! z+uZbX_~g8tX9re1`faja|EkB68OD7UTbbO6E23|TxXy_gIY`0!RJ?inb&Fx5eAcyN^Gu3bh`yxwfG^5U% z?QuOeCZmzl`PkJw+~qO0!i8w#og1_8p(?tR-QA}S>(pds1`0j~iibdT_o`S;HTSD= zCaeM7-Ja>ITA!JT+~}2Rzvs5fN*HtIh?V>9RLX_SQy9>QY{U=gh*<5LgU2YTRc|Zh zmXQH>|F%>0k*dWhv!VK?Qd_4I)%k$y7sgXE2ePbaYW?w{!A?7VABOdK^oxXV@Ayju;awEv7xm#bxUGXYTl-ct}MH9B#8#d%F0=t(dqq z{FQJ3X7ZO!HKo@*uMaK_r)5>I&99ed zNVV%RT3ad~{?F>V0jG-nf_%BvMsNElf(3;%dj}0CsX=!gl~O zNYI#LUFn(lbg@>%ym&yhxuI;9dBzzTF?7STsEAJHzM^4jOqaQGA#8uOUV9V+E@ZLv8O(i<=_2xlY?3QP|uLR1lUQAOsb>D<8O>iUi9fDLd*c6<8Nqe_aDA>l@ zt-a)Z$3xq2clI&uIM(y$!q1M@^5A!X!yMif1qAZ>tx#^zD!BG8<2g|}+4=xzW1?1@ zxI4x|`4AIqJdFaYE^g)`lmF#)&;O$8E2H9wnzRQ3A%p}8!QI{6g9NwWF2UWM0RjYf zcZb2<1{vJl9fG^Nf3v&q?m6E%efr1r^u1MmtIN7>Js;Zpn(kiBZ}(Ol$Vd`6IDF-> z?kiRZm8Tz=>S?Z>ox=_M%-6pFoI&>|g1H<`+-s+keVR)TAK)WzT94g3D%z6_ z^;OOhHL2Wu>X{(;fX;-t7}E^FhR7Osu}(I+bwppwz%W4k-Yh7ci*N=2SPhA4;RYT@ z$TO+rXHAVythI}Eg$u2BJlthR9(t)&EnC3>P$TslkA_-iW`)tkr}MxC*S$^PGB1RF%2Q0Go3oh0q9jHM!Eg zI zcE|v~`|I>OE+%LmM*(;%{(}b=CYr(zB_oy9s+4Y_}~HK zf3DRkboj{>#p8*Ip?Y6-=`tBFz;|;t#7;14E@5aSJ|7*7Zstrnagz{LSS>Rryuu+v z=bNF*>y!N~tY&cyUcP)brInT(h87P94+hzh?LTt1%Yt365@;SYHXDrkM&UDfLonplDn{$W#3L+gui5 zH&ySece%l{UU$$B>!^ps_#IcR_hw#O%~tGw>~cfqhpuzlaoE68XnW=i(T$}R$Gr+o zguwfozOt?H4xkpw?qP>ntnvU7%nt$J>(pgnF<8k2ZC$xrT`<1+NrC~8pd&}a^7rPZ z+w%y-2?RTM8ud+30L+0$m+_H_sBW`i(Hp5wWfFfC<#p;$mQp(KX<(JLMAB@Nv|JWy z;Ii@uo`t1(0mgdrj3r24%vTo*LOZ4x#eYQ+3TeP)@`Z!h&jt^*+llfn=>*r7`G3bN zMrX5CiK`>|(_uOb7^Z#^w_jJUUy}*G$|z6LU1i`v=ml-BX#@ZV@msYnGl{i?XMey0 z#y@E-o=2i>J6`vr#^TA9eOI06>d^xOt2|4$dp4VUl7UZ$TiQ4g6kps;f4b{9?)>}) zkY=PbW+dWT1_yxKogSBT5*%rNZ8(o|3Hh{^q$k8gWwAjqfp?OeI-$_2OQ0wU_WpPn z8M1Z#=^JE8Ty7@sw-TghR*S(F_jcz$`k)}#v}>b0BfR+BFDuOsCNs?ZvF|q*6f9#L93?&;|quJYHK8 z=)P~8a`U~$=UqPFW%%}!4>7wZx3f>DrHSQd0g9`GlEp>knyJ|9kcfoZceC^Hp8V!< zvCWRTIo)qT>djc8Kp{cZA?mt6pShhLq5xXAxxGPc#zyYpj?rus-NIz+@3OvUiZnYLFM>% zdHHz#bx<7D_$h4)wdSs3d%{Lv^i8Br?1GZBx<+Hum=69tAY9X^CE1Qibu!MEKXTdFz0I z_BAp5uf02-Ju_`1i?IXFhUbok`^GgZ(X~PfvN2-!qj}Qp9rBAraRNjr(0$YGL`5Bo zNhLkrS2q`)R!7SH?oj&K4MW`XAACI67dM;<8A4tTZP7#~=R|r(-LZq7C#hsS%0+)t zdw>$SbrMzKhdY<(c39eKt2&UW0{iv3uF*6KPba30B)+myYW01`b;-5mn^@$F0IV$E zGpv2nk^suhZ{GL-zbkixyfU8LW%q-J5vD9|wePz79&nm)PPQ)f>RaQ`_EMcgfejZ9LkiGVIPf;fGocyg$9mukn zEm@MfJ}NnObB;WVnkY56(D}yIzC4b6?JRoVG{)oGr zoO(6W=jHkYxC^&?+wN;h(7Y$gV5QmMuU!hEjy9JZX&8md1H3JZSB>Eb>r(F()OzvCRU6&to0bk~aVjqG#_6F;s>8pG2 za;GU`6fs}{!-m(208~}mY;7M(>U1FcFggxZbQ%OFdW@AfFwWNN{j#cE=$MFypb-o& zI@_C@Iw9D;e7?FHq7OK>8SQh-x*W<%F#!x$ZxuJ)nZyJw zM&p>o@wC`!GVENKWyZd>dnDS8q^g=Gl{xX+1$E~~8|!&=kiel@@?XC+jkl#}xIfe^ z?cskU4w+JqCkguuvl<@`By|ht365G`6MDK|GurqU7CF(@80-4|J&)=-`|T8A<@=A@ z43ERp=`02XYr(taJ)`h+H8@Q@spyW|^h*+)naL^6s_2Bbth>6Z_XjL9N`Jyw79m2r8PV&XJmnm}|H06*puI2H+~OU=DJmIf0(4*T1bkVS)?mXLl%y8MI7 zbrjbhEDoerFsHYU2@5%t!ix1~1i%Bn?`GTK2Sf{=E4`skB5Bb@+bue6sfR^yZMZ-C z)4&1h+wba7vffTq`b8Bo+@BPKyvLWUOUBHYwio>J^1?W=g0eN7Z%Xnm?L--6&eL_!<)!@!uZINSGe3@T}9=NrUn=gm||)L#Aco5~7SDaJ}Bz-=q%(A_AVfsn%qgt)kI z5rgRK;K!!9KPO|)V3-Md9G?3k{jgM8@HJYGcOx5I`%FdYNf%Zx^>K)vgI3E0K|BI=IQ_o?4a;AP|G z#?Oaw$@*uW$aYsm$Ui3WS0{u(Po}opvMDq_sc3!&b~7~E<`}cKnasfNumG|6mHo8r z$GjSw>0j_i=)Nd9(z2>!Ns*sKqip44*^uK~9A$0}mo)_=(M!F_LO(pn5oJH@FI0KL z06uM3cJO&R>l+3M!=8d5&x?EwBN%9-uMp*3eBR6Bc8Mx)*Q?njCzB#nfMQX&9br?K z_W4+bu{q06uPEEhZg_QsYgW*88*AOL&IBIg5ckFFy(>Pwkk`=;6_&L4Q+b-qhL9~{ zJBNuHKdo5gmxvwod;xVdV=%q+oE&z?-Kdqmb_4^-pl%q`R2jwO0X)FxsVlp~VQ23H zN^#{iNPN4$H^2^ZKk6@$0|WTs=NODRyVy(B;K`Hl3BmJ@0E2`B0&aNKQq%X`J*CU`Ud1wgNX2U=x3!X@s~8~$24O9O-eihFAD z!JP7y&H`&+jbu(~ZtDal#s5|*#scI4!+fvbB0318-1&WIpGHKB&Ux;-vy9%Y!4LDH zL|K*}01B6fPN!Z`g%a6gYUIP~)2#Dl^y9^N`sZ$K>3JLIx+A9qUm|Hn`rL$?x#KK* zy3F2ff9>VvJZa13$KS^+lViX@4J>%q%wL7}aS{_204lK>L^@i5YxizYgZ~EuP_zXe z?V|Hx6K3m;hi@G{MT^9f79l7H~wqeUct8Go?TM$p^CFZHg*G z@1#pRPDDaIqJoJP7_hbH+K*ojd3^B!V*M5A$}rGfi^^t}l~&a-0BWR06Zu(Rr$wY( z?f7{1C*he?Hq|;NQLZb{HUlTwBzg86L;9TFnr_iTcXR}|F?1i`(rU3Erv38vVVG7QnLPL?` z30-r%$GGgc_zLp8u~VnfiRs?innxzNY<nMzbidGx;Jb4Z67;cX|+^{qck$&74m`*mMw4%T3KxNnZoad;j zae=3u*n(KQlMgb?e6u2S{+de77e@w!d-hrCmTH=d9?&${#fedVz;A2QaI>u+)GL#I z2nNQPb5hV6bnT_X_gLO&4+IL+^3(@{Oo5*tP7fjXC7rG z$T2WX{sDft=rTYw454`@Q(IlOLkBNLuT9Vi5AXb$;qyu1c@|Xb6Fw4{w0d4W?khx% z5lUTbf6w3VQg+$9DHyQT(X`(&m>)!}$Le_7JDl35U0(5iimbUk4)G@o-rGR#R4|3%;9(j-wSdpo7JSQF#6ntp9|iK4~-6(E$h9VU4rxlwAr|8VkfIj ztT|;u_4=}vIkjPmm-V9~SK$1*rknHycyM{Xr9R&mM(MF;%;JbwITk-{FZe1in>4wp zW&ocbHiUq~>?3M+4q&V`gTocOOagGC%5#=`o_W@v{QYUZs+SgL=V6^;$FmA9!85|g z$bx@ArUuy~e(nC3qs>}q@AhPl+al<>eS1wdGpG290n+z&ZIq>+5O61VbJpxAJLiAD zI!wEyms5TqnUUM?z>CZ-buKd}z!vd+T^s|mVn#!nEGc-*OA zeKlYLzJsUZEsf$bK0Pw%w(9{TYw_x`$0;04o}N^$lv@!1qgZ+`^MBQM;zD5z*h*O4 zD&iA#ZejiQkNA8W&I<&k%47vE;izu;{My!S5-d`iry<*{p- z(~RYjczfhi-SBE6f%{h?c>R)Zrl%mQdP!o;=CVWs*cH~@t9Y)y{Q6g0SS zX7NN89vqrWyI;J_lVO=`iok%AE#4^YBfZX9Dnl4ul8{XxdltW$f zCb;^x)r}5b(yf!s3fJK>g0lh26i1)DGb~cbLcy1SB;`neV;j8S*zT7*r z9*45QGsE|k2|C+xiq1}Z@e)b(I(a;|i?kG!@)~L#IDeK*FNpW6u(3{3`De%fbn<|E zIko#=rj7M_bKow+R5zjU*g>qMK9!+L__eh7SqJU0HWldj(%o4M#x@O7w+@~=g*3m~VV;_3l3E|*@N#jepbosCRI2S+8e zm-Qe6h`CG;`qMRNv~^uZG%goi@^d%zn`cLa$v)+%LDjHW>6k*>T z49{!GO4tPR*KSuwgn-6-6LvCjuMbcKr(Hnwygt7+zdAk7v3zAvRbt*c<|U`pYO=EP zD*ZW()r|gGFuDEUF2ntLAb3GmuWf|=Edk##ilL;Ok^jzpvmm)9sWPeYYRfa72oMrs z*Zy#JDUd%`JutmG%?bHifZ%hn9x952$0AugZ+rv*wCP3`(M&KJA9W3&9GH0%A5KQE z3qZ`4CvNeg@mJVdDvivmD|TL%oci(|$Oe(Jz3(R7*F#v-E8x82{HDG~4Md9d=QBZ` zGHF<{ELURlAKCKIOwQt~I<8d4t$z(yFy3$B(7!&Mh}D@5T0@^!`iuT)WTW|lK895P z3=bh!9A38jb?@wy4pgT?1@JY?Y~8z3lB1@trukPY*lMl3hbA&u-~F{$bbDsP^I3a2 z4eE~V&o8O1b7$L5d#`1o+dfL)AJ@$-4V8X< zx0{D;nJX`@4Dc*vxk&sO^kg7lmH(YAt{KsxdN z)&h)Jw$Kx5Fzd7?A00U*}63bV<M%4;}9Z+id!?TqvG@W=(g#69{^``$jo#HZY_rHFNA5 ztMfUls*joHh!ggL%?D(8<#Rd(euD0x^$FuldatkUURxz;M&Bs&u1B47a zzIPMqN4Tamq=T~oRBuMdWLSc42RHi|HoC51RqRD(MW$6lqw8w*bik~yaxcAkW*ZX% z8ZS#j3gb!aY1V|qUrUy(SlMbFn@*@l)zI^U?=scbRbRIfxtQ3Y5!K*L9$7SjK#Q{W zwdG2m?Z{0eEmAh{v_X~Vb$>{q^vMDcbFd(rF~_qC{1tix*#_ZrUvBolf)uh|&g&@F zjGkjaXP!F;%F&n<48QUxb!h#03hZ;|x?aT8Ar(92-{w5XZumOhee1%;y`7=b8a@!5 zcY%(CBE;ElU)_+9gaQkQh48pJszMj*HQQ(6d00X<_eOLe+lv@+EIVKoEoG)%DQMmi z_g&)Q7vjKffa){s#-n&(!37&r*aS+QBg?0)l8#3`YP2;>Hyj+AwpSu(a2Z|dabGg9 zVfTUmcJbLx0DM-atHdLt?{o4nUJDZ|1k{=cT9*|r3%)DAPH})`u36vC(8sj=^$~B{=D++vg{x7` zY_)~~IKE~vgtx{}`j3u;;T(sAldUxV+yVR+u!#|k=_ZbV|ATRv#Aou!pSY<@ftFW^ z9LBHmn#k8yuX48-N@a`};+*%}Y@aY-@=UP)S2U@FF}wy#?sl_*P!raHDhs`wAtBYh z+dJ*!h7eX(#eQHipCNQCE>ZI)K~L%r2=+-nFH7E-%usrSV`xrPiF~I~VWHOC+j->o zgjqQ8b?tB7@~FIv5#N8q=l7s67_8v;BYo25jIWJX?;R-cJ1DO!iW90(*N)n8tSjGZ z9HNmsq=^3GLylk>be=&Gv5*3nl7e{NhebVhB;;C=^76@8r|qV0Ccmd({Er9#gIx!D zK#awvb4|4`b^y0)DtZX8y~lSjn}TOTM!%*RVhBUIgC1vJ z=_sAQ++XUy*5t^In)d=aDc6Y}OmW|WH?E$5_{XT)7lH4Ri~+oUYc`4pP&)ko>$nfX zK<6dBC;iS#`aeGmwj1t_RfqlO@+bdtW@=}#|Cs@Lw*Bxo>VN(RJrCNHm-q4XJB+?+ zg#518QX|$ltN*|Iyyq&KCu1M3vmbn45{w$6yk#(KPy{^_5{HwxRR3=XeG@vXAk{9r zxA^zq4TWct`~@$CHov@qRL)(z(Ypq{L|L~IA*B17_WUprKq4U$0k-E&m1c?aRJeSo-L6v& zT@JUX|cM%iVeX?7^)l6r%e->49(>w?*RIKaYx5lpANi<(cGMLA{fE+3jHIV7jQ>yi zbD-n?uNZ>ALf@dlwNPZOF--Lsy-D%K5UU*DL3F){v#${grj1}xHm<(ugdWS=Aj~9{ z9lh^&JRd6kT-T4l@%$zz?qhww5NDksbtOcu;&f8%SX>ocXX7 zK`lbJj7nEE%zlo`Vv`2ff-W4C14p+!Akc=O5k5()zTH62#7Hu*`3x9y0%SNm!AQ)Gl9aCo}l(NP#Vk#SsPagY|Cme#L4~d&L|(u zf3v*RSH2XJOuTQ1w1%n$gwy2AYfd<65Jzeqyilmuklt_Kl)g`L9zMCAN;T&0?Ily6YdALoog0jiN#u!FfB~878 zq90n*(t`I^BL+N!J@Gts+_tUw&kZD!mpIs*w`0>9G!Lbxz6tEue=n<@FYHINE^Y#Y z2VOBg6M#oD0dT^3-w17A*X)G29;uVycaIo?!`XMUb${6krO0yuq1g-6U&tsF(fV~Z zGnPCk*T^o(x?r`L)Gvx5TDg65oOw4JQd0$W-`{09KQkaq}08nF6YE$xP4BG*5K3b zj=9>b-4~B8jKaDJv}fwc&EWZeLgPM25uG~j+Lt|-XJ$k3v!IL}?u@VLM^!+N_5ii= zWr&y6w+&6#Le7Zb7EhhfC3q!ur^85jMM}Gkb^%d3dsh`-J;$D5S|?7sVTE5aJ*R#8 z^9b$_7k-J%w#~i+yznf*Y_zIdaSKgVrzZV`>hsMHWf%s>%?`N*wv(Hmr-@nje4o2s z44e)Nhvl_m8_n*6+?OKc%2SLS?h~+@t~l-FEgwg)I5lNES^w?!W3Dv`sCGreWmL=+ zs+X>i*6y5oxsoFhU{Dlt=rW!zx7om_(y~nGTrTYrGDg>?1skgBRk{~LTtcL17i)|% zgYfQL=2g8l=fwt!&X*w;s^!F`Y^e1*582_2N`#JH%&CSeN%)>o|N#tn$?M6Rtvvm(L1P0{S0Qn&u(~xjNypPZ+N#qNcRBr;~RlyhI!nx&bL|; zpQu}HxW&rXbP|%w(-_2~H1K2uAB@~2pfd~<#nK7g)BP#JR%)wzwc33qeHCrk zmm9g(CXnM&HR$pvyW`}%hrM&;$wn|MFh8&cBTk{QZOs2{>!xgM8Y5_TmO z6{(R{Hj>WZ9OxLl_z;m1xl~5ZZ{6H_B;t^X9=%fSmDYr^~iQ|7@)|gSFwD2TJh9rTU~p;iX^pKOGL_qvFP2;V?Ir5v#~;d-~u9cf6V-# zsxD0{`={V!jE}Rx9>F%Fq`K^rTlO5C+$h*?1efI@U7AVP>Hz01$O3sIB_pVnSN6l( z{rju0qTb8cVY27tU#QZO4*4GICDq}7)eP6S%XD1JD)ogs4|l7^ll4@aPd7<=ZGwTDxq{(* zt}YO?W1ACaX=SdnjU?PdJ3Wg-GybBwjw%_ie?Gg4Ymrf1iqz(A?k-C!;j9!GW!O8)mK5Iw*nc53|29@)rN5?K>^0K_fBklZp zy_^R-M1NXdQyk&ud{vhLCap| z3{Z$(PBAv0?5>qUR~MLnDlSLjh6z!aY({|E^_68NuVqcP zY=Z`lJSE9L6xJG;`iH~1zk4JsMBjde_Hj~iU7|qbd3M`Zy!8cdvXvI!(Ve!dJbUS0 zhC0F+4z49+6MtReWl~LHBSe|)rqswp(`E}Z9^jqX~A96CZ=<+_VQc_rkbyN2B!N5Yb ziP!A;tb7qNzZdhPFiy_5Ms|iBU=LPa=Ys#JU8QydvR!L+iu_$%7al1$zXjZXQ^8ZN zzK8h3c`3UD2vJIf-qyRIhr*+*Ht|GRR@q+n_gVc^Ci2#4=eQNE1)`i!a8UP($m?6R zi?%(bqnyjChW+$zscM+RNq?RM;;F{wBIDUi(ttsLxACedSQUkgI^?D2MSeM`eObGpqT*CZ$b z8%}>e1KP{*CU2VB4PxBsw$3upw%BQt4k%5Z=qDCrJsQ-BL{aRVa4b0lko2$X*hLO` zJ-orH<}^9_WfyHXB_!8>oVypWH@L>F@N-qyE4etnCR$A&Ag}~a$@Cqo2sw{n4 z1T^Ei%2XR&yilyAy33^bc8A1$)#chF7hN|h*}Lp@S8{a9Fs_R-V3SOGHkq@98kC~l z`EZwqT=?$K2g9#9bc!$gt=wI9U1UYN-YRe)>zr0%<(N;Fr7J4O_h(G(i?mElq1Pxv zItk^m;fRgfM~^`{hUc#Y-aQKz1972y8HvtHMe24o(|taVbFHp>Me**zNrrMxXmDrO7_bR3_s-y*bwW ztTViCoMS2KM^?+-T+&WE*|NDmALFvus?_;Pb}~Bh^pB@9 zbAK`AC<6hSO-t0V`SDldv&D8Yp#V;Zfd3c1#^&;wEHNwwRIvpFi-`H5Uy(<#5W;rKO>AnwLCY@0{W_5GseO zXVtvFk?K}AI7l{|Y^?JqULW0(=vwkyom%35J9oFA=vOh(*Ns#y<`@JCZq*rTD@;`X zNXPG)Rag1AJ%7$5jpCx}im+n|0W}&@0~h}29?u3;WaeULj&7(fd`%~MSpI0^o}%&G z`Ny9f$Le$c``iY9o0=%MEI}qD<XLY+?tcq;-yH-Yx=vu!rAQrZ~kIfL!`zSMM_I!=d3 z(Vji)ax{>lT1@dWDxI;+v-&(;zH6n`wF*6msmmGeP&JS3H5m#PCECMHxA%MtgN4534SFgGR$cX;z=94NbJsjz2P$UnlzE^Of*<^SyE+~Ntryr+AnEc?z zF@ndV%xLLO-m6?#;lUH{IVD5)xe>J4pni<;_2E5Fa^Lc zJ~}41g`&dwpmbe_9@1G|dJ)>gr-F9f;30q__R`ph+$v}{@cQ$(di_c~{YTaJhaYLG zF+>wijb9ZnKXPzP8h`FPTW#VK8dvvh*N^`V@KONjf17CHO7X@yUg(ozc2Z9KTW9(H zb~4On~n(N%KM!QGeBE@x{- zW{qZrXtBejLY$F=R9?A*Y95uyqJtltAvT6p2W30#_bx1GY}*9|uDNta>}$3}jMATp-EU>+ z-&6|N#qDOLS9_vzD;cF5C>iw7&_SWe==e#Oixr%pk@*>&nbqT)r_3y3bloP52}Kk# z4)UY#aoj+W@{kV^6PCAwO10`GgDK4_0ki8u-wpoI#T~j>hHB(VF@G~`VqyovB~bUH zQr&PZaHYM{W9^r2vA=Zwn2R*khT8`K6bfb}5hKV@!&5%>(eG+CIR$O9CMxyz1(MVB z^&n^473a^Kxw>(3xoQTW?f@lHxhtQz>*du;Us4L!EF1B8dRQA<@zKKt6~>ONNs z!PYPEqfSzQicJa_1!SVXBJ&2&2ZN^jrQGpzB|~O%FUm!EJ-!)9i)85FVqt~PY=$gM zpJP&hCYHfo*}n7WAaB})+cnJI&YK)ZTy7;GKr$( zqfeDtaXye4wb7Zg>2A4aJXe_LL-UW!oMn+q5#ZFu8h)_*@Zi#vG1l9HtTX&;IXk62hYHYo_kQANmv3qzog_ z7CY!l%3_Q&IoShLq*;H0o=oeKb4A{md*ta9OjD`;jwFBf7Z@8m1tMn)p++$KISgW( zd>O(T-eEneCh_!F}-dx>y#=E!f`Xkgm|$3Tr(Xd4vxXz;`r?!;PlAf zKQp!Z8y9&-_+Bi?2EzsJ=iw%othmG zdDji1m(X!tAAf&m@%M73|9Aw=M7u@i6xOsL=ywQ6i5M_D#lVj!=6)LAcVJ;eNU8a0 z$buZ)Q~d?06LzGU9%0{JGsy%yg+K6PPcvzWJO~RNU-WmF3L5%uIxF(H;UB}r%Z`5g zj1TN%wE%hxJ>D!95@W)2`Vn{ZJ-k;oWvWpm;Ii8ht zB&`sH`yt2_8-TA71jFbytvLYrU|{AUl50btddjJ3X-V7f_VtFjS+O)8+E*@BW*Dot za+>bvDK=%quK~OQ{1C26G`juuJ6}+g2_`-u!bB6QotT3R|G;ncqEXL~e!T!T% zL`ZiR>*faB3`QA{$2&C}%a#l3_3i#(B~glVsyrn9^8x5uT3iW-qVeJ-B7+=#l(t(1N~T#j$XEl|X(lj! zhUP&%eIS7xgZTGo!zS=NcGL&-EJt1U--QY0Y%a>Mz$8L9HP?H;9~tuBP*WEB4sN#$ zu=R_=qp>y(n2X|Qe@!CeBO~+xn6oGa6tJy`4lI};M=P4e*$F=){w@)6XeQ-Re@T|J z!3;<42`c#%9BqUjL8o@Gz5R&KOn$keG>&S({So^kzDPzJqdE`2wQbdF-fVVR4?sMO zC&@$uIhe0T`wKUA=cu|Oc95ZRBUAj=8hXcWgl`7C>(#AsYKYJ%YA-`A4gwV%i=}Q` z1|UHA2Q6IIo>Z%e#m5JwhCmy-4$q&msG1%$O5R)kvT{48*VES7-9@_!$fq`yRu0lz z%JJ~tlsny&nGxxk+37Z3mYz_HarLQC+%9IzfVn)8+GBmZ=IaN5thE~<1y2wfw+!2t z51ocMX`A*u<%M-~J6j-fiZTk7HRyh}AhzdQ)Ho^M!b%1ysx-axy~?x3tWp@8;5d|3eq9)b#pvVJecCP0gnPGvY3d$8c~ZTmZgVg z^A%FP1^5aZv)i41AHMX!0=9{8x60+ZblU@Z5T&F6U$*VVKMNuU!w10_;H0JAeT<0= z>_JQF*^bZ`Kn@=1!Z!6h43J}@GV1$%=C0|$;H>|vg*%K8jE@}kfdH(E9eKI4%&sYF z)T((1+K#yLVs{j)fM%1MJ|U~>ScMObXY+8#n>V-4o!s#};f>}d6lm1wjG<`Y@*#A~ z_Hr2SO8;&H5)ilw?H*aNe3ikVHQA!A1m_hw*)Q_W^2tth#`aSO8b${s9c;Tum&8m& zHWtP7QcliCVa~*?SaNE;K53O6(UVLVC|v)b)}ssG ztAED7Lsc*TK7&~&FbF`u(eM_N-`qQ0X|f)bjte7~lB$7mA|eZ&85nvH$t8aJ{T4+u zGG^~i3J$cfvvm7=5HfLQ+N-qe+CGH;=~1pCGeVMPbFIE~pjoF->C6rMz=9i~MnU4< zR=hzc;eQ5sBgtM+(_AN!)U#0>=>4aXjr4o_wua>!+8>2LA~gNyNX(`m6{-UUxj880 zm!7{AjOxbF55NxX;d8|pbz>Bcd?^~)#MkUx&YmwlE(=z`;ethN{@H(dD>_!lO!8c> zE%qLyN?(8<))zITWUc8rW)%<%rc(`3`boCgS>Fvhva6=b3JWwwv+G@kmy}k1$~5p6 zQvbVJcg&NTx8q7Lhqk6%T;Epg>l@2Oz{0CZ9}9p~Pt4D;U`NgLTBuQc&Um$zEnO&q z6Uj|USyWjxI%eewq|KBM^2&gL@CUK2Y8zdNz4X|ew!?aSVW~?$an>=}l4}yeTVC6k z;*;fJSQF4Am6I8N_<#%$XJc2OR+nNpC8ZEqiB;wK|NlI=jwd2)rcBmFmqkg%4?`xQ2V&X`QtmpURgjhtc| z8<~#%vgR8^l03u49VT1CK(NXV8A;Tk`O8Q(zM%*-(^S;9LWqB4ZhbQx#}1o4(04JU zfn$5lB>|q6TRg7)$X(;W@~?@He`@@+&T-n8P6v$$#jEX2n~Gt_ww?)#?eX0&rL_+^EXBf#Xy{ zt8XV?O9##_`B}P-ntQ&^R$$D)k-f~}Eiw~^!wP=Zg@y=^H(D1rKH*1zz0|bjslo0X zjC5%X!-PGE4-n}hmV}CX%x%Z^w8TazVvpP6JAx=Cf?Mb9t z(N3;Rw1bn1>(|h>%$CY;FZI{NV;9C)5&;TfDic0iovJfrO0(SxmQt~4?soQ7CFPm3 zUi8`D5L%L7pjqm`#wa}XVas6ZKUx*vFN=gs$9Nn6&?O9f5*cgYN-JMg6$ksx_8+rL z@gCZn$(e+!#y0vGiQ{8+3q}tJSyvXH{p;KRzDF))I*Npc$a^$0B5mhf`*gx^Tpuyx z{JMM__9STWRCHTb;FGMLGu<2Nk+5-W^q>{_8$QzI#l{9WdVde2gyoD;ADwY6FAtq(e6!v!wg|%BxCvp#fA=|JhHHu!^#G03X zowsERcpnb~6B5`1;t0(lYD>fYg&4*lNqFwv#wU-O7VbE7$FCmlh*G#Pc-Xb@Dxsm5 z4h~9Dt!GaSS3!DFI_P+0S$73Kbv04Ca=Lnyi}R~L%V`%g(}}-_%sSLw7-%mg4p$nA zmqf+e!-^t{Cx2(!6rMDpWnu(R9V!-;>n7(Ul->I0fLltZ#G#Ea(yWMCvS)CTdMT*k zod?gq_-Wx$WnlKQCRn*!uFsc38_iZXw6_(Z&y+LJ%0_pQ<@=Iter!7u|TI+B{LhAnR#2d zD|g4NpRf8`aAlBZ|98a9w2o(CxsTsC^`K0mlMW*hPFZ|-GZg(Xn8w+Gw8|!>jFZ-| zdEh8agKs#!yk*Wqlcp{>iVFwC#r*H)i`(2nDjALk-n0v=Na;LXPE$=$c?%nP$W(t^ z!ott%U0jOLn%uW}Jarj5Z5`vcq?dwb>`0{p^RgB-A=LP|%;ZX}t%RN<%I)|BQu#ri zoxKwDhMoF)`yq>!WH=r9EOvPcbg>s?6oxqqqh_>;n1CsY!_M`ET@y_w(R_H;Ysa`b zwxaWHZk_p!B|&Qa#NV_1ilR2^RjT#NDcq4-5swvm{3O2^{Hnbcdz8&p+7#WKEFj@OI+sEZNtY!4~s>oFhic72#@e= z#X>V_th{~%#&80w>YC~c^E=5W&h*79Of*?7pe)jqtB<^RdIdO;_L4oDaH&2tGS;CMEN2mbh}Z?&1&r>HrBWWYR53XA z2^HM9+HYAH@PRiwjhu>1g8uJnXvljRs(n{~a#6zmA^Ui>QLs(b(RJd=h>9GJT@ss5 zNx+8_tLh4eNKNehqOq^K`5c3Ds+u!rvp|#L@&`fr1t1Dey+$oMTVqOM{g)UI6|MNs z*~PuT7}Y5?tGLT7bPjG#n#H3iMJs>C8_!hC)4z(WH}C(hlfjgf`PvVj=u-Ev(7yaK zdC*#9Ow3mLRAZowq*ZTHbaCs~6sT3rRW8@V*y+j>f*p}&{`zHF=VqjN`c*trO_r!M zRE!Mp7h)!-&aKG^#&5V@UAtb+)Q?e0?~)M=9jpg_8T*#+BTtpezuRsw7NZj(*x)>D z%7(@ZYwTmfDwZ!hGe+GkUf=UOCV@}K)i6imr+yX#kVk1X@Z^l%qN8P z9TZyum1OfU?5`_-`Xt~jnGNcWd)v8fI67JL111%$eiYng$rUdR$;bBC4z9YF_tk(} z==A#9ta^CtQtZ~!b6HDO98#RxJ|PPTBiEU`OyG@jn|xUr3>DaU7tX9tgUh@SR*jwD zyDGf4&VESR>x-wETqnb?lg5D-=^LeN1lz)3pmw!ryJ{ZCd=yjQ2cH?z(5ipm!0$6O zX)@s0lHH~^x%_D`?3E$c{ownrRqTT z>!)aRBaf`S+G82S*nTArZeBsvhBzfd-dG^;dk6b3GO6?^ymP`(hu}!!d4~t1_AK_- zvM@;S*sM@*T8jM-_Cd@rprbY8?4bSccm3osaY+Lo2HANeX|u#pap|0&b7~S~U$X33 z$>kxzIfZq#|g|yn;h?#-*-Q2z&3fv2I|J^aCb4-j>ryEW=7f78n3X z6LGUq_lT6wZXWpD+xfJ%PGI@Z$iUJitChFw(&&g)&_yGmxL(%|Uo&Qf8EI^qBWP>v z(SP#G_3%ed03O0n=~U&H%4APQx8c+3m|wGo1UtUi3cs@Z8$QZ6-h+|Kv~eV zc|Ea3j0FJ?KSW;QFnBP^&Rq|$aVT#NsWLiN?p(ElPBJja!ZiQWw0%|< z$*1_Q3h9F*;r~S$_y5xd{Z~8oxiw%B+IZ7~bv4F6^>YTy@I$mL#+>RYkYkuGjbs>B zkh*9gt}Mi3&vlGX>XYLPC>=z|Zc|zPo!vFC}bTK*gig0LP1~12TU_|pZ+I;((-gdC2oFr`jVY0bYAdz+TkIC+sv-zok7G; zvj06l!@wGU)u_h#id+}u+uRunr~03ib2F)5Ag9~@yD5!pzTv?0m&5O5^H~q;53?aT zFj5aEe!lx6@6>N^WlOt}EW<{hAN8R?R=KyAMs8iS9(P6^v74-ir8}^}+YIJOi8E2d zGqg(23r5qm|A?5y`O~D+=4gtNpxGPPj5O&%O8zRKG>4a#!SCSUO&tt~tL1$jPee%g zFqZ3gI~SQ(gdm4gYYOU7v+~d?6;HSUALOi+Q~grDG&s-dn4Oj^7J5E)+SHErr2F49 zeYGR;*$$t#;cwPEn0hYO>-33?x5s*WdAhbz`O~pUQlvs`m8ObxB9`eA)Z9nd_&c;?XnOQRfu$Unjr9X0NqyT2K%LQx7`BYr=q_oh&=5Tc|~BK&$<;&~B9 zqHr4p7YQdvh!)PUXe-a-bt!|dQ2mlY)^Sz{$L2wy3&;ZCJ-N+}^EJW+bHqcItyqM6 z2nHhm=ev-)ztUO25IK*jy#^8_fO$kgmyHYR4y=K2-3$PAs7kdw=2mLQMi9007Hn?m_Rr zqEyj1Ehcw8N%E~T0R{^uLdt)I4h`s8_(tb>92J?={c+ zSrS223D0dRA--=bAfM-h^1ChjbhZAiS z?(K8iGCI3MU~xuPR~J^byJ_gpOh%Y-Xgz@24#FGMfu5&^J>4H-laD7$Cvwaxxhip) zicb7$6?bK>JUGnZb&NWTX>Vlzu z`Kk4!>?+DSdpq#LtZ65uA$ai_D$;aoB##?dC_b+Frv& zc$KG?`;L(U_tXEA5<1-bd=;hmisG7ur{>A~%y zS;9H4}LF03c`FvpIe#uVrym>;e`s#v|a5 za?0E_kuM}@JTJmlllHe5C*_`*OD~01a-&B&+Y=~DEtjv7RJE(p79U4jBw8CKb(Tiw z8zPIUD%`Qq!uyIFBj&k=(?r7F)x?vgKbtT+64#{^K53a+x@glHX`ZEJ`7h;5r5Mz? zh&?J6=BBiA-R_5uqR@h^N+|D3W3oP?bW+Dvh|cM!rjp{6X7oV~)yPEm-H#9{AUch;nwMXo8ezi~>r?q7186SbIJz1E-B46T z1>fx`8jQs;EMQA-rK$uoV!q7E4o$7wsc@?6MMq3v&&hubA0%+7Y|u+{-k0)zuSe18 z!p0{~t0`lJ?8vb2IM|et^cVI(CPSUx+-woOSnX4c&2$X_XGm_-RfGK zzj%z;feG5n_$b)+597<8sj>Y#@^|&Gi336`lrrP(w~Z>k=3ABzhjnBv$}A=QAwpBc zuEa`6I%JRzbfwVlzmc5@Znmi|<`z>ZX`1GExJ)f{`bGe>GBvVxlxEkV=yK;^?6jRu z$Iq)j9GrN%F%_^vZeRji54UITG2OgJN4Egucq4fAz~-7&C=OdS#*jYWn270Ds?0Il z$wl|-D}hR;>K*@rK1J`1tZ?Eiws?ckL!uiW^hZJOby}D4=tI15SekoLhBbLW#w%Tn&xhvT z9t_9Umh$}mRaYAU-ICi^R3BkO$~bE4YJw9qsPyD%u^9*&3v(V6PR_~+tAx-Of5y6I zKOY7^bBM8|b*RS~SRS&@&4sHkxL&&IPo$Mo+~kzRm8W2rntWO7$zk_WgM_8niDQf% zM7x=`m<;_9W_5G1P67a?hvS7Bh3DtrQih?CE_*gmY~S_znwq{J(?A+Cu$#90fp#*j z6}r1!Tp06;lfq!Wotc4l{2L>>4iDUJp7Z%giXGsul978CchWxpX46T43Ko$wT==*Y zGK#c#sOVkFdr4pOnnRUE$ug?GQseDcgA%D!8BkNj>&YA1YXU+bIVKzuGde@;#*NXg z3sfw{RH}44Al0nQONp=sr>0PrthJ(lu*f-{3ASHKV5>~J!} zi4I>aEZrt)DF2%CiwL@Up5`s2W~?Js{N!9-Ibb)WVo6|%$2peHWjpswt<#l;{2Vv^ zy^GBW_mO5J8Xf@XSUKcQ<)6lbn+LI>ebtQI11Na%toQ#y21T@ z8zE9u-7CiQ+ug_I-W%lX^uC&TDrBf7SxJtA+)DYn8Ws+9=8oGN9iG3OgN~AS%wh>n z=_Dw477I7C_PNCrfmCB%N-7In7$1Dj;Lb;&lCy6FKZ}arcYc15Sj56bqX2vTT%m2X zxE<|k85Khr^J+jFs+$^w`+%ZQdqSUWalpAl!9ozUC=^jFq)Kb9+CjhypE-0`RG&Ch z)Jn91DM={I)@5rID>(5MlM$p?>TJE^U~rs^Vy9Z<;IV*G%QI->tXG z9nvRf3@R;T3zMpz+;2>BCZZfoZx1~AWyXXmI=)T+WF-b}X1VU0WGtobbo#2%l}}*f zci(Na$%eNcKZ7NDD3{1P0wCk>8woQS@SFik&CR>}DbZO?7whHEMvpbaAP?q-RrmUS zKVQh%2Z!4LW48z^qHpWx$@LyFc45dmOhOOlDZwR=yIbt<-<`+rOc>mhewAZ?(mJ1{ z`&2v&cyS#3idW9fV74odHe19|@UStUqbJf~+7nckGYS-yd)a$(*~ zes?oD3)SwDEYswi-Z;KUAv@kjc)dFc2@T`>uUiwDM|Wo?SPKi9nqwp$aEcVyVJR62 zZDoi27^mi4^O;s@=gopZ?D>+9d?c(Jzdh>mD8-x2y>;r;W;T*o_#|~zz zchNuMJmHAvXZKBwW7^YwbzFei0ma4WLAGCJW0>d}tFcF<3eg!8rYU$CRa6X=zf-q5 z)S1poL(p;5fYEi*ljUu&1pS#HDL}vLf;WUzEf>=u=xuOzBp}H zIY=jXulW7@V7If~8K!%0;|BIzTxhNuCmkmsPeZ2SeK7RY`5JCua3uDS;pj)xfr+_; zM5NIZ?IeO?IhEBS;T1Q=NYUvdIIrD%{1`P~{b&sTL4upt&K7CEtnmuX<4J_*3I(Ob zUriSoU*@!Oa`ef(JSH*uf_@*G&w*;JF~*Xpi7?@_ZB2p2=&7lKRTiy8ykfbNCYkn} z6WHX2v0gxnZ$KXkLz7YJn`Lwfc8SLORYp z4W7we)@k{x z+n>4`VzT*6iRwi_v;r)EKvc6bDF|)$QIv07yFH;JE+LJpFU!ifqM(&?O@5-)Id|KZ zs(t=|dmap?&qH?x;X|*74A;R%*6`5olEvT zE#Tu8K)`13%XR4=bJ1QwTCrBNoi5wc8-*iYEt7jamS~8;=HPIA&PgF;`E(BK;+Z+F zSIR?Ymrj)#1q1>Z00%*Ijk2l?urp*b4;GLux>N>A8g*?BDG?kv^qgicg!hZE;HX$_ z$V#hw_M*ey@Y`(h9F+?BT-jZ`f4h*TLOn6>afNU$2R99vGg%dA?FhnEfTV8AV+nG* ze4}$4Rkvfb=fabb#a7qZdC5eKE|H@^4lR}~y^OjU<^1QqZRY7@qCAt2?!WQ;Z(Aa~ zq_;c@s=iDZy!IFtBQM|-=~7~3uI^lBXVNkVw%P^~ z0%%vBrF|zKq?gX+l*{}PE!8_!ipj!z#wYOltHaCrQ703U1s&A=5>{l zYfkOk0B+RVwy+tf+==D+8PYxvv`Yi=uU<-~u|_}OgtY3Y$)T>OQEB*p>ny8J9^f>d zHFwT|AXMJJ_Em|$37`v4x;#)SOl5z)SlfK)dm%Qj7U<#}7>t=)+DjzjzH6M=P_G{n z>$gquv9Yq@o}FA=_5Nv^CFntRu#w$x;I(9;e7v22i*ixMSQoyqGBq+7g z&i-X9TAGxvd$${|vq=L;iqcc&X}nU!ZJovefJNN|0HSoWY|8p1+L83Dr|Y}f-cIA4 zWLkrJY!^L$&PMeoadIdVfLtB2=YRZsKNMEuPODsIod#~eiQphL{7rQ>&r$ZPPKyzS zE7aI}u&8-N8;f8%%qkOQTz*(o7%6||M#5|I8B~gCdxqGdw^UF93y3Q*PN{k5sQgV2 znErt2m5U8If1PS)xOJ5%3^iu?JfB!~KRAO)S9nl+QO8X@i&#C>kkjeC&{eM|?gt&Z zr5a3~nAfeoqXgOfzG}wQj(v4(P*<=3_)DZ+4zWC+eBay#bq4mG$=$EcD#fcSb^nPT z1LP4foTpZTOLdL{J^=6}xL!%eSzZNeih^xm@{%HDDu6rGJr;IDEon#Tx(Vv*CNGS4 z1MFgl_;|uX;Z^%>QhDp5Ec zwPg80!+*oilUW)!?vj>9DE3GT^S_D};rk65WlHPwBEa4mNM#B%R`)F%uHDa2AnK&- z-o7M6!0SNA+2t?y?Ky6D1|7zV6jhyIkw6X~r^znGeHV`JOvQvC#TUo^tXYU;&3r4p z=-lFWx=-vho*kPSs@V-)Y3M#(u96%QbDCc$T~8Kle!bBVGKq!Ypu8G0>1~&{et|SJPsDm zmsm*b4g~yWti9%PP!z5i1*k!YXB(J8j4=wfzB|Nj1vMOGbe+n~Ol_VmYCz$|#a(I4 zVjSF(Y(<=5pv%b8IYBg$&F?Slvr-X}mh*Ddw8?N|Ya5f=)WZ|CHi=0^sj@3v#<~ah zc$5ax)iunD4C;!RCNy16j&ECSo)H|@m6&0x*EctwG!k?jK3g*S(M5-Y$=`$L1l;EI zTU%O=`QKJwbsUpt{h_2jj1Zx@HD7YotXvlJvXKr~MK;UFth?8Tu>irhJA=3HcUx+) z;pbC#`L?9cIUig-l+nGY#zYbI(ICCExS-}fHm>oCTj<`X22&>%o@sCE$uE}0*3zO% zPRjSk`H{(`Of#1yE-w7}vcYlPeW8{uwHzN{Ze}QxUV)+7*ZpPGhkdh^nrAhZYT$B( zQ~rkPq3@PWVTbyuGs5-{wmR~8k!I|TODkLBeysm<;1?~Rr&!D2f>YA(PiWNHoLB4E zP7B;In~b(ceq^u*?FjS^sUIX1Uk8KgDck9OarCMex<3nquSem$=k{0J z*l=UQGu;tv#0aE65{sDDr_j#9%p=C3&Ws!JOoK~Wh8@l^amE|6RIB53?lo$)AAc2l z`8ksRxP)KQ6&&8CxkTyrJt0x6^b4>#HDxjSGG|NJX%%Frc!vkP$ormG{ild+ndE%j zN7a{G|8r=7D_OKjyJC8Qfy14rVPP4qy6G2($*gqt62(lxrBvlabu!!cfV>%AR1%0_ zl-+u@H9{U?hGOO+ zH{|Ya^T)|aJe0ILVq%#AK`!1Y@raEBKDSv6ZT&QI00&hf4&Y#}({ywUH?W)v$B$<> zK0@$YJY}>bt}oXS`p+tLVKtat@nk0fgZyf29ujM*H8D2 z7RD3MiEP<<_PyKp)i4WWp{(s6Mz$0TU7kPuhRaV}?0laG5=K%2DEj#X-eXn~^wTr!!acY?s~d!+tD~9_GiDu7mvC3SZLa&sso`b4Q@hL&qwSBECYKn z_HLyMnw63C&2Aq36`WkB^TBN# zh;Fkb(PQfpaY=Hz8nV2xq*kUTKWvTE43hyY@4spXqom*#oLhg9%S`xqJU>x ziE!Z1X!rdPizNBBQ-;sG9xXP}cvVJX;RksuV?n;`&#RQ*#F8n{WRA5q5{EMCc#J)c z1Idqg40_pg1pxpTFB@R{sC5&2uJ|-SWKNr9I2G^7GnNaOiPx$zh})DdGxp;&YD9r3 z5Z)PHmXQ{w5#6R4gMlTNtz;aXYi&OP!#?Zy!07iDzZa;yCKplIi7dZv{r1IU!}P1H zNBi>X!r1zXoTxFH_+_)PqClkwu|+cXjbheZrGxp4Z}u!!p3wT=JJl!x#0mSZZHPLO z7e$#OCy%{cZI0SQt)(8TJ_=J*S`fTugn0>xjX_O;wUoJ+6v=vN?s|cP_VnXQmMcY` zS?(7e48<~=B$yLz!3lT;IM0#4T``KMd+DyVbF%!giP|eF2`&boOPq;u4vUft8zYJD z(iLMaFi4VUZuxA+Fc0nYC9ezq`OkUtN+=7s+cZx9<{E9#syDj!k;(CUWbM=`Mj@Mv zk^)4@P2i<;NlI<3C-t>SN2oqNY9wDZ+EZEi=M&!w8qD!{qlpD_HD6A;QPF+vI+LpQ zFr?fWS`$)%O~kG>%!7IHe*mwZgE@M7>|Q3Fi9!1^F}Ex?Khu+L2M*&iGH~KF*(~LfAw=`KN(x~{ zIP>Td!5jy?G7J>asjYlWq2>gN4Cc!6mm2jG^K*lVOOatS(ay7l6DxA^?hGqrQ587F zjWg`BOk#&FqGou@yqzoEhbEu@;m~$(gmfB;BX=L>n_hp9t_X%Vwe-R8pHCy0(cWz` zEgqc50*GwNi8oDaCvotWHQQXSm}a!#XgeWC3yKvYh;XYk22dA=@Rt7@P)qjnk*fgV=!{{JOE3+ zV7?B8bI_9`91f6I9bEEd7VpU7BR|ymXbvBW==%5)c`?;@Wjco{({)~G!J*Ukg)?0dICRMUAiob4W)>^6e>5hzAcsz<1b8?tXBln)&#Zi6%eUSQm7SXaU}D8MV@}o zdyT%MPHhUFG`;Tn(gD4uY?dchT`N|z5*hynD{L%`E7X(b1blo-RLcJVF#d)9?S4*@*{hq(yc*wk`Ff~a``8t8v2Cj0hj@VH2|jQjn3i={ z%2_^XVp0SgxOlI0aXDf1h}2F9c`uxE)_Oi7>@;r0FnDI**Krf!`Fv694TPtPRGK=rh7wE2Q>V8;KvyfGDU-b=+V~`^KU!5NpcJf zB=^%VBzGhLd77GR6q7=&|8`|)I}udSSkzfwc(HnL?&DJjrnr{6PLdP&!vo&@%3rys zmy8LIg!_%7|4pm*#1@pU-f4^`gz-1G$cGluxp+$jzb$f6{VOoYe!gDkP&yZFq_00{ z7tVYL%9z1u~hzdgG`T|KcFP`3wUY2$+_o}HrKpl zWZW)7q~Set?9=|keAY*svP&ZxNI**xQhjvy+whM1FYEabc>8Qg+&oOUgl|!PJtzTC z($S_by{D(~5S)U`J3zGh58K*PP~dzT{iXcJe|Xc=CtDAk-@pAQ{H`PV{>R3i2K*m3 zHU|LuUjGY`{)Z6!A6_@?|A9jPzk9jo#PF9OZodv*NxdFej0U}{nwpv&!iJR`n;!i zxZZbbwsJq|Y^z9hW`D}Zkgz?KdfsoFH0FphtJnS1?X?q#-)LIBOp-z7TT*!zTlJZK z_gC?CQ`qz&#&P>IITY4z7z*WU2dTSwfOJ;-&Wet5kp1L5h2GcwRzge^6EB4PK`Lhj zyPLaj*)MWR&j#Tr-eqyDJKf&i>wAf0kq~(ER%WQo?@Pc-n)F<}P+(IA6F=WV6ipxG zq1U}s59HQ@&(@S4Lo$@CSwP(I915f6=xOj`MX9(jkHTbl{W&_tJlM_?*Od1_0~0*C*MlpQ8wms z24cqoqHGT+M8D*Ib`c+H@-aKICIN(Dknb?mZ$tU<`Ur}j_*B||8!&!vx|*Bnx!>+2 zeQVRYH0vbe(A{i&`2NbiX=!*GOL$i_lA|@Fs^RTBwUq03d1=u5`s)1Jr~}STqvfW9 zmT#k#lV$eQS~bDY-2{$xEdu~tkkkoc_N;sgD$M3vNPM~3FC<|n0N`wVFLGTjlnpz! zls5dsvk+rtZa;+#s$MHEN8^ra@Yls>Ip1si>H|9U^;lU9Siq87ODKv4Z;x2cBcrbz zstNxDa@rIu;D;AH zq;Ji7a&SKE!H}rA8w}MZl?$Y=MwDX?w{D$FkmEwv)9?`=udKV=!%ry4%7!x9OaTAr zTw#8y8vnqCPW)mOMYr2X1$+RYPVk+t{0Dbb;i9;R;+GT{>Cih^<4r%*a(BjLp4SUf z>5kzzXZgxA%uoU+>F#-3{N`W5Wc5V*i_%1V6hH~H>{4y^fyg@mM-liX7jDRIX{wP7=oZwf zSO0P*T*8&L*~r}y_-@wnktS2aJwAA-g_!-3+8&XVzR!>6^NamS1!9MU21@ym??;7- ze19U&r_38!9`4q2+AQ=o-wJZqr==mS%-ia_5)9X8hE2aYB%Wr$s&Mf|&3P%UjY{t7 zqmMu!b}HH_;#4xs?@Rr9-vws|htr(w)&Qn*vQqEY34}r|fST5P4D18t%IE#@`~9)< zhULH0%Uux~lOQYZYR77nhb{B>p;Xvv9IQ02H^LfEO%hzkMsF#I1&>Vtz}Xp73QordJs~EE++qq z4r~JNTT=&$qsOh3o5ly`9e{`iSz-dwqWz-S3tgGX`w@I{0H6lMAq+Wg3&ikGNNO4d zxTOj&O&0Gqq!wuH8%sGRo*h4GtumsnwQ6Y&Z3`LKKSd3|jO~ykdqh5a5X-8nNS|-S zD(?Q{8MKz{+w3NQU#<{`FMc!S9s=*u04(0I-L(DFSx?2o0p0ZvJtS)vGWF!#Y~_yi zL36n$mf@eoYI93J5W@hZYO;yb)hLPy9AhL$Oy9q9Ey=k0Otq*YlDx5HO1`rnd}z;! z?$X(@8=&ja{OtqLv;8)|;pMt{3Obe%`0&;%j_$FOa^r?zGy0KVefuFcHZx^gqBb;d1M*BVVfYm@;M-leR2|xz6>7UN_4tJ-u~`a%RNW_oizyzAnEU8 z{n&1TUaulhec*K2hq>RTns^wlxXR8K>8kPYnM#Jf%>H>QkBOv+^-;upVqX4fN!;?{ zmcinkB!3)t9QzWy%{CS(h$KVz=x!^J({H3GLkLM*P{9k$Bs%?AoJhX<`(Ja-bY&^e zsvpI78`$iRt6f3~qROt2cig;-S?fLgWNtN`l0ItYQ$E2 zhSDXy?+{}aJ=Uf%*vcXjRo=re$E@?C(lv-{)Sxmc!FUZWVhZ0Ym8bR@smy(G9R2e{ z$n<&qPP1D7&{9F@;p!!Cw2#ZLi(L-}un4&&-q;0I_DNGQheduAOia_D{WPM*#k{lL z^@7uVehyq|w)_Tsd|;1XI>Sj-NBZXYL;DJPE|p0~Ky}F=hMvF0aHMCg#wB8>C!4s` z$D+}CDg0bu1=_);D7O3=0r(3VpM-yY(?_AkUN}044VBcNqAN>=$vimSYUTKGq>E-d zm7|#r67%$NGvE9oq*n5iG&V|3iX|})l_aNUZl6i}aA(>NSSv<)beMQ)T=|lUF<5$Bnn?gzd%8MlNY~S@eIzZfHB9WJM8+3Rwuzz6*IQa%8U*B7)qtDO{kc;=EwoZW>54sPA&I_%wbknfV2?&xi)X6nIF%sfV zwUffZjk})G*r=&nejVN#w!#-HC!3l8*=;;UcBREu)@uIKGRU!V<8+v+a;iCV^B$F& z%(u;cfyi2|r%hYaJ;5fcd&7r+uA5Gc;sb#@`>oEvU$b;wLW+iv6&*#m$Hq!ku^{m& znq7^N-(YA0Yt1RoW^v$s-L!G4N&`Lc$FNHptIf(N@LV36c~(p7uwOhKSC?r)WmM;y z%{O2-6Y47`PAyV9IjiW2lNpIHIg*VJkZMH<_0`*WN{eXN>5G;8TDq?x9bhqXm%+vI z- z6;UXlj^Mx$FHwcD5jNp~&BZ%*F_Ut{Z*D67eMLr8kxuytn=Eu=+kZVFgo~fG$d=qb9A3<-c5L^_)S0(#r^E{}_JCd2<~0c7nV-Q55{(H-Fz zfQtQ#b;rP|2<}Is+>|Cp&T^>EzDh5fv3(ztXa(JfPQ=jC^Tts!v`38JLVxYd?$*50 zzv(O0(U$1ZWw@0qJhPKu5$Rv0R8p~R2s6U_vm-8{o+^5lVtN*;N4d3-mjD=M#yF&c zpu01n9OmO&rf=1s!D3R{x}(Q>0ai4EE_0H}jO<2Ji`nbc%5g}@82#@s`^66Y8jbsn z4urVkFcy#+Cx60&qZsCVBI!Fbzq@j?y^8+bV)A{tSu!H9pFjcZ0zS)j5^1th{Cbck z#AcvZ6>~jDQNX&DQunaE-da1%{3Z<67M^=VToM2z^Y|VN+D(1n+lOQ#o6lUuiV!~$vffluk`foL`|1N?&~RzlF|FDFo3d(-RWO8 z`4-tu5yJz(@_5nmRF>Kg&qsDbf;lJ)B|oj#N!C2{H4g@JN1}x>Ep7RlL|aJQaL%8O z%e5zD-_Ja?x)FZ{K;O{O`0pb2E%qgwm9DN@QO{zOf`mV?zlGs9!OIb=+eKm9MQP46 zEN{B&kQigzu~xD?k#E>0$X}5?I+~ROFLHgO#!CQyW}bYT99DW4Vb4`RkX<9WkD_bP zIebGIs5im{d;|o-9p3jA`b+W2-2{xc?T!<~q*k_sRPP9V#Q;>q5E|yn{|$@bue)Vn zl+`5Even4(Cpv)a<5jS-v_>^J?K`uSUMq*t@ClK1q#SkPNWRB1?4&((78CpD=$ly} z8H`;Q>lvy7RyllgPJTs4(_LsxTfD^yuhUjnx~i@X zbn;_Ovf0&(YMj(m^;L&^(y8U_z+X!BUGM4!KDVpN8j9B4%E8G$hV%{h$EUB~=3Ltj zcc83qOK`P9mKm#Qv&tE&YL zleUDK2t3pc&PG8EFmVBesx5A1ckcX*Wv(ro_<*vCx!GPE;%&yy1qf3SU$i;I;m&a6 zM-@zVu?D5g=@BAdZBJK&0y~S-ZOR4PO$zemfV|UM){ncqaTpS3%gbOu{JvhgE>W)? zq&3v(iN~cVJirgMh|TSqa1cUrB8Z0I1h<)i0{BeNaCS`1gsZvWy74kl?82fas{>tJ z@$t-7lYL`RlznHSV0-GbNVww;H$rTT zK;`icU&IP1K{nvlV1l0(pCA(uRd7s-h1}`+&{!n_DSl|@#PXMm(-V!s@8|r>!{_j` zb?y&TclSI~722voP&Ej;ek)6Wo`?^8LL*QUSvWZ0(rUjVebP-d;pG#tRWS`h0_4>a zNB}-d!zRpXSi3gZ-!+!EWg(G}Xi%Qa=!qsUrc_mYl@k@W=&`R0a=fjtB~j%wizb?= zl$B*lv`AENp}c+g*!P-|h&-zj2?Oxo+XoL*`&$UU$|Ha!d8K314Kn{u=;C4}fAXSW zzIFYoBqCWm+)#FLC=^;jdVB?&upa^+T;%c*Z>PokWaa1bGP0Q+O|D=UIFmR4M!y6K zybg7HhjWo$5);Vye-W;>UjWkAY=*pq zDi8@fZ!frAJjh7oNJ0o#=N&l ztLS88?bZbIyB_|z6sJK&sJZO zJpW^norB&%qrui~rHd5H#dJv##P!l-=chJ4;*;5Wc39~vCpn{}AqfMp2V0Ynj_EvA zuh$D7&(0Wd->*1#(NrhH*mtMcJ>HD3l=bVRy1L3TNFR9$kx!s(5NqeXL^^-`z~{lg zbsC*%=JzrxnW|&C<9e=m>Mikk0vY7fRd|*JZg<^WIbkz1hFZtd;}Y*fdX!))2}e8| zT#E|n<@Kh!l^9Jp*sj_A`o{wK#Z)7tWQ}gyPU&uBuRU9 zFAkI21=#p9->EJY>)c9G>G%53T?p!6{5kr~-`^C=p2i&MO4OT1;>N|rdwUx54HXWc zWI@wsd&G5xb&K&6*5!UT+bQ;}Rugssyi`Fx@>2Jn%H{$eTAvvgX$9aS^ zw|?JV&f0o>0A$v}Ok4>1S+#lh)ASCr2J~3H(QtBF+-T-jebsy_Wi272QCpTa;kKwT zxrA7$-MQiHcI1vUK=M{HH^#P#2OY}=2xuMBG6*%lL@M@dxYH&=wn{ivc|^1yYIQ|& zHgAv247`2hxa{^m`nEoiPq`4K)?L{*zXPOzLanIx&!0iKxxTMcSfR1+x_FDCJJGno zPg6Z>cv;d{9qMG-a(c~c^q0N8&)12)=Zp~Tn^Y*2q-Mwb(|iM%QH#38`vw+t{AZcM5nN6L)6=L0gMT{M_m$*@xU- zzsH9q18e>iWwbm?+87~xPw?+C_J_X=GRo;WYS3)6(@XtTWrh{+T4`@+n(voHrzdF8 z@^jlSDKdCBC4ZCC$z3pDTEw2)gNC!5obdG?0<}zZ*!UbaWL@L`;&`60(Ip8X zAxQ894IbQW(ZJ#s+#$F-%i@p_EWqM!!QI`1ySuwC?#|u(@_*lR&;4-g)1IB_p6QguPSu73UKp3+(p{HYJDSLb44+9CX7>wf5Ib|9dJ;o5#X5&)nWf!rn<%gu*%Y2+yVeMP=*4bnWjvY|h;HngAS)w=_G;LVA?8_M3F}1mrRi-7^-5G`f6S>s{twzSX zg~V$saGJ6jGD#Fg&SMkNeaqgMgCe5@@~i@@*x5cH?{DBT@CG zvP=nVy!2^5ySOqEZ>bOV+}4Jrq@bA3=%+1hqej9UxpUw0yn(->XrMq2-*10*SDf(b zn|mqHgWm4aN{v9eWd_Mo^%krxBH82P+4|U^pBl$MWAfv9pJ`{WBCR03NE2cO%EuV< zYseZ}B&?fG>v;wE0joBE$03IC zoPcq-$&M%Z1>l>U=J|vmZljj-cDKsB2-A>MALixL^0#tN&SP{2tP*qXn7;+h5606+A0h3OT;I<{?I*?Cp&P zj+{)s7I-xPc3q9wS`wf>z&+${$t$&W$SGRp$nIf^FpPa5tOwn%jW_4U?Jt|SmZG0c zGp?SEl@Kkp{K0QFgN-by4JTEb&lIK7K-Aw?Ro5o0??sPF@**Oc9S9i($qpwRLtkSDJ9w15<)8^n8C*m1?WO zbWh!m8KKvAY0U`ylm&NQ7U?zIu+75~_qt&RmyW52I-ysehNK2DZx_@B?nGll!C~;s zIDPH~*6J>lfUk&iUE_XDshRX>;M?zcof=$hPF+^gtvDoZ0ydwJBd0DGqU%1<)vkWA zHy7tA)mR)wIr(|{A~GXOS*JOwekFsra;lsNulX1&G2$~K96{5fL^x`;kf7J`TxtmA zHRvTUmKCN%1R&E~-l!)YR=D)MZOx7oMt>!qGv(aOB!znK3_hJt@hwI-s%T`O!Z0$y z#uNB_^v1!M3?m!h(ha_+Sm^UZ%6|dqoo{u0S8jYBkm~z^_N~wta}hbJr~_~Nas6L< zY9oq~ux}%Xhi~X&OIjFph9c&iJuEQ`J_Ejf)}--C<>_DcPSC3r5h+{59X=3z z;pjEeY43NMN+FtG0~43zG^?!s5LYUGiF9VB{j_9qqYer4;ze%;eO0A<38UV}>)BRM zy4+n^W$x;^{c7_aS%`9w7Q^>l=?5&itSsTt zFn;tAv-sqvuN?Nz^Uh_H#zWqXj=D3%kV|v-=ap3DD8z|i*FteMg39m%rj8%)47yOZ+T$WaKD)3-Sy?HO;L)$(E0mM7ah%KQZ zMYh^ceFyh(4#G;71KqnuvUV1uz;im?M`*aItkeceBdQNH5TYbY|Nxn08qoTNXzv(`N#N zG$%A%4_1vXe~#e!yWyfEs?Zfpt5BaMAG-778))#JCVWzc$9r-#r4X*mdq%>CsGM}} za1NUVjab1QeYCn~uAcDkg=!QpB0k>#Ea-hsvb^FlM&HzOyLA&R_X?l0`lDpSw87W1 z=kvaM5*^{>7)|<=HX@KUU{2-ZBryJ)Ro=k$q@3gy(PPn|dKd{^CM~1U0JN;=h%}Ql zc!_Z$#uEuE_fq7GB=10Qw||&Z3x^Tg$N8I|8JqG?bYUV6OL!%7wRS2h!o9J_9Zs^Q zbW8!%jORLo1gnj-_Va5*T3&lBSM(Fnh>_{yXCiG?mn+VJ8%?&y-?_iP0Kh|F(xfm( zKOQFSYHOXe%&`{$K>7e_v^Ih~;l7~QHKFm11e8p|S)4yTLnY@cf)*(jIK-=y!&64o ztfv-xd|NyN+QQeUsr!0PBZ`Sg=1NK7@#6b&=&RpZ7^n{FRa)K!O z8vWyq4x>tm!_FjR^K+rO$5SM=^xc~$*xjp-@CY}%KaUe=7e_57C6Z^fS4;(>gq$Uy z`%>-A*9@q|o5&#wBt}tG@NMb`orqlFySlI9(JtSXVkHiHNvy&|^@@`P9Wyd{lwz?j z`Wgar4+nZE5>mF7Om4}Cc(=x(z+Y>`6G2r8<=bkOg~v}dT$0EDA|*t=Bf5&gj)m#R z45Dg3r_@%9OIAT9YGSQa_to>#AJYCD)qkq4;9hM597H()b>0@%t6&3qkr@vj75n+h z4O3;)M8Q8MO)&kmIq4O+eGl+uRGuWDiVEXUp@@9`cp~^QsC(aptzXZb5+cOMdLT`- za7GS6+$&Npo zBv}!%0789PXS&5QUq}yoMPHdeu#=|!QZ&oddmR--i3X?ZbglUjra$F(YSaR|b4<^Z z-7m`&*|DSH3nN;kC@CY|sMi)CYFfs;$!7N2YWzBO&dDuzQgzO0?OxoMK2;RCGOQyx zBUcI0%uj>H){ABW-mo=>r-rhul^kP{kQ0>RqWXCa-28pA@5)`r%Z5stsan%xc_aQ@ z2buJ&#XY=Qz9mSB8KvtU*ZmFi7bg?*brD=6+vQ}pSNMMm?NI$4GUf}F7^K4rI-U28sRZ*0&E?zb4%kVP*FQb`hN({%*EY+9- zOxdaHq+)TKtOwQv{QZg335nGB0(DE964Ht_vxt64PJLBfkk=)j+n!f1QJ_DvOdZS> zwM(G_4~8kGx-b;Fhq9~0e#o^%L3!ZfcaZ^nJ5T0?=ChMC=J$AnMemNe63G%Z15Kis zf`cRqysorHeWj9d9hJD?u+o_2;3ostA22@iB4_l^tc(Fm-r6aA@bs1%YWcFpI`RiB zj``YD7KDpfKfk1Q0m4SUd*+VLPf0@%Gso8z`y0G-Ir)JaTr-sJKjd4jvyem>OU6^h zbDD@nNF@Jae5DIb)DJA@1b@kDeQ*lO*H%zHjmG@f9y=@3hly;hugbB>ic^hzaPG0| zr;0Meub~Hlzx5QIfuo z`2MU+Zu{$&K-PRlR74DS2(?*l+=XV1%X+*~9L1_|s zobjhet$k^Y;=4EEEBW(5l<|wh{hLh#`aw%M!3S2hk~n(Oy%-7rp`eNlw1e4?noqkX zSFOYV=FQN3GkmxQFJvcEE#o}T9`EpaSWAtzg`^WY6N$_m~%&r;s5jr!Lz8v!xLXX9h@+@en|x)VSX zq?oJ&G~|Iv|M!?*9-h2C2&jB?;UGjs*YLcjE&<-fW9n{u$%&$7B&JtWPZl)gV_c;4 zeJRCp&fVFO4hH<(UPj&7g@lfw$L(89bOTf&po|_+4bSFnyZ5Z?r!S*(F>0iYPyynI z$y>Y5N&9VV9aBwFF|%)WzpjiTRC8W=x8DBA>}hV*BOKH~dAapRAOWgZrOic}OU6O5 z>r!IVPEh~p>`$A7^{yN@qt^7Za)$5k@HbU2jmwK~bsW3%I!^_y7ah16X&70}Hil2y zM&f+oivz#**M)B`#Z_Yy(+i`^uI=2Ngynv~-R%CBtRyY6eBhtCd{fi(rh)GROeAFx zcGKQ|DWJ4NQ?_N?)ki8+3s;en`j2n7umRW)6}JQ3wqEnQGq!C|Sf$%WMHTA&$3Z{I zRx9Z{KV!oY#Gv0&FNCne&WKy5JNlRW2sFuF1I*Xk!X8Ctb3VmfXhpI?&Q2?u2zA~8 z;Fw`(q@#{Jh#onrg|i&1_)fgVw6OM)R@p@wO2sfXy?2vIhmY2 zICY3r#@m|=4)ZvFokgE4(X2Jz&;J@ed99w=M|zBtN|7T|nH#HciHI6hoZ z=d1NY2^1cQeMJr*zm^%~jn&+Ts^y%*-`s9S2$$q9>D!z?44CR-(kZw9kfNzWsW9L8 z8t+!}#QDiu#|#1StC#D*eSVuEw~UI2hGY+w`n|3C&WZ-an$1u{2=t3nCNjsr=mMRi zmLj|Q@oLV{o&LUOXV3edQVrqLP~c((pF?ePCJz=i*_VX)7psgF&P$xW?*Kx~_1d^T z9{||-?$0&p`U_B%mja%jgXbDqsX9$i!iwMHDm!;(Yqz2nA`ua3+!a0AXyjZaW9Gi{ zj>EL*gD_L#IOuC+qW}myJ+8s2R-*#!8v99QT#|6dsI7dcQm%Y(F4`x?~Z8 z!?zWQfZG)-2?n$fte3sxSKb_SKaT%UWmk7KxCwt+63`=It~0l~6H$3rum$JcFg}!| z&@;45Xv}>cs#p4~VyC`sPxEOhRgkW6mLd(|kfLm&y?j-SqID_KTv$ zanHj%0=4K?7h;P2r#8JR1~Xs16~C-64Dx49IZk34@O(V?VZjCc&qz=HZM;7quS~zb z{wn4r^B{#0ll4_KbZAnl3UgporfBj^ywF5XM_XfwlEXVYHe0JLc0DJON{nP2x66Va%;d~!-xvo^9t~f=LWt0dymJ${8iU5UkMLYCBW!o^TobC?`9(K1LZhp_ zEY^;S+lB-b9Ytr(2?X)ZRB-SyB_43;Q{5T|{J6Hoz8~JuWG+bfa<-7Z^RTs@iQd#v zq3F@0Xwm>t4ikc`KoO7(;@pbh*Xb_>T^975pLF z*ET%_W4(XE_i9VaYS;yN*|r`;v&A+)Hc^b0?{$=vuyDr8y~ijg-+3i( z177eW|50PDcQC_xG8^^|`K{SOF|A5+SSSyX?O>?UR-@6DOs%tgX!+Gi6*<}Z87nX0 zmnG4R@^_G9b?#+uH`N%3O2kq;fgkbrBuHt(yazr(gz3q4*(!#t)(t%Or4iwy=i!2c zWzo!!GI_PT1+J&YhX%6y0}G6`+$hSG8Y=P=*+ql zg2RUy8!a}lI(2GW<=;*uY7+>BC}}08d8$OrsDHD!5VP6H#%mZvLAAv-a~+N+K&%mX zO1aUJ>{;moO}6ot5rtTEgB&KMKBGB52ty$OsJVowhcr z%=JTz{9Y?BK6&}k3<0qEw69ufD9DD;5&!m84i*0t;jSer2$+((1B308T;kNRy9Vu) z66nsmg<9V$h^&S8cqY@_vSOU7MJfK;>9rAO{?6wDL(YW-2~tu}QPcD@Sc%Iaqi8TY zdbpD)9)rERt&i@C8+_rUfgC)CPDi34oxa(7rbTbQ)rZr(-uSEwz8F<;BT@oEHnX)t z1YJ&)kFh^y2WA6~f#F$XWS9~jCM~$Ews*bzN&~|=6f3vilkJo1y;^r&j6l))eCeZN z+xvf<$_$cxF5S%G$0N($AHm4S1oiqDwphu@;1h1cq4h?(s)IvnrlDkzMZ zDowCTvxBCWCxnH6YJhHRSKU3XN1LCoxv802-s;qp3Rd3MNX{1q0zEsiP(A|1 zI~!!*YF3!#%naqtY~Z+F>l%u~H5THDwCpFr2|nBrnAm`Ncs@8OibeSULnJRfJzY1q^k`5y+`0lA%jb>P|KS28TuZnUf0`da!uts_fd#%g3xDYz z7qYursb+eOR7WRpIFbDh?emGVMdyxau_xH_S8U+H3y65phZVN4$#(uRUBMQs<&sT{ z3U8W+q^XwcvKs~f;2|As|EIu@$B^p%CoX{^85xmDFf)?)t5AJRPCqlCi&rqF{Mi1Zi6*cfKLEO z?JjzB?PmAy-6wA-lx93RmP2sX%#C;1LN=>l^ApQ3uEy?W z9L$6z4>{Ke+y1$eR9o8rDh4e2>S~^(5ZyZ8JiX`9E0BQBe{A9C2OkSt8Wg2zJ`L3* zT*;n0!IVKDS9_$59BWTWDyzl85cM0`apCd&;h)WTELM+C@9WEof&VI8ecD|@C?q4O zU!lBHRlOfEMsIP8`>+|eZb8p_{?`3n;591q-OoOgRemtPR73jG< z&9&HI|E&PP$LwbRhn74N>9uQI8u#+4V@Sy1#Q6&lp8R75X-=kRx+Th9L^#2Js`2~W z?OH<|mTU4_Ggqwha~07c&DopeogqqXWy4X64(flaL5WSe>~x~LS<>rkY04Vc?|o;uwZi1>2@|? zyEtR&oWrd}POmiAzr_ZgdkNm+2%3ZoHV!r}D2yh|D9H|CSnG;P-B%F@xM1F zepBtHyO5NogF%Eaui^_o#2zl_P~FFy`Iy~6S7BnJu$$(RiJ5CKd|bliNTt-v<50?J za_@qF8STc-t0|ejuiTPBR+9e@X&aO%DLWiLHO-_sc-&e?I`D z2p~8I`mgK)GXCqB|L=f5LCTbzJt?i$i@6xhNL*qF9RWTs9~@)#U-C~R3zj66)1m() zR?=rsg4f|wLkfK1B<_4H2TSo>u;NW%O_ld zUjm5jwudM9iKa~`Hi5S|+0X5DMIOQ+WyizW`jOWDh8&#xW&!=>*V)o`5avOrkB;?I(B~^^Mx}JMyP3X)*8b!W{6f?~;ougb!CWo{#77#8J&u15*cNmoSr~lCvSH=NE|({_J*6gsofbVlRQ?ygvA!l^*fr0x|abBUb=a%i&Pr9Wy z0fUeT7oN^z>tlkB|abI025NS1U_8_K!_A}zCHK&~1MXewO+G4{!zxL{L@iSSUEo-tie zAb#D7bUpQpb}~KmBwdnw73W}#O3fDb!eJOwsYjD7Hr92kp*hE-80jUVz2u5o-^_E_ z1B}SaOKw}{++W$8+dVCG#qZ}3JAWh3k(B~}n!D?YphMTW-owqR5?b6kda~l_{CZ~6 zh@NBG%?LS@08>N5b*2>uTtO36_8zte+@VdZrr(Cs4Y_OtCG(0^Vz19#cVd{l;(7eM zc%2GDsL94xXvs@ezPLkQHM4S?u53@fuy!XPsG}EU-8dgh;1W*$MW*@`ZuLAV*!oVF zM+&E$^{Pm0eZx30O1U3HK}AE8(^clfV3iHqlGM|I6X>XnQhfPlCy7(Jiy(;_n^|}Q zR}J2`0Kj`9ga&J$85vXH)x;XvUe?>#kQ!D7UE}k9C8b4%E;$>=?S&P-Yb||u^x?Pn zyz(Sm=9500Kcp76n9(L4b(5I```HN-&O{5wY01b;%2Gx?V~9LjFH*|5ZWZ$ue&98Z z?ra;F7)hBlt_E3Sw+GVS#T3S98XO!ZA8K)$o{Z8|Y7-VQq`c%4f2(3%udT0b^1boe z5z8t|j&VeWBuj>lL3Ti9l$%d*qOWav+BUYZZuh#KmW-8vy}xT9h%~*oOR_h{v6j5b zE_~&InwlrUL9{k-Y-O-`GcZsFsgAd9fsKN2lg+fV>};j7AGRlA^-jJU^N?PEXO8@|3#Sbxvqn;sANoh)&2YEe9NQsd((2b$aD}O?Re$C+5 zW|lnG?rhPCtioS-iL|X_I|?T-Yk%s}5}6sZmBr@X@uC~Z1YI=6&buhfoAtjx)#O)b zzKeUu@Qx))&fCQJHq0H*%dOY*B11*~X0~?fbNcP?@5*^o1p{>N!aTXIXCeMWRz8Mc z4dcD+0{OhXgr4S7o0yjOjz{hg z7xF!ekrb$@2Krhv*e?eJYDZACoM4ybXKU*dN%EknH4&OWZd&-T^Bt@KshQhT#TkjH zzhCuYfH701f9!})pZU*JB7($yh(EC#BC#F_iM+x7C3;ttVUY?#*{gRz6|@UiH_M?S zD^8_0sB*L5lC1e$73y%aZkV>!_>%#}+W-LB8=Uv9`USnt*uSnpW`U#$8jd_@nUjz# z)m#4>$m+k>usm7qen%B?T9Yc9_Vbtn8B7JRn~Wpe898P9LM5;Llb;nkycuPBdur zQZW4=c4P%DJ=@ft=c1=90y2^;DwtolH(IkBzef93Ks%+`TsazDRU3`3RL;?XQgvxx z%6lsx$s412<_f+T8^&*iPZtBsiTn#=%Ii1e(;K;kR z7kEL25azO*gEIChX9ykJ393lWS^LC!f6@bk;Wne0mpMe^dh*FRdav2bPip&6i9n zYT*6Ae?Ql?nSl?UzN}i*ObyISr5m>s#UaGq`P=&cX3$&~G`2JymO{OQNcrs+=P&&F zX8mtiSElI(luIi|#>e~JCofn|PumE<5m%-P)xYKgc9P4O9YuNSAy*a;olffGn zSqd=mVz&KDYizPz@x<8}5_zI>Sc-^=(sm;U%z<6sUsG{$EKb~`hHFN@ubX<&uM>Kv zQ`s;1IOVNNTn;{(k4~;|t8h-J9UCFPerWU}kxO~pm|NU$3^1JDV-bWsFpM05iju{`EVBc&*~UG%Gvcxe?ulygY7( z+$5&Ue;?tySe_U8h4wnP+HU|@2V@5x6L%jjWz)D)&y+xW%^+*O_Zif3S-BU3i1{+h z)gDStZ6xaP}H4O0b-y#a`XYq4&6hH@VMuv5A-?#mAPgzpUAjSH*CC5mAq#% zR0gL4M*|TCI&`BI+9E>l*&U~u2;1=GzpHhNTm52Epmp7=im}usXv0){k7fU9+aO(Y z^ZY9Dy|=rVXSry0B1x^)6Vu#&^etu6AzQHO$f*HAsbny}9&v2Bt&(zfJWU_XYUf6d z+i6@Ro0Nor<=+0s;R1Le0TIj;*5~V_gF07OtW0E;JFkDXM-`jlL*f=zr*do=SUT|; zNqV!Mq10C{#m!}fT977z)L=ZksAu^j;JRA|2-_MlSsD=g`z`8@8zy0S8;aMhaEyFX zGAc(-13yCZ3#fA^IpkqV|Mm#ZylZrD8XntF`&eJ74zB(>w4@x3`d$SWSJ{D*M=Bz? zGHXk70YV(#hjE&StSeypnA!|`X@R+Z&P^*VaE68W^jMkstVzOcuX}?OS|8!k;=k!Q z?Og-$gUrp<@j(OC6IRwy7g`sueo<^3;5d+QDW?>C#j?MRdqE5z< zg?w*mCG`;lBWUT7e@YTBrU|O_p!vzQU0QJz?hLohKAB72|(e;cNQ-|`b8t{v+Hm5AQO>d$6&&ge#&rTEG zLsuhD`?)-6zgGhTcg$uFE*DxKJeo^cIjMG>$+ecyoG)Ag9-g!F!CAu+sysKn{YQC$ zOt>m4;(ZAJ7#C(DQgR%jRa{8)6aE(e|Y8paedui3w$Ge9R9> zhUVm~Y!W?sAW|E$vZ^Fc&a@Px6~`jgl>5%||GD2SNzr1>8n+ML4ym+iMU62}dpM-K zoZZQ7-W&uaQxXL&HBp#WVAsFI4!I{#^q*l_KCcO2vTG$LV1atIIDI;5XULwVwqrg$ ztd@efyAwEp+)|xDzSPAFja1*t^yx}(?kawmZEuFDTi`R~|rB|U> zTEKgEJ8>^LTt~DP8{f~z&|lH^oy>3knZD83)I_R)h&t}CawY=e%1ZHWF>&?t%-fs} z`M^`*@3Z#tg9-&wQoW`rM4CAQEkiH0@bp|61V)V4{4ZewZxXiccM5D6kd;kn2R%$i z5;x7e3gJmk%*x_wjZFsg+40wm2beMOkd73E{S)EZo7AP;t-lzx9zw!YZn$WTXkGP- zgQQa#d)tvu&skQXz4}dE6HriZ2um+AwY%}I_rTv(6DL`kb~Q+%=e*&H&KkzLypY=c zi^urOTk$5=TkVqB8Krrbz4@ksB99;FlwI4>o_q{iDirSr2opls`ffQoV`!w=<8|R# z_Tgd!E7uiw-c0UF(5h*9q{0ZIX4DjvlX(%@_)B{Dbi$}eomocteIb7B?v*ce+t#J~@`GUqtmk#vw&HU*PHA;P zRr7$0>3QtU;$y{mVwLYRQ;m@9Sv@Sbo;gI5wos73@w9#lOLGa0Ol*J4+`h&rnvL$0 z#T3Qu$!C^}i@OPQuiIQ!JllvZR-^V~IMqKcZqwc#E7n^{d~D+zx#vKI zX7@e_Oil7i-6nZ1{TnuNW%{o#75n(_iVREjU%U5$^$zbWUz~=3wpp#Adgwc1x*x9< zcB$)$gP*rAe{YJB>-03j0f|!X8siTA%bz%~V=bG1H3fA0j=|obf4%_z2ShE(H_yOk zl_oX;d_QISvPzTwYm!~5+vNt`U#RFVLEr;5=olh64U9fhmD!i01h(AoAwuAaQF{`3Cp-DDVf$LK$fq zaxzs;`?0H$Ywy1^k%&WIGZEUqayrv72!#a?!riAlK|VK4QAv;-mRM~sFB%?M1x*FLz@2SmcyqOI^m4!ohYMYKR7^QF^~|p>Bsvq%9oO5Yc4W z^@`=bgesSO^eM-DJ=>s>)*PdzWfyNrALSG$ZnAx01ZtyPxUP9QM8IntR8}2M-!X z70DQLg#bsf*4CW?Z)-hzS?I$lzC38k!ep}Pq)w%kFhcg*XNON@7J zXAb{fOUP0u22Bq9po6-1HQD@|s^4b26Dik(|t-JrLB9G{o z5Sq%L)D_`w4U!)bIy5WzdRA_=GuH}H=p3=JdZK1URUMsYh67zV=s2m#FcaB4WQi~$ z)MupuK%7|ho|E@9f5JubVYoH#V&v{w+H>=A1HB9&Ha!zkoMb=m-7&q z3tt*SslNzzpjA+(rfoAES=Ik5Jc_6j2t~2%v$Hrl;w@J+O`xI^>HE)_`GAKfNl>}Z z9KzEvW9N~iw3JtB99^C|GU&QtP9<0wPM%7)q0VCY*`K9H>K~#GxR%7r>C>k;(|_<2 zmV?aDs3P4nBqvqx+1iR?MI6*mdE1-P6kh5^MhHZ9@UHZox?9iP@V0d3I~oWqW4mRh znFS6UKvFbxi$5C}ZK#uFB(~StqUD=5xXXch{vnw{rEK|m1xFWOw5MCIDSJhPyO(-a zyYae?fHIXUDP$s$4c`t$qvaXd|61omJQ`z46a-FP?a$6CbZ=mRw8d!;8i=`)!XrO_ zWzkz_A51|;G=kN!IO4~0T3jZq$ zIQjhL|AtIH{WCNGA*6=8q78mF8ort5B*VvOCXhQe#4qF?^g zjX=%|nCVTNSErHJ4FD5mlo#E4)%Mcuzr{2B&<1PI%c2d2i4`wfJFg-H82i7LKCE5J zIRCAQlnV!M(zI(H)gvd1JaHpcqbHiU)=%~NRua4&aRVyHY8*h@P}`WbHB!dXN@h{9otQL`8Q zsOv7>R^!*;eZxN;8GY%-18mPk{TF~*T^m(nEBg0_e_p=)|BXt;FV!Z>NK4Dw*c%yS z#7PkhG8}2aw;BJHQQ2#9U}Cn;zV~L?r)$j#T(9-bdBk@FAGQT1|JR(QNm#IBe6}9` z$;eP~?M$QlBJ$E~p^8Xa$2xq!1YFPqbdSLY-V_CgzbaY%a^=l)<&FVZf2S{A+$xr8-S`*BKynhH}Z4A({ zdoI2C6AFJHA8{Qu6ZON0MF~*ORBi7EC43b9>?!Z(-UX7NnW<{8z!ts;;_wDfY zuAuy0#DzL_H90Fw`s;^l^n1PFr^g2GOcH!gHngaj=NO=v!S?iPxIuAU0Y%ZD$e$X2`<$4|x$*SOMNH)`1RY2h{Fs0f4D4Nk`%zd&VS zOL>?bxJ99iRAeTb{Ug^SF>iw;a)He@PYvAAS7(%Z2dMU26LO-&58IQsgis2Eg%%A# z4Ff(+t#}uTbqS}37(N`PstWLB5^lw}?VB~7TamDo`FGt?lc;U0@_?<21-I-)= zhCx)MQt4)X@BG$j9}@$LYuiM_(3V$$^e{YW1YbgQYUVhyx_j7|k{%jbDjD9}#N+=P z>;8~dop$Wir|Nh**}|0JE!960Zaqr7qE|!I3JYb{u8KZx34PkjAS*4)YD)YYs^56= zZ>x^&H$IBcR+Y%De=tA&M@ZmZ0Vak+zgJBW<)xh}n|q_c;U zvxoLsKT*<7zq@6NDl6yjrVNU?Mq;=R@(Cab`l5V0!7$L$JBo=BG5W#g*2;!v!Mfp0zv4<2V>z#w8s$L2wn|!9jKrkkHDGTH?!Hu{9%2t*M%P@JH5qF=~CBihmVYL@_;8;E)=4a}hWSj%;q+>GuOEr=*=&S1y{7mQ$&0I65ufKJsQZ zLteQvhe&L5sxs0u^f9t`Q;abuG$V?D$kenHYFi*2uJ&m^Q<%5K$SRy;wbWvL@O1mbmSr5x-Fn<}o80>r9Tu}})kQPbW4i-PkNKJZ^`osVxcj@cxQBqw z!366Brh;zgeC>Q4v9ilIFr11|d|V9Fb#OCT<5BP|^Kl-!M|)*vYt=SQQr5xtJxO+LFr z`OuM8+_SSZaWqpupuq7#3pjmjj!yyH9igQ5f?q6HJIDITDRKL(Z3Yjtje#-ux@2KN zWZw)=F>iv{c}{cLD3x*teoiJ_6T{V9NDXXkkLDw; zw2UX61}8~41wZrG(stjJw|u6#y8x4sRh)TypGW4yq2~`hKC9XOvtJWW2UHAeV?6&P zX68bV^!O)Cx#=j#5H`4JjQZZybZ0PT<6b_6&|gi=c;n;pE&JiH7D;r5%f&d8QKi6r zWT;Nl;bQ`v(uRRy$m?~~{;?x4kbN&`Zwo?qUJ@U1-rhP_&ON#??G|sks`V~+p54oM zwhGQpe1m!hu8OEbd{yirX|w1>-dYU%lz?C3xxlCAj)4(j7jN4;o^a(~s;tM8R=^5c zIm_C}Eycf1YvQz$^eGMxe1)0j3acGri`DbGx=Bc`nO?AaJKx|wbYNdY=8vJVB%+E} zwh?#y$g+JtTHj(5nG;;Y-8*$+tl}0aoN4J9ZFMz0a$Wi^k*|Gvewgj#u**MK2Gr$8 z+5K3EllzQi+qB8~l-@Xl6c+P=EW5YM`|4e)KVy$v^EJGe0S&L=F?Z@+<-JoH|9EnI zm|)8-v&8q_VFeiwsNjIlu#6Oe+`=tcp$E^HDwPLJdn;xblFy97aUjcyK(~TyHs+nz zC+I!)-Zvp4%Hxne(X+38y3bAw=hih_NA6RNyo}q!6&A$T$VMcDshD3ZtjV)W-BMg@ zqdI@atg4vlm8I>>y29587`LF|?s_E?9XpULh4xXqfW;ma{mq#zr+kPH(QP|BNypsj zuQbM3vpuwm)tI&o-i0qcWf?hat15GN8<~ddjs(Faiur|_BnBHiUPhJv96Cm1#r|A` z1q?Dg-cv4!Vy_WvFYQcrR^0zKTIUDc3+Mk*$Vkg+LMywNW4g{+U5!<$V9yu9!mwMH z5q!Fm!VSK&5*s7B%}bn^yf(260ui^Aa58Y2M|X9*THI_FpQkO(Z`*6vi%CzC`#wuczyyrP;RI(SO+*%n^>sPaMC5rfcxDoPdh%s>3MdN1t!C*r= zAx@kZE8BVP-(27dk8fP}+qW&-#=6x!u4(n0Ur)=M?P88^b{?p=vNhbANg~iy><+}d ztk#sB;@_GgmLh?SD5P{S%ko=uXzGe9k60Fj&ZwHTEzcRizx099)U=%@QBcFehnCMr zs|`a6dqcKqh;#)zD3xdIqHV+D({`atlSS2eDW)>Kx66NFiCuhnXfgGZS*$L-6;VL- zFFFv#`%ovGcR^Kt_G<&R$(%A+7CQulth}Sg_Tq1qu(9qe%skXO3~R;f5?O@V3|WK; z5;9e^zKBo|%vnf{3j*Mq-^T(m-hM>DV3FmK)*4#k`Kr`o8FD@s8Lrmy@$AMt41;wI!P8cwAQtEF+a()-07rBsK_dkDombPN0xQ8 zDv)C6D&B=M6$eNnAqNIl*G7#R<6xMdodt6ktym?h7Vp;{5OmK(>SN|4=|DaD5^O_* zUDf6Fp1T^lsU?n$^Q^@|oUE1zF|fcq3I?U@OB*^|=k*Kfh^P^EPqLtSN!!e{g7!t&>G!Z{5H57C`o!akp z>x$1|Eg$j;%}O_haIz0%EvFFSoVt5TC;|m{+SB| zxVaE#hGLn@a}1v+cpGg@dzzkChd#<_#;jk=^o$VTRZyqka|)5$nczAjuRRL3u}a!LJ3W!d3eBIR{8ms~jy~fx zelW-AA4e(fOu}a^15x&3p?&bNKa_&`{Qg*S4J4OqGuuNsCl^wFALfZAfNf?+H!)Y#(P2Bc`oi6Y>5(j6VH>f)c0oPEsp1Eq6VL;=6Nddeohlj;pna%Y5K2ZfNx2uK`r@Rxt$&$1rl6I$X3Xmz+J`}mpCuTsCQQiS^ zxDv?ysyL3!L9XVC$8C zd4*Q4`>tI;XU}%!=J*Wu>!9!#UkvG+{Bg#b>Z(Ui(|D3Ol=qG<{K#=7EnUhK0hbC!y8NmYP+5s-W(J{aB1-| zs;o;X&XV%T;X?;x^#8E+7Eo2KQQPPy6hwtBA|M?i2na~0ARQ7S(v39I-AD-t2na|k zDJ>#h(jd~^4bt6pC+GYBamTp#bBuEi+rwIWt@nNBoX>oo=Uq#0ZHe;1sxuYPdfo4T zysOOTtCf4wcQ437;#59?fZy)tZ4G-(sz+j3Dn0~~)k^^$#Gh<<>FG}`{tODsnN!;A zZ}0DJlkf~3t=RmuEHvnShw8FD^gwR-zL&J*OF6~Q8Y5wec!bxjtKPc>p*5TOs;m3f zm(Fh&+SB(*qLqJ-xqVFLrRC-pn)1JIx+RVoh~c+sxZdbQDyev#IG(fV+>Yb&czcj- zX#6^|Y8u6q24~{<PptV4QGGM!32C&u~RciM?@XbwjZa z%4n+w(j4d3#-i_SVX9&WQB)Ur+NO;7Im$5R^~gGZ(fdu0;8(DB$6?g}kLXGA`(KR3 z|1V1hmMA#v+P3&b?}6(*Bh_nrC0LZd{%3W8AOBZl^8a@H|JVbdsruh+k6-(*DRyUL z7txy%>91S-n4I^7@FhgWiil%2KQhlpIu=Zxr~SO&yfR>O|5Utu_BY|8xDkMnj`$BlTUSW5p-Y3+)8- zmfML;63tcpp~BIFEDvRpq(Z$c__KPSky=y;mYeUa{9VTpOfZ_pi2hFwKqwHTQWrHY zD6gIqlNd+5rrL?z8{TDbp;wF?kZJf7c^r8qmM0MX`YW!y>d(ij`yT&hQ9_36=(v_2 z=vbX{v3X5)bOG4avEAG*_^@ZDOuxk48zm~bn*QM_Mi+yNeqtu0&Q59;&Aoe0Jab*R znTH|cWqXo0B~W+DT^R7?@M1~Ef5}`(tA60i<*%AeG41EfBcy%Ymp$)fdD?E!*<$=9 zJ;`fSk;k|@;7Mx8nQ(V`q4r$f@#Tm-fgPUV-||l!9kf5B&N#*11jqeE%?KbR_-RyR zJX;?gPGk7V)^O~XA%juXPo=macNwAPq9Iuts#-dpQ&kInai2&{Z8xvxU-iS-mghOY zBVR2t4D$ZxKG^%3S&3!&X*n@E*O;3)Y>`RA?=ow!1TG54{ee>j%L+N)$^}g=O`ygA zLmTgLw}`ZzqD|lL2QudwqP%iD{YBJQHR)~3P4{C9bY^Jq_nXH5<8u*Y?~=TLChtg3 zXH<-(!)ots?N`h{*2-s`c@);D3iz%%V>&+H?Rk7-=B3WhmfmiaPccfrU(4#PzG-n= zXAvnQO|i385%t+R8$UYVc)%kgD*FGE7kat5qZ}&I&=Vq4sP(@PlwGYAcVBW!olF)D z9JW+qHQA~Zt(tv{ugaz)rpRGr{JtP<`tW?$rY*%OL@1bOxTUccZ zG)C>+KyGEGZ5%mSZIjNJYS>?^oq!D;OEhy+Hmdz)p`yizS#~xWDW@G_ASlSb&18sKUA+<7Ui63~ zl$eL+x4)q(@hCFpL;3$#4QWEQ{ndz}SY-8l(;;3Fa-&IdvgWBR?t`*1^X#V1q&G{S z>FlIOUd=a2i@nND^(L8U`dFdV64T;QWT&F^Gj$;|-pY*gnX>N}qA;tiB9YW8j_42f zaH5nRU%4%J`3mYVDCF>v-lLA;3wlTuG@)iYA0J6gH8f=NMOEmpE>4A-Pio$d?jC31 z8;OJ9L=R##o_i7AB_&%~$Ctl{!oxH1=%PuI!~REMB^>J8gTr+f?1cP6+=N{rkJpZW)LO3hu>^!1Pypj(75A_Lxc%GpW z#98VDA2$y@Ymuag36G5I8!c8N(ibqk5k7v>{>SN3V4!~JqhXNAkLiXAwS>z3*Aq#Mk?l$xSkt-I7lvQ(UHD$(oR)c&2yDkRu-~>%oH0en2WSKXMf0m zf9L*#rks|ik(h);YqVE3%X~8L-m=CNAlnePgaS zN}}2QJeDgQC+e;dVX2M%=GBJ#a)@HrAFG3#YM2Pm%`oMtX@FrSC%6l#_C3XH5T`LmZ~ov7J6f7LGJ;^6T3=XC>f$n!@* z;Wz>(|FXdoJOtha<|ZaRChQy>93>?s>iMNQb)Eue&r)lo-_XA?HO5n^cgVo?c$A znxXhcN$CrmFu`eCWhEdWpt7=ZQ#2cX$jf646{p586QC9!{xh&*FOaZv$2nPEPR>ZJ z)a&YUl35L|a(Ov6Iy$I%j_LDIPmh9*PN5Qgv~-4Y?gK3U%*;$08k*~iN~wg~U0hs5 zyLkt8pk)_cU(Axr)WpO@QTm=!k9aoa}6um5kWOa*5oA ze?F@f8$F5sgN^fqiRp4p=Sp2eV?4?A_3PKvR8)7o_BNkLXY3|9O;tGLPWoF{eOx}- z7%v+h7}!_x;o;%&x>(bxa(907X7FsQPS9m{AuGkx_451#F2TXUfw^WMw|h@iNkyg1 zabv785NFMvm+H^ozx#)W&mGsl%%;RL>m2Uxx-P{TKbDQ(zdYNTu6Eg*S{qzDXbmU7 zT8!0+zf`!3m~7oU#~^p#9y2d|s!?ijvb(t4okB}hqYbk+y)V*-RJo&Z$ICwJ%#zewed#>^+&yzlXeoLn|+-99O>;LU{W@l{G^@Kf9FNuUbXn=kc<}-rDM`}1 zV()czHr?OXcZcAqfWQUJSk)|DwDiGWwr-2b%E9gK1TL$a=;+l4LmHHnl+1PKww|7z z{ckul6ElYcQt#w*SPZWnNQ9GhcEEev{>eI3uMEVO=@bqR4-Rr@U1f%5XJ_kp97M;( zsTmn9eSF9k!>m(lJ=;(=?OFBf*RL9Lldr>T;Uqk%3UsS$YvY~_f{c~yjj;2PS}3c( zh_TA!%+cK3{PpYp7rr-5OU4=+grlVw|NWzjko@pHHFa*R#QaWUc}2x7^!KpzTAG^9 zSLD5jcie3sYV`?l)nFPfScqF)=Yjp-V^8US+?2F~Y}= zMKla-$OZYixn~_NceR|;P0du6L78ey2 zrOL>8e(~kQzNGX8=~DJkJ#W9whBuc)XP92|V}=8b!YVHB(oNHLzCmoxRgf!L&GMn=l2s*<8* zmXkS!g|QurvNcH88VH#^l2%e4TTwc^nCR%Zgaj^jc8D9|=kbK<9edTY_l5NJ=Ta{B zvmln^*o?8zQ5#!77_^2#nycOG;+yt3np`Wav*f0yrZ)K3^Ue3>T{9CC1v)%OM@P7O z$Qsen(T9hJrKP0--R=S1R4N6UHg6ftHpG8{+0%YDCM%wAXe5^SL0)1IPL!_#J!AxHU8$!!9tY0 zx~l5iw{MXV>iLhUtl*(rXc$D5>#S^S8|&*6lap{qeSLj5?-D7gs(v3di;9f2oT`Rw zf0iY95wv_F6U!7AA0PIRt);JTcPL*&N=hm$EDR=#jEoE$8ygZRQRrhfw&J|Jzc8Jn zqZPHa&$+m`XlYw}dwZLkGfcgGDKB8Qnwy*9q;9URhg;KiKY#A_WylbPwsdrKY_pYq z{W`O|*m0-vBjGb)`e*h zlk}+jw^7A1$ z*x0+biz7a)uCCq@^l{+Ta&zw%O6_Gn|=*vhKTY%u5h_wNv6 z(=6%>6BTw{U0ou9*pPVZ&UZUtZiWhV>h|~TAq6ZfEUd1YNd^T_(h@Lfeqqr=ZDe`) z@F8OdHu>|3o=ajbOJ`TtKW~3RMO+&$)TwbDgwYJ5O=hw8!Hv)^3=axY`(<*kkp&j{ zPAj>f^R}*s$8{N#PvqWNO0a_Q%gD+yFHvV^X3kcU7QH(1x?2ACPgO~Y-RSQZ;}nm> zwD9L+HEvG*Tdje8jqa8R#H8`@U9&b$2qs>eIlqhyL&(4q{d6X9L4xD9U1-acQGx{>?sYy7D_Ahq28WG)uS|R4yDQ zc<`X+Xvz&AA3q}_<2F7c45v|N@QeTJ1rUb-gt%3pV|@BFiAAp==S}V%1HU^@cCLz@ zrgmQ8ZJ?!$POd$5s_4*i#axNTmqtZFr$nNQ28SA((jr}T{a?Snr?L}5U3c@6Q$gBh@4A4PK zYXjR=t;+G8qGI1`d4cAi>(|i3ZL8)s0h9Z|pbDNC2PdcJc0ERIZEd-FRQvwxRZgNQKZA#P|ew970g95jk%fGQg=$7K`S;OKd7()fq~{FV}>0uFhNgQShoA+1+_{o z;(ARI*^K32;$&io0J9*M_ z`j=_{pJ;|f+mk%CVi+etr1}O1d`_GEZinm8&BeWRRJr1t(D<+_NrA+ylY%ttckBLJ zRyAkmV;I@K{{C1dtsKSd%d_b#%aI>?W4}y`jk~)5^JZs53V#J?)XZ$PK&uM!CS_E6 zsm17=J+F-bV~4&~91IlPo{O7XH>?8L1WrgnHoQqNbGiBX2YY*s{yXc8tu~Auj~_pN zzW0|6ZtQHk5eJebLu?0p81L!vrgp(+(llWqgnv5&g8B66Q;plv=0wG7rdatTUWf70 zck`{`h57jxu(VK7QL%2{K3X639n{L|=Yct_uC9je48Hm9LsoS8JIq>@pAAQAJhJ3n(qm zFZN&i*8c!#Cjb1TX%d~W;~JmA_Ym_rT1ZK?Cs@^v)_Hlwc4Q2i5iqJMXlkCX7k57g z+^U|Bj}UsLWNW(%*DW4K@&rEwhKA2^T@_PLO>MN?W}YyhzI1|2z?H(UD_Ow2NEIS% zZf*|Zi4#H};oY&w3)R)d<)k@;KnGUhk?ucO@E5xs%z<}_9cLSE#27;R3^6VuB61rG z3(j4t-yAF!g0JV3a8{@1MW5DNuGbg<>5_qt?%zQ6Ye?i2xxmNG%pLiF3cw@9j-2q>Y%KprlkSKp2(6<`6d#WnU$rYq?DeOHNW!6w|*Ob zv!k_@mVqI+;*4sl$E+lTfH_7w1Cl5?OoP6D>Y$lch3(?;&irH!H4_eE#>Mk+eUvxJ zvNN88GvQrVBG1Xm34?MTA-^*V;wwxDn{gLAQRwR|Iev9RV024^UX+bFbuVOj*41fp(BH%>8PB4f_VXNAcOzlE1$or5LBcq}U zH7kC?imA}-+N*AyJzmW%)b_e?2o<-3cFt+qqs(b*%F^^nFp;3AJG3Kma$S(LF|bLv zEk=H%NrXeu)`7}$v^g0rc*)&r6ZKdY5O4z-KA<&?AG$tD^a38I``6e8O05p8Hdqw( z;Tb1;PTV9bD=V0ppdl=#s$F1;5#E)Ryz9kKc%Y|YbJ>0CBlH92_VZ_Wq)5k4=%T-w zx&q?qh-Gf|p!Tzdh6yH{J)sjq(tr?Xl>L9bzNz0QCN%SvtKhgBxADCbUe{O_YE{2d zRJ4UrFzwH5fBQ3u&&hJKk^}l5Zti2~*P&PI)bg~>s}kCNog4;3d!2YKI76Co@83s5 zNJ>dXbSwgjfMx`0QczG3vH{NHusU$d7!9D36E(|1?fdUx=%_y13C=Dq`I;5DXBi}d zp8T}5#!$^hDA^uAzG==1spepJ_viSAQL$RK5-Nf&*zDV#nQlU{S12eb+$et+J7SBV zvlU{*zcTYqRG_Z;M4`%ipE(X%#{OIfDU+Ad=9Jj5FHtcqnWbA z7Q7)rL4dx|5XZo>93QjX@m;KcZ)jvxpjpAn%d1Ww&B@8BKS;yPt;!Tz%n11_U)lWC zt5+~^Hmj%sdVuP3a&sZe+(cOOCc(2oxT8s8Acr}vk3{Hw`TF%Mq$z;P(2hcCg7O7t z1KuiHn!|Z}hHJ`M>0)}Jrf^B%a?s4}*YnQR8m*z+=Lmb19- zoABd2jh0r6@kfe_ihgL;4;A;F6rF6Rg=7feLg&pJ80QlE6~(xhoPZR6|Nag6P5KdT z)#N2CXjBAu*m$i+l@JBD>;89D#!CR>$?m&S?j&d29+xM}&UxNJ;o(5Mc|b-15@8&& z);EP?DEuTmw&~Y+qNId7Cr8Y#iVJQ@T3Q+^I0F)sJIox?zL1d6a#s@25pUqmASf0V z-lhrw61pMw3P_>8`||wtEH44yw7=!GUBKMrbURpW-aFr4>4(*dhKkBgBnw1@70swH zmmLL=MiG*J$UmK(CF2|1VFHgIx8$?2V`y}n#4G0xLJ7wc3lgPTx4lK#bh!*o)i(vz z{2@RlpFSbsmGrJP{VPq$DKMbyvRpW%jLghlCyTKVh{Pl$c}ny}41S8)119X{QDy4+ zFkFy?mya5>41v+A_r!!VH?5Z&s_D$k%=hnf|B*{u8yf=9 zs6Zb83mc! z>0|*n3O_7=;cp5(?D@SW)+ApwB7t)3O5y_oAWx&ra%ZkN#p{x1D7eaT0}Iji_wRMN zKnkB7Z9&U^0rQxrymr0bqi)Og!|K1hyzCad;&+Uz*JU1skhYkvB~8!(KnEm5+~?2G zE3AbDTO<#+=ARRXwg7(#dGUiNRoFZvZ#bupiVBz0re@$s>S)=Nr18ylPJ zqPLgR0SO4o{@*w@pvf*SF03ZXeMqBeaD&wIJt=I*CZGIYXt9Skd()SapWnSVRg6A5 zc%C~x^Jr_D84nAHJF6nqQp?FzIXQ1*UO2RI_P2DzxEO}(+3cz^_mo^HtE~Ig2~FF4RiaCjM)ZCXJqZCOR6q(DHUnyKWyFn zua%V#0a%rmqmyMq4uQy>8*iGwS)wjrHN{_|9va=UB((s81`#-5=HTH`^YXDBZxU1# zC}ieBLcf92=-jJTpmX1ZO5wIyk(!!%&D%k}g4Omq^X08uw@^A;?3^nJ_!24@TB(D8 z+elvSG%D^iYHZ{?vasJXe&3ji6u#;E4d_NF3cvrj?720K12+qOJse$MW?DSDJtOi6 zw+4D`;cuTZSC&>2RT;xRew=_yaCAHbG=@Mx{9H4da792Po=iGTSIEp!JY09wP*uf5 ze3H(9g%4HhG1;vhe)<0Wrl9-xgn_zXGx|GHWPni`kBjN2(>%%dBwD&e{Q@`xF>&#^ zXu=;ZSJ_#~4Y$-MI@nb6m17K>^^1B1sLBp(>A@{uJ= zH70vnVe__jb^u0uP4Ws0hga;MKfgxYx3I8))cL(xQcm7tdG54ei&T!J*1nVx=pc1G=Y zdbp7g7YF>Ue1P5$@k#yY+de`7J-1h~Qh=H0Oyr45{SFKEA}=v`p$C~sjl1eLRD7_n};P{3C#%f1p4(r_Cw|-zjv;!x2VGu z3w*5&$uJ<^yKRD($7xlA6XG%?->S|&CYK>en=7JiDdBiXvyIqiyqNA!h0$eXNQ~<$GkG9AkJ_Ks4#A5VkON)4( zg|oA>5GM2^z1e`2l6c>Z{#?8`n&wLAJZ=p46+$4`W$SkTFhHKj%g&CF&Ja)A0Tx0j zTj^NXIUiG#%-qEC+4c;YS1$CofXn~Q&PK$?f~5%bgnSt;NOb z`f!h099TtaP+x#!qoUFW_|citw>p?BA}sv#=TA@v(g)4%ZhJh#_zlh#2fTy7VJd8fPQ`93mwJ$)>cYNO1Pc+#7w29D3f2MN0CZrHDr1Bs5UB3%=YT|kV|WfkY2uRT zwala#A=$+8QHegoG+ytEinfbk{reknadGUjXQ!vNhhyfOYr&#aL88L_?415DF#Uxo zyI#Tqvlc)COV$8u7$Wjub8;NCkp{n8Th)7A&|ZX!&jT>!7Z8|aieQ(8-023b5X>tv zo6$=XP&lpX@)hXLFD@Xx2vPiQSEukhW`f^_3M1%oYA-J@?_19T-LzEHWEyZjVSlaiGD!eJhhm1PWA*2KgF3UjJhNV=k_tZXMR z>Ne|WOf$9>K*&WVCh}X1u<#4gMYX3ZW>@Jv2x(3e4~+-%&vOZ`&KC(h^*K7^x4j0V zVi%}POtCV+w#UT4+rUFc^j9oj_y~D(Jd4kyl~2waG`lAZ1c6Kpqm-N+G%Dp)mfs?T zG09yPB7jE&{b0JI<2IrPMjD{;@yQ9SwOKCoIs{Ru5j3xG7-Ur_>x}qkCnwO7ER^|lk zPLeBVxAZbw>CYa2tvMqL!h60Pw2r2xriuC+TAT7;i`q|zyN(lb=0h2p8%le3-{)Id z*?x>Wa9Kp3$pDO>aNQJ+6QLSh2#A(zY_ zL@Ek|Dd;L8!NI^ALo8Q1ZD|9$6cN!2Jsng9NNYSvU64#NGBYb{!l8#;vgaKyF%R5p zMnNEjf!T)T0t%rZT)&WzcfBr5SzBkPtfZtjk_>Pow2r_sxB|yI<-XVX{{4G6;mO%q zKl{59br7fe1_lPIoUBOty2y0ugt}gq?dGx>lKNB}X`iE(HzhT-NbVrC05~||A3k8_DbC#qjfjXaH8qtNI2b6b z3|D82v8uZ$1$G`(2c&RXuk-P?9;P0QtBuVLbvVE6#u$gca4%4gfO$b<4H2axCnpbV z?1hWT>IWssZF7PrRQ!6H@k5xktG`4=r46qE&Q4f%s3sSxE3!VZBBe!cl5v+6OJ_9P zw>y>ue!#`0;^pJLg9A{gA4lD)Qs3qW&3e(cV$|YVpzBx!oGB|SYiMW)K;UtdRN-)y zW&v7L?4Y*bXx&gBil2-T}|MIbKz4tuYPN>WyTrV%LBRt{)<$Pt8H*Z{=oplS2RnAa6IX>1c9ELUqln#I4*|oJ0w%`W@1O_)grqZof&ee*7st%nr z=uyJoW?X8&f5%+zx3sW;1;wq5S{62F21sb( zP@Pv=#HayO>c)l^FwVf)EZuy=#T1+S^{Y@??~FN5l3b#bM80yu%g2z^$HvqvG{fu~ z;2Nsl@FiB2R8|t{47awndhh}4JGPmX(Ut!MWY<&eYC=jS1qJWW5um9@yg#P#@bmMd zqoOpj&`0O|_`yO!A@m5hLbIU4ZaIvEhn17_uy(b3i`z@a;cW+Yp~scr@+!*q2O^$> ztD84}xCEAZB{@DX9LZbZa2YywJ_*&jt)huE`}-i{fa19539}%6@SEn-eg=Z|-DH0A zw;#4~m?WG(QRYzlSjTch7Y}L(r{%+0wX~9ybKe#H;Apjh z77Om6jtEDb;umM49If0s545I%o)3tOuPo;#FnUEP_+eAwT8*|K4C zKwCFrxXE=DC7Z(NMzVgfYJKDOf{#?x64TlFMHW9Zd94x-LRVItbH80JclhtBIiKf# z<-?ROC!I`o;YA`rQ`e+tnHZ$l+sxJ5*34vL#~5EAOF@^1g5dA=f{qu;4r@XubT~!h z8=WDu6TT2lg#`t*5|Ox=M+BhZ5p!*V>O^WFilFcVZ^Bdj+kPzk{E4Y_ArV?9qSY@a>PAGJk^U=M`VawXTc!>W`Q>H?RKTco^(k zTIvxf7(qgTK4F!Z5xmOB{p1rm&wt-J*EM#uTz@jR8OiT=MnHhEE~jhkb-BFoyR+$x zzdMD;&IsC(Yo=LF4!i4a6`;3}=J%nWpxOaH2j&KN7&tKU&QA*lY^Ytwd7NJqqD${#DdjY6VJ`>|f%k13z%vpTlosXCWh z1xbsuYX%7CJu)XRFYo(zlj&N4XZR&dr77ssDK|BXXFUr|w&&6im+S|+tZ~*;F4d77 z$@(+gOl)j>zBtbnvXubGLPLl^Kr)VuoLgC`0D`@*PciZRKkW(J*(u%P(cQhh9jq;M z)Nc;E!*3+iO)x(ZTsiYI?*!G(lUJQ@CfewrC=>3kuhod$IcU#0T9V_p#KcyR^y()q z*_gP`KJloNMB$A z!NFm>Aerd+)Bg!^9XotYWn?~ei` z8gMwf2M5s|i-1u;vg{T(nt&1vXa$xd4HEMaZaYYSP$(7XNZ3t2)zt~UqJS^|R`Nng z;`$PhWUe!XmN>w_n|rG|G>rrGih|Irc81Q&SMLjydYA;MN0HDi-E;eeP0X2BQ4#sy zC81x7WY;r}+)H>Yfe_lGS&6rz_7fHnNpW3$0^H%fdk_;8ew(PGrm&X$hHkwg{qL@w z|DBlsA@ft9j|Rv-L1X&gNhpM4qQJ0$jygLVKzQr=_pC7}l>g5aTFzKC|DP{gru;vD zd3_WNAd091oczC^;Xe)J+hrumH|{*eV`Z1UHys;z6CKgI!?ly4=_#TdY&hQ`7l04+V4mm30Jy2gOX?SGsCFq-a*9m*q}G)EIHHz znj=vIGSTnI@~hnP3q-V`?Ks44hUVlpSgomK*^|FTVoA|X<#^Xs$-wPkBCr+iGHU7h z;7NUcK`|jqfzFO@_6#}Ubv0}$;edzrP~Xbpt`Ok;03ci&L=bbIJe*1zG*=p9hM8Dn z9i5rDB^?X>sm=|MH4)YrCJQvoI$=42t!Qo2=4!Bd9%6YbaPYId_motUh_Aic^tE=P zcqdD7e%~5X2w}-JPZ*9k4lUl1N1_%4l_cg{c0A~K^}5?U&fP`_Nr=++NH-V3c_u?K z@f`EFIDwWy6}(Ol6Ne8EJsH>Dt0iV4Okb#0Fdw6D2)$w2Pr`fA+ZRoa%=#aJl$kTS zCciar#EMe%fj;Th!j&05F*@WyV}_GF>4h0YD;oA>H4>Esr(h`U7w%g-3b(j}pEAme z-)8B?q;CCQv{ibCdbAQ4WNqwIc5XgMu{(DEI_d6~;V=I;-do+0N--pvpXXcVS)-6t-n$JRD9lSrxPdlccn*HsmqtG4>(cDd^%%Kmu4<&aQ*IktYmNlubY@NsaU6?H!Ky~K7=PXeAT)L`SV9X&q0c8 ziQBlOv7?X2#V1Jw${s?{8g;f?K|`Yoqz-^EuFlTqNv@E(!4d&Z1N3j(o>F3ANLy|a zqvBCuVDv6^?OXS%JB_N`!6eubTjj8ZPevwZs|rynhz3c+&+V2l9W<@O!)4HjcopY> z+d=LTE>MA+a%~Q+KgKt}t>Fr!#l`vgdv@6H zSnt5&q^M^We4@}8x^^XGdZ&cn+9Q%BP{X#8Jd%WURjNw!&?pekb7R+k^*=N2ln=HO zFt9Hn!nu+({7z)akRFp5n2dX@h_2#XO237=TTtdNlvdf|_#=Pn5iTCX0w(HjGy+tx z8vY7F6Q*pYc1XKX?i@eI(41IX`Mf$WX4X0IzT{EjUF^L01adqtqXa9z_yqno?Uvy8 zcpsHfk;04;?daZ_2y{#oG89atUr#$41_mJ(rm0Z9vc+%LPbOlXIV7zBI;&?(vnn*1 z;xmDQ7NvR!mLs65nz_S#k*s%s1yGG?=9CIfeS~{UxNXHADis33VoW_S&OzS-V(Nqk85NrRcaQDjg6h2x&n{4ybQvS zOR^QXhI4YD7%Jx;D6^3Yf6vTpF)E(rG0F!r*z8F#SolC4x2ezs%h*j{c&+z*%iS7n z=4fdY1oTE!5t5Af;QY;2$^kX5M15m+_SKs=h9&ACmMYOdAe#dYN&VWckTJaWFd+N; zcLai)1iNaoV0dlN%mGdS`q10A>7y3dSXiKTfvK0I75X7^@)Uejk!vpE9_DO3hxvqW z9k?~EtgN7CxQ0x4nCQvL$w$j3H&Jwr>Z5tlDOGK;7CFxUpazqm@;FdrU1mMYn%E@q z*l+moktFS9;=?74{74i;&O)E#gV5x=L-+H(kNecr-!&Y4-fQM&Ao8`YLaTetcJRau zYv(yD`Q&_yVn$=T;^&d(I8jvly=)3}BGa3Sci#UNdo7`lIwvFZBstD{{{vdPiMAib zSJOaw(%qa~LeIlr5-V}<_dE#-|0%_OoWlA_I$m1)$&l#*op@j@|JbXn^bC%J;Vz{Q zpY?rH*6Z>%b5Sdk2>#97aD68GD+IqUF+2^0N{MJjWl2{U9Xr1tivpdDmEr*bH33@fyoq+UI zR>l`@(`5nbwZ*c`*vJSP{g`EFBagv#Lg~k(Q(FzDF=)K{SGWrdPi_1Z#Kf9`ECFQ> z+_7XNB!Ej(mFTZ+3dza9##GnTfKosg+i`7>F-~>?Jma@~QdoPM14aVI4q#52AZLN* z#Ldl3MK!n39tG;##n}-cJAqak&{9D*mdh#zVHAi)a0)^H0BixUF^*Lp+cWiG-2g`y z*t|4K%-#V1!t1zR4haz2Odp{h=!d_2`LcB7LUFD1fK?uHpzZCHm>6)!Umeef_p@s$ zD?7qjcII27u51DE@i@J3SXlMcJnmbY9!5cU4;0H+iNi&u?bLrYfp0;8+HADV;5P%jzA2Mxi7Eq#8xq@ z3DAz-N6fTM9{!oA{>ET@w`cm~>@m{wLD;WlI0p^<4 zP-1YF110kvWSqz%X%P=YqW_472ggMe9^1RozP$>55e0MP;1iOfv+$l-Qq5hS_`MzAUL?B zWk8@s#F9GF<;9=XO-_~WA-;zCrd&SaUFjz;P1meLr$BFirMtK%=d3-Z)to_kf3BVo;oM@+dS|*Bc+8?FBX#Op=8_(_#5jF*Ao7jzZ)DRa#`w zs^9SzOyjNOUi=`fGBX##T0{teFq$@I;Fr5 zv8t&YG@C55ng%|75~ya#QR5qjy=f9__LZQRZ1bliC)a`%<(WYXItE6{a}Qn?mLC10 z#OEHaVDSWwA0#?3H3Ng~IUmXejX6lBAUyp56%8^K(3h~uU{~krG**;qw9;V>eC6jOaIb>MxM=I5t{&gNa&5}sRGOmC8UOun>h7&uYCm*e zzy-Wz9R*7%c$S=1G=haF_&-e0S9xkh*I;-XUE@%*fva<~6|UOR@5Pf)1s@`cSGy?CDHY0u=Xe;_f z$05wMBXwR^;B3-y+bFqK=}ui?5r78S(%kH@IdKAZLU6(W^#w{+bF4AOt$%gZB+oQOeEU28OB9UDs?^+3;oT8%O$2BD_RKf9GN# z{T45SZ^A1jA0mVXb&raNa-``W<%u-#{*rC6^jBeCbLR=RrBr2#{syJVmlQ9o$toI9q)gA>rZS;%RznLyNYg&)r96tpO*&`%;7< z3&Gcc7iQWB_*F2Ox+KR+J_5f>wo>r5W62JH1@NpA;^JUNxttYgL`A=O6Rc76(SINe zYe1SiT7E?8BUBzZAshHc{rh(K=2Tr{%uz_k%deeVF>n5fM7cU0w9^$7$8|`Ll>3Na z__?8e;^&1&L6V4Jl&%{GcDc;^Gua}3x0xn?bsvkd`g!_t4GYoZxSG>8dU#M#a5cOV zySLd={aP&9BLIW!Y^x%-rQjBh^~k{V+~3i?6!+be>Iyb@_dA=udsEtd-$bgwt2ZH1 zua1LkfZ`vV3Tr?vt5L@$NK~IQVUqe)lH4$u06`_ixOwy12@M$-_GX3PKjj524{#WW zmBRh@rlu=kOBAEJC;Y)sEu>jdS$PONEWxSZa{)`U)ru120%+UyzLb}j14igtu`kdl z+XU$v_Li8H=t)8Ud%7=< zMOj;+K_u*Rx8$SjTNL`R_k+oEQzf*`Z8wo~`S$mFUJwsFTwBA7|FG6<`_>Qf!u!rp zrDoHp=}nY>pIEZS0z3zwuN27`^XD6dsJe@!HL@xoF-?)W#lc#^wpM~katgclf+OiH z*>9xNZYv-~Ptf92X>{FD#WIFBp8M#FBObgW+xUAU%kY;>+sF<5Eum-KzN@SfLK@Gg zy$593Ff9oJ^w_mgGvbTX%D=K?t5R7DT04d4dW2W5{0%1Vn5^9tx0+HtEnYirQs?#R5~!tRco;ktk2k91rekjhZJ_9TOg z1UA@s%mvY2{;2auVn1Yk3t!{o;{(RPL9>$oxYVcR9YtXl&Hno`*jEFbUfd%FYd^!2 z*-!T0&96*mI?W90%`@HQM+P@rT=HGGK9iGeF&+`0fd1Hu7 zC!Xa1g4g%vy_y~J)Dx4wq*4^G$Vo@x_)HyV*!d|E81wlv7*Ae2j)L6;Pc_SbDMS^&sAAqNU(WcMsp* zYQ}fcV|Ge!Ke*V$4ts0na-cE@vq9&xFyaNpj7xrVZ&7N&i-x4TSP5tIj$RV;lw#>w z%`GC|WSg8hRR0Jpj3|tv#xL^(HxQG`+{Q50(M8zy{gQp;?4@v2zCr7rkcae9pV7GS z9*Ii2YkOqB89~0jY!FMTyubCY+tDlYwpDLF{k=gdqnGcuS4!U}P8kd(%CD%pQ|E*% zBmO8T&i$g`PW9c6prG%eI(+%iXdk)CpPfw>yllnp{Ct;HS54>z@;e%R+~@ZO+6TGW zx&jBn;*#xE|Dpufl68OCQdPd9IAZ@mfnM?^uZtqx6f-+Ueu`Fz-$wcC;9nPv4}MgY zCs9{POUD=Z=Vw)QcD;3bW*1#0mXkE+^p>G(Wu-QPLjwbESqQ;L|M33(V%Xf8JGg4k z3$pk8{QUKv4|w$}AZn;&<>lPp6#iLri&EVadj$p+*kS-%W@zOSe?PQW_rA8Bg1GxS zcM!JxfQfX(l7x`(gKVs-M}}!7mKUZsgc^R+o$cco0zvuLZ9uN>Q9ST+u9k}9JS;bU&@^8Zo1 z!0)~w3;bJ|ZLE@n-C-p`RX#jrW_qf-j?Lg}A@VayDW}1rK@bB9;f`_Fzs~x1M&o}d2$fy$=t$=-(fOkxvgI0h zk;UlV-cr}U0iZNB1tZ=(-%)HiN_A~`TvZr*p#0oAHmQ8 zoB*0n3=_7jmRe1NZ@?1_>##jbPp$OFkL|LbU!dwI!(sH%o>vz~*UowEqf{t<+1V=) zQI@_^V0yZS(8tHlaW987J8smGp^KI2(E2iRKW z<-5V#2Hu6?HR!1=SO~WTE?3Tq#xK?D0wwbWQdH*S>EGQZvL>^Ljv zH(<)$v-mokfoNR5g(jiJeUtR#V2;BMDuLJqA(_D-y)T;RML=MX;Uu0Xm9!8Jf~5tW zh=fA?_6>GP>`30Kn^ez*9(mXE6RNMxAz7SzsfdK=FoeQ}{q7+s!h7ChzO##{cb$A6u9zt3x~ znQ;a=n;p-7*1higw_qiMmlhr_?%L1t70@Q_!jhlYF<9;F?eG7tw7#u0LK1SNWO@jy zA9xW-qg~Hb(8hKi2Wczs85l5vO=qCP*kaJ!091*%ZrDO5X4}WR!>$PeKVV}9kMunf z1*kOX>FGgPf$b9l`ebByIPVN06a*eXD6@Zq^CdU~?2cI~EZ`%1`t+&It%~gIWiXUN zWCUmn5Gn>~jjfgIX&x^dTYi20@5#wi8q538SV7ne7*oAKo-d7GjA?bI%6kgpS|#zX zIK?eui(DxENfNX$gt38F1-|Qwn!Y#rr&~m+)yG7FU=@wxBkwDGR9x?dk^W@&did7c zmwPVu-2!(7^dCB%?XG6P6N~}-Vb3xeR-;qM{Z~d3AnQ*Q2VAr0D2H*fc;h9elX31%RN5Hd7Qx5(JWD zP+h99Y<~jP@{g0yJHzF^q$*%veEi}v z*!XU`Z*hYX@rQZpX%958Sa6T-irb2Hf2s7OYDm`tk{K!&<7t6=r$um$i;1s|=$Aa( zXxgjR^=&Hxh^|^nJS@62x-&=dtEClN{u)` zDx1z9lwWW`vk=3wO6^kQ%7%Jz2*EFBk7BgFbK>|loOsudVTNRdWCO_$Zq6h=WBbHw zPSm&rq0a?78>AtWn7vDozY(k_;Y_%0)4vW|Pc+hkK`;fAd7cC8Z_3ISJVW4}Ouyyu z;$A=9Gk<)lQO}uLs?O7hdWjrjQ>TST%Tt>t9VCLl>$6Xd;5jXOI=g z@WTszpM6HWyV@yC21EKyFcBYYIy~CZD}? zUZEP4!HJdt_z9Q;CVxnKANm z?l@PpF5c37v)JjTZ2Zz3J2}*w=zfonXUn?#iR!)z>272lmCQB&tGBE4uOiGgh33Wr zwo7=GjC)gVmumf{H)m5Cam_9{CUnt7NV0(Qj-9=)NQeRthmxL!BqYg21F!XK5EFVc z3lg?mC|SBj!4zMepX*cxe-mk9HoO+3>FqU#f8T9u*a)LS^nG*rq`ZO-MnL?*r2>`~ zbT>l(wj?qq0p1fzaKosVfTKaYn)8_)!kd3*C;jqMxtp#2)63wc0%aUAQFn0RNt%ywp{>^!86Ij%4Fy-^4Iq<6=3c|%jkJ|hIw;TxC+4z*%+a*DC8aT6mP z4VUlmTR3rrmHv=*A-HebdyhKCwPbUvvAMG|!g;x?A=cN96q=Oi?(MyMZFR20u%2y# zlI9gZ#0&O1z?pztcR3om=R)Z}2pKwvF0G4x(XC$J2%$Gn^vGXAT-AABxiw zdSkSFv88>Ro@mNK_BjCW#`YQ!E{4`rpw4tieq~09<4^?-Zw=M0v?EI_{yaqeP=b2} zgL5&(V=`1x0B^K+rZPe@7^j&TL76NUcYC4EpOp&pCsSRBF9IR2c^kCtakJ z{kZtI$Xp`=BS=Sw>T$>n2CYAAkj$q!-?tlid0mp~yUr0X*Fft6wyw(OYS&}#2>(5>OD$^Z{LU{M&OkliFOZ2=w9D%s#zO1qv{*z0R9wIr@`1#$Y z;4zhfPu~2In`7HZIhjt?A<7)FRs|%bURyq1)TrV65+KxK7vBU(6otyfrPt z%DPH(+jvTw7Qu_ni$zp#uMv~lxkZdkjE#wl%{KQV4299GGFy^(L5sk|MY0U`t>i@K zz=vmgUWj}n@IQTux-V>S60)b(Vs5+rWwI))fE!RCPK zwK-8pOg2V1vh#DKoH$Zdr0*Yfs{UhvI7+i=en z`6cW+-2^70X-tfdgY}ZgpyfxjUv>VMvmy{f(Go7Kjny%gS|<0?W+$B5GDX={c~_Ze z-6?v4z5ynE{tHtM>Y#$W`=3jXNIRlEF0jpsLz_0?ha{n`r@>-Iy2QNb{UZMz9lR8; zruu*1orjX(F9$Zp?2!jMu8+8Dvjk!nDehFV1V>3|a$|8)m5MOoixpo)36{_HtS@5L zHA20E{bI;Qr5XFqAnnIz<<62uRM)&nu@M9YpQDN^G0HX>(r;m6poYZnSZw@S*vJi| z?BwBH<=44FS*ix^A0{M%lpu__I_312&a^)wyfIyUPbkk7`|%<8tZe+47>^G}Q6smo z)7SNTC27w_R8UOE-s*47RM-2t-aO1_=&dy?^}dHZ9rQyPY45s$A?=Ya<S<(m`U}XW~EBPDkM9 z`^2H#JcOrob7_YThi-P>H7DeB0o1;^i`KS`@c!*rDL9yatShTZ%PGB?^F^4>06#}u zq^VN$d+D7x?QiNL&qYPEELv%OPndPtmtb1(!P%aYKL1b(SF)?!UgNe$$rZ20~c(= z+FVmQ`Dp#MVwc>AvLtCyp5c=&I%U7KlBQPYUGEFK#)~7W1*c!R5P^Hk;|mzqYA%+| zI^GINcG*9*OQ9Ev0CkP~{%-!Yl5-n%EHGn?2npz)YH2uvd+bjBoHg1s^v41yZX z*`$sdBtQQOuSlPnpfs`8j6Q+jJ5+&&zR=iH!qvr?Vtwdj65MHT#&@gD`ZW)XnX|5cM_eZ(G}7 zz_P0qoF4?A?r&OufXl$P7SacvlXHW@17P1auYhJXL|?}XwE^SeoPFqFt6x2|u##p`_`G3)T4YNf0oGAEf>nipGGlD9pWJm!YXAq#>o1UPh7JC=L9)i}D;bl7xG zq?V97?OV4m_RRXPZ5kF z003~?%>M-^f%%L{Qq5+9h00XjUSylcv3LEvVXCU3 zEMVG$P@2*EPIM~8=MMc0qT2@)Hx)e79$Urda$9832kqXJA^t*3+lAR%cF&6Q?_}fY zi8W7?7>B69b$&_J_$^bhy2E}EwavHXhkXeUa7iB9Z~mooVsmRFXs}wEJDtWlj`)KR zF}pAK2Uc1;gIN}DakG_>=N?aLTMP2+hk2Qbx4*D%VH??xv}2RU|2*}YQnV@=vT zd2bcQlwaxVWSvBkUC=*OWKx6jSC~4L*ZirzJ~f>Qc&4G+%Fho2W&`a0qld>|c!@lG zSXW!?4jq<{j4{#CW{I(pk@g+rrnLT$tc4~($KDyZY$1-r_}Cqqw%`GPIJpwj2y~kv zuYPJ4o}a%7dvg$g6SHrSaT!2TuIwI&8^QppDk~c{;8IKxMgssqu!IT=@~T6;8xXeH zJ3R*`AK3!*ETP-?W>NuiRPZ6d5wc9w(A6y@ZG>D}gPs2%gnQ3Do3hOz@ta#%xPN;7 zs{8>Dk6P>!Xg5V#rSuOUdVn~E7@U}>wjAfsj%8MiS9$iV4U_&pS*R%2Xk?3E>oqf=W~2j9dZY#{~Gb8)@Sdwl{P z!YLp{Km$}!H5xn|U^9d;&vW8-+d7cfD}j@RhGe}epR#Mc0mbV7sD{IkJevWw4UiG^ zJdc<7lh`To(RdpO?4z6S&?*lg)jw*vN@F!yxdF%)ry5;=?)Yb$1EA>gWW4E_dILa! zAcN?7VR|;7LCkn#x*(hWsv1wE`qA=Jg}{Sdk96gv77K~g82Q!J`Ass-5v%0aDG7Kfawsrvh+}0MWvbF*8%oyesYYewdt>70OCVXqwQ%TZ@$w6uk-l;oq4^fk z(PSO`GWMPGINBfXZZCD}t-tMmOL84w+~Kjw>$I$to7aY>#>l(2S*fDt#aJTcoK97O8O7v7rZ_;mWAW5l-b$=rLjT+Zr z=HqDhs}ufZ=P6d5DG`oNDbe@YuMdl4Ha@IxtnG+0dQz2Hm%Do*$~Qt<7)Mzn+gLnG zw&g!?kY<>$Epr7)SzVY$xcYaeZ%QLoj(eOxjol+_G4snJhPHFx?t&|^BE9rWyF>{M ziABRT+AkCmqXtssye^Wl1P8p|k|QHFkEuQK@>`09CiJf~k>Q)C7*FMSBCKA>!KQo_ zyjtL-f#B7_^71lVX&1mx%-J2mWv$+@k~Rb5fDdJQ?H*pI_`nR=X_9#U`O~8>U{`JSOVSz?G^xB7DvtEN71cG(ALgi z@80w$BLtiVkYta7Jd%@;W|0mb00tmtSik-4I+&1_;1M3GY5ROMB1ndIn3*sBU z8Br2|T45F9-L(K4D$-atw9T)nLGvfUabMbQOdj4$78(T#m5`7Srcd*?fa{P8J*{dw-^fm~abNl50_I8^NZ)R5+K9-g zMnk(7eNN!>0LBX0Sop5%-(QtCBJKVM<*8pz1pCAU*c58bhB6?TYrv)T;)NGHv9|C~ zK|Z??{5Jn0C43<{)^vH=R1Q%TF|P|i6ab&7)S$)Jj8{irA5Ao^EiK&vAe|t9had=i z1oWR0{e~0ZdBriB11AbD**O$`fXm!`U6-Sn;4pFe@ugdP@U0euZAdud2S}ok74YMz zt3xLsNyvH4x@xKtG7&d!^TVZBf#nKv?834}LlNgN{+fl52+k&u)aY5vZDy<8o9%V-dp-AspaEyPg4^d?llwzQ2= zkS9glQE^p|jr>-yb$OyIuC=V6wg&f|=MDWheyXq^tVQBqHNUird%&b7$?6R@)!7ei za{N{5f*T`uEz0WrDCvSERk&zl@-b(OtB8Vr)*7?T`zDXzrTK_Ug!=U1Oa)=8B2+(M z;^F?~=DqqLpK8BNuc2XRBwWqUh{faw=J1^X0heWq`|4u(gSkcwu3oP+0!L!cy=d?( zrj$^{EXfyP0t+8s(%ep|6^4mJA1t1l=lATGS$L@T6em)Ar1xQ=&x+sVi6D`_rdL5l zcujmfg-fTgXiDe@%})ZTeb{_BeeZiCJkQmbdFiGqZX#F^;d4HFvmFl>H~Nm&vS;b6v|lVulNOyZM!jFaoR&_de-!`5Rje`*A(27An9S&Lcn5K`IUV1X z;Zj61w1z#CEO38vlHdU#P{SUxBu(vYsAGhSk zBUa!fy#$&ja5LMDz+D0F!Q<4+W15im`(77kpt-^utXQkm2y_F=PM~vYKzti;rz^+n z#dRDHA5PBM6~1U{tgL(uw!grJ&v3Nk3p>)EhqUg+Mn#o_tOduJpqLGRUkwlgELGXP zCRk5$fa?pEHCfpXFbrWd1JWns4|q#OQ!`i)cKr`lz@7cmsuDu?6`wzYAK_ffixLlK zVdaXWi7A&dR|bo65`Pg$!eA*2m8OTcAfN`#0nGK}2?1T375`OC48#|mqA2Dkn}C8H zwaALDtg3RPj7vzkhJZZYgN0BYFiqTd-~R)N@r{X6sTX|?pb4%wJ^{?$N5+47=o3C? zr-kx|#bt_J{zWklfE^(r91b$+s?%Ee5QKJZt*m~O0HetcNCTjNr|_B&!&z_I$fl3% z0u$fXKX<>DwEXgE z*rEX&!!1P)30JJNx*F{n%g^sv*kSPKKXGS7409AzmGN%J2l_^PJkRzQ1OAHpdtzrLG69BhClpe z+<0TB_4W7~hj0-iK5y?97U}OsU94|PA*w4O~RS%H%AkHUJx{^Vp zeno|EaN#noq-hz7^U{2ZMV1n_G$Kjwr)k6pCyGzP4}AI;LIXGNvR!xr{+-#;RdJ4oj4INA6U&ON6*_K@2?-;4ev_pbekwYGaN zqogj`hmL9OeYKR8YXO$;GRDaG?Cg$F_zZ}!k@jV!(p`?@K8x9wS<-F{{{tsUt#@BC z>8Kg->AV?v{Ec{heI8+RUGc|$Tpsumk#E%4YxuV`IDR;@ACjT*Du}e?-z~Q>n(ubw zN)m-1o>&ug$$aC?KioK|IXqT-7PjC+!QD;J9`ZyZ7kkI zoYz8Nl7TyvC9J@=(9BzW77>w~8?T}mq=~!A&w*L}Gy2CXCx?uW%;T6C;uE;?#${r6 zhuholaFP3Ryy)!Od3@(X?i~}#6@hz+u~gm@VwI0xlQz|b2r71yv!>*&vMYssrAocR ztI!qWQmJEJ?|?zfm~_Eq*%thkw|BX}{Ki3bMbq5h#@YHu?#Y|tIqid8`SKAz`UC@hacRu(Tl2VN*wyoRjJs!7 z)Y8&#T1?W;5InS;>-gDaao-@*EA9Ps%pWr00jc2In+XIooBo!jxYQ46#l82bGkO_~ zBHl!0X}(w+so3w2I%?ud>Juy5qN%0p%(L|Q!CRD>Y4W?;zErEQxY!14^kw&qLxE^g z;zf_7(~kAH`f(L}4Bi-6LJuE;jR*~;hh7YH_rc?uZvizBgd@_%bNnE~nuSb*;u6?usF$Uv-+@RQ)- zM2Daxe*-v3s)KM8DFzT9A+-6v6b(5b#encZGM?r}Jh?+{m%3Uoq)A zE)x*FqLf2P`iL7qi38gJKr{fA^)4HmI}|#XXDec0l?Pr2(At1v_?F^2A~7lH@_4{Y zh!X$t$9nye&74|jWCP-hgAzX^L(rrv!d2LYi){Z|S{t!C4S;pee?wWf({>Z|(z-ei zP#d89_oe+~t2fmX7q2u(fGwc~l@x4;Zc|WXKS}k>T?^tKQ~C^B9Nk){JbhO%pMYqS z05lM!?=)lB0=5JS+i<$x4d5`^^{%BX!NAQ(jgPU7;+wfQlj}F7Ab0%N2O%03>h$LPAx5r&J|QN=gD%)n>{+mopOX>iXm5BtW;o z2nTkOklv+}B~C9lh;a)a&H9}nUxA_$oB=Cwn@WeteJUX&*?p5PFtFR!ZB&8}3efPd zdF|z>`)uQ8@{g3q~S1=$-V#j5y!`qf0<^{RjSW{-i$mMIgK_ zz7-2bo0%c@s^1Ra-vPJsuoeG$$ZZ)_N-l$Dco%^WgW7c#0(9 zWGkiVk7Hx|1{Gp5l7=API(FNLi(aRQb{gEUYe6)MuwA&ASPB9)zXS@fM56JBIZdh&M?-!fG>~B@7g= z{@bW4$s#lO>}I&k*ZK<*d<+Be+RA|0LcBe4$0*T46~}xX;q32WHWublYT1h|j;S)A zbtdLi{d5HG*9>eE9PbJG4WzAL;$wAqBktGR4aVbk8DiJXi5U&h`hS1hn2usTTZua5 zDEeE+$M28Y&X#_0BKmI=d5^0>toP=Pml~ZVbAp?|?gOYXAkH2>kYI8N@BG|EjTVq_eZ5igj~~}8 zgguydOlSFvmPM!2VnWkOvb6V3jk{T@xlz2H28>5o^LiP#@8H8VT+JxS)3k? z>pQ#S3LNa-HZlOKh+XW2lNke70t81Kzn0=+j*@Z9@}G!VsG0|_gLnnKxt!t~fI$66 zwxD(I0Dg*BFJEFbgD(=Qp1eAR-#`zi>@*D3;~1a0yl^>x6@F>jX29jyleTHFFJ0wh zKRo{>q4C9^9}vv{?Y>?F-;Ws)lo1~pX~;$9bPh!G02G+)p|J_@puc~AT;<5m9~&Qs z7edMktkPEewP{gkLD~7z#3a7&mC^{NkN3a|4;fxCS{qb zNF)Q{zOXQS;0BiehE3`6CR zvSQ7Dn=Z4UK%wb6SjP5__v6Jqn`n$Fq4yp62=3o|B0+>y01^=H{*R1M z%t=0isOIzMNv(5VwC?#wfRqDA#Qgi1Oo$?2lk7v+591E{t8D3Yw|^Xt2af-Zt|Sk| zm3+1sA;D$&E21(&Nkbv3@bL1R>j5pDEbUKh`f$O`x_3d*hIP)BP0*_r0Q zKuF@TpKk-H^566{s&QI$XY%3(e#0+j51KiUB%pfnpYd;<1AKVK#r#QFXhY=7V*;sV<`c+wb^B;jf=8u1a z_Lsw$ku)jqTLj%^QQx~{@Al7y=2T8?{Al#RS&(kEPwriEsGIU^YC5F93Fr8q`%NQX z+RUu1)lT7omF49F)=r=d=@z%K4(z?}a)tkulT%e$i8e)XN4Jo{U5YdjpVgxw~?ynSZ8LX=_PpOoGof-C&m#f7;8h6R~}F=5=+f1z5`rDgBUx0N2F z(m#Z>Q1hXE)S>pYsCa(s#7*W`yc96O!?|0UB$WI5p^KIvHZ{*~Ji!5tj}(KWe==hy zwc1$-6)pmSk!kT@N;R-BNVwLHOTa7sPvx14-sTtig%$+_B~CLL_M`8LWF1sz@pu7p zuch!hxG{{+3SOMchr^^JhqkRQ*FU3Mv6||9Bq6J+Vf!(2VqC_UBK7&AJh?e$iBO9W zZEd&4?o9<4hn7^&2dAV^e;)et&pq4Ek-LYk;c5TpZ~p-1#O+$zKI%c7}6aeD=QF zFi>Ul(?=NFP#1q8aKo`~%BJeHO95fAm>Xa!;Y5~0Pv#S8`ir4W5t#z*c*J9AiDzn5 zFW^q1nI3-P$nU7$)*F~&xy&Bwel9oK&|?ds>+!|q_rMRqA79HHxI6+~)JndE7d z{E^GnI$P*I8D2*>?m)|#gk*Z^MV9{~+{Bfz_n$;En&0#(OKAD4cMSQ`J2BD)lEc?w z{O_X{u`#yE-Z7=G^v@zCocVIg)}^c7+hZEEzJYbrfRYNmALSxr=0W=SVEKC2#D7X0 zlsa%Wu|yxIpS{VKTb$^B4of6>HpAD!v9ma0Ysl67-EyfnIN$iZvhrT8Nu<+TYqTJo z^YBH3S?#5Cm4Ax?SC~ljpq6#@L+K;Mg7I!c>@wWo#0iCDd)#khLifWki6f*{o?$2| zJE@U{w)%i`PPlX0zB59t*-$+yYvR2P7W&|5Sbh{*9v|f;{$tI{VD=p2{QDu=@?OYn zrPifnxAoZtCi-|(Si~a|Z8$lDV$}S<-khSuS>W0xwJ{aqdORW#@>%jS}69 zgA}g#->u6RHrOcdmRws9o}zT(=)H& zymURVdgJ`FW8;pxPs=Amc5*=%jZ5Jwq+yOiXu!)G-dG6KRAA&^fm}fu;)he4(ZAGdEQe4bUwP@bXZ((BU=oTDOJ+^ zEkuY`gCxshcy=hmF)&mFzvSe+e#!oRLgQc3uJY^J7!;}Zw*{upkJQ;1{287`Bqkb< z5i|{Za{CJ@ec$XdI6F&=F8iPj&*Zg5mLlgx{EJ%;5bRGcy}&^J{_^*W6lZ;k`lpzs_kU@U)aqSk%&my>6b(7&h=PJS1C-r%Q ze^5(Uk-t_BbrS1t1^fEf-g>F=oEh_omhZhv*R^+@`Hj0V4m*#A zy2nKBlZoAZrj8~vgNba)MnH`geQa}0np84RJekfcpXj-EA&S#8CHqeTDh|r~3xAIH zQD8m4m_F89OCyMmsoQvca3tZvN9&_-%+PYO&hhPtK7>#-FupG0)dU} zpUv7G1UvqQ<8=%LK84OokA3pwMn^omf>jzmr-apGMh(Lh_I6 z)?}PF%((`$}mgddccTFxvr7b_VK400|B9g1edh78Gr#CUHUL`Db zU+P3^N*m78^NX5#6l}xCiH{#r#+C=(E~K18U5PXep?xAc(HJI2CC^GH9j+aUniquG zU&tXfl;nFgdDadsQgNhV=*=8|)HyF*32D3iZ^M~fuwd(#j4wH;%HO=QHo8i#u6_m4 zpokFsiYxMY+99+w+q_|kHOpOoz7cNH&jNDULhlYaJ&sPo*_+?98gtZaeA_FbIyp)$ zuE9n8&e3xlsMbZjE52A~*KGI{xpY%zz3Q%2vd7U^8m4Oq+Jhv=rG4hq>Wi|b_Xbq2 zcQU#?QHGLZVl+)_AOE$!TgqX4tMJ-#dLm=H6}@PzR8{F|S&3xae#J#LBde`V-r)+n z9_Cs)G4uU@?-AaEEp)yS86^Zncez;+*~I@EV_j*9bBp`Z z8lT8E$+H+>duvI@T~hy87oc?beq^sA555F6*ETUx=f#WE=xAOblKQov!aHFG8f>c1 zJeyL$pTN}XAWW^P?hFBQD6K&O1!SJoJG{s8^1-s7;le^C4tp;6FLQ2 za4enFI|zg#eFt+6e0?#K`k>_jDlF`{dV6|YQ)r-X-fl$a&nqARxD&!%y`%A1c5;)`RHS2f4}nM zkI+)Fx%KzYA8}-NnIh{yS0L7k44FkQR6|9j3S{byKYxNc7a$Y6@!FA+6p*>;sDVA8 z>)KQStz2|(uy!!KX zT1iXES$_I(!cgHZHnLx>pKi0^FPdf_TetM6jLzH@A4z0qqGQ=oQpUgb?t3i1CfC}= zU;Ykt@{m`LHWYGfM|vu6eI1v<-YK=uId?u6bIl-TjKwYf?`Qo;cp`o~irN^9yRZCikB+ zwp+HVcg0)y5#PPkYH{%Hm0YoAY2uaq2gZb9EA+ApoBU?s!*~SY zsISs_L9}WS?4`K|0;>LtCt*+9{|-3N;^E+jV&XnF;P#f1E|cZM6_&-JPHcr5YX(!6 zn)pWT9TeAu^eoE%7E;<9lQE%%15@<(pE#92k#pif?tNXRLZNu+C^b4pKRs*&lGR|o z`NY}$BaR3W!dte*9D(I>q~pXAP>nNXk9rWn_vLnT8;xuV<|8&I1p|_1dV~uv&c<#- zK}@G8&Qj7S)!9p9JcR))l7@>QT7NJCOgr?lqt&T<_jDm=+-zmWV8f2_M4y-g)PW_pr`;&3?#at z^X~>@8PR_b1~dXi5#1o;K5do12+K~XC0dxvzK)nF8Cfa(At1>Rtd9H9>TDi^9l*W zzOKW_r(rsbJg2!a3^vpFS^IkfVlX<+*}@{f#UQt+r~&xdZ$)P;OByr)9tv{{)YKed zVksoV8iAP)GAeikpz@#&Hw7yNI!U5s1*IUk?Mb~6@edQUdM;slD^^7jPvtW9fcYoO#nTcrb?h*@#-1Ootw!QFj*qr4l* zj{Q6C4FsY`X`>c=35oz}fHe2+>ABa*NGi5OS5FTN)9dQ*$3eVZgvjSNNS8uyvk~kX zo=swu_{O1NI{+mj>{9BYw6N&2%NzN%+90_|N}R8n^Dl$BaXx$hrMIJdX{X1Poh7Sa zZc#XTJM7>3Ga2e($6|(l8;2GUmN%>Q5xu9AUw`10Gs&N4 zJi_;|$*htwM_NaaEhKTcq@vQxSWjczM?%lT$k$M6`Ae=rW{_QewnMcXF&D`U2W6g7 zaZ7j8!!K#AMj1$Fd&!v2e-qz_L|*x^6Md>I$}o5?!sOIHIa$(q^ONBnp1Uvjk!SP$ z4ymo*{j3&8b5ELo#atwQ;>1r%piC>k`8OFGgNYor>gthFA~T{4M3^Zq-I%!hTV}q8G2Hq>Ji<>ZFMoAIF;ag>0+5P=h!AT#_ zD&^IyFXe-Bh-<}2_I-ag(}Tld|U7=hv+o2p@zXz{R{Ndr1M?zP zTs=vTCpn(}k>yP8et>srEoMT=0HY3KH1!iwQas^_KHmxVf)~>Sm;pgP5uqLc#R~WV z-O$6oihw7O18%hcyk|ep&dwlm|7+v51nS$I9ZXmONf%m_SMkWUVf>aSywMOUT3W87 z>YCkUfRch%_Tix_6^8gBUsm+4FxmYoHdQcyHhkq6 z)HLwJnLrPw^Lz-3i&S1kXA>@Ekb^HbY`rY+C!hf+fbs-~LJIlyG zBdhcFScN`>7J0J9kg{^Q8&g?zllMkIE3)=lg|T=VMlcIXo%T*)2j6$qweZKUVx&L3 z(}-&wxhXvBfO7-qmNA~e$HmB{ii0o2Unz_;a1fuAC#!>dgsSfLUnk=CkIc#~FjDF_ zpNzq17dh2+I6PRKKfGU-6KCx#!&gpJbydo+oY320YN)}@yzXq8tb@WJZT91$&xT$S zk6NA5yZA0XH)}T8pyBxgtn#%=dEcaQv#fzUgiU$kujE&Z2A?zTTwVBw&!ZaIHOCZZ zxt)D7W21ZeJ)-<|<{e97A9;#e7KBO&LO2^i>yY1E5fnxuf2_Pw`{8-}t~&y?#5o^D zqJp>*LA@5L_T%`uSnr?J@8*`&ebz+k|1`5++)Lo9`}K)3E?tc&x^sxu8i_@VEsXH} zs3FhljeYq`q4@T@nF)p7Ulx#q{mM<+!Fg;Sz znm}9gNe1pOinN%iuM>Gl;S#S#U)o0>pH0)%Ybr6|QU;;q=?ca5B4R7lQmySA5eZtA$lukrQ1Y86Gd zQsOulachF9X-TFmqLh_|o$3~Y!MI#|%ACn-;yPFEe_1Wo5lM1>j({IUNAsf){1Q9fer1(m+$OcVP#F>Zopi)UJC27($G={Z({y zC_3U71pQiQ9}m0mg688YOnokn-djQw39@ZPE_e;6u>S?(y?+Drh!mIqHPBu z?I4k(Bz-zWvdPw-K%H~i}@OOTR@hk>;zgOdh{F&nD`Au zAb7|ggpIt_zD5VGAUJBFVQ5tXajYJMVQ~5B!9xuV%GxHDPJ7R$7wV(XN@yFrO1JpB z4$6YY&lqG2=r-E7Ns9{Drh+O7x%CR2n}&=q@2Vq=%95ADS+k&O#`C#m$G!$|CCh&n z*0qB%Vso;J69)Y9^FzZF?IVgF22}gh)LWAQX2Pq!D{hEKuG4D;?};pf-BZ{6*bpcf z5S3mPs;|6t4@oDoi;eis**2;3NHLo%@)>~*X2dnKXd?uJ>H?D}lS4*EfNOstA@%Dub1ZpDxdxhZJ`ga2#oPO|BLc|d`B2Z8rcEWhyJtOgtqr3VH71OQSRDB z!fi@K2DV?esXHOnX0emIa1k-@2Q3NJyv-*#`xKd-_eP~ z(JGzhd>)n}D|~mB5^s&(dRmkpO~PzY>UQgvef8+v`ODF;T#*6cmtARi11b1U5<>D7 z3@M$@@dxRd_empu8sEqpq@-WPaeO&9x@pkK=vPuf`@j#$))75;kC|h4E<#a?Vr^4( zN|jwi;U0l8wNG!Gc0W~tUZRx~nQi6i6Wah{f*F*rpwBWFv3vDzM-Hj0%1`?M)kPBB5vhYv2Puwz-Oo{!NpghEh~n$ZS*Nn*=MQbC{$K6zRz^>E7di!Z@8iR3~DppOqZ&0k$&xJHP=r^h_7SQb1`1~c_VO@pHkK( zeCgHF@V$qEH!fAbxwwdR*vrN)3Cz6V5fC_pDkT*xQ!`sMFhWFuvw;@~GFtbT9uLDF z$1P<%2ZtpKJ-?bXq#efhLhIGWrnuXLg4b*ioX#RJ;17U{$xz#!L??(&ArQW_loSkC zjqe3#*u*ZnrChp8N|VC)&=FwJ*ei{^5v9p;>IfxoI$Podhw{JfDCW4>SQxf+hnZP` zpMO`l(5H- z=P=GiG@2a7E`akCiX;$RZiRQY&TT`z=9Cm)j14RGp0I7zO-q;b-pQg~;^vWi4!apI3LB%Kfwv;}+sAcWX*_Q2`?q;9u;{PGcv9zj zGx(By*c*@aoL=3vRbb`Sxnk<2<{Tl$wVE9A?%N;Tx?paMS#BahT4E%Izjr77g%AbX z74P@wsQun_VpN75m+qQZ$6LaG?2)o>qKv#fWe{9s26odej3Nj3B)yxj`6crsZX-f_ z;}s3%XTB675oJ^}jO;8I%M=@4;**)Q)eZRdmytRxA$LG8K$enl~(He}d>=U&nb z^yPEDegy;=1dpIThdYOP`V~0c??R?_Z4D+Ob-<7%x0EJyI>BZN)IRXdpMgSW5DMtH zygCj?$|{2v%<#^rco)BtnF3HNQmEaW0cTL#Svas#Hy?brP@`aEwI0kfAQ%F#1MVay zJm6eyfz&sil9tf`4kPMjO4*hoLPma*Pt^M#UH3eia0PFTY+=5Buj-V^T$N>q7 zmTPamK{F!fTF93k!FS+(>AWhx3KmBA)u3++KO8U&A+*nilmvzu)BzK}ep!@iWh*8; zg#okcu|Q5le1RFu0A>Z#E!_SvP8VFxU#qH`pdNuu4d{`e3P4vGbOZP;oCql-pl1|N z*div%TlsLn?R#&4BY+-D2s&KQHrkvFC|odED=74WHJAp84WdfF=&4nBCyW<_uM^Ua z1wg>(xO(tQgTo7k-3Cgg!%YssE7&3N1C32n69(L?#x8->Vm)1-fclt_@BpmZ3&yU( zb7mAV3;wU$lVUd<$HrMa4^J)Ci)414aLR>*`pPh6hxPu?e}1PL)ykDtW8>m5Jn47!DkVRDOIG9HZ$&bzaNDupSmpkqjQV$e zbTNdm!4?y_UQ8e8qF^t(6L4P?utRMDxhWQIS5}H&Gg@ib&XEEOjk-u#aak4Fyo=?}j z$zj)ET78qXAspO2jZ0s{Sb`fg_5TrWstr|*CQYQCcqn+Q4L*ND&?@PJs`XOZ+w>Z* z6?|~sP!!)$F%vq_Xj^7>6SJc9@It@IGBuIfYy}x9!)?PWSWB<1?$dE^03&?kgW;7{ z3LQURGH##e@puVQ8kQFEuOe7rFPdXT!Vdr*xUFuS4u&7`~sc0FDJKJ6Q{V&`@3o$5F_S4 z%=db6$I6<`X_xlC$|q^gDoMI14P!9xkrC*4SJ(IgwmfHCC`s_;lZ4!v+emmMR=7=2 z<32$w*#)CbOToYIUnT(a%^q=62j8P5OiibF zrVNPjMSrLrb>AnG3+j7y8*1!QPfoDB0BW>4ymgJcXvaeW!4&q(zp;1`uj2_ehM$k| zjAdu+=S(3766(o&bfMq* zFOqvlM4y*cr3kFN-mg!JJsB`O58#UD`Tt&k&@vrkJ_X9aXMDK1KMnZ>SASw%@e67) z-gEEhMjDl4%f&5hPb*0Covs?l?8vy?Sk-n5)I01qNVenh6=wdzS#8`igd4^1@wZRn zjDw2vkJ_UKLhCcKzGeC-oZ#CB_HKGwlq8%Egf^i@9zM2$-i^=GSTl&V8|&n8{32(M zLgBi-DnAx{)^LOl3el#n+JH#bjCszy}Z*Oh!GsVQsPvxTZCWUcV-%* zjR&{}ybi|iv<&SqI^11vq$&CdI!gph7vBLuKS}M53rn@*+&9zUJk|aG|Bro=ad49Cy=U3U-h0oiq^yjLkQrrUlajqM3Wc&sS&>avc9|i2h2QgB zpYN}~x~`jYI^O5?dXC5A{z!Y6Vy@JNU7EE6S3*oa0t>C@QGms=;6oR; zNeY}b5@j7P8Y&JxlJr$YvCvlWD}%^@K~>jt-EWa9+4ST(Py=a#s}w*`U=VA^UeDHV z+p?qx{zIYLe2Ih6O0>Jti=W0vC-y&@In^>3zs3Q_J!);Qd@2t7Zsy;DapY)S!>@A3iZx*#-Cvmo zIPLq;9Jv4c>8rKRh(6p`_jBg>VYe7Ce;6Ur>YHcLezf{oSgj)%XI&;H8~YtY7U!!L zLderLxi0P}y#lJ>wvllqnX{luhWY zR>5ENg|xwWp9Ub~#j87pCjgzeXm}MUqA;@HM!3^P1O+JCE9nV#P%W}_K{2T<7neOs zR#WXhYIIvmB>KZ=DWZ<;XZod%uirS%3Y>&pW({9aNOhw)awC+fr#RqXOTpGFK@U^& zu#|0$9yFQ_R+c^Z%3^=!Ecr%Q^m(|cz4zp~zo)pleRane8%xf7YQMfrkOe;cCX6*h?QaUccNqB-Cg zSlr;Cj#Cd!8G@qqk&h3AzMc(4W|o%1eSUlv6gID-a-S(2=A$sQNo-xtWVhewv2;|))C z2U3)GeK?IpVih7xFFbYAayUJZ1f*O6O~t=t_J|2X=G^rNUm1U~3D|hA&IN(4z~-Wk z1uH73m&0|1smn@A00{%@7U^tKyPrRPu=iY-=R_fY{rXjVyIfkpC>*@C$x`&Bh1HFX zQm`aNA$8Rue3VQceh+dz2m@Ar_^>i7sf$x>DC@tBLJMyy`ro{=yWfDr)fQYVfK1RQ~H()2;3AboeRs92~2Llk-(h5{+z6Gp~x@(xXT zWdANQ*GBLN#^2|#f$8t=9do*7aViY%gyofztKmo69ya z5}V6)=~RU|JWfa~yi%tSGMg9#XRd50W8_=LJ9B>FC{!#nE~8`klW0M<>RcvQ!;yl! zi8WD4il7E+tXi+L&pfs_@_e*O#s0dRE-e#(JB;c0tup0K_>tt7GUa@0W12H76CGSm z;5be8XnM<;)$_q3>aF%+{kxEvM}WLwWV*tE z3r|JYzj=H?nn<~Vdsqg$5$!&uj9rQ!67n@?>tTsgh;BMALLTemSqGI@Cofay^NZKZJ9>z2 zsn}&?%j^X#Ek(t|Alxv!|IvC`4b;nkEC>K%EMj0}#OrK->~L+=8N5*du!V5%a1b5r zVm!U<$t7p^lTnorXAJvF3EDXD^Goyb5i^Yp4Cw0XUxz*es9@mW2P-c6$`u#`si^Cz z!>R+c>8%j>2A)XJtU?LCG2L(#vue;1n@)N4sutA0?&6I>XZ~@EfDDAPiOTU9APF=y zG(GHb)41BmiCT|*>4sJKH__j?7sILs zFZv(+N28USmDLP@rQE6}Ag8#_ahSboq7nRLU<-vpa1y4vFO`vC<^`YwEP?~zU+tF# z`GT$v4pczYE!NA&H2(lwgv4uBCZ>4|KESQ%O$y}W$e;;fg!+&c^WOEPi@8CYk;JM6 zpa=MHVTiTRNMlkb+{NkrSD5tBG7!KF)^%_`VkFyeO0+QJB{>=1T5~=*)aFuF?3D5~ z{Gsji_F}~*UU&HZBEiAOq0}oP<@j4`R*n|ygGyTa?M>hN{uO(_ZA{}#*jp`EMu{yK zm|TnD`97$u)O6A{FPvTR!p6X$E4FJ#1OK+=c_BJAv-0&HXL-E?r=nOJbjR(?iIj2b zo$a4;5g#=Z6O}`3#PAfkMmbBi8T@i9TOM7;-e_pLtx0FudHL~d8RyMLi}oke^S37( zI43svep+%By{@$ADU0njox{$cQ+%&0U_4q@Vix-T4gJk`udg6nH6AXMuhe=F__RGW zkL-zxPHHVGzPTpyxH{oMF0qw_kXCUy`uc-}D+HH~lTC{x%Zcd3J2pyi!$KTQ(;t$Z z2T=SeO^Ui?n}v!)v(nrVzev4@Z-BHh22~zA8l1bNYg$SjH$*L0}O{+{5cuM_P$RdjJXXBsd_x}CM%>D48JU4$2 zxiCXOQ}TG3gWHwpsvd=t1-HW;VPu38lMLQF_E$pW3;A(x-?apd2mG$WDXa!5c76Q` zq=Jwsc>pF510Mj)vW(Zt0K|OYV~4_{j$sNH7e}HXW_`19S371K92l4-ANV&8B-77V ze{dvrS4x3T7XAlJ-$9>m9k@SA!LFH;0@MxzbUVrGELX}5L0fq}Ju(Ozii5=>0d{C6 z_F!@8UbQXl@Cus+sS@fL1AFRlHv zyU0;5aXiw=5$ZB-Iu^XLeNAWjq9(|fsSqdR8>4A2Z|TJ`4ig9ySSni1Pl&~S!sY|a zATR`m5EfRo`nA%x2pib7gNX0GEUgqO_CPG{A(D1)WrafVh7ba zNZ7&?Hs@oG%vt>ErAD8xB<(9si@nVTr`c}f60ymJtDlWu;gw^FoZj6-0WKQyoYa%G zHwq#R)P7+S?T;rOPq|CiwS(5(fS-Lq9GQw!8zVRJCiEX!A^3xQ$ zkFo`~^z_!F4NCJ|7_KfUxgk~M$eHs*a{l@3$0^ph*;_e9bG$;QC@ID6L{zS?D;XJx z(^Dv7JtfLRCq2zsA~m&i-+S~{Cf!=t_P+n?g3@D^ZcDzIe?RQ52wl3OZIY__bc65I z!z*#fAx91e7mYI1B})j}Z?Jb75k_N=5{V=?PV^tIei>5iKoZ^f%K}@K zIP|8b2+esM&K0CwF>Ro?ETioJ5>Ku*6IiVnIoNT^5J4;|m zAj8VQOXf4hEjLS_7FBx0QR@s6fn;iOK1*qim-M4cyY4QUlLDiD$gPHm;J8I7c7Uu= z$k`3%8eNe2(a}whjKH>Q|2uT`_+g>?Fk%8rFc;-xjig@>>sZyUr)id!GKcS7yC#{r zOGET*eB4wHWoTsC=<5Lv9@sU&uoU!Zr7e8RNSF?p+b~YeT87aq z=Guc}AR{B=3Xd_Zl<&a$J|Kk*8M^M>yO;Xn#ib{(SS+o0EAjNW4$4!Y?1U#kR72PL zz9eQ7hsm1KdAF8ujcEiJ1HjG-*A=H-@;e8CfUB#kwEvz1I4QNY<9hFDfZ9h(>w$|4 zjOTXUf=?~9h8GqW_m$*|iX^{8eLXwC;@)emmtI@jscu@M8pL8&I9APyR7W5>jj)vr zXu?hcH0tX z4>PXMcdMD@_2WgblyF(-4K<@^$ob}881mT&;S!VU)v>>A|NUS-BvP@Eij0Jd>Mhba zGCu@WNIS$C@&pghSB?b{$w-3mEyWrn*6S<^0jifEV@wDl5Alkb2u-2=`87860{R*X z3m45otcEL2h_pqhld+L$5wLtl3bKWu93D`klsa$SKUsdQkBb&3330XvQvops)#z^nr$uS-Q&HIh9Jgs5X-8%rv`xO)r%fs_xq*E#Z~e+o$yZ=%Q_2dcB{+c(+;Sh z^XK=x7`#k!+wTmjFe&E?p$Q?_dIp3RAT6Pmcz74?3jitX&p&5XI|&I}J~rsQsf1Kw zSO3UBkj>oEdvAER0${fw)B-Z}FTZ9$)xturR$AEv4Po(MX}eD^6BOX$@@IAWro1W& z_snO{XKnSwu`M>AVMT(aM_@nXR-#Z^(8n;`TRL|O3Qx`PinxwnB=)-f5oM>&Y5XQG z9qe`Gnnt_2e)@z#(0aWZV~yWdT(wpulpoH zZH`Om=~sqBo-Zks^yQnLe>n@02>B!%lAe%63r%s_?AvxVHL3v*#T^vOjQdzTleCD@ zqV#HLZj*!F9vs=6WA}pgTCR}SGQVQ#CS!li~aTeo3CTP6h=6BduU?f5tq~j4L zF-k|@WzBhEB>yRSS2Q`}Zdn>da?EWl>T5|A<&umQC3$&wqX`X2hJTrUa4Wr?|IB2A ze1m$%S}F3HFvYdoF?d>zxpy)(s~zUPL=H2mj}YB^{Riz#?eUR;e*-5xNuBhE;+#3t zEkYkdSvASpCfy0-S(WWHR`H>{IZwSyr0@m%M=15=L z31dF4tRsXWWtdy$!W)Nsw$w%zISzDf*8^sv%**;V9v|1b8hci>*|f5yZ07(1fKV_{MjLY^sU&mXkVBb zgc#bSF&@ApJ%{!aKTIxbx#q!CYG&s2KR%>gK0Ljm^ud%Dkhl=K2GHRDy4rQZlL+y{+58ZNC|BPR0`P{T6H@fxo3EEguQu1T+bQ zTI9jYG4dD}J}f&`*FyXjGje;8vM;@FU!(Lb@`ykE(5>p7B)|G%csSt|Uw3DKlfQZM zH{GN*()dr41jH!rBtH~BarbbvL4aTop@2$}>7gk3BVDaZ&cS=h#3Ma8;bJ?vvF!v# zCB6xluc1)br*V32$QSq4JnY3~I~IE=Iq}hE?9a*Oobk6Gbl`afq!LgeLSjZK@DRBh zudzN4%#eqM3}0YzufPT@XF%_z{DZ2$7w(O`@d-vX(W}jEM-E53Zgb6QiP3X!$Y|jV zMnxjr6pahb2r~J(=pxsXwIRN zO$@W^clV2_8n^hUs8x`)?1I`RhUDLZ?ZYR-Zx-v#gU0$uR&$-pjV?bATE)yi;>vrX z^2A~73rF<~$Z(%90z_u4<$QG23xup7H%RtrxFsn$2|DyN?_eYtV#ob1#g@;l_9^S3 zS(?$)Z(OgZJtLtz88OgdV`rBJ-6}N1fo5_j<}W~K76Sb}45}VW(Sw|R%;NU#f8ZVl z>m)3!F5+%(`a+^TFzI+ONvfb+wej-W6F6_|V?;8YAN_s%fO?7a#Yzez>tq!ToGqDtoQUCmr*|(H>8wZ@PJMqbVgFQ4PPUcK&T6n? zfaGB_MYn5jET6|;<~QLTwu+pLB(~uLE3EJvK^x5vR%uvFBR8;c{!$T%;zmByyO)Dl zns>BE3o3^oLc;P4(NVen{u#gLRF*Zqr!(MKtot6oTDo9!v*-Kw3?Vz^)1y(??SZd< zpf4&jEiG!2O4tEa2nd!>vmz!*1waB^xd!CGqF|(=9<(%1&bdHs{qjvQp3kS9q{g&tXd_SyJ`E5b2Vk)OaEhg+&|@hpDXo%`k`3%Foih3q)_aYUR2&qx`{1xRF+xYQkC8w*;8skd<;@ie+~XW^O$y?#hErQ`}-*^i6er$SURmm{!z zv=_<0|B>rni(EV>pnP7|DrH2#`j&x^9xjsUn%6JRy$wnusnMPD@Vy zx+Iq=SKLg)#Aw9MGg~To{V?Z4YmFF>S;FXf`oVK15tl1ppT-qC^PL~1dMtJd-T#93 z^rBVZ?7|c$no`ZS)K0AE%$Qcv(zSfbzV)EF`v%RLvI$)T|G*l~^6=h+jtcSytbyr>$gl- zo;RO;{FyanU?(JNmB@9x1hDb2ugmohVm$FrpWFSrjS9iydf6^Qd6mQS>X5#zvKTIw zXJGb?|7@l~=%TVMA*F5JMP6^SbD^X0Wi*Ohymo(0JoySvM(F3d7;Bd5X}1-x?>7Hf z1$9ZVEO>ftZokK9Lu>^5cu?`re$&t&K9ioMpql6$zd_@5e}lD8%y8KMzJ~sbN90rHJAzdAsTI@q zLp?s(+{kZW!U%~mtD(liU31tx?ByW1@yu}Uy||M>C*I~mw&wGHuY~}K*Mj}R>h)bE zBl-zpfQd?cb%^p!>VHPqu~_vsFW*24R-T>?Ro0AZ_pQulz9~sx)(@SC6^q)1#&Y>~B|^oJ~En&(6*#kGR5@ zJIJw{L8>`B`uEly?U?&=a>sXdHiAj$W>D|B425xJjQ?fz>~y}ExDnv$Zu;5&X3t^I zQDLr&hn?6n{mGv{U4*HL@o`R8DG+zfTpb-f#A$yzwi_55eJm;YHt+86dTHMu2oa9e zp{+Kzbp-Ff_@S$4-ypM9++CnHVRCJwhqv^V#~|7faM3(%ati->|u% z8zYVtFQF^3wO_bvWntb}bCUj2j4QVJpjnYzKYi=y-S4k!D{H9*<~se++{4dc2T}d+ zII2ktC!3JOH-p|0_e%!pGSeQocEsd{t3j#y7*ym%^LzOz0LZ%qmeRwSCLuB5^fAk71N8SS z;jHZJn9e+@;MFUt7y(9>t9XKhvbfp|a|VRJt!nS-jaMLEh!f`)s@O~mNeW+EW$FpM zKGOXPg&iU|Ag$u0q;;7p{JXNwlSL)n6v90Bp9V^Me>1*c-R60=8a;hYNe_gWvs)_2Z7DZF zDwuAem4-oA49p}(NHs6zX2L}%>Wu(oQdnM<6RnRfteWKNsm$X9L^ZO*6s;7VP+Cf5 zm$kfKiIC+oLO(_2IlhMc(vqwvLX^0n%YI7{@Q!TQV$QXdF33ntN=+5L_niviAmchf zz?q0v=aN^wpi{f_R9@%S{s;`%Ep&AUj&(p>{(oEmITzO8`%D}0Kx2c|qIlrR9*iwG zg@m?udIYv^dy9o)qX?<7UW9aE$#=3$FyhwoJkVg6&0L^2#Ga)s+&vuHvcu73q~6BA zgh0e|ky>4|ntikH$ru$zN$mEPgPo)}5i)RcKl*VU$Q~Vg6vi4GRJVAK^$pCJ^L5Ks zd>`3!zOeO62y6G>NYpSwvNA1<~sV0c87X)ii^)eVUy0<+IT^=D#|u3 zpxz)VYG=7V$el(!TxBMf zAqKG1qmtLzywkD;;3+^&tg?;S@M&N~`t#LW>(w*>Jsb!&TKOq!1ocXdb#-RL!T{i? zny8PWNYY0Zzh5o>^zoTXdEug`hcdc+H}O68pmBzST#0A_IkjP;8Ln9&HI}R_*McCG zU&0apCo7_ozx}ZVTqB~6DZ0qgS%MA#o!}8#yO0Q2e3G$2XKVHTq*=Hki)10pv90Eo z*+{47;*Q{w7eN_O=zgxi3!J>%Ssl(eNt^!iK4G1CAirUc-cy$GD~7!UI97eiMuyI@ zpQ?|(YN()$|c4_|2z z0s1#aXx1=&2<{eWJ{K1jTp>+WNl!j^05o|}vxlNUPf0Bu;H#~TNrnar^#lMsIN8{K zm(|Ry>F4Be!r$@I(#OonX$=OG@9%y~f{>mFd7zdSH}KpHF61f%R4xsqFTwo2f0wq? zTg;gb^b*Ve-JD*n(N}mNvFad|}2o5Bu)|B*IoSgKH_MvB{RN98t01RvDIywTJ zoCCreU;^ag=Rfe30%cq#-pScHMquY!Q&d<8$f?fGPDl*e1?dlvdiO9)Z_#wH*nWV0 zoLSX9Z_Z-QZrE(C?fYkH7xDH0NVf^*<~;p#1PPb^%~Kq2Y@uHu7=0gKmZyqTmRo2= z=#hWt4c8$}w6o1{2|e*w8s%hUBkeF8meQVV?q^VvCzcgxYT&^86X{KPx@{veI-%~=X`OoxA2)-@~K zBs$nO7Bh|OBrcWy&DeiYckSYaSDuM*&X1+(3|wbyTPv#M-ri55pZ@vrT`E$Ig8yOpmy3I7g@WZOfpO``Vr;F%~4JhTRBQPacK1<3F z3`GF?2qg^V)TsmVf9o8lvw|RKW0`| z%|ImMZ@&`*JhAe|9rcQ_QvgntBi5K(`^1Q1k`^-TZvT-6V)*4{n??&Zr9 z@Skx4>g9x!n5iJUyAssRo5yHeCR!4Wqym~%A@EN{=B->Rwx%5t4s_zeQ|E#qT8Ii_ z?uBh1`zUF~vm7DZ5z-tzStQIVUdwywP{iJFkm_I6Mr18tQJNRp5=5W~uZOU@VHW{FpG5JIAcLfi}}a7j4vVzCDiOwlOaH8HiD z{;Xwvy-1BGd<8G)Ca)HbrjCl$j-rc-uyC+KIR6$$&fZt6h>9YN)HjVR`yk;-6UY5J zT$mj3mJt8jRrQ(r*(CEvtkS=8B>MPvghLR6q>tVj#L>sj&f|x?d2}$*@kXEMB-sT0 z)a9+WTk)(}(v`msH-$a!G{s-|a|ARnlvAPocAhXILe78f8=TqO#_TJC=+ZSurp8?y z-l}FvjV-|>R#+0BcI>|_yd1xWbq4o#xbCU+XOE2Yp#7Kp(aZ>k*B!e7oM;%G>8o?K zQ>i!&^2A2|_RB&&K@FYi7px_JRNQi`Pq*B{Nlax7-z#O|V+wbty-I{1tS{VGzOW!@ zpYynNR|>H*{Y)R^6hn=Tjld@+lRw`pl3AVo)>Wy{l)Vysxd@q%FA!gl(p?!Nv?Q)A zQ2eMp`3f)OMt%D>0gz!#(%$5xKiKp#4>(?eX6fbs4k28ol+;xA=)BTWaLR8Tg8f|v z&O_t3qc(ygV`HZQ(t(zDKzt%iyM1~FIuoh>&W?^r7fZLlA*i*%e1iU6!0ChU14Qgi z7k}?M6|~w=!G6y!{ub!$;ZRkHrG}1Od-086$H`|6h7^?!g_E4Jv-d;@uMMSmb1cNk z=Ue)UEly$&!wjm~$`nUs^Fss~Svudg#RxxD;J;kYmYrRdR;`O>8~P#02HPj4@Z?(F zn|tnve$Qg!CMS8_XLL+YWmRuU&%6}TMVSglQlW`C8Ra+R@Wg-J_`BU())XgVC{9~O zzI6i`LZt%vCRs?~NoMy5tvmNTHReC$Q^(tVwJj*6+1YuX{)ts&blk9&FdXMf z2*L(e*rmhy@%}FnBcg9YSUOKyj49ggMSPpPDgiO}ih@R+?ILXL=4=`F*-r5ku^e&v z``VgL+3I8_G_EYXN(#e`naqM~zS`ur7wKc|F3-=2ugX5Di<0@Xe+l_{pws;Ixp;fe z(5UDwT-9G^pMuT&Qxa9>ewMQ(&T_2d)Q?AUswFYIaqDX+$`{z2rdC&++~pgj(D4cL z_b*^OIm?>iC)pU2tSpw8CY-jxLL~O(Ptn2c1ypsoxN@}Kjzq=BySci~R681ga2tkm z+M=N?0F#D-2QvMDQVqXevT|{7+y`+7BP6y7xf>90$e#cUP_@DRRtrfE+57sGRribo~DH5aB6|8x}5mBWY-BfdrA6y z7B5u!s6x#Ub2nr0$PgWjHoBZDYBJA7D@_SKboHFSo4o(f=n)t|#DoTlaSN%*u#Zh^ zIE#~)_}?*mYkQFz7xn(QOSn>$m+^HIRS^aWxWH5jNk)J7V5Yp&mb=>8(OkFdR67!V zrgz3p)E_@Y=zmXM*OAy4hh=R6DSS(y#?fBa@!yeICeE6W9w-d2`kBOl0|g2n)gp+! z)@Zn+^TffX(J(CyU^u1cl)afZ!BKJ`)^Z#>;X;Xbg6ocV*QNG={8XnbJ=4j$V!D)>UE z80=H@L3=TU5|-VRemyyJUd902Vn}=g zl@So-UiU5ykDvXyip>-$lD``0hZsOI;uiBUYx<<$5V=8ZuZ)9WH4hp=60y|sQk*SX zpcjOUy0)ESq!@9-LqZ8k)sbiGk{UW!JCMS$ht{ueU6i_|zG*XPc^D9tuZGz4)gucF z4f~)b-pXoe+1xwo&#M^A-LF*h$w^B6K`9IUsqLf%?kFBHQts)Ew<0sP^}-yU%Kh_E z_}rIRzPJxiyxhV~k9?NlOTjGL|7p?m^wME#p?Q6?0*QymJz#J%V z*p!5Mv9)2uS28l1L@9{b!I0L6i*!^l({Ud#nxDM;<4T?o1HCxU|2~OBEy2MJ)8)<{ zz*C5S{#-*#tDUMJ9+8_jPqQ9xs%dB}`ke#b2vSHPX8=_Wqj{)G0zfSSzkn0%S$Eq~ zeRH^|9|qC!sCuxVdMlh}1CiCO`MATiX4Y$1>qPl3^m>CYSxBe^W#fxLuQF)#*4Tsg z5$HW&bMB*{aFiBJ+ReoIFqdX${$s4WR52bt>V1J@rFuyl6OP-m;mb=NR4Bw!VsB(s zLdNKy2ZA&u>R1p2_X_WGq>B4vp=L?aeV=V+_J~8a6cdi2*unV(#_k<^iys}L4bx6f z2suL-L*6MfC7gHO+3hWSG9BUz)DOlET%k8NJRik)V#Cp!S16y4M64&?qS~K@?ktA3v#sqm7=;sw!cn)hbNEqA1rbh|RTbopvuvs(R>mrG{d`z2#WMbJ6#7)cq>sH*dLJ6L!!A@&HTG$)krLG;0Z;LSfmoNm4Ajgpdh# zJ`xN6U!l1{K%2N|uXj-oq0ig9xOlhqDMDFL zBKzX-k-1;;8}iS{hnc?mq(Ae9?l-dtDc6=G9+_TFGjfT)-1bhWc><2_B5YX=g+qCiWDf1mw3J!2cy`!=R3#MPnUW|YIOWTl|QG9PVc zCY?!cpbO%XdZIH~)LY`=o#`4Q4i%E$vYfQul3%HUFmCfxFZ^UJ)|d6l4vT1{AAfw50&yLp0V2&F(-68C59ax z&7Pa@9+ucs*PzNXH}LFX>ClQZ{_9;!(_bNWTaaX&fyT9w%O&t6Io!1T&i?UwAIW#+ zLE`_0CgQspB0NWamy~sX$zKj)q2C$Ea6sE5a6jYhxqF?paAJ3P%?;h%YGE_kih9{F_$U-8;2^_ z;IOz;w>tj&pb&tYKoP51n)mmomY?r|V4vf^Tx_J!70l2RhP(0qbq!(LZwZ*FX2UFQ zX%TYjzW(VU#JY$b!RLw@+jd-=7w)*aQ*Ppx>E2$Q?waA#J~Auw?}u{D0S=y1bI|?_ zP0{qpQ8e{&_2hW@TJ#~q$yvq&=`&5w3jZa6cmU(-m!7WQKi~P0m2Eb!L;g_N3I1A` z7IJaY=$j1cP;S{K`xy zD5-$866H*ncF-k$i!(%C&(zL>T`-7D99Qa&Tyw)s8RsvhY#$FpGT7cuOCNVdt1SN^ zQ+kwa*Jjy5^XGJ7w5Da;@|ssn<5`v-vFAmVzfNyCr2cNE1^&{R@!wC@GIDiZeQ?-I z#TiV`<^5nL>yc>ar~yyv^uw{jFQq;c&)B1y;h&LyBUs}t%gjou=Va+vK*LP%@1B1R zTLR8O8^KG)lDuVCUbvPV)ywozQQhA8W5M&|^x)t5Tx8nebb^n~`SZ(To299q>@zpk zyHhMZ>5o4zC#?T|GCLFGnN<;({EYgL*WdfR6vtJS-gD9ZeQjofv=5@UMq1xzr!Au! zB&c40Wy8d6Is(Nw-aW9k3w7I=s^GT@%rWDwT{>^*EXed9B*T~wE^~&I>Ph76AaQXb z#J`{SOEbs~=vm&aNZU@%Mc8ulx_SK>C#FjFoTlyYQ_aKUSL?(+mG*WEN?qd|+cXOv zNxCtJ#aLr(xb$y7>hv^HB)iYA!RK$Fz)#|J>%d=CW%-*8^QC1U3HbeN?#cL#W=J&n z|2(glH6!_cx;$lV@*+h^-OQ3@Ljy1g)!UEA+5SEe#^{>EuVgyNp|410}c;2mWh@!F%o__K)S7tj- zo6~l?Dr3un&zhA#*!MdNRJhOlZA;%aVvs)T=4imr?&g8nCDk%g-nP}pd*<1|ud@bq zg3h+MuE>ubQumZ+cVqibCH3D(Uk{QD;y$zXQ{Uhh-A>zn?(V@&ok)o7>Ga4=Tf=)K zz{2YM?A1%GwiLZ!UmJZ=vbe}Q<`=mVlmkvR@5~y`)B7uYuOblo748I&83aZv@9(e0 zS~tsVBzIyVX!ARd@T*^7BTy74MEqV}iDl(G1C&xn<&}ndDT~RpcOIB%U2nhotNl5x z=^x4oz8VX6P7@dN2B-Zjqqnozh`CDgMs<>_mV(8Po*?HoO|P!KVB`1w{mrDJcCA|o zFXQJ(U7o60q)wH~=}s)(dX4K%)TdheNQa2#?vHOxD#}c6ZJQww9*{&;?E z$$Ir;Nn#{mT~3O>%)k=yw?*el@M-(P)rXGno3bBzn|rfs0|T$;TatT1LY&uM z$?Nf$g$0~UH#V+N@=08K@7ybT>yOjpLxyn!!aQ!1ii#90+2r5JN-3);y$jvy4wJP` zFKL9WH}nqGE@zFC403kMWxtE+`(rr!<72~5|Hs-yA(JKi*1xj|`R!Lk#5AKTrj3|t zF0JxfyG}NAnh4IXB{nUJ)aay6jUrQjy$e5yU5`JiFHM3M(RV8-t$c#!d~?_d>6Amx zos8%=YE!B3U=6I-Irhjl>!`pHt$Ke`7MZ(OP_aNz(OvnjbWLDb7~c7#OBvgaYN=0n zwx|xj%edBgln*g1QSxTXG5EB8l49lE zn{_|?Vo@tKrP@@_%iE}wqR*fJH7t#4Y zJYbL(daZPSyEiyPXs+`k#*Nm8o$@6j{j0!vQLcHCAq}27R>&PivK^|JM{aK}MXg18 z#fX1e_$8J5bx8P)W|lpY3AiVkAZm<@Q$}LR!kR;;$*Q7r5d@B{R4n0=xA#xaFiVMz znpyg*SI6Y87YZlIFxT~PGas{bChi@y>li1%clAo>q!Ax`V3ScZUdH>$<*@Lp`+Skr z=nb3i)z7U7!V?rCNI-(&1}PbeVKuYGQ%81UOfY06#Ek(bLkX=Ew>W9tP6fk!4744SzYP&mlh4`0F*BjY&1yxUZNiw$&#Gn8 z3R!5_UlBZtan2a1-y9j0VAH3=D|W~Yn;CREyMKHv#E<6JR?>ie8nRxXQp4R0p=i@)UVG3KDb_B5$g5=|G=vtgm8MPHGAo38+O~E8$z|deY zPYJ5&SCZbPvs>1+?zZBzqEtkn2?JNSd9C|A%z7ZN=M?%HXgMJ{=czoC7RDc;97pSS z{R0@7G1_*}j8{WsBPQ@6_j6>0$a z-Swk6Aj1b8GDIJk1C|QNIH1WOlLx)|HAycA$OpQ))kr~vFA>)O26@mCz1sT!W7UqQ zk-R+^9Xn*crDtZAr8iAYm2nkvd=X3@%`;UOM}0}+Bifdes`WaKFERDG^_ zjfEXxdl0A(_t&Em=T!@=)E!wZYhK#Lu!y>84et>xCub)QEk0&d^ida|VANs*Ba@fB znQVymtLz^iapkclmpI9>qpc^7Apm7*z|ec_rP{V@*hJxAGkuHMs4#BNklk0Rtr+UR z(a{vye^cnBL=#SaXm8$Pj=J~s){MAHu%(Zr5CIbcE~b3+ie z1?0NIva&`m{z{1wB9VCVBH^6!v{QDkSEHA~q6Q8Xkjzyy?sS7p2V_s+kD6y(3zLfwY45SZf&xQBLyQH(ssb~o0f8E1O`RTWV5pCrg_O_jA?pn`(iu|KH+q_t zuitOV3oprZipBqSuZ{3&T6=NPZn&OwF6`wF_G-+lFU`ul()hqa_`WW+xjFgZc_GF3 z)~{}xH3jCh`3A=CwrOI0_r^K%w`-Gi^L1zBv!@lmaGT;ucHId$lU-^MX)aSZA&5Fy z+39|I5oqffaDtOx@qmPoUCTi5AnJ+E+=pV~o7ESGv*i=C*~jjVCHG}40}z7aLOLQ= z>(`VtsMGIS+XS2Eed9RUEBBE3r!+$GOPj1T&a2e{iljf#O^xG>QS{cD zwMNG_y4x@DCW5Yw2s$d?W(d1pSyxxv@=+dj)s1Ai^gO&-=we#M{Od2!byIDt?4hG)GZ3|uvK?@Mo8}_FZ;=%pj-0x-UrYHsIj+Z znlM}zU@vzW1%6tC2LYJ-^O$Z5ADFd6Lqqjwp6EPABmoI6SW7!2$ykgltmugFfsG;_ zmu&9`7N7n7eHd(R_=t&#F-Qm0LP!wYPY7_f=^Gg-Au+HPP)aSdKNr!Wz|F0%2jZq9 zoSDd6pi#uc#8jPTKyOp=pS}DlGY|r;;ikaA2-DIaESur+AEBaQzaGAtcd#G=_YdZ> z0PBlBglJAZs4?TE#6bNq{JfvAfrcCpc-Y!HI()c{Yf{97g?*c5;B#hL_5&P30%n!J zU?X3Ya_|0qQW{ZSFy6qzUc0CY0-|8-L)!^j%rkguVJF!8pYOE)vOuFC2p{21032H5 z(ZX{`L7jqwHiCrC95evqMKd2&7HaXZhh2(+qBxzcpZxbG(0AuruD&gvyi7Af zO3ECr`sy=}onFG6W47bz>-mZ`rVWM*I0_*pPFtOxAFH4_pl9p+|&o!0z)!(PRyj!ilG)h=Muj;Uu&d_E;x3N7s z<9*|yPba&8NesoINZ|MalJNca2dBYccO4LI^ff)7n&sA_H+sI{FMLdk<=1PR@oQnj zgSQ(wHQj^AAF808E{}EfdL1=jM<@7zh-z#!>L=BBopN^OBvyVlD zQ)N3$PIioKe5*=qzC12O0T zd&OpXqZfc%S>(tO`v{IM2!{lt3V-wh3}i9XOHg#&?LvhQfZdCivd758^7rmBc<>8# z&JZCaL!5=*zI_7-GE)jXufQOpqkAAs4XWz{$V(;y@ePd3WSXjksA6{0E{_rQ*xc@V zr3pbFVDr2}K>?vKm9U?Lv?5*+5pVcX@YUw(b~y-xw+F~{RTHdg3w}XBtbv*1Jvi~9 z;9$W?B(aGB`_~~H|8BF=ffJgrYloGpx%q2WH88pX4&_JLA7H*Rg}Y4G?*rHpCZA34 z?B?g?A#xfUX_>$W1X~age8X)s1IYE=e~@ZsZ`Rk{U1?q>b8)agXz{qh@iARa50T6p zo8?M6au%-eq4)Smtd0;NBo&Cw7z^kG2Ki-7S=(%7k#~&*o};mmvMh`d$OROeA<4QM zZpqpqiLE;0J1pg#{_zojbW^c>R{dS)bbsWzg7Sz(2BO$#p{7HnF81FpL(}=Zh0e@- z@BPQ^XFm$>|9x$I)gB9>>3A>y{@?Spl64<*dnGdQFLoq2OQ;Sc$aA|I5mG9?+LU-P za+F8!yKG|wmBTy3JMpz}2yL$*up&YUJ|oH0?O$+G>k=YE1vJxrS?22`BQlXvNK;BY zdc9=j80vYlSC_~*jSO``?E8(JAw`j1ugz9#E_6}&I}09yg{)X<*cTU{gmp9gaP;@o z>Hq=rHEo}do}{aDv0Ifk%gmMs$^7v;KlpTrZ=HuR%eb7cnc*|t6{f}s4dLxMdFc*& zgjSpPrKRfV_M;+WxLa0t2Cos0*lmz7P$B(01hbpXIl+T6uxwwuYiwJ7t7eK~x z7ykr5mbWGX;kwSw&Jb7P;^Ok)L0Q&~8#i`glQFvCkCEiK)(u?c#Y|;kxGliL^E@i* zQp8t0JUoLUZA{XY&!6#agPSxUso1gwCEcPt2Q7&wEe8@C!5Ge}M)*{ILxl)Bi`(yQ zS|O$#9&32GwVTWwgM!Xs@_DyrN(C@kfMYJRY`|!FfTSZGa0HCjI`BCHCFzsbs(#=V zt-FCNogVc!g=k5j3N)def*y!kbfSMYYneW3#z*h=p?R6aR+J%|LR`7!yu3q^B zXJTbJ!%7Q_QoYm$BL}mb%;*%ux8eB_-tGRl&aDmo--5CDw*`=c_h{J#B?!_KN37yl z9|kueixes3=O?jwkzFKzmkNIlDHL>ZSxMy=XYh4uYUt;CKDOw1-EL1HLc?Lt zhNR&!S`_-%&fxZO^oQD6W%RqH9|EP}^amhyQv?%Ly2dBEc%F&#Gi584)3&~%4eOQo zRh+~=Kf(_j$-9dUl#3>~ogN@=Il}~LgE60QJd!}xRI(vLx5^0om^4_q}!+1{*M zK7q;%K)jf1@APmB+yY>>f@npl{-S~c)ua(Q-i}((ec!zK7-U@dVYZMg$ezq4EuFP| z4B^1PFfzFhca%W$VQie*Y6I<7BP3%3x0fyA>-@vI7-e{L#2^C>Zc{j9)nY!h+Psnu z#IV#L*NOm9T51I$Ki_`?g+6|pY)R<<*&$_r5DIHKmjyLdr;^+js`A3-M(|HS5 zlA?4LiS0PN4zZV>tZH@VeKu;s;ic_${nvbs9OEywuG$&xa&g-V){7)=d@(fgmdvE> z1l>tTXJ^Co=8qpgR#qI;l7zJ&I+1D-1ZN&8IvGBD(%Jp1Ud-WOk_S14TX#LIgDrp6{hfUlH7lcmi_}Jj52q5T8SfQ^(pEQ2 z3efMzE}{_lZx=TM!cj_s(!GkI4}Tsq3qH}jc`^n56Hd7Z(g;np-}wR?$1f{Z)6-ud zTB)B>#_e8#HX?2je4+mpl=8qEz>~|7{s!ZT zr?fhT2SqYxYDuh4(}S%a0Yfi4=B=a`GbZo?QsiLXg0}o?2l2>PExpL5>A^Z^YnxkI zDjXr2DWCT8<;(1B0kt8ZF^B`n?gT$eCOC)_%^Yr8W-N!|Z$5%2+D`#4 zmdB|Bhsqo4!RcWXPlB&~Y1*kh-o@S@8gXqT#9!?Eyc_U8Nds^qKowU9sq>f~54=S1 zxWZm@(XSb}5tPq=gDRL-(rX1)b_@Uxg?of2`pySa->gom{~)E3C50c}KphXyZ5}5H zjp!e1NbEb>Ui8b_g0(9YP7D`EDu@AZpsEZDZ53ttL!udAUDA8mk@D*5-SCx|(!FAg zrw8mzJJ9)N1)Z$wa^fPSv)uqze=A>Xn9FYMFa-6NL;d0GGg{{GSgAL97s{DDj0gl> zh(dU0+n3hBt2WN|e=pV)W%?-^a-0KZC)u%A7GuJ>#xB^|M+TR?WXLVDgQs&wsQQ>b z+nt4=m~F_CsoDbj<>`=uomh&;T&VlB3j>Eb2}h!_#F9SF+V@nl-?w^8Q+wk_)Fb!I zW5kXAA5GsKPi5o&f5Wsei0vQ-F~*&>u(_6o@^Ga*~# zcb(_+{q@K5^y+mwPWQRTb-kx*!zT~ZTKpkrakW6Q^=k>;6+H1d)g_M@CWnW?MlV2< ziYwUNcHAWZUD{8M+`XQNjzYerRKrYpNy*SE{K>wbjOg(-@;K;z*l5ayp2M1H zBcch%SDU9`8N`&3Pur!jM*0Sg_-ys8y>pllT=5bIS)|j%-k!_@x?$oSl9-coDr%H6Xcc zon+xmff9Sx1smbsnXHbw>a3OJ!DIt9AhXc`I|Pgn(ka=YgM6hgBSbCMAYB34R-W8} z1y5K+~>7yb65X%1K zwEdF>=aO2}c7?M^YkBYkeVMOTp=EqR!;~va1nv3qP5;O%*X-RS@Rk|c?Q6WvZXLxa z6+OG?^^hRybkg_lJU|bVcE49GLox(b5BjIC`w@9Lw468;1_f>qq{=t_=(JA~jj(#P z86e3}xMzz%*qoiydPzS<(SbS$dNXJ*M?uJM&$5&gpPg5?v!Z9^KFLU_>$horuUA|R zHW%M>m_wguo@*E?d}1!L#@a@amzNDRos3r93<1bGCzE?AT>XAA_St>?}C5O@D&H;+Ubp;G0w~# zV(QO#M^oxP(2UKw?Vu>;ER_CCDZ_L-V}PSWZ!hFSjeI;EN$xlP+q(`||I3GsipP#$ zw$eJKr4DoU1(AIvUnFf%^@2PRBU$Ugh51xJE^0de{8Xr@j|ePy+P1;<<`CD@F@Nq) z?fE5yT7}p0m3NEth3FgO>+eVH?3Of12^PKDjj3wWrfnQ#N{UYw^o(3pe4g?2zc@JAfS2pN)8nO7KBia9_KPn{ zDC~X*h3ibQU3!3nKX_dKJ>}Za-`T7EKf!T?_M|~uu2@=~zA{2v8#fK)4#a(Br)T_+ z22JM z9vSn^e$_*GwD-ZIf2bshB7WfO3Y3T*u^oG zRiAwyeW|6H+dEB34L#E+l}ahy?=X; z%hDgRf6cV0WW6|&TjNcs!nd|HdU7f_NB|%(h}l~Y4}BB|UvG1ukid|r7)<KeV#A0WMqiT;zy6lR@lO0#m1$3=EnB`%j4ULV?vL}{e7FA6I5+Sd?-!_9|>a!C@x4kDAG?D@{Blo)1? zg)&*eZU{zq7H5w<3%S|jfgyT80?yl)!a)#jS!W{D{a8MXX+ji?rn@rp!^7_$PL#la z52|S|>FFV?h)=OAURr7%CwqmY;@P`}*)H-%btZ;btq*k$%LUk!o0JKU2}a zI<9&+3i!xKH)Xi#pD|DDTxua`qqFp`Ihm8idSP|&J(8hk`v@|>zHc90kH`33p#9`l zN-cbEa4y6t!*c{i8zrPaG?hSz%B9EhPEMQ8uHNBqT4PJR!P;w@QUK6WYfFnP0|{6Y z%s@V6SbFd}h6#KO+pvYWxa7cQ0LurYW_KS0bOU?6KeQ<+>j4CCa1sQ`6CWV9cn;7i zAduc@rU8;^;W;2S>+J~;>if^@`y_$SXORd=%5a+%$~fVA^|UtGcQTZE>FZOa!`|n8 z0&Ur1PE`h=q}UAN9`J0R9ZLt$+nL!ZwGa@R8kW;j~aTY;olOlQ>y;Pa_}v(M>I0h=S?Pc zW_e+37Fy=V%jP<{`xDu$juTVizH0juIC6UWiH*PJR>H2`KaQ=)@{YNQwksc{r)WRZ zYpcKbO*&d~pL2pTAn7Q^gs|dwl8DWxehP#(Ck=Z)R&nGSj$fH|C;LalK3%M;mkNF) z3NMnZ9jQAWtfYR=8z*dy07<4OU*wC0VvSwHu?mpBA{kN{`x+bFD7Qaf-Tp64;1#vi zce!q>_t!(Kford0AWMA9UDAFq`zlhA1?2}cT|zpA*2TspATLc0$1>;l>dwHAnD2w(v(f3S)kfAg>E{(db4vChuiN!cWdk_lDcl9c)z0A8#Kpxyr3a{`n_+UEEHh4pxM&dP!j28m^EFjfRfUE2qXimZ2E%H|6lLI^F29iI-S5pv8P$7PD522|k1*7f9!q<)_SKgg zxPaENFZx7nCWmYPk>FR;=XK)>_}oU4W*IXju@X+>z01U3pb$=+G^d-XJEt1$H*m-E zz722Ng|6$bVJTxb&)CRG?;O-iv=*C!gBty3U0i`A$w;p#WaHVgdv6UE2MX)VO*6WNZPHv2tWZ`MAQU87irp*oA1uQJFk z%WXV4UGucIx!+)W;<97K_r=8F?rWiS&TYb5xSmV>>4$7FgX}m=PFpbt-t?P{*!3Lo zheSdZz3~c!0UvI?na};HXg(uxon(5S#Meq@vM2vhw*I^;G2Sg7)epGlWBAQWViwwu zLI=NeQA^*A|Uzm6m%}#!ABKDN?+7yEf|}dc25+ zny<=i7mCb1``vZgmP9a9pSzzd=&%1_^51`tKGpxs_Mn|Ui6o$aL~K}aPoP?PAGSZ`@<~7=ZmJBW~E}!a6A1G8qDneE|jM47k z8-jwi`ihF*n1@Se90rw#f+wIdUqN}JRL)=zQ{b=4&~vB2z`sx+0OcJ}VFy04JKAFa zpQS=$fN%!f335_W9(9`~mXP#m9t6rw-1+s+`mzMuI?j2@Jd)F%RsU$TOO0tNL*9EYjiWG6eL3Re@Vhi)O zPU6XR$H74wbso|bwJ32J?Q)w`T>U$>wby(p+u#Mk!lf4<=sdBxI=|9gu5c?coA1mj zc=g%daC~yFub_n;xKG~&qBCaf zTmNqPxiS)|M}*E38xuS@bhHv2lw|0k{RB6-M+`@>=`sRx0~K13O(>fxxW4b%{ge?Ly|rvKO7WHDz@i0_^|z?a?+#WVybnFEad7 z{?NO99UTijJrtywg(5Btq5=pA(2@R-kGcBuC&)ZJ7$p4v*e3Nr2@_yI^{%qw@>Kz8Ad$ZTP1#|Jadmq)e84B-KfSxO_s7` zc1zdVIB5h{GHznJWH<^ckp~N`NOWVSDOHikbb|r16l+EDNmh>#NBKLJbDuVXLQ$6- zuS6N@z0(|Bh_)}PNNaYcA6>e+k=i(I|2*hvfA`_jp95p{&)$4(V9|D>>Y{5nmsikN zBRMNOJNO(UNBjLlLzm-GoZ;s@9GvS|1?&t8Tr4 zm1=4YV}>^|5{rdpuW{C~{wYdLbU03oyh@dlZM}VQrFy^Cj7LdyTuG@iA_rNr zwB_K)ZJrSu`HEzaOmN1ab89(;jW4An@0Go)f>3pT6uW8JuRCG|WCd!-;~yQBX-+Zp z3$r;Wy=Rpr``>(KspEL(b>`;q$Y>AmKCO;-m(*(8UwaVt?+t~+6Elqzhc&S)BrzSe z*KgZF9V>B*p}})5_SbX{A!JIIo)?iy1;-bQXX1AiYfgHb==iRW(ae(5jceOEOf*%D z6{G>MQ?%3r>~e*vlJt=7s30k8Xv9z*s{=MgednapBxV3^!k**1O#U&4cQv^+s)brEl7$I%8Qifm?^-|)x-w(aL z8yAb3KKZ&x!O_vbz0}&nk4}Aj$Dm-3PElP=O)V%$W~-TllM~L*@reo9KfUZwQ~`l} zLRkZ~cM?$XadEFH*!idkw+z&L9XK=s&USmiPYx=Xj>T89HV7zO;!2HM_0R0Qjfz~8 zi|2_CXK`l$zby`uMxjJYIDcS{5`-6-MhX89`9nT*q(@63d#d*(Tw zjmSAplxznv+k-mJcH!{Zs<6mP6m5v|%ggUK@Gd&qW% z9qAGOvfWrU^(+2tmI@;ewq$}`s%$bG5Yn?}jy@!0ft(B9iGZZ!Vb2YrZ z_|CvDK@uW|X9&r#e~z!|k(PY5NRlsKf43jJ_A)xYdM$|Wl!JZXWwtkEl3q}s;a^e3UmCm20iHd}> zx8_+A1Q1g|-P{oti5!L!7U*hz0VbvO4P{7ebMxQCsN++VHIUvs1Ud>tS70n)#CM_;^Q( zV4qGu*SY>L;|_Aw%(xDkbp$I#8YP+qp)9YaF0#jyM^-Z&Zt0ogt2GT#CjXvL|L{%6 zl`kIQI(^ry+Uwkq>C;0jh|g~R)?oMwi5kw0O3T-k`Jd~s_UxwXuquX7%~xl&GG_+VE=leBERnb5 z#nx*En+7b3UBWfHH%eacWsz>wS~-=w+hkt#`(pAd2a?n`!w)?I-_1P7#jy?+W@i7> z{^-HOviTu)Fz^4$IRl? z_e$>QZ`!+oCBirHR@9}{cKl=rsrd`ov0=`9li+E@ONI8((&~ro13Hoz6}^J#c9bG` zg-Ids*`!=z){Ejmliuwvx@y3_8JKalr?Jz{h0&bd#|>@ge8KjTiOuJSGwX=&5bnDk z2XDC*un#)C3`q~R1Z(gJn^_ftVp|f6Zd(+(Sh^CZZ!jcwcXz|dj%h3=kAp7Y7I=fL ztu3fM0**GUxU6KHb9AEEQ#!}I@(4cFm(QP1b~;Gk_6(`lUG7P((rVmRgj@cC%<4*X0?P$I#e5V>; zm^7bXFdq9Db2r#ldX76{u5f<~IsLQuoo?}*wH&$41ljg5yMm%9x~i~9^tkJtsQ2pP z`P;d7am@Y&(Uab~TdYedRRn_10#Eme4O^$(rXr|KJ**0R)=f!o@?2tAdiE*SG$ULR z2N97c!25SfWd{+=jK%^Y=^UN!I+9IsTVep=$zP-y+_+XDJL8Bv#6s*~hi!Fc33M~g zKZ+Br(BakDIwLmLN+!ccNS^-KpBl6#>XwQYIzb`)a*O6}E++$HSNkY`*XNDM6&NC! z{C|+qZ4e<~egw;@Hb`oUYS7o#ZhRfyIaj-#$)5!XWU>JC_K6Dy@bbq@&1zd_(=}CK z78QsF{75r7J`MsM15_lK)}|!>sh+^lBX_#oDEsqY3(*RTUNo#tlsW; z7M_B~2Zswq1}1UVzmvU&58f$xssD+n3|%48AQQRwG>4}8{?^uOp}&2jGnoYP#`-3~ zs-yk)KO73tZczWFmlCoHB1v0X|E+0zX7rHSrTqSf1fC{6@*4sI%goDULqWGzB~m!V zL`9VY86g5wdiu!&6t?ancmBoO3H%{_Vzeh+5^if|$Is4pN2+cy8Hwl`qzL1X+Sy4@COL)7-UPKWl62VtZ+Qrkv>{!w0q=uMFsA zS(VDGv~i7S3`Cp$ZL!5hhUp;KS#U&iBJI*!*^W;nGL0vqaljs!<258^W6_wx) zKq(qca{oG&E`7s<_4bRFPS8rqzQ)^FCHXaS*|qeZR1dj3H4aX)B8-7NIZGEq8_iD< zcX9Wx&n2H-yO@7rV7D)cYSeNVcy8LX*VZQ-AkJ%v8K=S)hZ9H&Pjge&h!xeL)r*Hx z_%aB(WSMT)>PS|Fj)}Ed6d5PZ-??#VA<~YJOuC+jQxWzvdjbvAn;;)yTJ~UL?^;YgR?tWI6WNP`!IN2_F+)7>ek$8#e!;;1}?R#YkF*QSZivQw8J6vt|IgIofx@obn++T4U z|6q`CXP^(Z6b!ifzjsEjDHEby@!8kt`_5hBPfG5!^L-4?V9KJn+~(PEeY%4+rQ~zd z=xa6=iZYpP%H)r{XH0}vcpMlSV-Tk-wFlr;S*plaJkLX$XavqpDjf-LZ_T8TZ!SvV zg!xg3&rIKzuM9)5asL7n4A2VF??NuY-`%(6wfCCnI($pL@t1_5qCzrKk0k5!R4Gf3 z+=%CY?L?m>8UK&ZU?7Q5K@`PGc9uoYsTYY#IsXdt_=b`X;1&>H<_$9b`6}(x+}+goi)Hw^)#lv$HR9(Y+m6V~x9xzXk>X^~c=oE%!xD6m1v( z-U`kU6}@dL`a+^cLKdC@6g<)?>C=8MJ|RV0n(04T2H}?}!Ox+QeKMrk@&0y@7!OOZ zdGc=dRD(2{UnioqOkh+~!MTEcnW+84S0Yun|Koh}b-f(EEnl!mX_5ZM|X|}YJ zh2MK8s#A;ejMb=ySa{jWk0d?nw+ml{2Z;>=g2J?#JS`#-VLhB?tW|@}NX`LUlJRZPbJf9sV z!-`x;x^Cqljut?)s=YU)k;OAG@HWFoXpi~juKF{v7Hl@<@xT&Aj!3qnwE-%mo5n_K zs2wyAASQ^^1+jE7^++;zBuy0F-4Iaq!Ky_PbBUD$iQSzJL1J_VBNe&kDZgys?-|mb`wXXT;)9jLN_uGs2( zo>p&OKth5Z$X-Ed(zCnV<2GH*DJy#pBQ;c|8-T$D;AbdQ{IVAWzlWc=xw#3*oLl1} zgxXK7#baQNO4Ij`ppOL-j1PZJN8k~g)Yv~6TZa_gGst=S1N}TVA-*=GEfhRKkfrw* zoE+rT)c2s?8i@lo7+FjT+!Ux}0Uuo1JHaDi@B=g_A@3L<$Dcob`~u4qJaIw)Wei~s z|0Skk<~xME!2~3ky?F5=KqlAXeB&OZ3t`eAM9W{j!c;_n#Q`Ggp;j1B9bSI^-w!vz zXKzjtcooiVe25YahV%f@@}i&h?2%9icMYJMjDD-?U%pSoV!{ftnx{u)GF>4tZ3e5Zh7>Je&g8n1e^ z+~t9wjt&e3AjrX`#^^u8!NB4Ct@dqo^&<$kfY7dKkmM1tLfTR*ZyzZ8A<+UTj7`8> zK@Zvj4glZ{&S6Ten|20Jixf&)K*`n$?*oAG2WYDNuV)GapTSv_3w^He#Xtq?WC_^0 zB!5F}us5{Jlo*skSrvr3e=Wa{Y0Q9A;wB_uPfSdta6skcjhsOcjTY6_9Y7!GOX%hV z{ROB3CxJ$onmPu544glw@M#YGWWcrw!HjpVKqsXXfNAj21>XNifqDT^ad8-uL6;*$ zLj>Idb#Rs$8iGa@dYKcKfp~@UK?HKAAonW(N;E;MTUF(;KKkaKsYe&QiGQvIM0Heb z!tF>*Obqg1+CT+)ufkLcf_OnDxeacZx|uBmiUeBCkHC`yS}Vv^7S)EtT)CG?(KW8q z)jyjyE3$xefkux+2C4SBk6_E8=-=#xWQA&83PlIYB-jE*G2Wa0)CvFV|K%+E-q7_0d+B&d+(k+i? zZ(i0xAR*F#>?6_&XU&gQF)R!<>>ZB6#zBU?&_!Xhydp;+0&?~IOqbFH*&;VYDL0W= ziZnV}ljXd%$vF#NUb^?N- z&=-NgQVkPAVaJ-Y=FhOKdPW;4s)HU5T3Y;aF?GlAHG%OCI_73(W|A1BmJR}dT;tNt zj6~5vXAG?OkYC*hBo`P{e*Caa{R}4+Yf_I0v`gf!KIl)c0`C?yCO<<7gTxw*CQ9o& zfLs@-&1jtcts|h6`dJkIe1CtRfPzcrVEj%=i7S|zz*h;W-rx^_WRVzBW}Vx&duWnq zMSzPaEG{mFKr=8;AQpU@A@B}fp{bdW#{(}*jEkH8;9pbdxGxdTrZEZ;(GLbPRqi*# z&Q=YJS=~ z_{#t|BR&FL3~PnAnXe=RdDF8DwsMUF$3dd9A}n<7z(hk z7DE56hGI-e|12S^?QH(y+~UriRGxU>`QQegc;KP^V4cE}pFDtkLFkUE1yU4vENERT zsjT#Eo`v^=o+(T<6F3=u3#@a=){ecXH2y2=!MmylsRVt`TvQU_xPktUk2v}l97 zy$>Y#zz4|@d7z`A@tHkI2D-b1vj*z@c9)_Esa=6A1r{90PJl__cK+hN>#m;+h@>%w z&9@$saLnNQ4+0SYtaBg{e#)_)2L0D?Cj=uXt^y52vVy-!11aUc@DVDtXQ!spQ&NQ8 z=42FmK{g!-`u_K`zah{FZoMbx|3Iw=ygj({8tFx_$PGwCCWcSHDA=~&3XZMG`hL$& zn!D&^(hz5^vN}oALwoa%#gdb8{XL)ia|{xwuJp={1oJsfwreb5LT{5Fs`cISGLBKc zp5iT!gaHvS^*_O%&_RFoD$i3NlCP2uoK%l9=&Ls~_{3FG{Y;cL-P7^7K=l-9EYize zNat6S<#nBT1zdOs<9~l|Pw4yV`_+bhjiWLK@j~A2x67$s2cqF~q#QHx_A&LJk^iVlNVKpAgyP_BT;(kXQt2c zIfDM%t9oJ_l6YY(R>57COnLoJE)kz2ta_~0Vn1GJMW2b<%M0s}O1G;NQAc-J!RS;g zpS!xeybM;t1R+(Vak*g=CR85WWdm6fP&WSWPg+|+N6r*Hl;WM;%|d2dTbcLCOrlg9xq`FS?UF3dXlOC29r}@GZb_ z0q;ArbqIyjZ6_;P@Dzlz{B@dq%+Ok`hV~fTzgy_TSpZlZOc%Pu8Yv{se**0f0(^Yu zU>}8qbx|;0G|XtvDA9ivLr0MuvPLTF{rbU<32?WB>EGiPPrSadF~;)N+0#>LQuh#^ zOMoJcK}?w|i1iB!3INxKLdgRty3(b5)6#MdkI)(;UU-sLOm4O;M$`M{N@Qq(6E%)I zH(e6=_c#i`D=h$M8+GC zmi`Y$Ev+1BZ@BJZfC&P*EA*U;YL}Lm2QNIv2iFJ;YOP>}f>Tut#&rnx2dsb0I~cC9 zqxsObiHEa|9?M`>2KVaXnx4Daw#EW7}^kY)n8@)z1?MO(Wwd-@ku^xxRz5vY%u?3OF3=Nq>LhF!N2gCJ#HT-Qz|m)6r3@)Tapbj?RM1gXIIhE`OIoi@yIcY5NrM zWwXas)|vaU)?Mq$x=P|z(rcBK@!oaQeCeor92}lO&C`k~HUwj~|I6!L1>Wl<8#o*) z$!8u5+y>sCk?eUkiq%;@pIje3il`h(!m{)|Y2cjT<3?KITo(_|!|uij1H_ZcZ&}=@ zX|J~Q^xU^~^J;Cb1FgxiZ1Xrm@Zm|t3*~#~=X^r#C#@DPlWLm~PRn1h)4}|=!n|ki zI^Hh0;|2yWlQqoApiAl>8iKT^KxkqzHO+p?8#Bi*$&@4HJoOIz&&k480%IY3m(YV2zIp-)rR5-}0TmY9o#Flo>zaAxq^@gr zqR`;b&;{76PLH;?4+7TR3-oS0AMp+buPc-kV9u(!mOz2Vh4Af%g3sq6wiuQdNDKtW z9Xw2jI;lbP7(n^oBku|DX~UAm@b78`FEeavC2&0e1?%X5iFH(Zjp}ZE_ih-YdV2|T z=cAurVUG5}ELl zq@D;AgsDQRF~D{%Zf?wimSH^cFhhj1Kzb>h?9hn%ZAcv?54UbXCp?l>0d*D<3gROr zr4AT51-nDqZlaLj)A{Tr0}pPoNz-L7>2kyCVz)d!JvlX`VM&93a3!o~nJ6}J?cfbS zV%exsCCn9HzZ%j#sDnW#>E=J9$pe^AfUOMFg9FOY^FI@}%x)(IV3>_-c?nuv6kCY* zv#yHj@YPBNh2QRfSO_xrD8~U@}|ZY1ybR%1V^3WHnN9xiER6Y`0N*aN<{Wz!@=3Z6(E{!ccRM zK+ox~*+1qlg3h|seC7|Pzmc922ly>%MJ>ay=venntP?BS*`8f7jBJ$PwwF8tIcEN| z3NgMcvFRu8GT!0%jKzyr@p&%i&MOLec`ccdgS9}XDHZqc3>yLCjeF6y`)PLBik$g& zM4JiH3DR4tp?zk=;tx|)?lHDFO}Pzs$%`?SSMUjKNUujse)dAQeq8GjI1RWx;UzOq zrm{N}`mY9drmQWD+~Biqrm)?YOQbRjkKV)C2hu@E8nosR0L%hfU0^5_&(Nyo6)>sg zk(2vZQd)6(z8&fYEj?6yvPa*QWM7PLh{*Vjhyl6w1%c>JZ!Lry{RVfgpY>vUR0_uv znC)P3Z*84JhQA`wI_=W)wFAXHtb&+FjLpxv$nD!%HOtrQN}B<;qJ zMRR|EPSNn*y|L?<*=F6Fc7-!IMy3r#GCne*XJjM^Qk&l|Sv~^RCxk)cvguSK zNxkVH>y?=~6h6(cBL|YTVTKqHEh`Q$ZG%8@OjZS4%wUxafdO!=;+pKO8;O~PBOye} z-ptL`L@(}SthpAyj*lN9r%S=U10P(`0f`VPS4@Poo z0dt1gl?ptOEqOJ!Y^GXbRWntUk*IFGElt`Yn&$Aa?5d@u7u1K3_-nj6leWT-PGvNs zuWwy+pUlZ^WTvnldL9`ISNLmWWdBN+6Lc&j9{LrNE5M0GD~Xe4pC_l|*ZQoNu5n-? z6~UUG`-EITYqqVFy`fj`dUWVtR2A{s=2|66#m(2~;T>y!-{uFuq>m5OH>t@IXhtdz z0}IYFJO`{S!VN!pWJMQphK$S=ax|UM9pXxv-F7<+yb&(pa?aCMweljPZ9LKUU%zsW zdDTQ&PQU99LECO6!@Q=-Xc3Rtj^rh*v@5n(geeg0f`lwr7YIMi-AcaOs~IJa{6*y+ zzcaxqNT{1k;(8s2b3stDJdCWLf!KmE@+(QuGKXMR>!#t${XySzHl2XWeA^sKzE9kw z0w&k+eZRdC<}Pn?(#*TQRj?D&P%xH1p)uq;OHqR+<}xueUo_93C$9R#0B~`B1fdj}T7_Wm$Xx{qm|>Zb z6{b^3=QR!jy^FcLE?EP!oAdJJ_TGuI9y%@#D{PHNH&PdvKP6IGXvlG{GWuXH5Nrc- zA3lrL?80u^cCpg`uLU?6a0`h*|qZB zkYq%S`AwS|&2sbari8gCP|%n)08?$XZQOu;euuyBtT%O!N6mvF@sL{}JDY`+OGWjd zpfg7qM?e^Qz`udFJPs_g6s)Wezn*3hA_ez)GImwSPcTU-sI7&f1c!S1ON#1&fj1N# z#*6isk{-Z>$&^$C4^9A_b^}`GgZ8vxRe=s77+1aM_&na5f_4+GIU2Et;~-B4(7@Oj z9!v9_NkW64KfkT0zzc)V`R$ud#21?7@bGYqR2!~#Hx|?sNajGU+_QJ~N+BZGZz+!6 zwei#PF5GND-b6)7=~a%+3SGuD^z`>(u}e*j5CUW@#}*Dp#b#7g6zr=l@RYsSw2M}J z4M1c2@~-oIDlDB1zlI}h+r$b?yCD(@*NSb zBRj+XARBhIru6v^&xN{XmJwo^o=xdw8>U{H^-w|S6&ntOy!;r}f}b=4{ASA^ozKQb zW{E&ssf)89RvIm{`QfBq_v-HKq#?^f$d^k>OR5kulHkimqN=Bz$6qA8xDCb{{@3qS zvBH)m!M3`0;_yn2uao9>x*+S-t8rgE8PqIpAXx#lN!_JkM|zc^5P30+=tH=PQcx&8 zQ8k-vaGr)SgiMJSiYZ_bsh`;z=Mc~2MuzwO+!()$cx7E1g+Yg4T-rRKqeG|J?$53T zJX`hurt|HQfdTlRK+Xw6w9qq5MNZCto65ue&B<->Avr?n;IuP_znpb#gYO-XGL2ws zXuX27&tFk7-0C@W+qy$WP9D#-c;V20L0JPnkQvkV=gW0)Q$FL+X!!mpq01VYR-~k) z#syY=nr~;aa|1piC6)04?8dQq@T_r#np^<(hC72{`ImTNoF}!5QiS;j&P>Ed4^wmV zT)^T2S}+kE5KQxS)w45}43jrnfomgU_k~g;1!@Y65#Zws(bLtHUv|TEkAXDwS~66L zGBYO$B_<^m3Ef4$2G~cs_#)=!nbpC@#9bvYFG5TbL@U9fr$Rsf?b|7Ue^zKtjZBdT zBtv^pv#KfqF6fy>cVzf5T#Tg?@u)oNI;cEQ=ctBVB>(nT7t2U3Gid_`#qYa{k;w$F zi|dl4Rj4y{n4BFXzpmY!&%AH?KnMqMRy8SsT|>Ztn0rQW^7*`QwPKED>OiHJ_QlKQ zh0zBI0tQmQ{g781RmPt#DsvLEIH^8+yYg;nH8e_?BJ3t1p1Hu~QkkN4;mO?(RhRLI zXp+;?CMQx(LOKdJN4B4;Apt>zYnLupB69fX!vmd(Lg63loskZAk^{tUE3IA?TgSh) zD)~FpsY2+_=2ZB+;!HbyU`wy@(xDXs}gr3UO!P49l0Wa2-CSE^eV=Il{IoB$?#3dwVY3iV#5;( zYgfIRsLd)mdKsqPveitN@m$t!kf*?-djg`jJ%^)k)nqzjdGy8_E;eFdb?r)GqbL+WRJYHD^{7j>Ya-< zkb^Q))UK|eL%Zaz&igGt0g!;6%FNL4E1=iJvLl`^r46*Vgz_IM@t#sjyWoK&GX#+S z!{4(`3}2vLWjXPNw3vX2f!9{fm;BPrg4fXZO;27vEZLXd;Mg$Z7(!@yCb9M>UP=F$ z)M?yC!|aI?LRgE_nLI11_D6)_7N z;gKrR-{|V@#_0TKXXEz>aNO-eO%HX>AG)QGUy0ZdSBj>PZx?hFJUhJQ=WvDRnihQ` z7Zvu<(yc(bepA~sKgnSVzFRNoB@=1IA5c@7cSt_Ku$&(JOYV}=+VxWOk2Ad<{`BSa zvdb>|5vbSxZfZ()F(Bp%%SU7xw&@tN-TRRdE(CgEux~N5Dh%bvXldPsEz2Z5B6Nz| z-t-1NhJ*D9DHs?|gPyy*DGDqK+s&V7Iq|@EF`ul`#r1>gbd)ZWN$xM;`YDssk>92( zP1H>HQ$NH;iC53kTe2(t=gqtG|0&!2J3Be-3#qq+rD41G;s)~4<~W7pXGz)WE1B-UfL5WUZ6P1!)Fz48WtacuAszT`SEl3^JY zK7RXhO|?Gza!{n5kzFF*S(@5NM&f;@`txYIz67JWyJy^+h>73t%9BY=mBiIP#8?{lAJw$uN;13nH5 z4=!~}$9c^U`Ue*aZ5xNHUElY|;@MZXu85-&W=|L*`Wu0{T> zHZ|AV^XS%f5DIjXmhoQP$@OC$crt}O50{DJz0R%L#t{v|Cx23zHsUKbk*{lNokxug z24S6+;Z4Af0Ir(^i4$C}k~X(2YNK^)s|=Ao)K$n@~iWChvh|eZ6aTxcrRvm7NrQ3?Fut1c&yDP z*Q3Eh{TlWf(9~#;QL4Pgrm;!rVnbrf>Wzsi$&tr_MOg1f>c%|-v2VZ7_D8>GVe2*_ zm~hK3<%utJtc?^;ig(OBG^4f?#c;5@jEN{>-0sz_!jw9_X@vhEJtxQo!<1nA})<~&`ns^wbpgs}+3ie14pz-#N8-9oK z19*HYDz*dbr@AHj@EuTZp#WL~0Mi~xfO!&+qoXf7Wm1vEK**d0lqCV20{}|~1}a#& zEq77?Y9avvOl+ihR(W3D62R2`U%s3|{v8k$@d*hK6|g@Dyfh4sm@yFkZt?5Qy_0_j zm7$RN?oASt52g#qIeaPQ$)#8fZvgHlL>Q!paPaX#VAjjuts>y@#KJU|1t24nfnWs6 zRiH^%?-|IO>lzw-!Q)<8848m`s5;^bt1YA(0BA3pI`AY9cmQ~_rT3XFm6A>IYW&nyH$6Y8G7 z{(OWPKbb?%FnHIN&tH)tnS7qhtObw}0+OqD?~=QrRV9L#=x#3~h`~i9m z0bB~R=a!Vz*VcXj$`SIS{tu@D@Jw2Y$lGiljwhs*N!j)$!wvk~Hxos5NZ*9Xjzfbj z^7#B8U|J@6&j4q8kn7LI&dx3-2FLw;6O8*!|J>o>ZjQO%p!Yxtk#{NHp)!g@lm4k@ zBuqmo5Zy^Ps2oTN>=jV%l$Ss4P5}w&h%f*y9xQNg*VSz@&^6KuNK9-IAX?~do_KP` zVee7$l3^a1w$iJ_swbR3boN^0xzvBBs3)-z_C8{hhxUa0t# zH!i__q`5J^&92H?Nx?CkAV*$NdVQ<#d!XmGtV>8Jk-5#sXoahLAwRDS%4Y2KXScuK z%UI2Lkcg9-qWiqyg7p=JV$#UEH+z$+sKF#~W!u+LpO9qBl8N-OyZjmF4J5lLe>36VQ#2nXxOg|0orYqML4u znh(H5qH-9{FGZrTGgT8!?>|8Wtcod$=4~oZ5;#b&6@+@Lg@p8T+QCwY!@zbPG9_{0 z8-bz&F&@y80N=q%1rv7P&(rPDi>#L~nVFeiW@N1I`T<{!U}0sof|NQ;S-EV07rc_E z0tyKoA-)eYWJ8q%ti6!9S4^)vRtsl73j{9$bqz=bT%kZ#%^#ZF2s(C$J0j5an8FMY zlESajl1#{fU}Bn^p1z7~hf@o(?~$yFi;Lhgp@lwk$e#jRV%TJ3p(7AvUC@;z;W%0V z71!!1%11F9#KBq6GTH;I<^O_kKKJ#_w1wVG1qZqff>$x_ljJmDtl(n=Apx-HtNwB{ zM6EFOV?xSAT{@zP;gSZ)YPz@!U603IG{jBSfB0|)wPORly&q|~IXH&HcmV1Lv(6TD zu1HCpfDaKl%^g|W(9i}KMN3NyWc7XN@9#XGGSgIq+ZwdWeXp`n15^v*E|v9&aIhho z6(k%lA^-AbXlvh3C=i1y6bOMopl0CK80AbewHD7x8dO^IX}(u!PK*G(jn@zy(siF^ z;9GGKU}j8+jpf0#jFm$|Cfu%W-@274;g&n`@O*m7%^N$W*~>R=T>G@i4Cf;SN4a@yL&Vbyh4Kk6hu;%+&uPNOaonHba!#XS zK2|0NkaA4R|Jqlme5uZcTA*;o$q!S^lpg1?kPymHZ|><`ubwsi$;DJTXYkDx*F}qK z=-`X2#kgy2_spTFlSQLM?#(go9l6|8u`2w28kVZM?PzZc26q)v^A9Wf1rpN?A z<9X-o(rpLl)U6d)6j_Y2&b>>wBDvVp$`jH`N-pu^tI|ww&e$>rvTY4Ak?u6kS=Hcu zaE!m#U{tI8;L_7FqkA$X?VeQEC(GsYh&6c8zwtXx|J|fQ@Af`rzgK3YcmIAf+{}SC z#>d90oNNxg2q~e7A*NTwO&@XiAxXjtvcyw0_v7=B{1Jyb6Q#hlna54U!E*DU91-e{ zOa`N(Ti|P4Y%Hj2v4DV*r}259Bm;Pd%tpq0<8JB1DWEBDOD-d*5>!$+&{Z575I++( z2h6wLvz;CH$Yc%;IK^MnDS0x!4fwUb4)tM>-1F)IrTzyP3(3MY08O#QXN5#Gj0i0+ zFR!<^7wBlXN-PC2`fY7gBmnzB@`HN|Q;J6y_Jsa|O3oqhz+uOmx zK{(aZ65Zi>Mg@Ae03{_Qh-Zb{1p*>suF(*I#On;M2>}5C0DJ=c{ZD{D_zhd$KgMc` zTN)7|V|^_O4bExL+XuS|9!Ra8Nvn!3geg+B{5HE^lBlu7&enN!ZNJ^8Wr*bwO>S;HbwPgLoW8_FDqHhe z`hwp+=?!tpd+)Pj z%I64g`DQ5$`54_Rc*$r_;8sHuM}o``>pV*5Alcs^{N`VdFQ;Fm(%@~C=bKDcIvyKU z`lb0?VQWHZW=|yEhCPAgu1;n7zV&GE$=b#Hj)*XS15dvef)1AlvsvfAG=Km3VyT+x zHKYBMiyaSvJv^luavpz_H1vV$tF8qd{n7rul!CdstJBH(N`sznkJW?zd{2HK!tQaZ z24^7zqS6uTm&E64dYdkzX6u7Jb%U(Ne*D#;U|F~H0>|m{mdow3RBx}gd+Ff)Tjl*7 zV`_khKoLo+O8@5mmBDnZgHqHf@`Skxx^ODX%UfWif@C%T`QV}f7vOrNYV)kQvGIvZ zOiWZ1F7{(!bU};Klo~IZxLjRR1Lpytj6CtyJTHEvOXldb&4yGc_={!o;K#lM0whb5qm5l&~BnB}6 zTz=c{S99fAhApJY6~X_`p<(jDPiSZlq;zl(kEvWLJmnVuwXtz}wl@STMEBa-8fbpN z>sywezkFPfU+4&#wzk4>YXNuOF(f;Ow9VTJpPYwCJKvtgg}66oakm>~xH6fA3KC1Q zINS4IZ+NtdXbFpZ`$-tQtyZo7TGAMiinZl3vH9(Tl!txZW=Ub1_l}quN3nuO{x@z< zyxh&LEl|;YvecziLF}9af%Izoh@J=!vuOkezWlm88G(Z@^?2gKx{T4d9Js`(@-XY}KO$LN`;HDuS#H;>X(cG+17X0ratuJGcr4#NPGI*~pn z_cH8V9y!h|^TZc_D>^P^wRk)}eA)7Y$KCeE1{&Hq-)GBrv%B{gSl<=RMLd+b%EzZZ zlBspb@~K1>N5#k6_i-NGInz>_*x;0lP@HI^4!+))6m9^KpY;IiRn*5w%ZegNwrj-^ z=te_@T3mzA*GqktAH>AnkT=ECp7hqEY%#9{u|}{3x@vN>&WN{~S2G1}T<{HdS--w* zxkmfSSBi#+4RjL)%zsZ$AthBZk*d&s-9`Y3Ev9*6lc7hirkZz5hOL?xj%R?9fk79| znDD;82;GxN)M>#;j;L3*A=IupAe&f_wa_h0{r_nC?szKu|Nmpe5$PBevMDMFSxHuA znPpXoME1xkdz>N}p@?i{mI@_gWtL=xA|wqXp{U6CJFVAMNrU_d4_J&^ z$#9_IzJziq9?CS8SR9Km?68W8j?P_?RaV~kRx=4NvvDZppkr5IZ^21Sk!pRp2xA70hIX|X{lPEOt)*<>TZAs;uBB^^)d?dci+wT!bl5}C)Y_~pj7KPrZJ z&=H4hIDhw>lEIn%;^OFCbM^I=oh|FGlEa@eZ=RKoOive3TqU!v1Jyw*hP{?zhjcZ)gX!X=@_t2rlKHaoLS1S9 zpuk0{5o?-+@)5%*q1YYlIWl+torpa$E*btKNyz1cs+n(k_AR@%xcS9JF7m6p<6f`+ z@Mrv;wb`z-pq{%-UsB1eBTXB)&vZksbhz)$;nSN$cE9VmBUa4E!pb?BX;tq2Xa4!! zxKjN)he&pVk~{jMKZ{1bCp;dEjXLBqIo-pvy;){~ldWmuM6B)RTZtJ#d5oPlHqZG9 zYEdMPBo{s2m+r$!%Cil1#3U{^;k~<^o-M2V=w^xa2`VbODtxD(o{m=V>-Rb(%g?7b z^%UlM?jH#buyD7ic>jOad&T2UH9H^ z+pk~QtVU?y=sT|Wa5eNoXfi{PG*_$uCrOHt5YEp}EFIsR>TCz4wqNh zdm8H34Y<}iJuM1PoYvS#CTD66v7VMW!bAA`xSEAv-EcbY_0(S)3^*k|0?Y!v~0P@0U3il*+Dzv=ZkqM&e^L>^oJT?xqs!Q;)LZ?x1@ zXs8nsqKKVv+#od?@j!3i8gHjyhI9>g0eCt|;Ex~;2LTB_PF+)TB~YoPUjcjw#iUBU zabvr}*Ky=6W@J#HqN`W0Ru>aQ^f`896Z(H$(IHaUD(h^N=h$tgNEc6M@-K)BOM z$?WUIvV;6pr7Q{=vm911;USNa;JMX9VI3bIAGjOzeK9kNbx6m^3J5ehNOLh=MG(vu zPAT$J#kZ%FnODxHcgv1&c#KT8(H{0+*$^vp`5J0XolE7VNKG(O+1e>P67baMGr`9D zn|fnIL<7&%4O_CH?xS;cg)AhAZkYpdj`bUDM%PwXW*($z($Z3e(=zKQdJuWD-W-v? zcF;>PWZ<554?&1Jw3FK7?@(&K#!04dSzdyT8d0t3P~g2d+D@Io<<1}nUEu??Z!`!~ z#5Koh@3577RMz30Ng3woX)5Bxat&AtvwJRCnhDuYEIya zO-)QZVPT=$fxMYjNP~lbp&jAHiqpse0Vci~W&h8Ru%QsU_jQ3(VIqNgF^NDOPn${eS96Ju zKw##6VWwIuNU#nqbo|=XtNZ2s@A3}c7zYLNwb6(xP6AbXqBq9=N}eh|R}g#0e&N!u z*zi4_*P7is)r2_d*L4)9R|o`6YZ8g5Na&)`Uemw1-W1Y5VC(t$Is=vVS-uX|32qTu zfrhBXJ2To6Tw=R)%o7G11Xnhc4c2IX89ofWY0{+!rpgZ7nU1Y0%hEWNVnVjq)^m9=(IA0*X5b z!L22*QaC&|$6q2n6JYPm3>-0IXo#S@#5nc#fI^ETGJgsRL_|dB1&mLgEC)Dy_pb1r zPW#8^xp{dE0^TBR6k$9pkS@2TCm`Z3i;#J!)FKK?;@6Sd*s(cRBWpFDP(xYpRvl&N7+ zHoNFCd{F<)ZSV8xD!0A4EgUwdu4fP|2OSGVmWFzMP_H>VoEh{PVqtiY@~+;Qb+2x~ z&bOD)54|xO14{?no*uL1FODy7By{uswZDJ5P$#&){^7#|6+=jch1hsE2ig6%i&{qJ zjXu_uFL7HB9pqHrZi$%OlBdegWq#V8+g7uFL^0sYqaM}kjdZWtgsL}x74}f9c~l@m zzwx~CQ!0(W^3?6c64j)*jrBkE5ZFO(zVPPo+z0=e2XY@gn$S=n1K&%QTdHT7Dq$#q zrbG7WA6ZFo#O7J|sstbD3$;!>_N!KH&(Ob+=H7c8R^z1=t zbp)_>|AM8WWs-6~a+bQs_i;Y8Ku z3tQ_~AUthtdg0Av`m8>wkiRX&Q{qN>F-q$EXxH`)lom5oD#_WYCM73cfB)c6hCpb$ z+>zLbNuLUHv3SLw+9oEq24|2Sj)_`%7d^s#5ixlYmkGf1gVf{%n;1Q3-={8H_iC?Q z)Q*#s5%h~{xH&PkMO7=f&VK&KC7|cf!8!)k49>W^xnVf>zI5qtwh3f!95G1@l;56i z;x!?R{lY6tpXAdDt?qK`Zyec$^ym_nBRJa(JUthnx8_ZZ<8Gq>0=lSY1rxcMg0)6? z=7&mr`kpAEG^%nmD%C-eP2Q#q)q5&RJfRSOPk&hv1X**F@%O$eP7^m(~8m$pH%%lD*9p6P%sbIv%B^r1(K8Z}>28#0^{oUXzFmnRsJ3 zM0Wh&r$*#Pls1*kPM`H9rLsBCEIJR;{zwzf*OFMebXAQ&$Z7OB!lvdQ5HR9aSzL@_ zXm1gnzomq@&Xx0;jf4X$#%I6R+!19Rhs`ds1gY-veJM@PqmyxXIp-)sV83K{w3GVjEkP9==D#l?UM27NNWX&AB7 zj(>9$0TgrZzpGh7|FSprwu}{%lC_p4E)U{&#ct*Yq5VpRK0i%2E#GhTxty*L$GqR-B#IX?9R+5kGscf6tC2!#DAv3(hE!+kH(|-mEI7(mVaRL znop>oabE@C_o@dE^hmUo!$;t)z|4{JkZ9uflW2=eJ&`g?epzfBfT?0NZBgdt?(UA?Fp%=`ywO^8 z?_O37Ba?mrQTh41jo4Ae#lx%xY*s_#idYARDfmJK$gqMz5>r&1hDCY%_N%0y{EBF%h!0dXiHOg7W+853@@IA!@~^&k z@7jL_!rRvM3npK2adCZEAoTSS)$HQn;Na%QoM9cZ6eX!N_xu+)Vu@C0+D|_|*8=e2 z^qDh<;?QJ&m+K#BO03}jtmt>+vdjDUqx#?I+3GDZecL0NsjchyhBp3AvDr)O<1GnNPKpX<;xjD_Ilbei46P<_47D~lA@qKj0TrQv7(>l}m*sW>F~NN<(cR)f zrC)u9q^-NUulp&3WBKp7T@@2AmDh(vkA$7fdb;0rc2|b_#!8)nSBB?>HbF(AUnQ91 zKOjh9X{q<#7xo&GqXQ!%IgWF7oH#RMX?Q{Jr4c>z?{hLM3MLb zqT0E0plIu`4IDcbE!J^7MVtpT8_Lw6Ck9_d7txV&;9*fwBL|BAT*3DNJhFP|hrgvb zFxMeHg9h7+`wtw*CdS6($jA`vf8hDR*2AK6zqItt>(>>-vrvi$&psJM3S$#GT74431@0zQVT8)$wmzv;0ADF${slIaKrDI0m*7e>-noL|D#!aX8#h!Ut^`LH;ep;`Edkr?wurYCjjAU7ctNqb z15Tb3*CE0eM-F3=P5D;MgnZtOQv3ZcijP0v z#4ahvmAY#;zkwrB;pZ=z2*0Cpu0ya%M3TS_;<+{r`$JywboMD_aff%`PF={5L03D_ zX^Ko0zV8~*XspRVuCaSdzlDeVpn`%wE-CSp4hLx*Rq%Ggy$5^ z;+}o`h9B7+#REZ0s|^*7C;&oI3z!_qok&1FQ1cx#Lbl@&rC|cOe&0TS2F~DLI|`h6 z%T8I{+Y;kt9pVB1W-Hs``9l7~_1IZhj7&|pv#>mdaxkJ16>5pe$+9rw1H#8(N1RI3zzQZ!Dvq{W`)9VPK>fvQGwyp`VpWfpUb3Y)^|->64ze zWY=J^MOA=gtM`d+cqyj>@%#&K%+7ZV=jVvkq^J*W+NCCczMM%?>*!|C;BM==OAHDM z$`yT87U-Qx<4<&@Ay80KRziCjHxnI$08+pXDM#meaBJ-c!523{QY#btrO3xbw+n!- zz7e~I5!@wfC8aZADk?@0a02cvAg$>A630_j3}tSxhv^s?6o_oY8Ejdw#5|dTx}ndX zKco2aWb&5_SwREeeu3aHFfoanz~{F0YG&s8ClVYK+PMg!%`^g9Pq!#C%@cYOylly1vv&z5?j<*T2a>GGg zRhk9oD=$VJHUFg2cTJy2g&g82k_xvPhmnjLJCB4K2NlWC+fZ6!zG11RLxIYYJ_Au+ z+_qfXdWh|N3%U4dSsx0;5FzT)6fUIFEdPRn!&8#M@}fJ3{;4&&xH2#e6z>Q^}gpoToR zn!~;w)T6NjqTNR|HUAJE1agXwjg1XQVbhBjcu4UR0X1NsZ@Yg)Non-F)Pf=(56{TJ zK)&d!=xzIOdinZ39h;k*o~8~3hA=uhiXD+64=yZ>`gWOoqiGx}x?IsAm#6LR+Nz}g zY?CmDz3S-53R%Cra{5hY=O$#Y;V`0AMTC~OlVAqj%U_CZpnGEX!AA*G3bN8lVcLQV zi}}*nboJ=S$QnpbT+HY2&|EBpA&?RmAuEg175>J@8@3ch!v8L3%R%Uq-*b;ZzVkGjPToFyoo3i@Uaw@esQ$?RWxG z3dnCbiL?Z3xTW!j^ZvCI(HY`9)z#HOvSP{adGZh_2xtQYSpd}o3T|d~*$x;E^d7|} zB{X57{6yqBJY;2M?Y?ZzWN*yOq_T9U`BAOJM1`CAAwRyq}^d3=-*k%3w zS0LjMC%ypd3vHIcK{-kn*wob2KGXY?-@i-W>BNwLw+LRGy?gdR(T@t#V^Df+Gqa#L z*n!)`O$Z7KZa-kpU98x_$n1yltgM@F^85_9%e2Vq9sk98cQa;sk1O=H zxqJ@2QD?V#AF1!;q478KCCl`%zt#3CkrL#ZbsLD_Qc>Ahxnx4GN6#FV3n5%C|M`S% zTd01seUc#-yM2Dv9yi)#TJof(>;1RciARsBWNW`XdR&FXvhBNGd&+k{cWJWVAYEA1N}iRQsTU{Bqr&rM1r0 z*d+3Dm6ma?{>O-nc`JrnSLW|<-e6%|t1dsS;vATl|8FF^eSj;n(D&;%7rtaRro9(t z$Ifr9^!{P&v*nbVXyNxp%Ps3MdlDFynO~Qe&i+v$B!mUf#bTWAC{x5J314f*$}1S{ z>AO}J*pB^SWmTpzMiDG7+!=_~@#aywea&udk-EhJH$4??@JVunfq9QkenOE^I)Cc`ePl6!}1kSRFpp&?H z^JdDpg98T=g{$h8g`GLSX$S(s0s=?`NBdV?9LMJHj|-RR(s??6D&(G&;E)G?j{Zxu?z^a^El^gPE< zwb>ow@VdG>WHbKRVd2rZzw!fR+@Qn(P&~oK#bsiC-rf*K&>v40yA~a-M$}1M1bT7) z{Q1{uGT>e^zuBD%UTE0?))*gSqocv_!vm_mi%|4?_r4%3e|lzyl9>0;fc^W~00ivw z_4m$Vk|BbH*U&w)xER;!U#O@8up6Rfm*UjK^y=*7G=%X43^67$-1`LvSwAjT z@nS&1!|4~kbfVod+(dUIZRrTBP|F43&4BR%ukJHgrQydpZp03+5DrQDh(<(|T)+tm z%h;3C4=8QA$QLm%ph$<7+lAtza@&8c_9*oliZ}oG@dIxjCG1}_kMdB#{mc#VhM%7w zvIR7d-SB~Cyuy9)=(;yIUwtJL)uMgTO0%z}q$lC-;6t;)O~bXcHa=eTnQ2i{>1X*C zns+bHwKz41QSHvA@!prsLipRf{i-fC1JRI5g>-5B`cN=iyh9g>isSM}iAh>TsY&&t zlWRHG^z3axU6wrvqAUJ#&5bzuc+1F^m#uUW3mpOrbVmF{s%*`~D`Dy?H7e(=7}$-! zGpXICPWG^PP_L!nQ^HpLLbabXdf=YVf~l})`Za?p$@1SVM`gNFXw-;#0u!;XqFwo& zKYPfT-3-rtKoscxqG7f_@;7fc1ChIZucFVcD0%N|tFb{}j{n|tCs40hI{)F@n!a)y zf8#7+-~OEkMk^W_7icG%A|qN#%}oY|nJ>Qyae3Aw9{6YW?~i!pg&TZ7+1Er5w^=Uv zg%LJJ{KRtl-n^Es#Orc!FywJv|+KlOJp!AdM)Mn^0WzJYiEi zefl)&3{lRA>1zc&Plk!YH6wM1?*#h-*=FBN1PM6n>8gugpg1_rHlO{l_pw_2{o)+2 zR7u-b+$Pm{=HeU#;(_mlf5|gAxOZP+6%n&YtM;dP85LEtBhI$kn05chzD@Y2Vd`%qAz=bLE zR;tu4DXFrW8i0NZ_;G$~W4r2i`mYKEVinknHH^?9yoFFER#{oOFFKrrga2TvZmuXA z`2rMq)2@aUpM@Rhf0`@2VpU$>T3cFpMoueCEa0C0hvoqs!SMV*^#~rlx~7H_&lo|4{`)qK9D%Y5i8XEa?Rq!?qy=!PH-@}PGsE*kntmFl1#Wn9AckPqt#V?GWs=U>W2^G?ugv2 zQ;e5brk|b>I=>0$TAKG;M)G3le!AkzZ?y zJywiNOr{GNf|#BNdmp6=P0M{kPBteVIlidOv;Sz8U^Sb7dWWHNPIC8HPBNKyf13Hd zkmDpZEi>@B{3Hx>$`(gh2|Qs+g)<6Q&7sM}$#>*ja}*ZEp>dCNrjrw}C__@VlaJ4U zhLaKs<}Zmf9UEz`Ep$!zbLYxotX=33M;ituOFtn&Ao>#q5k$a%BElfT0TUas3LY6; zwtym$ZiC3k7|jX3_4!DsFt8Cf&}^No4zAE|<%q`+xH#E^bOLZiBd{w&umSM~un^=( zW4m#yA2W!g5!Q*0i(~G**wxi#ps%0ro&()^vshE9u@;s%6W6}|=X_Vg#1c+`vw)*;-n&ByLO)V{O(1m$Q#8zx5t-k+F4h3I-9rc5wv~ZC=*cmTk?gVVia(^iXek2~heDoJJXCNVbpjkf zbwa>&Q33J@ek1T|cBJMHGC3gds0XFyNXvdp6v&lv7dd%V!JY=jg^=8gAv|SFN=)}# zR!fVEmqIs%09a~5N(U&xLIm4WvhA_p<>eg9iR%fyw0HUsBHL>5!m3%CbJb~x%o@^F zXtB3YviKf6n5As4Yk$Tz@Zt)Kh-`ImGBX=wGf+&papRFgkKoXC7`=f!xYsTXAWVRw zqMC@yQ6u))7QHvriq5p1)SaT+kLdg>Q*GS>YqQ)z#9C8tLFY-*%EBi_t6g{R>SRfi zm6elf_&fhzyhg3L-peii@~Zr*&+$^e1E+Ttey8SBi9F+c(PKNyvN5sT<9WiwCE<(K z<2~&jj;A*V`(A%u!x$8-ZDglruoU&?tv9&6FwIcSazTf3u44z!g+B>YKRb8I(v^Nc zoq80NjjbW`*2T|HjHAg8Xh}R<(9?a+;HyRJr08{N;nG72yL_JQxj0f6y4TY}<$APk z(>eJI()s4LUB{cL^=o!%c|@5vFr?f&$6Fz{Zg9p-;Dge(LwekrXw-c_{!8m)>K_$) zkJ}&ftN1-$n00}o4OGn9Sba7i=lm&1Ppxf!-sUCaPg|PKBYi?Q<_nyevXYYy?ymcsYleM%oW<@4XK zn?#;g3yC}}^|6PmJJHrO=)}?#tg)Z)07jaN3+keAd{H8yP+}ez5O~4x<7FkJL0O3> zy}X&8u3LF@k0$OPDt<*pMKQ6Mx>u96?Jr;ENNxyh2=hoW-cluAiHtNzmzTWRQ4N7L zaK^>ly!Q@FbVu#&?R|ZH+v7UEq$&6~wU1vTQL<%`%y<*%CYP$0Ja^90L7XsZnY{o@ zPMcxRL5jwToILwZF(P$PiXa((S(te@vcYUj2K*xm`Mhso$-^O|w!gr2W@_p(q6R49 z#HugJNjB`EKzYd&xPA2l_rW)?cl*~`mGt|sFMpdGuEd$eL$DAx3l7Ev0OT?bh?BV( zMSP1q1CpAz#UYdqQ)I1TVvGOQC}B>(fqME`)Zn-q9vv0e>7`^2I`#?^vU`eo_ za&KKO^IKc&PCro2WK#)*>S!N7KJ)$ihbPW(aU_?{z#BW|%^Q?2eNRtID{^qA-=`LU z{gk(rN8=`h*FjpWav0iVJg;uwxf1|U2w)AMza>u}J(|Z{+41rvcCthF4olPVT1uW+ zt!HVlZ6N-%ttxmkP7DpTX;|7W|18(=Es+pf`m0QnmU)i?%h7!Sc|vX)yp4(PuU_zT z*tw5gg}@pjOlvIi@fH<9otb(sKdlNWjJV%Hcs8h1C1vd6!Q;0{y56d46K{O&Gm_qy z4c)6c5f#5)&xPX^p+B&(mn(h9jkfA7yr)*T1tOE zMl8(?3XyT6plvEOIaxDeU^4aUl`GeBDT$OI=xguacfo3g7{mm-Q+*W}X7dh<0|W4_ z8JYF1|2^a^{mO4;af+COc!Qb|C1kCwA1};^=BHJpUN0%-iTwEPh$?}$Vd9}xH#f(X zhl`&clMWTSm_}(f><(+-Ven`ny0Fqpe`FC=;J8eZi2S%Nc~u4eouB2oH8tPn##q0^ zKJKVnEKl^BdrX^>1AF(m6t+a6~wNBYEjTNo2 zM1~&q9@tIo#Bcm^aLv(8VnA5&q>6|~5CqHhSgY_b`#w^GJB}ic7tu*e&!QrCBV*_2 z0iC~lCmXQq&UK#=-Sv*aZGuIj6_%3xJaWzvtsPK#!g@ZR;XECEo8y#QF1wj(WJe}fPB&8tkQ~4`yJU{{?~u`-$$j!~Z5;~)Fq=Sxw0NI7$VGMB z?!1FN|B>Y1Hzs@eyB9;ti&V>LIjENRy2#KT`gHH6{0Tpqxzc&XKY=x$PF~pNo?%-4*hO7+ zwd8tkpX>MD%;fL>x!xO$U#fpTanY`kxV)Mt#3D!h^N-RH1CjtqC5mv{%+JrC^c&}H z{i8-u2%y!fEdL8@zE7YF=6F8kYe#Aa+nK#HY#vIj0nt#oajxed00&J=$3Pg|vsT zY0baM4I+~}1~ev&{@q!7dT>^GS4?t2i3`$M%j(}#a7TP9jd%x6k_w0p;OgEgp2Em6 z_9Awo#j?3QcGcDt~1S)OqRMyd3S+|-!U#rTt^UH_zP%*Xg!^s`PM*O9) zzPjjVe?sjVXK;I%7UK|GTaVrmdnS_*`mbGmk501aMVk5Tk$cWFzsI`bVsJA{7Iic; zH+2nJ{-&c)lF&%fv!ESacj6>>)2fJci$vrKM6%r8I=*Q4jqTpQbsE3rm0w7)2C6CH~HJa^jP9#^|`zAm0ouxgc$V|y$)S9b)!S`Te-;1#=i{z z$MqjlAE=gnyJ_s5D}9KycQ=QPwdDN^+sAa14o0bKXi&VYc<_P@I?4X!rAQXgSCPBB zTVIA9Q&HMwCxo9kJF_enxx1|Y(~9(Q->a+q^rmY=s-inzv@zhih|(ebGNRbXbn1(q zYR`GMwVJuQ;hvraB;4(Z7L3m2C%Wv(n7h)t$o%OFmv;nSodwrNq3)Cyx6^aZG31En zWLSIQk<#0VQpOvvRV@dCr!*ylm59{gJ%h>-1(bAs$U%wVTLj5SfARS`uq;j#_%9%g z>C;_9r}@K9tB>j4lT9dJm_qVl?)vIc^rlQy|7cc6XF_w>FgnPV^kmaN2=8OI9E6j0=FdM050=T7uJjH| zg(&d_#xpv3UIqcT%6}A)5J{MbHwejo0;M^{5sQ-&Emp^VQN%5@{}Z>Q2~`E@{19in z)T^NI)%a%7J00`pm#NL6GKc7T@@{5iti3+iHCY`eNe9jVoGZZADTbxa>1tjgZQ7kX z0NF>}kg&$xcI7wHs{yN1`~~h9;6$ULGIV-^#m$Rbu7MI)eJOKL`axAyDsQgiX>ad} z_b#PHMei|B;M4&Q$jZhBQr6KC#oHB{nct8%y@f7faORfXA*h?2p5Rh;AF9A*&|zN= zXUrpcbJQIFcO|wmr0zXRv1pcS9(sLj;6u<_aPNG;R*1+_O!*)J3i_RnAVKs#7=}0Lr%X+s z;sik>g!zMkks3clE!ILNazh=M_@MK01yHTI@%d=E#~M#T!Uh7#_p8(o;?VW zLo*Y;P-o_m062ibO&}Vs7$UzxtAGdpAvx7~c}+ljy!-SJs|R|C5*vH{I%EX)4?X|? z?@5OXflciy6Q`7UEwmema#TRViYh5?9m4+>jyt;fd=9asT+w3^9FSDq=lgZE$9tZx zV*2-+?XkvwPflf&n#v6<(P^3Adif<}r8{m_faTQh7ox%*p)AMKyjH?V+3s{j%%h#q z5yht*IIExH<>KyMX)Z=7|G~RNhpR3H)^uQ0z7YO$sHqV7z3H-%p-*8X;kV%Sg82bk81ZNjCOB(_SdeowCB5L z2fsAaVJ#gl*72!5`W>GGWELI;ZUm_Q`SG!T(}$`l`K~LMm?lf;4Edz_yIEem6|-a_ zQS~xBSZ#NYA@tZ&6Rc?!4)talN)oaQ=AWqSQt_tFX=0dMd$rYEPF-Z}zT~w43nrrZ zmByVRsfd+Fl>5}aTqJ%U2w6Vv;_}^^Q@PgB!2xAm&@SYP0=LDQo4PT?mrRYAT4zmC7K@T-)OxAoD+eo4-AAP5nxdI(CCdoC8nlEi8aFV3>p@(sFb!}pk6Q(K(qh} zZU*(VQIGYSQn!z&ZiH(j{}7eX34(z9TiOiXb_0RotvpX_xNcP4@SYb+JYL-Y+iFBu z)lF=!WJyz)V?T>vulMB(wx

O2)lTZhBsV>R={IuyGwz7L)aS~(U5v2BaSt$1un14Z;~8Naf8^_uKb+>kI3MG%yS2{@n2HtTGc?pE zkx7m`{U&4%Q%ariKFqA0* z14oowf3XRYIsrRQ;c+3Ocju6oeQou{ybJ z0);9rm+TCy{eNt+q+1O6SI;f?>Ena*cg?kk1JxV&`S}B=f6lExIq2$Vxm9KB;LZZS>VyX@ zS}wdP3-#AdZLKfM>o|AG!-)K9T)Fm)?^H_7wX551MDTMT<4F5A9#d)e>j~cs?MJ`M zll>8Q4-@8Z(VzIN(jWi#lt^1%|F1(i`yO3rr0a^)C!E_KBf8OXbEofSs--C9e(}b% zWecMZ31?O}UcH=C>Y?5|&tXhm-`RA0_c@_|pH_OZRTrgye}m}&ZldC1RyAgB`R;e` zfJJ)=?p4Uh?%9re8GApd6HJn5OjyU9ptn0|#0^&wbWX6^QTY(A3LaJ)9eA*&osP zw@Q9W>j$p0E)4|pxw=B!WraX8ALNP5y)SQ@SipSH3=!k#^D1C=ph}U(P7)-($kn)x zAP68)>5#Lvmnk-|Z}GafQ}&K4#w-w`ccko&IXdp?`h^fo=mBJ8`p-RnzSw&l&oYGV zqC;03>C7P6N{frZTBFM)^uI0m*g;6?U+WDa3t|}X;3a+f zwM-O%{zrQ9&9{FW-$(ocx0#H}uXi1~@b!1{D5HQ1s~Ud}E$tq`&D&jOivPY#wyYd7 z8~pL3TzMOxX-KlArP!mr`{v7pa*0v=`?E>@Bx0C~e^ph`(4jG9W{c9CLK1BvCFSEF zMZ0?VphedO{ZxJeEj1M(`{q?O0Rp0d2n}s#q+0(DXbYpM<(@P*^DpU}CoBh--**of ztD0Yl+FVBx<@(z+-^u%Qfu1oin_0weHu05w39t!N@+dw+H?IO6?ymh?I`vAa(QS zHkm!qmE>pNJXQUsEmX1nD0>-ahej2!HE`0_sq{g3rYcY}om}v$IRl-+5u|s*U>A z&4ivB$h8jwo65s_17bzK729%YhJvD{7GFq)9vW!u4P$m5TdC zL@!OaLrSd>CAb)jGW?flRPglH(YYq91N9JeK1YcVb|cL8vLY|q8?ZVQ7DMKGoLB{F zh+ShD>P$3_+)PbnAV7Njvb`PCR6E2rZc?exO3hY|jehtLh&ZZ)fn~I+^8cbDE5rG@ zb48JcXm4!(Y(^O3W{_}(4#Zi70z+oaqG>2{-EK*0X>`6F5Z&Jy`eYc zc_+*N)9Z_Bzb38Lk{-JnzF0nS{!C(yjiSuOZbkWn-wX7G*fj^9+0^m`jigLZ&O{J} z{;sJkzF~gaMSoNEDI+sob|pPmM0XBB%|nmxe1gjKj+BKNrTvUs1<8q}?bQp^|4Q}R z3qoUZc2Tc=`WPKZW+^ilBjyzCIuRScVyyj0Er{@gJI00e_G?*~?iL17|E^Ca)n^kB z#`KqwZh7RBw?f{acA~IS;PpR!*WYY;~)i)s1dC zTt#&F-Mi#U%{bm8X$1fuc352!=n|2WlRJF)&O?ONRAZ3Hqv4{m2D-fJD@fK&mrwZC z3fDmc2gn4)Wd!5u{jJn*p-{c9b8>yn2siYft(ucMfHFuDYh<%W)9E(wB5U1 zt3Z{w@RW;e2#g!WDbnYfiM&-hiQcF}$~)M|@yjwds8WB$wsm_^AD`tj;+mArdQ$_3 zHm%^^+rkn$1fo(fQJUxV#oS_p3-21^x^ouRzah`qNf%#K5PtP0nJC?pYe#gM?^QvR$a?S#iP)SZl11rO;hVwVB zks^-Ob8aD)-gq2#<4YPN3k_W;$1lPQQwE(&@(rJyucCi~3*NZUS;9qyf=5^yPpV7=yFYRNoWn`-f@XHX= zBEJath*qBj(vowGl3of}BNJH#h=;=#1WP|$(AeN%87_bH$OF#6!0LMagkedVs>xUS z{RxxhzYqZcT}J#)IZ9pA5hHEW*G8NHG6y#Xt* z*IpeGDybHp08bx+rl*+4AjhdfDd`?JDoq&*7}Okq1oZ51q$UV_o^<%Nm^}VX(L6=L z@3=Ve!q(4ASKfGYlHEFHD>A19iOQSjw5EM)wluwiBn5*T+IEltc!iR60Imo+eVhy9 z9`gJ5ZxMLg+lz)_VVx7gtl+*-fIYPsrNGTx`Q*vH{QSMq7>;0nWl>YgGU%&-3%yAK z2%TDvA>zOKoq#H#R0M_;U;|ZERn?{VEc`2_8j4b}ec}Ww0qf|$wcyI(*@a7Q!nzk? zY?(xDZ&KNH&be%?owN9&^O{Jj)h~Da=GR>uDf$Ow>=cB>tft>}nyk*$Y$-1;3KsSj zdoJbm-L~a+`m~+9gM)d61Bh!Rj z&0y6s`za&(wLc;7SOZ^q$CM)Hh~d)f+4|GAM;tugNeBHLJ$*PwZuO8zfcNG^^=-xf zO8yR({`XU!SGj0*C2qAPB05)Hgga6A<(G>*YfpJ|0_K<3hD+*p%6oKI4QFfi*X`)KXJ~`K|e}B7KM`sblO&EDl)1r;-zxeegRT8;8w(tm4^4?y%uX`^I zJV-&$hkDWIftD3(ceCha-5tmNE_-L%Jefh~)OmY*Bd#rQm)3>0dOBFujB#H2!D zGrp~DZa>0Ha_%%S$o^@Q8!-NHU+J0q>XvT;rxc~X>vWH2y_2y#kIx6ghRy=?v;A2P ztVgJ_BCkQp7xDBUQT`0y_a5)FsMI`Ov8geHdyt7d__eAJhZ`lveyw8fq_w9$_acY4 zpwGOmv|~pO1V4y7alu!_LkU+s{#h`g@`AICz`px{^R;2qO&nRt!$lneq2~|lzTP%= zDZJZ`@^B01Cys1CT8OVA&i&`z+qd3O4#3!R4k6Rf-UPu0k#CSSih8)xS7+r*Xm2my zOZ%Qb%hVv>XSZxb3{T*6I9Ga`WJ;=z`S0iRr=_ztG&I?(Lu8X2dMwg7DZM0NQFi_% zJW!NIR0QfZxX9L6l)_xiqTp*wM-#j5QC3c?k)5@3HZR=c4N1rfFS|eWXOsKCw%hC1 z_&3eXy(_=`&_BOJXw`)jahoNcSpBH&BCH|-0W~%pgpa?LF?9mYtKRFSI!P_)%}y5I zrKW`o;72_5_xYB4eA2?5?e`tem~l$0#}-G*XLNR8esy+mcn0aN5_Wxzu$Isr)1&hJj{DaafykuPkKLz2o4>Nx(60j zaEDMVn0!hW$zM*ssT)2QBk4Q2C5;c7=ffwpjBMh4oq%#DrJi43&VphtV8V|UQm z_Q)aEZH^@;4_xpcEza_j5!GV!7N*VbPCT?yD)=!_6L2lfW~;|rrji2g!&0qGO@{0( z5=>cLl~7kXob2E8^+T-DvBCSN4niu4Y*twFDf(v|5ol?m1fKUhp}G(Ndcf*J`z<;! zMEnFDbyedwgfZaf|B3|AEjvw5oS>AB)sKx~_(B#4EkN*x8DfI6w3-3{?^a^{qs(drGS-oV0 z=O`ico#XBOfS=G&ro!K_L4a~SbG=!twOxC46LO9b217mNoekuK0AZNF}ZvzB85 zRw~RG1{n&sBz=cnD{rNw%v39(j1jTEkFmCymTa?Kh3Z3|JC0I;K$60KkHyalQh9>M zms@5ir}~XFRy;QD=R0Powc#O(!Kl2tS^;qbPoGk{+i>YXbaEMuRZu$NH5mrA!FiP; zB>@3@#;xiKDKRy58Ceq}AP2}%a%YHmQ2hRNXM}S`x@3CKStl|{;4{SlBICr)_ecJGJBa{$6~&0PZ{Oj58t;?D zobYh!^7k<$c&`f4eB=(9M$kX-q*}xt>HTtYI|#bFPvVjm>)@C`UEFj0l)#c;JEO?v zVHC#&k6JQ{0TfyCy8=1RJ2@4Lb%>{2Kf!f)F#%v^0EAGM;wgPoNVx>_OCplg{#qf5 zGf`Nw^^);2a?NaGwlslcV9~>E>Me+;%Vd@4JzRG*1QQd$NN@~tBl(`RIkE|i5<>j( zqhnIBiGj5c-}dd`;IPY6=(Dhr;$DJ76-An8S2HnLMnhNP{rh4up0LE{ijr?&cmb#V z%%W63zLe88Iu|}SS!rn`1$_DXHBEOn!2#YG^r~RG8J>+(7lfuV<}t*=IGiz!Lfqec zUdm^1Tn;eEg(!Z4HP@yXl@~Gm8uV;bxic|RJZv4W8?NsYorP15HEEa>x6B%3fJOBH3CMiRs<>?t7E91H2^Bk>(f-#|n zSG&jc<5*>h0|eWc^G^I3)OJilJhp0_vMk=ur+lSpMEhCtLm%n0sP28is`}HYljEk8 zrClP!I3G)+RD@AWgOt4jO)Ei&%#yg^m~m|J!@%XVbaDBUc+s;^E>Iwf>nb6^b2`<} z3^n%oyVu3p9uD3?O2&;FhNh;za1Q>=KRtRniu7shA~A+%HIPP-j&t$?P3*5-trFrc$SCz z4T(hpws;0W8*~Z#0O%EM1A`6Jx8h8P%>(O*-}iS3nVIWgdMV!tB`m0|e22#}svYtj zp}l*9t2zZWkpT{^?*M{B$BQf*K##li(=Q?8{^^q^N6_UASUOSI=oo~)jGH&(ni@q& zKH|;{MHd0DP|9VQBPVn-9`{8$R!rrs(ObPw^|vgw+`9a2*5#N-K=8>EsYxqydf%_s zeNXAwe#LZlWoD_~NoIJ%Px@v2QCb>;1l@IC&I6?b-mU&E2~&?(S~Zv!L6UZ(im5YP2Q?} z#3BA*=*+ur6_@5&({1OMn*Sw_dA|=i&FU49$~!+>QTub-b+1CI*}k%}^xCl8vtL9k z5@U78;=ggyXhd=zkKJ_3ImD-5t46ops*ZWdpsw7y{cc$D7}Krq`9dZqWYpvyI1HD) z2pIi*clAVpaMolG!6fEsi_gEa_m6R;u)cps4jq4*?W|_{DeKrHz3n{{kF&++N}@@? zEf6C;GaXZNsP*0d`iJ0z1HHI5JhnbCv7iW*9Zm-v1wWSqfllLp79y(`=vzL&J@igJLAJmW#Lm_QLO&B58;fg`V*=1JZtmwe zJb)o1HJl9?2`p{@@PNTai5v&?ngMZ!<}7QO9TQ(N8xGDzhnu~CFd*q+C!k7s4R7&o zVPV<`l=%gApL-0fu`^3~168`ROnK0*K{`kLe^kA9Jk|aGKYoljAsrf zEUJ*-aY)%kWs5?)4s+fCO13e!O^Erx{NBp92vmMWKZ=}Ptv+{)v2Qp19vir^*K?$Q%D{Ux@-Cmy_O_QA zn51M)LjP|oX{hbZRsVA97I?WLR5wO#_xUK!%NLin-)$_29(r9ZJ-X@5?fY%52ito4 zq8_$>U#hw5zhPb{wtwvXS38>C@Xmqyw5NN`3{CC{Z!8Ps4s?mqkO{%}IMoA|oTQco z^SCUGKfF!oVPo(m*)b6w1aCh&pt7$fT|H;BU-MQcE8>NhJ;#4p%qZP=)GuGK+<9@c zIGqI{;Bn~DE&FuDG|pCfYP|S*^?UzOm6ia$OaD3>rbEW{>ui>WdT2EdCcm-!=S`)2 z!lXC!+T2@(vo>A*sYo|{Vd`sey8e*!*{Q+PW%PN&F5ViQe(fqtH>;+CcKPVkxh{+x zet4MqA3v49X^uS)pDjmdwNk~ksf(4nznv>PXGcePX&G$#Avtp7Ec>|SW)1y=h{60Y zX?#L^Rb@5Zxx+VLw*7#En}m;wx0ctF^&7u>)UOVS@cG=E>!2cgNcddZRU){)g<)Or zLBZ?Ofxvv=m(cP3p7_E2vqfB=r-<3RC*iGd28Pt3RuIU8z5WvvW)-3$hG*abT0p&q zAVO$Rku3AoKpM3n+mW2Ge1-GjgeYo9B09*YShTFy`x)FOb4=L7RF z4pf|NWVwV@f|>=W0e(&qzJMk1#_kU`;|e$cEH5uZl+&4^csgMW)h8uoZT?#;>MJnf z!6Q)m!-;vkqX^~H?Ix*0O~;SI+GlBs;=YBTwXp-E>fz*&? zAW9-WD1g`q3ZaH+MeqWEwhuc$efG?|Gwm=exak9w$(f=I@?WGD^1qFZ-~IJ5Y_VIn zTPgeNB^&k}`deRxQcM=Dls4YvgiP%BlUP$fm~mA4bTCP3`-#YdPs@*Lm$4W`tz`;p zMblo*PJOr5c;SX@MBZAR@X?du55-xuXsH5@35qEv>^!)_Ng!Kx3k!$dw&mECOUI|n zRvzm75a%;!LeBN%$#AmsM`DAt9l~)xuHOH7eE94jFBWPba&3!buDz3G)ujN_Tt_O_m zu5r!7rP;Rfk#*d{Vlt<-9v}65DpYv(`&DuEEOHF0`Y?-bOVvf}9yas#F)nF`x4auG8UtmGr_Yk}JWd-KNkXFqYid|D_@n4X zFz1hn33Mmcr7#I`C|YZAXNHjllyLu$9N5*-@ddUMAOc-MA29N;sAw##km5bjUWQU3 zPcI#K#%s^0nUtkCH!fz@eHIn_TiI<2e|4YDzFB%9I=OkiC(Ux+U{|*gd)JZYOE-gD zY)(XEg(du~^5Rw-kvdS8bYxKHK*tlIbIUK*U#E11k`5#Yf4AB`Y)>Ok-21fu*Q6c| zq3jFMYUN4B1vvCwkZFT>_YQgL31wp$c1Yoys_I~`@Xui zEhf!2%Ehl>wNHO+_UkrLj;XSb&-=dqoLI2aE@S%lEBpH<`Y%Vf3z*D=6E58}qZct} z7+DqXw#k@^dn%`NA<<^w6jZ#|N3&w;58K?6U-x1PaOas8O`{@aA-uNDEZ?3=<9b%B z#eB{IPwDRpcFe)I!D)wReY(06a|SnfLM(&@lrk_fUORG5oC6jXd#-dT*jWK%u%@6* zKGJPw(CR)WfBt;HF{5IkH1MxM2vvzGXVTZ zVZ{hnqK#tj4@D3hFQGYfD)0B7dy0&`8IJ>K1OVjY#}P*^T?h9Zn^g$u6OvsqL3?AD z3WGoJ8+PYnf{Zc)@mj|~``l6xOrI5fVnCpT@{Lx7g!5m9$ipGa*S-^d`< zsS!@qG5Pw{Qyz8=gwt@cTr zX_m4yuyFGE!fPA%Xi3$S(<+!i5|6NyLI7pR+y*(AWND{Sb(bbcHlUGcl@R>WMNZk8 zcJ<){&&ZuwVp3G0YmQ9bD`+}p$aj|tH8YyL_)apmPvjz`zdG;quj z&UKJ{6*TT~xD<5KM!CQMU9Y;gB_u{vVF#@uCDQz<{0l|!!H;Me-!HrTyY9aWxukwq*$L(O=jI{H0XMJ zY|L+qEm<`yYqwG&Jug1=zn?l4pks94-&J04bKF%31OmhdIa4)(L3G3SIId>wo_HW~ z=>|ECzk5oQsL0;t1ykeo)?N*b^CIEB(a$DnCy!>mrHBE0dbTP4gjEJumap|{NU8v3 z5$ht-{)>|E4hV-g?%AA;ChZnIyDJZVEOpZia#}1-q`cP3*~RblgHP_3J8N)UTTMX5 z(K_YUTL*||b(_VX^D`W(wseA{86lWRPvsoz;xd(QSeg5PhH!y=2Z?V*`2wSG&n1r6;OZl zgU)Z`KJ%ixmrw58eC9tGc)EjbFG$brsujL8*Ob zX(#c+8{~CCV3xp3{t411-aq6oaomZ4eaqCPbnyXU3%l+UWVd&|yIL#R^|sL*7I<`P&`OK&w=%~3JuSy)-{l^frBk*) z;zwLt;6%TyyPK>QS z^kn0bN8$4i*Yk7)*Bv`U59?O*c{ItCY`>BlzbDf5n{;)tSfp!*Zm1Ra)!*CgU#ju5 zob9_Vo=he-Nl^B2+N?j97~WpKm9^r`(UJFvX2xPBY_N2<8*iAf`K^CxlfTmbAaA|6 z7?{Zm9Rr9j!9A!giq#y2g|~sp5^WeIkO{DvONTD3U*JAcX2m^uSbH~Oqh}{3RvPb6 zo(!01(Q9KF)ICMIY5IBnv40D)T~CbXb{3+Xyzr@gHS;!HU?IYB)(>r(gQf5m4Ryc}Pc zzZ+^bch`?y%@F3p#nTGc{TK1NOn8!Qi{MV*XA?D^IbGd1J+?2Q_Q86%!uEfM4qS9R zvxj(tB-Hlb_~E+g7190oA08`nI29h7tkV?3CRZffz5Y&WPRlf;cwznpFVZj+!2bn% z97i4e%P6rLfXa{#Pl;(H(k2`@$4mh3Uk|ntc5QGoPs2ApEzJ*Zpx_3VHOrkZoL-|4 z{_ti^L70f+ z8YudID2;=iU7H;|<|zX7gO@(Ava^S&@@YRDoV^aP2EiP$AelZN+@LW3kQ*E;NNLDX zg`Z?Sk7^LsS*5MkD%Q4-$V3UsS3^xuuHXrpcaayE%b(;J$r0PGWcT~T;R+|)Q+Eynl(v;#I4n{Z?DpCjOr5me>I~RbJ+yrmwf0O#xar3?If59HD`&m8h z>gtLN=t7EDD6FpjKn{&hMMOUX#%S2NP_!N;_JesMhJ9*gU)x6vl`+hk0+KZZD}yzNeuRccVb&!L8tl1^wZ5{wNNDbw z@rdD+Qm1S`E!%b+RGAR=+WKJoq9kxii;~~8H3uwepJJiXhGoX@Kl5}hso7UFSL|f* zm#Qo0eq42HGlM6{Ru4Z(CL7qMiHN2;M?O%wq%<)5OH8ZCU;h&M)y`UnRhb8l*2asr zKmKuK>Sbj+1S+`e<@a8!6vmuYLB!$kI^q^d!Ts~PlI)| zHrKor2{xq|yeX5NJF-IKd!T2*68kWeFf!!`E)qr&jier0O?(bP#SNKMo9ap}=gbwbojeWtD$<{pE+uvPHyzZTCasmur-^R2+Mtovfa$m)xkF|IU)` zd^~$krlo<$V(y6A!HKLTymKv6nE%S)i{1aSJaxF3nA)P(4T7$dg3>2~7)7WWe~-Up zDOvi#)qNU?BIXI+`J1)wta#c;bLP4&|LDi;8KJW6Fl7UKEc!QgGsM`vv6DjmwZgkD z{{%x3Jc<;@frUCE|^z2rRQCMaR(3!8bX_y zukRm_F!gpLI{|4v#g86Ak=)l5!iaeh1g-+@u8vQtiva=jOfLzGh%ESEKxPg%5@<+& zc+?b61CyW>twa=@o~YWRO0lf*|Fn9Zt+no$zf@GXHLvpBaOtMoEcB&{jeb^UrCW?f zqHg?%?pjWb52*VXME9L=q#&WI;aq>-JG!qqCmu9c*!c?P=P`GDUsU1o91fJSCbCD-b!tsa+wN1DnZ7o| zR^ue`*_C^y=I{4_Pv6Ugw&-iSyZ@YS(B2sqjig;FBl{%@B7|4&74$PFI(gF zap2VMmmS_tzvl#x9rF@MtFtu+cj0X()f}4jCt_Ju9JnZkIqe*Y<@_Q$je6Ah2 zx3~Ssy#xF9>HcS#ou28tsqJY+g&PE(7A1+KGM}Z3s^P8H$UUK0`NH-=PzzY80uc_3 z_}BUR^(kObhK8}dlMoTXH5B17PE{}bwXCD?P{T|HWC2u+M#xlzd1QJ2k9jYw*|?;n zr+%xhXZs}Dg6OuaK`#wMGKR$V9qGq3NVI$(o}HrEPMZ}6pcT^@C;`AyBY43b0$}^) zs;|qKtzLndDg_KfD1w6n$04V*SGGOUw@8vu4q(&JPnDU$2u#7^NmMD&)F)L{n87V! z+dZkPyTxWN7!N>?0U0Qu&#>?s4zU#X!l5`_{g0y4LYt8aiZZy7i<7+o@V_|y27f?- zXDi>}PSgAgT=zzXq1|Z5MC{q6zWoH`8zO+v$Hk=-Ik`+D=!Fm^qy)}7%v*jw8|N`k zpaiH;Y$os|=KHST`pYDx3-ex_M(LL`o|R9ONZsCMEo43s=gZf>iO@hW-r{tPh3$$p zTYG(4_da>17Kd}coqqSoXI}sC`cT^FF)Vw@NCs05ULx0`qO_e zE~h$mO4?`T(apJCv%Fuv6-LdfNif&!iw|rr5j?c%pL^G)0}8k8qBkE#Ss^@D{@mEk z@vDu}<14(j2Ff1K-V~j*&Yb5AN@YIvDJfM}_xw!}S)FfsV|(ts-k}gN?JJWQOl1)4 z(BW@x%aC-G^3+5=8up{@(swtR4|3`#OHO_xZT|mJz z597*T^7VNs^lWU7>GeA#+JGoxp;0o&yk}43_eMz6Lu5m-B*X3x&mrJQkRX~DeSon% zYKK(PHs&y}-2Kb@6>zFxM}i&F62&pe$H&L<3EEalpfP9{PNinhfWg0KA6q+RVZz=E z!(}-no(T!5C5*uniCflr2;31cW|3Ke3Ijr`jeh+iGSU7Z1?DZxAR5y;RqZ5*w_&IRvMnluK;_J$qFW`ih{jp+fjI0R_FHU* zgSbD6(v8Xz_Zq7yC?Jr7!0_5yKM>$S6lvu+2Zwk_D?+Uvovm3$f@zvGOfj|e^5Znh zOQGoiKK2vY%wTDzI#pl5x$gYb#>8!9%WTLJMpk3v<6@E77e1lygQs9JOdqywiBULe zp5T5~BpBSy-}}z?!OT*OMYUTEN0hgqR*&=>*d;oh4JOsU7iR(@9B!nIdGM{@CLhA)58g*zO#@o^WsDH~{LqH5r7 zFrB(bYn$pzaVFL9yoVQ$hO0AiNvOJK75u$;MzhyMJz&#~0RD?a9e+C+;{pRBr-9k& zD_cav`3c|4&Fs&JuUn@5sT#aJ?|W#IP_O;!wb!10Ha)v@rJuduNidp;I>96^>iAnw zH~a@J!Sl55$HJAm>i3O;TGVec=|A1hraEer`rO7dtfrf{`*9YB9MwKm&H!t|F}Ew1 zMKdSt%(J5mwS}}KnFQVy9FsH7?<-LcxY0lN^`)2VpJ&_IF-GAR)@eh)SzE&yF#$n^vt9uAw z`l~X>%2TU>$Nf1L3^1X8KlPdpiIXstbExv_dkpqBi7zVYXIN?!lW@<+$b zd=T$!RhSDvpw;J@|6+u-df=&y_emeN(r3@^>KabEyVbb zhXaF0H6&8g#$L^{+l#tqjhLE4+42f1f687`7MOpP zcP8dxV}Ud$vrxs0?avQNncTgf7^ZtBA^G{>n5)B`pOT*|qHl{hO@HiJztXp*^nv`y zt^1a9K1L#U?Wb60XAeDg^fR(f(MpgY1gN#0(2zQJOhWMUDoszDEk_lTUh?yr!+f1& z+Vk>%Z$-Y?DOq-Td$D#zxsF10G&9Z3_R8P&{jb6gnWKK1tARe!#DCoglI zUsKy(LCeZT*R~kFh&ocY6t6F33EO0>>anK}rYTMGgbPo*#eeiAFVmo5^qtTXiWoSh z@iWlouHf?9?$(?a1?e0kQjh$vq=(a22lP8eTQL3;-|r!|VRv(X-u?S6POTjB+|l4! zU}mLGuZ{>I3h0EI;t3};1PV@|f-X-$XwWhn`BB3kyUSD5`tZb7d#-bKe;-9v3HgMx ztabTa!G|Xvu7t_?}>u4 z*QT5AChzh9Tpo6Q_x?TFE2NIV0&Zx2M{aGP3mWTnH8RF!;1go-C3R(hFW7Br%)PjQ zb}U-2TWRfJkMw96AtL!Ywars+?)7g9f^oEQqtCnvl5UQ1jr^XkY58ompRjgvwo6AA z8PTcd#w_y3GO0ec<(sJIlYSJVYW5=7^F*z|!TZX^uH?7NHJdj5nKF`Fzva~Tc6Lg& zh3%E=7s;0Re~IlQLc7j<-+3ZUQ1YAI%}KWHGKSXAW=zS!hDpkT{WrASM)_1H*pCk1 z31p*rT_h=CwX)#Q&Z~ak@;H^%b{SS0Q3sCGj=|gqTSH$7-@2Ch*5Hqp<8f{pI?Y7l z2N6<-zd*9?nt@hMi|XU0wAvPXF&5E`TrkxrCbkp&e53hC*k$w3id@0msQaxUI6R+k zk%?#3&;-BLeOZ=v=gu#9&|*9Z+UNxk`OzysN60q9ZN-s?mEW6;ZvpP(_#IUC=s5P7 zJtlKA_x1Jt@v9%v4GSQ-%27;9#$bB%zU16d`!L@Pmg+kj3gKyd0qkLQ#kKGRytsi!!clA>D3 z8hY)dPAYQJwsSl*GJCDO{kCIlZ~EP_zvh3VHIA(JTzYc2Y3fU?+K6IX?x7{g!@3f& zY89V+L}_R(51SgsHv5f|Xa(|<33JpeoXwkc^p7VcMaRc-{~L=wT>LhKV~*3*=0mvI zuOH-g$=SLNcJJ+fAKJI49<5P0O(2KcoxV$ZbJcO;Wr~Aho1iryU#I^+EGlM$(%$Y~ia{Q$AS^`j`^%NPx8|G@xil8}g})S%tWnZK76J z?tSd}W%?TGf1pbX1CPu0YVgPIlJ~HT`m;36&K#!5vvv0JX#f-F&JDuQ6!wx=JwxA1 zg&00@$+;_6cO!%5R_{`WKcybGPie7A)9kIozPt8G5{B{ry) z`$?1jyWy>l1OLvtyi$(p@_SAwq}|5WokL##0(2@(o!?DCAbTNX&ik00qU#YKv6iSI zfGhySQu5~2f(@WdahquGHdnK!jVO-j6xfz(WEhVvC?;Z^x_;e?5^i zy{f>U?o-F0WZ|IyIj`OBRI1;u7L$<<54#kRf1b7bdgq&c8OEOqUFo~_*D1$}d-E=O zea)xeq8(8lD%~BN9fS`uf~gP7T~r43T7+kSQPp$%mg4As{mGWoRF)vj`9Ht6aZ7?n z$zS2#`u8OIDdRv{i;Pe!813ALX>JM#D|fBqzS~p)9N&1mg96Ysu>{`+q2z#vZeqnR7>xOLa#!qAD32h<2O(!riRHi&xFBxAWY5&LimRQkD?!mCbo3OYCjIYqVWcFX9DTo`bwBft!|!s$36Z27v+k^V=Jb_c zYjQHZX=uc&6|T}6xCrdl+vb^1PJ91G=IcnL3QfZ{Y4LZKsj@&mq3`n3YNtTuk9^6%%x-|#Xorr`O0E)=r7eSG6{u?weZ zjUzq&jGnJlR-1U+>vj?ME(P!vapDxo;k#YCb3r)F8=O^YrG8Mr6>%*3S%kzg@}Y}P zSN&w&%12b~55~^yB__BrF-N8v^s$DAd~t$gKCtB z>iu=OWQ)95?K#@utZE+qGe;l>U4oCjJv%Ij1`--!jm%yBfWI#k|--B2pE-)7orv` zo;*P^#D+9e4mdRc_CgI@g4@7d=Q**9&? z|NR-<;9(9M^qJmwv(*(Iao{)KoVA4u3S}HM!QyuIilgJ`wFLhHIIbIrz8h1E%q_Th z`Et>NhiPobk9!Y}L^#jeBbpw6F~;>2N)UK=NOLYVL$GQUGF;&c{J!v{SR^$8XDSBI zIDlS(%295=m0+Mv8F-vN{U=Omop1ksW`eDGJ>k^62%LD{!&r}qS|ZLsM57HANcu|_pb;(xFdL&n;9UmwX{=IXml{ie{ap# zXp$rosG)6skFBp>g-||LFoLvA-p{bN!cyD}AJmBxz3<*ZKa5y98Mxx1NrD@R!dwGQ z{=Z73wfq*qTuL>@l0zMyRuqsyIpI9sRN}h{z4pWR7Z0Ys@w=5RO2PSY4{z*_5<^t^ zbbD78Hv{k+bH&Lw(R}5IU7K|&VCOV{4D7c>7-(;47H4XnbhD1aShH-K#TB;}zw zHIU^tWep(#I#J~5g7NBsc1eOm3L8U++u5p9MW%&!OCVENHQ|vO?zH$OA>6*;O8umD&QgtSPSzvOv;;JG$NryH2ORKW zgh*(xE`3?{NHnsbAow=I9-OfAp!!9Z>+QK>A(OiA;6ZmV0P&0x`Ofyuc=*b4*MEx? z+h0AA4T%8?-TKFmAIo1GWVqoxMLDe$)nvIT7Wu2P$*|oQ6%e50PnshboG?-S4+9-Q z!kAtSW8ZiujiI2gLIy~wEhF;;LasC`10otU@C3jLWE?i&SQLo&!3~8mah3u1AN>2% zlbD6rp)T<#unZ}hvpa$_2veT@jaZ9SiWxC5vw@EvWiju9^c>SNJQB}gx3K>3@ND8z z%XWQ=2!Jq$NrFFw9l^J;X+!n_i>l7lL$m1jBvapD?g^jzZ*goM^h^~2^-~eI>aR6+ zdw%!%xAE-tleV*+3Q`Ux7ii90Q@kvHEogRsNAm6Hxzg#isKAqf@`+qGFDCiRDvW03 zL^bjqt)W)g!a6c1{F=_clvU~Zp1oRjc^?D?&mCF{EUYSde(5iJbnLaElD@|6S0{Te z7dV!N{0(pk_*iw;%X>1exk$^DKnQC3F*f(bFG-T?pWmh=y{QdyHC206W8Fre;ikEm z(~bPRK1UUUzUyAzq3^W3=(6Q{Ma!r{$XjDs36{eddVWug@_V0Q@&pVXN7Y#nIz4I> zQI=tp+uqRuF#Y?Rpt8L{Kk5_T*o|x*!b&-F<_m0<)&NO+g3*Y;!=UEjq4}L{UYNH* zq1OXS)9MKYExE-j&KUmzIUE3l2MeYSyQ>)AP~7=@bPjCcJ>mx^eu|X^zDT%@Y7?I! zlL4c>en*+)60S+YxXvoztxTEl(B=93la$uSfNtyio51z@$hVKwq%e<1d zFCpUvUl|a21rir5;944d8-tqtW{-zp2GHkTS6}}RG?mhRM_5*@gJ4f_k|Gepnkm+x zAeMfe^%tQCMpcNEBr8W5WQVBtxgTk*&ASk4WuT4z9g|H87OyGjiW8cRmGunPGWhzG zApp{|`=+mf8I*TC88WBNojg0axcFmMoVkdEhM8SNe;z zDCQ7VAjzXgj^rBmxetgT>}nui=Z>I>$$9hdVyhaEwM1rPGSZe*JWXjnSZ=m9jXxT{ z*41HGj$k*N0b`u^xYA&V(H<=$j2~;}q=%h9!l@vKK;T`uzvtrDl<#$nTP1@IetG)k z>(e*KlSeBq5<_a=>>J!fQs1F}S&KJ$?`I)+L?mOE^E+}a%0--e)iP%F>#UiytO6D7 zP*iZqr|Q>i6UtFk%6b})AGr2j4H0O2wBqwF?e0cQom5Or!ArL5@6Y-S*2Mk1U+%tq zYcGkonGBgiLuUAhY;^QOOS1P!*LiiATiok>ps%K3#j%NZPbQhjwL|56qRH|;!C+<8 zg+XQzH^G*)iDNutp-8q~jDG41iS;A-KXL^*f8bZYIxE0&4^{FA(Niq2C< z2Hz_1Nvz6f$gQ;d^Pqb>g?-s zNqcAhRR2OsTY5+;*U5c}?Jh4OvN@Q;N(E&jUNmTFd0BALtne>yZb^0tqbAU*H0&!e z5WSxe^N4llXsPAic597edpUTne3Xp2w+VnWzm{*F;73wR*f^?Z><1v=V;1phWFC%?DS2bA-uCwSXZAnG12yWp z3ezuL;qAJ;&?$hrBH6WIrnWwPZsSvbKPPh-v`@Od&+$w=mY)Vofs#;ET)aOe52j70 zit6F-h6oSYXe?|l4~}O&m$k?we+$z4SY?jAkR5>G{d(*d#umUXpguXA-U*sQWZtAQ znXK!LR(bxIh=fFGW#tY+!@@cW!nnl5-}y>^H+T75NWt)~$3c3$;HFg)p5mz`pLD%L zxHyWn(NS9>ALZO<<3>omBlUrpg8zaJwS4n(wJaLp@o)99pL$f?k@gVtw zU|&J0`=&!TRI>>Aoh5NRB#}~ekxGst(;I2DkN?PuUs8#Ry_;Sk_nKAmL_+<7=Al9> zX&Iq<_NpRd9b0>?F&*7oml~P#z#i@HN%CpN;CyI3&LI@qYRtTd()MTgS;MBSN9sqPNt8NKHCtpYrZtP;+$L zD|;|wp8bNj%@|4bLAQf5UGnj^vc3DYr(7bl;eUx4Y#WW5Aw!62ktrONCiS;np>4Rb zd3_uKi4D7NiWW24gUqp_8-2CF7?Y9gL)(bKQhWshf#PQ2QSJ16AVpI&QRn{sN`wLl zUoDD-5yzgrY||nuui-%R6#RY=C6GV6E|wu@!x-g8J}A?o_90{;p!d+i(Cj!vg8{VO z2$vbUd{}m_8NsXr{rwnx7E@+TXpJ;AH7A00nvD8qX?hD*3QBSwu982QVNr9}=WKj@ z-Q&mNzxuGZ=V-*p96Z=9T?b_)YC~!QNfm{qyOmWI03wiC-22Xk8niakhA=d zu|Dv^K2*7ox^>c?t*L-hrP1r`ki+~s1gj;n-$8lsIo~(g(kJ8sZA5=oG z1i@cqHbrp^^SPH}zub<5FZT=+z%9UR__A2TlQc z@+9)%2)5_XFTELEDgRFYo{9RD(b|4h-)yq12FES}S$t2{jmFZGRGG?d)zR;@^XjE8 z2F}sfEj*HJC_h&(+j-(;!_?<{jC1b@vUlsP?~sb^+~POR^;bURG*5gfo185o5U0HI zjOJ?wRb{aLig{Mwo{|b;aNH2bP72F6#*;&p=<>z5)`TvMud#oQ>j^8B8iO)5VaPip z@4}B?d*1NiAgvLauiq8?7AC8R(^8M--c7vWCdU~qOs(hrWnLjBr1A5pv-q~Oeca3= zWFa%p)(?h}+4r-F?0Nz80_>aV(}@J-6GL^W6X)z3dF5w=#GO|zMqHg?-&H#oG-c*m zG<?-qP6BTMJWz|Q~v`v}HpQhmnl6zB@&}?2F7_NID zwmjHkUhO_p>==@non=vlu|}!vIl~~dm0)QuBl-Q-;`U$zBd**uBk|2mtxZPx&jMqg z^^@7Na%XwV75`>8Rm59K~HbHibDS2hK^m$1c9kq*;!B ztW752DIFwZ-&CHs9)5bVi=G%@zFCxb%uP~@!#M4HX#f*7b)YhNakFHd0NyZ=DR}4; z?So9JO|dt&&2W8llzFO5h|IrE>fW{a+9s-S(nMF+U4MS+KxaczA>NeCWJ@M&{cgBl zX>HD6W&i1B2Vc3(F{)(JS^zOKCSU$WCU4H@Thhens2MZ$a6#aMX!Moh4H9CFmu!Zw zx61IA6x%(N{`Oe*qw-KiU3ANo<^&Bf!0EnE1%LBZlFG~9Cri~geVNlaB{E&|i%8p) z8}h$*mBoPx?v*otoMMDIt zSbFLhvd$BEW_}VaKjGU2Qw{2@7_zhEkf{=zCYe;subIS+&w*owsBp0;K;X{}&@0Pcl| zUfNp+X@I2m=1<_>fNma$Qf+PR!-ub&s(kBUuXZM<+YI!`lP5(Yt>OFtyQ^mLECUDh zF>v0;X1zc05?J_jL0N@`(=Y;niL+DH_}EzKUPk@FH%J!U%A@eHrw1TP^YCMe$Fn_} zHj0n&nf+HTU6RMR%*90__%T4Nf&vEBB)n%*67f~B1D2&6mJk*_%`TP*3m)YmNwJ_) z-;4K!QH#``JSE&T7L>$&fCb*i6ln)~y+xnDaK$M%9 zvuWk2eQ~cSG+WTIh&Lb}Uj|!wCsQbJzm36-zxR447m+pzMGDfUyB*Fvbsqjyc}Z=) zB0QIvg{TP1hVN77j}Kfge>(xr#Sleu6KP4RfLL%u9_(7c;0Z714~A_3CFu?;!%Qn!FmO^3>~y!B!9Cw@|hLA<}wFok$?tJTNCp|93e-yD#oXzT&()+ zIrB+~h#XU)t_73=rhD#E&KRhpOE8vs*#}ok1e#I46pG#%jR=}*N~F5N^t{< zMy-wjyC{+1(0i$%aK+Hd@Xc*H5t9ElRyBxfQ}W#9(%~@m%9cO?B1pXPc}7oD(_qhC zLIA>l0q0tVymhLQViJg?h(a|DjX|*vQN^{HnjI=XO-witt&k{uLSOOjojcojdAAbg zR{e-smf{ZO{bmX8r)bE&JG28P& z`w=zplKYudd2%|Ptm^`jY8YV6Q2autmxC;y&iYGLi;xPdG?8u2Qm{$1Y&vu zOP{{a(?OMdb=A=wO}T{UIrlvi8!bP=-%gf0??QEUc9W&JW{K?jo*dCggvXMa#V=OE zHAoJr=p*x>6z~PZ?S(URwf)>bY69fkjfV=}PmR2YVP|DU20FLsdq)`&Vc{d_NKX~9 zoqSW4f7!;4Lw$eZp@Rou#pR;_E24-?tZMLXj?6}YOwF2(Qxg(Q(Uck*vLNr^zi4T6m0lT2ZW9K& zy0@^5+Q&fiL0$m|6VDO9r^Us3MW*cR>^pC@S)3r%Hq~7n*W+HHD)F}IDnw02Xn^hX z8@sER#)z`YdCge@Th+_oDPbMlXh|+lF8{VQD`?5jOj)f$!?6G3$m5?z$10aHvopoA zz9n7!J#1Ah99>{Y9FECu>!F%IAV2y0_n)7lrsNcDmuG5J#vE=k+Tlix(mQF^sk^c& zq@SJX_SNzG*i~iX1vS}Grl|FIB{#yOD}Mbs{eXLCx(&^b)gQ@eMCKZU$`kK4H5uBe zJBO%#O;ggl>0rjKzmqjFFOW`xNS!Tb!9YehfsRk+ea;?fT|;9Rmw6D~A!#JXy<+A) zvJNJqA?uE0CFr<;>j4I>o-U@y5s_hx6A?STdQKoo9Xm?%u>O%%TEg3b0VkPM&d_AZ z^RKZ>|DGKj1pOrLl|u?5(xalIGnB6T$t~LV15$dOCg)nAYXWQ?MHv zS@P-a=~$&e)51ne zipP$cVc~mCgl! zW9Yi&&=+wS2&L<>V>3uhgt0P8lBY<0z!)LvxUip%zP>&lXGER(_h+9_CgQc2=)p1z z#!nO@=-an54Mf!u3jf!UlE4CqaZa~GsTo@4x$g@=!QhOg)!phA*5DgYg;rc=hCtiYKImp^q1zJ(MU z$)Zz~*+pbF#VGxVjEpIXHm6%O?iD&cDgs66@V>;~#LSF?NDG!wP|h+I7yP23CP_Ho z{`$2OvfZGQ8G!Q>Y=F353_C*p@Mn1j^kE!<$m7b&%7S%{l9H0qOO#cWrxd}E54D1l zqVme%5l63K*j0^xc0NFj<-7iR|9I1#BjpTj-pTOvm$K`CxpFs5d z=n=VPlPnO$`Nf+fvI*y1whgNGO6&bnh?!wh=o(RwOlH#Q6hAJ`VJynp=3*I4vt1pYqF?%ts{iC2nnh|aBLsHR@v;w51uGWc7L6nlBC~H4?|(OS)Suaas`Pz(m?}fa zjdAZU?|Nvy<^5a?iYCl0G;DIn6W~yPnVVh5ok^A*XrxgVpq;CG`fw9);20gu7d~d` zk!ZiXd+OqF9?aFJwX7?vQJGiKZzapAv3 zRjb9p7%I>DIo)~lQ|Vw*G3y4qhEVLMV_dh4cofbnm0wKB15RV~u$E(ng`db@7ZmZn z^f{^=@cEt|h*B4j9kaQ2`*y(diKR8j6^12(N>JxKoE>#N>_OM~!i!=HhO_+P!wV?q zQNZkNhv#watYLL7T)bK%cWCF96&E{UPQ!K+nJ@sHQL4jk^D2UtzrB69!WPtc8wdsd z#mBQg+pU~y1Z+oJ``bp!@jPfN_HOGuj#@tUKWM~2nOM4}(OaRNi$l>Xhf&Qi%iuw7 zt`Kav{s@C2(Hyo_Aefaw&DfY#x7SG1Q^6kGS~M%HYFJA@T=o!~K%8qW`vE_|y=*!s zPqGs-b8-aa=;@L4{CP%Uq3y(mCLfC`dIb11?N2;PobmV*NJH;qesZo> zghceJ8-N~CISY}DS4*<@bFY(!-l>y!3vPX4rCk%`ylp&~^le&p_t$Oa(Ti%;o4Tr; z9hoNC(png{67Zs9+BeFFN6l~Ez4Mg&)j{S&K+)7g)!gR&Kgrt~d4DjNr(e*{`WEL< zAo6I{?c0HW6@PaYZ@;!P?%a+YRr_~0=6?9{eDcrM$eXrI&Bt~hm3IG~rEYH#HBb;9 z^s=o<$FdD-K$RC)R7bA~)V`8JyrqbbZ~~$xIi79tsN_rYh)OLHvL(I5HPj z5^#XRy93>8^a!kSos;2a1#w37ty^~sehOv1vc2fw&=C3v+I-6*lPm*i85xEfh%kmh zKG=WSxftzI(qnKKnBU~LBokhBFS1{kpr+-R;+mUya3*1ZhAcwZRJ&t2YU{@8%}eY* zK3*xmd|Y=2Ii4>|I@ZTAey@PeWr=YCgc z2?3GoCXKHLs!uF4(6jE%^tYY5a63q?s>h0liu9((fYnX;*nu)u)qt#sQ@vee=eA+) zlX@IY&n(T^KGQWmTRK!rh`oDPNT{m=h!KuDcFyWY*Jr|5X^%gz51M3*EL6h~X8-?& zFmI(50qBC|GY?_t4bq4A?}tBLi{*p@j(tBg32r#KK9<^G&T5k1yF1bvPn4RWtn)fV zZK!vEau5ilCWG8VXPW(cqL&zCh)M84ns5?)4%O6tkmQWCT;+bQw?goLX9I|KfI% zF+b0Z^pcZ6U?k{J5kxZ+dg(UZGN|r-$Ph-e_mYfw*PxYV#NG6)v2^Wwx)uBBcQ>xeMg>%0ZpxW{7aKE)+ ze2diIX%F=k&LBcmh5WWK6V<^0!dp@)Yv!x=AZ3n6|1Efj^#`u*-#eSj6D-9!0C0Ty z`W0hZVClIJ`0AYcE>_~fcdPm8`s|Bc`9sX4cE)QTarxE)Zi3)@!(1c823(R(k*dqk z91Yc>4$k0^vg9HVqD1qmt2-WrcH7<**nKBdEh{pKEJ8<#2eNYU}rx{m{qix=T_gHU=Y7vZHt>O`DW&m;w0( z;&*^@^FaJ$Z)bJ%iSYdXb@TEjLnoy}3Km8Df7Iw1Worw(a$9jl+9pE4|G?9?fek5F zGJbzzKcC99S>e#d?t{`gUrgv(h-qvlJ7POU7B{mfZ|#z$xi&ccz%KBPQ0FgHnM@R< znc8aT=tJ{h4>562aoW-;+K241|`wXIBN9 zhpv?EF2msJsn7obr_`dNQ%MF{rgtw?yS=Dq@lR;5@ZGgJxV}-K;KP9{GgQ}j^kx(d zj*W@}Fy0gTzdI%>6T$<2c3{fcgUCA;w=1p-JOQ+{;oUCc zfdpj||2C^7$q#@jX7D_xyn*@}-OWGRI3> zeV~W}Cll6WgCyvqENim6qm1{RtT|RWUt3#y3BpH5V;m>V+o1^Ew%3o1ahutV`P%-Y z1lTWxZ{gqdV8g6#5E-p~Aj~V{CS!hZeEO7vQ;^~GW}9mY;+868{)D!2D0a~Mi~${n zLqm~@OUoCov>!Wh!XKzpR&?m(YW{k>=S@`B-1zd7pC^=WLiEpVr4q%97Rs$ z%oble2F(G29$scB&&|!jC~RtqDmZg+$^Rv`ULq2&YT1}*q3u_Nn-)79010?@Qc_bL z?d?y$E8EV-Kt)pF?ZTREmO?b_czMmE>7EtGu4@CsS3*C5G~Jbzi$-i%@VvbrX=FV^ zu8nU1)K2KCx>%Q>y5@uL5Z=uYJ{3fiTb9U+icUfpt56{90--G8Kv=eJ?U-AE`TxOA zFQnJu0ZObhaNg#^mHxwr;86|PuKkA!*mtno`h)JM{eRy)N%6GOiPQs(8fqQgk%#H% zSYB!C(3f=-ZS*>S9^ViGi2Cey;~^OhlQd!Kr_eKnxuf=LyZl~UF{1$a#n`2w~NdTyf7?pc+WR-fvh2Z0xg6q z0fF}RIbGwZYw7#~KkC%NAK<38&FJy`wG7AA^xy06O+q$G)bjlAs!SzbWvc87HF=x8v-^eG3DGt1^-R`LD3D3uF za$7SG&-+iP8nJENx^*Xe%)uO`1Su>Xu(c`ZSP0ONWZ69T98=S#li|t~IJ?%cUg>PI zJHI=3-jVySU1XcmSLT8#E;3w?Prj6j{qXI=YJ41s&A4il2BGiBhD5G7?VKY$GK0Onr=&Qp z9^Bp}h0OKC?WNoIC@GomxS~$R^JP1yfUyoq&C$`(+xs`vXU9`EYq7XCt`1$rsNoW> zP`HU4ityGwOPg&%7qir(tL#inh9+`ZB~Zb2=66cJ?pwdS1R4VHIm8$YX&Ps^PEf@NT^vCYFL z;xop!9f#9kXj%lF@5wDZ)|_@Y7iUaKe}@MFXmwrX*5KH@+1Scz8`j_kzK4NF*m6t? z;DCuA>Fw#E;)j?`DPson9fG`wtdeC+JpZ0>^C5+MS;?m2*&+xl#h4B#UG63@R|`pu zOBg+I6XAzK#t6h1l9-qXR2F(HJ_g?s z?2cANM>E{&a+KlPpOuJU`@uo9$s<%)qQg%m6Fe2@G;Wy@>^U-eU|F!<9`Y7@e~pHp zGP0x}XjpVi%=r_u(Lt_!yPyz_17v>%lQsd;y1h?g8O3jtVqJo>Ycset4)A_rb5T>L znHQ^nl}%n5w8`(FqZ$$IGkdplIeVq{#fVa9%ALu|NzSO7@jG09bIskUDRL0p#t>u3 zFOV{N+lam~#HyH$CGkF|iB{-szD0%ByFn7$sXuK9O(exK)MtLB65?y%*|b01N;37n zSqo79ZbP(Hf1^-j01nYQ36~kuVyOv}S&8kSX zi*9@_+);LAhn{)eMPJ-nINMK3<~dg*7a3Locp%OkJ{;RMzIC@9+2c44ky?Tocdy*U zaM?0&b-`LH?b@{kC`|Nl@j(>~@Kg`)?%6YFfqc-{hC25n_b-AvgfDJ$t>shbppmK# z2RYO$7J0q=VYoLC7L$^Z@ojF2I+(=F`&PW0y3K=;UE(bOE?~fLhZ&1qYq2$}a54fO zha2a_i4U->zmR$X&x58B&Rt}U6E%@ga4WnM}aXrzQR7N$+a^87(q?w7GKUzJR)81~x5kr=<)HP6Z)_F=5uTZb6F zpS6_r(wuJ&dC_muaU?c;kU@ljHlMLP#SBn_<#)ATs%prmJHv}WB< zdMWqsqn4uneHYr+l?2pij)g|1dOT5^919`!W_tTM`s*5f=UXQ~Az8bqn)vr61`7R@rB1 z>!&BJz1VNljVNh6_56CW?HRei)G)nZbBg_USpH#yz|0QaE4R!7OhPTy>H2xg-;t1y zSq33LI2rEV6}o;{&iChMK&;4R0lT@AgUMWiom3A|IX%A&R~(oKJ3PX*??e@@U#{9W z-@PBtKK;BsXjyTR`G|Bo=7^@zABa#6Z?Xw(fKLp|^7AqYl3J08>d$9_ItjdEz5(y` zn2(45pBA9P89qU)1R+Vu8OX#D1rr+`4JM=pm|8~}7B(nr@W8_3HG~g4TZ;XUqZO5v z0JtpqFOt!XM;wM#ewawli?I2jB;)Eq*noY?1v<(wR$ybg1y;n*?+@y3NhA?*aTr`I z5CINy3m5G*gdp(m4<}H&Pp>7nq}Zd70opAhlyFZT4-Pd%Nd~~nfO~iQ@-VA`3ig{Q z41j3Zm6wqb+PcKByiOg#i?jB6iiU@bm&%1?WnYEiH1miA4V2s z~sOB?HWoo_WKZQX}w2@!M#i+r}o+PLc9`zTq(hY&h!#Ma`jAd%Xk7=Ox)eL1Q} zhUcHcw#|d7Nsa802|U+OWLDQnqJuV6ec&0H|3)qjS&ghu3e3A^=TvrGX-D@W7TRy^ zQn5qdQ~v;IO#kf5``rrS!epVv!*XUd8($2)cwJ%ObaKx7){msGlE-?-tWNS~rd{|P z>atH{`r^~#cHXgxdvU7AnOR000?KXPzUI2cOmYd`zGH2&=Jj)iyE6^6 z4V*kfQ$mA_YOcE;s*qW)k(GGlKKv_-RKA&*S6>|+wXjr(a;#?48n(k^(J@9M4Ja%M z%t*LNB?XpmoW4g(qTlnp`3X(y?FK?}tPy#oY7}K-LLi10>#Gmw@`V9GOQvyTrlIzH z%>8>;lN78m_mA1iYw2P`flztfHG8v*f?ab}y&k+O+3wtjE^7qu8j)*gqCFH7vEd~* z!)1=}ED;9P^$5R(RtzTCV`6VE-}GjoA!jbzCgFO7; z82)1?1&TpBq|P1x~+}p0p6V(hg%626|{iB4@pFoDo-|R~@pa zW9%m!wa8PR6qP(*04BJAkysl|#bJhmrH$b-HHptx8ZmGq;!qFZvh|rdB*G>pBI2%; zaWLnVo7{df#*9kyZ|hAydnpx}xB_7&k*3@h78W2Az3qI%CJj$DsL_Ngv87Nn)F~?g zs=xeDT;iDV1(?h~vWG7W8VcxLOleh8!Dt}e0lyvh=6Vu#c%WQ$vKV2Gvs#;(cy4X# zRh|?eks`h}yl2eh(IDq&x0b7|h?~fwe(PQ9O(XXOpa+ zLF>wQn`B}`vSK~Wg7q9sw(g#{(5c=Tb?}z%%%*I=*XETR*%3Pw%VhI24tzFzQgdP_ zqsDdW*ykh}`$*FoH#t{FW$Fp*5WP2(yL}sDMO^kbsJg9=Y`M1V9L#7`CKp%Q=azA- z(&}y!NrZvF-jJ-G+7Nl%Tr|St(GK?^`JdmY>@%+$?eR6?DAL|*bIj?oC++USP1N^x zMl<{D;X{Ipc98(TvXiLKa@$t+$0NoEbBac@;bljzW;f4cg=M% zw2MuzXJroFudii&_gW#!*eg0)NZ0*HKHG0T-mSGl4c9#skLVoY5sM3cW-er`UM(`# zaQRRZt?-ZTWbGS57kBBp8zmX9BS{`S+kCrsXPoBw>8(j(eP)3z>lRj)a>RW~4Jb6g zELRU2v02hA^(1#);b&ubd{R>Pe6#o#N6AMSX48))Ash=K)OBG6o3FIL?(T*!*REOB zIRIlIf7} zf(5CBNB#^qx=MufCYIGczkhn{z^yB*={gNZ{{B|>DIBzxR&_Jp^E57J1A|fvnZsrJ zgW#nNdvDO_k&OmXx{V(Oq#A1a|7Bz5*)?&ux=sxNZS z=8!}nS;F)+)AIW3cRv<$dE|NbN{lP0OMZ|$?>UfGB_FP}S^vpLLH%w4Ax0YK7_Rk8 zY@v!&>W@>TcidZIaj4sS``PXzyT#h5`v*7dX1WI+u+i+Q#D zqzlhhqyXvky-Ik`w;}ND*8w^a+ZG{8u_uAGoGglk?g%U;G*OkE4pWnpqGDo=@rM`t zv1I=97`6`6pN%^y)-GR@AZo38enbO!p<&Q3mRd+eFhF$VG94F!+v2J2ZLm0K5oMj?Mp!NV4oO$@^j;t=VRz=e$1;50=` zCD?dy;4F%BYUK0Y-uRZjAYTWSI_Mmd=s>H14fX@TJua0>+qbv4$q{w#P?C#@F=$N8 zEt!;9S^!k?n|Ffg8R=FN6B7r9QEW>aij~*tiM)5?CCm#vih0m{V-oPV^k~%Q#I!qR&oEf z7RuUjmF{NE*jIx?o`1`3E3}F|eWk%7$vRgzFZt);qpyoXIH|V4K30^UFD4-&w9HQ* zrp`#LIK^iIWIUU$Q*C~EluKiRh@>3vO0Cejk^6T(PZhaFmRcE4KU#7sDJgvf+vcti zdxcGls8oW~WN#ox)SN1LxRJi+g^pl^&YqnDT9qe?>;?l3fv^UpPyNHO1O9=^!*qOM zSj~{9l+Kp1F_VF931tIZaa}5NhwZLA@=|G3dGUo!4^ll+Uq=mse!l?IF-j1b zTJt5CJAl&$|DfJs8K)a2V$1J(7mr-kt#TJ(DHRC8@ACYRaR0F;DYEISH5C<~hDhcG z1v)5_3H*D@{~%Xx6J23xs%_K`PhIm3iw!^esm&Ml;NXNjB}jn!LCGodCU0M0 z$`St)A=|upk@hz=|3p>7uSfT`t?jfwWUtJ$D!BA2?IMk+g z=pgO+h(9NG0POeuKM0(U#74vBv1O}QB#D8-z_KctEUh*nu0m~7n(+G-CDLv%M6K#M zziSuXpwui2g(>P7xySB{+=Rjh8~IeLXz>`fk4t$$2C1u)V<$bjMT;x=2v#cee{YP1 zMd6cX-~i{G!-og7yUZ51os1-rDYGoM0=lz{#e6b{uwxtaUp*<=50K`M7UMS^NfUZD zt)4N@H~sz4?;aA~3=H+&{}Br|R8JQ7zJI@Cx$eXKtKX5!zIvDFQ`6P!On^K=LmN>2 z^*9{i2&<(JnH@FTwS}C8t++EyI&`#(vAxS<08I$<826Wu+T}MAC5%U%WMvqrgdp`_ z|K!;uVTqu=%qyiwPEzqjlDhxtbTw$yNQntmKldED^oL%Zg8ot>9o^EhxW|cTR)eC& z%bQ-D<1vf3li zvE43&0tgBDD{AD>hELc11T}~XndT@~&{3tO(&!sgRJ@*z0RD$Re|p~PBKoS6l7cBj zNe7gzGF%%poM6$%#42_zKQ~vqq#qD`#qHau7etY}FdGA*VJI?LNBU1_i1>e`j>4}& zvWA!!A~LYhN5rmSv~@Hi44hD95$6+X1)-P2lLpEy87@5_uc(JCF(FV`J-tp)rt^N6 zAaD`8hA1AKf}o~xG{S1DtXucX;SfKW5`AC{;#IyTUciG4xQs5%-LEgwk3(o*#7-nXo zA2f~b;6AgIsk=tuph=`ivZ_! zdshalT^NzF{?$uK%V?nPlCoYe1l>FJ{?7gm{T4tVGk_4g<^Z{zSK!8H3%|8uu{|Ut zN*OQDJlbVd$ITB_`s=~LRX9{mL2Ux1`OLs$NGr#e5Kf)i@n&!k@foFX3&Z<^r^i$9 z&H+!Y*jnI=kx^7ME9oa*AO>$4J-{`q__`7NqwGE7=IVM*fg8hER@N|fccd0bri!yM zAVc`KOAZ!aOag^K>QTo4T97GxW@ZL&s{rc49aj+21c(K|E8uE+&HM@v#iMbMSlN-9yZX4CdWT5Ri1u@g|HTsv2O$ zadqTGmmn`X;71Hp-Kt30#;piBF*Je*Q+!T{s-U;rjTmTZ9nZ1K3p}(i+2NaF9_yQ>!@uNg|BlOhqqY#t+hS?kPdVI+UjR%jo@O^X5aT_Z*r3`r*EWkp)I_R*avF5!-roHL^6*ej~e$ z7XmkZZiuzW_DVM|-?Coet^-~AFEs@^GKr=B+2(aJ6lFl580;=8Hfymp09W~#w}|FJ_&lKlh|1M-XjY_`;L(a8^#+@TnOGkP&poG;IbuCJEl-I^b;|&g~tg52C{bo z5EZ+|paJ>#1I7Yet>#4xmm#a3RoMm)@wa*W$5g~BSy3Ug5{@iRKm=TIv`^&#%R1l4 zbxyGtKAiTz=f?={xlZ6#o*g?8xKR7qj^hiyL2*%0dfHF|iv|0FUyCaVnu2ya+E9M5 z6j_Fm+4tVK;HYe=Yp17a3?iPNjbqxBFjy`z`V!J!;rw{yX-CJ$OM=MK`4ONL!UvV= zd$)&sQfs>y+E6lRjAV8b5jH@xSkeWrTw9~2>SiIGx8%c|sz&yD^xJ)(qBW=5(IBVE zP!h`sxj=PAFKXS4JF`!8`Ht;{CR6)2?qx&xHtq-LuRh&E9Vc$#vydX<=F3ApHc^$w z!G!Y_r|cb(gKSziask?Z@=^k-#F1NBxo~pW_@CkUs0f>W9qu&Oy@Ou8dW5P4;4I{tO;RM1b53DuJw@Y6`_(H~=8({ulr2)&h}fks`_;*% z$Jn%5nwwS7j`wzzz>YJdPicQ{ge^l_nq^m)&E=zh>CbYf4$*<~S6@f$lN}qv+~MQH zkLr(Y&O~jGk=V7>?Z*RI7%n5DU;&}QE|u@MbxM#MabH2ko&>23Busg|&W}E{&*yBT zk5P+Eo1yhn7!Lle9!@_X%f+@MG`M0k&Rvd}=C1|o+-2@NwCzgqMJSV@Imd4TuyLV= zr(^`fv#$y-!EU`k4ED!><ftWe44v`6$$8YKO$Y`7D8Vz8SLJ@`?bpg zKDTT_?lJ|67KV~eBH#QCiE4ppy>Zwbse5upbqM`KgadY-XD?s=@=^KM z6x-Vi{|Fx$(5gNR^L%8YAQId*PTc;tZ#j5)_5#ZXVEfius=2jQAPj61Y{!Ab!2($43B z&F~c3zFqX%K}39eDec+48#0|jLlF?o=g#fXGD5+;=Va=9zKe@kjD5YIp#kGv!L^=nl z1Nw{!ht)-t^&l6fq{TLi2(OB1*|cQ~9m%lZ4PKW|e@?sIK?4IEKbXS^E&u7$4&{#@ zJTSb|^Xc1FiH;*|_Lb&f8JTGJJ2;@l1Lvxu;$tW|YHNAUJ_LuDoPOK^Qge6#OijT= z6LAbTJGG6jw%axOAce9ySL0`h89^xCw&QB5D3V1=`v)lWi(p{HVjr^miXW zuGO#G2+01$4cRHAHcN<#5>x?LEM$HUp{^602)GU+zDNG)(uVjenTd%~fom7Z!#EEV z;*Uaf7Uuv-BsO~7Ew~h6h`$870OHG1aQx^4h77L@f4Aw=KW`At&t|5qf!xr2fAE^o z{mAn8y3F{j{}!pbdaRd-S{b;zTQ2ksB_Nd_R%#6q$k0WPy> zu9)(w#zzdNl-1t_D=?^_%?N#Zu}J}{S>F+{CrV0wV7-yw16JlU;u&TZ{0Ji-QmzT6 z82iPD!c5@b-+@>-j4I7Ry3gS-C457)p%9fpYc@P~Aqs;F(S&JI@Me6jM`o3X*@8a; z0#Kw-`+@veua1vN9>raGhp&5L)FKRfh!T74B(wU_{_VEI@89;iMs%44erx-@(bH?G zzM{Y3w{cK*{TpPxm@78`kO&>~E$71qEK%eFb z`7Y^ZtjNk~i+4l)l8%XF5e7rbaIz=^mD;T*2dKhG>!~z0_|2_84gC3Is2M7NKPzcT zoj#@4yKbnMZd_w)`196&Jmqua6;-XpZDWC^fBx1=)@yN#d3cwuSa~~7P*t!8Q8sC@ zoamxxkolj~hwoERE^oxhM3_>nRp@ayQB?(dWr!0@g-<)RN#-u9zx;HfoOq!>0Ez1EYSH4XI26=sx>gNBhBpL zhj0I>P(WBA?E`WEa6M={#m!gnSJmH}*HY`eJo8Gr+4s7!9rFI3<-%cVZ}0FGLFp-~}x{s`~l(QrblAGV-mApk**jg8<)Vp=eD zm!QASFY6AG6?F6P4&7uL_1m&y@uNbzDA*{Im{UoRj@P~eMa{k+u@vx*BGE|)nr%xt zSeLrJC)3x6s?P~I{BhrU-^`7KA>^9AZLl<~AqYL=y-d+ymGRW@PO>*UCiD7zTsDKP zl*?Dm$nF)su!*{Vp+lQAUKjJ$J!aI}97bv6;BoFfZxOAH;*Y^2CI>81d5ufs4X4Yy z74>S$Z0T|>IAnR8$%6B50%KYD$*v*}66x3JCmWoOlC|y_8L_cwG>lh?{d?C^C ziuLYz3?*9o4ttDNioH6;%K}N=Y+85jIr}qO#A@FO;j@mN6xgZlR~N$9ot<0hm|{OU zmM9c8?(3)Ld>uS8{!Nzq`OoK6GJJY%OGTmu$Y@XYQsdIoNwJTW?wXtLp7)eu+Aoi? zr+MDnbB^GIV_Iy}ch!bOXLrx#{0vqtMhe;+*Z+~+P;cvfm-R(+@np@0 zTHOg(i+&iZmjS@E7=lD(nV7VcE&kbBR1()?DZu+leEw- z39Bx(Lpo<#V#!0M;YI5m@_7JtK7k|~%i=VqX^O*!p&SZWSd-e{twrB327}Ik$I6 zdE`7Hioh=1QBa-31ps4dAP)GD2ENubeboc5`Z9+q%=bTYHu2*O&yuE(3yftjn?86d zDV{GUM}60Jjb~1~a=vrT88n{>ttM+`0VN6Xs>>edeY$a|7igx&Zh2G z{a9G3)tyC3c7`rFd0htm-a!fN$Z<-WK&))=e)9U-Ov%(e<>i~-y?AD?^-Z1aJ73mB zjo_{{74e1V+{ikMOO|>0?B26qN<+AUT*fQh;xul@Xy2-Sn=Jn;Cq}!h_Ci+suWF@= z$cY8n0G$c-xb*I3gR897nKMoUJ~C#b7bk04E!g}+S`Xgv^^^GHYU{RNmG#ferkb*T zEqUg_Tl~$Xu>tv|uJw~P91a6j9;HL?dX&+^F#5Tay|wB#@k82h?AVUz5q$aEmV@bg z_(-2#s85jVy#;<146v>?^vNI!4ZcTzNdHy;^dx{9b7njN-2h@tF`>7`ZB0!}oA}{_ zD>aUieNHhJ*c|?KEOLxA)L31-+^wyk!@I6{4#N}T-|WHgp6-0s(J|^90GUq3K6OVK zi@J-CA$wbxov7moM?q`z*Ea>wch(XmW|+rhyr%s}I7X2_S^h4&2Qo0?`hu4&;7{)@ z*hLU8^VR}V-*;|6J>0P{Sy*KBPRcYsTuWIn6mXyLKiXYsAK4J8Jh@UKkif2|HFPuf zIPK)!@2%XStxL1Zj8)-$*DK8nrnJfYv4%$;bmWUUX>wJ2aNUq+Zc%n}vKvlxWqAkiQi z4)QTd75qI9EMS&0(}h;puO5EAQmzAI7l&Pj4z}c+89D)m=DFCA6JFmYJ-`zI}E5hV5Cp z6GMu&u}(KXN4a{a#2i+!bvhhLX{eHu7hY`fd}N@;&T7kfN2&c+zVWLhcZroGh3_n3 z^o>Hl9><5K-Q*uu`C~gJ;jmfIuH_XE=YpV4OKG00DQD|}>Hc*$Nu+Vfv>kL8Bf`JQ zD263wX7X}rPF8;$9Q@|4Frk*~By&(WA&XVa%iEhSRGsUvxkSnVA&v3F*p2b#EB-nX zqI+tNQ&5OjnooYFgQ^ElKz)&+sU`0J%AU?Vf;j|9@pwy*KG5@fr3qZJleRK3CIIFOd)rRx~uRS45_8^R+N`tVNSUd>?*@$Y<$h(=EKTY!#4OE;FZ3W z5JPj!P60UW<5QwH@GD|%c>|rrCL#-?eLXyyX-34;LW)&*5`?F zFd>%dcZLWmTrSpcc}_~dBx9Fd;`~h0iZMiuZWrf9x;doGmGr;uaVTH7u`Ya60q^pz z8fbR(4_HlA*CC(_!qCxf&_=johuu+c{C1KZ!oFz{QHy@KLjn3%W2^7>J&4GMuHG;E z*!K7&*l?VJ-U(NH>2>LsaQ6$E!fDS@vYALw-j;xp48l19cwT#(Smrn`qqez=B{Ff= z9H-p4Z|Dn#)r*$>boxPF`DC)mh(%kZE?zv6$ zEI*lFJR$tmQO^2DO;&$nEY_isG+l|zL#6PvRATD)vcV~x*wP*bC8>#eEhj~8A13Wq z6?vs#xqCL`5H0+>j#PN|lBAk#RyrjVx9(`KE7tB-FMR)Vc5U#Eh@l>hwSqucw+NztjSEb86g@SQ?;_~45-7>p zdGZe-((PRwQ~y4c*V~=H%YETt`pi4I@^gQlpKnrqQ^n>chJBL)9DgwOvE@8|Y}SAN zR##iu^cz#FjO653P)!2h!oi59gc@i;k~guka)$TF6k%@1bZ8>zckwzh%3vPX*BW9km`K<{Fmovt~qrllIq>For%N(lzs7$Rl3S0Vx)8Tb8?2; zaD>~N#g86Osm0@xh}OnFjH%2WXaGftn&cO}aXqPCF_^N6iT3xm50Ks#Pu;j6*2TO| zSf{&CaJhAxbNZ7<-zywVz0giO)S>e{l$Hny&sodnhPaB@N zWB9O%i6*{@tD_9DCzqh}0FMR}rw83s#1{DWv9iH5= z&eWuN+FJa=bUzgtjH zke3H-iM_&wI|7l;L`nN6fmH3|H5quP5c0G-dIQp=}H(?UlA2%6N*hdPh z3m3eetJlajwEslrgmEU{U6;GHI^J~avh(?BIL$O)_k_Nn_B893dU7>%V|Lpx#F>C& zL0*7eVLSy9rzYawkXU@HOE`K2piKqNRzNl)ii+>fJOYA`EO`ezJEjZ8__PIx&pdR0 zZw2b~0`M_zvG6j2Edjb22>voJ{%j`---?QmmWCQvAz@+2;Jv-QhkVCTegjtxqW924 z>d6rvui5*-w68+q!)dW!zzBjj=;Xf|`F=}5ZqKW=5yz6M)LjCCd*UCuBot3@7#q22 z-+TAjU6#)CH_wJNUsKnqumf{+oW2DI8BPp-QQbS|H_;wf80UWX{)gc{M#fE3bx|RX4L@*LGjs>yu9QL z*LSzr?cQ)9<^TPFf+(*B2A%+Z1+U$Or+V@I!ot@wdTcG|q{8%i5|w03O?Gy65>|C8 z989~J2piGz_ouhUmwFWhcvRax(sP}$km`?FcqPp=mPuF~GsdE= zzOhJzVXu`U$7#!l%GD)%%-^)zZkTNLkQ%sRzW7jixc1bv@%O8)k44Wu+2*Fi@i@S> zB|=aqLg-bynTqz*j?!{=V~P+q?~Z`4(|XT#?8=mMSVezC8g3br0t zVtJS~7&hAz(Jz-D?|oEd*krY2n^v);&7Kh-Eh8tE9*smHT{f*hVII{^yRXaW-7(s` zQ`%3Ghox-f%Iw~=XXT7}S~PXecRHPredSg0oBVzy$J3c!oT1`aobBB$jS8!ETVmJ+ z_sZ-%Z2p?#)Mz(%8;iz7c2az?YEMsOd(>%%v>HnL zeVf>zeU_I2k1)`jo2=KTz6?>XPKMOCh6;k^W?}yrt-$*Hxb)n zr8~;zU&{1#Z)uhH2unob2JZNZ!a_HWfW362iH(a+IFP9|4uB)k&HjsruEd0_T1cac`lwRz!7!IbQtn9|H}iWjejk`kHU?sZeF zg;SYVQs$Py*5fkqfDcNYgboG1nrQJ!-4P@GWoPy!6EW8<%_^z(AqgJQRJSb3>78Bf z9s6#3Xtz(&O_ld9p6+c&HccPjZ1y=(C?+?z;(Wfueu|v<*TL_noAUcUKe()EIefmE zMUNs_=hMf3d)~)uN@CFY+TIHRGxs!wZ{~&-Qr}2yZ+lnwJW84q8*`O=tH4fyQ5t6! zo7fD2%un*hcH=H`tYy*9#x+yp)b+&=&Sf7_6=tZ2w2dk4pKN14KjeAmvhzv9(e8PM zS6Vl!JkH0qSVqKK+--k#XKPHWk)QpGstcv!lX5b$qYtxGM z7Du}H?Xx#?s}Fc4tOppC*QIR7Mzh|WICe;Q2#}nJQ-Cj>+4&zt=tQ5;nu}`R0P}s9Trx7rPwcQU6Dy zEcYWD?wkvw3)s{}amIbXRguCwuct-mg$sR&$Nw; z^4cb&#Akds1kBe}+JUufo5g3w}aV3C#;r_=>j@vWV>LB3 zZ)C*S)@C`7we>oMF^-MI#7{g;X{lNj_U!2$c7HJ?@1@IB=q(B6$2ykQie2kyaEY6sMw1(P+NU8blj z(Z?Hz|E;_F`jxZM*wn9Y<$u5ad1b^L-@?JND^AmM#Hp+?tgyr-p7#*H`ejGK5o;;W z8?%etd!CCfI-I`PV|IXRp0PRZlSDoFaoTM8c3Htg+C8+hYu2328~eN5NZ~?@muX2% z%$ehXzshgn$q7@+Z$P+AO?W_{>iMnR?xoc=w3PN^1;WpbT>20x5Sws3ru`b&IvsmU zxXzEVPFrF$W_09OOK!ftnYLL}jv0Gq6UGAr^K`>k``4+wW=Y@9!IH$!&TO{0w#I7K z+_;mjo#q;p%HUc6)Y8?@Fs zp8I$}zkg5i=HjOtXc3af*uYU2NU~lG0VD0Mk49y@Mq~u z77iL&_R}frSd$h`yMAJmcEZb|!k_7LHt7fQ0QIqr;)sG94ubdr94*6I_ zVv;5$@rUdF z{o(l=#f2q5PtG}f43)J&H*RRY5UEKE21scCqdpoNBSA<#!m*Z`^oQ=hePuq8dufjS zVO>Z0)0`hYJ6$w+rn!TuB2KLZ^8+!OsxF>F2;Vb!C(-D+*Vx$k;(;OA8v-cjxaBhv zxnNTYSuJX8)9y2jsABh;KQ~j*Xt?~9kVd%Z?MyVJ0fYtiR#Jw=nO=rj8Xa22-J8u#Hw zNH|LRm61w@84lz-js(_IDrik5;>h>zT`g_ny<+eCXMWPM#JeY33;WM`8LmsyrENdw z=8(09UtWG@P|3-khBQyy8^j_>d+DUYtIuEKqiwy)Y?YaX1VT zwj@~eTwK0FxuV;DD)zj^-~Oj-Z~FSciOA?CgVABrvN20Jqeg}(CO;p78o>DE>ngsx z=S?uS5f_>D?Vk3nPN%}4hS2XG0@usg?P`+R)gzf&j$wQeuU1f%%G}dG> z@FS9vXHK84MQ;6>s$p7nik(>>dX))z1!OG99z~~;7y<(@aY3wNyj~q#KD*WrB&GfK zQJFu=b%UFVR7R3v-#?cj}m zUy|UwUqc!@=M;_l$$cm1c|MY@xR{K>5@A2X{)%(bP(;T5IoqQTm(W;57{M`=Pe67c zY>>I~Vh!Ck{vq28_U8uUSJsj$-z?OuEujc?|=~HyRlOyZ93$X*clRY9QZknitT-|RG{B-*B z4q?-{&JQOOQrP*ObqPy;03EAzw~4FOg80TY#8oQrgoTH7F@Z>{I+jzkNLEk&d9Wu&It!E*)Ib} zxIZ^{p7kDMzj5fN;;#h*mbPqHVSx_QP=P4@yS(SS-sj#G(D_ML?)a;7A}n{JlWxEA znz2>VO|Kt5Cv>@lHLMxxt)IPku>$A(z`tO@41M9QImrGASh9GEyA4H(alCt#xZ++_ z_1NvUi9K7pU_#W=qag@-*-RuALCAqrMg{KBOLC;3b1y0PgQ-X_&2HrG1;Y%es4)jf>-@lzpwWnY3V(hKjhm$pLjYp)GSSVn1T&%V_37?>biZ-spRz zoMo+c{*2qA>8jq}Yke=GZ=H7g`*G{7(V&ZwPN)73{d#TsVtTzk%1K>sTW)Hdw2RkO_o@AT8G2bt z+Z>Zw16GE!roO7azbchI^Pue138|!^>x(0PFQmg7CYG-_r+kilIFpp$q+D~Dc_x1- z{(z(>Wxmt-0xv_Y|I|aL2sRJdOK0ET8&6fpwJUQx{#w{fC1x_+w>941HN#i`&y~`n zRNrEos9V#pd-y6bZm1_kMmf1^n~8h|D`f5j*Z1ludEk^cop9#(jzUhNf)Je@xqw?aksu%+=JD zlDxQIac10h%Dby|{w`|%+7CnFKa9q zCK8?PDm1X2HRE2gWQ1|Z0R*uoF!#&o#oepE%g;j}ohy1*ybwh&=9*qxM_3(wva$Zvp1}GYW{uCPFcN}PWoE9SS{UT zCw<#1Ia^rxHM{zsMI}jC>_2y?JTE`LG|q#O^U;P?=d1JktUhbs;RA5 zhJCVsmg7`)rX&}S{iGa-U9D=U8?$1(E^NEm$zH=~A#)*%{^k7K#*|5`he{?+-oi;py`?)&! z{huiOd|xp=Nw33t-0_?m%jo+PT$L{)EsrIh-H;kHbDGn4&o5IM^P}T4`xZ-dwdUe^ zW$hJR(z8{&7uE&dbNZnf(YZYQMa>~4O=-k$WsA72*&1ChrHwz9M!nl?_teaQMTz_l zyAR0>JRGMG4wdeP!szL)XmL4Nd3)iHd)k$D-h7lsGkVc1CFf>O$Zm#Vq3vf2^I}@V zbiw~kIk#`s(%Uk*V9ybr>pqaq@tb6EHwp;$Fo*dFiMZ~c5Kf~;?io)&m`3~|eSL6B zHR!D83|CxwQaH|&KtH%QzK6wjHqd06(=B7_(aDr3sk(KeA1Jnz7*EE;c*+irQ_UAE z6&>7Bi<@l4&L1nS{fkEW)VzWwMMJZn{?!4cju+kS?|;|aI#TRvb8dfnC(G5f58IY{ z5;j?h$+$ERV}b# z563B=X*$w=iuSX1P2OGkqP()vHh*Mqa0=Rmxa=V9XI#-=N2)s!ovretnH4++drVG# z{?};nV)vRs^fBGf%Y=;-wT8$B?j>CQ9s}tALmVwfxURmwB@9y8B7}Eg4mGGa&Jn+wzzjIjiFMz{#mL%56lN7YdBpy9_1RS+tj+ct#;q5mpq}f4R zvxm2D^Qo$CYpHPcC5WU$R;YG^d9SUmqii~oMKG2PuV~_AAw@cqw{UX(0^LDZRc9~% z?8~B@Kdw{cn0C28ro!g2;ooZA_~_-N_l}y-D^1DC=k7K14J7wpa5IRHyIjU?DWy@X z-P_26{p^#MTIxE2A2}8m<`r)(QGPL@J!-gzx#=KqYkp4}63N}1cy*+3g$91Pl+Tya zleav0n{46G+?X0p3ObrA@KDaK=LSpD{M1xlk|oogLY!*#-(~(m`bW8Cx?EB&saR1amNw>%H#`V+GiY}hb2PSYc1t7;5`J9 zD>P5@%F(=_465Kj_%124p2T$ezl}C;%5HUhILH5JK(F){(}J38e)|XK2x{ONOGq0l zA0AzJd~Vl$b$%~b+&&D&V0XZB^q&W^=+A>4&EBG)9uWYL_h=c#^X~P7`5VB8rtup* zqaUf0@8{>^;U|(TL_C#~?R_C}rQ67RSM>LDqU#S)B6`tZgnxB=#U&|pGNE>UY_v5@ z=2o(hX!H@(FZcDa`zzI2c9gk&W+j2&DE+rVvBX{UI55+Fm@8ELtI&NN*$;~iFWETM zDB{1mAYHb+wD1PpaEd*$b}OKlM92{V`y%EVZKXt^-OAD&x;t?SX8L})j&hZwY%PGw zr$5$y82y1nCipYL41ux39rOO}Tcp|$a%Bu8$TWfUm?pFVoc;9lG$C<>7y@JJw{HX# zq`ES^5t&n`BKWS9EX>anMR@qAAkl%MAC;ZZ()eTKge9VD4gzPMy?$Q){>$)dK`o1_ zQa&nHx!G6_&%V$nYd!xpT^oiAUe2u)tzVp#>rq?VDyu3c7- z&Sd20LoPnF{P8z*`D#|{NcE355cr*Sq+s-go?l;A1W(Uc+dc1FcRV;rpER#c_66yM zI5k3=xy!7q8MHT4bF#7v*r$mLNV*l(t5AxO`E`?t#PB$6qD%o#e^fo&{hEG!q&W%^M7;70tp7x*`Vegsk<|qu%A*0# z4w$fzR0Tgpwg|#~g4Kd30=lo@m=MxMM*AlM-ohqHNME5{#XS*jltc=${O`D^`qjkW zrfj^ik|$X@)rC3A>4o(;Ip|zc+vw8bXaWQh&d&Ege1ob^r3+Q45aBXMuxMy|8){&_ z#Je{=>7j+taeg~&s~n?FG6+wbbXVvrvD&43M273Mi;F-QQX$#d*==L-bb;0nI*qui zoL?5LMsTo#qS<9p{d&x^6B>@GzM=+eL$(%}D6F9x0}F>&i|Yn*ST{MeI=mb6gsq97 z`_KitB0tFBWif>88q_c1T9Imnq;Nj6)Z&D5LLW4^VfOEcf7)=UQ{djk1+>h=E>HTT z@;?wt*)@Aiw|(L94;G^|R+W19?m&;lVAr+NQmsTCF93AdfAOXL=#Z>&!}9c^e?m@X zAiL8~W&rM_Q3VZhT;GIB!MQMjpM$FuNUkBF}u-7oMc6*9{k{{2p;^u!%snJJ=IAjHGP zgQ5lnNr*Cf5+pk0P(jx;jMH(lI$m1;(4l3F0Pr5eW`6qgPJYOF;EwoL-FFODB6IVv z?g~yBj|7hBf;31O6c_Uze2 zjT!Dm1jFD-J#nJ;tGKZF{-5hfYyn!woHnlIGKO-A#^vk!Z$l`)Ksu1Uj&dUk`xGc+)uD5S+BJwG469eFyia6oM62B9!Si4AP{so;+DWcrS#)Q0PPNNeNSikqqU=?;vs3c!r2ki)vVRpp{YG==}Fc zial_TUj()SGY8sX9ZRB4ORy8d%$uE%{tqF!VGh_LI914`@Ujm{KK@J`$cSP>4-7s+ z-%LldzA?{Ii5TLF)6Op)zbu`pc+LU7b0S?YwZquZkS|)GYYyI%fIpM}Pj7GjPh}f@ zkDF5&j-d=8BqT|aOqnuQLXvsTlrlsaGRv4b2}vO#k~t(~$|F+}k|<>+LLtLvoxbn) z_x1S;K7M!}uMW<+@B6y0z4zK{uLY~Z<=#7YXg<9sPMza`$H+>;nB<*Bz&}83s8)qY zNIG3#9wuRUeq!)R0s!b zp}@-$_+Tr|pagCwWMc-Mh+;b+(!4`L-d6H?a8TnCge-NK0gvucXv?nzV^ED7s*ptw50)BrrHC6C52JzIw?q zMhHeG#Kl=ir1`A0XI^**Cmi_xI(#A;t`O%2oFx9gB(GR_UxYGQU_jSIuLt}vz;G6$ zVPaviD>l%2-+U#!=L93|m2mFFq|2-YGkomt-R~TXXR$T^fhSCyIy176)!KOEAZavYbep z<+Xj2z@_WXdEjB6fvU>_O*_Za!AJsMo*+Thmef$WNi;R{49`Vtw#3^%qUDMcBE2)g z)*B8nQ0>#vR+UzyV_0nbAx2kX?)zwSk?CTD!=RB^s_C(?u}2$!<1R}PsFiscDu>R= zmrvdiqvp|Jp0bM+OhWGF=VQtVMFf54=lBENV)lEx7{fkIU@WoX#e68HbVSj%SqvE8?$wS6@CvLAB zKRj_}kb~vc7%^c4Qv9F>0HAg3se5s8V5DPIZoDhQ{2vCq2I>QhR#H30K_eupT4f5( z!=VHeO>Dj`^bz(D*N2JaK*eED%v_45UIhnZQGVlM1Geh~v+ICE?bCkyYXd z6>&rfGF)IEz+Q^|#mX*D@V?+=zXayrRlwhfO7ZI75yYVljG3$m~$%Ph7+1*#2z{P=XUe z)HTf5_$~leJ+WhinIBPBCkKbM!7e}5nX9L{cyiaYzmJ^f_~_xjW;%69>R!v{*UBxo z+y*N%^SDrh@xa{+7p2TE5@zI`)@R!s8L7|H&1zO#Gn&apJIQyi%Rgf=dGX@?bot8t z=R$AKJ5O0ejQ1!peXR4SJiIj=r1Pqtf3Q0$dO!24viTQ%OQrj+)lBgAHvQec@$${5 ztO3@O`De5^ye`H2YYFw9?9}#H{w}>dTO%k>xw&~`c;?fRx9?hA%njpnQk8q&9V!)L z^YM5-`O)^LO%i;y6wv4Atdc7TUJLN{o0-y zxE3pw^{l&ePyg`#$@320>zz0jB|odgDHjZV^~}_i{`R=CNaGu zgL!i#2*QjJ8}O$U2*FrTnOZ^9< z_2Qev9lResaZHkO(0ny`IrFm8nFLE#DGr7$=fl$7A?%;po}P%GI#`~T7EH@Pt9H}> z(=p#W7AF?-g-hEq|I<8mZ=j;)GO7msd)}my4R-_)7A#L zKf!;qCg=M9e3aJEvcJOE>bh*Up7Z_k;Qgs=bJ05ivSDW_R6;@Aj8o$Flr7>+`uaM2m)$nkSBTzXo{$54 zXlD8TLe>)qty1lCKe!q3`Wn-tgB(M@0<7}ATO?FvNKXA2sGzit&r}RAJ~K-k2Dlmh zz=b2t(5g~WDl_ZbAucnU-l(~~K38%WhuaRkdmMF~El^E-@Xl@~I_E2DjEj#+j{DG5 zq~7mgv-bG{&{fjP^_NiHk0Yz9``nf_Vg4!BgzBTsv#{AWJ2v~C!z)0f?I8N^2_B73|7>sF}}RZ z`}A!oHP5|?#W!MQPMmIrJ>ksvtcyCE5C3t9j1gHn&JlGdQ*@Wqjbdkpben_gUHY73 zyIMqA?#V~yo&0mkeKymTe)&|cEAtpj?<$+mu41WUd##-d6DPjE{PR9$;KsGUSF%pFO?7_(Yv)UZU-W*`ysE<=$%&B%$m?0`E;%j+^jj*GiZ6 zKvLwtIb)7SLU(@`QzL8d4be}z?|XU_hc1Ewh7O-SlN##DmI2$+C)wGu(2Xp!W>k7R z<<7pxJJ9zK_4NNixDJ=I%=Mn}&S?Nx~(pbSS}j*@+Pc-k&avi8>%gZ>mG%}npT|Z? zdEwWtr;@WoTu<4jTAaC3rELB>*>Yt2;x*GsX4|;_2Ok{SGaf@^YnuD|O+z~ircBOlWr4m^!`V0weYm(ST>v1g}G&T@jy z?Y(FJ_qid?&q15z`0>PwVOI{AQX*j>rtaUqVRPzTL^QzYhab!&V44L{D1Z!qFg%N? zBrZvp(S@&#!tFWP*^sY5%B_YH7$Vo=;%C#P`&jFlhWrxX^yKsB+P%x*g!`<7XAPAK z8^i9Ah<4~dTLBNI!Qut9M&XK-mp26kra*;J$XsKDNxXa@^zQ41hy61hZEaqgEB$uw z?ib&fGh#17L7266c7YYqt&m?5+*N*)^e)sb1x zH(|h_l;>Mvqw>*sIpeg#IoV4I61yJjP#4CR&TN_cp7u^qiA<%BTU8s+i9LVBHu}E| zwsY^!DNjBN)Shz9S$^q!)QajrP|qBiI!@Ckl(}fwl2D&%bySa^RC3!Q z#2{NBTr-rsSXBNvN#mZsOMmD0|Eo{7;{j*N^C00?mX6V8aVK@(X^3wByftUo~pn_1C%C@Xc~K;u^z46VE0xB-S( zDdc!?pN<@fo>+ra>-uLpMFL<56Ol`{wzfzGAsK>iiX7ZfzawfxD5tX%BPf^={ovu- zmT(YVf1LA~f{<e zZEkg=M9z@!ADe~~CU2Y|DDS1MSMsKU(P-br#|G|Tby(dW;_sTvX zzZEw6mBTLP_qOt}QWn-MEBl+h1JOQLyRTe!8u>8L%Jg=SlA_3DA$H)XE zHkmk!FRgQU@;ZR-8Oej*b*eMP zQLWKgT4leKWqx~~qxOP00n&48WmjA_{i)@+9;bnmn~6mYtT1BSgq+wD`eUaduyP#( zeeWKgs*%@VJIrG*d)3fUPd9V#K}`a$&h4Hu=aC&i+DS&`F(F2>N>9`H8E~=c{Vg{4;Z#!ReHAK7G2ggb86Yl6C)MgS++ji`-+i-> zh&|TE%fg%Y>Y8+xgpG^Yn`7JfiGW_RIs8ww$(4hvR@CQa7jx~r#mB4H&vD&1+k+QK zp3?kdBdvdq$oW8d=)}cSY)r3cWD{xsy+-%%H7e0J!m1oCG@&93!l#tUGb(W&cJuh`&WLYW#nH|35#e9$XwVdI$CU&=70@2YY%NL?^r($$2Qo zmd0>ia))$AeOA)1+imyo;+qW8?7hRNI?1Dx!Ju4mYq73 z`C?=D&)&IJgLL8jwMsi%Te=&nuT4EX%5xl`>mQsR?|gHz`!Q;<#j#d;;!DVjv7bKV zUFhQT)?>aM`iPu_c!l^{IAU-w9ni+LYx7cE((n0OQTNr2_|I3$7z*#r=sF4Qz3cMN z_TO3v%+Eh=*D3p_v>GTEaw4Jz_=KN6V8<(BDX1>}Lk&4!jA#;xXZXScP3yos=h(~Z z^6roZ5`Q+~_uT@HI(yr_;x9hy%b!`t|D&3}xl4CN6{L39f;VGklk~4uLBjfe!C&s( z@$quucH#CCVVO}cvI(|3u3!dK?LP@ImKIC}?4kJjDmUtUs(8fZ!6n{j&}v{E!~fCk z0`xVZq7QO_kW?ZVwzM+J2K^IDIz z8&?v#4ME&AH$>J|2o#BJ;saHa;AwZ*E?G=`V}7u|?h;nOIF%D&O)Bcv)fdOfI^X8` z%157a>*dpU!y1(-DOeaU(3UUU9+^oURKFz4qfGS3#WZ9= z0izP1#(VK-+Y`T&)rp)IuZJhej(eNYG}34eO=)N*?agu}pR9f^7@40B&V{V}g5kjs zpa@Fgf|0e}=eu?HPz3&_>=Qr29?cuFes4SAa^Fi*t5QvBOmSbtBT+i@m+yza2oWz7 zT_%oP=fm0I$&7bVrMsy>2#rhFsnqDe*|pQu4%e<-gWtsTH2Yiml++x{J3CfmM=VTx zNoDMD>%q%dH_UI7kZlR;yT4Dq(d&URc=kO#(2KZ9WYi;?0)z9N&U=ay9@;FaX=$Jd zT<{docy*Wo zUK;4=Jf2yHnIo0ow{z&3Q`I8x|H7nU_26X)i(64}|wg&wIi4U-EF~uouTtg+9y!Edixm*tI~o9XSK= zH@4A&_xmtmDfej84@0kZw?07G8~vd(!tK?=^Z#a1E*TnDAp@uxhAxK-E{ta5DG_P` z!3;ur(98scVrx@gTDpXRj3!ph`9o1V{_-FYdeHS|svjbAL>@u!vUG?i8@M&BC7CFA zz#T&{RW*cXZGl-WhOPdx)UB#O*@P!MGt=r{@qoi0UFU~a$afKY`82*E1kA|j>3ulq z?&Ro*-by9W^f7Q_>GQw6N*Ovn~65}A>On}@Z$6JNxaN5hycf^1%`3+^${=@JO zF*de-#y~zg7Ap^tIO1q`fHl0ew@z{%Ws6{mwXi-pVc5iR)V<)@voXnew3;rnj$?p$ z1S&ib@-RZz12S2VwkOVoL!Y(o@9@t@ZLapa!y4hk`SQm-V~9?i`aOX33SOE7B@9$T zE;KVr1fK^u!FClWTgW3ok6gh_Ry-fbAsJhZ`?o~vIgcWq6M@rVkABFv?bv_Ir74^N z4{^DWcAo?oL1!PzdO;2Z6USBPslj*K>7VlhRQjecO;79MA1qXsV&`d7d(>zca(QLyQ1xq9>3@`?(%l@Av%XiL)S ziVgqg@8&X_K=pHZpsau_V57MOy^#$(VO#(a>%h&4j*2QZ5GLPlBhXM0)li5^^*lV5 zSXwx~aBfiZD7~%QS~*(O@6){J5|K-YkI#m{0K&mf$jO9sAB83yLIGyvX>IfmY7kv( zi(Y<<1VRV(tbCA8k!8Jxql_PpyX~*^{&APtc$lMAVHH|#)5iF$ZyoN;CAqobTXS+Z z|M4K#Swmqr(zZYDA0aynhYV}yl(%6BzH$iPT!X=Uj_%I5Do$h!X?wSRCK6* z$@oDam#7W^Ct9wz4O&C~er|ndkILgs2sHeVoJUK+ z6H+nIf0?h_-U1D%thP4& zy_iDPNPt!om_kS`6k6yZmjQw|Zkj~ek&`DYtEy5$V?yGfdxpK#<5&(w4`1{-5V^8T zgLy-!E|-~c6D0qcm_zCoQVB$BX>>L04dDfJ8Invmmhb@$${mw(9BOXAr zXXpK^1r=pwK)s-=p+wy%iYtEd*qVg8&0gf^nxlnL=SKDRpBMVa6t7I&OGd~6;D~B zC%ls2(W710D(P+H7?etcL0QHmAazjO-Me}^I+h_ZbYa1JPnbGgyLOMSZDI-50$2p- zDiGuFCkaNFS#p+PSyKgmWo;OlqL644uKQ8Tg@=JVOkUGkW&SzoS@R%A8zU9 z7dW-cuCu309LMspybquRchHUFBz%SbO;4dDLPrvIW?~o>PwS8vFr*qeqM}1ka{po) zGlsdQSdDCF7|*zJbSi_Fp{FQ@Mxcot}H@MNrN3DHY=`r^L|Z z78UuUgMwWqxiDvqV3RLIO~&cOW~>jH2_ihMqN8{51oJLmEE!ZG9XLN7POb)a3Dq_& zOL3GPqT$J&sdn8(^i9o%ren0~&$?~Dn7`X|={HT7?fU=N+1{+UWWi!!F~yl3PMw)K zu*WG^=iSvzS=Dp12ft`6OB`!4uo6Bm9(im)=YWueRclOmWRh97i15|jPU-1?VrLS) z{wVg+WL91G-3}T~srv6-=ew#-sk+nKBioziGXYtiVb`MHklFZ2IK+Md|eCy;HeG3R*in&INH?n$EB2RPjF(kaK{7Y)$Pz zygJdRuGyIpEj``5vZ!-vav39#vJ<(s-2b4q2+1|Ho}esR?U@}PAMf9)-ifh>7q4G) zeV`&lH526_!EB`tVwG~^%jl{!5C+V3J3XB`%^ky%=-`kAKB}(%WFrrpE-Iu|^!A2k`bU?@k%t=0t+e*cd;%rM4_`9~|v3VZ8DCk{9t2X{{0}y;lRyM$m zKDfc<`t=KWdK8M{;^GUQuTU5xtpzgzX0p+$ObiSRjEwJ-ILDXPU_)D2NUPFQQ6W)m zaJD1gK=_)YV}j-r5Hp36f`)1^vluhxF1^`&E3ThbboU8%TDXxpmNQ0Byc2qoKv42u1T$b#YNByg^;$qUe zL(u2c7JO-P?b7e1ScSiT1Tt!;L6_mY*p? z*}wIe(iXF13^Zx?f(WvAZ+_o2n&_~S2gI(dtbD&?98YxGz54K_=S{7xa9M_B8H~9Q z45cI`l~q(ceEC#>HX<3vEk=|^^Ku_MI|h>X@7dFARgAOmszh2Wr;G$PFh?uE&ND9Y z5DduE`?T_B2ZbUgXlbP%+`mtK*N6AOfhW3CP+3<`c=z@#E4;D8!qhxHJ=N8zH4>B_ zyVM7enhKXhj(MU2hX99z!=c2sJJHb~D^$Br!S0I?ty<&uW0yt(&NZmy#b^uO`aNri zh7Atp)2B~6IXSV&pLGy7x_tRy+%Mf{eSp<*_Yp64@7#%{g)4$#q@kf9rkfcfl<^I9 z5W*$wRpJL_oIO{mdr}0{Hp)S15=DlM%x6vK%Sc-3B zMuqy2pR6|BArLk2(D_GM6N|gjqrFB)qX37Sy(Y`33j<%#q6SdJpx& z%i0FcBwL#`cgeywR3_c4al6sEk7{OzI{>OK_GoeT4sbcz+9H~*kYYfV^Yidvpe~{#ei$key7X=wtZ0p1lo=Rfk1(uQ1 zE*$jq^v;fsZ(L=0cmi9;7$__y($XP+YGQ)Tf=3KqcT^O}3`i4D=sp5$KBzpxO$3YkP4Nx1c;wC=TG*fODCbS9w{P1uHCnY#uLMjvR1iF1t9qmGhTm ztw`nV_TS4}3R_Ynd8as9`y5wb!Q^!HYTiDKqaewe=`ZpJ6991kh~W{i%XIU==RjIP z9YhpO$-SR~1OlR4P-O)u58qobk2acjq+z_+?Z( zs$vM#-}nCqN>pQGBT{r?TDADC8SugddWUqa|Us!mXN^6#icd)#I{rlFyWUkuc5bgy^kMid7!mmao`((jyUhs z$@r+hp%4kCqW$&z_qbb?v+*MaieGAz3vVw*S1#Qj zbP_>-8p~pPqicJ^<0N-@2r0i{%-9E#cys38iuKHsK;k>Kyv{&)DmOze7&?`;C3I$np{Y3q0hS=rE4T5`~}!qB-;e_wRVL{~;|LMv4; zsY(yFIbxC@P95Av9Fg$j_ALL!hy$Y5dnI#=@(`_V9;8vxY(gg}P*}3otjk7hXOJf- zlW1<(c0HV%oLud%jR6OgT8ZQ`HK=74ay|CqP{sc6!A2|vC<-F8%rVi>*0Dp(yMh}? zC`b@@1KKpRdLV=A?Jb?w!F9|^Szw%lm-@}b5_U(2ZE1rAiO4zbq{sa;NFkuXil5Zc z>A^x2IG6gtFxCvDaKP-4auj6^nA7aLi&09qn>Q!is*t3@T`B!N2gR?GnN?L%M~@yA z5$UuShfX0aha|yfA3hb*I>@glw+}kqz^8?MXlyJ!wQxaEkpQ(4e`4T%WT1tbPXNo4 zpUg!rh`A{o?M@P_zMF$)$O^&c+gjw6#=?hnAWm#^$g5zaGZe<}7NP|wNlxhCf{|H% zNw~S*($a!9K2hHN`p;r!+tRfT)m(O(P~=Z^tfClFa9{n;su(1J#;&gOLP=YLjj!Ll ztQKPe#|{ha80($UQ48(=e$lE$)HPH<*)e;!f)2C&M;#cQ&@_h9u(?6z5%ic%@H>&; zQ7A&rcMXRj(3ZcDVux1i)WpO|i~4{|bjFuU2R}x;Rhb|>qVs`iJ}_r69VsO({Rt)~ z!_^nFdf;mLG&_5FZs<~>K9aw!6>i;>v*TaC!WY!~ z)~lK&g^^PjD43X<;*HQCL-4`3~U7ul#uogdz4KE02Z;#VaJ#Rj>TW3+1N&7WqFQjh>!_KPfV z00@%wW5Ms7#^wVsI7!#VNmymyJ{?K8O^&bE=;XDY)*p;>FgHaC0pI3#D$5At4=MU9Pn6})m={x*IHpE84;MI#|4C50$1 zopE)hkDK}%4iD^7)ht&a0$_-k_RbfPMqO7hJMcns$M>r(ot;`jNf3mmXA|QS6@^Sa zY|)e3Z~x=oxkw^aLHhskV@0V^ljvFAc=adm;hz9*xwnr`mY}0V8dzY8J86Ts5#CYA zxBu{WHDqXA1kVz6yGXJOOm9Sz�ZaB?1G)PPh4a;xOzO9Ic$gE+L3G@B=uVCgsL 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�@rxVSv(oiY)@ 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 S)qbM%fQE{e@^dANp#KB;RMS-e literal 0 HcmV?d00001 diff --git a/streamlit_app.py b/streamlit_app.py new file mode 100644 index 0000000..6e5ed71 --- /dev/null +++ b/streamlit_app.py @@ -0,0 +1,132 @@ +import datetime +import logging +import sys +from collections import OrderedDict + +import pandas as pd +import shap +import streamlit as st +from matplotlib import pyplot as plt + +from credit_model import CreditScoringModel + +logging.basicConfig( + level=logging.DEBUG, + format="%(asctime)s %(levelname)s %(message)s", + handlers=[logging.StreamHandler(sys.stdout)], +) + +logging.debug("Streamlit app started.") + +st.set_page_config(layout="wide") +model = CreditScoringModel() +if not model.is_model_trained(): + raise Exception("The credit scoring model has not been trained. Please run run.py.") + + +def get_loan_request(): + zipcode = st.sidebar.text_input("Zip code", "94109") + date_of_birth = st.sidebar.date_input( + "Date of birth", value=datetime.date(year=1986, day=19, month=3) + ) + ssn_last_four = st.sidebar.text_input( + "Last four digits of social security number", "3643" + ) + dob_ssn = f"{date_of_birth.strftime('%Y%m%d')}_{str(ssn_last_four)}" + age = st.sidebar.slider("Age", 0, 130, 25) + income = st.sidebar.slider("Yearly Income", 0, 1000000, 120000) + person_home_ownership = st.sidebar.selectbox( + "Do you own or rent your home?", ("RENT", "MORTGAGE", "OWN") + ) + + employment = st.sidebar.slider( + "How long have you been employed (months)?", 0, 120, 12 + ) + + loan_intent = st.sidebar.selectbox( + "Why do you want to apply for a loan?", + ( + "PERSONAL", + "VENTURE", + "HOMEIMPROVEMENT", + "EDUCATION", + "MEDICAL", + "DEBTCONSOLIDATION", + ), + ) + + amount = st.sidebar.slider("Loan amount", 0, 100000, 10000) + interest = st.sidebar.slider("Preferred interest rate", 1.0, 25.0, 12.0, step=0.1) + return OrderedDict( + { + "zipcode": [int(zipcode)], + "dob_ssn": [dob_ssn], + "person_age": [age], + "person_income": [income], + "person_home_ownership": [person_home_ownership], + "person_emp_length": [float(employment)], + "loan_intent": [loan_intent], + "loan_amnt": [amount], + "loan_int_rate": [interest], + } + ) + + +# Application +st.title("Loan Application") + +# Input Side Bar +st.header("User input:") +loan_request = get_loan_request() +df = pd.DataFrame.from_dict(loan_request) + +logging.debug(f"User input: {loan_request}") +st.write(df) + +# Full feature vector +st.header("Feature vector (user input + zipcode features + user features):") +vector = model._get_online_features_from_feast(loan_request) +ordered_vector = loan_request.copy() +key_list = vector.keys() +key_list = sorted(key_list) +for vector_key in key_list: + if vector_key not in ordered_vector: + ordered_vector[vector_key] = vector[vector_key] +df = pd.DataFrame.from_dict(ordered_vector) + +logging.debug(f"Online features from Feast: {vector}") +st.write(df) + +# Results of prediction +st.header("Application Status (model prediction):") +result = model.predict(loan_request) + +if result == 0: + st.success("Your loan has been approved!") +elif result == 1: + st.error("Your loan has been rejected!") + +logging.debug(f"Model prediction result: {result}") + +# Feature importance +st.header("Feature Importance") +# TODO: Load a sample dataset from feature store instead of a static file +X = pd.read_parquet("data/training_dataset_sample.parquet") +X['total_debt_due'] = (X['credit_card_due'] + X['mortgage_due'] + X['student_loan_due'] + X['vehicle_loan_due'] + X['loan_amnt']).astype(float) +explainer = shap.TreeExplainer(model.classifier) +shap_values = explainer.shap_values(X) +left, right = st.columns(2) +with left: + fig, ax = plt.subplots() + plt.title("Feature importance based on SHAP values") + shap.summary_plot(shap_values[:,:,1], X) # Select only the values for class 1 + st.pyplot(fig, bbox_inches="tight") + st.write("---") + +with right: + fig, ax = plt.subplots() + plt.title("Feature importance based on SHAP values (Bar)") + shap.summary_plot(shap_values[:,:,1], X, plot_type="bar") # Select only the values for class 1 + st.pyplot(fig, bbox_inches="tight") + +logging.debug("Streamlit app finished.") diff --git a/uv.lock b/uv.lock index 928e961..6dcd36c 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,26 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.12" +resolution-markers = [ + "python_full_version >= '3.14'", + "python_full_version < '3.14'", +] + +[[package]] +name = "altair" +version = "5.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "narwhals" }, + { name = "packaging" }, + { name = "typing-extensions", marker = "python_full_version < '3.14'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/b1/f2969c7bdb8ad8bbdda031687defdce2c19afba2aa2c8e1d2a17f78376d8/altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d", size = 705305, upload-time = "2024-11-23T23:39:58.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/aa/f3/0b6ced594e51cc95d8c1fc1640d3623770d01e4969d29c0bd09945fafefa/altair-5.5.0-py3-none-any.whl", hash = "sha256:91a310b926508d560fe0148d02a194f38b824122641ef528113d029fcd129f8c", size = 731200, upload-time = "2024-11-23T23:39:56.4Z" }, +] [[package]] name = "annotated-types" @@ -43,6 +63,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6f/88/54d3901f053612d9d7204fc57a4a79974a2c97b7ab7104e0a45ad1631a21/bigtree-0.29.2-py3-none-any.whl", hash = "sha256:beaf0c59e610d164140fcfd8d22c9c736dbfc1f06e3eb00724ede6810fecbf0b", size = 105326, upload-time = "2025-05-15T09:05:56.054Z" }, ] +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[package]] +name = "cachetools" +version = "6.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/44/ca1675be2a83aeee1886ab745b28cda92093066590233cc501890eb8417a/cachetools-6.2.2.tar.gz", hash = "sha256:8e6d266b25e539df852251cfd6f990b4bc3a141db73b939058d809ebd2590fc6", size = 31571, upload-time = "2025-11-13T17:42:51.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/46/eb6eca305c77a4489affe1c5d8f4cae82f285d9addd8de4ec084a7184221/cachetools-6.2.2-py3-none-any.whl", hash = "sha256:6c09c98183bf58560c97b2abfcedcbaf6a896a490f534b031b661d3723b45ace", size = 11503, upload-time = "2025-11-13T17:42:50.232Z" }, +] + [[package]] name = "certifi" version = "2025.8.3" @@ -117,6 +155,81 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + [[package]] name = "dask" version = "2025.7.0" @@ -221,6 +334,14 @@ dependencies = [ { name = "scikit-learn" }, ] +[package.optional-dependencies] +streamlit = [ + { name = "matplotlib" }, + { name = "shap", version = "0.49.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.14'" }, + { name = "shap", version = "0.50.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.14'" }, + { name = "streamlit" }, +] + [package.metadata] requires-dist = [ { name = "dask" }, @@ -228,10 +349,14 @@ requires-dist = [ { name = "grpcio" }, { name = "grpcio-reflection" }, { name = "grpcio-tools" }, + { name = "matplotlib", marker = "extra == 'streamlit'", specifier = ">=3.10.7" }, { name = "pandas" }, { name = "redis" }, { name = "scikit-learn" }, + { name = "shap", marker = "extra == 'streamlit'", specifier = ">=0.49.0" }, + { name = "streamlit", marker = "extra == 'streamlit'", specifier = ">=1.50.0" }, ] +provides-extras = ["streamlit"] [[package]] name = "filelock" @@ -242,6 +367,47 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4d/36/2a115987e2d8c300a974597416d9de88f2444426de9571f4b59b2cca3acc/filelock-3.18.0-py3-none-any.whl", hash = "sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de", size = 16215, upload-time = "2025-03-14T07:11:39.145Z" }, ] +[[package]] +name = "fonttools" +version = "4.60.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4b/42/97a13e47a1e51a5a7142475bbcf5107fe3a68fc34aef331c897d5fb98ad0/fonttools-4.60.1.tar.gz", hash = "sha256:ef00af0439ebfee806b25f24c8f92109157ff3fac5731dc7867957812e87b8d9", size = 3559823, upload-time = "2025-09-29T21:13:27.129Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/f7/a10b101b7a6f8836a5adb47f2791f2075d044a6ca123f35985c42edc82d8/fonttools-4.60.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:7b0c6d57ab00dae9529f3faf187f2254ea0aa1e04215cf2f1a8ec277c96661bc", size = 2832953, upload-time = "2025-09-29T21:11:39.616Z" }, + { url = "https://files.pythonhosted.org/packages/ed/fe/7bd094b59c926acf2304d2151354ddbeb74b94812f3dc943c231db09cb41/fonttools-4.60.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:839565cbf14645952d933853e8ade66a463684ed6ed6c9345d0faf1f0e868877", size = 2352706, upload-time = "2025-09-29T21:11:41.826Z" }, + { url = "https://files.pythonhosted.org/packages/c0/ca/4bb48a26ed95a1e7eba175535fe5805887682140ee0a0d10a88e1de84208/fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8177ec9676ea6e1793c8a084a90b65a9f778771998eb919d05db6d4b1c0b114c", size = 4923716, upload-time = "2025-09-29T21:11:43.893Z" }, + { url = "https://files.pythonhosted.org/packages/b8/9f/2cb82999f686c1d1ddf06f6ae1a9117a880adbec113611cc9d22b2fdd465/fonttools-4.60.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:996a4d1834524adbb423385d5a629b868ef9d774670856c63c9a0408a3063401", size = 4968175, upload-time = "2025-09-29T21:11:46.439Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/be569699e37d166b78e6218f2cde8c550204f2505038cdd83b42edc469b9/fonttools-4.60.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a46b2f450bc79e06ef3b6394f0c68660529ed51692606ad7f953fc2e448bc903", size = 4911031, upload-time = "2025-09-29T21:11:48.977Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9f/89411cc116effaec5260ad519162f64f9c150e5522a27cbb05eb62d0c05b/fonttools-4.60.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6ec722ee589e89a89f5b7574f5c45604030aa6ae24cb2c751e2707193b466fed", size = 5062966, upload-time = "2025-09-29T21:11:54.344Z" }, + { url = "https://files.pythonhosted.org/packages/62/a1/f888221934b5731d46cb9991c7a71f30cb1f97c0ef5fcf37f8da8fce6c8e/fonttools-4.60.1-cp312-cp312-win32.whl", hash = "sha256:b2cf105cee600d2de04ca3cfa1f74f1127f8455b71dbad02b9da6ec266e116d6", size = 2218750, upload-time = "2025-09-29T21:11:56.601Z" }, + { url = "https://files.pythonhosted.org/packages/88/8f/a55b5550cd33cd1028601df41acd057d4be20efa5c958f417b0c0613924d/fonttools-4.60.1-cp312-cp312-win_amd64.whl", hash = "sha256:992775c9fbe2cf794786fa0ffca7f09f564ba3499b8fe9f2f80bd7197db60383", size = 2267026, upload-time = "2025-09-29T21:11:58.852Z" }, + { url = "https://files.pythonhosted.org/packages/7c/5b/cdd2c612277b7ac7ec8c0c9bc41812c43dc7b2d5f2b0897e15fdf5a1f915/fonttools-4.60.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6f68576bb4bbf6060c7ab047b1574a1ebe5c50a17de62830079967b211059ebb", size = 2825777, upload-time = "2025-09-29T21:12:01.22Z" }, + { url = "https://files.pythonhosted.org/packages/d6/8a/de9cc0540f542963ba5e8f3a1f6ad48fa211badc3177783b9d5cadf79b5d/fonttools-4.60.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:eedacb5c5d22b7097482fa834bda0dafa3d914a4e829ec83cdea2a01f8c813c4", size = 2348080, upload-time = "2025-09-29T21:12:03.785Z" }, + { url = "https://files.pythonhosted.org/packages/2d/8b/371ab3cec97ee3fe1126b3406b7abd60c8fec8975fd79a3c75cdea0c3d83/fonttools-4.60.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b33a7884fabd72bdf5f910d0cf46be50dce86a0362a65cfc746a4168c67eb96c", size = 4903082, upload-time = "2025-09-29T21:12:06.382Z" }, + { url = "https://files.pythonhosted.org/packages/04/05/06b1455e4bc653fcb2117ac3ef5fa3a8a14919b93c60742d04440605d058/fonttools-4.60.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2409d5fb7b55fd70f715e6d34e7a6e4f7511b8ad29a49d6df225ee76da76dd77", size = 4960125, upload-time = "2025-09-29T21:12:09.314Z" }, + { url = "https://files.pythonhosted.org/packages/8e/37/f3b840fcb2666f6cb97038793606bdd83488dca2d0b0fc542ccc20afa668/fonttools-4.60.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c8651e0d4b3bdeda6602b85fdc2abbefc1b41e573ecb37b6779c4ca50753a199", size = 4901454, upload-time = "2025-09-29T21:12:11.931Z" }, + { url = "https://files.pythonhosted.org/packages/fd/9e/eb76f77e82f8d4a46420aadff12cec6237751b0fb9ef1de373186dcffb5f/fonttools-4.60.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:145daa14bf24824b677b9357c5e44fd8895c2a8f53596e1b9ea3496081dc692c", size = 5044495, upload-time = "2025-09-29T21:12:15.241Z" }, + { url = "https://files.pythonhosted.org/packages/f8/b3/cede8f8235d42ff7ae891bae8d619d02c8ac9fd0cfc450c5927a6200c70d/fonttools-4.60.1-cp313-cp313-win32.whl", hash = "sha256:2299df884c11162617a66b7c316957d74a18e3758c0274762d2cc87df7bc0272", size = 2217028, upload-time = "2025-09-29T21:12:17.96Z" }, + { url = "https://files.pythonhosted.org/packages/75/4d/b022c1577807ce8b31ffe055306ec13a866f2337ecee96e75b24b9b753ea/fonttools-4.60.1-cp313-cp313-win_amd64.whl", hash = "sha256:a3db56f153bd4c5c2b619ab02c5db5192e222150ce5a1bc10f16164714bc39ac", size = 2266200, upload-time = "2025-09-29T21:12:20.14Z" }, + { url = "https://files.pythonhosted.org/packages/9a/83/752ca11c1aa9a899b793a130f2e466b79ea0cf7279c8d79c178fc954a07b/fonttools-4.60.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:a884aef09d45ba1206712c7dbda5829562d3fea7726935d3289d343232ecb0d3", size = 2822830, upload-time = "2025-09-29T21:12:24.406Z" }, + { url = "https://files.pythonhosted.org/packages/57/17/bbeab391100331950a96ce55cfbbff27d781c1b85ebafb4167eae50d9fe3/fonttools-4.60.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8a44788d9d91df72d1a5eac49b31aeb887a5f4aab761b4cffc4196c74907ea85", size = 2345524, upload-time = "2025-09-29T21:12:26.819Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2e/d4831caa96d85a84dd0da1d9f90d81cec081f551e0ea216df684092c6c97/fonttools-4.60.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e852d9dda9f93ad3651ae1e3bb770eac544ec93c3807888798eccddf84596537", size = 4843490, upload-time = "2025-09-29T21:12:29.123Z" }, + { url = "https://files.pythonhosted.org/packages/49/13/5e2ea7c7a101b6fc3941be65307ef8df92cbbfa6ec4804032baf1893b434/fonttools-4.60.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:154cb6ee417e417bf5f7c42fe25858c9140c26f647c7347c06f0cc2d47eff003", size = 4944184, upload-time = "2025-09-29T21:12:31.414Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2b/cf9603551c525b73fc47c52ee0b82a891579a93d9651ed694e4e2cd08bb8/fonttools-4.60.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:5664fd1a9ea7f244487ac8f10340c4e37664675e8667d6fee420766e0fb3cf08", size = 4890218, upload-time = "2025-09-29T21:12:33.936Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2f/933d2352422e25f2376aae74f79eaa882a50fb3bfef3c0d4f50501267101/fonttools-4.60.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:583b7f8e3c49486e4d489ad1deacfb8d5be54a8ef34d6df824f6a171f8511d99", size = 4999324, upload-time = "2025-09-29T21:12:36.637Z" }, + { url = "https://files.pythonhosted.org/packages/38/99/234594c0391221f66216bc2c886923513b3399a148defaccf81dc3be6560/fonttools-4.60.1-cp314-cp314-win32.whl", hash = "sha256:66929e2ea2810c6533a5184f938502cfdaea4bc3efb7130d8cc02e1c1b4108d6", size = 2220861, upload-time = "2025-09-29T21:12:39.108Z" }, + { url = "https://files.pythonhosted.org/packages/3e/1d/edb5b23726dde50fc4068e1493e4fc7658eeefcaf75d4c5ffce067d07ae5/fonttools-4.60.1-cp314-cp314-win_amd64.whl", hash = "sha256:f3d5be054c461d6a2268831f04091dc82753176f6ea06dc6047a5e168265a987", size = 2270934, upload-time = "2025-09-29T21:12:41.339Z" }, + { url = "https://files.pythonhosted.org/packages/fb/da/1392aaa2170adc7071fe7f9cfd181a5684a7afcde605aebddf1fb4d76df5/fonttools-4.60.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:b6379e7546ba4ae4b18f8ae2b9bc5960936007a1c0e30b342f662577e8bc3299", size = 2894340, upload-time = "2025-09-29T21:12:43.774Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a7/3b9f16e010d536ce567058b931a20b590d8f3177b2eda09edd92e392375d/fonttools-4.60.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9d0ced62b59e0430b3690dbc5373df1c2aa7585e9a8ce38eff87f0fd993c5b01", size = 2375073, upload-time = "2025-09-29T21:12:46.437Z" }, + { url = "https://files.pythonhosted.org/packages/9b/b5/e9bcf51980f98e59bb5bb7c382a63c6f6cac0eec5f67de6d8f2322382065/fonttools-4.60.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:875cb7764708b3132637f6c5fb385b16eeba0f7ac9fa45a69d35e09b47045801", size = 4849758, upload-time = "2025-09-29T21:12:48.694Z" }, + { url = "https://files.pythonhosted.org/packages/e3/dc/1d2cf7d1cba82264b2f8385db3f5960e3d8ce756b4dc65b700d2c496f7e9/fonttools-4.60.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a184b2ea57b13680ab6d5fbde99ccef152c95c06746cb7718c583abd8f945ccc", size = 5085598, upload-time = "2025-09-29T21:12:51.081Z" }, + { url = "https://files.pythonhosted.org/packages/5d/4d/279e28ba87fb20e0c69baf72b60bbf1c4d873af1476806a7b5f2b7fac1ff/fonttools-4.60.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:026290e4ec76583881763fac284aca67365e0be9f13a7fb137257096114cb3bc", size = 4957603, upload-time = "2025-09-29T21:12:53.423Z" }, + { url = "https://files.pythonhosted.org/packages/78/d4/ff19976305e0c05aa3340c805475abb00224c954d3c65e82c0a69633d55d/fonttools-4.60.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f0e8817c7d1a0c2eedebf57ef9a9896f3ea23324769a9a2061a80fe8852705ed", size = 4974184, upload-time = "2025-09-29T21:12:55.962Z" }, + { url = "https://files.pythonhosted.org/packages/63/22/8553ff6166f5cd21cfaa115aaacaa0dc73b91c079a8cfd54a482cbc0f4f5/fonttools-4.60.1-cp314-cp314t-win32.whl", hash = "sha256:1410155d0e764a4615774e5c2c6fc516259fe3eca5882f034eb9bfdbee056259", size = 2282241, upload-time = "2025-09-29T21:12:58.179Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cb/fa7b4d148e11d5a72761a22e595344133e83a9507a4c231df972e657579b/fonttools-4.60.1-cp314-cp314t-win_amd64.whl", hash = "sha256:022beaea4b73a70295b688f817ddc24ed3e3418b5036ffcd5658141184ef0d0c", size = 2345760, upload-time = "2025-09-29T21:13:00.375Z" }, + { url = "https://files.pythonhosted.org/packages/c7/93/0dd45cd283c32dea1545151d8c3637b4b8c53cdb3a625aeb2885b184d74d/fonttools-4.60.1-py3-none-any.whl", hash = "sha256:906306ac7afe2156fcf0042173d6ebbb05416af70f6b370967b47f8f00103bbb", size = 1143175, upload-time = "2025-09-29T21:13:24.134Z" }, +] + [[package]] name = "fsspec" version = "2025.7.0" @@ -251,6 +417,30 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2f/e0/014d5d9d7a4564cf1c40b5039bc882db69fd881111e03ab3657ac0b218e2/fsspec-2025.7.0-py3-none-any.whl", hash = "sha256:8b012e39f63c7d5f10474de957f3ab793b47b45ae7d39f2fb735f8bbe25c0e21", size = 199597, upload-time = "2025-07-15T16:05:19.529Z" }, ] +[[package]] +name = "gitdb" +version = "4.0.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "smmap" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/72/94/63b0fc47eb32792c7ba1fe1b694daec9a63620db1e313033d18140c2320a/gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571", size = 394684, upload-time = "2025-01-02T07:20:46.413Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/61/5c78b91c3143ed5c14207f463aecfc8f9dbb5092fb2869baf37c273b2705/gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf", size = 62794, upload-time = "2025-01-02T07:20:43.624Z" }, +] + +[[package]] +name = "gitpython" +version = "3.1.45" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "gitdb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9a/c8/dd58967d119baab745caec2f9d853297cec1989ec1d63f677d3880632b88/gitpython-3.1.45.tar.gz", hash = "sha256:85b0ee964ceddf211c41b9f27a49086010a190fd8132a24e21f362a4b36a791c", size = 215076, upload-time = "2025-07-24T03:45:54.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/01/61/d4b89fec821f72385526e1b9d9a3a0385dda4a72b206d28049e2c7cd39b8/gitpython-3.1.45-py3-none-any.whl", hash = "sha256:8908cb2e02fb3b93b7eb0f2827125cb699869470432cc885f019b8fd0fccff77", size = 208168, upload-time = "2025-07-24T03:45:52.517Z" }, +] + [[package]] name = "greenlet" version = "3.2.4" @@ -265,6 +455,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, { url = "https://files.pythonhosted.org/packages/3f/c7/12381b18e21aef2c6bd3a636da1088b888b97b7a0362fac2e4de92405f97/greenlet-3.2.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:20fb936b4652b6e307b8f347665e2c615540d4b42b3b4c8a321d8286da7e520f", size = 1151142, upload-time = "2025-08-07T13:18:22.981Z" }, + { url = "https://files.pythonhosted.org/packages/27/45/80935968b53cfd3f33cf99ea5f08227f2646e044568c9b1555b58ffd61c2/greenlet-3.2.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ee7a6ec486883397d70eec05059353b8e83eca9168b9f3f9a361971e77e0bcd0", size = 1564846, upload-time = "2025-11-04T12:42:15.191Z" }, + { url = "https://files.pythonhosted.org/packages/69/02/b7c30e5e04752cb4db6202a3858b149c0710e5453b71a3b2aec5d78a1aab/greenlet-3.2.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:326d234cbf337c9c3def0676412eb7040a35a768efc92504b947b3e9cfc7543d", size = 1633814, upload-time = "2025-11-04T12:42:17.175Z" }, { url = "https://files.pythonhosted.org/packages/e9/08/b0814846b79399e585f974bbeebf5580fbe59e258ea7be64d9dfb253c84f/greenlet-3.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:a7d4e128405eea3814a12cc2605e0e6aedb4035bf32697f72deca74de4105e02", size = 299899, upload-time = "2025-08-07T13:38:53.448Z" }, { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, @@ -274,6 +466,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, { url = "https://files.pythonhosted.org/packages/a2/15/0d5e4e1a66fab130d98168fe984c509249c833c1a3c16806b90f253ce7b9/greenlet-3.2.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d25c5091190f2dc0eaa3f950252122edbbadbb682aa7b1ef2f8af0f8c0afefae", size = 1149210, upload-time = "2025-08-07T13:18:24.072Z" }, + { url = "https://files.pythonhosted.org/packages/1c/53/f9c440463b3057485b8594d7a638bed53ba531165ef0ca0e6c364b5cc807/greenlet-3.2.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e343822feb58ac4d0a1211bd9399de2b3a04963ddeec21530fc426cc121f19b", size = 1564759, upload-time = "2025-11-04T12:42:19.395Z" }, + { url = "https://files.pythonhosted.org/packages/47/e4/3bb4240abdd0a8d23f4f88adec746a3099f0d86bfedb623f063b2e3b4df0/greenlet-3.2.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca7f6f1f2649b89ce02f6f229d7c19f680a6238af656f61e0115b24857917929", size = 1634288, upload-time = "2025-11-04T12:42:21.174Z" }, { url = "https://files.pythonhosted.org/packages/0b/55/2321e43595e6801e105fcfdee02b34c0f996eb71e6ddffca6b10b7e1d771/greenlet-3.2.4-cp313-cp313-win_amd64.whl", hash = "sha256:554b03b6e73aaabec3745364d6239e9e012d64c68ccd0b8430c64ccc14939a8b", size = 299685, upload-time = "2025-08-07T13:24:38.824Z" }, { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, @@ -281,6 +475,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", size = 1612508, upload-time = "2025-11-04T12:42:23.427Z" }, + { url = "https://files.pythonhosted.org/packages/0d/da/343cd760ab2f92bac1845ca07ee3faea9fe52bee65f7bcb19f16ad7de08b/greenlet-3.2.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:015d48959d4add5d6c9f6c5210ee3803a830dce46356e3bc326d6776bde54681", size = 1680760, upload-time = "2025-11-04T12:42:25.341Z" }, { url = "https://files.pythonhosted.org/packages/e3/a5/6ddab2b4c112be95601c13428db1d8b6608a8b6039816f2ba09c346c08fc/greenlet-3.2.4-cp314-cp314-win_amd64.whl", hash = "sha256:e37ab26028f12dbb0ff65f29a8d3d44a765c61e729647bf2ddfbbed621726f01", size = 303425, upload-time = "2025-08-07T13:32:27.59Z" }, ] @@ -492,6 +688,96 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/01/0e/b27cdbaccf30b890c40ed1da9fd4a3593a5cf94dae54fb34f8a4b74fcd3f/jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af", size = 18437, upload-time = "2025-04-23T12:34:05.422Z" }, ] +[[package]] +name = "kiwisolver" +version = "1.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686, upload-time = "2025-08-10T21:26:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460, upload-time = "2025-08-10T21:26:11.083Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952, upload-time = "2025-08-10T21:26:12.058Z" }, + { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756, upload-time = "2025-08-10T21:26:13.096Z" }, + { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404, upload-time = "2025-08-10T21:26:14.457Z" }, + { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410, upload-time = "2025-08-10T21:26:15.73Z" }, + { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631, upload-time = "2025-08-10T21:26:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963, upload-time = "2025-08-10T21:26:18.737Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295, upload-time = "2025-08-10T21:26:20.11Z" }, + { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987, upload-time = "2025-08-10T21:26:21.49Z" }, + { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817, upload-time = "2025-08-10T21:26:22.812Z" }, + { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895, upload-time = "2025-08-10T21:26:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992, upload-time = "2025-08-10T21:26:25.732Z" }, + { url = "https://files.pythonhosted.org/packages/31/c1/c2686cda909742ab66c7388e9a1a8521a59eb89f8bcfbee28fc980d07e24/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8", size = 123681, upload-time = "2025-08-10T21:26:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f0/f44f50c9f5b1a1860261092e3bc91ecdc9acda848a8b8c6abfda4a24dd5c/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2", size = 66464, upload-time = "2025-08-10T21:26:27.733Z" }, + { url = "https://files.pythonhosted.org/packages/2d/7a/9d90a151f558e29c3936b8a47ac770235f436f2120aca41a6d5f3d62ae8d/kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f", size = 64961, upload-time = "2025-08-10T21:26:28.729Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098", size = 1474607, upload-time = "2025-08-10T21:26:29.798Z" }, + { url = "https://files.pythonhosted.org/packages/d9/28/aac26d4c882f14de59041636292bc838db8961373825df23b8eeb807e198/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed", size = 1276546, upload-time = "2025-08-10T21:26:31.401Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ad/8bfc1c93d4cc565e5069162f610ba2f48ff39b7de4b5b8d93f69f30c4bed/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525", size = 1294482, upload-time = "2025-08-10T21:26:32.721Z" }, + { url = "https://files.pythonhosted.org/packages/da/f1/6aca55ff798901d8ce403206d00e033191f63d82dd708a186e0ed2067e9c/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78", size = 1343720, upload-time = "2025-08-10T21:26:34.032Z" }, + { url = "https://files.pythonhosted.org/packages/d1/91/eed031876c595c81d90d0f6fc681ece250e14bf6998c3d7c419466b523b7/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b", size = 2224907, upload-time = "2025-08-10T21:26:35.824Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ec/4d1925f2e49617b9cca9c34bfa11adefad49d00db038e692a559454dfb2e/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799", size = 2321334, upload-time = "2025-08-10T21:26:37.534Z" }, + { url = "https://files.pythonhosted.org/packages/43/cb/450cd4499356f68802750c6ddc18647b8ea01ffa28f50d20598e0befe6e9/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3", size = 2488313, upload-time = "2025-08-10T21:26:39.191Z" }, + { url = "https://files.pythonhosted.org/packages/71/67/fc76242bd99f885651128a5d4fa6083e5524694b7c88b489b1b55fdc491d/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c", size = 2291970, upload-time = "2025-08-10T21:26:40.828Z" }, + { url = "https://files.pythonhosted.org/packages/75/bd/f1a5d894000941739f2ae1b65a32892349423ad49c2e6d0771d0bad3fae4/kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d", size = 73894, upload-time = "2025-08-10T21:26:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/95/38/dce480814d25b99a391abbddadc78f7c117c6da34be68ca8b02d5848b424/kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2", size = 64995, upload-time = "2025-08-10T21:26:43.889Z" }, + { url = "https://files.pythonhosted.org/packages/e2/37/7d218ce5d92dadc5ebdd9070d903e0c7cf7edfe03f179433ac4d13ce659c/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1", size = 126510, upload-time = "2025-08-10T21:26:44.915Z" }, + { url = "https://files.pythonhosted.org/packages/23/b0/e85a2b48233daef4b648fb657ebbb6f8367696a2d9548a00b4ee0eb67803/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1", size = 67903, upload-time = "2025-08-10T21:26:45.934Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/f2425bc0113ad7de24da6bb4dae1343476e95e1d738be7c04d31a5d037fd/kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11", size = 66402, upload-time = "2025-08-10T21:26:47.101Z" }, + { url = "https://files.pythonhosted.org/packages/98/d8/594657886df9f34c4177cc353cc28ca7e6e5eb562d37ccc233bff43bbe2a/kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c", size = 1582135, upload-time = "2025-08-10T21:26:48.665Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c6/38a115b7170f8b306fc929e166340c24958347308ea3012c2b44e7e295db/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197", size = 1389409, upload-time = "2025-08-10T21:26:50.335Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3b/e04883dace81f24a568bcee6eb3001da4ba05114afa622ec9b6fafdc1f5e/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c", size = 1401763, upload-time = "2025-08-10T21:26:51.867Z" }, + { url = "https://files.pythonhosted.org/packages/9f/80/20ace48e33408947af49d7d15c341eaee69e4e0304aab4b7660e234d6288/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185", size = 1453643, upload-time = "2025-08-10T21:26:53.592Z" }, + { url = "https://files.pythonhosted.org/packages/64/31/6ce4380a4cd1f515bdda976a1e90e547ccd47b67a1546d63884463c92ca9/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748", size = 2330818, upload-time = "2025-08-10T21:26:55.051Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e9/3f3fcba3bcc7432c795b82646306e822f3fd74df0ee81f0fa067a1f95668/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64", size = 2419963, upload-time = "2025-08-10T21:26:56.421Z" }, + { url = "https://files.pythonhosted.org/packages/99/43/7320c50e4133575c66e9f7dadead35ab22d7c012a3b09bb35647792b2a6d/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff", size = 2594639, upload-time = "2025-08-10T21:26:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/65/d6/17ae4a270d4a987ef8a385b906d2bdfc9fce502d6dc0d3aea865b47f548c/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07", size = 2391741, upload-time = "2025-08-10T21:26:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8f/8f6f491d595a9e5912971f3f863d81baddccc8a4d0c3749d6a0dd9ffc9df/kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c", size = 68646, upload-time = "2025-08-10T21:27:00.52Z" }, + { url = "https://files.pythonhosted.org/packages/6b/32/6cc0fbc9c54d06c2969faa9c1d29f5751a2e51809dd55c69055e62d9b426/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386", size = 123806, upload-time = "2025-08-10T21:27:01.537Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/2bfb1d4a4823d92e8cbb420fe024b8d2167f72079b3bb941207c42570bdf/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552", size = 66605, upload-time = "2025-08-10T21:27:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3", size = 64925, upload-time = "2025-08-10T21:27:04.339Z" }, + { url = "https://files.pythonhosted.org/packages/43/dc/51acc6791aa14e5cb6d8a2e28cefb0dc2886d8862795449d021334c0df20/kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58", size = 1472414, upload-time = "2025-08-10T21:27:05.437Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bb/93fa64a81db304ac8a246f834d5094fae4b13baf53c839d6bb6e81177129/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4", size = 1281272, upload-time = "2025-08-10T21:27:07.063Z" }, + { url = "https://files.pythonhosted.org/packages/70/e6/6df102916960fb8d05069d4bd92d6d9a8202d5a3e2444494e7cd50f65b7a/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df", size = 1298578, upload-time = "2025-08-10T21:27:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/7c/47/e142aaa612f5343736b087864dbaebc53ea8831453fb47e7521fa8658f30/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6", size = 1345607, upload-time = "2025-08-10T21:27:10.125Z" }, + { url = "https://files.pythonhosted.org/packages/54/89/d641a746194a0f4d1a3670fb900d0dbaa786fb98341056814bc3f058fa52/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5", size = 2230150, upload-time = "2025-08-10T21:27:11.484Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6b/5ee1207198febdf16ac11f78c5ae40861b809cbe0e6d2a8d5b0b3044b199/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf", size = 2325979, upload-time = "2025-08-10T21:27:12.917Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ff/b269eefd90f4ae14dcc74973d5a0f6d28d3b9bb1afd8c0340513afe6b39a/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5", size = 2491456, upload-time = "2025-08-10T21:27:14.353Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d4/10303190bd4d30de547534601e259a4fbf014eed94aae3e5521129215086/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce", size = 2294621, upload-time = "2025-08-10T21:27:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/28/e0/a9a90416fce5c0be25742729c2ea52105d62eda6c4be4d803c2a7be1fa50/kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7", size = 75417, upload-time = "2025-08-10T21:27:17.436Z" }, + { url = "https://files.pythonhosted.org/packages/1f/10/6949958215b7a9a264299a7db195564e87900f709db9245e4ebdd3c70779/kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c", size = 66582, upload-time = "2025-08-10T21:27:18.436Z" }, + { url = "https://files.pythonhosted.org/packages/ec/79/60e53067903d3bc5469b369fe0dfc6b3482e2133e85dae9daa9527535991/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548", size = 126514, upload-time = "2025-08-10T21:27:19.465Z" }, + { url = "https://files.pythonhosted.org/packages/25/d1/4843d3e8d46b072c12a38c97c57fab4608d36e13fe47d47ee96b4d61ba6f/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d", size = 67905, upload-time = "2025-08-10T21:27:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ae/29ffcbd239aea8b93108de1278271ae764dfc0d803a5693914975f200596/kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c", size = 66399, upload-time = "2025-08-10T21:27:21.496Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ae/d7ba902aa604152c2ceba5d352d7b62106bedbccc8e95c3934d94472bfa3/kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122", size = 1582197, upload-time = "2025-08-10T21:27:22.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/41/27c70d427eddb8bc7e4f16420a20fefc6f480312122a59a959fdfe0445ad/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64", size = 1390125, upload-time = "2025-08-10T21:27:24.036Z" }, + { url = "https://files.pythonhosted.org/packages/41/42/b3799a12bafc76d962ad69083f8b43b12bf4fe78b097b12e105d75c9b8f1/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134", size = 1402612, upload-time = "2025-08-10T21:27:25.773Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b5/a210ea073ea1cfaca1bb5c55a62307d8252f531beb364e18aa1e0888b5a0/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370", size = 1453990, upload-time = "2025-08-10T21:27:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ce/a829eb8c033e977d7ea03ed32fb3c1781b4fa0433fbadfff29e39c676f32/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21", size = 2331601, upload-time = "2025-08-10T21:27:29.343Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4b/b5e97eb142eb9cd0072dacfcdcd31b1c66dc7352b0f7c7255d339c0edf00/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a", size = 2422041, upload-time = "2025-08-10T21:27:30.754Z" }, + { url = "https://files.pythonhosted.org/packages/40/be/8eb4cd53e1b85ba4edc3a9321666f12b83113a178845593307a3e7891f44/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f", size = 2594897, upload-time = "2025-08-10T21:27:32.803Z" }, + { url = "https://files.pythonhosted.org/packages/99/dd/841e9a66c4715477ea0abc78da039832fbb09dac5c35c58dc4c41a407b8a/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369", size = 2391835, upload-time = "2025-08-10T21:27:34.23Z" }, + { url = "https://files.pythonhosted.org/packages/0c/28/4b2e5c47a0da96896fdfdb006340ade064afa1e63675d01ea5ac222b6d52/kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891", size = 79988, upload-time = "2025-08-10T21:27:35.587Z" }, + { url = "https://files.pythonhosted.org/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" }, +] + +[[package]] +name = "llvmlite" +version = "0.45.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/99/8d/5baf1cef7f9c084fb35a8afbde88074f0d6a727bc63ef764fe0e7543ba40/llvmlite-0.45.1.tar.gz", hash = "sha256:09430bb9d0bb58fc45a45a57c7eae912850bedc095cd0810a57de109c69e1c32", size = 185600, upload-time = "2025-10-01T17:59:52.046Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e2/7c/82cbd5c656e8991bcc110c69d05913be2229302a92acb96109e166ae31fb/llvmlite-0.45.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:28e763aba92fe9c72296911e040231d486447c01d4f90027c8e893d89d49b20e", size = 43043524, upload-time = "2025-10-01T18:03:30.666Z" }, + { url = "https://files.pythonhosted.org/packages/9d/bc/5314005bb2c7ee9f33102c6456c18cc81745d7055155d1218f1624463774/llvmlite-0.45.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1a53f4b74ee9fd30cb3d27d904dadece67a7575198bd80e687ee76474620735f", size = 37253123, upload-time = "2025-10-01T18:04:18.177Z" }, + { url = "https://files.pythonhosted.org/packages/96/76/0f7154952f037cb320b83e1c952ec4a19d5d689cf7d27cb8a26887d7bbc1/llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b3796b1b1e1c14dcae34285d2f4ea488402fbd2c400ccf7137603ca3800864f", size = 56288211, upload-time = "2025-10-01T18:01:24.079Z" }, + { url = "https://files.pythonhosted.org/packages/00/b1/0b581942be2683ceb6862d558979e87387e14ad65a1e4db0e7dd671fa315/llvmlite-0.45.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:779e2f2ceefef0f4368548685f0b4adde34e5f4b457e90391f570a10b348d433", size = 55140958, upload-time = "2025-10-01T18:02:30.482Z" }, + { url = "https://files.pythonhosted.org/packages/33/94/9ba4ebcf4d541a325fd8098ddc073b663af75cc8b065b6059848f7d4dce7/llvmlite-0.45.1-cp312-cp312-win_amd64.whl", hash = "sha256:9e6c9949baf25d9aa9cd7cf0f6d011b9ca660dd17f5ba2b23bdbdb77cc86b116", size = 38132231, upload-time = "2025-10-01T18:05:03.664Z" }, + { url = "https://files.pythonhosted.org/packages/1d/e2/c185bb7e88514d5025f93c6c4092f6120c6cea8fe938974ec9860fb03bbb/llvmlite-0.45.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:d9ea9e6f17569a4253515cc01dade70aba536476e3d750b2e18d81d7e670eb15", size = 43043524, upload-time = "2025-10-01T18:03:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/09/b8/b5437b9ecb2064e89ccf67dccae0d02cd38911705112dd0dcbfa9cd9a9de/llvmlite-0.45.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:c9f3cadee1630ce4ac18ea38adebf2a4f57a89bd2740ce83746876797f6e0bfb", size = 37253121, upload-time = "2025-10-01T18:04:30.557Z" }, + { url = "https://files.pythonhosted.org/packages/f7/97/ad1a907c0173a90dd4df7228f24a3ec61058bc1a9ff8a0caec20a0cc622e/llvmlite-0.45.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:57c48bf2e1083eedbc9406fb83c4e6483017879714916fe8be8a72a9672c995a", size = 56288210, upload-time = "2025-10-01T18:01:40.26Z" }, + { url = "https://files.pythonhosted.org/packages/32/d8/c99c8ac7a326e9735401ead3116f7685a7ec652691aeb2615aa732b1fc4a/llvmlite-0.45.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3aa3dfceda4219ae39cf18806c60eeb518c1680ff834b8b311bd784160b9ce40", size = 55140957, upload-time = "2025-10-01T18:02:46.244Z" }, + { url = "https://files.pythonhosted.org/packages/09/56/ed35668130e32dbfad2eb37356793b0a95f23494ab5be7d9bf5cb75850ee/llvmlite-0.45.1-cp313-cp313-win_amd64.whl", hash = "sha256:080e6f8d0778a8239cd47686d402cb66eb165e421efa9391366a9b7e5810a38b", size = 38132232, upload-time = "2025-10-01T18:05:14.477Z" }, +] + [[package]] name = "locket" version = "1.0.0" @@ -539,6 +825,60 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739, upload-time = "2024-10-18T15:21:42.784Z" }, ] +[[package]] +name = "matplotlib" +version = "3.10.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/e2/d2d5295be2f44c678ebaf3544ba32d20c1f9ef08c49fe47f496180e1db15/matplotlib-3.10.7.tar.gz", hash = "sha256:a06ba7e2a2ef9131c79c49e63dad355d2d878413a0376c1727c8b9335ff731c7", size = 34804865, upload-time = "2025-10-09T00:28:00.669Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/be/b3/09eb0f7796932826ec20c25b517d568627754f6c6462fca19e12c02f2e12/matplotlib-3.10.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7a0edb7209e21840e8361e91ea84ea676658aa93edd5f8762793dec77a4a6748", size = 8272389, upload-time = "2025-10-09T00:26:42.474Z" }, + { url = "https://files.pythonhosted.org/packages/11/0b/1ae80ddafb8652fd8046cb5c8460ecc8d4afccb89e2c6d6bec61e04e1eaf/matplotlib-3.10.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c380371d3c23e0eadf8ebff114445b9f970aff2010198d498d4ab4c3b41eea4f", size = 8128247, upload-time = "2025-10-09T00:26:44.77Z" }, + { url = "https://files.pythonhosted.org/packages/7d/18/95ae2e242d4a5c98bd6e90e36e128d71cf1c7e39b0874feaed3ef782e789/matplotlib-3.10.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d5f256d49fea31f40f166a5e3131235a5d2f4b7f44520b1cf0baf1ce568ccff0", size = 8696996, upload-time = "2025-10-09T00:26:46.792Z" }, + { url = "https://files.pythonhosted.org/packages/7e/3d/5b559efc800bd05cb2033aa85f7e13af51958136a48327f7c261801ff90a/matplotlib-3.10.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11ae579ac83cdf3fb72573bb89f70e0534de05266728740d478f0f818983c695", size = 9530153, upload-time = "2025-10-09T00:26:49.07Z" }, + { url = "https://files.pythonhosted.org/packages/88/57/eab4a719fd110312d3c220595d63a3c85ec2a39723f0f4e7fa7e6e3f74ba/matplotlib-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4c14b6acd16cddc3569a2d515cfdd81c7a68ac5639b76548cfc1a9e48b20eb65", size = 9593093, upload-time = "2025-10-09T00:26:51.067Z" }, + { url = "https://files.pythonhosted.org/packages/31/3c/80816f027b3a4a28cd2a0a6ef7f89a2db22310e945cd886ec25bfb399221/matplotlib-3.10.7-cp312-cp312-win_amd64.whl", hash = "sha256:0d8c32b7ea6fb80b1aeff5a2ceb3fb9778e2759e899d9beff75584714afcc5ee", size = 8122771, upload-time = "2025-10-09T00:26:53.296Z" }, + { url = "https://files.pythonhosted.org/packages/de/77/ef1fc78bfe99999b2675435cc52120887191c566b25017d78beaabef7f2d/matplotlib-3.10.7-cp312-cp312-win_arm64.whl", hash = "sha256:5f3f6d315dcc176ba7ca6e74c7768fb7e4cf566c49cb143f6bc257b62e634ed8", size = 7992812, upload-time = "2025-10-09T00:26:54.882Z" }, + { url = "https://files.pythonhosted.org/packages/02/9c/207547916a02c78f6bdd83448d9b21afbc42f6379ed887ecf610984f3b4e/matplotlib-3.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1d9d3713a237970569156cfb4de7533b7c4eacdd61789726f444f96a0d28f57f", size = 8273212, upload-time = "2025-10-09T00:26:56.752Z" }, + { url = "https://files.pythonhosted.org/packages/bc/d0/b3d3338d467d3fc937f0bb7f256711395cae6f78e22cef0656159950adf0/matplotlib-3.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:37a1fea41153dd6ee061d21ab69c9cf2cf543160b1b85d89cd3d2e2a7902ca4c", size = 8128713, upload-time = "2025-10-09T00:26:59.001Z" }, + { url = "https://files.pythonhosted.org/packages/22/ff/6425bf5c20d79aa5b959d1ce9e65f599632345391381c9a104133fe0b171/matplotlib-3.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b3c4ea4948d93c9c29dc01c0c23eef66f2101bf75158c291b88de6525c55c3d1", size = 8698527, upload-time = "2025-10-09T00:27:00.69Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7f/ccdca06f4c2e6c7989270ed7829b8679466682f4cfc0f8c9986241c023b6/matplotlib-3.10.7-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22df30ffaa89f6643206cf13877191c63a50e8f800b038bc39bee9d2d4957632", size = 9529690, upload-time = "2025-10-09T00:27:02.664Z" }, + { url = "https://files.pythonhosted.org/packages/b8/95/b80fc2c1f269f21ff3d193ca697358e24408c33ce2b106a7438a45407b63/matplotlib-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b69676845a0a66f9da30e87f48be36734d6748024b525ec4710be40194282c84", size = 9593732, upload-time = "2025-10-09T00:27:04.653Z" }, + { url = "https://files.pythonhosted.org/packages/e1/b6/23064a96308b9aeceeffa65e96bcde459a2ea4934d311dee20afde7407a0/matplotlib-3.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:744991e0cc863dd669c8dc9136ca4e6e0082be2070b9d793cbd64bec872a6815", size = 8122727, upload-time = "2025-10-09T00:27:06.814Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a6/2faaf48133b82cf3607759027f82b5c702aa99cdfcefb7f93d6ccf26a424/matplotlib-3.10.7-cp313-cp313-win_arm64.whl", hash = "sha256:fba2974df0bf8ce3c995fa84b79cde38326e0f7b5409e7a3a481c1141340bcf7", size = 7992958, upload-time = "2025-10-09T00:27:08.567Z" }, + { url = "https://files.pythonhosted.org/packages/4a/f0/b018fed0b599bd48d84c08794cb242227fe3341952da102ee9d9682db574/matplotlib-3.10.7-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:932c55d1fa7af4423422cb6a492a31cbcbdbe68fd1a9a3f545aa5e7a143b5355", size = 8316849, upload-time = "2025-10-09T00:27:10.254Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b7/bb4f23856197659f275e11a2a164e36e65e9b48ea3e93c4ec25b4f163198/matplotlib-3.10.7-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5e38c2d581d62ee729a6e144c47a71b3f42fb4187508dbbf4fe71d5612c3433b", size = 8178225, upload-time = "2025-10-09T00:27:12.241Z" }, + { url = "https://files.pythonhosted.org/packages/62/56/0600609893ff277e6f3ab3c0cef4eafa6e61006c058e84286c467223d4d5/matplotlib-3.10.7-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:786656bb13c237bbcebcd402f65f44dd61ead60ee3deb045af429d889c8dbc67", size = 8711708, upload-time = "2025-10-09T00:27:13.879Z" }, + { url = "https://files.pythonhosted.org/packages/d8/1a/6bfecb0cafe94d6658f2f1af22c43b76cf7a1c2f0dc34ef84cbb6809617e/matplotlib-3.10.7-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09d7945a70ea43bf9248f4b6582734c2fe726723204a76eca233f24cffc7ef67", size = 9541409, upload-time = "2025-10-09T00:27:15.684Z" }, + { url = "https://files.pythonhosted.org/packages/08/50/95122a407d7f2e446fd865e2388a232a23f2b81934960ea802f3171518e4/matplotlib-3.10.7-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d0b181e9fa8daf1d9f2d4c547527b167cb8838fc587deabca7b5c01f97199e84", size = 9594054, upload-time = "2025-10-09T00:27:17.547Z" }, + { url = "https://files.pythonhosted.org/packages/13/76/75b194a43b81583478a81e78a07da8d9ca6ddf50dd0a2ccabf258059481d/matplotlib-3.10.7-cp313-cp313t-win_amd64.whl", hash = "sha256:31963603041634ce1a96053047b40961f7a29eb8f9a62e80cc2c0427aa1d22a2", size = 8200100, upload-time = "2025-10-09T00:27:20.039Z" }, + { url = "https://files.pythonhosted.org/packages/f5/9e/6aefebdc9f8235c12bdeeda44cc0383d89c1e41da2c400caf3ee2073a3ce/matplotlib-3.10.7-cp313-cp313t-win_arm64.whl", hash = "sha256:aebed7b50aa6ac698c90f60f854b47e48cd2252b30510e7a1feddaf5a3f72cbf", size = 8042131, upload-time = "2025-10-09T00:27:21.608Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4b/e5bc2c321b6a7e3a75638d937d19ea267c34bd5a90e12bee76c4d7c7a0d9/matplotlib-3.10.7-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d883460c43e8c6b173fef244a2341f7f7c0e9725c7fe68306e8e44ed9c8fb100", size = 8273787, upload-time = "2025-10-09T00:27:23.27Z" }, + { url = "https://files.pythonhosted.org/packages/86/ad/6efae459c56c2fbc404da154e13e3a6039129f3c942b0152624f1c621f05/matplotlib-3.10.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:07124afcf7a6504eafcb8ce94091c5898bbdd351519a1beb5c45f7a38c67e77f", size = 8131348, upload-time = "2025-10-09T00:27:24.926Z" }, + { url = "https://files.pythonhosted.org/packages/a6/5a/a4284d2958dee4116359cc05d7e19c057e64ece1b4ac986ab0f2f4d52d5a/matplotlib-3.10.7-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c17398b709a6cce3d9fdb1595c33e356d91c098cd9486cb2cc21ea2ea418e715", size = 9533949, upload-time = "2025-10-09T00:27:26.704Z" }, + { url = "https://files.pythonhosted.org/packages/de/ff/f3781b5057fa3786623ad8976fc9f7b0d02b2f28534751fd5a44240de4cf/matplotlib-3.10.7-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7146d64f561498764561e9cd0ed64fcf582e570fc519e6f521e2d0cfd43365e1", size = 9804247, upload-time = "2025-10-09T00:27:28.514Z" }, + { url = "https://files.pythonhosted.org/packages/47/5a/993a59facb8444efb0e197bf55f545ee449902dcee86a4dfc580c3b61314/matplotlib-3.10.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:90ad854c0a435da3104c01e2c6f0028d7e719b690998a2333d7218db80950722", size = 9595497, upload-time = "2025-10-09T00:27:30.418Z" }, + { url = "https://files.pythonhosted.org/packages/0d/a5/77c95aaa9bb32c345cbb49626ad8eb15550cba2e6d4c88081a6c2ac7b08d/matplotlib-3.10.7-cp314-cp314-win_amd64.whl", hash = "sha256:4645fc5d9d20ffa3a39361fcdbcec731382763b623b72627806bf251b6388866", size = 8252732, upload-time = "2025-10-09T00:27:32.332Z" }, + { url = "https://files.pythonhosted.org/packages/74/04/45d269b4268d222390d7817dae77b159651909669a34ee9fdee336db5883/matplotlib-3.10.7-cp314-cp314-win_arm64.whl", hash = "sha256:9257be2f2a03415f9105c486d304a321168e61ad450f6153d77c69504ad764bb", size = 8124240, upload-time = "2025-10-09T00:27:33.94Z" }, + { url = "https://files.pythonhosted.org/packages/4b/c7/ca01c607bb827158b439208c153d6f14ddb9fb640768f06f7ca3488ae67b/matplotlib-3.10.7-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1e4bbad66c177a8fdfa53972e5ef8be72a5f27e6a607cec0d8579abd0f3102b1", size = 8316938, upload-time = "2025-10-09T00:27:35.534Z" }, + { url = "https://files.pythonhosted.org/packages/84/d2/5539e66e9f56d2fdec94bb8436f5e449683b4e199bcc897c44fbe3c99e28/matplotlib-3.10.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:d8eb7194b084b12feb19142262165832fc6ee879b945491d1c3d4660748020c4", size = 8178245, upload-time = "2025-10-09T00:27:37.334Z" }, + { url = "https://files.pythonhosted.org/packages/77/b5/e6ca22901fd3e4fe433a82e583436dd872f6c966fca7e63cf806b40356f8/matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d41379b05528091f00e1728004f9a8d7191260f3862178b88e8fd770206318", size = 9541411, upload-time = "2025-10-09T00:27:39.387Z" }, + { url = "https://files.pythonhosted.org/packages/9e/99/a4524db57cad8fee54b7237239a8f8360bfcfa3170d37c9e71c090c0f409/matplotlib-3.10.7-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4a74f79fafb2e177f240579bc83f0b60f82cc47d2f1d260f422a0627207008ca", size = 9803664, upload-time = "2025-10-09T00:27:41.492Z" }, + { url = "https://files.pythonhosted.org/packages/e6/a5/85e2edf76ea0ad4288d174926d9454ea85f3ce5390cc4e6fab196cbf250b/matplotlib-3.10.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:702590829c30aada1e8cef0568ddbffa77ca747b4d6e36c6d173f66e301f89cc", size = 9594066, upload-time = "2025-10-09T00:27:43.694Z" }, + { url = "https://files.pythonhosted.org/packages/39/69/9684368a314f6d83fe5c5ad2a4121a3a8e03723d2e5c8ea17b66c1bad0e7/matplotlib-3.10.7-cp314-cp314t-win_amd64.whl", hash = "sha256:f79d5de970fc90cd5591f60053aecfce1fcd736e0303d9f0bf86be649fa68fb8", size = 8342832, upload-time = "2025-10-09T00:27:45.543Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/e22e08da14bc1a0894184640d47819d2338b792732e20d292bf86e5ab785/matplotlib-3.10.7-cp314-cp314t-win_arm64.whl", hash = "sha256:cb783436e47fcf82064baca52ce748af71725d0352e1d31564cbe9c95df92b9c", size = 8172585, upload-time = "2025-10-09T00:27:47.185Z" }, +] + [[package]] name = "mmh3" version = "5.2.0" @@ -660,6 +1000,37 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] +[[package]] +name = "narwhals" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7d/a2/25208347aa4c2d82a265cf4bc0873aaf5069f525c0438146821e7fc19ef5/narwhals-2.11.0.tar.gz", hash = "sha256:d23f3ea7efc6b4d0355444a72de6b8fa3011175585246c3400c894a7583964af", size = 589233, upload-time = "2025-11-10T16:28:35.675Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c0/a1/4d21933898e23b011ae0528151b57a9230a62960d0919bf2ee48c7f5c20a/narwhals-2.11.0-py3-none-any.whl", hash = "sha256:a9795e1e44aa94e5ba6406ef1c5ee4c172414ced4f1aea4a79e5894f0c7378d4", size = 423069, upload-time = "2025-11-10T16:28:33.522Z" }, +] + +[[package]] +name = "numba" +version = "0.62.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "llvmlite" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/20/33dbdbfe60e5fd8e3dbfde299d106279a33d9f8308346022316781368591/numba-0.62.1.tar.gz", hash = "sha256:7b774242aa890e34c21200a1fc62e5b5757d5286267e71103257f4e2af0d5161", size = 2749817, upload-time = "2025-09-29T10:46:31.551Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/fa/30fa6873e9f821c0ae755915a3ca444e6ff8d6a7b6860b669a3d33377ac7/numba-0.62.1-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:1b743b32f8fa5fff22e19c2e906db2f0a340782caf024477b97801b918cf0494", size = 2685346, upload-time = "2025-09-29T10:43:43.677Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d5/504ce8dc46e0dba2790c77e6b878ee65b60fe3e7d6d0006483ef6fde5a97/numba-0.62.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:90fa21b0142bcf08ad8e32a97d25d0b84b1e921bc9423f8dda07d3652860eef6", size = 2688139, upload-time = "2025-09-29T10:44:04.894Z" }, + { url = "https://files.pythonhosted.org/packages/50/5f/6a802741176c93f2ebe97ad90751894c7b0c922b52ba99a4395e79492205/numba-0.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6ef84d0ac19f1bf80431347b6f4ce3c39b7ec13f48f233a48c01e2ec06ecbc59", size = 3796453, upload-time = "2025-09-29T10:42:52.771Z" }, + { url = "https://files.pythonhosted.org/packages/7e/df/efd21527d25150c4544eccc9d0b7260a5dec4b7e98b5a581990e05a133c0/numba-0.62.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9315cc5e441300e0ca07c828a627d92a6802bcbf27c5487f31ae73783c58da53", size = 3496451, upload-time = "2025-09-29T10:43:19.279Z" }, + { url = "https://files.pythonhosted.org/packages/80/44/79bfdab12a02796bf4f1841630355c82b5a69933b1d50eb15c7fa37dabe8/numba-0.62.1-cp312-cp312-win_amd64.whl", hash = "sha256:44e3aa6228039992f058f5ebfcfd372c83798e9464297bdad8cc79febcf7891e", size = 2745552, upload-time = "2025-09-29T10:44:26.399Z" }, + { url = "https://files.pythonhosted.org/packages/22/76/501ea2c07c089ef1386868f33dff2978f43f51b854e34397b20fc55e0a58/numba-0.62.1-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:b72489ba8411cc9fdcaa2458d8f7677751e94f0109eeb53e5becfdc818c64afb", size = 2685766, upload-time = "2025-09-29T10:43:49.161Z" }, + { url = "https://files.pythonhosted.org/packages/80/68/444986ed95350c0611d5c7b46828411c222ce41a0c76707c36425d27ce29/numba-0.62.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:44a1412095534a26fb5da2717bc755b57da5f3053965128fe3dc286652cc6a92", size = 2688741, upload-time = "2025-09-29T10:44:10.07Z" }, + { url = "https://files.pythonhosted.org/packages/78/7e/bf2e3634993d57f95305c7cee4c9c6cb3c9c78404ee7b49569a0dfecfe33/numba-0.62.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8c9460b9e936c5bd2f0570e20a0a5909ee6e8b694fd958b210e3bde3a6dba2d7", size = 3804576, upload-time = "2025-09-29T10:42:59.53Z" }, + { url = "https://files.pythonhosted.org/packages/e8/b6/8a1723fff71f63bbb1354bdc60a1513a068acc0f5322f58da6f022d20247/numba-0.62.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:728f91a874192df22d74e3fd42c12900b7ce7190b1aad3574c6c61b08313e4c5", size = 3503367, upload-time = "2025-09-29T10:43:26.326Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ec/9d414e7a80d6d1dc4af0e07c6bfe293ce0b04ea4d0ed6c45dad9bd6e72eb/numba-0.62.1-cp313-cp313-win_amd64.whl", hash = "sha256:bbf3f88b461514287df66bc8d0307e949b09f2b6f67da92265094e8fa1282dd8", size = 2745529, upload-time = "2025-09-29T10:44:31.738Z" }, +] + [[package]] name = "numpy" version = "2.2.6" @@ -763,6 +1134,75 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, ] +[[package]] +name = "pillow" +version = "12.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/cace85a1b0c9775a9f8f5d5423c8261c858760e2466c79b2dd184638b056/pillow-12.0.0.tar.gz", hash = "sha256:87d4f8125c9988bfbed67af47dd7a953e2fc7b0cc1e7800ec6d2080d490bb353", size = 47008828, upload-time = "2025-10-15T18:24:14.008Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/90/4fcce2c22caf044e660a198d740e7fbc14395619e3cb1abad12192c0826c/pillow-12.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:53561a4ddc36facb432fae7a9d8afbfaf94795414f5cdc5fc52f28c1dca90371", size = 5249377, upload-time = "2025-10-15T18:22:05.993Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e0/ed960067543d080691d47d6938ebccbf3976a931c9567ab2fbfab983a5dd/pillow-12.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71db6b4c1653045dacc1585c1b0d184004f0d7e694c7b34ac165ca70c0838082", size = 4650343, upload-time = "2025-10-15T18:22:07.718Z" }, + { url = "https://files.pythonhosted.org/packages/e7/a1/f81fdeddcb99c044bf7d6faa47e12850f13cee0849537a7d27eeab5534d4/pillow-12.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:2fa5f0b6716fc88f11380b88b31fe591a06c6315e955c096c35715788b339e3f", size = 6232981, upload-time = "2025-10-15T18:22:09.287Z" }, + { url = "https://files.pythonhosted.org/packages/88/e1/9098d3ce341a8750b55b0e00c03f1630d6178f38ac191c81c97a3b047b44/pillow-12.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:82240051c6ca513c616f7f9da06e871f61bfd7805f566275841af15015b8f98d", size = 8041399, upload-time = "2025-10-15T18:22:10.872Z" }, + { url = "https://files.pythonhosted.org/packages/a7/62/a22e8d3b602ae8cc01446d0c57a54e982737f44b6f2e1e019a925143771d/pillow-12.0.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55f818bd74fe2f11d4d7cbc65880a843c4075e0ac7226bc1a23261dbea531953", size = 6347740, upload-time = "2025-10-15T18:22:12.769Z" }, + { url = "https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b87843e225e74576437fd5b6a4c2205d422754f84a06942cfaf1dc32243e45a8", size = 7040201, upload-time = "2025-10-15T18:22:14.813Z" }, + { url = "https://files.pythonhosted.org/packages/dc/4d/435c8ac688c54d11755aedfdd9f29c9eeddf68d150fe42d1d3dbd2365149/pillow-12.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c607c90ba67533e1b2355b821fef6764d1dd2cbe26b8c1005ae84f7aea25ff79", size = 6462334, upload-time = "2025-10-15T18:22:16.375Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f2/ad34167a8059a59b8ad10bc5c72d4d9b35acc6b7c0877af8ac885b5f2044/pillow-12.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:21f241bdd5080a15bc86d3466a9f6074a9c2c2b314100dd896ac81ee6db2f1ba", size = 7134162, upload-time = "2025-10-15T18:22:17.996Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/a7391df6adacf0a5c2cf6ac1cf1fcc1369e7d439d28f637a847f8803beb3/pillow-12.0.0-cp312-cp312-win32.whl", hash = "sha256:dd333073e0cacdc3089525c7df7d39b211bcdf31fc2824e49d01c6b6187b07d0", size = 6298769, upload-time = "2025-10-15T18:22:19.923Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0b/d87733741526541c909bbf159e338dcace4f982daac6e5a8d6be225ca32d/pillow-12.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9fe611163f6303d1619bbcb653540a4d60f9e55e622d60a3108be0d5b441017a", size = 7001107, upload-time = "2025-10-15T18:22:21.644Z" }, + { url = "https://files.pythonhosted.org/packages/bc/96/aaa61ce33cc98421fb6088af2a03be4157b1e7e0e87087c888e2370a7f45/pillow-12.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:7dfb439562f234f7d57b1ac6bc8fe7f838a4bd49c79230e0f6a1da93e82f1fad", size = 2436012, upload-time = "2025-10-15T18:22:23.621Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/de993bb2d21b33a98d031ecf6a978e4b61da207bef02f7b43093774c480d/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0869154a2d0546545cde61d1789a6524319fc1897d9ee31218eae7a60ccc5643", size = 4045493, upload-time = "2025-10-15T18:22:25.758Z" }, + { url = "https://files.pythonhosted.org/packages/0e/b6/bc8d0c4c9f6f111a783d045310945deb769b806d7574764234ffd50bc5ea/pillow-12.0.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a7921c5a6d31b3d756ec980f2f47c0cfdbce0fc48c22a39347a895f41f4a6ea4", size = 4120461, upload-time = "2025-10-15T18:22:27.286Z" }, + { url = "https://files.pythonhosted.org/packages/5d/57/d60d343709366a353dc56adb4ee1e7d8a2cc34e3fbc22905f4167cfec119/pillow-12.0.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:1ee80a59f6ce048ae13cda1abf7fbd2a34ab9ee7d401c46be3ca685d1999a399", size = 3576912, upload-time = "2025-10-15T18:22:28.751Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a4/a0a31467e3f83b94d37568294b01d22b43ae3c5d85f2811769b9c66389dd/pillow-12.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c50f36a62a22d350c96e49ad02d0da41dbd17ddc2e29750dbdba4323f85eb4a5", size = 5249132, upload-time = "2025-10-15T18:22:30.641Z" }, + { url = "https://files.pythonhosted.org/packages/83/06/48eab21dd561de2914242711434c0c0eb992ed08ff3f6107a5f44527f5e9/pillow-12.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5193fde9a5f23c331ea26d0cf171fbf67e3f247585f50c08b3e205c7aeb4589b", size = 4650099, upload-time = "2025-10-15T18:22:32.73Z" }, + { url = "https://files.pythonhosted.org/packages/fc/bd/69ed99fd46a8dba7c1887156d3572fe4484e3f031405fcc5a92e31c04035/pillow-12.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bde737cff1a975b70652b62d626f7785e0480918dece11e8fef3c0cf057351c3", size = 6230808, upload-time = "2025-10-15T18:22:34.337Z" }, + { url = "https://files.pythonhosted.org/packages/ea/94/8fad659bcdbf86ed70099cb60ae40be6acca434bbc8c4c0d4ef356d7e0de/pillow-12.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a6597ff2b61d121172f5844b53f21467f7082f5fb385a9a29c01414463f93b07", size = 8037804, upload-time = "2025-10-15T18:22:36.402Z" }, + { url = "https://files.pythonhosted.org/packages/20/39/c685d05c06deecfd4e2d1950e9a908aa2ca8bc4e6c3b12d93b9cafbd7837/pillow-12.0.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b817e7035ea7f6b942c13aa03bb554fc44fea70838ea21f8eb31c638326584e", size = 6345553, upload-time = "2025-10-15T18:22:38.066Z" }, + { url = "https://files.pythonhosted.org/packages/38/57/755dbd06530a27a5ed74f8cb0a7a44a21722ebf318edbe67ddbd7fb28f88/pillow-12.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f4f1231b7dec408e8670264ce63e9c71409d9583dd21d32c163e25213ee2a344", size = 7037729, upload-time = "2025-10-15T18:22:39.769Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b6/7e94f4c41d238615674d06ed677c14883103dce1c52e4af16f000338cfd7/pillow-12.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6e51b71417049ad6ab14c49608b4a24d8fb3fe605e5dfabfe523b58064dc3d27", size = 6459789, upload-time = "2025-10-15T18:22:41.437Z" }, + { url = "https://files.pythonhosted.org/packages/9c/14/4448bb0b5e0f22dd865290536d20ec8a23b64e2d04280b89139f09a36bb6/pillow-12.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d120c38a42c234dc9a8c5de7ceaaf899cf33561956acb4941653f8bdc657aa79", size = 7130917, upload-time = "2025-10-15T18:22:43.152Z" }, + { url = "https://files.pythonhosted.org/packages/dd/ca/16c6926cc1c015845745d5c16c9358e24282f1e588237a4c36d2b30f182f/pillow-12.0.0-cp313-cp313-win32.whl", hash = "sha256:4cc6b3b2efff105c6a1656cfe59da4fdde2cda9af1c5e0b58529b24525d0a098", size = 6302391, upload-time = "2025-10-15T18:22:44.753Z" }, + { url = "https://files.pythonhosted.org/packages/6d/2a/dd43dcfd6dae9b6a49ee28a8eedb98c7d5ff2de94a5d834565164667b97b/pillow-12.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:4cf7fed4b4580601c4345ceb5d4cbf5a980d030fd5ad07c4d2ec589f95f09905", size = 7007477, upload-time = "2025-10-15T18:22:46.838Z" }, + { url = "https://files.pythonhosted.org/packages/77/f0/72ea067f4b5ae5ead653053212af05ce3705807906ba3f3e8f58ddf617e6/pillow-12.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:9f0b04c6b8584c2c193babcccc908b38ed29524b29dd464bc8801bf10d746a3a", size = 2435918, upload-time = "2025-10-15T18:22:48.399Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5e/9046b423735c21f0487ea6cb5b10f89ea8f8dfbe32576fe052b5ba9d4e5b/pillow-12.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7fa22993bac7b77b78cae22bad1e2a987ddf0d9015c63358032f84a53f23cdc3", size = 5251406, upload-time = "2025-10-15T18:22:49.905Z" }, + { url = "https://files.pythonhosted.org/packages/12/66/982ceebcdb13c97270ef7a56c3969635b4ee7cd45227fa707c94719229c5/pillow-12.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f135c702ac42262573fe9714dfe99c944b4ba307af5eb507abef1667e2cbbced", size = 4653218, upload-time = "2025-10-15T18:22:51.587Z" }, + { url = "https://files.pythonhosted.org/packages/16/b3/81e625524688c31859450119bf12674619429cab3119eec0e30a7a1029cb/pillow-12.0.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c85de1136429c524e55cfa4e033b4a7940ac5c8ee4d9401cc2d1bf48154bbc7b", size = 6266564, upload-time = "2025-10-15T18:22:53.215Z" }, + { url = "https://files.pythonhosted.org/packages/98/59/dfb38f2a41240d2408096e1a76c671d0a105a4a8471b1871c6902719450c/pillow-12.0.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:38df9b4bfd3db902c9c2bd369bcacaf9d935b2fff73709429d95cc41554f7b3d", size = 8069260, upload-time = "2025-10-15T18:22:54.933Z" }, + { url = "https://files.pythonhosted.org/packages/dc/3d/378dbea5cd1874b94c312425ca77b0f47776c78e0df2df751b820c8c1d6c/pillow-12.0.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7d87ef5795da03d742bf49439f9ca4d027cde49c82c5371ba52464aee266699a", size = 6379248, upload-time = "2025-10-15T18:22:56.605Z" }, + { url = "https://files.pythonhosted.org/packages/84/b0/d525ef47d71590f1621510327acec75ae58c721dc071b17d8d652ca494d8/pillow-12.0.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:aff9e4d82d082ff9513bdd6acd4f5bd359f5b2c870907d2b0a9c5e10d40c88fe", size = 7066043, upload-time = "2025-10-15T18:22:58.53Z" }, + { url = "https://files.pythonhosted.org/packages/61/2c/aced60e9cf9d0cde341d54bf7932c9ffc33ddb4a1595798b3a5150c7ec4e/pillow-12.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8d8ca2b210ada074d57fcee40c30446c9562e542fc46aedc19baf758a93532ee", size = 6490915, upload-time = "2025-10-15T18:23:00.582Z" }, + { url = "https://files.pythonhosted.org/packages/ef/26/69dcb9b91f4e59f8f34b2332a4a0a951b44f547c4ed39d3e4dcfcff48f89/pillow-12.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:99a7f72fb6249302aa62245680754862a44179b545ded638cf1fef59befb57ef", size = 7157998, upload-time = "2025-10-15T18:23:02.627Z" }, + { url = "https://files.pythonhosted.org/packages/61/2b/726235842220ca95fa441ddf55dd2382b52ab5b8d9c0596fe6b3f23dafe8/pillow-12.0.0-cp313-cp313t-win32.whl", hash = "sha256:4078242472387600b2ce8d93ade8899c12bf33fa89e55ec89fe126e9d6d5d9e9", size = 6306201, upload-time = "2025-10-15T18:23:04.709Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/2afaf4e840b2df71344ababf2f8edd75a705ce500e5dc1e7227808312ae1/pillow-12.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2c54c1a783d6d60595d3514f0efe9b37c8808746a66920315bfd34a938d7994b", size = 7013165, upload-time = "2025-10-15T18:23:06.46Z" }, + { url = "https://files.pythonhosted.org/packages/6f/75/3fa09aa5cf6ed04bee3fa575798ddf1ce0bace8edb47249c798077a81f7f/pillow-12.0.0-cp313-cp313t-win_arm64.whl", hash = "sha256:26d9f7d2b604cd23aba3e9faf795787456ac25634d82cd060556998e39c6fa47", size = 2437834, upload-time = "2025-10-15T18:23:08.194Z" }, + { url = "https://files.pythonhosted.org/packages/54/2a/9a8c6ba2c2c07b71bec92cf63e03370ca5e5f5c5b119b742bcc0cde3f9c5/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:beeae3f27f62308f1ddbcfb0690bf44b10732f2ef43758f169d5e9303165d3f9", size = 4045531, upload-time = "2025-10-15T18:23:10.121Z" }, + { url = "https://files.pythonhosted.org/packages/84/54/836fdbf1bfb3d66a59f0189ff0b9f5f666cee09c6188309300df04ad71fa/pillow-12.0.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d4827615da15cd59784ce39d3388275ec093ae3ee8d7f0c089b76fa87af756c2", size = 4120554, upload-time = "2025-10-15T18:23:12.14Z" }, + { url = "https://files.pythonhosted.org/packages/0d/cd/16aec9f0da4793e98e6b54778a5fbce4f375c6646fe662e80600b8797379/pillow-12.0.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:3e42edad50b6909089750e65c91aa09aaf1e0a71310d383f11321b27c224ed8a", size = 3576812, upload-time = "2025-10-15T18:23:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b7/13957fda356dc46339298b351cae0d327704986337c3c69bb54628c88155/pillow-12.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e5d8efac84c9afcb40914ab49ba063d94f5dbdf5066db4482c66a992f47a3a3b", size = 5252689, upload-time = "2025-10-15T18:23:15.562Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/eae31a306341d8f331f43edb2e9122c7661b975433de5e447939ae61c5da/pillow-12.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:266cd5f2b63ff316d5a1bba46268e603c9caf5606d44f38c2873c380950576ad", size = 4650186, upload-time = "2025-10-15T18:23:17.379Z" }, + { url = "https://files.pythonhosted.org/packages/86/62/2a88339aa40c4c77e79108facbd307d6091e2c0eb5b8d3cf4977cfca2fe6/pillow-12.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:58eea5ebe51504057dd95c5b77d21700b77615ab0243d8152793dc00eb4faf01", size = 6230308, upload-time = "2025-10-15T18:23:18.971Z" }, + { url = "https://files.pythonhosted.org/packages/c7/33/5425a8992bcb32d1cb9fa3dd39a89e613d09a22f2c8083b7bf43c455f760/pillow-12.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f13711b1a5ba512d647a0e4ba79280d3a9a045aaf7e0cc6fbe96b91d4cdf6b0c", size = 8039222, upload-time = "2025-10-15T18:23:20.909Z" }, + { url = "https://files.pythonhosted.org/packages/d8/61/3f5d3b35c5728f37953d3eec5b5f3e77111949523bd2dd7f31a851e50690/pillow-12.0.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6846bd2d116ff42cba6b646edf5bf61d37e5cbd256425fa089fee4ff5c07a99e", size = 6346657, upload-time = "2025-10-15T18:23:23.077Z" }, + { url = "https://files.pythonhosted.org/packages/3a/be/ee90a3d79271227e0f0a33c453531efd6ed14b2e708596ba5dd9be948da3/pillow-12.0.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c98fa880d695de164b4135a52fd2e9cd7b7c90a9d8ac5e9e443a24a95ef9248e", size = 7038482, upload-time = "2025-10-15T18:23:25.005Z" }, + { url = "https://files.pythonhosted.org/packages/44/34/a16b6a4d1ad727de390e9bd9f19f5f669e079e5826ec0f329010ddea492f/pillow-12.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa3ed2a29a9e9d2d488b4da81dcb54720ac3104a20bf0bd273f1e4648aff5af9", size = 6461416, upload-time = "2025-10-15T18:23:27.009Z" }, + { url = "https://files.pythonhosted.org/packages/b6/39/1aa5850d2ade7d7ba9f54e4e4c17077244ff7a2d9e25998c38a29749eb3f/pillow-12.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d034140032870024e6b9892c692fe2968493790dd57208b2c37e3fb35f6df3ab", size = 7131584, upload-time = "2025-10-15T18:23:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/bf/db/4fae862f8fad0167073a7733973bfa955f47e2cac3dc3e3e6257d10fab4a/pillow-12.0.0-cp314-cp314-win32.whl", hash = "sha256:1b1b133e6e16105f524a8dec491e0586d072948ce15c9b914e41cdadd209052b", size = 6400621, upload-time = "2025-10-15T18:23:32.06Z" }, + { url = "https://files.pythonhosted.org/packages/2b/24/b350c31543fb0107ab2599464d7e28e6f856027aadda995022e695313d94/pillow-12.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:8dc232e39d409036af549c86f24aed8273a40ffa459981146829a324e0848b4b", size = 7142916, upload-time = "2025-10-15T18:23:34.71Z" }, + { url = "https://files.pythonhosted.org/packages/0f/9b/0ba5a6fd9351793996ef7487c4fdbde8d3f5f75dbedc093bb598648fddf0/pillow-12.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:d52610d51e265a51518692045e372a4c363056130d922a7351429ac9f27e70b0", size = 2523836, upload-time = "2025-10-15T18:23:36.967Z" }, + { url = "https://files.pythonhosted.org/packages/f5/7a/ceee0840aebc579af529b523d530840338ecf63992395842e54edc805987/pillow-12.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:1979f4566bb96c1e50a62d9831e2ea2d1211761e5662afc545fa766f996632f6", size = 5255092, upload-time = "2025-10-15T18:23:38.573Z" }, + { url = "https://files.pythonhosted.org/packages/44/76/20776057b4bfd1aef4eeca992ebde0f53a4dce874f3ae693d0ec90a4f79b/pillow-12.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2e4b27a6e15b04832fe9bf292b94b5ca156016bbc1ea9c2c20098a0320d6cf6", size = 4653158, upload-time = "2025-10-15T18:23:40.238Z" }, + { url = "https://files.pythonhosted.org/packages/82/3f/d9ff92ace07be8836b4e7e87e6a4c7a8318d47c2f1463ffcf121fc57d9cb/pillow-12.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fb3096c30df99fd01c7bf8e544f392103d0795b9f98ba71a8054bcbf56b255f1", size = 6267882, upload-time = "2025-10-15T18:23:42.434Z" }, + { url = "https://files.pythonhosted.org/packages/9f/7a/4f7ff87f00d3ad33ba21af78bfcd2f032107710baf8280e3722ceec28cda/pillow-12.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7438839e9e053ef79f7112c881cef684013855016f928b168b81ed5835f3e75e", size = 8071001, upload-time = "2025-10-15T18:23:44.29Z" }, + { url = "https://files.pythonhosted.org/packages/75/87/fcea108944a52dad8cca0715ae6247e271eb80459364a98518f1e4f480c1/pillow-12.0.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d5c411a8eaa2299322b647cd932586b1427367fd3184ffbb8f7a219ea2041ca", size = 6380146, upload-time = "2025-10-15T18:23:46.065Z" }, + { url = "https://files.pythonhosted.org/packages/91/52/0d31b5e571ef5fd111d2978b84603fce26aba1b6092f28e941cb46570745/pillow-12.0.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7e091d464ac59d2c7ad8e7e08105eaf9dafbc3883fd7265ffccc2baad6ac925", size = 7067344, upload-time = "2025-10-15T18:23:47.898Z" }, + { url = "https://files.pythonhosted.org/packages/7b/f4/2dd3d721f875f928d48e83bb30a434dee75a2531bca839bb996bb0aa5a91/pillow-12.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:792a2c0be4dcc18af9d4a2dfd8a11a17d5e25274a1062b0ec1c2d79c76f3e7f8", size = 6491864, upload-time = "2025-10-15T18:23:49.607Z" }, + { url = "https://files.pythonhosted.org/packages/30/4b/667dfcf3d61fc309ba5a15b141845cece5915e39b99c1ceab0f34bf1d124/pillow-12.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:afbefa430092f71a9593a99ab6a4e7538bc9eabbf7bf94f91510d3503943edc4", size = 7158911, upload-time = "2025-10-15T18:23:51.351Z" }, + { url = "https://files.pythonhosted.org/packages/a2/2f/16cabcc6426c32218ace36bf0d55955e813f2958afddbf1d391849fee9d1/pillow-12.0.0-cp314-cp314t-win32.whl", hash = "sha256:3830c769decf88f1289680a59d4f4c46c72573446352e2befec9a8512104fa52", size = 6408045, upload-time = "2025-10-15T18:23:53.177Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/e29aa0c9c666cf787628d3f0dcf379f4791fba79f4936d02f8b37165bdf8/pillow-12.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:905b0365b210c73afb0ebe9101a32572152dfd1c144c7e28968a331b9217b94a", size = 7148282, upload-time = "2025-10-15T18:23:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/c1/70/6b41bdcddf541b437bbb9f47f94d2db5d9ddef6c37ccab8c9107743748a4/pillow-12.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:99353a06902c2e43b43e8ff74ee65a7d90307d82370604746738a1e0661ccca7", size = 2525630, upload-time = "2025-10-15T18:23:57.149Z" }, +] + [[package]] name = "prometheus-client" version = "0.22.1" @@ -872,6 +1312,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/51/b2/b2b50d5ecf21acf870190ae5d093602d95f66c9c31f9d5de6062eb329ad1/pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b", size = 1885186, upload-time = "2024-12-18T11:29:37.649Z" }, ] +[[package]] +name = "pydeck" +version = "0.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jinja2" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/ca/40e14e196864a0f61a92abb14d09b3d3da98f94ccb03b49cf51688140dab/pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605", size = 3832240, upload-time = "2024-05-10T15:36:21.153Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/4c/b888e6cf58bd9db9c93f40d1c6be8283ff49d88919231afe93a6bcf61626/pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038", size = 6900403, upload-time = "2024-05-10T15:36:17.36Z" }, +] + [[package]] name = "pygments" version = "2.19.2" @@ -890,6 +1343,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, ] +[[package]] +name = "pyparsing" +version = "3.2.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/a5/181488fc2b9d093e3972d2a472855aae8a03f000592dbfce716a512b3359/pyparsing-3.2.5.tar.gz", hash = "sha256:2df8d5b7b2802ef88e8d016a2eb9c7aeaa923529cd251ed0fe4608275d4105b6", size = 1099274, upload-time = "2025-09-21T04:11:06.277Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/5e/1aa9a93198c6b64513c9d7752de7422c06402de6600a8767da1524f9570b/pyparsing-3.2.5-py3-none-any.whl", hash = "sha256:e38a4f02064cf41fe6593d328d0512495ad1f3d8a91c4f73fc401b3079a59a5e", size = 113890, upload-time = "2025-09-21T04:11:04.117Z" }, +] + [[package]] name = "python-dateutil" version = "2.9.0.post0" @@ -1231,6 +1693,88 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl", hash = "sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922", size = 1201486, upload-time = "2025-05-27T00:56:49.664Z" }, ] +[[package]] +name = "shap" +version = "0.49.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.14'", +] +dependencies = [ + { name = "cloudpickle", marker = "python_full_version >= '3.14'" }, + { name = "numba", marker = "python_full_version >= '3.14'" }, + { name = "numpy", marker = "python_full_version >= '3.14'" }, + { name = "packaging", marker = "python_full_version >= '3.14'" }, + { name = "pandas", marker = "python_full_version >= '3.14'" }, + { name = "scikit-learn", marker = "python_full_version >= '3.14'" }, + { name = "scipy", marker = "python_full_version >= '3.14'" }, + { name = "slicer", marker = "python_full_version >= '3.14'" }, + { name = "tqdm", marker = "python_full_version >= '3.14'" }, + { name = "typing-extensions", marker = "python_full_version >= '3.14'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/dc/c6/9823a7f483aa9f3179fc359c10d22da9e418b1a7a3fc99a42b705d05e82a/shap-0.49.1.tar.gz", hash = "sha256:1114ecd804fff29f50d522ce6031082fcf42fe4a32fb1b5da233b2415d784c8c", size = 4084725, upload-time = "2025-10-14T10:04:49.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/7a/ccecf7a9158baa10bdc5146907c72dd5f85c762cb5f16cdc74d15cebb8a1/shap-0.49.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c652dc77f1fffe73f5a3def3356c5090e2e6401c261e4fe5329d83cb6251e772", size = 559663, upload-time = "2025-10-14T10:04:25.412Z" }, + { url = "https://files.pythonhosted.org/packages/ee/c6/c43382d6c891fcf067d0a9f6d954351e3c7d330f4328c5816769b796aa27/shap-0.49.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c23f1493205e648634680c8974e82e7f4b2e96ae3a7eca2251680172bd197ae9", size = 556265, upload-time = "2025-10-14T10:04:27.098Z" }, + { url = "https://files.pythonhosted.org/packages/c0/71/f7db7a5a2cedaa3ac52f58f453172d613be041bedd9509ce5b5cba2096a6/shap-0.49.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41147740c42821023e1b60185ce8be989656ccac266cc9490d7a8e3ad53c556a", size = 1022419, upload-time = "2025-10-14T10:04:28.793Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a4/96ca9a69dd669ff835ddef875c5dd8e07599103769417d3e9051fd97d470/shap-0.49.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef9952929d4a7e6763d2716938067bdad762217e3afb46cabfc15a62c012b364", size = 1027074, upload-time = "2025-10-14T10:04:30.2Z" }, + { url = "https://files.pythonhosted.org/packages/fc/9a/89ed1ac8beffe8ff8e09c12cb351bc3c79ddaadcc47ca6ee434d76e464d7/shap-0.49.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e823417eb0a01947cd9bd763bef2e534c5aef7a7c2952b1badfa969c7d59d3b3", size = 2088172, upload-time = "2025-10-14T10:04:31.725Z" }, + { url = "https://files.pythonhosted.org/packages/4a/28/11422c1c3aa022a06e76cbfa3267e1750cedc00c1e02ef1ccae9c88cd6f4/shap-0.49.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb28043decfec3f35f795421eb5a81545f629b7f60bbf7449cd2843a7f1c8cc6", size = 548036, upload-time = "2025-10-14T10:04:33.087Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5c/030bbfa19605ca4ad66a753d55e76aee5093be6748a6d33eda89e5613995/shap-0.49.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:333cd8e8c427badda92d5ada9e7aad1e3e1e8e7e0398da51a18b7ffb03514e45", size = 558604, upload-time = "2025-10-14T10:04:34.298Z" }, + { url = "https://files.pythonhosted.org/packages/2c/7f/7e7b78e9fac6f891096fb6a59a6d4db23243b0af2369ae54e161f513c485/shap-0.49.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f4faf61560f73a66f4f26bc027c91f8939201979c4db24949dca305ba0a2ad36", size = 555311, upload-time = "2025-10-14T10:04:35.582Z" }, + { url = "https://files.pythonhosted.org/packages/f2/be/25283a0f8c30deaf897b89a0dbfd490d330f6fc68caa6f19db6e130832e9/shap-0.49.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b440da658d9aee7711bf642c9b4826d81f588fb478cd9e90c068646e90f56669", size = 1016897, upload-time = "2025-10-14T10:04:36.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/91/a63e563f3dc8e134db12dd155a1a6ed5e0649f79fc8ac651aac1088e8652/shap-0.49.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8dfa5654eccf4d13dcb262a10314a4e0eb1060db842b2ef31e9fb0038168bc1", size = 1022476, upload-time = "2025-10-14T10:04:38.171Z" }, + { url = "https://files.pythonhosted.org/packages/15/a2/89303c1f7eb206658bf9ec974dc6e69b0a6bd309cf5de0cfa8f92f5a8eb3/shap-0.49.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ed3080030a6000d3737841c5770ed555b8a922b794fa0ba5aae1e45655eda1fa", size = 2087940, upload-time = "2025-10-14T10:04:39.497Z" }, + { url = "https://files.pythonhosted.org/packages/84/bd/0b9b3e19b9b8cda51463f8a749dc354eb9c87f42eddcbfdf742dceb3746b/shap-0.49.1-cp313-cp313-win_amd64.whl", hash = "sha256:6af779344c23b12a47063aab7fc135fefbdb5849233c1813f11dd8cf2fc73bea", size = 547806, upload-time = "2025-10-14T10:04:40.712Z" }, +] + +[[package]] +name = "shap" +version = "0.50.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.14'", +] +dependencies = [ + { name = "cloudpickle", marker = "python_full_version < '3.14'" }, + { name = "numba", marker = "python_full_version < '3.14'" }, + { name = "numpy", marker = "python_full_version < '3.14'" }, + { name = "packaging", marker = "python_full_version < '3.14'" }, + { name = "pandas", marker = "python_full_version < '3.14'" }, + { name = "scikit-learn", marker = "python_full_version < '3.14'" }, + { name = "scipy", marker = "python_full_version < '3.14'" }, + { name = "slicer", marker = "python_full_version < '3.14'" }, + { name = "tqdm", marker = "python_full_version < '3.14'" }, + { name = "typing-extensions", marker = "python_full_version < '3.14'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2b/2c/9ccbfbdf5ceeb914317f9691ef1fca3118d4a997eb5e79bcd8992f56c938/shap-0.50.0.tar.gz", hash = "sha256:bdc559acf7f647bc3bb22c6a1fea9f50716ed357ad595bc357b43082ae4dc6b9", size = 4087800, upload-time = "2025-11-11T18:36:53.363Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/72/aa9623c2aa1eb70a3aa23c1a823851cab227232964ab91e3280afa290b31/shap-0.50.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:166eb4f14e6fb82e6b9b9a178ac18d5a2798f42f13e9b8b0565450977ae58e0a", size = 558926, upload-time = "2025-11-11T18:36:08.873Z" }, + { url = "https://files.pythonhosted.org/packages/3d/6c/2d7d2c26fe48e8878429a8d23dd5faa6d1043b98657922276a9be71d70cb/shap-0.50.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:146bafd501d9061fce78e8d927504b0c2a7254a102a17a016c2141adcfeb6170", size = 555519, upload-time = "2025-11-11T18:36:10.38Z" }, + { url = "https://files.pythonhosted.org/packages/22/da/c2de2259c98444394b73d3582b1bbd8db999d529e674fdbcacea295f3a4c/shap-0.50.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5aa229dd3bccd779ae12cee35d68db3366ae2af693b174b446f877898d4cc9ce", size = 1044221, upload-time = "2025-11-11T18:36:11.825Z" }, + { url = "https://files.pythonhosted.org/packages/9c/03/aaa39d180a95edfb096e8c41b328d554d4c6e6069a1f76cde677ce516c1d/shap-0.50.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d8419ff6515a1294bbf370d7f40853abe806046e0d102e405974bcf0821239d0", size = 1056224, upload-time = "2025-11-11T18:36:13.523Z" }, + { url = "https://files.pythonhosted.org/packages/91/bf/41c88a09204d77b0ca3ec1cd51efb9c87af24eb008e6e8d3c2df9a9048ed/shap-0.50.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:62cc66704db8c3439256089d2f3b29a42597d3c24bab1e245ed3800f7c4c4b2a", size = 2007878, upload-time = "2025-11-11T18:36:15.399Z" }, + { url = "https://files.pythonhosted.org/packages/06/79/2562d6c053e45e77d20d9f131fb637a6c38276e4ec6f21a5f9be5a6a392e/shap-0.50.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:404445e957d45ab9d35cbfaeea7184c95845e8a3caf92116ee702a218a34a124", size = 2083599, upload-time = "2025-11-11T18:36:17.072Z" }, + { url = "https://files.pythonhosted.org/packages/c1/29/021db5e35636aae199a40cfdbb87794432bbe9660c5bdbff0867d754e400/shap-0.50.0-cp312-cp312-win_amd64.whl", hash = "sha256:1c9b534eb06d6b6d5f68257be2cc83be4e324aed89884876600ce86dcb6b1818", size = 549302, upload-time = "2025-11-11T18:36:18.627Z" }, + { url = "https://files.pythonhosted.org/packages/ca/de/40120047779e2b6da8838bbf94c58e15c345aa5b7f805418da558a588d73/shap-0.50.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0249b10142c1205e7de994c6135178faaaabb6b12528382db1f8e1f2b902d207", size = 558175, upload-time = "2025-11-11T18:36:20.001Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c7/20f79a21bc5b548d12c144ffce93e4afb4b6af8e1593b60ac6f1bf598383/shap-0.50.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e9908af8d22d2be05f303ca8fed70fd845bbbe33190abac24b6cb1a89e294e20", size = 554885, upload-time = "2025-11-11T18:36:21.801Z" }, + { url = "https://files.pythonhosted.org/packages/cf/cd/5e309071aca6c177a24fd4ced99cce36069234b2431e70a0919cc837c2a4/shap-0.50.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f8e01228d780ad2efbc67d3ae6d3ba2a4afe02e9e1519c891f67d641f0e17d", size = 1044107, upload-time = "2025-11-11T18:36:23.301Z" }, + { url = "https://files.pythonhosted.org/packages/6b/6a/c006de5df0e0f4850aa94019df1f79bf6a5342fa851ca85e4728691fd0c4/shap-0.50.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a757c94cda0587edb727cbf08a4af819921ad42646b55833713c531ead75742d", size = 1056016, upload-time = "2025-11-11T18:36:24.954Z" }, + { url = "https://files.pythonhosted.org/packages/fa/00/92e91357c2ec3d8996e8a7d1f0592c6c2a69edd381087930cbb10dfa2807/shap-0.50.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b35200f21f3f67c96cf19a819a60470d052281c8f3df7da13fed40fdf64ea469", size = 2006035, upload-time = "2025-11-11T18:36:27.151Z" }, + { url = "https://files.pythonhosted.org/packages/de/04/ee0f84f405c7a0070f46224bf4449a4fd32dcd5e799f20818ecb70e4591a/shap-0.50.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cf267e854b0ce4b39c861f39d257f9dfb86704167eeb4db006c01f115dc37489", size = 2082743, upload-time = "2025-11-11T18:36:29.167Z" }, + { url = "https://files.pythonhosted.org/packages/02/48/5db93e86f3b77613ed2ef532f79bf8988d43e542444f3f59cad94fda853b/shap-0.50.0-cp313-cp313-win_amd64.whl", hash = "sha256:84b3c2791c68d1d3186cedb15bde98b8efda643034dd0ecf5fa1b0f4e1265cb5", size = 549110, upload-time = "2025-11-11T18:36:30.796Z" }, + { url = "https://files.pythonhosted.org/packages/5a/08/8a58cf6d43be07cc99e8c16385c2e10fb070def22f50bff864bef101498b/shap-0.50.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1fb30930986bda79ac3f2a4e4db5942d7874b2d917c717a2fdb9aa505e11dd20", size = 555585, upload-time = "2025-11-11T18:36:33.199Z" }, + { url = "https://files.pythonhosted.org/packages/58/22/68c831039e5798e994b46823a3a2d635d1d4e07ba9d9ebdff323a5c02f43/shap-0.50.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d82522fd5b050a261323021b4c17a1027296ec2dc3bf8550863fde3ddd0f9d68", size = 1043164, upload-time = "2025-11-11T18:36:34.827Z" }, + { url = "https://files.pythonhosted.org/packages/29/99/7253238d1e4c58628f0f985a75d4ce5c8de6022e25f709eba2e999d590bb/shap-0.50.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96b1efc72393533a64dd3a3d524b4b13ab4a2752cd63e8c74167f59aa081e230", size = 1051961, upload-time = "2025-11-11T18:36:36.55Z" }, + { url = "https://files.pythonhosted.org/packages/29/d4/deffc065a46600171f816b83a621cef81357ca8db579d031f569f681c7e0/shap-0.50.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:58d5aa9e802145ef21c596932ec28605d7ac4f879ac614c6106f4c7e31e60096", size = 2005489, upload-time = "2025-11-11T18:36:38.443Z" }, + { url = "https://files.pythonhosted.org/packages/69/d3/d295efc01cc091a504f2c2a2040f1e965bb670eca4dba1582150b6885321/shap-0.50.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2deb44e3fb8bce2c3c98be04617b1209c81f87d6e769f57c9b0cb1cea0761118", size = 2079076, upload-time = "2025-11-11T18:36:41.658Z" }, + { url = "https://files.pythonhosted.org/packages/40/b7/3d30baa1bd0473c0114a2de26f26fb3b55968290fc842242f787b0bc2b2a/shap-0.50.0-cp314-cp314-win_amd64.whl", hash = "sha256:8d05f0c0c8d4f7752ae29098e72589437b3576df3434b16c418e6e0cfa2571cd", size = 552278, upload-time = "2025-11-11T18:36:43.337Z" }, + { url = "https://files.pythonhosted.org/packages/7f/63/5c2f0b832c5cd0874cfcfd1f4d947cc6bded45a4242b62ee087589cf98c4/shap-0.50.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:49966fa3f41113c76045b2c5a3415020a1dc643559526cb993fdaaf3b6b37352", size = 562192, upload-time = "2025-11-11T18:36:44.99Z" }, + { url = "https://files.pythonhosted.org/packages/72/c9/c58ec4122e0d1fbcfafd5a06bbd477240ba7a46cafafca42b817d423b1c7/shap-0.50.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181a6cb1937ceab3da16e5bb43bc37c2556fffe58f783b12e0a9571172899cf7", size = 1076086, upload-time = "2025-11-11T18:36:46.9Z" }, + { url = "https://files.pythonhosted.org/packages/ed/49/811a7b95f0d3dd654308984f56b34c4ed1712f6f483128f729bace80c243/shap-0.50.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:6b23684d3cd86cecbfc52a47cad780b83d45f8c028368d1d4c9373a8aca822f8", size = 2027950, upload-time = "2025-11-11T18:36:48.849Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d1/a563b5fdc39b0c300a350d765f2133bafa9df0867061c1c8adda45cacd9f/shap-0.50.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:27d46d1001f74f6a28567992259150ec9d4ea895ff20b02db38c31d7f268a3c7", size = 2089909, upload-time = "2025-11-11T18:36:50.851Z" }, +] + [[package]] name = "six" version = "1.17.0" @@ -1240,6 +1784,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "slicer" +version = "0.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/b4bce2825b39b57760b361e6131a3dacee3d8951c58cb97ad120abb90317/slicer-0.0.8.tar.gz", hash = "sha256:2e7553af73f0c0c2d355f4afcc3ecf97c6f2156fcf4593955c3f56cf6c4d6eb7", size = 14894, upload-time = "2024-03-09T23:35:26.826Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/63/81/9ef641ff4e12cbcca30e54e72fb0951a2ba195d0cda0ba4100e532d929db/slicer-0.0.8-py3-none-any.whl", hash = "sha256:6c206258543aecd010d497dc2eca9d2805860a0b3758673903456b7df7934dc3", size = 15251, upload-time = "2024-03-09T07:03:07.708Z" }, +] + +[[package]] +name = "smmap" +version = "5.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/44/cd/a040c4b3119bbe532e5b0732286f805445375489fceaec1f48306068ee3b/smmap-5.0.2.tar.gz", hash = "sha256:26ea65a03958fa0c8a1c7e8c7a58fdc77221b8910f6be2131affade476898ad5", size = 22329, upload-time = "2025-01-02T07:14:40.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/be/d09147ad1ec7934636ad912901c5fd7667e1c858e19d355237db0d0cd5e4/smmap-5.0.2-py3-none-any.whl", hash = "sha256:b30115f0def7d7531d22a0fb6502488d879e75b260a9db4d0819cfb25403af5e", size = 24303, upload-time = "2025-01-02T07:14:38.724Z" }, +] + [[package]] name = "sniffio" version = "1.3.1" @@ -1296,6 +1858,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f7/1f/b876b1f83aef204198a42dc101613fefccb32258e5428b5f9259677864b4/starlette-0.47.2-py3-none-any.whl", hash = "sha256:c5847e96134e5c5371ee9fac6fdf1a67336d5815e09eb2a01fdb57a351ef915b", size = 72984, upload-time = "2025-07-20T17:31:56.738Z" }, ] +[[package]] +name = "streamlit" +version = "1.51.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "altair" }, + { name = "blinker" }, + { name = "cachetools" }, + { name = "click" }, + { name = "gitpython" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pillow" }, + { name = "protobuf" }, + { name = "pyarrow" }, + { name = "pydeck" }, + { name = "requests" }, + { name = "tenacity" }, + { name = "toml" }, + { name = "tornado" }, + { name = "typing-extensions" }, + { name = "watchdog", marker = "sys_platform != 'darwin'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/59/6d/327ddd5fc35fcf2aeecb4040668337f5565a1c6c95b1e892b8bfd4bb9031/streamlit-1.51.0.tar.gz", hash = "sha256:1e742a9c0b698f466c6f5bf58d333beda5a1fbe8de660743976791b5c1446ef6", size = 9742904, upload-time = "2025-10-29T17:07:39.082Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/60/868371b6482ccd9ef423c6f62650066cf8271fdb2ee84f192695ad6b7a96/streamlit-1.51.0-py3-none-any.whl", hash = "sha256:4008b029f71401ce54946bb09a6a3e36f4f7652cbb48db701224557738cfda38", size = 10171702, upload-time = "2025-10-29T17:07:35.97Z" }, +] + [[package]] name = "tabulate" version = "0.9.0" @@ -1366,6 +1957,25 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/03/98/eb27cc78ad3af8e302c9d8ff4977f5026676e130d28dd7578132a457170c/toolz-1.0.0-py3-none-any.whl", hash = "sha256:292c8f1c4e7516bf9086f8850935c799a874039c8bcf959d47b600e4c44a6236", size = 56383, upload-time = "2024-10-04T16:17:01.533Z" }, ] +[[package]] +name = "tornado" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/09/ce/1eb500eae19f4648281bb2186927bb062d2438c2e5093d1360391afd2f90/tornado-6.5.2.tar.gz", hash = "sha256:ab53c8f9a0fa351e2c0741284e06c7a45da86afb544133201c5cc8578eb076a0", size = 510821, upload-time = "2025-08-08T18:27:00.78Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f6/48/6a7529df2c9cc12efd2e8f5dd219516184d703b34c06786809670df5b3bd/tornado-6.5.2-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:2436822940d37cde62771cff8774f4f00b3c8024fe482e16ca8387b8a2724db6", size = 442563, upload-time = "2025-08-08T18:26:42.945Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b5/9b575a0ed3e50b00c40b08cbce82eb618229091d09f6d14bce80fc01cb0b/tornado-6.5.2-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:583a52c7aa94ee046854ba81d9ebb6c81ec0fd30386d96f7640c96dad45a03ef", size = 440729, upload-time = "2025-08-08T18:26:44.473Z" }, + { url = "https://files.pythonhosted.org/packages/1b/4e/619174f52b120efcf23633c817fd3fed867c30bff785e2cd5a53a70e483c/tornado-6.5.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0fe179f28d597deab2842b86ed4060deec7388f1fd9c1b4a41adf8af058907e", size = 444295, upload-time = "2025-08-08T18:26:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/95/fa/87b41709552bbd393c85dd18e4e3499dcd8983f66e7972926db8d96aa065/tornado-6.5.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b186e85d1e3536d69583d2298423744740986018e393d0321df7340e71898882", size = 443644, upload-time = "2025-08-08T18:26:47.625Z" }, + { url = "https://files.pythonhosted.org/packages/f9/41/fb15f06e33d7430ca89420283a8762a4e6b8025b800ea51796ab5e6d9559/tornado-6.5.2-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e792706668c87709709c18b353da1f7662317b563ff69f00bab83595940c7108", size = 443878, upload-time = "2025-08-08T18:26:50.599Z" }, + { url = "https://files.pythonhosted.org/packages/11/92/fe6d57da897776ad2e01e279170ea8ae726755b045fe5ac73b75357a5a3f/tornado-6.5.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:06ceb1300fd70cb20e43b1ad8aaee0266e69e7ced38fa910ad2e03285009ce7c", size = 444549, upload-time = "2025-08-08T18:26:51.864Z" }, + { url = "https://files.pythonhosted.org/packages/9b/02/c8f4f6c9204526daf3d760f4aa555a7a33ad0e60843eac025ccfd6ff4a93/tornado-6.5.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:74db443e0f5251be86cbf37929f84d8c20c27a355dd452a5cfa2aada0d001ec4", size = 443973, upload-time = "2025-08-08T18:26:53.625Z" }, + { url = "https://files.pythonhosted.org/packages/ae/2d/f5f5707b655ce2317190183868cd0f6822a1121b4baeae509ceb9590d0bd/tornado-6.5.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b5e735ab2889d7ed33b32a459cac490eda71a1ba6857b0118de476ab6c366c04", size = 443954, upload-time = "2025-08-08T18:26:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/e8/59/593bd0f40f7355806bf6573b47b8c22f8e1374c9b6fd03114bd6b7a3dcfd/tornado-6.5.2-cp39-abi3-win32.whl", hash = "sha256:c6f29e94d9b37a95013bb669616352ddb82e3bfe8326fccee50583caebc8a5f0", size = 445023, upload-time = "2025-08-08T18:26:56.677Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2a/f609b420c2f564a748a2d80ebfb2ee02a73ca80223af712fca591386cafb/tornado-6.5.2-cp39-abi3-win_amd64.whl", hash = "sha256:e56a5af51cc30dd2cae649429af65ca2f6571da29504a07995175df14c18f35f", size = 445427, upload-time = "2025-08-08T18:26:57.91Z" }, + { url = "https://files.pythonhosted.org/packages/5e/4f/e1f65e8f8c76d73658b33d33b81eed4322fb5085350e4328d5c956f0c8f9/tornado-6.5.2-cp39-abi3-win_arm64.whl", hash = "sha256:d6c33dc3672e3a1f3618eb63b7ef4683a7688e7b9e6e8f0d9aa5726360a004af", size = 444456, upload-time = "2025-08-08T18:26:59.207Z" }, +] + [[package]] name = "tqdm" version = "4.67.1" @@ -1495,6 +2105,24 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/63/9a/0962b05b308494e3202d3f794a6e85abe471fe3cafdbcf95c2e8c713aabd/uvloop-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a5c39f217ab3c663dc699c04cbd50c13813e31d917642d459fdcec07555cc553", size = 4660018, upload-time = "2024-10-14T23:38:10.888Z" }, ] +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + [[package]] name = "watchfiles" version = "1.1.0" From 04be06c4da5d0fff8b8ecfebe7d6832810b58098 Mon Sep 17 00:00:00 2001 From: "D. Danchev" <12420863+danchev@users.noreply.github.com> Date: Sun, 16 Nov 2025 20:56:43 -0600 Subject: [PATCH 2/2] fix: Correct column name in training feature selection - Updated the column name from "created_timestamp" to "created_timestamp__" to ensure proper feature extraction during model training. Signed-off-by: D. Danchev <12420863+danchev@users.noreply.github.com> --- credit_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/credit_model.py b/credit_model.py index cd95aef..8c7f5df 100644 --- a/credit_model.py +++ b/credit_model.py @@ -74,7 +74,7 @@ def _get_training_features(self, loans): train_X = training_df[ training_df.columns.drop(self.target) .drop("event_timestamp") - .drop("created_timestamp") + .drop("created_timestamp__") .drop("loan_id") .drop("zipcode") .drop("dob_ssn")