From b6da51b618422e25ba7f2a11c094756cb41fc990 Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Sat, 18 Jan 2025 19:36:39 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(api):=20Update=20subscriptio?= =?UTF-8?q?n=5Fprotocol=20to=20subscribe=5Ftype=20for=20consistency=20acro?= =?UTF-8?q?ss=20services?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/dashboard/subscribe/app/form.tsx | 6 +- .../app/dashboard/subscribe/app/table.tsx | 4 +- apps/admin/services/admin/typings.d.ts | 2 +- apps/admin/services/common/typings.d.ts | 2 +- .../app/(main)/(user)/dashboard/content.tsx | 147 +++++++++++------- apps/user/services/common/typings.d.ts | 2 +- apps/user/services/user/typings.d.ts | 2 +- apps/user/utils/common.ts | 3 +- bun.lockb | Bin 609296 -> 609720 bytes packages/ui/package.json | 1 + .../src/custom-components/dynamic-Inputs.tsx | 2 +- packages/ui/src/custom-components/icon.tsx | 2 + 12 files changed, 106 insertions(+), 67 deletions(-) diff --git a/apps/admin/app/dashboard/subscribe/app/form.tsx b/apps/admin/app/dashboard/subscribe/app/form.tsx index 758a4de..1c0915d 100644 --- a/apps/admin/app/dashboard/subscribe/app/form.tsx +++ b/apps/admin/app/dashboard/subscribe/app/form.tsx @@ -42,7 +42,7 @@ import { z } from 'zod'; const platforms = ['windows', 'macos', 'linux', 'android', 'ios', 'harmony']; const defaultValues = { - subscription_protocol: 'Clash', + subscribe_type: 'Clash', name: '', icon: '', url: '', @@ -58,7 +58,7 @@ const versionSchema = z.object({ const formSchema = z.object({ icon: z.string(), name: z.string(), - subscription_protocol: z.string(), + subscribe_type: z.string(), platform: z.object({ windows: z.array(versionSchema).optional(), macos: z.array(versionSchema).optional(), @@ -172,7 +172,7 @@ export default function SubscribeAppForm< /> ( {t('subscriptionProtocol')} diff --git a/apps/admin/app/dashboard/subscribe/app/table.tsx b/apps/admin/app/dashboard/subscribe/app/table.tsx index 904f486..8e26977 100644 --- a/apps/admin/app/dashboard/subscribe/app/table.tsx +++ b/apps/admin/app/dashboard/subscribe/app/table.tsx @@ -76,9 +76,9 @@ export default function SubscribeApp() { header: t('appName'), }, { - accessorKey: 'subscription_protocol', + accessorKey: 'subscribe_type', header: t('subscriptionProtocol'), - cell: ({ row }) => row.getValue('subscription_protocol'), + cell: ({ row }) => row.getValue('subscribe_type'), }, ]} actions={{ diff --git a/apps/admin/services/admin/typings.d.ts b/apps/admin/services/admin/typings.d.ts index 3d31bbe..ccbfcbb 100644 --- a/apps/admin/services/admin/typings.d.ts +++ b/apps/admin/services/admin/typings.d.ts @@ -50,7 +50,7 @@ declare namespace API { name: string; icon: string; description: string; - subscription_protocol: string; + subscribe_type: string; platform: ApplicationPlatform; }; diff --git a/apps/admin/services/common/typings.d.ts b/apps/admin/services/common/typings.d.ts index e34759a..04164fb 100644 --- a/apps/admin/services/common/typings.d.ts +++ b/apps/admin/services/common/typings.d.ts @@ -42,7 +42,7 @@ declare namespace API { name: string; icon: string; description: string; - subscription_protocol: string; + subscribe_type: string; platform: ApplicationPlatform; }; diff --git a/apps/user/app/(main)/(user)/dashboard/content.tsx b/apps/user/app/(main)/(user)/dashboard/content.tsx index edf27a0..b0d22e5 100644 --- a/apps/user/app/(main)/(user)/dashboard/content.tsx +++ b/apps/user/app/(main)/(user)/dashboard/content.tsx @@ -43,6 +43,15 @@ import CopyToClipboard from 'react-copy-to-clipboard'; import { toast } from 'sonner'; import Subscribe from '../subscribe/page'; +const platforms: (keyof API.ApplicationPlatform)[] = [ + 'windows', + 'mac', + 'linux', + 'ios', + 'android', + 'harmony', +]; + export default function Content() { const t = useTranslations('dashboard'); const { getUserSubscribe, getAppSubLink } = useGlobalStore(); @@ -56,14 +65,14 @@ export default function Content() { return data.data?.list || []; }, }); - const { data: application } = useQuery({ + const { data: applications } = useQuery({ queryKey: ['queryApplicationConfig'], queryFn: async () => { const { data } = await queryApplicationConfig(); - return data.data as API.ApplicationResponse; + return data.data?.applications || []; }, }); - const [platform, setPlatform] = useState(getPlatform()); + const [platform, setPlatform] = useState(getPlatform()); const { data } = useQuery({ queryKey: ['getStat'], @@ -87,16 +96,27 @@ export default function Content() {
setPlatform(value as keyof API.ApplicationResponse)} + onValueChange={(value) => setPlatform(value as keyof API.ApplicationPlatform)} className='w-full max-w-full md:w-auto' > - {application && - Object.keys(application)?.map((item) => ( - - {item} - - ))} + {platforms.map((item) => ( + + + + ))} {data?.protocol && data?.protocol.length > 1 && ( @@ -215,54 +235,69 @@ export default function Content() {
- {application?.[platform]?.map((app) => ( -
- {app.name} - {app.icon && ( - {app.name} - )} -
- + {applications + ?.filter((application) => { + const platformApps = application.platform?.[platform]; + return platformApps && platformApps.length > 0; + }) + .map((application) => { + const platformApps = application.platform?.[platform]; + const app = + platformApps?.find((item) => item.is_default) || platformApps?.[0]; + if (!app) return null; + const handleCopy = (text: string, result: boolean) => { + const href = getAppSubLink(application.subscribe_type, url); - { - const href = getAppSubLink(app.subscribe_type, url); - if (isBrowser() && href) { - window.location.href = href; - } else if (result) { - toast.success( - <> -

{t('copySuccess')}

-

{t('manualImportMessage')}

- , - ); - } - }} + if (isBrowser() && href) { + window.location.href = href; + return; + } + + if (result) { + toast.success( + <> +

{t('copySuccess')}

+

{t('manualImportMessage')}

+ , + ); + } + }; + + return ( +
- - -
-
- ))} + {application.name} + + {application.icon && ( + {application.name} + )} +
+ + + + + +
+
+ ); + })}
{t('qrCode')} $+7jO8=2RrY4zsKFRRN?e3`zqA`Wa05srM^A*ZKp1)PF~qvKHB4uV_#~=5`N7$ zZ5tg?GPz=u;V9s6r1&>99C^XhV0N%|Bg2ssJb<1X+yLeWYd1C=cuDc07XTo2dOoxyHj0N+6J-`sK5hw{u zff%N=Xl^)4fuG}03Yr~W3UIxirN0|#6(qK$rN@9$@J66iBwXXNR)!-GeOP?oF%Cx~ zhhsW~l(d{SC<;mo4_f3o&88;*;@q1r-XbGd9FSt~} zJi#$m+NAz*L&SeTjIVa7vdLdlMkzz$&>=(OhC3YR(8cxiXDq&9d#kK#Kxv$CP_kSA z<^V%MDPjutqUS{ye>c&KgI|Es7N_tlMIS-t@o{||Bm2e=igS?FxsH~@a=xpjsw8(r zlWbadvE0@IrEfz);R8W&H!wCSZZzYi&{~Jt=l45X**{JCT*QCh)o>I6&w^$bj*3s} z-QVH3+|BB`!`%&YEVS-nb?qGVYSQQLVjz9G4V1pzhy$t5Zcqx~i!~fifYU%3Z2rBi zj3)K6GP(-N7}*0#!B2xykolna9RSK;bN00gay8Dv55R(sWJk(gGvG*B0v5xtI|-y= zEA+QATt-2pA>Yv*6&P=I(0$^??t4&LX!QVV)V~Ny#{EF?*AOfNmI7rq+$DW^@I2{q zb|v5%Vj2EA*y@5$(4_@FMVC>35R?p-gC)Sm!>k(j?mcwGkR*p=w=P)a1gm2&fRg^G zFTHfZ!o!sDAjvL>rJ%Yr$*)8LkA5VULjLYiXZF?C|krB?+Yzkuya(h)uFv6SV)4n z*u*%;GF_0_8b_yC9h|(*Va~jl;H9SBCR#0Z1e5{MJ25e7%&<5|J6~$qg2{7e4;inq zlPvGUhQ}uk9+2qRj4s6;{i4-tJwO?c_C#onF6~znl=i(e*=mOR=#tKE_ecB5?g!mp zfhqPlUEr%$u3&OgvXw&jjU6$FG2-Yubok&{0`1_Xm6Iv1%+mx=vPsWt*=K*n8br6J zS-tfYDAn3D-AZT7u=siC(#_k^rT8zQ%P?y<)5PQyyPjJi#DU!ocD?NS+V!{VZMV~4 z97;QN))_^DvcC1Az*2#BpseYASePpJ9g;}x`qSKw?LMhcOGnBY0@4DDKxx>?piHB& zpmg659p6XCH^-qYFyWxoto&SSS{Cu8mM@rG3|6Y)24$G{oM&03b8Zu_#pYX+(*;Vq zMlG<~wG1fff;8SHUebT9?Y1tosu8rvYQI0xr9D5!uT1^}ApVk50vB6EI)>6NhtXx7 z+kk;MoC`{^Q>+9jU6xw*9kgCxnUzr#x}-0s`5d6EpXpH+o(HACZ-Y{?m0$^3C#P%T z$_gu^QRtF!H&6;vAC&bjCnzQVwT|WR0w@mO1EpowgAzYOV-hF@>Iq5(K3-#uz#X9Y z@4uG*l7+J!1~OFdKnONKm!>KQ7V$+@tkm$6^;RQ>Zm_c2#XdlWK-G=bn6bOQAiD6? zH(7RNKsm<-Z}M%ZShjl7>z3mWKpAS~wpivbf-;g4LCLs3@!}?WtIw}eSnzk-Ec2wn z!)=f_KQoZJYsmfW9(k5SrR~r zUrKs8k+jFZ=z|CLi61_Us(tg8Rl!evsZW+m9#zvsjr?$pELzB!L_E9kD$64=L1z(FUBeB9^s~wXPD-RjkC(iNV5o-jy_Ba@k zb(nk*G9B-&5aMU#|VkUV#UC|m__C36wWoS>E+S#sN=M}VezMv_Q&PI(5M{QqF??~r( zLLGdk;v=0O5~}N)(KFH$+{ADU$ndcct-Gx`@1QmH1@($_)@v#$33=uaYKw)RFSxhY za~Z9*W#7;1Y2VCn^t4lZ-au<%YEstwXbtT+XZ@!QM|;!rYlKYC&L0T%^aX9G<7Ru` zE5r1Cw8o}so)(6qm05`Hgsg0XsrWIpde~=EXX_YVXA+z9*1j3k_iaKAe9_c0TPv%j z0(>z&y`E-hO-PW-mrC*tXm!l&VwQS6-=Rq#`1w+Mc|8T9t=jraI(J_*X>YZ>VYaHi zl&)^~1{moN&5ZH5A;g)#**w)+Ta`8&D_de~!_inYM-_22T#(*|}cNDzutr-l@~P&d<=E z^hL)-dWy!_gC=-tgd0VSXspJ#&4`lPeuh@tbP(LjYm`t^2N?A{ZQB`+Fi1mk_Ds;4 z)0a9v!i^&BLG^}vjq7UaKPkHI; zy=ZMLE!OJ^R<4< zA)X@I&&=dAt!4A2GAD9&w&Iw@bYnxU(MGr(iKa&vmTSF&~%$qSh=SUpBJ!_gJS>Va-( z?M+WCHXft9u8@jp!LUG+iENHr&v$73(G03jTn}cUm5vdBGR;z`PtBgzT0*jc5pEQj zqx8~sQ<0Hk)wFu7T_tI+ooGW$AF`s9=JLxNgDUt*GV5&>*=oJ9XjYM9u9;D?R9R(w zvJcIbp-n)Onp$z6p~(_wX^rCyM;B9*%tQNTt?9&vv`c6iZSC>))0#@{Ou^7(jWT^2 zzo@BWjCw|ObqsL!<;u?MJ2fEEy_k@!2AN~G2v>j2VX~Vey*F9|TXU~Mll(G!?8E@W zkpyF|2=00Vt$L{CGSpdqoar{TI)nXZ?a8H4;%1yauANRP?`gBMLo>NMl-qDg<7YoELINNbp9t{M>aiFV1N=gdD!&hMP3JW~kC z;5BRL{tV4(d^$+g&u@5KqYXzN;;kmHzuDu4klK(dWq5!lHDN6F^%~L2GnqBv+cDNT zuCy=ame;vztl?-W-RHSa$UIq^%X!o|Ta(H>pQ#=4I**}6sZ&#oI{wdNH%JIDzHix?g(F-*p&NvoYelam=I^`%}<@H9PHeW{1M zo<(Ra#lp*j9npO7T*a-J@+doD3-$?ZFP)9d*i&00@`S46mdh9jIbIaTT?)I8^FD!|VA3)g1pSCJi@ptc2$F%-J5Tj_=gPNYAT;Wa`rU7rmb2Xi|Ji z)!pkEH`h8rS=vQ3DTt+oD*Kv=A?=Ju;|hm1JwQmh*D8cx!FlTVVxz8+q&!Qg_1<|_ zzZt&ZU0!FM`D_==3yXP#tmz_^Y`MTLQ_MRNZWI|k*0%1$teP`)AxnnoAf8Y&tZ0{h zUgMx@zKq;TEV9;0#&Uw!(;ZFLLmd6)buL7+uB^%~)_JSor)VcMX+*3z1)@lE7%FC~ z5#hhY+!}IO_5z`&&3S&DkTpSMH<3+fl?DZ9+-7_&ysK4@*t zI=n&18genqz0Uh+T&nepbhcY=ht?3{f|L^cMyQpnIiC6}tUVV^I>qZ;gl6%764FC< zIosit_TtKnbWTHSXQuv~kX}i!dTNzbVp@@DH4V*LSEM#ypqc%kQm4~QtFzS9ITEdd ziax?AOG4&aSZa+~FX}s-knFbDk#f26wK}$r&03kY%x81Nq!5yEN(ERt_M=6jaiMb{ z!nMv)GFDwrLl|o%rM5v6(9Ek0hr_|Sr*9?Moq0~#HtK9WO1fV6kVtjgO~rVa zBd-xDmm7iR`gR3P&Jh9TIl{ZaT5(vmsQy^AmXc7GG~;9C*~9>=x6$&=f^|7UO@%Vv zQO6|a=}lSM&RDIQZzk@FnhJPoZMK&(**83|Jg-Augp`u7fcEt|OT5k!AQz|3S%hdO zE>kZNvN|-CT}+KF%xCk|Fq4pO5}Nn8I<^IOL0k27SE+u~v$IyMbMkyNy&%W3dqcC% zlgvG5nQgK%1Tm9i2}w@`n#=YgG+Ck8woUeWZlXz9On-in+g0FpE{hYl+w+zZ8k^PB z?Udveq-+2jzL+@9eLJjjF&1LI#vs*v2PSJFr373~a~8OarWZBFL+BgUs*_CxhtPd! zvRYa96P9X?Rryt~`@GgN*ZsV2X6y$T&dt%PlGf!*Wi=Rs7KX;o;Z?8aB$`ZgI+8q# z?zHl>&U!u3WdA`fx47GbCS|oYMPHyjnV|)yS?5ltwE#Cmm73#*W*(1bEwpTJJZWe$ z)Hnr`;dPym4eDr4&%3Om(MG+z?sjOBVMevwufoU)JA?7Ot!=D*bFSUi++?TBiqILY zsd*>hIH8PfuqXc>t8~nDhEq$ly1wWGb=(A`nC1z_&#_k>-$Tzv?zN1W8EjIfqscay z>=sA3Q6vEqc8b?8&s*yFUJ?v?%Njfm74t0P?;5J!RnUf^`>Y=3e9bwh8=AR1sNh1F zE#tYFcNQ$ZRd@HESxGjmP@@u_B@l_dPzBe*7yt!{_EpwrZc*n}k><3R0 znpNgtHW}M>T*d%!{w(q4tbOubolXU>piOMeEYB)5Jp^Sz*P2z6N7ZqO zUkf8s%iR4re@CmUqFd0M$E+%`?6W0JM3Wp1bvBhju>B#`nT~4Si}Zvaw>u$to!3ZE z$BwXmY=)GX?XOY`QD-!n*=(5Tr|c)J8EUTEe%=%6_)(*-^8jpfb?PWpDteNggBkSn zCMZ3`2;!=CHJV-}dwKn;pHhLxjR~Gzr}P~61z+`genOK|q(cQ~H@wEcG|vg+nUcvQ zbG+>4pT=z9H1s^+BG3h{1pUFa+D=gHHfa8J%?pa%cF+KKfMT~3^aFQkeXrK{x%t${ zNyOU_0pL*`aa`+XKymOPCE5R{C50Hpvwf(1YWV=0(Z5@{4W zmnYeZ$WDYL$e|7X2_<1pZI>0L3XH+w}m&q`$Tklwu9?Fr>u6U>zYS`VdeW zAOVyN6Lq{`4s_`Vu}cB@Y=|j`o7$;4M%NLDBbtG8f(f#qKaDevX4O#6AFJ&U^}r{W+~)1SQ=!QWG)!5tM|# zfYNlgw0;*92M<6w1SKQCK#O;2%mGUJ+@KtSVwV@>!#PJu%?nCFLNz9r(h-7^MkrmX`?fg6C5QA1GDHwUGF(V*D1vEs`*+Ukh*pp>{HC{5E1KM ze>v6o>qbE}{kl;|ZIXW{uN%3m5$PBsCK@HXv04|DVkCpYrwFS2>3jn5K7nJ%Q)b@gWxav5qiH`Ub6i45H z;`p*Q%!<+=KWRQIiv7=;&x+DezrjldZt8eJ(QgGZS0&+X9U&+q*5I>bIsPvw{<4u? zdMp5xj9l8EpcE)b^Es1sAQvbJ@_=#(%4$*yl%^~P<^;oayr9@eXp98KuD;eAfl`nr zpd5lykfxweG5nL3OzuQLCUYDp3HpID_lAN}04bn!$txg#j=B63yLq7W=~^K*N&z;Z z7Y5%0#qS586#OetYW^L_BVLX>AX|)NM|Ql6L19o%)m1=o^b{x#8i3e3T7l9_9YFpZ zy)+I1rNARWNjDA@yUC!WpAE_)F&C6W(5!%|Q-yh&SRjPD_nSU}EkTtQTMA10m7w@v z2TJ-48aIK`k~=^-vZAC*gO{G#qvIcklFwe^1>edcjY8lEgy09DWcZQBPe3`cqQswr z7YFCH-34v;IFz3Ifp{s{HJ$EfZU1u)CWScqMH7OeU)Oq86h0kZ3h*l^4sU6@tSENB z!wcR9%}FNR!(lv%$q?c&8z>F~wC>i1SyAG%YhF->LS9fZ$_I*{0-7%lihZcoE9m%2 zpd5k{pBzR&`mQ=Cj%w(LnxGtyL+Ppp+PlL;>J2X&^bw%wBek8N=%chQD2~TyeyqlE8lTtk6SQu%yvljoD3C1aUe^2+Z8uHp zuV|dE`I%aurS()$4nf&Wt7 z{A>kfxjLrp1f}99g3@ZAFiQPzy*#oe%)ggM|6U%kK61!qk}RQeStN&` zY>@uFJkkv!mq~Ii`St&R*$iJ6I|6U$(5%BNj5p%)3T#|M4-^-(aFOT%q$K$Sg zWT<4}|9@W|y?nQa#rITB9|8w&?8n;?j^tjY0$ZGWZS0{ap9KTB`Yt zY#r6@8`*-?<{Q~s8jfii&E$2o3)nnU#1IUfIxb9VU$%^B?9(&#;Bw?9o`5L?VZk5lmmL?J(jQ$qAph5aCo z3NhXfB3>O6Vsti$%Gn?WsxjFh%KJlH6k@Qd;16+5h#CG6L)Cd9rZ^#@oDd0WsuLn2 z0OFbuiK8)e45VBE;fgh&k%25cBdtMCXA}YJMJwr}IMG6JowV!84ZfY>F(-~tdU)ovmB z7lbHQ5Ms58F9=bn5X31V)~dpVAdU(#z7WKEbxerSg&`^zhS;da6ox2Y1mdC)n^lD( z5a)!LQ3PU(IxobO5dWO2Zis&iW1E^90ufOZi)$fR>`=9eLR=AIaZ!jj)m0(p6@!Q_ z29c)b7lU}ZxPK1yXEFa)e!HD&VxoUbb?v5Kc6GZrcAJZ1w^!XM?%&aPD=nsk|LOM5 zeC_z2SlZeC{?GaG{FQ&&izEHrd3q1Ze2=H6a;wnt{_=#De_{KJfV~IB zhsl>mW&dh^DNv=i@gHg?>onCrpD{UY@KpaDZe!!ip|kzdLT5WwA$7gHe>H}_^R>WN zH_4?DA8;Q~9X2}amLz!pfprMohpmw80pv!q9DUTbjn2GLahjGpT5^wEj=q|c&6C{5 zm7|~LB#%9Emz|@(GB)8NUPp=NT5?N~V*s2~L(~SE8>H>z#%x2)4OTI@NFGX*ltAuq zw$V|;wYl8tP10PV=Hyn|NX;c_PD;O5-(wr0IVt^q&5hKYeB^LYbEDuWW=``C;#A!< zV^q3SYpk}Hj}nUMsBxOh2Uk*a&uflvi8^uhK zii@Q>svJ={tdZ(i1}F6{k1Qc9#|mv%L5GD~sm|ged6kZ;1XV-3SgpAy;S#iqHJYmo z_nr(Nj zn4|9l?A3-mL+5C!xwlmCR@!}^Hs{$z$4}HyhW`OLDIU)iI)2dIbV9q}nP5j*X$g*# zDpp*a(oyxGhRI0ccwck%35O7t4oaF&qRwg;T?tF`3HO2Kx)GN45bi^DNnCuSqk2I7sfW?Wn(GO7 zL35vIE*9>R<~~)`cHrWij_OU+Ssis=bA8}shRE@m=HduHpv}sG7t};tB!8}>`a#Kp zE5}96^(Wk4b6;pK9_}ckUsi`N;Uw1q$orbRtnFlRmJdkf_)c?!2!9VJtH}2jm+Tmf z@}(xPXu~0J@~Nm8UWJn(GZgU#@sHz2Z8wZ?EzSJ|M>jhXklJvv1pT7Z4kuhkbLrYH z5pHo%GXFV#(+*`=?<8Y6Zfb4>;i4Wg2XAR^B;liarTATQqu}I05IJtcNyCjs+G*}j zZ8rw4fadP0;5X^V`$S0{$01>Q^^le|(4R+&=}s`<#BMxN9Iif?O~r}}r#6=gl_jbH z7@*Bl2$$2GTiZ>9s|eQ+^r&s(B2Y(7f^w5}V=%ksUL+g}*96R=xygiU!Zihhl(7>R zId#;_P<)BPTy1h`ZVKF3&E_n;dP{w73c}gr4nARxzZ|KT$IsKKB5*%HXLQO z+t&!+gOin|ytbP|_*b|NU9xEC0%F5x2CtD}}eozx-3r3;L9$H2I+|NaxGS7Y!6?nGA}pVf3s=|Tk{zp2o`sZoSx+0TA>0a1 z=4E}&ttH$haqLAp6OdAL*Dl^79H6-#n%f6wXs)M<6&JBO>VPDrfO7QG z+(E)!G}l{mhu~x)%fTg+xQNqH??BDa(pPiuqRXlxd_Opu4eue75IF`YV=pcSYV#vd zpCK~O2Wjpo;Z3BIc|KTk#|W>0n+*<8G2&vFjyeH#jwqR=37R`e_(M3Eq{B6LitrgY znWTwoIWCfubku1md7wpR*a$eR9A^-D>Sh@@THBo^EE8cRI7V|H5SB+rWaf;8lkWKt z;SqK7cwYPa2<incfP3Y z&cnR|C!=bzN);C`5hVlY0WEL{yE{7;ba88qPdHNrLo^ZrmIWhVup_T5=y4O zbn8qwQaZju#I^L@tJ>}o;gvL-^i!&;whtGxb<{UdvRq3e`!x40VOg$)drfnf3G*1f z*?4o*L~$`!M}1G!X&t3BcSV~^JI&MFRl+=h?+|XjIx8*~5Jg6gACV+VFN1BdHvfrm zisqJR?i!plr?k^j6}lf6%XHK)P_mp!n=IFEuM?KG_!?QI?a~R$`27Z4trBq2W{r;e z73y;e_yf3BbH5Rm7361Ro#t*5mK8+e)@$yzY>_#Zedbha&pSiatc^}*+MWH*G$ZIG zHv@n{xC_~>4jpvnEqs8WT;;!wyn`G@jvz+n@LS&hg;e~Xbhh&)I*S?znr8InAM;4mZsi9`A$@kncA27YEDvyfC|E~1bK z;_@N^h!@qQUaTjh&+ON2f2&`G6zwJFNjUpTmp*_d8q7DoWFs*iO7yRKZVVW*7padlM5-h5IJNB9=OL4j$;b=HFk~>2gd`xtks(MT5|8vlh9U!yfk=O35F$JM zm_WW2^$dZQNGn9P`UR0fND-tsQUbY70n(8h$gjw6$W2w@xHF{K8G@Y=`FYpYNE_ry zq%sng*6p}c`6Yiy`vlX@c@Wvx8s=kv_;^WEhfw z^hXjAd1x^n8G^(i!;t||;nUlJIH$iwfekj2OnWGS);S%54=rXnMdk;p`3G%^mEfXE{<5lAQ^`?x>x*9+-` zTtU7-zEa)Zcm7d9p6>k^iDjJ0leqF!ZZ_&CkA}+Qr%xdjkcw*JX=mQb@--oO#=9}{ z4W8w(teMC%!b`xV$Z})_vPK;`?d%a0Kx!9K33*agKI1IN&G9B@oERTvC67@C8rv5?L;Z>mx;w z*~llv<)J)L#CyOHM6P`2{}O+)<6eoZM%Ey*+YVP(KXLxpO*T`qdAfl(3AaJSrEHX>Xm<9( zOI0qD^gHBxL^er3AU`7CB7ED(u@0=OB}i2}=R9Eiq|(nhHwK=O8zUTl2CFsaouvv( zxEB38iF3H@kUJsSXzSf+7tcF)6f3g}^X5o1L~JCU0yyNh)=ot3eC2N(zc;S{HcD#*^ zh&ut_5Nv=HBwx7+AQuI~H-&40G)4-*NxYa(?qZMvwnvhXwn$6l z27Cfo6DPw&r}kOX$(BsghBVT4v9goVJGqo;l445~1S$D82l8bOh@HwOl(h2E|G=T30_EZyt0!kzgBq(Lz8?hNK2EfH5{gHk; zUT_dHmuyF1JB09HO z7y;@C$5R+3XVIT0EUTzowv8ezwquad$T(!IO2`=yl01Rncm&^$mEdw@CNd3q8DUv; zya-N0UO*-yUEqcxlL<>(Jg$lVu6bV~O)Nz%LAv*;Pxf2^LCI4fi$hEWWrWWF#Xt(s z6Jxokkw%-2{t6pyH;pwQ$dqcpM^5e%L5uNNk5`R>Y)OauEzbuSE_{NBv9wx+GYQ+7|3L6AHR9KmUo6eiLL1b0l7{G?8czA+!w;K8joZ2>vydOF zZ5SBo>V(+YKY?6k+S;72KlAM=>>?NjVKp7a)Po-b`WfM>-%kNGc+O_wPXYZx>>p}A zdO3S|{T*x4OBoSi)vAV3_g<>lHT>B>L0$3nP6=1m{BQ?9rNw*q>oHVuHWDps`V>d-G_y+Wl{L))VgY664QSuy!g z1vdfisA|!8^KYomG;?+LE7(w#^tuXp3O2NUKftHHypD$r>dtjq;ee`~j&@o#OAlz` z`3xJ*cPXvaob-SmZd+AVySR#|qv-)pK1}hWPjNT0B-@~N+z6P+(>BReN45Sn;7Q57 z?ahGd8M&KPEusq6$DrzsfINROug z{tS3C<={>IPE9EEP zo#_}>i`y45s@MI1>VCm7YVQ4jih*4?{c_4rfj^G!Ed7k(C}~XyGe}g*oU@GJ>8jcT z%3~>Cs4a!yZmMLs5c~ZUpQd-+lWqNh_2kA0KuQ&=in*{0SEnRxLshLX+JZSoCbve- zDDWs}8CW?jV3S0=r93_7N5UPI({RrE#i@1KaI#D#6m=Dm22m-M(Ko7Kf70z% zL-PY?RZKotz5ugBzE?dY#;S|1xvr8~f1Prh`a{fgL%pl2IMFVvfzoVND)qdRjC5J% zsBL1POMO^dRkbY-iS3t#1lAt#M7gGUzsO9S(X|b7QxGdJyX7A4Z{1`%n~ZekkkILL z0;@V9_KQSXw`fo?rS*vgnVIfYm8nujML$rn(ok2`I02oHc4>8Xi2c@*RSA6>1|^?e zm+9-F`u;Z+l>%pE{kU=Pw~=NOJuZb^=7$<3#C~x~li}@4tmzc_f}c^*+(ojn&N5#^ z%=e$Lf`tD#cg5IuzaB=_YFG=y_i8ZHx~TnvmFqV;c9^#!^)d$4m^~~Vf$?fZPFHn3 z@y&@s`yWSYYb8zix9w{VrT<`)b(rdfKo9kd#y3qK z8oQ6?XiYRdIqVsuJJy;pk4yopAw%pp&)lE#;Jul9lWt{J{h*qdm$Cb)S_l-i-(XW^ z%DO{~Rz;~yJJ%3(CNB%C)mK(GS&L-W)lo0yR>UW2X+B&(CjN1pq{(kBt`Dcs^TZq& z>XZDgr;NrbyPQ>Yy{(8&1sEfG1=MGqWomf{W|h^U0;~{PvsP?opYWv5P- zwFjj+R-(BAVH?uVcu5^8PFZKGKNvtE_6vxP8^NEo*?8qHrK}cKL#~isS5->5DmmX8 z!z-iAeV6f;8d1WvGTeU2QQ7Z1g*{d0h4GmcvtN%iGoeK63qkWnWX3d6(Iv^ves5Bk z_to&0>)ZFy23&6SQWG)Yf&PVJXTOJO$49kpm%90LM5d!z>NE!7_6wVG^vwU6=i{q4 zGS_+gl}+Jy3k>O9U8aJ42Jot4p{^d`ohDcV%YGG8fyp)9%S&e);Ad1TS-B)daoBHl zs(j$hV*M(m)bQi03EM(lg*{0m^)M#Ks}Dn6(OegYmZHp~Rir>W^=v8HwVRq+idH_N z(o4Bc8%@=rC(O7DPmmy1RVeMM? zeIHe~PCWeP+?SY#+b?gbTy%2xd9w~S%QUcGdvqjaam$s}Zi^V$FYIcwd&wI`K5ie6fnHAPs&C3r znFXp~S)i$ES=QBrFN36(rTOBfS-+B(IY5hq*zb6namLj!SJ!^?@T9lsx0O+j)-e~b ze>x#&e?_$|#~id4GPSdut990O%Sx}>l{aZ~Sv4n~y(Wd*FL!$VV8bwP$>D7&fu5)K z>z|fS_`FoJ3I4e=V+O0J3N(ZL;;B-3{ZlVZesN-^!910K!6WP4CUrnk{ry^OT`2hR zMUR{nIbm&A7c1fbSxdcC-j&B=5AnaG(CZ)Po+^(!L2Xu>D^Vi-;;fYKW=`+3 zpy60qs`OH*x6W3Y=JUi6i?(fn_iKnd@G~uTvg1V6KeE z&f0v-^}#mLYN`{G_%S12d%vU}WZL~#&7v23b)~W^58uxDqcVf>J5?pj6>9WRF=3n$ z?N@MlqWbLr=E1t{6jg31a()@BmWDCU?00s>kL$kb(B)jqF{m2mm6g$ct5;i3P%gg- z?LEZEhzaK=s=7u}O6aP>(wTV==L!2BPLa9Rb#n6~`x|fmXn$QlZb)%?&7xCY4JFMJ zO)!v~DvuiG&M@Q#Q59Oteoy7yvi)x+jBV;L%Wq!b?NRAfTuq!Yig#aG3wMl)sp^U} zda4;!S%n_D6Y=PMB_chpNhRzy&Ud}E^5CaZGD?!XBW->V6WNe=H0uXMe2Guw|z9~ zM$Ty6bQM~Ma#^+U3tX(G*K`&7%U#dRR`^gghp5H{ij=Sy10)oiN109*b%1hi|KomR<9d>GtjI|9&Kq|!G~^r+U?H0 z&wpy&$JbMrrHhKKN2{9SEaQ%y-Bf}0-MIqGR7!oO&p$T6Lu10eAFJ#7*lhl0kp7=? z{fFDek52xFI$GbaeSC4v9{Rg`%70hPN19u=%0nGzXZkmHX>}|A7ml)w0Q2tmW1Bgn zp!O~Hzgfy2pY8w9un*Vqf4VRK-wZ5WlE=*iyFnkGV7fK_ah`GN{?E(G6?Le^Usk*S zFzf!&@Bg(?Gx}RMu3lIE!-pRKhyH$a&OF?;|I>P-`|F`L{O7jISoO72 z-dZ-))z}t$YdFemQf;4OTUC9N8t|N}RYChp(?jQ-&NX35E0x<=L|TtBehbK}zIx8J z#;^VBYD!mEb-!+}tGBw6vj6KUXLnA;Nol`ybrmx*^bb_I?%WqGw?%a&I>dgj>eb|m zzV?L|{9zV>iy)p$QM1G_dTZLd-MJDD`DmMU^^(NOD zswZ~<2B-%;U6qU<(kjLB0x-VczO)xx*X_JyK|a=6_3Ww*^G|f?P3r1Ym3;QALw#uS zpL)3#@lsYbt+(q6i4yy8t@7AJ=Cz8M=&B#jKW~b2E#Qmz&HB0)8vE5ZedV6-9#yCx ztvyw>?8gw8t>XGoyaW}}A8o7(@9(M+ZoiMTYm=cH{UUySgYtO8YRMIe{pQkV&(*v- z==&ITW)X_n%zJ9e2s;Yxsg=*UGRCV6}zCfM+Q`=Djxk{j|?6YVjA#|+$CfUmQcUM3B)2-Jq(1m?Z zO~k&`?xeWV5U_LjJz;rtcb7odj@F zKn)zmus6f`)Z$^T5?L~#>NQkg0{5k7sd@>FmMZo_F0`#rT2X6-mxB4?3OW>PModAdiX zV!)3zY!o~DJ-3H*{QAw^kOTJJM6&o$eJKXldAEYxber7uXwQkQ0)NP7)QyrW_3)~9 zRNh3_5$7ttKoP9kd=`+OUvs#b=nCcKx2jN*tD^f&V&opOYCSKYfa;m#D&YK;7aHWY zu8MzEsY$NF&TKp+S0!Ts2~;POTsw_fX_H2{J~aI5zppxta#hURg(vEQ@l!xdCBG;6%Pi}efiN(Uj6dzas7P9 zuZ*)=aAk{^Ul{93dtt2mxjH!#;|C8L6jwRE_s}7UX{UF(`wj}tN>!;`C97K5eD+HP zd)=Yxr&6AvwD2c9AD8ibrC$l)R?Ay>N~?(Gp7MchThbUD^;@M4XzmF!0*AG-h;^-0 YzUEjRZsDmNcwLj_qtgOgdIF692L?fL+W-In delta 33742 zcmeI5cX(CB_V@Qb`)J}siLZQW*B>F1i;R&n^Y7PeIoUazHX6^1{L906YlF9|Q-%C@kQJ{7qX z{50uAe+Rr0JgK#9m51Nm#I{PnKW=7QW#OxckA%;Kmxf2SwXImoN=r`xkOB;Z7lXHk zN5QMYC7~aVVtTFiwskxF4Gc;_FTte%pET9-n~Az0Z98f?9xes13YUsR8UAP|+X_P- zpFC`;Wwo@d6aXn{xKZ%HrAF5}XvMHDwiS+i!N`M0j2o3aBq?Rs#Gwxi9h*AwNbpi@ zj9oEU^!8H4u6EODQ%4LPEB1fr7QE~BN@;IXMk&L@abw30O|h&!$Wn%sdo*69hc4^m zaB)r)T(V4u7lQlXQp92Ci+tUrI|(m`{3cv{@d|dO=#$7idFT-9fnmv`hgxK{r>8a; z9z1*dooS7cB%6ADwAmQAw5<;=_{HAZ+^D3~p;PEDrC+d|HvbA-vX3Ku5%`h5wp9k6 z1(znAHaR(U@CeI#x1Vmh7yH{zU#K@gH|=!f+S2A5P>?oNaB0g$7!d!ggi8UYCfQa6 z_;|Q*RO?326Nys@M`0AjRy}NH)(9DWvw&?D?ULt z?0&d-aC7j|9i`HiBgt4QGg0@m`9_`$7k}T8s{I%Nm)vilCw?77y!i8pN!r@OaOtOI zAJFX*Bv+~aIpm`7-jlU{Yq;1s3{HPcOP@1E7a$cb8Kw*!JR&J2b>h=gwc$zAbi$9} z(vyZ6-qY~R=~}Oyk)z>Ky@p1vZsZ|#YYrYadR$78962?4Ofa-k8GCRrwo<9y71DHr zwtGl(5)4h6IMjO76l99w{nK>=r>(P`kvAG#YT9z9_RJ=@bcn$dC#FsvKh#PHE~->2 zZ94vt{@Ql7wmv>3dE%In6RjY!6u1Awy4704r9Zj@p&qjMuPj{rd+-tMhDyki&h`5r z+sSPQ(_UfeZa+;A)~;MCtp?djp@$_+8ciRuhK)-ZlSCi^T)aG#;z~33giAJ;ifjE# z^K~cs94@W(7F??J)Z;qcw{XE9f=e?mU7(9U8d)&e_z6-JM6@+4F2cg=%uA!T&{uR zaPiBFEA%|L&=lxFxD0$$GT&Wkq%%GNmx*~lTnui6OO2m2@e>X21D67|flCE; zuGKv-11|Qvyg+-2fdmw!tDXiBUKzP)uywWSEyk?Z&f5-`EVd`=ra!nr_Z7FvHzP}z zIJ8mg?Sjj_b=}6`%hf8?DY#ktJ{c}uY!6)2qqgWC6b6^JxwT2-Uu_A7RgWt=W2;tA z9W$PRW?6Qyef741R8Z+oqk?c>+9&ajC!hfYaNVKN%? zfUF6|r6f6)nxO5>G$WEmj{>vNXfkaWx0agxuB0 zEex-(d0M(nKnzrai{bwm12IM}XyUIL{4=;z=a}I`#-%zr^q^qUz?BZ@f;T~yezOl* zS|@d4&9UQ#47Elc)Lq*5xCttkMxPl#jeJDDJJQvupLrs@2P`;`N+us`~V^n*>TXv#nYrw}Y9(Jt)yzv5ll8 z6qrt^8ycQq=A48Ogf1$2pWVpc*0u(^2?Ng{b#Npp=2u89+&FKgcDB{SF*=QqHu^px zof>`b-7ND5sTE0fqYy%^9NlY#IynVs)qy-6Yq3;%3sO_00_sd7J3i2dg}X$CsLYvm zf*+|lk~f(2g(HZwLW4;I;{!E2*;Z?$BEd|oEJSLAWCvq2;sb|~q#3BS-V`>Eeq6A?{}~RJ`iaV2MI3h>kqsKBGy8JvF|7NyXeY$g0XKVc)HlZsNszR zivbhRC=iTIiT9oqDR`=HVxV|eZJnGcRZpaBt-zDn5L6>RBZlgPvtl*g? z@qzhB4V;`a=f`{ZA=L=>8=4sKba%TA`2{*5i55PqhLf`6q_+Ez?s6=|4vM$EDr2PG zG|=E~+lm9UgVLNsjN}bw4vr5zg(PmJekt+xCn{qU398+rJrEFodef0w1y>A6^e3>1 zkuIw2n2=hIubuLVhbH&hRzoDbG%Vgf8A;kfO_*Cir#)!mLxN{U z#`~@N+?M&pqvKnF^dkkuro}Unx@svYK5!99T21G4FT0s|q=LcBx$%L=k?QEUVex@? zk)%xI@Mg*qO~v zl=z@P@XT`w{yy&b5{E2Bx?9XU?m34fib%T>{P#0@+$ejg>Yak)4+Bc``K9aHq3Q&n zzgb^~F<^EN^?wV}*FoHNXxWcZ=~&DBAiznMLzeB$>K&cEyI|cH9sosjnw^W@&;SL1sLySZ%0n^>HMrk8hZ%tBNg7 zcCO@j{~%Jf!voR7b4wGEq+fV~Ny!N+W2)WMF0D?$yq(zY#RpG~O!UttB-27p2ey)J zt360Tr@OaDlG)0U{PU3{x9mm>Y#nJ^sUXhe;IBAJ*FxEDcYhK@mqC1b35g|z)(#9F zty@h`Ebk&sapU|g$G8KBDNP2YKWwb&<*sf2Xb@-cxrp~2kXBB;3Xju1%Pxt3EQl_< zTederhB-M(Q?+I%D@~<`$r>cx+a&Hdl6cAI_@w*M!p^n|pv*V;o)|sTc9pjIlj3CAJI=%G^B&nD)C;IC>pu2p|L;}!^ zXzD#U-uo+3hv16AiT<&ZwMD0vYT+JkI3T($-1dr?Vp~H#q-)6vW-f~lj75?=83Srhy!SPv7QyHNiGgc`q#2!iQlK|S2GVgT6lu02$vubV z2=4d=$;nD3y+D;`xpA?>;{zj+dku}AgI zLrcAoj7x}HjwG7SP1O4-Qjg%NA&G$+b94`-_p#h~5UCeh%#GvX10NxYORzUP-maoD z7BN>2R40TzqavT8XC9lYYmW*;Dr}yf7Q=#>ENeR=)lsL~v*IKqgWU>>$F?HLJx;IS zt|FNMOGlkGUl%$M%$%9vN02*Y@n9_dB;hez&VOaj#kJFsWSls&Lf{aRE_W==mHD`v z0p$+dKoU(l0}a$}fv&HK!)Tl zk6m8%&Y(qRKc#O}{@|IP;{&IVWH{-eRx)T?^^poYQ_Wf=DJZLDoOTXLMg#ZVxe5NK zb*UL?_+=QH?jMu$Y-f_=2G2Q z^r`Lf-rF-+LpXbphX{2Dp1Rz~|BPE4nR7-VNuQwIk#^*fe9PRuS>~ApKSEm+nLCEZ z+iO+tRb=K}uIEa+^Mv?7DFL1%m0v-);n ztE7L~2_Z=BWQcoTBGe|>Z%iXU0X^2qJkWQgZUrZ?_hlr^4^IpfTBVx!jE&~y|a)s{v{#ZRg*H~ z169_T8CAvB!#2|0PU<%Zndt+qGSBG(<2wf4cqBcUNM+tc(hVTnlw!~4s;IXwlJ?=t zPDr-Z{-y2E_ltCyPXNV#OhWXdvg!n&^xaLwo!*$sGj=1D0cfYG6B76S zi|z!)lEp5rdT$0y-K5LHyf};-8d81Pl6os`cD%smbP6HeT$!v;-a%^S%=Q(xWLFyJ zC8@}lF!vmwGlEs7hnikAB3sT(Zgwx}hN5ms@qvesa)$mcBz^bEOm`H;!8nM8K;5l+ z-th;M9$}Y;B*k%V+@24%sy;8X9}auj3`vzV&Q4G#UZyMyz~oMA1(Sxx2mXbm@6cp! z7f>0mpwi?OT?V$%be#v0qzrmZupLRJ5-t6PBvX(+MriP=mbkYqjQ5W>QqFw70YtAS zWbN_=lHACB!A!<@#5TRFW;sCG!AQ<*+&$E*x38~&NWOF?Hp5qu^i;}nEfD{jF0Y<~ zCn429Q%jjha%1%Bne}r-DFQRXGF+dPJ!S2Q4|GA2F2}ua*RLeV<6V`Qbpaj@YA*5!ipw+C7o<>61)OOOeE#6bo0MM$&!i%)$i!UR`54 z5hqMZNOJm+FsTs)}CyhVJIxAkaa2D+Z$N01)Js)F8hI9rkp zUDzR=sjbc|qBFG5BYNi|wo<2Fz#oKkJH)PwxBV*eZSEkg-eJ5u>$g-wdN4^dtwxgZ zO74T=J@37v${ezrc<+0cMV5*_M2%h{*wzUKZV;5lqu;QLZFD$$<|O5z!>Z3a_CtZL zN6d&1#-5E2%tn%%qNQRB+VQq0tM|M1J>}Eb{92Ft`Db_m_&nrd@MUlxd^J1-zSigo z7rpfc-(+y%qPG=p!(WDr-Zr=go@M0Mjl9dxCrMr+_5*~%51NQWMm`D`10TSpASX=x zNjN9@)>kI}Tew`pC8M)&DZn}SZ4!a96f8s%87_LEfixWvMua3NXcYdAOTuuYmzzr& zN*Y|a*t^Z}QgBHZ373kLhs#wy%?-e%rWN3l@D9T(n)v^QOGcGRC%h_LGOPs``*jUo zA1?U}Z9qUS;R3`Po?!6&xVW+r@nX0oTrz5Hcw4yGX$P0f;p$YBCninQyBRn)m*jVw z^*h(LZkFf5Ro+mvGTL2bXjg;NrQTrDg(Lhl_#V;c^L= zjO;LthZdkVV^6KB^Jf#DY{X?RyYF@HSMT+uFlPC{YjW5|TX`(%cXlafGa4FoA zM*Z)&RB8!&Qs@k$FI?=bG;)4i>}Q&Ics0a4faATjMnSk#`UR2I%@|MRG)cd~L<^Vb zjYiJRMQ; zt#G+=b4j-iTv}+miO-Kqi|im?`0H?~=K;gtFJuP62LMvwkKl6U=7N6$E(VSpy%R<+ zKQ1ly9r04I?@hWNjJ|NObKc133#q$*v5TozcX%S4>EIF(lJJUA$jv3;&&I$na2Z9n zj9z|R3U1RpVlM<_UKTD1VvJnb#8-vOC0ycb zz@>?5!NpE(gV%%0^=D50(l$*^f@VfBHy5b0iSJ_Kg-hSO4=y$AWpLqw4>WRaE(J;g zm%%X+E^=xoqnK)dNk$efh9?_*is4fYpJw78H1Z6QRpUymyu|LKCVH-ko@e-cgFkNM z1x9`nE|+jw5Un!tnI?XXiT_`4-J-b_r9jUa1Nm`jxfe`E>y2J+E-ktVT0IK;J*Se<_bV#wL^gI0!04|&{QS=3^3wnfFlAlSCPK}l>P-^ z#xDRZ)gb}i7NF);fYxg2Re&j10Zs|fR#m+QP~{rHf@=Wn)d>MU6`=8TfR1Y3b%43o z0nQ81Sv9-?kZ=QF#SMV2>Z}0Y3DEghfbJ^eSAeCz0^Ahf9@YLgfOfwDZ2Ar0UUgl7 zYXbDU3D8rmzX`DJCP4V_0KHZ3-vN644zOE*`&Hl;fd3Z2m|Fn-)D8i*11ydX>1YpF zoE*|~@raP{#Yd2Mj=>JW7j_7~umJ|ELjt@lKur(8P&L&9FvSCKN`T?2Y5{;M1ppQl z07zCR1o%{d#vuTs)VvUYxgh}O1sJ0mdI1u=04uxzjGR8pkHwSrPdb*SXUe%yaYgo>Rke$R|$aK z0xVO3k^uga0Aor5tWY}y*e*cyZ2&7(@@)VkZUZHD=Yt$hD-WH%{ zX@KX|)Y1S`N&}n{;00AR5}-;Xz=BAC_3DHGp9;{p48TS;uMEK4G63fV*rXap0VG5L ztcU{GqRtBNT~tV6)un7m2Yai^C=0N(EE+euu_~0M`WQR}LUc ztuF_#u3ShVRVXH;lf6UrjsfTugU0R{GN_vQ@9oP2ND*p6<&ZmXbH8FYcyw}{d>zv{m)WQ`&kLDvm(6N8Kjam^-D1x9 zr$VyMKjl@W)quj@r^6O*lrvb%dV7z$=S6Rm=-+SYOR&M5{K$+dr?GMkR$E{67H>Sn zz_K!t6K1)F8cfcL4;zecj#@np z_J}$oCgu<&&W(Y}n5g++{8{B8F)iUI_$Lhz3zdW9%22hpVB#5~r1MmO-Z8De%wTtb z9X8lfZ@P2`Jn}C zzX4x1iac86d@2F6UNKl*!fzP8R}IF~QPw5XWw#lOC!MUHz~qyd*9^v^MAolHFUw$j zmCCy4mtt~l2Nb9AAdmI5q~vmr>`jKkEl-=yZQDDIO2lSm#VL zy<<%9l&n=rJi+y@N)i)?O;l5$@zRsHju@;N;V8m#y=SoIgv%K0sM;zfK17t1EukMF zxjr%Ktq6xo@8UXcu-1gV2K!XmFJs~aQBv==P*)Rm66_=7c2GBiZJ}pKusy_d>s&9X z?qXuAiRuWLs$;B|4b};{x>0|{V4cBUqS!JnUsai6;x(eA6kQ=jl#I9SU{bkm&{Bi# zG$!~ip_L(#T)WgIF|pf3$w&`S0U2w1jM*N9e@0!#>OO-cZe7!Nl9fgpBlN zPbXYAC6YrU*`+>xL67{|@(U-8ePq1SK>ql7pA=n4% zjF|Y)L=6D?&2*!W3^ow#q`^KmSQ6M7gMFfEzlw?DCTcKI$4u0x1{(qqzLZ!M-wjGC9k~ zjBr^#qYqR%Z!8Shx3o?oY5OkINo62gVD^^ z1SkParl1QZZ3^ML40h4zO$1vOp2mN!%f_H|>sQHGt}6zcL^vuyM)02v_5k67W~TVX zV3Wb*DGIr+f{Ej%K-~@YtI?YZR?=Xo6O4dyd?Gr_8XwSfE8RxuGUQL_cYRx5az!5$_Y z3)UK5&|r@cZUEK>UP#$lmY#knlRv$qaP6!4?r- zZ?FpLl9;%|LlrKH6Z12(Jcv3O+`47Zc-5)Vn~R z5+#Flyul6={t!$C=>&rvA^bj=4AK;piHWp{Ch91VJS`$4EENnb>wV})M$szxWTSVC zundGX@F@oSfUula%E*}tCe8C9#N*q}HQm_z2(yJa;i^RkuL`era2|Y{H>+pF-{ojP=fJqOU zZ?IE@#o7OY9#dz;#N#IFG>{B`Y1Rc`q_n<(#I&^ClSc0h;WfBT+G(Mxy$2JEOw@mX zWV#k7KV`752+MRWSkPc!6Xwx$$9YeynPOtGiTakPqb6#J!M-!<;wNRWvxIq8-4bl6 zIwmGEh$18FdnlFCOJ`ed)PEqHZm<;wI}axA6hA$yV)tTVrHT3xNTxIK$tq*^B4P2x zm(UuccZsm{-~Yg$Qxh=J^?4I@8R*{>@Em-t!LAUN8RP==g28?!EHjA2tuxp)St4^S zKjBpyKl4^p3t#kxWc{|+`>I`k8y)a9C<~G!fY+g&kZk>TL$cl92knR6gbqM&Wu4vc zP4uM625~1On?l*}?So{GCr_Hm9_~$uFEcogZOYSZ8=)7WP0$vo6aI z(C^SKNFG_;9A>GW2fVRE7a}Zzo`Qmq>^%oU{hYH7)YL_JdL;IOCiglXQ7plJgr(8stMf*C4kAZ z?Ck<{r#JA{o2vag-pXke2v&qDL2nU%5NZrHg_=XPp>@Q`(p^EbpogKE&^Tx`G!YsP zO@PKgDbNUL7&I12hDJiep;3@5`MW`Phw(0OG!_~M4TB~?@@(L6Xf!k!8V`+thCs>CNGJvBFO5BbKo4jS z!(46*vXqdegFGR5J5&)W2YpH*N>Xrn5RC7eS$r|h;)`<@Ung@GJLSP|hc?iV^35N4 z%vc_>{tP+|eF4eS-AmAsHQZ!qN?;T>P6E>)d4zlov>aLiJqs;^gGzm(F zCPUMp8PF6c9x4yXg6>!BB|(FsZ=qArX_a);`)is!EBhgoL}!)fS)FHGsh>Q6DNlLU zfht2)plEIelYRyD5?!$8CmMFuS&dU=Z|~8?^r)d~T(-z8|t|_vt=2z0co`qu2 zv#qQPzk2U0nsx=DF$zPCLL(Dy0vFs(Hz%&J|5lxBjZHI4J6D?CyO>oBl;bo zwdi$%cY!)X-Jx#KdGv(tCOi}x0T5K3u+GD7d}8ODjXV!s9uLXN zF$Fodoe9WN9M_g?u!^B~5|U;0GDh>AMMA?{PeSPmt&j>g5mr5v9?B(8CoI#eZ0sH& zEV@&m$ap@#{JFBnVK zA6@)c?tO$bNfb4Pbnj80sEE+;v^jt>?ahTtSAQHX3Q~Z9D9g4-oc0*_9F0^!%`*ZLS*S98H;)d31P*gBx-b+~3gcKc&slpT0VmXky6q zLA5|^yFa@7@tlv2jBiopl*t^|Jg@enVDD5XVP)N42X5;dQ*F>)F~^J{X3z^wRK)qv z(){j3)$^gl?I^YAd}v+!PIW+}1Xc3_xwt=d+-zN3?PZr%)gpC#T>W}+b*!E$2?d@! znJ#R)T6`h2ZhiL`xlfN_;4BctHx+yuiKNdf< z_<_15UZ_4F1$vwGw>_%%kD;CUDU`Gy$%&tJ6e&V|`(tQzZ@XrEtz8{E9$GTs1nJRl zsMvQF4V;8Z=kxm_?xvF*t*eZ2K zRPI)_d%||8OJeM_I^E6}={eV2-Dv0Q@44Ar4g4jvbcLJTPvXeZefz+h%W56CHp^ep zBi*lVT)doURQM^hZq)NF^pCa1@AhTwEZg-U3bj#S3~W;qehO_J*oOj5l3q{k{V8;S zy-&qlrjibewacp~FXz%(s7_rDoyk){&Aa#_)#KMgYe<2*Tnnuea0}#AzV)AAr&0sl z;^) z_UfbGLzmkX)r4E2k)9vAsmE`H*702JruN+mtrpgdTPC;Zbd8r@T*z0<4qF`KiwuO_ zV_W5k8Me4Ny*6d>{ruPAHy1zYi>!Z=cs?^t-*amG=IE?dH>6U!NbWlvj$i8gdV%$O z*AqjPq*6ZBG!!#YYDFnn6;;%RrK_0*a=^#cfIovqMQ5L`&WMI1M7b|)nEP7Ub;H|z z)`q-{?;EQ-J-)iex_Z##TkhtxM@3i9$(QGg{H|2j{z}~{%Sd>yfUlnCVsEvoCiV*7ipzRDhbO{<3u{5R+fXA z+8KAam2{kZHx8hXPK%PKOw;lB5lE_ECRbM<0f+!uxH7+I}I zx;5)ej-qKkomJVt?n&PdRfWT;Y#vYi*#%PDKl(aPrT#L~abCWiDPOP%dmfr1_jF+I zRWrb%+?SZVI(Yc0&~mAhsH~Y4zEWFJ@LU|B4j1v&F%w#rIvvNLe3_oXP?OO)MIs?569ISTG;Q(n63j=g2x|8!VR z%t#eol%l%tSy_GHT7_p)THKkVV0vafC4Tu!r#YSLf6&R*E2I9peNETSZYw8Mp4sk? zh0p`b3oAJm=O+#fKRyW>LT zMs4MdF=N2#EK5rH>P5M4v1wdm@_{uscjn5*_`^|El_rE1S3gb&^||*zbGtJ)i{k40 zQcNI^s@NL7GWxdY+-&VZYD{T7;lAa@x9murHFL&Hr7{Wn&N^RZqF^sqJ4<6=vue)t zWNxtPttk5SepNJz7=ETX(#b*JoSaHKS*Rr*v~;UQm6@o2=s&W^;{Jt3&X-PUoR*Je zU3SlniA$<6q9W8O$@&hpmHVihYfgot)U+sH=_vO#FfV@C&Hqu~bKS|Hp{_`T+9c(C zLY;|n)4O*_6<3xb=FYA(KMy!V^2wX4@up$=mR{Dp!6*GlfwiMr*MDg~S(;vS?g3RV znxgBrQ0dW5E;&umS{;qX`R*%$zP|Zw&&zkb5rKjFy3Bc3FnM!NRin7aN4c*Jy4bhi zh4W|a138J!B0#758^<^e7-_1n%EwSh-78d&7+*bGFKX247+)8DNbyn()0X=Npyz(f z`g;0P6Sk9Qt+;w|Z0jCXP0Qo8r&aIrzUrRUQ`Hw0nAlgVmF0bFqTDwQRrYIckX{O`cmbb zqzBam$wKE;)_sH0-CzHbx#IZVdQR<}W%!MWYF{N^>H6+Vm#VKH{Pi!B)~w0Va9^L* zb;q->mif3xGBKvF-=V@QQ=4?vTv!b?sj{!Nx8r<%mrie;ogkjp{aN~HNp&mC=e6Hb zMXOM_&sB9{&O{Z-a@)BbUz)F`Rbd30CFxsLd?T{g&(0L3)zyPl>D@V#Nu-%{qTIJB zZQj=+F1~z9H;QYzY*W>_8a{JhzqG8=+Zz{bN}7^W)6r@s3id;4nXo+bNR<1QsKBZR z#@<>!OZum23NsDrK^Nt|Mat`&uyAMN4M`rm7MnQ68K3`mm#v1G63kv8&#grLP@R$d z2R*0GdR9?mYcRU=B#ClgJ~i*V@?~1}z49UDGP}V9b*TpVnI*B==qyo9S;uoyu|Sy9 za>adm=F(VxUCPXjddbPA=cH@}+_zkHnLhVX@0z_Ma@<%+72&2^-+k>>&DO0FN}ssz znH+_`PWp$s>-|!m3cHiumD8ccyu+X3bu((f$tWUVPG79uK~2At zUfDx!xs$>S44N1G?CYPz$~jHQl%{^|4)gPbXH_GJxJ zc5RZaQc<;it?hV~BvQPZUfY*ww^3QOnQC&MWBlO7@|Y`+Bd)M|!o4_V)kCafdUNe6E_;qr7=f$js4>K18ZEb+BzErmw(Dv>N$WHhc zeA{!*f^|*{*NJP$$KpIsT8s(m&oSD~o=fJO@3@*7?=*}Y;(0DESLHiV{O8qCL7l_A zKReO1lySh{E4`=|$vI+P*O^SsabjLa<~8@H)2_UROwzwNrZeTtw+QBZGvA(Mn$#R+ zI*k>{p>Mt&Dt~vHn&mkm&310y8fG`GDQ&(LG(~Bqjy1uVPUp&Q7S~1D{n&kLTvWt8 z*B*X(&0LQygOJs|^>+@*(-GWbTvPXa^UW@JKK=FoOGCgZ$3?d_Jr@nN1*;%v|5+vNG#%G-A$Ii%00BZRq!+3wiRr(ym+ z>;J;xd8_)rIsE@)*7*)gQ+ZR6{DzV1*1V(BIOJ~!DaU31<6QKfioToPp*@$^>)8YD z|Dq!KeT?$QE}X}s*;yOUnkgy&UYlK@|H}sd+miebH-Wt4z%*DMFaEuO>>E+uG`XkX zzjS=QdFOFso+;qJ7=!s5`ELfD+e`mu@c-A16`^k4m)$q@=WT!KniJ|sPjvqmJzf{% zuNo;sd3*ahN4f9!%-r+h`^`@eeJaA<%v%?DN+`XH8q=GV-=7tF^L_To|_9nY0b zOZs!dQ44Uc?J=R;BaYD<=XpwDCTLj(nr@LH;xIg0b#CP{qeGebp>CVVA{oujQ<4)RsE zXJ(BX`6RcZ*%{rENY-Von+b`zB~l=f<` zz8~sDdWZSWdenAxahUHJyMcOaIIlywS5+QCi86Pnz9VovAGeM`x2jq{!nci2jt3+o z6;)G{vC~9tLW*+V-g)n*4bF~!Yh6D|(IAe^HjmDzGs!gmSRP-KkLaq-{?MNM!J|c; zVzR;HaUC^dr0;B=S})TTK5Bc_`O#$3R>h9-9WCp=%QWiodcQ|+?;M4VI{I_QV|!Gg zvA$tt-It1P|LV18p1l3ePaF-$8K3P{PmJ}IF6+LYv~fZ8VYL#6ccWo8+2{AFm&W@_ zdf7i+-K+kMa+LdS)BD@c7<9hVqE~Xv6;wsW;e?VZDuvp+?>g<$IXUEskVkr=N2XHy zYN{W4QRZ!_>2)W(I(O^N`%5^69EBEYkr?W#Hj1A6*3}yiTv*ulxfwNbGE7#dMQ^IA zJs~?^k14WhIi9XKRV9sQv=}UgYPj!qeYtR9PvX>9(VCph2(Ba(HXXew)gihzlyIov7}&VpqyK_<-+2+jIPgT0X^Bt=J`=lPgM!Pbc$aE7z21>eDH{W<0XQ_YX=> z_0_W3skNWxi-9G>k`D4^WgeDIKY8!;=X!1|ANc{YjH;QX?k#+)M7_^HM~*-~&~U&# zO&_@HcpV-o7C%otvgNl~Q@*X=2w5_mKIW5FUktBP(0v*4_6rr?4qoyncUEV~CM}%i zk!%*f7X8v~b6%=g8d(k=dkpK*H|*h8--tzyMowFH*YWS(=)AUx(Vx2GwJO~YU;MN^ zauMRYwCMR>${P)z>}BE;0u5KM-q<>Bu!(=^)a2sLTSXm8K`xB`=-U_G_R#)OiL28A zWP7XT?0f$0t+n5K3i&qV4If;1cGG}r`_>_sL_U1>^c&NM2j5vYO*`;LyE$)6_hr2? z-G6_htoZHzUZb-;