selected day : {currentDate}
+{item.text}
; + } + })} +From caa60cb35e0b3ccc24d9bc3523d7adb38d762793 Mon Sep 17 00:00:00 2001 From: Choco Ham <77619465+banma1234@users.noreply.github.com> Date: Tue, 5 Sep 2023 19:30:52 +0900 Subject: [PATCH] Add nextjs-scheduler example (#637) --- examples/nextjs-scheduler/.env | 2 + examples/nextjs-scheduler/.env.production | 2 + examples/nextjs-scheduler/.eslintrc.js | 10 + examples/nextjs-scheduler/.gitignore | 35 + examples/nextjs-scheduler/README.md | 29 + examples/nextjs-scheduler/app/Scheduler.tsx | 89 ++ examples/nextjs-scheduler/app/favicon.ico | Bin 0 -> 16958 bytes examples/nextjs-scheduler/app/layout.tsx | 25 + examples/nextjs-scheduler/app/not-found.tsx | 6 + examples/nextjs-scheduler/app/page.tsx | 150 +++ .../nextjs-scheduler/app/styles/calendar.css | 150 +++ .../nextjs-scheduler/app/styles/globals.css | 39 + .../app/styles/page.module.css | 20 + .../nextjs-scheduler/app/utils/handlePeers.ts | 42 + .../nextjs-scheduler/app/utils/parseDate.ts | 12 + examples/nextjs-scheduler/app/utils/types.ts | 22 + examples/nextjs-scheduler/next.config.js | 4 + examples/nextjs-scheduler/package-lock.json | 977 ++++++++++++++++++ examples/nextjs-scheduler/package.json | 24 + examples/nextjs-scheduler/thumbnail.jpg | Bin 0 -> 50918 bytes examples/nextjs-scheduler/tsconfig.json | 41 + package-lock.json | 718 ++++++++++++- 22 files changed, 2379 insertions(+), 18 deletions(-) create mode 100644 examples/nextjs-scheduler/.env create mode 100644 examples/nextjs-scheduler/.env.production create mode 100644 examples/nextjs-scheduler/.eslintrc.js create mode 100644 examples/nextjs-scheduler/.gitignore create mode 100644 examples/nextjs-scheduler/README.md create mode 100644 examples/nextjs-scheduler/app/Scheduler.tsx create mode 100644 examples/nextjs-scheduler/app/favicon.ico create mode 100644 examples/nextjs-scheduler/app/layout.tsx create mode 100644 examples/nextjs-scheduler/app/not-found.tsx create mode 100644 examples/nextjs-scheduler/app/page.tsx create mode 100644 examples/nextjs-scheduler/app/styles/calendar.css create mode 100644 examples/nextjs-scheduler/app/styles/globals.css create mode 100644 examples/nextjs-scheduler/app/styles/page.module.css create mode 100644 examples/nextjs-scheduler/app/utils/handlePeers.ts create mode 100644 examples/nextjs-scheduler/app/utils/parseDate.ts create mode 100644 examples/nextjs-scheduler/app/utils/types.ts create mode 100644 examples/nextjs-scheduler/next.config.js create mode 100644 examples/nextjs-scheduler/package-lock.json create mode 100644 examples/nextjs-scheduler/package.json create mode 100644 examples/nextjs-scheduler/thumbnail.jpg create mode 100644 examples/nextjs-scheduler/tsconfig.json diff --git a/examples/nextjs-scheduler/.env b/examples/nextjs-scheduler/.env new file mode 100644 index 000000000..7a8fa0d88 --- /dev/null +++ b/examples/nextjs-scheduler/.env @@ -0,0 +1,2 @@ +NEXT_PUBLIC_YORKIE_API_ADDR='http://localhost:8080' +NEXT_PUBLIC_YORKIE_API_KEY='' diff --git a/examples/nextjs-scheduler/.env.production b/examples/nextjs-scheduler/.env.production new file mode 100644 index 000000000..c4937952c --- /dev/null +++ b/examples/nextjs-scheduler/.env.production @@ -0,0 +1,2 @@ +NEXT_PUBLIC_YORKIE_API_ADDR='https://api.yorkie.dev' +NEXT_PUBLIC_YORKIE_API_KEY='cedaovjuioqlk4pjqn6g' diff --git a/examples/nextjs-scheduler/.eslintrc.js b/examples/nextjs-scheduler/.eslintrc.js new file mode 100644 index 000000000..6b8ce4129 --- /dev/null +++ b/examples/nextjs-scheduler/.eslintrc.js @@ -0,0 +1,10 @@ +module.exports = { + rules: { + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], + }, +}; diff --git a/examples/nextjs-scheduler/.gitignore b/examples/nextjs-scheduler/.gitignore new file mode 100644 index 000000000..8f322f0d8 --- /dev/null +++ b/examples/nextjs-scheduler/.gitignore @@ -0,0 +1,35 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/examples/nextjs-scheduler/README.md b/examples/nextjs-scheduler/README.md new file mode 100644 index 000000000..93a7354f6 --- /dev/null +++ b/examples/nextjs-scheduler/README.md @@ -0,0 +1,29 @@ +# Yorkie Next.js react-calendar Example + +
+ + + +
+ + + +## How to run demo + +At project root, run below command to start Yorkie server and Envoy proxy. + +```bash +$ docker-compose up -f docker/docker-compose.yml up --build -d +``` + +Then install dependencies and run the demo. + +```bash +$ npm install +``` + +Now you can run the demo. + +```bash +$ npm run dev +``` diff --git a/examples/nextjs-scheduler/app/Scheduler.tsx b/examples/nextjs-scheduler/app/Scheduler.tsx new file mode 100644 index 000000000..74a16054c --- /dev/null +++ b/examples/nextjs-scheduler/app/Scheduler.tsx @@ -0,0 +1,89 @@ +'use client'; + +import React, { useState } from 'react'; +import './styles/calendar.css'; +import styles from './styles/page.module.css'; + +import { EditorPropsTypes, CalendarValue } from './utils/types'; +import { parseDate } from './utils/parseDate'; +import Calendar from 'react-calendar'; + +/** + * handle calendar component + */ +export default function Scheduler(props: EditorPropsTypes) { + const { content, actions } = props; + const [date, onChange] = useStateselected day : {currentDate}
+{item.text}
; + } + })} +FY87=MDX?=++W=fqOiv@>HySzA9hG0(R!&kBb^NdwTU<@Zq!Y+w6vUHC zGCYI(v=3yVgNV`{W=sr+5{PYVg6G~|NN9GbMg(hL6J;|B{Jl1=>F+>xeH&E=fN|90P|sI27&c0@NU}!JNt4n zCyKg&^T4sxx=4%-YrQ9(1=ikq+BO55S!>NiCv%SHd0phge=pk4VqOhsw~IM%?JuF3 z Ub#bwP z^D yX(Hb>>_U`GB!8v# U8^j;%9v|56FgKkEp7>3YZ}8-lEBLacF^ z--d;@r}>?=Enhoq#KK4hQHuqEtv4F^&`$m$7SQHP7q+b&CmD~@My{WV_p^T&>+ZQA za-yTaeTrP^x`lMWG5EHTO9v-m66==(k0EW@VC1 #Tfd%>m EYLq?r 6*TG$86C$%b%pE1ayU9MiR7LA!wQr#P)q#(I&1Blg1+uohX{RDnP1 zMYxAVouHn}y~+glYXjmt3){dXTBya1%=P}84j^G|K_r%esN<;nyOuQP=ktMx1<}+! zp)SRUC*e)Z2R9xl*M`hpZliAD8ZM^>xYmx-59f(}CVR2E{9XJ$r5q3V9S!%ag ^_Js&UHvD38XWO_erI#BHhpOMU**_Yh<^_lY-ZiK<6dv&~eK_IHuOhPR>#C zH@-h2f9|I)5C3M?CGH;=aJj1)si+Jkl|mw^G*I*Zs#y24d_XQRqIq^YbjTA|j z>jFta+apII(H5?`YCrx$XUvP6xR2xPJpm<|LZ-uxM5-H#qJVWvl;gDcJU?rU&+4~w zK1ha*nxY#~JJ-{}1oPp4v59j*qHQ+rX)H Svf3~^Q`L`SKbSSl}{T!h|mX47k!Y1>lcS$rfnwf zGuauF?L(Xs R`= zOw7-7A$-Gb%#U3NT~B;{H{|PgBH8JK;<9ob8%H$BHEKdJz&$MYa&Z^>5^JQcu+r}5 zzG;AYF%aTjVjzyN$%-!5X091`!h79rc&^z6?=`o &;-<<}>|BhPg{*3+^2SO2Lzt}$&d&sB3eS=^yhLE!rVabWGL%@ZwlkGeR zQA3p?98(USVc!g`*6j1R@)Mc*s}vE&@QRU0?Wh^gd3+gBQad7CV? VC#xE%baVqe(fQQ-Afj;iq&b1|;8&<76@qW(Qu zWxUPx)T44zu?4xl65PceS*7?m{Ec6oWBqSg>l&zQpss {fV~?3wZV*5*LmEJ zhLX1jE7*>$WjlfuV{7}-ID*ELtHc{tjqqUAm}pOeeXs3b!M75;Jq>)*%I#hqdjXCA z8li_z+1sG&{0 Q{tx{Up{4); literal 0 HcmV?d00001 diff --git a/examples/nextjs-scheduler/app/layout.tsx b/examples/nextjs-scheduler/app/layout.tsx new file mode 100644 index 000000000..e952a05d7 --- /dev/null +++ b/examples/nextjs-scheduler/app/layout.tsx @@ -0,0 +1,25 @@ +import './styles/globals.css'; +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Next.js react-calendar example', + description: 'example of yorkie-js-sdk with next.js & react-calendar', + icons: { + icon: './favicon.ico', + }, +}; + +/** + * default root layout of service + */ +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + return ( + + {children} + + ); +} diff --git a/examples/nextjs-scheduler/app/not-found.tsx b/examples/nextjs-scheduler/app/not-found.tsx new file mode 100644 index 000000000..7f6ab7518 --- /dev/null +++ b/examples/nextjs-scheduler/app/not-found.tsx @@ -0,0 +1,6 @@ +/** + * 404-not found + */ +export default function notFound() { + return 404 not found
; +} diff --git a/examples/nextjs-scheduler/app/page.tsx b/examples/nextjs-scheduler/app/page.tsx new file mode 100644 index 000000000..f0a4aa665 --- /dev/null +++ b/examples/nextjs-scheduler/app/page.tsx @@ -0,0 +1,150 @@ +/** + * yorkie-js-sdk must be loaded on client-side + */ +'use client'; + +import styles from './styles/page.module.css'; +import React, { useEffect, useState } from 'react'; + +import { ContentTypes, ENVtypes } from './utils/types'; +import { displayPeers, createRandomPeers } from './utils/handlePeers'; +import { parseDate } from './utils/parseDate'; +import yorkie, { Document, JSONArray, DocEventType } from 'yorkie-js-sdk'; +import Scheduler from './Scheduler'; + +// parseDate() value's format = "DD-MM-YYYY" +const defaultContent: JSONArray= [ + { + date: parseDate(new Date()).replace(/^\d{2}/, '01'), + text: 'payday', + }, + { + date: parseDate(new Date()).replace(/^\d{2}/, '17'), + text: "Garry's birthday", + }, +]; + +const ENV: ENVtypes = { + url: process.env.NEXT_PUBLIC_YORKIE_API_ADDR!, + apiKey: process.env.NEXT_PUBLIC_YORKIE_API_KEY!, +}; + +const documentKey = `next.js-Scheduler-${parseDate(new Date())}`; + +/** + * main page + */ +export default function Editor() { + const [peers, setPeers] = useState >([]); + const [content, setContent] = useState >(defaultContent); + + // create Yorkie Document with useState value + const [doc] = useState }>>( + () => + new yorkie.Document<{ content: JSONArray }>(documentKey), + ); + + const actions = { + // push new content to Yorkie's database + addContent(date: string, text: string) { + doc.update((root) => { + root.content.push({ date, text }); + }); + }, + + // delete selected content at Yorkie's database + deleteContent(date: string) { + doc.update((root) => { + let target; + for (const item of root.content) { + if (item.date === date) { + target = item as any; + break; + } + } + + if (target) { + root.content.deleteByID!(target.getID()); + } + }); + }, + + // edit selected content at Yorkie's database + updateContent(date: string, text: string) { + doc.update((root) => { + let target; + for (const item of root.content) { + if (item.date === date) { + target = item; + break; + } + } + + if (target) { + target.text = text; + } + }); + }, + }; + + useEffect(() => { + // create Yorkie Client at client-side + const client = new yorkie.Client(ENV.url, { + apiKey: ENV.apiKey, + }); + + // subscribe document event of "PresenceChanged"(="peers-changed") + doc.subscribe('presence', (event) => { + if (event.type !== DocEventType.PresenceChanged) { + setPeers(displayPeers(doc.getPresences())); + } + }); + + /** + * `attachDoc` is a helper function to attach the document into the client. + */ + async function attachDoc( + doc: Document<{ content: JSONArray }>, + callback: (props: any) => void, + ) { + // 01. activate client + await client.activate(); + // 02. attach the document into the client with presence + await client.attach(doc, { + initialPresence: { + userName: createRandomPeers(), + }, + }); + + // 03. create default content if not exists. + doc.update((root) => { + if (!root.content) { + root.content = defaultContent; + } + }, 'create default content if not exists'); + + // 04. subscribe doc's change event from local and remote. + doc.subscribe((event) => { + callback(doc.getRoot().content); + }); + + // 05. set content to the attached document. + callback(doc.getRoot().content); + } + + attachDoc(doc, (content) => setContent(content)); + }, []); + + return ( + + + ); +} diff --git a/examples/nextjs-scheduler/app/styles/calendar.css b/examples/nextjs-scheduler/app/styles/calendar.css new file mode 100644 index 000000000..7e5b2b228 --- /dev/null +++ b/examples/nextjs-scheduler/app/styles/calendar.css @@ -0,0 +1,150 @@ +/* custom css code */ + +.react-calendar { + width: 350px; + max-width: 100%; + background: white; + border: 1px solid #a0a096; + font-family: Arial, Helvetica, sans-serif; + line-height: 1.125em; +} + +.react-calendar--doubleView { + width: 700px; +} + +.react-calendar--doubleView .react-calendar__viewContainer { + display: flex; + margin: -0.5em; +} + +.react-calendar--doubleView .react-calendar__viewContainer > * { + width: 50%; + margin: 0.5em; +} + +.react-calendar, +.react-calendar *, +.react-calendar *:before, +.react-calendar *:after { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +.react-calendar button { + margin: 0; + border: 0; + outline: none; +} + +.react-calendar button:enabled:hover { + cursor: pointer; +} + +.react-calendar__navigation { + display: flex; + height: 44px; + margin-bottom: 1em; +} + +.react-calendar__navigation button { + min-width: 44px; + background: none; +} + +.react-calendar__navigation button:disabled { + background-color: #f0f0f0; +} + +.react-calendar__navigation button:enabled:hover, +.react-calendar__navigation button:enabled:focus { + background-color: #e6e6e6; +} + +.react-calendar__month-view__weekdays { + text-align: center; + text-transform: uppercase; + font-weight: bold; + font-size: 0.75em; +} + +.react-calendar__month-view__weekdays__weekday { + padding: 0.5em; +} + +.react-calendar__month-view__weekNumbers .react-calendar__tile { + display: flex; + align-items: center; + justify-content: center; + font-size: 0.75em; + font-weight: bold; +} + +.react-calendar__month-view__days__day--weekend { + color: #d10000; +} + +.react-calendar__month-view__days__day--neighboringMonth { + color: #757575; +} + +.react-calendar__year-view .react-calendar__tile, +.react-calendar__decade-view .react-calendar__tile, +.react-calendar__century-view .react-calendar__tile { + padding: 2em 0.5em; +} + +.react-calendar__tile { + max-width: 100%; + padding: 10px 6.6667px; + background: none; + text-align: center; + line-height: 16px; +} + +.react-calendar__tile:disabled { + background-color: #f0f0f0; +} + +.react-calendar__tile:enabled:hover, +.react-calendar__tile:enabled:focus { + background-color: #e6e6e6; +} + +.react-calendar__tile--now { + background: #ffff76; +} + +.react-calendar__tile--now:enabled:hover, +.react-calendar__tile--now:enabled:focus { + background: #ffffa9; +} + +.react-calendar__tile--hasActive { + background: #76baff; +} + +.react-calendar__tile--hasActive:enabled:hover, +.react-calendar__tile--hasActive:enabled:focus { + background: #a9d4ff; +} + +.react-calendar__tile--active { + background: #006edc; + color: white; +} + +.highlight { + background-color: #00887a; + color: #f0f3f5; +} + +.react-calendar__tile--active:enabled:hover, +.react-calendar__tile--active:enabled:focus { + background: #1087ff; +} + +.react-calendar--selectRange .react-calendar__tile--hover { + background-color: #e6e6e6; +} diff --git a/examples/nextjs-scheduler/app/styles/globals.css b/examples/nextjs-scheduler/app/styles/globals.css new file mode 100644 index 000000000..8f7100a0f --- /dev/null +++ b/examples/nextjs-scheduler/app/styles/globals.css @@ -0,0 +1,39 @@ +body { + display: flex; + padding: 5rem; + justify-content: center; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + font-size: 17px; + color: #2f2f2f; +} + +input { + width: 22rem; + height: 3.5rem; + outline: none; + margin-left: 1rem; + border: none; + font-size: 20px; +} + +textarea { + resize: none; + outline: none; + font-size: 17px; +} + +.button { + font-size: 17px; + cursor: pointer; + border: none; + padding: 1rem 2rem 1rem 2rem; + color: #f0f3f5; + background-color: #00887a; +} +.button:hover { + background-color: #00557a; +} diff --git a/examples/nextjs-scheduler/app/styles/page.module.css b/examples/nextjs-scheduler/app/styles/page.module.css new file mode 100644 index 000000000..0c8f34edd --- /dev/null +++ b/examples/nextjs-scheduler/app/styles/page.module.css @@ -0,0 +1,20 @@ +.main { + width: 340px; +} + +.textArea { + width: 100%; + height: 8rem; +} + +.memo { + width: 100%; + min-height: 1rem; + border-top: 1px solid #2f2f2f; + border-bottom: 1px solid #2f2f2f; + word-wrap: break-word; +} + +.inputForm_editor { + margin-top: 3rem; +} diff --git a/examples/nextjs-scheduler/app/utils/handlePeers.ts b/examples/nextjs-scheduler/app/utils/handlePeers.ts new file mode 100644 index 000000000..301639c67 --- /dev/null +++ b/examples/nextjs-scheduler/app/utils/handlePeers.ts @@ -0,0 +1,42 @@ +import { Indexable } from 'yorkie-js-sdk'; + +const randomPeers = [ + 'Alice', + 'Bob', + 'Carol', + 'Chuck', + 'Dave', + 'Erin', + 'Frank', + 'Grace', + 'Ivan', + 'Justin', + 'Matilda', + 'Oscar', + 'Steve', + 'Victor', + 'Zoe', +]; + +/** + * display each peer's name + */ +export function displayPeers( + peers: Array<{ clientID: string; presence: Indexable }>, +) { + const users = []; + for (const { presence } of peers) { + users.push(presence.userName); + } + + return users; +} + +/** + * create random name of anonymous peer + */ +export function createRandomPeers() { + const index = Math.floor(Math.random() * randomPeers.length); + + return randomPeers[index]; +} diff --git a/examples/nextjs-scheduler/app/utils/parseDate.ts b/examples/nextjs-scheduler/app/utils/parseDate.ts new file mode 100644 index 000000000..4341e13a0 --- /dev/null +++ b/examples/nextjs-scheduler/app/utils/parseDate.ts @@ -0,0 +1,12 @@ +/** + * transform date format to DD-MM-YYYY + */ +export function parseDate(date: Date) { + let [month, day, year] = date.toLocaleDateString('en').split('/'); + + month = Number(month) > 9 ? month : '0' + month; + day = Number(day) > 9 ? day : '0' + day; + year = year.slice(2); + + return `${day}-${month}-${year}`; +} diff --git a/examples/nextjs-scheduler/app/utils/types.ts b/examples/nextjs-scheduler/app/utils/types.ts new file mode 100644 index 000000000..342ce035a --- /dev/null +++ b/examples/nextjs-scheduler/app/utils/types.ts @@ -0,0 +1,22 @@ +export interface ENVtypes { + url: string; + apiKey: string; +} + +export interface ContentTypes { + date: string; + text: string; +} + +export interface EditorPropsTypes { + content: Array+ peers : [ + {peers.map((man: string, i: number) => { + return {man}, ; + })}{' '} + ] +
++ ; + actions: { [name: string]: any }; +} + +export type ChangeEventHandler = ( + event: React.ChangeEvent , +) => void; + +type ValuePiece = Date | any; + +export type CalendarValue = ValuePiece | [ValuePiece, ValuePiece]; diff --git a/examples/nextjs-scheduler/next.config.js b/examples/nextjs-scheduler/next.config.js new file mode 100644 index 000000000..767719fc4 --- /dev/null +++ b/examples/nextjs-scheduler/next.config.js @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {} + +module.exports = nextConfig diff --git a/examples/nextjs-scheduler/package-lock.json b/examples/nextjs-scheduler/package-lock.json new file mode 100644 index 000000000..9da0a1a33 --- /dev/null +++ b/examples/nextjs-scheduler/package-lock.json @@ -0,0 +1,977 @@ +{ + "name": "nextjs-example", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "nextjs-example", + "version": "0.1.0", + "dependencies": { + "@types/node": "20.4.2", + "@types/react": "18.0.24", + "@types/react-dom": "18.0.8", + "next": "13.4.10", + "react": "18.2.0", + "react-calendar": "^4.6.0", + "react-dom": "18.2.0", + "typescript": "4.6.4", + "yorkie-js-sdk": "^0.4.4" + } + }, + "node_modules/@next/env": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", + "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", + "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", + "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", + "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", + "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", + "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", + "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", + "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", + "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/google-protobuf": { + "version": "3.15.6", + "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.6.tgz", + "integrity": "sha512-pYVNNJ+winC4aek+lZp93sIKxnXt5qMkuKmaqS3WGuTq0Bw1ZDYNBgzG5kkdtwcv+GmYJGo3yEg6z2cKKAiEdw==" + }, + "node_modules/@types/lodash": { + "version": "4.14.196", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.196.tgz", + "integrity": "sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==" + }, + "node_modules/@types/lodash.memoize": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/lodash.memoize/-/lodash.memoize-4.1.7.tgz", + "integrity": "sha512-lGN7WeO4vO6sICVpf041Q7BX/9k1Y24Zo3FY0aUezr1QlKznpjzsDk3T3wvH8ofYzoK0QupN9TWcFAFZlyPwQQ==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/react": { + "version": "18.0.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", + "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", + "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "node_modules/@wojtekmaj/date-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.0.tgz", + "integrity": "sha512-0mq88lCND6QiffnSDWp+TbOxzJSwy2V/3XN+HwWZ7S2n19QAgR5dy5hRVhlECXvQIq2r+VcblBu+S9V+yMcxXw==", + "funding": { + "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001516", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz", + "integrity": "sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/get-user-locale": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.0.tgz", + "integrity": "sha512-I3rQvAUwu2nauRD9YyQBSXVFJZixNouwA+eZld51Sn4Pn0N1qFbgcgOi/nPigJPQlNY519mT95fiSPRgflQiTA==", + "dependencies": { + "@types/lodash.memoize": "^4.1.7", + "lodash.memoize": "^4.1.1" + }, + "funding": { + "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grpc-web": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/grpc-web/-/grpc-web-1.4.2.tgz", + "integrity": "sha512-gUxWq42l5ldaRplcKb4Pw5O4XBONWZgz3vxIIXnfIeJj8Jc3wYiq2O4c9xzx/NGbbPEej4rhI62C9eTENwLGNw==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", + "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", + "dependencies": { + "@next/env": "13.4.10", + "@swc/helpers": "0.5.1", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=16.8.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "13.4.10", + "@next/swc-darwin-x64": "13.4.10", + "@next/swc-linux-arm64-gnu": "13.4.10", + "@next/swc-linux-arm64-musl": "13.4.10", + "@next/swc-linux-x64-gnu": "13.4.10", + "@next/swc-linux-x64-musl": "13.4.10", + "@next/swc-win32-arm64-msvc": "13.4.10", + "@next/swc-win32-ia32-msvc": "13.4.10", + "@next/swc-win32-x64-msvc": "13.4.10" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "fibers": ">= 3.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "fibers": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-calendar": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.6.0.tgz", + "integrity": "sha512-GJ6ZipKMQmlK666t+0hgmecu6WHydEnMWJjKdEkUxW6F471hiM5DkbWXkfr8wlAg9tc9feNCBhXw3SqsPOm01A==", + "dependencies": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "prop-types": "^15.6.0", + "tiny-warning": "^1.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/yorkie-js-sdk": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/yorkie-js-sdk/-/yorkie-js-sdk-0.4.4.tgz", + "integrity": "sha512-b2poMFNh2/KbkLh3PMG4zQTgdXdPEuDfdXsUzuOPuSEND3xMWWTLQTTirYAeDhHYeQEnNY6pdeXZldBUg0xrUA==", + "dependencies": { + "@types/google-protobuf": "^3.15.5", + "@types/long": "^4.0.1", + "google-protobuf": "^3.19.4", + "grpc-web": "^1.3.1", + "long": "^5.2.0" + } + }, + "node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + }, + "dependencies": { + "@next/env": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.4.10.tgz", + "integrity": "sha512-3G1yD/XKTSLdihyDSa8JEsaWOELY+OWe08o0LUYzfuHp1zHDA8SObQlzKt+v+wrkkPcnPweoLH1ImZeUa0A1NQ==" + }, + "@next/swc-darwin-arm64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.10.tgz", + "integrity": "sha512-4bsdfKmmg7mgFGph0UorD1xWfZ5jZEw4kKRHYEeTK9bT1QnMbPVPlVXQRIiFPrhoDQnZUoa6duuPUJIEGLV1Jg==", + "optional": true + }, + "@next/swc-darwin-x64": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.10.tgz", + "integrity": "sha512-ngXhUBbcZIWZWqNbQSNxQrB9T1V+wgfCzAor2olYuo/YpaL6mUYNUEgeBMhr8qwV0ARSgKaOp35lRvB7EmCRBg==", + "optional": true + }, + "@next/swc-linux-arm64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.10.tgz", + "integrity": "sha512-SjCZZCOmHD4uyM75MVArSAmF5Y+IJSGroPRj2v9/jnBT36SYFTORN8Ag/lhw81W9EeexKY/CUg2e9mdebZOwsg==", + "optional": true + }, + "@next/swc-linux-arm64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.10.tgz", + "integrity": "sha512-F+VlcWijX5qteoYIOxNiBbNE8ruaWuRlcYyIRK10CugqI/BIeCDzEDyrHIHY8AWwbkTwe6GRHabMdE688Rqq4Q==", + "optional": true + }, + "@next/swc-linux-x64-gnu": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.10.tgz", + "integrity": "sha512-WDv1YtAV07nhfy3i1visr5p/tjiH6CeXp4wX78lzP1jI07t4PnHHG1WEDFOduXh3WT4hG6yN82EQBQHDi7hBrQ==", + "optional": true + }, + "@next/swc-linux-x64-musl": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.10.tgz", + "integrity": "sha512-zFkzqc737xr6qoBgDa3AwC7jPQzGLjDlkNmt/ljvQJ/Veri5ECdHjZCUuiTUfVjshNIIpki6FuP0RaQYK9iCRg==", + "optional": true + }, + "@next/swc-win32-arm64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.10.tgz", + "integrity": "sha512-IboRS8IWz5mWfnjAdCekkl8s0B7ijpWeDwK2O8CdgZkoCDY0ZQHBSGiJ2KViAG6+BJVfLvcP+a2fh6cdyBr9QQ==", + "optional": true + }, + "@next/swc-win32-ia32-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.10.tgz", + "integrity": "sha512-bSA+4j8jY4EEiwD/M2bol4uVEu1lBlgsGdvM+mmBm/BbqofNBfaZ2qwSbwE2OwbAmzNdVJRFRXQZ0dkjopTRaQ==", + "optional": true + }, + "@next/swc-win32-x64-msvc": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.10.tgz", + "integrity": "sha512-g2+tU63yTWmcVQKDGY0MV1PjjqgZtwM4rB1oVVi/v0brdZAcrcTV+04agKzWtvWroyFz6IqtT0MoZJA7PNyLVw==", + "optional": true + }, + "@swc/helpers": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz", + "integrity": "sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@types/google-protobuf": { + "version": "3.15.6", + "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.6.tgz", + "integrity": "sha512-pYVNNJ+winC4aek+lZp93sIKxnXt5qMkuKmaqS3WGuTq0Bw1ZDYNBgzG5kkdtwcv+GmYJGo3yEg6z2cKKAiEdw==" + }, + "@types/lodash": { + "version": "4.14.196", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.196.tgz", + "integrity": "sha512-22y3o88f4a94mKljsZcanlNWPzO0uBsBdzLAngf2tp533LzZcQzb6+eZPJ+vCTt+bqF2XnvT9gejTLsAcJAJyQ==" + }, + "@types/lodash.memoize": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/lodash.memoize/-/lodash.memoize-4.1.7.tgz", + "integrity": "sha512-lGN7WeO4vO6sICVpf041Q7BX/9k1Y24Zo3FY0aUezr1QlKznpjzsDk3T3wvH8ofYzoK0QupN9TWcFAFZlyPwQQ==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/node": { + "version": "20.4.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.2.tgz", + "integrity": "sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/react": { + "version": "18.0.24", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.24.tgz", + "integrity": "sha512-wRJWT6ouziGUy+9uX0aW4YOJxAY0bG6/AOk5AW5QSvZqI7dk6VBIbXvcVgIw/W5Jrl24f77df98GEKTJGOLx7Q==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-dom": { + "version": "18.0.8", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.8.tgz", + "integrity": "sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==", + "requires": { + "@types/react": "*" + } + }, + "@types/scheduler": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", + "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==" + }, + "@wojtekmaj/date-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.0.tgz", + "integrity": "sha512-0mq88lCND6QiffnSDWp+TbOxzJSwy2V/3XN+HwWZ7S2n19QAgR5dy5hRVhlECXvQIq2r+VcblBu+S9V+yMcxXw==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001516", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz", + "integrity": "sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g==" + }, + "client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==" + }, + "csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "get-user-locale": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.0.tgz", + "integrity": "sha512-I3rQvAUwu2nauRD9YyQBSXVFJZixNouwA+eZld51Sn4Pn0N1qFbgcgOi/nPigJPQlNY519mT95fiSPRgflQiTA==", + "requires": { + "@types/lodash.memoize": "^4.1.7", + "lodash.memoize": "^4.1.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "grpc-web": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/grpc-web/-/grpc-web-1.4.2.tgz", + "integrity": "sha512-gUxWq42l5ldaRplcKb4Pw5O4XBONWZgz3vxIIXnfIeJj8Jc3wYiq2O4c9xzx/NGbbPEej4rhI62C9eTENwLGNw==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "next": { + "version": "13.4.10", + "resolved": "https://registry.npmjs.org/next/-/next-13.4.10.tgz", + "integrity": "sha512-4ep6aKxVTQ7rkUW2fBLhpBr/5oceCuf4KmlUpvG/aXuDTIf9mexNSpabUD6RWPspu6wiJJvozZREhXhueYO36A==", + "requires": { + "@next/env": "13.4.10", + "@next/swc-darwin-arm64": "13.4.10", + "@next/swc-darwin-x64": "13.4.10", + "@next/swc-linux-arm64-gnu": "13.4.10", + "@next/swc-linux-arm64-musl": "13.4.10", + "@next/swc-linux-x64-gnu": "13.4.10", + "@next/swc-linux-x64-musl": "13.4.10", + "@next/swc-win32-arm64-msvc": "13.4.10", + "@next/swc-win32-ia32-msvc": "13.4.10", + "@next/swc-win32-x64-msvc": "13.4.10", + "@swc/helpers": "0.5.1", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.14", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0", + "zod": "3.21.4" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "postcss": { + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "react-calendar": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.6.0.tgz", + "integrity": "sha512-GJ6ZipKMQmlK666t+0hgmecu6WHydEnMWJjKdEkUxW6F471hiM5DkbWXkfr8wlAg9tc9feNCBhXw3SqsPOm01A==", + "requires": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "prop-types": "^15.6.0", + "tiny-warning": "^1.0.0" + } + }, + "react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "requires": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "requires": { + "loose-envify": "^1.1.0" + } + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "requires": { + "client-only": "0.0.1" + } + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tslib": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==" + }, + "typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "yorkie-js-sdk": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/yorkie-js-sdk/-/yorkie-js-sdk-0.4.4.tgz", + "integrity": "sha512-b2poMFNh2/KbkLh3PMG4zQTgdXdPEuDfdXsUzuOPuSEND3xMWWTLQTTirYAeDhHYeQEnNY6pdeXZldBUg0xrUA==", + "requires": { + "@types/google-protobuf": "^3.15.5", + "@types/long": "^4.0.1", + "google-protobuf": "^3.19.4", + "grpc-web": "^1.3.1", + "long": "^5.2.0" + } + }, + "zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==" + } + } +} diff --git a/examples/nextjs-scheduler/package.json b/examples/nextjs-scheduler/package.json new file mode 100644 index 000000000..8638224a1 --- /dev/null +++ b/examples/nextjs-scheduler/package.json @@ -0,0 +1,24 @@ +{ + "name": "nextjs-react-calendar", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "next dev -p 5173", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "next": "13.4.10", + "react": "18.2.0", + "react-calendar": "^4.6.0", + "react-dom": "18.2.0", + "yorkie-js-sdk": "^0.4.6" + }, + "devDependencies": { + "@types/node": "20.4.2", + "@types/react": "18.0.24", + "@types/react-dom": "18.0.8", + "typescript": "4.6.4" + } +} diff --git a/examples/nextjs-scheduler/thumbnail.jpg b/examples/nextjs-scheduler/thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7253328a88bf714f38a924e0392980e95cf2bd84 GIT binary patch literal 50918 zcmeFZWmp}{)-F2H;K3b&yUWDgJ-E9wA-H>jy9C$Z?hxEvgF7U+6EuM!myoQrv-WrQ zx%;_4&YyECp=-!nqpC-bs;;W;o{tNUp8?3y;!@%OFfafB?CBri@d5Bk#MZ{n!PL>w z)P%^$oyf}0)STYI)cCjXaTyQ*fc!f_LqkDB!@PJ(FbJ?e69O6n62jAeG!%5?m&oWS zgjg6DScD`5cmyOg mSp@+`0suz=gFpd$>;(`! zodGyF#LtuYD?vd+z5oM J!I{P_Nt@_%!V@9v4z=09Kc&uYQS9X^wLA2{Nv zz0!C?Z+X0525cZ4{V+q<_#O3O8AA0~@Sk`Hk=?@ sy`|a8~)AwP5k6h z9Q=NX|0aI2kUH7Fq<<4XS+KwC{Y^ZB{ ) zh6x(x+4S!OO-!3o(ps$)yKpB>{nggi@dI)ic~n1ol5k!2{jqAjjsD@O)(Jm)^?Oj{ zw_wUKPVNC;TM6RXXkz#Ca7*yb5WU3TBo8Av^efQd3R5GZBX*%=DS|optn2EVXQq#(W;qU zB~I*L-uh|c$v5}_ho2M}3d7IrcM=;0JO4H+XdT_=_at%l2Rmi?OZAjLYe)LUxoUiF zNFBX}=J+KMtYe6F`0xd>BWg(u{(y$RhuA(%iX18Q04l7L^CvV3`4@lVWPT9;0f}gA zS<~pp9*}T3_&Wlh%RPn1jpz1;6<*NLkF7kpaR}%ZyBEl;D{nK5ChP%17eEu)KkPqU z8LzhUuXvQFF;7x_LBPM;n)c9u_nqzpu#aiL&(0u`G(qHb{;T}2D1g|CWP35GF9iVn z)3w_K>@G79YDco4mF^h;vs2S9FNSa}`S+o3Y4<5G)cbD C$W$>xH%<^d9 zdkr<85X~U}Si!A?RxoduoR;d4($e0m%uBZ#%$UIkCAaiN{uPPOg`eV%z!R(|hSTAO zR1WM?eM*9W4{*5fZ|(UB^@=U v6cNbQ>3~TaS0w99P{^}h+3qN^bx}n_i5{u-8hSM5gN^Aa*QD0zGAGi|Gm&f0?Uas0txB+u4 z6WrE>t<^DgZ2WJ%By7uu!!cMI8gl}QB)r*y_YuJCHMcekain`&-t+y4Xd^*y=?jYJ zXyb6sKRUrr$MJSBw|4%(@_7ov|JhMrWbLX8@>i_3`u(fp{%r751U?-;zaaXfkNy-x z>g43}MKU2bt^s4dmK(3!;49M;DiLdJi0hDeF&z_c>h{)c|J(Q@Ua9u6kmRHAeiOuq z+}1JOm;UJaG+JjUB!AEn7-CM@a#rka@jbAE>YtZcvD}tvF1v8!R`)GKabQgg61(#^ zTsJD5Cd}*t&kfyfmL`M5f2&FGXA=QWqom+-{(Sg*c>SAr7XN+S|0aHlNw(1~+`|Xe zteSp6GVi@kb8XyI+two!{2w+Ia}0Ms`hkYYY^T6NKM?bWq#(j(RN46bPaj_#PY};e z5PccszTSN5LH|uFi1|97+VYfGp9hCu^nZCI)XUyq?^%x7jDMGjB>2xlpos6yqrF#z z ds1{&B_Yhs_m;2+7N`MA0A&?K%v+9fqE*TX6BR{sT$ z#*K9<6i^$u{^48TOV@wkpBQj{!cYG$`|tR|?|#34x;+0~fq$XEzMMe3B0|dW*5$k; z$>%aKcYuhJZ%fW}ud4lR^BD_W@NudwmoJCR)hx5`&>^babKyj5z^K!BGJn_LpoL>t zSyi_T_mIYgLRfk%abwpQli(^V9}UZ5jPl?#;jI1ArBHx6(1keaGf;)jnM2HPH$D z(LXCVo;B;kgV$dFtxn61nt$rSJ%em1Yu`o{%qry6bzUjWSWWEme0BBDCIOJAiNJd4 zR^{ghkrEDx{;1-q=dIj`OU|0r?0ldksXc3&*G5h8>Hiiza{5YYIAbI!BDqA`95fcb z8>(76@}ZX3(XQG2%aF&PCfLkmouzxY)?X?g(=Qel0r#6HKH J^gaF*M>}n0sA7;Rj?4Gz67@mKg3jhES zCbwWev<+dj!ywbtHK9TMfMmsYtm9a2%6I6n(1MrgHc+gqb2dTX>Gy}RDf>hMF6WHi za(8Xu$I+?Uvma?X-^Fi69jmS$J}d%dEf{lr94`Yt+O`SU LzY ^_Z8h^n@Z$7f81NFJJyV;lC0_x|J%P!_=D? zVB?@WeRx5>p*6ui5C ^$YTwnziHE++&m^M@J>I>(G@-luEQ8T!U2^fZ^f{?%_@Mf+6EJm8Kve`2lR z@My))T=>L(C>qp!E29Ro$ ?YiK&g2^(^m6WU1_Gc zsCEwIUYDL|5cI}5U;92s@9BEcsA<8Bj0r0{su5yo&C{UsveILvOkwH|TY!8%^7^Z9 zQw*hVdPhr-EE@5)2^r10z8G~c -)3_!~^>){SAIv0762&fPP*Af+PPe z{!auL&2E;g)A+{g-+-~=fewb6kw4@1Sp)NQgnOn?7o@R*3o}yRDh&z#6o9{mY+Pgq zp!)q}AhUl8eo}y+({kx&3V9|{(n{7j<C=mhD+W*48BNeUTw2)iaxZacR!sKF(w2 z_frE|sGymJ40yTy0Q;?@=ot&EAhFP2{q-V8$(E9EJ=qub@Z8t^*6vv+?ZMw`{AE}g z0`IQpyL|d1p!J^fSwYUel4 JN3DF6IJ|J@^i zcIT=vc>UMuN&_IC6nmz3uWsC>On+4_2!9<6 X%b~`U_U@ry5*S zaQutGUqx3esWThREB^B06AF<1^!G<1Z}pU{*>wHoNdUmyeRoOx%)T!B56FKY!5r3rtE(xO)CIYug+#$6-F8=1?No~7VBr?}%zW@B$m zQ>}g#!jx}hEekCz8#31X 5aGRjZ=#g5In_7uvyI9!_J#qEcCx_@N n(W zHDSl-d0TMhnHSTu?&ZXtx%;(%6J)l_=8n6ryIVW TUrNA0ca?Y2@^1!KFcCeWq7`fK?DMk(zNeaoRtaZ% z=$n4J?egvG->|>4_rE#^06@oJIgzV#`M2VK5ZdE2bFM+Pg1;2-8Ea}o1y#S}=YN3z zA=quGokpqfl)Ypw18HVIt5EYnB#K5VzZis-%l!e(HTFbL`{T$>+~yJPU&W>J=#*Ji zO*93cS(FSAhEXn_HmTe1QYUi8ZVl!(Usv+ixmrIxW5B4y5~*~4jaU#|$3eLq%DCIh z>PS8k6u&pApk4Z2OM`2tKEvU 6dt0H3%5i_$HIFgW(F|jDVU=@6=;^0Ki4ipkr!m@Yv zdnY0$ZbTt!Y!~x;a}W#_>=AI^?6@@1yCqAKb35s+p(;A9dQOw8sH!e13ob~;8pov} zZdF{F9f;Xc{-z@-uhNJIlo`^IG~iIV1-CGZ0(!q=fvuwTqo>^xR8DkRqs3shSyvkt z5U;Ni7&7KlBW@ltm~c)C8BErHfFjrtBeiB*9n?v%sRWPA8Zm-~jl7>O4;zNY4K%3F z$_qPiBEz7mjh`>9oex1R#4#aj d5v z21E#HBUL1(K_VVZ)e(r>UV7dydGt7A$MKR%?)IaDvZ^U;30Fe5)gatKV~Qtv+!#^? znh7%O)p%rDHerLwF4H?F^)qy_QMDNC#YA*Q6ZWgpT{A54G<_sGv6y{7cgQMRv-XiO zmxSX8b69Eee#>wi8D+-63}N}G8Oi~()bBXW?#;sZd;pa1@ML<+&0Qp^yn?+{(Dh$S z4Zw)BO@-rLD;r^+$1Y9DM~YAP0am7Z@}YRP9o4tL^{FBHw2+I&BD e$EvPd2SOmJ2J9t(#|KGKhP6?~})TZY1svzLw^y+F4Sz*OX$@ZUr!H zQAY?hyXbwaAuf$@Lme9p3ZiB`vVN0=?uVAsz= 1FS> z;Rfwu3h5wQYy0QGQ=t)cJ|m5g^ZXv;SIrDFo=0Yw2&OSqCh_&HSCiO#juAhK>I z+1Yp!U292opxMV
CN>smCRD&EO47BS73^w5rBo-$Tr z@51r9i*6{uwkRqPLq4GN#YKBN`<0P2Xe94cs}8Q1`F5#40$xX-eLiTcAX{<-je-T6 zuV^X@)mtpnN9l$)l>q9%4VEgFW+wTVM50j!h*EMR9wcsUjZi9#+rm;ANF@*i;W%;X zjIG# J4=SU&bc3t&33#PeW$l_hE zEnBdT8w`kJi@98x^q?_xsDl$fr=g84;50_uX2xZ%XLtOt(3w8ZjbDv};-qStZ@ 3AHSoE|xskfu#DQn%}*( zso-eVIvA5ML#O+U* ^C@6dG?oq=Vjb3&} zT|`Z9mSSqeO!h_w$Rxqp8rt7fmZZ>6E=f5CMJ~bhLCJZJyei3nW1Ov}>Nq%x6LB*w z`^bCNe(<1^jGShOpP7wPL5qFqwsiRjV4I&})jPu|^Qa!4ot$0Fl%ecL49GZQ9YPt} zF8yZYb>YROe$sohbG|ey((nSZ!IRI%*;~?Tow$=31EFY_V=6%fmX$<7qSYL_ndhVc z&>v<9S;Wy47V=#smQ=N-)>yAUI8qm$N~Qu`K5i1dT2c%mZ~GyteR3+yU6eO*cvY9s zro3}U#vKMlgbHId^8N5^K0yhv4JN?YbXGgI&%&DY^7Ks_@phqFYSpKF5+Iwagr{vO z`BK+DiM-@;W_mbM#S{+?u4s`AEOyz(QMDx1?6f&?DQQJ6n8Q_Vd6pRuOlgiy)DXtC zsI?||mCy*P#gWQP*$dft5(%~@QHkU%XZ||YPY5yJ?5je=%xkBpW^#xo5BeNcIRr +77yo%s)JP;k!fSYUst-kAvsz>$ZLi+HTsn+2`!baEA-!1jlK~bJmma{}R6K ze@0k`_j91N<3GFE@N{9G&pT4iUL@n-0=*b{6LNz{qf$rN9ByO?2#D&gCw|~)x%5}# zXc~fc{J{Q0&8ESsyokVFq3Lt7s4*-fbI&_d==x34aQc?yQ~LVCRHM9#AlbZ?&;h*5 zKvbc06h*B!MmZ>;id>CZmIV?Is4>Ub!U;Pl)Cz6d9lVOI4FWx@i}VK33ygFdMfLa* znrk*Z>DyYE^mq>Yc1(-P6nkKVoUbC@+^+0|>SR-0Al-^1CSk%&OT~MtjI4U-W1ngP zN#^td!PiSEZ#|RqN*aP4VH`hnC<+X>=k*@l5LVrD?H%3QZW?dwTEtn?9_s6|@P^tr zrY>St8)=e*dc|n^og!x!qv+FNU4&4O4eW7?m96kRzG_GqFR>JqE6|S>QG+H7iKFcT z3%1^6igBH3;CF!f&Dn9)A7V(z7GwP7Ovz%is=s5tsh}4+UP8+yZ5m@TmNps8j_Xyi z)R@n4H^EnYD}pmP8CkN+4fHKeVqjD6PlO)y`Gm)`Q-tGKc+hQB>}nA-3LubVAnl2# z5)&_#fEO6ZG(qs76}w%dY#H7qRn$3Eq5#V*k>QI)Mt!Zo0oWes2m?7zvx)8?yQ{7i z1~(sb%9I;XGT^0yU )eYJD2oGgUQv0d_TUg~|&PmwkBV*ASF7#9OckoavBZ((&At)ar}%OOgo%pZG0m z<=DmE(xkSj$WbP&2QG}1t1s+|b1aqg_UpA5y?fs* MKe=w7=sv=%Fr*ztZGnK+-NTPAzJs zIu#MPt*MVbFJSSuxfLu-Yzo%Er`L Vv~)mKujah*5?Yr{*fdTSfFXgVsjW8o3qK>>2%r^>nzVRT0>$NGae_U6{_0 zpNdR`D2v>m9`?mP0%jHVB$qm4b;kDVo#jjD2yvXQVFbAyK(cYUv*yN`gQF3oopRAp zin5Wnf>}7rn@M|B@tc`x3=%|&YEX3sw$fYjVKk3`JDc-AyR%U@xI&0zi9@hYmfRwD z{Rnw$pdh*@Dz7wl)y`E9b5kO%ahq7YRWJ$uz$sY_?R-L$ngG6ds#7jEZ$+L7h3eZI z#AM}^DLmSY{PU6012RJ4@i>0TVZ>OLQLS(NMC6iNgbxw|q*Jl6Do0A#lsn2J!x+=C z5y`?CIMgN_$PV@Fx&h(X)#BYra>d&zNkW_#>m(*gQLo+7p|=Mk1*;0E1vx|U-c?^! zLRo9RB<_Ou>FOR-`Gm@odnz2Hz#~I?=`BJX3`#EA7*Z}K5i#M{jdmGm!ob^#eN_}; zaTooH6r<$_GtQ9aj7%))2gmeL7d6zI*2)<3p%A&FxT9Kv0V!G*1#Zb5VTGXtH6@DS z*d{sBXo>ow{`%r0(dkbu`A{q3B5_6$o|7kHBRLlNkZ5@UW 9whH5tR+VS(NUnc)j~sh_34WEWRq*uq*A)0<(W;i{4f#xc_Vp^8q+_F zFy}htxjR4&v6~6J7-0^l7}h3Bmq_W4^1_9wZ(u3xXI9QS3mzeP!B*tZoXh&ob@rOS zyr%hh;-GoFG|}v}zrkWz8iml31N(6g%M7tZbr?%*Y<}d6-n)Fr>Scr=+FT&6xJ8bH zWULTIrQ;F>sp7()cgY{YeC2oYq617V{hP_UoA#p&XN@~pZYz%Pt#7yj*EsOIPw@hX z=4YZ6R %QVWuupq7`v};+gd|B> z2It^gPfDVC+OPsW0#eojn!aYUSEkVk8daqElkf(yRS$O~Dyz8W2{Xw$u5E#|QcHTW zpgp(@Wl>Vsl`0D~0dSG|v>JIXbKbpaoG7q;6b1qJ?92FHIF}4!D~)~-Y%zY;7aTw^ zqn1~T41LJPXAuts(-LRAZLKHVJ5AUBJ&UuymA-TKz41mU=Ucf)BMmIdp=pe|lX(OP zFep9(kmnzt9(2LmvWs|VD_A*1h5?PK)yBda98E(3i$Po1eAKZdV-eYjX+hg^+IVq5 zkbD`!OEz^D77wMZFfvC;nmuM_z3q5=!hUb^^kwX^WxiG-ISdr#X*zhe41Nn(EQw=r zV5-Mh@Zc9x!ueKP+n5f2Z+P|?P|5c$agVp^InxYN3j=P+JynBw`t%abJiA!GZ|y5S zaUBHu5BkE88}pI};F0P!j&|)G`v3B0V5Xi7b# KO5f3*em}Ieoyx8kQIroT?C&CDmsO*C7WmFIgjVicF{KpuZ_E3v$P-4Q|g y=i8aRSiJS2jnNpFU@mS&N7eF WM0U`&VHUVuVRs}GRSN=} zr#BCt@jwb;1EhGSBKC%*qSG>^WQ4{EWYNe6iG8^-dy +<+~ zt|Ae+&G&Y*FYXawB|qtVwHncL*bx5+AinXHSg)*lP;=J_DZeV9EqL2d;MGJ^#5@wy z=+95yyKs>|f`$@)t ^WMf3h)cZ5}QDVo0UpAP(n^y}PyL{EM@EE7n`s+#?| z`1?I4_xU72!+emnHQQ4gWVCX6{PJSJ+7T 3sfJ?oX94HGmEd-ge5D+FcTIk6wc?$0R#= zPA3gITNt$;qz+q`o*(BUP1Ek3X1qNlpEz>ND;=RQf?T4fR6vzwlEnxifA7J(7G6K; zQdp^=Mr*PZbntE5A@x2MQVovxd_leW^OW`MNbYUO=^B_oEMeG;?gHb%&|PV;52f#z zS3N{A9W5r1b%?ww eV5Vgx{nZ=p z6ovAbPWHEsgW8LzVhV`j&PKfcmPz!3>Ka-SVDeSTZxw4NQ)Y=?O_6e`FZ#(=L+hl! zai;r_KDK3@*l9}FwGh+y-i)buZx}WlKLV^Vb8C{&{-)X4B72AnN!UV70*tPU!QK=n zP&gr{Pqaq9JeaH_a#Kv7{?CP4;sIEh)lLswJ&Yk&=)2b *W^!Ou| z FEGVWdc$WgdrIA0ZHk5t(cR1wBzFjgDSkuAC!As9U%#s~y~4hwHa zudgLh5=1{$>AlxlB=ToqA%IrGt~BnFA(lnTMiK9dh52?1L`>Zavhf+uR~Dx?fyZW? z{rYydLtdE-Uc)99l?1AbcI~ bhe`ExD&Uq1nf;LmC(C9YN9qDdl%8YP@5%U*f8FK)whG z(X86vP0HL;*L%o~NyOqYD@4frHyj34r?12Qto9#!J!_ikv!BNIChYapNNCdtyYWM8 zQqk%=Rpz~&%kTs_zakE@xvZ{598x8W8gKLY#O=+AH sY;7bYeg!3da>ZVKY>0183jZ @yx-KZ}81nPqDM zJju9hc6)PiHE8XZMkKg}oHQ9jg#QMme?C%q?o%7%3An|W_`E9L@p=leb$;y572r#C zm`E68kmNh`9;^CFG@Z~r#>(Yz%gH>>8|id uHD<+47JQQx2;Dw6UnMG0MY!@RO!Gn&E)VG+8pJym`o&+9MtU z=nuCMv&^lUUK!Oys~S4x3SCJ 6$CnFAzHB)%@u@X{v(d5YX->Qhbw9i pz=#Ti;7Uj{QFTUfS#2E5zoRi!2)C%>jRL)QcXtB~TrB>^fW$tTz;<+AJLC7od zZny<;I+eKBq|;XIEsXrtZ()wNnt9OVv9>i g!%dP^yH_R;tCRcsBFsoaAN&(c7ync;GKvqAD z@y05~K(abix4jPOQy_|lVnms)*7b?lrHQ^4fW`dg1MeCZL#cZziBhNad$e)&NW#wf z(L)2Vgj!psR5=0ApKG!6wH;H<-hzrWOxlGki+DQcu5dAY)YvOT*4t1g#IWTiesh|^ zfUn+`ZTNjYG>ZPIwZ$>V{(=$(^s1#Ea|^PZD^iT%6Xup84U@G>xUJFp;wDjvTu6TI ziXo*niXX-rD-tBlaTQgM;}#tIu;}IT;${in!giW?bn>%%QElCcz~i=u-PZT59Pm&D zOF>f=M61=1e^a_kRhPvj%MTkD&3@P}eR%KN@aMjPyNZx&xoDq`eeIjo$mJXMNb@gN zlzBVMkATQX7i44e@-i#KGGq3o83j4${@bNqvF^yQmW0sC-F>QoiWA_;-7Jc?bn52f z(S6OIGl{>pD0?g2KH4j=;_h-Sd;FjLpy5A0c@YN}#e(D0zf9lO{}C2V!doE^!G33} zCNPcfhauUSQlZ!anudzOKHB2a0$PQ(OwD2~2C67n-6$TZE=9}vQgW5c>1>I1(=e9v zroR(gsua~9Qbn69J?POJc)%jLbEG)8S|DsLXsdxID7ROWTl~-+QV^WC4__bqWe1j) zQ+3V`4?jrki;qqs46`GCG2;^P;*dirEANMPE;BVEL;Of%SVO0;G6c?EVhQY{YvrR2 zuAMo=%ZRaK^><;kO?D-MAehjZ1T7{wpkXpstkIGnHXgYP>`7Zy0)=1+&6J?v72a3^ zLe0x$xX+F9nhy HOJPR9K;}-qAJ%(1dJ8<2({&}&lB*wFh350QPw*)?|>=szE zsA~*)`@|8&;t>H|jskV!7sgdxdeN|VX>m(du@tlfW0{UwMnk7dC3mXniHDM2h4Jq8 zU)^(T)v3)SRFJMWm?WNzR-3|gXDZUkp2dyQ8(@rCS?!Wgu+rDe&1A~DlEe;Gfy`A2 z! @*u~CRl#bJIxuD;~y}}C;){u0o*2Ybb3VC5lf&|i;p&( t}lctAU&C zHK$;pC>B@-tHZ2AUfCea95 k>2I{_A*{_iDXYxy`qf_|T{Ey` zBf#A}?GSU&4KYl!NpNL|^kQ|GChHx^RE8QL!TMQB9534@8l|R+Ion~s0xiUu$hL)| zW`M{7THhXIu%>37U5mf9WR}732kjY4vZZ-Kh&j1U $f|9gJ?|DS!G1_)rL~nadZmRR^tad|)M{ zg2f!(TItZ5{|IOyHC=!rhT9xlxl(7~Vboop7%)9-x%qz7=ISdzkW_KHyIFI!dUxld z*V2&{H8Ssdakl7j^5FA-q0b)ZmCOx*9zY8zv%Pr)tnipf>}m{~U68t--S?0UP)lOs zL=im#@Vr^E?S(}!oQ!cR90ua36?;f{>QS(xtZont`(Y7OCnKzyMsQ!7N}&7kD8`2D zFeX}mudiNZFa*Mugj9fH$0RrwiYpU!_C9HJOZm)kM&f$U6<4I*-XkjdPK+? FbuHFg3(c4nuV>R_f&OMVKmZ$Hknq=xKcu!!n_Eh8g!BY)owEd^zs(Gxnq8g zqFez`Ov5}YpF9loAelZ%@(V-Ro@n6yFp>aQ8zM^S4KD$OMXMQ&9zFsVI0Hc`Hl&ig z#G<&6JA`;?QFVps-zBLH;}&{N(AF%J#&}sFB6S9WPPETkP7-ntxXqI!%s`B+uQd?B zy+Q{J(ibsr5*wT>YW$J+nN|I?Mzk5ZhYA}68_Uq-Su_W|v~J>{XH>EEwz_H&J}4^= zfxxFHHs9P1EPm}67mboQxqaEuz^+YP2g61dpZz+N=7bH83vC2p#ZW!a%q)$nnx#ny zTY)@`!}FDWa+k?)JT&bHm6af7!}w%Fa8dnddu03#I(XS3I|xi#Bd8p%!1j~TIWE1S znzwHga9?+u<) ;^k;9$hM`RlfFtbrWj~H`IPVh!pI+yLFl!R>1O3J zVH@2t#-`WzM$@hK+4g9QTc_ZOX1 op3$aUM z4?}_g$1@v3@1y4-K47<)BCzh-rcmb@AAr|XDpmtR}%ts GfxT1}3)D`UZur!ko>JYx{E8> @n1Z=1dHJU5`U(E!&|AQ#Zt60nPf3ZeFGmeO!^w?)`EX?rvJ4#p3HkaF0D9b;Sip ztX6wWI(L)={~#+K2?&a6l8UMZXY2%M zqE$ucAsu6)-*&_ zoH `oy96T*tn=3L_a>qAvYag-h24dI2 =Q3vOu}lF75^GHQkU9*iz%WwsvDf7JURoGxAYUl6@bG!D*un2|}Vbdt^yoCgfQ~ zFBhE@uLU~N +D;(nB*yn}ZuCiqo;cQ*_u~zvV9VIkojolxbCMZw@W}DxF!cHt z(Li)RXXd;J|5K8s*%8`zxNdN2x3g`Pr36g}LqrHd^(A>omSxUO2OfU8$#WK;F|@gR zywhNS_2Hd|&Gz;Vngg~ZB(+d609g5_%0*{&@Jdp6+~|zs9j__l$h!K&$u8&v4C_vB z=ay9)M W2-8lu9&`b&YiyU7j|tyX`>2%sh< zCLPAX=AhNvyPkE>G7aY?-+20xCH3k11||`v)UOFgR_+`5k!Y)i1jr#3Mjrysh?7MX zOI=Aj4TjL*!0X<*mJ`^}e+8M#z>%~PyQ5*$WHCTWkx#pe4pfjY&I_uMEq(xJtVKvc zj!k@R64^PeC$uydCqfcshwoZX*mW~kS-iK(Ng&~*`Dv32*PRr%6yuh>&5*RLVFJA0 zwk|eb{5?9aa#fCN^& 8r`ErcH8$Lmr?M`-?<$8twuD$hDJZNcMvQ)KyQW9a{}@ zpBm58<3%%pgPn~71W6|h2>|Xiw5SAI(p$93^U_R;dlEbs6cpBO5>MW_ Gth zfT_|#oa749z=X05(v^j=Is<};MSV&9W>+EryFq)tk!KaZwms8$b!{~QC(~6#FHRnm zN=NQy{lvU5Ur19JzSZ~37a`CQx#`fkGX_a%(p+Pp@5IcLDF~`v6O1MVMJEyIWpO}M zX02<|_OOk&RX`lcGax&Rgw&f-E?Z)yS( b5wWO|vi(1N>}B(^;hq-=gf@eZk-b&JG?{Vq-W< zog7%|HB~p#(zrxuW~0B3D2%5es3_&cekD2j{ztlRJ`#;p>FRr-c3Q%`z^3u2@^plF z+%8u!BK%$QORY~@rU`%m)~jX`##+=zK$m9lLynhbS11-mR}3;c62tpQx-kl~u)zj; zv9N_xDlMjNXg81%d!)x)n{ KQSs{tVlSxMpa)!7*- zq=7)#_*kupknq>kH*sClq Z{=w>Z|RUH6^ a8DG6SfgTkaxihlqO|Xbg>IzzW4Y0))yrwC6$;-AHKvpRAuu)4Jva! zDYIY;+of%gD+}f{z>j@n5i-S0XK`r#J%dTQ66>><2Th|A4h5Tup$5Cz5kI00mZ~W( zaYC=I&S B((*u8z#K93VLd|oUfX)-eGciR16E|4})JIvVkTf zv}sh_dr>a}QE)Gd-}a2Xe|tM5C!Qh!PG=$e7H9z-9f=1*Dj?Ufcu~gurCPB}GU0QI zsqW73qEI+?YhP^e_HChHyx#XmfH@a>rAb%_DiN@8V~$m^xS>C@eUJ{a^HiLM7Ly)P z2ckySz=l=4Y@Lx|MkcXV?$u!en-5gter|U>K(P*NXz;qTz+WTJNs-~(0|_vwzV;>G z2S-_x$?phmbzfEN1s?#lDyDJ{8amRW4u*}~dz@oh-z!p=3BqUCbR_o`#b}swCEt8W z2peE?XNlsD+{6!1vnZFkaVc?ceit}s)1vyhup%6$N`wFxl_d8QN+2$0E@Cr`wK#ie z0+qXtUi{MWFo#;tf$`|(?dQlIqlOaX-MFFLA2N&8)TxmyD6>KkOSud)hu z%z>*v_&B(5!?v#}h~*>snYMd<&IG=;e2V6#%Nc^vZ#r9xAo0*DtkpqsQj%q(=ui$V z_gvn_- kF}aBN7PqkW?k+C|Q1mGu#L)ucLsaA|-5YrZ zggygMO@h!JhGUL%@i0ylF@n(G$Y(39xUe>!eq HXmiQcrd|KOwh?rx8W%Bl^aH0jx0>%QVVW?25DJASkRl>N#l)sNtvvYMAjf zD+@dA`7@a{K~sp=e~h%pY@dx?88Y(h-So*`A8s58=y1`CxZMh4j;x#nb7bj`qL09Y z3Z(Hk(@i$LS#ef2?M@h` bhgk$^0NT5h&ua9(M-|4BIsSSV)lAATcb@Ge`9`U zOu~+qDLa3TRr&Mcnyg@hJGojqgUTFvriC~mo20{rglFe;W8F>lHM}Lt9YZ{V_KlcL zYJm#)2Ga-TbV&*5nl3s}j-0W}hk*Hgv!slYGVC33IT2#<^hEkGpphR+V?`*QJ<-}I z82yGW8*fZN@YZqJTmOsAk#c11L&>V08f(e({w&cR&@{XaG5zs}+!r-$K%8*(WJkVw z#*C-mMA%#}RY<;8>Z%5Cr0U}d($=?%yavva@>Nvf=B8MZ)-jeWjiU!mAL3psGM1NS z0;!B%dNRv^9BsO|@&YGg)!oE)6ULQs7wxaf6d6L3FCbgeQauLGRL^wyq6 &cK3zWSEVz2kvTiutvJu*PjBbw)TJH)npPL+xkELTac+fdc8+ZIIN_|T%FW}P zMu?)j2SH=jreaQ=!A`}4Gk`Z4Zb8{LCE}jC2J8~r!`0CPlbQJT`=uk=$s^oRUiVNl zV%wlZOoJM0sFr$sySd9zPi9LFW|@(T!Wfh|;#|Jh7&7_RjByj8sE~Q1TbVgOSUN2} z&JWjxn ^Br-dOOmWk78!_+fKXDlx*jBFF@B@ZBiw`0VLYWyz^kL1`Q>- z5O5%J>t*wI2E>2p6D65hlw=tkK!qUQ^G?PzW`S$kT2dfr`5|zl^ckm 4i;BYK28bi26@VrAPBJscWQO7kFAOA`yw3mD+%IG#ks`XzlOX-ZpK3 z7Er2BR<^9HvI&lLGqz$?ub8(9D)5X R@UVgMH0H*G z-y~Mkrm%@YfE$RT@1sysmqK9Zu?w*@BV=z6ev+g|S_ol(qZ{JJRzFErYZ!!Cf7~3* z>vHAtDTnSoJRD^d8MSqLb-Lg&Y%W;2^3+h0ty{j?!qnjcbX*Pjwu;$YW(3Px-(;NV zD)x+8jz#8xn%u?gOvTF*UX+kGBkZi7O?^3rp@(?nE_wS5njDg4ae-b?C|V<6>noTU z QzmRi_?FdpnuZKhWS?f-i^@F8;t9zk zWcw3|0&2iWSOHggC0S_9X4F$)Rj4`)lxC7jSx%hJTMG?_OU~i=cAMZ#@#2UfbNNT^ zjx(|0iMQ{k4@^|SWu^D*x6|HlqG^5G!LBLO(^$>iQBkNJZ78lGr#F~BW+hIB*3nbb z(UdN%y>O)hkJ_z#r*85Q&78kFHaD&%Kz7&}h|y$YAPYT&o3=-xk$EeP#U3(3vr5=C zfpOnug@2F`!Fj$Q+%Vp5rRRL8v<%=y#GcB`8AZPdKs9C$jx%nxVTUhsXr$h%MB%ot zU*No8-hU~zQ}7`MjxYy;5QbS;bn+NYQF%ks*+0OtA8n D@3Ku4D7^anT-ngr>k*%WA=xPd{Q6l~wfBIBMlwDU#RvR7D-EGFR9ld_Q}t!wD5` zcq-$+yRy2zy-%J+lT+n$Qz!9Mhh_y(CWl{Yq*hQ@60eC$RdW!{>V%}fTm2Z@(m}7R zD(7t(4v#%sO(w(BUPiyN6-o5;mI|UTnxb7v=%H#iN?2IArz#q5LF!@T*tE;m^o2zI zP^nH>^4hxkl!AWk;08(L9ivej+H6?2#^us7KL`Kz)d%R(dcsv-a!0MyCPg%uYc6(B ztTH0e>H%odt|TP2WIyDaeL+;8QRQ^lH$;0WvzseBieX1wkx;_opth(x2C;$Kc|Wrl z$p$DBw|uqOJUvj0C3|E*EOCR>)~mpX@(d>jfpKTyFt#`4j+IAI`%uM22S$M>MzJ@E zG_&G0FqsmP4hTX}mtV)ik=E)-$+B`#siD`EGiUTkN+|1{x|@m%N|L!a`^BsZwyY|s z=%tJyir<$R&-9tcRvJG7;A8Fbj6C&b&S`QyW}UkEq7(bsS#GsYHGc&WAcNtc8lB zChaze5e$W9_W`BDq-M9yg+&a59s!#~v%XWZvg!O1FZl zC%yOnCM; el%5VgRi*$-3CJ(BkxRY=`LCP1V>itci za%!~6;SGxgEYb>(F5BlXF*x;Sa`D!bIHT{~A)E>^6B`g<-a2vSqQ+ROZ?d$Tv{>E7 z1j1oK2HAa9)L_v}KKLr)=Qe@!7SHI~Yi1>DN!UYhY7{lY9D=bQLJpG`vm*@3CLLUp z?^6#FED6uS)1z$}=z=*zLQ4{?8Dpld>MWhFb5a{D8y`S`+8kh23|$;e@eAd)8)P}* zrV8ieX&1xd(AP^pH1PVUYlP={vrXrW;-NiCbNV7Et8n}f^2!mUE%wM#n2bE2!xqqp zrQRvy!c~=RyLXZXcE$915~k8R%$fkMV>Uy8F)X9Z&1sDDBg1D3%oWs$3_Gn2KxG<- zJRnV*8MC`uP39ay9v7e@8k#@KI-oE5dvmnH7n6;(l =HG8wzLqSk6Bgn zPz0M1y4Wz>+Jxxca@(u0`@sWLfz?%KjyJ3dQx|C19U2XWY8xgLA_>N%Oe&amgsPt8 zy;S<>FQblo98oly6445jWs#qLY9V5cSBv@rPCNrWN_@T-zl}KU|6%VfgCc91KhehB z-Q5~@AKcxY!QGubn#hDBoU=hI5iZ|y Cq8fWp8#M zCv62A3e)S4OQf2^ns1$2>n-F>C(F+;$`eCa&xCjG7|ptgv9y1woUy!}<(J}fswp|% zWTqMzrfM-l=@-2>#wn>)$wH4Tm{ k`z?;4Lsz5YV{}?@G*T}Sd0m<&-lG}tI$hWt{LAe_4mXiv(|oJ) zo<(DYNBU%d#+fH+!B-UmyeA7hTXn)iu702(K4Wt(AR5XDB5&7S`CEem0^dlJrw5kD zZ!z#8wD=X85KuCv2aKt%b6Bap34iza!2*Lzqg+DV3nU1YD&s$@O{E{ug;z=Io~|!f zUx++i@fZIEOtw7*;nnn7h!iKW`Vg}+TcRr|eNfKK&NcpXe5KnDOW85T$x9q-X}Y{6 zUYi=B;k}8$4ljsCIrEEN0&Z}efKeQzJr+qihCgC|*HWJ71T`#3zR(y)&%*WMe}LL1 z&tq@tGRNKghyu8@9TRCwUTq&7UuO!{GEzw$d?bpro |8)tU(pp){Vc| zF#}J3Os`SU!LIzCK>B6=0~~>*ZdQioKC@9P2!toj8>hrC`qE3Xw6Lrz gzt z-MK>8TF#QjS*GyG*&UQFzLS4dYdwUuR?lcPwV2c59W!Vq(;jbOeKnLK=wU0L W#3!#I81d? 78M9@0^qqhbY8C^n7uL35Qy0_qYtzI6; HSXpW0DLWcF`}m3uNW^91Lc zlu&*{lC2HYM+1++_%TKXt$9Lju+kfuD2FJ7BIGAzk!z^4wtO8KZdIgLryDP}L?umO z=?n;WHcc?IST6ZM_nrR4QDR{o6l!>v#@2Y+)|Rzc(ge$CZXUdHvQZsbhW5*PtEQM~ z#l~`Vahha78TY!X8dF*aTB{^3tpm>G(B2nP1;PXuvYd&~uU~T0KUyT}a`B!X7{Is9 zbTqB`2=)f7Hzj^)mtMr;mZ=MeR|}CF!CeeO%7q?tH{#-M(Q1LkUH#qdR0v#UE2W9w zk>FA_<6tGx!0%AjiJoo8ykH=_sj*t*!TCw9%gto4K5|UP!QzH3(Vp(f8bbJ_4$RS) z@2(i1ltTRka^Dp=E$Gru$Ehus4LGe4qAtC4q&4{XjbDhxZkKWu!&8R-T#Jscv-=0_ zq}^1c;_6I>hU00mSIW`{ZCM)>`?}9LIbJ-{I s1l5f}6HD*qm&Q+h{^| zIUnz#G{L>~1C6aF0f7r6Wzu`H!~Dx1`9ad7`PxZtx>U1lI~5&nkqky!#k!qf-}fO< zO6lBC(T*PBwM!}qbgurDY{7>hF3XRi;OdfIMM@2mNPE77+5G1xOJy&(#>suemvE8> zg3S$jm>&{~5f+#++C#=N!Bx@ZEtKg{y?=FZI>_NtvWwPpq&^q;{rU3!QyjT&OLmGS z1AMJ_?mjk&m2+4CldXUA477}JWEpn7Wu7&YBQv30t&XbVIHjQ^>eg}GrvR1%wU`o8 z =He|@hB9arOr6W;U*Ejt z#N6q7N9$>F1>2lc$SI$rZ_8q!5jlDJsY7>h774Z(%N$fZh>6P5gb9n2qYWx)9;&y$ zhG@i2=Npe&95_qS&7{xCCL9jxc3ja~jWpBfK&*mARJ~Gwl-DoMs8zVA775Ds5lPca zYU%!_EnC%TOz>0I#>2=?HuIzPIAb=v(`2z(+%;v;WL}cradr}j$hb(Boio&_Ji-xe zs@H}E*{?_S2|B{4+QFk`o?n2wZ0qD`ux51HsT992cPF{~Wno3Uk1-sWXz^X4%G5_N zp?5@0S&0b`lo#h1KMo%Befy#sw3H%;^7wiATOb0D-15v=7+p9gq?QGdSDm^Iu3ndk zKI+Id9mW2-S~j=@G2u|auUT{cz|F9mHcamG2Q+^*HFv&&Br9UF;DNI~+}LrQrr%1$ z9K}g6gC@mQX2{jv#)Bd@S54Nllc!HPb{7ZPHlrAL+6qL5mXy&LqE;1w& <}ZTMGw~x;6gx8;5ePaL>82V})e2ABX Kw#i4u5ne3O1o4x&w51FDZ3(L1sq#p*iAfd-f*)!l_^msow_Wl_Uo^ zzo<@jl|^0Q & zL%O%e`2&e(rhF2K9 imTr0p@cWoO19j5ijc%qZ_~4Gk z3V~t}J%H%3U~Z_YytBM82P@%))?qh5$4ic0kf?qxz&A+oprUmoYmYp)y *%Cn z6eg<-Kz{4&RiYGvEx{v~rX0|CIN|il4@X7mZLGT?)nb4aU+tFMZ!9mci?k0sS||tC zHOD(*a$7b`QM*X*lXv-(H0(zNkkr>p58YF{=(Vf;LJPq2l55pNYe`-qn74aBUx}J0 zjXl+V-!AA#e*#t{%k!92%a*+9)3u1}L${vX4U$B^_vs$UhIgvwI6EJIy6AF$@&qiQ zuQ$O#Jm}zcD5*#;v+O}x0q l0$Sk$YiSq=9Pe6OjTy;j8l)iz V9fvup{$xSRCFz(c@ zg&*oZFz6IH7| @jPbpcNB=m{97ut_8R|OGU-~Xj&Wpj@(da>Q=}tVAUey~Zh}0q zwxiBS5}{CSl3*kJl!Cy(PhuB?N;rcuxN1Qu>}0x`F`mwx-wdzjfMH>{2Dk*LM%*8! zu)%0D66#1=7mn6R6=AqJ06d(21lBQw8Kj>uqbSA)Lfu1=#)g>^=3goEUIss?1X*&@ z(68U^lKip*Nn{|ls;wQK&0X0$hXK2_6-Tb{!X2_89=z4{_tX| Jqg=sF;arogv&`lbe8#1|bI7+1g3`^lHBZREYq2M+R zIubmYHr1JI6M!BIOJ3*m*`|@rLy?@dM03fjw|Z&?V-meEYtr7|wt2V8T49&4skCLn z8mq?stUNA<>XfZItCnPmqw-yaA-ibD6LrBZ*GoGr$~8~o_h;AiE(QOo?NLDg9KfmX znj~=jixl vq zeY$9xEFPerHa;#bXO0Tr&NNa3@93NZrDFx+HB=KIy7F$T0lw2qHJxq}Sn6aPl?^BT z`gvv-gY7= zCTa0)*cnQz?64Wu(YZ0-|A>cak4~;!L$?yG?O?pB;lu}HISv};d`Bg~r%2iA7Pi3t zJUncfvlZ7W?j3G~7tkTj0IEdp9m?nPB;Th^v$^#~HOYk8XSh#1aTCcz#mYs*IY4KB zE3(;t^t6 A~W_!(UXSeXsO18>sbR*gty6O>@8|^ zDjA!yu{mfsb@b_JuuQb!+N|3iZuo@4oSfRp(Lfc0*>ur*Rfq^p4USoR^Q1X!)Yg^B zG-II^oW bpHAku|zv1nqiHk_sJvunCe1&c%<%Yb~8{9H34)I*{y@gwka6V~yQ zi<~G)rsE$Z-oZ6-!ZPY@t~lq*c ~_xqXcJ<3?lw-3YI|{bMVYw3dg-@vNL0ep_}M0 zN>#i$x%yhgHys1p6v-fJ{ob2k0Zon4`pQaijTj;np5|X{YA9JV*45 6#2eAz$y18(U$6J|FV@#5n$mEI(aG zw~CsmB`+;UYnUWmXfB%gsoQk&x1$F6F@+qH$xwskB1(GjLu_?ZCN;-ef>i(zae)pu zjk8n%+u6QIBNS fP-!%^!j8xc)B0W-cdTiZY*JA$9g1YWzbxn zM$&=DCedV8Ihngw_(=mNad*H{!&|n54G(Lhf*SZqKDwYxMeLL?I|hI#A%Nq{IW|A+ zz}y9TJd^Qt7bB~zKWErakbE@hRy77beW<`Qluy#GLO032T_Fsr~;&|9t}>Mo;l& zXnU-LzX0~<%Xd^L>338p7-(oXBm`(USST2{cVx16h kaHAsvYU&AZLV#==e~gpbh6j{Z6@;^|1JsWPK`~JFz4{9%bA<1a?(^;vWbeEm zvfGpC;|D-r3lbQ}#4RGMd0abo6sUtd&Ryy`X)f2{2q ze{ge8`%{u@sLFSe$@U<49p79vhY %thSgI@yjK( z6fNePQ^2MkH-dVEYLvj(>N$yTEnWO)GOXGN%|u?%IcQL@$ r8fE zCvS4@?%M; $47t6vo^JGSr(_HR9e|4zZM4P!PK>Zh8c-l z>`UlyM>yGF)d2W)^yH9je9H;SvmP~L&zbPcSY%``nwOJ01evH$N`TQ84t1+I50^VM z((V7mPlzY2)3=9tZ>@)7s{X&O_gAEyVd?~uaN+=X{KjE}{ig+&NNQfN{qMG`?Efjk zbpCeH+z&LQ8{!4u?P7B|y02cL46aSG5@38!<6Xtf j#JgQB11Q zEE31Gv)h#%{ruokk@qTiC{o(8= tDgw<=anf;a$S%Gy9-pzXm7N z(Xvy?VLIH#X}17Nb9#R7&PzkzgYENvpf^GGnLw3F?>@+_9kDlbUZb6$CA;5(m9695 zAjhWiS-2`I-cZH>gEJ|h0u#^Gmi@r!*?d>D`lnsDPxF_tw&~ztVm^#WuD}iimy@{R z&>+sb;lW| y769eYCf)B_!IVUOD zH(corsL^W6|M(jiodV-Yr*3`6)6QlqlkmE |R0c#H09B@?Ksjf;*V*(j zn)66FJY9PH=u#xXgus|3Q!9kCL%R|RWT1rJU6;99P|{JX$~g{ugTdYCC>JEE#&tll z99M6= znI}B?=HgaOVyLpLNS3KTsiY%jXGL_w-p=sPi~%M`nKvOGRCOI%dJBJ|4HyrAtn582 z9TU79aJFk!pA?F*yi_KcB0QVD #nc;*mO96lqx?Eaq9cjMh2WQ%trNw&ct+C7==>Kj&ABX5*F}EBxhzND8|`wg zOXz8 >?K=i(!>7+idJjF0$q)pMgsH%vJdt~>7}dtM%0o;EXqn`{U#qjBCUEa~F0^p# zpGxhIIj4r#Z{i(g-_c78leMYV<|u9tX_rtd!tKyB <)0oZ?&F;I{xe0l@POJ? znqL(QXTJY4xQ`SO|I*iQ=?DKXf!-HyV%j^AABqX>xU<}gf^aH}mY1X!hfWkw5Wr9S z 7 z|H7cPMLu-X6AtZI!-H(q`@(sGne+R2vd8 FowxRQ@o{jYK)KI34;Df zYejCk>Y_F9tEzJy`Z%FLdVT|GkLTEFF5?!ZBeN6e#93VF)`W=iIgbnn9V^PDw?&vt zD<|MAAk351iFG&=5|npSP(IYC)I<9MxKTVnA8q-9E!nolYhKf!ld0~h=Drlq8dKxk zxjb0dP7YS v(Lsq^bH38$S~BeEIdCXA?^s$U~R9{Gm =fDSdy{?!PkE=Jie|lUv^||z^@E^|SZ*g2N3_n Kh)<^5Gsj}0!cV1hI?Y)$u>8aDC zs<= {_zR-g5?<9=YbcjpaD2>ii#bs|Pt%J^B? zMb+Oe@VQmakRIo_V`~-$+htVC-%+0_i_pr$=;`x6^LpP$QwP{k0Z(}^Z+x;|6y(@? zw_FBAFY6E++cBK%lnpKP=hmh0S&gohX;wg{sZ4h}%Am`n6*V}|wrZcWeoXO;`2b>Q zB^V4JX9XT8029cZGZ>cf)ChLq1SfpEM%tJ<{QhS2nz|;H4IvVc6;=C>6p*-1Jor!Z zZ?-ue2YDS8Z1&^-l^H#28Nm4W>8s;^M%|F7P x^eG)M=^GMj?K zN3o7y>$|gaul$KH0J=(L?gGY$4O-nYp1#Yn5EH{#)4vS;Ap~(Bg{>9nQn|HW#^rS&1^F>&@f&tT7l@4o~3PXAPMXpkO=^kY|1!o3@9!Z{^LJ zb94_r(@ZFm)8}KFw!Hbk*aSJOHY(+;WVS&4Wl*YE+6wIhON?IN)2y`uGmyo~*L#9R z*NwD!hVbxWtv@wn63lbAz2Kw7T)=^b=-U*$3G=TgO+$7;gVA!ak5K1%H&h*fec8LK zT9NRXAw^eYYH9zuP{EaCl7S0qf9k~bz%PjY6*C?+1CnnjM{c48zA&UB`W4srj< zFeuC|u)APZe$e9bqXO5-@i*A11yDV>&`wDWAhW@;e=CwmSLb s~P=ETrXDIBj6-N!fUMqv@7_PntCNIpN8 huZPB>ZM?=A!?G2`>| z!^=G>6HAlXni&jkLj3>XIpb$+2`*>K#A`WLH_6$4r=tsbt`EUmFc5}1jfF;M&xGC| zc~RO7_h@07rK&@%ZAKT|vnN`ELwwXqgF ;9oDX_E~Oo zpSDKrm;6c16#BQvM81uD=%~`mwd HkPB>I4l6U0U7lihs^Q(y? z;bgssv&+!^c1(rlje2s+08l4FBgpNvSi5Gj<+}|@-p?Sj7-y9;(en}5vCty&OS98- z#k_USPWM5C34Y<6Ge4%-b@g79Pn{=OT)yjC&?i1fqax#RA_rYOE1PY0#c={PAaAn= zz}9P3aL>k}XV#j0_=8fmn)z}<8M3#eLzF|4$O Zr_NxC&NR9pTm##Ny)$}e)+dc$*$YuzbF%E;x4-PBjSo*+HPm@96 z0O6WW@N3kiKjpU1M@|2^!Cyg&vBrx{T@nn0a){j7V!+DX2@Yj5bh-fMuL&@Ab6V#= z&WJMdm0oSys)B$21&|iVXyZVZj(&2f`9$yw+=HInwP`K4W8#S%M(oGFvNl}_c~)t_ z@=nlGhSf4y$zvBr5L-`X1A{5?AMx}az4nwlH0%LM!o4Y_0AqL~99q6CSBI-Qb+|g# zF+}c|YSNQaFGN83&T80d^qO8kzD>hV8u fox2V9p;*2@*Nts2@5~C9oW%CK=sQ3MQaQ22Pq@|e2m69sROs*e z_oR(aY4P~My1n|61+O TR-kr%xs&rcacA77a4`du>Mh}(bfCJa>(W1*P4JAIic zxSK`JU76YRbMqdJg8z+1Bn&VzUPB3bVt-Z4krC gLly_>R?R&M7bH6gRMT_a)=j1lP=H{tER>Ga0fxCeu67ObjlNM!JB|kJBlXqtJ z7XUoCaWT7aF03JIJqN$|+Om5Orvy%Wy2HNEAK+=RyKmlw<-x+FRl9WJ?JBH7_tlvp zG=KSO%9aRw7%~}5uZTsjcEw=f**i;|B*5lo_js-C=2YV4z7aOK8UA31V-_lbX)V$# zTa^6Ot`K+kJ$4k2#F!4hyv)u{!4Xn@@{_V3ErT||IG~$~I85Q3({2MFFun0vqmnZp zGz9I~m+7?ES7##{w$(s@>BEo(#f74jv&Aibulh4*OG (cp3FVuL!_XTfP9*Q1Q zKz44Hvcj4b(K=d(oP<$Gn)1rsei8Y~cU!R6E^Z71|4j=u?2hF6jMUP@Mjy+ZvrdeJ zr>lz~ul}WD$9*IEFJRWxqkut{3ps$t)W~-gcM9rR@|oRXV22*YhkhTr#VmLxYRi42 zFe8~?z*TvK$fZo%f)q&j!Ww@cw7IucnAFdK_u-dle2>?KE&bQw1Mk cD33#O1W!d@8)RHwwLO09JvVF?lS!aX0!M z@v{?~+cyXdT8YsQ*;h<_?HvMgUFdw-`xV#0#Yvr6^dCwGJH@-2xAJx#x(0{wxC?~l zhp}H2vj(%mNevJ32be@ds#IM(T(UoJxiPPVh1u~Ox(dD#grc)zP=Hb2j(4;9zpSKC zO^$L7Cc1{W0992X{!GSCY(iN*t5$yj%L`4ez9hz2{DQ*|I3Vqfe}F9JrbD!=I|~vf zv9X414f5^pNblSKNC?o2PIx(G9IN=dzz}lgq(-|a22`git*i2G$J}={c<~Vr-DI8Y zfp-pxGy}3J%_nK}X)t3!?&!lrle~k)Tc5XV!V(?rmI`(rvR)yB2uX{o*hXpP W`)+pbB zaXYiO(2+v5A_&qUB|dh^m+RB1y4ZlfN;b+XmG77>+!mn-FhAc7&D+${uEu8NaN{nF zxiImfkEba?#(~U|K<4bb9%Y76-&v#q8k*ob@hk`a!R!Mff2%_C^atjZvYXVZBDsBT z=5}`b6o>We5JFeo)QS%@GGdaczC+B*U9e6xgjE04$i~@oIud@C5WVM>>5T0uAiSSv z?fBEsPOivr|Gxk@OGs-1S;<*f=IXJ+#X3jM)*|oP(o-wt859wp&elzX(3uM~-WG4( zIjx9oX!5!nojm6BPMayLhix_^IAAC{eo48=$c>HcNU}zzi;PCWnW@3?V;CUMn|^0S zN_``Cby5J$(lCj1W-V{LQJJ!bB8TH+C%&7cW0(mZ4b}(bfXQr%b+rH@6;CP3mzx+O zCc^Kk$P#BbNW;(vz6wb5#D`|+)V%ay-d!Se?65MGQdl4#Fg|JR?RPz3mep%CU%!f2 zH%@)B1eDwJowbjz)X1`J7p}*;^`ETyYK!civS(!WFm}Ne{g) =ZO7I(4br$% zj$S;}D1q8{WCeswdqfT73j4_Z42H!^@dhWFF>o*=K{lX%4?-l7;A_#Z@l%lHNx^$m zQ1-Bevx|q?7K2VB_?s}SMU>N=fYJRz)!ZSm365hUriQ3SB&xeBrPdgy)*X@%>~{r! z;<*u< A{Z>h5PdgJ4L^*W zYb3yV4HLJM->x)KEr1R=o(L}DO_53%V2_8Q{q12mFt#=89S{WejwmG;+4!Q~I92P9 zsSYf$q4Ls!Lq&)1jfj}_RJHabxP$#x$EsZ9(;Kj6>JtH5VZXkke HpwY!zIbT|jXjB#nW=Z|e(|88T>IPl~rxe1_MHuP$s6st}? {Y{6 jQRM_O^Gq?sg9)L+7#9chwjOt&Psir%Eq!KpuPf< z*(O>oce_8KA=n3}lq106+@@@ms`I8_e)`6d-|%;zq-gx&G*+>qw#j76-3nt14lN03 zawSgNPdWDdb0lAO4G($5pKRC?JA+s)c_SZB G)dlLqVyA zaN>|imYkU4>AjP|su1X+XX6?yH=908tk` i)si=Yx z9hg4Vdv>b5Q+PWgLgn *2TdUhCB$rY?Wt&q3~ULKXG90JVPi5C*^pD1lBs`s~(K41;sDzkr@- zHM_&8Iqv+MJ~fBm{m%?@Xjk7Hgy*L=JojAIkLFwKPC0W#Yq~$;0ue+r%}`dW)SMh& zr~{M MEZCR8%M3BP0Gtt!^lP;ZZgWM8}O9QL++;kFKw0P@MA z>hz9w?RY25FP*;jiO%YXz$0s_H YVgbp{g$z;z$uhw4TSF|$p;!wafvrPpQqT+I(5?OVXvoNOv`7AUcjU)lo(^!YTd zo5Q%oDT9xpIA3 BqYI$SjeucgO-O7-lOvHos4HSozmH?KSjQRgsi$*i(@dAXVam zBe|qAyFB%A%$~WPP@!>U^AXPok(7!gyp7JIy#j^3IT)Wee>yeFJvcQ=# +x+b-H+=}v5m}cyT|ITu8}0#)ceKm_i7FQioo@RNzks1y zE3ya}f_pbc@QtL=3$XdKnpvM<<%V6Ai8RphQfa@vKW$ZV?Pqdc2F>_mv$a7&!kQ zL&C$x4M0IGKaE(K0kb>?LKVW_LaW^~4I=x!%9*TtOw;acJ`SZIN49rylesdS1lY(o zbkK3^I}73ZhD&^$-^@>aYJ40;kV*fnRp2lyxQ61s*I>G6zF}j97Hc0aYyGuRw^$w3 z==H0kqf(39wyA4C8`-c$pq4@_V%!M4g@^VDadF}zHmqXj_!4S{YL(hpsjL-Nh?;1K zdtVpMF@B~d>~_!x?5Y5ze2CTpDeK@nOx?TV#PW*X8&`#NiU~-ERK7x`0)SI!e=sNs zpHW+)6<9Y omvqHn89O)UC0>A%l16AGq2ZVxi5h#xls5~0CgDHfgEbm90 znh=kF3gh4oUePCWI!_B&5gQWr4HQ%P`Ku)k#{`e?FCdGoy2=Ug889f!H66*=Bb#1s z-t$tY{+Rtjlhi1Sf=btBmh f1gJreuNn2#hMgDo#=R)j|HfUm}>0avvJ;i9imhjvid z7oyiEcG9IT8}K`eFA?YK;@io==(G&*@ZD=y^n9Iid)wFKxCcT~qavZ+87^`YF{@xO zESyX)f`w1qhY>Q$?fBVN9lsX871-B#1VsN8iKIODfarMkv3b N-- zD($M0&Fi3}duhb}%LK_jLaO?HVCgV_q*m?Foy0=tdhXA9tH@KVU{lBz%%L53OtwGU zM2dI0%zkO-Sy4r&{?e1&;_w?h|1uD4{vB@W IR)pVnGpob@8RNPP?g=7(YXY-~D|5xk zE@sUegW`Fq#&H~;?Q@Q>)yAf%V#5l$xmKXjhTaIUo9vj+MsOmza?%D@r-#sA=^e>M z%&SXJs_Ai8lVO6 dd_5Ungj@ByFHUs0=jn3?cZm{pd5FRqUdE?&UY*P1_?@pgM8( z!8D@WYPKk4_C0KwYXl6SudzT?Cq-^?^nj${5kg3}wi%vxL@+Jx*46|=b@B3bo%@Zm zT@mpTMs;q|_-Kc%_&GQC>|47Jr!%!{Sp)~a&7ZC93$Wu!MYvCTSRW86cSP&LfClF0 zoG|i=+ gSYBO4^VqPUzAZWFR<8r`L$aGR|q_?mTFgrZy2Y0TqEi(4ubV-EA-MR^HJ?6v3>6FE*IhY@RViA1?T zvZ4O|Oh*}a({e#t5AgodGEFbTppu y!eLTDQLrqtc<~l^aF0-Rel+t^e0;%`QHgGnh*y2i2Gi{mYT4${+WWW3 z$I*ut5W>z8)kUB{>4&X_X*9UIblW4m?m1x99|!0TbR)`IIi>>a@fO?Ml`Y60#zf7b zYs3?#ibk1Xw(7G)B7va{-Uuu>R$9_-7qux7f^T`O&O5-WI4NG-kAO!80l^hTez?6Y zsYS>KW@D4DIKzkuHG}TS-+iT@dg1eWDp)YYmBRKU${@VTpXu&kyyBScloZW{;}Uk! zQG#}psp?8zd|V>!%wkIbNaH7rc#Meq#yzu3OcNINN-=^6N6Dg>F1yjw0xn}Tu^0ie zDgk_iv;jB@m}8=Z-Hw!Le%9^_N2nxdMtknaX-Qp@`dMu`$OOVkTcvT+tTccW4%n{Z zH6I}kE-vLXD|v!8a*7$0!q*^Kxv!KaCXHe$Ba4*I--9mz08CMdSk#A 9)66I*B`p)h#}s9BLXE|=UP1}K+w>M03UZW_ zS{}amH?p?IHZ4az*`yGGygpRNHBKfg!)_ {Kx$r@Wh%E%}u#*>Cgc!dET{tREHmdDU zmTS?{xun!vhf3Cpza+ord( aQGr~G)Gj-%a}6B>JsCy>99uj&T+MknQYrR7ivr}U z&g8wdhn{3eK@#RNwq`jb9pgk>HChRtg{8cUDHcu~c!j&Q(p84$7sQ&g${Rc`*sObw zudNt;@SJ3UJ!SGG>z+G=-$evqRbuZ`e75>?P@&OrMYco|$uWI0m|3sQcpDcO=9^(; zaX$p7kj6NYC+dp@mn}&Ke-8%Xbx2(zsDl$3i9%vw+Bl0p7eoNu#H|!yIAS}d{1iy- zAY4-saob_g?~dAFc;S}s*RTZN_8^w=EH`)Sda(-3QzJ%E2t&o)3ruUOu=dO?S?Or$ z79~vCrv1fp#O$d8u~J*Na9iRG<5<0rT{18D4r6I`VN#WZ#>cF*xs$?th%d#OxouD= zrWefT8$S#39WPWNLOi;_f#lX*7?!JQ4fV4m)uR}IjkohH_L2RZ{iV=giYQ{ez(qf8 zkm7n-wx7Evz1bMO%;->SU466_g1!ZZ3>Nd*bB=U$02|QukIk3z|LG t=x_)$zHfDC@_sX~Va@-xU3~)Juaz zfErZkKYsz~*SB)PTNoj3`e3Y=L?eWqEd(HV6dNc)^auKamI>uttca6?cow|xUkm%F z)^PcX^Hq|v` ZQT=;^;z zWWmkIw--Nn+bfQMF;rEPdlVDvp#6d|b@l7FzRXVx%`Ux@H@)%c6 ~{ar+N^{q6Le zUG$?eaZn}GycHrQ#(y<(OL5)(aq3IdAF-{Mx4mTSgAdeOUnG!m8P$s=pYPbc$r4|% zGAT=9d;dN&St8D8fHZX$mSodaiQ+k85iHzmk3T&6}3k34}PDadgBekiuD4 zkwj6%!LZFu^lP7^1TNfC>Eu1=$s-M(F2IafNqiq|EGN*)0#T6qlZZv-t+l*_zeU~W zm4mRQcnXbTFQ(u$!TnEMcFM`ut6@ZqkP@sjAAnpuWi2lFX zz;M=!k-vc6W?I+Gw}4-7OgW!^A2L0Vf?$31e?InKgecX`;#_((IzMRQ-!fxpAlDEJ zxk63n#8MSw5l-{e7_hrVf6DeyjDQ>5!Px#KoH~wtQCv!5ddRCR$kPY>*!Sn+<)N@X z8vRoqS)Y1c7EpUz_n7E9yylp@ M7Ob@ROB_NXCDfK<18j_^k3oY~b$Q&RQVylucJ2apjaGHbVeG3(Xn zFF^G0_=S-YLSMl7#5=8m`=j6+ 47*oPhuxQEzs2$}eD z#RTEl4E&R{9!(?K=+QPJ)FuBmVrlg9GlY@)iPIjrfkp6nM>^z7!OdR)a&|Ih+%jPN z+ft8sXbfXX43wBJH8aJdkaV=)$bVf{B32@SH`G!&QpMYA?ow)AP?O(PC%ED!qW!vy zh68^f0&UrgLJp+g{GgNQ9~A;V6+Y+#_VtK%ER6T49{UC1rf6d+gB9s06hn;NoKHG= zQT<)$R=!rPj{zhQCDOXTzM7#rD2hTznP?Dk3{APpj568d6E%hFsV;Syd3EgQSShno z9dbVhQ-s`cu(JdDoKZ@1<4`D+UQph>!aLA494)DyW2D2K$+yMt;7O=B9IdfY`XfF! zQbHa3D3M+fI7ZSlmWX5iPU ZU7R(%rwZ9X^s5pP9uEBMv|ZymvG-{B5`U z*5c(#odSd!)TI6eASz9%`L&4c(UMOwU9@TNs62+s<&KrR3{y5NreQGrpb5)-E7Q~6 zH6j$TZ3~e+>r<#!DvO!0VRbA>6enPs3e_#wea#PM&dlEzTA8_>Hiw|k^-TKbu&d^l zG|Kd`iOF6MH4co_7SUNjgCHIl3zk&t7`R7^U{{)3{n9Bc(ZBS^npf;r@n21i7O57V zU19O8Poj( sYfbHnqs31CnQ8 zVJL<>kdc}EQ9O6WoC{z~rKZ^DL1y=7X#mpKAKZ*A;b!XtUgbsE))xyLN%CibmV?_X z;ATlxx$(&pX(B6dsb*ysl?b>*MJ^;lEm6K1txN`4j@EEFHw7w=dSSrg)&rNBcUWn8 z6t~P;P{z9gIEi@*BR`}g>$`{lPC2&wR;EZ3CPz|c$Wc^Qc>DI8Of_hkrUzpLv3}v8 z73+nW7giYPIg8bOpdoMY4>@tR*@p^p6K05HItg4%&wbvy!a#BZ0APaO`pe{#g-uJ4 znY6}V?f>`p82_#0 paw@Z~=O-62u=$V#r&Q zC`|~Czv7G_+k!*I&7cu43#EBXF-hSt1$7DGM9z>NMi8qs*~Xe?Z}Z0H0TFIU6@ZmS z^`B*vemF?x=}%Hy1)01TI)<700>(ue3jKLclhu|YTB4a){^kHb1*%ZiQ@4-!C_+}V zur}Bk`#M?qn*5OOi0(y46gx+%#34&*(Xa$=^TVB(s!zt~V;XjT#&dI)Qb{{PeT (!m?$}4IFnHHqkQj)@<@V_V;9My$}EWVVwTiN9&lsB z5M8N>3;qmA9$^TzxI)FM<5@sq#Wd7xQ`j0+Y;t8x%q{mxoKOi}2MS3c6Eamp6zJ2y z(-h;AB>OwW#UDQFCQJyV1vh3|?wAqXS5J~6xeqOT0}oYadlMNZ%~^mk45NAAJoI-G z_FN2V`jgEfCtYqC`wU#vzq9pYQ)WS&C|BiAa+{5JRW1+i_y@UP=Z7T^4QI+{H;z3k zw)=Lm&OTwNvJhDeRJjpq%;WvEwszmn7nH94d{M8;frfkumezBnS9lYbpt&B8>{s^L zb`lC|q>Y83e;6#`)il${+3`_$0RFmli0G{zO0l8iLzApFn9T0(K%&EF_YP_+9M| z|9?nyHC5u)n|szI_xPnOMRJ4UDzY4TDR&Bs1 b;QrKkM_LOs{O&bZRB(5-s2_E|O6tyKc28!Fhu6d}loI74y~IsK0s%ynW!z z`a-U`1@N(qAN>nZWAhxaOv&lbtEWIGgm+_R;bHY>WWs?XR5BbRDqdN|>PN@fc+;^* zSGLF+0F?}Ipc}+Qqhka*ys_nkL|2i6_OvY%RS{%W*rN$$(r2-=Kn2paN$)~h$?i>x z88 zScUa?7 zAHgqsY7ayCp;-NVU`6Y2> vb5Olk~R~a<$@<_054o2CId}(o|N{^8~L{$H{ zURs$Tz(F0VSx7HzN|-;QQ;z4KG|`5DO3^-D!eU5d$(#Yu^r%XYC4^6)Ut$vz(!3v% zjKE0WdLTeyx$q ghV1FQ>=XQ8WllWe zXuKD_pQq*()&GFLGBHS@CB&uJr4`H+9{kH9C#7sBQY0Kn2xXS3K=;*TW?T8ER@5@8 z%2z>=aPauyD9K@?C46oeW(*S%DiomiHi!Jjnt%uywYM_itK)~)fSmT8|EIFIj*9Ay z{|9H7pkWxghi;@hhLG+CL586_q!ff<2m$Fv5r>clX^~L6L0Ve61SLd3QJ2r}ySrz1 z|Jbwp*S+ui$8(?ae(rPcIj{SQcbQD%LF`Y5+u~}i^w%!lQN@tR@Gzb3?f%|0fu1c_ ztn&681Vo#p!@fX57(_d8dn6kML{EN@MqOpGJtr{vs+;KFpjvMjE?DXY-=({LE?_{= zJ@O-HTy@XBGP4bMW=mHaJ*wPTKT-cHDFXgN=Jr1AT` BAaQlN- r=zHXru1ZB{wb>v!I> z+rFUnj#Cf`bX0o$zLWeJSfsAgNHDFU4^N=Ihc%{K rW
>sC?b4QE#65Z&kKSchR z`)R$E7_hQt);ZiZ>#DEp9RyYkV8UM~S4>HbS0L%nazkpG^`#%R6Tjwn)QI*X?Yjr@ z%X5prF(m~M2%w(M(2KQ~Y2ynDNLD`MxaynbWlxnRT4$sx^z#C+`=x~9vGxixcv0>6 zMcARbY)%Vpf%buOr@{b_(n8El_s#@qrzIumeVODxKsg&F?0j^CT-BM>ygOfXE6wUC zuNTTxfSiQ)`|b^N@aWph$aE2Wf%5TABqb;&o%jk;+4TX+5kQ8r*)Pd4rFv)Kb!xBh zc(VOuG3%Qy^8TB>#arbbh_NA-YZn#Xq>bx~n@LS;DQ6?6Mi#mJr*W<_*PO5vN?^>r z6T(5toKL3D3i)25%~M50`a|)S9L{3s;`ev-?oqRsA~sfu^ayLlq90;zdO?g5w#{>* z4W)=2HB%y@(Kt~qhR1Tk0e1SV1zu_3TlL?`s{*S_t-Jm0@;&3s@+gndlN8+mT3F%% zEupU@+1a8>k!Bzh0g{eMk2>}c&cLKg&c6L%PLMX2%vbfiKcBStA7I9PHGNl4?hRQs zekeXYaaLGNX8{f3i4?l?fS%=| ML( zbaqRk3v(X6#)wlBkxVXxiqXvowySNvr<5dgB(Yri2WWY*6nbbO`qGtvf+xxsM098+ z$UsFL*H=z``Mo=@E&D-m*rOa& hl>h zdQSeB*jZ0tbtg}4a~-0dx%Z|1p$Gui6lRseJ5BVvl9;uC=4o4D-v_}_IcYjAfuIF~ zKe>0n4ztrk-&4NaU<;X33G!CnAUx=(R2<9ap!8Zr6iLf_rbNKz2PmJz6}7BCSiQ%# ztdJ-J+u28@x f7jY(FPVT!@pRF3TTFosjpNLJ)qBr#_dT%-P^Wf+q2j=+b7(Vu2gq zp(^H6r&4u%7z0#--@4*7tb5K|R@^0Sk4eXI`2jHWaQKtYGk67h{pU-%_tY0T Qi$x&CSqFoI9=K0t`DA4+& zR+S!vP|cnt880vAN&SSf(Ho+tBUSmmD!#W5o*S%EJWr|pFiWOnCVZN$7UN^a_C$7o zKs$r8t*hPgSqCT`0>yeLFrzKL%MArTNpAE@`{~r1Y><#O`+=2Dp`@IcGc&Z-?Sn?a zLA%f6zWozq{9+wvD#Pqurm{2<2R?qFtJCo6dVyVK{Zc4Tz}7hk3N#k`B?c#K9~^(J zEv?Z_?mX7lsJa+yIvv-2kUs2HjOxrV-@Vc}NRiw~KH!VXHn<`9P2v^Nde)=JBTR5G zoh)JpdWRp?_4&dNP&Di=`$0rFCpOPEoB8=A(a?Av@sKcsX#aVi7hc$R(QptRDWZal zdS)xR-K-_| #1-UxQl%ZNYo<Njp$Mq_F?9&2|gR^WL_3M6rEQDx_oQXym#8{ zVJV$PWiAuo&u2V?vcQ;d%6EiO61RS IE4q%`dh05oN32C?`tVi(H 7w QI5WrMV64KF&_95nU_E|T@F2eH>u(hS=+=iEl togR^H~WBb_S`kfn1lCirlT{B z_v;MK)GcM(JJwRiX#`7|QxLX?pP%oG%`@qSz1aH}m~`xL9}$X8+!6iADo&S}nW_KI z{a%!_o;ofI*yHV?^+xn< ~cdMtGu>VpSmyz)79Okir#9#L-4#$af z-lO&o+g9V~*pcW5b;NO#+{18*r4^0SXBk7i09zooRpO)`Gl5CJJK3v4D8t_#|3A?L z-&$U*bKL(^@0Xj_AvT{*jcIfk)0QxzYJy yk($ zttK9`;LurT)yc+53@;1P_9|VA#K~@vn?pSSlo&&1NljUfi|d(Oy3Py0$>7Wv*uUOH ziz4grHUh9)^#F1OZpS6(DjAeKD& zdWOXUjhK&h9;<*WEh*N0qsXY+OoZ4Lz1@38YzmcN?15>dki|3CiK)pN$8_WMBs_ZE zCV1USaYj9zm^~EeAxvxcW`2{#lmp;l`}6Zj0c5$e$ HZqhFH8_}hI`e3WzRl;z4B;DJrbSvO5~?W&Y7?5B#dEJY>HRdr2K)&%bc&A zLTr@2@(&+(qdgXO^%MoGV%si68@||F<1+&`y^fRiz@a}y!Mv<)Qw->j6>}^FGT2^+ ziU#9Mz8q)AnA{ | zu*WB3)k^qPLd(UVhZ;Bi#}S*~P_MLe;1blwP~U+BkRIT_;QuxwQlVY|Vs@|R3J`x@ z|C0ek6agAvyy|Wxk7)-|*prE~Z!+b2jdVz}+1i_u)XjB%Vv>+`kWDG0L^#sMMMo1g zpjVs7KJydG2Uefuz2(7AAHI1NR$*X8BbApMRe93A;R9@={K&(wd!VHzN-iTEH7iKq zpzWQQA#&Kur9~7vbR+6WTn{b0C5gL>!U`xToHPunX~3uvBEu|q@)0MvOc*|6;?A%G zsQpMwW-CuUU686geO?Uk)N)tiDHdgJN-wMD$0vrgrFnvI|D~WGD(%#cZgn>;^9gxT z8CWc5AY%~1+0m_fRer!Zjn1+a%7%rl;xQ4i>dS{e>?yF3OMuW$Xy7ks`L6zG``Efp zK@}UmS$WkJkWIbeH~Oq)1$GH&b9U1d_$kBJs{kbNZG^r4Ya SR*ePnW<_edsWBAxEw`}~er3j{^3;Tg4g{-XYGe$J z;yW!x9HP`WS!W%Z6c9%8QCB3r%&Go7rVx?oh?O8Q=xVlFl+LHem_*`pAa;ZULqpL7 zQTk&&-8!aQOv{oHY|6DtA4CSYwpC2DPr&8FX iu|qt5H?DTggthcYeutw_GcWdt3prl zpT19-aVQp<50vJFrqCrDxcEmKZfKhykOX}jBTeXgR)F8yCM=J*)PSq|Dh~OJfD)-$ z@djTxAkMMl{6P^Ix1Ha+*PwAGmIGOumU6bG66^3FtQ}23waVIs-?POHx{xnfeIWXx z$9Mtv4Di+imw2!;qzagB)C)?{jXy95-_(1*&psSnwWjHD3~7p^A$0vu7E~7LoIl%U zaco`~;&BU3hj*gCC=&(>DdhK )EYBrE)^_79@Cu!7vs=(Y-MV@xc|7ljchjv(FO><3OSap8<)o~&3<^_$e zZGPC7!i-$Zp+oCu4N}Aw;X#N^DinW5Ld7?N$%aBExhxR9#WT;SQO?kJNpX0APuHF5 zEd?oX?)8=Kh;LX746CodXnJB2G`{__){^F6u-8X0!#<3018M)_x=wxg7qYS_2QZ>W z!;n5Hoz$gkh`RslVM8O>3zs4>6Q#1wHYi?Jr@M^rwaqem6`@vu_|lys?V92{dQ|eoY65}8x0a)XeS-Y5Akh350S0 _@Vesx{9&i9rh3wO3hTAXoOa^yMkaHnHz*nj zCfCy>6nN176GX04UAdLu*7hW=F~Cg*2$FHQIeI$F;S(AaJ!ElG^Fe2iq+5LsN0jG1 zRNpIZ)S;#kIX#2U)9EnEL9;$FDo*1X3x1hlkuJ?7>=J YAOlu6OWY{M)<4 zhNSX9M@FW7QUKMjuu2$faeeEQ7sH{yy>*#1zbe9Q!QNjYd#IbtJPziusfxx_0keh- z(BrCcq2-U^GiZ<5G+JQ!Zz$>9vd*Ez!Xkb)FITq?6E8kkhjU=C08^$8IhDMKh0B}u zT{c@5Q$~$}!sKJv6e>_>5k`5kLR--L%cL26gZitJX?*s+uRG=^(X`F3ic5An21A+r z-@Fxjo(oV0LmEV3PaS1YR;&09h5!Yh#(bhf# AE(5e8)d;Z3Ebg! z%L_2xzJ4t)9z3H3g!RiSryo_9DGy(xgw_uM378rAg}nX|dw`i w>N&{M_+9hIcHgZxsEdIhpo%@j~3n9-P!B~!^SC9Qv3CIbOfhw+D=>9zMdG7 zh|kYZ_?j|1r^8c(g}0O8GCNfkKJGUBjUbY&mY6-TbuRnE;ln9~6=)Jus6zHIt%n)J zh1pUf0aGwOJ+z{UA&Jnw3l~9o(%>27nK(}E8!JaR+Dxw_6)a3N@&Z=ZDkNL5&1ahY zft@Rk@jZcyZ^4_M<>c%RaR;XgTlJqDP`1mWApXongH%@XcVog-!v?0;C}0CE-W z?A@+OBTTqqtK!iB1>_w(kzzs Q{}X$lti_B&)V57qnR4|jC%Ll)(ERT*UEsBdFTA>FTI%FI^p*^i0WAI zchkQFFlYxMl+l|f2m&BZbbqyxfG4Q8s0Wfcr?4?vapCKw)kdG qdj|0XPprT*ApU0>bH<%6E`4e$RdKh zBE*_%W`gH1r-I_IBENGw-ucj3K4H{E0$8DL4y~@E2|IpI=kgbcXr%;?vvLF0Pg@?8 zP(^)ux{BZCXv{_B_jkt>hB?^bY9FJ;($t%n)4{hEMcpv7pt)$gj=1{^66+?f^YIi- z6I^{b)xZzE%W22msYHx2H}zn4HN@@R;djtdlkV<$7@1KDWY-07EjIW>@M)rw2LAY; zdE FsA$fWnp7q)wMsr@*jBsKFWkN;1w3BkORq&>5q)y9|$RbP5=J_fd4~` zk4Cjf=^H73pWTt!v?u_0Kp+GR!H1GS|A)+mM*;ZHzDI@K*uftRql`+2AjFJJGK!#7 zH0XwD5pfAAq^fzqBWz|5wW(ipaU%!kChC9j-0lWa2K)oq?ZYI+Pit4pa3hT6n?}K* z7)=h-mJq8Kjm; hKUFe~QkLeH zB#Lyu(G6X4D!nyc%b)h)8fy*y!xgN{xh@=E4H>7eOs(VYC4rom&f$hvZx<}q+*o^g zM?evj))0Vm*k7}5#f_(Ml@#-&XA{x#A Vw{q9Yv_<@a&%reRfT7=u z!2?-(aRm~ip+@m&+pXYbU|AaDQ9WhR7b u6rHHQLyzL{v|mRI!A|Jf$qV7qmosD^5eH+ z0Sv&@v0@3en$<1Tf$;vXfgzyOcuBxd%ti`$5X~dJZ4vzLiPk&kzGhd1|AUgwAdzg2 z(9)*oTn#*A1A>cRn<}b%FJ2K-Zpr0Q1}61@L(B>^XwB!!PD|hdj60jq@$%cUJgmAC z0Mw>wM6pDUp8m2 Q<(l-jZRNws%Db3_cCZb2zg{dBGggGCzC7+fN*8G<{% zt&AulDco2>!pY2Vyd0{zhO+r(o}Xpd@3jMth-r#Odhu5zazea1WCy&KXfq|YO&od# zwNh07Te8PF+RHN932*aWUno&uQ2ur8{eX@fzc&3LpEwc8_KQ6CgYj$j6)WrT&n+jg z=Joh!>K{M;PO{FuEieD+_xH_HMdhYvmjc7eys0_0wa1?{jyohsrOTXtbr|mj+7I!V zS5q}M`*Bv~q^P>l8-*mc-kO(l%#BlN%b3Av)Zsu5f4QLiB=Mre5?}n2ltv`@MY}50 z0i3}x-q cicAN?$lTxPv$RzZa#X3`EbkV1%=1lzAcX=jQC>dp)mRU zdglls!mj~_J!Tjq`k%X)(WR%Sn<_f#`>;6WC3A-lsH^H!fd8+fEq6^${+#^wHtlux zkMEoJR_-3WycFYTVf2R(@6J%m$&+`fL^o@#XPf#nwRzN>Dx24=Y`3ZB%2^88Q|+!= z4}2CDCNJzlDJ6dp4=YW4yc9T~O?&z>^2l=P9^&_%B7E*`mK|Q-NTKDS9dQYi#v+9M zEHg2B@3G;q9cXkRC%8*c*2$#!>;0!B=h6+H-#<@%;s~Sp@aO+1GZkW|!ZY37-KRlu z%~sMc{Qlcw_sXPIcsj;kb+oT>J}L*u1Je|r)E!5R>h20o6t4v|_W6IsdpK?YS#T#5 z0#EkvMCBdb2;6+!`M4SR$WHMjv*<@|y 0)e!|gqX{|%wna)BXA(h6K1C8mN zW5%s-oL86OjkjBeUrzo3rc5Vh1A9taI2Va`I{0bmkYMza@t&l^!bL04a>^7fy?S4e zhoW7@AN-xSd;b6#{{XRnKADld&9N`AlmGMa7g+_16WM>ehBbyhkw(f$3KA^!u)A(> zY|-Y}t1C)>*N`tTz{^W6Qmd&+j~YIW0b!{BO72E3zY_RWYrp-_@=xW=$Ex}N^OD8F z&o%bxTJMvGGt*73Vul-%|22i{_d<8_%Q1Wt4hGTSNr@(-$59JNJ`YJ$$+n3>*to{G z)-LXE&U7JzRMtet@pQ; (iA-nW^uXogldAQZ(gTHdKuN1mDL{v(j zFEqt*%WOV-kYEDj$VN2d4Qq(Ha!yj@eQg#=^2zCA%dc*Ybxs?DN?Qa!AgJ;D@3plF zMaLE+SE!eHniV{o4c$UNyA@8IRR@q(5B>x6{@16Ysn%#4L?sq+IV{fLy61v25(AN> zbUjKkknHqH*i>?YX>m}zwni0Obypw8O$`Y*BH{Xs4@5ZIQvT~AGm^&z;hmmz3#bmE z$%*~UYrFyYYU WB@AF7UWAEgV&csoI#2ItmE z4nRr(Av4ypx?C-^$zK;T(?#biE`v*cto^SEVY!>Z^kA*8@Xt6V@J(*)*Y^1ta5}Ri zB^8i=T+FiVasOY&|9WGD;KvqgaDIP7Yi{Afb5hs>v(0ddr)aOA^3dLU(tD!aZ>o5h z4(=a(z%Do3NszZC4t;yPT=OJ2>IRwG=b>o(h+2U^)a >7Yi(*^Z<0r5|8qYa3RO71S5XT z#Ig0+eO%hoP^sIIKV++ADuBJ@-Er|4qwl)>3nH5S_*l7f_HWHoYrGn4)0 u(ZQ^|GVUd;4%&9-qm+z(W?ahR%sGImtC$n`kj0(Z#`$LoaSy6(J ze98}^CDFX&w0@7>k>aaJq>E{DVEdy}9D2#hnS?`6gNl12$p*hmg6NrakOkeYbga8O z_-CUq=wN^Vx=4~-##9^^Y;Q3+#eAX7)#HmEAIx}q&uW<2gfJQ9Fs?5=MIs9I-?cHw z9tu6$*4eBXC_`q5ZlF`>7yeSSbNkh9#j$ZPcCUTI`5Awt+qceJC|AOB+k6E=FkhUC zTEl} dj9r?por_=a8oRXKqEh{C;ORI-lO=aPsuwIj5=CgH`h00*DYLo{|JOJ6Zh-M9tIO z@n%7Z!Z;o-3K-vP$#!D;&6e=j_Ukf3jn=-7FIZ{*Rynw7j29Y6X|VQE&5a>4OJ9Uv zOBM?z`Pqoeh>CMA2*WY(cH=~wqlP$iTLQ$Lg_wYeFfGa$0Tzw)Xk3sCQ-z~nRJ4fk zI{GbP^Dj)H9}f|?_@tRehqZB(OLAqfJwe%GS7 a?3>`8A+rJ!o8 zpmOo*rR+^X2 4B2ksyH~ zVR-Q~wEPJg`UD(V(*x_X766tbykpYOB{!A8`)y<+ wJvmP zV^8v{2dPL94f~-gC2qP_&E&Uk)M1s{wp}?7_r!Ja#svw-U)P725LbsN?!`m_2B+M& z_(hzjp0Qj G^AkkzM#2S2xfcZ=x+i^%@nY`Tk5`lV%^2cil6>ltPEj$r;$Vt+d zrPwV=V(>t^ZbDSlGYRNqMNu#fZsJc;dHBFg1Fu0USg6u5EX}Q0g=AD6lHNb=sN+