From d7eed87027939a5f9348a47b6c848866ec1a7dc8 Mon Sep 17 00:00:00 2001 From: Cveinnt <30604389+Cveinnt@users.noreply.github.com> Date: Thu, 12 May 2022 20:27:25 +0800 Subject: [PATCH] first commit --- .eslintrc.js | 9 + .gitignore | 35 + .husky/pre-commit | 4 + .prettierignore | 33 + .prettierrc.json | 7 + LICENSE | 21 + README.md | 117 ++ config.json | 39 + demo/cveinnt.png | Bin 0 -> 360844 bytes demo/demo.png | Bin 0 -> 317990 bytes demo/dracula.png | Bin 0 -> 341827 bytes demo/gruvbox.png | Bin 0 -> 343029 bytes demo/mocha.png | Bin 0 -> 341476 bytes demo/monokai.png | Bin 0 -> 340368 bytes demo/nord.png | Bin 0 -> 343092 bytes demo/paraiso.png | Bin 0 -> 340497 bytes demo/solarized.png | Bin 0 -> 337491 bytes demo/themes.png | Bin 0 -> 221624 bytes next-env.d.ts | 5 + next.config.js | 1 + package.json | 42 + postcss.config.js | 6 + public/android-icon-144x144.png | Bin 0 -> 16686 bytes public/android-icon-192x192.png | Bin 0 -> 21713 bytes public/android-icon-36x36.png | Bin 0 -> 2852 bytes public/android-icon-48x48.png | Bin 0 -> 4179 bytes public/android-icon-72x72.png | Bin 0 -> 6990 bytes public/android-icon-96x96.png | Bin 0 -> 10094 bytes public/apple-icon-114x114.png | Bin 0 -> 12350 bytes public/apple-icon-120x120.png | Bin 0 -> 13075 bytes public/apple-icon-144x144.png | Bin 0 -> 16686 bytes public/apple-icon-152x152.png | Bin 0 -> 17737 bytes public/apple-icon-180x180.png | Bin 0 -> 22751 bytes public/apple-icon-57x57.png | Bin 0 -> 5089 bytes public/apple-icon-60x60.png | Bin 0 -> 5532 bytes public/apple-icon-72x72.png | Bin 0 -> 6990 bytes public/apple-icon-76x76.png | Bin 0 -> 7476 bytes public/apple-icon-precomposed.png | Bin 0 -> 22234 bytes public/apple-icon.png | Bin 0 -> 22234 bytes public/assets/fonts/CascadiaCode.ttf | Bin 0 -> 648736 bytes public/assets/fonts/Hack-NF.ttf | Bin 0 -> 1232952 bytes public/assets/fonts/Hack-Regular.ttf | Bin 0 -> 309408 bytes public/browserconfig.xml | 2 + public/favicon-16x16.png | Bin 0 -> 1611 bytes public/favicon-32x32.png | Bin 0 -> 2545 bytes public/favicon-96x96.png | Bin 0 -> 10094 bytes public/favicon.ico | Bin 0 -> 1150 bytes public/manifest.json | 49 + public/ms-icon-144x144.png | Bin 0 -> 16686 bytes public/ms-icon-150x150.png | Bin 0 -> 17699 bytes public/ms-icon-310x310.png | Bin 0 -> 51954 bytes public/ms-icon-70x70.png | Bin 0 -> 6620 bytes public/robots.txt | 3 + src/components/Ps1.tsx | 19 + src/components/history/History.tsx | 31 + src/components/history/hook.ts | 27 + src/components/history/interface.ts | 6 + src/components/input.tsx | 106 ++ src/pages/404.tsx | 14 + src/pages/_app.tsx | 35 + src/pages/index.tsx | 64 + src/styles/global.css | 41 + src/utils/api.ts | 30 + src/utils/bin/api_commands.ts | 36 + src/utils/bin/commands.ts | 136 ++ src/utils/bin/index.ts | 3 + src/utils/bin/sumfetch.ts | 46 + src/utils/commandExists.ts | 6 + src/utils/shell.ts | 27 + src/utils/tabCompletion.ts | 14 + tailwind.config.js | 21 + themes.json | 162 ++ tsconfig.json | 20 + vercel.json | 5 + yarn.lock | 2107 ++++++++++++++++++++++++++ 75 files changed, 3329 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100755 .husky/pre-commit create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 config.json create mode 100644 demo/cveinnt.png create mode 100644 demo/demo.png create mode 100644 demo/dracula.png create mode 100644 demo/gruvbox.png create mode 100644 demo/mocha.png create mode 100644 demo/monokai.png create mode 100644 demo/nord.png create mode 100644 demo/paraiso.png create mode 100644 demo/solarized.png create mode 100644 demo/themes.png create mode 100644 next-env.d.ts create mode 100644 next.config.js create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/android-icon-144x144.png create mode 100644 public/android-icon-192x192.png create mode 100644 public/android-icon-36x36.png create mode 100644 public/android-icon-48x48.png create mode 100644 public/android-icon-72x72.png create mode 100644 public/android-icon-96x96.png create mode 100644 public/apple-icon-114x114.png create mode 100644 public/apple-icon-120x120.png create mode 100644 public/apple-icon-144x144.png create mode 100644 public/apple-icon-152x152.png create mode 100644 public/apple-icon-180x180.png create mode 100644 public/apple-icon-57x57.png create mode 100644 public/apple-icon-60x60.png create mode 100644 public/apple-icon-72x72.png create mode 100644 public/apple-icon-76x76.png create mode 100644 public/apple-icon-precomposed.png create mode 100644 public/apple-icon.png create mode 100644 public/assets/fonts/CascadiaCode.ttf create mode 100644 public/assets/fonts/Hack-NF.ttf create mode 100644 public/assets/fonts/Hack-Regular.ttf create mode 100644 public/browserconfig.xml create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon-96x96.png create mode 100644 public/favicon.ico create mode 100644 public/manifest.json create mode 100644 public/ms-icon-144x144.png create mode 100644 public/ms-icon-150x150.png create mode 100644 public/ms-icon-310x310.png create mode 100644 public/ms-icon-70x70.png create mode 100644 public/robots.txt create mode 100644 src/components/Ps1.tsx create mode 100644 src/components/history/History.tsx create mode 100644 src/components/history/hook.ts create mode 100644 src/components/history/interface.ts create mode 100644 src/components/input.tsx create mode 100644 src/pages/404.tsx create mode 100644 src/pages/_app.tsx create mode 100644 src/pages/index.tsx create mode 100644 src/styles/global.css create mode 100644 src/utils/api.ts create mode 100644 src/utils/bin/api_commands.ts create mode 100644 src/utils/bin/commands.ts create mode 100644 src/utils/bin/index.ts create mode 100644 src/utils/bin/sumfetch.ts create mode 100644 src/utils/commandExists.ts create mode 100644 src/utils/shell.ts create mode 100644 src/utils/tabCompletion.ts create mode 100644 tailwind.config.js create mode 100644 themes.json create mode 100644 tsconfig.json create mode 100644 vercel.json create mode 100644 yarn.lock diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..cbefbb5 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,9 @@ +module.exports = { + plugins: ['prettier'], + extends: ['next/core-web-vitals'], + rules: { + 'no-console': 'error', + 'prettier/prettier': 'warn', + 'react-hooks/exhaustive-deps': 'off', + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..afe2aad --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo + +.gitattributes \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..9dcd433 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +yarn lint diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..15989c8 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,33 @@ +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..2b77d30 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "bracketSpacing": true, + "tabWidth": 2 +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a7d29e0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Vincent Wu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..96322d4 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# [LiveTerm - Make Terminal styled websites in minutes!](https://cveinnt.com) + +Highly customizable, easy-to-use, and minimal terminal styled website template, written in Next.js. + +# Table of Contents: + +- [LiveTerm - Make Terminal styled websites in minutes!](#liveterm---make-terminal-styled-websites-in-minutes) +- [Table of Contents:](#table-of-contents) + - [Showcase](#showcase) + - [Quick Start](#quick-start) + - [Configuration](#configuration) + - [Basic Configuration](#basic-configuration) + - [Favicons](#favicons) + - [Banner](#banner) + - [Advanced Configuration](#advanced-configuration) + - [Deploy on Vercel](#deploy-on-vercel) + - [Credit](#credit) + +## Showcase + +
+
+Default LiveTerm
+
+
+my personal website
+
+
+different LiveTerm themes
+
zy^W+WgOjc2E3spIlADZIWWM~94Dau0WxZ~ZxZ9v7SUu_}wdxZ^Cxwy|v@V+i11~k+ zQh{tI^Gr-4Qc^rLa0&o8=o4PPi>|ie0#ya0r<$HyLt=dl+jiX2upf44e&frnJLlQ) zqrAIlNaxQU4~3=`mENt2&8aa2_t+3)KYB|MRH$YlkvWm4-l?G?G&t>XW#XsmfAE|p zlh^#L#J$A`yhf#56m^Wp8b|;)VG8|*%Npef>OTIF=~*eTtJ&lymp}f5(e@YGI2*=e zWRX>)U9{H) 4ShN?%$v4$p&du`<2luDG6BbiE*$FhpE zSE-)8{Z&s-HZ(Zz9aJq^!B6Z#Km wELeHZoBSruiC{#>dKBE5g z#tpzPjepI`%Hlkv+KArap^Y#rZfXI5YR7l4)0PMhF)tvU?97n^AW& zo5~*O9d-y$ny>h0SCX+lpykoro5uG~>sP@#fu6$51$ct_o z&W=uFd8!ekE?;*wX4 {}mjlH* zG5j9G$(F2FQWei+w3?W)#w3)EWPoJc3iWGpU`8w~EKu|z J`O+nk!A6;Z2s=c-*3{q+ptI~sfBjm%JVYa7QYiBI z-z?2Px>OF|d#>*GdxhC;xaZ9jO=OM~gpzl{5l`mPkXY!Cxa;n27bLbh&S>v%v!+m* z{$yhejYLqB<=D@xbp{8@Zy>e!(&6ff;aWop2Gq!tjky_^$pXD~T3_6EzIR)_aGag% z#6J;tECw(;WTSk~5XDUw2JpxCAUkM&*!J)Mtr{CFdL&S4MS|CCMRv6Yq;bfuwvzM< z*Kh6T3Ngw _Z1@L7dQ-D?D&F}>#+K1u(pU(=F(#S0d zH}Undti7) uS0{xn&<>^BblF^!DFYPPiOp$nlJ(uH&4z$X|kHnwBEP*j&orf9>5 z3)Bj1#k&QHxLrp1VH^SAKX$f;Ul$OxMv#Z23}kzZ?g7{w@9bG_4loZHHA8~#`9k0^)shDRTy1n4ZFE1}& ze=?FhEqiG;(+Cbwb-gj3Eb%TkpOQBn&wY!>Y8kcLbSnVtqRpxPDVdKSF$(EZl9Oq; zoOWzaHt!I>WW2ls7Z6m{akfrJuFe6TQ~bmEtK*4 j1-a!OmbTgc<0(@L`m%kG{Y zM!j`>pe6N8MC9ts>ViwMw!Z$4^Nxf~I;q-XP$6dD>y3>!Wk3bMNJd0651?UrdCJgN z@??sO-O$F-=80@*6@ZABud&TApRE@6xG?cc{0?JBQq46uT -%lGVNL%u%I zsyiHDYGU`W1b=8f=5W^fa?hBPcoY$+|42FLO}Lni>7fg`nTc%gT7-OFh>eO;uK?Kz zQ-N02e#l>Bt8n~KF`3w@mq+8zPc-b*IOJ}zd?Rs)mW4XQIq|s|fj|N}?@%Ow>Gl3< z>q5m{`}r!y(G&7fTQr(5*K5zlg=$Gz=xJzgy1aIOR}b|u$B*pnwZyg?@a4fa)i(mC zd6zmsv)_Ky&?vAw7b9{}VJzI+y>QrENw}F%^ x*EF(VdiZ`lplp|v?~46CMq*FNOwAf@um&^0-v9bNtFw*amv9~BX;J8ITJ#fSzX z9;5$Bl!h|EJb1-qxc7za3O+55==VgOW;x`8UJ?>ordr0NdR)ZMI-E9u cn0HhWwB4Y2N83j)yJ9TYWJ$I~=ad)q$R qfq3hQXdiRbq4f +?xN|1jFP8P Cpn>-T+pMA??w`hsG&d`u^SPRJm3OH929p@v7(yn;dMs?MrAofn zY%)B@ie_pYhNd-}BsQfs@;L(^47Cd?iUf=-T=^U^G$v*Mhp~XrbL&%nm#!th`zDBr z+QWWs%zS&AukZEEP5M-6y<$|87~R6Mfj)LI{YC;ylR6RsI3J-996VxQ1VsL%Dtk2o zFT75kmJB3vX^V!uR^2P$`28N^=iBv@ZM!CLCR--dy)$&%@^rP=ALiB>YbQ}Adoo1X zNaoTnS2Mm{g&yO!)7ZOd&$8}1ZIaU+(Z2Ap$*d?ENSDTY>^5>uKjE)39UI=PsXc5Z zoCCn -eSXr1m$u@L%QBkKdtmcNyXV3bSPZ9$=2FE^y zT_>rWW0U%lxoWi?NBbRlvVFu+ZARG4jdg5G@%os;0B_y585_4u;CxM)b&I>nP?>{P z;53-haYC0yy~>hoxA8JYnfyBPDK23u1NbL5! = zce-!&T~Hzofb=o0`+IxDLmuZ^HEn}j7Fz-e`a1YL-i$1KF@Dj~8;bq%$YJXo4VzQb zLG#hzGyv1u-l`HBt>Lmo! vvw|ZSckz?TepgcFrd-*kv21%V zmFj^vK%Y~84^%XJa}Z|{-f{J%2XCX30fm3s48ir`BiBwUWo(|L_49cS-kRo==;&yI zNi^pWttu^^^NH1lccr!lu&%bS=XT=_h3htjDA)U9L|rlci46|>myN)Y7o5U1bGB;* z{KGY9taKu4H-JATF-jhrR^%PGGM0YLH;#I_=Ks}cXO;}G|KEZ04hdcm|F0DpWkz`P zi=0Liqj@7q$9IR<@)X{4q-zma?bN#* nkI4uAc _ecml0CyWgsav3#my1jWfRicxr7#PZmmFQrkrk22cCbtt{|A|ld z7^mq& cYl9_NT27cHe@9O&8D7EVx$G)u5B=+}_ljhK#ougx=`&Bpoc`I&a z4c6zTdDlj@IrV(AFg&hl`w0%2WL8bUt*3#dxP@wr6c=+8>0G1>?XZpg((E+2XBGhk z%lk*Bj#hH9;U^EZeF)R>%8EX4I7=kV#Lu{{q7wBPP=IVV{}Xrf>}q=A!;U R;}M rL>BR!;m+SpjFUp4ff`5-lU{(47v$b7wWpS?O7 #e&P)45ijD4f4)1GTo2UinnH ic zNIMObQ5e1h;MuMHwQJ4ek9PT*r#x=2yEEWdM1mVxmB3U=Ki|#OIz$8b`Z!+9_l+?3 zOT%V|30HLfDw9aOxN(gAnce!$5T1?eukW4nxtKrB)kr#F7L8e;LsMKj-W)6iFiBg3 zsHAXSm5kr`v7qB?-yL_j+;#E1;osfNr^AWct4x{6k=+&av~k@kC12s8ngljX`_A3D zRS!^!vU-jT!Isc__bUKg_jQ{0be74`)712*104|uIH)W`=F_K7Yf<3KlinJO8FApK z@Kg#1)9It@83V}`Urf^k@N?cXuUYVEgQ4b^ekku{x#|Sbh2&||tz9sL$Kv9t0{rD> zF?Iq5 q>rqD#vA^n#&&eZNaTk5y0It zx^UO^%ZjDDmASc`rZT)NA31`i-xE~_WXJ9d7}I{YLN@1Sr`jDt$e4Z7veptgjpY@7 zpEMd8Ax8uW+cR7WHQ^!4M*nELwmFycmpt0RCpDnqaUbw47#x-O9ZcX!EeQx(7)L O!lgo9vH2*4P_Z`ZY~cf3te_RaDziY+b=WdaU9n=*FSRJdya>fJ^L~>&O&N z0o76#2g3wqp?89qxW=+GjIe7D!jltG?GG-@pv7Z0UrZ{~0S`SI9OxFP&sge@Fz*Ba z@-Ubh%k(@>puz3Uby80&ZV>_fqQ86WkZCKF`>?=RNgG^I<#Apz*w1*?~p_aOW-nU1;t zsRZ(v6F^GmI0Gu1D$A2kQZ=XX|FQR;VNJG6+o&BC5iAHI#R8%tAPUk6iik*4Y0^bR zKuUzrQxFkU5TYQx1gX+RYA8XZNlWM*A~n tH3v{QD2A|<$k&Ju;wQvx M#JGyLARCC)iY6U8Yq%>mrpK`1L)*deX@_ zP~xNFYMdp4GDx6g7uzE;iYz}y?q#o89)bfb3oP@J;laaKSWg(MGkHK|FK_*%@@7#P zqG8a>8mWX6Q1ooc(21`)T;?+B>(E;f>Z1biE zGl0KxWxuA#cJLt(N-8~l_R`!h3+My1j4L*cmydbo -k~ApN1uG3Ol|;{JRQ+^{p5|s`yufVr7W26zR(K?gm%0qj_pc=SGm5` }qE zcd9)ZE(MX7$Rn=FFOne#cpgy`PW)#R$NwEuL2wOJ(}na8_|Cqkr&BteLKr+vnc9g) zkIvl6OBe+#dNmLQ%)By;rx{nOcfH doJ zS%#P35&t@;<=HHs^&;|-pHN$Zyq0tTVMw~^)WJL;-W`;FTz_Zs$?Ih3+7Ize3(K1w zOy3A^c94)5Y_`Brh$IJ0k-O (!#xUu%6%g&EG&1(5dp$T?tqco&yuy? zFvC+w@JfI(Z@Ad<;};jCdiZjVA*7(3Ul6glYePy(%Ee}*;zMHMlB00}<7==FrvC 4>b3TqrE%7_ QzuVNKb6P )QS?g5FS*ws^|J616UqtM-_rZfOx#Rf&NPP86${Bl(D?p8O z_pyylyMTzOD37;Ye$yg^eUbmg?l^(ey|+)FJ)3d|*k`4Je_pr#tAucgOhU>ia@<+S zfl^&kVv7JEwHfe@?X*H{339 x4orK zV-xp&5t2=)9=25CsBV8>pJY5h?0H_QY@BV-oO8X}b@Dc@&S|@i^NkB%fHCd1Bu3#} z-hyoj02a54Y*n>yac{mP8mi#{227gglKw5AKZ0?$(v*o15X%aQELymA`!>L(tkCls zEnPyd_OWhrU))%9e#CJf4-|msZ^6mp0YC{D4PA%=qp*=Dc>R-U!Tv$Xg!V+zNS4uR zNnI{h*NET$-eJ&!j{SfS010CmK%?ZT9mCsrA3o{S=RUGUlgijiFu+aO!}9jwLtG{3 z+Zh9>@n*yK!SSyt_;Qm?GV-f$??GTToGbbqI)@fA^lQ-n`q0B0&luf%fTZs!w2w__ zW&uP1U}Lx_$}PA&2%NZE!}u4mJI|~v94MuH1rNqL)6HDe6Tc`-Pff*iXB+06cg8BT zE^q;ykPj%t)|gW2T=#iJ_zX6lkZbk4cJo08n>T69_zi;~u*TD>3|+nCuDJWlcCpr< zMc*`xc9>e(qI>f#n$Xo#Q+Zh5M1_*+l_o(MNsF?0N0h#va_^YMS*@=&{x)I3ZS8Lb z77hYb+{osLF)`1L!F2_o)hy-VWEEEcS+~7RD`($hxWhE__WmKpPVQpvd4NZWIsXoq zb2!KPA&0skxEm5NR07fU5*Qvd`7ZWBV>em^HkgbVVKb7GpR_kzEH8f;D{u1*v)NZ* zWhLmd!D?gE115(qTa;e55*n4VotG}M3c%@sWJc!5LDBPA)Ad27r&*d|ER;xq2rDQI z$v0X0FgNX{15B>v`sfs4HpxNNioyUrAQr2%KE@~OGUZg6KP%}&JG0gB-Ny|W5k?D! ztGzzl49LF?15Abh&_OQH+waUnGEIVjim~YCRAl?Lp>l^J2yDJ*E<85Uw)EJsW7E}d zClhTbck6;Up1hiNDhp(<`C@FcZGiV)@;3*7F(1ajP&oBrg`{3%#acT>pv_P`QA8<> zUqDkZsuIm%dv#@7w1}<4y@JrSBj8HLS6qJ~JTb@WydieqftJ-`U^hZvwT5g_&)trp z+hN|dms{z`uSXGmgwKX?cI{iL`Lm;~N_}Q*_{Z5eY~1>d4}wKOsCDzoxtJUGcMct# zdG@9!|Fa{mKuNNwsAxLqhHP{FfysC64w;Eh4UaN)G0dkQwyYW7JJApg2f!=q3wRT- z7GHrHyx<9`>e|qj$xfO4`>8>5MF_?|fNF;7XEO59MwqR~m;)+~e$~WZ 8Dc`5;d^~7+e zla}nv6Qp0khn>BCu*P6@N_YSu)QIw{G>CfGI9$rOxCHckPqfD?;-~;4>m!s{jgLJg zw(VZ-ap8NFo|YbV;+W5ds2t;hr~+u2i-oqz)7tNQu~Pkz#KfJZok|gm{>9zyZ{3u0 zX}8TzX1R-r89wY@e2^R`X|urZkzYG<^ytKN#m;_BfLGjL2VkZ6OL6j2F`0{P;um&z zC@9|Sz+Q7RyQl@+pvK#wzWRLEpV ZO(fGZ76i=8A=$Go*X7YAIt$Q4TCuS~CQ zl*X&)Xbd|~28E{B?9=K7Kj&W%8hRA#sM&4<(8X5)_CYHk2O9|!fEhFAvuV32;kU7D zjYj-ThS8S JeErV` zqb 6+71$rd;Cq<_^k=UD zZ5UwLK_1rA$IM}DOFK)yEDSOXbQvRs{I;404^Kw|RMnBZ$3^?%@F?jUK^%S~2D|!S z6pu=;B|L%O;W+7AGdFn>fuWAk7xQlv=H7eBdIJ dP^o>cv8)s@rx-LXvFcnKDD zIn`*{6O2hZdGh2c87G#$ w6nFn@PZG(f`sW)8YDF_ zSu3}>>8sAPcd#aprgB#rixlw{jDpIUBIicdH!We!ww6G@EtMkv QG<>t1BQW+<^GM{&ghSH?`I!1i6lQyVO4Z~9ufi0fFoy^4-R&3bk&}vt z4=2<-ZosY5PNfFR7-^zlo3^a**4*gPwSp!bszy~Mj!{_M>YT*@%8^Sn Z;wn$u2!a#uvLLR`b2L1sFu^ z{AG{RZ@oR>zhh0K2=v}ttbck4@Kk3Q1!$~?@x6RD@YZOcme>tP8GVjM-Iyz#(|0ya z8KVa|lAZ?cm(9gLdKqWCLIgk`{iw?(j}2!9PK%pLQ|C?q93l~*ZTmdu^iua*k%5bi zG%jVgspsDcKJT3AxAKwy*}p>FTMF!^pk10P1!$Zm6;39aR;Bg%We`ICu7dQPPps5_ zuyG20v~9(RKhL!h7{I_Q*I{KsIj5SoJF`@^Ki8tN?|^E5mcCi3iw>o0VW4u&yi!C| z2+vE|OfSr}Py{piekNV@$X*;{==tk+CX)fcARUPCT0l6{0rg8AR4R;NlNP%zc5){N zZ>GA2mangGvw25T&Mh;@!NBFBF>G6G(UWgGs9(q jE4ByYHhnjiz6l#FJhu@L2@D~w;y{(H4Uoz6 z+dUtb>Nme#nns9cz`ihsY_d!j021fkjMQQ%JWXbUGHMD;)h{4_02513fL^V7h54_^ z4l8_)w#=*|v8wV8;Y0}p0GCCSl&U^wZkG7@WbMeaH!+F*)r75~aeI9MQrf$~v{sMk z^)dy(orXWLl__!9@cF*calt@)$B@!h#Azzt)k9FZb43rtoS_IKG<> 8ls! zGrQSiFHH$fx$yGyY4wUPcSvRfV_u%LHoB4>wfLeLPS6tzBjE^gdeyB|m7* l`Pl60`<00|Cl71y_to16c5w+KBzU=O&E;28%7ZD`MrRk7w^311 ziOQuo5;A> h)m>Z&TcyIPvHqAtIcaqJJPXu(w$VKd2t^Yd|c z#8^g#hRTWEyhS!;W#GZd=di4fE_`cLRNn)SOjP3jcS(H1iY9M{_fWk2*Fa9 HXfw#2ZyV45*E<*lsm2}9DzYBx76as0I^5f-B{f;R z3Q;IEvfR0IcGdS(sA{nYtE0EK_ro@%_b& S=8;Lo2zk@Zx!$xZ~^V>vX5b4){6V zxramD=T7fntd*bgc*ow;(^J2(qPf4KrQjzo>(WD&?fs3^d#BqG=_kKPvu7;%?UIox zX=ZA_DRrGpEiEm5a!i|km#$6MZR$u;*-6twRexwIS9Nx_c!#>8a@}R*ID-MVF|S)a zupI;AI( -z&2)84^3v@z}Fm)kGC zG0&XdQSG-FV8Zode;Ui*=}yZuc(g)hvsnMk|J@V(+mO}V&PqcuA_`vyDJ4eHQ)y`8)L>;JTzzGq=55UPm~YkzKN zY#eQUOO5OFmqcIx59xe0JF$y~C=D-S??m&(7G`-NWOyo|o65Lx(;(> +7PQX4lT~Dtls%7~S2Lk$p?rpLT r1 %t+{!!h3+wK4Fs{1UyzAG%zNQg&h 5aT| z$^CPWEuKAQ9Qh;T836C4(auG=5JQKfyc(vFrA;Y@qaulpy*pnEUb~kq2r7R5xN31Z z3dom*{>+;9+(v&x3fUu(ELV85(fzNqHkJqT_&6clIV9{aueCkP0}^1 _2A(2WtM@6mKePI1;e{Dbf|YVa2qEUN-GbtSl8}gIesQO$3+)H|o^k z{5D&AU6&>fj}y+G6y4tO|8n)0tWJw3Cp>-It?e2oF5whV)D%edT=y>6-2oWD1wOI7 zt=xIYk+;YGOiebrr`wNb4o-Z(E(bOD1{))(3OkfD^GfY=K@tm>6})c#k?VW$ZQwX> zg1BIU^4PJ+>cgu2hvsjr6O;${k^VZx_Ei5_$-j1RqIPgn*<>YoV>QWrT;R`+wP*iF z4S>g{guT7ZOzbb;nY;(^rXs36d;ciH?A$edgzJR_vgrQy&i8-r=mmd(ReFHS<4^J} z;KQmuK;6+g>2&-LrE>Q)z`)ye%i_ GqRN!Ay+MZGP9|bb;=pFZY{>;$- zQQhyf`j6^ |pO*Ws^;_~%wyWiBkNa{*k5fU#()l&h zW91WZinpn|G@2LpCTld`jy?bPT;PBH&A0Az@Askbu;#r|@cCC~j@>CpN7 xmInZbbC3dJ8;p|NWQlGh#v_XYta(;bT6f1 z`mWweR 5?t-M^aiutD2&HXgvp@ zW3?37ZWROnF~`O;0{c}t&$#;kNsaaBGW#$45HUksq+c3LyX~U^0Qs=pI;cN+NOJKm zjW(42*TY(a#?9wtS`?4I5S%_`Py5a7{-3p$&K+~r$GlnLvaOX!e9r~aXU~r~{MrGo zfu>#TDin%+lDy2dmQ+yr)uf6UB;EVg=&=E)e@*%9yBGzucz0)Szhp37$fT5-IKMps z_)DF;r*BcgSC_u%*yi+2_k?N1=wP#|%dvrD{&7>MXcKB?6Ka_{BN6@8`n&uc*pVT9 zyX|aMig1Xh2Yg3Bl`*gpYu8m#{7J*PXx&rmyV!)TC}-%!zTec2SF-LYXxjBZAN9ZG za#|ADwKVp<6KDmG`RlASUlUcgaW>3dm_;J-#Temhxmnr4u9I=8g`ZT6@
T^%PpXoG(* zkCLPJoSU58grsI=efr!=Bqlw?_}Xl3w8Yyi(c0Ci3CGzF9XgIO{%+FUmW5u1h~zf$ zZTF-vRMXk_s~Xb|BUjdeZdd~ur*P(kM2wK3<}_j46b`rGzXH8mwV)&U20!xULVooo zW?b-8QNN2Hi;&{b*V9HbW~}5(Ej${h*QnB7AC^S_oRYIAu6@qR!s=|iv=caGm*{pY z*QD&Cpjp*bBI1$jWh=wD;8pYu{{O`@{MSFJ4*r5gZaXKtv8Rm_Y7o6XvCkpn1Io(q z6@#OQkuO=w89IVI-I>~N)&`|d! P^`{3xQcDVHS{t7-#JMY6<39=_0VEQ?g^Ahkb?87 zciZyAo78mf%(!>F8j2Zwa0= yd`+eu>{fl 10%qYfQdKhB-Ul!UTcZ=Wi|n*p%>7n2aqmE& zVqu!+&SdMZSN5^jl=(7s-{s3J*tAYeca|XZ@3ZupG$)IjI~BZc_mq^@XS_zep=25< z3v~0kw#8)x#kg%9>8va{cU@`u;hM+#yNyMxi$SkJLs}|9L+2~<6m!eo9X#~4$oTds zqoQxdK1oJA&Q3RE42!k*Tg@7%aC5HzMr57pQnEAEmYaGpQ1MvD3Fhs3Xl;F|RKppf zuWj=DmXj~c!O6mOYm^Vf`evV?bf! 21a1o<+lvBF2NqX+XthJ^PdIxi^DCMRX{ko3Ow zdZa{B6uJsiBq>2_Zdp8sM%BOu-^KJ4i&s(KP9<8YnDS4wt84_ Ak!~?-;O|wDc_0@dqw${*5vJ7#~>0#a#QDw(h DeRj!}tcsKuoLvgF?H}Ri^jqNRL|;0Pb)xthW~)>9O0{!A z{|Ev+vVvsYf9|zW2f I{oaB6i1BqQF+oo_eMZ$?zp |%~S`WXiM#`xEdC?v*d$rmk&QP%J`{ELB({^ zMt74$sG23jx~+0~(LUxXX0}AS14@Q6#Vcf;Br1}W9g?I(uv NtZZS@`%=2inwy z;=5M!gXJQE3?lc+hHd|$;imdj&bM~V*2-&CBXg)(PiaYgabVMQk`BIxSpedn4F5@f zE5wZdoR2@Dpeyt+Ny)EYv?c-Sslf($sv8X95j+-gzPM4xONqBk(pQ@1dFJQn$N*Pn zq8zAyeKoCu9$iBnmfMU8nAl6W{9_C2H||%^HiC*bc%fo9-uZz^Pu^~d@okoy_hUGJ zHT$5I9fDGou`z 732$oVAD1lmCYWTGfH>ZL9FM?ekRU|%V?hVHv8gzcXjNJ z^D~H!G+56BcW3NmmW(hCM)>aFI$IBW=(=1qw*`<&n_Z`E1XgMn`fro=?@j1lCL<-2 zk`8!t5>uC9rdP|1g$DURKA)Adu2_tiR1kyG!bxF6cc|U-y#Z#X4f4Y-mGsVyx!$s; zdaoJs@AruN!KTGmf}%l+5I^0c gyN+if zh;UarTMbtZ*hKnC6;1e&qVQ?UWdqNIms+uP#Y0|bQ@*dDC6EfQ&b1&`*|}@TCwihN z? ed#^*pk!KP9G*7B?iMYf!kV(zrEF1U@$r?{yJ|nY zKEblC??)`tX9dT-o;9zQtkgtX$UZR6-)^fJXmefA%?S L7ju=Js ze^^|hc-;fczQfqqumOl-V!j#tq7Dsnwc`Zrn18uw>~K*2#Pd~hQs>8 uToq{&|f9g@uzdYC~`in znJmd-h!1v;;G|>X_r wC= z(TV_}!6kA=tiBENlx2dCq=g1OoV(CtF#E!yVqOM(cA-qUsA#9|<{Gp#5EX$=hm5Y) z>whpBlW@|gUXlsSL{EltDxVY(>zh%jjt|Mn%4Bel;RM0H8_niI^wrZ0MB@6o-r)nF zOtPsLHK6cJmXoqK_FTIikv&O9cxz;M?898DV|!3af7g}um&oes*`ep6bIiPIGDbUn zX^}w_UQ7x?bz{1rbJqs1FO29Hy*|e@e|WD}p5BqwBowDSGLDPwUhPd#tn_{CXxD!j z oDG zD~CPuan$pxqD1FRbgpminERL!x4~5Jws}S_eYa)B-+7b;@6R|hKI H z{@kt8M|2wNf+2sJooi-GYbv?kU{y0e5~Cy~qyU=w7VApM(r8daisKBz^7M9no-~bz zz@Horhbzq;BVEXrO9%=fZFKOwHn^-?*C2|R0*B!7h|-l$qF2Xzhf19pxXR_+hqQ%L zLGbIE&zg$$! {wX3eE+`>K^%(eU{u6q3jhUxd76il+7W`B|M$ zi?dXk83n&_l-zth!uTH0 ;dWa3Z95j9e7$JrgK_oVWN8 zy2A-%JtVYdInTP^L>h5)ifCFS<>E^KsS~nGV$Dk0bu@dYIB&I%oQx$G`>y^9W*nSK zmTU7u_)VNTLH`6lx2WGd$*rHc9K?Aj>t#ZvNl<_dlj!k*fk>-Mw CU#zq8@P(a}b%F_WAE0n w5IKb$duSdgQ;m@{i)%s*zl3>ACZ*k6%|Tf5BXparx;uHmRc?mD>YuKO zbGX&eV~>?49^V2#Sd%eb2vHjg5WAC!^b!$(uM^u{DO6OjNc`%Jg_rqvJ>{HNH?*xB z)(JV_D$#y0#71q45ifb^Ac){{o{fx>y4JM}89ErSFy~{Mg|@znV8q^=hccb-Y{ =tpfB#FXt_5Hgz3+8)DV+qxoydi`my1^?C&ts}kjPch^T8 z%$CpW4F)6nYknoeY_cP)ha=?J0>YSHU2V6X;u$Z?umE?LvT9NhP|zvN%rr$e)Zx)* zWnrf3 M>gNE0TtQ;i>3zrJI$Qb7xpXh68E+3DkO(ssniH*1Eqzkz)gqq3suvk z*MOg3QwaY_ 0X=$_lwt3b(_0BD5kYleADmrRow?$? zK%FrbtMX+&N Rii4N(gHFvqOMMER z9_V$HeR@g3t_j`@(Zi0O;^lqg2*$`tFlG!_LWQhOX+?u`&L+S;mvLyEV$tja(+_0@ zMU}Ir uTar;#}n=J4p(g?ELyLL+NAeJu$9RN%y !wGU1}-Wu zF#2j!Jj(l$?=TrZXmL=Vb8dRB@(TTBcgQ}!(^A80vlA(f0eVqZUXBl>pmeKC$43%8 zh*^8>jv!$K9(BTC#5z@lKQX7@R?kM`(+VaG`y?0UF)jTn(b?<-C{np?%O$O5_n?t% zd5SNkk%BTCQk*mcRjWi5m G0UYu%j^3e+@j!l@)c*PibDUiCXyR(USJ ;;uEk@eW3qL!3v4BTR6?Ki@>{O0Pd$van16^-xUT$l^4>Gzxb@*7lqt7B zbNS$P>L#v5a0X!{a)#I}I<>n6;31y#Dp-C*`wrtKNN)^doNULJ&NMCUb#zLUh5TT^ zeXQ4)HlK|IPP*qwGACa|nJ99q7NFr%&z-12upgBULlOoN5(#bHFr~?N$3mVi*V`KN zB$BW|Wv_{Dk`+BOU;LPS$9c|BcE%;0J3dF_^Met5BBxBI Wb5bGH@^|81|uN-(RmMLodz~VjmN^X_~W6^={F1?NGWmzJ{^u~ILDS= zgj-xBbcwOJUSpW*u}!9&3Eb 3-dU{L?&PjgWNI*Y~ zEVygYZ@%@K2OWLa{mc1H3)WP6bc0w@*_FefCzSV=-5o27CnK(+q+_;5QFtz- ;>Pa0ZbJkWKzTU*tI;7lrqTKT`_kSWYaEx)=T$}CsWjj (q0jYo;2wu*M9%- z5_w7%97;_4?hJ<`1RU5nj*;ORgi}I@vy4Jx=M~BP_Pxp7VKbPYCM&a4MC1Zwj2+i3 z-~}F0dfYHK{~c{)tihKt)@#&X3RcSsB=effmoJYc@q2M*^Hqz&7m=hMWGkt;@5ZO8 z(O9tQjjAuf5JJnkBCOh`VLpW}&eq0veTVXuds~&DdtAPPcWx2`olj@AB{&<}ey$i9 z96W~KniIOZb262H3%#bRqLjhC1%02Wr3F#jGCZonoRCETS-;Z{ONlw0Nw?_JnGc>r zqoc>H?p|u6avZAXC 3y&-?!;sK&k)Tqd%f!^3n{K*c>mm?dqE;>ZrqBZayBJ$ALXV5xr44y191Z6<<*V zk$CD&h=kb@6xzc^sU%(QbS(Tl!)HD>sC=sd_=bub9*f`U>2fX(&)Ph?BVWZ9<;i4) zB{-XvdOqcRy|p+epuozGo8aK%orygourzg(njv1eS(uK_oH2iXn^=B6i%W53HUL7< zvw%Q|-al>}^_6%w#{=d8!38$wtJUFhKD0givfXSrvpy$O7O}G#HsC}2{ee32r{KPQ zksbvSpS@K!1{sX1q8w3|8bV?D5>ex-{*oTEoi@aY;L($4HLe{q^50y9mwr@ZXL5~y z5H)`C9XI!A$*gih3}1P^>jh+}>k8%d7^Ta5Ixw@r%nFK_F{Oc!;+BzHd?at28>ix5 z&8Po@nEx)+Z@kAZNO&mj+ezsSH}+a n-LdI77F#auK zczZSaZhPx6bP^3Rm)iKCte{7R;j6qLGu=^b;~#|=VU(&yIU8MlZTla%tisYuDll5w z2FRG(IAJvP#%mu3M>~}sMcc<_#J7=-tG&sYx_r@ -G%+vL9T-`=fXPsJ5S0CtKnPoF;XWO!~Ght zzEFl$vX`SqkMO5~;&l95WoHN5nKk_q 18KpM&h+b&xhiSS1q>;Ttx`nIkG@t8s(FO6EDVE zJ4V#Jmv^Bjbg?_g(OMRm2J;u^kbf8LZ-2ur@?I~)sOM`Ev*9urXG}^MD7TqGJ1gQo z@tm*}GzPgn^2O@Xe4ktB9k#QpT^tFh^!b9W1m*jroKsnTz3$rQg$kxxl}YH^Dh#*3 zJgKJEI0%K(i@sEl0ptKODsJ+D^Nb*5VB~XFi}6sq%EutC9Jc5mx-N&;) (CG?=hCkmGNe`4je|n8Kdge{L)@HwHb8*4uzBbah$5)0cq(+aE%9_X!AE9&7LcX zs8KGxJad%t`nC)Bpd$mWSG{6*%!g$B)pIH!oP8pnhU{?8Z2<5rEzJD^8CyYCUCzi) zt6!yDhq9d^Y(~s~MRL%|wH^&*- U6=9%H{Tj#nu9J zp^N<^`F`u#+Mt&mcGi1mrSA<44@di4 }IBhvzGq5_?o<%&b~G)1^Kv9A>t#Tm4R-ZJgjn> zj3C~8dl+a#sG&n6L_dD+XJp1>@?pKp?ndjA8u?rp#UkCBb9v;aM66gLjRN9P1})@9 z1Y^B`W%V8^w-lKjyHlRV%+CxmpQ518C|8bA^u$7=?5ECH&zB_FVAsJ&ruMq;68*8)v8R9MTv#^`S#`S^@&KJNCZZ) z6U@CwOyum{Qj?S2#% H1VrQ zGVx|s`~`l4MU(9XDzZ${DU{Iq`nlI VI^K$Fmq(KLdv6++lU%~G-$jvCr zh|2yewm11H8PQYN?f{XRs{C2la&wmz{(YrEWLgUnK@dTc1q2o^98%n<7S|&0#Lf&} zOUbZqIzz7|kw}E4y$f0d1>#RMRAxF`xD7hw2fKo0Vr%MSt?1rL^mrCOM}()i9A+xo z?*bovz;9#0K0%>ycIaos2aH_~xKfm5znZB0Q=Kr4V-JfXXop0-oF5PTM0?ppnH$&C z0G$Ic3~OlLMUCT0VcxKwE&0NqF?R2~YnB0J3qAx2QRO7o?w2X2pgyY`U4|>K&4hly zN{f;F=SlO#x0NKntN9y@L|2lUR;nFc$YF7M*;4d3gLc1Bv1$YRaZ&6g1bW)+5me7_ z1asEPd9&lK$I3K%=2$YKmIiqyW2T-q7N?Q>$>DXSrdrg55^NF}s`k8|`p|K0iGn zUVgBZFb=d==5^yHq?I(h{^!~+EbZs_x31kHfRdUx5*OB@;>tzP)DPFrH!k*#*Y%Sd zdmF6;6Hz36vsG*2$gLoGZ IwM!>f(S@21|D4V8JS+dVLmch=G2kYas9WdslK`Z}MyRIP-_AISVP0bBe=pPjy2l@l@mchS#J&ChjxR zW8pX(zDpub(>LCLjK|h8( YA%wF6xX zqra9_H(Xk_Ca#b<-$j5nv2v_c)*IK?ZLQU1sR7@a-S5|3n=6ie5vabJP4oZ{@OR=- z@nis!_2? c?5N5Dm?j42CoO7+#o)bUx(0g!IUIQ&- zbAm#2D)>ziW c*B+VoI0G&GB P3sESud xPXH4z}Oo zR=-IszTnvpp~6Q uf(OTx|f=|^I vM&<7;Ukk zANG~94^xT554;s7RxHFSA3Giu2Imh`n0wh|noJ<^kDF)41_mNIa}i8RXraA_%4r0l z8rk3=Di}2<%W<1Yjz&bCn)E}g(d8IvbrbTLLJ 7-0iOrXS5MVePHg6fMpNdr^u}eC%;=9`zQLrlWbMMCt&y5EtOXZwYgIU8@}$ z>8=wxw8l}N9Zw3Iv%Ac@`Yi%f {f^RK%^zEi#8L5t%yo8O$*MdlO z7G-_hQi!|1Z){yvTV>@(n|b_G?J$Vn8u|%5Cl$hI6y~pX4i(F<6i?b}C{eV)EfOyC zueQCrruUA{TA-`tb9#+qkydew1iNr9dMOFcmyE#LqL4CvzNd$xFC!~vGSVKC+wM?{ zD}E{}l@~D6Dwb_PRhJGkLwKAjBVnREu*Idq%?}NQb1Sx;ay~F^1y98NhZsh4=Ht;6 zHa4#k91dJD`AH5a;6fVFgxUsmf})~>qjNApnf|IxlyUBjzrQoxC~=EU|KNqmouw*Q zQ$e5#Pdkf>ZS$SzSpe}*WhAC4;`Fj(!9#AmkM&WdQOhf33Yv+!&)SS}qeF^Z_)0LO zYHr|DZzOwWskc6Oq@qgfz;W3r2_dDz>s@-K9_Qf &$HoDaf<2#yBPMLvDuI+uT;ry7j5pK8=f9k|i*MOFBZphwhcr$bp)MxK> zfhn7^j1=&Vu&aS?aumXPX%_Q%wQc(=)`8>EGo!2-*?GIQZ$nAm4bx&1EgEHw^Ld-u z4Q3T=6G7>TnyS9G2HYPfmKFz%O5Do>Yo_OWR~DMe4tt69d8{=pAkYdfW=RFF5`>&* z#T*rA6OxF+ODc$N+MR%I#b;U(!L3$ks6LFvq?|$K=`>ca7KS~HUn@(E%BR}M<|E52 ztDkBhIndGh)b$!u?hqpn4IJfeRe%s5OrAr|a-~wy4Qa8J5Mk5Ua{x_VykY#{j4a2E zr**i&1w|TqtzTAnyvHw?gG!X^r~vvj6GT0@hla&8F%JkxvkS9riJ5E*M8t)zgP6*p zK2h@Kk{Dh<3*iAjv_^bHh oOW0sfF4le(&Ce=>nSJP|DiR&bs0q2-CYp*1Q zI#qLQ@NVbcGB$x3f>KAB_&dvuZ$G8z;mU$p>!OZrrT&-?s8*E-=A!oZntsdGv4 sswq_EgHgBM8;q78EL?|vVGuRQ6Z)-6CE+ZZGA75UCBO#+Nh zDbcJQ%2^I(GJT@qDuQPCQ=ECEFpD-M(f-Y6&9n5-W>ydPEvl?&RNa)oWHlIb;ru&r z^P24YL(C9I;+uGqulH*P3ENIP;4HQBCg7Uk%LUW;RH#1G$>OWhb(O6r?s@oPMT^L- z!A6G&o9{>1)LR$l?px>|Thhx5rih3=CLe3{6nm)LRS)#YZZkGYN0yQ(VRyvt8$ZZ# zc=jf)0wyv(hRwGq(?Yz?Kp}4SNMEmC#fzSqu{iXYlMrn*tefK_i%U8YdaP01ud6>Q zz1dRbtME|t(gr@bmXVGRd8;9GG_RSO0);?xS>(FH%@vX6Eea8jtesrsBnbJ^wNf3R zdzW&Uz<6He^cch1bmq4@`Wr$EwExSejajB$u}Q02)TrW`&OVbYa$`v<$D?ALmt)3| zo9n=G$J@>K(-ZBA1rIAP9T3grPS+Z|?nQ0VX$?P^)oiC{Hq;cVX}AC%>`I0}Zv^56 zLf4mC3y@_P%FECB`7H*6m|1zzh7V*yeY=+mKT_P{WMbmx!Pd}F4=Hft$0=I&9kDy4 zy9;Aq ZR( zP_GU%2a#nNFX8dgwW4TohUI0}D28siIK5V-` g#gOYzDkLysV(_`(fxR^-AYghg)k9$t`mLrV*G89FTg==My6pqCf* zwuYUTv}hz^VZL;!7MG6^cd4d-SS#HodiQU&d=WZmKza?y{(O u(D#L&>Rh z-NnfaH`tZ-G>T}HG}3u=+w#0DH2ln&Uv{`3PTRxg2n0Sq%$i+nHg313;n;U0E2~qJ zO)>-k6|2?{1Enn=Y1*#y|Ci0sV}Z86?ZA82_1+cZrV?9~x#!A^-S>?xWS&gvja4Cj z$na1slXEg<5zOJ?$@x>Hut`qPl`!SUmf8T~KELp*e|A ZuNpdn`D_v=5vFzQt42 z1+y^TX1AC-boanJ9e*%mkyeO)p0mvrBHwtqxL%Ak#cy??^4>vaWEvfc;vXA1>S){N zh7F}{kmJIb-cB~)k(vxej0Y*oo-~JVy4I=uw`=r!!}|9T{W~RrO*lyE^X81P4Lk_k z45O^vtJr2W`JV^hTiMmiU2~INczd_{uh&U_49HIGshIeyzkai=OQAabYaEy cu{XGNOPIAIRRYN($bMra(G8g9NVn=O-4$&XgozuFx zr_W=h@lxQ~N4ut;o$mj5x&Dr};m3tkH)9uzyw#m52Tt5bnc_UyEG`)L@!`w;2TnYk z&Wn6h_;FU~(w8%sE4L 5+v>#Gt&Ov zNk55)_#~p6hZJogzlRye&oDe+j!OwY^PQ<3cOUQpnIg{Up#`(pcfsx0`*_|;#3{Fl zRJ!^7iXHdPj-KcV$HSbwbN_C&%OBxo{q1wyxoQpRH{YX@ 6V!Pf~UoVnLd5AR?J>r%)PE*tsg!O{elN2#q#H>w#NDrR=FCJV!Y zgD)`|hYT9KRh^m{Vn*5_J^agh<_#Kzq59O6^978^*Y{n82P^HwO6P|+A8I8=! #SZ8FS9;((uP`E@2h4K!LLURQW*hf0L=HdM~6DPE;m1CN_U(xz&pTq@ZT%xRKX z6zt7Zf4rNmQ*lS-&UPh9jvmO7bHFJ>9mx$dm6EtXf}tRBGk;v)AlMnN@Hi@U_A@XS zA%#?#%U55{`b50NovIw;QD@epaI!YY2wLcQ*Gp5;g2~IX?)YTd4E*AfxJ*8=sUpN@ z%^W#f9?f)%^yda9s)l< W4~+b8Gcv#7f0dAQm&+J zo+Z=(n-yV&Gg?j{(_}wE0l* 0j$kX}Icli6v ziiIE@Y$&!%2>eQ?M8~JR q%}jnYl0hz|iJ|d6 z^=l4pFD?hsDNciQB+o9WTm-wj?vTM;IMv~aLD7yk|DM%%FPcRGh;ZuTgG;7YKKccW zyXjasJZNKq+nkS6K!oI`oRRYhH6b3*Uv(Hc81*KkDZ^sjPG<2L8 y-V- )7l&~we3g5vvo M+jheErH zA77vnzGhzJjt~|f Cnv$0a*8!Xn$b zu7{Hm@e1=%AsX%lg2ARPB4(WxdXOW{Zhn-qv|;D*)%K%Wz~SQ6Ugn%U>9^jMiKBd7 zY@6kkJ8|$jykV+>j@Q}u2_3lnj|qbi;3-`rZxWl{QY0W6@pOt?x-nvl@SF^A5gII3 zIN-S;4cXRvbCpAIGgJMQ1KO)UKIsBA1(A2|jDdr730RaKcQ&DlkMpn?RJGcZQAb!a zJf1DHT*3$KVIwYBH{Pb2+ T;&|{#Z>`i~o9g<#HzOi1>ecKUJaa7U>Cx>wHLJW6 zVGudSTysm1hS|_ccsqv8&&G3C&*a>GfQ*-jHg*7GQs@@u4c4jH^ew5} sz)^r)@--ft x}O&8J{1}1cwrq;l`RwR+)E2iHW=XgD6{1(_HzMuy{lD}tonyruzgC0 z{p&1%A4&hO>HN a;7;H=7i2Qo-|zf;FZeDh;w1Qp-^KsA zX8rI+{Fi}*D<(|$xHRc|2I AM+psCeRko$Y8v$R1x;#is$N2-JSZy1hW^tk zQZ4IzV;Ol};xsw>$y@h$KIm5#*$X!t1i9@) Yz%xsugN4ZO$aY?IYA?Uq(`_ z?W$(#wLg ccIV{XMd MVtt*U%G`bb4s7j;nKf{hh+jNjV!=tF5kqfK+Y|6hfdb!rKA#$lQV|{kSutMLhsb ze<#Nj;SrjxRdB~XwXWgflM?Kl?R2z;P_h0ULnXwbCyQQnayLmDZ?!fxftZ+`@VROw zDb{59R>pKIXNb>=*V3>m8_h|#HW$ySt@wQks`QudT4fqGGnyh5tmMt(gt9f7-KU>G ztFqweCN-*l6yu=x3sKA#zkNGraGvMnQ((1(`?fiC>Nk7wPtEX|UW5>-aT5dvYg4A? z*il#896V6eosD! &^G$CLMx!Xg9ra|)QC}G6hxpU8!k)OzO%2^6%IM 810(>4v6N0e7OS-dOpY{=}3Rz!?wT|1KJ;Bw%>niE54hT{y%72u14==W$Tv z2XYQk2lUoWha7WELimHrL=(jUp%A_~^_$ph?M@;Ne-4wu?}D#FfLph|(f#iM(ZBTM zxu`AxwP&4-+K=HTzgMs4IABunWF+bNle8;X5dpTn#_~KBKIonns-6S3e0G;8FpVOr zZ+p;5(obm$#sOQB8jk;DHI(0NJF;U?rvMp=F(1)R;ISFGcoc!lxYNv`ZHviM@KpZ~ z94Bx`iFw`XcUB@rwyRVGn7(o`sJ=Mt=R-PGkgt{ST%&||EDS}a2L`EV4s%|7^09X9 zL*z>))*9aa70oJAVNh??vwTfCE_oANH K0MGJMLjY?4%47mQH;izp z+^EbobiC~}e3bpW%a)v~T<9AQEY1j1(4=8egLJ&7WxNO$Cgz=OSN8=7o5mOUcITyG z&O1yB(jv`ga2fF;S;;lJ_&iZj#jk*bDRnR`8*h!#c5kPDa*I$cEp{YnwI1MP-po{B zn7npNyY}KXn2-*N0}gM=YiOWU20O2hv-0bN;3Vc3{>M-QKU5hoGoA;oBk3pnx7&+s zn=jwI**=Wf ;21mMbi4iX zycNqS=s`A{yYUT2ee4u;DKMA*#+i$+S?&T 8ai?;zQ;FD7 +)tYiiKoL78^@IDFa9qzRdKQD8 zYjS{GojFcwiBZ7vg3_S{o_av=-{(N{X smG*>Cb^0JgGTXGE^XGet})GDgjg$T;kN`7#}k=(W5` zVeV0 #a!JkhIR!>q7u3|7iOjr9s9tP?5T1s45`9}CZ* zy|ol@b9a)0bDX`Q+B&K=MG?J1t+ `>189eszoaE^o z $yqO*bYMA=O!(BNVxTJ=s<6(j~rW{W|bm8j02c|`>nep$gtH}a&y2N;9s;2B76Ey z_8!Lx*kMdJfnY7}GSkV*Eu~{B_2&G6keYoLaTfgQtSt8dpZzyt*Yt|5rzKbSH)_d; zNik#KG>==%tVFF{bX>|^;-9*mTG2D-h#p3UYUkEMt5M}Edk`{{z#Ns 4{r%D54I !vZ_sAyK<7!V5 ziBM-(A9RwNWl?KUSKDJw1ALFNHu!L3@-S}4opcvMjp3VX^FBPtweIL{& iPi zupb9{4+DjTh3_#r*c_wpXAJ3qC@6rae(f Yb yg~;rEZx?=k>R>a 5pHW5G=)Zr14|MnRke^8gg00}jE zI)LFfNhqJ2i8$_xYMPMWTY{Y<4vL2P{cmzm|92K{)}0vDZLFT5`k~>{$4%S~S3e1K z82Jjh3Oxp7Ew3`wk)_#&z7KM}sS7#j#k(o!Ijandy1s_@Rfp%#gy$=Cb~UKLJqYat zM96mv>!y=y9+u}?xfq7^xpCc`1JfCg+4jW&ACNFuxi%oh_w^2GDyLqOv;WEFgxP>G zFkzugodR~1jE$B4UFr)(5|a{2TGa)2D=G<(5>HD2SEZW?udD>EEINQ5C~1vh?$%sv zolzRJpVUy+^DeWn8N_ydcw;4A!tXr#gm*JjPT6d6YZ6v(pdff9bl4w~w!NwLRIxK{ z>`uuzsE0#ANo$v(m{sNayvFr(tEAPp7Hks~ePd~qT4C8dQdXnU0iMkA*XQ}}rCZs7 z?!|s*=6~B(A_6yf#9OCN2VysQ`a>g=X71odBSB(-GhQ^?k4^o@Sp>ki6C_TpHL^aZ z_7@NWeqQtUEIK3s@E?no;{Rr8`d{<8o)28soLKj}1nPhEXtlP^NvAp1#11{=3csL| zsHNYE+|w0tw>K$W^yDdgS-x9L k0m+qe%Q&oPYbbGUU?o40uU&>{x~_<@#GO2CG!#i>yn z##oJ>0#PM|V@n4m&-MPuO~@xF-#!TnLWAKA;2k^jN <{A z?*f}e%E9tGSGt+!XS0)w<=4<9!fsy9vgL3t??%40Ohjc6m!6c>KJdwL_4-{hN7PMK zdu{b`c;yFne)TF4)K3=lUHU=Y-49c)Km3g15lz;hCr18*TOQ*~{yW;=zWlEj|CQu- zYIgN1coN*A^8Op9dioqcyL9hs-_W=l8oSb)29Xl##KG;wmmkX&uAEWuvT;{78IO{_ z(I THu`VxbW_IOvnO27RU#42wq64+Ev1omAOfFeHN@E66ND8TRJ!$c7BAFOHaU3-Bs z!%~38btigQW?y!sS(%Qfi)sNI!2jS)NEwuse_?81LBex0ZuZFEYPkc12%g6kKH*;O zi~i;UM4<$N`vE#sM#WyEPp(q4x*RbQX83gU8Iv)M^Z_nw{6M))f+I?bW>#5Ya92MK z*uy3O>AKpDX~#nID|ezJFj$nhpLr3fvv5Vl2OX&G$bv+TlBB28FBwKN0J*1i_x!QL zM52^P&FVGlMAfkui7N30q%!w0M;@<-KyWoItzKZ<+d#6Oy6mv`t(O~fyrZyF;d6dk zg1ssA1KOkNB|7W4u`N&z;%fHcv_LA)403n$E$*^BnvrM>lYYc!@i_4OJQ4i^dCbuO zzG}Z9lKl?{>OjD(#m+xljPw=rBl6SC8aqnP_0OI=A5j z)Wo0MuPnE}^_>y^(~FA=11mafK-K=@FD&<$_d5169PkA^UxB#~gnz~iQ?NULP813a zZKt@<1e6MVc_}(4!PbB#e1Q68sgI51x7mz2seWJyhK8a%%r%(L2V5#$YD3hKq1|mI z0y*>?q)U;lHPPLXQ9M9>*m)bbO%u&j%s-O;UqmBOQULcBC|>#F+^K2Vr-xuM7LM4= z{v(ohu2>YqE6XojAr#EHD-)Z8VSJld-HYGYM6cNi7W1P|b!q9}+;BIIv2l2@(MWS# z<=Z!Aq>BZdWWChv^$QpCog{Og0O}fWg%k3dvd%sWl&w<~Q5^@4{<)}s-u}PC{Xov( z{}+V0@xWO{uQ~C{y&_GnJRO63_zSBS-s pY^8G%gbTFel9Ofpoq(%!)p+~?N^GdQFW1ou-KiQHXTrXu^+XZrGe@>a5Cm@ zde+q;5}QaLdts^yYvy>+Kx#Vv@M=BOuL