From e04092db22acb69efdb148552ad086f776897cf1 Mon Sep 17 00:00:00 2001
From: oisin-m
- Installation - • - Documentation
> \[!IMPORTANT\] > This software is **Emerging** and subject to ECMWF's guidelines on [Software Maturity](https://github.com/ecmwf/codex/raw/refs/heads/main/Project%20Maturity). -The Hydrological Analysis Toolkit (HAT) is a software suite for hydrologists working with simulated and observed river discharge. HAT performs data analysis on hydrological datasets, with its main features being: -- mapping station locations into hydrological model grids -- interactive visualizations +The Hydrological Analysis Toolkit (HAT) is a toolkit for interactive visualizations for hydrological applications. > [!NOTE] -> The station extraction and hydrostats functionality formerly in HAT now live in [ecmwf/hyve](https://github.com/ecmwf/hyve). +> The station extraction and hydrostats functionality formerly in HAT now live in [ecmwf/hyve](https://github.com/ecmwf/hyve), and the station mapping functionality now lives in [ecmwf/hydro-station-mapping](https://github.com/ecmwf/hydro-station-mapping). ### Installation diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 3c3c736..0000000 --- a/docs/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# Welcome to HAT - -The Hydrological Analysis Toolkit (HAT) is a software suite for hydrologists working with simulated and observed river discharge. HAT performs data analysis on hydrological datasets, with its main feature being: - -- mapping station locations into hydrological model grids diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index 030b5f6..0000000 --- a/docs/installation.md +++ /dev/null @@ -1,17 +0,0 @@ -### Installation - -Clone source code repository - - git clone https://github.com/ecmwf/hat.git - cd hat - -Create conda python environment - - # If on HPC.. - # module load conda - conda create -n hat python=3.10 - conda activate hat - -Installation of required dependencies - - pip install . diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index 016bb16..0000000 --- a/docs/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -mkdocs diff --git a/docs/station_mapping.md b/docs/station_mapping.md deleted file mode 100644 index b5564c3..0000000 --- a/docs/station_mapping.md +++ /dev/null @@ -1,216 +0,0 @@ - -`station_mapping` documentation -=============================== - -The `station_mapping` library is designed for mapping the location of hydrological station data onto the optimum location of a hydrological model grid (netcdf). -This tool is available as both [command line](#station-mapping-with-command-line) and [Python API](#station-mapping-as-python-script-eg-called-within-jupyter-notebook-or-python-file) - -The optimum grid cell location is searched through optimising the upstream area error and the cell distance(s) from the station nearest grid cells. In this tool, users can define their acceptable area difference/ error using the parameter `max_area_difference` (%) and the maximum cell radius parameter: `max_neighboring_cell` (number of cells) to search for this optimum grid. The tool can also be parameterised to ignore further searching of optimum cells when upstream area difference of a station nearest grid is below, i.e. when the uspteam area of the nearest cell to the station is already deemed acceptable by defining `min_area_diff`(%). - -For instance, refer to illustration example below, if the specified `max_area_difference` is 10%, then the optimum grid to be returned when specified `max_neighboring_cell` = 1 cell, is the one with 7% upstream area difference (blue). While if the `max_neighboring_cell` = 2 cell, then the cell with 5% upstream area difference will be returned as the optimum grid instead. - -

mGNZFx6zt}^MXx6wiQ9VfPC56qQ~Xr z)=_N6dd@T*FyB*ob@}SCd(*&S%P;pgq$vuP*K%}K$Eob^d7zzU@mR7%u&}XPa^@kz z=6>_kw{OZwTOl<%o?4c(0}W|~#l^DWu7kqC4doRTp)X(ZAwUIcJ@w^R+0@r~r=Dan z&3e}Cpf+BllWrw>V6%Vr z+(bjBbyx28=ZX>N-}w2 &g+0f0b)U{6<1p;mv*%+; z$xan5X?44qAkrhC691?KE?OUI-jsRpHoKTFaN322RP&NgpANWYWjX$$rg+6a(@3-M zFXr%M6>%I~Mqw3oT9=WL;WU`hJ=W!lEKK_ y*G;FSTtq6P=B+%*}0pIPyO{WH109YGA6f8BgEY==<7$Ztfi%0 zPHAFD1^9T6_}OREAtxjx#N4EP>eN~w10Qei71*>~5)wL-J-8P1tafUTL!S9>cHNB& zRqYwAiBVt@5)tXUk&~0t+SwT+!d_QbCwJn66rlO|?VE4j?0;WS@VQ >T+Q_IV(xa!R3sDxbG|JGLM$S (; zh grD2j~!2^S!iLM-h;FNj*)e6NHtJf&3LBD)yQO^C6A*fQAhUT z#pvc-21dq6wM1>QZg@?zfOJ5`vy)+9K1g@ln@~_(OoOy^(CPLk=ach5KQDCh#53*t z3|~*+$4>!BSJ2VbG+4Yb{QRT6J! isP*>L#U&G$nPc+4X z#$PDFVDC^KtjBv*_|B)U5wvJLVrO??e(slN!RODkeoT90kVQmAMTf8!Kd=IZH5bkV zx*`lK0h7FL#>bobl%0BbU?sYgT_A3}fp62ZvZBy{ZMQTTd2;L48p`Fw#Kimq5)u+k zb_03M&CS%Kn^=r4Js$1)Twt1*bK{VC{SOqTVuUP^y0> 6ij8;E4SL18@8;v Ofc8tSJeX7}|2# 8H2bcxf^ z@%(<6iMOXbLH44y|4>xaTfO&U$vQrbw=4GK%?bb{+(0Xdyhaax&@e5d&A8x{^{ fKd;emUst*hH)HaXH+ zmN`I8LxXzAhBZ2>th^EBk{%m&`D(_ESsu2dN2Dv+cjz~eN}1p7fr3c(ij$KQh0^Rc zdh&o}GwZP%Yx1$DhfxDLv5rRNkMgmJ2 +s>tU>(w(N4EpdT>;ld zC+0fw;rePO-<dP_^vi~0NskT4fy?wMoqK3s2 z^i-SUYgW
|`vmvoa3@zfP{%-p{o{`T#Mjet0CF*VJSM0(-@>FhBE49~B;?&TiYlH}?$6 z?om;|Ia!X;+Sa``=&5`2T;043I~I7cuzV>6J>?2o+Cmf^Gdq_`I?uBe5sx2h`AoVu zq?j`CYh_*op3C9oKG_t?Cn3SHY11Ybj<)&%mYEARBSS-%aVu&%?gln4)}P$j*_Fp~ zG_w4`KyBH(_e%$$UgmYA8{N{oyIg*qK_#QsEm@E7EWFJof>f-jSF$hEp#@vZc%*b7 z^6>_Q2?%2lE%u&0q9wKIcYuf=RyQ{_H6`2ksYZR}m{om>_~@xk<_0Ds)EAzc-t5%y z(8NR$x^;hkOAGcFJL_F9%%io =D|&FZRm_*ZiU4 z2aWo8C>s#Y6+|soeic$|P1AvI-*l=KCFTxXo{{_^iB?buo%mqEbKFf*TAC~%X|o#% z jtjk$pxTC735zNyiT1>}5!9`@WDLw{{YcL#? AM1EzTeP%EA0&Fr_ zJS8Qi6N6zBEbM2|46UZm$MxvjIS-gWljr8+TSMRqdKup)3mF+|1kWvtG)XUN>N0f4 zPw-H^eSD}WITgW?pFS^Th`}Nl1Ec{VCDeG3QU%gF(sN;6CKUUo5dFC?xb`2Q_Lf>L z@J`d@aaEL-@>JK1(dEeUi;8MG{@M+ygV6H#B|OEKEM0mAJTv9X!I#KnoB{&tFQsgz z-F)B(h^D=08~HTT*OBaT?i_P@ghar?Ox}W5US1x*TY5&u7G$gahM$fgH=s|sf*Pw= z|JGz^e7su3C{_qJUWh)}8yE8ge72DD$ku0y5x2omb#!;DeWLok0E+wumbm>ollBpi zlEc06iClt$OtxL0^1 sSFK(RUi1oDat3e+#|#a(V;N#*GK=q% zEeuTDQ E zZT*JrCypFBLQy( U2dc?(iMg>2_xQC| z;f+p2h_hK+TN~HBVk1(>0iY#eVPPT9dC^p}x~pI`ddB%kq@lC*zI|IpS9c3|h3n|y zPJ|sgDHsqtS?VxQ{}exC7IQi9?8Jj5DH{Hen>Nb^upe|e0h(g3 !>GX zk6fHZCrH-s()X7>ylSt0;Bi>l*t|z`Pg211aF Q= z%1KYcb(K6YaIqf{U{>h$kj gfkStKt4P6 d9Ymf&=dQ&~5fyO3?s#?kHr^IpD&P5g`6s z?o!RG-OyFmZ{8f2mH6FDO@`5t!N|hmRrYjOm{PpzZglN|JHnlg9x|)FU=`BpH7VkH z+T_(K0RyN?RnJbc;P>lL27cD3#1rz((7c#=AiMr%LP7#?w*m@9XU=5veiw le*L;n ze0+RuLxX~qRT6?g(lQ)8`A3C4Inh}Gq0gT`2TgK{1Z$IM*V{9;5yx!9CFp~8pHG#; zeuV;2q8}i(-H&lM&xE**^ro!58kF3vP&+c+?+e=+#(LDX0+wu~xJ({fpW(^7lrmCh z6tRg Ecc+k}M&6_u4z10fn=M>*~Cb#8JmV*%X@$>ULU{WQ8p3Y#b zxA3)gN?b@_ASXJ1dO< 1McDoKTkl3s zb7?6lqJbk8{Ln@bZO-HO&mB=S!<<0wCW#vEL(cracV0qLT9o9V-=V&JOwuhl(Y)i( zwr$c-F**R@sJ~*BcTiDLwY9ZzffeMdW=M@&(6I}#8f+BCXRd>sl{~w)R7#4W2inYv zRjb}V61L?T|247xOy`qZEl*y*tBjHz{w&z?1ckuL+B*MZ@Q!^D4%5@q@Ahszii8kZ z+8ab`1FlR?UjF@SgEG=*rDtYFB66p|RGn mmdizlXxfc5ds9^^;fe8rry z_(AmPH8$iItHw*T`!Bpgy46GnP+nfX-E;OHUdF>Ty&z~Xfu?gtW+5Pwhob{9dYPxE zr)j7p{){ml=`mw2H(|ZXH0SfV)@C$z@1R_kR>S!bBrLFhf9tPbi8HK;adB>eUp*f8 zwza({pBuebW$x{ZxS1FMVi0-1uLNJ{cWv}yCEp(XU;I|3j+1G_2Cu-tb#E_Km)6G+ zLyEf8HZHvZu9v&^@85vrkZ#|{sHv%0>OR-ndT)1{wf^*X+}haA*q#c@m=~|b7S~7q zpO&leA6M`HlW)i6mSv!vMWM73ZUDvS>cVWd#CLvBS>7++*J)&39)Sw)jXDTos|_8X zabx;EsBLtPj*h0GGI*lOy6ise!YnK-c)=11D6i9}PgCfVZB$5 G&vQ)3M^PLqFkDQ1*MfVgZH;zleC&1#kpMP+GtfftxAe z;VBfh(bd&mv3m7>VRu+0n1yY&YI{r@P~KrL5qRbXh5G(J{Tt2MU|&dE7%t{IgmhVU zK@060TFPo#BSXU_@OO*^hK8!KXGO^-q?%={+IijEyC>)jeMFtSGOpAb<@aWb#|-VS z+?iL+Q_xp0fZd~92G}?fRf%9<4#}bRjS-!;>%hUNzOa4z)L^d+_j({bWRCWip1l}t zP-b4IlxvUJ6O$io%+McL&vRX#qXUKf2CNBAuC9Illj!=;X;V>1!G{{Sg=-x>nmR@l z5Sbc52#iv)vVAx9FYc!RTmwEgrm>IXK*{S)J^iw@wMYfBJ`*e{aj&Xqgm;I?#|ZLq zWm@mnczeXg=Cyhs^6*V?l=)668nh`fEnbWTRpBlFc&GdhJ8uIfnVFf{ 7!w7zZ>Qd}Ws5Nozq-O!WTV%<^261aR8<+v z9|=dXh&v9l-U$wF?drO5`7#C9uMZW)xbF3~`c!kckfxS^%>qVzTi9^R*Ozc4BwO_M zYOrUK%rbUb#g{V_Z87pq&y5r&Zh$boLSF{v1IFtF1O)cF|F(;ciFpbnQ~TOrH5!uy zmBn0A9UJYta4!V<`uBwM3^vu5oYJxUjpzPcexBc>=XdeU2`_Hyi>!Yp9At^&cvWl? zxu0=nfqu9gdHGfAH*84IT166)G=9j9`%^khEsQT**Y*DRcIThp#=Vxjt(LGJudMpV zcltN~C{{}9rPj5B28M?3LF|DeyXxnskdY`M+W5NjkOf~vC$5ZLnqh7_VWUc_?4pV8 z=f7p5iz}rT22jI(x%;Y=I^)HQozc ;tSN_pSC{V)BHrQczn+_Zt+qRxgz@SY_b-Y;a6>%VkTIwcoy-(p%r@=Sd#_dk^P z|Is?k8qmb8n^jqf m?!0_xRP@s}K zLCGy8)2M 2baT91YwKtm^AWdo`2 zYB4=QW##2E&_Va VPECUz;spv**JSJ{Y)eFL&wPrP@9 z*)}B~?{it+G_lG&voOaHa)R;$)S;D~-3Q=(+|tu9%f@tTSSMwU9$g}}4CFAl3EI8r zgY{}8;7~>H{rSQya5eGRg=dlAW9UG6XBN1)0?g%dKylMh{evNqvaf_7Mjexsq{`08 z8832mb!`V*O}VV&F}*xFIT>ZL`mxSr%fdX<$%hB_oom7UtYc$KU@8Cf=~`Z%gbNzv zEws8{ILq$&`R|_j%T0Xsh*GUq`OWz}Mk#jehP0I6E70jX`S=c)iow_bmQj#7Q8oT) z>ex)S-nshG_}wvlWop&t8|W*e61l|Rgp{;#Isy};3kosXE#vIu^scB#re@|@NO-u# z7X{hq!qo?XUwD$HCb&V!N<-O7f}OIXqvNj8Nf%HG1a-io@zX!R&yRN^^2VJHA3kty z-MS2Z6CP6^5|gUB)`21}V>=%TS`wP&Jv1fIkvyP6E>>o~e*GFo;aeRY7eTSipk@U< ze7K4NcB3d%$HND&TU8vuQ4B^R@Zm#WK=Sh%;(y!Kel?_AT|CK1lL0Y9A4p`XJHj)` zZQ2H&giUOR?T)}1wAZp(R1+#ezx}pt+nz!?F>cNlzC4qkfPYTG>q(&yh6uoAAL<&} zGBAVY-`jnD9W%4B$uzkEU$rhBhoqDg^d`%4X9h)JR$OgV5ndQ(nd^fX(FYKdQ&8Zw zX2Xtz@F5D*^wTgS7^MhvV`FPO3 ?DwUaWkrP%WW6Opp%xK{0xeN^Inp8Y!!={bW)uO}^0u_5*w53opjK^U35d z#w4&DAXQl5SXvJ+A{E5Vs8LWB7eL!HGN}cTbPik&`15C0r1$e`L}#b)s2DD7kazbi zB9BT-OK$;-4SZ!~Z=d2IOx`)ha9G%eTnBENwkT06ixEJK@9Y`!J7od93Ai_itGaue z%gR>6k9_=rFR2!hchp%s=I3WDqa-RBn3-Q>1?|DMqE}({^Li8-%Cx8%4TGY(o|WbL zcYi@m$9_w&*=Z>xZ5iwtkgZ9kHT<_&1lPh-#$U0ScbTVY2+8H;ZSkrSAO{FjO2}n1 z^IwV2AkBilIQv1^Ci~K#ui^y51{>2kLi-6J9zi_=rN3{H*oKRAk>guyqXA-F7L0jW z6eGECp5=aCn)qlu&ntMeTw-EupekIxIu6vUbhVK>QgQ%yoo?Npq*u5Kq!^7qi{K6U z7@mqu^2-;?@F0M{8C%>Z*<2 &D1;jzYhy!iD^- f=_Squ#gy~7;A+3 fQ4ia2bLYZIGem!8SIEpCNPNudTq8FV z8=Lt=Hd4_WyZvN4UqsXlqT&j =9_N`>fkO*zn#V*SAL9?RF!s2YGLemiN-jD4A_h0pe{c zi}VQHl|o5=6l~(TW{wCCzl~-(G $~+J7D=@Hl%Xio?R)`YKY$tk c9 ?id zv+>naz-dpFVoS5w$+Hv)F4Rd_%W`N9#39}a4e~f%Y~;(WZ3X6<0=xrrc@xEV^K4Ns zq{LFqKQl-#=Op}GPvKA{Z#Vp5gCd23Z(;=L@@z=@j&q7xYXixEJR+!!v_Iw*ZQMbo zL(%1*{3BJrRf^!=!R1mwGAHI{$`Z(C ;ZI^w(Bl#EsA)4FW zAIR;9xy1|yZJ=MnA ^&xm-LcN;DZ@AJn8smm#Gr&$#fKWN&(P zrvH6L?thWo6BAh6lGyDZAnyLrtXCczE?JgAYIeM8!fS_3 hmv8AB1j#Ua5CIkgDE_$66i7An@3g9pdA zsL7K>bgtFNqEJ9j{ny=td`bd*@f}@Vy@cVRqBuJ{mz0&gdGfn0w))=g=YOK*Q2XiE z7Gby)ZD}_{-XM9Y5B1WbaxqG9-g+F#^MHd4N`Y5Y6!-U6T7IyuHMyZO9D~hp{rdHG z?J(^p8&`6@JfBwH@f!-VFP!_EZt1)+q{aL}nWZe*1MiU-X^8OzK6a>QdIL5upDB%% zFmwZJA*3$DXWQ=w>yt1j3GI~c3D8#5elFSN1_c}%s^5Q_DJJJgAzL{B1}51h_D z0L<49T$A+TJI{Y8wV&YrzurmsKQUG=?a(9)zq?@CL>Hg4S35!VnE6k~ONB{qyVcIi ztKUnEYvAu2F=#pj=$7p}^+`2S-a7f1HONI2g{YbtYRZ32T&c$S;$};J^AxJZ!=5B$ z+jYxg3U`j~>PA=?3&woV@%Y2L5(&Er8L7*iYFkZ2NceUcE%*O*hwTi|S}dhKXc86V z<%!?UuAttJo{O718BlD^<^wCxRo)kOKMW(z7mQrNhrS%%e!R!u??KZClcetV=*Dl9 ze1(*_^C$mK{i0j>pf1^!fcDY$>%>Sbk~rSC{^V)?Mu_N*J Uz3( zyTS5c|rx#|4mr^s_Hul@D$sa`knvDOMpsxY<0911)%X2MTeIWDFjO6 zpHj%vjV;`cJzusEe mgCcezlKLYhb*nF3PdTyLW*2^+pXYf-h(tp&NTlOaEn9F-lCoy{&=$?uK zC`KBMm*~H-o|)62K5l|P*}8QrC!BQ{mlQ(5v1bw?77I)l$)xT3XO?Qq3`uUC#JK!V zES2i7Al`DAv54}7Dv&b_{U+UQT7W{vpOGO6|8p9RQ(B8h!$n|tSP)(hz*~;K52L zlStE1M>oHJB6)8&6U+ID&iLNcvP?G>)QmI7dA_>dTC6!rG{Omy-Pu0g&FN%bwnB9D zmU`doe^g0K8K9Er{B1=R8LN NiciXUfBnkn8BYdTvxa79k5q3{sq&6xcbL58Le|eJm;=?9aJJ zV7ZkEVApy!Q1sW$YS6SC(Z>~^ 5Oz f{8V%$jAE0zY-W?Or`0qi{pL!>V{=&a %Y7=}(7|U#ji3<9; zvvGsUVRpf?p>*{d#h(R4E$+2i^Rm(BV?Lv`yZa{g$>0M$m5F$j1pHI|;K!`=^r7XZ zRR8oB`y&W&R!GW>W6>qhaO2;2{FfLIV~47L1zKB*!kLZ#^q1TU%F}*CCGo!N`-iN& z>ObY>Rg;{C^+1TihDZe&?;To`1TCc)!NubUcyewA1O%j%#n}-%|Im;X25B%G4)+7C z%U9`TFwk9(h~OZ$M#sThaG9z 1My!D!=;1*_yJL9t_%UV|u47vh zj=*I!DQA;FcY1Qp8I!#wVi!RQGfQ}gk^>XCWp6*hn-NHR=~7&ZLi`xWpKEX59%#ap z^L&!S@sLx0FYAiKseoBCI(TA^>gjR0xw(D8G;Cw8`^*+Kjf}f?jg%*_P`M0Pq6?!- zeqXv{%N8nhCd9u7oiQ*Xg6N!_A|mGn=^Dbe*xqJ&Hz5 (3U~Wg3HWO`EY-btM^~DU*fW5X^E1h>uINszUn z=P%@=S*wK10Q>5>tOJE#Qun3iRY9mIK!55FZB`d5Gq&OfV$MfrVH&Es%X 8LAg-gn-;=g96 Ifa(CC?&y`l0)c`nSWzI en{E5L#nH7xefs8xepoLX$K6hg FPxbDW%y&Ryb1#wWH6T`5)c-
WY2bB2Y3=Y5PLT68p9>}oUqrVTVaLX- zr+2=ezetUh(o_U3YQz6p?)}ey>*9?a4IYQsoPtNm2m(3$By=F8JCi30asLz<0fZAu z5d7TV@}Z|BXx#w7aNK+09fi22Y9~tLjA!^y&NRF=*#Ip_J2qT_YuklDZk`xiwmxWd z;(UaU<;TE)Kg6L67z<9f?LL)UmTFqF7HlVkh}~ytv0WzNGChh}V{*jCEa)qjQTU)& zps^M(eJsDmomgH-&b(ATm=}_O3x$G-S67Aof+q~V8Sj9Aw4)*4Q*1irVV7aTDI|MR z2LMFrpuiB_5~Lian&{qIwy@*EWMN*rUV|Z09SmS$7UkLdH0iOOy14A?7>HSoO;`*D zorKm8u#6zmXkf^@jBTn1_H%pa=dv;{Y#3x<3{{nCmLWw2-Me=KxqJ)IKYC!}ug_=+ zVHYL~M+*++_|y=0iyW(i0grZ_h2NpgPB_V=zcFJ2bdXdfgU&=g$zB});Y0?a(AWl> z!?fy(X^b6)<&S*G+!Y)$LUujtfHjg}5Mvc_c*)lpW{yKo&cQHttd6mgyP#fTLOyyc z%tUtqjTBT>?^XUp#?D+=8VKD;Gu*jr6HJ BOgwOt$wE7W;D=G&Ky}Gr@`ou^|}# zN@YzgEx&}Nmx*dh-F}mnWjmZ}Hgmu2n=&~x)!=-w8*E%0#>S6Fz}Ly?=|xs@_(z~v zczcuK#t=X>IZ$?m4GrgsWi-R4)7Rp0y@4aJMRRxD2G!c#+BEWQdw}5ZowzMJ?&p$0$AD zP5PZ-bn;$2Q|D)bDQFrcln0!*Ab>Fa2xBGY`pC|OtN2*aZ8ly^*kz6*F_uD7=)`0; z6UbjO!CxUhb0QJCoF$G~$>zf7Qd@sN9~zAy0LrE@a)u5f$pDHQF@qvz6V1gi3t$gE zh>Lh}F@jD`*|5++)Q*LJ1(mr;s~FK0jgtr#4WK5-zF$)&VG4Y3(DWYhsKV-q^JGf# z#Oy~I#a?x#N+duPSxpgkop@P!*r#Nj7i-W1 R~j42&? zOi$X4n$^EO4v$lZ7o9kUZZ;l2b?P2D+(pnGNthgWff0iM@YOP1pB`|7W3|CiC&9%} zK$Z#EcAdzvuAiHOHVV6M&(Rw(lBW_>6|hE~IAP@ue5&La1z-ec47_z<6OwaIlHa@u zMlMiI3x^HX+QH$w*z*YYi3cc#CD^gj9Ujb=T5@wxM-&j6j}F_*laoL2KIEVXu1T*) zu(po%*PX>Q4IeSkZ|;D_oID=^=)}U#Bhh?1xtf>+CSRna;EU=Yv4+wuuc7hKVov({ zjT`cSQ770<6EGg8xcQLTPIBA@l1wR*0GTOALiJ}?vu$Yc0!q0EgVnb0N2Mmwz(4p2 z3+s|2n2$&l#MqM7qeqWEeEfL4*<;4M$%!I>L9`raKaVeB=w-=q5IN2m6}o60h=ZVB zQ35eA>f_x?6APE`N4k%ZqYrJ+MpHdm?Ls$EVq)H$txh55Gf7KDV|R^U#*$g91*c3& z;TQ!l<57aSfI$K Q*U-ZmD1`6@sAj9F}&b1x{QXVtSUwU>m3L+;0{2D&4TnG4VhZ(^LOn_ zNJHZ)C5Vwnp +3Yi8j3ZIF;hV89 z0JeOA!_zPW_)73pR)j`T_*aZaEv4YR8bRQed^~GQPqd}a)AGPp4vmfRrRL%V#5Lp6 zP7Y#1RfvKv)jzi}XnjS)iQ~s5G0sBf_0%Tus6Jhiz3e=o7*%=Ksd63tTtGs~YEC6z zNM=VtRe$i=;L^^4!5hk?#ARQ&OL-g~*Z)w_eyh7>=T4C7Q1=KLs?B!Z?}3w@a74>; zSTA>@(YsZSQ9gfk1W$;_ljCwwR7?yu4PTf#+faO5M&qh4H7%q(J>tr{QomRx9@;yG z0;dMjS_m^NIFSEN`7Z2@7;4qEaq-`La4*6Ot{Ga~Rdv|2oYL|9cFX>&S7|0!rswGt z6+N&myG0Y=gBjjRUSp2zOX<<6OPT2|+ EvnaUEUVCpc{ZRh#FCehKCH9f+O#IT@Dj6=#bNvnw70pWSR=5<1aXIAb1qVyKrE% z=p8ZwghWqlW>yN6T%#|3wrw9)YGyf*7?DC6tHkiPSMv^A 1#`203zHK83~gFCZ;99>Xk>UESP1x=L22d-xY^earzE>ckl?S%o% zHK_1jbK^rpJF6WaVkbf3?w9Ayx$1qt@0p)@-^;=6r!KsK0_Z0|NKQ4Z$PNje-0p z79d{Uq#4A`Q5``rK+W_6&I!vAkBmci{9+^H9_?GRvu-$aY&{xE3?K^Ov@0LT&+Uka znBPOoE)&HDsi_dK!Wuc3tQx*OXj+Hz)`na~#7CmbVXj3FPT(mpX#UM~gV?~N??4tC z#xz1Z{5q28HQ7C9ttpe17sJ4^0R6S0UIE3e1+|Z5y$Sr^hKZ#201($eXeBAnte^nz z=0mCXBExV%>F~}=>_z{IFs;>bYF)ktVj*c2GHkoykMKr%(?tV>rG^ONweIX)_|YIb z-XI0pGW(DlPG4alQ+il~eK0mD{R-WcH#_1tDD3a!laGrb13r`^FnWGTH9tSrS3@Qp z3vdQeGA1#yG4u*ql&9JOrNEn9eF2@s2W*TaU`4VlI3mq3_WOP$V1f>TdZpnzBqnJB z1&PfA6CPgJqXn2n#%s3|C>X-4)`pcO_G;+-c&F0!X=jvXmJZTrySmN@Jk~y<+<9(z zR+LK`GTEJ5IOqtylN72Ouu%*wR{}=mtRKtEzkjCTX4=Xu^3emJLJ2eFz$`eb$YNqZ z_AMQf4jI8f2Q-acheIBQE{-AxlG9&6!T3FX{1`07N7O}ormc|4*~K)lL&hy6UK@Vi zOilnJqc>!b2d8wbr(oikK6plX>^&8I5Jph6q0?^%W@&3}-2(Zy<|Ke jUY(EM5!_M3XmA(7`8#5$qe&@3UYGZ&4uttL(zsh_0XG~xYl2L211$X z*aSCSRWoCUB)XUpB;Vc}I3&;jOGpmv@xd`tuxFQ{kr==C@zbZf R diff --git a/docs/station_mapping/station_mapping_search_algo.svg b/docs/station_mapping/station_mapping_search_algo.svg deleted file mode 100644 index 5a4a7e2..0000000 --- a/docs/station_mapping/station_mapping_search_algo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/docs/station_mapping/station_mapping_visualisation.jpg b/docs/station_mapping/station_mapping_visualisation.jpg deleted file mode 100644 index 5ab1f006f0219a04bcc148b8cd752cd3b744f221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 141832 zcmbTdX;f2p`!*V@)+!=(04h{yRYaLmm7!H6j{_o5OaUQ4fV3(y1W1t~Advm2RYXJz z3REbhqKqLRLkN(NT^R+8$QVfo5fG3e13@y7Wan)E=dAavbv~W<4dDZe48MEd({)|< zy|wSO?-5_Sop(Kt*sx&(;#c?wq2(dYA~t^U#pfsd*aSZ}f3 $PwM@M(ZuCH}>?A)QF^R>a(J9qEV*Vo^!XZVf5o^N*T(ckm=LpE%L-?M4+*3Fx@ z?$OoJ-SfZw(Ef|q`PGKrjpsLR*pK*P=Z1|tH)uN%rU=A_&G2bIANc=yZ1@5` G}kJ)qVX7 ^bN2E*D(gyf69qV*LCAu3Qbd z78({F5gQkuKuk=!ar=)uchl~r-_LpUI5#i k>i8# B);ZhTEsQ}&g>=! zwV44^i{Q15lDtxmDTvgR%ZfXt3ipn!+t)?qhj>?;i!Pt%J{-^@QY;#Pe=Uz(n5p#g z%(p@h@dye_`R$s6K7_ROMSwTqBlb0Ix^}xVye{JFkNMYzF0K0FesU6$;ykp7O-%~r zA=KMO(|qWespig&Ew_N*#9aK#6D~5ZjwvD9<$T{bAOCHwDzjm>+9DZOA9c}76*`77 zmHdL-arV&5sVLVs%SiEb6$Q3shh+ItQux$9*DOs+7tS&zSYbR<`$xdV!qn+xV@tcy za=Z`Ta-cEEYne|M0Wl^msO@3L1e0bDOaUmMUo%?s6NaL9Pn`MVD^7V1?_0 Jk=-)1^UxAE<-Eqo%F(6*|*$PH#c5ugBXC)fx znT$5x8+2|ee*R=(ZoCu}m)F{HY@(Syb6r;)eYvTR8FE&S`(2Du4m4oC4Z8A^*DWW? z2 ;7;Tf=Nq6@e6>{P~MTt2a18hKvH zfj0Q9=Vetyp&PrLy5Kl&hUk~lll{mf7x;iDBn?-f!+g)Z;KH267<}<>JqRN@fY(g6 zj)Ida_|PvFtca$_Ua6+1rsH%0Cilq`FW-#N0nfG8=U$awUh=F#vL1 Ns$W4K1f6-qWHWqNJX`nHRuP4VhdAMPe^rT+RI!GNob#FL* zZ9r|;ovTIsM`u6 {w-OwT) zqTZL8?3G-kYKqKn$75TX2$T7q7M#Ptd+Ow_^Yi}(yh2YCXdPWC)+<>aEapo0Q=$w{ zu6KBRAM##S<<80TRMFOB7kGUHR;Cp5%t)F&GxqqYjUTxxSQowwPZM3bjY`4=lJtny z_|9ivr #Ol zxM;AX8q*?*K_Taq+u8w1(O*gDfxWWP9%0>6>?Xk!|7 zs6!gf7W)I~^r~OPb##i|xfnaA!QthZ*QtLA==OKpQjS&t$#X6Dn={>^Z6Q; @v?(CnNX&76fzFaG%ARR!tW#9L@z_rFXDn$>e;$tAR2hn!`a zc#~sHcXr&)Ahp!KF$Ax!d;yes=yVE>IVo`;TvEj?sCQJc;sU|8FfkuJ@?BHjC6!g} zoRHTdV8iEu!>i7vvGR3nEcu^xf_jgt 9&~BUUf*2{y!^${Y)XYiqS^x 63?sD{a2 z r2CgHuKtumy*MQqogq}1-c{- z&Uy>_A8VGX 4+o#L^b`Je);c?@Y{0&4G?H3bR6A3~Ep{{B-$47V4&)?J<2_RCyVs>(sF@7`Y5 z0CeeAw*tw+qnBO)FTEU(|K4y+VeGFNN!B7}=8y%Ty(v5Gay9OxdtH$hakr^4?h--d z)O{YU*z7VE@mDwP>?bogvZ_oBFA#xtJ&G7k0u(+Y{ Eu7}+yBbs1g&5FQy*1A@v);YBgdF-LIdG1%*k4;Wi#!!x!{)3XN4Q!9*X%Sx; zG-wewf9IT@0u)DZcT-$rY;~vho$2-iZ{gq3kF9fNO-gN-c7-pr8s8xl-cYNSXc9q3 z>J@CVW#Phi7chiZS_HquXYpJ?yv4=PMY7tV{4Qx=uI6US0`$7qr% b+0an57BF>dFc^Iq?y+ z?ZA{+_alybU4gn(aOzcYKwuYRt_FV=&aBcz@8CB3w~3Y**M#HW;s0VqV!8_inT ?zR_*Vtu@SrlGPw+c$Y8`ATw}eNPld%FHU&! z$p_b{_sXd|IC%{?fmY2mISnTz=?mV4gr$s)!(}x^Wm3x<-6*ogK-=u5Job?XB;Doo zzExuNf@VUC_!n<_>2r-pB)HNVTeOHj4*0gvivW&utU(tb;&cYkG_!yBX2gF8j#kbV zOdm`Y^sI7Bt0u-L{rnH=nCFI`++QvM04*Yel9_a&ySjz6TigP^rvw|O_442EBgnx| ztNO5MdcR0&HCv59XfqrlMEMes#J~eF#NnrpZY+mr5iASM^M|;o1D|r?_d4w{T|IzD zDR%20{rs09pO&(<8q~CP;R+j~Jr*fafPN;Lw~89T2)D|HQLd2y9Gv?`YD*fL6hL)b zr?B2k6^J{IanV!nIZ}QS-Odg%)=)3<)Oe{D;mU+MIo5WYl~BJ0T$NHdV_Rv@T*r`n zHwGu XkrQoyUs*A|h9e1zza5SW zPD(jm`E^F#_%VCSd^q-R<%h|S?*}`wb~)<+{T{uz6YMD!zH34d1GMDSN%!nR|Z3KbNuhpNiPjmf>WmcH9Kds<;Kt?%fy*T z(2dx-%f9=`ymLU`2>8CF_}e;fq `FD3{#EA7wJkR6oJEM}xpu)OBs^p!bt#B3s`-d-L> zR=W&n5viQ35hIS{mr!R8e7@?6Yv-R_mXIpu9Js*HoYn~W?aL}~-BA5SE%!p7 zPe{Lr{M^YH{)!?+XlDlDM53{OQ(Zv ssB+inx8tcN2)o_O{J4SbQNog3 z(Ol@b6?UKJZs^O0yv13s!1DO7RDQ*(DHL~+*SVfHj%_!}O%pN4lFHoXARB11K(F2U z?9Yu130tV9FTQyiJ)J=~=}97p?P3!IPNh~ 1P4{(rgF&mkYpbE)e9lcrpGuWKi^bH67FWwa!B=b0t{p;-z% z=ETkfMMC8`3D*oJr^eZHeV^K=**rxJ#QfI6?Vdgudj3-CN3zrWC7@7K%TOoh!Ifi2 z_;oTd!c^h~>Mj@@XD7XH^BR2WYpoOX5= zECR(AocW9QK*?kLpnbD2RPDa~?a2})_;0N`ng0mxbSv>Z;L68XHx6)38r+U-sBW@Y zm~{|L))ZnBv R@1(oP~xg82eDN zmKV&o)^`4m4oQ0)yqQ0omHiPO;*2W@BJ=rDA)$~99;?2BExM*cH*sv@tuOMi%hbA% z#3w9349P=PT0~E9`IPnLm9?cT`=q%$^k{mRW4S8{VrR%h5&&_%79of?;ktOBQZ!p6 z1Hyf!OX~@Bl!=9*@PHlpCdxIPC&L5}He3N2>_j;JUwSh2Wo0)V%_v9x{f*;ZWvX$< z0H9o=MciO^_$g@S>5eAr``QZO#_(b_8abVeYfw@RVI1!Q6h_Z`2!!S<(Y3iw`#;*> zIP`qEK~wGqW(dCy4EWCqU@8HKBrO8&CQm&ra*k4LaDQmFra{}nr%-mJ;i-LIY*S5O zLtq!J6~4Z9lv3cOi=%O6m^>g&_T|$(M-P2mJw{T3tu$q9sD0_oS2foE)P=?q?6P4L z@|&Cisy8ZN%3kX&A>Di)?n_TN(fu@v#J1>s+kq7O6n;?3w1{T%y8ac5(aTqia$;3tTvxlC za+5wl59#0(N4BKdT;;O99(nv3dimy()qC{LFoODF>h9ps3q3M?4GL;++48@f|3x|L zdw0@TVA;CNhh`JDZfob|M-NPC5eaqce6NZ(&shhS@dCwRlRM=Xz;Mak>OWH$W&YWt zq)4A2Z)n@;_igrr-+auE4eEzVhK!pF`~iOLL$zz{ykC-sf$F^PssOJ=Y$J@rzTd6k zN|OQI7fg4d@xbVB>8wFZrB}Z-#Zoj`lhp#v4UpkLTgHTJlm4AL)4)BaIWnq65ZHz; zgUj>e_8a-KQqF+pk?bDx 2?r{k=7_ zwQ0+9WZ^E_Y(o-fS7SY!F0U50(fdJY!z%nOv>wGXuZ99>W|>D6VTz}m;yl2Yki1`h zc)hcw<>F7ik3;%McRFAvc}f26%Y<_(q4e&!G_}TB#S@hYG-MH6AOFXNZJk!pDf=q@ zCz4#P5(bF7-Bc_gDIyW$+%mQnm+ljMxD-RM*Hr-nD&R(|@XI&6j`hc^)DMq>$8Bpv z!&Gt+q3{E`m9bl~`?K|)7E(PJiI|`jM@-YG%c8kf$;G kMqIH>h zYDz`@(wxZ*6XDpGuvs$%`8aF!QtGwS!da5{@?O;Y>dCMF*x+z0-rYB9!XtT?x`URg zqdE!=b3=u8B})Z&3!epk?0r5_%FLelIVaDm5WEYTt9_<;duYw92ErlVsFnSe&>A>V z3uoW^+@_oWg--X-n;c7zihl(^_DD`>5pE0RUf$V_AvRY;1&2!*J04Br6qZ+u(aZhM z9W+0Wf$Qja9BjqQQ{abH);F$lhk;}*qD)n#nt`^#(BjZQi5Bs05RRzlavupwy_-W+ z+Y>wVL`u09u})~M4q5qDA9atkh#{*FDE@Y`P!K#vQ4L_j=3+`xsqzrPfjB-FM%Rq0 zx=6wZg=z}COFF!;^?72$xdzUs#wXDRV^Y*n10NMti^y`A4@Rj@LA@+Ph1&on!o=_` zr^|kwsu?3!j-L;DPs^P+SNOy*`W-o%`%e55ToqIvWG@NocF9fsS%?oEQh^^EFzge) zkD{jdKaFB<)DBp;r>H1PNM69zw06=S{wOUgUyIl Z4-S~6EDGs)V-lvi4KArt@ zCBU#5T2oNRJf-pvMt@7K4gaOuU5l`;#^QmNI 6u2(@f0a2 zNT@9a!}WIg|C?8E3`-dCNf9)ftLx80dWwBfcjb$JzauA@r?sp0a$=LP`I^j;{*wtz z=7o}k33kJWGOQ&^LT5wl8$i1tjX2C@HIKzKhlEjmr +srn3wEh-Ja3u zKbiO|Gvvv1x=&F4d`*YT%Jk0yyXRVjg?ivKTU_a`F@mvX9(a6VwO)%D2=NfC>z f*CZTM)f1Kxiv$(NPml-)fh$6F+sMbB3j1{Ynesxx<^XHTfJG>iQ6{?C*?I8A4* zu3~g1=;S3<#>L^$rg4f@HLM09VM%DFkOOV;{6^K)7nnVFXoQ6d2;|nkEJcS_AYU=A zx_WC`SIPQ`1p_{`5%VHq|7=R7Ee^%jaAyUCH-k|weE)*3{)1SY29K0eShmxNIh}pL z&dUSXAaj+|`tbFjPVm@)ltRioHEQPS$|)vh?Bs8G$h8Wg92+`OOP(qOL?A;QPkE}i zi{3Gj)YNM#-)Aa1HfWLZ@* wZ=^QpgE z+Gd6_qZ9vT6|T5n3OeH-U83^n8ev7x5ft0@0}TN<$%~ppaqdwTbA&weyr2qlyaV{A z@}eTNG_1Afo)M>$6B{Pei5Rf%>zZqbRu%4K;aIsJPZ%Wzd?^{F6+aD)if&2(q9=ta z&O0q442E{G*D;}OeZQYS<~XTEbYeWNs4~KHX4qHBa;zLFNr8Rg_ot%A^Nvpxv!lX& zmEvJI0qbv*$^h114QW5~h*sCbW6freZL z{2?mkc9%!#W_r`m_aT}grf3PGH344$2`{L%2F9ty-UNc0M5azC9lpx0SGrY^PrzvZ zdPPUlF64TdfH5Zs_^U6lC-l9k{YuSvZctNIWW3U{ZHQ@kHLngG8xyPBo|0kV&`Z~3 z$(k_PiNr3$6WjU*OQ1DYNW2R_m|Chxx6{Gk*(GK{i?Tu%L9r2IcA z-0l2ezg|p` g%)zN%yiG9GJg1jp=AAW#7#E=U;#3zC)8M2xol< zbvC5`)8dc1Ng4#_0;c0qgL_U7iH=)L2JurEJ4uUL1l@1Ftkkl0yd)}JzE>cwRp}2e z-+S;(?~g?_dgd#dwW~VACsiOFH@w1mmU2STRfg7YdsqpjB~(?=(NI}Xr5ZO8p%lYi z3)@oFc^vq6s7ZD-JBE6=|1Xt;#wgs&8QrEfW}UBE@3|94y)pW}r2*p)aNjMCu99z& z%ok1cTi>CE8nuYwYX|fegh6UV1Osw*XmR#X5wQrW4zkf>hsT3-8Bh-@N@rgnMta zh&$oor4e3}SdUa4H@5WT!AclR`=-9hij6OwaIPHh&}E79=O$GE82pGD*jv7E )efK(Bhcc0IBV*QUx<->eb+<6^ zsV-40oz?<^OnveR+)w=<=XF-yqhSiFj2OKenp{da1+>+fic`oa^_R>=Xfo)yUtw=% zu<@O7S$wK0H>c?V+TJT04wd1_V0Rhel&QGC3D@T9c(gQdG8o1$%)BwUJyM?-DymrI zf0PbelMXE<{_30*HAi4*I;-eThndZz;NWw@A?sIFg+$GIgXxN)`s{nn*$!fTX%|Ju zH(&0Je3R)znmM%KZ!uX&vCah7y~V2}S5GbC(}{#qoq$%h=>P$_UXIp$K{L-gcyg2z zNrm+*pKDD)pruV;I_C``w@{q=i7-WZF)qBry@tid1*zs#Y-oBo{mBzqH#(OD6tMCX zLDT)=>J8!Xl!=~D>*6Jk8eUPZ(|j-PNA_$W9F2`pG!hJ|P1QQ8TuNkv@+h)^(Ig(< zrq1*mk-sUh`|0WpPC8`a8Z+1RtV q0PYnJg^5(%%<;#4U8xbjRA^wXE%>!}dy?+`C+kRV-Q-9f|sfKPQH^No#L9 zS@7bCWjJ?LS 8LzKH!Dtv*bJS#Z&Lf@g(nU}LkRJoyw5}agrYiU*a= z{aJ~nVfoiSp;cm$8od4_sciggrN3W)${2^}RpqwGgQePh4P8a6rBKO)|P>-*O+xH@e}=y zIbpuC>s{8JROz8!k_RZ+r$sn%=SljBSr;Ywcjm6q1{*2KSx utES ImW3(@z7dW6~TztMmj8LMKVU=@H#Q5NTIfG# H02NGHUFlUv$j}fxk?4OCZvFNS9T9Q4msh{*@{0+39q sOe@CvM=NAzUGADJBz*=Fv*?-k0#q2b;)y3|LbxL_NR0`9SjBY&ZI_Df^) z&}?&Cvo!DAd8KgBTLi?TZi_?$c|ps*owR=T>9wzHL _ta Ph3L`JqF=AkX&AH}8E%9B5^b~y8BS4E+pQCY zcCWu+y@{xU6i3s(@&s-OdZe`y0%Qt{DtF7yxlcLf>@B}0h^Rl~pI|$Td?gS*t7YTP zh80k2@1+=rZ1=?&n0#M%GjGY;z39(|`bhN5#2b~t!O6_keue_yo`Te^Uwoa c)Y+ z3J0U1!0|SA;{}G(;4T K*XWJ>RjyhE1%Wm&^-fj*E#8O!>T?nw9@zeF(Wr>= zZm}t9_M}y93Wy?W*l^@;;05X5p%xeLqN;!OAnym|s0m1Topo&F9|_}3)6nvWnY1_| zew@Z5$%xRr5?YH=U^>U>G3Qzz<3nRCkDbqATxHm&4#0Jbv)S$X(OlE|_!q4c^w&JO z=Z8M>A}bD>H6Z52JZtoX*%$om@SRH4A{^wD2i&7`>DIL3HU6r(#8 ep2NbZl1aEn3L?ieww0S8{YSNLv>I%q R zAWKc(Dut{IZ$)$w%4&LR2#{>a=fXdPDR_LIJg-D$Xo>_~K`WJezr9}0UeS|4kL@h) z(Nd55T!^+o#m_2t$fR1t7BTUZS1ZSkh`(EW2oE$WJuVkEbu#!xu)xs*LMr9qe2->{ zNq#vG9Z!skkFl!Vj};2Ocvh0i)*|fXXw|%Cy|ir6{c?4;i0k3BIZrO9NG*YQdg_?+ zv!o0tDze!JN{0w$ergr=uafj~JTVD#1xBWI# 69L86?6Yk>qRJKB5HxA O`Ar4Dtyk&8CdRsoJ!I!uYOK_a2JrQz>7eI`On3ncT(`G zqMPww>0jkTw3OPmtf^WydLIy}xb5rVX6+>9uqT)E$crVDVmVBb8XDB1S`d8y_-znR zVcN42>`FYuzqr{mLDU7rLZb=4WHA%mJm;JwCHF0dHcq1zmKf89i}wZm6=xVV_9j;; zcFVp9f3A7K`gS06Q>@2)@bWIVK2WOH3Z0^A5&v*LBGvld=qQXV?rqd4(Qw71RwC+I zKgF?Isa Uf z`^S%k d{-(Pxo_I0&7^82AU)xKln)Hz&ROiTlb zE6dzOrPdbip_+)vZ|G5lptwL;Bh_zW=50=0%!IS15qt?xn
;OsH`Db-b|Q0 z;UM-zjh}~175Yg7cht$xKHdOiMIWx~uB4W@;J{rD6FB+O+s2}6!(9f}ly?LB*bjwO z3lM4Tcekvg3+G#C1PT{FCM`UfYdyD25IaNbz(&mG71Vp>%A35qd%w%@ftM)gdGA($ z>vZI&L|USp9T^bDiZ5`ununD8lR_%KAGM>JO!2oZsZjGxuWI(g@H2{sgid-IT`#o> zD>_zbR5x3dSbG!NiZ>$M8)u%qCad#HS$Udm=0bR{qAkl_RHOFS_Cg((s57T*7H8ua zg&(bIfxDAy>T-f=vDPDWwnoshs^;O#ydFdQk90qF`no~-Xzo4$k2v_0N8wSihT $$@6vGV~TXrIZK_2Z(VV@W3|S%6Vkphl8$-Q@9p9nI5|gvUJwz{^ND6pJj@_c# z>;TM+p6v`k%FvnS!&WsW#(trGCE3q|mgJ}mNLBmu3g$r^xNX7L-ouKXzq3YQ`C18& zwyseWq}|1VG}3{-r}P$P(RZ|)bRbqSR+-q)!7)0CWzvtjnc)f!lh)}gW25t3?h9Aa zqavR*#q(LAO1kf%r_+1w`k#}3Ne{`zTuv>NV}UFY41Jc$9D7WyQGaw?m`;=_0Tv&8 z1CO{KVsLux8n?yK(EIq%?Nv*Azyqxg@MNrhH2Ghrox^I^D#y%&1L0c+th~zD0*P5I zw)M`H(2yYVzhIZ&NH*;R@cQ@leHn@Fr}If8%|LOI4{07YV%+jAbE_l^vy%VcHFzIx zU+~b_jE6KQ%Ji2I*K&U> aO%Vz_CAm3V`Kc!rhdNo9Q_wa(r;KJUa1up$iL z4*K(TEq)?Jo$nST`r_UbM92a8f=l6F@7{78lWLZ31hxiOK7GfV7$0bzmRb@%W!zEj zo nbO-ocRbKJimjD%CoXc636Pesy Pm(< z5?({>IWm&v(7N;S |3L}kLF$vD;~4mPcb~i0L8$71y)Z+2 zorvo;*}XD L6ld$D8rh>?X#YLO@K%t4UMY~!7CYT@E5+`gfii43^j%@V{i(e? z!?0p35c7Ek%aB(&QB4T VStJKXvqlEtoj=k+m`aB z?44>6JFs!V$o$@Z_oCo2k(oxcgdMQom$BNaf%A=L4@X4~HL+ugJ<7^VPN5rJZHlqz zd*Pgzg=A|+J`>UY?T5#pg%zkY{?w?7S@>H54+aKzpEtO)w%)fdMm}k>WN_Y@Y?W-e z6<<-38a(tCzimLj!7)M*<|}Bpo;pUY{f5K_w+kIT@tWIa{E=f_w5O)XTnlgj&c-&n zs7X*v`!VF4vfM{QR);?OxKxD>G3L?v>E<5G49Eos&k!soOl-#v4#sB*zsY%r9jCT( zQ*$r-D5ufQ42-A?_msU7(Itv(^gzFaVcx!MgRwUT%4_MES*1VAR|USLfuAgtXJwCv zeq*j|?z-i?qbRie9K|w#=O$Yr$#8taxO^}HPE)&QqBP|9Q}*(vFWF-A;p$?Xa{A7& z7IFFpS3$&wOcRX5fAI^uY<-r!8g<59YDH-qWD#VPZK$p9dL6Ry(>lkks(8QsX^Vv? zM)0*=iZ B-= z@oh=hFfB PxS7C)eH!js(jYkIy`B9D=-krkINU0$WP`h2(FUiz!*ajAhYc^HfT;5Hx!fR zgbWyPHGR6!qc)Gx>q$-6w;%8R$9?J4duhQnEg}GXskVDL9)UTL(tE10*d1;V@xCmj zjeW220g;j;x`gFK^Ba?o6T*+EUCI_n) *w!$l2(LI-{akuS#!FSTu8f5_tq^{O_r+G{==qZZ~OZMY7kvF$vP@a^vZDo~$ z=icfvUoTCECo)MgU`7AcLahv+Rd^jGe*~ji(=HDuW1QjQ&Q6&9zbk`>%CRNDN_^k= zL>J-r2P?{6%{ZO~Gl&m9`C<=V|Bq$q#za1$MYH(PcHeoOSKen@_#fP*JQ(#zdtpDo z!%ft>u5XY5@HJM+b@ZZ@7uHQThj?VcnDkOd`_ZsE$Mv>}gd=oOb;S_v8ipA nB ze!
tv zMtqt~ql8Dmv}-fL%v5Xvmt4heOmg|hG46>@U$aTDCvg7imDkq;uHB9=>zDN!oy1dL z4IUCRn%eH}^MhBLnJX?3jVR>F@#&+i-qbq%ak5C1j>mLdcfZUrh;_{0>8g5XNE~QT z3`45wS<}Y2VY$1(7(28wAh6oqj(fmDtQ=OLR2IW@>k0?5CGB;!;Mg&BI(p3E^p$xY z*0SDVy-0x6$bY^ooeP_e{3o3y>Z(W|-j7{iwj@}&6{5uV?@uoJJB6kSFXa;KjwEdO z(8ZXgX4&Z4bNUl}^BTWe{T4`f3`=pSBFWex84>D_0w=LF*Pt?{Ows?JyT-}NU9R-h zGQnkWM(CR?MlxV9Fa;S6jaE~mYf6g!MrYwYJ_z7ecT3v-rW+c*qT-!K{e}b)%Gx$L z!?$sE_rvE`L)GSk2VgGL^+@DSzkeiTQeeKK;o>qHkg_sz0##KRsiv+1sjveSRovky zSpKdUF(&lAwGres*FMA)dlWw&u0QB8*9B2Tnm+LUdDQlczN?)EN87VO!w8 9%c={4$67-LF)Uwap5_zqgoR_kGE;EK4%% $e |R`@RAYnDm8^s~Ya8YHy)yU85o9 zhly&+wh0s)nJagaPX;Z5lRPQ#FJ+gsTe|8|m%H60!aVmw>kBR7zoaGA0tj1LwJx|< zHY}VTUj9{eBm^x8J}o_0K~}77xxIJa&nI%b$??QZ#1%)3?yA)fQH6wo2I5LIJQ>2@ zS~=8q1*S4zCt-GqGKhsIvHfaP>^xfT o~ezI>Zg_l23 zB~vA!CIt|Yb0zUl4?^@9{$TF`(!!ODR~MWB)dCBKgkm}5|J_?#Hqu?C`#M4<0iL4| z_NzwF%8*^=5+U4L;dLvOZQVju-ik-zlUXU9Ix-V7WZo-%tVQJ2Hb9$cOJO~a#pSzq zd*uN81)iv|LhsgbL#}-aFLxN)C
RDcQmk}o2X52fadO;-+QGhSZ`)LVC$?%`Cd$|@(b<>&L#_N7g zv%cZ1RH}w8XxAd<6-yP(4HrgHwD+m1C!VFbk3uKT#YeH*9(@SmOGm}KY<+LsUy%RF z<7NyT@%qqzH{9Q8JqZ_2*NpJw-U@%Z_w&}Afzxf7^hHdR0gM!#l_fy)!vzMRkHG@k z7@Dq#)24Cv`@PA|ttzKyyLAXH2Ice*fDD!jK>5;(yHjVQd{qLc0Wr`LSeCV2zU%b! z#hq@Knd$$8*X+HVYd#KDl4SG5ajA{CRp=u!nCWOuq1zM55slf#%M=EXyQ+Q#ic*BD zfWWTT>%S=`pV0ro-s8 `;uyIPZJ;ZuwSs;``!J0%5g~cJ5b6| z&{O5`Z5BT9H-JtLtEEA|S2@lWu5``!e 6-6#1hD zrwK*y
|C4Fx>g+R87v#c5(ZZLK(!YJ85$SYW-l`SIOlOJ921u% z7lwS^4TA-n(>48FdBUel*1LL;;{ic0PBdw#;0F&_;e$4NG%(V7o5O!yO;gj-RHK5| zNfS((o*k{u7sQ=HQX_qF7E8+?8RdNGu}CFd4aOI=MNF^Q7)_jw9J>)$U5PL6VuV!V z{$&KTl#hNtY?H(7anmsnTWap$;A+z8n{_MRXT Z+Nul6J21WEFuxR(mCy#p`0_DU6TFO?#GX@N zx=q(KTcG>Tbk*J;SAGwEwZ3@&aP6;>tUpoj%MJ7GaSfACtPHY)qgHflpKPbJBq+T( zugLXx^JQ7wrK#vLtEsxogROv>i6=dwFkXu| -!YuX5T z*+ffddS F4OfO%1F&P+!$bBvB>k%%SsnY9F4f%XrG+ zxylvOrq@p&-`cS6Wtr8^r+wX3sb_BD{<@K`);I52-#5x67Mn<#&zl8Y5Jo@ot6f2g zAs+(sIJe@X79qJbaKE6b&gzGcq)o|R=F7dF6R|RY20fBf$m6eux#!l93QMUY`Af%b zhPSndtv?JvUj$<2L+_Z4*qZ7F?kqnCW9Ec?qjYs8B!<{cZ4B96O}RQ;bukg?*0hpJ zPWyBrl3+GsMU8tm`|xtFiu!uM(q332;MaU_7v;W8jr!J2+>$a*kIt1fXvEW>*E1j~ zhITP?+mAn9DzZBg>kj6VpLAga71v`^{?pW$xj!F$cW-Xc-ZIT15Ie5~U~n*~_BceH zQkLyp_?Q!&Ds`WAdp#iCzc~m50QF{yfwfKlF9l=RB8ww6HfDrleggddT9q!$<91nx z*`<$iyZd;qZFR%T(-@!R%=_>fAOQ1SKmiJ>e|jNUoknFTvrVoHFkRtAa1Z~nA6bJj zYR`5a1amwF#5W?`K?+61bE21C#;CtLESCMTid}8jjCqYu-aopS^W#n@%%urhQ9Q+! z#4&iWziXE|I|W3l)^<|Q<|}rpf!E-*q=$5~QR@8#y;kg#a@D!z8s6T*%O$|)u}?!V zRYLE|V;MKlCH19M5ruL_68rNVZY+Fvyzo>b-#dBYxJa`YnJ`HkPE5c^%F<$M12-r4 zH;v {jL>s42H6u!rCdvFRbOIONDpO^oa&5s@sXkqa6LMn87ynd9t#LkWz8TAZ zx-}WtfL1#rwFtOO1_cytOAPnP{OOmhHY95GL~6N1$ANB=bugZ8V%ZGr#A?XDWc%Wf z;=>t=oxnJ(xKQx_0z1|IQw)@2?r39U5Ol6y6o-?c((y2j4MT3@EwT0*l~$j$`Scfk z3lCluW`ZiaB)yJge*@)v)j5mTgU33KO9d!7Ww!M2c!?R??Wx#gi-I~eV2pDP+5D*q zLxpOLY29MEQJcj#q*U69FmtW;zmT!0J zXLc}7ct$CJPDPc%g59^2tnQx&vK?K+t=8wBI=(RE$Gv&OmOGpr^Lf61F*FZ@D-^+E zA*p5(ZN-KQC=DXU^ZkX9ufVPbLVxgcbO8mKm?zzn3B Cy0E+^yl^r zHznCYa80?`$jMl(N4_3yyd1jMXdU^0rnj}KE9963YSQEWQV=_ 3~AqfKw zI;)+dGZdYlUs2@aU>jC~J#@#`oBywrzgh4#UwX;y@2d&kkF$Q02 b9=N;E4l^VNJxpf(=|nyD~i_?PmUv|-Y >Jg7QX9}ewnR(aLTZ(S`{ky|UHqnT$-(qh6jH>dnIfeu{i`}k(G92@of zx`pEQ%hsU3i8n%ME6i0A+ty(_D_X!L6BQ1Z>Jw+Wz!23X(w4S@ang!Ey&iTNeg}MW z{y+tUnlo*2Q0uH5Ry(Y09%&V)*$NZvZ|%=JhHJVEJepU5$5U#97i!fh!_1JWCxmMC z@uvZJ587q_=ur1NfcUq|N>E&-ga_6=ordd5j@8(rFeFM4<$RSMq7oqG*#>P#QuM-Q z$>qZ$7TXHGANag0>8+vWBRHEU6inin49t9uV&rMR`YZS-u>h|N{SDrzC$q-dtYKI< zmougdUP<%ZQ3o_J^401!Dh0Q+(u+?HFAbOsU##%OTUPD}3HrFKDp5Yt6bxi_6cpcY zGDMA2E6yIMKPwC45BcKqjY+=$7e`kfmSp;N=QlIelsQhDmX=OtTCQa-l_t}omS*Nk ziprE*ib$?#B20^#dumE*>Xe!(F1Y|I3X@BwNT%Wj0=Z!>fGbNZ^S$%^uh+#3?{nYh zKIh!$353o~ZH!Z%qR)h&l@Y6y{c#Vz<+P9#6MyFZMf&%L%rOOmkHTl0tKhEyy#fmq zI|JaoaGIN-$4t6d|NDc%(@oS{=6+Q1ltI4 SZU9bF&?~7Ik z18@0ESCz4yFZLh2S&SjI#h#3LnA7$}riZBPKG;yrCKg8)6BR4-lVz*p^Jw)(Y|k0i zQ`jTe0WDplp-s<2UCWW7Zq@~vhq_T5B& HKwKGM z#N$(>&{dCIFM124&H@q}uX?A-BRUSfV0vCb19mbJ_^Z{1{XRDg2A1}q$}Cys((o(& z+yP%uYrnIbjhptmH!PFswM6ME#s)E#J3NBMe+y}fhkgT}jc=qaz=3hbM5MsTe{Ew% z`?|T{38_refod}DB^eqgqC6$6ch5kO5@fR(PJt1mZJi1~q|G8?*39E~=FRXfg$YAM z*n;p(d_`Jfb$jg{CdX*d#i=Irz?Dsj-LAHv|4ibW;OtY $@waKEO0jsX6WO zHheJIyV0xO@R`CJzqZ*qG4!7;Suo+Ik_?Y=+#P69>hq0cafNgQES0JOrAX#1TE@zL z7eT|)e$m|-;t{)hc7r0-l077((gcS;r2!ZsbYetig{g)J@K%A-pN11B6e usz3IRl{J8~0)X*d>IndUi8dm@crefIxc8HgHFt%@hDx2u4o9 zkqxgu8u{H{D3BBTO$H{Qdg~_=m$@(6KELe4vd;0MqZ;R~&es5NwBhQptr3Z`9v^@| zL*DAg`h@fd>qZUuRaksg lM$j^!-mK%Iv_v-&Mxq>BoR z?-@Z_$Lm_+W~F9zHXm7?lyv#PEZ)eGTHvLPndVEM%Ln?}#xlaNXFpEZs)=rx0K!u{ z{@Os*aY1#&AsVS1wGNkHzIxD5R&)v;P&)W%J7Vb_th}zSsjcA$ah~_O`KyagNzdUf z$ep<}l$e81fM@y3vY$ZW>3x9D+&3B%B+b#tA%THYn^uB{Tx>hi6$|R{YE3Fn9aqW6 zFul7rJMtyq1YlT nSRq(G&}Y^jf#ug%v;nWWG)Fs=v+yq4j8=K-pP|Ne+pNY! zqso>gbGk }!fo( =zgP}$* zbj-9=fsyh%cg+Y>1M6XcP;YsWRpcXEI)qE!bPSVbmGw~8PS%Tut*bq`RzGJ`TN(XL z9dmPPDd8xmO2$?HpNXc-&$LE^mQnb^7nxVJ_wxQaHa$?HgsKOCP*WmfG>JTnE(L!| zccFdqDIYq()yPh<(aoZjUb6Wf>?vJ;%Q+4Edj!t0U!!%7H|l>x2f&~bH~`?Iq?EOb z-!AF~)!ld70%92^X{&f6b$&cvIGiho2j##I zU;9Q?n}%Y!QVtLEPY7E5+jkUOx9y3`x-GlzEr&Q|%_LQSbq3xaHj@OfdsDc^Msd^( ztYPox+)vHdL=Gdi!sG!=q9sO!{dP(**mOm!XJ4qOyPJ5%Bo7g>N8-5oc1XOFM=>y2 z$H&?i*@HU=kXlToif`YZ^Wy3z7Gl7PV@n%+g;p;4nz$_nz|%Im9pmAR)~V@g!EjC> z{H2Ez=fmd2MCtyuTDH~~_Q! @JM^TQA21-9EE?95o|92D; zS#+{iW+f5p*`BM{)|z_9J025*p#rfRzdHX)e002Xw4#OBNk8H{m}@E#F3EPdP}1jF z_+mba((Bc(l3{#h$Od<*mOpdv#+=6^6{#VBwSZt4!Njq+0T+?8D$&xUJyz{ZbFV?I zUo^?DA FGN__o=BdgteOI#0vJG$0O)( Ab%497 zNteMdE}W3z;D{LstZ ;q$`I|2b-&d2IVa3uFbZZ=i)|`S@r*3(9v3BmK&w ziE@BeOE3z$@252^(>f;adxn?x|BZiqGTpHmoOLJsWGqXk5k%Y2alq-avMFMMjAe|Q zy` e&t(oa+HzL`ZK~dZ!e&sd`&`!dV!;QdLRK5S zCs_!`BfO4Ocp)UH&r_0*0ZJ6P2BP#%k4QK9wFCy&%O~~^eQE->NCr5ZsZA7xCBY_I zb_*@gztat6S0myY4bRo} UA61-H9h6$azf46K?ICD` zZMwn9p4<;H4>ona;P`=@4GLA}43JF|E`Ki{xEk@$+`hvK610#Kd5yv&2n0Mh6&T)8 zZGcI!C|6zzw}`;`UQ6qOynxdhEfNKMfDY~hrRIcwd_8Lb{qb94$avk4p$Du|UA6lV z{UVCEK#Ffk7bngo_>FAAExMiP(KxT;ZG|E~h-6Q(_T;BBOPXSWMhxc&%mZK(-p9D< za^jBR995GGRXMQ(qw+0ip^X=Md4>!v0Wmzj$_&=^Aj31Aijg8KIdkT5$i0t9y-yn9 zyc&Q45-T_)PuZc@gvPhi{Za6vXIPG;hbe}DkocpNvM9x8-muegufC;M9S7+#T~RlB zsut+)m^|HokTjMjR>LTg6g=nI%*$IP-luutZwV!_EiO1z8M-EfU=e%6|4@zOtf7>N z5aII0Id#tPIci*BYwP2&znP16#lvU}A0OW+s)(|y&7@kbG-!n8g^YOd@pR%f>Rv6A zVwo~mE}(do?dwp(tcl!5SGoIICZ5Na`xE(Oj0lY&c|-TgAc62%s#2`fb`bm}-cx#S zg8 KQv6I-6tb)egNE|8UAgLAZt=`S*kM8k9R``TO FzAyN$0+>ngS9Ab=BIgaFg~9hNrX z?I&Ki*e2|His}UHXul-siqE|<%agydoz?KV4C<3sE4*b3__c;~Yu`EMF@rzSb_-%o zdm8wHs2p99@8D-(nnH%NLVian>zp39U*b)MOc7?b|zVqz!n?L`GjkF0oFa$1O8 zEE}`^%R)=bx|jz|^FPCFW?V4qL$ZhMO9Njn)S!G`&kl+8oO=cP 3wT>l0%Xy9?Jj4&!0 eG7iuJQ8N6fO=rM}`J4X3tsc^x>)C!D zf3K+LG9AKr!W$N}iC>CiYut;@dA)s?jSF=OOPk!(PUnIIaKQbh45NO2VCR!k5enu6 z;-j-}5YEA!vErIa;&=P+W*W$8<0XqkTK -59Bv+oEwDRpJZ_Ywi^=tHCi&T(d=1Uv$Q@;w zP}?cCQ(gRfr8t2Nlzp!a?l@DLzu6K24XN$SAyz3a* HxwHuyRFCywB3Q5pcASB{~9ZV-+)ehnTCWB|Cl zJ-EKsQc44@|DN4;fYEXZSQbPWs<|Xq9#2IQ*e6-Cz4^ey>?0qU7DMkiUA^_FK6<4e z*{!ZO^b;Vzm(Or{AbYRCe}BMcv#ITbH?1vn6WJ1+Lrs^1|NTJ?s&P7!9$cv(fpcct zM6WG&^ZZ@cJqr^O{Vy_#EAmV46XAep5VP{_n_G0#5G9jY{hq;;ke*16Gr9Ivp!^*T z1-O(=^agQl+!cEv`t-*fGi*S^ap35nE7l6Ke=gM`#`B(7*NZeZH|rOXH4m$>u)7Ae zb!`V0B$%{zWsCVc-rYaei{Chv#Wr5N=bi9dBhRbqnOx3|#mJRnqR6Hro`8mvVX5BK zyQ7!HY#Hg5&(~+cUG=8$9$oTzEu;9wzQQ^LSt}mnpX+vrezP8wB9PHt#gD7HP;;|R z7l&@<-Wib~jzIhkF5@R)<5zFKBax**Gd$qF8B!Zg=tvXbDcSODMOPsr#Co*%XoMNy z=Lh2kQ9YeYhr!Rj2z)sP769yVflN{(d8u9&z* nnFyZl>jO(iz|OJ!5onOo_1*Cx8v*IKfUq4`6+{mW;1aMom) zgmi@R6)Ijxh?<;MN>_a>F1$CLrklPSPy7!bEz{O)@~T3}>Z5grLCM#M#OwL4&{Bee zYG$dm65xa*iOS4_!n|pM@7~nlu%QRj)~;*Slvox%dk#k}Hc|EsRoO9?-=a(gdMvP5 zDhJk)A_>;i64t#$ayp?+h2iE){({~^gAvZ(YYmp(Od_7Kb1DWazI%`IwC4^0(%G*v zO#Ay0vz3r&F$+ExyFlcDIDjh=`;2T77u@^cruy&}6PMY4$_p|82OOEgiD%t=G5)C| z3u+6}reuduruFEX1$5Aq2)ELB=e|6sT(M~_sG~0|Tw3uIC;d4R5__hv%ICxV8dtex zhmc1>4p_pc(JQ))G=yqDBIX^eKrMpPVsPLCB35y;p4yzE)k8@nZ^s4xQ+mn4GuI+J zibT)hIPGm%aMGTzu6D4)cwdV8=i ##<8{r`>Yi|5lgBe%ng)%s;dJ`BMXc{JPyKx&dLh<9i JNU*3QQ|E*9h)So9%CB93^44Vp0+0nMCf9Km0&6Kt&nl#VAPkX~eVlh&j* z0;&vSijN}i`4Zz;ciO+@i_yqP41Inf7f^ IR$MMImBd%v7VE)w zz8RT>7C+NTV|bzFH3Fe|Fv1XD#s|nkhQl^I%62qxEwdsrq?rThY19E vJN|^51T{lg<}s&i zhJ)de%hohtAhf<5Tdfrz`=8-_^Q_qMh4TUNqu?s1xe{mRk@}O;pL|Wd geaV7 z-Xkc(=8@>9t?hIgZKybPhG;vP11MjR5++&5nW=^DL!F~rTPfO)r1Rv9uPDpK(tOyA zoLe=+yLFl^SS2_x_m1>-T3Q0SeYnD;&Es^`HEu?tAZ{7&oFt4TjEla9ml%CcjR}7b z!H-R{iOw5*AnFwH-|u}WT#UJjAGfvwrLbXePskmH7yk%jrxveQMC7q#&~7ib?z$am zw)*vGxy8pIEX}f@m%z(gxN<;@7Exs$371Eqx7M|orPo&n4Y=&96IvVzL^}4O0&19j zaeY@x&= >Z3(0nt{rpdF*5Tid{ z>ft4-UfL{$U`Rxfs;5RJKF>b=#qZ8J1mUmvY_33(g9P@$dVx|dfnAw!Y$rBLuUhoK zNi7Konlc~)*>Q`J|78dzRl&x;7nCD{um ;L@$cz0HrFtlSjOu`JH zz@=9D64w}K!5eH`~|CYgx?zfh98cQ!NL}zN@gLc#AR=D7x!pG9(o;I3=aXRph`2 z4sFbF5#IzTB;~%C{fs_@dC9Bdj%M9)mI>Rb7&BRO@zVBUihl_HNOJkx6B1BR5+-hd zqzFJ@7dXDQEpQbE@#H^tex9n#=3o{^U?Ndyb$Ya{JTnWyw1japE1YudKIh^ZL;xd$ z<7%79=U&mR9cS8#K7O3y{+1}Q{)P=M`u7JbUCs;?EAVXS#;kgfQ{kSD#S_?Aqp`Ai z1$VqQ(RrrByQsE3{7-D`1beLRD^zJZ4(yxYd(*fq>Rrzl$TW!vm~mE96lzs8&D$9# z2V=bxyM5yZzOZ&1!DpHHoY*Q30@&V2oPZYK>WM#oG7RI{FyRa5Dx_$*B9+K*_(X}v zZ0QSRmKD?A9*$ST6OMY<^^%Nmkn0`gyy+)gXrTp&RWsg>LKaQr7U((Q?-v+rJbX(J zc6a4iu6Z8q3-CWNR2MyE^G{~niNcP$rC=om4~-!6I|(QfhWQ4z@~oaRn$){gSR6BA z+lqPz7{5){O#1yw>f>~&&Z8$wr~FMq>slN|AYfX5*lc2>38jUJ7%@vO5n9E~^0&^4 z6T$LLusVI=w*t-EIo<6`g5RDy{%9&&Ju9sQ_y>Sd(}xuMo4#enu^@u*suk7238H;e zdO}KCd=bmC;u&cSaN`Q{6#o;|G%Y*V_+5nuN0?`BcPOhFN%N<(H{jb$64#sTdV%sX z96M{bmYror<(S#u_i~K}ur-J(!hO4xa3gEZQ9jNATn35}@Mmv!o=I|eeNqqAsImvL zC$p)&US#+Gpg@R7wlT|+eh}s?=h q{rxxib>wj)p8CWqxPT5N(1!m=s3P{NAb5HNIV+p@YOmVQvt(zo~`8>3loQw z;P;8zF3z)iZ c^@!M8b%{J R}nZ6t@)__zKF3i_Y0?`$RAZ(4De@|?0Kj_cX{3UaNJ|7q20?-buA+ApcLs7 zWqQJ)de!^IQ7VO$rK+|1p&9tt=o0AYwpIqXKRDuKGe=(H3W+r;Z~~@x;MdAtfK%8k zFQoV9Ctn+OEsryL7lq`8L(Tn&az?kI2y8fvIRIFwrTv{~cs0<@@F#mD8oi7}er1Dg z{nglsy*A(dnENPl0bo>A9V(WWi4VE7f7xoQ)#Q)Cx8CM^E#w{`Uw|OiP1eDQk>lS9 zjq&oluQazC&F$$6#E!?%#>AnrI5?@W@@AMvpmck&pxZV34pfEurdPLVw1UvcsCd9A zm}(mq$=aq!QJ6-*uxe`Y%T1h%E7mL^ntd=s?B6BY%ScM<9Rw}8Fe)%Mz0Pcks8NB7 zl+Sxe@$(9UG|T~5o?rM>l?gw8&ae@#0LY#=0sJ$kSA-iiQ~4zh=R$_!HFQ-ul&tY? zm-x5We5JDYRJ_88(@T=#NBT5VXO$n0UVjetg$Xgiw7~~udiP`*lod4~3raAt9_Gu$ zJRJu#@>?eVT=Z$bg+ |@aedM#oOz*UKs~AH^ >X`BC-UAG?6!GMlvpSq~m!Gztr*P=r#!BV|D|UcCAwBgs2QiA_VAZj{(p? zlsi|dJ2sKN8e{Y$ mO)$Bdg$N 5#_Hp)8}JsL}RynBYplc^_yV?6-{PH 0f8(B*-p2=)3 huOlNCTh-9l8x`TrNUCZf{!gvwiW!_Q%Qo{q2G&N@O_DPt-R(GWiX^nPFA? z@jrML$FyS}z!kiRkJ*+T{;p@a!j!+`z`%2BjcrMOANSrE5H7*F#KOWcUAR<(`|l5M zktZe{&+N49!7fT|#y4FO>&)g`W{&K$ae9pnrZy^kIcr)o%?bX O5fQ@ zBIYU$ZKcP*_N`sl9b#JuX3 mbd0IES(jT3@ zXW4BsiI}F9ZyX>gw8W@4h;WbAhBD{I^pfz$V$7AcQ}bQ#=jwt4x*Q=Wt<#{#8y4z! zjBex>X^kT;IIP9N1Kv;Ms{QCyjuqA9L;`JlRCx`n{;KKH;*3*$VFQC F;q3ues}4~ zq9cPE9e)A%0$>iomUEeEw?||83${BxRmSFf2g;Wu!0rjqeCnSK=vBH}w}v>_T|4(# z a&{^=VclXL}(6OdIfDl~kb9<3v6C z#Zk7&3Zo3qK+hYF#tX+O*$S^RVR4ql_FW%%N~Zt%3F`;egwgKJORp$8{o7i-iVYc_ z9XHgqCZ^iwITg*$PM)3C+}X#qSy2%>p?I^Ll!uFtJ }0>jJt5gmz)vv=8H z8qQLr8$Hle5*yXP)Kn+FPd9l%uC%2c)X>q|rrE3-2t>FqnEN|6&_BrRZ}%C@lsE!s zk?3{*r}YM>#;g&}Kx5W#I7PeLkCc~8n?;&@;L{k& E%@E%Co&r|S;&dRe!TrtR1bjl~=aSHISLTPG zBUJD@HbFMA9_-J6tg(Q!(O3(OYwof{y2NF8L76yOM6mh|QWT2WL@}Ah2rxUMN3j=Z z`lu>e>8^EJeTE4Bu2;vDYVv}%>+=(Y2qUQ3S^*slxma2A37cafkbINE4Ei3bq+s61 zC>6t~5MRF|-mI`cOOzTnC_tgX%MSHXCiyLZ@ %8Su)GW_-Zxw~jyJT&z+-H b*aQd0G+0Dft9lsqg< zRUPHp4wi`*V(y-hen*QK*W4TAqu+Kkj?eAWb~+@}r!12fAd0Eh_Xy4s*i#^%*SrU8 zIedy!`zVNkS6kp}`+kmHCh5j$WO7UZH2l+)Z)f&1zqv&`JsR!~=MXe<_EPdu@at5@ zxsi )VuPxE1Gvw(GHP`}arL>x>H{|NquLKG99MwDp^s)%`0g8w* zah|;6%Xa*=@%AS-)Yuy%0T@{fHs)se{?55KMYHB9gE<7$iU^om>(d7nqIK|#xbhjr z+jbNV@vc9nvPRP2f8x{AB#H3tIMd4$^qV>2=ia~_3!|Y*R`E9uj>K1jQVGqNb&u?3 zGoh?W^d=#jO6U;H?x^FF-kIn6yl8m@KEsnhBi+A4d+SV>50`SsVX=3KVG+$T&UCE= zpRNpcZ*3>GIws{~_vH~ha2bKWy(mBb3XNT>kKd+U($hC&FI{Uo0fz&Vu=!1na?46$ z)F8g-E3>8k&%&Gs;88iJa})EP!l@sh_NjUO`1JlD#vBzc#bmvUTlwg1+mLD=-8N?N z4AL)A t&oHf zuI{=;W5|sB!r+Njt&p eNeXn5S==$X{obSY6qut-Jy|_=-M%t|V7Y`+MzEJz) zz1pq;#)gc;Z&*}p$E)=oyRsuYy8U$8;RRU2kxFvN?mf>)vO3Oc15E~TLPDF-)vxah z)iWk6Z{KmYy8By!wCtom6C(TO*%f+^U~@ADIkNbgPXo7jy#cSIcvguEKUC) z!)&dL;t1(=Aw_Q(mGxC{ok#+0))&7Ousd`(9AC H)TZhg6?KgiXVm=FhF*t{L@ zq60ORdvFvxyt`*@2mF?(x+zg7UpOCm{0%NCxbWOkzQOda0cK5>H(?RqmKiJHEVwsj z-gD9)@w~J6IN(!^65uyC1dDO_^{Nj;&nSDNOH91Swk$`@q ~{6U%3C{ >m}WAG=gqu<|8iR= zJ^tjTk7K;@KYtX&@;bHm)olAyxU5YSrQ0XvpJGy*neSy6GqIafdk5WUk$yb!QC@)U zuOEGx1k7B&_xI$sh}or<&G`Ln=jiH)hvQ}6gs<~KW5*HgY9#^@(MqLVwe`~6ShmU3 z1)fTmsW{K|?hI>(@y&fL8 VGAzq_v0I&+`nLZJeP4sI?=(gD^oSKn#sOsEBx~E5bmv`6 zR&SMe-#guH2reO2Nw5h;d;;WE(ASeSb+s1iDam#9Y{u@&WUg0LY>rpX(;Exg!1B M-6tb3+$v?4Vy|J(paML4R-Hty_7w#%<)&FQCq_Z}LQvuQ9KOXsPl;g`4>kEm& zcV|ejXTO#qLBiar8*eX7Q_Xmyw7bA$$*n=*HfrB=ay-S5in!d5N+B&IYIgJ6p%yXH zCwUPmV*OoQ4g!9~(6)vj#mt$ibh5@bq3PxL>dPT;;p^Ix_o=@1XH=%fhyq(UXY~XC zG6S+_5XpGuPy@J?H(XPtsWvmBCN(x*YP$51GZ!Jkv_UORVr`Zx5@!qQ){MJsrI*Ir zV)kNU?yg%TnI<{&C5-@ehM(0s3<`c}{l5zDm00hRR|GXM+vkZ>PGx%RL{N9r4CJ0x z9x(dS{3;RaWqxAt`c9)g-QF$hJ5ow>;`jTU19U7Ml1NLu3z)=1-zkPE2k|Cp45O^v zXqeIQ)gj^2+&c~*FT`E@ S@{jRPOwSOswNZd1@J7xk znzL6-Hs%!lKs+C4c@8zWB A)#`9#+Qx_ z{O6C8xq;rGoMY~A#Ys%DLh_JdBj|{7C Qlem`9Z4cB38PW`b3o-Tm3N z_jEEcVPU#y2h!g6Kfh298Y;}i1M$oRO^tO+p~pNrjO^XaVko{g0mI8bNCQl#VnRAL zdQ~%j7Mk4Hr&6pD0=QEhy}WX-O-%(zi#;MeAly(+agp`#g~aTpYN|GwGLxv{P9GOs z8`jA(NS;<_4OBoc&KyEwRP+JL96&l7OMObluMfsvOb#>D;JQPLfb@(%$~>5W!qFu8 zb1l5MJ`N0SCycj1GOhdXZA?L~#~Mu(Ns++6iZD;cD2)0ich=^c6LTFgrfiKk?f;!f zk9LlDkPRqvKs<$KB=+>^tyeV(!=@+ip8&Lrvi?ziAePqERdWcG3G`0Pf^^I{&p!|b z+YjwePxg=;!eon?a>nP07)QuTOVNb}KNGPi*FDzVxeUYN^-(v7RInKn7dL VuD_}z77fB>L%?v&s4s{c*>o;o4uDxe65^Pf^T_A2 zUzh5N*hoLrH-ahVkmtH``m*}Xw+5R*ZhSJQgAK@OAcocHz5?ry7ni>*Mf66d9*uY- zxZ{fk4k7T|Y4zk4r{?w8qJq(`AYuu!B{JqvS6rEW-t7)z*6g1~3uUxCrGF54z~Bvz z`1?*V1oE`;M!|^16kM4Zo-_84ED+YzBv5{F!CJQk_ >>0)bP|0gS&*m#gD~ }=XJ z;>V=cx4;m&@eIRh?=n(rll+?kN)h2S5z%Bs;E9n2{7=Di*IStV9%f)?{X10%Q=^Qs z*ml-W-h{E*d8y`@W32StX$e6e7^IZr?VlNERaW#Gey^;3aGi4B^Iq>fBFDywBG2>| zgK7*feysW}aXnsx6O1Vn!?Lj~i%bkVG7oik1YUc0q$6iR;umVG7!cIE4lu?w!u|ZnR;jS zM(!a-BRmm!_5?mrzV4TAg9wUpUl2ZZWA>R27JRQ+zA{5Ful#Ty3%p9wMc_Ta-=+ns zzBX^Vak@F{Gc10uiKzwnzYUvJzQl6OpwOsd{YU#Cudu+x55D9Ws1P@eidf6~MWHN) z^ulU1QX7I41C9s6_mz8s(Se>+j8Y eQ@7(C^cBI zSH|gm!ScR{&ixMW^1Cx|yyNkX{O-L#E+|Jr>GTz)nt5#x2i7 BRCIDdx8WsnQFbm{EbksD$=D}hY}K^7%Lg< z4*vX7N_p6{Z4}YbR{J%h1H5|yuGsc&UE}pJ|A)W5{!yw|V9!Vutz5kR)snEWv}x8< zi)-^%$&(KWvB0#~clwp %!qgceQrqK2xQ^#>-Wb4?ngoT$yvRdDxr^Uh9gvh`BXlRw*FPnz6F zT-H_})#Y^LwNoy_rVF;>KzQ7}0>{^C#X$H3?gc`u