From 2f8fdbb6bc03d86edba18767beb549b73922f336 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 04:41:49 +0000 Subject: [PATCH 01/21] Bump green-coding-berlin/eco-ci-energy-estimation from 3 to 4 Bumps [green-coding-berlin/eco-ci-energy-estimation](https://github.com/green-coding-berlin/eco-ci-energy-estimation) from 3 to 4. - [Release notes](https://github.com/green-coding-berlin/eco-ci-energy-estimation/releases) - [Commits](https://github.com/green-coding-berlin/eco-ci-energy-estimation/compare/v3...v4) --- updated-dependencies: - dependency-name: green-coding-berlin/eco-ci-energy-estimation dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pytests-upstream.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pytests-upstream.yml b/.github/workflows/pytests-upstream.yml index 60ecd1f3..d6239df3 100644 --- a/.github/workflows/pytests-upstream.yml +++ b/.github/workflows/pytests-upstream.yml @@ -80,7 +80,7 @@ jobs: steps: - name: Energy Estimation - Initialize if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 with: task: start-measurement company-uuid: ${{ secrets.CARBONDB_COMPANY_UUID }} @@ -127,7 +127,7 @@ jobs: - name: Energy Estimation - Measure Tests Setup if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: @@ -147,7 +147,7 @@ jobs: - name: Energy Estimation - Measure Tests Exec if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: @@ -173,7 +173,7 @@ jobs: - name: Energy Estimation - Show Results if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: @@ -208,7 +208,7 @@ jobs: steps: - name: Energy Estimation - Initialize if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 with: task: start-measurement company-uuid: ${{ secrets.CARBONDB_COMPANY_UUID }} @@ -255,7 +255,7 @@ jobs: - name: Energy Estimation - Measure Tests Setup if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: @@ -275,7 +275,7 @@ jobs: - name: Energy Estimation - Measure Tests Exec if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: @@ -292,7 +292,7 @@ jobs: - name: Energy Estimation - Show Results if: ${{matrix.os == 'ubuntu-latest'}} - uses: green-coding-berlin/eco-ci-energy-estimation@v3 + uses: green-coding-berlin/eco-ci-energy-estimation@v4 env: ELECTRICITY_MAPS_TOKEN: ${{ secrets.ELECTRICITY_MAPS_TOKEN }} with: From a0a376d41aa066bb992cf7182ce04d7a6b90031d Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 12 Nov 2024 13:27:15 +0100 Subject: [PATCH 02/21] fix doc [skip-ci] --- docs/cheatsheet.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cheatsheet.rst b/docs/cheatsheet.rst index ec280d78..e36ddd3e 100644 --- a/docs/cheatsheet.rst +++ b/docs/cheatsheet.rst @@ -3,7 +3,7 @@ Cheat sheet =========== -.. admonition:: Last version available v0.1.17 +.. admonition:: Last version available v1.0.0 .. centered:: :download:`Get most of the argopy API in a small pdf <_static/argopy-cheatsheet.pdf>` From e2033a7de25cf06cad7a31e310eb049160d69426 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Wed, 20 Nov 2024 15:54:04 +0100 Subject: [PATCH 03/21] [skip-ci] --- docs/index.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 360a2136..2ee8ceaa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,9 +13,9 @@ for standard users as well as Argo experts. The argopy team is contemplating to organise "training camps" in 2025: - At least one event would be in-person and anoter online. + At least one event would be in-person and another online. - Overall, a training camp should be about 1 day long. + Overall, a training camp should be no more than 1 day long. The goal of these events is to train users with all the argopy features. Whether you're a standard, research or expert users, argopy has features for you ! From e1b53ffb4298a8db4c974a619475f757ea273760 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 26 Nov 2024 14:43:05 +0100 Subject: [PATCH 04/21] Update whats-new.rst --- docs/whats-new.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/whats-new.rst b/docs/whats-new.rst index 31d7f3c0..121db74d 100644 --- a/docs/whats-new.rst +++ b/docs/whats-new.rst @@ -8,6 +8,16 @@ What's New |pypi dwn| |conda dwn| + +Coming up next +-------------- + +Internals +^^^^^^^^^ + +- Fix bug raising when exporting a dataset to netcdf after erddap fetch, :issue:`412`. (:pr:``) by `G. Maze `_. + + v1.0.0 (16 Oct. 2024) --------------------- From 27c8ac98470033463c2da45f267c35505c0d527e Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 26 Nov 2024 14:43:14 +0100 Subject: [PATCH 05/21] Update erddap_data_processors.py --- argopy/data_fetchers/erddap_data_processors.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/argopy/data_fetchers/erddap_data_processors.py b/argopy/data_fetchers/erddap_data_processors.py index 58c50e21..f63a1381 100644 --- a/argopy/data_fetchers/erddap_data_processors.py +++ b/argopy/data_fetchers/erddap_data_processors.py @@ -76,7 +76,6 @@ def pre_process( Fetched_url = this_ds.attrs.get("Fetched_uri") else: Fetched_url = this_ds.attrs.get("history", "").split('\n')[-1].split(' ')[-1] - Fetched_constraints = UriCName(Fetched_url) # Finally overwrite erddap attributes with those from argopy: raw_attrs = this_ds.attrs.copy() @@ -104,7 +103,7 @@ def pre_process( this_ds.attrs["Fetched_date"] = pd.to_datetime("now", utc=True).strftime( "%Y/%m/%d" ) - this_ds.attrs["Fetched_constraints"] = Fetched_constraints + this_ds.attrs["Fetched_constraints"] = UriCName(Fetched_url).cname this_ds.attrs["Fetched_uri"] = Fetched_url this_ds = this_ds[np.sort(this_ds.data_vars)] From d05984fd41bd01a6ac77df066e39bbe117b117ef Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 26 Nov 2024 18:23:30 +0100 Subject: [PATCH 06/21] Update whats-new.rst s[kip-ci] --- docs/whats-new.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/whats-new.rst b/docs/whats-new.rst index 121db74d..74bde562 100644 --- a/docs/whats-new.rst +++ b/docs/whats-new.rst @@ -15,7 +15,7 @@ Coming up next Internals ^^^^^^^^^ -- Fix bug raising when exporting a dataset to netcdf after erddap fetch, :issue:`412`. (:pr:``) by `G. Maze `_. +- Fix bug raising an error when exporting a dataset to netcdf after erddap fetch, :issue:`412`. (:pr:`413`) by `G. Maze `_. v1.0.0 (16 Oct. 2024) From 08a4d3aad597e89e8295bac354a43ec681980dbf Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 26 Nov 2024 18:57:41 +0100 Subject: [PATCH 07/21] Update doc with 5 years anniversary info --- docs/_static/argopy_logo_long_5years.png | Bin 0 -> 292693 bytes docs/conf.py | 13 +++++++++++-- docs/index.rst | 19 ++++++++++++++++++- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 docs/_static/argopy_logo_long_5years.png diff --git a/docs/_static/argopy_logo_long_5years.png b/docs/_static/argopy_logo_long_5years.png new file mode 100644 index 0000000000000000000000000000000000000000..00b3d25180ebd8d0b40c3073215e1f635b78b244 GIT binary patch literal 292693 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ંk!3a~*j?L&^S9NU0J=9hR`Q*6M0#{W$_ky-C*Fu)QAntHpr)YHq zu(&rcaiZGrW8Yjp0*r@@37`_2z=#5s(it`B#)lN|;ZhI0wI61Y8YCJLx z1y^fV_~XLe5IhqQ( zKU9WkG(l;S%rf{7u!q@P{Z!JZx__~~!wIf4Tl4Brrg2{_AO!H*YQ=aBYO zFA0i2nJkEB#;lj6^Oih50U^{9bSJZZ994@1;-ZcnZ{wsbHA)C~Yi|pAnv{>?W}}-L zW!OI*J_rR%`;qz~*FYN3%<7zETS%!gnzH=M#v4$veq>8eOY!>IJIur=IxwY9G5o-1 zZaIHhWrB{>Mz=YWK-55j6*Sqi6HK`Nl#GYw{u5=eq(i4MCqSt1Xjt9M3<-{y>=d&+ zca-lQRhL{^Xk*B{)l5~xVA>BShi{;mXv@SPzYWK4b!pv-2}h!ROw*_+2TTV46tg~E z*I?MhZq_C$Kwz*;-LMRmdG#z7kP%2WW~&Bai2(kfPTXHFng{Ks2Q&jD3g7Cp+A+37 z_jP(tUpW>{trRXJ7<724mTFM8z|!|!3S*VGyaOAUAcP3x2NCGUT&5yScI3E_|9<=t zK}{!e)<_0&)0U-ae8kisAbvX2*0s9b8Y-(|@x3<|<822fQma~3o-3rf?ZRFPXx9B?vGcd;x`l%7Y+X~+w%TY~I| zHearE#;}L6pT8<2=pvrJF zb01DDFY2oofZrbIQU-D};|Ep*W^+h|(;J1kN2``j$Unm;4T!ImbVoo>4M0IX@w@ZH zC4Bg@+T+x|PdrVy1?z4~f3sSUtFLO1r7-70Da!fo2oa^dKhz>xNz&5B{=!)K2bF4@ z@@nXrKvQbUS^uvwM&ytk(Nr5{;spJ#7kl{8zY%R>{EOq;fvIVG{MxVu8^MC;ia(!~ zXA~%b`0)#oHjBfu?%S4>czi=vttbPDzd#-el-T&C?}UT-9kH)0s8m1pRGJmyM)GVI zzNGL=7~bu8S`wr`0sDMOJHOwcQcH>yE?}Yblz+3~W{WqFiEmC6TNUW>B|3Jt}r@epzI8Fp0_Ievd&*|BzxMlt8ECTs?)GCmp~J+CTu5C1nx4gKofs<5Vi_j75G9 zevSPTvy%*mp=$8Hs5KzgHTY(b4eDclt6uQDwb0CsG}ax*L*zioMwJa07xY?eK*u&; z%4m<$NOzae53EKyI*=DWo;pZLZK64HCQDfU<)u_5RRkXa8~x@xPXLlZzV-n41oXlFBtxN&^BTr=TMe zLmR})bn%K|Xgl%cm;vXf*K9AHU~Dzg_MmupS^1WQH1r%P(0$183O*_87q zPFbPr3j2sjW`)borePF*dM44nqaaC&OOV_uO}e@?=iXh~^p?s*6!uB*Ht}#Xj0XG! zx2PQlBQmVrB@Qy0>{iOzveOJ?G$a$%96BSaUXUY7$-x#|~?5w$QcKNwtBpC8z zHlK~1z3`v(7x+1;umiz4S579tfXNTJG@eAgRLDzw2P62BV|sC zl}jw1-`A&G0BHYejySG!bx^vYrJY^Q*8)p~1<3?3Q>h3MMyi=LCnm{P%hb3z1-e*X z!RWC;$=lQkizV$Vs+P1GvV|(jhN`sv!nnUe6Z2cYV7^i)657wu%cn~j-4P;ov06QE z1Ec%XfA01<(d1@UaGO>~L2swW+P+_YO8Vg;u~zo~-DS@usH;H!-+gtIbc_WxU|^T| z{V-~mFkq2!TZAvvJbm_)kK##w#GD;3t$-Y>6MeN*BcpsmFapw!PL<2Ocv3fkW;DPV zDF@BznnXL1(JU{!ptt7#>aqVt2h?PGTkJ*yP_N6vp51f{{izDqoTci-MG3*M?ndLF z7t7TDj?wUcSpW%`Tg^iuzmls4Kx*d<0~nn%OT5XkP;cK_ecQQt=-4}VyH&E5`C2tRI+^JFeeTNiDLb>4rrAspu(o~rf)Qw^Z- z+HJG=K3#NH4Y7PC{=7Mbd!`r8PU0w3=|&;_R7i`Z$rls6+seOw_vK2by;$e6-4=DS zFyt2TftTY%XAp*+Dg3c{(elQ9YphE>o^oK@Lh9LU5si@;k2Vy|Lc+0s(#syDUQTXH zxwtPN#3#|W5Tv_WJhOd?_dI&zbiL10vnD47s0$Dg`K)v&N`BNK`WoJ4z=i=c560MN zV4eOs5xQuLyL+o^YuSgxd|;ogr|6ihde{9|v|exHe~vo;Yw)=^iYYvZdJL0VL~&tW zQeC?S#TXN}h{7THKNr{ErrLr0)_?=D1SlbyyMz|A{ag!su;if2&~_i|0pIfFJYSww zjgXo9<`BTcez%BTtZGAWZssc3i_ZUH zZ)@ot^4S}Xh59Sw`Ny5VwN}>hm4zl8AQwcT8-xdPLsQtC;duSfG6wlQM-Mi?U37pa z^92Jh%YuCbISR#RLK{s`IXk{i-mpQJy2B#Cw>|~{O#Ik?0cfhP)j`K-wQe_E13&6B zxjpnu-#MiDQ0RMD@-q&J1J~9$V$1#czcd!syL$^c@slg;vc*Z*AKijD=<%Cj>TX5v zZBkpbI*pVt>7SVDvDD4Fc0RGZP8DWi9t*I=FFx_w>5kqa`Md z@X>xKmVH-n~hg4#~|4Tn~8T~R)KMVA?_({ zbG0gMOasWokK_WUR8lbB9!wj87;;5bzMw20!Z=xiSTSGZ8LGXS!wX6~NimzH`FTPZ zIHXFejT*^#k?g*abA(&=qKlEr{H@C&{V{~cULEEmaslu?JGWjNIhlPW;t&4sp7#HB zxITE#BJUq!f8xPg9?b1fK}r?hqCFPuj;q)0_L#tKZKg&u_t1Sjcn7hfRV&2=T@*BC zgkrWgKD#r(MK|d7_pgWBUXE~~3%(br6;w=xYu%WD=CcfDfc)2meWs_c73+LH74qm8 zYKUVVO1>`YUi%SoD|F~%iWm$k5MQX7kVgsB?Lw{O5?me=Qax0b*UHlb0 zXY%jPwIOROtlz+s(ty`~?Gua9pB``j>~-ou9YIp1eo(-=qc(d;AH&~ED!osq(ASe18O7@mYUDVZ&!o*tD@V$J; z+gq5EgJ+dcknzgpXiP--QlC!7LGF;TwBkNF;PNZ!7=Stx(pB+K?$k?UsgIgJT3lyh zO=PFQ%FGs`@utYE1hFD^b%=UlOiOM*%K%IB4UcZXNAb079J$biQq>8&?@+x4C(^S# ze`(iYHnv&73q0W38?sQyS*^i&L;M0EZ@3?2Fa;^)(xBYoA*t#nPrt!#jLkqiJiW!w z^=1Rzi@L1sAO7F=#LvIBFxKpR@2ymd2j?Z`=;q)K@#Rtuibar!<&YI?oYSevG${G# z$T@ARlNY`+nYZMR^=PUZ(uY_ugK#2F2sXl1gGPKwO(d^Df*Q`DSI%K;oM9Hmp`imP zJZZw&`u<2BEAu@;qubeN_K$*A7Feme?lr}Ucb-l%QgCNs_|}0Q@uK+L_KzVlQqSZl zo3DDh+2JNn==xM|1Mhzbz~}ZR8r!csUNPc%$P&gDwtRT?w4L$Hc!VM||hoyr%h z)AKL$1W7~1^!N&S%dZ&yRM!FvF{~+Gn^Ix}4HW^gLHW}-lflHd-z8;(+j%LrwMTTEtCpA|A~Y+zMq9k@3Vl}qrDTC41!OOZxl7H zS?OtSDiq)E@G|Dtf|SM$$NzfC{dYmA!61C`Oso2cJdC&kfAEbrxQi|;7QhXmtF>=l zrU15($*0Z@CS4E9W0*c$2bC)n#ENcwuYm00#twF zaghHs*>mgQX6Lx%k?A^sPnO5-FV2Sj*jwGU6Eb@ntx}rf?Viy`oyl`vyXMEN<2es) zJ6T=4K?j5hEiZ7G`(AzxI2wN*Z;-O!O@9pF;M$8?1s;2DhbINQkH<4B?UNFS-?wvD ztf}7Zo!6;6EzrlGM#;6aL(Vs=E~DebCz(B$tW!BZhIN4sf}B{w&uH}&6tOQf%em23 zW~iQ5YCRFE`;KYWWWo3+?D?~!D&+oT56s9RGXr!*n87USv5eXs*?CDPe%Za?05Tn zf93HX6_$jkNhG2d>$URJM%yTjUPnORwsOOJ-Ct@vUGUFmeUCwAFKq2aW6DSM6Ai=Y zClP1r+;pHMJ+;$FgF*spP3dpq&fdtolB;U{20p9j_7PoK0t=9jE@smlAn-2G?S*)< zN*YxFpEwcR2%Ju$?YOzJ^_$L;A7xXHedqe5M$&dowR5kPpjVt(4cqBe*phpW&zHNT^wJE9Hh zVzc;##c0GzrEP$*=*{)5)c#!Jg#E^7(OQTpE2_qqN~(Ib)PuMv8lm_czp|7~>S z%yu5$D7&b>*iF+MHs?k4X0nxjkZbVti_^vBdB!?@u8{Aq?jv_OitU+=C0@wm63%&W zz@ryf#!sVs=Nt+S8GEnzdR=Cn_R{`@!q9=(dWZ$F(Z(zo*$2_?Y;8DANB*_A5+DKp zb4Etxs3d4dyX*O>-~4R~u{1&1#)35XbBY$oGUNH^w|Lk@;E)xfLEx>3}GIy)hFjAQ`eU3cfe8 zo>%669Wcn*_fJv;*|QW;6JG#S$csvP_@k+~eZY-*n84ki8pZxz(1KadAQ4Mom5jx# z8Ch}QI7LnE9`-_Sh1a+iqL*WuG>W*klM_1E{LyMad=vRmHBO=ev?(BovwKM6w$5Mt zkiKb|x@KjB(Hs&83f8drQhXvvrh*s%p7ec1BCKMeCcd_*9msT`9>}55u0oj>)#m;a zdHc!y6QNDf4A={a|C?#W?>N<@+9eh1{jc68(z{nqLg%rbrE}gV-(8~dBVg*m(H|Mv z2FEn@Wku__2YbMi?vV*i?JBRsb-aL)ZryCbULA(y#Il4NbM*d4_QZ9NkFLhLSMp8t zsA5`eY^*sAD()4GGNCbHKUyE9kTMM4Gcc!BOlZ_*=hIZKXXS zH){g1z=P99yoc?jdKC zaIvf5tBNH4Qee<*22B~#yM=a!&~T4V+Iiqtf4y(NrpQr5=QKebTfprr{>q3 ziH$0F`t5!RCgEIr@I5ZSsV+{JBV?87x;(*PSHV9R5w2mc)|OxxEP&H-q>X-bd0{R1 zs=X9Tcz7f*}K9(8BDo9~&Nbj`aUh`4*OD`sf4ye{sI50##KD%rc! z-J6hKu=r|&Q>isCcv}F08~H1aT4_?LZzg{jr${aqc9{3G&6*ew9^<> z*I8w`1gi6DK4l@~>=bu^nrV83rlp7|vOS1AHvjl(kA2H@5EYu^{H*q~|HcW%i1eyA zdu5pb@Rs`a#_|x|h+2}-4Dr$(L$}KbQu+{SbTjsC?zJlj>&OG0zln|L^^`%2)&g1R zXH49WsDxDR(X$j zVE0wTFYnATJTZ5;!(q|y%X*&^D#$e5#L@@h1$pg(Ys?x$8kZ65rO0=UsxsGp8Cp9r zad=}ZT6#gmd-UMTBTmjma$H{<%$KTFjS3XG-~1?Ou>$nfeIwg>5Aa$*A+_g~JIC9D zDxa1KWx__p_e63R7hWaBIfz?yhWYG~qz=&D@dXR=815Mie05}@f4^x(S+Tp~cE7&E+Wkmj zQ`a82?es}mx|_rvXYhUk7r$ZIZb15vO5|<2Zx47bTswCAxT0N4Gl`=ZjM7(m{}-wMVq7I?c->f(Fd{+2H~uv$}zvg$GJT;&A??Dh=|Smg`` zw3GlJrP_h;=;h{2V%rypu*{RnKoPu<8x3|q!V4dsdp#8Ta=r{#E*aJLPp=-WStdmi zcWz*YucW1NcHEtfV*@ByrV|u=V;w$y91Sv{b2gHb8k$Y~nWR9&fc;u=JAmm87$sk! zMbP@dNGLT@`L4UO=2l@_jMJIsNTg5pO?KZ+iju;ag@rVpORy?n>QrHvo__EFNr&QB zZl9dYQ*eL`lU8i|!!S*~hcy;l#=>FKd!44-#y8&BI|=YW+sGC44|4~&)4;>n>E>|?4SeA)bVYME2t*zZ?ecb=!8oMGUQy#;yJIJt}?bPcju$% zxUN{wZHA43~yc+L7m$s^>~bCn~Td9M&H1z|`>cX@`L7n$Z(z*?Q~eO;}|Rcz!4 z)oKEPbp{zxUmTy#8$B2yrFp{8+)_-LHA`&wi)~M&czs%25nN9EWT>XDpI;-6@fH1L z;!vnJL0KT-Yh=ZOK=s9Q@h=b=o=JvS%)C<`-OBCjdNBIkj!zWSi2*1~Dv08L6{$pi>~1!t8e}8? ztQU%umh-DBUyn@id{>GW)+ci1{R<7+@2wo@Ordw$3h~IX^w0LI)EuH*HF6Yxs95o} zWiMLqGo{xz+TM3<&b!r?HA4M6xv$DPWEKBzay`dY=(hExKY3V zom+49`T@?VWi`?o^kJ-6bMmiOvtRG}O>EP139&W^rXu4RP^HI6i1T6V<^drg%A;Vf zsKTScQ5%6D`|gjLD9DM8A(lr{Jf0p3r#lCUGiRAU>44`jDoDd_2aA{(NC+%3!W%m5 zwfuzY7;68A1=aDNT7}^?09EMaE~eZKH)ucyE|z!~Vn1E2mBx=s29Y}~hfGcp{I{6ZnGsze9DDtIh1_Q(JIV#tZWImCf>K7h}zpqwr-)0n+h$LhcDy;CRN zbQ0dB&ckByyhGY#oUOC+3c3=XAE5>tb?~#DtFcEJhxZw0XAsF%Zwna*!@c?tDM=!3 z!J_6W1qUpz^vAJ-c@5*d$)sC~Q^nyLB)_?8J3)Ns-z zXd1&(KsVPlaj}n_Wz4<3M+3U*s~Sn6qd7!xDmr%B#Vj<1TrK;4)iGTEWf5kcPPDQ~Jp_w-XG)NsSq*eFb)!Xr_g;QXIQwK_N!7Wi}CEljZEkSL3@1_kF zu7lNQuFVWgFr|6-TL(c)u0w%=tbv*^Ik;i@%Raj{Z%es+p@!gdf*p>p(l0edHAKK%e;a<+ItkTeG66_QB|H6=CxY%IKx_QoJ3Zc(5FWbbKicpAR1!^;C^+UD zVP`0ytUMfB$30>NmB(WZIy>oDrf+}bO!<~oWV^;x03Jbs)z-PW-+dglY zhH8{VXU3^4*_(Bc=djlPolY-)Qz`U8M*e8;>T334s)D&}0LN zt!8hm!T`wJUNEv^Yw$8Na^8cI*v(^@>ds7EC#|kk4|jNNDOIRCB>lIvwQ&Ixm0Sro zqRmc;rEL1TmBGd_soq$)Ir0GR*p1#XsZu{sbo>eKK)?#s=t2B`_#Qso-s+Paq3qGe zVd#ZG{>wo+YiYJ1a+ZtbZ$vZMxk(mn3@CvexvFyh@~PC88To`vb6z==XIW7V{P999 zA)J24Ww=PS#(jE*>d{C15sY`4pc40n?$bd;d-j(PV>IjDV5xSn1;Gb;#Afac&MOcd zPG;;JJDJ_z^tR^DU|ji*^3eV2NQ4$4pRJ8(<$-6Y09B?8Z@9KNKW>`lwH?;=t>G(g zCDoul({p6EkH47^RbKQs={{7=vAWwk)uV`m`Zkman=w|(lWTHYhRxulz4Vpr{oEaEfde;?eP4iktjrG;6w1XG3ia}S0dK`{gu+gu*@8`eMb^6?DQ%SJH=5NSQD=7&k5m-b6-OVJH7M+1v^U~5} zNx3CSN?>ZuI>})kVAd^RP{=Yi%gZj>dk}({CmR_GtE@(1VKb6H+m-}e6#bqyb=L3l z;fHgdM0?A;WHCaU35;-AujaAjr6&sNqkCFiwR=k6B{zlo)Ot7v=bw8`)TYrX=*$BG zj5@sKTqqEOeqVsABzta;`7+J+3=%xt&@6wY8|x~|l%z}uGPg`VYd;r~J5IgiyGkdv zSinL8eg631NCx9)e^br$ltei$S$aAKMdrO_eX%gN6_z0Y|qUvhc0XnX~Ettnz0YbAX z(nGJW;P$BdyR6)r%F5y2Do5Gxk>j=(Xi-OZ?_VG!HB@Anq-tRMWK5YSy5d6r;-A(p z&D)tfcP&wV#)>UZfykF`U2r*66OYAEn?-#h}%1>X1_*p?S5q0C|TZ2~)cyDrI*_sn<{e zm=ofU_O2NRwaWw$f>n%Q-MuM1^nT7Su_w zT;D&bqwvC0j%o~gcJt0Zov0u^Wn&a~YR~b})1XfX^ty+~J$q?r3VH8BWn>_-KHFR+ z7-=pXb8Z_Uf<;0E^10QyN7DPyI9Jz!b4UA`#JEM6qo!{gHv%D10a1NBU8rOF3hYR4 z**?MJ-Jgyutg=Hufgs57z_c4tM))5J{fr+tEG@7If1OKzuQpVmIXGL{I}={08dS=l zDVx9%^X2Qad4dFr%*Ecz!cY)HjW3M+?`dQ8$fG%r1$kBE8#&-YzPle9>NS_{7w8C_ z=ZyDx3E1I0K=JNwYQAl=5Zx;j{lhDy1?$)ViTc>BaFwym`@>R%`QSl+W|>E0#n@78 z*(+{1ijAS}`*(X*6ZasZ%3=zO+PAst%*S3b*~55%L%252CN60fgr5#HC>dO585c(m z5f{(mO#apT+9}+1ky~9LzJlrG5^*iLw(p!VPy0(!ZYDfwy(lSee&Z)GYqyI) zTXsr@Q>An^(_7ftjS#WS2gX4jIk}{#;-VuXW+a*RBJ~al^n?dvKWn53J1KFntL~EM z!RK1P)Wy18ugp;)EE&uXT;<8n=DNn&Se#2qiA49^bp+dGu&qmag`GU^jO#%%jXYN$ zdW4XAeL`w7UMy4^yf!!v@K%-#Zx=SGY}zNo|Bx42y3xu}BvxWLXc`PYIff?w><6KX zBVJ3r>917WT5mve5+wgXD;Oa}KYVL3wc-5$= z`O3S4IP0Tgb#%+NjvM3QhiCxyhSy~bk=*X|A5;a?vu{?vwyv^5=3%t$5_h6gR}#R1 zL=ZY$E*XjL{w_kze_gO*5Xg(LO+B7G3+EdM&DtCq0-AWr4(+9R8uz8fOGChBA~M#k z0%LNY&0=h)nnZ4@Cb9NeS~t~`f6{V&satKZ@$>AIS7%E){u7HQ<*^6?4vsJdaxJhd%bEG@vwNwwcWAkNOngV!+fmIG90K?hK__Fp6 z^qTfg54)Ivyza!x^DF1k2Qt4zv$v?-w(W6c$&&AnK{-{m#5$eP- zzU^xVt-93$g(Gwr<(v$_d4|fKlHQI}n#s%S%t@YUZ0&ndQe~)G9~YdfZMm%_{*@y{ zLnd@^T^BC<>Xl<%o{Jra)M~k)&08}S??X3~3i0Y7dSoB}IV8#S)@dvZM=CMZhZr^9 z({+>pn-5ZfLCiqxV$wJetNF>gy&U~Ap#t81=et&sDT7)}3K#z$;cr8y^2BFQcakb_ zqmyj(cu4S+$&xLSUdo?_BTiD;NH52G!%M0r$oL-#552I{z?%I{nYMnnb?(Ob4*hs8 zB^Z@kOA??Sv_af#o$qq>w8*3M{M)_eKPttIcyP~}E1=({A1WRT#=F1c%4U>3PgLEY zMRCh~F$*ib*r)uE&|4KbH3C~DyV4g}hgv;a3HS{e85?tvUEmeS3e4Rn?TFn>-A6s| z@sSG-2`7HDq(X5$+Y9V*gbJP@PpLIi>dO>7Jg=y6!1A%_A*@4`67pcjt1j~by_eSX zuko5|eck*Q;+Zm#`gfpWrQKf+6q`@}9*zVbSZ_Ts(MZoxp81D{W!3N2G*{Ajb;c?X!ntS_h+X)IY7@?~p5jpdaGjh^|QspCKIN*c36 z20e%2+Z00BN-*VF9g`oVS`@A`I5(1`N_FSxUf!OExMAbLpF4g|wd-DRZSL8^jE% z@^dLox1moPaz)?-suRP>&hsv->PM5x!;n#o`RBwFk`wg7u6%5HzY!D@8~-1M)J^tQ zKF2`n14-}AcRu)3PgUR91Y4V^Dg;649u)xhV~$ zu08-Xx7HkS1xO@Tp^g|>kd_tC)Jx6!gD+aB@Vh#JP{srv6Sb!WCLgiPjbMs^aT`m! z2#xhNrxtMW#z9r1yKH?z=a586Cf@Hfe{vhp21Ux&F}T-%fFu?2QHu^4d5Z*hI9qTD0_a^`O`P9+-;c+7`LH4If3Uk|! zS3Cft{mR;}hepTFsXbEBK86?LoJe_Gx%irw&u=Ddafk`gFDH&UH){>O&)PnDCm_mN zs88<;uqzKOwpWNcQ`47F=+X_Ot|qJBdajd+MeB|(z-4NccI|w2EUBBhCHZx+V7&*O=&GX^RUN2DiQiHQ4ZM15yzBXU~z zo?RDS^FnRrVUSad4-lgT?p<$=algVsRgqFr!Pqe}d3W6t)1 zmd4l@xgSRO>`Yi@&jPZnsGg2{LIyu3_zIf09f=x(WUHx+>Xq4#0Gp=hc$!Ocm^;&> z&{fCF>Y52FPZr!17_=Wba*HO)c=ciy`SfYiGow;^IU@hmhV!^owk}%e`&vakP%Mj4z;V$yw?Oy*W zP|2ygoZgL8rX8xuFnZa`|9aXX^>lu%=k@6QePV&j&b3v5orBykc|Trur>H%&t7f|A z#j(-j_(o-Us^dvjkzPaYxMLdf^XAUCKxjNu1{CAco`Un^mloiXDp7KOpzrWBEFu8e zc1wP>qAwONo}l&2A0I$#WP*N0xL3L}Nc{%j;Qm#>v#qZ1ksn(yR_I}+NZe=l2%X=I zn(u?)t|bk8s;m*y`27>+Y9H@PZ`w8Xf2do}f9gx5CYE?_K}YhjAND6er zhJ~fY@5#G|f7-u?-~jZ|TuS^AVpKB89EX+~qSTAa+b)0a*LgQX1i+9SHG^PC{acsr zp1flQAfUH{$OxuNKCuJ7UP9a6?ekOJlhOGn8RVra+Q0{b#E*bI6vPW(;R$G<2_oY74gQKG&NlA%Rb zGqWEt*9Uv)^b^fk3NC&s=j$bhE~v|jd)V6qP?hO5acDZz)O~-ib(IG_hzdl#WA#71 zYHp}w*mOdd+r^Nfpp>N+-1Qbffr)oqK1j?WMlt(-p`Chb?JdK-xb{MRG)Cx#+By}w z>GGS}=~Joz!!|KI=Djw@1hp_No!eBdtm#Q%P~?sT+R%#YRd(BKzDWG3mrU~48aBFw zIN6;>_ECB4sK6fw-`flXE$aNRgr77FV6Glmi$Bn(q_ZJQ=`C6?o z?7Kcj)xmf2c7#yH?!CzODkS~yOC<+xLbGErmp_;q}P0xGpX1I}4b zyCbm!)4dETRl9fFvtA@>l<^(|6JciO&;GG=)WMNKc;^~oz+J9Ufg#YPgGGSQTz(6~ zwN~~0M>)o1c0bwez{T^8{duo2{1Ed$F9u@oZD&gd$h zrG!kMj4_n3Pnlk(48WD9G|!d(`6Y3b{%T{r9iIt?mT*FG;aJNYjZAn{95& zC*{(kuG9|+e+PC7{Gs*ahohN~qXf6?_fB{)p~0ii-16!1Io1TtgO~lSAQE{|J{DE4 zMsNRstv7i=m)8iG1A}273bjmIV(!j%7CgJ1ogdLUhzvfCjw{;UlO;MzHQ=JVbm3Ae z{<^{>qjiKm9}zeb0Vnb)lX{SaEhwiG!jzYY*NzNh+=NPGwNpswM*2Dwnp9%`W3&C> z;4DgyuYur}-6AYiAQ$GAg{=@nMnBPKM?TY5$E(i|r1-Yqsg4{|j6vbdDZQNjE(w6`?HSxIL`a!jU)(-2|@k)mG+jTQTq7#s0(kvJsfo_3~jmD#2GzS!l!=q(G3MhtcU%UybC#zSV1kO z5}Ba;%1Iv@JSZheN7(il2gDw?>p##rZ5MP`=;sz@fTQat`=LO$0Ch6XOM3_Ut3ngh zr76qL*&Q}NDkTvX72pGYECYyZ5NBQP@@Vv%$UxT-pTP|Ct1)2#;jr-QiSC^Iuw^}6 zLDmtCs^+=Bzg@(TQ*s~s=3i>Pm&bF0oa~;RBm%F}S@+N~Mx4Z0bG&~3#TyJjj(o8{ z;TtL&C{5Lc^u@|y)PTOU)3lExPldPH?bxsp>n&H&O48jq1wKjLtJN4J-KHoIdmium zn|(e2y~xE{K^e@P8){_oCA@UHvr+D}TBIlbmG2KCq<+ozlTz#T#=L8vj6oZ(PY$uG zr2%a2{;{XY^7Jg#_Fa~OSbvQMi0%C%O1@f%Cd#DYQa$dC93Z_(55B)jJylnk7MMID?-m;4<;9JIqpMJ1{!(*fohJAg%+W8a3 zhyJZL;Lbhq;X2qT#r)!e%J!DH`=)M_`p6P!`qnlqRN{o=I2_3DRi4Z77@zwKIUoxz zt0Pyo8eUW${J>Bv30%Lo)(R9Rd^c^iBLIl{>Wrh0rl@Vr5MUq*#g&PyxJPZZeizY*rHInS6hf}{r%35{{! zFol@A=iK|bJ+nQ8TBg5I`Z&s=$naM8a>M_%{r1W~zPY#f7?++#_ zRgNK7TC|eBszg{T#a5jqRGM|*fX{KYI1Kl5J21f2=BJ7<&7}+-K^&qZb^=`DQ7bnp z>;?Oae(uGcv-}%tbAeWv%>wPFT2o!;NVchGA6XG5sT1+fPm&05E_V+RXq>W@LvdlL zPoM1x!j)y2S*=DrnBi038Nt()Tda<^2Q;dC4DysHLG50lLb6_pf6a=G|B5`Gs^Y+o zDdOwQgNte#`YGeq<*$zq3Bdy?Tm92P8PDXE1@k+KNN)a|C^FroCBL&pZIC0Xsw_Zl zPh#>vW3xO($n$T0j6LJeBoo5~rd=MWYMkZ?-WB2iPo0^(w-z73mv9Lh=6d`p3ZTgCKM2Yfg_mNR`L1t+c~pSo1{#9^7{!N7jd z4bqg>_JK%yR`1A;>!+8avA5JdN`p3&{=KTF{nFtPj(MEGJI;Pr>T!ikZqn`;(3FfA z&7orm&YJ;htJ>V78wDq9bNmf)p=qSHXTC$UO&(k7sfp8EbNe{!8274x8$G`T(6mx4 zubCsH(aLPA=j!svTbW%|&O#_Z!>b&R6Fs$N=u|CxOVe?9QKr|#0o3WpJCvYVnZbv~VDkyk= z#rpZYT7~z^{$;=sXT4TcSDqfMUnjYpHtS%bG}W-zN*p8SJzoJ&0p|q#Uhs8g6VT82 z_lfG?7NhUtz=;Bqu!S@!9&y%Q3iK#3QAJlq`2 zS*#1KHOEgbU4RX9X``C?gF|t2x?x6DOz9ei841C)lc3i04l24 z93E6=q8)|9Q1MSH-*MxdRB&Tw$DbS)wL-r z@+YcDRW`5bvm-rXaXEF#GmX#!QF_FCY3e7EfGtkSm+RkDveL%+N|YIE1^kN>NT=y5 zyG@n>vHr}{*mz@E6>$RPX0C4ZbQ$}2(CIYIOIjN~k7qP%UJRnY+s+;1@8Hy=UiLzM zKzj$jB|V!`orHB?1_ha-j||BkRb#{WF_qtqHFpw;q71>{w;WqcL}3_TQzh1H-3_5-#+HXdJYW$MzunNz ze*c_|7zPTHANoTi_9}L>`(pC@!fU^}#Q$7`UKD!?D|Ad43Vyt`ULA72KShF6HK}KZ zuk9&AznA?)NldJb1zamyQ34bR>=XObw0X8Wp0Ew_;!a550RxkFPtgW>hUs--Oro$D zYCUhOxPpb@$8F(>+6j=2+II3{cwE5bDOOVtbTp}!{0NoUr*K!sH!XHx4zb3_v-^hUOvY~6-d^a9gQVyFs3w>IRu*60*8KPTtU>&Vs#e*Gw>X&~xnPYN4z74h}d~u7w z?wY2_zd(yLJLLZJ5vf8m>~-jxcmfkVsr`4no46VaF>JfO)E%iOtMm@E5(Ux;gbt!% zETuF>=-~RcCtLSIa{5Q{H#T%T+^+^R-l$HZz_ZX+AMck5$u*5cTy|eJ4OsT zGLm=09aJ_5O!y|){KlX;u7~P>e>|Oevag0TzRA6F-sEVTC+`wQ?KiHBLbZ0FO;Q5I zS?|rmn}tg$k`r4y_q%|Of++t+LURb*8YUw;2V!EuK}^g0L!-q94+3fra0#de!%9zX8Yni% zjT}ypyhGkl2(V#r%t!s@)f{S#?EK9r5%$I8gVC}F&)<=#gxJbKj)FXbg7VLs!_hg+XH2D`+lP4Li3hDC>BR?K_XM@ZarAtroA|!~f0gn2)9F8m1*G2VHI<+zDr23r zx_eE!+dATqd75It5rOZsUy;=M@(fMK^>vnS#8EppFmPDfp81`e5ro=p3%LQ!sKkf$ zYh!iU4a%gx7=r7Tj&aLZ|Ni~t5xkdhAN=a^l>m4E>f?Nk>X6?nd-5l`gBR{O#-LX` z?MF`0*nP753T~=JWD4+^$nr4$Rw}OL$Q40y5?~8bXOyHZXf@y8Lg>k!{aqFe=5w6SH^f45j=h)tk2wG_K z_Q-*g+y{H{J=H*NIb~jIWSeiw40eLDGB4{xa-WPwu%8A|rvfo|U?p45VVsH92)#|= zU3@v;VTRhee^lpGq&EO@R>Yku1f)BXPd$TaM$b|BKX|BNhjDoWi(_+LXk5h!_f(N$ zbf15L&w2lliygGfP?KK_mxIqz{g3lpm`f8&;CBMs&Pjw55}!KU-EeTjDO>$reM{dz zh{(uc9<;-&JL&vODx3+w`um!+h#+S8}Zx^jDhA$F-Jp_$dHf#;-X~j|PtQP0H zC2CV2!n$UYR}7*EMl|}QK{g^J^Dh%*s;iBtymsvHr@3Q_>Ae!sT%T6I9P@o6 zDq_K)rd876#5AiCo(_EhL$(uqPdk5!S*pnkH z5;vc^vvn^275g2TkoIZllNFnP;48WA2CH;`6CAAeu#Y7_4NDuX;oK z%s=m)ptqM?5O-DVagWpew^gMj2=W443l;_!l5`^}F-(@8s39ScD+uBS#RYaG$-!8d&9&FfoL+MwLR0%chm`*3?Y}*JK5$z%cp#G}3Y7H1FtU$khAZYwHRH1-6w9 zUoU*k`>WxxYd-UlE!D~QxNY8PvEQhBz%%iJBiNk{lKN%)3IqFvwI=@kZq-oJ=)e!? zl>KyKwZg$|%7qmfdB4VDkjF1l#29GyjqbV~?S^am&Qy^m$tlDIv1$EKI*TeWLw%1i zPci4FMd2wYNq%ef4^je*XA4S!@3evM?T)o1R|2_#xNTmlpS?*|-~_B-?zm>P3Wji| zqeVR}SvbTc8KVvb-%a$bOOs_)cxU*SI2)@Ho%7J$?=*NX#cy^uZlBq%C!95V;WTmj zN~%(mT)ZCwomlOW)%_ha(YX{d!vv55o^+tP)0Ht5o~?saI6G z8>~{zUTy->Ntu_t>)^>tECY!?S!pl`ea1hoZexgXS-?k z8xtuH{#5rqZ-Ajpq?V?tq3z3@Q(YuDaX+);FVba#U+Cq~W@x3hiKIb3+@*&oJhy1% z=C}`mD}(-if=sx4HVooJYlhIHGsbHRdBq>9|P5W%ya}nc^b`Wkz1Nb{350S(iKtyF_ zm}TR>+$7Y>o#^ox1cOqvtI^> zf-5FC-uu1+?_CBr9c!9FSd3j!G`|AXJPAY`@XBs|s%aFZO23#gx&$A9!R$c~6wp0c z<+a>c1y;jEJ2VA@c^llA878Tkz%_U}VC5)$lQ5~4pXZ{@@!$PR24r~0I5|QYS|_+z zs`-s)aJ2-B6h}Y%!=@^JJp8!E_1y$D^UoyC<+a(@OF-WtnqHE)nK zt^vibFo$}GBV3ZQ@G_`$UcsQ*vKxytJy7IG9p#YG#uwqQfwUbVu6JavNaJ*l{tBGI zyhzB&zH%W)e1}^9y6x2w^g><(P!{LVf*(n1CKdd~K8Xd0Pi7_lD8wnyq-6yZ$2vg< z-$&t{Z7j;_3QcV?nn|2WT)55@dnme+@V9y@duRQqa4 z#6#2Rp2;P1G&g;=qaG#^N|)Y(wn;r*eYr<}G##}|k-RPMJC%r4nf=urGOgSt>Cr-+ z5VjxTqodc^;q;s3c!eCXQ@(~3w;c=$8}%Rtti4~~y=c9dNFAnJ`!p6Wu>*|+Mz*rt zPkwO0@HZXUKSsUf0Om>6hupx5x);XZv&~w-rz6{8#eT z>&-uB9rYNMz0V*&XmhoX2=)DIwS~|bFZC31&JiiqDC#D+3nn$wa*_1%E8Nn!(NyH7 z-{i`Mc=8UxAVh12?j3W}t_bo9Gl{#Q5q!qi-}d>FN%cqaxB;wkc&;|CQfpZ{iTL?r z!(VDOX$ED*yh;s)H$M2+4{*R?pLp6WJ}5%L$6~Wjv77I{g#(!#6Zt^iR@*+PK6y}W zDpq-`PPPn7JnG^S%lu3P5(ifl;`)eCi9JML-4aTUL9j+Gb-JEsL}$tSZs_h+0Q8VY z44TD*>SM*i4%>R4g8s}Y_+!p&iaFu6tv>|$BLnHS=R1J2e^pTLUQ^+Kgc$5Lwimfu zF&9(9{cJ+&Y@bVXLaHIXU-a=S^~bmvv?wO>)*9%%$=mnr`pM&;LB!~^(h-K4sb-#9 z(}rjFO9W%>HLj z`qzdY41HNA8{01-PvD~yn!}1>oAuiG$2-W&_^;nyYUgM2EQ}g&nS;!KHgvW474o3a zK}JBHRetqnD?&h%`&>t29e;5bE*rMN7+`XyBO6GtpQwadGRfqYpVa(73U-vn>~ph} zy2-(;Ap0w0zSK&rEfOo}8vJB3Nes+v$}oBuBTUZTbFNH0D4$C3;Mw}jnw-QLt77cu zB=tLl^4?mUo+F_u_%mTvjD_=BHV&uhHJlIyQw%Y!FVE(>z0!44HcDYgMcJ$S2lF1< z4F6@KKya2OFEHV$Z#jlLCeX}OLb!|Ju?_JMYi}x|sHAtW10P^DF$osMBplmjSj|oF_23Qv$((Gy|i_ci7l@Gc)BOeE#!t?Z^`_ zmuoin2I8;IWJ);ADqDD9hL^SS(Y6oSN-?yP=s@?2i>}`};WE-yudxvvPHDeR+%8qRYnA2qzrBiG)zr~-F6JXpF82p$W;Y_Y{fdXr|KWw(~#KY0G;3S zYxt}qdkDP9h(SV`9OjmM%*ZXrWG=t*R(8S<(=uBFJw8^CvXd3FV__*8HKI&BET%OK zX>ukUH-;Rb`}(0b*H_u{Q|zY_?Pk)3o!cof zA9p%@Ep=YXYYb(s2_AsUSYGry8584*MQKa0-7cB>Y+Q-M`hgCcj6a=os~3*8Kq;&r z8Qvk~eKRkB>zAVY^V7zB{a`b>Lr0cy1A^or9`5lsKNbur{*1e(?nau$ND!Pafm&ZO zBwySDJK)t4n-QSTAjeLf**GP~jH2&zmaAV-5R%|G4teOHWAin0h#_hebVR!Kkql!d zVsT{(*a=qLpP-om4`2SJ>!LgJ{(;yKFr_fkY!(ddj=e=Qhis~{#DD#z$eonmV`{x9 z;o(}bMDx1}6Bs~IB<#m_6y5t)Z0uAN&?sl~r)?#mBV~nn;0Kmbv{35-4p!eYOPK6Q zwleF0Qw*F5eNyVJ)A-2oyp;-Q{LWw&G@fT5&288au0VLGGK7*8^vg(Bd9SGFoXepY z#yRk2C|%S&LrirAE#146=I{rS+Dj?A7sAe?cKT-k2r95 zx1O9MH7PuD!GS^-CqRfHcfe;WU9mZtc2Gnv`?H(w(8plg1pMR|YhrW{3S1NkTGjJH z@8^I6kIN$B(`|ccoifwPkQCwlf zrdzjyHxQL4=t;ich7aQy`)a(E(fS0&1^;z36RD#pZ|;A`UJp{LkN!iSY{uB98jK-( zZsB`BFC0Q+2_YE;WOkuL+y-N^ns-wJ#>H+|e%>18qzV@bLw^21e(dzj|3uiQw%ZwY zX4-6SC^KDm|8fCjxLsaiiC7| zKcxlW+e7VK9}IS9$wa8|HysW0;KST)#;HN^`Ps<#d-w5x>Mw;{L@QXM{L_NDRMGbS z*csk-3_Q9Ia|}3jbHE$jMB|ghj}cZiD~)@?@cAr#)@nYp`dJ7x!T|OQbwlFbD9?%B zY#ZEu3#f^JGMpqi7pgsNGt!^fgec441_=P*?Is#S?U#qv__7NHgUlx9JJe42ye#~_ zimNF}Ixg2r53?vr!Q*!d{xwm)vPl)6s{OpMonfb*?pCFNWS-=jVHltWP7^PtFZ_>{ zD1vH@C>hL(YWXdrAxH-uzykM#$G(DEuJZT|pwT)h)>LJ&#MMS8g4!^f-m}!gxI2Wf zx`1WgjxAYSDA?IC(jFb;f`&*^R=JeCq7ZY-&D4-RyuxjZF^B?bRz1nFy(Qm1j~~p6 z@5&ts>Rjo%3UK}QT6mDCYB!%-aiPvXVINM!rN?{Kj(1Z@l=o|0>=r{3yp-zEK#QSs ztSAZxZ*+r8#~cOGI~95$ftMH{PJyC?^(iR1dhw{)RnAr zlF1!M1U5=$9X0L7qf-^Rh7nm7tE;)T8cd|<`~$xECzKiJy2x2xrrno3s6 z4&bRV_^4dbzO1DPP@(k(js+2#>@2cSNyyYsdt{WQMDoq?!{pI@O_bM$(8_%5a_3_# z7t-rPEg+(&x4pKnOAAB_IqN=!MD%KTpzR?X8)R$F&O4*e;PuAd$qMhP0x^5Tnynsf zeGYdtQN3}f7<(LuVmNlwl*B^bT-PvrD7ZQ3p0Sj=P2*1f#~P%Dd)CTiq7KFeAOuL} zG$ES&d}qR`L5rxKwoH?g&BC4cEulOK@)2NgSQbzL48c`1$4Y#Om}@^tDFpIWn?s_? zkIsb>0aEJk;6gJA;q0~ST}<3<|9%1*oRDPy_FL;9&;;U(LH0C_5T5W{x_Zw=gQA1l zr!u3>K%}ug$Q#ivfa22AOE?6&rol^dIfIb9n@yR~D5$*|PcU=g<9OdsGYNgK*1nKuY@ z`L@ZP5IDh2fU7>D$d+V@{n?vAA6_cmgB#|%;^As$9iBt@4s*PWYo#@nXnH9D5#*fE zc@m`w60Ve__@%fF-EfQ>CdtdQW^zcI@ArND%{>2(RVUCMErm)iPRg5oiOY-9{#Y*Y zq@uEpD!u+oqxmT3c$c(-wx*Q=tob$^$>-S~8I-O2<%Ht(-7n<)k&W#KjPA3aOIOl^ z{C3d;{(GUZz*Pa{u?0ecktFYVFh{_SMiN4uJRual*yl?Cbp{H>Z1wP$Y&~Gr4FP}& z+nLb+_YCfDNTEc?f$pS)zmL{)aRwk9@b3?t&49Faa)KF*|%5Qv-UhpjB-!=AF4*bBO#L*QcLgmN1D=+KtI@jbXntQS>s#c^+(9s0GDqvUy7g^otm>5)@?+41 z&^&G8Jt=2z2;fm@-lRbF-`nudFKG1tY(*k3TSIt%fGeWoQYnn4X(t4iT7!0M(2z{~ zv#<(PffSGpBMtD=Wa#)xZF{E7EWAtCPp*wSoXAQ)A8I0L1Q);-8@@B1 z7_cGp!Ch!Z35cMi4v)`#S~zA~&7K!HOn$4L!4G+f5A(~@XVBf?b{o+#{#l4it!f!I zk7UlTK18ZL%+21}{tM?2c~yh>TEbCDo+a-ZIP_)Tyi)@14jsh5HS%(j{DwJceooSKfRgKzI1`e7fIYf}AzFYL z3#wo(W;0ee)q3laP#mSx(S51eR(8F)v$CSUmUmHBeKZFjAJwzIlH`9ZlWN?_HxPs& z9Bb(2yBrt5U46O(?eoOa1Jqt^e!nbHQb`lFQeO%$33yM#xr2<&9pAp`g4GJJ7Rx{l zQT!0QmKKJ9Qm;2f=YefF>Wq5>c3?NT-~h zq}2zPfMMJ;$xn{P`pmag-w_tFII%B&f<-~^tK)-dnOHh%%M6EE3mudMEq+Tf1c4<| zTgcbN5t=P)*S8evkP^?{qkAIUuF`1T5;6e|Drmir{*Viq(_PKs>lL(|V3J&UPp5VX z_rTLFV3C%=U1GGwpTmC}N0K2N!QhSgB&n5JlAZM>)!_8YeDWVm+uXWmb@z4(1C7*U zpbZr+DNf@F<77=gEh)JDyKydIOsjvritgQQ+ymTof+;&cjWu_$5i-ucY#h$(xa#Y` zNfMV65tYE^#>-6mw;jdVxDcX@qw7%dp@=MAx)BCo?yJk61Y2tW| zG8h_VcqT^iRq&>__AUnVuAt&45I@eWULd+;D-Zxv zk0(`PIFka-uDr>lHbQDI*K~937R9;go?d4Rdi@)f1mX81R%?%i`eR z(QQ{@&PCI!eA&`%(m@~B+}+m6DD->L?N-HalvMajmXJ$i_J){c)06S9cEf2t2~ zBXq>yC6E7*hQUo08GTsK(lnd2N`&tc!Mv3k;#<@VKnvl{bXqlbB}A(|2oV@ zR9}ax&ajy!v0P9Uf~gFS?`h`*wvt?osTYTNHJ|@HQodkIb$XtsYknP{ezc^4W2_v_ zVOen<+D`lG&5_1q1OdqaPFQPaDJ~b&a3PN#!)*vC1=H}Ih@{l6L?Q=piA9-8Vm&0| znX9J2&*$wvZK8fnRU6*>C$`lS<7o)qULiPgwuV~GPGS&#lPq^6)2+JkB#3()gd4r& zN6{?fZ8fPP+zTTBR{NX2QGyv9yb#S%q?tLRJcs1+sZH|(EE8pNdN>Dzo%ce5hEooq zE~MIF@swBLd6w~xmvzI{lo&sR?t+t7=IhVfYXWbLg`I^oN1X^{H~^WZ`Z0Eg zM!q}(%*T*+vcQ&{^MLPg+EY6(P5)>-s!x)B-W?6hqFo&H{h$C$B(tdBYjC9+no(OE ztIXriPT%1U-Qsaw{wC~mKQ_X{AI&BAq|*~y2%|ITX*y9qqaMdkO+t7XJMcr>J$YfJ_@Y*e6lR!pl?!OzhB#Q+09>7i}z87IfMD5*spiJla`l&-=*^Q z*n;>xc3sQp2(S6Lc!1KM0J4Pu&P_LbMN%LODNHT(<5~O6?`;2RM~FXy0R;-@PykQa zNZSQq(6o5J>t_(oS5_~j_vBkF@0j8AU^UgAgYVC*Q$Lc045@0R%uN*p zR;yqdbQ8NE?96@XVs^elxJXb6R)>a5OCdf*0Gg6SS!cZSS#4I7&s4ZsHiP#2Ld7$kpys(a%~V}H-`$*LbD53_)b9m3 z%Z(050T;*G)L{JGh)d;|KX9&j7vCbOsa-@ZW}dao<+E4Y>YIxVSy5GmiNV8 zxQykan+y5>2#5RR&U!6?dPON0F*3*7X4t(#nB<-x|3U-6S$ti9ov}LZZTp>^4ot#bh65i^mpFAX>M{M?8wAeR=0%mPnTj-7{&P!u}SzWQRC@YQDCO0m|af>g} z1=W?*GEpTKp3^GNq57*eiWWGq2{q23bz*Wr4CuvqQeE*(M5|zzcUluTdsHa0eU=9R z=lBH)6r)NY+eER6p6iSr7-9G@25@Jy2wSq5ynytaEOj;^5Ladxz4npMZG3VJ!#G&~ zUv!;SP+W1d?e`4s?he7-HE0OI-Q6L$L$JYuTX2WqE(z{VkU;PN0fGd#!F4X@;Z)sw z&v)wowx4%(b+7g7)kD|s1wO!1MbuTkUv21ksjts^8nM)F+xNqU6yZP#o$B15FcpS0 zA{upZ(J*tND7n6+FXGzZRu{dHpy9Q!pHWk6nfA-v^33l+?0XvlN>D^F&*buZ@ymf$pqL`c ze5y#=!p_y)#Ygm+H*py@J-T=w)YIb(5V(xBgqLNKCM|d%52MHd_G2V<3ifXPV1Rdx~Rbf zphY?_R{Jq}+eyac{_Ht#RsvCtzy?^h>#tcY3AsMjv=g`;OILyG-2w!n5LmZVC1mh4BDKNC1s7> zxTHu{GMohi!!h0OusHJVTIHc9S%|AZ(i7DQe3A29%5!iG$#XQ;{0T2ni%yTR5Oa5Rxy z+0A@zLOv4f&WFxL+=NwB|5XkArf6V7#o*q7s}}ah8OSsz?=KYr;(b>(p&RLXHLYoS=L)jCRvMydR=w?!L1v z${vQI#AFrut~6H}wFtEB7R9F_A3D5F`IO~pY)(%FBEMKw$e zX9Y}7m_}j}31P&XdqU_3Vb87DyGw-XA(`9dO{FP0p^sm3JN)XtEx&*V!Cy*Yk+&hIc zshs^ET+%F^>4Da$jvueyPG9^*y4y(1)TDSWW*NcEZ#yS#q{W2%Z*?-cZ->k|2+9dHy1=cK z{9FhHsHs>@cPu}QPHLAU^-Vb(rVVdQ+8!4FRw(S?L;P7HBJmFdfkYuM3mv>-!b;sP zJ-F0-@38>hEg*b=feGA%Hu4)0ZOn)T$Zc4>4(aT!EYqr^8EZgEB{}<}&U#x@n@UFd z2fCl^d_S`80BBlJf-fUc_E_7udc`pn)pewNee{&nYLt}xzPBN&pl;^k+j0ZE8$8y5 zv}%W$g+umL?jK6$XnTWAzd6?VY$G4^SX^%+lS7*J($K=7pH>^d_fEvcy+PaB_wD?F zTO^ktY}rEPVDNbX-rNQGb!8JOV&AbIyUiY{-cxJT?-uE1ZiD$gnAKykITi#ab#Wzu zmh=s-J1mIzOJ}YL*+nwH-%D37jiQ0<=*ae(dok`g#$dD~#PsD4t6+D#Sz}dsKVfF{5BE#SXXNqJJnAvi3%e7!u1^z3mjNORDd6 zC%t4yGq($@`pZv)&#%H&w@nF%rHz+n)#*D!=T8>?lfKjqpWY0H0EqX#KVYgEK|!w< zuhCsBzO$63U9qbH`>CQRTJ0x?fBZfrz=xb?E6oYRJH&O)%t>pV3?K}LUn|$cwpQ`J z}*~5(7Z}p5d4C=W zX%Zmzh?+?XVt#R(G#azP0Cc4k+SI*K;^7Rx0$|M_c)`!Mg(q`$1LU^f)`8K0QnQ*eoaAEkUUHo5I4gR@I|v{jE0mRq87(nq@bBTSz(B zA6@BiXn!cU#AzN!Cb7lk`sasm?2!s0(xUu-nD`_WsZDY9)=_~j`MCkl*ZYz?T)oc8 z!-B^oxEJ)SlaxNSRat-80_|FGnLJifE$DZ>-sRv}B@4;Hb577e15%)HIV1pot=Jw) zNC}(HSzHK=AxB#Y*|Cz%o#qnx*D5pDXk~SvFcHz{J0M1w^})v>Me(A8mk{3N7sL6` z25Lv99E<;sks#RVs{(wzS9U63+hm4ZC@#5TtUS2Y6tM%h`l)mz1ZZz7cdmdkC-q*9 zG{hmsSww~wI*pa#!*7Tg#Hxnn9{5NLe@s2)hF77Vx693?vh|-HK9s3;3|s3cd#A4a zXVHM;Y(=B=G;n=Fsq2sMG!ODMQ>th|@I@7Q2Tu*yc4d>@j4xuR?7>09i6rfpIy}N? zJN#@6JxE2C4!fw&h(+f$=@{m9wvqaGp-JV-WF~?kK}hJ}>V3r(`bH?v zw!(B~M6fqR!XrA305(!YLN(XeF_bu|muHV8fB6kD7ltK3o_vV1QZQMYovu7i(Y1tu z*sB*%uQ0ZwB^81}+$&<84)|Zz8fNcC*2jksI{fR=*79z+qx$S453A4z>rKo*P!Mmo zAO4uUUa+-8`JazX0)@>50eHx%TarOukrUTpfwN0aJK&E~yZk(&z>FkRsd@Tl6WB%b z>nW#Sp!rVnexLvuAB5gV3?w@Dp*xr{SOZe!Acmx@nnvg085F~NTo zhaw{-wHZtyJ~5=zL3W!&@koSnUXRbb*@Sfy<+4wIo_!kzjU0b_CCIFTiz^50nV21` z0dL61{_0lvz|)xZrR4{5t~v@diXJQ27j}&{)nJtgx*19WR$)z(I~f;T-LpLL9^gIh zM5g`bRQE4%Up#b?rOl1du)e31Xcdpr_=e5wwR;4HiTQ2jqE|mMJ`<2Df4`%8&ql{; zR47f1M~TQ@FlF|kp!-F=YH#6wvs zctLcJ10+piUFf(^cJs#Cy<6}+V&i~W)j{({mza#1sZAn7?SlqF`aKp{--frXr%|>K zgGyr&HWwjXI@$hH>UUSur-y#w)4$z1{~CU*jC?$xAWl7_JpHoK?GYjUdwK7>xHDVp z1RPn_5Zo&z&4f}xOzrf`U6n)axrXU-++Xl|++P5*?-NysyVSExpAJcm3MBI4K;>jm zI1Zuj9Sd3~J&W?c!g&$7opo(G_liOKQGa9ThTNg`m;)&NhsoIK`gYcFdbUPvz*C5} zg;YQMhqMl4>n1%gjAm_fv||Lgd)!szG)?2BpwzadEFSo}_BU;TU~qO5ID@@2)}}{& zU_^W(L)U3ccLr|+lnN<0kkC`hqkV?ppy6klfU{IrAl z;FrpK%6${Rj5C7^MWgP8uJ!ft3r_Jd$tUkoMfa#x(p)hMz&h0geG+ef6qd=!Zdr;h z&>!41A}rkCv=_gWh%NN6O8pv6AI|5G6aD!Zp|g6WM0^cD90FN@%O`$2d+rN-w~|sL z(l^^ZNx|(Td0ns98gQ_8eM243&!Mlbyiz+kuCW-|i1Lv<4BE5!R>PL6Oh_#)SJ5Ck zd|K;UT>omZ@z?yhsDUmV1qiN}5=@>mBtD*?Q1_dH&x7VXPJ+C6@l!wXb;*>4#%CrE zl4_Ee*~n)2@BiV|DVq7Q05btSZF4J$IaCk^(-CBr%V9P|&vRa5p0W7qqgjgi$32=5 zRNc6Zz%sUd>9fdzkyvqFI6vCFD1yZa)QhYG=|IOt+`?KG0ze1*+iDF1B(yIt^y3*k zzCafJ5o$L0=wJunWzuEVRY|VVzdMv@&pQ<;p5$M*M3l~8*_H*rjIS% z`ixiGel8>qEeD@BK1o`IgHrG&Xdp5(jWf*QpUL8Je(N2j_4eF;)eK@}kr?J;33FKHWYmyUVI0X1S^;u^hbXdxj@+F*K&3L*6%x5r6X{ z9~;D3lknpiwss&sgYgR*td}p2Qte@74;L)zQP%8H`G+yM;i%!bj!bPGwZ^yz4-|y( z)ae48o6_Fks*UPZ;k#1CBcd61vyI!rESRw`!nR?0lhEKRZ2a1wV>u+|bBREKV={yG z%lpbC`_nNuTH`bj+;aX1n&gza&NmG}k3HS~cF(bD&`k%-31GfnIw%7d{^1V0iHWhD zh1Y1G;oedIZuLq{TRkNMcWd(WA2?gMIm6&&lEJJlr5t^2r^Wr^-%X377}fr|OEx0b z^MBlG`hbYvRrX!6McX9ZU=%quzrE$Dz$CiiD;zYc2$pjW_?2f?2RlE=e^UJdUs1T$ zT&D8V_(Wkv;sj}g=QS;LS<^etkih?=0N&+yrE5%f(0_O#S@aFZ_&~rY?VV}|l>}RQ zcL)T%Z>!72*9hc$1#C|IR{DY9(1XERWg{X>l~W8qZj@!8_S8UHR$A&X&zX=VArLr(D8OD zzsK~Cue+igQ)!q7Bp8tG;CCZ^*X~_`M$CxIK9h*PH45|sy~i~t$$9)T7I4=@wO`S) zETjUIE!^sGQc9(dOItyA_3xM9?u_~RB&?7T-uL+v_Q4wNKAVo(N<3hNcvRw#@woZ^ z!p-LoV#OeUlm$9mJB~f!4Urm-uU3?r$(>K(af%i3{Tny45AM8xcGp`0YEbsC?acKND5?GU*v}I!RbV6STY) zB&A{SG`c$+gb|^<1x9}8kKfyQNoS4HmON~!6y6>}P~aA!+VWC}(c7QAZ;e`+v79CPBb$`8|w&h8WI4<=4jT}!I`nf)j(UXKwaFV#`h z78)(}Nm0QF*gB|`R0&MTyqCa0ZqlV4I~`jtB!7#P-It{Qv}rHLJTLIITAirWaT7Cc z>CQD*&A<&99c{oxI^6v{&{SIY?jyJ0UnmLQ9UxpT)KM ze=0rJ?4Y>~YIa7HB#v;MaL-*^vmS9h^KSPoTsv7C%$I5asV8`Q0_kj>HYdj+J!P4& zrq+MjC?y3*Ca3`WjfUh8p{90H%o-uZ8tQ4zcC_OwgyBZYUPLnHm-kMag1@VfUm)&& z@Rz{1ZoDH7;uPZ)>#@)0K_{GqOln&@|IQy20vr)WLoiGzwduV{!qZNCuslCdvAGH^ z3YVf&3P<~rN)ZU&q=`&IaoMIk^40`W0*(_1UQusSYt3#&XH#v=h%j02Z4b+C!^Qay z0GSpOB*ysgK9n0yUv^Pyk#PjdW9~v(|b`ooWj| zy3~u5@ai6-TrfGwE(L`mix3M)>zEqbCbwb#p9@QlFXbveXiT+qbT%uMP&^yG6J5=9}E(nx2xb zk6%%4XJ7x4JL(*zZUw#_f-p;Z;v)CzwJA3*v}}s|r}obW#Kg*`SYs(MtQzueI-X_} z->T}2bQaR9GjY1Sgj%*N*#qA{MEwu9=fC_P$s1ffZ%P0@x68GYGMr4}Po3Nd$jT;K zhq(X3yw4kNt;=gX5gz$4b8^%5eZf0gU?ECON&ae?7(jO9@z*~8cZiz<{g>&U{gQ=- z0z^|IB$83f_95nb?+9ZiNzgw;^u!FrJ&rz3PeeK!)~E8eS4fLtEpCTUR9h3HM$r-Z z@7~YBX@vCU80xl_5PMVyMQusVEM02s^nq@_jijAGJ2ot=uoGcHz!Z*Ig*6YR<~HCer*v^!0G)EU`V^>ysWV}JZ>V$re)daBpulPG!Q zCNAILz0~k0vrd zj1>HW(AO(_@th<1oRSzSMERpxb(rv=j4ck7q?gRrGdkiqscEL^kv5-3N6oh*mXZNJ z#Vqx$_?|G{X>c>n;zM_dc$J3f| zZ57-eY!OkgL#Yc@5G0W=2#Fp1kT>74*oF2H5&%n|q4yxbMEn9FEkOz4Sald38lCqSI z8xzX@E)31*aWLs)e+fC$nIxDZ5NP)|ZWr_Z?nCP0cYJ*RtUbJyNI|_DSSthVXMa}n z1-4{e*9YDh2+)bckGp&Z7nbr-3rcZccsM-nL^2+g`meE+fBIt~_<7gUg*g?m@HToT zHnLv>W2*_#wN}d6=@{W$0{)zz_RP>nAJiZ<1F(D2?yDM56<5BisnbS2H>~!3dBtY@ zUbZ*yrI#FUc86C&&1OQpFRtE(+4wbZOLEJpd*8~nl&(x7UV!*)>i_Zl677%bnj&Pi z;1KG2OuT2HGWZ;=;GvYRR}7VFHAjvv*o>$I@QH})=zg_O}jO4bFcNl5L zuyBD`{BUTMmM0IVrDigbQwxD{pFzIs@5B8khu;AFExoTv6Ttpbn8sB*){X$;v&GN^ zwAQ*?f)=G0iL5w52HnirktBBF6+?~J->C3?_682Ty6hRwiS z8ZL0V6x`!#bhxr2#K^OU`t_W#vSn&eck=+2f*29`w z>9?X-IP+VAv)AE(fgw&;`XPfCI{EFB-1(H<=K69FWtYHaMt#>O?H8z%LrDv~I8K+@ z_?rPp!a|hXrlfHhBD;3h)FqbG8~0FMfa{@qwSFvbs#q;M*{2|lSq&V4&L>&r%8yBn zzuBzeoH!0^Ys3RB4YujhxwkX2L>2+W#6D&L;nW2cTFc$;K@H^TFBCxHR8yrpat!0z zQp4R|OG9)YPnbvsWHp!{{|oT)M^GAsj^=!9s?-;(}QA9us{XW zcqOA{)VLS?{A%}J^`3Ztz$xyVWJQwWBj!1|M{pIstm%w@F&g>UhW~Ti)5@P5jXZ&~ zz@7OXAH~>XM2e-O^15-@^Mwg~3Py+m=(`E>(8Mupn9>gXXTS~@>2I5hO zI`Efbv-*tW+r$(yOMvw3rvLW`F$35n4|7K_Bid0Us3GC$bfNE)WwKyP z<(3Qve?`mL>I-IOdokq3N{jA>*OG`Oyo)@>*;x|3!v#NM%JV_uSvYQR&f>)watOwG z3s{^eOI>y3CJ}teg>%~&-GVDc(X<)$4w0y*AiuOe@6x%&(9vrv%VV1e;5CXhu|@H5 zXqPrTak^34d9l5h@A%mCqQ&2mel?y@g{I*^rPG~q`ovb9lre`-k+i2AommJ-lB09) zL;5rkrrbRC(zT&?FCJ}YZ9Tc4-a}pLB<$k`gtRQ9S}g~SP8&EnOZ}SEt~meS-tz- z@BHF%^u+;Vq=cNIhqHb~4wLZKDe^(?WjYUUb^J~gA~c9+vY*Fx&4m&3Vb@;I(EdMO zO{h}hM-xtJ`0s`=4-;)wZYGK*=(qvoEd`oJ{fUtG#aB8No(MbBXFV}MJDr*mE%JG2 z*luOjPr__&0oOSTw(vr~XzVAX-sXZ^cj*{&3$0l-j<%(H1Su8a8p8ZNst6f-bFP&k zohFQs8pYv%E1(IO0v}yTOL!G$O#QF(HebXb)Y1v;7O9zM$rsc+)68Ms$K-q~G#EA+$F0HQ%y!DYTvM+*=9%pH-`< z3)byK+O;w)&+V9J&k#i_>9$q-)W|>zZ+uI9|xkl8lKHzK9a<*0Se9@OLsQ|V1F-K%QDG+ z80(_%%P^-)1#pz0+(}tUitboAYAF3*g@hWDXPFBmXS&Fmqj)#l%K5ADunY~Jk-#=H zEklqM`zh&OfO5e33h5zy2k@B~MWm7h$l*jGa$4*g0)ZgMQO|=Gn(!9@Zjn zQ_{Y5yj8ElXYY`1nNJ)KJ9@Ad1iy4R;!!)aknCQFtyjWl$s{>3?W^|%Bll-oTGD#; zR~c7gu}_-3VjRWBudox4%{pWN-rO*X5J@?VB)^Yke$~&r6N9Zd*Fu`o=8b$xg50IjTlTf9zI$+o4ZR)c=0g0AS~>(=!`@#vSkcM)*Ph;hGj z@#Fbo`;a$?<8sKy>-oEbANrDNF5Yy`Su}>Wwfk+n1KLXMt8F2v{FREZ>toopuRy&4 zId!Mb0>Srh=`w#~zQ}_f_6ZOkl+GwZrKH5*l>k$?7`*k+%Hs*>FtSPhUxkTr{iJTt;?zIPi{2Tl$5Xh#6(IoYER*` zG-JeCO4}xSN-6zfJ}0W`&@~_KHX%tjhXWP()LQ&+&GM6&YT0J6E%1x*otl%c!JV9m zZmPuJKA`4>1P_kkE^b1taL8QB#dv?UenXd62Vsxw7o+Dzv*___zMNQppdiMR9D|Vd zTT0*Hs)GVi_oPe=xsw-_Rx!Ui!gQFkm}#42uCNEc>Sp4Eb9y{0>(DOsohf{n?e>|MOx6ze{AzM{OIP+!bI!`${EW4YV zt|KdIQly3{Ta=%r6aX!cm16GV<^LOuRWt#6`@;3O-$|>tT!!R)OGF^(d-zwmq&l8x zBJ_1dW_v2&%|HJq>ByCyhdatmLYwx$)sKGr3Chr)qOE3um=o=^%Ip{fva3tcwEp+! ze)qerrwVJ@_!}ESZu%x~S9I{bvMOI!$fUTRkW`iMq* z(6k75Y;OO~p?<`S=$lGn1jS21`XVo|dln_o4RRYiG5t#r3!nU*4bWI>JCyV%lOEZy zwAZkHeq^E?=}r46WSyr^?pW`ERMPVX@QYeo;9=o3sYw;|H$wgxD~m8o0;?$a_u?X3hHim(}oP>OWB^(B%V>`(M!v zlYv(}V@bT2-)gn3z3o4LnRAA_lNj{JAV7zI(CzrNv!{Ck+LJgKn=vJc$ue0TIE^+t z{xL>o5sItKrX5kMgp(e$x`HSi0L2Z6woyTUIvR|Rft|Yxsu{|7Kr))I4uIQ>_F_tGqj&-DItJFnoLTf>Vz!B~Y?KG5Scc zJ1m^=*-L=M1gun#J3lb~C#?E0ucON$?kjP7U)H^wGK^m?L zr>ViF?tVH^HA;^>)#p9U@*xL;O{yzagpUw%Sf-)JqtmJZftI zg<}Dx1Dog^9LC-5zIf{?{)^#(&_^#-(bMf>W%sskO3Y%s)<4vTJ&YP=3_$0-jkD4I z5KdDz9UIT1@jUFgq%O~tc&NYx~V(2G2WYNd6GV5(DS*gO=@Fte7K0MOv+>D zPf{<#8M065KN$S@R^iiIu=#J|QZ@#Cw#5z}q08nM^#d@G8>7JM8L!0|>P3MP;x`q- zp*|>Jbg3FATmr%4PaP2{)tORx6kPePtL&&dY;ZIBe_IsU(POrz!*=fEZIvetkRYGOaY#)qhJu4Kb{vRCUms^+ zMI?qDOlrZhXnBSkf{h*vMm(SrR5+`U|MXtTy>W?_=+mTo%PMWg!|bRkR9g7)c@MMt zq@}hNdU3nK?h`^=kvSVESesEV(O92Z#aGKwPgI%qoD)T-eq4#}@!NSun@EI!$e;n3 z-INYDdqZ@%W~ZD#wG|$loUPFL1|qieJNpOU>%9uU9O z+Re61M>L&}j=WuPsM+&7lsK$y<5LMb=Z_gN!|O4JBdPf6zN~Ed;XRRYVfmN1H^xb> zu9DzwBDFw+*WfrLRLIH*u@3s!4ZH=J>BEwVG3)_m+Z8cU-`C7mv>by^@G>W}2##X&N%V zI}^cie;&A+o(raq3KHEAW+Li9oF^amOZBjuo@u)ZtIs>b^iaNfSI^?cQhE?mg==5Q zKB~iTBzeCwZhJyYg5=>8tlcgu4>}h-qe%KU9wBJ*@Gl?N@2{2(+wosptRE5qCkG`W zs!orjkmp+$=(v+ZK;bfG-yO~69RLrq{-ouUb{bVvox>3ZVnW0;Z5dxj^Y)|k>J~{N zJzVp6`s&(gZ}~0Y_1+r`X(GhmyH-&HNEIG{s#3kFb@+?Bp&4{$sLg{(Cs$@dES=lA zLU*J?INh;?An~N&uJ&hq zp2YSw-u-1B*TJWq_WCIX+fIfsjg4jxj786gU{lq=*UK6%m4ULROtqK9Ykci)ID>&% zv);L$T(?;bCdA!PyDws1QlDJfeZG)SMN%5-srvWfw&nb=MG7X8&`(^U7#J%bjnv-YA7 z#bwMq!7rAPz|$)eR*rFkY({>8V{#WUq{MD@eX)*-rk_uc!y2dew0t4}|G*FT6gfJn zL}DdW_AftrI2Tv@^CceEH=}A{+R+Y$oqAI}RwpawqY zc^=YWTkx;2rgrETu^C?_1t*gkUjmA_%$MTj_3)bWF3hVB z`1wo*ATDO^pyGvFks*)}YJ+Xr&>n=!f!JUMDy)c|IStB#(uLsY(dW0##@5P(%-Ggn zPiX705Xq1Z68m1dC$4N=)9lMD{>@nu{E?TV!@|1n7{|4>M6}KLmKm9xh_;&oKlPhD zJb&-)ILiIXbOH;uhrrTLPY(Ogd@)xO0qOp4daq=Mg#W?R1awa3Rp!PgDd8|28-ij= z|L!}HD0s_et&+1A;=lFcRO`O<&!&bq<|s?yJV&8;uYsa_xjX5rK~fVUa7YF0j)ZvR zK^gwdd8mEWILJyIvb8XZ9uel@c1tMn858hLo$IvO%YNu0OQTQk#om}O=g-YtT>QNA zZ{cOg7!CStOVS5pH4cL^7Qm8Gk8`S|zyAx~^G@tKD|7q(D>u(VOk14yq}o%qQ186* zgmZ)c&0fb8bV$AY=^UciA$RvPH5W6tgZAuxNO$Ltk4swb!?KKquKt&R0Wj>VEx5a| z0@<1rk>AQg8`;o&!_cP|Ix%6(IQo~8i7!?jj%>R?O-Yemx=S}q69o% z&-tPt4x_Y1pd6N1dL{H73c&~YedPPtY+}$dPjBIrCt6lQ;9}bcW!;)7%Hx#?zM8=paXez4O4C!?N zhBFjfaxyV=yC8k^h~-)11ReZ_PXVF>L-^pB1rnr{2z*ug#pD$ij>d)OgKcu>!wo&R zp1PJK#9u0sxT0|u$8MmjG!s1Bt6V;F?pZ107T_0V<4-KW-ECq4%1XVd1! z<^7;pFK(1UVoo~zA-z5$3%F?sxTo2N0!f{%P*Bt$>&iOk;&Gu{m1 z{bt5`-8*nuZGPWUJ1!An(Q=(TUeX=#GK327aq zIcLd9m63s&uelDK1#ga2MiL#j;=QNt6l_KIyV*Y2<;A?8IkCJbK)CO+R&D~Dadt6^ zKP4EVYGi0d^!U+az1S*h2H`7Jj;pk~3^^oipQJ3p#Ln``Y;D7nIL_`*O}$Y8j+Tm| zn}N_=GMr9FLbIIyr3%fLH|NLE-uEPIiqa+MG-{)%b(XGTHK_uwyCK6yZ&V498Wr|? z`EG2@q#1&~)WMAzJ5D6~g7x~Ir&>+FOdtnb`k!@V&DaLvvh__}QzfZQ7hCXChRXWa z@f~V?26o?VHDH93z)4!k%BvY*bKRAdxxxE|9|KQ$B(70ti!XWGgunF;QrwheoZI+x zMEdE_&j2DZ6fl4Uhw%NbJWb3+2CFiNfvNoqWQ9${uK#uG{g+F46DZJuuVV;P+`YIG z-&5jzfQyHVH^IY@FZ!0SiX2hyaGwl#i8Q+i23@WpJBu={$HeVP6zd7=aG5R_y^E79 zGXFNj1{2QzGNLsSH(SuxI6exL)Bn^Z!Tb3)s!hl$!-d?0rrcj~zB?n^dZaCRn)+`ocLQ&PWl+OLoE`}Sz=HUR zTN#*pavsW#vgF>v(`=wXt2P&-{tl*YOtJfu!|e9D{<(gH#azv43gP~!kyx(e$A0@N zS}{=}VZXyZMHVpli0B`GZWA?JwUJ zrE8BcS5b-K$4iXIuW)W^lpDc1l)>9IG0{93FZyE+cTZLYu8*TsX9QbsS+w~JwC$jZyB|dHY&ZEwvBHEPf4{6D~lVBNPAK?Ji=6+M(YfA zW2ZAzig_&@3nX5i=%DZw>n|5r!BQ+zFyp8p>PC4~$hVsTR-nu`_f;X)pm~?lGPzAu zM^CXj|1Pez;o$nxyDLXUeAmUUGNpqS<*?fkANUS$@s*4uOt(sP*JcXEzR6==9>xDI z-x*=Ey{v~e=tJ;7J#fau`&~^{N-gJe)ao4H_a**XL+kO3z*{3p?C58bVEdm8=Ozg` z4Ljdr!#<|6hZt)B%%s$w8mUpsVnFP2>G4TLz;!!aO!g7yx{v=l;VI%Osw*i!xIrYM zC2kK0xBA0PS?s$^Tn0}yP;@@@v;`iUX0|o#){S-uOjFgTUXoJTUwR{ql62X?r5+*@(S9*{^n^X7(5P<5vHy~}HM zVxNV+GDEw@c}bnD^X=D5Kh}uu!Uti*&0eg6Jw{0ICru?1!*+Ht&h{eVOh)YGsaJxv zT9diiw|ClBskFLcI?>Gh9Q@%zNVOxpe}vd}+Z3xN)s|DMAG#4@`!sa<=3sJ%s*BSX zZuM__LwYXk9N2u$tzs|f*?ManL*47MM3v!XooB&|aFH9sjFRHP@z3;1@*o5W@P(y~ zzbUGFFM8Tc2wx~pQ`V??UiV2*C1jT<%~^yQrAB6ET1mdv)KxQ_E7QVI=|1~FB#=DD zn>dslZnKxlXy^ME3CxdC0qSb_#a$$J*D&!Wxt^yT(0ysAz(nNfDoa{yUq`-)=5Y20 zPH4HQzlsPFs)LjMhx=nt_p}6T2cxL@)^v53R>L^pc1!@C{AFD30h_Up0e1ebJ@@cK`WYJ1 z^tenfjQ)PB;JGOVhpX1jZ{3Y^3wV0gE$A^BC)-SBbmH!=L`xGG{F;xi;fJaM!)y{hi@J}@P^!*L$t?@kwF3IyVSzk+Jv59;X z48&vE2cfr+s6y8PaLB zT^mt{GLy=yfRD|`wD2{mbih9u-!A!=j73xTw@rSIGE^=#bB1T3QTDJI_t#sqALpGS zX{lenGnFmkn;P5wk&oTj%^zb_-9{PTvUK^w-23T_(AR+A%wrINw9P`Pg#Z4s9;P%L zZCLR@Fvt5>dJhutAXi_#*@L$55|BQ)Od0(6Cu8?$nkp@^*RoZtp_|~+%~3nM&S>_| zQ}W&eVZNm6g+-i%I5+*}ibwA-`sk$~n#;uWpp^7i=Qk z@0e5wGfJ|6#Istlb@x8FdFX-RbzhdwNa-Q&9He{2#A z(9zrcbP!X7_;d2(<<|f@-RAxtgRhH()L(SDbdYQXvqY{bh_ z3qJ56djZjfAii(@HYqbFz-I7|d86Vhl@#_z!#vbO2TmDRQ!-`&I|@}v5W-M1tFW{5 zOH-ITyx?o=F?LM_^-*Ag2w|%^vDs`EK%2}H8dgsfUQ_OD5(I}@$8;@z1`Uy@jc?$e zy)W6=Iu-Q)1N~7@o1xxIFpcslc{0~`Eea_H&QpTl+Pe}6M1VsmAAqIpN_3&sltILn zecuVB`c!xjsrGGDHbL6e+o&wvLKTi4%s)glGC7jr0Bv|z@|kkjE+7E9mFw!47ckKRXA|a^Fi2b9v0{Gx+sXaH9R_4Qf-32??TCH{lH||FX4o zMxN5@cr{)S*sFkPl6_^d`*6(J`_yIxdV68|^bn?p#+kc@LMZXHR&=BtjKC)up#?P1 zqKoAbBWLnSqScbOb0mdxmSY2%fds0otTIu?Sz-d)qlAZ-Vxg)&n92jk0@eDj{%V)n zuq~TylMRWgaW11;&J+Sge{hf4MM~Hk)+3#@y{-k_1&$YhXL!-Si@o>$&|WwI1cGlw zE~dXRvsEnhACzGGzlbq14oiHNFrNnoubq4V<+{E($xqE` zr24^p2y1^@{s*AIVNlb2B{e$eEkfDM;pLjv#k{XA4m>ykL|R>&#p>RQeX;vJR_`L0 z`!wOk?wR2DNeOz+!0Vz9!OUsB06=Jd(iy#4LHpB#m>XX?*d%XUs}OI{jJjkVGqFcWRNSDf*s-=6u{vP+&t6J( zyG-ocP;nK&f4i)7_bUa%q6zk!vJ=o+1OZm`X6ktwZ#X{baRY)gdfjj|n<4+u;LBo$ zM~+UD5~#0m&!_<4I)!T(tV*#yjnNs-VVayQP=8zY5}@Vs$G-5meB}P^^1t4>8}kql zjv`8S%%jDWe)#$+`TOs`T97KmXViiejzUSD#rRtt6PBihs>ec<8>fO-%m2kx?_AXNnZs>L5kSu=&X-mgxD{ivPT_tD7Ks8NQC8bm`sGUi|7%JzudNfW zE0*ugRblzo|Ll>^{RV!0dy{f2=eLMS(qa~Idn;0J>8*z$obTOFUsssg2sG#re!AgsTb%> zT|A$Hm+7?>sRS8W40F;6FJ3XDV7%4S%Sx zsH=8ML%CC&R#4sWBK2^Y+B&u?DizjI*<5}_c2r(Q88A3lbe#WF+7(4-A;@nu+zp(6 ziZwC3oeZWXj9m-XRY5WPuZgjO9yvNCN}#gDp~g9uCMr#QB%YG=odyhXgB2bijaIP% zxJeb(KZ;fYU;o)rA*cOkf8(uERz!h!?ddeN1(4*^hb|~XlL8c7&?5Oh{4ekp`Ns3d z3R(|ccwr^*gV#<1{NKBzV;N+UFj*nK1P_>>axVC_`((q4;#Hp;&e;LaUu)cP;( zWpSpf`zm?4D1}IO6q~)_%f)%S{f?jVk*ez)BwO+RutZo>y@)u`zNHk zi-`V*)xuC;+KDeyj8NV??2#^Lx%oK;7r%@i0GL}9)d?2ORb{Y%(#UgerJSTCqzJ{1n7P&j#c6)yH%_u+r?S=4zaj4ArItq zorioe-Q}?{5eB`_c<;mD`rj|Xv9kdGuc|Q@1OF%5zlc8g95sO^&xyd3P8WjdB0#R$ zJoB=`3XtB4pujonJq!tljh+Sg!hx2MYykRwA*1}u8?Ey9udEY)n2O7p!T9IkGs z1st*EQeQz3m)>RZqm!Qu_DhPNDl7OxTVIpyl~wvwyr_>wa@-o#Z$?M5hY%@0NILu8+*E+>`s7&kVdG~grT_la zviQ;qCT6Guol}CZOg&To&RzmXF7_y^lM#URW8fSo_^&KTv(F;=O!O@&or2&n4*-GS zrvf%p05!=M>R)q_0P$BU0UWgU#b$%qEiDxDmDslH?QQO7}VW_Af?q0 zNEm$91SaR7kOzUW+(DePu2O9H$LO&{Nr2zM%I2jNQyyUUblOa{CZfXa$qMLJDN zz(m)SOapK7bR|m$E2LE-l>v&Adxm=|;ZproOCY5L7{v59|M_w08BQOIBISj7+PM(c zlj*7+e?Bqb?VtSDv&$~vHWfm@@|hnA>2P#fo)S2AsarnqnIFpQP=M)_ECDLpzwr1Q z@<;#i43zK5Kxguq3;S!D0syh5iXo9VpWuHU?Enkb%*{eW&G5 zKK}^TYWZK7-Mw?|WWo40)v7${-~#>F-J0ypzYlQ$3YomPPtRTLNvJ|p3he=~ug!kl zOM(?^swtDzO~vI|#5cGlop^(Ci&4ao|DT{3Eljh!aS1%B7qBHQrG;tSHF#ir`;`+h zB@DoNg8u~Tv+RnLm89~3{Syqq(*r@B_^JB5fZ%J&iY}3zTymHI_{S-LxG2fzB*MNV zZI{O%lK=gkSEO?=4==E|$Bpi7616mA>@03C00m%je#15n(0_bv6!JrWN$~x1-YW#~ zpE&dtzy0-ftE%nw!zN3uxaxjh990j9tz;Lt{2EMrVy^M3X3+}(VV-eX|DtSWzA8<_ z6XO5Mdr6Jd^d+ga3*;TA0OIFt)~o4r)<>4R1g`au%I|#X$)W(Y3dyt0d$E7SBme6w zKb3Ks=`Ex5*uJy!+h2S_2H`2K)AE$SWBbmi_#k9M&?&tHUIhIty#YEfZx%yRh6D)} zDFzRKJJ)&T3%}Y2JRqTBOYCb?1>yq06JS+!^0VTR7mv!PzV=MsTgx~AiRtz8HmnH~ z_bmMPsS1EM3LFRE1OfoZX_6?7ma34H*t2-w%cJO~dTQKz)A~G?Hn*(viQUbuMmfHU zLx5JqUM%#+p(Wxct*bH(4Zicoz%qjjdWuI2oMZ7USauhChUK50I4HD4@`JJ`SBcof zxS{~^OYf);6hMA>0#Lz|s}giRi4rgX4YR`{w#;r(n;X2?srbGVubKCEbY>Ku9rPIa zTLfy01$&-%uE`m|I^9&dOAM6{!NVa(gJ(g!046Q@BlLcOV$B2Ke{2-o@(5_aAir^C zXAFQ!ZuUa|iqQa}R9Fd<_Qq(kiOF0puG;sBv*sOQb8Zr=a|0+;%!?2Br&&8_QX=6Y z1oiEbvCi+vD6IY?zIKTO2GAyqD`iEU22oz<&X{F+3}zb(@N11({e$v{L4IR%?db_Tp*4_7FPMH9cV^Fr9(D0 zmrIo!3vJFlQ<|n=ZU#Tc0b2dPfA#C)H2WnKCH%hx6UTM%0vZP8Xi~!Os28yT8nHJ5 z4-3f3*DXeCUD8?0{YMv+*4fUz9BV-sGSKpnG(aOBKh~@vZG^Ji2T_jNPl}7b{KoT` zx(Yi}O|@ptQS-9O#)tQX-~acgVN6mylt@`se4Z!$+fNV4Uw`|>W#{oQPq8hj%m3pU zj)9kyf_X_bEKiNO)H5U>0aezSYlSyzm^x>M3v6h@AgllUp`}IplWrK*fpee1fv0)` z{3`+jfAh&V(p{F5{oB_y38{eMX~<)eW9`Y*GVx;z^~qq*7SrS!;wo^xuKtmQDt=ly z$Ii7U?b})u{Qt>RP4`Uk$&IUj<0N}XTzq}TTxgHR0 z-NW+d-*`z5Axif(OcHc!&sE|SPV8D}8Q?5$V`A`BzSTNFh%VjgG z&4GwN3<{jL#EvAT1g*dUa36uD_X|Hgl9%EPj#h~}Hc7-t&=4)1ce7Y|j`jSEM%Is8 z2!K%tR{lQF`zYWa-;2^}l%NBFe*lRFTREtH>Hz%zvbgGh5y5?15$ty*Bt<}(3c~!z z3>oJ*u@h+i0`Iaw50oyQ;_Z7<#=9SuNU$5*Fj|5!pp*kSE_%VTLyzH}x8h#6*oEcfXNFx$j2ZvpL(gS0;hms4>!;y25e4>Zc>_q9mpm_rNz>Jv^$SrkVa z0WnhjY;LKPl{F=>>^BP@BdHViuXOdwo%JVWZD}V0|9aphP+*gs)HTh~UU2*?kU!b& zSIuokH>T!Jl*8Bx2v%#amMG#}=oFIx6-d{H#%4u%MS~T_sTzirE)@XuASg6otNU~5 zNZ{oYR|?MkPA}3zB?kLkZuB>we{7$8`Kbei61gt72qf^?NA}1UpU`7qwq4N&Z=v7( z!s9BK`fRVw<@v_M#V#@~B-3IuC~^MdqrJcY(k+s6+4ADZi-C9l>tnqz3`)kY{^sAF zko_kv=dF@7vbt;Mnxy=vT9+psT!0^BMc=kE*)Y10G(bnsUQ23qp%nn#2-MuxOG?~W zB2D(KTU+Bli{^95D*)7s6Xqx?0Z2K+&nUMn(F-n9_kp)wr@2Xhfc&Q)*(V)%2_C|C zFO)C@Cv%n9kL2v5)jt&r{ES&`E}sWeu4I`_K3s!vAwp{eZYDgO^7$^uUQ|7aKfGlF z!H9hSjkEIj;fvW+ch=_^?Tuor`v5Rq1P9JV!}361!#?NiqRJ)oYD%j@Ms`-v{%otdEcZ7a zmj>4m%AwL~Hm%51p<+7@Z=4|K+sOrOtcF-VMn*9gmE$Mq_ks|P?<}a)DvPZF1*^{~ zSPqiDF58jLxtr@3MQez)OpF33?Px4myL7>eTLNEvV!xd07${gH3aJ1XT4wY&|Mciy z`P$Ep7Obyz!G)Iq$H2E@vHrEsjoPA;HK8In17RB^VwrpWytGS{9FWZ^O3^rU-VOa)33|9moju_xQ}96 zp1Lv1N&_Il%I7mbIV5MhhO)e77N?m?5D#F37#%GDvYfDdo_U_goHL~b07xkUGM}CC z3;_Q@ScH1LUKP~WGdhmn$(s0#c`VQgYMe}f`eu8xSlsKyQTd=aYd-)>;gtXmU8o7H z=P8?fO%8czE8`dt_z(K7U^^%Nk^KPvAC3j~ji4_S^%KXcg^B1 zt_uN%{`~uUb7ik5m^bq(G-)3_9XU!4|;wxASmV@?Z2=!@&b5S1u0RKCjr^L~+L)sfRfam`o;%vqQTN!xRx3OIDSRa8YmpSKh#WVu{ zxjB-RndL*X6Id#NpGBvpRB%c9IXC$vz<2?`=n?D}1_>{NoCyOx+74bmTqO6cEtOrB zIbwIwIMctd#p$nyVet5$GO9pw5%|}{)f)N%uO!%7>GeOe@Q7SmvRlSv*GQ&0K84p_*g*k=zMkV(zJrsJ)IcOPu=7~8yolA5Mu@xNynES z*|PVzJoxmxJv$<}Ra}@OlS_MIYtbQT?IB-~IfAzfD5*JP9LfnwKe_yPwbX+yE7r2p z&-;Huu}iELqn-}3&44xLNV<<27R~lu!Qpezz#oI&06_GDlP5dqF)f=SvEL z(RNwNunHg&Rg4xH8^mm90v_GonwQ1Zx=-!LADpUx zdag>eEiN%m#ppgeJ6p0dZFme&rWiD^3^VoHyS6y#v8JbrHN%%`jQi~!sdBg>T~;0~ zlxO!0m&#@aCDz+v@9F7#Nne(eX_nyyp#3R=!4H;%-rgDn|I<=Br6{9OmW|vd3x*!T zniY6wgZAhA5GWe`R!VAblMOu2+~29K0ANf9NgpjKLH2WlRgWw8oRmhae)M?%vuOs> zJaG<}l{2;rjqP1{_d>HtNopYC8XzA&S4GEMk_|elD&GW7Fz~WXb$Kc*FR~080c4(AIj9u?C*ZDI;K6;tXJyD zY?~ssqUB=Ao(<3c+2HsGbqE1L1^&k>PZ7G0YP6~Fey)}F+BX3FZxws}yYT$qq;5be zpur%d`!Sga{Aa08Dz<^7$E=M}&Gho;w=Uc!@SkZ#f8lq`1dyNJ|NCmPHbBH2hbPN^MC%tp;DY@RfbLM@)1I=9V&oums~kwyL_l@t>mP^_y)=! zzf*m#8H1a`r-tt+ZR|ty zQg0?E-&EPZ^L@(qHQ&=5&v5&^YjeJ8N&bqG2CA@f_E~s}$6DfP1QYABNBe#!u*&`G z3ZP8(8qwBuyry5*+$P_A_$~GRh}S$Oa=zX>bVhz}ctGXkILpX3#5u~(Z>{qQ3QVKW zSMPsT+JTWoS{C`m0a$aeH>aFP-?jhr=8g4@17M5+z}Mj7ADp=V5=8!}f4$IfLpt4f zl)-^u44_%^{PMxnCR3V6)c}{AbGQ@4z;)o7dScyv`Q+u(#b!A#RCkUZ`rE-^cdHJZ zmXo#30ES&KngFo$Oo02lvX^7%TnSA13I??PV_N*~;w0Ja#l&xqvBCG^^X?bH1Z9A6 z0|?ZMt3!h!uuD-55Nyx@2YA%trKP}p_de1!F%7nThdQREcM7XIYMNT54Mu`y&=dqp z36uhqkKiJ!RRMAEZd7%p*9<_tbLv+=*2i}Tj1Zd-Rmv}3-7fbmpAF-Jf1By!!T@%s zm~3!x9VcB`7fD*IMKX6@fp~bLImR%#<_>tlh|{3WA$Z-oSd>Vc8hmw@TWZ*5LsF z?Unr~%Hu?_(C?p9f5B@nF0Mcw@p-Y@GO)@e4TBWz*)$?=836lR+cb|VQvJ{%zy%22 z<0jUQ8FWFXTP*VDEhA)4O}5n7(f+#l{HO<|&#Y^YQ8y@rOj0^5M~38PNV*BZZTskO z_~@19RLR(^Dw&X7DMjG^XYK}fu-`t^hki-L0Pt5aR|ceHfQF2kVOzp?_C?t2@qXze z#X-H>ficMct=KJ1t!=6=52mo}^Ep-}?GIP1rXc{gi!0u+FDXe4L_-7Q2ftPQy({1N*iwC0M84-u9Sx@_v%+1NU{zC^9H=zQ zq+yXaHUygC`3MC3=-O=0>6`Xcc(!A)!Ev#_(P1{IiHsEg0L_c$j5jhn{oZ@fqu89t z6ZmfcEloZ6!s!Lw4zG0X4@Ss;egF~Rk5xCxq0@Ep^N%h@K*IBTqU)`{DscYa^Uw8I zA<+i961%jtFgU5(<2eNHUwRa$n9TqfG*FI|FWm~{_pLY%cAS_fb5#eeY<7SU9wUHv z2G7H7difu(ZIxEEcX|^NsIS9wpp0R74oKBRaDm5oPI(PtHPC>9-yP6t2k8rN9(Anr zk8f(9UjKZiJf4cGUiw#X3V?qzfJUDKo676C%TbN;&}c(&eDJ(3*{@n{Rsf7J-T?R~@4u14+h-skFbxvic6a-pEO8%s zFSk|Nq2B1;Ks?0{>MaxZY~9NMTO8lon?L{D*<3ujd%X1e?hrGxLth z#l__+FAM;D-U>i|m|pPl@4K)%#<^QPH|p^LEs}`=flUnVeSQkxi9dL9m8{%Vq27-! z7<7XX_MIG`R$>LE9V_q(v3z)BL3YxUGZ-Z%&kafgY-?}tI4W1qDGTbla8CB`-@{2O zd2Npde);@*IdG~cAY#vvlR`bN5SU#co{XbK?Mh z40@Ljf@=InuUZ11{N^N$|ALV&09u@wHKDO>J$y#)e{r))Czvz_>$$CX;O~2No0KES zat#asq>1SukW65gAL4<*sT&9oK_GZ`0{KxN&KU5&H{m_hDgea|@8?zC+Xd&#J}6yL z{lF08z=u>nG-S1s>Id{pO{k|vQ2W%|UCJ;})zl`H>SLEP@bV{(0jZqM;8O{{eNGgs z@Zs`OJ_oF4t^%MjU?5@DrNBT#j&XiSIl_7+;HQi{A-awRqYa!E-mfCqBG7xr-?dmeaaA@gjrZ3t*=2e*H_qfG_&jaTrW zz*KiP0{fZ(8e2kca`NUU&2FwkfHc3xUm+YJ@u~^J*&;R%+n;D=yolwu| z3Xna#O{CIplHaT!C%@ZJCXP;&gW&%FCFW~~@BDOlQqLG$AX7)@gDQyN|G5{E*Pj$W zLo7}5iHR#@Rw3Fzw+T)IVL$Ze-Yk*!bUV;j=OD-4+U7O`eM6Bjm@yhTS64{(g^5(M zi0Adm)%#_|&ZBrQIz6lAg1L!mujp%Ol&3MC9=!|-+)Hx}CfVeGyc@ zVEk)fJ>t~;bIsoP&uB7-QPV(0b%Q+cl15P(wVNap_Gq96t1Rw&4y%Nda$alT8`m^Q zaZV5LOibik5B@8{ScJ%8zhJVf4;V`WRFvH%qYHbSTv+aH2T#VVEo|Cz%;#RDBsypQ z=yOJNf2=9bP>yQ)U8a|n$k6g%oUc$}W<6#ZNMNT5H=J%K8Is}HvI-@2#00%38So~ux^I#ZQe2MF*(JBJ&h00a(D z><-P#-wCk1p%q^DNShrsIsUmSfcq6y5Wt2mAHxknU*0Et@lS@}KfRB;QSoZU0W!=w zRvz}aozCdte_ek$;fjDacO6#<;uo)+u8a%)oge726mzbm4OuSEwnLKE-GcTBFY%xh zLnDW#OLF^TNdW*NZFPk*NTS@z*cEpj3AC>&paUM_SiO-s3wU|DSTg4*Lx6UWogYsM zrltbbe6-GEeE?~OLBrL43hl2&9L<|S`EwQz7lU@99kMP48I_48-2(96qCEad_W;Z` z?yJpWV*ivXf7&ui-Z@qP1Ep2<4Ff$Ysx{&d&l^4@3tay;$GR;*R>}8IY9A}T z{tJ&vDQJI+t&Ir&i}#sQQncD(BBVgF49zWYCqle^r?@n$f zhz2;8|KXGGCP;3R*^HJ3e*BNs%GoPg=_k`YR|79?E|=x=C&1Ho0Z#oQUaQk>4u4EyvP<-C*uw@txB|?1lj(G!Lr)j@R~h z{1cR4Fk@^0SB8JehF!;e61mVXCV|hv82s?(|6k;1u!%tyg1W_^HvkZ)V-Q*f<=~QP zJ|?852@1c{RZ8zxrU!#pBPeeEz4?&xq`u+8GX0G6>iaA_!5Q$E9^$nPE%2CigPNr4 z2|>XG{nZE9f*H%5G;V5u#L#&g6yJ^@sF)G^=@`H&093Mf5bWtvfl`T%`=94`S)BbO zD9;rp3Mg{!n(q;V-dnEvw z1qu>4{laL3^1(3C!t$wrv8bF7ECAF)3t|(zxZxlubsX}wZ(76-a+Nu`5GzmsWD36gSr%HomW4_?g3y*(t`%9`- zEa@2Froj`~$ICx3Jwz;PVI`yi|J?vCo$V)3j5cvJtb_M|4SEY!6v0h=vw;pG;c6Re zW(J-G6P`QNscMtzPu!N0fquKe?SH7=Dyu7UW$p0-Iar+|7VH;%ko*1xCy=5qJJT#B z1vVL$Z&Q64`#yi6**VkPCL=Oy^gbso|}_#RAR6CxVhufY3;Ifs$JgNi@Ande)`B8a`l3#l7snIBxLOHA{kRsAQflo zRB|q?gx+u@T`r&89*N{bN@HHBQ=WUT=Td)8{+=U|-}1lLe1i=DYq0{rTb9h7;Qcf1 zwg7zF3#byY;dVJcgmJSCuQ5wGoVRnlFwf~yZ`G4 z+0io?Y<}w^vR>3A8G#CMq!Yo12{H$Jd*4K3|BE0zsd*G-589WCSpklI{wDa(fKD_D z&=^n+u)M|&5EH;TL2oAvTcpBK#sKK3gY`i09-^-z;I^s}=u)p4J{S5A?!~P%;Ryd8ElZZEPRvB4*lXZh**r^%7QWU4Z6BI?P9~x(L z(e#Qo8&6*51on}iRDk}HYLoQrISB5Xr+EGu+!rkb1?wq;UY7X(M!leap`p;xvK^fS zf|P^a$7Mf=mIAO}0sd_KtiQn_e4f(~^<_8JvcX#!S-VOb^>>;3=QVA%c7_ZuGp z{V|`x+n3BZ-&Jv5m;XE0H-Hf%1MCZ$6IpFzD*^(ql<(YiO~mxF7(rzpeYuC`i!?w+ z8UXy`0C434ovuyfbB&@Ltf-PYuR!OS>0L6pq=$|uins1H>3yfoQr+BxH8EiG>^NT) zG-zkK3N*&#OrMYu6L8}Ky;j~pJ2hZIKMU!ifwwtH-O(k_Z77#vd0FzoizW;r2uUyN zx!=tIoS)rt1fVqd{=pwl4{idSI{nVMP|LY#=<``pz)e(iTcA*fD?m>0N8P5Yyz?A}KH^tQ!sf^XV4v*Wd`GD&|^Pi8&a z7s&4GU!H}Fy0pnU4=!f)uTlXO5{LIcD= zdC+vNokc^!+5@NLNB@3LzJ1*su~{P1)tPcHl`c?Tq`97g!Aq4`+GI$M6QVuGA$wxTac5mEsSBrG1wm;qp6(#U+t&q_!C z!WCq`WhU^i@0wL~M5g4PkWpE6l7W~4DvjP=Gy~my&>lyHKz&_y@Z6eqNvdTsn17C- zv^2ES>xj=0`ZxvvwoXJ}e*Of*V_*N&`f_UvyfGnOf!Pfu)gM*PWc1VX5WOgEsqy~Ps z0-IuR-WlVEM>Sg;_f+_#Pw#)iNk$3z|GkC5e=RU@$FszD?!wR<2SoIiCa~H8Fwh?a z2qWp9OWlJKdiJi^eOz*}%;)lHBO}H=-gBe)*{T7h%=+?5sm2Nb7rgDez`dgd`VDe` z=EmCqAE?67OVtAJ|MUzq9%5|c!Jz>Fn6UEFBrxQ@q+eyQN=Tixf{h0NVlI z>t>BDmhqTeS^>sWPc@(%I$75$?;Wj{4OrEX!MX=05T7UD=gP>Y(5DbV%MLvI+mZIY zPj8U#e_);z1~~cf6r-1o6nMm^WQ>(g(^xdf3OwtqcToJ0k_iSHN;{~qD6DUoGE_V4 zz4fxba2z0I@5fa#QTW3a%sQe+HCEf$5HG=;g-;2#$74T_k_k%z@^l^ zt9h?DTlb+XcwXALJesR62H$Is?>F|LHh9=6svq>FG`J-U@Q<1y$lvTplLxkqlD#kh zoNA=;i2ySzv~N+Z8GmR?%gfFXdKnHcM6hb~KWdee|D`xL!{n5q)&{vC|F}%chsO%q zyD~odpPT&c)&M)?2E_Yiz&rL=G|)of=p@oi-SSRFp&UAPMm~MzSoO}ufk7=a(mw{; zpIyhQBMiQ2#wjP>>3Dqc&ev!GRi8GfHJUhu<9IS1V;EA5rK6vvLx&UXfeso?cC1pR z)h0n@_3nzK0U&|u?!7~26i^;dS*Ekrvf1O5H}v!|Lqp0MV^Q$)q06R8B`9W}S-V%B zcz3s&+l7?iAik&>fZN~R-Z6+vm>5N4e7z^$-6fw|7CFxM#3*?(m);uq)S@PNYE!0E zHfr-s;*h_1>@E4#*KYPcE#z(T>zm;qOKN9I1^D+*)|q5vfv?kK$TtY#LdF4jV^0tD z5vh5iZUESQ%qOQt)BmjU3&^|#hMIVn!H0ynHExI3bPYJ_TLF~TwzNfdP_D-J81|ER z9@1p*lx>Gj$^H{(W%Zs>a_@~7tI2^oD}&~1!{I9V`77Jt(F_jy7Q3_{4ua<0j3O#t z@L-CH*)0Z&sibGYcRD6jMY-8hn3t_4S5z@4R{SQ-O*7CP9}nt2Zbcydcx|h6Au3_E z)gqagsFfAxV4_B_A~Hh2myw%NdK~9O zo`wK=^(%t_f4703-wrNioJX)2aIh*b|L`9AM3P`Rw>3an+vYy%hFYQxL1|0vz#pDy zgb*+$083y9=*7%&!{qbV%#rzJ#R^OI&r&Yxr))@$ES^*%RhLYZe{DS~s}7!#Rt%)7 zYw7`{lRAfm!zYj>0A4qsL8Pgv1#Q$W)s<)EQzxtB*PmJ@V_=L3S5j?dBExPM*U?`9 z^luTny%n_pFIX4>r~>c8>ISa9?%9n%wA9x?=k;}caQofu0yICQ9!kp?gHI`d{~?l= zJ_2RH07A7LmcpPm6kLJ4&PJO<+w1CRL~}uZ@2ZpbhBYuW!4TkVP~}m9e-(J?bycGF^_y-tePB7q~>L+lIg--I`nJn3ICR<)UP%KqV832~M(2WGv4!LS9(`uHfqYKdQ zGiYt^;6Du_rqoV&{MX3MrR%``51O?k5@ch|uG)-PQcu-E( zbjg3+x)4-K`uR9vkVzd3*Z2JGEje(qR=tS+P-c@-9jPYRnj-F39~KPjboRk#f(?3nLm#dKl<}zIfe*a@(Tm z^4k|T31d|xrAGsguiS}ugtKQyoNw{HHliR$^{+#6GT}H0Dp*AYm7*LrTQNtj1$J`^ z^uk9f8`NAo&Wq&9-lOmAlnuXoIBT4D_TqAT&>8>;n9@Q>Yg^=zHT$FroMtRrgU`C$R2g90KV2#B-3)dzpj#9;S8JA+q# zI}j{_{|v0#+Kv?nXb%qTYk)^s9k~2;{{BYjjTT`BgLT;vY_hctprvt^+kw;>>~Yp< z5hlv_-n2ljm@y{c%ZqcYa`%#{a^=*K^1C;8N=;pZ27u_ZBPu-zVU;W1eHd3Lr)rwy zTmM`y-&{UNW{(EFO*ldia#Nmkq>V!z?nd9jK+L502`y0?5>sHX(m}P*Qt9t10{bvB zn6N|*Ai2dhMbhZ$4=|L#Klf>di2l-u(__dx%!ufdS^@f3;ZrN^b*qtC@|H6u35`bt zBSWm5I4w5cXEYkw7)TqSzoJXSH+v_oy9@GxF|3>^(u}$5iAJmZe9d^}`OmD7?|&ds zB}D(52IKD7;khy#?~Ag+45@eES}4Kp#Ht9oQA4P$jxLi7$!LyQxv|`sWF`-R<^O{*$dB^rRxTF> z`Ti3t6%A^Ht2JiHalBSikQMg*xZ3?6tM-JQPP7wX%!j1_#1_CnG!rYq1EtB~IJX=z zF1FwqdIx~#Rs=bAzZ#>R<&e^6KmWpp1IbtbA!%>$T=c;?c6oSBwj8X~3_)zi4?Oj* z{Pyd&M5K_U0rEBgFz$en1_1v!0RF*wBT{IuM2^9+q8jmHbg`PdWZDShjG*hv(}C;t zU<{=tg_x6ui8JYii{kg-o1wXtMgM4eQ|X^5>d=!kUrZd>@5c-4@ihnJ=8MNm9tMhu zE+?@BbNlhL;(%AX&NUy3K}CN&fIF)BYzpXJ7@(Eh|D^oMg|6N=bF?giM>xI1z2)|c zC&)vuZPMFj%x=U`GCa2DWmL4<7rK=Rbgdj}AEr)HCDGUm|^Z z0B?e@s8bqouA4tmzW#xW)ar{+%2GBoM}Gd{OXRn&WXMx6ICX(l)vCvPts38KXl@N?n&?$(QW1FG$_)A4p1P3*bfMQ?;BBl0^Y^pjv-MLP({T zOPFpa0OBG^NwZx;m@1wqo&Er{Dd@Sm%w*!o!H1QJsIv^q`l>cJuM*v{ct zIR)CD)PW13YLbcC8BbOE_8PlKd6~!zK1dCITH8BVb?Gs(Ij(8=62q zy>*n42*=dQ0kj#Go7-nmkGzHmbSGAKkmH?YR`fh>ZeDKN0rnI4XFDS=e+yOsFb)8( z<$ii;aFswO(jj*+zq|O`Uezd{zG6DsM`$AoMJEGLJ#)lz zaa6w}sm(iK=n1`-VJrYOpNt4Uz1C(;86(7GE$bU!cb8!88@a}?h{4I8BT8nEVY0?SVx?inLbr$1w%7H8N^h& z<)TqG^y?x!D%&tHb;vMly<9PTkBqR@q5n-);C~|MDqi!*I>K~JUOYHd{Yxk*HQ4-G~PeoTYo z#gj%zS%kqbz8lCnACEE-ZJkt5TqP4pAsy6LFwf-k_{UebC__Lb(~m@2XX;wiv&j_? zN$Fh!wJoXg#%`;;y2~b8D}24Dd%r@IG2pU^?Q;DryDS{vuFaSGIynyZFPqjT6Nfo{ zRssC!`L*)1FWnG!?xu_#CPNFdJzns3XR2&HmM#~S8Dk8j4;n%Eb%%Na;cfy&PqYjG z8~qFbM$-SVGPwf7TNWh%|3CBVg$8+NKk>H-%#wp$|3tM!Zg7TEVj3OlTU@f^Fghqq zJ~ow~Qv8M2!y-fsD^Y~r>;K$%NS@wOu0V29*0cgZbva3^p~Gv~2wJEFkahs5v!t12 zGL~O|@v50JKEMIwSK(d$+SWsTavl=Qw>uCspiSdeH)FEQeG~%wXPeq!9MJgqT_|HM z3<{))B3MrvCvx-?{O9(5Ea4>|FFp1g}L&}k1dud81zL_uANybYO?(JyHXEh2`TDB6&e5< z8@XhRfr(S)v6U@ysJ>P10ae8i1P%>VGKMUMaiR{9e~%%~Y@=!mp{2z(f%Zh5hLivs z89+F+t<H8K>-3Bwyeeo+0`>sP`UgkXy> z0(9dyR|0TV!(bHlCH&7|+KT5N{TU6XY$W8f#~&1%pZFKHK7#+PE|Y9JnJsHhKk=M3}6OILJUK~^MogW*)+A_SmxN?zWG76m` zlG3*ZsGm#Vd3x2Xu|f~j+|1D5?|t7T{3F9Lf&bm--lssU`<`9rG4O<+a(F2)uys;I zSU;b8-&}d$+z9}i`1T54n9dSV*zmIf@fIF@X>&-4k_TTm2!@nE1TJC_><2%4ZOp-c zJ?oqs{NZ!U<@R4bhdDRKh6c;f+)TAHWHw@-5%?Ytz&}#$rnjPz7U%fcrrr)2y6;oV zX3O0$bVV}`P<~d1+!r1-9`@V2RlYHfg9;bun-q|i+|L9T~ z0z+1~vUtvTdHSs$MvPSep^Y*Cuq>nj@-_gF2I!WhbHXiVuh(zfebi_Fh2xCt|Bu(2 z5O)-TAKbzK%?#9>2r@WP6Qy}hoCpYLbS{C+*Eqye_^emWF$Up4Q$2OueG>0OGLTL# z1%RZ2=H}^jSf%8X+xq8&6LSXWM}>JcRc>Ceh6Z%1dyclW8t@ZUQX~J@Q(dz-pblzRX=!O5w1Kqu-tINfKEBkn`(Oh<#tqAt2M}C$ z7zX3fkhx=q$b)xYAzuKHR1X7`Dwo@HJ(x1`Tnz+AF7Z%1Vc6MmyjDK{H0!7ANbHN=bsl$l7M#P$V)2I3=hI;-&9wTYu~Jpjg9(EB59MmIhFNj(++{b^{L z(Ts%Nz<(NmfA#z&81S!`AB&#kM3Y%IohX!twv5IKt8`2fyTlwI?GN8QR`AMC7@02@ zjL4Fkrx(c3OtUh3@m;SA*8n&WlVej<(H;VqcU?7GK6%wF7~7+VE?qon zq+B#{gj!u4ta@L9W0ui!&rJ(sM*GuOS;?b+|0kEpryqRDu>O%_vZwF4IpQAveU(|? z|J=HL`es~w(;)P}pSV&Pw_=qc8e0DGjho~ve|{Z-*5k);$zbYS2@r`m53$l^H1D(b zlv)1wl|0#SI5Nig6Lo3w{pSndoRKa6eN&yxf%kbl%ChNgpf2hV=9fZ8jz?eKDF6A< zE5pw2;@J~?3;^^(|Hie(t%mZC1F#7z-J&6naJl{h_HWf+@NB|=xGX@FtVEy#6S@H>R`h_C& z>LL%ILLL07hx%?rU|rtQ4jP~~P!^S+PJ@xbq(Fc2_>z`~lW7_N8fgH)HL9LqIH0kE zG(J4Xh4!NvJxJLD4@Uy2N(X*74W$r4U*m3*o-b^08#<+4`OU16N(L1cbn3xeK(BvN z;Ly|M*LN)qneRW)drpQY&F}BNT0W0KUL)cw5MRa>p}w6b@>y9ksgrW_ay zGQ?W27#{zbxDK&1@SANl@dEp5%BM#^DScdR6==$B;%wZEIK)&T% z@ckF(Wyr_o4V4K9_B%WW@egPt@_W|!?7{RaqcXN(+3-o&i9p|m0KiF!j0Ws@#cVo} zD{qt+L$7!jxD7b$y_8W76`-nw-+0G%;$8YUoFL9Nw#rwQ%>=h={0}=1RyN2lU)v78 z?pC+wzh5H@S(V-|n1Rz|TPFRF3l0Y~TKD%}2suj$eBtDgh4RCXES4*0j*SSXwo$4e zO~`NWzDBa94eoO zr#(6MLz%z(ry0rLuqDeU7By&8Q0qesx7*Dp$B*^=w8UV-UQxnJ%C!jcSXBZ+}`v&Re~OuU}_jWFFA3mY8#~y zVEW+`CfNwf@EuoPAlF_nMo|Ryo1YjTeDCO46==5=-tJuHPO#P9+>S{;I}~j)A5@k+ z{k^t9P%AGxOTKmE#d7)7kwGQpeex9YxU#2LFGSzBq5~lQ-eU;zh_cg&?aq~U| z%f!-KjUEV;KCD*MDLqOF_Op7~iP8w*;(qrwx&0NT1a3|PfMx{Ia)NHxJ4?~sW?9vn zP5V~7`vAnSQw2~?#mkbM*vxl_0{}S;AK~!j_gfg`BNYJ7g_B0f{hh=wSty04=kZh=9Y1UHY-71#M*^-KY#4xR) zIk@{Rc>O1iXnlj0Up$NGY8nw}_N3f6Op)UFDeZF?pVEUViI?O=(Bk<4Q zzFb0{sK7s~inKco?P>DZ?qRa-SfL!O&4lsQ4aU<2Isi#UU!I?nE=#8ll?zI;S(Yz(UgwW8zVvCRDgFQ-UZ&P zH`qU+{dS{X`F`a4vJ>y3E{wst@GgFJV=Kl$XXQT-%V%mBE3W#_X?REZzJKApBLI`O zDF=cMcx-Fl@J>HpgwGbiy1Vg-CT&Y3^l3EkOS-*#Zn`8AMTuA%T&?j6Rz;ku zCCz8-<@K$H<$d!e#O%f^b{0224kF-o zJjm-ZkamVDZ5Ul>sgd7`;N;s3#NL0M`DAq z1-!*b{(nquWD^1~d&?3~1}2IOS_1$*yy?yDKn=A!F^R*(E+A18HBNUm3GgcY^mD#D zuymUgH2kDu5^M&je*YUg<+XjMocm@u`>vQdaQ}R6+s4f~GWbi7`?U=L6;Cw$4#v(fa z+%_1Lf>5mIRIOz(k6N9(4*=9BrB7PMc+h8o+dpd-3^4^>HU?f7>sIN>bO;;lXmJ^I z)ZN{N4=6U8Hlh7CLVwMm{W**BoAALa3bZ0xACySt3r-~p__x91AFHF%@JuH(@Q5hAW>(a(rE;lGp6K{-rh98)f*iMoV@XLmTa%glQk7ZQis(XKH$ImLO#c-pfFSK zAwJ@2qK5Goww;a?*;4M1PdxCFdqh4%3$z=*`qb5O+kMXhZ#manJl6T+DxJfX^->0!-1AA=T`BU@m-FPw z4ZVAQUvj}%`NA!W<;M<3FB7yN6=CsP=>$5%SJof6QunhoAj9_z*0RX{h4`hf@1_0(~ZmF*UfJU20 z8vr)!I>uXh#7F}G124BC0JAPb5!-==twfQYoF__-1I;I%e@@=CPoPK~0ak#k0P0i0 zEkMAY0IT{Y=t{sfocWhKPo$OE2cZ34Og1+o;Fbn%1zNDkp4SZTvPV}RkZth(Z*$Y( zFhBYy*t;q9@Q?aHUjSFhqgkAvDGz-PO9aCN|MmQ2gB~N^#akD2&ZaKdmgv!%3Z0lS zXibOrK0nrUi)30Yl5MjfXk9v%1zTkpI+NkxxGZshYulM>e+iaVm4J7jpJAB56z5uH zD6YxE0F-nYkrK9d^+B4<`vQRfzx>$cF$e$k@=PwtlLtO|m1Mz7nmSCu3Xia!Nq53} zU(tx5(D(g&i>!iyj?`hn30AmF{)(7$FF@Vu4?%D#sI&3#btCAlHiV%!ZK_zZ=SW8G zC1TCLLNfA~0sKeI0#C=Gof*QNjJbqCdm&u_`MWyK0&LqX_NsqKhy4)f{XzSK;JzBg zk9vYYX@u1fk*H*2O55*U(R#&}X_L&HOi52q7mK3%;c6aUmSFXY9HWad(p8Ii z(d)5TgkCU7@V_?|1-g&GKkK8>ktXG}8SUF41DE@!VsPB{O=UG-ygoH)hDraSiy4=T=wD0;yJ$F<_yBy@BAp-8xC;&JOl#v z76t;2q*T{8%dsa&v^YFv?~C}o9e`qz)yz))CR5s zRvag4X#irl&ET0`c(LN_xys|E-8|Gl+Sc8n{Q>*tIE zzj1T|srFU!z2Gf;cKt!AINPN7W!n%hp#ynBCbgNm2Vm?gg`CjPQ z0@|hyaQmNaOB1`xB(EGOmVfRpL0lY+ji}NAsGArwC?(B|KDn2^k7En8eJ7}aww9lk zpVYU=(wU{Q^ny|>-HyG%rU5H5pW9F_Z||;G36ql4fVTz;vaE{J{DGG?dGC(t_HnNudojIn3~zSLoHF?V;z!VX zJW*sP9L8usHA-fd7R&e`#>279Cs$2=c+qtE-)AreFhEw~9dZR?kwjb8Vg-niZ9p#{ z=c(TVWf{k^@gxiczhwFtVSN}atM?q2&s;Ot=xoH~{#z?7^7%)xI@FKyhg8g8{m2#a znHw(+oA=(kAY4K4;;%j{cl_}0vfs-nx?-PIeujX<-@YzTNj6utfBzQg)=1Sx+(Q`lk7TWF)S#qzX4#+;WH|hL!^S@ZrXiJl~eyS zZG=;}!onz7Nt7fz8+ESV;mQC>z! zZu?)o{GPmpr8FJbc9An4W#vDY8~o=ZHNZT-pBkaI30SAfB~wPr|J=R^4{2nZS|Y3f zpn^2sUwZx_9svN3GzRwMH^2dUd1b-al!msJ3H=lU^v{4nAP?=6;9&%DnXKSF-}i6w@BG`*E$Iyj_%|H-BD<-ffn zRh40KK0<$;pnITnA?S6j6CO7E?Zm0%m2HP)`9+iEvscZOJgm?NM65%XsCw^g-iLmN zz;+-o4=YgvIa#0S*)zfKKMlZtE&!xlRsz7`NEvkkDMcjCako>(B!Dtq_5+AdaTX@Sw zXH)+e6nHU_Cqz_~^`79Ee4@YQ_XM48hWP#QT@hWgX z7pN5-ZRqu|O~ofvsFrY)k-Ro&4cvmcz@OjP3i?uG-uY(`d~q<#t(Q)fdvCck;flE9 zsIlJv%V0E#XIVafg8cg58x47GNZl0+A*dV=^06x}5PIClqkQdy3uMjS6Bsvgj$xea zMa-i*#DAnwcQDIKJ8W{#KMOF9@*TUCmK4f^-@HX;06&O^loTPr@K5fNk9_wL*>mKK z=N6Bw$(A`|9CFQ!_*h}ejNLHD?qdLWZpHSn4FGf=yA(lZUtY7@Q+9&VGe;RifmM*z zC1Zly0Puz5B7}2!-z3288U$S4cSb8GFX6l;7+R|U zZxhwiB8$pKHLJlVP9AMtytnmz=YF&E!iN)3d}st9P%Btw(v58=Cc&NVW4u=RZ}r^b z+~oZBc(S9sUA4)#1Meq?3lnDC^0|%Wa=4~NZkSglmrNK2aESSdtW?xA%eS9gE#=^* zQ(kE>NOaNb&6ByF`vp=oJ%`=Y7ca#h6TC4AZr#3kx_o*0Tx{!S^`sr{R#A5RzfjpB zq`_s9s~}AH=IWAk7y$T9S|rl-WWn2&JjgTvWCLK%fN>z(%Ke}N!nxU8=@6)(4(ZLL zXsnPXt5gG^y#dC76JuM{>K+^TF=<4R{F(uOBW%POI4Av|F@9*S{Nc_kJsk1h1xk`W5ij zr&&wHly`}woL!B2z$BhXTd$(+C*M6mehaw$%~@0M%-GOQu<}4v2F^(+v)Jbx1$ zq$oI5m8Y-v5!Xdi&C?73`AEG@9^GDyAivpi6x*G6SEi6ACIBlkOU_qBL5@XcjVX|E zL#*Eu|AHn^ILkW(DM< zPEb42fS_cyv~Ex}Ppc2{Ks5Xal2o3Uk}Rs#QlKdu0|5y(6> z4ec9!9}?jBKnc4tY%oo(&SZ~G1M?{Wjz4-~lRUNMh}^wssw^lg4x)F^k`DCmu2XgL z$G3OM_Wj4Dy&Zj$yRY}Yo_P#bR1vj5Smmct{c*J%4FFsW(TRPkp<|Vd=3NnpLeY;x zS)Fjq;AG09$6zy;JU^i{kPRmgQkp!!e!n64K7*AxgIQ){RdOQAp5xVqX8TI4){1B0 zylK(2(eehy?6H>W##T9lRb(ZgZH<=DvC-%l5G-2``lpY>01&S-swhW3xL~q8y>_pm zS>!l}^>y9+iH7DQnm2!HQ>J|X`FxC1e8)4(7fzF3{Kt)0(HofKT&Q_uFx}}3M?rjEr?6e3($j$9ZM)vMbB-t4ZbBH9iSm$ z0NW?l?voX;UVrGK@iMU_UjatiiJ||cciY>0PRi>$z&%#e1aMBHHBvM2(3ACGc+?l? zz67^2!DIiOn-|K}v&M##a=+Kk9Y0J~?mF7Vzj1Dv;FxfZ`^ zSmLS(TRMyb05+`v{tGauA|+53_GNN^2!<1Fr2($RJ=m-mj4_ltW;z61ON;a5cXuyS zh6pK zcTzrwRXSse`uBV>WlfUI(YeyruuoE5)nI$@52o$TUn=Rwup$KXJ{bj<0}RWA=PX_# zGzhQ)-NwRz^K0aZXfLGr>FR7nyQ{;eK^%=+Pzwn1+d*Rh42>vPiUR*b$S4deDbR_w zav%bA8$uR>xrBWo`$PuzCEX7mDbz1%kh~@S%i*0{eVb*V=eWJYBrkyKXHRvOtT;ME z>RZ7NkNv#`h}Eyvztt0fXVrqfZ_=m&DJ`uQlS<7VSj;snF4aaXQZ=Ey4%*{ zU3?Pz_&(MQD?DQ`3)>aDH|iP93Sc?_ep9F7>u2Z^9zIxWlVMp-c=YE=X~E^hagVkAMgFJ-1N;qD=K8B-`Hl7AN@OD9{gwzXMCjZ8%%onnO(AQLc6To z-{ZXcD%xkb27pC#eEXXnCoIz3o&x7lV;VjU0MBgcF@i=a4nRY*T@HE~!0BAZdl@CG z%QJj#z1XiFd=AFxkE8*hkBXsZ_HS=nD5Kog{JEtf*Uug+N5Pl>dn{L9x%;?uIvk2S zypJRT+YNwE@n2&y*sADTIsl-g%Apgfvi-nu89O9b-ha_VQ0a^UKRl=U!OITtM*iWI z_vB3_0JOPcVq9^){On^(WE{M+qbcv7H$ndL#&!U+ z8l6%!?-gp=HhB9^8c~QqmL*bv6$|vvSG@i-000dnz@N%^06+q`Z9)AK>>wo&jRQ0W z1SO~kQ%1U&vopm45Qnr?uI3g1E1DN(z-b|!ROE5QkbL>W-B(FIj27`MLtu6N<7cmt zA3e80RwC$<6O&hsQy#g-OClUQ0O=Z>0Bt&5E@?--tgmmBJ$NoJojg)LblEg1?W3L3 zcw$N)D*2PYEG^}~1@%oOj1%gCL#7C-;duejZ?X)N^t{X9?Vk;B2Qff!50&3U0{#i} z0h}k`?`%H;;ICaA&D%UH0JH)T@bU-0gKt&rW3UVhDhjjD3jWpsUqR3l)vthmn*#ok zXByN3P9eTeWZ)$(^<8r^M@}}{@>~%>npl-&azcBl$42Uq7ut zrWV^|e1S#9K~d-QS;c%0!ll|#fi?!ueQJk zlIf*Vk{?=(qzdqv|7+txd2{D6(B!!kEdag#oroQy2b_*Xt04Gqwr0rCqCC0f!U=NS z%rTPh1)$bkHd+4T@2lhxR$n3-0Cdx*Mm*W!IIS7RgDQBJw&5KVic^3mvE)WVX<+_@ z;cyT!i`~IhO|h36#6n6M0AjEAzV65Xz?BBB%$PgAq_3>S)qV!1HA?m#KdV;mMC<-r z4)xHSMC%>{rAs69t(g17yU<{D+0@ap%3#W*_aanhMjJBx>-({FS?7TNt2fC9 z7RP>d$c*vB<(nU0DnI_qYo4sWvD+qV4z|dp6O99kJ(JUTBB1$Qa% ze;I=BeD|gWQIBCjeRE>+^G{qMU;pcyap4isTN~i={~`bwWyJ+5z_S(n)+KrHZpC+W zJo#u)pf@>ag}^aRkID`OG7xCcA)VfG>bsA?1oQp7yRMXCd?$j?VDdk=E|dphX!-k! zoxq&jWe&X9y%tl&0l{<0SRfQK3N~VO-ILV~@{cupbTDzfZ~?y ziDI&q0%fb0Q~={$pyHs1e~KwvG7GOouuKH_O@T)Mfil)nbRJTlY(?gWu3xSsYM1tA zc=~ra!1E6zQwds}m~-K&gb^ky;JmpSR@i_|pJsBBzZW zBJ?0NLh72^WZbZPBW|6%XD=E!ftA}v%H)x~jB$<3P#^c^+;9Q{6_;Z*S*(S|=4eVh z7yuT)`DtiwXvX+x>ZZ4}-+$30!wmq$VXDCF5bo-k{>D(fl|9<~cAfO4_MwC0AHRK@ zTrqD_v~S&K`k(y3CGs*rb%M^i{QT8C%rmO!gJrl}IkioV$+^mwLXY+nRrN9ojd8cyFBvt4tV#H;zOJ4@;Zfm;XBa#_IEEHt4AQ2hga>DN7o&cnPZA%36{t&C>tgt zd+~}pju*~j@9t4vZ%*<7L@E>ROj1W$lGwnHObocbb>k(n9830NDfE!~*LOc8|6H?I z-hp>tIgBL)kCd0N7o6b@wsV{L*TriS00cpZo;t+rTY(q)xxs!D*kGD$fBcvgr!sU$ z<$2#Y*o6BypGmTO1R%M>pcCK^K}qiKuL)@SzZK=$Zh%{$gayi@dO%@*(PGz;c6yO^VN4Dr0=0{bjm=f7QsSE`#$IiQDUC z01gRYS>%O%CGzC160y6|RM`n82O{iSw3sL+88tK;&uO+SD$SBP!%6vLf&n~$bh<&^ zVt*6X@>6I7?YJ%5TOfB&%yU?@G=TQbj#Sxj(k4{^`v17G6hOZP`%H?0NvG=}a8B@_ zLf~Ili>H3{dcwEom^wR(DnymC-nBahP`~c{_JPE<++2gQkxjYKQ^g1Q-IMDLVk9 z87HrW9jh;N*|g_a_y&O8NA={?w~+yW{q=k4%reE?;*-Gy_(Ak(P)a*! zKx(msmE8B_vLp~YkZ?jr@O0sX62-wj(D|g~`P|iWiok+2Id8|AUg4lqLZ_st|d z%>fp}+k7s9X?-7_*CPx1=S26tK61YZR^N>};D?@aCqQ#_wy6#LZ%%0k0H6#YP=X7t zrR`Wk?{am)JFrbE8xXJw%W3s?!S7aw6P|YD1}3-&Pf47wq4lBVm&OQksS=DJ&vi!^ zK#NW*a-##Jp{3jBRcOB!0Fm^D=b)zpfTRN-*c}ECfd8mZv(1WtJ)pkA%8K#e{!di7 zcJ?@#0&k`7Kebx+VM#8H0O~nlBt~vT>X|_OG7d-=0Pq79XXR%nYUJm52FI5asArNi zV%6w_b{?;hdHL;f$AwE}lu2Fx_1&~1+N=6oC0sPOBGVuK0GA&>7tu$7qpl|G_9%)eGVdp+z z{#&sP&psFew4H-V(Y{J#$=Ev_tvAc@1{h^Gj+7&Hj1OW)eXy;OHm>*nBc8OvVF<@o z%&)fAfZKrzuAm{F4i;QZfVRT1P#50qr|j)=$`23WF(^kRP6|BryPu{NXf8bGxy!-d zoNN~5X32MMStyHP00>l;%@`x^>^Y$;CD6-~=beWdC^OIlpYx`q#E%B545a^|7RDyf zoS+PIVk6`f=AY4$({;`8I;GQtaY84nMbpL@mw_Pf%vDqi@oqLMCWM~dJ(!0sn_Z^= z92DRFV@!HM$Ae5S8!k71g6R2`J3QI>_>a$);9eGPmn2DHZ|2?*do~y##!u_q_n*ZYRdGetJ zlcGdt6MP=i0kV(Bgo&R(gh2mE45|-TH_5h&8d(d<07pZr;w$S0SWJ*X1DOIz?c8%{ zRA@sQjWFDpkvCR^T8%oMMuen`&pOi8o=NB$O=kbm)9T}Wixu@~ zlL!R-?Q0MW7GD3|-FhG4eO4T9!{eVTC!DSOQA|5xO6*j?zm`*X86v>#AAHH7Yk1yv zgPtjtqIs17c!dXYDvZS$85!XECm1{UMDrr=mU4j3zuPiGj@D(Nza-@knzCA5G;o=T z#j^j&vLPPI$b1=ISDLyU)0;p^0QT?va>P^?+)mK?&mN#vcpmQ`Uy}x0_8MiXk!v=Yn^4_IY)!* z?9`rfUfS8gvNO$IM7>+J{c00qp~wsGog!C(^6*|z9?}UR7@1c(M6DL;vkbu`mOOV* zYha)iCDAN=Gn{CW56`bGE`7i@cSdkXS7cg38 zjUAS7aY1OXFxmjH7fxVFiJb<%`jIQ-U#l=zbx$r1R$62YINL9qXj~tvm!5gJ?^XSm z$ogGJFuv^y%Y&TsOP9p<68X1OoM-{hlcE432&+KX0P{syVb-YN0Z;}%`OLCevSivQ z`Qbm{d3@5l!-uyhFpEBMjsWtefF}|pLxN2w*z5zmWie*t8m zmt+%V7Y#3|c)@Hroh1)%9VUA!v!Q#AOtkm1Ru1Tbx+5i5ybH?0)iUfHyH$RBtMuLr z;oZmb4DEL`-=V(w&|8`(mIro}p5~O5c>gqHd*6w( z7`tE`)R*IeA-Nj7Hywjj_{$egmls#>@)YtP8#Cj=05G}41=`9^sdaPYx5CiA`|xR* z877DPV#ERPHUN;O=97zzF#xcPnZUbRo!b1Qwy{-?oT`y=BSOQMHtnwP)FU_Mk2TJa z!{EPq3Dw9SO%HO~G0r}GM`H}&U2oS9L zhd&7_%s9E>O)?T*6~FxCRq|W#!yD7fTt5H;d%fRuEpo+?|1wCrb@Qmh40Dcp!>wC<>a-e>1)l+(2Si zR|^KJc5yau7kka~;%eC=ZOxmo`ltf!h!j6so6)|F&OQ32RBwYs)Ad{%x67 zw4Zdb+H8Xo{AbPT0c2m;H&mY9T_TTfA1$x#F9AP4xXuCo57c7WwNYOjSQHo7WDHi~ z%p8>`7md!9<>RyA{hzIjl%!C zohHxRb7RQhzpj(gB4a2M_4_Bk6GHCxKm=hbJ!6E|<0AwGC zh8#kSJELVbD1Q@8N(!EJ--vtPdHuycw|!@yRjQie1M<8O6gl3q zVfQibpCN58nKQxXx-G}jL3`~zYw$T7)gSPkm04qaR}hA?3SdJV^Z(QElBg0NPeZ(D z56{Zf;RRvmhF;irEuAUP-FvfKj%DINJi<;h<_V~NL(P6A%bG4^Cv-ojxY! zSux^5RrSY~=V*V;SfZyOu1gsfK5Q9p(Y>YrZyU9NiRbet4t<7R0&^QbtRHY0%MDbQ`y zspBfxs^OXS&46auQVrSnKm>nTEEdTEH5RFUtX2dYg(0ACgIWY{9OIm6a8_ z^1^{4d1zB9K4YXEv@;e2mL16JU-fDDgLN68`$?A}`8Jt4I#1@6706A~^5mnl3lJO| z-1T?}dhh>Ok2ul|j}_+$>9)U)&pY^yL1fHgOT<{|z1+@>fWK#2%<|tW#>%t1i`DCf zs{yDTe@Ow27(a<1taTci8IU-x44(rkPXqsFPZ%kWeE9=vLD=G1#0Vm?17$qD(Cz3>>j}EoGj3XEgIeex*8p#Hg<}?H)Peh4_ zd>^SazWx%i?n2G;+$p1F(in`P-9oSJe{D5xMV+1xe$V$a0BqV*;e9xy?b6|eGP<~j z{@Mwu%ngUrLrN# zDT2xt;urVmP>lZFw?+thbixWiZ&xQio)rLnKwy2R6!;MupUm+7S1SPUP43RVB}G1U z)hxN?lF5CaGRTgM0_D>$Z(k&T`t&lHZ@_X^@_7GyPrDqdZdTM}v0oCZw_$t({O@S1 zkoM*+p!(S>_OmbGdnb6-?Eq>)PoWH6asJHHfME(Bkn?ZmCOkWt*_rV6&j9$JF6qh> z6QohSqu2hIC(Lh+Zbsx#L%OW4$dLy&jFq3hJ3&r0qugfjQUb8;PxPbgX3{|GLu2t2 zc>G^5won#~$&uS;T#@ zX~1G&d>Kd505DMX#Pm3+Y>g5l+hHhWHZs4_p#LGQkkKCGLvn2i$N#Uloe2@db@ViY z{XU#D00gVDu+RUJZcx9)}=eJQm7$nzQb{stE{WIike{b|PpaC*U{6YFqR{*@X z{{-k_d)|Fx3SBZZr{{Mp%Xj2#8sgyf7{eKR;lcz8itewgo|5<}SI9U1_Ks{lbVkwmbaZrhyjgWT!@myc@y$Uy0|DFdX@>_7DS`BQkF*L1 zCR<>nu>y#5Sr8xU2m)`%z?ofkg?V zGavoKj?v9$aH(rK#a~dAg&SCz&j|zi($k+_%4vAHvtQH#uTn43uA|_}9?seH=x4cV z+f35pNQJlgaCvU;FmYiYLWiLAftOY34cCkWtx0KdwoEIw%DfRatUxl!h#bv0!@jUr zA+1lBQ@Y#NptC%VZO~(h?sW;g~CP`cj&gQa}Zy`luC6aJVLgyz%xf4 z!K&S*^{ZzaTIBTEMj1XNH`Jo4>qrCi_g6M~(pY7n0bu56Cm1N`_^OTcD?njZUEeH2 z^Mj+m+~`M-bm2H(mlT&;zOx4<6bXwZZin1?{*rpg*r<#I!lyMAQw!-j9j(>)4TU6u>PisJ{ zYE1GgbA>8(-OOtNM>rU&YRU&V(HY2j$x<2?7?#_3$z8hp~#5JhNrX;1I42B#hjy-$PrPG?x+fG`;A0FCTj{RrO zdUZ>Vo9sNvGA0S31?3UjC(=Y&pVE~wifxzdsOAyCo+BbWxxo@Gziy!>NGywSB5plt# zlx@yP1EfHssPqmn8pRaSb^R*F_E+A!Urt=PEzh31B8L&Nb91D44{gV8i2U|9ugYhB zv{SsETD-6n!015mfn&=*0JRD7hi5P0w?zV=`jKb=^A8UL%J7JN3I12a@WTjz{w^3) zm+2GFKb{kGJ}2<+_xTkV$K#XOP5c~Hid?3o^4XN^7lHl|!2h>~szCL#LB{5th)_bL z1G*Z+AI^o9=0hC2jY*Z)AsgCir5?cl&Q_na`T(GA@QV)-NMR_Dp36%mQF?41bMX!+ z{;x=E4)fB&xqtUQj)XBLM{oM%#jCaAK+c7g#voO%7`JE`Id+Zji4sLStxmVRV{5b2 z`n~cTuCvp~kE54ZagRK>sa@WGaI?H?Pml0UcP3`=nUx9Vbi$a-1mN0{cA4V~xC_r+P5`!?PYqRG;kyMX zH2B>C8o~|W>g{f>!MUy3@o005k%4++Lrb z=dNCJHB-I3=ISj*FyiQ~13l`0-@`jo3;?fOa_MdWpdNMs9M>8E&R+n(KtR8}E$@41 z=bBXH0|o27JG$ky(^nVDA!z-H2SDkogOCO&#Q<>jT3!YKKKs6T0YHgH^fCYd@{^-i zQ}N+P_ixg)to#=Bd!i_^uIRa`{p3>Jrq;y-8oBJh)_r>L0`Px+=sqMTy;qK3z9r9` zx+;f}3}kQ|C#!m?z#qON;)_3%i~wp=j+Lv!6X;J81Zt`F%R@Ul<(+upy?;x`UB~U8 zqv|s5wgnVXJ3AX?5HEu&iL9Du)N*2=G)HlqXo=-TED*8*{EvJ8=QDnq;#OQ_3ls$q z=zj=o%m-|73ZM)}sy5(HuK^NEWoVvmt9Xta*x0H*|K+0(sh9ubNI*lQz$wrL-5Q-< z7;5S;eoo?AlShlyOu?T3K)=DMkX##^l?@IrKm!LTqE>6EM}Yva3Ghc_v-k$()Z}Xl z7!1u{1Kv-NElz2pn#z4EN*D!TM?Vu$IT=QT_XED1Irx%>zI(i0u_H=`p8m;eV@0VX z(HS-0FhR*Lf9{S?{_M5&GCJ#!kr_8Ydd?ecQiC|7jEm!?&uqVjo2`9nZYTxi^7p^*7Hq$!&Q5 zuQU#sOX27+n$Y0qH73Y>5XpNM65qQ%+vKE$40w%M5_kq!Kuv zD3-)R;%9v23V*4`SmMM^p5HY5t%oP$y_?(Bv(G`$Gy2`70sXbjWrSr;dsmZTp2ssAa5MG9TvrMW=oyt=ZV92unXiX5!^l?*q47~~F#?FbS{-;0 z8DHmf%NVZldI@nIM$+7ExfJ!%ce36`_oafgZvez4n2Sd+U1eKa>NV;@|4>2Na|occ z)&Ow$qDMCazyTNlKKIgMw~iqKARl3F1Z^&&_S&#?)U6gH$*1O}`*PkSDVw;p1qRX0 zWtiJl+cTX{0c}$Xzf2q=`N^g9jU_e!B-=!=mM^6I{LYU)tU$+O;F>?xH;9+xL3klg zCLDGXufKV`1zSPr+}&J#%re%CO0I$G#18-sS--FvfG=Cj{e?$TQ0w6pZ1-MF& ze}HWky1Q4r5Xgrv$RV#e7vtv~qG15^5dd_%LG{BJ%!I6PiX?X{yKl}8s)644BXdsq zAFp&v|Aa^S$Nab+VNQUbF&CbBrAl18Y`B-SHCMr_)h_Fr{owew%Llhq%ldjy*1(Y! zyDTGU4d-BNMq;ziA?3sXmi38xTc(k^Y$At0DVdI4uf=)Hb9GroW@#g%01%0WXNd*$ zJj)=Gafe5UTsX2UR6qq_Q z7m_(p?-Ae$;~J}Or-=?FJ+EE3|5d{is=1ceS5Q*{lp*NPM1Xwu(KA70Qul5}6_fn6 z{5P*(5da4fj;)ykV0mTbx%K++qfN96guA`w^dT`-mD6%Pq)4=|oCaDHs&Y-F& zUd)9!D>&nq_<>{6MUgBx5(o(L_ems(iy>dCa+!>)XfDCcDuB!gKv(mg$rfGkaOV2u zgr07u0bn@|EpDT?C=F@+EGGn}Xau0{Y2aH)A`_P-9GCz$grvu=} z42%Q;_`j}90pY++%r``)sO^bKhUJxO&stg8ZBPaPQXDCXpKER;^`!yEZnvw%zGc^` zJR7_)-T;#6>Hp`iuajF-F6kYvfmbT74>rt8fd4Cr+5;1r^S8dvD_&e%*1-T!>v71T z^?un<=aNPr?mKqoN?7i)#`{kQiGEMO8Zm^adl}b3cw%v$nu3JCB40VxBEe)d#;SF~ z5lcn^EX;ycmsYd`(aaF;ixV>eIe&dv_9no8*2i1by2fht5$Rg737mIP(3vr^XQlhx ziiMSM2Pg83*jBhNvpH%+@yrkg{SWiSMNI?1nn#I7{HKoh$~RxXAZM@LS#x=XEP$TY z#}IMI&)+_ETsaIBvV60w^3_0Vt$t2AW1unR^K7|Lkc~_t3RVXxmI2_-q&^fLS`{_` zS14y`0R5WYGK6t74FIJdg@^WRkgq*=a-rfkuR9H50N@i|{8|0l;HbhX*Gdbxy{A>0 zYW*-afvo^CgWO^#VDQibJg@UbWn)uVF5ijMlhPUX#M{^99cfV+s-YSF7>WP?@P*Xt z9}O+#E){D4;3-9{HU8mAwz80y(}=>*&+VX{;l~vHHNX(QN4B)fH%?x`rQ0G=0=)5S zcuM1F5KvzKKzL{cY(*NqLC|rU(k+_;Em4D1iUK?0Kw$VRP~%JVVE@3JHG6sSZHZW=nX9 zX=5F8xt;shg$&(uVrpB3V^u)N>6E{I+Mqr zC?b@;d*UiQoa<%hI?$f1(mjd#vy~y88J{6?<%(wVUo!$AkI9u~*BkKm|MCl`ykz8<9@17<9Ip9csdc%QBF>lcAi zh`t-afT8y|7DA8ZSjPUXT`2~Dw_pI!TRhH~v{XlAa54_V@;&PM;FvICVJ*VvN^;YG z{ReL@6muBf>v|Xf*Z|T1B@F=leH1k3xflTG^g?5SR`lZkADXmE@6ck7HR_l~rE-^w zH2}mt|DyoL7(PwlXXT-y=e;SW26EBBBb(dgTW|F%7dwR9^iA{)1C*DzE?W9Qf1W>8}Qtqly1XiXSHURS^K$=A*8iENrw*%Y{0QmpniB35SuK%l}e(4?Y;W`k*Cs*J-*QpNO;|&aUAhcS1u!usX+&j!2jPpeL}wT#wGPWV9;h7u31^1X${xXyQ4vEMWUCQVL%R0T&bT$^=06+!z20BNzbK zpzg--f&qZP`)-Y_*#N+D9)owf)&Rgnz`ylFaS9}EFQpt@ACP~3W04x|jU4j;oJJJn zETT1&(o_|Z9_ULCN%#Igu&qmK{HYNEdbDe;byn=#ctG7W=N0fnnw&Tfbar*MB4ox3 z(8Cl{1G#8m@45zQ@OfkkGzMY~NQjtMx&U>g_Z~UPBjBA2V@`&`0CGWp5W;UJfg=}r zrbE+<%Jnxxbjim}uz<8sRx2oANCTrhZn+jfph6NBOT47h!}4Ma%q42T=5B=dE z;_-NtYOG2>@P-CGh`I@+Px=Z{P7?Tk=}Nu);A*|ReWx0qDn$Rpa18)G$_jnu<$#7k zVvEcf!$jgep!(@YAfwIuRy5?FHRhp!IEp?;$p77|d?owB~s`@S? zs#y2;N1y6P)6jB#H-h_f!?*yQWLko(H(Wqce&};Al zYX$uY{=`27=g^jP=^LEDYS4oe3V}+m!2F$~1~7;0PH{ADl&QWiiUmo1XJ>{I#v9_; zq-9y@l8rGY086Ty1tUR@)tAX`$%h(7-q=9xLnE5o1>hfDj?ws$>_>(3W!n+vL&})v z`|9O6fd50&E_wY%gF3~Xc0__C^^oP8kA}&8=#k7MzqNjs?C7pT?hqzZ#&pE`cXWGY zOM^#h+;L+i*QZLd6kc2K2@ite|FH7@Urh9y+$Z(OyZsjvlKu19MkH!hX1#)`Lm2@$ zx;!b2D40Z?TlJukI@NbewzfB@NB|=?wHR$O>aY}}uX>dE_o9dS!iEwqbkxNS63HrWBU-T# zQipsOdp5PpsY^E##aV<=06%h|^i*P9^$}1VEk-)bgVylOv3;zOWVssu^8kyb)qQu;uOl`yD(_#wEt2z8|Fw(z4933E*`HIR=64t6)G zM1I+L_LcFKQx6LSE%{LtK)9fAo7$95g*og?xQ94?^26T*8`LMu@ia*E-_a*LEK8H_ z+SL}TTkO6bvD$0l%|8oJmQhJ+6!DeY<(e<#!Ry}()x;+` zHMJl#gypESg=5NKfuO$&ls-2m-0~+c_sGATZIy4m-7YWpH{!gH!h?ThuYYz^=?Z_C zjFiCtecPI4S9iU5U{v8Xjk)9RX?4r}U4B_#@5KHI8j=Mau>^hy{A0dF1|>HAEnxo7 z;pPjlAj)e>avv<3lA-}l+1GFSWnjXC^EJ0~JEeeSe{f8Safey9(%d$p-!7L;{9cDt z!Kifn;&qvWaXieM<6R=W|C>^H4Gc}p$glqOcjfoL^nwZg7hb()i8^awn~r(lPF%i) zJT=C@M!(fJB!N)rpMRO7FIQ@}e5TRloc;!YDv$o)c|JPJw6EU)eVCfl7jVv`m%C-% zrnGA(4FGyeYfb8P>eg`Ka2V16Y2~F$sb1{bZN*+b(33jvSE2zTbH=gr*HW6LR|LQ* zLN#gt?X#yzn#0 z3zN?=vD<7Q3@RW*2NV+t0ElOW7pw%T}B@)lPaw>kF4LEwKf4*Y-mmG$zq zGoA9nl_mxJyK?aQU(gf^Bgjv%fA6M7c>UK4J*3F{pOg;J{_Jk?NUbZ*_rHi)vL)D0 zMVib2_#Xw;KY;(4XC)TChSl`4;og;@_oO}w{mn~%wKF2;24TRWN((HOSXd=5bZG=Au!Mvo?<3fz4G1V7;?54T@Ih=*QJR&kj%aqGHHMa03&$M zuT{53=)M> zBYioY2I!4**V1=M`F-x{ZJE?W%hY)zvZ*;$S1AV+@dqO(v~mcB6*?hSg6Mw+6ibVF z&h+{UNa#>3Rhs2y)OeRuqq9NrO$8(XM;hjOcay?| zuAoH_a=_WWE^%OPI{=@pKX@gp!zv{wOM9EHkI6$z<*wXLS4A-km|>Suyw!Nu9EsP zP)-X>4o!!orOKg_mLt&uHsS${p6am)fc&?iR;xtkUdC@2nxb>Ks?f`W1_XXgSxEyl z=3Kbr#XTSf&&uRTuXI#C+j(vzKgB3Nx3;haD#rxwa}AhJJ~xcg@e@2=0Cwmd7)8P_ zL;=9V^lr!npn_6!Q=hrl3K}52=U+VehJ5k4Q!DIgZZ!tlh||0%Zh1XevEv z+~C&;MI1|@_?!yLbtjwyRz@h;;~xdyWjQa*2!LFbTDtvQ^#_5ax+VDbrvbGhk#y>_ zLJkc9vc{yq3Pe|bayUl6T@>(-GeQ}zRPG9k;`X;<{t|4CPu<1DM!C0?;3xZ^w*qso zqQHA5;aV$z|FL<8eExWs+?saF@qs!SnSoIc;Bh{{zXD;=MyJyXuJszJ^*N;)A<>Lr zqTYFJN|$-y{ogn{CHHsC%SQizI33jz3A~AMz;!D;1e;3IV>@}Q{twjYeK7LxUH`tFc--8mi>x zNb=rW_&Sy=@dt19A-CSVArh))YUitn{vi!msfEu`#WK#!1xpXurR$H5YUM62a$4#v zeD^m+9}Tpo(R>@h08k6hcCCy}6^^5yUh0qR-6-FAx}4$xx4+L{ zrRb|j^RsBT(jtf1`<=Q4x49LQC#N2v*RSLVGfHQ4-X?#0tW*B@#r5*!g*N&ArB)fA zb1LB9N|)*!L|u2VpBY`3=JIkHxH)B)Z=7ktMLJdg%N>*dHkM7pS263z z+$z>+#T+B8ln-40HD0UO9dUzG$`RO+M!#!!#uaaSIq*!Uw0{*p$Z=}Q+B7gYJ}sa6 zpWimY|Fx+x>(S}=g{(W88%nBy2Xu@AmaO_JwEP%xCw4?R)R$b`?!o zumUv&QRjM#lk~A=E=K5s5yrC2hjG=-Z-wzxD}x4z0I2n*J_n9ZA(Fa)FYD zT749A8A1E9Z(S;gfAm~`#wywW^lf_a|5IPl*y6kG_MTQrHzZ~3M47BK4FHLOa)S!N z6jKBFYG88Cb3;fH>OJItzG+=WzNcHC55R1DDG*foKtcy3JTw5B8a$HkA4RSrU6#EhU zV?tjy=BWq#{yv`{9D8wNRsOxr)?$`q+-rQ&fXGprfk*iNI=W8&;Dt@{y^GBX_@6)& z06qTghzQ6;)3Bf>y{9k%LVa<-MJ6 z$^%W8WmjzJar;XmaIT^jfHWXzYrB_D7jtG!K}CDnF$h+ zzn2-odw#77HbNAGX#iO3D6anamipAl(h*SN=q-dDz0SpVI?@?V7mz0E(Ed#+U1UOA zdbR5zOK5=3_GfIyrE5dN2!W(9a$sAVK2cDIFQoDRr|C1<#&Z2OE+Vp4jpk`ZtArce zT2*EqpT7p^Rj|3OPOc9!i7qd!fHH{YrOiM7qyd0@j!x&i;{BfsdO+(!=%YBoB%jqt z>{;h=0l>4!EZTNQA&qJEp$Sn$B=n*Wdy16EDy>HIXU-ac_q*LMzV`P?aM&-=v7?|2 z$#>3h|0t#;J?Zti`Lnxhg@QZ*c-rl32R(w}@$W>49ol85Aq^)=Aw3{iZ(LBH;;~N} zLh{vNvYf(x$A^O+_c0g*ZSwrpdU>k1L2gZYg|9(dB4TY{wm}{ z)XFq~a0X)1J6%ulyJCXWkP9*cjHt?+3Op}t%yXfwu|~G6YnF=u)hQ9Y=e>$#!0+8% zdIRo(9!)3FmSb5W0FI;?2530YYm8pIoH`Cn09;9;^VBb*D)W4MwCOd&il_p!=+bCl z_qqmv9C6%#xoM}O008s_@vzEICNQp$Ehg+@$Gmoe3yvQyF9*f+-Wo4t^=4TG)PSr0 zKCxA82S`r9aJf;;TxkqXIx!}3)lGm30^lPhm4h@tPI#hMRf*f}R^I-+{_^}FfLK&f zTjlP<$zSI}7Ww+Q7Wog~+a~|tv2}9dW`o?E^eLWy8|Yzj9qnYV2>jmz zkN@u0DtKReqzXxX8O8`3-x7&L@d$wRE#6Vt-*7<=HeQw|+E2@R7ytrMLhpiPw|Jdr5fJ;^#K39NcKy<|6J!U=iyW! zC|`czWNCD=L`kJvaW~K$6+@es;qh;R|HaU(S!TItfX_-S=6>&ZuRN_&vfWG_ z|IByZkgJFa(nCne)LQ2+TGhpVPt2v^m~v$=Ha>LgEMe2|uiFS%F^T8>m@UsKGV<{W1ZD0&bou*>iQ{BNpbUj zZs8215g_RSU!ra$+UbCozsKuUA3ym0T`rfJi=~Z7U}Jbg=WQ=<1r|hM^!%n*{~Tz3 zrh-=a(&;w&g@4;AUw*4yE)3Pm(6mQ+;*;tp-xku-KMDM|*OTYpsR8~MAH3KRniUA{ zH@GKddtJZ06QKWxy5E$owF3a9Z6@%)*3ss9X374b&7j|x`m2h1{a@Mz%mEkziXk*& zIN{^7f5k-P`f(n^)wE&z;h(9UpyYTT$yaLbMq3aFx51 z_FW^hwu(vlo4H1FtyTlo$bF`j$vOS!wbz;YELdm*z+-7%>w4t@00bqwI#P`rZ)Au9 zIC8d6J4B+F0U+H_^6;Jwh-_Xo2&6Q!On>M<`wgPFe8CojG}~;30W`1$6hID;xmg|H zEhl$*22TS5?6m$*1wzOJ5R?gg=3odY<^use9vXZuX{q+850^80LEr|2_FXihp75eU zFb?Dk{Nu*u2k^hMr$M%_tCuA3PaVgdjZ()t3H(<(W~HaIu5qg5(x_@xSD7d#Z6Cn@Z@gyQM3bvlmgYb+0zjjT92QBP_#giE zDH+yq!{%_9xr?cRiqybXI2|3>*rsdWNN4gZFv#g?1bF$}HTj)?_@KVn-)g91D=f&WSUC<-7v00hIN0E)#afQXb7N$Byw z90eZmH}b>fj9w6I0@`6F)GN|J6tGyUt5s^Z{F>N2odDYMEjW(K#i@V_KkqodZJ1{c zCvr{z=&!1(j#KqGdR~?Hbex7^BCN(H-@cjqr)vO4FGq)1Jr9XEHz5FEpIBV*4s>*3 zN4|K(jQ|)5L}W$e|iPiXkj*`cOs|X3rAytNu^tn=(pOt_LmAq0gxVVYBp5S zQ2-%C0Gg7U26$ijoqu>vuH0sxB~wfdm>Qr4e(Levx+`LQW?p{rFQ1f`&R#2dTfTkd zqWtD(zprwumAvvqg+F}%R?u1$7e+A#1yFJOSc>t>`0iVZiZyi@!I-0I&Rw^t^2}*^ zO)5^k#h!L*F%fVfgE8TD)A;^hPow|Y*Bx91&XLm9RsDdUt{m&r z(nX1+CsbZl!3H}hZR#1Ub!%x(8UV6lQTgt_Vu9ukcasM8bT`FaA=Uk4=}m=z2`}r6 z0-*OFKYXxT08)yeEVjY{&rCj`st>)gGt|R2@G~(zCqol68TK$&8ASsYt4kdE#di(> z06+jqL_t*5JH_r_53sQYfP1D9U9Pp5bI}MuXV3vHw_A?e;t$mpu_E%t2Ty;u%Y$#P z_(1ogD6!y)zSzP-)R<$#R@zNP0W7v`rQP%0POoT}BZ6ojyFAxdE6-f5lmGJcPWkkU zn`B_p4H__;(mxaLuG9*pHT>azr10_p_}|`LC;K)vNOP@68mkf61O2NP#kBhvODF%o z!y1uB_XN282jwR>yd)o3cTB1ssoog*_R-v5s{vfyF{do*>NM9 z4TeCuv3N0DZQa?9BUtEl*(8Kyo-{wq%-OQ$07#Z`X;pYtpXp@)6AtzNWN~jaJb5_?>eA|EIw7|CY2P*)Ib}I9}$I1B)>S!!N_p#9{m#+N<(elO6#O zisb+NTj<`V2M`rwo~C=Rzj4(CCp3$=)98l^-M94eYP>Po)Et)Hp*R&2--C{yzb?r< z1xL5r3r9|2%$B|C~F;=x*g20P@t9$;q0h!pz-MG_b3y5jg;GI^lj2 zA-a|(1V}i?rUF5k#Sb@t`8jZC7UN={teVa6fQkjxDol#Y8Jd>dU48e$0Pyhku9S7= z594XT>ZlTX)lP}jJuKFtR}xsb9DR>yz~F^-;T;h9^5AHx@W!Yz`M~} z=vU~J^b8XHe&f~iGGYMWpVNxo|DSsI-jd9)lxOUc)VQ>g3_d1HcQW{zOwY@uZZaLG zOwmsR=?S&%Y2NpGv@HGHTFbRETl+V3Gzz`gZw!sAUFh9@^omO!-MZ*~pY7N}uRpjx zuwVdS*~|k#1HetR?dBagOC`jC2XATfd_Cu_M+WqsRU z<8exNW3}`RW_}PS%tA0VgsVLh9V!YS{MJB41@8bKHRwH}{jBu(aS;#Orj&;U998f* z2F=Lq@Cnd*z`Iz@r`%^04FJ|C&`2xkN#eqzlXHZ?o(=8^Hao2K_~AwpUy2oxF6tqL zJETbZ@05)O{K1|kKl!&ErwE#LL z@b7ZNxPs-*rYh-Z^r?so(s{+}T-w$o@Q;B4@E;VvEhryccT_rkBdQ(Ngs1t^BXez? zxnD*N(1>QmW0bQ8-+t`E`IM^VSnwn!3Lj)?KoiUjmjvK>M5j6xg@Y}6h$R|Av|8K~ zXSw>>8%`h6jn(@dDyoe4lqIMCa)so(4TbZWj8SrzkQi)pg@xbJo7I%%H9+d0Ynm6r z<@YwX7Fq)^`xm-Mv%CUpfKdRy_JMm97k+_@UQ=;n$PMs?XWvwxrfRS3S>GZ%*EPxd zmRf16^Mkt3kNb!nKzba4;QJ5_el#H5LJ~-x_ow@ZS6#uBH*tc;k!~?l8Jziob5}lQr`ss^%$R9<2JcEy!c*Z z!%Nx&yVs|*tx|rN27ts!214cwS*1*Bz521It3mo;#a!_AO=$?get;S=Jm^M2%RwVR zjHcgWq9|yH696u~Rf1ugTF%nAg_d5rWf}k$lwt4%3xIpOe~b9LepKdeeGeffLjcY4 zX>`H>1rU>fKB;^7vcV4lWslnhnh@~E!vLVRqv$v!fWO6@xA}BIhkYIJ8i_zxWAiq} z<^R8q^vD%Z{7eVza&y9~0C$%?k~4gw;9^`0NDbt{OR*C##T^Y^X|F?B@E9W14-4b? zWO@;c4@FG80RHWkh}_q7Nqv~yH|}th7-t=HRoPWyurmOvCw{_F_N9uB@%}V9;Vc=N{UhY5;iY0v!52v~v3jy$2%zwDRV~8xjO?VHE!V z7pNDF+`D5PqVH4JX*QSjqG_5RKmhpyH|1*Cd>Y=MN|ylN$ynrxl_S z08kg6n}-n~cMsuwJ4x_=U4u_02W8?cD*zR)TTc36z~IB45xh>8Yp1y_t^upvC%(=f zk?_nV2~SL5i~~7)y3im+NYVnJn8}6R9wY|B*gKsrfPUPD1imx|B*6Yfh*1BBrnQeh z&pUo{H~f;@KLYBbw}w18(jq^&+$i6>#6P*88<}^%P4wfmkK$}q6?0is8T)rh6n`@-CzP3OG>tBo+0kHfS{Kb<;r5MTZ zmao;^s?~sLHr8sx*vr5B@kivxKK-?_JZFpm%;qz?|LG$SBKM6epF`HPuUii{*t8Z` z!u=|gjYK!5ArkEO7 ziw1VJ*DFtH0w);-$Vns-`X3?xKcWDNDQt%)@$g8Xk;_@zmS_kKVf_fdWvH$x<)Z;l z^Lr!&V?c2DS(y(Iri)7)0$!Yu^yIg~p(qx$fMy2NKLGq)p!OjMXa$vt^8Qzc$B#*Z z|H<;o|C^mlfd8a#QIO{Hy|P)O%9H-gkRP7@9(kp|R$jkWF9GN<7{kFz-R!EJ)pqDvOgdfTwTs__w&J=`GT>j+bT@cF$H#}oiKw~wxw_a!&2DA47%(Y- zvX0r=Yj?7G3uiq@=M9Xq>_WZ@CIzkcd&CC{H`1H%emWNj$!y{?IUAJg!xJ(%KBIGs zSFYZq09si`M%kkW&+9)APWr!l`h-!MRFUmqq{Ro2;JB1x1kkt=3;^l$FQpvAWL-uW z%Vb;bwr{@6jv^XKEA_tg=XUMZ(k#yeQlDx4-bG5@LbkvUqve6^>r#Mr(g1zp{?b2- z90U!}lcyHp=kL67R<45TGbzl?u&*2R#3dF&a!0PDdix&&byB6u;s{h~4|D9-9Jppp zF*UFj4XkVMOEo~%)LTrv#6|EV0TKdyJAy+fSj&FWw0a&1ONi-@^ z{X*Tnx5rEaz=Af)W5HRs7ZD~?VwpH0wjd}+Fw`+cF#-=>gb>r}@AANF33g5=lJ|1% zSpo17py2$oCcsDn%atp9*ux380`PBx-ss2A^MY{vi~V)-_OMsRX5I3Qb8X1q!E*^9 zJ9WiKi9A%svp*V%NfkW)I~%bnP9;`FjxM534FK7-_t`Q4G1oO!%fon?z6adq zySkgCy}n94S7q;2>J~a2k>|V@$y-U?a_rIo3vrH+x z1{`=^W~4=_#a$$i;C%XF1n@kc_Ga4G2=`ngjAbU>+zsm{k(VT*VO;RJqPlR*r|Wtq zkjl#7<9m9M*2@3@8lWdn`4)Qlm8TYS6L96uj-Ys*C4T8Zy(jveGBv+A z9*wm=*|ENLp`DesU>X1tBT5e)Q%nu4MFYeEcX!mw(Cy(Biy`P52t{RjJ|vTKAqCF6 zK>tccXZ^yV=0bUBz*WB=W9t?7 ztuIJ4G=_NuP!Hgq#RgAAbb$~tn0^v~f4ol|{`h?3BmfWy&t&qNSC$a?=R8k*XXzY4 zbn0o04`kTAf5N8{`%Zz||K!a&0RJ`^Qz8odXAz`HT1mJE^~>)FPI{l)CI>e(z))zD zAK%xa3=IVQs}i37?k+2Q$>FIo8<7il0`MJ&p%5iR0sgxH{MWdq#ShQ_k8~fAYR4?D z7c4*S@xO9wR%)%eJvR;D8tv#2i*rk2aMQtmjQ9L&5(~f^Q#&Y_2t3~|jrc*u#tobq zoN-H!&#fJW+e!DJ=NB^%P(C74YEca-M2X}#}3V*WwB@) z020GAlQsd%V)V>L8cqW{U;ubNhbUZnVDq7BCJ89#gd&U_2OzUg zujB(!iJu0Frs>>)e|q$f%{f5v8F)trncTD__Ihb}>vP)o z{1J=eIUBUd@qrrTcZiQQ|Hi<_W#QnbSPD`KEbb3f&DxojfT71OmlM$`HZ}jaf!j(g z9kmYG-R6@I?W_gO6%ArIA7H$jo46*EHiy(!BY|?6ixIpLji|!^efX^5n$^`1;sx91`Gg%&p4~{5K@99fXh6NGSIGx zJ}cu^(x|btc{~g3;O!rncFK_()e?+4>*g&zM*>`McH1%?48_RUqOX&ToE;=4if zLxBJ1A8MCw(EaQLpx@+ms4!H5{z$Q`&i!QB$#b8yU~i9v<-*9EY^=Ve68t{ic1Bt~ zVn6A9pl2uGH}tz4U+OeFxjC5ec;W3-k9#(X@3-7mY8jic%DDkLOfJg9_iSAJQGrXQ z0U$A`Mz}dt;QYGly0o>eHts!{L(f$X0HA#leiSGl2Rm{&balJnqH6)z!;b=+;#kj; zvIfQ`;jJ152b+0$SfZRVSYfeOi^abOp0l8c37rCvjnU3|Y7vO!hwxjL31V0sED!v% zH{@ZTkHV`Mz~XEOfd7d$fc;ka{-qWG{|@l$qwk4slM*Obp)WqLN#s?qNMns#QT_bF zLmjfd-YbouGik4JVjNf z#WO1z1+X|TlE)PLoB2O%Xkw$^A#PCrFb_x+2E!QU@WM$@>_(t`o{KQG$)g*qWM79* zHrBh6U2cR)r+Vs?pqT}&!lVFNs?HZq_sf()fF{!O{P$13 zO9;g4DSFXx>Dgzq?zL%vQ7V7>sVC$UfBJQqm@Pe!vbNS6>uBoo(?9oasnQX+H4OlT znG;4ZVi;j83!}~QE9J_~#U!(A{W?P!02bd7*rs9|09XgT+O-CN!x!B0o9``s-k59# zfbDIJ4$!_^vDL*FdjD&4Anr!O_olka$T^lxdnUq{(2Nmo4%r6DTwgvK@FT(Mdb~8A zo?bp|o1n)GK=#quARI;Q-~@NzArk;3L(FL&EwrFW0{=Gf%h`kQq682b4$K3`0`Qb} zttGZ~8Hs>*ucMc%DdngETlIY~D!C;(bp_DcbYh6p20ClUFj->oma)(pp6a2H^$=Y* zB)n-AD7)0NmS>X_Ui|a$>hB$M0r zyW}*DZ!-TDNdw6drurSA{CNki(;dL{5#gnBNocF(OaO2myn@6o;D6(}qXGYENP2t7 zFL!3*pf&eiBFww7LXL_h$E7#L4|#%OJ*PHAH?emuHwQ%bS) zdLKn3LcM?achr=F3h?7#7B7F}(En^MKrfA5glPasjL#&zE=@5tPzVj|=xmVFX*Zip z4CYv_U5P`1@kjt88vyvg!nUGg3jB}vk29LsATdN2K>cx0`aIoRr$G9D ze6vIPLB$e^!kah@{&nn|FU1dY|FV3ZPXr=68hz3Pum5*$s+A|U)~m$4jb4+wB(F-r|*CdY}-2AOU7RAsn*O$wmYA(@9W#LMTdr>@lD*N5-lB7g7`kK!6`u2_g>bK{K>xbBDZj>1IM77NPh15AUB% z(ND2|?1ugwHb%v3UY1a4sq+ye`^kjJTB&sYfA%$X_Gx>6mn}~j;O20bsk~ylyS=kf z0ffXd2o_QjU-2LO4Ui)O1ca0ze6S0Xa~$i^_ggq%jSIZQ6121d*kM>X`IZ%k$+j#h zJ0`tm9)KlUDYq3CXS3KFKOmvGUQm-D5&(cEz14G;q^Gln%RJ{}i@GC${{;B2fd9ol z#UCiFGJ$71D|pxc>a8vrm~zO;fqEI3aAWSr;=b89F`4)`SK*#YcQ}Xacp2ll)7@Mp zZFL^$sCLRv?Qc{RCDl$)Y+)nMuWUf(k~)!dAr`(awz;Rp7MsKIsa_#V_BU4)Ndpmh z`ESAiHz-eki@h7bd=%rsye-jj4`(L%FLRzZ8Oq4GibZ0B4b(nWF1vWZ_wR={J?Ai|X}TywL=8>xegcVWhbCs_3(qccJ{Pyf$|(IOk@w?g9^Ye_&NNhe zx(MbRa8NF+wu+CNly+m+5oy+K|i#7CrtO{Sj%Y<~yXma&s*8U9Y35 zG?aq`w-*fnB8PP_0FYsNPghWm_qjBK5R+_?0h*l(zIg7YL+(s1j)fmg8T+<&6}%p! z6=)g&5+gEc5bjZW7YFg0)f#KMI1H=S`c#WI|E^GFxwQ(!Ac;A zrilC&(GGgG`J4`bKQK60!xF&nG~??+nWh0?K^5h@0EEwCbBUwvrzJA{ZE;$TNnk!5 z#9Xd>gzA!DyAeDhc^=^*j^~s*QQ}4{w$cR(pAeGvo*wkc96b9!f3ibvPq}3-WS4UY~^Pj{WHt8>Z^Z?9LL)P7)*R(OKbh?fyn zWjQH=77#3s48wE$C9uETfq@3JVYxOer7ZKu+BJZ=1i)WhJK*&X?{a$e1Mo+@6uvoc zGMzUZYk>Zs{)q)(1W?B;o+n|<$BUz0dFoP=Od|?~G*in8kB89;f0o@XpN%Yu@9Zul z(dDPXZ-e0r5I>uqtr~1#TtFNEEbN42oisdbZ}G_9PLI5!rwZPU@nqQ9nxpM+7&!_Y z5|q)~z0%mZL%XT0mdyx&)ZsdEA?b~ly1rDuIvT3v)1Q2|dPXW$okp)GP7G%BR+{Zw zNdv#}q5Fj1&tHG_{7So;+o6GvJg`;%(?=dOlrEa#wX3HAfX}teCsF55^^!G|l2&Mp z5exv$wZ%>Hx`GPs+Rd+>zM9f^0?$T}zTs3So32(m8x>y;?cXea@lP)G{ zxud|9hp>nU4W;8n4}@fU%1VSG6HNx(nT)e-XwV;Bpb!x+AXT|xV! z@%(3tNj)`$+!Fuw2V3OAP!+uIS?0y=RJF5gYlseMu?v|&?uXm@X~>Q;hY*2?`Z_la&AN~1mVp!H#aRFPkAQk zG7SK!Gxsqm?Q{|^;L4}>R{G(mtw=n!J}Ya(++!^oAjQtsj(RzB zZ5Y5%W-NzbA?bethyt*IoIQwT<^&)$P_cwSr3+R~H$G8(_&cMZ3FF{=yn_cmGh{KN zhRSZGt@eJ2IcgoPL{aJo+ zioO-z{uU-^*c8N3cI8(!l%GihwXBIX1=XOG;flIO32c52dt zdB}CS3io7LNdrW#$1UBDp8rkN4)Hpdxz;Z|EU^YNJ8?eb)A~%sQ9Hc1@tpe5?poR3 z>65NnN1P@r(*Y~23xYnU$!(EaLpNnz_tq8mHs)rN0%&nuNP&3a=E&lT5-+`TPmhrP z$COkJm=OS}`Y88b1h#8^F8R!Nj+J{?iqigH`l0>u%kMi_l(N@aC?k~gmfPdgvZ=jZ z?`EvJ{=xB?RUcc30~y6(;!B0lWPW83*E@2$FXf;IHw99D>+xd-4r_yxix4as8hYA5 zKUxB@+idd4-i`9TSMe^I5YhmZ+5oVrISkMrPKi1S$KlOuS{fpeccdjs*0Fg-t$K0x z6}6hu7tWV%CqmvSd;#S}V5JvXhPatYTBtEo)~bP>>zd@ub$~+(`XQ*pS(qy12`BJx z$0r0%kK)oIajiPqq!Bb%w7auQ9c0j__-24X9(!W(9U_BAC#j5wbDP~kaM?d z3>*aycR3~pmc!Vry5yCc}{HXs0CG)RqpMq5)Z-& z?(OhOlb7Dv@pj~8T2R1$1YNs?dPXHSe@cBTpf}BPJiU$P?-FSM!x{_qgVE<1vAQ2d z9sqjcV9v*f8xsZdK01w6@KmPpX6{vdCprHYp)y>`Wn|7K&s}bmFTdHTz<wvVpKAf%|G_SwJh09u zJ@sxCEt9k1EUocT*ZPrZAu zUR9g*ni?pn2L9c9_RFTWdimXdd|qZXoY*C8guyDa193@1)Tq~u4 zh%`W21Hj7{J@TvXEZ=intJ{2*U%%{1NkqJ%qfxqAN<+nzPdkgTZ^aq_Jm5NSgvFH? zetKF@%*?68bIU1l3|`Ns0bn@|ncH&Jz%Cd7zV`Y>1#}PuSpbp}1rQV=|NkhAPBWOF zb$(uiqUpQkTHT8K5dxwobB)&p4{3Th$A4#rh6t|23ae}2m>>z>)i>%D{SQ6-gW&jQ;#4O8%~j$x$LnGaVN#>CBB8GXF4ODVs-+qf zBYWGtQV+m?SF=m%;Q1eh4%K$Ur-l`(9EY@25=6X!cd3a9}_@|dX#uuy9HCrX`#q#%h8|Cj$cFLU@ zH|7-&$$effHj1UvI7d)4x8sw0k>}s)hP4(~(&Gb&_%mfu1D9`&E&eF+ z(ys1i;l~tH19yuC9^2g`U-_+%%76Xx3v#MYUs@Txb>39tl|TK|6LQb`7QLIYZ2jFO zN)EbQBL>RY06_158s7Dko|e)ic-6CyMy&h0ubfF~*1LBg*O~$3?9Eil!JQl0O4=$K z0JL)Qnp39dEqH%e`}4WBT%#`^hT%gi>3Y#_tF+~cH2{$BkRewLJ)eW8!_+J}zm}ia zDoIRf&%sKYPiB7-8rad*06uB(L=$1m@V?J^ISm6q6!X#!Fr%^Bt)c;P;}Oqa&BRsd z{a=p|U?v;}4x@f&bnL`w0)}fuvz2RSDqQJY+t=u$v? zPt}n6oqP3sfF?MZuOzR#I5rLNSLFd&CxA~b{~*p4OjCLJTAf^(aLHWIE?+s-q4?RS z=3yiYgVP^g{{;UjN#He?7V!ugwg^hPTuwzvvZ1|38OEBbTv837^3fhY0Dqg*d2G@S z`V_u1gm6q!7MGH1wBOVX_egw)E~C5GaQ@%McYk8XVntAB+hH!RP6L>DkZ9l}{vs!U zm7e8c%so&85%iDIgN);6#k|8;VlptfZ{N6EzI3`(u8#WT+NfU{i%3PaT8XI&Y@p#` zyL1N`TQhASSfnYPOpu)O;fRjB|_p>n460z*OE!#HiH0{tXO1-+{saQ%0}vzp)h&41~lUODmS zl8(H*>1{H9=dS_MD!g`~UoOIsGd_=N8^A=4_sh3;AbGA`+PveS2LbnaUPS{DCrwY* zq`(Oy0S#XS3{~y`eseu%7MGbgSA8KG1r%5SO0SI300v&~DYtwM)G2oC^CoD1Vt6P) zzzTN80q{h2+H(g)RBiafLs=(tb2Qd_74=m|gAYlN?9yK25)UY`wluipo;HsHDe3V~ zAuU&K!Uj?=0BhN=U@s27f`tH<@oiz>P2fK_T^eC8HDNHM42R|NJf<=tKrn_hJaInG zhpZ~k#MLp6eDzE-a=F;$Wh9@TLqrMsa_e2;wa-YxREXHLq$ynIfW zkE7DX?XZLE|A74T`^x;$*?|i8Z093*uB)d%-0Qj3=_}ydx=o_}n_0dHb+zBk; z{#`v(#a$tbJ-;iuyL=}{O#{I43Np9mtN|LJwzoIPv5Pn3IB43DO!iB9swlvc2mnHU zs|3K=v7WRN^85+lhHY|KZ4v>F!*Bjx4$$cv8dq)Pi-IZTr2&Hf!&9?z;_7V~rssb+ zPGLhzk_bGQFHg41x3Agd16{|E4*(v%Ip+gNPEdl{l*G59@JRsS@eK(S5_3m^|M8V} z0REhIlL4Co{%^u_`dK7Pou0SLw=RHk1;(iWy!?Zhq;_!n^Zkr95`fKh7OEEF+~Tn| z+|cPAy$%#Vj0&p-)t297SA6~r;7Q-o=#t$n;3S8k!42aALAKoax!GU#j~*q^L->wF z=U>BbJYX_8EIH&Y^ztyle<-0W#Lh?*7@`RD6GZ3ic4E%Xgb>Yze*;r4Ieo{6#JXYm z+|eEhV4r??{Lf=M=c^Oof58NE5oRlZ@0meBo<~m1?bd2UvjAb|?_!B1ibx1r7Zf$o z^0jo-I%NY4YVX}v3+{i=XYoF#PRiwv%XcfI00ixdhUO#`bcw^sB+kZ{85jT}XuG=K zuh?8hELkzH?D!y`Lj~T8Nl&MTxDW}s-r!!DGo}GRkEwB2)mi6v3ljwYyZ7vqZy&iR zUw`$yTq|R5@8t&XfvuhLdq4h&bTm{ix0@liZEUTVW4!~qwQXQ@N=1rz;n-Gg(yJrQ zTvAt?%Q%5@vJd6<{pF|LNNMti_s!y2Ic1eDKgMS84t{45ekI1TR|mS~L;E(%XTOPj zW(j#I%^NHm zQtvU=#nik}xZyj&>pwK@lv8*7GBRtIe}1b2fL2uc$Ne%30M*GPzAPG(k_mm2vfLcy zKCGR`DJ&j+wIRBt4&1JMs9M+T7cT&RJJ3-Y05&%`r4xXu8y?E{A+fIl)Yx%66vj~T z@;YEkurK-Ic|a7Nt6^~H;ycQuu!M^V{*&{INn@q_UX;-2iWK6eoKX%;lrW4v1nWtM z6@=lHT>Ud4i`2Rza&6Kj_3p4t%sS-8lmnDCc6seawQQ=NlW(4Fl`2nAjw1&}FcQCZ zhG4LwajKxe|H23)XFlg!{Cwavr`XY8e|8cqXOa?kkIV*E`+0VpfO(%RTAeriFT z^^*r0O`qhCn$rg>CIsL3#E{1M)wF z8zQTE2A_J#bgF^I0&Nw=W`I}2)X@fP)N@6qV|*ZU_L1d9`uV*Ewz}-%;Vw( z?N9QIRp&xc8v@lvY1o31Oc}T0m9bv(l+(brufr!F+*Ko8wE*MsJI(G`oYr9sBT+;! z&5z0?k}}s+*A%Co0+vdzZqom8{^TNYI!k*0$3M9oQ%?Jg>lAt03?s48rBXeyjjs2* zy?vG9t=v}USCI`Lx__%OmY4Im(g2{hoV;?o>2M0ol}&`JFgr#}fQ_?Q$yb{JlH6OHk|5D%?(oJh*$kym0)|!bXDP8=H+`C|PJ! z5f+$=>*$qKqswDyiIIy?t)YrE4FHje#be5v$v0JVd&%&dyCg9v*f~RV0dy?{_TzPqG%=*pX<^&6+#5a z5 zDu>or1N^lpz|?_?3H+x=MI_s>^c$5ZdLuk7gogn9zlGmH0RMgJTiMW6!`Zr(da$%~ zbIsZ{K&>-+WFCM&88hhNf8-9v9CSS2e!CgKeN^Va(SK&hFV)V7^deDjd-a@LANK)3 zk79o-<^=MhU_S!<4toT&S@0&uZ*~3V+(so4oExMFN($#+v4zA}tR{v@?{^`J#bH%* z+l6noBv%l*FzrN*$_RkcKq1Ha3I4Ys5@BzrS9Z60WLvXG8P`gcyp;W?Cc?9$5_8l; zA8{J5!t}Q|rSRIEt8k7f0{|8n^-*aQKr@VdEbSy-P`$4VLcPykiznz?XtcRtYQWUM ziW;B+K$MMFr{=FxB>d& zZ@q|jHI01o5$5zVhP;wSwe!%P4Z1aqUhi51z~KvS`Q#&&ZvZ%U)g`lV{z?k5ge~1I z$)9({w`l;-4D-m;-Ie`X({*#P2pZ_9^GS`*CBt(|v(78t( zRHX<)Ac3HNt=FYqxI^%Yh#LWxugnO^la_Cxxs@82$NYKo>Mc15%BjgYCj4Eh7lQ5t zsc(+V$iP?-c>IIL=w2kf zw##?Uw*pYLNbfMHeF&%$G^Jqy$7rciRCCe`*8FBOlKT*_CtZWr>riw*b@1+Q0H41T zp3se0Cee@p_-zEQ|IQ{iXn(A-w-pfpHgdDaVN~Kwx$*n6t&C8>{UCyeMgacN*&m=S zFp$9OAMVCz8MedY*c5#=K&q&zfL&gJXFqdC{L8s^8J}~&13f0^K{e%bL}X�pK*A zPa+C_f6j+~7y&rBFssx&c3=)uI6paCY$!J_izh>JE+#gVw~^WtLqv4FiB)!epREm*c&+jNU}EeHEyIa&(6C zft&t^4s4Pid2pMMeznr1ySY|K(=YXr3qxzQ~ukt+Cp;F+D6&j4gs67In|_#IP#KfzDZ>A=Ik z#slyZ6d!(vw1B#S4n0hK>V~Jk3-#2yUGhM;7r?Jowt(kffsr`Jh(#)Hf0UAw5Y$J0 zgIJ&!-vImrr(gtN_%MOtgicN1KPOcdb0>262S6kB`Qz=#A>ol*6JB}aW*t1_BNBp9 ziXc9tOXjc-LH*>sN_z0~e8?utY|3^>QPwj;i*#)sc>6aXnXa94kjZ$9Qd{nY(ojt! z;RYDme)ir*=|R$88`@fIzW;13* zYn>ON+J3jA;tT*PA5pH#DDZysaDp(hT)90aH%5?W#uQTnCDOpq#Eks)caO=FM;9p} zN>uf#s%eGS=0n>%<&o{{9rDM)#x zDCGIK`btqv);buqx4XMJ>vnTPVKs1dU|9a?nG-36{`LnXHo1~+uMs6k&zmp31=vBA8V~c)<#!~2FsR4k7kh@Dv1Au0{N0~6w;4hDw z=9-ITpnby2^x!Xb8VwHDph;#e<;T`P;=Rb84V#9M1YC*LCUvmKb@!}hug46$b zeA94814Po8lGIpE1)Dn+K?9`X;dmV%sFH79Xp(b7HFD`rl`>>0?|sZY^7ivumM-Nq zdc01P?x(qypl>|kusW~QTujc#^d1)XH#N!#8n-*?x_^-|L%s6e0Z;MoO_=+ zn`!`f*S-3Co*z1}S-$erv4v424NxT;0EVZma^d!36b7+2J)Du84ewUYwdOjn)cc+A?6*rb>3$MtfD=?jWXK|y z|HB)+IL0D7o83t6>%e-_yTl>i+_}dI5Q5iVpf_;*N9SIH5n>V^*5E!251>(uqToL9 z)?&dF185+CAv-l#EkC$YFW-H;9S{1Xn2LM&C!43{bMi+SeJ5uc`Tgsw9GL4&`l{&- z7GqWz!I1Pe?L;qnFKJJs@nsVdXs>HPv`v>++G-hHVNH42Dtbdu0X0Is@SgeH#YuU! zZ(91s0xD7S3#YFjXU%3sn^TImtfr2MIsIsFR@2^M9+S~vUCatKW%nmM-ZZNWvlxV7 zDTG{XJPKm0(RJ$2PEo#Zp&){aJ@$NLsUQEvt4zX@PJqoM9*xqnNC z?%jXkbiYi^2Bbc|M9&OcpfZyQ!-XKF>6_pc=o*y?#Q@rDOWQ2t=0hWa$1gpQnsZOb-f4!NBm79 zUfW(=SL>>cO&wYcy_g07jaGRX&)#$ zt#()1zN@Vyw~@ATPgh7VU~~OF(54jlj}N`5vq}KklQ(^LU8(ed z5~vRz{l7fMj}1RK)vbzGJpl64znVc;hb1n+e+aTfgJK!X7?BaIFDtfz+QK4*p!O+& zw?EsTm7_I0G;|JSVByld90i76Jtq%AeN9php8s5cqyzxD(1H-Z!#~pIHG||<2Gx(} z0v34t`$4TjzJGps8b&+=hVN0|NV^71FlIINS>&sG=F90Jum9j6(rGW?1Pj0(myZzJ zdPyPZtFU1OwG~ZJJT@XQa$%*NowDm(uN-geR|Y_G<@XGD6UBOEyVZ7h%*mk6f_`K!OS8$ z$z`8}8#s2r05Tm#Hvk0HIs@Ca0Zh|H*Fd5)P*s#C1$L{n#h6x0+7c)D75m`gYKFJ9 z4ZI4PcU<^uHZdh52x|n;nqxwMOi()b42(sf{IW-7P;;E7$~jrzF0J7GCl7vr{wZ3?nF9Rq5xloRzS`tKdmts0)+R!O z_m1QfDJ>oyE)CkX0{qdQS?)4$`O~|<7{RfN3$%dL1@QhS?hZUrm67e$ z*^D5gMTkyJRu2n)^LTv0e1l7e3}__rHUQ{v1NKkgzgjCPz<+HjLWa1B1Q%Q19@YTc z$1}C1Qq!(c{tO?Oq8sWt!5@Ar<-_1>L*Qx#uQt)^ANzTHw9p8E=fwvvavHLdC`?`p ziENOq3-aZb6%Hu`%@&_M=Imz>dkmLsFeIl+*iQ_gUpoQN|DnCjFjT^DiM|56@pvQP zGdvT|H+2FaaRMmGJYbi4(hUG3t%dJ`bjse-mp~b{IGsfpm3JQkBR>Qx7F~1=BwGVN ze*Q>Cc>dE%`oTM|kkvX@`j}PDvGi5TX3J9tYQ{V-*#{qe`Ix+G$7&TvF4=iaH2o)E zKcfu16TLnW*D)~lS{SvmQQow+U;cPB7vGs2eQEN@Q~TsnbC-PmQ*Q;0Yih?|fB%i& zOLIG%xQ2udL!ZAVv#^WD4~2S}-?4RdptxyW7v$Px(~3Fr`tb|H>9w z{?J12=p^Gi0G@IbRRTRHwP34}N(n%?Q4a(hNi*r%*V5f9PaZr44!d>*&}m5F2pCA9 zzrD{b$IiD&cQ5HC2>!=cS_1}6UIYLR(D-m2>sl>m4HTpyOL;Sc8iZMvIBYVbG*6by zbja3~Rah6{BdM_pU0EcdspxTNf9~-OC+PNjelz z0GV)KT8xZ%?qvwfSKvNM=sty*zJC^f-^=3feFhx=$BAHKA)N{(YhQ)h?M?B&1b&~W zE|Wi;oFTw@RojZQNoU-htLFuOSbiG-by8jBBc?^6o&7KXejHQhL@BwS%24e!c^cp# znLz(y1p0mF#uB-9L7tS@8FND`6m#b68wTJd1y{0#j9eB_;x+aR%C}!_lAj)EMG$De zGM)r$fit1H2VC;IJ$Sw|R7lrGy^USVLxo3Ov%1xSwxQyrWaxcOq*&=T0Q_-Z`Y9s9 z_4aK9VQta9|HIXy|4y(5&cRU1fWPS!&i?$j2X2t>{>>da_#bCQY+p4u&NGvDT2p7A z{N~jY$;)7pDbxG^2hSdwWGa)td@Jh8L=TTFlm{nftC=m!{H;&h|RQ0SJ~? z6irU>p6u8@cF7{0{UgqP4zOUXTSB&j=_l!Rze%FL`C(BCPA7t@?0^|aPkDKcl_$Q* zn!B>k;x*PS>&KF>f#sOuwd?rBF*9O2?S|)9M;}}&@xh-5U`WxMjCs|>50W!I7v2f^ zc8da=JZ^)yu#ezcxYRUcmK8m`eADH($Lp127aHa8xkl*&kF*zUW;BR|dc@$DAX8&U zzXmj+UK1gNteBFvCg2aS52g!#)^7Jn;NC z5IyEOBLjeVlh)5mp9a|020TWoY0HOUKly-jGVhdNE`fdv(DXup>IDG)`6P_T;Oj%| z7K7J==SX{o5>{R$$M+875G*OP$%;z5Tr&?rw(;A87)jx|d3-RU;oV_R;w%7mUoK>G z@N%CVZRnSS^?j-=oGF1rA>v2pLP|6SukXUUl!NcOafu zn&rlI3({PISZ_ua7t4h-QVwZxU{ zSI-}m|9s?ykObGwamiob&>gZb-9LV{FAqf+(ZdGJW;<*V;Ao;T8If7|3#U8hQy9-|{ej<~WKJ}Hp8 zw#Hv1#Bwk_vk3qsHp+_Z%EN#0EQeeJ5C3JeieqK&q!s{H~)|PKdAP zF|7B&iU3cP!RDdUvTQUnTwB?@VZ@XYm&Y$JoiBxPNo#*o^=|pha7H47{LUz{Ur%$nY~J z|C@OXV2aSWwgLI|p*DHuWT!G9Dw?Dy$@^f%zR=t$kG~%35f(8i1>gE3-VqrfjR34ZgJ7(2G>Z%F(|+M>n2%0*A;TBF3=u-{(FCvcYXH9QU`-TGUU-`_6wX3LwH?=dikgu)xsv-C6a()G1E<+cR!{}hdIZL?%A)+~ zs{Tpe_bnS1$*vQ1lTK%{2|NLw{jDqK2+NZR!Z>4}{ppMNmQKK!Xp%RyWA!}ch&st+ zro`nHg+BS&hnwX;o-C3__7sGadCxJtTR-{@`QW|R$ltteyW}Az;$+1I2gxu0w)_=&zi% z3uk#`i}VZ_yiMd$kC=eIni7=Wvi1hEJ{FyMIQUafw<5Wl%q@w zd>AJpc=SAY_b|T3_JswqVunptR_0=+h4xs+^JFqxAM*F$ql{Ew@$@}o6&2kCdJ}^j zZ0M6?SPow5mzI7H3_!fs_{0yx!O2VQa-yzTb~qNqcToz?;tW6a?vGQkZ2M*y=&jHz zX)Pnp(n~?PlbHn#0H-g3o-K{?uRniT7J&w6er4+ENZK*O@^8NLl$^(`69{2xpPp52{=a$d^zF6o%9uNZd-}==~dF;6Z z^1*wqk$2yA#e{bFg_N@2cu%Wbu^@o61RqWB_QShEjUx8~{3r85 zrpXS(0SGn#>_i~ozrD39(~3Fa^6aj*0mB&iidZ_g0t^QDuAHW#8vw#8zF7~x6{ZpW z=VUd&kNB1IE95|JqxkS5)WH8x1b~2lFAM|(Q0S3Afb-&T5S(z)2qZY*n%#$&kQv)% z065XW1(rjP12AD#PwK*UP%r)RRq$DM^=dR5VU2>XvW{L4`2PE(y<77h9C^KIS+k`D z_9+S<)VE3oJ98~&6?l3^c`g8dj}!vrFR&x%F4~|YPqUO0fa3LJ0m%VaOOI?Ctk|yc zEvdkK0+ChlZ0^G>f#u~^nd`s|0T>QuV;{u~4^{>E<2o$>W}Lp<1c%8>LV%w>%3c8f z4B!j#yN@9)dXBPm1VB09#3)pkDWn0^o1s9A`S+pv9N4yk+rA0y>seT}v;jVA6>)N5 ztn{L$wf2jRDJ}+qZWuW`vGsJ#f1Gf`cdRX9y{Tn7=0HEECPtJ01{m;bAo-5}f zST}i+#!fg8Q~0c==1!J@R^8Z&beju~PRTHbF~w zA3V$5@TzvgcxfN&^pqWILw`<+B5f8x>}*NvMmo#ld>d$^Y*F9Qu~W+2GpfJ^o^I(u zOq~b6_mn*J;9XKxk~+`ii!EL9;CG*ry4K9%D^7QP==mp41INxcYq7?XmqpZ+OEHW1 zeK%%K;LE55&F}+^-*&^=`SPdzHEAztKfW8-hyC#5cgfsxjN#HG-+1D6dHl80Y05n` zTekCSR?H6FIZb}uwZ0!9yh}d&n__w8Oz60)6~Uvw^gqwZ*MISn5Cp&d+SPImj9Dhm zW*tN5F!s{HYWdM0_Q)%TYDb;PxM1J7zfG=3VB$=ZqoC2*e?AoKf8U*3GOd`ZJe&a# zEXOaI;eZIr(tLhjPko_5BUq-h_doTZ8vue^1GX7Gz7t+rMHy(F3oEMra|&r-#q4r9 zc&=H2ppmBj(*WQG@3fo< z0k)CzP3>~%e4{k?Aeb*vIfdGfWJ$1$?c{QMuUu^I1vLH+n73ZmTmJ3P}0!xGf^Wb5su0^`QEfwI;Ho+8y=uV|D->jYy8{Fynn}z4`#0sBxXao;=yhZ?32K=#NHbOtTwmqr6Oi~tt1S-t1ty)JMbb;LgEEcpH(+S4K}eIBJSGp!~Q5bvNz{_y%K z^m%r%VaR4g4`rGY2fuU4XMg%R6cLLc7@n6&eUb{8o2N3 zaqulc(-WJhdN-b=7thZzskS+e#`OdyP$sYbjUR7X4v6pdBg8ZT>8 zH$2941Hf2{(vOW(1IuTXj0uV;@I)B^z^4o&6oUoEi4lymB--f&5;OyV5e5LGIQgtZ zdqz-@vrV8{!3ZSkITI>{eo-_HxIp#u>X~{u2?`7JN&w-*TLXB}0r=Nk?vlp#ezgs1 zeg%%w)7}A(R|a9KD#=rTeFdm|6g>};apYT75K4L^v&xw?*XSyT!Byb;Y8xvB%JDd< zOOU0^hqo{d2Mdd>vKR}`nNgroe*}2{nO4Ayn8#xap)MeR0Qiw37R-PdI0R4=>9`JK zf56ip$G`_aLh%zjW&MoI)qufR3hJMEDBuu6u8K-8f7UbG0k+TvN^GFNLW^W8$wXlr zXItfSlAi~<7R-mvw;2_WJs*%!k8dJxf*fFc;NqMGKpkSDnJg-^%Ke+lqyWz{G4{!T z|GXXcQEsC-;@lNV+0=}X~<()OF*$TV~%S~yOcYVzhy{c_tHr~GJVf&2hVznkOyQ0alg z?XDwd)e?Fn_OCnE_Q~h(?F3#&7q!fjGmU0>=8e!<5Ffhl+RQ6xP>DzbG-3b{%;Lxn z13*o)NiKJeK;BjuqBpP149B1#^`~@mL>np1Hu;$`fLtyrn7pyQ_#lm|^W--)fVW0W zQ(877^<1FI*NUD)x-_5+00e5Hyu{sTcWnp&*H0h^r}e->POi>m2@PZ=pcP<&?Bs1G z1rSl7DB^Oth11pNSLn}06cr_G_oenOIZ)jIeRlxYLmP;I9ujQp1ieKsya#FMTsyy1 zoCthX<^Y8Xs*!a{AZ`%tik_p2b02lhV{Bq3fd9mx0!edUp!Vs78!+??;)E(tnAqSQ zyrk4B^8xtt_@Yva!W-G78Q|B;gqR3rXr=ua>o0R;#sGW?@Ov8Z+atb#U1}}f9^}!7 zCOM>sK@8zDQmB z*`NMd1y%q1H(w(&5Z@&k!tb9a_f^YRe!n;40;gZUcD^3qI;hffEq;0MrfzxQnjZP( zzI^%V?tE$N3VhQAoj8uoHM3pvsoT2b>cw;n%Ut=^3+(R#U)F+I4poxrv@_RjTq6Jd z%a@0hN&^7L^@$jd4=0+2jaN>GIsjd>W+CEg0ehInGP$QPgB522GDUuCf>ZRy3jkVU z6`3y;A3j1ZwS#s-7hMAh)WAFh8nFS0?Q^*lrFl5s<%Vl@8@v=v@cuV|f2CI$0Fnm~ z(3`sieD8ct?07y%mk=>Hr78j;3$Ii+wCe_d1h$DtNqGQR9lOvd2hTSsZ~JJ-9IGV{ z!Fbm!C{r^z2%r)~!R0XIu)Z`<&ulaS{O2!%rz1cgp%yhP!A^SW2l)B9zZ@RSlx5)Z zp92nmKY-U&72pQPxmI9$oKZ!?Kma&Y;J>;eoH(0RYcEtaHdLG;{tU6_*W0zuT5NWC3Wp zR#oMq@7GRGbXmRNxM!b3<6zLY&nP9Z7jOdXZ}0QUqX*mMRI^jPgG}TfOOWv1y81B- z072Ael@>^aBQHTIPb`_%E*LbU7;?%#2^mH@=WJ>VHfJS#7zbLPstW(}JU4=iL zZ`eP_;ppz}?(Uk2={9ZJbTr&of`*PB#( zt}9>Qtt&)0kJ~@5n~vWWTzv|iNfhM6KVN@~@-$DJRG3CB6{s}587P3i$9+RWj9W95 za-7w>@{|62V}-uc(dp`sd#6NbKbLcNBc*({Mc5RxaIM?8vGCnkrhLw?b^5i77;v+M zH^;&gEbY8QYVIp(tLwnk?>9zF)04$5cY7%3Hos~o%ihNt_zPGgPTVHMMTDwPoYo2g zNG|_$G8-pW8)|FBLNjNG<^Q(-pGy3ErtfVGL5AwL6hC<#si(M+lx- z<~Bws@o|eQC5x`T2Jhu)K-IQh8; zeWMIu_zg|I{GRL=sHmP9B7StL_VIFPHh-N~;p?V2Rag9m=(gvXd`?@-%_Zy-!8q}m#vPa6)z>2bgi zRDFIT1=K=#OU_Zr992>}F|LN-w@^y}fEq`tdT`!AZ^Z^Y{=-?8)(?hzhqNf+_4FAd~zJ~?MM zktX0P&B1~1rF2Du8mpMfK@@m>(2>O!SKFgMU~+m?00eN&Z(b|(dxGyyaO?CGlTE%I>4-N~WuR3$#H>%q|WyE@&i8ph8 zGB%P~NJRRczUSNsK9aG-SC{!1UwMBp;W|3w+e2%dIjy~sXaF?H7o9FX&rk8b2}Lj;key0IJ%N??VFWK#nh# z{rh8uc@Ie{$5;&I;x}ha8kiaO!8|nAt;a-T^MUFZ z%xV`wY~%nQfwZNWNHTbd9~g3ii7=Vu>0uHWtZ=cmJ>W;tZ3puE-!o{B$x&oT7u|PE z^-kpJ6BL3C#pq^!2$XOZ(#~zX&H4G$ST%%06h(mKX)5;O4XEjAVvRgxChgp8H zajXHtnvn(NkHlqdiv!%^o07B!a%V>{Lg-bH_TwZHT=d92;>}+h3;F|8P6lkc${~oD z`kV2uT}UAK%bPc=0plsQ|J`Aq47g50+<(z&1)TF7@N{D&YkjT^E#4I=Q(627wdmEy z$o%y~`uig8<&#nCZ<=M-vCD~+VFZ%W_yc0xrD(G=2cqp~M61J7b8rBM6nC}mAy+ON za(sBc8vjkhUn2~ZS?A171LBEiytpHLrip*lNssSDhkbLX|CM9V%Mr8kkU!SAP$n0& zu6g{JW>pJ5I4|yOWI5O#+A} zdf%-+tWGHWZVV`VJ}I{%4R$0p?jS6d*JOWhuZcF;iMn3zdQ3JdfZ0-pE1`CGQlnZE z_cmj{U{ya%|D=jfhKX(JZNr9@eKj{>7cU|~53$uFfw)JyTI%Csuyxx=tN>4#==w`)c z5o!072w)2gNivc4rYuE$?fjsNHah7M&595q^fN7XCZ)g_8NxFngO~6C0{cv4&7BS@ z5JE=A%b4UUO%nC~eszmqkKm@1W@bLlE1wYs6nj2Lm~OudTQUY*Fe4%NNd^47UQX4{ z`vP+dcln5f09Q0lIl_}|{}2<<77yf6Y|fZy;ssnq{Oy;1UwQSf-Au6`BLuY}v;k>E zizk4cewN#~h-+RAWbX%Ot@o4D3f5sx$OJ8@WN{Mv4O2vz*SH8$`~CP;JzWq)oRz|2v{zEstZ8w@@OC7j6Qza^S^lUw8j0p|D}hR`D-F{4 zY3c~Df(vyC0s=gOmg+OkB@6tU0d#8|cJJJ2k2YHU$+S@=b zJRRD6VQNj9iobS?hmzZ3Yv5gAr>E89#s@qjK3r}Dll1-!0Ny@H+6h9DE5@sSOP3$FY1aKuvCQ~c7=gpYKh7KzRrv%h~pJLqDSdE9=MU2xV zW2_Wi1nTa|EX|*jrSD@ejZ)@ieSPJ7?y`oR9eIBED86#9sm9~y#Zj^@vO4&Y?<*;w zak{8_#6PKQ$^S@ZO1C?*mfhF(*3Gc;Z~D3>byv+i<6)VZ%93Oy+Xix-c_~7??``=E zG_5*tY9UC4aBn1g;ni~dr2)i>t7&?fD3A1%@QvI|p`V@Mu|M4+H4>EA`^xxd(Q{u}NrMQ4(2 z1IQ;CH``OwXd`o5tt+h2C{Wh5fzPm`X~^m-ibeQg*}yL&c)CiEfg%(J$veC7sKIbC z6BFAMM#hE((1m%d;PG^LKzTGLFm&%4Dnhon9B}?v%4o~;+1ntHVPE3$XVwJ>TRMd`Jml(x_!P8bNdEOYM24Hec2&v zQ7V7ryOsyDGgQ zf`*0%hlwR&ooyT$gr4KWB689KlmfHM8T1uHK&gO7LLGTtltQ*T|lVIbm<9zM#-8#Mn z7~B~;EqyptDDp=gS>D(d$->cqAqtt4)lCpALE4bN(}JzvY?K~+0Sjzy7$?~(BtuT) z`O||usv4D!Iz4{gMS8zIir;w?Gb!Pb{+p|#DkoZAIQ zS;Jgy1iP^(K|A4p&>BR4&8fb^bnV0BoV>t)^aWO0u`U_cBqgpXOmsCQ`^7K%Hwdyl+PwLI8;Pat32;Cm#`usj8+$Z?v0go4EjWwmT4jDJ#kHTeLSRjWTEN_(c&>rq0Ij$7 zE?2XSSdTunxKLLh#mB`{J@jD#_ph$cD6vU|jax+CPRAp{k<)cXZ{aniy-Ih!KN;`lX@v`V` z%#*DU_(o0vU!&u~A9b1Z>O^!KQZnV#f5LLLzq34uX+Op)M(ugKqn8a7=$&K=b(jB2 zP&z5Vg|(eMh48ZVf{TKZpRXOSE~u&JJT2RfG5Zp;Lpe8lieHKfOf%dhK=rij{?~sn z3-2}|->qdnTG_K90rN8eKAnbMj$aI2b?_gC=%;zo5x-Kua7RqN3 z6oxml5Wm)9^Dn3of!?FN)zB(SOx5H25Ci(eyl|Wooto2rj%I`TK8*UO9<@ZLNfE%M?U!#H z^GO520z-267k@am8weAVjUSwVA;VIQa-@;q0wB>EMr=FC2|Tgnw0f?6(`~?=b}rRQ&97*$yU18ThB8>Kq(I6fr4LW!m@5diJhOcMy1Ye@#kJKoaH!(k z_lapb=>SJrfU8z?Xb4E)>w}kZjWE zQP{PwW`KB_W0WTpXZXD~ms=eB7Y1>@fDHP?A&!XPr-9M#))Fv;vRG(NeqIKC6ygN{ z(9+-eR@yhLJ1>yx0Sv%@ld};>#V&JDH5I^9d4vVE`iXkX9%1N7q=E%}VE9mr80SI4 z4^rTthLjMq9yausS7;Rtlh>tPK3ACC<#(_IIv(+Mf=nLd+^NIoc>uD;y4K*zUcI{9 zG;}oT(&Z^Kl0ie@Kv+0)JZdBEmL<}CX(DM?me~`PwoW@>6yf47f5096mX@X_%mSm1 zw5%_D{UvNkA(f2YW0rAM5F)gvDD#G!NREX?_8jJtr9~w!hW|p1X@>7|z?(q=2%iKz zqs!b`4T;TwX9-_Q#4@{Ttui_1P&pD69<0)RUD?ty2!&Y3<$I^DqD-NI4Mv>X-eSxj zC@@sK;)?`Sn-oPfmzZb5ZYx2>o#YBmdm+GFQ6Ktv(bC6M-npC`T7vMsgVQ_Zz$EgQ zJ*7-35@QY1qh$6Kc<|c>V`Mwe#|ouwet15yVz;4;aZCjYJ%Mcr3vwm_A>Y*R^xf6H zsij&?Am_YExA|K6Z{`yVN9NJqTBeR}`p+Vg|&sixHsOXWdlWeoWBaEWnlkHX!h5uyI!YUI4& z$~j{FiWUs;o9}f!UN|&JTriZ09CyW1i$(Xe`PE+yopI=;`l*`vHJn=QL8y5*Y&G9x zf2ZK_{Za)vpsDtq_24N-9b1$l`&P`s8%X7dAj?!YSNk7Hn$s5-_rAE)O?T~25Y$3q zogTHx?D0`=tR1_zEVhdEI!1vNwhZ@W2QCyb0h=*_&z5QV?SH^xXyLGw<9USL{lbh$ zkDY!5K&k?eE2bKNshNIlMH~i7ld-WpmD~6$N7>=nm=8F8bZMx6#yB>8FCFtwwm7~x zfXoSM!(p|#QX6bKs9zGI5H1K6B7FZQ%~p76);U9{QZEdaQj|LDIQ*ni9wU8o!~F(g z&NbwJ@rwKpdm^K@&Zlb+BY);9Rig;mfZ|5+4dgL; z^_f@~(RwdS2lKS)PB*x}DS?^RV|C<<)t8Z8!a@U^d(9lZzsciYf>;rgYEh#e4(X^n zyi30@|Um(}4wt_5;Fy$A3Wd}dGRatEq2b}*=c%A{VC?$)a; z!x%a7B|khc&vH(2`X1zF|0VOY_U-BNU`l`7*TMe7f^L_g=0A0^{DWba%1qpmFpJsR zKmoQKLyF$lWHn&9=_;0pJNs_&CVFWcpq}20P!7 zu|#WoKxeZpB^L-d51j_MePEKAgN9~^ZrT(JlmX$sw*;)urUN`qeA;gb>b~PjTy(@6 zgDQ`V_i_dVFD4J?5Tv5}d_H~se3>`v-+J3;<)ifCWs&gOJ(-5^Z%}L?C$^K?u@@cP zGS_eVi)<@&>+uJ|(~CO73$|4t^TA6|-y@G^GgiJY>Jr$)GIt)?tAFY!6-Z`L<9N_G z3R~;e3|L#4gvcDLzrEBw9;QyjM)R23hIoH#filP!uYRcvr~t}waLYP{!)k1o_v-7o zvhuPB#{&idtVon33E@96Vsd*d05Tkqt!V~aWenvAZ@HBc_~1>^vA~|x`;!*==t<89 z7~8%z?@kTAQLIiPThCd>RDYl(xp=2oPwuEqouIz4PnjMps5XZo=M#$7YkMS4!p-=7 z*4}C;Fq=2vz{b8mP&8#m<^-?o4&#bd+U;fKhUm?VWJTjgKDJmJlswgyOA~Q-yI4Q% znLnOHx}WBB%Sy{&SIt@07M~5oC?7PUCH}+qG}cRzE7bH&H+uXV|8(0pG^H-h7toQ3 zgrE+8myWvqx;qWqlw49x5hsB=u=dj@CTZxi9A{acrpsLxPnOH$g1rn#V6a=B2!#`Z zrl)u~o{KZP8%>Z!;a7P{AG;o6a=jy+>2-stv;igH^B(G;eeoN%w|H=JvuMJ!j9DNc zM8feyKlrCXMst^Z7mCP1PkUDu8@@l}#24oBIgI;VCoZK|mCKw1WVqCC(azDgcY$ux zmH9CPI^qiD)&s(%ockq@f6QRcnn`TmT%g=x058jwX}^^Jm}@UWX9)tV^FyjPf{j3r zPv+p;P#oy%@%H%(Cr+cJ$TR+>XDEy+A2~#mdK~_%Q8SdhHt-%nq+3f=0tBFUe1{>q zPqiKug63UjzeMo0Nu*eVOhh)vnc6=xnsr%R%;x(xJU$R^=43n@Z}C0 znabCi;ai}?k=L-@$4vu!HLF(wuw5TaT&uF z(`I|GhYaW4AHL-x@fMu*0!JQ)@7y;WyUaJ)0pOD($E+}|>iT3TQ=zaN^uSbIE2 zbcBD)Zz*|8+^TNX0UmKR%Dc_38x`!9xsJuF4#`QdT8wE?daLH3PQ9M1HrFvW?(5@z znd^(+SUD>gVowPkCwTcq;nu5B^0K`*Q-B=L#gE||YBz7$p%I6p|5&hBfo;f8HWra# zvdHcC!N%AKL>boKTyDr!lE9gCI2ZHCGjyIp(4Ps(>#sM@=ZK2D-}DBZMd)QfiHc@I zF>I1WxZ#-cehLQ;N3!c{T(em6W7U6~;DcY%nPFCM(7$W}pF3I+CW$9^UKm~?|GwYm zRvu{W&eAzOGEz<3_B3_TCy%2kaM0Bht)UvU{OoiY$PEeaH3>S?xi7#@dSQD0ZYg~n z5%$S>*`-eky{@E<)zgxT2XFTCCN-4n3|+St>t2qu!}>GW{!DDmHl>Inht);c{s|BI zGP9nMX0&|bj8ZY>$98kumfZk)8leD{X>kW3C%-x>l*s=jGTsfFveEv$IT#Ov!+2em zV9eRgVuLP*ZEDzFX%jt<8fb54WOXk=q4LX9i55bq70O4_yC@|lk)&W9%QECk@FQ3t zmSNGM*79C<#D_}P332Z*L0RL;dc0iy=B280xjH&T(+_{g-~$oFHhzC?u!k>aPs4lV zzcu`fa&yqpin ze2j#%@!LTU_ofD5pTlDY`^~sJb7r-IZjYNT_0DvZe?$>)j*qE3^pu**CT@NK%*~4e zYIToRZjINm|;wPUWevZo{iiB$XcO0^ zLow2N)vqkF4{j%f8^wyiXUQ{@uMNJRIY&4%Zq;+lXX#Gsf(%V&S*S=rXp`_R0Y#XA zJ%Zk>;d^uo6irT`$p%J#EGZyFy34*@e^cr>#)1qJr~rY*|HQ#KL;kL~#H_vmC)mOT zd92;EzczWst(|#5=ERXPuLw0^6g?&a4u0?V#?J^1jX4#Np7#-CxS{=4U%~U+dJSyE z<0hX-(fBEu9u5Tg%Q&)TL<_yTh?(g1HGwIFPB;W2_=E_sAmo$wS@ueJS5FJ3lFE5; zt^?_oH?AN#Xna$6n?68-SY9dNd$Mf&UV!Y=JUTtpFZFr={eFa-D&_ZHWK)2d{HF!{ zwqrU3KCG)6UVXxC5y@9k&x~e(NTA*n;PVctvWWvfeK}>#{umtC8>PN8uu}+|(?vta zki8Lkc`oHHZ$WI#J+emQhqEnw{?|rxnQ8{@K12B}6tQz#9yT9TLdN8TkW_fa-X@}4qHDD9b}05JI@_A#tfh(1<4eI_`S|d zJ0e4~=!FJoylMhCFgfTfg*gCc1Zvn226!zL2s7e`jbpLYGW>ub3ZN)*>AjPUEv)xw5o2o(c@PY>~7w*BEyWSLRU`dB9MUuD!xTy~i%se}BtxyZy)+WBl?Koxm|Ykszx{THj}?KGL< zFn-LF3y;l}cx1+H{O~u)d?i@TR$ipWpt>-ooRlTjyZRtCAKh+R6|_7XAknrcR*lZj zln20Tvl%k*)$>~z?B^Wjf|3R0sYGxu{M&zoa1ujear>q?JqKM4(N17f?_Kb%&Q4ce zN4sO#7&gYD^U!v$xw%pjL*fu%Bdh&}2#m`-Ve2DU^{^nnrx`%7x>R3iAy3fUY&&U_ zWuyIW&Eq(0eF%!RvZAGL{S&L2C5$y!EY~M*7K0(ZOxji*L`tI zy3J6T(|9Bq?&r(TY}l_DUnHC*BQBno>?w1=NeLPvp=izOA#I9AovBZ}I+Yjzt0_@R zwg;R8*NA=Fx}o?xUdt;$&}O!`nDU1@z1Iz77kw;=`P0{H8UD+Hq;)QX?HzGSyo-Ak zh4uWOx$3m#f4vB&WfpB|?V`XvcQ?R?6Akmh+UJ-V)rolVu|L|gjxQxiYpif)F2{Hj zgOhYb1a`Sj{)yktD`%a|?@Foe`FLlDRykYCh-CwI(z)f7-u=3;D)cE}Ce4gFZEwM* zx#cEaMDcI9w#R&IdydI&OFHMzjVy=unD;q&e|87P4&6-B&KNQ;N}ruP?P}+5b~?aJ zWxy*pvSlp#pym0_LSD9xd>4Qv*I}6Nwh{&e)kgTQd@KSAO~impie-?Sry78c?*M=U zdL9$QoXuv_L;m*N1GpyApfz`8FC*Rk%xVRCIU;yTstaQ+2KKQ2OzJx}pS&K*_N^y5 zU7fA}KyBAVa%$P|ZN!y*nmhqYzE!tzDx~b4XUgTZxg+qonRh)88}cN;unc(K4?hl7 zXw*~gE2^K&E^ST_J}fI7vBbUKx3`|i4|*6(WNWunFXZ58Ri-@)I}dwHy!P2w9ip#r z$T>{O7fM#f?ek+VuQPX7Sg}>6H{TR@>lYz?>%~AkGQ^(clEC^vySy1bceQsFkILnf z5!-1-R+8_#nkb5u)~y2vyWDA|RIa+hkBxB4Oi9Iuxj06ucVB&X4a+7!C>DRr%gx~- zl~c)I8C{+~@P24_Ao6M?G4sU^KH)O#byHY5V$2Z`9Sd6A)_UK8iF29Go3k$g-zlt_ zq|aJlExiisPZ=8%hmVWy<~8OxMPOTC)$`Ah^Gtuj#CxvU83b?Z#AjxVS>eOJ^vYnz z`|Edk&jVJBBqIqTRyglpFZa*0#yKh@(S!jf`p=I!s|@|!uzJHz&4e2Mw!uSI(q75R zNE`|j4)@?6+v2B|Ds7J_MMP+Gu6*TW#mMT`5XvC{i)^Bji^>Dw)%GIcJ>Y#ACH{nq+Zr zE2L9e?$z93p)Y1VmxIT1pnYajy!x=5s_STJ|D@V?9+P>4SrY$PJ-~}?QjbjSE>q77 zc6IyNT4a8IF*_yhl}K%mlH!F#xt)y^P`X%-u^MS_0s&AANmCiisZSMdhRR>Zp1!dn|bNJpB(O)-$41 zELEt~q~d&0Fd42s!G?Tyf)Z%@y^vp@0WU)7-9m2c#hp1(5gH`@k-N5Z5&M-Y2FuWoTt171tXxOUVf+nG~q3IV+XwyAlU#N&&RNFLXG z(X~Yxik+^?;X2xPVZ2&poq_{j-hhVU>^gRR6<79@B6N<#w30+}6!Heqv?H~LbCIA| z9$askSw0(etnrB;E-+WHpwweo1v<9rsQ+q>CH79UZ~ya~S$+2Jkk#PQa5+g$KaOko z9qm$nYe`}ITVki!@;l!#p2L9U2zd^6ar)VcLyXm|7 z7&QkFT?31{g$%y$<2zr@UfUVo3?Q8m>g8xM6G^D)PhsYdz4|3aJ@2!P7ld92e|<8! zI>31F09Sw#uq^l@no0el9GjZuG#E5Dcbu-ye1K|!_!(ISMUAz`9PvHLa~s1F7+bf~ zXunS`{i*aFW;pW^o(hOZARrK!S_c_9Z8`X8#rjrS%0^Iz2Zb^mNCiWD1wPInn|t68 zBmhI-J>a{1u`d2-o^@{;y?G@yXP)gTQZq)=D<&$})9u=Wfq`%^*z^8NvElQFwzr!_ zy3%`Cak~A-((_@VnFY|^Da&Nc;)izUNV&6(_gunU?p05;Yf&A&@0FEi-D}3^Y;P|6 z&I!VwIELi?mZ_`G)ApxtMyEX`i;J(rg>Zun!>_P36p#>a6_F7|L3OTB^q$b78>@FM zg-TQNm`U^X((S}iNz11^UC)gnMb2k<-1+aG*|aa0?Q}-U4A>fs%SEWewt zQCW=>DKUzkJZ6vEFH2+JF3hGC+DQfQr2+Daq&sppkRRYQb;cw&_j z<`%&oQfHPfMKyg=S8y2U>p6ioXv?qCyUMSOdZXmE4H^^POr;3=^zX+XIWR=4lF1r5 z0VkhQC*2N7CXx$yx?YC?_(@x&!V~|qCT0H+&lCiHqMOa#PeVm{6U;=`6Pqr4z1hzi z@I1TcbJH;>3uheOE<&j3gFqO6MW0C!S`%MBIz{A$KVkTsSgoQVtNmPjM!7f=jdAd* zbkA0}fdD6IOhKY>URKkrniF&$$^{Lqz%|u99-<~=m;$__DrD{E4WX5;=-U4(yKd}H z3sg^$w-uYb3S*zZwHqq453wguiYpfLkm0vds3q18)@;KN*;wDt$eOtwuWOd9(gQQ8 zM@E%^x;%B6zhbYmoa~g5e0v_s_>K)r5@tv&;8dS&DpheA*!9o*dn10cMc3zo zh`boBwIJeoap9Sdsb5S6xBH$lz<}_Lj)p0+y$z}#W?^A7RAPCAY+G%kBj+93>%Kc3 z@f}5B3}3|InFJ#A@tyq253FpH(!ExB`OYWF^Q2;>SR6Ot?MkDD`<*^gDH-P(@<~^kkbwW-tKBi@K1 z-ovj|kj5`fPzG1HlU!xo>7zud&}OI-?%?XwW)}0P1_(lK0uu*5OZ!%<3>AK89@TQD z7tG~%0|Ul)4bCa86JhaT^Xm~mKxeqFYu3L+18hZ?{?JSN{Y?(qi)drGshF|EAU%H~ zXM@CR0(fb7C=FU(P&pUV)#BmshTnMtU!E+dEIwa`4fy^Q_7X;JEe94O{n7b2g2^H#pp>0E2zwhqV9GrFx-_tDImuv-Y z=kCY!o-_ItFVfQ^bp9u3TjtJ|8S?}^q6T$61OU5yL8|43GZ7;s5XrB8KQ=VfO~1>9 zS0kDVx~&5uaFfV6Nd7#!7dE~Dy(C;fc&GZMLI^yzTD7Eb99W9?d$09sKe~|tk$N02 ziDm8|xN1)7JV&qX;PzHaE!Kw|lk5u@3-F5b|}Y zPEF<83?}ipt?XB;i$#WuyWY^(rXO>YtkSsO*5QOh&?Dzk6yj2zlGs>BRAZ$C57rz? zhW+7y>WP=~hK!GYt-3;1M)7d)J^tOOV(&F``!b(*k8d81apVO12shS-R6!OIpzI5; z#a_OLp?I%$<_wpbGC9?>0J_k9e6w`-^?3Q!-o{C0cjd#kPkg%*i# z1EXYq#d;yhm+WYhDHO|P4-It8>UxQl5{!Bmq&}vW;!|IAGMxnrSfQw3*{60MoVp?}^K>#8*Z`T0S-~%WyClY60Td8;)iouE<>*el zFS7}e=fuIiQxL*=8;LI&ad;g;DeIOlETSMNTFk>wpPhl78E8&@8;#|{l$#b}8f6do z=hWZ~)a*skJC>0S>p_^|ded&1S1iHew@ic+zhnWJJwJu$NW*!S{G=Q@`=SfbhnLRVw!pLpITl?N4iWYti&J%Q3nx}~$g)P!2(g44m)JLkcE{~G;J$H{m znz=c^j~^92ZBj+C)@&@(9OUpLKF=Q)ogZ&{M#rUvk?R@*xAC2fHED#o*a?uopB8g{ zq4G;QBtn>EI%r0Mz~(E(HV=2x`PH}xoumpH2}n@VXbE=OK7A&>JM9lrhc0nf%{o^n8k4m_omw z`zBGXoH}1HxT3_AGjzqgG*+Gd2+gm(9_iQA-yyvw|1s4;Y%*X>#oP;HXYGkf@AXm} zd+B%^ti@dYR~wV~L`&I>(BtOd|6gXMr)T^z;5xAASAECkqM)4oD^n2?6WwwbydbWK2$i z)0EEfzq8ln9HPluE3;%rB(WXl*T6p_rRmK_X)lfz|JvcF?!)Z~b<+`sJYc%64s z2C~+bq`)3+Ad*|`*#K%g7%?Y$a46UT;vJu4i0~kq-E$IcM=y@a=-16|@c8DLuA%q6 zaURKhR4{r12=NYN@^}HQxcuzJ0i^#)(r1`bl9{!SAn`iW2XMn33%f#YR`*lQKzI0aO9kXLweKvnw$!W{ipl01lxpW=F~7SwzYX zb)@_N3&1D3<*Z8M_tZD}XL6bwrCCqAPI<g6IgY5eiv(Ff4@j1*JlZ?jYi2I+wo>G_<^Q3lF{#M=-99}dKSlAJaa!M| zpj;Qb5j{uCjs-2QH?;ZrzJ1_owi!8tmc0~BM3*G-E7gyXgy%g@@=Dc{GAfDqF&+TV zsH0eUUO_w;Et$paC3VO%*8^^0>A7UE%+KVgd>;AGAD1s)yFqD2A&>i| zsDR1-WC6aAJGbpygSKcym7K_WXs2K&E4`1jsUvVuYTAU7U$az^ZjIBcdI9 zO%U{_gWCcRT1^Wf&f>MGLA@j+nI!b$LF-E37kp_^T?7^bO-XJRzFePA%Enm*~`=D;o?_8 z+s(v8-&;(G^Rkk8Z)4tO+v8RO+$0uHVh@lY)2+zW&Dfm~|6Z3WY~C$l#ky3Ht8SHX zM}PsOh8gDQ5@C(6)}N%cg^{u7K(?c%DIR`KBfx!(5{ONE@A-AnuAQzTlm4*YnYMA= zKm}m(-A?btjIr{o$rlG}vXL$_r!0t+nlC!HT30k(VaIUKb#`m&KQQ1?{pZd`iYwt$ z@w={jvbHcZmhT$BW~0R`N|!8fS||$8Kd#bSB zbs{5A*!lP_%A8=oW~LPajva!NEMy|CYXB$yyIEz+KauhlnuVj>{5NV_x?6@896jnB zFUYb$0!UY?w=~IQ^55t`r))SUn)G4JZD->4OHf1fC89~RuK4x9vH1`o z%@7VGH120Kjfa9ikpygn{CXF=vbqd@jgbJdWg9?WloO;8N0fe!B-7hO7E`JiRT7Pg zx;uJA;XT(QEQj75(d9&5adWk8naT7Zy52&vRJT1SLY2dW{?heIO29%djNN{5P?774$gJtxrjrr9&A1Gz!xZCtrv{h69%*tJY#(4+Ixc%0%i>S4yMo^aKrM#T{e z_4BK6y)lcgN#k1~y3t47(8XWLQW5EtQpzSGHLBBQA1U?vD_qiouKlBfjw9c+e@szv zFeXAb8sD#C1O!5ZLcwZill+K_bj!Ym0{_n7$By zrx?4i^lb+KBQi;b2cgR0WEK<9sH^JgP*1LYAE$$Z49Ez--SVU+DrH@^AA89j&WClIjTuX*AubPj;^ImRvVMPK~W z+;}5Ki%6_58;1OV_0|M$376*?`gwOK-Oa}0i$U)@jvodHF!AHq^7aur?uE<=m3^Eb z?5B1_qug=K&?;v3AD5_^#CmvWEPVGl1_pen{vE zHDYnWyE*jwN5$K=u^6UGFOan&ZU*8JgQh+>fyzBzX-d*d^pb*RwjNmwoidF#lxwRT zBVEYfkvg6x`eWW+h4(cRCE`D?7xQ@Q2PB~bEi{#YZ{;9dmyQ;{{&?7+6eC|# zn~8I3P*!P8qg__=T=E-Cv+6*lK_CAze-?wHMJM?>4aD~lpgVj>rOh|h$+0!k3*fsp z)`Z(jfS4vuheRG5p|HaUkAaSd%^34?+i;{rjXS}o=1$p?fpT&Iv$FBhlz*-BS!Lzq z{F?I|an-SVMw;Tz#*zk$py#-}GtsHNMCPa2ODzclhP(WWl;8gaQq`LBsq{Q7t6UAT ze?}q_DrO#H*5>VGa`K=!6`rT6y+?D3q4pHpa%+QczlF$~FoeuZs-XI} zDe}b#PyeO%<<$+|HF9YQHdyUgJ{*;DV^N2;uAtd5C+bA|mfKh{W8n7nLxwuyzlEJp zzZ7eHP?YDE<0EkU)`ekpBS;^dWj_3bEBt-@Uug$eL7<_m`fVZA1F5?TQ2k!cEe5@t z$x2}3^I^Ora{@p>h~+K+vtE7qAm0K6Y>yuP@sRI3IR1fsaIIZM)lVxCP-kV%-&k73 z?)Q!Lv?=tA~SWN{F0_FpL0Y&2kA@EzC4pt3Y!J(>h15k7Ph*nGutd7p4~HH637 zfHB@ISl(3iLnBd`P|2ZCg{|+0RU~KR<4y+8TAVe1yFz5+W*wAhACRUJt0b~u*&p295*ux(9a&S;`p`5 zBkzzd$%At*6D=bbRu3BC$%~c^3qD1|xNV;)#^xzuE%-S-Kza~)5v_oLc`ppPhWV-V z&G$W8m&Xu1kA-aYun1|EO*jmDT`Hf0ZF1-yxGi z>l7G@a^H4`+23%g#}7a_wPrAA@fSpgfNOs$Do(5P6R`zAPgB=Wz!H@$nn;QH_FR=r zn-X7GAQwSAU2PSJ+(8O}H)x@{?g2}=nn&r=WL!7_=i4CDPtOAOmO9dX(8tFre@3vNj#u8a^ zTEsK-v_2btEK}Qlv!#j#PG&O2!K`m}!*bNvRxM&9!6Dvy%2D?^2He)mCEI1P8Z*uh zk5bG>ql5m2T%T`n6$LH*yP7>W%NX&cN_+hbT*74A z5y4kuuQ`t1^)ZI9IS=3!Sfq8dqNY9Xl*x~B6nOtdKGD3X>b&v70}Lw+<6Vz%-Jm`1 z@W#hbc+6&hFP!pysc&>=v`uAc_5{jhmq_ugZS=9-i$ta96EdL3Wj^(W&^C5AA3kD) zsJj2GLK3(rT4ifknf0})P0XN1zah%upgtjRzz^Wnse)hRD5FDoGA;mBlHz0)wkpO2 z&j@Vep&^PxHECVzX}~Na6(&y=BQibHjl2tq$9B8zmwmwKb^mqx<~L{1>@PrZbS%TH zBL{ATx8MolND7c$cnpw-79c|m#F*C8H0(f|rI#Fgpo_LfGh_E7DsjXxdy-)Chcog= zzi2dcXZpWAl#SR#`tsZFOYk7%*U4-u*5{(ioWIIp4jq}yZC|{kfr?>CmEFsB=~qF- zwolmro_U8%{4{aa8>VdHhw$Iv%x+wtUTe+S~>P}ETt88unq4`uW36kTr8oYPc)a#(` z$J5Um4G!vclU(1&)#50%Q9*#P(D2_mbh|hE!jmacA)+Q5-1{r09!-trhoV#gjM8;W zs>ofXgB!%g^3qlRL(^LY#ML!Tqr)(`yTjn_?ykYzo#2{4a0?0U?(Xiv-93Te?hxE{ z4$u4j=YHR2uKeel|UqO{(}RfYd0 z#$rb;yTDhxdYqC{mnbk``nZ#I4F-8O6!^c3aQgOMq>lGp&U*{jXEG{c%F1?nA-!FeV(JWZCKmN9!8YR=K9Oc}XAPtOeVzq7QMaK^$5ZgYAJ{ zwNuFF(Sc`ey69rt(x}q+I^Q~k(?{gGWQu|Bya;QmAB6uYXd;s*+H-^Br=0Nf!f=dn z^QGVDBiVXbUmpPoI&E1bES4Ot$1!N9A@=}3e%QJD%krjxo1=P~wU)Tg*#3-XRO2ih zt(}J!uD0}wv+dkJx2NAD=gBi~`8a;zly3c z5%^>*B1bEsbf4Q=vH+NkFrB6)I$|n9xTd%B|2)%HJcGj z$N;}K#V+6UbmFZjO$Q1HEK>(DjpG5-Zm9*vnN(N|vf|6OEc-EhwPWbf>h!Dqt{r8n zz0=o>0Rv>aai>HAy=ZlwfogwVQl>O0> z`th+kPI~jOyOJ@Q2OSt<3v@S;0MmTm+gY?pT($_JpC1bmFQj}gi3y+|T6ql9k{$EF zNAolO*f$$I32!ooowUz}d2@*SKhz4liT(&*)wa#B#1dCxqXBKsIy7P5JtkoTM?|d| zRpaA#<-(RbZi2$sEMDTx*!zCRN`m)jyvA@}>z99Z+BQPfiB z&x#m?7Dw~5&%r57Est7l*m|a4#UY#h2>3ve_qWph3aiEihpdmilaRxBM+DsbnZ15|V7sC+ zbp5bG;wQgXoe})@a?p)gZyV&EaiRYaF!PU}T;+nFK6GY2mT_PMin5#i2%dv~47z&f zY_TTc+ghi5jV`~lTe#AnN|+PB0;}Ma93{>P5LQ6!_YlIZs+Uw+!u*?vA_JZ228;`1 zo$r!gDy0rXiDCr;Tw4w9z_}1iDcu-alon7?2#2#+*aD3IL_x>($V|S;q9dn~UXEb{ zs%x;yTFobcx^RQszfvvy1jJyPNIPPIVYDO?z#vZ^-QZbxsSoycpoPS1YJ@Q72wBEK zAB5bFc81t_tpSBVT0z6(3cOnftaKQCe){`9 zNHf$TPCw{u$PgKstseX)tvxBy>kuU5qT1%i?}?VsxXDJ`r1OH3M{0W`@Bj{urX=lq zLM7^SgzY17j$gm~K^Lp`?pdNvK%U`KtxL(A^ykAHw|^CBt$oTa#M&XIV6r}lC)96T zv&?Bj67XoEWt*B{m}uCTC)P4KrQx0?-z&O`GQtb`%i7ew_dyqu39d!NQs=HXZ!1Q+ zBAp=E7SMmhCoH)ZjUE1U>}j5Xc4lr7RM(HDgwle={d`Rpcy*{yAsoLlk!=SH2-?27 zM$p+^=UcH6X$NV-j1=8c(9SA$fBRd`QoaZ{{RIF+;e8Y?%SPBE^j5sJv!11=pPfL` zhw@9O>5%6opLXMo`(l%^7iWD|vR_`p!y(OoLesdd*lza@{R~0xy=IHU z{W~n(7?Zd^dC`cm1aV~s*>JQI_Uwr_Da?#}gjIKk?rs^vz6S|S?sq7(>VeAyM2FHN zwLeu9cVs@?3s6A}f2mtwOQtdzFU6&2b5}u3ZFCG4NA!QK&&xmUB7Ll&-#rtw!*Zdx zFg$f<{50EQ>SRv1F;PkcJzl860@S~S}mI9jW~ z*9gxWW+?b)H-oE!NLz~-{|aRibwXXP;7(w@X6kXc zr1{o*IQW*WUHbj_h$f*~P(1fo!XA%PqV^vUP&px!rZ3EPtg9KCiIf};)dc$F7e_zf z*{U7wt4zN`);h3#A7Bt)J^Jm*oH1a^Vv|!~0KbT~XoW|1ljUZJ%Y)N^+{4XytaZvR zY#jGu&@_HoHb2eaywE$dLVrPv1jHD&=IIf7J2W&9yTWJO>_0y_x?waT^URziWZWAr z2jBfrc7Z^*^?(@2M0=-yuZep-Nz_k*NakuHi`jsl#kdduLPkWPasIIN-4JZ?O2x63 z`!nTDkWZ;VwcxBw^t+9jnqBcx#%XD4*~Ie?;VyTxku`~Wr7Z_OPk>_sD&k`qqZ_BX zoNPfOkZ%uMpL}|Byk6k4h-j*u3JJW$W}jS}7B4$BpYkT0CKbSo0c4%;^2J;mPBK$K zu>hPqYU~`>VE@J}_;jYt=Uw~j0Lac~`fqzNjQbyt8V4!Imtr26t#8X=F4p8`{Do|f z5040Ex%2EznNVhfj?%w3Uw^ko8*3|hd@ig1of$JCr+4#ajXItSW$ypP>Xh)593K0^ zPI6bVd2>4}2J@MJquDQ7-*dz-FQlT}KAsZ~LlkH~jcX&J82*{5I=c%I5>}jE0PKjH z3BW)``Gg*6`t+)>+-aVZRLZ~PTji$GyvuqnN}|4Z_9;8-BjI|RHi8G*vk{HYC;+z98*VP7Lw?fwK%{_?$uvtK@l1!3zhpK8$F=)u_=h9d-Ch^yu)!I zZzon3q!aEp)DWd_iA|!~1IZ?}S|SP@9KWQg?oS>B;~eLiQ1Tg8QDHu`MugYvTU$?p z0S(C0id(r9+YT9NT4gYH01CDQ>LjMkDfDIq$&6qWF;nGmz5Is1BMq=C9pPOAzljn2 zA>Sz$WzbJ@LNoEo)l8KUEP1VrmIr;}a8epTrqzyL>}lwwh*YS)Zn>jo^TpSC#qqAT zj!<1>ngVPft+O!*zj{|@Ik;8mf>iy2L7$mvXLIEC%uy zj3ilMDJ%ukSG;l_v$#KZXTKv%e-1t64Hk+EDSJUDVO%x&olxN=B@Mw>X=gcWaRNsY zRkDVjApg4HJPntXvaiFj{-~+*FfX^PB?v0$8Bt=f;2HJH@s|mzZaQtJt&5Nf5 zKArZle^2#hY`W{K@2Z4%sXj5UGDo{H#%C`(d~P7f0O5;cB9E4H*iE)S;;$Ftd1OJbknYMmx0YH$wR`Z1OQuni)YjJOCl&79@HL80u#U|9X>AZ^#O7l!KQb4;d>;0 ziHOwphd`*zSc$Su3VrKIGkObNd1X>Mu#jWg_;a1z{G;*Xk-!%cz}U5Dtb;+MST;eZ zSXI^Y7ariJX(%!HBhVHSZfRU!7>ix4iPZeybIQsx-3dQo5Dd7kyIDD&64^y@2v0R7 zI6RO*$#!7SMspmvKcS0!Fz#Y*sDqwJb||+ZtB);73*=eB6vG(PtEe^q0Pk{oBqfeY6TTG)L-rS>s2cNGoy1?bKMAm;McBZiA6=^z9pe%#guvIhC9JR3`@N7~OBnJcpsBD`M(YHgfX$4l~_ z>=&PFCqJf!ySTojrCxQ-2Ge;V<&hsd{G4L&j#?^B4E(wI6IrmpP+qc_1kJ!ItUtY7 z#`H$WI0G4HYE+?$dbJnkaOj$l_QWhXcX@c#s}Jjs?@D8TN?8gu3} z$&fpw@RxK!k#=VCd_b{GH4wObdzrdr zJ2fsT`7C?0MQVVaf&nv__{Rgd;O5&l5T2HX`>8bAs*b{&j1sDfdF!>_3IF-ZzbclR zK{k*A`1WWu06GL%{-BbW3CJoXp$gCgp~7v-%K@r~J$B=A%3&X3EeF}AV`biVm;T6y zTlg7Qs}lzRM(7e&yOE||dW1SZw%!QgI)y(V+k2j5urnq?7hZR1zxdEbzCJ>L+zn^B ztK>&!og7@yGzQGSVZ+*`Xe+8K6%IcfOMgPf@qMfZZi*m|1cDpGARGf>In-TDrcj^Z zJ-L~XHGI@j7`gXL8d?If43G{3C!i6~?WIHiZru<>MN#Z7mAOwC~B*EfbVPs|VOxUt#$RqXgpT-%=j*_5os|gS4`9HhaBq$G6nMy$(-g z7aK)c|b2NxRKb_XX(z$tp zWg=e4dY%AX5FT$j(@{;L1a1tqd`i}q*-;O@PO5l>CYxx8#|t+mo9Xn>l6?hr&v!7? z7a-LAh4-FNcCFGv@lKEi3D%ZXJMO84r|fnO7!If8IsT;kkAvU@s(dq04MwN0h$4uX z1S#<={1*PCE4o;S*inNV;52YgcBXG*PKTbIi+QupqWDCm0$lR$sym>t`w>fcl9bqL zZ^uU*Xxr1!Ss(?j9=xm02#rA@H1!}^YpMUynSrtzYa3s6FL`ZNXoPJp8yIPU(4@ z3lAnUAVWu>pSd4}-0kb^eaT&l^Z{RltZ;o4{b(^;%HB>SIAtS+vXJFxh_kz3ei-|g z=rbGpq>PTH8n`CC~{ zqKS=h3S=I!1-?c*HtV-dwji8>$9Y|pDRy7jog;`XW%C=!K?M27_*+Z&b{engZDu0} zX>alznbnsEcLH98aPn==3ln?^+Z^FeHJ|Kd=Y1_Ptx-@%Z}=8pOz2VugNka}QOn>V z9OaZ(vG!wQ6oHS9}kHku}m{iN)~kBDBE!ciadpRqFPhU z8Uc_VI|-4>_D>1MC^ayfp;hW6)jvVQj7l6i=Ic_r7sztz3*)d*zm7`v9LsiP+*K*CgBzH?3Y#E1KyhPDAV5JNvrp)714q zWSqEqp>c_iXG-;9H=h6^;0fJj&35UaJ2T5EpHAzQJjlLPHt|WDf1((%{jo{c{s1j` zO)JzYiuS$y4zi>l`%llHcvLF^(o{h4u11R4BhJU9yn&y33Vt^c;t!OXGUMJ%(Wxeb zk$o0D!p0DQDa``xm4;u@Wnn{yJss2KdZEB#V^wO8gKwVyOKfqZAj#gNaF1NJn z2{|2R?R(aMb>{J9QY)sd_AJG5md-td65YnB+ESq}Z&^OBUyyWIZ}zt9(?=SnEX(@v zsG?&DWiJLkkq+0W#_HcRV_YM^|BkK>9h9&iaPP#%`^0*BEu)hFZ7Mq=QSoc9#mEg6 zkU%tV=J9)Nkes#57}5)z%Rx$f5HPf^ErLehq_P^1>k05qLNAp%pwZx zS^lvK5Rtu3kGrF*0y3`fO9AJGqjph=x*(ATbu+44IZ<88UL%5 zm;CEZW19p<;hS@eekxr#8eqx-KGtB$MfqcM+b z!~)22k0#l~#@vzNVVI!6I&oad4u9Df099c{fc-~TJVyUDCrZ(Sd<~I-*tBci`eLC! zu8H=rJoLw}>7MayA3eu?RM0>fFfV+k@2y0C%)Jwr4g_+&?$##4Cuyb;?EP?{gauO1?q@3X)h)L==J?(oWu#5P9ZF=C(%$3 z-}J|fp%wjU{6nm1sh0^v4wIw;2N;7>uw0OQ4#WuGm9tBZjyq~!CNr^o6Gj4Bc}PKY zoRaHmiRNx#NM%YByeTBOzv6j8p-K$wVkX?zK&QeY&`LeYq*po&;>hvxp-==-rq!5c zuEo3PMK1(sThT`&e33*L*50(F`hNC}w*S8U# zhI$@bZc)v@mbMf~nBpfW2Hf^nUZ>`IwUmt)BNbxIevC&^6th2GlNOy&lxv+N{j1jP z3oq#Za3a0#HzS45K{{HiFiW+q(=`~G_~8I1+6ylBou#9fKuNCNEP1<-1DGk&R~hdA^aDBO(qdA z-FMd1| z0I$but{_kU|!=-1;|6vY2z# z#|bdOfQB*fZ%-kRPZ_VQJH!4rhOwRA&lUfc8ydnsl}DER@08Rj(ZFJ&U(YL0|Kh7_|11bJo9 zV6R#=1h4|BqOv@Ix;B1wlTWtypX!$kjkc51^p}_3G9A7JttnQ#P);!B)%Ua}%C-x@K?l3r z7X05sp83pda>(+hNk691m^^4q(eM75uTS~SZaW^;QLtix8WE+luz5$IFhyJsY=FE0 zCWJfe_Rw#VyZC|3oeP&RjVJ;_AJl~&tqZ&!1;&f`Vf;B~aWc*XI z-lM(ZcMSirNfhFNL1H}*XfONy(Z7lPCJeouN|lTtX|b^v1mj~-K4$QLq`>%7#SQQ) zr>xz6a-{3?HB@i7;_hE@{_AkmA-(UEAAG>U2?P#3?Dn1-mVSE4Lhvhai-0T2&)}nd z$>{T=pC7qW22pqG{BqFSS1QSu!oCk#q&=+pFv-9F(M6|xp%E|#uSj0!@0H!@j%w+G zNrCZ!+sydP5#;eR_T$lajBpy0o6KYUgJS{o@NfSRK|gl$eP^xU=;Qqk*YPPldOQG@ za12f;pYEK(qk0(Q>l3$vhO0jxDr1o4|JpY&TVEo>TT@T9__XR!xQE90d=Rbg)mUnb zy5SI#B+qX=KG`d@@|)_#Q(5+EMp$Bwu=2C&1HawWqRvW41En%LB!YKH!K*WCuT!0g zF&qeY@)9CBDqpOIWw~Apo-z`-7|=V#3S#1GsbF=KWDB>^Zp-t7{qwonYb7wvaZE(WPZ$9 z56UY+aYSkG){AcXt21`p&R~1_YvF~LBzHOL$#1pCNkw=V5~~%V_cnuPeKGz?uzgye9iT8=xTe0gt7{vi*bK}*wj3X zw%?bi2Q}G@x7`v0JlotT^rZA);2CUIv;}CQy!NluM^e8H5|7tMcCA3Eav6DEVTXhV zY7meB$d6e51Y3pmB8!{w5lzI|$-*AS`<4aL{31#m(587S9L};#f@<$+T-Z{(wUf%L z>eOfAM%!r!E>nYeNuy>&PGTdKXJH(DIkJw2r+CBICo?NBZP3ZPpAds_yG`N^IdZ>r z4yw~K?$Tx@^^r5~UZHy6LXr5hM((41SI(7fZ%;Ey9NbhKf>Tl1V1!pw!gR0N%b*j= zuvdJJ`!u)zIVn=@m)=sl5MI1&tAyuf(CpsZ@-bNeCfx@Vn(( z7VfeW3+y*tWPj;HruGDrrr~aFY7a9n!ObVMc#=M6~cq0y%d<$q@XK^CR0;I_n z7ApT=mzDd`+W{}}66wq?R`|=|bezTu6o1~a$eKC@pTH?`ZCwFX`yKi3Zc{_~=f4%- zEky1_{EJRY5|-%?gy2~_MP4jQ|9>w44}C$v=jObe{Er_4n-f?|de&dInf~ohOi5l< z8Rs{UOT+8Tu3)o;yNI977(W2NYd93K`)eh_U>J^MZ{dZ3qAz~&Q(~WH?N^Np_s|aS zee3&;#LkHKY7AX;API9beQPYHzD9QJ8&V23h+$%+Ju0@;b{UEb2B#VUE>>L zlE?dIj&3nAfHH1@;CgwBD`K?L1<2LzcU@h>LuGaM#}6#pT`ntNKVs<~trCqJc2``U zLn16g`kt^ia$Fz>Va>HoB(EJH9?Ru&-+e;T!jZ01&i-xtcTyx%x1x`5=_9N~D5s}+ z_K|jOv?MC0V@N)sw36ghY9|-!yFunUexE7}*_uA1ql?WTCPdje^J1FI4{Tu)#!tc~ zxl#A}mM`dL&qbvJ_ZsmSD;$cys_l-3DjjZ2Te~#imxI5 zfFRNWKvY`*j(a&G@c~WA;GKN;iT$qC#olca>J2>oORTuC$-gjO*88F{{c6{uzOd3{ z+hqWySJoz&+k3*Gp=dzuOzz9!qAMDGjJ>mPRvDR}WnyQ5PH7W2I6xDsy5%>$%0`F2 z5@aM+l&N$(@a=w^<>_xe62~?xDx5oV4CmrGLtBaa#HmH&ZR!7zEu9_co{T?NwY!UG zD*D~p%(x?tj=M{C0z%akKSwsakrH)YE%ldj8Enk5>%dppRl%~`VURtW(pZq)!QdwoXz%qvkFnfrgVN}svp#Ff6`QJqsEvg* zxgIAGPl%`ko2HT^6yP{d9pGbL{Pj*t-0cS%s#^6OjMzsmpO)t9@_YvY7^i3=R#BZ3d*eTH#M>1bJDcY@vdb zCsdxY=)#cxdjB>gg6wkFC0l+X}HaiIi&e%_C(2 zG>~i*x0bh~{r?6Ab;&Jz=PpL7#3>$3NKf#b#>{4qa+hSL5h-Z^k__18`R?#M5pR=^ z5wa^w8^I9UyNH&Py7@LLIRr>%`ToDN9}VlJ`jw-@1_W=AZkpCWZ{3GUw|~SU|GU(C z-u77>#8V644eL$#0@xB}C$#;+O5PdRM&hBTZ4iF+IZ{E0>*Q{NjjPstZlT=e7Dm!- zXPl(1wvc+kTv&yYjTMBCB3C{6McB`_)tc&NR!Y?gSy>K1Rln+#Tw;ee3Ob#qOKHlS zc7~e9LLxS5L2MOUm!>AqK?YIng`)am+OPh=00=o>pGKvba7Xx6a=dUDe$T>mb4+OH z#i0-F_76*Vm9~_eo#^4&Nn#~FPP%#1q9d>s=LiC?Xr;L{)nySmYmaKr`S!Wlgr^R8 zZ6z?ss{ZPcU4bj=8fTnfcvC+_rdX!?;f4EINJN%?ExT^wft9ycUM&a%Vajek7zdm7 z0&3_p6V}rwkxA7DkDB2xHH7khUMTgFEfXkS#LcN~7j`wF(@)P#9N_`uIPP40R$5(> z9(_VfKL|TL#Vx>*Zwe&isv6sdb%rw6uD8w~XxY@2d~2lRFu>=y>^S-PSl9sj zY37xF$cAZgMz~o?B&3riAO_TFB6#VfhJBO#N2duok4|3#PvT>I_`r8pH;Y!LpzAIT z?ftBzv$F%(x6XL%w;n&EOwGefei7}(;>)%VA<{upx@8Nkkea|t{x{XLIcXwr{Q5d_ z$hq6cNDz?HPoTaf;L-Be>H|T1B^SpBiDOBHe1=~kSL+Y*`wM{LsC{+;0j5zDxyEUW zI0D$17GFk+x`OuVTH43~iW9=>8}E7u>yH=aS0vC#g!mbE5O*BMXIdzGZBN<}h%X<9(B-;GQ8{QziOPAVnsK2u zFaBA+)r%Rg!0zUwPOmNejX+B>YNhbzlHInIa<2O$XU2_Dp6oG_hr7elC{cru{NZMA z#m+qd)sngx$!I5ixBlWvFL-hPBAXOd!4ZhwCzuA>Ub4r>KYNR}*yLIJ75A1P!$GeUotDA>9Cvbeu#nwHNKEyjYO zyO^Ozmav{MS5F0j&X>Pkm&d`ePisn-HS-ckGN`sIppy#u=b#WN_i!eD29OJnj!y^I zr^ObX(;vAsg*RVxfEQ`lIL1a>+Dt+@L~!FEwGZ=Skrynfr*e6M#4dD7E&?#P=KnOB z&?(+SJC&az2Tom?V@6{R{M%}qO>$0u6^8ve@}9GZ2U~zVCx0QOu!h95c`#;U?_WpP z(3r6VUlt<~v>Eup>~+1CF1V zS^tVU=ol~RS2#9USIcIIy^3~LC}14UL(qnJedD!)-9CvYU3|UxMcgAoe(3xH=H1tD zl-|jm(svm49~9ZY6IVukh{vF!rkPeOAQt3}PEP+Vs0i=y*M*ui*H4sloX?`D`7g7I zqXEiw1<4yjZ~-EH)2R4eta>sK>GE%g(?555AN4_T~mGedAat2%g-v zDeif1J}iP3S1A4*>uf|F@Uo0HTKm56ZNDZQ6?@0ys2}AFK-Y{~G*OA68~mX-CY3=T zkFa#2X*P;JU-ASQn28yG{)NPnvp>vGUjXuA0yLCPvV49AWUtu)QG{!rgh&`dRl@Q zjUe)7t*}cpvkZ7~8X(hf)z@V@!*3UPLiKHa-JyS0p`ao=Bx%l~DJ)8dFi+we-&Ti z66Ra`_AHouD(u;uo6*JkE5ugrHLG_%lIH$1DCl4ao3OqX0^K+h+NMO8*0j5Nd6BY?!g2ZyivNHBL?f2L|vT3R&g#uxtz2c z{p|8Rh$SozI1frHZFwS(d*RK0N*+k6e(WDg?fc9Jcnloa4l1P5o@k(Q8(4J%6%8?3 z*N)MWty?NA--+YV0`*7$V7=itaRRX%MD-A4LgWzo)m{xR<69*eaGR_Qt+p25M_LIS zP)?QTa>6sBnofG&{R?;qQ`o)+UKb2!Y5Ud`(uEg~|CkFl+0~LVBBmBvG$Pc`JyTlg zw4P_F4SI!SQl4>y!M`!^%E<2P^_W4tZKaXp^6%=g`X|HRzT<|;QVeqMVSHK9aB zwh^+~Rru?(q(GTZ@At5P*@G}(H_8~<0R^4(PC&bBAQW^)I(8DJuT9c@xeG@zN3Mlk&>c5YtIP$VVgg#VrSe{KGX;&Q4LtB@T@?~myF<1V$*`$(PsvLAxzR zqCNUcXZ?v+`;i4B+EFQff^oIEQ~!zjL^hpFrUb9DzP6rO?zP9=9Xml6$_ohtf)$o$ zy<@_{sIPIDG#bXsG_Wham1SR(gSMSjK&f*b3C$>3)wmTs+}xt)QES42k`vL1 za|$K~jHeeU&ocSx;^h8Ll!JBnj*Kn?J?olOE#Sr2xl#Y0P&g0I#{R;1VaQz^HFN$i zj`rNhalHPSlgo-*yEUPE2{Q@8gt?nbV&nwk;BX3fU7KK~tq-hs3!aW^zflTXF5 zyGj0)Gn!Ede7qn-8w)4ebwff8B+D8o!^VWzB%JyO_M0lqvXGK@^CJ*s@NAl z^u%S;IueODb-At4(+Js`#RRwwiqi~tB0n&O4&+k>kk_84`t@QoQ*{)Pm$kR+ z-|1h5zf?5hzfi=iG40#tL+QH=+;5AyJ+adzvac+=-Nc zrYW+Z*Djo?9z~edgd&VWh|avve55O+Ovjr|h*dBhw1YBmB>5irPt;vcN6c*VY+WHMo(f(9`M z;J-UNPyt#!Rn1zx74OM+NbO%zaFN0z5Zr4J=HpFz)XNng4O9$|xN8|0*OV5N_H?B|{@Ecjo*gjz%t-nWr*%ZzVK;05X)SlCIu7hj0d9 zgYooJ{ZEu+1X4k|;xb~EIaK8S^3J@*OtJ1AW*RAXa!w1GIqNnnrUZ2?@C1NTI-vs- zL~{^JLE zvX6szK5)3m_a9gUnn8_?dUqg#`9O)Id{>c#*q3Gn9@L0~kbNcp8$yEqUTa*Q%FD9& zJt{+ri-BTB13P7L1b$SNcGTeGwg-mvlm=gu&ECs~a5TRsPKD0_sPdrv*}zX~!T!^1Y^~@y_tgdiknlo9fQC$9R<{|d~ zjF^aO$B$||2C(Fg4p>S&7Od#aKmwWhUZkgi^e5uilW3vIFjyo21t8s!cUzjYENBez z1g8UhiiN7D*&s2kVvXm7T4GRicnE~DZ(btIf%zlAf-wV)c`hl@sG6%wL1`X+In<9f z24*GB&~W278_ghh%T;^*M&s}wgLRrpxOaP|&^CJ*zuQH6ONmrO*PmX-y|1w)QjoxM zyef*PWvKWP79T7Xb%?2wO^Da@CeEP~h<*qUC=y6JYwQzh_D2Zp6R7YH;%Hr1!nkuz z4As^e8>nQ&A&6$E@YXml)s0pX>-6&TI~^~hc%Rw09={^ON+VMmHmtIWWyPCN+39iS z0{f3*W4PY)|7C>?7hZZr$WB=qGy>-io4&f|{X@e#eLs0=nSefBL6mrJWOD9@id*M% zi=YyH#yBsYJ5(I^m#&4Y@Z(t1XuL3~{f~KOk^%80oWD-J2kTU0P$u!1b6uM^b9>I% zNrH~uM^kWDb_(s0{2cs*K5ms5WgJ3K>VM$VFzXqz0u?tack@`^L;?UrvA$}}?jTA2 z9>Iez-`??%;)g?r`DC7)K$8xy&GLd_8R&m9H+2(e;#`1{7TsGxgWh@c{e9~n9maht zyPV28!A%5-8r6am(deqnu!z75{P0H#X) zbsxESx9lcEdNB_P+D*90g{>H-5ysmcn^u?eml+P(# zEi0eh=kykeu`}13*}NP7(ILW*@LM$Jku|(KM&dVu! zNYra7XLd}`k#ruFw?0(dLg;_mepqjF$H2*Y)2t1f-nn_}nH;+FPv}7T?B@SA9SMWX zCAWZXnfGGD{Gacy!-VRF$zE*7trySSqIz@kE7Jw-7fU=e#v9U51->7dS0wkfUk*ja z>n6(q6*B`5aO9Ow8dtzS`cjX#s4!WjHw*uq-}#KN+QEtGf4vQEqY&%&qs{^tEuxQQ z&p(YGM-}A4ZUgH2L{7*eWG47TY+r)vY3i zTD~t#{cru|6A~0BydA|F6hZTllf41k$_j|`BJclXL~J79OF{vJ?Bp^CZ|XfNbH=;V zV!iIL1DFR)a&73CTD2_2h}J@jYoQ+%w7GB|4X$>4O)~u z5yfniEyyjXw>?FG4{$!Yg2OsM9;I!T;(-(fCzIf!Db~$0^Y4ucoE-<*Zrd56l}DOZ z;n9M9B@p8{>toNI*A__Bnd`ZU?oCqsxvE8Nu*%$ECY_mecAUsgMo=Ozl~2io=V%%J z=~8f!qP_^)~<+O)vGq$!l7_f?sTIJd`BGWG51q ztJ*q&_RJ~;Zt9(BN8+nxYKOo-VC*Utfa9RSRwf-KJ^ZS;iWq>aIRnApf-LI@}z$M{Q~ z1s^z`KyI7s+sv>M?$V_+MGl&7il+y^U}P&8 zss7x&_Td7?-x~Ty?ZJ>(gpugvQjIp~;bB5;ZZ2mya(4;E!n3iC1w1|)KV|p41Z8!J zz`OA%pni51w)lbglPwq^$jCWM7Ijt+T2wD3nMRU(jq|FO;4nekkH1Wm;y>hY3&9PK`8VH)3zqHKt@h2HBwMST?KS1jEm8_cw^_p0IVY|vK6Q?UbjL8acm`gT8%k)A=0VxfKl8phoZ2(CeKuzgk~n$N7pcsuHmHzqRkr6l};=;T9M7 zRM=)S-e0f)FTqxBdkUKSVC}jORAz2+cL+qEMGfS;JW8&uc9HNemXYa#B6xs7KPFWF zc+RPvd6#VY?^~?V$8qY79ueF~i}3@*2q!sQP%xz4Lf_)xfSEX`pwVgiYwN%5{Au|z zqg#BWRLsW(Z445{LABZ}R_}#psT*dgH@b5YNQs&WYE5@RHIRcnAnDc(IV{Q9(>3EKG&Uu~^5^62dvOw6t>DW<)?6X}ZO;UBZ127Jwp zc8|n)X4D#P+ZrN(qr=Tm!a$>S-t;)Fup4)w=tElB31(5irR6daJF?P;YYw~%hjOOV zVF6B0COp#&T3l^noMX5HW`Ggi-ty>$dkzlr{!rbn$L#c1#dOEeVkn`^7x=ip??X>E zI3%|cI#&c3J%L%&&R?2PVqoA3e9BXEC~~}+LYe=zmk}a-&?-z0-l%c)vp^mFg1hD8 zQ{FqP?H-vP6_)l~x_Ksq5kep)W+xe*KnVAhc&x2AKB}^M;gslN1_hh}(Nc1K-`0S^pvE|^hl|&5L zc;G)74WtRG)t5?2*lZM?0PRM7<>`d>Y%T-x1hfeVv;;|;wZ3*~E z^8%s*ikHVCgrLHL@F_V6adXm|m=JhmKr=~%sNJ_TG>=O<0<9yDIEf#In2e@h7g$T= zquB^?Kp0gW?kqbkKtp0kIf0j)3v1QFuIp3H-^plfQyQMq(247jCWq%y7ge~+8K>*W zajyGR<)8KS6>DAvsT?&fPNYDPNn3^kv;e7!5a;EP`Qk%vLddpB#m^|eRq0Bn-Z+-V z$F-z(1ASw%?_7{EJ8tI0q;tVOHQ>X30Mg#wU&dOQ1Z_Gr&=~Ig&Ri@Sl7JY{*#y@1 z6g{icYW6**tcrp`{t-D-@iw$W2(F0Ti`yj=v`s^-NbxONAlLCu2jBUs^X1Yt>wS0% zCT2K-U;FkY0bzl0d^UbU>BRTn{~rlP3M9PK4UN0=@Io1nSx3-tl`Zys^B|`TZ2v>l zXI;5NU-dAGV*%0z3_TiH$ zAD_HrR$|ngq$0M*_KM{M8Vvk%YAL6O3gn)ons*V57AULs*^fbak-b#V)&N~d1`ZfwF7T(*relZ+S3j;ei0a~`r!2X+e$K=qh`jq#QqPw zix%ob<8lMGBgITYXL;!)HdJpAzO-o^*du8j%x&PAf5|RI*=VG0*6?RSg}4BOLB;KV z2{j)f1o+%=Bvpk{B8ad_N_5@co>bl<{VK7ZhiAY9%b2~mJuY9XHhw^cZE6XK{t^Ph zp+%2|iOHKfXv7ohu&{HvstAF9+P zEa;J;mufBIwtPTLFR}Xkq!fB_j=xN}*;2E8<7!J2!{l>*lW(S;yC7tE4Goi^zhl1} zy7&`)z49b(bCj>wvdS)RA6nuptgyla6!h-6r9bT$3%~PKdv1B#IcI-0G!d0;(&dR; zNks$YugKg9$N)K2x}yDmY)bniJp11a2IvqxPGr}|-6O*-hEbt|tTx_pzHmwk8FIH< z8z7;9gvS|KpPNmFC9X#&lUhTY0Td`g=ClICp*?K&_(q4kGW z(}|hKYvV}>03?(NSi7r&ArtMpH^5?Z3BdfBiFjUPvL^ujb2qg{lH<1fBQLsW(j~k? ze4S24j=c2W+<5)JIMO0o+~lm%x3@Ywg9T!keHe_1VE5Z|B_cEG8U(87;JZS%$KTkH z-m{eDv2^Q?ICNp&gIbiGYCcbBmhFCZ?%dnkflIxDTs|Guy&`tAFv zQ!iPCiQkN%(G32Jhog^|`7yFdf61HbXoRd@PjY4px?l6dTaIE=Z$yJ%tzAy=FTqIS5mH}UQ@X1^uH4Y&>jN&Cx{}2f|x0F@8j2#KwguDZB zo+fVSeQ}`yu-xOuj8z6JaFP&lgpqp8IL#eCw$&98f|JI5XZ)Z=bt5rEp>0~6@$IYJd7S#HuOyQE`ET8Rj$$$QQS{j$?YMDa9F^s=1g}=%WDR3U>I3>a2BUA0jTKj|)xiC?2&QHk0!rtcwPr2i^-hsfhl>m=FXc1;d!t$;1rvX6 zrRl_0$%e_KxBAq?=U90{w7Bla5;X-9oqwPjIdp~2p%`EHPeK~9D89WWD^`4}n5nH} zW{*WR4pp4@wAXL=6JP;0c zflTG@`+wDZA2*-#l=s|3te2<@Hv=Nd+$wk04(L|s38|$acVO7)Zics%_j*q#pQmOc zZxIzX2zq`2YtYizA+1vu>5Q0Cu2~n6-@}lJ0ddKF zCc<*@3j8j{HlfV&=!FC=elUDJD^c?S#QiYkjn0dWC+*=lPW9(!rNszDEdYwn4+_Kq$Uyy|lx8^Sb$#&44K8k-6{lItl1DTljb<76 ztP*`p$N&vjDel|XKLrczg)JR29j+OCM|y{#2DD~WiZV&OL-LhqgP^I&S=Vqd`f#F*cWXulODs!F$H zv*Q>VsF$Ed8KE~Ht@k)RFy6og6Lu};A`~P${ljq_xL|;J2p*M*+u+6~=!G+IB5#20 zploZ{npDMdMz{hXw^pbyl}j3X3%sDE7G#-*mTIaf#g9(-1@$&L`oB2(0!jbo&RtRU{v%|;D;m=J%h!=Xx_<~s8l9X3hJC{C|Pa0lN?*KcRRCsfNA^7|H6 z=(w0z&@(}&h27?;{<#Gb8ROP3MEi-;2qod_NlCXw0?6lP`Bi>DiadTxwbi`UU^c;f z&f9JlZT@^NFlL|Nu<%EHO6M}|OiU0d&hu{`7nmClz=%P+Nh*!Z$t15P?%?aFhefuD zx2;ZY4K=*Smpa6K(a&mmcX5gmML&W~ct!RexJ3zlBYnV73gKQ)m-qf#B0IIB zA8dhg`nE;%xr~r0EA>!G%jqFgJy7w*3EF_KGhfxsy?Hz(Ia*vC*eLH)L-6qG`7&zJ z3B1-4)no&9uCW85nMew;U7RG>$B-UBtDFH;4R>U@R5u~ThCB^ zXOZ~*CHy|ecqRWu5DS>I`MIhgM$^Yh3ROe|I5C`)jUt;_Rbm$8a)hA|&iih-a7-x7 zp}riVFaFNqm1T7=6QSzN7P0>^8MWR^X~A~5`HMx_I(}_>e!(Y zD+k_~G6|uyxn0ZzAYsSv#e$^BpE}t%R32$byUDU#g{~$GiQ2$uy(8?o^w59OFp`c@ zbB~q~?vmo4VKCX;ef0IukD%^UOQmxZu za3u>=65a-k`se!p>a#3I7;8UF-!fY;HuxLl-ZL2A6Kkh!Euo10@bC6~zq^Hr0Yl{P z4KU1(0;5{c@ySMmXHe-0W)zdu;lrtKoKw1~>$nJYNNcs=PV!DX4}$`b^racGNEH1_ zXauu~=faI7On@>LNu_L-?v7ut`QjMYIdG*++^E5cr4oa7Mydi%3mfZ57>ule&AS{b ze>COC$|PcC1zu;&UQV^Ig5vH2qmT}YSjfaU*w>PI?&kAfxL5Bcv(pn(P;#NQh~8}Ix7 zwURxf$6qw+Gp5ZNQ?S*i5_}ruSE`am?}}UXzR0emyZN~PN%h@&HgL#dS`9kZ;Wt*P z6&HX@|G&*MON0iA z?~>K$Go>@;_D-~{g_wmXEJt>X7u+aotOzHR@zcu$X-0M+eA>7pMr>Lp?B+4W3boeiu!dcj00_+=kSx9cPNtky9(Ljo22=~6v zvGbNZX-DjXP-68HdbUD4)u~r&kQvDPU#zztB; z7td^!#Ot_jI}XvyqDBo*O%^|U?KCo zN(eI*(*6rq5qJdRD%Zh+g^x($WoN_q$W@G@lZ0JSw~90OLSvzy8;Zl)`w=`YcJ85C27>c@V@b2$u_zkSEtQ!4AQ zQU(eedd7Y(O!V2ikGoe0IZ*0RpW3)J6d;POUt->PG#--#tNUIQcJ;ZfCGU9 zmiz7{XJ!A9V#NWyYKcUE!RJ~%9`XSXl$UH2{w=kSV3T#jn?dsd+_cE@Q=&|^+Mv>Z7MjwGX3)23d#MMwsCkn9zPk%pzrvE z=-+jbMGAylY8lJ*KZ`qQ0^U}Z7M~pgYSv>b|9X_*j2b`y9YJ4SYPWoNYp*0$Bfx4( zEV>oyb+7*<{eTA{Xh?7jk_1R_WoM+(zK1R~B)nBN`7S*cYpbvWI-v}5!!?9pb zh-c=h2PMa@Bw&Ut<;#y2l=fn<=c`;CUCeeUy7#Vwcj%&FEY~-hS*C3aMo17c{G8<% zMA2f;;T`NNmb9Xtdp5jl>HK1JIpn@z_$BTazNQLDCH|5!!J+6g9hs3+ImlYJES1a* z-3lN9{zgM(mk76#j*AdfnUc)u#4Gz;?k2uW^2<&+pM#~!W;+j^-|@RX!7YV;pqM1a zADAj~?bMG{ThY?V8C(ird?E}&lqWLnF3H3KkGR^U2zKeDk*dkF@>BCfO^n)Vdj-Pl zbBqYKq29>rW__ep(WhyJLxM50&KOoW85nX9H)KGAr<)Am2DakAG~^^i;Ah*1Q@o7n zIkWYhn#|i-L0?6`n=amc8j^LLg(5eweEof_r<=(>>w=Yl!}D}=u_RR(=U;Ni4E!LN zB%_>#r~?C|&7;4k_m4rLm%71EAiU53OBn4CIB;|lQnb~OZ05RRjD6R6lv@;fC*=IxD&<}S-#v_#yDDcV2ooDW{{a{c{S4Gw%82vyAh9{Bq3qO+zc&nv> zRYCvTF*9&vfxM|a3nR0nGJ6wBQTt0`U>t(w60rj9N5->)%@Q4-f~&#rS!TW_Q8mtG zN+yO~{VkrqKV=Q?cN2l=n8NxoJcG8a%uY_*JQ5fFJc4*Xl-7*3BU%GpX2C!;E`$IL zzvHyk3mxQmMBlIv#0&El7cFzAo0dS^6R{@{=t?*1$(j^xii`g=CfMa8(;b3_C_rh? zx&GGyTCm$Sd39)J95(ZxkOqqDZe1erJwRCU>(Vx^L=z+LkxrVcaUwtVA7TAZ5kfE7vA}DA6#eiA!m_+CvOS#R zk~wit9YYdYu(@zx5S{T-6x{S?JRVGBZI~smeM*&UzY&RDVMJDSHz0n{kv><@Dv(y6 zKNtBkY;{|`mwIsYWC!DzfeDdmDcU7R!Sb_LOG2hVu%sbx90D~CA?`;WFdhovzj|_O z!pEF8S%E!9fH!;m@S=PK2*ZLnXZ|MIlne`*zS&jc&l`>0tTd{+r=RYgcDyR%r~N5Ts=}s<#vR*IGEMvx^1dvL z_yLt^9k(Y`M2s${R<}zzdNM=*je>0I3=-ot=jtv31vvmm{(e9j!JK;?$JN|Fj5|=K z+OPh$Atwr+?fmFQzLcZN_N0{pHA&7BXIu2gr<&IVseLN%`i z1Yyf5|38hi;=eB<0*++-s;_r>5s5syKGjK3WmlbwHBlCj&q(rbhJ{sm>6hrwJsd10 z%2NwFYRJv{7c%HuM9*;m($&&mk_ zE)socLgs+*A)mQl=Z}$GzUVqAy6{2b*U_KLpbmi%EI= zI#|qzkws&9KZ!@Zjc-*m+BqB{wor+CkX(YYbVXNj%EfltLWnpj9_-~~>8iJ; z0h}hNUeYD6rd4u>DvM;q zU+)Mg4B|Vn*@WCEq0P*1Ys%V zcM@2e`KQfumR)#azybvVb6C|PQ2M$6o{$(H(a$6ZEzDu7yc`Hh#>YKBfnR8!!P+-) z(#Hau`}d!2M=#yzXqEo&^WG-n#!V3c(;E<<8cWsDT3L~Hzm$M-Ps;eFzkJMVT&Ph1 zo~v+^KgND1>;11tl3hbsT!30qW9Xv2jkPgHw7N)7xf#XZs3>Ls=fjGCfv^IPRDUSn zs~tm4*CPhqeb~n{vH;Jl)u7yEvl(PS@HN|OPv2fj(;ruvPZpT%XAoSF?|qZV0r2<4 zL4g5TT~4y{I$iYZY8?1{1>pEkmS7=s+3ZfY(+F~O^TW9|=szcpI-|m^&_QkpZ}GW7 z_!ORO1X3~hoG#Hj(6|q4l&II{$<0Q3L1!NnGFsFMLvtN}pdeA4Oo~qaFAKn4hiv%@ zd1B&92j@CFqKZbcdQ{%W@Hc&QNDslBK+(N5osHFJdRTeKF9=3j?@s|vkYYrz%8`Zi zj0rte7*sxgaUpgbQz+UT(|z_gy(l@bEi1s2Fdm_+%gT4@VL)>N>*8+f(oEZqX0yjYFT^ZIw5x1f*BkmrB)IE^I*By5(Qne?iVwb$!(k=thK!d@J zk0N;joRScFuC-2H?W#&84aA7U+2Sj`ET6||K%!N|PnfOFTnD%90n?FLrT^^@_aPx* zO?>dVRe*QPD2GPwUL>9p0ZLL&wc0sHg~uDrFwnQW&Hk70)FY3$2nlI#iuc$rLIzv$ zcL*K6HeCwQ3kqqP+a#Q@)lN;h@4^eu=kMD~i}ks$>?q)h7a;tj@U=z_Yv%xwO9dG~ zA=)u^@goN&zxEcZQ_c$fx%a^e0p8`e5F8`cJTx`kWSPGPt~}l1GJ5mm1jIp-*H)^ZDZ>A6I#~E{vuNYNPaWhJ>9--9sME4KG53fgA2~gsl z>L6`}R9mV`XEVuQO9V1ABW*)U$^+GnKGd!A_h6z|pqi(dadfL=_jOkOqypqku50X2 zBV>jew@+G<2U55ljnFUugTa8mgvg^@CVsEOB2xF`)=KAfW&3A#AEgH?0=vJF|ej#gF)Z#;`co=1K1CzbOPfe@qB^8uR%Aoc)-94z0xz; zG|1Vx(vjO{Iw#2))Y~l@jvO$;nN|z(&*N1DnveX#+MQCq#07KIKV5%A^%~IMY01vb z!;E3z6zFzAoVh^T4C}_R^d>u^E3VdNw^6tJ8cxpf9=5#~i55bK%$}K+Go8)6R2dW; z)qMPxpvKA_?*qN7ge)81z0wwOKV*NJNM|I+k1-jedVEQgG}2NfrwYSg8-}LQRV5Ma z@+vQz`ga)7JQ)$K`q&tmw>E5+X69J`n|C{P1%VtW<6|gP%1Y}C#&8wHv|xgdi$`m~ z7zPos*oW5sCN^imhwZo`q4y8--Df5C1*8Wkw3rCD4RIy?-|IJLd$%%A@Q3k)xhh=& z$axxqv`sw2sp^Xm{vMwn`s(`>@u3QZ7h`Prne>q!qH3LMx;x?l?pWwc?5kIB?zPj4 zcHh^hmyvTqMYF4kSr-n^aiX*el(Q0{5-;gXzU2zkNf;=S8;pEA+yXvR+^+TjHw&t^ zjLH{ccZgdpe-hvHXspejd$D-XZrn-pR;8iAcciNVf~hvFCnSNyOk=mICM|QDH3C z=fN~NjFBxFlk1TS|Lv<5jT?c?=(T6cf>wFFNfk522RC{_cZH7S%ayJ+m22FvmY!{* zRjKMCv&8ef^beWgM}v4FpD8gS1sIHJ5r z0ZgH~R`DxNp1#TW5ZevL(10%U|EUa+(L7w7JNO!nt9`)h2?;M%ujtg_e*iC9{LTY) zF66HyDe`j0_6%9xJio3&#GmJdF;@ch_~6e4oyhW8c-3Eu*KC2Zr+twzAx``SL;wVj z{k>4|Nr)vQ2UxX;ip(??BU2zSz>#k@;7`+6$<9UT_qdkH3N*P_Mxai#SL+FbTV{at z`?s)Rf#t-$lMrNVfFtWA$`=|yi=$A25Y_JF#60AvcATJTm{h|I1VGJ!ZSWF#jxziK z>^hsf7?0wzwysJ5_b8M?D3Qz4XPRb44BED{vNeKI0T?{`uzFPJ4Dv^^!4Jk4GS;V?!SFlOAu+At( z*uoL*S#f_oRVnyW?(BI=fya6%ywgZ_HhCmG4q~XR{(%gj1~eP}PqXF}-P`jPE_tw! z%ng?($G97nn$SV>wotWdH_ZWDN9*=SorWX9H{^fthp{Soreh6&Gg{idmxNE5J7uA^GgT|r;q7gXC!-`23}bg{*9Hbibu ze)2-#GE75P+QmT9CQOidGu6)f^j6mfq;P)y;N+LQd{HdpM$rKsohH2h;D z2{vO-*l~?c3B*LPIbhhv8YT8H^6L1JmJ}F{db>oS$zDVDXk?iNcG_H=o|{`RT_p{J zT4Q58k#y(G;2{JM6|ekV6D5Hck|e4W03=%ta(Z2n+pRqudsDLyMI4?%+ynieQVKGL zo}{3?U*{;f7}7v`xB$Ol`gpbFp@n~vOt7{5z&ZCXeb1Y_AYE5Kb3gi(#yUgKOW;Oi zomsn#8AY%An@1ztOuJqwrb z9^4+8VVO!3sq+GmI5H2=v}t(!DR_^CTXs!OM97g$2L8y(}!JVg+>5ss*Ucv@dsoAX-z)m z?CtFLXiOPyyV>0I`{Xs?MbpfkTj~V=AG_5hwfq9mMjSAIf8^_py~&7pD{{C$LD+;} z-229dK-)L;IB-TsykXq74V=KJWbyY~hd(SBC~9yY-{9dS!AT_vKx4f}0oz}wyN6}S249WIBsrje9I@_8r3)?ia|Cf-08`c=ch%L9OP$&}{okxsySi1IYpfD7 z#LFD{_;ymSh%Y#nI31?0b;{H55yln3JQ$aY=WMp9Z1wcns}-~id|<4o+b?voT+nMD zI^DzW7dq!HpB?sTnQsz-mh}KcNDo!7wI{pOF;TNYR@%voL|T zlWnB9d!wOkC}nz@g7q*gKZOcMqT%F1IJ%AVHmy<>0!Un77(LC z!>iJcoMiac#<2U+E9I|6QILM&k+8X{_9gp!*rs?y#9|ZfpPib8ouCZZfcYyOU!6F&uPDo8%NXi zZr6U7G}kRo_ad-bKVeL{}%gY4O_LmKTQiTPn_|~5`EGI@sSH{(r#8^ zJL}7gC&nmj3TxkxJ6zr}o`^FIr*YdRHh4$BAO{$$gF_A6Y^|1GLG=>jccpHCNhpKv zZB__9Z_#fB)Z)~riXP&yszF;(IKn!$6r>gdfdO(xB+Q+TYQW<{l<7ifuf*aAA#>|s z!Y=q1thra|C;x;Gip{*g_&H$MQ7@U4iYLYMTB&!Q?XMet3K8~*n(DQ+hGR=&G@K`U$cwUp|TWvfPY1AQ@4C&UnPA=C$VcNq%^TJv6O_k zsi!?M;%4^n01xEiKzqRImWpMvOo!@bW4;9LchOKL(=g1NX+s1mtFj<+>XRRB-1|7x zPaDhM$lWCd*h0<*uEjJU%SgujjT%;>T#ay)=6oEy;+{#;;R|#NQ{|d`>Q#A|AHom$ zcR%*bpX}nn{#fBL(!+xv;&sY0`X7inW7IF?m3)BoS_oFn(Wbb=O1JgmeoOTj#i`~0 zA|RildqYXqXup5My7l(&Q5fDCT}aV~Rx|v1j^lTrX<1!4eieAXnaT$_Mgc&zHmKNH z6zoeN!bCuPK$%Bd@uy^c1@$2dV#>)erx12zfa7IX?ELamq!4~X84!QA6;~lF?9w`= z!0O~IekZPGlK_~= z{b|yTz1liiUF46-#OYh6ByS=wT>}&Me1flr4?9_vlBcr=5Xb+PZvs?Vq|hc#uaJIz_C&eU|sEu>ug1ReBM=xr;8b61ONfcyW%6;OeasKPJBTQ7C*SN>0;C++3I zcDIYLyvxm_{=oZrtw$Ptz}W{isnE%>2fbunQaXnJGrCD>6$U8wVe+F<4 zaB}|g)G8fErw~JCSD#Q7O1U^ef1+Zpl7c-K3Iibg@v+jC%m&2ui-2+mi_qIjtg!hi z>p<*i*ELOl%9m#DWRM{A?))ytvTw5~aQ5L!nG8)5{e{1g3d`PRP#`^9Ol;kK8&`~f zt_~_u&=qfE2ws?0&R!&a7fwPG2IU})d!9^y7_{Kx5HVC3c&sTm7#X9oUtj1Uu@-LAD z7-&{;a6R(f)`xPA{yKP=i<;GSd1iEb8z(R?xk?_Mia2hn=pQ>0B9K@RGbLL@DE0np zbj8%}haXrV9)Ms8x@i%h^#@jq-u7FUMmA>^Yq5+o`aZtAr4IVmtE^kpCucTv-we;r znPqhG-8@4$Ag@JW1op)vaJzNWk)-v8l$%r;E#oY-a_9<1zf`qIih}Dta!d6cZL) zI2+^EbC}G!4xMMl)Sp!6(;?r^6Xb?BVVqwOjG;JE8W|03G*fI2&K1-0;;Bcb@|_-h zbFN(exTve2p441^n&wp2Jy|Gs1|IPqEqHD|dFwIr_6&Nq>BR^#98VZu2~}=A+F7`{ ziL}_-hq@xfOgoR*ei~Y2@Ns@RYWr0m8E!F`wgEcu-Qz%}Z+C>>l9brnY@doQ7|lv# zqaBN&U~urLql^fTQ*Yv^A!s?m3<2Q=;VEnQt8YQnn%BBF)$CO;a2k9wILZ(GxKOuk zu2kHALVo_3KdmHQLmUaccu}8DsjK)sCDH&_ViJ(eN%Bb5Jxq$gY;cg=4Y}{x#%FMBMtYy^ET!A z$NhRs_2cDi@9WH%T|ZVkJ3U;8UdXB6x)sC2+lO4A@Cxt4DhCn~PNkmpcbA}9F6}?E z|G2Hb+P%fvZ&+*NS=1ChhTC7=O_hr;rHcp#=g0vq5aA3!^M~)b-j2vc*V7+~42xny z&|-P$@H#!lGXigCS4|51*ZgnK%ej4RN=*<v?bC)G7gF`>JiAnD0D0{&WP$g%`25nM{{;H{A z*c#dWkXh%{EX(f~!wDa1Z@pw-mKM3Z(2Z&ZBs}>)=9s+$50pigJ- zW`mhN`ofkR(STmhD9Bd#Ei~_=&FUBG#WQk;z+U7iNUl%JA36=xL#(jLWk|O@&dmFR+QNp=8=J3G2E(_$uWZ2&|CHjIrTPtc+*nSZ zO(JmIt@2~DpX}1_tNfuE`3pEVD$=tuz3KMh_I9)WwDOws*p2~eQxv$##@TQzNy?*g zX9q4BqXuvaOlg2rmSC6W!UEvKdPN{NaLeyyuiD4_Zl|m}g#a-B;}wmpr9@(iVT{1BEE9_vJ@>ntN6od;F=}9YRE?SmxQ%_#bW+TiL~!^Ny|L zSHETM;^fpG1gFX~A^~)oz6&oc{w4kdr~+I_gnctK333fFY@166qJpps0~C=3VI}2X zQ;Sz)mVox%pVm?OoYnD6=<9^7e6V@pIxe)QiS_=r%;Z{x_D>$Gh^}q$Di#{h=)f|B zk)7Axf1r>?E}#gH-3d(zPQy3E$VbVoNQ8a2Y7!0j$SdTw5WF3>J|~#&G8&nR-D_>` zBner#E*!ls>BSa_PX4?BapVnZ)+Jh6KMX!5se6n|J(-qsYo=TN*Z_tsHnArnME1&G zp39A2dRt-=T3r2%=U-{@?9RV>-h~Pn$y?~*WB4&+QWf}s#${A6m%-^*-bZc5x04G& zw)Wj|V~6K3g~Z)TmUKoa_f?{2qusk}!|@^R0{`4KMeyNy-PnW8NZVnsF+t(e(!Kb3i2%0jn25ld1xE%2T|#9fIG@z+n?=CldrZ~gM3 z{I)&gH?%TnNcOs??5&Jo>o;%yx3|Vrdtk%q%^KQhGib+P5#*=vw8l8oX)nOB8=Z9^ z%eSQW3m;%rDJcXIfMq}wL~=g7>DGa*7dd%Ik{wZyr!&4`u5OnLa&4TPiy3A>P`tn1 z|Lyzs)0noG^Q%8PKX#xvG%mp5q)zkd2ZJp6HD>gnPKgU z*L-Yi#BZya%}tuj5pNB%>$!}`!hG{g0^^-ZFHd&AktCw(6+;B!6yAKzOKg!eFSmHO z!hOf1um$zD60q5>-qfC%^gv?5NQe|Jn&Iiz{CUd;?Qv$nr}K99 zw?`^yY`X9-33Y}W^9HO{%19KwQzFlx*FeV>^&SVFpk1)BH2`bqQ^yAq-}oYzKNHH+ zRuf&q`4X}}?zA-7fZ(t7Ym+(6h1PfkkL>l$dRm+?{2Y5I$lqj`qnk@xhP=y9D+(Kq z)vis8?yLirNSZxx>9y&kRB!6_!@!Y{ShM%3z3AAN{~ZK-;PQozeWzp6Qg8nG!T0U*t9j!xWfPeS{LZ8W@mZP+ass*p)mvAEC`C3 z#K4!gd@vOd(Tp?XGaGDkHO$fgTql+C?gPLoe@W7}xFgo{sForA!LScx!;@aU35V`{ zQhrRv8L@#40?}&B?v^6Fp*>M8f4Y*PZ(e$rAMcyLS^RmXhT`v07SVqjR!s4$bnh~U z0&wV_sVY)$Bu8%~aqMvJyum0;aC%WE_+HLig+c*Xm;^q=r`qsXYxvqRRfz@#qw!Eo zJ7dPMi3i|aGjQxOKJh(N{O4{ELlCcDwwhITP+h<6m#fR;Ny71YUMF=q+-Ip9SKVTF z6j7~30iHj@J9X|vka>TY62v*uArw(MWLW$`$Qmg-eYsG$G$uDV_`OqgP?<$lxkc3m z3jetZN|rNvlQ_w#?DBPa)Q0$fY`t|@)NKGyBgi66J7@*Ilr1g-AZf81TcWDFy-?iQYzAsQDFpFG!`=oCsy%k0GYGC~o-Jug`~{ni~_<5_Q2DgM8`A=x6+pCC}_vZ7?sSa?TO9FrBtc$;SLDQM_=- z@Xek^Y7P#5X4z2R%YJXpMX80=5SNd;aldr^gO|b(vMo!5#4-}k^~c??OlphZxA>>` zFXH1`bZy@{;fVQ5Y^DG5c;f7KdIVn31Hib^A#}~3*wI;-&_&gH)4q#2{b*EaEjQaSDeU`R&Zd zH8pTZbtrW>!)HTkVC_=-gxqD)S#5F*R|EOt>B>ucysoYp;J1oefIeQs7@n&-ApEJ$ z=q>>tUS6f=hbhj4KwjCrW{&fL*N_B~j@QZ#1i{H_z)Sxx%0Ty_PRT6JttenK7D^zr%Wrle`EGe`4P+E)T3jsBZ&32Mf z@x;u2%oD^o4KJ zV5(io$~KJzw)Ga8tn=L-F!61xc^ZhUHw3X`pNFdr;Y-eoHut) z>5t7PAl^Lv8)+o&QS0utk05HvsT=4?b0AJc>m(8hpJrY=SHy9+;lK(_ z9f(`EevS|2<>KtJ6ay6ao@$1qP*9S~1#(eqh_qRU6Hz7;px@`tj0g>+bRV0{9K>kq z%52&#U|5$7bo9U)LU+|YOtxP*Uk0&&F<1c&d3VaIN3Tu=9|Rh+TaulEB#-fguIyt! zkzL$7>5TjA@l#5*w|sZunXGaec3%ua=#6Z|HeGjiN!p`SxZgS3-6kUQNPFrK2d#wq+*%>p{nV@e zz11twRsWEy+jm{5-cH{|tl-t7=HMBhly(3maaiJIvQU!C!eXNT6iJQz>Z zI)OR1-hEcj+1!5$$3k3iJY3WadyO{_LtRQo#a3c}*o{C{D^OmJtkGrevBqW>@HOJe zJF5QQ_xU{-f%IGJUe&&St~idY=e@~c?8_+9=eCRZ!C@;y+kDbB9dMWC-|3<|SVxm( zpp7bmq)?STSZOtZG66oVgpcjmEhJqnn@ob%8lJ3pvPsMbZ{}JGkbORy8FyFo4FP_( z9K+)&N;0BqJ#6iLk-yH1<#~bA*%YeHHR*?G0{ul!NBgd8eFHA@Ad)E!b)5H6B?7C&H3lpNY+YmjEqLYRpSmTf&+apxAkqRAU|Vw88bqx!gu z4p5bngmGj@x0?=}`qQ7SbBg{Th4T?@+K=tvEV1_vA?+8uSUi2@Z8%Wshj9j&D z0;*_Hc!ZAn$HE)tvI5dI>XQ@!6zHd~ai!1tn)d)9DRxwNl3N};Z;UI;GoB?i&PeZF zU4TFfa+hQ+l)2_-^MYumfXA+5m2$!i5$iv{HN}vD`JEdG*Lf-NlPU80NFfzC^W-?$ zJ>|>j=VH3ba9vf_TJ}D;i9Yc)9-3znvVmcd35|gk612`I?F|RJdt8`^kox-Zd%Q}D z_xza1T80o@(%eGcI}?bhIo@^2yk-?9xSd$xx?eUpcGAm!Dk1q&dB=7}T28>IsE_Mj z)8f3%cijF?mxZdIHY4hV1bbV{{%4cJYSB;%v;g>3>nc`o5v~8DmHBh2FbHj}o})d* z=doGN_kyPnP=n0x-Xp5NggkfK?!F`6t)mki`@swCY}JiiM=;SYLsa;aQ1<%gQBWn- z16aq1;bSsD`)1U0C{wC&6?(pFF#S&a?#&rEjaA|-HqN9NCEI$2lZdOkl-Ye-$~X(W zQ7?W^X~kUTiJSPsAM%JJ=yOm5Y6@|)ge~|i5x%ilgn(#jHPO4f?4~DwhW&WrA@a^4?L6%kcr{eBfkfX70M>G^B=(I zya(Ngmz8OwtBRm+y^C?&dhlO~d9+Z6f9Y3g}o@DLVNAK%L?Z6-W zHm9k+WRV?mceFOjx>bmwV9%ygF$YtM();B&tA?$MnWW$KMM7<5nEfDHwYM{;k(2Wv zeEo%B)NT0B^HJk(IkfR~1Cvz^eN!nNGtm|tQ|!b;rl{#c?VikrA%{2*gEjeY==~fP z(WWO|!lf7kV~RSX_jhdWxEqE7X6slIQxC zlTaPdf^&X5Cb3jfEBQ%wsB$r^eFQV)Xd$mMo@t7Ytt2_I+|J}wrm(CcaT<`+aQA*j z=$?ZFESN}M)>K3&8j0Y;=N(z~8-ZnI6dIwJ zvVWYf3E}7f?#`wF?-Be#?elI&lCji1>O6&uGP~;S)Y3Ri+Idocn`c{3+#vy5*@%1E zI&ccuU7sw%4P9Dar9}_W`*=;IzD7TpRD-4TgBFaR9Alzz@wrTeaeq4hSf*RdFFlq= zb$1$NzYcHq(_ z&F5lme)~8}I8Nqg$Et@#UENlc6GmZBa|!tLIO2ClT8+)VYZU009TnYm%}CxtddLus*7maF;?iA~?*QnnI0{Yuj^Hx3@MNU;lJDxG$-4p3xkS?YYgYaaADepI z<%&FsL_#9t=mzTjMnYNlg{0}nJaF3U;F!^*arLwRi77UcsgFB&o`jYXF97RuOSsbU z9}1}RnhnaxPW$V>)m>^)a+Ych+WOu3TQw6Qrf$kZUmDCmM#BQ&i9$2dCcpC%$D0zo zX2U=asWDH9#2u_`&MY2RSWi)-adT{#wuUxAs=0qoHS-h7#idBPra?JPD_9 zKP{AU-njjop*wuZoI)YDCjWWI#r{vOtgqY9qr$XSh2B}>2Mbx(_^8=~sWCvTnDHv% z5siu>OhgD4xHJ-fFB5qVCm$AcATMKiF>;+&(oKj@-xvnKeA)DvU7o8`%sBEkBbJK>XYZqq|;V=pE-q+nHC z)e=d58;Um1l&$|jyUT9LTFf1lM-)(5=pUdtv-R5stgqhA8;~S}bIBS|K1WOAo|n!V zC5Q2adZ8$$aGWrv9{--Y6NuV9oE$Ln`NilYSFUiLm;`v%aVXU|n8|Vap!9s|E3=o< z&6>`DR@lm)WL1NSj)(3n4!yqqhEpCk8+Ig%0r=5#?o0DEm}5t@2L{`uh$33M2;@d#^R}8Kf~Bj4k7r z0@!&YR{BxzRYzLJatXn>K9Buw4$KNSnMqKYd0?Qd>$$3>z0#==Kg{U$n*$V|JQDUS zfEPVRDLWEW!*@m+_EOSDe|P98e#9h2q!4R*X>P_2j;=oXLhNNJ)&#{8c13I%N`odm zBbFtg{6b?!f#d)LblJ#BKq+baR&og@6Xv$!`0fw#z%^sU`HqINicbh}l6c&~9kiS3zF7u9u@436EhYk&Eisge zXe1N9txG!{Zc9s`G~xI`*SID55fj7(Z?XA~$#^CDf3kr8&u7p`DjiW5e)ajnj;gdU z!i>pH5{;sp#0*R7;GGPY;en%G^_ zeu25?9Ag9pjv_6z{p5RFdXi#zAeHkU;nc8&soepMaFeX@k;R|$oYl?!=#?#O_Knw= zaT);|nEezWR?3~;gsnl(gOBY@Q?orkCJH4TX(PdCk>{2ZL;9TL)m%^?`=7uDxUS9< za}r3f70vKbqaTH;s|mOu=fMqbmX^!7xS9Z6k`D}`Nl`c-wlhVj5DTEGEe5C;GVq>> zA}pBEE3^6_BvA#tw-M5H&7%uxJ(PIVg7tbFPs+5JzGV_HHz7{X^8`KG(^sk|n0 z5gquPjxBnrAVoccB5qxmAe=Oy2F;Czj1Y|6dP({~A1ws8sXz9x{{sn|XYUBx$Lg>( zs3Sv;p1<-H9A(`fI!Q`nh7}D2K6iur4nbbmD3Ui0r=)4Z1`W3M)M;)<64y9RR9VvP>#(A$# z-JZGWb6=i0YSpP9X|#;NmlhL0vJkdvaHp*)Vvlr5#$WluLy=w}2{{?m^cv0b`wab* zo~4Ba2Qm%uBB>j6wUqOhyAFp|hp#(Y56!Xn1^q>mcPZ= z|DERYhdL4IyWDze-P?-K+dmWF6-G0Rn;cy{-9z@!_DX`@!+sA7&0goZFK&$%H{q5% z&S;Kn^Y!w0hxqc5AHmA2JlN>9!;SE2+6L@HRryP|ltAFQTbSec@D*iPK>m%(3x3@=EVJd&4jsB>;OYXhhd=5fhhQ5g!Cs_E$r>o07*I%#6^-Pt+ zj+C*uh3jbF`Hr(B2GWjwCn}`V2Qcv$uY^UhmOF-`U5WdfmNLJ#VLW_Qy!Ycp9$Cfo z9gFwv)rZF0k}UaGN5g449a^9XVa%=ES<8{@{rV;yTBCw~WB`wgOLBBPi-Zua>ytaF z4Lj@b>b({P@brsptcp@|jMP2dufye}0DHWN4y@o4C_RSX)h}A+hdO_;$npuL*H`DZq+*kv70HG%0Y>r7^@Iu7*83r6)7GOKZ~zggnE6%jWR0*`*4>?9bZzInQom1LjYSY`0d&dAYFD(Svk zif-@<3%1=Ym<)ct`f{ve+LW`=bH)Qnd?TD!Qe4{OEj#8(>ogb-C&n(;xRA=ppPJ4nq65OCcd z=qEN}V$?{_*4^}1L4pp(!e%M6feAksA5aB806dBPreN66R#BAbe(C_oQUU_ zR5ZB6&tSkW_fvGACNzZ;oTi8$Ge{H-I?s(ScOyNfqOc(ZcIS{FHA{$bL`-la9%x1Wvl2_eYt$_}{ZxO3583AXTAUcbE*~kq>JA zx-iC-2Vkh&omt8-9e;9bGUklB>Oa!;zp1-*3NES>a7!p~1bhl2<7YQ$9l184ZTPf0 zfR=Sa6ZK1#JkqE>`S~HQi+!W)^$hN+f5`XR6`Ui=rgjd6^w3d-3VI1Y4?+C5G+3!K zBbUF%xu0675Sqwjv7yMkDj-&?kYcUv_I3o>fM#wFd#yG)y#MkQ6 zayou??&gLz5icbu^|oOEh<|T;=M5f&zuc(~Hcw=F^W|tAwZl}2!XbDmuC}nDo>;A& z{6a@Af~A)Si*D$l*bo8?3c_N#6gN}8%*M3Y5l+#%T2w2`jGlszN0Es|mUgSFm5Rw> z)CI-A`S6R=*~tlNkYCt$@ePy3GX2zuwihiDl}L<@#g!28ynD|l(BI!}uxb3B^l(oP zP9%GjK^K;O@%ZUOdV5hMYw3c2%Zf#C%QF3dWJdEn7#kq3R3ztz&bSL|D2Nv4kOB|@vtC8$ySADZ}|z&5X?@YO7*g@KkLtPMhHP&M8O)MW_8SU8a!|QGYTe#eAUK)=LQkm8kVyp6BRykZvcLhLYikx2zll z%zSnnD-3d9V^8mTkPv#9)MDoe4-<{q|A6>?ROHfDEt$VY7@C{uB6r??w|Hm{<3MkIt z)mmcb)Gnq2KA*s%ld2GLJ4=6jk@(Zt=04(V@&!cd1%= z{IDzY-eK?R9bf|@V%V{i>UWfQYpqA9pkmvuW?|#|YUWLf${EfY#HHT-zNB2n1qjtH zbM4Xd1p^sjP#^G16+pFf)T?Y-hTRkG!6z}TqFHbI&&KrC?MR=2-{?f&AA{fC zC{E=E383v8USh-;+*83%z)kuESoN7T`7^pY?>8$i^vo^347q`VIPK`dx!ts_ezAY8 zOQFWhYpiSTS zAk$>M_N#&qB2d#NbbG0et9zC-!S!*1o&2!t)y+@MUrpqkXym3t_jsBD(BfFaXlpW$ zZ>csm5b3&gj~0t26MMsiULW;|<;5b|WG4TMhY=M5d9|+>;wHikh>q1t1Bh zzAC%p7^KM1!1@dsslIQi1HsfOQj#R%RAjh zUcRU9z%`Ek)CmBPD>-?BBcEbN;SvD6y2)+&M=Gxs?OjHI06j`3BZyqUi=3M50fwruw7{_^zP_v!uB1cvw0A1&4Z@uX`c z3B{Fz7g2_UNVXrQ|IT|GfzfrsqaUUV@169x$JLLE~a)_om!O z##={yrj(%j!C{`ETyeTR!%w2N&NQlF^5}Cl_u30dfZm`vw1YDRLQ*%~!r`x{+4}Yc zH_iXzFGI;t{N>{oc}y}!A@;z&A6gR{JZM`B`*6o7&cf%Y{nk#>g4ocB$h|^G%Yjfl zlPqlAl$ET)u=x#NL^I~>;j>VZ;`ZiQd_hZLQ? z=rQ{;#6-D&64j+drXnckSv(&J6N1KGt#&&64B>#)=i-cUOf8c((E7PWH;q?!y@k`s zbdg;_`2Gk6(+pmj06!TQ2iZ(=2Z~jRG2c1xJ((mTzcXpF3wXMfnU|@yD+mJl&epBW z@IJ60*Equiwr8S5lJ-sM>qHb(92M;;?z&$4{FRGjbp1|b2L3_J*Q1Mm`*0`I%$PvF z-z6o^cDxJc9ZE+DLHZSqk=A+B4{`rL*PSZL!>aoX9b&oj7`GLL6Vd&nmCxVkn2@(f zG|0@3eBcWpOcIyXz55mlf7m~PrF)MgnKVJ!z;@tZeSkF@;Wc$Coeg7BFY9unoPwVS z=AS=_+mS@PXSl*#v?M_1$nr=dP`J|Zwmx8os?E!T#Ws{P^9wsVHM)PX^J~{7&$@hu zdQSC*0Fs)qRkrm;*V&TTIP>Ro4u^+qyqXgUV1??Gbjgjz&wNRY!q(!rx}a3+&F(0w zShM@*W?}rjam7HpkQ-vu!_-Q|MZ=Tpv_Z!WDYAZu)SFwV#Ze9It>Eh_U2B568vLJ!R$ji$vVz_ z+&0o$H}8buu&M92p)?VRNTvoA=JZ=dD+l{H+jfy-a~<`v+exA>YsQe#`KnHKX!~=P zUVuW08fx&GeL|wk+ni=_#DCR=bMJ9h}n+h}Bw&?M6E6Dm)@yUQP zV=%BV%@(p5rlbq1^NVQtWWMv}xRiS^;#Qm-xiboWZTiK5Yc-^`iwO>!;_y^hFQ~zw zZ^kx3E_zsDuV!a9gw{Bk=l5ELo^Z{-DqIHu6addu6kpQjW&157DV1GfPo>=;Rt=ha4yBZ{c z9v(x12$Rui>s8iaBg5Ng1_C_V+(PSLO~HKCHXClbPO}3Jc1@&(rJ{Hq%CXS`WE?h` za6cAA!qx!Q^K8%1s3GIBsiQkWhSMfD(T6pvcW+j)j-e+Q&GdZ>+;Px+r;z%zBg7?X09FjB=lZ+iwKM}| ztN+J^1LS1yIM)4x4-kNXehKGKDfmqKFT3dc4YV!4GVATQ^T~7ok8Re)ryFJ^g$SIL zcfso!$(Q^G1i*FOFsB|wznLf=lYIF~m=jD22-y3el$dxdeU*2l84xj8vC}$@k@M!+ z?b|E)#{6M(ax4J+z7QZ3Z9p!5vBdqXGhpH?1~@yxQZWE8)X~5y4$;5r+0=9YbHL9d zWXLh&PmsQiEjf~v3Uex1A8>_v+h1h5*Fpa7q6>aXh2L46GV$r%R$3?tXgdI-Dxjoh z<&DMt(8s{uAV#!m&E%NwsxEI<>)4V1AJGTb$;|*s7RZ4@eMMX3cZ@F703vsbn z=+`IfR$H3Fy1t~_=B>=BH~A@vm?u17hm&H(kT_-uW4>;aVK2Vu<9}d8jCbh zqR$5!Gq)-zWU_1v6*FfiYY*o)%o9wrChQlM|NM#1IQQb9agBn&*xzS_^Z-Iu-^y0( zxAz{0=nL_=sc%6dasv=8l?pUo+;Aj2=+R&FOrj(AseTNTf-wvRc#<2YCS<}$p`q-6 z;j_L+j&|uug%3R2nhuhf2B1^lt3l+iup85`LYQ>^;8>QUAgtUougUy&%wO30hxU-W zQeMNT*zF1uc1v4>F}%Pq$B{m-8~f5>4Y}iQ* z&BCaP@NKgxzNPD+hL%p*|71~3&rw;F=vu?rgA=oqWAXF@$D^`C9hstNN)ft`-rBTr zdMbkD=YzcNl%E|Pk0-mK(TG2~-46dTSte>D(2*Lzn%xOhBG;e%;{xY3Kw)3w6Z|xg zWPSI&QJgIehWQED=pZ(n;);z&kgT5TX^crq|8W%odJkFF`iC7L!z;z!{P3GgU`6f78)KAspuTo_w-Olg&@3l{`r)T>@m zMC=S?++GA1HQS^63a?dW^!KEC&i6nf@p>C}{`Mt<*=a+F!MEj42JDrH_t(CkTuMK(e9w-&Y zf&skiA#%o{C1CGCaX0epeq*Y>;#3M8L@VNFho_=rKoa-6joMtP#~rxH^Q$z|Cp5#C zfvhfxyquHjmRrF+jizpdTmFVq*wO-w%{^gQlsgr7|Dp`O7KPV_ECkTLpt9YgRt;GI zST}DG@PtQl7XH*nBaz`N)W;o&liy{rPQ!K@ zz=+zOY*AKY8x0^HT`%An8*`IB$#_Myt%)%<%7@>0q#qXD9r3Tmf6Q*`fnN>~FVSA$ zaP4PJ*%JSz4tIZgLoiaCB=^%I_QtfeC}q(31f!49_KuvPvCSA@^&RGc><^U{O+^n+ zcr;<6Ni;M~^)!{Z;q(J9 zLFjN-gO}ZVReZNFs5L@)t7vsC?TXaO=&!)`pC=-SN$)FMpNPjWl)m6zS1@u9>AX&i ztXp1jQVw+oqb07+#_6u^YLS-#WW2vjp-)Vx;#w*aMoh|kk8Hr81u^W4!J--{VMf-G z=ER~r8A-00Znv7}srPkN>#SzyzQ>9X*o#7;7AqXm{_YuV_=Hg8G@oRQD93m+Mu_1AqSDZG)xvTl@Dv3S?G zcjV)#!(0W4+Y#lBcHBG}I1WohdNAhJu}*;UWg$`lI@+QK!v~_|=Czfvzh1jt4`6RN ziF;V>t38EZTLfE#CXkD<^On3}D0=#u?J(FzO&?>I)hej}y@&JoTB@YKQM?venB7II zw`_ATrCa#DSrV(vefxjJum42&ISe#Rz(N4G!CPxbE;C0Ufd6?Ev8D^QN>XAeVNp>* z9;%hugIKuo+bTBys15re>6iL#LmNps~*2%M60rc>@U!+K3h&J<791}nt z@O@t<^UBwWZxqEg<)j^20xwCI)*$Z4U-T_2b&$|H{MY3NXqJ&U*|Gyv&ujFccWR$E z*Z*Ag?%=3A0EAXJ>|BgK71WC91L@Z659;pEgb?eMdB-`67e0=!26P~HJJvPK1aw}l zgSolr6EH;0B0=9>*K*i7w4j-KcvNf0`+3bJE}Sa_8OPxSJ`-$x8MJR}9TyW8EQnrA ziCOR`y9q#k{srz{%SQfBFG3?Rrv94=5DYtv$1Kmd@!*Z&8(4l2!a-$JCiAQ7F;{iemH?#qE>(Q#Ajf4|uRU zvp^KE_A)6DZ$Jfsx`tgg9pDw57$hK7KFs(i^gOj|0b|Qw(<<&{z1d@)@|jg@2s%;c z+qLcoxGQ+M|ExF=3hMTuy8ET&4as~*)KdemY}{=zoHO0lV4?U@1pD0tkC~6j$B;*G^ye=M5z;`&Tb`Z|Yv(LX2Gu-GGX8TjEqI9BktA8|z30)FLzz&vL)v`)*eUni(o0*7uYh8{@ zz!i)9RFJC+ZlWZDULwD#$x001M{?F!Q*jOevx~@ZB+U{KCdByiF}JT9@0G*KJu>@! zc(yD;jFgqh#9m?GL9y0u5fQZhO9hK=gI8ep(=$#R_S{dTxKpGTY2Ejg<+k3M9n2ns zcQ?dp`j6f=+1i(LJk$;Bcw9$4GDZq4NA9znEPQNjYSQ`_eejE^7@#0oX}K+f!GoTR zKPN&?Mo~?B;MTN}3g&(({y2q|RW#wa1t`>lZvkfkywliZk#q;0FUOsb_1yar`t*E1 z(NAGqm0WTsk_ir&E^QnIpPw0vVBr@(0ltgf?)#+b!-a^^A`JJlH*4Q@;Q?R(BzY;# z{f8JU1+jG>t)`%^Ohl51!#e5aL8Z7=6Cw3R80^l;s{XA|dfs6E&*9R;Z!eSj1|W}( z)diEOp-^QUt>O%f~IUCUvc!Oqd^n`XCA$?F|bU>fiOxJqH5g(ZY3r zu>m^Ue|}&Bs7hY^54=nLH5aD4Jx4YZPVdl|TTn$K1>j6l3Q*U6mx#!5a6EGRX(4J2u2-d~WpnETzyYYDn2VDg7?XCpq>xBz(piBgFW$ zwW)qD5Y}h0?)BgL$a`T-4>cQpUk|AL=RA`)FP3D;olVNX5iT|YAG#FQlFmSvcENPJl~&!2JlQw zTfZZ(7HT#Y|Bp7u9Kci&`9ltkwm6`l#-`+5GHmVYqtV_Tl^u0%ad$Hdeg<#EG&lLL z147G6`d%D>D2Xv%#8I<5c;C3rWtnoF+KRt)}NDF z*A~f+EX~|{xtHlc_A*=;nLVw(fji6+Qf1V;+{^XC*63?&5k#V$&oF-N#1`Rsp$ zPKW8Jobhq{yh*W#Ca9tjJ+Xflxycn^QN$Rh?%QvDo&owIZ1jULARI|Hs}Do@paWwV zvgVI`ng8q9UPoYZ$Vj}ycswRyqBG5ce8LYGoP6S4o1c^Wlq{oST+5(JbeT`acV@4Z3#It zP~&Y%nvcNq0j&7h$FE;>mgR^;`mnwcmUPTtei?2B>{|?mc96>@_9$Vjn5hT`(jc{66McEy>AaE zZAK?LK&%4dHL3=0}p4KX6Gljj~ zOjt=aIOu+?l6%9%RDLofQYkj)ynXAM-dX=<);)z2cY7*>&!^$;q+VY`F(O~AR zLJ3lQ_dgev)ZdG$WHn_um0XJ}|An#3Kqxmb?N*OiY@U!JE=7}$g-@7ozXd<*N5Ce- zjxOo)W)Jd@`bm4u+1vgf@ZUGBw>Zbfi%qC$Uj27vj8Y5K5hYKA3Qgc52@ivoDqHsD zW{!n&IA5nOJLeADI2EE6l_}$61ed^ciuJ=a2zu@=&Ri=(GV5MvaMid+yIa?^*zRE2 z0B3Yz1*aFFW94!iEEOWD^fK~n8TQRW{qoCK#?$d7RPMxH5Z_q` zDoOj>2XTv->eF|tV%(rlU(?(Td0i!C9yiH9Y?Jv=yjbGu$}sF3+^-ZCR|58A7%z2n zu|-34=>)eMiC?4L>uY|QE{MjPQ1eXuXRZI2Rntb5`^C26N7bW#1Y4zB749I^$6dTq(%JzvR5e}?)^WNa9N&Ulv%4gyn1mT-fUgOjSs+CQl3 z5&KHzzAeRx3BqG@h(|Lwey_G7d=EcWQ{)>9QlZn!`#lPaY$J&H&>cCiv6uaRP*sJUkp4h44kc1D&GQA(59zaioM zU0^)dK^%gW7C4Gc@roJn_dIUup2$=xS_l?ZLj@1KHAQEFNoSmdZQ12fn^9(&;(~9} z3UTD{*exU(rUOJX4vtklFd<($s>Wmd#a?OjuQKa(&VL}rHwW`a(t;M2C}uh@MkQ|e zaq|z2wfA~v?2e^_7y#oQ5jA{p=xKV^F>kQgDsP8a>ps*V57-JfM|tI`>2J{}I+=Xk zfV0anwLtf+YZYq>B(^GEC`&*Tq|@<@6AKQz&02 zqQx|&=tv&Yrv$X)^ZRMGW!{M7N|s=~UOEfCwSi?>g>h6z3oth2J^|Bjo74|6q$}+g zhsJf3aGneO>a?}`9f?0yy*I8oIe|!zqC!K_7+KFZq4Y-<7uOY!^1)jk{N4p^4h^+(3i(azQ;IDs#^h`k0YoQVzEEqzp<~aA8Bg44 z`15gE4>TEZ8f;kvQtC382ci^oLO}dzP9gY}*rL-53T65PKxcaTQHbK^C@jaJQ;}pk z0eNks#`w7r12ZpqNdmNht@9KhP!z|&p8^=%;YAeOZXsd3xAO8=?+R#AtiL~t2xVS8 zo)+X%+6KRtYXR-%RyJGi1V(R5>v9U>APMAzH4bzHMlD|9AX5m@jI0BX6r{f+v0z_1 zZdVkXs;*oiV*Jir7oaw9)zuY&5Ms}Xv7S2FE#IN{i^dLsbRU)m)#yA^3dPyTMob1{ z0r*Uj4cRxk6}0uc`>>8c*CIr(@9L%Ym&K}VKvybPWmmwp`9@PQSp2c}vhfoaE{#xL z;@v+qZ+x!898Em+0MQ6t1A%z68Jgni&$ixgHO3wz-h@dDi=DXDF73~&Y`(zp`Znjg zy0Dzt{fM?e$M{L?BOSqD+!WIQ^g;J&ch`n=EYgehup+Gh)DkEpQxw<7E<3&$^xHeE z0I2Y6Q3R0j1p;yxJ6cdPS$ng7`?)Ii{=}zmxO~ibcHwD68e&!WcAJ}{>j4|WwetP( zYnjOyriZ#Cw?=_em{jf-4D$Omn{P`@!9Al2llc#14CkTjziA3)y|Nj#6L&dz;D=j^ zIwk?(=GFc%*GKp6D@9=T`&YuW9_jDfaWIAeo4Hb$jQjGf`!*eZu04dM&V{BYBuf!e zfEaXuxgAypmB=>l)Jyg)`6vqd57fws1w4o-z8QsF1x{-vL@7chAZV;s8Ht*~*JSI} zH$dK4h%XPHhW=y-*orRCz>(lBSEQ@JqEO@+-Kh^nuf!k9*Ar$|&GV3Kx{AN8K-ehy9a=U4w?--#pG{^AHOc;U^9 zItGB7>3NYD;kN)>?9hc|Gdh#JZ`xjz?K#)u==gcDUqx{}k0J1ixMR<-Q`oN-^YB+q z-Az8=RhOf&bBED|TjRM5xqaMtWG5TR%k95HHP@xMyv^aUymI3Yf)(&H3PlvB<(>e| z;TMi>v6HvfpNgs&I$n~z|I=DJTP}QlOC~Jun!dd>8fNaE(jmGSRi%^nIG<~+8|3Y8 zH54`(+Dc+QWh(G8@)w0=i``Ug(5l#M$-Csf+30L>mJGALyGK)AL3Rq zuXpf@oF`(af`u<*HBf@moXpZRSox?Z^yUKsftXyK+z8a}(>)kJWCdgNbMQ*=1svOR zJ^hvx%s^rYICx~E)2UIK$Ref~KgL*;gi|G4_5u|4ASfN^IEPt^ zuYJ@Nhdx~^;ZOGcLG37Fe)5$vLM%KzdHoy#nOpTxoXh_Iv5fIw%f!fh-8M0>D@$7ul=pMBnM685NTWhCf4WU^d5lOv9&0V~} zf$y~3Ew>a&AEO(%B&%>Q_E~li2Bn&`M@vZXZ5+DpAm?G|zmeq$ z3V|Pc_&S!vz6)HQrn@{gd-v-H{kV}$L3Rybho_&{wSa83bq~*p7)z)Hbk0OCH@((#za%HhYEwI4qB?>g7SNRY8?@+ zHBpw~&opDoA;TQZo%&{HU*H@|`)xd+x_cQOZ}Fgqq!aST$YkN^!?-Xc0q{Izc%MhA z=6^adEZ}#j3mZT1<)E-*pZ;51R-8?~@F?7)GiPrxqFFFTZsMRjR*TFJ$khT#|0BNk z$<)cExQ9Q?u%n{xS%-j$JO!ev?A}{ni`%i1oHkKoPOQsif@6Q09UNkXDL38wELKX2 za+Ug`!78)Oc{-c*#8x7-2rcH#7{-b&4RYI~=_@iFYxDcs!i3%#+;a)ZrDaFP==Ehv zhV?YSEHE`R>7)X0JO^q|)3+c3J$cRE=JZydp-MOs#Bz!$FhhL6|H!d8-qe{8uX7&= znp~+s8=#{hu0HZ4${~XBs^=l@-Gj|zk%Z@WPDAoN?4E$S-o*o65~hd?jkSlxeTJ4N zq{K32PqFe7{VlQ5rI~O2`=D{uNYo&zL@UgJ zHk99ga(%LmaAGDnkr%86D71-b&`*fdov%t;f!bsPH$Qdxg$K*ab|n z;;dYwk@wHVCyLre*Q}_4JF=LdpnHxz8Mw=DAN}+F?^&(naF(;xy~KO5QZ@AqTK(I- zs+N`Jh({csyUz%XTGJH?#I8azTuyg#INB*uchROsBl2Qd{kW--l~YZ7wWv+UT*>Ou zmjC2Jgw9=X+yjy>WoCB6&8Bl=6QG{#jk;t1l?|b2K@3^~>*F1WiY&lBpxeV0G@bT3@+ZgNncYj##3cRrW0&~i zYPP=Nzf(n}$ye@b#Sw^)XmOo7Pkj*YW5Q93D%^jWJ{fO$ggeCwmu<1M86RQjzWZX7 zK5eD+?rkcWud40`ahxoIPCi|i-P67Cj2y&9mRC2yIXhUs_FFm8quYBWAi24>S0Oh| zJ%dZfO`5dr&+DnJUI2a>{ z`E&uhIDXfHsEqiNCbdO~_c33GFvv?+cOTNZuMdku22dU|>Q%q0`HJhN{@I>=RD3b< z(-eR9%_J>jR-<524tfei+&?Pdr`#B5dHm>oqX$soHaLh6eUwe1FF4?-Em2R%j2ed| zUhhrod#Ai!Zy~~pi*hUg=cTwp_7wmU2s;a?R&CW@SXb?qB zMzOkZ?~Ie>wKO*nBOH!#Yu94oKJ7fl2bptq-zui{E^eny5oAWY{Q&tb&exK0R>PU8#(CDS$Obh}PmaA;c558@rN(F@ltc9Hz z5G_F-j_(w!EdukBIw5u9hWRMImt1Wxi6@7@#P=m>jIxsx8O5;3#!d*S)}BFD*km|4 zKA;5)L+3glN2S04L$x5}1i%wMr&3G@y!Ehfl8*`kfG&Own=@atVWPF>Z3g6OeHzai zz;n*Tws`Bt;3K^4NV=f7hMn!LTf!K;5p%a@H}<|+e$<0plQz_tKC$XvM`okz%P?;F z*Z~Mh>$gfE1g~2aJ3t4-({~^QuDVd|q9<>AW`GmgYRCR^R~DKjr^(VBf-HLsyGZu@ zTs@!ueW8bSSvQc_o&U;Ex8ISws~_u+0L!iJ|J5wAyemSP?a%Vdap|x*0M((pPb66q zpeHD3Y<&hCQoKpthv_e+o%7{guZpKjyy*y5=;_BA$w;;mrBL?#nF zeZcQgrrt7&It?l|DAVedi%1h5q-w0NNZ6lqLO-bBJ-5*X&en#b=2T*Z?PmW@P>2z6 z*AwK%;n?F4C@OURx+J`9Q(rk*`tzd=wY#y*`o$8+F?|pc4N$;qmK{5;D3FwerKh=h z(|M*hCZ~&DpBK$S`Qr;>QU`L_c-|D{aGlc9GTnE0W8U-OJV;|pcUjY(quhQ@E(E43xb@H+OlP(pP3gooaZ8c~JHFe4jSy9W^P*~bIqh*Oas^W$$o)>{d! zW|xBYh86?3=N=W()E~7FQRJ$eCG@h9EKRL?AdfgaT8Kg~(WKu7(V^)%KFN~c)*60R z!TOBjx)J;(7!4sQ=`YZgy==8DgReb=*o};n*Im8uRy%Ff_FIniFw!l19Ep^+>cMC2 zCiNQ@%@af?@Z%!Zl~mHw1}?nsMeW%(fo)unoS6?)3g_On+`rIYBWhm}Ec}1?de5jP zx8{8~2?6PZj?zH|rB~^Mt^$IMDiAu-5kYzaNReu#h;$KDdPh1)QA$9NDug0M=`93E z`QM!LeE1#DdEd3}#Ufwe-r0L*&s^6vGXx``5RlmG?l=qz7o=Vmyc@#*=%s zGQ;1aoJ0C$a;6pxK@~3fh^tHdXOzK;ll6xW={2J9S$1`BR`%GpS&0mKD*-0NME@mY z32e4G*P<4-l=IOf03u*wKT)`s^ge%gA?`Kh9cqBgCVU7zm>fq)^}>BGDN|D0ES1CboN{GQ8>Gc{a)@KFNBmrjA=mtqx~eeLtxqPr8AVY{0XpAv59 zY>Z$6+i%#fhMrG(D6jFPfgcyuBApn2u(NajWT~;$7LYHfyQpr@-udn>^j+l9Dm`q}0*i)LBy+I>082hAiRbO@dWml#Fj59Tw(fDn4IJ;f zYgE*Cw#87+LH^8gqV4m@e^KJG@L#7TK$&;%8hj~k@V|GSQ{_D{)360CR(>XLsLQU* z{Rz|99YIgP;f{zO`e9X4 zj~EzswLegqzbQD9=T*oBwLO?z+l!)lSQEY8-8VMf`>>xUXrAM@9Si#<8gxZ(qpyZU zLS%S<_JedHor2mUK1q2pA5u!+6$>xD*r4~#oDn3P!KgT9VudRh$Na{;vWtSnt_l}@q5OAg7pPXl`dg7{l`!C(ntSWhpAtx$B#j3teY1gc@Gt(ddJt^&q}P$n3j zwC!dzee~ok*QmLr{a{%6<5zPPS>fVi(ysLKxh>DouXi}3%}Lc{3&BdfFG06n{9l2@ z>F;eSfOG7RyvfPHFWW%l!n--ro42QYk|hiQ(^3zyxkR50yg+l$8aCHw#8Wwwak8E{ z?o~!-;8)4!v29>IK4~WuBScdw6-9DUi9#`U89A(VhCSBQKRU-X_-tu1R{P?{I1LbVl2yf0$ zQ{o|spGh>r`#Eux_=781bz9tu&eynFt0F%&nA)?o5UVR+`%%$uP=?Vx1S(2a_B+C! zUZee?cUC0@mz|Mg{fDX)77m1vAYtu7YK(n~AEnMNL`@>{mB1#qsaFM%gyihFP}@En~R5(x(fRCs?D!}AFOe2NQtxtTncg@Ky4wy zLHF1oTw;67UJczm)5sszQ3vJ%Pq+mwn;&Yb-wjJJ)3|FLhfkyngH|A#DQI{phDxW^ z5PE3CiCK>|SP0z|P_=8-?3ZbnYqnK-pt`+zsNMh0zzMm!@Vj^FrvQ!WhZ~UWpjDld z6`(-1MFUOxMooHPGuNv_jh`v8ovw0hv##?U`Yvtf?OtB>o%{<2)LZb&S0C#SH-1>S z{xf3-GYX$JX}Dnfq4bHcz`XRNn5@Ky>DQ5)c@0z@YqFK3K(JNu&EstKs|Yr%2AAqK zhV)D05S!?aWCY2ge=0g2;$( zvmFaZ8B;1X70_s(qtD{0sk3fwXlvR}p%l#q$;6u%9cyhN^9k*$4AXr=-4(p&RdRXr zZ=d5NjQ#8^y6kYd>UvvNt~K;d;l{?5&FU9|FUt4t*L^fbW#&8AGGO^oPqkH3a;moH ziFd#HJUVjARg7($VhlL0@x>08sXAW6n|N2qY#Cjn`J8>BY5w7yZs$YUm}2HDKrx)R zZ+I1C<;n9FZRUSb+nJ{{4qpTA$u2BO}mb0^?~Fl=PNw<=XzRZ!u~%WI^=$2`DH13H-3eTUmC z;#w+hXQUu-Af<@}k-h6zo2?3LyC_huAL%!>NoVEn@BX!g^oe_0HoNx9)}$R3m%5_L z@`v28I&}Hf_YCNU#(ONs^GE9A;w>qGI)?(rme8bRgUM{nNrDKj&-aX1!5g)-^0s~= z8(utj0cKI!C>y1_9OFjRLc51<($=k;8`~I`AfrC=(Q{_k5L{)n**&p z+!NZ-byNX6=<6A@3eiZ`MzB)ie{!2n2Ya^s5O|{C9`d?`Q|;%XjMV6ei;k4v6cJ8B zo8gK(c2`BTbDmRqV{osKA#FEkjSwWbx9DwkGIj1axv_?v4fKKX*fhfQV@))^mdwN) zKhx1ueP(xH(up-Ab@sG%)<2(KLjd9XanE)6Zd?h!!`N^{gx0F%qDE?i5m*FfII(*E z6I?3s(WXEcTg!Mg`SrzxFkWgrVN5l7g13oelA38M)8^`}Q@j62$&K8}VcG3c)3x|Q z$_VXs&VmH$FIUQLSv!vjMc!@)t#dDAHIwO)|8!mHc6Mix6Ommw&(7U!LJwgPxXmqU z5L9tHn#@{Pz3TaC17a13iYdNZUEQTD^K8^60|qHXWLKDU2ycYJJgLlW^x|va`-OgN zFK85~Q5%}g3B~B&@Bhh@of50}p>G{tcEA5nm?uXb4?csaVbZRZlPI6=0RK2a&_Q=t zzl!*YTgL{sY|)sertWS&;1Q4_qvD#*ju67u*{FCT{kN)UgvP4k1n1&}{p);jx`SrP z(=E6cC<22RDqu?#^|kimy(9{u(n_!0<%8yUyEQ;?NH^5mk-BdH{c3<{!PzXAeOuSb zxlFbFV<+`c)y=5+!MT-0mP(TCPYQNLqQP8pbVDQ8ntVK?Y&G%zE~Fi2^(|!n(Y3ZG zB>aHpyv+iVJ|yVcpL|%#Db#TR@^Sf#)jMwS55dzJCA{hW{k8V*xMeIO!?LR!FLgPm zYM{&=js^rMz0u5P)@71;ikw9KD%OE$F>^Ib0s`mEfmU8w>|Oq;ss|0Ynf#kC^ zDyGE_(W8-Uct`LiJ)Y-&k6TFDON@Y9?ZUC$pC_(J8d3@RP)S$&rmG-Xytx) zF@k`1faXI&{DFd)+vQ|&Lbreh6<-7IvEzB}{VH6f`tdv^!uv$XCWNK^u~TE{VRr=Y zNQRppq9>Z?WH6jL<%a0sm&XqmYZX2G7gpK#6$)8lHWGUFS*^V3*)y;pyX`RSyj$LF zHO@X(a9c1-DmI%#ya(WS{*K5~;d3JBCRb!AW`s>|BSl+fGil@vT_z;H22>n6*6!q{ zs{78bhQcGKs;hKH-o^4*`OWs0ZuA$|j~u#xmjClXE-(*KqMqNpOM2X2l#le|l-ZoC z>swc*Z*~G+d|<=iMAw;W72fdnQgq!lj>Jf`hX1mAsf6QC3%`T zgE=bi8G&IZ`*09a1mzbR$6pUjR83?Pp%Ftp2z^e|4nm2d9t;n=oi3t$3Yw)7(j7+9 zPqyrzB)09v2t94!2Nk@LcLDdDldR^W&0kgV_`QtTyYfUARE#zGe)z`~Fe(kGQe6Yr z*vzj4k@h+oIn5`Ud^ps|%`e)mT<;!KR=$VpkqnwMRVP>}%S*p{B;8!$53Ma(+l8`T z-cmd#h7w-Z_VLZ5C(o3YqgG}ikx?o|nNf1o#ruKSkeB=lOwkFc&5}C{USlGEf9rcx z+gzlK>_Coij(MfhNra~RkjmlN(&eR6=Zjt`=5{Hq+P?EzIU z#H9iH5x1w|FiUq(Gi}&7HtlfUbH$eYq3c7S=YzrUD|ro3tY!JmarW88iu%Na^Be42 zEf^x!d8^XejPCti`tXua?$SAd>$2jmKwXgVY=A#?igCIBb;O+>mRcd;4CTWgB!;?#BXQy!HA_a~e|Y73Z6Nl&Cs1#JRB$T_jGQkvtq zUl;r9f1vo#i<|5 zRV)OO&!TD-iAG;Z(do{D{`#%;;C{-2aha2|CHxNp)fycaLw4pISs~)j$}gTm#o@06 zVR|UsIB`k2mNZ)A+||8DW`y5Vxrx8`tRgfYhlv}u7OQW-a0U#HbHJ7rHU0yzP&tjb z8OA@Pi%5LB)N<=_!FFp)pTwV`J#mMT&)DMt6>Na9a@HGPwWW@+(^|PoeLzAvv&Hfn!pPA%=#*8aA%JxP)2K5F+ z7HwM!P}2$CK$s6G=GSkhUTt@Nw|+Rsusyxipy=%Xh}f{2`2glE2zqeA{K1Ib$veAp zKX{H1t81mXLr97nC8$b+fXgxoVPH}hJJ%V@tgZ_#*J5*_2C<;>>rP)ThZd@aEn(lt zKy%kZ-RBjQ`ZGDw2sUqb6t==__=fsKN#Uhz!6UCM-Fp!1(!|hhB16O5NP(*1=|ABU zK8VO^Avr6`Y@lk664iZisw}O>ybbV44`xX#LN{Rn4&RP;FaFSJonL6hy_S}dBwyow z)L9g9lBMJ@Ln(?+RW1`J+8W+8flM2dp>!Vk%9-{{Jy|E|CQ!7gR;lz&3ey7x`+dy& zM{l@|vveBEIcTq+O0vR}QfSJ4h5xlp@IcBRgjJ1`j;b93*iweHAT1fd z4?V-=w)mU&M1_OLpmUU3|LU#)3*TiP`fhr3*0k$Ny}N2`x)CjLVdCj|HPae+nSZsdkPsln|v{C5M%Uv*rqMj@K9{$O+j7q zd&U_#N{)(#>phj2prh{MrSaQ;g&N_n1iVS{Jsap2Jd~RFuIZCxeUEwG>bh08Ium&S zPj1QFSh)CfL(BA32N=M&YfHz<`|yWM^a{#@zFmW&I;lp?e?k%P=F{BBx-MiaXfNW8 zfLCzUBdHq|X<0k__(B}g-+k(|xzFky*|ir(+0rNK*OYVKp9T79AdioFU{IGz-cO#E zM226Pl}r=#@r62IkgMc`$@|I2FYInTd3>RK#%_m2^xUl*#m?=sufE-%=xkay-rAO7 zJy14Uy%?gWbrJOR`tnb2#LaDi6^Edkf5n1xOq3yquVk?EXjQur<`Hp@^)7q;s>k`; zXbgSR7QCA@*zOs;_bS5*gvtjWPi4#qgTzxRNfNe;tAc-8k@pk8uhnaN*Bn<|#O+oN zXIx>~R>oLUgGO@e`&Mb%&&8q@uk%Hnxxpn2iHr(=&r|qR2RD3@RbetgJ<}4b^~~tk z2H+5)P*qL_1dN=gkqTn&Vj?4$miX2uKdp28(vLES#a@WKDZrth`$0!Y7BrT&dHu@o zD|F-4q44RJo*%J{3UO zrwg}8aMSocth(~-qG&jM=D7;3!swaBCQuQfN-lsw0fKN1>b9$>Ckz(yR$~G&oa=^- zODmfi7MZQppvz-vN9wHlQ|VvQ2F?S$FFR?VQXi|h65HQhbcj1P7X6morgfQ~Chrnk z*5}@52E4CN>?nljGtbtkW(0k$5Pn^F>f}bb!%YVbCnS&yVVwCJ3`yEm#mp>H34be4r=ht3@<1wF&S4yRxx#hp5vPI3zZh=)^K(bdqB~lzo3K>dc9{$6 zk)Y5GTZaR=X#fTC__gI7<)ADjos-6Aurc-O@}@{T?UzxC%*G>4GydqQ}sw1k&iDhjz}$VE8qEo0ZJE#s_yz{WiZuYVg5Pc1$m>UKhCZ<+|I=o)m`r=Cw<2 zReLI{@6;wgca(S~T2kZY_(bH{b(U*lI#N&GQZn&T!k}Q*y99Y3$0lK~i5jRKHvQ5Gbs8@};wlUD$V)RC}!PYx3dRNhG*Vk;~Klb7x z7l&sH5=1-Srz<8vae0KpM=g`qetoOQCu=hv{N5)m{K1SV40LYqUga6F4xc?-wtV%kfn1$O!3eG2RYRBLa=c=GHb=j3UW%Ts`}R3G}~S0M~?o$~MgLHin#qlul?J zj;$I)zZ3gI$PE1T+S9t^lIPPpCq5HuOe7C?zNr4~4+mn)9(J|7=8=I36um**C~_A1 zACjQCe&O>~eBKP7XP*zCO+9S+oz;&D52w8Fb9EEr7^T|y-q|<$j-a_&p~1PI+Y>hL ziS~3=By&)JQik5MmCKcTk$xM$#p3mXK%npfYBe6)JK(HN=hEKZkvJ1AOjfI8lt8;2 zmA=TtYQd>tS8L8KxR1>qI3G?<>c23#l&X5t8qEiqxMw4c1oy#{XFnH>K z;IEYXKl@m-sXb~z3tF+Y>QWQT7bJCd&f1mqE?3?h*yYId4uS}B{4d#%*O`;nT_b!x z)9SENxIBMg-$%@#1wJcoI9ov$s}0kLXt^P(s&bXEF(;=&u2ll8=3?$ z{1HMm7aIR<_t0bP&fKW5s?Q7Ru zH6?D|4Bj7om1O_z8h1-5F9dYQXUv5q9Du5#P>O+csO}OA`|LG~L^QLEPQEcAzgIXB z!NUUf1O}>;=O}>&=3Poo_oi3_!Ih5QJi( zAZS*_A^UjJ&Y`+Xp}2uXgV}Cgt7U^`9jTqNRZI9-pQi166YGpDS)&35546? zI`rj-8ksHqp8dEKQ2%j0@b7uuL44HZ7eVo$Z)X&u`#1f5IGI=p`8nOV5IfjMg|JeuV(8MiJCThz zbU%ncL|v#o0qO#piVo{7o#2|F)@E(@LjL>XAE&ZK|TNeQI&HJ+Vkv&O^~(B9A@9V`F)j({h#&%3->>b_A?(o zYOm;|1@WDbE>MDAJ{41|N_%uOy~|$6m=nRHwp+|>EIMKsCO99yb!PhI*9#fhWmAxs zQ8u`~lZ}};BT6E_%Db0_06(2VH82gf}V-DjxzJEQf$y_A2I1H=Ib zp=vzAHQox5|+UkyRN7sT!^ciYDS}K*EF6yCZIJ?lwMh^+Erfh^JNoTE4W{q7o zMFR7JCDq~&8659zuUu^%Ccfp?TTQBWSZO5XpdQj>Z52mbH#gBC!Re$f85 zdU%5xwC|N105+9LqU5;V;{h{)i^|5SU1Mnd^_|!;We-h zC!H(e=qYrYl2;IavR$iT_V$|Q!kz*JniL?ra1i|MNm`=AbI-bN3>LUF&bW-L#?Jmx z0}oi!#7!WKoVZz+zo*=p2Xr=TTNj3sS&$MsDT*jAr0z|2MI@rdCvXPeIcUx58i>5H zgIrSOq_=7x*m!cAC)wy}Ag2`#8b%EyecwnoU< z-5>dOmt2=xihQgZEuiV|BDbI2(ADB`PHQI^0%4`?+`&}E9`jmr$zP>>2vf!Y>_RmG zccK<^tk{e1p;Vy&eMs|qx6`2f{Mw{&1WuHg0cgqBY#y|ABM2|xPg7dCX<vL^l~%0%w2hiCf-0fus%f9!FcH0#=Fj5g-V)G`of)uAPV*Hx5h+ffn1AT8I=*0K zP7WYS_C3l_hug;jK6>!RYne@cMo3jq`6n{*bL~OzBl__JQ+mZ}z+}Y;MiBoYVI`&b z%+S|RRhkSM3;hbuzmc?cCx{;U#*{<|P9H|{HPNI?h2vJdToxZy>nH{AHEuIls+SEw zl+}sRGQw@+)kkhiM?V%OtJD8sIHyL`M#smuv`zt^H7xX2e>4h(KhIIFFNbd%+i-{0Lep2KS4(u}Kequ)P9z#GEyfA9unEQ-@YWTlCnI6N+K`TC937?Kq> zaPGilc=$zmWBtmUqzy200C=y`^V@BEsq3lgfuj%NbsUKKPBdYhS7cn{lP6s`7Fy6+ z+xVE(>}&O6oO+Qi8R%z0sr5=5Dv40AXhsc2=xEhgBe_J9vJz}3W>u zbPDPU>Ce|~(`-SlKL}ziTfDuVj=^aWz%ogoG`%@gKHX-d4c@)QrFA#y$}}kC=XVPs zI86@S1@3Jp5Mr1NRB&M}hNC!KezxJDMHEw6c&42k8W+T`dys;gM7@c+N%@hQG2g4l zj1pJVcQ{sgdbZZ-A-uS+R40*Wu9~jE0OI1KXM#(v0oKP1OBZ2}rQ$qkvq<;x)`wk! z{^Q}c!AD~D@=xP}+cD?IcK$yW*sEM1vt_Bb{~DsY5$HlD3(^P2QT3lU=V4Ly`%I(R+9vc-WB)(0`fmo$RUq!mP&ED?E0P&7A zlvVMVnT_EAIDs#GX@i(Gjfuly`q8q9pa&dw|B~YX_1rX>(3%R><=+j+E_PaOxjC2J(54BEsRz?`BX?!yYf(umm(y>1G3*%#I16Q|xhcF9UH+e&l-w+=Y; zJE|Pzo8&joY*KwjSaklZG8gH*?h+O>7=}w$^JqOTn{_H{^mCulS{*>Oc?6#srvn+| zCGLKdPZhB|e@oheG$a&+(vq5b#YnAjnI+Len61hB|!_PEWs$^^c>()A>;(L;7* z-J|3$7NnHlSUZ~3sJ6G#f~jB95w&2gW`o$U)#ml zjt6V}SW;ZA&M^1pXJba^xTM1}u*+$P-ZY(@$MEuUaK3i!0*~{weBj>q?^F>YbEoq6zThd_}H)&A$pr1#rWS*Zs0c7bvpJ{FQCF^PE zt(eI)P}C1fZ7Va9;1;Gyz76&{Mp~NV*P$BV)@h3=CyJ!1CcI=yCJT~2&1(2em7sp} zP^zl3_O0|`-Lh3&nakOafl|Fl&Y}{HxiQsp{e=PeVosdW7=oO*D@TsBkagsj|L)2! zG1c^-v4FeQHr!vWI?4_%%=X@l&V)s>!DV(EjNnFX1$2oGV8$&@Ba2mU$l{*j$@|uz zwj`@G&1W`2#Ki_PDm>A$S(f_P2j3FC9pXsH z>fB3DCZ$X}`#q`YB_`D!P9)DEsMAk;s2R4g&U}1lDgy01heKB~$iZWuj1NDemy6l+ z!C|D^$Mv&UZ|vsp zpGpw`aLVnI@u}&I4%*xzHj{+GuK)v&`KbaV(uRQ&H z74^!}6SL+b?9eH!X)b(MEDo(rCC9VuEs-G?XN%6taKWaGonFdtJ>~#hls?vmw5%_G zrPbvEv_>S+d7ljex^K2IQ{mOyjW`%#Po4m*dVSlhJ02{JZ9is)RVCk7x<0DEO1aGC4Y8I6WxMfa07k!C~T4Y~W zCr*Zn+igkGUTIdoZ>FAr6*?yl|9ITV$XX4uLtH$Q@>SbpEmOQt9`|fH@wT%Z9yK|K zW58xxKEHdeehkB7-`#{NBsiCjTQ5l_gq=^0F#w%k-4?Y90kbn4KCtRcm9yC0E< zv7wt^MpF8gW_Dx1HxBU_hp+09zX7IdgF%MWbNm9kD;OM7&8;^f)q76E`|f{ST_-@# zjv>Nfy5en9oraDy25yC4_LqF#gr#XcJ#fa5$bGhU|xen}@SdQPg`nQ0O)T4ep|( z07?gT>1yh;N%T?B#)qpju;O_e28I)9?8yc?%gfX?6B%2^T`OFISFDYwwM}R_A`GR*q=;| zx%JTq!Z(bH13IfA0wYY@W%u-zx_8Lf7_zs#+BQFnmp;aJ!#-;s{aPusm$*WSIv)Y1 zEt0PPn)Bh`{A=4LKOoT9Y#8VED_|jQDM{L$iHT1Uc`5oLcG~P6y3#D`3)}i=!6nOH z_A4uT4CDnCm-&N0es4$Jc!}St*cEjKWNI9Zu{f$j|o!@OcmCs(=kgWx z^}l!TtGC}|kEg8N7jSv5iFJ7<2l{RP{-ggyG;2R@#f4!EWTp+Es>UU;Cg^3~{n^>)IN%X?Vm5vTn9$WW@_NwIwS zZ`r%WBuiru4s`LDFtRH|i)7VE?aKa=;tAr*T& zpN2>xTJHuU-t*lH+LWGnYtoS)5PFC|%G)jOxZG5xW#Y@`T)n z9V?0n5Cv)Z*rlQ+zBm1jd*R$qErs~1FnZ*&>{VqQxmBvV5X55*hPYnwHnrtcHQZCe ziC1V;^IqbkQvN8Lna1f9PtJ`xy$q|DJ=cvNfuml!mH(V?y53T9`Sw6kL%R~&I|F!e zUb3GwHQF`S0#EBc3ScI&Pfs;e^^?%<6<;he>?fnLe;8AqIyFI>BXQ*t-Gqf(IpG(b zC^D~HZ*faNNSv2zaKZ)2RJKU8yw=A{aqGW!h7e zqiK6Px@Yw{oo6RNWD5jK-pYH-M}`1Du1sFkWa^&XcybF z3pM`qT$Kh691tJfUb(p5ia!dKmrFgE^Q8iRpVOl;o$fGVOP7q#u2m1Y_`uBQ{wRxkdiwVt< zq2dqv1${~QpIp>kSPS|HN-|)SQKQetcriH#((Qox0F<?Vq0sWi72<)V z2MO-FXz$m~785hFc8@#?S9u1cP&WK7FENoEY5#1_x`)v_wyo~dE3UB-)8%604>;$7 z#F>%YQwjhv0#%E{yu#ooOhuKeP{ViHWmxP#%7=1o!gsQnk?d#qj<+}srX_X3l4euM zN}%u+WHP%ErU-SMqLh>Qf5X531%YuWSJ1=Jjj85L$1y>fbBbLEx2F*oj9<$^m~PtK z_}p2pLdi*PPc2A?!PUI6FCqog0+|7aT-)bia>ohE;rMiNN7AB=3L-g+2g5ov4%Fuj zD`cP3yNl3aeWTFPA+z70!Ff(c z>}OdZE%t2eKFcIK4Qoc42;X$eGM4F=cEJ6I-Aav~8)A}Mbc?u(dYuK<1Z{*W#7woJ zYozAUtI*)hZ`CtZNN=~5Z`P+PFHeMu8%Ru{!{*|#qIlv_|A!RG{`IMzv1sS~ZQgjv z`b5nZ81~F9s>YQR#%zY1-mPa9U|#T3O{_ZEPk_vtInl4-7x(yQe)d;%^B6d-4mYFugVxWk?!ntcACvZO?+uv+iN+w{RM*28^RUr?ZGNqHjUeZ$ zqZY~O&>R~lYzpyI2;Fp^YXu;x(9i9I@2YBMrRsfXsKM&K$6r64L1a3zS!day$RpUQ z49POG{2op3W~{T5ftrPJTycU5;lbt~zeT(F@!MHwaW^V7FZtfrJI&H2#36^OzGGoa zoi??Yv1SP9Ief1w0iq=h@oCx5x;g>|z`{ zgSrdRJCopWOE@mAI^2PaoKbM|30K#NWsNQ(6Qy77i+iTtiXm>UzAyb8BvO1{-jy~9 zKC;Wm%JNBp9Q+~?`{Ve8rM83L%o0I;u)tFq$b6G*Znrp@dh&R(`Y)-9dt#eGEkgaU zJ!YL?qp}>nm}4EJTG{kO>sH^2*V*_ZtnEHC4S~M%okz90V`O=w{SJn2B>TYl;;sO>*qMergfPQvKK?vGMHYb+Z?r#VdX~8;(l!fHq*%V$#1N72?op4gNFPs zS&B~n)EtcKb#>hNQen{KF+Q+>zQ*#2>+AWFZzFCE?z8W96+h1Zc*QEHY{tu%d}w5y zUZZ^YfgV2X8AlHYY|7)>hHs~C03*FL8l|fc7beg<=D+gM@@M%AVvyA6rpR)K#SoYp zNkUb@{ShzM0UXptntv!r33DKpakE%`H!J~;@E^}a)amhyy3#x?o<2!xZq`V-kP1*u zKTfj2C|G6p{TFQ(pxoKtDIQE5&>U7{y6gI^kO3i{(Dp1v<@>EzGOr53{Pa?I5Hw;$ zH_?Jk3>8+~J3fE+E%C}jQdYO-$DS^&6%w;ekAF^UdVZrx>Tlx4n$^LGn*`sltN`{Y`hMQ3{~U3-lIy{ z1~2+|u7jd~EW$wFBe^IdO`F<7#!G`Q~;7m0umTJD;5ogkeBG!l135YME3R&6KSIc7rLg*3VFw|9ZdYFvje-a?Wz-osmytlF>HS`9#v!YU%1pOE$~ z?dBn$&qWN=n)yDSvI@Y?HXuKXA-{d$P$9)6`X*85Y^i$;{fB5?8zBO909UiRPC4r_ z=OoeMTz@(fEk&Gs% zjWc*7IJz+sxd&SvOh9{dru$KznpOSvxpbP_*fJ7O*lnNOjJNIZC&&?k|BwtWG# zy#N#Yv9YA#GfGZ~0_?KUi75o*Z|u~40Ghyxg8CIPx8c5q2|-$arW4u-veV-W=4+l& zg{Jvj%ZPd?wJdNYev-c6MQ^dF=4W~K9hzRrNBn0}XVU6!pjvROCssHO_1%SfLdRiK zx9-T3u}2uN*o#@s{%&^M;3%F~00HF;be(yw2^M(LtjL3o~T&oIs!ImO*nW|NT)c{?~qg*p$Oy>DI-GEIM1=S)CN> zRaqB0GoRv*q2lCjr$kwsZ5nH@)D*k-<9K6qjEP?prcGFEL!arexi_9$Q=k>(#QMh` znU8YE=E}E!@wLtHU<1Jm-CpHLptG9oFh{>Fr@xDFn*u?2Doi2ywQ%e1e9XqP6}07d zF{Jl=nwPw$f!n9^#bMuI$BUFs^!y6=Ps;Q;o7caJg>@s0dM*j?a!!m(Q35?9Pb0K{ zKI8g;=56gl5kWZ`)b$b^@WqsWv+Ah_ljh;5@syaolQF~G?tY$g#-3{JHzHwhCPejHxzFY+$J4()^ zj4H;Gipz#dbqOMI>&USOh%r$;Ff_fwaIm*!ES{ZLS$)`ntmL%&UHBN~w$E;EOw!~Q zp0G&Clv${%#i02w~Y&z6YiX z4d1nlo*p%TA=FwL_O@3==M@wlhvJ9X*LPl|Zls=SMqW>2W#y-y?F}1rbX}sx51f;T z2fw6_IIk8y{e8`|w&$RP=5hJ#9MAkuF2=T#&WX=omvMyT$sOMpJdG~3GhYe&7N=H~ z!d$PCT16t}#;o`Cpig`U1#=~jy;RnIC#Nqp%35{jQ=>mxCl~J4#iWzon@zY4Z6Cf% zPI;KN*U+5W|NFEXlu@i^Z!-?}hp{WcRXNV8l1bR=I2iZ8c*hFuQ(Oua+Z6ap;D&8B0Gy^4pEc zDEGb1aAxznBJJ7|?k%3q_7_FFWM*S1rClz4@EB#=z0mlWk^2NumiyORmB8j+tZ%jY zPtE#bUik0q8q6JRq3Z_J7jbVEszg}x+c1j@L^I?!to^7tlbyO4%H<4;mN5zo|4|Ff z@O+iz#`&)u1X@SM0QbvU+py(~KFW@!i!_a;Z$J$gkdzscrlzfZM1YF%MwJ&e$tw8b z0Z}#;N=Y)z$&-ez<5(1116<|A~t>t?-YDM&rR31 z(9mN{12my5Wo@~K*OPqvrq6OxlA13Yb#+XQhL3#+LArfSSIRZtDV3Q~0^0u!ye5a; zYlt5K6f$S7Z2@G0C?n!2c82#jFZ8HkkEgmMr-dq8FcIf8W95GTB$3VRVb&x8pLkZA zn>mi~i1%ErDc7VumCA^V#~3@qZ}7HRGtO{9?Z1-A@|n{x&ofWSx(Al?idO9Ggo~S& z#>J?90}9af?VaS#B>r>sm%);XzEuMSd&j(SSGgGA@A0Dr_fHsF4}DJ9y@Cq}gphI1fIihT zsU^dCr?|vDeN=K;Yw-G8!dOp>`yS=4$(kIZbjH;!S&`T+*_j=oUV@aSgwPhgAii!N zpv-cs#G7BU_@9FC|N7h7Q(j@(@J`R#RR~LZXnwmsw%ygFJ>SRrl5VUI0)r`b&>wZ>Y?o9WPHy$vQ zhVS{yegYbT%0soa>@%q;*=BU+daqFPxf`2K<6NH}}!>KA>J z@PlcStR-z!&+{v4AM+@=dOB!%VnidK>Gu=85)u`Km-Vj*(+vYa1KqabQB4_-xCQkH zzPkbE?wTuu1uwYPWBuhQ9M45%oOMIw_QQUI%p~6NB+bq>nCgKzU;)echmD^KPG#T^ zCBttuxblYJ>YG<)g+e}?lIN#?2uS&V?Y(tZTW_~EnuGwsp~Z^?sLP&LyALNXz}76oE8cFL2;)Pio1m*@8Wshv(Mg7yFb7g<1q3^WDM52*PQn~ z?V8uTMR%nHozu5VH}7*-5fQIJ1YA2$+sli+g5v0Ig4rdF&Vcu$W5_H7_E@%k?pcNU z`l-!O!+#i$^N(dd08q^_Gxcyq3Bve}$3{8*_rY~8nsKS7b>^taTNaArEFxNy?#uZ` z`&lM^b+(U@qCsqVl~iq@;Qm|dde@VRV&@>?c`YYxk35O5^8u*9&f0o|NxYzjS`kUeZ5qPgus9BiCr;8@7^EUTmPWR}|E?LTYkUnUyjn_u({b}n4x&&LM46M^@kO1sh0+Yd!&ATyTwjI?r|^?3M1oA z6QD0dABr@ixc&CuH3CpSkXII(~c+I`FVYevPZtm8Vk4oWV-cy4|_v zqiSQEh3|+Uwsl=!qv~@@j8Mp41)ZaRC(iS1Hx>fYR6(ntye_76MimneKII+0B+pXC zNWx|oC?NbPs|g9GjwITxw&h(F@#AOI8osU1&eZmEYW=&GbxN88JBXW8!Dc=W4g zThPFAFv68f^NHwD?R|+Ey>2CpOM?UPm)3iE;25b70ddp(3vEPL&aB+|s^7Tqu8Sm3 z%mx4O`Wd+b5q5zO#ui%Jf|g!P#s9YKv)uz|JSN`OS?Tlnj-Oty{1pO)lkCyEgTXYou3Q<)$o0D5uOA-1uGp_@@`7 zV`K-po=Sb!glqB+=4#EN92tgfqfl?uC=^t0S?>u`_{LS3)7W3+XaGRwG`#O(FwT72 za+$rvJ&S~~MgHC1kfkRhBCU+n4UoA0HKGZ3c{3_7ijzo7r+Spw@p!`W z5bAdD94Pb20jSk^v1IK(nQ4G@nEts{(LYjd8V`m}O@Nt^mEhcdx+dZxD??)VF?Joz zOq%%)+eX>)OOk%b<9>F((Y?eo?gE`B)ZE#3o+!lyUED55k8-0YX2N`-h=aq?cCFhL zsqM}_lR#r~nVGVez{)ZN!do%U+jy#6)(C4DwD!Qgr%5RPO5+a&*@MD(Q=}Il;NWlU zY}J(@-$SK~+<6Z&AEg1^R?nG(Q#(WOGx-SU(Z%8^YnMBO`M9SYzT3W^zDps?VK=$#xy}@hecHpa>9S$TncY zb)sf|tMo+--DUi^Q7%~I%DhWz`cWv5ZT#$tWx=S>Zt?{!smMZW)7ycqGbe`JRbGw1 zKODB8Cj|uKP%5&M3VI+P)jnTQk}H(DS9%}HS^NkE(s`;Hje+r$W6=d8t5u0;=&~8l z15HMvPDHJbvih%Qq>K;~6;6;*0uVwYpI*$qGOo@gZ`MNm-R)@2lYp}H=*9BM88o_S zUaGYeTs<)1C(!Y(p<&?xxNVLBI6XaOPLy2c{V7SnCVAa*GEV;=ntZO+Kxr00MnBqo zb6Up-(;nGj0B?JJ?5C06a=_WcAS#Xw3q(1`pa>LElxF7>XeY}Pc`>E7j{%Z7&HWx% z<1gQ5qWZb%E!?^Z09{NjXWh0S&KsJT5s#~Ce5&nw$tOA@aDezqtA#CZy#SS&G7{|q zZicTtP-4AwPZfV#%I)(5r+eQKG(66t3^ip36B@!USID^DafC0JG9_tri&6p(>eZmi zd(iqQ%u`LH>RDW$jvwLdJ(K8--cGcFEZ(P~uIzmb!Fxn>5)msyg_(7C?T{cYdjHx| zrAZ-aw-edyg(GjUAK19j!#8;g>KXrV6@yF8fyPg#)Qmggc<0zw=z~t-x6@R!g?`MD zW>h9CapV$#Y)30lD{l~g-FYV{SDtPsRrQ&Jp0%fad9?pQzn#vV3iY{c=AU(=t`k&G zKdw)s16rDnD%3aBTb4Zzi$xG$Hj-OdM#Iu|Ig&G+G)6Nc>e(fTHZQFZ&57*=&@nT{ zi-8%V&UFE$0CpS`74!1(xOvYvAz}D7|5Q5}i{d)`oI{1o!L2Zu_$6#CLC32_$pm)02iV4wm64$62gHJlvJgS;R0Hjb2A|8lJeSA|jTI@jQS)JKs( zCf>kQ)j*jo#qS3ECr=nZEfoZP5X8MDFKYS4OtS@d)_l!ru+`}8GZFYJAgki(j2mX= zV7j#YDHqqLEjPRb^A`>CH|-qIK$n>p4hg+asDs|Hj$u5nXiz`9Ile!^S-Qyd>Ctls zJ&;bep`kOM;4oNP%7@ct_`FL`_9aN2tBHj#mv9<`HBd-X7IPiLAMfo?%v7JsQ7YDM z9W485_lEPmJ1#QIF^vZ%%<5-$$;F@Y`Db7pPVs*sRE+{^s6gFavqgE;w3{CF>l!KF z2sHbaCZp2#nH+^)3rkSbN(?`joLJVLOy@3d2&rl#dB1;eT*&Bao34#W!m-4mu4Nsu zr>5l_ZTmZO*@@V1kNIx*(Nd&<*qO(sASRi%yR8)hk zZ_kQ=!36f($LnnoZ9K!{Bt0CuW%`49Qy*x zNao&6He|ARB{*b@ugs$t&VO$n@ohpRWrRxJlUe6L_m3P*_T+gqyWyob>eUW&eT<|G z9IV;ch^(Dm&I3D7%g!Bun0ej;s^UMKrE2l;{@?Zu>g8LQ5;Y6;I2U#oh^kHT^_ z9F?=ID~_QW@g5@O=ty>OUg}TgcyEv7fOa;&`ENxrE4SiJ^j;eG&XIHyeU6>fzpN|w zhjO+SL=<+94_u)uLs_{`p~%`QVuyM(bkE6)P$XK0-tp)3#TDuH@* z_B2$we&uz7@^Q;ip{JYg_pDNXGM|wab)6b6Qq)zV$*}x5xeHO{W>^t1s%bMmU?eNn zkQ$r93Lz!hJ06bYoTyO7U6?VAUc`S2+u-ES zLArh~>9gLr5N2y#bfhHzO{vyJ*rX<~PB@5%FDY&rYkpD+_y&Z-9E(G2%gNgMY`~g; zAW6BufD;z^&39@c*C#0C*`-bb1i~s4>wL$R5fmoP^0WF`8}p&!Zi_^`a*)7VW#`uN zBzhKD=!)!N4oxBiBm^1(D6>cagOyrwILYnTp=tbXH^@@9{!XvNh)a&uC3UxHAJkaH zJbspy2@|sA@BB9nM&_T-uo~J-Ih_=P+CEio?Gd_ydaAs&q7i+F4DNnjZWIw^TrC$3 zmC!>LX5V|Ozb4=FArjkSQ{`;pYChrz4mryTAl$`u3@xwYW}hcF?H!1?nK?*o+xpFu z3bEpR^ z%%(r{wtMHdGMxsKLhjSE$nB}QU}^K1V3mQ?B}DA9F(MOt9SV_t71KIJ&l~T5MmjWs zZ5_z|Wb!ApY+V-!8`ei;OV^xb!QWH`b*Zj=RsCr4KDT9kupoh~M`^!BydugD%(l;z z7My(WsaK*p=q04{0)Ag0!W9$(N?Z9DGkx5C(Lz`G<@|W653XGc;mm!!AOVy#nkNb4 zQd4$<&g1ub-!F_@QUhD;hquXwUg*6fv3{L^&A~3whu>_!0~)zm>)Eh`GujgO`9goq zoIewvRp94Ydb`96j9wLt&!Ii8!HU5=G z0;%btPvWf@XOx^`LY$V(MuNgYZPSsv)|gj7`}AQ`XlXajh&3v6sNRt*=EJhiy}nt|48XRi#WQ5yO^|b+Q0MUJB6@HDjJT2trpi2I6f))oNTz;fuicty3p#gi*nfj#kjXnMHnIW>6o5#zfBRwg9fD#3D!Hr^7Y#ZWD% z2GJ1tB^q8F+g4u*Gw5NKpUhMQMNd9CBKuruBxG83|FGGEqWf%kRCB^6^Y#X0Olqom zbaNbGyWbOd;qVfjoELaGs4QV`@Lqur6(vDej50f9(X9hg(@oniH5*aY*JD*JoOg|p z;`h)rJx=oW*^Ax^Ai9U%-HO4`T;BdMw0M|_MOY=I*V^7vKpd~v4s>@v%R-YG;a*e3 z%*iO?$^u}Z_}p3<63}(Mv%z1Hs)2PGRK&D^_cKV{+W=_re@0!vN5^wI2*WG+c$K-^ zFzx;PW0lsd&cMij+$IrYkqjWK8pv%a8JFd&%Yu=82VYN$4dZ;3VUl2_)Z3(uMSx z@Pf*yLewVj%$NRZcQJ5|vkMy1`N}~uOL@du+@7Iqs-Rq}TUc|_a7&@=`$u0>z<%{Z zxdP^M@z=!(+_FAjE;SW{`lNOuu04gnIk2kN{i7L)|yy|6+A^PwnnJ3>>7Mu_wMf&d4LN%l2cZ~sChN0F{v^bR!o>3e zK39A_=V~lWdra*+3Z^Hh_cbXvs&ftrBMsmCAg)IG#$U6S^9>o2VgACeH?^VbKOV$U zZ%Y&%w=0WjgIWhJ(dn5Qm47Hbs;Q;88tuPy+A$+K2uRICZNug29q65 zqmMLAQui1bD!seEbK8(R`IUk(e^2fT3+zkeSZpPeI zQGBdp7|wu{OKIzy>F$9maI?YtFq*}5SPkpr1j|>#XM6hh3b{)b_x=L6MM6C(i{3cNu?qWM8-O%c#{gtsBVmZNc9nTgZkYb1QOq| z%U2ZhUlZzCkNkwj)60$BCbt|xs8rpk7Rlw-2PWH!M7s&s*J;-r%oNqw&~>!T-08SR zCTPzTYi0Xv$Ge-kbqg8-5}B4No8dXg1dbj_`jm9+cqF$^E1@Map}ouTd)ECkXJJz2 z8gE)k;!ApYoH7g|+KaHp&2M0pnyJ$_6{`^>9~t!CiLtu&+OoF}7qoQifE4FYG1o?& z|1?RwgTcT#yn;#lDC{K#jy42fl34Q(N&WSp$Zj&8?Waa72(Uof&{Jz;+pLt{Q~wfO zq^4kzcbR+}Xq2WWfSCM(@W9<#{wmUrlSbUETSQO_Ncf&f0DaMD)|9`@ zpr8+)K97i|pVxR4b1DWYF-hpllt1~*5T(ylGdd3gF_R4Nv}YcG`G)~lC^^?F2O5)Y zP6r_iW}>5UySKkQ`}4^oLAr^5l!hz>n_@_X-4PSSH+rnB7mFn)^yyOqs8^YgQ=w&} z?X*QX8|COHqP}EckYB&k)VX4z(qNBwrv2u|-49zMGpiyKvP?fy{j99M3I={&k_c|5d;)wWXECT8&0~mp97eAtoBghTiIV4CA#KnjT& zBH=ybf94?4_G?*2Hsr0^cz&gT|BQe$dm$NQ z!==vpebYvovwJO!!_|fQ;2>Gu!8I-=Jy^(5>-gB_iQbodtj6&ja6A-+4AS4;xUi%jC7lr1 zxAcuU;jK`(UOV!$Jq4ATxFfC!8I(f~L7lf`aacrQ>*-0niLQMjf1w)%30=+GKfuCyD(bo(Y^uMw~nD0bmg2@%}1Z`$9|zBJ`X$ zdfSI=b~=>LPWI+MTOojn39w7;Vt52p1V{IYe`&4*D)um-87*5Y1h(!95snZmX3k|* zhwSfTF2Kgi7$;MHV|i1UU^qdj1};O5$HV~I$&>k=xnNZXTJbQg^oKeKK89fc=~(`% z5g4O4BGa3z=VyEdz_UEE+O zc4BAm^}%d|cr@cWA!%4}W+r61DGGI>H0j$+P`yFlZ7vz| z9URjWriJ12D?%)#mXk6r7sI7RliRENhQq7Wn)OuXg6?sWx<`4BUZ40*o(_glhRZPW zM!`Xtz^cOXQAWJ^OHpWBnIYX<9(Kt~AdG^ynMEUUxQ+ry%zHd~K2^f!y53e9aJE8$ z>&OE-eXYwgm$27*Ch}ew;6{dikt@m)7W2}yZ*nN13&_KLch*r?(Q+4pf9SI=p!?Kt zuNCrtV3DTOs{im6kkB8%!NtMsl6J;kB+nK9vj1E&fc;mi88l%Gb-oH-85a&2;))76 zW>pcl?hq%*;)Cc3x{H|}j>dY^Iqp4DTz!#u~0Xz%oJrLO=y zT35MS`gZWL-P6UY{Fh)kG8|ofxCl~15G$hh;j1Wl%~dlY=-J+Is=&tTE1>nqSP{i6 zsh<_FS{cAPL%F zMu)fcPi~H{*}5PhpU-MKB5W{7;2Ep9Fs!$fR?g`AS$4ujD+gV7nSWHo34zw3Wul5&y5&XL?LGch39AK z0qX+TNfK< z1Si!{lcG=P;l1OwyIV9JoSSRUTQ*72D6L=v)O&nz9TwNtDb+}K{1#^4(qN2;QfbUc z-J=sJy|)LsnRh!*%`7DE2vj_8JEYyO1GplL|3<6`tYPhZKp>~I?|ta)RL~mPP5<&H z?W>MA4`~lu5A!W$VnHbiH_hFFOv86D#}(0vMEBOr5qWUy{rZX(oQ9^d5fFRA(g-D zk5b(af0t%fUehwBUA34iWcQz}*^=#LkYa%H^xW>;A?)q!#cVDJ%MT1faeTOzp zui$HljlG+Yw}RUZ)<~Cp5?$h7B0&`SIbRIJQ6V}NAI2{-<;G~Q^^*f z7=*0vX=PSxDej}wa}mv@PyA~fm?#N}1mmMwg`F(=cKXvH3d{XPS@zCn+?f=SYNt&p zF4Rd1xQKtMT@ob`ib6pOjJSh$An(9!JS+tIx9UCsMNPO$+oRvw>l9C-G7$+HKX_VBm4%emE<9{Nc@K(&F zf`q=Kjq8ZaW}AnyHStjG!KG7OWq4Se{(x4xF3;S@^vW-Vu(FYEyjDiJ7N@+KsY2jP zOV)98?hX}$(Py;Cs>qt@OD79VXZ?bPlDIKsduAL;Y5LKB)D+7<6yNl^n zi$Rvt@rTP!bmH#rFj!e2vd-x6C1k2pEF{})s&MZecS4d&t~gHIh2G9U_LDZ4ygw6PtnSXO=1#3;Jo-J4 zRZ7Q2p8Bg`9II{BwTzxQWQ(sWS+lrH#@ShUA}Y3HV9bJTkSLQg8IDk0HMA4CT5SnoN&g39cR&b$HQUWeFW;pv+Kv#L@(G-cly~K0flVEC_Ep@b#4lb4yc`f zvv*5y4dku!OaT~e^*>1(|NU{|JS?rw`4Oy&TE2ivlJk&a9=H7ETw6ogir5I@3CFjW z{o>bE^M_)N9ho~rV#-Lr@xg=4F);SNUzD5N&1aPQMm3;IIR?!z#pZ4jGA1bF#JIEp z4^wzb6yX|NSTdTc)KAlh8+TeIaq(~@dDGPEQPXvZ>|0FTSDB-IpddDM2(>qGy_p~d zBeX6&F(qzPALhu@g`=&{h6>TJTm`CFspymD{kbR`!Vn>{RfP=9&IfITiyj^^$Q>-M zKkiyh{!7l`Imx+8IWN4*u7aY1@-N&n5D{PDi(^rsGx-jQx_kD?o3&b@bumO~#-KR* z9b}1;iu@`34liq2(~IuWbjh+yIX_^XJ*WYX^bv<5Fb3W1>G_YkoOTZ|Pc}m{X!e5z z%he49?^E>V3zm&=s*BDxKfZYtahkSwdBrKJU;%QL^vhSR2}27ujE4qsf@m_(&*hdO zgxPA=ANPu^Ij1->+$t)$53LRkN}vxyW=3d9g?G6Y{0y8nYWecrIm~47$uL#HoB3Wk zfgE-SWWynNJ0&&(b&F9i0je1HBfxN+JYFLuUB8k%tHIW#4u|&b{G6hu_n%W@Fm-RaB@`3g| zwwnD^eZetC%9UsM&k-QxhsPn?2@nhi#hk*=4JuF>on5R(6u`n@u+sT8g$3$7QDc?y z0k2iA_hskBb=-%eSsTR8q14z><6*p&p{)+onJbt@_`zg5Hlrp|r{}2rHH*&E&{-bn zC@ZRPbQmRCk{<^oYmTQ{xJmu>v3y`LG{PTGmvE^3)21mdYP#8LP=c5`j>RCAx0h|x zAInAH?HE*I#3tfy`Jtxdx^7qeAsv7j@=yN3vy(R^iVb01AHTNu4Ag& z6B8#1ZE`m)=jS8yt`th`)sfb!;+$xQfYt=?Y8@3Xpt|}?<2>R+)n~F za@Np(a5C^C@WlFl>7_#zd2P|_jS6RNq_~d_bQ7|(-Zf2|hw}F!)@8|rXv`sfib2oh zcNUS!JQ3~v7TarcYgoFaS7R+Rc1g_^V^&QYBmSik*jo-JP(KMj#Bu#_i?Vk@>4|Y} z_G~gT*vWtS5e#Jg%B==sAu7t0U@j8^LUz<7U;vmH@$Y6;HUaSGWVbR4)OpL?VaRLm zSyRI1SVHJiA~`840;C>tUl&Q5t3Xu13Nz|LVt#*REml@?x;Wwow~ojYi|JTo{!~r| zreuBkO}M0l>dk_{8uMe{^+15wvh8)g)2wS3;k!V>SWV-4*|fWBty6$Wjj3-1kV!lC z@HHRERBQcRsQODjpYFLb}UCq zZTdoR1`d9TXso_W3r0W7AA%xO3XoKs({EHD*%^l(ae7 zzgFhqZd*rQ%pOBKo6lq_s}X_d@$hG=o8PagTA?=k&ktV~}mNkSchVVDXy3dK)+ zVCKEZ793#`^(NhRW9S~${-}fMc*LDv{I&V7gdO#GT*oNMr`o24o|I{K@8L~_oAzFt z++P4(od10%7W%p6C2@s|*F>;mUt=D5UQqQjt?jY>#UH=*k9#Js4_^^YwGa%UknAiZ%xEF-kv~vl$TY zn4Gp|-a8D>$BvyxNUULs5hg4TTxO+gYc?)@;j_Sd!t{S|TrWe5E)jlDPLp$%20;0H zu$EMwR>C&PI@w3Njw9zyfpwpJWZmt$1|AF;=IB+kuYa(W`0>gMjjNC0+rxFXH3Zk7 zVZCO6%WJqwI3r|q-VRJoZQYVY^c>oVZ7GhOTB0aA%$orsgKcbIpaIm)-txGn3U|Bq zFXv|z((t^Dt=kCv`dkuB8MBZ3XnQB;H6)N5pn(f)Qe$|VO01|0c_8>R(U?OiNetR; z@VsfdWKG^TY3Pfkv}rYeQIK_^RhkInlncI|wsB;j@eWiH1&5|3H_E%MzLJ0O^~uv_ zQpKb^dj7Ia?$rwU(7TgES-W;nIrV>51U@Rp^3VP3d^>tOdBi0Zw52U+`o%|Yr%!P# zt8+NT-3OwCK;%8zlK}=DDj%CxD!s_z^Pds(4#(k41&2R#^oPhiB}1Pb^q;ls$b9nd zd(|_Q@13PMLJ;D^J0B<`h&q-B0O4*g<3Z%m_KrF{NK(OV_-B;5-k2=w_+pj9YIx9z zPe;q&6`WHOu$iOO5~SL zAAGLvqO6sz1S?r z`9VC;BV>(E;dN`%u26}v$#i{rycA8Z|L^jwIeMuh zky8~j1T*bo!}wy>>ztbk65FR*n2BY~9d^Z_H)zdT&d>*Ev{Gs`+CN<^Pa{_s(2F7L zYnMuI{mBDzo`yP~Q1^UB{!xPJT*O5beNY_4oKGU9jpyy=XMsXOh(M!`^->g=8S*iz zSI~;Gsc>nui)$1SIkkniV7{4;q;9D;9YrSCn|moNw%HU?j4Lq%cBY1Gw4y%$?K z8a0(!KX%KKT9Dl}qW&f0x*M_5d*DA^TdlSo5uDLwOCR=Jdy)rs_}C47VnX_e4Wh7B zV~8{h?MnC5rlvH`*n=sy{~DvsyAI!UZ+@Ox?`k^RXLBo)DmdtdqjzmzHWhZOmBn$s zTJB&!K=|nn+fTpdz>{FfhN%@nZ25SA;aFzhC80Si?$XrjF8myRKI}7xf{i4ay*0NP zx^+F7FU7oBI2feE4FR(i#Z(|A6_f=beSX-*Pv?|5f4rU}&OK@(*BYfNY7(Z+|FJ+i z@g7nm46C3rsyeo=J!m|WUFFMs1jIp$Wl!$5OWNMNc(jr1Qj^ikh<~(VNXE7+Kj^p2 z<7@H6MvA5SQ;_n0ry%`u=r=N>5^?^y(I}Y^!KIlHt2ARVNy=)f4g!Ce`AlzDy*02N zkF!4QeG#D-#1*iKJN|Q*Q@L?5B{M;xn(wO1C?&oby`5j)8lS!=DXy*T#^uIFWg$c2 zz&*g$Xy#^OeIVhNMZgD?o#xD8U#R*|HtLn(5XzjSmoJ(cbxbU^gPPZd zVz%ca_0mLmEhalBmH>hx@rp@c{p?`S*lxoe_Na_WulP%Wmnr9ZJ|2-ZRhM{(*wrW^ zvu6rDhR@zUba9J(L8K`O9z#FbH$7TZl5C}on-2A{xMp%Q>EuiPxaa7m$B=1VI8z7O zdbNU81b=cw3yj1#)Y{)&X6&{}*T?6PlpVA_8&mg%&fX7%9&^T>_Rx}fOS4~PJ^6m@ z?aGL`m6etjxU~9*g#QIAls!MJHR}O#ujib>?+ig=6)6{s4RoV>8!c;$gIDgEdL2EB zyoM+?eMeb6*%5`$uJtJ<9hBreyUN*BwO;QX5Eo(0QpXcK`##eHW0#zxUtJq2JFum@ z&DQm_R|03jKR8)%giPZ;J?hrk3+@%*3J>3kK*nVBRGyCVYgn6YZtryqYDH|aHP&FC0WvMT^$|*faY9; zf_>rXPetoI2ENhM?A!|Xr##NQP9ydf@2Cp5I;=D-f#>GSCnj;bw#T-a813Q6C$pYgR|!pcHCRe;%`CB#QYDBPky&E`j>3qj_(V! zJlfmqJQ8R1Xftot@jlCcJx067PYJrF4NAF)Xt-3PTRncv|5u!}N_NBfKA%2%`t%xP zQZtCK#1Qp1y)ETkZ(?FSPy8r6UgA;~uS{}sOyT6T80DAsM>mb!=c{;noV~gBU$+Ss z8>GB^u;WpL_??8{=p3Y@$^+|B0-TcI;Bk#M%FZt_M5{*Y3=%R5`+|#@myp0|?YKg{ zu1(?1z0*C`2N)#m?N9cZZ45Z+#fQgT)gC!M?F9Q!Cq4|;`OOi>QE(Qwr2Up+Qj@+Q zqsi{(@@?l!jVzWwr9w2O5Jm`q+7hQz6L$KhmI$l(nN0b9Sk!axRIco~Jg{xjh) zUyfe|8xSab2p8?xkhTv?J-w@Ob|w*u2J*)ne$tlNVz(oDsabC}p8ELvp87GM$k@wn zQIWY1bb&w##eYrb0)=>0z!}}({j?Z`afX9}CyG7c?;^!~$o36J`{AH33)80&5Z}p8 zCs?tzf%2{WLg9Z(epES(l8<&cE-fd3CF=cr?S*$)%osZ0DqtlA z3H*u4`?1BgKo>2B;1^{s>Myy?KpgKVT}wyr!7iJ=Ag=8=WBpof8R7}qJy1A!M@1GT8e~h-zOi%v8t+uh#}<@ZCm_~$lPM#Ws2%jL^E}?V97?J{nR9nLOhX0|+HHuoRMoaXeGQDlCEmqz#I21} zxVM-dwAHM`E9O&$TE0|RV##i2nqk*oz*D}wx!1C8Ui-;rdi01w&_9I6wpD`i{N(ogaAZe-Fef&->m!k&GS@NrED$% zAnv@1EO)2Zy{4{)bK+_~W<=`uJ@?34p$l%%tGp5R{TYwrk7qt_6B~S6ic8H*Pv@&> zjXCtsnv!C>1sUTFvN~B{E!G z@niB?X;m-EU22G+L!8s4Tl@=Ue)p~|9Lw?2hgt}_Fs`YK--X)GEhk`e6E2vcz`b&` zooF&AqZV>YGER0dnKe-&v3<|b4`|%%6rb63szaxU{5@-~f{J9Y{W!HzCj40z zFdDMqAk|0K#A~RyhY?L$jzU=hEQP6Aab!Agb&(~gQu^|mz549Qde=USfBp$?E2XL{ zSuY8=O1W0K@s;JiFq{PrD`lKa+jzhuO|9eY^UI6x;_Pw>d7d+iE7wZd{a`y^>M zjre{k8A-@XFg56>wmOQE7hN9aVOd)w1P8S{^ySPJT`$wM0KtdTycjY(sJy3Kd0@z* zrcncRhgsj5LRiVQINrK+30VYfLV&?FF?iV*x8bma0?ehm!_FvFw7J4o?`~HtzC2jr z=(o*a1fOJ&P^}9`c`H&2*@h75bynyko*Ett?i4%?CGl@M)1Zd@g<1SxN2?|u;1Fmw z@U14m)=>~f`P8@vJZ~?mVwWJ^d29FEzQoMx#mJDZKa+3BnA8a~E;N2U7$2&Gv|02e zyU4!vsE}snlgnbMeh^Ei*V_1|Lq=YCX7@*VTGf4&(sam&JjrT%h2^S-J5y&H4@#E~ zpt>qO!`k+Ea4qK~2v6xK=94LeZE$}XpGc@eWB?**769}N0>D*RMwIlX+g zHf<0kSN@6*T*CRnl|&>=&YbtdCV$RF-0i12nsqhJ>{8MF0Bw z(AB8!HuaGseKrlf{QE$m`7ik^0EwRoxJsO8Di1IKCxmIg|KO^%LC)2uE#HnWf}JI7&e<*=}q?yEErM6=oThGZ5hEP<5JOcR6fHJL3d)yLMGX#1t1fvZpwL^*LYkG|6$E6a6Gs^jeRxAK;q$vB z_qk1eei_+bS^nY9W{8Ud4?LA@ri&!bNqY~~xKz)7;{+-ue_eBZ5U^%r*NYw$ysqsq zWYmYCdw$HCm4KDJXGDl&V7ZSz`VCj-NOEvFtNEIF1hbVjmh zgOa=7g}Wjm9noB}ktl#kdw_E6BjkHa*l6Yc{La|BEFt=i>xm*+&L5?ljj~O4D@U?6VQrR}k-2dzI@^8^M>%!GbX-~x0JN1&k)8?sGIb~4f3nfy zuuL?6Sl{#gB?-O=q7suycw&-h7H|3E5R9CFX=<2Qk;~ zMzp_gIeB#^zix-FdJ$Z4WwK)6B+KC0dZbo+SZf`j|5@PCNxp&|;=dl-f4vFbGDJe= zaDfUX@ffdbiJpjdIna?%&_j7s)uU;<4UIv(0zbkiFl2r5^I$2PZ^O`=1B9OV-L2{n zV#C^osF@4xrk6(tPa<({j-?rYdYcR9tw!;)mguv@F8H6a0xlYF1YE6$JG=MVb`s<+ z^!*iWH4w+ujsEJ{H-p!DGVc-9CwA8#ZDcj$?owag7Ct5J0}4CKMBX@&xW0Xv4}4=gi&i0(YOb7;I4j%TTeGz$tGQ;O z9G%@S<9ZZ+@T1B_yiZwsYbct(A>!b!6SgPB?Cat0%S6H(zpiQs<`)TivK(~9GG-GXJVaMsVe_{`|iC(*1b%g*ibp-ul=4wHLc6RaOHbOv5R zG0%RPF4p))4BY>38}Hw%-u8v$8kO2?q`_kE!Jq6?q`2trZQ@TpB{)D;hn94)qvtX zgU3O{)h{80x5ys;pjZy+*c&|uSOGQ^&wtTpS{)dmgZtcpJp+w5aF1MTzb)h&@qysHwKnz|7j%{rg6O8Eh}0+Dxh7PW1w|Sh zX-Hhixxm2k7J5esrTdo1MpO1l2lQzjvFyh__O*9BNC8wB`^LAslHp2+-5z*Jc?llSYs#k>&fjaGa(g zf>@H_Wxz-C%xGkda(mgx=_Zo&nB}D5@WT?;)c&&4XWY;zvGEnjns3!skq)SEA`@%% z6M2DRqxV_r-xQgTDG|i_JJiDv+FXU~oHA_4s{A=F$TA(6g*nA@fb2fF!)mX=T1@&3 zkqWIxm1A`UNpkvH0)tu6XG?O5grRB$Qz3zE^go|*?o&&?-!Fhq1|IL(1l$q5?30MN zIA%KVxfJcOb@v(SVIK4qtMt0o?%d@(x-TN5lIcGUC1n0~#7JFC1bIvNnrh4)lU{Jt z;>JU_U8j{KFxtQ+!2q+vYokNEl1+;9<6emyr=o~NI@cbwK z+7F^n##1bQZ*?fkvNczY(#V zGdg*h^un%7_mhWkilD}tzpMtn?GKowWkZ=)pkQ(c#qLoJ?jB^yv%zL?DXb|ta?OgSdA@^pNw@LP-I$Bcx}cpZ6rDdj)T z3|C7CaOjVdxYzyVEIYr-oD9US$LVj+yE&t0c!9|q-DKRKK1{nAMG&|?t01GDj{}=pksr-Lb!ofs{(bZxl%DnVA Q5b$?bRa2!z2^I2x0AydCG5`Po literal 0 HcmV?d00001 diff --git a/docs/conf.py b/docs/conf.py index 621b3483..b576b6cf 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -232,7 +232,7 @@ # The name of an image file (relative to this directory) to place at the top # of the sidebar. -html_logo = "_static/argopy_logo_long.png" +html_logo = "_static/argopy_logo_long_5years.png" html_favicon = '_static/argopy.ico' # html_title = "My site title" @@ -263,8 +263,11 @@ 'collapse_navigation': False, # https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/navigation.html#remove-reveal-buttons-for-sidebar-items # 'show_toc_level': 3, # https://pydata-sphinx-theme.readthedocs.io/en/latest/user_guide/page-toc.html#show-more-levels-of-the-in-page-toc-by-default # 'launch_buttons': { "thebe": True} + # "announcement": ( + # "🎓 2025 argopy training camps are open: pre-register here 🎓" + # ), "announcement": ( - "🎓 2025 argopy training camps are open: pre-register here 🎓" + "🎉 argopy turns 5! Check full details here 🎊" ), "icon_links": [ { @@ -285,6 +288,12 @@ "icon": "fa-solid fa-graduation-cap", "type": "fontawesome", }, + { + "name": "5 years anniversary events", + "url": "https://euroargodev.github.io/argopy-5years", + "icon": "fa-solid fa-cake-candles", + "type": "fontawesome", + }, ] } diff --git a/docs/index.rst b/docs/index.rst index 2ee8ceaa..95cabd3b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,9 +9,26 @@ for standard users as well as Argo experts. |License| |Python version| |Anaconda-Server Badge| +.. admonition:: 🎉 argopy turns 5! 🎉 + + Join us as we celebrate this milestone with exciting activities: + + - 🚀 `Coding Challenges `_. Test your skills and creativity with a set of exciting Argo related challenges designed for all levels. Compete for bragging rights and prizes! + - 🎮 `Online Game Contest `_. Join the community for a fun-filled competition that blends tech and play. Perfect for taking a break and get a special price if you make it to the top 3. + - 📋 `User Survey `_. Share your feedback and ideas to help shape the future of argopy. Your input means the world to us. + - 📚 `Free Training Camp `_. Expand your knowledge with expert-led sessions on making the most of argopy. Perfect for new and experienced users alike! + + We’d love to have you join us in celebrating this milestone. Whether you’ve been with us since day one or just started using argopy, your involvement makes a difference + + 👉 ``_ + + **Thank you for your support and for being an essential part of our journey. Here’s to the next five years of innovation, learning, and collaboration!** + + + .. admonition:: 2025 argopy training camps 🎓 - The argopy team is contemplating to organise "training camps" in 2025: + The argopy team will organise "training camps" in 2025: At least one event would be in-person and another online. From cb2db8e7e55c4578111e26c2ea691b49ca43f255 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Dec 2024 04:47:09 +0000 Subject: [PATCH 08/21] Bump codecov/codecov-action from 4.6.0 to 5.1.1 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.6.0 to 5.1.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.6.0...v5.1.1) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pytests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pytests.yml b/.github/workflows/pytests.yml index b9e5cae5..177227ea 100644 --- a/.github/workflows/pytests.yml +++ b/.github/workflows/pytests.yml @@ -132,7 +132,7 @@ jobs: continue-on-error: true - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v5.1.1 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./cov.xml @@ -261,7 +261,7 @@ jobs: continue-on-error: true - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v5.1.1 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./cov.xml From 4993592c60d62a4d75c69d0d7f853b2c1f820286 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 13:40:08 +0100 Subject: [PATCH 09/21] Raise warning with gdac+bgc fetcher --- argopy/fetchers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/argopy/fetchers.py b/argopy/fetchers.py index b0e9306c..9c513d91 100755 --- a/argopy/fetchers.py +++ b/argopy/fetchers.py @@ -177,6 +177,8 @@ def __init__(self, mode: str = "", src: str = "", ds: str = "", **fetcher_kwargs raise OptionValueError( "The 'argovis' data source fetching is only available in 'standard' user mode" ) + if self._src == "gdac" and "bgc" in self._dataset_id: + warnings.warn("BGC data support with the 'gdac' data source is still in Work In Progress") @property def _icon_user_mode(self): From f8c1a2d8079a71d4d4a55deab1e68137b65c85e6 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 13:41:43 +0100 Subject: [PATCH 10/21] Add ArgoIndex.copy method Allows for: - deep copy (new instance with same parameters and cleared search) - shallow copy (new instance with same parameters and search results if any) --- argopy/stores/argo_index_proto.py | 97 +++++++++++++++++++++++++++---- 1 file changed, 87 insertions(+), 10 deletions(-) diff --git a/argopy/stores/argo_index_proto.py b/argopy/stores/argo_index_proto.py index f40df73c..36bcdb28 100644 --- a/argopy/stores/argo_index_proto.py +++ b/argopy/stores/argo_index_proto.py @@ -2,6 +2,8 @@ Argo file index store prototype """ + +import copy import numpy as np import pandas as pd import logging @@ -11,6 +13,13 @@ from urllib.parse import urlparse from typing import Union from pathlib import Path +import sys + + +if sys.version_info >= (3, 11): + from typing import Self +else: + from typing_extensions import Self from ..options import OPTIONS from ..errors import GdacPathError, S3PathError, InvalidDataset, OptionValueError @@ -126,7 +135,7 @@ def __init__( # Create a File Store to access index file: self.cache = cache self.cachedir = OPTIONS["cachedir"] if cachedir == "" else cachedir - timeout = OPTIONS["api_timeout"] if timeout == 0 else timeout + self.timeout = OPTIONS["api_timeout"] if timeout == 0 else timeout self.fs = {} if split_protocol(host)[0] is None: self.fs["src"] = filestore(cache=cache, cachedir=cachedir) @@ -167,7 +176,8 @@ def __init__( raise S3PathError("This host (%s) is not alive !" % host) self.fs["src"] = s3store( - cache=cache, cachedir=cachedir, + cache=cache, + cachedir=cachedir, anon=not has_aws_credentials(), ) self.skip_rows = 10 @@ -228,13 +238,15 @@ def __init__( if self.fs["src"].exists(self.index_path + ".gz"): self.index_file += ".gz" - if isinstance(self.fs['src'], s3store): + if isinstance(self.fs["src"], s3store): # If the index host is on a S3 store, we add another file system that will bypass some # search methods to improve performances. self.fs["s3"] = get_a_s3index(self.convention) # Adjust S3 bucket name and key with host and index file names: self.fs["s3"].bucket_name = Path(split_protocol(self.host)[1]).parts[0] - self.fs["s3"].key = str(Path(*Path(split_protocol(self.host)[1]).parts[1:]) / self.index_file) + self.fs["s3"].key = str( + Path(*Path(split_protocol(self.host)[1]).parts[1:]) / self.index_file + ) # # CNAME internal manager to be able to chain search methods: # self._cname = None @@ -246,8 +258,10 @@ def __repr__(self): summary.append("Convention: %s (%s)" % (self.convention, self.convention_title)) if hasattr(self, "index"): summary.append("In memory: True (%i records)" % self.N_RECORDS) - elif 's3' in self.host: - summary.append("In memory: False [But there's no need to load the full index with a S3 host to make a search]") + elif "s3" in self.host: + summary.append( + "In memory: False [But there's no need to load the full index with a S3 host to make a search]" + ) else: summary.append("In memory: False") @@ -417,7 +431,7 @@ def N_RECORDS(self): # Must work for all internal storage type (:class:`pyarrow.Table` or :class:`pandas.DataFrame`) if hasattr(self, "index"): return self.index.shape[0] - elif 's3' in self.host: + elif "s3" in self.host: return np.Inf else: raise InvalidDataset("Load the index first !") @@ -474,7 +488,9 @@ def _write(self, fs, path, obj, fmt="pq"): if fmt == "parquet": fmt = "pq" if isinstance(fs, memorystore): - fs.fs.touch(this_path) # Fix for https://github.com/euroargodev/argopy/issues/345 + fs.fs.touch( + this_path + ) # Fix for https://github.com/euroargodev/argopy/issues/345 # fs.fs.touch(this_path) # Fix for https://github.com/euroargodev/argopy/issues/345 # This is an f* mystery to me, why do we need 2 calls to trigger file creation FOR REAL ???? # log.debug("memorystore touched this path before open context: '%s'" % this_path) @@ -606,7 +622,7 @@ def get_filename(s, index): from ..related import load_dict, mapp_dict if nrows is not None: - df = df.loc[0: nrows - 1].copy() + df = df.loc[0 : nrows - 1].copy() if "index" in df: df.drop("index", axis=1, inplace=True) @@ -900,7 +916,9 @@ def search_params(self, PARAMs: Union[str, list], logical: str): raise NotImplementedError("Not implemented") @abstractmethod - def search_parameter_data_mode(self, PARAMs: dict, logical: bool = 'and', nrows=None): + def search_parameter_data_mode( + self, PARAMs: dict, logical: bool = "and", nrows=None + ): """Search index for profiles with a parameter in a specific data mode Parameters @@ -994,3 +1012,62 @@ def _insert_header(self, originalfile): f.write(data) return originalfile + + def _copy( + self, + deep: bool = True, + ) -> Self: + cls = self.__class__ + + if deep: + # Ensure complete independence between the original and the copied index: + obj = cls.__new__(cls) + obj.__init__( + host=copy.deepcopy(self.host), + index_file=copy.deepcopy(self.index_file), + timeout=copy.deepcopy(self.timeout), + cache=copy.deepcopy(self.cache), + cachedir=copy.deepcopy(self.cachedir), + ) + if hasattr(self, "index"): + obj._nrows_index = copy.deepcopy(self._nrows_index) + obj.index = copy.deepcopy(self.index) + if self.cache: + obj.index_path_cache = copy.deepcopy(self.index_path_cache) + + else: + obj = cls.__new__(cls) + obj.__init__( + host=copy.copy(self.host), + index_file=copy.copy(self.index_file), + timeout=copy.copy(self.timeout), + cache=copy.copy(self.cache), + cachedir=copy.copy(self.cachedir), + ) + if hasattr(self, "index"): + obj._nrows_index = copy.copy(self._nrows_index) + obj.index = copy.copy(self.index) + if self.cache: + obj.index_path_cache = copy.copy(self.index_path_cache) + + if hasattr(self, "search"): + obj.search_type = copy.copy(self.search_type) + obj.search_filter = copy.copy(self.search_filter) + obj.search = copy.copy(self.search) + if obj.cache: + obj.search_path_cache = copy.copy(self.search_path_cache) + + return obj + + def __copy__(self) -> Self: + return self._copy(deep=False) + + def __deepcopy__(self) -> Self: + return self._copy(deep=True) + + def copy( + self, + deep: bool = True, + ) -> Self: + """Returns a copy of this object.""" + return self._copy(deep=deep) From 5e9783e94cb044e8be356d2c8fadb41aec6568be Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 13:43:07 +0100 Subject: [PATCH 11/21] Update split_data_mode function - fix bug raised when dealing with a STATION_PARAMETER index having an empty string --- argopy/utils/transform.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/argopy/utils/transform.py b/argopy/utils/transform.py index 1224f523..94f32bfe 100644 --- a/argopy/utils/transform.py +++ b/argopy/utils/transform.py @@ -361,15 +361,18 @@ def split_data_mode(ds: xr.Dataset) -> xr.Dataset: name = "%s_DATA_MODE" % param.replace("_PARAMETER", "").replace( "PARAMETER_", "" ) - mask = ds["STATION_PARAMETERS"] == xr.full_like( - ds["STATION_PARAMETERS"], - u64(param), - dtype=ds["STATION_PARAMETERS"].dtype, - ) - da = ds["PARAMETER_DATA_MODE"].where(mask, drop=True).isel(N_PARAM=0) - da = da.rename(name) - da = da.astype(ds["PARAMETER_DATA_MODE"].dtype) - ds[name] = da + if name == "_DATA_MODE": + log.error("This dataset has an error in 'STATION_PARAMETERS': it contains an empty string") + else: + mask = ds["STATION_PARAMETERS"] == xr.full_like( + ds["STATION_PARAMETERS"], + u64(param), + dtype=ds["STATION_PARAMETERS"].dtype, + ) + da = ds["PARAMETER_DATA_MODE"].where(mask, drop=True).isel(N_PARAM=0) + da = da.rename(name) + da = da.astype(ds["PARAMETER_DATA_MODE"].dtype) + ds[name] = da ds = ds.drop_vars("PARAMETER_DATA_MODE") ds.argo.add_history("Transformed with 'split_data_mode'") From fe65cad895eba3c9407d051b01eac90b12456748 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 15:59:03 +0100 Subject: [PATCH 12/21] Fix split_data_mode Re-designed how we compute the data mode of a parameter --- argopy/utils/transform.py | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/argopy/utils/transform.py b/argopy/utils/transform.py index 94f32bfe..87f8ca66 100644 --- a/argopy/utils/transform.py +++ b/argopy/utils/transform.py @@ -4,6 +4,7 @@ import numpy as np import xarray as xr +import pandas as pd import logging from typing import List, Union @@ -340,6 +341,7 @@ def filter_param_by_data_mode( return ds.loc[dict(N_POINTS=filter)] if len(filter) > 0 else ds + def split_data_mode(ds: xr.Dataset) -> xr.Dataset: """Convert PARAMETER_DATA_MODE(N_PROF, N_PARAM) into several _DATA_MODE(N_PROF) variables @@ -357,6 +359,30 @@ def split_data_mode(ds: xr.Dataset) -> xr.Dataset: u64 = lambda s: "%s%s" % (s, " " * (64 - len(s))) # noqa: E731 params = [p.strip() for p in np.unique(ds["STATION_PARAMETERS"])] + def read_data_mode_for(ds: xr.Dataset, param: str) -> xr.DataArray: + """Return data mode of a given parameter""" + da_masked = ds['PARAMETER_DATA_MODE'].where(ds['STATION_PARAMETERS'] == u64(param)) + + def _dropna(x): + # x('N_PARAM') is reduced to the first non nan value, a scalar, no dimension + y = pd.Series(x).dropna().tolist() + if len(y) == 0: + return "" + else: + return y[0] + + kwargs = dict( + dask="parallelized", + input_core_dims=[["N_PARAM"]], # Function takes N_PARAM as input + output_core_dims=[[]], # Function reduces to a scalar (no dimension) + vectorize=True # Apply function element-wise along the other dimensions + ) + + dm = xr.apply_ufunc(_dropna, da_masked, **kwargs) + dm = dm.rename("%s_DATA_MODE" % param) + dm.attrs = ds['PARAMETER_DATA_MODE'].attrs + return dm + for param in params: name = "%s_DATA_MODE" % param.replace("_PARAMETER", "").replace( "PARAMETER_", "" @@ -364,15 +390,7 @@ def split_data_mode(ds: xr.Dataset) -> xr.Dataset: if name == "_DATA_MODE": log.error("This dataset has an error in 'STATION_PARAMETERS': it contains an empty string") else: - mask = ds["STATION_PARAMETERS"] == xr.full_like( - ds["STATION_PARAMETERS"], - u64(param), - dtype=ds["STATION_PARAMETERS"].dtype, - ) - da = ds["PARAMETER_DATA_MODE"].where(mask, drop=True).isel(N_PARAM=0) - da = da.rename(name) - da = da.astype(ds["PARAMETER_DATA_MODE"].dtype) - ds[name] = da + ds[name] = read_data_mode_for(ds, param) ds = ds.drop_vars("PARAMETER_DATA_MODE") ds.argo.add_history("Transformed with 'split_data_mode'") From b23932c4b484fed1d428cca2932679a62769bc23 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:00:25 +0100 Subject: [PATCH 13/21] Update params_data_mode.py fix compute to handle a collection of profiles (presumably with STATION_PARAMETERS and PARAMETER_DATA_MODE) or a collection of points (presumably without STATION_PARAMETERS and PARAMETER_DATA_MODE) --- argopy/extensions/params_data_mode.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/argopy/extensions/params_data_mode.py b/argopy/extensions/params_data_mode.py index 9892b495..c040723f 100644 --- a/argopy/extensions/params_data_mode.py +++ b/argopy/extensions/params_data_mode.py @@ -25,10 +25,10 @@ class ParamsDataMode(ArgoAccessorExtension): See Also -------- - :meth:`datamode.compute` - :meth:`datamode.merge` + :meth:`datamode.compute` # Compute _DATA_MODE(N_PROF) + :meth:`datamode.merge` # Merge and _ADJUSTED variables according to DATA_MODE or _DATA_MODE :meth:`datamode.filter` - :meth:`datamode.split` + :meth:`datamode.split` # Split PARAMETER_DATA_MODE(N_PROF, N_PARAM) into several _DATA_MODE(N_PROF) Examples -------- @@ -43,10 +43,10 @@ class ParamsDataMode(ArgoAccessorExtension): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - def compute(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 - """Compute and add _DATA_MODE variables to a xarray dataset + def _infer_from_ArgoIndex(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 + """Compute _DATA_MODE variables from ArgoIndex - This method consume a collection of points. + This method consumes a collection of points. Parameters ---------- @@ -57,7 +57,7 @@ def compute(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 ------- :class:`xr.Dataset` """ - idx = copy.copy(indexfs) if isinstance(indexfs, ArgoIndex) else ArgoIndex() + idx = indexfs.copy(deep=True) if isinstance(indexfs, ArgoIndex) else ArgoIndex() def complete_df(this_df, params): """Add 'wmo', 'cyc' and '_data_mode' columns to this dataframe""" @@ -103,6 +103,7 @@ def print_etime(txt, t0): profiles = self._argo.list_WMO_CYC idx.search_wmo(self._argo.list_WMO) + params = [ p for p in idx.read_params() @@ -168,6 +169,13 @@ def print_etime(txt, t0): self._obj = self._obj[np.sort(self._obj.data_vars)] return self._obj + def compute(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: + """Compute _DATA_MODE variables""" + if "STATION_PARAMETERS" in self._obj and "PARAMETER_DATA_MODE" in self._obj: + return split_data_mode(self._obj) + else: + return self._infer_from_ArgoIndex(indexfs=indexfs) + def split(self): return split_data_mode(self._obj) From b16068d84d04aa84f70cc012711c95c0c76cf762 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:23:55 +0100 Subject: [PATCH 14/21] Update transform.py --- argopy/utils/transform.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/argopy/utils/transform.py b/argopy/utils/transform.py index 87f8ca66..ca300a52 100644 --- a/argopy/utils/transform.py +++ b/argopy/utils/transform.py @@ -354,6 +354,11 @@ def split_data_mode(ds: xr.Dataset) -> xr.Dataset: ------- :class:`xr.Dataset` """ + if ds.argo._type != "profile": + raise InvalidDatasetStructure( + "Method only available to a collection of profiles" + ) + if "STATION_PARAMETERS" in ds and "PARAMETER_DATA_MODE" in ds: u64 = lambda s: "%s%s" % (s, " " * (64 - len(s))) # noqa: E731 From d0b9c96b69dd79189c92f269fb62c82bf58b560e Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:24:00 +0100 Subject: [PATCH 15/21] Update params_data_mode.py --- argopy/extensions/params_data_mode.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/argopy/extensions/params_data_mode.py b/argopy/extensions/params_data_mode.py index c040723f..5f88ad98 100644 --- a/argopy/extensions/params_data_mode.py +++ b/argopy/extensions/params_data_mode.py @@ -43,7 +43,7 @@ class ParamsDataMode(ArgoAccessorExtension): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - def _infer_from_ArgoIndex(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 + def _compute_from_ArgoIndex(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 """Compute _DATA_MODE variables from ArgoIndex This method consumes a collection of points. @@ -174,7 +174,7 @@ def compute(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: if "STATION_PARAMETERS" in self._obj and "PARAMETER_DATA_MODE" in self._obj: return split_data_mode(self._obj) else: - return self._infer_from_ArgoIndex(indexfs=indexfs) + return self._compute_from_ArgoIndex(indexfs=indexfs) def split(self): return split_data_mode(self._obj) From cdac3d1596ac70bc8834498fa3718c3b8fd5d351 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:24:03 +0100 Subject: [PATCH 16/21] Update gdac_data_processors.py --- argopy/data_fetchers/gdac_data_processors.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/argopy/data_fetchers/gdac_data_processors.py b/argopy/data_fetchers/gdac_data_processors.py index 763e9b96..fc77025b 100644 --- a/argopy/data_fetchers/gdac_data_processors.py +++ b/argopy/data_fetchers/gdac_data_processors.py @@ -1,5 +1,9 @@ import numpy as np import xarray as xr +import logging + + +log = logging.getLogger("argopy.gdac.data") def pre_process_multiprof( From b026a019e21a214882f3a436d82abfa3ee752a9d Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:52:39 +0100 Subject: [PATCH 17/21] fix docstrings --- argopy/extensions/params_data_mode.py | 37 ++++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/argopy/extensions/params_data_mode.py b/argopy/extensions/params_data_mode.py index 5f88ad98..98ec9f54 100644 --- a/argopy/extensions/params_data_mode.py +++ b/argopy/extensions/params_data_mode.py @@ -6,7 +6,11 @@ import copy from ..utils import to_list, list_core_parameters -from ..utils.transform import split_data_mode, merge_param_with_param_adjusted, filter_param_by_data_mode +from ..utils.transform import ( + split_data_mode, + merge_param_with_param_adjusted, + filter_param_by_data_mode, +) from ..stores import ( indexstore_pd as ArgoIndex, ) # make sure we work with a Pandas index store @@ -25,10 +29,10 @@ class ParamsDataMode(ArgoAccessorExtension): See Also -------- - :meth:`datamode.compute` # Compute _DATA_MODE(N_PROF) - :meth:`datamode.merge` # Merge and _ADJUSTED variables according to DATA_MODE or _DATA_MODE + :meth:`datamode.compute` + :meth:`datamode.merge` :meth:`datamode.filter` - :meth:`datamode.split` # Split PARAMETER_DATA_MODE(N_PROF, N_PARAM) into several _DATA_MODE(N_PROF) + :meth:`datamode.split` Examples -------- @@ -43,7 +47,9 @@ class ParamsDataMode(ArgoAccessorExtension): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) - def _compute_from_ArgoIndex(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: # noqa: C901 + def _compute_from_ArgoIndex( + self, indexfs: Union[None, ArgoIndex] + ) -> xr.Dataset: # noqa: C901 """Compute _DATA_MODE variables from ArgoIndex This method consumes a collection of points. @@ -55,7 +61,7 @@ def _compute_from_ArgoIndex(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset Returns ------- - :class:`xr.Dataset` + :class:`xarray.Dataset` """ idx = indexfs.copy(deep=True) if isinstance(indexfs, ArgoIndex) else ArgoIndex() @@ -176,10 +182,23 @@ def compute(self, indexfs: Union[None, ArgoIndex]) -> xr.Dataset: else: return self._compute_from_ArgoIndex(indexfs=indexfs) - def split(self): + def split(self) -> xr.Dataset: + """Convert PARAMETER_DATA_MODE(N_PROF, N_PARAM) into several _DATA_MODE(N_PROF) variables + + Using the list of *PARAM* found in ``STATION_PARAMETERS``, this method will create ``N_PARAM`` + new variables in the dataset ``_DATA_MODE(N_PROF)``. + + The variable ``PARAMETER_DATA_MODE`` is drop from the dataset at the end of the process. + + Returns + ------- + :class:`xarray.Dataset` + """ return split_data_mode(self._obj) - def merge(self, params: Union[str, List[str]] = "all", errors: str = "raise") -> xr.Dataset: + def merge( + self, params: Union[str, List[str]] = "all", errors: str = "raise" + ) -> xr.Dataset: """Merge and _ADJUSTED variables according to DATA_MODE or _DATA_MODE Merging is done as follows: @@ -259,7 +278,7 @@ def filter( logical: str = "and", mask: bool = False, errors: str = "raise", - ): + ) -> xr.Dataset: """Filter measurements according to parameters data mode Filter the dataset to keep points where all or some of the parameters are in any of the data mode specified. From 5130ac1c110afb90965c3ec92bbaffdd919fc21f Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Tue, 10 Dec 2024 16:52:51 +0100 Subject: [PATCH 18/21] fix docstrings --- argopy/xarray.py | 6 ++++-- docs/api.rst | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/argopy/xarray.py b/argopy/xarray.py index a64f0b7c..8cabeb74 100644 --- a/argopy/xarray.py +++ b/argopy/xarray.py @@ -402,7 +402,7 @@ def point2profile(self, drop: bool = False) -> xr.Dataset: # noqa: C901 Returns ------- - :class:`xr.dataset` + :class:`xr.Dataset` See Also -------- @@ -563,9 +563,11 @@ def profile2point(self) -> xr.Dataset: - A "point" is a location with unique (N_PROF, N_LEVELS) indexes - A "profile" is a collection of points with an unique UID based on WMO, CYCLE_NUMBER and DIRECTION + Note that this method will systematically apply the :meth:`datamode.split` method. + Returns ------- - :class:`xr.dataset` + :class:`xr.Dataset` Warnings -------- diff --git a/docs/api.rst b/docs/api.rst index 50c9f323..78496e79 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -159,6 +159,7 @@ Data Transformation Dataset.argo.interp_std_levels Dataset.argo.groupby_pressure_bins Dataset.argo.datamode.merge + Dataset.argo.datamode.split Data Filters From 84204627dfe7ca0b64828994f06d0ed89efaaec7 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Wed, 11 Dec 2024 14:58:25 +0100 Subject: [PATCH 19/21] Update argo_index_proto.py ftp fsspec is not accepting timeout=0 anymore ValueError: Non-blocking socket (timeout=0) is not supported --- argopy/stores/argo_index_proto.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argopy/stores/argo_index_proto.py b/argopy/stores/argo_index_proto.py index 36bcdb28..ac9eee82 100644 --- a/argopy/stores/argo_index_proto.py +++ b/argopy/stores/argo_index_proto.py @@ -162,7 +162,7 @@ def __init__( port=0 if urlparse(host).port is None else urlparse(host).port, cache=cache, cachedir=cachedir, - timeout=timeout, + timeout=self.timeout, block_size=1000 * (2**20), ) From 95ac46e6fa26602a8789dad0a9ffd845a1015c8f Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Thu, 12 Dec 2024 11:35:12 +0100 Subject: [PATCH 20/21] Update whats new with PR #418 --- argopy/stores/argo_index.py | 2 + argopy/stores/argo_index_proto.py | 53 +++++-- docs/api-hidden.rst | 2 + docs/whats-new.rst | 222 ++++++++++++++++-------------- 4 files changed, 165 insertions(+), 114 deletions(-) diff --git a/argopy/stores/argo_index.py b/argopy/stores/argo_index.py index 85b103e2..d5e0cfb1 100644 --- a/argopy/stores/argo_index.py +++ b/argopy/stores/argo_index.py @@ -76,6 +76,8 @@ class ArgoIndex(indexstore): >>> idx.read_wmo >>> idx.read_params >>> idx.records_per_wmo + >>> idx.copy(deep=False) + """ diff --git a/argopy/stores/argo_index_proto.py b/argopy/stores/argo_index_proto.py index ac9eee82..7d9972ba 100644 --- a/argopy/stores/argo_index_proto.py +++ b/argopy/stores/argo_index_proto.py @@ -73,37 +73,44 @@ def __init__( cachedir: str = "", timeout: int = 0, **kwargs, - ) -> object: + ): """Create an Argo index file store Parameters ---------- host: str, default: ``https://data-argo.ifremer.fr`` - Local or remote (ftp, https or s3) path to a `dac` folder (GDAC structure compliant). This takes values - like: - - ``https://data-argo.ifremer.fr`` - - ``ftp://ftp.ifremer.fr/ifremer/argo`` - - ``s3://argo-gdac-sandbox/pub/idx`` - - a local absolute path + Local or remote (ftp, https or s3) path to a `dac` folder (GDAC structure compliant). + + This parameter takes values like: + + - ``https://data-argo.ifremer.fr`` + - ``ftp://ftp.ifremer.fr/ifremer/argo`` + - ``s3://argo-gdac-sandbox/pub/idx`` + - a local absolute path You can also use the following keywords: ``http``/``https``, ``ftp`` and ``s3``/``aws``, respectively. index_file: str, default: ``ar_index_global_prof.txt`` Name of the csv-like text file with the index. - Possible values are standard file name: ``ar_index_global_prof.txt``, + Possible values are the standard file names: ``ar_index_global_prof.txt``, ``argo_bio-profile_index.txt``, ``argo_synthetic-profile_index.txt`` - or ``etc/argo-index/argo_aux-profile_index.txt`` + or ``etc/argo-index/argo_aux-profile_index.txt``. You can also use the following keywords: ``core``, ``bgc-b``, ``bgc-s`` and ``aux``. convention: str, default: None - Set the expected format convention of the index file. This is useful when trying to load index file with custom name. If set to ``None``, we'll try to infer the convention from the ``index_file`` value. - Possible values: ``ar_index_global_prof``, ``argo_bio-profile_index``, ``argo_synthetic-profile_index`` or ``argo_aux-profile_index``. + Set the expected format convention of the index file. + + This is useful when trying to load an index file with a custom name. + If set to ``None``, we'll try to infer the convention from the ``index_file`` value. + + Possible values: ``ar_index_global_prof``, ``argo_bio-profile_index``, ``argo_synthetic-profile_index`` + or ``argo_aux-profile_index``. You can also use the following keywords: ``core``, ``bgc-s``, ``bgc-b`` and ``aux``. cache : bool, default: False Use cache or not. cachedir: str, default: OPTIONS['cachedir'] - Folder where to store cached files + Folder where to store cached files. timeout: int, default: OPTIONS['api_timeout'] Time out in seconds to connect to a remote host (ftp or http). """ @@ -532,7 +539,7 @@ def _read(self, fs, path, fmt="pq"): # log.debug("_read this path: '%s'" % this_path) return obj - def clear_cache(self): + def clear_cache(self) -> Self: """Clear cache registry and files associated with this store instance.""" self.fs["src"].clear_cache() self.fs["client"].clear_cache() @@ -1069,5 +1076,23 @@ def copy( self, deep: bool = True, ) -> Self: - """Returns a copy of this object.""" + """Returns a copy of this :class:`ArgoIndex` instance + + A copy is a new instance based on similar parameters (e.g. ``host`` and ``index_file``). + + A deep copy ensure complete independence between the original and the copied index. + If the index was loaded, a new view is returned with the copied index, but search parameters and results are lost. + + A shallow copy preserves the index array, search parameters and results. + + Parameters + ---------- + deep: bool, optional, default=True + + Whether the search parameters and results are copied onto the new ArgoIndex instance. + + Returns + ------- + :class:`ArgoIndex` + """ return self._copy(deep=deep) diff --git a/docs/api-hidden.rst b/docs/api-hidden.rst index 6c478cb2..cf528683 100644 --- a/docs/api-hidden.rst +++ b/docs/api-hidden.rst @@ -296,6 +296,8 @@ argopy.ArgoIndex.search_parameter_data_mode argopy.ArgoIndex.to_dataframe argopy.ArgoIndex.to_indexfile + argopy.ArgoIndex.copy + argopy.stores.argo_index_proto_s3.s3index argopy.stores.argo_index_proto_s3.s3index_core diff --git a/docs/whats-new.rst b/docs/whats-new.rst index 74bde562..70c427e6 100644 --- a/docs/whats-new.rst +++ b/docs/whats-new.rst @@ -8,14 +8,21 @@ What's New |pypi dwn| |conda dwn| - Coming up next -------------- Internals ^^^^^^^^^ -- Fix bug raising an error when exporting a dataset to netcdf after erddap fetch, :issue:`412`. (:pr:`413`) by `G. Maze `_. + +- New :meth:`ArgoIndex.copy` method (:pr:`418`) by |gmaze|. This copy allows for a: + + - deep copy, i.e. a new instance with same parameters (e.g. ``index_file``) and cleared search, + - shallow copy, i.e. a new instance with same parameters and search results if any. + +- Fix bug raising an error for ``STATION_PARAMETERS`` with a blank entry, with ``bgc`` dataset and ``gdac`` data source (well spotted |quai20|). (:pr:`418`) by |gmaze|. + +- Fix bug raising an error when exporting a dataset to netcdf after erddap fetch, :issue:`412`. (:pr:`413`) by |gmaze|. v1.0.0 (16 Oct. 2024) @@ -28,7 +35,7 @@ v1.0.0 (16 Oct. 2024) This version comes with improved performances and support for the BGC-Argo dataset. But since this is a major, we also introduces breaking changes and significant internal refactoring possibly with un-expected side effects ! So don't hesitate to `report issues on the source code repository `_. - +.. _v1.0.0-features: Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -38,7 +45,7 @@ Features and front-end API - **Improved support for BGC** - **argopy now support `standard` and `research` user modes** with the `bgc` dataset. These new user modes follows the last available ADMT recommendations to bring users a finely tuned set of BGC parameters. Details of the BGC data processing chain for each user modes can be found in the :ref:`user-mode-definition` section. - - **Predict nutrients and carbonates in the Mediterranean Sea** with the new BGC method :class:`Dataset.argo.canyon_med`. The new method allows to make predictions of the water-Column nutrient concentrations and carbonate system variables in the Mediterranean Sea with the CANYON-MED model. This model can be used to predict PO4, NO3, DIC, SiOH4, AT and pHT. (:pr:`364`) by `G. Maze `_. + - **Predict nutrients and carbonates in the Mediterranean Sea** with the new BGC method :class:`Dataset.argo.canyon_med`. The new method allows to make predictions of the water-Column nutrient concentrations and carbonate system variables in the Mediterranean Sea with the CANYON-MED model. This model can be used to predict PO4, NO3, DIC, SiOH4, AT and pHT. (:pr:`364`) by |gmaze|. .. currentmodule:: argopy @@ -51,7 +58,7 @@ Features and front-end API ds.argo.canyon_med.predict() ds.argo.canyon_med.predict('PO4') - - **More BGC expert features** with support for the *auxiliary* index file with :class:`argopy.ArgoIndex`. Simply use the keyword `aux`. (:pr:`356`) by `G. Maze `_. + - **More BGC expert features** with support for the *auxiliary* index file with :class:`argopy.ArgoIndex`. Simply use the keyword `aux`. (:pr:`356`) by |gmaze|. .. code-block:: python @@ -60,7 +67,7 @@ Features and front-end API - **More scalable data fetching using multi-processing or a Dask Cluster**. -It is now possible to use multi-processing with all data fetchers and even possibly a Dask client object. This is set with the ``parallel`` option. In doing so, the Argo data pre-processing steps (download and conformation to internal conventions) will be distributed to all available resources, significantly improving performances for fetching large selection of Argo data. (:pr:`392`) by `G. Maze `_. +It is now possible to use multi-processing with all data fetchers and even possibly a Dask client object. This is set with the ``parallel`` option. In doing so, the Argo data pre-processing steps (download and conformation to internal conventions) will be distributed to all available resources, significantly improving performances for fetching large selection of Argo data. (:pr:`392`) by |gmaze|. Check the documentation on :ref:`Parallelization methods` for all the details. @@ -80,7 +87,7 @@ Check the documentation on :ref:`Parallelization methods` for all the details. - **Xarray argo accessor extensions mechanism**. -This should allows users to easily develop their own Argo dataset methods. This is possible thanks to a new class decorator :class:`argopy.extensions.register_argo_accessor` that allows to register a class as a property to the :class:`Dataset.argo` accessor. (:pr:`364`) by `G. Maze `_. +This should allows users to easily develop their own Argo dataset methods. This is possible thanks to a new class decorator :class:`argopy.extensions.register_argo_accessor` that allows to register a class as a property to the :class:`Dataset.argo` accessor. (:pr:`364`) by |gmaze|. Example: @@ -111,19 +118,21 @@ This makes syntax like this possible: .. currentmodule:: argopy +.. _v1.0.0-breaking: + Breaking changes ^^^^^^^^^^^^^^^^ .. currentmodule:: xarray -- In the :class:`Dataset.argo` accessor (:pr:`356`) by `G. Maze `_: +- In the :class:`Dataset.argo` accessor (:pr:`356`) by |gmaze|: - the :meth:`Dataset.argo.filter_data_mode` has been deprecated and replaced by :meth:`Dataset.argo.datamode.merge` method. To actually implement a real filter of data points on data mode values, i.e. to keep points with specific data mode values, use the :meth:`Dataset.argo.datamode.filter` method. .. currentmodule:: argopy -- The option name "ftp" is now renamed "gdac" (:pr:`389`) by `G. Maze `_ +- The option name "ftp" is now renamed "gdac" (:pr:`389`) by |gmaze| -- The option name "dataset" is now renamed "ds" (:pr:`389`) by `G. Maze `_ +- The option name "dataset" is now renamed "ds" (:pr:`389`) by |gmaze| - It is highly probable that more changes in this major v1.0.0 lead to breaking changes not listed here. Don't hesitate to `report them on the repository issue section `_. @@ -137,7 +146,7 @@ v0.1.17 (20 Sep. 2024) Comping up soon by the end of October the first **major argopy release: v1.0.0** -.. important:: List of deprecations before the upcoming major release v1.0.0. (:pr:`389`) by `G. Maze `_. +.. important:: List of deprecations before the upcoming major release v1.0.0. (:pr:`389`) by |gmaze|. .. currentmodule:: xarray @@ -148,12 +157,16 @@ v0.1.17 (20 Sep. 2024) - Refactor option "dataset" into "ds", see :class:`argopy.set_options` - Refactor option "ftp" into "gdac", see :class:`argopy.set_options` +.. _v0.1.17-internals: + Internals ^^^^^^^^^ -- Refactor Argovis CI tests to use mocked http server (:pr:`383`) by `G. Maze `_ +- Refactor Argovis CI tests to use mocked http server (:pr:`383`) by |gmaze| + +- Improve error and warning messages from mocked http server to address :issue:`381` (:pr:`382`) by |gmaze| -- Improve error and warning messages from mocked http server to address :issue:`381` (:pr:`382`) by `G. Maze `_ +.. _v0.1.17-energy: Energy ^^^^^^ @@ -163,10 +176,12 @@ Considering `energy used by CI tests `_. The `ADMT working group discussion items are listed here `_. Both CORE and BGC index files are supported. The new :class:`ArgoIndex` not only support access to the AWS S3 index files but also implement improved performances for search methods on WMO and cycle numbers, using :class:`boto3.client.select_object_content` SQL queries. Indeed, the ``https`` and ``ftp`` default GDAC server index files are downloaded and loaded in memory before being searched. But with ``s3``, index files can directly be queried on the server using SQL syntax; the full index is not necessarily downloaded. (:pr:`326`) by `G. Maze `_ +- **Support for AWS S3 index files**. This support is experimental and is primarily made available for benchmarking as part of the `ADMT working group on Argo cloud format activities `_. The `ADMT working group discussion items are listed here `_. Both CORE and BGC index files are supported. The new :class:`ArgoIndex` not only support access to the AWS S3 index files but also implement improved performances for search methods on WMO and cycle numbers, using :class:`boto3.client.select_object_content` SQL queries. Indeed, the ``https`` and ``ftp`` default GDAC server index files are downloaded and loaded in memory before being searched. But with ``s3``, index files can directly be queried on the server using SQL syntax; the full index is not necessarily downloaded. (:pr:`326`) by |gmaze| .. code-block:: python @@ -183,33 +198,37 @@ Features and front-end API - **argovis** data source now support the new `API server `_. This upgrade comes with a new option to define the optional API KEY to use. You can `get a free key here `_. (:pr:`371`) by `Bill Katie-Anne Mills `_. -- **argopy** is concerned about its environmental impact and we'd like to understand and optimize the carbon emissions of our digital activities. Starting June 1st 2024, we use `Green Coding `_ tools to assess energy consumption and CO2eq emissions from our activities on Github infrastructure. All results and data are available on the new dedicated web page: :ref:`Carbon emissions`. (:pr:`354`) by `G. Maze `_. +- **argopy** is concerned about its environmental impact and we'd like to understand and optimize the carbon emissions of our digital activities. Starting June 1st 2024, we use `Green Coding `_ tools to assess energy consumption and CO2eq emissions from our activities on Github infrastructure. All results and data are available on the new dedicated web page: :ref:`Carbon emissions`. (:pr:`354`) by |gmaze|. + +.. _v0.1.16-internals: Internals ^^^^^^^^^ -- Drop support for Python 3.8, add support for Python 3.10. (:pr:`379`) by `G. Maze `_ +- Drop support for Python 3.8, add support for Python 3.10. (:pr:`379`) by |gmaze| + +- Update :class:`argopy.ArgoNVSReferenceTables` to handle new NVS server output format. (:pr:`378`) by |gmaze|. -- Update :class:`argopy.ArgoNVSReferenceTables` to handle new NVS server output format. (:pr:`378`) by `G. Maze `_. +- Update Ifremer erddap server information. The Argo reference for DMQC (returned by the :class:`DataFetcher` fetcher with ``ds='ref'`` argument ) and Argo CTD-reference for DQMC (returned by the :class:`CTDRefDataFetcher` fetcher) now indicate the dataset version used. (:pr:`344`) by |gmaze|. -- Update Ifremer erddap server information. The Argo reference for DMQC (returned by the :class:`DataFetcher` fetcher with ``ds='ref'`` argument ) and Argo CTD-reference for DQMC (returned by the :class:`CTDRefDataFetcher` fetcher) now indicate the dataset version used. (:pr:`344`) by `G. Maze `_. +- Pin upper bound on xarray < 2024.3 to fix failing upstream tests because of ``AttributeError: 'ScipyArrayWrapper' object has no attribute 'oindex'``, `reported here `_. (:pr:`326`) by |gmaze| -- Pin upper bound on xarray < 2024.3 to fix failing upstream tests because of ``AttributeError: 'ScipyArrayWrapper' object has no attribute 'oindex'``, `reported here `_. (:pr:`326`) by `G. Maze `_ +- Fix :class:`argopy.ArgoDocs` that was not working with new Archimer webpage design, :issue:`351`. (:pr:`352`) by |gmaze|. -- Fix :class:`argopy.ArgoDocs` that was not working with new Archimer webpage design, :issue:`351`. (:pr:`352`) by `G. Maze `_. +- Fix bug with ArgoIndex cache, :issue:`345`. (:pr:`346`) by |gmaze|. -- Fix bug with ArgoIndex cache, :issue:`345`. (:pr:`346`) by `G. Maze `_. +- Keep dependencies up to date. (:pr:`333`, :pr:`337`) by |gmaze|. -- Keep dependencies up to date. (:pr:`333`, :pr:`337`) by `G. Maze `_. +- Update :class:`argopy.ArgoDocs` with last BGC cookbooks on pH. (:pr:`321`) by |gmaze|. -- Update :class:`argopy.ArgoDocs` with last BGC cookbooks on pH. (:pr:`321`) by `G. Maze `_. +- Fix for fsspec > 2023.10.0. (:pr:`318`) by |gmaze|. -- Fix for fsspec > 2023.10.0. (:pr:`318`) by `G. Maze `_. +.. _v0.1.16-breaking: Breaking changes ^^^^^^^^^^^^^^^^ -- Drop support for erddapy < v0.8.0 (:pr:`344`) by `G. Maze `_. +- Drop support for erddapy < v0.8.0 (:pr:`344`) by |gmaze|. v0.1.15 (12 Dec. 2023) @@ -218,7 +237,7 @@ v0.1.15 (12 Dec. 2023) Internals ^^^^^^^^^ -- Fix bug whereby user name could not be retrieved using :func:`getpass.getuser`. This closes :issue:`310` and allows argopy to be integrated into the EU Galaxy tools for `ecology `_. (:pr:`311`) by `G. Maze `_. +- Fix bug whereby user name could not be retrieved using :func:`getpass.getuser`. This closes :issue:`310` and allows argopy to be integrated into the EU Galaxy tools for `ecology `_. (:pr:`311`) by |gmaze|. v0.1.14 (29 Sep. 2023) @@ -231,7 +250,7 @@ v0.1.14 (29 Sep. 2023) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **argopy now support BGC dataset in `expert` user mode for the `erddap` data source**. The BGC-Argo content of synthetic multi-profile files is now available from the Ifremer erddap. Like for the core dataset, you can fetch data for a region, float(s) or profile(s). One novelty with regard to core, is that you can restrict data fetching to some parameters and furthermore impose no-NaNs on some of these parameters. Check out the new documentation page for :ref:`data-set`. (:pr:`278`) by `G. Maze `_ +- **argopy now support BGC dataset in `expert` user mode for the `erddap` data source**. The BGC-Argo content of synthetic multi-profile files is now available from the Ifremer erddap. Like for the core dataset, you can fetch data for a region, float(s) or profile(s). One novelty with regard to core, is that you can restrict data fetching to some parameters and furthermore impose no-NaNs on some of these parameters. Check out the new documentation page for :ref:`data-set`. (:pr:`278`) by |gmaze| .. code-block:: python @@ -254,7 +273,7 @@ Features and front-end API DataFetcher(ds='bgc', params='all', measured='all') # Return the smallest possible dataset DataFetcher(ds='bgc', params='all', measured=['DOXY', 'BBP700']) # Return all possible params for points where DOXY and BBP700 are not NaN -- **New methods in the ArgoIndex for BGC**. The :class:`ArgoIndex` has now full support for the BGC profile index files, both bio and synthetic index. In particular it is possible to search for profiles with specific data modes on parameters. (:pr:`278`) by `G. Maze `_ +- **New methods in the ArgoIndex for BGC**. The :class:`ArgoIndex` has now full support for the BGC profile index files, both bio and synthetic index. In particular it is possible to search for profiles with specific data modes on parameters. (:pr:`278`) by |gmaze| .. code-block:: python @@ -267,7 +286,7 @@ Features and front-end API idx.search_parameter_data_mode({'DOXY': ['R', 'A']}) idx.search_parameter_data_mode({'DOXY': 'D', 'CDOM': 'D'}, logical='or') -- **New xarray argo accessor features**. Easily retrieve an Argo sample index and domain extent with the ``index`` and ``domain`` properties. Get a list with all possible (PLATFORM_NUMBER, CYCLE_NUMBER) with the ``list_WMO_CYC`` method. (:pr:`278`) by `G. Maze `_ +- **New xarray argo accessor features**. Easily retrieve an Argo sample index and domain extent with the ``index`` and ``domain`` properties. Get a list with all possible (PLATFORM_NUMBER, CYCLE_NUMBER) with the ``list_WMO_CYC`` method. (:pr:`278`) by |gmaze| - **New search methods for Argo reference tables**. It is now possible to search for a string in tables title and/or description using the :meth:`related.ArgoNVSReferenceTables.search` method. @@ -286,9 +305,9 @@ Features and front-end API :align: center :target: _static/argopy-cheatsheet.pdf -- **Our internal Argo index store is promoted as a frontend feature**. The :class:`IndexFetcher` is a user-friendly **fetcher** built on top of our internal Argo index file store. But if you are familiar with Argo index files and/or cares about performances, you may be interested in using directly the Argo index **store**. We thus decided to promote this internal feature as a frontend class :class:`ArgoIndex`. See :ref:`Store: Low-level Argo Index access`. (:pr:`270`) by `G. Maze `_ +- **Our internal Argo index store is promoted as a frontend feature**. The :class:`IndexFetcher` is a user-friendly **fetcher** built on top of our internal Argo index file store. But if you are familiar with Argo index files and/or cares about performances, you may be interested in using directly the Argo index **store**. We thus decided to promote this internal feature as a frontend class :class:`ArgoIndex`. See :ref:`Store: Low-level Argo Index access`. (:pr:`270`) by |gmaze| -- **Easy access to all Argo manuals from the ADMT**. More than 20 pdf manuals have been produced by the Argo Data Management Team. Using the new :class:`ArgoDocs` class, it's now easier to navigate this great database for Argo experts. All details in :ref:`ADMT Documentation`. (:pr:`268`) by `G. Maze `_ +- **Easy access to all Argo manuals from the ADMT**. More than 20 pdf manuals have been produced by the Argo Data Management Team. Using the new :class:`ArgoDocs` class, it's now easier to navigate this great database for Argo experts. All details in :ref:`ADMT Documentation`. (:pr:`268`) by |gmaze| .. code-block:: python @@ -305,16 +324,16 @@ Features and front-end API ArgoDocs().search("CDOM") -- **New 'research' user mode**. This new feature implements automatic filtering of Argo data following international recommendations for research/climate studies. With this user mode, only Delayed Mode with good QC data are returned. Check out the :ref:`user-mode` section for all the details. (:pr:`265`) by `G. Maze `_ +- **New 'research' user mode**. This new feature implements automatic filtering of Argo data following international recommendations for research/climate studies. With this user mode, only Delayed Mode with good QC data are returned. Check out the :ref:`user-mode-definition` section for all the details. (:pr:`265`) by |gmaze| -- **argopy now provides a specific xarray engine to properly read Argo netcdf files**. Using ``engine='argo'`` in :func:`xarray.open_dataset`, all variables will properly be casted, i.e. returned with their expected data types, which is not the case otherwise. This works with *ALL* Argo netcdf file types (as listed in the `Reference table R01 `_). Some details in here: :class:`argopy.xarray.ArgoEngine` (:pr:`208`) by `G. Maze `_ +- **argopy now provides a specific xarray engine to properly read Argo netcdf files**. Using ``engine='argo'`` in :func:`xarray.open_dataset`, all variables will properly be casted, i.e. returned with their expected data types, which is not the case otherwise. This works with *ALL* Argo netcdf file types (as listed in the `Reference table R01 `_). Some details in here: :class:`argopy.xarray.ArgoEngine` (:pr:`208`) by |gmaze| .. code-block:: python import xarray as xr ds = xr.open_dataset("dac/aoml/1901393/1901393_prof.nc", engine='argo') -- **argopy now can provide authenticated access to the Argo CTD reference database for DMQC**. Using user/password new **argopy** options, it is possible to fetch the `Argo CTD reference database `_, with the :class:`CTDRefDataFetcher` class. (:pr:`256`) by `G. Maze `_ +- **argopy now can provide authenticated access to the Argo CTD reference database for DMQC**. Using user/password new **argopy** options, it is possible to fetch the `Argo CTD reference database `_, with the :class:`CTDRefDataFetcher` class. (:pr:`256`) by |gmaze| .. code-block:: python @@ -333,9 +352,9 @@ Features and front-end API Internals ^^^^^^^^^ -- Utilities refactoring. All classes and functions have been refactored to more appropriate locations like ``argopy.utils`` or ``argopy.related``. A deprecation warning message should be displayed every time utilities are being used from the deprecated locations. (:pr:`290`) by `G. Maze `_ +- Utilities refactoring. All classes and functions have been refactored to more appropriate locations like ``argopy.utils`` or ``argopy.related``. A deprecation warning message should be displayed every time utilities are being used from the deprecated locations. (:pr:`290`) by |gmaze| -- Fix bugs due to fsspec new internal cache handling and Windows specifics. (:pr:`293`) by `G. Maze `_ +- Fix bugs due to fsspec new internal cache handling and Windows specifics. (:pr:`293`) by |gmaze| - New utility class :class:`utils.MonitoredThreadPoolExecutor` to handle parallelization with a multi-threading Pool that provide a notebook or terminal computation progress dashboard. This class is used by the httpstore open_mfdataset method for erddap requests. @@ -355,9 +374,9 @@ Internals - And misc. bug and warning fixes all over the code. -- Update new argovis dashboard links for floats and profiles. (:pr:`271`) by `G. Maze `_ +- Update new argovis dashboard links for floats and profiles. (:pr:`271`) by |gmaze| -- **Index store can now export search results to standard Argo index file format**. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`260`) by `G. Maze `_ +- **Index store can now export search results to standard Argo index file format**. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`260`) by |gmaze| .. code-block:: python @@ -371,7 +390,7 @@ Internals idx.to_indexfile('short_index.txt') # export search results as standard Argo index csv file -- **Index store can now load/search the Argo Bio and Synthetic profile index files**. Simply gives the name of the Bio or Synthetic Profile index file and retrieve the full index. This store also comes with a new search criteria for BGC: by parameters. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`261`) by `G. Maze `_ +- **Index store can now load/search the Argo Bio and Synthetic profile index files**. Simply gives the name of the Bio or Synthetic Profile index file and retrieve the full index. This store also comes with a new search criteria for BGC: by parameters. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`261`) by |gmaze| .. code-block:: python @@ -384,8 +403,8 @@ Internals idx = indexstore(index_file="argo_bio-profile_index.txt").load() idx.search_params(['C1PHASE_DOXY', 'DOWNWELLING_PAR']) -- Use a mocked server for all http and GDAC ftp requests in CI tests (:pr:`249`, :pr:`252`, :pr:`255`) by `G. Maze `_ -- Removed support for minimal dependency requirements and for python 3.7. (:pr:`252`) by `G. Maze `_ +- Use a mocked server for all http and GDAC ftp requests in CI tests (:pr:`249`, :pr:`252`, :pr:`255`) by |gmaze| +- Removed support for minimal dependency requirements and for python 3.7. (:pr:`252`) by |gmaze| - Changed License from Apache to `EUPL 1.2 `_ Breaking changes @@ -393,7 +412,7 @@ Breaking changes - Some documentation pages may have moved to new urls. -- The legacy index store is deprecated, now available in argopy.stores.argo_index_deprec.py only (:pr:`270`) by `G. Maze `_ +- The legacy index store is deprecated, now available in argopy.stores.argo_index_deprec.py only (:pr:`270`) by |gmaze| v0.1.14rc2 (27 Jul. 2023) @@ -402,7 +421,7 @@ v0.1.14rc2 (27 Jul. 2023) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **argopy now support BGC dataset in `expert` user mode for the `erddap` data source**. The BGC-Argo content of synthetic multi-profile files is now available from the Ifremer erddap. Like for the core dataset, you can fetch data for a region, float(s) or profile(s). One novelty with regard to core, is that you can restrict data fetching to some parameters and furthermore impose no-NaNs on some of these parameters. Check out the new documentation page for :ref:`data-set`. (:pr:`278`) by `G. Maze `_ +- **argopy now support BGC dataset in `expert` user mode for the `erddap` data source**. The BGC-Argo content of synthetic multi-profile files is now available from the Ifremer erddap. Like for the core dataset, you can fetch data for a region, float(s) or profile(s). One novelty with regard to core, is that you can restrict data fetching to some parameters and furthermore impose no-NaNs on some of these parameters. Check out the new documentation page for :ref:`data-set`. (:pr:`278`) by |gmaze| .. code-block:: python @@ -426,7 +445,7 @@ Features and front-end API DataFetcher(ds='bgc', params='all', measured=['DOXY', 'BBP700']) # Return all possible params for points where DOXY and BBP700 are not NaN -- **New methods in the ArgoIndex for BGC**. The :class:`ArgoIndex` has now full support for the BGC profile index files, both bio and synthetic index. In particular it is possible to search for profiles with specific data modes on parameters. (:pr:`278`) by `G. Maze `_ +- **New methods in the ArgoIndex for BGC**. The :class:`ArgoIndex` has now full support for the BGC profile index files, both bio and synthetic index. In particular it is possible to search for profiles with specific data modes on parameters. (:pr:`278`) by |gmaze| .. code-block:: python @@ -440,7 +459,7 @@ Features and front-end API idx.search_parameter_data_mode({'DOXY': 'D', 'CDOM': 'D'}, logical='or') -- **New xarray argo accessor features**. Easily retrieve an Argo sample index and domain extent with the ``index`` and ``domain`` properties. Get a list with all possible (PLATFORM_NUMBER, CYCLE_NUMBER) with the ``list_WMO_CYC`` method. (:pr:`278`) by `G. Maze `_ +- **New xarray argo accessor features**. Easily retrieve an Argo sample index and domain extent with the ``index`` and ``domain`` properties. Get a list with all possible (PLATFORM_NUMBER, CYCLE_NUMBER) with the ``list_WMO_CYC`` method. (:pr:`278`) by |gmaze| - **New search methods for Argo reference tables**. It is now possible to search for a string in tables title and/or description using the :meth:`related.ArgoNVSReferenceTables.search` method. @@ -492,9 +511,9 @@ Features and front-end API :align: center :target: _static/argopy-cheatsheet.pdf -- **Our internal Argo index store is promoted as a frontend feature**. The :class:`IndexFetcher` is a user-friendly **fetcher** built on top of our internal Argo index file store. But if you are familiar with Argo index files and/or cares about performances, you may be interested in using directly the Argo index **store**. We thus decided to promote this internal feature as a frontend class :class:`ArgoIndex`. See :ref:`Store: Low-level Argo Index access`. (:pr:`270`) by `G. Maze `_ +- **Our internal Argo index store is promoted as a frontend feature**. The :class:`IndexFetcher` is a user-friendly **fetcher** built on top of our internal Argo index file store. But if you are familiar with Argo index files and/or cares about performances, you may be interested in using directly the Argo index **store**. We thus decided to promote this internal feature as a frontend class :class:`ArgoIndex`. See :ref:`Store: Low-level Argo Index access`. (:pr:`270`) by |gmaze| -- **Easy access to all Argo manuals from the ADMT**. More than 20 pdf manuals have been produced by the Argo Data Management Team. Using the new :class:`ArgoDocs` class, it's now easier to navigate this great database for Argo experts. All details in :ref:`ADMT Documentation`. (:pr:`268`) by `G. Maze `_ +- **Easy access to all Argo manuals from the ADMT**. More than 20 pdf manuals have been produced by the Argo Data Management Team. Using the new :class:`ArgoDocs` class, it's now easier to navigate this great database for Argo experts. All details in :ref:`ADMT Documentation`. (:pr:`268`) by |gmaze| .. code-block:: python @@ -511,16 +530,16 @@ Features and front-end API ArgoDocs().search("CDOM") -- **New 'research' user mode**. This new feature implements automatic filtering of Argo data following international recommendations for research/climate studies. With this user mode, only Delayed Mode with good QC data are returned. Check out the :ref:`user-mode` section for all the details. (:pr:`265`) by `G. Maze `_ +- **New 'research' user mode**. This new feature implements automatic filtering of Argo data following international recommendations for research/climate studies. With this user mode, only Delayed Mode with good QC data are returned. Check out the :ref:`user-mode-definition` section for all the details. (:pr:`265`) by |gmaze| -- **argopy now provides a specific xarray engine to properly read Argo netcdf files**. Using ``engine='argo'`` in :func:`xarray.open_dataset`, all variables will properly be casted, i.e. returned with their expected data types, which is not the case otherwise. This works with *ALL* Argo netcdf file types (as listed in the `Reference table R01 `_). Some details in here: :class:`argopy.xarray.ArgoEngine` (:pr:`208`) by `G. Maze `_ +- **argopy now provides a specific xarray engine to properly read Argo netcdf files**. Using ``engine='argo'`` in :func:`xarray.open_dataset`, all variables will properly be casted, i.e. returned with their expected data types, which is not the case otherwise. This works with *ALL* Argo netcdf file types (as listed in the `Reference table R01 `_). Some details in here: :class:`argopy.xarray.ArgoEngine` (:pr:`208`) by |gmaze| .. code-block:: python import xarray as xr ds = xr.open_dataset("dac/aoml/1901393/1901393_prof.nc", engine='argo') -- **argopy now can provide authenticated access to the Argo CTD reference database for DMQC**. Using user/password new **argopy** options, it is possible to fetch the `Argo CTD reference database `_, with the :class:`CTDRefDataFetcher` class. (:pr:`256`) by `G. Maze `_ +- **argopy now can provide authenticated access to the Argo CTD reference database for DMQC**. Using user/password new **argopy** options, it is possible to fetch the `Argo CTD reference database `_, with the :class:`CTDRefDataFetcher` class. (:pr:`256`) by |gmaze| .. code-block:: python @@ -538,9 +557,9 @@ Features and front-end API Internals ^^^^^^^^^ -- Update new argovis dashboard links for floats and profiles. (:pr:`271`) by `G. Maze `_ +- Update new argovis dashboard links for floats and profiles. (:pr:`271`) by |gmaze| -- **Index store can now export search results to standard Argo index file format**. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`260`) by `G. Maze `_ +- **Index store can now export search results to standard Argo index file format**. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`260`) by |gmaze| .. code-block:: python @@ -554,7 +573,7 @@ Internals idx.to_indexfile('short_index.txt') # export search results as standard Argo index csv file -- **Index store can now load/search the Argo Bio and Synthetic profile index files**. Simply gives the name of the Bio or Synthetic Profile index file and retrieve the full index. This store also comes with a new search criteria for BGC: by parameters. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`261`) by `G. Maze `_ +- **Index store can now load/search the Argo Bio and Synthetic profile index files**. Simply gives the name of the Bio or Synthetic Profile index file and retrieve the full index. This store also comes with a new search criteria for BGC: by parameters. See all details in :ref:`Store: Low-level Argo Index access`. (:pr:`261`) by |gmaze| .. code-block:: python @@ -567,14 +586,14 @@ Internals idx = indexstore(index_file="argo_bio-profile_index.txt").load() idx.search_params(['C1PHASE_DOXY', 'DOWNWELLING_PAR']) -- Use a mocked server for all http and GDAC ftp requests in CI tests (:pr:`249`, :pr:`252`, :pr:`255`) by `G. Maze `_ -- Removed support for minimal dependency requirements and for python 3.7. (:pr:`252`) by `G. Maze `_ +- Use a mocked server for all http and GDAC ftp requests in CI tests (:pr:`249`, :pr:`252`, :pr:`255`) by |gmaze| +- Removed support for minimal dependency requirements and for python 3.7. (:pr:`252`) by |gmaze| - Changed License from Apache to `EUPL 1.2 `_ Breaking changes ^^^^^^^^^^^^^^^^ -- The legacy index store is deprecated, now available in argopy.stores.argo_index_deprec.py only (:pr:`270`) by `G. Maze `_ +- The legacy index store is deprecated, now available in argopy.stores.argo_index_deprec.py only (:pr:`270`) by |gmaze| v0.1.13 (28 Mar. 2023) @@ -583,7 +602,7 @@ v0.1.13 (28 Mar. 2023) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **New utility class to retrieve the Argo deployment plan from the Ocean-OPS api.** This is the utility class :class:`OceanOPSDeployments`. See the new documentation section on :ref:`Deployment Plan` for more. (:pr:`244`) by `G. Maze `_ +- **New utility class to retrieve the Argo deployment plan from the Ocean-OPS api.** This is the utility class :class:`OceanOPSDeployments`. See the new documentation section on :ref:`Deployment Plan` for more. (:pr:`244`) by |gmaze| .. code-block:: python @@ -600,7 +619,7 @@ Features and front-end API .. image:: _static/scatter_map_deployment_status.png -- **New scatter map utility for easy Argo-related variables plotting.** The new :meth:`argopy.plot.scatter_map` utility function is dedicated to making maps with Argo profiles positions coloured according to specific variables: a scatter map. Profiles colouring is finely tuned for some variables: QC flags, Data Mode and Deployment Status. By default, floats trajectories are always shown, but this can be changed. See the new documentation section on :ref:`Scatter Maps` for more. (:pr:`245`) by `G. Maze `_ +- **New scatter map utility for easy Argo-related variables plotting.** The new :meth:`argopy.plot.scatter_map` utility function is dedicated to making maps with Argo profiles positions coloured according to specific variables: a scatter map. Profiles colouring is finely tuned for some variables: QC flags, Data Mode and Deployment Status. By default, floats trajectories are always shown, but this can be changed. See the new documentation section on :ref:`Scatter Maps` for more. (:pr:`245`) by |gmaze| .. code-block:: python @@ -612,7 +631,7 @@ Features and front-end API .. image:: _static/scatter_map_qcflag.png -- **New Argo colors utility to manage segmented colormaps and pre-defined Argo colors set.** The new :class:`argopy.plot.ArgoColors` utility class aims to easily provide colors for Argo-related variables plot. See the new documentation section on :ref:`Argo colors` for more (:pr:`245`) by `G. Maze `_ +- **New Argo colors utility to manage segmented colormaps and pre-defined Argo colors set.** The new :class:`argopy.plot.ArgoColors` utility class aims to easily provide colors for Argo-related variables plot. See the new documentation section on :ref:`Argo colors` for more (:pr:`245`) by |gmaze| .. code-block:: python @@ -631,16 +650,16 @@ Features and front-end API Internals ^^^^^^^^^ -- Because of the new :class:`argopy.plot.ArgoColors`, the `argopy.plot.discrete_coloring` utility is deprecated in 0.1.13. Calling it will raise an error after argopy 0.1.14. (:pr:`245`) by `G. Maze `_ +- Because of the new :class:`argopy.plot.ArgoColors`, the `argopy.plot.discrete_coloring` utility is deprecated in 0.1.13. Calling it will raise an error after argopy 0.1.14. (:pr:`245`) by |gmaze| -- New method to check status of web API: now allows for a keyword check rather than a simple url ping. This comes with 2 new utilities functions :meth:`utilities.urlhaskeyword` and :meth:`utilities.isalive`. (:pr:`247`) by `G. Maze `_. +- New method to check status of web API: now allows for a keyword check rather than a simple url ping. This comes with 2 new utilities functions :meth:`utilities.urlhaskeyword` and :meth:`utilities.isalive`. (:pr:`247`) by |gmaze|. -- Removed dependency to Scikit-learn LabelEncoder (:pr:`239`) by `G. Maze `_ +- Removed dependency to Scikit-learn LabelEncoder (:pr:`239`) by |gmaze| Breaking changes ^^^^^^^^^^^^^^^^ -- Data source ``localftp`` is deprecated and removed from **argopy**. It's been replaced by the ``gdac`` data source with the appropriate ``ftp`` option. See :ref:`Data sources`. (:pr:`240`) by `G. Maze `_ +- Data source ``localftp`` is deprecated and removed from **argopy**. It's been replaced by the ``gdac`` data source with the appropriate ``ftp`` option. See :ref:`Data sources`. (:pr:`240`) by |gmaze| - :class:`argopy.utilities.ArgoNVSReferenceTables` methods ``all_tbl`` and ``all_tbl_name`` are now properties, not methods. @@ -651,7 +670,7 @@ v0.1.12 (16 May 2022) Internals ^^^^^^^^^ -- Update ``erddap`` server from https://www.ifremer.fr/erddap to https://erddap.ifremer.fr/erddap. (:commit:`af5692f9f7b236c5cd62c202252074cccec97c34`) by `G. Maze `_ +- Update ``erddap`` server from https://www.ifremer.fr/erddap to https://erddap.ifremer.fr/erddap. (:commit:`af5692f9f7b236c5cd62c202252074cccec97c34`) by |gmaze| v0.1.11 (13 Apr. 2022) @@ -660,7 +679,7 @@ v0.1.11 (13 Apr. 2022) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **New data source ``gdac`` to retrieve data from a GDAC compliant source**, for DataFetcher and IndexFetcher. You can specify the FTP source with the ``ftp`` fetcher option or with the argopy global option ``ftp``. The FTP source support http, ftp or local files protocols. This fetcher is optimised if pyarrow is available, otherwise pandas dataframe are used. See update on :ref:`Data sources`. (:pr:`157`) by `G. Maze `_ +- **New data source ``gdac`` to retrieve data from a GDAC compliant source**, for DataFetcher and IndexFetcher. You can specify the FTP source with the ``ftp`` fetcher option or with the argopy global option ``ftp``. The FTP source support http, ftp or local files protocols. This fetcher is optimised if pyarrow is available, otherwise pandas dataframe are used. See update on :ref:`Data sources`. (:pr:`157`) by |gmaze| .. code-block:: python @@ -682,7 +701,7 @@ Features and front-end API Since the new ``gdac`` fetcher can use a local copy of the GDAC ftp server, the legacy ``localftp`` fetcher is now deprecated. Using it will raise a error up to v0.1.12. It will then be removed in v0.1.13. -- **New dashboard for profiles and new 3rd party dashboards**. Calling on the data fetcher dashboard method will return the Euro-Argo profile page for a single profile. Very useful to look at the data before load. This comes with 2 new utilities functions to get Coriolis ID of profiles (:meth:`utilities.get_coriolis_profile_id`) and to return the list of profile webpages (:meth:`utilities.get_ea_profile_page`). (:pr:`198`) by `G. Maze `_. +- **New dashboard for profiles and new 3rd party dashboards**. Calling on the data fetcher dashboard method will return the Euro-Argo profile page for a single profile. Very useful to look at the data before load. This comes with 2 new utilities functions to get Coriolis ID of profiles (:meth:`utilities.get_coriolis_profile_id`) and to return the list of profile webpages (:meth:`utilities.get_ea_profile_page`). (:pr:`198`) by |gmaze|. .. code-block:: python @@ -711,7 +730,7 @@ We added the Ocean-OPS (former JCOMMOPS) dashboard for all floats and the BGC-Ar # or argopy.dashboard(5904797, 12, type='bgc') -- **New utility :class:`argopy.utilities.ArgoNVSReferenceTables` to retrieve Argo Reference Tables**. (:commit:`cc8fdbe132874b71b35203053626cc29ae7d19c4`) by `G. Maze `_. +- **New utility :class:`argopy.utilities.ArgoNVSReferenceTables` to retrieve Argo Reference Tables**. (:commit:`cc8fdbe132874b71b35203053626cc29ae7d19c4`) by |gmaze|. .. code-block:: python @@ -724,7 +743,7 @@ We added the Ocean-OPS (former JCOMMOPS) dashboard for all floats and the BGC-Ar Internals ^^^^^^^^^ -- ``gdac`` and ``localftp`` data fetchers can return an index without loading the data. (:pr:`157`) by `G. Maze `_ +- ``gdac`` and ``localftp`` data fetchers can return an index without loading the data. (:pr:`157`) by |gmaze| .. code-block:: python @@ -743,16 +762,16 @@ Internals idx.N_MATCH # Return number of search results idx.to_dataframe() # Convert search results to a dataframe -- Refactoring of CI tests to use more fixtures and pytest parametrize. (:pr:`157`) by `G. Maze `_ +- Refactoring of CI tests to use more fixtures and pytest parametrize. (:pr:`157`) by |gmaze| -- Fix bug in erddap fata fetcher that was causing a `profile` request to do not account for cycle numbers. (:commit:`301e557fdec1f2d536841464b383edc3a4c4a62d`) by `G. Maze `_. +- Fix bug in erddap fata fetcher that was causing a `profile` request to do not account for cycle numbers. (:commit:`301e557fdec1f2d536841464b383edc3a4c4a62d`) by |gmaze|. Breaking changes ^^^^^^^^^^^^^^^^ -- Index fetcher for local FTP no longer support the option ``index_file``. The name of the file index is internally determined using the dataset requested: ``ar_index_global_prof.txt`` for ``ds='phy'`` and ``argo_synthetic-profile_index.txt`` for ``ds='bgc'``. Using this option will raise a deprecation warning up to v0.1.12 and will then raise an error. (:pr:`157`) by `G. Maze `_ +- Index fetcher for local FTP no longer support the option ``index_file``. The name of the file index is internally determined using the dataset requested: ``ar_index_global_prof.txt`` for ``ds='phy'`` and ``argo_synthetic-profile_index.txt`` for ``ds='bgc'``. Using this option will raise a deprecation warning up to v0.1.12 and will then raise an error. (:pr:`157`) by |gmaze| -- Complete refactoring of the ``argopy.plotters`` module into ``argopy.plot``. (:pr:`198`) by `G. Maze `_. +- Complete refactoring of the ``argopy.plotters`` module into ``argopy.plot``. (:pr:`198`) by |gmaze|. - Remove deprecation warnings for: 'plotters.plot_dac', 'plotters.plot_profilerType'. These now raise an error. @@ -772,7 +791,7 @@ v0.1.9 (19 Jan. 2022) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- **New method to preprocess data for OWC software**. This method can preprocessed Argo data and possibly create float_source/.mat files to be used as inputs for OWC implementations in `Matlab `_ and `Python `_. See the :ref:`Salinity calibration` documentation page for more. (:pr:`142`) by `G. Maze `_. +- **New method to preprocess data for OWC software**. This method can preprocessed Argo data and possibly create float_source/.mat files to be used as inputs for OWC implementations in `Matlab `_ and `Python `_. See the :ref:`Salinity calibration` documentation page for more. (:pr:`142`) by |gmaze|. .. code-block:: python @@ -794,7 +813,7 @@ This new method comes with others methods and improvements: .. currentmodule:: argopy -- **New dataset properties** accessible from the `argo` xarray accessor: ``N_POINTS``, ``N_LEVELS``, ``N_PROF``. Note that depending on the format of the dataset (a collection of points or of profiles) these values do or do not take into account NaN. These information are also visible by a simple print of the accessor. (:pr:`142`) by `G. Maze `_. +- **New dataset properties** accessible from the `argo` xarray accessor: ``N_POINTS``, ``N_LEVELS``, ``N_PROF``. Note that depending on the format of the dataset (a collection of points or of profiles) these values do or do not take into account NaN. These information are also visible by a simple print of the accessor. (:pr:`142`) by |gmaze|. .. code-block:: python @@ -806,7 +825,7 @@ This new method comes with others methods and improvements: ds.argo -- **New plotter function** :meth:`argopy.plotters.open_sat_altim_report` to insert the CLS Satellite Altimeter Report figure in a notebook cell. (:pr:`159`) by `G. Maze `_. +- **New plotter function** :meth:`argopy.plotters.open_sat_altim_report` to insert the CLS Satellite Altimeter Report figure in a notebook cell. (:pr:`159`) by |gmaze|. .. code-block:: python @@ -824,7 +843,7 @@ This new method comes with others methods and improvements: IndexFetcher().float([6902745, 6902746]).plot('qc_altimetry') -- **New utility method to retrieve topography**. The :class:`argopy.TopoFetcher` will load the `GEBCO topography `_ for a given region. (:pr:`150`) by `G. Maze `_. +- **New utility method to retrieve topography**. The :class:`argopy.TopoFetcher` will load the `GEBCO topography `_ for a given region. (:pr:`150`) by |gmaze|. .. code-block:: python @@ -846,11 +865,11 @@ For convenience we also added a new property to the data fetcher that return the Internals ^^^^^^^^^ -- Uses a new API endpoint for the ``argovis`` data source when fetching a ``region``. `More on this issue here `_. (:pr:`158`) by `G. Maze `_. +- Uses a new API endpoint for the ``argovis`` data source when fetching a ``region``. `More on this issue here `_. (:pr:`158`) by |gmaze|. -- Update documentation theme, and pages now use the `xarray accessor sphinx extension `_. (:pr:`104`) by `G. Maze `_. +- Update documentation theme, and pages now use the `xarray accessor sphinx extension `_. (:pr:`104`) by |gmaze|. -- Update Binder links to work without the deprecated Pangeo-Binder service. (:pr:`164`) by `G. Maze `_. +- Update Binder links to work without the deprecated Pangeo-Binder service. (:pr:`164`) by |gmaze|. v0.1.8 (2 Nov. 2021) @@ -859,7 +878,7 @@ v0.1.8 (2 Nov. 2021) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Improve plotting functions. All functions are now available for both the index and data fetchers. See the :ref:`data-viz` page for more details. Reduced plotting dependencies to `Matplotlib `_ only. **Argopy** will use `Seaborn `_ and/or `Cartopy `_ if available. (:pr:`56`) by `G. Maze `_. +- Improve plotting functions. All functions are now available for both the index and data fetchers. See the :ref:`data-viz` page for more details. Reduced plotting dependencies to `Matplotlib `_ only. **Argopy** will use `Seaborn `_ and/or `Cartopy `_ if available. (:pr:`56`) by |gmaze|. .. code-block:: python @@ -877,7 +896,7 @@ Features and front-end API fig, ax = obj.plot('profiler') -- New methods and properties for data and index fetchers. (:pr:`56`) by `G. Maze `_. The :meth:`argopy.DataFetcher.load` and :meth:`argopy.IndexFetcher.load` methods internally call on the `to_xarray()` methods and store results in the fetcher instance. The :meth:`argopy.DataFetcher.to_xarray` will trigger a fetch on every call, while the :meth:`argopy.DataFetcher.load` will not. +- New methods and properties for data and index fetchers. (:pr:`56`) by |gmaze|. The :meth:`argopy.DataFetcher.load` and :meth:`argopy.IndexFetcher.load` methods internally call on the `to_xarray()` methods and store results in the fetcher instance. The :meth:`argopy.DataFetcher.to_xarray` will trigger a fetch on every call, while the :meth:`argopy.DataFetcher.load` will not. .. code-block:: python @@ -895,20 +914,20 @@ Features and front-end API indexer.load() indexer.index -- Add optional speed of sound computation to xarray accessor teos10 method. (:pr:`90`) by `G. Maze `_. +- Add optional speed of sound computation to xarray accessor teos10 method. (:pr:`90`) by |gmaze|. - Code spell fixes (:pr:`89`) by `K. Schwehr `_. Internals ^^^^^^^^^ -- Check validity of access points options (WMO and box) in the facade, no checks at the fetcher level. (:pr:`92`) by `G. Maze `_. +- Check validity of access points options (WMO and box) in the facade, no checks at the fetcher level. (:pr:`92`) by |gmaze|. -- More general options. Fix :issue:`91`. (:pr:`102`) by `G. Maze `_. +- More general options. Fix :issue:`91`. (:pr:`102`) by |gmaze|. - ``trust_env`` to allow for local environment variables to be used by fsspec to connect to the internet. Useful for those using a proxy. -- Documentation on `Read The Docs` now uses a pip environment and get rid of memory eager conda. (:pr:`103`) by `G. Maze `_. +- Documentation on `Read The Docs` now uses a pip environment and get rid of memory eager conda. (:pr:`103`) by |gmaze|. - :class:`xarray.Dataset` argopy accessor ``argo`` has a clean documentation. @@ -917,12 +936,12 @@ Breaking changes - Drop support for python 3.6 and older. Lock range of dependencies version support. -- In the plotters module, the ``plot_dac`` and ``plot_profilerType`` functions have been replaced by ``bar_plot``. (:pr:`56`) by `G. Maze `_. +- In the plotters module, the ``plot_dac`` and ``plot_profilerType`` functions have been replaced by ``bar_plot``. (:pr:`56`) by |gmaze|. Internals ^^^^^^^^^ -- Internal logging available and upgrade dependencies version support (:pr:`56`) by `G. Maze `_. To see internal logs, you can set-up your application like this: +- Internal logging available and upgrade dependencies version support (:pr:`56`) by |gmaze|. To see internal logs, you can set-up your application like this: .. code-block:: python @@ -944,7 +963,7 @@ Long due release ! Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Live monitor for the status (availability) of data sources. See documentation page on :ref:`api-status`. (:pr:`36`) by `G. Maze `_. +- Live monitor for the status (availability) of data sources. See documentation page on :ref:`api-status`. (:pr:`36`) by |gmaze|. .. code-block:: python @@ -956,7 +975,7 @@ Features and front-end API .. image:: _static/status_monitor.png :width: 350 -- Optimise large data fetching with parallelization, for all data fetchers (erddap, localftp and argovis). See documentation page on :ref:`parallel`. Two parallel methods are available: multi-threading or multi-processing. (:pr:`28`) by `G. Maze `_. +- Optimise large data fetching with parallelization, for all data fetchers (erddap, localftp and argovis). See documentation page on :ref:`parallel`. Two parallel methods are available: multi-threading or multi-processing. (:pr:`28`) by |gmaze|. .. code-block:: python @@ -978,15 +997,15 @@ Breaking changes Internals ^^^^^^^^^ -- New ``open_mfdataset`` and ``open_mfjson`` methods in Argo stores. These can be used to open, pre-process and concatenate a collection of paths both in sequential or parallel order. (:pr:`28`) by `G. Maze `_. +- New ``open_mfdataset`` and ``open_mfjson`` methods in Argo stores. These can be used to open, pre-process and concatenate a collection of paths both in sequential or parallel order. (:pr:`28`) by |gmaze|. -- Unit testing is now done on a controlled conda environment. This allows to more easily identify errors coming from development vs errors due to dependencies update. (:pr:`65`) by `G. Maze `_. +- Unit testing is now done on a controlled conda environment. This allows to more easily identify errors coming from development vs errors due to dependencies update. (:pr:`65`) by |gmaze|. v0.1.6 (31 Aug. 2020) --------------------- -- **JOSS paper published**. You can now cite argopy with a clean reference. (:pr:`30`) by `G. Maze `_ and `K. Balem `_. +- **JOSS paper published**. You can now cite argopy with a clean reference. (:pr:`30`) by |gmaze| and |quai20|. Maze G. and Balem K. (2020). argopy: A Python library for Argo ocean data analysis. *Journal of Open Source Software*, 5(52), 2425 doi: `10.21105/joss.02425 `_. @@ -997,7 +1016,7 @@ v0.1.5 (10 July 2020) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- A new data source with the **argovis** data fetcher, all access points available (:pr:`24`). By `T. Tucker `_ and `G. Maze `_. +- A new data source with the **argovis** data fetcher, all access points available (:pr:`24`). By `T. Tucker `_ and |gmaze|. .. code-block:: python @@ -1007,7 +1026,7 @@ Features and front-end API loader.profile(6902746, 12).to_xarray() loader.region([-85,-45,10.,20.,0,1000.,'2012-01','2012-02']).to_xarray() -- Easily compute `TEOS-10 `_ variables with new argo accessor function **teos10**. This needs `gsw `_ to be installed. (:pr:`37`) By `G. Maze `_. +- Easily compute `TEOS-10 `_ variables with new argo accessor function **teos10**. This needs `gsw `_ to be installed. (:pr:`37`) By |gmaze|. .. code-block:: python @@ -1041,7 +1060,7 @@ v0.1.4 (24 June 2020) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Standard levels interpolation method available in **standard** user mode (:pr:`23`). By `K. Balem `_. +- Standard levels interpolation method available in **standard** user mode (:pr:`23`). By |quai20|. .. code-block:: python @@ -1049,7 +1068,7 @@ Features and front-end API ds = ds.argo.point2profile() ds_interp = ds.argo.interp_std_levels(np.arange(0,900,50)) -- Insert in a Jupyter notebook cell the `Euro-Argo fleet monitoring `_ dashboard page, possibly for a specific float (:pr:`20`). By `G. Maze `_. +- Insert in a Jupyter notebook cell the `Euro-Argo fleet monitoring `_ dashboard page, possibly for a specific float (:pr:`20`). By |gmaze|. .. code-block:: python @@ -1058,7 +1077,7 @@ Features and front-end API # or argopy.dashboard(wmo=6902746) -- The ``localftp`` index and data fetcher now have the ``region`` and ``profile`` access points available (:pr:`25`). By `G. Maze `_. +- The ``localftp`` index and data fetcher now have the ``region`` and ``profile`` access points available (:pr:`25`). By |gmaze|. Breaking changes ^^^^^^^^^^^^^^^^ @@ -1068,7 +1087,7 @@ Breaking changes Internals ^^^^^^^^^ -- Now uses `fsspec `_ as file system for caching as well as accessing local and remote files (:pr:`19`). This closes issues :issue:`12`, :issue:`15` and :issue:`17`. **argopy** fetchers must now use (or implement if necessary) one of the internal file systems available in the new module ``argopy.stores``. By `G. Maze `_. +- Now uses `fsspec `_ as file system for caching as well as accessing local and remote files (:pr:`19`). This closes issues :issue:`12`, :issue:`15` and :issue:`17`. **argopy** fetchers must now use (or implement if necessary) one of the internal file systems available in the new module ``argopy.stores``. By |gmaze|. - Erddap fetcher now uses netcdf format to retrieve data (:pr:`19`). @@ -1079,7 +1098,7 @@ v0.1.3 (15 May 2020) Features and front-end API ^^^^^^^^^^^^^^^^^^^^^^^^^^ -- New ``index`` fetcher to explore and work with meta-data (:pr:`6`). By `K. Balem `_. +- New ``index`` fetcher to explore and work with meta-data (:pr:`6`). By |quai20|. .. code-block:: python @@ -1100,7 +1119,7 @@ The ``index`` fetcher comes with basic plotting functionalities with the :func:` The design of plotting and visualisation features in ``argopy`` is constantly evolving, so this may change in future releases. -- Real documentation written and published (:pr:`13`). By `G. Maze `_. +- Real documentation written and published (:pr:`13`). By |gmaze|. - The :class:`argopy.DataFetcher` now has a :func:`argopy.DataFetcher.to_dataframe` method to return a :class:`pandas.DataFrame`. @@ -1208,6 +1227,9 @@ v0.1.0 (17 Mar. 2020) - Erddap data fetcher +.. |gmaze| replace:: `G. Maze `__ +.. |quai20| replace:: `K. Balem `__ + .. |pypi dwn| image:: https://img.shields.io/pypi/dm/argopy?label=Pypi%20downloads :target: //pypi.org/project/argopy/ .. |conda dwn| image:: https://img.shields.io/conda/dn/conda-forge/argopy?label=Conda%20downloads From b078e8e30209b9f91923bf322f5b1929678d3959 Mon Sep 17 00:00:00 2001 From: Guillaume Maze Date: Thu, 12 Dec 2024 14:12:00 +0100 Subject: [PATCH 21/21] Fix https://github.com/euroargodev/argopy/security/code-scanning/6 --- argopy/stores/filesystems.py | 1 - 1 file changed, 1 deletion(-) diff --git a/argopy/stores/filesystems.py b/argopy/stores/filesystems.py index c3dff7fc..3c1b1fb2 100644 --- a/argopy/stores/filesystems.py +++ b/argopy/stores/filesystems.py @@ -2055,7 +2055,6 @@ def connect(self): try: payload = self._login_payload.copy() payload["password"] = "*" * len(payload["password"]) - log.info("Try to log-in to '%s' page with %s" % (self._login_page, payload)) self.fs.info(self._login_page) self._connected = True except ErddapHTTPUnauthorized: