From 9ff36ea76c9a1bd63b40726ae73bab144d37784d Mon Sep 17 00:00:00 2001 From: Devis Lucato Date: Mon, 24 Jul 2023 20:19:38 -0700 Subject: [PATCH] Simplify hosted handlers setup Fix queue task scheduler Increase queue retry attempts from 10 to 20 Fix queue names Rename curl script Code docs --- NOTES.md | 2 +- SemanticMemory.sln | 3 +- clients/curl/README.md | 13 ++++ clients/curl/test.pdf | Bin 0 -> 237164 bytes .../{upload-one-file.sh => upload-file.sh} | 6 +- .../MemoryPipelineClient.cs | 7 ++- .../Example3_CustomInProcessPipeline.cs | 2 +- clients/samples/FileImportExamples/Program.cs | 2 - .../AppBuilder.cs | 3 +- .../{ => AppBuilders}/DependencyInjection.cs | 10 ++- .../AppBuilders/HandlerAsAHostedService.cs | 48 +++++++++++++++ .../HostedHandlersBuilder.cs | 22 +++---- .../Handlers/GenerateEmbeddingsHandler.cs | 23 ++++++- .../Core/Handlers/TextExtractionHandler.cs | 12 ++++ .../Core/Handlers/TextPartitioningHandler.cs | 9 +++ lib/dotnet/Core/Pipeline/Queue/AzureQueue.cs | 15 +++-- .../GenerateEmbeddings.cs | 58 ------------------ server/pipelineservice-dotnet/Program.cs | 14 ++--- .../pipelineservice-dotnet/TextExtraction.cs | 46 -------------- .../TextPartitioning.cs | 46 -------------- .../samples/CustomHandlerExample/Program.cs | 4 +- server/webservice-dotnet/Program.cs | 3 +- 22 files changed, 154 insertions(+), 194 deletions(-) create mode 100644 clients/curl/README.md create mode 100644 clients/curl/test.pdf rename clients/curl/{upload-one-file.sh => upload-file.sh} (92%) rename lib/dotnet/Core/{Configuration => AppBuilders}/AppBuilder.cs (88%) rename lib/dotnet/Core/{ => AppBuilders}/DependencyInjection.cs (94%) create mode 100644 lib/dotnet/Core/AppBuilders/HandlerAsAHostedService.cs rename lib/dotnet/Core/{ => AppBuilders}/HostedHandlersBuilder.cs (61%) delete mode 100644 server/pipelineservice-dotnet/GenerateEmbeddings.cs delete mode 100644 server/pipelineservice-dotnet/TextExtraction.cs delete mode 100644 server/pipelineservice-dotnet/TextPartitioning.cs diff --git a/NOTES.md b/NOTES.md index 9e86c4413..88244d56a 100644 --- a/NOTES.md +++ b/NOTES.md @@ -69,7 +69,7 @@ as a web service. * `lib-python`: reusable libraries for python webservices and handlers. * `tools`: command line tools, e.g. scripts to start RabbitMQ locally. * `samples`: samples showing how to upload files, how to use encoder/retrieval, etc. - * `upload-one-file.sh`: Bash command line tool to upload one document to the + * `upload-file.sh`: Bash command line tool to upload one document to the memory web service. * `FileImportExamples`: C# examples showing how to upload multiple files to the memory web service, using different approaches: diff --git a/SemanticMemory.sln b/SemanticMemory.sln index f5662831d..f24fabbe7 100644 --- a/SemanticMemory.sln +++ b/SemanticMemory.sln @@ -18,7 +18,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "clients", "clients", "{B0F7 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "curl", "curl", "{7761EC04-9E17-44EE-A6D8-9FB97F14AF61}" ProjectSection(SolutionItems) = preProject - clients\curl\upload-one-file.sh = clients\curl\upload-one-file.sh + clients\curl\README.md = clients\curl\README.md + clients\curl\upload-file.sh = clients\curl\upload-file.sh EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{6335B02C-9964-4B39-9795-C5F5F0392515}" diff --git a/clients/curl/README.md b/clients/curl/README.md new file mode 100644 index 000000000..22d164462 --- /dev/null +++ b/clients/curl/README.md @@ -0,0 +1,13 @@ +Simple client for command line uploads to Semantic Memory. + +Instructions: + +```bash +./upload-file.sh -h +``` + +Example: + +```bash +./upload-file.sh -f test.pdf -s http://127.0.0.1:9001/upload -u curlUser -c curlDataCollection -i curlExample01 +``` diff --git a/clients/curl/test.pdf b/clients/curl/test.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0e571f78d0019b8cf621648537ee683d4003c8d9 GIT binary patch literal 237164 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

rp(TeW$8LzzgbMW!WQYh(+qCY~J?H8A#z6FD zq!g``s{S|D){H&-lOfg`LTp;$wo-j#t3+)0?_!7^sp68-U6>M|Lgbhajagn>tK$00GmKPYQGrk{>i(GTz;ISk+9GQt0`D>%E699|gmB0g8pPJB ztYtyotd+B>UTXfk_IF(KQh~8ntAkQ&q|%d-j`;*M zBvbXvF&#uUs&iTtS3PydZh97QAjhGeF;JWqT7)sa=YCSx0YUP zOe7wcNGf?nVit>Fj-dO6QYV_rEB!>GxI|)ooDi-qr0sNV#px2@!b3^tSrFB) zh-O9rU0G+FgUL{N;$^<`Le#)CPuOxIP#5AP-AwO_r?4@sOJgqw#(p<-4 zM+WhznmKYAjAZ$ynC6E-(rYrRApvLyG6Dj5Zct*nZ5Gev$55YKWyGXme~}6#B`|>+ z`(dAsfeD*wnv2B0%*9YVi^R~~$n;AHVqvU`NUy=;Am&9x;x>rnMW+3*wG{$l;SQ0Q zL?VjNj8qHTAt~gTe#K5iN6u+r?Zc7i8=LEut4Sn618$qSw%Zun^Ar`fmR1Sfg4*+T_l~v{!0tMmgD04NGa=(>$3k$hUSdy`6HR2lT z$}QM7>(ZN{_pixwdY|;>1teuIleVnD;kM1!C&W^PW3Pxak(Aocy+pB!%wAc%mN1hU z{ThRwi*8+jNG_P&pfuAN5F2tAnSM292D`Zs53;T&-T1G6j}poB`S?VzxPoHQN76AL zQV@yRCz7Idk!Uez16yJ+7z}n`s5B+A7&6U!CllxWsfd;YwBrxb4j`HK;d2ZShiB>I z2e4*67`MFL{5iG|f#`<)M8b2X(;0MOb5vRjnNC;HwA{EDXdnv}90gF}3^tZys2X`MvMfhh#j1+1GuR~UBT<&!$lp_t5m`~YQ7i|x%tnCm3b<%W zFXV&S0{bkh5p26u$*%F?nPoVjgq!5|tVtvv;}c1`<3fJB3U4l@^52}dg^#&RhDJo{2q`MbZi*bb zMZ|twA|vJL2X-S88#aj6fk@(cB5Xaj5vhiKons7MK(@>1W&|vQkjycooDJD-ePl>) z;73G1IY=UXBHb@Ghv6a*18V_g$XF1=sBMr@uMiC3_7>4rX}4)4)sg0zZpZ{TVNtMM zRyl(H&{AM^kWelLQYAqQuBfR<(1Vz$B#<6LNj@0;G#p^f^wYK%Nlk@FzcTC*=RLA= z$mlGqVppRCF;HbWk@5=6s&yPP3*j`eQ8t5V`8k>aj%bNl1$5*N21!gV>*5Lq z>GMyq6l+924s*a%BeS6v1H)0qoNbUx3Y{7*oPRe%;FZNuu-rvD_Heo2It9ZN)dQ$x zR5-1S(Z-oTx){$rAx3m^xJM(5SBJ(*je&XW zXpkOjzGLyGRbv>m%0N;o)C0iebX&0RID80|{IoF((>n|E%h)z)xJ2oR-8g5OmDnoL zEKe_0EF!5fob%+_zeqpiA(q!w!93a^T96{Ce-bHgfEd&|cqn59i=?wI68nL^eMF^b z;u7I+9hjW8F~WexoW!OtBW?`YDY^trlyyg(989f?jyTw%3)`0wH|B`gIU_m_Y3#2! zj&**B;{zMnn>9{fM%)-9@-tW!ke!D$lJ86`H^NUNgEb}x$^pK?xWiVJ$m?;|Y=;lf z2wAo~(2jv`42frmh+^ks zc9!<>)-7%wmhDpwis+#Bxt(2@;o6(!BEd__U1&!XY@p2fq zI?)>tl-S&}L=q*ACPvoPq^qZaD1OrlX=&^)qbGVpo0JbpofWBmO=b6s91%~({4Xd0AII-;njPD1c z)y7B|BC*Vhusbxom0`{|t-$bL62btf_sJi8@t?6LIar5&`fV%3+#iJQP5d=epfJJKNO$01Cl zr5I<%I5Y(T35oQnBRKHF8xPajm6Kto3RGb%(qP=ErXO^ z+t!@O80WJiKKoQ_;BdU=4~A(YNe8y2QeVpZ&&+s?{0 zF)?;T%8qJP)bPxgh2%Eg9B){E%5pHztvqf@VO!r*rk>mm)!BCRzaMJl4XIlhhbbhKv@o-c#$}>`t;oA1w zSX6$_YaD;bq30{I(~ze2vp)n9Cl+$mg98wB-IvEUF^Ym|!Bem~u9687q`rg%+wtG{St@KDq$Y`Fy6!MSAgK-0) zbj=2ShHCusQ&)8RxvSO%zkgNnHYQqzLkKSOs7?dqT+sx@;5Zjdn}GCQ@+>6}l@^xq zd@UFeaO%tTe&f=>*!&(=`*NhlkRZVs)8n}jX}JMMV}Xju_B#_7;2`+vn;pDLfJ3Cd zEtXAkZ~i0^_8}x6!~+D=g4&QkzT^``B7@|gbC>Lafk_r17E@j=i)`~a@d1%4D6>a6 zB-5`LBHQ{asAoI04r9H+8WmCyY7fz>Mg+H4I=RT2Bdpe=o1LhSGuGtVXtiUYv6%pB zQ$xzJ8=(?Hb0P}U#sE}2*O`L@(0U7}o+k5MTW{5bb2yaAzI!=LY@Ps4-UX&b))(EG zGaKVw0k6nns=O0Y)NyZyZcIN#MO>&<1bDJjFT~=b?A?WKkNx`M-LWdNki0rKA~jv= zO-sjojL?3~zKZ$rQlapVKrUktgTErp{YtEnAYe)mw&w#siYh#|W`x+45jK(BCGD0t zJo8oVVCbX_h*pg= z>kAmr1lei6_-E74S7q!EXkWwl;L< zY@CPYdHRWor1)h<8eTyotx^Fu7g^DY3>K9@H%vEfKY(|C#7XRZ_OY&}BBof>z>gV< zXx9W-2TR|s3JS}fj@B}#8j`N_aK()c&Tc|jX_rq`*{V@<^yyp|m@|T?fZeL;>}Det z1vw`s=|E;aK%&QO6Y5XDosmsU#a4MYX{*WP9tc9%X!P`JD`O;v3}}^o%6Kt`Me@K{ z#1&+Fdkv~|iz;Z9=C;aHK#|IN5WS6=uO|p*#eigq#b&?IRiv3n{YB2melSNvIb+`e z)EeeqMaP5af55FEx>R=a9~00;cn#;XUX6b5Z1Nj4i4B=ctm>R@mG@g}Y`w*DlUAeO zTTK>o{4;bO{@whE(s<^)e)x<4>hV7w3ebu;)19a6x5M{eD1FDvdm52Vp}_gO?e8A{ z-M)YP_to#VlV-mC?tji#+}8`izyId~Kfiw}`2KyzPq$YKhP;v7S4^~gn&N8Fk~#B* z(Fz~PcOl3aqW=4@tpfRBA&*p9*BF^LH@q^O#MT~kKM~neZ^VPk1C)&<5*mz`EVDoi z4&Q^&@^}qHbW-V-$1op07NNoMR^&{Dz82vrqS!>XqdM0WB-tI?B)c>H zl7ZDSngkZV*|UwVs5))~I&W2|jPne%t)o=n+NfbX^iy0f9s=dHSBx%;1e^|Cw}zSs z6G%(EYH-P=5u~krX)(!#WiKI=EopQE?alK-KpaOUZG`XCO z(QaXei<&#weLuvI-H0UZViz(R3o6Buaj_GSKp7E_q78Rwisc#K)XY$#ZapfK6=aj$ z(sDu%nijF2!ITwhik#wD6AM-kcyf%y(K}6a%zS4_EFPBFs5y{fK2E^k+x~l*5pkEH zA`M5HV($!#7E?8Fujn~yPD@5_okebaIg*-@SokChQEKXFk%SyvQe=$C*qa50PASzo zHA0b@5)Pt05ssOBKSOK3Oh1%^mIREM6!!U~q7oN>M4{xXCH7l9!zD@Hpl7^%pI#-- zc%rVT&ZGv#pk&ap|12WOLc+m($p5kkvSh5A2d$Qhl+&*!Y7ga{9a z%n#vAz<9jY1wwp)X1QO`WD67W64F6J3+wQRgsgy4!f~t>*peTK>72SVhk|2ERc4zfh3qkn><*NenRYr zUP2_-Sk;R6h03|t8^<=aO&5{r5thsFghZIrNSX3%fq3%58OiruHzaLBDd($Jz}m$L zq{1HU$2gy1W=85LQ?0X&)wWS>)tJ;w>UDNdrA1Tqvucg8WL)FZVu3msRsbX+N^w^v zv;wT~0tLF*R$I~15Fjh#hA`k`F%Dv-15G~V%w-l&>w)j>K;e}-T)Gq6;d<-(hiHVCq^RM&traRl&Ara zs$HN>ym&Fx`M3Z?EIG6i7Q03(TUG`>ZB|x8H&%livZahBiv%x$EHU249)?rL*d~eI z>ZhH(U{Ol68(6fHLd^74*MKBdE2KSFBu9K;AS<(>g^+bwrdUy)B;DO$=MxYwCDqm$ zYe=D?kyo$~p}h+lZFZv0q( z5UgBHBxj8Tq|(mK6-=iw5pe-Fbqs{GAcQT8QFf3>u@acW<6Gv1l`?aVX0oou<6Ttb z(KP=_qt4_5NqiMZ&S>qnP6*nU9g1mGSb|@@&pN3N-80p znr_`^R86ud#16g>(;0g(>g{f;G^!!By@X=7R$?w$bsCu;5xIH1( zQMhY=Cr$AYeUltCkUmptDYTz!M|>Nk-L--Nh&g1WO0Drjd%eHbN%q6LuEVe1)c*7* z0QHR>sbZNxWTlKW0h5N&YKvO}YwK$V>%gAvN(wTg35X!8Vwpfv%4C~~WdiF+EflNc zhC0$z3i>ob*>dM^^iaZQfD&Kd+F&EDO4S+$$zM`&HyKFxy(GIS_7FcU34~O1W)DFZ ziMm~z3TH~Zs%W2ZCJ;l|IUSmS)eRX_=dq%hH0n|zQPVVUZ3d)cGwjW%V#cayCXl}T zGjRzZT{+%XKygOL>?fQ_D@#){QU;IdUXfa0%L}StCXo0Z?xdob$eGf(W#lVucc6(|0-D(3 z0_k>j$g_Mr25;%k8G%J}47S*!aXm+8UHC^6&f!1M5uNu4x6;N zW7o=~!m5D8=JuB|E8wwHafa(`()x{pmLkK_ZxpnMY1^pZa)uUcr_0EG)*YM!SU5FE zDA`6~MoeII3AO+f#mS35u~Rsh+!fwf+Kt~)s7zRt8RT0QegUK&jzDF-rVXZDS?OyS ztf97ZmL>(=6-6uMmT{JzuB?LLEftTuXyvwpv~pvd(OZ~x9`j|%!#vS$Y?cL-9fHhN z&k9*)Y->06kwnK%xnX{m(Vt6UwBu5SPmKLtov zfVD^vmGDU{FQrR#8%$FEy2r;<9Zfnx!?7FPw#s8U=1JAjs-@x5Z9B-)Z97=&HXsNi zSa<2ReW6vS>KNT8Vr|sA&9bl<;FGDN$&$4>R=vBjk`W5fGb}jWTDgIg5{8J0uILkW z%DmD^B(8D{wXy?=_ePsy=AClG=bJj>a`7N}rDsOB$%3l}xOAJ6fm4^gm2LylH&RBo zDNouHAG@;){<2E8YW(yEPpjMADM9SfIupt4k3MrzApsWwh@2|XaA+7RmX+C-_gAiV2Z zOSMH>w2iq_ZAcz{D35gUDgz7&B`@ltM7tQ(;`%-Ol@K?)Dk><7hMaM-V3I|M@+3ptiB88 zhzP6HBkTqw96uS2iMV1(HVlOKvj%%u#nFY7oe8rb@z^d9MXm%+S_p;)wv6~l5CLP0 zS7AJmR<%g56vk($Ww2JHn^s+B4ci-raOf7<+pz<-ZoFziWTcg+sBk}LYcupsqPR>9 zM%VdWVh+ zw&=L)TQEa!+jt0$;Q>}s1Zro+9T4WIIA(>0fV9KPSV+;V&2Uy<=g8*l*U@Fp~ksIDc zsqGEKe(041Sq3H~#e(UlkqPtdQ-4*?>#rEckECB2MZQd`lISQ{pA7cQJQ=NN3M6g?{Su=U4XHG*?bPBGabh$Zte6oHD0m^H1I7hu z^yMf!R^pzbuX7YYbV7vyT0o`0bgYT_IOTAfu(t7l$(TaoV>wbVB%};1<7HS7)vaX; zaayc(7Ufl{M58NCn}Pa}vl7@V{os>|@IhRY+p(tHjNTN>57$y3|iH8w1IuegZovE7+Ad$@WTdnj=ty~1sVr_ihjGb5r7KIYM z=BpE_B(F7fhzgPEGlH(DlamN4OK9-u-Ak!SgaX@3t5)4waHtfq(t&0~3EpV1$pJ2b zta%7a*{aQs7E3}}-7G;Rt=iOHt*TBA%>{(eW>K%ALCmMNFY0v!0T_qXftCfAqJtf? zU@+$i_psEOuJyC+T6Qs1$?KA6E0-FJza-iUZfFJ}?Q32NH`Fo4jKY1L5XvDF(AJ0o zz8QIK5*Si6n{>AsC(T7y2g+%qIaAEHioaK@KHbc3x>6D*yA!QvT&tL&Ya=?CT7=Gv zW>}7fjCK$#GQ@lIkL-|ExOMWXtvdhKA!Q*^VDU3`fcub?9?@{(vbwuzKLn2ze>`kN zlk!gkDYAB2Y_&pWRK5=g!nN3;6og|Z&%Pm@vxOB|WGS~tor9#`u|q|^;r8=n?l*S{ zGD3{J;(k))V=dRc)m#>oaOgzIN7i!P_mKNVoS!eaLGS+`zT-}{(F5B1Z(dM3&Gr2N0DIoOb|AH9#OUUoKuBK>BJJ8K;tZ+8m_Z*(0YnLKXp`*aL!o z>nAXyM3~L+&ctrwg#dxu!uhg`yTiF}HyzH`@unX*=*ms70$PMHP|{OLzzWR*eXt{^zLj=Hv0;^|^#<+t)W7yYnk zQaNU;1hRox5Fo9X4+Kd){G!H7DmgNr+CW;NqI5r46+c}RyOqF;L7^Q)HNr0iW`EPF zgt)B+!(d3y!u{o}D(I68OTT$M7OWZOrxnE{!3!f`2#Eu&WAS2WBWB1cOiVR*;{F;k z6)(+q;2P0f+^HesSgz*DC1*s&t-+()JT+1CPFLFQ!fbQboHop~ai`&WAZ! z#GzfdFxDjUjd5dCYXJ9N2D0Cs@#_w_HV%N4XI@y!I58y$m(YMVa;fLJF-}|>9#8lh zsu>yEF(>u2oc&43CTe>3yj18GH=!{am41(pGj>iw4i(<%@76~ zf~lj$%b(1rmW1Lv)IS>Skb*PL@N$RoGUYdkfCAka^xdLto zVYPjEv0iV#;YBPZ1OcaNfkpBdAA1kNAbAXrNTb#4<}oo=_@HZZFSgJ61M!^)q~IR2 zsC#YYxij!8z3thl;O!-&zLcn02f zdW@l{_+wyI2hV70RlKo~pvYDt+&|d@^VI+GQz`uy%69&ur2E`ZTHL#r_XjVtRJ8BU zp&gxumP5Nm&Ywj)8MBya(QYH>&!QbiVem1u(@g#uv@@=7L_5%C@%D|El4s#Ol_GcV zO1l@`kUL2Jub~!CIoDs7;L|;)Wl9BTQClrbYR4~5Zp0Mh~VbtcRtGKr2G9+Ya| z1PFFuAS-MWAJu-CAXQhlYn8aCD@a=7#^5Z4VTDX9Q}+U* zS~Z3e*QA?2t!ZRJ7iS>@5TkZA z-Bza?H<@lL+!LQF%hWE?5=#8AcUK;F2cK<~XrCM#$3o0CHXCBUh4a-4x@dT&pH_;L zGBn5b4CElJ?WfP)v5;hog!Bb)w6uZZn~hgY7hqJ|ulR?tI@}J23rq5R2V$@l8k=*GXZ5$~^K139w*VFD_?5{ua_z&k`XHrLayp zX#~?;NMAEB3`D9zNYk|kaE%t1B@YJ7&_W;;MsHVmV-Wxbg6*~>QNtotHzq}L^4gRk30CF1jQUa1^slY(PWa=F(A+SKEN>K-v zea6+%rODanW0xX>H$Z;h$pi5qvCNibCm^)rjlAc^>4D)|#@+y^Vk4-hlO>=->(Ud? zS?nP?%Fk>uEF_A}fn*hy$8ldJzQa&>GsCLQP`Iw+XUaf!>qp+0PS5=rL#^T;7M=(- zkaqQ*i}Ms%6Lrd(N=cIpO$#O8bo)`6dLd(*1jU!-1ehmtNPRtFJxa(LEW zk5Q?E2;2+lH^0;_L@tAcNT&uA^12eOV4-Bcp`wgcwnM5aA>n+r2M2Ffm;@XU$dH5U zUILt47zhAT!bZm7oNC&@DxA{*5+h6KSPEt)0$OmIeDDeQJ7YfLL8*Fn0$cmw4$1q{`5;f*ryH$MX?0A&Qc-1)@UDzXx zRWVJ49~jB4i{Pb0l8+KoEYBkmJ!UXbNXHBLil9uGqQye*FL~JPFwxev>k(0I>70l< zu*P;)+L4I5Tq25x49#CTT)7KimiH6uT1MP?Am822c@Bm)*QQZc}kVf9h8FuamPW~-|fEPN_l6PF-%O3dQf(-oL?bv z2h>bK%MFj4S|E_M#bOh!sE#rQS+7aGo5ZVPH>oGIe}I%$Xn@^d8h$IlU3MGgN0}?F zlxR|?KtvFXt6oi@HtKI~(JoV_n-?90G|TrHw%>wjHCg;5sKx0Xq}Fi1Ix(Cmv>B2% zkR*|Xw7`Yt^$?D*zGyl|1^aDb3g%!Q5s(yUPzk^#SwItIv9;-fsx=HOS1Iq^WT0Ei z(~-*3h5%Kz2s;&DZ2-o1stu4bg3xS|CkC|HX@wEkDS>p!P~DP+5*FFxn!AD!Urrk& zyO^YlS4Sc{IIHElcXh3;`jUB9*9z%3O;>fTu*MqUeS`905@nq$NOi4{Xx2c?wYX0B z#5}REDi8reK0$#1cUaadwYzp_mDh#?s(KqTOUtl{qFs3&H}(MH#MvLyOsk+HBbDob zkWWsR`IaZwcSmg16)B)2sdd(w+?-M(p>g-J>Nexc_x|c4a|MEJRCZ6fpnO#9z!C_g zc2t4&0|zDSLMe<2u>^#ORUlo2+z{s~pEYB3E2VL+Zab1`L&X0Ikv z*sNyuS0@@K<+L!8%Cf56y1rJ>s(|Yw1v)3rP{9w8ZoQ5}rz9V9U%HGQN`bAAwvOQK zn5`QGsZp0lcC9omtVwVrRZGl|R7L@5FUcX3bG6l~oyeAjta3|j^=z+2y+t~C2gm)@ zB_cpNM!`XOp0J;{M}&0sJCKyvW~d@*pDr6Usj9*@MCd%;s<4$XaVb2E&9G(3!eky# zIT4zhx6TPx;x%uSE?zQYX((h=jQPFJQjc*u2{9f+(Qa*O-b&|>(Vzz==sqCGtH0Tc zD;|HCm#dQpUNE)H4ki}BA`ojBY}MHJ>T8m(bttfnN;tPaOpo=7T6{X5N9H6(1&lik zsPCMOKkOUI<-(vm;t&H_o@Qni%NSELR&>n`FC)jQQNfg}>x;_e`ZR=oz*75n&}uzR zABPwe^(kTjafs=Lwyz3{afp3BdFmU=AqLWZM>)ibTww;+oGy+gsNG=d`ErPXt=A%= z-EGx%0&$2h1azU5W(9(+b`x_Z)<_&;_vg7Q`$UIWEQrQ|L=#xO5SgPDV=HM@cRR-; z2C^)MafyMo855rvrXbg)Fpw$ADc(cIE8bv;hxmjJR31;sm#|j{U^lmzR_pFv++ukn zHyse^IY?}7yJ#4%7)0SZtP0<11?pDxGf_p5+3!_sUNNvXhY-!sJt*(P(%M@hEXa7q zp(qlp+^O-5X}Mq}8-Y~T7Rg(lF)MAPGo#YINZLOof_#q=N~`uu+m{HdSEQ#P5j!4| z7_SZUh^$|}D9;#37h0ky&~9M`JsOx$i5>SK2fYkDEnB49P8jSxmJoao;_lnVxgiO#p;7} z{OM?q(X8iYyl0PyGa?b~T|G$0=SO>dByxEB?c{JA==_R$XNUe=dJ*T^qJdTkTqBZqw4PVT2ns z@0~(rg!O6-*McE;%WlxDdy-~4U@6qwHCww~Fl?sA!M5Kegi7UIQed}|;;W3|d;)og z^Mj}Zx$~up6Nn`0&gJP3#z{@Gv{jm8J2+tJ6hJMcd9p1|1e zt{Y!>q-PC0pqf8(t3 zliTvD-MUDb@kAt|wQ{W6cpGd(UoC~<76=@iuCLAR998PRPFZM#yiZhGmOKwna$-Pe zM@Jr(M!(s~28L=jI>)m!VZU~{oA68Rgt9PuLWJdAYV4ccgr?b2w|DmrJq9N`6t9o+ z3soN?aKG&tFaBpG_J|}?w8F12`Y7!2$y~doK#}DHF86OV*69uyH;b!^cXWf!3Ce@en`q1UFQ8T^wNaOAvixxNH@8 z=l+5dPKVf)cb!c7(FD0z^r_8b)eiaxJ5ses^Z-G&lDl6_kYH{I5^74HUqFy9xx3Y% z8-_sjE)LIQs!LT79zaoBamVj95PyHnUyq(V`tl0|DQWIIM`;oE;bhq!dtG#>O|Fk0 zP8LYnhi~oh@SNze)Y4XiJI)D|eE6JvAX&C8-g!1=|%LYhTbNxnpXpB*g=%ixd642&AD^DKP^!UOfYlXr)#4iFgS~ zeoaUmR=W|iAl%3jAQ=uN5H?zVenB`)UW%|7d)E(GzrDfeX5?(uA)i`7APKW%;T_PX zRU5#w86gH33JC;B94RG2gO+gKdNiak$Et8!%6=H^a!n%PQP&v~$g#pw5Z|ys>XM$2 z8}iY%sk9OhRFvHaH`Z^g@rG=IsX+P_B?xW6KfKY7TH-`RWo4HIB26G*z1NnTGzEzj zPk5;(!}RQ1@O5dA1?3J&Jc1-Zy~$A#Hs~cST%)%;`Z|8`g^=)DH%b!&xDMovp6EI@ znX7ra4j25nhp9LYEFcOWGw-#nufMX?iDPRg`!Vu}UApTL) zZLN~6$Ux=1SCL0e*A-OB_*K94VqbhTTlJB{`XR}Zh4-at1dLa)s$Ye~yHd+;eQk6P z@i4lR7%_C?T!Q~{n$4AR!m-H5a8349fzy?YyMDmT6J;!o`m}PN17RfEgeUA)aY{hz ziev3XNae8DUFtM}RFockcO);M)I|u3griZNHy}Z;Z5E`75Lj;I&Nn?x>6^RebOG7Ql99C8YNuf8n97y3>enCVFblEH$#dFzVC}xz$X)26{#7E* zcVq|eXH7=D#EY+}ae_nt7C`|eQy}^kia>IxbC}G^96{>r&}#h#lDRipA@Qnw4Yv+@ zF_JOKoTepSqbyU~S~57xZY~vq`aD&rxyOQtS;^dl?oqRxpT1=#V_C4}i9$TEL!zJl zaR9NvZw_L$!XHb0v?EP&H5GOWxt-%yAV~fN{Dzo57R@n$K-<23G^M#~4 zSg*>FDBdy_@5&=o5BC?d2gd4Z>)xTpMGMU73&d!6(x5E5{9!gC;mMm7hVj^a%piXP6U|l6)Y| z6yP^`W2syWM<~yFM9>PX-Zg_PvA+PcjfgFu_d!qsVObA8Cpv`)z*_K)8V8ccQEU}C zapNBccO9G#En;crYK0BoFi^TeEa_XR_#KQHlmx5Y4Re}{XEa(ROXONLb%jJS)D|PJ zgq2Ko(^b#q(_kjcMGZNPjFj|{{Xk%yMnp+Yu}Cfvh}^N#H>9Y9X4ekbuaY&4h0SJy zWus|Pd;1)!Lk2=h&SvV+6Psk6yil-=R2o)DY&BS(+XZP-rS(>bp)+c~T?fmWB7)gn z>tzcXeAWXB5A(+O{&W|{Fh#_+M=z}jj9mJq_)&92zW=aXd?b?Mz z2KTUJQiY^!Nk&ORTS%)BL?_$fDBv26Nv!N6M=GSf=c)elsg6qUH$=X~2_4%?rwW!s z@z2$zW=vd_^18)t6(i|s7Gtu!SV=&}2g@7NHvl?+!ZJDgkq`xg0PuL#2-2(t!XDIx zN1hFAR>xW;6jdb1GE+I>NGU9<&0v9*eOHARv|8^Yq(~6JDgXq~sKYiWufR59t~3*3 zUyDq@dT+Dm3c~vd(D>O>WtrP4SQtn)OE5($RhvLkC75Bft~{yHs6wI-g`^IvsN1(S z(2)|yR$UvSQQh?JM^Kj>uodb<(QcB82hW5=o(G~2CB4@>L}8dhWS4g?&A+NJfDnBM zpOg;n-e31Tu53Qrkho4%o9;q_wPRZ)>G+X^LJ6>4q77wC{@LM4JoP@hIfth70}8+@C@zcJ0NUV z*_F-7W0cDnYGX}0b3*zJUm*G_LRv#ronVf^4%Rh+wp+z^J6Np>4C~!w!m^I4OfXEg zJ^Ea=^)7YYy>@PixCl#WuI+zg4-JKLEN*gItmC^`{ay} z7WhDXL8^{glMtAWQ?O9+jxH1wl2S)kP=$hN)kLjI!C<|uUQU(+*ssfspYp!t zx99p7a8!rh8z!7K=Yn}?9avRtv$mMRppSZiaoTaa=ZK08*a66~yVu}|0alDLzl3Dg!3vx<17LK3^ky83nF z7zJ(z9L;sP#Tu)Uu33XX(TXR?EQN+v=kVz;kS|nbgKctfM5}rbi6$S}&m)>QL*Y|{ z4PmJ&ZAUWc_Y8!Qh-@~M;ecv{g`p^Bn2Nh|a8=ww+9rS@xV2bwt!L1`gu#$t2Q{oh zdSjSUs<+x$+ZzoNMO%bDlY_IzeUTU=(M||m|ZL6E+ z2OHJvf86C(Lfc5PGq>-WM z+b^{G>ZOY^A>fgn4`F7)tz(8Qk3rb&7hKV-6T3zt0x|{HGaqP-fg*KU+P3o-5hX*5 zzz*&8_6pT2+}9Fmjif|E?7D)U54KPY*>9~1l4Jj{zqN9OKvur?*AV+HEKI8nQ!~c6+^Hp-eP_Db_m7_4r3R)y>NRhOEo}yr3 z^$rvvP->(>r_*r==(ge9MPX1K&?=_GKw7xwNsIF|ZAlQ%6Z_y^L+H+W%UzA-EoI3u z@1u|0f_wuVlE~Mx0rc`hP(R$D+Dem7Q}Ef_-nQ5-{^%OJbxfQ}y3z`rAt0I6Fht=3 zOEk$eJ*~1fuQ4)98#U|}$o8JNbD?NTm2*gRZk!7y7@OZ1qky&?+#;qUGtZSocBAmI z+k%xvM_f->hY8xsJAmmmvCx9G%W@9J;)$$fJnXUZs1339`b$xo0*Bl#wy*V|YYa!! zj^@{bXaJsawWOyCD(ik_LmJ=9#Bq_f>iPs)=~@ag0S~JIi7y>k<c32vEl0g6k|A;X+HM_TDWr!du;pD6&o<*k|aVVV#!CuddDCMNL^V!=3>E?45{ z=ko~XXi)*}D30CC^G2OvVEA1Ayv>V8i3MPS8#5QuRs;}47iWRMp{R7^xKm=D!1STg z17cvvMyX}E<*BHpPut5ErawU|w3#6tA)b^dvm(U?NE*e-2Bc>PuL#hWWv?7KV_!9} zp$Q0SxUhO{ez_qldaZX065$jQ=JR-Zm~*aXAGDTriLYjTT0olP?!0_MS*1mu;r7TV zl%Mqm!5P~L*Ok%)i#5=uGey3RKy3DCRv>*@gjTgx1$sv>ye^a_BG4xe5)y~_o+~$! z7|V`r*rP^;7+GvnjF7XsSgx5PCfU{!LrpK_fDs{wsi$VT#tt4Ctm4Yz(Lo{O^dh2T ziI83y;5yjlsMm7EfUKWOFzOVh>)bK@Oq$wH3noXQVM3}jf$8+h`P>#c>b3%B!aCNY z6g1WYq*Ez~XRY8J1j#$Xe6^~0B5Pu#DTFYKEg;TgL-!ru{qL{Dq?;L08yV+oL<_vIK1xj>!Ye=iXfeD(k8rLIBAnrKzuTvNA|0P zZQ1vOmo{D;&ln$w1jTXH>^&D#NP>KIlQ&10@pO-uhkHD_m_k4xdjv&y7D*rP(I5h} zEsyTuJsw>!!Y#OC#=G~ZD{+g|zKf1Wdwg?v`9}FI9g%1szDJ%Yy?xyECJ*oN$3r?I z!F!L#y7!(vqRBC~%X@v8j(<4XnB$^`r08pv4RqBV>Iq zWW^yOnt;?5NtB=I0-LyL;zZ1#IuH=eYnI%QCV-0AVq}@u-2+lwRGp?xsSrm&JVuU` z*$$*%>_fVlE~{=8*yadWOykg9kT7BkNZ->p(TtR%n@^?GV@JkB5nMt#V~4#EO$TIq zzoX;yz*y+`&>CBdo$zOqjYxAqK>=sx~hW z@j4n}55Y4faf#x(=UymSkHH}p=C@ph1ncASa}0TnaE#nOtZ>0+Pe1Qn6ZLF9K~Jz})7-<-MF!VRn=s;!b1eb}7bD%Yy?T2Gs$`}}k63~^<0F2HFS!Hs8RJXp)SFJSFXxA{k zK%{%Y`aQSZ%QnCa4E3E5C?&7{3=p zC3K}-oyc_4p^~1!;(17jdNBq_Tpu8PL%t!^&(JAswpwA)R;?!xEn3fK2Xt7IhN1nC zE_LIPwI>@5M0#YTh`vY{i%}dqZjt>MqRx85N|rRNdTx z3`~36ew`U&ow|ZTLbg=^1{TmE?cuO1UbKpu@no~@`1v$w%Nu;PdjqT$0rFTjwU?d1 zqs4vjL9e!_y7 z29}N6q*b(Af(l6|`T9&H(MJ6PsS>*a$aUNxj{savScooUEQI0&BdDqKCK4h7?S=Z8 zK#Q?Hm=3j7wMS#M_$FGFKw#S_ysO`e+NW~be*J?S#_UPA32E|xfaW8gZ!2-fVj}K< zw6$S$Oyg<+&`h~%!B9I`!WlwV{4n!ox{BB!%RB1qqADndUrW$8i)w>QqhBU+ci}w_ zP;(lvikBnol3@e6{T7(Ei&1DGx|z_DBW;YNNYG_e9DHrZTjWfS{Vvso%>2QHqBeymNNIA{X2;*~N?${&B-yHb9%}MdjTUF*VK{;rZA#7DSEg)Ts%$^eH7lH-G{=l?)&~?%e24Gd4q;S6V z`d1ZPIG-D}P2$e>gYb14Ku384xFEGZAju}Pzh;+)*iVBg-s!GYdjmkC)x}ip4~VEf zz$a^nY=jO|a2rEWqH6+VCt4TPs|$h{(g?By?tl!)PmUc(R|_C4hlNFA*pn?(tC3>8 z%T27cq$?5Yf)joLs)M2Y+rj$Kx`j4YBMEJ@;#5XbYw0cj$Qs9pxRo;-eK|m-m5F+H zC=$F8+J=;Xq>YVM#Y>+b_Lu}byVn3Jiu7vIJ-zZIspEK^2Wf!`Ee{VQ-ON)U1s5zV zfh-6lB1DLcS`h6Yr-QwU!421&IF|)WsRB{@3#k}=@78XDqNjivZUnG0X<^EOr0fHX zxwPumM+`zL0;^TuM6k-KM;geW($NEh&u5kG)FHBw8yTtJ044jP5Ulyypz-vn!r5=~ z3~IZwt;IlD(x?bEd0}P6?ffG+UopWdVxeF8`Yp|?TWU!iyz;sZD?cWD16d-6+@{JdY( zoW{Z9Nl(t*9#mm?A32gHqN2P7AT8_IlnMsy0P7eA<_YPki(8*|>QdGaPC$q1L7*&e zH|)*Hl!PsWwALe{kPtr*vmwv|(?gLgF|2t@@C=hB#=8$=X{p3ykw0v+Y@x+51Vi%M zu*=fHm9&4l#mnKztyTCnRYyMGRi&gXp@amQl!v&psK|s{-^8g(9&8^=WL)Ngfhmr( zx)PA{h|Ue<5Mee#3>pY{9V=?2v3|>{+UwY&9KhBcnR3H@E)4CHk+Sz7p^O38)VN0> zuNXrtWY<&?)50T2^fgWKz} zhNOg5#0HtylSP6ks$=@vq@QdvEIiRR6)<=R5oB0CrXOn-dqO&K z0;Gad8wlIaBMR?E6hs9V%oxiC!?4q&k;e_KMK+#;p~uzC)h?@yiDb;co*gVy+w-Q7 zkh%j7!0f$@D0bSP%#{T(7+IQulncQrzC2W*pO9kUj`%gqR;`YKlzM`mbv!jL5bMpr z{YZ3WqhzSb&R5PH$cm9A>sj482!TbQKN=xviAh)^5hF#ZQ3W9=+02H#bt!`K+@al; zn65Wi_7DYkG{zASE2AvU}ZxC>B8v} z0vxVg%rr+?^sM4|^WO$!fUNsAb(S72VY&ILkKn1Y;YNl7X;)^Aw5(H9jiST(H0ZTH2afJ^1k&I`+WcF)oSdXc)>D#LKGMZ&uIc9OGwza>4c+NL0 ztX2zCYovwG-Fyq{YgLOfocvn(f;9b#an_}T9aR?$#>9;Y4f{oo_Cj50N9?vzEnsb? zfy(%K&@k~PPh!cRjj9C+bvjNpt-u40TgBPdNZ##>sa*2~Tf|URww@M_xk>`GmD^q` z-$T}}cdZO;@M40H2ny9(m4*T7`7lB`w^`>}6-qEM2zIk9A67?3V%s0w*9Oamg@%c} zWzhCW;8tbmgf*tzx6%wN$7NG1Q&9#)@97DJAn=k9S@6RieKPbQP?Kz{1 zG0pq~dEi@nsc^tl5`>&zAS9Zop3%VNgekXzi} zg6(jQwLR&(MTZ5$Q`fzb5UX#&LYxKTfDR3f=;dxbWj^t&*+D-yTtz|IWgj8NY73uM zkv)c3$|MC+3^MXfq}EG}4Jp*uZMj{eR{D%>pyC$ho5H~GgotP(EX2@R6XFhH2b8q3k72c7x_xY9x<%ZGDqyAuGFAyRAS)tRq6$by=QmO1QFWor18;$}zsa#P z(BgE!%FJn)Xk9RJS043(CC;m@RS|Jo@tvsd;u}`pzv>`oSZY&iuk;1(QVK=0zue^l z!kJH-z7E)s!g{NS)k^(AULn)5c(9J+RcQ&%mv(~v@KGub2L&zP0MHi$6iE6{dq@r{ z`hJ7K@t(&FRN)^EgGshbR|W0*4HaRNn~W1E9lZo2ClK6<+$bMQqQgqG*qvBBssoEd zjOQX`#!1=^NdNE;xoz;&v|0rop}YMyCtq!H010o!$D&6#bo7Dxq)6JaMfcM_te%EQ&yKYgHqCkjpdIew#SWg}nrqY9fkO2=? zlHMNGJXZbux%Z7`vXkmubHum2t$ojo7oUIoEl>Dfe*4GEtH;MPCSHEu_Rh?xoXlf5 z?D4_++%J!2Og!u+FK8aV;dD=3ClMp$MO`j<7^{~@b)B&vCE-WZu0E23p7e|l?(xmh z9^<&4oAI7K^4|Ivp571RoYzNtjARk3C$+10a}Li@6A;pG{SZ1H{g6YM{pTvX@7p8c zTVBTfz&#%Qki%_^>~mNRGoAgB1NtD#2dfX#@#sem5bZAY4CmalM-&A9d1LiK32^j7 z4m`L0C5n#QD?FmTML~~#BHkCF^KAH+m%K{M8gWcX_rJRM{F_%dm%o0)^W9TrPnzTU z$>T?GGJo+5(lwbb{^DP>QNM_GxXl1 zYPOr14bgk&##na*&3`yN64zfKp;UYD=ohC(-vf*M%O&bKJGQ&^3T~QsT~qW^sCHe#4=C7w53m5W- z!}0(2;^j+3Z5GTgXRz$QvLya_^RoX~WBsLi_5xn8V21ni%YXmm665IVvzqAQ>VJK5 z$vghr5?(N|1OD{|t9`Qjf{vM}2b_ggt2eW#KfQ5)Lqc29zz>N$BEAkwJxpi(^xa|E z)45I_i5aZP{36Z0ObC%LipcLn&W$YGUjZ4fXAge>l@fDMm~UUAU}*HV+kQVgeD{N` zx3PX#A72Id^!2-HU+A6*{u@YU{Avjkefssq)$95MIUzI%Z$xI8@9VpniXOozHU-c9 z?~XcvCy2$`R^ZJ%B5(_5G3k#eu zr%@6lIFb-|JOYWozWS24=5M~JpMTg%N$OA0v%O@0FsYXOoyo1*{;w^)YdHs=34#!kGLG)c>XekiIP&lD= zL|Z%X(BX2`=QtF&2IpkY$DGWP@feo}`W&`u0A_7$T7V13a-(r*T?HnYJ0(va1MX*b0Fv# z{}MtCNbU%4A}zn>^N3#&IYiv;k*4X3!kabzyXUW-7N%mTw9fILk>;2x)R$a6*Gl;c z8|gVdXnkK?{QIl={5u*7|NSQixb`q6lHR~ko5RI&`b1Xmu6IDk-LZoeWO!WbM>705%m0|+<%#a9jJAuRQEnQe8`C`!DEr&fd}^BfqX0HeuJj-qnN`Lg&)e(=g@F@b~-HSq0 zHHH<|p7>3njTlka%N{d+E=lnQq*GJSdq2WJBK;F%8)G6T?1Y$O80z+cK@0#+GR7Bbwq;o5rS>s3!mIaX5_2!dO!Q+>ILjj?U`-t?qj+@P5c1 zoXOj-5uLmSau4c0T+Q(0@4=xYQh$~=hLf?jPFP|TL96ViFW;{dTI!R~CFfUL=Iz^; z9VUI+a;icvp6(guynS$a^{a0_TiEE|@)R3XK_@EkQM%-;grb(`Nb24kA!C>b4N(C> zP4wN;e|rD+ZK(=*pAAcD!%Xb$kdD_rfXC9Wzc_EVow|6?^bUvg`jKTa$fa!HUZY_) zupH7uqoI`I+jm2XB426!{?2Sl_N*vyPZ!&dpyQ3yp6>NZ?o@;qaCB!wZXQvsb$&|^ zh}ugZc5&t^*-wo&?YA`C}y9p(5TC8^--U7tUaA45s2LF4-# zQ<75dJ6Lg1@~@C7QEvCi@1NH`Zz75UmnB>7hj2ly^Nhm1*yqR|5e{&<<|ofM zP^aXBf475Z;A3&^BYrJxR(o&^A6)HlSs%EUFJH8xohTz;9Aa6~2j^jWo~#;4@xZDL zA*@x$->}yDP!Z^Fz+87nr{7}fzdn=&yUZgo0oP|#C=0we{8_7y2*i-vrPdK0KWj8o zaj%YF;`y@mcq`S`&HX9yf{Rh^hhYQIy;IQ&Kn@g!e}GJyYzFQn)$?Y3oY z(SJv2H(FNbmm^q@v|=RFXhlRxg*fQ;hv`uLwe8pJZ-09Kvep4&^~m#`dNso6CqI92 zu{?x)`(t%j>qrg~G8WH%zjBjrd*J=ZKOzkw`Rg?UbY(FIE_P|eS;Axz=ksp4ll6mv z@Xwca?Xz=ovWcJ)exvN`?9u*+lT+09ar6UebgW9+{NGHxU#%Ru`&CDD_~ZH01{~;0 zbz)JWoUr!?-_Dm{S7kinKKym!&j>_J<2a z4Dudn5P2s4@X;#nhE&MmLAWCTu^oi-*75N=vDj*%cU9SZxW&Uz+;PT+$YMJJbQY;& z$s?7zHi5&S{ni>snT7z936x`{oYtoR+mZddYI4aDGeYeVq(_g|N{;U|DdDB-ua?Th z-`j=pkNWrg>9O45_G;HMqA`z_(LH)%Wh@i-KRu|z0ALS;9Xm<{AaZ5*U90MzcXmn- za^ADk-gh_se5rBH@if7?cl)2#*uBC=boc9dhqZ&n6})E(x*zX83*B~q%KZ4Xu+A^F zpP~i0Y%$DVY1d=`VV=9~yJr(HWNV!z!7adMQIbY{Urc%%x(LLE@*icZocIbP__-oM zXg*v8&h!;z*f&eBi>sNf4d2G~n%f?rF&^Bj`)459wq`g)DnI^6Jm$$IPgUI~o3Soi zHs9@Z``eOVdr&vTK2SchJhi){Yqjjg0Bm-+dhZUo`ozx9Rr7tgobkpOQMg(BW*I){ zsqB<}s7SUGzLq-85*^}Us1cWk`$V8$Ef{`OCsr=^x8kL_KL z6P{Lye>hW=pdbXX*OCpT>OTUp}HQ_-|wdjdSe3 zyilm7(ZCb5p*U&F5L;Ogn3@H6xCC z+UYmrPWyp}uXpp#_vp{8>zV5+Ws`q7)#Ac`T<)M~hMQf_bS#%v5xPO}#eUE3!Q$5G zJaZRnH(X#~W$tOm-Vo@2>y=IG!OZMvmNM{JQkLFvGzd_Ly0}_gFk74Uv#Mh_N_B^q zS;fmEI_`QO3J6~1xq&x%kLZN$J#)qOA7aH8+xrC7&PzHCxSg>5zh~zNvv4f`hNbv7 z8!yZt7TIPzjUYeYUL?LIn$?ooAaEIQ|M|0HiReM6Cg|Xx|AKrRmje%WeErpz=ksx! zIs6YOaCYSWw6XpK0{Hmi^-8_7iyxNHbrc&fU#+@urs-J!egFE!I}HPPVd)m ze&V?`!qesLefR#w%M~;D)i)UvX(AHK4SWGb+H2$xwcnjAM0j!AiOp$YIj;>X!m#;> zTV&z~sO9)cb>N^5DxS_CXTk(lFxcl)SHtk^%8&5HV(6rip)U_okWIE${}<_#a5VHh z%4R&Q>^SPsrT&Z1*wOka*sG}e53ZkYSpV+(8)l;*!RCLC@B0FCJn*7PhfP@!#7X5Z2nZ(5%^m z7iU(x;e;Nm8V>N?59YlV-6z_2&7~FIr?`*qA1ukPxq7&lWE`XiGJ3JkqoZb-9SvC} z1J6^d#_o^Iw&97*xZ~7z8t~!Z%@~d~>jm;;hM#prvhLWXhpv&A=mJU`47bk4T~#cL6blUIh!TomW&Uk?%wo_FpD zU-SI-$Dj9uyhELLo_)HP?kBeGt2eJmF9cJ)_u0fThVQ^!V^S1=D(XxK%qHuPl>7G? zYeO6*rOjB4;~vDlbx>T*yDka@w*)8X1O|6^2=4Cg?(PzTyK8U@?(PH$9^BnMxWk=< z?>qZ<>(;3{XVE;pShXXbJ^{)@I@4r$Og@ zFBC%O!@iD7lfU5YtA4zj3?cHF%SrUzH1bq7|ACtGWer39OZ6@Jc@0>?3D^Mhjt@#o z_Vd~Yiwl0}<`i}_?>R%`v#1%urb*+8;6HEJCa4yWFa4{kZl=LW41PMY2z&D?Agw4wry6Q`>{F+Ty9s|h6#03 zGBkioCfgz`XYaOUCe7y!PWPS%(Dq>YF0Aag$A3qDkM$NZr>-PAwhZ}}1x{Zl^yCpH3hYD-JPygxB-xtDf#MMY0Eal?h;)202`;9-Y`RX@<(N?@L z_|j7}VL7;8AKh=Utu&@pWsd7OpYf?hX4qQ_|DG?E)w@%tvfhaE^6|d+y{~v7n5Xts zxhKUfn!+7fDzga6*pc~a72G!#BAT*Lm_fmNVvJ$3&*6w^0_K-WoGPr}jV5ri3yqA1 z-OTJ5)&CL^kdf_}wW0`DlXv<4dkw&};ogP(edA8}!tIk~%}(~f`?JnRYR@*31p4`u z*-Lj$~zp2tL$BXxh`*KlI{ysu&RsR0LA?NmD z;yhusaAyWQ%!63yrZIDj0eiH0vyrsWGGFpVv$Ljww4=#`(X2(p-gDyl&;!8M=o`$y zt`%gUa<~I{-PH?xeJ^leQ37vlW8~=MV61Qb=gii?0-gat5BPKB<_6Fyx!V~7=;ZWG z|9(3d+c*IjL6;Q(bPC3fw$2WQ#*P5yw*o<18z<0pM*!2?Z)syAbA16@H-IKRsDPD$ z5x~a5s0~lYZ)0N%s>SxV7BBC=Qvaa*D^<54cY3=f3cAMjj|!rW zAWm;=|5OwKDe$+wk`e=e^)Ed-B_&1x!y6Xp9Q3kIj(^Kp08IbuoE55p7BSpy4W!#C05)(ilUrT(@Tw`K$|y_pH5 zI}?EIO~#)lie~yo<~F8(*(#bbz%%?~b44={-GBU{Xa=Io{syIJ#tdNm2UgLH1;F@M zr9U{V0LFh*RWxG*F#e?o4=QH|F#V&Fq8SH(>3`uf&;yv>8i08Gm-qhA{Np`Mz?;N3 zRY8^iXu|NOE5lnmhBuWM->xyfU1NL`!1%_U@oyD)#y2dcw<=6;{F&aWFuiHO{ML^7 zt&sVj!Z$(8Z-SWrqQEo1QDS)$%kqZF@`lOshQjiO!t#c~@`l3lhQjj3h2_matZyi+ zZz!y9D6DTNtZyi+Zz!y9D6DTNtZyjV{|5bEzx^Ba{}IJ+ZU1%i-%iN*C(Lafj2uC| zf{~t{w$}RQHlXS>^t7NWpbw}J z)EhwE98~D!;B5T%1u7MBwlQ=vx3vMVy^;Sf$Nr6`{{}-wHd zLd(hlibw`FW?GK_HoZ5){0F^12K~RMNB?FM`hTtR|1uT)|DmbgJo{f<{&ukcAuey> z^&edR80x>l1r#KIqvby$=3m>u|KEhsTb%y~pFhU>ALR4a`Tv8@pMw86KJ0J#~GohKe+riW9R=5E^jIQzqtGzoBy@T+vMoq;hRp; z*}&=Vbm{Lz1wf~2ZscSJ8b(wp`IAZX|K^_#=HMm;6Alj}RwGHgfB*b0e+1qUmhOqr5lzBTw1+ z=o{yC=B?tH`s!sSS!OmLu4MMht+n%%=FwJqy3WGH)sP@=CmcowP)`tUy2Cx+LPXNo zz*AXEQrXMWS<7)}-**OXv`GzjP5}!>tkvo+OvxzDj|T`gM7gEeiwGZc#nU%B16QsL zSAJc2JHJIzoB#yhCHeh(<3}Q#W~oTJfbJF~m+dNL44 zrrwCdYDkad#s^m|u;J>@N65Q6nealWdg2h+(!$ZQbo&Y0ThOn8(du#FiGjebFi49+ zS4ft$k^uICTVTVwWmg#BJ01|cl*CWnXM~=zZykVm=7 zQ)|l*9gX1EGyUYz+9!}R5D!@v0|w1ag|i^x`8^dh=En5B{ysEZc5xyXgxVFC-dbl|ra zNd2vmLraand&BcSN^Kq(3_LydQvcz{Jk~m{@@A!m1V^6udGr$h+XyR8H(iIJ9d*D~yMq0cHxT?4_4~^l>mGaY1Cvpq zmg{@z0Yz$**AkJ=pW=GYS$q|J@W{Mc_7U_^J{MNyX(Gsc4xksTMkj%_L^{J6;UPJt z1TTGBz7Unn7!!k-MD6NOI%V)uTy)^(gTj}(dx{~;tizm~5k>v((@{Iw&VzSumhFx1 z6}YU|KjlV^LZ0Bq1rH-_r#465bv#*u)c|K1IOd+{w~}WEdmJS#%Tp~h8*2$(iS4nv zBrnfiR%_4c1NlL+mNW-y?8%FYG}<=$S2y!@C9%YVNuYHeMG`EZ8j%*gKlBuKRL6&p zvAB4TN8j;}oER;Oh*_b^*XeCPD-)NTsu7*nWwkO@3)$(VSx>`;1P-Fe1SENI1W7?c zx}3=f``Eh>zKWYwJhISS*RUne_t$aeWbDPTV=l6MC5VhAq=u|&)Va`jNTfblGK=xK zNG87h%Ua}T%qCXpBjZfKG(i+8MHBnBUn(AyZumGjfvQNI^rka#eOcjLA%3d59;fbs3I&@~*D zr!VgW+Yq~Wep1Do@eqR(6$krzc@EpM+J`U3*-j5-i&r2+jg&s$qIb%Y5_*Cz2_%=I zaLX%qUZo8jxXI=(Cdpz`{4LVDU&}NE$A{*Y{(CSjuCZ`Ea_pC*XFJqlHOtiEhI_7% z@O^WzKii^YB)*zP#1pV#LV?c9u}T$TbDXOx%$&JD2(@c-zvSQvT02-4%EkN>wm8Iy zI3UM;X5{3lPM*j1upt6HE389|T2fB~*MRLD%w(mGHZ0#FK)Z{#M8s&=G1F{7g^ZIU z3AT;Yg51sUw@Z$RhvqP@=M5d7i_L9c$JF!l+UmzPkF!-^e%a&%jfLBQU5JBfumeoDbR$=zCH15HDRRM8p`8h6NE6iDq?6yTZl zuwEbgL-wj96XW(=!SXD4bkG>< zIvdzw22`f?xEQVOnf7#S18QSaD8`&f(Koanos^Yuzoa zf1MS_Afx$mXTo)Q7?@i`IwRa=^LZ;BuMpa?5Rw$Qz6ztiC{t*)lb2!tVh(63FO0f+#;$f^kKi@hl-}r)yTuJ-jYg8v ztj-Qap(La!-^>^oyU#K(SrgUd;0%C4Y5V#!@4d|u^%a#WZzo0v(sG(`+ub6c)!FL{ zt0?4yr}Es7%(y&mONdo`8Qxi(p+Z#;x7E0Jf_T`{J4LC7(ZXv-DGcU5j_=3yW~CeB zBm&mARPL5mIq&p--YDXBFdsNa*iHw&^L~10l(l~OZEU%DKRvd;>*%P=p3dRmB1i}H z9UNe(VLJMtt9u+UOES*7Jur(YTv?NUKU5UjOGIH&Oc{)|Mk~{As4BIpgsq)UsQuM9 zu-aL=k~vk%_(YP&%Nq=3z)Hk(Z4h^;KKAq~O|p!^zN#TX)`pUxaq?Z>ZD*kDTv`Os zmUtESwG>x}N+^{RE?e8aQi3Bbzi9J-B0Q)UlCwRkSbl|4V4l6;>;&jt13nLg_n1U~Tb2H}X%qNtoID4|Ji@|gRg8(!< z3Ad}|%MC}WQS(+6Quf*CipEo_%?UgL9$Eg+8m!)MLq)7uJncB|iiW_^*P6|iapGf~ z%zj*tG$8cmrE+^@24Z_#`ZOkHR2cUuxi+Hs*cZ(1V>gYDkd;;vhOt35TZYi0 zvMT)_;w=1eW5}B8={>SePgOOljm7V$3vJVq(zZ zxkdfeO<*SmfmG@phCDKr}lCFQDp)xVMxS5aU{SBv}n;t&BwP7BSO$PN6)_zoF|VbR~3T0R@%Jpj9wJ8Z2u}J%pPlEJnHGtMxp)4{<@L zWa%71uurNi&jx64O$0=G+1V8gyj91#(?S~nAXFUlrPGSF#cA)f*NfzICmTE32Hqu~{+wohwnBqjpK7^(ZPoTz_OX|(WUzw@HVa~)_jvIk z0k&g%yl>&%uMcgJXTT8G``ypeo@;lvB{pyrke@6x&VO<>i;|p&_fC(rYV3CL;0sd* z)_O|h$~=Q<<9WS}+r*Dst0~KslY>XTv4iKb3!n?-tIZin?~|)SUi<6gmoO|`XQBT6 zGFWl&xUt{Hfvxhdx2{pF-=IDGv6S3eHlnp3lf3P7ZYllE$r*)@SD2mVuH`Re^57X%@n1w211E*MRq~8Fu4n=@@z)qMsDgCP4S*zG6e<8>(=HYyIl)>s~+U|X?v!(0eIc$3Y zZtz`)y*I2cAZsS6(N)}{>4X+FjzBsnobhXxxA^dW2m6zqYxf>06Zt(m;*theaJa^i zHG8pFBl`^;36Lkv#UY$$6Das@Vxu1DPz;RA3{MiO4bSmF5)z47CvsY0j2rVCK6>Y_#_!L3W ztyKQ4SF7)yl_&kRCitTyx%`LyPfyEr@dhTyG`7bRY#Jy5c01eG#-T`*5m89-zoUSK z^FT4ZEmS4@vq`#A}wOG2( zg)6<=LQ!&v+`g`T=kX(7)~AFx_Ha1iX1VGEq89}gyiJEoL#Ne)2(ez<`AS!LsVmfL z$4NU7^#0e{Mg#?SnZ`X_{oZ@wno}r|42{Pq?YS`sE{@}&BV{p?B*k)1?^0^Op^X}E zJ9yuRSMM2T9o8SRDtMS=y@}Cru0IQrUZ8zqxs@Cx?&p^3xU^lhMdlQCCNgSW&8BiEo4r($x<7R1CeUXzjl7n1=?0)>A_rgY{+Ww5*zlQ!T2WJ zoODz9w(s@yg!Wr8o-(!1xA*esQ@&WHT~<@G@MS)Vf3q|DMUpNzgY=Ckv|0sLeRsfb)7c9?OXvF9x6 zatL22acPzk%l9F@Zj6wYp0Pn@wxnP#sCrKyljAY4RAdo`47NBtv{19toH>P~ZA#4L zeyuTAUg@HUdud@+Sr}qkqP;7rAdW8GN~7|bG7?9R3QJ7~RzEl#tr-_D=z1zKTK~}H zGM*}F`63FmEUf?hQ)PneTx$-t0bmadT20n?Sr!ePNOF&`&72|$Rlc1RteN&|-{Tsr zlSG>xEL3)W7cJH>zChL;=$!1K>bs+?y@#J5Yfc$fZ>4DX9{q(Bla0hWxnQ@5&<3=t zDBhhqYtACBn^0W2HgPb%CD97Q>p&%KU7Be2hOL49Jz{ET-=?W*Bw}<(Y@6L(jmDDJo9h)6L#SC^iujJT zbn&wXx;{92sIA6T&o-Fw7vbauWrA3xJ%nuX1Rl!GZv)}qo?o$)Xm>|k~eN|$C( zY$fOBrDpWz7OGXoBL%U+gjz(&9Sy?399G(r0tPm|z+|D=!$S-=>5tskRssviFR|N_ zncBK~!jg$Gh++KQqsMCE$8#nqUwQ@>$$uvD-6YE{C}C4^1(;1D8IeH!g5ouX8T>L_ zc3d@LC8y#G_Mk%-y`+F{xiH}fNa$fgIMIt+rXVX#k{U$TFv&L6Akr!F)jO;V*c zRnrG?VDq?P%BqDv!$Q8UXAy_aRK$(<${|!(4KI z<1(VV9;YO2O-s-?^oty?#_4-UPUA)ZHkB5Iw@J0VG+Y9xikA3D-rW^aGjlr~G)erZx-XyXgk2}d^JU!;vBqlAIfT;Ntd2L zcf@dOjrVpqhq!h_cx*CuiPz6_k||rKQR@>iFjI!kMD@rTXU)|A_A^=>O2#psvS|H6 z2b68dZ2UNbUkWm1GZyYGtHB*jryFA`k| zdv)8YcFr+XB^_9F1f7&JOSjiZYn~D8yGVlw?W#1ncGHG*K0Y%7VBUnI0_e!Z=u7c? z?{%+2t9$&SebsDD|NP`{mY$DbA6NC2zN3P1WkIIT7SCehn9}RPa zTd8FcDmfTb*6`ZMHR+rBL(w*ePA7F1>Tqn=kq6P{{z}p>^OjB=9Ke91;i#sH6J#_E zHUb8kn(#JH>uZa>M=$WX+2N==l~lK=dW{0c^&by29hUyYjf-H`s?4e`qf=)#cUDlt z)Vq34Mm_I_F{HAFH<`HO3{b*&y=;Vo4bsGt(ZaaXm2JLKQO8fs3Ly;OX*T+(>hsQ4 zEYsAmdYgvo21o5?x&P{?mM$vPzyXSTGsDbKVsI?i1`e6|gj8!&?VVp#?mCjVNRKcw zGGgkInspkV%fxY&e3E=u-mTM1N?#IWtwQ-sKz@rlst756RqOe8nG9jF3jX*uSIW(X zZEkH^n_>^}1a2|-!7(=nsIOE+B-JE9>&X14)x6!$oZJTfiCWC|(hg<~Kqm>>!r;AK zUUd?2a78RQaZTc8+Xbv$daOH&{oOLJoFD9z!-ZC9xUrQ1TnnD7VbtU?>B@~sasrdH zVm6-Xi6OBWmq>6}>I7@dd>(_xA2w1-s6D`K#E=I)=q$u}-!be17sx=OferZYtvaP1 zG1@h}%Yhz8&0CaTWWk#1o&s3yW)+R^M|$%vH^s#kam0ll*^pYg-XFf+G(?FdNogdb zR&*?V$D6qd@n24nphKp{1044kZsYs=Cd)jLbHGhLtlD&E_)qON7O=UsI~=C1%bb}n zAhaBF{SN;DW*ZO424lg%#&q<-Czv!1D6%>%bO)^v#!dWsFEicqRFtB#;&qbl!w`3S zhB)XWsM2w`>Z$Z}+lWMFGZ6Us~&skqF57if5lo!##n)!R6=6G z>5c+VmF-DSEn=q6(7R^3&eV%YCWInVxGT}etK@Zh@w!tG(=gLUrft7m{blqO6=tDbH5Qqfb=**BXO2N!b z$FeRUBgiETuU0^9b)I>>WLjR-o3x{n+xZ}_Mk4jO>T)irW;`oLi?#U^3->PvN@BlB zs`2Jn;Uu?B{d?dI><8leul^geQDp@70$K}6mY}wcVmf?WUC429;6Ri>!^KMV8kY%aRej?CVk4wxCHi z_~1bDgS-7Y(M-2M6YKLSM%~3{XnS?z1&-U|&W%}?8uROxFS0#)*3kHHc%t|ID#np4VArn#?MGN zuSHaL=*S4>ljjq^do>vx^P=F7+sc}RQG-G$1l?Wrbk5nu^kL2b{c4JDteBgeWq{nt|YTTqxr>$v;Dd0r2i8V6iGC4~I zKTL}cnHdQ4S6Mi3$fCXW)SY#tcXBn`!o6tyRH|ajMY@eC?nI`2O9;!{doiUsceWVI zLSk$)bd-Qj$15~9cAGppZzSp!LC!QT#)vwloc&#U<}tynsr~fax(0rA&Jmto){3Wf z|09`|MRBZRW~`O?0#z}=tWJP~N=L_-PA?R#^@C!w8dsTENkuIF{Ub|B-Aepr1aPr} z_y?kNpj#rQ((bc~yB<&DaHZNb#i@YDn$m@y-TG>Ys^+mw(&2?;6p&amAcV!y&FpR^ z6yc;t+s`4BBbzjdg;#LW}bLS=76do9m`g=effLkMQtkXpE;V0Ht+6(#rpSU zE#iA733b+x4r599;iuF2KKY%w1IQUCo7cd;c&V^2h8R@=Aibq%vJ$3s&9)}_X6`L` z(+3>;w;{PYDDOMKX${)DGIwNddWnHwjHYx~sE#4NgCp?e1U%v*SA*`HC`sySNBU%O z)bzl1c|e7im(@6FWJ-!bh(F=BbxYXIby4!TImYnw%}@XQ2I89br2b>8;<>%ks%0w4 z10{|C=xTxwKLWwkDS*+Kd}chLh1sr_GtDso_DKMTjB|_@Pq(O#o*^+Q<_Zw{%D5j$ z@HucJTj!xjdDfr9*K49Uvr?KhYLd}D(kZQ;-*4gxHBJZkJ}E1v!X~J4^|)2}B8zGi z=JMn`aG*to0X$FkB>PtWHml(lq))q;fv-aHGD&-O)eW`Ci+*2 z81VNCEoj19RtKS?Vh=>2hE^F{n#~PdL97N!nBlb5Lh`LEz1)V{7F+LiwX2~*{f9j0 zuk?oT9^E%l;vj&HW6w%*wXD4O1pMg@jVJ6?0$&y3a#F_BxJz+}Th=m~U~4T!QK7D{ zr}~yKm`>1Z{9@1n>a50!ukR821hB|c4i&os`O5BFeD`>v11r9Dy1ZN>nDX+xM}W1` zSJM`(h}FMEW+@@;wi0MlIt_rIGT^d2Hu+<+;jMJc2%1#9|G_C1oUn{A%AjvN1}q6wt7sx=kd zV4V1oLQieG@-D|`5@aMw1T4cSg9$|?ajOk z(C?6Ac1I00pHsz|A?Xx2SBDUz7bX_ibkaK$iAiSS_a_RSb3qc~$_4kC?8hv~P0mgLLwfTTq4|)!M zhrUYIP7LK^u0qNRbYE4EL-VT{6FDN#t4@`YI^mJ*cv!d}zmm~pb~|y$VJJ2l^-;?r zD=PA@wg~34r&Ev&^a+S&jXAq4H?T>GgDs-8owTJ1E~sG#|SmcS}-AiRF_~*VM*nSorEF@%z+$WJ-zRci6~Jq~NWH&=fyeHN0z>#fHzHo`OdEGBLP3?MF)>Y($D$C4mP+G&sHFOxL}Q_<*hd3>8cmQ zQLx?gdELIxcMhh41>aX1X`EpiZG2aZb(FBx%tb9I3PLpw14m5ocCa)!v=Yosi^n!R zPGjnpKq_HdSXJBwnnkCMA`Zh|(;<^qc9M1JdqEVY6s^c!ARGwz!#awgjmDw8p~hX- zen)OEHxO-^zt8zTI8sAFknb0{)X5-cK;C9qiUc zbfT>9VYV{{M4%Dfhq>p|;d)q}Z2>@xxL!}X5S6uaa>jv{xu}HU>&~f@+js zfhBsA9Pc4a-qYqxR!1z4r%)b_0JpZmqLO9H!Hvv7zXMvft;h6mR6rpzF(INy{~NvX z-qTH!|D!7feaMEEzo=xt>R086gqV@r8IMg2-W4O{IOX&1$P>t@9+a{WsV2VX;$=d* zC!;0>hbJ(^LiHN(FpHfpWI8rZc2pAZh880mD6+*8N){v-A{%lvO^c37(sMX~9O;Pc9@Y;yd!}K;5js@DvKc$Dz+B+jN%9eCy18 z0y`yCf)Zjkt@7ar20PkD2)Uzzs6jQH>uuYUgO*<-dvauWN%J*s7A?~7CU%CuL@&ig z(Mf-2L?bx=iB{Q0zphZ}pTbheqII4k^c=26Iu zfv{I|IWk`p#RB2&`^(;U<@IP5(!vfN!C>M-8*Y4sN`~mjCV|oZCmPN%IMs)|6l(UD zW3^!omtS3a)ZAQ((q!`j#lfSUee1r=voSIKgXVkBr6^pSmDuwZ0_8UP z@YWcE-%|or#dv2lYPR@^ojTF?_5;W-O(OK!VfTQuM+cu6^ti7rn1cHEi3tpS)Be}W zW1Gp8)vi^BUA^JU?F{n?bD{0K-n#L7hE1g;qVyBKSHXNi>2cevLc8VA6XT05`JTTE zGv4(hN8_FG#xq%ev~|Y1^X?|z1%IyYn!cWvJJgVX%pc8?hwp2Ml_VJ1j9$|!^(_h= z$xV^&m6S!$?M8R~f)J0Qz?^iHD>yoEy4E~yl8(uQV`f_^u~ueNseES1 zc@4INwA9BQ_DT9^Wv6<41H^4+q9Ae@3B6D%pF#->8TYex)#cz%Gden@&U_ zLr{an4#i!zy zQ~xeaSo)! zBNt&(#y2(bh~lKr8h23(IjPeLGx9VXW0Yu@HYLijs1FhV_sz`&JDlhO+6E1{E=_96 zIn}&Z<#QZ7(ohsEFqN2IBdRJ!+l zFi^Y7Y*0BXxjP z0vmu7--s$4=i&yA`MlbdN|8vIH6RfBX}(G0OY!0$niUs<{y8?wbs8evW#kC(-{zV% zFu+7a!~13^h-mfz>zSdu?4#2~$(m6HVMtwDF)wwGr!rpzU8)c{_L5 zN?=WdMFDbE5?n}+ZCEWo0mj)@3$b9Bqxx-8UUQMw78Z3s^-~9P&{2c&%|^%vmto=C z`|_I+og0-X;DbLR(%&P(s|-e!du<2Df5p#8nMS8fa7WG7OQew9%!`{CbMz;dOl9-aGSpzczJAB+b=JNJBCp+1OInXc<6yYaI_m|6e-jSCX{#` z6h^b%>>GM|HhX#s7VvBQHY+T@4aZ1C)kk8VHZ=JkoZlpXL6uI=X^{q-m%hM%pfCk=sK#;68dF)Tr; zYlvkLcF}MrS1S;p*C)(SxxL~=lmx*%yhBT3AR(%Kx%LRMj1JqCg6m@8Btb>y+rGS% z%_58_?vRuz8Jl)pYQtcql7bt}L9)=t+Y^#QM_$@5-$F>k(d?p2{EZYflE0%ArRu=d zvA)dEY}R~#WW;gqF?$?>2U*`>Xe^(~5exS1dpxm2Q%ERQ+WC!|#@%?R&e97@b$QNG zWmgVu&3uN13}m;NC(X`ps9hmr{X9Xkdev$NB=FMWrJp&BTnCAY#MRM=--fJK2ZTmm z?Wmu~I@!q%NITCqLrDyDu@>^>7DW?vPn>_J|LD~#UMFU=dQ=;sSL@e;QH5{E5nnGa zx?m`^33j38?BU>P=20>Rf)fD2GzV*%g@gj#5>?^!UhqBj zQxFSVC2`XdQ51Shrw`i2AsA7+R;?*==2;gbKB>DZjo2Ns4o$;8OQHHfDiDW9;zuKm zibW5R$j3v9LGXiCZqdxs39fw{5nbt*>b-_90Xi{>`vKQu{aU|%Oe-DVH2Z}gE6DIF zUM~i*NCJk1(@Uaq5&@GNFTiAesOu>#hYSS&0!bgr!G*5bLghejH^2rvp6|vE@o|zu zybBht%VsQeL+j=1|5wYA89VZ*YK^m?_H02>62!!a~&r;%=2AWb)JWVQJ+Xs z%SGH?80$TBut>7R2*Vi&k;e|xK^^#2sPXk$C(Y%arJMycJ`fSguIU;}GxQ)?;&rnK%Mo>iSuJUUA4bd6`@fafT_>-s>gD{$!7o~m; z3FWwNq(%sxC_&rprMk*1=e>s-jAa>khCsB)VdIK2p-+dazmpoYzHhe&kUjo%Fwj2m zCN^+@I9x_3nY}lGvp0#OFNv#9)nE)x8B^utn;v6wuf?9X-lUXc{7ibVh1mlj;T@)8 zm=kPBgukYmDKQ-pF^m6j6U}C)wx`%^OrPA3M7(I~?H)YCp>La%>-%wXCuvGYNm_fE z3TK&%>o!)u=~=@HSoA>~+jyJuwec3rNTBtigen}yB1~v0iGCL8RVst3i`WaIMi{aU zwcX^;0(ybXm9X~Q1dKsxQ2b$k zWMt7)8fk)bAmz6~&HZQC9`jvYf=yL|b#-Kw`s7@eoKAi%oTgsp4JQ|| zR*c)MsX0iVQ>O0mjNu}o6kPh8(k)jlKIzhSestke1QQn!1MxqyJ6 zwN$Wlso7|fIBIR*y_h&$3Z+Qv1KL-Di_2fFB)}}q<7Y^USXkB1@SjA^I&3w>ys%*4 z$k~3-pY=T4J1o?oZOHAy@ju2x(aNB&G)(bDrr>g!2VqbA){pV?1(7Qx#2t-|k#x3le~X)&}S6?8XQYjC<5cgldRXs5?! z)GBn;W+iiBGi|j0dg+(}YGl()z`O#OA;2MbA_*w3(&bn=L@Je_pr0~v^nbU?Y|C$?e+X%-t32qrZw1{ zJ`ZeYHf$tivu==t8p);jn3&Sl{-rG>Vj4E;IOIJ9cPCocceanC#6J%~(4 zv%^}IO0I_qlapZHl4>L*C9NqWVgV`Y(hCC)fE3NVGTWI&d|@HnF-~W{cHLABi-n7K7+%a zCT;}HRtB5e0raYA(N(_O9I=)gmW!~TrE?$t$q2!KF=JXAsCW(LLr z$5i~3lbBKqy}coBXeigC2e8!p2-G-;<=EDEnuMCoUKZ|;(+gCBruUBXELH)X9Udzt zw*26+std~hXz))L`D-e&9GbO+fk@_x&hzhIVw?TW@zx?z;N%DVo-(sHyR+jqax?oB zC6loUp_3b6l4;-5UN+Y8QC13?RxTXVkb^0bTwEwaVl5;$@YB~h!Qp)dNAl}}q>dRB zk|OPiL6Yz)7p1{Cb!5+kmy&?7+LTXxaD}k~|1YJZ+f^r#p0+%~rLIC16Cv z^{^dPG@D=bP9gpzr+)(T&JR|?Pb1~9EvFfIf+RmB)NjK5`Lg9}IJAFQutHj)tW4Hc z(7`vJH5S(#%hTNXCz7%y6W>sXv_;aLJz6jbkm}NMgCA1-pcvt_Q8S`ws}*a1W4#oU zDu!x5hIlPoHEwIrnXG<`{{q$CO;RK{=Wru1uq>SZ z+y@_WY_JFZPojaq{0RobTdy)SH`!a_lgL=Yj5@H5`LU}R#w-8Q1q$muWHKTNvlMGo zWxaHUWyYdadVj;B$ylRd?V+-#t>-fWDB}=!08&=b@f7zyzXQ;NBY-TKHPR!`KFOgW zUDF0_JRi8n(Vq}EUmzsZJlY-MTIJqhX=}5ZKumd5ZSVyl!4b1xZ zV0cOcJA$av^fGSe1{b4x7pHa`t9S9y_nY@oCZTL>nex{=B^ZEj<3Y5Jp>*alYaz7nWSxcIkpxpp;j?_y@tI- zxx-JB*<3JoKO!^eWTr)vFQ6b$HF345ruLIKLPnR+7E)B=c<(% zOT3{=yvm}%SEIn~Rk1cKb-mHSh43?;Js3o8uGSYO1aD#$jrt0(6pM8lx|6xNW0qD8>_3U z8wzTRdRn^fiR<7VT1pNNIfPL$S$fu*ncs%#q{00&7^G?tP55psi3QKxDZt5+l;>ka z2$2$QNY=}WJaQ+6vbWSnjO|1ug|^kSw4@!LPi$OjYOZ-*j=sL!cAj;VYk*sx?_v-U-P;_!4`L12tm?iRHH2#T- zhuMYT&3lC;adj^Ua#fTa%>jA$lT7u4Bd+xMP657g)9i_hjOmM3QL&H zjh1P$V^WzfbDb~O>)lho(mHR~yT7)&p2m_tKf~{${+5^tE?F7(I;VJQll0`c@Z%oP%_b7)YpR@TGXs z;KxaBPyf8!a7v8z}BSpo5Gd`1td;&&u! z$DJysSMVK~{7gK9GgI}o*UxVq)Gao&6+SLjF86C|-nEZorPW0UzOJ`7>(dHOD^^nN z&TMTyn4k3&ynbkqIK%7v+<)Tf`}6|Yj^(=*z2>{p z;Xzz)Ok20uvZTWW1_1lSknQoH9KQ5idV!6ql^nz2bJrh)u%uvpyk-W^Zds zJ#h&cQL~^$(Y0~V(BMc^VCx#lH+)&G}BuK6vAubeMiS5p_U^4Wn^&WG5gkWS;qfE+&e~R(uL82 zVaH~7Y}@E09lMisY}-yposMnWw)Mt*W81ckdHb7LbMKnFX4cHF`CGNlsj7nqd+&PA z8*wr7^S-2pr#*{|zC$iqnY@JRPidTm#K7rG%Ob}0kI8Umf!jm8MF2v18f^1TliE)R zSXuNA!)oatOizEzV~G;t8P5AgK9kyiX(w--4K+c-IUoj5%;W&<8jSZ=omNKXdbCL4GeVx>;JTf|GhB8#A%L?|99j$^)gf#8GY>vMF=u9 zFWAS>4f+ym`f{V|p=`Z@u9r)cu7ZX!nB;9Ab+^8+2DA=U{T@ksv1c6dk+eBbCEo5m zga>%K96xXfby`32vR)Fh9~rfgsbeRs&YPm2{|+kn@V2?W%$$D;KyTM~HTsF@E>kU)I789{Oy^;C(1ICCSwDy2|#P$p+Ehfihg2{@+bGaf%|# z>hn`CFY|W3Z~M&>zt6ILKQ@1MRq6t?1Zuu1gZRvHSc1j|VV+4#2Plxx(lI-~mfL}% zNOpcm>2s{fJJPOkr@ZMr{Ye^=SG$cl#KopqWOV2)EXZTrTCaqNZ_)RFl`83uLAwfX zUD7U{D9GcK877DPO6@Za9%c&YMvQy$LiM*qK`!`8j-&fj@ z1LQ;3ya(Lu)(TOyYViR0<%S-tBI4zC@>G0@1=30HuPy4DI0wkhsf{!W0`UK~3up4a zbDf9Zjv4URwXbD;8ElL zLdvi0h1@VLoB&>ci`&5BaQzi^59vU4VGMb|fZ`;5Z2!PFLnz`H6E-X5oP-fIR*8SM zv|$g88XR8LrC*~gvYMlARWAECiyqHTgiiO2?=H8XM3i|9YGFp-CZ6)rWGV7qR3U;^ z?Z`0;1z7;Lzi!`NcCxd&rVycARVSRA+fWh4);R_ zmQI2&k3`Y@fz^HiKHI4B%UVF#$6nsx(%Q<>TH9jH%3g0!L6`uiw3dw#QCH2*uhG^M zjKkCcro`GC?VxW8qX*uEm3dLP^BkLh@^Z_fVq^WX;%ykJ&BjIEbt2bi0{z1)AANkF zt{I4t;yMUKW~RVx8#$n$)evtLh-R-ccXzTSMy z^`p~A_@kDM=iYn0+-X`Fbob8Ww5KHz6i;K%E+@q1H4ti-UY)lu?UV}_?+-vDjV`sP zo1V^1i3#gxEPKl;mCYFxw9BAsJCNYbvKHTH56;9|ZYP3o0wakcu0H(Ll@}4E-={AQq~+#9A$SH6(V2w`TMg zu2)c%|*dz5E#8h~Q}L9k;>p=2VxXFwtX(x$+g z-4~Bjb|Loz=bu$No)L59-WCU|65NZttFKQgSPzhr*XIc~>&k;gB`^w(?gY`4h@)Ut z(3^2oPowA~Y0opdn;jd2(~XTl5T&`fT#J<@?|D3txccegGd^$B>}UHtx^tumpzsW; zmKBOnggSEP%ns}!cq!~O1H50_HiukD0r=gNl)CvJLd>{^)Y>Q)M`pjUt-5N{w=wS~ za-@suU9-?{y&OIo2(*4j9(;(qVC#B!xU8*unPcJr2()&3<#04VZZ~4xopY<9ufjNA*m2 zC%;95Cn2(r$;U~7*6GZ}sW8w}kC2EkPTLX;8!A5@-EFP=c(;6ua`9dF;mz20;pz9G z^XqZp$n$sn64Kbi3fE<9OY4|mrVS zBy-FM^YrVWM}zl<+BHwzgO%ub?yW>~r0^4fxOry#yHj8#eequ=CqwI`glBvR5zQPQ zZ$#1RJ4Lts$E>3OcAjPvndJagRg-Pf0|zIKTGf{8m?|^PPQLl4{Nmj5?c=BW^^+{B zr@3t(U3s{cFwyz=IrgD6X}nF`^ZZ{mmJ^NcAZt)iKBlJBeK7Q~aEnVY0P2TPHYe`k zWQN>6dGalA@~q9w6h@>C^u4oi|GxJx9{&JeE__Ii@&FGF4F4`Oo}Ntt;PI77#51~D;>=)k zkL(7sfPW{6e^5s_p%m%KNXc9xLFu%2ZHAXUo8I;^zWu!G+h&Aoqy3bKXFVU-zkCnT z{@<1XhhKmstj%s6k_=;x(RuUGgw-tLRyrx|j~7N(?b&;I#`jKhqXd||0T zrX)P;@cRVV^kH?{h5i1xn7iD$;4A17{=BxD zu(K#Ug}**2&PHot5-OU&TAz8BCm%Vo$d+&8n0%VQ>HD3d{UB@Mq%fJ%tm$81_|JB4 z)zh?IWxLCmZcb-r*cUJ2es&|o>W74_onA{SZ2+U zMcP{Jwu1^tA7oj0Em(Ydf6-eU_Sd}*evcF_pn#IYGSP;nGodXU7>J{33B+oUkL+3g zUg=?YyjFF%iM2RKiPFi=(+MrKqg^i zjgg}deIc;@s?T+g7cuD>bveWsOBN;&?;K6?v#)0XXpdD|uu1@+j9T!~P;COB= za@@A;^CIqY>n==2n(W^Kl+o;2`VSny?ot-O@KSxpsp$5m+$6`-EAJ`?{SC|Wn{qP* zlF%X8``0p~^qPpUy7DsG4k}K07S%FKuMEyYG0SsXAt&o6K=f12)_zeYK2q*~PSv4L zhZsTPh+y9XG|yqKXJAeQi2OnC4P$f(D>nud5q5ts^!urgI#t?Q$leBG{}DIqC#3Gz z&|l2$EXn?KlTWB(q< z3l@G*JTK4;iJ+Xz*?@s^xPh{Tzjkdqc#vxn&t<3$cbne_-HaA@+1^3!(209?b#Rf@ zv9OcMhl9Iw@yX{1^P$wUVFj9=#Jv6L@2(<+WvKFq6ki;*Y^fP^DmSUBboDix zPl6QQ(*$*3OjYzl(VUDXb7@d z9{xS+s~1#lB#iW*jnSs!s12R(o_S$6wgR8@-BnBT{K z^k~AS{o67j!sXOS3xTbLF6NA(Ya1M8pMa+ywUmJCdD-O`b8Dqa(JJF>Eo4?WU5gR2 zPvt*&sv5+KhVUG&bfkHk(k3Nj-r=F#JiG9r>gf6SO0R7FL97A z$>Oe`SkC3!y{g}s@_nUB#@{JBx&h6&VWcSKt_FT0$aEEL)vr7wETG^E*ZkBbm8B7u zVnOYtwU41Ups8;Xr5OO`b+)nB(aOWAFpV@T@g)5QwQdxpbf_|v`2j+Sq#S=d#jQmv zcp;er@X6B+c27}@-2h*$VL5I&ytedrt-jTa@7`wZyncjkMeFqTFwhhTmHthlZ3l5} zDd_S_d3$kafBreY&&VmdsN%QML81v+I{eRcjt?TL{vn$c}eCVrO| z9JI$vL9ythh7c5mP|wT9b*PEHButFS{27g0fVvQ-)!O>KIM3gU&v zWr;+>aC#nW#W%0~!<%$o%hJDe6Ic^$!(dcBbblx7*x2DKx*NCfsJv8QWv;Ps(&8+{ z!3a2>OOwlvyE|WmXP3vvjzl%}Orm7HAlU&9d|saxhmQg@UlxZUb!njpVklMAcZ7kc z=fuC5o7qEbOugaz6Cfl(X4fkQJj$#{@@g3Y5c?0-NyHTCH_OrtQ9^LoyJ%6zKi2oR z%7p)8I@F2|fZ}qeMCOYoZ$$-H-TK%~+4LOp7j%r$=bHgh$#4!(Cak|O#>fk#D%&}s z+3c6cRxrVk{xl5NJ61JpiN~#IV1t^$>%9^$iyaY)DDE2w?yC8vN{o0#k6?6`ndevt=v(d*C> zbW6{aAsbU2c;*K2#Qy{Q>V^^3c;gN9!)ghu?rMT68jV^`WzjbII)^EnM^d*mxY#yq z>5T-49T?L18c262EeD{jpWKne?z&ugw(|P)7|W*3jMjFjox{ZM#>{XKEz(Dqf<`}z z31r5o9j}n`D>0mslq2An)HL?DK`@TuHxi5+<%Lw|cpYN-d~~SQ?iIYBs*^-7R1UR=%d5&IXKyE-E?P7Nqywy5!7ZSj9HZW$0fB#e9 z-*+R6QA_-Rmu~txOAV%->gq?zQobcCZxl0eO2NUi1-a8cwDlUW{M;o|wMnyw!NpUn zkhp3Q)!^7*Tp3U;#xND8t`G%MqcWH-PH<`q*=`}5_dcFcMoSE6EhQBMVQP%XE<-* zEPD<~aSiA42GGq@SN3WI(F@$Ft20vZ+rvhGqj(CB*6}|FHs}2*;{3;bV`|$NbN(L@ zuP&_GyYSX46(SLz1hXE-1*#q|aU>a17yLw0hk-d`smMoCYMtyOr)N5R$Q%ThtW(N$ zX^Vn=6;X@Ku6+0S!O_;wbt8u{-Et;* z>GmGed*s;hOgK_eZQ4^x+ZVijE_b`jn8d661se))qJ+TzL1rJ%p9gG{-5^)Zgj3va z#aHm3uuCy(C}4NV+?y;Yux3%SJ)RQWHE~TU>r1esDd0uMDkBZYB--MMHp_{4ja;R9 zGMcBj>aG42w9f;}YQ=Sv;kQiGpW$VdS38JBeR1TJCwL``f;Ts)fU-8X{7X@rKg+kmJnhNxkI*`Ug3#1CUPSVjh z34+*1`o;xEl`DnxM~mIFkLJcegMmQ9bdNn1#~55pMTm0I^ov|{5`t={)*2)W#*6ox zsYGz_Xv*($Nizk4q-k6!$XW8!Ly2ZNQG4TLmns=CcO4s?gF`XDOD|0rf_5?_nRb48( zAJ0?EqN!;9PjIOcNbKQtB2Qr2S-!NzDTefYSZ=GQvzXl`O0*-evT9h5BLP@aXb;IDt5vYmNPS8p$WEh@7u~X|zZU%^URcJ+cvwtG^Yiv-L)_ z)h8WJw4RtW3T!@wlmHqR-U>60Rg$zCT_eixoo}23Dmtn(b@aO{0F}k)SS}YwijERF z-lO0C8k^E)nd?E+$j#W{5N&mOIM94$wbaYA+wk~B8A7DFBq7hQEmaQ- zu@%;y(_E8jck#^ivtcEbDtx4Gpg*Ix5r#s&#H@7Bs`Jyg@_6_2f7Sf`R|fq5SIyu5 zUikR`p)4sp4>K3%{~O64oU`&`>Y<*B1xT{o0B*>J>wmuFP!rF+K`zAbY@!s_)9bG5+ z^D&j}P(kJJ`E8P~T9hRJQtk87=dt}!$0F@I8x5Qc;?o0)(HM$5Om=t?@mUw@>^ZGo z9Wv2k_>fenLQIM08{)G%)Mx?7qiS-Fof@H)#MsZL04HsNNQlCO3WLy*oNcp|lfH-m z(7;!c3{8uiEVOPo#!lHnh0~w3fXO@qsnD&b>}FRC}vE>yQbGDS8ZP$QUE^a9HRx zwn^(@Pcq_RCDE~c$Oo3AyCPX5s&2*Tn=!)iO zIpGc0{JtW(-@yGEb$d;?L>gH&Ay~MHDq~4yaLlU=Z}%HuMK*B#;9B;8W3mA4ALdtm zfvZ=?*0F^eCW)409tJ@jED(#^j(ht7$p@8OyK9x)Zd7G&VtI`7+9pXdUuO|Lbf5qb z$uwyPm2BJn{9EbjW-9ir*6fT;&DH&?5^ZRa3L-3seQ&1813-DN8spMP=-&>-)kF!5{du z2;mmpwvba7&5PH&h=eKZkC0Rjd{rCOestfq7v>Z61mllNv6SSIR`FL>!JZf#F(KR} zdzuaE+q$9`X3Pf|zfB0=z;Q(k6O}|xB?1R#7XXP}Xg8F?f}*kXbjO;~y)Not7hDH8 z{Xi|Bn5L;y+=opA{)m?OuokI3LDdRP@s=%Y_b~bvK@Qw0xC;Hxo<0oxDH7V!wFfs#HD6z+Pgozir&C*yBgF%3K~#!e6beMHPgYs z_CJ_gMmczDSrYLcy&aJ&%R#M?c5lNmhZ5Zb4oQ%VnLrv82^9eOnkkZ*ZSurB)Dm(< zchhm+yzFg~RaI1tju;B=%^NH?9S6<`ZHsX+X9<@%cdHP#^6H<-KdKp?(kW@DuoRRH zDL*+G&g8rYV}d2RH40l3Kug?0Ha3IjoWR)g`LSDdD@S(1xBtN0U;~}43=;p;5LCRu za=4Goo`7+dwVX1}M6)PX@F#>1145Zdw{8xyKT3!o#abMya}a^XZRClGAjjSa8mdL= zL?LXlM)FfiYO3EOC0I4YDOhh|Q}4CaT|mfVLU1mLVTavs&x2@04@W41K=7FQFvSk$>_HSs7;Q_hb;920&}vx99mP(3?03*xy`)=u ze^87$1{!2r*e^}Fef_eSF~#5xImf$$;j~T(x%T|fxYaCM#dGj2EwogDyleN^8R;l* zkW+_WlD(Fv)FUSk^Vp#p;YzYYH=dZ9>8oU3Q%Qb?cZbHsN%go*h9u?^A;0D_#Kxs;Fu`octaR6$i9 z5$;U}to2x?XA9-vyahU3Dm0s$q5WH-O{vbT{wHA!(pg$XsdEeajd+Vs6vGd5L{T@y zHuP(UHT})F2Ek6_VG+`)`1Y&%7j-HL^@*Ul6yP8$0xfd;s!bhaDy`d!y-mo${5vq+ zhZqSGVK2BRppoRL-f(d&=?w?bLlWw@qur^Uq;mz=Pg$2^J>F)Sn|ES(H6pMiaH5gF z8c6N%EY-x$j!wqACx%K?-{!+6z-p5?v%G1US+Kry ztkJ&_joX*&D!ThiYZ>1_E52{*-0Gk0p<0c&b!xQB8RV+>7s1Y#u-tS)a5%2%2_MX4 z#3yy|aUdL1u+B>}1Ag%ZYP5gu?qpA)Q)s$V-lkzTR_8Z!t()~So<~tsf+8q)*Q*ZK+oDx1gSVCoel}Unum)u zHy@Lu195%tp1+;4z|*nbngBY^>d`-Z3f#%|i4PW@?Uy?DE7eHr{jk>5+LDL7YnkPQM@AxKn$FOjTFZdM(BJ)#}e2I)c3tJBYO(u?K=HTOyjRN@y#bY)m^)J+<%jlIg6zU7&|<=R%6dm%>o z?iV#G{GaJQ{0y;+7+mW7b|vBPB^lw3 zBjb+DoVBL;4}H95G$l>GX!q=|1w$t~GCtSk>;PxXGsxGH|6udfpjYjj%4=LxIAiM^ zb9dSIwuaetT~%APAFSl@ypCz->R%rmH7sc{JeY=e_Q>61w^#8td-~KqwBa{mhv_-Y z$(H@T5&wvF7g;YjVTk%7D6t!mf%GwCz9w}XsS39pGmPzeumH7kWVZ~{ zdqAKJ-3d*w_M`%=X+0&JdySdq8fMJl)dsoa@TcZ+@VD@K(OU|e>a-6rtvk^l1KFCv zK<+Dv3FHCYDgt{dl}3COEbYhg(HZvY-f`92bZ#^z1=a=3trJ zFvO@*h`P0OEGE*(W7(^!X9V^D3Njn7Aqf|y{!ShV6-1G;QJcjV#3 z^5y`bPeMDUUM4G5hc?lh1Y!WZ7kT+s+)boX1(x~13x{ov=gm($%SS5e(y zAhAM$Y~5bE>5omX76211#Wg1G^09GZ;Jl1WwG#WGsEQ$km?hM2GHo%h(Zy#|UY%w( zf^%feT2o3YbL8dG^@b*7&97dW4Q#WX?PDj-EEpWyH@j&pG@10ZRdJ+-9~~+y>K;@3 z6}Wmc8$m}sRj@3RDibR9Dvp$E&TMUm1{te+aVGI$6!FN51m!-};v1PYpJ*_>Q1mPD zTh7;oj5EqYp-R(pNHS6I6c#74p(;{6DvU+G7P{-LHg%j;r~A~O8} zGHKEQ>9m&?=ax1F>{o9m7Jvfp$Z4v!-i+Ux2Svb+#nyIdDX8}6}0c;S%!)W7q@^;Xh;c2xF##uU#QY%FH!O{Xe+`r>kn zSv4ZKkN31#{rykv>sAZos%aiO;q#9jHA55H)L4Tbn#8KX#AGp8jpeElt)Rn`y`>;4 zV~ah7Gp(o)XnEDVYeteso^_JOXYG@It?NN#I=a0?s$<#io9o_RCv(Z}zVX+z)+&D7 zQ#$O$x(gHjo4kRIi_!>J5FIKv&Vb!LD>&U=0m+V}}arL&MU#wYS zMyo1<9*$(naI+tiU@(AY+w>gU-$UWKpd421lfS$0T!ts6(RH%+jJ0p8tKueeX;2qA z;@OCstGE7{pttvcax%Q>0uzhKPV0=;im}8q*o0*fJbpSj`S$# z>Y9TD^0-!@C>Pnrz4E{iTDXP&TWXS6AqmB>r6h8Hu+tyAk-w?B3RTWsCmR_%66+~# zF!STS0g2SbA;wq=E-E=5zGM#fU)(OdP+*{Yz2Sll6~6}7K{?Ecz%f{h_+feM(G9$+ zp6*xmN2^ZUutYjrk_7-;4H`3+>T*c60~3vT4yu?9bnr9WfWNL=`E+=a?LBrc3?E-< zbQg|)wr+DxS62EmyR+@vTrkbU1QDT_Sh~1;f?es791x)~N^B%wi{V?6DQ5mT!L7y2 zOHcN)&;pz_=&Un$+Rf_-P)am&R&6Z|Cy}w$vsO>IL7PQ!MmXY;Ykj3L915fkOK`95 zQZ_+HAP>7o-&7zY`m8|p)T<6>qT65e*zW{gI-vB4^;LUkda_A;`mSMHnb?V`vXV?>4>+m%;-#Y&ZMyfw1YeZBbh6?jpazcO8KtXulnt;I#97 z(`g$HhtO@C1&7dO8;xeeYZ3ZhqGKEH?(xdzfUNuKkV}&PVcF z!yRzO3SQ5xMV7LnL~mdkYAz7rP`*2JYz*IHBw2#MHbh{V(`>ek&r8;D;U^12J%$#^ zq5}6#T(vGI9RiNl*?FwdIg8QxLT%JlZBz}MOVEmE@7ZbZS*O7RlEDK&;dM~qwMb#; zfcf=+c_>M$6X#&+-Y3O>N5T_JazjM_eyr437@MLNk8|tRfI%(c!)^Fa^kaD+L8=5;tY33bn zKpz6DvY8PMOpa}p1C@J~x}au`MXj`OwL&-cMJ43Xx{JK!<-45g>3a33zl z0;T<%_&$_qB??b6F3HbXyv;se+|6ph#O2^+M(%R^0beHFo-p}sJ)a>5)GeLtdcZ6C zmtE*J>8K7C;?X*(7TJjmQkB&jhZVmx53H`wwrDB--%@C{_1e3X&{fvx7KrBlY& z6(@AiX|4+}CO%+KriLbCUwxJIZ3d&h4=8WC`?u)khkwp~hA#|L@V_IyX`QsQj9hIl zn+{;5B~xGo>kp{usN|{IKNkxQg>ugYht<1T8Y&owv|>@rv<7J5M}EQM9C%QpAN?Hv zE`R*ug*hPmIU`7gvT#v7mj+;*Tj0O2eZs}t zL&Nonrss3prjYR)N}WcAUUmB7fI{zYkrU6s2Rha6G%96uN4WSt`5NiX{@!8`2j^?i z(=J0ZXVa#{Tg+9vN?Prq{8sipi+Khk%_?pGg}vUu$X9dNMElevjUO6{ zqhC>d{VL?fA~dayydBzs*q6iYz#;azeKWnu)UyI7xIll(S$Z3p5d5FXKf@j|C3JPd zTKL@lnx>9-$>TWfseoY1mGz0R#=F-yEj83S`CE z^BJQCK1-j}xIf}5%8F7Bv3^B$iI!d+&!sR@fB3pI%Gu^vCR<%}+#q>%kydTpq+e;F z*;=s&Wr5!qYZRu0p#DHF-~@LPRk^qG%E(x4Lh(dmc1$CS+!MYKRB7v&dh_P zoMWSzs93b9(k(^W@#W1G7{6EHd9G8d=St5gD1C~f7o@@;hihiVq#{I@;0pQ0$9*=_ z0Z&&Af?)PjWLhFgh$XVp#Oh>$81^1SkyS@B-=%DT7k37c_ZDium&`bkTv8buo-;Kt z91SB~YIqLRf8Eu-4DUvwQKeTFr;|={24>nJcTVB|uBF*hs^8qF1S+uY3(lE;wY(#; zWJcjI7r8gh{SvRx*}<6>l-58eTtqj%lE@+4$FO2wJ~i)pZW-*_c-t1l*GNZz(Y8>S zS$Qj%U`1fZjDWyaYmaZnNxUYE;Oa1NvS=vSL7ko8fn^AtZ1HT8At!8}%-SfT90`qxfAmo?T zTjwQqS<^RK>$D14*+6LJ-OZOR-<>yW_CVMKXItpxVDnX}mi~1-rw)&el|8|HL~y%%f4KG&nG}(CXdiPyR)+ zpw>AZe0shD$Z3NxE2rzaKGl7%ds@wx;~)*ADkY0O(NZ-v9PJ z{wlx*PVJ_$*3f(GBTQ@5*RA1xTq+VOv11Xv*)qZ z{f$1Hg73P%4WROY87kzP!Vh_)u5~V_{Nc6Ai*p{MG}TLyp^KX2}6s>U44Wa=uCO5L9ExZ<|lk*O2;%I^)5`B++x>7YeqroM$_z)lYlYbPlM z0Bty(FVcp$qn;w^aK7Edz5D>+}QI)p4F zzD|83-a7GQep2Asb{w;*)wN8YzMn7@Aw>7%021Qc!D3orjE(F83kM?<@Y~d6EuQ%* z`|px4bbAY(Qj^q-o>t8fgk4*XjHW94rEA@b!nG><2xdLwFIo3U(5OFl>x(_m5%^*% ziiVRH-Nv7`RJZK*0pGrX$beoGGcu$;l$=Zyc&V1&`k5vOTg;Wp!?ZZpLq_&J9<-%c z&vx}6IW}0Em{k&!-A{VMhyD+;X~_w2To`IZ!V=7^ePS}8d8FEjGLi0X%q+>QHy8j7 z92G<*@UnUFCETNGc%-g~HmcX-qHTNPF@!sLSBhobmOj!Zw zK^UZxI_ic2eCo7ckL_YX{In2!jyT~eIx9(do+X$URNIhNOrtOuEpHMnqHnd5KnPpn z8Ic&f_Ky(MZB=!h^Vu)7ILe={wItDDLaSjgXB;1fwEf8B+m6+0BBX;Yr<8gZZ6wPh z4g8}li$ruh^O0%p?riA^tq|so%>&5FW2;#X?f=?N6J?{NwhB3w>UfM~JZm}}tlk8` zfCl(jZ(~pY4$b+AWZ>@@Y!6pD>6-c6(xBGv%PltUO*iZrXl1~o!D!#;jMUMp6NWx) z`rXeoIbU$rdfT2kI6spu2SlJ6OArIY=P?!#Bz0*R6WpvkKrvI&H%i?->1)MsqJ;x z-#`yj?sz_H4dbpA7Hyg1Grik@$kHdv8sDTS-=|&rgs}1tsMh#hc&l8i?;we`&8hxV zh1^CLuoPn^PJF26Ti3oNKV7Djn%ZYO@9eR+PMaFfgH;yv4qbtSJ%JTTk1=z6$Gj(o zeo-4&&}g@2J8VQYb$dY;RYnZj#d_$*wazz$%fWjK5^#&xMimID_Ke#_&m*eFP(y1X z(DkbyHB%rCCg-5?QjaC zLGZt4D7@KCUX1JU$EJ?B(fA@gT5mbuVPXGC{f64&?ZB8eEsgx7PrIdM*r??)mmzOmU#s6^Fz#kKHT-Z zX$|*M6%Dz?Vr12_bmfmUT>Cz_yr+OlLXyU`P5oFWI!CH2VxK*m=BYy z3eP7YUcQ)J>OQtpow>=C;*VKLkN)j3jejlH?Y=v+`(`a&mYKG%DYFfyh5h{8@4kOr z!Y50M=heR0q+SSuC;Kvkf#e|u^`gckYVqgD6y(aHT{kGBqWjt*E|M%D7+XO)vzFvr zvWLnPgJC+-tL-q)pzziVDv~;s2h~Lc~mNG*hrlIoD| zSDDN2iCiN5V3J<=t};gU&nzDJqrjy!;%3Vhp5`fM5<0KRbe5nF3W)6DNr~F*lH`k3IwI}yR4r{q!<2gh2MsSB}H-)eGtvP{hKUo#UzNdq>)b4m~j@DdLX269h z@ff0%Dr&@MX>j@CeJPo|V~i4Od#2Z8 z#oS;Dhpy=BO&ct}Tz25j$k-Z>#G6uqKij~XYH)gWBo=h0d^F3R3))h)BTya9*C2b% zW@>-Yr!!g%i0UD~e&xc_ zJ~$MfRj^$WlCB`Ji|BTUO&#wop!qPAnGe+%cJU5aNh^R{@+c*rh9kG3KFKsZa*xiL3scDP_7UD#xIFCKLqQr z&uO}xEI`CNp5J#nCfuF+hrCH^VVdahyL59wQ>!QlV5)LCNp)2B@g4W{xIT2E&5tUN zyvLNv<=c1pLQ&kC6IicW!=TQP!wh?yMfx;cYko(^1hSc%=Q&srT>?Mv%Q3=({Is#L zwUV(t*_JbX`+4F;){L))!>eTWoZqpN zCQvDL*Di}Q>D@OnV>vX>D?B+7;_39lE^)tL&jF)Ylt7*bKRJ%9UT% zvS^H4fCH<=nRj`nMqJQ!e7P)JCV2EiQ)UL4mVAvQHsD{xXCWx$4mP(GD*cl8u~bSm zfCc+3YsctjjGgF~wm3i0DMnw_A1grGh25|jsXf0-Q75_j*?5e7@a!AXvn&)cL%I`% z-o^Mj=+iboABH8s4&64lGcq=iH;Tqr8? zkPYKv-?^NGD7^c+0aq>2gI@4Rsck$aT5Rj6Y)b~(NA1>MzB+HF32tGLdjJ@PKFfzg89_ z{(n#m5p(eTk8_Ow?~8=(>v*J?h`C%Y6lRrPi(v_3@*_vZ2@%Rb zMZ125K+F3Qq9`i>ej7@rh?o}hC-jFP0fu65G{ElIJM$uIqv+VX&8*1tce-v-^5cfw zW5>ngg%ao_<1(jUA$$M3snm>B}`XSM>5;U+l+^<5CADX4N+9H}_xQ)Di|evGs<9rq&6qrOSSC z<=h`rUu&mXIm5Jn9rq6Z;&B`bS~CBJAf|iUnE^v;*Lbm_PW=sqqG?TVe?UUvb25B4 z*XB;st3?DXI>+KdraDY_`G{lbx(mXZT+W{;T6Z&qgZuXSja21tOm*v9GpQ=K<~5!h z(e;l!^WpbX=;;&u!aJ)|%p=(LVxqNgg)`G5fF~GXez3@OF0o=4}=sO`}5>DcNr}%hd^*P7?RcT=|PW6-rpW&PA2vqU?waK?6ctI-eiFyo+NcH9^uQcq4*!VxHjHwDUZ zo_p+zZ5|#JhQ0mMm34Zo=xgC|-9g zG-m$V%vMmO#A4+|RGZ6w*0jd;!-Rw<`x6i_C@#&&1vU#i(gViAf1Nl>9m#R%GQcGC zTSAik&Wz>8Ap4eF;wj?W`bp*ihJQd`k!O_R>R=z!<0VcUuJ!QV3nc%6gMH@n>M#nU zPFr#xvp|-2GwuXR{kB2CWJ!+lF&3Y1qWnRiD{h%=-zK^VtG^{q_TFui0D(!#UhJzlZWRo8|DJ07e)J-{{p> z4r3Ts3jw1m1I6IU5|ULwt+eko zbIQb0t*a=@ZS-`fwK6M;M!Ij9FQ_nfk>Iw7NbEv#pPM81g5eHxvaJ({Ex}7Tj5qmB zTM7S>^7~?WvGiI&@oeWoXmU=ovgRytdQ=qeRy+G6FBj!?T#!K?GHAvtf4(7PhfgK( z0IBtEts+er{5_qhcfHq-b$w!?xY&X0W-fKG|IY;XQHuA9Ohhx6kcs(}i$>qK{DmO) zLbHXiyU%QZ#HFVP*M&h3wLqMCUre}pbg`!BIJ=GDV#}7zE(UuYwD#{`?1EwvJgZbW zaNhR|luZ~+nI_Jr$m9o5g0Nz<%nwiRZqx_VqRBR)L)k|)ey>;}C#G+iwt|Qy{wO-}ykEg>sB${wm(<>~)G3&L5 z#Yt>EI}9UAI%B3AitY6uvNE5|@BIY}_=A?c)%vMLkJQOG>slSK!{-%ORyoT`81p>O z-zrUf>yNB_0?p-HS64W;uaRVC?Qp$V$&n(TIL_=fTgW|{@$eNRY4PIC<;eX+r@g>D zFdeFtZ`i%mp<>&SK6hagoBucV-Z5C0pji`LHutizmu=hTUbb!9w)e7a+qP}n_Fdo1 zJrm!=ITLg4kNd^N`O)1G*;O6=zM0weR90m^ft9(;xI$WZs?K6X=sS16cPA2W6PiLA zu;Ry>HFixN*V7IxuNx<6-8QiFz=_T%gl-l=yi#pbL8$ z>9Kp({F7!t0Jvdn1znA@{Vm9RAEU?`Aj;PjAUIU3@oO&W0I--lD0Iv~{^FyxRAbiz z0L~!*jME3s^&q%G#JIR&hA$eyJJu4?1_AsfPQmq-?Y3mqsK4+F{@4e%d8ea$lx*N-o%ozv1JVR9e3uxg-RTUIY&%%)pg$v)HPC=_HnQ0D7m_s%&;Du}2 z$k5>nsa<29^g`ZtAMNf3u1=kfQqzCCBJd_(qnwu3_@xg*se1*Hq;ox@e&k^p2CiQE zi&Xb4vqFKJ#@{>@T%9}?u_nm6&=H__Dn zTvOP#fr{AH5k^_vcsSFaYlb4plBZ_~Hh?rg%s0h88+3#69T4J)@BNgU+S6AJSG>hs zx{*SCQ}5I>Knd5hFxk=<2iz@X;LV7#-9hke<=T^5qAW*5_uf-?^Tg0WG0O^Aha1RG0YYs9C|8%#*EYm z+rq^RtSUBSq-6y|>Ec(JdxI_z)gdBqh4MJpRquXMG59X-i7x+mr<5-!RW8tU&OJk?e_^1Dc)hhvN{%DCK=J(&Bhi{Nal%G~N z$pmUWh^Kza5{7_O#kXTROp(b_xX7ykKVcfG=~FsO=qW2c*+tCY8Zh3IW?_5}b<;URu1o`Q473J+ zzkcTVfv*k9{Luq|IT*J;6L>k*al=A)%gJ$bcBBAvViVE$A;wAP3?)Q(P_tB*6-PlF{6Lxqb!^SUdl^6C7Dq@ zY{Nh{*U}S;J_W3Y0`r9m_=99gg&|>0#;rTT7hq5e38X5}kXUfbC%J-_ehS!cwKH^= zDk>cGAYu4p1FrTxvDKdO(uVL){S|@2GJJ68bL`SJf>}~C7ea^l>>eY4{g)lR1RBLt zRrV}Vqkhh?i)FFE#<>eU^3bY^9yy?d8`1~9y}xHE!%YJTGT-3it=2O&fyWPgbMK0Z zqfqtcA>H8}@l`1^7km#liouZYkkUVvq3KW5Z z-3hG@s&Y(sY*R&CTiG^pgkV*BK*4~hnYHE}mMVPJ*rXSHbNgx?+~*7SHjJq7LgDVqzyqMyYL0I)PoZ`9`s0rS}=MTa2MEAaK(3(dklff^eCBKygZ zGw+e3^_p$WhTBvQUrk&F=1vdqfmU7!$E3TlFcSuS#DlOvChsFb0}3GnzlC;3hmN0ql2c0ornHec0tgBK_Uw@)wg% z^FXKT-CEuwM+eZ$5LkZsqyTI}BvUlu(%BdHB+VN(0yZS}=ikLK3A*Xyo`Ei%agqE{ z5>G$Nrv@STgn+c$w?&B+Z@8aTb8!2Q1SW+d_BNw%`HoKo#78!c*VjJ- zo6bhu&Ya)SMvbC--)oprV3SyoJh+8wD=d` z1!1iPVz3@fNyU>h?Dy%KG)XqRi=`^#{mBZv7og&C*1O?Z=_BUr8-Mu`{tVb<;FYN zNZH-D%67t8$Jkk=wgWKE-`0OptzLHbh>#FN?F72_x z*~AdzDRARo_dnkNumo|~H557FId6Bd%)oWQ+VbeJxIybHLvi^+=JV6E_KlTTXyFqf zvP@NSECyy$Mv0y{OG^1Vomw5s5IGJt0%df7m;6Jr+EzX!^3Y{J3M7nJA_Hv?SoCSd z5&fa-7=X8L7QgumP1l*Ag}|$JgyRfRcDg0#wd3J@$|I!A(zlWw4!f>r5EFkb;e^c? zc*hB?f&@#KJ!e+`u}r8m4R=o5Vs0L@F%WvT|S$Y+hk#<`st+wj{{sqjeKT(gN3 z;+M+BKJdhn_jUEp+NG5E9=XFKdDN&9UE916qeu_J^_4&MR-as<(siG4>F=a7fXd$; z6&a5d4||1lX^1uahGNY*3B|Ekm)51^l0*thQJMWh-V3uSPA-y`zSPHj@F7{aCw}VM z(knd`a(K`rJ$LLgfZ}sJ!U9&NI-}$>@8>>TzLiIOCXvago(RVG)yo+d`M-!#fot|G zZ6?7+qbsU+GPtd&b(3HkxqVlk=m)IB5a{gS95=oaKPu?J zR!+U8ykb$YP5=@%`{;iiE(!<>E=$zi>t4BBV>W*Of8u>N<@PrBXRN zkue14SP8Tqj1?;Fx)}7h6X;IF9r&aQut2lN@)WL6V*nks1__$a5%q}D;z%t3exBQO z`qdKu?)hl86|=&col1|b6LL1(-Of_qRi~zf2UrQe7JI2iOh{)(N1sQyE4HF)Ap@{X z`88MFpLvFLMr2U<(-HY>{yATgO+T$3y(1X|Pf`LEpS2tisYnHMvyXt@utjtZQNRJL zZovM0cK7l3LAy&SAd-;JpJv+@;p#<^*kY&Uq111m-gH_ReewpiZJEN*9>6&Te9aZ znAP!|nj4z9rYi6S@%8wB8kj0YhE3BpOp5`0wGJ0_UNku&{~X@cXw{$uPsLk~wQ9V9 z0o25Q0YUJ z6bF=;ST!@XfD%fO*{S zWF)(SM5el!Uj_Mt##n{`JEKl(qz%&*;SstZVOPh;<7{C?2l&9)+Hem+Lhf+{ahwC_ zr;@he1*nLR%Jky|OVw*KoB0}oB&iW9N-V&wA+yta!LJg|l*>4vEP_|Y*oc3ufRUo- z+!=9Q*P^_%#sA`ML0ivpuj=ymeypdkJypaHbXnh!a+F}iY?)x8wp%UYv-9qx(_(TymsE@WOpHS7p_{z4*t`mljEk53NS!Vg67pUVd#{Iz$kF@ zUM)a$3jtVaP@q_*A@lq5y6@6?tW~Rxzxr*w+y2OIv7hYq_Vi_cQD!sJbAUY*EIlM{*Y1;Cy{a_81Xt7uEo9SL$#X+> za8iPqf3j6d*W`%QSZ_*)uCWAqzQJ(TG8-E+G)Q9iG!gj>kr#cyj6fE{6N#01-oxJ|6vF;PZBxZRf5;i=FeSL)K) zko~7FHObo(FspCp#N8IunbDb(8AOS$GoueeU*myVkKea^(DHoDB1q91Z%6E8)cZmm zk2Zbq!=HEIYy`eb#22=j$9Q>4k?X#6{dNi25nI60zTd+LVTU9(pBFCEzh_wBsQMs> ziM<)&ntq+y&fb$Kf-^KdqY^6Z_XV?Jv)<2?+R-OU#lX7MY~H23$1KN{Vvvdye*;ew z1eI-vB_tKJb=(feE+a-C&5#O6{3a3xnz;BZ5ba92)^vMds=0U+Z#h*=L__Vk34RO% zk~pvb7I!p;ea1d2#oCJa)!`kseU}HvwM8#_tZ!iSDnqQm3cSeobJYv%2MB{hxIJUPC zQtP(zUZq+6^OK?+J{&j2h@83WTbriZ`{EaiadWswy0qojTd)#4{(1#};lH~FT~t(; zyGWM0RH&S*K6HJk)E(1pZ+#=8)}E)HMgjU%>7Efx1zen?G)6T`e32~QiZ0t+WIqqD ze9Y>+HA`y6eE4XWPylwH+!sa{T2?tsS66pyhk+*Q-ZQ)SoM!tx^mTLH?o^e)`Gb|c z`2=CL@c#!9{eMt${9lUb|2s~Q|5Zf)f6elN&&I^~pGo-bmLb$b9<&iF=o7;A1E&M| zrHBr*0uoof!RUsiI+02W;qT#11xAdY_!E+WA&u9Y26V` zuI7|tM)o%6IJcaIV6=Ng>&@b-DZO3qae|}hO6+T{l>VH2Gi&(bpxDyMn0gU&f>VnCOBI7W-_C!+1M z@rv!^&ZjyKI90Y$&asP6StuXiDsqp@A+zn}JkKDRj-1PlFo31)hQsjtjzvM=_u2)Q zExbX>?bC4-(l)Hm`2(*(iS5^Qq}#_qiC?dE1vmNBqsv-lCGX?-;%Fc-D3i@P2%c`z ztW{mDZY8t{=_fl2N^eK=SzS`rd0R>450ffhUa1>GUgO7mIVSs}zkvg8fw3FtyqOs2 z(0P0Kq5nT1a`#^A)>#M6I1`e6e{P3gAPC?KS$hXUmQXewC69hGjJ!Hg zLFGY@fVVcQS996#}WsRgD*~PXqFqIC}P;xrx!eEBHC) z*y00lYudQ&Kk)j0B<26hy`G+#^*=-HlL2jsEQ~(*nv()z!^(4gMEiArvyscQGbGS|zwn*7k;9C7_;OCSp+<)Wrb5_fb7zUu-2pT&-6_uDUyRWy!O+Bw1zn zx9fbj2jQC?fXQC0Q_YifSp^r5VrQBj zxHZ>flezr}dHAN8p?g{4;bYa`QEOtVvhcDvt%UlL1k7D*k2(Gl;5G5+ z+MdUKVdrMIW;Z*;Yp$ZhaeMP+;1Oo~i(33)vW)hF4);ijH;$Rmjj4ez88+ldRlnfn z-M5N|1JWEh?${mA_`f?HZ(tVk9c9e|(b6PEcz$!O2!l=UtN^#zQljt(a=rLMW$7IY z#E!W@4!PFEg?hqpZ5v|#oJ;bemjBB7#}wjr$Y5PRhataYSR_G{TXp=rAnh{3jsdO* zz_enIfin#@Mt^pU*99OIp>J`wy7KVI?homb@fj@d7@kcgMKaIrp;5n~hSorAl;0F7ua z+~&XWj0%0!-W#BMq`bVew5+VlhxUgXbb3^C1_f~(X!r{#x?tTMgV)!{yf`?Qmps|k zm6er^t*v?};b%X!uODqGaxXDpc-C*GrUZH!(-#!vrOh0mjHIGGFUY^*BYi|#|QW@I@W6O@5nA+yS6QunK^9uFhOJ$BTQeD~MGuVa3 zrgL_T9sLPE(q;1qjIAz<+aKX*gUj}D*96TmE7I%I?u1z>Bx&>7*btWH;CC})3@rVt zz<9+4tBl4nB*~VJ?0!p)p%E5R^**3vupK5Xy74XZR`7mrd{T!y>X!Jgh>WKC8}A3z zHJgGVXf@YHBIVSBZ2g@7ir7tz$j!mW`CNsRwDEF?(kCZC%J5Cr}yUJYp;vmFv$1~VO z$_tP^a%uIh2wH?51%wQbMptg=BrD`SV)YJ|t@EY5KdEbZyYCLp8_rXy51*JF`>b{( z;V#{O0-goEKb)spOH1oS?|JcTk>H_DOhJ@*E~=>27%0wP2vTf$ByP3mTwIk? zXcO16Q%kYcQ}!)?hYLuN<0@hGo>S)s7S>fn?l{rPMUW92yNr8MyC~!-s3mT3a|==v zCXuBqaytJer$8Z@Yj8M97%$;}|t)cBdkr&7-ULkN3P*$e1S@xu_=Y zpa}nA(H1-{Gxy!_N?YrkV|FktO)E?m-K*j@gtUaxC&PM_rP!xD(s{6#y&{FM0bhc#A)e>bcNyE=+0 zI_fzZ;nN!E;nUGD;`8wQqvJmYKUT*7UGslx%*Ogpjb-qE@GHNiqmjM!e|z+Q-^ijM zDu7QbWn^vQXo}CkLeKEOhq#%^E`JnPQA4IXSvzNb5#kd+V7f!%&vA;OfXIi5`^o_Y z2a-4ofr=m_k}Dhj=>ZfCAv6$1h7R!8UxvIxkQ?fi7ZN_)jI@Bfu4KO7O8XpE+g?3x zUS2i1_F8TOko)il>2p*C^kvFbMZP-k)%=AtKJW~LjsOU!3fQx2Yz!j$A_TPX(aD{f zS|T=7|8zy;YuLU{)h$Qju=MQ{N60Ej1O@;lyvV}kO@ej^l&Dxgh{5m;GWL)}&Jaw` zfSL=LS3$TxP;L2Cd_>tk`ZtB-AQw|@3ZsK5E3#c~D~)(JKN2KY^Dps^NxmnzQRg4= zG=RfrvibR!3@HFQy(Lcm=V`wTOd{*l+^~{stzp=5+`1I@ds;hZ^bXFs+QMc8Fnc z|2lrdgVqeU-j(7fR6Kfui7~V%&ZEM}-ww3w1^N{W?wA9`i6w1ptbleg)7uz}yyK!OwjLM8==R7EBXFr3cm)8pc%cI zw?4)_c{6WAx9S0LhFpm{ym6@Vt+)f!H02+_Xr9U)hg3~;ob^<9Y;R35nI zKD1q|8vv>xoxTJJz7YuESrJtTtXm<0SXClGL;{OA!UCXD;j~z|0<6|3u{gT}V6c!} zy}#(FLm2xZYLUD8%6d!s5_F4y4gM-ip&hXpBQW~C`WNai))uLfR`5DQvLL2MQ4c8V z#^`F)q|^eh=v{DP!wvUf>|xt_x1eh>STk3FG{Y}Pw)>v|>JmE0J|13`TGp(9|cd zjb7pJ5XUBwNkA44CPGsnB2R7b`y*~ns71m}(n*jo%3&yKkFLh2En7vDjjuxtAI~e7 zNJfGzD}gO6uqwkY(aPt>=O$RF09#`HLs0RzEmK{#Q^-rgi&iv&G37pGf3z~8JkBEN zJjH`pHgP${B}IoOn^cFuN8+pKqXkI5m#vBJyHpnN^wW0-ZUDxt{r|`THVGdDL|Av`f}>rVi8h!AHnhOcp42>{$|Z)MHc~CNm^A}ooe~(Tps!C%Itz} z(QXZ&v7QiL{QYz9qs;kP{d8YDGgnd0%{ zQKQm|D+^nHblavIreQ3OOi7r^ncIi+YBto=DnyoY*!#IgJoDYsUn!xvBUB?YQ8!U_ zs4l4#sn4nK)X3F9RjnG%YTo+S2GT6F47`Se&G!xJr;0X@8Y@ewx1GB$y*SgfYBo{Z zW!k5o;GPKIN#5zfxkFq-I^mvI9G%J91HBdz&rfz+rfwtm!AU(xYv;v_w=>nI$fsbZ z@}XhSZqOE}(d}pLc3ZIR<7fllIlm-zKD&qmG>itOhn$xK}@0-YMZF z;p0Rjh7*eujxnd9wL?>?RpL~to8zDLug$NEc{q5&c%pcax}3Ypy=Y(bK7l@+-!|`; zZ;s!V-(^AAKq??lpb9`lK$O9Gpcx>4fjWWo_X75|`{U8h=@4lypaKbe2s#IGK{CT= zp}aYu(@-&0kX*R6D7kvOx`0sY3kwMjw2Q@z%#DafM4?Kex`>R54hk=dN(*}krwB`? zs8XrbABaS%N8%T8qvBzqcn~?;mp;#JN`~xT>_P2c(J*Qz*I%sJHy)ObPglk2^s3oW z;9}w7Y$JS!A@!9WN>x4Rw7MLEEGM*wyvH98Q65L#YP}eJ#DSy))&wvCxB zUMV5v@y*6bkvXUtxBrd)l6n-2BuXa^P=l^FuiG*aHOd~7pFli%I7mCN9>*EIAAR>` zHfDBlGU;;u3jXM2zOsO;3|gwvTyK?e(dup6ee61qvBI|!TfG?<8ILl;+O`hgT9D6? zuj$e?t-n4R5@;2W-|eKH(txuZv_!GI+%&GQG+$34)Si9RAKwe#ll>`+b-u0UrSiHt z@f3L3S@=}=?y}8YEgc+!y1t$hol0TEd#h(ias!RJ(6CZ1cJEDCmJy zek#Y9-}(Z=M!K5)*c1rr0{nRw09N}r_ zGlfIVoBr+j5c!mvRzGGUIUP5Jl9A4y?c#kWFcfqf5r!7Rq2kEX)^ISFSyfZDHSU*E zt$o{SU%KA;{-KmoZc@dr#p#vl)p;5G8MTDlo|UX~;ca%>cx}~rYFq!Ayk8mJ1?qMD zru9y{_0;Bd82z1z1snnPc16?W@vXhVed@LKISXD2ugyE*&h}~gX>hThM+zlNkyXZ9 z`MLPAY+Ty;aFMgDJ6#`Y5)<4aNc)}iS}ofTI$b(VDbgTvCR!;v9r+r$>0bLVcrzZE zGQS_xP5#yNoHSdW?d|g3X`(+maAPrhp2{n+Rno=&w)A9mY*5Ldapy{6Wqh>#9C-i!??Las1#mU+X~hKv1@s(@4DtUP zSXIE+`X5M_>7T%>h?BK}qnVBMA2(a0AMwBKvsTozvb8kAXZs;*Hgh+^*TAP|WMRhF z!lxCovC=cM{t-~q(JX@LI)v14L3|Wf^hzJZ>ANdV+-fz!qeQD6zPQPaD zFj9Xo)BgoD_Qe1I_K~^|O%~AB&^H`fp`41K4-W4_-_3%R&lsr(+#5w0oe#+-!+q2X zpUKCa$9B&_@iYayN)O;uyvfqN>VmWrEw;OYyM1)A^IIS4sjQ04poyJ-9c}o+o{CzE zN$Z^L)3Pw8XI#b%rJRKEbAJmbEYB*sFT{!2;uARp#q7YSE0qG?^OyNt z0Nop}-s3uc%(`zAm~+Z<+$8d|XNYnr$`F#yAU7i;k+~m|ML{49w*z`zfs~iv5!sa) zrDt%FIN}M$;!Xw>UnP^{Oe1n2w$KuFG}jajowo5tz0W^F%4>`5Hz!S9a0_+7cghoi zE3kc!N6gsuf*i;)WRvA;5Ur)e%|qWnF%SyiY{2Fu)YUiuD8pU{0bW-MrRGQi)(DN+ zjyT`0xY$NUjYoJQ4fHbf?*f?$&VgTSC-Buce%5zidPT7K!1WKmVh&#nw}yH*2MssT zIb2oQv83d}pQ;BuY+_SW>AwMUhxE|&>i z$i$X;|3mMK9g1EY;JbQ_12FLsoti~U0khDtmIcJ^ zmvn3|3?1-9&$pk?*X~==zqfSOe=~J1t{?0Azu$@(*!~k!xXT$xnLasWzS*F#JTf@4 z@IBxEeyLGX&jDQ%Aivm4Lx3=wzxx96wpX?_t;{_IwhlV-f*k zoZKKOGKE$Y24k$qBrs2JG7V`Wlk~_UdcnUln3OjP{BV-%nE08&m-(i^^Oxdeh@}`5Ke&+Qi1uCh+c7!Xj_G{u@gGR z2D!oD(A<*8sfmKJL02uXz@2ph_(LwOfvz0(JR&!UBsk0Xdlve)eAKLjH|)1kFIHDL zhj)fuW}(Ya9{f-q*nUk8{{pFBI4zKTg0Ar#(JU*{EIiUIt>P@6qBQ&oAU7S}3pk2T z_t}4-zJCrn{|nT|$nu|AWSTivj|K$r)gz+J54?yk;1_wKsh0~+PL&>|5W-NySd9yf zyr`@1O1M97tvbf;dgck_M1}$Z?&VX3|48V*1MfaeaojKdh`oLx(YY1okwoJ-Oz<24 zccZ<&QQi^**B+;I3qzZWKE9J$yZMtPMu{sK!PO^dmJHrP`+PuiHDa|9PtqEOWv^A0 zD_=E+qM0mdj|gkeKeeBcA>6qzijk45&K{ItFJLZ5J$#5BJ%-30Nx>c{Q5qY-hW~Da z_cVsP8l_dII94mzG|pm~M7=^~q!9j#JeklkK1v}JXchl;B;m0R&Vm??y-q~gAgLk| zMU`eXKFFxt{yn|y(HQnbvRZstDuZB=L7L&nAE`J;alx_z-8!OiBBD_t z@c|I=Sl7rDI|ft(!-mK{v9Nv!44QrfNvWz%O2SNwIGG@r#3dNh}l1)ct2OmpFp0Fk%5h& z(LaKI4vzLldR9=bfR{6B_WpDL05jt)KmtIJoCFu?8jDX~qNNPZruqQ4>8URMKU?YN zR=MclCxAbCT-v^6idu=^l^rD2?HsTiqSAfNEGELw&LbrMbeGV?K~&OI(yBj_b(gH9 zCLi1K*}=IL*X+dY4UEecI1s(Y;`2J!8Qj>qW@qEz&V7=`56NQMq^(Js(_XdMaTnR| z^U5FAWt99P&kPloEDn(#SJqREtEurgbpEU1C1wq2h^qIOXdg6nRBTcg0&b3!cTg7c zX*=ix#LeZ_5z+p)0j7BibqFT)X0Cz2=Ibz=6KX?08ps+g6_Bv6usUFk`(HqWd%sf) z;F{`NF4+4&7q_v+&YCE&s|3vkE$!gPUg5i3Cr_j~g?y4(Ly5WM0ns26^r}EUOjNZ^ zn5g_3QH6O{F;U^_Ln0`v80p$?#>Lg|WN+#KRVYIeeq0z;=(@!4YGXU%K;xuVXker~>4FQ5q})%X9wu)+SXH46rIrvHptm?`_qp##iZ(s3VAkKjZ216|QE zQ%)|_F)=eoEF>?~&I6EiK7aZgZ=h&?cIGNN`ohil<@9da}Rb za+D)*(%_fNhZ?h+g)lkE%cYFPYUwkJrX#c6hmi9UCF^;{>C)kG);h{{H_8f~eCBbo z!u3C2+dxSi)B@5{#r`wA2RDIdIXu9|sutTcdW3F?RcurP@;CXm+>DMi@vpI8{V%~; zKn_0eJ77HCYM+OHuSzz$f2}J2%ftU);o)rmm_q*BZiIgU5cn?-|G&?}|9J)OU!cnW z!ubEs#`tXiyu|un_VE9EjL-Hzfw}(xd;ePmk(G&&;eP_+m6_}DSi^C_*YD&U7mdJ? zbo>vHurD%2m9T2LHOhNK+7-|GOxX4uFmy1oP$@j<5-Wfc__ zTq;WM$9LOf+2h8QKJCs*Pmg6C-DKbS9ppNl-X&xAA$4^=xKl0~o$3Bi98-LKjc5h( z?N0RQ(rKxaug8+`7{6JO^%W zsYS`57OXk--PQQ)xo~$NVh@X(BEJ{c-Peobn1T?Q-2*!id+CSGSF1%bp^hsRO_n4`{eGs`m_VUkYEW$v0w$CZCd8;0XtJ|#DlC#M&!9}UrH8~;Nj1(87>fM%JE@gQI76-~g@sn{gt+2mvO)}@g-a9hRuIv(xRL#J zu=^9l#~@WfM+2tP>r~5g*dkcyCTp}&iLWKugY_L>YU~M+X$GR%4@GZ67rDCcwfRWd z{O-!}I0xzOtNR<673jOhVV;XO(*s;YFYgiW_Yv*GF(xX9pWvXo>-K}ZzXms2si&&P zRkk%%4zq1;Q}5s&i`1-D{+4-f(k`FF&e}+aI1xM8Q;;TJ>{vz+otz4#&aFS(OtZL?KJ5;Y0i8Wqrg7AHFqqHS}1wmEGu}LZSCN6X4 zA1Jp7%vAQOzc|ON6UmYA`{DB`(JpTcJ!2U!%FD*5O#SLQ7lZWW>q|?q@8;gUZMwt^ z5yNrsDEEKVKM{5PQ>igH#8j);M;_yDV+2nG;dzhQ$$$^#+@ zJ%3HJd=I}gu}HoCR2*wdeNNS5kCHUl0hq}5Th$87{5y8x=Ph-E86xs zU4j|mL@H$S4S1kYLF{%%1`99{CY-ZOKnZIh;xfFo0AR}+rlM56i>JPL9K?0RxF&iG zx^)3>aqE~)LCiYh($VO&WK(q#@%gf5jXntS@eyml-)E@X!fNvZXb5IyQo*U&x!WT$ z{v8?-`C8ZPAxOTJwsDBn45`LRtVON?10&eL?eWGos_&H>f*Q5@VoiUrw9bjeA;GS9 z85cuwNq!BAnSlG277|hVrCrtyxkSy>pdL-=*W|&6w)Jv5fC45YDG(0j8A}1`eQ;&; zha*b+kr(~iKMccfdM~a3K;AVHTL8Pnjh~QJx@0JI){6X-F2OH&7J{Z`O`o;L+-vC{ zS5S8{C3;^1t4-;cDdIa>yg2)6eZObk=@vje4NhDogiv8d65^fYS- zi4{9udAT%PIqVLxNRP&iYo!xdI=LZ5zGocCyoj&HwXxqS^0@4WG3K(#lN?y35ehc+ zHWa9tn*f9W9cZA9I9O41AX(j5)+>%6vo;=n~3#?RG-x^_jP z_G0>s7&4w9yIloy-FH`SPPbeB%F|@~9q;&HH*ZJIjS3A< z2S7uMo6eb?290+IfE-m7tf%w+$@R2O;nPR=j4Gt?IH%Eu7o%L-?E?(L zwH_GThaeJ}C(yRQiKJ^w%W?DJvq*QjJ>pIIgEk{@rm^{DzSe6V-OD-1_oZialqcJ7 zRpH$NBMz?7qIh+(tX@ypd9Dt*L2+oMD>brYM%4RtGz!VE-vEQ8wWHZPQ;xz`O(R^w z#l?p4^@{Pa{j>V~mR5`UPJoT|wyNiWv_+Q>QrL-Cb;qS*Q^)Q;GutH)eK-b@!RwqSibg z(;4fF&XXW-b@Z1bB6o@}uw_QvsQ^pB*9ua^Mj>Cn&cv6|nq#B>r2J)UG0&UIN2fhW z^^OpJP2gn|h4JWUOgY@cBZKT|-U9Jtpy+-`ncuIR?9BG5(Vp(mo{iQnTrM(()6<6Jojnw62bdcQ) z!^Z`q#2w}R)W?*XOhq(Xq3D1=xH0F|3-kw28tT4^c*o7G1Q1Hhb*G{LlOTPc21MLU zeHrcSaUkhqz~_AKB|Tz#EJ-;@NaBfH3W&6;KLwE*?R>2L9)$h`H@CY+0&Qa^UqHuv zQEG6j9|Hm?tPVS@cwQIeO^=%pg~Q`Dw9O|g>Eo1qp&EgmKn8-bRP)f-sBg}Pjty6n z3JFqs767a@oxF~aYVj9lf|ro$x3i0%YwO$U#LGL@LWSnXXV7P;7K73a3#$hfACbSx zoM^UJBRP=@*Ju^UlIi7TL6bFRo~&+rN1-BWC#0t8tDR4 z0uzH$o!pvOI{Gyt8Y=|YqCg4vMI;bJ>8`-lyb7}t0LkCq15~{OZZu1Cw(2)qA{a;^ z5!Ey)Cy!4UwG}30e>d+dYhZZr=vxA_V8mp;yoQY(9zOK{A&r2Gr;qT_*J*x1(7hWCzWNiz=I^OM#9I3T zn-(}P#lQhoAEW+xeQmS7ovlSX9p*KJnhc7@5^V?ba448K9nJ(ki;P%B;C>k{S3-(zOaWE5#~e8_Z;FJP>Sc1yb*hn{ zThNN&K6?Q`^I{zloo>XLohf=n$v*3}iKsmWA7b=7Xz zGtuCaRGV41a#b#lr0H~cQqVGmdQYW)U$wu%?Cw7NzL3YTiYtk5JGu?;CtE#}%mm{J zY+KdALyrMX%(f{h2fi%1ul6uq>~$l;Z=TSoW*tb3&Mw)`F7be2k6(aG>pxk&jnF@J z*bT-cCiB?+=do+iM@ctbe@wu^eqfJw`P5Zn>F zJ50gntXsT2Y~1DDYhj4)(K_^|8#;AA6Ydi41o1k|pvzkQc=bgx=lVxk2Js#DBJsCR zND^`6c$bTo+~c^Dh(^gB_a=4DbTVGg4#aPxRiD=z*U|0Yc73MG2Y${ULBQzbt%GO| zTxEUSMk^?EV_F(hNrtM01{zyq0h#(BVWuJ8vl0UyEsXw!v4%Y|LuD{%n*4(P2&ym* zU@&bX-)v_^jQQjWW$IG|6bkz#t-^{IAckUau3+fJ@l*^*Ri>h!Lw(JF9(ywMGYB6F z;qB0mz9v1U3y3$dV~Ua|qfUxFj4@eBbQFU)@(wlC<{_s!G@`cgG?qu`vUbx6uA=p& zN$eM<1HB~zOyyNCPOPwws^-NJ_tbLlr;8LRsZvP%s=eZ&NWeIeWyk;#R^mNE;0;CSfJ(}KzU-V@pdvK|Kp1W# zc5-rtqaq}~3IiH`H*yR%tXhMq4vvn=6e9=#o9@T$`1yDZ1%h4BpXTW8 zB%ARSQLPcfj-U&MKL>pvwW2fa6m;bRTAoM(L%eqTg4yO+ev;pPKRw+Z?bUXChazEv zf7k(?p29E#31dfIUme3jbxfouO`h6r$8|h7HsGl-o zbLbiFG(pscB?B@Bpmt>M*nfi+B$TKaYN)W$-@m%3tI@W@Ii*pht1IIVR3V%i}(t05gNX z!{K%+O9d>`jcE2Zm?xf!xI=MaXR(;ss-;j-Zi78#A zeBUrMH6h&}5g3Vz2al~xuWdDOc{)CjM=a+-j7U&AeO||R%O55VOx=pVS0g0~>F#~DG%q6@picrR`j>nUe1d$2+4zjO^rX^lTd{gh zm6U~kDD4L^X1W-}z#vX_VsK(e=yYI=LmA{7zob z?89@eOQX%ECyb}OC2*45l5|AI%HtEpo^+uGar@+AkD zJMlR4&TrxfI8q`)`95KH7ljNj#^SXQ9(v}hgzWh}92Iza^eLEAv_izkRTRx7bD4O_ zA!ggEh1?YWGEgbkQ$vdmcGYN54zyI$Zh)rtC&xvDnXiU$RGC>=L46L)qve z@Q-!*FWCQsy|)gk>+7~ef#7bz-5n0@9^5UsySux)d$6Fv-4fh2xVyU(AZVY+@4Mf7 zx2yYBKdJYs`VZLWth4r5bIrBRhT3C{xyhjr@e-TtIop$kmb<576!9EF9pKj4zhp-9 zyh8;QPF}Xp7j$-M7al9~UrljT*@u+WsgXYF3^>rS3MU#u&iQ8&OIlBIDR5RGJZB8th5_}LJt+odE5 zq;a3(493;U@ zRSV{7Ly*Sa6&^}YKD5}1cx=l)gN!VENW>Q442OBPoc<}s^sBk`_xKs~P%jWp&@vxU z+_moa*&kgqHoo>7LymQ)^Lm5OeSppcbGLz*;|)x3G0YcKFBByX=UH^Iua6H#R&rfS zqT#gxODvXou2}29=qatjqgUq5ptfHXMtAJoXJN5P$`oC@xg*MP{G@X0tN}fj0GYre z&zF$pZ&+}^9nczrK-rZrW5yM*k!!EsMvV34)bAUj4<#ngDcu^(DYCo!Cl;Oe_%=?C zP$c=D4`o;%An4S2VDAee4JMzE+~T%>7CK73B&-ZC`UXEPbr;;J{!B!CyEOU;r?88j zHS`6w`n2)sVba;{UYtiY?^~`KcE`8rtZ4!swAOFRBrGYYJ|*J!L#phGL%8euEeqPK zC!h7Wd7*DI+6a3KOi)It*biNibNj@}Ev>5YjvW#8SH1p7z zc2Ll7Y~X}N%WEr38}2X6K1077CE|)AQa53(zAkxut_-$rX$^54rC+bl6aDlPSQkRM z$S~(}j2^t@Aa$2}b}0TPyEU{zJ_T`3qioD{Or^z)=#q!!yO(?> zp}~8)^c}+Iq9lbw%e^l)#})@xkU8WHLO+ncYYCFvrmy)Mv z-(km@dO9EO$)u2(AASk0A^x1reoPI93V+$3oW4U{#eYNIZr zf0>gXVQ|yo#+!>n&R(S(8#m4VR+*ip7_SjnR_*O13@Yxt+s8+meCkDr!8DFM$tx64 zU*1wsg}`1r+s~y->ms&q=ag}*nT9Rv*$%V7oCK^_(F0OnwKMP|Od(Iuvxznn2S=2m zCBDm&!t>(HUY$FdA7u*{S6mgc5_R^IVN~iCHTSztgaAp1V*e5zU7#CE-lvi#L~`gxQ?3!{mKU z2Y5O=wcXVG~zKBZ_KJmtI_UeLPV;I}#$M6e1E^VX6QEaqYA9B_+`Xf;M&D^r)=DN?-O`*?vt!VPlc^};PLlA$aY&vINfb_E5MfpT{g zvi0P*v<--8|BWG6ngq5_oM;{7iFKf0Hu1O!*4)TE(fjFgyYPHQG6(P=oJpd*bHTVi zXz`0W5Y?r%vv2hQ)hE_5M?D;%@lomre29(>-_ro?5A8Q8jF{fS`gJnZebi)vx^_M3 zqj3WCHb43sH^uB}a|)6;8ZP9qP!Bkq1Y$OvBt=p0Za#%FqGdBgKt1qf8rD8gi{9Lo zaJ^7SZ-#rUiUwueGBbD$F-#~Q6**yC3VGf{me}PfQcNKV9^Tl0u$$ zVW0jD^p9*u!O_l0*~A&>5@A#j6(eF)F>!YW8d7Y4p#V+MzmFn+kCMOqBmY)3=$D#b z#0fz3OWm&o%g;~5_#dY2U!RFP0VDaPBltBqP?`sfo9I`&iV6o2>o4gLFm@FcP9oO7 zQ&mv`0EhsmmPXI)}gy+9IaS^fqBA|c2W+P(x*J}V15yu~-Un8i?8(Nwe{TW2k z28i_=82E?+8x|sTW}g!w12|HS!E zzW=w|?0>t>{(t2*0|2iv|M7MEe_cdGl`u&iGn{#a5jlyGl^3< ziAq0-H{K_ZnGb_gfP#|`dR#zooR4T(fMJ;rSyq5kmJdr)fJzeyHd25$k`FIcAdoC9 znJnmlE~1DI(<6ul{mx+X{vF{M6%pKj{_hd^XZ7Ec^gj^fu`#p!uATEQXG~+3mK)xn z!{Ek&a&)EB_8wP{qnYbnDo11@zEtXmC<$+G$LkvKk7RTpZ~^}0KUelY?cP^cWj+~# z21KB;7coQ zC8f4zfn2>nXW6ATOCA#pP;g|EReNRql>uY)hhtS|nFl~`Nw0j#us!F1NTu?oPXC2G zuk7|9TU+KtV-h3D~2dq_;)09|o>6nig)*8I+KhfzWXCvy56|*Q% zf6~DA;!v0gv-3#xyDZ>xoWrrdyN95noMiJnmUu{sdOtK)yjQ$hF)imB42k;$-VV9- z7~Sv8W<@`OYJ<=VzFGbOmd-`%5q3Iu&HQh|P%-#9kP0AWW?al- zwDn}%iI*tx!4p(iy_Drw5lf-6nCVTK)$qizoT5}hQuWKXr5N5WieNIrM@)I4qSnh4 z30>qjM>1O0#zCSbix$ZjL<3`?HvC-D%XCuYg0bnOe6VH3sUY)hC&Uzm7`Pb*@x4s< z(5_>`#{?|sA}xNbbQdZ1G+JkRP3s#?e8Wron&ZnIOxUzVyfSrf2M&gw83w@13ZoQAuZx=R5% z)d>S6h5^Efk}u?BFrt`tV&GVMx?_6rsh(eN@MxVya zJ{>6yj9PH?%r!(9qNVk2QTR|%oM)7_*i-G_9BIxs_2*3`;VqI~IlxPC!_?K&u>Z7V zF>H)54-X@fg0W99)uC4-0iQa);HfmRR9rta8g7u<{dkf8X4&DZHuZz!S9}Xt_J^Md%+$syxwE9{S z=PQixx2@ln^tuxdktxZhvyKRU6t{M}SYN6$@D)hJJf>ejw2EUqZdS%Uj^JK`m66gS9F)U-Hydc}8)MFWPArDxj1aCJ+ipR;$d8K1 z{qilt58}bouD4u%R&Qos&Jvqq(&XYZFCB+*kE$*@)@g-R0%3Kk^o@xr8;i!cvEXE; z7yQtVAB5U0B86|y2X;FXnAOD-bqv$ykBPU*Z7A1>&u1tFX$bT$j!R89{hm%T{%_6< zcbH4N0<*hlifQ{cmS9fdI{Gti3#DEcX0w{=wP|>pG@D6sX^paviFr62%uGjE{iG$h zS4NI5F_^TMarYU+!+LLL{q@hcgfUSGM;NUsC4M+b35PGnz1h~}nuw(9#c^&I3a}c7 z_k008k`P)AL}QMRE3zEVUzo3gw$e}Aj&DJ^TiqR|#QH40q9WF!drdi0;AT^3uMH%- zt*k6RrQ@EBaOK4Ip^R%&mAs(Kp=p?B9ETn5_d|%2iDo|INkj>{x4-Bd5B0qDKghfB zM6f5mSvlKm*iBRu;rbMFBKRbc>?Kia#{U5OWKv7=<3)vgJ!(G^;cC>J73xV@|Hjep z?8-lyMY#5Y_)TdG|HW}q=exmYj86!bGy1t7LasQDE{W)9>q!?oyS4na5-(4ps;u+3 zqjiijzBUay>uiDI5!6=>J_`+yAm#JPXnDFLD>~Qm;}Cc|xcLS&p+*v$65E7c>fq~! zD9nSZD%BvZXf`|R&%Zggf8*NF$^INoWe!~^%xAP##SSN#WaVz>8sVsASPRZG?|Va6 z;LHmkHVZ0W3khyUODR_nDm9g@G%U1aA|gq63{YRFtA~KGG3ruXz&GKm3*9s=B;Igx z6^{14PHNuIeNgMm^Ie!oACRo%>3IJ}B@A#l_##Fdz1Dd@(ORq~jvqVedl*XSFyg|t z7HB7y(}cviHAmN2kEOSU zjuqS8?_^{P7JMk)S!go&k*3v#Ny%g{aV_Pv(03OSuW+n8`5rIUWj`jP6$ikw_s>6p z&1#6ubWD$Y5r&LDPU_=|w*1WOo|Lm;q@0u-y{vLcjWIjmTskd{LTDtKsOl0O4oxTG zoxd2mYmy{DVF5dZ=#Wwo0VJoj!ME~_8BNJ+ZT#D1dil$XC;;TSS^T55)u>RQ*8{>I zlEK|=qe}hDls+cT&_hE>u?)zg8VV}*B_l^A+kz69m*NCukrpvTavezLQuGERkYEL? zylbDGRX!aJ;kYOTPdZLf+nP+HC?(faL-Wc%Qw;*6#SX%)q@J9fSAMSwCkc0${e^Pl&ted<_W%Q~yFyJ*7vIo@h0zg}}mh(KGs+BGq+lGQhPP|Z;O zJj$mitDM72fXugFGc_L%f-tWwYZbvhooe1CYtYg^ozM2Z($M<^<&`QjvhZa~>FFciP z?e#EpxTgEydp^wU=f2l+HeE(&wGrU6co z5eE!Y3?FMz#V{H#X{mLm%p(E^S`B8hxz{mP=3fyY(6v zsEcvrzS_QEC`USoyD-i>9DSr3)xo7w99J4tbZzY8l%5%exiP8FocOK;9wm7P)8gyY zg@!7|_qzjXczNV)_4lx@N*%H&=nmzCC5N3Xr=h~5nxM4;bSf47-j5fm8|uajUA$h1RIxj+^4_P%J55v--!4^UOC631 z7ccK`bdkyNKi+OL0dwzN8mETB*tDxVeBSTv3q871v;1C~uh&!JkO*o;Zu{8LM_v}= zfyz^P5KigDD?Fx5(engBi(DS#q2qoe+c7}?Jjss7_vMX)M!sEXne^^5Nz40LnIAuMh26{BztcUfzEny(4=}s!bl~kk(Y}m& zW$;Oanr|^KBl!r;yTdCK)+Oz&-w}b^nM{Iz*E4=G9SWFy4yJK^WsvBq%B)HF>Bg=Ki%&Lp$SK50U##!r*_Ts5eH=p$m z^y`E@sm5C;^+eo5M-w$>;+8}iPCim^aOXueX7xeJJwJ)Zj!2EFSO@xIo9A(UbK$+e z^D@`R*IOdAekAeih!*H@(YJ^UW=8fb5toPLU{bIGRkg!Kui}EQ#~&iSuK{gZ;g$rCBh2WQArqPHV)6 z=jE;;Tr>IG{Zpg@H*r+7LI+QlE8<&3V>GypQ1kPR0gD}8;(LeK^7P3hUGP``TgL&- zF5IKDPf9&zYqr$h=j(dWSDC|ujT+iH2k{))fa*srhTFG$63V^$H$B2^Oar4&%-LQj z?563&p2Q=PQVzZ&2+fiPlixrZlI>6I zKq~xyh5u$H0ssrC0Vn@|CcytK7r(RfD;K}2M*by&f&T5^1T*lq@t@;gVwvR+tqH6y z`M3QqvCQ(9SpLJx!vg-yfe7%I;s^Yt_W{612mQul{fqaT(F79Ptbg%X|Kb6O*x&uw ze#Zj~VEY>n+u!rq{+`eFHy*aX=d=AipY5OX{}SEoe~E7Pzj*9_@!0?30E=b*9*_Mm z4*Opm_P;oPl?Q;o3If1i!2#fR(Rw9Vz+Z{OzX$w|DMu66+%VqZ0zl9e{}{H3H?*)6PQ+ZW{&?ty`*dpKlH(+#@vfHu62PN zGInZg+IC+?%fKuO2*@SWD*-U>7If zdw$^E+pY{5O#)t>K2}excQ7|PS{W2DcACO!=W0MqMm1xE94+=Na9}d5YH#jvph<7K zn^z)=7X_4C3kH`JTFi ztJBrW!N}3V$>NKImtIC(nI?J3*7iouSooYIfUSIH#-H&{<{hZXvu>%Gs<5NeQ@gqa(o8!7{Z7WR5>{!UZ%=7R-SOb*v>MAik@ zbGuXiJnJ>S#jkEP?Im@MZY})@EN)2b7so3w4y*8_L*DO9f?&=Se*9dUN-6tM^GfjsQ$BXC2R{=;^xaJ+!aa zk93wlm!li@lIc$I;i-o5O+ok0U$5GG!}2^HE{CTIN(SR{2wEL)FD>{91bjW8AFy4% zAL7IY;P&-HBHbgBuR%BZcen*}Ru?oh-|fdR+RH?D-+Y*=7wLXMpGr+9 z6bO{epD1d-z&FeT?A47nyD@o2}YqeW3&c04=760zxNe#CU$mQ^ge4#&0JPAso zR6JsmF~&ZL{yG5K`_7CrSfz&HIW$Hhc#hDI72+~Upp*OM$09EQvmj~H=qI-;Kcbcd zK2W&4ga&>e#PErn&cdvYyf)8NBd!}7J-#2}f_{!=C*6-*%EN3_Gz6SL7g{t#u|uI;(y(1Sda^DGV214 z9e!2yvFU=o;zEsDS1=xC{P9|Z+TZ#4>>8ch-dmSDgSG$6Mr-9s+%Z4a#FD&eB8M~@ z`V?e-!A@6k{UQDFq?!BX5h1)2eI6|P1WLWr-6A3t5z4Tp*yNP$70Xs#n-PZDH*NgN zM#vjV3x0>|8*?1xMw$W$l!dE{xX|GB{Mhx~_J9uS+2gry^QQRA-Zc1Teo`xHcJv}f zb~K@hy<(+elMp+!qxZ|c4XxdJj-ua>;+_{xuvl%llQay=Q#RBXPNRyLI@ueRXlC2i z7lzh(P8WCW!=&LN1b8Uom5{5DPdB?#2v(Y}}pHXJ|xXAKeNU&*%B4 zIF3!MePaN=4zjgB{p3OO?6Tg>PG>V>i90zO8`$d08U%hCm}H&v`zz=lxGU$B1to}p zX*suCW8GM#>s&`(6~muX6QEp^+v|AL<|4eNQUfX>YX!_u(+Z<2id0r$SP^o{pC9JN zK+}v;=D|*y-xNZ2GWx0DP8RHxj4O|_M+eH~heMBT z8Qii+rd!QmUtyMM+&8oJ*`PjLM5m$NZgU z*w5H(Q`x}v4AqUzsrR0ab>k=5pxc{!nkQ)cl^9K63+IXwVq_Vr47s|mqvx#ziOk(Q z8&Z0o1Aa9~r+2tXv%=E3gnAE^80gG7WJ#yHTh&`a<5jimBE_z%hEc^aNHXi2mj=Vq z5=&*A=#4v(>Bvu#4b$U05{9Fpdjn7mz<>`fm$4pydpTz9eLH*a%puF4(@$Q^BR_E?ifL`f`opu$N1dxDl|J|K(evoDaC+&J#{} zLH@WGIcVS~Oufg~?%uT*Qp2LX%58}qJ%f8rOFEnmflQgZ_>chIJKb%4yewNQ{OLP+9g)T8+w1kVgF5;`O`sTIMwWhgG z<@&IAWc&ch^(7|%uo}i7{6UKzbC_JuV3<$X(a8R@{BG>6qVv&889VL^&#c-P!z*kV zs4fC%wh^u#T>ng(D#D^L+}O(R1&}|=zTk=%DV;%N3Js)bz;Ji%xKl|5y`p7y>(eVZ zvff{Qe-UY`*sJ7o#IK;~j^gKFe@l~2($oF)a~2K_&~=Bteln0V{1!rvQQG7V zi7-K~FI||#T-6apmBkH3GMjXgR3SbyO0P{VxF?1vD)(I}u@~m5>&FsDj24h%u)bE* zhL?)`b)5wfp(eg;s)trpRstS;5W_Y)3JgUGd%EjUZo<+-C`zTN6)(CmQse<}k@!yC z9Fh>k`CR92Gm32ymLzu>&yjUU(<{WQaCdR419amQ=QDylIZ*qG|0u-R+Jz41w+LL2yZ=ZQJTb) z;cXlUX8=9+G8cQ1Xp|C~`Pn*GW z3Wy=PdHSD}_|R|)cxiworaoAXq8~znb(|T_>W>ezF1DNQ2A;QfH-DCS0{wV>a?qn9 zr;nF!G?Ye|mC zHtwY92zL%)F?e1HjMh3GRva5*9BTlab}tdT_hEvm<|@UPB0{Rh-b-BCExpN9E#!I5 zERDkVehvZtsze<+od3xbR*Za;oI(FMRh4#FdAM?#u9D)KNw;^Tb(b|z`re&FEYApq z09u8-L(qb$(RF$#EOwlHC$K>VH=rf^^AfM{F^Sq@QqLE2Ts@(&No3s;dA6wPnI2|j<=`1AHY5PybBA9{RY}3%GF!d2eG>d6VBe~vx$||w@3_DNR)?F z+ez#zQmBeU#g!D7z(4#^+${68C&Y1I=ghb{0XR0|Wy~d{$pX|hZj?fidIC;}V4OpO z(!1?l4vEbgXraf9luONqpyw)Y2N%e<<2N7QlpV^C6sb-21RY-i;+zxwV9BU(Oz983 zF``^7)PkPkTnN<~AA(H+0oHTiP>rG1n3JKxA!3f2CTg18Km3^;9r%3<8<$O4odP&z zA(rHHkcuYoj@a;vdj!MxrsQN?MKytfAmzx9IjaUF={~Nz;PHAPT^lli7le$fkGrr8 zB)pR7{zP7~b-`&^xiW|>p52&AL_K4Rn$lX44mx-w9|H4SF}ESrChyrq1^~0{-J?I} z<-T#)G{xCk678JvrnuVO3LYFflaB<@;z@qaF!;z?bC+#%Ui-~5Vy$@DzKlLnFxntr zcq^J=aWQ18Rs$r4$f!r%Eo|n4W)4fPXgAAq=gkh8r8=a{WY`3Ji}j*GB*xy@D(u}y zxQKT0zR<<`0J-~Gct`-YV&&L=@B^_|19^@UIIN5+WMIXOm?)ErB5vuo#!cxbHmAKl z37<(pMW=x{w3>@`pTS!wJ~L0~P5)>E<_P~-VMh&X!RRh`pIL@}bpHJAOQtIkeRs7B z5H~fq8i2+qTsxSJqr=TdU5T8x*HtY1DlOZ_ptxYCLM$~(mQo*YC>h-MI`~2qBjH?4 z)9(t1on@S|PkW@=H+dAkzeB{fAbtRwfSx3}dmVPQ^CC%cyI8*xomQ?uFjB)b&S+&X zeuoEWk-;@-rk0Mr%vEjsiGI`9+=YN5aovTKCu0mcvTQjL#lOgY4q;(bZ`Iipcq90j zP{k|{E@J6@Hw$b%-;`fY&}Y8bzxti-ikNg)wN=>z3B z-~yBCH7_J+TNmhHY&*lrtRuZd6aal;@$&MraN@{{fQ?iMq;NnENr8+GIn0SEik1+M zR$Q`_;{J+WWdMrgJk(^!vuHv{0vjMMk$SK&w8CN`=Xx)GG4U9|!C-T`g|&%reU1`e zWYmJJswTi3C)frO*fQQ&^Lc`@wto)KXsQcSire=3^phf@tDsp+RMP5Q zx^qYxZD-t`&7})%-ZTH?MaNU@oq^mfs^Q6=U!q2>)qACRbO_l71q|?c00!aC)=mOn ziKYPLD%f(AJn{k0y#~5xO*em^Y=~mp5yXj@B?s+1a;{!Wyi#bR1mlhNKu4X6TT)Tn zp_Uq{SrRmyT6>BhE>o^YMwY31a$iBAa5#7#jTpNYTSzsg-d3jN^rVK5{|xt>+#~d` zti{8?4s*x!w9cvKix2q9N7DCI&*$GRhNM16YS;*emo(lERouTu+0hpcx}?YDn7`8$ z+dT_oqS0Ex%5ExAd}u;%V$7ImydswN3u3N@zHD;9HNm*4UvY-(HlRf8rqHmO_U{xV z-WXa1Z51zJL|-?Q$L5g>iT}ZVjHRr^-S-3@ijGIwWmq=k0pc@;gWDmjnSuTBYwrq+ z%dC!O!S~g8R{M}Sss-y^><6g^(jGkJ%uuL%6!3}XbUF-QbibjG^C$)+pT_co(ZKQ& zph3Y7XP7Sap@V7#!Q-UM&sBR?_ANJK3ulO=K$Jt|1a;7a3aBn6KGWmJC(iO0do;)4#iquP0RIzH6ZKnT1CQkWb>=^KQTt9A2S|gFoC3 zPSf1f)aV&aFE?7yS1fBYhcS!KjQ+UJHpZwU!wy++<9hsN@ar1G zhkQ^6h2Wzu8&l}MQ_h$%Xrd-zHHR!ntoB*D@K1AMSd|R+9Ls=gnL+32nVD&Q6QigD zG!3Lp4oH7T_N*oiBNA$Ym^i6th&Th#n`8R*Oz6J0uLlPVJnAbgPT@>Ol$J(=Uqh=+ zurwDQcU5k|GvQ_Tr}HuSmSV}EsVd@BN+X+zv4%velFNc;_MZkB_)2e_A3=~G=)IPO z^7~*mP_Iw~H1-GhHBfZ(S?f%n zI+ZjV_8+g9Q3#7qa09rV@`&d(H!$UyCfAi^CKOSy+_;Br`%e3aNk}Q#o11zQVGMUG zCZDkNs6$iYs=p6lOP-Igqx+l7SeZU#p7P91t9jbGNoZ*7Q9-U(;1kH-Z~pwUTW(1n zkfG(8iqlU*~@rGq2%cTt0hGdE>a2&;)7_R=UeL2^6>PsoZK2dykG`0`_#ppB<53_cxfm(Nw! zG6dS`A>W5LzGi0c{^)&%5_jERP&6jZGDKk$*F@&Xn zfcn}fWp2m1fbW)zO4Sy$j%~!Iq~V-;qZB3v)X0SVP?&;31)AmNXlP3UVAwKPbrGUF z1bOG2`BzNE*6Yz0?;aWE&3SPG67Nq4ur0_2*t!}v(|tp^tX_7$d;Cn*B3VZ94i$N_ zr}ol96+)&NDZPvIp`VzsRj%xE4ub#~jje)93SXN1B;Q(zV`zg3fT-fMe%Nh;fcR9^ zh6nd$(P8t$QCx1e=~`Xak6FP19x%grpEpiNje8^1*AyJ`*_3ytI}j@(Q1+sbpdncx z9$uah-phxwJwg!$i7Lcn&Qs#(hVxA-MHD^*PpWH#RRbiI4D=fS@%bNe6Vc38i@TRK2=D&6z=Z&>mP&wTci*1BnKN zSENu>@w7%h0ng^6ht;ol_~sVejC{IgN6e3)1_5PcSO7F7y@|%$DBqs=)HUJY(AlSS z-)DG^CV^x8P)zE)Ac?DI@)5M7pp4SB~8hrA%hM$p)9}A}tC0qhmj1 z#kJ$2$s$C<&Fl%2NI&4$x@HS?>&%N445@9-YRs+eJo*jNUzpSDXuwgKX)DO&4B$c_ z25^3wJ>-3*K}YN}w?Ic(h1)}6NXOO-#G}yE?3i!NAWR8c6{a_GZDh?p)0f6gFFTH} zX_)(DQ!6_$>Kl;B^H}=e+8shf5z^3rP*r($&8VJOK~{rf$UJ2g{kQrN2&F9*ktB=V@NdC3MrS@ zfu4-AgY2I(eo!Pmbfz?Wlns=ix4 zqYMPc8`W?zuXIh2kfC)yW5YMdGfhBQVLp~vgI)&LKt^l$4b9*^iGrend`Z-iw0SGgNa&rbYXVeOdUv0qaGn6s9zKwtk(%J=(}4gFWwe{k=V!t| z^Ry&l#E$4Fupj7D8UiA7`x0(fAw_3zPxO|WHlsP)b(%=DWBj5RrxwdEUg+!xJ@8|U zXxO!a44{k=3MwR^)zR5XswRB6v=HJ2r{qc5DiBJ>7^a_nCJM_iQPWeN1kUX{KyqK%;Ce+JoSf5 ziM+({Chc^^j|e$ZV(T7}#$+5t6p-W+?yTf1Dh9ML-eWvE}m+oWbY;mYCOelrPo+%0Y({8=?@So?^cDhLmlWRs39~8GE%U_(#TnNAj0H)rRE}KUAu;Q{#T2_zWnV0Ma?K;E;__uo8leMHBH!I|g#lwB-%l7lzq4dHV|Obfs*a0PE>faA*sPeO4UgcF&D=wJjVviqvtAuu}cd}TAFDbN{W%e(3-s*Ra~`a593LZBn3XuN`nuTQSNgD7j2f)rJgeO(Ei*zc*naI z@3BS3-C%(5(l+jBMPFpP!s$-jW{oQ(ET94%l@7Y=Q*xbEa)Mj0p|rPPveTJxwiQvM zb{R6$^)dSvoqpCz5PTKBGR8R=jPPf=R)-IzDun{LQ5Ovr)Kb?%M?M(nNv%2RqabM! z^mZOyXyJjOoTlHzT?dlhJv`rmQ7qR6zBH~K_6LV_p3MOd`^6J}^Ds?u_xEokqF1>v z0SS7n2d}kiZpZ`__%V~U#^D?{Ogltqy!9ij$N@}>XJL^&x{hi)H)L6j7jcy$IkHp_ zo*VH>u$n_(5D*|2S-DDSH&kRe#&t394?cvh)^MlT^D9B69QI;%)$3PINz|=8=Ac3T{eg7al z4Q@rYJ((1)v`&6bR<+1 z368m=kZnYT$d~h>hb4FsTzqp>@7hWGzL3sPcE=QNS z7X%=g{JRdUw#A95HIZl?m#Pg=uuMI00L9Vyv5AB{EWIPM5-N?k0nxSS#-JXmHbC`IDZG$wt%PKt0~wJ*y0cE_NN7dq=w+Mt zp4D05uaLos4M=}5d58%>{5R&l1D@*r{~sYMA)Cr3`wX+lR`v*$J&uueaLkZBLdi@+ zD3WYSMNy=zN-2q~5{VK;r22o(pmUtAd#-cu_xHc|@sQ6O=lyxV#`FDpzuvDw+r8P` zINGEm^4fN{+xy+!%)cFfC^A2v=T(?$?O@Xrbl7Y3Y|{I#cLqgBn_^oV9HI_+FGf~R z?YbZ3ef?)Q)ic(>g^t}p_QE-K2Wso$D27T3VcqO%pc9<^D#q@^R0$M<2abGkW7aKX zXm4k2KN$14srS-0@UF6JCl9>3f93R4R9^qp7db-rruFKc<}!Jf3PEqFp3|-Q(y&ME zB182PVTxg)c8;;(e;bO9Z=() zFN>L1wsx^sPpZ4^KR3Rs%wn@`5vO3|LI;_e72?W-IOLgAmz}XYx5TY2cZ|b0&WrS^ zDmd-xDgM&l7J7sYZgH{kOv&uoTP?}lhi4y87)r;*yZ%aU*`raKL)X* z+~N&1CmLK+S+q-)?;T^klV$6`hXCIJ&315hKxoU^8U@Mk9M+a=d^a4(CUol8)X>x> zTi^V{Y@ZM6*1tEjiqgAT;7Rwni51dR>65R%Iq786U5ktxf~0H*EoVA%O!V|FiaT7r z%RXeE=RbI(uAKz@I<3+8bLh^#fZZ&aaF5UDdj$QTR#HCu2x63M$=@g3?-uF$xrkv~ zOsv^v9$i%>(RcoBop}(h!^~yZ4(fOX>2mh#e%+LC&%*DAfqhj@Y__H1rbFRL4VHTY z!(_iPiAPK2xV+pXJaDz_%h}``6L)(Vu0lMQG6!Fs5pi&kH`e}kcuSF57QF5tH#-bEM_f8I9R}WjV3l@AA6aOges2OSpD$=0|VS|DHDUpsdS;Z^Dq35q>DK zf;HwpX*fn5)}cS;z8=v#h5a+7I1{I!3T3^-ndiy1|@vYUX7a$xE4;!L%%S zr#;F$CDS89E-;Dh88Z!@i&~I!mCer-FK_Oq82D;UEtP&9e8=YViO(=)std;xt!?^e z^Ov2%;}X5wyn}pGpFawb>N|dHDdoQPjVF5;?-XpBU~njmY3_7lNx03b*5RD?s=7SO zR7piagjx0a=W5yV5}C^5A!=Qdl9la?p>yr}pnUDKp|!_TS*SME9`!sC&y!_m{-)o^ zYuKE8^W^JcR!l&Ck0!`y*-J76?$cF@{!! zw5u;!xQ-dQT?+`Sik5*4kIMGXMpf|JCRYqTt1cJhrU_@;XBal$)nazL{Y~<{dKJ*! z2^UGpj!APCvWlg6L@>3e)my>Q!(s+IpYXCce0?!T|LP0pA^LV#;rB=44S4u?9F(pa zsn;?{hsf{qVLsAE9dSjDDdAKP`8rV@iBw!ekG@hE z**$8TH&d5w5HPsvCbFd~-Ie7K^^^+N(R_=q=`v#EnUe!ME3@Q9_L98a1L^k48qIkA z?ICkV0rOn7uZh&%ni=!Qhjgdj^^zpLeZKfP_#Io&A~oZaKA3L~?aP-P_d9pyKhN3i z{4-lV$(5ERB`iC;(3&LVHi=TcE{ntEo@Cz+FAfK9;aUZA5?AGu^6}<(3*V2Z)v<$Z zrwV15%=U|EyHFM^A?SWhTy>xlx9w)yWStV3Nm;IKp&$~$lHjZ$YA<`C2Vv-V{Q%|Z zcAux)WVlDp?z|}8pLHlpHX$O{-MijS;yZaqDZ^;QLext&B`0%1pO3sp6dq>vkyFw4 zk=D^v4A#UvY4a1RsVZLZclDil!FN+TExlpO$!i=gteujLA5~kNSjtis#UDE^B?cxxc}XR zT-@le!F2gci#A25RIFKz4TC%11GfqhZ8t9Ye99o!aVq}^N}s-^;}>IV-!NIKMPE58 z@=mW#iJ>No4MDBH@V1YZOXyf#Ip0a?;Yjubsgz%<>Ze!-&CZ&^UNo|s`pho_$1YL3WR0C zOcQo@}!)#?0uo3LW_6sc1c9M%zRel)RQ5z zKT^iV6jq6d-eE$$*AJl?P$F-9C^@q0TBjPHXL@(3mrZTjHI7a2e9x4)+N)6!2_6Dx z`nKI+vYBt;ZP4TT9I!nD@{0XRi_*I;$IhK2>=zEbjEoA`>a6M!s5j~!puf{e_NJ^` z*`4xIVP<) z+OIawPoN9i!9@;v&(1`FYf_-WI;Z6McewB1-F~mTEk4eUo!=@u~Vr|detD`D}l3#pb z64i6L#}^})3wiltaa5vUcq@zZaYmc#;-Ib!k%Ki&OZj}aNwV~>?NPf)e>+ECDs{iS zUd0(^{)fyy&Vx#$jJx96OST&BS0NoKd~cBHP%=4nd0f19OhHk9%06Bov*?3{`qevD zLz;bLg_&6g$xkpT4u^YAdoJvL$CGBGWMj=iZo13-`E?$bf~X*)_wem%r;QwUJuGQ{ z52@&?N-xcDthsLT@YPSD9F`janY=tsF}X)KA69-KRnVT#XLkQ*SmS%iVLsRm^%f1i zAC*f{7EY=AooRVWmENnLkAE6ZIq^o= z|!;Rz#eL zOV(tVP`MZeU-aA^Oh#H&5*8M74N)QV-YO%Op>eTHUg`%+|BHq@QM9>}V%A2B3<>XV z<`{k4CKz6n%2N63ZD$yQ&F`Vj2vmU5whLiRDyUIDY&)Y6Omw5p;^QzT?bZgrEg zUXWbrdsH_r*q(pq`RjFG4CF&_MY!*2tB9$Kq_s6i-O}rBq)JDgI_)!jGmkEsk@=Y* zPf;bM3MbcsvSrD|I_irjXr8>>Zbt*Lc=%SU)hUU7P!~4GJfz;^DmcLRLx}N-HDf#j zBt~X{saRf?%z#3iF6X>bp4^F_$Hm%&f*lNA<(0fJH#Ci6hi3Ztb{I<;bRIEjN>|RQ zdOoqI^^3mpeuoP&dmjmJ3o)W8wRzlGs+1OGpydJc+Z;@1{$$$TFMp2>!||7E=axRySgkzYZZBk|6Zr6UF_$sCr_t@ieOI7g z`nmVK3gx`Ly7U3Nz;fZcY@2m6IT!B3PjX+RIioh*Z$3U)dN?v7;C1HpvARRN-Z8J# zzI=J>#;d%uOd+XNeplo|~&`JGhrn}?Tva5advd9m!xlwq(*OCP$N`bjOk z`{^Yy!F!j)gctoq!)+})@{NBs3`fC^`qW83paMISWkr9Ua58;$V)#T(b!`}9d-Kfu zH#5bw!mi(5YzkI|d3~B7w+(2S_IlQxGx8#dLDOu!)tG{*Q2gg!DvQ<}CIM!0exkz*6!L!y=t#C`- zqqM)c_x4^*X64vwg(#37P%tWj=&4XmZ?dJp)7*WN^Lr%<%*c7)HI?$Uj5V2(eaUke)wR5(k^WZa1NrNN!!y%2L2Svg zW-P{co_B}rr{jjfTDO(Hx3}+2tFS}p+Zl)GbFo<*(SEgiEwA$41hSL-kf#Txmm)yEyB2yB~qt0Wp}sZDj(aof3w z!Np>ClY_<{l-sT*oL@fWXv*erDFjqkJUILzmn}oIP<0_PWNCkV#{^h~y0n`0i7;8m z?)3e$Z?t*A2@(fbZiHND1RFas`uLEtskil<3=@sitvaE;-H)JB5hOAD}WNhsV zi}|@pi-y%r;z}I-?wes1jxD=%q7OZL_;uH{K@y$Qg zxj_|nqP+D=Tzw^dP2Dw@ExoiyNxvJH-b$L!B3n4f;8}U%&21lxxU;19niV;Adzl(2 zHFSTR&2gpl>&Rn_G&m)^GpWhlM07OriXXFZjF`i2J-CnVm*j#pYrj*OTet8zaQo-v zh-UhFD?QeJRM$~F(aPOz7i;lh_l-R!DY}ayzeJ*sWs^q6hO}Gr)bM=Z*{8?>A0Lz0 zJdoyc2Sh6Z0Hxa9f*e(jq(y!jkGbrmZ3B<4K9z1sa~QuCL=%-<{;p6FL9%08yI9NX z-SV3dX-v0MCS_lo$xW~te@R&kQk)a|YExlcczf#ndug$9t0sfz2b?~eF57?y9u)}+ zd_PLDU{wF4;RuPOkx!`b_>+Q+y7sxKT~Na-J~2b~+gfCV>qNnU_j9By~oKBLYNf^(GUyJDt|mthbP^H~n^?aqr#} zM!zQ1yxyL)9lCT)rIaG;&EY2XBS~#SxnddPFAAy{U6v?68QZC4Bv;N`l5&uRE87IN zX7cm!y({6L4t_asr6}`)>o_rzB zAff(wC&*7vEtoQ+u&P@i$QH3RuUq1a0{mHm_%(m3WKPn}Kd5#aaI$Ef;rA$IK3Ad5 zJ99PTCS#mx;FwK#JHz#EkQQl{^iepo&e6?yFIGun$UPI_85#4?*wx4&(Xejv>f>WGpd1{B;1C!6%aW`A`S!en7QO6v{rqL-1Bq+n$1UE=hST4Zx%O6= zemYl@PLE%5j4VX+tRib>M_nij@AD>^r(o!!0rQp7L&d^Qr?Rh_z7mhKD-aE);NXk< zN!}izJD+&r@*>Bv=O-@D=~kqTiapyy@neY5>0;-nhn9}bz9cD|;vDj?GCN<`@BNhQ zT%STY|CFfxrV~FOQXB{s47`H)AbrxZcp0)BZFHRe9+xxqT=Z$3FQrT5$|EimoznLV z_?oxs#x{hX+o^NGTir7}SLlVX(k|^3wRw^4?h8fRw>}WJ=GbjGk{BARO>;G#O7BN; zB^#G$SE(A5ChguWS`Dpjp>?dOhbV5!8J&H2rN>ubA<#C3G?4PE-*$Tm@Zn?2ORR=f z%#UYiFUJ^+dv(?b*mxs)uRB~XtD4j7&n8i%@VYeKFk-}#ZO+DZIAszgA@LZN7 zA6&NsS54`s_WNquY{^7ae90+)We4Ngkq5ZD1@l#Fp5A?9vb($a2}5Lxtd?_|MZ_Dn z-lFst5-Sb5HcbWhhkFAfAtn# z=%nXib&eBKBB?#b_jk&$*eHV)_g0--kSVixZ~30&Vw~9?n`N85bqJM{TKfd^{rPg| zAN-i`vB}Mo%QQAhJAJR*Aa3@N=`O1uax8Q-hHq6X8Ez>~aweEPJlS1Ub#v|wY+TpX zAu7Q<%EtbiTKJ6M(9#}mv69JlE2E0V5Rb?gBCgb12COuGh`C9CShUT!>ow0_6U$fe zIu++LLoae5^uV!4&*X2*D0O6dd`RtKpgR*GqE(*(m$`Jp?CG{^-yJ8q2R;_Oc$y+j zVt6;?dZ+r1*C&=(Rmx(bccsjUE6x;-f3Hl`7v{gNp`IzhPw}gqzs+!VM~nWk+tB?x zmFw7q8^uI=HCz({232CnI4JfssU#ncY_(A14!bmQQFMn}tC;1mgQEJ8mvk;Bg-6mt zq5U1|Mil~Nx6=59l0Sy|yms-;y%_OE@9rb{qPw$aI|jsL=lKy|-XLh@(sm&32c8;B zH)NtQV&r;qOn<_t8{R29(#n_rQ^)0=ftR*Yw|doe3n$OT6g!HW6Y$zG=}R!Pu*Dj>CM@T^KNG( zrmb=vrVDcNjW!K#T9`4kzoe+;mq2;&puuSx^TWgMF9b8Evc)Dpj&4n_|CYoSbn+1i z$W2mo#~CB9sPvH7LED@yzHyE(Wmuj|@T3YV@_Gyi`Zv>4-1D1rExKj(c&p&h+i^sG za*)(m!G|%Mv%#u54BiRsLbnQaqJ`+9$ngZVQcmX zB#mB@Dv=#b<{HAf6n{_4l$lcFCD#_pT_!xbBBsi@j~73OR9h`yrj@hq+!SR)kykHq zHOxM!mPit4%2m}#X_+x|F<%`K72V3_I$S2b%t>62s2 zoLzC^v>$28mFZ9Of^AfilQ-XKlK4qI&|23MZ#Wt9wFJ@mbjy?0R|OL9YE#%L5KT=9 z(}H6cC)lUjKk`mhhkmk!MUK5}5$F#IdvqEs3A+c;Ix+gx&gHsP6H9C&)J+spsLCJl z=%lH%mZYP?s7cZC$E#d1%ZkBX$uz?IJAId%gEI%NUX1+NSfOjG+PG_O-pY)8N#y`V z0gHd6WxG{L{ZZvf-Q?+~kvAr1iaMKrT{~s9HId;UcL(dH?t+wHCt4V_pq7pTj_rhD)0vA z2ecp4y?fvr=NO4%#NfC+b+*IAoDW=o%y9p$4{nzn+l3t~IHa0S?f@JyVT<|9MhLg7 z#?~PcFkagHD|HH<{k-0BzlKBen7&mOfVVpB5z3NG-65d7oqyq~ksN6EnQf2Wf^`Zk zBzeNJH-9cAuPON^(95v=PO@O{wTqW-r*R#>wDk19${YT>WMsS3WWRPk(CWYShcX7J zENkNOys_%3OKHFY+#F%rzV^X1>m+UiRRMqs?^0TSsQ3!x^{*Crojx0;X9nYbuvIEj zjfyvcuP3&WP8_@i@j_f%tm+cmb%Z|U4J-L8cR#kI$x?G=y`|lkeIpN+&V7xks~l!- zxrNq=zjhx?;?>((0~)G_Nu&$sjy~@2`xy2pICpMf?t$Nf*16@}p^ovz-1B}H=Fa(X z#Dy1=9Uv_sF^dpYVacO0qQH4fHMe{8bo}Yi&k3=Po^iz2pAEGxZ#M1Yf7nZF1A{(4 z^xf~q$L~vLFwLqK zq2Oo$db`>1@ijw6Kgan{bv-@A+s?Y@tS+|fv+!s9GU2Ch7CoaVl@1U3=*xo$Es8F1#UMyTv56K+20DDA=6^M{(0m{|LqPqnb#3DVJ6r&#-Up> zm-I5Ybmg{YM|8VX%_O8FB<^myF=653toK7yJd|-9G_vn0osa_wog#l*QWuSJ}XUh-<=ma_j_}08h*SHalrJ@ z%&@Q+i|fSq1N-OnVHByizbCP(Fg*$xv-JNinvlHZLq17*qju><#n4ML2H7#j?~I=> zc5gD|up%iE8S>V+JPLCSddZR3d-l>}njL4#f}gi#3Kgr38Vo*}KYcDLU-;oO5>cB| zH?PtvQ@{h_uXri%Q*C_n(T?=R@&Fsj4X%mF9sG7?KhlciMrkew|1hqKV9aJIdh+5m z*pmEUfv3{_zGtza9e20hVYz&t^@;ev;x~3n2dl*DZ)D0nC&eVL?@3vno>TL1s}ejD z+Rban^YilNiE|J3Oh@c@^6JR|1#0vy4jQxWf4KYno4G26lH$_j#5eU1O2kuB108v2 zZ?sATx=XtBJ-D5uX2;bfNY^xC4!&v&vNPH$m~N z+`c_ceu?Wnta;ygpqRG=e^pcvKsl2pAO1Gs^0^Bc$z#Ur+t|A#C1Pr zyt4={6wx9L0i(;Tl&EgG_pJ|T@3ocT;6(^76#KVs&1xBlqyh3t&& zqH-2Hu7{O~cCi#yKYePFesl6+_v9HV!^4k$9_W2C@bpzc+3Q!`ea~M%>pd1`=Ng0v zjXEaaIsLgi|7W>-<8}$1q&IuDS(qR6fBrI`Gseci&dqsUde%!F(HWNXW_0KNgI_gF ze03&UYr78hDYRO>nLl@>(bEzvtNiQBBy2(Z(cL7K8e?4eT!W^_M>2|^n=4zZV1L?| zkcCWE_N6~<6qp(yJP-)bzyxR4INa|$(8?J0z(Q}fwv>r?Kq~k+U%#2prQ>BDW;;gr zq;?eUJ6kW7=)@f6^;2N{3u3EuljKci>oK-$4+qfc_wPI2cR**le@rOfsvbG!pLz58 z!-31!zF+RYm0jWOS9i<*=5oDtmy0!h($PcK0iLtNlgbiD&i7sN>?)H~dcBzbc6eJU zZ?FIB%h$x_z-1+O;4EI>e#JzJPtV?Ze+GQFf~Kbb>4?SI=hhaA31aYPL-|8DZ?XHueLZw0GRdLEGk!>?a#BTS;qXl{ z46B)6mq+k3cO>b?Dtgi2HJ_aia*S}?D>MmGCbBp|It41 z=X2c7kGRMbsY|}SrfJM%5xU+^l36nKwDi%fDnkMI`{8ZNU+FH8JQY#~k=Qq#2^wcq zK1FpR$}pm*cPVCuWwC{76macc7|HK zJ8$^5S>^nE7FKak^Nb1^ zop*^Vr6!`Aq*HbDPlj;t8QbcVh|jEytVH1oxHNbv|uKO`~PX8xWm5Uj1-i z_o;8%lI=5F+4`vRInNyO9I(y$m{DlbE8M{{X^L} zyN=eqoSkI-@K_ceJZeNQ@xmoAG)?^Dj~GK?$qMPv58k#fzp%8vcBoq%eh{c-SizI# z;>CM4P4l44RAVc7TE`F`H*2fvuuWcQ9 z=QGDtAFAAUwhg-Caca<4qHdx3YE*Krv@@-;Z4&G2(aDw{{Su9VLz2c}H9xg@U#mT4 z2?a&)oZ}>;im2pQHL48Yj?VK1QKjvo`e;V;=Igm4IPI&(7|pRb^9p;`n^lQ*HjCl# zqdpQ_>po3?&iV0e#G13rvi)`Dg`KkTckJTZ@*WgDh#7B5$cP{pxPZt0gu4^)7PW(RNfZxFntgv?;_bQ z+s(T;d}#{zs?3s2sOH$IO15U+0s5let>#XY!>$TcMt^J*Pp!TkW_n+F35U zl`NI}=*RxDo)fYbqWFaKG!$&gCNfUrq{Zs5e_yduJu`z>LJ#QP;17GA=O&xA&;8OBjhZh( zBd-UJPTmewlim{Q@u?yHL9oEXQ{Tu9Q{nE*XJww}4xgh;vnA!#96M|_>BmTRm$Jcp z%<=0xuESjYw2DE6XScC@ael&-aRB~ZEH7q(ZgWsFw|EB?pK?+BJ9xOVP>wfg*Nc4%C88y6-w(s8HEu>;*O%G!QnI&m+rJe*QUfP;VGb5;Jon1LW7vl?xCGB+7&m)gNO)6wAu;cZHB)Q4fo)FUn#@472f3|%1_4N?8) zvgD^{+SPMnjBjjfcFqwja8$nVKy}6{Fh}eN$y-u5T_l6FLWX7sr4scQ8=)m}U1t8H z-|33sVa$sfanzKoE}cJp&08~L`92jMZt~m3;A2?pDssv{J2@-p#9XYEV8UpwFy#rZ zFiV%`6x+xz^oL)v75rJd_f_ll%gQdAv|oN~-Tv!rT8(EAA5U<9oSFEi=_CD|){bWb z-YOS=h26QFoxslCn$LPnU&yjklU-|3ae=iqRfr<)nEGdOk27_{x2+yBiZ2aIet)*4 zZYDDLk<|O^fbHr06QA7o(~X_Im%tCbP9h)iA;0xS*Ouga^s26|iBGT1!~|UNqZDAi zVHkdP`Wa*!dA^Ts@VM5Q^QG`3p)4H>3-6tUfG_Unzm5a7Ik_KvS+q|)iKtriJLq|?y)*+ zQ~49enUGQz+vh<;zACnKmhck{*PWMi^ka-2!yRLp;jEA?n=3eXz#o3;l@BV`efxvd zHTW2{3wL6TW1LH7+cg2a2x$ozp(zXYY18k=L^&YG_J@SQu zg6l;zbt;d8Gl%#SeX*wZcMgwH-l)VW;rY@5)vNU4w~{aQDFX0&d4 zbh;Ee`jiStKM(C!)w#GSr9U4U!mmx*a7J2s@FVRf*x8#*QUNDKQlY3Z=u}l`EyIebS*!Blvls}Jy(O>1QjX0^0yKVeH zzFAhIb_56Ar)ZCTX%%n36vywg^*PlWU3!AVK6#hLyzJ4gYd=Y}blfR~)S5bT+G#Q; zD>8yrJI)F@4Z0Od&lSq`Zt{gn?W!4MA2GWwsBcR8fg8)ZB5Ia)tfUe?cxMolbdYaGtxo5 zdCEAF(_cpYUc5pv2h-hn{Uh7YMN$n>UmO)bGpKoiwS8R7gnwy=@KwzgkDqr#Lw~+& z?kr9|@Q%GtCeqO*RArato827mwP$K1gxon?g5G8$oNRYQ91Dh*EHp;A9iom;rMBdX z7y!?hRD6n1=KWf>+*BmuAwSAG^zvk#PNyO1-d(;|^lrlMF~#lCHkx`z9@!amf0Lun zhoA8-;W;TB{jFmLnnY#UG?=99*Ihv2iKh{2#qXhF^Xdo z+M7_*4EN@z|F!kA>dw7?I*lRAHLje-2r70ehb}+~lzhZA`UJ_LOH=-Bu~VQ|AhMJt zR)J5{XRXZs$6}{I??5asBu-CH;DZ29BYxXXWPMVcww-@js}!d{C-!S0UljRTK;2O} zOr1`7Or1`7RGm&_uS3*gK=PQnpYoV`oj_AbRJ~4lOubHd6uD?X@|b#^n6{`OOutkR zrn@Hy)7TS)>FEi=^hE_>ns|aRT|7bPHl8#fOdn4WrjaKY)5vqR&L{HqRw(sX+i=t{LxJvT3RWG`BvxvC{dURn~M8Q?rXHl+mKO;QGUXNU~4N2N8;1{SFU$f?ki ztW1jeTt@`z^-OuB%uM#9zko5FP_h3K$#Udhint;Wa6d&UDHk_{tG|P!qqnD&r<4?c^5PjSKb9lfRzfV z|0w~GldMd-9s$rS$0ooEX#9HwSkXA7h9e1pfs~C%07Mod3DhbEz5==^19Wo*$paDq zm6HdaaU}pb2_XbPBOW#ZkRvDw0Ql*F@K*GO!@L~5onR`f>_-X%7K2y*U}b%1G?4ml z*N08i^%#tXIPCQyNB+_Jut^E<57P#CL+b;{gCv1!&KL$lq=Ck~e`FtO4g%PRZrO~D zH>eTR@>UcW$v<=_Ye^gqN+Fr*?d<67<>c>(kaD*7k-}o?iW*>;is^a$-!2*-*H!<7 zTA04eSUg3I{0oc5MhzsViGV6F1T2ZtO@QM_9s>=I6;RI#vTJn}H4P!m#se!<$LWo% z8;j8^fWN|MBGBodtQlLW*3n-~4{dB-ufWYJKocn7SZl@>G$fyiKrApADk;Y!BO@;f zG`|HyV(q5H8~(7OHPJ4wvoS?Ik_^r2O2G8?Ou2!jOi|${fJL zFrCIXq_qSu3^mEhr0cK})9xILm8cQI7PiKU!n91^(87Q+`jTiKDFE%dA@V5B$tXZ2 zaruRsf{PQRIpvaVNN2+3R`(1}nQU<2ZM zti?m7)lSg=G7Ye|eIyNtKr5gvf+SQHcu`qk8wRW>FjPSj!Xpck0UmH{DV(mz>rnyE zmO`B@{v_b0x*BeNj(`P>#oiTM!vHa=%`nhrVAQiYx~LJHRsCbtH8^0hU(M{m zegkb>?OkI~VS0W1cQnA>9x!`fFD&IVr#!l49e z4&-|N2G1~kf3WZjHS%9kVvS9P={B@6N?;^I1`NiP3>n}Ug(n%PnFyf=9=4%6A^kh_ zK%Sl@yqzU5=jY!Ng7T`ayd9u1n6673qYF|(WB{3vU6l|S2;c$&o^U0EK#;?9e!`ZJ zm3?Uy3O1}Oe@&4!=!oe%wIPZ?0s9Pv`$$&`aPR^irDb>k7qTR-4SKS}iW5^l(@Qucr|BLF5502qEwScrn^X0`IBNO>UwVF{)Vf!GSgv-?mZI2!aH zQ)dm{u5@PGh*=B<{O3q7KU#DkAX!N$QmycX2Q|qGOV$w{bfYxvtp_!NLmspQtZ}_L zc?WuVc-v!{|EL~kD^mhefa$%qAsr!no!FcEdh5gkQdCR0jjR*Z(+zu_MA(3U(gTJc z2#Es_X}}5uc!@j`-~s`vY2C_%>#Y&b{zJ97!&&1$ghoGmPdJcNFXiQpfH`=3yZcGO zgAuOYUQ*K15-tEjxOurq_#y0l5ilo7H+Zm@!|zQ5)dFwjt&!qD#6g!ZG7)G@VtV~y z;U#M1|B6g2SdFo}F&zjuq%~+V0rm!P#fH=%DAH5~L*;;HoV^w`#|mrK6DU0FltGUC zyOcts3n2o9&0j#EFufW7Q%a%cAb?Wn{*c%(iW>R9qST5-gpnys*UAl13b`w)L$m=g@{;T?>H zFW3enQXGhYVZs-QJ?T1{gXs&3g)yj+f4)fU?G3p|VnGxN?8+eEtSXN>#meGtG^kG} zgoSv=aa7+^oYe&b-UYb33(CM;vr|a9c>#NdhX)of*O*9{_Nf~ZSQH4Zzf1y6M@;ip zY$oEt-#=UCn)4>6E9{1r2?B1+f$bfNx~2g@9=M}Ju@rR~fTNf=cG)^Ii|I{^wOrH) z4p-MT1*I@hE+;Ado3*Pu1_q1Joo_ej6efJl*m|?xn(@F0)sdIjHDe1HptY+lbvF<& zf)-~qmw{Hlk}^npANmI_6NpT}U*m>(A#Khzdpbc}mc`-n8Y^Zc=xifr9D-MjZ4a!+ zV?4B44QyNW7;Iq0*s~*fOvITNwPG0%7l`#=n%lIh_t?B0GIk2j~Qwn zLP&v!aj2+B0!iWM?c(Kz^7{C}fUXUWz+n&>tzhpa<>T+>=#D!4?S;Dqcq9Cjd|`eF z346F37WyOSUU^3(ZHO?^{t<1kd9seKVB$fs#RLxx|5{9lqz(2Sg`^D;wjB__igY4k zqy{VpMCkm5&|t&XdW69PO;o5Xj?kdx0A=9;OvehnT6H0FE-2Z zth&Ek8OpPXCC`{R;SK4!Ja8`nuuK84<9I+w^+xKsEC{j&_EA%;Ot}unFrms=>q3p- zaBPF#AA3054~VscyLoscBphAskxCAiTD@ZWt?npS^vb&eB8>@~{!ht+twrmR2M+~N zvE2V#@?a|;k~~D9AzFH50S_=BJu<-MBhvbpg#ZE7I7S0%iWQEmM;<)05Ea_~za`HK z^kQHG6I4%x^!z<}usO0GdGO#673u%KB@gzVhLj#6P!%IRz{MU22*FlBA&-m#uH+Di zrviC>0A`du!i$tsOJLs(pB27G2|1FIO!)u82TK52Y$n9_h%# zB@s3Pu16v~$i`2o*|7W^@drXWV7?NoAs!OH&-1H+)EK!TCL0GOH%PijugVPsaB?D_ zaEL-+G7j)bYb_%DWSswoDA)iA$O|!Oby7q6h=AWh`HUq5HMIoQnI#>lv!hKqelM!BH$`dSCo?oP)FMaz!i+Nf&$=I0Lh?y zlOP~44TMWT0zn;JkN_(l27;eR^beJDB@_+ij6}wwNjL(I0ED;i-x}jMYJ*f*A^@IX zLJLX(BMo34)j9gdQPA z9dV=y<sepU}uF!F1g20q52r5AfM|+4)*;q62wsvFdW0BSV4^Mm zgcR5&15zsf4a_8f7TEjQdUAn>n)oSM|IkudhZbwhHDa=_Kp-F{50D2Sc@dRz1qQyC zlLq71v;-zzLGTi<&?CeMgqEi20W%X#TYXg^f&U;*?mo)tkNj+mb`X=BMGzIRC2$>4 zKqX<}fF*uf);|=5^{9X?pnzVW600_dmVlcO9g8amxSb$CNe5}<1*jYZ_k=@W>K0&u ztaUi7hF1RjhQ#Wf*orU^0hI)j0o!z0PaN=k!9=HK{q^37y0^sE2_jJPHyHo}5DEn2 zDupic*NlZ2u>e2?tmO$^7sM;||Y9Mz`oLv*A zy2Ls#fy&&%(GdJxu79W@e@6{$u?4V#m^`l)34sEbfqN4OxIFQ00{_rH@K1$Ck&?FN zA`3P0??{L zRS13-*oLL!Pn5uZFQjY`VO_4shO9J@9fXY@$Wnj!=z%Sj>*))gm5HAxMifOHe~ZN$ z8V*CK$HfRUwoap{0<&a5L0m_qqj>Vcmm_78;tnYu4!q^D|NplM=??TuJ9 zTreO(Oi~!(gdot^#LEbSphk!hh`%Pp8jK(&0}QMHRMtm|07@Vr0Av6jgg?jw_LS?% z1Kvp-KmThZ@}Q}&rm3L;l$OMmh_(1Y1XvPE2m(TE%wbCMTd6e?bUrDFt>7 zV)Dy?3LQuZfCBgc0&B9C9k4y1sSiNK0Zm%~ zFSN~6wUMO@SGSMV0wEZ{ASSJhK&lW3o0xteSg=WSRv8*C2%!r0J0fKTDLWhVW+Giy zz}+~IumMO56et}8)T08N-MD)Rfw^SJ#-MAAPW)W5KPAFcBujt zSCP8EQQ4PA)&~bXTR_VdAY&Ym2EdMl0FDV9ZAVW*2pQITD50xv#D8BHaDzdh#3W}y z2_ysdj=Y{UtOY$NDrM`xkp^sFLP`S>NC;dzN&@D=iaa2@d_a&#%s&VO_N?nsVy)>2 zUA=H3N+AAhF|FQ{t>6O@rsF@L1z|`DR7PI26{1IomWsci1-7gLazRW+6$lChM*3vC^Z!Aqrr5}is# zuoa1l1XzK2q|6XuMarXUJtJE}p@Mx;u!1aajJvTA*enPL=U=Nk_*qk!LV@_rDAtr9 z0rD$0zF`u$ECS&XuOAQ;Ki}!EmxXH+LW#*$f+C$oNT`G6ZPR1^yF{u_s(_y?7?s2Geoe z{QUfp<)C4KQjV_P-dJrVRzo{i)Rzc5jIgz1E7f{y$1}k;m|?Td+OfqB;5#vSGaw)y z8H9mkpv^4udpy-9FmDEmmp6kR`R5jw6VU3(-w)Xx7E8fb;!rRQCngVuphXjCOyT9h zKsT5N^QT3xNu-7nlh*T{}z)TUq z)4bM_BD%%T+U27XJh8Y>OnwN;XNXo)pzraY)s(>05GY=12zmthrmJd7kg0|2!vbKj zRG_!7yR(OPpdY66vVf_8_P`Skx1qkPw(V0>#T6L66`FNnl{0q?bQXd0*1o*F_3$@91vt0$A?)ZjQd* ze%{UqNmH1oy%)mGQ5WXx1@riQ&4zO#22_KnRFTz%BSisu`HWgPo-p7zq1M3*ymS#D zU2pBVZNm#+b;Dpll9=oe6iCXV*bM?a)cANnU}6a1j$gZ5t~$I|#UCCFcSCd8*ZT+z zD2=%GB6ampz9xkfN=#24%o34|MJ*AZsRSNQ@%r&V@smFO!4lW%EfJRAO57a?FoAI5 z?m);Mhij^{KymKq))Qj91L^7==PFAHvI2n4*$z^k_HJIkYhm&O3cu2j39tl!YISR5 z;ddx6j@us4b7Jy7P%(K(Dxo7+Q8l43eGqX#pTNuyC|>3VdISgH{s$yNG732-1`voz z30V;(S>U=2N0flvV|-B}FgpZ_mmPv0`FH5FMsij`1bgE~$_){=Bs!K8APFip0v*gL z3na_{$1PmB!8X^{Q7ybo5h&4_B3L2dm<>|`u$_P%bCn+WFsB8SWaE)C^>;u7!(l)S zfv-Od{nBdoelYY8RgwRxiRr_DCVCPkFc*IhdtV+YMAHjs zxCr!GXQNOkF1pG^b{VC}0kw0Dg9s2K9zT*E2{Qh5l64q>MX9wo_!%s2m z`@>H#YyAC&_-~Ih@`rcA`8f^^*Zs+V{7J|aS!2ZsC9B|nLl7@n;d8GCO?VH>jRlQt1U;sg+RQ-S! z!w4P);M^^R6kp_n1Q_rmNvYez_rcs;ToFJroC1xMDbQoooCgRNk~)YPmH`etsNsD) zK)|t-YJdw$W>IVdggprB3Aq|AHxC#Xz#Nosh~{_L9eQMC^?EQb7lbQNaY$MY2)dR+ zKLXj9$cceZ0IJ;q|9aRXU>Y!FBU2<5{SZJgDNmXp($^tL>Skv1zXn~-hdl~wya5mP z8wpX>Bv(Dq^F=4Bz*$-6ZjY*_=Cj(+OKFJ;-$*jJSz69HaL<`N%Ldhmv4fO3yOv6J zDfP6Tt9|O}=6f!z`ocmcdJ*4> zy3T_yxMm0Q@*=+1-lu&XS?xv5YciR<2pOkrkL#`ChWI^t$`M(8Ej1NxJ@RE2MI_km zeys(sIeB}naM5|1aY+s3QE*s9os!=>efMKt*X)A_26pMb`YxPZITe1Sec=7+(dT1a z4gR@%y-C{z%Owk5r!79#^Y%9Mqc(P|)!y4^ERGP|B`@ogu)T;J*Eyyn9Fg%{V1U*sL-PKt~lCB1X`(U@_}Lzhow^*dWQ zHM*qA%fkzF_Xw~&8~$-txJvaD^z;FyrlX)!SJL5~o81C8(~$R+k9od&t#jQzMYH4V z!m-^kTV_olhfeqljoz<6b!qf<-sflTWr&t2nUXAvT3Nl0j>Af>GHK@OVZq$;@z=+m zw2$nFufH-=5%SGVVL9mXxgQTl9%wB-n%)y|nfoJiN1f$p-}Igv)9IF@BNz4x)Epa( z-I+GBliSPZn=*@+;z+%Ys}|!~1?cxr7rwsEZrn~LSI$<+l?lI1a%W`bs|DkfJH4%D zlMKDZg%~M?<=Z>TLm6Ak2V$k}4f_f%r!~?B zJ(4~)<74Z3PtDX;{_)6wHf6wxW^GFOjuE=}XN3U)icCLulPkZSQ58HVI#+GVJva{c zRX8_1V?qDPNB&M%=LsMA_7ST1M!2g+c#1(#FZq^FJvEf{pSW{d2Cu{i9v^G|Y7-E| z#692k)u#9jyqIa3CHiGQH@$=JjATP>13f&bhGd?t>4JpOhlpRJGn5P0?p}~@cr+rj zdFoAN;K|r&{a7W|m$y3}1q8-f2L$=MFdg+*n9_^d>-+NV$X4znHq?$X6f^A|vhzCZ z4Ia@$Tz0$Tvn$iH06r&R?V-!Yld6~iaJ@g;sOUEkXnkSid zTXyBQ&^L}%9&e_d*PFk0@L*eh5Orx#xPs-~k;SpfJ)F63jGQ82+___wr<)66g|0uO zNm|bMCi#$7zp~QUW;lXEd69$O(C_qP`$1F3z6PD3BVI1^JqJ(sbG(BGfmxjWPG{1@ z2HHC-bq-6PS0{~kGriacr8iAX(NBrn#XYOA9M}AoT1&Q%ES<(~lsbrv)==I)iqYtz z-+AfWW_kLP+A&oROh-WUjta>m(jf}Tqcg?Zw0whNgsQaVlZ)d=&f6a}5aD{k<+~%G z@|+R-8J6}qU-qa%UW(L|!l{slG_iLNf^Nv|Ip^lGb@#A+=-G144>%Aw@6F>I-07?9a0oiliSR@B^^qC<)w6{`qt0^er}U{yc~XQ`A@8O z-n-SSZc@jS^)^PJQQ+3Jb4`tx>J$A0%U!|&U#m6ft*c-bQixMa)so!*kF$3Glcagm zy{B#4wr$(CZEM=LZClgsp0;hrUGPC-`NK=s;Ogys<^@jX~EnO2cSdEFE}!UkVC}>SQCVRrzC~ZgPg$k z;m3M|v9(v>5wiva83|S_jCv(@8U^5+p&SE%w%zP&_eU<%_4{$HU28#V8#JXSEJ3Wk zaYe57P?OdI*D?{gngXREv;);kz>(%_b(#=?0mTgT2;c#7VwGVd8&})w%YMVg-T;B1 zD(d1__?7`Y0J!ufuXB>H+HDlLM&OJ-Gsa#GCYl%Qxw<`b>2h-3sc(rWP}}23fD;*$&u68o5KyAtsv;nf97t`mIZ9 zI$qra<5lA+4-Nve)*1O)Wae8dbI244*D2OWUD)#}cfDYrGG<^FU(&SUWvDUC2Wxz` zG49bIxN81eZX!@oRAXHAoC_nsy~_dnSpV$1rBS}j0j%R184vMfkLz&!I%|FO4?-DZ zf9aWIC&yqGiSUtM-(vjY%8j|K47EUT(^%`Yo`d4Z2W!|>;9>;zTOx5wc#7f=u)Fkx zaRb9|n6-;Y>cxCeeD1pmCKvX6gzf3QVH6M%r!XjZi@XNnl8UV zN-7bdUF!AsOSTML)f z(vD_EEQk2l&RtxM_=a#CBvX0Q^Zye-Wj*u2zzf&;LTliBWj z-NuThp6)>4#X|@8Y`erwuUf6U1+HV-<`jTZHDxOdR(d;(+p^$W*~V;Z(_kQxrFY;x zp`p>HMpJa5qZJmI*uc@D0o6E=gu>oogW$SJbHPN)kLL~4odEb3LQ4rt$)8cOmPm*AStJ~?1GVM3_)UUK7*a57dwwDS`WNf8C8SU! z(UVer=2^%QDwMg!hvG=VkA|87<#|lvTJcK+D)`}Tj72Kq?QuVd!p*YdV!oCIlL|!z zu4f~W52T7rb2LS*;svrD+kW0tLyZs?C<$eB{FbS)y2HN&*4>~<3ua){T@#5ur*Q#O z>3I=SrO~%g3JM-i7|ifRHyY9h3-xqT9_xPzbgpQuHX&Yl-9XM=eZGW@M*%0o?-Aw` zM+GHHWfl}Ew$Kx_bIjc_(Y6FeF|1LY z6Vw(R!l#wrN8uwJ#;99`*d*LhJ$X^VveiRsS%XdMDVkTfTgP`xpGlhjf<6Ru7+osb zOgd6#(iG!GvM5e%EZCZCszTBb*6Ni%OZkjj+{HSXIPt*fIMWk;{pIL>l0x87y`60d zSBpGx2?T!DBU-H@CD-S>=&W#2A^$SKlj}uh91E9i_LNGzAG$k#MUrXKa51WXFtIp$`RjShhI;L+Cey&L%yG)?|XM~Ll_6L>Rq>t``{fOn)J=x#+T_11l&I5I0F z1g*hV2cF260g1}cP(->aEF6X5KNKp4Mrz6RT#fK= zjV!xJ%mbjE`9Zn#1as~P;@IcI{*(vPE(4-n_z%S{Cx2}MxVVcA@=T~|UJUQY8Pr>D zAgYApnt2eOc)=)EL}cjTeM+sn6iT|<}9MceDn5eQ0`nJp0f2z;Yfhj{yhl%id# z!A}%W+25PMM8RX9TVo03BMZXpiGQ$ zc`iuUDQ%E%u)7m+LkT(FxayW!nU%~~-p523C=4_EgB{B`qP_{&%Es1O*xobl;AkP` zC67!2kmU&F!D6k&ZrfqayQjWFEY)tr>p2j&e0h7+PMiINir|`ap>&Jf z&WsWG5T*i>HR;qXy)r3{@#)71rChNhPDhKBI6Q!vx^o8&=AL2J?=)I+I!LcBj9?+5 zIWH6t+vd#CWy!FOxUr*1YVJ5Q_(AH-1`1tUUT>>AOKHHw!e%`j7x4ay=*8I_CPv+y$7vkUNI)(o?NCr0FylHMrA zOU6gT*ccRsE^8oJ#48d$1RZfNjSF+G)DB)Pc4g7NFZ&I{VzO14^{>^xHw#-#8cMvq z3Ma?xw#<)OHm=~5JQuFYRl8UoxC zJPyRhJ@>3T)>X>;{^QVT>o?FZ`QzHjxBKKwwi@kDR~jz)W0{@Qmt_#SJG{>qpl%_w z*=T1B9lUwgQrqLHHoni(Xib=T#)aLjuyVmUZ-WUce_-A8(R6485K!e32VzkXjo4MD zpuT2iH}cAvg%0)s#P%4Pz~yz@tVCy<(<+ON&17nYl^PXxJtBqesFUr)(SBaLvT$V* za+O&Lm6)-Uv!G6j{1RE6!ayz&tzWaf2oCTz(a{pU7FJ6~GI_K4j)0la14m}?-`n@+ zPLfkF373T1ab5c|@?fLv8H@W^GMkgCHXDPxyB+u8%%(nS9ZU|Xvh+H~uDkEVZ|6(~ zsUlKPrG_gdr7A1OmTkPLAA2I+&8DyP9Pn8m2dJ*~-tUYjB{*G1@2BZBR67(;@@^c3 zeK2q5^241IuK}BdV~?x*l7e@Rq|*=#m_{)sQMG1J_hV>wa;eQDY5vDY290T2h!8m8Khy>V*Ix8 zd>spki9%bv19;OR_x}C5HkSJ2^?7-%TD>t5I@@N&SFPD(!PedXIoMF_+t{hn*kzl| z>^GhE`8*HOzU65(Ha-^gqX`y_ zz)P%W8j{H7Njuct2C4YehAta1()pu{l}248Gt^6tP>-nmZt$$b0|(P$G4e=bnE0Dx zPu_|BYpFa>G${q?!o9LqA-(hHd!~{OM#hhZYvoK>74L4@66XZFpfSNTDYWT5m(C*V zQwNI!5v%0G|nA zQ^+j)_TaAV0OKWRSgdfyBaErqpc;Cc5R@oX@Fh%If`kGHd=+$_p z#$(_i4`>-~*QA-N)1WJP!9xA&W4DTzOHS94N&L;$%s%ewmLAt9rwjQ$9KLuo3oGI< z;@^T6$y zD#C1~rJYCzGH{BP^xAQ{g{rQeW*WC>A67T2xy7)e8xbla;>8=B?kY3wDRM$-Ew6c@ z-1eONyNHH{!qV%%QUi!plL*of=c9rqmnkRnCzH!s_Jl!s;@snT88d=XobqtxUk0Rv zhmxvYWVD++ibcPbE@>R+YTpXcUw)kB!~3{7p!4 znwZsl9&tqH8cM>pko7DExJTm^D@H4bb1j&2=OQA}w^<@zDG3`=aTv40_|&d&n2m|O zm~VHV{HtU%T5h6jnuhB`zC%mW)8pge<@l^E%3Q0pa)-@#Rl%3o z^4FX$&pQN!(NK{sT)eYhuNu7+?%Q)>v*w=UTtuZ=9x@0jstn>zpx!kiez3FXEaw3NK z$9&nhU#DxAbb-Hp9F886eSm^u(DJcixn=4N9#Z$9%my%YZ5>k1D`;RINbE<=0YX-A zhVm7{>ipCPJT&10)S*P|h9!a9%RnE@c%ew2-#06vWOcf4KOSs0+M0`ss;Y{NX|j@W zKh*Aj*X>*IVM<>%K7F@+d+sZ~mqDX*9!ZS-30%l+0RR8qXmPd*@+SmdbasI3TaXH~pQJJaCw|GMXVUJs?kr;hN}#Hp5<3(yGTQRBlbzpB0zZ9CxHZ?j28-x zRr^s9u6Z=x$NzvZ5N3c;z>ZnT|A|lkIAaPWG-TvIsBhIqVeQXqr%8?r-WNd6=n4PC zOH5$CHU&a9pPU1Vv{a?tkZ*Vy!Sa!*7rVmZYB|}jwdA_a`Lq&^HGHH@`dS<{pX=rL z`@szD`MA1+g>g^+$(GB~Wt>c|$h%z9rSbYF1lIa5oZHBmoAV>6MJ>N?Dr1*0C8^NL ziX-$5x(udV3d8V>lNL?jft1V>MsVPf>C7}K(D6jDlRh3M>D${z(*etml3?p05@40A z9q*d!n1id$OulO<{_8RqHR^Q*c&v%L06dTv%I`r1xaB8e&}CADb_2>MDW}k9C_C;6 zGh_}S#EKCJilMKn_F^QiEk6qpJU1Hk;V$L)@}0DD3!Gk1F!!Ivk+kM1DfRu5USPVy z+kM>mVphdtUVooy1LR)z@g#47Buo{b@f*^Dytfdy-@HoqB;yg#HN86Ws3i3gj|Y`8 zms+-?Iv=TVMY;84R<>O$W4!}56tbqp2JN`OO(N%wXgb=Eq;aOG-j_ltwK$^Z{(J=b z`w-0w{7~(A!38Fwp(!lq5NWNxcp}*gKjs}Z#ybEp=7bD*hRwK(T>lEXo4SCD+D z3SA{JrJzEf%%QD$7(1e=QuteiBXuC@toyj${$ zAA5Ou2QzhBDFz=P4106b!FicJhm?8pRaXO`_;_+5Ili7vLHR*d_k>%qN`!X%9FXJ) zM!^P=Tjiz>7D)7+zwC${@HXV~>(`zWf{zO$9&%jItIq2^lI}-@j{WO0wPSNcAIFH2%|Q>_o&AI1TD{%UIj?xQH|43v=vhx4hZYt!?yNmg6($B0JXeauvY_ofkyQu(w4{BJ-!ddud#mUBu;V zqYs&gihx}#7}i%5#WFF|us1Sq)uDZ2)qh4u0ms9OmZ#>Z*ozuJ!?q{r2FJ5`YYyYb zrll#GoALl8F!ls~IoDTsX)%(xPN#OcaN6w`vl^nM%XogQbve)E!}PR&oam3G(ellH|q!YYyzA|3+ z#N(BZTGG%bU|1^V3wZ@-uO@qq zbd}aQ5v$y|$j#<5|3gX92L#9OIUIV4cz@Y56IO!pcu|8(hb!v zajppPZ_b%f#>9>U=I}jOS-JVL(jA=)k%sNVX|K@RIis83otQ}=bT8Cnh6S#ADF`|# z0(ShlCiIx{)I4KFd3;J3kmd8`g1ktqE(l5`0PmTw$c_VLOc*d8Iy+Rw3M8X=z>lTu zG<|!JF29S5$S)-}>Y9(v4;=w9(Sng_=#N7N*828cH>B)tCU3 zEi7USC-1rH`}AmN9pHO6Fl4LaQ;S`r5ev9rt<<`Z3c6z47bq^}E!Br~cL8n^D7~ksmKC0%g#6^B}8)*)m6;w87DLsg9;tp5dJR z5hkpG4><)A?lKtckVn*4&nSp?xOCLzPUpR&)mG22Wp zY24K|jGF_!m63DBdS{qBh98i;!uEkLs6K1qgp58T0tSP+7;f+n9#&KzSo0PJ$4%!S z_s_Y2h9Gah`>r=eBnC`b8`}iF@6mRRxOm0h?{(F2eTW%h=3K%JHM|oTljD-Y5cQ9O zGbV6LipI|xLt{wc4l{k;5~IPTlg5P;)(=PSSp)x88UXtxus0^{W&B&o>4+pco!4nL zi((r7j?c5V#SqfO*7)xuw_nkp;opCzi2h-A{xu5zzo9XNsA!c$WtILxW9Yeku@icB z_D&v*^nY%8Vu}L7dTw81*^Dgge+nS~4_xDGSo-g**}ve7|1GWo$?%2d{S(*ta*h3O z(SrXDLilg71J=KCJN~_G*1s|||Gng&@mEVMf8|kpIlq7Hk>xK;|4+pDR|3`FUfI8x zc9y@eu0J(@Gx-1V5BNXOgnvhd{&i6PMY{YAIQTa-;s3|6_#3imJG=0O6#Ro-fTUsk%2oe&cHzs);qUAM`xj5}Pj=x8i1<6Z z@a3HMFLvSU^!Nkn{Ec0JWMuxb1p4bk{R3Y3PyF9MO-%oswEut?7{9#4|FQOmu>4y2 zpV)-2P|sjPIn zqY0ba4MaM_T5wk93ECTE!Nj^KAt76z7ilThdw^rz+~q{0QS;rEZLweyEN>3p3o3G2 zsL@3B$H^zN(4)!Qq-(01q~MEvu`viIZV+87Z!EmwMnPW%2l1;ZhuXo<*p}YTI(q`i zb$LZAMND3b+hMhzT+km-&E`D5^`;A@5gZy!kJ3^`JLk`vQ*IP%`ezoM!y0JD(zmHv zm|8J|*Q%mx5lHbMlr0 z7*x@w^LDD~T-G`^tId+@6j##_LmX7u=V8T2HnaW=+d#xvZlnk7V1P1U?mOL>fesHl z$hk-e`xbW%av|gB>ZsXP@Gz|!f_EVFu^q|qYVFUF`7U`M#!AOa-5F} zK)s8ZV4Y-~PNKU?IDQyc+z+mdk93+AI*c&MXoDJmu1M-O3OySCs7P6$W||LMV@RVb z(AuQL8~;)t-i^3QxlBy1;LL?N?w~W}Ai@i)&%iRB2ib7*ZJYu2ogOuOfy98&gNn*g zomDDOn_wN{z7C7GT1SEpZ8nx|fTm^~gM)@|6m(TUCa{BOyNqRn4@5|LcZ5WPyj-zd z-f2{1-J%_;v#+d<^XC$vT-_O6(X64lZe>NBBsKR>Jv3{696~CS+KEKRF13+u;XO7& zs>PIqtskk82kl5!DMj?lM{vR=5zXQQ z_RY%UD)kHl#|+i$jQf`o%!&C*Nd#1C6f4UIe_kDCeY*;Fsv8hl^D zb-vV(qRVRG27V6Cem&u+^)sPkj7?Eb`p}Ine6lDsrRLO)u!*+d7c!JyyzV$?5|JI_ zCsdK-)EG=_52pqt-l*khijt$y@YvwdIJzu1Sb6jvPR&SH53;46Q5QFQUQ_7m!Wqz; zUjJJTi*oR&rf1l)0bHxXgg9Qc28kAX*RYtFrJBm1H4;=cq{>n?Lpi79A<3i?t6&#g zDzpZ*#vJ;t8EvK+f;Y*iR6X|%;QMNb4toKMl`+-uq}Rjhk!sE)o$J7AOW`UWle;6} z??NJ*4~pRfwdStl=dSQ6>8Sne`WcG^(>Lh$U)hJ7n$z>VOJqai?(^3t)!ixFV!>r0 znZl=xxcN`n?sF*3YmrqOoL3-^O8bUX`(*s43cAHjEWdGu>rx)?Of^>B46@4aw)m~A z#{^gzF(gMGN0@Jw?9Q^meS#Sy+YfQ1Rzq^4*n%BO5vIvB`cE%VkT{HP_62Gr6yCz{ zHD*U_d6<-jO&&*Xj#3UhkJ_Z1BD`&V4HQHS=|rw(F-9q_=Ct)347>d${e8bhaXQES z7Xs@mfn@qC z735EA|M|}Rl{CTh7jFDV$NYECulN3!I*9Er$Lzng{5MO7Kk*+8^Y456@{|4d_5aWk z>tC*4EMK3Q^~)xK0j{Pt9jz7_V06G5)_wWA!E`~peZVdGFUz2+NUl`7> z$}g?+FNpIiOW@yy(AT&4yAb*+|GN%?{F)Z&-__68T=)M}KVQP-&*A+ybn`!XmNWlV z@}JO62G*}s;(wr<>|b-v{Lk_y*#pW8d2#iL!)$8e>cX3?J#&(F^vcv}I|xRCl_0KG z$Tp5T&R#;ihXn!@27y?RpMOn18Bqb?x~#fM<^1cfe2O19I!i#YvK5NWFO^CWsar*X ziX=^G)@`RLTfna0?>^gTY3W}*@l0IDpKrPA>8Dx^wj6W$U)`!>DwUj`2%kz~yEmbg zOHb~5Hf`Vp9j|9wR;q*Rd&l7M7Ryx|-(5Orx`X0s@;%+n)HoQ^fT+~;lG*9(LR>d1reMOi#eDsnkK3kH#`pK3R$Own7Oh?pZIH0rJ(sEF zqK2z)xG&hc-$V1$V@&b;+94S8zghanV|ryh)!q}Xa)f=nR=XMvcE?Fgw&%VX$j~Ci zV0)h>B3zzquC*^(7iIl~H|)LiKRLR>J%v{6PP1l zQfpD`WI_83Hy9lMqN>^mJ-0R^ASZrL{p*RM*;>UZor4+iX5f$mnap zs8c&5i$+^J8}b{Z@kdwGR0Ul@gFz)+%6x=8LN&C?90mbhHEi)*#S9=P5-Uivd~Fyi zireg-J_Jk(bpc5)^KXyQ(F7-wzTUcq*GID{S{`;+$8DcPxEM2(cb`@Dwr!5gAKOp+ z-Z$#UkC*#Iw3J4#2T^n0OREn{{={qT^=?269|tvXNQb45Ns5PLu4?6uzKr5eB<+&E z9W0|Z9fLm?fA;^J|2gg*=^5&2razogtp)13)oOMA!=@cHYAn`RsoWvj6Gq`js!Q>Z z%8C=Vr%$NRa2LBMcejd<)C^-(N_q-H@qN6kp>_mRm1&0EWRZ^*$7BQPtafE|TeZc) zd3g!0707#MLkg!(L)o~7K=u-$WuSw^%}>KSfl9ZDw|IMunor$6F>I?154}h)?}{15DAVC&C#IMPTVRz!MtHH_ z=)@vla?lSUAJxcNMfXJnO5+>d3Md;#v?oLv$jOm2tu+S;hVV zoJ)wq;lI3xGZKEM0MiCoEy5?v7jn!QbIh+t^1vc+joApW3DOxVzmci^2!yX1P#T_x z>x{DoMWlN`cAw{la2BAug!b8vYa`fFkXuML(_qdrvcBVvC!N*)W{-4>NOvaW8%m`& z^ps#k|5dFz8o|6XAWN@o5o8oO#4Aj`#PUcN6l8M1{Q}a8bVwtE{StoTeR@ zn|#_#sxje#W6!vagu-a$-PAR8b(ynfJMF3`BPJujdsEXqboi?o<-jwqeF$j~Cuhxk z^SABrqb4i9<*k^6Db2b^!I%vW{l&A;o7$tt%XRKqv7;7UpQZ7k#-=8YE)b#Ynjc25 zkDR%sww}X}Q-MZWDKFfl+mD^QH;-FuuyV*O{tkklyX)GsZR_g=B{8<#Ff&H?Wm+?s zj_#8;Wx8~k*EV1%jnJ60H1}HjHgK9pn8K1h+o&Ws7ZW$n7+OqR4JL0B1BW=gF)l8Z zJB0T8H-dWKKN3{sE+1opwh(!g_BA)8!iAT=oaR%=MA2t&~;uPNAe-919je9@gB*2>V z`{<-EQEbC$swGMTmKD~*Ntn5xdCVgT&l$fo(I$;s?U^P*5Ute5WL$}KeLHZAX$!~o z7G#uupznRIUOI&NhLj!;Lee`6nF+(nB^lBQRP49RKN3uuubc$Rdgh;k#tK}Ib+iz& z)sON_+$tuH_Bcc8k(owGn_6GYyXetW#!F2%mt=`Mhic)QN45B_^7)gX|AhHtf_eMF z>Yn<3-ySWD0-Ti0-(yGLTa*yFj^^g;%hI7@wXS4_^s5 zJu9S=Cjvzc!yjI>4uK`&vP>t4fLI4(_W7^$$lI^Je1JlTHkS*bHl;T}=Ut)oqz6Uq zA2hQvEz)jDMT>hLHqo@!5L}jX&dna_-_Jp!Z+BK+fH-k1SUnJk$zNCB1=wqTHfqLU zUm$z1&!?SE5!2#WwRRvvD<`aoj}nj9F4xt~T|v)-fNPk&#Sb9l#PH|=XND~cO^`+| z8}$|!_a;E z@btIWosUf(%&(lSRDWmMin;D#8~QDllk>S1*e*Af$z`W&)W3?u=Wevy0doJ1)f&uD zHOvm65;Q4KolJtW7k^^NvT)Ugl+XdIZnli+W)%H_Gkd}MCN8d4^8^K0z>G28RQyPm zQj=AncZwAJ@?MfMvnXx|AD*}q_mQ+yH-M)-5FR~tGk%ZB$Jbo}ACWvJZ^m4qjJ?Mh z_&1AZph&Svak0suDP1+XJ6h_HF6`x47IqQbZr^6#DL^KR$<;)p82>9@D8>dw4v?sC z*@T^=+s|-vanp8vCbP8CNTpu_LgXw-s#ma)4ZoT~h8BhzJ>1&i^AQ}%Hw2jKz zVr81G@$M%5?!HRZx17@^d6T1F-+g)G`R>g|rDFG7()p=Q5!Pp zXGFqTb}?f)=%-`_bzs>5*ouO(mggerA(1DbWmPR(1KYU6S|_uPeKMXd^i|S+)UN{&vf(E?aYAo+?lO|DTW$ntvf;?qj2HRclaNpWGbTq#l;(8!Q zOHNC^GFMw<`!t{E^geFd*u6MKuk&mCY!$}SmV856_t)o1MrAJaqKe#8cG_B8YUVam zw}nUs*GuYqrsOeK_EH80nb*A29TZrKE$;z+S!D0|1W4CaptVHc!%5Lzu}3AZkX}K} z?9&+u&NFtxu zpYEB?`vx)WQWlPpU)Y$ZE^m!naX1;9$(F<{Y$aCh5bMq$ZlSA4lJY&1%fC9v=%%T2 z6tz`zHCT$6Yzm)&3tvf@SRh_l3mop~0nBGvJAJ8gcfrHDHfp{&En*o`epxB2{DHyUX^nYCKK z&YE9)l+-YHv@^Naae_$K;C)$}$?hKTebu_?&o~QSx!YsVcJBZ6j`B5#_}=LWuqCe`|7%ISP=-9JF2s0ajZIo@Oq7N~?2IdjFGD04 zNDkkmaH+a24h(=G7;Vo`K>hhGLTe0TS#0u%o(EtywBn{_vN@fs+I*U)i_(8rqr_F1H@zxo<32mIr?)U#CZ+5eNZM8Zxyxt@)dgf-7Z-vXMcpm4pJf{{>O?;i4 zbYH6E(iXQNYdStLCDocfH~*kelbZGh$Hd-e$3=SziNmvAB6&?oU1n#YVFV#oXp|ueaW1 zxVYiwS3$nx;`~rcX*R!6W>leGtRltfv#b-Em-7hrsZ%SoNzr1KY7|VJA*)IRQ4j*w zAPkcawg{wz_NcH=EFjesLQ{BFvM>P%)MVC7LwPn5nTC#1SHLv;rgWn{1(?H)pTkIa z)fu0-J=VK84Me=APmj3~LK=vFM=W%ZLam5Pm7rYm>8nWZYOk0j6DPN-SD978we^DDLfApr+j{sBxH#I1Yxd%>v(j%Uy5O0&!8%} z2O2U=e=w~LvPRjP^lZIFq$Mb!m6MO(4aqUswZXmsdLS-%#lFC0hwp-K#5!v!IGmQQ zhwH<=QDJU>;&-|am4`k>IDt+0Ld8?iq~M5K$YPn&{4V6^NwIfS*KV&ax}8_n{l|;xGji!`q-Wyz{9;x&i2@Ey+4WSMj53{ zIdZR{F$1sk$;qX8*&kWl5b(3i4w5p+Dp%!XT`e$l##ihtTQMvbp~WwWOCYOb#^a{_ zp-uc2st#MTQImk~mJ*}}B;XZ+ies@$Y|uxJN({ zkg5Yx*o&?{nK}lf#|9{dFG`e8moOg#v(o(hj8+-18M25)IXHY!WyL;ONb2nJddDSE z{$)L0%5vZS+xF*K9o9s0it*EJ=x<+5`5lE)%1G?dl8XtnD2!GAQMc--;yuRMjHHd# zjad$~l~%(Gqg^TwAmtf3DyOI}QM}uIXQ3RPeg+sYnE49ig<)-0o>CeLj3c+tHPP4nH-;xYVe)vo*F zj>`g8s|Omj9+A2TQxzmJ4h)H;p-+R|qM~$GgT;$dSc;e z{$Yzt+k1qAH<3A?lpZaogH6O%%=LM9cdeT_=%p~dVzDN`*8e*O3rDTKp-fLty!4!E zuEIhcPgbkIuKwwSD}n8Vtr){Tc-sJvt3GE7WmmaKGv9F^&AY#AHf!j>F2g zqJpqfFYYqr;Rb8I{>bD{gbN(K6LP9%00o|r33bc5Izre4>otbESBzp3F0CamZjpH( zYn6+J6^9GH&)M#rUbk(xPhK1co%^1ozP{p@nxmvWKx?2F)xoY0%Ih3G=&imL46DLL zzjQd1JwHYHbY`L&a$ik@Xl&VxM73l*TI~p;Jw#79U5dvQw#ZIgr#AE3HOC}o$kVx- z?|>{-KhX!3DXR%j$fg_1qYzU%FhsH{QXGyaK|l$SlGrh2i8=fV(UM+1;j~?SQinyZ z3gi)PozmX3QhieU2fknEb59v_yV?(bGr@Xm46Ny)*VtpcXpuEIx#yGJQ3?m0zM^v) z+CY14wPa6bk{NluoWtz6Ybk@t*>dnAy2<>+?g)2TJUdiPCk2X$LLXq=WKfJD zBuH738@~auXV5HBE(tFo>mknb1bb!CD^i}2szqnY!pjg;(1qHBIGH=EfJ4G_)g0L^ z;6DNVk-RX&3zoSO{^l4MMTE|Xv_f_vHjKv`~XCfssGhu*$y=*^eq=(zrT+x7vJ&G zs2LJ5mk1nU(2zH$I>3G~z+PaM(N&+9#oX81ZxaM=M#}OKX^+wb1$h1tMo8#}{6_f( zH@Z1ctZrYMM51=p=G?k=tNe##0Vu-x;x^WL*AcW~DSIG(q0uO%8+cUPD0gKcch4;$ zY_St#gJ5Vpf@rQW1fF#Au=oHH&B?pw=>;d5WfN+bKs3vTzB_NJ;B|cba za58ru5J7ANc*L-iugs&6fsFTzoNd6h&x0{DK(#I(e0RVKh(o=l{svw?G6C*#AYd|7 zptLg^ZpJn9*SNuWN0aYYzLPkZmN;!^r^lm5t?Tu7j>pn??m42Y%XHtLRB)eoiyZKNN}+D)Cr>8#0pa?g z)?{*&ba;tV9}3~X{QNcmjTS?>({~KRgO)6bi|AI2uCzgspR`D^0QdkPH;rKC8Rkwq zI>k&en7Z(DJmtG_&=Vj7N$_TNCz>A*-TDegTni_yz*BbHI2`?*8;E>jrv4}iE>66B zUw{!|{!iY=QNF1G-oa6`4}To7oQ_X_J)YLruF{c%6|}n49hO*(50#;qp|0=8lWg1W z``Il3vqE*WZBXzg99nG&8p2~XA~}|dc9nOH>Obn<zfZ}qk%i{G7(Ja;XHlL@DBe1??cP#Zu1{^Yzw-NC?!WyNJu5+ zF5i#TvF^-1oIyHh8eqv|9NwP2$Y86q)LY);ItvZyn||zg+l{~EI_5*Q)ztc&Coe~T zw%6@{tIAUEdd_vpKU%S>o7UsiRpV`=>3=Ex$%nAS|Gl;+A|B;bW@orJwBM6Yvzj5I z9omS83=Kxfcf05K%$HqJmlTa-%w%=Z~!GPMQzJhaKM`AEbM#s?HV7DJ~ z%TswX#mh?{Z8Ud_gF z>`=1dK-bJVqPlXUrnbfPjWb9Jng(0=`w{Q-P!{i}D|g=Z*+z;JoXks@Vc-Wj}PJGWm;|MN(@kUzi z$q@FPv7bf;fRThZAroIF5h&!R4GvOi_80U4@8I>M)CPUu_Q3mD^r%)hzPS=p-aYF3 z$}2mN73>8!LF&f)ar$caZH4h)GU$rmyI6Jeb!GKt4GC+)5TK8JF}py?cvX5#OQgCn zz*6-ZC?k-);d{hg=1@7r=`@B7**A|To|$@;^NpSBO)rmCRmmJ|AlF@WUTX__dh5R| zqfH<2YT8Ug`L4$jGT+#yGlDB|zgx6jPo52xq*OdOhhESdZ~N+8mh|zjB5z*@{))c0 z^yY1!%9p6L`=&FE{u&h(0oU(&Do`v*#wpTGZZ1=S;ZZH>+?tRtZYzB$M*`~XS)pmS zw-C|?v!K5hpE0V~Fj}rqiQHKZJ$Da>%oLeV2^X0Kp@m+`mL)r*#S%WNHF({d!oLq7 zkUSBm1|!`TwIM$~$dvxABQ4Mib_9o#Hl`ag3~g3GT_UIj%j@t{aZ^wSbo2sxl# zXu)F9J#6)QxPq47QeWWJ&psG;WqzXY3p(ho4qXV)6+ynR#~whYGfPd#zc!J4Z&MHK z-!t5hTpt)*Q!&Q4RD2rI$*^j|x`i9TTr2HT(5+l8l9{hNt;|XwCs-v$O0R+L(FF?c z)}$KY3>W|Q&C>=w4*1}}-4gXxqp@F~F$lU61~9;kW7HcDy!2&0;G5MZ_iT8#R0l_0 zBeVc2H+p4KkC6Yjkpcf+1aarLmFXUXXJPN@TIv!XB?E%*o6|Myc4Lr z6XWk>V|kA2 zuU*~FC&)XQqD;nCs>b`<&jZ~zqaigQP`fY&Fcm@#Gu8`!M|tjL2$Nz^GlC1y(wb44 zyIQ#N&tvAKua&ng)Oz!a?mEYx0F{|wSO1w$`KK55|2x1dN+n=# zZ*3xEXKm*wVq<4%@n3K%e~ik$I2C0(6xJ>*}}f5bNa;Y9i`i1Q0O{R2Pz4~|nh^5d5M^za?$RF7%60dIc%0^pL8 zJ)xw358A zDzWHQOSz~ra#ZxQCf=Kgv$)ti-~#||;OeOGspGqe7ZdwRQjW_EXG{EE9;=X%r ztT@|p$~5(IOSVL}(CgFfZ&~zDalsKE-&BY?82)3IGXRkue-JJHfl2xUVDwu@{s|xa z&${{-@`d5ItbgM!0|IP-JY>Kg1Cpk`_Sk<5|NYgSf52Yof%;2-g1!9e@qfU*0Fga^ z#=QVu5!}C{et$jfx2F6J_4_w%_&-sW{YAt5choP_D~H?PUOIkJQoy2TuwA{F4TFVM6DjR{Ax1WwFjo9&4UutO(;isjyl4K`mI3Uc6 z5FFg4<*mAPlY`O)pZ37jLChWOZIO{u}5HO%c!{xtPK^uHLBJ?tqY1)A0?)=2Oy$Fvb!aBT4WX=M{HX#l_EPiRqTn zw?ZAEbQGbMrRM^OE3! zc7x{sO2>~B{-jO_vDi~`a$n3bVwvv#E|p$j@}G>;SCH86K&3y1>AwP<6Z-FB3xK4l zz`uVXwg3oX{|^y%P=7(#y$VDFYx?u+Rc-7y#j)2^p!(}y?*8c=6#Xw@fj_1EEhp12 zy|UlanSSZ>(!3Jx;V}OaSO;R{fM+HkT`7?N^tH@iFm=C|V`K)R<$&`)BQwiyXQ1XV zQ2OT=UJe*-@ay{mJOgV20QK8mpUFh~S`!m+j(!!VZ)UKxF=3 zr|I8?e*U_?{10=@f6#aT421W89E$){@%Rs75tv`c!e6u~ex>|A$bX-e7+GE?x8J9w z*HQ4l&P!>D;C6}v$X+L|FJd4ifge7|eB@WZ{7wRe2PMlZ_rnYEqpp{*JcuwgNIQvy zH(0#hTYN&9U}f&umSCjAiW)r>XtM5{!t6~?$5ytJCtMuYa3f-8OT**Er241jn+Plb zkrJ7xH^Js6&m922i}B=L!;C*nnw1>G%}ucW^v}VcXc#~9VxKG6-;6Dq@@r93dtTl; zEeEt{@1F9UHE0br*?SD%-n!i-I;ZIX?&?22lfFNp(Y^gXcJ|1BKdJF?_r=-O><7M* zXv2b8Wljo@)4aY%9ZsW7r51rqd$DIj(-AVdTSL=E`uI(Bse#3?az6uZi<*NgU5)=z zWWQA2NnA@t{hTD=$JAPGy9Z{Jc4?7V3gy8#y|d~-VpY@-+u&){V6LY$!PEGc{tE4a z&Cwmu6hdMdsn7WeQD&`Ki1(EGDuP1w%(wA7&{jYC+xV$_YR5CEmEL3^48?tGw=s#| z#nZajBv?+sYvrHj2}6;y$9uFi(iAFrK}a(aE>1kA-*_I;IO6j0%GK8ifeiR4oP01r z$cM+%ut!@OZ1eR|LNZp=CR*O`NWWH7;D_ipc|COv$*9jZKPF=*76i>InL2AR!>7 zC>*L=a~kCiu9ki2i4Mj4{?qI0z@idgZk*#Ikq%4E zSkLyr+~Ra{kscGweL|6YP)5G5p$i|c|81ZXojdN6P1JbHp?zcX!|n=ib5Y&ICkI(o zDM?YG8e&ZMWNRggkpbS9@zbSEDt9qcm+z$Psi>RP!tuszCun`-rzdM{&i;d`1vlxR6 zCD7hm&zqW1iy;A0%W`*r18Tii$!`^4VX%uxC>`qI&JrHa5bXX@YvHvS03(T+v5WBHlFczczu(RpOy*(E+H|) z`1#zW1NITNrv@Y2r>mZDQWK&<)Gz}iv9<_g-y5xBbLtL6R!XPrqRu9Fthrv|M1l&7 zq?19A2thFvMC{uw!F8#c^3S|07q|Kfp7}D47QUvEc%-`P61qeWtFY1|uesWzDGWep z`>ah3vOsx4cMy~W3+9=~-skM!DhSRa)kiOl?H7ab#JL+7A7oIh91)93YdnESu#FbU zC4L;Qq>oYMn%pn4vS+3N^+bQA5?@@cf5qD0P1wfs(=fEM>Lb;dR3Z8G_PqWb&(D7F zK2bDWB$^G`?`nI~E@HI%mj(nM$+KN)2WW%9+NSa7lO;#F8+mz*kTBsL;O3LG32kz#Pi5h%SgeSe78IdPUedMv%d=Z>lLt=R3hk4sbyy6w&gV16Z_ zwj(qjJY`Q|8*WlUvN1Oz)KM5|%mxxHRYg6ebqQ8g0~>_0&y*7|t=O{;m(~`-f|hY9 zl8j&m89q#K3OhY<370bQt?S-Y)D6u)MFI4{anU&6V|SYEP({f9Sw&tVmaaa-WeRw`s%+9nJkZ$R6rFLBepNv)xU*?YH} z+$qnRRnf$)DlPa);ZjK8TS?TG1^pyf#h^avbJGZ$;XpBuL2h$7Q(A^QfugkD9xzP$ z^r1cVLkX{N6qw}bz^sDse&M&6Mbe$9^S)x2sO5ZHOaigbQJY{Pq~5_-&qv&igCI@a zJ1TvNf^EaS$-L=0_o(E4r!P(}91hvRic$Q!dtT38-JAq8aj`}YI1RFnkzH8jw2-05 zRa;jKQkEvipYZv{f9MqR_6@SMLS%fUV@q?k!&BZi(T?OEukB8kmBjAFZorIMKeo44 z5guT+v8{|P(ly49w^W;LRH?{;9l#` z%HrRT_1Cz|VUxQgSV_}MR<8?#Kx@CoW;gq3N|<4N$BxgjrBlU3?|yS=p=yJ1$xcn( z*J_?Zr9; z_(6<#*bLubV*U*?mhjy%ShmA`-5*G{&H8?!AVvfnfKT^IwkzsZ+tLpux(3>HB#B=g zg#gQ-{)0Is$zcvxHMs?<4Hd!3?i}xnQIhOgAeS<5Y?cdhTO;T$Yc5?ZF4TvjqDz0dZ2i81@mIB+kU`eO!Hi1v7-{yeDBP-O(a zk}*cdo~m@dRNg>UguZF93?CLYv%APe$zGv+02_ocv>o=_sqAOS$+^Zq1LFa5j=AKUzH>Z7+#3eR2tPuyP=T+RvEtMvf6H|2SA{JF2XdU9zP% zx_)48Dh`XkB7_%1JD9u$O$c|7VS+5@@XVJm3#YWKdUjV9WBdaKuS`u@3K=g9Zz&ra zjS7ydJ0Db-DWAPXHDS(Oe{Pjknm)BzFxTwjhpXROX)=$S1iWWOnu9Vap17Ufx(I#6 zr9>MZ;2TTX5-q%4+-Yq!JBsT>r&cF*UUf-4(^|qBr{#ObeUBksjuZGxAxU-xD(g9V zF|6ph_Nztvyi?Nbi%-<&Q&lP}1Ra*ltaS@J6GH??{WEKLo?L*wJJl*<)X_FPJa(RI zXPv9MMB3j$pH(TY)5}=zXJxb1>b{? z2o{C_bjxtdP)qBX`iHuD*gH?vRQvRea6(n+{Qm9b`%GxV21pkNn+^RFj8bUqs)Z)1 zWk46m*w06zCUTv;^h03feOp0R#dQUmqx%bI+lmXsQdB=kAVkd zaPhn~HhH$$qEB#TMot!}?QC{8Q#`sC7D~y(;umBUhH6uCnabH0R)3@N1bqVKbDct=$+Kl^-BpLz zOKR2qSj+^LmxN)|%wCTuc6Bqj|HOarXK9*$&wn8Nulf)Ek(2;vRR8CW17HZ&?-~-n z4DVM{o#_`H0MNV#2FcR_m~rS?fMz%Fc)j=f{?(oLD;*d~_BYf1m$}abqy_lhEPuWK zyV*|zH0OZ^KhV5q0t){y11(MF*I+rIA449DJs5$(fpoxnS%6`Aj6jJ3Mxavy=yv#(j~?iX0Lo?q%h5yq zy7#L+z&e3q$FJoWfzFJ-Iv-v?_3y^@A0yy@a6bGy9smEp>i|?Z{!hFPzwu=J*%$g} zhKS$24zx5(G(fM$-`ozsILTKYh5yBwUYrc+q}V;>HPXCtLwM+m^PSS3T!CK&5mcW0 ztFHj^9MoI=I0=Xl0-TV;z)Xk={0BvD75%yT({@R8AU0=m&QFJ&$G-AFH-KWf1Z!qHJ%dL4r0 zpR7*3TAn%``*TW|QMqrAr}9czos_RjHdSxBB+e!a#+8rj6`XH&J#&>>YEZ<}1P#Eagg-V6Fx z!CWr&jbJ&h`RpBgh|`Prjr!by(pGbtok*@67nN%a$h{ZwlDKEy_m+3FanW(YahgG` z16Z9&kHL0Q4Dpw@ANEkVC>Pc@2xD03Te#_-MshtKN2(kLnNCuNE)H`r z>9UPRA}2O-@+UUxW5+J;S&sGdz`pY`f*FBxjSNH)`3A!}JMzFdj{h~WJ8&{VaGcx1 z@u+89`Z$_Rqj7bIsbD8r0_x4AV`e~N7vbAseNykM_~>z2!2wYKDK)7qk8EDHI#FD1 zg*ufI&Bg#;W$_)tU4eX5M!$j$BccZRO#evUk4N5;1oYhGMUts4qI#7t!V(39)mzB* z3j6%1s-j}f!Yx<#PUy`muKACe&vu?sFCIf78d#>7=$LGuTZx|e*@V)(>*Y zL||hyMM~nD>iA`YAPF_e=bATzqb=haD&z-cmqeR28pQY3^0-JRT80iQloF1V9K_~k z2GdEE^3+dk=m)l9Gc-NyMPFhSNQKCnRM(cEJPWLd7~@qb84=PSzzh1xW0dfH^lz!) zOB3|Am-9j{r7UpHpLn8Pir{2rRG}72BKBclwmFFQl<%g3V0Uu}KG!9FYS6l_Nes3Z zKP}J52fwI%syw%OR=PJMkr$WQjP1L#osJI>8fHoE$eyrAJ}B(3qFc7W#a5czktaUVg1Bb{Q>#tpI0(at=aUK1yyG)U&eC~&*#8V!c9FRWOH6|O`=5ItRX&= zfRs<)!*;U)<%Ct_NJ|{Ub-X;mH;m}dNN8=l#%u=+X?d;F)h@~-1z&%5t}NreGw_b- z*S>BqV!=9hE8#54k}HtnF9e^-HoA1qEWG-_kQA0+ctqghafr|ibC+Xx?OC9-H8Or< zFWhHm7MMDKT}a=AaGqy(itTOgCjTtOJ3Vs6&uwn!(&f5%NGYRjIcrA5r-pp0N5mLK+2RIS6{Z&WuFVjS%P6=&)#0zZ5X z@8ebJvUGqL16(H0EbQ1vxAJ!HOztAMZTFY7rF(udn?SCB90e&QSiC#u&4R~3b1OAR zouInShszI0I{Rs**k2J@1znW`qHG;8A^78lh;4sq)Tm}B z9K?GRP#mspFTG9o>(r48i$0%gYrThEpHW(}O%Ch}+B;F0f@^U^;cA+SQCn{&S8Gc@ zSm8&@e#PN|tjzrB2g`mI7XJbU?{VpAp*6a=!{Ix-jU4Xb5)~ZV$**%RONp@rEsiN} zAJ`*q6MX!6eOm;CcCc;rT>3CnFx#;qn47f{bGKXD8#JsJvHL$+N#OTme$l%?znv zb1uef<9Hqg7)L|#^rZUB9$*dpHtA(-&D0p05Mau`;Zv_5o4ML-|lN3 zZ3%T+hyTD^XGA$PaR^krnP?`Z_-}P>3*OaH;KJLuN-L8J4O%ZejTrr%aA^9b-j#&M z3Iz}QZcp^MTL>VNL^#yZxlM+8ABNuL&gP*#6?2vpQ?5Fdc_;9c_Gc+dPX^eqiER2dFb#1X=@v=7-3(U+~G{yPe{13Cjc_@dGRfxDto8T&tU9BR4s=ox|^v z&Y4w^76k0}-@ntaFAj_1Jg*83G=D#@crpXUn$9?$)nl`sjp!J&^E7yQjPtHFIm>ZD zUa;?O+p0DK1>R4@##4KX`qZSU!A3UyY+e{G-Kc49p5itn9aeMN)oFO#!fd_E49K4j3yWKZQVInHWSK#a4|8=Uv9b-ZNf>jW4G$-1A;T+C18icQ-)p$;}b& z827N~W@BiJ*&CF}IYv!C&M%j*h4*D~yroIXy|sP*&bwiV&x>Y z{yKEk142qOWsSO5a9VBLxe^f948~KUeOT-51ixVImp-ZOvl#+e2$K;M6tMj<1@TTT1+nb9Mww>t+ z^%tEUDgFa~_4{d@XOl9Pw4XKaCF#~q$*LYhK%P^{(9p;x_P;7ZoV%`GUw5b(oK@2& zN@iC01)9eO4aL=rt|ZJdB*@hhFU+0R*Uf%AeR%`7H)cHP)NjphAC(tM_4B(e3-};t zomjgB+R}!B68}w1gWScQi0(@Q}O3>lMKqfG(!78Atg0t3PoOKHaBVvYfCwmIL1J*~zc_64_iQHZNCS`WfH zpA2Dfv>#V|_W*~R-%=K)gv|KV#sjjSFkvJ#7<5VtX|6Lqq#joDjo$G6yeg*2flHOW z-1lN^()>UJy5>luRyMV5Qe#VRpKAc|X8GG2YYV6Hwn=kFrcSeAWR3o4KFNm7r#85K zzKAjd(_Na5g{%EX;>>_ez1}U#amWCzj1;sn&-HE3LhN~%Q!}7e)A01NF9yjy1@T0| zee|k^;!yYB9^LB$=m|)x^ov%y1T$W;y{C3&Dj_G%<8uwZOkZ*Ib1g z1veg3thzM$J!9_##}I(td*o;?##MshPZ33LZz#fS+a3x_Q`{?3ig0{H7~3d}D<(A0 z=72O5$Sk8`dC#LEZm(-jn;KiiRBj^4hW2Ek|)*DRpr%zocJYi<>yP1P!9AeS2G;qjJdEUDankNZL5^WaFHaR^{< zhX39{Pr1bEg(ZhFw#ng=c`yT{{V|?f(_Z%LXC8@;_uZ*+U z%6zq&jsYA)^=Wu~%Vv1^r)wh3c+>{y(_ONQ3P|4mOOkE}_%Xuxhs+6vsgq|Qh;{-d zp)X&;jP@fqi&#ixbUq}Qxe8k;ZIs$x*{-i)=r{RR-Q?i)R7NKu;BNpz3l2w0p?n%? zTftR=vMrKoRnN0myT zyAWKQeKHbk(OTAN?(33h*^UczI8uJ#;-q}w2%-b{6-?)Jt$Pcf%y$H`OL9i#TP5WL zch%H8WqEhiKqm>KE?^P9n|qJ6P%vjY%9QRj4T(LPWs(cf#mL zD_1ZxUdgG9JmMcf(@M8NK@;C02ud;S11kPNy0{A;xo3RUJ2!1HtrFz<)2||YS*twU zGe!$+@WU6foRzMxi+5jP4lt79rF!h)Rz%m%4GXa{+p+o%xSvkW$wM#)*Cm2&oJ6pA z6fm&Vv@rx_@W2OCLnXNQW1XV26e-}7!tyhQJ#Le7LBWFvRQ!O;Ap`O@!BNLrZcR>T zXV;f9RXa=mUFf5FCoJ7gOT5TWdzbX{2?HXkF%h5`TdKD8$Jbt-h;Zb{3-2T&x*fR5 z4>J*}rfDMzUfLEsB$pElJV|TBPU2|CCj&<>T$V++UN+>fS8#!3~ z5;%MX@2PEqLpKVB!-z5?uO&bHCGWQjbIvFSC+k(`xFb|g9KlWj8|~Ojx8Z(T04CdU zJlfOTERT~B@hXD=KbarW)Zfs_m7l8Ja2uzN3%T!t(mS4SSnagl)`x<-%CIS`Jd;%@ zx9%_pQQL$lvs;x(jxU@DK_6Tyld^P&M(H=@oYFXOYWkOwiSRdPbL)+b`%Ti!P*dKl zXE*YRLzPC|`Rq#7-T0;M5go9rQNS=JjuR1&?MIcbYg6d&Na<~|w>)B$mz(+Aaq@35 z_ij~H^R*Z)bEXfB>Km1Ye>izJxA$|SN@LG(B*LsWLJ(~{0iLe#hVoQEEUh~V@a3EuRRO$!Jg$9kmd zOhH1eSzVj_Z^+G&KET=s%n%uW+#&@O9nKerqK78Uw&UrjS0Z)iVicE+=VIkVao+1E|CzhqHxMOzo)5 z7eqO`+ytRx%C)JCclFdRX9hvceHz)e@2vE($#Tjxa@SaM-U_q@8ii4;;?LT7A*Nc| zV-D(g-~z1JiS7{Ji6;tql0!Q? z79`NJS~Tb1Uh?+2>RfZPDvq96w4ar~qlbC$?bz5nL=1Nsyn^MA?hVmcpxnIGJ}oBD za)_w#h7V1F?Jys-k@Zp^AIs3)6eC<|d89kn*mczaw79JMqz<~785{@-1u&WJ~BBkgAf`2w!#Lw-7FDnqFEK&7OD=!LbB{~Q@m_Q zYY?)13o=~%Mh-{26+>$YPKT~F2;}t2X+K>S{)?imo_$;KgfNi`GT-!b`ljm^?W)P+ z_Jsf_`e=W9Z+odqv2z)7pHBB$kusrbl!yi4gEgfQ_*0|{z7NipNfCXjr7MTZjSDy% z93}eY2Xe`)k_*)V&X$kWryj?T<6^3EdhILr(UP0Y->U0oP7Tr(CGY9VL4tJqNSf-3 zH8S6j4K)?f*(^r9Ljvd5K!NR;kEl#auhy2juJUcW{j@Rw&+jc$2Uz_10!k6 zUeq~9v8odSgCOVmXDh#Zva@w~{|s4hsFUqY8Y;J~c_h!^D|M=vx^9+YBTTnON8$`Y zca^}Gio@16o>xdG&oa5LA&IcvR`&>UqIsLAm*76R~#y>)qzDrJbVy=gL zWS*#R)`CCQ(=>JN7t{`#0kbrPHp~MHxI$s=W#(8pqQY@=%0M+p=gX!a&_-ZqVgNx8 z_IvKc&RY8Vz5*@Ktue43`4h*;%q?4xD%)e1~1f<%?84(Ex|7L(u(Et7c(5>dd9u zNeycewHx!6;@KBDl^RROXq{4OID})mN6%1ReiX)Muw^lAhRYY5X65KBP2G6QiO6GI zx4}Ho&uysbn=jAQ#SL(_?m#A{+ymIT`aP!>QVXhe>D>B9NYbHdq;Q5ztjmqq+>fC?IL2`};RMv$1tSUwc6dBoPRKzT{i!A##8 zF|wBbya=x4)w*L0PC;|GN>^e%h^*5!2R1A@1zG)`MnF0k2+8N2 zj&@{WZ)92LJ8CuvmCvXp;LGtE+t(ZWw?Coxlha7nO3axkh(Wj{MMrPS#YGT6zGxIl zUiIGiIt(UtR999lGDg5VwWwwk?{KldQvN!YfCA$zuVj~h8(Fk8EdK&tKTW}1c+mjkg}t@$VzQV4J~*4}6SDk* z9dA+b(6=F`!XT1z$dHY5$&sVsiG{lw6kBQX1PKg=X}T2ZBpLzQki4wP&p#m)L1P3e zi=WXDX|u0fmTN~Y7E8sI5#2o>(@!qkJ)f4kv%}uzW?{nVEBd)#(PZlK7k=R_o?_yF zVIltdHiJt9U$Ti)*q^dB!%2Y#!?b)4v&+#RPr-8_B4!xoLDlT#Hu_S-zQqcsAmg0$ z?Av`G7G^?ZMNEJ@bLfjBNpgKu1fpI^!B!@~joFn7>&kFbD*%7059K~2|H>fi<;-#& z1)1wiyk3QiO&_hi+`2V^kb1qa{;7n`RdP=$JJz{SHu;I9LJhp>dHaTPFI;SrI%1w9WCE@ z0D9j)5~ud*$|i*_SZ;WGX2lKYi9MFQHM~$lo~|pAtRb8?!Succ|AKRthFD3y2E#OF=I{sbd~(oN9-h~|jI7UYdL zWYXb8?79a(2Mg(9>w2Y&q+102LVx%;VV$hAFj6wCV@`g~(5R4^_v1c}39ae2%HIS_ ziuG-xrWQ-NqyPrOVAb!N*-LETPV*9`InzCOmKcikqN3UtLJL_1MZpM1O`cX@2Aul- z+>3`DCwnkx#)!sFnjz6^lo=?kNkwDIX`5!F1UKL(6A4=*an<2ojwV9eM94c-idWz{ zV5nMyt{3&AF&ym>mD2vqY<IhqPv5#gR3i(()+;e?8N9XVliER-uRIqLYXb`{A&@V$jr4S0ihKP(Ni5L3^d zw;DyN)4C&I5RSb!pN|uy=nT{m9^mx(t$b&MdeP)tlZIp=>>Jzkc)kh|tXS~d%iw1X zfJiZ2lQ%BRI^(p@t+Ru^GIHue(%5{SO0?;Yp6vJpBaHj(C%i(R=9Uf>RBglh)Ttu7 z0WbAuBVjH7WP+=t8BCp|rVxILnkkjeKV z<{{dAr#AT9EbcZGYzdm0UJ=U&h!e{rar}}?6^T%23X|WHjK3X?1ughaL{rs1m-b7d z$yBw3h^Am>9@!@JgKl+HLm71g8ya6ZybI?e`kF zOv*3N2XMju_gSBTF)4q6mH^{9{tV9eH?IFHl7#8kYR?RWZ!pvRR@*C#?5MCWVm!SQZ$6@(Sa4Woc$)d{wvr!cc(lkk=R$Iv~UZ zm;asC~Z3?S6z?^ob|46uBK;=C$y{A~pW{=M)eV(4XR|*4-tA-y z{Ke#2&ilOO2l81*Oc@qV0j=kDPFMZ4z;%e$e#fEu9HB5ui6curs-WqY-qPN=?Qu;y z4A_M!toLhs<5mlu@AmC)1$6BfAC5w(w9G?}Le3rJ%_Tf0Ps4_GW`XdK(xs#!Mjfdr ze=a5S;(N7D=1|e%F$__GWwNMS%5l8sY{agefyrA#Qiywz11Hm@&x?J}66uMXV0Y0F z(<08JG0w0f+9J0ngC_0dMJU4cH_eFPkOik6vFD-G`ueBD>3dDC3WE0wDl-Wfrzs%R zki&6;Xea{(tITi}U5BfAb!^BSMMfEv%oy#Kl-n=)VS9K)-ko8MD=__ta@z3=b0f4< zh4?7;Tgm{*@B|lGEy>9D;~!!L$CV{xiEN@%he`@k@mgc#@{&?}sMI_%@S@4<=_FgO zR9&Q;79LqW=(%QAK9YxkZT#FIMAH=938h7YrdKqm8K4+ml+QO$Q>&n>Y%t(R ztR^@Z)RW}+MjuO;OJWvzr@zgf+ZWq#Iu@BixQ6L2EMuq^_3k9-(b9I-i|x7pLLux9 zD3E){G~;8KN;$WHdaj! zVgM80@w=$a_Yj;vS@e7Bb^s`J^5@LD~-6OL+9mS0o%tAOU(1?!g}j2 zj>u~zaQHqY5!2#P*D6A6qv73gXn>4CC{vI<_roXuKC9M8<*SltjXE=IE^6$rV3PQ> zmKPw0a6j3X(3-;GHKM1Bc<_HV+|(2van%&QwHAA!Qo+rF)Z@#T1{I_hyo28l_$bb* zcj~s+eWC!GKnzYRnx|-tPdSOlq1j7157aYd1notjTe>CW(%_khD!Vt@_vs+RQB25#F0_kIebBlxbB7OaK_>v`lWP zu%2YO)F2Wa&wEjNrMe%7pICOisEAG<-jIrlh;t4*&_BXQ>UO>{!aUKOF_;oLCE7a) z>z-vs;9s)S@dc}eo*G*EtfBS>4)Lrtdaa@@&R~p?6=dfbER=N|P7-z3L7?t^QpTjC zdBpXn#SEXk_1JEs(}Q=$1{e*H&Vu_k#-jDdkVHL7k?%%?O}%p@d2P`IuWGhCJOhM1 z!TlH8K#x8?An_-bt{4*zB@z=m)6s5o(_R#fn>0{$^o9-OHD1Qb?jiC7p6z`>JJ$r@ zh^?AJULd;WXW-1Ll?7X3A40AYYFn;BWc2MEx(w>oc?U#e$CzR~(_v;;ezayPZyi!` zmKsGQf5D~H8mO2$eo@1HqN-aDpi3XXnSUet&_@{}y=13h$xLIDEAG;VgC^EJ3hJx%Pv5bL~{cy0x5NBN{Tw1_S&31<)`)^Bq zs6;0NMhzg&qYdap=2C|WLnAl~F)(xtUp4U>ZVlRbJdZ~6GNuuPniw$WD`a=}yl!Y=VqWq(3cY!{>( zU$z_l;5*y$Tz-YD-3K(m^DIWzILPtOB}XodnTtkWQ$7iPoAmI$53CHsoICLt zaU2cj9Q8m zev>A`R3DT+k(pwWGEHO&au1KjLvP#c72AJNd2?eekl*=sNN@GzJB#x*GkL zR&PbkA+8thDKLY>NM(c4IMN5?35D$$HYo~{!FtAA6NUPjDhq_f@Zry9@Nr`iObX0u zUWioZcNW&sltgQ)wi?wgiJwBhS$@=PF7$_o??%QCf_{(5o#)nzq9BiKxQFLOec=?H zw2E}-iBkyrFk9d~r) zXb*4Etz&1N#ODJ!^_V5n6(u#l^IKE6mCj7r1q4#TCN5`UmyM2hE)+is(VxwT!<47g z7$~O0obB?X$3T@E((|O|7o%E<+(DWtmuWSb(&Qb#S7kM1j4W!n=O7P${j9Pq^F;1? z?xFC--(}T$lUu(5LJrzD1@t+XJK%360rSRiH2w>s@CKxLewScZNL;ZMOoL_D>NNhf28~BaL!e~iO~X&nAyO4GR8J{x@Kmt9axP~ z|HRZ#&AF3YvQ!FSYjqNyJMEx-*Mk%n4};3+a_GxsK4JhVpwuYofKp$S3_vC!T4vxsoR*H6?!P5IVg|P858k8K_Wi+o1jPi5hx!}s5iQWC z_PgL0&Z`jH-&{KMK<^8WgVC>jxnHqSf1*HQ{)_Y%@GJ2fh0UMBetxC={_%fv;s7^Q z7=MYK{=Tb1%K(h@`d^(oORmmt=u^!nfJ);k(<+rlh8&G}ivD=!xeAUNgWm8;mPQF( zT_bM_UkXq@FK%T7kXQy%wagEynG|_Ze9^2$^&cR_=6R_{mk~)Qy{|zmTo(v5J`LVD z3QBr;+%NBVEbq84V@quS9)=*;RZ7$#%L{P-q&$yxTo&q?n;cED3$E|bLW zi!$?u-elXOl#)(W1AJ%AQM4-dvSpX(V6*yykOl+dt3IDTO zwh%7Ed(8xZv>BTq=Q|?&ITW*2}sjL!0%Skv9xR$ZN&mv7jQ+b708ZFa^zSS0Pa ze&q58&Fyp?*n^GM9Caty4To-E16#8HdMx0EzVCM|wuvZquen6+YJb$+5U;7hS9%Os z49p&t5R3nQ?DyS*;l~4yyrYCXGsctx|JwdX2BZd0ocxt2--3o#$*E>e1;-QlrJr*4 zN)l5V3<|`OQC|nX~F5co$(i2 zBCa%8T7Xob-~4nRnEBE@lY{EB7F3go`ewCrCbKEkvcm+>`YC_wnfy9W*J{q-AsO4( z?5SlN;Z5(C*jP5Dqrp_K>3eru>dWdMR)**43M8cjH$}5EP0$U4H-sMRri|+lqU#?R zz-0uF;W9(rP+s&)W|^5`I_I9sMuTQadLG=m&2tbrciCc+kJ!>M3^KRmZR8>6EOm1x zm;|8y44ibSa)T@)jH*WcBX@N!N@Dr-&7E} zJ0nZUzgs_b8sgEqTNKT}{?;YyXSv)Bl$*g)>YcJOp&IgIq25`e5RHje+K*GsQ!S7u ziw*s>t7w9jcB>rhW5$OJCPfDp_&yZ1e(0T}_9|{P9uzq#PO%KTwe8y#8Ky;DOIk+s z%CtMrD42mTpS#=EduJ%eo1r~&_Psr7`KS)x{MLMFdLiXWM~D|V&-o}WUoLzVu1SH% z#_&0t#>A78+8e}gSJz?dBdm(yyuAZiU-?!^pDo$f>A~wCW)@<&r3zf(?Ow;aYoA6+TnyKqX1GSn*+*$nca`CGwAcQ>+TH@H%B^b@ zraL4g6cD75+Rc`30qImiy1PU~y2~PzMo>B=r3EBKBosst1VlhVX;DG$;=JGcotOQb zd%yeNG5&qd7)R$>IoIs9o;e%lPw#c5@rH|gA08Ge3XIHm@@g30339wK|L6Hu(EKks z3zjPa*M4Y!puO`gD(rwPFwe$)uAgvh>!3YqtScGMbp_El^R#{Otj~wQ;L6?W2MJBz zI5DQ$pPQB2zvX`Z!ug@`PSeGHGj`ib(?ZivP5tB7%d^J)r#klCS`W4;#ah-BUbrhU zPDe<2zF)n0hc!P=`y*S#_O|s|6TA`QAghI2?PSI5-r|Hy-z zt}@Vn!OpQvSvz0X_smW;DJsmU1Mfrfw@iufy}Y>seFj?Xpk(-pJBTk)NYnk=~(Pi!LgW zb9zw3AR^b8Z@$7|AXjB|uKi3%x~^vV1CyxF-4sThevx;m)UY(BJfPI z@kj^ZmJnOs)e@06YVR*;3<>)OEHuZpF^Fj$Q29qH2R`p0O?GnRZl-rrZ0y=zQz9LG zxsqOO9HOxJpj)b;^UU5N?ItthqeKI$Z=m8-+N{=hyHneE+g#H_?jkZqQZTR07v>Be zng`T5IRrPki6pO)s!9)yhTG?3i_eJ=mK(p^@jCZDL1l#N`8R1_wp+2ix^y?^v0pvU zw&Puk>bQOTqs@L5qw;17?dL>Y(~_8v5|`NvW(%_GVv@&FccOMa>?rOm4vG4+w&Wbr zNIu#RpEfePYG%YHYM~z#{K#P;C+?gUTlCx5>N7P(=EY}o{FyQ+B?IW1)q4Xa^Lb5P zBUbR(NUaQC=P!@KOr||X)bg5YLnG9CJ83QzdND0~BFbyom%T6#q!F8D?{bNs(bCQv z1|Zs*<|5C9F1GAj1tcGOvURr*NoE>{a!O zJR?1qV#$vIiSISmi&UJHFyq-fr`U*pi63$tQvRCUnPcUzz1x)W6Z4tHCkxwo@DTfI z%QYjrZ`ku%hTc26I-YD~Q%Vt@ZG zX2tJn($&YG7=;xh9;U32`O;8CZCHkplQuUCU6K|jqE@`-!XivI^5*9&7;%^xhRA%5 zMX<9!;g3_H!5P8qb8$DgV!Th2=W}y12H&G4E7%Xea!aS3``ijMg^l-(X0utYbUz&? zx!%7Xm^>5<>4_fi)!L6;%UR&_Z_7<7yM@a)DIJ!{=#;(y{(p$ zdX^;b{uj;?>JK#a9FOcM-@H1!MI3|>P8L?MxVb8*9xsA?rY=xS;1+gz+L)T)v!nl< zOwp$l)Fu4gy>*{UG);PUC2Ttybcu9m4C{>Q?zQUHT{9gFxo%T(xE!PA-m%x;cjw2D z%xy|OAJS&4hs0JTQfhb;SGDgg?K=J*3k;gYc1nk z`i)P|`Lw(3R#dl~`Qf2BMUI#E<2xP}PPt}2^b=;fG>0W)=Fdq!5HzmLwP(-xXkC*N zW}9vQP@lb_R3Z~UDvP;vpSmEHimMPF-?-CNe}`C!*@-L`pDyifZcNFToW*hjv()^N zbeG}sB(<@+Mncsmhd=FB<_iSg{7JY|3T{9S@6 zqGhpS{?1(06+)o|mJPSdp1}kT3|WVs?>{Cg%oTVhrJMByg}Y{vz86zGFL`ciMN)@0 zah_9K-h%uF<2TkQZ;>p%XK5*{{fhCzX171pp7B1Ns6Wb4NAQbn%Y<}P~gk@#i+CH+ow?jY;}sVsLEU(-&9 z`cOZ?-Zj>Dss5kvBu9w}KUiJ~>?CD+ZY0-F%Vc)S^}&&Bh}F-h&Yh+0B2uFkO^NOlZ-68A`4S@AjX zXo|hJ-|Gc$o`pWuc1nE-`{xAfc(*iYGHa$P#_w;wIw%XhL_)e@`Z7L=`RRo}FsdI< z?l@T|a#)de`fNPPzIPO}Pq|*i^viHZ<`?5=YH{?dFDp*!Jse_XbNWvT8Xl?$E+N7L zGksDPREVy9c{c$2v%})d>Vl7ak5Sw0FQA@QOsj@}qS@x+E3YkaIaQ;Fdax}QhmuoU z9GT>FjaFLHdt>>YjC|8-DU$Kyb!iLPP?B&y8^1`3eW$3m))!trh}9j`1#b$`TYmMd z&fAZzx9@8=#0Hma4EVjw6cYtaY7Jh)Cr zYGX*_8KwT~WQL62L>rV(nZsvHE?}cY8cm9;A5SPa^`#5Q?v00B>$=5O9Yp2Tqw(Wm zx(Vm70IT2C4C@plqXDP&>MBO*_;J#@tJ&T5AspAp_hsWrM|f!QHnrV-Dv2+7|0;P} zyKf+6@la*M($1*h@sRy#mr$uBx!ho4V}?N;jg2+G#XhuVy=t~kctAzkx`Uy^6HPIP z84Klg;+=?9A=>XG-RB~1$F4NKv*TP)I z1$D{|ScBx7Gv&JDNbfQKm{F_AVpv(VfYH}0WlMBLkxJ=lv-Ux=n{1I2QgW;_v3=PW z{ljH%(fdzM`3`*};&5l>o*@=aL)odtg+zoz*xcYBVOnd;oKNM_B5f(xb3v7dRdx!A zxQcWuhWGDnVP&qnyG%|B+D+{Ez|-kx>vT-YODk$etr^-GFYJ}K`B?~YRQ+14&~DwH zUJ%)@=wwYDu6GEr>7M*(ryaEX$IkDpL9X=n>^IeT59TVZJ(q+davth;JK6`#(nFQu z&pOTZDyN^`DR^diMZDLpiNpPLqk2Li6EC)VX>rY!>46aW%Z{ttw77JCVj5P5RQP(NGJBake3q@|Mw(#=dIqDH= z4%1=?Ef4mwbu~m6ip-hR9rGH5^$kt++3z;q(v!QzPK;NWcygs_oZ$zCfP5d*PoE9FgmI$og;o1&2a)K==RtGsDE`hVL)kapMSup!@e4FP26FS@R zMhD8%3)g3FI39@C+5`#R8lQ4;7nO-x{viC_i}4fFsOHr=dGBi#v!w?zs#TxRLXAF{ z5|+p6CCWmNDcFoYj!+D!5b;S=)lqzlA}58lVoS5D((bgc7pQ^b;fZo z+-#F<rd;-wdMET)FWb$pu97$RQbR-GFw=Xz)9V!jO8n(vB&*5q zRHq(S&soyWXYKH~<=r4%x4cZk@O`T(Qi9#VI$k*2t|mT9jDJY~b?pbOxnWoR*+^DSYEX3x^8p*0;berAInb?L|yp>4f z-C99FPNAXNBXu=O66p%6y3)}8oqfZ+H=+S-8G2kHUkb-zGVc764yZ`;>t)*d6 zw)`D~-TkMVvM~nChiM#=K0Un`{R9f@3|XF}cKlN5sD1y)Fw(NtvQf^zHZyE^*RpMv z-;mvJzAv?4PO;2y8=&_M~ z-GLz--2-{p2yQ3~*DT=mm$AvJXj!U1N|y^)We>i(w7V}AuDT;m!S{(uu)FS>Zj2$# zB@V>|8b&`gDGsckeR|)?uFmY z_yxNYI7CFB0ft}5sNjhxg%jELUH*dT!ZB;DfYw>Z z%WBH0Pg&NhJq&h>F^@bw9#GuY`$Fh-U#xe8Xei((&x0aTtsJR`gafqJ$+kovVZl@> zkIVVvcKQjp2J2$?^$7#kUIw(LXdA`hl}p~vz}|U*&#Lx_2BFeKK|)xZ)J!E}J^gF1 zfjaSpp``JeSg?gvPZGvI_3?N^<=OZuE!l%T7ep8ewAdynSf{g%w_>C5Q8$4TO@q)<@pWz%-4(4G%-LWgTEwzIq!Ql9&thGnJ|GfUuIu*3gvpPj zK*kQq_;{X#1M_vKDGN3$p$;QGZ*lEWq#aKXjYe0!l6mk?-Xq?;{iSqG!R4=7)%I>p zUT3Y=2k?da`dBSB({698cRjQe4JPJtWVo=gI9V=yYD(pywDPo{dG_STmJP21q4w*F zrqj`z=~Yf=WLG)PRWVL5-QqGo`r+v0)^a}Rb5){Hx$89_|HEb`OC7&H>YX+Rv^aCl z;nX6lE@g7UQ0|b_b1m9AzE&Z>w$DN1n(V%<^ZA$Wy+3Q5@#KuzU7v$hX7l;@(1Gts z51h0v2j2g};ZDKaFbW@6=~6#5n@#oKZFXels(a8SJ5c|01?y>BnR;U)g<2&#U~?dEPAy}C8_8WvnOcShiP%t5*7&%)&^v~~|l{ZdsU zT32e62%~kXvzC$g9kTXY0igtk?$=MPeXz~LNU+S%3llxG)Nw(#JS&W%uhTUis`9;g zfRC~7IVC;$RE7TOC2{RyMcAy|14%mB+dtK&zPPE=-F9ZHOP~sL{@B0&nOn(Ajj0#@*?`QT{V7Uc7!=+*Y>Y_F%fu+_XHhL!BKvvpB^!q zsdZXbMoQFsZT`4E{47|$@R{ASd_NIG4E$hov}nWTE~{owg!1p`{)W%2XXAczcqJc6XX`{3TQxkhSG<3wx=5Gy-C*O`Z~U9&_0|=> zqs#LMtM~+8Aptkb#=z@)11}tgeTmrF927IOaq1?pdsH*?dGAV) zfQ`7N;&sCswCO|f;=5gs>TDIvYMP7+T;0d&yep>2s?_S!G*UCIOSamU41Nkk@%Xh! zFAV;ke$Yx(^+@&oG~UM3`-?9!hHsIuBrj{73Zuxe8(0s0GXEy@)*48K{mus7n)FH} ztau_CD^y5%q3enG1j6bC3SnVO{l2w$$ew1~f-P?BDq}CpDz$6ESVAIQLi#=rZw+Zx zqy*mM0#wcQAQ88SEbT zvrD=7tz_!0VpGDhIiuV4X1(|2HSL!tS=L&=zfaDLcR4$FKG4|j1>H9nX9i~swa&)* z^nPxdwFTyn=2h&4KiTzu3W^vxZo0G62yA+}h?FJ8bd*FY39d_F`#AueF#dKsVeBx}cI|qHP7M0EI zPGWh%sml){$EnczB-N$F9ohSVu@CBA{7@#6q%Y)pLfAOZsfsOQHgEd6zK|5*^HlBG8S^DEv~9kF|tKuOs(cZ|k@STq;hLbsMBV&wdtfz%xw#g=V+jaBM7nZ5@#AUEt z^<3Ms_RoH)#nkM^tUo_;<$W*pKB2E>wTYQevLyVKTK9Q&g<-Vukq3{ATGnNOk&I8M zf$4ic_;cfr#DBUTG=0)u=(|_-HssWi;Z|FqGmLM- z!Wf3$v4j)~5i{YLet7;sDDl}v{Z158_57pW*M*nq2BO`b?~wZV{Um(}+mPiLKoLX| zhR#1%!)lTBu9(Di#Xgl`?Ymz>mB>RcB}iwgiOwiidlRLLrciThy_opbhWZ*e`lDHF zbtqS`Xf=Tme&=1no1vntx<*m>s?N5SB^l28y#|u3QTVgNIs;D}`%_0Vf@&{_ZftWA z6HN=`E9yVdo!K+5l$ns;|I~5&Xuqa&`h8{FVdeJ`?r>COX68Lck*oDuB4tHJ_83&o z;T0Fu6D6S!#m&tFSHhZ#jtD2SZw2X6$=>SzaxLU&zLxW50YgU&W>#Ba=>Ch+BgHc& zC1#J!U7BA6q8in1r25xxUL3c7Y5(=gp;Lr=&er**yiGEnH#?%+55F{$*xlEA+%VNy z_{hNdD*hgQ(yCxx*Sf_Qn2+S?IendYqwHQAF+DeqKMt163}1FfI~K@yWIW;mNiR>` zx4FNgQEqtt8keK)dFy`uxMybH70OYcs7x={C=nyxC$Re)X~*b39Hq9SBDc}$Z{h5_ zp}tl3iCwNvgJ*(hEsTTo0KO0^%}=jTRgl&y8C?6T=d95;M~WB0+lR{`TQTXu4;Xg# zVM%3MH59)FjB|b-wxo+rTKv#hli4Am@fWMgZY!^;I=djHt79oO;>}{t_4aK^XNhmI z4W7yaclmD{s`5{J*nbJgCAhvbv&YQZy>_g={VGs8OM#B2#Hs33k8ZUBZ|W@flV^;0 z0c7n1iG`P5oWH*IMlLOV5&y+Uo{JqkzvT+2esb?sO=X54OO-uTh zcM5_=4cE1$Pv;(%wNH-)Yd7^3)BY}MqH_2%>wCD*?A~A_;-~mK!ew^Vm9dPFyy)#X zgB!ccxeotZ3GqQqU3u@V&mO}25s095@pJ8#H%!lbasTSvQL#R;$8Rot*6ypp`tY9X zZ=qlJe)S38o-(Ykmzhe9m3&xJJ*OO1v{_*&R6PFlXXzC~Lzr{$lb6hytTzQ!`ko98 z342n|Bs&j(VHPG!*UYTvZdKj$y;HdEfT&jpsVU*sBY9e#tMO|lAA6%+*u0^@Rhv~` z#aAf=gl6`iv&1UwOYVJ>@I-L&DCmpy;Wf?El0=g$KmKI$j>l=rR=c0f%p!c$U<~iB zCr{kKxjYAyW;8a`^~_TgC+Q2kSuz3gM{dN{oOCXXUB5&aPtkvR{)t!m{MQw#!(K{b z>Ak&~FCH=Wzh9=kt1t1j{aLH+&uo8X`C+|w=9^yTJ&CK*36l4BS;U%)_DBAx(l`XZ zuTwLvvpFo$ad$ktcjv~wg59Rrn4Qlw*BJ@EyOwp)(NqGU) z(T8Y5bWxJG(9aYxP2#IF8@wy5C8OFa7!jgu5%;Q7v5n946+ULYOCny_Gh%ynr@FxQx!s*vqesw!#O{v|15i_>dbhP)e1<(0WHTl1Y!&XkBJYg!KGzTvdEKs3uH|PJ8(&K- zvaor}TX~&IPbBpg^Q|h~;w+=Aro7VKa8}8(<JFF5{`6u5f$CI7fW#-r0oDe!Ew@X!7R5z6(l!EXF_UAV)!37tK^5$wNdKZpplF zkvZKyF0v2uE71ske{?64lK3s%)B+>&`ct~x4K5GPEDo)^I%FdiY(F9R9Xmd#XlJRmgrXrc8;Kyn$he#1y)%y`SnO=UFOF)mhcJ)_X>0eFA8P+w1=!!;@ zbG5-72dZ~$BCAg^xkO!jIyaWvZeo(!{<@Uu@K5=`0nr?Cy>C+W*^{|U;l~oDF6{#cIHwm1C^p;o?UE|o2NA5;nRJeIY!>-g~ zgiV&J>&_`1#k7?b2L9(v%X91!3V7iiPg2$>2mVO(_ujX0P$R8VkSzL??Zv;pq`vX8 zV>RuiFE=;oUM`F%U@(|>f0e}bLev;pl>8!AJDb&2-T1+WUP{q#>Yfy5Oxq^nNe(ue z-Hs*#R!k-BPfru7kf|`v4F$9$JjyJ~Pz;gby{zlr^3vVX&>ihN2fhx{N z$mTeoX2J5eE<;y?JT^_)^O9RbrM(n(*HEXjvxUfwlp47kHObP*`PRLj$S+QO6K7@3 z2Y3pjr(p;^Y^>sicTr>NF8g1TQ?k&NW*j4qeXN_osrz22{6Lh^AVZ>dIj+PUlS&zG*pr|Ldb)4_Jq=CW~A6GmiPrpu(X`8rwb%$HslcN3LmG#05^4f$yFR+vD@pMamV&QPY_c`_&;4qs2T zR!)xukFmy;_e*|$EojKtY-|w{#Biz=e2JS2P1@mEA=)DD*Am>!_@aN>4-;~2isMg7 zjlOdO)fJXZx12!H*Jy!tR??n_aP_3_jO&gj;z_j4R5u8f5@Y?=yy^4#C9l_b&D^`t zHm${(DO%VQEgp2mhT5ipLfxK5JQ2e^=D!`wkxCkas4H+dhFKR`ieU?@-uWV zf_djEeH@ZW@2`I=y-ncXDR4oJY`W`fD^G5soluZUMaJV+Q9GYdAFnrK5BT&SJ8YlY zjINeTVvg+(c+e-sRgmFK@VcoQ??LaWg1h7^t$x>Y(lt0t#npX$Q>bl3$;cV zKds)`ugBurc0e&7#ApdW<*#Lx#V=a@6Hl(1L1QQ}M)X_jr}h{lt+vwrt*D1ODmG{l z``gv7rf-Q88qXarhW&bAFx}ALIP>mLLU#cvGhck^W)b60_g@=z5&1DU7D;wFUh}K$SCU@t(D-9uHIwY-MH%r#**U*Y|hb?|&ZH zvgY-vS1vhwoL_TTY<>8CE{$dT0G8x2j3`Phd+&a(_3RXqB#Pd&r2r=XDe2?g-V_UA zmP3md%2&kbZ{)I_C%P!oL-dMuL&3H(ic^!G>a;bxLYt@!O;*Cx{)TZ&C-H{RDAVf9 z``WxxyAN;A{%|dA(sEij?LX|WiMcjA)pGdchsw914`q`XCj2z>z0{gtKi8$cCR1~3 z6gF$*E}dXJ@+tP8I*3*_*GGTjXqR+;GZyn))bn{e5>6X2c#Si)Eb-k^k+8wUSK~`( zbfu$Q(2hLy#pLQ1bU#Z{dhF5@$tjo|`ULzg$|lL(_%P3R8Uyl$yY%J3{}`KIK{Qp^NR`t(F~`QYqm zokibROG_`Uc7pG|qTTFpbn4X7o2a^QLl@yG!5{GE@yLe$>#ExCY; zGoi?b*>#Jk;*?@Baq+i7^>d7d!P?IDK zR_RGeUAX7s{$AdzO_X~%`ZX`?sVIO%>LEMsKliB_<4*@kY=yhi|<^f-xKTmA4~s#`&Qxd|2EYF z^8d2@sKoI{0DAwAsUAQAfWNDVfG6h1|DgZtzyG&S^bz6`kZ1Xr|4QF*oQwfF4jNSN zfI|O*Kt}pkJGA(Jq=NtzKETHh*nf=-&;-W%ca@XlKcmnnoTvQ9eWAzme|XCO|8Odh z*Z%+iCr|=Ow*FtzHyq>sL}5{o9O-ZT{QIpxsIc;PVNnGE-dh|We{*TM!e9^dVxX*GOdI7A)=k2W+f92;l`u*22fex-W*Obk~qY`khw1;b5dC|Fn!>zt?to*so8d z;>V!c1^>fEmfd1vCoHSgZ?g64U0pLly`#L3&Sl&}byX})ha_{3QS&(tiaKz0NwABf) zuLzoF-t2fD)Ixy&os($oVtFI2RmCCeJ!!@2iE+Boz46$+-n^K4mL;TdWzpVHQ*`$e<pQJzD-d|KDeU*5c3B7>h?R(_;aj@ul$bBv5UfIr4?J2K`b0*r= z&gL2wF0E?D55)S~re<$@G1q96;4mh=cO`=Al#qeJo`yRy^Wvg-cn*)>{H1COaX(l`p54V zjV`_(x{~6oy<@>=zC@>HXKIh<`AJyFj#RD0@9wBTm%(KlNuflL`dhO5k8@>N#uWqo z$_X1iVGgxVGQ4_Bi=6qZ0faZ|2Dg zESZ&uGd?6NCvm5Y?OyJu(*q8_nSG)jge%9QyebC`vm%*;3*1tK2HDFgM!l!rFJ;?W zJP@~Y7yhxMR~wxt#xYW4Hmnwrm1bU}{ac>!u4I5klsBK>`f0L$yN2NQta`JDHq~C2 zs(;n|pi|t~^%M0bK~TEQyECr{XBqDK{tm`a)*4~jheuuWoFlAV7o}MWjU>{uu8Awm z%9s1RcQUx}i2zY%ZQ-yKYabf?&C5tPxs#;4Zotoz{xkgZ*PI`rU+cG0Tg6B(+cOF0 zwA_h&;6XcEnA55e+}`xTt7R&J@66To1ej{270tC(#yG#=I&_Hu>j35aeTpWY(?+H{ zUJWmAIOH9C3p(GoX0zhcX7I&O_+nYrXxs(KxVYUEUN6MN^O#=P()Ihl`r7hc{|s53M> z^J;}=^2?c95Ag2t9ocVVcTaoOjauFGRWd0K7V5Gr{o`nxY$Hcnj&KIgs^ zI~GEYcomax7A1P0lq%z*`{0`}HP(kwQ%*NZlvjzblr&Lprz`c%yt)Un=)1c*>)IQ2 ze$4Mih05X&(sCdDgHiIA7Kds*pfdcdeQ$W$af%su``P`=T2Zj_u{-`u5_~as{L{Li z=@IDU>S}dO!Ozvz4uB!wP#!B^V00LG7`i*zc-Y#3;^hC8Hu8U$BNBWn_TQ!k3Jv2t zR@~+k|M|(;f95y*uW!uY$2#tRN*iQ;N8Y`g^OW+BEbFv^^8~djmkdiUS=5z$*~4S$ zWzv)4Ok{4q6;@dCriXKLxnmx2Fw?R339)gTaV?aUPg`{UOoJ_*N|y9ft?+HMth;7y zLR=zqz`Myr4Q+kA$1He9!u=WJG%?J~DpE%48Ekyo2)6duiu%zay=O%)u@a4+Vbijk z$&CB{S4PO)%AH%Y+EKrJg4XHsd4!a%-?okDMx99*7)iWLp8s~~5$nC*llQJ$f>7m@ z(_8gRB@cyEFK`t)?pHn4DwPf9t20&SH8a(CX}%rMwfxyScK6Uo)^*W`6?(u(kY4F; zwf(o%`F}8L{^4A4(>{W46hWCcKs!h*NScL#{ck@{1ewVG+MTFA~9*kbi%XcuWv~5g9mZJ2;s9*pNG6r2GZ>H#z^?NIA~^_1`I` zKsmYpkyI+QVA@?er`jho8sh4xNdmaI)a83#BpI1d#c7G2QN@f|;@>w)Oo`PJ=7X;~ zUb=ihExu34b~$la^bp^D;bUa}>`g(!mbtc@KiXSv&Si(pddY=x#Nwe|%Mj9dCvuH@ zihZT)=-hwj>zd}UuPlawb+VqKTy!4aZlROyV(~GpztR?Cwz=kBNQ=LAmT2kr{e{RQ`N%}G`WbpLWw~ZkwJ;WBYD#7v6;iEko5+wI8M@ko}7j_@T+V6+m zH16`+*W|lwNAsvU+>LMo->v*kF*galV?Xs9`bTCYaL@jFP55&)_zK?ABc~pppGx_T zJPX)v_*swL>$TbohpWbi$-;9ov_-Uvl{3*UTj~VQ<6Q0uFZo3I*_#?Qy%-W6W307R zNb8qIB?@z77|}Tm&PL0ZlsbK3cxzx-kb<$)GB&)`>v_t(h0#q|p58KM-qNST&u^jG z->-48Ihi(ONJaC(KM*ab(f2pe>UewD`q|ida|*aw*=Xx?8rgaKIC;2p!VscJQ5dJ0 zfP$Zst1bBIT15hGCdjGlXXWi1$f={Gq6lP_U4XA3AUbb5D_;+93IQN??Cd=P{tW`d zC|UX1aSAA1go^_y0!kvnu;K_5`l`4%Klm54)AX?YKR5Xg;S>M{2egdD!YPj3vVZ-K zYZrq0hW4EQf}zA=#}yrqf1K|Bg250H;>U9MKVipzKK{J>1Pmn(2mE#thDCugdnaKq z3|sTZJ(&j1DxgWC>+ zJx+jd{QK`Y&=?G4EuelWs3eNp4vxDw7#bWLxI6=36359=PK*bJ1Nk0sU|19af*0}QRH-N10la`zswZGDaST+3 ziHjp}aR3r)i{s(|zyJbq#{)%yan=XgVIe#%4mN_bW*A5$iYq4p?6?B)$u*;42#CG} z^?-5ZE(|S>fzqz{UpX+22mG7vfttplH5dwuh44NKi-G7j6c&klZlEtnN{+K;kd79H zLqjl>1R7-VIJq}a!}!>8IK1PmhYfq22?EjVB|h(1DLz)o<-!ys_^4PaRuL{o9* zMPs0SfojC1Ar#2r3)ve$7G!TAFE3&A>AS33N{O1%^4UjQFbo4!?o?O+a8l`hr8pg-HOz9RdT`g24Vt zHGMqSf6EO(l8|#lf+FaU@jwA}$h;Uhga?tpT*IX`Brs|qebL}VaMy>w?8_1Z2yFS2yxPBBcK;RJBj)aRt zaR59i$eDwbOi&mCBEyitNP^%QC~7DS1(C79dxO}(NO7QoarO(W1BlE)V1W?_X?L6e z>m(fj?FR7|fP{d^7lZ^buyFfIAR+4m_kj>zMF3HPEAJ5!2wb}f`0QZSkU5}uK>$4s z*_#B!b_C-=eJ}*jN02$NFvz(fun@Zw2COv{F0BDm9@j1g?a)wq22L0*pCf=<0g(s5 z*uz~P2-sqAbt4j(f4FA}=;a^!9>)_;o;l!r2>y^DPy<~H288x-`vRj27Y5V^q#XhjRnACC2`rROu^_05yFP$s$ohb; zfXHzWc7(`rEE>wcK*U1M5(Ffm^Mc3)&RRe`8^Y%R2H|rQ2#@2A2Vju66o_#{&I1&1 zft&|mK?tr;Frb2Q*9YRtka>Y625pCi#LQ7Z-sAEDh~+}?3}U$uJOe2NT{DPP;hqt& zvLWXSV36|#o)9Q-b4=oY^B{mhWIGB0gT^utu;Vg8C;I}!7?*Z|2!q&gAhHCpBT&H5 zhTs%|g`WAbfq*+NkmC>>AQ8|w2oepYE8q-4){F!U0+|B~i5UTRMjV%a0Suz!LE=*= zodO_)UQigQe-6T7xO{{{i$h`$;0_dG!+}UMZcGpuu|VtL?hTkF5Zt3N5WNLd3MAGH zV9=Nh2m?dr0M{vyIWQpDg1Z(#1`xae|MwqY5E~ev4;m|w01gQ591;+JAH>a|wlY9H zL{|V9M9-ikpf)BbCUyLZ@g#qMJ4DD?f-ok82Z7xVp+6vtAvgsl7qlH3;>QEdhte|$ z3*e3iUPeNA0eHy}enbC*jSgUtHG?Y*2!9-3YvA%5AZO?ul{nZi4*ozgYlzJcc6!HG8?iF zIJkVm-5Xp2dPfDWDUyz|2vKDX+0fqgQO8g|AfwPOtzd+iy_?c!21YDU*M`i_ygP#`~wVPn*ogsT^|Nql0xQ{faoJM23!{5wv!Nt!~npp z0YpBdB@j?tfd>N+IsiHVItSFpL4!CjL>@>;K>ThrRvZrD4-n&l^aYn~khK6^0XZWq zh-l;D0O$(n9MCv02p2(HAc;P7eQ>C~ z2Fxaiy#~IIfcOibC?U2o3KEf;?gq~#9we_4i>!gz&&4J(%|w3{P?O3XFTw31O%2(t{Jog zKU^3vJ8{+r41S0m0Spij=*Q^`1GC`J8t~pAd=6mX3mBZfaB%N}vtMxc1hH-5fDCYX z2Eb0-ANhJ)fj5!f6jD;)>8?{Ccxik5=uywZ!Lh6jO7z_WVT}ftbZ{#fivPLEzrLgK@dfYh{(1oiEFo}xPQlBo JtgS-vzW`##Zh-&* literal 0 HcmV?d00001 diff --git a/clients/curl/upload-one-file.sh b/clients/curl/upload-file.sh similarity index 92% rename from clients/curl/upload-one-file.sh rename to clients/curl/upload-file.sh index c66c40b4a..190309866 100755 --- a/clients/curl/upload-one-file.sh +++ b/clients/curl/upload-file.sh @@ -13,7 +13,7 @@ Help for Bash script Usage: - ./upload-one-file.sh -f -u -c -i -s + ./upload-file.sh -f -u -c -i -s -f file path Path to the document to upload. -u userId User ID. @@ -25,7 +25,7 @@ Usage: Example: - ./upload-one-file.sh -f myFile.pdf -u me -c "notes meetings" -i "bash test" -s http://127.0.0.1:9001/upload + ./upload-file.sh -f myFile.pdf -u me -c "notes meetings" -i "bash test" -s http://127.0.0.1:9001/upload For more information visit https://github.com/microsoft/semantic-memory @@ -123,7 +123,7 @@ for x in $COLLECTIONS; do done # Send HTTP request using curl -set -x +#set -x curl -v \ -F 'file1=@"'"${FILENAME}"'"' \ -F 'user="'"${USER_ID}"'"' \ diff --git a/clients/dotnet/MemoryPipelineClient/MemoryPipelineClient.cs b/clients/dotnet/MemoryPipelineClient/MemoryPipelineClient.cs index 61b8c5c6f..83f7b69ea 100644 --- a/clients/dotnet/MemoryPipelineClient/MemoryPipelineClient.cs +++ b/clients/dotnet/MemoryPipelineClient/MemoryPipelineClient.cs @@ -3,7 +3,7 @@ using System; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; -using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; using Microsoft.SemanticKernel.SemanticMemory.Core20; @@ -47,7 +47,10 @@ private async Task ImportFilesInternalAsync(string[] files, ImportFileOptions op } // TODO: .Then("index") - pipeline.Then("extract").Then("partition").Build(); + pipeline + .Then("extract") + .Then("partition") + .Build(); // Execute pipeline await orchestrator.RunPipelineAsync(pipeline).ConfigureAwait(false); diff --git a/clients/samples/FileImportExamples/Example3_CustomInProcessPipeline.cs b/clients/samples/FileImportExamples/Example3_CustomInProcessPipeline.cs index f71aad35e..add7e28e2 100644 --- a/clients/samples/FileImportExamples/Example3_CustomInProcessPipeline.cs +++ b/clients/samples/FileImportExamples/Example3_CustomInProcessPipeline.cs @@ -2,7 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.ContentStorage; using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; diff --git a/clients/samples/FileImportExamples/Program.cs b/clients/samples/FileImportExamples/Program.cs index 60b6b082c..731e4c585 100644 --- a/clients/samples/FileImportExamples/Program.cs +++ b/clients/samples/FileImportExamples/Program.cs @@ -47,8 +47,6 @@ if (examplesToRun.Contains(3)) { Console.WriteLine("============================"); - Console.WriteLine("Press Enter to continue..."); - Console.ReadLine(); Example3_CustomInProcessPipeline.RunAsync().Wait(); Console.WriteLine("============================"); } diff --git a/lib/dotnet/Core/Configuration/AppBuilder.cs b/lib/dotnet/Core/AppBuilders/AppBuilder.cs similarity index 88% rename from lib/dotnet/Core/Configuration/AppBuilder.cs rename to lib/dotnet/Core/AppBuilders/AppBuilder.cs index 0deed5214..81d260c81 100644 --- a/lib/dotnet/Core/Configuration/AppBuilder.cs +++ b/lib/dotnet/Core/AppBuilders/AppBuilder.cs @@ -3,8 +3,9 @@ using System; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; +using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; -namespace Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; +namespace Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; public static class AppBuilder { diff --git a/lib/dotnet/Core/DependencyInjection.cs b/lib/dotnet/Core/AppBuilders/DependencyInjection.cs similarity index 94% rename from lib/dotnet/Core/DependencyInjection.cs rename to lib/dotnet/Core/AppBuilders/DependencyInjection.cs index 2547a80eb..5d3790988 100644 --- a/lib/dotnet/Core/DependencyInjection.cs +++ b/lib/dotnet/Core/AppBuilders/DependencyInjection.cs @@ -9,7 +9,7 @@ using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline.Queue; -namespace Microsoft.SemanticKernel.SemanticMemory.Core; +namespace Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; #pragma warning disable CA1724 // The name conflicts with MSExtensions public static class DependencyInjection @@ -184,7 +184,13 @@ public static void UseDistributedPipeline(this IServiceCollection services, SKMe } } - public static void UseDefaultHandler(this IServiceCollection services, string stepName) where THandler : class + ///

+ /// Register the handler as a DI service, passing the step name to ctor + /// + /// DI service collection + /// Pipeline step name + /// Handler class + public static void UseHandler(this IServiceCollection services, string stepName) where THandler : class { services.AddTransient(serviceProvider => ActivatorUtilities.CreateInstance(serviceProvider, stepName)); } diff --git a/lib/dotnet/Core/AppBuilders/HandlerAsAHostedService.cs b/lib/dotnet/Core/AppBuilders/HandlerAsAHostedService.cs new file mode 100644 index 000000000..ff1cacb23 --- /dev/null +++ b/lib/dotnet/Core/AppBuilders/HandlerAsAHostedService.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; + +namespace Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; + +/// +/// Wrapper of handler classes, allowing to run handlers as services hosted by IHost +/// +/// Handler class +public class HandlerAsAHostedService : IHostedService where T : IPipelineStepHandler +{ + private readonly T _handler; + private readonly IPipelineOrchestrator _orchestrator; + private readonly string _stepName; + private readonly ILogger> _log; + + public HandlerAsAHostedService( + string stepName, + IPipelineOrchestrator orchestrator, + T handler, + ILogger>? log = null) + { + this._stepName = stepName; + this._orchestrator = orchestrator; + this._handler = handler; + + this._log = log ?? NullLogger>.Instance; + this._log.LogInformation("Handler as service created: {0}", stepName); + } + + public Task StartAsync(CancellationToken cancellationToken) + { + this._log.LogInformation("Handler service started: {0}", this._stepName); + return this._orchestrator.AddHandlerAsync(this._handler, cancellationToken); + } + + public Task StopAsync(CancellationToken cancellationToken) + { + this._log.LogInformation("Stopping handler service: {0}", this._stepName); + return this._orchestrator.StopAllPipelinesAsync(); + } +} diff --git a/lib/dotnet/Core/HostedHandlersBuilder.cs b/lib/dotnet/Core/AppBuilders/HostedHandlersBuilder.cs similarity index 61% rename from lib/dotnet/Core/HostedHandlersBuilder.cs rename to lib/dotnet/Core/AppBuilders/HostedHandlersBuilder.cs index 1370f3d85..646c2cd7b 100644 --- a/lib/dotnet/Core/HostedHandlersBuilder.cs +++ b/lib/dotnet/Core/AppBuilders/HostedHandlersBuilder.cs @@ -7,7 +7,7 @@ using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; -namespace Microsoft.SemanticKernel.SemanticMemory.Core; +namespace Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; public static class HostedHandlersBuilder { @@ -34,16 +34,16 @@ public static HostApplicationBuilder CreateApplicationBuilder(string[]? args = n return builder; } - public static void AddHandler(this HostApplicationBuilder builder, string stepName) where THostedService : class, IHostedService, IPipelineStepHandler + /// + /// Register the handler as a hosted service, passing the step name to the handler ctor + /// + /// Application builder + /// Pipeline step name + /// Handler class + public static void UseHandlerAsHostedService(this HostApplicationBuilder builder, string stepName) where THandler : class, IPipelineStepHandler { - // Register the handler as a hosted service, assigned to a specific pipeline step - builder.Services.AddHostedService(serviceProvider => ActivatorUtilities.CreateInstance(serviceProvider, stepName)); - } - - public static IHost Build(string stepName, string[]? args = null) where THostedService : class, IHostedService, IPipelineStepHandler - { - var builder = CreateApplicationBuilder(args); - AddHandler(builder, stepName); - return builder.Build(); + builder.Services.UseHandler(stepName); + builder.Services.AddHostedService>(serviceProvider + => ActivatorUtilities.CreateInstance>(serviceProvider, stepName)); } } diff --git a/lib/dotnet/Core/Handlers/GenerateEmbeddingsHandler.cs b/lib/dotnet/Core/Handlers/GenerateEmbeddingsHandler.cs index 1d208a571..ec82fff5f 100644 --- a/lib/dotnet/Core/Handlers/GenerateEmbeddingsHandler.cs +++ b/lib/dotnet/Core/Handlers/GenerateEmbeddingsHandler.cs @@ -5,27 +5,48 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; +using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; namespace Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; +/// +/// Memory ingestion pipeline handler responsible for generating text embedding and saving them to the content storage. +/// public class GenerateEmbeddingsHandler : IPipelineStepHandler { private readonly IPipelineOrchestrator _orchestrator; + private readonly Dictionary _embeddingGenerators; private readonly ILogger _log; + /// + /// Note: stepName and other params are injected with DI, + /// + /// Pipeline step for which the handler will be invoked + /// Application settings + /// Current orchestrator used by the pipeline, giving access to content and other helps. + /// Application logger public GenerateEmbeddingsHandler( string stepName, + SKMemoryConfig configuration, IPipelineOrchestrator orchestrator, ILogger? log = null) { this.StepName = stepName; this._orchestrator = orchestrator; this._log = log ?? NullLogger.Instance; + + // Setup the active embedding generators config, strongly typed + this._embeddingGenerators = configuration.GetHandlerConfig(stepName, "EmbeddingGeneration").GetActiveGeneratorsTypedConfig(log); + + this._log.LogInformation("Handler ready: {0}", stepName); } + /// public string StepName { get; } + /// public async Task<(bool success, DataPipeline updatedPipeline)> InvokeAsync( DataPipeline pipeline, CancellationToken cancellationToken) { @@ -41,7 +62,7 @@ public GenerateEmbeddingsHandler( { case MimeTypes.PlainText: case MimeTypes.MarkDown: - // calc embeddings + // TODO: calc embeddings break; default: diff --git a/lib/dotnet/Core/Handlers/TextExtractionHandler.cs b/lib/dotnet/Core/Handlers/TextExtractionHandler.cs index 5b6b012b1..ccc78c002 100644 --- a/lib/dotnet/Core/Handlers/TextExtractionHandler.cs +++ b/lib/dotnet/Core/Handlers/TextExtractionHandler.cs @@ -5,17 +5,27 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; using Microsoft.SemanticKernel.Services.DataFormats.Office; using Microsoft.SemanticKernel.Services.DataFormats.Pdf; namespace Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; +/// +/// Memory ingestion pipeline handler responsible for extracting text from files and saving it to content storage. +/// public class TextExtractionHandler : IPipelineStepHandler { private readonly IPipelineOrchestrator _orchestrator; private readonly ILogger _log; + /// + /// Note: stepName and other params are injected with DI, + /// + /// Pipeline step for which the handler will be invoked + /// Current orchestrator used by the pipeline, giving access to content and other helps. + /// Application logger public TextExtractionHandler( string stepName, IPipelineOrchestrator orchestrator, @@ -24,6 +34,8 @@ public TextExtractionHandler( this.StepName = stepName; this._orchestrator = orchestrator; this._log = log ?? NullLogger.Instance; + + this._log.LogInformation("Handler ready: {0}", stepName); } /// diff --git a/lib/dotnet/Core/Handlers/TextPartitioningHandler.cs b/lib/dotnet/Core/Handlers/TextPartitioningHandler.cs index 655a50513..a3d4fb66d 100644 --- a/lib/dotnet/Core/Handlers/TextPartitioningHandler.cs +++ b/lib/dotnet/Core/Handlers/TextPartitioningHandler.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; using Microsoft.SemanticKernel.Text; @@ -19,6 +20,12 @@ public class TextPartitioningHandler : IPipelineStepHandler private readonly IPipelineOrchestrator _orchestrator; private readonly ILogger _log; + /// + /// Note: stepName and other params are injected with DI, + /// + /// Pipeline step for which the handler will be invoked + /// Current orchestrator used by the pipeline, giving access to content and other helps. + /// Application logger public TextPartitioningHandler( string stepName, IPipelineOrchestrator orchestrator, @@ -27,6 +34,8 @@ public TextPartitioningHandler( this.StepName = stepName; this._orchestrator = orchestrator; this._log = log ?? NullLogger.Instance; + + this._log.LogInformation("Handler ready: {0}", stepName); } public string StepName { get; } diff --git a/lib/dotnet/Core/Pipeline/Queue/AzureQueue.cs b/lib/dotnet/Core/Pipeline/Queue/AzureQueue.cs index 6e6b0dc3a..81a5d19e9 100644 --- a/lib/dotnet/Core/Pipeline/Queue/AzureQueue.cs +++ b/lib/dotnet/Core/Pipeline/Queue/AzureQueue.cs @@ -38,7 +38,7 @@ private sealed class MessageEventArgs : EventArgs private const int FetchLockSeconds = 300; // How many times to dequeue a messages and process before moving it to a poison queue - private const int MaxRetryBeforePoisonQueue = 10; + private const int MaxRetryBeforePoisonQueue = 20; // Suffix used for the poison queues private const string PoisonQueueSuffix = "-poison"; @@ -99,6 +99,7 @@ public AzureQueue(Func clientBuilder, ILogger? /// public async Task ConnectToQueueAsync(string queueName, QueueOptions options = default, CancellationToken cancellationToken = default) { + queueName = CleanQueueName(queueName); this._log.LogTrace("Connecting to queue name: {0}", queueName); if (string.IsNullOrEmpty(queueName)) @@ -113,10 +114,8 @@ public async Task ConnectToQueueAsync(string queueName, QueueOptions opt throw new InvalidOperationException($"The queue is already connected to `{this._queueName}`"); } -#pragma warning disable CA1308 // Use uppercase // Note: 3..63 chars, only lowercase letters, numbers and hyphens. No hyphens at start/end and no consecutive hyphens. - this._queueName = queueName.ToLowerInvariant(); -#pragma warning restore CA2254 + this._queueName = queueName; this._log.LogDebug("Queue name: {0}", this._queueName); this._queue = this._clientBuilder(this._queueName); @@ -289,6 +288,7 @@ private void DispatchMessages(object? sender, ElapsedEventArgs ev) { try { + this._log.LogTrace("Message content: {0}", message.MessageText); await this.Received(this, new MessageEventArgs { Message = message }).ConfigureAwait(false); } #pragma warning disable CA1031 // Must catch all to log and keep the process alive @@ -301,7 +301,7 @@ private void DispatchMessages(object? sender, ElapsedEventArgs ev) state: null, cancellationToken: this._cancellation.Token, creationOptions: TaskCreationOptions.RunContinuationsAsynchronously, - scheduler: TaskScheduler.FromCurrentSynchronizationContext() + scheduler: TaskScheduler.Current ); } @@ -343,4 +343,9 @@ private static string ToJson(object data, bool indented = false) { return JsonSerializer.Serialize(data, new JsonSerializerOptions { WriteIndented = indented }); } + + private static string CleanQueueName(string? name) + { + return name?.ToLowerInvariant().Replace('_', '-').Replace(' ', '-').Replace('.', '-') ?? string.Empty; + } } diff --git a/server/pipelineservice-dotnet/GenerateEmbeddings.cs b/server/pipelineservice-dotnet/GenerateEmbeddings.cs deleted file mode 100644 index cb9d0220e..000000000 --- a/server/pipelineservice-dotnet/GenerateEmbeddings.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -using System.Collections.Generic; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; -using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; -using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; - -namespace Microsoft.SemanticKernel.Services.SemanticMemory.PipelineService; - -public class GenerateEmbeddings : IHostedService, IPipelineStepHandler -{ - private readonly IPipelineOrchestrator _orchestrator; - private readonly GenerateEmbeddingsHandler _handler; - private readonly Dictionary _embeddingGenerators; - private readonly ILogger _log; - - public GenerateEmbeddings( - string stepName, - SKMemoryConfig configuration, - IPipelineOrchestrator orchestrator, - GenerateEmbeddingsHandler handler, - ILogger? log = null) - { - this.StepName = stepName; - this._orchestrator = orchestrator; - this._handler = handler; - this._log = log ?? NullLogger.Instance; - - // Setup the active embedding generators config, strongly typed - this._embeddingGenerators = configuration.GetHandlerConfig(stepName, "EmbeddingGeneration").GetActiveGeneratorsTypedConfig(log); - } - - /// - public string StepName { get; } - - /// - public Task StartAsync(CancellationToken cancellationToken) - { - return this._orchestrator.AddHandlerAsync(this, cancellationToken); - } - - /// - public Task<(bool success, DataPipeline updatedPipeline)> InvokeAsync(DataPipeline pipeline, CancellationToken cancellationToken) - { - return this._handler.InvokeAsync(pipeline, cancellationToken); - } - - /// - public Task StopAsync(CancellationToken cancellationToken) - { - return this._orchestrator.StopAllPipelinesAsync(); - } -} diff --git a/server/pipelineservice-dotnet/Program.cs b/server/pipelineservice-dotnet/Program.cs index 6dc43145f..51e328faa 100644 --- a/server/pipelineservice-dotnet/Program.cs +++ b/server/pipelineservice-dotnet/Program.cs @@ -1,20 +1,14 @@ // Copyright (c) Microsoft. All rights reserved. using Microsoft.Extensions.Hosting; -using Microsoft.SemanticKernel.SemanticMemory.Core; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; -using Microsoft.SemanticKernel.Services.SemanticMemory.PipelineService; var builder = HostedHandlersBuilder.CreateApplicationBuilder(); -builder.Services.UseDefaultHandler("extract"); -builder.Services.UseDefaultHandler("partition"); -builder.Services.UseDefaultHandler("gen_embeddings"); -// builder.Services.UseDefaultHandler("save_embeddings"); -builder.AddHandler("extract"); -builder.AddHandler("partition"); -builder.AddHandler("gen_embeddings"); -// builder.AddHandler("save_embeddings"); +builder.UseHandlerAsHostedService("extract"); +builder.UseHandlerAsHostedService("partition"); +builder.UseHandlerAsHostedService("gen_embeddings"); var app = builder.Build(); diff --git a/server/pipelineservice-dotnet/TextExtraction.cs b/server/pipelineservice-dotnet/TextExtraction.cs deleted file mode 100644 index 92b9b4543..000000000 --- a/server/pipelineservice-dotnet/TextExtraction.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Hosting; -using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; -using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; - -namespace Microsoft.SemanticKernel.Services.SemanticMemory.PipelineService; - -public class TextExtraction : IHostedService, IPipelineStepHandler -{ - private readonly IPipelineOrchestrator _orchestrator; - private readonly TextExtractionHandler _handler; - - public TextExtraction( - string stepName, - IPipelineOrchestrator orchestrator, - TextExtractionHandler handler) - { - this.StepName = stepName; - this._orchestrator = orchestrator; - this._handler = handler; - } - - /// - public string StepName { get; } - - /// - public Task StartAsync(CancellationToken cancellationToken) - { - return this._orchestrator.AddHandlerAsync(this, cancellationToken); - } - - /// - public Task<(bool success, DataPipeline updatedPipeline)> InvokeAsync(DataPipeline pipeline, CancellationToken cancellationToken) - { - return this._handler.InvokeAsync(pipeline, cancellationToken); - } - - /// - public Task StopAsync(CancellationToken cancellationToken) - { - return this._orchestrator.StopAllPipelinesAsync(); - } -} diff --git a/server/pipelineservice-dotnet/TextPartitioning.cs b/server/pipelineservice-dotnet/TextPartitioning.cs deleted file mode 100644 index b09e29e1b..000000000 --- a/server/pipelineservice-dotnet/TextPartitioning.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) Microsoft. All rights reserved. - -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Hosting; -using Microsoft.SemanticKernel.SemanticMemory.Core.Handlers; -using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; - -namespace Microsoft.SemanticKernel.Services.SemanticMemory.PipelineService; - -public class TextPartitioning : IHostedService, IPipelineStepHandler -{ - private readonly IPipelineOrchestrator _orchestrator; - private readonly TextPartitioningHandler _handler; - - public TextPartitioning( - string stepName, - IPipelineOrchestrator orchestrator, - TextPartitioningHandler handler) - { - this.StepName = stepName; - this._orchestrator = orchestrator; - this._handler = handler; - } - - /// - public string StepName { get; } - - /// - public Task StartAsync(CancellationToken cancellationToken) - { - return this._orchestrator.AddHandlerAsync(this, cancellationToken); - } - - /// - public Task<(bool success, DataPipeline updatedPipeline)> InvokeAsync(DataPipeline pipeline, CancellationToken cancellationToken) - { - return this._handler.InvokeAsync(pipeline, cancellationToken); - } - - /// - public Task StopAsync(CancellationToken cancellationToken) - { - return this._orchestrator.StopAllPipelinesAsync(); - } -} diff --git a/server/samples/CustomHandlerExample/Program.cs b/server/samples/CustomHandlerExample/Program.cs index 98608a108..d3c2e274d 100644 --- a/server/samples/CustomHandlerExample/Program.cs +++ b/server/samples/CustomHandlerExample/Program.cs @@ -1,10 +1,10 @@ // Copyright (c) Microsoft. All rights reserved. using Microsoft.Extensions.Hosting; -using Microsoft.SemanticKernel.SemanticMemory.Core; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; var builder = HostedHandlersBuilder.CreateApplicationBuilder(); -builder.AddHandler("mypipelinestep"); +builder.UseHandlerAsHostedService("mypipelinestep"); //builder.AddHandler(); //builder.AddHandler(); var app = builder.Build(); diff --git a/server/webservice-dotnet/Program.cs b/server/webservice-dotnet/Program.cs index 9a71855c1..23c7c9bd4 100644 --- a/server/webservice-dotnet/Program.cs +++ b/server/webservice-dotnet/Program.cs @@ -7,7 +7,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Microsoft.SemanticKernel.SemanticMemory.Core; +using Microsoft.SemanticKernel.SemanticMemory.Core.AppBuilders; using Microsoft.SemanticKernel.SemanticMemory.Core.Configuration; using Microsoft.SemanticKernel.SemanticMemory.Core.Diagnostics; using Microsoft.SemanticKernel.SemanticMemory.Core.Pipeline; @@ -79,7 +79,6 @@ .Then("extract") .Then("partition") .Then("gen_embeddings") - // .Then("save_embeddings") .Build(); try