From b1823291461c0ce19f48db021c7aeb78ce16bbce Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Fri, 25 Oct 2024 16:31:59 +0200 Subject: [PATCH] wip: cli and changelog commit upload --- apps/api/src/changelog/commit/byId.ts | 66 +++++++ apps/api/src/changelog/commit/create.ts | 60 +++++++ apps/api/src/changelog/commit/delete.ts | 63 +++++++ apps/api/src/changelog/commit/index.ts | 122 +++++++++++++ apps/api/src/changelog/commit/update.ts | 72 ++++++++ apps/api/src/index.ts | 2 + apps/app/package.json | 1 + apps/app/src/components/SidebarChangelog.tsx | 15 +- apps/app/src/components/SidebarPage.tsx | 15 +- apps/app/src/routes/changelog.$id.lazy.tsx | 12 +- apps/cli/.gitignore | 175 +++++++++++++++++++ apps/cli/README.md | 15 ++ apps/cli/package.json | 11 ++ apps/cli/src/index.ts | 70 ++++++++ apps/cli/src/utils/git_log.ts | 45 +++++ apps/cli/tsconfig.json | 27 +++ bruno/Changelog/Commit/Create.bru | 28 +++ bruno/bruno.json | 5 + bruno/environments/Development.bru | 3 + bun.lockb | Bin 541232 -> 541608 bytes packages/database/src/schema/changelog.ts | 19 +- packages/schema/src/commit/base.ts | 30 ++++ packages/schema/src/commit/byId.ts | 14 ++ packages/schema/src/commit/create.ts | 34 ++++ packages/schema/src/commit/index.ts | 5 + packages/schema/src/commit/list.ts | 4 + packages/schema/src/commit/update.ts | 21 +++ packages/schema/src/index.ts | 1 + 28 files changed, 916 insertions(+), 19 deletions(-) create mode 100644 apps/api/src/changelog/commit/byId.ts create mode 100644 apps/api/src/changelog/commit/create.ts create mode 100644 apps/api/src/changelog/commit/delete.ts create mode 100644 apps/api/src/changelog/commit/index.ts create mode 100644 apps/api/src/changelog/commit/update.ts create mode 100644 apps/cli/.gitignore create mode 100644 apps/cli/README.md create mode 100644 apps/cli/package.json create mode 100644 apps/cli/src/index.ts create mode 100644 apps/cli/src/utils/git_log.ts create mode 100644 apps/cli/tsconfig.json create mode 100644 bruno/Changelog/Commit/Create.bru create mode 100644 bruno/bruno.json create mode 100644 bruno/environments/Development.bru create mode 100644 packages/schema/src/commit/base.ts create mode 100644 packages/schema/src/commit/byId.ts create mode 100644 packages/schema/src/commit/create.ts create mode 100644 packages/schema/src/commit/index.ts create mode 100644 packages/schema/src/commit/list.ts create mode 100644 packages/schema/src/commit/update.ts diff --git a/apps/api/src/changelog/commit/byId.ts b/apps/api/src/changelog/commit/byId.ts new file mode 100644 index 0000000..ef8351f --- /dev/null +++ b/apps/api/src/changelog/commit/byId.ts @@ -0,0 +1,66 @@ +import { changelog, changelog_version, db } from '@boring.tools/database' +import { VersionByIdParams, VersionOutput } from '@boring.tools/schema' +import { createRoute } from '@hono/zod-openapi' +import { and, eq } from 'drizzle-orm' + +export const byId = createRoute({ + method: 'get', + path: '/:id', + request: { + params: VersionByIdParams, + }, + responses: { + 200: { + content: { + 'application/json': { + schema: VersionOutput, + }, + }, + description: 'Return version by id', + }, + 400: { + description: 'Bad Request', + }, + 500: { + description: 'Internal Server Error', + }, + }, +}) + +export const byIdFunc = async ({ + userId, + id, +}: { + userId: string + id: string +}) => { + const versionResult = await db.query.changelog_version.findFirst({ + where: eq(changelog_version.id, id), + with: { + commits: true, + }, + }) + + if (!versionResult) { + return null + } + + if (!versionResult.changelogId) { + return null + } + + const changelogResult = await db.query.changelog.findMany({ + where: and(eq(changelog.userId, userId)), + columns: { + id: true, + }, + }) + + const changelogIds = changelogResult.map((cl) => cl.id) + + if (!changelogIds.includes(versionResult.changelogId)) { + return null + } + + return versionResult +} diff --git a/apps/api/src/changelog/commit/create.ts b/apps/api/src/changelog/commit/create.ts new file mode 100644 index 0000000..c52d515 --- /dev/null +++ b/apps/api/src/changelog/commit/create.ts @@ -0,0 +1,60 @@ +import { changelog, changelog_commit, db } from '@boring.tools/database' +import { CommitCreateInput, CommitCreateOutput } from '@boring.tools/schema' +import { createRoute, type z } from '@hono/zod-openapi' +import { and, eq } from 'drizzle-orm' +import { HTTPException } from 'hono/http-exception' +import type { changelogCommitApi } from '.' +import { verifyAuthentication } from '../../utils/authentication' + +export const route = createRoute({ + method: 'post', + path: '/', + request: { + body: { + content: { + 'application/json': { schema: CommitCreateInput }, + }, + }, + }, + responses: { + 201: { + content: { + 'application/json': { schema: CommitCreateOutput }, + }, + description: 'Commits created', + }, + 400: { + description: 'Bad Request', + }, + 500: { + description: 'Internal Server Error', + }, + }, +}) + +export const regsiterCommitCreate = (api: typeof changelogCommitApi) => { + return api.openapi(route, async (c) => { + const userId = verifyAuthentication(c) + + const data: z.infer = await c.req.json() + + const changelogResult = await db.query.changelog.findFirst({ + where: and( + eq(changelog.id, data[0].changelogId), + eq(changelog.userId, userId), + ), + }) + + if (!changelogResult) { + throw new HTTPException(404, { message: 'Not Found' }) + } + + const [result] = await db.insert(changelog_commit).values(data).returning() + + if (!result) { + throw new HTTPException(404, { message: 'Not Found' }) + } + + return c.json(result, 200) + }) +} diff --git a/apps/api/src/changelog/commit/delete.ts b/apps/api/src/changelog/commit/delete.ts new file mode 100644 index 0000000..bd9f703 --- /dev/null +++ b/apps/api/src/changelog/commit/delete.ts @@ -0,0 +1,63 @@ +import { changelog, changelog_version, db } from '@boring.tools/database' +import { GeneralOutput } from '@boring.tools/schema' +import { createRoute } from '@hono/zod-openapi' +import { and, eq } from 'drizzle-orm' +import { HTTPException } from 'hono/http-exception' + +export const remove = createRoute({ + method: 'delete', + path: '/:id', + responses: { + 200: { + content: { + 'application/json': { + schema: GeneralOutput, + }, + }, + description: 'Removes a version by id', + }, + 404: { + content: { + 'application/json': { + schema: GeneralOutput, + }, + }, + description: 'Version not found', + }, + 500: { + description: 'Internal Server Error', + }, + }, +}) + +export const removeFunc = async ({ + userId, + id, +}: { + userId: string + id: string +}) => { + const changelogResult = await db.query.changelog.findMany({ + where: and(eq(changelog.userId, userId)), + with: { + versions: { + where: eq(changelog_version.id, id), + }, + }, + }) + + const findChangelog = changelogResult.find((change) => + change.versions.find((ver) => ver.id === id), + ) + + if (!findChangelog?.versions.length) { + throw new HTTPException(404, { + message: 'Version not found', + }) + } + + return db + .delete(changelog_version) + .where(and(eq(changelog_version.id, id))) + .returning() +} diff --git a/apps/api/src/changelog/commit/index.ts b/apps/api/src/changelog/commit/index.ts new file mode 100644 index 0000000..aab70ed --- /dev/null +++ b/apps/api/src/changelog/commit/index.ts @@ -0,0 +1,122 @@ +import { OpenAPIHono } from '@hono/zod-openapi' +import type { Variables } from '../..' +import type { ContextModule } from '../../utils/sentry' +import { regsiterCommitCreate } from './create' + +export const changelogCommitApi = new OpenAPIHono<{ Variables: Variables }>() + +const module: ContextModule = { + name: 'changelog', + sub_module: 'version', +} + +regsiterCommitCreate(changelogCommitApi) + +// app.openapi(create, async (c) => { +// const userId = verifyAuthentication(c) +// try { +// const payload = await c.req.json() +// const result = await createFunc({ userId, payload }) + +// if (!result) { +// return c.json({ message: 'Version not created' }, 400) +// } + +// return c.json(result, 201) +// } catch (error) { +// return captureSentry({ +// c, +// error, +// module, +// user: { +// id: userId, +// }, +// }) +// } +// }) + +/* app.openapi(byId, async (c) => { + const userId = verifyAuthentication(c) + try { + const id = c.req.param('id') + const result = await byIdFunc({ userId, id }) + + if (!result) { + return c.json({ message: 'Version not found' }, 404) + } + + // Ensure all required properties are present and non-null + return c.json( + { + ...result, + changelogId: result.changelogId || '', + version: result.version || '', + status: result.status || 'draft', + releasedAt: result.releasedAt, + commits: result.commits || [], + markdown: result.markdown || '', + }, + 200, + ) + } catch (error) { + return captureSentry({ + c, + error, + module, + user: { + id: userId, + }, + }) + } +}) + +app.openapi(update, async (c) => { + const userId = verifyAuthentication(c) + try { + const id = c.req.param('id') + + if (!id) { + return c.json({ message: 'Version not found' }, 404) + } + + const result = await updateFunc({ + userId, + payload: await c.req.json(), + id, + }) + + return c.json(result) + } catch (error) { + return captureSentry({ + c, + error, + module, + user: { + id: userId, + }, + }) + } +}) + +app.openapi(remove, async (c) => { + const userId = verifyAuthentication(c) + try { + const id = c.req.param('id') + const result = await removeFunc({ userId, id }) + + if (result.length === 0) { + return c.json({ message: 'Version not found' }, 404) + } + + return c.json({ message: 'Version removed' }) + } catch (error) { + return captureSentry({ + c, + error, + module, + user: { + id: userId, + }, + }) + } +}) */ diff --git a/apps/api/src/changelog/commit/update.ts b/apps/api/src/changelog/commit/update.ts new file mode 100644 index 0000000..8ce04d5 --- /dev/null +++ b/apps/api/src/changelog/commit/update.ts @@ -0,0 +1,72 @@ +import { changelog, changelog_version, db } from '@boring.tools/database' +import { VersionUpdateInput, VersionUpdateOutput } from '@boring.tools/schema' +import { createRoute, type z } from '@hono/zod-openapi' +import { and, eq } from 'drizzle-orm' +import { HTTPException } from 'hono/http-exception' + +export const update = createRoute({ + method: 'put', + path: '/:id', + request: { + body: { + content: { + 'application/json': { schema: VersionUpdateInput }, + }, + }, + }, + responses: { + 200: { + content: { + 'application/json': { schema: VersionUpdateOutput }, + }, + description: 'Return updated version', + }, + 400: { + description: 'Bad Request', + }, + 500: { + description: 'Internal Server Error', + }, + }, +}) + +export const updateFunc = async ({ + userId, + payload, + id, +}: { + userId: string + payload: z.infer + id: string +}) => { + const changelogResult = await db.query.changelog.findMany({ + where: and(eq(changelog.userId, userId)), + with: { + versions: { + where: eq(changelog_version.id, id), + }, + }, + }) + + const findChangelog = changelogResult.find((change) => + change.versions.find((ver) => ver.id === id), + ) + + if (!findChangelog?.versions.length) { + throw new HTTPException(404, { + message: 'Version not found', + }) + } + + const [versionUpdateResult] = await db + .update(changelog_version) + .set({ + status: payload.status, + markdown: payload.markdown, + releasedAt: payload.releasedAt ? new Date(payload.releasedAt) : null, + }) + .where(and(eq(changelog_version.id, id))) + .returning() + + return versionUpdateResult +} diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index efd42d8..efae23c 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -5,6 +5,7 @@ import { apiReference } from '@scalar/hono-api-reference' import { cors } from 'hono/cors' import changelog from './changelog' +import { changelogCommitApi } from './changelog/commit' import version from './changelog/version' import user from './user' @@ -36,6 +37,7 @@ app.use('/v1/*', authentication) app.route('/v1/user', user) app.route('/v1/changelog', changelog) app.route('/v1/changelog/version', version) +app.route('/v1/changelog/commit', changelogCommitApi) app.route('/v1/page', pageApi) app.doc('/openapi.json', { diff --git a/apps/app/package.json b/apps/app/package.json index fc95bdb..3134f16 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -26,6 +26,7 @@ "react-dom": "^18.3.1", "react-hook-form": "^7.53.0", "tailwindcss-animate": "^1.0.7", + "usehooks-ts": "^3.1.0", "zod": "^3.23.8" }, "devDependencies": { diff --git a/apps/app/src/components/SidebarChangelog.tsx b/apps/app/src/components/SidebarChangelog.tsx index 76c8afc..f6824a9 100644 --- a/apps/app/src/components/SidebarChangelog.tsx +++ b/apps/app/src/components/SidebarChangelog.tsx @@ -9,15 +9,26 @@ import { SidebarMenuSubButton, SidebarMenuSubItem, } from '@boring.tools/ui' -import { Link } from '@tanstack/react-router' +import { Link, useLocation } from '@tanstack/react-router' import { ChevronRightIcon, FileStackIcon, PlusIcon } from 'lucide-react' +import { useEffect } from 'react' +import { useLocalStorage } from 'usehooks-ts' import { useChangelogList } from '../hooks/useChangelog' export const SidebarChangelog = () => { + const location = useLocation() + const [value, setValue] = useLocalStorage('sidebar-changelog-open', false) const { data, error } = useChangelogList() + useEffect(() => { + const firstElement = location.href.split('/')[1] + if (firstElement === 'changelog') { + setValue(true) + } + }, [location, setValue]) + return ( - + setValue(!value)}> { + const location = useLocation() + const [value, setValue] = useLocalStorage('sidebar-page-open', false) const { data, error } = usePageList() + useEffect(() => { + const firstElement = location.href.split('/')[1] + if (firstElement === 'page') { + setValue(true) + } + }, [location, setValue]) + return ( - + setValue(!value)}> diff --git a/apps/app/src/routes/changelog.$id.lazy.tsx b/apps/app/src/routes/changelog.$id.lazy.tsx index 6094fe5..02dd9f3 100644 --- a/apps/app/src/routes/changelog.$id.lazy.tsx +++ b/apps/app/src/routes/changelog.$id.lazy.tsx @@ -13,7 +13,6 @@ import { useChangelogById } from '../hooks/useChangelog' const Component = () => { const { id } = Route.useParams() const { data, error, isPending, refetch } = useChangelogById({ id }) - console.log(data) if (error) { return (
@@ -65,16 +64,7 @@ const Component = () => { - - - - - -

Public Page

-
-
*/} + */} diff --git a/apps/cli/.gitignore b/apps/cli/.gitignore new file mode 100644 index 0000000..9b1ee42 --- /dev/null +++ b/apps/cli/.gitignore @@ -0,0 +1,175 @@ +# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore + +# Logs + +logs +_.log +npm-debug.log_ +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Caches + +.cache + +# Diagnostic reports (https://nodejs.org/api/report.html) + +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# Runtime data + +pids +_.pid +_.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover + +lib-cov + +# Coverage directory used by tools like istanbul + +coverage +*.lcov + +# nyc test coverage + +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) + +.grunt + +# Bower dependency directory (https://bower.io/) + +bower_components + +# node-waf configuration + +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) + +build/Release + +# Dependency directories + +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) + +web_modules/ + +# TypeScript cache + +*.tsbuildinfo + +# Optional npm cache directory + +.npm + +# Optional eslint cache + +.eslintcache + +# Optional stylelint cache + +.stylelintcache + +# Microbundle cache + +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history + +.node_repl_history + +# Output of 'npm pack' + +*.tgz + +# Yarn Integrity file + +.yarn-integrity + +# dotenv environment variable files + +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) + +.parcel-cache + +# Next.js build output + +.next +out + +# Nuxt.js build / generate output + +.nuxt +dist + +# Gatsby files + +# Comment in the public line in if your project uses Gatsby and not Next.js + +# https://nextjs.org/blog/next-9-1#public-directory-support + +# public + +# vuepress build output + +.vuepress/dist + +# vuepress v2.x temp and cache directory + +.temp + +# Docusaurus cache and generated files + +.docusaurus + +# Serverless directories + +.serverless/ + +# FuseBox cache + +.fusebox/ + +# DynamoDB Local files + +.dynamodb/ + +# TernJS port file + +.tern-port + +# Stores VSCode versions used for testing VSCode extensions + +.vscode-test + +# yarn v2 + +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/apps/cli/README.md b/apps/cli/README.md new file mode 100644 index 0000000..698f273 --- /dev/null +++ b/apps/cli/README.md @@ -0,0 +1,15 @@ +# cli + +To install dependencies: + +```bash +bun install +``` + +To run: + +```bash +bun run src/index.ts +``` + +This project was created using `bun init` in bun v1.1.21. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime. diff --git a/apps/cli/package.json b/apps/cli/package.json new file mode 100644 index 0000000..d0e3640 --- /dev/null +++ b/apps/cli/package.json @@ -0,0 +1,11 @@ +{ + "name": "@boring.tools/cli", + "module": "src/index.ts", + "type": "module", + "devDependencies": { + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5.0.0" + } +} \ No newline at end of file diff --git a/apps/cli/src/index.ts b/apps/cli/src/index.ts new file mode 100644 index 0000000..95268e7 --- /dev/null +++ b/apps/cli/src/index.ts @@ -0,0 +1,70 @@ +#! /usr/bin/env bun +import { parseArgs } from 'node:util' +import semver from 'semver' +import { z } from 'zod' +import { git_log } from './utils/git_log' +//import { pushCommits } from './pushCommits' + +const ENV_VERSION = Bun.env.CHANGELOG_VERSION +const ENV_ID = Bun.env.CHANGELOG_ID +const ENV_TOKEN = Bun.env.CHANGELOG_TOKEN + +const schema = z.object({ + title: z.string().optional(), + version: z.string().optional(), + token: z.string(), + changelogId: z.string(), +}) +export type Arguments = z.infer + +const { values } = parseArgs({ + args: Bun.argv, + options: { + title: { + type: 'string', + }, + version: { + type: 'string', + }, + token: { + type: 'string', + }, + changelogId: { + type: 'string', + }, + }, + strict: true, + allowPositionals: true, +}) + +const mappedArguments = { + ...values, + version: values.version || ENV_VERSION, + token: values.token || ENV_TOKEN, + changelogId: values.changelogId || ENV_ID, +} + +const args = schema.safeParse(mappedArguments) + +/*if (!args.success) { + console.error( + `@changelog/cli: Missing arguemnts: ${args.error.errors + .map((error) => error.path[0]) + .join(', ')}`, + ) + process.exit(1) +} */ + +// const version = semver.coerce(result.data.version); + +// // Check for correct semver +// if (!version) { +// console.error( +// "@changelog/cli: Invalid version. Please provide a valid semver version." +// ); +// process.exit(1); +// } + +//pushCommits(args.data) + +git_log('') diff --git a/apps/cli/src/utils/git_log.ts b/apps/cli/src/utils/git_log.ts new file mode 100644 index 0000000..a82b7f9 --- /dev/null +++ b/apps/cli/src/utils/git_log.ts @@ -0,0 +1,45 @@ +const GITFORMAT = `--pretty=format:{ + "commit": "%h", + "parent": "%p", + "refs": "%D", + "subject": "%s", + "notes": "%N", + "body": "%b", + "author": { "name": "%aN", "email": "%aE", "date": "%ad" }, + "commiter": { "name": "%cN", "email": "%cE", "date": "%cd" } + },` +export const git_log = async ( + from: string | undefined, + to = 'HEAD', + // biome-ignore lint/suspicious/noExplicitAny: +): Promise => { + // https://git-scm.com/docs/pretty-formats + const r = await Bun.spawn([ + 'git', + '--no-pager', + 'log', + `${from ? `${from}...` : ''}${to}`, + GITFORMAT, + //'--name-status', + '--date=iso', + ]) + const text = await new Response(r.stdout).text() + console.log(text) + r /* eturn text + .split('----\n') + .splice(1) + .map((line) => { + const [firstLine, , ..._body] = line.split('\n') + const [message, shortHash, authorName, date, authorEmail] = + firstLine.split('|') + // biome-ignore lint/suspicious/noExplicitAny: + const r: any = { + date, + message, + shortHash, + author: { name: authorName, email: authorEmail }, + body: _body.join('\n'), + } + return r + }) */ +} diff --git a/apps/cli/tsconfig.json b/apps/cli/tsconfig.json new file mode 100644 index 0000000..238655f --- /dev/null +++ b/apps/cli/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + // Enable latest features + "lib": ["ESNext", "DOM"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +} diff --git a/bruno/Changelog/Commit/Create.bru b/bruno/Changelog/Commit/Create.bru new file mode 100644 index 0000000..e9ff3b1 --- /dev/null +++ b/bruno/Changelog/Commit/Create.bru @@ -0,0 +1,28 @@ +meta { + name: Create + type: http + seq: 1 +} + +get { + url: {{API_URL}}/v1/changelog/commit + body: json + auth: none +} + +body:json { + [ + { + "changelogId": "aad2c981-e1cc-4de0-8185-8d1c117886b9", + "commit": "abc123", + "parent": "abc122", + "subject": "some", + "author": { + "name": "asd", + "email": "hello@hashdot.co", + "date": "somedate" + }, + "body": "" + } + ] +} diff --git a/bruno/bruno.json b/bruno/bruno.json new file mode 100644 index 0000000..33a2eec --- /dev/null +++ b/bruno/bruno.json @@ -0,0 +1,5 @@ +{ + "version": "1", + "name": "boring.tools", + "type": "collection" +} \ No newline at end of file diff --git a/bruno/environments/Development.bru b/bruno/environments/Development.bru new file mode 100644 index 0000000..fcbed5b --- /dev/null +++ b/bruno/environments/Development.bru @@ -0,0 +1,3 @@ +vars { + API_URL: http://localhost:3000 +} diff --git a/bun.lockb b/bun.lockb index c89db592f6dbf45d67fcbe5fa0f7f82253b48eea..898f1962a9850aa9247aceef94264f550ed50c39 100755 GIT binary patch delta 106852 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

}c;U`?k>zh#%A^mY+;-pUUdq%C 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 delta 106511 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%0Dn$g^M5S?75Jh{unyHW@;0h5d*AU7oqmF< z!c8uI8>)tUkMbw5onI=iQHE1B=vQo|^D{g3*MD0|Q--k9b}F5ZR2yqIR0SlW^2DB~ zR?Pv9_d!+Hq0T-WRl0ttK2pUWg9;7cm*S)C7=Hx@xrh_dU9itmDyOP=6t;9Us`O(~ z6`1GvB*!PC`bgEGDK360s`RC3B03+HXRm07|5e~32Nt8UuXB0>s-d_I)kmr^eH2xJ zkE7a%UqH3~H==rS@D-~2%U@Al+alB^-5phVd!d>G2h|WzhW@Bpd=%<$Bq)CZXX@9V zROyDn)zGtCd}|dS30JyNE?thZN4xY=#n+5+K&r8xh7LrRqw2xqD4hsAjjG^hQGKMc zpGP$`Yf+_p6;;8nq3ZGb&fbXXBUStd)~<;Md{u!TxrD7%SN&~pMg7DtRoIBCpe9uL zentJ+jen(WQSo-DhN`2p6P$MTIpe=O0exDlG9!*;a>u0#Udt~PYaEx#UW_W=bxv<^@&8KYkDDTHU%Q12Ov}Jhr}w%7q^jUP zXG`U{haG>!@&AdcyhmNWMhU|Mda@o>!VNB=RQ&HwH#**0wHP!bTr@Fb0{FVCW8v7uMUb}>?wKoN% z!c|~~i*K#sQMl&HKo>8SJ;>RuRSi1HabLBsv<8}lr?>=C6?7`9p*hWQsq8aQr9aE@ z)~abT7OwocE?u5WCl#NF`umy!DsYmEC~!L2=@e9-)~ah(x#RzV+H=ipSJ50-pj4NN za~!XBTq+k{fU4*7onD4&D6T-&vnx@3r0UpJF8&(y80?o&rF+?9@vETM9C#hoN7~LT zd4wB3mHUyyQq}(@s%%>vmnz-Y&i*S^e|{id_5SGeCsgG$p~~Nk>LZoS*~dOtYO6yK zAE~Y=ot^eX)u7&}3f>RZN2-n=fU1JNEWpXSmi zfC|iUI>u=(stWQ@HDDsD1{FDbDyjlYP~|UmI@86Mx%k=6p5s*igRnkx_40xWu0Zt+ zV4<@wM^)gJ&R&G-BNdOKYM60cD*JjDzXVmoZg%niOlw+4D8sETgH#Q>4b|8#M^(W+ zF21#@LH9W>m4_ZhRbD-+VSmQi&pTawkw<`jMy_JQfXWgUTbI3JXzvr1C(Kv;Rs}P_c_|t>UF{ zMOE=j71g2#p?3&66~7zX-yjuGPwzoh@x3nLzfz^U&*gi-rT=$S`5tun9_|=0-`5Ab z^n(TTpJvBZi5_*fRK2QqwlrjN9}9LrQ*C|{Q^}ul(Nax|XPw~iJsvak! z^2p(+Jb9G9(U!}OM)?yM>>^G?m2imQpH%#0$NwEw`cqwbr@4Gm@tQLnXsv4LSuVjy zr`f0)n&a#-sCqaK)kmuM@h(2kX+El+7NSZ&4b?|V18M>#HV`OvIulhvWvD)XRxvi$ zmY@IZT{_19uL{tr_;=o!Q)B*BI`zD_67i9$+$4U~H~*bF%|9KA^pVQ-|M!>bl-mE7 zT3b{eJDwlu2|l$dmk;5`pEHi1+)9HxU#i>rQXTU_^JeEub$CGwrS;2nS}U^Upq($( z*$ryvOLhA&O|+Nqe5p?Bh0lNRa-BVb{Raj7j~lS_r8-=;^QF3-FV$%a+xb%6&X?+T zzErpKr8@gEovx)jU#i>rQk|Yd@X^b5I^penscv^Y%Hbp32i^Hn-OiWlcD_`%^QF3- zFV*dQscz>>bvs|Gv)^v*e5vmHoiEk>H{RaU_jo&Bs@wTe-OiWl+>2E^U#i>rQr*s% z>hyA*E)At9e|El9hY$Yna-F`m|I3%@;(X^zb^rS>+1YP&|0{3tX|nHpsqX*sQr*G- z{!4X_)_obgn}4wDyWlDOTWHI^3yw0IwgnSR!uNnglk+`b@i%}5fjy1)17OIvfRY~o zz04|s?cWAFnZ14to*LZ86#WQT`W-3O{YZ-5Ch;dg_VsS5 z1BU(r=x6GF0jw8j7U*xXeg({L1g!WKaI|R@NNob-HUm=3vSz?0frQ@xX(s14z~Wy3 z4FVa)`yDXkS3t?{fK0PWU_0QNUZGQh1FtCx;f-d@b(n)qVh}s~H_}%J0mqrO0+HVV z$sxcArZNOrDX>xCB$L!8H0qkd5WZ-GonLrq#3P!R$w z2?I_yn*qTy%;0v&nWj!M%zP^uZnD~wcz#e|BEmx zm}7Dzqs{%2F~;kFj5T?ZT(e3t&UERBj5kG+31+n<&m?w2CYqU&e6vwM70A`xH zE`ap{%>v~nYd7_^GhoGTfZ3)|Aaz$jZdbruv#cv%lR(1mfJ&3IJ794aK!d>9#@hoh zWH&&`9)N1IN?^M{uWo=EQ`8Nxv@2kpz&w-K9gw{{pt?KYe6v;{vIii!2jD_e*#odr zV57jrCMgk6*bT5S5wO5)5a`hzkl7P(saenyuts33z(SL@C!nGSV9B0jZ8wiTeSv_W@Mz2e{R&6^QH$NZucC zyQ$nCuu@>7z?~-P06<}Hz`_Fn%ghFW9{T|@4+Pw0790pzBd}Fqg-JUIP_aK?$w7d7 z&1QkV2LOil0o-ru`T*7oGz&avvibt%9|%~{7x1uY6i7V?kedW})GSK^Y!XN~7_iFZ z91K|82hbq!nDGt)4Cx!%#Y{gWbaJr4tP7b=up7YB)~d>)h00+kbN+q zIvMbcSt}4Z1dx0f;5k!y7+|HqMu8Vh(&2!@Ljem92dp(41bQR`GLHbfWELC&SR=4i zV4X?p2dFpi$3p5M7X|nnQ<{trA(I4=(X%tB92gp4N z@UB^Q6kwA;!qI>YCg*6t;v)eK0)IE&F@Pcc0VT%(Hkwre+XZ^106sMQ)BE`2D8M>_ zk4<7KAp2-Qbt>RfvsNH-3?MlT@VTi>1FRI-DDb68N(U6C02ZbLHk%CsJyHRg8GtQj zK?Y!rz*d2+CT#$qA`P%)0AQQhEYLR{Ff@8glMsg$%cuS?pSq!W;cnJ4kg z21y6g??j}dSs>|TK9(eyw3Cos%pyr=vstpM89W5(V(KKjnQtXsO;#4NySYWOhiQ~_ zGiRQRbT`W+JxuTvB+=wZdYbzsdm8UlWG|B^>19?)_BLIHBKw#k$-ZW_q_;^t4cX7k zlykbu=?tW=nI}my8zcvterFaIF7z)2=)44^O@uy70@%WM$nkpsva3pm9r7z42rv0P6(inZ!~+b}^v3 z6mY&-D-bCGB+md`Xews_RtjtsxY#7k1QbpOESw2gU^WQ!C58Gt3_fGf;qfxa^VLuUaNnYvkk^#aWTF_SeLFux42Vm9C!(u51a2{jRePP0~4l!b-rxa{$ZC27w+`fXr&ZU1mWwV2!|5 zffXk0TtLOyfF)YSmi3p5KnXtHVn^Q!?XY5@9y8wgfFZRyH=J+J4FcP1Nzv;9QaovjE&wc@2UsVt z+9X~G$UYBHeIei(vsNH-J|Oubz;mYZBEU+4jRG&2q>BNC7XTJs3|MP62=urRkU1al zl36exuts33z&ew*08nueV95f&t7fx6--`i5F9E!6>MjAS7iboE(_~!=m_Hw|;!?od zrcoeu0U-A>z`JJIWq?fr2@3%mOwK~U;!6Mx0)IE&@)z{^@$;1JmUS;= z`N*u6d~6c0By09UvQ}S7)=$k^fym{6s&fCRJPMnJ_4fUN?ZP1;R>zDod0ZUS^M zn+4Vj480l9)zsY#n13UnSzr&7bqgT%CcuhY0NqWaz$Ss*zX1}>vcCZq-wa5&6|kqt zxfL+v7C?hQFXP*5R08TQM4*&}918fw?GD!~tdfX3K_#ogEvq4~uK;}b$p=QBD zfQknITLn%xX%7SXJ_uOyFyKtHSzx`u&_@8nP2D4a`40h_1xA>xM**o116Di=7-bp- zHVNde1mu`yD*=li0VJ#fj4?T@07D)HGzjDxuO6^nprjr!-mDT>x)RXqF+iRvdJK@g z3b0Nf-y}W`h|~kB9|shewE`;zk{bY1Ol1S0@G-zffg+Ri1fa*`fQ3&0rkM=_YXmZ% z1eBNsPXa0$LY>S%o(!GJsUz(vK;I`wvE(UI%ru(?)(Z?>4JbEts{!+$1T+iGHd#*t zQlA2>cp5O*Gzx4I$bAM-X_h?$SiBmL@GRhLlk+TK$kTuZfokJD2iPu9@*JSXtP)uI z44~KZfO)3qc|i8FfOP`ro5U9Yk>>!_F90qyYXw#cB(DKnY%13P3ZDmT6j)%A)&hFG z09d#daH-iKutp&BMZiL{;6*^i8o*Y8D@@u;fWB)1OI`vjGMfd~3k-c35Hocz1LnU7 zXcoA}WUT|Fz64mY4q!~9z$Ss*R{(Wp*(-p>F9Q-@1zc}(UIh$U2WSvjV!YP?+XYHq z1Kea*2`qgD(Cc-;EvD#oK=!MEbpp4V#5Vwu*8tUT0B$#H1y%|qzX`b0RK5u)d>yb+ zV3|pJ3((^Yz{0lxcbN?WYXmai2COg(-Ud{>3D_!duSt6c(DyCCl6L_2o6Q321%|#0 zc+k|n3z+{lpjqHyleHd@`VL^ldcdQmQDBom?gqdrvup!k@wzXP5$s|1#A0Q7nvu-X*856FHGuuk9^leiHO`8%L`Bj7o+R$!$-@&|wy zOyviF!uJ6i1=gCR4*@+k0v3Ju=o=|!smd$ zo1D)9Lp}vG2y8Uo7l7>oC0_tOG^+%beg^3ECE#OI^d%tsbHF-*Pfg+`K;#QR^(MgQ zX05Aa|S2AR)7S zo6aCxAqn5;3=%S|L14W==1+jG zX2DN@`9A@+3hZIheg>re3|R6rpu5>Dut{L(c0i)3+YVT~9ndVWr^#vr3~2~FkZ0g+z;CBFg=G^+$w3iN6Q^f5)v zfWl_LI)NmU_#2?dZ-DCG0Ed{h0&4`4e+ML+%HIJMzXLW39DYqwn^D*FZIf`#!ZsX2 zuGxUKz74JjV)i!+f^Bd`5U^F?Xp575H{RC|C^^dDW}3a?Ekb7+S)rv`_b$_}Kc=s=2%9Y}Gy zN$Lpb+Yzv^Bj8N4L14W=W+%XKv!D}TekZ_Ife|Jx0g##iSdsu3Wi|_J5*WG*Ajj10 z0$98Ypjlvy$?6Ok(iyO#Ga%PA3Tzk1-4!t2EZY^ZbXPz^7eJoL=>o{^0%#D(H{Nc5 z$Zmj=-2eq8LO;R^N-)?|~-2gMq27&bgncV^9)~EBky#W`SqP+oydjr-9EHH`t0D9~LsNM%~saXpMUS@jl zi!3yih^g3@=#BdleT7Nt4ZqUNlPoeDBv+Y!`yny2KytPDSaOX?+aI~sERq7`SK?ru=JK@lV*q(Mn3K@dey;`e;ra}IZ1!OzF<Dm< zg}E+gvnd>mv&Br7v(?;_v(1$H5NErYDQAayB4?+mlm};*Stw_>d4Xe|=b@-g@>0~j zW@TQ46?qX7gdprU4MPwbgdpseaL~lbhY&j-LZ^HPUs>I5TRytovHWzquT4+^EZXJA zVo(7rj+i470t+DI4n;U>`h_AKmT*5ArTNvT2xhJ7eVT5W$5YC&KMG)>vcqQSYsq_)Tj3NkYKSH={UP!3; z5kixq2v^O@q6p6=Bq)aPgK1a{VMS4d-4d>wIK>foqde6wj&Rd#mk_%+LYfi?w@p|H zgl!UzOSof#N+Pr?fiS2f!aZ{Y!S}w&PzvXP=_ltWb4t!blf5*~BQr$K&*q|>$0lzX zoF`_qoL|g!IZt_aJ;_FvA=$ZQN%l8$PeP%x2-V6V{BCBJL%1v9m4p|jQh9_Knz9Sr#a8*JAlf4>3 z->L}Xt05#Z7bRq?hES|JLSi$zI>H4B4<#fug=-*0R!5jy10lJ&C!tUcglaVrQkt1H z5$;NOB_YUEs)aD4Cc@fU2&v5r2^DK0G^ve{#;mN3@LWQIItb}Z!#W5nY9s8Hkio>M zi_oABLZ`Y28O?SHvFjqF`4}Oy3Humfn}p*MvYMcJ2<<*b7*r1-yE!5uupUD0`Up8q zzxoJ=C0vz|+hlKm(6>Iq_y!0cnu`*$H9#oV5FxJ_-4Nk|gohIHnZk__A{!#iZG=$3 z+>=nK5kj?35DJ=^pCH_o@Jd2qQ>ih+j872OHb(f!ypT|_F+!6j2*u3GCJ4_ZBxs6I z!Zd7(u%ZdVZV9DKoMs3Onj&;+hET?Amk_%dLYn3XLiS|GG*jxeYN zLM3xVLSPGo+$|BRn0_r04okQyp_<9w3ZZXHgz>EqYM6@>vb91e)*7Lf8QmJ;f`o?> z>X^c95F%S6%x#14vAHLqP#c75Z4v65nQam7N_Zuqp{evK!i=^EYd=N!gm-EqRQwd7 zNjrolW@S5s=MoZxAv7}$!w^=qL)a~$g^AN1p+Oizr}hY~%ytQ}+asjufY8Q-bwJoA z;kblPO;AUKb{!A~bwmg=MAtp{Qga$nkI`u*rX0}U+ z-3uX2Z-fyhtT)0o3CAUjGC_S1+Vw^l)CXa-IU*sj4?^y~2xCpZz6ggUT$M21WbcR2 zw=cr@eh3rIMG4vZAr$M6Fxiamk8nZ4LkUw&;Q^au za96@B2{TQlK?pMjBCH*RFx$M4P;n4Klfejc&C0ptQ?K-Ttb2|2zyP# zF$gP0BkY#2-^3Y<&|nNgr?ChJ&2|Z~$0DQ|hwzmN8;7t>!f}LZU)%oxny(xB#7N@y zS$6BkJV9n#okdfU#Y>+&>;3D^pVr-w>tICfxM?yq>09wy_1It6Jrn7_F!GBAH!8V{ z^}QbQ`{m*x2^UPidhu3iKJ@Spth#eKi{&1$s+s!c5ukZwfkIdwNom=-Uj^wXiM_q*1wN;T!?fTr`TS1`U#^qQ}<9x*}V zDQ@6+iaTgLnT~VIw2*V#Y?t$+No;WLm@pjE&QQ4HhQi%5K{F5n zXCMrkf$+c_k#JZ-?wPD99>y^HPx)8z96Ol4Gg&xZnaRTOXOn#vcG+fOH+~iopO}jh zE=VXg8{w%LJsTl%Ho`**znQ{w5DLvfm^%mIcXLm|T?y6ZBD^p&=OWCQi||UqpQh40 zgo^VJ*3LtCWnM^lE}_YMEqP*?Rr9svnU9iS0Vckt;Q~w=EI`;T!QaGLh!A@rLZ^iY zF0)<2HVJ7KA;dCaixAo^LO3oVjtN?f5V#m&&|-vm=7@yD5^^s=NMQOcLFl^#;i`m0 zCi_x^Y)cWwFGWba_2N?hSbnDC3jb`p=sQNd`TV{puULp^8P<7gy7m62e5INNtNbHe z^LSHdf~^_$_KGQ>zK8X@0r}A4Y`uEfzhF#R z9`m*SZ%&@_f9y&4%69+QaY8@#yip?}2CroPP+|EM7Pog;&o&x=_v@LaJN#P)HE&>< z=?4kg^k~^DtYd4RMQHJ&lxfW_|JZ&XwAh+~rnL+iLnfySeq! zW&h$aP3(*Q0f}`V@}08UwlTlo7oZA0HOX%HC!2b*aWYSiG{CN)`}M5WQ3P*qv8!p7 z;%~QpfQh)}Z}%mYDy6?Cy(M@2v&Hqcwu%<)WaMpWMMxUMTknBC`LA%j?a4Q-dlT?8 zjqz4Y8bc!|mnSH})3Uz$`O}D3xCyPqtZ~KBYqqU({_uDE#+l#TSHEl>QFQD6KmFgt z@GZW1e~b<;8FztP(2b|ZD`IM#XR4gAuh->nzNegWCbM5a~@SIO|#Z>&G{ zk|HdR^iOM?Rg$jd*AUW=ck8b>g8sRN&<}{~uN0bWWSg7rslPH@C@p?i#V6R-%G#RJ zTB2Vm(=P>=vqdGg+!B4t+nO$0*;)l#Q(DfOgDTn@!^WqzT^ha1kN-UXa4M^E=dYS= zryuCeZfn)iJg+F#`)~AXzp7D9+fZ+UN^5Ji(3FAR1f+Kx>F*QUPOmM}ZzAijv90mI z@cf>#v?gduSHDfD-^Lu-lw81wzD<8#-)iJIn377QmgFy+1}RD zpslvG4z{M&+hA)QZB4(hv)R@4#^ae%QXMw4DS&jOaUZbdH%?jh}4ma7>vY}N( zQ{Gc-Ej#|ow%t@)%Yo*+Xla_QR1@&fCkqNH1#(9D)wB^ z-(EZJNBCJ3dF=MtT2ZcbBlNf5qjBeoanXRK`s33#Cr@Td1u zN-GJ@FV}x%Yo*Yds8swNvbECqAJ}6++egJM0|T9rd)OAsA|}&)=I@BDmBW8g_ng0P zY^^;0?&`e!9ksOz_#0yP0q!w0m9-*#VrwUCtrD8vr=-8|lXm3FTsUu|(l2_cgjJ;B z*WYP7a#j2z@Mp*U&bF(DzaR;!@1C`_>iDnIs_MJvY^?_Vo3?fyjRKbTsfl>Y7M=HS z)eu6m8HoRwRjnNjHfSH&E%>XgwM83+rU9pSm+HoR3V9hvp1)_d*p4er z5gKv7+gcd@Fndrvx3%_Y`i)Kf>E)+Numk9=4<&K`K-1jY5%d-${UxSCvg-t4_)Fo2 zC$YuOT(rlpzofR-1^;D6Uuj(ZMw=pcg{CA}0XMm=b;GY0idDi*fu_e}cerE^mRz=7 z544eJ8Z)^qE!?Lk7dI%a{(^18Uii1z+J|WT=hGX;qG@pDx9$4i*J}VZXbPaI)%${8 zTCRRy(6;M`{|cJ=eIZ-xkN-30CFO-}aR6dj4Ar}f*xEq+UxEHUvb90@AK1;Whq+p2 zFx&$5lVWK6=Xn)}^LB>Pwp|2z65{F>meFfqmCg{*TdH)w%G-uR@$2QM`m12u4a2Xu z+Nmk^&RJzV95ld(I^jFo^M&jRP+f}o*@KK1bXhJomURtZdM8b4hK}}T4 zHXMz=8Ie_Uz06h_kAaPfz+W9(8;f7PTz_?KZ5)2Rl0ttU+uC^i$@P};2t3ZqZzteS zL4wkp7vN6BuUEdRH5%BFC*dD}Uw?W5t_m|52HJLwY;6kKU|Z9Rab-6ZoR{x5*4ua_ zP6Iu!)I@p)QF))wfD-zsg__xsr{h-vr8T!TgWnKAt=7WUX5iPMqW)Ui+D!a<$+udq z6&nBf%+mPRTRQaD&NiHlUvHgP6KR|(ojEX`0;=>Hrqbqu>{QSWwx%byeuY|v>S$}( z0`Ty6C9~zmE!rzzNb&Uf)AtDLZypD@3MJN?QbM5!d;~>J-o&n?arNT3KnRLsswZ}Z z#>tL92jn#46T9-&UQ9pKMq(Lg@1VUxYiI-7BQ%C4&=j;kXalJzLTYeB8b}N2AU$Mo z8NVd14-#u?$OCC8b2><7Y9(={;~!mhOXA8}M4JFD`t{Njyq+JE7LN%xkH9%|qAutq%f!6sWVH8Bd zXcz-yO|_)1Ps8hT0~&&+DNReEpczIpie?MV4#lAal!7u)7RrGJzXrQ@1C>C(M$rj6 zLlx4j3e`dHlG5&=Dd;V5)4{-uIIOd0;+Yl46iMa^&afQ6whY=Ltc7*39<)8!2%F64 zWUe~lhwIkWXa`}?9y&lr=mcG$0#pKR2($sn z3+X}cv+V?3Kx_N%&;xoxFVNb)5A=invC1%^;28viL2u_B0z+XqjD%4T38P^QjE4y@ z2`0l7lRJegW%x|IvtTyNfw?dr7QjMS1WRBkEQ95+0nrcwscuZPaBEY5Q=R+K! zeYgkUAnb-c(1rfm6}rI%%AuEy?SyTx3G^z-R`3n+*K@5`sx5~Vuo70o4Z`$H)HATQ z9(s*IkCCRJM~5C2dNh2A;ny%1^xUcedW!F-z->#9*O}Ge`;?SEfO*a) z02M)RR4od{Ad>s5UzrPl#E=A%LNZ7W$4Ohe%JZPt1M3~b(?Ofc;YIo12p9x|LGMW} zL0L*db^JA;Ce(u3PzOGSdQjgqOzldSeJJJDW^_1=f=I|uZ~+K~LQoirn1!jCz8=%o zPe5D7GjJ9zz(qI(yI~LPg{80zmct6rzHt>ShJ~;QCc_k%1fyXL>|*NL1AAc~?1$f| z5&Ow{K5MvG3+rG#Y=lklIeYdo^Npc>SG#Wc?uZpn9W0WN}ec!yvutb*0B2DHm73bXOgfw?dr7QiA{ z3`<}sEc5qi>+>0&aWEbxz(kk?z2Oha`4V2iYdA>4BVZ(a%5^*V80tZNXaH3~hX|hi z4{i>~Y4WCI;Oaa|?}yXIQ7@*e0eY>qHjN)b9teS~kO9)cJhGZW{l8^iI0+}X*4q^K zLJzuechH+0zW{A2H{fmrt?54nEnu}cWicA=S$%5htEFyh(0X3)wcN)jKLEdwKy9w8 zK{?ohRuVTeq=DoR0MF5Xh9$5Rmct5I2@7B$=pCvZpa=AXH*pxaQ>amEXajAbJ!D{n zcZ9Cc8~Q9}2)Z`ovf8D+TxsUP24{{7qWs7W@cz;XY`0`x88b zN06HMM{tkAddN&hSs*2>c2c80Y&9F|xbo!+;%y1oAZo*i*&~ng&>un^g&E^Oq>UF}O!E~rhcomq5 zzXtAX;k`b>Oc9{;5zAICBs89J0?N;!1E)>q$h^ zIrTsa(u>FgLHqbQpk3>HSO8044XgtlFSn+^dNF2WXaX^)L_E+TzkX&-?_E6tdTZ<< z3a%57cJT`Fu%$LGI8Q0hz#l}?`?niHBhc|~O{fFEQR-*#du(&)16S?vjrcdg=kNve zCeiM=RY9k?I<>t{;ckFVW^ci5_z~{FU3diF!w>L~f_(?)K_{+DKqsmbVJ?jm1I9ol zSnT5DZV4GKg=MfDR=`S^nU~R(BK$M_C#Z}LBYnAD{tyFP5EFFJI2`iPf(^;MJ*|`v zTb&K+JV8f#KfpCI`+>^0BCH9nj`f@d(Q%%R>PAypow{8kz4Bah+7|AU2u}dSgjf(8 zep78R(yNbj)K&r3!a7i4%0fAKOaY$43wQ;-6yh%Kc{mAsVIORU*>Hm*ILtQW{_!Sz)N`91s)+f>f%svdp?edF)BwUT}ezwJb^Hr$WB2b@as58pQn5Uj*X6fduv!8jE#Z@m{Q~qHR*NP)0 zq=1T`nOk#IF3@}x1Rnu6%X6(e#+dX8fgDf}3P5(q1B#a#6fYIz1lcKE(@kdhfN9Mq z1D^Dt!y&opKy#5IWrR$S1=53TvO!iLvL`&)c5~zEbC3L>fue$G&7_Jb(+W@mia~MP zElvJDCAlaIrJy{NgECMWqzmZ^*V?QSRE5e=#rA*g%e)7(p%Ki2888i|!W7UWY7z{C z&cqvvJ4BC_2$0(maS-l67yuo(ZVy_|yusDlrVDfet$FUEwZ&}%+99=s7SIeDf*w^3 zpg!n{P!aUx(8@t?>&ye;YMvpGn~R)~1F}P3wC?Z%p2N@Z2p+-%_zCXAJ?H{$Ku>@5 z9rYKb+ZtLyOK1Vjp(!+mM$ka_zaE}u&;+!UXb4&kYiV2?w2aVlq7Kvr*%Q%|fD%%I z%|RI`BQ>pB(rLXg{GUQwXa~CP1ZurIy8pNE+=Lr&0nWn#SPiRSJ`92W&=2}TZ&2%W zg>IndUk}^uX}i+;MDr`2bfqCTg8V(7GYrBV2m?R~OCJuyU^I+`5ik@ST?xqVXrpX@ zWE7h*_@l;EdWts>=0f-!{x=&Y!z7pp<6taIfbpP6vtT9+hG{Srrhsaq0xMAi)8R9l z8Mx9Fe=#fowW8uIf`zK5b0I^COJNDf&^CJOUlv7|Jqh@%faTy6Li$Q@3ayGMErqKR zYd{5)HcRcS2zPfP>IX~C3F^40BPr-5A+80YK`gsw*MlodbadlpdtD_ zTm@%XU&cQL)XK8G1ZwRo5Uz-t2$ZQa{v87+QH5Qz!gOi5h&H~ve zV<)X2@!z&}D%Hdjpg?7!lB={zvjb;EGm!Kct3blt(1p4u5tU+4+lK!+}>QFrJ8y+Df-+2}B)52zsr!x$J1DqJL} zu%lok42KcmR6y=nm;mEJ8~lk{A*rNI!N7F*45T?IOc~AuHKT6XA>6I-6?_S@)l%&s zEP-{f4K~9Upfnc4LXhnO=t!%C&&M+l=7JN^F_xi>7TICar7Z<@JvH@mSY}_Z#$5?3 zU=^%^wV*hgU<0g&ji6iex$eJ2U8r<2RIRpv5?5(eE2q?sdjM@e?1b&0!ta26uow2g zF4zq!sO+2qsKu0~^77LcD_-Dv4(jC^+mG-+1oikIac{#dxDKa56We~cj6V;Yfg_-i z;!H->@hdIae`AMfD%c7;!N6xQLo?-33{JrY{Nv#yemx0K;2wu#@U87vqMCe^m^1Av z{y46kne;oZRhjd+7eI?4g`LBHHcFT#Eze4+4<1F3;6%KH;YDyX>DRda0ltT;a0PC_ zO;Gr|W=rWR@K4w%`~j{Ce;=1T!adEa65d0&1I|>drqq0X7frQyTH|N@YTn1VzrgSC z44&B6nk99+eubx?Td1`3e7OZ`iQmv<7q0Q27LO7dV!MCh{{u8dYm@pK|0{S2Z@>p_ z3T_L~lzssYKrD0@v_c9JVMr)uVn@YjS?Fx{R&GL&C9Jzl-t zX#sWcsD*PndFpT?PO&p_+le@tISHgkS2MmZk+gOi8ZGIfq@lAY^$n%x6hwv9A$%}& z!5^+(oRy0dM9z(y12k=pg@)uKJD?egioP0v;dW?Ic`&^4Yi;qRD-He1VTX{CFp6WKluwoAt(sC z)+b*ItAJY`%0U?@0kSEi`M)?G85aY6OjZ&~Ln&~=%Hnqt*4JAqgAUvES%*`IP-^Pf z*Fdih%0vZFm}94F`Bi~}y8n*w3I30vj;+{EeU?C|u~H^~Rt?n}L(5 zuA{byT3H2?-U@Ub-iH4vg2c9Cq^3SB_cc2`_Y z*&XmN!LQD#LiEBv9Gu=iO!t2%LU9aUVGw~|w`4GU2t7d$k{-C-Ko1Vpt~=2DDJ z0ieW{NnhMP&>Q+ee;5cV#1LHBY{I`7|9E9K4o1O97y)BoEJVU+`+5fM9GD5yVIoX` zNl=%>KEs^~lVJ)>1H~~g3-npZJeUg$K*KjDgli1XN5}~y@GDROViEp@pr&2{%g|QY zen*q5TOxN8thfETEm|9Fz_r@x%^TS``bJ9+_lPo-kqo{DT_3{T3VT3_?1o*i1C+^j zP$Ju4Gkgy3%IFJQSK3kYk$hLdms&ciwQ z4!(s`a0ZUUQHWmfW45L=ox+e_xF@0#kiiK%&@oVFi5gLvM^9K8JNAyN^xkE6_HR1( z--+b7iu`v&R=wy~K^a~Fr_i#!442>{M91{{@_ua(cMaQtxV| zW!S%aJ;43{>w@6luLpFvpo51$$>a}Z#I&n5fu8fPaNoddi0RLM67>C17x+UAeGgQd zN`1psUn2>I+~5P9iIfdjiM)i^_}Ab%x8OPcE}(?9q}HdVvvKut?kwCHFb$@HKIWZ_ zI|+tCXR;WI8$N{p>7!jeh&rm|xC3DTX!+D0w3~f{tIdO!<{d#FG-;>X23kW)&|V@L zX*I;vimCzBhssb9%0U4L0iB$%Dh~IFON6AL56SzIsCKT2@dtno7axH(B3jq|1oz<{ z#38&5ZVgajbX=qT{Y|(57vMY`fYqR#@_bN!+Aa5kzG{cwc$8^Zh)>`!Tz&m4AtV5O zi^I|7I@hDHbNs{bj{(PCan*5CQcJa*`hs>sI=ami&c5gEN8tzY>l?)BAv1gc`l6e@ zS*&jurv}~71=#8S%*UMvbECv_Y-J~#MRu5UX+mF|Q_tih`tZLT+9^=W(G9R3l&Q2# zkP-Bmz6zn<ezl)7^DQ7lNJ_)Q$C3z!xO)6@G;|uD(xQ0F+)Q!u4J3@=y-SKxrriMWG~=(3mR% zg`gl521QCw5=7a;{%r^QpLVa|MW}Ts6aZ&>)4oZw!>7;& zszNhp2>JqW6ZjZDfi&3G!)*lBp&BTxhJ9TJw>H#*nvf3rY>*Y|>i#Ry22dZ=WJ*j4 zHHMbZ0-8f>XazdRt%RKl*A|qa3fRrQ?uy$5+QUpL)ecvM3xf{O5meF6xSjkNbKUVM zAsNb5M5hII;U5N7U?}v2ArJw&b$y{X^a3T?2X`S6yBHS1 za2N$6U?hx%NEid7O~cBr`fyxd*A@9 zi@}ry`d7aC3eDG`Ualc99RDHES7N>d%?=tSYJnkKtC#y=s|P?Iu7B4$`3=IaZ~?Nx zIrtV1!CDNR;iG4ro(h^Tj}UekzJ?QU48DP*a2(FSX*dNZLCvXWvC=xr^><*U%b1nt zye(Y8y$DlijbQZ4_%DIRO7C(u$p`_hCkyzf`{-EJb?Rf4|KbJvE5g=FX2!49ex8<;2CbzuoqmvhCkr>JHi~> za3v%oN6@u0a59Oix96TUga!}*37{}!h8&O)f*}`Vg-nnE(nC5(3t9rD!TkyMmhOLQ zE>gia2>RB)zWpB;VuBvNF5J_&YiNZS^5dR_Zy_mhlEaty^>KtR;YZ~MeFB}3umlhX zoO4(m?5Z#MV7pxVWOWR!3j7dslIxuO`g83Zu%1I#0loxfqOE2e+}Ln~xUq0`8?+4_ z3%VUC(bPg}DgCpCWRMu**{-Jr!?}nLx<~{GZNDN)PYOvuVY(Jd#A$vfuIy7p(dAd% zsJ2>RI_qyOS#=WS`3DEO1sWpyvxbGWb8w?ajqsQV?^=c`VI}ykFs0|DsavT&@&Tw{ za2@Wszv>_gjOu3g8u?_wuZRk_BmTvoA3YB^oiIE84?!6zPCf{Myr2%68MQY4%ZqP8Ud=I?9>X;Tc94AY(BPK#gV<`QVaz;nJ5FtIBGL0f`*{9-p~`2S$9yg zcLinK89G5nXb9hXB^!rHx)tjd^KJZP%%p?3JFv zq{;8}4P8r@jq(e3E@Y(II}zkp4He$XcAX4l+a{VOd#3`5^J%nj6~M_u;bB&I_}khk za#SPLu7hRtw!}`&R4}I|%2>8a+)2X;bL_hi=2XSnRO$`zIc$P2U>nF@VLL%huj^1yt+h?kW>g0!k0uDxiIU{zaA_yvF`H{0?fxN4U@6H~1BP(K_L0JWt>;bRhCm+!vrof5IQ| z3SNQ_iN3*Am}=~}zUaE{M1lPAOOJ``f*4WIwf?D?!XqHSRnj}2_3y{@Z_DCAT!;@^ z4<@kPgtjZq^OG4k(`K734P05wwFa(}Tfb@OitiVgkfb-y{3D0Y>s?tt@NJqWxNvYj zHWRVUp2n`K{2Xk&CazEYy2dfrn!1v^@{)ZVGogtqFmyy5vLvoMh>~)Bc(BQlZnIFeoA+B4$C=d^eb}t4-#3-@30u~{`d1Uc>923yg z73dc;uF28V72+4fzeCn_*0`o`Q&(HNAR+Ge=iVo-32tV^Y$^BGxMn)8y9gO3AkVD6 zOUn1(T>KaE%p06Pm>N}xXKu-|PCOIX9Ct-LQ?)sz+(Hc1V^O|y)#opLQP2}3k7AHV zL~~b!yABqKusHhA)u2?Cy`fm-BTee@O#D(6PL)pu!f!2Hz0Rn@O~fGN@vml{R3B+YI~%`V%0+>-L9 zPiD1ho1XK+FRyr`^4hJMGnvWM%2n098Vi~}V%WKQS#I_!YvrCVID`o$nHkrLH1=Sj zyPEjp`pcGONcn@Oe4bLIPiFR!hTrOBCShyZvk`NMYSOY>reY=IB`Rd+M(cc-^iEv^;ltcM3BJi_kQU{v&xnl;pvjnnqCYOQJ3U!OsY36m(C>R`4fJ#*eG|jWcOp!L!rw%p& z*xZkqYj^waZ!Pzf#8azQ*tDUny|GAw#mGvyAmv2bJY^`h4&Kl$UMubZEa>48e~c}aaqyX$y}TBa z?YKj}^~+jknBO38$kNoNY9~sz7Yq7Rggf<%vA6RjI_I@GpV~xV5qcL3wOQ9?#kUO| z@L;~z;+36xl|H_eYdyUZ;0<}=HYYmKRo`DLyWaoMGIraAzQ1+fe@E_hf9RwP zAAP$&i(MJ2@5FH2k=ac1?%tSA3Vycku0_GreLl~UGWodKt=5ndPhLHDoD`e_+Sewy zhpW2ZhU{i=4<@J&bDEPqNxnkP={TXab6PX`{iO>+*IX{1(vLwH;%Ulegs1^_XWXBs z((vIUydnK^n(9hoN>1~r7w%t^RDrMcjUq=ki=Eq~RWw^SHG9#1(b71Q+bqDw{ofa& z0`;0es!pYg^d{9z!6sk|Vv%6ewKvIC54PsEcn_M@8Bi>~o)?;CX}jjZCcW-k_h7RJ zOTUr9rm14i2{tDVbCcutaiwwxe`qy*qYl2ALPCZ%C%XNRE&rh@*#~o{6n=S4zzD7r z<~0-g&@D3OHO0qpT{5q^BD>0Y&4P)z)~)h(n{pwhc{l}aLNC`05L)5)#phq7o8!%? zdx+ULh?tH$EZ_7YTsnFs>A8BKp70J*n_psl+zk+mK|%ezgVl>2m{ab#`HM?SHNnn{DBWR<;``EoFYb_!phn8~H0 zRWD|`4#RbFXj9CjA5EnO6tmVw&kk*=(ILZYO}KVvwaf4ioy@7`oMPss^02yZ5bqSq z6A`6Ib{j7kO&itr7cU z4jq#*+5OqxTlR>M^rU^ZbgRex2h8s54M|wuR2@al@|Cx`)P^FN_NF>{p{>`VW_c5V zMQArHc(g_=`s#VcS=~#2=(TwNNQycD{=<#`?@g^v5Us!ZIYaTUox-xUyPgviy(G>| z;XH(#4(@a)M|a}e$=NfhyHh1=o&GxV%~un4_I&1Tm~oX%!m%{nVk|V4;>K*dw#L1e z`@9x=3DHXW!^jo;=PW5^ydh^Qnc#YCBCL+Y3N5dhG?tt0%-_-VMU_piag678gnOQ} z@6bsvcP!6ZCVHUL0(NgUEyug^y927Sgrcm)a`pLY@vEJuDXTp^oQ85b|LCgbrv{Y$ zKQGCgrwQ86N(yhqeRoSJ#S5xH`XXwx#l zH)9>^6v3RF88ew_I?a{duWeluF^z1t)itxG(V7SAn!9pS)-$1>xpKHp)?)!}s$`1! z&|Rp$we_C-VWaU`HWw?L%r`TNX2UY|P3P$nuh(X32SW zaraXlHZ|tPvpUxi$*l(FG0{SwHLw=6VcUzY$RD%QkJ=Bid}oUsyP*|wXL`?H7M6In z(;Jeip($>No6EKct$J+B!YN<$_gWMuM1{*!dRDWoF%$WDLuxfNj+^`oCMwjVz$(rb~Tk(s2_b6}yh z^}N)1cAUA_s*%^C1R>hh*DiiCr#nsJ<=&8w8=3DFw}Wl5x_nrZ?j^F$@mdVALpnBJ z^yb{;?WMdSrjf}tlUv-jg(*LiW56CQta)ZNr(1VC@svB`#Jxj^PE$V59HU8|yCaf%Lt?fxFNy2U z+>+0au^2n?)ts#v6W{k*RA_1P%p&#nSSa-$OJ$DzTbZ(7dMzRe(F3+%*0qH~{ybUU z8?vIM8LYU+?6`Hm-@9lTqE-cg$>#m=F zDp$a@yPiShS&?+3R65m5^TG9u`{I1CosfdoS+zYwxTkfnHbAv9eLbaG+a9U0C~VEV z*1>{zR@2x!{o(68% z-CR*_ov_f!qhJ37TgH44&SRsbUYjG&!Er&K;^ZJ?%3tVkO`}Maf zd}za@NtZ`HitQ=tBh`^kKP5VUzo*8K7aUD8ruyuDv z#mYXf+Tu;lA$MWE6GKQMiu6&sicR}Zsa(ZVq!4Aqe3bqhjy7T}rnkC=n)HiFIMGm3 zWHAW`4mF*1ZQmGohN0FjV}Fv5err~B%2ASG=23g+7;1K5=`LVfe0=7oO#QnAG{nLl zD}9HW$97u9mtgt+aYt?*i#Ci*eG>7iqwj{UAC$f1$<1?fIo^&R$?R@U$XRhf(!a|;I`|5ny5_q%ZZ9T)aMr5c7==?X%a4_ zAs39a9s$J;#m-hI_Sc)eyQwXNXselKa^=pg7EJBq4WWljBCeBDOr>XQ?sw+ssfpeE z`f%WT#kPmF30USz689BffYxm8H`?S{Mm5uqwr0qt7as>#Uyy3FRqz62RCKgyE{l3t z=veUgsuO?Cdn=N z<*u@RjmDTFSz{J?M~=}`vE!O!D_o&(%^f2j08ZohTo%u8ub7=7~5N-CFeyj8h!2V1o|p7m*WQqd`Xp~}l z!I;UlsQo;J>ALFeeO811Il(->#RogAw~|aWC0DyrnEu&gy4{;6T79K?rB?Ai82z#O zFQ05FRpyXAr(7x0=J#nn$y$b7e|>yiw)_cZU}G=ttfT_{Y}*)&F}s27+7~M5^ZpLe zaI!VEbs0Rh+{NWNj(gkX?bPPIPgak3_nq@vc^iGq6l+y^$er}{+!x4a}Lin)e@k z)S|_akm_+fjl$=7g?!f97Fz?qx^nX5>sy3q!pvL9XU9}Ca4k2=Sv5z`KfpKBG;8wu z+wBVUvxkp9QM8AKx3XJ|Rm?2wEB&@;cv&4n>MrKv+Y-h^tfTjw#zMtSy4xpsMBDv( zuyL1VVI8mA$0f;K`T5$dF?ZKdO#9;v_n*WKAnvcVgR&(Wef$7%^-yGDjyJ>9T(5ps z!?a&djI=Y%JYBOT9;hv|eO_YjuV>2=GQ*_bKwya(rpN}2tU@(f zeDle~G*7a6E#H68Ic%nByop?<5m(Ex>H{K2x)$%%3}zo#&YNi_Vd2+%mI>JYkCsk_ z?X91+NsYeyx2xrx?f=6kD$Y9ax7pUcYBDBe+;x}d>2m|!XBxoSQ&yW}UVcu|n$58W zNR@(X7itprN3(W#7-qz#4Jt=VNY2SYL?nPF|ZIR|ly`-tq>)R-HmvT}(vdHY&%6jYy zmT@TU%RlZ1cYd9wsMpeID`!;F)+M(Q%7A0T!jd%ssNf2U~`FE$lQ*t{r^PRiTD86xW=o8T-4& z_iJHhujP&`Gbe6vXU;D(19y<%`)4udl*T^#O2_WwJ)h_jVt)- zlcQD65I@TeGRJqig8cken!7uh{0h}KZhh>#YNZL?#XQG#*T$~Eph2sweh{Zi(L?uZ z&D!bbJD6`Jv3oIz$HWXWU+iL~;e2Fle^l&OWVK1Zn;Mo~ZEZA?c0PLY?$pd$T5Cj8 zXzRNh&R0F0Pubixh>(~zp1ZNpyzFyoydi?!>71sZ8ksq2PJ+>_WlzU^74Y1dCkU~= zRT1L1YPA`+hq^eYSgaQp9OT+rH#*@?pU=O>?2~=*HRjSD+M@OvlW;HBpRO^Dk5P{i zYph}o9`*d&rB746_7=1-~( zxcxGNH;wNI(d1n?RrU6#5@*wX#-8`SUt_)}?mv9CV14wSjCFG!AFI`qn^OCDeBE7R zn(rg(`#(IlI@#OLPu;iIT2o4;RF89C>79Zb?G)qbTJv%r&C+(A$+MrTbXjMehPX1C z_>~`|)mFeR@MJA$M!Irdi~sadfphoF z>;23H&cVEMzFcm-seXW47VR-?H-mFJ>G$<|b5dqbPl)=k`-k2aEmh|m3QoVWPyM4M zZWYw-Lw<)gn1Dm%?5rRDL&2kD;n`_=D*a!^jb3THvQ~NiT{+CELu{!UY_h)3;H(C= zY%> z(Vm9xpv~4}EY5=7o!`tE`j~dM*HX^M6m|vOow3w>%&%`J(hG&3cEkERV_q_9#FTg*7`c^VHzzY_)tMlv;srToNpv3D^gOLHvZjE+Cl>UJ zTQ^=+PeD9)^WH8K|1{aW!9s^XtHSzp$oTBb@4Xf&cAJt|gg)aCMg_@RVoBzK!xE>W zsH|v%^M?3j-EHl0+t=H$<=h4hwbo8x0;b$rkWi9d&rVSB*u3 z-6nkqg>JvwT#;o2mOAYj-E?8zhdbiM@>{$XX9&^r zt@PXy#m8-Io{4g>!&Y-YBA4@=2=+ch_j|tEJXV&r=(l{2S$Bzc{CtnOMh1Q-_L%0E zI7|w0qWP8HXM(>YBs=0g%6bQjg4X8B$%0j%C(~pm&pB5NznA;WiL>Nml`OfbaMo4Ougn1xff#z| zfYq5Umr4C9Vet=#`1#sL&7@(~d&+?W7n9dae9_OB-8_MOUH`8MrlU`uJ!q{Mzo_+}mP%n`yy$ zS90^_oXh2YNlR!Ewd=Ej<&Fn@FzRo2#_!P~Q~e5U_Ue#z9{6PC-C6;47HO-c%FCn~Z;z8lPP3+vEhg-`Ovy^xx8SV)*SkY{p%nG~be<9-Z}*oGIW} zxCaw86N=}b65Kp&_F>_43BOWD%&!+{rFS%Mh;{7dZBeJ8yIyp~a6h8cs%etH*;{^N zy9;z@&z!}b8ug8tbdf^L`NsN~soQq}4`ZivRkke(`S_6O_gE-%xuMgJT07H#+DEcw z>9S;{$I>$ZRuSSRml1WIm-DSuyfh)K^rH+7_vgo~Rm8;)<6gQ{ecd-$ghnm6x2n;` zjr*P5ub@7vb*db~1T>wy>)d6ho!!45x2C`1gKstJbz?JC<1wh1P6Rst;LAjGZoZTE zp#$a^`ak4t<@kh$+=do zs0s5OBhu3(f1hWgmB-!iq&2V9xH$LN#C6;5dTy2HbB$?zN6p?0Wa1MOz>l+j9!Z;grp&Eu@pDQ1t!lHK#2XEPI%hH|ACTaJZ(LWHa@*PZ2gaS zJA306Ic-W}5n2-ql|5$929vAhI(yBw;C6)(qCq=g(B*GGP4@LFZ^)q2W&&~jrkyq` ze&8#^YfhVhYYf_L#0Vh9;oI>Fl>B_z6Jiu%nCInRhMhJ|uaVm+Ec9Vh$rZtQXFpkx z2Mcbe=8$WI=tIJFZA`*f<4P{ZfZX|smZQ}vE=(=nByPvL}Icg!sdhYghhn>70*;N0;$6iFNI%8g6r#kirX*#TTJ_Y#V zjH$|LhWqbp6Xz^;&lwY;^A39z;XXn(sz;tK-_D$za!>)X$*W~d9v}N;B=kHMY9)8R zB!x1c%rqAZ`|*0mu1}2@2RHAE(Q+0cT1C-*9DBHL((@LcF*R>;ZV~&enRk<1-Dk}< zuHEgacd6lxa-Qs&-I;ldkOG!PxJkcl)L^_ljIKN&hfozeuqP`$KPA? z@S!PIxgLKxsOy~b$Id8C?Gp0%Z2iHkyF-oQUo%Zd^G|GMT(c&Od8?*8NRj+B-)HxH zi;5a7y=Gow8TyX3ti3|5c-^|E&;JMMRO48WvvuRF zX1lv$Ormq=Vs`cOEq%+X;`m!;jxu|8)7&R5bM2lhwsYZ5b=#VeTDR!gCU@J;J&H}4 zQ1(@+J+A_M3*I()?z;jr9l#FRF2B`Mzxod=E_)H5=Y*)+%uCquRAl9yQ@p7rx@)ee=63V= zWxZe*PD&X}6;L{jKNJ&$&-_4(^Bdtn;|by%v{!bGQH})2d%S+U))_H4t-k!_>^xsR9~wI|vy0a7+_LCPtz^EbZkv6-x&q@m6NsIL3Ha5OD%pF@ zV>{*^yNbS#tihjl=9O!GcP78*na(`VkGOV7-Mmvbp1X8-rl%;LqoVhw{kAAfbT@u= zg}lEMZ!Hu2Y%2fuPRrCk|FwEf2m0%6&Jo*bY)^em$TMa@=9}uzXx&|ROxNeQ%pviU z(#j_vn}ArjH}069;^IEPV@}GBdE#UM*WAxMez=UINeOU&d~A+!?QY5}kbzlX(UR6( z5AE!mMB_*gVSX9mu369w%V<3ylj{lpG@lrM?*UE-W3=Wg@^<=`qes7X>fn^gDWe_# zonxF){*E#3qJxJLR;}^E=aL>Oj<`-YdtW>L`=UJg-Hdy~ zdXVP`Whi_UO>1|(UlpcOzipQq}-aBf|FgIS9n#?%=Fq4$NYu5P^lQqgb%}vf6 z7JbfgO7DzGr;|7{kzMIOUzoIsNyeVS{G27(w|A!NdGqh<{+=gOC_lPoJ-amjCb#}+ zi1SplpK|}jV<38GaoW$Rty9Zr<$l{O-+#}dryTv-$tl{{bDHBa86udIF9uG~*ch0Z<5$k9Op+beBdJkMOG694nO z|L@0Mv>V_aORaRYxi5zAp=-U`UhvKb|F63%52&iz`uARSLuiVMdN21V;E+8*MTRS= zDUfC;lOQTk3Zx=~il88lNNUc3sY`{Zr?0du9P&kjscF4Tu~JLROl@+=BD1pb>HF=o z&*sAAT(j5v=llLT_uReK+Vfg#?=>7bHFDkl<*AXYs&OY(k)iPyIo^##$X_4bzrLKM z*5xpYb=sM1OqZs*J0xr1;fg|+ct zDB)Mra|3#L9cbI6GfKE=2W%ae!Id4LXW-KHr4B5Bukf$=^Q4iy&CJ}2po=L z2bJWtr{XLYC$!GeCVEci?`EEjVsRw3M&TJEnnnvR;w_Mn-b<H_V= z9o%Edt4|*{7b4u%xC+LaQW)o^vt}hTGwvJ?YQHS zq#z8qg&Krw>w&&68Q0X-1fSUxq<}-{r4tY|kWS!@a2BO}F-DC0*|Yl|-xly%s7eFg7y*XsW5_Q8 zH1twHAm{-QNCA-w2;CGA0z!ArR9vKhsN%SKDIf%{?wqN(%aZ7K-ZH%u5CRt|ApGwI zb-ff20z!ArRO(0pF^}WwrGOB)x^t%D_DH50;3|44AOvn=^18twu9pEq0O(GcN*q%b zGZ>6qQ|PNV4rU?7M(VtyLlSamst!qJ>USS2kzPsQ#Ha3K<EVG>RB#AiuQ=Bf4`TsF#D$a~HW`Yo9~~XW ze7*V)GOAv#jqg;|5(>vX?;X;LcsB(PXTEL&!i=gb;rn5fH5{U?I~^O2F|g4UJgmA0 zA?&#JI5-N(>{pP_-#VE3BCie3f?&4m>iAXY@PDC^#7;;`0x%fS5?7NsM8 zR=O!h(D%_ST1;!8l7NqbwLxpn9i5hP_4BQVn&Kui5UGQZIe!S1#$dW;0fPG@q&973 z>bTw;`9vf{8A>>dN^G}$*WyL~A@-6jL+C7Ul|357!E*P^-U|r1SS0T8A=D-oLo@S! zx{p66MUsCUdN@6D-3UAuL{e2O2&{?}%guA4N6KBZp0}EeIL#ta1(G~O(r2-(hiNww zOvN#8Cj?BJhtWLHRbIhI&@5={mDvw${_*c0!saOnoft+Hyvpx}Q4Mc_eoG`FXT_3= z6Kt(p4SVN=7M9r)@yue2jTTM5*tMYjPwA)mZm{ut0er3jC9Tn!+5h-HG^lOT8)}K_ zgkFTSP4SqtWq@!8#No1EJ5;B~&r>0AG2(C7h!XDF{YznZPHkafSCl}3;v4jz(KH|d zL-iIQxEs>3u;0dB88P4_ARw-hH^lIMH01&!_*1R^tAlcfSvIAY+99r?giGsJ^OBy6 zTlG}5y`&kvmVmv}Hb$(sCLurfs*2t4jvb&IeFp$zUur&*S(G7w<99K=`fvZKf8Px5 zIl%8r;2<+HhQdaoi;b`HR89mvay)R`0k^Da#a+tI9?2@M>H*jVzC#?h-*F*aTa8?G z_x)8H#UQ9mstCCJ4m|VoZ;QLuzG_f$)s(|)W9STUmASy>`(dcd$cQ(4D0VCt0Gm5!MRb!Tgmimau{U@mDVwePhvsJ zr8qGgJ*!IY^yz=Vi_av&4shWooHIOF5Cq$`INFoMdbqib5EpoG2DzGqcEcUgEg1r* zBb7}B&tDcz?sM=rcA)=*%nW(CJQ?eFP`o&H1%+P^jXFXTv>68jONgia$w0`6r?FG< zlH~r>-`dKE1ksK+TWp`vx$;$MI_0xo+jtvz+p07;l}^1j^Fbhw2Qe4Af1<{DXqzoT z8<%hM@nN;MCdRvqoq%yE(wNJ#pN4oeIpzC^y#%$^0JqK$Mze8BW0AZyk2_8=@H?%`~##PADn2>I1!(%FNBG@s-dH zsv>mD-PbXV`IsOB!qPAa509Z64`H2mqjTvjka9DaCwTYkX)Lh8!(#m>=96m}6PGVM zS<*LpJC8C_rHMhHnocB9@3)gmPo_C& zjgIV+m1*s^O$7}u-QxQsPCs~}D9lb{j#kob@;UQ6U7kP|E{QAqs`k&KECnE!O;@^l zTuB`{1_Dw7u1}_@@o2_YKydMUtYUkI$9k^wvqO9uO~rr+ehCmD{s==Ir1 z0of{xH8c9q&O-17a8Um&kaOg2Dv}x~qRXwh)@2w#bF-iirj8Vg>Iv7A?(MF+ zfZ`(+sT7lqHM2F9CS|k1U0wqu*P$9qVOi3Z-pyv^#vYWNgGJeu7Uf{;+vw#S7HxVy zom?lgjY`)vAz{CII%x5~Tp#5TI9kIFkEgwpQQwvE^xreKyVv~mihW*2U<%+Z)CyA9W&t2qs9yYA)0EDqmtRpkBsAd+F+0y# z)_gK+RLBsN@K8#OmL_nmjv@#UHsN=riS&8`tiB|+^`0d5Zu~~?RcBsX6`)qCYLB^? zB7U}e_u|X1pB*|&QA)RD68AcVod>nx=5;a zZ%x|}*Ut{14P9;)?a9ZOF9IOf*nXY3H)X(eyE- zVYGZY4nv;Vg7}r7(ODC}pHT?_aALk4d(l1s*zVN;Dz?S@T}pUql%2w8l<>}%9AZ&R zPTVopUXqhdEwR$-^vPSyE?<%QY(?cr?eU>;Zt(qK&9!4ox9;qMI`}q(o+PJRcfG6I zPiJj8E@M?)mdm#yhpGz1n&Yi%w07m1m1|Vemzt~gzfr6W$#qd$Q&^9xq$0;eQjz~l z>T>5hP?wuf(PjPWn2G+Vd*<88)TyXm<&v0VWrb7d$y>o`jZre7GIP7{krr!L>|Ac< z#}yt|irtB3513U~Q#+Vl4NYk3ENmv(L5I4vVX9jrvcIDBW>e`@3Y%R=u)#TD75=yC zHbs?HV*E96r>4Y{w6z10(lJ-aps!2Qi??s?vc|ruL}S&jh{=Y?v64@1f^IPZvZu1= z4%OFnSz7{fB!DJYih9~|sL&Wr|DIcKJY})0O)i|br%~~|dIKlRCA?Ov;#~H~_R0~6 z&ZD^bx1cCT@A6#plRSuC+pKaVWE*6gG)#vrqXWIC7#c)nK3y$FJD$y_ z73DbMAvUXxQl0NiOQ_DLxCN}A(S?>Tz_@AHMt9n`fcZMb^DqLBl`wB>?hL_u4oykk z5PP)yEOZB)hqFfYg4fq=HUM~Fa6$q3J&bn2@?2Vi=fVPdwgm0{rGU=j-DskHtDv8> zq}C6k9U8Q?W1(R9pDy`$`p%fct{{&?H0NzL8m9sl(u!3emsd#s3(?)@9%gO4Rs*Xw z>dY<>*b_e*v@5Y^$d~TM%_uQb>`LglCYpu{O$iMN7(FTFQQRy`62&uV9_ZTi8^Yyb zcb?nf(pBW>O7sO?zk3g@r7@_6{KV2`fJ;J2Ca%l0_<{%8kyW zgbz}`KEp?PE;z@7Ci$YkDBhS!F^eD@Kc6Ga!TbEmPxntW^N@IWJn{Q{kwB$gQ@BL8 zq4Gu0>RNt6UoFDW;&P?aVsL@3MdCPCzM<>h=*PBj1(+wD2Sf6w5sO)dNhCZl8}FqP zi=k2@U9IaQz)vWm0sJ|(h;ko6KXQs_8GnblGHwN?Ow5&12J&3D^DY>+BhOgvW zR-ed7x`V%WSxJYN;j&PSZ@W(Dj80AoEpv#GhA(IDnhq@_Wrcl^ZK*h)a`h_q`D2CO zoU-sJWlc3tUnEY*+kD1s`gPGwemSaflBtWR5)-8S8xUO0z0$(l(!8V_SAfx8-r}DZ z)A4$>pr2kVakjel2t}=ABNg4uC#ne3LWJdZZMcc7{#XjUu@|d~%0_=S4Y4MuP*vsy zpw-cP&D}Wg9(V$xNew6kX!Io?5WCW%?OCN*+b;Qg61P>ET78FVf=~_mrLh5R7n@cW z(vnA6fZMUlk z5xyw=Q-#hyMEK%jssgNS* z#KPsjZ88nD%%e-!*0MN$hXk{&nI2fjf|{gj&a%ct+P02mSkp<|c*G9Azf*bh$2N54 zwknm+qCwl3<8A4<(gBU_1FxtG@L&k zqzUU`8TZ>Dq+#vpRTp+t-{9`CoJV2(zd|o?08_azZ0yT8UH+FhM)0 zZJ_#8Ijr=vo)CRYiJY7MO;j1KAJx90_dX@`LpdupX3~rb7VUPvoZ(s=sYo8DnhF*{ z?vFG7`9HdfqyY;aIOS!`Nc(#W*-bHPl?SxjCZcijoy{; z!;G2Trd)koOwQmzm=JvN^kyad+Li8jmU+8PFUp;e|4?3L?sR(n8FufM)Mr^t^Dy<_ z-czQIpHQ9pGxJYq77ze?7aiEj?r+Mool>6-E}hB$8OCV)R@S1rbhu0QXjg%iK7&5} zkSWyr8RkMhTUi>VzviOU0h{T?jxJWJ-O6TA@m`mv_;#%eqnKw|o9Z7oxwPs_*Z#?@ z)hAB71dhP>30&OByve0Kz2C~kTTo2g(), + commit: varchar('commit', { length: 8 }).notNull(), + parent: varchar('parent', { length: 8 }), + subject: text('subject').notNull(), + author: json('author').$type<{ + name: string + email: string + date: string + }>(), + commiter: json('comitter').$type<{ + name: string + email: string + date: string + }>(), + body: text('body'), - message: text('message').notNull(), }, (table) => ({ - unique: uniqueIndex('unique').on(table.changelogId, table.shortHash), + unique: uniqueIndex('unique').on(table.changelogId, table.commit), }), ) diff --git a/packages/schema/src/commit/base.ts b/packages/schema/src/commit/base.ts new file mode 100644 index 0000000..ab11b9b --- /dev/null +++ b/packages/schema/src/commit/base.ts @@ -0,0 +1,30 @@ +import { z } from '@hono/zod-openapi' + +export const CommitOutput = z + .object({ + id: z.string().uuid().openapi({ + example: '9f00f912-f687-42ef-84d7-efde48ca11ef', + }), + changelogId: z.string().uuid().openapi({ + example: '8f00f912-f687-42ef-84d7-efde48ca11ef', + }), + commit: z.string().openapi({ + example: 'abc123', + }), + parent: z.string().optional().openapi({ + example: 'abc122', + }), + subject: z.string(), + author: z.object({ + name: z.string(), + email: z.string().email(), + date: z.string(), + }), + commiter: z.object({ + name: z.string(), + email: z.string().email(), + date: z.string(), + }), + body: z.string().optional(), + }) + .openapi('Commit') diff --git a/packages/schema/src/commit/byId.ts b/packages/schema/src/commit/byId.ts new file mode 100644 index 0000000..3a35343 --- /dev/null +++ b/packages/schema/src/commit/byId.ts @@ -0,0 +1,14 @@ +import { z } from '@hono/zod-openapi' + +export const VersionByIdParams = z.object({ + id: z + .string() + .uuid() + .openapi({ + param: { + name: 'id', + in: 'path', + }, + example: 'a5ed5965-0506-44e6-aaec-0465ff9fe092', + }), +}) diff --git a/packages/schema/src/commit/create.ts b/packages/schema/src/commit/create.ts new file mode 100644 index 0000000..e7dfe1c --- /dev/null +++ b/packages/schema/src/commit/create.ts @@ -0,0 +1,34 @@ +import { z } from '@hono/zod-openapi' +import { CommitOutput } from './base' + +export const CommitCreateOutput = CommitOutput +export const CommitCreateInput = z + .array( + z.object({ + changelogId: z.string().uuid().openapi({ + example: '8f00f912-f687-42ef-84d7-efde48ca11ef', + }), + commit: z.string().openapi({ + example: 'abc123', + }), + parent: z.string().optional().openapi({ + example: 'abc122', + }), + subject: z.string(), + author: z.object({ + name: z.string(), + email: z.string().email(), + date: z.string(), + }), + commiter: z.object({ + name: z.string(), + email: z.string().email(), + date: z.string(), + }), + body: z.string().optional(), + }), + ) + + .openapi({ + required: ['changelogId', 'version', 'markdown', 'releasedAt'], + }) diff --git a/packages/schema/src/commit/index.ts b/packages/schema/src/commit/index.ts new file mode 100644 index 0000000..8089b9b --- /dev/null +++ b/packages/schema/src/commit/index.ts @@ -0,0 +1,5 @@ +export * from './base' +//export * from './byId' +export * from './create' +//export * from './list' +//export * from './update' diff --git a/packages/schema/src/commit/list.ts b/packages/schema/src/commit/list.ts new file mode 100644 index 0000000..e552c20 --- /dev/null +++ b/packages/schema/src/commit/list.ts @@ -0,0 +1,4 @@ +import { z } from '@hono/zod-openapi' +import { VersionOutput } from './base' + +export const VersionListOutput = z.array(VersionOutput) diff --git a/packages/schema/src/commit/update.ts b/packages/schema/src/commit/update.ts new file mode 100644 index 0000000..05652fe --- /dev/null +++ b/packages/schema/src/commit/update.ts @@ -0,0 +1,21 @@ +import { z } from '@hono/zod-openapi' +import { VersionOutput } from './base' + +export const VersionUpdateOutput = VersionOutput +export const VersionUpdateInput = z + .object({ + markdown: z.string().optional(), + status: z + .enum(['draft', 'review', 'published']) + .default('draft') + .optional(), + releasedAt: z.date().or(z.string()).optional().nullable(), + }) + .openapi({}) +export const VersionUpdateParams = z + .object({ + id: z.string().uuid(), + }) + .openapi({ + required: ['id'], + }) diff --git a/packages/schema/src/index.ts b/packages/schema/src/index.ts index ceae388..dcd806b 100644 --- a/packages/schema/src/index.ts +++ b/packages/schema/src/index.ts @@ -3,3 +3,4 @@ export * from './user' export * from './changelog' export * from './version' export * from './page' +export * from './commit'