From b69ff6ca8ad816c63465d4fbd1bb696b7e9d3d01 Mon Sep 17 00:00:00 2001 From: venashial Date: Sat, 12 Mar 2022 01:34:09 -0800 Subject: [PATCH] docs: Improve header + sidebar docs: Create workflows lib: Start pagination --- .github/workflows/deploy.yml | 41 +++++++++ .github/workflows/release.yml | 44 ++++++++++ .idea/modules.xml | 2 +- .idea/{kleos.iml => omorphia.iml} | 0 README.md | 6 +- mdsvex.config.js | 4 + package.json | 6 +- pnpm-lock.yaml | 49 +++++------ src/app.html | 4 +- src/lib/components/elements/Pagination.svelte | 59 +++++++++++++ src/routes/__layout.svelte | 32 ++++--- src/routes/_docs/Header.svelte | 4 - src/routes/_internal/assets/omorphia.svg | 3 + src/routes/_internal/components/Header.svelte | 79 ++++++++++++++++++ .../components}/Sidebar.svelte | 13 ++- src/routes/_internal/layout/page.svelte | 33 ++++++++ .../styles/gh-markdown.css | 17 ++++ .../styles/prism-one-dark.css | 0 src/routes/components/buttons.md | 10 +-- src/routes/components/pagination.md | 11 +++ src/routes/getting-started/css.md | 8 +- src/routes/getting-started/icons.md | 10 +-- src/routes/index.md | 28 +++---- static/.nojekyll | 0 static/assets/omorphia.png | Bin 0 -> 15501 bytes static/favicon.png | Bin 1571 -> 0 bytes svelte.config.js | 46 ++++++---- tsconfig.json | 44 +++++++++- 28 files changed, 445 insertions(+), 108 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/release.yml rename .idea/{kleos.iml => omorphia.iml} (100%) create mode 100644 src/lib/components/elements/Pagination.svelte delete mode 100644 src/routes/_docs/Header.svelte create mode 100644 src/routes/_internal/assets/omorphia.svg create mode 100644 src/routes/_internal/components/Header.svelte rename src/routes/{_docs => _internal/components}/Sidebar.svelte (78%) create mode 100644 src/routes/_internal/layout/page.svelte rename src/routes/{_docs => _internal}/styles/gh-markdown.css (95%) rename src/routes/{_docs => _internal}/styles/prism-one-dark.css (100%) create mode 100644 src/routes/components/pagination.md create mode 100644 static/.nojekyll create mode 100644 static/assets/omorphia.png delete mode 100644 static/favicon.png diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 000000000..507e78068 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,41 @@ +name: Deploy +on: + push: + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: pnpm/action-setup@v2.1.0 + with: + version: 6.32.0 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '14' + + - name: Cache pnpm modules + uses: actions/cache@v2 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install dependencies + run: pnpm install + + - name: Build + run: pnpm build + + - name: Deploy + uses: JamesIves/github-pages-deploy-action@v4.2.5 + with: + branch: gh-pages + folder: build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..90db06163 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,44 @@ +name: Release +on: + push: + branches: + - 'main' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - uses: pnpm/action-setup@v2.1.0 + with: + version: 6.32.0 + + - name: Setup Node + uses: actions/setup-node@v2 + with: + node-version: '14' + registry-url: 'https://registry.npmjs.org' + + - name: Cache pnpm modules + uses: actions/cache@v2 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}- + + - name: Install dependencies + run: pnpm install + + - name: Package + run: pnpm package + + - name: Publish + run: | + cd package + pnpm publish --no-git-checks + + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.idea/modules.xml b/.idea/modules.xml index a66d44ea0..8a6541ab6 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + \ No newline at end of file diff --git a/.idea/kleos.iml b/.idea/omorphia.iml similarity index 100% rename from .idea/kleos.iml rename to .idea/omorphia.iml diff --git a/README.md b/README.md index 7ae86410c..a56eeff2d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Kleos +# Omorphia *The Modrinth component library, in Svelte* @@ -29,13 +29,13 @@ When creating a component, start with [GitHub's Primer styles](https://github.co Install the package: ```bash -npm install kleos # or pnpm inst... +npm install omorphia # or pnpm inst... ``` Import a component: ```svelte diff --git a/mdsvex.config.js b/mdsvex.config.js index 3162d782c..d46083269 100644 --- a/mdsvex.config.js +++ b/mdsvex.config.js @@ -9,6 +9,10 @@ const config = defineConfig({ remarkPlugins: [], rehypePlugins: [], + + layout: { + _: "./src/routes/_internal/layout/page.svelte", + } }); export default config; diff --git a/package.json b/package.json index 255ef5c2a..151d454b5 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "kelos", + "name": "omorphia", "version": "0.0.1-alpha", "scripts": { "dev": "svelte-kit dev", @@ -13,9 +13,11 @@ "format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ." }, "devDependencies": { + "@iconify-json/carbon": "^1.1.1", "@iconify-json/heroicons-outline": "^1.1.1", "@iconify-json/lucide": "^1.1.7", - "@sveltejs/adapter-auto": "next", + "@poppanator/sveltekit-svg": "^0.3.1", + "@sveltejs/adapter-static": "^1.0.0-next.29", "@sveltejs/kit": "next", "@typescript-eslint/eslint-plugin": "^5.10.1", "@typescript-eslint/parser": "^5.10.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d69f434c7..f81cc28fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,11 @@ lockfileVersion: 5.3 specifiers: + '@iconify-json/carbon': ^1.1.1 '@iconify-json/heroicons-outline': ^1.1.1 '@iconify-json/lucide': ^1.1.7 - '@sveltejs/adapter-auto': next + '@poppanator/sveltekit-svg': ^0.3.1 + '@sveltejs/adapter-static': ^1.0.0-next.29 '@sveltejs/kit': next '@typescript-eslint/eslint-plugin': ^5.10.1 '@typescript-eslint/parser': ^5.10.1 @@ -31,9 +33,11 @@ specifiers: unplugin-icons: ^0.13.3 devDependencies: + '@iconify-json/carbon': 1.1.1 '@iconify-json/heroicons-outline': 1.1.1 '@iconify-json/lucide': 1.1.7 - '@sveltejs/adapter-auto': 1.0.0-next.31 + '@poppanator/sveltekit-svg': 0.3.1_svelte@3.46.4 + '@sveltejs/adapter-static': 1.0.0-next.29 '@sveltejs/kit': 1.0.0-next.295_svelte@3.46.4 '@typescript-eslint/eslint-plugin': 5.14.0_e3f5f4efe2bd492e36eb6c1c619dfc98 '@typescript-eslint/parser': 5.14.0_eslint@7.32.0+typescript@4.6.2 @@ -214,8 +218,10 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@iarna/toml/2.2.5: - resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==} + /@iconify-json/carbon/1.1.1: + resolution: {integrity: sha512-ClOYc+82CKlDAKH1tfDTJTzNz4oHhYD04ALA5uemw9PdWXg05yIJb9bxWjSz4UgdUbH5N/yd8s9hNPI3h6jnlg==} + dependencies: + '@iconify/types': 1.0.12 dev: true /@iconify-json/heroicons-outline/1.1.1: @@ -268,6 +274,15 @@ packages: fastq: 1.13.0 dev: true + /@poppanator/sveltekit-svg/0.3.1_svelte@3.46.4: + resolution: {integrity: sha512-atwGnEYD3S18hrwvM4S55sAB2EKzbvLPVBWoL9KSVqPgbSfRvKQb6aBrA7gWOQVz3uoCwDujUvvlbxvzYxmthw==} + peerDependencies: + svelte: 3.x + dependencies: + svelte: 3.46.4 + svgo: 2.8.0 + dev: true + /@rollup/pluginutils/4.2.0: resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==} engines: {node: '>= 8.0.0'} @@ -276,34 +291,12 @@ packages: picomatch: 2.3.1 dev: true - /@sveltejs/adapter-auto/1.0.0-next.31: - resolution: {integrity: sha512-N1ZFGxulcSAOJrtdFR567diwbWKUvLrHZiUE9TiEvIahnndeRa50MF9LDg/CuIvpa6fHqz5K827XXrADlPAr9g==} + /@sveltejs/adapter-static/1.0.0-next.29: + resolution: {integrity: sha512-0hjGnfT3BRyoHnzJ2w0/xL+xICRpKneDTm45ZzggiRrc0r71WJfF6toGeg8N4QUQnj8EJ3Itm453gsS1kt7VUQ==} dependencies: - '@sveltejs/adapter-cloudflare': 1.0.0-next.15 - '@sveltejs/adapter-netlify': 1.0.0-next.50 - '@sveltejs/adapter-vercel': 1.0.0-next.46 - dev: true - - /@sveltejs/adapter-cloudflare/1.0.0-next.15: - resolution: {integrity: sha512-kq3vNFpKmRVgAOfz4HrcleBnUADs++dfVF8S61EAFqNTEvGtOVdJKLql66Pe/uxlY0VxAp1dplxtEDf4/R70lQ==} - dependencies: - esbuild: 0.14.25 - dev: true - - /@sveltejs/adapter-netlify/1.0.0-next.50: - resolution: {integrity: sha512-lpHvjcHiC77SPyLp7OjhenJF9KYfKsXlmUua7icNh0Hc8SKtRQf0dn+a1Zy77AslikvOX7/4HZE8zPIyIvYYqw==} - dependencies: - '@iarna/toml': 2.2.5 - esbuild: 0.14.25 tiny-glob: 0.2.9 dev: true - /@sveltejs/adapter-vercel/1.0.0-next.46: - resolution: {integrity: sha512-6Rwf3kZF6uX2JxDMoYgZWZe5TjVTTWZa57VukdNGjnlAT3CrfsEOBWyskX/8hx7AiYX5fucZaAtYPNZpUmueIA==} - dependencies: - esbuild: 0.14.25 - dev: true - /@sveltejs/kit/1.0.0-next.295_svelte@3.46.4: resolution: {integrity: sha512-4pO/swXByhU+7bhNikTjh1d4QxAMP9TZ74p7sdPuyJf5cg7Zrfk1nBtaMt0R+8+5j1xfC/XWRcxa3WnhT9bQMA==} engines: {node: '>=14.13'} diff --git a/src/app.html b/src/app.html index f41394532..3969c038b 100644 --- a/src/app.html +++ b/src/app.html @@ -3,11 +3,11 @@ - + %svelte.head% -
%svelte.body%
+ %svelte.body% diff --git a/src/lib/components/elements/Pagination.svelte b/src/lib/components/elements/Pagination.svelte new file mode 100644 index 000000000..e7149d312 --- /dev/null +++ b/src/lib/components/elements/Pagination.svelte @@ -0,0 +1,59 @@ + + +{#if count > 1} + +{/if} + + diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte index 815bb1222..c8de20464 100644 --- a/src/routes/__layout.svelte +++ b/src/routes/__layout.svelte @@ -1,12 +1,14 @@
+
@@ -18,28 +20,34 @@ margin: 0; font-size: var(--body-font-size); font-family: var(--body-font); + overflow-y: scroll; + --accent-color: hsl(331, 60%, 45%); + --accent-color-transparent: hsla(331, 60%, 45%, 0.15); } .app { display: grid; min-height: 100vh; - --sidebar-size: 250px; - padding-left: var(--sidebar-size); + overflow: hidden; + --sidebar-width: 250px; + --header-height: 56px; @media (width <= 500px) { display: flex; flex-direction: column; } - overflow: hidden; + + :global(a) { + color: var(--accent-color); + &:hover { + text-decoration: underline; + } + } &__content { - padding: 5rem max(8vw, 1rem); - max-width: 100%; + padding: var(--header-height) 0 0 var(--sidebar-width); overflow-x: hidden; overflow-y: auto; - - :global(a) { - color: hsl(216, 50%, 50%); - } + background-color: hsl(220, 13%, 91%); :global(h1) { font-size: 54px; diff --git a/src/routes/_docs/Header.svelte b/src/routes/_docs/Header.svelte deleted file mode 100644 index cff8cd276..000000000 --- a/src/routes/_docs/Header.svelte +++ /dev/null @@ -1,4 +0,0 @@ -
-
Kleos
-
- diff --git a/src/routes/_internal/assets/omorphia.svg b/src/routes/_internal/assets/omorphia.svg new file mode 100644 index 000000000..50a459a4b --- /dev/null +++ b/src/routes/_internal/assets/omorphia.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/routes/_internal/components/Header.svelte b/src/routes/_internal/components/Header.svelte new file mode 100644 index 000000000..aa52c9538 --- /dev/null +++ b/src/routes/_internal/components/Header.svelte @@ -0,0 +1,79 @@ + + +
+ +
Omorphia
+ +
+ + + \ No newline at end of file diff --git a/src/routes/_docs/Sidebar.svelte b/src/routes/_internal/components/Sidebar.svelte similarity index 78% rename from src/routes/_docs/Sidebar.svelte rename to src/routes/_internal/components/Sidebar.svelte index 5e3fdf558..099414294 100644 --- a/src/routes/_docs/Sidebar.svelte +++ b/src/routes/_internal/components/Sidebar.svelte @@ -8,7 +8,7 @@
Components - {#each ['buttons'] as component} + {#each ['buttons', 'pagination'] as component} {component} {/each}
@@ -19,11 +19,11 @@ display: flex; flex-direction: column; grid-gap: 2rem; - background-color: hsl(216, 10%, 30%); + background-color: hsl(220, 15%, 40%); color: hsl(216, 10%, 80%); - padding: 1.5rem; + padding: 5.5rem 1.5rem 1.5rem; height: 100vh; - width: calc(var(--sidebar-size) - 3rem); + width: calc(var(--sidebar-width) - 3rem); position: fixed; left: 0; top: 0; @@ -42,6 +42,11 @@ text-transform: capitalize; color: hsl(216, 10%, 90%); text-decoration: none; + + &:hover { + color: white; + text-decoration: underline; + } } } } diff --git a/src/routes/_internal/layout/page.svelte b/src/routes/_internal/layout/page.svelte new file mode 100644 index 000000000..83941e9ab --- /dev/null +++ b/src/routes/_internal/layout/page.svelte @@ -0,0 +1,33 @@ + + + + {title ? `${title} - Omorphia` : 'Omorphia'} + + + + + \ No newline at end of file diff --git a/src/routes/_docs/styles/gh-markdown.css b/src/routes/_internal/styles/gh-markdown.css similarity index 95% rename from src/routes/_docs/styles/gh-markdown.css rename to src/routes/_internal/styles/gh-markdown.css index 400a406fd..46d9d3112 100644 --- a/src/routes/_docs/styles/gh-markdown.css +++ b/src/routes/_internal/styles/gh-markdown.css @@ -364,4 +364,21 @@ pre { pre code, pre tt { background-color: transparent; border: none; +} + +/* Custom styles */ + +h1 { + font-weight: 600; +} + +h2 { + font-weight: 500; +} + +blockquote { + border-left: 4px solid var(--accent-color); + padding: 15px 15px; + color: unset; + background-color: var(--accent-color-transparent); } \ No newline at end of file diff --git a/src/routes/_docs/styles/prism-one-dark.css b/src/routes/_internal/styles/prism-one-dark.css similarity index 100% rename from src/routes/_docs/styles/prism-one-dark.css rename to src/routes/_internal/styles/prism-one-dark.css diff --git a/src/routes/components/buttons.md b/src/routes/components/buttons.md index 8bfee9356..450b229e0 100644 --- a/src/routes/components/buttons.md +++ b/src/routes/components/buttons.md @@ -1,13 +1,11 @@ +--- +title: Buttons +--- + - - Buttons - Kleos - - -# Buttons - diff --git a/src/routes/components/pagination.md b/src/routes/components/pagination.md new file mode 100644 index 000000000..80885f728 --- /dev/null +++ b/src/routes/components/pagination.md @@ -0,0 +1,11 @@ +--- +title: Pagination +--- + + + +TODO + + \ No newline at end of file diff --git a/src/routes/getting-started/css.md b/src/routes/getting-started/css.md index 104b140b0..1331b7b7f 100644 --- a/src/routes/getting-started/css.md +++ b/src/routes/getting-started/css.md @@ -1,8 +1,6 @@ - - CSS - Kleos - - -# CSS Configuration +--- +title: CSS Configuration +--- Use [PostCSS](https://postcss.org/) to process your css in components and `.postcss` files. diff --git a/src/routes/getting-started/icons.md b/src/routes/getting-started/icons.md index 4d80f6063..94863033d 100644 --- a/src/routes/getting-started/icons.md +++ b/src/routes/getting-started/icons.md @@ -1,13 +1,11 @@ +--- +title: Icons +--- + - - Icons - Kleos - - -# Icons - Use [unplugin-icons](https://github.com/antfu/unplugin-icons) to import icons as Svelte components. ## Installation diff --git a/src/routes/index.md b/src/routes/index.md index dcfc27fae..73d0b633d 100644 --- a/src/routes/index.md +++ b/src/routes/index.md @@ -1,30 +1,28 @@ - - Introduction - Kleos - +--- +title: Introduction +--- -# Introduction +## What is Omorphia? -> Kleos is in early development, and not ready for use in any application. Contribute to it on [GitHub](https://github.com/modrinth/kleos). +> Omorphia is in early development, and not ready for use in any application. Contribute to it on [GitHub](https://github.com/modrinth/omorphia). -### What is Kleos? - -Kleos is Modrinth's style and reusable component library for use in all of its frontend applications, including [knossos](https://github.com/modrinth/knossos) (modrinth.com), [theseus](https://github.com/modrinth/theseus) (launcher), and planned projects such as Modrinth's in-house auth and ad-server. +Omorphia is Modrinth's style and reusable component library for use in all of its frontend applications, including [knossos](https://github.com/modrinth/knossos) (modrinth.com), [theseus](https://github.com/modrinth/theseus) (launcher), and planned projects such as Modrinth's in-house auth and ad-server. It uses [Svelte](https://svelte.dev/) to deliver the best performance with the least boilerplate. -### Getting started +## Getting started -Adding Kleos to your project is as easy as: +Adding Omorphia to your project is as easy as: ```bash -pnpm add kleos +pnpm add omorphia ``` -#### Components +### Components Import a component with: ```js -import { Button } from "kleos" +import { Button } from "omorphia" ``` Then, use it in your HTML: @@ -35,8 +33,8 @@ Then, use it in your HTML: For more information on each component, check out the pages on the sidebar navigation. -> To get Svelte language support in your code editor, [use this list.](https://sveltesociety.dev/tools#editor-support) +> To get Svelte language support in your code editor, [use this list of extensions.](https://sveltesociety.dev/tools#editor-support) -#### Icons, Styles, and more +### Using icons and styles Follow the guides on the sidebar to learn how to use [icons](/getting-started/icons) and general concepts. \ No newline at end of file diff --git a/static/.nojekyll b/static/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/static/assets/omorphia.png b/static/assets/omorphia.png new file mode 100644 index 0000000000000000000000000000000000000000..1c09e0c0b8093c897a41d08421cd3157fd5ffd6b GIT binary patch literal 15501 zcmajGcRZY5w?2H&=)L#e34+mkZ^4KX1X03>-fKiBL<`ZPi%3LBNVF)!MDIePjv6&# z5R%b(?|h%g4s z5Fh+!>;J|D0C4Nw%&h{gj0_c=e7tTtI{Vy5+zj>d1?2#sq#Ek$=;VP2%xx)cByQxZiEwq(d+3iadk8modg$RK@64^LLaY?304nf81UhntdU<*W zD1<6=|D#s{{QUQ8F>cO(ngn_%b6XkR=G64@M{r8tl)fp>twPMH8HB;@7g#l&G^FqkOVLNp-EJJ2yy)H{IZuZn-^&_V<_ z`MdcBy7_o>{?+Mt-zO+gnVTDwbN*X7BGm0awR;Er+kDUwVt*xK5;w)g{_p02ZZ7{z z^S_e+*4)?CC(tLr)yMZg4EQfU@gL&<))92y|J)_i(f5C9Y-IHR-Q3ITznBpas2vPC z;@?jFFJt;YKM-IZ=8F(BMFjW+`8y%BgAv|=JpXv&uU`~yyM-b=t+d>{5Z(cxca^ze z(lY-q>D~WLs_EnD<8KBoD}*w)#6O+>`c6UL%kcri(#<*0^*^=!r@#>5{oubz{*KNw z=(5a{C{_Rm-UTIyy9zkfab z>(SHgpEb_O`Oi!%I6D1xk}|iizmIc}6TR&BU?;@n%3p=>cv74ETiYf6a)t6WrEm7@Rm`>bTm2}MGXQ1tn{9~11 zZv?kEK|71G62~^0&F0svS+NNViSmeuRjOv)6r4JLF7~0np5%!7yeE8uNJ1YF_-aVm z(=Q&GAMxoIj8~X>Jv{R0!Jz(o?)qC)Y0}Rs2G*z>Ij7dBY0CQ%6+#7<*Jw*+iSO^s zn+eKJ=fsx?$`C9=eBCDsu+&3|*^(8Q&G0x|*LLFetAgn$Al*o=^R3&5d!J@wOLV2* zYDe)Eev;0NZZ_LaQkx-b5Vd@0vADGk>0&v&GgH@05$C`3;SeWo;K7kHJJA;S!XWb1 zyBh!iBs72jAV5J8BLHv$`daGdp+%VDkmtqPfBIDe@u+UA)8d*dI2vx7K=n`XbQP!{ z3YwZHi^rO~K_S^PvCwi;4Vnz@Ai-N%(T)9VD2BmA!RE{-pmzX4CU|~JjC6D+>TtyO z_xO54HQCi@YV?7WFU3I_7TaB8ac4w}4uH|*9`HneSd}JzE?aH#E0p0A$%$sDvZ)u> zp($Q;j~v2`*{B=CvPo~COrC;N865Isde_QG(o-0w;|MN;D zqpp;LWEb%Kys|i4xp{Ae*n!&DCdm6XD`)~xIU?TkLjWip_Z)NB+D9dz@aEA1{w!ZH z=8!U@B3LP2lXmV253EqqJPh|PoozYt@`1NgYvv80A<4`oY=zPx+#!8r)11&OCM9~U zvDtV_=5^s4s9KgB;xSGlbge4V8-Y+buvwAAU|zPQ{lI@K=8sbZ<&U{ zVK5ObWI~d6fH!ewE;8#KSBV2vk=nGXV^B4#GI{={^q7R}9dA!y1iu=Y>fWY0yXVgoNiSZDE5~^qPC9b>UZFA$9KT};P z7Mrv1c-?sbAGFyPbsWthp~?92zUwa;UtZr-@1d|U!mX%se={R>(=KrRLMMA zbyJ2{TJr_~&VoAjRB@x}Re5$10c!>F($ZVgRDu_(COCO2q})3bt00#Ni2a5e39IV4({i%HTZD$np@g&FmMnmI7Lr+{{-?h4#`CUCHwkz zL@^jChg!oXBnd0z!aQ8@Ri|u1#oJf;ToKcwxAbOk6g_;di_sb7Oo4x0B6Gmfy7S|R z-C3rrMh+4OXKNH?9s+&zDG~Vl$UE%oVEU zn~sy&zVB^y*qKCVV{1h7^AkK@J|=*2HIuanvRjLc=uGIr)HMiS$ z0rFhY&t-%FJU@ZTk+2w@i{FlCn?C!{vfjQtqahGd7o>$gTkAxL^7Sysu z7*u$eW80OduuAZ+QCuN`*}*Xk@LL(e<5D(QhFX8Vsq;2n@&RY=fyXrXp!*i z0(Xtdk#^MUfwwC=sNJef?@Y^Rug2z(4Vem>Rv7@dUyf1kv45mKyJpeVeGH}=LrRGq zRmH)IOxE$sP{NNol$`U~%o^-6V% z*ALAX#8UA52#8IOmFNL~T?-bA?KzT3GjkE;rS!~3=c+7_c}{v6nY7&i;>i_dA;OzY zeBx~K-xT5D=T;_h3W#8>Lq^j>28V8Mswt5wowcm!z1QhFh||x~Jwo-+?-%w1UL+rn z+bHE;xF-4yc|vXV=c`A;qeokRnYYE?7!`xq@8_z`)BRll{JuB`RSQj=1mU{9a!esZ zH7U3)Vae>_z)kIs3&btU;|XS)DJYYH7)NhAT?@10Etv|cR}|m``f!?#x1c?>-~H_r z8#rVXMi8mwYt>xhF!NH&nqnVnL(Cp=uM?{vqsm9+I>eSG7BBfjMh_uO`A#@J~kkNl;;lML%mAzGG&%nLS5#f=F)3co@$%+|FPGdPq2l_vB-~ z;q%+Cmo?p>YI2y)$4Uf|43KbFpXFN;`DQLsz9eo}@60l!rk44iR}1?NjZhTfdFDBu z38DHBEo_3?0O9dP6zAog<#W^$O1^4dTON_C1HUj^mon70khbJ|UR_Q22d@oUiNj%_ zblHZQg{>1gQvh7u`%f#355t&En!}W);^Fytne0Ks0tNnCFuFh4RF$b3O}N8+C1*hn zm<6V|yA%))|8q0NYdqA?C&f|lb!&;7qkT*HD5tLcad$oUkXtHb3$%|oS>~W>Z+;pS zqp#WPNXj=4gS*1iKkiK%OU?9rTvE)-Jh(SYHAmf^=lhcnV0gqua<>V1QF2W`nfto~ z-?I!EA-Gxu9!)aZ4cDf=^!_vUjVSN9FS_6HCtVOrIH|)g1TvHWT)xt3ec{bt(7FyR zwk19QigfG9(*K&dZR&9T;>!d-KRh3iIrYPos1iwEHDG9+m+3^}EACdjjAK8#esRP} zU?^0y%oTE(a}=VNp?uAJxTxRThf*in!l5RJzFie$*d??NOiwIb@vIg#7HJjaIv;cA zJed1^j?XfW?!?)FhVU0*pRe!?>NVjJPA)!u21g#>aA>m)+Joo6qgw2my`ZzIXX#aH zg;b98M;l~Z;R%J}F_yd~F?mL(HhXN$U3^rU#*13_ze2>=^F9A5%3EFIf29|{|0TD= z0BuM5oc0mFLRAw$@a(-?zl7e`A(3!LP!km-Yc^>6YxFzt<)~BgV1VW!XJld^dd3GJ zsCX`TM$h^CXIrte-&-oTQm;ew7e-(gY<8f9|1gwjW9NacevnZ!`NY zbb{={dA-V8*Ppq3AS>vW;K#dwe#Kqhi~X+4i|d3;jUpk@j;px99nATeZgQ!C-cCo6 z6hYh!&n15OIzbO9K)@Nx@S%k!({b#zJ4@{1XwSa&ky2eQ7W-%5NQ$?jHWH7K-L5-& z98wC|9CDrxT)E>yMmo+jXeCCU!^PxH;0>J?y5Ek^T82~>>O+}8)$}UcpPm>*J>AV( zN>v(x<$Ldplj|=k8T$rW21gbuROeCCHmD zk(zPy^|!~XU4PL7%PW2@eu%dl~*B{N*tuJGEp-6A-(yD~wYOtFP~0 znqFTgb0H_DfQm`6(1Kx&?tH8$-7pFjhZ-nvZjpeZ*pqIC8`|M?~?iUfPl*bk%&&yYW*eyLt5Ctt;pPqg}J~jY*;~ju0Mn>GRzeNagAQ2+7|=Ogs8P zQsMa(`?ICO_P4cS@ciziDA`98;;jSS?+(7r6Z)O~iGIo;jpba&Szl=s;8e2o38HL5 zhEN|rIK{7P$71cZ$*ckaIf~h;0g0Wu6fAaOAV7*Y@UW%yQ)^@`kJ}42=|WP2^E;G@ z%W@Yj<;qvF*(Ap`FCzU{{4W(R21WMAmh&#%FgW}%cdVzN*T6fqTTpLm=}n*FwA;_eu{C^ z>Jx5!HZCHEfJ3oQl}10zqq}V`Gt6Abw6+5cCR6T_Bd(I=u5)^37$31(@l^{HF0F6-hd4X<4A#9VS42e3^3XcFp5cJ}D`WtPohIWokMY50vNW_D&$m`7#i!>&!g zaP*fbjN5nm&fWJ&Ba?fwoQ|)K#1Bc5dQ~$cuB(k^>uC?}Iml``f4sj94w-Y-WO<0& z0;r^%ITho+`h2T?*T8nGG~Jc)_s#{^&cSswG9&9^vN5DuuS+0fvjrUp)6)fiBJkHH zyw4R?k8-b4z>;bW{E15bG-?2!TAE(81LHe2Z!0Xfy-juU;fKiWh*^5CTA*vnbj0?W zA_H2wJH{cG_G#>z_Mp4tdO}E&)bETf`jmUjexmqdRw%%uP1dQ{6C$HFspaHn_*SPl zjqu}Ap-$0#;yTSz#SQ70wG0tta`F{p3}Mp3m$5|jJT$)YdJ#1ctg?(d&Mn#+(CEL{ zD|AG(V%+29;9r5oZi_GHQS~q1`2L74E+sre#!0jmI)4w6%3pGXvwIJJi-J|%b}Ncd zPK8jFm3&vf!+$<`Z@oGx_7~<|WZfdo`txUcc|rbfOnBk>IZwj3u2t$341*6GC)f?BmKSeN)#SVxwCo1a4DpEnX*C?6%7igk94b`KP^PJFCA=iu+!P23_mjCC38+Ga~{EPYcD5 zIUcCECu6#ZzdDvT237{1mIWS)Pcg^JXnc|$kda21n?^GH>=x3I$>L*wVm2qZs<=_%*aw=V) zF#bw8N5=awZG*wae7NwO&Cruy`SGUBEwO8qZ8gvndO4`gvEZ)bCNYWFF?a1QULFeNMydOB4U%EkB4t=N2j4$@3Hhx_Qer;hs4;_ zAHzWi-z!w;jV+(YnJ6SYKcyIE5DdHRy8V%;jwIvddN}(EbERQ-C2uqqD~iFi%%dj; zELH`zxIT?Y{a%Dv0xyQg4SGzn+3xmaRhSjQ0(g#R?7_Q6t|7*-J$uUK8a@3BM8t${t6KS*mVk{?V)=ifn9G*{wk{+;A#`_xcVRVzQK|`-v71|=N zmlLGGW>s#NHFw4R`?1#BvlMX`#Twm>3!xK!-v_R`OQ5m3(Nmda#j$hIByn)37p^|n zOq1!B+}_4%)-Eqg-;P{C)kp_xn<-DLVU%W5Z(QFK*AhhMWlBwZ-@mgGb3p4;_(jx> zbdpN}F9os{KXrfA)u$99W!iYGlPZ69d#3WiX@5clx*FAm$Ksog4W5bZ_hhOZv82*J zf(6j{Iv_g;x%}K154Co~$X;HEb}ivGO)uHa403+vdaCPAV_MgY#coLm_zsCAzi~`^ zDmUtZdT`E;njry%aU_`iQ>T}fs2mq^eTQsymG0KVf1xO>?`Q`PjieMgM3J=|i|(v$ z>Y_q180lhC>R43%fQo_)2Pfu7Ns@A=*=8YXJVu+x=!5@qlrFMTCw1dG1$B?A&x@!s zwY+F-nJ4+9wc@jFFrx*tRh}Dth#{?=VOx|>F^nYyrWcxw!Lzkax`QK0;pIJ1(JL9{CIK}Ks5M^O0_#p$jgygUnt1Msr73z|)*w1i$qM)4_ z8vDL>!H2PGy44?U$4jxhrO_4A6vIlv2-MiuM!D8t4@^oE)CloV&{%gH|sf+b?PV$SwU3@$1sC!EFZ#nCHIk3r6x}f1Xo(dK=AM zWEtbvgV7f!@O_w!^I45_xrzhmy7W&)IM)cLSqwy+gh(EK6WjeZFI3O%8)>qJaA9&V z6==i(z~q6Oz*WLWqYo(5VeQOi>sFY zc&U92h--w0>tt?>uL^~69e!i=WL?XiC?+pQA~QY-b$f8$iIX@bFE^o#TSAx519guo z1_APIbFGhTF!rlUsFmV+IKwDp-E1;#)DzVU&ljT?pSIIWX|~cbd*(kRqPO6EclghR zBlh971e8M)m)A`4ai~cH``66Z)Zsm@fj_hFlFR=w?yVXqzLeFkoNA`@SDu{+HV;3i zpJe5+=$`vi46D{+K2Owh%C+L9000|##Pky-UHf2txfw;&>v^=9lOTJ-tLs|*`r=c{ zlU!^t_-3KSVD1b+{NBFr>=xp@vJ_cfK^pL%uh&WrHI>utYt@c@9308#oxNhlgq z_=J|Eaztt1vnjEiPVR*S+79!C_Pl2^sKR%reg66lvN&}&!i+BnqbHFVCSfz47BWN| zOi$BMzeQtj_Xte3G{l|oD9?W^cM}%uT3Z8a(Wf*cN0fDsvDgVK8aYHR6rLmh40+Whs{GfG+%9abGI-HLMPX?o?wn`U93cDd&O?p7;=$4y(#Zln*S}22B zcEmh?gRyF9L;1})D1eHeryr%Vdip)3;Nc13taf;~-Y)glL9g7+O;)|>g_*`?ipIki zl(qGaCkQt}5Al5X>q(!7A&!M@>IadLz`3GU9xTI~C1Az^O0s z;ZscP$5D--HQ6W2sI}}m(Vq;JBYNvYQqmYtoJhlt>A)kvU<_We5ha?afJipyO8#&W zl^2iv35Jb4-mrlq6juAE6fWM{Vls0rN3I6c>0a0BzS!WA*5$*2N;l%lk!ihFe|T>!{J|KFROVNv!`sMVBXqn*Ydzaa)(5kX1 zD8CLf%Qli}Hu=+{Z@(hqVUAZ<+#18W(D{1=${fS2Xwy2GI&gs?1~{uqix(36ZcBB5 zn=CTk?*SL9Z-nCH!Pm@-gl(IA&T(n>Iq#nD4FxhwiZq=nolG6Htrx%h*-^n&scx~8 zc+p`o2Iv+uvYC7d-qB~G*O_9vHL%<0y@)79SD$^ZJ@w67DEJHX-XPVMTTW|rbjD8) z8uVn+Bpv`H2=+F$lCtaknv2@!j5sT&$xS@hVZO4bojvNn8{@RgW1++(*i#+1Hr#O` z0zNoZ!EkiR+)eUM@qXMKmvVyE<&>IdQy18ZE&@wz+pT+td4mO;v&_ z@}X*J@o4I>5vGhud>}({quV+(D)lmIq|(yiPI$f#;w2t@7OEHjV$wYVkyEPJ*<2S~Sn%$1C5Gq! zs>t#6$eAPnGA^QZMyc~~=x>HDMd29JDY-;>Y89D&>Cc2~-6hi3{jkG4)RW}9&0v=Q ziLjL$7)Av-2w<7OJsOA0n^G692B6ZE?>~-6 z%DkJy3viBctm*$cVw_wrrfk3$*l2oLo_A_?i<0hhGHME*ZO<@zoH-aNgGH8{4GS)wO*lkIyiBzl+Rc@=x*E<3^S@?pH6B7X%D zMegg@i(@wRJiRv;`yQf1U&PDlY?Ze0q~3jM(ldA;t)eU3L@#J_Yxnjm5AaN}Mqzs7 z0mGn6hMnJ0-YXK7BNjyAbFxO;`JtNLitc(-*cwkQBET3(XzcPv4WT|z^+m{ZJ(r|n zm9zkWs+3Q(C-?L%aVj@uI1e5;q%7!2eSU=+#e2%c2V77LZd}`cUVD9C;UEw9h*ZER z@}v({S_D%Sw2p4njC{&_W5bzwGGujdBv|UZ8?SW7w(z+i#32%cSxZ9cR=s~wu>MNx z&$UG9RYX36998ImP`yQ0*f}5X-3=8Ixtq2|SH+=t2E~Wub=rcPH_qx5;Q;Vu>8fOm zF4CVe;*>*gs-c`7Z(%L_^pzR^E6?C4+tlnETPuzgTm-9q0`s<`Duk9j@jg(0LYQ4H9Ej)OTnLvnUG zRg-!MRHCp4yFqp)XF-Oz3uy;Dt#zN==*u^10K^TNUwpBQJ5LJJ8E1Yz<=@|&!9A1DtrSF|ffYKvgPv=VR3TtZf4Ci8|%KraVIca9^W z&xuoO<$vuPq|!&$ju9!*IIcvdO)aTxWzR8ApoL#LXzbFdz5jY0oX^rSwm2npq`Shs za%ho~7P~uFr6;iZ%{CUdK4zd8hD^j_ry*A=IzXrk+VQ>2gwI_l{I$s^&NES~fj-`3fatwIWrE@wk{zaaYHejXkbHGa>@+J}fyt z3~Yc3U{|EftFB~!utIh$JdZAfg1)G8vpgNH5%6< zsw&|cx;7{fbu?Ig4p7CB%yxAu!jZaD30ClMg?>cH$CACHJ_mfsdD%k5>p8{K+ZP`$ zL1ZSEI%e0;18}1|fkIcGLLu$+7hzP&fE3c1=+CN$*@Z>L9ezbb2c_S|E1~85eg`M! zx*RNam0qR(fr!)DDhEmq<5e#&An_g;221}M4eZ(qq8$%Yp(Ui}bBvW;i;sXEKxG;L z=(hfH0cObz2|8XPy{tXK0vBJMlTwz;DwzXV3=%#SH}M8Iy#d$LCAsb1G#yi}014HP zrATSk`*eeKvHjK0KZm2H=h61k=OB=8QQ=htZtxf^_6fZzLkM0O@{*#r+55~|(Rjkw zRg#=4bzsnH#jkQ?sZjvUX8M?V;qyQW%CfQ9sM$Yc$TKaQr}AyY3FWL|IC`>M^yJGt z9{SLFeAN}h&~{J=IFExM(S-xg%1;eZ_u|v&uQBIEFzrB&8)xrNy;cYYvJh|l73)CM zVZud~vgn$7QvO=X0geAeJe;b_K`|K2gQ^|Aw<8^IjF$|r79i-s?>4zvR^+G4&mw5xB3SC-kOdM|s zJMngnuWY?2nQ8@!VU>yBrY(dNfC~~3uXu(Hmefl5^&xgkkcR`>=I(Rs#^=NHjmy@s zNT=rVLnjtnM6OaQ0xYmNmP-_uy!P;^^zboOe+XHB_Vg_RuC=@Zo@45w#BQ`~fXl-} zHy<``85l(W7kg?uajN%JRS}E;@*qoQE9(BqUX!+5II~%qvhu>$qr`dO0O;L$DMngj z-lH~;R?H9!NmZL7FV*^%UIJDsm$%Er2^DBXJEeywEyER!!o#Wj{oBQQIrcW!Ar6h4 z>vOd5{5kN<*NLPEnxe5e97mB#KB!sSLYrAuX*-+AUe~&MdqY*~S0IS= z8Hb1SQWN?Q`!;u*qd4gzjIKM1VMjoxI__;VfB8BynyJK5N*-WjeJz0ecOIU^ypW{s z#HdVTb5;?I{S)-WG}9?$;O#)(ihSkB6I8|RG&aFOF97VHV0(6IHG_9LT&@|b-N&l1Fq?*xgdzOfO#61!2ww^ zd#7fudTyzz|4>o#g>8zf)Sta)R|8_mR`B<(9d10T1W23+%H21 zl<=l&7(aV9?E4c*@bUW6BUxT}eiLVfa^1W0T?rLD-!JK?(t@djQ6BS@OMt!G((Wak zVZHSnQ91GoWr4?XKwsyYMJ$*=*|3z3)6xG$fn^)to1o(z(yNWG(9FfsxpC%LTv3Jr zs>l#gkGGPY&u}8p8v^Yx4{tMCzMfs~Py!8(OjfmJ1qy5t5Sa(2{5F{pftiLl^dv*7cYTLyVt%7+B=X2K zQ{4viPr=Gf`VBY;;OICv1n^1~6YSD|Jp~^%d;C&5B--wT+sF#Jmp$R9^VAxDgw|$k zc57&+;MCUczy03)`{zC>=a%+ZY_JAo>>5##ESh*^Q*j{|tbZ2VBXnnPCXc`x@(3!Q zD%k4S<%CLt67wna3Dx8JiqvU(+u&1~WomwWQp|cV^*x)3$X2stPdSn2I`_@;Oh)gi zVDE5WXB=zC4APG6zD-ghhC`O}rnvOQ@dM7iQ{aHNkF{DKH9Bg-TPHzX?gQ z6A2#CO1oqk>fSgT)B9U)7x4=e2di}Y;2o0Tf>t93k9PhYqmB!Nk;q|*x6Dei1Mf!|ghu?dB1niiQIsnlr;Bk>gYJpK0EPWq<9@T~mH>Qg{? zdo_-M-s?`8d37{ErKAI|WVvqcETC`{4uJCc{%0(%}oBQd}H3b!u(dI>r zRfn(R%edjkbAIrAN7PzEzLX@7b!Nbrx+~puz-_tgdZKH5R@_hgEZ$A2V7Y}GuhTj8 z7t4W|TB2RfpzlyBz^}_3`5YUZ`+M2C;7mgi!O!z&P&=Rn+q9j%CJ1655OTHbq|Gr; zxVN3U0%WG+>YIK+NXCvzq7stEUhCl>I)9G|Fb5ir`9<}(qy~AfaiXw*48Rwf5-IqB zN-kcas^sPMV0571MYd=>PY-O5fZml*N#t$3APc=4er|`PNCO#Eb;S-WB?rmNKBjHv@Wz=>)lKti5f*aqNpxTLd z5&wuSivt`F!UP^XRAgNAZCOaK&r6f(@->gKmQy8km^R{hHkiHlQz1%lqRR`PSoEyv zX!#txW6c7?k9gWQh=?~$&w@jh{D|W>f%If?Z|a8TeK((R++1yVe?XILt!sLHw2{Aj z)QaABx$D3l%fj+k$V9VEScSbksZPRM#z$=bA#mQTq@7w9`{9XlC){CmP;rS-0 z;>^dLhT&~N^*-Lx0I6jNCvJ{?p81H*Q8z6;|AJJ# znO=ua*rp#>8KQUC6BN%|gL?7ANlo^cq(CJ06;heXio8lPX(FtuT;dwPZ$0=5rP32{ zwPWoU>AH5tb$^~)uk(Dv#_jr>7w+O2(ZE~IX@(c~@yEFZE)(bk8&k|&{MP3s9)G83 z$h2Gb$N0I9Flxd`*9pD`%T9TNFaFXm^~MmMOpOBBBWr2b781YYzje%n(6Q^k5bFFb zHE`{4*---eBcJ%bpS>NO(OZ+KUHn){Hh5 zrk%KhP<6ohe$U5~VBv9KOx1Sc?bD#J&_4}B?0=b{8=if=YrY`&(Tk}NxvK+KYguMH zzp4|@X(}MFn&v@Hzf?eQQYIHRQ6?bB@&`BWL(dPD!sKSki7}4=7SpF+-kn6QI8jy3 z8Hb}k=;)e2ID;c4ldSiDB5ZyJ@i>N^X@l12kkjS~M3f?fL+NK5YPex9O8YeR&O$`k zb$_}j>>1k53Vk$l@%p~iY9GCO{Prk1mgtmVm{YwS+ZYIMJM+akTo*%ZIuq7pWti_j zr?rr`*_M80wy9KcCd%LD>NB3Eq>G0v&bo;+J>o^e%@V8?i?#Jy%bvs2$D|Mbn{6-w zaiCgZa`?>MkLeCaDa@l2xyK|bh>Sn7QF&b%yU1+at6)3c$j2~Jf{aMLv?#-{dfDiW zhUQv2X@?hSgx&hTUudV_O?-+Yi<`5Q9P2kELTVcm*gcB55CiNn&@FrVOvaRVUZJj; zV-$W0nI&ngu|3X?E1P9sY)mNO`DvLI1)~AzSlY1~JFMXs-^GWLzgY5A2roWvtG}#x z1{RjJ->ctuEt&cr6Eyr#@SA9SO;=WQ7dDqooKBAPL|=dZIGkwcO9)h0x5SpOGW}*Icl}3;cJPU{ z5k0fA3RHwWpaeCC3aMs|i6J_^R8^aFb#i$tZ7?Hp`XXfNH;LAysEim7cWG^Z0p})h z^cOz_%X%Jbp%0GgEpg)+>SvAY>aFZ~pHJ-}I$+ek{g)bG#Jp9SEOqnA=0(Pvk_Djv zaZxGZ?F`eZ&)HyBq=6#R%Mc+U&-^hqnOl9QE9=_Tx$#+STw}9py0ZQ^IyEv?^~hBr z&^Ow%m1J&3u=<4eZN?_-TcyOTsc&WjQ;x=;cuJVbU#Fp-2=U)~El5Lc$d0E{>N-@N zNwdKfrnr)Q3OfkUQhy`T4)y$M#8%ejcHNs~y$U>*uTu9 zqj-xX4DO1`C#EyK8B)$s2s?XfRsEM+Dc#G=uYFZCp z-2JYMVxTsTfYd!`9!!x3*(gKrj`>Q)9<>?jnp#loG!^D?t_AV`%6W8lNNu`T^p43J z+Xs>@HZu8c|BS1y%+#TN#lTFK-YHOyVr|=PV6)SznBN=l(yPXWj1MPOuUbBx$qcr; z+elVV0D#ow0=@c)FdE}a75{tK9hf(f#$HdyKocTnWb=1_OEmb>7Hj5uN11!k#`RXW z>TCHjUZ1)LZ|V>~xit|Z=$VGq{djCj(CZRLHhVApylvre z!>#Sv0D4p6;sPO*&OG{gactphDF^^kP?b$f3gRBbh&DE>e7#WSYbAgx;sk7bd`T1u z@;P}|T9dz2@53DC4EYVeEZJqd?cEi;0{~zRqBQBxIN1px#IGQM@bCwj>tG!JQ0jEb zlcYUfE^_4k7ZXC!Rtl~60s(Agk@n#plB4(X{sPpMBN7$D?Qi-61{f}Lt!Qu|S=XB6 z$1+c(jnxe`&EwL4HWkuG+e62?j`}Ka95sI_HE+93i9-#FJmkq{6Q{vaeDYy$RlPUb~&p z=pEkvS`f6F9%jk=xxx@n0Yrgjb;Hm7y)~`*%!^9Y7gTaa4{p{aU}bX1b!@U#05zWy z)E`tOcntoIRJ;{_KGP9JwU=wD<9^T#ZGDGbK{)K+M9!ac`_fKM2+G#-#0t#qpR!EQ zL4b#n_&%>$&o`@3+IlKiJ1DuHA2S5>qpp^1hMLs((*+G~YSqgjEY!SjH}OPrB)fzX zWmbtHj=y&V8UfKunryoB(DKh?%BYUTX%CPW#o987jy-(zv{b7|)y6xjI(vg)M(RcK z!M~``{#Q^|Tw9YqsqHH;^3Y<9>RxF2z3T0-W_u?BGa2-EeMpKOuuMKlCgooO($(R| zS$v8?8ge#FadKC)Bb(pWm@7)I7ym9V%YXd6J3zB*HB_u@Nw1>u%rSjx=}MqkVwAF= z(>sxMw+ig=vbvz)+e;4|HHy{wEoz4k3r*S2g(-_qw?I}}Qe7*WbQU6SF6!aCuaL0z zFfal%>EoP!G{{C7{KPS9A08g!t%=WFvpKC^@_Q}j^vL>K#(Oily{GC_K-sZDAW$x6 z`*^3Us6AS0`BO~|!J`-S_i?#h6(CmJwc17!bc5+iRW^AS5lm8$GJ?vHnGBpRS~C6N zKGo=~44e+rLH`5*N$sB`OK+8Tm|XO24dFa!|8vT`nzR)FkoTU9zkFn={UH>RnXOVQ zlFk9&%X56({q#kVzso3i|1XTb(c}R+J^~!Gz*wXnN9^ZTzEI*pop!BoMZP>Lb@PCh zf|*0qe1!)NLyC}I?y686VsJT6odtMEsIdQFG9v7B^nikwQ0eQ|pX2iV6HV>4t^B!( z@FFCd4arUc1=-9TV_tfO_6y3sg|&CQ!K6{MttqH4;qxF>J*4!%&!ZVgJZ*z{u z%d8>axST(v>HHl3%hcCSykHk%>U>!fL?vGZRRal>9$YaFFBh838+sa1J>Ha?Bl>he z0q^f@MOrtQ$>qY(VBm`X-+L@h|GvkPf*bTbE(SA*uB*6@Z$_E3NzI)IzXeO*?!iEzi{vc?9X;4AD4@x3G4#J3M# zsX;(BbYGG^f017QuM0vbj;@`@-k$JzFLMZ|1lQo3TA8KW6N1~rg(wWlE9tB1UA~=) zSHwU*(H4GpJ{6^oMCdsA5@hdwpV`%fyJ~6P4IrDea%2JZQ*Xc9`o}wOv`l;72n-Q| zLjfXgL+*Ea4M8gnK*CH<&BI5-TtjUE4`4f*EAlQ=ypLX^3!KUCyam2&#EbSk(-XJK u-u!*(ZvUky*a5S1r)R>xCih@*^cpAp_7%mz)$BjFi1oGMTJJR+V*ejDgRBey literal 0 HcmV?d00001 diff --git a/static/favicon.png b/static/favicon.png deleted file mode 100644 index 825b9e65af7c104cfb07089bb28659393b4f2097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1571 zcmV+;2Hg3HP)Px)-AP12RCwC$UE6KzI1p6{F2N z1VK2vi|pOpn{~#djwYcWXTI_im_u^TJgMZ4JMOsSj!0ma>B?-(Hr@X&W@|R-$}W@Z zgj#$x=!~7LGqHW?IO8+*oE1MyDp!G=L0#^lUx?;!fXv@l^6SvTnf^ac{5OurzC#ZMYc20lI%HhX816AYVs1T3heS1*WaWH z%;x>)-J}YB5#CLzU@GBR6sXYrD>Vw(Fmt#|JP;+}<#6b63Ike{Fuo!?M{yEffez;| zp!PfsuaC)>h>-AdbnwN13g*1LowNjT5?+lFVd#9$!8Z9HA|$*6dQ8EHLu}U|obW6f z2%uGv?vr=KNq7YYa2Roj;|zooo<)lf=&2yxM@e`kM$CmCR#x>gI>I|*Ubr({5Y^rb zghxQU22N}F51}^yfDSt786oMTc!W&V;d?76)9KXX1 z+6Okem(d}YXmmOiZq$!IPk5t8nnS{%?+vDFz3BevmFNgpIod~R{>@#@5x9zJKEHLHv!gHeK~n)Ld!M8DB|Kfe%~123&Hz1Z(86nU7*G5chmyDe ziV7$pB7pJ=96hpxHv9rCR29%bLOXlKU<_13_M8x)6;P8E1Kz6G<&P?$P^%c!M5`2` zfY2zg;VK5~^>TJGQzc+33-n~gKt{{of8GzUkWmU110IgI0DLxRIM>0US|TsM=L|@F z0Bun8U!cRB7-2apz=y-7*UxOxz@Z0)@QM)9wSGki1AZ38ceG7Q72z5`i;i=J`ILzL z@iUO?SBBG-0cQuo+an4TsLy-g-x;8P4UVwk|D8{W@U1Zi z!M)+jqy@nQ$p?5tsHp-6J304Q={v-B>66$P0IDx&YT(`IcZ~bZfmn11#rXd7<5s}y zBi9eim&zQc0Dk|2>$bs0PnLmDfMP5lcXRY&cvJ=zKxI^f0%-d$tD!`LBf9^jMSYUA zI8U?CWdY@}cRq6{5~y+)#h1!*-HcGW@+gZ4B};0OnC~`xQOyH19z*TA!!BJ%9s0V3F?CAJ{hTd#*tf+ur-W9MOURF-@B77_-OshsY}6 zOXRY=5%C^*26z?l)1=$bz30!so5tfABdSYzO+H=CpV~aaUefmjvfZ3Ttu9W&W3Iu6 zROlh0MFA5h;my}8lB0tAV-Rvc2Zs_CCSJnx@d`**$idgy-iMob4dJWWw|21b4NB=LfsYp0Aeh{Ov)yztQi;eL4y5 zMi>8^SzKqk8~k?UiQK^^-5d8c%bV?$F8%X~czyiaKCI2=UH