From b89de57967582cba763863e8a4fb0277d0c5d3e1 Mon Sep 17 00:00:00 2001
From: Vincent van der Wal
Date: Wed, 22 Jul 2026 12:07:01 +0200
Subject: [PATCH] peak search, denser catalog, profiles, filename parsing,
themed map controls
---
src/app.css | 12 ++
src/hooks.server.ts | 8 +-
src/lib/components/Avatar.svelte | 31 ++++
src/lib/components/Map.svelte | 161 +++++++++++++++-----
src/lib/server/db.ts | 66 +++++++-
src/lib/server/peak-score.js | 4 +-
src/routes/+layout.svelte | 47 +++++-
src/routes/activities/[id]/+page.svelte | 7 +-
src/routes/api/peaks/search/+server.ts | 20 +++
src/routes/avatars/[file]/+server.ts | 24 +++
src/routes/peaks/+page.svelte | 145 ++++++++++++++++--
src/routes/profile/+page.server.ts | 45 ++++++
src/routes/profile/+page.svelte | 113 ++++++++++++++
src/routes/upload/+page.server.ts | 32 +++-
src/routes/users/[username]/+page.server.ts | 17 +++
src/routes/users/[username]/+page.svelte | 99 ++++++++++++
static/logo.png | Bin 60654 -> 0 bytes
17 files changed, 767 insertions(+), 64 deletions(-)
create mode 100644 src/lib/components/Avatar.svelte
create mode 100644 src/routes/api/peaks/search/+server.ts
create mode 100644 src/routes/avatars/[file]/+server.ts
create mode 100644 src/routes/profile/+page.server.ts
create mode 100644 src/routes/profile/+page.svelte
create mode 100644 src/routes/users/[username]/+page.server.ts
create mode 100644 src/routes/users/[username]/+page.svelte
delete mode 100644 static/logo.png
diff --git a/src/app.css b/src/app.css
index b117cda..0f19908 100644
--- a/src/app.css
+++ b/src/app.css
@@ -16,6 +16,10 @@
--good: #0ca30c;
--good-text: #006300;
--critical: #d03b3b;
+ --logo-wash-1: #b3e0ec;
+ --logo-wash-2: #96d6c6;
+ --logo-text: #56555a;
+ --map-icon-filter: none;
}
/* dark tokens apply when the OS prefers dark (unless the user forced light),
@@ -38,6 +42,10 @@
--accent-track: #184f95;
--good: #0ca30c;
--good-text: #0ca30c;
+ --logo-wash-1: #1d5766;
+ --logo-wash-2: #1e6355;
+ --logo-text: #eef2f0;
+ --map-icon-filter: invert(1) brightness(1.1);
}
}
:root[data-theme='dark'] {
@@ -57,6 +65,10 @@
--accent-track: #184f95;
--good: #0ca30c;
--good-text: #0ca30c;
+ --logo-wash-1: #1d5766;
+ --logo-wash-2: #1e6355;
+ --logo-text: #eef2f0;
+ --map-icon-filter: invert(1) brightness(1.1);
}
* {
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
index 435eb99..70eccc4 100644
--- a/src/hooks.server.ts
+++ b/src/hooks.server.ts
@@ -4,7 +4,13 @@ import { validateSession } from '$lib/server/auth';
const AUTH_PATHS = new Set(['/login', '/signup']);
function isPublic(path: string): boolean {
- return path === '/' || AUTH_PATHS.has(path) || /^\/activities\/\d+$/.test(path);
+ return (
+ path === '/' ||
+ AUTH_PATHS.has(path) ||
+ /^\/activities\/\d+$/.test(path) ||
+ path.startsWith('/users/') ||
+ path.startsWith('/avatars/')
+ );
}
export const handle: Handle = async ({ event, resolve }) => {
diff --git a/src/lib/components/Avatar.svelte b/src/lib/components/Avatar.svelte
new file mode 100644
index 0000000..436656b
--- /dev/null
+++ b/src/lib/components/Avatar.svelte
@@ -0,0 +1,31 @@
+
+
+{#if avatar}
+
+{:else}
+
+ {username.slice(0, 1).toUpperCase()}
+
+{/if}
+
+
diff --git a/src/lib/components/Map.svelte b/src/lib/components/Map.svelte
index 1de2d68..7449405 100644
--- a/src/lib/components/Map.svelte
+++ b/src/lib/components/Map.svelte
@@ -2,6 +2,7 @@
import { onMount } from 'svelte';
import 'maplibre-gl/dist/maplibre-gl.css';
import { theme } from '$lib/theme.svelte';
+ import type { FeatureCollection, Point } from 'geojson';
export interface MapTrack {
id?: number;
@@ -45,30 +46,35 @@
let container: HTMLDivElement;
let map: import('maplibre-gl').Map | undefined;
let lib: typeof import('maplibre-gl') | undefined;
- let markers: import('maplibre-gl').Marker[] = [];
let currentDark: boolean | undefined;
let pendingTerrain: unknown = null;
- function renderPeaks() {
- if (!lib || !map) return;
- for (const m of markers) m.remove();
- markers = peaks.map((p) => {
- const el = document.createElement('div');
- el.className = `peak-marker ${p.climbed ? 'climbed' : ''}`;
- el.textContent = p.climbed ? '✓' : '▲';
- el.title = `${p.name} · ${p.elevation_m.toLocaleString('en-US')} m`;
- el.addEventListener('click', (e) => {
- e.stopPropagation();
- onpeakclick?.(p.id);
- });
- return new lib!.Marker({ element: el }).setLngLat([p.lon, p.lat]).addTo(map!);
- });
+ export function flyTo(lat: number, lon: number, zoom = 13) {
+ map?.flyTo({ center: [lon, lat], zoom });
}
- // re-render markers when climbed state changes
+ function peaksGeojson(): FeatureCollection {
+ return {
+ type: 'FeatureCollection',
+ features: peaks.map((p) => ({
+ type: 'Feature',
+ id: p.id,
+ properties: {
+ id: p.id,
+ name: p.name,
+ elevation_m: p.elevation_m,
+ climbed: p.climbed
+ },
+ geometry: { type: 'Point', coordinates: [p.lon, p.lat] }
+ }))
+ };
+ }
+
+ // push new data into the peaks layer when peaks/climbed state changes
$effect(() => {
void peaks;
- renderPeaks();
+ const source = map?.getSource('peaks') as import('maplibre-gl').GeoJSONSource | undefined;
+ source?.setData(peaksGeojson());
});
// swap map style when the theme changes
@@ -134,6 +140,39 @@
paint: { 'line-color': dark ? '#3987e5' : '#2a78d6', 'line-width': 2.5 }
});
+ // peaks as native layers - scales to thousands of points
+ map.addSource('peaks', { type: 'geojson', data: peaksGeojson() });
+ map.addLayer({
+ id: 'peaks-circles',
+ type: 'circle',
+ source: 'peaks',
+ paint: {
+ 'circle-radius': ['interpolate', ['linear'], ['zoom'], 5, 5, 12, 9],
+ 'circle-color': [
+ 'case',
+ ['get', 'climbed'],
+ '#0ca30c',
+ dark ? '#1a1a19' : '#fcfcfb'
+ ],
+ 'circle-stroke-width': 1.5,
+ 'circle-stroke-color': ['case', ['get', 'climbed'], '#0ca30c', dark ? '#898781' : '#898781']
+ }
+ });
+ map.addLayer({
+ id: 'peaks-glyphs',
+ type: 'symbol',
+ source: 'peaks',
+ layout: {
+ 'text-field': ['case', ['get', 'climbed'], '✓', '▲'],
+ 'text-size': ['interpolate', ['linear'], ['zoom'], 5, 7, 12, 10],
+ 'text-allow-overlap': true,
+ 'text-ignore-placement': true
+ },
+ paint: {
+ 'text-color': ['case', ['get', 'climbed'], '#ffffff', dark ? '#c3c2b7' : '#52514e']
+ }
+ });
+
// restore 3D terrain across style swaps
if (pendingTerrain) {
map.setTerrain(pendingTerrain as import('maplibre-gl').TerrainSpecification);
@@ -165,6 +204,33 @@
map.on('style.load', () => addLayers(currentDark ?? false));
+ // peak interaction: click to toggle, hover for tooltip
+ const popup = new maplibre.Popup({
+ closeButton: false,
+ closeOnClick: false,
+ offset: 12,
+ className: 'peak-tip'
+ });
+ map.on('click', 'peaks-circles', (e) => {
+ const feature = e.features?.[0];
+ if (feature) onpeakclick?.(feature.properties.id as number);
+ });
+ map.on('mousemove', 'peaks-circles', (e) => {
+ const feature = e.features?.[0];
+ if (!feature || !map) return;
+ map.getCanvas().style.cursor = 'pointer';
+ const p = feature.properties;
+ popup
+ .setLngLat((feature.geometry as Point).coordinates as [number, number])
+ .setText(`${p.name} · ${Number(p.elevation_m).toLocaleString('en-US')} m`)
+ .addTo(map);
+ });
+ map.on('mouseleave', 'peaks-circles', () => {
+ if (!map) return;
+ map.getCanvas().style.cursor = '';
+ popup.remove();
+ });
+
if (onviewport) {
const report = () => {
if (!map) return;
@@ -181,8 +247,6 @@
map.once('load', report);
}
- renderPeaks();
-
const bounds = new maplibre.LngLatBounds();
for (const track of tracks) for (const [lat, lon] of track.latlngs) bounds.extend([lon, lat]);
for (const p of peaks) bounds.extend([p.lon, p.lat]);
@@ -203,27 +267,46 @@
.map {
width: 100%;
}
- :global(.peak-marker) {
- width: 26px;
- height: 26px;
- display: flex;
- align-items: center;
- justify-content: center;
- border-radius: 50%;
- background: var(--surface-1);
- border: 1.5px solid var(--baseline);
- color: var(--text-secondary);
- font-size: 12px;
- font-weight: 700;
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
- cursor: pointer;
- }
- :global(.peak-marker.climbed) {
- background: var(--good);
- border-color: var(--good);
- color: #fff;
- }
:global(.maplibregl-map) {
font: inherit;
}
+ /* theme the maplibre controls */
+ :global(.maplibregl-ctrl-group) {
+ background: var(--surface-1);
+ border-radius: 0.5rem;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
+ }
+ :global(.maplibregl-ctrl-group:not(:empty)) {
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
+ }
+ :global(.maplibregl-ctrl-group button + button) {
+ border-top: 1px solid var(--border);
+ }
+ :global(.maplibregl-ctrl button .maplibregl-ctrl-icon) {
+ filter: var(--map-icon-filter);
+ }
+ :global(.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon) {
+ filter: none;
+ }
+ :global(.maplibregl-ctrl-attrib) {
+ background: color-mix(in srgb, var(--surface-1) 80%, transparent);
+ color: var(--text-muted);
+ }
+ :global(.maplibregl-ctrl-attrib a) {
+ color: var(--text-secondary);
+ }
+ :global(.maplibregl-popup.peak-tip .maplibregl-popup-content) {
+ background: var(--surface-1);
+ color: var(--text-primary);
+ border: 1px solid var(--border);
+ border-radius: 0.5rem;
+ padding: 0.3rem 0.6rem;
+ font-size: 0.82rem;
+ font-weight: 500;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
+ }
+ :global(.maplibregl-popup.peak-tip .maplibregl-popup-tip) {
+ border-top-color: var(--surface-1);
+ border-bottom-color: var(--surface-1);
+ }
diff --git a/src/lib/server/db.ts b/src/lib/server/db.ts
index b948aad..9559e9e 100644
--- a/src/lib/server/db.ts
+++ b/src/lib/server/db.ts
@@ -72,6 +72,14 @@ db.exec(`
CREATE INDEX IF NOT EXISTS idx_ascents_user ON ascents(user_id);
`);
+// lightweight migrations for columns added after the initial schema
+const userCols = (db.prepare('PRAGMA table_info(users)').all() as { name: string }[]).map(
+ (c) => c.name
+);
+for (const col of ['bio', 'location', 'avatar']) {
+ if (!userCols.includes(col)) db.exec(`ALTER TABLE users ADD COLUMN ${col} TEXT`);
+}
+
// Seed the catalog with the curated list while no OSM import has run.
// Seed rows use osm_id "seed:"; scripts/import-peaks.js upgrades them
// to real OSM nodes (preserving ascents) and fills in the rest of the Alps.
@@ -181,6 +189,58 @@ export function listAllActivities(): (Omit & { username:
.all() as (Omit & { username: string })[];
}
+export interface ProfileRow {
+ id: number;
+ username: string;
+ created_at: string;
+ bio: string | null;
+ location: string | null;
+ avatar: string | null;
+}
+
+export function getProfile(username: string): ProfileRow | undefined {
+ return db
+ .prepare('SELECT id, username, created_at, bio, location, avatar FROM users WHERE username = ?')
+ .get(username) as ProfileRow | undefined;
+}
+
+export function updateProfile(
+ userId: number,
+ fields: { bio: string | null; location: string | null; avatar?: string }
+): void {
+ if (fields.avatar !== undefined) {
+ db.prepare('UPDATE users SET bio = ?, location = ?, avatar = ? WHERE id = ?').run(
+ fields.bio,
+ fields.location,
+ fields.avatar,
+ userId
+ );
+ } else {
+ db.prepare('UPDATE users SET bio = ?, location = ? WHERE id = ?').run(
+ fields.bio,
+ fields.location,
+ userId
+ );
+ }
+}
+
+export function userStats(userId: number): {
+ activities: number;
+ distance_m: number;
+ elev_gain_m: number;
+ moving_s: number;
+} {
+ return db
+ .prepare(
+ `SELECT count(*) activities,
+ coalesce(sum(distance_m), 0) distance_m,
+ coalesce(sum(elev_gain_m), 0) elev_gain_m,
+ coalesce(sum(coalesce(moving_s, duration_s, 0)), 0) moving_s
+ FROM activities WHERE user_id = ?`
+ )
+ .get(userId) as { activities: number; distance_m: number; elev_gain_m: number; moving_s: number };
+}
+
export function communityTotals(): {
users: number;
activities: number;
@@ -207,17 +267,17 @@ export function peaksInView(
userId: number,
bbox: { minLat: number; minLon: number; maxLat: number; maxLon: number },
zoom: number,
- limit = 300
+ limit = 1000
): (PeakRow & { climbed_at: string | null; ascent_activity_id: number | null })[] {
return db
.prepare(
`SELECT p.*, a.climbed_at, a.activity_id ascent_activity_id
FROM peaks p
LEFT JOIN ascents a ON a.peak_id = p.id AND a.user_id = @userId
- WHERE p.minzoom <= @zoom
+ WHERE (p.minzoom <= @zoom OR a.climbed_at IS NOT NULL)
AND p.lat BETWEEN @minLat AND @maxLat
AND p.lon BETWEEN @minLon AND @maxLon
- ORDER BY p.score DESC
+ ORDER BY (a.climbed_at IS NOT NULL) DESC, p.score DESC
LIMIT @limit`
)
.all({ userId, zoom: Math.floor(zoom), ...bbox, limit }) as (PeakRow & {
diff --git a/src/lib/server/peak-score.js b/src/lib/server/peak-score.js
index 377eea3..55ae548 100644
--- a/src/lib/server/peak-score.js
+++ b/src/lib/server/peak-score.js
@@ -19,7 +19,7 @@ export const MAX_MINZOOM = 14;
/**
* Assign each peak the lowest zoom level at which it should appear.
- * For every zoom 4..13 the map is divided into a grid (4 cells per tile
+ * For every zoom 4..13 the map is divided into a grid (8 cells per tile
* width); the highest-scoring peak in a cell "wins" it and becomes visible
* from that zoom on. Everything that never wins shows from zoom 14.
* @template {{ lat: number, lon: number, score: number, minzoom?: number }} P
@@ -30,7 +30,7 @@ export function assignMinzoom(peaks) {
const sorted = [...peaks].sort((a, b) => b.score - a.score);
for (const peak of sorted) peak.minzoom = MAX_MINZOOM;
for (let z = 4; z <= 13; z++) {
- const cell = 360 / (Math.pow(2, z) * 4);
+ const cell = 360 / (Math.pow(2, z) * 8);
const occupied = new Set();
for (const peak of sorted) {
const key = `${Math.floor(peak.lon / cell)}:${Math.floor(peak.lat / cell)}`;
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index af6fde3..2e030ea 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -33,8 +33,25 @@
-
+
+
results.length && (searchOpen = true)}
+ />
+ {#if searchOpen && results.length > 0}
+
+ {#each results as peak (peak.id)}
+ -
+
+
+ {/each}
+
+ {/if}
+
+
+
{#if tab === 'view'}
- {#if viewPeaks.length === 0}
- No notable peaks in this view - try panning to the Alps or zooming in.
+ {#if toClimb.length === 0}
+ No peaks left to climb in this view - pan around or zoom in.
{:else}
- {#each viewPeaks as peak (peak.id)}
-
+ {#if toClimb.length > LIST_CAP}
+
+ Showing the {LIST_CAP} most notable of {toClimb.length} peaks on the map - zoom in for more.
+
+ {/if}
{/if}
{:else if ascents.length === 0}
@@ -163,6 +223,71 @@
{/if}
diff --git a/src/routes/upload/+page.server.ts b/src/routes/upload/+page.server.ts
index 31daea2..7dc3a47 100644
--- a/src/routes/upload/+page.server.ts
+++ b/src/routes/upload/+page.server.ts
@@ -3,6 +3,25 @@ import { db, peaksNearBounds, recordAscent } from '$lib/server/db';
import { matchPeaks, parseGpx } from '$lib/server/gpx';
import type { Actions } from './$types';
+/**
+ * Parse export-style filenames like
+ * "2018-01-11 141322 - Run - Afternoon Run.gpx" (Date - Type - Name).
+ */
+function parseFilename(
+ filename: string
+): { date: string; type: string; name: string } | null {
+ const base = filename.replace(/\.gpx$/i, '');
+ const parts = base.split(' - ');
+ if (parts.length < 3) return null;
+ const dateMatch = parts[0].match(/^(\d{4}-\d{2}-\d{2})(\s+\d{4,6})?$/);
+ if (!dateMatch) return null;
+ return {
+ date: dateMatch[1],
+ type: parts[1].trim().toLowerCase(),
+ name: parts.slice(2).join(' - ').trim()
+ };
+}
+
export const actions: Actions = {
default: async ({ request, locals }) => {
const userId = locals.user!.id;
@@ -25,11 +44,12 @@ export const actions: Actions = {
for (const file of files) {
try {
const gpx = parseGpx(await file.text());
+ const parsed = parseFilename(file.name);
const result = insert.run({
user_id: userId,
- name: gpx.name ?? file.name.replace(/\.gpx$/i, ''),
- type: gpx.type ?? 'outdoor',
- date: gpx.date,
+ name: parsed?.name ?? gpx.name ?? file.name.replace(/\.gpx$/i, ''),
+ type: parsed?.type ?? gpx.type ?? 'outdoor',
+ date: gpx.date ?? parsed?.date ?? null,
distance_m: gpx.distance_m,
duration_s: gpx.duration_s,
moving_s: gpx.moving_s,
@@ -49,7 +69,11 @@ export const actions: Actions = {
if (recordAscent(userId, peak.id, activityId, gpx.date)) newPeaks.push(peak.name);
}
- uploaded.push({ id: activityId, name: gpx.name ?? file.name, newPeaks });
+ uploaded.push({
+ id: activityId,
+ name: parsed?.name ?? gpx.name ?? file.name,
+ newPeaks
+ });
} catch (err) {
errors.push(`${file.name}: ${err instanceof Error ? err.message : 'could not parse'}`);
}
diff --git a/src/routes/users/[username]/+page.server.ts b/src/routes/users/[username]/+page.server.ts
new file mode 100644
index 0000000..825aa5a
--- /dev/null
+++ b/src/routes/users/[username]/+page.server.ts
@@ -0,0 +1,17 @@
+import { error } from '@sveltejs/kit';
+import { countAscents, getProfile, listActivities, listAscents, userStats } from '$lib/server/db';
+import type { PageServerLoad } from './$types';
+
+export const load: PageServerLoad = ({ params }) => {
+ const profile = getProfile(params.username);
+ if (!profile) error(404, 'No such user');
+
+ const ascents = listAscents(profile.id);
+ return {
+ profile,
+ stats: userStats(profile.id),
+ peaksReached: countAscents(profile.id),
+ highestAscent: ascents[0] ?? null,
+ activities: listActivities(profile.id).slice(0, 10)
+ };
+};
diff --git a/src/routes/users/[username]/+page.svelte b/src/routes/users/[username]/+page.svelte
new file mode 100644
index 0000000..fb331c1
--- /dev/null
+++ b/src/routes/users/[username]/+page.svelte
@@ -0,0 +1,99 @@
+
+
+
+ {p.username} · Streba
+
+
+
+
+
+
{p.username}
+
+ {#if p.location}{p.location} · {/if}member since {memberSince}
+
+ {#if p.bio}
{p.bio}
{/if}
+
+
+
+
+
+
+
+
+
+
+{#if data.peaksReached > 0}
+
+ ⛰ {data.peaksReached} peak{data.peaksReached === 1 ? '' : 's'} reached{#if data.highestAscent},
+ highest: {data.highestAscent.name}
+ ({Math.round(data.highestAscent.elevation_m ?? 0).toLocaleString('en-US')} m){/if}.
+
+{/if}
+
+
Recent activities
+{#if data.activities.length === 0}
+
No activities yet.
+{:else}
+
+ {#each data.activities as activity (activity.id)}
+
+ {/each}
+
+{/if}
+
+
diff --git a/static/logo.png b/static/logo.png
deleted file mode 100644
index cb4bbefa439e01bf8569d11cb3d106fde151ae69..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 60654
zcmV*WKv}
AOoES+vxxRAOJ~3
zK~#9!?7dl+9mjPwxKBjhp=J~c^FR;<4gx8TpeUJ=WyuEZul3n(b+1LP)la=vKgdtL
z`jLEezd=7i`~m$yb-N#0@
zFOC3zbc~J>(2tJaKolP%b`RK=+5guA_z-~i-#^LVc`$*2c?RYQSRldz0SgK^9ez*2
zgFXSw3`LIGAqEt=*Q623kB-stdw-0mo6k}7jvHo}z
zfLsE#BD|u2(*Qt34)_VD34kUC?(PpkiQlCWjWaq%#|Y?0$A2E=LzEpO^$g&R19%VS
ze9}ekm?dBZE|Q-On?TqQT!ii-cMtRl_!F?Ah)!$5bBb`f@ISA8WUmCskHCI(jE)h|
zkB-j>;3Y+4*?rwG<_+_A4C6b@m^B&y9)8}4*AP)W3L^Kj0`%ddcuiO#q6JNO&j0a1
z4`?FK-;W~u(J?xHpN|no|G5BomY^OZc@wD^K3OqN7(w3z`6PKgr1b!AI91>f5Ua1m
z1na@x2IZx~tOB1P&`AOo;He!2fW+$u&VHoE86Bfz1oWfhQ-XaRwQ~*dK66t*u
z7zU~gq8UQ!d;mz!z)*K!d?VkqQdZ{1MoX
zj?poqZbrxL0G?BjHv;4<%cnf|K5qoTJ35CVB~u9wp1G!0!e$WR+P`0+YMxyQ%BN5S
zO)eYIp2}$`yrLB)G|s3%J32EW#a(cfqZ2hMdLa6r;K&L8z`8Pc_2cs
zta}Zu>INr4_W(%ck(vhG5DL%1E71w-z#nKTtQ3l#)r9AYks4=ojE)g?Gdey6$Y-3q
zW%d!g1NqYO^OcX_E6cH{sxm(U=2~B`$bo%`)Wg>cQEerve@^b_M74BNas3urQOGW4
zE%QkNEm*?oWTz53`w@*ZI!4C`=tm$ADVMAjF#+T&=I>M%rz*y*v5s~reYEb1r-Q~e
zR!}oRPN^Z3F(SezN{hGQJhcD21z-ftL(EX*z@8XS0SvY@uL;j-aaBri_A~np-aLG)~)@LZs9bVlQhym3ay=om%x|1~3d)ZMKiiVua?%JM10_)h6T
zzOr2NBK7@V4xuZGR3*{En?z825FtX#fmMgo@*4GE3m^
zfC(CSj*-$hY9zTF9iw9u(f?PbY>Y3uTI+z=Sj?Bq&l`&qHBI9w3F3juQ2?~U_Zvh{7s{!A+-5-0ZeaxUqhoY@{th*|1;62_-U5~7@08X>^2Ult
z9~?FDmFS8!LM0P`Q*!S?Iw^~+m905_3E1KH;=j3$+Cyd#wDLr?QYZNB1jSHgUE@`0
z@l?tDyb%@+x1DG;I!4Fn7yP2$%QC?~5b2IFnDUsF#NW50)wl#t}k_BMn?HIs-r7Rm6arD2|(YHX?Fj|Vx
z)Ew`BWxYR9HvJ_O@B{tUGeBDp{@myo9ixc;Hw5yzS(zUYl1zunXS2r6SET;)6bhmO
zsHK7?bGnQ?e?BBU{H~;L2IwL2wTf%|gyh@>FK>a9%$S#xuJZARqvPWb%M4=~or>p|
zd(2Bc%S&BeUhFb&lzcMG1*j~eZ`fypjO89be`DM7N{>&i_j$f=IDUSk=zeqzJ4ULT
z&z7c%CS;-0wQu?Pp21Un3zUhyfz!EH{@(@FV63T@NlHpZEBD%(2nD&~D8zt~uyd2(
z>jO;`=FQgr@~+`Y`S*$n9zpYHzX^p*p+Uj;jL>kNINxn3de+M?T@%%RarF)J?IY{T
zG76t^m6oyI=Tkj{XACp8tF%kGp@2PYB2B<%2`()#)o?F;ZJW9D^xaGo*gvL-$VK**
zWi&ORsocNAYlSh9qhl1&kB(mz*z-u%gM4LyzQugc@|n`&DZ_&UMXW{A6jceY8gDEX
zC6puxdGdd;0n|}bLUKq*0P8}$4nTFM>>$UKQbHjMu(e#&a%#wC7~cs+S<9oS-ZGbB*p+m@HQme=|`zg=-MlxB2{BKpzsDJYsWlB*ReeZ%Nk
zEcY#DgGrhE1JuP=7v0rSerQCJR7=HxwG5>Q#z%!D&&B)9=cE4uts*_@!-hki5|Vtp
z=U(_=b|
zo|zd-T|PsEg~@`R-m3W2%`QJviMolT$q0j^A0gS69v#Qj{8>xv{jw`
z?QYZGOf~7bVie(zfPQog2X{%)$jC@8(9!}u!)JOHC;EobxAj6TJ&h6oQ{MWZgLfcW
zOC#Aw?4=FGH-c6*xP&>c608+PKb@q|8nT1RrgBUPR$+s%2=>Sni+<6r*k=k2z$}po_x$~_o&@ucx1M@QtdaR*u5BBWuc|(0VK(wBIDJ`FzY0~MgscE#P
za-Z#Tm(Q&B`9$y)>Uqg(nD`ZY7`O)U@NZdriN@c$tnf6%HM=6Vql)luw#1QCNW#XNeKlEwhM>B8gCSahniI8j;-4MuSR
z%BVT0VS>w~G#!(Q7#CI3z}!}q5pTgZIM6wv1`w4t!shEF=`g_uj4;t9|Ce-J9>;>hUuH&?gJ}Ze{UI#}`fAhLaZLgW3rm
z;LVU=qqOx#8?B{-lQpG3XR`i`LIfLI6{ECZBG5zute1?YB8-hRc%z8^bI+Hvqc74l
z*8#He3#6&tstSsjFib;6Y
zLa~#D#eouv93z0)2+%HQuy`srfjXLX>3fXEk#hJfHU-(~D(w|G-A|H8GtfFs?TWK4
zMaLTI_7sjhUHZ&G9_Sgya?dgmFj)}wES?`P=;?+6u5Vl3DC_I4*cFv08o+FmsI4ig
zo8-|qjMY9b?`+Y|Ef3-i0(Q0(bqt>@2&X3-gq{VKyOy_&1JOXWl>T$qsIv*Fm@2uZ
z=?Y3SLuB_UK6AEio(rG1rZiAd;0Uv>&I(b;Q*4cD>9_9Z}T<$nOxaz>N9Q
z;(LJ_F}|rNq~D>biLhICbSFCWZ{aMO;4NMaz#z-Xwr8#D}H9Xa_7<1^|LnJpzk*oo?hxP
z_e>pOdjq>zFjtv;R$4=c`){++1CqXx*`3U)LS`qQ6P0DD0qA8dMp|EMpH1v(69vjI
zY~1?`@Wj)|zV*wL~E)WQT2CzgC_>kB$-0f98i_##)cRvsLl;!lG*``aTgB
zddBggmGEQNp-AOdf{Q3ADrH()EI_{+TW)yvD;>ipI;I8*m8IFzUN{uNRK}ZH9t5;P
zrPc*fuBpOer`l>*E>sCB1=YY3lsh&%*Wj2LHXkYFla|MpIVx&o1PlQ#EWB_UR1Yl)
z#o30!_Zy0ymgfl(p%#h;WT44k{3dRg(bg0@gFW*fX}QgcvC?A>plE{iGg2i>R5hXg
zoDeb>CFl&l`Ia`#z8ER(B2PC&<633IV1`8SfqG-{d4?S}1x$JQE1@6r_qM
z&NdHlTKLbi3d8B=8#V>Yz+?lMY1XA#!#LSDc!9x~X)5X&p7-jZ=x{nZMnL~-N9=Ja
z5K>JUT(o|(>(c80SPkVK>QL~K9A^ODFzCYpCZT6tp-mIe(v;Zu1}ULoFHaK-OUm4=
zq&57%qr+szaVw#u7)nQFyu8XNn6N>pjN6xBP^gp!0&0F2S#%txPw5N*3zdR^yygff
zB65zhONx>GE1K{e1M>{b6R@BO&ovY+6rvD9;xi(Da+PIll>B@_c($c!fgNW)uLuhT
zxyXB~!tz$dvprM4e~3EsxW<$S{$oC2BjP25gd
z6EhFFsiWQ`LY65v3Lt%^hCL4w)aCQaNbNHi?pcu8=2XLN{4Q`}^ethkf$z37o-K%6
zCOwMoM?n8+`1agdu@_Qsu@Lg~_g2p}lT@4y$`;f@&qs!uD2=Q=xb>an4g~>Y1)-@N
zm(PL*kqd%`EL_WJsy+a|lmc%<4W{%algY_*%|S>?@bX|d&^8KbL@%YCD%04@%`JZo
zNd@G7`QTK!6M)F;>!FDvIQp-zG!&jDV8Jp@GBEFd_cQ?uirgm9F??#HAf$pk6Aw{jy1
z*sk;{9cvO=z=RF^M-US;nOq_qVFca0zsZ1~TZeQ-5i(06w<=~*q(G`Xfn
z8^8$YBiFiJ)sdW7|jdK{cXjcoCJd2wYME71x}r$~br}=CR5sD*!PG>cv20
z7b>NR0!2i`DEuat7i;ALHvWDTz9=2&oW#@&X>qn7sjE+4Q%3gr(2@Z5B<^|W(rx(2
z(DB%u&>V%&s~IEWU08MIs}`XoHNJatNOl0Fa{S`C~JH?o;gt6z`eP@Q2O1LYmKvB(wR(DkEynbd!>o59bslm|#GudUK8iT241yITDhD
z)HM|CwGw7^*1aZEs=ZG(1yRVQk13QJ;g}ajSCR$RTo1u3V+9^76tLQ3?i$9JCQLU$
z4J9)ZN+SIc`2PV$^g-Jmtl~*208ARKv9UA*LYf^y*0X4M4M{$;d4XOw
zU=c`yB-#qZ6BrqEs)hfmq`RKV0~0lPaq=PNEwKtVeaW7U$dY=zMcGay4P{%9I2G-v&?Fw{_h+C
zCe|b1vO{^z3Mn7XNHaS6*uZA6E+EfE+EmDmDqL%b^h-|tZ3+>PR8@tSfAkM{`<0iI
zdp>{si}>n)`yWxX+DXPjg2GbS=LWyI$n)2?iM;tX*Ozym%WNo6f@1}(G!&jLEuQxU
z-<{1!{dn=_2>5@0sT&_boah*w?;01)mo`oNL*y2;)LpNOH*&tJbsea(U}^wZ6QT@f
zK@i*;-IOHv^l5Kbz;K#z2?kOFAArAW-6o=}i|)Ou!~q`aKM=s8vO*ej3XUWefkoPN
zn?z+i2*yc4G}|DobtY%Zud=*jQo1C{^Qa?i_Ses`o{{^}OVcwQ&XqFmUTgv?Q?ul?
z_gspIY@A}eFG=%Iuw16Jh%5^6@j3<99W5=wGeCg$bV;%S!cji~j04R@;%BVrE08u5
z!#-!uY6z0j3DJ2{xJ9ZSla!u9%JEwUR+et!+NFhLoz3i=a~lb#1@ox-36vMr-Q%&?
zET37D)FXkw$tcRasV_=>{p-k#*T(DQSpYBeO>EBNwg!zAh|gc4C<-Y?p#M1qdd?$O
zu~03Xs-`ERc$vn-*7gGxyPxY@M?F-WMq8Evw)I0?`VF8NQ$q{Ggo?>We;lKjKqVP}
zq9I)l6MV=cgbIq7AZrApWOAG_QYjw|vnD_teaTG#0}BHJuxDnhfOi?
z(-d2v+;s%Lec)ba)B}N_{YGI$R4iqxbrF=oL_R)Sy)+Q6jzcVM$mFE7yvW+*9cA=-S((Ov%DG
za9IxfsGNx+M@$~PC1~f}mBH?~wg4Uk^*r;Stmc4Bt|<%MCIc_SIagc*P2#p0t}~pw
zf394wKwZmdsQN6G5Cs%jh9T=1l}+iT80m@#7#Nayi5tL3KUZVZ&wQZoLV&M~n8W(g
zbbI4C8U4%q7&?dZj%C?>Z8K2-XWy6iKFJD^$~!@W88XFhk#
zW-~fn&^3bo-x<&c$yFF4Z7a<8EzWc*o|W>v72jSSIPU;3l`w7!(~xQf1}8E`V+?wo
z4z^ZrVRPvQR&QR%=ISl<)>qKm+Co@JJ+ArOkje+u4f)k-7z4WYL}BG4ZK(>9
zUAB}xND}CW6|e(s)AzI*aryrh>C%B@D($aNw1-=x%P{*5wOWJbw;LmoH*%@fv#Do3NDu
zv;Ebp(L^Av(QJ=ndTtkH_8!3O9mlZa&^%`M>_?;7igR1TlhyZhQ8fOtB0>@iKT-e?
z3)|BHD&s)q!b+l_EZTQcQjVESK_rU4lw=Ks01k~*4x@a}fmFyyE94-JgdA)^7_dvu
zi*zhNA-ty%BM%dR7o55g_bZ%Bm8oS^R@4h$FHld=(h#rfDHbg*^X8uoQ%++z=H)q4>E_d(a}P==s^YfUBXk
z`~x`R_di3R4-GhLC3D}V&W%wMd(X
zD33%b<&$NkFFo;Pnr<_CCxWBDIiaZwSphKN_(6$;P@a?ap&aobzmCAKa+b;q8v*h~
z(4=-MX&DhslXznZqVhU(dILhCk@LrtM8lMT4rLorLm_#l^5!rr3Zimjm5oDEQk#G%
zrO&y1e<@Qm5;%F#wi+2n4x#GFgMp-R4{4DVx8w79uoh&q&x<(yJ=qDYq~HK)UqSNB
za@s|$hgf0{^d5-8IrcW+k9`>oY%^oqfZN)2v(GdYX~pOn#(E!IT1WltXo8ft%V?_6
zP?gV|x~XhEl(-U6jv`0KY@1qRTZjn8X7q%6pcvh?Wn6siC7gftXIQ@S5v(=8@ta~z
zh0Wz9Y%VY1(i>;6W8VQBy6<5ex&IODIdmslMd7w3ma=eM3u4_m=_~CiFVm%Boreq*))~w((?i!35#Tv
z7dEru=6t&-F&KztQb&_1lQ?T}m2{JA03%B2ilN11q`+n|Xb~X`+_KIfZ7A}Y13;b0
zB>e-zVN)tzEDzRp?8nUK9cHX%#bUMM*-EZcY^FJtWV0qM&VFy8mxAhNO=g5vD4PiB
zF#6Ebf-FnqkXd?)x9MJ(L!)EQ)JA)q3f%Dz-_8~h`C&TbFD&%Zd>Z^8uxP>WUxU|Y
z0`#FE7n})UYRP2ZvM^I~xHJi|dMxk99j*Ugx@1g4T(C>CpcDpcT3AXlQL4WzmhgiP)5iY&@5{^Ce
z7>=L#3icj45<6z=h7?gamX@+Z7GR<3#Rd!?>o-6nga##0qP5RCZn;Qx)&yg-ECHyw
z?8FC%QoVI9r!>Bf5?+Y1tR`GjLk;rq`E?HSp@|EhQ!k-`<{eHmqP#%~S(I&W;{uvq
zr=!G@hAvML>nZrc;!TUDsKU2LwcVg38yw6FjGAOJ~3K~&Z)Y%bow`r;zC
zZY`m|wKaTGVaD3h4gB&)e~-)WzKJh<>1#Otr6({xH7%r%<2qYMYxk
zoKU`z`q$&!lN^J-IkHt>iwIRpG!sC{b{Qp9F7?9XArTybiId1Z(ZeHk;*@^sDr>re
z2UsmO4MlZrLuH#-ya!pWKpJo5n`i8b9bzU{PuQv@mpUtSCWdF(HBv^kNDyO4dW3yV
zhvEh!H`;ufm)s1LN(;DggZ!ANJ_lFJsa#i1oyxNW`J4udQb}GuE7}eQf9{*Pf!{EL
zz)%B_a_^r20%}Y8}9hW*k^&Ug5V`zal-|G&I+^6PtWA|OhvFEOPFmvDlniFkk
zO~U!oLJ^^@HH@{eVW0*Pnnb9WQA|yvxobD3j?RPFqSx)gtgc|~+ErXXe;ylGE@OLb
zZ7|wr#^U7ls3~tVBZ*XPka+_9Y8^5;&!9U4n3}0CFplnG*grc>2TNUoDhJ(kDMq
zQ+WrhS$jT$iPE@LI4*L-u9
zwh6Lf%^(Fl8Zt>tM);7?F{hgnFz9wVlyVT~6f!mKlJ9AK$FNd$&8H9rX4y2R
zXfRNa<1^*vC2JH?9vzGDSvF>bI&FXw&5F!P;6Qc%LQirR|a~^z*fl^E8Mkg
zmF_|4c{|9^aO4fiB2R2RzpKG8meI2%jP0WBJ54QXR3+o=zy1T>{P91*ROP^Xk5A9w
z=p&Eg$U|R3W6uF7WdQD>Zz~6;K7w}6mIkG@Pyi~n7}MHCQBmo^?!yUEtac022M=QB
z;X~N_;DabvR7${vr!ZX1qe;buWIeAPItrP9
zT>Rx)*-O0m&p*Jsum3Xn`omBB3BLM2d^_QCnZj@qj;Um@jm_0C7Q<6<8y)~j;mGlW
zDotVYx`5=49f!(sl;g0dnlid677`I8wv;U97%lqZy#vA82~$cOk&kZV*h7^7V$PZ8
zloC@7IxHf4>4Hg?L5cg=_qOtle9~TAK4X1b5B^~uEVvJQeF^5AO;?lAy%y8D
zD$#LYTHt1nu~vdBTTcxOeI-rBD2SeAzox={s~9IW0i|ENeFLm8UT6?wOw;$dpr;ja
zlroPOAqc3~CH+1Ez5lT1SNnX1fCUpwr$P!jvg3otx>23
zF1+*--u&sm3?W#hdD5m4&n`UYb
z+I5Wf{0G~&uI+lP)xy}meb}*YAMSYgQCxfPU3~cF8@P4h0&L|f$y0N?aPYqS(c==z
zDp>Op$E)E+z(H%-G%%MTJVJWgu@d1TI+?L$&D_60O+In}G%v{5L(
zPD`nkMWSpG^^YQ-v5KrnN$G3HXIo@Jv5|_0yP7iBy$InN3sD<@*fdLaeHo!YLGfUL
zUfLK)I%QZyZ+sJ&ybt-e@YFi!r<>&{Jb(bD2Zpz
zWL6EidMvje$qUd@h!C2xAO#V^{k3QKdtHO?$*%l3iA`*rl>zzydX}H+80MCy70Z}y
zD15iFcs6kUO(g;y`rT4GzZOSdF-~oim<9Mm&@meZHY!HPw=jn&zKUt40dW`1Jup?M
zY=x!=VapabE`EUbe)exDyPbjeJN(cixc?h}hSr|F=-Lv6WiT^(rgWYdzEP-R3&V^q
z*L<(#@I7`BzS4;XxljZ~@VWOzI1ozDr?jW1aPW~wF*Sb-H_pC|tFOI=wQErj#VA}y6y>20Lpmg)wmAsVLfw*{YO;~Z
z@R*Pkm82{bAHy&5kZ?7+X~yW?Wh}_F*)nR*x!in~Yw#~uqJSCFcQs6zB|O$CyUwVL
zp;Xr|Ef#Vqq0PoQh6uEF#3U5nHerBf8giYo35^70V=|RZ-MmKia}zcZ7M94liU+B3
z>oyvNfovlmgc34}nieE9d|E>pACF8W#9||m>MGfrAbok*pOli<$-`$FAnPutAMJIjC}?SOf`spjlwhzMr!XW2dmgHL`mdUH;bq!sp=W)qddo@Hx;?jcUniQ
z--_!GrnI%INNZ{ecYgUR*mdVoEWi5>=8n#z4~DV^mKkjg7$#UIA5l_NI5ZUb$UboN
z%G(8pmi&4X;E!3XQ5BGkSfl|y*l;~xRf(Y!is}ea>dGaLor6YBwP+eVr)22203n^x
zMZ=8L2HY-Xs-I}^2}Q=s=W}%9&~HwQrof=$2*c!iL(XSV6;eBw8Vs>`kn+*Y>Oo;J
z+mZ!wVusuanPM80uU~>GS3uTS}Yk
zL{u)D!<5kY=RQeCNExn?6gfVAl84Ut$FMHgm?%BWHT+_15B
z;r)timZ{A$1>!V%%ITAe2j|-6*BP3+Sgguib1vx|okg5wT|i4_@JdT!HDu9CJ-#dg
z>s%7ZH4QV&S(fL1&tm=J(&y>>o)mR4lt#DgxOz@Xk=3llk}l=72JoydHP
zBxRaVZIs%XSV6CCyD4c;v7>OF*+HN}31P$Fe}4Bs&tATCqhndCU=i$qF?6_+kf@O;
zc=k<+ijCjJE3eSt=%Zq)3YX8GMQ>{>dCx|>jYE%p36uNw!y*8*Z+ZZu^3)13JK324
zz?cep8fh6);
zL4%t2Vd@rH#~8S$B5IAB*pO8&Z5fOlNhwD<(%?Xq+qqW)>2*?GA3-e`;B2#(oIcZF
zgw7c3ZU<#ed07T1X)H**$eOYs0+BqzR@rz)3FdO%FK7CG3bmb#8nQfmgOv9zmrf?e
zfmsH_V)F|dVb9=7d3L|+)d1Ra`ff0Z`+F!d26}>sVAw|9t+WPO5&Fi$
z+6skIUcaxP6~lmFtpS5zS)sDZe@}aAN%_~~p$j&~`WzZu+zLsDgomGTsu0RvB;JpV
z@07ZH8PUmhc_nB9m!h)oW~HQS)Cjp~f&G0puJdrYsgM8q7@XarfQj@ZSHXkZJbOXZh
z>#TbpyxIrpbxIde7X1nGI&GFYgusF*Z2&VoD5phcbwWc7+H$`g*+s8uaHelwJ4t6v
zgn~W|4-`Cg8-7Al*5F2U;hTl>4H<2k47?j4qK%+8Ul(q!3LEkG+nu_A$R|KqIzlN>V)#SZ&qk*}5
z?g2F${(*D=-11@2wlSVlca%&>JG;i9AcEEu7pGwd;-O&ax^fj7TA^!=7+%3~N>OOq
zVXz-PXrnTwP;gR8Fe+gK?>v>$?8QzD6N4ag@)2FL9GJ|W2?9U
zrT5+uJj!oiCbVyRQjy&GQlCI`h!yUzxxLb=Af*4{`;{Gh4GzJA68`jwLnlX1
zbq%+fYf7WgNMUBhNuoio`aF}UX9`g4#TY7;{Df?r1;tSYduh>pXGLU6nT>R?F9{K9
z0l@mtQw9wolQKw~+hSqe3hN54fs&)t*-wR|!HprOgk;Sp=l*5)GiS|hQ7uJ-8$)=V
z%B!BjKpUCG$)1(mo;maa1t(sJpu)ffStXp6dP~vwCL2JD@SOTBaW|g`^wxK{uJ-w<
zVSef*1ID?_L2E+a^s(9BM6;NLu{|&w7`Esc>!=LtB6(5@m0_%0y&5HpQ7^x94pWB@
zN99bzN8t6iI3+qLIY!^)n<6v_N;x{DV4xt4&8iZ+uaA$JQ30;8iWz;;{L@eh)>@RF
zcB+_BRu#qzjh0eQ-sxNAgB;5mM#%;(<#=~iGTKq-8CSS%>H?Ywh7Brf!5-|H&CsRm
zq8jTrR;q!*Q#3Y4ndBl+N+Ym1!cEn@H7EM*Y_gGMG<2ZB$WvFYyc@1nswz}6$;yp<
z1YDP)$|$|OxGAHgq%b;URH60fTZTa}e&^wgM=uB{1x*tC=}Q@T`HZCLUp%*>kY4ej
z=}ke(L^(Uq}X@SB6S9Ay!6AYL+PM0!b
zL#QX7rPmpn{=xuq#VMDrGFnVdPa9SPVRoMj4XHH+aLs-GRhFf(-@qE8+c<9~i;bR{
zms0>_V>$LXXm1MSE4^J42-
zyD{wNwL0o10DjmI#ynt06JL?qy0K(H$u_o22d^4q-9yr}6ph6?#<+-*+$K}{4Q0Ko
z{6eGn-p2cF6pCOB&|?eb8{6wx#ro)&Vc0IbiW7NvJupYykG^%!tdzLQO-9;d#J$wx$JT)=F$TTO&4Krwp4*A>Rtr^>bUI6ertiLxU>LYd1w!f3#Lbco
zlmWrAMO$fn5S&lT$n1Y`$sXix;^9g`=jvzIOzG)!>9NO@jqL$_uopqelrkI-9m7Z7Yl%
zB15-V+%$aWd59df;JMurH2+lM37}Lx4BND;j@aFQm>!50Sjs?
z7@dXBvIsK^T2R^HCq)YA5w!D)^=b~!Z4#(b)X37RbBL~1##&+Qr(Bq_Z11p
zr~4?F8K$aG_4@
zh((Z&F(A|%2>}0hMoVc=7kGWWBCj?w0685#K+vAf(Td{cQ^l3Z*jieG>Gk{rNAa90
zwy3O6tt*3WXRu*xYh%L?epbE!OEFJSp1#S`;ao*Ss=%&;N1_rb@UexjW@>+)(n&HF
z+C|jJ#$aW2Icfa|DNN7KMb(qax=Dl2OHy0~!&-}~>|=9%9o_9sl$|Yfw>D9heay`5
z#-Y28!+PjRCQHe*Ue+9hY*QyZGoetS{vzrG{&VVA2Bz$zySaw$)+V+#H__SJL{*kf
zwyO)Y+HJHZrZ7G+iHWHxw8tk=6h+jVQ`R_?Q?Ig_jZ_{jr@)=4FoKdOk^0q*i24&y
zLXlISg&r9B`Dn_F<{&c)hOH`ex3|#QTt{zv6P?Ws^m|=Ym2pb0Mib4kag0q&VPawe
z<5SaUw%UNw5jcr62_n~n6hk&Gnf+KEzM0D?eR&BO-y2D$~_aRC|tfPIQ(3qY=hL>_5HjO
za6-=L{Y?e;LxH|;8QUeF+%){cddao-i6}^PY=v&s0l`9f^-F0>^sGUH6xceoN;5{>
zzLh;Td?@sdg)w$eVd7OUnv`#?chm|C9XZ3IV@#xN0w}p%nIh;I9|?zOM0u4BJg*w4
zr!e?fiQiQoWQ>@`rf~g>j}Q=K(I8Kd~7I
zNd1m-%jDP$#Ei1Ljhol5;_Af@aO0zkSiW%$8*3}*bvrO&iksljl+w^efwA!k%qPuLIIBU-zwCeK4ZWyhVk;28OwcsVYTnZ{?!T_M$1n_
z?pA$tP3bh=sArS9i(xdBiXUR(9UUD_Q5P_qjRLyR1MhG8B^u=1^D5yHZrQ!Av9^}K
zS%#sSXQs%#vj<&@u8M|g_rcOKESdQ5_dH++MN6TA!X@>p4j$~*f3K-jEa3W`8Wl5?
z=S0Jws@p?<``4R_WsE^5>ofROkIwd%pWsyw^;Tkm1W;ok=d7D!YL!J*_HpalRdlxN
z^HIt<nb`!-f?-awgWb4i1q$>gO1Kt^R}
zv|T?8l~$f3u*~RpJGgxQT`Zh^1DD=Ai^tv6auP)>2r3Jk8i=Sa)
zY6|-f--)~Ke+b9!e-Jx%?FEyHiV_|oowOPM4bh}SG}t2``Qc%mzJ`Z4Ohp>Y)~_FY
zU6|92eeKpweDK!mSUCGSu6=j`TN~>iJEtK&o2XFsd+2U&VP$C%7vDPvr8TBzc3}UJ
zW0=410USO40A_a1#n4HP*i8IxIBUw1l$Gpf0Sz6W$XRcIEWAb)nPqHmuH)*3_wmvD
z@8F~J?_&ApBD&k#pL!IjfvfEIIvs4RuHedt7xC7amoPRlfqjRL;O++=!CenLg4x}B
z-8RfM^<;g68&`ayYlsWQXesEdJhEiyRLYh`68jZn>Vspa*rBWbvt%c;3FyRA@p4mC#Xzs$5!&y{
zH#ar3j@zeLg<5y+RkFDO2BHBA<~EU|1%Z8UgV6A^#g+5#
z;f^5>Jh0n0b^t37S8?hC7k=^%eem0MVL$h_v;+i7_2Sd!rJmJeDLP0
z*n7vF_`<`F;oe6c$Bwz(jzUu@D9a3xkTM9`Q&&AB94a%tzZJhsxzv{2(4nQ9*YW$rMp0lgtK>97ARFt#^0vGC5@xb*%zc>B!H@ZjTL#e
zEl?@?UU+ufn*XMu=sEovLq>5sUT;hT9ZlG-;FU8#gDPy5Yv`~+*ObvS2BNC1Q1iP%
z72`TnZHyo*ADuHPv?nJA-hchpEo^l^umQsEamgDWLWhk<-P5@>wapH{=i^SGx?u%Hsv~Cew
zziE96o`v~#76|{jPo9(l!@#mr6KPM0Rg7ratYfoV-5?g*cb5M7vf6~1^CaW^SJ)ehq!X_Jih$RKgWSP@2ZRFz8|6R
zJup4LOR)l4!2EBe80%aiU9*cD2gvbZ3M_fWCIW5fHtSmlYAs!B+=Kl<0P8|I;0;lB
z(P&_D*RDaJUtGlIttITe;|R8^%02MjkWBgaZR+6n&T-mN;K_re(Rl5>@jSfoUABcL
z^sK>{*6Hk0|2l|X((se1T+x)-6>ghKK`94(D(aOT3mP_|o;5LAYiWf;4?m2lgNI^Q
zu=V~s;ph9-f~>_yufL9!t5=izvH#dH9DDFV*MLO|5Qb<0jFFjq1ui;JS?!4l6wQVQ
zdX7|BuzdiWokQi-MwPX(c&>qQw{j>Ff&S9fo%m#?p>E|T*u3&{|Rrs{NhmC
zX-D}eG+Hf;PflTCavIHc3q{cc5wP#@9Y|UAw4i4*?h_a^T4QVQ&MPnB%#Z&WmoI#9
zThV#ZXkco`EOzeRhuPhGFg-hm_V@%E&8Cy`RtDW}2U}~aSX)}e>a9gAFWx|}+Zg~m
zYb`FmcMjJte~25GFX7RzKZ%)Ldr}1s>H;WddVkpoYBL(b*x@x9x^2)t
zUB%|g3i{pd&<(&EgG=w7!}Sj@;@YM2_|l)8#LoSPL=zkNwd^Fva^3(iJW{8mkj;@c
z*1nmr>UHt#0SZipdV68#b
zFVWlH#@6a8)|YQ#d2taNYpa;j+ARP8AOJ~3K~zICp{gqJ`b+K9KaX9
z_Q%kq{eTnYTsggh$BH@zyhU^PUvTLRUvr(x4#>ksRk6F4%F942U$4+maj=Q@n~dRV
zXhaV#QE>@t2}@V6;>CaX0p1q_RAiJiy>kxxj@*euM~`9mfrFTt-HFMmX(-+Bu7>1C
zK~gL>as-3inbI{rX|MCPp57^Y9lY|B(|GAe|A>vX)nVZpcI@1RJMTS?JMXyOlp5)E
zJNU&
zFZ~C)o$cF#`;NI?*n8v%_8mQnxdR8VV{Q&bvjtVCIC+OrcghBp8>|HzgUyvST)lV^
zm)<#t58r
zlAqZu8FOvIOvCxKGdZpkP-y5$Op$`7E%Z$vmTfGslJH~=em8|8aMU}y0$;~kj1i$=
zMtkpGw5F!fSy@RU#A|QAg}GzLFn7ltu9#_S;0o#;z@=*JEr{9M1VG5C*f%oujB9#|
z1BAU%TH&(;~_
zMU8(!1f?{ME9-T(@ZvxJ05AXOpV0632F_#0+-@9y^l{wt@Z;Eb
z_y`(}0){E^-^qPg0+rQhv@kx?!qJ(XIC}g6Jn%=~!1=dd!#l7193L&bm(V-RjCWo;
zgYNbgzV@wexRb6-rd--Z!hk7^f6rd-~*g}`Db|ljn`mIy76E8@B)7R!VfVqJ&Roj4tor$
zhy0N6t&)vazmbT3yZ~lfM5P5Ub)9~`@+y?z;SeI_u5mu|g>t4{U2g&0QVK1FIBlrr
za5+Axp(C@jjET89%pE<7%L3>DU~_R1AHDoC#&*o0=?8E(wZFkWJ20^|oxEMK|FFC>
zW$?yPAyOAgpuUgDt@m?LqHx?GM?dw9jZu8dyG{12LEm@fhO0A{h3=e_uHlly#9H?O
zwv+;_jprT~Ze?9GZEwfXM<}o!*!_F>`@vpHTKQT?bmFwul~O64V`{y1bY(3{Ydl@$
zb@@~q$%W=N<9#~p5Z8P+>aPTKHt_0C{uS@NmV$h1d>r>a_89Ja{L7f#w=W{Hu_f4Z
zzE0P!BH_k`=0FX5+u|Njnvyw)1WzW5;S|MC;q
zfA_tx+EoX7rbK0pdo~aP7wbQ3>u5x-?~St&anG6_YvbU3U%-L8@514Cj^q7boWY0h
zzB^FkSiJHP{_O{Uhss(Uf9%WddO?1!gI~8KeCNaDt$-)71DB(sY-4j1Z=ZQ_D99I$
z1`gl*1>E`2!#HsF-I$mh_flep@u1Fdj6=XIXM0{(%$?-hU1!C{4WWmtwBWz+&fA##_kY1Rzx}_UXtolURTdrEjL-hifBUz8o21p2fwhwV
zwz9xl73U_#NjHiJecQuU*+IvYPL}BT_h3&DeOLqt^^J|raDn^PiokwB-&$B0n9I7c
zxCmR8nA*D!y46BU>$v(#TQ?d7-rj(*Rhby2hMAPsKb)ZmtUTpYD5uUbzQo_PF7;??
z=PcRx9z9a8U-(TRbhIgPoz_R|R?tjZY)rwECfp}EZqG#x7T3<5#b#y;F?aYd4u9d^
zSZL~da8?MKeiwz8)}Zefr~8`wukyuGW7+!-RgvC;FHrZ4i`uN;^kUPKlJ*INjg=LA
z@Y?GzWgW4MPfg|P
z{3c@KCe=0W{DZd)NBOVxBd4feCm8(V$N!8M|M~wL0QrgO8GPl*zrJzH~SCbo`)VocWWL0{=>h+JFop>Ac}wd
z&;A0B|M|DD>+oUU?qB&jj(aBh*2Hxae5FdRr-}uNsX;1QefO>VTpNYP?B0DiFn<)f
zXkg{Wje#}Z+1kYN;x$a}n8nQQ-R^T{*Vzsa!iY++(2?%~8rSJw!Ls$8;}*KmF#R4b
zpZ_3v2KL->2Oj#4{F}ZUmnp0EtXh7@YnuafmviGs+`G_{yAcumiqezsC%n4{~CFGj^A@*}!BmEOP
zcsbBMp{o`CIw)o)vCGvPorN(;HLpr2l!~AseNsYEwMoGBbLX&rBb~Ih=g1Mt?JSa--L(f_|JMJ6N51|f8m+b$g4P*MZf`3cI!Sz1$hvbW
z%LbHEnA>*%yZ0Z&_QnQo-ME&V$MVe^u*TrX-Csbn(TMq3-F-}PV@-yq`|m}So5(6$
zFOS8Av#;Z72J}1k9mKIOK8!Oz{wKWp(|=8hq;q@s<7?mgYdrMFe*$VXVcEcNg^Gt2-Cnm6da}mAml)K;F*ud7t8ulJK
zgt5sTL25YU>PMZ3{}
zR!Ue2AS!EGT8VV19=_Ms8f~qi6``RtCW<0P`}LH07qQ!rF?b+s_`-5qYj0+zqD(X_
zhCn5Sh(9<>HvNVY#^c4JFA%Ab;DN)IapmmW*vKOKJ$KxJ!}s3nwc!>P)=M3&UwAf}
zjx}}Y?B)2`7!Tqci+U7&)JtDuG2Tx|k@7(A=>l*>U31FaKve@JD|FQW}UOC~H|FWu2I@#zW~)6*-ydcHPa22-7=uV$Xqt
z*jQT~0Q+0luV89=2K(=vM;IQXg?3b`ErL;A$RxrjIuqevwk!auRDd76*9y^;=5-EDqmw49$l28L06akckm{W!)we0N%GQx+j%g=dLBj#Ow}q
zHaBtPfiL30Km7(KW_QFa0f|=*#V9`5p@%MeNflZ+8*VqX9l~;2_NnxZt>d3xO3a#-8jL*zqdu0Wk
z)j^d+XMGLJ7cZc*vI15Lt%)h9qKFZ50PJSq)cglDR%kC{bdt#EO2~|!FGyNZY*Uf{
z=lGy&&(XUtDuAVzP1n3Xr
z;Jx>_hY&UbO2}5iP;(Me%W(ZY-@_0#!pgdcBV<68We@lqsV1fB1>C8uki9Y1S61-h
z8*e4_jHxQD-i5>v>Lo3@4uaGt58qP^8!_AZ#f(4s8kj4>X|5x59JBMPORg8RW=A
zTUB`R^xxy`D=#JYt=VehYv1}d9(v-NAf=Om74fx%JEWXq#Yl%wE77DQ>7CTjt$)(l1I*h57~YFr6@#1;!@-xvV;@rg++
zUilC=uU)A(zMXS;;#+@(yB>Zdf~E1m8Dd#utuwsi+P1_w#)bfn<2>g2*=OG~!}Yve
z)WJ=lJ*M~UMsuuKnzKM13&;2Ko(V^+G^2T
zY1zH&TGq0)WbL%>oocJ@P4z<7tu|9hs(~N?4gfI&OaeI|r^txR$e0Ir|NjlWc=x{d
zzPl$_tTvOGI?Z6kLM9^J|8U>E=bizD&K9=;cSp-wn=)!HMVQw_H6C%1PxjnNVV;DV
zmV=AH&vaRJP?aU_e);}e`QRWjwMEKsDe~Q=s<^LGC`C~i)kTQXr89JTBA}r?hJ~t{D`DR5AWpi
z=~I9Q9^SswqId?Yj{_XPcme2E!8p)|j=kZ+A6#-hj5iG50m<*jqvivFK&Uz$4y*BT
zpC$@-o7pxO{G2+m?T+s+B2XA6-O$v^`&}rC(@vgRrJ2w`1k5fhVB`LMY(087L11|1
zJ1>LEPJFHilSx$s`U?Pm84mw{dRMQE^Vl4@t-U6E;Jyy7kI7!u!})OX*LE03{6eWD
zuVx(2`Q#TbU95Cuh7W+QQt`hPEX?w0S$mJA%TM9TPk)M&SFb+t_-c-hu=d3l`1C*i
zN4)oc{O|be|Ng&l@1qZK@Mt4;31S7@unCioosh@Sr7pD~YOyz(2y+CMPJnU}YG))|
zoO$f|BE~Qj5+45Kl`n!A`F+W|l~U_6y9hO9?ILWNxKDtOyAR>b*BqSQxbS<8^B5S*
z@KSgcWT{?zkC6+)IO7q-AYLLB!+$$sftnl+VjpY$H?snkSI*$6S6+tEMJ!74-;JE-
z6rON6*1ROQ&SPjS7a5=7&*4jw_wnU!tbuV28rQ%&gM-6;eEQxmC%E!wFF%c!-uzP(
zWw%v)bNoA(rPCPqJcn{*FOzd1ea5dJH&RR9bA)GJ`X0Xb#!sTUQhr_g@IBnS@nt-?
zkebK%y%SU1v%eGXWyl5akKqi*yRh+J^{6dgdf^AJ;`!HJhXdpB&Y-piwKIShwKqj8
zZ|4(S5rmGuWrpTk3uGTPCnIYyu$C#$3~M5HLsj_JYd^r{?|ox4o&!;X_x1Czv1A#0hI+-o_QK-?Edd;ZeV9~gV}=VPKRbW{li{kzy1Hp#3?iZ
z9Zkz4i>)K$m#h!=2YpR!h~zPHhaoHj4F_f?wX0{fsbQ8$v;bBVZ?xj2Y01zB@fVPj
zQD>224#3RHSv>b=e}=geC$Rd_M;PwzK2dglw7H2po13`z$tUQ}&tu`t87!Z_fQ6M6
z%$zuZZhr=aR&n7cj2TTp4>~NFyeMD;-LlUfIl`S4&l|Bz$m0z)u@AmSCbwLWpDgHx!ELLBLw!~Q@AIEV3j
z;%i}$1Zc(w5sGv>)_=3j!lf5q#O$e4fr`i1Fi^)76t7hq@8LOiZN$!i$<@!s<+1Dx
zH0SfGXfw=($2;7=@q2vzyD!?Tg{s0!Km0LHo;ep-8e`eIqDIZLO@T3cfoxf;a{BNR29)u~
zV_3WgKo0Z=NO>pDp2PF6{}4r|0uTzP<3ux=pd@`tiZ+yQDXu*?1Cr!a#2nl7Y&V%P
znDri|P2>R5g4=tP-7cPg?Nw~uyN}JagkgK3f6aE?SQjR6J=7qlq27whQYV<1^}}Qi+JWweu85c
zFJkqRPq1%{AtJgb38@dKUAz65S4NwwHHItwqi9I+@SYmM`*1*gdZ(xo68H=RfC;4!e4
zV*)u!(TmTxk8n)MDqQcrZSnz+N0HD*Esm@Ra)4e@#1~W85VbX^bb*2ZYifM`#pf6vwV#Vi
z-+CU;edqfexDjrc%aXP7z>mCI=hnA=Os(q261B$vbDu#$U@?rScjuOl;pz{5i2Jv$
zqsatZH@^53-~QoUoV)l`79A6`3dRY{#4LMC3-MNdDtVOTzj35jTI0EwU&gVsD-r$(
zOHFBhRD>&P-l+(rmot*2xe+yX*!#E?{=Lg0`S>BMGtffT;6_M-
zZJcLuE{VN0AF}@hx@BQpTDn>f>^EVA>FR*19a=!EZaDSo5fnM}3LO%fxI@&WW0z6o
z?v!HlE6f|QKwwIrSR<4Y#^F7{YSqSt?bzZ|S1^0_9M0aqhlgK&iLG0=aJaSgjmARW
zd(?vg>eW^3tghnjM<1cn@1wu8gvB!}SUkIe-pNxa7MIZJcHy^4IY`9wweV3aDrkOZ;4qoa57*;GBPgDmJ`01p=Ev@puik
z@|Dg62-Xe6d8Ur77=$t@i?d3F$*Q(2cq3%2n{;@9zh^;&VO;7y`C&SK=`#Aqj!oc|
z)_eY*sUV0-H>QnI%Cqe-Gs=5lzz@YiXlZ%4o)KW-sc6fjxf&jU#HHU$CZ~};)E?`Zh4`#vRwzmc{Tqd
zlS8FKC??4>ON5&9pCbW+8#bAoa^?!D&{&j$XImG;vn_!0-~Kl4ef~Qo%XVMm_uCHSO#
zPK#h-m+x8frDV?WNBboMsZg~+N;aRO&Sl9N8LZnL*Ww1q-c9KtC!=1ICc!@pMM@3_g7o{gvYC^*m|&rGf!XPj+a_XV9)i(#-(qYwbk&u*|@ZO7&(Dc
zl1G$~DRN^qn?b0-ialMUn0)0uJhRCvrO?$X?j*w@;^2uwlw(<9c41-S-W(nr;HVzL
zD?+J?u#17>1DPiy3+#vKYN=AVNdT#mV=n)QN?&v};5;pFj=U!V=1Zp0HHmVjISGZ-
zES$5b-6(S8C47Up3s;;0X`IUz4BSO#bTzG1?A!$s5nBR*G{S>NP>wrRrBE#&!?A@$
z%s%%VM!UNhtUbWNy?Z!#@Bl|UJ1|ocnkEXTwHWR1W3<1I?OQjo+Ib%{OG{X~Z~==K
zFJbB2Im|9DqR<6HHsSH-4bP1$4v&`nM_(=s_>A9Xh+1CCkuLt-`N|B_1kwQCcBj@SI}FW59&_j
zi9IUCwEMRDRqj@7wp{dI|ff|Z%i=O1PF8*oVK`#^UprRKZ6eoRzSO;wTeY0W%K6G
zEH?|%&{2AxO3sUrhR#L>I_!%`9!y?nX#5`vZPCxTB`oH-N4tMtw;bJhv#@%~3
zedVdh^l6wW+OqM)Xl43QlkMD(#g&A?5
z=8?o+axL;YB@=37-mxOyBRJI-yw8b;uOd{v&ZNOxJ;ca1AX~sV3nGoiYbYvEC=Err
zrKczWG#-ELJpT0`i`^8#^4CY&nImAP2;Jvl<1w%e$PY2HLkz8j^)(9e(LaW`@YKQ!
z_XJXikcIUgr4A=vP8*7ypezRo=xN2l-s3M^V(`c!(-$QcPoBc^sZ-D|eHZrV5QB{k
z?A*VHt<_cRZ){++zYk~36YXguUN#zGcYPhZ>+4V-eu$al$8r4fQ#g6$3YITkgsVEJ
zn0X;Nuz5I#Z23E?NZ#~W@N^Dg6hyou@W{gjq6_Gh8<=NHYF^xU__(Z*7k&iGi~@?5
z%TiEleo4BFYmT_M=GnO-vXXrSWy>sNFvYZAbH|Tkc5#V&(XhWzs!g$*X1L`X7%Jm^
z1^b+oDpC95wdN7IaSp@1Jv?50FfmmupFfYqR!?m=NXmHj
z`F9?-k1dD|wZ@%^;txs&bMwbf;`qw>R-r%I-^cp>J2-ZBg{`n1A3!cDf@S(^oUpGL
zN)Yy&e{x5E;@nxxpFEK(;_p^
ztq>SeAWRF7nUg26eD-Xs(0lLk=$@iT+s>MWYnW4FT=ga#^W~hsjzSJcSy?yR#A?
z9R!iC4Dhj1Y#C4JX@d87$~c4?{DkRxYN3~~+PM-`S^Dix?Oz56eeE%_K;a8`U&5M0
zG;V}~5|ctO%#m}bZ8%BO4MDuQK_<=dfl8LSffA^*5m1Vb&cr~{T?*_YT}GD|7$Fi6
z@G~=*otwkSXP&|SU=X|8V)x%G1}js@YKp8@uVa6G9rr)}2+Nl)
z;l%ULW98ZBVS8OP&ZDQ9GtAea;w4Y$ND*n9GO^fkct)&>qm@H4UYiEfTXyFZ=%KH}
z&kJ5K;b)1Y+XK;XO}OTQZKrN3b#6fT*_1DZ`C;tv&ylpBj#7A1E>mxL8N^}PHWLq(
zNS{Ss9>InKjNqb-zII{h*m#0=z(N^fh#Fori(v)9WBc)A9FDQE`g3!bJ9Q!mYMii0
z6i9`U*og%m??kM)FjDfgA<6ATTNSIa%-57?XZtVdq+rciLqfR)YGh-)rbXE1WWSw6iA$P51{IFpii8@+=-Jo{lZoF
zx`sVG!2Y90*j-)4&e{X)J$#7K;o&zfb(_He53gOr(1wU1|;n@31IMpd_EcR|V5_4>q?ajLT-1m(ZP`MeQ2c#-pn}v?`e1r{H|>@wc8}
zCE}8MQpa}3ngFHbUL|^^#W-e_LR%CiRfOTCdAJ|JoJ%{8hAfQoVFJ~i#T{_
zt`rd(-oX`0hY6CxbJlS_+JXp!tju;oUZBd%Vj#d03X3Z%&{YMKsbxn8hd9{YL3e2(
z?7X5$U~rD4NJOxiE<#{n`OG?!6=cT*rc&paJ6JQI*wGVN%_>2tNTJZ-AgNS1tgQ2>
z`P~vBWgt6HrkGBG%!$_qY1!TY7+Q-;J7{9|p9ZYgu%0lmgvto(i2iG(KuSqE-an$y
z2b>u{tzED{5K+;{CQ%4Hfz%8NJ%ERaBU(&P6snHeaxLWft43tfEm>|*nEu5
z)m3cXxsAOC4{)@-)e1jpb<}l@_0K-T-s&pOzVZW{{{GA8bUQI#uy$#r)v?%lhM@$K
zNZ%74sFA+sfw6GL2M_M43$?VccFw~o?w**oIdB28=}As4lBB*Q1+Qe!5|-$-bLeXw
zr!wn2NclL8$rwJchWYQ}06HC`S6ZVpJC`EnSVr$D1c-=N&=Cu`@mdyY|=+4uBFzEu>zr@}#FSnooNzpHrg*RU{r*xHuEr~F+GN7kYL
z1ZR1f{GFn>a35NWo+enYShVG$-E`wZ!4Gg6ye6VjCEE5la@Z>Lv!#M{{%LT*w)3PWcx
zw3bI~-zt{!zY8w*8q$G=XS&bJRALXFlDlZ%sW5Y91^Uz}9Dng8nEgHM-n)m5TQ{+N
z=S~o4O?h#SwzhEdAN~%9ySupX#v7PlSjhAOJ~~C(tg{$d2hU4JSx}ZLIcpNbRW%Eu
zXezzZ#|5iMxxrYfCc=!?u>%`1%#p_hj(CCBQ3@q5wXF9rmbDCAn1u;ZKw==nJ?e-G
z`U%jI(i*-hLJS37
z4xNE<(A^%oGc!2K?yIvF^}#`8h8Y%P7=D+$P)(VIi
zP5Tg^SWP}NRZEFgye?$yS(e5$rZc6CR}Y4FL}@MAzv*Wsaadq&csOt4615%-2;
znYw`)4mbyai&0k0LkDi-GG8FU;L(z>=ZS-Fb{5b&G)h@Ao6qbYtoIl(zAY5sn(2W`
z>1Z7i*Eh0Jdph
zt$}BKfz93lfzxtfoiGJs-4kI|*02or_a~+<1%aU)DhlR{)_P`lg$xNr!J>I+2}Bwr
zN0{*nx+Dy&$DzT$>uUVF`I2bl{9hM@f78{tHD2k9ff30s{_SDomqO7cbhSsnaIlR=
zo^%ry87he)xWf=LF(8F&$b+Pa&|^yk;Z=iA)L}G7QduGrjC&t{gnBId(mRK>
z4?jSsEb*;B{ZpXRVcKIr%!bysm>5Hwc*Z5?%E}lUY=Xn0r^n)?NorKO-i1=oNChBz
z_V5cp4Bb>pp;jJ8#>1Hj*!(qJ6MvBpUA{BV!y}@}w}}RIflX
zP%Y8e&^l%n1(jr4zDMzH1|o)5(F{m)vtyh`1Dkerq@vBZ
zGzh_?hfNoo29F;+!1mW)W9QyI>^@vab94k}%tZRtf0O&pj+ZJ6Mpu;bDl`YW*DfS}
zIn?MCgpMzG9uCQRVMhQIivIPJ6w*b>3lcd0ZwiI~werA$35Hm^qXQThMhN8#gmj6=1?(it>VAadZ2&$48HX*PhjTsY25zRFR{12KCvOa``h<1v$%k#-*^*s
z7Hx)1Ia#vWRH=wKo8>`i1Sb7@Eh{p13U$(
zj5AE0;HhnjHCGhzU~Twt34tc2t#A=@YXG?fBqTPuV2S-Z|@IMuK!#7vfg9pEV^8_btdc+
z*v_&(!21ROVX0E+=^{36Ixmf
z+A#Q4D)HH+=t+9JU}6QSh}9bJLC#0swpQWB8QISB@~~3j2UomQ6rc7{%y*^i?+L7z
z$mHOnAO}W-j@XZaKfR9{s&k$7YJv4w)X`K4bccEuzar^CGVEgv%2`c8@
z4?e)s#fz9-ITyqh+-Xbk6G*4Y@NJ=CmfSVVYgW_LemT+r3w{A*(P>&nPC&y2Jr88*
zGTbHZfra<51ROCGP!hqaWcnq+F&c@IAVo#GwrMfn1r3IiKnb{VgQUKYA<3B0Bh=D;s#hdb(|CetVw
zPG~azJh7}<4iC>4x)aAvA2Dp9-if!g;E*a~zNjoTTT>FA5Yxd#%+o{(Id@15y?B0z
zXD>g6vqUhB!TxI7uVQ~=1NT4w99Pe*K(mT;#LE-$>vk?3iiw+y2|-m<)lKn0Xq@9r
zPs<}JveCF594#+^<_8uCFUlYqxgj!a8eYmG8gmg!9}dSNXADu=bxeEwb9yVa48nYz
zK%`)l8Oy4Wg|!bRRic;h&Ie^IQZ@il=-5CMM)@($_{x>bm^*Qtud|B&OEM)zQ#s$Z
zxlkF0K3B@-e(-7{WF+O6`HXd=kSs2IYk8fRY8bP+==OS;UtVg#FEYw|Uj7O`?LALA
z)&wRHwFQMO?7uOv)WWSzx(+=;QptdPKRcQ
zQ1yD~%+I5@yo~bKwYU`qRN*U$yVX+x^22$LVia)Evo$jHrykJWHFQrmwtPS2PIxL^(FI>d=
z*I&nt|MZ_wkGUmo-nfCIAH0f+scf1tK`}-Wu?-XZ;Kw);J|=KYw-*q%OF100Mr7R#
zY)HB^4C^R_#c#th^j@JOe?Av36?}Ngexp(L`p;oswgH3{l#xz#nZ3-AS}aK`~#-h`Yb`KX4-96
z>*&KI9cgr5jcH5Cc3X;XPBIY7YS}3eN#RS&T2X%+h6+P5v@sN?AO)>8>bNxZQII4t
zgTg{nia1L*R9ne5nAXSD!yy`LpbH%pmX7^yEHh4QrtlWCtoY0#J+sL4E-Dk;iA$q|
z#MH)3*aisWN>G4-wGo;XhE?GmY(1KsO3E^@=$wyv4T10OBb-?~k3xBL6)!YBaIm?F
zYk&WDxcBL&ll5I|ESx=yV^3YdvCEgyJ9Z46UU0Q_41I)7J014IVv{iVBWsw&7bubP
zYL9$V-?*9nv`{QJuIFmlH!g4pAv;O8xLaRoEINUO-^5E}`~b_ufhP~80qY)IKsP$hU`P6*$5puMb5iCvo15p^VzeMl)GsMWU{GAtP8;RRtOcz#sFvO$E`(~w__7#c&-JTQj)j7IqC-FI>Cv(F}eUjO)UT=@RWIR3&_RP*yFSx=&Pn(yjx
zc(@4XqLq#&KJ-;&4!M{rCohYqlm{Kyecv1bm_O@r`A#Z`u^8D<@UU(O;|h4MnRuas
z#t8}i@W{HwZ2B&q^q0>SL_3;%@K|0z;|TR&CyYBB=qytAf^W1DRjA1M87EY}EyGtW
z)ns`1bf%ouN=Jp>z*^MYVRW=+9x=NkvP3-jG}|;dSX;-b7p}(dDR#0UuQsH`IPX#Mi%}^;B??>@
z@JC6!nI@R3w2IiQ9EKvr&S4X+f=y~cGU_MZys&lz>X8XX3axZ&ieDI=z3jOV?nyYk
z1~3v8B`=oJ&kpdw(5Cb*N#(NH=wE4#BAWyaQ%)-icDV)~T5ELY=O;eH;qD%cF(9p5
z`M*A6Tlwg-($*qKDmf)4BRZY=zU^vi%P(sB>Op2m5%bj+(&!VgFnQgUZ-nA@U
zgU?OY!Ara%TYShfYj{c!I7G|AHm%Sf9Ke|-%MqYBap!4pvgC{=hS@V^o#(s>*=r@p
zb!crY*s{F$-bYtSxyM3Jta)M-5n*m~d^8$jaBwj3;Ol-r5G{ClY~$`CXdxV2;Gf7L
z0^q@CpW^<moHwz`8VIh$)}$QMUWEp(!!&|ox;pKMBp0gK-Q`G3?WNHyOUP+`83fg#8AXrye@Gin<|ZJ+?>iGi3}a
zL$5$|GAO3W?FSavZM+x7nfNj5u^WVp_udfu&miE(B9Ub%WFlc
zbb@=PkTnh{RdSh=kx~|#j>jI&U8->o6@o>o5rd)3C;QNaBqPf=%~5i=Gu{Sf0a6Hu
zWqXItsnh5mKY`u*_u55f^D$r=6jcS|6Amd06OP29}MTDB#
zFOm=rcU0nBhQN(EJqEjR>!hO>Hu1Qp
zs7q5w94{5|n3@h6&(u##J}5=Gd+E+E#7ss
zVkKzC!h<}q`c*|YOMxSVZ*LhoO!rQ@aR;Y#CLW^J$nM$UHC!Wt;i9Fp4pu3O26iL1
z7M3|s+%e0ki$h>=aESfgefa(?G`p(Gfh^Zsc<2bmn{7&~8|@!pG!`tR%L1MG`N)MYNMXRRu}2bpSs#Rb3V`3=$K8)V
zh8eX5N(-k?-nMg(w;loYs3VS9Nn(&}hDsXp&F;iufzdXXP&K9a#rBDo=MVLu(
z7ZFA-E}|?bTn-1DE$1w|CU$h_+8gUKCJ#j(cV8!lj_!0Yd;HiW9(r&9SeN1xxtkR}
zdZohR3$0)h7cG0`J567{{2yEQ&k+bO^R>q9qVU4%QJbp9>`(_lOn>xzBjg
zK>)o%1qaV5yaJ)IX%TE?2a5!i%XJY>wkFDgI;e%==g*CB`C}3oQ|LNNOA|Q#!S*)n
z(Gf@9C73BCe<6NnmDvI0uz);AiUn>CJ}!hyrGu(gidYs=7|8-I=>^0)Cf_;bhqvf1
z#4n$+;t{PhJR;^#Kn%W?NIjEfrA~M?4Tsp-cpTrSCi744a5#s`gi9(urz&2viUa87
znGLzeK6)8NVNm?vZOaDnHY(yXLJ`6(GoSgR#~TwC<7Kyp{?alGXIseOFK}6*2)&HC
zX1vG4>({Y07Vx2~3Kw2|6?2y^C-xG5F4<4zga%>m3F$;AzdGJ;AFZh6@a$ylGWo75
zia4hSJ<3wQ!zPKc6c^n@r8G04RP@hrS(E6Hv`w0|6hoK(%+UIuM%ZZ@OwiH5Oi6#P
z6?>-p8rBcsVB?GHTNoLoF-?LJxUeUN4&npqGo@h>g*z&X^%9&sJt$&mmKQ#W?UNT+
z3PwqUzAnNdBoiw2beJyon6oV2(;Yr|;>Bl*lQ4R0lz?k=stWzZ#Yv2MRKr`#W2T6<
zsI_=07z*+}Tk>%+kfn>BQt0zVZK+hmBP+(iD|YNttg`KBje)f|XlzS_*5lt3eA6&A
zW?kxzqyWjX*5pCa42w-$#>xVeBlhx&-9V;B`}~II><71bAKmsgOn_Veo>&qOG<$i_8&Z$@Gk1j&traJ
z0TusQX+8#)uZ8nGWpME~1{*hT1Z(o_*YV4japvl`<8zpMs4SoRepz9mT0n4>NlQEF+H#sxhdX}b
zfsqYeM8hzKqO|x-4>?)|JQ}6(chujWDz`5
z6zCN?;-dwrc;n>r#U!1on&{B1wJ?m0%SrE||4rMuG75r_#z2WDR8IixKoh^1uyjmk
za_M1{iG}SDa+XZRT>XYcPjaaAwT_fHxt^6uwgnMR6P%BQaH49SCg_rmJ{p=uXam{w
zl@^N~W@n|q=F}Am&fU0lFXO$SM3JoK7chJBWV?eM)p&I0Zag@NDCP$U)RID_Lw775
z?Q0={=H4f7A7SKpP)d%Xguyq?wb*GnW=;|&<9w^bw-E*n
zhkB*-1ca6U+PHHUgM&j@em4VL6Ao-)#fb5s6f%`fB6&zh`g}>5TV?y5cn@VN;lsMg
z!n}zooho}bhX?z3eE06;p78W(bZ2HTQ|LIcI;I+y(SIq_l#o%dkKMJkF^z)4(o;{N
z==PX(huARaEZ|*4XXDSTu=~3V!HKX>Wx}wu=Wv;~PG*?KcFEH`tZb%J=obY_tzvzY
z!&l&CV#ZP9EOzSy44MH(&YWIcv97*p2P!#}Cehc6CThnF2Y-__2*IunH)
zGO~y{kI5`bMY1m}5>ar9nvOEOUnp=jKXle*iS3l4`ywwn!{udcO%Y>R%$FEq0Wl-;
zz?c})E#tUM5+mm@vKAw@>NRZVnka?Ak~F6bj#p!gBrK9;O8lN#p*ESHOCFE+M5%OK
z8m9<8o1OeNvj!eoiv!cdmr52{QYeP}k`H;AD``o{jIAU@rped_!t(H#{{013(OgXB
zd#ddFk8{0U^n*_aVLm}g$VfEW$}DhetX%SFtS{fcfwD>btMi^?uFsxBkS5+c@vYlT!a;^a~N6^
z$pGp&bsl*39YAr-O&(-%`Upi1j`^I
z7?+@gt|Zj(m@%+{>s&ERp+huKT+GVDqd7#Ce8QFs9@EmogCb`cNI?}k#&xl278i_$
zRj3j)E|W*Y7<}qh5I+YfZSAFZ6E7OUP75M*%QBqgO*7F!m7NaCvSc+NadNwlKT|qn
zn{`1hqi@m^IO;i$Y%{!23ZRPgR%BKRiQa0ta}mbTxPhEwhdPywqCGYct6dVJ>1=N?
zRr?pC29t0`TugHzRn&eG&~PUr_+wg<%Ci!77*OFEDKgb%?LB5LTtqoDgC={qx7QzH
z?fMN|eC6eMeXVyWJqN3kObCfVBrbw62`gJb#)-}a*hjP&;rS1XvW`+Pu1%41>ZmT^zGq((>O&8-bk0XU803<(V~13{cr;d{U!eMk74_>Pwt@=3A)CAO@5v&T}ZR
zz-=yLp(Xn_YFU!I2~uE6!4eHdWb82GCLY?JRncC@?^@S29)I~|%bpkjdP_@~IeRw#
zeK9bH@4b9~fsVVn#Qx#oM6giR?_+jxffMuyrAtjkt|pe}uM-P6GWBbsfSbsuNrhf&
zrr4-AV$lr;;wfUi}ONdL;w$zn$Rymb0x)n
zQSl@xa94Yj3N$bVN2T|!Q((I`fU!X(>jN9YI2U6Ag{o(KFw^Q62_v_eA`k3BC}GR8
z(1~ymC6-Fg@KLcK2Ns0SUW~?h)JXQKxk68H!`Y&UUfj75V&H->s;`T1sv3*Nd300=
ztZ3MSgvg_A8XRnIPx5{H{UCaAspBA}V*V**Ty?bg?1*s1lU`UU%-~ch$_%fiZA#p<2XX5>Tl@&ZZe;ymZ|9#7r;@%g(!>Q+A;b(D3wlGuN+2EJBiv1M0CoY&k}@DW(^^~XQL1>
zd^c%=EP@SxOfre
z!a@*NF|0AP7PYl3(3FHZ2k%t)+@s-y0=DRM02NliqbR(~-%Uz2NPLvWpbo*uCCbtx
zb?|uuGq6b!4;F>W0W~~0oS=J(bwuMF9Fq{bs=&YoMYE$o!Ok54pu#)TSABGfIS`d-
zTwB#08Z`2=1&D-%@FdoaRs?4ahRwc*8)3c#hF0UixESpQ5RR;mBU@MNs9YWLNE?<7
zsXLJ`NZgGV8BXnZ%P5#XW!<1$_<~ZFsLyVM&z$oVDRflgHcPf*0Ix$*_ixAiZQHOC|IIui_^ptED-X8K_H|m
zV>2is5aa0`euzhniQm6s><=E1dmqA^la;H@SUVl9(PdTeh`Si?+hV3^6GsluC@=7Iu*$X3NuR-uZ1EMWr@?zK8MX4?FHPUTeook^Dpqs4}Zv=
zSt!P$@N`H4H(H0qt>KXCbWn%;CZRHhe6-OJn-9upxoS+|oD1@#XgA^kpG|oljvXn3
zhCt#s3l>{RG~SR$d4*iuUiG`;RSq~$IksNDzM6jnbMYNO5*Nm|xluMT#?lH?ZvoRK?p!1=j5@WTajmOx!
zeP?Q&4OZ(a`Ct*D<{guX_ZJylMXd1lP%uzb#gKRTv(5v1wMR$csf7x+@WhTj;;tIq
zqC<@{erQcJDFQQdtPkCa<>VgYJsJ}*rGmT74htI^??KUm7*RT1Hx0m@w&ugaW?>lu
z$+#?w*2A}gPoj-7rKM!S4^vEjkB*i;TC0NdLUWoJltRa+Wm-W5QpA2aguS&j>~Cze
zv9_YX@v~>qEefc(;6f}GBHy?0X!x)a@mG@-go2kx6YPnmL1S$wDkw8*
z=$va8uHV2q92v(;)_@1g^JAms0mbQ$5I&dZWv*t~d!D^pWJ^h#+kl80Yi2nhut2FO
zs2p1q;gqx$oFf&qO6(q&EsE(6;z;TKm
zJw;JW1aNy}(BVc$o>7@hRZg_PR#*}KOVlyHKStI^H3@z(yqLG5E;PLR<
zHSA5vwkU<#NeZ5_I>3u&m3d2vky&3WbQI9I8bhlwr@Nef7FdeN4r>Se)O!4thQ~L~
ze2Nt2Ix|@8E|XSs=;#VFg+i}T+(9S!LpY$K*z{cB2G-)phKxcP_oCzCV1WDYzmLJ%
z1N5~HvR@v}DwStMhQcJSkBFP@lsie8^j;F2Wc0Sq1%sk&(PuMmviHf$L?#o74ReSg
zG-#RzYhV7prHTcB&ip*8lczA`4vF%Yk3Dz_B6L|>5KNJhd!)`1yPG6+b*
z(aQ`c9A$nRCQ>(pzq=n}HF?I*h3C&uZRCXuE5o>;WEFN&G_;%2HOY%uD1|=%Y*}(k
z2QEwmO-c6<3jlY?vICHJwX4E&Arnv@+t@gV&fFYUUiuDnRkc3T_Jaqw^_$;7jfPBJ
z)zJdLc|zj?Bz0&)+}okCFfJ6;0ssHPIBCYZUE+J%W!=GuuTxSEQ-mc8Vd*$o%qG}M
zD6ZBcPO0)94QztkhSr78>^(-7i@)`pYY=t;YRapuGo3**9OA}%zro|x)mYdDHf018
z+5s9e^>x^STq}x`K*{$|{!GdLsLUE7ryvT|K=|s42wSVGxb@y|(2Qa8RlkqpFIi$DhP@SfGQ}Z<1&*F7P1BDxVaXK+$eB~bhcc@CKm~K{Kewo)q*t~TUr6P2TB67`TGwyi&@)@N`F0`cENZ~5DfXL|Bux}1!Vi^$zMG;5V
zm5f70BJ1w!0^7H4Vr@zXvT*4#ip8b)J@deoGA8@@j7P3olu@B-H9lbdlcV=O$Ta9M
z{M6MdUI$q$H5qgwx&xV9%50&N*dWO`OR)anH>4sSFAtXpopKh%i6*4TEYe
zVMS}Aqwq`^Wg?)Wj6LS#yQv}sD9@rI!eDn7w|@C9w#S4`0C4uj7jg2LXQEoUoi**F
zWpyM{0O+&8Zf0pQVDdTT_UH)v4;^UJ(q1qQaHGtSq!Q)#uaqU0UkPe(ozOIx)e_?R~
zz8UTA;$UZ|ZS|YEPa4;DFci!Vn-lhBIx@;%DrGr^O})xr#~b$eZ0difR1ojTR-n5@N(ci+XG-~1Y6
zUF^VZ##=8k^|H+{=hbmaiQRx0UZMB&meDlByu(JNJfn^Ede7zx)^MJ$e|5FMQ-U$5^@Sq!VUMe7VH;gMFUo%93eNX|j+%
zD|x7+j0>$ZF-v~1jQ02N^}Fw2A8|
z5*AJzM>*D&)JI3yyL&f!ln4$Spbf?9SiUAq3zY}7VrRsm4cy!uqx4w_M7}i@XlZCI
zhR(Hj8Bd^qHkplVE~GNi3=Lx{<95g9BwmqHfe~6Bao3i2lr}DN!{2lA@?~6n?e&Q`
zx@I`U^U{Q@6{ywt;Az3~$=UyNefp>Dz;kX^|<(FT@_a2_I&o9Hrcaa*%w}#CB@IUINi!~qa-_kn~(L+zrgKZ{Th}-!N=`7qSXx7
z&6+c{b;fMV-zApYg@eyo7+a&ZH7ec3T(yANat4Gzt{51}NmwgN44M
ztL(Wn2*Dq8>)t)=-M`;joY8i6~0CQ*mpQLY(`b$U;{Uq2Araqc1*h
zv0PMH;`q0(VrF3>EbKg59`kv(9BeS!#!!a4$(VzS6klkvkc?c6B0?+hzcb#Wd;Bb0>UB0K#1dUH&+z-C|
z5_=C;ThPtorOP<|!V4%mU2NaK7rkV>_c(a)0B$%yxwwRKW+uLyk}O4;L*y`$DhQHM
zEALots3!L`gaQTceDTcMUt7cVw|DOO}V~=G%rGpl|4;!orPA`pK!;OwWeFDVEL{>80
zSGsU`;Qr^I;j5p&g+pfNsiMI0#S0kj@3+4D%+eB0e*4>SN<~ZYj#3yg1yuGBnjstU
zz;O}4^XQd5XjP(8VG&&_V6LPOx|;sH(y8YD!9tJBpsCOWx<%)2`(@`ZXNvM?18cC?
z7>r!7N5V0Vty`m
zaOu$DQMqMYmhr3^^S0i{DM)4Z7*hNXjN#>az`Z+sFI6txQ3^AsPNQjR9IUOi*%!`X
zXZ1dg9&bQvjn3jCXRlJU2A0JuA&Z0~#D<~H4%dP`hg>EI^4UV}@X=??T!1ld+>Arc7gY|U`H#eb*0=?yBltmF2@iEJR^5--A48GmL=R3Wc8>NyIY*XXW
z=bz*HTR+G8mtRh1wG!ddtFPhNKlu}soo<8xU8XLU=}w?pfgwe;8W-9G%+Al_aB~y;
zW4QRy<|eE$m_Ks{Wv9c;zIJMwKq=z~S9)fB%Y-i+3_5-eG=c5))z9B*DSb~~y^3Sc
zJcG>}H(G_hx44Lv7heRJu_!{pd?7A}PG(gfNe!WaEK#Zs6e~Ns8t4`DKUa!wl@dcq
z|Hwk$=1T(ugQu)7{$jr#VW(~|a(ptfk8=nCPu;a+5lET2Ko(_zxwGd{b-NgDZJ`+q
z+JBdGINaRC*3FyPxqlC%g9A`ef;yc*>Eu9!f_>yETcRN|ZHjcUF{W|uEgtO-2q>My
z{@MfF`qi&+{q480J1rTeEb-JEZ{YIluf@a13Z%kIE4lEws6uB7T%{5GLRV
zczp9_9Q)+OJlfnuHPc7$_z6yyp(tIK{RdhOm|5CWU1Rl=k8!lMg_)BlWA>;gB*#kl
zENERN%>pI-_Go7tkG}X~qR^ju@kLbg^RdH~rL=@lSh1dCZMCjJ@
z1#ZIpskQKw5OHC3J-&V&+j-0-5tc4p!osCXD3rqSl@-7PJFBZL^RVI04tDR{Mzg<<
zZm);V>}-p!5Lkreo@9rJke)k>ReD_@(Owpc@QdoKU6+XZ&LdJw*#+
zY!9vd*-<9LWudWr?mXs?ABU+&INI8pIPtx6INI64
z<6F1z@cMP^tvx_9ID%FhhOSboX_8m)e<#c*#ATeoiF{`>Fa
z#@lb>;a8KgZ0Y2$y!j@ce&bD`DB@x`noZjj*%28qCw?=Ygt<`ve+G>k0=d!I=iT_wVE8JMZAmFW<#*X9uS)Uc%hm
zTL^l(BJ?~K90`Z~65-NgR-I?QMUU3K8J
zhL5AMSOZXW{1k{#7TkdiVqphI*jZi0y$?Uc&9~pe>L;H}bnyUC&CcTdKYJ5rUwa)z
z8DuxLcX6R^vuHh)B`FC$?6P~MG74i)Yix|$^Acg{(q$}Py37ScW9i&EC|zK0?Lq6B
zxTeA0gH>#O{WXrZwgGtbx;<2#3Z)7v>nPljxRR$=Yc1-7eQe*li95gkHNJlL
z9cL_BJ*q3%>Ul?(AS~X9w$Fe1XpF40_AQFn{Va7EYeT
z+_7UozYpE1P*ff0qG)ZK353yTfRSn7ng+fe!S3(laB~y8>+9HAU&rCrR=bNH`!##w
z1TMe+LtK94WjLkdA}ePol+ijCt)PhjktBLpG)Y3T@&)^kc&)MWz3+!&bo=%Mgmd%f
z|A5V#H*oyvr!jZ-9J&khC_7y!t>K)*UR`77=mDvg}ZdyFI#z$GS&EZQrTx>m)@
z-$>2$L8OGN$OTU&8)3PAAuNf|+3T5E^ndhYRP*z=``&LRTn&Mcz_j|=XIQ&-4gIAh
z%$_=h+0$n*bNmE)3-hSDU8t&qVNt-qW7rswHPFW3@aPD8o155sxQ>IhH5@#86sFQA
zn2XJyIfKiu{}88MdJoWqd~j2z*6Yd+94iPAd|Ag0pyh!UT_
zEOGIN{|rU1hugn;7yDx(o}=w;9KHV@);|3Nb0<$?{_I&So;ibJaS5H78C0DPi}qB2
zB#i+z4cyTY_BS76=fMN)Ja~Y^jg4=7kNU@s;oJ{i#kudl9Q6-%bny&q*oq3j001BW
zNklHx#)EQ@kDQIUAL0GWO%j7}%D4uF>Y!ACL%&oJby-{_
zf9oGz=mi?+76p#?=SVB%3p&8sph4pi7qCQx|F^w&U6$-9(gi>Fh_zPczSK=p>C#Ao
zf<{6EeL*@l#*EF_{3sp)9-(*y^a$t?s7FvgLf7A8Gj@*DW~XU}o;inV?g$g5Dpl>h
zGjpwo@be?wJtDVCNCH6%dZ$@i8>-vR%vc`opMMup?0Ql6y>*DLYMpo=dt6_-gfIOc
z|0iDf@=N&H5B?dy`O%N?=-$1@J~*P5q}zv&aQ`Pisa<^>5T_AwS|Ls=glVkCN6aXt
znw-t^jIzv?-nQEz&ofF&A8PU1cdXBR2zctHm+-k)U&GZKH*{~K&rzufR)Bzo!4{9W^XchhClzAG^_O14=fCj{Tz&CHr=32It!B+m
z)H=XS*rbdkg2Pzpx>+(t?c`m#-RR#?RqB1acW9Y%U%70DaykIanyIK@74#L;+6
zW0+;+gi_#E1q9NZ)~tA9^}n%rLX+8(vIcCybNK9Y`0MM}@!VIxhF|~aM|k&t{C7Nj
z=bguXsIBl7q`Xt8;lSg8=;WKmTVuc#L1Sh+x@lKCs{TU9Vxi#`RZT
z!NJw5-Zk#|({uA87gXi$(j^DYkLesu9T+?Hai6xtE*i7U(-t$y-DCrWWXOED&ubex
zR)^@`#~dLSDWFnejHNVO7X(~={slbo?6bIb;|6~D&;JeY-o5+b9j6HLvLG+Z2P|(t
z(c~K=uDATMC_T{s+Go
z+7EaaLgavFzw|OLKm9pedExW;<$wDpJp9!!AKUPhoKf_QZGPWc!Hi4KJ%{JM_BVL?
zt6#-T?;%RpNI!y_eE+}zi?=9DS}}f@r7@E1Jji&_~qMg;ogsb
z{8)wRvfb8(s<$>d-_U$SGY9~O*RJ8&zx`Xh@b#}_P(FVv%#SlGtQYqhZ6_ezUSu7r
z;yHA?t=<=^$bwxa1RgOCYfMa71$vzy^W*e2O$GboI3GV&)$9VXQpX2QP_kU;6|ASvd
zm<|td?S&U`{iT=j?3cd`K0I`aqAd&iJKB0C^SU@qNrSmfC}Il2qK8|MkedS4>3l8l
zgtY6u{?f}hxO@e_`lq+?>mU9L=F_v^@6w79S6+Al&;R}3PQufL4LOP8u|P7%zKJ?q%s$IjyFy3m!>g;DI3E58bivEz)JxGk3tcRjTn21^X9
zN^b)5h{yqlmnMAafBV01{Yx+5S3mk8-u=-J@cui${?wkYFpjwL+;e#5E3e?vm%db~
zt)1yxbDxF&obaSKJCi$QA?0piKWoDnnOqw(c8cygi54xgjO#Cd1y`Q?EBxw*KfpWx
z@QzivF5~G}{uj`rhj{R-U*X-K{S*&>{cCIi8DwK7c5qizli-JrRkf7%&=YEGQ#Ag@9QaJIp+o%$sHijGPOWZW4IhcVbuPz_H@LLWqbc
zqV!ZIte<)oH=cYN&wcHyc<|GI!@awe>9&3JsCvH8eHQl*RL+nKe(PMRN)XF~hrQ(WV~Iwg*mF5$2K
z*KgpdmtVpAKlwL2_{qQF!7qM+-N^~kJb&Wvd^|kBm8YM<)z80(r@r_lTzlpjY(=m!
zv6Tgyl;)E8!5XTQr)L@zL@7v8(
zCqCf)S>AgvFIRuNxsP0SC=zgg0X8W^&{BLhxrt>4eRxL>7y{!gB|KUdOzJZsx*+rr
zk8=h|x#S92oSfj~-aVY$yNA>J_pyES5WBN86vf_4E)X$~^}67pVZgMSaBy^l>Cz>v
zuUy5|>rY|4as}n!5E23oV$GYKrQj@O@2<0UR>#ADq)Ajx(bP-oG$r?%8T#;ZB0O9w
z6}6fck=qJbUaWLpF?M*(?91qMOG-F<|9$M*_CG)uw}48moJxK{JOj;vfWU_1A)qj3@W+<5&Ou&)DvE
z&FE$h_sL4(G|0@b`x7l>
zb??Ji$Dj>>_#Ws~vt%Fr_#5lsKs@_$dfBAa}hjT
zHV`BPEOpUWGSZ`mIJ@^-+JpY190S5IVmds)>hfhAKk+1v
zo_Y$0PdtJ3;h{2^nu6Vox)`k?$|CBFS||L&5HSYEPM@t&&*vs*K!9}&m^gUOK)=Xc
z$AIG))h0dfQ8ZH#oT<0{$OO(A`Q#Bc_wM2J-FNZe-aTyIf4{=Nxh|STq%O{5#4t@*
zA0K0NGqVH>9#^ooTz;l25
zH&~AY0s*_6RA^Yq1p|{SX6^3>)y&<2s>5dB5r@Nsr`AV!aq$2GufJX$gyEi-m$i#czq3!i@3tdx_nQ%LUg2CkfC!dXgP7)fy{
zymfe4THIGE0+ftw9_%?mmIb+Fh<3&qwFs6Nu^I*(3_~saA^2r7m+bbc$#GtC-mI}n
zj)u?~4)yGjT7>LE=*KhZlI86}Tg>vcv!o4OZlwuFMs8NQE=9M1ic+xTeRdkF(T+^x9r&n*99O`^%fFUF7{z4cHjr%8l<43w&C%;
zTcv%@by9+3>pQ)WqAz0WV%Xpz6BQlB;M{#nk+KLtgM&=2FFJ8rvF}Z+%(P8%0hQV$
zoGi&15n#q@7;5Sd2P_J=n91B(%5MEpI!S#X_D(Zu7j3!%C{7zZP`%{?7_75sLe+r=
zq)Vq9UQ{j1_P&aASQ6{;CrEm2!7$8VF
zV>8dSV+{d?)FvfHMCG{`h}#KUXord7%*3lmb4N0PRxY(zuQ<5(zAck2L!v>9ogPDt
z3q@+UkkNXRD$b4Bb()fg&ATb0K_|i)<@!YU
zfZ>LN9Jrw7kDH4c8Hc2QWK
ztg&;N&rbdPjhSM;EjxYhlNa^kEGV