From fffb9f452b438b4d0186c2f7aa40420971e2b029 Mon Sep 17 00:00:00 2001 From: raza2004 Date: Tue, 13 Feb 2024 21:21:50 +0500 Subject: [PATCH 01/92] gg --- .env | 11 + .gitignore | 36 + README.md | 36 + next.config.mjs | 4 + package-lock.json | 3331 +++++++++++++++++ package.json | 45 + postcss.config.js | 6 + public/favicon.ico | Bin 0 -> 25931 bytes public/fonts/OFL.txt | 93 + public/fonts/Outfit-VariableFont_wght.ttf | Bin 0 -> 110572 bytes public/fonts/README.txt | 71 + public/fonts/static/Outfit-Black.ttf | Bin 0 -> 55376 bytes public/fonts/static/Outfit-Bold.ttf | Bin 0 -> 55396 bytes public/fonts/static/Outfit-ExtraBold.ttf | Bin 0 -> 55312 bytes public/fonts/static/Outfit-ExtraLight.ttf | Bin 0 -> 54940 bytes public/fonts/static/Outfit-Light.ttf | Bin 0 -> 54860 bytes public/fonts/static/Outfit-Medium.ttf | Bin 0 -> 54824 bytes public/fonts/static/Outfit-Regular.ttf | Bin 0 -> 54916 bytes public/fonts/static/Outfit-SemiBold.ttf | Bin 0 -> 55496 bytes public/fonts/static/Outfit-Thin.ttf | Bin 0 -> 54584 bytes public/images/Calendar_02.svg | 5 + public/images/Help-icon.svg | 3 + public/images/House_02.svg | 3 + public/images/Log_Out.svg | 3 + public/images/Logo.svg | 19 + public/images/Mail.svg | 5 + public/images/Notification.svg | 3 + public/images/Octagon_Help.svg | 3 + public/images/Tasks_2.svg | 3 + public/images/User_01.svg | 5 + public/images/bg-1.svg | 10 + public/images/client-1.svg | 9 + public/images/client-2.svg | 14 + public/images/client-3.svg | 9 + public/images/clients-icon.svg | 3 + public/images/clients_02.svg | 5 + public/images/google.svg | 13 + public/images/home-icon.svg | 3 + public/images/icons/presentation_02.svg | 5 + public/images/icons/sqbox.svg | 7 + public/images/inspiration-icon.svg | 3 + public/images/message.svg | 3 + public/images/pants.png | Bin 0 -> 33663 bytes public/images/presentations-icon.svg | 3 + public/images/profile-icon.svg | 3 + public/images/schedule-icon.svg | 3 + public/images/tasks-icon.svg | 3 + public/images/twotick.svg | 3 + public/images/user-default.webp | Bin 0 -> 5214 bytes public/next.svg | 1 + public/vercel.svg | 1 + src/app/api/auth/[...nextauth]/route.ts | 212 ++ src/app/api/hello.ts | 5 + src/app/api/profile/route.ts | 33 + src/app/api/users/login/login.js | 63 + src/app/api/users/logout/route.ts | 18 + src/app/api/users/signup/route.ts | 57 + src/app/api/users/verifyEmail/route.ts | 39 + src/app/globals.css | 221 ++ src/app/inspiration/page.tsx | 59 + src/app/layout.tsx | 53 + src/app/my-clients/page.tsx | 119 + src/app/page.tsx | 25 + .../presentations/createPresentation/page.tsx | 341 ++ src/app/presentations/page.tsx | 29 + src/app/profile/page.tsx | 172 + src/app/schedule/page.tsx | 42 + src/app/signin/forgetPassword/page.tsx | 65 + src/app/signin/page.tsx | 222 ++ src/app/signup/page.tsx | 216 ++ src/app/tasks/page.tsx | 89 + src/app/verifyEmail/page.tsx | 64 + src/components/DraggableItem.tsx | 19 + src/components/Home/Home1.tsx | 27 + src/components/Home/Home2.tsx | 117 + src/components/Home/Home3.tsx | 189 + src/components/Modals/ClientModal.tsx | 165 + src/components/Modals/TaskModal.tsx | 158 + src/components/Provider.tsx | 13 + src/components/Sidebar.tsx | 168 + src/components/Topitem.tsx | 33 + src/components/buttons/AddClient.tsx | 61 + src/components/ind.txt | 214 ++ src/dbConfig/dbConfig.ts | 18 + src/helpers/getSessionCookie.js | 34 + src/helpers/sendgrid.tsx | 58 + src/libs/auth.js | 21 + src/middleware.ts | 23 + src/models/profileModel.js | 28 + src/models/userModel.js | 44 + src/styles/globals.css | 221 ++ tailwind.config.ts | 20 + tsconfig.json | 26 + 93 files changed, 7587 insertions(+) create mode 100644 .env create mode 100644 .gitignore create mode 100644 README.md create mode 100644 next.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/favicon.ico create mode 100644 public/fonts/OFL.txt create mode 100644 public/fonts/Outfit-VariableFont_wght.ttf create mode 100644 public/fonts/README.txt create mode 100644 public/fonts/static/Outfit-Black.ttf create mode 100644 public/fonts/static/Outfit-Bold.ttf create mode 100644 public/fonts/static/Outfit-ExtraBold.ttf create mode 100644 public/fonts/static/Outfit-ExtraLight.ttf create mode 100644 public/fonts/static/Outfit-Light.ttf create mode 100644 public/fonts/static/Outfit-Medium.ttf create mode 100644 public/fonts/static/Outfit-Regular.ttf create mode 100644 public/fonts/static/Outfit-SemiBold.ttf create mode 100644 public/fonts/static/Outfit-Thin.ttf create mode 100644 public/images/Calendar_02.svg create mode 100644 public/images/Help-icon.svg create mode 100644 public/images/House_02.svg create mode 100644 public/images/Log_Out.svg create mode 100644 public/images/Logo.svg create mode 100644 public/images/Mail.svg create mode 100644 public/images/Notification.svg create mode 100644 public/images/Octagon_Help.svg create mode 100644 public/images/Tasks_2.svg create mode 100644 public/images/User_01.svg create mode 100644 public/images/bg-1.svg create mode 100644 public/images/client-1.svg create mode 100644 public/images/client-2.svg create mode 100644 public/images/client-3.svg create mode 100644 public/images/clients-icon.svg create mode 100644 public/images/clients_02.svg create mode 100644 public/images/google.svg create mode 100644 public/images/home-icon.svg create mode 100644 public/images/icons/presentation_02.svg create mode 100644 public/images/icons/sqbox.svg create mode 100644 public/images/inspiration-icon.svg create mode 100644 public/images/message.svg create mode 100644 public/images/pants.png create mode 100644 public/images/presentations-icon.svg create mode 100644 public/images/profile-icon.svg create mode 100644 public/images/schedule-icon.svg create mode 100644 public/images/tasks-icon.svg create mode 100644 public/images/twotick.svg create mode 100644 public/images/user-default.webp create mode 100644 public/next.svg create mode 100644 public/vercel.svg create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/api/hello.ts create mode 100644 src/app/api/profile/route.ts create mode 100644 src/app/api/users/login/login.js create mode 100644 src/app/api/users/logout/route.ts create mode 100644 src/app/api/users/signup/route.ts create mode 100644 src/app/api/users/verifyEmail/route.ts create mode 100644 src/app/globals.css create mode 100644 src/app/inspiration/page.tsx create mode 100644 src/app/layout.tsx create mode 100644 src/app/my-clients/page.tsx create mode 100644 src/app/page.tsx create mode 100644 src/app/presentations/createPresentation/page.tsx create mode 100644 src/app/presentations/page.tsx create mode 100644 src/app/profile/page.tsx create mode 100644 src/app/schedule/page.tsx create mode 100644 src/app/signin/forgetPassword/page.tsx create mode 100644 src/app/signin/page.tsx create mode 100644 src/app/signup/page.tsx create mode 100644 src/app/tasks/page.tsx create mode 100644 src/app/verifyEmail/page.tsx create mode 100644 src/components/DraggableItem.tsx create mode 100644 src/components/Home/Home1.tsx create mode 100644 src/components/Home/Home2.tsx create mode 100644 src/components/Home/Home3.tsx create mode 100644 src/components/Modals/ClientModal.tsx create mode 100644 src/components/Modals/TaskModal.tsx create mode 100644 src/components/Provider.tsx create mode 100644 src/components/Sidebar.tsx create mode 100644 src/components/Topitem.tsx create mode 100644 src/components/buttons/AddClient.tsx create mode 100644 src/components/ind.txt create mode 100644 src/dbConfig/dbConfig.ts create mode 100644 src/helpers/getSessionCookie.js create mode 100644 src/helpers/sendgrid.tsx create mode 100644 src/libs/auth.js create mode 100644 src/middleware.ts create mode 100644 src/models/profileModel.js create mode 100644 src/models/userModel.js create mode 100644 src/styles/globals.css create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.env b/.env new file mode 100644 index 0000000..77bd212 --- /dev/null +++ b/.env @@ -0,0 +1,11 @@ +MONGODB_URI=mongodb+srv://owaisraza3274:Checkroomapp2024@cr-app.f0coe5x.mongodb.net/?retryWrites=true&w=majority +EMAIL_SERVER_HOST=smtp.sendgrid.net +EMAIL_SERVER_PORT=465 +EMAIL_SERVER_USER=apikey +EMAIL_SERVER_PASSWORD=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 +TOKEN_SECRET=nextjscrpro +ENCRYPTION_SECRET=mysecretkey +domain=http://localhost:3000 +NEXTAUTH_URL=http://localhost:3000 +GOOGLE_CLIENT_ID=535866106922-t6496jr2emfg047mh17drqsbc03v173u.apps.googleusercontent.com +GOOGLE_CLIENT_SECRET=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 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd3dbb5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/README.md b/README.md new file mode 100644 index 0000000..c403366 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..4678774 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a6183a8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3331 @@ +{ + "name": "cr-pro", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "cr-pro", + "version": "0.1.0", + "dependencies": { + "@next-auth/mongodb-adapter": "^1.1.3", + "@sendgrid/mail": "^8.1.0", + "axios": "^1.6.3", + "bcryptjs": "^2.4.3", + "body-parser": "^1.20.2", + "config": "^3.3.9", + "crypto": "^1.0.1", + "jose": "^5.2.0", + "jsonwebtoken": "^9.0.0", + "mongoose": "^7.6.7", + "next": "14.1.0", + "next-auth": "^4.24.5", + "nodemailer": "^6.9.8", + "react": "^18", + "react-calendar": "^4.6.1", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18", + "react-hot-toast": "^2.4.1", + "react-icons": "^4.11.0", + "react-router-dom": "^6.17.0" + }, + "devDependencies": { + "@types/bcryptjs": "^2.4.6", + "@types/node": "^20", + "@types/nodemailer": "^6.4.14", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "postcss": "^8", + "tailwindcss": "^3.3.0", + "typescript": "^5" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.4.tgz", + "integrity": "sha512-8zJ8N1x51xo9hwPh6AWnKdLGEC5N3lDa6kms1YHmFBoRhTpJR6HG8wWk0td1MVCu9cD4YBrvjZEtd5Obw0Fbnw==", + "optional": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, + "node_modules/@next-auth/mongodb-adapter": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@next-auth/mongodb-adapter/-/mongodb-adapter-1.1.3.tgz", + "integrity": "sha512-nH/may8hntYBlcuxepSsR2b95w6SRnP+c/FFt3KKjdTScNjhrN0zZdlT90nisjG/3gK+MvzMbz/F4Rwpgr9RMA==", + "peerDependencies": { + "mongodb": "^5 || ^4", + "next-auth": "^4" + } + }, + "node_modules/@next/env": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.0.tgz", + "integrity": "sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.0.tgz", + "integrity": "sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.0.tgz", + "integrity": "sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.0.tgz", + "integrity": "sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.0.tgz", + "integrity": "sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.0.tgz", + "integrity": "sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.0.tgz", + "integrity": "sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.0.tgz", + "integrity": "sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.0.tgz", + "integrity": "sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.0.tgz", + "integrity": "sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@panva/hkdf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.1.1.tgz", + "integrity": "sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@react-dnd/asap": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==" + }, + "node_modules/@react-dnd/invariant": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==" + }, + "node_modules/@remix-run/router": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.0.tgz", + "integrity": "sha512-HOil5aFtme37dVQTB6M34G95kPM3MMuqSmIRVCC52eKV+Y/tGSqw9P3rWhlAx6A+mz+MoX+XxsGsNJbaI5qCgQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@sendgrid/client": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sendgrid/client/-/client-8.1.0.tgz", + "integrity": "sha512-Kp2kKLr307v/HnR3uGuySt0AbCkeG7naDVOzfPOtWvKHVZIEHmKidQjJjzytVZNYWtoRdYgNfBw6GyUznGqa6w==", + "dependencies": { + "@sendgrid/helpers": "^8.0.0", + "axios": "^1.6.0" + }, + "engines": { + "node": ">=12.*" + } + }, + "node_modules/@sendgrid/helpers": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@sendgrid/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-Ze7WuW2Xzy5GT5WRx+yEv89fsg/pgy3T1E3FS0QEx0/VvRmigMZ5qyVGhJz4SxomegDkzXv/i0aFPpHKN8qdAA==", + "dependencies": { + "deepmerge": "^4.2.2" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@sendgrid/mail": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sendgrid/mail/-/mail-8.1.0.tgz", + "integrity": "sha512-WkE0qwOrJMX9oQ+Xvtl3CdmucD6/iKw6go0VPoPieVlfXc43rbIf91wvtO6m7sKPnzxw3G+8rekBgXibmP4S8Q==", + "dependencies": { + "@sendgrid/client": "^8.1.0", + "@sendgrid/helpers": "^8.0.0" + }, + "engines": { + "node": ">=12.*" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/bcryptjs": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@types/bcryptjs/-/bcryptjs-2.4.6.tgz", + "integrity": "sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.14.202", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + }, + "node_modules/@types/lodash.memoize": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/lodash.memoize/-/lodash.memoize-4.1.9.tgz", + "integrity": "sha512-glY1nQuoqX4Ft8Uk+KfJudOD7DQbbEDF6k9XpGncaohW3RW4eSWBlx6AA0fZCrh40tZcQNH4jS/Oc59J6Eq+aw==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/nodemailer": { + "version": "6.4.14", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.14.tgz", + "integrity": "sha512-fUWthHO9k9DSdPCSPRqcu6TWhYyxTBg382vlNIttSe9M7XfsT06y0f24KHXtbnijPGGRIcVvdKHTNikOI6qiHA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.2.55", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", + "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "devOptional": true + }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==" + }, + "node_modules/@types/whatwg-url": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz", + "integrity": "sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA==", + "dependencies": { + "@types/node": "*", + "@types/webidl-conversions": "*" + } + }, + "node_modules/@wojtekmaj/date-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz", + "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==", + "funding": { + "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bson": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz", + "integrity": "sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g==", + "engines": { + "node": ">=14.20.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/config": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/config/-/config-3.3.11.tgz", + "integrity": "sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA==", + "dependencies": { + "json5": "^2.2.3" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/dnd-core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", + "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", + "dependencies": { + "@react-dnd/asap": "^5.0.1", + "@react-dnd/invariant": "^4.0.1", + "redux": "^4.2.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-user-locale": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.1.tgz", + "integrity": "sha512-VEvcsqKYx7zhZYC1CjecrDC5ziPSpl1gSm0qFFJhHSGDrSC+x4+p1KojWC/83QX//j476gFhkVXP/kNUc9q+bQ==", + "dependencies": { + "@types/lodash.memoize": "^4.1.7", + "lodash.memoize": "^4.1.1" + }, + "funding": { + "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/goober": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz", + "integrity": "sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jose": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.2.tgz", + "integrity": "sha512-/WByRr4jDcsKlvMd1dRJnPfS1GVO3WuKyaurJ/vvXcOaUQO8rnNObCQMlv/5uCceVQIq5Q4WLF44ohsdiTohdg==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kareem": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz", + "integrity": "sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "optional": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mongodb": { + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.2.tgz", + "integrity": "sha512-H60HecKO4Bc+7dhOv4sJlgvenK4fQNqqUIlXxZYQNbfEWSALGAwGoyJd/0Qwk4TttFXUOHJ2ZJQe/52ScaUwtQ==", + "peer": true, + "dependencies": { + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz", + "integrity": "sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ==", + "dependencies": { + "@types/whatwg-url": "^8.2.1", + "whatwg-url": "^11.0.0" + } + }, + "node_modules/mongoose": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-7.6.8.tgz", + "integrity": "sha512-q9zAySH+UtOK5yonWyNcLfq3PxrY6s4gdta4qNGKNOE2yTVoY9FP4hQtvWYnv4rkdk7T8QmQMC7bbhJjDxIunw==", + "dependencies": { + "bson": "^5.5.0", + "kareem": "2.5.1", + "mongodb": "5.9.1", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "16.0.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mongoose/node_modules/mongodb": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-5.9.1.tgz", + "integrity": "sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q==", + "dependencies": { + "bson": "^5.5.0", + "mongodb-connection-string-url": "^2.6.0", + "socks": "^2.7.1" + }, + "engines": { + "node": ">=14.20.1" + }, + "optionalDependencies": { + "@mongodb-js/saslprep": "^1.1.0" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.0.0", + "kerberos": "^1.0.0 || ^2.0.0", + "mongodb-client-encryption": ">=2.3.0 <3", + "snappy": "^7.2.2" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongoose/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/mquery/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mquery/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/next": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/next/-/next-14.1.0.tgz", + "integrity": "sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==", + "dependencies": { + "@next/env": "14.1.0", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.1.0", + "@next/swc-darwin-x64": "14.1.0", + "@next/swc-linux-arm64-gnu": "14.1.0", + "@next/swc-linux-arm64-musl": "14.1.0", + "@next/swc-linux-x64-gnu": "14.1.0", + "@next/swc-linux-x64-musl": "14.1.0", + "@next/swc-win32-arm64-msvc": "14.1.0", + "@next/swc-win32-ia32-msvc": "14.1.0", + "@next/swc-win32-x64-msvc": "14.1.0" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-auth": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-4.24.5.tgz", + "integrity": "sha512-3RafV3XbfIKk6rF6GlLE4/KxjTcuMCifqrmD+98ejFq73SRoj2rmzoca8u764977lH/Q7jo6Xu6yM+Re1Mz/Og==", + "dependencies": { + "@babel/runtime": "^7.20.13", + "@panva/hkdf": "^1.0.2", + "cookie": "^0.5.0", + "jose": "^4.11.4", + "oauth": "^0.9.15", + "openid-client": "^5.4.0", + "preact": "^10.6.3", + "preact-render-to-string": "^5.1.19", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "next": "^12.2.5 || ^13 || ^14", + "nodemailer": "^6.6.5", + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + }, + "peerDependenciesMeta": { + "nodemailer": { + "optional": true + } + } + }, + "node_modules/next-auth/node_modules/jose": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nodemailer": { + "version": "6.9.9", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.9.tgz", + "integrity": "sha512-dexTll8zqQoVJEZPwQAKzxxtFn0qTnjdQTchoU6Re9BUUGBJiOy3YMn/0ShTW6J5M0dfQ1NeDeRTTl4oIWgQMA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz", + "integrity": "sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oidc-token-hash": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.0.3.tgz", + "integrity": "sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/openid-client": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.6.4.tgz", + "integrity": "sha512-T1h3B10BRPKfcObdBklX639tVz+xh34O7GjofqrqiAQdm7eHsQ00ih18x6wuJ/E6FxdtS2u3FmUGPDeEcMwzNA==", + "dependencies": { + "jose": "^4.15.4", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/openid-client/node_modules/jose": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", + "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/openid-client/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/openid-client/node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/preact": { + "version": "10.19.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.4.tgz", + "integrity": "sha512-dwaX5jAh0Ga8uENBX1hSOujmKWgx9RtL80KaKUFLc6jb4vCEAc3EeZ0rnQO/FO4VgjfPMfoLFWnNG8bHuZ9VLw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz", + "integrity": "sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==", + "dependencies": { + "pretty-format": "^3.8.0" + }, + "peerDependencies": { + "preact": ">=10" + } + }, + "node_modules/pretty-format": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", + "integrity": "sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-calendar": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-4.8.0.tgz", + "integrity": "sha512-qFgwo+p58sgv1QYMI1oGNaop90eJVKuHTZ3ZgBfrrpUb+9cAexxsKat0sAszgsizPMVo7vOXedV7Lqa0GQGMvA==", + "dependencies": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "prop-types": "^15.6.0", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", + "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", + "dependencies": { + "@react-dnd/invariant": "^4.0.1", + "@react-dnd/shallowequal": "^4.0.1", + "dnd-core": "^16.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", + "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", + "dependencies": { + "dnd-core": "^16.0.1" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, + "node_modules/react-icons": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-router": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.0.tgz", + "integrity": "sha512-q2yemJeg6gw/YixRlRnVx6IRJWZD6fonnfZhN1JIOhV2iJCPeRNSH3V1ISwHf+JWcESzLC3BOLD1T07tmO5dmg==", + "dependencies": { + "@remix-run/router": "1.15.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.0.tgz", + "integrity": "sha512-z2w+M4tH5wlcLmH3BMMOMdrtrJ9T3oJJNsAlBJbwk+8Syxd5WFJ7J5dxMEW0/GEXD1BBis4uXRrNIz3mORr0ag==", + "dependencies": { + "@remix-run/router": "1.15.0", + "react-router": "6.22.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sift": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz", + "integrity": "sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ==" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", + "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "optional": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", + "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", + "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "dev": true, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ff9168c --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "cr-pro", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "@next-auth/mongodb-adapter": "^1.1.3", + "@sendgrid/mail": "^8.1.0", + "axios": "^1.6.3", + "bcryptjs": "^2.4.3", + "body-parser": "^1.20.2", + "config": "^3.3.9", + "crypto": "^1.0.1", + "jose": "^5.2.0", + "jsonwebtoken": "^9.0.0", + "mongoose": "^7.6.7", + "next": "14.1.0", + "next-auth": "^4.24.5", + "nodemailer": "^6.9.8", + "react": "^18", + "react-calendar": "^4.6.1", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18", + "react-hot-toast": "^2.4.1", + "react-icons": "^4.11.0", + "react-router-dom": "^6.17.0" + }, + "devDependencies": { + "@types/bcryptjs": "^2.4.6", + "@types/node": "^20", + "@types/nodemailer": "^6.4.14", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "postcss": "^8", + "tailwindcss": "^3.3.0", + "typescript": "^5" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..12a703d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/public/fonts/OFL.txt b/public/fonts/OFL.txt new file mode 100644 index 0000000..556e431 --- /dev/null +++ b/public/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2021 The Outfit Project Authors (https://github.com/Outfitio/Outfit-Fonts) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/fonts/Outfit-VariableFont_wght.ttf b/public/fonts/Outfit-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..96106f09d6bc9fb0a188518655acdcf7e73df399 GIT binary patch literal 110572 zcmc$H2V7iL_W!+aU=XEYbwgKG+f@E-BZNd5@t)p<_xE=l{U;&x4djZ{d5-myBdZA!GV#8=y`!q*9P8Ha z@cs?n5B0C>TR-nlTe}F6{|x{%uH4u+cJ(!@ufX>`_&&U~V+xKBHAsMd_68ekvV}t95pb?g_dGuY^ubkw`oVJw)y&D$+#c z>@DC=#$ut=k32sT67kj4F3+Ken`XpesaYx-b09u{w5>O?^jjj6eZ+G4=RZF1u;-Ct zL-y3JDIww}*==~06M==|Pb@8j$VgiM`k@Jg2;&oDqwLe>p;hdimrufZ%y`_9(nKn` zs{~+(!SbTv8m-BgMuG%886d$3+$#WkWWM;M%ZP(&@gDdmmMw*>9P3*}o*)rF2x47j zAJHIu;&JGU!p-oTNGN}gLWz`U@fNaa6<{8~H#pgOEGtSWg9q=dg~+pb2EpaR0V;Ya zoE+{OI0c{tj5Gw#$M6hA9wt1MQeLd)A-qIZ79sIOVC7K;Q#45=*`$EflQy!9tRWkD zJVMkQ8WCz4D_snyK@0*3TLOcEl_-6aGiW5gf@4ig9}*BJltCuNQHnLidm5=A^GP?^ zPA(+BAipGclSj#)$zM@g8C_4e(8uVr^lx-hunGghRl)JD8Tx+-)$bbIK9p}z=yKJ>NF_d-8Y%9N?fJY|V;j|8QP(7-8M)j)dZPmxBZz4%#TI5*d*2oVczl<_O)kZCk z8jji&b#Bx}QP)J>9QC`Xr=q@4tJG$-Q(d8+ukKc_P;XQ}p#F#Y!|2%PjA(oGX!MQI zzlnY*`swJGHIbTFO^2pevsQDP<|A#IwpQDsJzKk5`;_)2ola-cVDK)^o9CbeT#mD{v7>9`u+M_^!Mst(SM>pW}t>}gTYW>s4@&2HW_vr z9ya{Rs4zww6O36#m$A~=XuQMtjPWlq@|cVmM@(< zGWMM~8h2UzF>d{!sd#(_c$}Fa5Lh?=$2XsTq|SXJ#%CGF&35xz^M&R+%zre$ zZT{3enHiOtkm<<0A@k#`*sLvCZ)IDu7iOQAeOdM`*(Y+EbI!~8ORg@rGxwa_yK^7U zeKq%;++&s$i_6krSz_5>xz2L8&w=o)~UR-yyCouyso^p zc^Bp#%DXr3aNhSelg(mlvaPdSVSB*#d)uFEFWLTX`^5H@J=h*$*Vz;7>2{0VW$&~v zw_j_2AH4^i5RP#PE$*z(X-QB}A)Z5|52EF%5j$?>>>NeRpe@NfE*;Z zkYAJA$X(#P50F2QC&^Rf8S)}|nY>Bf0-leM4`?l2O6$Olt<=S-Wd&V{wp>UrqKjw* zZKh|?9{LNqgpSfIwD_fToOaVfdJWB_D%t`nNC(Zii2}45Ou`_!m5{}1l0b|kmc$VY z$$}ip0p*sF8c=N&nM11S8px$(q=zgaOUYU?kGw#(kWJ()vV)urS#b{8O)e)FkxR&> z6AxqCb{G~^sAeQ zgWO8;$?cG!cM=!5gSg3WK>hcSQgR27)sJr7*q9WqG%K~|Bs$q4y3 zZA6c6Kwq3s=hCz32D*u!2^qVQZl=(6NgSQWxJVGw6mFHtB|jy4;S0$x5S8$r0L z;X%nC6c8tv6boCVa5=(PO8yWMC3H#tP?9D%B!3vO3PF-ToMg~+qgBTwe~dpIj4%Y0&(lKJ2?r&Ke!(9fx|J4mC58uqCMzX>u)mJbv%=BF zVjKmiB~9{&AfI^29|}rRN`57LgjA#5`q2N@qWw3M2|(C~uu+5#_@3=(mv!i$-tZ>8 zv;MjPp^bR1LfcIQr1yt)Bc}KJI2q^tzXP#XqlH_Legc%U8h4g{0<<#@s?5VR4v5C^ zWj#X2LCxdv592wC&{g=}f*#ih+G074gS*t@%Lw9{K&hk1a{~RZ4{-+(BE}fTvmfsx zh|i!mq4W_v2NBDJ_(MEyJGfFK-dj*IiyN3TtCc^8Tzu=|sTpjnbQ5@+l{-@aWYf#_ zLemG{)`xTq_bYH`aBjjogTsU{R&Et~9`jECC#L@)hBhJBO@L|)IN88!bQW@CFb&{o zMSVumhTd2!5w8#Uoj|{3^*5FG&k6(o{So<*=Wi*+2Qk$)k zT6hE6+>3ig%l>}AC~10##YfxYkUf;iVp#`n{?VO*9s-YCHS0A2d8YDR4#;f>q@wGj z%K}*_UaP^2H)FuJdD@jj*WyZ)t`KnL^#NBNWdHO_0o^SX92|-=zlxzHh*vcYuYx7cPWB zewWiq$nhP}{dypq2~|U9Z^6}st3*%>8bJqbu33l>A|S!%3I^IML{R|}e>aV#!5B4f zpz*X5*Ivl?H8M&gp`le#Bl286%aua4H2EZueyON$q&x2Up!>@A%6}^OZ3Bk|@ z`=H^A_Mj)Bs}Krp8@d&2RB%S*EUkHIr{>ey5s8Z-u^p%W4@EU*bq*|)MtnIp&^R1~ZUHU`_}GPzZ5 z3ylfQS6Y>}u&}VCa9Ma-xH&vG;@gO@i1>)4h}?);RbiwG!+cAmBeEeXFRDqMrp{Bh zMK?u{X!CUGI+w0OH(&2Clp1ZuGGmjmKc*};D0XpNVO&|fF+M-OF0l_o;nviW)a7Y; zX}0u*nJt+svZ}NCvpcdovzOb9jL zQqw@;;|&3RTghD|P{`U$7W4ve`7zw9c#mc+CEU$gS-2kW55vJ?h*oB{IkA;@&;pF0 zt|vR`&E!J5mmH!`ksIirF>3L)^wm0YPA1uBCkO51!6LG=gxp#}c9fD!OUbS(@^Tfq zzn1*5j@&ti+}S`rnM;ne(4Yn6**0?SLh|}TGP#KCUP3-tM%{fhwx3)*Kn@I%eIs=3 z8RXJ2^57VGWFt-5NFLur+cuHMHF7aQS!g5V=wwE?3E;3Dt%gLXDvbp;=0mGD@jdMk_T+tx~7dD~-xn zWxO&$nW#)snv?}$5il;LgjvG!!^6X)!lT2r;rei6cx-rlctUt0sLL9mk1&9`5+gDq zvLfnKDpj;ftJ15Csu)$QDqfYSGO1EjX{zi5UW zv@UI-&aQLlGxgbeo4!Cl*O+QdGiDldVG=4Z78{#m+_BlQ)>vn(JGL;kF)lAYK0Y_T zAkmswkXW2p2J=sSVtZmok}YXoQhRb%a&7WZ%G|WB^o1F<=63UX^LSQO_K@Xl>u}y` z+qmP*{886J_m=w24V&g|>DV$bGBgGioe?el?}?z0a8-07C%HhH7R|yTj94L1&Ozjz z^a8M`coI(kLZ71d(VOVy7!th!wW$j#Lji_?U{Cl9=Q(500(Q>K-LLOpC9(Hf{{Bbb zdjWrc!uQ_H-!H>^2y*SgV6YnbW@GRfO=Mwzz*iXw!dIDc4)@ELKjdZj1(M4Aif-M#&Ur9zU7I34WOS4LqND z+^=GO;h#M1`^-;Axc@QuMcgX*`(I|f|JC;{w#8xJyBPmv-@Dj058z#Z@qxk=L19Ws z!aW%ge%uej zJV42>Ue8gic}@Q9Jd($UfPR0 zqe&TPavxdkK62I$@qr#;)oAm5Si$q(d5GD$pS3e6Tnmm`N*5Y0a5JQs7T)n%|>T>;X$8rHX4 zx%KTH*o^Lj4eNfu^df9RhoMt<0q<=7hPjP^rURmx&0__D1qp~H1MAR}5ZEc?u-Lr_ zo8Ce4B4&d^{ci}}N1mdrZGAC#*dF8^kJM2_iFqY~+=f{vf!soaa6bsEiGbV~2Cjl# z@WlW)n&Hn!xkgTfK{SlVWO$QPCHya97D`MT1RIM8r515RFeXDO7|#i?JC5Vt#cG24 zRp=lu!Y{S}g?)~7P4An0>RZI6&~H<=a zCHw+nJ%C!V_L%vF;h2>aNsUOs`iO}6T!iY8AH%yD)KN+`2vMQF>HJMiGo(=Dk5=QF zk(Aa0Jc)G3+K}PL$TcScx;n%9Rlo?l9}I}aVzN3>uoHn?2L=#;4IYjbg58$YltCzP zE7LMq85yHUYs2`>|4+w)UzMy;bdm`x56LjGJ%ho z?oWtw9^mr2t4WV=dd?wxg*azAj8E*sE@C^$xk$bc;DXwSJ*WY3KZ9!mT&L+|FYvgn z^mD8cnBkCzQ^4#DlrksxCnE08IC?Hg;&EA8uZtnALJZpU2~r8y3a27ZOg#(tAGj}| zEFhfu!9Aax+Ql4wjE$R(bPhZV=#8-D&v2kESaC=a_(~Fc3WU_1mJ<;7J(4`r(T|YNF=9H&-AhtwfRkai zhJJe*?j4d&9|MeVvLaG1C;{IrPIedax*26lPS^wZph^ne(i8rWtB51wD>ygsbRBRs z49DUj4qXmj(oN!pD@YZsA{HSIv>8qEgf{-PaeC1qJeQO(KjPSd<7~Kva5Zpsa5lI( zaMhA)ke-FY22zMQm_qQGLg*(JT1RZqb@HHA+JuFiFEHLfC~V;1Yb$63>19s12k$bn zkh|lgjD8210?iC^ZXW#r_&A$X(v>8UyBAO&Bga##PzjtB;aefG;%R})qYcQj0Z*3y zg>b{95wmh_fTs~!QyaaCxZv`kEx6$FX*Dd;ZVRlS^P^Hgymd^;!PtAyyK34%R^#W*b+K-*Ani zAF}OI%o}Gwc21E2XpUy`G1dlz0Fptp!?WahXmKyVo*YityzB`klSvL*F_%U`7D6wD zcKb4uu$Z~ELb~UPauzd{n2F}nHioREv4H9o%xJE{TAnz{=2h<|_Yfy^=6tkO0`!3- z@CXz6H~E3dZM11BO#`+54Yc-m47FZ^h1Cq(bQXqU#jvC2&|GT497ZYm54Dmo9QlK*<;dP0k^oz+z58)9Yyon^B;p zN3iSCpwA785!`Z-R<7-J1dQdZZPzx-$4d9~hqgO28^Qetv zGi^d^oQZkqE#xfBhPRL#G1Gi6r0i$V*E?aiUO?MGi|ynC@+0lQJasqhvt5|M-3A`8 z0~*M7SgjYq;=33#J3X*dFU9P7FM7ig@?UU@M`#~e3X1sJ#1LH#JL_6l z^Vh+yJWAKYHa!N5^aSj`8(}%#jCtL&U;*9&eQp~h!jrJV@4zg?xzOy+qq{JJeF$p^ zw3z$W69aUd7(Npp4=Xa8LB0UiW9WXcSziph?xmQ8Wdqe?m}S14UV&NXtDwDIjS*%f zhS72xytn(6FNTSf(1Xh|Rt($H=u3^WJ~L=;i@FM}He;&L4+N z3dZQ;7bF#y%2Np`!KNXB_Cn^z<$iq|DGu50nE~0O|K;?KH7SSn4rxhVf54o z-Lr}w#Q5hr%-38`Z=g5AWb;dUGrfiWivAkoyW8mP^bUF_{SCc~-c9eJ_rj?2TY5jn zVE@GY)J0g|@CH@~`~!T4t#){a9H9?jT=+Zski2Te*x<%N#fFj9HhWF2qH0}V|Jdk= zqH1*2=*Zw&WzE3oL|=dZ;K+o$w!aTw@E9BIn~>M>H)WmgyP{4?S|=tIvvfF=b9_;P z8dmg;33KNu=1NiL21a!j$Q%3mH%tu58+qPh2F_}Evl!YO5Ss6j)s3u*Xc^itvZ`-v z!@A+V4HJqMF;{t;7{4tbzN>o4tpVc+UttyT!AZs1rKqa|qB@*z3G;6Gu!zZFKaT9q8u^GAIua0?UmzPqdyGy)+o+hk9A*;M zs$&81U2gd}50%=ZNIv2J>abVKH;C=9VOoY8BycxK?XZEj!zP|l*d{-!LpS-_VUySn zXZk@8$sXl#(ZD^`wf7~{{?8~OL~)tlM(aqy-Q z<{4a#<-9Dy$ZDPeryE;!k@R#(PbYgiZ0>xarcDg0vhg6dUHoKs*i?P%)(?)2_l*p2 z$b#xNjE(X*4!cWCQ|(gpjg5_N+OVF7+l$;v{yxTlkb(+BdCKObr@?vr>({cyP*^&)(T|<-)$41u=4H`raZmn*ss+nKcVa1yJs^JNnUB|fmNuh>;(c$5~ zv6I4?-3a=jPzAey43^9=NJ-*UC#%zw)yW38L7_2Fb3c8@Q%w(fR?Jr)k5)u`evB4w zo?Mb7tb9U!Tumcc0J30u9jui%^IR~%azaJI!cAAQ&OtSaRGsSiA=2~R0=kqX7WPbT zem5ZjHeH@dc8ws~G!@V*-z0DN!Z-TDcR_-_0T`wDycF1K0?UyZ6scynA$3N1X%QDB zUJ!AWHlSSL;fMnVBK9(y^33vgvT}Uk#lG^lLSyiU`{CV=HFN%OvoHQ0=&d|_$|2k+ z-0TbANB_fZ*iwAJYE~Xeo#<+Y0OkL-&Y)Hlu?U#A>fgr5fOv zxnwM-mf=Z7oZo-F=lkWfNk-4~Y%pnQpXU}jF5H|jc_vlI$9q0cNMHz|P4V%xI3WS; z$LJs*C8V)Yg45-66u9y;GE!3|ANT0>I;~vc<_~#lDheF`Pg{RZqvQBj)s0;Z@4Z*t znO9mAT-#KzqUM+>p=*w{J~M89W!1cd%z62x?dtHTWz~fpR#q~sTGdm>uv_6S=tm?t z#VWY+%LS)HZ&0Ar6qTUUCgQcgZIH|9RSjE~I30`6nlpEs)sQ(}Q@O6qVqGv=S-TgKG zB+B|3IBXK7{RBL+n|zd44az|6(b6JZ7eZ@g6e+^RC{GOECc(?v=LWQo0jp5O_VG7R zBCw?rc!P|*-E(1c^MyTczBzx(5{F~)mU*9;5?e3qS#)7bqN8Wayt!KzJ2?JjEPtM( z3^`(*vIZoiVXZxDzAD<~xqbO8nbS4#p8HNw0*6_44Tm}Pr=X@1hG&DGwo7=Otq|EY zB0^SAL(kIq((ms9G|0s)-TsZN!89P4%cCKbKW(@S@H zw$f`Ek`oeq9SkkYu%YLaXb>q8V~{t{qor_PzWC}y*9y$p%iE@v&=A1c{3TH}$H*+@ z?Zilr@g%W4MqwfxTQQ26Eqoh;&ljKZJTd-u*wFpqjOU5rd$2Z;hl8?fIL{NqF*ZYe zWxQOO4}ZLlUVg>uwbiqeUd)+N6>3utro?%~ap476h|_23qjI@UtJkw8b{mp`el0k~ z)$_J4b~u-8nb*E2+n9M~Bgnq_f<+x$>S(yX3$Ad5K_Bb7I$uz&IoCU0UxZ0zL6)3Ttf zRI-!j!13E}V&7RCP93AigfgC&C%bf8sQ0h7a6v>N{3jSlbW3?6IZ=HIIW2YVAR|JG_6Y~Kc2>EqDKHHHqxGyaGEFa8I0Tv>I7}KDZ z!Y7{$nq=mC_}H1=INlnw0m0Uqn-#8 zT~2E~_vt)W`S2$QNQHXa0f_?kF352)H|+Nkd4jLkGHTw#5~5Yb{zE4@4xBvg4%if= z{=?EDPci<eF@4k1#EKFGl{X|G>5>ESAc`+_J{4Q!uPCKG8Zgbp|Vxrd(mV!sC(3 z2Cf(t{sU>aUdMGZb*kC`-OR1-H_|*k%`=)pJRcc7AB6}vd!pzUAjlEHG>WW*76;;7bN|GAvdKwt1`H7(##RDOb>^6d@qA?8)82nK_f^=VS|KLBNYO7n*s^ zi=>(}8-}QJB3#N0Cz?vSuzHtwL%FV?T)ky?D-_qox7Xx@aY1sW!vY?-QMd;>bSJ0X1vSRen}70QbZ1d@;H_%L@Y55g8Fbc0>XFt zI1!7_`k)wpE9^tF#orE%f?-?C=T=^yEZ9Kiu(&2utj>4bi z&qVwI&Q~WUGep?;V6h3~mQ}#{Yrwe-vIP1VEVE|6PB=T1!tb<`S7~Y0PvT#=TsL`@ z&hFI^f3_7Em57j?59>11yn(%-Ax;fUGtPzGIR8`_WQwau6~R)!WZa%RAC=7C)M>GF zY-;S;J$LTz9+61sP@v*4D>@fl(jifdPVC%1#X{8F&FG_iOfW-(lT>vX;2A&aXtr3I z9Y_CD+~acf6#rnNCg|l(=e*1WTX#uGx6N~eDmKbvzf2X~xtNoofYnIq-OKLtg(HlHprh+8P6WVKP+Y&4bT&@Kc&r_^&v{CN4 zYZ|9(lsMhZ(>R@2YU)py>*af=DE}6T1D+BNuQEK17mD!gh2@yZP6uS?M`(#`M#Em& z>B_eTyYdSPe4{VM*@B@@(S+uSEJOC1>Uqn|m5q&+=Dd!=s+DPmlS|q z228%e*lEC)D`D((V3dYt98w3v5jcSe>4g}}i!~6Yh401el2@d%=q)bnu-Q6`qD)$O zcuGv!^1`D2brs92l8u(iX6wB5}6Q262<@x!`E1{ZI)UGW@8}WQNH7$~;=~XTR#c-y* zi{ZO4OT%R2%=kN}g)>+3F-5 zm4qatG_e#WB}J(AV7^I&s+3{R7ru{X5T!5vZNBi`n2BP`H<^`b0N93(olKor1MQ@= z#B)4#GIA=#^DX$-nZo&C(1-~QRCXO=vbL7-m@Kv|RpyjYJA8JV@)x9J62vW zyfeBT;Wgnl%48X=i>OU9xH2_soI?E%!JcF0uY##|@@cA#_DoSl)K}@)jMC}(v*#+h zT<3X!HXA5Jy8sDJm@W^jK#Rrzfa8Vnep==E-2A2Tn>5d-Q6_4l=Xq|U-JUI;Blz$K zR!g3e*K&@tRSnU7|v=b#@~u{l>Ts5OEG*q<|SDzp;=%F8yihBk5xMfd z%yNacJw0D%klScF;`YMv9xVi8^}sSO9dtKI!N|pFYjPu6|M`3+~zl? zK%N6i^l=|C4?)T!7PGcK{zKJ}*i6SVi{eVJ6Nkn;%MRMx-C&=eqjPq<-R)M-)+BG9 zFnVg{FUgr_56^G2ITjXqKIMvuL|2D=(E7^Z)W9=c78Q_-Hx-jvlk_#r8z*5zEph<~ zAcIaNV2r?Rr(7A->kTfq*@e0%fpwLysd04{g@qTj+qzcfbrqE^Ehy+c9vYgYtQfAX zT~}#ta9rn@Yfc#Nt?YHVd&|mt-I}vu@%QAj7Uty&PXOl|r51irl1zX{I3$J3>8|z6 znjpoNptPPYoL+kPX?Ux>qV?zC7M}3hqozYIr#sjC>$JiL`_}FLP=8IgV_&;Jyu}xL z&pI*GA!O6ne0bSMCjw%>>I>fuox`8YkS~|>*Gi$X>(HuZ?DzT&@GIw7#<&|YD^_?2 zcr-Ap2jlr>7q?Y&VV(}URv2_{ui;c`b?VCRE(;GYU+Ab_Ra!FSc{53=e4=!5etu7J z@j{2aTbVi6ex0)+qheiM?Qn%sc*t|}=-Ansg5_o9y`YJTvfctoUwa-fd1cKsEzN8H z;x_W6nza=bYik_cNxHbk++xtx(qcpSvgW$GhC6LtV>9CFDr#Ik({VYNtfv9 zc}`C|C3^Y=o}x~MaFojJZjjTbEZ3)wox1$_UQ(GI4&iy9P24f%pr|d{g~21I7jE{p z*7E|R5E064IO~AvC{ET3dApdr?IOXcmwMr}ZWx@3eyDa*Bif^MsLHXhA}qYD+gj9Z zcPuO}?#a(zLSxZJyeC2j$!Kt1XP=vyP|#ae!5XBzY?3vDK|zn3{>Ql5i1q^paL&*};6ZzM z`<+WahAkk7hc_Xdof?pa(<%t(yG-Aj&ZTC>PYTWPyznzP5^53?Cx45s|I>&P#~WXO zey7tBpGHb{B`XU2$bk)y({U=YEL&THPCy0EVtQFlvmgCO51{XT~e=7>@n^Y zl|kx=1Vu@Y)3vm`a(O{onl3%ZOD|t=s@})3vI8rAyi|>Fz`|`Her&Kwt=XaRQTNY6 z)#N4epMp*zb*bn1VFWK+>W7?BI)hwJw+^2is=yj4)aRr;6m&aQ9{Ix=j}&v+(<6qK zVkZgfTOwBWVPza!;hzNRxKel$+)c~uaML=vj!!7=Pp{546=-#u9HXmrKdljRb89jT zI-OQsTQvCwy*CcSY1SJZ)Pt7Rfa0JVfJ;i2S(hmOFzhk^3fvNf+=|NOXFwvB zt}CipT~@lf+SOeW7GBb6E9$n{yNgSf>|EIcDYJm-G~vqqud<2uk#Y6|OL zZujX|W2IFkgexNrG3qE|kizo6Q!C+Mub>FksntfKTA_*R@zs)15341k6KDr$;a0Tp zU%?Hcv3?F3&g>f0{aw>lr;`+>hbF}x8)9DAYlKyJe11Z6iX3w;n2{xC8o!@4V?bF6 zSa%3JKuH*bz|O3eadg5a0o1l8MMXqMN2oL!`l2UasL)2JqN7z2T1ZIL4l5+t?joM5 z)x=@|8*KLUKF$TMgHKL(97Qj{3UoqF1cdIqfrT<#{@=NT5#w&Xn}vRX&?^JtZhw~b zqe{?u72wRkZW3S_b74>5DM)#=01k|{yfYd)Hlrc5#7({^K^2A>jq8LRXd{*yGa4VV zw7U>`4)Tn`9w(yk_Z(mW-3GP<(3OY?b&{KR#H^yEw322CCx_7)HPJSg5HtBvPH}=P z!iOH5c*ycT1Ne!WCFg0m&B(<|Id_0^#JQ66bZ4+Dn5*;KJfG0W9M4gj>bWK9(|12q z9}_?yz)tIwK#>CV`!&N3=1FeGQ*5PCE|J7mN|NGZPJ!IZ$1Jz;_&cUP;3Fi~s-Gc# z21XSupL4PGl+9NaObKKU&!2_M>0UO8%_+Qv=MLO^=S46lvOdW>AtF*Qauue)qZsu< zYBMUEwLhHHMOu?+R%=CeeYP%dfy3Tp@xIv>*x4H>j;7RhWYk!wt2H;bwZQXF?|VT@ zZtj8t&)eR9h|>R$`k_Qes0sQs(~s{K@rHFPj0;QQybL~WI;kqW{k#hrPU`hpk{FxW zOIfjgO`f&#U%4z1OW%uCx2$i7r8B*nh0E#r4IC!)7{mqzrb>F6S2Bq7?LGwqSrAC; zl{1)$ms+Xb^B>Us;n@HN&N1e|SrxB=r$EkeYmKA?1cZ;J<{wz$PBhlMa-IAnaUKQ`miEH-5Ph(DCI zraY`*9s+Se(9gD5$ncu2@%>oOIVBM zPJNAYP2Pl0gEl1wGc|x)|0GYCOj~@FeA@XC0(Uu6w`I1(1Om-XE zSHc@cZVv-*Y|K_F#B!RObL3yNv_mGBz*I zII9{q8vl$!Ym#nheM(7;PG>ijHFAy_BVX8Sj5Qdv?W}zn?-=L3_A}Juvi+CBa~!dRJR^=fNU_ZQNFme0MjEu z(!fbvoW`a{g3$T?mR^;w)g?Ati)zi~b>-%?YKy(ipwl+w78dh>PNgp0s5htEb24&` z+Bkc5N`7K$vMxT^k)E2V*CaSCMK!GMyj))QXT-XrmkHibKm(iF>A>T~#m~c4?;WlD zJbeB!O9uEjumhZlP~t!v4!aN#$|OEUAxz=}mmcA%>0<$Lz{%GXddHqRary(4!bgQ> z{!|InmDv)nH`JyS&dM}Aa&F!_5UkFjIR*R)EuY5^ZsJ*)|yTJ_sAdYtI!lj@mXbN1*#0>5Jr2RBn zxO8$oAIqRlY)oXwey$AcAriHZGs!C~98`nUzyJ$}_JQqbl+>Z7k3z%3_=!sxCe`?w z6z`M=Vm(VN?-f98WLoE}ko$zmv>IIQl_0a!L{Rx< zhgbrW9U?S)%0y^N8MdTQ1$I}y#OE-?*vwWZ#@;=~aLZcaec+b0mN+jVJN`z>v+Czk z-U1J4rT4%vO4%wV;Yq}b^u_YcUc7L7^0m>|;kq{YcFpz1>!nmYC4JB{518kvIp*Jz zFn^q5erEVi?2}?O5W^Xk#rRvv69M6@O~ml+Sj)^X&Fb(RuY)*uktaBlgk-F)cAMQ! zdgHyJPh{R6`e#qq^QwCvRsGt0MDfAP^5e&2-ucjQ7!+#)KYvY1?ZbfrslRw7P4UJ@;Ka|x*4Bg((>H=wx zomOnLHOmY|Dy>WRJesbft)4q*Pm-G6?&(sim2v1+Y9-5)r{-{dz)RXO%yb+nRLWB~ zbAH0h)n?=_lUUgFQfQ=?!;87HT8U+C^V(8mTfpJX*j?wh@rrh;ml1B7rX^w(3gyd@ zeM=1kO|7maNuEbFST7JWSF*P{=fbesDQSz@z=fW=qvK7Ys+fdtsSFFu4*oL7!Y9B2 zn+g9Vo}$$i;ea9YG@$UJ#jCWQ3YrC8RxfH-vqI(P@zY@ov`f9r$HxrfK)aMbbh=$C zuzrDdsh0)D55!#jb}3+93T6CY5_TyWNr$v~flk3zSB8@?x%^|+6)XqGs!tdT#Tl0A zN@uDlJ=g@hw2E0W#-pbhK82+)E>@@0FP%SsY3_VmUW?V%ihG{5(GtQ;@{5Wxt1>dG zGP7{6zDd12`fzTOGov&{r^!pGU$CIsQlDvUw%J>FI`Gb1+l<=pM`_MrtrWNwuE)la$9l*8fxcpNN3b zGg1K;-*C$Cj-Kn0<=3E2(6rA&mntnMVB(X_iE%k9dg}Aq92JWqf+Ks%oeT1kIw~tW z_>IPuw&&KCSJdRTmwG;+u}$smO&G&VPbSIGyZ?l8H2!ih!{#fX&emO2++|DZo;P

JYP4QpDlqRI0uD4VC}lnoBbDf>cB*-|+2Woy?Z8)IP3-u2(pO7O1UIJqeQ zNVEgt!hUL!bLHfGEyPBK|-#w?9aoA3FM zb}N%gvIYI*XZeNE8lBESAB~GcO~srJqNZ$3Ewhwd;?q@7f-ih8*8ED+NH_p{FWWAq1ndnr!;UVt-p`=&{uS!cBTl*?JN*pJv|Bnt0IDB${bK=n0<;uT*f*#v|| zfm-vXpuInKnvMp{M3fx$A?st)sSPv1Vd~Q?iCRx#?J6Uq8L| zSj3;4FZ{VFOiX%U%?zUe<0&cN62@6)w9HAi#s8P>&&X=J_2o2s+5erU)=V??{C{g& zCF7R?#vkaEFezaN&y(=-ABVB`fU1z9IrKd|lTnqG zU7eAix5Vm-sd5)o*XHNfYUb6|)Os)=5O_%?C@GS!&-Rz&l{~(J?#!%)hMt*OX*O48 zI;v~zj+z>}$6TGoH212kteT9N`g})itur5LpuqPQv|)Yj>CFMmpL=G*oXvCRVME8J z`PHk-%U4%dvAeSCx;1OB?d&|bcFlF2iA|UEuei9W>Eadrmo%|5u%dvxC#@rs@aoh( zo%FyRY{{6gCmz3L#a08-qksdavSEy?DaVdihB<}Vzc4sbV9Wh%KNJ;fyXTiLNi$>) z)nQ@2p|tQ5i;mu?r$WiR;^a9C+%7|5iKVS5qq?c+^BBDx1{@j5gHHJxU`W6^WHTQz zNd`=>scqU4WS7PuV~wx){*)_@cYl}s{e^T_ymIy>#`G*bjSBI6PQ&8$>|j>ZPe|oB z2*Eij{#Ax-tALG$qV(#Q$=wVE6dzpnU5%=v#kcK=P6%R&KK~w z_+lPq>B@@Mdg}Ik6dVz)#9E&6Rb_GRo&qf2arG3s7rP{yp&v;2!d`9z<<0Rs8XfQX z`VRU~q;QRLatyQs0JW=e9I_#4L7HsxKcX zN~_A&WER69Sy0enODfLPWLKsa^;fvD?!3bd)eHC9uC7`*W&WZo+ehM(NRZ_&MF<_7K zv~I1C0W2?d^3`m2GlW`<9HA8zt4iHp)d#GOqDGF+Rb@av$FS!)8XUMV3T0wsLEZ*d z*^V{zL^oKR*{yh7rQWZ(HUev9v1j8e&GmM~%*Nbc+G+EJ%=+=V+VT4O@!Hz4IpqT- zB?IOB{!@Gbr;{->@HXbFjoIX@%;nUvmZpxR?>_m2-s zm6YgunkswKjakEU$`;v;WyN1wb@Z;2*+f;d#3n?$?~i~;;u6qHev(Ug$&wnY)}`x` zR+Pa~;#gD?m5PlCX)%=p#U-mQq_Pyx50}s@6Hbd!NSq=`qWqINg*?@B44mS<3ufUI zbI=ReeoKi{%mRHtr}c3PYN%QR;Csu87dh<w_9a$SB&a?N0I>CoGeiAg3+H0?PZ zR)NN3yXnFK0jFtE>-#xgkx?;J=Kj|F9!NXSP`%|a5B>8DUeN#;84dm4;1%YI!IJdq98G44$=>O9ciK(GS(=>c^pb(f!Y;eL ztI*xe?sW?n*1<7ek=ryIuV~8sX^+j^4TEBLo@ag7^Wg0z_tQ*Gb=rB8tJH#nxTTpN#WF&(4NHD%#xqZc2Rj# zF};rUYz?;gOq1(i#!RX^b-sK(n_>rgAKaE6lbMo`tJY`>(k$*c^ZIn%3xOqi9>(5< zJ7}5FIJt3WMz+zE9v2s#nB>e&uw{;G)CwasLk3Y@07M#bF6U&JoC@qCz?3%toDRk> z&rRADANFla>?w-=%SRtYM=N3$A3e&BWDmqZGOR~AB#&DR2HONH`ETJpl)1 z7p5$*3?6%y-2u?hWG}WoLn$u&EUYCy!*0t`U>{S6R+(E`)isf{vHdw?)vR#dA7{{L zVl3$y76B7aLB*E5(nr)ggmcfvnz+dT(4n81I!ty#m?nPeg_hDy)CUEUs-*m`SQqD6Vqz8TZ!@3H*2o0#KndV_XFkw%eF~}^+ zdAJK?A?k7~?EHMyq8q!VuzJsjj13C2LM37FVLIiZPa8QR@Vm?`WhuE8mSLXKpmAyf zYd@lhQRt+Uf26N_vV^(5q)1x^DR?jD*5jDAjJXZ2B+ML3DBOxbU_Ox7UbJI^M%M;17U7}4fip?9Lp@nqUIHtZda{pH288t~AzY4k~g`RiAg2bwI zhBL2J?TboIz8?ByB^ta~;vwQpF2)Gy(By*g>-7!eNG0X;>l6w;7I?Ey&7RP^Rt1->_xpwQX(J?zCuY4sYK4QZ0kqI&~%aPD+XK zEV#c}8i-W$G+Lg1SX=wj=FNv|v{DW%rDf^{aL0$Fai7~=Ae}j7HfIz#aWF`V++fhl zPgUUW7`K5Qo16g(_lRWlC&8sWKucEGaH7DJ&>LSy~Xge9`hXcB{c^ zU$uNuOnujIqAgJo6_k{hINCWU2Bqeq)NrX(z8r-WSK!uJ1s?=@sW=IO1!5^OB`ZZK ziwG+#h)tOR$?}*voui3)NkLHx6gb>fAG2urDh|e)<%@vrUX&Wcxdk5$7$ApGI7S0b zU2lTwjyvvHE;Ii4QA~_56$4JoM)Wt3k7tknV!|Uc;-jBPoLP`ljK#%w_~xMB%qLNk z`@uOH@ta(+;2hCxL^jLXb!=VcV@XJCk*&Mk2Lsq97O7u3{Z)8i`a1N8>934Owh5G) zprwdqo-8rUCkMR}PzZ!bV3~LoRMUkDFEdca;Kxt|9XZ77Ia@7fRB2`%Kp%ja+{|Hy z{5(mEAlxD3u(dgikFpaICg0ZlGlt%v z^Yjk9rh9|lul2w>7EHRP?!j-N=VD!h8zERELE4YrrBJPmR4bQ z)>P*^N=qD;%8G;cJ{TIB*lO#VsHw#{EDJ7Pnq83)qBUiwbe%J2-g#Xe=gvz>)~09N zol#|mS+OvqKfN%vD!-tj(v@Eo85dVuTUG1%8dzkz16P1j4ERMy?6US*N2P=8xM7q^ zvQpxvY_7}=V~F7L+@G6eX>+BP+SP`bx}2J}Gz(qodAxL4L2aSNUT$r57B0v711y+q z$?dSZS}fZ1cteJHL2XvO#dDL=xv;2mU7TLuUu2t~(??L}RJ0{Y$12)WE|HW&74T`h(lSamxhgK8l+#FB(U?=)RGWjHJB5o3 zdPAF~ypjjxG&Z<=Ghoo1B+2rAU#T_&3KXKJ&|ylf}@yWwxV}8ZpR6QOSU!Q z>2NIBI^WgpaCEye>*BP!lC+#T+1Yb)QpydQn153gu1hfHxY zCNcw348g=s#H1dJnM!lZdR?xiW#!9o-)Y>?6W=okYblQUaJSQbss2)`!mn((NgeG&VDaJ2bc&+llhO67Tsww*ZP zxeIHoKKOuoo@2D<#;MUoqRyLm#a8y@0^Q&v<`586YIn`!! zbxt;$B`9#!*18Jn8MoXtwGF#{J^{3Z$>mK6=gNkEypomZ|Kc4x^6xmL?p!+Lxn}Z5 zc1JuTEf%`*%OBb7mjweyd8asC#XSQN7n@78;W}4xdY;B)&M;{V+40HF=rDC|VoHwI zl#yZ5x|ar`sW>q%EIua9WK7hmB6Z1e#&m6rAxvjTP0}Yst0MI&aoM@SGZ2Vh6av30 z1OD7NpWds(2N;pPt1;LLR-LqZ3KYZmZid&k%=8tSQ9o3)pdl)?+?>~4TGkb-jhUa{ z+?i6AX>GJRdx}dIIV}y@*|zG`qM^jkmCi*)wS&>&vh4bty!pAVENzCpr7X27(~#5T zv^VDDG}@i>vZx`#HP2eK$VrFTDI`paD(Or3je`U>^OWvyYYE6eNx>!=Xv!(~KsUv% z5T}@D?t)$@&bY}jBX}--P)Or_ip@eW+Xiv_%jCTZBL;(EMvpQejIwaJ55#Wo>T)`} zzShi*-e?658m#O-_rG(a=X!oUSJU8$o*R9+*wG!`1@48;CQ9!(wS0ubaOC zXSc4YYu{Q|zqPGl7$>)G@D$L)p`H?YOQ??%@-tj<)D;*VKf#s$Dn9-$7{<{rp*08z zC|^4L7Tbons_H9TtzcGlxJR6w&Z-4^NK{u=efB>3l&74IDe3#=T^4(yAu%g$PQE8r ziT>*XnL#^2z6Fq%OeYsPDxuO^W48Q9W=M6RSL&d?>1gd|880heP5UCs)E9L%z3V#7 zUOMBP5c*Jj{PPmb)5dcrjrIgGpX{bj3-~cbrbDr1GiI>G`E)bV(~8*Gzj`JZXPOU& z_%vnX2ObCC*+`b0F!hM(-E0>QIOS?BZPmtk9@o<91I!CnTCMdw&M-J1zhL_` zej|q292oaxB?j0l0*CD=<@eGG50&&}rSA2vukifI>jNC~@jGfy^Hsr8J<#$xQ zowq6J+Lk_DYkl3)BuD4{?C6)<2in5tE?v}2HJ(pP7TQ3^&FG(v!fybN27NS-@ppDU zw%1N0?XZ}pM5Dz;)ll4hG40z5dS9BSnUpE}qY5*wZki!6}`xWVKnHyvCoW5EpXJ zPm`uw5JV{GLO{s)85lndgib&r9wZNF*y-`pV|iCFQ}1af(i&wRD;Rkl!dhQK(Utjd z%*i`l;kIhPCo%SHxVBm=_zHmzZFQ zjkUxlWM?O&WMv7#an^(cYn*h?F`06h6X8ywD}*785D6PM_&6cowZykLL?-5B$Hgax zYgAb&$(Br`Apzb@Aw{p_Y*44?4>7NNx=djE-uVgQnY6(3Ja)W`*db@Z(#hK3WV6!d zfF^)hNqBgM;Ruv~z20X{-ObWNx0>08)zjP1GouMnz8*W@zsIbVILqMEnP6XpIR-lg zF!{=W}`c8um|c>zud8$Z=8wv(|Yj zUyhSJroZpta}B3S{bEj>da-{4DS4mrQuC?kl&2Eu6no61@FwKRrq?vy-MV^8Lw?LM;AHF_ya-w?bK`*f6;_hwp|lE-=mJ3lE-PY%bm4Zk|JhAfBn+=#0h>&C5E z_s;B3%Y_m=7@9+s~=qH2ZjULjxiU)AGmotf@0aM;DGyASRr zxXadjlt*K8`uy+i_avrP!ys5x--%0>3NQ04g}uT^9BM zsEE;#j07VenfxI99E0+MyaYBYs$*Y*+3z7^K9~EXIKgQwj^-Q031@L+cY5Q%C&iI5 ziLcbWf;a+;BjkJIz$e8K@_C#)QJYs-9GqOCbZ*91<|9tlm*Ar>ItMg+{^xZKzX&CZ zb>)!Azw?$a|Bjc>ex*5*l^;Cpg%Lh)U59xb_FKt8ERO7mHx7K>x*lP1qW_IJl*JL+ zy>a04*0r6-c>;C)J&S|hs~q?@zA_&fcuVxr7YAO6K8Sw)3PK;lZibsc@q2jx9>A|Y zwvtLxfcakWF8g1!-3eS2N5VGn>X~5}hG94b1O$`;5f$*h00F@ZuV^%ycn~#tjZu?b zjqB}9MB{qjSMp}Fc}+Ig8WR(5jT&{M!82+QQBm>W5Eb!4p}(h|nL!hk&3k;|=RY+) zJ=N9KRn^tiH9f9dupRrJ2^ps@1F`TZ>N2=B`CE@3@*NkAGernF_e{feVzG{oTt~aq zxeh|kJzL6kia~*`7dlo6z@xFpR%aQAdP0n=?a;zgZah*L_XB5`?eeHXq z{^I(~=$VW4E;6ns>M!4s`8V?!G2krcXaVMOy;WE*pD|=P-w|1SXByslk1=TY3ztIC z;}@W9`AadLxtAMjJ7A&GugAHXOyQu)l1EHpYRI9r|5pEeSPyrF8P$MFwYXg zJca(5+LsJv7;_TwZfBZAV`-?_>`~=WPK%x}pW#z9o9>aC?dxy$Sck7jtfltw8iwb1 zSUukM$n@yv(a|G;;ifd2hEhLjq+DMJQ-w^6)Kp~3ho`7LYi?~MZ~&Upy)SQ}d#qm6+^gVgOlz4nAT4F5zoOYQ5sea0oL=mIyCY`01D zZE9bV$#5^Xj&3d88qs=B7|5`h>ZFDWhPl46wV?=c-j^D3=}{?O?J}%4d`dr{OXzGm zP3l-@+!Nv9hL;UpvAiu~fQA@D5cHz3bUU>#`SywM$F8efXS+_L zKGo%vzYM_V(1`aQ2xXi zzGFzHVXI?Vw04&x6skQXL(UlRYr8Urt%#u$V-WaG@JKDrH@F~JB{Gd4IYRxkgBfZr zx@pl9=DVp{jLsqSp=hmr+p#QGJ078a)j2ZE9&7dX1h>}}+l!L#@Ck1A-1r=$>_)@e zc;_E{=M=Udi~AZ{Aww2zs0<+sBPkRd_Z;_8LmZ9@s{v%pK)LhLAgoEYEUTYX$kqP^^Od6fy>j0p&!zjacPg zXoRfBc*pTt5nsyJn2Xw6`7^E*WN4K#0_$poAKwYVvrRg4f9t?MQ-2(v*YkCR)`WJ&f|N&~1cmA_bDbeS-Ch}zWk*+lI9$1Q2kqOI{yJIP zJ7`Uo9y(du<+3!LtUWT+RyR+E@I&qK_!L5#wU#K|#|T|R{0X{PhD@TVuDN4bw63iq z6sqebL--uaAAUzeZvAznHIiG;(7yeuAM+;E{#sM@s!ogN%qVy#vqG2P2;J1m(vhJx zWnR(B(jni?)1F{xeCBa&u4CCx+I)n*MvV6Q^_@LdAu`chmFsBMX0FxBa+50aMvLFN zQd04bJ$0!vb=Z<3-1xZ=tP`spgLP!cqRm1`wg&dNd6lAs@H6uIc@{qt%FoFCmm!N* z?tjzj&&1i+;b$`OnIU{VUmM=%lx8E^o&(h>kKjA=@JV~x=J7L)@R>UH&uFUpe5{d2 zVZQe5KC862o5;`twAnIb>XU^}*q2Shw=37)4m4nq=VXkZDRKNZw;~t<5f8i^X zYOOLr`}PYTYeqRjt2DB<3=ral1xOb{nzb)vp*Cn0`P!aN{FI+CYO;_{g>l6r7eX~% zv5qV~_I2beb)!b^Kd%PmFX|x$vgHewpAlmcLP?04m5$S$iG0PCrJy7vu$b_+x6^>A6 z#mn(-lH%_OHCGzpnD`?ud%DMSn^D!T?X60p%rmTsUyI@UD9Lyog4fyh*V?z;Cg7=d zEaP}bj_MtAuIV;dl;NE$E?ad)mLem@d=z^w zDSfozj@FRJ3a?|>8Y-fgTk9i_9k&r~e~p;!t)ai;waL*MMpeIWZw;?IUXORQh8L>e zx3`8x^0j81aOP8i{e8SfzZ)r+zi(qdi*CX@iWmdYMkC~o_szIB>W=v&7R)NCkGrJu zJ5sGMv!V^=vNge(=0%Z=GtW@bMGO}s5E?1|EMCC~mldyP;HjK%;rZFi#5f$u)%ZQl z50FYo-hIt~DRrptmf9LS;F#hetzjaUi`w-y;_%{vz#$e9| z<6jT#WfDsMU$M+yp4o4~^I)7gRo{yI!LvP_ug~!HV0qrau~WnzzLt0Ljo2SWoZ#zy zd_4)T&++vFz8;C!8~J({U%!mkyZL$nSGjbz8i@lkczM>lnNq%GdVygYfz! zUw?!5?Z@w9yjH{&_~fYVJlyNX*pSc|?#lAzvR-v7j za9-z@&NQq0GfP#J5H;8S3Hh{YHTzYe&I? zX2#29GM}D&Pu*qDSH8Cy`Qyk7^;BlOdR#B-72(|M$_al412+ z^%9{LJHTNDr;ZE@Qqc!fKgK_~ z@ACh$jN}h|SFW#qte>auZ#7a~qMzmbJj)eIjXL{P=OWY_y|wzqGXwgkj)$7xH|O`O zs;}#1D~`BdJ}!@oirkmwm&;IY)Q#Tr)V=yK>ID4=E<@UcA?%#Gr0*_uT^OE8(KnmR zbJN@M|4-zte2sfG{I5Fiujz-{m%wPmh5yvO&DM(eux<>man!k^1K(A5>IbT)@cwXY z$MK(9isOzrWggb_pNcx`d|#F;XW03FH5>bj^sDhuVK^dJw^@&myh*5XF z$Wq)e_C6EeqF*+9?ux^z$=*}I^iqA5tcm^9loU#iEw@VY49B2 zIM@VvfLXlADINMKT@lW}pAJ2jo(T8D69|>2V++)Q%SUw(kh}^)R zEBZ3C5uSs-jDj3pj(c6QN24HT*WlfMphx41{QVC7h40b(P{a?&YpvLgKlBsCK7_N8 z=Wgi1$lowOjX!tvaSC7|a$jK|#}&swj&N1tPeGriO1R;0xIn#P5H2_pM)cR@k?>NQ z;OfXz$-p<2%u0706*G^DH;;;<3{nQ+zO6hqX61e5ee5Y_10hcNT{w9+TF1O|V`tA zCC-4oKa5*Hz`*Lq(fm4u5S>g;VaR%(C8-`_JUCX_*gW6!%PU4;+# z+*9eMbVFF~zvmPCZ{KrI{8-&I+1C+UUt06bzk&Tu_50BI_tL=M|MmH-chlaXzyEuo zs(VP6X}?|CCHnV&FAYrJnik%^U&71n4$Hq6s-FI9wYRw;Hmh-o^RJ<%-Qk#>F>7Py z#Eh^0TZ`Af{fmkTjq#5$*YAw=e*Y&wJEwkgiy@*SA|HR>)x8@YRHt+B$1!Vz*ZeM? zwLzhQ`(xGyw2q0A>q_On0F!@}e}Vr|f2;o}|K_#!*IHAntKVk75%}}*9%(9fD|1VA zYirnQ_{w1Azj#A@%p7f2?@+By^9Zv5ay6eBteQtS`b|(uWDhd{wNrkZEt1y|^>MFS zKBGGfziQYFrLr~ZWdqd7ZkU1D3xA0yeZx^}-@vs)cb2#pQ4_~w_O5Kv`k_Tzfv4?# zfWHy=HIYxS-aqg+5+!brcoX+z_lt=vag$i$CZnw7iYfR_@O089ox0vnS5`5Dp5c3flD~&NuE^FN1@w?|O#D8JJa4WG^Nx-%DCrXl%gkQl< z#Yo6Mlr$v`-%swSbQGVnmHdL`aUJSoKe3+m@mnQR$rKxuVan^`JJ!w3%6}^VDYjs4 zj;C7SH(2qOX9A@b!~SZvXru&SNt6;Ommn{fu_gQ$)G5B|(XN45_f$uV;?K_o@;sv8 z9eG|?>`O6cO;PjkT0^x|M_s6%x>5smqekjZO*CFTig<=G_TlVTzoF)1$w>Mp9Ysge zF?1KU{~5P0)iSK3E>urlse!stBXy@H>Y*0sJ{4wlv+g6|Nxi5y^`X98$B!Z(vA#bI zpvXrosZE1uFb$z~XebS%;j}Jeu16!Ng+}t-`m_O!p$%yx+L*@DINF3ZrOjw_+Jd&E zt!Qi7hPI{cXaY^7NwhuFlT1@+D(yhiXgcjkJJHUx3uEX?Gq|K1!`*2Q+LQKD3;N)U zseaTtO}s?=(*d&Ihu>h8zCzg(6oVKZOoz}+`YIhthpBsYYs7H%pl+FXL*0%TMj{Oh z#G7;!9Zkp3w@@pD7|ZRBqwmo1YPoJU=7mcq(1~;solK|DsdO5hPOa2NXV5G2A88W^*ft=wW(9z4GETJndF`j2@@I&=d3|Jw<<|IrOx;y_b*3Rgd<`7WoWcpcm;S zT0jfA^&(nKOXzi4N^j7c^cF3nm9$ExR#B*iYN?L8P`yl*;z|v)vAnid`pOuTL9)au z@3Y+EDF#-&A-t)E>Zlgt9g5QedPnhU7W#-N=~%vBJ(#v0dt4qoO`Mmal|I$(9NO2v zi!`*nyVCYxEYj3G6s>d~!h!1jp2M-7eTWI)1BNb$Z;`<7VzVWDgDvNN^$YY@FLNA1 z5ubBi6U5V0)KTU@Y*n__wb0JVtA9`GMZKvHtxN0C2x_72X);Zrsk8%4qv^CG?L<4% z4EhO1U1j<|L7!OQeEmO5M?8NG?EfM)G8LzpC%HT-`3zs67wIKhK&RtubFhaFXFI8u z>Zl9VQ&(!BZq!KKsfn6}q5H=eTak^tubC`FF)>7iuO`EijJmZ z=v(Tkh;p=-GKO*V9XehZ!uN~6&ZR^%+7-RTQ=Q5cA9a`J5&C$aS?1w7Ty9+vgRBBqU5dINbw)$A zR7YK?p1M*4b)!b=PEFK97&6SL|9M>pq8*ZYQE%!)eYuVwtwsH501c$IX%G#jA+!z+ zrC~Ij)@97~Xau#;NWNR2HlQ)IA#Fq((^wiu}?lS7ovyo1q6X_&6 znNFco=`=c>TB(iBpjmV#okicHv*{coctE~1O+61tQwqs!G&+zDU7@JhOh zuBPkMgV>9&>3aGN{g!T^-_h^6{zkfqZl+u4R=SODr#t9Q`U7LwMR#+_9)^FUd+9#9 zUp<=PC$gF5L-a5`!V$}(^cX!(f1xMnNqUO@N^|IG^&-k!F3qPG=tX*o7SPK)pA|BN zMYNcf(Cf66-k>+>Em}tJaxd=D`}6^=pbzOITFLdRZl9V%e_FqN@}1u zLmG7o&XBOLj0a;&Xc;i7B-;l}o3jdxAu4KaI=*#CwNyu4sGhn~19hWD>P}76tX}N+ zA=(?M7xkt-v@WejBdCSOt9hxd@m+oSsbrc$Q)vg9M$>6W+KG0i8ML3eDtSE4xYGV~ zfLeh4dYQgL2U7Gfv3xKcLNn>BbSNFBeiw5bXY1`Q3vixZ71JN*Y3V3BnvS7kxvg>Z z9XejUiGBGCoj@njNpv!uLZ{McbUL+C8=XP3=uA3`zDH-%Idm?aN9WT8bRk_t7tI$W=ytk;?xeeEAuXcCw1i%#rSt~9NpI0I zS}8@zmHBB#pGx-aU!wh~b3{Xqnv7&G@=ZF5j;3SiSgt>gzC%C37^%E&7^Z%jn1v&~ zD{&5b&K4}oRdZXfz!gJY;snJ@U5h8M`KrfTXX3gcPcszf?eB065vcB}e?n=?>t02C zWR?ByKSO-8g|VX_fSAw^fanK6^aG%tx>5smqekjZO*EeNV{iN=+MkZ(@;B)yI+~85 zW4X>a`VMu+K9r^&lp|CrvhPurf-h351z1u`&5hlO{W*#~3_yF4ro^f1Vvj2Ew6}Uc zwX4!cihb*5<&_0=MSRy%M=}SwM58u zOH(Fb-Tb&~*!JO8LD=?*lsWiZY2sdN`2`3WhICLwnRD!qkI@^PgP zeN|qEDIeHJ$;5v#O><~0)FWkikqfY$a?DYb`_%}s79XeQk_)iyJTVyChL}y_r5XK^ zBy0m>8!Hhno~uO%IJQyXdrfX5d5qjf@)(Tr`{P>D5BqrnrCSjTx%NCM-YLL{yCU}E zl^&_M-`IdbyLN7=FVT}1UivUqLb+qI+aeN)2Wr( z=nR@gXVO{pJvy7tp>ydxI-f3}3+W=dm@c79=`y;U=hGDoucWK!YWh9hNH@{VbPL@| zx6$o%2i-|`(`?3nh#sbeTwX+rX$iefInzMgVE87zMayUnRFI?kItrZ=v+FF&Zi6LLb`}9rc3Bj zx{R)%E9ok_nto3=(oJ+T-9oq0ZFD=`L3h&Kw2&6jVp>A4(^7ha-lVr^8LgD!EFg0d z&zV3eZ;yPvF9h;cI)P54ljvkRg-)f@=yYnOHadf5(V27>eUHwjbLd<;kIttH=t8=P zE~ZQ9Qo4+;peyMrx|-TYY`$lBBi%$d(=Bu>-A1?59dsw%O;6K&dVyY~muLYkq(!ut zmeA|8l-{5>=`C7DE2TIBGPg0l#Q&$^7?dj?;TT9UatkqX3o&vFF>(tratkqX3o&vF zF>(tratkqX3o&vFF>(tratkqX3o&vFF>(tratkqX3o&vFF>(tratkqX3o&vFF>(tr zatkqX3o&vFmvf8^Bew`+&>Fh)}$MpGe1Qz1rEVU>&r zEsaz|wNyu4Xo4^$Wa1ohu1OM(ko=S)YFp)TiiQ(#l+HE(0!K+Yflj28=wv#DPNmc6 zbZVtG`mWp>j+Klji_WC8=zDZFokQo+d2~KqKo`3aGN{g!T^-_h^6t&MaO-AuR8t#ljRPIu6q z^asYUi|*!e09EctcL=Oj|hXc{Wf#~5t^l%`0I1oJ? zh#n3^4+o-$1JT2Q=;1*0a3DrNl~Wj3kzw?3AbL0uJsgN04nz+JqK5;~!-44GK=g1R zdN>e09EctcL=Oj|hXePsmydB!Yz5<>5aXcmGn5^|G*?Q zzf~#vt>xNf=(kGIQ^IEz(bp<4n_#?J(xL~Bt#ksNNGH+BbPAnHr_t%uN^Nuo&7w2u zEczauP3O?LbRL~g7tn=t5nW7|(4}-4T|rmURdhA|K$dkJTe%k-=_b0FZlPQ0HoBee zpgZYqio1b`=QNLSE^GLC9?yI(xj-+{OSFJq=GF@tLlG^eCGuVl&s;_8gZ)M81JU}xBTVg4dW;^Yzt9u(Bt1ocr8yLLaDr1& ziVB*`@`2Gzc^?N$a32TaJ`Tiv9Ekfk&^a0_bGwMCEv6;(IxVF)=uLWymeJc7fe@mc zTfal^a_{cZ`}6^=pbzOITFDsD_BHD)+dhc452EdZX!{`AKB$*5V|-R>pl&h-oDHQI z`Ot==o=Fqb&CO<^zU&EXj#+{}Sid{%E4QWeQ?E5$gx)HaquunkN|yvvx|i;w&YB?8e~5c=nEvl-!l{s5s0pV`TTv5EA?AElF1bK2(o3{}R@Vfi6Ey*% zCP35#h?)RV6Ci2=L`{IG2@o{_-e#+NmwR-N-lq>}1${^#QIvjss!HxDO21S?wNyu4 z=(9@yO_Wxnj0dG(%DD$hOEnMiB&nNYmf-v%#4gi`yNLJ}nHKL=;d z*Mw5^>mmB}5b1~LDc9~Nd&&?!Wr&_KL{Ax_r;K$bi~p;UWHXPcC-tJ<)Q8rk^=JgO z(0I1I?HNv{DKwRKplLLncBGwXXPQCLS|N{KqW$SGI-GqQ`^=h=T=PvjijJmZ=vzF; zjOC}s(Rb*0H8<)eS~lqfI+0GIlj#&Xl}@A6sg>I344Oq}(pmI9I-Aa+bLl)fpDv&a z=_0zAE}={5GP+znRnLHyO{R7wT}4;Z@99RmiEgG_=vKOoZl^owPP&_BGyX&LFg?wD zv-cbG8NNU-(o3{}7BYq+T1-pmby`Yq(3|uYEu)pRN^TJ)TB@O1s-rFxwJqu{>eeYu z0qV8P2Sv<4ZK);V)sexWm}~W&_h2!ABHyG)heWjK!~o6kcXU1Kq!C7Xkq+F0%%T9g7je>j0xnn~)%5#>0Cevfb2W@6-C z*8LBy(gpOd)CzG`!tLPBsF3$^q_{H*ac30b&M3s4QHVRE5O+o)?ujN`)u&qTbYp`f?pVT8sMA02)YZ(;ym5LuefuO2cS4t;?9}(Fkgxk$ks4Z9rpa zL)wTorm-}R;u-+^!Yg&bD|OL~%bU{{v?XmtThlhQEp0~=Xd+Fb?U|}%nnF`)2bxCH zX-C?LcBWkzLsy!?CEXbAPJ7Uvw3m9^Yd`KH?(^7*_DI^F4&WK%W%>#oNC(lubO_C) zuhOA(7)$7I)}lAm&T#5lBN(g}1TokSJt(V27>eUHwjbLd<;kIttH=t8=PE~ZQ9Qo4*TR}W%eRxrGh zuA-}{{VM0bb7dpX6JN7sUr)cG-_i~AJNiB2-$*yn&2$UhO1IJNbO+r@e_#x|=x#3A z!|;!EFWpD?(`@eJA$ph|Vas%s9;3(UFZ2XGNl(#VX%0Qj*;%=q34NZmDW6L&(2MjE zEufc~hC-&Zh!)cldYzWi8}ufWKA;u!A$>$E8AFxaYqacA z%*}+Dn+Y*D6Jl;A)XTlYm5tOu-DC{t+ewqutuE7)42HYYzA|RC!T0g*AXzuj5=+1n&E*xe*m;HKktEoBGhYv>uJ178n1UTR+0yJ$0V!xo^;koKp;SmT}b9_N^UGymW%*2}T{>^S-k9j|_c=e7KWPM{O% zBs!T+p;PHJI-Odnjn1H1bS9le-=nkX96FcIqx0zkx{xlSi|G=&lrE#o+1jmOcqLs$ zSJQRsF66`4bUposeoHsd@96hjeuVl zk9+X~eQ-G|`w%@$kFfq7rN`)T`U^clPtsHLSDHgltGiIHa@C(u63(l85OY44T%Z@} zC0al)vmO^Rokg^mmeA|8l-{5>=`C7DZ_8ebxXV4dNAJ@Iw1PgQk7y-7RVDWnwN}dS z524n|u#WQkL#Va*Mh0rF)Ii;245+ozIHbP_S7g#A>TyGJjLu8Zi;KW_s94LB)I9A* z^yN^7QJZB?E0gUFo}z0NcxHy8ei)ALZBi}OQ5UMGuGB!?sFAu;6E&+xy}v^nAoZf& z)Q8rk^=JgO(0FxH*d(+8@>9t)g{IODG>xXyj$5FPNI|P6grhoqtmIC+UN|L zMQ74k^gTM8&Y^SZJUX8)pbP0Dx|lAZOX)JYoV}bC46mfC=xVx7{mPVvHbAd z8|ZiRdv%3Qhfx{1*PG~Ox`l3~+vs+>gYKk1Fos=pH<#>T_(!^z?xXwFkC5m1PB}b8 z57Q&8D@W-udYt}3PtcR}6#bRvP_zMvEmxlT&<3o6XagYH0EjjKq78s(1K?$KBP?V( zi)b+|q1S0Cy+Lo%TeOVc=3d<89^Iq&=>u9pAJRv(lAo%Qdx|zds-aq{qb^i0Q;0S| zYM^d12DAavIQ7$@XtV*+ChB+EDzpJov;kq(>Na3w*g>=bIF8kAfUFCOm}ZrRLoZz6 z4HdI+g?CU`G2`whJRfJcnj7#Fz6r4p-$<6<4I6_iIcrEP@-++Zo>%|uABdc@;+vw* zD>*sx(o*QOQ?TWu2q)nw3PbJN#CCq*);80*G>d*pC(?JJ99Ov()CjGTR7-W#g<=*h zmSYwz#4K8fz6?ZP2D(!dHLLeEchM?Iy(s2sA?!oz(t0$4S}2~qQR_prN^;F)nnF`) z2bxCHX-C?LcBUD$7kd=_)SRFKv`W(cbO1)h@SQ&T3LQuX(ZO^G&7`l=p>&v963`h( z=4S9Z9GN1`O|)po;hS_69Zkp3vE1S~`VPgMkl?mx%cPhS0w+?;2|*ZhLLlaZK+Fk& zm=gjqCj??n2*jKah&dq;b3!2Igh0#*ftV8lF((9KP6))D5QsS;5OYEx=7d1Z34xds z0x>59E}@tcf-vTUK+Fb#m<<9k8w9SVm<@t3W`jV?27#Cj0=H1i20<9JK_F&>K+Fb# zm<<9k8w6tP18Zw>9 zOj`;~r5$J*O{X1cC)%0*c0@zQ^ZXHwTtC?}*@NdCzC`=e0UVounZ7~?(m`}E9YQnd zt8^$GrXKhC7;V70z^~8-9QIj(Hejc*9@+ruC_0*sp>L_VSU#599Y^1x z2QsxQ=_{HeLbuXwbUWQachcR|d3Q)|yA!ber+LUg)9N`q%|2Jn*L{mNMjokrF1bK2(o3{}+V6}MGCf7Kn3mA%w3ObUH|Z@} zMk{HROgZ`$QVrEo9d)64nL_j{qy~!F+D9i8!8L1zwMg3_24WzYc5DlgwvO%F@l^UoUHBxtKq8_*}J``sWsUNLH z{b>LVq_t@f4W=Qq4h^MYG@M4#`m_O!p$%yx+L*@DI2x~x(GJAfLZ+uFZAP2Z7PKX8 zMO)K0v@LB%6KEn$qFrcL+KqOn_?lIQkC7+yL(tXrrZ=8vrpk0Ag+c#M}Ugxd9M!10d!GK+Fw* zm>U2wHvnR80L0t?h`9j}a|0me20+XWfS4NqF*g8WZUDsG0EoE(5OV_{<_18_4S<*% z05LZJVr~G$tN@5v0T8nSAZ7(X+~0?|zYlSLAL9N##QlAU`}+|0_aW}@L)_noxW5l^ zPamRnhJ_5{zB$6UZw_(a9OAw?#C>y!`{oe$%^~iaL);y9j%@D|5XKf(8s<}BHA$4kr4O3)eBnu(l6Cg9d)64>PijNjT)&tHBqzrt#%1|h*B@=O?_xx zT8~Ch3yoK=Xz^WqhLdRuO{E=Z8cnAiX(!s5X3$=0KK8qxx=cF@HAmW?4&X@4%k&jG zkPf1Q=@6PpU!_CoFm)XsJ~15E!IMzymT1SJ)=5Xv(R2(Q%WaLL?@;uKv}0tS2%=8} z(Iy8&@`1LE!m z#N7?pnD;4KqE=1AH~zjtjY(4XYy07xxJ26v=R|35bq(ryABw(=b_~vsSdKdU0c+Kd z^b7g|okTyQ^XZ$kKW#xb(CKs=Z4VEkcIFCs6({}Q-Ip#!4Dz{5d8ngO`CO(vA)m{X zhj9$4FUJ}DXf5hb185+vO@nAK4WV^tC=H|GR6ds}4_9$g`CO(vA)m{XCnEW7ecFJ= z(1x@TW$P+p8IGgzYM${5&dYLNn$l*pIc-5((pI!JZA07Ab~J$|(j+RM&Xk9%IH`O( zQ=X7dXUY@u=}dV-KAkB~$fq;q3HfxUJRzUXlqclVnes#z#?Y0@r!(c@Do&=bJMBSx z(q8I*-6^zEyYMdhaS;7DIDoC!%k&jGkPf1Q=@6PpU!_B-9AlI7Cu9kEgRzZN4gupv*>$t zHl0J~(s^_~T|gJoMRYM;LYLBIbh)}ycMvU>Ozld#ims;L(~Wc!-AuR8t#ljRPIu6q zbT{445&vv%x(+q0g zGu&}jhNCr*;*K-K-6of#sL|K(TM~GBpUY76KC+d;sL|3Z1U!$|2bj~c#NiF@)8vxf05W(`9eFMikZEvr0Ijc8Z;BJE5Y!imWBofsiT zIf5uh5akG>96>#Gr3UIojnti*s97!5et@%()QfskA6l2zqY>0X9iy5L_5K`XdrK|XoI~q~Yh&c7^c^~0y{0We>nNQ- zC(=oDGMz%F(rI)$wNe|ML9^&gI*YzXXVW=!E}ci`(*<-PT|^gCJZ~GRT1uDE6?7$C zMOV}B=|;MVZl+u4R=SODr#t9Qx|`Z(;hvVY5iMB-JkR{e=aLKbBE3WlsB=6@rn89g z6w?xVotDxY^d`MU%P430q9=zK&`Z0E!iu}r+RsqNr3ozQN$8Dzh8e$d%qJaBUY0X{ zr5VCYlY{FpX3Err{b3 zOPDUSj0JcCX*y;fH$_Y>@i{#Gndez&9nZ(zFkI0?T+u^0t3=)zE5kjpH&7Gh_{}NY z0h6=IMxc&M3`4(P^LZy?WO$=(lEB9 zBc(`j4xXIQLDWY0iM&Egsr+)Yrv^n>(o>Hn&KUw>S$ zx_Y}da!qo5!F8DHJlDOhw+$|abi+%AHw=^UYknn$DmO3uR@_pzPmG?%y2g);7u@T) z|JD5$_sgbaQ*YB&Q?^IC$4ee>c-%6(n-k1E%rnf(&HpfOG5>5n>ly9Y*0Y=EV9)8E zn>-JAp7Ffysd_c@8t65~%j&hnYpvG_uPfeB-mSd{dH>Tp+b7N^#ix(YzkE*n6#G>A zdivJ&ZRVTq`;zZ=KM%h!KdavozqPg8YW=BJR;^q9-TjC7|LlL(|3-ik;2RJb&^lmj zz`a1Xz)gV%YP;9&Q+rnJ_iO*N_7Am>)xK2wZjg6SM9|ov&w@?{T@88^Y!0p)+$^|H z@V4N}5YLdIA>%@3g%s6EuG72D@H*q`%&v1YR1^A2=;+Ytp%=qChJ6usDeO*oQh2ZM zjp0AlZD03=y2I*Ttox{*SG{`m2G@JL-n;dd)%&#G<_Ncl;E2W%?ISWH7DxP7#P<>Z zia2fYu(YytvAkj#ZJBQQ+Oj)RiS&((jQmUFUn7enE2BK4>P9t-N{{Lvb)$Yr{n+}m z>+h+5B04O(Npy$kzeRr&UD`m?z^}oS1{E<)VwS`lXt<~G`nbVy8{)3Vw~Bu${!i{mZhTJ~(2*Q!;k0j+*) z?b~{F>kX|d+Vp8N4Sx&TeAwovwo2Qiw)5Nmz3qv1F6~CNJJ9ZIf=5C^!svvV3ICb! zZNk42@)B+()=TV@_-&GRQhZX+q#;RTlk(elX+NX=_V(A3{gRs`_edU_JTLj1l%Xjn zQiD>rcWBq)`wn-~TBmhOdo8UbePa5Njy*c=>{PeY$WC8%+S}<|r`w(VIuGjnm(Hs? zZ|R)VrFNHQUHWuc*ww3R%dUgFW_A6l>+!A?8Q~e7GZtiQ$vB#ErJGx~_T2_|o7(O3 zZaLlkx<_>%+ zJ&Z-3aWlMga_ZEH-?uNmGUk5vfqM{|#$tTN`% zWQAMsxNFKK4Ns1B>AOdYxB{0yY|N3k3*^L{Y&G0yJblSvhV~1(p-l?ggJKnWe zZ2FTY#p=Mo)s7hTh)u?*PgZ1%8U?>Pdpl6k3FT&YXqEf*taZw`PI>h@v4}&)6Pv8a zctow=q%1P(R#^b%t2)lUH8`bgk?(M8DmiONmwO1#L zzgqPc(dUo__a>O4e%O-STEApPZcW5QN9zlB?b>y$xFR~b^z@HE{&=Y>I$ALY`1||U z@(rlvmtDJdtx1z6e#-S@$BqRC2AXtkW)EG6w}*$P z+q)>XSurC=YEJ$A?|CWxMRnTNljvMa;8iX z;fQtY*s&cWJc>@7IMJa)hro(6-+c3p#bOEe@~FI7(JY}+ppWajDDGMIJ?M;7%ar#_ zR=5WdcW#wjyL$C%Vd)+Gw5k3`PFaP%PJFv|?c(a_?w98r(Q8#vVzY&6T-@AE-nEe2 zz@SUN9yoB|brqN1W=Vt@E@`SRso9(m{!-FH$desT$ay79xx?^n&R zKJWOSE|E1d=f1N>4#2+1{TY(1aDN*9`~A7%Zu&K+(sWAhSN(spU!uBVHvIQH7?Kiu zBTwmb;1BJni97ncn*4Olxq(!o=42zz8fwll=E~32xsre!k-5?#Sz)f!Y24UwH|Jmf z`q!^_3=JB%n|uO-gM$NnOzte28k^NGBO{|t9n-^ehYlUWA+F`+VRCoXvNYE2(>FFVnEmOO6>5|$aG9)J_MOcN^Dnf16R54HfdA%0vb8qLWRjW_{E#b9& zjM^Ep=vn2_OhbBPnz|(`OjBKB)27Chln`UdnKNgK-9i!*!@{E)#>K@oj0z8{tnAfG z_}gknMP0fio}acly0|#qfBZ+h`Q(NT8%~(x2MmaB)3x8AL4*2rX%k;kl7b)VSY{PX zZMw9yBS&zjx28ne>qmE_P^R+5WQD1WtSRSIOXSU4{*gDt^K;OMlU#Kf`gd9B)}Tkb zM}_9hQ#EI)5vRoJf@76=+W{$-sm@4Nm}*;Ct5(U$!EVL5xw%D#;Dm(Gu*jI$*w~oJ zu+T@3diE5xY_*GGV~c9YT3hg+{xoh}V(>*YZx@0SUw=KZ<4eOvjvP6xU&q7;4^qV6 z#ow)>y-jz#ckknWC};hUKAFa#WJRXY4d3o^{AVaki1LVXi!y5rf%pLkHp(I=Sy=TW z(nlnXNN=WC@PWTtbx*X!&pKCK*2uOYznQabXo;=KEhc6v%$3@*v`0mGctl0HxkW{p z&1C_BmkQhhFUsR5`wKqZx```saaXbf1GB3SnzxrTq5PE+pkd<7_QYAbw7gf~_R2A5 zB26-p&ZG1E^H>4XT2P(VXYJ1cuJc2U>zw5}ztp(SZLU*P<2v?uN~_m-x+OY*TtZ8< zSTu9CL|({SnZLftip*bEy(6RaJf0q^K2WqO#tD|$r5n*@M5j2MPSdyJbZV8Qwl_X2 zKmSs)B0n$cmzCct!MUjT=Di0GRF@+;g%6C;I2FaXl@%P?x#Pj3N4~zk`g@|v7OARQ zHxCaFFTa3*fS@{8bAI~ir@Tkzu*4ocdbA19<>p33g}AHgjQYBVJS&~QsWXK%X?-C3 zj$7lQ)22-u66039<^44Q6&0zesZDB$09!z1C4O4mCm^&QE*C7(TRva5Y}w{AzZRoY z@sol0Grrx*b5C~9o~DxZILx>6-e;OPKo34A&iPb2ln#Vy!m4ej}P#`9BkJT>I> z+4!g{wUN_-qD7%2r+2*8>|r8u+9F>3*`CwRx))&2=_l%*)itiX)3tU@Zp9fI7CU0G zDt#^`i@Ca=-cHi@G4wt8WK7OIGTLL(YUD95Oo&7WPw;%uUs!BBy3RG->}v|G*CS!J z&D6a90LS|4n)bdTQs&~F{?1%{R^52Obsp5X&N;4gqQ-T~xX!g2*D-J%wR#5BH9se6MMYE_rdK; zSLz1n@7y}Qckf=5^Z*k|kIif_C3i-@t8-)Tz`*cObC$2`owFyBT84XSF5&b&e*E~? zT8b_p0m&%X?3hw3Z_=i(l=wbAjoFb zc?1SlSZuOWs`=NXy&dpFU=d0Leh94k-2Vzz^2Pb6q3v-W(|P0{?`w_-lKXm4yyDzf zXC8X}HV@HqnC@$E7C>pj2|)8kteK7fe0!OCR!O*cUzV0^^Y2TG!5%ZO-XGs6MJmadk~mO{$M$dvzV#i*{_!6WdEjco+LhST*CEJ-TNdjXNR8VWl|Tna@of zDQM$JLBMZQps62yyS#RES#?T09VvO-X{t_=Pj!;wUQE&4@OvG1On;j+cO>n1J)@_O z^HppM$N308Ttf?dnfq~}dOx0y=Y~C=vybC>!LhIX9s6pHdUU(^%9Sf6w;$oEr&dr< zke`QEl>NGY|Nf)-cZ6q5+qP}v!`y{pvqfn2Mw5rPKl+B;_U|d?y8TCCxiM+@)ZJY0- zN2*p{XhlUwM@NMR`j~W8k604TZ#40Fc;u^RXyD^bkBaY^av>4|Yc=36`7fB*fjkK8vm9Fi*A24U5W>K1{W4;b=rUxWXflJ+b2 z`{(NYe#^1nlblE2P<`}m=x1uR=y}-cUO$eybiAaxD(&B2yS7$aRHW5jxuVq;7mM>Y zTjX;J!K1T}YnE)pjZbv`XT)kNidfSME3_uJ%3HT?Rl1oxiZ`LAZ7i;?XlvG_rpCm$ zy2ixVT;%^TUitir=Yfh>zWvF1$5F@>{Pgr+t*(dq^f~mt#qz$rWH`^wNtuf58GD+M zJ30+6J+$)jL!&WA-}>QJbXkR)w_8P7VZsAbT%3?YNj?usuU*5LBVgo6m!cmraP(u5 z%gB-Sn|A8cr%$J*^{da?4QzqA-Me>hT}v(8ZyzqIgRfy+$j!wG%YL=~-%df>w(fZm z5fOEC4{qQ7V<{*cIB;Mmi~0UZTwykA)~r#8S-FW*r!xi4k)2FO326ANQh)4ztm`vM zz6VBjo<8i_JfAktXjL0NtKJ_!(=6s0EvvgN;92FptT3f(&8=%^Yd`wK;h>YuXVHxg$aC8(q&;U-(x|J0xRt zUT`}`#GgJ}pGThJtp6z@a-8*@E$gd}J!@2U{ra^qpZnznKmYvm;a_sjUc7wy@@-d7 z-=M$?mmiu!a7(9oTufwmojP?~gboEv)g@%06152PQSO(O-M)L@#TQl3ul9u;L~vC# zg+@1Q7#$HFkkv?cui!-6RuMk8cI?=(Yu~}6Cv$Rgian!Sy*%turB77Glqpjtj(h8k z;jg~>YBSNs=2BI4_u0l{`gQg|8HbMi;Ota4kCAygr`f(A^SQT9$JC!|Nn>7Bd*M#>~j@+aOhA2 z*uC^~xIzFnKveg669UvB!*rZxCPHgnW4lOsP&_WW>O10Sq&Rb18K z23)q#ZFuE;yr-^}u&fmJ_9n{lnJ7mdx*R-Mr_R-@Hn(dY=F_>VIY(T@{XX2j`|bGK zh7GU0a{hdLykDEBt0x|0>=vF_t5qwp(qdWpZ;$pN#EGMgulzfYwyz@v{)k3#yRd?7{+yov{(`wc+^lM?bk<_nmcRcv)bTtUVB{qU$1kT@$9KF9xd0o zUcC+q7t48uJ$JmloVkOJ2mjM}Ide%pwA>#%aL2c*_9R|@8x2jYAbS*w^ze0N#o2ubT?=IuHR~=6+M-BugE3$kDxBFL; z!?l+ZVnjV&n~xZQ>tyBF$z%+abbYw%tv`u0EVo!jjdJ!}8arZW?1;hp?$wq-?!_Sw zuOAKb%6n*v5qey@2L`6#ce7_a@qe4LVnvqsxs#K6YEHh=_~OO^z4qTu7$IV@vb@g6 z$jlS}w<&-7TMg&&BE4++^J8l&XN6p+pvH9$bDbY*T<1R5DXLz_SqFmkN0Ffg!TLz~|J8s_o@2F}oaQjqg&viQ(t=$H{FcjH=mxyzWm zPhJy=Shuv)Vrkmcrms^fDq}1bM;qiEp9yzt$K%SCwCM7a&6^h#pm_+k8Si6!EIcsq zz6cA;QjVWU7E6t99r|?GYX=Ve=})4y&3Mvcsj9MAPKwG(d$0GIwJ})cYOy zQ&{6VIb3INjq7N*&W-AI>Lm--#s-c(^eo+9zh`M_tEi~Eck9^N&VXwrhVy~e&zfYTqX{&D3 zt~Gy=B~*s|Rv!Djr_Ge*U$Ca2aH_ zpS<$(aeuNfu=R)(ktMR+yLZpX=+Wn;0Rsk{KhGsrltycy};Cr$zMDqLS;^ zua^`T78e(sK7ILm(Ve{AyLTVHde6OKQc_Yww{6?@ZQEuvqVtSV1cTAT8y6}jjqvq0 z;MQS```y#HhCXxO7}6#~=-teIepx|h^Uj_>fBx**^Cu7N-mzoP!4obgFnX}@s-e;F zRJrpa%Q!4%#fr~XtZ3O1w;^q2tpXc)F!OZSUQmK!nfj)8*LL$$7laFh^d#<;acrKbRZU69|wijs8fk zhAZM4Pj}e! zYs2IGdU~C!_I1wHw9Ya6Iu~nNXTN=&cWYWF*S^lRn$|gBU+3WS*AXXe;t&eSuQpNS zEGvB-<-j?Iq=B2>)i*56*VV<%V03qPcQahSo{-QiA)&JH=dD|}{(P;%6xFh2%lc+) z&F10ixoVq#*9>EW&O zIqq%>?s(XOG10pxGgSg)00j5EN{0*S8-)>t;*yV6tUyyd!|@a z;&RhgtmA&* zfH6e2*nvU>ms~!7?%cWa1tnMVP8>aY@=SrTXcL<3EhXmo*HUE{Rm?CBk8QbP#XlA= zu5PjeLQyaqB=$H{RN*L+V_J9@vq%-w+tZB)%Y)Q6dc{`3r zhGjbm3E7(@1e^e21Ok*&%1cWv6#AC0eS3Am+ZH-spk+e~r345NAd~EAJ09^KvMtND zykzPBd!$Ep;*q3pzw5iczn^$SI(nXaopaykUMEf3bIFiJM&WGX%G9w2TKSCkBkH*z zQ7Pq;wQHSLHM;L;{Cv> zOJLpf_~VanvR?e8cq38JlFNn%oeugNh2uV}HO;7#bAn-~tYmkQDR}&yciuTcOojI& z0fl`jZaI&UTsKOoJxIizp2D%C}BKRt>2^i}E0$e1^;H|Anw z%;(n|!>sccuQ!IdPtEi(LWUQWtdGOba)wY*Ho>uMaEazrHZw|#sH=~!O-joN@iaOs z1gN{)WFkseWlVoiZZH^B;;Pedc(o0aV`}v=xAxSjQ%&OZMfdCxX&nU{u|l-Au3Jae zVf?vvSxQPutn#ftA$0TE74o9l{35dkJiJywh+|%A_jN^_}fAGNvpMCHFhr=Ob z&26x)yE@xjJ3H#mo~`d__qQDV_~Va{wGNBvCC)A)KG&Q;fZ`O*U%GT@5}O0hotjMr z10s<`p-{$P&69FSf>9}gm)|NMy9|@!@|Y~CY@=H+*nH|lmV@f}s4VmY`m(&RcQ2fN z>QHS>HIgc8F4vzw^yx<*?LT~O{PJI(d+xcvA^>m)<5y;HPa?fq?^VmSRTH|Ln*Y$ zId}ehG}UfTdUCElP?(af3_%>=;#fApHBki%x6gNYM+TKSnXT^V$Gq$NHfF|m8T zOgeQh%X|O*_owb*Z=14*Ra|fHYGY)eJOYDC39Dra6qSn9sc^_s>!w2D5-eGAV_-D2 za+_r{T}f-_WCorzCly}jl|4NR7HIhc0|R`m4Ftnkn45CS$I9UMf+$2zKahvXjo@ zr{S5t_KuNMdLE6Eol!ncA2S*m6TIG-`pB57>x~gc#&D*OnOu9*=mf4xssa*pA_~zg znOw{2fg@|BOzm=#N~$q}DeFn`thf$=+Q9WBNXf{oli|;;41eO|MP$Tb)nSbq97OU< zQL0%P36}gPgn<76G zKE1gladdPvv1B{5vtezA`DXHX#(4KV3b+5APP4f@i;pDrX`GGb>qY&%s%h{6CdD+E z+%v(!etI(=tC;rKYx4mna`n9P{Hy3C_*vd+dT&bRx+*yWwYonslB?JA)Id3TiQ-XW z@;hq6$Mh5iX(6OpSNW5s%Tph220k>Br=om_j=5HX=iBL=&xnsHn)AtHIL3=`ENm4A z?C>N~cix4c*GRdjf-*yn@Ztip9eJTJj7!Oj*q>iBiXXWXM)eRo4Ocz6D+*WCQ?Fsh z2oVz;FeTOQ z$VO%YG-)qOZp+IP$u$OJye%y)4X9UAYBjjq4t;#FdsG=iYihMxb=6C%@JpJQy-^nM zkgYOoF1|PH^NU}(a{cXh-F@Hg-Mim<>#cfz;;P-drBbymZ^80)usyQz0JGVp7(NbX z;5*fRrJh#ECSANw``v3r<`exzm9LNhfb)h zWVOJ>$;|7il_2IbSo7KHi1tZLp!H88&5AK|qNiJx*o7NZDxd?7M18AjHK28gurg0L z)@}g!WMu^$tur7X!nBw$mamo5NeOI-U~*&RsB-NU43St@eU| z8t^p(ZD6Y9&VoMflyueN(bGdOXkJdiE*d;ovb`(4tU2k2DB*?89oXds2BCgZ@< zd3Pl;=G^th9E^;4=XztjkulYiW1=z;&Em7)h<2WRZ;uslN0#7DNMO4z4O5F3Ceq(G zLrcL9`{8FkPP)^8K)^?pfbS;B%Ga*HEl7XQO5f@T&UKSGM>B_3G4f*5T)CpT5#G29 z+iSIYZzwo6V_Sa;Z=~fa;jwFYJzu^4`s-iy@Di5Yb=O_X;sK1MCn;-es_g99vp!ie z_|4z`_P1~Rvefl^X2t4E1gnFSSWTCjGvp{OSqGrGnDs5n?b|D;u!j4W{K>X!{mCSN z-Qf6GV46SKWJE*u@E0^E^9SmD*c2P?K$arvZJuy8JIP+*o*%sTi}%w0W4lA+(hWA8 zUX*8LoXf;#mJ1(-`))4nxvLCo;3yV%+!%|anDlU`;ot?C=)YCCggAByu zt$tD1IWE|@@2h?LghG1iS+5`635<=i)#`vd_HxZ-xKJ-&t~+=5^G`nc;>cOfS!9ZS z(8_n*74@L*v_Jp+U!H$HKOc7g%>})9zHl_h$4F-ygGVmIj~H4-&UZKx92x29Ba|vG zeLjkcDzVt2Egg$CMdX*yA``9IEtAr2$M84(lN~YI_KFtX{jG1^cLz77VAFi5ne@${ zV>YMez5Rz5UZ9P#8TTUtblFlR%SYx%Wxbezs?14+W!*R(Dk?d}*RN0MqoLDJgKk2D z!$@KRgyMyFKNx|`UVvcsUg6wrOND;pLrr*WC43YSP#IWXICw+7-4lVjeiCYAZ--@K zBDa*s9`$y|8zlUGc#|*HHnn4i;0p;=26Jx@5t^|X%*#YBpV=IP&IQldSiHGTcxy6r z{C-boPyYbHE>SJxoj(gVW@kVgXR#z0P4d0*3EHuSDu*pr+40YR{&WA4^Y!pc4QcH~ zJN6j0NyT@TNAj zNvrIp37}vIFv00XuAG}E#0@2Y7okWm=*z6p)2Y@N8FO@U%tH*-o?@srH%1hnw6Zi# zH&T7_+ zl?GdoUk?YC*x%Q25!16}%mt?w>a6r~YGi11P_LAr{DXSdZp+!Q{h`}!;;yftrw(?b zZremIqt3CGXSo&mdgeP?n{41EaX_1OI_C^g$1f4dX5|c>0-E2wptoDZ`CTBR4wGPh)harM>;e{yO=08 z+raOxEu{mOd_(&?=%cVW2Whr!iCG#>is4Gl3K4rY*g6T9o==U~&Ce=59g#6;9{KN$ zIT5+f7uUPbaAb^Ua!d&$sVf;tjc1MZLB~NR9ZD8R6sD1I;J`oFB~oe?KJJQzQ3=m7 zO){EhVWLe~l3bcvwY7`^uDY)fGIDn1W1gmE%X;hJ>u$bmtbK+5Eu$X7l|I zU^`F!{`Zk5Ovkks_k@&rCwrt!AJY>VGjP2zXCq@yUT@5JWX$N~m}G`#6FGa|^tbmc zHzlWbx9FDS1W%?QC83hr~achk}zx&N;o`&rps<;1jf2a7^jY*b91hMVaUxHi}Gy=L(8QMEt6Oy zbViGJcwA*NEj2c_^s+*dWQ3TLrPNSQt4_;93GL+WalB16pZ(QgI=Vb8j4eQPd9hQ* z-EnnO8sb&_lP)O_UCL7tBe3N7IaLBNJF2J3F{g`pTOy zzfO$nGuPdB-+dL^mAu(^!}S0H{5X!gF!C3*IHR?pX*a}UBAg6-lA|twnemx4xYBNj z*hCQ7>Po#Kf;Zx6T?Eh5lXy<$X(j8+$e1^;H|Anw%;(n|(;XRe@p@yJ`_xPyGa17; z5WbHy^l0VesGl%W_7g_RN;uRYq^!LqH4kZ!aoj${hZ{zOWU#llcOWEC#Usj!{4k-y zNEdp@gu!++T4@goH4Y@3I5dV<_Gmipj<_Ujc_B4k)ig|5A$$%UzZdpmn{SLOr=4OV z_9#LbadCzig@_7dWW@7FyDz{ycD{R*AD>YprINhv5-I6|vDeVJ=61AS$yfC3-@pG% zA7|79PjxqunX*ttoD(NCBo~yFl;jxY!>6ztKRql@S#{4n_pC~uTg`59Vr?q%di@kn zCevNI5>za}?qZn(K7fXX_8}sP#m2^{6a@VP1Iw2dCdVrS-rH^~(S_PRd-c^<_qT;~ zCAXc=rV4ABH9T4yI1!DI&5PeaN3x#d-AZr&$UK*DR1n+cwWOnBZ7)mtR6;rV4aG$? z;)SRyyplZO68g2-4OGT0lOFl$($j~Vg>A1VqBChF!>efKiH+W>5vfF?8%1iaJPxeE z9&UgohZzq1h|~xI!GTjL4+P;dRwrg>oAFB&47hkbHSow^?!h0I!+-2GV;kQ(Cf8VU z2ibCMS_$msKmYm9)$B~r5>A4lq!rA5o)(@;ImOdL031jg!Y?h4a`8AP5FkInnfN23 z?K2pda~b*4K)8HkEFoPm2J6hj(!*3E99N})CklH@#XJ`;)CQQ^LVFchsk#M*w8b!6 zVTQFEmNJGJZ5CAuII@Tk;+gy^JiLlOn}yMdCxmG^VNES$;3{X}ikk_pAyZs?hYab( z*TN@f;G0~0W(8E3yu5IvRlNP|6oBOnz>}``S#-zc2;>JRZM^A{QXLs{X>!bJ2D@l4 zr(|Egf4CqJKgO*178xynhxzZ>&Cm!M~ve#S)d#Ag$3^kj3COm*JdNEe&A*2{D=zXH-dwa+3!J91etZT`Gazrq?IU!S-`$xkgA1 ztJR0y+B{VU_Mu2NttiPg${%}Rt;e%!6JWw8Kd_(r~zpEAp!)Y&J z?##5uD^A58k30!q&Gq(pLy-ux507EAV$?TxFM~xYowp-4rWX|#v$zVQZO)uI-Q9(S zsCbrIau+UHX-vw=bFM*aunbqFwQW$0OdhefuC5kUvW>mrR30)Vzh^HWOLwCrbIsG? zW?(`^OlsLSMC@BzOUW8sL7eu2jvZIZ(K zq8Rd>{Q^DtzK&!7k+W^rqy;e%ID{Yw9V7WZgHIma{lOpN3Z&IdLqs1&CpXujlky64 ztVwEAv9Ddbc1ga&Boqowj$*K=nD%jH^TjbhO{ZzRfFvcaB#hZrG8u_&4-WFRR#-k( zEq~Chk7O{VIr4_6xQta{3^#3hGC}J3HMt&Z$*ydBJ{MSuMf%3c;DTQb#eQ5 z7m;5^&?UbF!mr@rk&LI@g7;rR#?zPW;f$xNgf|in@9)>kH=%tSka&B`_8ieM1!1(Ok>7f}O)ewoE;4@-&F%3`fuOBTYR+tDYW ziB;1R5pa=c?-YuOCMdR5QA$1_zq*QET83VyBiy0H&Mv&Y2T- zxIn6YdX+^!b0E-Vn86=Gr{>Wm@3JWzb0J-ww6zU$mC*G{?rIt)FEpD=sYh@L1f}Fn@+KSZ-EE6t)4WXnO#X+wK|TEB7EGj9$U))> zUoRoQ!bv$vFF8lv3t#6*FD0TJ;Y&m=lgm^kRaxnzZoAni+jMV=Eb2|6mtT^c?2=6p zFqaa-)z&7mmE3*z-6b|r8wN$zA`0#{dM#o_E#H#=700jQwES9D)3Wd(`A|9o%c(VM zHiT0KUn0N3@)BA}z3OrG;I zbc87!AfHIiFOCy4bt58Eak#AN{{`uuU8_pL&7%8+D2bv5fRZg{YI%-|^o6L!qda zIz}C!UZ?(t`aSj1UDQjseutaAPQ6V1mih(tQ(V8KeuGyIQ-7r%r?!NzC-D9^R1eF- zDh*#rlm`#mK;1*F#x+01zoAh$>iozv~M!|K3oA8 z&0M0Mjm&N83nxYETJnGC+}^;zX0V`tNF>|C{FM@2KCg%2;J9S!Gm!mBdP8W#dX_nW!%@iQA|_mYP+Dc{lq1^}H*- z>3K(6W#N$bL>!s%ZbY-wqIphc+NIIo-yc+4vI-VTVv?*mrKP0^yqgm3_89wox>qlq z3TT+J^B@7C1bzmD_%aYdgROYU-Q}<^=xZ;Zj(G3bQCfi=R3+Jg z8zNR^5G`6&_d#ns<{7v!!d+qjbJ&oj5 z@-cm3+W!W(0awEo&=iU=yDmB4p<%+Iz%)#gHPPMk2G$BUFAhg5(UtS!Q|;w2I&`@4 zFT+vG90Nv z-&;dKppS29^%I^FB5JT?t@n6}l}hwMHf1ifDfyu`Ozu;s#?a$iujH`;Ba|eQWG-L6 zSJ%v~{U?%oF9!6*3(i~^ky=XOv{<_x$yKlNnwuYAz8vYju^S(~C3dv!OU&oj-V&qJ zd2%ev*W1y@TTV8HgVKz2Pvl`mFe3KAV0TASEIh>*j~+dGvCBWu({HxV%}cj{pE^N* z{|E6KeZKhki{K{RD7kPEdc~Hf$I1OTcc87!K=+u8HR=>x(x$2JG#=OMJCC~)g@MLP z&N)V&=MbH3&=wf(>R+_&kq7VDhUQ|6E&cufz1&Iuhu7b~eEB)Rj@bG5*pA1`BKCOv z!;8}7bl0q-N0Tk^GT75>27d5p!r_y4^m91L^qPozjguHWWS-jj%RC;1UVri=W&_tH zPS@+x131i7i(Uw(P-y-2whLoAbyCvDt#oSZus@p4Y1PH>>3 zB_3^$ytPQHz1+{2#2Kw-y)G`M#ukWg_fUW(hRZGnv3!9HUs7(M z^CT9qlbr#n9lkKTEYOUZ+Z@p3=H}8TPCR4cAbVD>3Iqt7B~-(!rWUf;BoI)^B|<*O zWn8(^nWE+QAX3o7*QPjES}fAhc8E^|O16Wh{64R5^hMuTV$VuW*$`jdzl8z0s420eua<9vBM zq%dC2=aX?t4^Bz=bS5))wUS4cq{&;*zPUx7wgiQR{|SAf?m7C$KmPF>ueLNoWhCu} z*S2WnBc=LKYtP6)OKTfV8h?N-Q7V<(!tw4?@YkH`9+%kR4z^1nBb8RZ%_PAZ9SU;7 zL5CO#f2f9(m*;9Y19aceDnBPCyWE}f=l6X5!BAgEEkvbpn6FERkj&jOwRjprQfbXi zF$zPW5KAD_CITt5Mk*X7vS$ zj{5Z%+$=snwv_e`aO`JdcVYc@OngFS$njRL1vQ#Js%N9a5!2T(Q z|25qsWB9}LwB~VXvw_9po-hw34hgxm_E}E2A8he#^{Cmj{y~;VWhI?y8O`5W%*cIQ zr>`okfyRV7Q&aOmh^wGAP*UdF&dx%m(tVZwIWwVu#)c;J&l%5`zx&zGe)efID>?1+ zFPjDhRwUQwmm!(*mz*j!o4*?bEbR)I%Tb7?a}fX>X3xum;*rqbK?4 z7H@ZFkI|Z)nG#1UK~_)CJNh-<-Fp3L_r&UYBi)nG*Lvb$W+J!e?Ca3|ubpVFzfhaG zc+1A+3(+PcRfs&K(0`B&@>5PjLq^7j?y0Nm&FG#uhBIb{zLJjWq9q+2Qmyv*@q`5T z6wPz)5AZJU6`VUaZnyvAA6vJ&XV5!Qx@=+YnBw;~)#>D+f%bE-^v-sLI9hd_L7~vZ zC!%4bnyqeb&31ION~NI7ctj`PNb95wc#eFL7RU9Rc@4aL^+-)8M{3Wt$LdnxA)aHG zO3ze3bZ=d?&Bl-fZRo=8vG|8470!~G6i&qd9F2}e&oZ)6BfVH_hYnijYGoXuUJr@W zDfy)D0vLUvkH{Tp9paF?!}=!ahWf@v`7XmRefI5pZqsSSLR~@{e91NiX$p5bX(DlJ z_UzfSCeD4ewh@_bO511|Zbs|A1gAgKqH zGQ3+58uY*`?CBqEX>Ntm?H$E@!wF6XV=Pxn*KoxMLp|rAR?hc? zfuZ(xP^F`HIK)$eEW%>qJ&&WV&U?{!8TL$?!ab9I@z0=NY%l(`qjS*TapeL;qsAMO zSs@e|>qz6fXn*r=BZ*rLp;#S<`$4-1ZdSWQ<-x!}ElenhYsyjPJ%qYKzOZ$4LCoBw zdN)tM!hB|_+6kkw5~Y@WOC#A#m06ERbnESmOzdRtksiGVpTA~}Otxl?GEsywQHe2S z?p%S`l#~lApnToSWH#p6B5CTMPxYhiUrS!7(4D$Fb| z7rJ?}vM3~`*49<4yxvu-OmkG@*?|h*@^(&AGo^Ckbrrk=5T{J{IPt;4mqPKfoj-Zn5dtfij!Hm;X$)G zd&v^5_KrJ9zRNTf3pM)L_Nmj-`h@-cfP0dHqA1*UK61-{%(L4UR#c><&`BWhA2?m6 zsn8m6B3TDAF*@W!Ls9s?%fR;ohUUdx;_)xDATm!m_fmbfeJc^Y!(C z`UZnhuMqTUeFL#z&OqI@cx7JEjK5PZkJ~Nc_&V(tji3+KPcJJl7|1AEvZNGd9_sK8 z=k5vwa&x;KLb}e3=WsZ8?zG!W>FnxCve;E<@j#pkt;eOvL|M8XGqWT`8ukF#=)H8R z)gbLQ_jr@RIq&Ifi4nE{X4$v4W_4$oI5=gqj&Lq4Y*?u0SmoB!%)T|+U1mN*Ka-bq zR8>`Vjbgjd);UHYHe^mpFY|gcT;Ip;ZZkz4ZBB2tEz!)6(t9fJr$xc*^MX`;Ep<G!0Qh^R^l02ehxKb9)l}LN>zh0>WP8|nMshdsw%3K=WtSCDNr_CvYJB3b*Y2a z#2k`A*4bHleU?iQlavE?5_`stMOcE0aP*yEr`5VM7))NYli?G4 z=c43j=4#ZFmmGaceVfI>8w!hs23aq3b2oXQr6q9sbaOvlQ^x9VKJ8Y1R)?v0Dt8St-edSVVFYGEX3!WMWyb*P_;b>i967e%aF5d*qZhMv*|<<1y^M<_3d?>uZ8eZt_t$ ztBgXA!Q?<-oGlVcH1VKgRdwx%Dt<0<3(A(8g)~)t2py;?AE=r-)?0(JqO<2tzxswX zTb7S5BC9Q&mg9%4W@+mYWFa1D+K(7u{oj`?-yUZ``-IKaRv95(fxtR z4;4>7tmJsXi0WZ5Vz?TN2+LDc?wB49gk>gWF4Et}ea4s>5#R z=|Kx9bY7;<9q!G@=tU$X{2S*E4?VuAre^i({k2;cG&OD7L^ofc&mFE?vV=Y|fix~# z*2p|T%D^vU;73V>Gasj4RZ{Wsd%5*5r`>}F@9f6;^BW^{pElm#mG7Jw|8o63Y1fXA z@<|Z6KT4jkymxC@tkgQfs<&}iOFn0`|I8z;N|x;kMy|{ z`H&A9RD6MGe8^}}O9kw}kXxB?>9fE5TJ&KvZ3I$C_ZEx z?rtC(FHb@5EIk~BV<}d>j7RB|VlvQYLhATlyD8MvP+Qf27K`-_RkihvA=CW%#Y^t3 z*tTs`Npf<@rfu6Q?psofr0I0rlg$+k;5LZGWXC4ZN#^L{P_0Reho3M`r{s;wmm%ej zi3?1Fp5NEUAFF9>ZS5Qti$^ch|jHdEgK5i4~_ z3fEgx#_(7=FpwgT2S&haOxPFPYv;ALwqM?N;LyQungW5QZw?+huE13g8f*5StB*@PGjkm(4)0aFXzf%J|AA zV|JZ(fk|MJ;zYxRL|;vK)tmL{`g9YHGkk=H+-fQ$9V_ z0&~Ii+3SK)!@w4uSrcnzfNXRThnpJ3TKQ8K*~Q3D)F1mTCly{RQ?d*!G(U{NF*pj= z07AX3-J&1dzYZ+E3uiP}tXqVP^tlVRBD`v2H`O%Y1gG(I^cl3TSZ zlP5LA=i>ODOvL~qEa#hL%aMWj8ft=mg!G8tAU)zl_M;<2a^I0gbDJr1j}C9tsHwtZA}lFr>FOkIf41fwfnb1_~@KR)GG$bvZ*%C|>{Ytv~$X4+m;T zAzx#)r~mfbQs6hk%g)e-$U2PDZL z9ew6ZB$K*SGtoyq6ZQ!+<4z+P(XP?zx~O)QUhKMW#w`QaMSOD=Ox`{0O|*6>=FE`4JdNii>*iOt0he;~r2sHZ9#2N4SUlXGITcFafF zGruvEoe;k!uF=gk_HBJ=;j&WlF4+r~{K>^R7rbj7d~-jd63#Ikd6mK9RR)WamMb+E zV3A*_xzf_r@5k5R-`@WSN5dR%Z0iakb{Ohxxpeekx2LVKsS!&P{S%t_VtxC01dGnK z`4Lr93?bk+c=YHuM~{w-kYlbApKoAjEJ$$$(67#Iiy@#cWLWX#(@_eeNf?;R5u zu}+%f-hOW%-SM|KBu$39-zExloIWm>1P6!0X$nJweb|h&^aZb=pKJZNP64-@p2v%e zJ9P@ZiV-&MbCsMrb-uQ}caR8>qAVoCJ+;+mPPYvE+rE19%{LD;_Kq8|ok)$ZI(Mq6 zskN)Oe-tg_q~ncen+gh4y~j}CB>SdUQ2;l3b#+INe{8Ipq3}+I!VfYO&aSS$0#G~y zBP^L(Q`_Jh*1-Gg(B+VUHq>-A^~hpja9HH*;FT(gh)dDU12ratTqdKVjtU;{;z?|K zd}?F<;%8zwQk7C5slOuBBo;$AmSpz&p>03-`WTkZD+4S|T298H6TQ4VRD7+?dZ4rJ zG>CSh-ZYo?D~UZ{KkE#AkK5Bf*bBu}X+;#2!_(2>ZC(67-+2D{=Z};46%Qha&Qob) z_3`h1Mv`yAaZ=$lT<-1-sQ8NR|B@IS%PS}|BwQgU;iGV9Gd_~GFOOk0u~x7Z`Kbza zr(L@-Pu||n*Mt3iRvbA;pBGFLvPOHWfmwC$==SYFgA)k@PD3!O$iVLYhK266h{;^fyEA7Z_N6?F_?0N`{7;;B!B6;#?J){518A5~1qK zmBBF;_NCSYgBr0;!PvOJr$wt}1zPA(!=<_=c$|%>=A%u!B~(xl zuVfGQdIyF_Bj8SGKSeC0}-faMV8%Vza~=gW<}RQNG$@ zPqmukV|aT@RJ=OK)!#lnat>H^iA?r2cZ&Er$6B-seEfm!>yY5H&?+1|f6y2&8$E}E zlivOK@L7y(BQXg}pM3Jk$AtIYzLu`@FkxvZ5!`iGp^@EQTie{-N6|Z0lk6XVhxvNW zCrQQmOKIuW7nX#D*1E`fO-f60=Pxw#f`h@s(9hKAp( z2-DD#MCS-0nF)vZfS=f+;Vb-78yQ)9x7#aCz1BJzSH+#2xN$ zxX7X4!|bh1VsT|EEsh^%bNDK{(|sdOiENI|gO|0WK*E@}5AS*YEfCU9xic z^y#c}o=PO5D3L-giyYO3U8+a`b*d8c*lc1+BD6P-h2BNXBkAYkf8j^c565$p>dziO zQ`6Glb1AUDZn*XGg|lZbH1~9}>(8G!agN>5?rm@VJSoUlnXOhSnv-i$h-fxyWjwal z2w#DOJ&bh@gp6nu=&rB^jphKdeLj=P6@wAnM3aPXv5btcl6c9OtQJ?LR4gW~5=kqO zNHiJ=RONxs`};pXuoov~mXx?+?DnLjJ604}D=MT?{kD|dk3UW-@FAm-98;-|5tVA` zQkBZZeeQ>B_79(9Y~|>FzBod2r2>usdea&q0OStGe*3*hP7sI%W35MysIsz#6debRN}q33Oy|ug#iPEh zZJ&J7#&CX0H6RTDi`DFqBWH+pYG*ELH6zp#Gt^?dZ_(_qW(UTy^g_9db808Xv#eqR z^9j_nh3SiAR(gdb^SQ_#F=_<7AYu#sgTrIvP$xVEj(gDufN`=_P zox-C6y;4Z>a#9lHs2KJSL!kmiNqkyP`BJqy!9E|wq3hPHT)q^xbhgv^y$3dyJ^i%9 zG55*EWiYINiQ+Euv@0hR3IubCold7+%^T|N?(z8ti3E-+m8zbOL3R;|G0B>gU^L1@ zQ`ucfTeRN?1!yY#$Vr8%u|R;HHA6!qW9?0y0Bf8lG$f~Zdf7ZPYLN?2c4#TU8M1Tq zg5k?B<6FcDT8$3MP$f=)j}QGkT}2d^FOteeSt3Dru{9{GEhy`J<0MddEDA zW&SR@eKIcn-FfQ4umAejzaAM=r)ADV>)8A_wHoDBWpwv=N`wqfWr!!_^HgSNQCr+c ze@A@vxR;$)R(AY&vpjvt!%S#h_3)B(N&T@?YK>ed;F92}va(YVTW}euLQ^K%fyE-? z1;^0A2z8^eah+aDWGq^-VnvZrM0(m{^$Nc~JsoGFo3S1WM6wt}RTaYXrxE?FK@ z@G{?0CKIsWq1tQVjo@USs+KXKQfJRakk6(ug@L{iV&O?mOXFt71z`CmE>q88z(Y{9UOG=C2!7OqvS+Nmas5Y)#m+riG zNxq)X=j-#A+=je@uxnBF?ajru6&23(b@#5Y6;}Y;|8iwvwu6Bx4Sf!hNWh``bm`m` zD~gT6k;`Bsjs}V=UeU)**L8+$%1)&%_cXF~*PYhz+ya=LK#=e%2CDCA5%`?IkMHic*M z?9XsJ-t7L?b6=-el~f~6}N)#sP`JSd&oeJ%) z`{{4uK}IBtD-=tVNE?PPsHqB8XMI2%TL{QX@`E7)Z&$Y`EzRS$kN6r+A_w3^gKw0j zGrhgPX*7Nv`e&?-8?E2>rZI+d;K2D~2M*Mq#|g|j6vA-mv&gNOTxpq~(H82yepSu` zjCe}EbJxIduqrXJ%D-@-pW#xpuUxb;-H6CXi=Qpl8WGv#NRwdTdA$aM*9)yHbQ%2p z<8bThWvmltV2WPo9Q6|%iRR77@VaG~J#AcLY(Z&ls}zD=MoS8D2^$*=3K|(L zol8oRLMRa!)b;2wd-VDq0*woAnu8`9O+0k8x!@$vXjirWZQIU+2lwn5XT#@za_7#a zn|AJmsjR!|NIH^ORh3ASgeFY{hH2j98+e~*i7IzGvRgHr)H-Vu;WVzly*i&$c3|OQ zMwdptU)Ok`I~|&^2fA^6KCA2iGg8Y?M9WY_sBaGDjyGXPq;c^tE7JUz{m2awW}Ft@ z!#k6?6Y7uuk!D5TzMfmP440$*2Np7Si0kZhI3(jpLmHPD)6>(9SO1N>8tYP1>$$O^9h8&5YLC@VYQ^{TUOg{Sh? zEVcLf=RZ2vi>0gg+(*wd5Y0+4PyiHz7akM?6*#vX%KQ6lbfB^5>};fuyy7?H#y6fY zO9tG+hK7wB8ycFLXgYkgvf#+y=bIatr%t0JKJIW}cS+yjL}Pqz!+^x>7UJU@H?CW^ zk-o#( zv*Me4F9Wq^s{GYrgRuggM2z*k+xs2yZ=E=y(+#=dHs+i!s(SquXXp`DpWW^zXPu$PsY`Ql zlnm#8{*s#NjY!2**sg}hR#RgGjDU0|c!cGjep(J#0WmWxr@?j=Ji--*MqO_1dSOS0 zo1AlozC%?N05s0af3@5D+^A^bq#sV*d^;>3mg3T-nPC%N1&{#oZO46U?;{<1uLdOC z=7O3xuZ(yL}x?Kg2@GAb2O!V-h?8g8a=Z>vaRZ4LA zJDhWcmtK1rTxEGvQzNkDISGO3NER_NLM6pKqe9*U{1-X5&cmK<-mP2UYTM%0Nu>#y z^O4svKQjT_?8(2~s(Ep6s>aRR^7PYBZ+T)1lF_z2u?V%(`@+}rZqCSvdEqvugRNlO zLi5PgFRB@MkqFA{UmG& zDb8`TS^n%4H+v~5e8|n_9$B)5k;~{ln5mK?Y#SNMakC^j#e4B*J_e7ip8r_{-l%Sh zWoXCCB?G13UyhXZpSbzzgd{tr=c4YJCx>bMr;C$^R7|@O05Z1zwx3l`BTb0wNL^qp68LHNlSXOcv1N7*`O9pv8X20q#$=DB`qzL z$gy@~OPp#?TUVar*07;u_b??3R?z-Q?9f-&lk9jW7Nzqt=3@oaQP%CBBIzl}u z4#O6eoZQG5B3V;xNl8zi1DVOSXr5v5We&IMsY}W`KxaZq44N*eGiD- zQ(tvtzgwbiN?yBUPIjDBZ{7UuayZ;yK_`k|QQx~8%hFoKbN}<_7k~NRe>~O6jZ<<@ zy!Yx)oS~-}iJdd$nYyule?N~J>~Dn%_fS_lb?VV^JU{5x1p*^Ou?g^mYIwu&&GL9` zg^JJR2HZN6Od&8QD0#h@L7gGKa(Q`T2DbG!x6bGD_83vEY}fPsa5J&domDHw!CB1H z)0w9iGZ@F1^(Yk*m=~2J<3HDto{?HunB|TM1jhJEA(zN>`efMVnQ1{P;O6bf!C1$N z<>=G%CizSF`YkYjj_k!Qi~j2|H(E$aEzWsy#4x9DG3d8q+3;ZW+0j@$BLVo#1FpTu zgL~JtH_VOc@0W$&|Iw89quG`&Y@!g$e<&KukA8l(_hT8{qY=5QR<}y5aIRTbI5-3g zU{GGW%1wV-9u3VsQD~yGcw)yCU0YD6J-NCFqpJ%(ICXuw(G#Y>pG`xsBnm{ZWNA{a-fbQp;UXx5@4fk+Ja19SidPq< zy(mOvxe(SB3yWsuS3GiTgb)_;XX&#jf5l??g0v964dLSp^A{Ct-urh$h(Pk|Q@^-q zNr`L6zk3SNW}*=OcP}n3SUk_VV-w-+gtr}*o=wmA?BuJE9*+p-DC7g;IT0kT7FPAG z*`Gy)BGt-z@*Di7XYGY|gZEt&M%}GK`Dy9bZK0*dqHtLv_pNzTp z#FCn8rw8}`L0Bx6%D?ow3CF}iu|fcx#`BOD5kv1updXKxj$JyTFTH;L? z9l0Y>#EDoDMVhkJtwILAM^z;V>35Tm)+0jth6rhyK}^qF?v5bRun*#n4czfJA#J4Z zJAgZgNxrW0>JSk~qn+zRh>^DPImh)eTz}k~mvP=>vG;hb_qdbNwB_JrF%)-{n20-B%*357=HV_7Dz;^Ue25KV3+@haC+02DeuHfcvAQR(0(fa+;jR`E)rQSGA3Ww%H-*75pWM ztHf|IN!%i~lIDZrNpV<|iW5@Eo^p{~DgPqhl<&!(j4sA3<4)r_EhGF=W3s+KFfV}``qvIw9m^vfA@Lc z=NsQZ-;TcBeDi%5`L6Wc` zzjVKzejEJm@Vn2i+TY@ze`mkYsz<9qt;V*xz14fIJ`PF@x-Mv5(9=OL1-%*cUeL!ul|i+^j^H`LHwAwj z{8dPBNbiuTA+tk@LRN)r3fUEMAmo{lmqWe^wS~rqb`I?xIw*8(=(Nzqp@%|02z7>q zhqVjq7&bR-f7l~o&xE}k_V;jGcv$$T@G0T5!XFB+h-eqlH)2G@@`&{juSL8S85-Fp zvVG)|$jy;^BJYnp5_vrGpOF=j-$d3$b%^R3)h}vf)D2NE{R?j{X+B`4j)IbBi51X$aY-i818u7@rL7_7$YVzCOu|a%-opb zn1eAd#QZDf-!b3EX2#wU`@7iFu@_qJY;#B3lD3bveXH#caUpSo<8F%kL);5-U$#qa zH=y16cCWU3KfX)+-1yb;PshI%e?Fl{!lZ<|5>6z1nb+Eo=W;6 z$zy(!Ba?HJrzLMszAyPN$^T4=NEwqdHKinFPs;Nte@l5U<>QpEQhrF4sd1^jQkSPb zn|ds@BK2(Q_i0_y=A~^-dpzy+w9{#4)7qyzeIFkY9~&PRpBSGS-!pztd`bM13GoSu340UvCx#_PriK4xFg6KN ziWixpCw=&k43JSWPNvF^GF^6)J!F45LXMR;$k}p%eA{s7l#UvwEW%>71dvi{+&WUK zi4Tu=#JABY^=OvTu7rKwlo$nNJJR|TuHdh}sQ#1s;|&4pm)Fl0;xk6;&pIo=&!RtT z^;xvj>3q?7*xA?FL-~C=<6Smsdc)5MFd~dZqrK6` z7-S4F3JqmL@MkPGRvGJ!&H5bIxLslF(HEOJ#%5zj(^uI=c9r90FF8w=$jNeo93Tgx z`{v0^S|~&ImRT}e7RrTa!)|gCZQKg|9xkG(?F5m6e$Pa^=ZNmKa$hv*Nc8(ywEHz; z7TSG2y1hsakypu~vY1x511-NE9lsR~e;4}wUbOoo;xX}rID~G0Ui?+Oj$S{CR)1G~ zgjW9)o&JR!B(Il)&1;?g!msuh~;9HSSM~4YZ<9Fi#=kexI^p`zZVaP-ywCki9d_Kh!@0*j8BK< zjp7yYfjGgq|GxMPi{f)e50#iHoOn3XI3$O!us(*KO;EuIy< z#GkM-o)d!^F9(U2#4tw8tHs~M81beU&G{9Q~CZ;A1uOiU4Piy7iWF-^S3n0!i1 z7yl6X;-6xUC>IN{T^5PO;!8&8N^z6;H+ITO#_wZds(44^=8s7RFcfG}d_it@zLJp8JUqW3u<$ zUnCpZ-t$1>@$sJ9MXLP7d)`VW(uQV!f~e)q-g9Lit@56SB1?*qc9A)apDbKj;iN-Otv^!nS7mRRq(AMu2F&;2=5I+%Ks0Xjc} zk+Kq6EME)|MYQ4U#^VH9V-dZw!T)N$t6sVk-%%XrlIs$rrs4i3zlmI#Pa96*j)rhc z#1h^62arZS{ryJdYbp27Aw-Fesf5~Df>dVkSwe_nt}N!-5~O(v=LW9V_p zHdN^>LAwm$N+Dt6k<=pMETRA96Se>!GsHrUv-n;}cvX&gQZM9KK&W_~0~K}xT4@x= zF{G@*Hji1AuPKJkT$`-#R(VsY$D`ZQHSx`I)-v6O+~lL%^0`md#Y|k4_Hw?fnuy0w zrQ4sLr_M{LllcF#hL#iSa&lEnoh;QQT1AX1PqR6uQ=TGPvmw+R!sS!HCG=ZW{yAJV zYpEEYbXs~P(mWpD*@RRrTcmS(Y0M2VO+>ekMMj#pbr&S6K?W{ggPBN5FJf2iSj1-` zZ8iKfHv>s)F=aH%rldQb)G{H9 zGbL@Rotl>=p3)U_*8;B0(&77)ifTnAsY){2U(#}Oz3se|mTzbQCDBd2LCI4~pDv9O zzJw7-%>f0y_d5E#F=)uBi6V1hen}x?t(t!dEF3jYH0b9(jAB+sGk-z{;_KHUguHBs zR{8l0OTi}v6gReNj+GWLq^FZw?ZLa2o%JtK3D_jd@ zvGP%6QfKO@LWD7wnr)mmO8GpFHB(}A$MSiHRgA~w5Js^NiP_j;CiPW&k9#ChQsKZ&2k1yL_N%==>G z3}T37jNicsf4d&zcQe}WWnA8et@60GRi0sleU=gbIr4Oz5%e7yA}7-lYGp&QjND9Q zTxTvVe3;`KgtDN^ql6zVY{kAgjs@at=~nBsG2^|ER+hV$|SMP z3~@gz3r+E-f#wtFY=`)xJ^Q@T!$f--^bt*$)Gca^RwrAoVWBoA@A+>+V|=bFLXsS|En z*%7ym>_AE}%-z~^S3?htOhom@Ao}C;^o!T{IFQVDL=3S8i#EjQ5N)+2 zCNi^`EIJ$eMK9xfVZBl;F2e5Ro)<;*#ZZa8ED`7{bxfer))Ma5m_yjMBDy(7757z9 zt$ny=h+Z6{WFOB5P^SFA;QU|UGI|JK<1@l5dSApOkzrYY-?__U$tK-j#;&gU?4_JL zxF6Ja;}4uSC!hMbnDd0$i*4P&G3@Cp;k2+>>V@CM80Dn#s_?mlVi9XJ!)KQW@mVKA zEaOOfrU<=KEYIt(8S=acx)>eDFyg#{FjFB5Tl`m$AJ8Uag}nviM20brHjNjZWunLc zKbhz`3NJyeF-G}&-j?y6Ph^H?t-=_@J>U(WVZ^C(k6SLHU6<U60aTq&;$HRa;yDwUE7FmTG<{4Gsg|95 zSAJQ@QkAgFZ&;K02$`EJI?77&@<-;=MVc(ZRA%gj#IWdzolsybW0*2Hlou zM2YssPr|`^k3(K1hAND2n2SFs5>=lwuH||mY5dJ|##k*f>Fb?UK8=B*iI=^n4rr_IfWX3`STpmc`?5OSOhor>(0_ zv|48wBD7VCZTqeoUs>f!XKc?fM_E>NShdq*ZH$;BW69MCR)6M-_Zj8Y8r0LQBjsQ* zcNMu<0dcaO=qBUE8S#@EwM8D|b}}n|A7D}agSpU$tg)rB+SY-&Tu)ZuI?2wm3$wl6 z;%k{MUX~f+Dx~I1y^@$CyJEr5XC<#2>jewN0#<^%Gt*wg3ff?1MD>^$MN&N}I?F1g z#7bH$d#QOBPdsm89kCCy`4Qs0?2G)4l>M36{}UT^8S~wxdgXGExLOVtqnRs=Va;(E zJ?V4iE93N<(f{HK1&vGJb zdQ;>iEQhILjhrIZVSlV;-SHaM8>cY~zLqt|>sg7M&P?_?QH9;|5)yK~oGJdzYU*s( zwdcsWtfbCo)%ixff?CKL*AVf||vD_|>F16##v*ezIdYs3-px?W4WRj$Xb z+bB1&+V=qKtq~#;n=l#+Cx*F6Ypk2idbRB~xlLJqtcBh#?~uD#u~N^!&aoo5NA6{X z?k;S%eXMo{v)&oUDxnXnh>5Ho{*BegR@j(f*jFKXCNluJx3lIsgO$U6tP#G6=6PPP zXFkCy<7=$V`l1Q%W1>+rWBZC2OtwS4Nx=I9TL{_+6h;QjIe`8)Zb{Jnfg{y{!0ACZsB$C%wcArHzw$|vPh@{oL5J|q7m zpOt@>&oKilXI*wDYr&^jN&OcqiE3r|6XBH4Gb?;i9=7(MSzNHJz_zq-erDFdLAL&j z@@Ewn725h2%`GY{xG`Yh?4pwVS+fcXORR%t<#UBYaZ!GWb+G;xFu3u$ZLs&&!RD=I zl-bzYz!Y^8}1D{ym`=^Zq`xxvzC?=SV!r&%?NS^SVx<_qnr75&9w|J zoZD*5yrqS6^NW`*TA07I#5Tr^)jHk`KfYP`+-}wh+E+)Koz-0(vj+DVY@OH?Dm$yc zb&{@*R+CypJjt8gNoIC^Cl${xoNJw;BMh7}Yku*prHke)ELh<`W%m4n;({gfmsqFF zEzVz75O__~Me8-%%X+Q8E#TV5TCq%=J`v`@LTi5W<``_t_okfhZH`%ucUfoaj9Uxz zA)uh~f~~-NPeJp_&CUs!+Ze=Wo@$5r3vBbfLFYFMnw^v9t@%9bLbE0pHq}v9&OmFS z>08*$w`(^`0qs%LqS}hg*sUy+s8%g*7Ctx6xusm(rkxS`nG^ojkRLSFGyF*HCFQwSfB%F zuRybw^?67^Q(W33sGuP={WZ9$DZKaU^z^yi+cw@WW-;^^>s<42qj^bp$DBOVZ;^Q@ z)Q3Q`_Pyu2()77q-_o_4_d?11g|p3a_|Y)h(^ljyUx^vUtnsFssdoLvGH3c6SO6t~ zMbno~FPT1P`uyo7q0P?mE0{j}5}#sAG4~cvFR^eBl=z`U%*0m}6c?qJ%&{sD4kgRg zH@}j3#RclSZBEhBVtt&yOkZCze}%ff1l?4qP73C;%|!($oUbF$a+5irhxeH6J?5xm zc4l5zW8iqxtAD2U%F8k@Wo2gu@{k>Ra!t2%DUwh3iT3+b&>0$aTESS>}rkjo~CsS*i%$&?Te=Q2LiWbfE z*TSXFykQ0ess_x-9GK3!q1VqW6@K3D4e|B&*Uj7P?yhEtEbkrJ-jLa5SI)`q9+0p0 zD-{vfUYVh;{tn zuDJ$XwB~Bzx>`N4+*rVRXyT&$;u}Tmq8k_8$at)-sOxHdM%i~NE}tMohtV{Ek(IqT z9F_m=d?XfvozDoYpFY@5+5RQ!!)jG3W29Q$y3108TgCiWN~@vvv;4`z4jLI_+@sG` zd~Y&)k>WLjeJ;`;mo?Z{PB;x8z&lU|Z!|;sy#g=5Gvu`8{v=>@ZW~;CQ3$aCKQqPlV&xU$7Yx`1H zwtAA*k+%IRCfj}$t8b<9!Nte7Qu(lx0Uy1e0ay7LTa^zkVT`TH2de}hTvfVL`25#7 z3d&M3**@1f`dr0rO;kR(#BEJfK0f)%2NxfoeC1>OUisjv9Q|JT@XQ<^T$LjyKGt8X zoop?CrYrrv)p7r*(u9_ds?4=pj{o_Hr0xbxAjx5 zwM?J)R4(7%u)bn_LA%dr_n>wk*6st!^@h2p*|`e82mc*923+fAE8_{f6P0V8o9-%W z2|k6^dAKvRd!2SopUKV6$67~N2U+`Qx4U+;wcA;{soIU#ZmeBJ)&JRyy?E=`y8`F%QsgZ|#~s-I~tnJ>;#q>znC|&h<_9jl)}t$EA9v@**qyQarEE zpI7HHPFWo?&cahGTPgNmVCspN5)wxR5x$22Yo1pWYpmUp`bDN-ZlAv?)sLpMIzAHiJHc5v`(qWQxm>7Lk zkJ_@AE=w5?LSESchdfyw0|e<-%0!Lx4cAJ`*rI3 zb?WibnlL)%uyUv;`S>yS6=cy8A5Xe)?SV3q$-I<_3`Z`NUs_R%)6_??O$mvZ4! zpSaW~u96%NYhIF-Kke$f)J%h`rt8h8YK8qeb#2AU{n~$`&iO>0=ZU(;Ch9N~b^fR6 zy!F%WL>+#scITROFzgLOt8QRlg^&jrHr7*|G5|pWo^C1RfOXJ%K0m zy5S30#+6(@%RZ1&y;}M<`#^qXzlBhh`YF%$^hKo2SC_E$+o-)peso$8+@)9kQ{$%)ENOqr7JAU9N@? z>$@-Gc$Rr8Jr8+Kz{9F6o^sEZoz50xLYW`=oRdXNiyAvMvobf#1c~)Ja zBDL5`}Yp<*{wgV+N zuG{)v&r1!t(%2-plijJ>*jDTVh8QPgGj*P36^xXEyPiEA8e(4pTT!D!uy}%I2rbX4hqFMcJ0(Z@wwDUaV*Lo!U!} z)qx&l1&NQp)`pTY-^UmNvr7y0PXOX_t5xci^9fhc8d^{r_DM#{@_-g7a zNY_`Wt}n^cvg=uYQnePuuD$yxsln=-8VxMepPllny7SlV?4#S+mpU3s8HVvuyU(Ul z!>V3Ya~dwztpvWy^A(BbS_NJ z!*ywuD6p?f%K|(0kOe==>5oqUrS;>PYar)#q{Gi!@)2@`2-77GW}o{g&Q}PY2em&wEKbw18^vUbqZF09^mwd8w{4zgm>6`iR#h)IV)0cHw z*l|Sr>)OYvPq*w#KPih7&$SyBcdp^n)~|hRo6~KMw|S|}GmW3)d~f+#(`H4R;x-Fo z_Ym&lkGl7z*o}@t$85)VK3$`OB0mVP33IkN9;RY$@d+&takn`hT-|1k3aea2@Q1-C zf{z9t4!%8j9dDww4-N<_4_Xy8icgq*l>cOA!4=kW=BKw<=V-cHySI7C(yiMt!^wWq z4~#dA$E|aW)3kmTQld0@G`%xS_f2Jgr15;T1J~N|`uSzK%X4NlkBm4u0r}| z(`(gE-mA65O{6C-_OXXq?Y*1F9=k^f_ZXiANZcDd=|0M5rIxr=TH&y)0A z@duuw=ZS~e>)4w;p?z4neUzu+1H@yzJ2Qy+-Viy29ivKr9n|u8NI%tnM)${OKWgh&9Obj0lDh2!${R$3FrhAqt|w0WlB@t)UIHg*a#j@sPm1iI4=z zkb++tbbyY~2|7a;NQVr_f^5ivu8<4eAP>4j59kTKpf_9veV{M#_k;d000zP!7z{&T zC=7$)gdG7RIUmLGY8VY;V65k?n2e<`1*XC^*hSaEG`J3~hZ|rz%z%8D39~%ErzH;2 z60gt_duWM0w8S1-Vh=5`M-*XmEFr!USPILqHkQK*SP84(X1E1b!x~r%>)=+{02^Tw zY=$kc6}G{4*a17?cDMs}!EV?Cd*M#F3u)QM@ou;W_QUh=0=x)^;VH}KuVw{m)E5LRh0gg_{SK?1Nt z5gD&V#%qzoTI8@6IjltvYmviRfhEbVYwmv=-hq#hwoj>BC&$mA0zQW`@C8!x72(gq*H8uQ3uO0|gZ)Ad z-p+9Feue|f)4@3CpqJFqOX}z)b@Y-tdPyCI?|&<4~Sq-y7UJBWt_?oEUwNQM;r(x3yVH!wOuXXpaykO7&@>9ROxLk@I>T<8XQ z&>ea}Pv`}`;VS3@eMzGq^oId35C*|u7y?6K7z`)u2pGxvD2`XdXcz;_nDZ`&6|fRk z!Od_BtcEqP7S_S7umLv0CfE#HU@L5c?XUxO!tHPe?1J5}2lm39pk|HxINlBSz9Dg{sJ$-%kT=k3a`Om33~)y=ll(he}htZ6ON+$j+5@& z@D99--wAjRPQv@}0sI3#gnz;*_=q)$)8K^9paMRJGw=nP_$$&n3tvMOd;>1{7FZEM z=YN9E|3sW4t{8e7ys*tWKq^k<)szSP|kgh7Es|x9=LaM6JcZbk-htPM2urlhf zGU~80>aa5EurlhfGU~80>aa5EurlhfGV0KaC(w(h(TUHY6Q4sTK8H?x4xRWM`tT6? z@DTd&5EAM}LfuHH8wqtIp>8D9jfA?9P&X3lMnc_4s2d4&BcX02)QyC?kx(}h>PAA{ zNT?eLbt9o}B-D+Bx{**f66!`m-AJe#33Vf(Zlu$Vbh?pFH`3{5OzVvlx{*RRQs_ns z-AJJuDRd)+ZlutS6uOZ@H`3=uD%?ng8>w(36>g-$ja0ai3O7>WMk?G$g`1Xl)0%F^ zp~=+v6qpL8CG4VR%BdON!iGgq2urwL0!!f$X2OAlK0-Zy$hTx9wF-Nn2K{&ho1o5X zp`XA)FPA;B<{U`N8KmV5(sBlAIfJyEL0ZlrEoYFHGf2xBq=orE*g;9cWc0=qma>(Ld_B0~WEw)@P5ckDP#wVk4(@W@wIT zhT-6@@f;^0A-u)Y>}oi6P9)N==OHR2b(i5eMtsM3H^xbv@x&P~^Rc21Am>&ccNihf zIZ7Szen`9@vQ`mAJ!NnulT-o-cZSiVPV$sWM(FV6#9m7X7a?5Scar-~>iZgfS;tU0 z=|c<>yNic(x*RI43`(2{A;T_Y*o6$ckYN{NdIfUq zLXKU?u?snNA;T_Y*o6$ckYN`x>_UcJ$gm3;b|J$qWY~oayBO0e7}F~l(<_i?7xL^v zo?XbZ3wd@S&%93w)$kqEzy+xHR4`^&FlJXUW>+v~S1@K*Am=Vdvt?KS%V7nqgjH}e z+ybj%4XlNAa4T$pjj#ze!xq>I+h9BFfSqtV+yT2_H|&AEa3}18yWt+#56{C3@FE!fWt4dY#=? zsG$yOsDm2npoTiAp$=-OgBt3fhB~OB4r-`_8tR~iI;f!zYN&%6>Y#=?sG$yOsDm2n zpoTiAp$=-OgBt3fhB~OB4r-`_8tR}1c~>o6Lp{_`4>i<74RugM9n??0doA)_i@d8=uc6#El)Hv<*HG>n%3VXbYbbXO<*uRJHI%ys zd9Ov@YmxU_SouSMQ#S&31LW!vc#QMM z;R!ehe}pIDDL4dA!!z(FcozN)&%u@Up}!LL2&lgF2K)_5;Y~P-M!0z9pyt+}!sTZV zXRo+Fevh87C5<289Q+7%a30+76Z{PH+h3ez_|tj;kl}d+eg2BfLZ@c~Z(_=UjHrV- z4rPQ>{eJXsZsGqkt$Y4|rQMD)VjuUMNAAxf_vg_ARoD(R3gS*t?Us*tZU&1$KRCm=^jrMv~dO6xB_ilfi|u{8&{x> zE6~OjVmFl|AbSZRyR(=r_9?fucOqQu!7N}g3+Ub(W8RV zqk_?+g3+Ub(W8RVqk_?+f)@M)9pyqtxqfASSn-QGikTksLl^TySL6IJ!}BaM^sMad zIgW&U!m~J@MZqMju*vAFdwJ?%Q8ofHVp`ff#~=^?_bt@3Xs?zQswo?){i_*!su_E# z8GEW3d#V|Gsu_E#>8Dp_#r~DBM?hJ#Z*cq@l){@}uK%7z^PNTWon<}Xx3qulueAS_ zS;@s#Os5(>W8PPbo~h<3lLI+A&HVLKbr;_P_1aGJbr!Ws{R?XwtZM$&*=P_o77QT} z3Sp1{iI4=zkV((%%dsEyhXF7U2Ekw$0z+XKjD*RAp8`{17R*Mos}=JFT)Pn#!XhYy zA~fR?!j!;LSVo;JhZV3AR>9413#^7Uuol+At*`+$!Y0@ZTVN|}gYB>bcEas&2ke5~ zum|?SonYFz)o9gfv}!e4RrQE!G-5Rxu^Nq7jYh0SBUYmktI>$nXvAtXqUs51yl=8| zKcYNp1aory3@YGrI0Ii1_AGo2RqzeC;9IDM@1O=Qz%SXr-H@n0dYrFjH8s<-iq-Kq zSRtyVrk&JuIW_$uHT@wqdzNwGG~>bt$md3K^%7FG4>@}h`P{~{kTb}r75RJxNj!`m zJ0)kZT7DK8;;9B$zz2N63O4Wqe+Ym;utO`x(IB*MFoZxTgh4p|5x{x{PX%juD#$7{ z#6T>xhBnX^;-DSGLjw0ELJ}lH3VvzO0Xjk_=nP#T9atTpCQkEYu!bjtH9Q%t;mKf) z$c1i@2i>6u^n_l}8?J&r(3dp&L4Ozk17Q#hh9NK%hQV;cj)0MzkK%YWjD|6wo(fGS z4^v<&T!Xw{3)A2_xE^kR=`aIWQ(?`{MXQz5YG-J*le*Pzq~#XEA}G|Y=%Rm|rhlBK zf1IX&IO!iw`iGPL;iP{!=^sw|hm-!{q<=W+A5Qv*lm6kv@=$9ZPWp(GKH{X0IO!u! z`iPT0;-rr_=_5}1h?73zq>ni1BTo8=lRo04k2vWgPWs3(MiwW1#7Q4<(np-y^7!v9 z4k!J~N&j-vznt_hC;iJw|8mm5ob)dz{ma?R;&5KZ;;5wW9b?2f#)xx_5yy$e;l$!_ zVsSXJIGk757Kamy!->V=#Ns$gZ#YhGI88r2NZGso+sN=ecKwxE98UW5F-D$aj6BB}d5$si9Ao4;#>nHu z;&5VdI2$dFKJ>Tuov!xyU5o*j(5X7upbVwiu*J?1AhW`Qey8M!QMH7b}vKv%8N6_+RNZ%3cog>&gN3eH}pi`ei`pS{Ma-^>u z={t_}9Y^|(BYnq_zT-&Wais4!(svx`W5+CfL{C3W_)pQ>PR>7r3iuq(z!ym1SEP3q zzJ@CJ23+thRKs^r1K+a(eU7~R2z78C-0&0p3>OGfkKMxV5u~mhsVhh7%8|Nqr0zIU z$FHS~;@a0{%4 zHLw=e!L6_XHo_*@3|n9;Y=iBv19rmga0l#y-LMDt!kuszExeE8-Ea@=heMuHB()St zEk#mGkG$MN;oUQV$}j2a(i+Na{f(^&paZ5J^3Vr1DD=@K?eff!8^IgX7C{4=P4&*2Pw;duc` zJ&2?pL{bkTsRxnNgGlN@B=sPYdJsuHh@>7wQXfQ8OOe!4B()StEk#mGkG` zh@_rGQcohOCy~^XNa{%>^(2yd1W7%Dq#i+1OOe!4B=rcAdIU*5fux?eNKy}aCAFM= z2$`PEjLx4h(pDoKE=JnZ*hcF42J0$iCHJ z2!T)tg9J!~BuEDRJdk5Q=nn&6APj=RFa(CeFc=AA$@yfo{S=rA*D&k27N&uE5Bhqz z0j9$Y$cLFQ3(Ige^NIP)PA=CcmJnA7EQMvvESAFxSP82@y?=2FtcEqP7S_S7umLv0 zCfE#HU@L5c?XUxO!tHPesCTH;TR3}QFR%-nJraUF5`sMvf;|#~JrY8{_wyph!|)e) z30{U*K<)g04PJ+jD3>```X2doBcE>M(~W$(kx!l(66P#?4OO7tn{WZU*4Y;!*cTz# z7a`aep?)jQ&YlM$c)tkU{9AU~nbvPD)^E#wKmWb;+j76qm07>%{ukEomF-7rvVLnX zWBsaUnoZAJuc5D93)A2_xE^kR=`aKGVJ6Jt9x(V^^ZFE791M zXzWTfb|o6S5{+Gn#;!zTSE8{i(b$z}>`F9tB^tXDja`YxR{P>A(b$z}>`FAY+CNc= zR<1-VSE7|G(aM!*W!`~-SKw864PJ*!_r=wree2M^b!gu@v~L~Sw+`)FhxV;Q`_`d- z)f1#zq+6{isCBVgq`MaBu0^_Qk#4nK;6nRWqJ1mTzLjX-O0;h!+P4zzTZ#6qMEh2v zebs)5O0?@Q?T@QNyVjvy)r!Q4Myqo?;U~Z(tW9NkHdvhl*yUqqM~|HyJ$B}xcAR#-tNv4T!w z1)anSI*Ao@5-aE=R?tbTpp(p$-OP&J%!=L2irvhL-OP&J%!=L2irvhL-OP&J%!=L2 zirvhL-OP&J%!=L2g54qwIzUJ01f8J^q(cT|@(xTE$85-fu8<4eAP>4j59kTKpf_9v zePB3@fKhNYjD|5VnKke!FcoGYkMohG1<2lwun-nOA(-=k^Nc3v8BNYJ5BR^olCzIA z|JzlZqm=DRS7^Rxj9`_9H59cs;SiE?$ZIE8ur?gW+Hf5G25DhO#l4*0M?KnUoevqu zYpBJuXg%bRb%Y|mKSIw@>w&$wqmPJ?16li1yFhm!U)9K0HS)zuA^3t7Y~Tm}z&a)J zRgHXAV`Wz|4poW}2!$|6fJ8`wWXNRAu`kDd&>sfCKo|srVF(O`VZaR3yRuP=43r`R zrL1gJqT4Ic?Um^EN_2ZAy1f$JUWsn6M7LL>+ttdS+C}pYvT_JnIfSenLRJnTD~IT5 zrN~Jsa#H&Liq)Z4{Lljbt>w{j#ZNs&QtQ|1iGK}xx&}R6gPyKIPuKhwD+C>V`6u69 zkPcR|*m3kEI{F;i=os4Q7*89Hprel{%LT1;O#S~RtlQtVcBl5Q9Ybo4AvMR4nqx@K zF|?EmEybG$5CzfTfEb8{*3bspLL9V%cu3&hL`Z^UNWm`+IzUJ01f7ANgVu7PwOsUz zDzught>r>%xzJiJw3Z94OX z+=+xck#Hvx?nJ_!NVpRTFGIpl(~plJS7Zz1JxA?0r&b0fp-}vPr!R{ z65fXo;2-cI{1Z;WN34#VX2koHIGmh+1{Lr*oPn?KKMP+&6?_9O_!g?+JE(yRP|x0E z)0=+V-o7BTd@!j0Xc7wQ4a)>bgd|9YOwZ>$ zKe99PvorIvGxM`E^RqMavorIvGxM`E^RqMavorIv>m0RQk5g~;oFm^=NZqBY9L?6^ z7@N%XoWaa#NAhdCSHpOoSx$g^vD;Qs!sF-*exn|Iz!z8F_HyC z2!uiyBmlpwOrLkt=am(*k$&l>U%Kg+Zu+I0e(9!Py6Km0`lXwG>84-0>5pzo_#^$V zX>O}5j3WG7%uQ*X<1k6PA1YH4K$?_#RA!N!sUwb#_#4^)lJSL(53Fm^a^ z0PEhM-m|Dd57wXum7P+Dq^Y$7_3W+^{Z@&7t36-%@&DJ?HL zsYPnp*$1vakp1rmnx$$PHGa#M@kQ!Cm6)lQHm0Kfr(;v+&WRkAmXzDm2G$+);QJVE#vFLCcIcKz-aiP8}RracXQ(kM7J$m7jg9i>A zeDqOO8#4Bxhos-5kE)ha?XQ0EBAK^I#gg2d>~6VTQ&W?Yyl46(Dk?IgPh7{BV-{`uV&&NFUW(Whuc{o&GG9g-bMVcX&p6XSPfP0AZJ!#3Df zIJwXCT$MIv6_!t}@s#ladRz=nOgD17_Azp@qoQr3n;2w7M#S;8TVAx)D(@S=b3w0O z^LLD&uq|hkV{m%=ftjsaXAW%NWoYc?+>Q3U*;~ep-8?g|Yx?HcxY+EWox2RpZr!H! z=JXtDRHvflE66Kf71XHV^)DrLei`RKr;q$=x%!oS)ckVK-`!ml>+&QmD zk9j*L)SoOn*kNLyKI1za%)Vj6xN#e9$TnNR!YC??3&d$5&UQjfK#0Osi(fY8FnMeJ z+P_^cdUd^pS^W^xl}BrW~K5j3cVztsXXI!Z}_G1 z$gk?pU$!*S_ugCo)#VcM>d9$3g+@J@6Po1hb*ks}qO+~3UoWqze@w1W_5A3gjs1+) zRkblqOJlTG8vj7+`g;BOJ$|qL`3QQO^PXh5sze z!@8_upwc{)GDU8!UooT1^6+gxe_`gFU+hViQCgDJ{Z_f-C^uqF*Ydwb%NPm8l*H7u zJg*cG1v2o-@VOnh-cPE(y&)O@;xzr&^GhAtpR}6$Z_`hCEUe)QL;WI{ zDIa1&N~CWz*;ZO2L-wpcnxc}GMbH24x%a$@Yl*OAaF4d>u*f9gL-l|b+KXRm=qvqp zA8osP-L5u9S^X_?BeJ;8@5Bke`gNqD^8GURs{a+%N|!D=G=bl5u%(e|uN}Q*V*RYX z^8UWrh}pgi?-;h%FPwk<0iz@1ySLOY>r(gdmiibiZ`ztKGa{I=MqV6mqn>LX|Kp8% zu4Ou2-LF!k&d4iuX{NS~|F+PS3uRH6{#*E68ePYpxaQ&c6$el2sQc`#=$hGiSSVx1Y$?cl zCUa`9&O>urXH4nUWmryYQ+tq}uBE=-TB_9f)A`W-&-CBWpoLWabU!owSM&5wmB$RP z`kCp!mS441wXOYq)NlNxVCi&eu0=0jCJQEXH2g~07EdYJJ`;YejK;))|1@nxIu@g&%CnO9j z8EM*RrjR(BTMU=2&0bS7yaMx(>efx;ypmVdN0sHSX9UYzT5n!c-Iw0_@vYHm4o6z_ zt&a~b>fgU;aQzEq?p@(&ZQG`W@5-AyeAv7^w~G6J7vuVtF|Idbq*XnCwe;4tsN1*6 z+BVxZ8kLgrYdx!?{;`EvRoDOL4wfUYSy=zr@{78esmYiE(hIcxJmHdgjWtP9OF5Rj z@Q+t^=+vph%Kal2_v>FWrvBZs!*4wIooutMeL_O}UEOB%>o=oY{TWp|}7`{s7-)~#{grL>wac9cw*wx!4Fw8>c=IwtoTI;2nKM;&ZusSmMaaXQ`Yq} z)>}WSZ?RgSazy=fYC6bwu5nIo+;)K~ecLwlw$O zrgv$WQdPl!xbtBhlF_9+K!Tc^s$ z>W3y~#>8YK%9rY=PTg`f?V#h)l5~w%lAhCJpXskGcGG{8C~oGjY*^EOLkoXp!)4s%W~d3PF}W57Q;I@Dk(ElSEHku z`c_tv&0M9c+H3URA=Gb2HH3FJ`fuj9^VF}fVuvbQUmf#hPIwaLt+dzw^ug;ll)hL0 zBhCG~(brso@ncGMj*zOYEjpwMZBeUsmCnCEaNU7N4orLCP3NNrCX@b!awA#O-AKCd zG3o2Ob!*HvTSJc4`8EAjt(*QE_~kiO4%1)Ny6L}~U$1NOSG8{XujTEIhLye#bvg8k zWWEL4m9iwrXiIn+Cttr3TK|LVg-{uEAybNnUUfe7@)!Kut?l*ysGlWQ532vW963n# zP$QZT&R@JS@$bmYI&V0eY%7T zyz+KP=h*aDB{cmv@ZZ5yNlbrLLeqaW{h-NTmC*EG%kTWD62_9R$>hso+SkijF}3C9 znMQ*xRt~GJfARZ8^5}(+jm|~e<+Jspw{MSq#7KH%d#uWxzFX(6$eTMXLGobwt6r?E zcI@kx@iz44i{cORcI%eu$lo`tB$%CXG;a*C>}k=nC~Y@|b~SCPG;@fGieynbCseDUNisVjCbV_%sH`bHdr!%% zx0E)-c%ec@v~3sEIy|xWgM~PpIddkt5G> zZ#(|`iJEJsddJJC=+Gb|&$~{l4Zo##2QTQ|d%@sN!?SF*tl=`HOGJvp zkrEY|I;(Z-zXl9gGIC@||F&Hd>%UCw+V;tel$eyLs8oj|HR_>_E0(XUk5Fx^(=~pk zw$bM_zxc+%$~p_l9P7g3e|7mFBZS68>X;XL#k}*Yj;uHpq&Z%gV-F zZWz{7rY{?PS7$f+TC9yFU8_pmSOZGysT#1#tz%5zWMhat*BE*SI;1hQC9ctbbBp?V zr!kf-xn}5E%M-GW)sP)>ql#Up!Tg%m9>*_?hhQbL+Mvd&v{1b&tq1QEB*hjTNu!$! zq~2DSH*_A|&Cjpf=+46zU3Jx>`mLq$tw%XhA|q+kl!(ZbfW#h&GK9A7Uovv!k^uom zdHvnXS8RO9Z1kvAZZUE>JT!Y*rA>C)@r?Z>VgG4j@NJ+E(nbF27h z2Znw7=-9+oH+QbE4_jB!YUn_RL!7G3&yLEqHPSDS~f1ufh8>^S|*QPJ$&FzgHt=V z3my6GC-3$ge#@8`o}Z+}X!rSKd2h0Pz)eF3F6tkV91|i()W17v;?SE0JR030Hnu~w z>B^qh-+jH=A1qfH=yt)V6V*qhm6YlX9bGrp&YVUpi`J$-usghXp4@Syotb+vmi_b#LDxuT6AJe#efc zycj83s@0xoCDn^LYN^J*lDy~@k0z~+5pKJDZW^Wg*K#$qLB{`c?pnxtt;!8jt#WCV z8`8b9j<1q+(|5JwQePXtzdK87IC_SWqV=R%(zWWB+#72^=}9w|ty;qcdD2x|cztdB zzxDa*H`sa7zz?xgFX~qW839{#^+-Kj&+ooqWcMj;SK6ZN(QWEa$)^p`Z+_q8xRrjk zHqoqEk9zPyWX;a%St8?NI5MYKL>ks$bIl64N%l^ZEtzSJw9&x2*rUeuV=EE$YV@`ZH?vv8crG z@WiO7q_EJWXlg{~%}`_HK3&`97^!_No4q+6s{65b-T2D$9B#99>lPgqWuthhsm$y0 z@~*rXuin%nsBKVUTA+PYdZ+YOzOnJEe@n@X%`0Vau*H8!$Ih8{`3t{X=5&4(5q~yFN8)|9>Hq<4SQ~8BtT3bb^;<6AIcA$DHVflp^ zZ}Pt=O07S>x@^ScvNKWF8ebB#cfM&!R0bC75p>k_(wUul^yt*NJO9s&M;)=fI(6!$ zV64pGKK0)S$lDS|<&07lg4$q?!T(}WcGLZYu*!8#`UvlR2{}#oKht-^1IqU$eCO%@ zXZo(*s(fql_0|2%^j&*g^|H>$dy?@b+V=qQ+W6(-c#ekWZ9-4-+LVn?F>=&XjF}jd zw_SMM%oqP}AesM^r&>wf&r^&S)ZJ@6aXhX0lHS;+`Ev|CKek#~NocH!)Vv98mj{IU zg@%`Qo7v4~^u&qo&Cw)OpIe4oGY?^0>u@oB&Me;G&!^^?KOpF1euW0cP(x9Rs*yzQhV z$J<{Fukde*?gTZPxwyl4s2pMtxQR1Wi$0{>J25c)zA;h%2xhXxg|;Gi9Vys9l{R1w3hldN3DgWUD^Oz z$i_97_0Fa`Y0PPZw3aMJ;xC!$sam4O)mYgFOC(tBYS1fA4ehCtz1VzD8@G1&u(jjH ztrvNhytNw5Lu5R1tt96YT$6B7wtNEOc+tOa=zoG6L=bgIhE-FLg+S4zU zWqrdc)GwAvu4;NtW0p_EhZ|N{r2|2j!hRIKd)pu>4rJZfNCMD;#ZQB(Kux(>4E6Fl*vL)VI zZ+`S=nw9zl8&g}7jox0_anmt~UJn4s0`YT_n2oL>V ztyR?Tkds-hxGxm>&r>g@k1?pxsEs?L39?E!``FvGl`z`#6# zVF)nHz=X#TUPA%|LK4V>JjsI)LNwBtXdXuMGOV~WwnW161Yv|6>c>NQrSr#_Ky9w~ctPHEM2{sz~BPm~&8j@Mj~K-YmE_nD~E0X_~& z9neg`@@RnJj(s^^O85N*=mYls$bg!ZBT%gLk5AOjle(q3a5meh4WOhZ9|l`h$%7>9?vo; zbvfhpBbikLVPfUqRvNQ%3?!F-w_zRgm0+!~IdFl&+$UO|gmQY8q2F(^3H4u|YHBj&M9C8-B*M|YALdcwKldx(G| z-9rSphf4%(e3V*ZDLt2VFk1$Dn(6O^rw?wTD{=xO5ddxJXbJWS>G>C5y`gp61u9qf zlSi=I6a14%eRxVKJSEdqQ1bw@V%&ZF*#*Ik&upsde)jltt3B&bYmAVM{5J^M04B7E zKL={E`i%DfEYkiDY$q4WDV2rt+o?4x_B^GtP`;ab=S0gHrG@gnl3$@cX+kdqJBHgW ztuPog`B<<)cd&x=t@4e(wYub`iJ$#q>y`(%4!rVx6LCIn;QxhqMxXrI=;M?dOn|q0 z7$vA@wMdIpwD7`9uim%>^x!`_en(G~C>KfN4HvOuSuNJHx5S>UrI?E4v}d#&GKwu; zO8X_0?#_snvR(Ng)T%(<1wK*BMX*8^w_NBh|M~KtM?u{PIX}9C=XdOIo+4eR zb~q`OSWSl0zcJYRda1-Clu}+FwOJ&!80BqAEtiRGED-`Z8P!1xEz;fyaQ4ij&{dOH zq+e&6-wzWszXXvNS2z_UMq84+2tO1ei)$6(XvoyB{>68+NA`5}?zHm%xPq9pvt~PO zK4bnIXI`0UZSm&J#?kqZ8@oIB->o8PyX+2AX}-Irz+hQZQcQ7RuowkC1O?(cE1~>- z-~eWoAhphnMU*7uOR#Aasq{ryiK?m?Zggf)+@hK)0W(TVp;XXRC6~rERji!N7@>br zO_lIG|%hR-7-^;YZcv(i1T!V;r5r@B8-y{@iyZ78_9Hl=kiR6o+JGGUid zsmw~H`HA77;Wx|ss(dvCi!#)5lhxxeIW&R(>YDyae_vH_N!ey;?b_OgfhzKf!kn!# zDHJAEwpnrG@TOt9(;zn{R~|hY$jO>`NS+fTyz3Q|R|IZFOe$$yBLPJMl+~&BVniYO)W59#4?Iz-2%Y?lSPoK(qy- zAq1>+bUg{As6g+BJ2V#b`*r?T} zf^s88=S0jHb`)n*Xq%`Nn?m6Q*aNv6|Qo z#PMK_($!2gR%oe$zu!OmG_ze1p*H_IV>`ePXI|+7hN%o^bk@dI;%CTQjL-^cS}i0v&WTtF4r|^(W6+Wx2#(b ziL~**1#0+>+LL4{AStP|m;fib1H}OSV0MSs+g?^S-|L-UrZ<^&db63F^dS1P#p7uy z@wR#ft$KsSYS5!04!Jh2a9@T0^Yz&TdR81?*!|TN{l~kzzuNEgTP%K;gI+UNeS2u= z?8=pAw`@7P@=@Q?`ue_7UtfLwQcNt4#>kMqs5LN3*?a#1foBcOJI!(CjPMj!22AL$ zvcWg64w0{vb}~Bc1U*=qlA~^bT4Gh{W|g=KLizi>N0)Yw*6U}xp8Vu2*)c?NRXJvb zy|A!sv?Wr#xvenL?09rwsG7x7p{Fz=DF>3bJ5kb&dMzb6Bv-;|na0k^h_wColHD`9 zAV2-!rN2V}@$bHtSy6h+3{J zzxnmQTnKP_{^dWC-}0UzV0?g_=2z2tQYy`&UhY(TQ5^5MFP4<5c-(Ht8Yyi@OZKRm zaRfJGlx$U6eQuFAw`W_Zb^qly=M&Bydh&My-ugm|rP!p!kMe3~%^eQ6-B3?z!laLX z?qN1AiGDsJKMztMaiCMTQs&?jy71;F^Hq5z&X#SB$qqi$w`b8}QpP`>ZE|QEh8w5) z_K0(alZn)lYzI8L8f6>adhrqzK%cWfdCnnHR>ww`MogFCR24M=Swt9%I`{ucx))J|wIkG76>V=^tj(n5Zo^LjR7Yd%|RhaG6 zdkXzCAWk{XJg}%`(y6EQZc0wCtNDh;w%wfzZfy%)kSBOek$G`qGWzlt$gV_(DZrFs z9UcWuX@nU#T#!mTLBmh;zs0}3`JH<1<}L(p9NzU0aG2mG@k=Z4!M$F-;OV=wv*SqL z(j%Q6hnE%jjK*=(e% zsN#CKgpTB>b?M*|bHF8zE$tc&gG)RGE^#xsggVEZH8Yo>XU7WQ^tW<}S?vc(cB@-l zd8O7Izfa|zt0=*UU4*ux$r8E4?nnQlEy^WKxiK!0t(l2S zr~$tQ@Y#G8q`oiX67J4DZJ}4AT!Kz(xB()@4sL+BCU6O}Lvsx-VP>;I;Hhygap(Il z{*E8#Ow}}L&z!uvt&zyq+Pvz*l#)nM>pdnJ%?A#2TDMsHC@uwKk z--3lLXF5)zZe9ii{-2U?H>FN^Wm?|2%EQl`e{>>Yjfo*uYi-z0=!2=c=^yD z6+@b)8iP2*xcWwrXoSEg(7+86$S8qiny6l%VZ$~4a)f-h@#PU-=4mx`%kq>;gHfMl zNC|24Gu)L+Zw()r`}}18-Z+}`8u*VeC=En2!e22P7NlooWo0U)T#Ga$&DgYG)j}M`j)+%q`MO zkZ=Q$LzH7ti8iX@x+aZ|e-SN6@3ni)q%ZWMne~-PUpbM}dVFMAd=`;OUZYui zU}=syojp)mS65nETbmj7m4?HmzA&~`(L{2zF$bz!OHlI<3RAz<3kewG)-;}$3QRBu? z*@BYd^tLFD`tx$VQmK=BETe&rIcq}UMP>5l8~8V4NCUEAvVgn=tj&qhFhN zIMCl0euKQ7B149*i$sN4SS0xXph>3F)dQD05T85Y9jNWcVlPXydWbja|k2m)&nXR!$tJmhboWY`XdGrk&Dz z{P#kZq{qm+MJ^&(av`nLqf;v0S>~mhTTkugo4AD&@9rME<@*RFLEzDg`}e;{-^qQq z-3AO`dwrJNC}lEgE3J3&k&7+T$kiWD`K}i>-U|uef!BVIoF?5=w%q}krR0Y1K~AI| zmQQd-(jG7W;EAy@p&VADc)3(AluIVtIMw7E^!deThg1FN?z<^v43jsL5OXg@*^j=Z3d_H#}Hz>}>yvZy%*K<&&pL3)YWtN(}}BV#X=A+ZCv&&|yj$4EnS* zS!FIKlcniVL{j=UWXPp@EB^G-%#4lwbFD=dX?jX_!0!)ar=)Y{BJ1iEYey{FLt4w0 zRjZEJEWJe`SEeh&87f+4u^pjsb%5I?!0lxzt|-7jQ0L=fIOs)yA`ZO(W9H&uq?RJ< z-2ROjnNd{a@{OwjYgtjqnE_~_qF%sSwQ38)V`S|L(7PH?n;ExYr+{AULjbOm;#ED? z@xlu)td`bX9Y1n}d-4ddlp^!zX;Pg0e7^YnJ!AZp6>=~=9Y`mzg-)^^6jgTd74MISP@X|EC)I$4l>&pk~!e3duK;b$k` z0%i_bOg@Ixz+g5^-!Yuii-;weSMxtez9$Egw-p97ahJhtM&!eb4sVCb^{Qti7lL-0lt$allk?i__Bmc3R=On{g7haj?Zwj!4}^cb=1 zZ_EqK&QxMlC&sMz;+B#SPokqDWr8xpfMt;{1fGy1?fcgTtJWRpSUFZcJ? zH4N5<2I{;mdA+`yd!0>1MNQ7qV8E@@>9rcY{?4EC6Iod!`zlxNoi}gqs>;RpulIM^ zH2zv!>&jC9KwHaz-(*-?RP<6|OEJzqg@HYO&sM8SZ8obl<}DjG^t83L@yJ(>yuDYr zU*HsDK*n{%UMJXL1TPY*9wp2Y;Agv}n7t|pr3m?uA9v+duWt-=S7q&1JG6R>Tux5% zb&;VtEp1%}ox-YB*|HBQ<}4)r#qA}*)ipWAy4@y~NhLRC@qx@a1GP;<`FF?)G)k*l zWw=f4v4V$KCr@!d#GWNauCK>R7mPzp6)lh#;m|7fA`jfzw5_3GTN63Muh)AJRj9ws zcH+eO6DK|oZi=*R42tPJc(v4f_197_dTg3J$QiLt>=;SOdNwB4aF?VaK}_-$pD|F4 zF>|Iw!U?&-?5u96c2;d{YToA>GS4*`b&l$AwWDgox~T;%a=k@(c*A`+DV17Xw%*+s zs9HSRUom1cXDd{iY@MUNthC+B|A`f;vc#g<^S!8`(X$G{C9^@J0-S69%CeJ`QBRZj zY!oxkL`fFSO_($*WpUYyQIj0+Ip#oVjgJhyaS{&2chm2Js} zkD|(uG3@LJFFoAeet2o$q516xGpYv;b#@#WsHz$`(Ajx#ebwnee{IdmfHh}0T?W?@ zIHhFBhYNDnbRX?qd<3aDmh>L&#%l7wH<5BzditX=t5Co;#PJn$=2#ryJ%*{629t82 zU`5%9eC~!hp$&5(uZ1?;T@wriB18U8ueZ}*(NSF7sdr}LtmX9Cii__r6ys@Ts zV>momyXQB*S)REu;_EIi>n!yxC@b&wJy?{Pksy&K`5e2Cy1N z{Dkr^BiTuIu)cqZrQqlO1tld5{Ql08l1{(cWKwHPCbHAlQC8OJ^L3V$b@*;$Wg0cy zj0rO6?vebbQ~_KibdPR*Y`^sGtJ^5V_&4BntPkw_#~veh(d38|pVBMCteU&TeFsu% z2+t+X`_*D5taNyl&^k*X~@bs9~U zJVTk83B8BeUS=^H>avv?85s(Brpn~91ZvWf$Oo?+@G5E#3DOKgqV+OCksS5Qp!Q1m zLqr)dJ7+}2J0|l6dUiMUw57PKp&)8)8@27!l~{7!N^`cZ0KU5xYoQ)mj%9w@unmRn%XHfJA$?$}`0XzT_}jxJ?+=A5q5nw6C#bo@Bz zset|I6Ye~8m9RankI!!r$tZGEU}aeyt{tCz@3FNrM<(}iPffJrWQToe6}+$p*@~jE z7gWoU2$QWToE!{O!@vzFbK*tciLYsMZO!JU=E0hp!9T1UU00HAQYektN|RD)`oZYB zQGN)Q=kdk8fmOA&D+7U*wKc1P6)0GiX;i6=nF^yS+mLkuPtn&p{0AKjlVe<~)Q5S6 z{RLwd=chBzD}fk&`-3}O3uk*g_UfjlYJ2!5Fq-0Bd0|(sLn!(BbH}bHPtG#weOI@@ zN`v1>;l6{JlNYtq#CGo)#sk(2_$lPe$o(A$)>nhOb%;4!OWTTy+De5Ct`k?t?=^fm zc}bI;JJq*j4su_yOs?d%fq{Dl1}HCqbck$@9NxBzzjGV;O3yZOXoTNKzOs$KlhUt5Vh6-s_$1g^X`d35IEhDh zK)F&F2ox4pRu+oy6zY!=gI!fs=&9m2M?V3N63Je)s}b;^IAYu>p1c9L?i?HYoSjRH zC2f!x7E@`lr!p1KICaJ3BVI!`k;l&dbpKD!9_~VK6P{Y{#3QMdshklHeZ-$6o7#lO z4zs>A0%i+?2}zqmb%K5}5i)3a7Qnm5#{R-T@k0h*K_pxyxkyL10dgmVOu_IP&o;cn zUTQBeS_^fny-R{NpTlXidi85cmJ*3tuQr-i2P*Kcv#trkjg9vD?=dc~$9wG-#_u5v zU+vh~t^6l+^z`Hf@;@Ozqt^}Y3K_EOXh>+NY0EtiZ-1D)aOo1s;oqUHwN6%Xh$}>E zh$o=CPY@#$6dYc02bZ|k@quMa+HD$5-gsc?&neeBzipY;W;WX(bpK;$@odawGbEbt zVP~X~T6y4K;P5n0wkUbVtjvib^bC<)FBQ#AnKNhj(-bTPKMj_Q1f@<5&4+n4p>?9UiL{UM zx22L@4+*g5NYv=pJpzX7A!(-)q64f45?lW_a_%VY;(PQmtzYZ0rk$Ep8TutpZ2mNE zwr}STrF;`n-yG=H#2t?Iimn7HA$CG8C$>!_iS(QXsRy||HK|g!D*t3c+vJ`^Y64O@ zXC`lf12Y{i*OK!off+LtMt1be7CIpd=IBxbLb@Pp@)2qSeJBsM|qC8L+=&C zSjgwm3|wfXMKVHcOrK0o)WIpr?QiuZ9s5U;)edx(dl1|5JoK^x9Gu|Y70X0FW=<(Y zpCv!l5X~%pH2Rp3Lx(+;jkex^$E>6Q%bp$FDi|XORFdZd%d0{w0!N)zwI!Q-qiRKE z<%%k+OO>mk{pGSjr(BV{$E79VG>~v?{(-yB;iz-F=+&h*8r2%3k;`_}x?Hsm;kw+U zfvk*|&^tYOhuKHi86(CynfE7^y+~KyY>!S~pjcv!l-f!?IzvGgK5}}T*L6!Oz3k0j zBD7Uc9%s5#mUY}iBjyn=kABO!ERrKVNbL&^Gh|!HnVv*J+Auva0)>$UFX%k{>H%89 zsADwUEMM6pM}TY2HZ`s+7bO3uq@7k#D}3y&@)aL03tQS}aq+ z!^PEk<;q+|c9!0dSrVWqDKM>EV2wABSk13vbmr3G{o z0vadlipmQP%JDQRRk)AETc2={x~ zy|_wnzgN6xD+BlYn9brkR|6o4vl%sSN6nQuo?=aE8Pa26Uree8zA?HLZc_mVD7U;~4&~an|U4j7r;hHP z2q}c9OW-0zzutZNj$Qo7X(5aVA>{FX!-tLBe*W)1LPVYvVrXi=k)wOATKefRb{Hpw z>y%+5qvPhUN}WvFPsnBB$Wc8;E!i<^0G}uFxz*%3$@2ytTQ)`rw>BJL@U-Ol^VHG! zz5(y<(`GN3x;yj8d?C_13o)g|^pxZ&t#;jChwnG=ed2T?>fPsaiO+m5BBswtU;N@L z@rQ-*2kYY5b0;SkAgws_JMS)e#_-)J__k@h&sFrxktPwe8mu9RiA48 zSyU>HnqT>=5OpFQD=H&=uicSG?X6O|>-Yvb3>L=7or11kN2pq03of5g>*S9q@^=C?YY|?J`367-$Hr@vBymII3%R2 z4||Mfk2iH$gG2+==q;q%b-sUq96#avc6|Swvn=GU%gR3by}R>0owI4ewioz{ri5W4 zf-p)%6UK@p!j7UJ;b1X}aEwrAJ4H+7mCLSSBbTR8^p7O+r>`8UE;5VuZn$y zZwksRJ`zU=Kc+sVI4Qm(JS)x<<_bzJ%0xNg4VuiXT|+(~ITJZSP9RimW1(#}2&{s? zW}=H2AV!Nv#X64pqIg|=AU+Xa(wv>-9Jxe(D38gnP2(k0fVi_5((54t?!vfbrnm-k$bx}0?R z&gHtRpKFY3XV>Yj>8>kXH@JS{`lahR*L>G9YbR@8>ssqp>m@f|w;~pD5p7%KA@x8}S9wnYu&q&W$&n}(= zJV$#j^?c6r70)+44|)FE)8={IE5xgn*C4MIUOTv{=&P`$J3{;&%Hhm`TWJ_yw4TiXx|yW3w#gz{@eGA?|I)VzU6gfoya=#>nyKx zrH;LBaNPlQQ|dlk_tCm*>u#yLyY6dsKdSp_UAtcczqWoI{rdRb>-Uh~biZYOhy3#V z3hRZ|Yf~?&UV6P(>%CL&qk5m#`=)+_`c3QKSARFhCM_i7KjGP!bBXV`*E0M<|zlppMSrqwmb8GW@ z&7+$SZoanp$IZ_+zux@kC`(kAsKrq`qCSZFD(Xtq&n-M#gtlncqIZjTTKv+oP0Nif z3tDw=HM7>(Z`~{kG98z$MlaG z9kV26cg(+Heu^oKDUYd$b&YKl8y=e&+cmat?9kXTvEyT>#;%Fo9D6cO^;pVda zq4JUqgo{fD-lvQ1c$5~x2m9|RmW$V=o2)Mz%Vsi4wwCcSNp_X}tUf`;bB|Dc81pr z_m8Uoi$UKcI8vyH5uLE%H>9TwkRh_UY$e;tMA=dHkOSp#IbKeYGvz5GNFV9A@ts9r z$(|gkdB{qRbUn0wXi#XdK2pb8N7@v&-FYN>LD`gJ{Rn^JuX1kX`O1@32`d*>P7xyS z0JKqYd4YL8d4ajPxd(DT$nBQfQN{f@_Qw%tdsxl7oJz#woJ+X;M%rYt{8|1gD-CzU z(`aCX8!e2kMsK69k!q+h1b@anW2y1Du|{tb8XFbH7X4+dz*u8!sQD<{$^^{{0 zmgp?r5%-9<8D+dD`p{qY76(Otddwl>Ut*XzCWg|#-7EerMvBkG2=S>HD^7`tB1=3V zzM@b5PD~Krie!;3riyc7He;7LVxF+kL+6W!#eeAYm(YKo5aYyY`K;V1x5=GyyWA{S z$d&Y}Yvnq*8f#uA*T~1@6L^91B1PngY2pWwDlW;vSbTqMagZD!ACU{>B6`?I5Qw_QaiW1(}~O8i9U zw!5fn40mpOhzO&NbK6U_lakM3!e?cV3y2-T_B6KC-f7tD3_eX~|C(HC;zse! z4BBoi`&6ZyFXn5jSNo)+j``>=n%8{Fl18d|#Lh>r^Vy!w`&?qD@%=E)U5)-!j`Q&! zefcJpw4s!CE_zGH!c>V;h%r;l=6y1sQ%SGNA4;iHc~2o#DCwu`v?K95gZVs+BdfHv zb5>_klS3Q68>9DDWm88F#e22Wgw`tA?Z>SuO)}mqnf+9~O(Im~T*PNpj!@#%aeH7} zYCD}e2_^pjq=pue>mo{(Mx89sXS9?YRhg#n-j4H`ODk5Tno7E4>Ng$BROdgHZ_Qdt zBc>h7Sc2agLF^P#sy3XfOZwZKt8yBJ_a2TKhLKM?`KdE(TdkzK*Ix{ZxQDz|E6(LL zn-+V3xOVgl?eJAe_|e+=g;wWh*1x%bRSE97Ep5%QtJGaPr(PUw9_MJDo2v0pju!*5 zY$>&=cB;KcC})?(UNiY-vQFPapXqes(zG&L{HEomIoo*wEnn3FO3^hnr1W%qOxtRO z&!>-(SgfabP%=yH-FNUP5i>hEJry6I=9hvIjG6};*tZM4l$GAfgVbKcy5E*U-Zh0! za`NnS@$%%!bLNTXb+~ED>>1O5CAoSCrmkyP;R&zcTy6cej5lU&W zrqMl`sWr}gu_=MM9Ml0z?2SzrhS*6%3`_fDG=GB~ZW^M+hu*kp2U2->Z z77;-IKe^Voo#??Yi!0))C=i9BNL&-eqJ&vssh$Pe#SL*&+!8;FU&ODXLR1O|^SXv| zA~`go58pr!zESt#o9WHB((i6(EV5URMc$$ZeTN?XJ<4>F9`dxTE630hYUM(qdYDo4 z+su`P3v+mbR2Ie&0m7XYwlaP>$p~kcI4Rv}$?8wUZV(^iM>%PwY$TiMxTv6}$>z>jwMtW0)+1%rzLnIInz5KUsrm_`JSv@wuJvuyh^nn!wNk0pR_7!c zdl_OkD+e|CsWmWl7HSl$&Q#@V=)QP7V=gr>iqQF+rB`XyzN&o#oat37o3Xd2QEg?> zs})kOBuV)cM^>pV9Bmi-{8g7HgCnaFsAH>d{>o={T=NW-cWFf#LiBk{YNI~i8O)7Z z6E=~p2!mxyj?|F3Sqt{6I){m(t=XP`*1l->Dhq2Qo61lbCc|YjTCcA3ll7SUHIV+y z$^vB&_NUs*JnL>KK((}L>&JLmu#aac^>$u9+8TYa$M>;|BfNr8=4r->EJui7atsnp zv=YOaxr|{vm?3%@--|kb7Rv?FJ|=n_Z;R01a9#AaScO01&E6J#p)rkgf5cGI`iaom z7-!kqO2gxGQazAkw?vAB7$Nha8 ztM6Raah~by50-egH?UosevFat9mQmnBL+JbRJzqLrV;4#z6%0gFisNCp?V)q^nJ5 zk!WAJ*O4bE-yJX)N@PCnLs@PY|8|HZk_fQLBN^CFa4XaggGvPEMD$=H4jb3OE8)FD1j zG*R1fCvihL*P&t{ghC^z1A)*KA|Og{zbEP&iUaVDs85gFK#mgrawu1r?k9hBZQ_WD zY$NWGjcF65ksuLg>Cfj7u2(b_?PV!-n9qv9el$0M@2_y&?V=glv1m?nJ{_p1$$WQ< zG>M!`BK0vw)Pu&HUk?b?`B#wUKOziTqs1_2&HOhA0%bGaoALfBD+)i0cuQYV&nOek zsjn#GG&B+|Ev-dcbR17T2GJvhQ0{vb#%Hwav-n^a>fk<+U_3xQoN!ba3q+FfB6DoY zYQ&3JCoy+ySA7mu@$!raH|{0ReIktYtKLrP)!J5Z`ZKkc1ouOWS`4eTT{~WFH-g5X zRxn%0Ya&VBC+?TM*aphqLY}O}7`DscONgQU`tk0IuT_15I#e zH}&YMHGN+jS(l!WQ7NtTh3a3KpS7cJk2ZT*R&7|7(|v72F;zCAR9~{XGfjL=FR#{^ z-ejF9o)L2b+G@gRpedRN6_>;>s@JAIn#l;(Cg`JB3z{ynSVN0qHLWFcxlXLGwU%vU zTV{Km#Z}o(9FozZ3pHcYD~0hgff4)+R_YR2mzXVP$|Tu=dG;LfA~VXqqLLxTT&b=E zU160`GD?~!?@_ZZ*;zcyI$>Al@&m;!*-dsAgJcip_1TP37c$#jpjRe)iy^X)7|L8> z7;B3Cd_QZ753$lXftl=sqJVMBL76Nbl9R-L zSS_8xy7g2!jg`_FtSZmaE2OEcLC#}6GL1FJbk?^Pvck2PHLj(sc0I~yZn-!rGWA;7 zWAbsvbx+9Etmf?z_0gg~W5Pg2I1SNfV@5Y?^lI9Za=jY)vDUd!J|j1=s;I7S*;#Sh zBDb;vw+#=lo%vWD)-yv`1$1GRFr3xFf3dpg!x*!k=*HMd&18D&+2nXJk(I&jtN|Wl zZu7oguY8SF#3QV|x-$28j`cuVC^v}EoEVf+k(^?F|oaR zyY-lpJUMM{s#}k_)8?k8%<}9tWo~-%DJzpllg|Xw7JRY);{`^XP@ft-TF9p z?PKn0W*Haf*{?c@OaDp9X~uwoZUdZ22h>g)pJ*MNJb6KSigmEg+sq)or*)_qJG548 zLVHV})M-A$rY}gHmYlX=&g|p`>2AZ!T&*L_^doAeZ=Yx#sbh7faj_lLdu*SMeXOHu zQpLsgu#VQ%;WPTSj7K|*JK8L+>*%x@sne`ub%tJJC(lTmykO4M*(r-X#!i`$l9n=m z#(eA8X=%v|Q@rl0`OhWsCX9mVFx#43yE*!}B|DFt>}-z7)q7c| z=z?2Q^qXf&^%rg_&V5p9S8iOq=d|i1F4I*z%$Vsm!@)WfIk@X|>X~PqNO}vCj7BXicyAHZHcOb%EIq z3vSDBfwQ;^ob9kcx5FZxk=LS{s`gk^-42V)c34vLrFDtf4omfJo=dB1#Vt9dom#H3 znr~hyI)RSzGHY3H*G;L(OGo&oR2@x!tW(nz&VBXq^tQLNZJZy>)6gHR)6BP7=2zMr zcYaT@n(VU!>2NJ;gi^cN#`Vy3KW-U%Hvbtnr$isdoLr zGIhdKmZ(`CcY3!ReA>G10knWBXF%P~pC2elI z^r==A!CU$w^~pVbdRmJ5>^61of;9a;W1;?j{*1-y`}z2$RJD;ZgWFhCg47v01Ff5w zo*kX~PfnepOXkvNLE2oMCN8$U zxlhmbZpmqBa~Ca`r{iNgCVA@5X{r#;s16=FYRcS2sm_>=X3XrAsa0tbb$0PF+S|m$ z$0T`ZDNLR_XOf2&m)dfs>FK2!Fg~VNJJt=IapqYO=looiUk?x6ytVdDFjK@j_lR?* zj5AF+KCXjjvbrBBZSK73DS@U3Z`X4~k6wfNjB2+qIjzU+^q5$G<>h}98#ra|?Agg_ zzlmoc%(%;w(bRC~nyc>}Yp&)>32Q2|QdkcSpOc(6OEj7@YtAe^Hk7PJFvuepbA5$X zDBs1FH2O+Ude*wctE(`Q^|R**r?ckfEyi%HfsBB*}gs)rt3IAjKM}-!(9&*FjLHM$9gYZ3zE8#xl3&NX(j5mF3kPECQ_#4ja|axqgF3HjG0Dn`H76<4x5#X4LWh=hAy!h zAL~_JL#-J}qrS9JlDBmpZ?k=8s(76$UZ+xbZ%J`jrSfT|$JI_PPLEiJ9BBS zzi+O;|3K&R0oxv8jr*6BZz*HJRBCz>X2UlY~C!yK19)I=Ndb>AA6&_u6sP1MF9(rEq(Z-{> zN2o_59X6;H`s!^nbl2O44t09>U)}9oC@$8axqU@%UvfY1{+;_7_ml3&-H+<+gF1Y# zR``bA-m62Mo}6A*B~qdLF8A$(n{;Sy>(HaO`+DM^a9>WiSchpkG-GC~ZJozdRW|pD z?)U3(lnyByF++9OUxz()Xr}C}w-eoC$hnmcBXnrSgt)U-?_N)b-a0g6%+Tu2LEU~< zp}XEz<#a1^E7D=U3OzdL?F%|Qr^75AeyKud`V%_l6SpJk7F8X-qr=yA_^J+HbbFp} zpVi?;9j?>i<2rm)oxR&a9nRC?OdU>f8}ByGZG;X7>#%RFu)E&wq{9Rqn(5o=?G`!= zcMB%x03FuVp&8?;w_U82)|=MrIxMIa+Vr*==IZUUDstI&hXZxkTZdhB*g=PJI&7oE=K5HnI&7pvGp2!+9>?mgLqmsV zj1FCYb;XWu3yWQ^xL$HSufy+jct(dOb$DEdM|F5mhh};+e9!d_a@(uJmvy*Hhud|y z$rTH7eL{!Jb+}lEX*!(kI+brH>hOLYj#8m&FV~@}eFX4RY+YD)6wrOA2p=SEp zZQBP0C4m<16j7hB7<~ZY3+tq~JQ`(BXB3wg=mf{7euBp7vs+;6qIJNzT+Lraz zs6*CQBMr70V{lalf6lC3`SS`r(x}kmkP1BlsnEGq=rmqxG$OrJ8tJ8T@X|TxUXv9n zmCutp&67IKlRC|lI?a}Mr}x$AebrcqZ&leAs#3AiruOw! z`?4O!w)m90u%)=B%Xv+g^RkY=rqleSaz~j#|_oT4b{gD)yECh#|>5K z4RvRjl%aaBrh2cY`rD?uJnFtb$(1ctlB4>FFGzJ~^81#rRj5lP+Q0OP&tZx8wA;<5WG!aeCizI!(DwQ?7F;*J;XinsS|{T&I~}DPgY( zmhC#+s6&TZ>8f^?=593 z9lzD`65Ct#5w}{@5x44cZq@0xs`QLQPy$z|lpY?|=^xhLKCE+lSm*YzS$@48t>dH3 zZ5=;QZ3}%ALe7Ygx+0_|2{{TYUFQflnW5T?^)J1b89Ga=YIv)z2R(9>TXlSYUH<;M z%s01nxLWVKTF0-}XR%c8wOW5WN1yu~%NEKo zM;~#HKH?m`*Brgq99_0K`nV_bzIxm&=a7TJJq_xa03p;f0bZ;XMzBt)o(Tx!?wlmi ziWTL4Y^l4#x-+7m#OkklCSZ(yCg1_qeOK~XJrgijUl&dn>Y0FL`a1Vx`k8?Bj4%&z z_r^!OUf|A!6Rb0eSHOCRh zJB}B4T_@%l_*L(t_f%WNTs7bC7CL@1W1V}I-7U@C<7&=gw-~=k!+1@%3J2Tj_6ftLd!`?C}D%yT`#i)$yw%i<;lT)(;}w@t)(j z2xXgEHA~ALL2Rqio9Bx4JHEn_gyVhqkuqgD9@Y8&DuNvOYOChYtPkhe679I?IIe2b z@ti}=_4S`_`%=pAvua`fxc;TzYXuHeV*WW^*6$6u4spkyqn0YFzN$V4vkeWdeVF&2 z`J!%bu81_{>V~>Iun|`>`tz;w5|P?V#Nj1U@gnoF)z0EEyhK;L#5S%oJWnk!mQ za#d-Fc#6B@M~Y{-PBdC`kg?i^NYN$T8uIJX7Fo6kl)E*|H8 zJazZHZ+@LTxlL8 z2MJ&9?jAy@>dQ~pm*o1{L##rnTJz;TzQ1s$2J3OEPq1)~-kiUxI}hE?F1npvsiS_J zLw{XUs$P6_y}0Un@znL=MZL@?Ufo?w`|&b#FX63g#8$nN($WRrM194d}zU)^YkFble2YajO)d=H|lVAp7}sIkn8K}%EIB1)vJkni$=j`gHHw@41TNnb&}7w zzm^9t4o(Z6-DnHx?tH0z4>o!tC^cwG&;V zH65%Sf)82}6Z;#v++q5S@v*VjI@LH!>&K#ldena))>%*6rW%DramBPH-!!-sr%-h*6Mpkt8bH5-)8NJws5ao z5LaB=%C_P~t-F`Fw%%U6!gci|@mKDC?95%FUAb=lD%Zz*iofx+OmD%xv|J&7P5ZCE zYdyZ9uXDep?eQHsQBD-^at(W`cu(8r2VAw?&C@GZ$tZ}sm5QW4?*Wct8OS@m3-?;q zcU+SG#02nd5MGF17Q%`gLxkULtz*Ur*|Ji z|2r1O!F`S_aX&l&55hw*9wxvmpEPf+t`#tbw(#4%Wj{umPTijqnU?g3Yi6 zw!*Wp&5fFS>4lx_pj9tX`g3>>{p6vn~TW;L>>mQPwM^sv5hipqYT?9!#2vWjWRS|hQ`a#co`ZmLx*MPunZlR zp~EtCScVSE&|w)mEJKH7=&%g^mErS7aNG<=ElvJZ-Z75i|1tkb)IVoV4dn8k2N&QX zT!IyNh>LiLi+G5Oc!-O5h>LiLi+Bj0xC0OH1TXLgUwyBPA6M`E^s63W7=%MJh=3Tz zvfX&^4n3eJ^n%{d2l_%k=nsQnxT658JBrmE#p;e?O`l**r)h;Ru%>shrgyQXcd@2- zv8H#irt4VKQLO1G)^wB}#h?3|{JC%3pB}@X*{45uF!|G0_%qk_r?>FuO#SIE{OK+H z8R__QH;%th&knAEwXhD>!&9&Uo`#L^3~YkUum!flv#^cU+s^xQumg6&`>-Dlzz6Ul z9E3w~7(Rj{kO?Q*{}h~t@0p7*%b(n42hp{umeRa)pO3M{6V^JfO`&$!#4=QRAe z@64b3vHZD%$X^sg30#K?sC1NJC1qGi8CFt;m6Ty6WwI_>_j44=dX8`Df&R%@T$M*M z7c#&CF5n7Qa07Sn08j7&Z}4Hx>`QCafx6%a^+4T!rC$CJ0D+)>3!x!2g2oUGO&|oC zLMVi>Z#XoA2#6#u3R*%dP*0U||1x*yH4yC}8e*6~#_}Eq@sI%RArX?G19Sv+CH5ZZ z3|*irbmJJ^p$GJYUeFu*Kwszw{b2xU2f`q>2lGAzhQcsd=*Y%*XXCrG@!i?@?reN_ zHoiL>-<^%`&c=6V7qyR-4#+4$~ke0Mg!I~(7f zjqlFJcW2|fv+>>8`0i}fb_3s?jqlFJcW2|fv&9?u;5XqdcpKh0r&tu zgoAJh4#P)q1pZ0dqmaq=$GrawK7nI!-0>YMy@5(^pwb)o`+WR;KK?!*f1i)P&&S{A z9~Q?Z=m!WDE$UXzk$+k&>!T}ALP>?2dn8rHyCSO@Fj zDcAr{!$x=pHo<1t0$br(*bdLZ4%i79*y8)V?}r2M0elDt;Sd~#kKhPo!ezJuSD^q3 zp$M))F_ge{sBqk*HE+@njX_IeVH}tv;Ua4095usp*DwcCVLsod!ve@)ChSG(gVf`f ze2PG+HpT;m_{R^`c$_i8HT>gAM(A0x6QeoC1?*>l1zf-ttl$Rj-~pcC1>O(?WANHz zVI0il^DLMRb08Jw6Q2$Xz>8y7;G2KNH~&f*N-0Buo+Si2ZpmoIDKWq}fmH#XCnR;5 zGj$oM7`Zrpkt28?NnSkHQ~hlzdF7JVB~q0$#wjIbIr)7;exJy$j_=4bm^_1JGUvUE z5s#I;ODKh%JuZ{Flzh*S?-|xA0L!MDIZx8%QU*ImxFH+p^x32@BE?Un_=){a zvLDaNv0n+XSBS;t^rx;INiy!@LZ#$6NaAdyC?rK8`(0qa3yc^Rl4=nwh9$5R9)U+; z87zktuo51FRqzC?hBdGj*1>vs3O2yguo0etO|TiZz*cw`wsGX`ygvs!U?;o}`{4k5 z03X6ZI0T2`BRB$?aFYE`!D+b6=PPg(3ZM{*;2IP|30#K?sN}3A7+?VxaD~x)*MXWS zq$Ucfi9%|kkeVo@CJL#ELTaLrnkb|u3aN=gYNC*uD5NF|sfj{rqL7*>q$Ucfi9%|k zkeVo@CJL#ELTaLrnkb|u3aN=gYNC*uD5Mq&sf9vnp^#cAq!tRPg+gkfkXk6D77D3_ zLTaIqS}3Fz3aN!cYN3!bFXYS%IrBo!ypS{J$x^rm#ZUs*p@Q}v%{$LIV$c8o`>PTE zlfU|&GUq}bT!4#k3I10<#^|5DdQ%7G)Im9|Tuv*O)5_(vayhMBPAiww%H_0jIjvky zE0@#C<+O4+tz1qkm($ASv~oGETuv*O)5_(vayhMBPAiww%H_0jIjvkyE0@#C<>nZc z_vc^-?1c9jTkq%n0DJ%+!a+C$hv6eQ0+~>I411Z+SKunJ`cJEu)9U54dO59LPOF#G z>gBY0`R|TVJM%|R9sU8Y z!#;Qe-h{W{ZFmRXh4)+O+403Jl0J-)=fOtO+403##?2K zx61J6hw!uK{(EK! zXHmtETr10EI}a|vMYsf)+2;yeg#svqBDe;{Py*MX0)B7q)|I|@1U=#b9QRZPR-e= zIXg9Hr{?U`oSmApQ*(A|&Q8tQu?ai1W~bKd)S4Z8xJk{~sX03}XQ$@u)SR7~vr}_+ zYR*p0*{L}@HD{;h)J(US+PXq*U8lB+sjXsatC-pD1Jcohu;6Im%gb{gHN1IkN{!ysDJQ)r8~Z z@uTAw-za^SF*+H+IAtWITTT7uQNMZAZyxoVNB!nezj@Se9`&0?{pL}>dDL$n^_wRi z$NpCF{sgRsHLw=e!FqTKHo()c5uSlfuoa8&Ma&0_m=6{)A1q=%Sj2p=NUv_3rR=}I!lCAbd9-;R zZJtM)=h5bQw0RzFo=2PK(dK!yc^)lz9v@YNk1E1PUByRT#YbJmM_t87UByRT#YbI5 z7kR&HO;%Lk2JYa28ayG|@eUe#M|NhUtwzR!)U_xW&D?Pe`goqJ9v0>cBhW}G8YxxR zF*wd5SPV;GDLev?!ZKJ6D_|u&2CLu+SPg4nEv$p}@Dyx-r(q*J1DjwoY=N!tENtU? z|90M=gB`FFOl_$4FQ)yAY5!u{znJzfru~a)|69Gr|B1fmC;FbBSP%HK?Vpbosuiw_*nB=V zpO4MwWApjgd_MN4+W#u;f0g#Yl%|cnq~Ro4{38)$g9w{^APd zEutLxJf9gaJE4)z+JBto+1C!T56^-2W6W-Fwm*|&0e;5Zuay0Yxys~^j?QxL#gFJn zee&XptKce^;LaMsbuOV-sVnjH5)9xO3dyxkt{w|kHUHPy=$~7=$p0VLF7lb(<}b+8_uf(`IAY=mcE6KsYpuoa$#ZM4I7-k*aVuoK>g{cr$2fDhpy9D>8}5gdU` zILZE};52;C`KTT&m-jrl02kpBTqgbsT!jKCgd(^G#ZUs*p#mzI<4Z8W0xsYRi9Ai; z6-A9EjlYO-EMRr~pL&I8GS?-h&~wdToHi5Yl42LvCo&x0pwH!$>TOiD1)cp3eXi$P z$R%`Lfj$qDrDPbyWi_-~z5-1vhX95AXyp@CG0HQC~c79jFU_P!H-8 z-vIm}00JQh8bTvz48hO@LZB&xLKypoLo>~&J$iY5xu#X(;9Bd>98_B^&awSIQjHA`Pf$u_LYNu5T@VfPc&XoI-Fpt(I*oeitAVRbgF&W6?5upS%M zW5arESdR_M*onezDBOm^Z7AG^!fhzrhQe(q+=jw!DBOm!Z7BI7O1_MeFQeqkDD;w3 zp_lHuemWP0%_m(tEP#cMOca`lLNiflCJN0&p_wQ&6NP4?&`cDXi9$0`XeR2+M4g$a zGZS@YqRvdznTa|xQD-LV%tW1;s529FW}?na)R~DoGf`(I>dZu)=TK)R>dZu)nW!_9 z@y=1ycNFy-wjPr+&U0!4iZU%?sp8oq&VAq%qMJNVvl3iV~9zK>DgDb#lg z^_@a}r%>N1)OQ^9Wum@J)R&3+GErY9>dQoZnW!%l^<|>IOw@On@y=0HcNEnfMRi9} z-BDC`6xAI?b(yH{9I88q>dv9MbExhdsym13PNF(~KMgz_M^W8T#yej!-uaSwc|P-U zHHPt|f5=6Rr%_=hD!haOZTy~r-)rL}SDAk5i&pVZR z4yFF~ewVq};e67i!va|7$UvzXC^ZA6W}wszl$wE3Gf-*JgNB1f?E9sXI_=21?C9sTn9W1Epr5)C`oGfl@P2Y6eO@f>Mv5 z)C`n*1f?E9sYg)i5tPb3+Z^{4oQ5w@#+UFFoPn?58~7HoARE4e@8K+d^+(E(%XS`I zfQxVmesb(bsTn9W1Epr5)C`oGfl@P2Y6eQpK&crhH3Ox-h*FQB)FUYM2ueMIQjeh2 zBPjIJgNB1f?ECsRvQ&XDIcvT1x!{ zrDiyldXD=LVjPd4lpNGyLmijtX|ov{U7%Jrb9OItc29C9FFMCWjPF#i65@x>2}FZjh^xZNHqu!jolp#pp0 z?p=5U9))GF99F)|Qb08hh4cm_7XX4nE-;aS)Y&%qAZ3Gc&x zH~=5Ohj0)M!D09ajzA`S&x}jW!k8k6(Qh%M-(p6;#f*N7QRk1S^9nY30d;wNwV_ZO3bmn78w$0d zP#X%hp->wNwV_ZO3bmn78w$0dP#X%hp->wNwV_ZO3bmn78w$1Iv5Qct4VBtZsSTCd zP^k@-+EA$tmD*6L4VBtZsSTCdP^k@-+EA$tKcm*gitxTgc;6ztuO07e$NSpxzIME? z9q(($``YoocD%10?`uchYE40{9IJaJ?zVPcgu-no+=jw!DBOm^Z7AG^!fhzrhQe(q z+=jw!c-JDlYZ2bH2=7{icP+xZ7U5m(cvm~#)sD~myn56*g6~GcXx2{E$g^tH*^|3` ztlZIK_=nP$;D-3{vFc{ST&lw8CU<}@WER2IG)Wi(dS7vf|;VhU9b08Jw^L;uj zV7%?TCe7Wy{;b*rQ7cy%i(la`5i2!ug*!#8+zTchpV2dXM$hmWJ;P`844=_6d`8dk z89l>i^bDWTGkiwR@EJYBXUvpu;TLW(E5607_!hI`Tg-}YF)O~stoRnQ;#6Euj^(hBnX^+CenLI5y!2ZZQkK#Vq(1v*26If^RVkzQru~7PH`6 z%z|$*3%%fBawZK8M3gSv#bp_W^K4Jc2j`e++uCGvHT15=uPXKrXN>c z@1j$O=kah{HNIdJqQT&X8t-Ok*y^5v1ilx1ZrM-$y4xp0*=;Q!8 z`Tzdv{x-&e+c|FSJCgpFyOB<^|0y^P<`q756{#FQeYY!ofBMcPeDq~}^ksbXWqkBy zeDq~}^ksB*leN05+;Q|e8q3EU9l{$O;%dWweDr>_b`!63Nd3nqdddH7?XC#b978q7 zP|Yz^a}3oS!%G$6rMQa}0w55ApdmDZ#t;lmAOxC1D1@$ALN|`l9eO}d=mou@ z5A=n8&>senb|4I5dob@qU?>cO;jFXOzQ6cB6n{TF01v`LFdinrL`a57FqzfTDb)82 z=0Y>^?z3Pv%z;#x%Xhckhs<#n!D3hfOW_fC6qdnqSOF{HF<1ppz-m|nYhfL%ho@iz zJPjM+8Q27yVGC@9XJMP;Ta=!K(zEc2S$M@PykZt!F$=Glg;&hND`w#pv+#;pc*QKd zVisO83$K`kS3J+?NUih_3I0Ik9H}EZFK{k8`-#gx9^l}QTIEPid z$=Li&#^!G_Hh+_``I~s!EIe%%o;C|ln}w&%!qaBqX|wROS$NtkJZ%iMe1IbHOsK5sOvR1@xJOmpA6R{t}^<4b*C_QU13cZ@V^)EzZdYo7x2Fq@V^)EzZdYo z7x2Fq@V^)EzZaPKc{20!Waj6|%+HgVpC>avPiB6e%=|o=`FW!DTxNcr%=|o=`FS$) z^JM1d$;{7_nV+O3%tRX8mj|!!4K*| z7=%MJhyXR??#6p}=m9;U7xacc&=>kae;5SAnZJ!;L@^e|>DfR&wsVs+xk4{-gPk`{{d|VHexkHr`_9zK>@kIr%M5z8 zKe|g53)08QBNug5<2rk&`zE;Wg5Pv@mJZv9;oIR{MV-tjU-#OXGl5K6yRbPG_My?c}i*wcS`>Nwt^UMg( z>6yo{U`ZUK{_RJx1iCegN(zj+?Py7HTgGjPJDy(asFwacH*fB_R8}A5)9RzFQb(zd z-&-BOjOUqa;%iE~f~QSt;x|^OU&q}nI^NOJxMX}>9lt>y;~91JKS|YDZ>x@9!_z6t zs^fQ8$FJr2O`b?p=`Dw-S)OHPp6JK?u%SM8|7N;=1F7RMzj!|j@6xRAiWk0ik#joA zX_cXSB4w}2k0kB8w&K|5D_4HLZk?(P8MSJaY_N8%YPsG76Uje<=Sju<_VICv?Gu_e zZ`RDYr8fcs{2N%^lJuLknL6CzSKB27wQlu(5uHNALuN)NQlt7PT3^0SeO;tR`BgV{baWKPocRxqkN&l; z{-7LDPNn^q@>ssER$eH|;OuE>vs_Q{AJ>#J%yKE^neoec-d&Yfwa^(_D3CP(vxRD! zD1_SbHFT4_@n-jl3GF9ze{cWrwJAwS)LG@l-Rt8g_3AY-;mP<3j}0C2`1k~~1uUpY z80x>nTF8^%2^xur>Z=yNYtH_1W#!6!cgtSBu(ut16etiIp$P<*KIFt*f>)+E?$d^~f{I+TXoO`?@;g88J9LFyGF{#A@eU z<=<{Q!n9ict>#GbX=jyGA5r-@^N6ch#a6z_EQwN@8NZBY$L|)uoL{A=iC4bQOuvFB z@@nFh?=$1qu~M$%QTTn@_nGk?=Zeg*Rj#l zE04+f54_~nVKP4BiOESlJI!j-CTVido>MwR-`Bmb>*~N2`^Ht-q1~eTAN&*Tw3=V2 zP-hidIp3fp)$!}q9YQJ|e`2?&+BDNI=f4iB{z}#IbGM(Za-F79WYC^UFZq-@TYbh+ z>(;5>m_L3ApjL0Jbdm3jeX6|hq#Mk=|ODQ7T@l5g+HvT`ocnwv(=^MUK?xYsN2g zm@4Vc-aplfS8KcUv|-{Od($ z$z2>R#V=Y->UdVU;hfTiFVEKGaGpHTGB&(<6rGdS0a>7e>|T?b&8QdKG^9Ap2 zV%wxNY}7Einf$skaaekHr%!!{z11(MiDb!urM=Wue68|=^#8c>Q`xg(%Wi%ee?;Zx z?v?y9lv#%;fW4@ZSW4n1*YlJq4W?VVk+apRZMXOC2>FoOas7Iw5~YSlx)$Q~zAJg+ zRojY+*Lj-pkMo;aI-Xkm8R_pD$Vn@2ktkbMW_O{_A1}xM zW7R*X9er@E2}>aR=+PZxGf8^CKua@Al3(w6GN7aMe|UHB`_tcRYndTNKCbof<6%R!)qPFGjUOYEM^uZusx3xVrCY zqdk4S^St-y^Jbu^)Wz?ZsJnqxee9ukFmt6px;@`&k5@bYm$b(_#)$6r<5YJ8>Uh)} zrKOF`)Fw~c6xr5;$ON=Lmg!nEB`~J{_UQ}>~N!WPub3B z7Oq@Sh#|KPUprNeQ-(XoE5o}@NC@dLBwD>C4fXE8IAth4Cu#EPp+iPcH6-bKYLD>UO*Re2*Fue^>KuYO}posXGb`D!zM z1;5{+>f4OJq0gr!R|jg1eC~cu76#OT@CWBMa>$6~$?!+#Xgu2PME|#-x{RvdFw3}( z{{x{sW@E=?i#NZ2Vxd1_Y}O-CM!8mx5AR+|94*x2rHY3txM_HA!Y3_#KZu;#v_0>iWe4ujw#5)Yl?3EduVF!9Vt!s)IPt82X+Dz3`yd_B<-WDAn7rlLN z-?6l%_)!uG7 z-p)K~GyL{%=2tbxt@3?$KmMmqC-}SNxYHYQw&>X`&wBpriRwM;G8%|tRMkqUxT^PT zpU}>=eL`Yl^;}H(HdjVfGHC3wgsI^plj4#h?&;U}o``Pq1`K?p#njLqEnCKzF`K+P zc1nqA9TD0jqES%O=zfVk#>XbKO$iHa+N5zprn-fs)qEDbqx)7*3fop$Z*Dg zN{QnBRGF%$W`Ck=ZJZ0@fgujiL5^!V2C3;!iF z2X7m$dYK-qpt#kidfPh(Cu(9H&O};Qv6@p`EpZ`6tba^9i}o4x%2dC6;N2BZzBVSh zXJGvSEh7_~Hod21{g%Fcg5v`c$Hez}WOeMsq0v!Y2lQ>&en8~Tp&R9^A4Y8*Te;7> z&g;S9jbcK>qZ_)qj&=8nf2do(S)GmC`a$)kT0K0hEqk@7>?$u0nB9fiZh(2u!V2`* zi=J1HN=tTEt}(_MA5`==IzIU%-|1ASR;4n>4mw?xKF#zmR!u{k`^jgjXSxljCyqk> zjnQqrp8xBk)YlR9so(3Q*GGNL+jIP?alG1O6hCq7>Op%Vx;1anx!In9Pk0SnHA=o- zIjB|Fu&^$zp59Got>monRyh|OPWVt z=Nz$gbi}LLtB&8m|H|^LPG43XzlL9vQ@__*m$p7gZ8OSFmhttQ)sL4lw6b{b7k$pW zT3LwuI%eEsuFEi%wtP=Y)z%iBQl(~`7;h=Nxa-v}FF*2f=ZwExeB_l*udrL5(Nxn_ zy>ooMw{DFoW^3^LoT^1LUe&r8zlz`Ns)<*%ZpJU;SH)`LRjr%xD`XGO!(9J6tj|NQ zQzly&$8s)VGSE^#s(!rTa;$!3@u83F%eoaKrR$Q!)7X09>lvGyV+CT{JM z%;AGuh@5<+a@R-G_^R2SyJMs^7b~Lvir}p}Sc|3J?=JA&6m0B0&H(Va1eydhA^qfeIfa>4oX%_CO z?QbgnUF~_y9Fm+lG*acS@=?-{zFLj1qRfsez+X>|wJVw^TSZ4UZ0_GVc65i1V`3_s z@2twP;@{H0d9;62!zLZaL`RQIs{Bk3NK6lBuP$lzQIr;RmJ8a{%EP%&ki%{?;XifO zW#z27)B2r-3H0|hm>cL7R6Pg`2ncMS6xAMO$zC(MbeYjBc37On5<9$JZ0E+Yp`o!& zg5%Z%25$H4nKocRTF>UaTAyj%tNHpKap4I~nk0mWC4{V8wQ%90O5M8pxW+Hk_Cjat zKCOErGyW@Qyj8C5uT~PwSbjA~m$KcTEoYS${(E^RJAM8imfI+(S&ed*sJfi1`YX+v zu_vozmnGH2)|~4K?i#I$f2TV2x_)MCOCw1ZJ7eAW?{h&lsVza(@oV@cs+wFft8-b~ z-i$4`Y?URfkZh2oW7MzenHe|jeUFhvO$Mr!5asQo+Upf--GxV@6}LeDq^iYJXS>Ux zu_F>(ToOja_L8ry7nPa~^x=fZ`nR)!>m znQc#q?^eGgazU1G*O%GL+%`I^TK&>1R#ur6{XHs%{i%M{G%CPz)>Ur=(yFxu-`xa z5T_scopKmAs>cffj+W|dX%}7p@~PRXUCh!bg_xyWj&D`%Vk$?qOK4TQI7hDmPCLBK z5M7&LiGK0YRkuf}MED0k5!(xJ~EKvq;4{WrvM$@NS_i4EvGYpRpp;?^9D5t4o zH)I48iQn+2hV)egMln@BAd0S2E5lqRsG1K31X!XX17*_zi~4q-*`s-MQ{Q`jc>CYo z`Yaq|s-kIJaB$q7aQSGMSI>w0^q$eBezPD~nNa!TgZKBD+w;kggizI}@nN9}A#&1~ z4P#8(vA7snF3tHhHPwEP%U`v>S2Z&Z#VY?6!5x9jHt0gsNUN%hrk}c7{n+KC%6)%O zMMm(NH5F&8eb(>Rlh&_M7yaI@BYio^wSA;p)e4FpA8Q#mANEM!J_`r-Pwi%LspLOb z_LM=<;SuedH0>A_(J5e5#8j^y=>t%6*VKMKP3rTXEZek7Y7*ADb?Yu+4I7SX)ymY1 zQCF*)U!~TnUQ(rM;?-}SwY^Q%zh9baasOeddRJ-uznAVdt(U9PplVf0t6Zgh5Lzcz zY2A!n7U8sjTCr~YHZT3{UCwlcK%CX_%1fHLtcy2e<5gQYWAT#w)*ipl&UHm0FBy5* z(f`ximjJd^U1{q+*;c$S+GShTE?KfI*|H>C^1j7O5<8pi*om{+AuECGA&DUg0YaeA zLcpvo4GaurfYNDchYl@khoK8YTWIOZED-3*GL#a({NK6nX|dx#I{*BCz_NAq?mg$8 zd+xbsyGJ;;cajB?VgPc5e^+QtTTNfdnk-{snL|9wZW0P&t0UIZHCfq?vgvo(h9gJ7 zYdUz+if}Hf!E?2o!m?L3Bprd!>)oHhgDh=ezkSTqT2~Q%rGMd~49`o_UY>A6#w!|+-_znm|xEDY!6d}V{ zv371vitY6~j4oX)FbEyW4;|_}&FQDpUaU3^NMm8$k)N!fIEDHGBd*iV8j{No6z83# zlF`86#{h=@iSP;w+a3cjK=NcI9ue8&L65!CLtKlUk47MXk@EwVm%jsrAtH)cO(n zy^}J+7{bOvX&)k!OrHYZO`);vFm2TZ)*tBXE$Z zdBkMf-#_&5%jvI(+Nrbeh#xnLZwj=IpidaqKYD-*|BmQ`XbE{q*#`-BW4RJG8Ny!EkVKKzcJQL`LiD zhVX5IqKTC_%hficDY~?>YDvBLFY^1GrWMuxp+@mlnVJQFeK9++W<_0iDOocq8z#7{ z2IETnO)DdvcaO?+JA~g-q=?Qtf&mNa0{cC2#>x9W0qqT0$Da#oT&e9Cv=9vfK~;$UYh@0Py(U0wSYEZ9e{R?^q47ShkM+jn($U*6uf zv%7m&`}L(E=!V=-3zgEGISei*{!w0u!-@0Q%ViC<`s_3$NjB_IkJY$39M4BJlnNt~!gQ&gH1btGS!~tXqtxqIA$2bGc(y zYt)U`1eJ-iBuuVx$#mn^n@l&^h9iy(3Ng-cb6RhRUuaeOLiKD0n8SJ-w@TJqbxCne z7EJZ;`?@@m4*aa}#GyTV#ILi33G)rsg2eBD4rz1&+mWIt7YRLXI|6$3Ea=KFi(iny zld%%_9AHfhnES=hPE{+zQ!VO|0eeU@ znq^kID!I_iu30{&)$PpA@sm`6%zu*aB%H|DF;}(|HQl@w_eSAUG|n|{T$s`Lqy2pR zQjM$fK3O}T1&4h#VR_;#VZawWCBdV!gdtb=1AL$R2Xs2%yi5s`q{)Vql(I%)k~FaT zTfU|9jYEbucX6pb+z_?}hGR{etV8@p*@f zb@_SuMR^)qebxMB#LFBmpZyEc>^V)P*53geI5958?SnqKo^0Z@Ry`VClmHM z=mV-rcwXPeu?H=at#s~>Viq{}&wYfw@avhjK{DY?&ONhbXr(X+^gV8wxuwt`TkNXU z1~YXqX_)Q-8LHz+{u&_R&s#BeX;L-uFrS+J*O#s*|vi{-U%j7}BW3^vbH zbRs*lwwam4w~Y>s&&3SlTPggw`S{iTc3Vno8^V+KfgG%_e(?DANaPGX&%>zzh=ejzWM69$BA>( zAl-}PF%&~myhceW+b@6b{>jE8_y6eq&#xU6*xN`cI4T-gu#v{ zrIrMX<|M&7JU|$rRdu&xCQSqpaTLZFU$<%X~gg1%kz? z@D8Xz{#eO##c_ZpZ=oFR6y0@hEaGHgpMg!IEc8DOtGL4|i5+nWVHfvUNw^U;rB=yf zHM2G8v69+}bEFx@JyudXNd{>Y$z!F5WB~0GPoKoMKj3@3aCgRoFWs(yAFmNNe)w64 z1DRF;`JhMxl;ST*cPFW#c7Bdf#65A)aQ`{BoBqGsw=^0}+cL9iDg(79zquaA#OfGa zT%naQ)-e%n*xaVKY1DQ-UN!cwtk^O9dSH2^qOQ0rOP6nURF)T)>qDdUvC-P#U?j3E zu!Kcc#u~>$>KF4_|mgTiY5_ zjcHA5$GXT=xx-OD<-rRxHLs1-N2B#PijerHF0ZUC7k?lB4SDLt-u?t|=-!14Cl!D< zwyCr0lIT>q%U#Y2+bLzgL;NGl^Hx`T#rLqgcz@2>AIY438GZ|LJAI!;@!TWFnK>20 zFXHOld5}`eC_UL(70t;AET-wB~6-nmc9t|YGPoa%)Uu^OO22XSOLT>zq=ulv)R8wfo zT2;~|-pNj9R}IG4Ct{k(l$||hv9aw(j{*XX^k?N#%v0nPKcYCpH5Srz0U^^y@$An7T8S1?~r}Dk^L?pYQpp3%hKt zpF>?`mvSD((#_%)qVK#atF?-LrvJhhH;?F(_s10a^d#srj%pTnDZZk3;(tgf3M1&no(lxP0gWIyZ5c>3%Q6STi`irx2F z0X_DD6m68l-Juvg7A(+nfKZi<>>m8AN9w zMFeuOk`ypQYI7;do zK@lF{9tXP5$)WHC;e*m{ChrwSY8CIOtN#&?Vlk<=_@Z>CD9In8EaRA}V6F2p<~*Ot zks-V|^HioWWGO!bMZyi^3SXDKA-G*a6o?;oe5i-$oJ;n{U%VH)jr9q*%Z^B(6;YR@ zkkM=T!9WStIC?bkY^W(ui^I|4@iwHT#k3}i#b~lx`}6ZB*lq64ii%E8mF;F*)k<5j z$!0SZ+XfeP&+iuBAU!Rc-O82#QaOOHL%93uf|ib zP6Z7xF;LFWUe<)$u|zwSDI9zocuqpq#09ceFN7>D7Ct25xCxgsLPYy*QD!N&x zn(jH^9iKBF`Jt~o_JsI5_Tm-U!N7Ql-4w7|{U$jBxut7s16wxq5_|cctB0xpU5nZE zaT?4+{hp+cKm|tAzWwm;AE*_CGk1K*zApxchbynXoBgBMM;w*|tkvjemf}Xq=w%Y? zWJZ>fTs>~LRV(&PdMDI9K8i2YI~)zhT)nr(wrESF^WZBTwi}(xwCn~6>*AozUQ?`A zZz$5|v}|ta+TO(4n^~Xuk~2H1*aw z1$(Pj*gSm-Tr*rr6e4whNpXdd)j$)ktUxzTRlGRB>y$->`9*M(IVn1T zu1Z-r%Ua*|t7vYS-`%pM8RYEU)7kW5oTjCvH7t|{r!bN%yLPm-UfMM>D*lSCH3uzL zI<>8qAVj)AT*rn%Q@VEs`4)lN2@k-xtp`3@{%=lUXFo1;+_&o4V|X$h6z#canc!J+ zY~g~VOO_s6u;9otZ_Hwic|9?UrQy?Lf)dr$6hb~#>aI{ffgAN!_w zhW+T^XNw4MGJLj)9O&6HBL6=ge&_xmn|^B!837-X-~!&VjF=1WG}jVvwQXsczqijqNq$HX1wWIF7#-y@!f3mYjDS5UlyeSBl@X^tzT?m0?}YTw z3>o1DhVK6*8R1^ItJ%}-7s{jN*v7WDjZt%*R~hK`H1AwgR$W|NT_(Nqw3I-AWJGWv zoH<)YWQGTVpDrU1trz^CDkEmcZg>AC3X$t--P+Q%ueWbsXY)%ePE@lQ7k$(8j-pQ! z5&~*VkY@VV}OYvbD!hvi!O=-(+;{?MEKP6eY;5|qo9E@L@`^P2cBj2HS{gF;*ELzjC>M!vx?P?D;iQ&gI_F~* zRB<1@3MeKg$Pw8;zI)@&QdW3$>)g=AqCfnhvC%r#@I!=W=5dHqGDIspNIq1aB#%Lo z5(zmX(?Plh1vUMM|M5Jv~xg*L6?h z@@2uXMr$hS(977U;(L4tVYQda>$QC6*B)h~aY{q#YVocXnx~es-IiW(HBFz-%qS|% zGZpq?`C597#e>(a`4*d+d!e9>;al#j0Nco=7HPC`&!eRE%|W9td>Sp-@(a(Jv;>+( zhb%21TbHKNTbrcgkCRKwP$3TACWo9W*aOhJ66t5B+_klCPcWDrc6mY}kBdU~@NKVF z{1MN>Up5qp!0VpU0eO-=l`2hcX&~fwMskW4@4GfPUmb9`>mr^4uk99Wbo9r!*|DDj z7WCj$XsN!Tn`OwJ*%&ZS5*Gp0?^g4%ipZ9m1DjL_VogugJWXy1$1JyKpb+!&xP!r2 z7_xs(j1Lbh=%UP3{6m_X`B@%(sQ4`)ZVI2WAFl-eL&{H+PPC=CLzOy*WybrBQ5kMP|s0oeK7B^ZL5L z@^DS&zIi@pmBy}@z>k9V#9OZiN1~CXk?fjPcY16(Yf*(`G}bE=BxZ|MP%wN4IQv1G z3RS$GXBOf?#a~!C!*^z5_A}JUjEu(|R6fXIr`Nw&>TK3JEB?3DS%`NnEDT-iH&lIR zsaxfyzz||HsDP#aF}tGfb9;w|0^3*Ip}E=5!gsIORy{nt|K|Eb>_FgF=#rF5uv3;H zQbZTpIvGys_|0pawCp~#N8Bj*#oXNocb^il>8G1s+O`cvv!HR_xpgaHfU39bknlb@ zhSprE{P5}zBTDbtpU(aavEIL=eil|d#cpS9)Ne0fhS|EOpeYh1zAFfm|cMl%q z?av@;)R1Tw-hbx60kkX5tz{phLMg^sj&az>_wL)rDRb^B<_2EGi;_7Z$J+F-)(?2S z1NF;VIyzb=t52LB899BTdU4a&ckTQ}Gxf|zPo3No%m>Nuj!-^FM#g&HXBqE5Inex# zox8r?v{)X2dKR7gA`4^pNH%ID5|(RHx!taCFsKDf>Gisd3{}W1s8ks`G<`g@VqUgV zTY`UDWp?JsP@~IRk~S|bKNtuE^V8-ji@mNjBP09EOxsOmyH||vu-VspqploRmNV*| zu-SJ2YB8WT%TRdjKMIV6f2WZ(n`Fp#-WkSR7}?Fu-hiQQD+u_ zMZN3owjHA@c5^iLkBorYt$^CdB?Y$vhHwS}xR&&W)+?Hxe){P(%JA8jcI*&d*s+78 zxCPIb%>DeAt~fjEdF&BcD&t-)a;v5H>=j5Z6{_21PrnISWo0+Br@;F~WQi@MjCLvA z+Ro*7B$9r9(;Hl5mikGULu9fF2zPBxLbwaxAnERR#-)4t%(sB)V~5!b!pjoO*7Hvb z=lM-6XQrGMe?0RD>`9Sc_*Cj)A7Nq4T^5|HoFfQAUIF=BG*Hu5AxT;6B9RX*|KnA;&WTJbUz~hqjN-$ z9&aUjMBG8W%F18g+p^_z6BFX8En9A!m`HYE97YcBAw!VH=8q5!XvA#!b3T$jIRrrr zu}9b~GJh#radKJl!%9kSDG`5Ga!V;bMWGq`!B|1|h~h>5tb)$Cemo?7j?an|&B|Kg zHu86kLz=3P9Ln;i*S_1p9$P1doBz7zjKI#U6SEYchU?tT!ViQxWH>}nlW;z2jl+gY z)P^J9h04vHVdM?Vkn28?7)rTQq9tWA#gU=M2BKSEbpP^j_o1;+c=eS%>uy=5*6b?K zWQEptbZu#<-`MW&E9yW@(o&PbY(DwSdpS8{m)4FR?Cw6evUd5c z>-`JL1a+X^(z790x2dn^k~)*I&r|-Cr_<}}D)$BVR{K`jj7F;!{>&AFg9G#D&xhMm zK)v1%g~wob=~0m#cd%1JFmfCfj!`DZZ)C|T9hP|ln--sP*&?f(s~6PePiTClX1BVC zT`P`vZ;5qvwVKWP3bU=caARRJe7fGg%J68Uw9>e?7>+od4GysE`t^-%8!hYesw^hA zuGF+yS8jp?ai6rF2tSC5_xegx{&{{8}>=XLfGx%4yk;|4*P)v zUpsJsF_aAH+7OYeeTY`2>+H{!IQ|9HC%%TghkatlT4MESRjTGrnsoS9taERx}t|EEY6$pkYmOn#Jj+KZC1o zT4&H3ON#W))=+41MNRdnrPQF&nbdk`Q;omJBYrfq3ASrWhk;5^3AI555$mRgPpvhT zALUv!aiYa*7tY{IRZ{Qb^kk>{kF5>Wt~u5}aP^u{Xw9+q#`V$YhNh|o=D{3`PVds{ zTsplqXUMv!Vf4C13r~!WT(@B1by=udvtZ$|b#-;?jxAbn^@hk7k(3f!87?yq<>qRg z254>hc|+E+%}Z_^9z3~Z@yVg#8<$`|1+l~b1p1ThN14y{Smh+X+!shD7i5oqHl~po zwMnq2P!XkdLw(%_as}3JxS_hct7g%r@IY17K)80GvT`6lkXKlk7YJFrUMtIP*x1}W z9%~qHYME%*{p(+^$(ZO3EUgVLuC87jtX&#-z?q+uo9}j(mcn&`9A%uh&kJ9~Un<}! z+h6>qxZV!uoIS*g18T47|7TXAt2I{H>DCO zT2dO+Xp4|=oSTzxa1`SPU9qmFpddd#w=gHCz~Cwl)~C-PpMYxO9}0)T^$~m@L_Bht z;zrgdWR@<7e1f$d!nE$E70MN4pm31R+rf-tU8-!kHL#nUh*Fs9LDs;IraVi zhE*Zf0*w_uH+-MgyTX%@VF=@lC;3}OGL9SxRSGdM?*(s3AKbov?t9WJgnyV`0;>+* zj7{*1uHZY0ZeWmyBNe9XUx(E&Yv=2+$Doo()wC*`$Fb|1TQ)?a>)&0pX;G`*rq)>X zT4XcZzq5JKCUO6!MVo%KX!F7^gjdC4tHOAVj)lE=vQ2F>81S%Nud}Nk##8U&XA%Af z9USNG6e^T%@D)y&r04U36@54{Y)cN*thWx-R)_7;uFj~VdHej%eXjLo%}yVx`gEes z&kgr%rbl9onRfC^XjoUgp$4l3%%dIAl?krB(bL?UE?)=Ts zuy1`yiN3s4RAcX2ckYBF1x1C+aaKxIKS`RBPQ)vtP#TR=Zx3lPCX_h%^4@;<^w8-C z-#LEIH%!k6=C3(!f^q*H@kVyJ*dmIoQ~W3PtJSN|$ryi{#V6p*St$rYJC}^o4Q`0T zYW9lw+L0qHe{vFc!!b#wsAl=F@~Dm?e+o~~rzDjEig6)bsFz0Ai@P~W)Ym$>lI>qP zF5b41Z5m(6_KgC$O)JIQh_r@wEw1W!?&<`$jSaTUtegRP&1{Vt2t4P_)<%y!=^WttNZQ!)#gfvLvQqH z`W*voUV*kiryuZF6=(`H2K*-KS1Z1Pb$LEHYqzw1N3eWdlam`oa$YEG>^b&0cows6 zbq7_bx1(mU?e*LD+&(tNo_pmLRwVv`Mq7NYQ84oCYTPQI(b2O5(Bg@lX?rrsWTD|2R z?n?}sBBQZLV_@Cxc5gX~RJ4_Q+tIA1Vbn-%pel65LceeVI3ts;6*P1*RO@6cJw>r?c?do4t-VYwGo5>z@P)oqgC|s53rL~6CR2!7B*HTAkw;n$(K1oms`fOO^Di%>X)u@pvWULnN zUfs5ORs>168I&$H(qq4_;UFA^E+67xJrOHu7p zovw5jT5lX<>&Lpqn`m(M7|oAerxb4@P=X>NIB;w0WyyOB?Iz(X4yOElLcXc|r2JcO z#IGpFe`8mS2q=8OM}+w~Oe{e0SNsLg^)YZl&Ed>$8!X zdzT5NJ-2e5%_C&8Unn7ixx|sr=iTyE79lfUi3_9jD{g1=u=n8AhQ%J4<<_3+oniFf zKGW$SVPRyak-txp4aWpriop>%hgmT4iwU!yYK_+&znnjY8usxzI($xAj7B%a6|LCz z+;j_aK@bkH(>2S(C=<8OZPl37!YiTWH8smaWnQ&ai}mpcTHLTU$kIKjEuFXLzv7D7 z?J<`#X0yed(grmMT3giVjN0w=YFlPfYm6qf8o>~vvYEXsd>5xKw=oiuGg;Q7-Qsua z^_IMz(pI0v@6j17x%g8s>vU>$x6iB7t2I4dgw1HIR`wvjJd#Ls}Zq4HpT^rn=@|`f zN0mxY>&2bHgXy^iLR!S(s>(o_g?x`0<7jaE&4`RC=mYR}CoEX_DJh&4CZgW#sW0*8 zmZ`NxI=#g3vOI*p!u>o0*xnxyQ~zK2L;Zjj_rQ*++go#sa^~ZUEV3{$%sw zuGmU0UyIb$&d;^vm75DS^U?>h^U13x@4mDQc8GiVkQWP(mF_oR2#!NL*t)At98TUq=xhMQ!S0{_;&$oqw^ji<3ZBJQZ@RT Yi_+;6pf5_VCmb$Dw_o(2@Xmez2QTNB>Hq)$ literal 0 HcmV?d00001 diff --git a/public/fonts/static/Outfit-ExtraBold.ttf b/public/fonts/static/Outfit-ExtraBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0977ed52aab468b0da0c644aa982d1568f615a76 GIT binary patch literal 55312 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 literal 0 HcmV?d00001 diff --git a/public/fonts/static/Outfit-Light.ttf b/public/fonts/static/Outfit-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c18b0c18584950500a759baffb24a466781dac6f GIT binary patch literal 54860 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 TrgDP)B0Cx#pU=o0?9;wAnN@ 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 literal 0 HcmV?d00001 diff --git a/public/fonts/static/Outfit-SemiBold.ttf b/public/fonts/static/Outfit-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6b37eeb6ea6b9382526a0fb307f531962f9b7995 GIT binary patch literal 55496 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 XrO&59pO;QgIGm4O-*mh1_80#LzDa2* literal 0 HcmV?d00001 diff --git a/public/fonts/static/Outfit-Thin.ttf b/public/fonts/static/Outfit-Thin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7d84201a78f970b6adf3130ddc7bcde8125a97a7 GIT binary patch literal 54584 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℧G^XU*?sd-1ZyMnw*$m=6gRg>3wQmXup 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 z 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 BwE_SD literal 0 HcmV?d00001 diff --git a/public/images/Calendar_02.svg b/public/images/Calendar_02.svg new file mode 100644 index 0000000..ca23542 --- /dev/null +++ b/public/images/Calendar_02.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/Help-icon.svg b/public/images/Help-icon.svg new file mode 100644 index 0000000..cbd3f18 --- /dev/null +++ b/public/images/Help-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/House_02.svg b/public/images/House_02.svg new file mode 100644 index 0000000..ec8c2f2 --- /dev/null +++ b/public/images/House_02.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/Log_Out.svg b/public/images/Log_Out.svg new file mode 100644 index 0000000..6384e06 --- /dev/null +++ b/public/images/Log_Out.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/Logo.svg b/public/images/Logo.svg new file mode 100644 index 0000000..90548c0 --- /dev/null +++ b/public/images/Logo.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/public/images/Mail.svg b/public/images/Mail.svg new file mode 100644 index 0000000..281f684 --- /dev/null +++ b/public/images/Mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/Notification.svg b/public/images/Notification.svg new file mode 100644 index 0000000..6e4ab09 --- /dev/null +++ b/public/images/Notification.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/Octagon_Help.svg b/public/images/Octagon_Help.svg new file mode 100644 index 0000000..cbd3f18 --- /dev/null +++ b/public/images/Octagon_Help.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/Tasks_2.svg b/public/images/Tasks_2.svg new file mode 100644 index 0000000..c0fe07b --- /dev/null +++ b/public/images/Tasks_2.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/User_01.svg b/public/images/User_01.svg new file mode 100644 index 0000000..5328356 --- /dev/null +++ b/public/images/User_01.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/bg-1.svg b/public/images/bg-1.svg new file mode 100644 index 0000000..084a43e --- /dev/null +++ b/public/images/bg-1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/images/client-1.svg b/public/images/client-1.svg new file mode 100644 index 0000000..9ff4c90 --- /dev/null +++ b/public/images/client-1.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/client-2.svg b/public/images/client-2.svg new file mode 100644 index 0000000..1eb255e --- /dev/null +++ b/public/images/client-2.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/images/client-3.svg b/public/images/client-3.svg new file mode 100644 index 0000000..c4436dc --- /dev/null +++ b/public/images/client-3.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/images/clients-icon.svg b/public/images/clients-icon.svg new file mode 100644 index 0000000..13fc66d --- /dev/null +++ b/public/images/clients-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/clients_02.svg b/public/images/clients_02.svg new file mode 100644 index 0000000..d7080b4 --- /dev/null +++ b/public/images/clients_02.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/google.svg b/public/images/google.svg new file mode 100644 index 0000000..8caa40c --- /dev/null +++ b/public/images/google.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/public/images/home-icon.svg b/public/images/home-icon.svg new file mode 100644 index 0000000..fd0be03 --- /dev/null +++ b/public/images/home-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/icons/presentation_02.svg b/public/images/icons/presentation_02.svg new file mode 100644 index 0000000..f7f5f4b --- /dev/null +++ b/public/images/icons/presentation_02.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/icons/sqbox.svg b/public/images/icons/sqbox.svg new file mode 100644 index 0000000..42c7781 --- /dev/null +++ b/public/images/icons/sqbox.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/public/images/inspiration-icon.svg b/public/images/inspiration-icon.svg new file mode 100644 index 0000000..6b44f75 --- /dev/null +++ b/public/images/inspiration-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/message.svg b/public/images/message.svg new file mode 100644 index 0000000..d018be3 --- /dev/null +++ b/public/images/message.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/pants.png b/public/images/pants.png new file mode 100644 index 0000000000000000000000000000000000000000..fbb3d6afa312d6a23b932028c0684a339ccb6902 GIT binary patch literal 33663 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 tjCC+9Ghn(i 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 c=brCpFVdQ&MBb@0HsCe6951J literal 0 HcmV?d00001 diff --git a/public/images/presentations-icon.svg b/public/images/presentations-icon.svg new file mode 100644 index 0000000..981d6a1 --- /dev/null +++ b/public/images/presentations-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/profile-icon.svg b/public/images/profile-icon.svg new file mode 100644 index 0000000..b97674c --- /dev/null +++ b/public/images/profile-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/schedule-icon.svg b/public/images/schedule-icon.svg new file mode 100644 index 0000000..6c33e40 --- /dev/null +++ b/public/images/schedule-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/tasks-icon.svg b/public/images/tasks-icon.svg new file mode 100644 index 0000000..00d1bb5 --- /dev/null +++ b/public/images/tasks-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/twotick.svg b/public/images/twotick.svg new file mode 100644 index 0000000..308c549 --- /dev/null +++ b/public/images/twotick.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/images/user-default.webp b/public/images/user-default.webp new file mode 100644 index 0000000000000000000000000000000000000000..eea98f46eef24a0512abac3e484be122770af8e1 GIT binary patch literal 5214 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 literal 0 HcmV?d00001 diff --git a/public/next.svg b/public/next.svg new file mode 100644 index 0000000..5174b28 --- /dev/null +++ b/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/vercel.svg b/public/vercel.svg new file mode 100644 index 0000000..d2f8422 --- /dev/null +++ b/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/api/auth/[...nextauth]/route.ts b/src/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 0000000..59ae92b --- /dev/null +++ b/src/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,212 @@ +// // pages/api/auth/[...nextauth].js +import NextAuth, { NextAuthOptions } from "next-auth"; +import User from "@/models/userModel"; +import connect from "@/dbConfig/dbConfig"; +import CredentialsProvider from "next-auth/providers/credentials"; +import GoogleProvider from "next-auth/providers/google"; +import bycrptjs from "bcryptjs"; +// import { sendConfirmationEmail } from '@/helpers/sendgrid'; +import { getToken } from 'next-auth/jwt'; + +const authOptions:NextAuthOptions = { + providers: [ + CredentialsProvider({ + name: "credentials", + credentials: {}, + async authorize(credentials) { + const { email, password } = credentials as { + email: string; + password: string; + }; + try { + await connect(); + const user = await User.findOne({ email }); + if (!user) { + throw new Error("Email not registered"); + } + + const passwordsMatch = await bycrptjs.compare( + password, + user.password + ); + if (!passwordsMatch) { + throw new Error("Incorrect password"); + } + // await sendConfirmationEmail(email); + return user; + } catch (error:any) { + console.log("Authorization Error:", error.message); + throw new Error(error.message); // You can choose a more specific message if needed + } + }, + }), + GoogleProvider({ + clientId: process.env.GOOGLE_CLIENT_ID as string, + clientSecret: process.env.GOOGLE_CLIENT_SECRET as string, + }), + ], + + + session: { + strategy: "jwt", + }, + + callbacks: { + async signIn({ user, account }: { user: any; account: any }) { + if (account && account.provider === "google") { + try { + + const { name, email } = user; // Access information from the profile object + // Check if the user already exists + await connect(); + + const ifUserExists = await User.findOne({ email }); + if (ifUserExists) { + return user; + } + // Create a new user using the data received from Google + const newUser = new User({ + userFullName:name, // Use name instead of userFullName + email, + // Other fields as needed + }); + const res = await newUser.save({ validateBeforeSave: false }); + if (res.status === 200 || res.status === 201) { + console.log(res); + return user; + } + } catch (err) { + console.log(err); + } + } + return user; + }, + + async jwt({token, user}:{ token:any; user:any }) { + console.log("User object:", user); + // console.log("Token before update:", token); + + if (user) { + token = { + ...token, + _id: user._id, + email: user.email, + name: user.userFullName, // Use name instead of userFullName + }; + } + console.log("Token after update:", token); + return token; + }, + + async session({ session, token }:{ session:any; token:any }) { + // console.log("Session before update:", session); + console.log("Token during session update:", token); + + if (token) { + // Ensure that session.user is initialized + session.user = session.user || {}; + + // Update session.user properties + session.user = { + ...session.user, + email: token.email, + userFullName: token.name, // Assuming name is the correct property + }; + } + + console.log("Session after update:", session); + return session; + }, + }, + secret: process.env.TOKEN_SECRET, + pages: { + signIn: "/signin", + }, +}; + +const handler = NextAuth(authOptions); +export { handler as GET, handler as POST }; + + +// const handler = NextAuth(authOptions); +// export default {handler}; + +// await connect(); + +// export default NextAuth({ +// // adapter: MongoDbAdapter(process.env.MONGODB_URI), +// providers: [ +// GoogleProvider({ +// clientId: process.env.GOOGLE_CLIENT_ID, +// clientSecret: process.env.GOOGLE_CLIENT_SECRET, +// }), + +// EmailProvider({ +// server: { +// host: process.env.EMAIL_SERVER_HOST, +// port: process.env.EMAIL_SERVER_PORT, +// auth: { +// user: process.env.EMAIL_SERVER_USER, +// pass: process.env.EMAIL_SERVER_PASSWORD, +// }, +// }, +// from: "hello@checkroom.io", +// }), +// ], +// pages: { +// signIn: "/signin", +// }, +// callbacks: { +// async createUser(profile) { +// // You can save the user to your database here +// const verificationToken = generateVerificationToken(); // Implement this function to generate a unique token + +// const newUser = { +// userFullName: profile.name, +// email: profile.email, +// password: profile.password, +// phoneNumber: profile.phoneNumber, +// verifyEmailToken: verificationToken, // Store the verification token in the user document +// verifyEmailTokenExpiry: new Date(new Date().getTime() + 24 * 60 * 60 * 1000), // Set token expiration (e.g., 24 hours) +// }; + +// const user = await User.create(newUser); + +// // Send confirmation email +// await sendConfirmationEmail(profile.email, verificationToken); // Implement this function to send the confirmation email + +// return user; +// }, +// }, +// adapter: MongoDbAdapter(connect), +// }); + +// function generateVerificationToken() { +// // Implement this function to generate a unique verification token +// // You can use libraries like `crypto` to generate secure tokens +// // Example using crypto: +// // const crypto = require('crypto'); +// // return crypto.randomBytes(32).toString('hex'); +// } + +// async function sendConfirmationEmail(email, token) { +// // Implement this function to send a confirmation email +// // You can use a library like `nodemailer` or an email service like SendGrid +// // Example using nodemailer: +// // const nodemailer = require('nodemailer'); +// // const transporter = nodemailer.createTransport({ +// // host: process.env.EMAIL_SERVER_HOST, +// // port: process.env.EMAIL_SERVER_PORT, +// // auth: { +// // user: process.env.EMAIL_SERVER_USER, +// // pass: process.env.EMAIL_SERVER_PASSWORD, +// // }, +// // }); +// // const mailOptions = { +// // from: 'hello@checkroom.io', +// // to: email, +// // subject: 'Confirmation Email', +// // text: `Click the following link to verify your email: ${process.env.NEXTAUTH_URL}/api/auth/verify-email?token=${token}`, +// // }; +// // await transporter.sendMail(mailOptions); +// } diff --git a/src/app/api/hello.ts b/src/app/api/hello.ts new file mode 100644 index 0000000..6cdcfbd --- /dev/null +++ b/src/app/api/hello.ts @@ -0,0 +1,5 @@ +// Next.js API route support: https://nextjs.org/docs/api-routes/introduction + +export default function handler(req: any, res: { status: (arg0: number) => { (): any; new(): any; json: { (arg0: { name: string; }): void; new(): any; }; }; }) { + res.status(200).json({ name: 'John Doe' }) +} diff --git a/src/app/api/profile/route.ts b/src/app/api/profile/route.ts new file mode 100644 index 0000000..5f6d0d3 --- /dev/null +++ b/src/app/api/profile/route.ts @@ -0,0 +1,33 @@ +import connect from '@/dbConfig/dbConfig'; +import User from '@/models/userModel'; +import Profile from '@/models/profileModel'; +import { getSession } from 'next-auth/react'; +import { NextRequest, NextResponse } from 'next/server'; +import NextRequestApi, { NextApiRequest, NextApiResponse } from 'next'; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + await connect(); + + if (req.method === 'GET') { + try { + const userProfile = await Profile.findOne({ userId: req.headers.userid }); // Assuming userId is stored in headers + res.status(200).json(userProfile); + } catch (error) { + res.status(500).json({ error: 'Error fetching user profile data' }); + } + } else if (req.method === 'POST') { + try { + const updatedProfile = await Profile.findOneAndUpdate( + { userId: req.headers.userid }, // Assuming userId is stored in headers + req.body, + { new: true } + ); + res.status(200).json(updatedProfile); + } catch (error) { + res.status(500).json({ error: 'Error updating user profile data' }); + } + } else { + res.setHeader('Allow', ['GET', 'POST']); + res.status(405).end(`Method ${req.method} Not Allowed`); + } +} \ No newline at end of file diff --git a/src/app/api/users/login/login.js b/src/app/api/users/login/login.js new file mode 100644 index 0000000..1ea8460 --- /dev/null +++ b/src/app/api/users/login/login.js @@ -0,0 +1,63 @@ +import connect from "@/dbConfig/dbConfig"; +import User from "@/models/userModel"; +import { SignJWT } from "jose"; +import { getJwtSecretKey } from "@/libs/auth"; +import bcrypt from "bcryptjs"; +import jwt from "jsonwebtoken"; +import { NextResponse } from "next/server"; +connect(); +export async function POST(req) { + try { + // await + const reqBody = await req.json(); + const { email, password } = reqBody; + + const user = await User.findOne({ email }); + + if (!user) { + return response.status(400).json({ error: "User does not exist" }); + } + + const validPassword = await bcrypt.compare(password, user.password); + if (!validPassword) { + return response.status(400).json({ error: "Invalid password" }); + } + + // Create a signed JWT for logout + const tokenData = { + id: user._id, + email: user.email, + name: user.userFullName, + }; + + const token = jwt.sign(tokenData, process.env.TOKEN_SECRET, { + expiresIn: "1d", + }); + // set token to the client browser cookie + const response = NextResponse.json( + { success: true, message: "Login successful" }, + { status: 200 } + ); + response.cookies.set("token", token, { httpOnly: true }); + return response; + } catch (error) { + if (error.status === 400) { + return NextResponse.json( + { + success: false, + message: error.message, + }, + { status: error.status } + ); + } else { + console.log(error); + return NextResponse.json( + { + success: false, + message: "Internal server error", + }, + { status: 500 } + ); + } + } +} diff --git a/src/app/api/users/logout/route.ts b/src/app/api/users/logout/route.ts new file mode 100644 index 0000000..c859cac --- /dev/null +++ b/src/app/api/users/logout/route.ts @@ -0,0 +1,18 @@ +import { NextResponse } from "next/server"; + +export default async function GET() { + try { + const response = NextResponse.json( + { message: "Logout successful" }, + { status: 200 } + ); + response.cookies.set("token", "", { httpOnly: true, expires: new Date(0) }); + return response; + } catch (error) { + console.log(error); + return NextResponse.json( + { error: "Internal server error" }, + { status: 500 } + ); + } +} \ No newline at end of file diff --git a/src/app/api/users/signup/route.ts b/src/app/api/users/signup/route.ts new file mode 100644 index 0000000..7cc8719 --- /dev/null +++ b/src/app/api/users/signup/route.ts @@ -0,0 +1,57 @@ +import connect from "@/dbConfig/dbConfig"; +import User from "@/models/userModel"; +import bcryptjs from "bcryptjs"; +import { sendEmail } from "@/helpers/sendgrid"; + +// function generateVerificationToken() { +// // Implement this function to generate a unique verification token +// // You can use libraries like `crypto` to generate secure tokens +// // Example using crypto: +// return crypto.randomBytes(32).toString('hex'); + +// } +export default async function POST(req:any,res:any) { + + try { + await connect(); + const reqBody = await req.body; + const { userFullName, email, phoneNumber, password } = reqBody; + console.log(reqBody); + + const user = await User.findOne({email}) + + if (user) { + return res.status(400).json({ error: "User already exists" }); + } + + const salt = await bcryptjs.genSalt(10); + const hashedPassword = await bcryptjs.hash(password, salt); + + const newUser = new User({ + userFullName, + email, + phoneNumber, + password: hashedPassword, + }); + + + const savedUser = await newUser.save(); + console.log(savedUser); + + await sendEmail({email, emailType: "VERIFY", userId: savedUser._id}) + + return res.status(200).json({ + message: "User created successfully", + success: true, + savedUser + }); + } catch (error:any) { + + return res.status(500).json({ error: error.message }); + + } +} + +// export const config = { +// runtime: "edge", +// }; diff --git a/src/app/api/users/verifyEmail/route.ts b/src/app/api/users/verifyEmail/route.ts new file mode 100644 index 0000000..6825e62 --- /dev/null +++ b/src/app/api/users/verifyEmail/route.ts @@ -0,0 +1,39 @@ +import connect from "@/dbConfig/dbConfig"; +import User from "@/models/userModel"; + +export default async function POST(request:any, response:any) { + try { + await connect(); + const reqBody = await request.body; + const { token } = reqBody; + console.log(token); + + const user = await User.findOne({ + verifyToken: token, + verifyTokenExpiry: { $gt: Date.now() }, + }); + + if (!user) { + console.log("Invalid token or token expired:", token); + return response.status(400).json({ error: "Invalid token" }); + } + + console.log("Found user:", user); + + user.isVerifiedemail = true; + user.verifyToken = undefined; + user.verifyTokenExpiry = undefined; + + await user.save(); + + console.log("User updated:", user); + + return response.json({ + message: "Email verified successfully", + success: true, + }); + } catch (error:any) { + console.error("Error verifying email:", error); + return response.status(500).json({ error: error.message }); + } +} diff --git a/src/app/globals.css b/src/app/globals.css new file mode 100644 index 0000000..e776f3c --- /dev/null +++ b/src/app/globals.css @@ -0,0 +1,221 @@ +@import url("https://fonts.googleapis.com/css?family=Outfit&display=swap"); +@tailwind base; +@tailwind components; +@tailwind utilities; + + +body { + background: #F3F3F3; + font-family: "Outfit", sans-serif; +} + +::-webkit-scrollbar { + width: 3px; /* Set the width of the scrollbar */ + height: 15px !important; +} + +::-webkit-scrollbar-track { + background-color: #19333b; /* Set the color of the scrollbar track */ +} + +::-webkit-scrollbar-thumb { + background-color: #376f7e; /* Set the color of the scrollbar thumb */ + border-radius: 7px; /* Set the border-radius of the thumb */ +} + +::-webkit-scrollbar-thumb:hover { + background-color: #02c4ff; /* Set the color of the thumb on hover */ +} +.sidebar { + /* background-color: #15272E; */ + /* height: 100vh; */ + position: fixed; +} + +.underline-hover:hover { + text-shadow: -.35px -.35px 0 rgb(255, 254, 254), + .35px .35px rgb(255, 255, 255); + color: aliceblue; +} +.upload-box { + border: 2px dashed #ccc; + text-align: center; + width: 300px; + height: 120px; + margin: 0 auto; + margin-top: 9%; + background-color: #f0f0f0; + +} +/* styles.css */ +.react-calendar { + /* Change the font family */ +right: 5%; + /* Change the background color of the calendar */ + background-color: #fff; + border-radius: 15px; + /* Add a border to the calendar */ + border: 1px solid #ffffff; + box-shadow: 8px 3px 22px 10px rgba(150, 150, 150, 0.11); + /* Add padding to the calendar */ + padding: 08px; + color: var(--primary-pressed, #0F2552); +text-align: center; +font-family:sans-serif; +font-size: 14px; +font-style: normal; +font-weight: 500; +line-height: normal; +text-transform: uppercase; +} + +.react-calendar__month-view { + /* Change the background color of the month view */ + background-color: #ffffff; +} + +.react-calendar__day-cell { + /* Change the background color of the day cells */ + background-color: #ffffff; + + /* Add a border to the day cells */ + border: 1px solid #ccc; + + /* Add padding to the day cells */ + padding: 5px; +} +.react-calendar__navigation button{ + color: var(--primary-pressed, #0F2552); +text-align: center; +font-family: Outfit; +font-size: 14px; +font-style: normal; +font-weight: 600; +line-height: normal; +letter-spacing: 0.14px; +} +.react-calendar__day-cell:hover { + /* Change the background color of the day cells on hover */ + background-color: #eee; +} + +.react-calendar__tile--active{ + background-color: #347C8D !important; + border-radius: 40px; +} +.react-calendar__tile--now{ + border-radius: 40px; +} +.react-calendar__month-view__days__day--weekend{ + color: #881212 !important; +} +.gradient{ + background: linear-gradient(to right, #15272E, #1C4650); + color: white; +} + +.pinterest-board{ + /* position: relative; Example position styling */ + + left: 20px; /* Example position styling */ + /* Add additional position styling as needed */ +} + +.input-field{ + display: flex; +/* height: 79px; */ +padding: 22px 16px; +align-items: center; +gap: 212px; +align-self: stretch; +} +/* */ +.left-box { + width: 27vw; + background-color: rgb(240, 240, 240); + height: 100vh; + position: fixed; + overflow-y: scroll; /* Add scroll if content exceeds height */ +/* Center boxes horizontally */ +} + +.draggable-item { + margin: 10px 0; + padding: 5px; + overflow: hidden; + background-color: rgb(255, 255, 255); + width: 12vw; + align-items: center; + justify-content: center; + height: auto; + display: flex; + cursor: pointer; + box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; +} +.img-css { + width: 18vw; + height: auto; +} + + +.box-right { + width: 65vw; + height: 60vh; + margin-left: 30%; + margin-top: 6%; + /* position: absolute; */ + overflow: hidden; + padding: 3%; + display: flex; + flex-direction: column; + column-gap: normal; + background-color: #FFFFFF; +} + +.drop-items { + width: auto; + height: auto; +} +/* .drop-items> * { +margin-bottom: 2px; +} */ + +.text-overlay { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background: rgba(255, 255, 255, 0.7); + padding: 4px; + border: 1px solid #201f1f; + pointer-events: none; /* Prevent text overlay from interfering with item selection */ + white-space: nowrap; /* Ensure text doesn't wrap */ +} + +.edit-box { + width: 6vw; + height: 35vh; + margin-right: 1%; + right: 0; + margin-top: 6%; + align-items: center; + flex-direction: column; + font-size: 23px; + display: flex; + top: 0; + background-color: rgb(235, 252, 246); + position: absolute; + box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px; + border-radius: 3%; +} +.icons { + display: flex; + flex-direction: column; + margin-top: 35%; +} + +.icons > * { + margin-bottom: 20px; + cursor: pointer; + color: #347c8d; +} diff --git a/src/app/inspiration/page.tsx b/src/app/inspiration/page.tsx new file mode 100644 index 0000000..f945578 --- /dev/null +++ b/src/app/inspiration/page.tsx @@ -0,0 +1,59 @@ +"use client" +import React, { useEffect } from 'react'; +import Image from "next/image"; +function Inspiration() { + + + useEffect(() => { + const script = document.createElement('script'); + script.setAttribute('type', 'text/javascript'); + script.setAttribute('charset', 'utf-8'); + script.setAttribute('async', 'true'); + script.setAttribute('src', '//assets.pinterest.com/js/pinit.js'); + document.body.appendChild(script); + }, []); + + return ( +

+ ); +} + +export default Inspiration; \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 0000000..91bb028 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,53 @@ +"use client"; +import type { AppProps } from "next/app"; +import { Inter } from "next/font/google"; +import Sidebar from "../components/Sidebar"; +import { useRouter,usePathname } from "next/navigation"; +import { DndProvider } from "react-dnd"; +import { HTML5Backend } from "react-dnd-html5-backend"; + +import "./globals.css"; +import AuthProvider from "@/components/Provider"; +// import { metadata } from './metadata'; // Import metadata from a separate file + +const inter = Inter({ subsets: ["latin"] }); + +interface LayoutProps extends AppProps { + session: any; // Assuming session type from NextAuth +} + +export default function RootLayout({ + children, +}: { + children: React.ReactNode; +}) { + // const { data: session, status } = useSession(); + const router = useRouter(); + const pathname = usePathname(); + + const isSignupOrSigninPage = + pathname === "/signup" || + pathname === "/signin" || + pathname === "/signin/forgetPassword" || + pathname === "/presentations/createPresentation" || + pathname === "/verifyEmail"; + + return ( + + +
+ {!isSignupOrSigninPage && } +
+ + {children} + +
+
+ + + ); +} + +// RootLayout.displayName = "RootLayout"; // Mark as the app component + +// export default RootLayout; diff --git a/src/app/my-clients/page.tsx b/src/app/my-clients/page.tsx new file mode 100644 index 0000000..c516a04 --- /dev/null +++ b/src/app/my-clients/page.tsx @@ -0,0 +1,119 @@ +// pages/client.tsx +"use client" +import React, { useState } from 'react'; +import ClientModal from '../../components/Modals/ClientModal'; +import Image from "next/image"; + +interface Client { + name: string; + email: string; + tasks: string; + presentations: number; + items: number; + image: string; + imageFile?: File; +} + +export default function Home() { + const [isModalOpen, setIsModalOpen] = useState(false); + const [clients, setClients] = useState([]); + + const openModal = () => setIsModalOpen(true); + const closeModal = () => setIsModalOpen(false); + + const addClient = (client: Client) => { + if (client.imageFile) { + const reader = new FileReader(); + reader.onload = (e) => { + client.image = e.target?.result as string; + setClients([...clients, client]); + }; + reader.readAsDataURL(client.imageFile); + } else { + client.image = 'default_image_url.png'; + setClients([...clients, client]); + } + }; + + return ( +
+ {clients.length === 0 && ( + <> +

You have no clients yet. Add your first client

+ + + )} + + {isModalOpen && ( + + )} + +
+

Clients

+
+ Bell Icon + + + +
+
+
+ {clients.map((client, index) => ( +
+ {client.name} +
+

{client.name}

+

{client.email}

+

Task: + {client.tasks} +

+
+

{client.presentations} + Presentations +

+

{client.items} + Items +

+

{client.items} + Tasks +

+ +
+
+
+ ))} +
+
+ ); +} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..b94571c --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,25 @@ +"use client" +import Home1 from "@/components/Home/Home1"; +import Home2 from "@/components/Home/Home2"; +import Home3 from "@/components/Home/Home3"; +import TopItem from "@/components/Topitem"; +import { useSession } from 'next-auth/react'; +import { useRouter } from 'next/navigation'; + +export default function Home() { + const { data: session } = useSession(); + const router = useRouter(); + + // if (!session) { + // router.redirect('/signin'); // Redirect to login if not authenticated + // return null; + // } + return ( +
+ + + + +
+ ); +} diff --git a/src/app/presentations/createPresentation/page.tsx b/src/app/presentations/createPresentation/page.tsx new file mode 100644 index 0000000..9433a7c --- /dev/null +++ b/src/app/presentations/createPresentation/page.tsx @@ -0,0 +1,341 @@ +"use client" +import React, { useState, useRef } from "react"; +import { useDrop } from "react-dnd"; +import DraggableItem from "@/components/DraggableItem"; // Import your DraggableItem component +import img1 from "../../../../public/images/pants.png"; +import img2 from "../../../..//public/images/pants.png"; +import img3 from "../../../..//public/images/pants.png"; +import img4 from "../../../..//public/images/pants.png"; +import { GrSelect } from "react-icons/gr"; +import { BiText } from "react-icons/bi"; +import { IoMdColorPalette } from "react-icons/io"; +import { FiRotateCw } from "react-icons/fi"; +import { AiOutlineDelete } from "react-icons/ai"; +import Image, { StaticImageData } from "next/image"; +import sqbox from "../../../..//public/images/icons/sqbox.svg"; + +interface DroppedItem { + id: number; + imageSrc: StaticImageData; // Update to accept StaticImageData + x: number; + y: number; + rotation?: number; // Optional property for rotation angle + text?: string; // Optional property for text content +} + + +interface Board { + id: number; + title: string; + droppedItems: DroppedItem[]; +} + +const Index: React.FC = () => { + const [droppedItems, setDroppedItems] = useState([]); // To keep track of dropped items + const [selectedItemId, setSelectedItemId] = useState(null); // To keep track of the selected item ID + const [isSelecting, setIsSelecting] = useState(false); + const [isTexting, setIsTexting] = useState(false); + const [text, setText] = useState(""); // To store user-entered text + const rightBoxRef = useRef(null); + const [isEditing, setIsEditing] = useState(false); // New state for editing h2 text + const [h2Text, setH2Text] = useState("Presentation Name"); + const [boards, setBoards] = useState([{ id: 0, title: "Whiteboard", droppedItems: [] }]); + const [currentBoard, setCurrentBoard] = useState(0); + const [layoutType, setLayoutType] = useState("default"); + + const addBoard = () => { + const newBoard = { + id: boards.length, + title: `Board ${boards.length + 1}`, + droppedItems: [], + }; + setBoards([...boards, newBoard]); + }; + + const handleLayoutChange = (type: string) => { + setLayoutType(type); + }; + + const switchBoard = (boardId: number) => { + setCurrentBoard(boardId); + }; + + // Define the drop target + const [, drop] = useDrop({ + accept: "ITEM", + drop: (item: DroppedItem, monitor: any) => { + const { x, y } = monitor.getClientOffset() || { x: 0, y: 0 }; + const rightBoxRect = rightBoxRef.current?.getBoundingClientRect(); + const itemWidth = 100; + const itemHeight = 100; + const maxItemsPerColumn = Math.floor(rightBoxRect?.height || 0 / itemHeight); + const column = Math.floor(boards[currentBoard].droppedItems.length / maxItemsPerColumn); + const newX = column * itemWidth; + const newY = (boards[currentBoard].droppedItems.length % maxItemsPerColumn) * itemHeight; + + const updatedBoards = [...boards]; + updatedBoards[currentBoard].droppedItems.push({ + id: Date.now(), + imageSrc: item.imageSrc, + x: newX, + y: newY, + }); + + setBoards(updatedBoards); + }, + }); + + const handleSelectItem = (itemId: number) => { + setSelectedItemId(itemId); + }; + + const handleDeleteItem = () => { + if (selectedItemId) { + const updatedItems = droppedItems.filter((item) => item.id !== selectedItemId); + setDroppedItems(updatedItems); + setSelectedItemId(null); + } + }; + + const handleRotateItem = () => { + if (selectedItemId) { + const updatedItems = droppedItems.map((item) => { + if (item.id === selectedItemId) { + return { ...item, rotation: (item.rotation || 0) + 45 }; + } + return item; + }); + setDroppedItems(updatedItems); + } + }; + + const handleToggleSelectTool = () => { + setIsSelecting(!isSelecting); + setIsTexting(false); + }; + + const handleToggleTextTool = () => { + setIsTexting(!isTexting); + setIsSelecting(false); + }; + + const handleTextChange = (e: React.ChangeEvent) => { + setText(e.target.value); + }; + + const handleAddText = () => { + if (selectedItemId) { + // Add the entered text to the selected item + const updatedItems = droppedItems.map((item) => { + if (item.id === selectedItemId) { + return { ...item, text: text }; + } + return item; + }); + setDroppedItems(updatedItems); + setIsTexting(!isTexting); + setIsSelecting(false); + } + }; + + const handleH2DoubleClick = () => { + setIsEditing(true); + }; + + const handleH2Change = (e: React.ChangeEvent) => { + setH2Text(e.target.value); + }; + + const handleH2Blur = () => { + setIsEditing(false); + }; + + return ( +
+
+
+
+
+ + + +
+
+

+ {h2Text} +

+
+
+ + + +
+
+
+
+ {/* Dropdown for layout selection */} + +
+
+ +
+
+ + {/* Small square shape boxes with draggable items */} + +
+
+
+ {/* Use your own image source */} +
+
+ {/* Use your own image source */} +
+
+
+
+ {/* Use your own image source */} +
+
+ {/* Use your own image source */} +
+
+
+
+ {/* Use your own image source */} +
+ {/* Add more pairs of square-box elements as needed */} +
+
+ +
+
+ +
+
{ + rightBoxRef.current = node; + drop(node); + }} + > + + {/* Display dropped items in box-right */} + {boards[currentBoard].droppedItems.map((item) => ( +
handleSelectItem(item.id)} + > + Dropped Item + {item.text &&
{item.text}
} +
+ ))} +
+
+
+ + +
+ {boards.map((board) => ( +
switchBoard(board.id)} + > + {board.title} +
+ ))} +
+
+ +
+
+ + + + + +
+ {isTexting && ( +
+ + +
+ )} +
+
+ ); +}; + +export default Index; diff --git a/src/app/presentations/page.tsx b/src/app/presentations/page.tsx new file mode 100644 index 0000000..a342763 --- /dev/null +++ b/src/app/presentations/page.tsx @@ -0,0 +1,29 @@ +"use client" +import React from 'react'; +import TopItem from '@/components/Topitem'; +import Image from 'next/image'; +import Link from 'next/link'; +function Index() { + return ( +
+ + +
+ +
+ + + +
+
+
+ ) +} + +export default Index diff --git a/src/app/profile/page.tsx b/src/app/profile/page.tsx new file mode 100644 index 0000000..807e845 --- /dev/null +++ b/src/app/profile/page.tsx @@ -0,0 +1,172 @@ +"use client"; +import React, { useState, useEffect } from "react"; +import axios from "axios"; +import Image from "next/image"; +import imgUser from "../../../public/images/user-default.webp"; +import toast, { Toaster } from "react-hot-toast"; +import { useSession } from "next-auth/react"; +// import { getProfile, updateProfile } from '../api/profile/route'; + +// Dummy data for country codes dropdown +const countryCodes = [ + { code: "+1", name: "United States" }, + { code: "+44", name: "United Kingdom" }, + { code: "+49", name: "Germany" }, + // Add more country codes as needed +]; + +interface UserData { + userFullName: string; + email: string; + countryCode: string; + phoneNumber: string; + profilePicture: string; +} + +export default function Profile() { + const { data: session } = useSession(); + const [userData, setUserData] = useState({ + userFullName: "", + email: "", + countryCode: "", + phoneNumber: "", + profilePicture: "", + }); + + useEffect(() => { + fetchUserData(); + }, []); + + const fetchUserData = async () => { + try { + const response = await axios.get('/api/profile'); + setUserData(response.data); + } catch (error) { + console.error('Error fetching user data:', error); + } + }; + + + const handleInputChange = (e: React.ChangeEvent) => { + const { name, value } = e.target; + setUserData({ ...userData, [name]: value }); + }; + + // Handler to handle profile picture upload + const handleProfilePictureChange = ( + e: React.ChangeEvent + ) => { + const file = e.target.files?.[0]; + if (file) { + const reader = new FileReader(); + reader.onload = () => { + setUserData({ ...userData, profilePicture: reader.result as string }); + }; + reader.readAsDataURL(file); + } + }; + + const saveUserData = async () => { + try { + await axios.post('/api/profile', userData); + console.log('User data saved successfully'); + } catch (error) { + console.error('Error saving user data:', error); + } + }; + return ( +
+ +
+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ {/* */} + +
+
+
+ +
+
+
+ ); +} diff --git a/src/app/schedule/page.tsx b/src/app/schedule/page.tsx new file mode 100644 index 0000000..45a05a9 --- /dev/null +++ b/src/app/schedule/page.tsx @@ -0,0 +1,42 @@ +"use client" +import React, { useState } from 'react'; +import TopItem from '@/components/Topitem'; +import Image from 'next/image'; +import Calendar from 'react-calendar'; +import 'react-calendar/dist/Calendar.css'; + +function Schedule() { + const [value, setValue] = useState(new Date()); + const [selectedDate, setSelectedDate] = useState(null); + + const handleDateChange = (date: any) => { + setSelectedDate(date); + }; + + return ( +
+ +
+
+

Today:

+ +
+
+

You have no tasks for today.

+ +
+
+
+ ); +} + +export default Schedule; + + diff --git a/src/app/signin/forgetPassword/page.tsx b/src/app/signin/forgetPassword/page.tsx new file mode 100644 index 0000000..45c3b1f --- /dev/null +++ b/src/app/signin/forgetPassword/page.tsx @@ -0,0 +1,65 @@ +// pages/signin/forgetpassword/index.js +"use client" +import Link from "next/link"; +import React, { useState } from "react"; + +function ForgetPassword() { + const [email, setEmail] = useState(""); + const [isEmailSent, setIsEmailSent] = useState(false); + const gradientBackground = ` + linear-gradient(#15272E, #347C8D) + `; + const handleSendEmail = () => { + // Implement logic to send a confirmation email (you can use a backend API) + + // For demonstration purposes, just update the state to simulate email sent + setIsEmailSent(true); + }; + + return ( +
+
+
+ + + + + +
+

+ + Forget your password?

+
There is nothing to worry about, we'll send you a message to help you reset your password.
+ {/* Email Input */} + {!isEmailSent ? ( + <> + setEmail(e.target.value)} + className="bg-[#F3F3F3] p-2 mt-4 py-3 w-[33vw] rounded-md" + /> + + {/* Send Email Button */} + + + ) : ( +

Email sent successfully!

+ )} +
+ + {/* Your Logo or Image Section */} +
+ {/* Include your logo or image here */} +
+
+ ); +} + +export default ForgetPassword; diff --git a/src/app/signin/page.tsx b/src/app/signin/page.tsx new file mode 100644 index 0000000..74b1f48 --- /dev/null +++ b/src/app/signin/page.tsx @@ -0,0 +1,222 @@ +"use client" +import React, { useEffect, useState } from "react"; +import { FaEye, FaEyeSlash } from "react-icons/fa"; +import Image from "next/image"; +import Link from "next/link"; +import { useRouter } from "next/navigation"; +import axios from "axios"; +import toast, { Toaster } from "react-hot-toast"; +import { signIn, useSession } from "next-auth/react"; + +interface User { + email: string; + password: string; +} + +export default function Index() { + const router = useRouter(); + + const [buttonDisabled, setButtonDisabled] = useState(false); + const [showPassword, setShowPassword] = useState(false); + const [user, setUser] = useState({ + email: "", + password: "", + }); + const [error, setError] = useState(""); + const { data: session, status: sessionStatus } = useSession(); + + useEffect(() => { + if (sessionStatus === "authenticated") { + router.replace("/"); + } + }, [sessionStatus, router]); + + + const handleInputChange = (e: React.ChangeEvent) => { + const { id, value } = e.target; + setUser({ ...user, [id]: value }); + }; + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + try { + const res = await signIn("credentials", { + email: user.email, + password: user.password, + redirect: false, + }); + const emailRegex = /^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$/; + if (!emailRegex.test(user.email)) { + toast.error("Invalid email id"); + return; + } + if (res?.error) { + setError(res.error); + toast.error(res.error); // Display specific error message from NextAuth + } else { + toast.success('Login Successful!'); + setError(""); + router.push("/"); + } + } catch (error:any) { + console.error(error); + toast.error(error.response?.data?.error || "An unexpected error occurred"); + } + }; + // if (!isValidEmail(user.email)) { + // setError("Email is invalid"); + // toast.error('Email is invalid!'); + // return; + // } + + // if (!user.password || user.password.length < 8) { + // setError("Password is invalid"); + // toast.error('Password is invalid!'); + // return; + // } + + // try { + // const res = await signIn("credentials", { + // redirect: false, + // email: user.email, + // password: user.password, + // }); + + // if (res?.error) { + // // Display specific error messages based on the response + // if (res.error === 'No account found for the provided email address.') { + // setError("User not found"); + // toast.error("User not found"); + // } else if (res.error === 'Invalid password provided') { + // setError("Invalid password"); + // toast.error("Invalid password"); + // } else { + // setError("Authentication failed"); + // toast.error("Authentication failed"); + // } + // } else if (res?.data) { + // console.log("Login success", res.data); + // // Handle successful authentication, if needed + // // For example, you can redirect the user or perform other actions + // } else { + // setError("An unexpected error occurred"); + // toast.error("An unexpected error occurred"); + // } + // } catch (error) { + // // Handle unexpected errors + // setError("An unexpected error occurred"); + // toast.error("An unexpected error occurred"); + // console.error("Error during authentication:", error); + // } + + useEffect(() => { + if (user.email.length > 0 && user.password.length > 0) { + setButtonDisabled(false); + } else { + setButtonDisabled(true); + } + }, [user]); + + if (sessionStatus === "loading") { + return

Loading...

; + } + const gradientBackground = ` + linear-gradient(#15272E, #347C8D) + `; + + return ( +
+ +
+

Sign In

+
+ {/* Email Input */} + + + {/* Password Input with Eye Icon */} +
+ +
setShowPassword(!showPassword)} + > + {showPassword ? : } +
+
+ Forget Password +
+
+ + {/* Signup with Google Button */} + + + {/* Signup Button */} + +
+ {/* Terms and Conditions Text */} +

+ By clicking this button, I agree with all Terms and Conditions +

+
+ Don't you have account? + + Sign Up + +
+
+ +
+ checkroom +
+
+ ); +} + diff --git a/src/app/signup/page.tsx b/src/app/signup/page.tsx new file mode 100644 index 0000000..52b37e6 --- /dev/null +++ b/src/app/signup/page.tsx @@ -0,0 +1,216 @@ +"use client" +import React, { useEffect, useState } from "react"; +import { FaEye, FaEyeSlash } from "react-icons/fa"; +import Image from "next/image"; +import Link from "next/link"; +import { useRouter } from "next/navigation"; +import axios from "axios"; +import toast, { Toaster } from 'react-hot-toast'; +import { useSession , signIn} from "next-auth/react"; + +interface User { + email: string; + userFullName: string; + phoneNumber: string; + password: string; + countryCode: string; +} + +export default function Index() { + const router = useRouter(); + const [buttonDisabled, setButtonDisabled] = useState(false); + const [showPassword, setShowPassword] = useState(false); + const [user, setUser] = useState({ + email: "", + userFullName: "", + phoneNumber: "", + password: "", + countryCode: "", + }); + const { data: session, status: sessionStatus } = useSession(); + + useEffect(() => { + if (sessionStatus === "authenticated") { + router.replace("/"); + } + }, [sessionStatus, router]); + + const handleInputChange = (e: React.ChangeEvent) => { + const { id, value } = e.target; + setUser({ ...user, [id]: value }); + }; + + const onSignUp = async (e: React.FormEvent) => { + e.preventDefault(); + try { + const isEmailValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(user.email); + const isPhoneNumberValid = /^[0-9]+$/.test(user.phoneNumber); + const isPasswordValid = user.password.length >= 6; + + if (!isEmailValid) { + toast.error('Please enter a valid email address.'); + return; + } + + if (!isPhoneNumberValid) { + toast.error('Please enter a valid phone number.'); + return; + } + + if (!isPasswordValid) { + toast.error('Password must be at least 6 characters.'); + return; + } + + const response = await axios.post("/api/users/signup", user); + console.log("Signup Successful", response.data); + toast.success('Signup successful! Confirmation email has been sent. Please check your email inbox.'); // Show success notification + router.push("/signin"); + } catch (error:any) { + console.log(error.response?.data?.error || "Signup Failed", error.message); + toast.error(error.response?.data?.error || 'Signup failed. Please try again.'); // Show error notification + } + }; + + useEffect(() => { + const { email, userFullName, phoneNumber, password } = user; + if ( + email.length > 0 && + userFullName.length > 0 && + phoneNumber.length > 1 && + password.length > 0 + ) { + setButtonDisabled(false); + } else { + setButtonDisabled(true); + } + }, [user]); + + const gradientBackground = ` + linear-gradient(#15272E, #347C8D) + `; + + return ( +
+ + +
+

Sign Up

+
+ {/* Full Name Input */} + + + {/* Phone Number Input with Country Code */} +
+ + +
+ + {/* Email Input */} + + + {/* Password Input with Eye Icon */} +
+ +
setShowPassword(!showPassword)} + > + {showPassword ? : } +
+
+ + {/* Signup with Google Button */} + + + {/* Signup Button */} + +
+ {/* Terms and Conditions Text */} +

+ By signing up, you agree to our Terms and Conditions. +

+
+ Do you have account? + + Sign In + +
+
+ +
+ checkroom +
+
+ ); +} diff --git a/src/app/tasks/page.tsx b/src/app/tasks/page.tsx new file mode 100644 index 0000000..102397e --- /dev/null +++ b/src/app/tasks/page.tsx @@ -0,0 +1,89 @@ +"use client" +import React, { useState } from 'react'; +import TaskModal from '../../components/Modals/TaskModal'; +import Image from "next/image"; +import TopItem from '@/components/Topitem'; + +interface Task { + taskName: string; + client: string; + description: string; + imageFile: File | null; + image?: string; +} + +interface Client { + id: string; + name: string; +} + +export default function Tasks() { + const [isTaskModalOpen, setIsTaskModalOpen] = useState(false); + const [tasks, setTasks] = useState([]); + const [clients] = useState([ + { id: '1', name: 'Client A' }, + { id: '2', name: 'Client B' }, + { id: '3', name: 'Client C' }, + ]); + + const openTaskModal = () => setIsTaskModalOpen(true); + const closeTaskModal = () => setIsTaskModalOpen(false); + + const addTask = ({ taskName, dueDate, client, description, file }: { taskName: string; dueDate: string; client: string; description: string; file: File | null; }) => { + const task: Task = { taskName, client, description, imageFile: file }; + if (file) { + const reader = new FileReader(); + reader.onload = (e) => { + if (typeof e.target?.result === 'string') { + task.image = e.target.result; + setTasks([...tasks, task]); + } + }; + reader.readAsDataURL(file); + } else { + task.image = '/default_image_url.png'; + setTasks([...tasks, task]); + } + }; + + return ( +
+ {tasks.length === 0 && ( + <> +

You have no tasks yet. Add your first task

+ + + )} + + {isTaskModalOpen && ( + + )} + + +

Today:

+
+ {tasks.map((task, index) => ( +
+
+

{task.taskName}

+

Client: {clients.find((client) => client.id === task.client)?.name}

+
+

Description: + {task.description} +

+ +
+
+
+ ))} +
+
+ ); +} diff --git a/src/app/verifyEmail/page.tsx b/src/app/verifyEmail/page.tsx new file mode 100644 index 0000000..861710b --- /dev/null +++ b/src/app/verifyEmail/page.tsx @@ -0,0 +1,64 @@ +import axios from "axios"; +import Link from "next/link"; +import React, { useEffect, useState } from "react"; +import toast, { Toaster } from 'react-hot-toast'; + +export default function VerifyEmailPage() { + const [token, setToken] = useState(""); + const [verified, setVerified] = useState(false); + const [error, setError] = useState(false); + + const verifyUserEmail = async () => { + try { + await axios.post("/api/users/verifyEmail/verifyEmail", { token }); + setVerified(true); + } catch (error:any) { + setError(true); + + console.log(error.response.data); + } + }; + + useEffect(() => { + const urlToken = window.location.search.split("=")[1]; + setToken(urlToken || ""); + }, []); + + useEffect(() => { + if (token.length > 0) { + verifyUserEmail(); + } + }, [token]); + + const gradientBackground = ` + linear-gradient(#15272E, #347C8D) +`; + return ( +
+
+

Sign Up

+ +

+

+ {token ? `${token}` : "no token"} +

+

+ + {verified && ( +
+

Email Verified

+ Login +
+ )} + {error && ( +
+

Error:{error}

+
+ )} +
+
+ ); +} diff --git a/src/components/DraggableItem.tsx b/src/components/DraggableItem.tsx new file mode 100644 index 0000000..d82638a --- /dev/null +++ b/src/components/DraggableItem.tsx @@ -0,0 +1,19 @@ +// DraggableItem.js +"use client" +import React from "react"; +import { useDrag } from "react-dnd"; +import Image from "next/image"; +const DraggableItem = ({ imageSrc }: { imageSrc: any }) => { + const [, ref] = useDrag({ + type: "ITEM", + item: { type: "ITEM", imageSrc }, + }); + + return ( +
+ Draggable Item +
+ ); +}; + +export default DraggableItem; diff --git a/src/components/Home/Home1.tsx b/src/components/Home/Home1.tsx new file mode 100644 index 0000000..3bf979a --- /dev/null +++ b/src/components/Home/Home1.tsx @@ -0,0 +1,27 @@ +"use client" +import React from 'react' + +function Home1() { + return ( +
+
+

34

+
Created Presentations
+
+
+

5.4

+
Rate on the platform
+
+
+

44

+
Completed Tasks
+
+
+

125

+
Created Outfits
+
+
+ ) +} + +export default Home1 diff --git a/src/components/Home/Home2.tsx b/src/components/Home/Home2.tsx new file mode 100644 index 0000000..befcd47 --- /dev/null +++ b/src/components/Home/Home2.tsx @@ -0,0 +1,117 @@ +"use client" +import React from 'react' +import Image from 'next/image' +function Home2() { + return ( +
+
+
+

+ Upcoming Events +

+

+ + Add a Task +

+
+
+

+ Today: +

+
    +
  • + + Call with Lena +
  • +
  • + + Create presentation for Inna +
  • +
+
+
+

+ Tommorow: +

+
    +
  • + + Renewing wardrobe for Osman +
  • +
  • + + Consultation for James +
  • +
  • + + Working on my course +
  • +
+
+
+ +
+

+ Clients +

+

+ See all ↗ +

+
+
+ Client Image +
+

Lena B.

+

Renewing wardrobe

+
+ +
+
+ Client Image + +
+

Osman B.

+

Renewing wardrobe

+
+ +
+
+ Client Image + +
+

James C.

+

Renewing wardrobe

+
+ +
+ {/* */} +
+
+
+ ) +} + +export default Home2 diff --git a/src/components/Home/Home3.tsx b/src/components/Home/Home3.tsx new file mode 100644 index 0000000..39c1496 --- /dev/null +++ b/src/components/Home/Home3.tsx @@ -0,0 +1,189 @@ +"use client" +import React from 'react'; +import Image from 'next/image'; + +function Home3() { + return ( +
+

Recent Created Presentations

+
+
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+ +
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+
+ +
+
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+
+ Image 1 +

+ Winter Capsule +

+ +
+ Bell Icon + Shared with client +
+ Bell Icon +
+
+
+ ) +} + +export default Home3 diff --git a/src/components/Modals/ClientModal.tsx b/src/components/Modals/ClientModal.tsx new file mode 100644 index 0000000..d675f60 --- /dev/null +++ b/src/components/Modals/ClientModal.tsx @@ -0,0 +1,165 @@ +// components/Modals/ClientModal.tsx +"use client" +import React, { useState } from "react"; + +interface ClientModalProps { + isOpen: boolean; + onClose: () => void; + onAddClient: (client: any) => void; // Adjust the type of client as per your data structure +} + +const ClientModal: React.FC = ({ isOpen, onClose, onAddClient }) => { + const [name, setName] = useState(""); + const [email, setEmail] = useState(""); + const [imageFile, setImageFile] = useState(null); + const [tasks, setTasks] = useState(""); + const [presentations, setPresentations] = useState(""); + const [items, setItems] = useState(""); + + const [nameError, setNameError] = useState(''); + const [emailError, setEmailError] = useState(''); + const [imageError, setImageError] = useState(''); + + const handleImageChange = (e: React.ChangeEvent) => { + if (e.target.files && e.target.files.length > 0) { + const file = e.target.files[0]; + setImageFile(file); + } + }; + + const handleSubmit = () => { + // Validate form inputs + let isValid = true; + if (name.trim() === '') { + setNameError('Name is required'); + isValid = false; + } else { + setNameError(''); + } + if (email.trim() === '') { + setEmailError('Email is required'); + isValid = false; + } else { + setEmailError(''); + } + if (!imageFile) { + setImageError('Image is required'); + isValid = false; + } else { + setImageError(''); + } + + // If the form is valid, proceed to submit + if (isValid) { + const newClient = { + name, + email, + imageFile, + tasks, + presentations, + items, + }; + onAddClient(newClient); + onClose(); + } + }; + + if (!isOpen) { + return null; + } + + + return ( +
+
+ + + + +
+
+

+ Add a New Client +

+
+ setName(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+
+ setEmail(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+
+ +
+
+ setTasks(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+
+ setPresentations(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+
+ setItems(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+
+
+ + +
+
+
+
+ ); +}; + +export default ClientModal; diff --git a/src/components/Modals/TaskModal.tsx b/src/components/Modals/TaskModal.tsx new file mode 100644 index 0000000..8f1b0b7 --- /dev/null +++ b/src/components/Modals/TaskModal.tsx @@ -0,0 +1,158 @@ +"use client" +import React, { useState, useRef } from 'react'; + +interface Client { + id: string; + name: string; +} + +interface TaskModalProps { + isOpen: boolean; + onClose: () => void; + onAddTask: (newTask: { + taskName: string; + dueDate: string; + client: string; + description: string; + file: File | null; + }) => void; + clients: Client[]; +} + +const TaskModal: React.FC = ({ isOpen, onClose, onAddTask, clients }) => { + const [taskName, setTaskName] = useState(''); + const [dueDate, setDueDate] = useState(''); + const [selectedClient, setSelectedClient] = useState(''); + const [description, setDescription] = useState(''); + const [file, setFile] = useState(null); + const [fileName, setFileName] = useState(''); + + const fileInputRef = useRef(null); + + const handleFileChange = (e: React.ChangeEvent) => { + if (e.target.files) { + const selected = e.target.files[0]; + setFile(selected); + setFileName(selected?.name); + } + }; + + const handleSubmit = () => { + const newTask = { + taskName, + dueDate, + client: selectedClient, + description, + file, + }; + onAddTask(newTask); + onClose(); + }; + + if (!isOpen) { + return null; + } + + + return ( +
+
+ + + + +
+ +
+

+ Add a task +

+
+ setTaskName(e.target.value)} + className="shadow appearance-none border rounded w-[370px] py-2 px-3 text-[gray-700] leading-tight focus:outline-none focus:shadow-outline bg-[#F3F3F3]" + /> +
+
+ setDueDate(e.target.value)} + className="shadow appearance-none border rounded w-[370px] py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline bg-[#F3F3F3]" + /> +
+
+ +
+
+ +
+
+ + + {image && Preview} +
+
+ +
+ {allCategories.map((category) => ( +
+ +
+ ))} +
-
-

{item.itemName}

- +
+ +
- ))} -
+
+ )} + {isDetailSectionVisible && ( +
+
+
+ +
+
+ + setItemName(e.target.value)} + className="w-full p-2 border border-gray-300 rounded-md" + /> +
+
+ + +
+ +
+
+ )}
); }; diff --git a/src/components/Clients/Tasks.tsx b/src/components/Clients/Tasks.tsx index 87f5da1..03b8f19 100644 --- a/src/components/Clients/Tasks.tsx +++ b/src/components/Clients/Tasks.tsx @@ -1,69 +1,292 @@ -import React from 'react'; +"use client"; +import React, { useState, useEffect } from "react"; +import axios from "axios"; +import Image from "next/image"; +import { useRouter } from "next/navigation"; +import menu from "../../../public/images/icons/menu.svg"; +import view from "../../../public/images/icons/view.svg"; +import deletee from "../../../public/images/icons/delete.svg"; +import edit from "../../../public/images/icons/edit.svg"; +import smcircle from "../../../public/images/icons/sm-circle.svg"; +import checks from "../../../public/images/icons/check.svg"; +import loading from "../../../public/images/icons/loading.svg"; +import Link from "next/link"; -const tasksData = [ - { - title: "Create 15 Outfits for Client", - description: "Offer closet organization services to help clients declutter and streamline their wardrobes. Create outfits from their existing clothing and suggest essential items to complete their wardrobes.", - status: "Not started" +const renderTaskSection = ( + taskList: any[], + title: + | string + | number + | boolean + | React.ReactElement> + | Iterable + | React.PromiseLikeOfReactNode + | null + | undefined, + handleTaskStatusChange: { + (task: any, status: any): Promise; + (arg0: any, arg1: string): void; }, - { - title: "Create 15 Outfits for Client", - description: "Offer closet organization services to help clients declutter and streamline their wardrobes. Create outfits from their existing clothing and suggest essential items to complete their wardrobes.", - status: "Completed" - }, - { - title: "Create 15 Outfits for Client", - description: "Offer closet organization services to help clients declutter and streamline their wardrobes. Create outfits from their existing clothing and suggest essential items to complete their wardrobes.", - status: "Completed" - } -]; - -const TaskCard: React.FC = () => { - const getStatusClassName = (status: string) => { - switch (status) { - case "Completed": - return "text-green-600 bg-green-100"; - case "Not started": - return "text-gray-600 bg-gray-100"; - default: - return "text-gray-600 bg-gray-100"; - } - }; + toggleBox: { (task: any): void; (arg0: any): void }, + taskBoxOpenMap: { [x: string]: any }, + selectedTask: null, + menuOpenMap: { [x: string]: any }, + handleMenuClick: { (task: any): void; (arg0: any): void }, + handleEditTask: { (task: any): void; (arg0: any): void }, + handleDeleteTask: { (taskId: any): Promise; (arg0: any): void } +) => ( +
+
+

{title}:

+
- return ( -
-

Today:

- {tasksData.map((task, index) => ( -
-
-
-

{task.title}

-

Description: {task.description}

+ +
+ + + Add a New Task
-
- - {task.status} + +
+
+
+ {taskList.map((task) => ( +
+
+

+ {task.taskName} +

+

+ Client: {task.clientName} +

+
+

+ Description: +

+ + {task.description} - +
handleMenuClick(task)}> + Menu +
+ {selectedTask === task && menuOpenMap[task._id ?? ""] && ( +
+
    +
  • handleEditTask(task)} + > + Menu + See details +
  • +
  • handleEditTask(task)} + > + Menu + Edit +
  • +
  • handleDeleteTask(task._id)} + > + Menu + Delete +
  • +
+
+ )}
))}
+
+); + +const Tasks = ({ tasks }: any) => { + const router = useRouter(); + + const [taskList, setTaskList] = useState(tasks || []); + const [taskBoxOpenMap, setTaskBoxOpenMap] = useState({}); + const [menuOpenMap, setMenuOpenMap] = useState({}); + const [selectedTask, setSelectedTask] = useState(null); + + const toggleBox = (task: any) => { + setTaskBoxOpenMap((prev: any) => ({ + ...prev, + [task._id]: !prev[task._id], + })); + setSelectedTask(task); + }; + + const handleTaskStatusChange = async (task: { _id: any }, status: any) => { + try { + const response = await axios.put(`/api/tasks?id=${task._id}`, { status }); + setTaskList((prev: any) => + prev.map((t: any) => (t._id === task._id ? response.data.task : t)) + ); + } catch (error) { + console.error("Error updating task status:", error); + } + }; + + const handleMenuClick = (task: any) => { + setMenuOpenMap((prev: any) => ({ ...prev, [task._id]: !prev[task._id] })); + setSelectedTask(task); + }; + + const handleEditTask = (task: any) => { + // Handle task editing logic here + router.push("/tasks"); + }; + + const handleDeleteTask = async (taskId: any) => { + try { + await axios.delete(`/api/tasks?id=${taskId}`); + setTaskList((prev: any) => + prev.filter((task: any) => task._id !== taskId) + ); + } catch (error) { + console.error("Error deleting task:", error); + } + }; + + return ( +
+ {renderTaskSection( + taskList, + "Tasks", + handleTaskStatusChange, + toggleBox, + taskBoxOpenMap, + selectedTask, + menuOpenMap, + handleMenuClick, + handleEditTask, + handleDeleteTask + )} +
); }; -export default TaskCard; +export default Tasks; From 47752310561a85ea14fc40700945dd9db7f70f2c Mon Sep 17 00:00:00 2001 From: raza2004 Date: Fri, 9 Aug 2024 21:09:26 +0500 Subject: [PATCH 14/92] dfd --- package-lock.json | 9 +- src/app/api/items/route.ts | 47 +- src/app/api/presentations/route.ts | 100 ++--- src/app/my-clients/[id]/page.tsx | 4 +- .../presentations/createPresentation/page.tsx | 422 +++++++++++------- src/components/Clients/Items.tsx | 40 +- src/components/DraggableItem.tsx | 2 +- src/components/Topitem.tsx | 2 +- src/models/presentationsModel.js | 8 + 9 files changed, 393 insertions(+), 241 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6c6de64..3599f59 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3362,9 +3362,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001587", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", - "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", "funding": [ { "type": "opencollective", @@ -3378,7 +3378,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chokidar": { "version": "3.6.0", diff --git a/src/app/api/items/route.ts b/src/app/api/items/route.ts index f70e8a6..076ca6d 100644 --- a/src/app/api/items/route.ts +++ b/src/app/api/items/route.ts @@ -3,6 +3,8 @@ import Item from "@/models/itemsClient"; import { getServerSession } from "next-auth"; import { NextRequest, NextResponse } from "next/server"; import { authOptions } from "../auth/[...nextauth]/route"; +import Client from '@/models/clientModel'; +import User from '@/models/userModel'; async function handler(req: NextRequest, res: NextResponse) { await connect(); @@ -10,13 +12,48 @@ async function handler(req: NextRequest, res: NextResponse) { const session = await getServerSession(authOptions); const { user } = session || {}; - - if (!session || !user) { + if (!session || !session.user) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); - } - const { email } = user; + } + + if (req.method === "GET") { + try { + // Fetch the stylist + const stylist = await User.findOne({ email: session.user.email }); + if (!stylist) { + return NextResponse.json({ error: "Stylist not found" }, { status: 404 }); + } + + const clients = await Client.find({ stylist: stylist.email }); + if (!clients || clients.length === 0) { + return NextResponse.json( + { error: "No clients found for this stylist" }, + { status: 404 } + ); + } + + // Fetch moodboards for each client + const moodboardsWithDetails = await Promise.all( + clients.map(async (client) => { + const items = await Item.find({ userEmail: client.email }); + return { + clientEmail: client.email, + clientName: client.fullName, + items, + }; + }) + ); + + return NextResponse.json({ success: true, data: moodboardsWithDetails }, { status: 200 }); + } catch (error) { + return NextResponse.json( + { error: "Error fetching moodboards" }, + { status: 500 } + ); + } +} - if (req.method === "POST") { +else if (req.method === "POST") { try { const body = await req.json(); const newItem = await Item.create({...body}); diff --git a/src/app/api/presentations/route.ts b/src/app/api/presentations/route.ts index b0afe11..48f7a17 100644 --- a/src/app/api/presentations/route.ts +++ b/src/app/api/presentations/route.ts @@ -3,6 +3,7 @@ import Presentation from '@/models/presentationsModel'; import { getServerSession } from 'next-auth'; import { NextRequest, NextResponse } from 'next/server'; import { authOptions } from "../../api/auth/[...nextauth]/route"; +import Client from '@/models/clientModel'; async function handler(req: NextRequest, res: NextResponse) { await connect(); @@ -16,69 +17,68 @@ async function handler(req: NextRequest, res: NextResponse) { const { email } = user; -// API route to fetch a specific presentation by its ID -if (req.method === 'GET') { - try { - const id = req.nextUrl.searchParams.get('_id'); - let presentations; + if (req.method === 'GET') { + try { + const id = req.nextUrl.searchParams.get('_id'); + let presentations; - if (id) { - presentations = await Presentation.findOne({ _id: id, userEmail: email }); - if (!presentations) { - return NextResponse.json({ error: 'Presentation not found' }, { status: 404 }); + if (id) { + presentations = await Presentation.findOne({ _id: id, userEmail: email }); + if (!presentations) { + return NextResponse.json({ error: 'Presentation not found' }, { status: 404 }); + } + } else { + presentations = await Presentation.find({ userEmail: email }); } - } else { - presentations = await Presentation.find({ userEmail: email }); - } - return NextResponse.json({ presentations }, { status: 200 }); - } catch (error: any) { - console.error('Error fetching presentations:', error.message || error.stack); - return NextResponse.json({ error: 'Error fetching presentations' }, { status: 500 }); + return NextResponse.json({ presentations }, { status: 200 }); + } catch (error: any) { + console.error('Error fetching presentations:', error.message || error.stack); + return NextResponse.json({ error: 'Error fetching presentations' }, { status: 500 }); + } } -} -if (req.method === 'POST') { - try { - const body = await req.json(); - const newPresentation = new Presentation({ - userEmail: email, - name: body.name, - text:body.text, - boards: body.boards, - currentBoard: body.currentBoard, - layoutType: body.layoutType, - }); - await newPresentation.save(); - return NextResponse.json({ presentation: newPresentation }, { status: 201 }); - } catch (error: any) { - console.error('Error adding presentation:', error.message || error.stack); - return NextResponse.json({ error: 'Error adding presentation' }, { status: 500 }); + if (req.method === 'POST') { + try { + const body = await req.json(); + const client = await Client.findById(body.clientId); + + const newPresentation = new Presentation({ + userEmail: email, + clientName: client.fullName, // Added clientName + clientEmail: client.email, // Added clientEmail + name: body.name, + text: body.text, + boards: body.boards, + currentBoard: body.currentBoard, + layoutType: body.layoutType, + }); + await newPresentation.save(); + return NextResponse.json({ presentation: newPresentation }, { status: 201 }); + } catch (error: any) { + console.error('Error adding presentation:', error.message || error.stack); + return NextResponse.json({ error: 'Error adding presentation' }, { status: 500 }); + } } -} -if (req.method === 'PUT') { - try { - const id = req.nextUrl.searchParams.get('_id'); - if (!id) { - return NextResponse.json({ error: 'Invalid presentation ID' }, { status: 400 }); + if (req.method === 'PUT') { + try { + const id = req.nextUrl.searchParams.get('_id'); + if (!id) { + return NextResponse.json({ error: 'Invalid presentation ID' }, { status: 400 }); + } + const body = await req.json(); + const updatedPresentation = await Presentation.findByIdAndUpdate(id, body, { new: true }); + return NextResponse.json({ presentation: updatedPresentation }, { status: 200 }); + } catch (error: any) { + console.error('Error updating presentation:', error.message || error.stack); + return NextResponse.json({ error: 'Error updating presentation' }, { status: 500 }); } - const body = await req.json(); - const updatedPresentation = await Presentation.findByIdAndUpdate(id, body, { new: true }); - return NextResponse.json({ presentation: updatedPresentation }, { status: 200 }); - } catch (error: any) { - console.error('Error updating presentation:', error.message || error.stack); - return NextResponse.json({ error: 'Error updating presentation' }, { status: 500 }); } -} if (req.method === 'DELETE') { try { const id = req.nextUrl.searchParams.get('_id'); - console.log("id", id); - // if (!id || !isValidObjectId(id)) { - // return NextResponse.json({ error: 'Invalid presentation ID' }, { status: 400 }); - // } await Presentation.findByIdAndDelete(id); return NextResponse.json({ message: 'Presentation deleted successfully' }, { status: 200 }); } catch (error: any) { diff --git a/src/app/my-clients/[id]/page.tsx b/src/app/my-clients/[id]/page.tsx index b52fd61..e4701ea 100644 --- a/src/app/my-clients/[id]/page.tsx +++ b/src/app/my-clients/[id]/page.tsx @@ -126,13 +126,13 @@ const Clients: React.FC = () => { src="/images/icons/left-arrow.svg" onClick={() => router.push(`/my-clients`)} alt="Options" - className="absolute top-[2vw] right-[73vw] cursor-pointer" + className="absolute top-[1.6vw] right-[73vw] cursor-pointer" width={30} height={30} />
-
+
+
+
-
- - - download -
+ + {/* Modal */} + {showModal && ( +
+
+

+ Save Presentation +

+
+ + setH2Text(e.target.value)} + className="border p-2 mb-4 rounded" + /> + + +
+ + +
+
+
+
+ )}
= ( src={item.imageSrc} alt="Dropped Item" className="img-css" + width={0} height={0} /> {item.text &&
{item.text}
}
@@ -522,27 +599,28 @@ const DroppedItem: React.FC = ( currentBoard === board.id ? "border-blue-500" : "bg-gray-300" }`} onClick={() => { - if (board.id < boards.length) { // Check if board exists before switching + if (board.id < boards.length) { + // Check if board exists before switching switchBoard(board.id); } }} > {board.title} {board.title !== "Whiteboard" && ( // Hide delete button for "Whiteboard" - { - e.stopPropagation(); // Prevent triggering switchBoard - deleteBoard(board.id); - }} - > - x - - )} + { + e.stopPropagation(); // Prevent triggering switchBoard + deleteBoard(board.id); + }} + > + x + + )}
))} - + {isTexting && (
+
+ + + )} + + + + )} + + + ); +} + +export default page; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 61dca2e..d8fdeab 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -30,7 +30,8 @@ export default function RootLayout({ pathname === "/signin" || pathname === "/signin/forgetPassword" || pathname === "/presentations/createPresentation" || - pathname === "/verifyEmail"; + pathname === "/verifyEmail"|| + pathname=== "/signin/setPassword"; return ( diff --git a/src/app/moodboards/page.tsx b/src/app/moodboards/page.tsx new file mode 100644 index 0000000..fcfebb0 --- /dev/null +++ b/src/app/moodboards/page.tsx @@ -0,0 +1,359 @@ +"use client"; +// Page.tsx +import React, { useState,useEffect } from "react"; +import { useRouter } from "next/navigation"; +import Image from 'next/image'; +import ChatModal from "@/components/moodboards/chatModal"; +import Menubar from "@/components/Menubar"; +import Preview from "@/components/moodboards/Preview"; +import axios from "axios"; + +function MoodboardsPage() { + const [moodboards, setMoodboards] = useState<{_id:string, name: string; images: string[] }[]>([]); + const [selectedImages, setSelectedImages] = useState([]); + const [dotSection, setDotSection] = useState(null); + const [isEditing, setIsEditing] = useState(false); + const [editIndex, setEditIndex] = useState(null); + const [newImages, setNewImages] = useState([]); + const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); + const [deleteIndex, setDeleteIndex] = useState(null); + const [isChatModalOpen, setIsChatModalOpen] = useState(false); + + const router = useRouter(); + + useEffect(() => { + fetchMoodboards(); + }, []); + + const fetchMoodboards = async () => { + try { + const response = await axios.get("/api/moodboards"); + setMoodboards(response.data.data); + } catch (error) { + console.error("Error fetching moodboards:", error); + } + }; + + const handleEdit = (index: number) => { + setDotSection(null); + setIsEditing(true); + setEditIndex(index); + }; + + const handleBackToMoodboards = () => { + setIsEditing(false); + setEditIndex(null); + setNewImages([]); + }; + + const handleChatIconClick = () => { + setIsChatModalOpen(true); + }; + + const handleCloseChatModal = () => { + setIsChatModalOpen(false); + }; + + const handleGalleryInputChange = async (event: React.ChangeEvent) => { + const files = event.target.files; + + if (!files) { + return; + } + + const validImages = Array.from(files) + .filter((file: File) => file.type.startsWith('image/')) // Check for image type + .slice(0, 20); // Limit to 20 images + + if (validImages.length < 1 || validImages.length > 20) { + alert('Please select between 1 and 20 images.'); + return; + } + + const base64Images = await Promise.all( + validImages.map(async (file: File) => { + const arrayBuffer = await file.arrayBuffer(); + const base64 = Buffer.from(arrayBuffer).toString('base64'); + return `data:${file.type};base64,${base64}`; + }) + ); + + setSelectedImages(base64Images); + }; + + const handleNewImagesChange = async (event: React.ChangeEvent) => { + const files = event.target.files; + + if (!files) { + return; + } + + const validImages = Array.from(files) + .filter((file: File) => file.type.startsWith('image/')) + .slice(0, 10); + + if (validImages.length < 1 || validImages.length > 10) { + alert('Please select between 1 and 10 images.'); + return; + } + + const base64Images = await Promise.all( + validImages.map(async (file: File) => { + const arrayBuffer = await file.arrayBuffer(); + const base64 = Buffer.from(arrayBuffer).toString('base64'); + return `data:${file.type};base64,${base64}`; + }) + ); + + setNewImages(base64Images); + }; + + const handleSaveMoodboard = async (name: string) => { + try { + const response = await axios.post("/api/moodboards", { name, images: selectedImages }); + setMoodboards([...moodboards, response.data.data]); + setSelectedImages([]); + console.log("Saving moodboard:", response.data.data); + } catch (error) { + console.error("Error saving moodboard:", error); + } + }; + + const handleSaveEditedMoodboard = async () => { + if (editIndex !== null) { + const updatedMoodboards = [...moodboards]; + const moodboardId = updatedMoodboards[editIndex]._id; + const updatedImages = [...updatedMoodboards[editIndex].images, ...newImages]; + + try { + const response = await axios.put("/api/moodboards", { + _id: moodboardId, + images: updatedImages, + }); + updatedMoodboards[editIndex] = response.data.data; + setMoodboards(updatedMoodboards); + handleBackToMoodboards(); + } catch (error) { + console.error("Error updating moodboard:", error); + } + } + }; + + const handleOpen = (index: number) => { + setDotSection(dotSection === index ? null : index); + }; + + const handleDeleteClick = (index: number) => { + setDeleteIndex(index); + setIsDeleteModalOpen(true); + }; + + const handleCloseDeleteModal = () => { + setIsDeleteModalOpen(false); + setDeleteIndex(null); + }; + + const handleConfirmDelete = async () => { + if (deleteIndex !== null) { + const updatedMoodboards = [...moodboards]; + const moodboardId = updatedMoodboards[deleteIndex]._id; + + try { + await axios.delete(`/api/moodboards?id=${moodboardId}`); + updatedMoodboards.splice(deleteIndex, 1); + setMoodboards(updatedMoodboards); + handleCloseDeleteModal(); + } catch (error) { + console.error("Error deleting moodboard:", error); + } + } + } + return ( +
+ + {selectedImages.length === 0 && ( + <> + +
+
+ Moodboards: +
+
+
+ + +
+
+
+ + {!isEditing && ( +
+ {moodboards.map((moodboard, index) => ( +
+
+ {moodboard.name} + +
+ + {dotSection === index && ( +
+ + + {/* Add more options here */} +
+ )} +
+
+
+ {moodboard.name} +
+
+ ))} +
)})} + {isChatModalOpen && } + {selectedImages.length > 0 && } + {isEditing && editIndex !== null && ( +
+
+
+ +
+ {editIndex !== null ? moodboards[editIndex].name : ''} +
+
+
+ comments +
+ + +
+
+
+ {moodboards[editIndex].images.map((image, idx) => ( +
+ {`Moodboard +
+ ))} + {newImages.map((image, idx) => ( +
+ {`New +
+ ))} +
+
+ +
+
+ )} + {isDeleteModalOpen && ( +
+
+ +
Are you sure you want to delete this moodboard?
+ {deleteIndex !== null && ( + +
+ {`Image +
+ {moodboards[deleteIndex].name} +
+
+ )} +
+ + +
+
+
+ )} + + +
+ ); +} + +export default MoodboardsPage; \ No newline at end of file diff --git a/src/app/moodboards/preview/page.tsx b/src/app/moodboards/preview/page.tsx new file mode 100644 index 0000000..e143b0c --- /dev/null +++ b/src/app/moodboards/preview/page.tsx @@ -0,0 +1,71 @@ +"use client" +// Preview.tsx +import React, { useState } from 'react'; +import { useRouter } from "next/navigation"; + +interface Props { + images: string[]; +} + +function Preview({ images }: Props) { + const [selectedImage, setSelectedImage] = useState(images.length > 0 ? images[0] : '');// Initialize with the first image or an empty string + const [moodboardName, setMoodboardName] = useState(""); + const history = useRouter(); + + const handleNameChange = (event: React.ChangeEvent) => { + setMoodboardName(event.target.value); + }; + + const handleSaveMoodboard = () => { + // Save logic goes here + // Redirect to the moodboard page + history.push("/moodboards"); + }; + + const handleImageClick = (image: string) => { + setSelectedImage(image); + }; + + return ( +
+ {/* Center box for selected image */} + Selected + + {/* Row slider for all images */} +
+ {images.map((image, index) => ( + {`Image handleImageClick(image)} + /> + ))} +
+ + {/* Name input and save button */} +
+ + +
+
+ ); +} + +export default Preview; \ No newline at end of file diff --git a/src/app/my-clients/[id]/page.tsx b/src/app/my-clients/[id]/page.tsx index 64ca64b..d7c8076 100644 --- a/src/app/my-clients/[id]/page.tsx +++ b/src/app/my-clients/[id]/page.tsx @@ -13,6 +13,7 @@ import { useParams } from "next/navigation"; import TopItem from "@/components/Topitem"; import Image from "next/image"; import { useRouter } from "next/navigation"; +import MessageModal from "@/components/Modals/MessageModal"; interface Moodboard { @@ -74,6 +75,21 @@ const Clients: React.FC = () => { const [presentations, setPresentations] = useState([]); const [shoppinglist, setShoppinglist] = useState([]); + const [isMessageModalOpen, setIsMessageModalOpen] = useState(false); + const [selectedClientForMessage, setSelectedClientForMessage] = useState(null); + const [stylistId, setStylistId] = useState(''); + + const openMessageModal = (client: Client) => { + setSelectedClientForMessage(client); + setIsMessageModalOpen(true); + }; + + const closeMessageModal = () => { + setIsMessageModalOpen(false); + setSelectedClientForMessage(null); + }; + + useEffect(() => { const fetchClients = async () => { try { @@ -81,6 +97,7 @@ const Clients: React.FC = () => { const client = response.data.clients.find( (client: Client) => client._id === id ); + console.log(client); const tasksResponse = await axios.get("/api/tasks"); const clientTasks = tasksResponse.data.tasks.filter((task: any) => task.clientEmail === client.email); @@ -112,8 +129,31 @@ const Clients: React.FC = () => { }; fetchClients(); + }, [id]); + + const updateClientItems = (updatedItems: Item[]) => { + setClientData((prevData: Client) => ({ + ...prevData, + items: updatedItems, + })); + }; + + useEffect(() => { + // Example of how you might fetch or set stylistId + const fetchStylistId = async () => { + try { + const response = await axios.get('/api/profile'); + console.log("Stylist ID:", response.data.userProfile._id); + setStylistId(response.data.userProfile._id); // Assuming API returns stylistId + } catch (error) { + console.error("Error fetching stylist ID:", error); + } + }; + + fetchStylistId(); }, []); + if (loading) { return (
@@ -121,7 +161,6 @@ const Clients: React.FC = () => {
); } - console.log("clientData in id", clientData); if (!clientData) { return
No client data available
; @@ -140,7 +179,8 @@ const Clients: React.FC = () => { /> -
+
+
+ {isMessageModalOpen && selectedClientForMessage && ( + + )} ); }; diff --git a/src/app/my-clients/page.tsx b/src/app/my-clients/page.tsx index e2e687c..9c8ca1c 100644 --- a/src/app/my-clients/page.tsx +++ b/src/app/my-clients/page.tsx @@ -6,9 +6,10 @@ import axios from "axios"; import { useRouter } from "next/navigation"; import Spinner from "@/components/Spinner"; import TopItem from "@/components/Topitem"; +import MessageModal from "@/components/Modals/MessageModal"; interface Client { - _id: any; + _id: string; fullName: string; email: string; tasks: string; @@ -21,10 +22,14 @@ interface Client { export default function Home() { const router = useRouter(); + + const [isMessageModalOpen, setIsMessageModalOpen] = useState(false); + const [selectedClientForMessage, setSelectedClientForMessage] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const [clients, setClients] = useState([]); const [clientsData, setClientsData] = useState([]); const [loading, setLoading] = useState(true); + const [stylistId, setStylistId] = useState(''); // Define stylistId state const openModal = () => setIsModalOpen(true); const closeModal = () => setIsModalOpen(false); @@ -43,6 +48,16 @@ export default function Home() { } }; + const openMessageModal = (client: Client) => { + setSelectedClientForMessage(client); + setIsMessageModalOpen(true); + }; + + const closeMessageModal = () => { + setIsMessageModalOpen(false); + setSelectedClientForMessage(null); + }; + useEffect(() => { const fetchClients = async () => { try { @@ -62,6 +77,28 @@ export default function Home() { fetchClients(); }, []); + useEffect(() => { + // Example of how you might fetch or set stylistId + const fetchStylistId = async () => { + try { + const response = await axios.get('/api/profile'); + console.log("Stylist ID:", response.data.userProfile._id); + setStylistId(response.data.userProfile._id); // Assuming API returns stylistId + } catch (error) { + console.error("Error fetching stylist ID:", error); + } + }; + + fetchStylistId(); + }, []); + + // Log the selected client whenever it changes + useEffect(() => { + if (selectedClientForMessage) { + console.log("Selected client for message:", selectedClientForMessage); + } + }, [selectedClientForMessage]); + if (loading) { return (
@@ -69,11 +106,12 @@ export default function Home() {
); } + return (
{clientsData.length === 0 && (
-
+
You have no clients yet. Add your first client
- {/* */}
))}
+ {isMessageModalOpen && selectedClientForMessage && ( + + )} ); } diff --git a/src/app/shoppingList/page.tsx b/src/app/shoppingList/page.tsx new file mode 100644 index 0000000..cbdeee9 --- /dev/null +++ b/src/app/shoppingList/page.tsx @@ -0,0 +1,183 @@ +"use client"; +import React, { useState, useEffect } from "react"; +import Image from 'next/image'; +import Menubar from "@/components/Menubar"; +import axios from 'axios'; +import toast, { Toaster } from 'react-hot-toast'; + +function ShoppingListPage() { + const [shoppingLists, setShoppingLists] = useState([]); + const [selectedList, setSelectedList] = useState(null); + + useEffect(() => { + const fetchShoppingLists = async () => { + try { + const response = await axios.get('/api/shopping-list'); + + if (response.status === 200) { + setShoppingLists(response.data.shoppingLists); + + } else { + toast.error("Failed to fetch presentations."); + } + + } catch (error) { + console.error("Error fetching shopping lists", error); + } + }; + + fetchShoppingLists(); + }, []); + + const handleListClick = (list: any) => { + setSelectedList(list); + }; + + return ( +
+ + +
+
+ Shopping Lists +
+
+ + {!selectedList ? ( +
+ {shoppingLists?.length === 0 ? ( +
+ No shopping list created yet +
+ ) : ( + shoppingLists.map((list: any) => ( +
handleListClick(list)} className="relative cursor-pointer"> +
+ {list.name} +
+ {list.name} +
+
+
+ )) + )} +
+ ) : ( + <> +
+ + + {selectedList.name} + +
+
+ + +
+
+ + {/* */} + {/*

{selectedList.name}

*/} +
+ {selectedList.items.length === 0 ? ( +
+ No items found +
+ ) : ( + selectedList.items.map((item: any) => ( +
+
+ {item.name} +
+
+

+ {item.name} +

+
+ Desc: +

+ {item.description} +

+
+
+ Alternative Options: +
+ {item.options.map((option: any, index: any) => ( + + + {index + 1} + + + {option.length > 30 ? `${option.slice(0, 30)}...` : option} + + + ))} +
+
+
+
+ )) + + )} +
+
+ )} +
+ ); +} + +export default ShoppingListPage; diff --git a/src/app/signin/forgetPassword/page.tsx b/src/app/signin/forgetPassword/page.tsx index 45c3b1f..43ac92c 100644 --- a/src/app/signin/forgetPassword/page.tsx +++ b/src/app/signin/forgetPassword/page.tsx @@ -1,36 +1,71 @@ // pages/signin/forgetpassword/index.js -"use client" +"use client"; import Link from "next/link"; import React, { useState } from "react"; +import axios from "axios"; +import toast, { Toaster } from 'react-hot-toast'; function ForgetPassword() { const [email, setEmail] = useState(""); const [isEmailSent, setIsEmailSent] = useState(false); - const gradientBackground = ` - linear-gradient(#15272E, #347C8D) - `; - const handleSendEmail = () => { - // Implement logic to send a confirmation email (you can use a backend API) + const [errorMessage, setErrorMessage] = useState(""); - // For demonstration purposes, just update the state to simulate email sent - setIsEmailSent(true); + // Email validation function + const isEmailValid = (email:string) => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); + }; + + const handleSendEmail = async () => { + if (!isEmailValid(email)) { + toast.error("Please enter a valid email address."); + return; + } + + try { + const res = await axios.post("/api/users/forgetPassword", { email }); + + if (res.data.success) { + setIsEmailSent(true); + toast.success("Password reset link sent to your email."); + } else { + setErrorMessage(res.data.error); + toast.error(res.data.error); + } + } catch (error) { + console.error("Error sending email:", error); + setErrorMessage("Email not exists."); + toast.error("Email not exists. Please try again."); + } }; return ( -
+
+
-
- - - - - +
+ + + + +
-

- - Forget your password?

-
There is nothing to worry about, we'll send you a message to help you reset your password.
- {/* Email Input */} +

Forget your password?

+

+ Enter your email address to receive a password reset link. +

{!isEmailSent ? ( <> setEmail(e.target.value)} className="bg-[#F3F3F3] p-2 mt-4 py-3 w-[33vw] rounded-md" /> - - {/* Send Email Button */} + {errorMessage && ( +

{errorMessage}

+ )} ) : (

Email sent successfully!

)}
- - {/* Your Logo or Image Section */} -
- {/* Include your logo or image here */} -
); } diff --git a/src/app/signin/page.tsx b/src/app/signin/page.tsx index 74b1f48..abf2f0a 100644 --- a/src/app/signin/page.tsx +++ b/src/app/signin/page.tsx @@ -212,6 +212,7 @@ export default function Index() { src="/Images/Logo.svg" alt="checkroom" width={0} + priority height={0} className="w-auto h-auto justify-center items-center flex" /> diff --git a/src/app/signin/setPassword/page.tsx b/src/app/signin/setPassword/page.tsx new file mode 100644 index 0000000..7c28701 --- /dev/null +++ b/src/app/signin/setPassword/page.tsx @@ -0,0 +1,75 @@ +// pages/signin/setpassword/index.js +"use client"; +import React, { useEffect, useState } from "react"; +import { useRouter } from "next/navigation"; +import axios from "axios"; +import toast, { Toaster } from 'react-hot-toast'; + +function SetPassword() { + const [newPassword, setNewPassword] = useState(""); + const [confirmPassword, setConfirmPassword] = useState(""); + const [token, setToken] = useState(""); + const router = useRouter(); + + const handleSetPassword = async () => { + if (!token) { + toast.error("Invalid or missing token."); + return; + } + + if (newPassword !== confirmPassword) { + toast.error("Passwords do not match."); + return; + } + + try { + const res = await axios.post("/api/users/setPassword/", { token, newPassword }); + + if (res.data.success) { + toast.success("Password has been reset successfully."); + setTimeout(() => router.push("/signin"), 3000); // Redirect to signin after 3 seconds + } else { + toast.error(res.data.error); + } + } catch (error) { + console.error("Error setting password:", error); + toast.error("Invalid or expired token."); + } + }; + + useEffect(() => { + // Safely extract token from the URL using URLSearchParams + const params = new URLSearchParams(window.location.search); + const urlToken = params.get("token"); + setToken(urlToken || ""); + }, []); + + return ( +
+ +

Set a New Password

+ setNewPassword(e.target.value)} + className="p-2 mb-4 w-80 border rounded" + /> + setConfirmPassword(e.target.value)} + className="p-2 mb-4 w-80 border rounded" + /> + +
+ ); +} + +export default SetPassword; diff --git a/src/app/signup/page.tsx b/src/app/signup/page.tsx index e3a62fa..36d7ddc 100644 --- a/src/app/signup/page.tsx +++ b/src/app/signup/page.tsx @@ -206,6 +206,7 @@ export default function Index() { checkroom = ({ clientData }) => { - console.log("clientData in header", clientData); - console.log("profile in header", clientData.profile); +const Header: React.FC = ({ clientData, openMessageModal }) => { + return (
@@ -44,7 +42,11 @@ const Header: React.FC = ({ clientData }) => {
- ))}
-
- {filteredItems.map((bgRemove, index) => ( +
+ {filteredItems && filteredItems.length > 0 ? ( + filteredItems.map((bgRemove, index) => (
= ({ items, clientEmail, clientName }) => { />
- ))} + )) + ) : ( +
+

No Items found yet

+
+ )}
{isDeleteModalOpen && (
diff --git a/src/components/Clients/Moodboards.tsx b/src/components/Clients/Moodboards.tsx index 5452c66..2ba0b8b 100644 --- a/src/components/Clients/Moodboards.tsx +++ b/src/components/Clients/Moodboards.tsx @@ -175,27 +175,29 @@ const MoodBoards: React.FC = ({ moodboards: initialMoodboards,clientEmail className="hidden" id="galleryInput" /> -
{!isEditing && ( -
+
{moodboards && moodboards.length > 0 ? ( moodboards.map((list: any, index: number) => ( -
-
+
+ {/*
-
-
+
*/} +
{list.name}

{list.name}

@@ -231,8 +233,8 @@ const MoodBoards: React.FC = ({ moodboards: initialMoodboards,clientEmail
)) ) : ( -
-

No moodboards available

+
+

No moodboards available yet

)}
@@ -245,8 +247,8 @@ const MoodBoards: React.FC = ({ moodboards: initialMoodboards,clientEmail
{isCreating ? "Create a moodboard" : "Edit a moodboard"}
-
= ({ moodboards: initialMoodboards,clientEmail {isDeleteModalOpen && ( -
-
-
Are you sure you want to delete this moodboard?
{deleteIndex !== null && ( -
+
{`Image = ({ moodboards: initialMoodboards,clientEmail
diff --git a/src/components/Clients/Presentations.tsx b/src/components/Clients/Presentations.tsx index b0bd411..6f182e6 100644 --- a/src/components/Clients/Presentations.tsx +++ b/src/components/Clients/Presentations.tsx @@ -3,6 +3,7 @@ import Image from 'next/image'; import { useRouter } from 'next/navigation'; import axios from 'axios'; import toast, { Toaster } from 'react-hot-toast'; +import Presentations from '@/components/Clients/Presentations'; interface Presentation { _id: string; @@ -53,9 +54,10 @@ const ClientPresentations = ({ presentations }: { presentations: Presentation[]
- {presentationList.map((presentation) => ( -
-
+ {presentationList && presentationList.length > 0 ? ( + presentationList.map((presentation) => ( +
+
Presentation Background )}
- ))} + )) + ): ( +
+

No Presentations available yet

+
+ )}
); diff --git a/src/components/Clients/ShoppingList.tsx b/src/components/Clients/ShoppingList.tsx index 6e1b635..ac6efa5 100644 --- a/src/components/Clients/ShoppingList.tsx +++ b/src/components/Clients/ShoppingList.tsx @@ -371,7 +371,8 @@ const ShoppingList: React.FC = ({clientEmail, shoppinglist}) => {
- {shoppingLists.map((list) => ( + {shoppingLists && shoppingLists.length > 0 ? ( + shoppingLists.map((list) => (
= ({clientEmail, shoppinglist}) => { )}
- ))} + )) + ) : ( +
+

No shopping list available yet

+
+ )}
) : ( @@ -469,7 +475,8 @@ const ShoppingList: React.FC = ({clientEmail, shoppinglist}) => {
- {selectedListForOpen.items.map((item: any) => ( + {selectedListForOpen.items && selectedListForOpen.items.length > 0 ? ( + selectedListForOpen.items.map((item: any) => (
= ({clientEmail, shoppinglist}) => { )}
- ))} + )) + ) : ( +
+

No items available yet

+
+ )}
)} diff --git a/src/components/Clients/Tasks.tsx b/src/components/Clients/Tasks.tsx index 03b8f19..d2ca74e 100644 --- a/src/components/Clients/Tasks.tsx +++ b/src/components/Clients/Tasks.tsx @@ -36,12 +36,12 @@ const renderTaskSection = ( handleDeleteTask: { (taskId: any): Promise; (arg0: any): void } ) => (
-
-

{title}:

-
+
+

{title}:

+
-
+
+ Add a New Task
@@ -49,7 +49,8 @@ const renderTaskSection = (
- {taskList.map((task) => ( + {taskList && taskList.length > 0 ? ( + taskList.map((task) => (
- ))} + )) + ) : ( +
+

No tasks available yet

+
+ )}
); diff --git a/src/components/Home/Capsules.tsx b/src/components/Home/Capsules.tsx new file mode 100644 index 0000000..6011694 --- /dev/null +++ b/src/components/Home/Capsules.tsx @@ -0,0 +1,146 @@ +"use client"; +import React, { useEffect, useState } from "react"; +import Image from "next/image"; +import { useRouter } from "next/navigation"; +import axios from "axios"; + +function Capsules() { + const [presentations, setPresentations] = useState([]); + const [shoppingLists, setShoppingLists] = useState([]); + const [menuVisible, setMenuVisible] = useState(null); + const router = useRouter(); + + // Fetch Presentations and Shopping Lists + useEffect(() => { + const fetchData = async () => { + try { + const [presentationsRes, shoppingListsRes] = await Promise.all([ + axios.get("/api/presentations"), + axios.get("/api/shopping-list"), + ]); + + setPresentations(presentationsRes.data.presentations); + setShoppingLists(shoppingListsRes.data.shoppingLists); + } catch (error) { + console.error("Error fetching data", error); + } + }; + + fetchData(); + }, []); + + // Handle Menu Icon Click + const handleMenuClick = (index:any) => { + setMenuVisible(menuVisible === index ? null : index); + }; + + // Handle "See Details" Click + const handleSeeDetailsClick = (type:any, id:any) => { + if (type === "presentation") { + router.push(`/presentations`); + } else if (type === "shopping-list") { + router.push(`/shoppingList`); + } + }; + + return ( +
+ {/* Presentations Section */} +
+
+ Presentations: +
+
+
+ {presentations.map((presentation:any, index:any) => ( +
+ Image +
+ + {presentation.name} + +
+ +
+ Menu Icon handleMenuClick(index)} + /> +
+ {menuVisible === index && ( +
+ +
+ )} +
+ ))} +
+ + {/* Shopping Lists Section */} +
+
+ Shopping Lists: +
+
+
+ {shoppingLists.map((shoppingList:any, index) => ( +
+ {shoppingList.name} +
+ {shoppingList.name} +
+
+ Menu Icon handleMenuClick(index + presentations.length)} + /> +
+ {menuVisible === index + presentations.length && ( +
+ +
+ )} +
+ ))} +
+
+ ); +} + +export default Capsules; diff --git a/src/components/Home/Home2.tsx b/src/components/Home/Home2.tsx index bfeec5e..d4154e0 100644 --- a/src/components/Home/Home2.tsx +++ b/src/components/Home/Home2.tsx @@ -38,7 +38,7 @@ function Home2() { return (
-
+

Upcoming Events

-
+

Clients

{client.fullName}

-

{recentTask}

+

{recentTask}

+
+
+ In which category do you want to add the item? +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ {/* Add more checkbox inputs here */} +
+
+ )} + +
+ {!showOptions && !showPhotographyTips &&( + + )} + + {showOptions && ( +
+
+ + +
+ + +
+ )} + {showPhotographyTips && } +
+
+
+ ); +} + +export default BottomModal; diff --git a/src/components/Items/CameraItem.tsx b/src/components/Items/CameraItem.tsx new file mode 100644 index 0000000..69842b5 --- /dev/null +++ b/src/components/Items/CameraItem.tsx @@ -0,0 +1,245 @@ +"use client"; +import React, { useState } from "react"; + +interface CameraItemProps { + onClose: () => void; + setBgremove: any; + onImageUpload: any; + checkedCategories: string[]; +} + +function CameraItem({ onClose, setBgremove, onImageUpload, checkedCategories }: CameraItemProps) { + // Logic to fetch photography tips data and implement slider functionality + const [currentSlide, setCurrentSlide] = useState(1); + const [photo, setPhoto] = useState(null); + // const [bgremove, setBgremove] = useState(null); + const totalSlides = 4; + + const handleNextSlide = () => { + setCurrentSlide((prevSlide) => + prevSlide === totalSlides ? 1 : prevSlide + 1 + ); + }; + + const handleBackSlide = () => { + setCurrentSlide((prevSlide) => + prevSlide === 1 ? totalSlides : prevSlide - 1 + ); + }; + + const handleStart = async (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + if (!file) return; + const apikey = "QFXGXN9GKome6e5zSEuPSwkh"; + const url = "https://api.remove.bg/v1.0/removebg"; + + const formData:any = new FormData(); + formData.append("image_file", file, file.name); + formData.append("size", "auto"); + formData.append("categories", checkedCategories.join(',')); + + try { + const response = await fetch(url, { + method: "POST", + body: formData, + headers: { + "X-Api-Key": apikey, + }, + }); + const blob= await response.blob(); + const reader = new FileReader(); + reader.onloadend = () => { + const base64Image = reader.result as string | null;; + if (base64Image) { + setBgremove((prevBgremove:any) => { + const updatedBgremove = [...prevBgremove, { image: base64Image, categories: checkedCategories }]; + console.log("updatedBgremove",updatedBgremove); // Log the updated state to see if categories are saved + return updatedBgremove; + }); + onImageUpload(base64Image, checkedCategories); + console.log("base64Image",base64Image); // Now you should see the categories populated + } + onClose(); + }; + reader.readAsDataURL(blob); + } catch (error) { + console.log(error); + } + }; + + // Placeholder content for each slide + const slideContent: any = { + 1: { + title: "Hang the item on a hanger or put it on a contrasting background", + description: ( +
+

+
+ Example + Example + +

+ Option 1 +

+ Example + +

+ Option 2 +

+ Example +
+
+ ), + }, + 2: { + title: "Find good cool or daylight lighting", + description: ( +
+

+ {" "} + *For a good look, the thing should be ironed* +

+
+ Example +
+
+ ), + }, + 3: { + title: "If there are buttons, you need to pinch them all", + description: ( +
+
+ Example +
+
+ ), + }, + 4: { + title: "", + description: ( +
+
+ Perfectly! +
You are ready to take a photo:) +
+ {/* */} + {photo && Captured} +
+ ), + }, + }; + + return ( +
+
+ Photography Tips +
+ +
+

+ {slideContent[currentSlide].title} +

+

{slideContent[currentSlide].description}

+
+ + {currentSlide > 1 && ( + + )} + + {/* Next button (hide on last slide) */} + {currentSlide < totalSlides && ( +
+ +
+ )} +
+ ); +} + +export default CameraItem; diff --git a/src/components/Items/CategoryDropdown.tsx b/src/components/Items/CategoryDropdown.tsx new file mode 100644 index 0000000..9a7f81c --- /dev/null +++ b/src/components/Items/CategoryDropdown.tsx @@ -0,0 +1,44 @@ +"use client" +// CategoryDropdown.tsx +import React from "react"; + +interface CategoryDropdownProps { + categories: string[]; + selectedCategories: string[]; + onCategoryChange: (category: string) => void; +} + +const CategoryDropdown: React.FC = ({ + categories, + selectedCategories, + onCategoryChange, +}) => { + const handleCheckboxChanges = (event: React.ChangeEvent) => { + const category = event.target.value; + onCategoryChange(category); + console.log("Selected category:", category); + }; + + return ( +
+ {categories.map((category, index) => ( +
+ + +
+ ))} +
+ ); +}; + +export default CategoryDropdown; + diff --git a/src/components/Menubar.tsx b/src/components/Menubar.tsx new file mode 100644 index 0000000..4f3db14 --- /dev/null +++ b/src/components/Menubar.tsx @@ -0,0 +1,158 @@ +"use client"; +import React from "react"; +import { useState } from "react"; +import logo from "../../public/logo.svg"; +import bell from "../../public/icons/bell.svg"; +import menu from "../../public/icons/menu.svg"; +import Image from "next/image"; +import Link from "next/link"; + +export default function Menubar() { + const [isMenuOpen, setIsMenuOpen] = useState(false); + + const toggleMenu = () => { + setIsMenuOpen(!isMenuOpen); + }; + + return ( +
+ {/* Left side logo */} +
+ Logo +
+ +
+ bell +
+ +
+
+ + {/* Mobile menu */} + {isMenuOpen && ( +
+
+
+
+ Logo +
+ {/* Close button */} + +
+
+
+ home + + Home + +
+
+ items + + Items + +
+
+ home + + + Presentations + +
+
+ home + + Moodboards + +
+
+ home + + Shopping List + +
+
+ home + + Profile + +
+
+ home + + FAQ + +
+
+
+ {/*
*/} +
+ )} +
+ ); +} diff --git a/src/components/Modals/MessageModal.tsx b/src/components/Modals/MessageModal.tsx new file mode 100644 index 0000000..1a04a48 --- /dev/null +++ b/src/components/Modals/MessageModal.tsx @@ -0,0 +1,182 @@ +import React, { useState, useEffect, useRef } from 'react'; +import axios from 'axios'; +import socket from '../../socket'; +// import { Socket , io} from 'socket.io-client'; +import Image from 'next/image'; + +interface Client { + _id: string; + fullName: string; + image?: string; +} + +interface Message { + sender: string; + receiver: string; + content: string; + timestamp?: Date; +} + +interface MessageModalProps { + isOpen: boolean; + onClose: () => void; + clients: any; + stylistId: string; +} + +// MessageModal component changes + +export default function MessageModal({ + isOpen, + onClose, + clients, // This will now only be the selected client + stylistId, +}: MessageModalProps) { + const [messages, setMessages] = useState([]); + const [newMessage, setNewMessage] = useState(''); + const messageEndRef = useRef(null); + + // Since clients will always contain the selected client, extract the first one + const selectedClient = clients[0]; + + useEffect(() => { + if (isOpen) { + fetchMessages(); + socket.connect(); + + // Join as a stylist + socket.emit('join', { role: 'stylist', userId: stylistId }); + + // Listen for incoming private messages + socket.on("private_message", (msg: Message) => { + setMessages((prevMessages) => [...prevMessages, msg]); + }); + } + + // Cleanup on unmount or when modal closes + return () => { + socket.off('private_message'); + socket.disconnect(); + setMessages([]); + }; + }, [isOpen, stylistId, selectedClient]); + + const fetchMessages = async () => { + try { + const response = await axios.get(`/api/messages?senderId=${stylistId}&receiverId=${selectedClient._id}`); + setMessages(response.data.messages); + } catch (error) { + console.error('Error fetching messages:', error); + } + }; + + const sendMessage = async () => { + if (!newMessage.trim()) return; + + const messageData: Message = { + sender: stylistId, + receiver: selectedClient._id, + content: newMessage, + }; + + try { + // Send the message to the API + const response = await axios.post('/api/messages', messageData); + setMessages((prevMessages) => [...prevMessages, response.data.message]); + + // Emit the private message via Socket.IO + socket.emit('private_message', { + content: newMessage, + to: selectedClient._id, + from: stylistId, + }); + + setNewMessage(''); + } catch (error) { + console.error('Error sending message:', error); + } + }; + + useEffect(() => { + if (messageEndRef.current) { + messageEndRef.current.scrollIntoView({ behavior: "smooth" }); + } + }, [messages]); + + + return isOpen ? ( +
+
+ {/* Right Side: Chat Box */} +
+
+ + stylist +
+

{selectedClient.fullName}

+
+ {/* + {stylistOnline ? "Online" : "Offline"} */} +
+
+
+
+ {messages.map((message, index) => ( +
+

+ {message.content} +

{message?.timestamp && new Date(message.timestamp).toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true })} +
+

+
+ ))} +
+
+ +
+ setNewMessage(e.target.value)} + placeholder="Type a message..." + className="w-[38vw] p-2.5 border rounded-md" + /> + +
+
+
+ + +
+ ) : null; +} diff --git a/src/components/Profile/ProfileComponent.tsx b/src/components/Profile/ProfileComponent.tsx new file mode 100644 index 0000000..42d27a3 --- /dev/null +++ b/src/components/Profile/ProfileComponent.tsx @@ -0,0 +1,612 @@ +"use client"; +import React, { useEffect, useState } from "react"; +import Image from "next/image"; +import imgUser from "../../../public/logo.svg"; +import Link from "next/link"; +import { FiEye, FiEyeOff } from "react-icons/fi"; +import axios from "axios"; +import toast, { Toaster } from 'react-hot-toast'; +import { signOut, useSession } from "next-auth/react"; + +interface UserData { + email: string, + fullName: string, + age: string, + height: string, + footSize: string, + shoulders: string, + waist: string, + breast: string, + hips: string, + favoriteColors: string, + tabooColors: string, + neverWear: string, + rhythmOfLife: string, + preferredShoes: string, + dreamOutfit: string, + needWeekendItems: string, + influencersStyle: string, + favoriteBrands: string, + priceSegment: string, + expectations:string, + password: string, + image: string|undefined; +} + +const FormComponent = () => { + const [activeSection, setActiveSection] = useState("personalInfo"); + // const [userData, setUserData] = useState({image: ""}); + const [showPassword, setShowPassword] = useState(false); + const [newPassword, setNewPassword] = useState(""); + const [userData, setUserData] = useState({ + email: "", + fullName: "", + age: "", + height: "", + footSize: "", + shoulders: "", + waist: "", + breast: "", + hips: "", + favoriteColors: "", + tabooColors: "", + image:"", + neverWear: "", + rhythmOfLife: "", + preferredShoes: "", + dreamOutfit: "", + needWeekendItems: "", + influencersStyle: "", + favoriteBrands: "", + priceSegment: "", + expectations: "", + password: "", + }); + + + useEffect(() => { + fetchUserData(); + }, []); + + const fetchUserData = async () => { + try { + const response = await axios.get("/api/profile"); + + const clientData = response.data; + console.log(clientData,"fss") + + // Merge user data into a single object + // const mergedUserData = { + // clientData + // }; + + setUserData(clientData); + + } catch (error: any) { + console.error("Error fetching user data:", error); + toast.error("Error fetching user data:", error.response?.data || error.message); + } + }; + + const handlePasswordChange = (e:any) => { + setNewPassword(e.target.value); + }; + + const handleSectionClick = (section: any) => { + setActiveSection(section === activeSection ? null : section); + }; + + const handleConfirmChanges = async () => { + try { + const updatedData = { ...userData }; + if (newPassword) { + updatedData.password = newPassword; + await axios.post("/api/profile", updatedData); + // toast.success("Password updated successfully"); + } else { + const { password, ...otherData } = updatedData; + await axios.post("/api/profile", otherData); + } + console.log("User data saved successfully"); + toast.success("Profile updated successfully"); + } catch (error:any) { + console.error("Error saving user data:", error); + toast.error("Error saving profile:", error.response?.message || error.message); + } + }; + + const handleInputChange = (e:any) => { + const { id, value } = e.target; + setUserData({ ...userData, [id]: value }); + }; + + const handleProfilePictureChange = ( + e: React.ChangeEvent + ) => { + const file = e.target.files![0]; + if (file) { + const reader = new FileReader(); + reader.onload = () => { + const result = reader.result?.toString(); + // if (typeof result === "string") { + setUserData({ ...userData, image: result }); + console.log("image", result) + // } + }; + reader.readAsDataURL(file); + } + }; + + return ( +
+ +
+ Profile +
+
+
handleSectionClick("settings")} + > + Settings +
+
handleSectionClick("personalInfo")} + > + Personal Info +
+
handleSectionClick("generalInfo")} + > + General Info +
+
+
+ {activeSection === "settings" && ( +
+ +
+ + +
+ +
+ +
+ + + + +
+ +
setShowPassword(!showPassword)} + > + {showPassword ? : } +
+
+ {/* Add more input fields as needed */} + + +
+ + +
+ )} + {activeSection === "personalInfo" && ( +
+ {/* Input fields for Personal Info section */} + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+
+ + + + + + {/* Add more input fields as needed */} +
+ )} + {activeSection === "generalInfo" && ( +
+ {/* Input fields for General Info section */} + + + + + + + + + + + + + + + + + + + + + + + + -
- -
- )} -
-
- - )} -
- - ); -} - -export default page; diff --git a/src/app/moodboards/page.tsx b/src/app/moodboards/page.tsx deleted file mode 100644 index fcfebb0..0000000 --- a/src/app/moodboards/page.tsx +++ /dev/null @@ -1,359 +0,0 @@ -"use client"; -// Page.tsx -import React, { useState,useEffect } from "react"; -import { useRouter } from "next/navigation"; -import Image from 'next/image'; -import ChatModal from "@/components/moodboards/chatModal"; -import Menubar from "@/components/Menubar"; -import Preview from "@/components/moodboards/Preview"; -import axios from "axios"; - -function MoodboardsPage() { - const [moodboards, setMoodboards] = useState<{_id:string, name: string; images: string[] }[]>([]); - const [selectedImages, setSelectedImages] = useState([]); - const [dotSection, setDotSection] = useState(null); - const [isEditing, setIsEditing] = useState(false); - const [editIndex, setEditIndex] = useState(null); - const [newImages, setNewImages] = useState([]); - const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false); - const [deleteIndex, setDeleteIndex] = useState(null); - const [isChatModalOpen, setIsChatModalOpen] = useState(false); - - const router = useRouter(); - - useEffect(() => { - fetchMoodboards(); - }, []); - - const fetchMoodboards = async () => { - try { - const response = await axios.get("/api/moodboards"); - setMoodboards(response.data.data); - } catch (error) { - console.error("Error fetching moodboards:", error); - } - }; - - const handleEdit = (index: number) => { - setDotSection(null); - setIsEditing(true); - setEditIndex(index); - }; - - const handleBackToMoodboards = () => { - setIsEditing(false); - setEditIndex(null); - setNewImages([]); - }; - - const handleChatIconClick = () => { - setIsChatModalOpen(true); - }; - - const handleCloseChatModal = () => { - setIsChatModalOpen(false); - }; - - const handleGalleryInputChange = async (event: React.ChangeEvent) => { - const files = event.target.files; - - if (!files) { - return; - } - - const validImages = Array.from(files) - .filter((file: File) => file.type.startsWith('image/')) // Check for image type - .slice(0, 20); // Limit to 20 images - - if (validImages.length < 1 || validImages.length > 20) { - alert('Please select between 1 and 20 images.'); - return; - } - - const base64Images = await Promise.all( - validImages.map(async (file: File) => { - const arrayBuffer = await file.arrayBuffer(); - const base64 = Buffer.from(arrayBuffer).toString('base64'); - return `data:${file.type};base64,${base64}`; - }) - ); - - setSelectedImages(base64Images); - }; - - const handleNewImagesChange = async (event: React.ChangeEvent) => { - const files = event.target.files; - - if (!files) { - return; - } - - const validImages = Array.from(files) - .filter((file: File) => file.type.startsWith('image/')) - .slice(0, 10); - - if (validImages.length < 1 || validImages.length > 10) { - alert('Please select between 1 and 10 images.'); - return; - } - - const base64Images = await Promise.all( - validImages.map(async (file: File) => { - const arrayBuffer = await file.arrayBuffer(); - const base64 = Buffer.from(arrayBuffer).toString('base64'); - return `data:${file.type};base64,${base64}`; - }) - ); - - setNewImages(base64Images); - }; - - const handleSaveMoodboard = async (name: string) => { - try { - const response = await axios.post("/api/moodboards", { name, images: selectedImages }); - setMoodboards([...moodboards, response.data.data]); - setSelectedImages([]); - console.log("Saving moodboard:", response.data.data); - } catch (error) { - console.error("Error saving moodboard:", error); - } - }; - - const handleSaveEditedMoodboard = async () => { - if (editIndex !== null) { - const updatedMoodboards = [...moodboards]; - const moodboardId = updatedMoodboards[editIndex]._id; - const updatedImages = [...updatedMoodboards[editIndex].images, ...newImages]; - - try { - const response = await axios.put("/api/moodboards", { - _id: moodboardId, - images: updatedImages, - }); - updatedMoodboards[editIndex] = response.data.data; - setMoodboards(updatedMoodboards); - handleBackToMoodboards(); - } catch (error) { - console.error("Error updating moodboard:", error); - } - } - }; - - const handleOpen = (index: number) => { - setDotSection(dotSection === index ? null : index); - }; - - const handleDeleteClick = (index: number) => { - setDeleteIndex(index); - setIsDeleteModalOpen(true); - }; - - const handleCloseDeleteModal = () => { - setIsDeleteModalOpen(false); - setDeleteIndex(null); - }; - - const handleConfirmDelete = async () => { - if (deleteIndex !== null) { - const updatedMoodboards = [...moodboards]; - const moodboardId = updatedMoodboards[deleteIndex]._id; - - try { - await axios.delete(`/api/moodboards?id=${moodboardId}`); - updatedMoodboards.splice(deleteIndex, 1); - setMoodboards(updatedMoodboards); - handleCloseDeleteModal(); - } catch (error) { - console.error("Error deleting moodboard:", error); - } - } - } - return ( -
- - {selectedImages.length === 0 && ( - <> - -
-
- Moodboards: -
-
-
- - -
-
-
- - {!isEditing && ( -
- {moodboards.map((moodboard, index) => ( -
-
- {moodboard.name} - -
- - {dotSection === index && ( -
- - - {/* Add more options here */} -
- )} -
-
-
- {moodboard.name} -
-
- ))} -
)})} - {isChatModalOpen && } - {selectedImages.length > 0 && } - {isEditing && editIndex !== null && ( -
-
-
- -
- {editIndex !== null ? moodboards[editIndex].name : ''} -
-
-
- comments -
- - -
-
-
- {moodboards[editIndex].images.map((image, idx) => ( -
- {`Moodboard -
- ))} - {newImages.map((image, idx) => ( -
- {`New -
- ))} -
-
- -
-
- )} - {isDeleteModalOpen && ( -
-
- -
Are you sure you want to delete this moodboard?
- {deleteIndex !== null && ( - -
- {`Image -
- {moodboards[deleteIndex].name} -
-
- )} -
- - -
-
-
- )} - - -
- ); -} - -export default MoodboardsPage; \ No newline at end of file diff --git a/src/app/moodboards/preview/page.tsx b/src/app/moodboards/preview/page.tsx deleted file mode 100644 index e143b0c..0000000 --- a/src/app/moodboards/preview/page.tsx +++ /dev/null @@ -1,71 +0,0 @@ -"use client" -// Preview.tsx -import React, { useState } from 'react'; -import { useRouter } from "next/navigation"; - -interface Props { - images: string[]; -} - -function Preview({ images }: Props) { - const [selectedImage, setSelectedImage] = useState(images.length > 0 ? images[0] : '');// Initialize with the first image or an empty string - const [moodboardName, setMoodboardName] = useState(""); - const history = useRouter(); - - const handleNameChange = (event: React.ChangeEvent) => { - setMoodboardName(event.target.value); - }; - - const handleSaveMoodboard = () => { - // Save logic goes here - // Redirect to the moodboard page - history.push("/moodboards"); - }; - - const handleImageClick = (image: string) => { - setSelectedImage(image); - }; - - return ( -
- {/* Center box for selected image */} - Selected - - {/* Row slider for all images */} -
- {images.map((image, index) => ( - {`Image handleImageClick(image)} - /> - ))} -
- - {/* Name input and save button */} -
- - -
-
- ); -} - -export default Preview; \ No newline at end of file diff --git a/src/app/shoppingList/page.tsx b/src/app/shoppingList/page.tsx deleted file mode 100644 index cbdeee9..0000000 --- a/src/app/shoppingList/page.tsx +++ /dev/null @@ -1,183 +0,0 @@ -"use client"; -import React, { useState, useEffect } from "react"; -import Image from 'next/image'; -import Menubar from "@/components/Menubar"; -import axios from 'axios'; -import toast, { Toaster } from 'react-hot-toast'; - -function ShoppingListPage() { - const [shoppingLists, setShoppingLists] = useState([]); - const [selectedList, setSelectedList] = useState(null); - - useEffect(() => { - const fetchShoppingLists = async () => { - try { - const response = await axios.get('/api/shopping-list'); - - if (response.status === 200) { - setShoppingLists(response.data.shoppingLists); - - } else { - toast.error("Failed to fetch presentations."); - } - - } catch (error) { - console.error("Error fetching shopping lists", error); - } - }; - - fetchShoppingLists(); - }, []); - - const handleListClick = (list: any) => { - setSelectedList(list); - }; - - return ( -
- - -
-
- Shopping Lists -
-
- - {!selectedList ? ( -
- {shoppingLists?.length === 0 ? ( -
- No shopping list created yet -
- ) : ( - shoppingLists.map((list: any) => ( -
handleListClick(list)} className="relative cursor-pointer"> -
- {list.name} -
- {list.name} -
-
-
- )) - )} -
- ) : ( - <> -
- - - {selectedList.name} - -
-
- - -
-
- - {/* */} - {/*

{selectedList.name}

*/} -
- {selectedList.items.length === 0 ? ( -
- No items found -
- ) : ( - selectedList.items.map((item: any) => ( -
-
- {item.name} -
-
-

- {item.name} -

-
- Desc: -

- {item.description} -

-
-
- Alternative Options: -
- {item.options.map((option: any, index: any) => ( - - - {index + 1} - - - {option.length > 30 ? `${option.slice(0, 30)}...` : option} - - - ))} -
-
-
-
- )) - - )} -
-
- )} -
- ); -} - -export default ShoppingListPage; diff --git a/src/components/Home/Capsules.tsx b/src/components/Home/Capsules.tsx deleted file mode 100644 index 6011694..0000000 --- a/src/components/Home/Capsules.tsx +++ /dev/null @@ -1,146 +0,0 @@ -"use client"; -import React, { useEffect, useState } from "react"; -import Image from "next/image"; -import { useRouter } from "next/navigation"; -import axios from "axios"; - -function Capsules() { - const [presentations, setPresentations] = useState([]); - const [shoppingLists, setShoppingLists] = useState([]); - const [menuVisible, setMenuVisible] = useState(null); - const router = useRouter(); - - // Fetch Presentations and Shopping Lists - useEffect(() => { - const fetchData = async () => { - try { - const [presentationsRes, shoppingListsRes] = await Promise.all([ - axios.get("/api/presentations"), - axios.get("/api/shopping-list"), - ]); - - setPresentations(presentationsRes.data.presentations); - setShoppingLists(shoppingListsRes.data.shoppingLists); - } catch (error) { - console.error("Error fetching data", error); - } - }; - - fetchData(); - }, []); - - // Handle Menu Icon Click - const handleMenuClick = (index:any) => { - setMenuVisible(menuVisible === index ? null : index); - }; - - // Handle "See Details" Click - const handleSeeDetailsClick = (type:any, id:any) => { - if (type === "presentation") { - router.push(`/presentations`); - } else if (type === "shopping-list") { - router.push(`/shoppingList`); - } - }; - - return ( -
- {/* Presentations Section */} -
-
- Presentations: -
-
-
- {presentations.map((presentation:any, index:any) => ( -
- Image -
- - {presentation.name} - -
- -
- Menu Icon handleMenuClick(index)} - /> -
- {menuVisible === index && ( -
- -
- )} -
- ))} -
- - {/* Shopping Lists Section */} -
-
- Shopping Lists: -
-
-
- {shoppingLists.map((shoppingList:any, index) => ( -
- {shoppingList.name} -
- {shoppingList.name} -
-
- Menu Icon handleMenuClick(index + presentations.length)} - /> -
- {menuVisible === index + presentations.length && ( -
- -
- )} -
- ))} -
-
- ); -} - -export default Capsules; diff --git a/src/components/Home/ItemsHome.tsx b/src/components/Home/ItemsHome.tsx deleted file mode 100644 index d508eb6..0000000 --- a/src/components/Home/ItemsHome.tsx +++ /dev/null @@ -1,81 +0,0 @@ -"use client"; -import Image from "next/image"; -import React, { useEffect, useState } from 'react'; -import axios from 'axios'; - -function ItemsHome() { - const [items, setItems] = useState([]); - - useEffect(() => { - // Fetch items from the API - const fetchItems = async () => { - try { - const response = await axios.get('/api/items'); // Replace with the correct API endpoint - setItems(response.data.data); - } catch (error) { - console.error('Error fetching items:', error); - } - }; - - fetchItems(); - }, []); - - return ( -
- {items.map((item) => ( -
- {/* Top left icon */} -
- Top Left Icon -
- - {/* Top right icon */} -
- {/* Top Right Icon */} -
- - {/* Bottom left icon */} -
- {item.name} -
- - {/* Bottom right icon */} -
- chat -
- - {/* Center image */} -
- {item.name} -
-
- ))} -
- ); -} - -export default ItemsHome; \ No newline at end of file diff --git a/src/components/Items/BottomModal.tsx b/src/components/Items/BottomModal.tsx deleted file mode 100644 index 8dbb381..0000000 --- a/src/components/Items/BottomModal.tsx +++ /dev/null @@ -1,283 +0,0 @@ -"use client"; -import React, { useState, useEffect } from "react"; -import CameraItem from "./CameraItem"; -import axios from "axios"; - -interface BottomModalProps { - isOpen: boolean; - onClose: () => void; - onImageUpload: any; - // bgRemoves:any // Function to handle uploaded image data -} - -function BottomModal({ isOpen, onClose, onImageUpload }: BottomModalProps) { - const [showOptions, setShowOptions] = useState(false); - const [showPhotographyTips, setShowPhotographyTips] = useState(false); - // const [image, setImage] = useState(null); - const [checkedCount, setCheckedCount] = useState(0); - const [checkedCategories, setCheckedCategories] = useState([]); - const [bgremove,setBgremove]= useState([]); - - useEffect(() => { - setCheckedCount(0); - setCheckedCategories([]); - }, [isOpen]); - - const handleNextClick = () => { - setShowOptions(true); - }; - - const handleCheckboxChange = (event: React.ChangeEvent) => { - const isChecked = event.target.checked; - if (isChecked) { - setCheckedCategories(prevCategories => [...prevCategories, event.target.id]); - setCheckedCount(prevCount => prevCount + 1); // Increment checkedCount when a checkbox is checked - } else { - setCheckedCategories(prevCategories => prevCategories.filter(c => c !== event.target.id)); - setCheckedCount(prevCount => prevCount - 1); // Decrement checkedCount when a checkbox is unchecked - } - }; - - - // const handleCategoryChange = (category: string) => { - // if (checkedCategories.includes(category)) { - // setCheckedCategories((prevCategories) => - // prevCategories.filter((c) => c !== category) - // ); - // } else { - // setCheckedCategories((prevCategories) => [...prevCategories, category]); - // } - // }; - - const handleCloseModal = () => { - setShowOptions(false); - setShowPhotographyTips(false); - onClose(); // Close the modal - setCheckedCount(0); // Reset checked count - setCheckedCategories([]); // Clear checked categories - }; - - const handleGalleryInputChange = async (event: React.ChangeEvent) => { - const file = event.target.files?.[0]; - if (!file) return; - const apikey = "QFXGXN9GKome6e5zSEuPSwkh"; - const url = "https://api.remove.bg/v1.0/removebg"; - - const formData:any = new FormData(); - formData.append("image_file", file, file.name); - formData.append("size", "auto"); - formData.append("categories", checkedCategories.join(',')); - - try { - const response = await fetch(url, { - method: "POST", - body: formData, - headers: { - "X-Api-Key": apikey, - }, - }); - - console.log(response, "res") - const blob= await response.blob(); - const reader = new FileReader(); - reader.onloadend = () => { - const base64Image = reader.result as string | null;; - if (base64Image) { - setBgremove((prevBgremove:any) => { - const updatedBgremove = [...prevBgremove, { image: base64Image, categories: checkedCategories }]; - console.log("updatedBgremove",updatedBgremove); // Log the updated state to see if categories are saved - return updatedBgremove; - }); - onImageUpload(base64Image, checkedCategories); - console.log("base64Image",base64Image); // Now you should see the categories populated - } - handleCloseModal(); - }; - reader.readAsDataURL(blob); - } catch (error) { - console.log(error); - } - }; - - const handleOpenCamera = () => { - setShowOptions(false); // Hide options - setShowPhotographyTips(true); // Show photography tips - }; - const handleCancel = () => { - setShowOptions(false); - setShowPhotographyTips(false); - }; - return ( -
-
- {!showOptions && !showPhotographyTips && ( -
-
-
- Add item -
- -
-
- In which category do you want to add the item? -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- {/* Add more checkbox inputs here */} -
-
- )} - -
- {!showOptions && !showPhotographyTips &&( - - )} - - {showOptions && ( -
-
- - -
- - -
- )} - {showPhotographyTips && } -
-
-
- ); -} - -export default BottomModal; diff --git a/src/components/Items/CameraItem.tsx b/src/components/Items/CameraItem.tsx deleted file mode 100644 index 69842b5..0000000 --- a/src/components/Items/CameraItem.tsx +++ /dev/null @@ -1,245 +0,0 @@ -"use client"; -import React, { useState } from "react"; - -interface CameraItemProps { - onClose: () => void; - setBgremove: any; - onImageUpload: any; - checkedCategories: string[]; -} - -function CameraItem({ onClose, setBgremove, onImageUpload, checkedCategories }: CameraItemProps) { - // Logic to fetch photography tips data and implement slider functionality - const [currentSlide, setCurrentSlide] = useState(1); - const [photo, setPhoto] = useState(null); - // const [bgremove, setBgremove] = useState(null); - const totalSlides = 4; - - const handleNextSlide = () => { - setCurrentSlide((prevSlide) => - prevSlide === totalSlides ? 1 : prevSlide + 1 - ); - }; - - const handleBackSlide = () => { - setCurrentSlide((prevSlide) => - prevSlide === 1 ? totalSlides : prevSlide - 1 - ); - }; - - const handleStart = async (event: React.ChangeEvent) => { - const file = event.target.files?.[0]; - if (!file) return; - const apikey = "QFXGXN9GKome6e5zSEuPSwkh"; - const url = "https://api.remove.bg/v1.0/removebg"; - - const formData:any = new FormData(); - formData.append("image_file", file, file.name); - formData.append("size", "auto"); - formData.append("categories", checkedCategories.join(',')); - - try { - const response = await fetch(url, { - method: "POST", - body: formData, - headers: { - "X-Api-Key": apikey, - }, - }); - const blob= await response.blob(); - const reader = new FileReader(); - reader.onloadend = () => { - const base64Image = reader.result as string | null;; - if (base64Image) { - setBgremove((prevBgremove:any) => { - const updatedBgremove = [...prevBgremove, { image: base64Image, categories: checkedCategories }]; - console.log("updatedBgremove",updatedBgremove); // Log the updated state to see if categories are saved - return updatedBgremove; - }); - onImageUpload(base64Image, checkedCategories); - console.log("base64Image",base64Image); // Now you should see the categories populated - } - onClose(); - }; - reader.readAsDataURL(blob); - } catch (error) { - console.log(error); - } - }; - - // Placeholder content for each slide - const slideContent: any = { - 1: { - title: "Hang the item on a hanger or put it on a contrasting background", - description: ( -
-

-
- Example - Example - -

- Option 1 -

- Example - -

- Option 2 -

- Example -
-
- ), - }, - 2: { - title: "Find good cool or daylight lighting", - description: ( -
-

- {" "} - *For a good look, the thing should be ironed* -

-
- Example -
-
- ), - }, - 3: { - title: "If there are buttons, you need to pinch them all", - description: ( -
-
- Example -
-
- ), - }, - 4: { - title: "", - description: ( -
-
- Perfectly! -
You are ready to take a photo:) -
- {/* */} - {photo && Captured} -
- ), - }, - }; - - return ( -
-
- Photography Tips -
- -
-

- {slideContent[currentSlide].title} -

-

{slideContent[currentSlide].description}

-
- - {currentSlide > 1 && ( - - )} - - {/* Next button (hide on last slide) */} - {currentSlide < totalSlides && ( -
- -
- )} -
- ); -} - -export default CameraItem; diff --git a/src/components/Items/CategoryDropdown.tsx b/src/components/Items/CategoryDropdown.tsx deleted file mode 100644 index 9a7f81c..0000000 --- a/src/components/Items/CategoryDropdown.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client" -// CategoryDropdown.tsx -import React from "react"; - -interface CategoryDropdownProps { - categories: string[]; - selectedCategories: string[]; - onCategoryChange: (category: string) => void; -} - -const CategoryDropdown: React.FC = ({ - categories, - selectedCategories, - onCategoryChange, -}) => { - const handleCheckboxChanges = (event: React.ChangeEvent) => { - const category = event.target.value; - onCategoryChange(category); - console.log("Selected category:", category); - }; - - return ( -
- {categories.map((category, index) => ( -
- - -
- ))} -
- ); -}; - -export default CategoryDropdown; - diff --git a/src/components/Menubar.tsx b/src/components/Menubar.tsx deleted file mode 100644 index 4f3db14..0000000 --- a/src/components/Menubar.tsx +++ /dev/null @@ -1,158 +0,0 @@ -"use client"; -import React from "react"; -import { useState } from "react"; -import logo from "../../public/logo.svg"; -import bell from "../../public/icons/bell.svg"; -import menu from "../../public/icons/menu.svg"; -import Image from "next/image"; -import Link from "next/link"; - -export default function Menubar() { - const [isMenuOpen, setIsMenuOpen] = useState(false); - - const toggleMenu = () => { - setIsMenuOpen(!isMenuOpen); - }; - - return ( -
- {/* Left side logo */} -
- Logo -
- -
- bell -
- -
-
- - {/* Mobile menu */} - {isMenuOpen && ( -
-
-
-
- Logo -
- {/* Close button */} - -
-
-
- home - - Home - -
-
- items - - Items - -
-
- home - - - Presentations - -
-
- home - - Moodboards - -
-
- home - - Shopping List - -
-
- home - - Profile - -
-
- home - - FAQ - -
-
-
- {/*
*/} -
- )} -
- ); -} diff --git a/src/components/Profile/ProfileComponent.tsx b/src/components/Profile/ProfileComponent.tsx deleted file mode 100644 index 42d27a3..0000000 --- a/src/components/Profile/ProfileComponent.tsx +++ /dev/null @@ -1,612 +0,0 @@ -"use client"; -import React, { useEffect, useState } from "react"; -import Image from "next/image"; -import imgUser from "../../../public/logo.svg"; -import Link from "next/link"; -import { FiEye, FiEyeOff } from "react-icons/fi"; -import axios from "axios"; -import toast, { Toaster } from 'react-hot-toast'; -import { signOut, useSession } from "next-auth/react"; - -interface UserData { - email: string, - fullName: string, - age: string, - height: string, - footSize: string, - shoulders: string, - waist: string, - breast: string, - hips: string, - favoriteColors: string, - tabooColors: string, - neverWear: string, - rhythmOfLife: string, - preferredShoes: string, - dreamOutfit: string, - needWeekendItems: string, - influencersStyle: string, - favoriteBrands: string, - priceSegment: string, - expectations:string, - password: string, - image: string|undefined; -} - -const FormComponent = () => { - const [activeSection, setActiveSection] = useState("personalInfo"); - // const [userData, setUserData] = useState({image: ""}); - const [showPassword, setShowPassword] = useState(false); - const [newPassword, setNewPassword] = useState(""); - const [userData, setUserData] = useState({ - email: "", - fullName: "", - age: "", - height: "", - footSize: "", - shoulders: "", - waist: "", - breast: "", - hips: "", - favoriteColors: "", - tabooColors: "", - image:"", - neverWear: "", - rhythmOfLife: "", - preferredShoes: "", - dreamOutfit: "", - needWeekendItems: "", - influencersStyle: "", - favoriteBrands: "", - priceSegment: "", - expectations: "", - password: "", - }); - - - useEffect(() => { - fetchUserData(); - }, []); - - const fetchUserData = async () => { - try { - const response = await axios.get("/api/profile"); - - const clientData = response.data; - console.log(clientData,"fss") - - // Merge user data into a single object - // const mergedUserData = { - // clientData - // }; - - setUserData(clientData); - - } catch (error: any) { - console.error("Error fetching user data:", error); - toast.error("Error fetching user data:", error.response?.data || error.message); - } - }; - - const handlePasswordChange = (e:any) => { - setNewPassword(e.target.value); - }; - - const handleSectionClick = (section: any) => { - setActiveSection(section === activeSection ? null : section); - }; - - const handleConfirmChanges = async () => { - try { - const updatedData = { ...userData }; - if (newPassword) { - updatedData.password = newPassword; - await axios.post("/api/profile", updatedData); - // toast.success("Password updated successfully"); - } else { - const { password, ...otherData } = updatedData; - await axios.post("/api/profile", otherData); - } - console.log("User data saved successfully"); - toast.success("Profile updated successfully"); - } catch (error:any) { - console.error("Error saving user data:", error); - toast.error("Error saving profile:", error.response?.message || error.message); - } - }; - - const handleInputChange = (e:any) => { - const { id, value } = e.target; - setUserData({ ...userData, [id]: value }); - }; - - const handleProfilePictureChange = ( - e: React.ChangeEvent - ) => { - const file = e.target.files![0]; - if (file) { - const reader = new FileReader(); - reader.onload = () => { - const result = reader.result?.toString(); - // if (typeof result === "string") { - setUserData({ ...userData, image: result }); - console.log("image", result) - // } - }; - reader.readAsDataURL(file); - } - }; - - return ( -
- -
- Profile -
-
-
handleSectionClick("settings")} - > - Settings -
-
handleSectionClick("personalInfo")} - > - Personal Info -
-
handleSectionClick("generalInfo")} - > - General Info -
-
-
- {activeSection === "settings" && ( -
- -
- - -
- -
- -
- - - - -
- -
setShowPassword(!showPassword)} - > - {showPassword ? : } -
-
- {/* Add more input fields as needed */} - - -
- - -
- )} - {activeSection === "personalInfo" && ( -
- {/* Input fields for Personal Info section */} - - -
-
-
- - -
-
- - -
-
- - -
-
-
-
-
-
- - -
-
- - -
-
-
-
-
-
- - -
-
- - -
-
-
- - - - - - {/* Add more input fields as needed */} -
- )} - {activeSection === "generalInfo" && ( -
- {/* Input fields for General Info section */} - - - - - - - - - - - - - - - - - - - - - - - -