From 63f26791d47bbaab1d922cce55cd0a8245298190 Mon Sep 17 00:00:00 2001 From: Ib Green Date: Sun, 5 Apr 2026 10:30:04 -0400 Subject: [PATCH 1/2] chore: latest dev tooling, corepack --- .github/workflows/release.yml | 36 ++++++++++++++++------ .github/workflows/test.yml | 53 ++++++++++++++++++++++----------- .github/workflows/website.yml | 43 ++++++++++++++++++-------- .nvmrc | 1 + package.json | 9 ++---- tsconfig.json | 11 +++++++ website/.yarn/install-state.gz | Bin 1214011 -> 1253868 bytes website/package.json | 6 +--- yarn.lock | 20 ++++++------- 9 files changed, 120 insertions(+), 59 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e567b4c6..82b7922c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,6 +5,9 @@ on: tags: - v* +permissions: + contents: read + jobs: check_branch: runs-on: ubuntu-22.04 @@ -12,7 +15,7 @@ jobs: should_build: ${{ steps.permitted.outputs.result }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Fetch remote branches run: | @@ -30,7 +33,7 @@ jobs: echo "result=${result}" >> "$GITHUB_OUTPUT" release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 needs: check_branch permissions: contents: write @@ -42,19 +45,34 @@ jobs: NPM_ACCESS_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: volta-cli/action@2d68418f32546fd191eb666e232b321d5726484d # v4.1.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 + with: + node-version-file: '.nvmrc' + + - name: Enable Corepack / Yarn 4 + run: | + corepack enable + corepack prepare yarn@4.13.0 --activate + yarn -v + + - name: Cache Yarn Berry artifacts + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: - cache: 'yarn' + path: | + ~/.yarn/berry/cache + .yarn/install-state.gz + key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} - name: Install dependencies - run: yarn + run: yarn install --immutable - name: Build packages run: npm run build - - - name: Run tests from transpiled code - run: npx ocular-test dist + + - name: Run release test suite + run: yarn test - name: Login to NPM run: npm config set "//registry.npmjs.org/:_authToken=${NPM_ACCESS_TOKEN}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03bb1ba2..0e00d4ba 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,41 +7,60 @@ on: - master pull_request: +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: test: runs-on: ubuntu-22.04 + timeout-minutes: 15 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - uses: volta-cli/action@2d68418f32546fd191eb666e232b321d5726484d # v4.1.1 + - name: Checkout code + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + + - name: Setup Node (with Corepack) + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 with: - cache: "yarn" + node-version-file: '.nvmrc' - - name: Install dependencies + - name: Enable Corepack / Yarn 4 run: | - yarn install - env: - YARN_ENABLE_IMMUTABLE_INSTALLS: false + corepack enable + corepack prepare yarn@4.13.0 --activate + yarn -v + + - name: Cache Yarn Berry artifacts + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 + with: + path: | + ~/.yarn/berry/cache + .yarn/install-state.gz + key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} + + - name: Install dependencies + run: yarn install --immutable - name: Build code - run: | - yarn build + run: yarn build - name: Run tests - run: | - yarn test ci - + run: yarn test ci + - name: Run lint - run: | - yarn lint + run: yarn lint - name: Build website run: | cd website - yarn install + yarn install --immutable yarn build - - name: Coveralls - uses: coverallsapp/github-action@09b709cf6a16e30b0808ba050c7a6e8a5ef13f8d # v1.2.5 + - name: Upload coverage to Coveralls + uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 with: github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 5847d220..9c409c40 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -5,6 +5,9 @@ on: branches: - '*-release' +permissions: + contents: read + jobs: check_branch: runs-on: ubuntu-22.04 @@ -12,7 +15,7 @@ jobs: should_deploy: ${{ endsWith(github.ref, steps.get_version.outputs.latest) }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Get version id: get_version @@ -23,7 +26,7 @@ jobs: echo "latest=${LATEST}-release" >> "$GITHUB_OUTPUT" deploy: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 needs: check_branch permissions: @@ -32,25 +35,41 @@ jobs: if: ${{ github.repository_owner == 'visgl' && needs.check_branch.outputs.should_deploy }} steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: token: ${{ secrets.WEBSITE_DEPLOY_TOKEN }} - - uses: volta-cli/action@2d68418f32546fd191eb666e232b321d5726484d # v4.1.1 + + - name: Setup Node (with Corepack) + uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 + with: + node-version-file: '.nvmrc' + + - name: Enable Corepack / Yarn 4 + run: | + corepack enable + corepack prepare yarn@4.13.0 --activate + yarn -v + + - name: Cache Yarn Berry artifacts + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: - cache: 'yarn' + path: | + ~/.yarn/berry/cache + .yarn/install-state.gz + key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} - name: Install dependencies run: | - yarn - (cd website && yarn) + yarn install --immutable + (cd website && yarn install --immutable) - name: Build website run: (cd website && yarn build) - name: Deploy - uses: JamesIves/github-pages-deploy-action@132898c54c57c7cc6b80eb3a89968de8fc283505 # 3.7.1 + uses: JamesIves/github-pages-deploy-action@d92aa235d04922e8f08b40ce78cc5442fcfbfa2f # 4.8.0 with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: website/build - CLEAN: true + token: ${{ secrets.WEBSITE_DEPLOY_TOKEN }} + branch: gh-pages + folder: website/build + clean: true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..32a2d7bd --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +22.22.1 diff --git a/package.json b/package.json index 875dd56e..b92afb4d 100644 --- a/package.json +++ b/package.json @@ -27,8 +27,8 @@ "@probe.gl/bench": "^4.0.0", "@turf/destination": "^6.0.1", "@types/tape-promise": "^4.0.1", - "@vis.gl/dev-tools": "1.0.0-alpha.19", - "@vis.gl/ts-plugins": "1.0.0-alpha.19", + "@vis.gl/dev-tools": "^1.0.2", + "@vis.gl/ts-plugins": "^1.0.2", "pre-commit": "^1.2.2", "puppeteer": "^22.0.0", "tap-spec": "^5.0.0" @@ -44,8 +44,5 @@ "pre-commit": [ "test-pre-commit" ], - "volta": { - "node": "20.15.1", - "yarn": "4.6.0" - } + "packageManager": "yarn@4.13.0" } diff --git a/tsconfig.json b/tsconfig.json index 1c3268b1..678cc6cb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -39,28 +39,39 @@ // END TYPE CHECK SETTINGS "paths": { + "@math.gl/core": ["modules/core/src/index.ts"], "@math.gl/core/*": ["modules/core/src/*"], "@math.gl/core/test/*": ["modules/core/test/*"], + "@math.gl/culling": ["modules/culling/src/index.ts"], "@math.gl/culling/*": ["modules/culling/src/*"], "@math.gl/culling/test/*": ["modules/culling/test/*"], "@math.gl/dggs-pgeohash/*": ["modules/dggs-pgeohash/src/*"], "@math.gl/dggs-pgeohash/test/*": ["modules/dggs-pgeohash/test/*"], + "@math.gl/dggs-s2": ["modules/dggs-s2/src/index.ts"], "@math.gl/dggs-s2/*": ["modules/dggs-s2/src/*"], "@math.gl/dggs-s2/test/*": ["modules/dggs-s2/test/*"], + "@math.gl/dggs-quadkey": ["modules/dggs-quadkey/src/index.ts"], "@math.gl/dggs-quadkey/*": ["modules/dggs-quadkey/src/*"], "@math.gl/dggs-quadkey/test/*": ["modules/dggs-quadkey/test/*"], + "@math.gl/geoid": ["modules/geoid/src/index.ts"], "@math.gl/geoid/*": ["modules/geoid/src/*"], "@math.gl/geoid/test/*": ["modules/geoid/test/*"], + "@math.gl/geospatial": ["modules/geospatial/src/index.ts"], "@math.gl/geospatial/*": ["modules/geospatial/src/*"], "@math.gl/geospatial/test/*": ["modules/geospatial/test/*"], + "@math.gl/polygon": ["modules/polygon/src/index.ts"], "@math.gl/polygon/*": ["modules/polygon/src/*"], "@math.gl/polygon/test/*": ["modules/polygon/test/*"], + "@math.gl/proj4": ["modules/proj4/src/index.ts"], "@math.gl/proj4/*": ["modules/proj4/src/*"], "@math.gl/proj4/test/*": ["modules/proj4/test/*"], + "@math.gl/sun": ["modules/sun/src/index.ts"], "@math.gl/sun/*": ["modules/sun/src/*"], "@math.gl/sun/test/*": ["modules/sun/test/*"], + "@math.gl/types": ["modules/types/src/index.ts"], "@math.gl/types/*": ["modules/types/src/*"], "@math.gl/types/test/*": ["modules/types/test/*"], + "@math.gl/web-mercator": ["modules/web-mercator/src/index.ts"], "@math.gl/web-mercator/*": ["modules/web-mercator/src/*"], "@math.gl/web-mercator/test/*": ["modules/web-mercator/test/*"], "test/*": ["test/*"] diff --git a/website/.yarn/install-state.gz b/website/.yarn/install-state.gz index b11e0575fa3b1ede25f01149c71fae6fc9617e99..fd273bda48e298e82b651c2c7d6ab30942eb8e25 100644 GIT binary patch delta 1106423 zcmV(tKys2(s(8ClO?jfB>Pg zP*P2#MqF626YjldTThVx~?^?f(t>Lf#;r!OokAbE?-Z)^e zWm6uW@&bxlDbGTH-?OsVf30=acnKml@GAQdt$`ycvMwZ3D7ZFH%tTCvKw_t>b!XWK zN=jo*xDaimY2;!+R4&36#J<;KSqVM4837!aAd?wCi1+*I>}LSi0z9XvTl}>{ORXU# zmW&KJGuMv++)>On-@B83yQDZ@a@7kl%!VDd!+<~b+It&01VZPse|kZz0dB)CR>-_h z0aK3$$4FvT% zZJ*1CghthTe1m{p1D~k0o@5jRjts5Wb6-ewW6rvoa+A1_fn%Wn;*WyAwm;2##GBa0 zyjHMut74WD0IjyHe;}h4``Qh*j{KfXj>WH?SvMiDePatFfN3VRCmeA9AGs@#L*URHW4n3^CL?LxxT)LRk zz8Kl9A!I*eBYOd))%Z&8N6;A2714jQ2=vzLrbQhi7YDcAf2~a=12szlk%Mm+P6U2H zv0XXF@a%;siNstKP)P6)?rv>9I+GU1TQz25w&0u_gjkmL&-2uRVHVfq!aL2nu9)4r z(r1lYRXe!**;>_M{1ZKJDmgZBeJ!qneRzHK%OhYq2c)}~-?O4U3J{Mu)7}7*Lyp+Ej)a?I_xpbvkM$-E9aOU z>Z6u1_a+b4`(q(pU(@jpZVsDu9cnh}?GQ&_ww(D%cU+E+7Vwd-Ea$Zkt~dlGPOCaE z8a=eB%;XfPD>Mv7D>8HE$9zS1PJ(F&0-KbxEj#(te|!dD_#104;9NHdT^eTw_kQ%9 z$H8wwFu^!umX=QS0r0tkaLV^V5^q`BdyISEy-UXeK45hYqUjInGQ*0W@nus{_-co5#(z`5wXB#Z9rVf=?BFtg>zE zq$JsvjZz1xiU+nddMiE4j8kCK8$eqSG&f7&e^V$4qQsj7>l>Zy-O50>G9S!thL4PV zQC$}uJcl|N3JMUx29=8D2C-MiYJ%|g&__|ZHbDkh@VF8A&I>CS4AAuIR%X(yQdkZO z>8Do1zH^z(o<~=$>D-}B?%~dQ5)0%U_}>l8>vawK{!Y>$ zf05Qn#irAN^k_5(aoGW{IPF07zRKh_%EK?(CFFE!K{6Gr$e;3lV#e*8n?=@DosnH@ z0|EOhw9_}m5{f8C8?+=P$M~E?*vt6>9v>@|yPnl(7yTVBD1uNREa7}!4)J&rmI+Ad zfP%j0H57(ApV21bjFSC1Oh1Kf5?=*@2IxnfH|Lf0yw4$jgM~x%`lomtITRw zoX^OMo(l7Dhira(`mB7^#)GGG3%?SB&AcHv#}}jNftQjB+iUMUXECEu_)TwF$2YO| zQG3GkA7oSI(%gtDaWd5NWTaK$r~>Zz@K{+~7bR9I3MqoSuhk4Phf# zC2Y#+i1N$W1>Oc1^w}njPbag_nv1yJousgCrz?hRb-xA^AKo@cMwnE{>}Sg~IIA`I zMoRAkjYX+`YroFAw^=`)Z~-Dbm%n5J6@NGSJcTA*tJq;GnL(>_ql*Go2Ru3`@#GkM z9DH!_M&NDtg0+hRdq-Z^$>+5lN&w{bI_M+U#@$`mnx%_oSEjrMHbe4T&(jgS1b>tIvb~>& zXoUM5Rj(RvUd7NgH>u=zLAI?$?N+W8g7*)D{l2GDyLWY)&P~b}`gFbdXJq$G&_m{7 zLEtDuSRlokhmRxoIY>+@CLR3b4^U!Ln}iG=244kCy->$+YLy{eG1{TAcHia-BQp?;m}S6>mF@5 z@H`?|Pk<_0LO;fy6hl5aJ+V(alb=^-Xh%$l+tne8Nn#|>y&E6nB70pTx6qnK<_}@C zypniwj#?;EygF_kS#Y>`-{dd*<%t&9AkdI<2A2_N0v3NdBy={q-8dQU%M&iCY+YHt z0f{(vmX<*5P-^!X%R*z98qKl84us=cicT-tr(4j(FcH-u9F`hz=*Amv>(z7aMFr|i zng=lO$619*rHyWLaK=>Pa`ovBC9zl%sK@`{fq!OWwe!$K*s9aU;_gug)+0j4ve`lo z18cF!spo&9UYuUSP{v`Psajin72u(rZk)v`0Woi^I}2XPO^xW$MuTq7(@_hN$YyOC zZx#W|!6#4w(eS{o%vHAlP=!h!#Gnp^B(k8T)poFDm)Qc}DU+D4JPPQh1W3x@i$n7Q z!zY1jcrrm=<7Au$&dcC;QNbS-TUwihl-RbO?0bKxx7Bn5gMjJ%@ph>AyEeb*E?5v* zBE3a|yz1@DeK{C1&}HliOp+G0(!=tmPC!u~En?0K+O36?)}A}~Ysa{rA?sF{#G-NL z1UYL@u^yNvWsUUWiP$WQxY)=&CFq-qwf$W@csCEw$*v_2yKv4q0klhlT?O7FG8um@~Vz!QJv(nkzs4M-OiRXAjaQ8Iw7ogRWyzj?e*-&_Gn zBuKKM>0=zzcFG%6IHehn^EVL+mem&P41Gplv%c=ch>5pY$bwDU009VvGIBlX3bsz` zFcvuqTn{>d$>HGWF`F=8(S_iGh|(D_(~4%6g@qQ~-`Vc9y{kdcV4=E1LBoGjlwse_ z?81`HFNLihXLZ*GV!$B1Oz}2S+sIt-l|zzY462I?$?-lRJ6oblEBkN}jV+p@&?b-7 zG;uW+-1rhmAe6q|DZ3xHfC0B?Cai$%o%kx4%FY{DAel|c;Og>2aO1!u?BfE6({>NwKV;c5jwY2saiUP*w8371V zy6_zsRC~ZBlGgYAPR@I-?sIbtox*^5wGuviQ>47zW^QXc|5G+UpfvZT_G@F*42x~U zP-0fjHjIsM1-oDN$akY#oDPg**zLyAiGA8ZW5MhJ5dECP0;CnJngM^oem4%1>F`93zKYBFvYCyFSoYGvkd8*sU@SLsbI$NM8F77!Yb-WhLCFXW|%ukmt1rvn6~IwlG3Uz3l~X6Hp^n{Xxtc zuhI@emAoTBF+)^fnc8v&by<&JD%NFZf5fQOHSybf!xh1@w7vvsrnPF9p=|4pjVX7G9QbQnh9RI@ZpT~Z(Xm}VI~FbZE1!?u4Qibj^wz>)g0uo zgAhi`DwpeS0vdnr$giH-sH@eYv#XNYWVAb8@i{<=qRk>Vxd+)zQe4tL58d3Cj5Q|_ zr0C%_T`5&$drE3{@w4?Lta>;zpff9R+8*sj(D(}LgBjz&pBcm?qTLg(Ax^|hG`cSG z28vz$1zn6rLipw79!wib1+avb-wiCfavzy5dvmw-GZD{n#hG#QqwQm}!|vPm!UU=Oz<~-NEnut2 zH-dk?3SGacB)uVZ-m*qgm$^w5x7PBffCF;-b^^CR)jJ$Ewkz)(nYaN4v9c1P>(cn}_pQ#X4VHN>@l>Cr1iN9`r-hPVl_1ffLDc7`xuHLWSVj+@+WQ zaRM2Cte$zPeBaYn(N7QN9bsN``s2jfy*vgpoE;AvGlppNscN$;Fu9b-%A5&`rK`eq zW((gATHB?K{pP&JduPO1nt0ct9BDAWUJ`C1=)-w!9Hm-F#^TlOx-JndKGQ4v5uA$J zYpr@7zhRXWBIHN+;h6@3PaGN+64Z?iPCKK2VsCWcSa^=w3bYaiyOSF`E+QR1wVqtd z&xt*cA0?9B2^N!D7{kAWCB+4z`tpzrER<(#1$klZSOOyurop=FgxUHULn%F1?PKoR z>-2Is@boH>i_jQv5}>EQx@jDzS1D8`Da}F=#Tt*wp?RCySmeu`&c;HMP=AS26yE)R zZIL)5>q+yuJQ{R#O}J7(yPEllX^Hv>WLSp*sw7qm6h^YHx!kwJo$`ffWA}jC-Eky@E@t?nWAFQC1)RBWd8HBu#pg$Xj$@r ze-&IQ{oOIfapnP2S*6Z(PfW+YF`{7>I2hfw_S#wP?Cm4 zug{27RxSHFfV@{t1C86btzkw1`Wu^HfA@&xIVnxk(%~yzaMC7w>ZC$oboV#lUBh83 z078n$M-QM#ci7{T+$=VbFTEz+5EszdX^QvfEpt%dBiMm+%qN__3ed!J0V`YO=geo} z%)R-mt=MZ8Q&%tafTHu6P|YmTn!__G9A8 z*1c>s)EZFM%PUkZC^-ayNSL`rU`kCIB5mqd+a61+&mD-_4|Xda+EnR*G!7=18wV!| z_%tXcuc=DxRDkn@;@i#&+&=-MNV-R7lcqC{R3y(-(fG$t_=EE;Om4C1x>>4>St=Ep zeXw14Epp7)jR@n6qL)v00wI5h5!UnUNWHI}Zry<^1J)vQX>T_ft&PoAztfu8pgFXl zBdI6nM^yAjjBAn%U~j^|XdN&M11-;)w2Uv5UFuwqv+|k?4#LBfLgK!;Y1JtRnjE5Kqzca*qP%&Ofe^`0JivO${x1Cw}D-CEKEWWf}>8b6=9whUH z7fjLmoal1iSuI$b#>PlKsD_*kLOJ!6ufmHb0IT#7Ik#Cj3??fM52b_OrLSb;6q1cv z+!u6Q`ozuGBO}(?XqA6Bg+)WQL>`JKrsYgt88R*a&3!YG@K&lD?!)vsAz*=Yw>qel&3;OqflSdCy1%q;Ik34H{=95jyJmwn z#NL~#j-~s&c#26T5Th=rm`0#1zQ~{q{AV%D{cJRowEV3Gmyr{Cbli6;CVoC_Jl|*Di|H->3L^mJYyxW|tk{gB!&n zW+KN}^FkL|!N9Jk{PwYxGVWn4*O#@jj(_#sa~%9S{qdTzO?-saI|yDsatAyt9@_>4 zO*YHZcYK!ffC)|^88Forvh!sW`0}c-h;*VtjxIWNvmVL9Q)&>ZDU_R5OrxK!XFg;O zDfod&NM6%%a(=k=N<|MfDZ1TV+l8v}3_5FwN}U68^x(U{`4e^NveJ!qrEZosNPl)f zEK`G4BKl+_aVfEgVW!fPAW)1!&!~z{2jD#f6>O(t>*^Te=bf@9CSQK?ckh(BJ>}wF z9_y&UwqEJ7sS)dyuNQGI&=jCd%xfw&z=4aWE0{xW-0!@`{;uSsDGDmSw>kVlD(8Z% zWe#U8Y^;lr>d<3_I62m9K`lqP4}WnmBpSGTk1`+Ccl-lrj~82GkWz@FgfJ=0Tx+AB zlzd5?R#VE-Vzx9r@*^BXJd`=*{vlow-B69lW`#V#B(8jccxh7H$_?tE?T%bISKnU@=hY z$(*pLk3tuWWHfboZfoG1iTibW9`hZ^^FnP(pzj&+>^X`Pgn#ZS3iTPvTtx{#^9O-& z2L1mQ%;vfmc!mP~f_(}E0y?nJJ%6?a(EDK>)MuxAb5ZnkhK8d{Iqa8`U>2k;3maw2 zQtwzh8^=sEt-v?6cFEe>coF;{LC`F35fy!1Ar-iC;5JvQZJ zMX1(EJYv8l1M`^^K!j{}TJ@5TUx1hGa-FHX{vqinY^;%zIZ#gQDaCKDvJMg!!cvMa zGFUkr9y*EmHGe~* zLKZ@Vrd{S@&HF2p>w1@mO2dNL7s!1$!nmx8(3WUz+s# zihl1>+8cyaWQ}^|##wmUF7jNUf~!AofmZTxv+(L3Scrg~^MA3dn#!wiU`z?fg7{?fy_68bcy2RxDGr1e zxp`%Sb)Q`C=t&OM#&{q88gCSuh?SZ%zVzg{jmDn6B0R+@yKjAmWG!Gci9VgrpDQE< z0NT3nG8C5Dz4FYRsKq!rDx{e06Bu1r8qcso`YF1XaD4(gf98m`$ANIhf!Vh_eLQu! z70?A{WRuMVXx3xbd`Gn47|iK`XyhIXTkNf&wdvi+B`IND0HhHQ-VstUe4eOP;R25> zQSHn&kzee(@F>>IUMs0@*o|Cyhp*Nfk!9d2lxtU{yn(%LFbRT8x5NQ*4lbw6uxg3L zB^Cl5`wu@1fBfkdM7gEH+=4ecs?dENmbY!7^8%1>TH|uS_Asu15||!s-{!zm`8n2} zhj_Byv&`LCweS>wxb6;X1x`PBNa>9&in8Lg^|4wI;{?)h=g-f#2KEY?33oa2MBa!D zDsEv@QP5r%EEhJ1yQ-tCUqPz&GE0m1*g}iUOPPTs!wgxp{If|&T%C!aqKoCu2_bMP z8%^^4a7PFd^RX9pd?PnrYz8`$%%O-^NgSMg#@i(9Qc7A5Ni#%Yw!l?3$6!9-7(lq1 z8KcgZe>J%9PBjuxu#sQwfCQ|4yTC=f4cbchXr!5W=1m;vUN2?IidkYe&}h-<4w4^@ zA%}0)Dl!M$OtR~IlP91AL{f`^(|DQUST-UESzcrj?EkWZ#9*Q7dQ+&rwL|dPD-0-7 zW{)Trg@^H-*wxKYCO4D}R;i2OVZ*y(%an9>e@%)F9j_9?7M{3!o&vFSEEWxgLkQfA!|Z87*-2+WzxYoJ zH`h5V4|Lp^8C0whXgwHGOw6r-FJ;+gf1}tjqTF@VcA4ZYAN=J>kPBFB>4d=cwH?fi zBk%*XGeHR{b5WngOS_ie2wP)-S5E%Ni)`{jwV%|g4`&c;Uk}&Mz-&?Daev4$0KywN z#=X}by54)Yz_weg7f1qrm z6cmvp6Q@9+5<^nQfxx1rofuFKmDuwJdAXgS>L`Th(0VUkxPZ`N94OuW)sp)b#G@x8 zm(zoT>m8_M>)|R{fgjz)rn{bfl~+TxR~G3xO49x6dV^@yX?C3(0iT+=YON$m2=n6} zLL@WJ;O$MPUx%Z}?R(tx`cO)chuT-{U(!_!jUpf4~IMcPP^i5bi|(OczhLEBM41M$I5|t_U&EP(&wcH-+@jkV(;<-$|L$B z!hUntP1B;$5a?REknCpee;tZ?0T{2P1@|4?al2aE9j_d^U%nS-16t-OmQ|4K(1D`6 z&b8|`8nkAZ?ao9jyR@N?Uig2T8mWpl(7s*Nsi?CYW@n z@NEPS@CqR|;D#A!^dd<`UdElzb$8wf!UuYY6*JZ};1DN}*cN4Xf92&>I^K4zVstfp zm+T>!L6H~?ZXd4>!c!Ip%OV3043q4s!<%vRujb&^iC-pIZ0ce$M0KT1EQ2heQiq zFI0LoyjLHk2f~`gg!Nilei%)ImHBznVhMV4T!4Zi&WHc6{2L> zl}jV6i#cc%z0!sBHz>IFfZVo?d2DjmMU+WJ(l(P{CjE?ae?h#sP&lB{V{3n=} zMbFWH+01r#Cwe(kCB|qHh#}NR&Px>I97Ye1Ar{yLc;z&13LG_>Am(nToXgeqlAAFa ziM-7TmEMx6PbTQab6QM_vK6AC$~9EEn@-)8u!GdP`$X5%#V3XV?_jPc4ci;c3W{tL z?>8BVqk)3%f91t&ErJhLUP41Lt%BSOJ>MiAEe7eU#%hCeiW9usTINEGxcxNXqVSZ~ zBXm+28{S)}L_&;e!tMy6YmvU^mfFSmGF2=xM(val9I0ExL2{7us0aD}oBV}q`;PNE zqenh;c7%x0fwD)pd^3_}r7~=BPdS5$G@^2kxdn+Af9U#M&U=8L^(*G#yee2JTb6qdR}^t8}W=v6F;D_#7Fk!yI7cQ}1?% zwB0+7DM-W!Iu>CDJ}{3R2Fr+&qJ-LU3)HETF_}m}??ENzYeVmi&8*VIdJFFb&qt%IY^cKfTtUaeJ5nnk zx1lG{Y22HcBhs{@@^C=TkU+e#z%~CC9ix!vP$G+MDRG_oQk?P=qW%NRtrdvnQjExF^i8D8~ zLq2MH8`&xq63McAgijjW#WRyo3$*nc;UICWm&SIMJ*omBtIR)xs?j{0Tn=nh-<2 z7^pv>nP=#t;hV{(D#{t}KK3a-x^Y#4y1CQ*Bq$Slv)9S3?=v$$|AYlVUn2=$bJM7A z%JNAH|0f5J6ko*z_JadB;Og6so%+Vp3v^fF$M|aTsLh~5Z9d*4?v|G#V`h5ojJZ{p zNm(pE)1C!uiasE1zP)ST(+OwVMu!81WL%f@hXN`B>cE#Ehyp=>vhp;6j&#^F15YF` zh}Yqe`~1$3e0`ZjJO9{({+D}j8V{4}64%;;sGBjs0K&U`0(yrb3q?68QY^-)uhWg( zr=R=otEq?$M7BeS>`PtT=hl=?e#6DNR)AIk3+G0AVKATxn`5#F&|6AEQ3fOHZIAB* zV^`MZu^WKfK_JS18!(6K@+O{`h5P6T56#-l&C@*!`V_G2)lv%T5?{`HlPk{~cYK?) zU`l_x&!AHXXhrg;FiP9(1rKRzk$o`it`78SJ#CQMXt@q>5U{85TkOR#{!)o&&E0@# zPp`F(ij|?l{^Un+_u}9(4wXhW19W~n_q{%%Ztf!cXA~QMe+g zPy@R;@5TL2In=Ot(E_3D`M!42VVGTb_MghNEuRM}J*n*K1_P}z{~n7GZ9pr9Gr%9A zV`yN|uRNx0yo;CvZ2MUxS6}nA&9IEQtTY8R?1}EPxh<}~J&Iqre<PoR(jK7+Yr<1Y($$ zIPP;mh3_n@IIsC%L5L*2-;&N~1pF?_xgn44kCJ)0ywiyyq{5XDgj_Bibc9>XiQ>?FviQpY;Cm_3!KkyW|1C)yZc)V-WV=& zOkfE{Dk#0|tx+@O*3Z!5V7D%PpX9Repklr{r~)HU7*|(gf&(OxsdPYN4oa1K;OZvM zIT{9k>Lq7c$$x|vD-&H4EHmR?Yn2<$CYWgO2p&a0&9u@9;HCEtnV;c(r$C8-<9k4G zMnVNCP4mLpb%-%tkUHBc zTBlURVRO;T@5Be_+mqpFZ0}Iw`F@C~IH|s*P;d@+^ z(+l#PeJ>Jn(^;5?fW{OmePtgYm}q}Y_A3lUpENJS=YiZkjF}{p0UYU3teYI~H88VdX zv>364^m(+ijfR6)(8Oyg_x2rNbw{@njfgJX*-^XogA;9DsL(!gc~TN>H@_0Vz+i?^ zD{Fl7?8@Ocpp-y*K74G5DYyYW+c-@JJxCjR&pq@uW=4PtlQ7@32hM+)gX4&<)8O~O zj8p3?&mOka5L$?m6LB(Pj36&f%VdMUF_|@X@|ugZujVnk9@ge3@A++-@A@K=LmoMe$jd}hoVAcgo z5(|zf<2c}aCTJU=#O8msF{T>$7QPLQ=e*Qx+hV)te3)ygph>wT+;- z=#Q_d+}hLOMh&-N$Zf;PYdivGP~->YO0F!WESylhHzYcpI59c1hza@2vmQk2cYSta zYSBjTlveRRwhJ3&rSi-@-+D|=#`S6kA7{O<*)poq(1n}v#u%4qjshG;bO1s>d(N_$ z8!tN(PbECf6s>Jq^=Wv|$K+;n22#SjHY-DRt=-u7bba7BcI=v^9F&pcE>LinW68#K z)1QDAoi1|XsB4$XjshBgquy=qo#fuTGb$y~4pP(c&5W8z+ydseGXAHFK75Tl?h~@S zMrPz3Oq@t=4wIlcKk_^MJV&0#Gz^2o1m%poM^=J1*g@0D@1m1^#`^1v(861YNA&ji| z`m*34#fV1xO#`3SyAQJ11YEWQFRX`8vH{u@H3!${(~gy`Z{R)m#bE15dz`u>_ve@} zxE*iS`vs8C8_PxrUQK%Kv9MTkSZs|Ns@*k4(McOa=d3aNS~E3P z@(812FOTAHF!CRN4%Qp6en%wE%nmL)gC5km@%m=Co!eBSFrOfd!G{lylDWQ(W|N7XUysEZ67X%OB2qXyoBJqMj_81h;|J{%`!7RJc1*8k$jaKMfCBY5Vfc&+ zKG&$hB`z7^WC&&has>W*zKXP+-g$Z%CxBLuSgDX&0OH9UM)5U4Nf<+aIg>W$t& zNIhOb9u9Xf&aLB@u#f^2e;L)cBHOrV5}tQdA4w_#iBm53Z=I*4yNgJBJy@M9aBkdq zT=@9<9%_KAy6{)9NdupKy<-D_`?sN+Ga$2hyo`+MqJQ@+GEXOnWHtXLl;S(X>^5z} zyYzfOk09Ovi1V%2l%cH`R9}})1Mmvd!ZV2b!~-%&uqr6@p+m^9GyisJ{BL(EPI^Uw z(Mtst;bp_BTdyv>Rw3Yj22VaMo=?Z3Am|@|uHI`OsA>!!~= zZkzQiseNvefnaO4asfHurWPO7LGJJ2dlxvY{X0#J5+-z~3iKZ!8wX}Q=5DVdjb*)| zp@xkNSVokE_09n>xxhLX zHWt=H2I4dB7IpCH$At3uDnqO)Ly(`>Wu>0{+2%Wr~j~F5=2m!q>}A?7c_crJKX-7vOAr;DMQk-*!pLt$r_V15K<6ka+}Z%PmyNoU)i&3vrfF`p^dszRpo_j9h;>T9|M?!4Kj&QGh_?Axc|B7ma?f=>hnNytl!W;$@Xd z@g?fHrZfmS7ZS+>oOXyV4)jxV{Iu?H45XC(E|(==H!xiI@X?jY!>5- zUkRk`19@Y^5Qng4uR;)8Cvg*_zafX9Kxv0h=>xh^p%^B>aP>yUC5TrXk-Bk%EV2!= zrR<6CRIF36F`H-Qt5davjfSrkgE#wvA&=EUJeFA2(UH$K5uBkfeyh(DnM$kR+JnB! zCF5!nGW)WD-{Gw#!HpJ8hvTel^nU%`G2_;fJ6T`ysw zz+8aOH@wD(%+Dj<0tfJt6qSE_`0#cEOM5{1Y9q>YBN2LRAl%t^vx784t~6FdHHPOr zb5U#&^yw0E!Q{#LlOT*(W#vzSx!-C`4gkNZ4n}X)2EJ)Dt5T7j@eSo3Il%DAx^f$6 zX`Fv#zX`_>j`UVF3>bH7H3LGG$8R4fem2kWltI9Jy|`{QU$rNQ45xoMB4&B*fLkRn zLBOS|Gz)TYWF%SrGu#}~Ud_9Zk?B!p(ALOL}Z9Nf+M&a_f(ZzP$uZcqp$O2;Ljy8!FgOp#{PV4GY3U;AHJ}Q68IevI2W1bwr@xkHKV{!=wB^Eg9GY&pX>Z+(j?*RdSF5W-i z!I8=e;CFwJ%3mQov6<*%t=<3%gr62sOy%O7%!h(DYAR?pzdfhCIY9$Nw&{rzmeZJ%oQcdtvR;7UoNo1aUTq zr%jFNvZN<>o$lR{ka^ES4y8zd{jiZgvjhl%tYd!v8G0Kv~K9A2&q&3d{Kv#i7| zk(TWTw=-!MrTfCrGsv9ts@}Ldf8Z%WK8IoI-vUwL`=9Z#QWswBg75;Wv z*~Kxcef;|Br*Ju#GATI~uz`DS#4ODC5Bc8*{~ECdg-DO?1>@3l88%@$Y2BWj zAvKcVu)tV_mgTk*v`NsniD>?bW8O;!eZ+Kn7M03Fho(wYJ#f77T# z6CDNim`BsP&3fBJTQLq^sKm%fg4f;+dZAlTlC|Egw~PcZabk}(d*47Uc{}t+2fJV( zIC$@8r2O$M<#?vo{nh+Ma-l7AysGU}FOY`kh!J?SQ5o+$KF~M}yTd^p&-bGe+ra+V z>bFXxH906|C{D;keHy-sT+|hwn*->J`+V-OI#o zR4j^*eg~V|V8ub}KR)Dp`!#Z`rq4?7qVWTe2b(e+SOxoWF_f z1*i&`+b!*lqfGLVotap)rJK_yStnjN#5_3kY)W7)TgW!IKnAQ0oMc+K>Y0?DxMl;_&X4&a2Up1XQEM;x21=}o~jUjmT5cT0Vt$aBl1+#>+mdG$X-3$e6$7KG`kda2I;4*do|X1LlX_~U2= z&^T62F%9wQ4%og`YJ-ZF4yCfT+ajc(wEM)YVm%cUJP*pI zB!5eXhFYKzp=Sns17%1FO%LVcakU?0nz83C@cu6aSUnR@Sy}yxu@_1kb=OLqpK(6& zQ1skLIad#^T9)j5=x#wYp9dE^v!P3c)9$Ulc;R1kR48;Jf4Y=W>HHVCw=_XkI?QA- z=x&wfL(danO$lIZa6NBCX}B4q=0l=3Hb-OOC9L-JNkN{f^h5NFcT z3r;OO!%E)YNbq+Kb5PazlvR+^+`@+zSS8Y#4%lGI58wvhyO2eUJxZ5TlZ6WB&x1r0 zs-Ef%$aEA%f9NszB3JTRcegF=F)ZclO27$9gukFQhk@{chNNo$$i}=wBJAv@IW<)5 z$9;gAE`?hPRy2&46fxfc{4P;s(7xjLRNo*NQFjqGL42l!n7-uR`dscwD|>*%W%NGH>&O%$w{wP9?QE&X zj7hGUl*}TcS6E?T@@!ZGd<2a^z#EvM!pIkHwW?h=t8_riru8b}?o-L3sH&1R0WW?N zftLLUe@5V)iTEM?$P`sENuWLh#uCKT@v3Y;i%qP}O=r9lVuBnxoAXaqn3x?60EH}~ z)C5oqlN16mZ?Jl|O94>Gq<;@+erMC`?rg*=zGJvN35%IsF^`A2GG{FzKbV(^LFEYmu2SpJ)rC5(2T?! z*o3sW(Av-lpD5Gnx-~5I)O$B90=fk3f4Unq^|*2$$wd5%gVxd2g0}i@|a@x!Cjy6$xhdtJq;}y%xUiivPfTg(OCc~K-RzH#|z7hhw~2P6w5(O^5QJj zA*(2aT`Li}U!@<&l9m|jHS5%pSQga}?K+U()>AL2&3$=5bC+(U9G4P-s`W;%viIrp zkbjZSzJKtKxFZ(;r5oY+4cqF(n?|=mV6TyB3f%0z3+CHZc>iyT;vs1O0CQ8W4aZcJ zpz$Q^8293WV69l|TsslSZn_xU@cq@8&~^{2KWO(OM=!erh`Dew3+1rZ%WTc?tisNM z^GQ6Q^Al+lCJ4E_bP&j#3>G&-xdgkw7=PiX{Ei2DQi;oPf6{9!&2F^yn0vp)N4P9x zQ84Uz0&#Gklin=T{VhZX3CQ-|xlq8<>;jj(u+Uv^fc$nQ5Vw@tMZt4S)Sc%{~N6Ewf*M6r<;-qHu=@LpC>Qd~}0532)Z zbr*);-n7)LQ^ee8W06P9tCRtmjem`#maz4jRqMcORm~v^Z_HVZu_Lb-{n^6ILC=^P zSl$moOg3a(uA?E7X^%Q3R}H@;+W4>DrpyPojZD-rc4~BeAzm3kr%04y<6Aceq;qbo z)FT?`Lxw!VI^@BJ(D5^qZ}!)O>Ghm3iDOBxtI~I%+W$DxbxePk%dfe9KYy>o<*oMv z;b)2QmZJ{Ea)B+=&Zgvp2vR$l${_XI^5q=?lFzu8=EpJKZS|3KL%P(tOir?poUAWV zcT{H$;{;8UO(_jZZ0-B>43I1>8+R)9l;u#iA3%HnX*3aI`WUlvfZh$^XnB>0(c=%I zX$Ug74lUkY%UBubQ{hou=@QPs+hf32n zd>eiv+)h@*I6Ej)$*lSRk_{O%!7gpbl~v12k{(U%df(bGK{!9Qn0c8aN>6V9ELI3^ zjh3%uip(Z?cDVPAqCF8uXRxb`+bB}0`8WYBtiPcDabF>yuJj!eD1SW!ZLA+ z2-Mhiy0?Xdq+A6r26!Du-w5DjPpGHKV7M^n?egg7NIf#otOd3D8__4SfT)$IH>)Y} zb!wX|BrtUIvZhkctP8Eoybh`+F`g$nufJx55rp6%$&(XYxCzJ6n;140C%)YtpcEz3Sk6dUL18f$ zOgFgnA)uS*@IpICt&2^%ghLkD42s%hguMffICw)=kG^%6O``(l7GKn6kYF;Q=EOb$ z6RdK}!?VV|uHn6|d(_Fg@NvxoxPrg-9n>o zCH>pzT+i1)=%Jmx?{f0y;~4ocUt#Z)@b7sgnWSVt%UJF5i~!J3&F|n=U|_B3^k+F2)+(sB?wIk~+yl1v14Wak z_@&ve^Yt#otADE9x)$V8hs-yf?ZaLc&$ly)n73aCee%+8M&8J=&6Yt_zRhWmTQv(| ztYq00uZma*V9yu?yUX6u3vJ@%#K$L;t2MYMaT_c)dCO4&K7;7+g1Cu@yce$6WPa&~ zH6>(x3IsuH+PPY7BGWd%1*!_W)S6#PfdIR8^PUFNIDY^ov5{G4t#e*@8Ku<5goG1h zqdEkfx2?^k*x?Y8IVPsN4cLDiIo|PG(U7XFlS*IAX2GTGlDs9^dsaRR{7y#epB1$_{8w3TdH6IY(IcL&1cN`(uLdQ9!ims$Az7|;>= z_X|bDcfQ0asdW@{WeS4A?Pw|y(2C!wJYN_qCc1zpuU-NQn|-nO3DyHITVw7a4E1-1 z%>(X&?oykO$p(bg8D`(sH6B!4$&1@J)EShXHgq7 zSWVO^(?2-JWm1kOF9v-5(Ti9N=hy4g$^zU| zd{p)<4QTm-spThK3S}o6adH3R-9tSm13=Q)PbqMjhp+YCZmpuX9IG|b7Xt89&^ngN z%YOwdEXde|M^^^Zg*6^j(#P)8P^F1sHJD?wrXuS;eWK; zon|Mq_2{rrWV2!<*65a&;PmGnFOW z!;KwNP9(LJU9dQW`oee2(Ll2N5UGv1hLLZGfbYq^Kww2Mm@ETGu)guuO@kxK;(i>p zQ=w1OOox+GD0Kh$V9h!f1flD=PJjFTH*s&Xb8C*I*8z5y4ar6uk_Bic2sw5p7$hUe zkf$E#Dg=;0vMO6ynTd0ZM__|R^Aer&W;cUxR8aY1~bOx-CU@HSU;3Ak>Xy0=SVro>m8Upqkl<1jpgw? zTN=hIS;@0wUc-S)^PkXbRrsQ)sOFfrF#3ZUbgLv?Y1KJ{{|RSTkr`QAS@$JrGdRO& z>ubCctug$g8!Q4hl&M2-cCN0bNI2k-b0mC=LDISFWsn3W(PEQCVt1{%mw$>xH&l{2oFg39?<7S;pqEwqAP)&06pe&lka(Bf%c+{T zsX25JPR@AABV|p7>2X;^EoD*a(=u8+JlwK>9Y}l*kW$~I>@&lat8h`Cj15K{&2>r- zeRh7?*s}3k(iKo<_;@$foJZ5%qxf#;sy%terH3|&t{ZsK3x9K!B7dt$Zna!UF@Z#w zfzT4h8dBV|+8qxj{pq|L}Lng->V2{Th}sD3cqN%kbaxQ ze6stKzlc>v7oD1BT7T-;iaZWwCqLB1zXAKK;v@FWYHYhJ(;W23>k=lM4VTS!w9^_r z>e+k9@yD|IE|5@b3JgeU<{O6OlXpb&>&X7I8$kfrvwGEXWt8LE4t?XYSTZwW5eDF4 zcIT4CH)ro#C&1fFtB+c1V-lz@sE2U$GImsWkqeMHmd2ai+JCxJv6D(Io{etr4j@p>2z`tv!*?dxXI-_JjmFa()gTSMRSm-7Ew?iD zpfwhXsO4%3>VC!NimqM=Ya~*88aUsLm$Xr2mqhn>#mq<42_XzM* zd9sxp3;+2&sDD;I!z|?ZYDi%&jFZyvd$gi=fl$c^aT&_@=K(Z$Qyb8F(ukFnRd0Gc z1Nq}N-(}VPCE&QG))dTZaG@-7)%L()6T)C*!U{GQh#rGllKmXPR^NOEaz{))~k&T zHignoXdFS)1?EH0xF>K zqFn7AHm;*nHoMj-!WsXU=31wb@hYZ!4l^XR$9_8rqS^&&?eYOY19g{=?IyuAwj2X@dwbP`hDSR)P{=#gv zQ>}d(^Hk?6>0K(YqCX}f%P9*UlI0H>8w98J?prof8wtt~- zO8T}=?-wS-qG2-wnMXnJPQSUO0qz>+W}3`N<_>C`BVSV_PcjeA;})&ojrNlGXGDzk z%&83NgT{F~YdWt#Fcj&GlgiVd2?^Q%F7zr2aV?~3JfR2kUIICFfaY=1nd4<+kQ@9+ ztTsuoFmT$dJHe@X3EHhzC>ujjEPsVnlK3sav#OgDl7DajowX!^vVtes8cDFh)u=iL z?>n55_M>lFmKaK=LAa7?6evp1G&ogvD4OL!$2CAwTza<+&VoglJ_vai+`{pQNL*r&L2ZXU#@$8XMIGF$7|=O;_)cEwrjFfo*MHtKM+?@; zz=PqtGla-s-zR{xrTaX{r8Z9nTAIuv=9rylI|H39neW2|dQA?WwO`$^;NLE*E{Y=j zrp~^VxoI&+os?9Ksz7`-7WQRO%??uu)U`#nhM zkLbJw+a&fa1htWE-2@jnynpfiWbIJ^Yp24kSkBAHY3bY##poQT-8Ql{(~x}19>7Y_ zNtD-_kJJZo({9~pbb*R^+ei5Sbt+W&6NSTf7Fp4-`zjE9$0HJHyAk}U@rg%9)j)!9V(-@HtB@cuz#r#8-f1zox1jR zTU&jvrTm%mD7WbF2#LJ}K4C<~JVK^rp%A2i-oZabRI&)`*s9epoX&s}2~ZwSbbWTa z%{SP`IpQIRGgVUgwqYId)UB6%ZHG@~{l3V2>9j=ak6hk(0{3C1f6XslKnhe)ApjU#UMWrWXtTVl!Ebdf-{1^lQ%Nl80<^% z(lhDTC|iTRAU-wcn%11@b}eTDViMLZ)SDBuRR>V+CXajz>^h*yrF2Y>GQd=zLE{=T zh&`SMy_(Y^SAQ0ZJkB3bveTZV?9>>FhxWFNP#=>Sdj%pKCVx3N%i{)m_>L-U-q;;c z`&qXzH05|u80?6po{rGf|1P~1Pb0lb<@y^A>-ohH)P zu$0ScviZnlQ3A&sv3Xvj-Np&++ou~)Aw_d>TR^~;0#T=3C$w7j^wnNHm7X=HM-&2D zb{)Q=S$StA6o2qyKW*N-85qI0F9o~BIAIC%cc?Oy1J|G{Iv>)XqVx;{?jaP(=a8#O}LWbx45PwT^V+I zySL|8=TPGCe?rw<_RkmCh?tgl{&45)!sFQqMUnD@#DQWu&;OmE+W1fp zoa03i`+or_U|mQJs`5N5%rqZ^)Y~Tlgs$89k{;zWwXv`fn>!{LBz@5OV z*hJNt9WdhN#quav1eZ$LuT-LWPq|~| zt(rx@_5F;~3eyFsv3-cx=Q0N2EhXk zdfy0q^%yRykITKYFq+k5W0l=!UlKr1J;JeA&MTLPwQJ0xQ)PHTBPzygnec0?W3KZC zI$Bqvu&5j%Wsid?p|S6dQ3Ucx06D@-41cmzGM4|=9CGv)V$Uz;Td%gTLT>XY7A?#p z%UgjUP@Sqn4B!%b&mO5o6Rfr?-ebRgRul5#hmtqO#0D;sMZ59m=3@b}i7onMXKNT*AQnKFJu1&dskpzJUj`badPhu#J97xT91%urEL*zcPNILnuP~+5bf5+g4u9!* zS{G~!^1XVdIZEDwdt;RkQs-KPm7GVLPI(+w6m}95_!X-V(H;rA)f)Zn?%P^_f|leq zBbs|BW^kC6v}X}*)Y|*(qci?!$rj`C1fIX}CC{5_oc@t<`^wc%&I^Eu%wqT{4YmcP zu4YO9T=SxoDUda^2^nL(*XxWNyIbZ_@%Sk&)^T7?ss8;#S*eCN!y#M1Oc z0UH2dcN%LwXV7%=?KWH+=W&{=2TKHXO7zk7Wxt{JcHI$;&|Z&YrwE+z!%Xmm_cXaY zNAOuXe?dF!=Y>M0Kdt0z9IG$n)J`df-AKu;%sK)=1ysoOwlGWj$2ob&oPYL$Vj2e| z=iKn%F?Qi^(HFmCK)Ul-F9&8T&jg;{US>Cwc21*7#aU~!lcDhS0=JD>GkeJ;gq=7B zx`0lmb17#gXf}1hBOc06zHFl|vKqr1Ye*=iJr)CJ8vl*%a|2M8+xJjbCD)sKHE={! z-IKN<^$~VP7W?S`_i8(RD1YZ+n+Ii7M73fVAd_7&EXm!v+GEagCib{CymJA=oeA83 zpA;P&nf-LEy9)rJPG4xq1}knW0v6!#G`T#4SlqV8Bh)p^3CDOtEVKtGemftQ&*r@? zTre|9oyejm-(heBeu7asJ|BL4k5W?YwXCIW@Q&ciUC?`0yk`7f2;YwDwzPbrtC9tOwjDC`A99~8G)@&QdDrG`i2+CBJpsl zVy@FT(wa}g>cn9bwtp3|?tw{_%iLZ(o5>_I*k)8XO81z+U+ZG8lK=;(Bf%nt)2_$J zpfV}*ew8qc(UZU$JgX*GAV#~jH(~7yk9(LO7I^JWladWv3JV7@l0@SK#Yq(Q7*8=! z%d0`L^tQZwK!l%xAUKxV31JrDr1RyBi2{-V#zpBTwo5C!?teLX){C4<6hnHao)yD}}Ff_YuSiuLZb|0s+nt6rk z`X=wZp=Kah+1g-VPmWFqAXY~U!T(o~g?s_gVmebS<_=R1>JDU6!tqvTZ4tj-?k})q z8T{F`0rhGJ5P#$vNr@)SLdkIgH_u!5OyQ&*2FR$9SrS@1bq_$dNRPhMu+W%}vP z!sWef^x5FNq+-EqheY(KEpjutt#K*dbPm08)BtpJ5Pw8*WZ54T3PB85IGgMn2-L^E zJ^dzq-P97go?y|q@g6aRei*089}e)@+{d_oRzD5i>8X`GT(32!YscFzlfE?zLDx+Z zq$b%LzrcBf2^{uyL4z8ME$Ht6^-#XINLYnU;J8h-5)tsyP|_;Hjr_ME3w-=iU$Ff( ze!hiXn17jEq^mM_)9SQ$O5D5#d8WbVsXiv~l^c#n22%K4xAJ`wz_5CQ@J7W^=YRC%SjYgbg&BAY4d=~2g0BPDE8$48 zsSVVdZ-YL&M*3FAEM@NsYL|;~b1Q3aC=nGh>q;ZmK4CZF?$!u1JSUw;eBkNDTd|x+ z4qsHxBwE&89C0e+SBtJuIpHIRTW=DeTcqhCi>(s{Zk+6okTqBd6YCVrm6IzpY#kFK zD}S#Ta!Io~&@rLc(;bTdKq}E5ynwSk{ z^^Fgf^QRdFH`Y~ZmEpe9#o#s7UV=?qr>gh(%~^JLUcnZ(VVJs>r)AEqi(XY^v+|AP z-kgLAa|j}70rau0su?g#Fb`DP-g$wlU4H?KZS8Sj`3Ra#D7a&)r3t@rJ>s(`Rf7BS0<6(WN|RfL)cdkB)y}D zbZr~wF0Q7V9T3?x7EyMBz8+~ILmJ$Y|KOClJPtq)rmOhJZzrlW4PbGRg_IGK8bqrz z9){{mf>+1PtIQZzx6HDoBAmh@f*+9`wl$epr5O2-uHh4qMXzUB>8Q@yu751)2#C17 zju72aRL$2HP7SIY=ok=$xK=EGg<@`}JXq$*rz1q7c5FHktjDivNT)D5-68c|9t4wD zvK}TLyKf~OzNP!r?slrsE99PTk?lHz!7%;- z_k-y~4-Im;uV}vhx3?BeQ0_DS$cPynK#wrx>VGa)J0)rES z(=nP&%Hc|N7tw^%eW%DQyj92ql;Mbr1eT2saO7c80IgL z{tUo_uUKfw3J>!!U1vO!P)g5`B`kcvW7SrA&jE%MKx>yzPgZ8)clVY$9yC~&K4Obo z>yp?IjPIuE-<)q2eEp)xKp{Z`+uhZdNS>totIS(wd&a=-dVe07=*U2{8Li!Cz2CDN z={W)Y38?v_s3KdR84kzY8+I0`7@H1#J3!WDL=C~K6Y3~&C$FgR$_*N&H9&yf1L{%c7Yg#7 zaNM7nm6kg*^z)Ei*RlGXyMf~7Oc3nw1aRQ#u=&dhrl2%~F8}~1{j?uvm6)=?1Hq=C zMN7F21_(sCU^RJ0SALXb4K`Q&#rcHl%ifiot9WKjXMZq`0b$^Dw%HwnxgO2CRyJX+ z+@tM7>G&uS)lsV60{vwv(*X2Dw-9b0MjphOV*tRZFRwEFlJzMZYsSC{wl*CfCC3EJ zjWw2VdkFgVYcC8S7qA(b+f5?4G@!I7i|$)bu#60Tq0%XUmXg<+;(;6ld;qp=1t4x4C{f()V#BN=)PKud;69}A9x^>!^!HFA?XXOciIyZcB zGK{xwzuSR)gWx5y*#IB6!dgw>VW*iKL9dS8IJ zKJY|>%&l*ljG6|ln#ENz{^EUej=|9vZAqV2n14j~{Kx=YSLG3FA6oFXP3l%L1;BZQ zY%?!j#sp_T^usMnkhJ=${juY+1*096Hv84~t^^|_n$oij9?p;dpl_W~iB?f29@;2P zs%P|DQB#a$-50azc`XrU_4?X9HKS;pyhICO-+QTEj01F2K@y)!4*pv3w zAAjk!*7}>$2bU+P%DiA>mr9zXbNwgPNxEw#&8~XlynQ>!3}`D0K_`g~XjnzW6Dz@s z5qeXgI{~JztzO`V{WQE~q+xwEA+>=Ej>gcc%voEK#6(~yRcO4FOG&hBK18N0@m488 za%RuuNUJtx;e?hs<6%wBuk*6IbUW&>3Lz+0y1<@g*V)K|ehr-KPq`^lC&|-M|T%WSG zdfTP$&N_}a15HV3-0}&8KG^k;zmLL$c|hmfL|Tz5WqgDOE@X0`xZ8_i`MMW=D}VGR zx`?HgDWQ;H@jJ5NYY@B`_Vb7WS_8hFQyB>ZjS&f=!)A_z<6HsJ>TIoHSRn5v+zNv} z6TmWq#$2rxe(dO6H~mAQ!MXbq#YI0pvF(7OTXw0VHFyoYe;GEm@yf!R#ea!Y$MJqB z%)HAD*ln@1rlKf?&3w56;7r=e?|%X)6k~3(Np2DVyj6Q$i^bjUm-*o_#7aeADhCzI z>Y(7eqNy)K+T#<<~w$lPXP$-g_Bgp*D`K->~sONe*O zxb%6Y-TsIbT8;WhOo<+>bgIUd?2MuHMQL#m)8REUr*X$ili|$(XkC`SRexKruO-FT zO6ip^P-*Cy-iNBG4e6x0aq~Xdq4><-@ydLI%|fH2(lFW9(&{1L0(3!rzvq{cfmBxU zm&~($Tdn zZUWS|pUiscpmM{jK-r1I-+yN3sP8r_gF(R$7NadFSHlWImACLfW^srVTZ!azaGMfG zUwWMCLVbfwb&s;Q2%S!52cDu3`U|o$Ub&XcXoARTW1B;0c+s6H!ktC@!F}xqm7RDm z<}Mh8ph9KMMews8hEUnFrb>U1;dwhHvO+cQ91o3EZ2Ybd;}$tH0DrM}*}Mhw?1B8! zS=Td=utaIjA;N4JCJ2nBNkpBQvkn``&1pktj$3xCl}Y}`-0=)#OJh?sSvw}zbnsc^ zEcMZ>8_b(!vX5O$``JSU+B;&A@sPBxvNWr&?kp4~ixs9kP_C|fw`@RZM{u=qSLUC1 zBss>LkY?A)MRIy2sDC_W1z*DpoHO`z#rF%vf`|-89)q#J0J9sa$wJVhKrn8Uo3P-P z0qyi$b`VyPe2|fQKKHh3MQ9y9X0-ewx@|t{Sqg)uEu@Z-%YNjq;7kS&Z-K!}Z?y#i z>dphWf(K(;MO`9*aneLP5KH%*`{7=iocaiGZ{MArJ^cyaXn&l&YYzPYrbeTZO=+A- z4b4b&;yguIC&;aMm=?iZ(n+Wb0Z6xeu`HW)Dj}#d8)JiYJLQ6Q-?qnjlPc}0bM8T_ z9{Yn*X(~_LKHvw7H!gB^nbb22hobVF(AgR3jHs7`J-O0o%6oa-zRq|yAr8wvuUcR5 zqxm(h1O*>P(|;Y6^*9h?q{8Mxbl&PP(g%SoAlK%A2xo0{H-~1rF*v4b2{hP6z-Mb`?_}S&29;x7P*zoi$S5G^(h{@?8K8 z#K6MIi5t}{>Tb)Cf!$3GO}(@6Uua;Ppk?T|B8wH8`v!5?aCmV&l1$j4E%x^R&{l zjV8}8zRCedX!mPZ5wJHOdI#+e7MZ}H0YezLF~WonHf-t={##YjCC1JA(DJz6r=B1y zg$}K?K3=WVYuOn>jAdK1;{fmE7lm;SzsH-qh>2Bx0JO+W=eim7TMnJj$~ZC*+zrKs zb$@_!Hagf~_Y=1-#3)USoQKxQalcZjWgTdZ?mN^JMkFJUAMRpjw|5DpG@nIc^Z4z# zaBYKw(pC<2cHbheI_W6w!fR8`*h}w6@jr^f&Z)-$2P(5%IBgi?M^^!r zWDxf|I*!4x#M+=f#t?O8q9>1i{NkoQ0z);mFbr9kn}BiXZ6C0x@s2>cb{c)dFn?T^ zYy(uT-`5y~(5XW3S|%;scR7316SEzt4mDs@T-e#8NxYfwh<70k;CC)p`0}i>ryjr` zP@ZN7C2x?6m%yvyT7-`eLYK8G{#tt*rkQAYyHG&qjL;9&k3y;~1TV&Tblyc{5Svr1 zdpm_yY*q<_4HnaIo*LoJPKdZcTz`K2+$wKStQC7-k^`%?s@%Wn3GY$sL}`9DkK$Sy zCm0-{p!lxsYy7&E&;}=CWDkXo5)t5*xh7VBq4|8{oBwX-UKh+02I_-dKtacoyCw); ztm`0BQGangnpnVE&nq!F75q7C@|uUnFU_xoJGyV#@b}lOH`-;TKR*=laDQu14J{0{ zyx}~?IxCj-dL_|p53a>3m8~@iOz1jHqyf)VxM7{kGOXs6>sf_3X~~mEDTG6NQOf|Y zw6xSUP8sxCcK#yfkXJU}UJ!4aIj2Tp5J>P7l@$e?B8T$AicKeV6zp0lb#EczGYUUlA50vLU)?V-~X4{-g)Jmb4T{v)= z77%c&K}Y55Ni@gCIM{*P#)4qUu$%Q53x23do$z1Pjga-0o3&09M+!3BFF6I>d zuv6rNC`6A~Dzex(vhhl?m1a4sm&p`&|3Z59Uh@mjtK@cLvWia670fu8;nr4c66_J9 zUrG*&>OmHVDQx$b-qtm%!T0=GPZ;y4E6Bh_ta?ZYfp-byCVvMh%82XYEy|Y5gda*< zynHcx8w~)w*A1EiDNV>Bw{SRzCt0WS8*7hGV4%9CJx?Q3dfayK&GDmz!kN^LN+|sr z$@5AZw4vMG>mkzK)@pw?pW_>35jt&A;`6&H@GKT3{HibSzh!l2dzL=w(;~R3PP_%D zSJ#rW4!~*AM1MfEVrSaJ%FWeqt^4fd$?vWP&V`6_DMHeV0;@mcD}V&7^#c?NS36+& zx5N0O)2`#>1)%HE^d#FueJ!!%VUd0%C=9k)e(1bGnjV}Z#XqY zgiCv8$9sBNm{}?_ygAaGK$X6qZsJC)d>DuphV^9n2gb$7rd+*s}$ZokEib(s3J=G*`dBw#L-kL*I{(cy`NtF z7##2mGa$Gr3Myc58fZ5+2X)15AQOB)*ao%G3|r>{JH&%Q`i>3aWib~wVB#*Ip3eDs z2B2te)`!DU(R^sGP8FQM_tZ#pV6~{RF$i&|Eq~nVslwX3?-kLe%HAjY%1mX^}&X=M2&X`&>s( zA$gkRN7=jPhg=D2!K+XR$>9XNM|0Q?GGB*9;fyL00MT*WBT9H5Kgvp39%e5oB^9gu-!{^yIcylFQ80r|7ax8iG}yjMxr?B&cuHQV_in&SxgQTTxFvCue)G>O=)s ztRK4>Zg^n4v<5S9Oh7j+ApSe*gu1rC}t;4x+6Ge<*-+6J?BYWB|C*Iga_X zDPrY~7WFWDqUeNem${Fh$|G=W$D{$28h^1{c59{2V=KfLbXe5cUe;^OD*69)St6TK z9~|HbFW00ANH{cu8Lhl{EM?(T+r@JiGU!a+jv5GpLkc}tllcZS${d^mkg;TOjCPtA z&M~};I{{20E#`_09LuNxv*)H=j3ZhBA2paNG`;{tJd_37x;t@Yej@rfa`2@Q&wsnP zG~^8mJH>ofQ2VMrF=OXHVH_rjt1A|~_o`}NT(H~mC8ekFrOw4dvXe$$rsslmUwG;* zYek_qj021emZzg^c{D%;pjFj_&;Um2>5rDn_0i(Zp^+|;)Cj9j_btRKraz$ai(X6| z>ZT$`l330{wM){zSW_&(rZ;cA4Rs`gH@MaA zBk#k!J9ym@apVy4F4!OU)u~JIf=J1MFqgkh8fHAUM%QKRA76?On>`wuZD&< z2<0%8ksb_Qd_XHkvuP)D9Gou}a_6hC0nv_fh6Z3v3y3i1my8C2r ze z)`1mfTB=g0OrjqNASIa6D?r9RpyrZ*C|YFJTGqTKL-K7tw~#KvB!AYh&L;@tCcV8L z#7)>2HY{g=%nuvbzFbQ@KEP2cZ;#4qT%o=`Uh{l zUt489+)49f&pe=_RAr`lDzU}U#F&}`Y6LGO^Pt(jdc9b6O0ya`PA}PLn__Pg&pVm) zi-V&Hp`dN%0>6*@VE zsY03j2pZ+}dw&BqG4v>5x6420S*!G6%bZFC!@{@?lMF9Ah_@D@N-$iQn^)%BWNv`# zK4_7W!T5B*1Z?7U~nJg-^zHCho3Bh_Z1{zcnJV8C_?}c__!yNR(SOc z4P+XX8d>~?#(%-gd88h44g+N0DH--Lp~uK7 zifLDK8j8j2m05l?*eyk(P0)9K1r!B24RfoF{2yyVT=q_w^onDNV~ zWRuTeJlqdFNLKNA^U$t*qwwA(@@NzB=a%aP?Ovw589$@Uz8upOT`(8r*tp3SOv+f3 zUTYvpKYuDO=Z?vp%xCZjaD|LWtSKD0c?Usjk}2~5|122}lV12(*SR2=*?m58?7A?j z1;H;^4#kq8fSOXvTuxT<(He#0GNN(sI`e9hiVBgHiQ;40+d%_ZLMa?);JEunpZz>-sMGXgHqtaU10&Iry zeO5ZB^xpTiq8(M)74yTq`Q2fJjU;sJ2Y>iTLOfgWU{bZWZ?q0&5~Cs*W$DL{D?b6m z1ITSbQ}Wox)kj@+3}s3v=*RXEQdrhgMnHyS?Njr(aIYDVfW{4X=8rNUvmw@*r+<$! zMH;UuG9+a-UMFOY^=v8P-KLg7E3Q}bYtSVtM5ghe2M2N+Bd^Hy!nl?dJXMaP)*y5+ zo(bl$m+ei?AbB+L&BA-)My;UZ&FTBx+hJppiy}tBO~9;8K8KF`ke_6)x@2VSMhnjyC7nBX1z|ntuQ`UCvGjNp|jMQVn*6e~zN~%}F)2gVS9D@dm?= zMsi;t1-!YVHccNCBWW55TMA30Q54;)M0SpDG6v$kq+3>S6JSHQZzD=* zH0_P1WChF+P)TZuPD0EeA!hR-FF?yNp_=xGgs4hyC!~!oApfh<6HpevcpxOza)yl4O2F> z23BZ-x_=x5mN2}6u3VG-Sb)>pw9~s#w}12L3TOOA7s%cdbC#qzL&krB7;F1}8m-qVzNAGTvA7N)Bj^3oDa`#P|?y+Bd6TI!{%g2I$_ zJVwyxj&gG{ykLWxoXPOkjpu?C?Vh3nmAH^XOn=!#!RK;EvL z80pCJwvJ0;Y6cw;L_T%_l<#YF+xl3QD+x;iZ7Y*yEl~-31n-CjGu=ulG(w|sxPXRJ z_&qN0!xwM@@$0a22Tb;UPD@zwf}Qyh5j=2Xv6V#B*1ClPGjAQF4aG-z)Sc&g!zBPZ z-hXDR$MZE+QEylwVT0ZdF=|)D?k{?D)DhhuC{#c+#7W@FTu!`w$7{1=4Ak&FYgc*{ z^wYosa`C+lpURyiRkyG^nQB2y>y6%_aHhQ%-f1U|fzgI$0DE*W|CbmAFhj9-u*9B& z;I^gsX=4`J0DW=q@F1W{cChDg?q;y@8h?@RR<#%7MpdD7WMsNn(j(Ed^P@E6F`N^K z)*2B%G^_^9yU*J^&YHq&DBq&+S-R_V-o@OXm!l}xTc^_KZy#F}YO#eZL?|lxaiEJ; zTN8lCz)93eiuuXHyWc%GRU{zlg}xFaVo@i5jJY0VSv>Da%O~!%+-F&IEZ%U<$HHw26$|x9;D2He^p74wbn8NAXw~{brJealcb0);U^AdA`B7)a z=TZS|@6O<$H=$KEc=rx;oa2MbvUrJ?S~+8pHnG>oJWyXMNJM{8OW*xMJ^pnNl|OX? zQ}1x6#h`qQWP`DTJlpShf>xq5ejctlqAj2&$JQxGEa<=(O8c8L0y{!)3REb>d-U2{?U z?mgs*`5?H04w^hrXlNPhWZiLalPOCnTGs&S-pO{^1}*VsV;6}S*05~t0xR!ynj4p| zo8}pzGI>+fTO21QMWM;5Uw__OlwC(j_yJ!r4ds+77(3i-jLJ%8!2jywEqXYICSc+e zcG;=FzI+rWkLU}$VTKqgwCo`SNSnM#+U2w3I0v<5)tJ5+M)FXz=s8~?aR=rSE6jWN zXmsz*WVE2qLn#!m)j%zBMRuvH(b&UDytuY)GCxSP@Vj!%5Om8y&3~QUR1hF%1a6q5 zO%~g#>uXg!Z|B2FI62+**H$rnR6O`Le%^7JEY|~)0l?po3LMVZ1j}nJ!$w9IglMNu zat?R*$MycbIaHP=_~x@jiq6J(74@@Ji=zQAfhWh+Hm`uZxq{g5PzU zhK|RkZ1as|*cbgm27i!oIrR%3Z^KNFofPI|HT5)hBg%=H+G;6Wt z=^o;PHIOr8DkN;rI;;Tb3_?JDw+vP8?3Ay@H6bZ7Rq5#-Xvq}#vk^XcgXnYRL^PBH zzGrnSAbX)(F@OBP)5qy{2V;o)`U$#R1U(E~G-Y3{jq4sMa|UADy`Hu}MdJxVp3yw^ zJq*6hv$}5TMRoJm?79sNn)l{XTglf{8-<_vgxSdIuTu!;;V=c8f6FK zqHW^tMk>*Q*0~ZFS>c@@bl{t2TRT<>a64P-sgAdpu-|GR*CdzXPq1M&ZhOI5-#)^a z6|>h(R*m(Quc_!$ZtD+K(9O{+u^WPO5Hz^C0B=B$zm@`sUunYlq9nKrk10SqizXc` zm)Z_LYO_n1X6t`$4O!CKwbB!2+17-tg8(_1r?sImjK4zJsMTb&+^@6h9QTa|f6bk- zM%si=<=EPIboM&AU1VXX!83%`_86?g?FJ9VkPwwUJz<#4m5FNHGi*d)WObrc7^hLC?4t_I&p>jWB7!4h|-35%IT z>BhjQaj35S7M?sU_dXC8oaAe+N=qsJnATwx>yN?AUVC^6Dm+0x82CzS8JQxwpHRtj z30F_>e*+LGgI|Qx#xgI)^jM(c3BnDXBt~e**?#8e7qLy#eCSzDz%B|}`A+H0Tuuh5 z+v|nD*rtE+87J;|x9-3Rp7eoh z_hCtYluH$YvoK6(Bs2JDX&TZtU^=!#87jKf*#v)phJzSQA0ayT>*~6#6iT$(*nK{( zrG#QWc+1_}V29OCuWC9y)Jz1hypVjUAkSOPVGnJ@fxbcbV{m5T$xWd;_3Fk8Z_)%0 znTE7a`7!W+VQ`eVZI9Ne&c$Lf!euP_oDC*VCLdtR_RcgGA6rOg6*DFzP4tLc#*Q`c zl0$!2E^~V+mkH@dc%UH%1+$bFw|7VPMG3b90hxT&cm7@gSB$JS%nA;JN?D&MCu^=2 z`Fq)Vd=fmoE{Z7LWQWFO#bR}Jl><4U)AC}03Ph5F+uA-hl5iZ43i|x9x03g2M>yJo znJOxIrxY=Hb^6V@=L2%ODniOD!aAUIU+{nTW?Gw3e&zSG{V7p(AM5lrLwjpRPQ9{X-&9q1bijtHckEa1G|vn(qe){Y| zQxWK(iI}AI4U$(4{Z@b<(An5D-$Riu#)estr>5B`)FE6r#!-p4f_gKw<-mBR2Em#kibkh# znJ1w-*6a&m-xZ+0$Z3d?hElc(hPKr}h!H!+=S{x8^-aVLW^P$+pnc2DeV~5~x7?I( zeC3S_;%ka_`BQB-W6U*q9ikyXFZxNbmGY*$)kXmqn`ROgN#|pbZq< zCGTyv=d7BasjY$Qb0N4IS{~e?wpMKF6&+s^Y9r(!p3->dr zHCU1NFyT5lMIJ#L1`xy^*aU(DdUH#gX^*%(f?yjf80%N(|MuVhyKnx*=U;yMbkF~B zKgXx zn$fDFvpXk_pVHS#w&Xdhw1G^B6YAq`37D%l5vHIL`=@XI+4txE_{+avpZ~x_Y)ei7 z9or0j!J1@~*F<>}zXds96TM!NoaJ#lYFtv7rb*e}_)cjT*^qx)fxti)_cuo$K_nWH z8?*iaNIB+BejKC3==RO;KF3c#-}24h{kZ;kzxiK&{`Av7-1z0&|9to7?|-@9{QddM zpYPXy@z?$Xe)GFe>&M^UZ~mwM{L`oZ`1$7*_uqZ@fBr7Jdb>-~R=bmrUA&q4?(eQ$ zQ*Cni2cEomb!dm`T7!km+1mLo)%TJM4EpZPgDreR-hv}K(bJ&hTsNXI zf!Ni*_+&xrFXJC|kM2kMn5+HfmI`=_Trukrnm}b*OK2CW0WNKW+{>m&&&_-W+!&Y3r_+XJktpl>U8e4~R z@&u}w77BkcPhK+^FrkdT>qy^(jP*-u(q=zKuLA@qNO;SYTxpv@xvac+hO0CG-n>J6uH z{tC1t&eN={*hbRIU9FoymVOf3+n2v#>WT{!7VFU2iC|Zq1xXplt9d9mb5?s+gNW_f z3zp|O8PDv_u;kQK#DbM?9Kg~bC`?7zz~6(3o68Ljngw?BJQ%*+@A~5D{Len!6~BCY ze)@moZ+x_0`%m|m=W_mfWqwzG{rS%OE~Fq`Y;34|qM$67d?kkLt2iU)sI>ItRMSJH zhlZjETm06!id{PmoC%%O!8&|b&=Qlu2mf1dAeif5u?O(XA&|e<`SOjs;gPqPuoOop zOa?}&xt0qv8jV`4gGW>XY(rN6ZMR{Ur{8~Ch#6OH)dz^-HO_VXXEuhtDkR8sQlQ@b z60M|mTVkWCI`dim;xqkSex|?id4BCb+u!^=3G8x>6;JZV4pN(t!JU~jbIhK@nO<0= zhy^K+)mX%n@~82*CCK$lJ-6-wwy(T0_KjJO+y|dyo-Celyx8x-)c{0O)W7_V&RTyR zqE4B(rTS|ICVCK}t~hh1(Sd4q*&C5YP`X5b;ka

`r6{?KbyE6?z~r9uzOT!s&0R za@aI3ph%antd^0!ALYvv)c^d$Pd|OW-`*ep)A#Qmf8%5Q+JC*je#y#r^6RI%v3?w7 zIX-p}V}Q3Bb{m~$>Zi0QZ$JQi{$78(JpTzIIDtFhoINf*%SB<3%?B%gZ>JZ+0wNVp zPZ>w06WaFzF-`iC5FhW0Pt`ZRH+Z;>$;d{&eePU|dt-ePA1Lch(;JEtA>e7oAY()O z=3{-NuU>a@Q&$E*$mQj*VGF~zqPw5>8h{ZcN@=v2o4(e+eDZ#dKiu=DAMSsr-}p$s z_Mh&rf2rlW+PvvIKq}tWjDWK3}449^`U;X zeEFIF!{={*`RPC2A3y)bXZp4ObbtO#|J6U8h5zk;{jdM_KlHzxis|qYnh03_#$0%* zgBvPSy@1pxl3l|wcMx*qC?1%YoZGWv`s;#yk4lrKeTvXjjVNJWHfd2&yl632KU!%BQqES`iooPZC~S3N#IMond}E@u za7?n4=P5{>-aB=P3LfPIjFq6N%BI6qYt!|YQ*r$9#UJ0VpYgx`znzLd-}Nc}@a+#j z#rom5e#Kw;@A>6}`Okl!GlFWunKNOhY$?~o-kw#2jppnbZf~xQ7+LAt?ssns{wvFSP$2tL4HJQW7D+OF5Vj;$F}!0qgxo?-<&I$hmz0eHbMQX3eR)(qWug#f(F0cBHw>cgEi#f& z3hDIME-M_Y(8~?fR+Gx+syYK`a3FmZvg1S8|9?d*Mqu#x9+Vj$PNIfCc<;42?Gp0l zHQfI8XZ^qa`Lq7%$6xrc&rk7NpYzxLd;ZOd25s~{Pk$FS64EWnmjjkIx=V$#>R5;nX+(!lEoqs;{`i6}ee$fFwlABokdgL>dSZ7?Egi0cGcZ z)HPyTG9VfHPw6_->wf#Pzx_G?{m-B7=ljdI@x%K3`TO{-iN;s{Q~s@wc+Cpae$S?F zd7%ez^a-|JVUfWj)R}H;lcRFc@+X-qy zNWVb;h2DHaBznr>%Wk#69axW(ST^4v4W8_XmJu>rd-X4`=RcnR^6fu-{{OoCet+%1 z-rxFEr?U4LIC7S)$xhtX!xq=@k0N|XYr~m^tRx`x8}*&XLNel!IekSPlKDyaNtBLi zS;JYnwk>zd*-#wK>6y3U^Yj`RS>wwe?m8L%6;>Zp(nE4)1=G{mhyh_H1gv*f#R|2? z8*Oy88ITKFYh?kYD+dgubUgtg3x9*zCZ{tdQTw%Co6>I&WLiDbKngj{zc^9<8vw>X zeEaLO`SUOT_`^Nl#!r9z`KKT6kH7gM{@Q=fzy6%-Up{B+3nN6Y`UqJyB!i6!=0SGE zic+H`uVd6L*v$Jb+s?rJd^;`|1IXt-P&V7-GVn-rEEfJ!UZ*JndkpvL$XY?3u^)URnyWF=<2nEKE zwlaRIGb*q+cn=i=0XFrQrkoR7=9hEG|1th>@2Bs7`i&3tYyaW?{DJ=cKMj~a#drR3 zx?+vp#`Ru?pLbWY>LqokbAL0rYe?YBw&KGGClh-;TjPSp@Lf|8p{u}&#hfx^%;zl; zuD~$Q+t()ib2@SsF?WF^wWpTi`sIkjAib_bJc!1YY$xpKC(YT0;&2QA9d{(0d5bqH z5b7e--KC=vAUV9*1|3;}Q+8F5f{gZj(-laP@|Lx?IfUuT@x6~Xn?c4hC=Vg`Cpqo%){ z#)S8$plS4|pYeM1J#Bd@^xVCTt=NftT=K<^te}iCVl?@GT!MiLTs_<`WZ&Lqs?s@C zyb8Z~(pBkFiGC1wPk%w?jWnvW=Wb_%`-ZB4>vRw zt6Pljh{IPueocWlokLe*GBkj^OTdlB$}KQDVB~>9A>F(Ioqz38NrKJ-d2hZGUrv@! zqoIq7=d^qmmbF*!H%Y5!V*){axfvsNcN#QP-Wa|gQQB1+m?WaS$P*LZFJKPuJgw9C zDo`TZM+;S!0Juy@UYuEb`{L95S3iIH{_`Kd{n!D0x<8)#={LubU;D54^6}-_X%dpdwEP%9l(QgajyPdU=U4&)sL<#Fbj~V|ycgva zejHFxCXwWQgl43vZW-WntetJ;#p+gjc?lV5$&x0uaet+GKO%R0@#+4H|3Am2ul*yK8yYu~l}XjwBkfYsES!z+FA=7rnsrp_*kdZ!qo2YSttWzY?IwCJ3(tOCD?%;tl# z50_63aK%d0?0p-8^~2PAE0Dx^wXzS}h)citXiH+;eW0L^_hwF%uy8}4I&i!2)EX4b zMjCw_0)Hpo_!`s<>n^X2ecEAJwvyO7$Zt%hlpT2KyatYag}S4#M)#>SSj7K4X#VDR zzx?CR_s@5o|Nf8Xzx-C5<}3f{{?-YYjb)#Onnl#D3LFNYuI|$VTBKv#WtrIVitl|x zv3;aT+x{=^-lfTsBT2Jc^h{Mvzu42=6bd;DQh&Hlh`mj1LH-vtHB}(H^MT0>^kaVg z$nnU;5I62E3RhP^DXATRj5G^(H&gxe9F8Qup^IGOuCvZfq#sIhPmp%dJtIFpNiqn* z+Iv5chrPH&F}Xb~F+IYE5Zxe(Z-f&S?VOne#|q#e ze1Gl+^t@(Q+l)#1ec9d0+BM*OWdk8lfjCEEXw2;Hmj3a2BmdLg3geTP@1}eELmA)S z!nIYM>vX$1$V6rV{-eRr!tgQ~`ADN<4CMDO9KeYl!1g%>lV$*^TX8#D$U&k^vAt|{ zM>y}ph5|CC_)VL6PmplLyh8N0E^$sPvwuo&+iSJ~wv);Hyph!+4DO>bDMMYSW+