From 8e9ee565da64a6969e43bbbb56ce7c0de6482be7 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 7 Aug 2025 01:16:53 +0900 Subject: [PATCH 001/113] =?UTF-8?q?=F0=9F=93=A6=20package:=20update=20tail?= =?UTF-8?q?windcss=20[KOBG-10]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5110274..9b2011c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,13 +19,13 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@tailwindcss/postcss": "^4", + "@tailwindcss/postcss": "^4.1.11", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "15.3.5", - "tailwindcss": "^4", + "tailwindcss": "^4.1.11", "typescript": "^5" } }, diff --git a/package.json b/package.json index 8ea7064..757dc95 100644 --- a/package.json +++ b/package.json @@ -21,13 +21,13 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@tailwindcss/postcss": "^4", + "@tailwindcss/postcss": "^4.1.11", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "15.3.5", - "tailwindcss": "^4", + "tailwindcss": "^4.1.11", "typescript": "^5" } } From 2c8951e4850b96d81ab143de3344bc82cec021e1 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 7 Aug 2025 01:17:54 +0900 Subject: [PATCH 002/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20fonts=20[KOB?= =?UTF-8?q?G-10]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/globals.css | 25 +++++++++++++++++-------- app/layout.tsx | 33 +++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/globals.css b/app/globals.css index a2dc41e..c372b3a 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,17 +1,15 @@ @import "tailwindcss"; :root { + --font-gothic-a1: 'Gothic A1', sans-serif; + --font-mplus-2: 'M PLUS 2', sans-serif; + --font-noto-sc: 'Noto Sans SC',sans-serif; + --font-sans: var(--font-gothic-a1), var(--font-mplus-2), var(--font-noto-sc), system-ui, sans-serif; + --background: #ffffff; --foreground: #171717; } -@theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); -} - @media (prefers-color-scheme: dark) { :root { --background: #0a0a0a; @@ -19,8 +17,19 @@ } } +@theme inline { + /* 폰트 유틸 생성 */ + --font-sans: var(--font-sans); + --font-gothic: var(--font-gothic-a1); + --font-mplus: var(--font-mplus-2); + --font-noto: var(--font-noto-sc); + + /* 컬러 유틸 생성 */ + --color-background: var(--background); + --color-foreground: var(--foreground); +} + body { background: var(--background); color: var(--foreground); - font-family: Arial, Helvetica, sans-serif; } diff --git a/app/layout.tsx b/app/layout.tsx index 1e8468c..df4091c 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,16 +1,24 @@ import type { Metadata } from 'next'; -import { Geist, Geist_Mono } from 'next/font/google'; +import { Gothic_A1, M_PLUS_2, Noto_Sans_SC } from 'next/font/google'; import './globals.css'; import { ReactNode } from 'react'; -const geistSans = Geist({ - variable: '--font-geist-sans', +const gothic = Gothic_A1({ + weight: ['400', '700'], subsets: ['latin'], + variable: '--font-gothic-a1', }); -const geistMono = Geist_Mono({ - variable: '--font-geist-mono', +const mplus = M_PLUS_2({ + weight: ['400'], + subsets: ['latin', 'vietnamese', 'latin-ext'], + variable: '--font-mplus-2', +}); + +const noto = Noto_Sans_SC({ + weight: ['400'], subsets: ['latin'], + variable: '--font-noto-sc', }); // TODO: 메타데이터 전체 수정 @@ -24,16 +32,13 @@ export const metadata: Metadata = { }, }; -export default function RootLayout({ - children, -}: Readonly<{ - children: ReactNode; -}>) { +export default function RootLayout({ children }: { children: ReactNode }) { return ( - - + + {children} From d94fc63d16a39e0d72c9858c0f64147a7c3fb54f Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 7 Aug 2025 01:52:28 +0900 Subject: [PATCH 003/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20colors=20to?= =?UTF-8?q?=20global=20css=20file=20[KOBG-10]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/globals.css | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/app/globals.css b/app/globals.css index c372b3a..b985026 100644 --- a/app/globals.css +++ b/app/globals.css @@ -27,6 +27,41 @@ /* 컬러 유틸 생성 */ --color-background: var(--background); --color-foreground: var(--foreground); + + --color-primary: #F7DD4A; + --color-primary-900: #FEF9DD; + --color-primary-800: #FBEFAC; + --color-primary-dimensional: #F6B831; + + --color-secondary: #BFE2F3; + --color-secondary-400: #248EC1; + --color-secondary-300: #1C6E96; + + --color-bg-solid: #E6F4FA; + + --color-error: #F74A4A; + --color-error-dimensional: #D51111; + + --color-black: #1B1B1B; + --color-black-70: rgba(27, 27, 27, 0.7); + + --color-gray-300: #4F4F4F; + --color-gray-500: #828282; + --color-gray-700: #B5B5B5; + --color-gray-900: #E8E8E8; + --color-gray-950: #F2F2F2; + + --color-white: #FEFEFE; + --color-white-70: rgba(254, 254, 254, 0.7); +} + +@layer utilities { + .bg-gradient { + background-image: linear-gradient(to bottom, #FEFEFE, #E6F4FA); + } + .bg-gradient-reverse { + background-image: linear-gradient(to bottom, #E6F4FA, #FEFEFE); + } } body { From 5f6d00d0a2e16175071cef50f2cd98e1eae842fa Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 7 Aug 2025 01:54:45 +0900 Subject: [PATCH 004/113] =?UTF-8?q?=F0=9F=92=AC=20comment:=20modify=20desi?= =?UTF-8?q?gn=20system=20wording=20[KOBG-10]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/globals.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/globals.css b/app/globals.css index b985026..bfb67ce 100644 --- a/app/globals.css +++ b/app/globals.css @@ -18,13 +18,13 @@ } @theme inline { - /* 폰트 유틸 생성 */ + /* 폰트 */ --font-sans: var(--font-sans); --font-gothic: var(--font-gothic-a1); --font-mplus: var(--font-mplus-2); --font-noto: var(--font-noto-sc); - /* 컬러 유틸 생성 */ + /* 컬러 */ --color-background: var(--background); --color-foreground: var(--foreground); @@ -56,6 +56,7 @@ } @layer utilities { + /* 그라디언트 */ .bg-gradient { background-image: linear-gradient(to bottom, #FEFEFE, #E6F4FA); } From e808fdd52e90baa276322f635e0accd6ce9a55b0 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 14 Aug 2025 23:50:17 +0900 Subject: [PATCH 005/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20fonts=20to?= =?UTF-8?q?=20globals=20[KOBG-10]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/globals.css | 108 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/app/globals.css b/app/globals.css index bfb67ce..99f7f51 100644 --- a/app/globals.css +++ b/app/globals.css @@ -53,6 +53,114 @@ --color-white: #FEFEFE; --color-white-70: rgba(254, 254, 254, 0.7); + + /* H1 Bold */ + --text-h1-bold: 24px; + --text-h1-bold--line-height: 160%; + --text-h1-bold--font-weight: 700; + --text-h1-bold--font-family: var(--font-gothic-a1); + + /* H1 Regular */ + --text-h1-regular: 24px; + --text-h1-regular--line-height: 160%; + --text-h1-regular--font-weight: 400; + --text-h1-regular--font-family: var(--font-gothic-a1); + + /* H2 Bold */ + --text-h2-bold: 20px; + --text-h2-bold--line-height: 160%; + --text-h2-bold--font-weight: 700; + --text-h2-bold--font-family: var(--font-gothic-a1); + + /* H2 Regular */ + --text-h2-regular: 20px; + --text-h2-regular--line-height: 160%; + --text-h2-regular--font-weight: 400; + --text-h2-regular--font-family: var(--font-gothic-a1); + + /* H3 Bold */ + --text-h3-bold: 18px; + --text-h3-bold--line-height: 160%; + --text-h3-bold--font-weight: 700; + --text-h3-bold--font-family: var(--font-gothic-a1); + + /* H3 Regular */ + --text-h3-regular: 18px; + --text-h3-regular--line-height: 160%; + --text-h3-regular--font-weight: 400; + --text-h3-regular--font-family: var(--font-gothic-a1); + + /* Body1 Bold */ + --text-bd1-bold: 16px; + --text-bd1-bold--line-height: 160%; + --text-bd1-bold--font-weight: 700; + --text-bd1-bold--font-family: var(--font-gothic-a1); + + /* Body1 Regular */ + --text-bd1-regular: 16px; + --text-bd1-regular--line-height: 160%; + --text-bd1-regular--font-weight: 400; + --text-bd1-regular--font-family: var(--font-gothic-a1); + + /* Body2 Bold */ + --text-bd2-bold: 14px; + --text-bd2-bold--line-height: 160%; + --text-bd2-bold--font-weight: 700; + --text-bd2-bold--font-family: var(--font-gothic-a1); + + /* Body2 Regular */ + --text-bd2-regular: 14px; + --text-bd2-regular--line-height: 160%; + --text-bd2-regular--font-weight: 400; + --text-bd2-regular--font-family: var(--font-gothic-a1); + + /* Caption1 Bold */ + --text-cp1-bold: 12px; + --text-cp1-bold--line-height: 160%; + --text-cp1-bold--font-weight: 700; + --text-cp1-bold--font-family: var(--font-gothic-a1); + + /* Caption1 Regular */ + --text-cp1-regular: 12px; + --text-cp1-regular--line-height: 160%; + --text-cp1-regular--font-weight: 400; + --text-cp1-regular--font-family: var(--font-gothic-a1); + + /* Caption2 Bold */ + --text-cp2-bold: 10px; + --text-cp2-bold--line-height: 160%; + --text-cp2-bold--font-weight: 700; + --text-cp2-bold--font-family: var(--font-gothic-a1); + + /* Caption2 Regular */ + --text-cp2-regular: 10px; + --text-cp2-regular--line-height: 160%; + --text-cp2-regular--font-weight: 400; + --text-cp2-regular--font-family: var(--font-gothic-a1); + + /* Translate Caption1 Regular */ + --text-trans-cp1-regular: 14px; + --text-cp1-regular--line-height: 160%; + --text-cp1-regular--font-weight: 400; + --text-cp1-regular--font-family: var(--font-mplus-2); + + /* Translate Caption1 Regular */ + --text-trans-cp1-regular: 14px; + --text-trans-cp1-regular--line-height: 160%; + --text-trans-cp1-regular--font-weight: 400; + --text-trans-cp1-regular--font-family: var(--font-mplus-2); + + /* Translate Caption2 Regular */ + --text-trans-cp2-regular: 12px; + --text-trans-cp2-regular--line-height: 120%; + --text-trans-cp2-regular--font-weight: 400; + --text-trans-cp2-regular--font-family: var(--font-mplus-2); + + /* Translate Caption3 Regular */ + --text-trans-cp3-regular: 10px; + --text-trans-cp3-regular--line-height: 120%; + --text-trans-cp3-regular--font-weight: 400; + --text-trans-cp3-regular--font-family: var(--font-mplus-2); } @layer utilities { From f689ddd1b557a9d5fa0c84bdd24a9daa05682d74 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Thu, 14 Aug 2025 23:56:35 +0900 Subject: [PATCH 006/113] =?UTF-8?q?=F0=9F=93=9D=20docs:=20modify=20PR=20te?= =?UTF-8?q?mplate=20[KOBG-5]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/PULL_REQUEST_TEMPLATE.md | 34 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 9349998..d7fbadb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,18 +1,34 @@ -## JIRA 이슈 키 - +## 🔑 JIRA 이슈 키 + +--- -## JIRA 이슈 키 +## ✒ 진행한 작업 +- [x] 진행한 작업 +- [x] 진행한 작업 +- [x] 진행한 작업 + +--- + +## 💡 생겼던 문제 및 해결법 1️⃣ 요약 -문제: -해결: +- 문제: +- 해결: + +--- +## 📢 아쉬운 부분 및 개선점 +- ... -## 스크린샷 +--- +## 📚 개발에 참고한 자료 및 포인트 +- 참고한 부분 요약 및 포인트 + - link -## 아쉬운 부분 및 개선점 +--- +## 📸 스크린샷 +- ... -## 개발에 참고한 자료 및 포인트 - \ No newline at end of file +--- \ No newline at end of file From cabb1af07f26a2dc2462a834aad3cfb0793c2da3 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 01:55:04 +0900 Subject: [PATCH 007/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20google=20ico?= =?UTF-8?q?n=20svg=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/google-logo.svg | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 public/icons/google-logo.svg diff --git a/public/icons/google-logo.svg b/public/icons/google-logo.svg new file mode 100644 index 0000000..f49ab28 --- /dev/null +++ b/public/icons/google-logo.svg @@ -0,0 +1,6 @@ + + + + + + From 5c78cb18fc8118c98b654f2f8f7fd5d21fa48e3d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 01:55:38 +0900 Subject: [PATCH 008/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20googleLoginBt?= =?UTF-8?q?n=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/_components/GoogleLoginBtn.tsx | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 app/onboarding/login/_components/GoogleLoginBtn.tsx diff --git a/app/onboarding/login/_components/GoogleLoginBtn.tsx b/app/onboarding/login/_components/GoogleLoginBtn.tsx new file mode 100644 index 0000000..36f6313 --- /dev/null +++ b/app/onboarding/login/_components/GoogleLoginBtn.tsx @@ -0,0 +1,35 @@ +'use client'; + +import Image from 'next/image'; +import { useState } from 'react'; + +export default function GoogleSignInButton() { + const [isPressed, setIsPressed] = useState(false); + + return ( + + ); +} From 5d97dc28c21e8f616891bd399b4bc52618a4e057 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 01:56:57 +0900 Subject: [PATCH 009/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20onboarding?= =?UTF-8?q?=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/layout.tsx | 24 ++++++++++++++++++++++++ app/onboarding/page.tsx | 8 ++++++++ 2 files changed, 32 insertions(+) create mode 100644 app/onboarding/layout.tsx create mode 100644 app/onboarding/page.tsx diff --git a/app/onboarding/layout.tsx b/app/onboarding/layout.tsx new file mode 100644 index 0000000..5c40724 --- /dev/null +++ b/app/onboarding/layout.tsx @@ -0,0 +1,24 @@ +'use client'; + +import { usePathname } from 'next/navigation'; +import { ReactNode } from 'react'; + +export default function OnboardingLayout({ + children, +}: { + children: ReactNode; +}) { + const pathname = usePathname(); + + const showLogoPaths = ['/onboarding', '/onboarding/login']; // 로고를 보여줄 페이지 + const showLogo = showLogoPaths.includes(pathname); + + return ( +
+ {showLogo && ( +
KoBridge LOGO
+ )} + {children} +
+ ); +} diff --git a/app/onboarding/page.tsx b/app/onboarding/page.tsx new file mode 100644 index 0000000..42f5465 --- /dev/null +++ b/app/onboarding/page.tsx @@ -0,0 +1,8 @@ +export default function OnboardingPage() { + return ( +
+

온보딩 화면

+

첫 방문이면 -> 온보딩, 로그인 이력 -> main

+
+ ); +} From 4cf8cd238a528dd418da45bf688d792dd28ef32c Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 01:57:15 +0900 Subject: [PATCH 010/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20login=20[KOB?= =?UTF-8?q?G-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/login/page.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 app/onboarding/login/page.tsx diff --git a/app/onboarding/login/page.tsx b/app/onboarding/login/page.tsx new file mode 100644 index 0000000..ccc0aba --- /dev/null +++ b/app/onboarding/login/page.tsx @@ -0,0 +1,16 @@ +import GoogleSignInButton from './_components/GoogleLoginBtn'; + +export default function LoginPage() { + return ( +
+
+

안녕하세요, 반가워요!

+

+ Hello, nice to meet you! +

+
+ + +
+ ); +} From e7cddb0a1236699b505ebf11e2dd79e21260e866 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 02:13:54 +0900 Subject: [PATCH 011/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20chevron-left?= =?UTF-8?q?=20svg=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/chevron-left.svg | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 public/icons/chevron-left.svg diff --git a/public/icons/chevron-left.svg b/public/icons/chevron-left.svg new file mode 100644 index 0000000..f506e72 --- /dev/null +++ b/public/icons/chevron-left.svg @@ -0,0 +1,3 @@ + + + From 40883f3bb45b5a4181eeaeb569ac34aa7f8a1eec Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Fri, 15 Aug 2025 02:34:54 +0900 Subject: [PATCH 012/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20topAppBar=20c?= =?UTF-8?q?omponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/TopAppBar.tsx | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 components/TopAppBar.tsx diff --git a/components/TopAppBar.tsx b/components/TopAppBar.tsx new file mode 100644 index 0000000..1c302ba --- /dev/null +++ b/components/TopAppBar.tsx @@ -0,0 +1,16 @@ +import Image from 'next/image'; + +export default function TopAppBar() { + return ( +
+ +
+ ); +} From 57a1c15055e69e4a88ae0c4726c97d91175c7b2d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 02:02:46 +0900 Subject: [PATCH 013/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20designed=20l?= =?UTF-8?q?ogo=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/favicon.ico | Bin 25931 -> 15406 bytes public/icons/logo.svg | 6 ++++++ public/icons/pwa/192x192.png | Bin 10547 -> 25620 bytes public/icons/pwa/512x512.png | Bin 27567 -> 122089 bytes 4 files changed, 6 insertions(+) create mode 100644 public/icons/logo.svg diff --git a/app/favicon.ico b/app/favicon.ico index 718d6fea4835ec2d246af9800eddb7ffb276240c..c17f1e01d510649de2d9f87dcedc5fa284c33ea7 100644 GIT binary patch literal 15406 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 BAtV3* literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/public/icons/logo.svg b/public/icons/logo.svg new file mode 100644 index 0000000..5f98b96 --- /dev/null +++ b/public/icons/logo.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/icons/pwa/192x192.png b/public/icons/pwa/192x192.png index 9a6be1fb60d0ece15e4bcf6da9f1e0bffe976f65..deb3ce83ad693155566c7357b05d6283810d8710 100644 GIT binary patch literal 25620 zcmV)BK*PU@P)qf?jzH!?mp-L_sCjnj_(`am}~u~ z?=3?Av->}L@3rP-%rVF18)MG3x7(k>^3qE$J^k>*5C7o#eEz`l@dy2Mdcq<;MtrxVjtJ*xMzr!(?F|26g z_2h-p@M`1g7}omPuEr4^tzgWn>Le}CEw6W%*Y)qta{0N_>GWGKzx?uVKk~>UckEAD zc{OIeBV`rpMc99GVbqT;??1e7_K73HCPCg7fD$u=VY{9SwF&-teZ68>DGxf?fbJhSw1$G*Yk8>RsF?%n&)ty{N#e0lpb3x}SzRon&> zY1s_2&Gls2s;qC;b%kYOJrRmcKu3$CzIIj&7epzx_7I*|HLrVO$EBfAql+;&JF@KB z2%==i7WqM*WRz0kR#%1Dy2okyaFxEADAlSYMg^Vgc%*xE84v5UzF)n?XP4JcF0aqo zH=w+u3a~KZiOb8&pI9vYPcJisLO z_0Q@NWj%xkhN@G)t7rJk&6_trZSP=tM-*Tc{N?3i%j?GhZ&Vug1eHrw;m!MXErn;h zE{v!3M)!b3<2{AlhY;i5@G4$(gqUIdOb1hSbL@T(Rv)?>tZQ9jC&i6D15M_cHbdqh ztUFSgqoRDY6kwaZ&dQrJVw^pljlv*8Yd7b$!{s=pX)Sk_)%fJSmtX$eI}tOytqK6a zKcC~{%Sca*0n6%F#j-qcz+G<`GqJ2Et5rCJ+4x-DQ-ocu;i%|BM~<}#FJ!G0?doxS z)SbLdv^nP7>CAkHO~g*2&;(2wN?ji5$Xqu`rPCZ^YPFc=QF1%x-uj++5(=rLqq&b< zXT(yV*@Yc;wPD-%b7y(;sU=qUq`i&hZBu~z_wRrBbmPXaEF5@hFYtY}rGyxovWT?2 z-7}2(65L%en z@$^FbuPg%d;oSnXMd1u3+v2@m)WW#B%Ks@R(hF#Y=QtA6(m5(z3eZ)&rNExjn%l&qCTO8ew)?)f&Z3Mlx*i4r5l|T+ z7^<#}WyFLE-_KFwga(-ll<`o?tFUb^@-$WCUFFQJmUaVRun!S@SF4`f%_S(SD-#u_^sb6!qaJ6Dz{$BdHB zJ|1Y37$X_&J7Z#3xIxY-jYn0PjYX27k_x44@F%C-yn}MIeNK;HW>zbp z7AmNNv7R49gc4^2hr?Z=Cp%SzqTH=CM5%!4^uW5&TAB1sF$vAVClnB?E%%-OjXS9v zF0+vFqG%*dD*Rr`l>Ian6u(CncOyItaBAEj>9o~7Cr35=6Jxw6#W6JsRc{2@IxmwM zZtc%;M*mN*2KI81HG7MS+nX#KQ4#;=Lg0tC&&@2Ik`?fhmPn@DsapLx3L5=mEt4k` zzDzqZ_??O&<8K|5oYl^$E6kBa3Tqx{2q%ZJow>CRwivIN@}avE(wJj-OlczMugiPk z8~Y>)vz2y%6k!#Q^bM?{oBgbtUuRloTxK70_G;>7WYe7UG?H0yS`Ta1sh_Kj?Yx#4 zLagiPV|oAVD=)wN(Kic;-joMeH?tPu|9q^%@3p||y}{_!0~FJIJEl;n^R@n%kXu^_ z(?v=FR?aoyE9M$apG9STA|c2cJ)efGQJe=UpfUQ`R9qQ4D7fi8#A{&QoPYFSp81qn*!iu~_P1@ZKHP)@RDuq&XqTu2`}e8O6h zl`(A~hR$JRi^g1hC;aLEFdx?xUM!yA1GgV~==1Bb8G94u4SRrvnjc&o)8`kH@m?$I zOk-|oIn1J6r?FGvxO$XUXSApFw%IB~7bRL0v4V62F^wc1f&*9J=GM|u>2cCKZ3E5o zq5RvVT3+M()YpFAoI}f0!IKu{fK=f}78LVW4~|h0;^lC zLxsPw(=+75YcGAlb4*&HW?0Nj7h{ach7y^NvEU(K6^)BCQm=pzMg&p<8&bE=V;kK) zts4xuqL&dTon2vy(_6M#dtK{BBk40ZJzDip;dfb!P@Y)oc^PQNBaZo#S0UCIyqjX1 zz<8;o6!I}o>?Kf5O*~F2N6ii1Bw~u8WS!TT^Ty4a|8$i}djsWldw_MI)6JWoUs&^a zCu%NDU?C9JhlJ@?3*M}*#tq$jq{S14j#gz=O|4d8Z)?^h+e9ro2$R(8RAvtcT5-Ds zMFqs=n(`v_-X^$C=s?BExt_}MHJTgGEazu-Xg%$~OSkpm+?D5Mg2Rmg7d`Nd0%XmS zFsqn=UcfCR=7>3abrDs7fjPWfUL8E9|^|J|Qfy6#gmK(g@5?5H=O65(sbkh-iHqnCF>R%lHrC zW(t{lKP|1-;F!RPimnn%xI+{IP{5kS2`e#zY#KXA3m}1yO@b?dGKsD^Lm0@papJO+ zzd}O;blX`>ZcJH&rop2OTo|9?iqO6)F5uXpit{S`o=Fdm#o7vCJPwS?IaB8F+|loQ z8H(VX6;9?FJ-$Hm&%U0(_|+^Z%f@w8TS6Qa@%?Z|?)@R%`n=BeG7yRj1vXe#e ziJb-1&TR53WjUseunMlW&yud2X)gV&OM2Q-3xdr2px4tv%wx=?#{@mh<|7#tcvzao zGe~c$w$J^~^mdP7(A!|FV9gyi%h3YSRDj|PHZkw8H^S%C`5E$Ui7bd@;LG~P=YpJMf62S@ zKAn$&%~BP9<0hRf#PHhIP=a%=_Ms(1`3ZXs#b2$$#l^+Xn4f+{T7+s`UG7~G@|ZU! zx|lH2v?iq=me!_g#sz~AtD>#UN?%?UMy=3PhCrMu6_N~(eiGEh0*z*q8=LFw6s~v^ zidB?fGYD^!lviyx2?(ryQ~K?LQ_F0k4~sInK-YODQ~LVV+|AWlUe&+OlWS{3iI3#Q z+k-TRyzDYHHe8Ewm{Y`0-n@D9v-W`UKm~Z|rFi<*?G5)o)wIow77LxI0D(~90Erp| z7tdQTT8jYFUb*R@lmW44pJsL-46=S%LzGSq)a`@@mW33VHGwi&3cmFb-6*LITzd8~J0}hNL&6 z&~(l!DK@R;)Mh_Nd4Kof-n}1s&~EVqA<&K6=T9uXJ+j87F93ORq(k!W4i4x$T5Zp^Q)H zlAfDGX~0&tB$d!Pf6F{Q?zPw_08DZ{D$B50i!u-iZ_GRJ$~73UvTb&?g@8hhnIL63 z+H^tQmc_AO!n~*MA6WF9C7%Q=Ls9eY%c%31k-)(FMVniLe`|T-)aYx zetH4CpYE2yXMrt@hxK%uKP1rwS!fYYWg*SFg*Q8f1KnzNAqwSjvx4F`X1XRQpsd+j zXD{WG1@0EM_f6%H^Yqgko7XgfRS~+Ld&@p1I;C}oNgn@-hxHarisolyq-~{Zfj`=; znlpPGIA`ay{(I4i{YTlf&`gr@ws_h^L}^GJtOs@keGDskzWnH|TeqIEgL1V3T%Mm@ zI(=H)SWQj^9jQJc7%mKqt+BdLPs69F4Qm$5Ck9X`DAZvgkfWd(pPVs1Xd=SX^~VxA zlwz&(;xoM%R~5;WmNC}()f6LS;mevSPpRl(B@|6hJ3o?UuQ|<%D_;{sN@TB21ju9) zY%laWwl&yerlw20kXvPfp@_TOeH*icqI(iu*Qrc0XB{eKi#s$klVr2I= z7_`BI{Ie38NY+vKw+4D;hbVXWyl0?&BaB!Jv|KjO;7w3=LLD{L)y5V(e+3;E#J|(+%oPBd$d$*V_$jrP4 zetFHx!gp=g?LQOKF^v(l=CiA$aM3H8@Qe3Qm)5sKTA z-XoP4Qj6ZFI?JBv=j211BjoSy%^Rl=%wAyU0dAb_$5-KB8E`%acVs|n0YBr!A|?ho z8JgB=2;3w*W7z>UQuCWUD*ntxf_-2;pG^sR@v2771?O-+!<%_p36pt^V6NmWYO-~t zcoULyc?qKhuie&m4siV9{SNFL2sX7E}Dg%X)P<;qNfYn=j> zBwgxQ&RJOJ)^skWIi#1F`reJvXw`Ny>m8k)Hv**$p2f?`4yq`SI&`-g?0>Sdopvqm z)i-DduZu*D(`vrp)y(_i#V{hmuX&Es8WsPFKFW%5{t^&3xj_os+MFLCKW(knn>#Pi zJixtm(`yKSBolHi+{E&5g0PIRB7H&4r=^G_Bt&CJ_tq^8@a?<+#VFN&+gTc?WiiGj zW-$0<7_ATbCIdy8CR$Bt3Z@c;H{N(-a-ZJGWd}Bj1@xM@RtAIf^KOapD#GtJDQ78` z+&8R)3N89FQ~J8H%b3J17$+okojhVa#w^j|JZYbD1pZl_7{$=mmC|HAg!ZCO*3^^q zC+=Tf{)93O1FE6+ZjTgUnB ztJ=+VL0ewvsnILOo!n*3$E>wiI(&i|t^v97s)Ww$z~wi3soZ>LE^z1Qb()Nht*#M- zSG|mjge4qaf;{b){exdQ%l`m23tzgwFnC3-uLOw$A0 zxVZTE(4JxOW&)yX8g^P5x44TtF%j2j5k~)!Rx%D4#y}Usb!36{6_XxTnAwOy*4%%l zZXNH{N)ESE3u9$PMHm7!9Vu?ooQK!?^k8khTf|YnryF-dn%>uC?nasw1_V|snqn9{ z5MV*a_XBU_ywuy*GTQuJ@z@cc$93?`h$29t`Bm#A{G2Y4BIW&V9rSI3jmtbQ&Of=U zcW<@+>xoYpSiXXr7SY^e^0f2{JCCrR4qLveWzPGjVwTd7@ajsg8JYg7G&NfGUCtIP z`}B3M{PM2*#TS=d!>=qi?wg&zZvVe8erx%A)Z)hD<~P4}v6k<1yYZgJdsh$kU`yRS z#H)F*1cb5oB0DddxN}_4{*u0NSz@Y)3U*HZ?CsO(gNDyD{DF0!I+o9Xd&d)*e9lZf z31YwaECRdD&w82Z+Cd+!b95c_^otRt=vOKhuf^BR@BQH-@6Rpo@7ueg+&RM)hB{$c9z@Ct>c0&8N~RQhwSW_)z_MD@-#`P(GK7h(5Tes2-{Kd^UQS-jlp>0(g?d-w;I3y%)SHpvK#mZ}2R zXv&iwyfSY|8A9>oP^1Y znSp7QstY@R&HU^C^xY}^QdTAK7yhq>4}ZuQg0f;TYK}FRVNLRl z$FW@cHB>SzT9dn?$0%o`MH=9f|Cr@Xd*$NtdEcJ(tz52)TT{0q5W|pWyb8~o5+Wx> zO7mUFB`*rzJgCo6DL}(~uM}>~X}U%)mT9~645`0LDULArPAHoH*dW6v_AB*e10PA zparowvo{Pb&DJ|kj4-9LIVt!gOvW7~#xBpU_}z4}un6ok15eqN*~bMr zjg6*ok1HmmbY{m)>rHiQZUxTj=%!8S+cm>;E&LBI3l#DtYZMQC-)y){aX5;~!MI03 zkE3;q3Tmx;6pBvCm>`C$kb}tacK_a`{m|(g-o8f0=pnDy*HOY#RKv-0ARkI63@#MAyCq08OIr`tFyg28Artvc2;8|cvxz1sV9m&Q9^YGx!pvt{2agxGwC8ns17+P6zx;|= zSUlL$cI^kGhFMob+YKp=-RV>^mdBIK5)GUid>Sz5oN^QNCIY8KIguG$H^QFI9*sFG zOJOy!`jfM&K*SiqqZKB|VO4jj6%*I$wU} z%f(k`PjX#eM_G+WKnRGtH>vUSgeD9Y85|G(3kwaL<65CgVE@6J@ijsuUH_CFIDyOt zMLa!DgYJf?C-L}_4hF$Qr4->9f5`4w-R6R>?X&Q5Gd9g%esC zNaRf6H%fi6zZ-?MgszJ}vg`83%gR4DO>Pi?H-`;5t?y?tQ`sK|Y*?wx2x48$kV-Y< z9+k0u?pfIsZ}Jrxzfzq2w?ZJe9KBVZW?1o(L`Wr&mwB6YT75$hykU$=ujb~Im4D%# z7=nsTHS3#dFyq`D$>+K)HIX3`l+1+(4&9U;M9n~5XMWyXSz*u$Bb__ESXCDz3pm;g z>@ZsT?b2a~S)@!`b92^=`?UqRGJfQ~nAJcV7zmDiQa_>MIILxQqm*~O7p>oj2A4$J zvmYEBfkHrlq3D$xmMLd`KQ#NKnjrIHRtOi;v;+-fD1zq7~tt!A-uog0fD}?Jb$KO zQIMQnK$|_at};F~Vc8HawQ8GI6QDPJP9x-B6KE9DwvT7&*`ml_-@Z$ZHowg!&M$5+ z_^4|N*$8ajSJ-IWmv=Rv)ouRklu0vY3W+F8${=r{9{fGV#!Pho4LMyS;-<5#uMUQfS4s^fGuUFx0N?((Y@CoBlU{Q#Z{T|`{L7I zR9;ycd48KQE^LniUMsp7;}#!Sa}F8(gA72r*mvp-IO3xUeJ;)UyhDhRc?`#+9WLoT*u zq~ePOoLTD+Mq*@cQ}XL)Wey=>RO&2 z$4ZmyUa0h^`0`7+BIJ6G6;L3hJ*GKt_wdZ?b$Mgu^yubAGbQP;F76gbscd{eiFU#B zFtVIcvqB=#j^pQTqK+<0W~4_mN!z_sHsB7C9TW##fEXD&ZIdgl-M5dqbrHDpGM!;T zh$M{gtb<)$S_K<^2W=;zu7pN27Vc>;?(2pso6AS=U)^F;@#v( zclb5#?1r}JiNM(7_KAer@umY_3%;D23Rj0hL6%Ys+-%BhE!3G+Y+C!)&*@x zwFsLG@Qh<7*j|-lRRFI~rk1y`lF>?^j+Dct4{NDMf$o@K?iqvd-NZdpL9u@*!loQP z9)gK!+nk0*6=Htin)Av48A12?_Fu5;^7_m9_V<+$!fKoOEPURd(n_c!8(FqT(4$+X zx~)zRbG+VY?xKvPuKmaYi3%n}E8<~hLAcyg3mR?w(#~ekrLJ24X{Ot64SPEqo654j zUw@lc&Y2*nbbH0Dorg2Mt)FfFoI* zFwL(2_AY80dGu~T5hC1kA;QtKU(0_d$SQ=V%qwXR&9>mS>-@UA5|?DN?@{)+S5vx~ zRCD+}p5=i#*#tEv`ov0vw9komCJY3Z^~NuqJ2^O>Gq}9{eIuiBU0zeUc=SIv@V#)Z zKD!}?tZ#8{%aN9>1$rZHU{i;o4if{L@(N#`u|)-VZcW$+T`6>)9$*BI>vJ(@2$N;U z!L+3h%M1cADf80Bq%@C5_tSuuQ7N?DgaeZD1e+u|A0y49$Z(-`D8@+q;s+Cu9`(Tr zG>Mkz7iWpR1JXVwn*6zCmk`}{lt~Yb6;RiD2O|q~9+og-R)K(`WFy%@$j@*(PUXybhIG-N3%ZGl%uFKWs zeEWOt;`aAw+}HpG>Yg`h#87`U{2EZ_x&)+tyzeW8EO)?~1Y&a9W3yci#o4Gy7dS@3JB zeb7BemRKk zq4%>N$j4AHRgM}vg^c&(iuWZeU%z)5iZ-HfJ`|z}3WY=P$FutBIibWWe^qr`9}+mkc#Htb07tFO4$$O>sARfm4KhKae*WEhAl)x*N9z z0$s*V5VeycqL>m2wN`v*8)yw4UgEk6o_62jGt{pKpPmHiFMeuPFb7Hw_V}0htV4 z6Hb*u@L!4wQAY!6jzOQ&k<_S6qdq-APxw$iDa2NjP2pj}YKB27D6^nlsT5ZT`=m%b z=ijWzTu7fE#3Kju5qi7BE3>Mufng!(*=Qbb!I zew#q{p8}8rfZs`bUue?gJ|Csn`tV8k2MDt2($ZD&FKOmfaxr4&hIG()<$N|GnqmZF zD9p7M+ti|YqsKuvyqPQ!1h+|tD5cBVM9n4Wx&udBlFp$KJ08nxr7U4?A*AIP=5t+; zNw(k7YAyUkn^Jz53oIDcX?=f!s>r}vDJx=ei+%_pXi%lmh4I{QvT{p#Z|(C;X4Zr{ z)Q2!fJ1=A^%z--79P%}UH}fK&X+0@)ScEX!>+=}91R?w14uHATX^ZGXkC4GAhGjnn z8l(+NNRSxDuQ&*^?lrJRv*i^}$a!OJN&t~8e@|t^&Ydq@V-vP(llDbExx!wAoqeb0%FLl{OBUYF}unJ+okJRb*BouttE&m?taef_6q(p|gl7X22qsXCYl?^?j38 zeVbU)P+E;vx+$6M7omi7qQ|E`ZS*%xi7r@c&+9uu-Q6n>E6Rh8IY-VRni7ES@^E&A zP+`pC!A<~YzO{Bbmf6922FMq=7;7|!q)2$JgwNiV0;==d-l{QCrS3E~e%hg-p|`pj zKu9%+o!5N@XmMH=aSQJK)7ECJnU9)7r7X1H6c8Lb!&vE?Z7$G23Z|LTLC@s(zr4J8 zVcD8|v9W>uw7FX|gyUx|KsD1o+Yy7ihy(GU)~O9wD?I(tDv(YuXR|fziaG>u)JKfNM(z5T|BLr7O4rntI=KgY zX<-x5HU*6?OO{J>=!!)FpgiYW1@0fq>S69KeKl5er2&*F4H~sZx6YASc z-B!#{K_Q#fMo)Us2!V?fa1*&GKa<|03|$&CGl@&Yfm)%4?H`vrC=gN*3^#6&u|_vM zjgD{p9cn8ig?o_6i7%vkhH6wQ#-D2te3lufweVf|Ae$AD?l+KLYXQgsVM<_Qs`@4} zpcHNWaJqjd?D=2xcZJ~3Wl@ClV~Y|jih#2H0QgZrZ)(H_5689Hk~ADkfv`9hCiYD* zUvjYBXtCmCa3z@69>vh5z<1%+`E-0^RA`eyY>Ii@g$|jc$SCKrDF7zE8(_y^r)8$V zdOIpWi=?w*|H<2#ARVvu{U@LE)7@XTcYBH3AGG+E|8a{It}5aMXhhn5S#&c%^SyT# z17%p-?0?V_G-Q_Jv^HHpXUlA11m>j#DIbA2X|J?hvBa2iE^5Fr5A-`-mp+%*7ZwP# zG4H$&`KS~T6FR9KP0+$O6{JLgwZ@dmtx`eAsrB>e`Cnd$`v-PivaH_V{eRbNfkf&} zXX9eIJR`O;o7OE2T&+wK6t*?D*$Wg-w)tKc^Z{G6-w6%GtejVsS($U5s)T(EF#^-) zt(zlMg0DsK_3ZrCXesmUitnBD}> ziXrZJ@IeS}6CUqQOQ3sNvOL%2pez}$8~^_AnlH*Q1ZWfPCXmGR1sgJ}7b5bN3C%_x z?aK=MKm&N@hz3sAZl{Fjkp`zYpFor602=d+oTVFo@GhyWIkgzlOuf-ig0M+$N49aN z%NwBv9?93E`&tEU|gg&0m8A4U{VCkuG$G+k&!R{6Zil4Yj#~8P*&kzlpyV? zQ^vX0Dx~8=heHsuN~?BP5QnkBcCT4Q^fPTzMbhQk1p6An3T8ZEfQpua!j}BT@?F2( zQ&o^UXw6*!#BK#MBY}e(rmD3s{E#9C6VtWlkpx6RU z3jFpV2xAM12HTe{j3(#^(YAQ8jxtcNYJA*VpEb+@p$Mu3@CXCv`woT7g~AJIt{BHu z@mwL!!~-)TkmMu#CNcP&lg|(9WH145r|c@N<$j1A<=^rEq-s^J%P)stzyTi>|(gcL0E z$-4{-l@t2fuRd7!ughUMz4Xr)uJ*?=hd>*RQd#?g3?-B*sDQOinShv6ETWPmJ*#73 zbv)gozNbGbc+R0`k5Cz;qyt`PSaOqHTX?peTsahB8{6AoEs%t))8E7BrJb!7oI$N`(&XJiYYK?7F;xvU-6R{&9=n^mv4oFqB~u zcvQkUZFaI=ttGQdUJ#gu-O2(-#)|AWq<(&O!Sk|fE5%*VgeYGMe58kfTrtDtP@JNB zeSe;If}v)4FTFp7!^Y-x{Z)^{8#8$EjMD$wzlq)6p2};VTqkW3va**fGzYiV?z&} zhjkCY{xV`#Lc*z`B9T-o`ai->iE~M zt^b=Te*f9U!o9HZKPvskXjk9UYGY;DN#S`4y%E#OU>RG)a4eeAX8JTr0MQ2HTSA&a zf&{RAMALS8y;8X*bxQoL1(s20#_L2Xl_8aB`+Uk4sY{t4?s%-QKa^nnB@Lk@;hIYP z?mS8L8{~a}$;P~$KeEn7kFiu>| zaA6>bsNTUV%z7J4aG|%(XSxL@dF~>vT7I4Tf77KbA1}~#b9wW%N%oae>PEpE#?Tm1 z8ii>a_ndN}-Sy)N1FzRTYqFsMDL-f0v+7I=1d)!~2~Wy~oMPii3^P%VK(dvtlVyfV z|4a_CNw5*Xk)$JJm#!=eR1(TlI7&AI!>%?9*X4DU6#|jblEQ{zclTzx^I8D%n7od+ z)rY=zqc%22CGZoysFT741~^`28?D0;%V!-j#weK#QSAt^{ux>XpcmWhJ^T(mSPHPwMy7!*x*~cPCaA;cO{%}j!JD>p z7=frSS;M{jeSp0sc7=*DS%u-EFkfEdJ>NeYV45?|GaSPTT>li&n=N=!jL;#bAXe6* zy^8QaS{risrA_RFPB{Y-OrSYFh1`zmqCc#`k-BxH(73f&|0>mmpDj6Th{gCCQXPv1nx%d zB*bK(v-tdGuH=$tM{IB;M~B_d3Wsai;EH}IhPXi4Jk9-|Cl_u{*mi zuc^dCn*mAV99Vhc>a5m;tg7Y379{sXMt0_^Schh|tuw1JAfHN$5k*nQ=ai?Qyj3%W zYHj>|pg$|(++ce-VdFqkUy9X^yinpm^y56xQ~`3!mkCjZL9i0Belyxb-*4CDjg|Fl zQ%r*0EG{n;dfr?!C8z$Q=M_8j?Ht}apK%fC#%{THFvF0ZydsUdRdQ0Pbo-2ON=fKv z+Ti1kw2G4k+=#ZLrjtUy>;sf*sQO~b-I^)MINR{uGeqOdUZRRr6q-UOe3xr+#xp?{%mC}nmvB})M zjyYNDMuJac7j40KGAD)O87*mJrcb@uIDZsj`w(`-06{mGuSq~zm7}P8Op1B_><7nR zy(WRvi1`43lQW*08Rv(--_w;}m)B7)AOESbHXY~`1{yNM6e+F~e_I8iF4o(-^+cy7 z_$|-a^vG~ldHk5gcE$PLNf!lH6fci4w`|ntKu2;@1W_9pW;(wlIU4#9#l~3UG-x9x ziO`mnUK>f)L7>lmkai(Yhz`vY#f%=1z)xtQQLATJ%qr(kdfb}4mNIbORu z-~P|+^0B{e*X1>oCGUUv_}{da@d;u|m!rrV?0~n;zswkI!sZh5Q8eX+^6zzE0Wkr$ zu+lrkyCu

RaC9y(GcHFEWwu>`HX^Mj#L=J`X&bEPQsEuMP>eS8od@k2o?%iY}} zdtT2k8;@wu3R7b_?w=^su*mBL9n8s4#aG346K%x@K3E~A0!2H``Lwd>JC2nYyQ z%CO^Suqe279xP)GN{_ofie;p;`gf1gj&T+!bNw|bQ@MQNXXElce{JUdD74kR%?NS_ zbJri9mY*L*JO|ty`3#~LLiN6ywZ5UdsiJoC*0WYQrj4f)jcIpK zG>?sI!lT?kv#FN(-Iwp32?B6ace<_YV`{V_jW)cR>~2zktm+H%|}ZLbLJt;E>I_ZnW70ALHE=AZAQI z10`^*3wB2LO=F1-m8sCsY9BgTueRF8CkFZW{?L2>GEOi2V_#nF&sy1zg*^ISu23f~ zZ-4&|u*xs3r!=0#%BpoM(o2=#4Iu z1)mSNW)n?~hTdP3#lc7@z>&tM}7Mpu-hNB^NsgU z^AGRqaBP&!X2UaiQ`mCB2f0og{uzudYZ`SPzb|2%Lumil00uGQF$ix(7)y~vSZ%LN zoIhqw^2@UwD^y1oaFlX90tz}5;OIyzbEz&Cd8@V;^7;LdRZ-%KDTJg&G+uVXTbtLu6jpc^<0fb2*lZVvErLJBhiX!F$6E1=J`zQ=H> zvH$TTmx7-IniBNzWL87CvrYt`Be z#R&sPEvi`G{GWm$0Jv#oDY8v;SfudpEvgS*VlIiZEuogzUJuihHRR|^;O|6Ez3Y(2 zYt1u67q2B#qZfn|i&=59UmEc|okz!V+T0+9Whx8iX=YVe4Kij_n`C3a=_xjJ9At75 z3<|vGl9RFc&;-belYkO}p3ZZyhARqbjVO=?RXr&T+-@vSyY?c7(~pNP5mWAL@w{ zv?`hEE)JoDQ-p_FE{{*buSM)F3|&=_=JCZ_XXgSr7qtj>{w@?1FH|XnVW<<3IdRvR za46I8xd2VbB!|F_Q<9sUo?tm>J$RUm6uBP9AM^1!mrb28dPRpY6wVq#jj@bE)~#Po zu*HR3=d>eWhB&D)gi}ymX@+o~>7h&ExD;amqc?14Zo-g$6*<|iuj|dvV_wuql3SlK z2R*zuJmjEXfJh$8Z)UFKVejz?_s8$BlcPxpa?S zc=9klRf1`8@lmU}l`xjwXyfZ#igq;jJ`m+tER)bP&5gz)U&m6U%TF`Zb}cpb@V-w& zwcsRF7E0l~#+XP}?O?BVz=Ki=Z!sQ(7mlj-229r0%#`k{dBnJ-419$E_{u{QIhc4U z_pGmb4attru5+_KeO^%+Fk$vhE;w{d7PCBnTkJd8KB$Po681$hv*rd9VOT}tdl{Fs zRwOjotCY?SUI@{f%X^!P(wNrDuv$?k6LY#f*AqN`>{DM$y^9yjU;d)`3;){f zvA<~3#B4XwtBZG%y;<9<>I$2DS0j$wTsf{N2(FwTe$wpW@9LD*d6CA)dgg}pdn?;8rm@CTfHkzcaMo?o`30nuv07Ifa}$w z8kMVHK zHV=TaKqWkIO%pUK$TA7vxGvCO3W8x_!{}$A;tFXDZn2r#)|cKf=5u%Tnq!(2VD83u z%yIP3Nv4%~@%Qc4@BHn}`d^m^m(>g0|G~d+@yL_gXN5g|12m32Lm&-nU7kutL?lX< zY_DX^=2}A=>xb=IA;#!vxZND&)YCqes)h93sBVf->PN7v&+Tr0O=5>($d0IdF?d2A zKcU(fHq(N;DY@+fM5Gx*WI3#8a*^#ZZ|!?mZhn!wLEx@Zk{sM%gr!~gKW^1ou&at`=#xFcuAiJ5GNo93puNl z;?rsT5V0!Vsj%~CBTxhy$sof4*dr(01%?PCvNO-Xc?3?~ZOyoc^{tr&Ft$9zn0udm z(Mht!(v-)$apxE9=AB=%>+;6R{qOy`B~borlrcdUqoiz|V2Sg<+2o!qAB`&tO8B8#4tSG~HI`#gv!4@+<_4rr1b#)*S>3!T6)l5! z12;KdQI)41NO$I3bK{SuXN*@z3)+C!!vB_(Tfg@|EgtkA8f0eM-96V@nsHM#%4D0| zMnMyN%ky?^po7{ackwdp05VOem0q7;j@ty?C}eae_&nT|3KQXp)Jt;9($|}sXz+8) z_eeY@MXVJXxK^F9yD2-^nej48m+Hdwj1qw}8v5(~c4pLkcWoYI)_JUz={=xrZ*X1oLOUCTh|NFPM*R@2C z=M)yt2JC@lMg>qDF=iIFTl1~^^`8?>?v!(%g+~bku?b)DILo9Ac<~{e=}PAI+;ttE zpag$3mh<5BKv7Xshd=1FG1JtaS}CKClZ>PzKv#}`^SNKT4tU?P>J_$Bme;LjM%> zS@=L0Ch0hrGWRRWXLF99htzhH2#jk{bDCfubIwb~$8RiIpX>70mz&ET%IRzWqC9?> z#EH5ulSXZVynm5Ld&Xg2>TO zg(34;2_A*kfHaP<@)CH>pVb86m8lsWISCNBG`l^C zvV-1YOsH{-ifN3t+#>dKP4~CnyRn|>xrRP(YdPKh&FxQMC(iRj;Bg!wc55$fb}`?$ z7mx)*hS7Sqa8w?0m|u_HEviBr#ZQ8}Cu|iEF4@5weT5P?mAcn8c5{p^7LX>|zjcdG znhI4Fub<1m|fRAcWz6yNzc+Z6Bg6v7iyzijQ2;~jNYaP3L z3kH@2vFq~Am1ScL@nv4v!_!>wsuzU>@SMPmEb?B;No0QCcLr~5a6+Hitl=?qkUO#7 zEU7UF)*S2^d_oK2t(RE$kxpI2pUx|?SlISA$33`=; z<}sZhAfn(tkA+?*KuCDMA*u1L5Dp7E`WJUnd3|7fhwy27Gn$Zb0(HtKv<>cKl0!GN zkG)4C>>=F8XnnG(XM|VUuOBEiXuf{H<((}TFPI!+v$5WVCLnLNGl-eki8||J5;w%r zepWqj749XMClx3_90@{6OobQKW!=l}hB63oBrwC=cC4ae0qbU4cEf!d({Tb2dnPk$ zw(pP$PFm=~u(Kx`HT~r;9a^I6^7fV0;N*U1!uYFVwt_;CF|!a;n0=2zXi;(nqX{DvIsCl0760$+{9(VJ4ZH{rG8Y`?C>ZPXXCdd7zhG9HbYc=+G zbdF3cB@I4KS9D|E-2+{hcdB5scKdhQq_mxR!>Q464>71&)G=q&OkoN3k>46pPw{To z^M|qzcYz%#O3O1nrl*L3oJhDOz8;nyxV}#)1J9fUgHSjpLKdg88SnF}P7<_v+a&=! z(%?4q9+>T>xRbZ+=3{nUzEP!t0T@^lPtN4t_N$lm3{$zC= zfk6i;F+H0^w=?e4OP;|omYZnSP8doc zWtCpl2@jgLDmSjZz&lya4}Hh>8nQ`>9WMls^w!No6ha145Okmr7lLar)M^=H9EC7b zn;Gpu+GwlR-D~4FMn2Z$As1S0erHeQ5e=lMNSdjaaoOIm$_e+`5XOkV^iq&=2}p}F zKP(d#cPiuzeY_msbaq|dp%Rb%#pbTX{KpWm0e{2*!u!MEsC-vv=2m0ZtHf z3S3DhtTkK+@L3li)hb|Y?%Z}|%FQZX8n0oMujRFdV4RWCv?m^5m6uY=5r<-qs7J`3 zl$DC}W8ZDp<((^OZ~_PdDR~~v!P=@`48u00D+)2BLC%G)$8*cBXMQI{)@=)dt7{Qt z@gmzl*=J$}?xtE7rkJd^^wB1Q&FSvmY7$XUOwRf^6v(-+P&CuSv_pZ|gj=6YC|`(v z$=2K`xqRP`O=@vn-p;Zb9OU5wrZrMZvtS1onMLIJgQq+DMp~he+GsVbeaZ&c-r)ht zy61HtLY@S{{09RD*;d|dv_=y&&~;9whyr;bUZ)Msdq!piA(d)Y*X}WC=$zghvS*N&%Lvx2*$FuwFM*2cH48Txvm z5l^E>IT@Aky+B@&quRTfM&$-Ub$Q^$R2MOzn?CJcn-2m*oLJoytEamIjH{VIk*I`d z62dhvPvtH_R5CdL;|LmA7+c)`j=$m8>Cm^gY+sxBZGXkAK^;ZHL+%_NU>t03vWI7# zxYRhUAU=X{$W&gkT@JcHAipzioE@E-1ge#q@tAY2m6L5k48nLcqGncc0EsYb(R^b_ zP9Al|H`$N^6z#W8B)ixA$IYdf5WcJ+gI*C^|OYRqG8q57;r_`-$TSG zQ{ipdX&|kCyM$xUDKmxL!25Hj#ThZT9-<}?>cnVC*1>TBc_x0oVFQLZa7cqzS~J>g z2#?%LxuSyGf@4#DfXeGt4a$fyhGL##qLkKTZFliqKNY%3b6wuLGOYh!wc5l=)EiOA zBIw1VLSy!jFZ13IiZiJJfL`(yhP3!91Lrv3JuM*U3!0#JuR)yo)}c{4kasVksDt+> zsM3UA>ULqQ2H3Sje*s~}#O$Cfo=nFm3ve($p*8B>ViImV=C6GB&)Ic(>&weO`1iM0 z&+W?Oz1JZ(6LdP9{vIZWU4b4Xc>>^Wu!#W!$GG<7ch{p3cLgm}mWG4bBy2!W(y9$= zHU%jlMukui%BMHr=QN8jt2o{L;1N07#|sRVuoI%kpRI2OQV|9qOyZ#UqbCPGedRCw z57%kYx2W7-jLCxiBd!!&!WBz_357&kr40p~HKGgCgK{Ir-1<8AG`ivaSuO85o;#i5 z)*Y#VibxGr-Y8;^$J8@SfFx=r_)NjZrd6h;6j+TZ8F%t@64B{AfH8TnO}vFS%4F_H z<*G*Qa%9WfSN_xg+0O6zi*{Y!c)3_G|GmYS*iK5ulUcgSwO!2L_|4-D8#_A%w^hlvq13glDbbe}+?!6fUzix-T<-g)^B1y%F-fVp_lN@ddDiEFf4aU#Y%$q1#U}Ko)i9r;VXqJ-EYFaT?3KAIhF!845f5Fb zNFP*I$oSF^{BLU#Ap~NAmlXc2&b&PXw!{=sYXy%n8U(%wp@bjT)!jGY@43>oJhT2Y z6ySXM8!F%`umN)%CBE#6TI-BrP)p&9%X6HDsj0^(=SO(8JvEjULe3tAVjy=an$T+y z?$Rl-_{P8>M4?qVGcJ(lqs{pF;+ucSU;NR}#VgKDu^exyFd)MHvxc@`eCeg9Z^q4Mqmo4s z#>|c!02UKvm;uoSO|Xd}f>`g=0(7T1sO|5KPu1rHyQdU)Nw;UF&&%zA5t;APh8pS5 zcp{A2M|TZ|t}i$L_}A^`mwx?S{iRx$kN>dUUw<0)&;1u&eoiOF^Spz0L=#7VS_*~! ze1ak0IEx`Vir)fX5qVoH|bLiX+?`jcvuaV|hi84VItQAAk7T zzlhTd|H@A<{Jx!D{v-2O{_K6r^y>94AN%g{!`RE~<+ps;&g=8kT_#{zJl|IevDRTL zJA-(v3{mgaAGbT{dI9_I`o?;iUf)2G-TAghZ+}3>H~ZrkU-|jv<0mTj8s0+{aaq}w zOtQCOMLcKRCiP&Y=}b`K=X#APDakhXE5g4E$d#_P6QlRd#3T9qRrv3QogN|2nB31MDwIBD^+84#ud$`7CP4zJP`vxg`asSf$UM=a_L~cLhsc7 z=J|IhV_vtKn;PrA1+6QeeE*}j{`>U}zZ-P1d!I!bNf?d^08%LbT)t(^b1_1O;`FBL zvwC|@gbOe!VMwL%Hd@=Q&S_YMUBBlFj8yo8Odn&f$6~SYStFTTMu6$t+T&=fjRVUD z3uQ=G@K!;)ppuTs%!Wp+S9;Yk8RaXz7yI^{g9vEy1D%El8_7LK{c=uvSEQIRQNGbR z7iUvkVUa_>zC^esx~PogkE$SHVL-fKo6qtz1b+qiy2N3dXdQ zSZKErkezWEhyJ|xB#es^!ch2VwU#c|il&IJ%<6g6(?Stt78z$!U~`Q^P8WVKx`TeFq^TdNAfYkAMb+ zWsll$J~ZYueB~YIerqi91oeEbXH76MMoj#zq0mn$WSgrDRcq+((bu%ECz1+&JePX+S-WJ9$uodYv#kW6>3Pv>tX9%?O0zNTxOq>edFe$#P-Y43UF|lCE${eQ&(Wq}U9^k9aC$A^}Pc#=+5Q0MH?GPjB z=R5_nh1y7&yCp9S!av%y`I+!q`Y^0FyyT9*-q8b z0xe8&)9dh*&bub20>XKlaSmNr(^i@q4Z@w|K|~o7jLk)y3_oAWaqK)&Dh-c+cW4yD zc;ujHqsE9M=h2fl~QG>CCBwmH&fxzW86CeB_ZkHWjynvc>}U9=iWq%ScbD zMU3)Ae%wviVF6&y_ddz1rDD75?(z8dD-FutK`Mi0Vt*^dL$^%b;I@0@wAKO!kuq_Psjc!r=yEo zEO2@Gx3KQSzT=HDT`dx>$#qMs*Mt-nHeFy3Hpu|R;JN6hj^jPGW=uHdAJE7>6wp0c z-!6aN*o}n<`WNgrrlB0~xBjB$Euf?F+1(aHI1fKca6#>iDK3pp;_Q+2{bqn!Mv4~>o?cTU0F?|QosmJe1+ZE+>)r}{=>5*p^qJIMnqeLe&q8JzukN|mgT`iitJJa1w}=OjaXR zu%%g_A?yz0W=`Yf-E+q7jmlXX*6`1~|B;)Yu`9}z3b1u?f=insxE*g5JEn8Y}atHpPK3S%Wdh=Ppn8 zf59G59;g6o(6Ds(Gf@M%MSu2IakjgBE3=9=y>TucW|Ck&EqC%jg~SDhSYu*YPvZiH z@vAm+X`?X+1C&+8S#&ibCCsQ#%+b1v_SR&6Qf?rW6<3=^>c1G}|eM@+#Vd4}~-hLMl6y`AqLc zLR0x|Cxm01%mxU-Gf(F^cLk0qYc{%M8{qPo>drh&86l6ZDs5dt3`E2g3b!*}e!BDR zkKX)%y@qmnEtS^2f%CnKpIrLClRl34j>2C-Sp*sGvx`(lio%XRxazHLvmSFU-ZHnV zzXKo&2-oi|F@$yyopkTOlkoq2ZN}lND6HyAzl+NXmAwcBG1$+r9`_{0-Hv5f&S1V& zg#opz28Iw88Iw44IZ8P~2QgDaK_BE*3Bv{|xNtIQ2+*H{5wn|>aZdvx!e4x^;?1g% zC}j=dZSK36bL+`;eeQ(c|A@WD@|rvV%9mfb_n~Eo&o9$_qMApG>YHmt7Ni1WGfj~O z+?eF?PkX3Q+U_GO#El_4sHm8}p2@#2Uj(32b00cgJ6R5`GGelr*n4G1-Kf7dg?xaUNV6ee^O{ z)J=BT^AFv)^+WG{q)vOjT6s+#0A)Qgefze3cu7G%KP(l562I6;ZyTxZjzu4Iit*)V zO2ZaR<7ZF7*XVN&wcwRWvK*It2go~{F2=bON78dadZw{FEnoHv*>lWut{j-}m_zs( z3O)#OPIeM zAKbkY=wc#9{p}si0WuDQX_H{3{0@PoP}7nZU+^6Jru0wxL;(^hpY98 z_M+I{i)OX-!P>5LWqs#&-*n-KX$%Od)06ah^)+ZT3SAUb-{{zk!k{-(wIRGz4?2>< z@&~6K#*9)E<}zj_-0}nGR-UN5kxv3&&xwGi)+dJ1?w;b6k8aPjyw38v6<{szf9$a@ ztOMGn1jfmX*MJ4KT5J#SykTV;$cC`4MHS*=PE}R-i=-^Bt>$1O|muuegflXY>?^WG!vF>KyW1X2aS%{Bl%d+w~zpNt==5#KlVzBFQ8R~xeSOW z5*YkDuR7?L`5))B8`*orW#V6$SHB-BLQ2V%fDIyca)bhfd~ ze4c+7<{U#Ty2UjAtV=~J;jXGRkM4p?WkaEt=YF};(de4SXMn9VvNP1BPvP8ySq0L! z8sMLNwT-S=DH}fga|ORZn!2B`i-TcU#75+izTUfsM!b?A6e&Z7hp-)@c?1K#*0__b?D<{dAk=WqZCtn?ZbF#YxF1ey&WBiLSN&iHC%%_(|lkcf-T|z z+BCX3c9AM{={ROPkJ)IR=3{>45ezHbr5HT(^N+(lR3L9!AoeRvw@P+`tL0zv2(r;X3xx;5y1RfYH{`g zd{apQx0qpPNK&8+zjUmW4n@f>Mk{F|o};z5Ob$5Kope^$&zx`E`p{b`{5ka7Q#Nm4 zr%x%G<60Ygsczam#;VD1tp5iZN|3#D|NW@1Yn?NWB}Fm~iG^ zG3-cCCSyo?2+8V3@W=rdT&(YG&`icTu!L40qtPXEvm?cpev9^0nC3m3rI|4QxGzGC zc~J@M8?n2zBUcR{f$@L7Hz0KtvQ2;F~Gzz=%(+fjC zJjX*0Ud)z$Uhsp@5Jog#Unil54CFc=r1Ju%SNdVly7lNsF&r?$f#(YI?&oG95JMok z)aR%5+nA}HF^v+(^>>OjDOKqFCc%hgpwDfEp9Z4AUqYguf@Uy1d5vc-%|3Jg{;kix z6N1lq+c&7JUg7fAjgOx!etaS0X-^v>(%I@y47EcjB`%iPl1aE)pSiGBUW0~N>NM}) z=&>Qt-XT%Q!gjA?`#EIWEjGN$b96p*^pLc``y3*WtNYq38s-)U@!G*WOQ@|IoTN1( zb|KtoJ^s0~#6_P8zyI0qdJ~&jZ>D_16hO;RhV_u$>BsHtA2yyg-3kqwixpbSY+0rS z5R`Gng3^jwgIQON@mh*c)^aL)!OgL!J_wBt`bquiFyu(lA29DjmE4;Sb0;&;^Ie`*fh1;hUDxQrMUqC6K~j(8 zc#@hVwSyn?^BN@8Nz#L2C((+%otGq!B%9?K)8vVdd`$yzdo?T{2u=?#FCo{ud}Nv?pQ^k>01>QuDfO#sHd;wO@sB=bnN zl0oRG#8g@XAjLn99y*cS3S-5uMxvr}z!z@5Tz^mU7Rf>~1UD)nmC68uN1To%gJ3AX z6%ytE$vY%3lOe1|C8EL`Kv3yVBpFE36Nbk|QZjr@T0-&$$qX`v{ixtnSOXx%=hgi} zl3pa;Nsfag8vY`AmE?aUYbxqpp+Xt}DL*Uzy)ceB8IZ&ZD?P^=ro*@^tgUE$!FJ*{2z=+t)zV59bpm4BP2hO zAq0?Oq?7>!6VlEgnL=_oWF$LT;N-h$BooL8_92Bx83iKc=d(R~b{>S0svt=|_;Sp< z!6&Jbk(%@d5M1>+6Z2`3_K+kyoO${t$>U@MyOHE1wE>XwJLzF)Q0hREO7L!QH_2DY zd^bp110dzE1ta)!DWr!dRXGGBtzsA%fgedoQW^j$KWAsof{~jqNqso$v_~@L79~~s zFDZUH316c47bcaz;=sH3&-AzLj3gszb^!Y2@ELzB$sIVhU|do$;IwP@;=ND1K`xSj zq%Z(d{<`$=Hc1Ca-+o1h3vXT|nV1YQgK}3kQhqKnf0yJ;NGc1QIx&M}1R24OxZ4;53RKNNy%0*nx7Q+zfz}pL2QMB&h;PWo8Y@)no+!pd2W3FAyod zorF^w_}C+rU&4Kt<_3$H%A7La0q7svpB^T|=)xe89AOj5HMA4_i87>24Irre&mnai zO-T|9Ux;rc`MIo0FU#x*M9R-y8Km+{N`t$1a9Z`HC?m>b2MAtx`ONP^SrPC<-@6xq zJtX_~L(ieOi{D3|Pq~_nvc+P7qFJG2q(iBB9Mn2>=y{o6)%Zf(o_2xFNH7UEfS{{$ zHWGc|)pht+{Rz+9`SAU|3W1HAp&!nMo|gxBNb&ugi$%&GsMMVR!=sW)D0DE;C>U=g zLvY%m)~y4zQA23woCVvJ9my!l#B03@h7lw*r8=Po5bV2nEFBW~z>D;dEqB#4ClpOf-8fsqQ^5@tik z8{hALAb;BH@XlXE$D2Gz${wX!71+951?QmtQ0pC!1i;(%nWcnZ6bOQ*M zFmkffKr`Q8_jur$F%!9ypMkz#&U;8kER9b=+M~muwQEaOVXA|X>x;Q6@Kv*`%MxJ# zoX$&(kff04oI6c0ZOK+)1-Lx(?w(iIWP(HjwnVA?{b*v z@$oKPgq*vFA#mUjB&mmX?wLq`BOgHe3zI2$)&POcTakU|J2iB-hjwG*_qZQ&X*432?)jYy>=IdM9W@#0f(+bp=eq{qZLh+5NH5520V&=U*fDkx@sDV94EY4jmwOf@H$w zMEc~huw8wXq5SN&erOEc0gk5j>$!QzfB6mgH>`(A@CYpKFwqKe5VIDM0dNufVwlvZ z*1vi+vTnKqfe=A1Th}X*_SEB091fA#mjC*j$er-Cbd8obr2JK0dk)&g7mE)AJ9i+f z?_Kc!xwgcYTQ58h>2JIQCEc_+CV!B$iq$n5(+&{q&;Jz6>e9>#{o30hm7n3AAZOUa z#!g_d&^fb@aU7C6LAjyUt%bCSBabTo?p>uSKjU5U8$4gkhKcZC^MSD*g0zx6)! zEK{c|Jqn|?IBG12lHgb(PH{FT#7C=t&O@W=Y`8J9m#%4_`O@(vZ zXef3ET#t@`TBADoo1dqMgcX(s^`T~@%SMZFq6Y$`!~e$`M2qjY-{D)k9@f^T%`a!K&w1AgD*F_~)tmMDYVFW#1rbs<&At(HO+tJ|ML$Vx~eDQ#c@lw;7%atXp{wk9ovz0 z>j3!IY(PAy^=ct=@qDw7uIv_VO}jvLBrlF=2jFgQ^l%SM9zyN;c0SC2cLKHXsc`h| zBR=L!nfs#|@UQzPSPUekQPeH+-vCK|8Z4OoXS1 z-c0h}NM0Q25r_|c9bhv4)zP0FON3Sst*OymT0eLY*#qwtXH1DXu>0A!Yz5LLJq9Hs z1J?HK;GQuHX5d@A)NBJ_o$g1AHV^O)TRIrl3q)_kmkZ9ms|hpVHYOW4!3>n@Rbgp( zvUu+PVwP0?1mKzdt!PBRSei63?QRwG9inu&Fe{>(fk@n-+|}W7n2f$}FZ8|U)b=V> z(hCyg0-F=wOQ~|=CvVVZqm@6WqbSy>Lr5hO*tQ)BfOmnx!P(NKQmO&a8}Pr9ySkZL z*Tw{P?Iw3-0=hcLn&HF|2;Qf7^*8C_%ANZX1P@+0KirGL?Eu{Dr4JGSw=0AvA+25{ zDTJP#3q3a?hfOTpPm6e|<%Ho3fLoiG7O5zVo|6OJFAbp5Lq{v*<|9FHzFLdYUJ%j% z$a45=Hy}~4dr}@(B;3T<>p_CxyFmZaUQpT&(2?Y1Bns}*EDb=yBvubP^Ze;hUo6c4 z?t(;;`f&F0^`X94q5+V_@VWnLNF)`5J41aTR3x|)jO;o|1SnO~pqqJWS5x6ea{myjczy7Xp z^GV7bKIw2gYf4F9C=MrPG=n5GHY=P1`XJ+jH^=~Pf?~59Zry_iY30us6I7hT?-LEZ z)Y|4|kVs;tM{sd3LP4=p9Ju3(PE&oE7eNtnkF^rhN;=-RS zVgNzkKUX=+&Qm3!X-Jzq2DUC;#E0H_^N{=aRQT8aUGNhB-<#q4;YZkS?*-?*gQ2x( z0oSNu$QeF1a(ADq!q)jRI0p}e+VCVO4ksO@vgmHH26->N0`K>WWILGX;dGwMP|N^| zEBYxUO&~cIi-i>V0YmwHKDgii5ZU)WTtxYgz&%a#UwjSj_dXB-KYLHQC$x*K@`-mC zHnQ~Rr@(T?=|cI9&u2ip;C!UN`X9K)JtU4{lBf`idvK92^2x&R`QMygKNSr7E#2U_ zwU>DA`F=ifCp<}K{?d;%`Op7XH2USElH-AU07saLHKzkI^0H;f88j4! zI&?zLu!rDZ{TCG4g&eo_f@}C-*#sbZIIvr!S9@^-VBf#|tro*_W@EVS8zPQC+`}km z&@gc(4@Y3%LF7$*QasnrIve&L*MxpCDYJ8MKiXl8*LXgiiNif^gZs-l@UPnl_lKY3 zaMzpQU9`wBsQ!1*`*nsSDmXp5NQP*E0npaK9d}zmQUs+|4LbTf2&G01(Yc!Y-{|>~ zr*V51FN1H%Qlpz)pWdRxuq3SQFNULEUttKISzpod>QOps6)orFpPSWpFuV&E7)P>k zBVlRU7?OzL#l6U?QFsU7mM4kJ{Yg=59ooWr;RWI>pZCN>if9|PX4r4#Z&d9 z`q0if^O%?L+ymFJA)?Wj@2|g*J8p953o{u(-v2!foxD#x!QJ)Xy>w5I%>bgHW#P8! zg$;mP%b8mAp6ak-I`8f;R$K3ag>ZiyTMHM@_dkh3eXgXkU3qM2wY_&wTFK88S&?~T zCQ=}+^kEV{x_IaP_jO?;*4C|{o+j6=C^(6v(UA{?0R$V1o(oA4>^-_bt$&i3Taf?S zJ4Wt$ERfg8``r)5b7#>}3Vg(J_U+Bj=r!}jktr;+8@a#u8v5=%qW6)lODEYRIC84O zaP|m}>;UZfIUAB9*l+AE&g9--mcaMhO2k9%#HW$n|8C(PEes#A6p9?{2M@sg`a2QF z3iN#k;Q3*J@g8k2f?BmIBoR}f>qiWLk3Q!>Qh;{$>991R^Sajy_uC&t^)CLE5ZY(tPV-UoF43TRS*e24GAcGPi1V^ z8SY5`x()Cru+2*Tv^T|S?w&czC=!YS|KFQL`h`-vwn&)}jld+4z|FJx)Z;#40Ovt+ z6gu|UuIMP9`hH(2Mzu!&9>M>FInwyo|3k;4sfY!>0|fT&g@p`2J>IklwUq(B2y>R= zJ~em&ZVpKSYMmNTPpmJ7^m!NjglMslS0?Sr@u>3Q>u?OXEn!3bIOQU+(>PM8beWb! z3csG=Q46drcIq(p!@WWAI)~(Te8yvUY95O>wEyYc#RLwxzl*f>{bRN>47y~6e z4UwYQjg?=|O;~T8iVAlANG(`>`Bf8`g_1Leyv$q)i-6(Oe@( z%YM_1&~tK;JMPJdzFnzioc;AISt%AJyvn8V4p1ACqBx8KcRerif_9Cfv7Eyn3Vnac z3TipNF036cDe^gM+lvtqRtuEs#|7WtoKD-72tM`H;J;WcNQ!dg7!yUuGOpeViQkXF z_MIhv-#KT}1-57n(vc%rIJino%`|p^00q+|Q6mgMMo^05HqO(E!x8bfsI^0{BmR}Y zhpZv6oPO%DpNz2Fk$wMaH6wr@*tQLlsHw>YAR{Qn(6fTB#mp#t>!loj++TeY@@tlp z8y@?~?8w@M3!|%EO{7o+w(o!>YN|>DC;`shXQD|j2!!w$>4y%&{mzFWzmHv{#qn>9 zY|4$+tSJ=DNZ?|(RaSu&!~eI@LQ<(&lUC@+ z=7Vs1l-$wdM0YqYfC=o`gS@Aog?q-ArGHkB@w);}JO{Gps=w%e^FZ~t12z(W5Kk?^Wv5fb}w?36^IT9aH>A^NM_{ zR*Qiee2j4n?icxc+HG(?JX}2YuU!kzg7EPI>m{v`{_G?%%|>zzZZ?2CNJ@lz{kvy; zE>>Gx=c{46=JLqCk&Y*h>#l)XqlUQTdfu5{_Sue#mtgw3f>dHjClPkW8d*~>)-HrMD! zV7;hi*l)A7Z$oGNzT&xe?sxF5DeBkfpjF-zQxVv*MPz=aJux0??b0(+Y*$iBt^-{$k@S=;23&-R37x4Jmd@;DLO+d85u~Q_AG2& zt_XQ4wzg{p=g0>|6j|T554n>|Zh7J--#t%zVJwXs!!==K$huzbf@W|&Is%H*34QNg zV>ST=z`~(5IbHlei=X$`dPs_*Y1%eTRn`5Fl!|}-Mr02diu6}rfJ%y;{=!uF?pz7? zdmq!+{uahyIk^EHlP)I%xI}!+XZ)-I_mtYK%KhFau$)kj?g4a6x$+8FK5u}Wp%22h zdY$Mh4VwnXE!We^f4_)IbAis`Ui~QW6hQ4QyXwRZlGjbLE8#f|%`%2Q23rcMI>l?+t^J6z8B82n2RX1Bi^k z_Fc3B_lNyjx)5L90hUImh?!nu#m~+aQyjhD&Vz@7Q;}9^>3R9cduAGWo3_DzTQ6vh zPlKglL!hBiC%~Pl`8~NiwQuDrL<;XnT4STw#`E<&NJ`|OMt6WH8sA8e?-A}%_lz&d z%Trw(O?Y|b=DC5r`(kUM?)Aa_!Ay9+`3}}Lt&K9ts@3SIvkBgXKg0j$TIk;BywzHp zR#1*R4tjnbe2W%Cax6ZdZyzVQ?1m(IC{PyIxrd(YfmsChAEMyf{{WUaP^wmetz&!f z+_&V{$bw~+5M9@IvjLd*7nB%Ky;ho5}by> zrj77^w+NCF;T-b3BS#?KBju#Ec+f0x-G7&GX^KlRpV{;CMe>?LK{O?!Dr_A(2yxH+ z969%o6vZrNqaI%u_N$DDwR`s02pp6RvqHeWWMKd~!4FP>BxY=#I>2$y-Qqb9$9BK< zz7Zp!3$j|PCi&!>LA$t>;o+hCgJMxBm<7{u^zI3zRxJ^P^UYfjRd1t8#wG*}fUB}O zRxb@8RwyWJzqzM)>R+`ASvT}8XsvPt9*@MyY)akQFq>|Ss;F!Q^cX&5DG7;%`v=*LE0llT-zX2X=1pPme}{PP`C@j&5#vew>Zo2_y;JEvCXf4kd&-11{5C10V*$%^M5^+vFVgOuOu>z8q z(DxmJXW@_Hx#P||VC&vFWErBRQ3E*o_J&%c7A)t-Ih&BDSzdlA{mg#C-Rhk?FKi<& ziC_gC{e=%s^!uO>@+d6KEy_AW5)*mPzYJ@O=1?0nK>Cvt;q7u2JhQ*0BgqcB{JM>c za+A}^U3xhzO`3=pfalBjQXZ^rE`V#~a0+_4=ZC%CZk z`@HaP-6oRL*h}MGusCM719zxMd+}*Q`41mL&WKSF)gDL$d;u+6KX>9&@XY!a zl89MENB)AA+yw?epUkIwz#K>eFa@sJ)pycvyA!6sg*VROgW>o^l9_?DiDO8q>xuS?0lE+H^cZfJ!ZpBb9B{hCm{X;8O<3xm z0QLCeq1LT?G@XK1{2v#Kyne11)(>St5;HuZ zDxcRZ@^7RwJ{yepyZNFmBli{J$?=l7;giiV(+5j30L}~go}@Pv4~%$+aj@Y;-U1k+aP!^YzOJPJb>j?z0NMq(XdrQ+ zM(#%{NB2m`A)qJ;?M?eS>2k=0Jlu@1H;^baEB(Xeh_XtLN;+V-B0=!%i&BsB;WY3Q z80itFqw@5`Sm*CbDh_-SNKZ$CcpqUpo|I|;v~_U8$%jY)+_{*GxFwYvwOUm%NizX( zZOaR#9e>2nM|j>P*#VPL>(m0G91$84E&~i0Nvw)ZW^g15?mi))-?v#^CzQH%kRZN; zQT$RWkr)7PA#cIt6fC7`ChY>|6rbt)50Y=)7L0fKURVPNhL71L8rfi~D6pK?2xh>;DSRt_7tgf|Tf#ZG-_g}d z5;tm{nsAO9X7n{Byo-Kg;fUDw$oGzumb&1=oig=gkh zh#SoUJ=m9rhgv)Dy$AO0*CMcaix_n(i33j4KK=wK-2E;Hw_Y>_(j;r^@MCAAgcac} z?sO8#iz8NMG63GIcrN};cf$CBUOGTT1PzJ1%{K90U6sMlfjt{Q+%ozaRZ7&aL9D?b^U(IO*-zXuct;P%OPUmn7W}6FoxK)~%q{ zjnbaT%frVWN1xtCtt>15pnIkACmPxfa-Vn}xf3SQ>hCs;VEic9Z|F+y=jc3dTB{af zB&><>#bhX=B$ix+k6@%rn}S-WHf)`*i2NIP6w#v(6gl>Ym4Ci@o(V}QkP)~){0#Xo zOcS-riroR%$Puu1h+;KYRXA=p7B3TdkrwEvy8=gT0Q5t6VC_g4MF#OhTd1R7AE>pC z3;){Sh1b#dR-ycXUAvI;z$0?yFJtuV9OORxGV)(}O?cUq%xXw`?rB<-B5N&c?brs^ zHW$N0I9=yi#6V0YICkt{IQ%1gM*XRe~xUE;gg*Ru&FnAX(79H3m<%BEfnQ#rKz!tCkASmXQYNuu}Ymy+hWvZQx(N9Dyyt!9y-5(x00I?X0FS2|k4k zCFP%wIEbqvB{*f{F&HCf;)jkm&ijYJdc~#2#~g-dSJ@HeXIH1}hnbx4ap;+skpJ?l zw1a!ZaY!`zVrXeh8$DbYg^92?GVU<4DRI)^QRsD&>M()8_U&S&_pMk3OViU~>v$=A zzbu9K=cr;Fl5#-FNQdpRON4vd{o$tw>^neSyPN0^_lTJVP~6JDEiJ%tr|Fwz0KAht zO>!?xf>Um@uI~l^CONw=m9cf|fVAhQm|3U6r;cu<{H6>;Go>gu=oK0UqobTDsCDWf z}R=$Nz|w|3;XI>A8|*1RM_JN__KXjd{JufAtM<$X(T z*2^z5J3XC;xnEBPun{Jb2m|1o&R~*BBqo++>G1uw9C?pVfp^JoavW%~K@naKa=9KE zF3Md^hA+EaN%>9peUzWkYb_4ud{)N74H|-X=MrsA$8+4gDS}NSGl6$slR;bl7pwzA<#y45cISX3r zmax<-lfgl}o%1}e-r*Ws#Y>q~%#snDOb>HO8lpVN%@*DxokH~Ts1yc^D*X0JdKyKs z94H6)55&VPx&__-D0((Q8x= z;FA=Gm7hy(uL;(kmkDLopPXG-BwV=5BUnuhW=K*VR{ohJy~ER}X zXw_k#!%;9rBr_YZ|w4Xm5NzplzjzgS1 z#lMgTNXo_eEGaYCy?GZY{uf9BlBRVm838MPHyE)3(|V6ek_ztPz?s4e6Oq^!3rW{I znGB&lJxn1v2a<{e7qN3S*Cr$pN!dJ{jDX_scpJu!AW3bwhIa(X)MQ!p3zL+Cdg&LH zL(-j|jwaa$Nh-owhup64I{I5qNk-*ol6rhZq4bGqBxgaAD)5lH&tMFz*nlJ^CFZA) zAyk3U`+X2e!scp9Oo98wvN!LuVB@r;CS?W)1#68tqx1>L-5?oZW#?v~gGupIrkPX9 zP0$KnkOz`HN>UAyWPtnga~x+*Dy;g2Ny!m%!Mg!hn2m+uDN0B|sw6BtmWYQYzCwzh zlFo{hpP@*`z#Uir10$(U&V(!*c$MewY(rxiOO#9`r5iLF=nug2k(!a*03*^UCuSrL zE>7ojek=ODcT08UXDZZ+NxK2JC>TJ}lcYK1(a0=V@xLZ{lVn!1`t)O=LLM2&5Ngsx z7m|K348hdytd$7v#lz|9&yXx4#jkLEDJ%4unGC@NV~`(r7URKHaz}^^PFH@9w}W1M(L;1r95c5_N$*2AdK;^xNxly|OvSy1V`Cc!uY-x2O4X^9Hp z2#AwB7#G`@N#<7ur7ujSb{hs8c3n%-14h513{-shT)&ruJ1ujIny*Re_oI>`{pKi0 zv*7xJD`6M|8wMLgMfv^ks?JKj0>)suc_bSuk~b$-qyZEoXbjx3f_DTS_Q75xp5V<1 zd8zXI;#6d=x8_VtZZ`D|$x2fAgOC(K8bB!oQ!Y5)r~!4=T-#HiktnR+6 z>RPp4sg6)llKzB3fC2>t^+{GnQVj|U=HnIy3JKw3dGPx8`mrGYl+ksCfF3-3(+3IN!&H+Ox zL1z6k4Pq*^t;r|4FzB!dg!aEmuUTDpX)hBSAkg1-)kQP{3r@3#5GXb1SUp%t?5{MLZWYV>w^`Q9}% zBl31LAUd$RRsO`F^lWb|-huybq=j_54gP5xfu+Z_ZAY+WTeKbV0g-6tX$73<^~a6w z(0)-{XoJK#V;2J*RQ+YNKmJ0~-atRde*b?i9Z-osO z^?kZnol*XIFBXTfzp*#^jcp-tI1VVHDbk}|K<@r@5ce0*;;l)1wjb0fhLELkHv78rClYrV+ z%k5^xhxCRc2SVWh!-oHbwV`R`#BccmV#NO3AjsGH(k|Ne(w@5^0>R*0*IrYCy1{9j z5dmEY^1?oEO+j`0f*yV2O(2o@-zmUh^R;0)9iBY~M&%lxIy3gY*#<{0!tCx`=d;Ih_?^P;pr$R7mdS0VFdgVBh@q0TO=Bqd z@H1`mdRrdue%2#7I2Epi2+}>@RzY$%#QNf982Zw-KO&%R%nSy&F&;v8T-r7`-vC~y zbUlxG@Wdh*%%mgnH5X8%L|+Hkm5wu!NLh)6Wc_+idN8X_6?|^IYLg?yL5fFb1}Vm| zJuk{(Gl@3SfG$S~au}a2zgkmvjt%+Sodg{V1iD^RS^ZHOM-il)IHFKQ7ysxjt}Z5$ouCS zpfPvz=vaeZj1Q~6Ec0w?^eL3^4e^|V@*;h6! zlAN~laFXU(iO%89ma%7=w{T7b$I{|F(1|;_UYYu8NW(q=k5> zco!|iNSJtJbzQ=qel7fq^)o*GDT0&F_sxvQJ24Lz6}pdPy=inXna|g+eW}SJ5hE@E zOrnt;R)4j5tvRP-2MU*{*%<*pcivhr0jPeJcy4S}*w>@wqmR1pwp{_$_xyLw!U0H)%YADZ$ zcjdlCy}aCRRh;vgV1#B0V>Z;A|M9(yBX3oh#6GNk!S~j0mQddMC1hPp7r8%ZBkYRg zPAyFd1QB`y*ok(@9*?l*2!oD~wffHOLL0z(mquGX;ODOO8Pbj9rzB9*C^wgwcO2&@ z_XTkg%TgO1PG4cJ=cc)3bUk9Up^>ECFqlMyIo}@ntEd{-Ej`qJzED)&fhvdn1I`3eqwH@X5T+-EP)^3^`oo?%5l+c12Fk@aVyTueSo;MRc|R zWMWVgWCbuUvvZbKCNAtu9=B_ND-U#y@+zWeX(%B#G}|MGTWN2smCN&{JeqWI=YRE^ z?lCh3f=O?i7q=mf-LFtx3TM(xNTdkk@xCwuMh^>|OG)bUG@hWnul7R;n`G((Vc zaYi=A8yTF4eLoTY4fJr_8Fju2#`VGXLR7Kr?XAnfNtZMhZOcj8;Ef;c>6ERGA`?T!@9>g>7IRV z$H$pE&fEZA2ecRm*mdZD^7G782d-#ZFvLniDL|I1_)~PAB+~0>B*2-B^5Py^$k$gto=mYcOci{+$;T_iC3W_FNH!_;oi>@hRq_tF74L{Ov? zTt$;*3)GnqR11a@!##~jHXo0O)Ba$eghnq44OTQ0)+d76QVCCb{f5TqF^SvU`X4yr zHp9@hbXMI{rYyLNBtN<8pqdB=N>cFG&rRSv?1tr_4VD7u%CKI-A;KQWiXqe0X79Zf z5vAZBoF}K1zc8Zj7Y#G-tKMEWicsMf_sd z)qz!kmshP7ffTAOqD;>8ADVB{8cII+iHokxQ1<)w=uho!N{=J{7hAzj+eDhl!a-e> zC(v_r(cH$oSKu3{5GJb38tOcisL#&hGU>&zao*{VXOe%+a4keQRyNn@hb~;xTC`9- zzzKb|?bh@nZY4?531X=YA<;@xm^41>TQ@&nbjH`_0XG+se^}0^5D|`Jx(!1CnEBu` zsmtWW9DaU6G2*zFzR3g(jd%x-^_LcTrLv$SYp@as0J?w-kC2)Y6TN-Ox}3A*TMuzS zeN)bP!vt~k@YOV;w2NC(PN^)Yx>>bEOK@}_DOdzs9yo+ExrYoFDgAO7CYn+sr(a+Z zyWq&>`|W?4e#T>sZ<-dDtfl$2|0hFm9@o-UBoMaxFP-r1@4va%ZyNX?AP#II>ZOy~gDE}qIupUAv z4DbMfMZ3UnGe4ULJ|e6Z_Js6JbwO@Q40G*q?U8IR_F=3oYP|+eD;CR~iSQ~3iN`nW zfePko+;app@_z+-3qDObH`0@FjWK)4mjOeyfL_76#O`nj+$z3J)BCyD~B;vAEaz?nL*g7G@5fxKJ*(`V+Mc?eQHk%_ z0+?bpvvMK|LdlD-wsCZcWYHEl3EaZwth)&ZTy&W%d?zV~Nqr+d##qBv5sYw|W6*yD zavkl6Ubjxliuisd3SfhkfbWi(scO$ST)HH!`rWR46_0PhNbbWdeKioq#GlF}?`Wxi zH}0Exv2n2D$E4)!U$sMuYr4*_+&bizxBNg7PMP$yv#5S_rVtare>3gZaZ>pxGw-TsE@VXWZaA`9La61R}Y`ud<`1E-OR&~xGup2#L z0K>lxLWo#$ZtXrCng@kolSRA{6(kYH33sQ42|9IsiD9lBru!;;q@_(4S0c@Bc|>b0 z6`98QUmGI!hqncNM>l&@{q%+7YYYVp>+Gnt9D1AxO^EV;I3`dmg?ScPhwPF+|2CT{ zbMddNE=qF$q%QI+6L#$EQH$dev@X~-(Jc_JnWgk#i>#NC-oV z!uz%>s3q5+hV>m{^&QIC391$bf+#xpbSV5FWa`Eh**Z-cz?NFP^%7*v7;;6U8ml<+ zV<+!)HKA|pcUw&vLRudjICH&ou8N#3^s19vdeIsOu{11b{1)@_m?S5PGf|dViTTmV zPr~z^nJ&|k6^Ad_;f068?V7EVDqG7_gR_^rWz~%ezLwuyGkMs|Tx2Ud8!8TMcB5gb z3Q@NL3$Q-I-2RW8HC;!*cQ^McCw({BOdYI-^$A%5kd#&nd%Yizc#S=&<+dm;Ok&p3 zy%qvS>nrO1YpsJX@l|8V?9br`DE+=DOtm6W1 zj5NaM$K>wp2^m+n4m?_7n}s|{khL$aFUW~74Ic@%1q0Ze!+fWM!c+06&aRm*m`r&s zS<(Pc#2QxP_S50PbB2{YkxWu~Rqi3)L{{{YoevLI>P9*MD=v4Y$~y^vE|R6>>!TZY zXZ-_qnUsEhZ<`;5I*^B_@I)`8v`jxdMBy&#qQ;O=k^0DZo0oqs;8W}yX0B0r2KQN z!>u|}ZAZrA_?EP`MzPlTRhBqhp4);RiT^(74+dv>f;V5^i60l`y)qG<+0bEeuHBIA zl4EZ0W?tVZ50&&3p9>Z^&JhzC_{8MH>!p?~ssc0{qQ6G}s!qBCVd`zB zh4FcQKCY@^$vKM@!F4OXP^qgznkzprF(M(6_gP3PsT70|v7~VvgjSN8C8t^0U7%;K zt?dF*g*7qat$Z1oY3Al{bDk9?dDB$A<`{P?~-VK+KzUy zJn|W5NaL>7-X7w-(d zKLl{lXpiD9_Wwp1*bx{XU~y;)XU0Y_Xx+&&EbGbDj(xcSKT04Itcy;+w6&})D?KcN z2pWHnxgvY5h>JEJacr9@5_?Q-JY{E2nxYqfsw1w;w zj@`>^ULfYg)=B7aAT!b5qEuiI3ubg!JZ>EH|$_0As zfEN!zn;tf$YSwkFXB^lF;co`-TIGW8x*%HO1HKzMqJZ~~^>b34!*}0_g@)o;!-Ou~ z8QZXFv(n{8~HdZyi^R=NhLGabqohs{^Y3!)WbCv7LZAqTlb?gANV;ZOW_ZlAs&v2$b zVADZ-wOwF|<`g|;wv$B#Vx#8rB@hOA_ESv{@j7IA2L!t{ArZK4 z1X+Zfl+*&S`?gQNrnmT=7yV)FMeJ3?JoeY8@RD)T5gCtBMUd@1QGpXPl=GeYq~vVDaxDE zGbeChB04O--OjL3cA6PkxE%DGUG>VVR8`%yrFLEXEKm=xIpVBN+qgtet6yUt^Et{S z*6N%qc?C3_&6t-OZak%=%6qn4X z(`cY)UuF0kh5(;SBH25w=lQc>Ls%L%iz0sW~2x(@Om6_9>ks@KZ; zp9~3%Z(C@pO&gvE-G=!^( zou~Vf-EQ<sBYn_6aNTRqPdbSmeb&QS zD@R5`?N&v~Y~$GBjv-wn3;qyx_d$QwEOpPCK6muaT9Q*rmCbI{U;1ImHJ2c-G@Pc9 z#0thR717fnr(QIkUQcV>ZY%4HLAN5y@|l=OJ4>ys{Fro+?5o37Pa!-eJX({|R>c^_ z=3;SncUrlbM_p1tYczS>>ybmZ2U%t5BgF#jt1<`?-ggaR_aV>fy+3I8ydDC#!(fB2 z{or>3X0IiHqFq%Jo*q%g)~S3ynY|uS+)lbG&Hsg3Uby{f8)@OEwbWJYGmVx^o(TG6 z_UXn!HYsLcJhWR|s*uWI4+*u+w{-uVkdwSdjWFV21u)_4PBP#01P(PU?<|ps1tnNe zqX2#CLvL5MEka9HVc7*-n5LogNBW)r@R3*Kw8g4W;F~8392OclIPV|I=t~W7qwuF> znMDXpG4IOz7bzidPYf8_4gj1>GXnpimQs9w%5B+9uY+Cl6!s++h{Kmw;F?L~C2IXX zrkb!y$K<+cz&HnK(zS2QOv#a*?Ly?GJZ7m`TRmH?3J%G60<1yOOdu^!w_)4Q!=&2~ z545e@Cneax_29R@!@C2~u=`|y9t*DLAB_2YL+`S&qIhk&y;GfYA3EFgRYTH#)kC2@ zE|k*|VF9qxFKg8sX8=bL^Pf(QSV}Fkow*U1KV~{KsaCX+c4I54bb#~ z%fmlNNFhY}`ZYChm)O1q{`sUC9pDCfF=Rkf<(m-roB2XilTH`@IA0h$hj8;wlp?6N zY11nt_(!Qnq{>r!PWnWSKV#La>&W_{F+pp~T10P2+(=8zg=v5AXP zk6mpV#`MQ;lrqJwkKs;YRY$(H5v!-BH80Y;E0nN=v18s(7Wu9j!1|5vq(C>UrPE}{ zdOT2o)UGRL?U~+?u=%tUy#IkeSKggS0dE)DPs-gdiXi%}x~FMPs4Eb7x#|Fb`aUOB z(!}h3#*50YHQa-pm*vEGE^q>dxg1ia?!R(!tXlrjSvaZ^prNM<1P*U;VvqhvRbgT! z!L-n4wCa?(|F-AL=@dKk-6oCQkY8c`s7V@6>WV+qv#P}p&S)BAs?Ms1ErYG!q=FD& zNs+i%R`K)B&ifDZ6%{oR-KiZ!V79(^IEj`sex6asyOP0!U-PtIS-ys^+q0dgElk}! zC68q4(ZjrwNkpB5X!$HKWi_62ahu_2o+XvUYqahF2YqqlG0Gd|r_51$#aAwU^P@)} z9hdchXM*Lf6xRgWp}RUoO#@;cY>jweWcPnPkCoDY^#izV14Z6KA-5gRK)5Y>sGksl zZBPK@a-TNO26HnaX`<4iiexJH4Do8r!9S0rQ&)?x`)$=KY7b6y_Gyoh`t|yh^g~g*YymYEYK1{s(pH;h7c@J)t0351k9M=bl zOYGXxt-A#J!J|Q(P<4p|bwNv!&77 z2q4J8e?+Aei1*vGtcw$Br+N9#w*~wz`sDi}n)RJ2oGwuMB~fIKO0bnhLI+UyxAM~j zbkiMmN^?gD7gn4s zD9%*$xRj=!S5$M%N0Rr{$*A}1NJO@cME~fI-5AJ2eo`>0mxgSkQ*yIvEe^P`b&?#U zD2RzLaT=KCNqn{~$1qxrx8tAX%<9z-UAP*~kVR|ZvregBB?qO2;{syn1D6z*a>m8FB<#<(5Pwdl7 z<0=?4(y1>IG5%77IFK)+A>_PeKas{|JwdcqA<`aEs<~ZWb3GpK%#PP^P%G$qt&kui zc`l)>&!4k&yPf8RO6dqc=Qcc~6UcC}_!g8W=ajL}*6X-N=OTts2x3yM=EM!?=DiHg`;aTMQ)^KvNUel3qne_qg}NK{>({axpTYQ2>Ixp3?P8%6XNywuGoP7)|K&9 z$YYqF!DkEchv{!?eR|PcSvM8)XR8;8iemA=z;DquT!HckwQamWjVsAw$=3B~Q@8Ic z94^jSna*_J?`HlnHZjHzq1@PpzvjsC=hc9MPA6P$Hot>trXD|;iNiGrpYOvtNgnSg zlY!)iXx zjkEF8c;zPkD134Gzj(<(Ju9OAcc~EX9|QUuj(remUOsS0vsy{1NX+yPK2|}M3$^As zAA#fv=BHa8_v$(mozJJSA7tv z4N=J|tR<_0g-aLC_alQpeQ4hi{_!n4X|-ElaV!=fj3|BKA-3?mIE#}^9I1%xx z=U<-42G-qUlH4B|x|f?T$c3@9kkOzKOm`1bzmX#mg5?Hg9dlt6$B;k}jDM8+<& z9dHM*P6^syAKAV&TD#>k)Rw$BgENf2fwFKiESaMz!^RdME^sf(wyrsE?or6`oAwCm zUH9k4^#7_Tj?ZUrjFL6IXw?Jeq->=!B|*YP0gms1jwceWE(|tY#;~L$2#@l_-~2Ak91~j<{ht^6Nd-zfJ3j|zL$mbP@<#9V znT%L4W;bVb2kL*%+w5fo-O!Zee1dZq8sp9q1DX!qi}-#3Yj^&ApXr}FKks_KWP7SK zxlZ=m6UOB_*NWmEh2 z-kVgexJd}je4lR4+}FuW%q{R$KWt8i@eM(uF;=8o=5c3z)~oNw{DKh6#xME7UW z=W^MG6lpPZ&t8ka+;BM5)D$j@vP+THDP9`GzNyM-ZcnTI18PI(ez0l851?@?+WEhL z8jqLHNjFp9NSAO5SX%r`Y6)-$%wv|X|Mg$d%_rcU9pI=TXU>P^^Nm#EC$hPhe9OFy z&m~B|d|GouP93o7$#cNlC$iGRybjx=PV)^BL=h+$RB=;sE-$pX=UN;8iD8q0Jpr9Z z8P?ldBVbQSd*aqp2lw)ZZs-#IXdT zbAq`G3N~JfX}4#q-;%0bRX=0YBgQWs(gk}pB;#Z(v8w*#G@^)f+zj7~(*DMhl*aK@ z-O6d)6R&*MjGr{dFR5@b>+PtnmdSg>L-DA7rt511Vv<1(0jG7FSE=~AhvCET37Fh{ z0to3to?^ybyyrNfIGwIBGmOd|CUoVPzDOLfj({|RW@$(^^;DgSx}&?}inG1O?#$%n zkRfx$PN4hBygY2E?8n`QI_+~g6|i#szs~OqLJR=DMB$3|>(6$(e4xetUzsZJb#&>J zz?5pK5UvCOZ{y|r6B=`0=7-6}dzurKE5Zjtafylz+H#>YYLG0J8PP@zm)qr;F|#ls z@>vkXGJ*L^=(ADiHgEW_Ag+ukX?FK-{W)$)FggoeCni;4a3%KJ`1;|Yjy7`r@WI9c zIg9B@ZHu$D0UFcISFxqYvz)&Y4Ttfn6MUPQu+DSjxwquUh#`{jbRN2~^virTX$_be zydz3h4o%_H-b~!pSt;~g-ZRU*Nq;JYV$I;3~oSl*e&g zy!3G#N=j5(Ru8iR1$kXFCLbNq%MWn~P<62#aAWG%wy8bWtp;_oH^lsG3=T_08qcb! zqT*uN!4GDp#Lh$}Ph+N-D|QOO{X6k>dOQPRSf~1|CuVoEFaJ87Mo-ynI)C0IVO9N< zH=__q+9=k)h|=Z{zh7#h!mti+bt3+!CD)#>9g~Mad6;vh!&eVw7T)8P^%CkNu13o0 z<){9}!TUjOIKL^gxm`A0KTj;Pk?Eu;*d$Y7OQg^lSJe3&Q!!-!E|SPEZhqhz5AA?5 zW@5P%2n_!A(1;c2`X8drSV@{>av!blSfFNiG*1xN}~x_ z1H21eLhQ^T0bTF!+TfU=(3-N%o^=RKoT!N`b`y5D-#4aSJz0V+y?;8jDx&;wO;#g= zDwqooT{&JX%dHL=F4#hBB6jL+Gqw(Kto(8#2{PLw{^MfDyo6vpD4sU2@o8r<<6E4; zPq;D`T6)WwqLTl7^2!g`tdS>Rm#Gte;#ZgG_xxonSjL>xTRt&qZ82gI`G*Dr2uvHlNp1O{w#M30}S!i&_ehGPUG)HtoU-5a3{R+{PC#w zXf_k?6O`FQB+5y4mkW-1#}t2acY!Ox5x0X4MPjBWXfge4Mh`S^Fbf( zRS-oCVl}$yCuL(yAhpVsTM>R$A<^$Kg2=bm{9G2gaEbbCd!01{`IXo2S8E|sV>|iW z1r4FZ2nE@b%%^$N4E`oh?Mdt5N~WS3rg9zp4&!F0<;gquHk{1+D5D?l>wo)~SeYg5 zdNT*~#cyothPp+0Q`Fn%QMAkX{WGodA=P|lY-z%(b|mhyH}$zmt#I;T?r_7mB{wB? z=!TNxzppQEuT}iEUVL3H@f@=6zB`kGU6?tfd4@#WL02`7dt_;ip#wyU*=P{OBgjaFZp2fbYab3vb@mhF zu>q1R+_vKBC~%+ljJ2NTgJ6RC4s?3yfUHWkRnsI-GiWvYR;XnOnAEXYrrXi0FhN1& zEy{*kD2F7~*FZhX?wB^h9uwG00mT>TIEO^Noy`YJ4XCFGzQOO`e%KQe1>LE0QN73_ zUSCCz*V!7&uZo3Pt0}>=mm$P+mnI#zk|>2^l&edv7;H4VxBFevq61w)V60*RZx`gh zfJb^;#wiz^WZ7uAY zQ85B$Wn{4K|75YeEpDVy8+B;M667UcZdO0^JwBI#(MEZX0fc#Xlq9>>f5c;S4pTw( z+1%Spi@LP4`3|J$N}w6&k0C6dHAsuG0eFOW^BKw5l+!Qba`o|bgg5R+m_c#PD^gme zn)`D5>!!^!3qY80_--^2E+VGbEL26Qd6+S6#L5CzX52b#iTP){bY(4wd?ac)-A z0ntJznG5sl3D=;J+TXt4()Fpdv4uxRh^vv8C#ZEBkmT|h&skq@93Q^F-fRgq)zOPs z$9qm(hI*^@nJTl)175#z5c&$rBYvU#ASD-fpp@)}qY33O)i-Grw14aoy#}2;!N*i) z4|i+bDX*5cb=aTrW3Up4v%woD06ZuVpWm6vwN|bEYiSE<9__osDyT&r|iJIMfOKO$PlaKyoHi80DV-6p^MMmHS9~%y!#H|7KZ> zpz1?_O@xfI?AMl9uZ*;*JdxCZ-rn|SLO>}Q9>YEDORJI;)x88CFS!r<^>@N}-PAJm zA`)3sAx*7)m3>x`$5{-{g_E9W0BERj`j92m@{+1Xb(9)5nQ48CD@MR_3lHPIP=@zq zbsi~BJ2jY>u_U#7-@ly@%P zUglbsrGOlt?iO%za6U+fxn@x=gYIqRnl8$E7>T%LIvcRt@4VQ~2&U%uQQi?+({O9%U5KR~<7oQP)_ z#CU)m;kB95jzyH{ZQDc{63&fw3&g|aw)^QFCO1!P!d(lFpZ&ChD+FrI`KqLM+`N8! zVWK$0stW*RlA;eKySQZR8zzqP{dsnak3@;oGY&WC7rrf}+wiaX#2Ra+rgRl66+Oz# z)+SK1NUN^KRZmE+r_(QHbwr<9XVIt8m=RvwN|>|GlLnfb@3OPFAURIbyEx*SF)#13 zlN6{MWo}6Ja3^Uj!n8Yv1a+7jGW`8vU2S#x3scbTv=L(R+z6qWSa|PHdU+)Ezv)AS zz&N$yZ~g4J1_4^T_aRB%ti`PTY9YFCdbrVaJl7S_TJ&Y~`so&m>vQSo@+0y4INW=^ zrp%xUg(~cnLZqJ4-xF6844Hd8ljZ1D+oUbT82DF>-4;cXqaOg%K$|9L7gP4!rB!>K ze}E?rWiWFV(P`fEn5pE;ItiBULDQ3cbtCCy!UF|I{*j6SaSI%8bzAZ;AoWp+IukO> z$n3++$%-1n9;UqI@Wotdk{ZpWOk3u_pxXg^h&?Y6(!1C&L+-qdHw>H5mC^sNZp2H7 z)l9%+MGtVwDd4`;E95f930kPDdgodPvJOWmnue83;UMhCUp0kaWGhKs%WBG^AizRE z^=&r1n*3mvh^5<`cuBV~ZNF|7WzM$w-=C(Nt0r4?2Jr$R?f~$P%s-Sv?iV>ZW^ADf z&n;`T+g}`aFOrioZOEVaUp>};A^L=rfm4tyL?qeP-aC#M6(mCIri~7@e`b@TCV?EM zzD-EkZ7#o2uoN!CEOTfpGh|Pfs;vyECc(eV9A~JzUUPhImn>ZC&AAJ2!cSUrA)tEs z=ADu@aVqgyDpj^?HpKz4du>0Eui^l;4t@F2z0&tMe1(AxpAqJuICvyp_VixK=zlJa z-k*hc*}Lg?(bpToo?B_Jfy)?}z)SsDG*VxtWU|ui+G|nx#Wn2ZkGb(hz0$|Re5S%5 zYF10?TE2NitNO(P|1E3;{V6bxGcDDAD?ZKH)|FVNz7WJf? z$JT_$imXx&Beg^9N*I~L@gGB{8u9+!->RhxG>ZM4Y98p^dWNEeeG`XLx*5kCr($&5 zS*3DLbch*@qNnWX4FN4f+OO&E4(Dn37@QQ&d7*kq|8&Qw2E|=I>q&{HaQu?s4c{Vv z)FVnrL6kF=Z4>u;LX)E?MGF=O@a1g)mAj1mCFJvCLAB)r|7&l_n>LUddq|6S_x;7E zTtv3c{39SMsI6y-4B_0mxIz=9B1Focypc;Cq;QB?3}>b{{MX7(E|KfVq||vP$sn17 z*~)&`zvY288-F4fczYFVmOR)TAp^J}ddXI{aLUO-kx3RFQTS2H5mB(X5+5MwU8H_f zK%2Yx&J;Fovzr_0uP>lSBUDlc_pT>@~FpA86gX-!+KTgn8X@&EeJ*vYC;~N>EJwQ9PQ#&`*d8pJqu5 zm2uMQzWOariOCkDnRU1q=O1mICD-K%ozxOA1`a#;p`}n zuJ5^rQaW$ax$OHfhPi2slOZLr`V_5_Hee@hD)?bN%Yumq z`Ae|slh3%7_#4i-L1ZzV<|e9XO2pX-VF9W`XMPdb2&E__F&y#nE{UQey{c`StpO3i-Sx=6eaX(*R-wXhXya0=VU4 z_DE6#9K$5!#ID^lNPaIbU z6$MM{1{{FtOw-1L2BJ&72^Oovh`ORd*`S~3fe2@U0SR#zK;rT*0+-?EETNHT&QB>z;{x{StNO|LiYJoGmUBylLP)UUItAE_A|DtTyGUYhg+xxqn2 zbM>>{w0TljFwZ)N!dgu6$}(u%)mo)DRj^CBaY7JhIga z(uX5$9%A@bon2V-!@}SDV+QGeTJGi(WbU!KD|UIsh!D!_<1ZwjW8*tn*2Eg;g8{$o z>ROV5KfEpZH`KNKG>vP_x7VWvx&)oF{=^dL2$yR6={R`sU+iM|$yKd5vU3{cFFCKo|$t-StC_v@@3ZJ9o zq%xojsvw4U9Hd@Z&DHtmX*GotaSwl`|MA*K}ztR$A`e$>S~@CBq}W zm;^pg6i=(agI(|#q=fyjx5nkpHj*Cn7A7XG)jTy;%Am|2erldQmG95-+WIG_u-*5* zTEyO*2;X^kJ~`y%Nx1#BUZPHO=|n5fS6V8i$Gl6aI5`@5;M;5B$=2d%b6{qXm(GA) zUv=FO{C_0A&aP(U-3jvk(2R2fG#b(BwJV3(=(#zT+My+}pp>Uv84QY@_Ht)$Vh~_p z+7+R)V>p|jmQMmc8dImH@DJLP*Ejvqcyc4Pk)X*Ll=#F9&UhPbJCH_C`zMg7?WByj&&YnRHa3_SE!ZAkV=nhL zkmyRWRQ#M@S$_UKIJGXF-zG|&jwb;*J$bT-BQ3RV@WJ3=R4NLt+V(Rt0`ho_5?ini z(d+o#&S*FOol5wYg|N#J!Fo`nhU(m}@J&80gr(pg5-|EcC5(@aN~kf+`K29?K5WH_(m`c!AJto1|=1 zRd=v{?)Q;I3{NAaz;_7)QU}jJza@O%EE8e9tz=aWGHPN}%i6F>xxMl&IH`mlRgKn- z6zeb2(j$d}-Ri$Ss{Bgu+AQ6VMT<87W6l#*eIrlLI*vS6%2&sd#!}(ZjamI;xG_fB z5;s5X;rk>m=hhwEr2{c^jOlW;85>e>dUtxh zx8rDew_m9HuM;ebzpU6moO<5@?;lEZ_WCs-!nhE;_Q8M!A-s1YE@F}R2lMe#h)9W4 zavqq_$I3Rv1uq6qr^CiIN0nD~c)0SbA)|~kD8Z4Yg}$6M{;bh$dq6gixbHTxF$4Fy zo_5V1*XPCho&>lceXWGa&(J=TJ+rQNsFwVhiGyhtgUTUT+cCzRbp$M9v4p$UC%?j* z+X8Yl9&26|Y&SIx&f%CDvX~@3WiX>7=BJ$F@d;(qX>{BX-x$D%pSod-wJV1yhf&ma z95rRFrX8C$%V%5v#k8Bxs#=ETm{AZeY~V}P!J)Ybx2GJ7%ByxXvv3-ZLeSYKDWUhL zJ};=7N2ijfKS!NGEZSktSc2)zFVDBzw=!fQ7|xis(BCaXG&ZnB}ZFZAhV5sj!sN z$r2E8qDJ9MZ5KG1HQly{YKP1*6_5|+xz3^G^~lX1(%`DkDFBBEWUZ+U@5Dw>1h*L1 zBaFSylxmQ#IDqbE!=@Gy<(HuJllVK$_Edc0L>$%zO7B?1)KvSjd&#yuB58N6v_YV$ zxG<}o#|@k9^aEv)06H0aAR56$la2gl8nlG0`ZbyPPa#4c87!Z#j;_k?7RvugdH~(T zg?H7N9_J537MPm>M(#HGFWl9r^V}`#XC-`p^!Amq?}TzJT^E6HINHKoL{V?iac(My zOcb!TY}q!VU`H&|pEiskV=+b1W)R0lD?i7(g1!;{^(h2vZYk=Yvs zaZ~rJLp)e<)V0}@!;sWfXeLCMJw-EGC-YYpC6Cz3peR?kx)>}O&J4qNik zOnVi?V!AjVp5wHCBZvV04+PBdZUgz=f)=^(e*602V$v$Jrd{u&HnVoZ|AY*SR_fk&96?(hV!d@xJJ)jQafzHak;j#FzH zqHyTTL_%@W{9-Mm=eGlLg(xF=1;(&bqS>?0pNbEyl|du_oqPbCr|b7FtE=rHTzg|Y zD1(c;0W3EMyYl+b0~@4WrbZ1;xUISUW;su6FXm*)!%|`gRKidVmY`hbY`oOs)GuwR z#V0FUZZR{5rfZ>cW+?jj;*pZtw&%XuXfCl#I7jfh>+@9NW!QZsTr5&wjw1P>FC)nw zllq3y+JKgr>}m9^#o55p#v4@bU&D=+NsDEv5|It!kQPxGb_ULb-MlI^+b>bN_qT!O zCBvOR`CqXpW8~m+4rNM3?~}77$0t)Kj+v#^>@J#SH=pb5Ljf1X-|Y`LiPW=1449;{ zqb=ee_FOL`o*oslZ%};D;^$|s0Wl6$)XHm|qeYzm@nQhd!bcXkKeCX!_fZdUP|eq% zFhJtBFA1o{#n;8BgvX!$h1cl7VEk}uxj^7r3c?WgEy>`0YJ^Ei6Jp&xXqKR~Wb$A! zR2=}i1Oq3QD<;}CQc6g4%}{Xl#_Lqj?JmY4JGn9rUr&xa9`MFU(diJRlVK5$ADD zG}>19ER$-m#N%~I50h*booGe|o#x?&iowHrxKp#=#D=+9KQG<51v1B`p#Eiy{Xdqz z!J*Rc`#RgM$+nxxwr$&Pa@{c5wkF$dZnm3vGbc|q8Tak;eSd$#dG>zx*?aA^*2&}7 zX4KfP?bC2cc8ACpx`b@|g+W(7yQqNojN+?f(+X7>;jA!G%LGf!nfgDR0O##f^qBwN z6MWM3Dl&?18^Ja&?CO+Z zelFguoGg+EG!}a9f4#?UUirW2z`zXLfiCjCJ8{%;!v{L4huCZh2K~B8Y{{&&L1-_& zXZ?y@g?N$XvU4pG=TFI1V+ub0j{4h=al;lRxC%om2WPRu8JjZ^w>2sa!qG1IHFMo@ zy$s=Q-bAX6E~t&nbNtck60Rx2#U~@rIeGM}9Sez^!F4*8nscIt38B;yq){;mK7uhu zj#qhReN|{^q!t42QX{F!@Jaqm-m036CNAwYd))t3g@I2}gh}1|&d2jptS01z$AirS zm}7nc4=oQ3X92O<(0uD*PgmWosF<&dR^oVB{kLW{_b`=Y;?a}pDDp0QkKR(Qa(e-3 zgkAs>lw?nuza$6S5eBrp%3^&c5#^?CxtM;1izRjY(%A;6#%798OPlf!&sJM4CSCYn zwQPu+R;EB*Wdc@$D;Ti z9Xh_lveS8>dVM(>zLE;nT}#2hMRQDP&}o{r$)Ll}p*}Pc7QXc1s*1@9!GZ@tUy)1T z;U|&#^N?-tApAp(*89j?_5kn(Rm`e+fctPA|&aj-{?mOtGj!!%0 zBL66P$3KY`Q9-25v|`6$UtcKTAB{-@MxpD-0`!!b5nqQ141;+D4|}>~VUzCr9(W|L z4MJ>E-7rm;izB=kaJAv`-o z>BBEE3X>mdMG%MguaVs%@8n_e^rghYEHeYiZ>wljlM@)%+rzbf#Z6Ni3m`5fz0)e> zbVG^%Q$k_Jv?45CY$9&r&pb=ycI5y29B@P1u*cr$<3U_5J$L>)gr}W{k6WVZ*)R_7 z$dkVO-Zf690{xcWN(rt zTzNB!}20qeiIyW^1B`Qe=E$6u@5tqps2Y8V?u~0ztz9q z^eRNXjB(_|GE5}Lr1L4^dPLUj%;)H7^VQ7dXyxGtb{OM*szgG+7r41)yDj!`w8Zfi zV%jBLl%;N&R{?Vo*!O#i8Aga(9K1(K@_3^Fb(EjXnH~%|LJujVP7K~|AO6tze)CDc ztV7cj_al>yeZBtGrDyo)ltpASxY`TexMlm8*n?zX`TID=qO=uOM z?Sx6B@!*F=jG`g>2gpETd7(iopTJ6=CxF&~J(*FB-C2$@rl0>G_+baeSlGR61cSgLtB+8ZjGkl|bW)eet|x zOWD|@?u>t@CrTOYx&tmu!YeIiiu;GM>`&9|o{TP&QMZ6a!s%l8*xC>))4eCpUtu4| zvJ|glUGp;opd^33?ZsTiZ}u5OZa>=d!z}v6Ky0{r4Q?+jfiP)QSKKj6?R`|5Hc4NT ze>yLufr$Y1r8|YHBCD>_miD$j3@a(KbS+Z5jWKhZ!FH|GwSCHh}38`~$4f zYu=)B>IsewR=J7<$32{6nDCvlM!~Xt*$qX9t(ep=Cgrx2_iSObXv-R!_Ylkn;Wn)j z$jL0aC=u3{&%4|H12HnE#~0O%VZrDFGn|#6>42%nkv@)Zw>_=!*XNJqGNXL@(8UK) zJNX>S-F5z+dcZv3pl)P!uGq%{}-pfZrvZEhAb59F8nDRB) zMxvh&tD;prtv{WRq$|4*gnX1E)4EB)KkCJTbs{&ROlrTtfhSrvq{a(RtK|CWKfWDQ z-EjPyKVr|e7(f31nAGaYHvcR5;`#pZ25H8)Y{}+R;CcA``HL{m4(oZ;FXX77OrtNmn|p|jvzMvx$z}&NPW-6DvchYQqh!V!`3dHtYx6tUsrasCo{)Ju0VZOWw zVId?ZB6sWf@kS!vuJZ8e*U&aVr-|eT9Z4ExyiXo@?ow=-5Ejnc5f6^2F80gRixeBv<3>6c_T+tT>iuTbGG&{(y-0Rb3L85(`5d5oj^1qB4`q)3*1)aAZTl+zl&3R#?bvc=H7Hb&!t+fZmKQjR+ z%bEWN3T!olkpp_$gUO@DoP%Dff^QEcz$SZr%w|7EnNg=p-iqZjXri4c@Ah2PdD)jz z##VfZX(5TICvQwfNfdzvr-ski9BlRdBd%p3WNlZDS zafWvsmM0KXg;54q3&L}!;9bOf+kqf=wE3G;-GtAzQd+B?G`@1uh99ic-Ou`0u|AVJ zsIT_?x)?ovx}SHhv+V8UCid@@=C;FuKi|HLO6~9x`i;LF8mT`GnJn>z>R57}`@fxV zVe4)ynDUCG5nQ3dnn(&4&6)_YdhF5y}64osj zH+-+0#OBMSqI+qV>|wn{DI?*A-B5Zlvg(R2%b^H@IqOGXv0Xy7Hjizm)mXZp=OMH0 zu3I-}MJ-(*rjbBYg!^-IRW!oLr5IVP*U09UWr=*YYcZQaQP(DV$j4gB%5To9#mX<( z2A#I*0LcO???+_hz>JnZh(tO+steTpkAU_+;-TJaa8RGHK5XM>=)U)DHwOm{J_jW3 zGgq)4q2-)C1|-xEYA`6NXRt2e;1zj_-&8WnR`O8iYWC7dre$rsZ;k zwt$C>LIe(GGX|(qFI{^7}KK1iQK;O9ObAyw6vGaEcy-@JkNpPOD7Ge|bgT(N?qX}c1o0)C{<$enX z&x)HrVSX`L07}Z2t9CZ6hJC*R+slsxBlJ??Tlr|=kT2r6LsJpGL9&gZH(Q$1%7Z1u zo`N0MOg9<^`}19aUD?Cea8h@+W&=d$y`d}vOgq(VxJ)EVK5&jf3r=iT-7f%TT1Q-= zh37^FH>Cw&ks@GTFa0e%<1EP!GX{9b7O3%^o|`n^qs}zmn^pgqU;4nNoH?8Lge@O6 zU!IRJUk1hCoQgm1d}DK%bA<)c`R?ixn%>4PaAHgHW8OcWbd_27A7M%{jFqRGuaM`b z>gvCr&%{08-xuFB=8>C{ zMK3WeVYPmL@=i;h-=lOgb6T~~#s9UYIo|@O8)k$s9XT*$^U>U~wTjCay`KsDk2{i$ zljg=iq6CiSX{z(gGmFhS%HMv5GE8x;uAoeHTxJcrvY%0w@i8x{Xf|BkWu2ai`>u{- z$X2RwI!A2DjvhrE5j2IeOiu1;a^F3FzI-zp?+;s~`6pVNO8%7h7LFobKGa^$d>TI3 zRP976L$WBLcPXMmP^scY%Zo?yVoI7PDdB1U(C2js-+)F_V35(&uS64IAA z0biXVs0S^Fp!h>D5BpCUr&oY2l5^s1-8-Li1@n}Vn98XfU--{9z7@F(Pu-J8LoVyg z)Q8BiQ_k#GNAGL6w~Gf5+os9e+t&e`#~qjHfR{!iVwJa%m+MtCk=bqMvu(AVu|HYe zd}D!*y?oc0=!tu?ju^DVI_~&2-rb@_qR+st+u9 zNR&tp{P6%hYyw%E663Dl`^(&EPkZX=eDTmX7?Wv-MEh~SZc`Wt|LH)a)0SgVGL#I} zM4minthRD3B>K2}!IwxMfh377Vyle99d*Ad7Kjy>x{g?gMoq$h|gS#&D z1R4KZXw+%ekeUx^&sky(Z3ZjmKpSIN`gdA!?2%d3D6O^$h|?=2(Jv5HBi>~bUF19} z$dee{S)O)(NeAAD@@m@E5=B*uXqXWH2tfR7#&pGOof;$(SHezW!D+7Siy;<=QoZ3G zYGWQE4aH^3q_QFsfDwolrUIGIhX%l7ZTlqhP{Pi)PXeBE(Lb@@E={j26x*UJb_xn*>(r-ci)?9(+=?8b(2~LvbPyf z@TUlJ02RkDXz5cf5_Oqp}%f&Nd{s(E0{3c#-R_v|Z<<2k;C zdjST%k>n(|6;vM_5^~t6E5dI7)YJP>ddZEyDyCmiFAL#D@$4U=>6jRI;J03?ZplJY zMvjNNYJ&(D;EM<9i;Vy%*TtLt@4tgD1W&o2sA2lUP7Mrij9nxUM@+LB1GM5$OydOTF~n`_H4~@b=$OVbUM+R%J%UCQ5{6_ojDWNJxz51u6PacPzf* zH2riebR=hpbVz+afUrKGtrIz&Rh$+>PQoFii!CQs{Hs2?ox(>3VhT96?VXf3p+Vjp z{fZ5CCtO)zgYWyjoo8Ja%7Isw&^4f*>HBT4q23n~@!at%b@JrHYL{I1$oT|Xh2@z^ zQSDKS3=5?&BR@azefB|1VUE!2s*N4k(Zs1I0QqBY2U7U$uocWU^?~{ec|JZJt^g2L zOR7$@t@Rt;>EMNR_Oc+CliI1{B;gm1?IT`)>Zc=s5f#xH4W3kXe9`?vFGB`%1WXSO zeOQ2@?%?rty{V(sNiX`$d!5o{H@W3Aqb*&kjYM|0=L`C#BmKeood$N5e2LR=DGmCu({}g z!Jcs7mcaYV^00@g;I>oh0&wo91h4d+ZVHjsFl#*Pg4M+DXe-^uFs`d1?h8)>oLjuu zMB+H}iL>D6PBaMU_izDE-~`j{x##}ejx566xFh)CQR#r-!9D3g|67VmkH+=MNGWxw#?xj7<{ffihfFWC;% zk;XP`R}Qy_6W4L4>?dP3b0%+O9Wuh*!N)-!NTGAYnLKErCff?I8kVMgzr))jH3xV} z*X`MG{~EQUNy}9cv`9KJWNoDU?JIE<9dy)bMq0D45-?U<7`A;|Ax^4%T!vC`X63Q zV1gm~N`KP$)IlNe{SEwU+1OV6RWoYbyrUw1TtS{0El8~8yc%nto*yQ;-c*JWVDq?Z z^JA0OjV!c%Fk1@fy{LhRMR>LXZv}w6BNwD4*o96WY3astmt1tDNzLC|=r4g1|GPO`m2nchiZ4@Fh?=z55IOM2i}q73F~-g{9v0m$xz>^bNm4;PdOiiP$ZndKqfr^a;{W**>|Z-h*ZOA98;Y$@#tE?zg^^#sIVJ;_d~CWZ?Px?v;1S+2l1cc=r7$v@!I{<-jF!c zbfM^q_Ve9%<>arOMzB6kxA*yuiyJq-qU4S;kf#hJnLwjaeB052vLtp^8p|RR_PsT_ zT!QG2&%4%wP=ccffwADsMTif1I`cA(&;EsLCLqlM9(51Oq{_0AF$)OPz<%irVHM=& zy2(o|>Cfa3CTFEmao?J_^V83mv_wa46T#Nrqi{?;L50wmC|i&{c;==Z`mJnmPM40Vm?RN2 z`T*Z>{*gm>U6)gOmpohQ4gEdiMB0AfDtjrg0sIUcS)Y9{ZuN&f#|Ou6dA+uR$1Z`E zlzMM3t4N~h*JTx3Gf{ErsJgK4Ie*)1v=SIq;?BC}M=e!fBOK$!+9!_u+OE%aoeoWe zf^ULF+aZwj+;;M0=jj(%TwDI3=K6y+RVMnpYI_Cn`hA^d*j0@VcR0F{Fd0irtdtzO z3V{&D#_+J>8~yIc=3qG7IGLjM?`##bJDU_yjSv1XO22;vUg5GB=5Z&@aiifqoIlp{ z>3NxUg_8UI6_h=dydo0 z?b4NQC>NDvIk?QrJ=@ans+&6s@;M9Y22a1tJrsNej|K-QK!P9a!0-==VL|hEqLib5 zC*q(^TWT1K1a$>9J~~DwN;1hf#tu9v$B5aktQyt)`tB4U{&@(&C*eYDfxlseX23%4 z8i(e}A3^vwl{Oqvr3n*yV)ov8(QKCx!}x&EWDjktV&6==y!Q`^MnW6@GV86Q<*0XJ z>?WV`j!~UWO-<^~UzUw4e1()n2o618ql>*v6tzz~;gqepOx|UJpXZ)e;r9z^ zsmviCKNT-_Y-Cb6t@fzHiOxa9D%-A(Gc=`-51yeastsZ0M>Io<$t-M17R>wfnp9CN?L?>yz2yX4SCI0wDSgfwp`3)N zCN3tO+stuh2E`QDDA=^D)EuK&5-JSKH5tH_X(>HxY8n!?!!ZpO+;G+0_v#%;a8-6I^`#{Zr zzUXow?EkR;dXWjS>o@Y)S@djZm4^eck=t=#6Yg{x(1FF!tHe4X498oXd=KU%flRAZ zgtBnCgM*Z`?sroQ&$p_9K{WO_`lXZ#TMYng*JD3H^Uvt_oQA0p0tE4V zuM5k8P)8f-ubI%q5u)ClSIA8dgjDoYBC^yht=XLjsf9V(oHT(f@MM>nIqX09O;(OO zIrN?eylJS-|4iG}@6eDz;2t~^uGiI!Al;7mz6He>N;tidxW6}lWNE=OP1J=J$IgTP z6OCAd+2Ibj6xtMM^{HEZ7nE=g%vRK=5W7JTe^)N4XrjV@iytaNGi0ciQ7hBTPlKf4 za>bU3ehAmVJzrS58heyM8V_uSvmz-!IIpNENVoP5lJlv#OBDWsm$~i1@)?g5X}td0 z50idV$t13qfYFisp;@p|-lS#pN3x7Sva625ZOL65lCp(FR{dp&faqySUiF|aEF1n( znnMf|Qu8XdvU|NwYzF?^2 zKwP~V(5#OH07C9zpK!8hpTn-vR~tn}&dU(#pBhKH`(zm43q)gu3UEejldDNdTpuv! zau9##k`C+7X0iH93a?b=Vyd~jBV{Ton`hLJw~PrEb%&wF-+EAVc0IJjZhlVYCmEM5 zEOwZRhNlDig$Je>i1)%qpEM=8C6TpWRwg9bEMxt9rQeV+g9n1@K^$|~1R;7TY&t5Y zlcu6NL!L(>UfE03|<&s*Gkc4w9*B+la~vj$-Q(GnQ%#17n&UzZd3 zva{p3kADq($A5p7oF?5guXlV)Hskr|as-nmI6yl}-ima8TwkY~%mSGW{1x@K=0Ehk21t`o(pGEOw$W=H zam(Gd=F>Xkafe*W81B08wFF^Qxk4$`^d0CuluY%!=#7Y8_2dSKT2`FVOROU>=WZfV zdt*2NE*0-{zZYRm2XX4vpauWdl;hXrE8C{}WZN>ZB!O%$Pw*0{1>A+tCFNhxu(o77wf<#P%tm(6Y6mJ4j%2F`@rvQ zcu4fD7E-orxUcQnzB6KOzFotAQ9#tl0Bw$z&T|dSgoUqgEy(Y$u^pjw0`g;|7@;%6 zPTT6(*BlMt6X@1vAq~xURXj!4fdrC%Fyo}*Hs$tiL8UO)ELaUcY86e?4yH>yzH{n1 z=rt^|%$vesYjK8@6cWwFU74fW4bMfKxAeVpy`9YBhs;}zO5+v=nD@Z)vQ_;-O!1)LaNu^ z8JsKsii1zC5Po5M3s?m^+W7YxwTpO@;5I*we|VKg>N}NPq5p2XeSV4gdL1Z;-H+K3 zGlUn3pnsv(O%Tkh-Y|`Gou%~`!Gz~mgi;A76NIb(llS4mM0f(@TW!%&l3E%QWBfn; z3)o<4RbQCr_HSnJclOdGN2wAohRN6!g3{q)vr?)W8ocQCF=J3Xe5;!;rgmi8uC*Ff z6Sb+rP;l94xJhlsc8dD^B`CB+j^cU|S%){vBnoNDH2lWre)UY0#80qC;(Cb zwc|FvbJRW#eY7=qB{0)h7Bd+FSIG$FMa6-Wow^M5OktjZfn}(K4iw91Y5rVa$j9U~FuAhI{;@8ZLpehZ;mNW!qTO~q zQ-clTHD#1pP(3f@Dy2l$WjHWvIOl1XH?KKvWL;|iIvLgLV;?mUSi$x6`9$=HK!05Y z9@|pLPCWO4`MvPcv9RGYL4Ulj`M^T;(*>Pbw`M~ci*sQ@T*l5)v{Sazir=fAx z=5_<1tmd5BED%Jp#qujlqZS>uVgruGd8OFYufkaTc*3wnOf_T5x$EEkvxvAUj7_as zp?=Glh#5z1-%$^^^myZ{lg?KhaOB51CzJ-McagmbD1bl1c;fij0rfe_-%Ry5fbU&t z_=eEG1y_f6dQ)C`Z24Nl2Hda-X3-j)t7|$A+(7y4c8+d$SQyQAJYNC&wAY%TCEKI~ z3+rH>KR|4sf}hK&%SRP+4E8nMm`}@!3W};HIk8&uKZBdjZg)e>Jts=3ShA#|dSFfm zbWO&&Cc`>0_l$5(2xYSpc!R}at6+!KMrQ(wFJsFW&y0~5!|V?z@ECurUP>Go_za<5 z#5`{2aR$1_s|bW%*nHrjNG99cd)(uij0MbxlXL_099+pP2%%7UYls6OG^W^wrr)#B z-W=z-{XH{qhQ(Z2Dx2Ko4*K}##X$C8(Lf2-5#`TFigaenF&V!@P=NzOzbE;qWPIe?hZP@dr&uI?~sA|JoX^k_vAQ`k_F|ID2vZ`YQ0yL$bwc?fQA z32gc#?r*X6Y~hAt#?p+=3%nk4&D2`*G*lnx=73?eB)jIIfv z*20CG^LU283wHuy>jgvnpsJn>o&W4o+&R0Y8|FCUHnep{Sg-P^Cs=rB(ec+PH4>65NiV)Dq|>Zi>l8qxLj zHbCO23s?LXMSp@8EnQ`50{s{^Zd|7yAMpIMG`+TM96bXE1RTK4GS^}@fDoRwbPB|l zO|m*I&d@@y$v)fZLgL~Pk*wAGW+8epHdhwE|CX}hu8GlDL`NR* zov~R^h~m|iNs?`F|8`4`(r4iwNzecz0+wqBD)ztB_c{&fLPkKbT)GH^GdEXS*z4*{ zPY0ZL(~{~4?PDt^zqkV;q5M8{{ulK3?#m#&-4T;M|A)jl8Wzw;q_^8MZm;Z0Ov3>1&AHdQCL}UILW!)$kn5rfslE4I=WY zk6O>;Y^^;;;D@qbF!aNxX;Gxov0+{w-`Tk76$uwi?rBvKMsH8^G9jI`a2rE0jz%;R z;56|HmSd1^aqJbXZu%f`OzNShB-)|^h)|B@mhN+Q+-3@r+u*yNEi>MoiixnzaR2Og zSm07JZX-ZF-6uxyi)y?VM=dLA(Q1YuY3v{QvBqHYP0AUsZ~ryK9^Tkq9Zaldud+z9 zqbJ0guT9XKWuj?c3}XcN>|>=HBj6`FRW8P!NxwIqoP7KE9CsRiZh`HOd#u4A(^Y29 zOgirPZ0DSRz>krxJb}~*TOFepS7mjjnMUklRN2V1-6H<`qMBVZ=#UD0Upt^PX=xhf= zzcOS+JGXPnY7wMxz?m?x=wWq-V-2i#kDfiL?LXiY46Cd%M)+zF)pSYORg*93lJDy} zNEI6tTSs2(q(u;PwbsjGCLp(kXU7Fn(L;pNS9rBL9rF0;;bX1tETAx47+I!`vW!H8 z3^x#q!Mc?RgF9oG>MynHL`l#jRQMLN=f$# zdCyFup2#qU(48sbSaV|hAcKIWk+m-j3t;FhGMD0=QBREx@6 z4-zhdZv``)7a;yjwWR)kYN`DiVL_i2;w?(gCEZjuJ%Z#Jg|*=3K0-C&4GKE7{)crQ zRN7HFxd!_?chzh~+%4h39!hB_Es`z>VN<4>x5}UUd|x|5j$De521<8Mv^Y!blxcmL zFhrM)v6IFU8B1azX@@FF3$5l^5Kk*a>djtBxcZ*f!X<^nYIA%#xd0o>Xx(whfs z>Z)lHrz5g6eP1VSOgw{!Ki#UxaPmPz*)mNc`ps&ydQ_P_GOh@CC*kw)oX@Kt|MNwp z)@|6=xx6J0Vz~Rb@wme)K7c~#YP8rJM9wTA&Vdbo2YZa2UVc!FTBp zh*8Yu-@NxpU!P;b5;=5<4UxC|8pP&*`kZ`d^`mr?FP04VO>{K-;`^A%sf98vvPH#0 z>v5QB56n!rMr}!>C2;_gKIdO9)hSBXogfAS05Y626mF&jzMSi2-{I#o2AJjq6y6Lf zB^u|~KZ&f=ql(bz;od{BkWoh=F`4wYEDak|8gb&fNfa{VHN|gg7fs2?>w;86dRYRA zC)4gA(}YC*6TxbG8SKQBPHCPnQX0b0YIUZAClf0(PgN1pZr_bN8aRbMN3MsBjds+( z32VWl@-@Q=rmPvwNj?Wtdem$3k*+1RpQP*78 ze+V@jv`X@Gx?p&^o@e}kE|^<;G31;WdB@lti=#3~Y81x{X~#-_7K4Z$X~HRqPAlcY zr9PrUCS2!wyk?ruBzFkdu3~YLJ+7y@rfyGHx3|@>K2s5>Z!+IAIx6`o>tzaS7@Ah| z&CA%95B=Zi-Gqkpg=*5_GW-JEv;GlfD?#-?VJ>ebE3R{Y{NB+IhD``=0@EaapY==+ zn8PZhgeJH(NEL|KGC-3M)tst{?nX=X_HR3?%3ONC_Mng8f(r0wRao7+GO+)o7;O8! z;_H_jlrUaRWwc2eSU+wDFkDk$D@uTdbn+lv1=cwc<7zI6Gi3s7`z@rr6Algp0heO( zZ=vI+RJ#HektYP}i2_(C@T*aF39on%k2LdP=y*+Pj^j^sHPj{gDAbhy{Mdx&BQrxq zlS2});1LLL_N3k@snX4NrJY4E3JHG1`(^G}ebq>lO8S1U-AMlr*8?UrmJsIOQ4cu7 zf|kFud4+evg+As{qwMd;5muFMF-6^mXaQDd^rr|>>p>QfY*8N4n7BL(d344XchVJA zo|ZaVIbPbGRZ9XZHkR}q(Yy$To+B)=Q0Z?Q-tX+!^We|?UpMye(SiJ%0SdlC9{x)E z=aHbnFo-S?(_x>JBw*VlQB!hH`@($(7KzhtG7Hu=9dCZ=G06_4ODHcIkGcnc-EXq0 zI7)sKKdR~)6QjSeRJ{g2(c~7tp&z#_b-I~^9kHkH(OhQ=e5$7CCUsN!*b~O$QcdzIw5cMp zZQX{|BnY**`B6ApNd~ECBQdFd%7z5`aN;6JFXLiDgaLR|c_lLz=wUp~CVqW77KdK; zv0d29dByxT-3XIc9Rf7#lJCxBU71Zz-%Ro#c0XrSDyQ`o11B&s7aH8)JlC%LRdWgm?ell|zE7N?YFY^9bO+M)l&)NYWa>Gq-aqhTs4NXSxNG0oCq+hOj&!KnS zdtbcrx&@;BIABxT1!ITLECZ(Vp7dTpQSs}03_9vpttQ~UhqKZn zDwLy%cGfEzhc(Q+m72|#7Xn>WEDJe0|QBzEHo65D<1LUHv`aW;;py1O<7K~fVKVx#LhzuQG zbCQkl3=yT!KKkN`H6`Z)&Xr5F$hd}niZr0@&j4g%JK#LLK@{#Nl3Jb8%*?6;qK&Vu zR0!3ukmZDvkv@cTI>Ud>K;PA|x9j^wT{~DFFMs*)cx>Mdb%IsP@%`HgeGoOPedi1T zc~C$+lZK6#B;(j={DD$8t~W8Fv%LbP1f%bier~=IxACQT5_c}Apjyx3x z^`3?|;8cAQkNjJuEeJXlP72aY4NdQ3&$VH1TLsRKdz?PRiqsiR#TC{`_x{D@d^kDolzRYv{ zGFnwzWqS-umrzA*XS=^LLlnVYpv)A{g_bwR2oGTzF$rmYR^WF}&xPDGqV9e`0u>R% zwNncIe_M?8ZOfjg3YWU~^L0q=RHd-KOfVCk_T#@jmgieEgjyxWpZyNA)%1VfVK}oL zwL?$eOq?;tywPm;Gxn%04$-1q<4l=rCc_>+mcpAn&hLmXq4+=wf^_9y%P%q|qWo9G!K5{!b){zFV3 zMsr?mTpHfF*3Q3+g+##VTZ%OPCCf-91-jBxW>hi>G@s_`1pUdV^$zg0l+I8L=-Sz6Ri&tM0v~LIwsW&Eh3;f z+OzfK)yhVgLl5mhoUfWLG$4sVn$jKJ8w^=n7;zp{I}l8!C*Er8)ZV5ZyNM`9c&bv) zhYMZuPdqpIUw4-4a6ET@2eJmc?VNk{hGS>%%HQ%FNI#vSB>WnDG*hQoZ9AK`e>@w4 zHat?xoVt&5QtLWwulEHB6ZS5dC|orEy-dHHZ0Wj2zd0xkcmM8-stWV1D?b0@#cx}Z zZ}UzUdpE6fmgS*~!k{Aj>!4alXKhp?E4AfG=@ogzS-JN)n%VeE%z$6&+Q7X#eP2>CQ2LEO z`~VQ%>n0+Vtne;r8o6gG$Y<0xdcgE9sho#j)e(tcq?|_)rAs?gbCs}5k7jLxU+m1 zEPzYW;Zn0))*KG2H(lj$lX0uP`jI}{m$iaqr!W9Yd!IOw{}mz>Keilt4Ky zo{leh^rNAvSgG}Q>XR20F+gZ!8Gl4jOgWWS6!uyWLchoF^91;G3>Toky(wvsSVnWX z^Ob&8(f^OBlS|F}V-nE%tL_f>nhv&~s`5@pkYD^c4DlByzs}jEu<~Hzp;pN`$eJu% z(r*@G#%Nu9CnjUP7+wzQ-d@kpvP|8j@R__l+OTr@sH*Kk9(?rCSp~Gf4rE}H^21gb zG%l^$^0c`_Jb@_rxEf|!EOw!lJ>2deg@1>7i>^Oa)fy?J@W+Q?A(?6P8k%iY>sp@1 zTM#JvORR1*bj627w+Dv&E(SAc4UJy6VPv0WD|bgiz^53RZaCyJb~f6uX0_BcAnIUU1> zav$3=-}4n!iR$mq+;GfFQm5a%m8DCb?d8lT!TgC zT&K2BUbe%Wi>B?HB-%ViZ?+V+k9qYfR)_HF4h+=$y?i(Ih2ZWsNrqY1?k9CKw%9Uy=5HUoYF@CGlx-Yav$h(QMY{CD(3OvINy{-LP$V!ej%a@7=mDrA} zRG|7RkLs(<#x_!{%?#15DRI1C5UfKi8%?d{f}fQB=&Wfzgu_A0NE}KpAv%klsJ02G zoJoJ&oPm{RGP`lk?>~o_Qjn;JuBdThaauV@N}NJ>el=gxH6z&T5ry3mqpBrqHp~Vp zlYVc1MLx3TNBQ&`=!qp?Yxcusr*!!UiJ7cUJ>VbY7rz`iMr);Ehmbd&xC@1%xgGy& zgy*37jocOBfx<|tYTO5eIpR|d0d$q~LL7qn;1pNXuOO0;iSDHdpKuGFu`1d|R$8zx z!(uutGt0U_Y?(U&fXmM#J2uqxwLOSn7afhwERXr7-%vpg$yPK%e*wkK+E))#y1e^X zv(z-=mKHy287c$`{;HuJ&?q9*o;+Iary(z1H-*yk0sV|=G&k4mB{su${cwdL5B0<8t8ZxY@ zJl00e2H}+PHnoH={xn>I{h6Yol8x(KAGIW8lF?N;K((?X`Ox%Z$c8tc_;7tz*)xySL*=X2%NyJ}Z&t%3jOkZKgVfx7cO5N9OhoopO=DP2k#$sELy*)|x zb@5APRMDNZ3tR_%Vq%yB(gIZeNUQObLQx3SsE`~0t{veM3zCL&sB`RV=i)EKJ?(=; zVr;U0Q!YOKBjhn%(1fFH>s&11vKV!l+lX`4fnPLPm%Qu5HaXC@ zI&x|D?FWNuF){(c=;!t^R7@JrN4eh?R(W?zj@u|kkzxwnjvcSLn|iM1HS&KKF&t=S z^fT2>0-t0KSkrs!zu=`SC1jS}@vPoH)WX4Yprl&P=IZ zJMWr~b=Vjaz_hxki(FiH`J+-bse;>GB}_Jm)eA6UUjwHnk~UQSjq>wB>d&x$arFM; zuW(uDN|mZvS;z{urGWP*_T(ZXcKr~4roQZ_KAE&O4fP>hB%QbhQs zg`$fDCAVbF|DO-}_Cs>DQE2MFjX zawHAd*?;^Z%2CT7;DX|)ZA(d(v8vJUoBb;4KgF;qhjGF4eehBS+0Os*Kv#pR%1^Y4 zz{)`!dBu^_V{|1 zrYxgp_I1H06(F@@x*2)Yc{}1~YpCpX4yaR1&#q}^H>`QogL2XF4MW}5nN-cwny(1Y2(X`R6rvsBlR7Z(tcmI)c3U!To$Q9@}G90u(*{k($9U=>E29t`7Oim}@WfmW* zR7xKb7LBm^i^o2I<7|Dt9~CaC+*>+Z&&l)h(W4)H%#sIZW9d$S^s;W!Vl4+ksRSde zcNzxKhCm(A$dqloF6yZYDBFNWhv>~EqE4Mk5NV8}W2mZyx{chhjyDNHiKKEwEMLT=r)AdgqYucvnGq?4VPDAT3^=J%1c6n*@gbFB zL7K={W15S1rH2lV-)*eFcQ-7kpl|PhakqocxVLeww80JNSp#Dg_Q$1?HHC`Fk<&uN zNiCxYsxfMk+q4I04hoAX!!*UmF`GPCu^Sj>6YBkE2J{~+m`~BJfes!<_?WQO4Qx^~d=qOt1HkZGOZ92PPWCT*-& zh$aIRp6;6YuLMIonyeGRQizjw8^IC8DVf-bmHNav1~#^}gAGn)GeGsTwo7D1*z>Dj z$M?Y>&fR*<2O5oe!k`%V@;U zcBxR!W3I&=s%r|++OEw(_zwRjiXe7TP%Uqhf7U&|gf4yOOyM?Xf%zYZx&IaHpMRP9 zquRH=&d7S9ZmZTQL1@-Xc)Rv7r;h9~m>3zAS~^s{TI&zRPJgWwz!E^5*7P3kOPdE` z;*CCjOz1%<1lEYy(=^K_F1h#NL@>Io6{3OSOe-|&PBgUNMpYHJ?4*)_|DF(?__rNq zOiMnyc)EaJdCAMH0LL)2kIVE$)_h6zLBp{*JAO-#9G;}Ifq@_B8+TpoDQe6DC#F4# z)fJWq$4h?hl6Krgz4x1SRqZ6@r7K2 zT6qw2lTsJ~VHKD`-c|*=GR_>2I@4+*?xZA`I~!wLW3q{mn8YoctESt^Rd1jV5jl^l za3mPc1$Av0Kr;A8iW6re78b>6_A+ls0n=%np%S{G?6tVK7XO#jQ0o zmfJ21>x0;1gp!_fX^}+cku6UILF){FM9_r^DCs!*tysOI1N!}TZ%cOzzT!Fbe>P`S z)Yr&$8YpkHzIVv=+hhFZ6?S^H+Q;U4t}|u%9X%OL*)P~`X|P`{Q>M@Mh{&LUA9(WB zH?1|xEbASENK=b@Qk*ny#taDMk91Ty4)l{(fN*yG+`Y#auHxF%?BGr^Gn>s7^JJ}2 zji-=RYfyzd%2P~b4xwa1PYbLlVxOlu5W47UAF+i035m%aZaz^pSNnzBGxn@HhfLv` zS7Q#q-3@C`{GEbC_llv=_|IhAm*)?Xh zkq8`H)Ae@yvdMe=fp4@xcjL%j3%IT40F+Si;gd&geXlPM;g@nWXaSA~un2w#TTc0p=ndI$zjd@8iT#a%^Ti&GV=lxXJnXy&W- zHa9lM;X%U(tIH}UHXToG`c#+s*ORv}t6593srDkJKkR=6czta%$94E;iAM3ewtTMd zWiu91_|;vCWckPA74P~AMD-5{0k8NP6QrQXQRCSc9gSnT`=i4W%Lk}(^<1%3j`&#^T9Nw@NRU{?8S}H)2thv}!i&p>MRizBsiZGT>%LS)X>nt* z%i+t8w*cKI0)Lx)TtG=Z3z0%Gl!kFc^kwF^&Hd z0Vs=Q^|Zfw0KC9(&onAA9ZjN1B|>=j6g%lciA$Wo6a|fArUMK5LVR zZY*1}?yqrLyeTe<^o0IU=Dd0_<5bjrT{!6|MOXF^xAbx*^z~`M`KSfrknK0YuBRyk zPq>o0XCx6eGZGT`qsT2Ny$#hR`&AYVFZti8+yyb`4LUQV07MAR;SG#2UZ9$$>aDO1 zxF`0!QBbEBrD&Q{(S)%R2yt-UCtpi&WO5^QNL)06oDt&6k2j`D=eRqmqYSqshK%=w zi^cx9|J>H^pHsim2miFwd?`!qqr6&3unVOE`s+r5!X|C6-Z#dSsi14$?RFLX-Fr^D zxyNb*00xLSWH^{pT z+2=|`#z6cE%4coEsd^m(cwVMzfiZ(pG--0ULeqL_i_fKzi9kT~-VrOJ&Y!|iFy+(G z(YTH53J%1%Enu=zCQ`17yunYO-Q3|lPJ(|l=_+sVY2W$d+ggCl>-=NDq%#wkYk^RDC2QL zHkuWzkOt@S>zB`}Vz5~CiB@r^=>?#hTj&=C8u{#an`vO{^aRI3ohilqG9VJ+doQq_ zF}?fJ_i`qD%ZDW-;>!jh4k`sY+)pVYBM`Zl5bSu$D!BX6PyaJ;eJlLquGVAriw9hH z`l;tv+F?fmHd@P1XKZd_^Z905yn%>jYjRzUC{M=7*650K8J*IUq#lE#cL>p6I589V z9PPR$^b`U}GIjq>5AAb~optJAhtotYMY-dH+gG&b3=Obr>ZN!my_A(1=H4Q8SBTCa zKwl9(8C-oX&kD8m!D9#PzWhBuTX8QIUm$G>?m+j`HGe5(y= z0;EHuYCx2yc3@+V6+G1O)KkuO;~H=m+SObL`0!MN{AZ!f#$G@0Ca)E^X>U(Gq?g9- zS(s5;VBqHyEr4%PFDsqw9x2;!QCSI2zz#Ez*&-LJgDpCclnWjhI|gJeuWM;Dxf?-x zQq@<~cSdDWc?G@YOV7%iyq9@NcVensWWBx2fm^|xr%GGzkVrI-FP{8C*oayVxCx^B z3W`m=*v(4};vk|C8%!nF8UB<(vbmml+pEr!3j|x&|JHM?ELsMiY;Fm&Vt2zNBhqOx z%pl=Btg?xf1yAi4Nbx-|=7Vc|Gi+lDh#nG?E~28<%+}uPNN}m3>7TiOx_{f-`CdA6 zZ=2n*_W?c=UAKIm^z3c5McceiJ`QFUx^Lm1UTc)*)(X<@aalARU-^y;oRn*-s zne`HyunjrFvkrtg50w9VigNT`?n z&oua2Lk0G%l<>W-_GPmyov>!gJ5FjNNl=kBG>I@q# zQndlX=4;*gi_Ve6+37LI_t&^m3J+f4xC;UqBhJP)=ItOGDJ-?fsCrApzQvTa%_h9; z?yzh&i5G;>}Xk@e|p^>R}F8!6B4*6X6hkt1(!ahz< ziSC@Ntg`xPU@=QwkL065B%$s>w~#)0c7yVv>LeY8mWeaOmp-_fI^Qn_F|ZSMK9jCM zInWU8zo}vqx>F`yoYF(|M^Bf{ft@$ohX?s+hLhaRsu|!cU=Ns;D1=YP1ugTi^LpgM zkDiZ*+jaf7K&*l0YGX`O89xpL9zXd zxAyuK{Mc-mp+8;ovP7L^hLLGO9sh&G0Js0!=XZOWRWniGO}aw?CeV zlsT!}eW%SafnU3c@w{&g_mKE&nPy=boDqfjTlZ zIAyJJx)nqkSFxwufuP7s1J`W#4`Qy%rIORNZ3qhIDk+NPCC0FpY5H_(#K#-R<&hq6 zMQY3uBF0~bsbraxY~qe+mAsL-DS8-fgr>mm^67Y(1f)l#&S9++>vy+gvrtjrGKm$(SqL9th#L2Rlod_uOeeJs(+-| z%FBvhHw#uS{X-XpeG#PGKp^BKOUR#Fu{&0`YLgnb!hiQBtiB-gxSw)RCzh(gNG1@5 z=aN6FsG$~mlK7};Fu%R2=S($43W}k>U>dxRu(Ir25^YR#ba;B6Bt*Yc8^=Ta>%?le zPJf>&))=b&%>Y@cH&Wi8k6x$Ux1;=!Z{?4g;WHQ5*OTT7|9^8n>2BbBfy0MEz|Lhr z=d>(&?;91&Z81(#AVpeT(U|Gd=46Mb#A&vWeVc8fw9pz2wkg4I48dUh<|iols+yXp9KtFD->0&3vtKhbGoVjpuM z9Ux^NLa!xe;>pJmG~94i)j5TA=v8mfnfjdUA-|(Nq4gpH==8zy_j&ruz+$M4VlNwy z#bee*7sr~IX5sCm2^3?CcZM7hhh{Lue}nIX5UbgFv-0*huQw1qY8GP2i#pkY5-xYx zss$7GVtYDOA{Z-Ho`;uv{byX7PQ05QyxP$5HR!u$I^D<0Au_wx;2OPotK_^N&KSZk zCsq~_1)smeJmTYhQ`{@mr<(-9?Dj%SIFOxVG9~_o?#8V#iCLZdm{sjqpOi%%QfC9I z;y$fzk|0S<2=o~h=EYDNWY@6^ElUuC=dJRIt3Tw#dM1ce)jRR}Yu|>~X*+ELMzc)I z^x<>W{pR-Zhf+mSqzX;v)`*E3-t|L$e!U7N?2`2pLGibPeP?#)^-mu*!_EGCpg=3o z_~(InFGIt}F&M_{Q=pb~inX=s?lY4C3zPAor5>~j0<-@S(7Bq^hRB87<=P6X&uV#-YLz;YS3=*CNo7j! zNf_!hOUib^jch7`h58#e!}*kNJf5vb&)SK$Tpi8XdZBsJT4#lI5?_1{6t_7y)q0om z1XHs>pTqc)MZxR{9T90YQV^wgOxjxK$gU=e4LFWMFuD)KEgbn~_1J=MkbPZcwn@a| zqVnkbFG0k)zdrrtM8)rKe=@?7FP5-lgWwh!j&9{>9Dv;46tPuF9a<7~)oe59-zKV2 zpc3AnuC^Iw_6*eP9UIw5YRyW82{% zC(%jP4pIrL8=SVYZ=GVw2krdflW8t#+o}C05+T0@YJVvzqe!6wf%!=N}iw%sQw6^Nh8D}iV))B zsX?X8(x7Q3|Gdfd%hFhg3VuT(NXR7)F!@l&m#7=f>SDpD0ZgA2e zXm(yHf>Sw;SM*Nj!Xpdb?j63sa|2jkY>nRCn}e`+KA^d}UshJfzKTe44U$CARiw0b zbeswYK-(EgS!@1`pK}j_Cl~ORDBo2_N_J9XH{gm5>zn+o#gOZ|zupn&S6w=W6u$I_ zBL0^gWDweCzM?AnER1!f(LZY}BT_$@B7{PWRF09_pu2>w3J59{{hf+UEdf(H*2z7= zZ#~jnDgjAXrrar8L>xxdbyeBq-2<8o{UNKQlb4)iP=hd&Qmz3ICTk^p6hG26Cvmj0 zIeu&50zVMMm()>gMUop7i?ml0G;|=iNi>&{5FTf487WnB*D;KZj&Us0!Eex!x4I>! zfvF(FtP@`tUi2~Wru$l&ZO7s=>txs#RT-$j8j8v=c+PVCwxe8tuee%nIV0wGW6YZ` zKWxRq-bbV|ubR5Oy|eRi(gd4%;;?&W8t)qQ%B(N>B>S`hNl!O(cF6ZnCdFx#Q0=n2 z2yT+?Gv1%YBi`)^C#O0{cH>DP#~7#Wjc+{;pEht}BvY$Xwh#JOF>9!=1E%!@?XMM` zEk*-5W?S2gi%Mz;PkLd?7Ct5d7coiZ546aR@Sl@pKO|kfZ5WxzX~EcN%~BiqpHklN z(Vg>n8gemL#=>%Ec36 zUuB^a39wBMl=g42Oed)rY=AiN; zdRTK0OrZkkf(3{VU0^j+CjV~lMFP{Sf~6W!u-3Clh0P_`nq@`%7_8_B^${rZjV=zw zl4Ki*9Z2mM>rPIlM$8>dBNSB*4*j!x9oKw=Pz;>-BBdnhXI4pEP@+hBv!hC zHawJqF8nJHvp6e;tI=7Cl8ZFfW&&(7rd-*Bjx>G+bG^@Yn+ybQRnECVwvIZKTKEPI zvLsEkn?ms&(($k=+WF0E*gN}hWP;(LY;tDpijl;>LYhOzztJjrX-3Z z3D`YnA>~}leZeY<(B3x5maOv$dsJgft*zFn65sFnMB2PeSa>h)ODEJKm~2jnY7nz% zAt9j~FAP!shf1w>R#&XPJ4o9TR)7r%i zB4^`=p4IsuRR6oOI~n2QKC#eR^Xr~jF9PS2K^FDSoEqV+z*unnah+c~4uEN|AIScN zT$UW8Q~|}++M1Se$J*LVUr9}sj~#BF;Z*%^8NX(M4By4hbJ*{0R<%kB=ymg{sD3 zVFg3P2Qo6?tFJ*~;EOIr%D=m(f`bnZCG}gDz!=odF+K-j;>9`7I~4@#^qJ5ogy2(w zDSS~i1b?>nH8`B-I;n1}-azo(rQ7!j>%RfRL3se`^Yd#DHK3U5Rx}Sj zaw_Y!7-BDENQXecMB)1N8uh(%`^L8$`mqT{9ZE^DhF1Muqb6|gzW5Y*gT zVn_EHa8G1;^DS|J0VrtK^F8(F^|CY;qeY4k`6AYHXe1Gq=96m6N270jJLA@9b+AGI z+BxR$#VynWk$cJDIAqcNo!r7ar>xH0WfPsAJjzSVnrRDzbczuvk}=awbWn&x4sYbz z;>UO)`UhM()ilcNf;f7vFJmyt7G(ESN5V_O^u%HE#*+Uv?;|H)hMK(h1wECgz{V6j zqLSwLk9eT4hU&RkM?oVjzXG$lCC=sdRRRIqwE^jc$ zR|yuylDdCqCn$w#cG z!?l8;{7<~^mde3q^x=|-?4IOe7NEaovCVjq3AsfR7S9L^_Clsg* zA4%<+&SA(J0=GL&m<6r7i3wTx3QHjO!_CGFig1ux%BeFWT^{6c;rKnlQGd{`OoCVg z)-@5ELrPwul-GiAFCzVNlkLC+z}%idaG~dg-j8+v%8L^g&ehn<8S{71W8^~DkJTYeC)1(?L|zOH+x86Z^XVD(6b~mHpU$ zf=lEQo2h5I><7QgOG!(j`ok&kE(n&nc^N&Fv_do$O+g3E44G#@8q4?rvh;Eh;J;9gf4p2ksMj9`-RE)oBXhw zUnpo`t*_Xf?$M~=LqWg5|C^!WJMj45D@ufJjwnucslqDGDDfjehRyNBJhv%E1#+$@ zc7|>(CV%~Hpap5drYH^PZkV!9Q++^q#R#sIbLS5+QdM)8dcx zFKR}Dhson8e53GNF=}kpE1Gam$if{|ICzGqK$OO7Cj27>H+hAQ%yMNxzJ%@&<&%$) z$AuROTh?l_X!np|NimqkKc)-%kIZRiT%JtNO>hr&&Ftpiizo?;2m2RCFTNYq;Kv z$LkBXlG^7pSeKLMBJ6wNRue=m3mQ%k7^OfQKP!=G^FT(3W7{nLUuqsg#n3; zy?ARaU4DBfj3gXRbnxLAGjXk=6~k@asqt8gfNws@(~K0gSNN&bxJz|ELOO ziR9T3a>q>F2}5e2Q@l6=%6d3Ghl2<3;XYOhCkUA=cWWm-sx@zNZ9C zH(~+~GFX2ee=9*0eO_=}Z=lUZgD|T}JrFZ^=+XBXB|7|E`rghb(t;V~*aNqLA3%C~ zvmr^_1F%U{3<8LoISG`g!kX5{9J1IzrRbV1Wh^12XS%ByEq9S3^@T^1*TqI~E8(Te za?BPzxDiHwUx|EI0$(6$%p^D!y6&Ef;;zbIOc3TA;O!z&=17mIlw8g;& z`cB10NptFuOg!0!=34D+@bCFPBKub|noh1s4Ec85c?JQki*~kUEO~K(6AD1aRp95h zk!w&;mv1r6qK<7^*3Vi>pUzWv4kAR)z_zvA^luyOe)hjyhS{tgTY_Q|aDv;R<~%p%I6_mpOT#g(^&_LFiNZhd zo)P-3zr59~f@a3AbRd6E1m~QzToKQ(PcI@*%&}XwR)XXngqdDVNfim$PR>znU9S)z zTM4DYIRaspWlqGv${P==t;6;7_>HF1iC*ZIDXMa=+BD1 zD{0l6t?D-$_4ynwZuLlccYEAY2g``xzypZ|Srb;B%wU7JcUM=ZELxXdk@ z3EyezZ03B-9lYb3Xn>4cvfTl5dOf1n?B!-czJ(jl+&8xR!e0JJfaO$&3V@RHi*Zkb z3^6}(qfDccvdWMvlP1H$B-6mE;e|K;p$|7pmnH|hgc$?nQ;|n)&*=aNjtOr0eYL-A z_g3Y5SFL<~EoQiM0jCVNfL=^KfY$S_^WVBQ{RPN9uC)l9JcYu+SEfiIHc-FAdC;3_ z;^B!oL1+BUjcF6JaRl3N;6M&fO>ZCEcgw&@cWvX@PUzRdTzsU;QV))q=N|D9-5XLp zSSwEBTq2VY`=pdbGDav55>30sOkwjg9t*9+j(j>B6a0?Foojj240p@{_t_`+?l8duMkvEfQtH0h0PH+sEDI|L6)?D`*3=2;nny2YnDMAyD*9 zmNDs*Ws5hN*OVLBmaZqFQU-1BcAeH!vN!bmVf4)*SO!b`-m5YUzv$=$QXDcAa;K!d zdsfDZK^Y<={j&u-r6)wQF2gb|cZwLo?e@+T+r*ouD#Y39?CvPHPT+ZFJn??SkXWT6 z_^nr3-ROpd5{!wm+tumWm_x^plKtxb0Nw$Mp)!E|6kotg%z^C6R8E}n5fSJ-(QGih znSPwQ_(cRw9bT2#IQgI4r#N>*SuUd%&q4ZBK&$D+IkU!4IM#`R7_GZn<$!Fvx_fqy1c7Wb+DD=Dn@Jd7q=X76SjCI4dk|*#cSb&fI zp69CQKr`?*1q9<@u}vbP{DCkFk2hhKTgZ;(AWQ;eeE+qho2aOm+{kwO~~_*j+FnjiL>uSGymRRc+>t=$n-;d z?3~M-E^Q1EZPQ0^-9s*E#+UPw1@)rYU>;>AW(z4B(8m^)G^4=EZ$gZDCAxNCyue08 zYZ_e+9^Yw@yp%)yBJmT=X@$vT(<`a-eI!9#8*42%l}Bheh4<55C9vzeO?Ms;?)wzv z4K;LQ#*9oU#O%`beIqr3Ct}k^XTYe;rAzVGf*-|I3L#74sjq-Z7F_R$<@2;<%@*Of zq+?hrJg%6Q4NMUpW9-BxV7J~4sZnkGUg`;W{dS>4J#a^SfhJ;^N|4GWSXy;FKXf>- zhN0B4XU+Sg1T~x0#U9*SasU&eI;#|rLtO(=D$B?!+gNCN&Tj4qbI>{}6>ks^2xeug zo{$(x)0`a7(umcdj#VF(WHJ6bzhJzA&y$q~+SPuuw_(@D2eA-{x! zCQ=f+!|g+_+B&B<0fh?@xH^ z)PmIY1nfcp>$q)OJgdiE7thze2ao3>GkzE0ztVovW!)Rc*M3Ep{~4D8+}YhCK1~&S z+n%2s{M~44!ipnDD5m^V`-h=YcxoFB0>;N6I~MfpY@C6FdL?}kTS0I2Wit+MS-d)- zXa`qCY1lNx{7>~xX)uMDd`(7Y8S(tD6?P?@P|%}bGnopl-&H)8@ku>CMiYcu=sdXZ zkGHHjBm^|=`hkQI0h650Dpm6I6*G;iel$c%N+c7Vk+guA@C{l%(!8!+mXn#OGA^gg z^wvtR6a8YfoCk={Ojg!gA;z~R?skyhF?H*Dj9}(ixUn(mxO7%7v|J}uyVd>xmq93p zp8q0q3b>>Doik9IX(>Ee=Hw8fnxQ*e@HEnpsBzQ zU}R*Km>3SeT4_G)enI!{om%EB0o>Dj{SL``yx3Y>E;1i<QNF z?DI~uv`Jf)A%_4fJ9+eOZ_Mvo!0(*qDNWlvp(Nu7hSBMiBV|vXd}eV0 zm4S2i^QGwWR7{kI{TaW5F~9VtIWLys1D-AHMQ`&oYtEcW*{}P)d&w+`6YpU-{n)q9 z;5V~IOKBpxEOYI0#iACR*M^%?@`xQL!8a?0?JJX#80y8Zn>-JZ)-P4Q^+R=Mo+2fz zt3F4aQZUUBI=d~#ZbNq+x=st;)}n=Sv_=CP!mYRPzF_K&k7B%)*B25rysvPy*XPw= zD;#%6z=_u*;CEi1{|X2p7Iad^`=M4=NSpJ@N=52`-UR;;5#`@p;AJ3pyke4^OWwfK zXMk3cm=0K=?n>F-Ye+|x*}(dZs@uI_x~5gL+&h_3CQiO(c(Bf5ICm98If-C>2)#v; z!>YP0p_k@7pX68JJlq3KT4DwkG=3({Vsxr2XWogeBfPtel3ZJsuhvHr(Ud^1<$fa6 z$2GUoMXO*&M2OvV6ug}Jt5cNRJwYTFEEisFT<5UNX$XEo?8=?!frFO+E99{LgBnl= z>Sl(S!b|;WO?gDj1|6^h?xNlvR#nV;Ic@3a1pPTh9%=CZDWw`%-w#DyX&hH7T^kw^ z-c*Wo=7vIT{HsEm?#ijsN&CaCyv%}6>`#96fbf85K(VMLXYjbHYfnd#yyu!!1y>Yl zG~KqUW>k4GpPgIrlbMniOrLC-Mbo)647ngHF2rXUR*}}D_5o(c14%ktFNYUYfkl?i zmT7V?timblC?^-+`=OD;hAR!cjX9j4Iqr~-%!c?v&Sy^Rh{Z%ZL1M&PoHP)qH+EqfQ z9&O{M2}yZoKYt{eveAT5^d)aOw=f?xWmna}k+kr}B|oFF*mxQDA%;6uggf2upflst z)ucC5P1i+$Vlo$YQQ75ot9aM%kWIIMNA|M6%W_2k&%c9t)RIxh@|D;-FO0cP6U|F| zTh9gfRODU8GYW-@9?3Qxb7{ zp(~v%s;t$WN8VjIE-U1UbN&ApiSHAbUfvf;p24wMbW{A;!Ga^}T3Z%{{z03@AZGsD zbE%;XJCTl3fzm*p)n}}>WI|wI38Se$6*nQ3#(S`$8yekq#YVccB^+hF>XAt~m?m0!5Da%betStS=RNEek3A;g300s=~TG4n#uQIl^O$k zt4}X)mi0N<3a*12L%d%Nv5uAhc4{W1qwkJx0%H(i7Xw=UQ$?}`v`!9_@KRxtunU1F z%@Egb4{N_-tzre~-rj60;g3Tue6yRH<9RlG-32yAsD3Vy6(5Z0!+#m$Wc>TKxqbD2 zVJoZ1h$a4>D@tFWuSDUdNvPy=#p9J)S@-Jdj<+~* z-dsMFIRMx7N)6v0vuV1W(=LfRszCdqKxuZxpT3lKz>g_)3PQ=|4k!8CRCN7jk4iLA z_IJHSIf&s1ahatb8M9v0^_&H$3(2$zk(nkH{mxU;JB)6dU%9^UBdou;t}XF9QTXCK zRB`reNPp(iH6@Hib!~Rr`Dj`Ldt&i&n4)z2@72lxQf)be0C)ENSJ-}_N0R2i%tK6o zwDk4JWLG13|GjuaoMIq9zxDftn2BI#s*QmR{#dHWA5QBpeq=+Kmm|$EYKstQN-agg zL^PTSWc}2(HZn-Wx-8x9^rp!e1$@-^Qq>4fS43EGBgXR%EnOr%e*jJV^dao6kVJWnc<{Fy#%|19g zLY2GHogtg&$heENEG8K7wID(OUg6_bjGj99?D|6wm*h*C6uh|s$7&#T*% z^t?nJyN0(t9}HCo6IDmFivkrsY$126J(WZ*Y19vQ#tY%cg#9#mw=#|}K4s5f)Kz(| z`1YYjmcC@qTv02F3jaK8`?Pi8+rj;(-;h=S_|snfVBcM}=SQBm@1s@$@#(?!a(};| z5#X;w`>f#SJN`!=5x3#(8BtKcn^cg8Kk~~`g5eji{4D?+a+6Z0;Mb$Yw9K%I33bjt zPgGoxje5ueZvij9-`|8|{y3Mur;LN3U4~8PXfA04LY_ulPB;}i1s?bWT3J$dTDECb z18jHvDf2Cl`0t(PDQGtIrI_n#%Ed!IcP(}98NS!I=pd8=&ct9XBfo|XD@m>gw@OSm z6CsKlCNn2v2Fw^EHuJ=;aASUiX~X>h#|nZPu!>n(D{jUN(`7f7wMZ|JuAJV;%bi4k z4tj)~4<1M*vuk}pmT>-*iAWle&#Py!oTwIpe5&V%eBXJ$7{~~K^@RAWHUN~YTlnLD z{iagB$rHNu{BExd)qn*}3oPw-0o{~Aj%N{N@0{B>9m06c$5qN$Y%FsY{Wam9NW026 zX{bq-o~XN3L`GI!a9=BK1O|a>uJ?kdk9Jf~)NT6ud0dE35YZG$Lu-r3*l(;#9D>Y~ z48oT!9+1hf<@*tVOGS_jN89T10Tp)`8qyO}ET|y8$5cJnK1_|C$Y~U$SYw{B!NqWA z`kZqtg+zOb*-FaIykn|L43t~bOSAv95NvN3PuUxHnnz{|k~HY8g+1JP82t2~cl=bZ zj6nUL>xcT@Y_v23S{>>HG~hq@{B47RX1{`_fJSaW2b?B1KUYEnFn&c=#W=FmG_d3x zO=^>TO#PIqIY9H>@jENkwg;HxoUn#c9G+mJ{F=CbF4IP#UNtkaq1JaHNIe&8Lol}o z!EiM9!#2SdPNp(*a{zS4)R7l{jF@_eu^D}W}#>BaUZsF87!@TjX#?X5yh8u_^y!qtSJ~Wt2b-_`$${${- z#kmiKxqq^MU{*C-$c4uV4P^wNv@?D36V_|Z^{-Pc5E}2o!n}9@mlib#6Kbx%A2hl> zAdN2@kGdx7?8+exq+blZdN4hTZf zOi=Z8GCUnfB5FUk1W77$u(*iMg6LCN*Y>fx6AQAYOVxp**v6RNu#>W`6CSMAEd_0Bv@8EbKjIyH5gPZPH=CU^CS1WY;h*jGks4)dg=#^fvHZm&_G z02pw&?uo(ri$Lg09py#l#RAwn1?-ReBD%k(Z{z8K{&I_0UK)%^Ep_3}XzIb3P51um zlh#(s(XQaWD*^a9N?deG?rzO2=ctwhFHot3<59@y*#3dg2R_dgb>{j&6X)eczT%;dc#}&=|DN zev{C%kI3)U&C=UZQ-~xKu4$^$mD_-xzRROStVh1?6jR9$ya$zn-jAG`q9pnk2l>B@ zjJ8RGi&7J|iZ76^91&HvE6A&bo5!Eh=6$b`%~_u6~?_8WUr250Ze6OZG_QF|Ad7s(1c7YUqf zvW|@ou^(G@kGJI@0NEA8Vh5FgH)AKCgjJ5TO)sNn1w{e8f7H|dwCGB;cUsU0bx#ps zi|M>FjBF#JcDgacMeHpLgj8UPFC5oK$s_fZ(z6urZ?X(q>=+-wW7v-C%UIw(DLNfH z@KFi^(momiH0-|&gkXJlW?w$@h`#$b(+409HMJHfnINGJUz#7JxWWx~U5r!<_P|f# zL0pDPV|acVw6gkOb#NMns?nZ42d~I~&_uP#VtX$zPq}R775tU)hrI0rL~&GruyD@& z0s_sY>Anr_qs2h*?HUdJuK^I zBrqBI=bnra9*VhLur_|$*yzIb#t?qy>L1sQFx1YQ%6)ERGPw5u2=T?a?**As%F5em zY&A)vH@S|_nOTE~_qr$V7AcNhD?Q=@+&TAG;OaFH7r}AiiKTrY6v2eeGm#NiSPd&t zidN~{burgYgGzy-pY4l9+!HC3MLvk>4=9Bl=k;baJtkYFoGQ*(jwH)a1zEm|K5#GS z9eF*oaES}t@0WoTg(3(~(=<)}tVdzl z8-lV271O1O*x77{gnz@U%J0NUs80JVz`0enaRRU-bJ&Hp{g1Sq-v1QzKE2gHdAIZ8 zIlc<@xdT16_}rn4av{GjiIs3vBb#V82xamvH!M5VfXOh-#Ac%dMeg_oPqsy{Ocx2K z2^gm~Xyq&@1Z{dAcuUm-vGuFYK6cP&=;+7fEZ9fld^)ob)@7{&*Uw25`lWxJMlIH2 zc$tB}A7d&&-uy$0r**n;!iA4g#U~4=JQW}`LiK2ZUF42}qO#r+;{lhGVNPy`H-yxnmd4fLSVpYrJC6c;6d3} zfap-$m3x*WBB2diTdcQHKZo%HF*Sv!d!^s4h$)t28-79oyrWLW2=Xr?8xU~4nmF)N z?AjnOYqpPk7Pt_|c%~UwH7;o>GOzz*ddA<1DtWiS zbEC4$=mUj3R|V#qFB7D0qZ^x6rK$hC$Oc_8piZX`E>B*Z6=+Y)gQlhn;nsO<8faSV zb}byGR+Lit7LRF+wtS>bTR5TqFmdssyMfaSXTM-*#Cd!L@%icdse1|=;^*jc>_}7l z_Ehk}vq>m)>C#%=TLj?7f9VxE$N*k{8T~a9E!bPz^@XT5{oRhcxIuku#3VWkG7hT* zzLY4R^{0`bf$Vf%ICT*DB(AqV{U2G7H#qLX*u zZJ7J?S*@YPO5D;x0B^<7+VqQkZ+0PTCF`FX;T9W;6*n!Sjrscb_;7IHq@g&%G86?8 zlKu~m*dz0V(gV0JEg$&xTlOgjApPg#U4Yftv)*p8{#{;Nnr3jc-dqD%Z4J|yHi{7P zbSS!*GS#3^Kktg?Xjn;o{R_%-mK-^KHd$Zhs7=}bk#r4ynRrjPr=E<>wry{=?b>Ry zZ9ZYMZQIty&9*jMo9(yn@BI_*XJ+o4Ip@x~8~X$Ynu|z5%FD1yJ_CheP7HO7-5az; z)hqtre(UHpvs82leI!YZTSr2nBUUt;F<$RtG$lVY{MOLkjS3ouLTaFG_)uLt3r=We zNO~#fCd{^DiJfoCi0LRy#z)1+{+lW?p(2(9roxGIX3XoWf?`2eh&>Z$#*JxtwNMzI ze{_Q~?+wj5^0NpwV>c(MKmh!^hfYc6lVaX#i#Zxv#uy}W4+q9Q+Scd(v_apemA$+- z2(+h3&-9t{ zoIEfYYb||qF%VT!c5VZ+u-hFd?u?0o?byKM<4bFdQ9+e}|EV!TXP1OJT0n(U`#rMwE>IVUI6k!fzLrXSJX z2A-KeXm&5{Zc!Q4!GrFTFa#;Bao*v6Lh@E<)SE!(sl&6nsX0WBI127U#RszN)|SVq z!y3C52m!%`JkV0$zgGzWrLS43z+*T8nC(iJ zh1Sp^nUg=_R=~L~Mi92}EWrao#pA-Q8n)b9^B%2((oB+7;RIGv1TAKA-v(0SwBny} zEpQIyQG5d0`-SKfPw3^=>V0PPu_VOz*|5OP}9CV2SnE_vkB4 z6ZY!5liuMgv_Tqms=`3zI8&Be>dN1I^~ntoiz;BUCzTQML!Lk@*dh^TY4Z?xxsYk3wcVPFCPZ87iY86iD!=tOwTZ<5A~uomSIPXe8>B)A z-UG8h4xu9kfMxI^5}0Mx>eh|uJL)#2gTc`Gns6lZY1o!U++$TwA)7u$MAq&8OkOD; z9~S74+4&zkCGtsOvnLbrlnIZ-U(0)j!8W?H#e4*f<1uk4N2T_{jy-0n0(I|CtbY$p zm;PV()cN^Gzdxbho99mJ@Ta4bRNU(fu7l$9s%J#MS$Z<7Xzb~~RjnLh#LV>;0ohZL z)O^}I{XKdCHZWB`Ts1C&Y95XCQ7aMBFj}HAddYG<+deBM!66GLkrOTpULlF&!qHRD z=M~;uFthaq%Rd-x8qP8Ziq7jYN3t4Zey7wJqVtCeV1t`lt1S7xPjd`7(gB{{gstD8 zc*D^OQVLFy4T%wiXIXd#JBO@sQl@1WsVq=m1Gp~lm$*vz z)oC>M-z}*L>liB7%#zCy*qEAb?{0Q)-ClPMdKYWlnoDJRu|6jHsWx#xV_8U*>dDW^ z$wfo!)nc~i<=tvX+9(=LQ?nC%&q!z+ADV%m#!8W{?J?o14M`cWZmbL(=D$e6Q)p&{ z)ht;nV{MXWQv(^(8|evO_tc-S{x;TB7xImm@Ba?L+{BX6&RtV>(@>y457l;8)1*DA z?d_23J>WJR6-Kp&&rZHb(c4E+2FJ+G8<;l3>%Qfs(ji4>e|VZk4A|CCdO+W7u)H)a z3E^7z9C!f!04{nG5`X)pMQ|hiYwN`oC=4xwbV*IvcNV&nM$3*Mhm`wIXf;1mI(&P( z&}IR60=YpSMfU9G=u_C4A~YeAV(L@Pw|}|!@GR)~Uh_5drJVOq_kZ*Ve!4vgrjGuy zUUEC84P{bcGkjnO-P4$A2A7vxeJZO6ydmP-PYI9|+Q@Xy)`#ba(}i`P6KA>kF=xmy z9y?<}sy$?#kRrX4PZEfZEJYJvf6f}TQ-M#e5al2HYH#KU*84g@bHoTp)H===4FpNR zpM!zah(LtjEzN1DHQQ!Z>zZ(&E-^R<{nnq+g~8K+EEKJEaE@Ol2g-qhZ^tDvMzivY z4kC+m(!Q`wE2-PDPCTN?u^zlE0TKmUqz%(dbBBqLYT3Wn@l-SNaa{Wo^!QSYJT*u@ z@rLLsRH5ZM%Fhbz?S7_7trS+M762+KW$B0eO3#jbzd-8}q5r{+BjL9E<0rO(@u-*m zdad1ignKHY#fHlO_bLm)Bu_QVI9kOi|i8hVey`h_Fb8 zjxbbLFs9l??G(c$c!c&&R>E4mE~8rWW}|z|Oow^T?{HOa@ZWz29Q;DHrQ9Xq15qoT zi^WOy?H11#o1SD5>+}?&2r0wk^3wlE3F4onpui~?u`n$(E7{4s(rAQ)(Uu}tWNTs6 zIU$Y&d%Rrwv!hZ6-#xLyBy5)yPx$(A`Of!M2bJgNPtRwyZ?v0gpOP99Kd>$$TsfeF z>YCp#TAs{Hs)WrT3)kz*;6%(W5dy6(dsaP@z_d*B-)!Gc4hp#7TlXnkRFgqKDIZ(o z!XWO%2#1N(H&6ae3wa_*PlBY^iA~8dLiLcUKs6#AO^H0XLzPM%L%^K-@}FoQ3v>$tkP0g|j%$Zw2_8MSLy zI7pVEN9QVf+a6U6$BQmcoER>>sPm1`d$RQ!LecT{ebcny?l(TU9HAC15edsNYw9hk z5!+8L^0i@WIU_0lfhWFi#2rEbv1JV&F~zV=%7aV)B!$sD>AdiZ#6fCfiH{rn{>M}& zxogB63b9@CW`1Yj^hJ5upb}0}^wr;WEX-qh?UJGp42OwVPA3am#*WnfA3P#Ut6AD!KB|+wjQMNFhDRC7y$x5 z5Re~NUtsa){<-F{me6+4IanVQ8cD+oLsH8a{OL{dKe4#NbF>*80Xm4tvO2}(7QXK=_cnHc2mJ7M2dJWu%5PqgGN$*RvONhDqS%&)K1G?0!P1lKjm?)?MltK#Wv! zi<%F2U!O0-HM<|~_iDm1U#i;EZIUb?J*14j@6ap!Ja^s7qC@H(1Lg|Vrki3iT+~Uy zy_juEfc>2Ubf8D8n}>ETS7P}C64}mByL{u&BHarq1x;<#h*kTMhzyyZA~w9K?)f9!Eda+g0D>j$IX_*;UqTV%X?90e>Nx|SObox*RL#04iSrIZmb%=ojRTpAP|n*$R&Mk@LyKT%blq#H$w2x(2j6bGf2v_{D?!M@gpj7(W+BtftcEquxiaV zAVIx+#-_S(?DjK&VQ5MR{b#d?bV^hP*dLo%K`xs2^RbVw?rq;zP22lgTm8BGX9L_h zYM#|@->+fo8SjH(#e2|6gW0N+EQ|!p12NAczWrSo=f{?&X+E?Y)Etr_JCw&jj+Hu# zHed;!I7-etdXo489#j=@_WWM;p=E=nB$&KIXE@&A6VQ-X3*Atc$jzpr{w>;4r8vHn zg_fkmrUKy`nUs3^5vVI7X3qWim)j^deUEm4rys?zQUN^3=_8bTS1xMo>*v|i3y6F4 zB{8@}s0(dQOWsyouonx&#>dX-eX+8}eO2}*gKzXt5`zn_TB^wtLEWiEdfr+l1*$bj z>N}u<6Z+P4S_JJl&nvG;p1?7&!1d$yhW`p3&t4hQqtln*-JsE5n?f_sFvN<(KMLin zP7_kdLWtjX8_4JhJImF=Y&C?c@eR|CZ#&hwqzcShaqfF!|9a1(hd^$R*;C#tX3ve4 zh4JZL)FSI_WtX4m_s}*AS-bUOnR=nb;^PW%f;|ms0VM-4tTtIl5C{PDqwA#*)P@`( zw&w#o#&w8)kpMocMF+Lig-qIph^r2Xo_;r`>a$!e$+FHH3o6k#)C4sRrP_uoy)vX< zmo=1vQ9m$mx^$ZSRSVY_`?aLQA0lCa-N-&(#$zjPrA!E{VOB!1WnXPTI2*XhW*$b1t1E#ZTJoyA| zQ4qu<@9)E3P5Tg@nkjeHk%-`^M=H@)-%vu)lrYm|=I@hWPo(?+1XQ%=TsWx|DPJNE zH-n+9_8$r*Z(eoWRv6ZCW&k2kzMNMc!e6Np36-0eKuW1pQ#=rrG=b8Jjg(DT*CJAA zG#{Zgsvy}$3Vv1x7e-*bJ7(SIhKYZ&6sFPeZz;|KD zR~2b7&h9ynZ)Gx&at?FdO?E1_wjef&WjOS*DTDdlTx+UWGQ&eSL-M#@eNt|2}W*xQf+qikvMN6v)8&bH$+ zH;{R!8Tf128p)1wPy1b%0}3MKEG@rRJgONi#_ZIr zgFLpt4$4zX#f(DIPC1PRxs1%h@G7b^iIw9*SxcQ!35ASy*0Z5!$!{m1J_IlwOmqWu zAt3!oQ=ZDbRcAe`KOxx`HHiy7Ur#6nvH(Qn5*ATQ3&q*@Qn+wIFd(?e-JlvmD%b&q zDTJq}RCP<1h0K4>x(nm3g{u3(@^!wkA~ND7f+2+H1lpaeKaMk0Mm4c#5-+5AUkGw%R`FUCjJ$7JX8<3HpEwYH~d?*FW5fcH6ljZmnP z;UaCkMD#k3+IK2EqyuZpOsSXRNmrDan=&*@+kOspN8BRd6iJM_FQ5Tjj^jURPN6?t z=gV6;ngq*b7c&5ZB&HZY}be1wVC4eU$Vj^Ohhv7d#c zI`)$AuUS)L$?W6wgZ5yPZ%bt;XmPr!#llRpbrjHlFBy_%r#2#Ciwi5;+a{UFlfT9WQxcw5xfLP+ZEvrA9D6->ScSWzhgB3CG6~ zD$$QQWJlt^Ptq9GQD#YMZvLCJu3LuDIBFw5$6ZG_0z)-$k-XU9&1y~&<%pN8QytOK zJ>l_h*#hmg#@qU=BznF#zF^+TV2>h`rAq_?wNxrXphibL+8Oc!7G7IGmMSYk$h&&K z4$#1WW`{-a74U%I8&L&DwDKIKmYLq*WO_96k_{6F0cpQRxQl$vIq>{~6DPm|<8 zwSA0nL)V{-$V}LQVWR(-QY7bEz$BuwF3wif{Boyu2ix~KSGV+VoYg% zAz7J%xd`Chp-mQWoKbmjC8fpW@zunH-&7_j>!PZCIGzWc-TimS`qp92-q4=wu~+{g z(M(XGg{yR#7Jpd1OSG+UaMONT5r$*s^oKN7P=xuht#0%C2mMb;zN9>)G45yMhYlHf za6f7$YnI}2QV5NJEJT~O5%R)7^5DpSWRy)&*bN)&cPu|QqKr);D1PO;!a*ONLmKHmweeHY&a16$3035Pkx3?)?~?n$KHmA~c-H>g8# zW3n6aHcll4*(G2-ZJST(+v4*<{4KOjr!a<44Qi#pH@}gP{%t+i)jX6r?!O$;x*cB- z&5OD{*NaYqV}Hn9%yh~*W!(l{w}*{`mdRk%Ne{B9DoEXosM&2C{*ib_@|!pUq2Qlm zz~5{BPR&bM&d3&BrdN}$@B$L2gjn$_VfJw?h#%<@?Z}=yF_NpWv|v%g_}oLtX{lq1Ve9$_UUgU0K>re3W}5Er)PcA5#z{p}>TI z)Fvx$oJ!5cPc-~jW(CnIWkq>;M}oGbAs$03@!f;^#*_oJ(}ubl;klBjG0l?-CV%Q; zD{LCYW`83SNnx<$VqAW&&47Z0dA~H}L2e<Qd0kfmlY#7ZY;}u=p(FjBZPx`AW>Q@7;R231E&(q4?S7jNwt4 zah5^t2Bt0qhx)1$ads4-vVX{v#x{z+b``8Rs&UM4F@@j)PEmbv>XYL?5c+n)AKjV4 z7b}MQ3K*@q%tp+hvQ*dS1B57JY_%css7?Y1~iC({Sr(Nf}j{l}n%Z`Z`PlHi31dzK8xlOjG+ z?TG3Pi6HpgxKZO;ZHOlC$(10zsYGL%T0jW9ajJ76tw4~0ku4o5@23moUjWcOG+B(*f0tgy4dXjb+=6p=qH`J(nE$qZ^O60oT3*5 zo2LELGz!%y(O5MXN@(bqZXX)(`SWiZnzt6;MX`?coUFW_y|4^eRE_=cu}LVuResBt z`t=jMX$5QIQ0pU{#+?e7rkl8cC3sF=H2@N=?sUA!&NAJTn^;#tL3BbI!ag`|&k&Y( ztlF52;J$#35K8f=qgZ&YotO(Y)=6S!+Cbc?PJ#Hna6xiaYqrB)+XOZym_AgJm?4%I zzB4I6y`b~I6b|Pwhz0M?_{gPj`cWrGc#%5srd8R>M-y3deda_5I>0>@Fo4VHu7JMY#k<}Vryx?R zeY=Uv8^8mYJ6eJVfOGTI3yad7RPbCtf@k4)-}IfQs;6Hu#zxHVMg1691ULTrDsIR; zkZ^~@CX6>cRM0A>RJIjS;Xql4gc0WgW(fxPCrpem$!}(O5~m*@t5|c@Ee}AA+(a)< z;oI1WGBRYH8;pg9Qi8^@U1(eeUKQrDFtGV85vBu_- zv^vb(4S*`5p*ms`H7yl=9`-SKN9_Mks8XzY4$U2|JpBxVLC&u9VG0=bQeRAzx?0ei zL2R;7U0&q%wc}0A5*PCQ20*aBPd0&9;QfJGpP(6#N1bUR6e)EHgt<`Hhkp4f+Tae8 zq05ma>e6RNs2B?=m0!iS4HxTqx#7+6d#D(SuDjlgM3PpijedYaS6T&ScL|*LzPqL9 zW`-PS6g*kuOb2_kgasPNK#nE{3cykF14nzw#OMJu8ak@5GEgcCF)g$P7};gaY@@*vV#4sS5Ep|KTy}_$7Yl>|M}rky zIYjnKh?1A>mKo~j)JfcPF91d2;y5)?Q>i0BJ-n*`4CJztpmx_L|TIPYKhfXYY1Cj)|;j&*x z{|y0DTl(6c=G(PFUe?jAe7cY{?o^Z1fmPI^keb?}B+c+`DdAnL_ZE-(q&3gP){F-h zUo2Wtnzdt9Pl+RQpev#Q^cCyOp;Q#?zUznOn&IjV7Le^?Ip29M3g)lM=+vo0jHKc2 zXe%3a(1EwvLC38q56yvvwu^tV%Zlu!ah`Te`n03lsmwOB$Uk ziOB^yIG?cdP;8qTWG~9|$$s|fMb}#~u2VCYZEua)2ehH$aVrhg^BC%=u~C0>F&?xS zS%o2MHxGRADcgYB(cZ+RR(*>ZI|ghiiv6!Y8QYWPbsBxt_DBn+%1JfspHotMU!_=h zekY5YXJZx1tJ*$yo%-6plKcf|elRl|^SjQ!O-75R0xWg=8{BG`+&m|H`{#94pXgtQ zZjI%5PUOnc&g=9{us z^7vUg#vAhxWvnkzOwJ{z3(4MktA-i97>hefkO>VjAcEmXO)uU!Mre>o0sa!^$r?gO zpfRWE5z7*XZmhi2VCNi%vy&ilsh=W?$%GV}s2DSXk!7eib(Ro8v!UtJZdv;X#Ha>h z_MLBjy+Hly$Ch7P3l#4?wj3*#LeXHhtOi36)0ecwEIg6-Y1={G{*P<)2(00 z6$rK>n=Mxw1E!Q#S-)xF5hNxmCOOh3u@m+TVYrP&H^+MqV!B?ko-MMe)RjejUnM{~)eQ(s-bf?56RQ}mG}!>t8-!B=>eXctv7CjEon z9fOhUA+j>oHphd9=pea;6>*dFBqM4mvhQ;Dzsi;SuX3&BF*2%qQcE$bQ2MrWVKZdu z%ZO8>5)2rKri)k_7vr*rME5%I_U^YE2a@Jt&JeH2H##mMu^Q2l19$a z!igk0Uh_zu7BGbYVa7FWDXb&hR0xh!Vw&xf$c}Zi6f8-R+;T$8VWym><*dq)S5q=u zRiS~n@!z0`XU^S<6!MY|4Tm!`<@dwIRMY`VyK}ustV=(X&?bcxToz~GAS-%FW~_dB zJJ1(s(rWg}EP-UU8B0hzgIQ<`=+!)YuFQPSH|^X9JFYxm>Hm{VeFM)&hrcRRl3_`b zeXX(;p{XNgQ19>LLG(dhp-E;fAxa&j@$o&ix#<23DhKQ)3TT83QnY~8My7-jpzm79 zr-m$mMorV);7jHoKW@Krp98RVlHnj z8dQH@dl!FuS0KTW2p92tYE+B%xUbcFdbj`>Q*Wp4cDce%KX?Q(RRaozzG-#z4U9w( z%<+IDz9?8w;jTwWnUtvGJBk&~N`x0XL%0T$M;OD5|7=Sd4XNAp9Y>h+V6bw+0&Dw{ z23H@h>NOWX@v@1LkKw(jN~iRM!%}U*pjtXcO|!J9NM4UQfG2ScY$kHWlS3`g2PiB$ z5LM|M%)#~dR}IYs+EY+~X!zKCJR98^5T*cJr?{Y0Rc!u4|7vCkx5M!jvN2z$^4DsNbg^YvU$iC6-Z8n^j zAz926BhX@F*{On&KVIeWk!h!2h{C!|F_XG%Br+C(txpZR$5hrzOe0Md*I zX|7CM64M-Q+2nQoWtG#u;b|7eo?0{7gVmlR1^Nev&gAd&;REo5?IADNs^pIdq!F}~ zpqpWTf%n3%?E4zbT1w%1>CQfRv=vo6Jb{dXV2QRcQ;}YL^o<@nqX)hdt0Rv2{krO+ z9{46)FF!VoLCKBxeiykAkQuxD58g6EsPBz$dAew0{WFXCkLhhS)}R5-%~ldNBK6#+ zP;LlEC?wr~l`QNujDB@9@KZW;*Foy=NJM|^4M!_8_Nau3WY$bLhTA3;%tV>LQ^Vjv zViW|?ic$er*mCa$f}s;<)j%on$ll*qHy-Ox)MyZiK4{*nV}J06)D!uj9wwNnLgjer zn}huix$#e}taqO!-+xL}Ui27MY7x_B$1m2@O0;l}*JsS$^n|Di%?-`|q;-hu+LNju zCKedV1jztKC{t0;-`gF@jt^e>qBWN#LIlyo8a?lfZ#G?Qs#Rxyd86ZIR~-rH9a)O;(VCf z%(~@AYcEJxN9>^3E8;g+W!#xyE)*j4pT}*574^nN3X;?@5?mDnI1MvmeEeGVZ8zqwn*HXbAN`*0av<%S?{xAsAc zf#Q{a&j78NcMxJZPc&e}AF)l^S8$Kxq64tghdFmX2$|?^fj5?~kMH`jk`^)e$8FI; zw-5M#8PtBd7C05!-vO9W)P3A5q%M8v>fnin8RB7A<9s1|bGQx%YP}38vXpOLL5?~YDE-C>yVzCu)Q@aze+vU>wGX8>R z#C@74*?IqL+Q^+U$rw*l?%XcJH!~SeGeFB-FCcRvi9L#dZG8W+$KY?j@8y1zAgH&{ zHs{9ty6AE=8n&xjzmzFNf|9mDO*S?o+G@p7%UcuJFhnJd^PosaL*aZQ@qw$bjd00t z$I1R$l=~lG*t7pgC-U#?{QJRFD+BHTCt$YyCN;xsC%E^_u1mOW1eS`)oc4Swm_4SO zkoJ0@dWhz;I^OV<7%`ylo6~y6O=j#~u4J=_-Bn}UObg}ZIy#J<{$+1r?k{cf&eQF? ze4pfbD&FHRxFejIOMd0qlLJ_ZyJb7xYeFQ|UqYpM5;O4A&mn{Rws)O)UG`5+<_7&y zp_I6Ki4MU$&?PIcwNn%0pHAR&4AJm^(@Jd5hPUf^^4({eKU84jz2nsC1&(zcl+6^~ z@_G+v?>4J|nFGShbl^3cGBq)w_5}M&ou?n#^luG zXEgjttNx zO^QL++(&F9Y%Xk-@%H*d5<({$H)<(j){{UJkk$Gw8xw0m=PVnx8siqR{B*GgNRK&oh&(NajjD-@l4U{4V@>p zaMY38h8Y%H0U&IF~U6U_O_pVe#POY9dU>F zhV^9g*rSFZ%J=Xu)PI0u>M-{?e0k`TqYO5h5wJ;h?nbEf&&FeT9O7PD;?%KdD;H-= z;-8n_6`bC=*yHx9K6sqkueMy1YAqHi*Cv^B3tbY&P36rr-{3?CSS!h`ceR?VKUy>HJBe$9hx)d4hk+Yvs3-JOe&_7P}a z)6{$%Q9*f$5YT0%xRGT>{}A+Ska$qgJ8sjWAsBdjvhf$fV=nVUUC_e4WwFd`A9mQha_h$1VL_R8Et!=t=DBinve#~CS8 z#L70yS$?b~fuK&V69IuKdRK5doEe)al3Gbk*fdU0+{+)N97HVKJJ(GQ^@sJv%U^n3 zIOW@*0WaK(ni=ETdU7rUcH!YQhGWx_xn+_Gq- zxJ-0xIw|YkU;YSEG9)xWQ#ccPO1KLK8q1|cCAZsE_RSD*bcQv%r*DN!85Ka6xGQpT z@vV8L=!r{jV%U;k6mv+sQ(fD&xc#LM6YLupVjNRzh}q#0ZO5?<=Uw^1#%bfy?^ee4mhrf^WEj2KXx zZTr0pe@x}MSU)4fFUw+ zODpZahGgB3=@23S8HbrIG1&!49U&^Sd+b)rnzVSVzH6xc3y3%v*22&vyT=eX`bSun zu7!Qyzll4zj8Nq1P`(Z-8AhZH)=CdZ1U0Al6C1H}wZY!d;M^gzr6Sv z8!O>e)eT)Q0W8AQs+5JSYxxC`?~wW#n2IAxH`>tB2Ia;&RK*#$N$7OrWo5K+*&ckv zDV1Eo#>`^b@?jm!b16YDCg_AoV!TNltBxc|*4=Pl7hR|_pZhXmJG?*QCd+Y?)rO2J zFFzDB`y}l;KSG~T5Wc0iSd0hYS-)_G5Hxxu<(sp4cUM5p=BB*^g zx6U(#B{fKF`0FnrNFxwb%NnS&-0Hf;>K2f{i!G>-$%eNiGYXd;+eWMiDFmj{L44ep&)!*v9S1 za#hv;2k#0sxF+wqpO4T;(f{TAqw!Zm)@D3!r3qog5vn(%zBORxX-akzW5+gDsHs|r zl$KQ911w|S6vGh7mHRaarF;tH%8KVeQzV;aWXjBvl=5z95mpnTIe5J-1p}6+%!xRU zV-yzp&JX!n3HRTYukrZ@zhLz8-%o&_IS=GC>%vmyup1P)WrAxv_9c9G&1?<=6_$JT zrpygy=SjEN2WBK`Mp8TmB!yeeYx=YIL-knzfsSduVJ|PqrT7}G?6&mF)7icBpZZq2 zKKo6Vw?sBP_$IB?t(OT~o5ft@Z<}80_1PSwxquofw1URvmL%v)TP?_Jspse|uWj;c zhLjz%Vn|1%z&Guo<%}@SDbZL@*qv|N-vG^}|B}FXVGlaxID_2&m7~|&>JGjdls9nS zSA_Mdj@j-eXod=lQxGgyL4;Hh(?9UXzw$0xR~8tG?+o>Dxa)^#u$d3DX1!IP#YHt2 z$dqpiKB_L01$<@u@+#}A|Hiu@xCStaQ&jh*jS`%Jc?|a?+>+iD^vu>yki@N{kp{sz z6NsRvZfvkdqyEgiTXtVgdkj#^*^f+sbkrK7vZN_FZQ{!fDKkS*iCkX;U{q0a;wXOL z?O_%QUoc$MyOv$|eU3$G^NZMMLrBFPsJNPwh(>alM{vo$nmK=YMP9v<2EnAtDy) zm45f8i<#_Cq$D;Em;3`fX#^_K?TJr+G~y;uTqm#IunjM=bPeK+8c{r|6N(waf!mCv zfK|6hg%M21ToFn^ShBfuAy(y0Qp9bOxl{B2C0My!1HE{K!E`Lv(Xef?1sv+43i}U)rj42y)Xw>p=uh?lv^E0M?6+I9tC}9^--iI zJ#Po)mEY>@Je*3s~-N2&BTL`pZyXzi<8P%Qxy;?(D!DD9ft;Ms{s2i@JocN zpXQ&vUY}4;{#7@&uYH&60=D_}ZNMH%owyX!e`8)azxkgH)gOi?>cB;rlqHwoJ{Af_ zF;aP)vr|st+8yTzN#M>Wgmxo4K+r#7Mcf5P7D%jB zK5^rqLuhO5_z(O2Lit0HWviNB5bjTC9TfsGay@geUY-PixALsR#{97J0=d6n`~fwR!+!h>_!?sBDZ_9+Peb4I$|#$2#*b3|{p;1y64} zI&q#!*)?UY@KU5d*zr;v?CM9TF_{o)9gGZA6Xs>74hRG zKkX81lU`t6c^VpVS{U2?#Q?1KO3Pd#LpSi%iR7~B=(u? z*|nbLHev`jG@L7Pnw3+aVP+z7yH~!JUw?UMWU^D3rK+!tDk%UpWxzzEg(0q=ThF_G zGk1QJ?vK*?fi9hNTxUYy{q-Ljr}1iw#+XT=Si-77FM#HXeo>NgfrS#1n(#393195P zj=A65?zfEpSR(I|jh-{A*xYyizj*tfbSyU_;7j&ZVr8*jRhN%1#p?E;bpAnZN6(FR zoNSWP<-j*8m#_omQUh!MmbGx@9KC&ht7h`Isx^GR4U!=4U&HB(zT)njZ~-(xilmbw zojD$4FQQUkl)HSQ#2* zV>#T{^W{a#we)$G*93)$m0>I9!Ufwa2L0@#^)She+&^00M_a@^Ztt>;Q(ZuQknRi< zv`9A%2*$qTi><4mR0#JXm}uk_4U8D>(w>}AGAVzhwrB(4E!v-i-4ZUMx2Pe zMQw|4t^VGEbTe}$siZ0))d3HtBaDkY1ox=Ws&Of@yKDSd3LKYPX*nj@gL{Gih{ecH z=SvWogCTuf{tCnYMVjy{%?ECD?Ac~Da5j7*1cK7ZRU{->3Z9_e2Vgxk-5zy-$?iFU z$lKxg<*4pp2Dv1o$XRm3i#dxAXT;r?3)bX!!-|!3(EhyWc=_dwP=~d3JO3Y}*3yc# z^%}Z;`L=!iA%Eu&n;>ql0ZZ$~o$8WF&lHDT{Mo!1F(Sxzg*RmN0|J;v`y;HFzI zmV>$dQ~CfAPy)4JR4i&j>UeydX5CGmwhtpKpwEjsaezQZi-H)!zE?jT4Dlv^97+rW3{k_&wufG7`*yYx< z{odDwpws;N_%@Mf@HT*V`Kc$G=)|L*8wVDZW4+Ed(9-dHGy_qADc$yF)S`I0i^zF7 zze_y!*6|Ml`izAM!YO0lLf02p%OMgIKYQeU{$<=!7U#(#cT#Mo$~Z#JRS5>ftd>yJ z9a9=#X-0ZtIjjP^xL`1Q4o4UfQeHqx#E;EtNHXa3+*32B`D;o$Ynt^u;^a34OUfHB z307Z)i?Q)WgHR;Di7W=M!Ay!kLv~=p0qesXp%5}9i`)KEK;SK*FHtNN;Fh{JCe!H+SqcSThTj;GR~Q0lrr!)ldo5UQq>y(XQ3T#T1mQYg zMgL2PkiFIq!M6*+r=_Q!kn}xCJD=Ijv2Fwn=Gq=TnD$dhUlDy&!@|2saluqC>0bIA zF~b!2@Yu6(tyZ@B#$S7-U`WqQR=YbzmA0^fA_WIyB;Hv8cYl0sob+y!{Y z9z-+gB$H_2hT~t;vxY(wBx0TUMv4ARTB!@r><9!F1k3Xy2peffk323-<0M6kMpD2R zm88SP?V`aJt;B2rn3Ggt^>+jf#Ae$?O5!BN>4UtJ>lfNowTOuy-IS3W7BqpJVuN1X zlsH0PFSd5H*tF6agP-zDxz!RdLk3l|1rXI!LvKFB?$n9qtU}HRmDgQf>APPb{10E! zw=28u&+9KgcP>8@hhJNVK3y-W)I6?rQ7miW3PlVAE?2-s5F(m;e%v3t`7zG;{Ai-e zeXbNd3mPR$R4)~pws~F!?zBzB@D;)4J10u&yR+B-JcIqnQ-m5@qT&DvD4aI*$|cxi zye3p7v2%ZT6)Cg1s4bndRF&D!#eR**1h)D`law=7p>-X!A*(@_(Fm+* z`RhuZ9tO?63{nJ=D3+=WTP&d3dRuJ$VL>?9W9JMy5uO+bR`kwh`Y0DX`HKJM(gP4A z`1bB^cK+I9`azVNohuKL(=%=-0-1oIa7Znnc?Y2djUC-boL@R!Bc@mVAq$LsdvpT| z6GCf6gtLRGXpV77(@WIh@n4WXbQ>{SPCwdo*)ED2uY0#)PZwnp3109|yQjmNVyOa> zQ{OgQ2yls1HWl@MnDqFiGn3~)V+oVWAIK3q)Olrs(E!vhm_}Me8zYM9{PeWN6B2Px z?@C}=>=D}j2nzl2*YpBQUHt6(?CL%%Ce?%s??n2k3%3D>im_H^f9%hZG!_AVn%HtM zU}UFijxdTKDnIL_@EPsRtFl~Y?{DaT+6pK3y*j8?9l-Eyqm~{{A zSOA@wqUV#BNS;{IXfcYA8p6r7$+fe4va{WGSxpq5nu)00t4FNa{Z^4MoBd1`(bzT{Ta9ftHX7SLZ~A=SPuOSAnb|Y<(NtC}z5k88sT zE>lBpraKmvyw_^sKu_Vww|PkP(~#O52gYKg)`le#BFo$`*Wl8PSV^}<3q5hSl_%E? zMM``NXJg+L!NsDR?F|k`?+xF6x!Ut$-T6}Ud*6KcAJjhqm)?5V<`1#n_54HuPxabi z{LW0eOU7gl@Hy($b=pa2Fx+5ONna-FY`)XambpDfGdq}zxQ=H7ryN%cQp7ku^1>P{ zI)!4jx6G5`!U(+wKJbll0Ghs)`EQqqIQ^!()iCtAPa9Ml$xz~Xy9z@>mnFHm-y=kk$t=P3{z29hB%`j~=@}ry(ogfIvkEaM19=xDi=6w6)*0#>&kfskbu+Bl zOqw+Ih|CmZuV}a{x>8#O7YJnmb{qs~XviBwjQ!}x z9y#eT8*jwrp0{vmWi5l5+wA>xnjhiS`=i0&S7$`oGE%TS(w_F_@xJmGxbk7JyujH~ z^-C0`<;S7Vkm8o?D=UHBKIvgXACGBZNsa{ss%nk=t5Z+(uYgEiOf7i5^SWL5qOy_Tsd%cI&)iap4wqw zZhEKyj%gX{M`Q9>hIP2z8|VBYj_xU^TT4qL$!`nTqK~a zx_oi12zA_)#G0?7Nnt*^PiqeT*Ca7(&uk$PKh=1aj~kJ|?S16HC3hKvX=w50twfuv z0#?Pv@Msl-Bd>0~g57_|W8|V&_#xUAMhjgP6}a9gxC*7Qq)f7xi!Qw^M$PPRGQEFW z3Gewg^LKOjI+!o)r~e)RWaQ|}b?+3|Xm)M8dV{|SLEZPdauXYv_2u=A0$KwV$Td># z$SoOmDhAt|dT~p5V3P8uaXQXrXRc2lvbPDr;yMg+v~>TqHXxQ#*VSZ>GSjA|VYAh* z-%z@7n0nO>xosjrj{=vy4*d~Z+~|4YCOHbj&?Y~=fqRP|AdKLJdLTiKU=>M1!6K6^ z&52M>heO%Fl1_7PT)l%lxuHuwUSLYX&6LL;-op`SttIt6x+Q+JV-L4HML);U09i@T zvO4I`0;l!afje-j>>?m<;KIWn8snEzMjH;m!_cSn@MCK5tmZtedZm zd;lS6u@f}9>!c^JQ~^qEOpBQ01u4%mAOa%*jqn9R8D#<%1UBONKG&@}nOBCOkz#a5 zLkvg6J!7X3NA`h(f#^_xE2#kmc7AOduT&&w&Zuxl3$_yW+YF;~u4|&WU18^bV=74& zDw?w2^N+VbSf7Insl7*EdtP0q7dIBQJ+EKY=f-6@4Oj-~h5iaU~B$&Eqkf7(H|ak#G9^+>`PReNzV3)9&P=#v}w9+MIm$ zMuW13rZwrgm_`2Y;Egx=a#hzz|EcDkrUnb{Y?oa)q1oj;n_a>oe9(ZZ-oDv7YFr!? z;5dkS|F&Zy3`Dpd6ve81*~7wyA{yaIGyfK$ zb+3u+PR^Na@1lOfBlXjE-s3CL+lT$zcIy|#VE@j4S;p(g7d*?9FSs?e zpU>f#-PH;uT@4`nZ8Ai0WUk#DVxL?@j#vG>3YEET?5@JD6FlQW^{wnx|ocWN2}{ z1q?Y$J|!2Ttu1=3g7asswptp!-;~S5G>@XfxzS+a%h87Q$f>Hl254|>>zPp82;fLQ zAnLXw={SEO5YEl5@7G;MDnlkUOZ_62je#kn)MLR&bu1#Igh=PZ6_vD^0o`aSQ1W~1lrWEP~xLC@7whmDuLk`N1rhCv^ffBv=kvLc?YAc{LBX z5c(_o30FvI7`^Z>It`3@S&O6nhlQ!lRo?lmCjyrqP2t||TiIok;O}p#P4Mqbxu8P! zd0p?o^pwPxQ2>PJ*k>iz5FLN_Da@7`k;OuvCvxG0EifdbX&r|^g zvT?%KmI}!ng4AjSuSi+mkf8A2h0CIv=^)m+IhC7RVm&$-*br?BY75)mnmgD8uD=WK zN+M_?V>hw^mWUqr0(^Z2&=Mjdy!Uo!N>tEd%w^PQG85Dnp0rFgVALcf$wM%TO71X{ z*)5vX=)52aZpE7kW{ulvEvh)L?D?0(UQC&RrMq$_-fCc5zCbKQ=6@sqjSHu?tAVRe zt7i+p_gmoiSs;gJ3$ZV1?^!O2uI{u>elN~!PzN1%y?(;YY}X(xyW^3Hgwoo~0ro4? z*$po1NZgM=26vh`5ASIWRa4f~akU4+PIm9Wr*lFACD;54^$;{~+r>CEyh#s)bhi&d z!HxR$c$8WEsu~6W$4|cqV=hV3C{t&brC5kEBe^KsL8rn^7Up4cv~)-pO4|~Gl~7ffGFnk*g!@fAt%@z&Z7q`+%AA4*@09iipAs9ny}cKpVEBRB`kf&SCl&jqd`&P|?JxosxDv zy;*NO%xLE8o-c${M`S-s8yO1NejI2LZ4SCCy8c9KKkG6yyxMkK0P|Wbe4f4|*(Bsk zx4tClP*&C5i(z?V12RxEEG~*2`wxjhAf8f$pQDn1777XW+5{boo8R2 z&uxgkU%B0WMPn7o+~dlo!;xSbiz9ql>4l1O#>e8liuQ#L=2I~#!B+G1D?{?~c~KbA z$`xF^piN6OUN-+CC_Q&EI)-!-oW9TRBxK!o{Vw3(xqU&`1L^bkd!D2>kehEuF@FcM zH=xmJ2u{nvCaiPjbHJYSF4^Wnbb|{Enh`gcQQsl>yUins_<`m)-t_a-i>s{=$tL85 zXBZNWf043j^O)A5eFI+>(u!%%*v`%4O;RV4zTkt{wFe>4ZwLC(!{_J=MG^?igCKx0 zCbMBzQ@Z!fmBib*oLOL};q;w!(yy+N7=MWFzH9hY0Nci_BaW{-qSZ=>1S?xafZv+A zSYL_*1@T>%bflnEs?#8l_Hw|<8(6uWZxTQkf)ZBMT5K6~f_AK7Uy|VxNzd=(fQ1*; zRPb|@8Q35YhFFK#dVOYT&ObpmZj9gm zf;CJH*@?ttT=kdO;gacLey!O>tmH)nsUa?TVM{5b@GTZEvq6+_4VAUTTwV^h24Pma z3HL&bJ|~kUyHHkIsL5cIyYDnyAd3hBYhm+AmxV&+_l#*2W!g+tpH6P7vU>MvPLboi z^?KPi&ud7Jr)6TQf;N{5ij(#5%mnP;-4(Z76}j%WFvX9w`x3I0iM&vB_=?XIAw^uZ-cx2pou@!mBdtGaTt(iHem+cwSP?mh z%^8VZoi)}+VT(~WpiiVIOS>23LNitMQ2HHLnDT2L`7uyGq3&BLL7!FD^9h`4DP&ap zRZ!e?PA2mD9(tEjdYhJFbsp2e#nmr_>=9HUd-9s0{xp)IF{rHfvOpagDl9>)yN5Ez z%nIhhlxLNJvA1L5^sNp;@>-CnR4f&+3P6!nZk#7`I}g4-cyWEF{iTUp zk(x6b_7kG$g{8I(9z8HC#?J~M<{pdo`m>hUUQ_;5&Pq@5lb+WC1`~O6%9%Od%j#9Z zv4*P>vG`n@EOK%XM-dTFPfn*hCaCjMMy0bITY1sTW>T3mNy`eh(t=3j`eqbiIDKrp z;9`nT~`Y)Ya@41V{qA&b_&)qfV!B-<8w<3sxeRPJ&N=6D@I9v7_4B@k3B6Md zhKl;4M3TV@2EZ1MOW7Hx=ZqnRob}MqG3g{NS%b+asWP0x(Nc{F!z9J*?Kc1(G54z9Efu1uPOoZNEDk`Ro@(*xPR*%{? zDOe(4S|odfufZ11PO1vFVa}zj`pK1Mfq=*$i|DZ{W|J})iS{ricaYIR@rD}0?!D?e!eJTEC5I`r0QVP7HLcssA=qM3eZeeY z`E}-L{i`{5dhv%o{GxmH0v&=!AM1C_;BnQQd+br_@Mn}^4Wjx_^Q4<&da}SSxFQjz z9v5Y>8(Y#$=v^4VU?C2KaE)oU$C(!${#X(LyK3nvM!R29aR3W#baW9zjx;~bewHS&-RPKByc$RVOUB!=s|>0--rPMFCgx8wy~Yw&gON|1ZJ^`Ce8 zj~$f&jAH{-bDYr$!5_f^b+?xLG;Q!QZI97}*MB=^%w(baRR<}62_-it{Jlk=8fBtF3Tgi5UD_65hiiua>pX5 z3yo>m7BT5fXIOokM@NU)E`VI@O|G>bmKjp}6jA-`y6W?!e>&U>qv@K5`B_StsGEP( zW>bs!SFRqJLD2?LyRvq9rM@*9qqS<4r~^xEBuzgtrYeBUZ2A(36u2a*adaFg`qpaW z{l%C|-?{ZCdHcH3DIgKR5V`r_2lb8yg&+=_(6Zb~8{&;E@1z|}3j@S?5}9LX?PAnzGJs}m%A-_fgPC-~#cnd?^K>fW3g$-TmT zWYN=E@`oP(Lo`nDU0&7JlA0F(B5~_l+G40T-moutrfyw*!o|Q6<>r)uRqGym#ejqf z_gu^H*Zept2^{azh|!{Xj{NVg z@DI(l0Cey(7b4#ZmQ;OwZs*>|P{gZsUO)wXnmbjJ=8a$yC15Q2i9DK4k9+A`?}QP} zO!P!*<-CSi3YW3bzwVjgER)Mj9_gnz>-79(=!V6QS!J*MsH2eS-ahE67@T4i$1$g( zQ6Rey`rS;b@TP^hgj8bnkKHNHfl5xpAlz9JBn!LnQGwb_eKy_CWzb^QKlO!ZN^foT z;$Heu6wC4iF;I=E#R3|bU?Y+YH8v%5ms(+=*Mi!!8E`x~LK8Oh@}+%u!~0?06PQ`T ziFtxKZ=;&C+0kllpk(-R6*4VESNu6)>zZAU;8{5MV7L~=-CglSqq&)2E1mWSGS8;{sfVGec^g4-MRT|{cc3MOjZ-JnioipiHgVDQJXZ*j*&!Don$0F z`6K2)^@@hFvW*LRm~9Bh)&q`xVR!{`N>wy_*S`5{9E`gb&|rx|s= z;dA%%W-6Wy@b|lc^nYB$ukTzA&~)73Ru_K7j#ZDe(WgIN4^zYTD-@2d0hwr2uVden z{Lr6OTzi(_r6wsp3NWcBoU|zoWw9@(#$Y+hgckjxQWAjmhqcO5iiA-AauBdf_EUz22W;ENwxpl<#6v7z`KVcr)?qp? zwCm(YLWr3sbkk}az1P%7DWG)}KU(`U%dBW#FCWb_H3aakx0FeTXFckAgmbTE-`4Rn zY#-fMpp*LJE`cmX+q^P|XeTYO@?$yUhW^ELV3_ReV&%LI{YNhP3h3$wU=~(g0bo9| zpM@Smbikv0Pa%tTLj=6%(QlH|2usW+GGi|j4i@KrDbl4hn3R^wn61x>-qsG1(b7q@ zd8I)0SB`c88_Rvzq^qqp>B*D1^z;zQsK5d_)lvrpeiG&!+Cn^Ad-L14^tx!(Q_RqJ zS?^UN1XMWvT;r7XQ`|qD{F|TH6hgt)Nw$(TD;qXNRJaF(j|F!v5XqT&_vw>bc}1P0 zZsxuo_k0Rr6HgrhrJYJzO>3=;@xQ=RRZY4NCiSWU-1{aIORZ7!bq{n_wOs91nT{9I zfG&d*z=zyFV_&cQ8sK)~4s!a!w+Wnea;q9BvJve$f8GZ4xr`a7rDvu7Hs)jFWJwCd z7PSm-3!~0lDoq4Kt?CFZG36y!PPnrA!aX@}h)BkBQZ=^hSc?2vnF!g=XeGnO5}QtnLGBKpnNhANi>YK$iu zto9CK*to6x(}?*aO>AS5-?B@b&xkM3c@%iO?EUT`jMM^FY;?qbwi-G0n8oz1ZFG`C zv5uBlB!-+@O5RA(#dQXbiN7zxw#%gMW{KZ9!mM9t^29-|?+0WH7f& zf#>*HeyJY=EfxaQi;S#Rqo!bx2$vjaq%}>OdMqmWcbRV$+9%^Q+1lVg;T6LqsM*~e z?(SklkaIT2>yZR6+tYc_LCW}bmtsq)8L>~AY)BkkwWF5(K!1~`K2;lZ%Xl$svx$wD zb4*;VR!vEHL4h1U$7p1iSt>NEO9Z&6$px}BFo!W9uIhq`zp>cDwR%6UH5}f zn+CCeF*!69w;xqQLlJaH=jwfy={AL;H3ybO(F>fLH!vFN2zRPEux5Mf0Blh9(2b}J zH&UnC-pIIZBse2#BfbK`-de;UtUeVdF{4Aj zw6+0JRd~YlhTD9BzXnr&3tny5_icx$f9nlnAp8m>?up3nD z()p@PH|voK4ZDL-UL#}msR`KWI~~cAySDa?XtJ9~f@v-D@!T_}#p1H{sGIEzNR`x` zMYQ|333O({BkPXsYtOH_=dHa={lj}h=uR=q|1jL>$`9$?1t|0QHHXD`0!~93Ak)UOir@ODPK}#K z9y8ULx9+#c-b0+jVMY2S4{^dUCN*h!4Cp&TZG&0Q5;f%>B0oXugjds3Jc-X(!-uh) zx8m%G=)g5Gc3gxi{2i7MKdod~5G{+3g&1jg-zusc6xc=3xEoU|YiMwa zY48OEm;-P&04RizWTMU3K{Bhq#wk55bV1ct7%3nxfy}+K*LSR9xCT&^rc9nj8O$KP zn3O50YP7n2B8UJ85m4gzun%GV7>BV@9=)l>6#ihoL6CK1wG$Z6G2h0^vI*OqI1v| zi1;B8jt+_qz~EEQdfUUL(5SB#(wWDM7;LCu?MrQw_E-Xk-T+ zBr%Ng!?GT)Y%n#4`AmhI8zW72sIq&3!C%0^g7)Px$beR0KETRBNSE*{dz4I5FFb72 z4tPfXsu=b|2{FShFrjOgulAgIv_2-Nohl^~QRM(PNf6)2|jk;@Gn zqx2ZoF!-n!=q=RuhqS`zl69Eth&gB>I~nJ>`DiwI^nKCXRA|j8(@`0z9Muvs zGy>88jGnLSuN3&N*`J%7;_unHibI&hcQq#BP)JZk1*VZeOKrXcCysP~sMh%(Eq{@= zjtwrFZKTY0!hv9&&%6FY-RrJpY?{T_}<@Jldv1dPyc% ztf8BhkG~*Itbyn5mHf{4$_7F~6;U^(!me@Vyy16pW@B5yp0rCZQ0SRq( z#iQJ)6|q#BB|bnZXd71siKmJVTf$xG3v zIu2yBQ%G3Y?rK;iVUOOG>ODPt!@k5ouIXjTRg>?q7G9! zw{6OdK12s0-5E#0AC^!W&B-M{7onDT=-L8`w>ZF6HxStL>IjK{>T;dLIsovOp}g9r zPI)Mz#k6WHuaJg;=ZI{r@3(>lG%BJJ3eTtz>P0IWba^8ELsMmK==0Np0^f-syYKSa z-+LI{a@TN~e8`pC4{IGJ%_@?2!J!x}R?x8tdd<~HlM!vXqT>@c zDdtNpESL)lY6r8v*r)!imSA_+F#_H{~iCcG_$J)_rMLDsPe zf%-F&rX|L>uG9m%AV2Mq4xYH^gn#lq$GZ+VRxh zEd7qWb%TY#Xg8ZPP5KxTfvu04w%#a(+HC+4Cr~~xDsy4_x%LA+p)#Jjq_yzranHBa z|GLo~;%O+lX@kb!Y`XVN3Yb)m~AFbeM`)DZiW7Ip`1=K42yXXTLa) z2i+JBS9kH;!wW++R)IEwchZ9C#Zw#3${fr4dW|B+TcEvlaY&|$=C8vr$l42&D*{*3 zT~-4Danw==={$Z?#T#c={S^sGh=!?uW9T)MYOJM*N*_~nOVrf^b7pQfU%T_9;^74e zl%Nuh{7J$V`l6h91L8d5J)oWYqa;bq;BYIWF%+8a|9nS=U^FT^^V`RXL4{TBC}D`| z;><6Ljokd?%xJywys2*mUNQk`R`yN*ncHDDk1X|qL2vj!3;Ec55aC4xvQDLcHw3U^ zR*kgd#Hq!ad=Touk;0{C!>HyehRVP8nJcfY#3QWRE3B`m>vZ7j!!?0bKbxy+Q&FyY}nFwsq zKq*;KcV|9e(RWVsO`0O96DH{pZgCy{iu(nGYBURPDx#zoyx=rZ$7JRXKPgyXdEuB8 z#vfv{_<@#nPB?xZfaAhSB;i|Wf>RPlfrWsLpW=l1K|r|m)+@MS4@zVFJ)T2wTjPNm zx<*72HhuWI>G1R`k7lt1vD#Vmhz9+|Z{0jC8y0V*3+F5{2D+1kR~O6v(_0_j{=2kK z1{c<=TOXH2xc}-#u;;>u5M&c!5IbW+LK3z)W0VKWz4GGW$8QTj$Y41onFBlfDu3!_ zIUsol+|IPuCgWa%ro7ihJev1CTpW^sUU(L_qjza&n7tC2f*NBZ5}Aq_86rx=GW9o2 z0lY|bWk|MIZH;j;!tA+AQ25glhfO#n)Rr>?c}NUGYnn`D>f<@=6) z#Rq)ykMj7uF&O?QJ?;|l6Wgf-?h)w-eR~gk@$Y{0X-?c`0I5)`zA0{MSttQh;DLb7^k;ckr^pe z9qc1glsvtFe6Mu!Apj##4<-4`@7Ypkm>_vva})Y5S4Al+TRooBJpobp>2ui;EXEzY zu&-fUo}@AoUA=`;5H(~iHA5^qI3*EXq83zK@rO(xe;IA&2p=+dF{=AJF_Y0!r87{zT#Xi1p1Qz4+dw$aBdeY- zx8g5V&UUN|NZdApr~F6H(p96lRD)fUxb3w{Q@m%pL!OkWBWY~{H(k%Wr84&x9VPA& zEliXDt+&C$q~pVEsJZLNQ*kxAbt(TnycXgxhgCBEDL=p~h1gq~@;s(Akq2zYowiAS zD_VNk+U50|a40o-58eLWVoul(VDc5uN$ zw%>?v|8(?<-tViswV!7|j_Y4nu@3rnz-71Z`|1pL0+6R`KN|0fzb~zU*qdh?M=!d$ z*V4wnayJ?Z#0^02P|&G~65VzZMBm1eMSz2(iZcH>@l_{`%nr1G+%+`boXOHLRMz^7 zZ;VzvLN-g|&nT@7A|{w>NccA+c@K3ka|BKZKP=&RNGmXcj+;YN$3)z{`bgjBCLP^M zPF(%_cpFx4UE;6y(c~Wf6*t2vY0+i;eL^7ZGZxHH(`o&%PiOlA%UJSXZh5I@1CrOV zUI!~h9;6^7u3R?g-_VHTpG|9ZuBdnRJF|ZsW0|@_if-~s6iB8~Ih{8=za*1-7yEXt zOrH!sufS(TBE|X6+s~_d4Rd(j!^K`5s?V{!u~)w<8*Z;{8Ga6pWsho8dqy1yo2i*k z)DO~=`=4&*EqnUIz2!>-U0|U)^h+A$`;iIWLiq{3R+Em*iGvViu%K%m^gMq8ks?HQ zO%6<@!IPmylu=W(o@60)ajaCmg0jp)#>|bnp0lOLx|H@4HAaN1$styWeqx_g^k#SC z;8?!{48xrlB7#>A`o5ucfQX*UPq6cI>VU^SE)Pb86>a-^R zIweJD8g8M4$_{X4b0Z(;dMUy;?gaM*CpBKrZSaeKx!itPST^zd3S_F;^RAvK5C4<6 zp7~ECN?KjMz=~`yi0fz^eoV@34=;+duxmNLE(iz<{zQ)SCTrB3&L21Q;R6JsNXy<9 z7$E$Mo@xv#juZw9JE!6b0<)Ts9thZ5kDRVDP0pvgvaLQ0}+p^C7SqTJH~)a)ZG zO8IlM#IW+2;It65K4%OAVP!s@LL3RwQ_3j_bel%tdwX+qVn`Oy6hQ)6gh6R0wQx)h z$-k-nk*?3>QP8z1Q5D;fuaW7??GBzV{VRJ8tFSTU(^SR=+&Rj|LIN`0D)Rbhb*Wk$=!S{27$;5Njw2qpxnOKf1C-Pxs3V=*hhs1+$vMQu_COfKIs zvh2e-s=o#~)Wr_+L<#>0wyK*CXtCcRfjt|jE`$921^@8?f1rkHk3C^iH<;}cFSi*L z)->{X7ev4Ul`Iw&JuV$Cvs6NtJUHHZ`Ye$lBc_6p++qXu#bq)pb^)*#9>$M_Bk(x+ z)FYJifY7Afk*PHi+dCy@HcfL-gHfX~{HAGthS`STo|~4fx+3ZWZk{#$d#XmZ?$@vN zJZr1WM zOyQ>;BA5hWw0U^4V%8}eBOX$4#{|uw3&giwHp~pJYqXeSVEUxtCL@zo!I?EhxKx(b zh9#D@P8j#X6(FKeC|Mk)xk2am%M2gY5VN93a!*6B)P-alJQi~%^4*0=`wx$yJzoF) zUv*XpKOdjZGHkacfy++T@7N1#nl()?(m)%5Dh{Wrqa?{+j_kY)SG(F#koHX#aPshq z%a2vWb)s`Lo=rN4u@)hF%7|9;zH*+miETk(80NZ)5X_dIDV_=qm*U{)#3)gy_D;ek zplH4bqkmDk6~zJS@mANA&QWdEeM-l$@jK@IXjLQ&U&sV5wg8n&R;KCaTYcDh+VDK5 zBQWT(^vkY7QRLKNK4kK+&QT%g*&u&zTmZeo`U?d8U?$`hEORo9lQZ59O;4J&_?XUt z0+a&5M)!N%%~vkA`X^R=TWT3GX?fhL<=^sKf8Q>Kuk|Hilbz&dwGomfrEqUk!wS#} zl$1SXwKt>C4CR@y?vP?4!!f_ zkq=qj{v@<0WU+*))C<5joPK+Pp9Xsof_=vuim%uz5T-~MT-WqIj>rqQm##0~W445| z9)5|(-Q7FVZrHBMkDd9z$iNDzG+fM}GhFfG3OM!v_iu*N`pfq;?bBtavggk3#(ye8 z2N`0myF+fiSG?PLp3cU7VwU4%00t`2w)uW)u2oyvsh%RZSs~62eP4^?7WsC*y%Ll; zXjByTSc{St`#1Cly@~&ZrK**eo|5+Gw7s)c2Z``527?YIzAr-%LgV^-T9b(1yvC8< zAdJBerk+Ut7S^{?L2mu#NWy4`tzc0gori@7 zWOTNq!kuHWd{2?dkM3(6@D@YCVWdOO#7{Y2smddML2xX8>W`Ly%tKyp`L2a``mO)V zHjmBWK;Kgb;LXFQ&N;A(mmFCb!uq~<+ZcP9ZNIrtsDoN_$H&}TRCDa0qIkHqGurR5 zdPuP8L7<|ip?fKTq1%){4cpbH+lU<|8UwmKy(K~n%N=k8LgXE(50)RRGgmX>J|Jwx zDrgWhDMf#JX9e_`F~m#>9pbwOgu?ZciF40p%=&3bOjax3?unsX)=b zCI1@J2-lq{dQqsOgT`xY@;5#vednwVfX3Tz%Xd^XH03o<&95U+;g4QIwM58Juu$C# ziglE;QO9f~aPGOo1G;Pn|L4JLXBD>%?fC>0@VU`B1pY9odSM{p;H#F#+KJ#uzA2Y^ z(}k->WsFTzKhW=TZ=+1;vcB9xyFzK@=5qCIPR);d=T2l#GX;taKmx1-(luv8&)Mpb zP?pB~NW_Cj;hUxQv~T3oB+RiE@q7fXQ5rf zz|!_nS!H}xW&T=9me;)Ld#(@}Y3<{GG31~)VI;S>z8hiVk2f%D_nldH*)}%Y_<|0k z@QVg;+r>i4p$8aVZ-QzeOx_H6zPsvA)jf2iR-uQCrn~T8Q55sj%pc#fx(8?bBNsX1 zN=%~}iqN9u8b%>Dfe{Mm4y+}%GGH>;B{+Zl=`(te#=8Yq274F2rx0!``cmX~+DXt% z#YuhE%>OGGu+2z4A&MWjdHt>ZK$i*P9x;52oU2|#uwj4bQOl4wo zPzg%g0q?nTg5y)_j!dYLTP-MzDP6}N#1PxDwh2l$vL}C6&kv?M8#T8N3otDS$aJpe!%QT_ptvT*E+U)~s>mg6q+LtJe@OUiuK1>9Tz~a#LJWr3X$Py- zq@d7%uw*Gn6yg1PVgMNz6G`-mTg7%Pu@?Ejm?5oQ!>mK;m6x#|Z=64EuHLy^e+fmj z1&6gRF}@WBXULxn>6>c{Ef%t{$G#^I(PRe-k)#zG7trWWd0xHNjD0^R3mgWdLTL9RAp6qzpUAF)TsUDbs?UFV-XH(# zP%2jiAAs*3ab=)_EI@}o!6d?cT$|B@Z?x@#sMRC96)@;*Hr1rHZ})N-%Wg>ttmQ-n zx<{M)WYh@K63v#QV+G5&0@Xi>Zs03LoucrTjge3rFBF?7Gi=PO6EAYMsaDxS{ZuG= zCo#!v(k7c&AV!viYPmp8HtagODQ0EFVQq_TudqYyX;iHwtM5FB)mSrJZ5Bz7wpkAV zHVpe|JOsx1GI_2xI~Lfm+rMogBGE+U+XZER!SXYdyN>Q?9ZJ6yL<`tDVeIt>mcVoU z_=baiq5e6}DCO>y@{fDC$-MYS>5TK6B+eZ-yF@NED=F&cT@luqtneb<}(%Pr$*^VXgK$D7K)7! zq3209A@4eDm^zrk%(`MkN((C++U@{y4>5=v%5cKlVYMHDg~YY%$9ER=HK( z9Zu|P6zr^}fVQ6-lf?lf*j3Z3*sXUxc4`k3{lXla1Wu$43;~;9*fBHNt3s~P6Ici?)g>eN; zy(>^U>YbC3;eYTNY4Z|+WLYXfHwkW~uF44OFGG-+mGpPzi7RGG)R)kg=(NZbPU^E$ zRLFHSkr%CYwT|4Ull)#rgPMXKi{i*gv8N55w(i?YqLSp|o(CT$`L)dAFa@(oh|B{~ zWfv|QzEq?$rhX)QsT-II%AB#F+A@$(1;%S1yzw8k$Xj5o2=*Gu@6zNeFl#6pE*r)3 z;%HaPIfHH7$W?e_tKQOGEm_(0lfu}vSy!v#M0*~pK^JH*$}4^g^~7@V+S98N$+j}? zXi-M?9(?qsJ65f7NS0R!Cf&@QnB zH>GPKEs~V^b@uRm89D7t(~6sID}+vc;fv|npS6Wnj1R~HiDdr{IbaWVsmpc-J&Mna zWli$DAY^!eTYMa4;H|l{2N<@bYyu*po2{LVS)0b5|5U*I@?iM&;{qboKDJNj;i-1} zA6rsCZJ4%qVfJ?LCK>0r}?^y_cC*K*drSXwcM;mj&ddwqf6>Zd!YKJ zfSn9g?Ev@kR?H5JdTblCoHZz)idCUB+8bTwC}MzHg1s~lGIZRQB((z2Mh8uTI~l?! z@%nt3>MDbRmsl;h))lY(9v{2|t+oguoK;&;|6T=R8xxa>9p4TImyvy)r=AdB@=Jtr zo3!Ym{XX8;-fRa-o?%oBTd$VVk-c8_EKit3WE+&t$VWy|O@7G-l4sH5cs?A_0?%+J z^0_j2D6)SuFv+3P85=xjBqlCt$lVP1m0)cC?9um*>;h-uwH#8fURIxrtaXocQiuck z?PgK#9=0b$z>pT9P<4t`kk8DZC7D@O^>M)gxCl00HMM6xnj-!h{|SPDwU>fXx7*MZgzD(U1>WWYD{`9a8_ zLaI!$m+@sQh(}pAUvO8MyoFCbau}_hzAWvVo4;ZYlr0(JW*}muzW2W)o-J?v_~NQ{ zKFPoNQ&5xD9Qb-Mw76${qZ6rWYjLYaZNxdY(UUw|xO%8A)Cb8iP2jpn^&Rn^ynwp$ zX?bF~j0rShHsW9o1ToJL1*N#+$r$~~Z9d3f)zWSFvYlK|4qtVG=IJ@L2|hcwYRCLD zo9gX~B5#l?XBqp5F~2Nw^=Tjm75baWrta>F3sYHGGv$bQt_a`8nHSDCuG5|62aJby z3HPhRP8^e)0v2P%krK-n+SW4VfShf?iSJ~eSg#y-no1?Yr_PPO;iE2 z=Rk$cn&q)ag|}u2yp>MF1Mjz4EHkLD_PgcQWvzOLBtk@0WxA8cRd_&RQ-4_3mWku^ z=94tH34!He*n&G35feb@ed&MX&aopff>28`f^T6xg2`>KX2p&a8)CHm#)4$Mq(7^=u#0CF8k&{Rr4- zh`C|q_^tll_|6aj&yP!v{zD16;b#`4C5$8nSFj)?h;0d?i>vEGsU>BLebUiY z-2t{#e)|YESPr5r%052nI!QR#Hg;{FKmaozIfZjxY*)iof+vBim+9en)0PAzn`)MN zK%s!Ko|IO`E++I&I-I52j};utlEJ-EBFog5;xKXXDhdY^Ht_@nKkm!qN@-Y#r6588V(`NgvlwvmS|M!XP-q}W z9+*;)0T~afTz|%>%NTBX+r(mSuz3PA;aKg9iZ7|4m9spX)*U_^{<(TQdbN6d&KV4I z?E$A{EIB78vUFbG2t};Dh0!YJ74QCIyZx*?LadUM?;nGnizMuy`KNo`SuMPOdZ!Ql8s&}1V zK?RcP9W>lW6jW9{-^aGUF4?-)!~2L!1LNz8f&U}v8W<|=x^|sx z+qN~?uF2+9Crq}DNs~F*wvEa5$+j_BU(fsfgnjRQuM7KHd)>#M8AGG~ZDqlz?F6aR zbuUSyG?KzJs#sSaI3y$qtwvJ4$p>!&?7JJfkus{ZNXYS`?;F5>K^acWUfJ*MFS%&! z$wMpI+hyS~;dwK#g#cKo8zN@dQMbB~D}luvz5lsx@^&R!ymzTy6Vsy(X6GfDoFZL2*kv-W*#a-Mu74E$ z@n35Lgw|9TRt;Ao4PLyc_XA9@tu!hlgSXHU&VUC2gXOrq_%TA7$9X`aRNJ(Pa9Ay} zi8z+7g%vdep5hwz@yHNyth0M5JT+M&fH7cnximpllOyx4pJ9DTXdc}UaTh@!x|hu) z4j^_Zf$1%xAp#Uh-u%tCBY-vGyY^ZmEsLe_XW8*#{`Gb-Z+pDar0*)pVaz)E{%M+D z>-vjfY^J%r_8YynzZpRUQjH@upD_dS1erh}yYYMNzy2RwB8}Sy2!guUhyyHbo>4j9#0_=kK(}lK zF*;C{RAFP346jn)0Q)s?Oplb^JMQs0#kp^^y5U8(iZ;KKLkLrI>n`a$LLW>#nF13- zZOG>hNdzfOg#52&OH%!oWT#h&<9#y?e`|YLNOki`X^{C>r`=`@7AGM!*JDb>kr=}` z6$f`XC{{DGauW6RDG+TOs!GM3b+1nlFa>rkSPh!T4F8wxs_4S|k{oXpPhM|1c#V|U zPQ|4|@uyVE;M&y$l+2^Ta9gI6%=krr&LENpK7_p9X776jP3EWq%vjaVD&IigKc0wB zM{A>@TE@6v1E9!OAEo`)dNA@0{3MZsWNrn0O!;aCt@BBa-9qTWW+v)LBV}i%nV_&r zwRWeJ3z;CON`;jsjA{QYr*iI-p`fXJ-!+Wok;=**3po(h#w*kOnYrD!zyEV;E!-Wc z*$l1ALoGqG5bn9VcWe_7u0fUGOqxKOc3l&b{ATPvU^TY34lz^*~u1TW^3-6-?mm)7U=S$mVMq1?h6)P8MFKa^{hM2iYf{?Ud|Ht}7 zm{=enx(^O-WY5S3ywHig_Gwv9%C84-hWt;xb-QeQM5^j02yv=Ti3G6zq(Xs4I@662 zFnxjPp=;wS%Ny^)h@_rT0d60Sp_OHWtdHufLT$vXLz*Le> zw2cfL3LX~vRd8N&_k@TGRtS#?>iIYRKin~Isyy{g`s|Qb^x$gP6mD-L*3^T`f|SD5 zg(9BSAqH6@MP z5E)P9O<-Du!**$y!oy_IM;7Y{FDUnz4}^#J|Yl#lzJN&`0x8_L;?cZ(4uZOwN!KZ)2J-?zQuoRzg=R46pEB z-JMlMv*anosHz+JN87+c^Mg>gwJ_wq6R`-K6?nE%?%;FFSdedu-RpZ8-mA9eqoxxc zTf3;e zZk)K{Ef$r3S12>udU${Zry<7RQ9Km#J-2{?(Gma&(!S2~2s*B;$JFysw%*K=ha!G* z4ONdrIm!pw|4OFLg=6)R_3fwjo-G6dhl+qK?Zpby;nciDZD|fGyW-%x< zUoD|!UqiU2Y2o`38gWHGnf2YvWf_1JuUcFl=O|c{)o3dXn)L#I@saqWbLv?qyImOi zyyt_PV~*4dI&c0;JkH>_PY3o#48y-vkzjvi;-$Der$HuY-yBo<-_%C24wm(yxl|wQ z6SZ)_zmHvx;4;)M1kis5+4V{KceUF7*x(_00Z{r`|wl~`4e4_wg``XN_W#wK9iiCnJX20b&g+v5gdG+I=IW4 z+#}*JEXU`!kQ~*u30}#5nmT^XV1cMupVnYp($$SvWotRf5qY4FR!J5bgWy5xT+W+= zMMon6M9B11b)qi9OytrBkTv5si#V*8tx%OnPg`=N9VY24rPQr<=|r&QS>@5U!ei2d zOKM9iOPH#iXzm;>`xwz^qx_xS*9@OfM0oC=)(Z3Qw#{{>+K@|ybnJp~r!D?Wzyrh$({{gV5Vb}x4R^Fi$=!&aam{Ta9SuGBr%_< zv_s)LsdWs2VIn~hss1!KFUxs(Li&*oY$AV=3GnyvPZb8P)h{sbO>z z{G#?Ia+(r_Kr68lU0-FE?tKOnS2e3DArD$V`@Bo6>F=e1#k6WL=tqgSby%?! zG3+VDEHE_GKTOhpyE0yM^+B<--tuZrFWrl-#@k~uPKAD4W+{u-eKhUN;TeBFYUcSt zbJuK)uH>}cX+&0X`l(<1_60D?Y6#zm7cgU?etrY3zl_WYbsp4Zi!!C(7qWl{EBwKV z!ve=sXmUwnPqX|wuTUlt6;prN0R~^FYCIrb6p#z zZ}q8%awypoFB%{J@w0VvlI~P{rT5P#m+rxFSJtW8rV7hZJL22m$~y(!JFbLm{Sx}} zkI##)@hjUEN8*RYHs6ez;zc9|NFEFA%v z5e1uGh{S+EGjrbB5|ulY@WnCKudK;-NQzk+Q@Cow>w{pj^Fw*fX+;z0d1LL$+x|-O zLGb8&SXZOz^hTqq>9IxwmC&{RlE8@Og)H@t(4cY0yacTsLU@5wIOHNEq$NsQr7ymX zHl*U-quyi{6Zk);XHB{jpo{ay32q-N?*1AfJ85QWp9};ao^rD%Qo2Fq;(5Dm;D*Hq zEIYi$)O0t7>%;fqx|nmXUf|J`mS~&4X{F)uCPeDZ_Yz37emxCtT>=@lmj}E!6<4I@ zlH}gu+na&&S$uy0D>|pEV<|V*m26&1Z1y)Y$M2kx5cHvUD4aT{<^Hn8zXQXJX#;aYdfVK9x(l+Q+!z&RVoZf|LEr?oY=je* zws%+K$eA&DKy|X7c|L`EAUv`pEN$JL&y?fyTt>O2X}p3%bjk5S8}My)Hhaa*tApN$ z;kBn(QX${Hbi^zT0DQ6DVu5;mqG1C*++`T0=3d-&iT#QV^;KLS+A4^`LDLRlv9QSo zk5Y{Fbk}`|@YDcuh)!YD!-x?>P0c3)CRVhIm%2}gi2|rNe#Gb zfi^uuGrgfD&>a$Dzgl*0C2$YofANL2GZMP?+tF@aW*|?m&F2_?*jEuroT(@x$dKc& z`ihu_I!!-k8rw+uaP;1dE!cXWEp&G_QaHSRk5k4;P8gm_J_iY^bb$NHigphRN4~mf zYnh-cuj|zCt4x zePZvjxQ-9QH7mt$w1Jv;8Ie@}d%aGxQ43V8eR3>Qsh0Q?3L|pLzBPMw7asr`A?5GM zvDRjxFf!JFuRa}j<49^iBNkewDQ5Mtv!^;(j9a5c$A;A>x5Y+nIbSnyXBiAMzSA|f zPTvAYNI6Ro+opF3wKn)?w1;U+Y1_$QjUr9~+2|X6dz$?L7kcU>1EZw=askqqNykwL z;@Dm$2R$PAX&Y>%Tx64t0mlz_`}deDrbHrZJTZkN6@~q2M*+H;58b9dsCY?K4)bMo zNa)riiBLi)L~%$enTk_rpq7f>-hS@SkQZI|-Lf_p3;?0ij(e(i^G!|PC%#CN02eom z+e&UZd{a`s*#Tj*6RynQjD0s4t!#max?PH?ww|G*ae{sAVTWSUc{jzTTRAr`b>3!W zBNNI~9n7|+w0HBG!2`)hHxtGDQHI8DI@Sqqe`8LVWP%BrKl_T6EFC*)?6^(!fY%j$ zMEQ*l6O&(yHoHe}`APBldxFGGb46niVa{${Sm%r$H%O273t&CHIJ5;aWIIcJ=%wE%slcr z9`ITbLS%XuQ4Pp87HYw`f@1;rkR^(i7o$+-+lo3rlml2t6!-D)I>+c|YrJuFH!845 z{|fLp39Euca#I*{d;2xhze#I>*X)Z;MEW-t5M8X;xUcwYvhG=`6OI4+h7s=&U=dar z$sxGeB1au2Owh5u$FrX(*tl#(L(ME{<8i7$&820U-1ogIzqh2ju_l@(x&umT7k^yo zu~|Q!VEk7mEUy@9Q$XN{YQ{x4ov5Wfp-CIym1ws^vDLI)J+yMU4E|BQVMg zS+GNKC{ZSz^KT~FcoLOAmM~cdop{_D0tv2z^}M8p03&PEeyv^zR;jwfKsc)im1)GU zcivN$J@DtC%rHMDN-itga2}|<=)vu_za-11<)VMvdOmpC$E#gNEgwgWF8xb?_TKL? zYC!4~kBZ4%Mkr&OphVuJ!>v&1!J}?(H?ZveuiUO(*87_tW91~WfuHKFu{W+XzVUOh ze3mU<5r)@I9!9TG8K&y)wpOV6zC**B^Z0@ANsMHp(DonkqFZ*^{ zvZ+`JgYy?{#?*8}pk0fbRspY}r+u|>$Sy>-|2uS}iUwHPeP1Q9>&#CF4F>uVwNkdE z-_j!G`r?0n+J=K}?O4-j6rY_)^Hs?`CNUZvtbE&nsn^RM%FRA=w3C|_#(&amDI#vB$!5f0`FCqFvJ zYqMe~R3-iVIS6>(c~p6pfAwG6Z#iw(vG(ydCz@gUo-}P-W9g;5kcMA05S}%$!WU8n zDC2I2FZwMd>eXT*@qF~Dl$Qq%pWglVHPDc`OQ1L&oA2-X8Y<|7xO$%jX3OV-ckkHk z3T`REIZUhuEFK(<3JW=4m#-|OvPlopMM+K;1G-VRZ{paTAy_?>4A1mBd9I!+Pn>q- zo>XT3qhR2IP9S2hS|fTyB$PEKOHOU^Op_`$J)8YKHx?dyG1BKTK#iL?@nrr(b{t+2 z78Me1uoyrZ?zFTyDmHGop@V~dv^9%Jx7#&R>efdMQ$@gX&6WL^=+Q&))-s4{&#o%K z%)Kh%u+C^;$m`Fmv(dope?_e!OZblc>i}fa@s!umf0wMk&k*R(WzSG6Q=Xi|2PRFH|JKFqGXh{uX{$59 z3K)$6*b?w-q!w_IRH3WtEo|EY+(YbgXizHL`Q!zgm;4q7VS5;fzYYFOltP52yGZQ7 z^oqdEC3@Z#Z3hKX^_Ss@F}z=&^3hO7%>}nWYK-(sP9*A7pV-vDVP+vOn!trytC@19 zB*BA#&va6yd%c*HWVW4K!dUaNFeVChL0;y41hwO1kXWN@TTn8qvX$|MP}F-_EBtFC z-WC}wTW3@)cFalsh^F%Jq6&fAhXbJIjm650JO(ZZkMW!Yy=4qIlGx}`}g2sQUS70Llo zPb=3@>cjGEZNK{n0mghI;#0V<2h?NmZ+F_%v3;b#W$JZhFURkg1mcIc-=})0vhm+z zN%#(Ks6KQx;p2^uIan$b2`|1Xei;7a(|WzXgu_JU{CupL+f+EAP&}LKnIXD>8{S8V zKQpl=ukw@n*$s`=q_s3-1Xak+`&>mlH?svMtTACAV-Lh1<@N#f75Tw~h}?>L|NU-e z@xh(5q7ndhx>YDC{a)%nd`*?mmbgkVtwJMIoYz_tQjmkd5Pj*q7jhh1Ph4qrnBLcu zfWOZkD3&2xjkl?l9ami9A5fo%G2IQW9De0_Dw(F8))CkLl|zozZ10`#uS!P40l?&CHln6P^Tka8GSCu3oMc=q z7)n=?Y_!+4L&gbeL*hEYp=pDU&@&ZVWhl$EXq-Qh^80J+<}CUN?M-lQuzXAO)p|}- z#Bq}B4Z5PN*Q;L#q$P%r zP>kLuv_ST~+MC;UYc=pKJbr=Kkuzu%g#iI#y{&5AB4snM zM4ShSI@!Z!flmYV(_SfC zKu)!!WYS5!zWf=jXf#-6shKB|cPpK>1Hk}f84ZdyWXYTE3QWZ?+ClREg`W_fa@*9A zBoG=a6yQ=1>CpYw5`A=9({=)nlAJ}ER{vJ}@WWdVV}eLoWjY|)lmSV&eRmDYA=>uq zJqGXVI2*C_ytXBL?P5P}X?Jd?D z8I`dysmrTcdN$y`(AfZh%QopC&mSUki&`CxZh)VX7*C43C@`^zG>=9eb zlfCY%)KmOH%Rhh(NtSu>7iKeOkJ%u}|>=NyV5ly{y$ ziI(H*SrJrRN*ZTQFN+8Z`PdD@Bus-H8b)AUjpK|p(Yk_zQHxTAq#1*y$@fu!Wmo*P z#l+5GNj=V`vWJ%(LjIEl`eR<7%>dw{m>OOZsFtq2LqV31b^^>M3;)Q=2k4KD%Mh{f`S;>pcsv z8aycBXlzPB^gk#SOQ(RV_!!=~Z9JMqT19J2;hvzU4Hrbj8@3f(AwxQ4b(5=;!1Ku_27mkU(%^O-37iR+$mbAGrLj9-;rnC0_Glj$Fkn7~BwVWrO-5U-H z6V}ZR}q|;j6aA|3}FtD+a7IP z*l&}H`EiR_SUDOj4@K{hBH$#Lg$RdH$!P|S*n-!K2>+E#7@`4X7xt)R;i?`;3BZ%4 zqD$d1@I4??mb1snlj8}%3`{CfJdo!=Ev>Sv+@c(88DGFf|AY(4ZKkl6tFsr2`+AAV zm86W^wntpBW1N9b7+jukx-LKdHbxbV_@m9J%W?5PB2?0pW%M*23;ax;kZ>yM+Z_Lt zHdYz*=IX1j{NRs3-#1%o#kS(6Eymt;qZ$i4Y5ChY3ICa+l0fNIzFp3IyMn>^GzGA0Rdn-!p9?Ohzm+&W z=l1z4w(sE)U`5~wYuCz1X)F+27EeORXM0YyGd-VnYj*x8Z)U3rz*dNdKh~Un1cu3l z?60o#D)UC$NWFV)5e-Mf z9Qy;5$Hr&JPbP=S5h*)#ClsvI@e$8Do-0}gcOdr6e8Xe{Lz-ZUh0YP1albT0`0x!EfW@mo4z6G2;_u&w+DI`fQhii>^vjTIiiQ+-C$ z?9l>NL zpX70gHj;y+&xDrs9}4V0`UvTHFLzVvW5+YG-AS6XA0m1c-aWbH(S;eQ_Gd>%4Z{I^;qEAPi6zXQP);db|^zjjywU2pf0 zfOVj+uZjWk))K=`@n)tY5`bJef*9;QMZT&nr~J;OHWHlmMQSg*rBJjxO=$4QjEZ4+ z)A#COIADJUz$OdwE3fy#`My)^sYoe5@Vl+;IY!o9NJIJEBF^4&yfxc2&h%z0{G;SU zpfoDv5pC4zv6KgDwsJ`&7HXuuo#uDF4QgB;>&Hu?^Zed6Y4G`|DuYQ%L#L_k565Jf z1dnMrY>A(DQVMVnGuv0k+doRbuYK<=Qz(Q72VeUICh%*tdc}ZhVC`xZn2=!|T*bkh%E(Ltib0zP!?9WdH0l-t*Lu@-=iUU>1RYgQorrsyppEj+YCKSXG zUo|#nLCcq;Sw;DOgsfGl(YU`VpX9JwhyE=ehL-9jwl|EEh~Ups3APTb>?8-mZwu0` zUGg%?kr#K2*4QHC-Z+K&AR?-2FWEin*pRV7qsknX!pc3AhJw{1^g1%lCR)f+WJ3lf zU8v+EnC%9Eg(VD}VQ6qwPGvwcuK-Y>`S)c8X+5VWy*fis6k7$b(`97q(4{0vQCdIZ zf7xJti`Q|P)H7RL`7s$^TA^G6Jp^XRkI36{UnrSb-iDn7=W@pyUmFgU^vf~P23`u% zLB+Aq%>jd6*2zo9cZ(l^hw+eB6SLZ<&cBKQRuMd}H3N(ul*x{tWyun!hxju=GD2#! zqQePHs%8>cSUx4ar$H(|vz7zsOs8gM$+HE%#{-d=?_hM0_9Sf{??&Xn7cL)e>Ps7r z#tCrmoD!uKv?Uv?h1tK;D)q5obpT98I@8ID}wE z2JnT6RWBW~9(EcqJSyZ)mq^<(j@#~cQIu3Dbxb*L3!l2ha{zC zmH1E*NoZCy4OxKx*=^h_!3Gx!_klSPKoy%*g&iys-39OVS``LdOjs^DBLZyN5oT0~ z4?ieiG;NFs%t^(`J}I!~dg9l&D#hl@EK8%x28`y6qPAV@j&1a}SP+2Z>)6|O2)(oj z&bWu* z7AZAnePNG*GOJ-ZYoA^O@s%LwbVL?da&y$Ir^7oqNJx~{foQ8lJ5u&+sZOP2rSF^C zdm?NlZ$J^Mnpyzq&cb>&;`UsCFJBq3j;Z(cH^n+*EpGfIw-y(Nr_@XdS)%`KtD6ab zPS>zIMKdtUD`?dVLzXfkl;Yrl@=N|8rVFERF>d|v++l*@w?)~h_Igz1?l)qe`>X$5 zjLff8YjmQRe2yS_gUqp_mW|eV_?H{BfS&rt|Mud~TV?Uq2Tzix_fr*0=clyqV-Hu4a#(^Z?AsT8|shUZzhSZmwf#JodN*vt?cXh91%K0;$Yh|2`@a zfH3o+_@aJv6{m_oFboOGg3;h5b8*m`pO^7B+4wT;xobAbY$GY7Dq0O)Vg7u`=F|eu zrzSaiNR!*ZCSmp+Q2(;nN$h7%Oi8fg6J9Q$N>u}cTe@gzF1wKJcsl450^tpc{opSL zO{#gJD5MGvY8LkcHbuqei%KzDw{4~KCK=)=rYZdeq#`cXxq`p>@BF_{IloxV^3Urj zx#uSEe2c+KA}IKjMgAyWBgSTNfY*FCdulR6Yat}bfW7W^^^n?_3`5s#G_t|!6mB<4 z({_3+>YGv<5V-s8+s8%(SbI97AE^8DR004Xy~Q%X25TGkzV-Vx*(Il8?rjCvG3jwaJ=s#EyGq86Y| ztHlkG!p`qsVn{}h3GT8}KVgC)+++w-QS?VbxP2vQ-Y{#oJ>uB@%ai9{onPF1zcu<) zKJOu8{r>K^i!s4h&`(@4TflkQ z7E5NztfOdXAhzOG1Drx;_2aJ~(30(REc=y1rcNOLiYV~+`DzSS+>bhtCddn35_Oqy zA4B;jU^Bn+*q59q*r10GF1bSVY!1{vCDyMYi+bYB=-& zXr^RBm*C{*27Q0|nM4!Cbi6rc)S=z6;W&QKv3^`NmEXae&DiHM}KihxBDL^00jAfN-!#nPa?U`fAH$ zo}gf0!msiW3!6()C?wQO1x@e(!zH3F(I8#dk%>uK#0cz(eSp(}Zckl%9L88-9e{?M zR&E)nJP#&`iU!_Om`z10Q_*ygU}hL)(1y2%e9?OGN+<++egw3pY+8}8%kV|Q!le`=+`_G|p9(TDQ6 zaQ9K&ax7L~!0hncqc)^c>N_NQnDHD*|B2pU*6+f8JkR;V4fgH{KUNbd<^9zhii%zI z9Cd80V=C%&KydViOnJkp&%+&w5w_~vZ*=HlCzmZ)5TTboYG1^s;{^qt8=XP)){!Q& zrmUo7U`V4&+{#b*p+n(9(K9x|l0l+stn?X1r1< zU>?Y>&U8?N(Cxb9rL$c_YA^6BumH8Ti~}_3T>=q_wDisk?hxIZOy4qe>QiDT8B$4G zmqm;zX&jq;!61e`!$`YK+JgEZUcH>uZGQo@FON>}*>?P6&FJoJ`yq!Y&qtHdn;f7m z?{-{6Z-R=Oc2(b^e^`yQoIW7BEAe8j$$y|?Z^l|Z;P$lE_DooUfh+0}V@6MpA6|3_ z$r^8Up!$ANKlfG~lV3{TCkxf78;y4(71R@thMxZ3=A$W$uOCQDZn=F6AlVedfMCy? z6bV)B-XRs!n{D%khlr@w9*VbEWH8avC@^abrcnooX-ap&lU@J1{)qT6JM-xH*{ zav#A-Y@FLjvNM0z^=pA&cv)x#px(ruYsVhZud(6gQ5wcM^&4j4{#IrfXc znjR=MjKdyk>e#|12;<4*H*N)qLaQc5By@Kn^r_2acgz;?a!g=$!7}~bJ)V9_3Pc!j zn9NSbueLDr$A&dM%z!xZ&CSQOgAbkHrT_6$GqVvMufP176D%lKCVuwvFcSqPFhFbi z`?F?1^_ED=v&M%#AEPY*<$R#bpqY!S9aaP>rP?p| zk8%I-|H&S6ZwI&!lA`xV^T`}?-^}Vsl+WTAmOZ3gtYGYIs)(we0bK0SWx#KsNVGx0 z=MhLfGgG|1!`HNLr_erm8a115ozEF1^5-vPP~l}%f5u!9?GdMfr$^wLCNkgIyxnWI zbyrOD@#oXHg2tsn&nH-+=tuKK8NjReE;;+C4KoNUxuNLe&<@5H+ybK2cGLT5R{df8 zyvpykIerU4P-MXrMx$fDz;nUG7N2R5KmO@t#N*QK>P-=lNAQL1H$aTbwcwKWLB8CGF?!->u>YR{jbQ^a_ym0l$-O@6GnXE$`mPrl zwM425ibj-6XkMyl+-~Y9)pPo3?GAm{->r}>S_iVMq%dg^;*K)v)@P5S{waK1HqJWv z^|Ut+YsqY_6mz8>$U<;x7OM8IpbVw|k+=2`pS5_YB$+hFf;n5?sq`nL zrFD7~CfK!rj#>}EOJekoDm+rh0g6)N{ss?kK1eb~N)YS$l+_L>1BE%4JM7QLl2|GC zVE>8Z4~jtw{KB)u`DPl|?w7~6z1q*67=?ZpPF?TQ zF|qj3aXhjRawbCY$ruxYIi*y;50dUUyD5yIzGEg9ISTn2%mhVcxQio$T2LkkfOIn+0WvC zd5=3)_$u%4y6o1ZuyCbLBoYv)w?srU6N2iJ{Z4TGyCPQzkDr-6?^>U5|8pGiE_7e~ zpVCu>v0p9bj^_FJZ?y%Na4ZCeB{doFU{?JaO8Hn%Mt#k&ykR9cp}mKu%h_}Ou+Wf< zjD@zC$pM$f5s%sGhQ?osJI{pq-Vudg<3rRZJ?c14WH$9{GT~ z3!!h_K~!@Fy-2zdrECgDlzkl{%g2kcYwBp0oirNY`Y)b#`U+X9t^8Zw6b#m<3@? zxh*pJ;Y_3m1+Rk>Ye!@_f_uA|gQ ziKaZ-fPQy}x_dGXc=sC4{4tr4<;D=Ig)w0~vS5|g;}&58w^3C-_(|J_T4WmA*foiQ z?t@zlFOu5=U~G9}KwSbs@=_o0;t`qSL0YadFS`-64FCRbGkr6EcYL&5ku7kN z=_k0FabJ8H(yvRW->7rAX%Y&I?54sr6wWn5ZaiZqm!nr2qHV~L5YJD&@dy-w4Wlf_ z&vOXVJ$_y%RNi+^TLib#PSpEsF9iWf#}d-cwNrC0=P{4jzH+_WxIze`9vUGfARx2= zLP5+UiztT~IT;4lnez8+p4wn5j7a)ex@7btgY3_Li@I@IVX?B)#q2SFmg^wqA7aQ$!x}(B%LLy?KRCCC=^1!(xuJYSZVfZ-mwGo-lA{oMP-6=xd9O4Yi##(J zb&^3qf|Rd;yU$tb=gCdbf7b;VKZRcp{13lw%C@It7e734OG_Yeb5F(^ItfR0flo|y zgm8=6x+4V3IrSW>)iP;WoX%|`HR89;_gr98`E2P7!U`?)SPw~k0DRln&sYQB*2lyU z{E?=Qf7{s#)-xmLwuBjStjM6~l<*-wE^1#`PmTC%?lubZ@N0L`^;T>Y*^#=A<3=$= zw0J3jsx_`wrEkMgaolL`jqTCPlmh(bbkIZ=E^pFM`9V#%gspmUWx5(*?Z63{X2nP+RNELdU9pV`wDXH56K#Cgv$ zdKr$*toaX#NbI~{S>DAnSAWEG4k#1}^{v3`cc87QX=UqBF<4`CgRL_RgFKcYe=V@Duc=`vN(#gx5!JeXzVSo@NB*~P-wwN% zwTEp1@COo}f4IS&ni<2s$=~i7`9X_75!arzM>L6a%Q>Z0PHvt-9ZGu(&m55vMpMUd zGxaNj7u7jg*Ul1)w}*xvM?nvKi>aDly&U2g{dMr0RYP;c25H(PEiOr>uSXNWZ|Nb} zO_f`7aDZDR4<;9Hf5QYNYy9F~+ak*EGDk?33VG~TgF-S|P^KEJ2_F5#6Z$J6q3xDCc~QlQ@zf^Yz9pgY@nsNjviqn$+Wa4pH zc$a-jaYQMdXTO0ZMK@lhl9xyo6IixLDxEkN1Qve21zI-4rlv$mB%m?z1DYH_^ zQakp{|6Ogk>-OPvhSUbP{S%)G;A(6y)VJmtQ@$8f9y5k$1w(2(B`g>N^F*mNPEaDW z(IXpbD!DjNs`Er`;&ER6Cw86QX<#)5@?5fTYSGY_(rB{-SI{_ha}@%M`QG4Ovst_(I`Hk=Z_^7Io9?W5VAZG^c8`FM-+x_uc*wZu7k+7g5pG+5$)_`cy;WFpG&Kc4_?U0eDdX|XiPrqa zqbf!8SwoiF!lJ7lHWdp*=f)Nf;H0&*+>K{&wuuCa2exCAOh>(R2bWEoIkH_|rigxy z#&^g+kI2$>eM||WwEUUr%2zVemouZPvO-3`2~+0F$;+%9yJ^`1GQf|LDei1Xux|Kegeu|NMF6U;p}f^%?fR|GLv4_;b2>`_pCF z-!L$X1ya*7>|36Rz9FbvX}n0@jgf^ilzY~oJGC}Um}s3d917{;vFMDa=il>@QM;e8 z>`@H?bqowzTVZc5OP`T259Tm1Bpwj6U5!@>}kUx{dxjD!Q-gB6h(*otKFaldETBm!D3JtJV0>Zih=96e})tv(Ym%8 zENUuE6atBL2Z8ps-fvT?Ig?;~NYvmFH;ZxC=z^R`i&9$-tl@$ZjdKv3<4Jy$dS=Rl zkb(hwR9DR~M|O0=aOh9{XQ>Qq9GruSh{&ug;xJpuJzaH{Eo=W_Tlg~`RSlTsXzpX4 za&kgCTcZD2h4>-w$^0`rtl>qkBN+7YIA=fJ%rfI$09bszXToY%&Bqg@o5FrlzGLG? z?|(}1`NrkHbjQcqqTl8waf9#6Imyn^oshk(^}TP~6`?;AjwsRi%ccR>2x^Zu|85cl zC0&JkiA#@uS21H1@@mlcHrtM!^PXu4IIyW}271fDE=vOtOB&ozYqi+ny((Oskl+FO?o9egDUz#-9qj&zM6|0ot@egAXN#gl=^3P-4Fgl3$ISi>c%tp) zci#G~x`+f=SHv2O>H{B6zAEw-$b(YkG$*)frkgS_Ex6L{1Y(Q@^V;eZ0*!Y%cvQ-R z>6cocX6~Wfv@9hEmjm=n)H5%wzRcF~R4-AkZv>s+Z%D}0Q`qRENU=^>O}4FSWEkI* zgWJ@>-!48+a|l@wz9QS3;vK6|>a*FpuUhm5;<3^-&#(`p3}T=s$NDbC#hD7U_@}0K zYv;;!^pVSME?%OI+V9(G&B(Wa9fGg=#`JoW`s>4&e)ZG1;haLjFcH(iS8l z|5Q`9R?w&=+45wjF6}~*jSHB74`*GW`-~yS?ZvU?6)kyYWF@Als_pLhdj^F-aZFDA z=#%n`D5$iLpaSgKoJ125dqg!h?dp3Nr-`n7FwwdZ>JVFMQIek@-2LclL%UJIN@J}C zDNN{g7~z!ZWql93@mPjQpi802)^fkZ= zj`sz{Onp-oiOPb`cL*~`;<4^M^MIhONH+y3)|+K8l`%nF$~ZEkERXMvTwa-i^|5h5 zSx*mT&4JJw72$381lYF37R7<4BkgO()-$$n#k$yc5mqlyO+RRX*ZKecKA;cOnjfr+{W3QA-0>cUOYT(uT}QEDr5Ke5C@&B zM{)ZibIV1iM>)O~Vs?%(ZSLl34G*YR<;EK=CrYm0l5#@+30ke@gpZ~GnfRszh^42A zQf#3^rQGZ2uJi_Rz2r_82HZwD>->py5)_3jM`s;rwyMXI;;lX~Wm+t`&YZ4|%g(b* z0WuX#6p^Ffq3)*=XPoQ7cHQc$)>Y@{)5paiuIp306b@}g>;5)+5W_Xug;q)ls~03n z2$`KlBm&aa;g#b1;~U6`jzyEMOWGjUe-$v*C7&;PyYxUi&o$2b)!M-Q$G-Un<))$M zt3}J_`GaxQpHld5LAH~T<^cV4HOGyMZV0-OGN95S z)#$;CyLVCRmrpf}QE($N*c6KYHl4zYGpMqj9JY{>4Nw4Y5S-qEgoAGtmxuszN2z5b z3RDWRhH8E3o^9v-iA9=xz-awsZty%}W;SGA4;P#@P}2vItVkn>*#x7qfFCc5H+qKH zaKNUbj0B{8v^#n~t1dx$GR>3=s=|)EQNT4F& z4j4i@G!#v0g|PiPohJ;`mNNcCDyG>e1*WnxU3S(XHH~K{K(cZv6)u&5Af05=MeYIzO^ZL=M_S4C2#XS&#I-Cj&E-ae@E)6aq z(I8F6l92|cYIA`5c&e44%>4E*rB;6r4p_%Po9?Gldj0!rPWRpYbmsXMS*XY?E)>`I zgEaJ|xPVGAE_kfbzBC3_1|I0E!r_-ow+fL&pvOoZsvI1>7tjB(bPW!bc3-#2Zqn4v zlilQQwkO-RyIIrZCfl}cOqlGNY}?lTn)mnp3Hv$w*=Oyw);@d4Nhq;|-5r4E5>>j& z6o0I+`zPw*qI<~34&WT9|@ z!1&mn<=MzsCE^yMfvwnhH=ifhUX!un260&{b*k?NB=4RF`(Y6i``7Pqa6C_0NXD9q z$w6j(Enqk>>}2=Vq@g_+_v0%Rm+F=q*n|IU^tKCt$M=rp1K#TA&bQ(IJhc7%#0NKG zbiH?`Jdq2N^?XJPC2B*zL@~%e{6gq=p#I*A#MDs*YP=@~pZ551LovbR)@CugcGc6f z3@v^~EfQ=%DnKUfNNt1OiwPz(*gfC_6R$T)mF4UlN@K2-DzqDAMZgGEU zWMFczU31EZ+RZwRz;%*n;0`-nSvF39c~0=u#&sD<))ehXl~o{p%0h9phWpI5TwJI- z`nF&LUekZ&NxonrxM#`(gc)Fwc9bn06&8-9^Q-UB?1)D$>7E&#evt)vHw5zZU^m@? zUzjY3C&x3h*1!*=joq>RkCIh9wLJ=Bse@WiSu|{4qYT1z5)T@9J}mzFCM%eBf9&f! z9bz#WEm06+%AhZ#46RaBwMzBm=plqsiuUr7&d?Z`N9Zjb&d9K4%0&&O=JLI?Rvq_z1eYL?VqS(Mg5*qR{gZzfJU}tg#JXMx@JBlIGA3GTeC=kP1Gb zI}FT>Qp#iQjIg(DHrNLOPR9&})~xZYN9ZG|D8A$*gT&vUj1oZK7EJv^nBMWSUeLg> z4@_V}!A*-vE#uAZ*MsB>Q;Lu`bCdQTc)R00I8*UdCppwdRPbrPmBYKetjQtb9$5=; ze~gv=v=g35EG9Ov;vjy^&wf88emq(S+qA@rS+|nKV(U!fQBVXlbjeQRr~$YF4()UX zk-y!iI?#@ZR$Fh{@13H{epn#g{L{{`Up;ltfHeePcoH-ZTRxL05-|z2yDBP4KdVya z&)zG?GOn)ZKnu+^h^8&}d|FKaR4dPQ#|!KkzlEV^Kg$5=_mxL~Hs0?yTWU`U`_{Ly zob)!`f--j?H5O-6Kv0#hEwdXZZZAvGXY0h^YzeWCNJYyd!1g=d7eRgR#wptO`VN9d zaL?Bg_{NIrnfWNjx&4vbaFPzJ8|@j{^?oNZOuS$|ke27mu>9*ExJiM>VaAyyx*@qo7QH_ov#dFwl>*aE2}Ja$y(}oz$4;k1MG<_jQ`;Zb z2G{_*4bArlo%_Y_MfVa~RPXTw3kR}D$Pw*G%oo^}kQfwfzufSt$Eh;CQh%@S>WPi~ zzV?!HEQ>*iJo;Q0R|^-}iScudss@ggbuqq^IwuQm2;W4uF5MzG%l360+~?<2iukIn z^Qq?pC9*Z1?03O+KW^;2&iL&d%;KQFP{~~Myx$@2n4Nhbyd}t>IHqsNajEB6Ly9p3 zTkY{o@HV)0-(Mf_KMat!`@G~g6TP1AMcKQu%_~l?reO^f4_@h1a~L{hCH(0(3wu!; zu*alv)6q_Z!d^b-#j3m_5??>O9wSNroj1{HH+KUNEO7sV$w?;_arB8q_DQ#r`D|a5 z7F#d<&BoLw=2{cV6Utvmu}+O;D2SFuEu7w|Nh?4j&w0kg;>3&Ro$`s}cTxjnB43IX z#h2hZXlMU`3aD?X@kJu>1l4D^_kJxue)t_cfZxDY#R6~Ljvs}DLaTpThM(Hq_Oc${7&7pjKX8Z{3o641+HHR34U0v`_Y4d4rjN0JLtvE` zLaHedAM=LIjQI|T_a;aw!)`-jKX*|j(6>Kb8P-|ph4A-L-8Ca-G+Quf{8R{#{)7Z9 z$Ky;>-&yPup2k{#qr{jWf$vDZQ$Q8l?J`nNJVp=urD6u4r{O^5M^6o>}o1mh#_S7h<~ zpF~3P3-46YBt4Go{IUAVk9Z5ltCYoGOs27mVD?wyHQQY2rY<~MlwnVN383UU8bLBx#mxE`cjOonxfNR9cn`mwt)8Y}8LT-#^YFB& zeZ+Koy^)Ud?XsTOz8g)!p#iO3H{k8gWghLr#md!vDU)miR%gogGwnhQdGqVIj}9|q ztd{)iN(DD!FY_7d(dM_6UR?I?6`q6Ul^ws4mAbdBj~lpebdZkcR_LqTC%JnVlOx{q zQI_mDRq1Pj0~xbRNm767E2eYh{Q}0Qq%PxkcX2gV`bM<5!4{gkhQr8 zV7>qLg&|XY zWBBv0t9fq{>J-bC^2s3MCB?#SYvAH}i|3zmysf8trf30!yH%XG*QM%3_RDO67bIT4 zMX+sGHvG#Z*7hG4sIY1+C=4Lue|t2B)p5Q9Q}Vl8 zej3--8?^0;YyJIZ2PmFF=WV~1NY(R`@ZK(N6;ji$45E-3E5F^@R523`fq~s;8iPD+d4HIged18~a^34-Xw0+~@v3IM6*eb(9%&gA5S$YPdpw2Hz!!24k z`#E=rcQ1O?`&Dw(`85vmDKx=kTT1{Nhg-MRlvt-HHuo{XrWbR66RdVAM1@@ zhY#qISiH^-puYGWpJw0xef65A>;L=4dD>0x!rd8+e+D|~Z@<`vTff8ik4h6Efy$Xd zrT{U6qHi(?+p01QG~WLJ?L`AOw|P_)Q800t_>lBD<>GMaeS3hWroXT>ZN&wKe+`Dc6s<*GO?Yslr8ep-8Ut$NYUyIYu-o&EFan1 z&mXK`zo#?<;pv}q+?+?kZUZ+XUwLMbY~HeD-<`f@77iiKp@<#3O?~a)^i(E!#g$T zuJLn?EFOK|@OZ4h*cNA9oo+IPs8c|_gKwaptJkcb(Zl)Z(z3e9&DIfFzwDpn@u4LxE-ZIOP&46%$=6i(BxY_pKBiaKKhZw8sR8%B zqrF@-@a5irtf0$h+MovOuZ$xK-d_74i*wW%Cek>3UCtdf!JLsbs)htq``u#Y=*_|s zmPDE|eZHExLhesgmwB3aZZu}2ic@aW!H9Z1Hy&H}BdKbkLZ$EwcH?%fxa3}*C`t;C z5()MgGgoZkR-|P`H^rCAaCUb>(-h1lxB6>LP4yyT`mtN8(C~S8taEmt75GQrk6@b? zPo5=tucAF42obrCau@V@A#yBEQUQp)wT%m>1mZw$P;sx6$Vy1fagB0CX`3r{ZLE;zbZ9P+N9I^-u z?RMfLQrR$LG@8jdYO!#7&3RQR5mdZAd|BLigAwOzAE`QO9LV>7+47(e%Y*j&q z**}@+;7nYMhvRn=eu!s}wcK`0%Ap!UZRG&{6w>d`mC;@VPW9b+PQf&F;E?xA{hcUR zDhT&~LY?rawGCMqmN#>7S zB;dG2zRj=BiTLc$&a&$l0+qpsh zu;vk{xfobglH!x*4s%!*O;=$Ku1U3IGbUoglRgZa06EDVnsn5~K9(yjndeE%#dGGW zms*$onubni7qTIFVSpy4_&X55syzk9Q!*rDU9~kweaUx|Pw@x@) zW?}OiFg(GCyW{-x9T6I+E0N1X2LyRM_QLf<(=*wN9%f7(7rR6{1Ujj!($jJ=U5)j!3=1H@7%LAbz_=A)RFo zknNy2`8}n8qm2_m${Bq8TNG0IdpQB>M?U-Qe-t$N#djtF-`m1Tfd_WpJia zI!N~JhYw

B6>x_dbJ($&&nK&rN|jt1s?1pjNu{2&uU}>L1bNmL$$eTU0Lno{!DU z)~_>~&OK-$Z=;LTL&-@YSMLbCiV!6e%F2N7cLPIYt(=I-p_kzk7_5J-gB6d3tjod2}zkfV3WT~ zW^7|5PV>gg|Amchm!`uYF6bzwHyC`8#JA%_H3A@1ykCzP z-fsNEjBXD%{Gr7>)PyM;Yuww8>cXnt#G}wRY$z1aKIU>HIASEtns5;S z7SvtSP9&=pmHnBvJy&o`Eo%LnCOc|w3|GSG=`o!S#m^Zp{YfyO$a z!kHZlNMw*N4x?jP;3|RWI3_E?@_g}21vf) z$aD+q5IvhhK+s+FEr`myolQM*Hm=Z0kHN*nP!`1l5siiO4L4JD2u37?d;H9mf#(a; zV!3u{G*>SDS80U|IEBG7XA9}-zpx~sZfOw$2!{GcFD1g?M(XsP>b4y%7j>$m84byKhmezMsZH0J2@vhaH}NArESzCyvt z(TiU~;F$GTN#47UpMFS??7qsRh^~~GBS-d7ESC{v|H?>_|FrJ-Da3NGl7Q~{hS|Jm z@DEMoC<&B{UMR#QWt4aZWSXq3w1$b!qm!w4v?@*%d!_0;rn$E1H&)+-SygR~D?9G&@)R7#7v# zADY$ar($r@)j*w;UqSAc4;`Vga0zO*&}dl#tC;m@H7P?A41zvV^zRkMSY`0<;el&Hg#<1va)oWI&B*NuFR7<8z|e zMDAhvi}QNS5KE59u&wLyaS9El3uErB@hK(Pk^b>!CafX(n|tQRLv9}U?Gf}QfZ}l} ztD#c(&jH9Dw!~S08MDk``QZsS<1}o6kz_-T_p5ZMDc{~9+v*d%!?=?Mq;-jni|^dI z*@pz=Z?6&jy)m<}J1Va`rOw+W|D|pXnCkDlyz4^glxuS{~_W(?Fh6)65ON_)@J-pcEa$q?LzhKcyk2}iC>RfwQrvw&mg_bOFH7J zUPVozVmxp?tE}U0aPyfk`3`T~mE~I42fcjG+IY^@eNvuQN3CW8zC>HUrgrfcTQP~n zT})gIT3y?=<<|*i=^f`t352}Cz5G{PrB(z^Z~K`1-dnpvAEwroVK$d14s4kO--!;T zi2dLnH6(FHF4rH|u#V`_r+=(6MvZ>UWp!(YIS%KyhTMDQxaimz!1eDy&t~L}Vs2ge zTR+xtm7q698&Kn9CxuSZno5g&hM9<6NU((Vf-!jV*WSKIf~JdV_NzYHLDH>fa`|_b z66XnKn744{zb{`0Qlcmcst|;vJ$7q>36WcqS4$b`Qz!-OLiJ?3+j{r~?pFk?tgZEl z6QmwXIhz8XWj*-y~lyTR=HExo8nX#OKs*q~=iuq0W zseud&B7wtvhyiA_TU0w&8C4OG6!pq~HF4&&`tGlSFapOMpw8q#hW^hgQrBhUIXfmf zn;vTsHsKLtl5#|&S2J?>S`37QqN#dl8#i{pkR=aLkyQ9-x)~0Y2iFLbQLKxqKM{61 z{M}P#qepMLue0X(Zkdiby_O_(XC08WIq2#-jcvW=H`Gt*)hGP^R$uCJ#|yK`b8uGU zNAOW-z*P3&`+O#WfnR?6_gQoh3$FYE-t5zIU+sllgWeN1d-BbwR=(~YaLG9|yfqW9 zq2eN1F3Do>$Wtg%eM}+Atl^YWHns71OAN3)?vVckjmoJ(VF0fkixL1T!<=m* z9DCHWnp(-m+=QBLv?9BF7Mf|r7_4-QRnb?yxEQ&fW_FwPtUJPzO#>c9-Xf?aV}C@@ z(yr_WQKoDR(gtFLGz^9~2-VWr@QX3Ae~w2h`t(D~SjepWN5(D^jQQ@uD| zfH)!<5*Tii3@y817=18Ct=7|c1143?)E-hy?1eGgB5Lt@nC?^kI&C?Vw>9XLFExv% zGZP!Wlk;7Diw#Gt@W(B@!vwqvP;Lk|G(4z&YH12Fe^n#hS2%H`474YG8NvIUDhf{* z;Tig)#gfIBbeKbEx-y}hexWYZ9bZ_BR@NJzDj-f!n+Hh_%bY+Y#;H;W*ls7s#+s+1 z#9dY(q*#RRzEXiAR1z;Y*~foVDCug%u95|SyCCyK*}V{(#GR+8cZh`5tA4C_DMEIL zu-p;2L(qv%>LQI7G5JpEGw(NWrBJ}OQ%#b)5CIB`3L8j99iNqn$w&!dc7w_+7Ln8? zv7duUMjn=A9TdguK%0zhtD8}@&u)OiUs4;B2Lcu(&46cL9=xU%=6gKW>O>6Jjn>PV z|Bi+_EDHQrb>kcT>Svp;_*Y(FA(;HG-mP)8e1BAhYOmlT!YaE%jPQ3N(tUjup6;Qq zBbVAbt?04-&22#=Luy+s#eT+VmIp+fnFpyn+o4XUU3=cO7CXr%gb9{TsDA0 z53$k2i?8UNEe|J`1z>(5yF_O0*J*!{No@_4c%YG696}X)2O?XqDI;5wvP@%7-V9WP zqN-gSxnjApO8WteB4V7sn?o(|(?5Z@=_Q~LPC0`hzio<1v11iniElZb|BE}@nD{<> z%-7~V`otNW?REa*o;`l~X*n9a+rxRW)(75FS<&?n9nU?Pie!n`In{_ixl0uu)?7)o zQ;Kge#1*D%bvO?x;#|fPn9et4iX!;lliyjeUut84>}YPVEAb-)t(W{tc4keie?DsU`z&r6&t%R zJ{ZQ6V2FR@V-a8w+2&Mk3q7!P(b&Y~Kw)YKf_GO_9H}ZgNr#$>$@w9{t%mhkmWDes zyf))>ja>KX3*4%7MqCgcXne5)G&!qS9MLBzL)=&E!6eVU7Z>%H$JT|Ov2tAR>)-Zzskbt~-^(!YKDxB5zGo`OiJSPzp#}kPp`;6u#1Pi9-8TGiL%`2Uukh zq&z-OR^&gB81q!S2!7y~ysWkp5PZ4Pw(oS}-uPf=)tQt$N*#Vh zb|xw`L5WtZup6rwf1MVob44TNu+EnFW zc!gBta{uwqmdL?`_1lbj=dg1U+YPg8f^ps2TL&3sp{a~TTbbsxQWhOx_$|xyCXu%? zUDYfvHv=%`b$_vInbG)Xar#M)SZ45OL&=W(2j`@x&%eG$xX%#$`0WgQeKsCa?B=%@ z0Qmz=<)fg{eKLP^6N6KRpo*7Jjgu02$AK(B`r09!H$85%mvy$iRSSE)+hc2Vl-opx z56KvhoNKF|fkbG}M#-8hnE0ubbdF3spJ&j>}=CNg2o9m*_ALPv>$vpflZ${cz)9V^Lr3 zFu^ZW+aY5U8og9qSISfiU~yez4qpepy&4bbOyA1Lts~Y5J|sC30NLS8gZyQg0p_gLiWY`vTet>2*Wyw!1Ij0cDws;AQSi07#g@r+A5d~qy1JuBwu@HNSB3lAGHXE^_k7=A2!>D7zQ zF(4okfEex3xvv8sqr8^*a&2#`gJ6wk^40f6@IBP-ug8r$A}jmobz+smX6CYrhRcf` zEiks2y&xMlR(yXtRZPOdF2og^<@-#}ofw)lb(&|b6j`XI^b|w92BPQkBvWkVM!E4|nmgk9q1GTjzd2z``Vi)P-9l z-G)3+h9;VS?u^UwOKW<|(Ww9w6fJAV@uO;pJhyB8uh)NM`v-Cn5Po?GLF*1eEA^p< z*j#Qx@izxoA;Q!5qA*$jHP@Mwes;*NXm$+`uQINlA&*#g5)>5 zj8092mnfEff52eDE0Rj3dv1P3mUD(qkIZB9GvQX*0-0)NRYr=jPsBLNuHg=9cCm+! z9l4kCW(6l04l3(kzdvSGga%9)a5556*xi5Ui#iqOb-;{BRi)3Nch)kFh_sjS?W;`@ zQq2J-P?C-mTl_NI(Mec7VCdhf^trBQKnmt2Sjf$6sxu{g@_y7Xg7@EBJ4$o-A33s< zU+=f+^>NWVS8s_}5#vF$G);c+$tyT|>jd3gfZ^oC?XdXRLY6GJ*mmWuDJz?4Btmgq z+hrOg_Pvj}>O;SE+KJO*0PpO>KN3Kb0rD zz?$Zl3nmGkJ=<6-I}HCm%=v3osRJJ=LRc~RMO!*@m}!4likZelWmt(dp<{9s!K5_i z`q-BTN>fjk&4z%k>Q_X6OAo^YLYymx&66fuNXv~Q>4jGv32LK-2#hea{)BxbG0bg5 zJ3;<1l~Qbs{^)rHuYVXES{riYYJoD;g+i;hSE~6in?*SNc%_P1y~GG3DSqbFrqs_s zb%-H;09E7!LuS!(+R&%}HE&?JI`C+ixd?32K6m2^1WNpjCcRHF-VU(XeCsy{@sq8CiuYa%x&R4er}v+Ww^kC#13Q88XRu z7}^O8s*MEfKrm=p5Z_ME92`xNbMY z&GIgZJmyPJ^NL?OH+Ze{ zXT4eAtd9%fXle?vUzl}}K7%4(oBYK(na-Ze9u@^}EdEmRaylqtnwGXVLfmAuSaEW&SfA+*)O)uwl&fWFatIuUDYJo{Z zigIG1{qBr^qip@A;r99SpkRI4Gkh*5nZho^$XALyjT^in ztgxtbV@C#cVMU^EPa?S#X7tt4BBrpaCETN~DW6?V>?ey6t}jq!6zeyZm8`F6=%s$-d(-)|R~I>{|^H2iSzCB%@<{zU%a1dpqD_wB9ax zBAjT&rMfuZUD;`A{z3bo&Vd0QCJ3dcpj(6a*knY#@=v_`;M|DE-mBZ+1;RJ|Y>5#* zY9aX4`N7X2_nl|qBI+6kDc~}t6U&6ODpz$SkVZJ+1j{rR7-aFqS~3ZdvntZpLy?9* z4c#2-h&mBn*#k`q%199J|bB0`thJG#F%&=aTMubh?;h%E-GIz+dU2)tGYjxM86@kx1V3jj?`>FScw+;{&sdx~=JykQ3?s3Q!=y0t``KV> zbfnNsOYx!%mktoZ>vk~?;k6@|-VM;P7sY2~xd(WsAu_SjlaUg#C6a9n+vcnsMmyCd z02GM+-$Leohmm;i~? zTgU8ZslyLIrF8+kO{bntRd8e8_yAE9aL#`n(kH{~#Ul;5*Y>=d)tvi}lOUr{9gb z#3;P2K7&?kGi?~!^NMAKUk`esdNCrySS?WpLw9@X2zbQvSkBrjPzpgEYI2_G<8sk6 z@b-nRP2wd3mh-s8S@olNbUfW_PBD@f*d@v=L(EMl)M5Q13Qe5SMB#TrY!bY@)})pR z0W#8@jTgCPfb3yTYn;I8)Wj=p6Whv27T_D#;VuKWivVWLq+V1iqE-$%DMLV7^hMBp zVR;ebl@P;a)?U(jq%6##krW}(TZ)qzHF#S|&wgS`%FR?zjTw2bB%&>*_c}}0)q_V% zQ#1253IR6hUxk`vM0+8IK0Di}K6xkZA@eIYd&FJwdpru*XvFN=nqAf)3zggE-5+O3 zcbLw3>#%o|J8=i`-&r>kEo2bH+T(Vx;)g~tQ_{#-RILjR?myAe-MeV8aVziXW}Y4{ z9JutoJ?qj|7(ek;HyRAb&7WzF0P7NN`+}EJKuJ1g!h=MG-*4|KMt(?o;gYI3tMVb8 zW$tfAqh_($-=4G6W)jxK$)H%%;}{hvu8&^DH{yn5?H7O;?<^bbx-X*PlrPNqgCmZl z*>Gi7%Y0qdYw8N6CUR!$o1(t!$piydWd>O<5%}2cOG*D9dyKp@Wp=nCymv=Mm-^6u z{KL&eybsNc^zZO{LXQV|aKLOA5gOp@qt&%1hQPK%4iGL21Yf z(fVecaL=elwTm)Y9Nd$v`d%{Y3yyo8hLXS@Ndw6B^})?Nv2Ey(3+&rje-rbslAPyO zwdLsRl}?Tjf;60vwndC(O#&&=RKyhl6veJYd5{q^#3QvH!I7BBICJEd4D|%g!0Ad& z?WhC3l0c$`$T3$8yA~IUk;75`9H9yrjaicamo6V%&yH?IR$ngPrzUsU`UY2hU*ntg zfPCQ93*CZiBNLc>biQnx)Xq>vu9>An)pYFOddqkFkg)-ZqrU~as;C-@Ho&@CN|36> zj1(w&miTc#kdah5ZzC@FVz=)UYKT9`w*kUY-8yvu1sFUf%0YR3+JK#Xs1!ZT_G6E$ zj~#9)Lt8wF4-)5{_0>eJa41`I8{W-T<`>F%>jg{fXS@5>gGsxg6<3xK8)%HTZ88F| zG#mxdDJTqSrlVxuiZ56+amaX#K;$WQ%oVYWG4)%@+Xah=-ZB9$0bk$Ji7dBFlv*8e z>b4;`<)d}YmV4eactitynB(Enhi;!?WR9+*!mb5qx= zRTb9j-HMqzhd494NN(-k>UbL5W9|uF>r8Zy`Y;bTV2x4E6pesHlj8l$858<6fDPw0 zpH&6$yp#XhJ{4dB)swU*gaYJsGK~x%0Iw!TbN4;fCqTL^I>L=+#9iT+nWW=qA-xF^ zw{S@g!a}8>&trB8n}4qWTCK1DO0!FZeCb>EhjMp9ym#~7ygb+j{oD0zwg<=ZHQ>aJ z25q|AR(ec&EqHF{l#4C-fuKx-KfBCYd?T+_rR9m^==bjF)M1+>!5=On)H%bBIk$W5 zb;cKxI#a2Uc*?RU(^BM~;#0`t8RbBtBMHigUo*xDI%kd%ekXHAdK}GjsnVa4SV2jj z2cxNFl=O~LWZc-_d$lhv85DYCZ?pY*3vlRcD%BYBg&)fakSE|qrNRz?Oq5CG7f zJ*kT8QZz6ICG^x5`2^%OT4MmG^I)B(O>Hepm5!jBN zsjEt7h~4b8*D~@;-3W)s{GN+$9ifD-+y7e6m!~azAB-OGGC%sizT)ZiW}_1qT%Mkv ze^c{AA<93lkGn32^~Qn46nEhZViCnx)j5#*9%1O_w`AWmvb&#lUq*ze4vZd?P`xdZ zBCAz7*#9QfX+N{~7hzTlr1icSWmfmc7^8^ENbEAqTIA8iBQ~_tFjc^z8!jJ`^x}uq zp@lGbyQ{j#!&*~kBmXjK@3i}P&B=x}K@RaqGI1!Em1m>P6qRD~YUA$xth!$FL*!c` z$E{6IftxxqQ-F4x$%ha5Yu-;!;_|hH-JaCh1t$|FX)v~DB`+`Ine{f;loDj5Yo`Vm zn->kyFmB4NG?ML!n*onzEX$0NEb(D^4EjuTME@e!nb-Fr)YtfVd!B)3R?77~w(2)} zsOFHf9bV7`d@eJ8dB1lNkx9ytrIbVVvb@;;>BN~PD*SvfbD-X`L?KO|mdae&>W z)7q14U*?P6S9`vuNDhGcj>~kko-*j6k@3`Yf1I-T{oo7X-tw6=@ED+0qa{ykg5u7c+*z6- zI>_mtP$hdkZ(^~^_G~5??osldWL&oSIh6FBzB&q%aX2>UC#IVLgRb2b?a2yhN0oK{ zsHTKD5AUe}b>oMAWc$*+IN#j;8uU`VjcF51mGjmkzwv~F9IiJ4peeS{1%;frjL{fDqdIYc19wyB%c_oBA!2x*2lCjjiT}T2Ww6VF2?y<_=&i&spN}q!BtTtY*ak9W)__xg5g_nt6mje7;Vn;U! zx`TgaP3~YSjW}XGD-EW$J85!bn8@xiK&ctqO_0XgQv2TW=Q~D>hEUiqt>8*M`?NsEpRi8M$u3+%|A}K!0 zGBa~euX+B)tsJt}X}NWpxyn)qiVyyu=-EB$3rQ;~k=5Rbxq$FqsI7IYiNmps!;P+Vlv1Kh zMGh@lQ>T#!4cPBnD@$p=t59-Rj8n&efL5JN3LUuM!x3X$haRdLdhF)}soe#|;`%(7 z_F~kgA0{5u^`G-Qs#pwQ4O-FZX=D#*cCbENW1+k%U;Ik}FbT|*hosX{namu;M75@4 zQ1Me+9m_g7klQ&S&dRr9#LP_dw^Wb`qczgeI1Fmms|i$Wzpk55?Mpd(lVvv7q+}nV zO)>o?AcG_}_H34t5B3>%)7%!ukDF(wKq@TCiXVLi+KV6M8F4ju>42&B9KkY}s^smG z>V5m*T;OpHNmU=GKc!xt^M~4i;+N|pl*+VXeGjo;&X!J^sEAq;8{xZQ zAlue=cu;?YHU%9w=qSXbT1L->Sk_XmczGaPyG}(DG!y!8sI8sPzMl)&@UA9PMwFM^ zq%|JzJx(E)oO+_qbjVEZsD@NrV?7DGq;P^-J+Q6_ym*KAuz)>{WBc0}$Ct`oKH^C` z>!^PQ_-%Lo>6n)b@I7R{t>CsiLNS?QrEOwOYB~y*Z*&Yx!$kRGFsVD_O@QpfyZipE zo!t#S(P#C-l$T`XHLMi;{fODSQ<7Zp;Wvmia!h64I|~BkX!qVf$U61u#Pi#?S zZHHPwQold~>#Zcm+~R_N&1CsY)WjDy%gxo_MTNV=fXTJuzN=2M8S6gvR-ufF^?V_% zpV-kd+2TN%--q7!Pnaw_ULPNz;aELccp{U^k zGBBvmx>$Bos*`HU!{vc=PWaK!p*xMIJRZb8G}RgM z{MF?r)nCIhFn0*#28jI#tGxe|boYFT|fnB+8xe^E4uPK?MTj6zb&xJ zW(;zL2v@1xj?`D+mLVNPgv!af)s!LAqYS$Yx>{SE5bCP`kZkDQ&X2iO6*o520szz*XLcfehqo|LHY@fEngUOxa>hk^d znvn<^Ta6Qzk<$`waWu_nEy|AJcNR{LRR88evlBX^4SuFxH-(bs7OeJ4?NRaD`hgNR zZE~J#8As8K1;1A#MOvTW_!n0>B5e&lHo8K&KOm>`+@I?$xItor&B!DM&w1o_In?uqz zf-udFfa4T4sK{U|KxOhIgC7>;y5s>1XAb7ipv3me2lqF38W5WA2t!d7eiFx3C%Y+>UjjjXfVESFqzv4uDIW$PFP0q;W^S#;3 zR}1^TtvLPR`P}DZC&7V>|4O^nDfs%Ly!-Oc0r*qa<$XWY59{`yKV+6Jo74Qs6gV`> zkQGL0u74JY-dZ~J{mOx`qn&f@EbT4m3-|p_fKp%2THip>?qx=Fub5Y$jQA_ZkQ=)U zVD)G;EIB}!L_JGiuB&J!^Q$rIYn)k#0?tHVABrY7&de{C`CCUeB{L@m1>4u`)-N;> zfwRRrJ659x@Q(Cn6DyTJf0&X?kI}inXsV$MvhNOfgmqbM;}WponkBJtqaOUGN5SUl zS7cvLq(FgUZHRre{|ydM|u0%$>+W4AHR3sUE?r@ohVNcDUZpE{~KKN z-q`|xkFW3kh?>PQk1t_jArH94H*mtnMDnB+ZFJm-R49ESyUlS`U2+8i}z%sHxS zBjvLnHNGlNT|Jp>mUbxYO&Ti;km8tq+0rTEZ`U@4aEx`V^9$%Ehp9kD6*Tcs9Y8{jPmfC+${F{c_Ltyba2~&@d?K%p%XM4d+;)!@gE9H0KM)Yn^c{&8wD)s&#oL|@I1@9NVr=pJ+et~oeKCxf6)6I zjq<H(WS&A-%yKY`%gmw z1$HpTxgRQU%lm&Gc7I}@dk{FC$!Eehu(*T|TLxlT&-cjL{_$w5S|8E0`cIx&MgC8& zX7*lZIx)t6i30A*3-$x!T<9;stnfHjzJS>PsxhUF)b>#H(IkB#3;^WfxSsvHTnoipo)-LjRnxgr(ca zj&EoID=MK8jP_P=tOk*00pI&i-pC&Fj=Kj3WOq7))w7yDX#U{hmbXXw_4j*IaXP%_S#^}8#2&mHBCo6Bdm}tzE z+G2spViz%$YH;&7dFI?bTkQQ7B^@VSBjK>t+HlHYYc{${8&_Ysvu@6hN=^vCgb%l4 z_$_2F$AIpr_Oy2FO3n+uQ~eLlgndZD44llg;e*HVvSuaE{-IeAci&CeF9J5YYObXT zXhRfJhu1B2v{Pr3WOu6*1L#E-SH!6D#S}ww8H#8r(BMuXu0LYlUaKqWHob4?gn&x6BfppLd9qKc& z>klb=6z$7EuQpKh#?Ps2d)WVB{~xjaUq0S^Xs2)e;uoI#9X!SDsRsbpmiq!6uQcU1 zQO{I_Fm^?FkV;R+EEwu2c2^f}GSI?0lAAYm*bC9$@s9Qke8-9G-&sEVtD-Vke}HCnJ|v?I6>+7t{^NQZyinH60nm&)bC#bfKdW(zT?H`%h-kQKbJZMw>0Pr8(Q%be#6a)#3<+)X zj2Uc1`@bCg&R4#0|5u)c;D2p~XRKWx6@2&X z-@APMD(3YnR|IO|b^BWBuJ!8xRLRj>=_nm$N4i*yoqYq%QO6OE*UmqxDWA~q%m6C$ z30kl$yZK_hb@9FNIF+&&8AMPMrBg{Zm-pSpX3byRFWKBwI_`7O-v5Kjr%Y?Emu5kL>*LTQ7g{bFbkUYL9kkPhtD1l26BP8F@HsEc@5e;N)PYAi=9| zm+#(Bn;dI}2}4$ta~(K>mGAiLM#%ML*~qna%8mD(99rONfv*RJl<#UI9449>9Mhq7 zT9r1<&gXg4IbAxanWwt32ebB1*z3uyhVnmGMOTt}zLanL;omf0Q&-WihZ zvcpZyvD-|v4@#?SsiAV_mqQLo?rt4$>(Mb~CbicVjsDEql06MfJ8?yD9G!HUt-@jj zw(cl3h_|tWe$qu5)ogUY5Y7<7Gq92^fH}a++{}8|va0cG%E~y-+$RG>$teTEDl<+x zby_AJ)u0^&6%d#J(k@u*WVrCBnc^-ZOTe+V&)^=&AbtI5hy5S+|6c9?a^)XC3mg6J zYR|+TfLrb57e4nr+rjoj7W-D{Wb>o_02;qoB>HD}= zYk}f~g_v?Z<9tGCIv9-LlEgHJBUn7hb@Jz7J=Vq#&S6>Jl`}U zIebBL{FI4x<1bl?p_Be<;)isF3dSb$LG>?B>I!C4ktOjp{QqW~6_P^;Q#w^ZrL%B9hdCI{T_VQco-i zW`OMT!+uBKRJpJ5_(IGdl^QX##r$uj99yrtGDa3rB{4)>r#&yLD{M3XBe*vcupWRjRz1{e-JmCvsO) zKC&bVFN;Sd8jsQ6oP8`awgvw=Sok0jJ5*0pT~LQ)T~lwj9(WiKXP~mGChRK?RSih@ z?YnE~m*G3X0JWO{RZazVIyd#HvXlGh{e9M}GNZ7u@Y*4*EnuA$w4{Ceif%vbzj!dJ6INP_Lrq}s?koIVSK4b0r@}P@G{C&UvJps%HKxAFYJglso-Syk-Y_be0kJLa* zcF~$q*1#OYcLp}@qVo^kmC~0wonc&-F0UbL_!2EIobx`IWDm`kc4xGA+IlXGP@-Kg zMZ*@srBT_hqm=4i>YkOXpM7af6KY=dKL57_$@u0>`?+4ZU^!hJiyZE zC!}?ncv#9@`#bFaQ)~a1Z*N{``tHwOc>X(Idj{9~Z#BcGux*uHo{UJGtvZUv#@>M-OO_CWBa`lW z?-bae22L+*yYq8~>~{oDOinX+>COWSC#yfe3gYYlMW{D`fL`EuHnrs7*O_26bn7EpkX)98I;<*?y^lxbYU;U z2;x16s;qW$D_OVT5;wCC)+yROJb2juVgDDX_&uB+y!xy>+V@_X;ZxkMFA(zk&;6^5 zj(i=|6twrXtc<%CO4`ZARZ67t+CQKW}7&X!dMX>J`V)kgj!ynTFtXtxUE@ zc4IaNx8QkaWHq3eQ|{fdyr%~X*F9cB7kd(<-<&7tY|u;9Ovv^bP}17`@H#N6v)}00 zJD(}obf;C$+T)z{pwLU)dm1aTBpu{&@9=88cFy`5tOmH4j3yJ6=MYPbFMY?oEnsp^ z7vt~sEr;tHC$9sY-S?medl0h#4cd9Kk!AUAltL$(?gPyR{muZYV;}ba?Akx@8vNm_ z&)TDX@1+@zw!Kam<8{Jc-IbCSKFPHN1W4ew+# z@jdrDJ9W}2GD`H3spsx-s))_PBsr%^M6&Y`ej^TR@b0&M5%Dn14+}k>KIv-#%%zYLJ7c{*hA0u!eXhtwsIPyuVKUt1ndh?$If-Sea5MV z*_2)kO~z^lb%$fgwQZktV@bn|`YDbZsDGwie@BOzHLQ84tWw9<%*FaTVP-`kq;!&x z3evvdF=^Gn$xJkyW0RxOr_;-uYj9_QU;y-3|co812V@^5B~|`EOh_>^BIJ;k&h^mcT%>A>Ws*>auh~=?=EvEeqTJ zNdu@5QkJ@KF3T~+F=`NFpyZfRk?Ug=eW;9UUyfX6hf^S}U_36s?03@ng>=1GOFq4o zQNhU8Gbm;zsM7mBqtI*d~PU0@-HXHrUu{88vB}rydbC9C5 z&rGbB9K8ajd3wny$YN0{luo@eSJ$9Y!FWH8t@%j#?lLM&b9bw$b8F?$pi7`^S&hy{>+Do6F=lDNpGaT)GwQa*7t`z}%!*%_5g>+5I ztx$(~d$ZDwdmCzQ=sC>#4hPH~Id?kfW!4Z`Qdndhn`qZeV!>PWwJ){bbn*))dXvU+ zJa(=1Y)-R;xsMjiY}&Xa7(mbSJ2_|$b?-QH9^-lw=LOB=c04U)$M3!`z0Z8NOxSuR z4v03ot4~E{QobN+=cIXqyL>?BKZDa8m~LgTZM+uvZUhF&5;>t0;7U``e#g~4({@k( zfkh=j?w=|_hy8yN_J4{0uRS=Qzx(jv^RFF&|Gl>Z0DQnU-X&mv)9m#3FXDVIyTd#Qzp7I2gW$vgBfgHve!QPc-H4eE^PPS;uE)n+#JZs&*D3)6Akd$R8de_ z9rjMKf3(${dYcPZ|(ai+Ix0TN4wqr@Tc#5{ULCD&G0ubKVP{Xvm1ecKFh>; z_@eZ;7$%YYBHP%`16ZtqE}fVT-2x{n#)R|s7HgF^TRM-vPK%al0}?EE0bOaBWvGt2 zWw_X7PiZX&L+pSCxQ}C()Ty#wiuk*Fw8`C=WO6OL6wg4~% zhkkF9If-RJOETI$^-o_fkI{U}B(ZO<-8>>Q=6PMPw?%a!^u3jMVxHGy>6ni*@4NdB z`~Ohv|8n9-XZP=)aenPTKi2j?wDz7A`e={Wu3+HZ%M!sA3|KrxfHJIIxr_JNqt_18 zFjj4q8TPEEHiylQk@UoY7G%Y^Y3X-3w|z$TxXtd!@X5=d*s%!OZQMDivX@)(h3(ft z+uW2xTn1PMMapv#I5S^XsMweIe! z7k5`jELWN($lHFOL(ZA|a@l9sFK~OQ;SqDwt{Z5}9;M;72S|tgKcY1qzm)ec|Gb7X zesJvM|7h9)06vCxT_$*V|K2xG=Kn3u_RWjbUz{#!Nq|+B#H@4m>eq^Gx3iOG*sE)H z&RP1s(ci6e%l^hOaXhPXZ4W$gXe{MU*$#xChz~6rQQCIAPi5Xa`Iu=(!iNR`{84>W z8kNJ{l@aa&1*~tzThrGAV;sNbgqL%8hcn-2cUYI7Z?#!o`<0s+NLVDCcYrP7S%dct zaFQAAT;S;XW#)Css4 z^v&RL>zHKJt6;U;wDidS9+7!0@9zvTt-15waA$w!gdVkEg`EgV&pMNR0qqJ1?0o+fd+ziN zoc-$;!}#TkIlmOAT|Df{nDV%KVoZiQeco(sy%#`bVlkC)kLA933}wp1}NmxCXjU84dropxn?kG_A_hh=&9);v98PF6C` zsOMFRfnIa{Sb@Qbr@ZCHc-ddv-!o4)`k5UP&*Mf$fZO4J)qj%W$`$_nCA|5T1LMZi`PJaAZe%}AHPY~eCP6l z*IG9wpu?MYGQkA8ZhbDu$_RT`V7+nQ6KDUI&o?fgZ~FBQ?)drl{cLZ%bN~GM*N$NS zM79F}JcW(m;9{Du+`ISOS1(5R(#7C@?leHcZd@Hx2jRyqv#e^bdbz=hK_-+QT>AeeQDZXPL_uqiQ=#Y>e0|W#qDWzqUNFyoIiXc+bHF^W21?f^i6j79t80`QlC8R@I zVWcn^+xLEczd!ccc3;mu_nhZB`99~OO^kHuX}D-WAP~L29>NR+A_IPsfuNMY*KzQ~ zIq*g8qi5p}0?}Ui?*j(q7hVM}g8j{O?|?px@N5HrC?0DXYJxzY(r5`z5D>@{p^wnC z2nO#iKng9~PO0{niWXnDLLh7qa<*2sD}7|Gt)Ny~ZJCeckU#gC5q%62CZ?=1>Caxf zo{oLvbDd>kZ#yNpoBh2Ug^*nQnj3om*@_s7nx9=xZ$W zLPd+DK0x0>vC%||F?GYrzc_<6vf-I)lc%|%9=Pk{M&+u`1ChGu)H4!U zCpgSZe<|&kUd(k$V#X_}Pa3Q0=y(7@C}=_DLg}t`EFrpRRiS?fiSc)FOFW+h zLOH4xEPP9K7;^+HnFwMskWXYzIjoeCOs4H0L9iNO{eK>M9Zd*EG_TOV%wN?1A~KB? z@AD9ZWo(=idcCi|7OkdW7EXbHOnEZ5Ce2&(V{xM6_Ny@TrO>RNlI9Ge_SP%(FS+i` z`_nTl!e&>uVC7!_(S=hx2%i)kkc^L8^^Xxxp(TE!&b>O&$lO;6z-o*H6yYJ)2xgEG zS7*8Ujv*w`fJe+X4&li(nY#0!I-l)QRK{r4PK@%drmKJi2+JaL@UAaxM+_t79CqOU zDU8oe>Lo!$uTAP8ipHI8!sK6B9k#U&(DDiM#{$)mINaTEiN4M# z*r28aNc1tl^1GwSaH0$g2Yl*DnrPMpL(E&0;gxXYudm>}>!pRAWXO8k$-)kgwhH$B zBFRsRXQw&!SzMeZeVx|mrq@i?)a4TW{I9cL0vyGMi|Em%|Kj*m;fwZ*zfL*vjO;#L z^=|whjchl7p{eT7S*zN>x@;xTgLdPoQU>XB>s5I%ib#lQjw4uuQv~f$^eQN)7mqrb z7paGnf4V|n^785sA9?l@fK|bo)X@dqRTZ?kP#dg1?SuuV-zIcG%fVoF?IWo4OJ;AK z(X_Jps$4JoG4o8`j#_mk(J_O2Wx>Kzkb83+Co0G!AK>}1gB6OgbIn;wH>YQdpWJ`K(^s9q z8guErxU3-!w5H>GQ_U;i|V6*cUDvnkM99nBh|W=V_IJz%jJc#gIcR?E2q zqk{uRgt&sS9jIf$oP)<{5w6jo-*RH-zvwc&>=hzubK!>b+3|tED{z zmvhIF8rx_M`eku{Zn0HJ5^_a7gZC{TnMVfh=ToVt#uA{Xl^$*+P%p#PClv7d))ti4 z5wBo85?oKu4pM**M0vN&-|&?~p&I2Zoj84mbpJ&ZII$$(S>4$+Jl# zRyoBe?rP@rlXZ3j%1P?*2q0y#>}n#iUtxqLbK#C~Y<+NgvbO%=lDQ;KKZQI?oq5tI z2u*$HzjhyO1T$ELBKs`lk4&{LPw&c6Fq>XhS0ql(B1zE_@epLZ-XTsbcZG#21|=F| z!R^$bxBp0tVk2528iIsa44*6s`0_S4q@m1oi=?X~r`p8gH9*-vtwC!_`b6b{bx7}R zJTvo~o?x`WYp6BDpp68`FIyA}by34ANS<3n+w54phw^l^Syg1~DqeWE?H-3p23 z6#*@J(^fAfJJ>YxnmqYBPbz3Fy{08{velsox4?=(%s7cTN09f&`cdkF{NjX2Q+^@$ zS8qwIUqF;D5J0`=z<+iJu9O6n*DQ0W%m-G`4GLqbQ!&MYM>;{K{Upm*x7%o*iHfauv`g zQVp#?K^Fn+&k@s=?k6E{mA>y5LrTEW7>(6P{JuFrFhjnYecgQh@!XsHmjGz@6 zpu{?aPRe^WBh;CgXXc=2PdUSP6mQsQk#bpUb(Xy~TH%4@%*|}iRm0(JB;bohr!DcZ~ZAI7~U4NC`kib z_!=cd%JIWf6yikSHSc6tat)Y2a%Df40GR>X@Xrs=rP7^?s_v-N;}O^HylZ0SYjk@+ z2+t48MgPa$-2_$P$c&O&Wn^X&M1y6(VNA_0g#YhfT}1XhUZIZ6l1~@N%mj!=Cf4D* z0aHPp2OS)KS3$n!wr1oMAH!W5cF@V|#u^LWt)py&8VV(P|4^uZaCE+-G}Hxb!g&9} z!aFC}teYITslgeoxW0*ll!mTIB5!A6!mqEqqg1zwMWKG&5cRFCd@>rl6DJ4?FnLKx z)O!Gd!v`r&{DYebDji@85gu^$o0>IJAw^;d3MFeCK;LHXT%AIBwKVP%s2XxD3SR#H zbrQ0SrRg(NkEaU6A~b+8k(7!aC_#zNDG5KzY_^HCyjdrV5(H5%114)~WFiP=)SvIl zK;{DkH18iq-Cw0+Vm6g*zP~EK4xapNqCY&5rT*X2y=LRp%9@8aSgB}{N)uU_-iqaq zz~v97o@9GeO&(Us5G1;$#`JQ%g%5$qPPSl{z86`{NRhX?kF``VAlCFr(F(!K=cgTh zereJK{NhJ8F_5J0Uq^ls(I+WM^ctlsI&L9Y_mQX{oo~Cw+rT`$x4RmQ8Joj)A)A3k zE9uT)NyTbgPvLVt=6zb!fKkR8ru9KbwmaQyLWc)iH^vAN{DZZ{NIQ7s4(xR-sy^0o zIr{UTe?EH?Y{i0%aqp(p#%Q>a_XZfHd8D*E9X{Tg;{at6S_jsZ(Ho_P$J$3s!H?zc zT#0%qLcmMk71uk=+Y<&62b>%B|Lrk&V>`=n0m7AZgW;KqB@hoIu+S)X#J~AQ3YjOd0LBS{o8^HA5@6&a15%$-=&x z(I6i?-TY^O{G_99e7D(AB!PkCSqIzSP(l!ksNm&>a`YqiUtzefL(6Jg((Zh7FQC;` zq^vj4V15PXcVvJoc;XjAtKf0)ZsRPLKLSdktzgP)fC8Sz_uo7p-pWA02T|hgd2xD2{uZl)hE6h`!-dSAsT-o_V^%Oy$#s|~x zjQR++V+D@RZgAZW{oy0nMT>e6*Ur&3UPAVDcdCKOG}HYdM>xknKqm20wwXs4rG({P z8#9Xc@qIQOp!78$TT#zYqETQXIFVhaT{pM^Q*S)yWNELA8AUjKa{bf)6hXxKh?rx4 z{5Xyb+IG%$oj;UD2Sx!ee?FGaE=U@Q-YU zkmYGJkupy05{y7R+5EBmXNe=EX^G|rhKaq>Z(!VvBD>pJ!V08!D5dcpbCmH>G~(b+ zw*7Oq?w^}TlxWt2i|4xIN27N)}<+;$OOmnZEI_ zoHTqb+K<))La24UYwNnlCyH><;sg<;(rYKZL1ltW~S<>KS@45Yu15fZXS-~#Cr69?Sd z;u;w0r+TWxi6IthXLKl(U+OeEMxd!H%r?q;?0Rn_B{7vJ=Oah{5oF5>bw#S(Age)e{ycYvIP z#!7Y7@@$2o#Fl~>C;_Is?guX2aC#Wu7bjxanUGA`Eqc><3x7%DNIU|;>{>-MJm3z~69g1ge~=P?jo3GL1xtmZ8n zKs9ipx$446jsoYa+M?S(8FkPh@SxqVl?%)MpfO5vuj)i<~P{s7$$q>0HqS^llSLAS2U(y<#5`@c5)^7$9< zn}u2Z+u%MWe#b5{KZN6(pW8eOk`>LtYbNG2}C^fSo%F%%aODg z&TOk?P%@&8c(Urgz}okF3HffCIEj&A)!3@a59+($u}>M}5J^cJYT#$#vX)+`|N1cg zKIbkQI^0?>c+hxX9e?)@PX6xTrJ8S1iafdp} zXse>mH1JXbW_D@9Jq^elfyg5Hr)lf5y{pKKTCYeG*q_qX%kF4oWougCv{!PMxmT!RkEzZd5xe!NNdC zP<#)=PuyHWc*RHNQ<9QLdt&x73nwXW!T!)9YZBDc;0kTdoL$}>I{OvgrdBo3>fq%r zt}1eilZR)6S%>uYfI8<_m#}%zn7)8p4oRCtUIGE;HbcODd@nSQ<`qNojHYw*nxshm z1IZK+U5*lny}ZskCaGXAXQl4EHjchcjbS}#(dKuO?evK1I(H~52PKPXLpd#Rk<--w za5?}#<4;BAg3*Y$`cji~xNS1Y94vB|Ctf0V67aY+q{4Xzo1#J8L@kF#t^ua2^6YMA z@gnutO3&J-m)(c9LGam}3d5VM9ZEbSMWL1#Y87qwDy6*Bh=27Hu>3bo@qa&myqep4 zGqdM5EZNNqY$AV5Qj$H1{kyRqfgfI>+-8{&;LT{^P4u7At_#5fsUF=N6eI3w7D*iinwC_fo$+Se_l+ zx;G*ZMtm8lyhYk=y-(7S|Euof*q(Sfe3hH9ul}UP6tvD2@@fHMb6uPkgpX;+8S+^> z^X;>vP2r5iPH^hI+{#DVdA|#Bf&ogw?4h{n5IEc*rcdOC^oOVHJ7Bt;!&#*CjQj;? z-Tpw4_dF_8C3>rWAqO8n)Tn_hUC2&(w^lyV^e_Y!K$vHyDzB-dzvCUEcw_j(2xEasf(%aw7vWXY9HLBT@sQCum@5(?)?@K3RPbb1LqIUoE7m@v7*iWc5-pndUlt7-VBy4~3aZwV0fHyb z%55&aIiDmxDL6_KdEG<$J0ws1KB#$pN$p0fRT2zHUGZDael z@?bO%Y;C83zlt0sA-WP9A%wS5krwjuCmzI+@?*!=N*pz7&cCwSz{P1mZ&86cL+c;& zeVDp}7IhW$zSyMaGdMD9xbmV$@l~Y*#`cgNAWchUv!f7iG8pkpl}JAz)97H@8QuRF zN5y`nScNkK^H|VMC=_Y(1sc4k3FzjaZ^P|hBHD(LJJ-(!D8vJ)Eb{NpCrYH#3xaeF zco=98F$e4^K7qq7Z+AMJe+kNWjJD&-#^u2hWGFxLuZ;inznUPDkfTnf#r$sMTB@3&U`>le{{$m$^|wSQv$h{Tp9P3C zc4A330bCjlP7z;rz89nn97kUK6#f?rfqaVq38uG)*^pN(CO&g7-6YYoYFRVqG-aOET90#!Zj z8NW#B-?nJ!>*V7O$~5gh{Qjczy1ZbkM5D2Mg&bd=A^J5Yw-TSLp-;q)A+*edRsXn- zeCQ=ce%$Ulo+B;7ATx@-YD|amUyItiERs%fq;B~>dgWs^PTo)%%9%Mpra^zn7!A>W zbeWvlW2Ez8zc@&iW-qL?|1>_TD6U?!sVD4N)Y*sc><9TI_TxPUQv2PjwOu*j7E&w1TaaLDXz%>G9 zOWYV=Ge)Q}w_H2JFq+`8WBE(iHRJ4pJ7A0X0OJwiDB5tL@phayg@(Ty(@OVjE zlB2UcCEy)1K8V53bUmx0TpPJk2V%AXFoF8$Sho>%#jwA+#5`(26KdL4TR#`A*EZL5 zK$HSg(5}oo>O>f|9O}WFBxDkm$3sR9#H~A-q=e);jr~iWydy%k66w%(1DG}JLlz6y<0W)87$?dkrI%X91Q&o89(YukI|KH{=VVX%N0 zFrsoajxDY~obGr3pHlfJoTsWDH8AOOUW%nl&(EjCfxLw`6>l80bf9%-nGhW^MQH)FXIeKW| zQI`;x1upACE{J=woc<;kr~wBg_Uw78R>euRG8B8QTZPT1$9=RPojQfb1(ngF{>N^f zrjZM^W^u;o3%=2VZ$0C%)6=m(LsNqF!ORjyssTkvIeh~#jLlHF19iNJ6Be!ue@AUxLSE5J=rz(M#}@~> z9k0#29?O-8H>|!)trF}rvjyovDr5)fKSu8#W1KjBXD_*kcejLd9O4ZCeZQS@;@hEq zq-sWSmi{M&UUSQ!R^~@OvMW=|{G9*Bq#(#+4+DM*lbt(!XO0$~+n!oV<<9deSkNsJ zPSv4#^Bz>4k5QslD64w_25_fZZ1?&{YWc?%I^cP|42x7ybqi_N>B>2Lj_^hZK6usT zWo_ito)w!|#vs{p=r2@9p*aYFcw1Q~7C$^6&8n{thH0_aWR0hOWRBp}1))%8!`9BN z*IcO#jCP}0^+Lh0C=+>a8K^>qloS|%XDwY9JbtAN{ZX!2!~NDv!eT9fM_p2-bhBKqSk-C*0%+l1ca|}eiRU7`HzW2 z(-yG8>(DQ!hL2oIT>+WNtAY}E@1JP`5S6pY-KU8{`j5aqZ{uhYzy+F}ZIXqMJ^(S) z>{5S=K>;Fe@3)M> z{_hGc5)24b{@lC>Jc>}AXaS{{B?eYMJ^}be1O&#ct=^e1jktYkkNU+Nk6=yQ2}@vCeS1_YIdh)hm#0u1GIIY|m3f4rXf56gGbwixWoX;gVz1cDsHSvo>$*)wu^7(X zHO_y>;S&P_A+KcMcPNryIeBjJ^=m5VSmP;}jM+sh*f9|M^dwMib_bkNxPqd)d|G?96#>2mi07f+FL=NwKccvRUqa+K^S>S-i1 zO`>|t4}U3*wNsn_$mUb(0ST`bUF+Z*4%FYlKZvdc#m=y)mdTD`s0CbUPt{`n2%1u_ zae|}gMty&POcF5eAx&Acs{8}Zhy7ECsN5RFYnFitr0c@9=U8zolTFoa^twFB%_T z@o0snACX**^Ap;*rDAaeg9`p{R|t-D3WbrHMVTZW9ev34XC3^+TnCGuXO%eL0jTEU zaIV1bH9!+rOytgXF1JFV(|ql}uaSmt1?{8~x)jU0rhmV2PcQE*O34~PKQ%0(_qpe# zCa{9L&1vf{l)DJ47r=3fz;NXrnHatV628hrZHsT~&s|do9TVNY*dFGy<%MS4!GK(x zXWDl!#^-X9h!t8!c+}YypD%wbyqs81Pu<5UA&iV#`Erbc zTM$1woM|TIVk;seYH8t6vv8))#3X@$%eY0@%$)nC4#0?xd3Rsko;hx``~`xfsfqUB z)Ls|(C#H&?FM9=_7ea^Ebs}0A)!F+>BA`~IA7JIT&F7A<5UvcqtH2TEo43|}g>FGpfXxZQTXz8h1nReXYdA8!4=F_pADV|IArYalsO3Hyc zvbXY^G{(6FSJa&OnM{kS3m2Odygx7}k_J-0Y|xt???9Efo;O*sEZ!6YzSu)!SuGuR?CGy8Z#?ZEt+t(A-V>^|-;m5xj zrLQYkTs*Oj)e#MSLZKqUPYtih>JfS@A}8@`OA^#@S*MEn+r5hzA2QZw9_uD_sO(xX zgi%EMItcRKaWK}|@9_ovRX{isrt0EfFbce!r}`V+Ey9-(_0W`{7~ca;!SfU9 zQWMm|R&vbYM)V_+yvwS%=VwN$yr}6j>^5S>CC#~KHks)>P!?5fInfiUjGmEiml+oW z1sr?tTAeYiSGTfZ^j zcw=<|i0Qj#9Qu1GqdURtIwV!6D}05KjTljN8P4InbC675EsIrN|!p~ zm0@uhfW`a?Z4R8dv1ix4WUMiRpYF6aZ{1DvXm!QEI2BNO_I&E9Qu-63m5!Ffr{3e@&A2P2Y{HMR^OG)A zYYWd^=Bse~X;(~rf42u15evk*gQ>bPed_BU9e>68e0l4%31;@%L**};0DTZGsD}*r zl$5pp8&1!R0#Y@r_*_I3rP8y&&yjXPb&=5_?o#9*&ky)LbZSr-JVI=5sCc~zFEZX z`PdVFxa4dxuSho|wBM!cdpZ$jw9B#3Z_U4W^SuB3yg+);08ofs+0ByuG8gLc+&Ue+ zVUSJ}OTI6EVDmj)9y<74EK&Z1y!tIj34~zZ{5#9nkvyV^d2+S7`L|@qkJ_jxlB?|0 zeV|cNPPuuGBYtzJit=$gVk+d+(;oHYd`ATeWnexw+34*KqF>9?mG@SH$QGZ;@ zd0uyz{(HYiFV6US#Nzj-m+ z+Jncmfc9;&-{~yd2Q5aKc8)wn+GtakjNKUiDC&yu;Sn)^kP)WbdyBGdk=6M9uN{sG zgfx}J=QM4%*>y_&=D5wO&m`5ZAS^0!svq%c1VBK5Q~eQc^$>bvX-#tzgJ=nnW zdU+J#GI6`z_GH9d|77Qk_w;&6D8qRI&1>`ES#{{;e(kpEsFSXiXE%EnLf&L)tU(;) ziq!}px?DKaOMDBgU0x(P{tR1Ls)8Nkh1QZf!%DDx|s zXGD<@K7?GoR#bH7koVIIT&0rzK2Mk&s#?dliK34iY;vPXX+S4uz4a`dQ&7=CkNxUN z=of9T570JczL!0T-_FVO>L+p~b^6i;Py~6Am8G7rjcwoQI~FR(&EcxDH@R4f4;A75 z!^ZLf{E;w#Z2MZ7+R|U0Ha=1f*yJXYP5M+d(;oTh&Gss(!sO1gx^(mI+rVKlNBi>k zjDMttA8jHoD1-*bKMAWuoWEL3zDJ@h!(9_Jr;B3h8dcL;yg#Sb+Z=|Ys_i7NP=Uge z4A%V{>VgVHVuA%hsv54Q*YV181^j2fqy7}R-x=0EZ+jyfaqze{6SKY%9lJ7c}Df1 zeb|nu^XQ)L)}NB}Co4;&R3pz|G9Trjp~@x$WlDhTR2RZqt(r200DD~`G0SG(gr&=QaXkKC;g{%5oqK$ zwwL8^q>y+5A7@(*nv-VV8xXm*9}&FHzkUv&VlsUZICBp9Oja65-;4H(+hjWGAgyeZ z;IjT;(bo7XDd~uXPZ0*dvc_AyPm{?sHlP!~#~EPtT)C9fd>h~F;zUT9pTkJI2#2q| z#{rMSQbA0@js*{w?CQWK!(=teFqEiBOW+c-t*O?}urjHeW1DK=k=?njhUD+qTRf=m zcG3F|Ki3(#qwTjzdHlnF-4`Womjw!E60{LEABtwztDe{n^m72M^+1XYNK04&|8oG% z%IeJz9wlV^yYClAl7;7%Fg~ujF}Jky&a(6{S^(Nca_etBa*H7@h5wvxSS53R$e7}@ zSGc5+EwCd%YI=eBb^fG88HCL&Y<*QnOe367rO5I7bEj2kiL%v3+)z|`=FX@1pH(T4`li&i1IaQbvE~h7{71~lv0jG^`a*l< zva?B!Wwo>You%plXcy9dx%Kb8UoSe!CyoP#*E0n87=hdE3XeX&1*Nxu^AO}#KhxKh zX62%%O3~Zx`|rQw_@|Q&P2>(klx~Z3kSpT8M*BQ}LT*RBBTcyGmE0a8OOs9ouNh~r zD)mw$D@~s2ZJLoqCS7 zJ)qD7%3hAppI62=s4+KC64>#|`0YREF@0E}QRc+%mI%d(yvnW?T}CEmVLh+QrR+b7 zQlQ(hSPvon+qSQya%e}-sq)rTPvs_ZJw+7ugvxDazAU>RkvVcO*`!ox%Y31XuRJ}5 zh-Zia>eSsZ^sHJ+H&OEKF7w^qUB&i354mlP(jUMTV0A=9* zsZ#KAa;{vCpm`hl`9P4v3SxGLrmEex4AZn>gZ!d#2R7hfFHqk7K42T==4rHD2f=&5p=M{o5%6 z26guPKWR0{O7kPwE99}s*Q9RtpMU=X3fyht=BcgsAFjoue?Z_*jo5Ttb8iTMQj#V}8%$Nrk_m58j%f?r6?@b`hx;vNP~ z1-~zz(S*5YFX-`Bx->Oy?>@v^S|FeQ$X5hx9y)let3(06i@FXfXC!cEMXsvqq5V)B zGB{@by0UwNEv{#zS3MaLI?`8PxbB~*3rtxmf^C03+CRREwPPAy}O=Q zM&5gQ|Ju5zhO6Ls5r~@>xdE#$S2`l)tAh+$X`JMoTsn zsX8z2Ii$VE&IcNm^RTI&jhar9mkOXn*B>b3;#_HrOVF-9{Pz^;XM{xm|TlF9^?oLF{-caart+!Hn-p|fJjK?+i!V^R))ZTwel4Qp?_C4*hMlp&rt zzn=xg4Hxt(*TgCI}wmhfEyur^$5-9#vd$oip_BV)jBOuf=^x^ z9^0G600F{h&vEg!C}G+HD63iDk-^XxnW*~jUmJXY#}54Kax{k78>pxhTTgMj8hS#I0!hStO;!^`sh6aVSG zOHak7a8`5V-Kh?LMvpIyI@t{DUXlD<;u%FP~+C)QBNi6#2XK2&DF|DUuDIpFe4XuS6c`+U1e?RECI`J}Y&`#*TZ1H^8-afrfiLR(*i? zP~rMeX`MZKmL~GxP53j=TXrw=w)T*MRqPT8iQ19)N(s9(97q2UCCthFoaP-a=pMgz z`OPt|<5fyh7|!_YQYR!&h&0E{bIF-GEP6xBb*j)df*}S>v3SX}y?om-$Q^%ePQJ$} z?iw)2QS+I-2IPapcEkNQ@&HX{@0n>3m+d0WwpNFGG!s^8N@5i)Yc=|6n*^kHRA0y0 zzEaw)n~fM8&0-?1Gro?!K*j?0D^biC;THOpiN(gE3vkJZoHtT7SBgF_CiGAP6<1M= zmACBaL;U{HFP|0ROp~aT5AI8a9naVZQfV3kpDvk#akQ_^mSc?_EwV-aZTLXhf*1{V zZpQ@!sM&n`_fawE<(VL=`XSAI7r#_c`g(lTz37XN6^$Va4X4krug9j<1yl~KlxCX} zKD#J)ZpWBfCSg+`V^(!qw}I)nwBp|49O3wr^pRI@1w8G)rhsU(0}GIIDZLofW6!NyIsErJy%bQ3&$EwZGiciBtNoz zGZBuP8ggBO-Fl(&;_z$B$Lj_r_+CNL*43OZ?+HuTh-^Foqvm=0 z_@yT>wX$j=2vTFRd2lxUWW2Z0aL&#!b`zzwMqC2?i;lJ^*8yu`>v0OvR+T%QAjO$SlCcWUPo$CyG7G*Ji3Rqf6 z69pK3?~o@9MHtGXGf5zW8W+;RYZR%fKv;!4C6Pde>z})@vh|B=X5^E<;?cBnAo5K! z?|$Kr(PPWt4GeU&+HHvpF53q@S5Ph_DTGQb@ycEggGQr&X6Q}V_#j~)9?_*@9Y6J&X|Y2D*oezx z)#JVf^(G|hUW*Ozat;ONO!8~md`c7U6V`I1==Pl>wpYL^&mz@>#jMm=OB2^nsr|hR zSos?8GDIUwUaROV+gQr!@y{~(@45?=|RK7W?MWQ zyOFQFfaW-8lR>!vIJVBdD8#@9S;lZ&2Z7qKlkrV^)bs1sEb8F>aA2!$ng~>(xfQCC$l$mQwE>{Zqc1#Cjx|*hO73 zfZ2S&WP13PtdtC)zfxL+odRFxULeG4f^i#s1@mj!&JBR=es%1Z2O3 zzbo}zx^x}t~p)6ZzT_=VR;J_Jv&GxepyfhxV;t1TW{r)vKNc%)z_#Kg05+ z_(P^0vObA1F5#=bdHJvs9+7pMR|!t4=<=hwIf|okF|_5L!ZgLzkUMzxGKECc21{F~$)-dkt5&8jv+3yg=6S zLn3LW>i6Pk>oZtkYk>CGTU;DHLF4h2`ZG|-GC%&BhxVcSdb*RZ_r-`R|6Y5L_Sfp# z7x6uNiIx*%$B{k+B}C;L;)HswsoDe8)5U)Qb&MlZwHmHY>pWoC+))}&?7sKL0=S|7 zg|MkAR5$iG5PJO3hq6#PUy(#jIuwL|297}L_%}bajl0TcKiG|U0anU?{rGxk&;cjV zOv&9=by>e_q4H1VN7qb81^(@pELmAyGuh0o(d?5_i@P}G$MHRDJONX{9eSU>9_8nZ5y!? zk?DLz#LE7+()GMFB?@)?Jsok6#S8v4k7{#YTza!AlS+h9desq8kL_{QlxVo?RXI*y z=?WvlJ03j4kG_Unyl9+S6yNd5JWM;s@+}RL9tO9d3!#Z-)cMw45;Q3<8oVmWi7^^x zm(l%G2?T-HD(E2T_PV-<)TE!Xa?d8bogVCe_I{IoHbJOlRSF@e>Y5`d2^E~5id&E( zcZZv-cEodr^uB9pz*3$AeX#C^->H?Sce1VlXs2a0S?Pum9HC$uvXpgr%n`LU9roji zD3`GQdmBNatO|cS){gzS@5!e?Q-E}HR6y1RymRAy#cC>mi5=x`do{>QlTwwJ)f^dx zk}E<4Sye85=6fP7OwDDE1^x@k&wZaQaoT=n2cD-+WPm4&uShLC zpf0F(`n{F6H%)Fm*P9oE4FA^ZGVfX8^>HqmR#R&7PA(s>>zeV(^&s+KN)L%5KO^Vs zF48X@iJN#fohM|v5?9t6CjkSahtJ;G|IBY1I5RnZ|I}CC?6^3Poy+Kq2hxL!z9>~K zr<$|)HvXPz@n)*lig;RC7e@*9%0HQL)y)G0`-tu~(x9wPe^{evmTWufWWD*cfpCXa zws zzJl&IY`bO}*?4M|g$Sco1DL<%;-ykXD>=>Sse?cxcD!C5a9}P(KKWhWV16;{&@S~= zZJ?vh*nj)zMwV>{yRy8W7`8WNT{hiYAKxs)MS(Kt z5wxH^GFXz}@lUzzf9f2Nw0SAx6nUwnpETUvGxpk-Uw7iG^bUM~E{r|Cp;5#65}eKW z^=9Z<>gHL8@6x9G4_3V50?kt1V*xog8u(9Q>WBHn4?|cTeu*0y0CL5OZba!y4js{{9MQ8bK;MB_tbIEoLIQ+z_F;Y@B&4ls*ww`gwFT0sIfoB-m?Hy$?kbj_f{JNThhUMv+% ztzpot{OgMI$w_65de`m^KO~F=Ik;#oeU{B3ux=fdj2lbc^3yZ}{C zYS*l-&*UQHp~eLAH@Zb+xb1J+#`XSBr)R>&ZMrc|(2PD>rr;1EV5Bx@0d3svul*!)2JpA~je)5@*ZjoK3c;miUUOcyrLeb?`9_>Zyk6nNKD@0CVvX5ozHQVr{eay{LsfP>ziXrZODFH(5 zV5_0<<37gmv7~UHJ($)|YhYr93zd5x&sBZp4edZ8hMH5ZCta>QzZpiXC1g32SO!@&4*efpbRpCEX;(^j_xmZu#qi1m| z`s!}OC0U|SPv?gAsOY>JCiBp2hJNl(S#R5hLv z-q!B%_cqUy1$iW|68)~ev%;Dm-;3)girY8FXgD;}=}41sdB#1j9dO5KK zc*VQ?){^jjjb7=LH!yfjLPt1n%x@8dph$~cu(9g+v8C&jI?IfVwq`cvy9tul1L~e< zNQCQ?4IjAe-X9c zUq}YeH1h-+O(qA-{WU=7SFwebv9Xdp!;vso(TK$NFOUcuQ1;a&o5y*Iq>MVZ<%LhM zdgcJ4@t4W1{NR_bA?NkO#t=55FH00A+E&4t77=auu(kHpx48bOD!U zMujr2T`RwuOCFL-kF4@`P-5EsqTJcZszeTcmEGG6u&b4b0iW zI)l}m5`T4n-wt@TXX;NjVsO#BQ8jnX$I=V@%A9~INO5M0Px1*Ax*HI(pl#b%P+_oM zf8+Ys#~C@#nBOWOzqR_k?GU8!MY1z6ndff78GRRmMtWao$RSDb~u?nT%hl!LqyBjwPY5r zyvqAj|Jg*odaRJku+}+Je~b0TO#8T3`ky?-Aw!!lvp1d8Z5?Y~??@1*_;g3Eog9+l z3g)26RIhVOsj8~|2y$N%6#s?{g40@TS`n6=`JCvlBDp98_Ad0vZz+sx>I(3c4Cf2V zRWh^Dtdx^GN(+C#UNHL49Yr3%d;?kkb~W!llYr7b-kQHkGHe^sPXF*U82uswS?NBC zvMat#U;&{m3Yo}N+Y$j@W&b%?d2@lB97)*|r^Qw~V&sYl<6dPsJK$AR@L`Z!VXgt2zks3sjZ1D8cFSjk;-WoMQKt(;HpA1c26}y1J3)l%wJ}7k}5dzyRH%Oc+NUT+1-1(@9=@cnWW(7 zAV_ljpn2SdOt2j&COs=9484TFcwZMZ`zcrkPIC?E@`u*kv0Ab9X~r5Th3)&ZFZBmk zH|5j?wSS}$H0t5dlPI@q+1UD~$2M=}=Daw+Ae1NN^6aI;>A!P{{*LwQ)y*tctqVFU z21pE-e2(7MfETWPkM-B&VK(X$0Yjo9A=iv|e9nD>HZt9Ohta`kZ0)sUMUX9G6?xY? zif^kwx!|^qQVwQ8yBc0VGCm*0Jt7X7;im%uV0=qJ`Nmelm!}0ECQ!du=KXGD-e`O? zH_9{=iSJA1;1V8@eEN=E{TDrC|Gl2;xM&i3lV9R-{a|e97YsfQi)Ig5lTi68DSm7d(PB5s zo`3Vb|HEYl$b2X|Ma#C1ZBgZW`lN4yoZ6CVVeH9gx;!b@&)qHwOHrVVrs$dSD<-Vx z|HCG4hY={qu~fZ+x`*qAmx`+iQE~)?_+4O=o>?zk;iv1xl^$6Q<*RiQ59mr1|;v@)-Adf;}r|3M~6f$bnM+Uf2;(tYf@faB>>$4rU^a&`cHZ4Za zwWePZshl%5bk&{=^)@+*OXm39E$W>gHTD=b_Qr9~{1i4A)%Q7m%Lv(jBxTqqks;6r z%rAs^1ou*_8aRd3=aO&sH>KZV$PVV@3 zyoUOdd;yvLRQp2{6{On`HNcYpTB?j>c;phj|Y}9@Nsd%CmS9F;VOn zj}Hj!4lWMB-CrTsj(acg^3ubp+e1r}l8}LhT5}}_3v5Znv9dcEEt}*JGbxN7eKYb~D$q6Ib%rHTZ$gNdQswyKTHF6McEGvjEpGZ60r zSPc+)e+JD<4K71{9%!r{REDATF9h$NZ7uzNWd-TwFL^Dg$P^-A7G{T;#}Y|r`Y0bx zk0#&LYD@ePAy#$y<3CtNCgP62r0!*8r7}q3+AO#5<9g^#XQlO95)=*J3M7z?|Ndy_ z2vY`x9#bF+08&R{f!5V~Z*#3z%$mN0}>QJ}A|IeB%? z7Wfb9DtqoJ_{`Up3?&s*yz}UV3j_m*M*vPAQjkO~d|PJa{Idhac2?RN>q zBLA(L5Cy+MgKZNBZkb&i*Dy*m-|(L{y)qU}dG3=4M#b8@%5K4#w+2*^9%i{2*x;fW zsOo!yH0G#VR?4$%NQ|eJh4!B~U9f%JUzp9K%T#y~S++jp{$-c4+)u+v8SHFSm@y3( zROs(mCLnQ8TbY;pu`U+YA}W)8EVDk-NQ zYb_NI5wHdD7Ss$2;wJ3!=}SpyWn#G5lLs=^Q~+2=%9D5mhuhvN&<;PV-HqeJ-#z1&0860&XU@c76jB=kg+Bnr+L)Sk zY5`VHnarlY_qNZu@R#w`LL|4bbiB`!De;r_APljAINu1#(04Fb<v~;SWk|b}GF4?~z&%%m~~+4A?d@6@0YXv%(i=P8P1u1LKfe~4&y|yr-Vjt>bQ&(wGi-g?Urt>d`M^l$_kX$Ba*&`@~l9l6_wCl z9WCtX%8!NF3U0+7Hp<<|b?rnkL(|js9OIy^8|d$A?FC5P+%E&)4G#y&m>?2`Ra)-} zg3@Rbfj2L^Kv$#wc$;82rl<NBg+hMA$k>mC6r4I$DXzqowM zht}orWFm&(!=P0mGn5L_^@b4TiAj!;9P%G=E#jmNSwrH*v409{48a>D?k zsT4`)7z3Ms6eDB5WZUlkqTSWIlp!6q`!{u=>5sY-u_h`0KwC0&^MHxF`uQhC&B~BZ z&PuQPJ;_+~X!sS+_~$P&D1Z6$?B_}egn^uDX8DZz)(`TEgsg>GFDBVvyCG-B{%4)3 z!BP0`bQsXgAu$r{cM?QP2Cvl7s;E&22+w|U?9Rk3DC~wAw0dvP2wi^%V#WOP^`r43 ziMj`Tt)lUaMCd;$Awts4MqYh&O~Vv}%i(D`H08yiJQvs8C7lF}jzp65H-~A@))Y>) zn?;Es3Nds=?SCv=S`CTY6yTl7ZNNxi>SLM51PoNg*g#^c{6(j@S6~aE@$kFsm1-!E zW&JefXQBR*`IyO-YTn+0cNB7ar4wM5N|v8%AvPTpxQ#=9e8}MtKjx0WpHh4~Bd0}K z1`0JaOhi8#b0kvr)3j$s3pl=l>wZk-@AMkG)hn&FVM)ZVpJaE*PJ4FhA_(Q;$bZEW zDqrkEu-DLKOvVpB4z#3D?SgCW+b!nt(SHhGu|>5!s-@f&!|>ytkR~7!d%t7#&j4sA zxr?Saypa)7I{Kq-!Co~V^E16tZG$CUkDyA(`uCS`uez+ox&OqR3^G)OT$6BuVeZU; z4S^Q6O6XM?rNw&jb>P3NIt*DeZ^?c(!bI}*@8K=S)UwDS*l1$PPG1V}6imeE)qMBI zoEFBXZp~YID6>*sS9KY;&>}5lcKQWRkRDug5^fc}*R7_}wjOqGVS1@fLhnL6494to znVL8W6r|APZWrE$%9IZQ4HXtN1s{=Iz0GIHhDEb6lnr?2{-Mhig^6HAuThqvXd=dg z6-6$@-Dsz=C#SY02ltd&h%E%u-L4EEZ}&`W?%~}`=bLerp}HQIIN!a!T0&F0MFAY51Nsp3VdAHDTdsA{=c}=osQqS2o zOXi3}OgV0^?sJ3j1a2r}W}8@#Fdqp6H^0&(gG0`%Pk7X-$wTURr9=MbW3i3NNg~n} zgg6MO^9CnCX~9SnTPa>Iz^A~%Cu29+9WotkF9d_FwlKimICN9)LvUp8o{^31gRlyC zWo-LK@%B8rKfw*wD0xb@+mXQ9_ptztE|#}^aLd)1Cq-cT?N%^cF)ISNW_rwWy#9Jl z*cSJ+t2{~pMoj_L5^LpQ~nFr$v1svLz9Yb(~@+%g6153{`N&N zG)T!rygU2w%KFpb$wH&>Z&hQUZZ(M>hO&G@h3JUVGL5g|H!HnYsYLv4#8L_hE+wtT z!)r>PS+KuEP!LjR@|GigqY9>dzc4Q2>D0U1y` zl$Tl}GX8#3vAUy8cMgM7*m+nMthr0pX=$te_asvd@c}W!rT}O%iDfS40A>S10CSN@ zU_h&lG|<<$ezsBg6_P}*l|{A3=-M_?MDdXW_p8!l*Uw0f#S%q;7HIN4%VGA36~zrx zT7>&a{G5%xq zq5Z0zLwgeRXSDJm@sQF<1XZ!~_KiX{OW>ZWg(S8uSu6Q>kW;=DqYOGm&7K3DE`cq6 z891mN3Ct_Al2uk(>iJhT2GTij1MIziqEr<(8r!e2VKP~?t`{C~oKN!fKeQX#mLFhl zpu4va9QYjfPBanM*1(QEp^3WphZt6rleQjt@{ta8c%}n9332DjcyzLOM?))N+eixo z>kZ*nQon?*bDh-BSr54x28BDtA0*L`wCA&mShkIqQ*?|z;+l-)zX zX8g3Bh`X!m*G)YB7%6TjcNj82nDi_TWclluDwKTckOWCS;|(TH-OQKIKR*&l_F0u0 zNsP}`X`Fup=w^5QFK)z8&Bun8AZ*I;!O&1IAf8NE2Vbb>}*+vSf9%7zK|MnBEQjh?YHmkfXS6du!T8L zNl5SQI&hwuO-TsETMdkvn|>?IKe&;$qU^xFa$RbDxA{*#uw#p5l0;~5oTM1Oe7G94Dwh0q@sS- zv4<^d5ng)IqONVotIr39Rv!%YoGH<$olfdX1;tv@0ego7P#H{-Og;m?+8v!2!+2kb ziN0=e%36p=DbmNnc!PzIHd~TmT6DMcfCoEox_k}@8WH;g&q851{3ZP+Vzgn)(0zNF zu)^?{h6_+P>WOeOhkkMpRByeA0vwMHfeU={f8&T;_pxR7U4NaU*63E~rCnm)exywD z_E$nf)%G8GRmH=+SoV0zJ|`g=LFifUDxHP#!nOe9`$WZ>Jj6Dc^X&t(e?<{e z8K!RCUb7xQVyk_utmlrHI%W3GuFo^!ETfpjSgxGX+*iR+QvfYjuxXC@SVvpfIa|od z?B6VEcW-CnlkD^M{J9~AeRJTTH!UZw*UpDB7BEOhfSqG(YTrbFeN zhvw7U?zIBM!HW|KEZwRAaB)yQeh~8`QA$jFxM}gxsp$8L?g7i1sJ+Z7CdMQ5O3Qd} zm8)R+wT>_nV!5VmqLX%iPOGjp+}4+cM6_q(O=y2*Jqu8NkDbnaMLY}nV0--h*8yuI zJ8St&M;N1yVz_V;1Nb#mkF#rk8kzyr175=zJ&uC{2-z?;7)Q`w*^t$j)5|sXTopu| zV-`eC#E}94hoAlmKvy2W-(5O*h?>+L`V}IaWRNP9s0-X$^)#}OgoN^B-OavvpQG1O z!`QMFl~YmbbGrNAzj5UPRE8lxIlI4g)EtdApI^e1%B5~$!?r?9ViIrldq}Z7(W0eA zd{6Y(J43@$mLUK?5y58&7<1L)W<pAaUY<)=K z$XMo?)C7Y(^((TZJf#-?HoEIj|8ghd`JKau>{0-xu~Q4MM~r}NfXVVP8+3sdk_s?O zAmJV=h3_n7R%bo{FwcG6%h4pw>QYFOSc0vn5BC?%4v8^K$S&_=&MdgnRJ7M6^0@km zL0gwwSzwMOT~hE#^Ttzzu+ar54mov~2jAwYuDESI5%{`@)Y!Io5uKIj$}+cn)-f)m zoGlof+zRsj2F}{w`D9mcJPETpL*5r1M*K% zVfD{Qc$&P=MBpB$$s$`A#=ZB)bh$a7;`%V33eo|C>4^>52sXuki+6#7JnVmL^MXAf zB|#{xrF2At$$ZaE;kb>A3uxyXaO4q2mJ|0j?T|M#CYj#E&U^9(q}!S;TaC9XyY6cs z5hYv?JF$}-xW`8y(o3ZX{OW$Er6?05eCyt`@sbmELa$W&^_on#`~;{^$12*#lRFYB zDiGZQ#=%(+k$`k-%VjISDjL|^5xf*1B*G$RX z)s2v1OIqJ7Y8 zKZ6iw#=}#(J>DliA?JVQ_Od;%32SXTHJN%&$vb?qo^k7v9q~O)m8Ou<(HsNBR z`uuEP9%QwnyNhqQ8gY`WAnS+)p=$%HoEG|XQj_h?k3|%SChUh)_7W7a^Ia=O$XYrZ zI`?Ugh~TnI&M(R?P~ZgR(ZFBW-EwX`gZABbNh0)o|2ri>Ehl}z*8-hE-W$9ZEd<#?8aq`$;tJ*KXBP zHa?xFI_OVuLFU;eB5K4$w1yWx{6>!BbVL?o6NoVGOl>Ulp#h8#gw$nFPVsR|-7Ns@ zY<@yTZj8G`q2;O;3W0$w7*QAswpiBH0&*j8rYAt z5lyeLyOpin)Aj0On3j>$E#tS$yz$6jsm2P94it~R~ zWxsEmI0X#18oT4e-FJW0d^<6_dRsA9^q1n8lf!}qr9n@t zOUz;lj-Rt<#hQS_*5UPU)7D>_Rq%1Q^SAtqPLql|R_eCF3@2>s0ATjo*^=&|X_{J& z4FAr0)A5vG;|tmf9v}5VMJdUB4o_pl>;?-d26ri8EteTeO}7@-EU(*i8M0KDOxeHJ zUf|2b!1|5qFX7^t;9nRPaf^Toum^Y@V$^OA-Kf(T84yzy5&%3g7~*WWk55RhnP^n} z6{ja)w9#F@fcFozUVEt3H38|?3liwg6W zIj8tbVXm6AH!YJunXfpdNb`98Srzk<#z}1H4QDyQNs18rh5)e$}jHbTN_@+@-~Y1>V!D+A2mj-Ru=)6bkly?b$oOyEh{x#(>yacZLZB~)%c?%_+_Y5xk2k+@z z#yXyf_Y0{0*AQ^?6O*t`Jdx?_bN0idRSvFxt%PF{)G5X>`r>sWk73`q8Q!YKl>3n& zv~j>O40+qa*lEcJ+-8!)qB2z^#vn7x5@auvfv*@6XL<8eG!LGkinL6h0NEGJJf62? z*!AVHMS?#*-1smpApGg%b-=LgsQr~7z$P=(-)Fmhvg=l~QfW~NDc-N{(y_qQ+y!a- z6Kd=8?Q2~5`UjZ-g^F*!l3!8MrV8M6cDK?L;!w#YAyJ-K<0Xg%26dkre@Cof{~uFG z6*Zs|n0z=}o%d4uN;nkWePNW18;&5pUkx!XBsG5eK{>VR?;8xYkABzY*h z8dLDpi(dI0O?hGEIe4^YnuA|1gjkSK0KQeAmbkX*GI9lMf zV$Y2*+&j0B0u6qP%$eQRCLTOXmB1Y)NGv@;`076CM^RSf>Znl%{x3p8sqMHOiLtgU z;G&J;BKl7f4BgmGwsswQ(S$TuibE2OA%9A2F4shq&oRSXDW)9E0J z0_)(ZD3GiLQhy#*#IKE!xtQzh2UAJ^Hwjg}@K@pU5OF<|3aQ}6og3}7;;yOFeQ2|A zixU*%x~iOJxAe66Oq95L&ks`nIxF=`<-teWX?(e;6xCGCww_CtWs||y!$8&w<}{nrwX2N!1o z&Ff!oQxB_=sJo0aX7o@<6x~xPBMeGwTLVPdWUkygYvmLt%F;AcBjZ_EBq{zj;bO^M zkilZ)x`Pk@G&j*LiL#WvzS=&LM`-Qu9qm&0d+~3z66@2MUgKbH<9J40R?fa)Ml^BT z8hFpj!^Ss4yK^l^(}w^|Hh`HTjkDUB<&_j7R}3i6x19y4^>Qmk32%0CaCupBSMuyb zWiuqB3Op!eEo;-XQ@CW`)kPKDy#q`?q}nwTx$-FOv*Y9yyn;Y1aoasGvrwY=)LxPz zEpb|<$`G{uXM1YJ_iw)6U$W4>R0)^1BY3DD8&b2fFAtJ6ldttMdHRB(P872=_Uf1U zUpdp&;9q{TsUsZ-ZemX!@5}T+IjFG|1@gpm0_}r)NMwU{xn7HDP+Bk)D4la(8tKgv zFcN^nNM1YzFSeB`HjY?Ts&qy}Il=-4l1|e`2EQNlt=QgXgh)+&B=v=`l7R*E(M_za zkV>6)sB@PMgiL}`gW-;h?kxWz5e(+|PR(qq?uy~=oVUrmcn%XHvbb8wNu<^*sgJSj z0(RgpC8ebGEdLwnn)RN!wlHK`{2*YC*ZNMu0i57gnYp@>c z&`ORXD}jy#3)z&KXwIGI;L3PAd17w!Vh;#}Vq~F74*N{c)2xqE-T(%5Db09n;H$1= z{mVXZyNOrCHg7ht^0$8jH1ij9DZYA3l-ReH1bXs@1cgcZB)+Trxm{-PXMpg`^*m;a zH@j3mDc&T6ST)wHmYPl2;{%fODy2uzwRYYUW&%Li89JOlm_9wYqOhUAi=_YI@55^w z_k#=N7K9$B#mSdDE6~D5)`HSy^-}Q8#+L4|hu8aTU2AVY432T5wfe1xM7FuWNp4|3 zFkNB7TNegaJU@0(0Hux05y$hauGjlDpC~c+GNHX3Z{fyGgxN{%Vd&lmW1-4SdP~9V z7??0bLO(WS&eQL1J{=nU*Y2jh&;_2@k@5pL-a-(RGNATwU6revq_%mNmJk2^KY}FU z6@=XlArc99A@`B*39UUh#QwcP!qDiCc3-+y;dE2e zV*XW-UUd`F=Sc%jUDON!y6u>wOPSQwN{um-B~FSgHEfnQS+a`}2Siq*qAnYF;9Fb` zoi?O8^VPLXuJp&e8KGzaneXYcaUy{=h^ylPge5gqG|8uQU?RII+KXKM11m)cE62PJ zzSj|eu)xoI*4Rz_9a_YG4psk4a0_lp@VdXTen3P+&z1i-_udgcb}C7QE|_|eR5c;l zt*R1+pz?pPK6E-r=8D-zs#?*)iqdDwpGWar=BUZVa6{xi zZqmlH!I!~Tu{pc!-+}*rgYyC&Hdg-mkWFOyD9@R$FcgN`#EE(o;$|C=9W?!*TZFJ` z3#=2q+ZTPV_X_fk1cve~alk9u_u&yqyzW#X#4J%Bnbz4viOhWYXXjQ+>bkhr5aCE} z2qVvYF?*k5a91pZdK8AT!RP^==9|9x3|Z(y4*uMfw=lN>#W z+Ll%j79ulprb{yfXIYaabo%KCZhh_(qnbkkq+9<^{uU4 zm;1NvuBWzMxD&Olfjjor`kB^W`bu@$V8sJAE+`W zj~8FFD}6hxlyWM!4_1pmcwJcTrE>9dRJ6_^NTGE%p_Tp_5ug}=6+rlw{)#yLqK_8Zr8xAi39dIe!?7uItQl zkI*79<)#POd2q2i`;|l}DR3$sg|tpL(?j8p?|dePImWTT6LnrCciEEX6M=pdmZ|Ew zwbo}`(o#R*NQ~gke<}k1$jp!LJ_WuTqnqXJ}ujWPwCQ;-pgwQhRmaT zwOR|vm|yMcpzJ-Se5nF^x6D2)7gQ<+I(mf*4X1Ne>-_2|+7T{!ntwWL}@h5&W0mBKbKj!=6d4GkEh3|U^fL=yYwTMM=o;d2BjGx?;J9VIq!h!OIsZZb zst1aBt<#=+*L#u#f@GjdKq=F?RdvIj8|tiJ=K~5=p604cG%++h z*^9Hvj#nK{UYEWkFMa@ZMyfIp4XR-fW2qMsF(Ys{-Jf^{72VQvx*J~Jv*#=L_utXlMQ_f^;MLteS;7?)9_gYs!$@ji}b(fwl?i$(? znBx2In{gA8a7s($%2R*2hH@^sIK%4(aQ`dq;?X^|qg~|ybBN3=KI)||Ys?g?`)NC4 z7lxHHMh>2HCxGvkT1pTpQZ9iQazBBdaFdp+HhjUgYl5;kkwO(C+uDWff?sOGDR?$W zRR7oI=4TXhrK<-RBO)^PP- z%tJF=Q~WZOJ(i7g<84VlRZqFF1u{l(N-ky;Wd3@r!X9tBhTsP6yHsT;rQ`8ATr14K z5pTLABf7w?uuLPDKWHk#XUa{qnHl!L%-oFrRJEay_0#B)DP1-T{4P&WdW0Z+E-|#ybXg%jmFMg=@Sy_75r)TvzPOgqh8Dp&btk_D$=@|WPajT# z;MFVtYEE%@kHg!wVkW$jdJJn|-@RoW9oXr>$Fbz;qrbhzCO|-E*@>~;@sy1fHKalyH z_DU3EwW#rP&-QCEweT%oQ@DBbig4wb1+U)`5^p4P Date: Sat, 16 Aug 2025 02:04:21 +0900 Subject: [PATCH 014/113] =?UTF-8?q?=F0=9F=93=A6=20package:=20add=20framer-?= =?UTF-8?q?motion=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 43 +++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + 2 files changed, 44 insertions(+) diff --git a/package-lock.json b/package-lock.json index 9b2011c..b32d57b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "axios": "^1.10.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-prettier": "^5.5.1", + "framer-motion": "^12.23.12", "next": "15.3.5", "next-pwa": "^5.6.0", "prettier": "^3.6.2", @@ -5746,6 +5747,33 @@ "node": ">= 6" } }, + "node_modules/framer-motion": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.23.12.tgz", + "integrity": "sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.23.12", + "motion-utils": "^12.23.6", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -7368,6 +7396,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/motion-dom": { + "version": "12.23.12", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.23.12.tgz", + "integrity": "sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.23.6" + } + }, + "node_modules/motion-utils": { + "version": "12.23.6", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.23.6.tgz", + "integrity": "sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", diff --git a/package.json b/package.json index 757dc95..2ffc6c4 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "axios": "^1.10.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-prettier": "^5.5.1", + "framer-motion": "^12.23.12", "next": "15.3.5", "next-pwa": "^5.6.0", "prettier": "^3.6.2", From ee7af2f70470fe7fc837bc563502946fc317e44b Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 02:57:39 +0900 Subject: [PATCH 015/113] =?UTF-8?q?=F0=9F=94=A5=20remove:=20logo=20layout?= =?UTF-8?q?=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/layout.tsx | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/app/onboarding/layout.tsx b/app/onboarding/layout.tsx index 5c40724..6667b6e 100644 --- a/app/onboarding/layout.tsx +++ b/app/onboarding/layout.tsx @@ -1,6 +1,3 @@ -'use client'; - -import { usePathname } from 'next/navigation'; import { ReactNode } from 'react'; export default function OnboardingLayout({ @@ -8,16 +5,8 @@ export default function OnboardingLayout({ }: { children: ReactNode; }) { - const pathname = usePathname(); - - const showLogoPaths = ['/onboarding', '/onboarding/login']; // 로고를 보여줄 페이지 - const showLogo = showLogoPaths.includes(pathname); - return (

); From 0563b7674854abb80b579834b35ef40f0eb8b3b5 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 02:59:00 +0900 Subject: [PATCH 016/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20Logo=20compon?= =?UTF-8?q?ent=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Logo.tsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 components/Logo.tsx diff --git a/components/Logo.tsx b/components/Logo.tsx new file mode 100644 index 0000000..f229b24 --- /dev/null +++ b/components/Logo.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { motion } from 'framer-motion'; +import Image from 'next/image'; + +export default function Logo() { + return ( + + logo + + ); +} From 85da693af67ada4a97ee1c5ad3bdf1c992eea833 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 02:59:39 +0900 Subject: [PATCH 017/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20splash=20scre?= =?UTF-8?q?en=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/page.tsx | 123 +++++++++++---------------------------------------- 1 file changed, 26 insertions(+), 97 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 2fc0c21..0005bfc 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,103 +1,32 @@ +'use client'; + +import { useEffect } from 'react'; +import { useRouter } from 'next/navigation'; import Image from 'next/image'; +import { motion } from 'framer-motion'; +import Logo from '@/components/Logo'; -export default function Home() { - return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{' '} - - app/page.tsx - - . -
  2. -
  3. - Save and see your changes instantly. -
  4. -
+export default function Splash() { + const router = useRouter(); -
-
- + useEffect(() => { + const timer = setTimeout(() => { + // TODO: 로그인 여부에 따라 라우팅, 로컬에 로그인 상태 여부 저장 + const isLoggedIn = false; + router.push(isLoggedIn ? '/main' : '/onboarding/login'); + }, 2500); + return () => clearTimeout(timer); + }, [router]); + + return ( +
+ + +
); } From a67f658c09c1179d9dcb6c0e2ca69dddddab7c49 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 03:00:04 +0900 Subject: [PATCH 018/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20login=20scree?= =?UTF-8?q?n=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/login/page.tsx | 36 ++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/app/onboarding/login/page.tsx b/app/onboarding/login/page.tsx index ccc0aba..1b6b6a9 100644 --- a/app/onboarding/login/page.tsx +++ b/app/onboarding/login/page.tsx @@ -1,16 +1,42 @@ +'use client'; + +import { motion } from 'framer-motion'; +import Logo from '@/components/Logo'; import GoogleSignInButton from './_components/GoogleLoginBtn'; export default function LoginPage() { return ( -
-
+
+ {/* Logo */} + + + + {/* Text */} +

안녕하세요, 반가워요!

Hello, nice to meet you!

-
- - + + {/* Button */} + + +
); } From 89f749c311c1674dfef548e25ee5f8cd9b8be9e2 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sat, 16 Aug 2025 03:05:18 +0900 Subject: [PATCH 019/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20onClick=20pro?= =?UTF-8?q?ps=20to=20btn=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/login/_components/GoogleLoginBtn.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/onboarding/login/_components/GoogleLoginBtn.tsx b/app/onboarding/login/_components/GoogleLoginBtn.tsx index 36f6313..1a3ebb5 100644 --- a/app/onboarding/login/_components/GoogleLoginBtn.tsx +++ b/app/onboarding/login/_components/GoogleLoginBtn.tsx @@ -3,11 +3,18 @@ import Image from 'next/image'; import { useState } from 'react'; -export default function GoogleSignInButton() { +interface GoogleSignInButtonProps { + onClick?: () => void; +} + +export default function GoogleSignInButton({ + onClick, +}: GoogleSignInButtonProps) { const [isPressed, setIsPressed] = useState(false); return ( + {/* 드롭다운 옵션 */} + {isOpen && ( +
    + {LanguageDropdown.map(lang => ( +
  • handleSelect(lang)} + className="px-5 py-3 cursor-pointer text-trans-cp1-regular hover:bg-gray-100" + > + {lang.label}{' '} + + {lang.subLabel} + +
  • + ))} +
+ )} +
+ ); +} From 03e4e3586608cf8cbabfa9a5bb9dabb992725aeb Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sun, 17 Aug 2025 00:35:38 +0900 Subject: [PATCH 037/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20language=20gl?= =?UTF-8?q?obal=20state=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/dropdown/languages.ts | 14 ++++++++++++++ constants/languages.ts | 15 +++++++++++++++ store/languageStore.ts | 15 +++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 constants/dropdown/languages.ts create mode 100644 constants/languages.ts create mode 100644 store/languageStore.ts diff --git a/constants/dropdown/languages.ts b/constants/dropdown/languages.ts new file mode 100644 index 0000000..7e745f5 --- /dev/null +++ b/constants/dropdown/languages.ts @@ -0,0 +1,14 @@ +import { LANGUAGES } from '@/constants/languages'; + +export interface LanguageDropdownProps { + code: (typeof LANGUAGES)[keyof typeof LANGUAGES]; + label: string; + subLabel?: string; +} + +export const LanguageDropdown: LanguageDropdownProps[] = [ + { code: 'en', label: 'English', subLabel: '영어' }, + { code: 'vt', label: 'tiếng Việt', subLabel: '베트남어' }, + { code: 'chn', label: '中文', subLabel: '중국어' }, + { code: 'jp', label: '日本語', subLabel: '일본어' }, +]; diff --git a/constants/languages.ts b/constants/languages.ts new file mode 100644 index 0000000..1f0eddd --- /dev/null +++ b/constants/languages.ts @@ -0,0 +1,15 @@ +export const LANGUAGES = { + EN: 'en', + JP: 'jp', + VT: 'vt', + CHN: 'chn', +} as const; + +export type Language = (typeof LANGUAGES)[keyof typeof LANGUAGES]; + +export const FONT_CLASS = { + [LANGUAGES.EN]: 'font-mplus', + [LANGUAGES.JP]: 'font-mplus', + [LANGUAGES.VT]: 'font-mplus', + [LANGUAGES.CHN]: 'font-noto', +} as const; diff --git a/store/languageStore.ts b/store/languageStore.ts new file mode 100644 index 0000000..1e100cd --- /dev/null +++ b/store/languageStore.ts @@ -0,0 +1,15 @@ +import { create } from 'zustand'; +import { + LanguageDropdown, + LanguageDropdownProps, +} from '@/constants/dropdown/languages'; + +interface LanguageState { + currentLanguage: LanguageDropdownProps; + setLanguage: (lang: LanguageDropdownProps) => void; +} + +export const useLanguageStore = create(set => ({ + currentLanguage: LanguageDropdown[0], + setLanguage: (lang: LanguageDropdownProps) => set({ currentLanguage: lang }), +})); From eb759a4c66a7b11e8a49058a7e6cec7b58908353 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sun, 17 Aug 2025 00:50:40 +0900 Subject: [PATCH 038/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20disabled=20s?= =?UTF-8?q?tyle=20to=20dropdown=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Dropdown/LanguageSelect.tsx | 32 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/components/Dropdown/LanguageSelect.tsx b/components/Dropdown/LanguageSelect.tsx index 5ec1a84..7b3ace0 100644 --- a/components/Dropdown/LanguageSelect.tsx +++ b/components/Dropdown/LanguageSelect.tsx @@ -6,7 +6,11 @@ import { } from '@/constants/dropdown/languages'; import { useLanguageStore } from '@/store/languageStore'; -export default function LanguageSelectDropdown() { +export default function LanguageSelectDropdown({ + disabled = false, +}: { + disabled?: boolean; +}) { const [isOpen, setIsOpen] = useState(false); const { currentLanguage, setLanguage } = useLanguageStore(); @@ -23,9 +27,13 @@ export default function LanguageSelectDropdown() {
{/* 드랍다운 버튼 */} {/* 드롭다운 옵션 */} {isOpen && ( @@ -49,7 +59,7 @@ export default function LanguageSelectDropdown() { onClick={() => handleSelect(lang)} className="px-5 py-3 cursor-pointer text-trans-cp1-regular hover:bg-gray-100" > - {lang.label}{' '} + {lang.label} {lang.subLabel} From 635ed61ee53781d275b9a00983190f882385c456 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sun, 17 Aug 2025 00:52:39 +0900 Subject: [PATCH 039/113] =?UTF-8?q?=F0=9F=8E=A8=20style:=20modify=20compon?= =?UTF-8?q?ent=20folder=20name=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/{Dropdown => dropdowns}/LanguageSelect.tsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename components/{Dropdown => dropdowns}/LanguageSelect.tsx (100%) diff --git a/components/Dropdown/LanguageSelect.tsx b/components/dropdowns/LanguageSelect.tsx similarity index 100% rename from components/Dropdown/LanguageSelect.tsx rename to components/dropdowns/LanguageSelect.tsx From 6a8b6bb78fc058bfbd4d96a2fdc29c1e0c07fe0d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Sun, 17 Aug 2025 01:27:02 +0900 Subject: [PATCH 040/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20margin=20[KO?= =?UTF-8?q?BG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/TopAppBar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/TopAppBar.tsx b/components/TopAppBar.tsx index ad66bd5..8567c66 100644 --- a/components/TopAppBar.tsx +++ b/components/TopAppBar.tsx @@ -11,7 +11,7 @@ export default function TopAppBar() { }; return ( -
+
+ {/* 언어 리스트 (최대 8개 높이, 스크롤 가능) */} + +
+ ); +} From 5f0146b8f45b92a3f4774011a8b9f2f72509610a Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Mon, 18 Aug 2025 21:53:31 +0900 Subject: [PATCH 048/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20language=20co?= =?UTF-8?q?des=20constants=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/languageKoreanNames.ts | 186 +++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 constants/languageKoreanNames.ts diff --git a/constants/languageKoreanNames.ts b/constants/languageKoreanNames.ts new file mode 100644 index 0000000..43dcf3e --- /dev/null +++ b/constants/languageKoreanNames.ts @@ -0,0 +1,186 @@ +export const languageKoreanNames: { [key: string]: string } = { + aa: '아파르어', + ab: '압하스어', + ae: '아베스타어', + af: '아프리칸스어', + ak: '아칸어', + am: '암하라어', + an: '아라곤어', + ar: '아랍어', + as: '아삼어', + av: '아바르어', + ay: '아이마라어', + az: '아제르바이잔어', + ba: '바시키르어', + be: '벨라루스어', + bg: '불가리아어', + bh: '비하르어', + bi: '비슬라마어', + bm: '밤바라어', + bn: '벵골어', + bo: '티베트어', + br: '브르타뉴어', + bs: '보스니아어', + ca: '카탈로니아어', + ce: '체첸어', + ch: '차모로어', + co: '코르시카어', + cr: '크리어', + cs: '체코어', + cu: '교회 슬라브어', + cv: '추바시어', + cy: '웨일스어', + da: '덴마크어', + de: '독일어', + dv: '디베히어', + dz: '종카어', + ee: '에웨어', + el: '그리스어', + en: '영어', + eo: '에스페란토어', + es: '스페인어', + et: '에스토니아어', + eu: '바스크어', + fa: '페르시아어', + ff: '풀라어', + fi: '핀란드어', + fj: '피지어', + fo: '페로어', + fr: '프랑스어', + fy: '프리지아어', + ga: '아일랜드어', + gd: '스코틀랜드 게일어', + gl: '갈리시아어', + gn: '과라니어', + gu: '구자라트어', + gv: '맨섬어', + ha: '하우사어', + he: '히브리어', + hi: '힌디어', + ho: '히리모투어', + hr: '크로아티아어', + ht: '아이티어', + hu: '헝가리어', + hy: '아르메니아어', + hz: '헤레로어', + ia: '인터링구아', + id: '인도네시아어', + ie: '인터링구에', + ig: '이그보어', + ii: '쓰촨이어', + ik: '이누피아크어', + io: '이도어', + is: '아이슬란드어', + it: '이탈리아어', + iu: '이누크티투트어', + ja: '일본어', + jv: '자바어', + ka: '조지아어', + kg: '콩고어', + ki: '키쿠유어', + kj: '콰냐마어', + kk: '카자흐어', + kl: '그린란드어', + km: '크메르어', + kn: '칸나다어', + ko: '한국어', + kr: '카누리어', + ks: '카슈미르어', + ku: '쿠르드어', + kv: '코미어', + kw: '콘월어', + ky: '키르기스어', + la: '라틴어', + lb: '룩셈부르크어', + lg: '간다어', + li: '림뷔르흐어', + ln: '링갈라어', + lo: '라오어', + lt: '리투아니아어', + lu: '루바-카탄가어', + lv: '라트비아어', + mg: '마다가스카르어', + mh: '마셜어', + mi: '마오리어', + mk: '마케도니아어', + ml: '말라얄람어', + mn: '몽골어', + mr: '마라티어', + ms: '말레이어', + mt: '몰타어', + my: '미얀마어', + na: '나우루어', + nb: '노르웨이어(보크말)', + nd: '북은데벨레어', + ne: '네팔어', + ng: '은동가어', + nl: '네덜란드어', + nn: '노르웨이어(뉘노르스크)', + no: '노르웨이어', + nr: '남은데벨레어', + nv: '나바호어', + ny: '니안자어', + oc: '오크어', + oj: '오지브웨이어', + om: '오로모어', + or: '오리야어', + os: '오세트어', + pa: '펀자브어', + pi: '팔리어', + pl: '폴란드어', + ps: '파슈토어', + pt: '포르투갈어', + qu: '케추아어', + rm: '로만시어', + rn: '룬디어', + ro: '루마니아어', + ru: '러시아어', + rw: '키냐르완다어', + sa: '산스크리트어', + sc: '사르데냐어', + sd: '신드어', + se: '북사미어', + sg: '상고어', + si: '싱할라어', + sk: '슬로바키아어', + sl: '슬로베니아어', + sm: '사모아어', + sn: '쇼나어', + so: '소말리어', + sq: '알바니아어', + sr: '세르비아어', + ss: '스와티어', + st: '소토어', + su: '순다어', + sv: '스웨덴어', + sw: '스와힐리어', + ta: '타밀어', + te: '텔루구어', + tg: '타지크어', + th: '태국어', + ti: '티그리냐어', + tk: '투르크멘어', + tl: '타갈로그어', + tn: '츠와나어', + to: '통가어', + tr: '터키어', + ts: '총가어', + tt: '타타르어', + tw: '트위어', + ty: '타히티어', + ug: '위구르어', + uk: '우크라이나어', + ur: '우르두어', + uz: '우즈베크어', + ve: '벤다어', + vi: '베트남어', + vo: '볼라퓌크어', + wa: '왈론어', + wo: '월로프어', + xh: '코사어', + yi: '이디시어', + yo: '요루바어', + za: '좡어', + zh: '중국어', + zu: '줄루어', +}; From b87d4fb36745eefaca3936cdec67b65d36b699fd Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Mon, 18 Aug 2025 21:53:47 +0900 Subject: [PATCH 049/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20button=20com?= =?UTF-8?q?ponent=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buttons/_index.tsx | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 components/buttons/_index.tsx diff --git a/components/buttons/_index.tsx b/components/buttons/_index.tsx new file mode 100644 index 0000000..8931b79 --- /dev/null +++ b/components/buttons/_index.tsx @@ -0,0 +1,61 @@ +import Image from 'next/image'; +import { useState, TouchEventHandler, MouseEventHandler } from 'react'; + +interface ButtonProps { + text: string; + iconPath?: string; + className?: string; + onClick?: MouseEventHandler; + disabled?: boolean; +} + +export default function Button({ + text, + iconPath, + className, + onClick, + disabled = false, +}: ButtonProps) { + const [isPressed, setIsPressed] = useState(false); + + // 모바일 터치 이벤트 + const handleTouchStart: TouchEventHandler = () => + setIsPressed(true); + const handleTouchEnd: TouchEventHandler = () => + setIsPressed(false); + + return ( +
+ {/* 직사각형 그림자 */} +
+ {/* 실제 버튼 */} + +
+ ); +} From 6ab9a7a0bf128acc4fd79c17750d64a86cc667eb Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Mon, 18 Aug 2025 21:54:23 +0900 Subject: [PATCH 050/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20step1=20of=20?= =?UTF-8?q?signin=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/signin/locales/subtitles.json | 20 +++- app/onboarding/signin/step1/page.tsx | 103 +++++++++++++++++-- 2 files changed, 110 insertions(+), 13 deletions(-) diff --git a/app/onboarding/signin/locales/subtitles.json b/app/onboarding/signin/locales/subtitles.json index d721b96..7da9313 100644 --- a/app/onboarding/signin/locales/subtitles.json +++ b/app/onboarding/signin/locales/subtitles.json @@ -2,10 +2,24 @@ "step1": { "title": "사용할 언어를 골라주세요!\n선택한 언어는 번역에 사용돼요.", "subText": { - "vt": "Ngôn ngữ bạn chọn sẽ được sử dụng để dịch.", + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", "en": "Pick a language!\nWe'll use it for translations.", - "jp": "選択した言語は翻訳に使用されます。", - "chn": "您选择的语言将用于翻译。" + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + }, + "checkboxText": "내가 원하는 언어가 없어요.", + "checkboxSubText": { + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "There's no language I want.", + "jp": "私の欲しい言語がありません。", + "chn": "没有我想要的语言。" + }, + "bottomSheetTitle": "사용할 수 있는 언어가 무엇인가요?\n나중에 그 언어로 공부할 수 있도록 준비할게요", + "bottomSheetSubText": { + "vt": "Bạn có thể sử dụng những ngôn ngữ nào?\nChúng tôi sẽ chuẩn bị ngôn ngữ bạn chọn khi nó khả dụng.", + "en": "Which language can you use?\nWe'll get your chosen language ready when it's available.", + "jp": "あなたはどの言語を使えますか?\n選んだ言語は利用可能になったら準備しておきます。", + "chn": "你可以使用哪些语言?\n我们会在所选语言可用时为你准备好。" } }, "step2": { diff --git a/app/onboarding/signin/step1/page.tsx b/app/onboarding/signin/step1/page.tsx index 7ff4cb9..8f9fe65 100644 --- a/app/onboarding/signin/step1/page.tsx +++ b/app/onboarding/signin/step1/page.tsx @@ -1,27 +1,110 @@ 'use client'; -import LanguageSelectDropdown from '@/components/Dropdown/LanguageSelect'; +import { useState } from 'react'; +import { useLanguageStore } from '@/stores/languageStore'; +import LanguageSelectDropdown from '@/components/dropdowns/LanguageSelect'; import subtitles from '../locales/subtitles.json'; import ProgressBar from '@/components/ProgressBar'; import TitleText from '@/components/TitleText'; -import MotionFadeIn from '@/components/_animation/MotionFadeIn'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import Button from '@/components/buttons/_index'; +import Image from 'next/image'; +import { useRouter } from 'next/navigation'; +import BottomSheet from '../components/BottomSheet'; +import { ROUTES } from '@/constants/routes'; +import LanguageListDropdown from '@/components/dropdowns/LanguageList'; + +export default function SignInStep1Page() { + const router = useRouter(); + const { currentLanguage, setLanguage } = useLanguageStore(); + const { + title, + subText, + checkboxText, + checkboxSubText, + bottomSheetTitle, + bottomSheetSubText, + } = subtitles.step1; + + const [isChecked, setIsChecked] = useState(false); + const toggleCheckbox = () => setIsChecked(prev => !prev); + + const [isSheetOpen, setIsSheetOpen] = useState(false); + + const handleBtnClick = () => { + if (isChecked) { + setIsSheetOpen(true); + } else { + router.push('/next-page'); // 다음 페이지 라우팅 + } + }; -const SignInStep1Page = () => { - const { title, subText } = subtitles.step1; return ( -
+
- + +
+ {/* 체크박스 */} +
+ {isChecked +
+ + {checkboxText} + + + {checkboxSubText[currentLanguage.code]} + +
+
+ {/* 하단 버튼 */} +
+ {/* 바텀시트 */} + setIsSheetOpen(false)} + title={bottomSheetTitle} + subText={bottomSheetSubText[currentLanguage.code]} + > + +

+ 그 전까지는 한글을 영어로 번역할게요. +

+

+ Until then, I'll translate Korean into English. +

+
); -}; - -export default SignInStep1Page; +} From 2daad5c8e763cafac3cfe0c9b7986313d43caee7 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Mon, 18 Aug 2025 21:56:30 +0900 Subject: [PATCH 051/113] =?UTF-8?q?=E2=9C=A8=20feat:=20modify=20next=20pag?= =?UTF-8?q?e=20route=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/signin/step1/page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/onboarding/signin/step1/page.tsx b/app/onboarding/signin/step1/page.tsx index 8f9fe65..a4f7a81 100644 --- a/app/onboarding/signin/step1/page.tsx +++ b/app/onboarding/signin/step1/page.tsx @@ -35,7 +35,7 @@ export default function SignInStep1Page() { if (isChecked) { setIsSheetOpen(true); } else { - router.push('/next-page'); // 다음 페이지 라우팅 + router.push(ROUTES.ONBOARDING.SIGNIN.getStep(2)); // 다음 페이지 라우팅 } }; From 47660b2e232735b7bdb5b430e6ea1697854912eb Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:07:09 +0900 Subject: [PATCH 052/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20icons=20[KOB?= =?UTF-8?q?G-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/character/default.webp | Bin 0 -> 98934 bytes public/icons/audio.svg | 5 +++++ public/icons/check-checked-small.svg | 4 ++++ public/icons/check-unchecked-small.svg | 4 ++++ public/icons/nav-book.svg | 3 +++ public/icons/nav-phone.svg | 3 +++ public/icons/nav-user.svg | 4 ++++ 7 files changed, 23 insertions(+) create mode 100644 public/character/default.webp create mode 100644 public/icons/audio.svg create mode 100644 public/icons/check-checked-small.svg create mode 100644 public/icons/check-unchecked-small.svg create mode 100644 public/icons/nav-book.svg create mode 100644 public/icons/nav-phone.svg create mode 100644 public/icons/nav-user.svg diff --git a/public/character/default.webp b/public/character/default.webp new file mode 100644 index 0000000000000000000000000000000000000000..94c81454967ba942fe64e7ac7907765ca568e602 GIT binary patch literal 98934 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

wUl-_o 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 + + + + diff --git a/public/icons/check-checked-small.svg b/public/icons/check-checked-small.svg new file mode 100644 index 0000000..f12d390 --- /dev/null +++ b/public/icons/check-checked-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/check-unchecked-small.svg b/public/icons/check-unchecked-small.svg new file mode 100644 index 0000000..3eb9929 --- /dev/null +++ b/public/icons/check-unchecked-small.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/nav-book.svg b/public/icons/nav-book.svg new file mode 100644 index 0000000..b7adbc1 --- /dev/null +++ b/public/icons/nav-book.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/nav-phone.svg b/public/icons/nav-phone.svg new file mode 100644 index 0000000..84cc9f9 --- /dev/null +++ b/public/icons/nav-phone.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/nav-user.svg b/public/icons/nav-user.svg new file mode 100644 index 0000000..e3c3dca --- /dev/null +++ b/public/icons/nav-user.svg @@ -0,0 +1,4 @@ + + + + From ed3d041c0cc1ea4f340f93b0b3c206bc65fd4664 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:07:38 +0900 Subject: [PATCH 053/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20scrollbar-hi?= =?UTF-8?q?de=20in=20globals.css=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/globals.css | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/globals.css b/app/globals.css index 99f7f51..51874cf 100644 --- a/app/globals.css +++ b/app/globals.css @@ -8,6 +8,10 @@ --background: #ffffff; --foreground: #171717; + + .scrollbar-hide::-webkit-scrollbar { + display: none; +} } @media (prefers-color-scheme: dark) { @@ -171,6 +175,13 @@ .bg-gradient-reverse { background-image: linear-gradient(to bottom, #E6F4FA, #FEFEFE); } + /* 스크롤바 숨기기 */ + .scrollbar-hide { + &::-webkit-scrollbar { + display: none; + } + scrollbar-width: none; + } } body { From 194c68e9b172379c61367d0feb05bdabfe03393d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:08:17 +0900 Subject: [PATCH 054/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20ordinal=20uti?= =?UTF-8?q?l=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 영어 등수 변환 함수 --- utils/getOrdinalSuffix.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 utils/getOrdinalSuffix.ts diff --git a/utils/getOrdinalSuffix.ts b/utils/getOrdinalSuffix.ts new file mode 100644 index 0000000..08d9db0 --- /dev/null +++ b/utils/getOrdinalSuffix.ts @@ -0,0 +1,16 @@ +export const getOrdinalSuffix = (numStr: string | number) => { + const num = typeof numStr === 'string' ? parseInt(numStr, 10) : numStr; + if (isNaN(num)) return ''; + const tens = num % 100; + if (tens >= 11 && tens <= 13) return 'th'; + switch (num % 10) { + case 1: + return 'st'; + case 2: + return 'nd'; + case 3: + return 'rd'; + default: + return 'th'; + } +}; From bea3ae150b84ef231ed0ccee5af9cd3a5f2e0f6e Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:08:52 +0900 Subject: [PATCH 055/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20text=20field?= =?UTF-8?q?=20components=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/textfields/TextFieldLong.tsx | 51 +++++++++++++++++++++ components/textfields/TextFieldShort.tsx | 58 ++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 components/textfields/TextFieldLong.tsx create mode 100644 components/textfields/TextFieldShort.tsx diff --git a/components/textfields/TextFieldLong.tsx b/components/textfields/TextFieldLong.tsx new file mode 100644 index 0000000..2ac0108 --- /dev/null +++ b/components/textfields/TextFieldLong.tsx @@ -0,0 +1,51 @@ +import { FONT_CLASS, Language } from '@/constants/languages'; +import { ChangeEvent, HTMLAttributes, useState } from 'react'; + +interface TextFieldProps { + placeholder?: string; + lang?: Language; + maxLength?: number; + value: string; + onChange: (value: string) => void; + inputMode?: HTMLAttributes['inputMode']; +} + +export default function TextFieldLong({ + placeholder, + lang = 'en', + maxLength, + value, + onChange, + inputMode, +}: TextFieldProps) { + const [isFocused, setIsFocused] = useState(false); + + const handleChange = (e: ChangeEvent) => { + const newValue = e.target.value; + if (maxLength && newValue.length > maxLength) { + alert(`최대 ${maxLength}글자까지 입력 가능합니다.`); + return; + } + onChange(newValue); + }; + + return ( +

+
+ setIsFocused(true)} + onBlur={() => setIsFocused(false)} + className={` + relative w-full px-4 py-2 border rounded-2xl bg-white focus:outline-none transition text-bd1-regular text-black [text-size-adjust:100%] + ${FONT_CLASS[lang]} + ${isFocused ? 'border-primary border-2' : 'border-gray-900 border'} + `} + /> +
+ ); +} diff --git a/components/textfields/TextFieldShort.tsx b/components/textfields/TextFieldShort.tsx new file mode 100644 index 0000000..0ecd904 --- /dev/null +++ b/components/textfields/TextFieldShort.tsx @@ -0,0 +1,58 @@ +import { useState, ChangeEvent, HTMLAttributes } from 'react'; +import { FONT_CLASS, Language } from '@/constants/languages'; + +interface TextFieldShortProps { + placeholder?: string; + lang?: Language; + maxLength?: number; + value: string; + onChange: (value: string) => void; + endText?: string; + inputMode?: HTMLAttributes['inputMode']; +} + +export default function TextFieldShort({ + placeholder, + lang = 'en', + maxLength, + value, + onChange, + endText = '', + inputMode, +}: TextFieldShortProps) { + const [isFocused, setIsFocused] = useState(false); + + const handleChange = (e: ChangeEvent) => { + const newValue = e.target.value; + if (maxLength && newValue.length > maxLength) { + alert(`최대 ${maxLength}글자까지 입력 가능합니다.`); + return; + } + onChange(newValue); + }; + + return ( +
+
+ setIsFocused(true)} + onBlur={() => setIsFocused(false)} + className={` + relative w-full px-4 py-2 border rounded-2xl bg-white focus:outline-none transition text-bd1-regular text-black [text-size-adjust:100%] + ${FONT_CLASS[lang]} + ${isFocused ? 'border-primary border-2' : 'border-gray-900 border'} + `} + /> + {endText && ( + + {endText} + + )} +
+ ); +} From 02586d960c1eddf2d6d69b379c9d1d0467a199d8 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:09:45 +0900 Subject: [PATCH 056/113] =?UTF-8?q?=E2=9C=A8=20feat:=20modify=20props=20fo?= =?UTF-8?q?r=20TitleText=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/TitleText.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/TitleText.tsx b/components/TitleText.tsx index 98f8e76..c1a6530 100644 --- a/components/TitleText.tsx +++ b/components/TitleText.tsx @@ -1,7 +1,8 @@ import { FONT_CLASS, Language } from '@/constants/languages'; +import { ReactNode } from 'react'; interface TitleTextProps { - title: string; + title: ReactNode; // JSX도 허용되도록 subText: Record; lang: Language; className?: string; From 30d45793630264d1bae7d4dcdfb1c6fe0b1c7ac9 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:11:02 +0900 Subject: [PATCH 057/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20stores=20[KOB?= =?UTF-8?q?G-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stores/userStore.ts | 32 ++++++++++++++++++++++++++++++++ stores/voiceStore.ts | 11 +++++++++++ 2 files changed, 43 insertions(+) create mode 100644 stores/userStore.ts create mode 100644 stores/voiceStore.ts diff --git a/stores/userStore.ts b/stores/userStore.ts new file mode 100644 index 0000000..c752a17 --- /dev/null +++ b/stores/userStore.ts @@ -0,0 +1,32 @@ +import { SchoolOption } from '@/constants/dropdown/schools'; +import { create } from 'zustand'; +import { persist } from 'zustand/middleware'; + +interface UserStore { + username: string; + setUsername: (name: string) => void; + age: string; + setAge: (age: string) => void; + school: SchoolOption['value']; + setSchool: (school: SchoolOption['value']) => void; + grade: string; + setGrade: (grade: string) => void; +} + +export const useUserStore = create( + persist( + set => ({ + username: '', + setUsername: name => set({ username: name }), + age: '', + setAge: age => set({ age: age }), + school: '', + setSchool: school => set({ school }), + grade: '', + setGrade: grade => set({ grade }), + }), + { + name: 'user-store', // localStorage key + }, + ), +); diff --git a/stores/voiceStore.ts b/stores/voiceStore.ts new file mode 100644 index 0000000..9197918 --- /dev/null +++ b/stores/voiceStore.ts @@ -0,0 +1,11 @@ +import { create } from 'zustand'; + +interface VoiceState { + selectedVoice: number | null; // 선택된 목소리 인덱스 + setSelectedVoice: (idx: number | null) => void; +} + +export const useVoiceStore = create(set => ({ + selectedVoice: null, + setSelectedVoice: idx => set({ selectedVoice: idx }), +})); From 020ca2bc0ea454911ba79c2ae497494eb0937b4f Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:11:34 +0900 Subject: [PATCH 058/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20school,=20voi?= =?UTF-8?q?ce=20constants=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/dropdown/schools.ts | 52 +++++++++++++++++++++++++++ constants/voiceData.ts | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 constants/dropdown/schools.ts create mode 100644 constants/voiceData.ts diff --git a/constants/dropdown/schools.ts b/constants/dropdown/schools.ts new file mode 100644 index 0000000..34aa5ae --- /dev/null +++ b/constants/dropdown/schools.ts @@ -0,0 +1,52 @@ +import { Language } from '../languages'; + +export interface SchoolOption { + label: string; + subLabel: Record; + value: 'elementary' | 'middle' | 'high' | ''; +} + +export const SchoolOptions: SchoolOption[] = [ + { + label: '초등학교', + subLabel: { + en: 'Elementary school', + vt: 'Trường tiểu học', + chn: '小学', + jp: '小学校', + }, + value: 'elementary', + }, + { + label: '중학교', + subLabel: { + en: 'Middle school', + vt: 'Trường trung học cơ sở', + chn: '中学', + jp: '中学校', + }, + value: 'middle', + }, + { + label: '고등학교', + subLabel: { + en: 'High school', + vt: 'Trường trung học phổ thông', + chn: '高中', + jp: '高等学校', + }, + value: 'high', + }, +]; + +// 기본 선택 안내 옵션 +export const DefaultSchoolOption: SchoolOption = { + label: '학교를 선택해주세요', + subLabel: { + en: 'Please select a school', + vt: 'Vui lòng chọn trường', + chn: '请选择学校', + jp: '学校を選択してください', + }, + value: '', +}; diff --git a/constants/voiceData.ts b/constants/voiceData.ts new file mode 100644 index 0000000..91507b9 --- /dev/null +++ b/constants/voiceData.ts @@ -0,0 +1,66 @@ +import { Language } from './languages'; + +export type LangKey = Language; + +interface VoiceOption { + text: string; + subText: Record; +} + +interface VoiceData { + selectVoice: { + characterVoice: Record; + }; +} + +export const voiceData: VoiceData = { + selectVoice: { + characterVoice: { + voice1: { + text: 'Kody의 목소리', + subText: { + vt: 'Giọng nói của Kody', + en: "Kody's voice", + jp: 'コディの声', + chn: 'Kody的声音', + }, + }, + voice2: { + text: 'Kody의 목소리22', + subText: { + vt: 'Giọng nói của Kody', + en: "Kody's voice", + jp: 'コディの声', + chn: 'Kody的声音', + }, + }, + voice3: { + text: '33Kody의 목소리', + subText: { + vt: 'Giọng nói của Kody', + en: "Kody's voice", + jp: 'コディの声', + chn: 'Kody的声音', + }, + }, + voice4: { + text: '444Kody의 목소리', + subText: { + vt: 'Giọng nói của Kody', + en: "Kody's voice", + jp: 'コディの声', + chn: 'Kody的声音', + }, + }, + voice5: { + text: '555Kody의 목소리', + subText: { + vt: 'Giọng nói của Kody', + en: "Kody's voice", + jp: 'コディの声', + chn: 'Kody的声音', + }, + }, + }, + }, +}; From 25d6787fc35bbcdd0c87e5f61aa83bfa036bbcc8 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:12:11 +0900 Subject: [PATCH 059/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20school=20sel?= =?UTF-8?q?ect=20dropdown=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/dropdowns/SchoolSelect.tsx | 95 +++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 components/dropdowns/SchoolSelect.tsx diff --git a/components/dropdowns/SchoolSelect.tsx b/components/dropdowns/SchoolSelect.tsx new file mode 100644 index 0000000..42f36c2 --- /dev/null +++ b/components/dropdowns/SchoolSelect.tsx @@ -0,0 +1,95 @@ +import { useState } from 'react'; +import Image from 'next/image'; +import { useUserStore } from '@/stores/userStore'; +import { useLanguageStore } from '@/stores/languageStore'; +import { + DefaultSchoolOption, + SchoolOptions, + SchoolOption, +} from '@/constants/dropdown/schools'; +import { FONT_CLASS } from '@/constants/languages'; + +export default function SchoolSelectDropdown({ + options = SchoolOptions, + disabled = false, + onChange, +}: { + options?: SchoolOption[]; + disabled?: boolean; + onChange?: (school: SchoolOption) => void; +}) { + const { currentLanguage } = useLanguageStore(); + const { school, setSchool } = useUserStore(); + const [isOpen, setIsOpen] = useState(false); + const [selectedSchool, setSelectedSchool] = useState( + options.find(opt => opt.value === school) || DefaultSchoolOption, + ); + + const toggleDropdown = () => setIsOpen(!isOpen); + + const handleSelect = (schoolOption: SchoolOption) => { + setSelectedSchool(schoolOption); + setSchool(schoolOption.value); + if (onChange) onChange(schoolOption); + setIsOpen(false); + }; + + const getSubLabel = (school: SchoolOption) => { + return school.subLabel?.[currentLanguage.code] ?? ''; + }; + + return ( +
+
+ + {isOpen && ( +
    + {options.map(school => ( +
  • handleSelect(school)} + className="px-4 py-3 cursor-pointer text-trans-cp1-regular hover:bg-gray-100" + > + {school.label} + {school.subLabel && ( + + {getSubLabel(school)} + + )} +
  • + ))} +
+ )} +
+ ); +} From e06c1c3687e973aa06fce78a843eb18654eb8824 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:12:36 +0900 Subject: [PATCH 060/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20select=20typ?= =?UTF-8?q?e=20button=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buttons/select.tsx | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 components/buttons/select.tsx diff --git a/components/buttons/select.tsx b/components/buttons/select.tsx new file mode 100644 index 0000000..dabfbd6 --- /dev/null +++ b/components/buttons/select.tsx @@ -0,0 +1,60 @@ +import Image from 'next/image'; +import { MouseEventHandler } from 'react'; + +interface ButtonProps { + text: string; + subText?: string; + className?: string; + onClick?: MouseEventHandler; + selected?: boolean; +} + +export default function SelectButton({ + text, + subText, + className, + onClick, + selected = false, +}: ButtonProps) { + return ( +
+ {/* 직사각형 그림자 */} +
+ {/* 실제 버튼 */} + +
+ ); +} From edaa5fd93db64cac91731f3676940f6d645bb251 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:13:01 +0900 Subject: [PATCH 061/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20character=20?= =?UTF-8?q?voice=20toggle=20btn=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buttons/characterVoice.tsx | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 components/buttons/characterVoice.tsx diff --git a/components/buttons/characterVoice.tsx b/components/buttons/characterVoice.tsx new file mode 100644 index 0000000..74d6f4e --- /dev/null +++ b/components/buttons/characterVoice.tsx @@ -0,0 +1,41 @@ +import Image from 'next/image'; +import { MouseEventHandler } from 'react'; + +interface ButtonProps { + className?: string; + onClick?: MouseEventHandler; + selected?: boolean; +} + +export default function CharacterVoiceButton({ + className, + onClick, + selected = false, +}: ButtonProps) { + return ( +
+ {/* 직사각형 그림자 */} +
+ {/* 실제 버튼 */} + +
+ ); +} From 7385288aceac385236d0411ed156c0e141b0b892 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:13:24 +0900 Subject: [PATCH 062/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20modify=20color=20[?= =?UTF-8?q?KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/ProgressBar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ProgressBar.tsx b/components/ProgressBar.tsx index f4a45e4..d8288a9 100644 --- a/components/ProgressBar.tsx +++ b/components/ProgressBar.tsx @@ -29,7 +29,7 @@ export default function ProgressBar({ key={index} style={{ width: `${100 / totalSegments}%` }} className={`h-full rounded-sm ${ - isCurrentOrCompleted ? 'bg-yellow-400' : incompleteColor + isCurrentOrCompleted ? 'bg-primary' : incompleteColor }`} >
); From 88221dec1f807e8293602405784114db813a95f6 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:13:46 +0900 Subject: [PATCH 063/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20character=20?= =?UTF-8?q?text=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/CharacterText.tsx | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 components/CharacterText.tsx diff --git a/components/CharacterText.tsx b/components/CharacterText.tsx new file mode 100644 index 0000000..1ea0f5e --- /dev/null +++ b/components/CharacterText.tsx @@ -0,0 +1,52 @@ +import { FONT_CLASS } from '@/constants/languages'; +import { useLanguageStore } from '@/stores/languageStore'; +import Image from 'next/image'; + +interface CharacterTextProps { + title: string; + subtitle: string; + audio?: boolean; + image?: string; // 이미지 URL +} + +export default function CharacterText({ + title, + subtitle, + audio = false, + image = '/character/default.webp', // 기본 이미지 URL +}: CharacterTextProps) { + const { currentLanguage } = useLanguageStore(); + + return ( +
+ {/* 텍스트 영역 */} +
+

+ {title} + {audio && ( + audio icon + )} +

+ {/* 구분선 */} +
+

+ {subtitle} +

+
+ {/* 캐릭터 이미지 */} + {image && ( +
+ character +
+ )} +
+ ); +} From 15d76a9eb1699d38c2d7e560fc1d1372e8e3a0a4 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:14:33 +0900 Subject: [PATCH 064/113] =?UTF-8?q?=E2=9C=A8=20feat:=20update=20route=20co?= =?UTF-8?q?nstants=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/routes.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/constants/routes.ts b/constants/routes.ts index 60f20ea..e91ce7c 100644 --- a/constants/routes.ts +++ b/constants/routes.ts @@ -7,5 +7,16 @@ export const ROUTES = { ROOT: '/onboarding/signin', getStep: (step: number) => `/onboarding/signin/step${step}`, }, + VOICE: { + ROOT: '/onboarding/voice', + SELECT: '/onboarding/voice/select', + COMPLETE: '/onboarding/voice/complete', + }, + }, + MAIN: { + ROOT: '/main', + MY_LEARNING: '/main/my-learning', + CONVERSATION: '/main/conversation', + MY_PAGE: '/main/my-page', }, }; From 548af151afa6e9b546ecd57ce2702b4775fb53c1 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:17:48 +0900 Subject: [PATCH 065/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20signin=20scre?= =?UTF-8?q?ens=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/layout.tsx | 4 +- app/onboarding/signin/layout.tsx | 2 +- app/onboarding/signin/locales/subtitles.json | 68 ++++++++++- app/onboarding/signin/step2/page.tsx | 63 ++++++++++ app/onboarding/signin/step3/page.tsx | 71 ++++++++++++ app/onboarding/signin/step4/page.tsx | 115 +++++++++++++++++++ 6 files changed, 314 insertions(+), 9 deletions(-) create mode 100644 app/onboarding/signin/step2/page.tsx create mode 100644 app/onboarding/signin/step3/page.tsx create mode 100644 app/onboarding/signin/step4/page.tsx diff --git a/app/onboarding/layout.tsx b/app/onboarding/layout.tsx index f9798c9..ab9229b 100644 --- a/app/onboarding/layout.tsx +++ b/app/onboarding/layout.tsx @@ -6,8 +6,6 @@ export default function OnboardingLayout({ children: ReactNode; }) { return ( -
- {children} -
+
{children}
); } diff --git a/app/onboarding/signin/layout.tsx b/app/onboarding/signin/layout.tsx index af57beb..fd94bce 100644 --- a/app/onboarding/signin/layout.tsx +++ b/app/onboarding/signin/layout.tsx @@ -3,7 +3,7 @@ import { ReactNode } from 'react'; export default function SigninLayout({ children }: { children: ReactNode }) { return ( -
+
{children}
diff --git a/app/onboarding/signin/locales/subtitles.json b/app/onboarding/signin/locales/subtitles.json index 7da9313..ec6bfa4 100644 --- a/app/onboarding/signin/locales/subtitles.json +++ b/app/onboarding/signin/locales/subtitles.json @@ -23,12 +23,70 @@ } }, "step2": { - "title": "테마를 선택해주세요!", + "title": "사용할 이름이나 닉네임을\n적어 주세요.", "subText": { - "vt": "Chủ đề bạn chọn sẽ được áp dụng cho toàn bộ ứng dụng.", - "en": "Your chosen theme will apply across the app.", - "jp": "選択したテーマはアプリ全体に適用されます。", - "chn": "您选择的主题将应用于整个应用程序。" + "vt": "Tên này sẽ được sử dụng trong toàn bộ ứng dụng.", + "en": "This name will be used across the app.", + "jp": "この名前はアプリ全体で使用されます。", + "chn": "此名称将在整个应用程序中使用。" + }, + "usernameTitle": "내 이름/닉네임은...", + "usernameSubText": { + "vt": "Tên/Nickname của tôi là...", + "en": "My name/nickname is...", + "jp": "私の名前/ニックネームは...", + "chn": "我的名字/昵称是..." + } + }, + "step3": { + "title": "다음으로,\n나이를 알려주세요.", + "subText": { + "vt": "Tuổi này sẽ được sử dụng trong toàn bộ ứng dụng.", + "en": "Next,\nplease tell us your age.", + "jp": "次に、年齢を教えてください。", + "chn": "接下来,请告诉我们您的年龄。" + }, + "ageTitle": "나의 나이는...", + "ageSubText": { + "vt": "Tuổi của tôi là...", + "en": "My age is...", + "jp": "私の年齢は...", + "chn": "我的年龄是..." + }, + "ageEndText" : { + "vt": "Tôi tuổi.", + "en": "years old.", + "jp": "歳です。", + "chn": "岁。" + } + }, + "step4": { + "title": "마지막으로,\n다니는 학교와 학년 알려주세요.", + "subText": { + "vt": "Tuổi này sẽ được sử dụng trong toàn bộ ứng dụng.", + "en": "Finally,\nplease tell us your school and grade.", + "jp": "次に、年齢を教えてください。", + "chn": "接下来,请告诉我们您的年龄。" + }, + "schoolTitle": "내가 다니는 학교는...", + "schoolSubText": { + "vt": "Tuổi của tôi là...", + "en": "My school is...", + "jp": "私の年齢は...", + "chn": "我的年龄是..." + }, + "gradeTitle": "나의 학년은...", + "gradeSubText": { + "vt": "Tuổi của tôi là...", + "en": "My grade is...", + "jp": "私の年齢は...", + "chn": "我的年龄是..." + }, + "gradeEndText" : { + "vt": "Tôi tuổi.", + "en": "grade.", + "jp": "歳です。", + "chn": "岁。" } } } diff --git a/app/onboarding/signin/step2/page.tsx b/app/onboarding/signin/step2/page.tsx new file mode 100644 index 0000000..3fac996 --- /dev/null +++ b/app/onboarding/signin/step2/page.tsx @@ -0,0 +1,63 @@ +'use client'; + +import { useLanguageStore } from '@/stores/languageStore'; +import subtitles from '../locales/subtitles.json'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { FONT_CLASS } from '@/constants/languages'; +import TextFieldLong from '@/components/textfields/TextFieldLong'; +import { useUserStore } from '@/stores/userStore'; +import { ROUTES } from '@/constants/routes'; + +export default function SignInStep2Page() { + const router = useRouter(); + const { currentLanguage } = useLanguageStore(); + const { title, subText, usernameTitle, usernameSubText } = subtitles.step2; + const { username, setUsername } = useUserStore(); + + const handleBtnClick = () => { + if (username.length !== 0) { + router.push(ROUTES.ONBOARDING.SIGNIN.getStep(3)); + } + }; + + return ( +
+ + + +

{usernameTitle}

+

+ {usernameSubText[currentLanguage.code]} +

+ {/* 이름 입력 */} + +
+
+ {/* 하단 버튼 */} +
+
+ ); +} diff --git a/app/onboarding/signin/step3/page.tsx b/app/onboarding/signin/step3/page.tsx new file mode 100644 index 0000000..f09907a --- /dev/null +++ b/app/onboarding/signin/step3/page.tsx @@ -0,0 +1,71 @@ +'use client'; + +import { useLanguageStore } from '@/stores/languageStore'; +import subtitles from '../locales/subtitles.json'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { FONT_CLASS } from '@/constants/languages'; +import { useUserStore } from '@/stores/userStore'; +import { ROUTES } from '@/constants/routes'; +import TextFieldShort from '@/components/textfields/TextFieldShort'; + +export default function SignInStep3Page() { + const router = useRouter(); + const { currentLanguage } = useLanguageStore(); + const { title, subText, ageTitle, ageSubText, ageEndText } = subtitles.step3; + const { age, setAge } = useUserStore(); + + const handleBtnClick = () => { + if (age.length !== 0) { + router.push(ROUTES.ONBOARDING.SIGNIN.getStep(4)); + } + }; + + return ( +
+ + + +

{ageTitle}

+

+ {ageSubText[currentLanguage.code]} +

+ {/* 나이 입력 */} +
+ +
+

+

+ {ageEndText[currentLanguage.code]} +

+
+
+
+
+ {/* 하단 버튼 */} +
+
+ ); +} diff --git a/app/onboarding/signin/step4/page.tsx b/app/onboarding/signin/step4/page.tsx new file mode 100644 index 0000000..ae2dc42 --- /dev/null +++ b/app/onboarding/signin/step4/page.tsx @@ -0,0 +1,115 @@ +'use client'; + +import { useLanguageStore } from '@/stores/languageStore'; +import subtitles from '../locales/subtitles.json'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { FONT_CLASS } from '@/constants/languages'; +import { useUserStore } from '@/stores/userStore'; +import { ROUTES } from '@/constants/routes'; +import TextFieldShort from '@/components/textfields/TextFieldShort'; +import SchoolSelectDropdown from '@/components/dropdowns/SchoolSelect'; +import { getOrdinalSuffix } from '@/utils/getOrdinalSuffix'; +import { SchoolOption } from '@/constants/dropdown/schools'; + +export default function SignInStep3Page() { + const router = useRouter(); + const { currentLanguage } = useLanguageStore(); + const { + title, + subText, + schoolTitle, + schoolSubText, + gradeTitle, + gradeSubText, + gradeEndText, + } = subtitles.step4; + const { school, setSchool, grade, setGrade } = useUserStore(); + + const handleBtnClick = () => { + if (!grade || !school) return; + router.push(ROUTES.ONBOARDING.VOICE.ROOT); + // TODO: API 연동 + // mutate( + // { school, grade }, + // { + // onSuccess: response => { + // // 서버 응답 성공 시 라우트 이동 + // router.push(ROUTES.ONBOARDING.VOICE.ROOT); + // }, + // onError: error => { + // console.error(error); + // }, + // }, + // ); + }; + + const setSchoolFromDropdown = (schoolOption: SchoolOption) => { + if (schoolOption.value) setSchool(schoolOption.value); + }; + + return ( +
+ + + + {/* 학교 입력 */} +

{schoolTitle}

+

+ {schoolSubText[currentLanguage.code]} +

+ + {/* 학년 입력 */} + {school && ( + +

+ {gradeTitle} +

+

+ {gradeSubText[currentLanguage.code]} +

+
+ +
+

학년

+

+ {gradeEndText[currentLanguage.code]} +

+
+
+
+ )} +
+
+ {/* 하단 버튼 */} +
+
+ ); +} From 165531b900e7fbd212d6d25a07637dc17bc22100 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:18:15 +0900 Subject: [PATCH 066/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20voice=20selec?= =?UTF-8?q?tion=20screens=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_components/CharacterVoiceSelectList.tsx | 52 +++++++++++++ app/onboarding/voice/_locales/text.json | 33 ++++++++ app/onboarding/voice/complete/page.tsx | 54 +++++++++++++ app/onboarding/voice/page.tsx | 57 ++++++++++++++ app/onboarding/voice/select/layout.tsx | 17 ++++ app/onboarding/voice/select/page.tsx | 73 ++++++++++++++++++ public/ttsTest.m4a | Bin 0 -> 114100 bytes 7 files changed, 286 insertions(+) create mode 100644 app/onboarding/voice/_components/CharacterVoiceSelectList.tsx create mode 100644 app/onboarding/voice/_locales/text.json create mode 100644 app/onboarding/voice/complete/page.tsx create mode 100644 app/onboarding/voice/page.tsx create mode 100644 app/onboarding/voice/select/layout.tsx create mode 100644 app/onboarding/voice/select/page.tsx create mode 100644 public/ttsTest.m4a diff --git a/app/onboarding/voice/_components/CharacterVoiceSelectList.tsx b/app/onboarding/voice/_components/CharacterVoiceSelectList.tsx new file mode 100644 index 0000000..f913608 --- /dev/null +++ b/app/onboarding/voice/_components/CharacterVoiceSelectList.tsx @@ -0,0 +1,52 @@ +'use client'; + +import { voiceData } from '@/constants/voiceData'; +import SelectButton from '@/components/buttons/select'; +import CharacterVoiceButton from '@/components/buttons/characterVoice'; +import { useLanguageStore } from '@/stores/languageStore'; +import { useVoiceStore } from '@/stores/voiceStore'; +import { useState } from 'react'; + +export default function CharacterVoiceSelectList() { + const { currentLanguage } = useLanguageStore(); + const { selectedVoice, setSelectedVoice } = useVoiceStore(); + const [playingIndex, setPlayingIndex] = useState(null); + + const voices = Object.values(voiceData.selectVoice.characterVoice); + + const handlePlayVoice = (idx: number) => { + if (playingIndex !== null) return; // 이미 재생 중이면 무시 + setPlayingIndex(idx); // 재생 중 표시 + + const audio = new Audio(`/ttsTest.m4a`); + audio.play(); + + audio.addEventListener('ended', () => { + setPlayingIndex(null); // 재생 종료 후 표시 해제 + }); + }; + + return ( +
+ {voices.map((voice, idx) => ( +
+ {/* 왼쪽: 선택 버튼 */} + setSelectedVoice(idx)} + /> + {/* 오른쪽: 미리듣기 버튼 */} + handlePlayVoice(idx)} + selected={playingIndex === idx} + /> +
+ ))} +
+ ); +} diff --git a/app/onboarding/voice/_locales/text.json b/app/onboarding/voice/_locales/text.json new file mode 100644 index 0000000..9a279c1 --- /dev/null +++ b/app/onboarding/voice/_locales/text.json @@ -0,0 +1,33 @@ +{ + "voice": { + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "This is ’Kody’ who will study Korean with you.", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + }, + "characterText":"안녕! 내 목소리를 선택해 줄래?", + "characterSubText": { + "vt": "Xin chào! Bạn có thể chọn giọng nói của tôi không?", + "en": "Hi! Can you choose my voice?", + "jp": "こんにちは!私の声を選んでくれませんか?", + "chn": "你好!你能选择我的声音吗?" + } + }, + "selectVoice": { + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "Please choose Kody's voice.\nYou can change your friend's voice at any time.", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + } + }, + "complete" : { + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "Let's start studying Korean with Kody!", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + } + } +} \ No newline at end of file diff --git a/app/onboarding/voice/complete/page.tsx b/app/onboarding/voice/complete/page.tsx new file mode 100644 index 0000000..6017d90 --- /dev/null +++ b/app/onboarding/voice/complete/page.tsx @@ -0,0 +1,54 @@ +'use client'; + +import TitleText from '@/components/TitleText'; +import text from '../_locales/text.json'; +import { useLanguageStore } from '@/stores/languageStore'; +import { useUserStore } from '@/stores/userStore'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import Button from '@/components/buttons/_index'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import CharacterText from '@/components/CharacterText'; + +export default function VoiceCompletionPage() { + const router = useRouter(); + const { subText } = text.complete; + const { username } = useUserStore(); // TODO: 사용자 이름 가져오기 (일단 로컬 스토리지에서 가져옴) + const { currentLanguage } = useLanguageStore(); + + const handleBtnClick = () => { + router.push(ROUTES.MAIN.ROOT); + }; + + return ( + <> + + + 코디와 함께 +
+ 한국어 공부를 시작해 봐요! + + } + subText={subText} + lang={currentLanguage.code} + className="mt-26 mb-8" + /> + +
+ {/* 하단 버튼 */} +
+
+ + ); +} diff --git a/app/onboarding/voice/page.tsx b/app/onboarding/voice/page.tsx new file mode 100644 index 0000000..e11e547 --- /dev/null +++ b/app/onboarding/voice/page.tsx @@ -0,0 +1,57 @@ +'use client'; + +import TitleText from '@/components/TitleText'; +import text from './_locales/text.json'; +import { useLanguageStore } from '@/stores/languageStore'; +import { useUserStore } from '@/stores/userStore'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import Button from '@/components/buttons/_index'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import CharacterText from '@/components/CharacterText'; + +export default function VoicePage() { + const router = useRouter(); + const { subText, characterText, characterSubText } = text.voice; + const { username } = useUserStore(); // TODO: 사용자 이름 가져오기 (일단 로컬 스토리지에서 가져옴) + const { currentLanguage } = useLanguageStore(); + + const handleBtnClick = () => { + router.push(ROUTES.ONBOARDING.VOICE.SELECT); + }; + + return ( + <> + + + {username}! +
+ 앞으로 같이 +
+ 한국어를 공부할 + ‘코디’ + 예요. + + } + subText={subText} + lang={currentLanguage.code} + className="mt-26 mb-8" + /> + +
+ {/* 하단 버튼 */} +
+
+ + ); +} diff --git a/app/onboarding/voice/select/layout.tsx b/app/onboarding/voice/select/layout.tsx new file mode 100644 index 0000000..73478b9 --- /dev/null +++ b/app/onboarding/voice/select/layout.tsx @@ -0,0 +1,17 @@ +import ProgressBar from '@/components/ProgressBar'; +import TopAppBar from '@/components/TopAppBar'; +import { ReactNode } from 'react'; + +export default function VoiceSelectLayout({ + children, +}: { + children: ReactNode; +}) { + return ( +
+ + + {children} +
+ ); +} diff --git a/app/onboarding/voice/select/page.tsx b/app/onboarding/voice/select/page.tsx new file mode 100644 index 0000000..165d456 --- /dev/null +++ b/app/onboarding/voice/select/page.tsx @@ -0,0 +1,73 @@ +'use client'; + +import TitleText from '@/components/TitleText'; +import text from '../_locales/text.json'; +import { useLanguageStore } from '@/stores/languageStore'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import Button from '@/components/buttons/_index'; +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import Image from 'next/image'; +import CharacterVoiceSelectList from '../_components/CharacterVoiceSelectList'; +import { useVoiceStore } from '@/stores/voiceStore'; + +export default function VoiceSelectPage() { + const router = useRouter(); + const { subText } = text.selectVoice; + const { selectedVoice } = useVoiceStore(); + const { currentLanguage } = useLanguageStore(); + + const handleBtnClick = () => { + router.push(ROUTES.ONBOARDING.VOICE.COMPLETE); + }; + + return ( + <> + + + 코디 + 의 목소리를 선택해 주세요. +
+ 목소리는 언제든 변경할 수 있어요. + + } + subText={subText} + lang={currentLanguage.code} + className="mt-10 mb-5" + /> + {/* 캐릭터 프로필 */} +
+ {'character'} +
+

코디

+

Kody

+
+
+ {/* 음성 선택 */} +
+ +
+
+ {/* 하단 버튼 */} +
+
+ + ); +} diff --git a/public/ttsTest.m4a b/public/ttsTest.m4a new file mode 100644 index 0000000000000000000000000000000000000000..37f7a61ffab847e5df19548ffa73ef6b62c5b59d GIT binary patch literal 114100 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 Date: Tue, 19 Aug 2025 06:18:35 +0900 Subject: [PATCH 067/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20navigation?= =?UTF-8?q?=20bar=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/_components/NavigationBar.tsx | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/main/_components/NavigationBar.tsx diff --git a/app/main/_components/NavigationBar.tsx b/app/main/_components/NavigationBar.tsx new file mode 100644 index 0000000..6c58469 --- /dev/null +++ b/app/main/_components/NavigationBar.tsx @@ -0,0 +1,54 @@ +'use client'; + +import Image from 'next/image'; +import Link from 'next/link'; +import { usePathname } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; + +export default function NavigationBar() { + const pathname = usePathname(); + + const navItems = [ + { + label: '나의 학습', + href: ROUTES.MAIN.MY_LEARNING, + icon: '/icons/nav-book.svg', + }, + { + label: '대화', + href: ROUTES.MAIN.CONVERSATION, + icon: '/icons/nav-phone.svg', + }, + { + label: '마이페이지', + href: ROUTES.MAIN.MY_PAGE, + icon: '/icons/nav-user.svg', + }, + ]; + + return ( + + ); +} From 0c29eb7d4f5892b62a4d3da6e9c33a81fcd34a9a Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:19:11 +0900 Subject: [PATCH 068/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20main=20screen?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 라우팅만 함 (UI X) --- app/main/conversation/page.tsx | 3 +++ app/main/layout.tsx | 11 +++++++++++ app/main/my-learning/page.tsx | 3 +++ app/main/my-page/page.tsx | 3 +++ app/main/page.tsx | 6 ++++++ 5 files changed, 26 insertions(+) create mode 100644 app/main/conversation/page.tsx create mode 100644 app/main/layout.tsx create mode 100644 app/main/my-learning/page.tsx create mode 100644 app/main/my-page/page.tsx create mode 100644 app/main/page.tsx diff --git a/app/main/conversation/page.tsx b/app/main/conversation/page.tsx new file mode 100644 index 0000000..2d5240a --- /dev/null +++ b/app/main/conversation/page.tsx @@ -0,0 +1,3 @@ +export default function ConversationPage() { + return

대화 페이지

; +} diff --git a/app/main/layout.tsx b/app/main/layout.tsx new file mode 100644 index 0000000..6bc87bf --- /dev/null +++ b/app/main/layout.tsx @@ -0,0 +1,11 @@ +import { ReactNode } from 'react'; +import NavigationBar from './_components/NavigationBar'; + +export default function MainLayout({ children }: { children: ReactNode }) { + return ( +
+ {children} + +
+ ); +} diff --git a/app/main/my-learning/page.tsx b/app/main/my-learning/page.tsx new file mode 100644 index 0000000..172a113 --- /dev/null +++ b/app/main/my-learning/page.tsx @@ -0,0 +1,3 @@ +export default function MyLearningPage() { + return

나의 학습 페이지

; +} diff --git a/app/main/my-page/page.tsx b/app/main/my-page/page.tsx new file mode 100644 index 0000000..54870ed --- /dev/null +++ b/app/main/my-page/page.tsx @@ -0,0 +1,3 @@ +export default function MyPage() { + return

마이페이지

; +} diff --git a/app/main/page.tsx b/app/main/page.tsx new file mode 100644 index 0000000..d518a8e --- /dev/null +++ b/app/main/page.tsx @@ -0,0 +1,6 @@ +import { ROUTES } from '@/constants/routes'; +import { redirect } from 'next/navigation'; + +export default function MainPage() { + redirect(ROUTES.MAIN.MY_LEARNING); +} From f0b291763011bb9b16c1d48a6e21cf28653cf2ec Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 06:52:51 +0900 Subject: [PATCH 069/113] =?UTF-8?q?=F0=9F=90=9B=20bug:=20fix=20text=20colo?= =?UTF-8?q?r(black)=20not=20showing=20up=20in=20android=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/onboarding/signin/components/BottomSheet.tsx | 2 +- app/onboarding/signin/step1/page.tsx | 2 +- components/buttons/select.tsx | 2 +- components/dropdowns/LanguageList.tsx | 2 +- components/dropdowns/SchoolSelect.tsx | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/onboarding/signin/components/BottomSheet.tsx b/app/onboarding/signin/components/BottomSheet.tsx index 4da426b..e131c3c 100644 --- a/app/onboarding/signin/components/BottomSheet.tsx +++ b/app/onboarding/signin/components/BottomSheet.tsx @@ -99,7 +99,7 @@ export default function BottomSheet({ {/* 회색 그랩바 */}
-

{title}

+

{title}

{subText}

diff --git a/app/onboarding/signin/step1/page.tsx b/app/onboarding/signin/step1/page.tsx index a4f7a81..c51e090 100644 --- a/app/onboarding/signin/step1/page.tsx +++ b/app/onboarding/signin/step1/page.tsx @@ -91,7 +91,7 @@ export default function SignInStep1Page() { subText={bottomSheetSubText[currentLanguage.code]} > -

+

그 전까지는 한글을 영어로 번역할게요.

diff --git a/components/buttons/select.tsx b/components/buttons/select.tsx index dabfbd6..3f4dcc6 100644 --- a/components/buttons/select.tsx +++ b/components/buttons/select.tsx @@ -34,7 +34,7 @@ export default function SelectButton({ > {/* 왼쪽 텍스트 영역 */}

- {text} + {text} {subText && ( {subText} diff --git a/components/dropdowns/LanguageList.tsx b/components/dropdowns/LanguageList.tsx index 3066945..83d64d9 100644 --- a/components/dropdowns/LanguageList.tsx +++ b/components/dropdowns/LanguageList.tsx @@ -29,7 +29,7 @@ function LanguageListItems({ {codes.map(code => (
  • onSelect(code)} > {ISO6391.getName(code)} diff --git a/components/dropdowns/SchoolSelect.tsx b/components/dropdowns/SchoolSelect.tsx index 42f36c2..12bb2e7 100644 --- a/components/dropdowns/SchoolSelect.tsx +++ b/components/dropdowns/SchoolSelect.tsx @@ -76,7 +76,7 @@ export default function SchoolSelectDropdown({
  • handleSelect(school)} - className="px-4 py-3 cursor-pointer text-trans-cp1-regular hover:bg-gray-100" + className="px-4 py-3 cursor-pointer text-trans-cp1-regular text-black hover:bg-gray-100" > {school.label} {school.subLabel && ( From 8cfed758299bfee51519003c403e9989ba382b5d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:31:28 +0900 Subject: [PATCH 070/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20icons=20[KOB?= =?UTF-8?q?G-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/audio-blue.svg | 5 +++++ public/icons/bookmark-checked.svg | 4 ++++ public/icons/bookmark-unchecked.svg | 3 +++ public/icons/check-disabled.svg | 4 ++++ public/icons/check-enabled.svg | 4 ++++ public/icons/check-pressed.svg | 4 ++++ public/icons/flag.svg | 5 +++++ public/icons/keyboard.svg | 3 +++ public/icons/mic.svg | 5 +++++ public/icons/retry.svg | 3 +++ public/icons/star-filled.svg | 3 +++ public/icons/star-unfilled.svg | 3 +++ 12 files changed, 46 insertions(+) create mode 100644 public/icons/audio-blue.svg create mode 100644 public/icons/bookmark-checked.svg create mode 100644 public/icons/bookmark-unchecked.svg create mode 100644 public/icons/check-disabled.svg create mode 100644 public/icons/check-enabled.svg create mode 100644 public/icons/check-pressed.svg create mode 100644 public/icons/flag.svg create mode 100644 public/icons/keyboard.svg create mode 100644 public/icons/mic.svg create mode 100644 public/icons/retry.svg create mode 100644 public/icons/star-filled.svg create mode 100644 public/icons/star-unfilled.svg diff --git a/public/icons/audio-blue.svg b/public/icons/audio-blue.svg new file mode 100644 index 0000000..92727aa --- /dev/null +++ b/public/icons/audio-blue.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/bookmark-checked.svg b/public/icons/bookmark-checked.svg new file mode 100644 index 0000000..55a5e30 --- /dev/null +++ b/public/icons/bookmark-checked.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/bookmark-unchecked.svg b/public/icons/bookmark-unchecked.svg new file mode 100644 index 0000000..eabad5f --- /dev/null +++ b/public/icons/bookmark-unchecked.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/check-disabled.svg b/public/icons/check-disabled.svg new file mode 100644 index 0000000..266024f --- /dev/null +++ b/public/icons/check-disabled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/check-enabled.svg b/public/icons/check-enabled.svg new file mode 100644 index 0000000..1e792cb --- /dev/null +++ b/public/icons/check-enabled.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/check-pressed.svg b/public/icons/check-pressed.svg new file mode 100644 index 0000000..724c667 --- /dev/null +++ b/public/icons/check-pressed.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/flag.svg b/public/icons/flag.svg new file mode 100644 index 0000000..05f2788 --- /dev/null +++ b/public/icons/flag.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/keyboard.svg b/public/icons/keyboard.svg new file mode 100644 index 0000000..6a86a99 --- /dev/null +++ b/public/icons/keyboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/mic.svg b/public/icons/mic.svg new file mode 100644 index 0000000..95872e8 --- /dev/null +++ b/public/icons/mic.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/retry.svg b/public/icons/retry.svg new file mode 100644 index 0000000..206d8f9 --- /dev/null +++ b/public/icons/retry.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/star-filled.svg b/public/icons/star-filled.svg new file mode 100644 index 0000000..6c95a2d --- /dev/null +++ b/public/icons/star-filled.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/star-unfilled.svg b/public/icons/star-unfilled.svg new file mode 100644 index 0000000..0992f37 --- /dev/null +++ b/public/icons/star-unfilled.svg @@ -0,0 +1,3 @@ + + + From 44b91352a63d5425a4aef204dcb99dc5a5a1517d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:32:11 +0900 Subject: [PATCH 071/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20my-learning?= =?UTF-8?q?=20route=20constants=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/routes.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/constants/routes.ts b/constants/routes.ts index e91ce7c..cdd1703 100644 --- a/constants/routes.ts +++ b/constants/routes.ts @@ -15,7 +15,14 @@ export const ROUTES = { }, MAIN: { ROOT: '/main', - MY_LEARNING: '/main/my-learning', + MY_LEARNING: { + ROOT: '/main/my-learning', + getLevel: (level: number) => `/main/my-learning/level-${level}`, + getStep: ( + level: number, + step: 'intro1' | 'step1' | 'step2' | 'step3' | 'intro2' | 'ending', + ) => `/main/my-learning/level-${level}/${step}`, + }, CONVERSATION: '/main/conversation', MY_PAGE: '/main/my-page', }, From 8b59fb98e58485715e127313479b3489f4e86ef6 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:32:46 +0900 Subject: [PATCH 072/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20step1=20ratin?= =?UTF-8?q?g=20constants=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/rating.ts | 65 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 constants/rating.ts diff --git a/constants/rating.ts b/constants/rating.ts new file mode 100644 index 0000000..329a7e1 --- /dev/null +++ b/constants/rating.ts @@ -0,0 +1,65 @@ +export const RATING_THRESHOLDS = [ + { + min: 80, + rating: 5, + feedback: '발음이 아주 정확해!', + feedbackEn: 'Your pronunciation is perfect!', + }, + { + min: 60, + rating: 4, + feedback: '발음이 정확해!', + feedbackEn: 'Your pronunciation is accurate!', + }, + { + min: 40, + rating: 3, + feedback: '발음이 나쁘지 않은걸?', + feedbackEn: "Your pronunciation isn't bad?", + }, + { + min: 20, + rating: 2, + feedback: '발음은 노력해 보자!', + feedbackEn: 'Keep trying to improve your pronunciation!', + }, + { + min: 0, + rating: 1, + feedback: '발음은 많이 노력해 보자!', + feedbackEn: 'You need to work on your pronunciation!', + }, +]; + +export const SPELLING_RATING_THRESHOLDS = [ + { + min: 80, + rating: 5, + feedback: '맞춤법이 아주 정확해!', + feedbackEn: 'Your spelling is perfect!', + }, + { + min: 60, + rating: 4, + feedback: '맞춤법이 정확해!', + feedbackEn: 'Your spelling is accurate!', + }, + { + min: 40, + rating: 3, + feedback: '맞춤법이 나쁘지 않은걸?', + feedbackEn: "Your spelling isn't bad?", + }, + { + min: 20, + rating: 2, + feedback: '맞춤법은 노력해 보자!', + feedbackEn: 'You should improve your spelling!', + }, + { + min: 0, + rating: 1, + feedback: '맞춤법은 많이 노력해 보자!', + feedbackEn: 'You really need to work on your spelling!', + }, +]; From 10ac0d536405a0c332a3290af9df1ba69a6519e2 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:33:55 +0900 Subject: [PATCH 073/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20update=20to=20add?= =?UTF-8?q?=20center=20text=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/TopAppBar.tsx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/components/TopAppBar.tsx b/components/TopAppBar.tsx index 8567c66..fdd9e1c 100644 --- a/components/TopAppBar.tsx +++ b/components/TopAppBar.tsx @@ -3,7 +3,11 @@ import Image from 'next/image'; import { useRouter } from 'next/navigation'; -export default function TopAppBar() { +interface TopAppBarProps { + title?: string; +} + +export default function TopAppBar({ title }: TopAppBarProps) { const router = useRouter(); const handleGoBack = () => { @@ -11,8 +15,9 @@ export default function TopAppBar() { }; return ( -
    - + {/* 가운데 타이틀 */} + {title && ( + {title} + )}
    ); } From e0bac8158f1a81aa8cdfea96fc119abfeb12105f Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:34:33 +0900 Subject: [PATCH 074/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20update=20button=20?= =?UTF-8?q?color=20props=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buttons/_index.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/buttons/_index.tsx b/components/buttons/_index.tsx index 8931b79..3c40370 100644 --- a/components/buttons/_index.tsx +++ b/components/buttons/_index.tsx @@ -7,6 +7,7 @@ interface ButtonProps { className?: string; onClick?: MouseEventHandler; disabled?: boolean; + btnColor?: string; } export default function Button({ @@ -15,6 +16,7 @@ export default function Button({ className, onClick, disabled = false, + btnColor = 'bg-primary', }: ButtonProps) { const [isPressed, setIsPressed] = useState(false); @@ -25,7 +27,7 @@ export default function Button({ setIsPressed(false); return ( -
    +
    {/* 직사각형 그림자 */}
    From 805274af85cfcf98cfd4f277153fb7a4198df0fc Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:35:46 +0900 Subject: [PATCH 075/113] =?UTF-8?q?=F0=9F=90=9B=20bug:=20modify=20router?= =?UTF-8?q?=20route=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/_components/NavigationBar.tsx | 2 +- app/main/page.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/main/_components/NavigationBar.tsx b/app/main/_components/NavigationBar.tsx index 6c58469..a3bee35 100644 --- a/app/main/_components/NavigationBar.tsx +++ b/app/main/_components/NavigationBar.tsx @@ -11,7 +11,7 @@ export default function NavigationBar() { const navItems = [ { label: '나의 학습', - href: ROUTES.MAIN.MY_LEARNING, + href: ROUTES.MAIN.MY_LEARNING.ROOT, icon: '/icons/nav-book.svg', }, { diff --git a/app/main/page.tsx b/app/main/page.tsx index d518a8e..133d37f 100644 --- a/app/main/page.tsx +++ b/app/main/page.tsx @@ -2,5 +2,5 @@ import { ROUTES } from '@/constants/routes'; import { redirect } from 'next/navigation'; export default function MainPage() { - redirect(ROUTES.MAIN.MY_LEARNING); + redirect(ROUTES.MAIN.MY_LEARNING.ROOT); } From a5b138e4ea2b0f883d9bcd99a94860278c69b3cf Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:36:14 +0900 Subject: [PATCH 076/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20toast=20messa?= =?UTF-8?q?ge=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Toast.tsx | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 components/Toast.tsx diff --git a/components/Toast.tsx b/components/Toast.tsx new file mode 100644 index 0000000..2a86034 --- /dev/null +++ b/components/Toast.tsx @@ -0,0 +1,47 @@ +'use client'; + +import { useEffect } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; + +interface ToastProps { + message: string; + isOpen: boolean; + onClose: () => void; + duration?: number; // 자동 닫힘 시간 (ms) +} + +export default function Toast({ + message, + isOpen, + onClose, + duration = 2000, +}: ToastProps) { + // 일정 시간 후 자동 닫기 + useEffect(() => { + if (isOpen) { + const timer = setTimeout(() => { + onClose(); + }, duration); + return () => clearTimeout(timer); + } + }, [isOpen, duration, onClose]); + + return ( +
    + + {isOpen && ( + + {message} + + )} + +
    + ); +} From 55420a7cf19104da630fdefb14dbcbef904534b4 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:38:23 +0900 Subject: [PATCH 077/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20locales=20for?= =?UTF-8?q?=20my-learning=20tab=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/my-learning/_locales/text.json | 91 +++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 app/main/my-learning/_locales/text.json diff --git a/app/main/my-learning/_locales/text.json b/app/main/my-learning/_locales/text.json new file mode 100644 index 0000000..8a1239f --- /dev/null +++ b/app/main/my-learning/_locales/text.json @@ -0,0 +1,91 @@ +{ + "intro": { + "title": "오늘 공부할 문장들이에요.", + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "These are the phrases that you're going to study today.", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + }, + "characterText": "주제는 취미와 좋아하는 것들이야.", + "characterSubText": { + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "The topics are your hobbies and favorite things.", + "jp": "私の欲しい言語がありません。", + "chn": "没有我想要的语言。" + }, + "phrase1": { + "id": 1, + "kor": "너는 취미가 뭐야?", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "What is your hobby?", + "jp": "私の欲しい言語がありません。", + "chn": "没有我想要的语言。" + }, + "phrase2": { + "id": 2, + "kor": "너는 이름이 뭐야?", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "What is your name?", + "jp": "あなたの名前は何ですか?", + "chn": "你叫什么名字?" + }, + "phrase3": { + "id": 3, + "kor": "가장 좋아하는게 뭐야?", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "What is your favorite thing?", + "jp": "あなたの名前は何ですか?", + "chn": "你叫什么名字?" + } + }, +"step1": { + "title": "아래 문장을 말해 봐!\n말할 수 없다면 글로 써 보자.", + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "Say the sentence below!\nIf you can't say it, let's write it.", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + } + }, + "intro2": { + "title": "코디와 대화하며 문장을 연습해요.", + "subText": { + "vt": "Chọn một ngôn ngữ!\nChúng tôi sẽ sử dụng nó để dịch.", + "en": "Practice your sentences by talking with Kody.", + "jp": "言語を選択してください!\n翻訳に使用します。", + "chn": "选择一种语言!\n我们将用它进行翻译。" + }, + "characterText": "아래는 오늘의 대화 흐름이야.", + "characterSubText": { + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "Below is the flow of today's conversation.", + "jp": "私の欲しい言語がありません。", + "chn": "没有我想要的语言。" + }, + "phrase1": { + "id": 1, + "kor": "반갑게 인사하기", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "Greeting each other warmly", + "jp": "私の欲しい言語がありません。", + "chn": "没有我想要的语言。" + }, + "phrase2": { + "id": 2, + "kor": "서로의 취미 공유하기", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "Sharing each other’s hobbies", + "jp": "あなたの名前は何ですか?", + "chn": "你叫什么名字?" + }, + "phrase3": { + "id": 3, + "kor": "좋아하는 것 말하기", + "vt": "Không có ngôn ngữ mà tôi muốn.", + "en": "Talking about what you like", + "jp": "あなたの名前は何ですか?", + "chn": "你叫什么名字?" + } + } +} \ No newline at end of file From fd4056949da75ba83a0a600c09c5085a90226066 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:39:00 +0900 Subject: [PATCH 078/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20textfield=20?= =?UTF-8?q?component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/textfields/TextFieldChat.tsx | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 components/textfields/TextFieldChat.tsx diff --git a/components/textfields/TextFieldChat.tsx b/components/textfields/TextFieldChat.tsx new file mode 100644 index 0000000..40e8094 --- /dev/null +++ b/components/textfields/TextFieldChat.tsx @@ -0,0 +1,68 @@ +'use client'; + +import { useState, KeyboardEvent } from 'react'; +import Image from 'next/image'; + +type TextFieldChatProps = { + placeholder?: string; + onSubmit?: (text: string) => void; +}; + +export default function TextFieldChat({ + placeholder = '여기에 문장을 써 보자.', + onSubmit, +}: TextFieldChatProps) { + const [inputValue, setInputValue] = useState(''); + const [isActive, setIsActive] = useState(false); + + const handleSubmit = () => { + if (!inputValue.trim()) return; + onSubmit?.(inputValue.trim()); + setInputValue(''); + setIsActive(false); + }; + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Enter') { + handleSubmit(); + } + }; + + const hasValue = inputValue.trim().length > 0; + + return ( +
    + {/* 그림자 레이어 */} +
    + {/* 실제 인풋 컨테이너 */} +
    + setInputValue(e.target.value)} + onFocus={() => setIsActive(true)} + onBlur={() => setIsActive(false)} + onKeyDown={handleKeyDown} + className="flex-1 outline-none text-black [text-size-adjust:100%]" + /> + +
    +
    + ); +} From 3a8e6165d120371fbb7e29d93fa7eaf2389480bd Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:39:27 +0900 Subject: [PATCH 079/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20voice=20&=20k?= =?UTF-8?q?eyboard=20btn=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/buttons/VoiceKeyboard.tsx | 148 +++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 components/buttons/VoiceKeyboard.tsx diff --git a/components/buttons/VoiceKeyboard.tsx b/components/buttons/VoiceKeyboard.tsx new file mode 100644 index 0000000..b9b8b27 --- /dev/null +++ b/components/buttons/VoiceKeyboard.tsx @@ -0,0 +1,148 @@ +'use client'; + +import { useState, KeyboardEvent } from 'react'; +import Image from 'next/image'; +import TextFieldChat from '../textfields/TextFieldChat'; + +type VoiceKeyboardProps = { + placeholder?: string; + onClick?: (mode: 'mic' | 'keyboard', data?: Blob | string) => void; +}; + +export default function VoiceKeyboard({ + placeholder = '텍스트를 입력하세요...', + onClick, +}: VoiceKeyboardProps) { + const [mode, setMode] = useState<'mic' | 'keyboard'>('mic'); + const [mediaRecorder, setMediaRecorder] = useState( + null, + ); + const [audioChunks, setAudioChunks] = useState([]); + const [isRecording, setIsRecording] = useState(false); + const [inputValue, setInputValue] = useState(''); + + // 마이크 버튼 클릭 → 녹음 시작 + const startRecording = async () => { + try { + const stream = await navigator.mediaDevices.getUserMedia({ audio: true }); + const recorder = new MediaRecorder(stream); + setMediaRecorder(recorder); + setAudioChunks([]); + + recorder.ondataavailable = event => { + if (event.data.size > 0) { + setAudioChunks(prev => [...prev, event.data]); + } + }; + + recorder.onstop = () => { + const audioBlob = new Blob(audioChunks, { type: 'audio/webm' }); + console.log('🎙️ 녹음 완료 Blob:', audioBlob); + onClick?.('mic', audioBlob); + }; + + recorder.start(); + setIsRecording(true); + } catch (err) { + console.error('마이크 권한 필요:', err); + } + }; + + const stopRecording = () => { + mediaRecorder?.stop(); + setIsRecording(false); + }; + + // 모드 전환 + const handleToggle = (newMode: 'mic' | 'keyboard') => { + setMode(newMode); + if (newMode === 'mic') { + stopRecording(); + startRecording(); + } else { + stopRecording(); + } + }; + + // 입력 완료 시 상위 전달 + const handleInputSubmit = (e: KeyboardEvent) => { + if (e.key === 'Enter' && inputValue.trim()) { + onClick?.('keyboard', inputValue); + setInputValue(''); + } + }; + + return ( +
    + {/* 버튼 + 입력창을 담는 고정 영역 */} +
    + {/* 토글 버튼 영역 (항상 중앙 고정) */} +
    + {/* 회색 직사각형 바 */} +
    +
    +
    + {/* 마이크 배경 원 */} +
    +
    +
    + + {/* 키보드 배경 원 */} +
    +
    +
    + {/* 마이크 버튼 */} + + + {/* 키보드 버튼 */} + +
    + + {/* 입력 필드 (버튼 밑에 absolute 배치) */} + {mode === 'keyboard' && ( +
    + { + onClick?.('keyboard', val); + setInputValue(''); + }} + /> +
    + )} +
    + + {/* 녹음 상태 표시 */} + {isRecording && mode === 'mic' && ( +

    🎤 녹음 중...

    + )} +
    + ); +} From 2fce623d7cb3b7f0568a0023aafdf573c715ed2f Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:39:46 +0900 Subject: [PATCH 080/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20character=20?= =?UTF-8?q?text=20component=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/CharacterText.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/CharacterText.tsx b/components/CharacterText.tsx index 1ea0f5e..f5f89b3 100644 --- a/components/CharacterText.tsx +++ b/components/CharacterText.tsx @@ -21,7 +21,7 @@ export default function CharacterText({
    {/* 텍스트 영역 */}
    -

    +

    {title} {audio && (

    {subtitle}

    From edfcc2f19596cb926ee45ed385f0cd3d9efa1207 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:40:24 +0900 Subject: [PATCH 081/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20level=20finde?= =?UTF-8?q?r=20from=20param=20hook=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hooks/useLevelParam.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 hooks/useLevelParam.ts diff --git a/hooks/useLevelParam.ts b/hooks/useLevelParam.ts new file mode 100644 index 0000000..7d13a45 --- /dev/null +++ b/hooks/useLevelParam.ts @@ -0,0 +1,9 @@ +'use client'; +import { usePathname } from 'next/navigation'; + +export function useLevelParam(defaultLevel = 1): number { + const pathname = usePathname(); // 예: /main/my-learning/level-2/intro + const match = pathname.match(/level-(\d+)/); + const level = match ? Number(match[1]) : defaultLevel; + return level; +} From 1bc79d99b79765a677c42c88d659a1c9265712a8 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:41:04 +0900 Subject: [PATCH 082/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20my-learning?= =?UTF-8?q?=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/layout.tsx | 30 ++++++++++++++++++++++++++--- app/main/my-learning/page.tsx | 36 ++++++++++++++++++++++++++++++++++- 2 files changed, 62 insertions(+), 4 deletions(-) diff --git a/app/main/layout.tsx b/app/main/layout.tsx index 6bc87bf..00c1041 100644 --- a/app/main/layout.tsx +++ b/app/main/layout.tsx @@ -1,11 +1,35 @@ +'use client'; + +import { usePathname } from 'next/navigation'; import { ReactNode } from 'react'; import NavigationBar from './_components/NavigationBar'; -export default function MainLayout({ children }: { children: ReactNode }) { +interface MainLayoutProps { + children: ReactNode; +} + +export default function MainLayout({ children }: MainLayoutProps) { + const pathname = usePathname(); + + // 네비바를 보여줄 루트 경로 + const showNavbarRoots = [ + '/main/my-learning', + '/main/conversation', + '/main/my-page', + ]; + + // 네비바를 숨길 하위 경로 패턴 + const hideNavbarPaths = ['/main/my-learning/level-']; + + // show 조건: 루트 경로 포함 + 숨김 패턴 미포함 + const showNavbar = + showNavbarRoots.some(root => pathname === root) && + !hideNavbarPaths.some(pattern => pathname.startsWith(pattern)); + return (
    - {children} - +
    {children}
    + {showNavbar && }
    ); } diff --git a/app/main/my-learning/page.tsx b/app/main/my-learning/page.tsx index 172a113..08eb092 100644 --- a/app/main/my-learning/page.tsx +++ b/app/main/my-learning/page.tsx @@ -1,3 +1,37 @@ +'use client'; + +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import CharacterFrontText from './_components/CharacterFrontText'; +import LevelButton from './_components/roadmap/LevelButton'; + export default function MyLearningPage() { - return

    나의 학습 페이지

    ; + return ( + <> + + + + + + + + ); } From 4ddaddfde533461763acb428da60cec0b866862f Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:42:04 +0900 Subject: [PATCH 083/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20my-learning?= =?UTF-8?q?=20components=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_components/CharacterFrontText.tsx | 52 ++++++++ .../_components/CharacterLevelText.tsx | 56 ++++++++ .../_components/roadmap/LevelButton.tsx | 124 ++++++++++++++++++ .../_components/roadmap/LevelModal.tsx | 92 +++++++++++++ .../_components/roadmap/LevelModalList.tsx | 53 ++++++++ 5 files changed, 377 insertions(+) create mode 100644 app/main/my-learning/_components/CharacterFrontText.tsx create mode 100644 app/main/my-learning/_components/CharacterLevelText.tsx create mode 100644 app/main/my-learning/_components/roadmap/LevelButton.tsx create mode 100644 app/main/my-learning/_components/roadmap/LevelModal.tsx create mode 100644 app/main/my-learning/_components/roadmap/LevelModalList.tsx diff --git a/app/main/my-learning/_components/CharacterFrontText.tsx b/app/main/my-learning/_components/CharacterFrontText.tsx new file mode 100644 index 0000000..de071c1 --- /dev/null +++ b/app/main/my-learning/_components/CharacterFrontText.tsx @@ -0,0 +1,52 @@ +import { FONT_CLASS } from '@/constants/languages'; +import { useLanguageStore } from '@/stores/languageStore'; +import Image from 'next/image'; + +interface CharacterTextProps { + title: string; + subtitle: string; + audio?: boolean; + image?: string; // 이미지 URL +} + +export default function CharacterFrontText({ + title, + subtitle, + audio = false, + image = '/character/default.webp', // 기본 이미지 URL +}: CharacterTextProps) { + const { currentLanguage } = useLanguageStore(); + + return ( +
    + {/* 캐릭터 이미지 */} + {image && ( +
    + character +
    + )} + {/* 텍스트 영역 */} +
    +

    + {title} + {audio && ( + audio icon + )} +

    + {/* 구분선 */} +
    +

    + {subtitle} +

    +
    +
    + ); +} diff --git a/app/main/my-learning/_components/CharacterLevelText.tsx b/app/main/my-learning/_components/CharacterLevelText.tsx new file mode 100644 index 0000000..5033f2f --- /dev/null +++ b/app/main/my-learning/_components/CharacterLevelText.tsx @@ -0,0 +1,56 @@ +import { FONT_CLASS } from '@/constants/languages'; +import { useLanguageStore } from '@/stores/languageStore'; +import Image from 'next/image'; + +interface CharacterTextProps { + title: string; + subtitle: string; + audio?: boolean; + image?: string; + className?: string; +} + +export default function CharacterLevelText({ + title, + subtitle, + audio = false, + image = '/character/default.webp', + className, +}: CharacterTextProps) { + const { currentLanguage } = useLanguageStore(); + + return ( +
    + {/* 캐릭터 이미지 */} + {image && ( +
    + character +
    + )} + {/* 텍스트 영역 */} +
    +

    + {title} + {audio && ( + audio icon + )} +

    + {/* 구분선 */} +
    +

    + {subtitle} +

    +
    +
    + ); +} diff --git a/app/main/my-learning/_components/roadmap/LevelButton.tsx b/app/main/my-learning/_components/roadmap/LevelButton.tsx new file mode 100644 index 0000000..ff20af0 --- /dev/null +++ b/app/main/my-learning/_components/roadmap/LevelButton.tsx @@ -0,0 +1,124 @@ +import { MouseEventHandler, TouchEventHandler, useState } from 'react'; +import LevelModal from './LevelModal'; +import Toast from '@/components/Toast'; + +interface ButtonProps { + text: string; + subText?: string; + status: 'current' | 'complete' | 'locked'; + levelNum: number; + className?: string; +} + +export default function LevelButton({ + text, + subText, + levelNum, + status = 'locked', + className, +}: ButtonProps) { + const [isPressed, setIsPressed] = useState(false); + const [isModalOpen, setIsModalOpen] = useState(false); + const [isToastOpen, setIsToastOpen] = useState(false); + + const handleTouchStart: TouchEventHandler = () => + setIsPressed(true); + const handleTouchEnd: TouchEventHandler = () => + setIsPressed(false); + + const handleClick: MouseEventHandler = e => { + setIsPressed(true); + if (status === 'locked') { + setIsToastOpen(true); + setIsPressed(false); + return; + } + // 1초 뒤에 모달 열기 + setTimeout(() => { + setIsModalOpen(true); + setIsPressed(false); + }, 300); + }; + + const statusStyles = { + current: { + bg: 'bg-primary', + shadowBg: 'bg-primary-dimensional', + levelBg: 'bg-white', + textColor: 'text-black', + subTextColor: 'text-gray-300', + levelTextColor: 'text-secondary-300', + }, + complete: { + bg: 'bg-white', + shadowBg: 'bg-primary', + levelBg: 'bg-primary-800', + textColor: 'text-black', + subTextColor: 'text-gray-500', + levelTextColor: 'text-secondary-300', + }, + locked: { + bg: 'bg-bg-solid', + shadowBg: 'bg-bg-solid', + levelBg: 'bg-white', + textColor: 'text-secondary-300', + subTextColor: 'text-secondary-400', + levelTextColor: 'text-secondary-300', + }, + }; + + const { bg, shadowBg, levelBg, textColor, subTextColor, levelTextColor } = + statusStyles[status]; + + return ( + <> +
    + {/* 그림자 도형 */} +
    + {/* 실제 버튼 */} + +
    + {/* 모달 */} + {isModalOpen && ( + setIsModalOpen(false)} + /> + )} + {/* 토스트 */} + setIsToastOpen(false)} + /> + + ); +} diff --git a/app/main/my-learning/_components/roadmap/LevelModal.tsx b/app/main/my-learning/_components/roadmap/LevelModal.tsx new file mode 100644 index 0000000..954fbea --- /dev/null +++ b/app/main/my-learning/_components/roadmap/LevelModal.tsx @@ -0,0 +1,92 @@ +'use client'; + +import Button from '@/components/buttons/_index'; +import { motion, AnimatePresence } from 'framer-motion'; +import LevelModalList from './LevelModalList'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; + +interface LevelModalProps { + levelNum: number; + title: string; + onClose: () => void; + showButton?: boolean; +} + +export default function LevelModal({ + levelNum, + title, + onClose, + showButton = false, +}: LevelModalProps) { + const router = useRouter(); + + // TODO: API 연동 + const levelGoals = [ + { + goal: '반갑게 인사하기', + sub: "Sharing each other's hobbies.", + }, + { + goal: '좋아하는 음식 말하기', + sub: 'Talk about your favorite foods.', + }, + { + goal: '하루 일과 소개하기', + sub: 'Introduce your daily routine.', + }, + ]; + + const handleStart = () => { + router.push(ROUTES.MAIN.MY_LEARNING.getStep(levelNum, 'intro1')); + }; + + return ( + + + e.stopPropagation()} // 내부 클릭 시 닫히지 않게 + > + {/* 상단 제목 */} +
    +

    + Lv. {levelNum} +

    +

    {title}

    +
    + {/* 리스트 */} +
    + {levelGoals.map((item, idx) => ( + + ))} +
    + {/* 버튼 */} + {showButton && ( + +
    + ); +} From 7cd145f87d3ae03fae35bd40b828b01f18017a37 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:42:43 +0900 Subject: [PATCH 084/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20my-learning?= =?UTF-8?q?=20intro=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../my-learning/[level]/intro1/layout.tsx | 15 ++++ app/main/my-learning/[level]/intro1/page.tsx | 61 +++++++++++++++ .../_components/step1/IntroPhrasesList.tsx | 78 +++++++++++++++++++ 3 files changed, 154 insertions(+) create mode 100644 app/main/my-learning/[level]/intro1/layout.tsx create mode 100644 app/main/my-learning/[level]/intro1/page.tsx create mode 100644 app/main/my-learning/_components/step1/IntroPhrasesList.tsx diff --git a/app/main/my-learning/[level]/intro1/layout.tsx b/app/main/my-learning/[level]/intro1/layout.tsx new file mode 100644 index 0000000..6ee3a39 --- /dev/null +++ b/app/main/my-learning/[level]/intro1/layout.tsx @@ -0,0 +1,15 @@ +import TopAppBar from '@/components/TopAppBar'; +import { ReactNode } from 'react'; + +export default function LevelIntro1Layout({ + children, +}: { + children: ReactNode; +}) { + return ( +
    + + {children} +
    + ); +} diff --git a/app/main/my-learning/[level]/intro1/page.tsx b/app/main/my-learning/[level]/intro1/page.tsx new file mode 100644 index 0000000..27c6593 --- /dev/null +++ b/app/main/my-learning/[level]/intro1/page.tsx @@ -0,0 +1,61 @@ +'use client'; + +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import { useLanguageStore } from '@/stores/languageStore'; +import CharacterLevelText from '../../_components/CharacterLevelText'; +import text from '../../_locales/text.json'; +import IntroPhrasesList from '../../_components/step1/IntroPhrasesList'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import { useLevelParam } from '@/hooks/useLevelParam'; + +export default function LevelIntro1Page() { + const router = useRouter(); + const levelParam = useLevelParam(); + const { currentLanguage } = useLanguageStore(); + const { title, subText, characterText, characterSubText } = text.intro; + + // TODO: API 연결 + const phrasesArray = Object.values(text.intro).filter( + value => value?.id !== undefined, + ); + + const handleBtnCLick = () => { + router.push(ROUTES.MAIN.MY_LEARNING.getStep(levelParam, 'step1')); + }; + + return ( +
    + + {/* 텍스트 */} + + + + + {/* 캐릭터 텍스트 */} + + {/* 문장 리스트 */} + + + {/* 하단 버튼 */} +
    +
    +
    + ); +} diff --git a/app/main/my-learning/_components/step1/IntroPhrasesList.tsx b/app/main/my-learning/_components/step1/IntroPhrasesList.tsx new file mode 100644 index 0000000..bc12bc2 --- /dev/null +++ b/app/main/my-learning/_components/step1/IntroPhrasesList.tsx @@ -0,0 +1,78 @@ +import { useState } from 'react'; +import Image from 'next/image'; +import { useLanguageStore } from '@/stores/languageStore'; +import { FONT_CLASS } from '@/constants/languages'; + +interface Phrase { + id: number; + kor: string; + [key: string]: any; +} + +interface IntroPhrasesListProps { + phrases: Phrase[]; + initialBookmarks?: Record; +} + +export default function IntroPhrasesList({ + phrases, + initialBookmarks = {}, +}: IntroPhrasesListProps) { + const { currentLanguage } = useLanguageStore(); + + // 북마크 상태를 phrase.id 기준으로 관리 + const [bookmarks, setBookmarks] = useState(() => { + const initState: Record = {}; + phrases.forEach(phrase => { + initState[phrase.id] = initialBookmarks[phrase.id] || false; + }); + return initState; + }); + + const toggleBookmark = (id: number) => { + setBookmarks(prev => ({ + ...prev, + [id]: !prev[id], + })); + }; + + return ( +
    +
    + {phrases.map(phrase => ( +
    +
    +

    {phrase.kor}

    + +
    + + {phrase?.[currentLanguage.code] || ( + 번역 없음 + )} + +
    + ))} +
    +
    + ); +} From ddc894f23fbb3bb7021f02a0ae14c955281c2b44 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:43:16 +0900 Subject: [PATCH 085/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20custom=20text?= =?UTF-8?q?=20highlighter=20util=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/textHighlighter.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 utils/textHighlighter.ts diff --git a/utils/textHighlighter.ts b/utils/textHighlighter.ts new file mode 100644 index 0000000..8923977 --- /dev/null +++ b/utils/textHighlighter.ts @@ -0,0 +1,24 @@ +export interface HighlightedWord { + text: string; + key: number; + percentage?: number; // 단어별 점수 +} + +export function highlightWords( + phrase: string, + percentages: number[], // 단어 순서대로 점수 + options?: { punctuation?: boolean }, +): HighlightedWord[] { + const punctuationRegex = options?.punctuation ? /[.,!?;:]/g : undefined; + + return phrase.split(/\s+/).map((word, idx) => { + const cleanWord = punctuationRegex + ? word.replace(punctuationRegex, '') + : word; + return { + text: word, + key: idx, + percentage: percentages[idx] ?? 0, + }; + }); +} From d614c8cc3244ffe2f76acf493093e6cee10e16b6 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:44:02 +0900 Subject: [PATCH 086/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20my-learning?= =?UTF-8?q?=20step1=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/my-learning/[level]/step1/layout.tsx | 15 ++ app/main/my-learning/[level]/step1/page.tsx | 154 ++++++++++++++++++ .../_components/step1/PhrasePracticeText.tsx | 150 +++++++++++++++++ 3 files changed, 319 insertions(+) create mode 100644 app/main/my-learning/[level]/step1/layout.tsx create mode 100644 app/main/my-learning/[level]/step1/page.tsx create mode 100644 app/main/my-learning/_components/step1/PhrasePracticeText.tsx diff --git a/app/main/my-learning/[level]/step1/layout.tsx b/app/main/my-learning/[level]/step1/layout.tsx new file mode 100644 index 0000000..f3dc62d --- /dev/null +++ b/app/main/my-learning/[level]/step1/layout.tsx @@ -0,0 +1,15 @@ +import TopAppBar from '@/components/TopAppBar'; +import { ReactNode } from 'react'; + +export default function LevelStep1Layout({ + children, +}: { + children: ReactNode; +}) { + return ( +
    + + {children} +
    + ); +} diff --git a/app/main/my-learning/[level]/step1/page.tsx b/app/main/my-learning/[level]/step1/page.tsx new file mode 100644 index 0000000..18a4489 --- /dev/null +++ b/app/main/my-learning/[level]/step1/page.tsx @@ -0,0 +1,154 @@ +'use client'; + +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import ProgressBar from '@/components/ProgressBar'; +import { useLanguageStore } from '@/stores/languageStore'; +import text from '../../_locales/text.json'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import { useLevelParam } from '@/hooks/useLevelParam'; +import PhrasePracticeText from '../../_components/step1/PhrasePracticeText'; +import { useState } from 'react'; +import { AnimatePresence, motion } from 'framer-motion'; +import VoiceKeyboard from '@/components/buttons/VoiceKeyboard'; + +export default function LevelStep1Page() { + const router = useRouter(); + const levelParam = useLevelParam(); + const { currentLanguage } = useLanguageStore(); + const { title, subText } = text.step1; + + //TODO: API 연결 + const phrases = [ + { + phrase: '너는 취미가 뭐야?', + romanization: 'Neo nun / chui mi ga / muh ya', + translation: 'What is your hobby?', + }, + { + phrase: '오늘 날씨 어때?', + romanization: 'Oneul nalssi eottae?', + translation: 'How is the weather today?', + }, + { + phrase: '무슨 음식을 좋아해?', + romanization: 'Museun eumsigeul joahae?', + translation: 'What food do you like?', + }, + ]; + + // 상태 + const [currentIndex, setCurrentIndex] = useState(0); + const [inputText, setInputText] = useState(''); + const [showInput, setShowInput] = useState(false); + const [showEvaluation, setShowEvaluation] = useState(false); + const [resetKey, setResetKey] = useState(0); + + const handleComplete = () => { + if (inputText.trim() !== '') { + setShowEvaluation(true); + setShowInput(false); + } + }; + + const handleRetry = () => { + setInputText(''); + setShowInput(false); + setShowEvaluation(false); + setResetKey(prev => prev + 1); + }; + + const handleNext = () => { + if (currentIndex < phrases.length - 1) { + setCurrentIndex(prev => prev + 1); + setInputText(''); + setShowInput(false); + setShowEvaluation(false); + setResetKey(prev => prev + 1); + } else { + // 마지막 문장이면 step2로 이동 + router.push(ROUTES.MAIN.MY_LEARNING.getStep(levelParam, 'intro2')); + } + }; + + return ( +
    + + + +

    + {title} +

    +

    + {subText[currentLanguage.code]} +

    +
    + + + + + + {!showInput && !showEvaluation && ( +
    + { + if (mode === 'keyboard' && typeof data === 'string') { + setInputText(data); + setShowInput(true); + setShowEvaluation(true); + } + if (mode === 'mic' && data instanceof Blob) { + console.log('녹음된 오디오:', data); + setShowInput(true); + setShowEvaluation(true); + } + }} + /> +
    + )} + +
    + {showEvaluation && ( + +
    +
    +
    + ); +} diff --git a/app/main/my-learning/_components/step1/PhrasePracticeText.tsx b/app/main/my-learning/_components/step1/PhrasePracticeText.tsx new file mode 100644 index 0000000..c182ade --- /dev/null +++ b/app/main/my-learning/_components/step1/PhrasePracticeText.tsx @@ -0,0 +1,150 @@ +import Image from 'next/image'; +import { useLanguageStore } from '@/stores/languageStore'; +import { useState } from 'react'; +import { SPELLING_RATING_THRESHOLDS } from '@/constants/rating'; + +interface WordPercentage { + text: string; + percentage: number; +} + +interface PhrasePracticeTextProps { + phrase: string; + romanization: string; + translation: string; + className?: string; + inputText: string; + showEvaluation: boolean; +} + +export default function PhrasePracticeText({ + phrase, + romanization, + translation, + className, + inputText, + showEvaluation, +}: PhrasePracticeTextProps) { + const { currentLanguage } = useLanguageStore(); + const [isBookmarked, setIsBookmarked] = useState(false); + + const typedWords = inputText.trim() === '' ? [] : inputText.trim().split(' '); + const words = phrase.split(' '); + + const wordPercentages: WordPercentage[] = words.map((w, idx) => ({ + text: w, + percentage: typedWords[idx] === w ? 100 : 0, + })); + + const avg = + wordPercentages.reduce((sum, w) => sum + w.percentage, 0) / + wordPercentages.length; + + const matched = SPELLING_RATING_THRESHOLDS.find(t => avg >= t.min)!; + + const evaluationResult = { + rating: typedWords.length > 0 ? matched.rating : 0, + feedback: typedWords.length > 0 ? matched.feedback : '', + feedbackEn: typedWords.length > 0 ? matched.feedbackEn : '', + }; + + const getHighlightColor = (percentage: number) => { + if (percentage >= 80) return 'bg-primary-dimensional'; + if (percentage >= 20) return 'bg-primary'; + return 'bg-primary-900'; + }; + + const renderHighlightedPhrase = () => + words.map((word, idx) => { + const percentage = wordPercentages[idx].percentage; + const highlightClass = + typedWords.length > 0 && showEvaluation + ? getHighlightColor(percentage) + : 'bg-transparent'; + + return ( +
    + {word} + + {typedWords.length > 0 && showEvaluation && ( +
    + {percentage}% +
    + )} +
    + ); + }); + + return ( +
    +
    +

    + {romanization} +

    +
    +

    + {renderHighlightedPhrase()} +

    + {'listen'} 0 && showEvaluation ? 'pb-5.5' : 'pb-1.5' + } + /> + +
    + {typedWords.length > 0 && showEvaluation && ( +
    +

    + {evaluationResult.feedback} +

    +

    + {evaluationResult.feedbackEn} +

    +
    + {Array.from({ length: 5 }, (_, i) => ( + star + ))} +
    +
    + )} +
    + +

    + {translation} +

    +
    + ); +} From 76eb39070ff73b42da4a22a08b828af18d118add Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Tue, 19 Aug 2025 23:44:48 +0900 Subject: [PATCH 087/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20my-learning?= =?UTF-8?q?=20intro2=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../my-learning/[level]/intro2/layout.tsx | 15 +++++ app/main/my-learning/[level]/intro2/page.tsx | 61 +++++++++++++++++++ .../step2/IntroPhrasesListStep2.tsx | 55 +++++++++++++++++ 3 files changed, 131 insertions(+) create mode 100644 app/main/my-learning/[level]/intro2/layout.tsx create mode 100644 app/main/my-learning/[level]/intro2/page.tsx create mode 100644 app/main/my-learning/_components/step2/IntroPhrasesListStep2.tsx diff --git a/app/main/my-learning/[level]/intro2/layout.tsx b/app/main/my-learning/[level]/intro2/layout.tsx new file mode 100644 index 0000000..44e3003 --- /dev/null +++ b/app/main/my-learning/[level]/intro2/layout.tsx @@ -0,0 +1,15 @@ +import TopAppBar from '@/components/TopAppBar'; +import { ReactNode } from 'react'; + +export default function LevelIntro1Layout({ + children, +}: { + children: ReactNode; +}) { + return ( +
    + + {children} +
    + ); +} diff --git a/app/main/my-learning/[level]/intro2/page.tsx b/app/main/my-learning/[level]/intro2/page.tsx new file mode 100644 index 0000000..1003c8f --- /dev/null +++ b/app/main/my-learning/[level]/intro2/page.tsx @@ -0,0 +1,61 @@ +'use client'; + +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import { useLanguageStore } from '@/stores/languageStore'; +import CharacterLevelText from '../../_components/CharacterLevelText'; +import text from '../../_locales/text.json'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import { useLevelParam } from '@/hooks/useLevelParam'; +import IntroPhrasesListStep2 from '../../_components/step2/IntroPhrasesListStep2'; + +export default function LevelIntro2Page() { + const router = useRouter(); + const levelParam = useLevelParam(); + const { currentLanguage } = useLanguageStore(); + const { title, subText, characterText, characterSubText } = text.intro2; + + // TODO: API 연결 + const phrasesArray = Object.values(text.intro2).filter( + value => value?.id !== undefined, + ); + + const handleBtnCLick = () => { + router.push(ROUTES.MAIN.MY_LEARNING.getStep(levelParam, 'step2')); + }; + + return ( +
    + + {/* 텍스트 */} + + + + + {/* 캐릭터 텍스트 */} + + {/* 문장 리스트 */} + + + {/* 하단 버튼 */} +
    +
    +
    + ); +} diff --git a/app/main/my-learning/_components/step2/IntroPhrasesListStep2.tsx b/app/main/my-learning/_components/step2/IntroPhrasesListStep2.tsx new file mode 100644 index 0000000..edd3bfa --- /dev/null +++ b/app/main/my-learning/_components/step2/IntroPhrasesListStep2.tsx @@ -0,0 +1,55 @@ +import { useState } from 'react'; +import Image from 'next/image'; +import { useLanguageStore } from '@/stores/languageStore'; +import { FONT_CLASS } from '@/constants/languages'; + +interface Phrase { + id: number; + kor: string; + [key: string]: any; +} + +interface IntroPhrasesListProps { + phrases: Phrase[]; +} + +export default function IntroPhrasesListStep2({ + phrases, +}: IntroPhrasesListProps) { + const { currentLanguage } = useLanguageStore(); + + return ( +
    +
    + {phrases.map(phrase => ( +
    +
    + {'flag +
    +
    +

    {phrase.kor}

    + + {phrase?.[currentLanguage.code] || ( + 번역 없음 + )} + +
    +
    + ))} +
    +
    + ); +} From b5ed3972ec262206db2abd471838593f74b7b15b Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Wed, 20 Aug 2025 04:27:00 +0900 Subject: [PATCH 088/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20add=20icons=20[KOB?= =?UTF-8?q?G-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icons/audio-gray.svg | 5 +++++ public/icons/mic-gray.svg | 5 +++++ public/icons/nav-book-blue.svg | 3 +++ public/icons/nav-phone-blue.svg | 3 +++ public/icons/nav-user-blue.svg | 4 ++++ public/icons/translate-gray.svg | 8 ++++++++ 6 files changed, 28 insertions(+) create mode 100644 public/icons/audio-gray.svg create mode 100644 public/icons/mic-gray.svg create mode 100644 public/icons/nav-book-blue.svg create mode 100644 public/icons/nav-phone-blue.svg create mode 100644 public/icons/nav-user-blue.svg create mode 100644 public/icons/translate-gray.svg diff --git a/public/icons/audio-gray.svg b/public/icons/audio-gray.svg new file mode 100644 index 0000000..513655d --- /dev/null +++ b/public/icons/audio-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/mic-gray.svg b/public/icons/mic-gray.svg new file mode 100644 index 0000000..14750a6 --- /dev/null +++ b/public/icons/mic-gray.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/icons/nav-book-blue.svg b/public/icons/nav-book-blue.svg new file mode 100644 index 0000000..2744275 --- /dev/null +++ b/public/icons/nav-book-blue.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/nav-phone-blue.svg b/public/icons/nav-phone-blue.svg new file mode 100644 index 0000000..00d717d --- /dev/null +++ b/public/icons/nav-phone-blue.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/icons/nav-user-blue.svg b/public/icons/nav-user-blue.svg new file mode 100644 index 0000000..f7fce88 --- /dev/null +++ b/public/icons/nav-user-blue.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/icons/translate-gray.svg b/public/icons/translate-gray.svg new file mode 100644 index 0000000..69c1257 --- /dev/null +++ b/public/icons/translate-gray.svg @@ -0,0 +1,8 @@ + + + + + + + + From 3f661777249942dc9889b5b75f519ad7ee84e60d Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Wed, 20 Aug 2025 04:27:43 +0900 Subject: [PATCH 089/113] =?UTF-8?q?=F0=9F=92=84=20UI:=20modify=20to=20alig?= =?UTF-8?q?n=20middle=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/Toast.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/Toast.tsx b/components/Toast.tsx index 2a86034..1e1c6b2 100644 --- a/components/Toast.tsx +++ b/components/Toast.tsx @@ -36,7 +36,7 @@ export default function Toast({ animate={{ opacity: 1, y: -50 }} exit={{ opacity: 0, y: 50 }} transition={{ duration: 0.5 }} - className="fixed bottom-10 px-6 py-1 rounded-full shadow-lg z-50 text-bd2-regular bg-black-70 text-white" + className="fixed bottom-10 left-1/2 -translate-x-1/2 px-4 py-2 rounded-full shadow-lg z-50 text-bd2-regular bg-black-70 text-white max-w-[95vw] text-center" > {message} From 6ffbc2e5761710908273cf5bb7ff129e9566b635 Mon Sep 17 00:00:00 2001 From: Minji Kim Date: Wed, 20 Aug 2025 04:29:26 +0900 Subject: [PATCH 090/113] =?UTF-8?q?=E2=9C=A8=20feat:=20add=20step3=20of=20?= =?UTF-8?q?my-learning=20screen=20[KOBG-11]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/main/my-learning/[level]/step3/layout.tsx | 15 ++ app/main/my-learning/[level]/step3/page.tsx | 138 ++++++++++++++++++ .../_components/step3/BottomSheet.tsx | 112 ++++++++++++++ 3 files changed, 265 insertions(+) create mode 100644 app/main/my-learning/[level]/step3/layout.tsx create mode 100644 app/main/my-learning/[level]/step3/page.tsx create mode 100644 app/main/my-learning/_components/step3/BottomSheet.tsx diff --git a/app/main/my-learning/[level]/step3/layout.tsx b/app/main/my-learning/[level]/step3/layout.tsx new file mode 100644 index 0000000..d9988ec --- /dev/null +++ b/app/main/my-learning/[level]/step3/layout.tsx @@ -0,0 +1,15 @@ +import TopAppBar from '@/components/TopAppBar'; +import { ReactNode } from 'react'; + +export default function LevelStep3Layout({ + children, +}: { + children: ReactNode; +}) { + return ( +
    + + {children} +
    + ); +} diff --git a/app/main/my-learning/[level]/step3/page.tsx b/app/main/my-learning/[level]/step3/page.tsx new file mode 100644 index 0000000..3894de5 --- /dev/null +++ b/app/main/my-learning/[level]/step3/page.tsx @@ -0,0 +1,138 @@ +'use client'; + +import MotionFadeIn from '@/components/_animations/MotionFadeIn'; +import ProgressBar from '@/components/ProgressBar'; +import TitleText from '@/components/TitleText'; +import { useLanguageStore } from '@/stores/languageStore'; +import text from '../../_locales/text.json'; +import IntroPhrasesList from '../../_components/step1/IntroPhrasesList'; +import Button from '@/components/buttons/_index'; +import { useRouter } from 'next/navigation'; +import { ROUTES } from '@/constants/routes'; +import { useLevelParam } from '@/hooks/useLevelParam'; +import Image from 'next/image'; +import BottomSheet from '../../_components/step3/BottomSheet'; +import SelectButton from '@/components/buttons/select'; +import { useState } from 'react'; + +export default function LevelStep3Page() { + const router = useRouter(); + const levelParam = useLevelParam(); + const { currentLanguage } = useLanguageStore(); + const { title, subText } = text.step3; + + const [isBottomSheetOpen, setIsBottomSheetOpen] = useState(false); + const [selectedDifficulty, setSelectedDifficulty] = useState( + null, + ); + + // TODO: API 연결 + const phrasesArray = Object.values(text.intro).filter( + value => value?.id !== undefined, + ); + + const handleBtnCLick = () => { + setIsBottomSheetOpen(true); // BottomSheet 열기 + }; + + // 난이도 옵션 + const difficulties = [ + { + text: '쉬웠음', + subText: 'easy', + }, + { + text: '보통', + subText: 'normal', + }, + { + text: '어려웠음', + subText: 'hard', + }, + ]; + + return ( +
    + + {/* 텍스트 */} + + + + + {/* 문장 리스트 */} +
    오늘의 표현
    +
    + Today's expression +
    + + + {/* 단어 리스트 */} +
    오늘의 단어
    +
    + Today's word +
    + +
    + {[1, 2, 3].map((item, idx) => ( +
    +
    +

    단어{item}

    + {'bookmark +
    +
    + 단어 뜻 {item} +
    +
    + ))} +
    + + {/* 하단 버튼 */} +
    + ); +} diff --git a/app/main/my-learning/_components/step3/BottomSheet.tsx b/app/main/my-learning/_components/step3/BottomSheet.tsx new file mode 100644 index 0000000..172e0bf --- /dev/null +++ b/app/main/my-learning/_components/step3/BottomSheet.tsx @@ -0,0 +1,112 @@ +'use client'; + +import { ReactNode, useRef, useEffect, useState } from 'react'; +import { motion, AnimatePresence } from 'framer-motion'; +import { bottomSheetVariants } from '@/components/_animations/bottomSheetMotion'; + +interface BottomSheetProps { + isOpen: boolean; + onClose: () => void; + title: string; + subText: string; + children?: ReactNode; +} + +export default function BottomSheet({ + isOpen, + onClose, + title, + subText, + children, +}: BottomSheetProps) { + const sheetRef = useRef(null); + const [sheetHeight, setSheetHeight] = useState('auto'); + + // 내용 높이 자동 감지 + useEffect(() => { + if (sheetRef.current) { + const contentHeight = sheetRef.current.scrollHeight; + const maxHeight = window.innerHeight * 0.9; // 화면 최대 90% + setSheetHeight(contentHeight > maxHeight ? maxHeight : contentHeight); + } + }, [children, isOpen]); + + // body 스크롤 막기 + useEffect(() => { + if (isOpen) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = 'unset'; + } + return () => { + document.body.style.overflow = 'unset'; + }; + }, [isOpen]); + + // 스크롤 조금만 내려도 닫기 + useEffect(() => { + const el = sheetRef.current; + if (!el) return; + + const handleScroll = () => { + if (el.scrollTop > 10) { + onClose(); + } + }; + + el.addEventListener('scroll', handleScroll); + return () => { + el.removeEventListener('scroll', handleScroll); + }; + }, [onClose, isOpen]); + + return ( + + {isOpen && ( + + {/* 배경 */} +