From 606cc766f265d13bdd9a9fef098f911919f6d3e8 Mon Sep 17 00:00:00 2001 From: Andreas Reinhold / reini Date: Sun, 13 Sep 2026 12:38:49 +0200 Subject: [PATCH] Add the SealShare website for sealshare.nonameweb.ch website/ is hand-written HTML and CSS, uploaded as it is, like the MailifySMS site: SealShare as software a company installs for its own upload platform, how it works, features, a desktop/phone and light/dark gallery of the generated screenshots, a dated and sourced comparison with hosted transfer services and self-hosted tools, the Docker quick start, FAQ and a privacy page for Plausible. Colours come from the app's scheme, Google Sans Flex is served locally, nothing else loads from other hosts. The README shows three screenshots and no longer calls the encryption end-to-end. WebsiteTest guards missing files, other hosts, the screenshot set and the encryption wording. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01V9NnLxnPp8vaaurb3Z1MFy --- .ai/rules/website.md | 9 + CHANGELOG.md | 1 + README.md | 14 +- docs/plans/screenshots-and-website.md | 6 +- tests/Feature/WebsiteTest.php | 129 ++ website/css/device-frame.css | 115 ++ website/css/theme.css | 1357 ++++++++++++++++++++++ website/fonts/GoogleSansFlex-Latin.woff2 | Bin 0 -> 63300 bytes website/fonts/OFL.txt | 91 ++ website/img/favicon.svg | 7 + website/img/icon.png | Bin 0 -> 11291 bytes website/img/logo.svg | 6 + website/index.html | 712 ++++++++++++ website/privacy.html | 126 ++ 14 files changed, 2570 insertions(+), 3 deletions(-) create mode 100644 .ai/rules/website.md create mode 100644 tests/Feature/WebsiteTest.php create mode 100644 website/css/device-frame.css create mode 100644 website/css/theme.css create mode 100644 website/fonts/GoogleSansFlex-Latin.woff2 create mode 100644 website/fonts/OFL.txt create mode 100644 website/img/favicon.svg create mode 100644 website/img/icon.png create mode 100644 website/img/logo.svg create mode 100644 website/index.html create mode 100644 website/privacy.html diff --git a/.ai/rules/website.md b/.ai/rules/website.md new file mode 100644 index 0000000..6f091e5 --- /dev/null +++ b/.ai/rules/website.md @@ -0,0 +1,9 @@ +--- +paths: + - 'website/**' +--- + +# Website + +## website/ is the live site, uploaded by hand +website/ is a faithful copy of sealshare.nonameweb.ch (METANET hosting), hand-written HTML/CSS with no build step, uploaded wholesale when it changes. Colours in css/theme.css are copied from resources/css/material-scheme.json — copy them again whenever the scheme is regenerated. The comparison tables are dated and every competitor value has a source from the product's own site, docs or repo; an unsourced value is "—", never a guess. Never call SealShare's encryption end-to-end (it encrypts at rest on the server). Nothing may load from another host except plausible.io. tests/Feature/WebsiteTest.php guards all of this. diff --git a/CHANGELOG.md b/CHANGELOG.md index c779cbf..5796273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +- The README called SealShare's encryption end-to-end. Files are encrypted at rest on the server; the README now says so, and that a share password's key is never stored. - The admin dashboard passed its sort column and direction straight to the query, so a crafted Livewire request could order shares by any column or cause a server error. It now sorts only by the columns it shows and otherwise falls back to newest first. ## [1.2.0] - 2026-09-10 diff --git a/README.md b/README.md index ea022c0..0634a98 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,23 @@ A simple, self-hosted file sharing solution built with Laravel. Upload files, get a shareable link, done. All files are encrypted at rest with AES-256-GCM. +**Website:** [sealshare.nonameweb.ch](https://sealshare.nonameweb.ch) + +## Screenshots + +

+ Uploading files and folders with share options + A new share with its link and QR code button +

+

+ The recipient's download page on a phone +

+ ## Features - **File Uploading** — Drag & drop or browse to upload single/multiple files and folders with real-time progress - **Shareable Links** — Each upload generates a unique link for recipients, also as a QR code (saved as a PNG) or through the device's share sheet -- **End-to-End Encryption** — All files encrypted at rest using AES-256-GCM (chunked, streaming) +- **Encryption at Rest** — Files are encrypted on the server as they arrive, with AES-256-GCM (chunked, streaming); with a share password the key is derived from it and never stored. It is not end-to-end encryption: the server handles the files unencrypted while they are uploaded and downloaded - **Password Protection** — Optionally protect shares with a password - **Expiration** — Shares auto-expire after a configurable duration (1 hour to 30 days) - **Download Limits** — Set a maximum number of downloads per share diff --git a/docs/plans/screenshots-and-website.md b/docs/plans/screenshots-and-website.md index 53a0c8c..cf14238 100644 --- a/docs/plans/screenshots-and-website.md +++ b/docs/plans/screenshots-and-website.md @@ -234,8 +234,10 @@ advertises end-to-end encryption. ## Risks and open questions -- **Selecting files in the upload shot** relies on Livewire accepting `livewire-file:` references set - from the browser; if it does not, that shot shows the empty drop zone with options (step 4). +- **Selecting files in the upload shot** works: the files are stored with Livewire's own + `FileUploadConfiguration::storeTemporaryFile()` and handed to `_finishUpload` by their signed + names; Livewire's temporary-upload cleanup is turned off for the run, because under the frozen + clock it deletes them. - **Comparison accuracy and fairness.** Other products change; the tables are dated and sourced, and re-checked when the site is updated. Swiss unfair-competition law expects comparisons to be accurate and not misleading — values that cannot be sourced stay "—". diff --git a/tests/Feature/WebsiteTest.php b/tests/Feature/WebsiteTest.php new file mode 100644 index 0000000..cffe934 --- /dev/null +++ b/tests/Feature/WebsiteTest.php @@ -0,0 +1,129 @@ + + */ +function websitePages(): array +{ + return [ + 'index.html' => file_get_contents(base_path('website/index.html')), + 'privacy.html' => file_get_contents(base_path('website/privacy.html')), + ]; +} + +/** + * Every URL an HTML document refers to in `src`, `href`, `srcset` and the gallery's `data-*-src` and + * `data-*-srcset`, with each srcset entry on its own. + * + * @return list + */ +function websiteReferences(string $html): array +{ + preg_match_all('/\s(src|href|srcset|data-[a-z]+-src|data-[a-z]+-srcset)="([^"]*)"/', $html, $matches, PREG_SET_ORDER); + + return collect($matches) + ->flatMap(fn (array $match): array => str_ends_with($match[1], 'srcset') + ? array_map(fn (string $candidate): string => strtok(trim($candidate), ' '), explode(',', $match[2])) + : [$match[2]]) + ->map(fn (string $url): string => html_entity_decode($url)) + ->values() + ->all(); +} + +test('every file the pages, their stylesheets and the README refer to exists', function () { + $missing = []; + + foreach (websitePages() as $page => $html) { + foreach (websiteReferences($html) as $url) { + if (preg_match('/^(#|https?:|mailto:)/', $url) === 1) { + continue; + } + + if (! is_file(base_path('website/'.strtok($url, '#?')))) { + $missing[] = "{$page}: {$url}"; + } + } + } + + foreach (glob(base_path('website/css/*.css')) as $stylesheet) { + preg_match_all('/url\([\'"]?([^\'")]+)[\'"]?\)/', file_get_contents($stylesheet), $matches); + + foreach ($matches[1] as $url) { + if (! str_starts_with($url, 'data:') && ! is_file(dirname($stylesheet).'/'.strtok($url, '#?'))) { + $missing[] = basename($stylesheet).": {$url}"; + } + } + } + + foreach (websiteReferences(file_get_contents(base_path('README.md'))) as $url) { + if (str_starts_with($url, 'website/') && ! is_file(base_path($url))) { + $missing[] = "README.md: {$url}"; + } + } + + expect($missing)->toBe([]); +}); + +test('the screenshots are all there, for both themes and both widths', function () { + $expected = collect([ + 'desktop' => ['01-upload', '02-share-created', '03-qr-code', '04-download', '05-admin-dashboard', '06-admin-settings'], + 'phone' => ['01-upload', '02-password', '03-download', '04-qr-code'], + ])->flatMap(fn (array $names, string $device): array => collect(['light', 'dark']) + ->crossJoin($names, $device === 'desktop' ? [1600, 800] : [1080, 540]) + ->map(fn (array $shot): string => "{$device}/{$shot[0]}/{$shot[1]}-{$shot[2]}.webp") + ->all()) + ->sort()->values()->all(); + + $published = collect(glob(base_path('website/img/screenshots/*/*/*.webp'))) + ->map(fn (string $path): string => str($path)->after('website/img/screenshots/')->toString()) + ->sort()->values()->all(); + + expect($published)->toBe($expected); +}); + +test('the pages load nothing from another host but Plausible', function () { + foreach (websitePages() as $page => $html) { + preg_match_all('/<(?:script|img|source|link)\b[^>]*\s(?:src|srcset|href)="(https?:[^"]*)"/', $html, $matches); + + expect(collect($matches[1])->reject(fn (string $url): bool => str_starts_with($url, 'https://plausible.io/'))->all()) + ->toBe([], "{$page} loads from another host"); + } + + foreach (glob(base_path('website/css/*.css')) as $stylesheet) { + expect(file_get_contents($stylesheet))->not->toMatch('/(url\(\s*[\'"]?https?:|@import)/'); + } +}); + +test('the pages are titled, described and in English', function () { + foreach (websitePages() as $page => $html) { + expect($html) + ->toContain('toMatch('/[^<]+<\/title>/') + ->toMatch('/<meta name="description" content="[^"]+"/') + ->toContain('data-domain="sealshare.nonameweb.ch"'); + } +}); + +test('neither the site nor the README calls the encryption end-to-end', function () { + $index = websitePages()['index.html']; + + preg_match('/<section[^>]*id="features".*?<\/section>/s', $index, $features); + preg_match_all('/data-compare="sealshare-e2e">([^<]*)</', $index, $cells); + + expect($features[0])->not->toMatch('/end-to-end/i') + ->and($cells[1])->not->toBeEmpty()->each->toBe('No') + ->and(file_get_contents(base_path('README.md')))->not->toContain('End-to-End Encryption'); +}); + +test('nothing is left to fill in', function () { + foreach ([...websitePages(), 'theme.css' => file_get_contents(base_path('website/css/theme.css'))] as $file => $contents) { + expect(str_contains($contents, 'TODO'))->toBeFalse("{$file} still has a TODO"); + } +}); diff --git a/website/css/device-frame.css b/website/css/device-frame.css new file mode 100644 index 0000000..5e4758a --- /dev/null +++ b/website/css/device-frame.css @@ -0,0 +1,115 @@ +/* + * Device frames drawn around SealShare's screenshots: a laptop for the desktop captures + * (1512 × 982, a MacBook 14 viewport) and a phone for the phone captures (393 × 852, an iPhone 15 + * Pro viewport). The screen keeps the capture's aspect ratio, so the frame holds its shape while an + * image loads. The screenshots come from `composer screenshots` (tests/Screenshots/). + * + * <div class="device device--laptop"> + * <div class="device__screen"><picture>…<img …></picture></div> + * </div> + */ + +.device { + --bezel: #1b1530; + --bezel-edge: #3a3355; + --deck: #c9c2dd; + --deck-shadow: #8f88a8; + + position: relative; + width: 100%; +} + +@media (prefers-color-scheme: dark) { + .device { + --bezel: #05020f; + --bezel-edge: #2a2244; + --deck: #4b426a; + --deck-shadow: #231649; + } +} + +.device__screen { + position: relative; + overflow: hidden; + background: var(--surface-container-high, #e8deff); +} + +.device__screen img { + width: 100%; + height: 100%; + object-fit: cover; + object-position: top center; +} + +/* ---------------------------------------------------------------- laptop */ + +.device--laptop { + padding-bottom: 3.2%; + margin-inline: 4%; + width: auto; +} + +.device--laptop .device__lid { + position: relative; + padding: 2.4% 2.4% 3%; + border-radius: 3.2% 3.2% 0 0 / 4.8% 4.8% 0 0; + background: var(--bezel); + box-shadow: inset 0 0 0 1px var(--bezel-edge), 0 24px 48px -24px rgb(16 6 45 / 0.45); +} + +.device--laptop .device__screen { + aspect-ratio: 1512 / 982; + border-radius: 0.6%; +} + +/* The camera notch at the top of the lid. */ +.device--laptop .device__lid::before { + content: ''; + position: absolute; + top: 0.9%; + left: 50%; + width: 1%; + aspect-ratio: 1; + border-radius: 50%; + background: var(--bezel-edge); + translate: -50% 0; +} + +/* The deck: wider than the lid, with a thumb recess in the middle. */ +.device--laptop::after { + content: ''; + position: absolute; + left: -4%; + right: -4%; + bottom: 0; + height: 3.2%; + border-radius: 0 0 40% 40% / 0 0 100% 100%; + background: linear-gradient(var(--deck), var(--deck-shadow)); +} + +.device--laptop::before { + content: ''; + position: absolute; + left: 50%; + bottom: 1.8%; + z-index: 1; + width: 14%; + height: 1.4%; + border-radius: 0 0 12px 12px; + background: var(--deck-shadow); + translate: -50% 0; +} + +/* ---------------------------------------------------------------- phone */ + +.device--phone { + padding: 3.4%; + border-radius: 15% / 7%; + background: var(--bezel); + box-shadow: inset 0 0 0 2px var(--bezel-edge), 0 24px 48px -20px rgb(16 6 45 / 0.5); +} + +.device--phone .device__screen { + aspect-ratio: 393 / 852; + border-radius: 12.5% / 5.8%; +} diff --git a/website/css/theme.css b/website/css/theme.css new file mode 100644 index 0000000..6d5d1ce --- /dev/null +++ b/website/css/theme.css @@ -0,0 +1,1357 @@ +/* + * SealShare website theme. + * + * The colours are not an approximation of the app's: they are copied from + * resources/css/material-scheme.json, generated by `php artisan material:scheme "#4f46e5" + * --variant=vibrant` (Material 3, spec 2025, contrast 0). When the scheme is regenerated, copy the + * roles below again — the site does not read the file. Light is the default, dark follows the + * visitor's system setting; the site has no theme toggle of its own. + * + * Shared by index.html and privacy.html. + */ + +/* Google Sans Flex, the app's typeface, served from this site (SIL OFL 1.1, fonts/OFL.txt) — not + from Google, which would hand every visitor's IP address to Google. The same cut the app ships: + Latin and Latin Extended, weight 400–700. */ +@font-face { + font-family: 'Google Sans Flex'; + src: url('../fonts/GoogleSansFlex-Latin.woff2') format('woff2'); + font-weight: 400 700; + font-style: normal; + font-display: swap; +} + +:root { + color-scheme: light dark; + + --surface: #faf4ff; + --surface-container-lowest: #ffffff; + --surface-container-low: #f5eeff; + --surface-container: #ede4ff; + --surface-container-high: #e8deff; + --surface-container-highest: #e2d7ff; + --on-surface: #32294f; + --on-surface-variant: #5f557f; + --outline: #7b719c; + --outline-variant: #b2a6d5; + --inverse-surface: #10062d; + --inverse-on-surface: #a296c4; + --primary: #4a3fe2; + --on-primary: #f4f1ff; + --primary-container: #9795ff; + --on-primary-container: #14007e; + --secondary: #6249b2; + --secondary-container: #d8caff; + --on-secondary-container: #4e339c; + --tertiary-container: #fd8bca; + --on-tertiary-container: #610244; + --success: #006c45; + --error: #b41340; + + /* The code block reads as a terminal in both themes. */ + --code-surface: #10062d; + --code-ink: #eae1ff; + + --font: 'Google Sans Flex', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; + --mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; + + --corner-sm: 8px; + --corner-md: 12px; + --corner-lg: 16px; + --corner-xl: 28px; + --corner-xxl: 48px; + --corner-full: 999px; + + --shadow-1: 0 1px 2px rgb(0 0 0 / 0.3), 0 1px 3px 1px rgb(0 0 0 / 0.15); + --shadow-3: 0 4px 8px 3px rgb(0 0 0 / 0.15), 0 1px 3px rgb(0 0 0 / 0.3); + + --ease-spatial: cubic-bezier(0.38, 1.21, 0.22, 1); + --ease-effects: cubic-bezier(0.34, 0.8, 0.34, 1); + + --container: 1200px; + --gutter: clamp(16px, 4vw, 32px); +} + +@media (prefers-color-scheme: dark) { + :root { + --surface: #10062d; + --surface-container-lowest: #000000; + --surface-container-low: #160b36; + --surface-container: #1c113f; + --surface-container-high: #231649; + --surface-container-highest: #291c53; + --on-surface: #eae1ff; + --on-surface-variant: #b0a4d3; + --outline: #7a6f9b; + --outline-variant: #4b426a; + --inverse-surface: #fdf7ff; + --inverse-on-surface: #594f78; + --primary: #a7a5ff; + --on-primary: #1c00a0; + --primary-container: #9795ff; + --on-primary-container: #14007e; + --secondary: #a98ffd; + --secondary-container: #4d329b; + --on-secondary-container: #d6c9ff; + --tertiary-container: #fa88c8; + --on-tertiary-container: #5e0042; + --success: #69dca1; + --error: #ff6e84; + + --code-surface: #000000; + --code-ink: #eae1ff; + } +} + +/* ---------------------------------------------------------------- base */ + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; + scroll-padding-top: 88px; + -webkit-text-size-adjust: 100%; +} + +body { + margin: 0; + background: var(--surface); + color: var(--on-surface); + font-family: var(--font); + font-size: 16px; + line-height: 1.5; + letter-spacing: 0.01em; + -webkit-font-smoothing: antialiased; +} + +img, +svg { + display: block; + max-width: 100%; +} + +a { + color: var(--primary); + text-underline-offset: 3px; +} + +a:hover { + text-decoration-thickness: 2px; +} + +:focus-visible { + outline: 3px solid var(--primary); + outline-offset: 3px; + border-radius: var(--corner-sm); +} + +h1, +h2, +h3 { + margin: 0; + font-weight: 500; + letter-spacing: 0; + text-wrap: balance; +} + +p { + margin: 0; + text-wrap: pretty; +} + +code { + font-family: var(--mono); + font-size: 0.9em; +} + +.icon { + width: 24px; + height: 24px; + flex-shrink: 0; + fill: currentColor; +} + +[hidden] { + display: none !important; +} + +/* The icon and shape sprite at the top of each page: symbols only, nothing drawn. */ +.sprite { + position: absolute; + width: 0; + height: 0; + overflow: hidden; +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + white-space: nowrap; +} + +.skip-link { + position: absolute; + top: 8px; + left: 8px; + z-index: 100; + padding: 12px 20px; + border-radius: var(--corner-full); + background: var(--primary); + color: var(--on-primary); + font-weight: 500; + translate: 0 -200%; +} + +.skip-link:focus-visible { + translate: 0 0; +} + +.container { + width: 100%; + max-width: var(--container); + margin-inline: auto; + padding-inline: var(--gutter); +} + +/* ---------------------------------------------------------------- type */ + +.display { + font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem); + line-height: 1.06; + font-weight: 500; + letter-spacing: -0.02em; +} + +.headline { + font-size: clamp(1.75rem, 1.4rem + 1.4vw, 2.5rem); + line-height: 1.15; + letter-spacing: -0.01em; +} + +.title { + font-size: 1.375rem; + line-height: 1.27; +} + +.lede { + color: var(--on-surface-variant); + font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); + line-height: 1.5; +} + +.eyebrow { + display: inline-flex; + justify-self: start; + width: fit-content; + align-items: center; + gap: 8px; + padding: 6px 14px; + border-radius: var(--corner-full); + background: var(--secondary-container); + color: var(--on-secondary-container); + font-size: 0.875rem; + font-weight: 500; + letter-spacing: 0.02em; +} + +.eyebrow .icon { + width: 18px; + height: 18px; +} + +/* ---------------------------------------------------------------- buttons */ + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + min-height: 48px; + padding: 12px 24px; + border: 1px solid transparent; + border-radius: var(--corner-full); + font: inherit; + font-size: 1rem; + font-weight: 500; + line-height: 1.25; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + transition: border-radius 250ms var(--ease-spatial), background-color 150ms var(--ease-effects); +} + +.btn:hover { + text-decoration: none; +} + +.btn:active { + border-radius: var(--corner-md); +} + +.btn .icon { + width: 20px; + height: 20px; +} + +.btn--filled { + background: var(--primary); + color: var(--on-primary); +} + +.btn--filled:hover { + background: color-mix(in srgb, var(--primary) 88%, var(--on-primary)); +} + +.btn--tonal { + background: var(--secondary-container); + color: var(--on-secondary-container); +} + +.btn--tonal:hover { + background: color-mix(in srgb, var(--secondary-container) 88%, var(--on-secondary-container)); +} + +.btn--outlined { + border-color: var(--outline-variant); + color: var(--primary); +} + +.btn--outlined:hover { + background: color-mix(in srgb, var(--primary) 8%, transparent); +} + +.btn--lg { + min-height: 56px; + padding: 16px 28px; + font-size: 1.0625rem; +} + +/* ---------------------------------------------------------------- nav */ + +.nav { + position: sticky; + top: 0; + z-index: 50; + background: color-mix(in srgb, var(--surface) 86%, transparent); + backdrop-filter: blur(16px); + -webkit-backdrop-filter: blur(16px); + border-bottom: 1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent); +} + +.nav__bar { + display: flex; + align-items: center; + gap: 16px; + min-height: 72px; +} + +.brand { + display: inline-flex; + align-items: center; + gap: 10px; + color: var(--on-surface); + font-size: 1.375rem; + font-weight: 500; + text-decoration: none; +} + +.brand:hover { + text-decoration: none; +} + +.brand svg { + width: 32px; + height: 32px; + color: var(--primary); +} + +.nav__bar > nav { + margin-left: auto; +} + +.nav__links { + display: flex; + align-items: center; + gap: 4px; + margin: 0; + padding: 0; + list-style: none; +} + +.nav__links a { + display: inline-flex; + align-items: center; + min-height: 40px; + padding: 8px 14px; + border-radius: var(--corner-full); + color: var(--on-surface-variant); + font-size: 0.9375rem; + font-weight: 500; + text-decoration: none; +} + +.nav__links a:hover { + background: color-mix(in srgb, var(--on-surface) 8%, transparent); + color: var(--on-surface); +} + +.nav__links .btn { + margin-left: 8px; + color: var(--on-primary); +} + +.nav__links .btn:hover { + color: var(--on-primary); + background: color-mix(in srgb, var(--primary) 88%, var(--on-primary)); +} + +.nav__toggle { + display: none; + margin-left: auto; + width: 48px; + height: 48px; + align-items: center; + justify-content: center; + border: 0; + border-radius: var(--corner-full); + background: transparent; + color: var(--on-surface); + cursor: pointer; +} + +.nav__toggle:hover { + background: color-mix(in srgb, var(--on-surface) 8%, transparent); +} + +.nav__toggle .icon-close { + display: none; +} + +.nav__toggle[aria-expanded="true"] .icon-menu { + display: none; +} + +.nav__toggle[aria-expanded="true"] .icon-close { + display: block; +} + +@media (max-width: 960px) { + .nav__toggle { + display: inline-flex; + } + + .nav__links { + position: absolute; + top: 100%; + left: var(--gutter); + right: var(--gutter); + display: none; + flex-direction: column; + align-items: stretch; + gap: 2px; + margin: 8px 0 0; + padding: 8px; + border-radius: var(--corner-xl); + background: var(--surface-container); + box-shadow: var(--shadow-3); + } + + .nav__links.is-open { + display: flex; + } + + .nav__links a { + min-height: 48px; + padding: 12px 16px; + font-size: 1rem; + } + + .nav__bar > nav { + margin-left: 0; + } + + .nav__links .btn { + width: 100%; + margin: 8px 0 0; + } +} + +/* ---------------------------------------------------------------- hero */ + +.hero { + position: relative; + overflow: clip; + padding-block: clamp(40px, 7vw, 96px) clamp(56px, 8vw, 112px); +} + +.hero__grid { + display: grid; + grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); + align-items: center; + gap: clamp(32px, 5vw, 72px); +} + +.hero__copy { + display: grid; + gap: 24px; + justify-items: start; +} + +.hero__actions { + display: flex; + flex-wrap: wrap; + gap: 12px; + margin-top: 8px; +} + +.hero__facts { + display: flex; + flex-wrap: wrap; + gap: 8px 20px; + margin: 8px 0 0; + padding: 0; + list-style: none; + color: var(--on-surface-variant); + font-size: 0.9375rem; +} + +.hero__facts li { + display: inline-flex; + align-items: center; + gap: 6px; +} + +.hero__facts .icon { + width: 18px; + height: 18px; + color: var(--success); +} + +.hero__visual { + position: relative; + padding: 0 0 48px; +} + +.hero__visual .device--phone { + position: absolute; + right: -2%; + bottom: 0; + width: 25%; +} + +.hero__shape { + position: absolute; + z-index: -1; + fill: currentColor; + color: var(--secondary-container); + opacity: 0.7; +} + +.hero__shape--one { + top: -8%; + right: -6%; + width: 46%; + rotate: 12deg; +} + +.hero__shape--two { + bottom: -4%; + left: -10%; + width: 30%; + color: var(--tertiary-container); + opacity: 0.35; +} + +@media (max-width: 960px) { + .hero__grid { + grid-template-columns: 1fr; + } + + .hero__visual { + padding-bottom: 36px; + } +} + +/* ---------------------------------------------------------------- sections */ + +.section { + padding-block: clamp(56px, 8vw, 104px); + overflow-x: clip; +} + +.section--tint { + background: var(--surface-container-low); +} + +.section__head { + display: grid; + gap: 16px; + max-width: 760px; + margin-bottom: clamp(32px, 5vw, 56px); +} + +.section__head--center { + margin-inline: auto; + text-align: center; + justify-items: center; +} + +/* "Why run your own": a statement beside four reasons. */ +.why { + display: grid; + grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); + gap: clamp(32px, 5vw, 72px); + align-items: start; +} + +.why__statement { + position: sticky; + top: 104px; + display: grid; + gap: 20px; +} + +.reasons { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 16px; +} + +.reason { + display: grid; + gap: 12px; + align-content: start; + padding: 28px; + border-radius: var(--corner-xl); + background: var(--surface-container); +} + +.reason:nth-child(1) { + border-radius: var(--corner-xxl) var(--corner-xl) var(--corner-xl) var(--corner-xl); +} + +.reason:nth-child(4) { + border-radius: var(--corner-xl) var(--corner-xl) var(--corner-xxl) var(--corner-xl); +} + +.reason p { + color: var(--on-surface-variant); +} + +@media (max-width: 960px) { + .why { + grid-template-columns: 1fr; + } + + .why__statement { + position: static; + } +} + +@media (max-width: 600px) { + .reasons { + grid-template-columns: 1fr; + } +} + +/* An icon on an M3 Expressive shape. */ +.badge-icon { + position: relative; + display: grid; + place-items: center; + width: 56px; + height: 56px; + color: var(--on-primary-container); +} + +.badge-icon > svg:first-child { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + color: var(--primary-container); + fill: currentColor; +} + +.badge-icon .icon { + position: relative; + width: 26px; + height: 26px; +} + +.badge-icon--secondary { + color: var(--on-secondary-container); +} + +.badge-icon--secondary > svg:first-child { + color: var(--secondary-container); +} + +.badge-icon--tertiary { + color: var(--on-tertiary-container); +} + +.badge-icon--tertiary > svg:first-child { + color: var(--tertiary-container); +} + +/* How it works: three steps. */ +.steps { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 16px; + margin: 0; + padding: 0; + list-style: none; + counter-reset: step; +} + +.step { + position: relative; + display: grid; + gap: 14px; + align-content: start; + padding: 32px 28px 28px; + border-radius: var(--corner-xl); + background: var(--surface-container-lowest); + counter-increment: step; +} + +@media (prefers-color-scheme: dark) { + .step { + background: var(--surface-container); + } +} + +.step::before { + content: counter(step); + position: absolute; + top: 24px; + right: 28px; + color: var(--outline-variant); + font-size: 3rem; + font-weight: 500; + line-height: 1; +} + +.step p { + color: var(--on-surface-variant); +} + +@media (max-width: 840px) { + .steps { + grid-template-columns: 1fr; + } +} + +/* Features. */ +.features { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 16px; +} + +.feature { + display: grid; + grid-template-columns: auto 1fr; + gap: 4px 16px; + align-content: start; + padding: 24px; + border-radius: var(--corner-xl); + background: var(--surface-container-low); +} + +.section--tint .feature { + background: var(--surface-container); +} + +.feature .badge-icon { + grid-row: span 2; + width: 48px; + height: 48px; +} + +.feature .badge-icon .icon { + width: 22px; + height: 22px; +} + +.feature h3 { + align-self: end; + font-size: 1.0625rem; + line-height: 1.4; +} + +.feature p { + color: var(--on-surface-variant); + font-size: 0.9375rem; +} + +@media (max-width: 960px) { + .features { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (max-width: 600px) { + .features { + grid-template-columns: 1fr; + } +} + +/* ---------------------------------------------------------------- gallery */ + +.gallery__controls { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: 12px 16px; + margin-bottom: 40px; +} + +/* M3 segmented buttons. */ +.segmented { + display: inline-flex; + border: 1px solid var(--outline); + border-radius: var(--corner-full); +} + +.segmented button { + display: inline-flex; + align-items: center; + gap: 6px; + min-height: 40px; + padding: 8px 18px; + border: 0; + background: transparent; + color: var(--on-surface); + font: inherit; + font-size: 0.875rem; + font-weight: 500; + cursor: pointer; +} + +.segmented button + button { + border-left: 1px solid var(--outline); +} + +.segmented button:first-child { + border-radius: var(--corner-full) 0 0 var(--corner-full); +} + +.segmented button:last-child { + border-radius: 0 var(--corner-full) var(--corner-full) 0; +} + +.segmented button:hover { + background: color-mix(in srgb, var(--on-surface) 8%, transparent); +} + +.segmented button[aria-pressed="true"] { + background: var(--secondary-container); + color: var(--on-secondary-container); +} + +.segmented .icon { + display: none; + width: 18px; + height: 18px; +} + +.segmented button[aria-pressed="true"] .icon { + display: block; +} + +.gallery { + display: grid; + gap: 40px 32px; + margin: 0; + padding: 0; + list-style: none; +} + +.gallery--desktop { + grid-template-columns: repeat(2, minmax(0, 1fr)); + column-gap: clamp(40px, 6vw, 88px); +} + +.gallery--phone { + grid-template-columns: repeat(4, minmax(0, 1fr)); + max-width: 1040px; + margin-inline: auto; +} + +.gallery[hidden] { + display: none; +} + +.shot { + display: grid; + gap: 16px; + margin: 0; +} + +.shot figcaption { + display: grid; + gap: 2px; + text-align: center; +} + +.shot figcaption strong { + font-weight: 500; +} + +.shot figcaption span { + color: var(--on-surface-variant); + font-size: 0.9375rem; +} + +@media (max-width: 840px) { + .gallery--desktop { + grid-template-columns: 1fr; + } + + .gallery--phone { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 32px 20px; + } +} + +/* ---------------------------------------------------------------- compare */ + +.compare { + display: grid; + gap: 48px; +} + +.compare__block { + display: grid; + gap: 16px; +} + +.compare__block h3 { + font-size: 1.375rem; +} + +.compare__block > p { + color: var(--on-surface-variant); +} + +.table-scroll { + overflow-x: auto; + border: 1px solid var(--outline-variant); + border-radius: var(--corner-xl); + background: var(--surface-container-lowest); + -webkit-overflow-scrolling: touch; +} + +@media (prefers-color-scheme: dark) { + .table-scroll { + background: var(--surface-container-low); + } +} + +.table-scroll:focus-visible { + outline-offset: 2px; + border-radius: var(--corner-xl); +} + +.compare table { + width: 100%; + min-width: 860px; + border-collapse: separate; + border-spacing: 0; + font-size: 0.9375rem; +} + +.compare caption { + padding: 14px 20px; + border-bottom: 1px solid var(--outline-variant); + color: var(--on-surface-variant); + font-size: 0.875rem; + text-align: left; +} + +.compare th, +.compare td { + padding: 12px 16px; + border-bottom: 1px solid color-mix(in srgb, var(--outline-variant) 60%, transparent); + text-align: left; + vertical-align: top; +} + +.compare tbody tr:last-child > * { + border-bottom: 0; +} + +.compare thead th { + color: var(--on-surface); + font-weight: 500; + white-space: nowrap; +} + +.compare tbody th { + position: sticky; + left: 0; + z-index: 1; + min-width: 170px; + background: var(--surface-container-lowest); + color: var(--on-surface-variant); + font-weight: 500; +} + +@media (prefers-color-scheme: dark) { + .compare tbody th { + background: var(--surface-container-low); + } +} + +.compare thead th:first-child { + position: sticky; + left: 0; + z-index: 2; + background: inherit; +} + +.compare thead tr { + background: var(--surface-container-lowest); +} + +@media (prefers-color-scheme: dark) { + .compare thead tr { + background: var(--surface-container-low); + } +} + +/* SealShare's own column. */ +.compare .is-us { + background: color-mix(in srgb, var(--secondary-container) 55%, transparent); + color: var(--on-surface); +} + +.compare thead .is-us { + color: var(--on-secondary-container); +} + +.compare__sources { + display: grid; + gap: 6px; + margin: 0; + padding-left: 20px; + color: var(--on-surface-variant); + font-size: 0.875rem; + overflow-wrap: anywhere; +} + +.compare__note { + color: var(--on-surface-variant); + font-size: 0.875rem; +} + +/* The numbered notes under the tables read as one block. */ +.compare__notes { + display: grid; + gap: 8px; +} + +.compare__notes sup, +.compare td sup { + line-height: 0; +} + +/* ---------------------------------------------------------------- install */ + +.install { + display: grid; + grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); + gap: clamp(32px, 5vw, 64px); + align-items: start; +} + +.install__copy { + display: grid; + gap: 20px; + justify-items: start; +} + +.install__list { + display: grid; + gap: 12px; + margin: 0; + padding: 0; + list-style: none; +} + +.install__list li { + display: grid; + grid-template-columns: auto 1fr; + gap: 12px; + color: var(--on-surface-variant); +} + +.install__list .icon { + width: 22px; + height: 22px; + color: var(--primary); +} + +.code { + overflow: hidden; + border-radius: var(--corner-xl); + background: var(--code-surface); + color: var(--code-ink); + box-shadow: var(--shadow-1); +} + +.code__bar { + display: flex; + align-items: center; + gap: 8px; + padding: 14px 20px; + border-bottom: 1px solid rgb(255 255 255 / 0.1); + color: rgb(234 225 255 / 0.7); + font-size: 0.875rem; +} + +.code__bar .icon { + width: 18px; + height: 18px; +} + +.code pre { + margin: 0; + padding: 20px; + overflow-x: auto; + font-family: var(--mono); + font-size: 0.875rem; + line-height: 1.7; +} + +.code .comment { + color: rgb(234 225 255 / 0.55); +} + +@media (max-width: 960px) { + .install { + grid-template-columns: 1fr; + } +} + +/* ---------------------------------------------------------------- faq */ + +.faq { + display: grid; + gap: 8px; + max-width: 860px; + margin-inline: auto; +} + +.faq details { + border-radius: var(--corner-lg); + background: var(--surface-container); + transition: border-radius 250ms var(--ease-spatial); +} + +.faq details[open] { + border-radius: var(--corner-xl); +} + +.faq summary { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + min-height: 64px; + padding: 16px 24px; + border-radius: inherit; + font-size: 1.0625rem; + font-weight: 500; + cursor: pointer; + list-style: none; +} + +.faq summary::-webkit-details-marker { + display: none; +} + +.faq summary .icon { + color: var(--on-surface-variant); + transition: rotate 250ms var(--ease-spatial); +} + +.faq details[open] summary .icon { + rotate: 180deg; +} + +.faq__answer { + display: grid; + gap: 12px; + padding: 0 24px 24px; + color: var(--on-surface-variant); +} + +/* ---------------------------------------------------------------- contact */ + +.contact { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 24px; + padding: clamp(28px, 5vw, 48px); + border-radius: var(--corner-xxl); + background: var(--primary-container); + color: var(--on-primary-container); +} + +.contact > div { + display: grid; + gap: 10px; +} + +.contact p { + opacity: 0.9; +} + +.contact a:not(.btn) { + display: inline-flex; + align-items: center; + gap: 8px; + color: inherit; + font-weight: 500; +} + +.contact .btn--filled { + background: var(--on-primary-container); + color: var(--primary-container); +} + +.contact .btn--filled:hover { + background: color-mix(in srgb, var(--on-primary-container) 88%, var(--primary-container)); +} + +/* ---------------------------------------------------------------- footer */ + +.footer { + padding-block: 56px 40px; + background: var(--surface-container-low); + color: var(--on-surface-variant); + font-size: 0.9375rem; +} + +.footer__grid { + display: grid; + grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); + gap: 32px; +} + +.footer__blurb { + max-width: 380px; + margin-top: 12px; +} + +.footer h2 { + margin-bottom: 12px; + color: var(--on-surface); + font-size: 1rem; +} + +.footer ul { + display: grid; + gap: 8px; + margin: 0; + padding: 0; + list-style: none; +} + +.footer a { + color: var(--on-surface-variant); + text-decoration: none; +} + +.footer a:hover { + color: var(--on-surface); + text-decoration: underline; +} + +.footer__bottom { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + gap: 8px 24px; + margin-top: 40px; + padding-top: 24px; + border-top: 1px solid var(--outline-variant); + font-size: 0.875rem; +} + +@media (max-width: 720px) { + .footer__grid { + grid-template-columns: 1fr 1fr; + } + + .footer__grid > :first-child { + grid-column: 1 / -1; + } +} + +/* ---------------------------------------------------------------- legal page */ + +.legal { + padding-block: clamp(40px, 6vw, 80px); +} + +.legal article { + display: grid; + gap: 16px; + max-width: 760px; + margin-inline: auto; +} + +.legal h1 { + margin-bottom: 4px; +} + +.legal h2 { + margin-top: 24px; + font-size: 1.375rem; +} + +.legal p, +.legal li { + color: var(--on-surface-variant); +} + +.legal ul { + display: grid; + gap: 8px; + margin: 0; + padding-left: 22px; +} + +.legal .meta { + color: var(--on-surface-variant); + font-size: 0.9375rem; +} + +/* ---------------------------------------------------------------- motion */ + +@media (prefers-reduced-motion: reduce) { + html { + scroll-behavior: auto; + } + + *, + *::before, + *::after { + transition-duration: 0.01ms !important; + animation-duration: 0.01ms !important; + } +} diff --git a/website/fonts/GoogleSansFlex-Latin.woff2 b/website/fonts/GoogleSansFlex-Latin.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7cda8162d3747c5516ca9d2a542e55e898c884ab GIT binary patch literal 63300 zcmZ6vQ;;r9uqE2IZQHhOTf1%B-Cx_gZQHhO+uCj0n1AM+mwWReGa{>^qE=+aN_Z$r zumAxA{U@(tK<NJ&P@#1opqFVNFkq?w>;3-=wi-^j8*cc#GhU&spp=HNN;H(9{C~y@ z!cb6EO;`<}1r!O!=!gsj1K3mptS~YKT~PsZfRKSEz`;gH0f7;LN3cK=!9nT*xLm?o zO%a)AS~{;{?5?Xo?|h*#92J_&cnencLN0h!m|N|HFK1v9m)BoI?tg!O%P7&YtBNf* z;X?-SM8$r8X5%F%y|M|inWl8ua1KQ#AnC%WbZJ{Jeu{nj=;?%)!QKhFAw_UiuBl-w z+OiW)E%;o*ZWnvgI=Vz%_)&V?hlZqAlQna^Vfl0TqIqNzhH?^z$mMUEL*8N$_K2<L zQS|OQ;l|jR5P4(W>0<Yw?VGtri%+&vN%0Awbqekz^GT%{!kHK?o@M;B&sg(uonokt z#TzJ>6HYgh<=*>QCf+PzpcF7AeO1Y1n4>@j1qTxN{>+Lm3&{TZo(J2FC=ML6EARi_ zsh7GYMe^oAe!Ut~a{fq#NzEi5AmQ+f0^ByTY5W>~Qu<jHo4;20eAi}rt}atRAaBV; z$wZ5-Cmo@32#}8=YG@!@3K-7}1lC<CL>;vI9O?=gSnDSO)+Zdk*{hQ42G0#r0S#06 zV$BVQ#kH^D4!XY<<%=Vg1&jI4hG)s~Xs{{uYwhpPm4g1f&PCy;r>mczxLf53$I9$9 z!^|Y=V!)s6s13|a)UU6v*gXlj{GepuDRhc(g)w~0Fg>8rT5x-<-sa{_JC%Ijy%M<! z0jsfBeabv$t_6WaK|~~f*9i(MR_AZ%;-TQsc!BouP-I9mHvKRB36Kzh2HBhF45VTI zNwV$q<z(!{>N%rR?UEQY-xVCDk9)|A_H~V9;@of_5<0X=;)XwjLIBXjfW@KBn8Hr} zSbQKdCrV@B_5#^OuRHGZVh^#I(H$(WF}qj<*-bNHIz`y6h?{k38`)mio1m3rVX;FL zy8OZe&lFe;V^V?30DJX|G=ON7xBXxyCOlMI(81<CZuIs2?6fcnhWWysPxW5W5{iDv z7(t1PAXB46g^(0Pph2ezGoVby|96CzK;m2*q6#fODBfMCBqsCUtpp`8hC{yz;!}P& zl5pWLB2g&O@k8Li?~~sFA!d{^+PV$H;84rD7)!co5Ktx@*oKJKK8}mhDc^&`j`F?^ z%QwQ>2S1{X%W}3Y8g+6b39X)^0GHGcC&MC#F;GukhM`F5MmSUv#Cl<J#i*Ajy<TLM z{GR9Q`)>R1xsF$gka>}ITpf;4B$JRpHelowGjJ=C84P69;m%}=VwEm<SS=hxZELuZ zKzJ=PWZt>shHBWToW8wYjrxZG7m($+r}a~U;j5~pqV115nv~M6MQ8x?cOlDz*>!W- z<8E5mK?O}rASCX4;o#7}-(?=nMOF%{Qn&gVSgsh}2t!6tzh@u7z+v9+-fe)(^``*N zh>Yp{NS3F21z-_MTsD7s4j3>4zmRo6{DSy5>xEGm1u78<3OGocS|=Zkrn8lm8~M}R zBKi3!>#bwDQ{DFZB1&r<Dd$BnD>hS)k@8dc3u)8K!|w#rRplMFB({FT@O(oZsFj;= zyN}<&FBv(~I1pNDBk(1q9tIr_t%%89Q0A6&#v%+cpu<BOxbA)|mN^h)veb|`H2Rw$ zS-<zUSga`|s}i9t-mVllctAY_MR72QeC;RHoHP&4h=_OdL}ZHA>L|1jN1UzT72zj{ zW?O6@eu@=HDDd1cH6HKu*Gu6A%+V4xTV6IOzj&$d=ai*{wkOF!GfPiivIW!}_yzkp zZ5B6=F0GfL#LTn8S!sWO2}LYO3kfcW?Khx8r>`bjMH*bHQCY=CEq;jDdm3Bl0!VH< z3h8>OXcg?)(|PxJkT#zH22mUh7EL^`7)%5K>>MaQ5waK+Hs4$*-Z}b;Y~kh{Nfnrl zKHe2byh1)IQ=s_h1zT~}S@F&@aT8TUr{rzOn)9^I-6`eJp7)ed<M(Ujg0YpDK_fE! z_m7VB>Dtbnde8ZDK6i9bQ$81UPoMNNURO>_Rs#L0^W=D`?O0H-FGQx$=Uu6F3s^&Q zi)(TVaaf_#E|N%}&x+Z>_W++U2vM*w2G%~g-6U}|0(QX9Z~6cbnJ^Etw9Vv0EeBZ* z=kWToM~9`$g5HuL5XN>*xjf|`xNG&Tr!|f>w3!i*yI-rmtK3&1roIQeXo3PO*bFO^ zAm4wni8VR5r;Xx5k1^7D<XnezB*ws!YC5P!Xkyi}wE@2Pe1dyl(;Xo4ZA#%pAs5J% zI3bR)Orz`+>4pTvo~iUrEuUk1S!;IT0iQk10rqGm5@KT8MkKlG4^)00@AI)@SRqF( z&xri4CylJQP!NL<K>$M{EGP&NfFaYB-%^e4lW!f-G#PCsp%^#_GYInpF;WCFlo)v7 ze*(hn;c;<dV#m)KAz9Xw>dDdB9KQFgg8{D{kdQ!(Lqbea5LZNe*b?yj{D)r%XdWn@ ziRksJhXE<hs|J5x?;nId))+WYKMQn5&k_|HP!I?(Qxpi$`4$xxQ2ZYdNra#X*m!&- zgTT81Wi?KaAS{-kbS6N&ToC!+epQqZw1L&YeQSBgHc~nl^0!VLtz&b;mMs932goH9 zkq&f(GAK$lu$4OyIkagf<aiQfMKh#I5rp%)kyMS&IQDbAL~OkIOgzI5QVzkm`dYp) z^;sOAt0GWrg(&K7X!0kjB9TLP=+`Bx=_ni;6tR%7Fq+W7I2w$GuNG7$BCIkA)yHM{ zq0U<VTa(}c^9mYY?h6{hlKc>Ky7NDJwN|h(Q{IzwgQ2k4tQUGXWLyYX4PPYPtT`}| z{-!!IC}73!^8QfLcqQh84NUYf7Lbk&01TfOSbTfIV3uEbzh5GnZCoA+6iggIjc?^} zys3$6;b5?IAv|8H>LxsXfs)9w>hC|_XN>HTB?KnJi?P0#{d)^l{?I^iFh}A$+5KCh zm#~6BQm@a8x6%vXsqJ?dB-ugM-fmD|oq5LJ@}4ROOHWfafn2H5#SB}9KUArcVxiTm z7w}Q$T5*^%$1*J%ZMZY3|GWjlp-_d3Asf`<OP1c-e0oZ-TQwZmh{s?H$!IG}+cxos znr+9PzldV|Wm{IqaHrkugN~z81Pq0ONGaf7IUwQzf#1(_XlE@0j)V1qR%!0P$;1LS zhmQm!lVg1@fH+}6gyZc1M#86`uR2V^GhrD8XMSj`Z@7d<*1qjLA{l=bWr%KMsQfWi zy07)i12#t&7<ruzsEU(*y<fPV{WiW^Hvm~ZSG_}*Sq0<|Zw`{=z_7VOKGP9Z{5r#j zrDK?sZ3g}R=4zDP&^V=k;LY$n^A`QtQ(p~aKlZ5*Aru=F@b?+7>Ce5QA&~y|=kD~M zTnIE(4Iuiqq#j>R?&KowgRBuv<vDNzX^id(QAgmmJG!l{y=bf%!j>SX7Gwo7R9rh$ zGyv^t54&E0RJpJ*uD-yv?wv!DnbT>>^N-*fpK(5Iwz&Z}?i<Ee79=MaA#c#fyfyrl z0Ca=%;n`Jgc)-Z=c9DIm?qREGWNfTRjY#?+bZCqvP#=!fu*s+a%D+o0PH+C%mJfi1 zfTK--T%LXxvc`QVhO{^YOtw@5MukgA*xyQH){G*Z$_A%4C)l1L!nFVsjzJgI;)kSR zuUo7A5?_kGc=GPtH?p?@kx0keIK&2i_D!k+@+UhGJ4lV{tzk3|ahj_JoaK_^Tof&6 zG#Ph!ycvK89#<od=3tZ-U5J3viLh0to%-4YYo_NcPL3UtMQiN2z?ymF$;JeI^C@90 z=7vSz2m+6Bh1yuP>mYQM*?6Nw+~aE3k(cz1_X2R8=Z=xXXPuh#bHkX<*FVA<1D~21 z&AsL<aUcN{rojSIG*Y)P?-SR8jF#N_YsoZ`z7B?PBaROgviUqJNKo$MBX0(J7A*~J z`(#w>_8_J<+Nf)Vl;ifTADHc`Qj%9*wT6U?%BOr*b?mAFoqyjtMd2+gwk+~(e3eBS zs%|Sc(wG-d%>W2KoBBO|2MY56hcJHIC8nIhHRb}@>{;Skc-zjT6U3GfTpc8xtVd+K z`T0^t!=(l2nL*q`_#LX&w(E%(zJAGT<ZMpguZ0gxo8JcnOCj!3v)g0bpg5jKU#dL< z>w3_1WGFRl@KP8_B4tau2udVrU2JbN3FQ)zA_v|7#t8h$e7Up{21o`)BD6^IEi@n? z({Y=S$cl{jG=JcOp4%zXr8O_Hy%RsC1_e%daCHqp#UQd28V>9swAi8u-=1NKe&zg` zgY2aBIB%j#t7AJKK#451o1Qu)I^qAm!hF)fnJSekXOQkwr}_?B-UuUy9w$^duZ5&Y z#4s#bk>E}(QnIj@n!FP4K~`dW;OGTXAVue;t3rcGimJ-`Xfmy55@|Ydgjx%k>i3wv z<2Bnt9>>RE@C~PhUXlJ(3M`ek#<%M7C$?pNTyr{Iz~(o(B!3nWB`O&OT`{0~HSJaB zLWFUR#uXoTGXx>JrK_YtQOBUm%rJJ@O<fe4J*G<#>ksMU@6WOI4N9GjKI2ml!Icl_ zbeumT2;omW*u~+^8?j@@v(Y${rKKX*L0jt&<9Gb#z}>9HUce@@KCfe|wv<#rvIb)_ zt)iZxrvQ92>~-^`fap*i0^^|9`lStlf)AMPt=lO(aYXM6=TQDcg@LRw%u4SGG?pV6 z3=Kcq#~EDX<3v;44s-rW#pMi(y{k#ry<Z>j(5Y)#+fpB&<ug)L>XQEwl+I3SRM<<v z0ZsYXxvJXh+FI0QXi7<OEoY%?k=_U+VNKU&^S^7vv9EBtdR@N@#88{Uu{K>^sLz$Z z0xokG&z;u7neKkac`qFeFRW*+m0cO^IB!Gu$0w;4muj8|&p&IOZQu}JGy=F|QXez7 zMMFnU(<^m<1Cu0<l+rpna~fJH8k*ScbN!x%vcyWdYK9nUc!DqgT{keV^iseVa67j# zo$zv$(H=>%HTPLp=9{P4Bz-k6SL{!$xE1U=ceDI)pf^0&D6;v}Z6>e3Swj$-hfl2Q zcX*$D0p0mAg*cev_KD4z%hu^F&D1+-3o?J*UbFLpwl?MBI7QKmUT<r)$6c7jTCq7Y zppC;*p<Vt^cJ8KRt=nU#tKQW_QZ!RqkYj#u*n(!Y{PW!bQ#G>Ke)#5kCl0MX@O;6O z_;*9|`$$%jGmf9@=bY_;?2_7f=4skT4O3%-zD%$+2{AZ3f!}U05vlV6m|I-));zWs z{jr)oS(P&pzDvC=rHdV>OQ5&AX+0WUzqEVsQn7c{Z^=rgf*X{Wo0Rf_g1>)g$OOQ7 ze?r!)y~#wmx=6_xofyeqmd5EpP5{ft*FDN>?ws_3;R7WT`pfpW<cp@n2?NIZsa9QW zX|X=Bvffcryk@uMf+A0l#;IB&z#_ZZOSp04FNZN^*gBTscoinjiR}yuDnzQyp*MFk zN#1~?mq*U5voH1V_LO+u-AJxeId(Qk7U*6>!4O{1c>?n#xPGT|vYiCu*;CmfoHYb{ zFpu6MoH-oFjejRD3P!mt6LpV<TgzbK`O=@3UOiO^JC?tBMr{|Z?Ok!BDl>Uw*&p6# zSYOoZc3@`}t!8|`*RTPyae9Aq6h$Ix0k_au#Kio?>-wkDOT_vR*dr5f3F`-n<YdKZ zAvphR62+oy6QH@l$<f{1F%q=?b7MMQjIWRw`qNBUw!>$lpe!aWP|<}@kR`G4Ubzf_ zVw)bJC95s>!Pyf4ZbX$GQz=-+$Em3*%IipV6c+;d9?~%eh5uFLLE7czVy)byj{c|y zb=x1JmMAG({3Z5(hlV~Eu{|^*369AQN{r$;#Wo1O2nlf|e%Ur@m{1`9-^XP8u=bc) z{-1D|JO~6HwGY`|Qikhr85YVdFgb!^+p$7d;2(+_lu=id7vXd-Mopgr`K8e9kP_>q zc+p#`_bSW=Q|Mc-c-{WvTH2tTGz!5JV*w84G_g%LW}#)#6Avt`22uU5m!e{8wVqIy z6m25%1W6DpRkA8+vIAzL1;pt?n03;*bN>(3Rj|ox>@=>R`hiNu<#4gPo^(G<<0zY0 z8?UKNPhS>diHpLsZbw{8>C>uV)3b-+L_3XU85T-YWHkz^@4;-OYb-GjO=lk4F`w$2 z<DR73<i69tFs%dyxc9JP=$PKSN5(7;)F<nhuQ@jyerT-FDgvziXc<KywkQe;_?_cv z6?;L-a@=O$JL5Glsq}kgSE8dCI{0FbX68jzAr&bTG`$0{CrM~qX(-#EWXtu5lq%0? zs?fq{@Bm^3xGn;r;B*B4gDxp|Y8U%c6iW`H3-90oOe8@|#VS+I-qhHdW9E_UrnC#V z$lskNG{iL^JpUZ+J|MlHFGc1EFD1m3T7?w;>ULCmWzkHokx#xyl#s)$BBYbWg$8!R z*<VkbOIFa#FE!;Q0jah<P3BUBt29%s1o^a0C-85>HJOxKXZg)^r_g!kS%ra~>%_6u z5yFVa3*`W4lVJ4F6`^_)Dmwn2plGYAV|ESpD;w^b1b_tuk0JNy%>C*B&V=ca@x+t3 zZt1_&t7|5CJTQW=EM~}<mKfb}J&-u->Wk|~lyT4OzIr76{}ivpaWopc#m8ZfqQ&~D zcozNtQ2$TuQ_G}qq2pv>X195CI#=k42a=~OiI-c{``A?_lN_vrhMQ$$O`sFMNZ6Uq z3YN2vgli=2fhPD5adE}i2)Ckc^Let~jQ~4yvWDHJRrXrL5p8!aiS$Racw+j^5(X%y zzOxsO^mMux)ANQ9@VI3Emb=tBBU>O%RlnK+6d6n`_&pd&q+G$`nGO#eMfA-7gn}ex zB34drX8M&e>byju{h0%4i^^J1N8V?}9A)tvOE|}@HKJvOW9zzpiJ>n7_17MxZ#gUN zOiWjrL_2Ev(rOYHw2R%`OKNYNh_o!fxNvu_xr38Iwl({kMz}|^lHK5U<w(N1(R@;5 zN}}tLhrqRW(`H$H2igsohu>TO{{@8zlF7{vwqtzrWIdy1QuPyDh1YaMec~VD`bOWH z@O*&X*Vn&b9=H#}y6$Dal*Ryc+knod6`~ceSXlcyRy|;iI3Qu0)f<`IE`JwZ7ptU> zoPae3zsz0UOty#a=bQTp)C{R|eSab29{J?r*#DC1)nm<MSSn4pHDxW`5Dq4*QBA22 z;swtNHe6pm|IwXZr^Tww$^YVw?F6Rxp*gnf<$J&Rh99j}Vk=g*PvFXJEz`Rsn=00X zBcOATES2i--TLwm<ve%4#UJ1284uQ_EBSgD=Nn^zU+i@=Fz-T}_70FR*)F~WVF?9c zY4Myo71E_J3bJBYVoJ9E_4xr`Cuoiw*zlmzTy#5!)m6xv#wVyMsVJXT?X6pb{YPMf z+?ryX^ZCNT5b!u`mJtv!cSYo(A#ALZT(jx-X}F@OmOU)uRUFrBvzJ;{psqPgL>a{! z)t9Bf=x)e64aOrhebtMzRT-|fwpS_qsTnQ$(c#4Z!-pS!^{*=W2$qWfk+xrE^JeJk zjW<Nj^oLMgO3Qz11yhkPLFNBGKn|$io=Ec7kd}nN7H_q}h_vPIgL%OQY@heg$cmpt zY~I{9{U(znwphi-Gl=mj6H^HOFSu_Uu7KieWp0OKKdUNSxOZSJf=F2S^&8t3+j>K0 zR=ZNWpR#9;Gz;fl1spQ@%wY|2`Ts@F*nH_+VO;l>Dk9>2W~#V@q^sxkfKH_r5?-fO z!E#KahSGl2NL#6|TIAjrOJLOX(dCBuy8YUp?u1GqpYgMT{g`;t-c}18FCr#FAs<G^ z{Xms8NNEJgzzw{iIOY=(rtUDQe*`Zj^@ya5N`4#s9Y=B4AR{F;w;y%<zVb-)45WY4 z2MphSc7K{0^UAu=V3)a)!ApQx!T*yw%Dj1R!7=}$lNDZv?Lm?L?;q<z7^~x50gs5S z-R0^_=hn!-hD0h3M+AYtf8ZKpG_LOip#H1O2ovQCVdZuFJ_M6O=m&h&zhfV-Wg>rk z5Rm^M`gGq2i-#4cXSw5?vfgjcYJb9+Z(D9=wuY{b&*uKEIQI8(eI8yLJsvj3H!gIp zc@q5gb_%J)EHHM6#2?d-Mb#bBV57Kby{27$4xp;EQ%WN@Zl7mEqdLc!w-M_Ih%x@v zjHvo=w*0;u%*&7F`r6DzgyulokU3B2y>(&2LikIlNVGyr5uixS;G@4mu4?(@hsOX_ zlTbsU<2-EpQr`liqp<=VJ%6($P;vfGdm{IXQBt9{TgqAbEo>ThtlO^@(d1q=DL&b{ zO<t4K>H6hl-h`hVy348%N`oal<$C_s9VZEBUgAk8gKF4}C*>cvQPvMjzRzNaQrjPp zA_pf079O?UN}XrEFdg@W`*#)XI+>erGBfXy5Q58xoOYv!rbZJ8^PWD>mfjDo&{YXk zO1>L#b%ozG&!KqOT1fk0BKWU2R#5|QytGQL8@er){b)3xl$=jVw(&U_Hb?>-mzu)4 zSD#{!k|;jf0ZsEeAcS!n#e%*mpc6H!!oIXn7GQ@c_gJbxw1lBz=yvR6+lbzL?|^!B zX+B-gc=r##85-MhLpYkfV2ea^Y}ofa>v;38$W4{do7){*qcaEXC*=9Go+QG%Xf?@0 zx5&o62=ELSx_D*v;1Aam*MC;%Ha4269k>VMzqLAyM3Cj*g=GoV>X5~zP2CIa4DM^~ z8mG(#pT_WN=V%-s@j~|-kI(8zg-~Kdt&lP52<t~YJ=|6yi|7V?g)Sg|$~t$Rg@UQ@ z+)Rkt3O()pDr<Dn$6&^S7A9KV%+z7RP?AZV5mF5JYUa*)O+c`3Pw1O!^d-xV*3Evu z;Nm9N7W+;Xv(BAlAF@b5be-tX7a><Dy|net#C1)dw4?LU66x8&dTvGsBU1i^3=|t9 zqIl6j^Yq!VTL<3fX5jjR`kDyDgPUGU=)y`|ZYel4P9}q)Odjh(t)Jo_&J@Koy0W{t z8F0RZ4j`MYW_G9k92=zFt5=~A)kKFMX;|f^45>>EM35#nTGN9Olhm(+4)?~Hv3KjN zf$*rKi5ixxH}J0|1~wZ?2Q&2#R?~MSx)zkmZi>OI22bChExd3+#f=H+f>z!9=|(3e zxNJk+R>xT^$J62;P{SIt@Qloos0SbD5DXY!eZXYiF4}41p*j#i<f5@9tWk3CH}Xw> z7{X@4Np-EvR6^&~om`!nrQ^cP$HXo;e{heR3KR&Eqx3aVPT8tlj%zdfR+Q@YSR3Fq z=%o_-+gT_!Gm{xKO7I`;;|TI_IJyhfAhQ*mMh*R3)<m}lG!%{M<=`(a5=x(t3bt{g zf$xv(B2_$`l?>5z4^j3lH->Lm{}$jA#BjS`?m@<%$wMZvlEQd8YP*>GwdVRC;iDU{ z^mt=x9+&|+K`g~QHdZzAvROsiAqA?xuyP_n)hRbX<4MD#bPZP~<gW$BM*{-<E}D5k zq*pFyJN|{Z(Xo(V=f-yN|GZiaSZ~svUsQ2}A!zBK_FLItV&+!@sgb`?gZe{qe;F_Z z@?IkGE>fF{z(ZnxA<(=5qkv2&`?irn%n8#_M8>5bB@NE{#S=RTym3Oe(;XSNiJE-| zoG5>f3#Iy76^u$pzLyqEBE6&^PU4CLH~P?kQFDEHahe$=YL;kyA)5TAQGB<4`?h`s zAP?U{BpXJyjnDn6!;_ld9ioinTf&7S{&<*Hq07k>5?@AtkoO2t-J>FL0n9}&Q+EW* zdD<;jcBDGtUMZ@X-KUc~oweMY`?`LVEvsT4`}}>fxg;R%@kYoNvbr2iOE)!}J3{nT zF;+W~)miyI<1*?73VhRJs>^e5u!g}ZmUsnp&m>yxEV6D3k!}cROMGV{ycaV=)6P&| zNQ9Y}`jLTSUqsa$h575h@8-r2*RldEaH_d|ncVWq$HyD!%n!HzMfDWlApJg#PDnS! zF)URa<4}-8>saqv|JEi|jwNt&WKte}-d6?DA=!#BQ?QGAZ~+GzHEI!hSjF+3n|*!l z$6@Zqc+hX|7l!4x(iy^={RMe05Z#wa!fCLK!bWkt0ia6~^wV&&Fy<NE+d_oDF073= zGkQB4f8MN>OlSGAme?^M(tTHDDrsU+u^<OIBQiYJb;rv@WZ8tEn&K?#-REXH3AIxt z@|oY&bG#H5g#{^(6Bn(%Xp2j0l<y_DzZW=ZV5lj9K$9&ZxnmRN-Dq)41)HaEnwEp= zFA?vUw8384p21lQ#3vm;qL+!TxqF$!lZ%-&aquf#6GK{I(AOV$7D!KR7Em)~Q|A!h zai`r^vLw#1B&{MXkhiDrBOcGO!QUUS$i^7MPsTY_(4m}Llqe@E5k3AQZe|*Z^hR<_ zyr&9W>v1QKf<!J`6i%?Z_2>vDzTwg@p+|i(hoVGva@iZ#UP(3UVKIX%I|Bm6^daMY zYCe6bam&>C{QI&W=^NL)Nj0Gio{G&%`bAKcRj)~BUdXi<#=JaSlz!CO{-W_moZ$Kz zW%?`RX&iqd-k;nCAiA0S8!g*04mt}6gfwsWIA3$h9CD}CWpZyt?u3)kq9VY!E8$e` zrmnY%gTo?$656^eby9x<bD&?|z~r5f05GsvDHcMJEy}(P4u^Svpn92>oJ<Xw|L!f4 z$|H*!CI{bnyHBxTsYj^prX@=cK0{#%EOS0EtSpqn?lI*2F|!!PE#zeI(7`Qfx}))1 zG+jWQMptHN{<~Nedt6oJrj1oTt&yM0drtR&%Zhvuq@Xo^(m1o~w^6~#0j|x>)g~UM z7Ha2I`~%~ct$2$oG8RIp@<f#BfJ8WMrS5Z<m8!@Vp7s;S7_c_9oc*LALaf|A+(Ji7 z&79*SRg8?fFgH>1>P-im7`kq?sVTt8IA7JQ_u`9Y^6)ac6>5WQwT6@ul=&AYnVKtT z!;-a_2y;*k)QjuXu8ej0d{qf8AKXOTQ*vcR)zVkvkiQxbTRLy#HVeZ<63bH%T0>$8 z=temPOpN)sz;z7s31;`lfdR#9_)Tbcd|<A6HX<n4m8QaCOpy(m1=g&oEY_8;O=nFJ z8(Y#{Z%f+YFOb&m^W4n-LKq{H1wG)y+e9*{kjB$5S5;D-bP)KS_*oc#Ps#PvS|!Sr zTT`<=W~Xkj3q3kdN)4z(qT5%Q{@&^s#yCG`Gip&RZ0ki3<PDv2bq52l1~EI$jEFgB zSkM9%s_x;`qlO+r`~5mIh8+)n{dQzk>=Ngy`C{wU_#+%tjuaTyW<1^y8&n1NqDMf$ zQGIv)Kd(eR|8@|;isYG-!o1_IU)vjTchkY@Fmm-lfKrV{C?1VGWzBd=|B-N#zXHhE z0%k51L^QX_;|+*-`<l>#K=qP2MtSXSa1t{$O<gt?PQXZ1y7zWU7iw5h8n`78li}(O zQTJ$yZZj9fIbjcSz$sgCO<frT0~MvvDdQUAA_YZ6EtPGEUVoHU>Yg73bfZz2Gg3ev zfj0-xSfbixj8fjVp_g=Q(-TU%vdblp(4PwhYq`D7r$@uu^U|Wsj)bHNy}rK<O4Yyp zPG0G=t$^xad@mf0_y-@2E-#{DB;cLl9TPGmSM@20E@_Y0fhNNEXwSrDq78&Ju(0Av zq=&o$@@qUbc!^{n$S8j4+HD)>A3f>TAIoo<_@A{^A28FsxADP(M_RuV@^?P}tqE#< z><H=sjbWhr58Ue|Ijftc9r^kv5Fdd1l7b_e3$5va<cx$Q(SOQ2st4={!b#)9GM*ri zsaz7)n}M{vy2JI}pmUsP2*co;hVNk(tNwX{m!z39L>Bt$K9&(n^;lQxUEPk7u&4ap zCV0HXvTC%#8-}*m(3<a`DUtu4XMQkiq^zB|jIv2HAG_Gp2S^LyiHBQS`Pd5oILkBi z(S|jM|JGq>4N9Q(U3BNC3ADx3R&WC{4O3lE?1M_wt(qSvkHBjpu$$IyIT`?rh%BoW zWf1@prgqA`Nx^+_!see2c{<OhgGm5j9|LB2s*#eTat%YyYA$mvyQ+i^PRGuzU?ox} zRckQ`mb9nOr8!O@-!(=^1%ZoS*`RH6qK8U=hK1_gpqa><D!!W_rF{z@_9i2dc2c~4 zp)~8MoFcPO6xy#F<j>F9pQ7(A`vM}Fz8`HMn#0p-^`fI`d^SIE*0-d8R5@dbQUQ>M zKbr{pp3qL`HM5D)IWFg_^y1I8NE=z^EWx>^(p<9(E5`J%p28@H_NJkG+-7}Cjj3o_ zj+TER+>&4tP`K2ws2$UMbtO5L7V*mp-qN`UW4}1x8<2{Jyyz2tr%lJfeGJ@@^DIWB zwEf<~r3o<`m{+r!6sW}!EpsKBt!Z}*xi7Y9`dk{h&-;#8XuD>=eMZ%Xeyo0BW}tDK zk`B=_-K%vm*FBpsl^=;DPH}aX7DDf6K(PcsBGumgdGw_JYBZE6H{m?w@9UL(9Q&}s ztXwof{^l~J<+38D!{kZT%m)dBJO!RuWaypM+fdAT7&vAXIN3sj+h$#9xBk5VkO<j^ zwPE)kP83xuU{BrffkW>Pv)NkZa4y;Xu+3;5-yF~YdsRnb9eKVB6r7wf52+gmR;(zH z4~;9*Iyq_!Cy9i<4Vp(y@u#ho2KVaE)0lzo$nZ0+vY;uZz`iWwyp+@*r*0HLUqWKP z{Q_g}B0N1F!yGGFg${N590YrDgrE!o-Nw*1Q?BGhXn)(Gd`Td`yPieQCFb5Vfz=&p zA;VbM&csMR*+^X2ss6weh7cLupnqyO6zkE>iAUxA+(Gd~(s1tRVK+1eI*lx?oTSWz zdp98Dm^;Kqv7P?m0mceR5Val@V;(6Lswd%KhIwY-%6I<j+jI5HxU4lq?(Uj_Zh;V+ zh5zaCTE0gwutPg5auEQItATMr=lCAY^RfqbbfFWa5cC?!uU8w-$WM%e$QGD2z%(#x zbr__h`f@|T*OV+gyV}3A!4PdK!%oUpWMggq2d8JzZBOi4dzhJ(*w_Pci#{Kct!_J} zmEJ?=W3{AAow;h^mRIV}lPmXmaCl3A%}m2nWuJpff*dq80;wG4aev0nn|NMwL*1_t zOk*X@Jj;+7?tVz)`A7~{l0!A{5-9>ec*s?7MQMpYcHY}z=t6g*5Zms~m6m|uE|qzo zD*qpl>&~dK-C1^d04tgnME&E*s~CVcth%0)SgN>5h(U(&aeGi8v0t`r_I;si{JYAV z(z}4Nx0bxI`^0MS>-R^+tESOn97bCDgqTE=M*~whq;A|2Gl>Mea~i(0E>}X?d&lay zUZBizGpF9RG{9&|u*zEG3(t8Bglgs|T<{$r#T0%ekCEgj37^;r_p?Cue(Kx&l;U1( zBwRB>Ah4Zg@B5oNvisucVbpt4eNcDrv8=zN5AKB;vfqLQ1G9OO;pALa?%6N3Uu1^A z1d=t@<M1%&yg>isHrpqXCoHG_%+7|7DF3009Kd%=6STZQ``{3AYu+*;V7qRhCugbt zmud9#Z2;d|{w&}-tRRPvs~8{%$BKpU+@kQaxkk(;1bzZe5A$EYZfE(XnsvaKH$7R$ zM1d{g77mY#@l$DSPizS~T}?K?Q~VRJ2A<2>4Tm%btR8BRPnr!juc?jPjC}pb-xAk~ z=3+o8t$8U@G`~EGs1#$xzv`UU_VS?K)^<cD!f&{n+1pywS;q_s^MhtN(!kDfS<J^G z2e_Z-Rx=b^snFOJ;{|vaMf0<(VC9!7Ry$RX+Gp|;#7n)eN9Lz1s`NHH!#R(SsCb$H zq7%!u#(^6HD8a79YSeEWKieVzyfAAIqiS!1%peMlp-i|qxed1;Av4N|uG&*KGfRk3 zHOKo%qZdx45LDQDg)>^G%@{M`4p<*%Fy7bu7jT*I0Yl@L1Y_w=n;aTs8U3(j9#&P) z{XvAMfS=XB_)pD7$a_btkepxAaL^H;n;fytFDpmD?KN3m7zdrKWyH#PE=W2y$;@^- zE{k6{<<K4A07_RhJSQGuxdqtPSI}Wk|A3li3|!A33myZ*(*r{!GWi}@^B2hA$tD}F z)+s`8$`dp`RtBf$K8OhU8PP}Jwp(358=m!k%*qFzQv{C4C0)QK>?It_?>ukja8-*9 z%#L}9;KK}V!*E8G_G^M|L?h)%cp7zyN*+CrDqY9{IzC&|-Av&wvBn)W6?*0q^01kG zdgFV1IEfRYpD0OaHyZ(y0yGgG2(?z`Fi{dm7hWvmLEG$siXg@h4Ney28&siw)DX-# zm6ZVzvEkh&n^dt8pLp~vUt4q7k!7B0DrltDX<BDr{edxx8cMT+=DlMt)av8zNE?<y zM>{tJHpQ(5f1CbLgPr!By=l!<RvlvsJ#qcokT<5Q65h;QgkZ+L!}U8!vrm4orjjy} z%^etBri}taa;lg&KHA~4QbpIeSm69|ga3_Z)t)!{AEf0MG~;9V*Uks2)lh<UU)oS< z-Y#Lj@KfqOt|jewQC=xz%3m=x?uD4S+{5p$xvAZAbrGDX&V6(CS@E^{uz+f!YE?Tb zxNpZa9nokwU4p{*yP@dB2a^IdvR=}UCS2_Hs`nloV((0P!{Rxdci>h{JCe5@M#xYK zZA5m)nGv&;Oi!hhl3Ax&Y+0yBaQfmszi-ePp`p$aAR?ZJnwfC?hJ%o@Hg`w6mCb=Z z+bk&j8=>X0VRO8$n8=qVGmMycI2P#2;#9}u$Ib*Gl92WLn6NBS`ExvXMM({A`)|W^ zT#;=Tbfe4?VUm?Y>Fc6MCkFYsLHF~NRs_^s8L)SSTiKByQC>+#-Cw97J=3GlI--Dp zRS)PDXU+>k&o_;oQA)xupFqb8&+)^}eVv#mowgF+LQD?9xuDKXn5c#6-ya6!Tp|e} zFFvz-b|qC(yX7SXA0wWN@)jvYn}6J-PaK<cpwk?CV6b%TE6z5<S{8L$klC#h+L$Gs zN13Yj?etTRyNS2>zwR@BuRZ&ydtH~1f<9}^SYsU6At%#@YP$*4Bq$9M61w<A!DuSu zMSN6ddR}VD<%P8p@S@Kb*d4VQ_tsU+x;FSH1LTqQVA6?Xa+%GgM+phkMM0`%2+?r} z3Q62XsdPpg&ZEr-In-0RBRiUI1w@aFj<C%;E3Qwel#+~tg@K<WyqF<bx`AD!d>~Lk zH@3veV9aqO+?YYh)#Tilqw34~7aR+&N3#uPm@@<kc;IqmigG+7m29c0-n#Z3=p&js zMWt>iDN4|qa_E|BEk4*jR~jn>wcWutMhIM`>8yI#7L?X!#jY)8<7kD_derncCC!sd zQUaP$qnqPaj7#T^3e-CcmB)!wlU-1lCp4P7W{c*;L}LB?!})1wZc9Cdn%%YKKCILy zy=`dE{ht>f{eAqMY)ZuM6)?R)RYyLHo`C(gc?#Kc8k6TyZ(Z7OI3$vOVSv=vR+(L+ za`4}=>^b@W^db>5?Pg@dh(*B^<=DZ{xlcIW8c*CQ;%q$em<1XWU~VQE(PCt6JhN`q zUqF^F?^bAo4;qD5Ix(9<+?Tw3^@J@;)!7PcGUzrx`?mZ)op>wN-{u_YaNXE;T-zRG zKZo(6C$C%dfl+H?UCP~z!3m-(7g*<S*Bj>ch7;U9vtJuFFm#D*86Sv*KEFH&hOjNn z#gx9VCu7v;=*Q*4lsDgs)Dp}Tc~_(V49Go?&3MOiDFaVq*Dx`)|7&Q@00(q!VzMA2 zK?$?EhusjJJ&VE_N5Fz(iYHYV9bEq~MAyO*>VGHTJ!KZr5*UgYLRtKwG<`OD^@Z$m z`nat12;#=lC&>icBAmVfizsvgBoUx7J^>0eKXG9h9c5V#D^;b{OaBL8!q)e=obf1Y zUoERyOPqelcyyas1rZj9$6MfUeT)$qF&-MCZdZO+KV|7$c@k2xGu>KEJJ8;KfI+XK zyIYr<I6>pTa%HHh21?XAAt@yV*ALV`g_sY%FP<_T4CrgzntYQw-yD*uR?4(q!NCta z00rW+;Jbe^z2xu<Nt}tbPt-PHeBRpXLRaWinn}LI9SOwONV_e1H@`oh_+SUAW1oOg zzff?;@Hq~ya`QhL7d_&lwbWf*Ad0HXj&*oN-E#3eXJhAXb+ZqVq0A3$t>nbwqFy53 z^k7@gay_lP8+v_9!-F^%Xp_5E&~T$0Uu;!{#*D03)k|J-WChOx$*uyY>VsPJ0zr+9 z9vJd`J+R6hA)q=_zNzQEW>d5jjh5rzLkeIa=DmVaMuoEPL%i?FOTqJKr4|$G=#;B% z0e1aU3<a8>^mlp8wE>`cDD}P=N<z+e>xVzUiD<dqrSSFpdB>uKZKsgnpBnE-6LluZ z4l5%&hyer-6a)L*dA-yg4G8tbm7%D!E+r&5DSY?!iLs|@&9@as-8xJ}26`SR@Mw5N zwbVN_Y>C@VvF>=OizqTGC0x0uW-N?c_GFrw<Ts%2^`pNM89lbpUs*K<C0YQjwAEph z@)_28-u?;8Y9}LVGux@o<|g77$XH^vpyQqj-7j$NA?<#nH?Y1ZcTYrz4c$63O?8$> zZiHA;j0x|NdzYjx?hI+NS5XfDkEdrT!>p9pu6;>tLz0-G%VRbJqN=beI&ny9kF4G> zC29d5iwi|p1B-)t-|tEqLhkz4n@<nYkq}$(7(&*7OY2>*gJ9t9`WuS&NHp&&-cEVb zvJvg+xy@hM#iMI!Q3kQK?aV&c=CFSB7(z0|*u7bC^x(AEHfTfzE3W|yD-IiM%X3+~ z=bA0AW1|eJ5$GM6M-IaxV8K3n!)MR>$SXB>0Kg^nv+kM;?HX-W(~_PtAa9wo9v;<? z8PpJl7&&ch*z^aR!WA}WU727NYvZ?R1%_Qr$uZeHaZ#5M*OmASq*&k=)l-YMHK3<A zJs^Lh`tht|qr%1}UX!fjDN;ojCG#i<{;BsbHY#PyumlZ_%(7(AHAF}?#?gs85G26U zD?yBdqqsMVjB=ixuc*^x&VxE!kL83MR-dYkEwncrg6u<(!kX&qT&fy{Nzt%iq6Awb z#C_V4^!0UM;WIyuSHZWB&weUl50k%UYbs?~Dn##U7$Rr%J;CGjsc({)rY|~Zrb~Xd z_W0$*_Ktn#E4Ss2txJK^iQcSrED@`C24_lx^G5$q?9IY}evU=dVxErIMc5zK)p2+& z#FWus0$Ql&T4R2<u8^wn>d@0e-@|<WiKjUVb;Ml1AwE7QW_g(#dr}iPE5L^vR^kib zd?;#ztAVfS6xMMtQlt^qRy3xH>F7)w?WMoU#aRl}4eSjATaqM_X+i)uazZFb*e0$` z5~zbfM#)gi7*=5`qz4_~MJQ=1n}~^?2^Rr;<f-vgxmu?A3<(Y~pv>J@LjFEH2sed< zmf`#7T09=)S__~6-!#zXEv$_C?dZ4?dPzsUaSMz*J7|i1OChuDR5Dw;9=9L0=@^t~ zG*G;v&w2y{t?4;nVCd5%A6C{%0;*o-;TiP(7Gz+)iAqeyu{V9$Ls<ClhC=DGrAvmH zOz?cyCe~}nZE=iG*z51A88FfQ#BnGK&D}2rS{3@iR&P&6#HQ(3sAsZPMHdl?QQFa; z!<w{wcp=f!{wqHP6+@p-$6+ArS0F%*=9;9vo&dV>LsLVIniY)82q-N0cMUSj1R`ds zlWu2&gi@TJ0lHWO1X*8o6OyQZPAb#5NvpPxbuAD4G-5<s8~vN~7!64_;|@XJlmQw? zo2Sx^b(sfyEfU9B4H@HmH!yjVg%LLL_aPP)i4U<8u5IGmD0Z1{mTU9}Sc^<H7RXIb zP6qy)FGO6t?yc1Htn&4q(wsiM`+UwWVXX!WnV%l7<spLguOS}V1bAmMEo?!{K1?(? zmFt-0D_tO*4K^{ag?Se5uA}mN9yuFz9ZwMLm!`!MDTl!*JBUkFQ~MKmSTnU8MGK(* zZk6hXrfD_wfuhC%3g5f$=Ht2y+q2G0Y!nC7rkc85*QcFl25<)J<bp(@@a`U+PXn0| zqjb61rgmDM909e0#zPhk{Vcmud1UITHvZ{TPM_ek_BX*&(F_t4r6S*AvwiC|BDgPN zjzp$P6w3FyjI-8}=SUYc=-YgCs9DI%rhYV_CfMT)LZ~fo<NLfbrs$r7Sum8>kgw^d zYp<y;tcyg{<^dhul$g!myXS1v&@2;EgXA2TpM^Hwbh9(9ls^S()$*QugG>Bv?5A=d z-|aD9nI&!4y491ku#r`m<a^=D8$5*qdZ})4jv`<{Zsrb~yPCabhv8A7v$CRo=TC*L zHy8?WF?asXAAUDe+1<8YnkOMuVhR`ZeGv7PVOF2846u4MU!tHZJ2*5!kO#m41I_ZS z+Is)<i$of(VdB$<&Wrw8c%^)>!jp>PPT@8{1V!$ai^#%YY&tjCO-0+shY;~{Mr{k+ z0nb_eHgNf${x%^^MPZyS%b7~kk|E_+O0LgaB~8#G@yr=t4jErJ`OZ&F!!V02(~H-C zOXww5HKm@fEU8Xsh!5rdbq#(RRT}|F9dtBjUmzVS5z@%`!&ZDbAlJwi7uRjjvVTk# z$WkavXQ-s2SBfY*4-5;vQ@X4LSEZg^H;w$6HaIZ2hIj`vdyD$(a<ln}sTCOJ_p>IK zjS@NDO(&&P|JtN}h0f;HvHW+F3~Wz<$QCjBGG~~FZndoi=~cHVLxe@aLrHO*J?*1A zc(z3r#TO}JWu&GVI;crJ@ll8q{A0F#&yKIJWqyh-jJ<a^qrPTRx28L)H`hiPRE6)I zaYyfc#kfzUW0E#E&IHn1TP{FwYlNG;!}F@G2Db|ISUC^is-xF)IT$~2eG(kPvuxDA zrq^QFOfSG$zYK!TffS6KkBc4=P^_jtGhEO(q`of~2^wgc&G^Sph9GUFM^M5}{`xN` zaygb|wdgHj2g21%EQa=WJ2jhy`$t$pM)j+vBk34I>58LP0b8hFaB|#QatxQ%<AEcd zUqx=YwL4Vj^PGY#puUD=s;lz#nl0ZOb7O|y;#Zw}PwL2TwPk}=1@P({J{p0pu;Y*T zLhH*X^epzmf~3{DQKXgScQJd<lsTn*5zTAPS|3p0E|SRdYLdV9bzcZ@m%)0D%SO1z zOBLyl&q4vT+dUC1={E_H_o;p6w(xh0zul22V;XM9m)Hci$nf$7d=+Et^zGR=Ijfhj zzP-q>YiXpLE0TOyEv<?iR6=4Y?#u9i91gwfs?oP+N~I*C;}H#Z{2lYY9yThJ8YINv zjteTi&S!42^nQc%9LRrW4Etd!y2(s9E7pUJGSNyR2XSo$zF?bb>$b~K39ZC5BJ6s; zwQx81qt$Y%g5;_TnvBr9(xEwm1`#c`?0n@YOrZIe{}wcr*dxEOfp_fDv)Y~oBn6AD zGPt!-B-BW3`wsrWKX#?%HJeKCF}Rf};*DywJ}P`vk90X8Q16csg!XAmBV3dSqTsbr zFwp8gE5<K?T=0Ec^PG5WEy;{i;B}>-Kji-7gqN8`UlNf8G&Poh$s{Ac3p9XpXEEDm zEOIg~ajCD{Wpfz>X>Qt>p<32iJ6?G(@~7;5&HBs!me;&ry%?l&a<X7CrF$Pa3oZeq zV+#}HAn#WDHj0dd8qk-Y`Auvd$-rQLEvg)tDUes^5J%x{9#pvY@)+IwZsE3u&B`*_ z8b;Fy{xpB_Z<+T**S4X7F+wQ%x?^vbh{NHN4E-yOe937A)9fVwN$S=s$_qlu70^<L zF#E*UU@{=215$&O2R{NXD=TeTGLcoM#b!nzQoFD~2NU#CfWjHxF-}y=ovXT)m?RN{ z9*}%I6JQ;65Pi?VT^@)Ya?+^WH?XwRoLS*~vV=U8NV8iw4)mlHh}vnNSVZ|zF0g_> z@*Y0+K9dF!PZG<<95b$Q?7b@!R2d7#rLmhI(%VJNqQCvT+QcZSOVe3+85D)Pee;+O zJRsaDVnVKs<bIR3NuDu#-!&6q>A27a8%L=4$}f*AMABksxVa*85*uo;r5$@$Jzu7! zB3ZL&XQ6YDI351>hNQeXpb^TH?aDVyehvN|nE!JGw-`pc;3?CFG!q>W124&AyQT*N z!nD7k#3@Z%v^EYTq`5>Ru`CVN%eIeuPgZ})%!5-+6{jlcgZ15=f~)=ZWy_K)>UAvS zLzG}1@qzQ5dX@m|Ryn5RyKI21CgM`#&h9CUu{Vh#iCFlToUp3wj968tpPA;}1sy7h zxlEnTo6nOLh*O&ndq0agLP2kLCqNQZ+*vRoxvA>7M{l39GmPGMG|TF*peXD#PG7bA zS8VNl(LXSc;LZ@A6;dAygq(TP&H2fw1)c$T23kuJbK42*Qa^^Tqofz_R($0M0IQvm z*-5I(rCk#x?AIhe#NaFPC&gVE@Cq1#vF5&Ou_AQHJ<MQBsXak9_J;A$AJhs4Lm?QF z&MMH;k86zG*w?xXx9)pL9Yh@ZGLuxq?$$Gt37qg{d;iuhF-6+_wGYcsgBq}OlY2y= z{kepbY9%zu*C4FX6+(KY)e>YXkjQ2%!B6V~K>1#Ica5NBubbLYW5}Hn?}K`FH#upN zyu#ZGqM(wH^N5~mG{aqw2+GglWe{8l_QwEDy9q>fdFs_oLuhLB((kX5E>1+}lY6z5 zP`u9$wDsB2X>`A|Huz89F7R<AtLsU--88gTa%*SG3Me*gi=?WYBeO9*%=XHQ0WrmT z@-wpvk<Y2xSGByDW8TrEc<lI|4I1y}s9gtm#M9Jc4Y8+PcpssvN$HHq97kCijW*X< zHDKr;w$&QNm&Ax}74mZX<mzfqKj)sEXL=(m7mdwiPJ?!PfcS}CTNgJ%Q$u6!)hkB9 z-~GV2uZfeP?zjBMr-J$L*{0J3ddQ7|xylYqZj4=)ATeuiRNjf_*rR^xPh0+)o+eIJ zCYu$Ten0Fl&*dHa(zV!EaV-$v%m#&h+GSfso8;a0gM#2Mt6LYF-u?HC_QkP=`G$%Z z{o9OVJrvD*m`u<O^%dBf(00S@*zWrYh<NgUF{q)~OKE77)F;<#09dHc*BAa2e#MEQ zAS4VR#83}=4M87soeIk7lL{UwwpH7uf6J|*ri^##4x_%;{;0*vR1>h5azwS`06tqY zT}~$48Y=BTbsy#2>SER}j=F<r8v5zKmgdOOb~;Ps#sD~WFD^*vFD&r}<vj+9E71hD z18pk7YtD&S3u>aGx9PjqJF`EQSTh*rd4j0_PDfv5t3yjSmwYZ=&IiUk%svHOeXvf< zbP;{SUgQBHHX}|d%s3$0|9;@w(_U(}-AwSj+T=rAb;Oma;UBO4vf(A2tu=mN9rFLS zY;0;2&ckaJ4T14M>yYq&3;^BZaMB9E{)@gc>)ubWj;agNCuvYFJQP+WawIb=C%sTz zMCh=TUppA(=W|Ylabqco;kd`(#L0E;%u4A6pZc8&^4;#n$UacS$++TvAL6!(E;Gqs zP&gx99Z1kl5rjXLUk=ekkr{+aykr1@HZqI3Cce~s*Y~=@yhM&yQI#P;TrG$TDYY`- zgeWR%5nkatfRQcu6UMnBjbqU|1?r>WYlW<H3T7}`_MMLsH=~-A2yR7<%V2lCT6I6D z`BHj;q4j=+cVCc*X#V(SHq@<;?J<mLEj8Bv8*s~s0QiR#&&<>mB}+wpiNp13J|fe6 z#?nt(0|GeMK#&bJoeiU>;eEm5a&}%9hl8TPkfUj3!+VE8qZu61tlngA!C~vH5U+C2 z8SRKrAC3(cl@$UaCKWX_%r`NYFf|iL!IVsm7gAO+R@FF}UlC_#5^}l89>}_<_K7yO z->nSke6=Y!E$Za@WXt029XBZ>l+wM@q;dabAC~J2)xH*#f!HzWI;Y+PFJv`I4ds5U zwp~Xvo#GIrvF35VTKqo%H9*S0vS*)%1Ba?Oa*X1{DU-tv7rE$SB@B!_2&4uRGlhkf z27^TkrIul1H<BhTsS2k^zWf#n6jUlySfxl&zYgNX4&m2xSaDFTx~~7Y){k>)>ub=^ zOryq3En3pGYR%HFy|GT6J&haaC&b1QB;=9OTkSG8*C-Q7)SWIuo?x<P0*TNqoI{V# zmVDC(?WTWfzE;@r`6cUg7MhpWSL5T}Jn`s#2Uq>!Emy8@p0QEwu*--PMiz)Be3Et~ zTWRrHJJ5{=cVJk!8?IFW1eX7yJ}KbJr#V`L8ls&0DgQc02Z}Xp(9)4ZvtYlgmk<FP z!_hD~TN3*zpy>P!LRp>(l?*-$-hA%uZP#z(WjNB&*`qhvEXx_#&@<D<(XQEU)ivyZ zWJUX(l_6{Y(R7Jc7q2>rto>8BscX)`X+ADHM_c2lO%Yn(t}hn39MLaxQ>*WETf0}+ z{wG7QrDw?dyvqSCH4sSNI>}$+82D$3`caLu%%}R{KUrplP;|3W@V*xny;8;4Y@PzK zqHvPyz3UeBE*Y8*xj|zm1ejgb>2Dq3IPdNz6u|SC8f5B?Cu-$eK;V>LN>a;dUtZ9h zdB=3Dt~F+#R_E`+-ZA5cQTI1YaoI3Uj$NnP-n@2-=YKa1Q-bglW33Vpg7CMnTS^^h zPj*drT~a1^3(VdqYt6|w0+e*i%&eK-8^%Hhzi<WptYHorEs<j9iU0f!=U|*ru9ugX z&J-FHz-2`flsUbs8vb~krDPj(dnFD!WbgMLWlfh&K7{TgK4Imef|Y<6gvKA&V!(Kv z(bC=h?NN+ZUCrit=7Y;KD{r1OyllVGYGf~6w#<9PbR72Cm*a*1D>~hmYagSl#+Wuf zx}>|z=x!(dT7o*c-LZm_Nzda|wPUqTAB!v>)_vvcoi?Fb&azw9Batz`Hz_Nd{G`2u zUvgF1=j4Xvqo`;jaLvu4aOHnLZ4zyr^cBXqwa>A=Ghaf@-8U~gImfix+6y-*|98`o zPAmD5{8L=?JYjHu6h$uJa9Zaa-sD``yRCNNYCPEQ9Y(Fi8Q}ZdxJ(J!-)xAh5(rB- zn?ejXbD$7F>(D_~s;?v^dV`>5j71kNUFS=6if5PfLXsZgr8ph}qI1E1Teaygn)Ey5 zC;pMV@d?R^ahNfnLwYr39535P`o_G|%-U%;8}tlqSFPD`Np|OD!ny=gW<4{VzMS4S z-V5iJP!6TF1}?&og}8E>+v42z)0pbjgbgbD6Zxv-V`dx<>MZpm>Q&Uc_dh*#LV`w2 z>ZTr1m(r|=URdpb^RCf?Etvl!5P{K11l)+=Y75mWO;(788r=|_R&N|$0ZlGixjhfz zVl$=B`A9n%0VxX329<OXJFd|tLww6hm`s$K8j8RcXoIi=cbsf37Cq8N`LUA<yVbZl zblfVKO|4B_XgM^^NGod=)=S+6BNrn4f{m1tsX!OU8$566yPe==-pb!*YRAkKwEDVh zJ-W|&CYRn!17_ytGHz~0N4H9}8vm^mGkAr>uu3w!pg=WG`KuPKmd$i)7y>U)Sy*AM zK~*LVNp-5!bZ>I@MYBe|8Zjskce;P6^y0oNFb`6xD|{QMBT@08+?PY^_o0xlEjKwy z4eD%yYKOlJ1&wGsOAw}rPOb_I{{=Qa{Dm(m1rW>2#Zc9L%nOM1q10-bC=Fhlb3t+m z^~%+(t<J%XP#AG^p4>C~t}a&g$HE_;7Tbg{ABkP!pOo;Y?jrOmNe%i_6PUh9@dUbM zxFT00Se-}l%}M7F%6wB+8AHe5akw6mn#4Sa;5jp7eW{MqRuE{JFnM%9zV@=+<INLz zvn1Z%Iv=xh+%fW%HzlfXT=-&q7>K_m*(=2f>m?zkb*BE=DNtRY@MqzWs~ctF2Iv0< z&Bkqkjh}))pbysa#59W2tzDk<nEa@&cds_ltCutJMSI4-Y(37)_Z4D2sc&)bdeKV} z43gBtDa&aHw&Dhs8`~>)gz!3Pv3{*J8N)?Ql(Z@O>;W|w#|I|p@a;*GilC@#D&o{x z?TKT{dhu0&j$W`AdY_Ry3UF$py)twBIe)aRyF)Z{2_H@IDL-?fOHmf)OXOB}cKK6_ zVwZ8|Catxju!bYzI79=p`foKn^PuUtgy@=WRQngJFk)HJyR3?d^|xe^yU^g;42&P? zgxTgD1l%mq|A2My1i6}Tr)9#`6qRjHftlH0Xjogz@4FJcybt_66R%ytcWv~|<_Mh4 zsy!0I5mrd8$?c!m3w1Ayoz!LCz;2Hys;}zZtXGqbj&18heLy+#34N>BbGXiP;8zcz zyFVj=J3<gO)wGtEm@|B=a@TIjU8aE=6Za>SW!?*5Kw}q7ey82b=uH!2keQ7{6KlyX z)7T7|s~ZunFX2U_jaKNl+=&hS;={Rms5<kjc77HV2as*;3fVMQr-wwnk88A*C7$9U z4p1X%C+bwjvnw&ikQ(vfhsK-N!)le0tDD`4L|!r&$zKyP1JXBue)UAE<k?jhO$T%c z#EwYoYL0FeBBoKks$Zvi!xbxC_%1<YWv@ug;W-mpp4-6rDSufL#|2i3S#XUX$LGs= zZDoS@`L)MSVC%28{l2TEEUa~D!Z_~!VD>b^r0e#jV*V*<F#dyxuFI6Qbil72s$e<% zl7ZeFy*ht5*hmnt3oezE5Ip>S2drO2Rv#`IH%p%LoW`OtJN84=u<jJ48u}2__k7mE zSJz0$MATjJz?+s;2vu;Op%)F`>jfNkXy2j<>Im}+@-x_Mj0#g!W~wSxy+G~VDdmf~ zEc)@(;4_79g#<S+O{YHj*S0Q^2`Ue~lK>u3GdZ!rbC{-J=i&#;mgNvsE;h;VZMi!Q z%ovyF%QJ}6BDGv7kC{U>E4%V03sv?%xiywpE5#OcO{LA<x)!>8bHk?~-nd#GQyYJj zjkGESm|I=S@=%U|pv)CuSV01<T2i99FxKIZRj#NtC}Ufd2|ExApNMnIHA@!*zs?G} zwSRU_b+ZJos{_Ilm9;IaIYQBJkV+y1i0=Gy3OPhK168tmYcxth>u)ihBARxgU!iIq zSk?9+LI|N9Zvi)JxO17JIrcKYeC*jxjaTq!k9521pD}nCNW669*s#ZkCe(fPD#pb$ zS)ki}d<O>jjFmdrsbQjh*oj}ao^Y6JUH`vFt?tCEeZ`;Q9O+%I8N3W)hdglgrdgZ0 zf_qrYoA@=EHCS_q)=aIzEXA74La)hm@G}~i9nD_WC^tjr3CW+OP(Cf~UE`2hnMQ|9 z@!jqH6a1Z7y;r>OT&TkWb0w&3GnAR`u#d<%`MwSAVtIdiQ$8^ZQ2`*%Yb{QQ7aljF zu4ZmT7mN4XsB&HqJBnjFpIi$gzce0ERjsA*Yt7b&rdH9nxJ1W{y(O+TEH-X+ThgZK z?nK7#r==$AVM~KT<g)!o2%C?aoP?bP-?DWY95@9j2P=UUC0c$SN-|D1LaVCtK!xMi z2uT1b0BIRnIe7(P09*hOQ894|8<|2Yfanj|bxHsWCau9tlV&xN%q&1hZ^o=S^8f%w z-P*5aV#y=?vN2@>n;8I=7mAFG3Siu#B|HEw07YsdA{rtB8UzD@zZN5i5CB02ypM#u z7rIuiv6(B8S)%zO5F1wL1bA0t>^~}0Q3P?R$hkO(tf`24PJ}yeoj!EYx{?Tvabw%s zCf(TxsHoUICCn@U7I{t$x7ls;GUD#?5Ch}9$--Q6D(4wf^sJpUK0JWtJZTAv54fkY zJAw{DLbsEUkqN@z5yDKWoeXg1t{gLN;;xaT;i?FU8j(~`@K;?j^TZLx1w$f?f^ti4 zqRWwDl@X5F41F3`MO(tx)Q~X+Y6hx2Ewnm__ln4_4undklW<}oOV7DE;a^Yh{OA-L zh7pM9{}(|q4KaXNvgIpAo?6WYJ&6JcXu*{LJr96$N1)GwgB2phQm9t1)39-P!vT62 zu)ZQeALcyhVKNan5%^vMy!NQfffaW`neeceYk+%h+3zNIH%7zG38vn!wx$^x;NJWS zk32L5?}NuilgiYI8x#6o@h{E@lY&nVE_Rl{z_C9EGFj=HnGq8tPp(i>23FRW#-0~f zZ#S={?spPOYJXp5q`&P-_vousrP>}f4y$#>S@jw<>(Wi9$5q#)<P;Q@lm+V2W5T2- z-gxU@pUeb86vW6B4$J^UU^^V-|Dl&t!2TnUt7H?FxNX?1JZ4vHrD`WM(it*h%KIP? zNn5ThTNc~D@M4NfRe5DK)YF3=G|}t$(vm)D>PSZ9PQkR3V(2unC`Z%h({<{jae7NX za6Dhc@|@2$?8TcD-OF+P2})x=*Ki+?^Gp87%YKry7c+5{K-nvCfazh)hcv{BTm@CH z+_X^*cZ@2nmbQTTvpgNyDWw}quAnPWPs?!K=xfA59|h%!_3VkwO4my0bsywCX<j*5 zLDM8<Vp`11`v$;gCvr?Q%T)Q~EDcDV+3b;tU2QE(<8n9M?6k>0f{uqDl_CgA)e(;g zL8(bu>%{8jSb@><Fs?|_Cvz=U?Ur}Vrrjfu25AakD{Z`TX~W*Bn<yC#B=%C?Z7yh9 zZr?<-ymvh3Z_e*eMsW9IS-h7IPR4JDDSu^3;=dYGeTghjmO~9~6OT@N+=zp_yzRNT z14HGFc)quv7+oGcooo}D2x<f<IuU8|zDbV~4@!YMYGUf#KPlibH-92KJ~Bmk%KP&i zw-^fVWHNcxhP=VuJ`&+5Ps<BUaQ%~lB6&GK6q;lv<O4eSJmn*Bv5ub1Q$H4r3Wm6L zfx{ELYoa*fAExQI#}=jXj4U~pq!Vk8Wr-SpYhRvT6NU2XJf0t<!x-YJh;9A#57q*= z9mHSv{D5;tw{#kxf6@9k9>Mh|MHGMVVK*G6gdt%GDb`y5#YHdtHMY$keHyj~4|&*c z(Qt6!p!sH7>_2>Y)OlRl&PkgOaK!6V2m9+ocm96aO(uaz=0=obE~QZjnS7b~QBa*0 z3!~6@dKgDx^zP~iil_i})+!)ia0Ch}Jw}X~U@*me+SJTqe#rCShNIoP;Pfvz`UPiD z8^c}}S6#I`fW6lk(?4=eWA6Y?UAw!r360lw_xGUf`d+O8o!3*<VB}rGa1X}bB{p_p z0{SUEO}~{t-EQx}%pDINiXueP)dUDV^>w$6FuvZi;)GbqIV0}Di;?aBvKx!IQU{vn zw^-2o&;30d@%xKV3!I&~Sb-tVVTo!B@?rhDDKkGXXUW=+uh6d9m}fo^oWw$U^cgc? z#Fhuout&Wt0<mB=H;c_ZmOzPM$C1EX9e7bhFVw`RSrXz_?8|?18Q<e?f|DV#cj<ZF z2uzDF!;Dwzv)Pis41ysJ3ZRF2pW)N+CHd&SgW+wXeBW$VIv*PG37bm%-yEuQ%E@xB zIz7&0sBZAvd^nKf0|W#bOp^#3NrQ^?5Dn=gIx;|p$OsuD6U4|gW@eF^!rVhs*=B#& zlBMLuS5ih<W&cs@ke+dcWp<<5dh4pYp8D!<p!0Vu8NFFs{;P<NCcD@DM*43L`lHdA z+y5G?ul@%5t!rIxu-_YMxZA@UHjFtjF>oabBwr;=y>pB-Yi4TDAf~_k#mr-mk^c3s zA0oI&tcWk(oRFu)4RvZZQCKQ|l$2v$oU4{ywAVotx(2vLUwxLuK*PM^c4K@Kd)UGf zZ+ODtK%haijPVG$@ex97n-rN!)i|X=3oIx|h#GEr7n^w41)+p{KMkvm1*3#VK4V=} zt59NbKaW+L3PB0aRt#Bmt5IS}zU^ppp(x>%Uptc&h7wC#*{-C8qddifU*w4PSEA(w z6xWs_VTqRr7G>qY;%avx#`3~yuHA!D)sOmoxyle9m~>}C;SJRQ<<kQj3p>kU7(oKY zSQsV?2!<YtqL>2mq;|_Vl<RWiO5=i8J`DA?pcd?Sw8R%XTYFlc9D4seOmi%t2K@SN z9_K&^@Yj(C@qmC%UG<C-Dd2#F7n|zx3C2TDOE-Y91@l7h)kTrMK&_I(E6pg%2RDR; z$40XPrW|yBL3fE=&Nb=Cb=vwtwwhXt`uYShiN8E9o{l9478v!~7_c3RqA_=1A!<?0 z+oLo1E1#nfaf+RB$*9*sL!4amFRFyH<0j~OJ&iWf!=5vMc4#19HMH<QF`$<+6uKUI zR}ZeQhuYDD(e%*Ty0D%eN=p}_>cJa5kfH}GI-k%5v&QadAo+Z?0^q?K@17EvJ-slF z7Da#R+1A75v9{1kU-to66z6%*(;(RZkGO?!y`JVfOA!%*uWX^k;AOi|!a*V)`8_RP z;g1@IMBqx;)0$`J)AJlsxAic5iOmd}K1ll3)B5N3fW9M;kgcbU&%Fs<5`@1co2R|; z8gZrUY7_vnHGw2ecWXI_^L7T%J8To$jR-<^VEao#;avdm=yG~_@$i#3EOg#l8j$nH za2SSdvBMhcu^O@+?QB=S6xUT4ywoZ{8qd~WKLfcRtX$%N%EG$D9-enMKS*fiq2@(U z!L2H!)rA&Tco9V=uP{hv2UQkX+N0d*ZY_b@-G&EafQ>-u?@kXzY6izXXA+e(gEI|H zCNugPVj05=j~BNiY|4EeKkHf=0o9y5lQOUy#w{beal$gSo94)^ye*%~46lYjR&ZxE zg|0iSWKS5tI;%SD#e^YDPktn&%hwcBd?92`8TK+7611Y2va6`4r+rGy5y?g38#Jh1 zkJ`vL=85}iJ!l_(?9&t4m%*5)`hBZcn7!ty4Zuv1LVR!S>I<WsjR$GeFA8G}s0Wji z!Z;iE(0IQnOfaw(OfE*DfFXL{rt5c~3yT}5U&3l6yd+k#NbUzgccKV7Auo&((!#+J zLUlIJipp6htM+y4!kP;czmz!;0`xEF>30?gwGr2ddNMj#ggk{vk*`J@91;xK4+L<q z3!Zcn4M|KXAp?`@Tsm@TA%2=d;LH+wDy$#q(FXi#h7yNygh>b*6!|!kRSmutih+GC z#aN-i39b^hV7NTrjfdbrzs`@pA{DBAHI)16BkD}O2r3f9LyG}=l$6aN+7-dLs&qGv zJB_h;RZ?w(KqIoU^WTP!g+suBn`KrA6l!f)z@1eUn%3&Z&|cjcI;*=wFF6?tb|<P2 zE75hZ68!^K#x{bPgrPDF!6ipb-5|0>3sny@0C5ETceOXW*8XV_Jy`TWJ@852KGKwI z)&bcCJ2c#NP6q<)&{8>BtubQVaRJrLfI>;BX{};7MYFshE2`e={8Q|OqS|u^I>(h; z-~GLsFO({^dZXFu>>V8T`bQ^c=NGrH9-5D0_77NRgE;ZF*k-4_clG>>?|>A?os=eB zu1l^ebjuwtxaVbWc-y-^a^J^(34)449#747)mdR}?I=aR^zydfRMQhYQp5(OEZ9AK zS8c6^e(Ym!=P~U!EJ>g=8hC$f{p{6`YiZ5ebs|1`2T7W4syK)Et|_iy<2Gv|b*x2m zbRseDx4(F@!BA@Qag`FJ6W2tCWp(cTb~XvqIw(iLqnmfE7?iEU$KFSjo+KHv9atmp z;l-zDXp259s~(OtN!147c46H}TB3E{=@aue**l|z$@}fCGYO#7X49?K)KIpVi|(39 zw98Jpr`T_w4c7lozT0N;qI9#vlS=Wh)+3^|)x=|}YoV4_TBxs|9@^+5Tw`IHYFxju zQY?6VSC;CiLn>wV)pCjOM1N=+Jto|_c#R+-+EyU;Y-YQ|%44_CR<JVxLvVr$&~SBI z2N7}=py>2!ZB|a9t)hisTd$^#lAqxIY8r%qVGw{uw&~@_fHxkhseIZat<^}i3$oOv zC`34jPIa<174p$cj|Cw?i1qf{X@`m`>f>?!%-ia$jUFCRik^8&d^w>R7<JkT7S2Ym z`^*<@)ld4?%F}(izw+S3SG&~jY^J9MD_ohnMjebnYdaKs;|`)ERE+}42g^kuUS<6= zNdB~j6a!M9g5wm7z=#vz3E*S^oNz|W2Ui$vyxA__zXiH4-97*>0p$NRhk*4+2tq>z z2I#=Cusc5W&kz6)Ts!C>2+#vBI|Bp*?1Z}*j^KcweJhG11Q7SU>kbeKP>{Gpy!eYG z5l1E;0#dBR1OkG^I<Y{8!C+Ah(r1Byf!Nr4d+p{~uWStyJc|G_k;^u<LR{XWjuNP^ z9|7p2?qC3iERHBi|8TpPHwsrq7FsMb^pIKB*<_bX?)kT>jcqNnoHF86+@+dpX?(25 zeIjPvY?$7;Gh_4DJl+VL#<@1!GAtM#8-A`Ka*uM4bFH`>E{`kVF64T0SFAs`zG?l1 z4Llx`=U-<rjmwdz6CsUQaT4T^TZ;=WwCHveQ29+icT=|-8w<Fe`G*;|UmeB_v&VZ| z191;?k8v%y?2X68FTaie|5MdZo_8F$)BUzN>PWv^bs4Bml?0O$D)2WB;Kx4zKYl-X zWHJSSA3vGgJ{dT9Xi{-<#pHpBeaq&QCUqDHxEpwWs5RBc1XvFvhcnz+Hr}&#VgaOQ zPuAoNck-qH)T>?$@H=AgVvx4JJpJ^PeYI*zeRa`Qsaj3Ars`e2kA)eMh$8{}$s!qj zQg|hzI_QTG`f9944=enK4<=8+m!{a5d_RIXGDapWeQbj^D(}DZK+>7AE7$Sde|ztL zUvFvGqEnMv-!(9E!UJ6O)-<~-)&W1EYM_MPGIvsxNZT<@fQW#MiGqQJYssv63sxwp zs7=EKc=<&68{!9>8d}<pB>dVWw8?t$5^a<q$u377bl4I3a^%XB?0GM_>z>!W7<Aif zzVttz`@(PD@`sX26;&WanF@BOY`2Pbs$#E4>{COk>QdBn%;OHJ>y-M^)sv>7OkvJw zsX!~IHJ7civ)Z_*y~{efs)H*cTodWKE(&#XTUWRA^QyjH@w7J#^sd3)H^_U2`p|Iy zGR#ND`otI?o8^1cePf~rX8O)FUz_1ub3L>uL46^U6&U0M9<l=lcRGP?+Tj(Y8H7R` zJtQ^NEF_LE@zKw&iSoBpA0>Gw#Rm%C$$g_T3y%e$*H>9dWtCS70kbd|62W+-maD-U zEQz#M^H90h)<+8BhQWPfLp=X)&J%Bn57LF3w<PHK>|a6KAgD^L03z7{%JCr11M9vG zcK$7x{R8NA06?l$Q4Sm}Dk6%5mlH53gE}zm;tgt%vXr`oeXt1@3QCeaMBVCHB+F*^ zjl?wEv<re0QXqHMD%(OT6*4I#^+fb^qeM{tNSdD5r;%kZi^J+#sXQQ5U?0ZS$z*lX zjaj>F>olQNiXu&tIVmhV25W}0J&dCoqCn83qbTObX<<u^3a|i8&7JP-dLoME$a>(B zNXb%&+jIS#wWvDenj?@;V~gfM2VoZkm#kUMuFM@UB_<Nu+z4^FGEJNEqdFc%m%oh1 ztUgwU{a0ZXX#R$x4TwUVRSIu2PPsPKo5wb&a#G@04)Q$J|4FKp-j|2p2!p`!BEy@! z)IMgv0E?ekx+R_adfNclB{eDcG71cK$_1*p?{78{&;XA@k*6%fcrXCXb_Ha0N)ky) z1P)}DzyT}7IN>ZWvD)%Km#^miY*-`Jbgl2h)KRaF61@zap{(4LN+@QtGa->3>mi~D ztl6eU7D$i<0Z@BrQ08Ca2%QIE5=d*|fNshY5zc?w4sy}`q|Y8hPY_W8BSUpaTGJ8& z5Mio<nHubC1^Q+aMMIu4tAUX-Xe?8(r|?ewSoFvj7^Ku9sy(WPO;W9$WL>^IjRJkG zsw#(fHEdhi*UABj)sv~hc25j5OeQMP7?zMTVq{$4B8u@dheAo|U~oc*NXC$PQz4*0 z3Ltqv&$P)VrwtxA1?{y2lblkj#u%R?aCf0m0=a=Zv-g1`Hg~%-fwg#XSAc=zU)NUL zF~I~~g1`9j*9^;>CwIkZPI<yujGD=uL;Vn1np#=Oxpt1Fi0ucK<tJ*10k^!<k|-6* zshDR>ND(3DG3H;!6w^I74Ipy&2N<MAYw1nN5Z<gMtR@Xu=RmYq^ks)H2HG&TG}%dJ zn6=mwreC}g=UxVShcUvRU@ytX&H$pk7Rhva8pOSS#{~XwEEdTIUVr;{$^3NEVBaXs zH5w>#G}=M6Qy~o|utjyK1q9ycp47!tI2mvhA5(t3hEhw&1mjFwBu`~*?_zQcp)2mt z5HEPc%N)h9+)^x=!8Ec~MEMcVZz(0ZDVR?d%;5V!BbaI)*xlWK7fEKMy9+g?IFr2; z8mh*&%U$x%kn#y&hs@qh&*gLghR5>1d$q6L9ZxjQ6*?R^SCMQjL~>JRa6m<7$*tRM z*jS}jM(LGA3)>6*X;hX8S7JIW3K;3;@%R^*#eM&c2AL$MyBZU;YK)Z<LzsyW+eqm% zbml0cg6;54_auLu<m6qBt?Q}jt9ZVJlh$D|U<Yo#AoujF-)NakBwy@C<}L!YQ-yxp zFN64+OG_(>LD$Lt<Yh$cVD@vIRQ4=0{$9A;;(MRj^Z6|P$ooKm7w6}zf<{J#NiY(M zs-wd4f=uv1*air{fx285^~xkUy3(|>DkQa0aO`cwmF`&uqqlQ<?V5-i#1S3F)H?;0 zsAZHUk|YdL(xI!Ub!U`DPA|=*f_j-Kq6cbww8|m*j~jb`{`yf@RJZgXyD-?8G(P3q zZN{nPM{@n=q&c%DUt$J-7vWs$T?kVRQazdObb<8MWOJ)@{Jb;WbMW-rqbXIaQ|6LN zl~PM7{hlq_+uX!%YT}+Qw%yL5?^tksUYyJXhwCvm`>;nckZQ|fbDi<tm)fFavV5JW zcht5n<<I#q&Tzqmsn`iaNJImoFAvNuK#B)aX(P@<t0edUMW1tOEQX}N9pF_zDU?d! zyhJLWxm7c?jp`pJV5&~2({_tE7V7@;UgF5hJG_|xNteJ$Foxnt$x)lyouY*{hXY3) zbl}Y<HAxBqKF_|v-APXFfA&oj;-DWnmlCgUR-i8`<og(jP`Y@Ib`G;#KEI*3_MV-B z`Q35JW7;+~W<x8A2}5`HSIP{ep!6dtkmIzYBc8*hLZY*%tZuYS66Y7p**}OKJn18& zLbSv1;+-#n8RKGDCo2dkF~6KU|5??zh)@?IHE=}%GGoea7rDGh898(t&Nng8pVILc z86NKho*6-_LN}jTc~qqFQ2U<|@n?JOo@`dLR~W5YbY*Wne)8Un|9`r7yH4cS(*ZIZ zV`@Ex9yc~yP}n<SebeSDb$YZ(mCe2~XVxHt!fCz#>_zwJ?9^+Z)U8Xob84CJI;vQ7 z`sbka1W+gDSX=3v)Oq5S;H0^D%Wxv(T*r`HPpqECNo}oH@8tx;=LD1MVd|w@x%Ff@ zsfnsZykA?I&y_UFQvfK7*?O4d;(h-YXMS3XmIp?CZjFlw97B@dh(;IMRf45$jX4zy zjHQ$72)I-j3J`$0&fnVr2=Y^&ONJ>gZX7>w(MowKIV9%XTjcX#3j5hC1S&sM!;Ko0 zIa<1Y#}y#IrPQC65f`>nsCUg5!6c_A=@Xmmk#QEX?B2&tojLyRoaWg{-H1o=PDYZN zdsN8OuGrdaJ=>{p`52EtiEv6~4wFhm#)5qV57d=?9wHU2C6mnK0kMREm4x;NhG>9} zssWyYA(SJ1%{r5kz2~{oSzSD0*{>%qGf`|b*{pX`kZLzn8Kfuf2#)RIR5L~VM$1>+ z=%;8xDkL7#tj3$r8uueREXQs~cuV*-8m|YiFH?I;d#KIXx2)Z6-DVmLuNuxN$ddD~ ztUTrF(N>(>NI$Pljh?11wf-$(jPEjybgn>DfnpKqVQ%TX3Yu}Dg$|XX{U9nlmsWyB zPBg7d=cr*Fo&uRz0ayDtAKEDgK%3+hOt$u`uv(oki_6eVtTk;4r8BABJcAOS*S><` zrV4hB8d@>r<^3`XI6H5B{eT)WPI$0_4P*;Fvj__fVphMn-7;EG-@ERhH||Uf48z0R z1*Q=mN}|cT__kRsgV*e4!Y~@3wzA{P`kC9KpB7bbDlBb!dOg#D&91n5KsK;R_JjuI zuB*KrYx>Ip;d|RSpA1%#-<o_r8E(zUI@tgN7mI7)J3$4M^%x3A7Vif?^C=bKH}E<# ziO7G^0@a<atabe^<+d*V(QrrOB7bBQ*gIWtGs){8q|vk6DySYJ8&M=vR)H4zXgKRa zjzZeY=exsDphWQ2hWk=i(B*fzo@crjd+E!O7rNx7aNtAD7YKiGAiC1{ebm|hC-aE1 ztt@zbFfH636fi7y=?oXKa&_^Ui|FMdo5uT@edSDKkL?!A{Laqb+tQ;jy)VzV&M(=w zp;2*6@Na}2*DA28NlS|(%RK6$`kc!7#k1Qij`F<{H_#$yQ3zFqJGLILtb#r)CH;Q| zP+-B92BR^VQVQ>n^Wx#yd6l(BijM~Xn7zN8e7Y@44Bn5Fo@g&7*$Rv;mfv&UciHB6 zjm+gzv5GEnD=LCr_GE2nl)skcQU|MgH7h0vvfxqA^tyewvuIYUmOhQr^+Qeo(a}DB ztzuHK>4j&^<DzmS>c4A$N{Ydie<VCpf=+(8lEWiE(-pKRm>`H`n+E%fJ7eWf4zTHO z3yx}J`zchr;mKryLk|RWJLCvc$W#SC5gLuR$A1aNBe~$cmdTv5SzMpSY)D)e!}*C7 zlsj!wJ)l;VW)!04Z4fS{R9oM|c1!S2qiR=7f##dqckWVGPoT{pG%VjU6>|sXwcfJ& z_&K<Jq`|HoAbC?*C#8${G36*o@ss%9y?^2sN&h~5#*``TAqMJkHYK^q$or$Anctls zS6v^4NxPK^$9mG@6s2Jp6;~X|LwJQHj+=8_(JgD8UHk!?+KKcquw*KDYM{`gT$}Z= zSC?@>L<f8se8{9=FogkD%mt%nY>Yc>wT#o9*Hc;IhUhH{%J`GPIOCNQfT*`jjVi1> zv9{KE1M|U4US1~X*~o9|F9NQLHRj8gE&~HnaCjT2_@9NJKYrb}zZ#$j@{6ihc3;Q_ z%NK)nakH~_Tl8c(pnY!sluV@;H}z*cJ!7Hva5Y+w`|c~!4juEeEVq|Fw>A<iSPUl3 zJn3=xQ{N~xKz&zz`1r@q6<?tO4kI7kBZ=mUHE6V0I0GCk9DdoNxAY|TAVuhRDxU>T z{r6V*MjYw_nyiV-N=U75s(S;-z`sBG@h?Ah{kiG)vAB=kCr&TY-_JKu`oUa8yM8*D z`d75UJto#Qm!IA#OV;%z%F*l)DmB-#P4QOjKOwLD_%*^FNDw{ZnAV@?DUgbQADy4L zr3%*BwP)EwNOMjqL6Oo;?SReR^;01bDLE6tD=)ceom7IJGEeLD95k=9IYCv4u+=qe z*X27Q@>Hg^)y6auBD?Z7-QOSX{~yr3$J=*Nf&cuY&l8DREG)o?U4~w|snZ>NV%CA! zo?y~(_RwRlOk$R)kV0x-=ZPK{uQO@S64mfrJPh7a4e*2E%a$~ro%cci1X=&mYIE>c z<moN&JH>mi{NY7+gZ_IXwmehT)h5N-<PB2uZ}3}(%L(bt9r;+kZ$rAWr|j^WLNEXE zW8q|nu5OBdH}dKEV*g!mz4+2cv4VosbuC$lIou?2{D#TM-MW9`$bJY9^cHRJbsD5b zf)2Y+D6)&X6=DoqAwNR@Js{^GL)!1z-aWUoqiVr{D9~cEJUAh`D~pG|v&C<GAGi%% zJgl(RI9fk5hhDZc)nOMVEeBP5>c(n$Nqbc3Sa6_GHV%LoOfP&As~@1c*L|f2WFk3; zs`a+^tC&N<VBr<ZGe16QceD7iJ5an=BZ~I|YTx>XRJ?>#*b;cP-2GP^GLUp;_;U5h z(aSAKAOmrpY>CGZ_^cV1@JQ@5$C_Zf%Bm|gz(v&ftQk(A>SxV3iwYC9=JE+Y@@H9U zfgDsGsI`z!Fz3&hr3J2vLf*KQCr+6oBFq&LpG*N?r`|kh8t<_i;5E!>I&;O&%qT#e zu!LFH{uuDie}$JV8w3Pzt-iA)0Cy2pNza`iB$J5X4ysq4aCRH`U&jAN{p8t@lP(MT z_jG1!Q-~>`*?wI6R%K;sQb65h^hC81rJqI@x9INv#GrX;{mhiV3+XhL5&rPa$xjzX zT$`7&DjIzIHTI^u3C=9GKX#&q{ki^!=N_%T4v0bpOfM1c5IuAZ6b2gK9@uC9_h+v# zyI0<JPHL~n4ay-oQo!mlVDzl*fko%OzJECmq~e#3``k<db_zJE;-SG(RNPY6x2P#P z27^|`<IRQG;C{rNpuQ<?vKYE*^VQycNdEr(6=t{2Y@4e5UAN+7tb@R9)q$}1Cu7Y| z6PYtXOu{HiE;`*=R<rYBvx2)biIbHyhZv9)4I(#x#z-x@ao%4XT6Q%WtP2Q7qfG*g zB_}{?0-l8M;Dz+P(ZUOJMep!U6_>{?Ne7>0$}F5qNH{v1DXZ|AENiR@jXC|Fhl5TZ zZQ8FFFtHRz@Kryuz(0nQ|24R||K2F!g}H(kcu+<3xHakE><K3e#}X2bJ~-i2;jF%a z2g_aF<J)?+cU%6I9Z`W@ok7zHH6d}z<5StPZ$C?#-V|XX0NZ+kUR&?7G!I;w?eqrU zRCTx@?1(m|6WlTg(y-L!whPSY!~Bq@s>Ax2Zu4_lGIG#Adqu?6sqz<GT?IIdjz5Ju zd3iaia13|m+Q^+WDsXS1(>r`o)%n_;5QC>PZS(HUOc+7Pf|K3v;m*vi@fCrNk*S^I z@1vRrcGFdU8*NnOa#PbXJDIwpi@Brdy73^HpQAlqlz*KiNqhUNv^~|G@w@%zsEIb7 zAskw>&JKutwdbqC)&<zo1GE^|%onz9+dj%CxX|~7iO*;(e2vd4FFYmej<BE`OOAk4 zoGU3R``sY!;N@mnmrirHj$Evjd+8!r89cYtD%dWdKRRyrk(vJ^s+q*DEvU#y-*TMU z4oJkGLO#wO%Dvk7`Yp3xHS?Z9XizXc@BN6{ny`BtuDtrR=N9l^v|0D(5yAfIRA$%C zNW0JiHFyVv<-I2B>23VUpA3IJ$Q@ROL2-ccr$OFo8Aa6%0(M68gzMs0hS)^xju!Xs zKHrxF(h$2@Buh_TJy=4L7npa=7N<6kmN<?peK_Qq?4<^N`(tBv9i6&tvTMglOY<|= zjLMzqU#A!lc%--JCBA92@Zp2T&ad!AgGG;8_MCo_Dd*+cU3<>VWy`$xWW+Cu@0Vg| zqTSHl@uyP2jILl%yn*M|-RB}RfdNa#Fr5{;LwA<6R@_aZC6MDE<z>%!`^ry}eBxZ< zujOEmVB-^0O&ooG)xwiqpN1Rq3upFTYeg<lJj)s<<=$Ky6Z&Yh@ccZ{2VYfjxg_if z*7qlPg5C|QZahnuU6^KEwsfB?bBSIgJxd*AM<425$nIbRuHB7or6Ypp`RxnKxHQ}4 z9llEZL-j_R(TydiK<Y9}{Me9x@nW0I+p`mK8M1W#@V}NX99ybM-y#WJP?`nK;PuZd zCv|SmcLweUj(mtkR$yNgXfnP&G$u;o=Zp5^{8cNCnYM4uK-|ZIV~Rt^?GwPxC{U|= zrW=!+Lv=y>5#AfLFPPTtPr}xJ*Xm!z*k?imQt^3T;zH@#+Cr?jSf54*2hlG^Rv3fH z`*Py)D;qP_0c4=$m7k>Rx*tdDEuPirzfyhsJk^ON+$;InUxCEt=Axw_1HTN8qLb(K zMuNjgjGD~3T!dr{MlyUC=q#MOwH6tex;d{pJ$KWvoCGo~^mXBWztBJfzx~lj$D@UR za2|Dj8y2h-d`AHu{qav2fY7Kv$i-Xt9upI+0v}(5-i%LPe0&|jl6CbgvJkpc?5+IG z$CXzSe(-wr2p*zwq1N8Epb+hE&#Y(-(vaMHh5mNLOm?<hWOEXDB^R0(&ti`c7p`4D zx0(mR%4>F?=3j92qkHMh)@@A4WD_&8OYQo9w+k8nFXw~Z?}RG90_$c!;zeM3#+lPz zcjacz`w@fv=sb0%S6CM1_?&k?Kxgd2u$L)-WK`ob38!82z=gSvAAH+bbd7h1=D=L8 z(}7f%Q2#vvECb3=d{jf-=|`8Gd3$W*?o-pbUU>bUr(^4eulG3pJWNedcgKm8H0JH% z88Ig9S9G*VB`v9YB8xAm+kNtVW9w_Ye!3M0n*|SdTeXGc&3ySWX{mqeSuX_B5(ZIx zQRy;meh)Wi_Doc=ZFyg$5o`XFuGy>4f_WP-dQ~l7C&-3w<rHd$o~hxTn|Je==rofQ zG{%RPUzEQn9#1V0M=Y?4WxAQIK-1N<UDX8YSBejAU4yuKd%pdr;On<JvcGv-@S<g7 z4bSaKs;){x%$C~tRdohJ%!;q#+$Iybib-GxMczsD5?@rceeRLQG{VoPgvhR7hH7+r zlrHV|v^;$&bi*Z<g-ExOha9`-IJ44m;#yfnW_q8g!G9hl2dXcvF2<%iymWS#wVqu@ zO>#nr$imVC%<ciYj@imC-ha6zTNCWX;t<stmP7HZve?Pn!)*#0hh(SnDR^d$FKPrv z{|MZ1_s^iKSN`J9yYqYTt6S5%`jtpJ+MAZ%(^rXvlzu$%=27HVocVD8QgOCCWpNP3 z;<vGnZ!HGEK|CDr=$?vTPlk*?k>;$BHHeh0Jq<n}4WIXN_p{M>-h!ieFjzSyEo2r) z-JaPN&Zigp^sDOtYXd*(3HqULz0O~)29<r$uR+(ZzbrWHX$;1N9W?oe+>OEbW&~_P z=64MkvKDN31k5~SmEjsq_05x#1m;>AX2umt!t+D3q<LSbyCv$-*{p+m-n_~YGxt$O zO4Ih06-b400b!?iMyY+>?d?yXCNun_Vy&s!s%|0HWRz#6gA`1kTO&`x<aJV!9Y>c$ zHDrSW(V*jUaZ;T<f8^F=ro~g%g)N(qYA@YigmXo|dx)j&Y*@_DTYGC--vBB20c+6k z^oM}ctNJo&5lGz<kfn5N!~O`+a7KVoV#h4l&{vKPCpH#)XIndXfvj#|^jF~C%irz0 zv_Hw;Q*Oc;{2jjQRw+fa3tXBaKV?(Gq?k(Is~~<9SXGVL->bQ%_jtQY<}cUes)-8W zh4N~ryW=<amSJsXZ*j?vUK!$Y`>?PnXt3+1>UEHcWynUO){_CK7dSQc>jf*94Twz% z5l*qHc;r5Kb@tq|SGlIm>GIVfBst~{<>NxpFL#fw>Zwb^;v;QEx$7FTupqT1e{Vu* zX#yt47bPT=7R8`@7NS;_eaoM1W~GjsKVE{DZvS}b(2=E=;N|BZ?vD#i>a9cKto31` zwW$(2;{PZP9w2U-9~c-5zRbpSjDYDmo+iP@2<zc)W9Vtc0108B-stMkn7rEZ1oVlN z_oALTUquWyqZJmw*vg*qhJmalbg&@;Opndhb)oq<q5V*APk*o;Jv;f6%+a!kv(4gh z{+qzcZlFdts)s<^HBD6%gU(S=R|&zEOo<0(XEx&`zNu;C-WGAkO@Da@R$@D5BB3SN zj}frAlCV8RdllHw20Yd$(B0Xc&G10<NCsK=TocxYAt-45e!Py27*qWoZ9jXFZeC}b z6st2ku%S{}_L@A5p1i@8I|9T!0}}FVb*fwY4lheqwPj#&-g=qbgUfV9mmxtOUO_=5 zbREjXKd@rw>}qUB6y_uScYx)Us?zG?@Z6w8iYDPebfhaL9h7C~w#%Z?Jvy?75NORw zWMFD~eU;oR$j1>8!+gCwxxS8w80zC$>)`Edj<CKY2M2GG1zPoWM%AJTYNviUIw-}` zJoG}tU6L`s6=5E|WixZnG3ib<o{W#<tY807VNR?v%+j3F*}2=c*TpG^g${EUKawVn zEWLlVg@N2%Zsk(H%P0)J?RK*SkvSGDMUN^Eb5E#BhN!Qoyg9YSB1}D;o$MK}&+xYj z1-qXHQHzRFH#i9Q<Ke6AVkWHPtW@7+Uve%Jmw&ZHvekdiM_K=2+HJ1!o9^oad3*dS z>us7$$KPemX~Cj=`>@LWZUy}f45<~}&z#-GG>Q4A#Ei(3lJW+Vu#?kXsOqHIUUAO) zo5sk~`A6qZyLusp)dLZA+py?a5K*NSz7CW>e>XwW-8-8%*ZL&gT()ds#HX+^e1?eT zpOnl&{~5XXrnEDaYHf+PkuA9nh8>l3XG9qG-%DCK|8qaUH-Eh~+So00{)i}sz6sOJ zy2kcYdSBK<rBU<{f{Lyp4K&qG?V4xh>1AnAWvhm@uzcdNWz-0BT;6{=Wb8!u!tmfw zwpo}xCd^KZ;iQD=3c%5>pmoAqC0n-NoJ=$5x%O32Zcdiro-FY66&DVN<iugQxNuoc zBrXTxeUut4&k4!T4++lC3kgX%xcxFmNbL}C>g|n-J<%)?-;BC2eg->G{O?U)?*TMR z!1ukTZ@3OvFa#X9FIRFOScEHcc3*H$&vcvakp*U-KESEE1;T?>x;r|rxzNF_>nH|1 zKB>785{w2TF3@-YJ!zcA{Xqiya#~HOOBX)GhlxIFjlpf}E>M-#Pkxsh-}e@<Y8bfk z>mRSZ`&NZUY6&x8`nY3?h~eX*Pr~=Qh&<-1`<j0eKJVeUguyV4nsvOCL<U(AAI^87 zF!_OjaV>s$q<?KCt&w`uA0HIxpvS`a0TZ^?`=4p|@?Qm4_`&_|u>(pp05<=EywS#= z<)_<Y{ItEmjjL8y^jG5|qXI$KK_n&^KLRY?3tC~xKG0;u(8om`MNfo9r&um{{wd|> zU_zXM>!IAk|Jg?C|E}%3aXW*ub1)=i)2682_J<k0(r9zN&HcN4x$CcfOgne=<H_FT zw$2185Qkqoc?a22{HjW3M+qjg(<D<YqoO7{GbaTyNpnH?GVtt^qIqHJ3*Lx1?P-P8 zE#gE)OJSO#9o<_j0ZpU2Y^Wv@Cu}>vwLZHm!ypT6?+<DWW_yw-ES3-IKSs$j`g{uI zUz(=xIOUJ8N)n$tc0;^BJR~!3W#xG(wx8SGvgOtL{vW{h&Y)*5F!a{nue;9wWd^!D z#lXRTI0-(Phv1XYGUZ?)b=6XzLVwJ>lu>Op7`?8$06Sm1cX7{+g769)=mKhvR0tws zQltGac8hO6^$`8~hB{1~-N)?M^6RR*4u?8}7F&;$XC_oeC1Px1$~vcqtm1At#;<CR zHmK|$Fjc*sjXsOwn(R;bJwLzCzRw>D8srKl;vD@Qu)=m+h}j3e#n0G}{e#EV4+cs2 z88P^w=+nfBu3#XNyN;u5ehZ;dEvfD8lH~UG)a1_gWJzbcB-=ia<?Is3vUjAjT%74F z9LWVryoThCFo0L{tKH>C3psY3UzuLt-wHo<QH+i^QjNr*$EwR<Z=5)MVZi3mpk;p* zBV^A33l^$hx4bw^8DLEtHeOV#7_bq^oYC4JjiA4h+I9Sv_PnR~v^x8G!Gn|yl}PFg zT288=hnEc>t8(Jfxs0(&x<fQbj0Vw(&l08xRfxlh4O>7~TrV(w;qa$OW@e3Ex%@E% z94{RdwXR7^i;6^T2rTyXFFW^um|0-=&iN9txS<}*nFYcpxPn=;!Oq=cv2(-j`kSCK z&Hjhq)OEZ4ij-DOIM5liSjmmfvF0dMr7;*EpT6EggSq|)%igaiUx?vbWJKEWLHq#F zuzLVCMms>R6tOUJV|KsUW77Q#JN(}tqh_PgfH+Jlxg`s%ijx9O5EcX0;;#)Et=X7! zxJAw?i|w2CA>YOFpWhg+OUVQsPgDRK@k490&NV6gZI(2&XR>Ul#|b)EdTpgr#)DUR zNvF6i9P?$<89XsGC!8H8lSN^{HLU^zyWJm-PA7Srtt5lZ?LqkBhN$FNI!MAon)TKW zRipo0x1#*5Gl&f<DxEoVdfL+Hm6dLp+_yb_N&VK?768q@daG=x9!LcD(51G%J7EFY zc?GzGCku%MC^=P98QUAJO^`GHs)B&ByZ@4XJSDr+$o62_@{o~|0Q?&v51$|v2P>78 zz>G!V!R>_%7@N``EY~06GX~zJ>b`7i!Lby2t#ssQ{x##}OOZltD>6F{l*!bnmR9FG zw8?wp-<O%EOu?VDCD0|Ng8#gPsg$#jVp^6D#r$%B1P)xjw>*hgx>5Q>MO+^l9$bYT zb}1t{?C*V8jVzMUukbx2C?lz#8l69WTP(h`I?*&zi>vLo+<(57_O2*!3WFZXZ~j8< zH3MI5c!fG7-qGJwe<6eByMovWAP$QsfHNq5Eg0VqWr|HS`^nYV$dyzlA(4!XNv^E% z_AVqNqkoKd{nQ}zwI|M)^?5f3r7C;vl~sX|GkIKb0G;|sD(@<s&QB;FYp07pibyMy zkkBbjKi8%H3`d=g6%YgkxY6RF+YoifKP;rY_{K{0bZkLzpVbU^GMzCY5ZHuLn|4(~ z=%(R$(%?$vnWQPwAd&uE!vp9ao#-w?Z>xe%ZqE$2rWxw?s8)UXk~_Rl;6u=j><U^d z4t%@qN+ZrMdc}&peyh37(jN^pLhpc@)4{Q4h&n;SNES0DDM<^|m<dY81>)M~)ImSf zL;hzTfRJeO!rr>-f+ECY?Ub0fc*NIwvum|qdQSIQK>iG2U)KunKgPSiLSVdj){-_X zZv&>?koQa4HC}FOyqFW3pN&qh#xo^hwD4+w!_v|rOUY3drs-xHyFLKyz;EZQ#9Az+ ze<rK^9Jq#m6$HJ^#|`{Dk8-%T_1zTa%6qMg73pqdsn+MN1LRbG9nvm;Yp&ABmwxjy zT>U~Bf^G%M{~8XvzVxPA_~4--;}>rX*m~$fYS|;vqM9ZqdxuX--D`B?mtP(#{YIDU zl%3msasL$7gNbt?-foxrx;giYs?qxJm5o0>PEmf7<M+0Fd11@<PYx=6DhVBjcZAb= zA_cUr`mk_reGt1VMnLPSi$L91d;iVp-8RTD<`zfs8(O!thD}IaN0FNQHr>S*yj#6L z?b8P(JL3B2rat4c?v(WSy?JCQ%d1%s<)td6hXj=}e3~NTe49!G@T}tdJ^;n{X;uB1 z;rvg&spb5-^}pp^Hqh#=L0H#N+qEYb&kSCfP!hpVt{Yj69oNpLKUYb&q=KW<K-BEl zWhw>^PL>}0;W#j%;LPOSz0qB}Pd5S=tMv)(rm9%qTt~DzdWSU%udvv5Yrehx)?C{L zax?R7ivPeyY#E1F_RpW}SnPjgqjk$AJ02`uarujdyrtVECPJ`09MtY7^rR=YbQdFT z??xdb#e1a>SlSM>o4-8)%`2zRb4#Q8B`Inon3GVM=$-5_pA3fA0U@6^@uqR9=>2qv zi=mgn1OS6;gJKgx!7Zdc7wqSWUK6}rO8TX*NL+zhGgmk#f^6)+aTGpv8=!UIj)wIU zd{|!VQcRwYtZ{i#_wILRlQcowZTPyS@7RWoZ^6%%?e4ZD3?97f$i<Oz<={vsQZF6^ zRUeiBTFeLk+}U4zEgaBt9yr;Hq=nF(<6Em+5jsK8TGxsSZwg9ST}W2>$MMNIt$%!v zR7@VFg!KK~DCpS3u8EKCj=mIDDwE2zqH@7;jOdPsf1XFff6xuwHQcW%Y%QelIcysE zt6c<&s-3S{J;2JLU}F#9@qw>GH=p-Pvv!FcyTw?+tm))J)h@#}Y@8Yvn=q$gBC1Zv za3yW?j2maMkUHVo&wtbjxUF4;9}6_XJHl(Sj}&9_!L*?uyyzIF3<vxt;q@cvj2YnN zcrmMThO7^J*M{y0@V$WmU{#Xdt1_o9XcJYKjb_@6(F8@(R;qloLka;dHix<`iML>q zR3C>_^#lMWjU@96X*6<JpY(2Le5@Vk%>Xe#&c78>Q>Nv_s6GFNR#N$)kL_SN5~K#p zwAjlr(`JmuY5nzt`o)3`70aAAfZu3h_ksu8SRcT>dAHDnaHjB$y%Y5zZQnsSJ_9J* zeX7<M&@_IUF&f7Ynn2@3D;VUZ9T)__LJNL|u&BL_4h4@Q@N}}$z)`}n{>D#SLU>vs z-7;8n-wF_xA2(zx%V%lC;XHIRJn>|>Ahg7SZ(__4nr2rsMiTV@80AMDKvSI3+sbZq zTa=PB)J50;gosmw^D1JL3J(MCur8LwS#iL`v9g_P;S6Qsrcl}*JslxhprxV{ZR<Fo z6k=Lq)(LH*EHiD!Xo7qn?dE*|D=C^5KJCa>F)I#mrP~}T2rbQ!*qapK&@^|Lv4sSm zAnfihE)klha2W&a^bp0cg0zEfCg0GK5i*;_X+j%`7UE|+<i%G00ub6nnr5S!He)oQ zrf4f^(H(3%+8lB{G&BL1?HT0?vmFQ^G`7<pfE~sMfSUP}{uXkjdV44B^FC%IyI?4! zLv5>3hGJq@%(NN19w!$b8vm<WxT)GE5obdEXkp>x`WB*czBHdy#_RmX&Q=Ye`6Q0l z078?>f~GNV#%Ka1jaIyYOrek16^ZMrxyUNQM}2hZS6TnWJKW`TvP1XH3b@jfD(ylZ zoy4jE=r-JY;u5u+_DT0|1kGJFr$XPH5*AB`*b};qtZAG)LQ5<RCdOq#)3nWukp#*9 zN(JN&O;HJLr3l%QNO;gXhJ`k&ZXN>@#$qr~WAS6?cJ->UO+D<x+xX002ADi(pe%%m z%Rq&iL}7R$@p++5L^ac9j3(5_2U}^)eJ4){XVnvLCr)~I@UD<-E(k5n@U}O};m|Zo zo3Vui4G})|7jF`pCaG%74TC<%_04LTyOL6u0{WSZp^fTAJFcFCK$BEYn`oceXr|5B z^#p12I8{LqBO(I*2oV&bAwu@W6vZO>M$XzTWPxrJlVK!j7_?Gv<>LTYe9L|vFq3+q z4-Lfeiw>>K8FD3J8kA=}W2y!gqdB!|)E5xf&i*F0Q;PzWe<WeVe7Xz8mmQ={)*|Pt z8^>zVqla+SsG3@@<EMvmHEG;6{`%zcoFDlu@-Y2lBZQs|i#&M9p@bX3%l+^%uSL|U z`{9K4y72`@bKproeRAV$PnyeirCT)uKot!$k|{QoP@<I9lrordrh=)YtCCbT08lJN zE7{>oLw%ZfBN#C>YW6(%CV&K1m-3EfZc8Q_MWM7MbHHyg#ikMwpQ6h|M8#Avm2{Pu zZQ=L*FvUy>Q^u4t6-*^lMP0(Hqd=;D4wUGn%V2B23=z!omoEeSimQbN;-XsArJ_() zQ=TBzAYa!+OT>GJzS8`J;vOj>9VPKEDM&e63aXx-j!5}>2FN3#dT!xt#l6u9Sl;Ym zd8^v;dJ+3}d52Z+pgnzg3=`W8vSS}ZwCcT68|J?02k#@KFw(gLm)vSzbYfzGKxh&F zd|o81s4plI`{mrAiH+KL1JN8Ml_1Lp?VG8G*l(Ao6V-Q!qJPZXr+*0i_&}J{_Kai@ zA&#{=riPdVlVnm%nrUR3nHHwix?KtI=&vrN9>$oM5I8q2kSUhsfiG6$+^NlQ?x)Al zDQ(LE4CV~8oE1}ID&8h0-;jeQ4j|M&blI>^|K9CCmy(XJ9$P60_xC28hNf?yiH|+< z|Nd8dpB=mJ|MwDn1>nhM_5b||$a<XdY%_J>AjQy|04VscABc;)0s!)X&bKk8P)MUF z4>j3DpliPJ2rd9x@~tMhb4}=^5sPioHr*k|FbDv;r{>Kf1X^Itc&Q=F^0)mdOh}<H zD9Xi6g%`G%#On8o{2M?F_VUsIK`8Zttom2;ntw&S1%8{jmkj|Epw`+jC;>GwVDjjL z)`fDi35wHv?;JoiHUNU}75mwC_)wIlJB$|*5l{+!+BDfR_=FI^h6xJ>Y*&q1WQ&0z zF`9)rB!&V3R5sdlF+i@oFmokb40x(uq=gGR3A6fLuN7H7X_Fln0J5WGAUlGJoFXXe z2LnRlL(|db5Jh1-1}`#?oC9DAY*iM8LmH(svRnrh!cN*o(tM-Tzy%;w?o1XwYr^2W zCb&b77HWcue~6~S&qZgY@o1_?AoW5VFl>{&_*(Ey?b0c_gXR~SPsq#&FF<4NV4AWH zR6N@lx=^C2c&k9M!t4;J(0d9XO5cm)05wauARC~*iZm}7p#Fk_Ko0fZtbvi0zXG6+ z1mXc@HbJ{|i&q2CAYG5+)Wac7-Y6=f3sSyUXyryG0P5`<oB^P-bO-2Kfm`e8`$Aba zsN?NY-l0c9ORWo{Bc(;Y50Z}7F|a8{J1;Yqi6`|N<Zn%TJb+nfo6y`u2M%?DPvXK( z!pI2Lr{$BjfCmor#*h%R;_lXzN4=GYoW1~W`@w*w_|T+A#;AC$ssF6P7b}g2b3G^k zMzTcsmG<1_GI#P13N*1YD4Sl74S+8;dihU?4(vCDngX2~N5vl%S!q1DdeCLhK`blG z4k6G7$=km*zYEaIbbHhMi*YvapKUS!3b9S<sbQ{wm(Y^Z+(M0u4KiWeh7Sp4w+ZAI z6s*=2VZ0}Xb!P;b1uN)!n5Fe9nSduYI-%=1b4r(0np|a){$@c9f-t!Y*&5{pq-_*{ z>UhkWkl;GdV^7eXXfL%@x5KRdVgAs=hgpkd&jzijA-#<i)SMh9pHazbNRW+As5$N) zN|#k6S1IY=+o(YhCU+rQqnv=WjRH_zKE$uFf;EFMcd2Bn3a_xy32VkxQ+mM9)>DJz zP|01$_6U}!N^S$Z<Z5P<psy;9zF^pU*f5qr=i+~A3`<}bqiwlN7Jth^;0=)PG#_z5 zTu-aCiO$he?2K3(mWm})$NFcB?l7yk^z(%JJ8r^g(wOOX_?ZE}Ixv;oYBzkO9zqvD zmgz01C*qh;2zYUc<Gk@g<(iPe!95osQO#FWqrY_<63Ot_vI$myEdZaxURkmjA3;io zNgE4+d;P=E^)RLtL5k(#!P1!tn1UH)D(12m)A-j=SIw%u=NMipWwDYIfXd8H;t~48 zL7t*jh(w4M?&0Ion;WkaGO0U|7ZbD;Xi}!qOndYwW~9R!mGFox-SJ7%sq_bLi+Yy7 zqsI73k90g1GAQm|NPlp}<GfulHHPg?)r_~Rs^qTdnyQ1UHyqz+|Bc5d=`a8P-WOTm zy_j79G&=@h3L^od1uz0{T<;Byz!$*_-^&F65)da|xbn_w09c#_Ab^Ad%B5oiD0c!} zAw{-IbsBZMX4F&fBQb3-^pY{Tk~alWII$?33aOl`Xa$$$wyejdOl3Ew^EPf`k)I*y zk}D<hP1XWd+DQlMEqbTkr;qA0nytC|nF%uCi<I(YXb|Z`jv{A~Yshn{Q^QW9&!%mr zMbV;ZhiF{&JN0+<f_hVZIPA`_$>BHYA@m0$sPYm<6yt{T!H7E}CP%)Wd5n3MnZiuf zz&VbwbI3X6BsfgxuJhb^=X`U1Hv?&QNGoI*vI;qcyh24`%dl5CARHFn5q{=+x#8|^ zH`YDjCb$xOO`=;Q{^*RSBhN>^8~JWj6wneDqKXI+aiUe@pvEm4_h>vavs&>?GZea= z_(|dyiBC5_*E}+Ddg98YQ?qWHb$Qavq?JiK)BczaRM7~ovZ{XACXLBrl-i(nsGn{B zcKeUp&#NX>^Qv{#{>;B;?Zj2IiFVPC&s&?iKl|Oz7dp>P8<;jRZE@Q6^e-(KnZ7)I zdwOop|0!y!N|(^JX&%x%rFpaF-I@<;4$YXHd5_lXy}16qh5fVUX06TIyIo;>u?Sr7 zAwaEp%xSb1>#-3xbDg=KTpu(L4M(@331~W6>|E#je{nVnqdcmjkv6<?ma~z)X=$^> zMwj>UY6bZ|!a!lT@JbEVWG&WK<wV57=JDs*&->aNV!1e{)B91+^lBFehnnv`-(Rvp zk|2>u%IDJ5PwNaFTF4XH3u{l$<FMe$v-$>YPkz>Rr7N?Sl&5$8_t~#j{pt#<vpB`{ zm%E3-_)^Fn9`h0nI;?o;Cr*Yc+}^(bv*vtJW#!GO^hQW~Qdzyc4KmCq_qyMs#+xAG z3D0}YyFT%iTJ_rOdiKAc2OKjiJ2QrPrf^znbjM8e-_IX$iEugOva+k_g^RlhZUMJW zb+)>2T~l4B+c~!sx9cxX?P0qwac_LN(_?1et@>l0k)D5gcD?e!zB~Iw`&qAk{nfDp zqQ)<J)x92Qx_C&LRy*(>_zga=mj^#XQ+f_vn=T8VsVRHZudQtifcr)NGw^uexxkBo zZ09&{_y?U0x-<0SN$}3#eZjYa5b_Xad}C$sFf=)o4F?_q>S$q*0TPgK7{i^(U6t9G zG2g9OA?;1ANl2U3Z^=7*acCgyWLWWD9rd=H-qLpFH7VR4emfjfp{mrX+Zt0&ti<(m zK=Fvhfv$n{V*wKa%L6ws36VRPr&%VfW>zn2AL}gZB}+Uwz}9BRvW4u!?6o1iIW*4G zQ;Xov;)ZY=xu?0a+~@xxyJ+Wo$mx>6>Y{+5bq#2z2ya1pX3E1X0wq3}1Nn9zI5Ou$ zJw}7M8Ki|mp{2$5g<*=|`fO3{bvx_#>6d}>13^>f^J46;iWEinpT_^#wc<C2!b<+9 zpRjXt`qiT?H96V;do!;2m6EVa5w*Qp%;A;}gWusFUdLH~%_ny#^y>ZX!?dCZ@hyv6 z!+%*=m^Pm3E|{mIUYkPfM@y0RD;Y5hpznu&IsB~2ur5Fc4TAZ@N|72o8d?SnglO_A ztf5IT3`igZfa$6Rn|gbXu#y#Z0ruH@<u^pW0;C(zKq&r?WeO0UHYcp8BzhoX5yW=? z7lEZPTRG+NU6!q3?qMR!w5|P+25EjcBi^Th%<+C8wt25}Ge{MztR)xR)QdIwseEc5 zppkpuGbm(&+*WC?k$uU3?;w8g=Juv6QVqQP`XsS~Kjpiq{-wR}vUitIc=DAk9tO+} zMVF;aGR)3u!!-43n2Y)D;cq$LW7fuR7ejeT!&fb2S{N2Z?Zx=LKNr{A*{#8tdh4H% zuwp**)KAq>_{qm~fdLsP+D>PZR(Q1gFunO@^FnW+!$xpH-kn)3#3@#Ei0BZ5-g5?r z4&1k*UN0tFX%*XAcLEmjfBd209~Dj2lc^_28OfBSlQu_zj<tF_?P{r)$?4H+`})r- z0WBT5xu$D|FXC6ywa_cV=KUh%oomk5G88}|0>D+Wfj4N?<AgyFJx99)5K2XnjS#&) z!PH@2V}Yql8=qM17Y9F1{qQ7Nz4{ez&({TdC@Mlt0yF#F>_--iW!6gj#^b5{FBImn zC3k+eJdkmi*~N|B;rt_>B`xgxv?)AJQG-Ad^=#|VX5fOcTxsanm9XO-HGI_Keb=e< zzzR>2JAQ8^K`42ndR1&1UNcu@Nc$AXy3P;VeP_3|$?Kk!5fEEgK5+1{39MB!pO%lX z`&Sc=6F_|f>CK2AM2ysCFEClM3S+Xu4mHce5=(I^n*)2?o0=-JTV<x(|I)C-RMCTC z&y@2Q9qC36OS0aT^wg3<hPR|}AWwr4@(MAol7k0B@5ct~F%oGEY^Z>SIAXM2D88mS z@YLm1PrY!RR?S5H*>@<$v6N>)978^}b=?q_G-w?Z<6a&S#5={eMqM|IrAJPWZE5KO zwrIg#@%MEodMN#5<R(CF12(+4Pf+v><fMk4b&kZ@p{$Mu977a0Ng(4{{pTPMkary1 zs$+h?tnrH_k;T(Yx9#z$NL7~e)T+}C*_|U2HTyO6ocB5tnb{n+0b6eCxhzv&Fnr!s zZ>$$&M)}2uC12%{aV7ao<n=(u1Z7^MH2Qr@le1*0r&XN~6b*cRl)u-WQg4#UNH0t6 z--vNsrVd~Y#Spt2gxXk3meqm#sv*rbPqHxvs7lNH9f0N(p=>wHFP@#L#$Q0P=|lY1 z4{mJA#hJ9R-$r49!G;Vt!(y!P1UvV(Hr5gmYRgaTwruqJw3j~$@IF14jm}r!?B@5< z5Cg^JW|AxfjEdalH})JUdsmTVi}L1k<!6@;{OnFhcywcsDJ$*p<WRx3BPE|S3UY8S zN1hr*)l#yHaU1M&ktCeGV>5;;ej|Wgahh=TXnAGF`n8hi>ux~r-`vv&0*Y^u$a2lK zeyGsie!&Qp?vZ(wY^U8=(s>4daI62zAt+}vzX+=Kp5hgs=j3Jt4oD7j{;cbxb~Hgm z?k9cFZv`?lw5N%(EThilV^L&(u$m=KZ|^KX841C@#`j<hW<s-}bes)f7MLU0HUV%I z;OK<u1~MY(ffefKCz1$7lp=x<-Ny~*ocg~vFfa?u-;Y^dAK3Z&WIv}qgTmu4a4AS* z7uY!3QXyOW=gnSL=njT4s1PN~2_0n=o_m)|LBccXd8606e~M&#;uG)vauzyoxNcyW zKk_NHsMM1IFrX`#it$-23DR_=F9#*>h<UT98)q0YaLQXxYAdm`Z?Cs(^!fBoM&ciZ zTRxONNTx?~5zv;7zkIV*my=5VUZ86;B6r5&4k7vFH4j-#11|#{ppdHG1z8C3k|0Hv zF$(q0-K~ZD)4zT5py%rhvqeahFI$#!sRgXQ2r$meJ}uXDY)yuu7f3bk?WG}p!uv@b z`KmG5w#Jeso-*~SAl?KrF_ZT*OR$Vn?{x2;!K$pgk5bd81&fkgO;R-k7nlxRF{uM4 zpbI+P-3-y1HUFc5uVZ1^LvN~FpqT9Sot`@ffhSSuvWrA`;jrGJSrR@n-n<c>rwEff zFj*SG)qGb>W9)9sr$gGl49`|mk<I>_V(3Qb;`BTuGXaP4>tjFDX#Q;cmXet;;ezQ1 zgx%d945CQqO%?HteDvs6Urq@bBq?Q5=CdFIcLsxXFq@nx0|`EnxQ#!EATmP;>tBeU zm=w;c-dY}<R~xl@tu{Qn_}x8pXe1l<*5=ngJpY8-2Cn+eukpc8{(25BKad!h7ZzNp zj5b1|b?cVf(^4-v7vvZOckR0}8n?&C(ohI3GsL9!!Rgn-Y>Kv%%9}2_ZiG^%#*Hq9 z4+9J0Pr8=ACgR5-5r+BCt+G;L&!XkN-PG7iHxAHeHl)N(<-x!l+D~VgmW`lZl2Rro z88Qr*K_B8wV_sX!rD(u(YQ^;cSasGAzl52mj4RNH-(~6YL(H>90E<u6MkbN+e$!|> z9TQ<5A^l0>&5m1v33Qbwq!^;<x-{#oU4eW7e|#|j_=E;_R}3Uw!53DO8|pq(I9tUU zrxUYk-Xi7-=6uV{`#L*7I(l+oaFOb&K^}QkO9x;aHGs|bn2y_uPze7(wwHXRu$ZLz zJ&9P_vlJS49)EFW$Rc;C!lsOVB10d6HX2HfP9r_LGTpwrO!Oe3|5m`jH@DiQbv!~Q zie!YL6X{M5(TmUUfGj0~rw`{Mp`_T7d;Ndp7(8b5Q)eY1S`O|o=J+Gfr~%b^qdWXx zAbYp%R10N@a!=IDQlLwB&?DUx*d@yKP?IG!ka55QaA>z+iU#RV6N^gq3t#W=zxVe) zIzRW{3_-Y5%^3P9$9Ux0zpo_@UcIMicAQQ0uJ2y;Iqp}FWO$Q~mS53*$!4^b5+%`? zB*V4{f8tmqY?r2l=iud9Bz~4$?ZZ_@7&Ta^^ZXHL+>Gji*&V(<DdAkr9j1JUhV4t9 z!-9gQ#n&S=Lt*vjmY(ez;b>P`epEgXs2mZ_$?psSz$NO!AQbYEh8xDR!!S<ic*_?D zdEg!B{-3C?=KekG(Gz)C<r2C9*}+}kf1kQ3G`vHPE#=IJHiNNnoeu?_u8%4Ub_Yi? zeb^ut)Wlc8>DKIB@`OFI7eTViFiv^()TO{--0v=XPQ5(&`HvvcgpC`O+G=pz45Zow z3%2eJ#aubv`KtJP&dux2D5!Ope1$nB|J}91ey+?FAZ(C5ehuE>AGXZbxjbkR=Pc&t zdu<M#<hs1H4z+iAzfYoc(5`IQw8K9+{`Jm~tjl+^w5C5+RGKKhth@cv8PcE<8a2aO zl<zCLV<E11sTW_hTlOV(_{dUy7t0>3W|F-)I^iuzT#26h*ynbqkBN)V<j1VOyHp)3 z<m`c)neds~*_#F`mv4?pGQYiz$7m)>?E~2-m#2=r!U}za8`Nb@ylnc;=)yyT+dgZA z3-4>*$kG$<rn)N|I6=n&+WRk|LvQ|?oCCKmzq-n&e0tTb$*U~@<J88#FYSM!qgMOU z{2Pw8Hnf{nP|#JP*RhEDOaUA*Xm_Us7NTf2dc@AXgEG^BuLK38152PgSWrwM)@S*k zI&BzAc-#P`ZGN3Qpmya%Ch&jyr#Po>j_^D28r_#hnNE#%!~A-3kUQ9c%MVKLIBSKF z&ys~+LReu13;~~}TxB3%FDNas9%v68IJV@rk9l`{fx5v=RW$=FAybP=F2UUbOR3qO zo~X?CuWVVvlC*8S%hCd&xtI=oYu)$dp&hrci?5^$h^HP(zaeE>aYs&53-tRK0ih;d zj?EpqTz%<k@@~%GMXQK6o4PvN4~->3PlnG6r$4~$0E&jvhjkS-gfd(<1sDp)lC^6^ zKLx`Z>{+`p{KWR3hlDTo307mG+wjzm6niy&#<q=R8t!3;sApLO*5DA^6>DfxSBu~O z*F8v*3Qy*v40N!6uMB+u`RkNpvI`pYdNm8<KAn*H<l1pLUE&6Wg~h4f9of&~Vr4w; zyBXJ0ZaK5<t6Y{I*X>3BWJJ9ZBE@%O8kIE^^1PigWd-NE2x<zcZMTF<`hb=cQ#IWG ztD>(N>5@=9yYKC=6K~fI|vZYyEDf&Z&%G-$jodEwv8xfrkgH^sK=UZJ_I2#CZ_E z%?jCY8iZH{TVOwecuZ{6!(QR%b1^G-h#zM{SoNJUpK+0E;f)PqaDVf!HJ6g^{GG}r zJRfxo6gx`ea5*cZow`UK%9bm>C|PQ2ksTIn3HAN$y2Xq4ros82VvN!95-mTZ#LFPt z<M&I&^o!%#0ThkMZb?CR8`4Io?^R^jD=I|a+(P?HOsAZeE>5pY_2o}|Ot`ymGq^b< zubcCb+tN$sF<oX{6O2ra48ou}C?UgAEe)DQq$4z<5750LONJ`sz)MUg&wcDtR~5<~ zZ%jyIITMOQvRROiYxYEPTimT$FEl+s4OZxYMg-z0Ev&cE3x6EmSb<wxHP!V=7cAQM z=OBS=dw<YbHON{Lr2e=hL)01XJ>nP!749a6&v=;h-rng^vj*YR6B6|VG}GE=VfN`K z*&<*wgO_e?i)dm8AwBXJXTVl`1@NvyuX=G`^HaTv)Nd)r@XYAweV&msI3hx(I;@XP zIK$_F`HTo)#23oA^W~xUygneQr-iZ2Vq8~6>IrCrN$@5lKRXrZTRMCqTR3sA_@4XI z-O<cv>LC+P+h+t<vc8ze!%5Nh`5i$O?7IXju5zK6u2=XJa}SD;Iw9OZYS3$3j{gsV zsncgaH;gtKX{3D*MhyB{H=XQ0{|WZHCI?e`OYTn;XFi>rCBFZjo>AM<`s<3-^>C;4 zkzo9XSLpLxEao;COWYW5O}@WWaatJ{k<4S=dmBP^>guu^YUhoJ`j-hQ-8WJ|EP;v7 zLYLloWvjY|K@@DjUE9?Zb|2v9OoCuZxB;x*(MU8p{;B^7>&|0?kdEC#FVseBAIy1f z7`Neq9=8pcmhfTOYc40g9MLyvGt3P6;NFMJ)L?QAoSJW(P$MaS*Eo7wb>W-0ldxa^ z9~ES1HLSvZ`*QW`298&!(w9Au_-b9XI-}p!-mAdLA72ZW8QxI)dJ#Dw`huKjTS-Rs zCEe}g`=*zb89S*A5J4>);UjIJ;jIrvuUVKkx?748BRQRSzj{f=^?w$nblwU=;sh6R zE)*c8j}6+VOm^zL8dXvYP?CF@xAfWPo4xjx!dG4TENTNZsKDtK0_PnE-dBu>&!%fX zaY4E&#d#;i;x{2pB}Vc2t83KjlQ@gQ&LG}4MlsWuKJKa0n!8EB&mSX^NYeWI#GiSy zgTi#D=42tQOPyx(|1GK*|5t>RqNM<YvzpnNl*!|c)nZ}o@>JxmX4@~ih|cgbDgPZe zWR&&y47>jZKb^-#S_J*a_g-BPVk<jC_suSf^h8tXjdpXtr$qkt=tlASztH=OmT0~G z=}%5doPBn>;Df1$&VvQe+4w?JzPHC(nJmWtzi6cd9J)X)G_RF9`0AlGso?f%z>SD$ zvEZaHXaoU=@4=(Dczunx9l_pK1jbDnyoUz4KAMWCL}}rW*|k}cGOB)W6-5+bgSUiF zc=BYuy6h>SvM+bD4|w~U;~n;~FqTMrxz-;Y`S}UkBBRj3(RlqpHL~anD#QkM$qpCZ z>-E`vSEAh0Q!44m0UzG?V+TG2W+qWL)t0B6{HPAy)Cp6khuhFCDHBA&I5-p4EP{g5 zn2V)4uj96<v9QSUz}_7U5IAx2>_P9g2QtZn-N?W-<u-k{aaO6!#~UAfHP3zcQ7gir zO$~mV*KqvOg=(A&1HXMcoL6#~I6EeLPu<58WKkHos|nGP7?!8h>bonUFHCldu^ma% zLl|jFN{2e)Cjd;PAc6XKfC@7`r?<D4V8pC~kdv^kleBy+#L>Z@Ba5VlnvgP*9vA=? zYMJJ;U|JgcKmC1ugdw~Z12KkPgTm3MwmZM%ddEA&0O<CkrI$53TRhbJU(<;0%dgkM z@t)+KgqPyaX!7-Os<u0umltz~XaF<7^7`b?mIwv|*F=P~{Q(~`v&riaMs-GHLC9JJ zx%JVO9*J$XH`dq_lLVUtln`!XhG4~2<+{CGw@-HJi!u~nob;UBfd>#qTU-H-jk;Vo zBww)`3I1fNVHT3ceJt9l5^7ad#1u;%=1Ze6iRDRUL&D*v<-vmN-4q!4#1U~F5kHx* zb;}lMB<z&@N@K4ky?k#7dV4=!%#y>nF!^fM@^LxY_yN_PA#5q&s$$pWG_90v>}`NF z;5%MaFhL=%D|%RzPZz@+1}JZFgXYWwYXa=Uw@_zEkx;Ha2wl@pUQfZn-CxY@w&xDP zK6pzn=)T;a!q@?T9CbrGXbP$4Y-cB%+XOcJpM=y_b!zj2WGG3a0<dS~J6<1+HXZOX z$FG+;lfKzy|0+ezh=bk7KsJ*$cdMVV+6|nj#2O3v2%af|&hhJk0EThBAw#6=@c@hJ zrBb7&Dj$KBtLAG1FcmPqFJZwRtch@sqD+JNo?9LN`&8Elj>v4c!lYU7UPBaR;W`fj zN)SJ#wm;$GasKm1h{c`OA)j-^?TU70e7G#k@x^9+c%y<W;D}IB?!ytLUJ#A)-XMpS zcfmE6HMT+X%rL(|`@Bd>Asg~U7#AW4&E#kue(4SQ5GJ;Q+iYdr<rSNX!y8$Ek!2Vs zF;N*2S&zgSc^+`1TykN(vCbku%@%-gI<ObekWJr;aVw?7Z!<MRg1lIjfBe`FnJ}?f z)dpiSaWK1IINotuZ*oy}gKJ+lGj1%AMX0z%`7#l|8Dnfi1nhg&zur<g_5j#z!Z-G? z<Igc)9VAe!%wWZ3G;0kMr)byyV6It}%Fxmgyxk9PwtWm3V1qIgwEgynpshy;CyeTX zk^&;L)UEbQzQuqXYo*2O?L!<gYPPi3m!U`*1+vznx8B0RBmUQYRhK{R*YL-sB4FRC z9D7=Y)%X0+^j=*e5<-yAHU56O{+G!oej+*Z6+CU;oro;qUyXz)F=GuBy<SDz`lfiL zpeoDB{+}mhP$m9-X$#IWMErVsrK;k=zp|`A3(@tJB!Do2$g@ar^1n)>5CNCmkkn26 zdF|NA3H5E}=FDn>WD!?YwbAhYM^HNUAj@equwbN@EpUm`q4sXEVT?Fi75T()sIiw- zd^U%LHx{Q8Qv_{s{CUoF;_CWp!<2P}HCu0Cb$uhW$1TEu8`eb&D!q}nD^9)ausN)^ zW0O&FSMbRw=P@Itvzjt_ptmlJ0eEap0gpl=gr-pbihm0Rdn2XtG&KuUJf=xgWQF%E z3t%EX^4RzDqe&9KH|SX>-aJ*LB3aWq14+H6ab)j(Kl<gR%KISuZLp}h!}GoFSZfPY z-hE)OQhIEFc1$6Ro|+$dx6(qJ7aWJ3{U;9+lHYR;!3~9q-4|zzFGYm;2U>HZ*;E&N zOd+7SR?9l?U_?w}p8ER6L!qVb$0ZTZNTb^Ob)^OG$uHaj_>WEJ^vm@q)9ll|Xv-^k zy7G35_v0nZQ}K*(M~+#77gW!M9ttJWj3$Z8senIr4I6#;4PdlX@pvP<Qdw~L58t^h zTKOT|cN`FI0MG;A1OT4nkEa4XG@JDdjZn%AF+p+?ALe*kS&+=rgU(hLr`34gYY)7% zctNGx7B}c?7#2CcAW4!~XOh>h&e{L>@lW-h1D;mH1qy-T4y#+{5dQKBiab25Gqm2l zeWAhT2*H8ap>RVlERXWGrd<p@2QouSh!7%@RKKEzN?zV$LqbadaRaLR9Izkx8I^a$ zjsTMcC=0S#kmR}I(HgPYE>@i9TKa|Y0Sn^D)lXz!?7V~PzbKkidZR3!PGKH`902|e zN<aY!_{4tOdF~TcGNqU<l3JJET&b_gc8#)s?pc@-a&|R9`{SrW=?}1owk#dWV-L-$ z(6X~+GLNspdRB|QD~VF%LFTcSc;{w%gm_#dZj;{8&^Dw4$F9$i8Tg%nyGzJKkl>7; z=VsK49%Bx$CO;?B!+KLST}gGzMcl<Ll-e#TJXA%3x>h_S9|0_OrR;F=F(6YiVU<)I zB1lj*Ga-nbA_nujtP#6c!v{Q`nnZK-OeYnn^fj3Okr3|wW&gf?H>cwLU~<PGEZNr` zY)BNFF-8QvZXx4r#MEVW;9i3aISFGM@*de)Wbk0mMmy=Jym>hbG(2V45s6JYG!5An zwJXbM57#G{K+)aejq<Z$R$M?Oszt68kW!UD361DcLmKy39l|TQ)tV&bjh<L81p?eI zuGhdBoAWqPlNOBM_!dq_%j5|F+Msq(h>zQ0KoI0*Y6B;T7J@+1O3flSVjB)tIS8S{ zI8m~sw9xtvrga*p=~*_D$fs?d603ICfpy6{IqppZGwX3U7|KRNlVf$)zoTVwP~m$v z;@5F!v|0!jvJ_J>4u?~(nB_`Aa9i=Pj4F+#;v=K9vf0-9CAT)6tc}u-+JZv(o(=Eo z%5e|Dp7Bd8YU*&7J-~9%!zED&RF(b2l&TX|RZgM7O&<Hh3x`Oae4rzpR@Ezy%VM6& zY9&mK|IJxWCj;=e?VLLWevKQRGCWOrmz1qQy%iGfUzl3@yU@JzRJbB<4uVo}rh$WW z(Qh#-VLKpa^IQxp#9?V{P5ONeLEUNUvZ-}A;<aKXkOAQ+;4)gYt3U{0nHf^S#>1ST zM7QEq7b+pcGm#64#VTe_!#)Q0LABZuzEo#GJgy<=RX-j#WHA|rS<FQ;ARYxMqjQ(v zrSW1Xttw?~TrY5kVRs+I(~a~I$yWnr2(=J6Z2Do3c@Ghkx=R9(3VU%(Cldrzjh{}Q zji5sYDTx&(IYC}sr~_Vo|A(3u0+vc;L6A*&D#S)7?*$DuvMtn735pY5nPfhuyOIe% ze6JnkWV8h*=)Sgl*+QE)d+U9$gZz^Fw>=9Ig8JUm6Y2HMa8w^}CQQzX<cp+ONtmSD zPzVbL(%U!L8~?Z->j7T8FV3=xGKlj)>O1hFxEg&8e+d{*yXVT8J8NbX-(J*A?!ryd z@3cIZ(4a7@F&$xlf_9a>>M(!_V)u#&#tTfIth4o3S@qZt3AQnH_yXD?yn0Q?rE?*g zK~Mx37joMoP4ixHB+5|^BT*TM4gNs6Zgh30B}>zvMgDvxH4L3-Qan+MJsbhaXH`Q_ z3qa9`AIkXkhYeKyIJL<RH-tH$;fqsKtuPBZHAxUpCB?{CLR_<&UdJS!A*DqzK@Uwd z`M;-<NKrLabl|@o(OAb<34LxgEK8>rH?#HXH$0H6{C1>pCM|jt+Xuk1@b#gX@mmZ( zvipP6xTnfO5hf0=_2meE^u2fs?Sg^r!$NECJ@Noc!x-(5;p8K07@H55_q7;di_+9Y zum)CzZg69JL8*b_<aBD4v&c_uzby1a8`{;>lx<&wAd`W3jkyYdOS)yK2FTV>s?{H} z*fX(S7#~v&TMeO;85Q26&dzypEZW%bH>6v0?;-));^TjQWCnWvUZ83Fv@>`Zh2Imp zaipnnnpLpVfb54)c#pc*p_f~ZXg!u8J~C9Q|Kk(eAMvbzs(wugQ-?N%EfFFg|Nj3( zPQV8+?5#um&z{e3=r*>>mTCaL%o=1uEwoxp>vU=TgqQfdzWQdcV37#MiRO@1%Vm>K z0UXM?%GFS{tM4Ii;K2)0L$}59$}G)%bhU{b2*T&&QP|W*u=K@mtKuT?;mhAuCne;G zUXCPh4i?GK?BNWpF45tf8CQd+>h}kmjqa}HjifWQJU#q=ntyt=LDEUG2hvmNj=)M7 zN`hnuSy-~jg^ZU2#~^b@Cd?Pss>lxSURwKsOY-DEg6i1)o8MKZ@kpJRB&&Wtu$`rj z^3r~k5(2%@IGc~@sb+yC=6046XQStp5Id)VxG(`o+<F6)h1Mgr^P*fWxho;^2eAKx zS#XX}O-UpPf2*5Xvwz{j51LWN@tT5lv1%9DNAKHO9e(h%$|nI3_`+C#{nlDwUr2*^ zBDQvbzX!J$gsKyc!AzkxkmJV<g9JB~*CFbi&0Mi*iQqFSj+c7P#fcv|AC(-oytCd| z>-Kjxmq(v^p(@AkvH4>BJ5T&Dd9vg`r*Tl4YZ$_ql5^a$x=T1;g0O+O=7Bf(adK|Z z<q9FKEzvASZ2_G$#q*G4x$GE%<hpjzhNF(fZ;427DY^FkM2T;|%zUH-QXnpy2Q*L@ zZ2F1Bgq-Oj7+panrD~Kb$$%sXRE^=Ha8Txe&mEP1=(x^J3Eyis+Xw-)9uyuNi^9RW z<m(T{uk!FuYk={|2mhkQP!Un(BSh6$e?yf-b~N;&2a{TmVzgBr#Qnk{wiQ+x@yT!g zM*%<LICt45^d`>%*W^G5lwSy>CoMklS{cIF9v`W4B^-8za6B?77joTwzZhcVPjcD) zxL@nJX<FdZjuxQ^(-sT^Ld=680uk0x@&SujFqnt<3r==+dc9*;O3Uz(M?#CIPLgDM z^`bFb!(e084RGW=;LZ#YtOn+GV1(OQ(c=b|69&={lJMt8QF1#ex!H+*3>OAuTyQ2F zEEZ}mXYA$a4F<?DIeF!Ei$)`j)m(pP`#BAne5v=!=YT6sYx`>X-#K*KTx$60HIN4k z4#0^(`0)U2NWch2bZ3X3`+JCyrP(a5&Bf*6JtpA(AHjf2&iwi7jwONhs(=)Xn=R<$ zl#$l2*Wv_^{w=WowFv<eH*)nYmOwDa`j4`4<$oU_p-r6R>i<R6`=`DD5DcZH$x-jq z^NGhkdqnYl)*l5%s$aP1>;eM>#4n!P+&%A_oNS}06ElM?J}&&hrk&pJ=5OzV&Jpr@ znC;Vyu6Z?N#7;exc^bO^_U}d%6673`Vnfxue8shkJD+sFR6Ch;!^w4H^((=@a;0cJ zvd_XdBviwkJwWYl@^q4Jm&jwFH63nqn223Nz;1E5WP7VH2iYyb(;5dMyTRk{6vyht z7+B)3Ux@%K*!WSyRh5djPLjM(gsRLvJ{V(rFB?skN<z2IX`^Ww6&e<GDcoKC8KXmX zOYe}mM)Gusdn!k$<AzI}_2o6&Up9Qk@m;Fp+N*(yFyx<FWOkr6cdqJ1m~^NMjmhaL zRJW+8q>B+&0aEnqfwA~mrsU#-4NDRg{5FKq5SK6~Zl5V?7|sZ+jU=gywS%aWH6TxB z&(>vKkONleKG)?0kb<oZ1SAH#YBe-yg3qY+xlX5<i!LX*;Ra?>BUVlyj5R^jrsOWk z(-;@zFdL@FheI4#MRJ_l20<ddqfV7EKbnkM*TWw>oX>)*U*J=snzG&U3yclH(|yT- zx*^u?ho^R`XXSzSu|mCm%$@p?;j#&j9N9AN*4;7k9o<oQJdxgLT&0yPd#nJVXBaWl zJT>AWy$D-!aWM0f@gu{m(Tea_2%ql_Y1ZQ?$Sg1pLc-vNG|CHHzz;`u5;zz!FeU_w z6cNi+O65Q8N{XdYwHo=)Q?=$Oi^2)$r{@&QlcDi7pN*KF*WT^b&PwrA*8_QVj4cl( zWPRsZoM~{^f4<&Q5S!U!tv5-`>K!oM3{94@%#BaAmSfBjwjB^{8{FS#M&+FQ2yJCn zt69^_o{rE9ruuWBV#1|GZOwp~pdP^i5U@hRdJL1%{G@+$evaogj9-NLKK`zF0~oEc zbM<dW{sNapm7QU*|FG{=E({`RrA|!4ZzA%)ic!lxArUD{+B2ashvpXH5v$KGg%Hdo zWJ=hV*pXwrp!~-~J*TT`*FwkoiFm4|{kiQZs_w~(0|m3zbn+g&t<2n0%xms|M0#c~ zgw~VSJjN$giqhvb@kHzQpPU|CBPs=BB|kfG0<SHZ(buo-kt;Rb8J|u=!)>|O|Js?4 zAI+8h_Jz{ZN_Wz5UADTFKpU*H<3GCYy`2bAyjxgg#sWv@Xrt~nRZ>uUTL&6|Z$szo zJy9}l{I@`@Zs$8~yupq?&^oFoey0bv!^V*Bz^@&4G^c*aZEK7puUpbFnz>)s|GyeK zUANOj>Uai}s=N@n(J~bT%f(9$^UynCvcrhJL6f28Dq531S(D89YwMl9v?-%SiyVj> zuM~<iu-`lvMIkn-`?{WPTdHv_4B2Ue)<>X;pWpS}0k$V|X&0mwrbGG+*<IEfsa0CL zE;&00M_9i!38D|QpRNa6&EiUAyD_*Rj)_Y_x)iM__d*~Sbt6f1h6`FPl+eZ->|HY! z3+h1*h@tstd{r)mzA&{QY->LVE966H2g-jRHW1e4iTCAl^%;=vG(>jZcTCU>&0lI9 zoLvhvoskhjQIb6LYO68iSXOttLvHS?HifMJ82@X>LvYh=np6Cy+@@FU)1|S0;Yra- zSPayQ$mi#Dsg+7-pAV|N`n+Q-3j+K9^DK<?ggp=%GL<#!yWyvQdHC90+baft?cE^W zA6IEQ-%elu5tzCkf>WW(ZPa==xC{Q`Q|mRkxx`)6^`2FHwB$F>>DxQtm4;#rtQmWQ zM3n|XkIrJN>ntUGK^2bgfAhRa5`_RN-2|R<iZUvBpzSlBGd>m_D|cspIu$fMmn^jg z;_|bfJdBCcj(W0JpIE+owaa!I$_&x$#1Af;tAeDD@g6(vPAZaJn+|05^-{)_iF$wh z)f(R)Bd$b8in^S+T-g5meD!;k(@^<6ko|@mzyH>VoaHpZR>eRJv!c&U!?d3Tk>J7L z#IrAdqomGMl9F%f$uY!=#ELtCo4-&f9J_&Qbjcz?=)Zyfxc62)f=+oPS^L+{&#m+G z+90>&u=(W3--5?$q}3qH@oWf+%{M6Ni>h$F0*kwX@usFu-$;4qs;7bWGK(bPt<a09 zt3=^H4(z|Bn*ag)3Gb9UDP@s9?B>ZB9c7HCHTPG!R+tdYK1}T8N6{bN)LHyO{&}*% z5T=aV0yK=|$VcaN_TX){YDdL2fTL@qP_nDdCO`sesg(*0=;j2jUbmg#x-Kj~TxnMd zy?^Be9=L^EIhQNd)vSU*c`dnGRYpvZ?Bat~M#BSWN$vf~;M&+cPWT#3ksEb!{>wh3 z{`=qOoj02<)o%;}3n|(;E_-K_gZfL?GNSID3$<`$aFj~;;FgU#Pa_VJ+U^W7CGU^} zU|>Z0q73Y8aFB&m3K7QeJWq`*(F39k!far%q9A4SX=PW_y=rw+T)<t+ZfyeY#E2jW z(V&Iew%`&edi_<B=<XWsW$rb7&3VGF!l{MjP8-(Io?QZi&0~v2^^EV%xIAL9=ul8* zxT$)*!J`lCXgL1cJNi!MIlr_cn+LzM!3ekfW1EK&gshqKUGmx|Sx>VmLI{rlG(3m- z<h4&-&|m+*fJu$^d0F<;`g;~<%{NzU>nInt&sn_Oh1W-4Dg#LlpvN4P58vTqYRjZM zt1ffXJ$seMP?G$)O{O(ru$i9H!TuJ=wu3$Dz9eWemisN;oep2BUP=MekDSKhMY<}k zw@lW@#?q#H9CEcRX76BeSA4!zQ+F>p9z1k76MNKPrzvPG<*5Zu$)<-_X)11$T64Z{ z^cNMk>9!49O&(EY`@X226Sdh;zTcveJh>zJyF@%Gw$!q#j@XLUFnJH=jWJmPoF7m0 z=f?2xDA&vp<lzyQlWEMjI6qE`%O5-zN6urj^Xk;Y5*yF5OzJC`XaBGIZlMhMs}Tpi z9TBE)^G1{h;`!#fU(YQUrG(?4Ly$o}8B-8|qyr7_7tK){!njoIhB$A;g}I@il%?o% zS*gk52tig>a!BF)GDV10d6~I@i<vq)P|6EFb*GlGCsoCRHnq+w;Myd=da0onjl{8S z+UKhD5i>;igES~0Lg12lb_LE=ox@(cT}6U#ov&=K5$_tQw96e1)96K?MOJaO{B=r+ zL6@5r{d(|K3hQ&oyIB{y*t$rJR5+~75LlVyg_`ZI;u=nBl?v2=UW<UKs#26uP3ykE zong{%q07&L-f<{+Mpk#daLgXj1zQj|@NTsJvOoyNB?{uV@dXN<dA~IR<b{+7jUYLJ z51`;2u2SN`#MlSN2!(Nsin}U45rl+0>AXhCBi6hA{8<I|$2P%hFN{H$nK0%S@pEr@ zhVUO65UzD8%K`COSm7=J^j$|>Di6su8<c=$>c%u|ST{2S2*^df`+#!$3BX}IfU6b7 z8f$J8giXl3#IDBhY6m#h-w_-l3=|CljlR0>x;l{SFG3{ADU45<&?Y%dIG%%~5>wIF zZqp`+(F91Fs<FhO#_!y@3yuj{!#FC3wewDHR^wjT!QY>PWywF5jF?m&#z=PAoJw>X zy)U;pBaa3$w`(IH*Iyd}ss0PPIwoRM9;lx^v#!0i4x$jxS|p5QMWI9#6EG9CnL9Qe zns{}sv1<g1lu-18Iteh8nI=B)W4ky3o#!t;{cGsf3H1ANqFhLem>f)f@ynOuc@s+J zTeiQ|=1X8Pzq40a)X}I29IH9N39wN|1IRmzZZXa#0|UUDi1QoI7|f@6Ci}lG`$sLE za@c-HH;&pprZ<aU`O#o>&vo^3|EJQ4gL>B}pe8$6)F@X8Dp|6cZ`_5+sYn(%r!D%c z%&Ip4X$0C;?n0N+s4KNdv(a9~w12lr?Wcr!8te_Rf3%qShbT#Mu(}|Q<z#ywNzEGf zDndhQab2P~XprE%J>}bG7XALw07cMZCMXXPMT1N+w^6-KDvoFa{uQXCCHZ9oJ7r7& z0izLLF!g+xYPZuo!8!mQ%0(~YU)9`b_}#<kW<yNdibs+Ov&JjK>DqnVRNfeKdGgl+ z8fOHb2!iis?r*5Zn?-icR}%Lf8JAq&|3$6+!~LZu${}JLtoz07^&SjxwR8ZQ7EC!- z0)P5>g>#)6F1*wA!1+e~8Dm$GQogqdeudY2;ogEZ#k`h^t=2<bA4Ibi#A}g8ejaK^ zd9ceJtX=%7+5xzYrQ_;Zc93d=AC>&!?5g3dYreAc5u2Uy7a%E*Jb;!keC98EWIaUT z_;czRp@`;L(@;!KDIid~0U70ih=}9QL(YXeQzDie{0bSJBTE*Y)^j-K$^~iCq|Ty= zyX;_9pjQt^l&&=<u&kA%K4jrnCJKl&CdQub?IBmR_Cu#1YtgY2DWfOCf0%TRrJLik zxFFPj{=`plw)1$%kJe6kYQ)T1)wQpO9M6%qDuUuGE7>ajO1KZ~K3htj%676`L0~&r zis$9l<IC@TZ40{F7I3a$n`iMuHVZ!e$TnlON@FfCuw>g?85_ZLqZursK^b&)Ny6Qs zXD1iez+D4envo`V&;(7WCLmWZ$|tk5>BWo|piV`yuDG@A%alD{y=f}6Oks?roe=v{ zWu}9vV+>fTt&Oh*QCBVqtzq8s{7}0U-<K)#{`2xBH}aEhQLj|R4i6xI`!yl1H}E&d zd;{z^*^g~fqI@)@aan*F7P8$3Ub_flq-6gx)MKP2)lSN9#gNc=gAS*daYA?8lf4#4 z@37g<-_m)(q=eba^E)_29kNDApXdScgXWCxvmAYn<vqkm|7MG_3&!NTM@P`s|4Jp2 zcury0P2$*CZRMfLWK6o08uBz?b;#uc0&Vo_^u#=>YolwbonA!f0&`7V9$`eNP}0|K zRMo)O8At+GU6<!S+k)`}5JqSaL%_!U6nH;fyvwCjqPt!%h!OlFb|=~#G*<-|0f{+k z&#;oQL_Y8KNmxV#($g*2)?I2g<i;~I)qCexuU^0RvdsaEv7oAQP>MZ}?Lr-R^^xrb zvy(q6yDW|Q3=}Nrkp1$d|B<i?ZpWGZ-*iXyia6aT%nTVg-^a+v6`dg52QTeZFNkZ2 zNfXttWo%ax@vt=D6GV4C@vP=cy27)eS*Vhh+>Se$I<ziA8ENUhJVr|M4Ev(AQ1!LC z@V$(0(A&M~mF6Y@oWY7>Tnq-e8$^n=Zw61tp8oO4%;e2~HkqQZ_8)84KIV&kw5tct zXr6D4wh`SOmOK-zt_po=&E*7MdWBL>A2?B*7fVG$H{GoJ1EXw|T|c`XB3CMFQ9j>l zvnJOf_bLl936!_QZtpi~1`YS4r2QvW(6n#2B^C9byh~xmbTfi>@3~>9V_1R>fC~;B z#LepiLG*YbC_TgG+(A}qh5Qp)w-DRtZ~G+B$^F0ZtoTN)ln#b)9AC){#F4!$i5$9& z^WPUQrf0(7TQBI=stEn$Xtjt3SjQ+oc4TKkPa|V3js$c0d4wZWt7bG3jgyG9a3rpE zaZbOO;gC@pi3}iXPOTX|d5gbeTtQfgrlSAPHi;~v;Z}if*%Q8XS`Iht<9Vx|-)o4@ zl@aT>D@&5XhCS+3^s>$G7g6%70=q?d-&rmRlL{4b1}n3e7EdYcZQ_LD^{7CF)z4$l z<jPJh7Hn<eaeh%1KkN-IY)d~1U3U@Ms&GB^;UQbwV#eW7g)SHI_zLJ=9P0(__6W7E z>p-p%|M?HM_bW_lr*+2ZHpwoFzgMn}9%7glS2mazV?PI)4h#@}ixCk+feHkP`;S-G z`=7NF-gw0#DEd3V&yy+b$!2R?lU;1?@j;>I!W9il{pj)z8CG|OZAbFTS}|qrfKc9% zq9z+@OE!m%esjA0KX0<3Z*?9F>rooS7A4{~Ep;E2A$j1vwy;9)vB=w<4eIDfV*5(7 z;uS!B5MxX*>5~?kJj)6dyIQdEme6LSQM0<q&nos0bf*r266yAVR!qcV9&+4<>j0uS zD0%KF!$;neHWPTvt8vn|=FwLlK6UxSBxoKBown%+a$wZ1=q!^9<$v=@t)n>>Z7R{c zX7O?-Ams$@;gA<xckWcP{q5AA*RFqOel0Vm%91G|KXu$cc@(hQRq7!fZKtmO)n~VQ zv(kAEUesV{BPYH4tr~9+K!4J`I*(f3-iOQ${>o%hfVmV#X46Run23UDp6K-AA**=k z>K!~=vj)ep=R+?3!Z14B+cML67;rEZqjn+$GqSbx3wea*Qy*oaL&_d6qMwZ}BlY1u zCsKc{!Jwf&<1}Vp22+(j`c7`TBTGf54eGvl7%}#EO02?66q{{Xq{Ti)AT%3-8bvFi z06D6K7Puy>=nB4cBeYTDFUSuI0og*ULG$7+O<L>$S2n20RyMdUI!*)z8yYzMK*JHf zCoUE-U_#UVProtpOD}C&#b4X9(47}rEdssX2rL1+FAUJ433ISkT5))EC}_D^Iu{|3 zn#1zLDxN+?ENB!zPNPOYl@h*Vw;H#EXAEIM1Pj#}m}JVLqKiCEdx=y@ym~=JAj3Dn z)VpAU48MggRO}&7ZcBuU2^Ro|Lyy7f=*@ii6qZ2o{`PT<4>%+(r7+K^r%ANt$}C3Z zR264dXllm|Nv(mYWGtJPp*thyIPm;7A)1hbjfA(T=-p87^!3LBgdikhks};B9>{hD zDQRERD@8esj>=`g^LftUYjM#%y{k#yF1{V-VtZ|oXY0d8RC)}{GWRiQp5;{{;r{Z> zh~&1>e9aK#&<qWl6gt8<>c=!B3rO-Brm9AE@d#4mvfuq&TT!ZBlHsW;anTrw13UVd z!^7M{@<i1YMPpX65F)vNA=nx@%6;%sI#Hc~bMqL>)H1OLmE@zD^}Ck5H%W}q7|JH- zw11sq&=AG;ru>Bcpj~x#gn(t9<L^H6*$c2WhUjHdvwb7FQCrE7!q=oW`(hP#F3cCL zfX;7}mneJcYgU1t8W1GnJE<+itPcbq(<#LOA>wZ~IF~A`q`8puIT@jNG#u-mBBQCV z_JqQ*V5VS$P;!amo0;jZS~;4;3zZV(If5Tv^MQ(UtQc_*e6`Qh(zvzhm9iAY&~U57 zJS=%=rfr3qL5m(PggAx;=W7V(I*GZ?9cL@7k2?G`MvUp&l7q*UjG27pcVe0!HcF7X zM!7o0F>z7e!qSOpA^^Fr*1o`#P)ikzxa6U}nzSn`ytH!;CeoJ<qOORnr7I+4LPIX~ z?HiZw=~M!-7&EQgFh_-7-tFYpGwx_c^EJ!r%`fmyaY(^_Q~S~+g4C!8LLnFUA^UYG zFjV%$MVwByUm^MY#`!Oz$j=!d$vZ0`QJ<je2~O}c2*E!z0OfcI*t-i=D`lac1?Z0q z+QwRRj|m(`+Y*7E*NjtiKJ<ct?*YCk?w&#|4taCDrwXdfj)M^sKY}lA<UQT{g6R!u zjFe^hJRwP>$V`d?$!4w0v)xEuWAWqUXv*eR0m3V-0F@#_KhHt(MrAU_?Ijn`fL#(i zV$8yToPt}4KT~?1X9$pB+Na>`3L$UpBJ8yte9-R?ekmDjIlb3D$uN<XWyT?jh~p0C zxh{7RKnMZW1Fr9L$2&e>Zct8I!Q7FA17ri6VUkqa4EV0;s)Tydrnuu~8*i2D>13Iw z84))`&0D*0oLD+B4f~ph8|CSnt-X4U5sHPji@sl<x&n1sDei5I%Jr+WOF%<d`ms5o zyAyDEhn8#>S5R~nNx&K8ygWeT1|&I0E0rVH8nZ087>)q+l-upa!VTJZB%@|>&G?!T zH4|%w*YvL$HhAEtK=Pd-M%U;WDVmyZnOe%S2M`djCf#O(s`aE@9`4S$?-mRRSJeJc zvdKK*T|rtJ_Pm(Lxx?TZHngK{Z!zwf=G|}B2=1dvv07S6QtmxBR(ricrD)47;}Bkb zpO4JwV4vm&8)?EnvI5-aoS>_B3B`fJ-wy2A^RC+8>irv8O~zu44J~Nb9uX`5#do-D z=TZB&i+2^^OzgZ4%FJQijeN-TeNz+9YEeWl{_X3Hl5{ip^NFgK!!MPi<FX>EW+T7M zE$p2CbtdZ9mTW-HyvKQ1r?t0Fah(jv0M9`mTI5CT6l8Kk=0Aw2;bjUgGS0Pb7YGp= z#W0kh_oadXeyvK%?@6xVm46(W=8}8C#-GdK>c;M00X?D*w92Y)Xl@c)U2hJOZrKh+ zYV&M7zB{JlVc&4@righ$BsnG%`K!fiw&V8JzEPuF0N%WA$uD2i_qYSPoltMQe=t7V zUa_vkiU==JX#C^c{5Cb+%TkTD1>Yz%97?&%U~+7ZNJ+}Rll$bCepzc$qDATu+)(ik zW0-~AjzMr!2T$$qul>;e;dg(*)2k2Mt<**LpEl>xJ0SO*!sre!k2}^@+Pz8jrN1Ay zU%x!1?hip=CxD=hxRE0I+cf0y^z^`KE!>Y9K{zX<PGZCpMQpwjzg0p^bLf5H@JV<j z7qrznXwq9D*i845_`^7N?&kE{8LvLFF)hc%qpdvUJagsEu285|495D8N{UzJ`ahit za#|}0_9Gi_T$85W1(J@wT5?2c<!SDx&b?aAp@w6{oD;SLiMa2X-w+$%LBopm(KhsY ze{HkR-08b(uGY=Vh1a&oQ68jNhd)@ORpqe!zXF^cHJ>|FT@*isL9LFoDO@CFZ8~wI z?HeS*Q3@tk0r?Lt0o%dLua*8GGni9s!URDa>$@LzD?MjnSXKx^u*rg>;7Jj2#I`2Q zPoZlvFfSVCB7Rw~Y(7z9vdffXHc08m7Sx`@`1~g0TwsTRFsFQlnCd0Ns%%NEinUR! zswta54XuGjF|=*7DyeMb?;i;OaP7j8kT)7I2$@-s127t3cYl{NHK2KpV!O_-!Mun` z8Db#uka{Rq=a#x=2b}*n!>uOR>3DUuUd8UIsrW^I#1scT>F2XhpZ`^P{;vJXBr=A& z#>Xff7Y+bb1U!fkB;w&UdhH{LS<2epi#a(9Xlbk&02WBv72~aa#{8t}?nG<5A~FJz z;|M#O4%MH@kV9JUz|kM4!E7tce6-?@${k#jYq0gC#@faxrh%=MAHvmGqWJ}R$*juh zR>xoYDy^lh2MtQ{tFXsJRIEKi?v?uLhZ3qwy5kMk5&x(JgJ~FnK8VxB^jf-@2CV_~ zBTW!Wi6w^dwfSl7qHQ|d5k3`Y)N1c>1tw<m#RiVoPu-9cW-yhvSay#0BCUCsIYPnL zd}8HWwq1)<lWdAgk+vKC_B#0m9K7~GoTCHANw()U4%$-w<s2}dA>}xPQxS+$Y|_l} z3uc%1zp~``qaIIlC-jrX%oSS}PM+?|x(yL8`uUra+W+Sdv`zNfY1unrPQdGqzC|7C zbR5VW9DEk*%`j<Y!d3e(FI}CU0w~|9Ldd;Ec!;A8xFa2*3$EJ~d8Zs69w~$<lb%Cx zvEkf#v(*>Kj@xDNuiJ>-DzhCtJzvAF1Bk<E&1w+@;BbuGBHN*OwF#NTQyO73q3MWd z{afjurTgG2<5(zDj;yAxM~w9urQ6dfJ3+9KF;E1&gJpi+a5lB&)7z=ZmRVa*r<>bD zhkVuy(keK6of%7=GPDfhpZ^~u2(yT18}^H*8E6S=1&8wr#@iMPLjB0H!|IuILa|NW zdiJ=L+)MS6VYz}gGq<Qn#y|lKhOK)u&^o|JtfmRUC<|P1i_R9KJ^1rNplG;ZNN!{7 z44ZXCh#1V>g`Nv#7whNA!pAO?ZpJJvXx7mGQb=BQZ#AM&DnI82MIhdM4i_-3HWCOn zZPHRhY<Kz&CX`|rD%9J_VyYOK%T6xS*-L$u9VY^u{+h+qDRZGLUAVlrwqMX;wqfUQ z&Zv-)Sb6k5lXot@>+G#DP4+Hl(!a{v<gI7_GhWW6)snk>-HY=t6bqFy4KNs%v@>SG zgh;NDoIT2=fElCgrcAyyDoR?_n}lx>G`io29K*c?0){v{k?k_CCHzN>Y``I@|8;l@ z_MFtS381-msP=&leV^oK%@<N%bfHzLvGhq%mFEWY-BNW|U*$0#C%zjQNXMuc5K6{e zr2pzKT25>Q_`HE~CuK7qv1S`fn%6EcJlwsv%zc-)%hQcJ=Dh7L7^TbqKP25Kw7?GK zxDCR6$h=5WZc0aw25Xg#ZsMC$bHM~$mW63kkey}YVP+<BSJl_<^R;@?&NDa`nT1X+ zs3lF0CItjT#@Qw$t^>trpxRDx*$_*sGw_1M%cNqJ-w^b8M%D@vtAb-^bfHD87Av^q z?ef+%xuX@+NGtRxQHv%?b@s~&sBjT_+z(xVq)$AuO8Cn|cbpe`{-V7$^k4U_nZV2H z#R&f5*Ut<53miOUCR7{FK-!mW)g&@y*%lyY_b0uX@}UYy724_c3l(4oc2<M8=$#1r zLb}rv>gSC^!xKap`_nzH`g|5}1R3(5IGTg-mG_>O6a|hS$#W~{ech|&i4F=g1BBBg zXa|PnQ!c^|vI4GXqn1N8J;?OeFh3&g!5cIcOzVZ%eiGw7p?=wk@$)Sq<6D^pc&CRH zQ7%KKnsExkbK#YAii|DPTO+Gza>yV`=G!qrrLz@PxSF2o-)WYo_RJplH@8b`W9XcF zS@^n>moGPLcb?m*jr=oOoJm`4>fa{j{AjuwOD~v5&hD@wM;>YCBKNag_GOGJjz>_M zG+`}BslAK0AI*h~HU6jfsdX{=&)Icb$%j@a4Vl17$L`6~=Sv{GB;0vJt+Vid<@plv z%d*aLeusHz%61aK14aS7KFI`#ffO47a`k<BDY^}Q3SLm^G&}<FzC=L+pS1uj6<h$? zJM~jqk`GJEjHPg)3zzU`d%pl;Z_v?1yR>%lG$2Cm0|ONXj~e_{uOBxS+|uEE=!TU& zH)D>L15u(^*$#`bSq6*!DEbo)mJRq2O_+*CD^$xtyksf5U!wih+2Bi)Wx?V`hT@MV zD3-gz%J-q4HuHMh-_H>Aox>N-9<{~9P7=G25x7gnhdk{XqqeW+6dx=>4G~_dL5M?Z z-4oi|vcYc*B$EUEH)m^M7Ui%bgF!(E&Xx?2=|B&uLi;iKYWg|SFtw)rNTCtOayMMA z7^i~ENkh!_V~ovgx6Hb{;=EJg=Ntzd=^DuL#jgnu1n<J)YAYA(AWd=eIx-oF`*jkK zSxeN-Vpn0tTV$c2sXH?M%GGdKn~1+@;>%fdN=bvTwnC8O%B`C+*S{XbJnkO#h{@Be zuI601c63Q(f-QHu#|)(XLV0056vSQJ?e7*RBqew++GZRFtzW%y^qWXmafW%v+)R)v z&{BRH3CuJW$4w*!F;ETP;W}83V1poVBtX-^jkbAp2ZHRWwcUKdMvjx|yEIE~>F_U% z8~<sSJb*;+!EkyV@Rs3)8^78fsXz2s_QBu3WA9<e?CxA@RoyH?7E?`n_Nr|mmC_k8 z+q3;==boz2tm~imNargmhTARM?alU8IZ=Y-k(}sxkUr1J^KDN}_q~`e$J`XM(_08~ zO!LgUEPXvsDtyU3TgCtjc<1fqx0#{0O!Zu$BYF{ciD+Zc2N1&L$Z8eG{h-J~*=+!# zaNs1CAHH?jj@8cBZObeSTyVO2ue>xGw*{I4@kOf(%*8q{s9>*n5=4M={Qq>~z)sV| z3M=1PBNu}0|J9XZaP!5v#76_(`c$gPI3jEImr~P;ouUylvvt=H<>mn{t4_B)B%_p3 zG;Q!daxG=I8!GY?&)_Pq$L2X`Ku+p*4{Md@7~cOZ_ICMBrYq7(gf=2(ke36(sDyov zKLRhIrzqI~_K4ti1JAP+VgQI$ozGy{ID^A-!j=)3!a(q%*<gpZR%GSs`tOfH85g`F z$v3u;*}=#5zGRo6qUwt*6{YL+%V~^wzd7Vfntx~^vwd4*QfTLkul5RhS!#-|Z`zGK zCIsKuP=1m<d%e`52}o@9cWKzWPlysyFbyPJt9#RoI&~>pZF53mtN+epo_duxEc+mb zSpIzu`|56p)Q3s2B0NGu!Y*h>sau>NR%{emW1tH$_<)c2a*=um_2k46cO0I&;3jB) zJ#nD34eyi7eYT2)Q&R$O9!2o?U%htEO{1B%!a-`<CGUxMKP8Zrhnd}?b@ZTl_XjG| zG+M?H#Oh?y;J+K7$~23X5mf;D5GTFoU>1KdlzmgwLc?}*i_s8i5Ji;(YfII=m#go( zp*dxRUZkeZ+{fPegzXb5pIjN0Y#yVGX^7GFmkmy^K6KCaz!4?1@5<2=&0svc<(-h~ z5&1Fsd}cg9U$)hm%DU8|rUC2*>y2?R{%L)5hh;50QS^AZiN*xIB$}<#)RQ%)<s?|I znF+6^Xz#A2C6<9`?h4=Z4?b|A{F+eTgV>)co73<d-vwC<gbPvti!TvBo28zl@iYa^ zl$07{Bqdn!u;987?}?2f&}}=jrWWXe4(K7g4W*LWhNx`5D^^20gWC(390D43zkxbx zi0e|jj^PXh^bmEN&^?kY9Cd8x?~Fr1Hq}e3tAK^NNk3nn;oh^bQ(Dr&!c-s@^Aa-K z3uZoER5MD~M`L2OHciqJkCrHRszWVRLqJ(<#FtxgpyEMNxI1NYzxHwZR(UN7KL2RO z_Ds9b1$~Dg?oQj1EeaDQwjtscnRgZk9}{l6U>L5$m;qA;>W8owsZxuvF_(gdq5VPJ zIH<cXat93kOo|x)AOYdUBuzoWGf1;Y+D+0lI^?lp5Xmj1m{nS!q@olgM2^ZJJsGzq zJ}d`2<;nhyA^-u%ArNn(zz_3+9yayX;9?13MaKSv4k|lt1<+w0h4m_rP&nYkkP3M~ z3hj=#(LhOR<GiYMH<Yme#iX%{7|dG2K;^=k6<gPaG0Hw8P$~|v4!{Vn7uX}3;N>6n z`@8_p6+w_lXy7%^d`Mp+k=jJAw&CjUlGm-Tqo#Fn&aRJdkZ(p_U({JkE|+O(*>_By zXTFZF4^>=Ww6>L}bed~>hUo*RRPmnNAonc9eQHThIu*x<HC81DC2u@50tD%!g?KYT zDU7Gb`flx;B1l~dyy968q5&=36^V8gb9C^J$nd}p$qw0Iw*w(@Zgak9`al2DeVi*c z*idZ8G8-315_U4kwx!DmXL%p(MKW;yCXSzZt!D^5Y(Th7wY|UCH*@-4z6w-h06$By znr@R}#bsgHb-zAC@XoLpAPXI&J}z@4fBby7US{N0>1&^3$>8)vU>1^Ul8uPCY0`gb zW$t*UR^MEzoBBExHgCdhav5=7*@|zrAc(sF=0l@&b%>{HuaWi{&gyJkZR(6n1m${; zrD4Hzil<dy91&i6KAz9ML0m*6zt&kyw^%R(IjIUb7vq&9NJRmOwht0w8JbZUt!XFJ zlr@hb*jcC;<5BhVTa>8-+BM&c16s7!!zBtn_juh0t&kvUQ*F=Vzw?Dk2=~~<1Yfda ze7yg?g*p*e2n79AW1E2vBFUzkH1iGH*6XMZ`%HgVLJv3z%Mw1tZOgZ6yEHeoCfz8% zAA2*Tlr7um*l^XRT|{TQQ*4=y_HIQ%I5mE~a+iA^p{wp|=O$MxCRVWVDY+B&Ka~?+ zolYyF8pCv5k$o3%!BO^T%r~*1*uh&U<fpEJsw>j}KUXOhQOe-<IGtn#F4h%cflHp= z8m7y%bIZXQ*`e+&<7T@Q{pAwIp2M3>Ock^@;os){|4ygftI|y0&r6H-Dqr&VvwJ)e zjQFb>Mk+D~UduPBL>@Rz@(_2|!`5k;kE`N@b1g(h$+v&$Y>xIEVc53ap6$XG>X9r< zUk@*mUUwDJnj;8!)62t@@u`sTSok(xt?GoV_5+>Gy<{;T{l{=jGj)Q1<au9TUnA6x zZZO$PH(xR?4b}sm_GWUYsh4K_yUZyOx#?gw5>AQ@snh;{B=10&EzDVoqnnvEbY9Hi zv=1U=2=!GVJRjL&NK(;C=}AANYfvKk&yr$wE7?cJ7>s;fPp(9dG~(<;fa)Q%g+=A_ zuG-A9fjrBG6yDBLnwfwxAx~^eSj>nbQbS8TqYO7#q?{Dsrff*Qox?1zMo47s=!|lL zwUMEUs|1t2LhNIgtyO^4meP~`E={e}=e}IY9w`#I6M~W@)bHA8uz*!4aR-x*2_j}% z@yz5w#ubga7;&#ZCZEiatnR41+=!&Fkl{iCQb<*<T>QOyNw6I<aZy(@G-`ya;sd$& zGiN(IsAiAZ43KAiV~AMlqwnc2OZ=TESpWSz_Gd-1?EUnVd?SKfKh#o2$nIGW`{XgA zFbi;fH9X2_K}4!$yK%V+=UlR18;vCLpueFN8BAxlj@NKO?78EMoiuv#PkKQ2!scZ1 zhI96n$k2_wFkM>#=vSOK;$-`(nF|5tW|q*0A7C3vYF+10eRcnuB#mAEOtY-WaYN`G zd6fCr3}enExHdvQFZa4IF1yz`+YP(ghpO|>@>ASn?6n4CjW+T=#dwl)K*!t{9w?}e zd9uC`tu@oCw@|&>^%Yc*U#tu_m>0-WQtQ@g2<xUlDl1L8OZ{Rfwvfmu8;tUjAv5|A zd0;e64`RapiP4s;=l#QmZ^NlOKm8#^TBgoHd?Glw;}YmrDFH#cpq)A#uFSduLMN^K z@AL`6C^PX9wN|?}`<S6ummL5Zmj_aYA3Ia?Ebp6ZcQ%!Am?NFEU%#Is##2Wf<B3wN znd^9~{0txT<8NM;r4Oa;e_r=JU@B2x3@R0Gf4iJNRoj|I@#jvQuC^F2(`P-t^&m`R z?oju|+$^lUUNWlou3_@p3jLIk>At@sjDZW7%}y^#^`@qky}XycMSCV+8@XUX=EOY? zEn3`ZH_U+-Cbml%MQvP}Ax;en&$&peMVQ70FEL+mstq7yL6iYWmJ2|MD;at#UTBfs zlt~)d4CJ^<I7v#Z`CGX7no7$#jtR+-44uL@gz#HW^vnwq;I#>UQzSx?=Z6$aEPgk1 zSh2fc_T=oM4z{~$^6~5kX-U52C~j`}%X`|x7qi+T=)7o{UVmvR;J1T1CiGrmUZ}_K z!&fw3!pVWH%(!#2P8UqVxRL53Dgy^x3u?aX!&f$3u91VSl*>eI=zwz}yyb7$cXMhI z_LNW_vr4V$QekRjg;zoVf_t)6-jeLSNm!{qLHsqD<joFP;)Q8)`<{{9kj%ukT;DrP zS@X5sskl@~S`t)~A@Tw5HDM}rX4H}I2MR~BSL@IG)|K8CgM+O+U{MZc>8~s35m=bR zVofY(7FSn0$aUxSPipNM1dHpc;@xV?nrB?NKQ><q2VG9cKLu=TNq?VAu0I^!R@rfM zqt-ttWg`#~zjk=XCjIs8gGN80HR;t!v}|^lkU2Q9VcWaG1{L?VrpD3C`+Q|dkWx`^ z6B^&_tS0})310_CsAT;OmzoPr!wrr|udM`RD(>`D|LFUBL7&ga&BbfMh0?Z!{K+S= z2{x?zW>Mfjn|?dxX!2fzYTaGC&mNad4U@IZQuShdG=IG{Iidn5+C&dW&o%g($YST> z5OLsQ{lnp4K?ddJWAGME=tG(pk~IcxF_5PLBu|JS`6t~K0r}s*RO*oH>+vMfQs4b< zq8h^vD3J$x(2IFQfJ`47DI~x|@O;PLuWiz?Z&wq^9|9H&R<Va5vwbIc*8gnpC{UAx ztyQAp&?=S57lwao#H_v0<VHZ?EfE=`l`xFnQAexVXa7s%g?iy(E(KMDa#}&w5(u-u zN!<pz&0wVK`~JNsyK0{fZpgKC(Msv5d&qZ*&iADGuIxmq*<?gVMdrwi#I;gQRv;R- zAP7e-_*0o1AA+)3F(5CYA)7LUU8c_+19{LS_xRB%VHkH;5<VCszO9N=WX0o}vpsd} zdJzVNE+wb`VG3kxXQ04ZLNL2*3r3^ONY9Vwq}WYhW2>G1^qI{E*$yGKn0vw<<OO5u zsw)#K+Os@>L8+;j7}2Rtl3HB=^cBi|EsnSStD55xajJhykgZbs6Hb;Rj3d3lTA`q2 z{ATYcUK_duL`3NNQ^ip9Ya8aybUHp+&{j`<i+9F2r*xQ@bJ&ckIwP^6Em>popr||+ zs&gz_HBg@T*^Ci_p6JOrHtdfrD!hg`FeGlfWK>L4-;{B1AG}$|0|uy8xze++)G)aW zSe;OB2L~4Z5HB)I`m^OkQ_gQO4j1tBW1-bV3`5dBURV}y0M<Jejm0KEV;@h{O9vrC zdP{t%E>`!@yT0B&oZs*AmFOxu5?KYCUYe9yH@#qcoBdHW`gmROZh|==^FSZltM%5R z9N9W^!;ySI1rUT)Ga>im0Tm$xx5q60->SVonl6|;tR;o##Ri>oH8{FwDf~R$AyfaL z_lZaiC-i5x!{{dn$@<`^(SS>K1KP{u!{LFk3sZ28F&Ke%)?t-n;F*Ejyk7T>oER?e zjVCf-Zg;bFSiS#X-AB7TQg&*es!LyE-g(};!84Ja1@7COu**ISWv_AU*w<zQ3A}$g z0+GXitdr8c>FukJ6y_mOYis9x;sdSJdgt)K0Gjj?$VvG^^&Y!$k)p~)?ni?D<S9t> zuP>d$2hCw%g(VXa`?-n6(+Ba?@FaPv)Bh-ztwgpN__9Sq4~k+ZDK5g-+%_krs^AD# z=M@A2nW092k<HpOgv;7p9uK2ILyg(+6kr_1s#nzvXd{N7!0!u&bmjK#Wg^LC*BIP? z&1EGo&R5Rg+Igc<vNpcG@PBiGbh-5H1^=-4wjb%*S8~;dI@0%~^A9&<WYl>((O--i zsK2_4<!_VmdruCeW0VjAvGu@M3kml`95pTgh@Nq&U><-7z=xgH1Y@0ZJp^4t61WSS zdC0R=q5OoP)*WF=xEj-(hlNEUW1<?ZhKd1(!WQ&%8n(UM7)p2wp^OB$(W^)Qrp{mc z>ME$?^;j37iGBp6T6hWR=d3s2^Y07EMDPmZT$A6z7ApGbgik5%{aSo@N6b&L@m<@I zxB?xLLOe{(=!*UCR~HTX*m{Yaj<EIvGEqgFu+|*K%(dqcs5leYtS#D})UMQm+Iq}& z+>+8RXIP_~b;2{eDS82UzGi|uOuf=TLI#P+!m*0!g(&QotuKiHldu1~BH|(m@Xb;( zJ0z*=yY6;c9Qh7E?Y8jDsSi~hUqMIzTCK+aQK>H8m0E3hw{2;ScG9~+qY3oamdE?a z>LAqj^^?mJgZ298M$LqKJ*^oozVCy=EZ+cG8`*1Ljzj&)B`V6*k4>|WH>l($!{#F8 zTzoY}IVaiq{xO<PLH&{OeBU*e$*iL06U#{D*nzYT;4@q{F26zF*SoeX(3kOKsMuE5 z5sb@XBKa#*YTO*WZ+z|aFO2Qkact-Wnea1c(rp)OTRz9)kLqOGC0tL293;D<^Y27P zCu4Jt1J(?^RNWl=^-|cJIqn!8ogZEPq^;#_waNDN@DWi_jX*RPMF)B*zcmh>u^$rU z#n9HF&Wjblq}}sQoBCR%?z|1bP|#x{FMaC1G>$>8+&J#1O?Zx5J{TfC6BK^?xTbo$ z63Xw#bYw@dMd~WcuILwP1^2qx6TAyYBV*K+4;+noaps7lOTo`!)3LWV>Iz7v+HW;P ztGhXTAut28lvnH;ebK>8*xHhwHc*+eq1{noHGV=a78Z=405@u4Syg<gcG<ow@y{3U z>Q?<2WXWnQkLM~M6W&DIwpwUNhc~kcn@6oE#avhyzWU&v(sLi`54MscY5JKe4bgy7 zuTuNT<VJjlDRuOznB<O>+Ef6Zd1K@P+A$m4ZcILH_;K)oRp#1r&yRnnxfc|P35C`J zXf>2xO#~Q3S7#MFWvf%GT){{r-b%hRNeb4O)ufyX&z*v1;8P=mBYe8pbbPUcwTW0P z;0Cx7$()iwR0%#kus24`l=2x>&>CQ%vum`;@IR#yveGTtmHYBzhR?~(tQuax2{n#& zc+N}f9wKNLUP}R(z?>shh>!dbGeltwr$6Rhp=^>4OAcC>Fz=LXjVdtnYx|pklyQ}! z1W$f^zMnX`W3R(&>|yN^S(En32kBWSg$2~kJwA;yth4M$oec8btJB^<ff=D5O%otI zftG9diyx@f;u-v<fh1jiWA+bQLr)4`!0#+I%}>&$El;Grbhu%p->CdM;~8U#>xLD= z)hJZX8#i~p(+G{Lec3IjDs{|wgQ#I-9yO<3+e(Zdon{8dseykPD#{u>Mhc}aC3_%! zEGa><OdODwtSZS+wW6jk=8eBO5~)5UC<d>7S>*$MV|bJ_{B$8VT#6n5IF_eIESx_k zgi$lO)0}`LAJJq{N_hn(C;D8>4nWz8R)+FKpp^`uqL4B_8^n1m`AJg|;J)I%A1Scj zJrn>886u2Dh!BGEZ+c&;Ri$(2w<cN`aX~DlYIWHx_P-sjdy7u<B$(6as!i$Pv=$JK zJeh*Xj<q&SShVo*Z1AjeW0beQ)U`eKw24*EVO^P@N#Xh|+x3f*zQOpcUyQ{v&endC zbwW%UF$tO>e@5qA$w9tvw?HMNbT-JJkTmCQgMJlz_Alf6ZDrqTB5gZHum8-c4}KoS zi(##|FQ1q{x8mpTsEay*iCh%GLwO+H$NJqSuRLEbqe}6@#5hu)wH$t!uhU~{C<Q28 zg8trizbx_(%%>KQF7Mwtx7#YL8Pp#<dvfNd5ws9OdO`gSX7#a`c5(5`j}+i8D-^~j zEMP!&fDR-sb74Qw%m>zK`I3wG)Lv-dEv%MyL;ZrOrSr{Sj`J(?)-wyOmlg17iv=Ku z7uXr(J>7*TItIll4xC(@Zq-Em78?cG`@$2(@4vR!c5#ML)3}#0{BZ@fL_$zaFWD(= zpdR$4tD!Y&b!T+)YURX2_-_6`f9%jB;H4|B*ZHXryYX6{qGO}}ypVcp=DS7DyQIPg zUz8@iox9?ttB)m;D3pISX*1QQp`yH56xP(dSl&6`jwl0cbK4BRXf<PyEI}<Y4>hw| zr!gl<wl^zVOxYCC@LfY>AQN(F%(p<V%>8~n0Ihz%jFi{#!C*Zhd(oH4HdDK_b$1;c zrsa$#nMiwAYO`mZa^xM_xxqyH|CxbZP{4XnVaNO5o5?1^>?HW80=-aSZNF1TgnLad z!h5B@o1P}vPC(6)t+t&*-gE1aB&lrCmoE6`qSL8sjZL5dQ-<22u!hQ3pl>!M-lMkF zs#ht)`t07A_pm7F-hUcJK+w^{2U7t>CV;J1TL--V6@3><%rN$Ia+-VXk4Rb04g+p{ z*&ogQ!Ss26;~~KaZo1qBh~r|)eU0@Y?kG~iiJwiBSRf`)qI44uJK!m_iy?w2E?&;k zEahMj>#@o~vDyMeBW86f9SWI+)kTzyIubY05Ck|JxmZmB2%wr`PuJ{7G#s(3D7hg+ z-TX}`%g{;_@TOdjwgjbc-KtgVJjcxoEPN~$jmJYZ{FdQElJz)*D-vGv9+wHIjB}2F z_<GapbY8Ez3_k#Q7nUs<q%sa^SCV%sw)H3#y$4p+c*yl2%z9-6AOxH5E>&=V2pNDf z7GFRa0f)`g9L{j*L)PaoEQr&I?W!iFSq}nS%jVX6S*hRAd^u~~%tJSWezhqAKg;v? z*p(G5>O4=W29cQ-Xt-iE`$)}2^-#$u9BTwzzmp4I>m90fE~VCMdt=}TMu@iJau8s; z9Kuv$ZV_dUy=WiFOA*E2=9QUPw;4yMfX~*|*L(GHu45-uXSKM)uiC(ae40`x%1QK` zZi5H{Rmvi9G{<N_+#WfPHU-g~f~5f37Cl!9FhpQZ^AwZRBmo*Jl`tpaIBLt>#TdXt z%oB+jUEutZkW-wGVl}!BpltF@0?yiTYgLsacm-U_TT2zml|__xlZF!29pseVA4quL zxhwcK?&V;fTi{dHYb=999RrsrR9ZT8NeXR+gNiSCjESTWXofxbg8l1+c8p@uixFt+ zZN~6LoJ@|#+{jj<P0;vMCXq4Ed6vLx)XN1@(*(s!AczB3z*ETqFI<4R$aTproE~3X zV^gXi6f~hwhzTi4@VEeuqEIS^pt@uzpwcXbsz}{wPEts;4!bJUX{EFeg;cgFeTysF zjw2BQTWa;ITGHcITAGg~gCRK@Vo`#G7Ls=^EA8JjykMA(TDRrBk}{&CL6M|ALYKBx z#WZQr%cNk|^q@e87~($Hv_soO{T(CrrHW$ut*|ztAOaz5*>dQc;@DjQ03mqdnsTE^ zRWiHCS6>}+yQ>}LH9XeIB0vcc0Nhnm-z{?}2&4(12S-qF{TaPa`0JC^mdh~O*Exxg zKFejX^wa0=_KN1_Mo=Q=ys})`6<nR44IIJtSi%x2lz9+Ahy!=4xQMJceooEWzlzZ) z{6u3lwl<8O<Zl`UYnzXW+%2M78)1^wn>?yl%_l1;x<u>)^%9pqC}^5g5U#gNuW$$Q zi?RLomOn)-^oihoJIm3e{Q5~X_j=<f?iS0PB*@EywQw+L{qDw})40brx;%H3SgmE{ zEEyR&O#0Q9vUQ;(9l>=#q-(7TOVMc(&$Pwi58%=Yyie-YNuSYMTib?;i^rFH&;8yn z?evOrrX0dYy@Lx5LT<2%8>3Cz0o?-#aLM($+~vHY;3o$Jj|8UqG)f|+q!wKlvFmGe z@Ur+y`^om|Q)PE&lhVT&bSIN;j5;+x8VXFKWavFMiVe_~pIkTGubd=CP2FkVC^rSR zF6WWcna>z<ycV<G4K>K1UBTI^&Ele#_tmWcNq^1jU?DIUFB^HUAMEDvDv}nDybM4& zc<BmAZ(2m#K;HBkT?fggp=C9|?WN#8nux((e~~W0cMwWANo+}41f&-tCGpL9jFfn^ zLriW$az0T&kw=z#hbN&&UnIIE$Vk@)@#Wzlh_yH=3o&LDLFkM|f6~d;-9lUiQSj-E zC;%{H!*|VFwZ!!UEL;N+IBqXmaj`iB1E-QM{{8U8qH5{lOfmd-2Z}OjBZf}*hCe)Z zcWl%d#tqDmt@oU`W8h^pA8?9FT-D_mfGE<Sqa%HOR{@0@5Mu7Za8cd`Tn;Oza9_}` zOqUDOwIX-g|J=hMY>12LzCQO%+hb%14h;8Md67w7*>6vijPg=Ns0V`gECtp;e1={s zP7=lg3KiKOq4eEF>RG=kL(aBflb%N*kYh4rF+@Z9c>wH6T}P;R0p2#DRct=S6`vX+ zDP@u3busvZ0ivT&D)6?P2(_A(5V6>-8l_65qzx7eM1oBoy^7~=M74y(RtzeREqjm1 z;YYs1Ss4KB2_w2BZws60O@^{kafVe{ExBoVlr<TSE2E6{6C2eq5XZ4mnXf9?T~yqG zRt0#&nnfPBg}^q32#!b?V=cG^T!v+LlzG^bimj&O^RW<5kR@4$EGizTiLW{Qzy30a zF7aOr)pH(fgH#utb?JSq%PvTl@024{`7{Nt+9AU&ISi&qD5qVO$|sY=pRk4TzV7aF znIOslJ7q{=Rab+UkIchMYKA^6w*L+lMJq179NZ>)>7wO0qLHCaRmo;3lNh4<ZJn3H zyOQ8Kn1VbLoJaMFaa&3$_c$kVhEzDm889+1fjz%{p!+<)0bR2if->7wG+4|c^SQB( z@!=kR1u8hioea*~^j7YU4J__RpOzQ=$AU%8R?E%a#WHaJC#f3*A%lt-tlKf~vmITl zPCw^Mw=Rlj9*`|$`mnw@Hcc%|5I<U=IfW5Vjt^#xQicEiLN2aEc=84}FD(6og$}$U zcC^l++MeS7{`T=7U4I4w`u#+Ahy>E0jJGe$lZn{Z5JU$N+2!_MI-f-5_}FvDLP-WC zy&~zO3xWn=70lajQ#IVe!hpfQV{=BEu!AK6khA)AbPAfP373n+bmOMH8g`+jow4^z z6JlT5t6<T;&z`1^;(1u42ooRp0A`y=tRd-=76y`{rUv%R+U~cUlu#wG-lkecW~@dr zy4#eE7f^sm@j`GN_FG4={R9az6Z$n^Ab%A|UKpH}I%*mtprB1Cyg0Bs2rPX}AFodf zr4!1N?f4ws{p1LQc?$q;(F7~vSYtuqxQ;l=7b>1CXdEVP<`L@sMF8Qpf`CgaHh>hP zRBSuao^J5_8iXEi|KZ>DEK8^kygU!)=_&=R```m9EvxI9_Pt)L<|DgxY<rRhKYM-t zUVmR-ZydbXEy|5wKMj%<)631(M6g41Q4SN1nWfA+o3Jo6y_LvLec1zup`7GBn5uCG zE9<$%bRV6H>fy7k)&ig|gbr>{&`gf>bT}Er_OO=zLW7Q}xA%&}F?=Wk6Ivq)paby` z2ItiXgsl61cL5bPp{*hA`OHLrn`ccRLXM<2)FT%;&Tz{B)RGCD<+Jv`)it%!2Ax^^ zMztWieK-+FYrLzyh*$}TYLPlHiFr55&bQgJeYi~Di*GpAlf#?rq?D{7)1Mvpl-w?R z9_0GDt6o2&uh8+*k{u2Q2CtsM7fF8~nthk{(HJ)nACPa&_WvnBx>*EHA`=YkGgvbr z%@tDnlAQ+dXMBZXKKiH9IOIP(@0Ayd@McaH@JeH<5SMBS29-g$16?s7xtWQ7eHy~x zgMTsTW(HmkJwx~b&<B*~s@8MMm8SS>LBusm<*q=AoisIkgf6bR%9c9zTc$%0Q2J<A zjcl6f2^`Z(Mq^J+LAgIL!|UOK>ugQIs<awVVshWqMLDp_Vbr#rD)R;0r|!y<=6arF z(5B2B5rlBV_wq8rs3Mmu009vMkR|h7#gPZh6NWu<5@L3JTnL7iz-|dr^zx{C4s=R8 zPIY;qVx?qY_oE3qo&vsJC(3jdv=v`!crXp=W0RW_jjbN=E7S8{0eKjAC4l|Et#klz z|NPNCMi*qs>J*_xur<|ROcq8$41d_kK*q32QX3`DW-#JH$%;c+d$diNTekf5V!X~h zQZe33GQ?+^W!*WOta88LyU|KWlTV`etP6#MR)x135>r5|dE;*TCIUD^tzgzKg$a)i zw*oH?YzC)XD6x=gnA<uPHMAEaH_htE(6aNF|AVV_5K#K&O?GaYQ@KW|W#)k@ol>T4 zN2TLZVfM<Et|PgXw>%8gC8`=o=j_o9^{q-~hk$a%a<|Kwwq`jd-)D=D>j9xUx;psx zYEZ?L1Dh{JKmZUmzNY$g=`F73!7yxp1pxkvw#^3sTEBhh+F#D1Uw6jQ%K$Kd0RSj~ z|A&*>;n_oW^&cn?UHW?v>LI7W9iHG^-tTP=bV@e_;}x`;0qmq6lmbB)Z?^T<(AuE# z43!r{K(}cDQ88hF7=v*dg29D-e1@O$_%*`pWmC7!V9H7r?o%oyy!2uOhw>Hz*a04y zuO`Jnsg+?cV26;#N4Rx@nC)7uE7?v6cq{DJ>HXcvtG-FpL5^JcNNcQQemcuP*lmgV zpTY78r_^Kb-&nSTWP<r@(!Qg<*jNGWvx-*cqh89N($+WCKtJ@#`JDf4se$PukJ5;q zVlgsH#(F9SBpypD%&P=$f<zwgfb2!8OJZ;r=c>0dS44dz<rb??`o|#&*|#2`3+2`a zxPd?09>E_Br9~I<3sOH$pWMo!zNGns#(3~yml)|o(U_N(0HYR@37_G7lX1boC@+Gi z$o-b{ky5VlkF=X^-asGZ{%CLH(G<Y;7PH-FmUe)*LI&8$pP<&SD7yOAbErDD+38d= zR5S;uphd|2LW_@WDI23q%WUWnoBsAwVG|bzA?1{nw^2+?od4!tLTorD^2r+o#RtOF z#4Fv7sr!-XEx+_pXv$}wzHx(i4T;ib?+$Ok0XPTokO5`T3+JILwK`J&pPYNCZ?Tc@ z^CVHO!`pKDMD&4R^RLja`*EaKgZLYW(}2f-I{^6c&?7w!#P=kqPF&b#e<D>I#<uke z39fQerY}zCNIy3iEKTbXa0UA7F2t@z8h)B$r-|fHwu)`jyh^T1)v~ZJ$fP`bSz0k3 zEW3ClTL1}oQ(FnP9lI>`+Ab8TP>mf_wVvBmib=~bhqA(kR_-(zpKs~+Ln`JRV@`lN zx(RbG&7#Ua$IETSrA2zFv!;;b?O(YT8LF3c0lz{gR8o6b<Tws6vOa7tQIto1X@zRY zglr|64rM;Y{4B54Qt@o)aF6_nP#yw*C>_10Cz$L2wGw)((BK>LxuSeh@^=LD;iLB7 zf*RzW0eC5>G6;qU;64rb8E~p;b6n-y%Zg0RN*D#afOKfSV%j+NS<JZQVSOnhDk=D( z5>`TRmrAYw&|^`x+yEiQsB>o=XUzEhp&w3un|8W_4%+2+Fd!pJP|N?k1qmIUcp~_$ z&e<#SK4W8Eo;5me^kbS4s5ICEq}y2`CvC(-OJcrH2&7Gt80w=Bc}iOCw${X2I8^ij zTn=hA!WCVOF_u}4^HE++aCEDh!r9DuRHATvC<L$=QPl|Okyed?VPwj9Fs0Q5Fk?SZ znEGmS>}ZoMV1}zL@#1+Nck}*e?w)F%)58j*T0ovcwa{pyY7uqvYB5?at0lyFU-kv_ z_Uar~-d|nD$*1K?EY3F_u<yXBo-La?22g8OtkOaG?AwRi)p8CCb5qM$D|^@tClg5D zky}l&rRS)O)}+qrOsVO{h}V@*0$TF0n`uptmfDIHIu<@LF+LOLNgC?{D)z2*A@m-} z7JtosTlRIKWs>VO+SBj(44PKdnY5LQjTLiXU`s=7bdXA(X~{L|O#>Y{q;aPE^wcy< zdeXk3E~Go&XkQA{mJITgu9{k<Z(v`~DO3%fF<3oBHjj@CdXIJ0Ow^foX5Uk{AMJ~5 z?M+*T{qI>HlT#t@wZxUU56zV9(Y;T=G_Nv_mqZ67dn1<dd2?HB`uT$~qOuX9>SKMn OJcoX2)Go~pvv>>Wln9Oh literal 0 HcmV?d00001 diff --git a/website/fonts/OFL.txt b/website/fonts/OFL.txt new file mode 100644 index 0000000..38d9750 --- /dev/null +++ b/website/fonts/OFL.txt @@ -0,0 +1,91 @@ +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/website/img/favicon.svg b/website/img/favicon.svg new file mode 100644 index 0000000..2c9a1af --- /dev/null +++ b/website/img/favicon.svg @@ -0,0 +1,7 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" width="24" height="24"> + <!-- Document outline with folded corner --> + <path d="M6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Z" fill="#6366f1" stroke="#4f46e5" stroke-width="0.5" /> + <path d="M14 2v5a1 1 0 0 0 1 1h5" fill="#818cf8" stroke="#4f46e5" stroke-width="0.5" /> + <!-- Upload arrow --> + <path d="M12 17v-6m0 0-2.5 2.5M12 11l2.5 2.5" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> +</svg> diff --git a/website/img/icon.png b/website/img/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..77176d565f0ba71791bb81351c520eb2c94c777a GIT binary patch literal 11291 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 literal 0 HcmV?d00001 diff --git a/website/img/logo.svg b/website/img/logo.svg new file mode 100644 index 0000000..6e6ba80 --- /dev/null +++ b/website/img/logo.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" width="96" height="96"> + <!-- The SealShare mark: a document with a folded corner and an upload arrow (resources/views/components/app-logo-icon.blade.php). --> + <path d="M6 2h8l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Z" stroke="#4a3fe2" stroke-width="1.5" /> + <path d="M14 2v5a1 1 0 0 0 1 1h5" stroke="#4a3fe2" stroke-width="1.5" /> + <path d="M12 17v-6m0 0-2.5 2.5M12 11l2.5 2.5" stroke="#4a3fe2" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> +</svg> diff --git a/website/index.html b/website/index.html new file mode 100644 index 0000000..55780f4 --- /dev/null +++ b/website/index.html @@ -0,0 +1,712 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>SealShare — your own secure upload platform + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+ Self-hosted · Open source +

Your own secure upload platform

+

SealShare is file sharing software you install on your own server. Your company gets its own upload page to send files to customers and receive files from them — encrypted at rest, on your domain, without relying on an outside service.

+ +
    +
  • No accounts for customers
  • +
  • Encrypted at rest
  • +
  • One Docker image
  • +
+
+
+ + +
+
+
+ + + SealShare's upload page with files selected and share options + +
+
+
+
+
+ + + The download page on a phone + +
+
+
+
+
+ +
+
+
+ Why run your own +

Stop routing your customers' files through someone else's service

+

Transfer services are quick, but every file you exchange with a customer ends up on their servers, under their terms. SealShare is a simple setup for your own upload platform: a secure way to get data from customers and share data with them, entirely under your control.

+
+
+
+ +

Your server, your data

+

Files are stored on infrastructure you control, in the country you choose — not with a transfer service.

+
+
+ +

No accounts for customers

+

Customers open a link and download. Nobody has to sign up anywhere.

+
+
+ +

Your name on it

+

Your domain, and your logo, title and description on the upload page.

+
+
+ +

No per-user pricing

+

Open source under the MIT licence. Use it for the whole company, without seats or subscriptions.

+
+
+
+
+ +
+
+
+

How it works

+

Three steps, for you and for the people you share with.

+
+
    +
  1. + +

    Upload

    +

    Drop files or whole folders. Add a password, an expiry and a download limit if you want.

    +
  2. +
  3. + +

    Share

    +

    Copy the link, show it as a QR code, or send it from your phone's share sheet.

    +
  4. +
  5. + +

    Download

    +

    Your customer opens the link and downloads single files or everything as a ZIP. Expired shares delete themselves.

    +
  6. +
+
+
+ +
+
+
+ Features +

Everything a file exchange with customers needs

+

And nothing that turns it into a project: SealShare runs from a single container and is set up in a few minutes. It follows your system's light or dark theme, on desktop and phone.

+
+
+
+ +

Files and folders

+

Drag & drop or browse; folders keep their structure, with live upload progress.

+
+
+ +

A link per share

+

Every upload gets its own random, hard-to-guess link.

+
+
+ +

QR code and share sheet

+

Show the link as a QR code, save it as a PNG, or pass it to the phone's share sheet.

+
+
+ +

Password protection

+

Protect a share with a password; its encryption key is derived from it.

+
+
+ +

Encrypted at rest

+

Encrypted at rest with AES-256-GCM; with a share password the key is never stored.

+
+
+ +

Expiry

+

From 1 hour to 30 days, or never when the admin allows it.

+
+
+ +

Download limits

+

Close a share after a set number of downloads.

+
+
+ +

ZIP download

+

Recipients download everything in one archive.

+
+
+ +

Automatic clean-up

+

Expired shares and their files are deleted every hour.

+
+
+ +

Admin dashboard

+

Every share with its size, downloads and expiry; storage use at a glance.

+
+
+ +

Limits and quota

+

Maximum file and share size, files per share, storage quota, default expiry.

+
+
+ +

Your branding

+

Your logo, site title and description on the upload page.

+
+
+ +

System password

+

Optionally close the upload page to everyone who does not have the password.

+
+
+ +

Two-factor sign-in

+

Admins protect their accounts with authenticator app codes.

+
+
+ +

One Docker image

+

FrankenPHP with Laravel Octane, automatic TLS and SQLite — no separate database.

+
+
+
+
+ +
+
+
+

See it in action

+

The same interface on a laptop and a phone, in light or dark.

+
+ + + +
+
+ +
+
+
+ Compare +

How SealShare compares

+

Hosted transfer services keep your files on their servers; other self-hosted tools do the same job in their own way. Every value below comes from the product's own website, documentation or repository.

+
+
+
+

Hosted transfer services

+

Quick to use, but the files sit with the provider, under the provider's terms.

+
+ + + + + + + + + + + + + + + + + + +
SealShare and hosted transfer services · As of September 2026
CriterionSealShareWeTransferSwissTransferDropbox TransferGoogle Drive links
Files storedYour serverWeTransfer's cloud (EU or US)Infomaniak, SwitzerlandDropbox's cloud (US by default)Google's cloud
Operated byYouWeTransferInfomaniakDropboxGoogle
Recipient needs an accountNoNoNoNoNo, with “Anyone with the link”
Password protectionYesYes1YesStandard plan and up
Link expiryYes, 1 hour to 30 days, or neverUp to 3 or 7 days on Free11 to 30 days47 days; custom on Standard and upWork or school accounts only
Download limitYesYes, 1 to 250
Encryption at restYes, AES-256-GCMYes, AES-256Yes, AES-256Yes, AES-256Yes, AES-256
End-to-end encryptionNoEnterprise add-onNoNoHigher Workspace editions
Folder uploadYesNo, folders are flattenedYesYesYes
Custom brandingYes: logo, title, descriptionUltimate plan and upThrough paid kDriveStandard plan and up
Maximum file sizeSet by you (server limits)3 GB or 100 GB a month on Free150 GB per transfer2 GB on Basic (free)15 GB of free storage
Licence and costMIT, freeFree (non-commercial use); Starter USD 8/month2FreeFree; Plus EUR 11.99/month2Free; 100 GB CHF 2/month2
QR code for the linkYes
+
+
+
+

Self-hosted share tools

+

Open-source apps you run yourself, like SealShare. Included are single-purpose tools that install with Docker and had a release in the last 12 months.

+
+ + + + + + + + + + + + + + + + + + +
SealShare and other self-hosted share tools · As of September 2026
CriterionSealSharePingvin Share XPsiTransferGokapiErugo
Files storedYour serverYour server or S3Your serverYour server or S3Your server
Operated byYouYouYouYouYou
Recipient needs an accountNoNoNoNoNo
Password protectionYesYesYesYesYes
Link expiryYes, 1 hour to 30 days, or neverYes, up to a maximum you setYes, 1 hour to 8 weeksYes, after days or downloadsYes, 7 days by default
Download limitYesView limit onlyOne-time download onlyYesYes
Encryption at restYes, AES-256-GCMNoNoOptionalNo
End-to-end encryptionNoNoNoOptionalNo
Folder uploadYesYesNoNo, files are listed singly3Yes, keeps structure
Custom brandingYes: logo, title, descriptionYes: logo, name, colours, CSSYes, by editing templatesYes: logo, CSS, JavaScriptYes: logo, colours, themes
Maximum file sizeSet by you (server limits)Set by you (1 GB per share by default)Set by you (no limit by default)Set by you (100 GB by default)Set by you (2 GB per share by default)
Licence and costMIT, freeBSD-2-Clause, freeBSD-2-Clause, freeAGPL-3.0, freeMIT, free
QR code for the linkYesYesYesYesNo
+
+
+

SealShare encrypts files on the server as they arrive. With a share password the key is never stored; without one it is kept in SealShare's database. A value marked “—” could not be confirmed from the product's own sources. Checked on 13 September 2026.

+
+

1 WeTransfer's pricing page and its help centre disagree. The pricing page lists password protection on every plan, expiry up to 7 days and up to 100 GB a month on Free; the help centre (May 2026) lists password protection under Ultimate, expiry up to 3 days, and up to 10 transfers or 3 GB in 30 days on Free.

+

2 The cheapest paid plan, at the price shown in Switzerland on the date above; prices differ by country. WeTransfer's Free plan is for individual, non-commercial use. Dropbox Plus has no passwords or branding for transfers; Google One 100 GB adds storage, not sharing features.

+

3 Gokapi's web interface lists the files of a dropped folder one by one; its command-line client uploads a folder as a ZIP file.

+

4 SwissTransfer's upload form offers 1, 3, 7, 15 or 30 days; Infomaniak's help articles describe 15 days, with an extension to 30 days offered to the sender by email.

+
+ +
+
+
+ +
+
+
+ Install +

Running in a few minutes

+

All you need is a server with Docker and a domain name.

+
    +
  • The image includes the web server with automatic TLS certificates, and uses SQLite — no separate database.
  • +
  • Migrations run on start. Open your domain and the setup wizard creates the first admin account.
  • +
  • Your files and database live in Docker volumes on your server.
  • +
+ Full instructions on Gitea +
+
+
Production, with Docker Compose
+
mkdir sealshare && cd sealshare
+curl -O https://raw.githubusercontent.com/surtic86/SealShare/main/docker-compose.example.yml
+cp docker-compose.example.yml docker-compose.yml
+
+# Generate an app key and paste it into docker-compose.yml
+docker run --rm ghcr.io/surtic86/sealshare:latest php artisan key:generate --show
+
+# Edit docker-compose.yml — set APP_KEY, APP_URL, and SERVER_NAME
+# Then start:
+docker compose up -d
+
+
+
+ +
+
+
+

Frequently asked questions

+
+
+
+ Is SealShare end-to-end encrypted? +
+

No. SealShare encrypts files on your server as they arrive, with AES-256-GCM in chunks, and stores them only in encrypted form. Because the server does the encrypting, it handles the files in the clear while they are uploaded and downloaded — which is why it matters that the server is yours.

+

For a share without a password the key is kept in SealShare's database. With a share password the key is derived from that password and never stored, so the files cannot be decrypted without it.

+
+
+
+ Can customers send files to us? +
+

Yes. Anyone who can open your upload page can upload and gets a link to send back to you. To keep the page for the people you choose, turn on the optional system password in the admin settings and give it to your customers.

+
+
+
+ How big can files be? +
+

As big as your server allows. The Docker image accepts up to 4 GB per file by default; within that, you set the maximum file size and share size in the admin settings (100 MB and 2 GB out of the box). Behind a reverse proxy, raise its request size and timeouts as well.

+
+
+
+ What does it cost? +
+

Nothing. SealShare is open source under the MIT licence. You pay only for the server you run it on.

+
+
+
+ Who runs it? +
+

You do. There is no SealShare cloud and no account with us: you install the Docker image on a server you run, and your files stay on it instead of passing through a transfer service.

+
+
+
+
+
+ +
+
+
+
+

Questions or feedback?

+

Get in touch, or open an issue on Gitea.

+ surtic86@gmail.com +
+ Open an issue +
+
+
+ +
+ + + + + + + diff --git a/website/privacy.html b/website/privacy.html new file mode 100644 index 0000000..215a117 --- /dev/null +++ b/website/privacy.html @@ -0,0 +1,126 @@ + + + + + + Privacy — SealShare + + + + + + + + + + + + + + + + +
+
+
+

Privacy

+

Last updated: September 2026

+ +

This page explains what happens to your data when you visit sealshare.nonameweb.ch. It is about this website only. SealShare itself is software that companies install and run on their own servers; this website does not host it, and files shared through a SealShare installation never reach us.

+ +

Who runs this website

+

This website is run by noNameWEB, Switzerland. For any question about your data, write to surtic86@gmail.com.

+ +

Hosting and server logs

+

The website is hosted by METANET AG in Switzerland. When you open a page, the web server records technical data in its logs, as every web server does: your IP address, the date and time, the page requested, your browser's user agent and the referring page. These logs keep the site running and secure; they are not used to identify you and are kept only as long as the host's standard retention.

+ +

Analytics

+

We count visits with Plausible Analytics, a privacy-friendly service hosted in the EU. Plausible uses no cookies and stores no personal data: it does not keep your IP address or build a profile of you. What we see are totals, such as page views, referring sites, countries and device types. See Plausible's data policy.

+ +

No other third parties

+
    +
  • The fonts, images and styles are served from this website. Nothing is loaded from Google or other font and content networks.
  • +
  • There are no advertising, social media or tracking scripts besides Plausible.
  • +
  • The website sets no cookies and has no forms.
  • +
+ +

Links to other sites

+

Links to Gitea, the source repository and Plausible lead to sites with their own privacy policies.

+ +

Your rights

+

Under the Swiss Federal Act on Data Protection you can ask what data about you is processed, and have it corrected or deleted. Write to the address above.

+ +

Changes

+

If this website starts handling data differently, this page is updated and its date changed.

+
+
+
+ + + + + + +