From 6438955f79031714c66eb27ad84227cd6fe57abb Mon Sep 17 00:00:00 2001 From: ovindu Date: Mon, 29 Apr 2024 22:43:54 +0530 Subject: [PATCH 01/41] added frontend --- frontend/.gitignore | 23 + frontend/README.md | 70 + frontend/package-lock.json | 19130 ++++++++++++++++ frontend/package.json | 49 + frontend/public/favicon.ico | Bin 0 -> 3870 bytes frontend/public/index.html | 43 + frontend/public/logo192.png | Bin 0 -> 5347 bytes frontend/public/logo512.png | Bin 0 -> 9664 bytes frontend/public/manifest.json | 25 + frontend/public/robots.txt | 3 + frontend/src/App.css | 38 + frontend/src/App.js | 20 + frontend/src/App.test.js | 8 + .../Authentication/Authentication.jsx | 9 + frontend/src/Components/HomePage/HomePage.jsx | 36 + .../Components/HomeSection/HomeSection.jsx | 69 + .../src/Components/HomeSection/MealPost.jsx | 154 + .../src/Components/HomeSection/ReplyModel.jsx | 7 + .../src/Components/Navigation/Navigation.jsx | 93 + .../Components/Navigation/NavigationMenu.js | 59 + frontend/src/Components/Profile/Profile.jsx | 146 + .../src/Components/RightPart/RightPart.jsx | 41 + .../Components/WorkoutPlan/WorkoutPlan.jsx | 219 + .../WorkoutPlan/WorkoutPlanPage.jsx | 32 + frontend/src/images/d.jpg | Bin 0 -> 11948 bytes frontend/src/images/logo.png | Bin 0 -> 161947 bytes frontend/src/index.css | 21 + frontend/src/index.js | 19 + frontend/src/logo.svg | 1 + frontend/src/reportWebVitals.js | 13 + frontend/src/setupTests.js | 5 + frontend/tailwind.config.js | 10 + frontend/test.py | 1 - 33 files changed, 20343 insertions(+), 1 deletion(-) create mode 100644 frontend/.gitignore create mode 100644 frontend/README.md create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/public/favicon.ico create mode 100644 frontend/public/index.html create mode 100644 frontend/public/logo192.png create mode 100644 frontend/public/logo512.png create mode 100644 frontend/public/manifest.json create mode 100644 frontend/public/robots.txt create mode 100644 frontend/src/App.css create mode 100644 frontend/src/App.js create mode 100644 frontend/src/App.test.js create mode 100644 frontend/src/Components/Authentication/Authentication.jsx create mode 100644 frontend/src/Components/HomePage/HomePage.jsx create mode 100644 frontend/src/Components/HomeSection/HomeSection.jsx create mode 100644 frontend/src/Components/HomeSection/MealPost.jsx create mode 100644 frontend/src/Components/HomeSection/ReplyModel.jsx create mode 100644 frontend/src/Components/Navigation/Navigation.jsx create mode 100644 frontend/src/Components/Navigation/NavigationMenu.js create mode 100644 frontend/src/Components/Profile/Profile.jsx create mode 100644 frontend/src/Components/RightPart/RightPart.jsx create mode 100644 frontend/src/Components/WorkoutPlan/WorkoutPlan.jsx create mode 100644 frontend/src/Components/WorkoutPlan/WorkoutPlanPage.jsx create mode 100644 frontend/src/images/d.jpg create mode 100644 frontend/src/images/logo.png create mode 100644 frontend/src/index.css create mode 100644 frontend/src/index.js create mode 100644 frontend/src/logo.svg create mode 100644 frontend/src/reportWebVitals.js create mode 100644 frontend/src/setupTests.js create mode 100644 frontend/tailwind.config.js delete mode 100644 frontend/test.py diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/frontend/README.md b/frontend/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/frontend/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..742ecbf --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,19130 @@ +{ + "name": "frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.15", + "@mui/lab": "^5.0.0-alpha.170", + "@mui/material": "^5.15.15", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "formik": "^2.4.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3", + "react-scripts": "^5.0.1", + "web-vitals": "^2.1.4", + "yup": "^1.4.0" + }, + "devDependencies": { + "tailwindcss": "^3.4.3" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.3.tgz", + "integrity": "sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==" + }, + "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==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", + "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.1.tgz", + "integrity": "sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.4.tgz", + "integrity": "sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", + "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", + "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "dependencies": { + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", + "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", + "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", + "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.4.tgz", + "integrity": "sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.1.tgz", + "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", + "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", + "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", + "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-decorators": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", + "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.1.tgz", + "integrity": "sha512-sxi2kLTI5DeW5vDtMUsk4mTPwvlUDbjOnoWayhynCwrw4QXRld4QEYwqzY8JmQXaJUtgUuCIurtSRH5sn4c7mA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", + "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", + "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", + "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", + "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", + "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", + "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.4.tgz", + "integrity": "sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", + "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.4.tgz", + "integrity": "sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", + "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", + "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/template": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", + "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", + "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", + "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", + "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", + "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", + "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.1.tgz", + "integrity": "sha512-iIYPIWt3dUmUKKE10s3W+jsQ3icFkw0JyRVyY1B7G4yK/nngAOHLVx8xlhA6b/Jzl/Y0nis8gjqhqKtRDQqHWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-flow": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", + "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", + "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", + "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", + "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", + "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", + "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", + "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", + "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", + "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", + "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", + "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", + "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", + "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", + "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", + "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-replace-supers": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", + "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", + "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", + "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", + "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", + "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.1", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", + "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.1.tgz", + "integrity": "sha512-QXp1U9x0R7tkiGB0FOk8o74jhnap0FlZ5gNkRIWdG3eP+SvMFg118e1zaWewDzgABb106QSKpVsD3Wgd8t6ifA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.1.tgz", + "integrity": "sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.1.tgz", + "integrity": "sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", + "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", + "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", + "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.3", + "@babel/helper-plugin-utils": "^7.24.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", + "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", + "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", + "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", + "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", + "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.4.tgz", + "integrity": "sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.4", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/plugin-syntax-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", + "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", + "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", + "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", + "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.4.tgz", + "integrity": "sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==", + "dependencies": { + "@babel/compat-data": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.4", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.1", + "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.1", + "@babel/plugin-transform-async-generator-functions": "^7.24.3", + "@babel/plugin-transform-async-to-generator": "^7.24.1", + "@babel/plugin-transform-block-scoped-functions": "^7.24.1", + "@babel/plugin-transform-block-scoping": "^7.24.4", + "@babel/plugin-transform-class-properties": "^7.24.1", + "@babel/plugin-transform-class-static-block": "^7.24.4", + "@babel/plugin-transform-classes": "^7.24.1", + "@babel/plugin-transform-computed-properties": "^7.24.1", + "@babel/plugin-transform-destructuring": "^7.24.1", + "@babel/plugin-transform-dotall-regex": "^7.24.1", + "@babel/plugin-transform-duplicate-keys": "^7.24.1", + "@babel/plugin-transform-dynamic-import": "^7.24.1", + "@babel/plugin-transform-exponentiation-operator": "^7.24.1", + "@babel/plugin-transform-export-namespace-from": "^7.24.1", + "@babel/plugin-transform-for-of": "^7.24.1", + "@babel/plugin-transform-function-name": "^7.24.1", + "@babel/plugin-transform-json-strings": "^7.24.1", + "@babel/plugin-transform-literals": "^7.24.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", + "@babel/plugin-transform-member-expression-literals": "^7.24.1", + "@babel/plugin-transform-modules-amd": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-modules-systemjs": "^7.24.1", + "@babel/plugin-transform-modules-umd": "^7.24.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.24.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", + "@babel/plugin-transform-numeric-separator": "^7.24.1", + "@babel/plugin-transform-object-rest-spread": "^7.24.1", + "@babel/plugin-transform-object-super": "^7.24.1", + "@babel/plugin-transform-optional-catch-binding": "^7.24.1", + "@babel/plugin-transform-optional-chaining": "^7.24.1", + "@babel/plugin-transform-parameters": "^7.24.1", + "@babel/plugin-transform-private-methods": "^7.24.1", + "@babel/plugin-transform-private-property-in-object": "^7.24.1", + "@babel/plugin-transform-property-literals": "^7.24.1", + "@babel/plugin-transform-regenerator": "^7.24.1", + "@babel/plugin-transform-reserved-words": "^7.24.1", + "@babel/plugin-transform-shorthand-properties": "^7.24.1", + "@babel/plugin-transform-spread": "^7.24.1", + "@babel/plugin-transform-sticky-regex": "^7.24.1", + "@babel/plugin-transform-template-literals": "^7.24.1", + "@babel/plugin-transform-typeof-symbol": "^7.24.1", + "@babel/plugin-transform-unicode-escapes": "^7.24.1", + "@babel/plugin-transform-unicode-property-regex": "^7.24.1", + "@babel/plugin-transform-unicode-regex": "^7.24.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.1.tgz", + "integrity": "sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-transform-react-display-name": "^7.24.1", + "@babel/plugin-transform-react-jsx": "^7.23.4", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.1.tgz", + "integrity": "sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.0", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-syntax-jsx": "^7.24.1", + "@babel/plugin-transform-modules-commonjs": "^7.24.1", + "@babel/plugin-transform-typescript": "^7.24.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz", + "integrity": "sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", + "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", + "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.2", + "@emotion/serialize": "^1.1.4", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" + }, + "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==", + "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/@isaacs/cliui/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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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==", + "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/@isaacs/cliui/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==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/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==", + "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/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/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==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/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==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/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==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/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==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/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==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "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==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.15.tgz", + "integrity": "sha512-aXnw29OWQ6I5A47iuWEI6qSSUfH6G/aCsW9KmW3LiFqr7uXZBK4Ks+z8G+qeIub8k0T5CMqlT2q0L+ZJTMrqpg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.15.15.tgz", + "integrity": "sha512-kkeU/pe+hABcYDH6Uqy8RmIsr2S/y5bP2rp+Gat4CcRjCcVne6KudS1NrZQhUCRysrTDCAhcbcf9gt+/+pGO2g==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab": { + "version": "5.0.0-alpha.170", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.170.tgz", + "integrity": "sha512-0bDVECGmrNjd3+bLdcLiwYZ0O4HP5j5WSQm5DV6iA/Z9kr8O6AnvZ1bv9ImQbbX7Gj3pX4o43EKwCutj3EQxQg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material": ">=5.15.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.15.tgz", + "integrity": "sha512-3zvWayJ+E1kzoIsvwyEvkTUKVKt1AjchFFns+JtluHCuvxgKcLSRJTADw37k0doaRtVAsyh8bz9Afqzv+KYrIA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.15", + "@mui/system": "^5.15.15", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.15", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.15.tgz", + "integrity": "sha512-aulox6N1dnu5PABsfxVGOZffDVmlxPOVgj56HrUnJE8MCSh8lOvvkd47cebIVQQYAjpwieXQXiDPj5pwM40jTQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", + "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", + "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.0.0.tgz", + "integrity": "sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/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==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/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==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/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==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/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==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/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==" + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.8.tgz", + "integrity": "sha512-LdDdQVDzDXf3ijhhMnE27C5vc0QEknD8GiMR/Hi+fVbdZNfAfCy2j69m0LjUd2MAy0+kIgnOtd5ndTmDk/VWCA==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/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==" + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.75", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.75.tgz", + "integrity": "sha512-+DNnF7yc5y0bHkBTiLKqXFe+L4B3nvOphiMY3tuA5X10esmjqk7smyBZzbGTy2vsiy/Bnzj8yFIBL8xhRacoOg==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.24", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.24.tgz", + "integrity": "sha512-cN6upcKd8zkGy4HU9F1+/s98Hrp6D4MOcippK4PoE8OZRngohHZpbJn1GsaDLz87MqvHNoT13nHvNqM9ocRHZg==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==" + }, + "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==", + "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==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "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/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "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.23.0", + "caniuse-lite": "^1.0.30001599", + "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/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/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==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", + "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.1", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", + "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "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==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "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/body-parser/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/body-parser/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/body-parser/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/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "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.30001587", + "electron-to-chromium": "^1.4.668", + "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/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001608", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001608.tgz", + "integrity": "sha512-cjUJTQkk9fQlJR2s4HMuPMvTiRggl0rAVMtthQuyOlDWuqHXqN8azLq+pi8B2TjwKJ32diHjUqRIKeFX4z1FoA==", + "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/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "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/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "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": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/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/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz", + "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", + "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.36.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.36.1.tgz", + "integrity": "sha512-NXCvHvSVYSrewP0L5OhltzXeWFJLo2AL2TYnj6iLV3Bw8mM62wAQMNgUCRI6EBu6hVVpbCxmOPlxh1Ikw2PfUA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "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==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "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/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "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/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "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/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/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/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "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/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.733", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.733.tgz", + "integrity": "sha512-gUI9nhI2iBGF0OaYYLKOaOtliFMl+Bt1rY7VmEjwxOxqoYLub/D9xmduPEhbw2imE6gYkJKhIE5it+KE2ulVxQ==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.17", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "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/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/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==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/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/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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==", + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/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/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "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==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/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==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formik": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.5.tgz", + "integrity": "sha512-Gxlht0TD3vVdzMDHwkiNZqJ7Mvg77xQNfmBRrNtvzcHZs72TJppSTDKHpImCMJZwcWPBJ8jSQQ95GJzXFf1nAQ==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.1", + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/formik/node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.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==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "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/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "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-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "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==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "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/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "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/hoist-non-react-statics/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/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "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/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "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/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/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==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/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==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/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==" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/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==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/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==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/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==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/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==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/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==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/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==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/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==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/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==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/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==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/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==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/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==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/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==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/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==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/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==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/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==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/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==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "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/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.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==", + "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==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "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.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "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/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "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/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", + "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "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/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "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==" + }, + "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==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "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==", + "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/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.hasown": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", + "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "dependencies": { + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "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/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==" + }, + "node_modules/path-scurry": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", + "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "dependencies": { + "lru-cache": "^10.2.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/path-scurry/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==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "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==", + "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==", + "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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "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.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "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==", + "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-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "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==", + "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-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "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==", + "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.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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==", + "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-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "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==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "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/prop-types/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/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "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/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "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/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "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==", + "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/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "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/raw-body/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/raw-body/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/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-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/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==" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz", + "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==", + "dependencies": { + "@remix-run/router": "1.15.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.22.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz", + "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==", + "dependencies": { + "@remix-run/router": "1.15.3", + "react-router": "6.22.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "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==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "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/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "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/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "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/semver/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/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/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/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/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/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/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/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "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/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "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==", + "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": { + "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==", + "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/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==" + }, + "node_modules/string-width/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==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "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==", + "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/sucrase/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==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.12", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", + "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.10.2" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "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.21.0", + "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/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.30.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", + "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "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==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "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==", + "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/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "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==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "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/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "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/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "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/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "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==", + "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/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.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==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "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/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.91.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", + "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.16.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/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/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/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==", + "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": { + "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==", + "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-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==" + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", + "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/yup/node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..b04172b --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,49 @@ +{ + "name": "frontend", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.5", + "@mui/icons-material": "^5.15.15", + "@mui/lab": "^5.0.0-alpha.170", + "@mui/material": "^5.15.15", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "formik": "^2.4.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3", + "react-scripts": "^5.0.1", + "web-vitals": "^2.1.4", + "yup": "^1.4.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "tailwindcss": "^3.4.3" + } +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= z!sii`1giyH7EKL_+Wi0ab<)&E_0KD!3Rp2^HNB*K2@PHCs4PWSA32*-^7d{9nH2_E zmC{C*N*)(vEF1_aMamw2A{ZH5aIDqiabnFdJ|y0%aS|64E$`s2ccV~3lR!u<){eS` z#^Mx6o(iP1Ix%4dv`t@!&Za-K@mTm#vadc{0aWDV*_%EiGK7qMC_(`exc>-$Gb9~W!w_^{*pYRm~G zBN{nA;cm^w$VWg1O^^<6vY`1XCD|s_zv*g*5&V#wv&s#h$xlUilPe4U@I&UXZbL z0)%9Uj&@yd03n;!7do+bfixH^FeZ-Ema}s;DQX2gY+7g0s(9;`8GyvPY1*vxiF&|w z>!vA~GA<~JUqH}d;DfBSi^IT*#lrzXl$fNpq0_T1tA+`A$1?(gLb?e#0>UELvljtQ zK+*74m0jn&)5yk8mLBv;=@}c{t0ztT<v;Avck$S6D`Z)^c0(jiwKhQsn|LDRY&w(Fmi91I7H6S;b0XM{e zXp0~(T@k_r-!jkLwd1_Vre^v$G4|kh4}=Gi?$AaJ)3I+^m|Zyj#*?Kp@w(lQdJZf4 z#|IJW5z+S^e9@(6hW6N~{pj8|NO*>1)E=%?nNUAkmv~OY&ZV;m-%?pQ_11)hAr0oAwILrlsGawpxx4D43J&K=n+p3WLnlDsQ$b(9+4 z?mO^hmV^F8MV{4Lx>(Q=aHhQ1){0d*(e&s%G=i5rq3;t{JC zmgbn5Nkl)t@fPH$v;af26lyhH!k+#}_&aBK4baYPbZy$5aFx4}ka&qxl z$=Rh$W;U)>-=S-0=?7FH9dUAd2(q#4TCAHky!$^~;Dz^j|8_wuKc*YzfdAht@Q&ror?91Dm!N03=4=O!a)I*0q~p0g$Fm$pmr$ zb;wD;STDIi$@M%y1>p&_>%?UP($15gou_ue1u0!4(%81;qcIW8NyxFEvXpiJ|H4wz z*mFT(qVx1FKufG11hByuX%lPk4t#WZ{>8ka2efjY`~;AL6vWyQKpJun2nRiZYDij$ zP>4jQXPaP$UC$yIVgGa)jDV;F0l^n(V=HMRB5)20V7&r$jmk{UUIe zVjKroK}JAbD>B`2cwNQ&GDLx8{pg`7hbA~grk|W6LgiZ`8y`{Iq0i>t!3p2}MS6S+ zO_ruKyAElt)rdS>CtF7j{&6rP-#c=7evGMt7B6`7HG|-(WL`bDUAjyn+k$mx$CH;q2Dz4x;cPP$hW=`pFfLO)!jaCL@V2+F)So3}vg|%O*^T1j>C2lx zsURO-zIJC$^$g2byVbRIo^w>UxK}74^TqUiRR#7s_X$e)$6iYG1(PcW7un-va-S&u zHk9-6Zn&>T==A)lM^D~bk{&rFzCi35>UR!ZjQkdSiNX*-;l4z9j*7|q`TBl~Au`5& z+c)*8?#-tgUR$Zd%Q3bs96w6k7q@#tUn`5rj+r@_sAVVLqco|6O{ILX&U-&-cbVa3 zY?ngHR@%l{;`ri%H*0EhBWrGjv!LE4db?HEWb5mu*t@{kv|XwK8?npOshmzf=vZA@ zVSN9sL~!sn?r(AK)Q7Jk2(|M67Uy3I{eRy z_l&Y@A>;vjkWN5I2xvFFTLX0i+`{qz7C_@bo`ZUzDugfq4+>a3?1v%)O+YTd6@Ul7 zAfLfm=nhZ`)P~&v90$&UcF+yXm9sq!qCx3^9gzIcO|Y(js^Fj)Rvq>nQAHI92ap=P z10A4@prk+AGWCb`2)dQYFuR$|H6iDE8p}9a?#nV2}LBCoCf(Xi2@szia7#gY>b|l!-U`c}@ zLdhvQjc!BdLJvYvzzzngnw51yRYCqh4}$oRCy-z|v3Hc*d|?^Wj=l~18*E~*cR_kU z{XsxM1i{V*4GujHQ3DBpl2w4FgFR48Nma@HPgnyKoIEY-MqmMeY=I<%oG~l!f<+FN z1ZY^;10j4M4#HYXP zw5eJpA_y(>uLQ~OucgxDLuf}fVs272FaMxhn4xnDGIyLXnw>Xsd^J8XhcWIwIoQ9} z%FoSJTAGW(SRGwJwb=@pY7r$uQRK3Zd~XbxU)ts!4XsJrCycrWSI?e!IqwqIR8+Jh zlRjZ`UO1I!BtJR_2~7AbkbSm%XQqxEPkz6BTGWx8e}nQ=w7bZ|eVP4?*Tb!$(R)iC z9)&%bS*u(lXqzitAN)Oo=&Ytn>%Hzjc<5liuPi>zC_nw;Z0AE3Y$Jao_Q90R-gl~5 z_xAb2J%eArrC1CN4G$}-zVvCqF1;H;abAu6G*+PDHSYFx@Tdbfox*uEd3}BUyYY-l zTfEsOqsi#f9^FoLO;ChK<554qkri&Av~SIM*{fEYRE?vH7pTAOmu2pz3X?Wn*!ROX ztd54huAk&mFBemMooL33RV-*1f0Q3_(7hl$<#*|WF9P!;r;4_+X~k~uKEqdzZ$5Al zV63XN@)j$FN#cCD;ek1R#l zv%pGrhB~KWgoCj%GT?%{@@o(AJGt*PG#l3i>lhmb_twKH^EYvacVY-6bsCl5*^~L0 zonm@lk2UvvTKr2RS%}T>^~EYqdL1q4nD%0n&Xqr^cK^`J5W;lRRB^R-O8b&HENO||mo0xaD+S=I8RTlIfVgqN@SXDr2&-)we--K7w= zJVU8?Z+7k9dy;s;^gDkQa`0nz6N{T?(A&Iz)2!DEecLyRa&FI!id#5Z7B*O2=PsR0 zEvc|8{NS^)!d)MDX(97Xw}m&kEO@5jqRaDZ!+%`wYOI<23q|&js`&o4xvjP7D_xv@ z5hEwpsp{HezI9!~6O{~)lLR@oF7?J7i>1|5a~UuoN=q&6N}EJPV_GD`&M*v8Y`^2j zKII*d_@Fi$+i*YEW+Hbzn{iQk~yP z>7N{S4)r*!NwQ`(qcN#8SRQsNK6>{)X12nbF`*7#ecO7I)Q$uZsV+xS4E7aUn+U(K baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/frontend/public/index.html b/frontend/public/index.html new file mode 100644 index 0000000..aa069f2 --- /dev/null +++ b/frontend/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/frontend/public/logo192.png b/frontend/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/frontend/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/frontend/public/robots.txt b/frontend/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/frontend/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/frontend/src/App.css b/frontend/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/frontend/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/frontend/src/App.js b/frontend/src/App.js new file mode 100644 index 0000000..e58c691 --- /dev/null +++ b/frontend/src/App.js @@ -0,0 +1,20 @@ +import { Route, Routes } from 'react-router-dom'; +import './App.css'; +import HomePage from './Components/HomePage/HomePage'; +import Authentication from './Components/Authentication/Authentication'; + +function App() { + return ( +
+ + + :}> + + + + +
+ ); +} + +export default App; diff --git a/frontend/src/App.test.js b/frontend/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/frontend/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/frontend/src/Components/Authentication/Authentication.jsx b/frontend/src/Components/Authentication/Authentication.jsx new file mode 100644 index 0000000..02bff48 --- /dev/null +++ b/frontend/src/Components/Authentication/Authentication.jsx @@ -0,0 +1,9 @@ +import React from 'react' + +const Authentication = () => { + return ( +
Authentication
+ ) +} + +export default Authentication \ No newline at end of file diff --git a/frontend/src/Components/HomePage/HomePage.jsx b/frontend/src/Components/HomePage/HomePage.jsx new file mode 100644 index 0000000..82ba595 --- /dev/null +++ b/frontend/src/Components/HomePage/HomePage.jsx @@ -0,0 +1,36 @@ +import React from 'react' +import { Grid } from '@mui/material' +import Navigation from '../Navigation/Navigation' +import HomeSection from '../HomeSection/HomeSection' +import RightPart from '../RightPart/RightPart' +import { Route, Routes } from 'react-router-dom'; +import Profile from '../Profile/Profile' + +const HomePage = () => { + return ( + + + + + + + + + + + }> + }> + }> + + + + + + + + + + ) +} + +export default HomePage \ No newline at end of file diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx new file mode 100644 index 0000000..427f5f8 --- /dev/null +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -0,0 +1,69 @@ +import React from "react"; +import { Avatar } from "@mui/material"; +import * as Yup from "yup"; +import { useFormik } from "formik"; +import MealPost from "./MealPost"; + +const validationSchema = Yup.object().shape({ + content: Yup.string().required("Text is required"), +}); + +const HomeSection = () => { + const handleSubmit = (values) => { + console.log("values ", values); + }; + + const formik = useFormik({ + initialValues: { + content: "", + image: "", + }, + onSubmit: handleSubmit, + validationSchema, + }); + + return ( +
+
+

Home

+
+
+
+ +
+
+
+ + {formik.errors.content && formik.touched.content && ( + {formik.errors.content} + )} +
+ + {/*
+ +
*/} + +
+
+
+
+
+
+ {[1, 1, 1, 1, 1].map((item) => ( + + ))} +
+
+ ); +}; + +export default HomeSection; diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx new file mode 100644 index 0000000..c333a15 --- /dev/null +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -0,0 +1,154 @@ +import React from "react"; +import RepeatIcon from "@mui/icons-material/Repeat"; +import { Avatar, Button, Menu, MenuItem } from "@mui/material"; +import { useNavigate } from "react-router-dom"; +import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; +import ChatBubbleOutlineIcon from "@mui/icons-material/ChatBubbleOutline"; +import FavoriteBorderIcon from "@mui/icons-material/FavoriteBorder"; +import FileUploadIcon from "@mui/icons-material/FileUpload"; +import BarChartIcon from "@mui/icons-material/BarChart"; +import FavoriteIcon from "@mui/icons-material/Favorite"; +import FavoriteOutlined from "@mui/icons-material/FavoriteOutlined"; +import FavoriteBorder from "@mui/icons-material/FavoriteBorder"; + +const MealPost = () => { + const navigate = useNavigate(); + const [anchorEl, setAnchorEl] = React.useState(null); + const open = Boolean(anchorEl); + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + const handleClose = () => { + setAnchorEl(null); + }; + const handleDeletePost = () => { + console.log("delete post"); + handleClose(); + }; + const handleEditPost = () => {}; + const handleOpenReplyModel = () => { + console.log("open reply model"); + }; + const handleCreateRepost = () => { + console.log("create repost"); + }; + const handleLikedPost = () => { + console.log("liked post"); + }; + return ( +
+ {/*
+ +

Your Post

+
*/} +
+ navigate(`/profile/${6}`)} + className="cursor-pointer" + alt="username" + src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" + /> +
+
+
+ User1 + @user1.2m + verified +
+
+ + + Edit + Delete + +
+
+
+
+

Mela Plan Cone

+ meal +
+
+
+ +

43

+
+
+ +

56

+
+
+ {true ? ( + + ) : ( + + )} +

26

+
+
+ +

4

+
+
+ +

43

+
+
+
+
+
+
+ ); +}; + +export default MealPost; diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx new file mode 100644 index 0000000..a59da68 --- /dev/null +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -0,0 +1,7 @@ +import React from "react"; + +const ReplyModel = () => { + return
ReplyModel
; +}; + +export default ReplyModel; diff --git a/frontend/src/Components/Navigation/Navigation.jsx b/frontend/src/Components/Navigation/Navigation.jsx new file mode 100644 index 0000000..31837a9 --- /dev/null +++ b/frontend/src/Components/Navigation/Navigation.jsx @@ -0,0 +1,93 @@ +import React from 'react' +import logo from '../../images/logo.png'; +import { navigationMenu } from './NavigationMenu'; +import { useNavigate } from 'react-router-dom'; +import { Button, Avatar } from '@mui/material' +import { Menu, MenuItem } from '@mui/material' +import MoreHorizIcon from '@mui/icons-material/MoreHoriz'; + +const Navigation = () => { + const [anchorEl, setAnchorEl] = React.useState(null); + const open = Boolean(anchorEl); + const handleClick = (event) => { + setAnchorEl(event.currentTarget); + }; + const handleClose = () => { + setAnchorEl(null); + }; + const navigate = useNavigate(); + + const handleLogout=()=>{ + console.log("logout") + handleClose() + } + return ( +
+
+
+ Logo +
+ +
+ + {navigationMenu.map((item) =>
item.title === "Profile" ? navigate(`/profile/{5}`) : navigate(item.path)}> + {item.icon} +

{item.title}

+
)} + +
+ +
+ + + +
+
+ +
+
+ + +
+ Raam Kapoor + @raamkapoor +
+ + + + Profile + Logout + + +
+ + +
+
+ ) +} + +export default Navigation \ No newline at end of file diff --git a/frontend/src/Components/Navigation/NavigationMenu.js b/frontend/src/Components/Navigation/NavigationMenu.js new file mode 100644 index 0000000..7514bba --- /dev/null +++ b/frontend/src/Components/Navigation/NavigationMenu.js @@ -0,0 +1,59 @@ +import HomeIcon from "@mui/icons-material/Home" +import ExploreIcon from "@mui/icons-material/Explore" +import NotificationIcon from "@mui/icons-material/Notifications" +import VerifiedIcon from '@mui/icons-material/Verified'; +import AccountCircleIcon from '@mui/icons-material/AccountCircle'; +import PendingIcon from '@mui/icons-material/Pending'; +import EventNoteIcon from '@mui/icons-material/EventNote'; +import RestaurantIcon from '@mui/icons-material/Restaurant'; + + +export const navigationMenu = [ + { + title: "Home", + icon:, + path:"/home" + }, + + { + title: "Workout Plans", + icon:, + path:"/workoutplan" + }, + + { + title: "Meal Plans", + icon:, + path:"/mealplan" + }, + + { + title: "Profile", + icon:, + path:"/profile" + }, + + { + title: "Notifications", + icon:, + path:"/notifications" + }, + + { + title: "Verified", + icon:, + path:"/verified" + }, + + { + title: "Explore", + icon:, + path:"/explore" + }, + + { + title: "More", + icon:, + path:"/more" + } +] \ No newline at end of file diff --git a/frontend/src/Components/Profile/Profile.jsx b/frontend/src/Components/Profile/Profile.jsx new file mode 100644 index 0000000..8a07ffb --- /dev/null +++ b/frontend/src/Components/Profile/Profile.jsx @@ -0,0 +1,146 @@ +import React, { useState } from 'react' +import KeyboardBackspaceIcon from '@mui/icons-material/KeyboardBackspace'; +import { useNavigate } from 'react-router-dom'; +import { Button, Avatar } from '@mui/material' +import BusinessCenterIcon from '@mui/icons-material/BusinessCenter'; +import LocationOnIcon from '@mui/icons-material/LocationOn'; +import CalendarMonthIcon from '@mui/icons-material/CalendarMonth'; +import Box from '@mui/material/Box'; +import Tab from '@mui/material/Tab'; +import TabContext from '@mui/lab/TabContext'; +import TabList from '@mui/lab/TabList'; +import TabPanel from '@mui/lab/TabPanel'; +import WorkoutPlanPage from '../WorkoutPlan/WorkoutPlanPage'; + +const Profile = () => { + + const navigate = useNavigate(); + + const handleBack = () => navigate(-1); + + const handleOpenProfileModel = () => { + console.log("Open profile model") + } + + const handleFollowUser = () => { + console.log("Follow user") + } + + const [tabValue, setTabValue] = useState("1") + + const handleTabChange = (event, newValue) => { + setTabValue(newValue) + + if (newValue === 3) { + console.log("meal plan") + } + else if (newValue === 1) { + console.log("posts") + } + } + + return ( +
+
+ + + +

Raam Kapoor

+ +
+ +
+ +
+ +
+
+ + + + {true ? : } + +
+ +
+
+

+ Raam Kapoor +

+
+

+ @raamkapoor +

+
+ +
+

Hey there!

+ +
+ +
+ +

Education

+
+ +
+ +

Sri Lanka

+
+ +
+ +

Joined May 2023

+
+ +
+ +
+ +
+ 120 + Following + +
+ +
+ 590 + Followers + +
+ +
+
+
+ +
+ + + + + + + + + + Users Posts + + Users Meal plans + + +
+ + +
+ ) +} + +export default Profile + diff --git a/frontend/src/Components/RightPart/RightPart.jsx b/frontend/src/Components/RightPart/RightPart.jsx new file mode 100644 index 0000000..74bbf98 --- /dev/null +++ b/frontend/src/Components/RightPart/RightPart.jsx @@ -0,0 +1,41 @@ +import React from 'react' +import SearchIcon from '@mui/icons-material/Search'; +import Brightness4Icon from '@mui/icons-material/Brightness4'; +import { Button } from '@mui/material' + +const RightPart = () => { + + const handleChangeTheme=() =>{ + console.log("Handle change theme") + } + + return ( +
+
+ + + +
+ +
+ + + +
+ +
+ +

Get Verified

+

Subscribe to unlock new features

+ + + +
+ +
+ ) +} + +export default RightPart \ No newline at end of file diff --git a/frontend/src/Components/WorkoutPlan/WorkoutPlan.jsx b/frontend/src/Components/WorkoutPlan/WorkoutPlan.jsx new file mode 100644 index 0000000..7aab9c5 --- /dev/null +++ b/frontend/src/Components/WorkoutPlan/WorkoutPlan.jsx @@ -0,0 +1,219 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Modal from '@mui/material/Modal'; +import { useFormik } from 'formik'; +import CloseIcon from '@mui/icons-material/Close'; +import DeleteIcon from '@mui/icons-material/Delete'; +import { IconButton } from '@mui/material'; +import { TextField } from '@mui/material'; + +const style = { + position: 'absolute', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + width: 600, + bgcolor: 'background.paper', + border: 'none', + boxShadow: 24, + p: 4, + outline: "none", + borderRadius: 4, +}; + +export default function WorkoutPlan({ open, handleClose }) { + + const handleSubmit = (values) => { + console.log("handle submit", values) + } + + const formik = useFormik({ + initialValues: { + title: "", + description: "", + intensity: "", + routine: "", + exercises: [{ name: "", sets: "", reps: "" }], // Initialize exercises array with an empty object + duration: "", + notes: "" + }, + onSubmit: handleSubmit + }); + + const addExerciseField = () => { + formik.setValues(prevState => ({ + ...prevState, + exercises: [...prevState.exercises, { name: "", sets: "", reps: "" }] + })); + }; + + const removeExerciseField = (index) => { + const exercises = [...formik.values.exercises]; + exercises.splice(index, 1); + formik.setValues({ ...formik.values, exercises }); + }; + + const handleExerciseChange = (index, field, value) => { + const exercises = [...formik.values.exercises]; + exercises[index][field] = value; + formik.setValues({ ...formik.values, exercises }); + }; + + return ( +
+ + +
+
+
+ + + +

Add Workout Plan

+
+ +
+
+
+ + + +
+ +
+
+ + +
+
+ + +
+
+ +
+ +
+ {formik.values.exercises.map((exercise, index) => ( +
+
+ + removeExerciseField(index)} aria-label="delete exercise" color="primary"> + + +
+ handleExerciseChange(index, 'name', e.target.value)} + label="Exercise Name" + required + style={{ marginBottom: '10px' }} + /> +
+ handleExerciseChange(index, 'sets', e.target.value)} + label="Sets" + required + /> + handleExerciseChange(index, 'reps', e.target.value)} + label="Repetitions" + required + /> +
+
+ ))} +
+ + +
+ + + +
+
+
+
+
+
+ ); +} diff --git a/frontend/src/Components/WorkoutPlan/WorkoutPlanPage.jsx b/frontend/src/Components/WorkoutPlan/WorkoutPlanPage.jsx new file mode 100644 index 0000000..8877ee2 --- /dev/null +++ b/frontend/src/Components/WorkoutPlan/WorkoutPlanPage.jsx @@ -0,0 +1,32 @@ +import React, { useState } from 'react' +import { Button } from '@mui/material' +import WorkoutPlan from '../WorkoutPlan/WorkoutPlan'; + +const WorkoutPlanPage = () => { + + const [openWorkoutPlan, setOpenWorkoutPlan] = useState(false); + const handleOpenWorkoutPlan = () => setOpenWorkoutPlan(true); + const handleClose = () => setOpenWorkoutPlan(false); + + return ( +
+
+
+
+ +
+ +
+
+
+ + + ) +} + +export default WorkoutPlanPage \ No newline at end of file diff --git a/frontend/src/images/d.jpg b/frontend/src/images/d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..99fc03fa427b98b9fa08d5628a3150cbf6b70bd2 GIT binary patch literal 11948 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

Qx6y79lkM*)PBad^MO!3*|qE z)5wtI3K86?Ejmfzj~>^#)Q6uBVoT)lKT=M{qgh8H&G8fo!NvnC_1DBWd5w(~4YQ z*0SAi?~dUMT!#kIM-q;pR~UJCG_9{ZK4g)@7o4p5Q0%T_zI?%}(5XP9Kz~|6xjY0x zUDrI$^jZ`n2CHQ@y(8CXW`A*UX26{@I`pz4<^ zzJWg(p>s9jA7R>I3OH_A;1XA=&@0;@p<5+%mTUPzv*d|G9F0`Flvk z>-VIZgbsc`l`&!;@tB>~w<4UFLE+R|7($bhp+>CD8xc$`*WTEJ&J?dhey}igY6}X! z0K+COs>)53;hPJVZs$B06(=G2f}H45KJluvRJfTr-kwfD0DXv!RK3t8c)dnXSIMDD z!7S4D?)w6BS7YP6;_QJVK^^uw*$zsQme{L{Otp>x#=Fy0+-kiMs&3FEb~5feEOKY@hADwF>sobtMTK>TYOCuu_RbK=8Qt`9OosP~TShR#E-Kv{=SQ!?yEx{r z(b^Hz9m2inFxQ%K_RSqOqBwL`7-}4@(IYrOmoRUnT@Ta&9(=JnGZrV%W?-A276uuc z^uFTE_a&2F!!Jc3Dmr+V?AzE{E=odM_>E+5u$-0*XK$0#F2jZX6m)(OqkB-AfH}Qw0TMo zNBvMtJ=BSW55;Kf`7<%u3*1(*9iH)yAS3G0sSh-9orBDa3ySo!0mdHq>a$G(YjPYUGpq$3yl zHBqR_dhNTR$aPz8?O>Af8CDBUm(O%Cb@w-)FqfS)87o(KwbO|G^O8*^Z9YG8B*Ek? z$!AY6ZhB#CH|wax{{CwqInFwkOSEBAER;A|u0r|(xtLIkNxHuK_1<4Ykr6d%XmyW! zuA^G7qV`zq4R;j}M8(9!iVC6^EBkHI{8s?T-`g4snK0Gw-%XIzj8A5RmXO7&v#CBk zR+ptcJOsZo=h4q{5?o1zTa1VvpJ7Xlh`!P0DO1}ro~0v!9{?^Mak{$hf{}Cfq#*Ub zqrUOaiP_;@JHT+`1^R6h!ywa>^#Mw#sbP@q-74|Pc4ij$(-ZZThRtc0vw)U0w6FL5 zYr(4+)0NUx(ZN95FmlE9MCSpg$;ekSWQ*u4jY)K(WWdAPC#{M^uv(_0wvv)Ytm2*mrBSO4Oq~)2;c;MJ&U!(8@~OUR{K8vm^IX9Gl%YYb)`_pFi2J6iMAMM>2;} zUd684Fm1ahozLpU&&uJbpufy60rV4~wF-$~dl_@{_VnnjZ%+G7l_SDcrg&ur(Qh-n zBz13GKDsC^gCXe}SjWfo;x2}WE>0k1HDmwFQtJY&fLBpe-A};Y&m_31p2><5)u#1p|O}Bjr%HDZX&k)OO&?hw_$pQWC zGsb=&fgL;WVf#-pfSds=mR<1?00G~nuv%r=G}F4tJ-VC-J`Lz-jKE!DmcRE}m8t&B z<3Ve>M}GG6sG?YYyJv|Zx(v5KPC5=C%|-YID`Y>XXCV*V4vx16jS&41sH{X;SVe6m zXcfX4t>iS8*BJ0^O@Bh{TL?6u0}CG7es!_QT2!*>Boj3<#~Z#;X3%XwvHAG&nHg8I z^yFlso6Sm0hKM!g>ISUVM&A~|ci=h<9;h9fp+oIGi9guB0NU_v|VF?x$);Da4SR9 zU8W=k2BT7LMjIv2@S6O=+fckQBdgZERZUk#`WmXj@|0|ASXeg(gzrQs4 zJc&_HeTtnP=m!3QfL}{~CQWg{3;mRItC|-qB&+!IXZhuNBt@dXWEml3glq}6Wwp{G zG1TIbL_FA!H#Mm%ltr3s^nr;9o&3)xy}|=2qK*6sg95$Wf?b40;?tb>D7;%-6UD+D-}qc_g4Y6Wqzl) z?|#JWqj6`(kjOK}+wV8KIYniz2PIeA>!}+D0bJrT>Cv<)s-3n71i?$!ccQy2AeQ8o zs!UO&t?0r(}esSmFRGcxEpNNbL1~1;UMq@t!Qal08WTJU0THC%VA(V+P8#6Y4!5`1CL+#W z;oh&`awcwhpK<9)Y^Br648OJj|K@z&_|zr^XSc8p*`Pb3x`rQK`~deqqO}C0E*Urd zN$+fqf0u?UlUORIQpq=mYX}T-yw}%1ygCx1(c*`TR-U~1S!7-^U(YFwqU|J!=j5av zm2VnQjf^hEBC?a($5va@jlP+rWpK_+onuTC=EuMR?B-bqZH_TTy=}{~evHci^2`H2 zzeyvB0pOT!Uoaa1e(D_07L~Yk@o9bpL}M<3?782kSwOBg-P6j{bT`P*l#1!-dj=Za za8o=-0^5q+E$2vaBbxTLbnf`&K>&?G-*#G-zaUtLCa2CD3&u1&70#<=uS$_=$WF1% zGfOJ*y)U*Td~3@;aBO?`&0YO+-7<>am$z{*8pZNZt&LKMw+oc!(wyUirdM5-G|Nw9 zp^ZGkoUt#SbF(aDp@n-y88heglr=l#13t2Dc&_7k|DF)ZWYsBNwqf*h2viTBX>15z(rj|2T& zv0<42>Z7RnqX+KavIt4qFxRD^@U1)ARq-Wf0T=p6#O>{N$WRJr>}y)X(3_*9mV!b` z1O{V*7Gy8@bi=#`Qbtf%f6&BoTtlRIevfzsr0j~4?fCtYHp^VLWUyx-q6j!ktmX&o zn{^_f3jPE1v;i+HB>FzhR3t~feo;38_4#CZg1|k2w&2506P1sI0m&qX96hKg^Ei5! zho(fQSFL5u&vp`xjCDmBQZh0nksRtO=8|Lp=_=zBHwqJv9Rc#Y?%lC10ZeL|wTmLUA;6Q0HEe97NHCPKyP;aw_4C2f0oI4M9lJCS`1 zyTZ89inbC6yG&R*@|kz0(?=<9!7HUba&=_OmhSo(!GMpy*ANn-LwY36#e_bBiKgDB zLoqQq`L)7S`QWwW$NBYyMmMcd5CL2IwZ`Yqb6MY}(R8Hfsu|}BFxz*b$kb0m)77m% zHc_1geEdy?8;bZIDYmT&N>smp^S?Wedd2Yf*rP3D@oCgo%BMNk+p#%aq66>`)+Xy| zPCW$yk?l^foTTzpmBX%L#r|o}iigO47B%I7!YJ{Fcb|>L7W@iax05Ec8t;x$tQc5W zAkV~@fS7BEw_PVnz)~Qa0`jc=K{Fl16Oie?U9~8oSE@sP(4YQh`Plkj5 zyfZuDF1Tfy69@jb3t3INfRKvoUXwR6_t9RQGRf zkQcaD&=Jme{M)x3Y`<+Nf{FGnONaPQ+j(u!xP48upUc6`MoU0>yRMD-Ioe+V&1G8k z+M{$GXkPLMnjFGju~{l=8^HJ&e-=dJ+|F+vsM_vGW;1{2c7D66R{iQ2K$*W)sFV|M z*l$$*#K^?P?ND%C+ zaBLsS&yuRG1pqTC^-N`s`vo0w0@q+ab~I8E*zUAHI(ca?hQ zWwe5B@`P;#y*Kjg=!ZoH*6DXCo-0M3WouQWr!+}}Qr4+$)|ls@OADE*xYG?z^%L2s z1xyXX&g`L-@L)MPGxj4J(kayO4PPutNwc$df9|q1*n5}ykG6_})x55((M&1KUtA=a z%E(zUTw=zo+HCq1bb(s!pGW(zTxkB#BG1>=u?fhMZ$$_>+;(Y68yXret#{=MmN7J> zyt2#YtE{Y;9$>Q)u$n1t&N(r|)XF(~Riy)znD?*ahlC^m_|hK?Bj3)A;MvVSY98QO z#Y`!{#Tw~Z{x@&q2~o{lGzi09M}T(dvnMBiT*b%X^JG3`!d+0$!Hejd&QP?diKvWr zExU+?Ww`X$uXz5ScVLK*k6peh4z^zE7DzWWIH_gc*PBb2`uKSlfJ!#%v* zNv%R+HSG~={b_E*U{MwRtHqyeaS4G~Bmv#p+=4GCz-ym7fYw8o3>#b!JNua*bLvLK z^hiIwUj5wsO}}nCTWKq0EwAxvYLMQE``M7{pTmZO?T61w?JudQG4anQzwe5)0PnGmXzt)@?Z=3Gy!ce zjX0sXp~Yfi;{0MU!P-R|ATAZ~qR{rwjea~8%ly-7WQ5yL*+X=+B64iUci`Vj-MB@D z{{rBBKzJJb?eni^E9|FD|Hj5Pkj%!GJ_BQ2>}?#@NV<^j6k~pvdTycE*xXJTaXJPe zg&sqgM3@L^RaY_|A#0RY zs#xbGW;WRrOXaX>Mgb&xaG=~1pDkv4T3>@Z znOpE32(lYG`!E^B1C1_KReQ|FEP-+TKIuD9i_R>-VOgi^%RZD8H^r`}I#I#pu-V(L z8B4Ef*(p?#1BEVwNmDT3D(Nn?cfi9mgGr-@2=Q$YZ{WW^B`5el?-dzc#(4z)9lNq{ z8tC?LVZ0P7IY7!Dz^_EXY?`dQJ`ljxT;+f}%r@=2|DluWua|z8uHuP=e{?-~G|wvoNu+2*nH$KQ$wV zu||kl3@xC1tjqq@6s~a$1NRe1^-zk>%KU5780q|LP|1?hXa}aP_Z8$Q1gO?g6l++w z4ekVDvn}`%u~QK_ohaZ1f!UgVS)6(!p$0-KD>>@tpfpBp9|nE2K@|q7pjreb!xsEz z{2Y0-PNNL78UWu&Hg;Muu(1if2}gOQhn`JD-f3FVHG#0LB-2e5PZfcbarItd{b_#o z)ZbKlE-oBVjeTTWd=e~LM#P~RSwN;Ff@`?hJ6Kv#VS-f3og625A!9yUqMeaAmQ-C4 zMX#kC*)@5c%HOfvCKQf1YkvvzRaQ1- zgI;{aDS4wifO9JKMBAP^2V5VZyH6VYg~lwpe#`@8mhuFa8rt8#-k`?(#wmvgdz~xT z4x|_o8khG$LWW9S>o>_v&0)U}zJ|z|WsV#2ROAet_43$?aN9MB6{WI*D*Bu4V%^{u zzvjvt9LMQ?X*mnaFQE`#CK(z<-|5ca&nfisZ)%9NZ6($1d27viEBbo;x6A{V`CP~e zw~%Mt1nW5dmF|P9UjN-j49NZsuAfmOZcbkKw=<^$aXZtF#*PGY_P#Q?<@-5L!VJb4g4KF>xdtXz#N0?hpSWu9&# zzc)leQlatNFx+bYtg5hZ&64m(LyOMjRkuBx@P^rq$yrq_?`5}kC$kj zs5X}oUr8cS9>K{=fNU?>Xu0C5F(0H}(|Zwg1sC|V0jvS?6uwe-*hdRC=CB$*P8wyL69BI6Aq<`9%>K%z2I*AnDpi zT@yYV><`s;v*>{SePHFj`9X$p9}AsZ{E4{cI~>00Viq<)_+-m>o@Q9a!NG+Ecr``W zO(4U_%98?KeUG+-1@9BMrf*e!Ly=Rb{{r=r(#^}`&MdG|D^KPHlceO&ZKa&Bw7N%8 zzPyG!2$ui5Jxr4EiR9$T_2JSuWXhrnj!(SiU$%(*6KeY40TI-V_U=_ew#^neHm@VW za2ctdlZO905YH5tX9mDPf#`6LLKSpItfkq(oVoJnat=Uj7<)dDG||y#--Y##Y2$9t ziz#CIPo5(a$hyK#*H1^}62afljmC9GgH$2r<{MM$HIs6SReP(OCFBf8*JKV5edhPKS)pT*3DzO#VL!^N<&LfXl2{f@kw%W~5TD*)fRXzr3& z?k~0#jJ4iicM{mWvp(rzVk)sD_YVE%P}`eAW1ES&R|`Et{FNOJP5 z@L+}aui&oAu^Jty<(-!9!#EUG8;_X#Twl9LtCaJLp~(R`l-T$=%toZrN@(+ ztlzN@D^(BB?L4QIp%b$0z(hZir-@NY=6@TiFsa2b%x`ozr@BcmewX7c9qD1}*&jQf zc9?MbZ?c0zzH8E;^|$veBI+wagoo98GGmW{wSPduGz>X77^txl0e=ZYe=bOUWq`YZ zNdYZ;^5pUSqlB0W!_yYL;EP_2oC1b%4J9SD40-je?rw>X=H}+!x@xW|CjPVoI`Kk^ zDxa6g(6ZBIIho9mece>hlNcj(zvf7NK5keKL5|e4>1yg3;WwTiNZg|3d5iOw(o8oq z@FaM2%2(_jG-K}j>l;qxiP<)QdLL*!t~cJpWH!3VVp{tZ54k&>9Psy#1~suVheBy& z`}9B>gu&3)bnKy*)a)`KTpb#k)m>P7TVK_yMjy%aMn_WOYMnNMmEsbMQpe9JS*RP!if)(Ex4T_N$`Xtbi07JSDX>w0}P`Xe>W+&1x+!G8+|=d}nLpm8PAQO0=; zzwZE}5pn!jUwtoZdz67sYl8g+-Z}Wu`)L+mv)(8^FD7-)#)atM@A>At(O!TcK(C{B zA1B9Nh!(~1BfFwZsCTj<_9%wSto)Bd0`6tr|Zp5`QMqpYuQ9(+ceZ7DkGqw}PL;WJNdfeU|nRoc_mwu^ZRS(^&a z&Y%z>>!iz|3F_gGR zyMr{97qfJ<+7`V=-@@v+kk@_hE0k6@(G>S9Km8>p$XWEWy6WoisZ(bN9Wcw--o%-r zLM!SBpuPJ1SrTguqwdn7WY*lUL_HxXN&4s7a9Pr>%AP-gyfdh@>7?Ex>Nkp@1cSXD9YFSmp$D2}urK$UUPlB18k`CfC2Nt*OZ#0#eeU^kyMj^+eP7H}araSb0L8V@ZCLY3vwePFt@0$q)WgGk zYkTPD$HL@xQ;}^Kg2rTLDcQ8I)v)fcEc4UyQ1{A;UA2m>(5vKB`C$NDR1Or9gmi5G zDoG5m35BTdvoHhUtNKtFKGuPr%0|<)5xv1Ja)F3(Ktf>_gz{U7W~2FbkMQM$h_=T? zB)L|tWzV2B-*+GDt+d>@k;UT3b+rY7_A*VSJ3HV0leH~3_K88LU6^TP;cHMK3!gC} zbA?GZT8$Q6b@R$H-~E12XxFA0hJlNI@gjO7`hC2%$BE7cPUnDwEX>y2JW@s6ODqY; zNFL>L>P!^GOvT6;3axrN)1+~1t;Bm$28~UQ>)RD`ZyQ~z7ng7dcAXmR3hfb!tgca< zu~pyeb%;2ydY>@Den?M(cvg||-wd7bU&Hs7eOX=@6N7;aiDYm%nb&GO1%SOYwdzvP zbmOLxHF0>Lqdmu|`PB_F(f}w%5VU}D`4EBUpR-oar$`dXxm#(`fVtoPnj49lF9bPG z#K-SSW_qi4p{5W#&mb;3Sdna+8QCU+0qaznwE_X|3AD+XFFe0O-wQ`e4)?EGxt&I; z^*HerX=yDjt;bt1@n9zEw|o3U-Ep!2vBRJfSwDZ_1B@{uB8g(>Bg|9xD@!cXpioro z8mzenZcee!u^?bPyD542HvNT|VP{Z`(AiF;TJ#5+YyflX;uaq95oSeX5WA40?b`pI zr}o2tKp8@mfA@M~WUrty(gKGTTu^t~jegudGcK!K`?!8Yr+Z6Dm>FV*f010%s&!pffm z&ukBFo^F{%8lFk5)pc&;I=9Qoa2$5}rFcT-Te7O|NCk_o1SU#~ev7tKfoGHbaX*zY z#V5Mb+LvneNB>ZK*R&t=%NGz}3YE1qu5ekPkX=^b+3W+d7jVyikSHV^mrO4)Lyn}7 zRJWt^1Ok@i^2v%GMrIm}=c&~}CtICya|9Px_ZKE5U5Hg;0sSmwXta* zijo*lh+U=NOX(eyND{L^1{o++sbjWWyp}Pf)a0v|G1|+{pSUyGr4m$g2H*mNR6bf> zJ4r{~3Z1EFC07o9wnV!(p6uT1ipMw=6fsSR{@cnCk;fJ7_5=Sm9Xekw9631Y^JN|% zc(BCV22W2-ObPq}4z)puSm)2z&!@)6&!cgvtCs4FwvvA7w69`A|?~z zR4D|2{YlX=^hlK?cDWHM3uDw5;o z?cO2)xvIjvKo;=}f4s@a7k28Stre;?9LRcMVjK`X#m>nDLpM1fmO%$ba>q|-hpyRN^PPN`=Otl0Jj+>t$Aqdw( zr^L#kmE0OhSbd3-TEu|yEO{?%74z@7IgH@nrAGmC>HKDTmzY*8;tMS2R&yg(_K95zm2|1R%$y4+s|r%47#0&{WadilShJSy-0XachxFl>PZXsUHM?&oi%ZHkdvXf9 zh?K|04Q|dLwLNtYoQlb^NqEZ ze17<2lXW95&w|YGE?z4IV9LOY3PYyXlXI&F0H4o0=ID6%A!4a@rGUQ$3Izn_=ADN5 z^|j^cVsZN$sdIRy9Nj(7@}fIVaxkp>M*dv~Bq!#-?L)NXr`}G#yu@%&nt`x&XNB$m zovSR3`^0PXiRw&jw-v1NypsHGmhEwIbW|h2o3$jz-|-1S&XT(x2thFez$1VXWxmcv zyhbWV+NTQ>)#hziJr{5YN`g^t47g4bkeSN7kaM^y&|}Yh>H`PY2m)u6DNPQSHF*KN zTkBcp-=ruuk5)n}WUFa9gf6>aY6`h}YYRCrt@+-H`fqffE2cwiM9QZ!;9&WRQF8*x zO{j8NgJx}o?iY}ePU+XURNtEKWx`FFaLUI4))d55OiZ?varEQmyI1u$vaG1GmYxP5 z=yw2hH(uZs;@{d%x5@f_j4q+k6KZTi@M_y(h~03~X=G8E)^(I2vczBWM}Lcsr8i}D z4bi8ox!iEi++VMe3S34;69mxvCeo5zI$T}-0spIw~igOo+`C;?TcDxG^O)e6&oOR)P z-{rUh7nusyaph;a0C@eVYABzR72m*FTLA(2)iMR4vYDC;`n=7lT zR?&uw1ewq;BH0M_N{X+RW#miCYTv4GTkulzhBi@H6~_UM_fww1e(Bs#Yk)UMJ%?`; zlqfY)pLO@`ZNZlXagBhrNZj!Lm+L%@5LC<*>r809|C7ADa9RVVC;iRuq)<*mb-!s_@ zI2v@Aobhj=KT|3<^yxeErLChd%J-QV+E{Xyw{OjkcF_a0a(JZR@(~Gg^1wkv{{I|6 zq>dg44xC;mSkE_~KF9EM>6wRC8b@khC_LH^3lTC0m!q^k;}Z2A%{*Y-SaNbwXuaLf z5NvS2>7LLpH+ka&8XArXfBpjRSJSr9!9aOU&coUT*L5H!(~9wXELZD2Q)#~9d_4f< zQTYw$K%>ZlD$c0{z%7ckHHNPG11(&o!RY%<8Cn*YU21gJt~ z0L-j8!LdDOJaUh^ZcskaSH#lfao1LEo%D*fKsGVT1)H;Mlt(e6AisutJhi%l$3j}c z)a+B}XKr8Rl{E)62_By)9uL>8M&nd=7?IK8yWYVWDWKi_{jgsO9*tp&AVU0||0cfj z|L*_`I9j{`TB@+=m~Heyu2y0Od0Ktmjl*-x1|b?4fcBiJNf}2 ziJ@;iBwk{@?^2>340@5M4LAfQVhwtu#(hf@aQ!-@LQ2K(o_u)iB{ReF;(5?n2#Ue? zc%Y|$fPC?S68#-Yi`w;RL#f?}qOH z#{3lwF?1vntws|a{g5o0X<>+cLH+)#jO!(#5#hT_e=c$KXYm<9lIzdwwd^W|Sqn(F zA73u(NPK?wl-t)%Tnfq4t%&6E6}rKUIpWVIYJq@XnyZQm8dT(AZ$rD`W_#t&yU*p% z>b&2MEQoXxYiIm9r)`xa)eC2-7y9kb7ofW0cvMWgVYZ{rG+@5Wah;?M>0F!D zO8D#TmXehd)#Fds~2t?i-YrGrwGSR;IsKUMI7vN!2T4%%-QG@z$fa;7|JrpkZa4=JcJ%Cc zV=<~){Ci4fyatvPj=c+g1w+v{FG>t7dEoQpCjr3NgmByWUw_@`$vUrfCLi(t5OtOT zReayqm##|+mu|$MySr475b3ToU_l` zYkjtjaLJpuZ!H=&;`6--km1XnX^vkQ=)z^dno~Ykn~yi?KqD9!^tcX3fA#l>6@nbDN zsLo1`kSLn1{P;}I>iDys-=1`gCpOJAsa8tOh#mE9kWyY zXP2rh@2=^ba87E7+HZcV$#BbgZsH-Xm!!u0q!!YK5qE7MyG|Uwzbyh@=3b^9*DTL?dr8@53rAiJIq(76Q}gG`ilsl@qv_%2JIcLF=lY0Wtr4 z?Cdzg2s_*S`ls_P_`;5L6?_WH`Tp9N3y9T`iPTt@UR7bjEE~WeVN_tuHSh?2P*PlV zPEC!=%769Bb?w_LMY7h5)T0a0k4MJbf`kDZiE4}IWt2L7Y+SBF1F?P#zwbEBj%&ABpjw~JBtdG>13ss~9ne2*fU3a{5yVNM zE0fF#d0?n+c#;}27fD*Nf*>*{WFUx`52tlub1mI>>*z8t6eP!f%$j9DWg-s2x6!jw zPWAPVG)~vD*R!;g<^U5paiN=0y!kWUD(}O7|{VorSCAIL2ld1iG6ONrekW^P^v zOi1x^U-GzOs29Xy2AViG{#fg|d-0S>BFicE+4pNrcTJZWChRG~0{VQH)M6Um+@HUE znZECMNyq4R+zJ))zL-JGRDJ7Nbp0vtn~Y>8@M)!R(AB#xHi*$d2F+9j^u_xRzkQRT z*2b$SfQ=dQbo-Jby&tDD-^N)W1x6*@nJF)fGeJ_tmj;)K^9c%Jnyh`}Lz)zKe-|agf4fbz zh#v}3@N)4JFeo8_YteaBYb%ZKBFjPn%L z-T&lStVb-I<{VLx^-AG-1#{`qD@yQoN-5{eV#+2KOm6eA<{XGUSzM#PXn-kreWarD z1$XK-&Ih*@&pdP1bv#sraU_fh^oK64!v}3%OMhNIgB&mYQ2U=|8rAV~GQjbIzDrw+ zl$+Z!>GUv#r_egxQGHy)pu5T{th2y*F1#?>gHe1k_}0`KtLzJh$zW=JgPM}kSLBPJ zJJt}@goq7Q3ctPWgKCXUwfMKEd;69|LCSHMo;Fh+0RaIFG*-8juk7^B!zq4w@P>ZB z`sHpY_V}+Y0U9U#cZ_XuMnc7nU+X0g@&ER8p#y!A5)rAvW2{I zy|afjJJAQTBuIcLrA7}jqMzEe5x(Ty`}+}x1u*V1)!cJzt*$OR4|wKMS4>)UkFWzh zte~p}F8qm%B8^pbl`jpU*>7MRR@!olA0DrsZgYvPxSy=X*-Hb}k#|PG6jjm5gG3?< z8(=U^^Fh^J)5D%l^EFdl8mEjsGjg2Ce)iZH&fB~^GeKMoq%o?YNW3kat4}g+?4hB) zgY7{pJYhyfc!qwnwr(i%+)IU(V;ah|?_E}cMCv}c@U-^6x)eXBK&%N3yq~w=cq%wWFe;$TnGf79RX>v%7%{k%ln^i{C${e-BgUK} z2w%>#xH}tKvlGcI-)CA;qAGY)sWGGJ**)A+k1x6AyLcKy`^MM@%EC;5-OuIR<0$!r zMEj+LXQrl!4Rd{XnaEdP1r6U254+4H#We4gs(MZSvD&*?#*J5+ypbLYBm{mKbs{HJy&M-*S4iv7&s}8V$a)T&VN9S5kR6wk~d} zyP=o(K(|xzZkLv3Ea0m`0L(R|g_6pTiACqN0H=qCqos!Z0Q@G0N1+FRI2ephyGwcz zu(#Apu2VaJxWYtFZxSL&9kS8SmDXg~i}`qYmM(OGpfu?CQJ3&NcQaSk{t|hvsYy?) zNH~tu#Jm7rpvtXDslx>NF7gRhK#o-@=A{HlE%QK^C;{|kQ9T}AWQtF*4%I^`R*?5d zHaanQ&S@iVoV=4G+@Zz>U|xjx1)tj`RJoyVTy%{JR-}{A+V_n=@~r-q?FLSKWq}GD zILaWhE{ZUthwBmi1SDlVUvXPog>h0R{`-w$kAo)i5It+~$>Kwz56aZ1wzj3S%?Rf+ zp~tndqoE`Yy@+yc96>PF0I$_t0XArAC9r)3SCc-tQNJ^O{OJ~|B6Qs?BzScq-WG1A zK9#o8ZMi*dLR9f9Cs1W%h&TTkT4kx;M!!ZgIxfj%(ZhJVn5)m4zXy1Ghxy>{YU z(9~498m4o)j%2;vrz ziDQ0Mo0)<_o$2HK1nLC#P$KnxPSp$e6+~!+3P?0zwMTAKQ)4)tm!x~X(40+CVe zvCyLAdB@0?EJOJ4os~pij^i47zxQ(uCMYyo-Cy@Hhy}%ydOIUfhQSxbgMZnKXV<;u zbDW3*3>gD`wf5bON*Z%tB4%s@^>(gn;0kiy%<_LV*?|ehKFruRPcL#oR<^3}u=Xwq zNKAU~wcZo+dEyA@^R)emXVmiWG1|#=*KB^Vg&tO?qSR?_JlI#j_$Ih=wLyOhuR|Lr z;Qe|=2?^#8@eEF(sXo-ue!7=+dqtM%h56>W9r+PGa{?7iUmqA%ne}f9tF`YLaNZcf zd;ljJp2Y_gIV8|S^oVN>E0{K@xAw?5|GB@~N&Z=tK|nc8;or;b{HlE!>=(aKZ!V>6 z*XxuHFm0{ar-pHouP@F;eAy_v)IZjJRtB4MuZ5%Z%L+K0^F4!T0$O4|60QI=@xY^L z1+L9OF0SFFI)|lenJ(1OqJU|>wV`8u>^*T?@fYo$N-`6H!7Q=5@`Jee-ASlu)C@k} z@tYORMXtXMBLdLpw~P$_KkX2u>KST6I>F1*r$=c{V$6hW{pQHvih&lXaGp+KT=S#tOb>YMHKMN0 z5tijP&>Y^HirWjiB&_Q1jIdj{#YuXBcvB_zyRF#O6ygy?N>zI=)48|2gpPe`F+rrf z>%ssfkWW;c;x%In))q2aC<8l%bzAM`CsL|cV|v*Ovz7Ib$CD@~&-C`_4 z;4iAB^a}Ho;}(Q;I?TJsd&T47Y<*Or!lq_%vC|!|vAvx-J_!9C)Wf~YlEYEunx<)~mQ3t77Gub4ulq;`+W_Gv4&Q3N#tRjm9{Dwv zREis{&QUkoE>2N-m8$An`U-X0PpB42f&vXi6%`ZOHslUI9Hs9mz8MQ$#&owEld)pnYOt57l%P&I)h6Wu~)oD?EDQ=Pv zl^%o47G4Wj<@qHGd~S%ae%!tc>dU-c_?VRM_NPm|1^{z5_tB!;lkEer*YU^!Y+KDI zcMm5#*#~`*CvTjv+`@8WDHUM-uc^w+EFk0hTo8evfOa9}AQO1o;rmpBZ$0m9vKz*9 zs9FITY*hrRT-b)&orX=cus4&Fqq9%&5bF;VQ@jk#QL<|V_Eq_Pa{E|jzWkZ zhi;h<&U6W~&w@)ETd+%gTP+~>*URxCFWZx)BHk^aoP@%|2diM^m*ltsq4a7LwHTV! zl{P~bG*RFg;9vxO#%j0u#KlpG+kCTG<$@_taStc`qe#%}?()`lXjX$CEx%qwtKDIj zFEchSH%N{r%lX3ePh69dwzgHX=bJF~9I={66I^BranT9U`>8^t?qYQZ-N=#|w=2$Y z;ksITsb-f2hw?{W$NiCm6KASGsMG=69R=Da8sXMgKB2RiH@&lc;}C61>7keZQ^CLg zYXFF#BFYs(5%p#oe3gOzI4VBT9I_>0hY7h8ol((Zcbb+&6%OfAy{R(%$cx?HM%&MtQu8we!w6J-5e$_%PcF) z#JExqR?m?_jw$=;?@+Ovsin&YzLRq85ZU(E^%vs*N@ED~`+LCanQdnpSB8&pJQS82vHs|$p_d}>~ z??Y)KzQ1w8(AZ@spB5oY+q8g7S*>YL^eP+;s=w$8yEq6Zci9zz{?veYOsuCZi0I?T zk3^L3md*X=s-aOHySW@c7`5sS@0}KB+>_4m#J4Kh(*h>%g7d2QmVpqW2oUKz_PIF= zYOvi*6w@v&Dk_rDXrX#IO;WcM{bq$GcWxy9Tf##W-YO# z*wNHM<0vGQblH->ay!mk1n;^ zUV!ocN1DS_j*4VBK^fAO*6;TGK&-0w;@>)HSo<)o1Px13?pm0(K1gQ9@zaG>DX7=P zA`!M-`p|4UKkw<|asT%8o|BgqhG(ei38?{cedPSk&OJziHr?&Socrl{rf+Fh)W|^J zkp_}V3!-_ynwULRm?k=fg&AD(D${%xraulU~%}@co)I{4)RJc8dJ;#BX&7?VUp07E%q0Kfu%u>`{rJ5DM*}z={T}lpt6z!*%3EF@@RWWaXE`g*jgR_Q1eg>*hu`#1P_+V(B$oFK+c><1eo^cgXtws~!Hk_RTjeXwlIKLLsW_-+l)8T(S)}c#QrLyqK%k z&{#vDH(?3K*8*+BO-DUR=ze7I*{{V~v66Nlb-m8|e9SfgmpM?0otq`i$Wd5Hjf~zH@T61$qf_Xw#EA{GwaN4}x{Xs$6-UX;t9Lf=nKZqa$~GB*&PRFA9z{bp2r-m#!VQq61F}NvOShyP8n0ThJsFn z!N6<`Up&If4>Ri(6~!q+1J98p?!QVq>IjNmBX9!)y4`%twAg5##y<^nX$*nQhzmvC zY5rvTN7LPclr<36L176)ni`bW}Ahy;7)v-MBg~t7BhgukccBy{h^pFXOk|L9AL#&;B;y?d4FTD#C^Aa z@|2VNb}2~ZbBrKBU}8(Oh@MTNw^B&4piw35k5(S~RcP_IBfu>1udgD5QT!sH#G>pc zf{-S%x+*T2xygd#oX67bWU=;bL(%IF+Q&9ZHf|pqT{Ucn`|A#HK}-OXw^@?w1c)H% z0Tu?P;-$zhX~^rIr^peF#+3_&7ZAWG@n z^rc%hUoGO1qrkK3gN)$kEeIg;%gAah4n5HwK0Nl}PBw$lFJ62{fJH{ZDvKof5Z81f zY1VqUu=xgfc|at{xcVyK(u4+X*x;I%Vetrh;tDqP=x1#uYKx8f$~g_#TN?s#A8ck>Q+!%tqdB3n0n%1^oAp3{#AM8-)cr zlg-AY!VgQQ6tCe`BF^yuy=}_BGNE21EU6vf+Gb9qhqM}sgxx<~T3_9tmUd5R=I%M0 zhZ>u(_=R|Xmj78XlniZvEytq-_mr0bEqjqK(+xZE=R;|5t@x@(6_x?JR0jml)1=K=TJ2H+wrEpu=+uGVH0zJ+ZZ48ltn-@N3 zai1!b%&KWDc=V;`2IxufJz4#Y0P+mgQ2FSXA? z-Xd?jO^z?;dTWoG%m?ISV>3nFTwZx#j zG~)yeDu)q3_vhq%BA1#|cp8Um@5R(?TM%+iV_zna#|GvqD|@n_t%s4n88PoTuCB^P zOLN^#l_qyTj>9ZaD?f-GOm>oE9}MQ+;YL^-_vRh#a0yRd>yBFFHJ?hDl#Wk1+0Ocr zb}4RZx{v&MB;5E~&fmxLknn%b>~@j>wrf+&)t;2*)#|}9-)IDUILd}PUyQHj<_*hd z>CIaz!$QqF9{gfqgxkTiOu>22_ULrG&{`ZQ65?GM!3)3Ofa5Zw5VmS-mF`?KQ5ufU zi!NU9xCeJ8BE&T034X{`V+e{32gAVUb~zmf)#iKhkqFCXOa)9zkbx=RXkQg9z>E}) zAAaA1=?Mg3zcDol`I(cH&rleW@{Fn9{%CGE9|Zt0C&|?oGeWJ{7$@J^F3nS9U4Jdu z&nBC#RTb1JUBwibFXJil8 z-2kCWoZ;RUmJM{Wn?VohW!#VoEFmYg+_PS87(H^?&8=p7@OnDJ6jH5sT#}LK4P6S! zRgd?uVvw#*|8XhnVlzZM_`BU${v^p(o{+1^ZVuY~m~pgd)1Fx$gTc0WIylCgX79#t z3Umi=S#K??7dBo0HVWS~q}upf+VgeTycOKi*WgS>@6sQ=cG>#mV)}3^Fz&Q(LXy8n zDE4*21r?R;r?*Z18wH2`>5i(Tq+>zjsz8D7ot!Jx%aT+v6T6cqGsIkGAjcbZ zT~~CxgJEo0=JI!Rv$=Yl?7#a|3Z^}8{V~$VQe;q0b z4K=9?no%l;_pa5o6#Eufq^AJ(@ZFo>4#1{c_T_8OpQGtfR^_i_<>!^J19y&ekz7!)>}HWZFYL_PJ?l5fy;6deEOD%wmm^^E}0OT5^Eer?(cov&~Ho)RVK`3nkCy-LoOgWCWQ%+k{t{R3TQo~o#nJtJ=5j#%&=t2l%1Fb1!4iRm`*H+x!YY1wbI1$>Xk!|hO4 z%>4>~FuM>?a%HQi4#cp;N>m(ojgI6P!JeZlwf z{w84a(`Xt1fYdpktf~#86DyYr0UUc>NF%QS)6_wKa=W!L!uGU?r5EAf|sCRu=xHRJ+hO!(Kr*=QMw1shy- zsA9tP1HTP>q?>GA{iZ(cy!t?)E|T*&3w=EPwe;k<6H%AOT4%$ltSyg;Re?bssY0(+ zXLk~SpLRPilCgm#kF1CXD+}+g3+gu)Hj~O?eRwO$J7*AuIJT49bu*)<2UkD zruK6W8wL2dw~F8P&`@CuO-_q~HPhUB|b{c?f;w#eVyjK zb;@Jk)xhR*n)3;(Vr27#L&G*o>a*FBtZ*oGMrXvCud)B$fkq9qV0L8W^W|vNqOCQM zUw$=Jwi~H}#wVI0h{v{JX08#$f4!U!orH3!M3QP$HfCmC+t7nQ33KCbsrEx6D5g05 zmhfuCc}`xYY?WzXel4@~LfU#%odXszSM+~3xt5_7HFdCDb+=dlf>h`3;w1n}E!sBR zJJzvj4aZkkUk#vBIpo7bTL>+5#JTTg_8=YYV30t`&B~ggUh7WQ=nCtg`wlwdO4T&1%I&rOc(im=|cui zup8k*k0$}d%EgNw9|4$zEmce?qMv$IL&I;FVooH#R?wlys&;Ir0Lm8F!Cy@iYa6~6 zD$ZxS81v$en-cJR3cf(3_^XBJMWUmt8e#=C5A=H`jN5V^BNU{p#03Kr3;GPpT7`v& zAMdy1yjF(zbZR~*lwEGEbXp1ALahRMuqhyF%09fd`g?AQe-NR+1j2j_5Pjp>oIwPt z^lsge*VFhqGO5LHOqa}q^lpjktU@$gN{xZu^v;6Nhd1mo`FDcR}xAf83Yp zd07K_^6SMG?Bg%?XPb@R!SvUC#GgK$=%2*yU6{}CcqNc#hi$$3%Axi4jl4#8cea0oLg>XQWA5ZWh*21 z?_g*@@630KODhuQPmfbcp&x_BLYF*c<4T+V&f*z3AqNBb_PeB144pzpMuCn%7+ z8ip;o5;n3#qM9&8G~w-`Qns3^>b%|U&Ue7Cu*xH+W7nH2C!556FEAf_OcIzAAh6xw z^o5JnBO?v)Z!{d62R@%4ZK-)nstl0ek-zuqL7BSXc}}F^=f+;#J2)TChge4tD%L$z zLOIjpWZo$ZjNsId2m;`1;qS_^Kh=TbfNWZUg}6o+g*E}iXohjB*vF(E^2ybaKaH`) z8^?{8hgs%Haz33yOOAN1iX)<$UJS4oT%Lu9vj&10myUWJj;^kwR`hZ})vj~2u^-uKVK5yM~M zs67SCs(W(IZP39&t30D(VkSVE)X062)Eqcn^6QW9&rmBf=rkRKXVd;7V5=DUQ0=6f zAm~5-&JS3hXFNDKd^`x==nqn;jNpKo#WLi1$+%D#U0!=685woFNSI?~TgEzAWK}7g zW!suilxhMJ34>LJtaw>-{D&up9%-NoH;ia$Pt4kiMi{)KF5;&!z z%=`Jm(`EP`L9I;mPOzP|700c3$X_EO3SafdTMC|)b}zbnefqTXn8?;$#PLaS7*Y;1 z@KekVDm)}0>2Yr6!2)8t{%a!(Y}CkPKDXyn=FWL(DGIjgBD>(mD+Ugw7lBr^;==!|{E*v<^Q z+Av;DOtRr9&on(U>If`IjDHiC1e^Z0d<6%tg=w<%yp{R|--rvaaEB!H1HsyUIR*5E ze9uOs#*3-Qn;?v=Jk=5XTe55MCViQtSQjQ7l&q2PoiIHbvlVlFKF8nPhcn;Fa`V*O z$c=RZ3Auya%1urQ0TcTawpb9Dtc7mPc>(LnzEsWX?0D<&&UfCvHKJVWRC?Of6(<%A zY6~1c0puf-XS1L3$w2J;={1_yx1O9!gm2TE6Np zN%RGWy921F?L^M0RyN_($V?R*Btg5&G)yGxcZWr|IP3@G<@{MR4YxTbMa8MdQ^I!8 z*AnC#EvLro#D#jyNb%%ua@uVJa^@Rq3LCu|$DX(ct9T&iSNGC5;;ppDW}*^)p=zm- zPj=QoQ^mHM3YBc_!@JC)*WprRE@!*MR@a>ZA^s0}Zy+WcyB~{Q69k-15{`~?0)NWC z#sERKMl=G$3;-aZW(k8Y1Xy_fKRNW;dKjt~9A^qkRcRubjP!K4%ma6fL_gY=P7;KO zeFY-oyVx>y5kpP zQcHk_%tLt1A@=O~{*6uQHMd+ztvO#q@|l+kKYI0`v!XO`${&TgY89{0sNXRyghP6M z{eaCVfeZm%NkuYpV8192mAuV+7|(!GcScm1nV={1(xUOfajn5{EPOdkf5;QW#w_C2 zUFfpZMBNU6xz63$iDZd}W~DD7d@-p5E{HWJoOaX1Og`ShX86zz;S{jyvy^ciVST^T z%$g|E^DyUiMOK69y+nqr+Lfo|w$-8U(^0!MATiUc2SZ$fovrHw%1p<1_A-%&al zw%;pCU@p4A9geR82DrEh3<(+Dm(rFgvuv~001+0#sxA*YDM3gkgtX`DrDjWy=2)xVvB_8i!*}kYe5}Yr;0VNMQWD?@Ah}mG&I-{R_!?5evvf7c)kWV zb<@{dd+a?~x$R_4Zb|%#f!}4;N$qubot$j+kEEFLX1@OKmE)>4P?@wa5u@MtQW(~< zY3@VOpVv}=CFUHrC#_Sr{d%P&t&Dzj__8-$&lPs`TzqakPFH>y7w_#LLCOl-)kI*b zV_~vMb7A2}7{oLEgke8!h`je6+~xHeU9k)e&L}XWAP`H`S9xm7K}^UN-lg@(Y2kdL zvO=#tEw^UMK|r@g!4Eb?2RQBRR1n@iTUZxY+R-;MA$SwylWI+M)Zg2!s{Z9+WpV%2 zf@D63cSGLkh>wqeR}|#E5@xea07yI=5&6Y}2bBG&VGGWV;PGUWk2IOI&){3f_hwL& zc4R*Nc(v%>oWlY7K*HM}>S(wo*U%Bzr0lHNQFr9U%+215ST zE#n&_%ZuonKb=`YBn`A-8dwMvR+Nuxr*|}#>^h9lOCH+zhx>*{J1YxUY z=874>H1l2oHWYc*&mfR+Tln_~d%Fxx#Wu0^zN$AfiW-&(&}X64rl#~C5b%%Snpav@ z&u)N&d1Wqz@wvkk%doKi(Djkc?Q)+yBQI3q0xv9WuPiQ_d5m6sN zkZh5QKA%dheq1j}<^ZbCA1!_`z+#o%O^MwG2HXOsMLR+<^!_>CvABUEH86%PhX6#xwl$yhYs3asxcp_7*--f7_ zA^SGGhd&9WT%e2`aqyT@Q`Ba77s|foN?xFg4%i*%Domf&Rdg1d!Ge9?WU{HgI2nEk zx)J~In(3)-H`F-);ioO8P}#Z02j~yYSp3kos7d2bFX!Ag$5hZMy?e}!W3XVq z2Veygmton_v;59)ot5XF0y3l3vgv}CT1x1_#^cNP+sH$HHCc%}6=3yJ{k@&V%Halw z_ZPI#bj_%Br}E(y{BEGWBdiGmG~f1flm=h0IE)=7WTm)mTPEFpXyOMQ-7kkB(PO`} z3(V|l`MCGu9}r>H!Enr<6z2x}+I){q@@EQ&OiX)g*vg%Mc7YhhzvEjj$^&UD@llDb8EV4Z33*mHss3sFm3-vC6|T*cFzS(-K}OXvidrMTIDR%>o@ylwSE z7o$*)#u9}^_QzC%j|srS5m+zzZk-Iwft3Sq&8%s*02!3WbU>J@(82vA)sU(iEz<0^ zH6&(`!YebUAHM{w83KKh7w|todYSoqF?tC;n3%A@cAFp=#+GBkWR{`G50Tl3R4eZ) z>@tuM$Lxa&C8SBPi?IAujFW%=flpug?((gMm{?voP~4RGnNy}Ji<(2pQV@LLsE|>} zwXxv?-S|)_*If}X)^}X%@%XJl?Gr#MbndC~$m9NLWftn-faN6u{Y*rp-bW!hHb4)s zvG+#hMov*x=`~qE<9PqhG3P{{a4&J-d)5h=m>V8}z?_oX5Rc+h#v4kOZDimlU-|U+ zUm@zmGeBJCa^?joYdAR}AJu@$VQZ?v&gdZ*OZYgCGDH=N&k)9cfX=X&wtI%qiS4{@ z1)$z6rWZFq7BmO1qNH4$B2okDVXO=-_33`y(7;fiij#m+6i~rx{%fwd;vvHTuMIs; zkDeMc_rv*zeg^@D+kwrW9uIyyrl40ORiBT0Ez1UrlL!VXD-6+|FCkjV@yLp#)^e`Z z7CCF2P~$$@_#CiG0N8L?uI1KCXSvGO}7!^?vC)wL31dZDFf*2TbMH|##U1H_dBzJnSX!aErO{fzpM~4%V1{gC1Ha?V`|YV%q$1Ny1GG* zy>MJW0)`PrWNNnjHH#gzi24_WjWB^P@aZF?s2H+;?*?9_&GiL)C_X#`y{?e!*Nez* z@~2HBsJ7ef0}v--kXA%GH4j>?q9rRy0*tGIBmf3vAe0su(Fc5Y4hh9%G0pqHc;LT} z>?r;Dktqt}+B7!l@`b1YS*U|oAR6(dAAHR+Tz*W(?;vjsvsk9vR!2<2CbY4G64eR| zAwH(Nv!$~v?I1E4TaP!p8rGA;V!<7l!6Y_D-#f816+QKlPmk*sP_+87%2|kWGc!vb z<-Bg&q?(@|FrVC9Tzd7|k@toi2PTMAp^eu(t5^PUr3PqK&&pW`y-OooO%9XwLaSl3 zW>8P{>)nXw72=M#$VDG z>(1C-TXzHQcpioS{%iy+kY@3LR5zg)9?$3nr6v20V zwrO++c+Oc?*FGcL0(a~y_JB#T&3kaybt#ZQQT5wrpIcESht{^$W+cma7WctN6*Sa> zYk!oCL6aa8H-hDzIxGDyFk%rwY~z`1`+Q*F7ea6&Si~v}WZ-AsDo;c_IcB@2KNkpk z%M+|>i%xjRVW=a8yjItC5x~8&dZ9HJ5R)J-8cn?A!s(oj_uAhYaW%6`{Dnn%1jhG| zS=7CTtf5R~L#ce1h0;u^j~xK~$^+8opU3b_*$4<|jraAnF@N*h_}d5S-GXwX(8jy$ zv{$mlZ&Xzaa}}-_RplFCn>B8pS) z@FNqoXU!m8Gz#1p4!|#L z4^%o#=P;j0dL<1JIE}DQxkw%Mu(~a#iV?=S`q2c}BuJ<%75T*plNh`Z1$}ekp2Zuz z*EU>2TH9i6y!AI*lR`f~{(M}&C1v;iDbjhfHS7%I2eZ{L4H_5Nt^+2!O&reJKnQ=2 z&&cyzb$nr$Agf`K;p=#nVV0yvi(_^k!G*!#y&W?Mu|o@PH^dGLhsUu_v5c9k*iICJ z`B|1x!gqvn#^uk%zgp=#U*SN$gfDfxh{X3cCJ>^C%`uyG-AWbvbFkoM!d;XM*gk)D zE}JUYUK??xM{huqUux75-?+ZU-+XN-(qIQ)C=XoZ9}=$EP)TYOf>mvg%1dA;#+q;# z7xrw7IFmuAdr7OB+~22<&V6-AyJSBPKw>CH4P26H02$@2kKEQ#2s`v<@Z1mJy@kgmpS$=BcmCBsK_;&%zLoMeU%%W zKDB4SdZGv~QknB+f#3979mVn5>;Re5=B|$2aLnI_uoaf&>f785T&qJwa$1e{HNsCPLKCl5Z2cjjYfSJXfnP9uK zI)5(rvXKjnb+;Gv=|4BPr0Kw6oxl{3mix_33vBJi{aw2>0%uRNsRFervw|a|qyjQA5|N`oT1piBsQLZNnX8Mh6$HIub~v%BX~bGcLm0lR7f`8h{L2O-W#1eGfNIM zO(2HkQep#DE?1Tg`&?t8c94i=S9WMYPtfrWr<@n3a@qCakg^V4^R6t$2JQ#_(g1xK zAXbKVzbyTe?s@e&*wsU?P|7&9IfvIu({b;3rBr}>tFEXr*>=--@r*Lrsop+?6WHwm z4dFl7uS_!{sTByaIY|7pdAx$>c4DHa1nAV+{TUpy_btl>wLD54Y~=*mY|DbFrSS}W zHk(7KNK$LJlq_LW!@j-xfSWePc>_<}Rg6Mprk7$l8ej*ZsMV1%zkBy?SI6CU?&j{Y zaw6v)tZNtghZa_?NpB%@zNU${UEW5cnTbqwqoDE598^SeySuZh&iMGR8GvzlGeOr;c~-qVTW@N% z(#=?uzLh8#t7v@&7>eC-N`#_HqaHK2;CzGt%*dw14yMOKhJ=NNCIR5w{=}mu4L&U; z#rQX##o?Xe3I}D$kQn99-z+t2r-ce zcmj*|+F#o{LH3d#w0Q(D+N9(%g&n%2U$f$}9b>JP&9@9hl!@H67sNR86R#zzfyQ}A zMti@o64G7om)A3ecCWFFv(I`=j_|Qbr=`9MQ)TV|(2lQ6T-v+)N1^U+wvu2gL&_k3 zGGrmudo8TnhodK3YDkvDg}R!o8ojOi{GSfYA%pi}P*l8Enc*afGY*$CQ~g<4E7aUl zz+4EijR3mgcfV9#^~#+v-=;F(T=j1S-7~*q(gZI3WdPqDu-(Ws2k~|qbSqn@bC+%k zV7HSRW%swLK$rV0(L6yDI3eQf-&y>Cx=&`yr@@!-V=@=lC)bU*gDqi#3^g?xlN+Eb zDT3xQ>hM9Y*n0!r3E{Ny1qFzj<^QPq%CM-qwrvq9X^;V=L3-%!4(Wygq=Z4FyFt23 zq>)s*8>B-TM1-NcyF1>E-p_X&-|zV|d+)WbJR>BKqEd>Uk&hf0jlZEUn6~}u8q%b`?s3g=O_Uwwsg*a1BrW5r`Tf;xhEC9&Y0Ln*_o$)4%758t*GmgenB(!oquo1`PXQyRch|U!qUmOY?}U?$ z5jhC#7_ZKf=gVdgf#q+z(+o0UaN%k#eXubtP9h&^(S^oRU_od6yCpo z1@D43_s&%NC(D6pwx^$?h+Vh!m6=$6MMc(nc1WUOHFP)wk{kvlC~DA7C#KXB6GeX^ zJ{^RbTmH`5xhKGJQ>&HF5!#=6eTu4;?rN~tb2^IIR^ev9)CfFRo7+#qF|+Y}{4yf$ z5+gE6+PNP~Hz=BGNvq2yer|juXzsCb1ycT?#uGlkXjl5*fdA@W{@@@N%_lsVYs6gu zGyF~kG#I&}5)krsW80u~0dP9})f;(*7C?EsZ&BV{wN8voll&E- z@}&vLKP(>r>QI+=m0F;a;8;9B z1YSN-L&RYtrOP0w;)U2e_QY5AK5^X6Jd3c?Zw1I9;vKnA-F`qL9nyS~7eqmJ;)wum zIC0NDrTDQ1*a7ij|LczsU+9b?2V_91rArBUY_7Pa#C$Vq!FjvCoEa~o8=Pj) zj6dy5v!OZ8>8$9omm-nPIqi>py_Mc=f*N%=;gs9?(zaP$2Z9A;U zLPY^_1NFzc_r1$(MX7iphvBQ1l#8M_O}o+$&NpWiyLK7mqzKPFKr|7GtmZ^0I@eNQ zpl1OA`?3XIK1_ZLKq|4Lr|~HDRstx=l>RA{Ci{fdb3|frJnTe9-}ob_C;kAUsF^71 zIZ+@521j*wvhG=Ni475$V<;>DW-Qh9YD4;rPldnPANDJj{>Ns9tF0^`(-Ep!LoS%2 z-FK22pX7+%xgWhdb}0M|OF5WOB{`wiWj{Kl?RvO6bD}148c%}7yz=ss$MrfDX{NCE z6@NM{1aP3Ge(4#+DAE!Bf&p3E;P|ESOibiS&fW5Fwie37Jy&1p1;;+%O@ONBL6wo%}uIkK?t36FT!^BNE_SzVxKj^<3sE3(f|*=D%w2BU?u=?t1iVi{QD z4M)uqjnmrAn8?yIu%{{u)h?H+D_eX0Xlh!|$_c!65^z44eY<R{Li>$7iG;CD{iG4A11Sy!?~bZ00ZsTGuBHqw$x0=)zD|25YGRB$ zz^!M911nClq{ZM3kOJxAG9_uRCJcl#}O2oJTog5Wtw|D{BNq!BAX180{?? z;PS%@kX;IZHoa0}yef}cw=^v)#)M(oistBcvHb4O!90?Txa?2x8=UGsV72qc1_(=n^0Fkuh!3{y2^-C zAiSFzSrIFvSsa9-VG2~Yj87fqml*BtoYl`jHoE4W1h4=EBL6!?TUfwi{n_r9bmz%G z+ES4~i5frTgmMjqb~v}1PW7I{K~?<9H;koK%*<}E0?CGK7=V=r9!Qrd9A|I5v$&x| zLs35M{Jd}gSYPc{>)^kn#GV|@;i>_s#ALI5c8UW&({p=2h#`^K=9(`wcRd$9uXYbx zTEz|6u8Ay#&NzUKz1Nq_~r{fGhJ&*xBzP$7q z@COviU~`#IfONJ0X199HUrqR$jXKuWJF-&xp{37UGg9K==czd<+Mq8wUU58UiVFp5 zNn7&NZy!p;zL$W#c>$$wY@`l&6A5SM4RUDdg)?yrjZK-ZCeQ7d49p;?%A9?A&gAHg z={jyrGjQu@o0sF^F5$i)7~*I%Rq6kITd66+=si|3~H6G~$45NKQ%0BA;_PSbjEr(P?Z^6y2GN_#rzp|$x z4V!}x3s^O*RPy6axaIf@UZ=LcaLefB@)=eSsaITXEfqPGI==nXxEXIK1{n!DWZNmT z!+<25Et@=Gj#UAOEY10?Q|t#gfk(* zjOgY@{HPt(v)y8t^)Gp6L)SMCbXo(+grbIvw2veS8p3! zMnv1PC4eObTE{HXe#dpXoGrnKDf%Wph(hqxRO~IN<^v)g3ZyDoilcIk^_re3rCDVC zZEyCf8eiWU`}1i)tMz}&05rM+_$aYK>ZJ6WZyd3F*DyfUvB zhHgd?0c;04(#=0rM}tmsE50^H@OU*7AUY8bU(GHivRn__W;~XZ(MqXm%+Gsueptab z(wf{FlM(sdW?IsZ2XCle*sk%6X@02?;FVA62Rb4i8na)I zx#|9t{f8m^wyWDrW9VGi#(GE*Vo7m%#<3j)VgWyIu99S`(e}nPPRxqZI2@o7R8>e- zSFQnd7fuD85FrqCP28iN@`DG?e{mIw{|`Ys8i}sMGk`!ZKIuGY$HOsXpA*g!GJ zYs?1^1wR`F?7xdvYC9^_^wX`t^kc8T^2z|rgXbKz;Xv0Cj0wA-lk1z$x20lc6Pua& z!6Uq~oxk|w#id)b4U$*{S|UY<9D%c>dzc*=+D(yD@Uua54{_jfQpiQw>qzJg)>BZATxnWl0X-q6B zaXRY%Y6sLzJ(r*|a^xd~`X@u+JQges2F7Y!imA zXYMqNoOprB#4qHw_MCjV`gRi-c|@5IHai@ZyKn_b?Yy9QcKT zicmUSp6d=c8)vcazyMCepo~;H@^s9fI~!g)=SBC+p%Df;x({E4TZ~9R{)a4~nQspE zgU?qYW=DH>U9n1lwC>6cctsgV_^f#xM})*87}Jv~_t-QnM|(c8B_QMMPhfBlt#^J@ z;G)TM*yug#&dX{*{Dcyw_)%ojH2W<#PK|6jWu;s+6`+_`x55Q!@F$ZtiydYr0D5T5 zfAdogqYfhsl1Gbi>9S0I=WdVXeSAxRhJ&tHLyhVv?ll|D(YJ?c$nhsZrB5L#DSy}U zqwZxi@pN;s2-DGUI`0U-jhNZiuRXY-?heLaERd`dd3+G+(1^b*o0;5Lu>bSgT9M%q zwJ(uX)_SWAn#C?79Zi~r8vI~XUDomjsZJ1zxM`pI#h}}Gtj_86=;HYzOY_meN|`<_ z>eBTKHV**PHn=%Nc&#KaFHZq#x@6>;Cyu#t;EW~n5GFon7FT(4EQc!mC6pCgzNmR(&oSdFSb8u zO(wN@!ALIWP6v9A*E`G7t7S3_CH<3 z-Lp2{w{N+*7*pS^0NtR+^Z&9Cy7OJ7jTW70=opgl_mQu*8*ab$5SG}o9I2wkIXT8g zJd|mjqcb%-jhVtKszqyUBy;8TRiC@Oh8j`Yn6LPN)WRd8@=i|rjFHK7#@~YYmS`)V z+obhjSIzS|GHCq<=RVl^O7h`Re{a6tC0RMD(1d^CJ!;>Vf2>0E7YZtjF7*X%uq>%zzaTAbAAG8lJ9 zQ7-RQ|5}~6bT8mZH*bT#0RP=N0BF7DpZ{I14t?qnjyR!N1?L?Y%G=_k z9*V@Ly9M4sHI4KiWRF*4dJm@}k2lte@-Ex2Aulo%vtv_R51LYZ69$@>aa?92RP3>75w?5|!qEiHdG5n$x-Y*h5xKtmeFGaN}`) zzMHkz?<32z7(WtpnnLRiEZD6{;?u5(o0waT4l{ufq^`^M9#z#w9Qp|k`wbTBzBU?m z9t2|g#-T3<@$Sl>M1N=`9I$`j7$LZM4L#1@o+7+NRaifVxiUreu2x!cJN_vSuIlf^ z3X^akXrw4>5$pRMDR6K#n*`{FKAuUu8zrD@8Z4()Ra{xXQ3d#QHBKjMsfthAr96wP z*4JTY4Xx`p-}w`FwJ+lPElyA%rcS=`F$it%j4&N^feMWvZ}wk%KzNjei*X50#(U}~ zDmrL#WNvGetOUm<&-W1u3i>K$Yg?8Qv{Bk=9c*5kXuHMTe+E2+KHzjoJYJUTXu*>dAw7MJibNA`g07 z6v#isO)3X8YzG)KhXDFG_fs4Cm#N41hay*GhW9&UzBxsN_KNiTP)BD3UYHIe<7+Np zc%qe~y0LF8N0jm_N(YeO1g+Sg(GJ~F<&LIv^ zb`QIWq8Ywzrx{>$j|M1jn*x=2qt9$0_?!Jm+Q$WtT|m1c%69J3FgZ@DH*mH#nQ}4K zIe{lu%TxC>j{H^7?bBNh;~wic-ljr#D=c#lUL!YGx%TEoCk4LQ(`mHW2#9FYO_`_(N(z3 zm%zRB?g8X41tVF*F#jN$9zQoh3?r#pcJ7jW^I7u7afI+X21prcc?&FnM-Ry0TAtpv z#o6c}Tf$lMstZAq30cg*I3kduffXkdkk}qY3H48j#0DhE5AW`M?_s%%zc}srn~bGF z?R-DUv|pmuCO#GHSO!U)kybX+iS;E@A%On}q|6Yfq`4C>^5XRMIy}tMg~A&!IqpO zSaQ%~N*2!J;}bFFTZ1@H*{|e^`jzb*#4g zbxDYvWs^Og1CH@NYB1c3*N``FoViBO8e$#R6FA67*m6E91BPvI3FCUguK2g^(lBlm zO^sgGKlw0a3t-CqCEw~`dFCHDKO?vY=uQ9~f=^vL$Bktd}4~hq2Zt6(|rkp zqOdysdIOP(+VtodM2N64gJHU%An*ZgJB5gzo~eC#--#-69%SPM%d37m2)D_Hbi zO4WTE<{Y>~EG-@klRf%mx9-d)fNE*ZhuQ(#Yh3a#9DPr5_3(-6#B|6_KdKbsxb-T~ zq7yJyGQD>Sourt-S0&mU^;p$A&`wNsC`GU8l-@EXQ7+ zh=@p@TtC~&M;t_cOm8Tpey^7NyN{XhB-b;@3J~o1Tbtax{9g}aOG|9*v~s+CQB}1P zjOn$shs3Hg&iNG>b4f^!SNe-FQDK5nY8c0By2-y7aO{j>@Ov{{Z%yd_5aj3tWT-~K1R1O^Y*>ChQX`_77(kQ$q0f? z+-m>hom(#0kjJx4l2K}ge6VSpF_R3 zrKS7B%**;5%2GZ6(=lgZev&&=O;-U;6f6i_R5Thzvj=@TWP0~%o=+VmsDx8oLmKUa z>ca=lR66F#*K8c9QZlchl1?8 zZ|M-Mwou;@$sP*vym%vRGpi+n(dPF84C(g&@WP%aVIUBIGs)OCo&fSl7e9$+@wYsF zw+qiRnZl(jHyiMJUL0uxh(WjF!otGjR--Mv>h!abb19UMIxvEDZ*;QJ2o*;3td=@)iUc0xXS|_k3^i z7w@h^M7&NG^>jZ6JrTHXYsCrEm50unH&W>_v%KEabx;G@a=ypgrFMcPOhY4oE#Hlg z>EiqSvYHPd^!9|$GXL)*%Kh?dTMkBjct-IF=}N(eb4=@1L@RWQ1dzxjNX(E+F%Fe# z2>`qorFCJN@DyLPNsmla^mU84jF`x6cH!akNtvi$YvL5V?^gXf=)4#ghb2Bq^8tbV z0|y{E>+5*27gtG{RLCEc=t@R`(ihsJ{tCTwPy}! zjZ751tL9>|S<&5oOCdkU{KEL$AN8lOi2X|J@RRx$Clw$*ui}F9(>{iRVxXMVOya&H zVHWV^rp@*0SN=QRJk$JdU=H^A>X5Hqu0y~Im@l7g%ET})E|(boCTpGPIeU|HJ++Ty z$o>t6_O>ENjBEyXa!{No=S(QfQ6Uu4!~|7M>2rEly*e-$5YlBVwBG!&FJR&!nhI(r z)smK@wB0&6Nn=Lk7a++fQ}Hn^jJh}8n51E6XJ7^ZmfZ(_FuOOACL1Uyf-sU|c59WF zeI*H#+~ZnvITYqR0o0bRPXP^`#RIpi_s!q99$?u=1ssk@3B=TLS3%N65jdDS-Vi z6msqfS42H%G@n2>e7r$jd;}=>KXNMB400?`ejH2mRmES>HF&>Bpq9@QRx>bgXsG2f z5C!lux||$?N=y@l`aBxi1`>i30-bC5UVUrL%fMoCyZpa%`JtJ_r4bj?ex;~*Lj-`W zePl;d#J~3;UFVSTJFj9@>28wrfp6Csh&(Gx{?3pc``KY&tH$)R{M^otXenLG56tn!Y)sr(UWy2Ohk5mT&(%Itia@k&?3g>@ zvuuP*sa)Mo_k_AOWYVi2f%GHTP?MAk1+dK44vF2n6)ywt^S}^$j7oB$;h!h123rRv zi{>hr4)bw#Qs?lelSG6U`8Skp#I&n_$t1A<`WGiRfpeaPhAU?5;n&6~Mdi9VqT5e2XL z5AE1avw%&@b{CoOrmzo~T_%?yE;PY&_*XeoZ4H4`3nP?Jj_%vEKhXeuJW|b>RF}WM zC}Zol4X?3^&9>$~C+d+96#tHPRZFP*t|2$%=qQ}*3Dq3~bhkYb=E6LV8_BidI9R`tf2t>OoTqqprSKfcdeBI(7+N`J~Z?AKR zV!f%J$^Yn@_&qGKi{q9bzKm@g?c@7ikX5Egn}-z8wyDy@V?fzcvIIF$FJIAm>ydnx zMaWIjsZwp$SGGQ1UxSZ74FVQ&Q1bu!8@eNxjlzH!sV{&qo83?{g#dG#*TQPD`>(%| z{#DVFe5y^m4G)1Ae@>!_vC-=obCZ_(XU)KXL6;k6Y;XEKpx~VqA!dCGR|ds<^{Pfo zLvp9#mWMSK|JL?LCZ921#>_J`AHH|3-lq5*x4%YM+Pn@{<7qTo%pq_-BtO(YxR3x& zn|=9q%<6?2$&>w**r;V`Q?2!V=c2GGD+l6h`qE~W$dlY=;|ssP#s$d_h?jpIx5O~{ z&k1zAZpI^gBg#90pMQiA{>e%+r5`K!oaL7(NZ0+Ws*w-!1xUg&Lp#$p3F;V%U%J?5 zpip|3Ya`AADL&&+BK9{fDw@?fji-O(tQ~XD{-dKIF1(^13zN2P3lsc59GJ3}EHd&I!Nbv2?K-!pr2J z1rShb(mib^P>L525O?&bp@mP*x?6Tj;f5=+jG)V$@z%3((ql%*=_g1jCDjUX*Gaz#NJ z#RRBpMfds0iwdXhc++oJDA7&V;g}8ZB(8%om;_Z+us*Ic8$HTsSPNhW++DAnppY#% zIS3M7^aweeZ5a#LHW-i1-|@T16s#CvsR63rH)IJ3QqDS}WY0kcEP;%p1D{9PMuY%7 z012Qmd0EW!gWw5_L45GnwKV|ImNpX+>j>$&$HimyC8=GiskytYrZ=C{hy~Q+_sGz} z(7{NVmM+2r1{E;gqPAA57T`M@ za#G$rTQ6$bEL69>+)h2*-Ol)ReEoPakGreEf9~8en(kPnU-qr_gpure5SR8s5Ys$x zWX6Uz_`K>R7N6oK2c24bN_t9Rjr9fo0&9udlGuj#q35`*v+Jg<(LPwSTgfzwIfc>! z6YUMa%m23eHpL)xH+V6&V2KGf^{UutENFqcEhChg#yaIv89et+lv5FzViqqP5{M=4 zf){157Kdq0m8OWl@c7_*$Bt;#(P>h}XkVf~0s-(pcoPzxg7ex-3MMzd)=Uc}%9Cm# zQ(82*sFP=a)0!Tey$?19`Z`P6rbHd>h7e};b8KAbMZgE*;HL8v#R!|2R&{V9dvEl< z=QUB=F?t&k8>(4H^jl;=A$_jCwRRP^!QiR^xf|>#nTV{rQJb)9`BIDZG$JVPt@pIn zOdNNBgle)qmLjfrpG&X_h$1ldT~ssRz<%;fsaNC*Ddzq-L&!R*LbmP%llR03=FdXt zfxsIj+X0b8Hh<-fU`U&mQdkQ~Bq}Knsv0Iwa0p-_O!X%0ZJsMnl46?rr7~{T`rO9% z*JjS;l!DADQ4j3B#|ulob70PyKxSjBtn6+OIbJF8$4uqh-tD2Shy7yfB&vsombFC` z*wKj=4MygVCoWh{X%rS}_H(%APm(7c&3-C~n1CX1Pvwe60+}K(u$`h^qpP)bWOwnx z+Vc+t$8vqjbfNXg!gk0;cb zjEzjy;h$w1Rih)BB-V4Xqh@c@MN~(qfc$JN-j3GQ(LlXKer;_X*{IvGtS=0-$b3kh zM(XyD!h>d5oY!G@xopV*BLr7(*sPDUQPw^KY~-^!i*?I^^KhoEMgMT3+&ZUZiAQeL z+D)fqI!?T*&W0>_T(bT1?fajKs2B|5xnAPP(`70{l)yoLWrvK_Y24ly09-l|0J+(= zFQ<={@IzeG3VPj*8m{@Jrz<@xWxNjFWc%Rl5+GPD*O^Y1rSD?<=`!ay4 zq^D$WuU+(1Q|KhtWYXp5E4nqGv`d4PD1|zXaq*U#GwM*T5DfH;>w`m|+48-M+Uh@r zj5sd7ZI1g}V|#-U5fOX}EMKr8tnZW!-!}$RDurcfDo?TRhW1~W{4Pu0L(Tqsl$AdH zJIZ0#4rI>H$o1Rdu6rM^7=0*6T|XuZi<=wOV^=%y`C>=3tulUUc!ZLP-p$kwe5x&s zXoCmF#f(dCOH+t^%a!3N7%b8WwKX+E7Z)4ltHg2moDy{;JG38zRB%ig-Y{S45A7jA z4aMkW8+AC9f9nVoYcPCYe0-?CXAe{zjVPvZ-Q8p(LEU_qdOuBTXZ>+G33YfoXoIV} z7TbivuKk;8kz`_p0;YpY=X7Eb_csh97O-eTVsoAWdrYQBg<1 z1)*-@_sVEs7_B z&oNIHak*Dt-hR+kA;>lmKB-{wDzyDja5;c^{|k1{`QmYy?0ds;fqb^?tW5MbrSo&M zvQ<|KeoE9nE?hCWp;zTQVY-wCDYLSA8~2Ic$rQldbGmx|_wI$hf9Cj(B~d9~ZtV-Gg zDmoPC=FfXz9a|XdV?=pRp@1lB&~hVsGVEdU`Ov*}d@eon*7fm#=2-oj02T5oloWXNpesb+)tka_ zysvpkp7UbZfyTF;w#gn>%Wn{PnSTtb&VDVJEkE%6{n5H~_}jP=iW0qa$Fnn(GfZS; z9vh7x$FGA}2oZybFltc2YKNNS&8Z_C3h9d#5aAb8#=mc)XP73{pw|aRgwJah~#yQoz$?#rpkB zVX<)H1jESBPa>6 zTe{Z-Z?~tq^FFNCtiE@eUTCq#*DS5zo;J7=Tf}8!9GYV_%|sr1#CnV)yPkQRn@dma zdL1Be@2d95bkq_;T9wgL9b~a(top1hB27RGBSl8 z+`nYbr7H8xf{hnFng93nH23lT;=|;l1;k#nm2Z5Y?`Kv|VbR2IwX`^&PhKRh&wE>R zO3W&tlN%9`N~2@fGj&JK(B-4lV>~MUSYf-Y{d9hgi*0L^$sq@lk~C`X8q%i41*`J` ze{{4Qcj)Wmbssa&9uxZ0r2wRiTR*a^oy=Z-HHII{Y}T%4jo(WGkV-kee%-eB0!v0j zoaf^|MR06J1|z9c<8w)HZ-(3bb$|FQm;|E?aDGNPPT# zc$Rd+0=2CzPxIMGMx9!iRFS_<1Y1C*7 z7J}iNxlz1yA$9(2*7@E}^4C|(qAh&mGn#KD1|;*D#Q6S`m=8rQ-~;Ae@|BtuQjH}l$Lv-vf_g$C9A>DS)vb)VlB zKR4$Y(h>9Z^-bdafvgA!*X!Hbo_^rBP7-9P+u0(mnrPqs@sMgVKUg?u^LuTr`v$Gg%Iu>i|5xxbZ|)G`ifOtEX#F64uspXhd)~1h2P=+K) zkDdRfgw`bG8b`*Pt%llKPVi$#N08(=@W0iw|3;TTV#Ln_?dU4FhXL2I3&TV%<1N-b z4dUY5uC!lDxz$cF>poPzPBk;AY{ncNRy4#C3}y*kC3xyD$IRRI23z+!yo47){5|r~ zEO|jy1Rok-!o?Ww%n5JNe{WrHO1v?4n5=;&&fT&$(&U^E*K`l7fC2#LAF_v8 z-}5II!;B6&V2K`bkT(`u|m8IA1N6lifo&6EAczESG_S1;a zpX=_4=6V;ndleYP3E2O;ma*?*cqxn>=$YIJz6R7*W03BN+$t`f1uyn+#(!P=hK(Bv zIS8Edw5Ks9_#R>*6(654Qc3}xAcrQz{yY|26D^3I?tFfDi`N@NCh}z%ips!3hdLM# z2O*H+VErYW(*x%3m_*fph2Yck?8VAMaY$FGjm^&?3Be-}TWLCYNlRd8X!-GD>SA^NJ^M&k-TS@4*_UA6gQ+r0 zBui+}-_uEdoF|TcHEE6mmoZ}teTieA`_ASw4l>nrJ#A{B{EJg5sSk` zLm}8$TuNYp^-BdDd@)NdzeSzYUv8h(5!|FV$&m#Z*Ibil)G-<#9u^4nXZ2D9o zY$sUxI*-sKP$?PZId+)_!@9=Y?$#EsTB+9TvS{&LmPkZE zofSX$1&E-n!vU*%hUBLrTD24tt(KbP>FDG=iL%Vb!=-0HU7Yl{E=GpH=fNNQVK$#q z4J_K7n;e;LV%4Xnl0(01MY`a~;EZexMZ)rehKBDxQ>5$kc790G7{H9tM77<~2^ga& zEiHv;;wib_{K}TNjSX>NOUISALPxKC_cni(+Pldqx*l~$tI!j#x=53;lJIgEpmkx( z5mQxzK%mod-~0Q_+rmtbMa2y} zd2R?1;hK4$G;N&{31%XM%a^lXNRDUy{W4Dfz6`~AI%2;>=on<(f$#hVMs_`?w|Mhw zQS8su!MJ&77)j)iKUG-6oUe6a3^pMLN9| zuh0qj++9iZ#d{!E+HvK{?a#t|Dhug_$_-Hh7)*(>ZZqFce7sPks*VkAM?tOjR}F-E zv`AjU#hP!(>!SICCP!})ZQXZmAAa~=Vm{b{ky*@^Y4k{)3wCtIwUm{eYuZHY@yMRD z1+L;zRY^v&BQOL~>Zi~+8-3=UWuHy5qydq>29BJ^zXwB9HScgD$1>s9;!dM)e!RE6 zO>mnlTsGYQo^EAmM@EvrXKV`korfF7nXZVOQeACRY^K>Y_Bt)hni@xowNs*Tmhpz1 zc*RRNQ)^6gXy@QSScC4B?jODmV~i1$O{CuD>T2tp;$jQp{X(mYRqFr{CnFwX;drV5 zUa1YzDPLT}8JhxM_t_rVO?LV1HrbV*>)oBpZ6}5FA`OnsdFw4h`BJ<6Ft&6MBldSA zN(19S+7%Nu8he5|j@dYuO3Y+^nbW4u&Mwr@JmA#Ti#~N@$c+ejxY;u1nrepUnlTU8 zVYr?dy-DbeE|VA1^IFc2CR*%-#hg4p96c0??;AVUZ%G}CHCfn%-r00{K=hXJ7~(6# zdFxmSiHjY);5X|F3+YRLv%%1BptpYTNYSS3DLD*!H+Fv3yG=-#7wM|>rg7E*q;Ern z3uRDC-~DPx^T)p+;yR-rKLU&Wx~U|)-SB-ZUAzf?TyG*g=d}*OE^YYs*3zxPp|zBW zBWe-h?jg-TzFSdDzEdwu#{{Z(1DMuUym^&l0dx$C|2l?AxO6n$m}@VWWq7iyq8KBM zp^cc|6o3-I_i-Qkq(SBZS=u?veT^OGf^aDw4v|A1G0CZ|F&3Wp5$%Yd)0vc@0Iycb z*u}WWJ(I{;t>NtvS)+}vnXQ=^YCx}=mZPJyjoXw!j3s#Uc~|3GVw%n`p_-~3J&fa~ zdVwDd70SNq%NzYfp$Po<|7|FDILWPF=Z$DEB&@-_hWkbMyc#w&BS+MHkno9TCa1L2 z<9YB~U?z58bLbrRAN78wC5;&^?p<&gg!d;aS}Qbpa9vA5Bp{iKhX4!s-B8uYajGvz|p zGJ5WTiPpV;8hIbGCBAD{ZV5!s3ua1FYH^Zq(TBVx`VIYaW?yng@)CpjO)5=b>^x!* z7^tqkVbnVi7ft8_XW9GiN82q)TewKR6Sz(wdSVi)xGEe@0gF^t(h^|pG_`!jHprOl zALw2(0H=(QQc$3xbo#Kdv7y8}R-~lztioGa`BaCSh{eso%Hk#EG^qxI4;^&gYw;jY z$626{EsQt7_r;O-XmpR&r3BecneU0S;botU)UO%2dnJ-^O0&!JgtE)a{PN|Sl>ih< z!7yY5+~t8tnfzDM!*g0Itc^+yAd_W^<3m)6z(0O}i|;CF1zPxM!n|RxRUY97&-;7# z^`q`DU0q|4S^VCQAB*NW*$17N^Yhu*EsL+dBty6G*QR3Ok2_BV$wpkc)864!YrJ+g z0YvEdOeT9jkp8i@Q5t;;#2rn>`j6HE%aHY|ubo1#mS1Kkr%3Cwj*nFdz}+)2{7epJ zN9Ilb8G)@Ua_P8u5%9Q0CUg^mRYTmn$lmsqz#>hdDM2EHp`4P55?4Wz7CX;Qn9^i^ zAjdgZT&o2LRK&?*ErP%`u>OD7K*XMvmEZDkp;dnIrquS)a5-ePkGuPlL;%G2W4gp3 zK<=P?+lW$F=$)l@ZGbg5+2Vldo=GxtyL}NkR)MK$;(!E}-O*A`!jzlOUv=0 zUn;$3Owh5n3&KXJ*}mhcknW~f$isb%9UGz|XY}u}9QGEeYmkNSASFc_@pO#uKzSUcM&7kOB7xDSBcK6}UuR(yW z`Hoq_S=h~<_knr#-CbCPGysVW3XC|^>@}HH zWU-d!S%hASU?-tUL_|NCi8{ei*N1W6n>@06pg}pwylno)zmOHCxE(N6en`8Ym^ia{ zRDs8QV}sOd`4U2@M9~7GK&3fX5R(V;9@Ky~tgEw2FXwL>mHzkK^(g5W;1|AEM@!qb zSHV2@!ubA+WxQI=&hzYk-a3~ zjn?P9{a8Bc;jF0c#zP->cXs##&%NwE8)qQodmk=D%O`4f!7!5;;!81Fu?Xbnq9k@F=5RzQ3&q_DttGd;HdR$r0`JD40t!m?+po$NZU{C-sACfD#Z)1)#GwbF&d zN9LTm;vPV?ufzwZP!jK5twsYT2$)g=8GE=ly0SX(;G5XdvQiK=hA2OnPF;) z>yvo!+#urecm4!eUrmDFYw-prf3LFop;f%>^|_^`1xcKZk)SsBh@uYzz1BbpsC^U~ zB@G&wraPB}mq9BL!Lsi))K#)R{E?w1Gj8GkY*=n3v^4dN>@6|$B@e5hBl6(7+zvdM z+op`qPJZil2uF(P*eOom0;`xjNh<$j2^Xsh>Gt;9n3cxPQ!~=yP%TOo3VrKrS2jlh z9gSc9DKJ?w%uF#LtKz+?1_mp!&L;fCmC38Xbn%R6!S2y~@uDu|Q7ZyYU()kOmY2(V zji(l~IZJ0DS~dI|bR;MHvB6!7Z)qF|3~~(X3Cmbi%)RvYYU{njaS#eIh_*JY!=y4< zb;P3~YW@97YH27JkNL*c$A+)%Oy{L){YtwvKVRkSps0_Xur|F)@^NBRQ3ek+q0n>e zhKFV4B4p~Ix8*LLDcau5WBOhRi2RzKW?y!vM>6C`d)?H#G_90h{GCdsS)G>~tiqBL zkF1hMj)0r}(jO%4z=c!yjf7wXKiKWequmZXR`YkZXcJ-!2F9U%B+q(ZC?OJe0A9eZ zK01w318lk(olR(M_!OG%Tj|WCq}d; zZV^&+x*ryM#1HDgZB*^e^<77}JD`!?rC@v@KNgume9#33- zE|VR)ii&N70eHhFcp`oa-~!A=8px zY7#4a={)XE6+S(+8K2a-BM~pOT^@{Zh*bT<_8$Ga=n|H(__|o1C_qc-uQAq3FgPZ4 zJ2JW?)W@uP_e(^qCnpnylEPt>`bB7YVykv?TLKPGCL5ceIhJ>Y4M`p`sfh4hC(B)D z{rxJe#byz=EG>*LnhaT3EY}r#;v1!PeZ4mA<)LzV{B}^@k!dQj29Ee29OL4JKCq(z z%DUJ3+_}9<31wjH`TyDvRdb1S_U`4_t@2JY{I=a6tt;BgrVJw3zr?0H3ubcfx}nZ z0jl3JJCF3=lCGFgUWwlIoBr<6Ed`C5s`Wf>K3@Oyz4cza3^r^J)pjm$J(dr-k_q`D zB)FGJMm!WlP8%0mj+Jc`)y=>`G8|KfjaOB{a+=!y1{0V-$LjreG9{KiwTm4KE?U@( zjJ7=98y*i{;rmvRRFqmxV&?BzWco}m|FKk=_~_#0(~6_O5y(NJG4rA(HzLlo&f#L7 zQhL#7ZOS1fucbwZOnNtG0F#2V2My-@{@uIlV}+lp`zI0UvtbU?hN)@{of<7}xtyVS zhk+j6NbaoDA%gEK3Vu>BA*`v#2cEYyB7H2Uk0>%v!f$Pf`yD)tIPBN z6n3dGfTf@ZN^Ui=xjfn?MRBas52?l^2N7xvq#At}^`4xss?5GBzNezvowDq0se|9O z6*xF!+G=ZS%aYfd%KjXtrlnb`Q@qx&X)(`T+&JA1^7FeWo z!5_XJ|HWNcoA7yKVqzXdfhF>#8Z>m3RmNCKu`c1p#6dXEjXK!LO%@23Ht_$>Ac+aT zsa?~}O;efgV14sB4-+Fczmn-LaJwqSu{aKLyNx3vY?P90qdddtgY9DN_jv!0sjm#G z^8LD2LXPC2Q5vKVozjic-FfKlkd!VZrAt7%y9A`9rQ;AH-5}lY-l)I-^L}E68D?&- z*n91@*Iri}ix=I`H$%$vL97f*)6-labDf?*cabnHIk}W8fB)$chtpxVe)VV8W?Gis z@8Nb^Mc!)xe0lw|ElXUUsa$07H74yZ(^MK*7)Wjzv{L%b$QyXl@se+UzlcsAHn;PLUYH}|!-;~NgfN+y zJl};q(+M=xUdtgejxp{Qp=3p&?Ik{Q1_Xuh4$W%nWOjynmEMBwqf1Lf5n7%;jMY;` zT6xNh0(?4_BBbB;d+vf#Iula9tDE_bexT4c+gOwvx~F%%+7C*BivekGm2A5d169<- z#gfqNxZhpH(j~mXxhay+b~B9NhgPKa#~!m*3|Tps$=7*%Gi_XF-NwT{lpCZ92H2DVzFQ9j;^yYBsW?aMX%=&)lVzoF~ zrM{l2KB3XU$Br?E5JK?hsgS(gceGV_$R`KKCmaN=Vd2K-A=8?*oy5Fk~(1&U0FQkid6M82UhGFjMNNPHj9zR9=HldZUENJ9zK`<=EwX}#XQVu8G&tc;qeO0a zx`S8bwWgy{q5h0MK^p4<)#piwQ#kj4*h`LxK#Oa;_p2N?Nnece!%UIIDF}?D$?8R} zfeQaP`gVoccktrtD)Gggt6-L%!=moc$#~TLv5~IU`1#lLox!&ceX-LjfR?qxz;jUN z+y~B9^jk5FdiWdDkTD)vaR}>ceOAnB*?4D8F<^%qr1k*s(*6t5Qq6Meixc6FaNo-nM)Gdhg1VA)n|-*z+8X*kb*6 z{=f)7`(59fNz+61>m6(DfyaKEr(?HUB&A^2`kESBhoY|OL9q1h- zbLRMAt0Y01b82SB_ior;@U%ak<|gZBO~I8DQ;-1PXVn5Jgis}OQxyJ%~s z8G;)S&U;o%g_gMHYx+Md+(uN`7;sP*g(b9`B+SruMjy1)FzL^PQpGgQk40=Qd|Cx94P} z7phc=`LWUq97X2eF@K_bXlsUBlS%1zBw?8{kn4~`C@_45gYfG1`;PNT1~yGd*2A>D z&+5Z9_rnH*@2$|oX2pFh>BEuxZ5rwQGV@K*McYN}((89lmzI+aw!KMo!ECK8@%=bP zap=LthB%2|O#Q;rEMMahB_$Izq{GYp801$7ddvu4aTkRwsLR zE*(D4&(Ei+oqhUQd{9XL?qXM6-s4$ReFV~(?o4C{D=C2mv559zybVV2^dK|-fq|~> zQ1()DIU)Ab5R0i^9@Ipsvi0` zcH*-VVP@VhKrQCy4 zg#>Kt0ArDb=OB85q98A=k(`wTJLA`Fc+)D}$k)0Adj4ya91>&%Kl(W^qYWwOMMgW{ zFoNXYbb+NvWD$zD-as&mhg>*Fvy*EhS?EntsC(@)lL*HD0+dqprBdK5$IQRld7u0P zSyuAR*PF%YTT2}sv$+$fuBw;JQ&tqpnib9u3!@jZ=?Z+wZkqJ(wymb*w&>i`?&g9l zLwrRdwXQvSa7e@>?(gs2CdDNy`{`*z+pu#GQ0F^igg7QWUu-JWV>cS$?iLl`kz}N% zTK3vUFHF=WpTcjWn7z!uaJ(2DnPnS~UcZX>n3N@#0YaII_kdXqB1jzsG@(qjTfY|e zpHq0Jz$Jrpc%HGo&iCv^V;^DXc|^kQ2!FV`HIk=D&kP9WYYKLcTbAx-v$WMaBYFbV zy8EefZ~KKSrC;6B6RolE2@_ea;YaG{tDmeGjZv%Aq^9n@>+U8;&oCCBs={LjYH$DK zyeQI+Vh$k0lW|C(fL@4+m1#KGs>Vf3b3MI4pGd~X+q=bY=ef{6)dOuiDaf%Oa?92y z@vy9trM4xBU!TVn20OD2m%_Q1pG#I4v$yWpa3Cnp_W7WiGK-=GJ%F0f+ z>4b1+RO-m5_d7mojg~!TK+q}kry`bQtRkXa6AcXwGQ}cedymp$$ShORU>QM5Fh7V4 z@Z*NberJMaZJd$m5V{iL;yyHOnvpa+nL2@d;M%#J{B~2c%+BGr@hd+&2ERZWJM}D@ zX^26JH&Z%Dp!DjD)JU7ZGpjyF^)J&m%XGTjsAMy4Ey1|-Efd}yFcYBa(JpI_gYMI` zS3rhtBUnE*y&;Fhx~gf!qX@#jIp5z!D=x=e58K3C;WrY=hqFCD<@jhMo}8jkkF=9W zH*kOZb?G$8@Aa`-V`#nwE+^21CTF6yTs$AR2g@xz-_t1+W4S^ zlBSDQKE(g{`QsH`Yglp2re@lb;^7j(Wrehe*yJ+fX2jumZYVSDBU;hRiH#5N=83VjZQ3^OJ^%V;hGK4r6Cley&5jy@&Oh8i0@q+@u0fFp zU8~vD#%FYi<=GV3x@7qqDx!E?S;`3?xz}UKOq#D9ehD{7=j+b&995|4I*c;Q#loor zN(2FcD_|O4Pf=>L(jb2Sz4hHymchG=tt}Vk1Io6c7r52nl{QKax#KSepE;i&a-Lli z9UD>*r8r_%fu)InEeO+wDm@*Pox!deax>g$Gu${z?tMwr_@^a6-tfO;EsvJ|&0DaA zg=5l3Vm&0!Jrm_;>D8w210 z*zKh7i|}v3!AeZP9>pBd0o&fSZiy0VkHX&UE0q&n!Y@r(_c&@Kjv5-z&5#WgtH6IB zI$N_bChv~xO0c833be=sLNO_mbLi1)*;I>gBYTEMN5PV2%S3kX(#v^xb-2!Xvqmp46{GN7HZR93M73{((=Z958|5n(QOjWt;?&8KGrW|t z&~A);50oSRz9f=KpqqO+>VUXpkUW&aP-1u}dRj!gUV?UC@*?B;y4E z0SM1eW81KW6DrmRTJ&$OZRc5d0)P-O?tPLQqk_VFDcY!7gqFz0-7S4*iH4} zJp6MV%L47_OxG4x>?Rp)^hOFa9;6MW(0r{$<}*hOf33<8qphVM>Km)PI# zNDSX!6j}W=Ol)HEQ$~&L77fvHb<eR;g zz%*tJ7;EqMVDfktSn&5Zc=)iE@<>Ag1o>uUa#=_?Cdeowqv^R?5TtroNsk6N0Dxu4 z*%|QAH;kJ)K3uv^TSmAMEATTSwg`$DvX-5~b8>RmlEPwHiu)A}TQQSMhncyTAxZmt!H7AnI39RLca#s z8}|kucvhl7qFkp+OwV9Z@}-H12~1TzA^%(^xFAbfS!(0G0zS}!#)luBE?rBPA2-|J zcg?~*sDLo_ifP+o>B-qK7cxJ*kqhFnce3MzcrqZk=$0$dm>H@t@A!fCcg0%%t{B%7 zM>`fah79>ns!;>0+Tv;b$4RL6&wlJ4r)s4+r+Kea=VsN`H_Jq}Q<54%@M>7JciV0b zx-?L0`ZV6{;^NZhlVR4m%ss!RgT401yl-AsQTQlu&F$yB!+;fjIS%;ADS0G^Y364u zBwNRTo2fya;g`1N+Knx^90N2!OmhEAZP|e4+WnIgq9CH#7q0`GP4yn zU(XcF)HeYf2EvAhiMSml)-`u)&Iqk z#c%$gvF10gJ1rK5uy@vF_)|$u>)0L>EB@czd-j9|3Eco_sd8ofNW7%+IB_Hr0*8X} zX{LyLvZb=RRbk(wKTq7qYT4ROyYObvXCD&uZnc!}8oe6s2t;aexvS$Fvziz7pv8+s zvA{P&#vObo$hVCyzNjtHlavSp-)*w2x((xTvdk7n{#YHn`U`BIay+h4T{{ z9aDcHQnwGnJ?;iRkJsja+D=U#M80;=m4pL)rV0G}TzDjwBpK#>Wx8^S+U?oI)o%6D z6w?6ynL6VEDhy{Xcv;rdg82TmaU}RPO;-96^^$cABA!wFjS3weS{&pPFp(^4Cx<{! z+@AQPLTt{Sz{72KAdqZE{D`mPA+xwv;O-Y}lje@3u!e3_T_k!~#>8G=rop7x!()`b+ z=lJaCC}|i#5nU0xiGXLe=*k5p{l5yhS|n_B0!TUeZz`{5&yRCV&xj_hrshAzzTIJ& zbmRf%F_`Nb_*B3sqXrJ%`Gu~>YyD3r-SxOJq6 zEx5mb)l2~g)3lk_S>BQ+A}>`xSxuwi{a%`gXHT6WA8OF1>uA%#D@X%0Nw8I0r;tG>$9Li1Ahy1!?h9l8 z&u1EbuIGAwC)~_!@Dpf2OIP}=O86^Q3HLC|%bj!e^V~Az%n}_f%>)40;RXFweRMdO zOizES&rs`utVi1qc*V`xlOedcTw-rjk)x9%N4k>oxs_^|B2GL}`oy4zHe}q!0bDcCzI=C%-YLYKp2rsMOiy)FY7qC$DJSC z0(#V61;z0F)0=eE))@^$s;6M6oAdQm`szbgcICsSHEvIPfAO40R4{#CJ(|lF3-!!? zqgFCySUaul*mYK?+Je3A)Px{H(Ff|d@BZE!xoE@%TP~b0yVmMSOQmn{yX?xkDacc% zLmQ*#T?FIdR?D(7*hD=FzBd2G*W{?EjeZvCdJs6ma071F;dj>x8hlG#>8Bmas&E@F zop1Oo>y6MV0`an!K_SMyQQ@PtKaEj?spsvnl0r~H~RAklJ*TS;V)1G6CqPUBDJS#$e)2yIw^iC_m4 zJfG&_?hC@DC!jYD1Kip}O1^Ep)FV4vzp1MTxR1qkRq$k4WvSzvGBZhJ*}G{O5v;$5 zs^`B?4(?f>5>)?+B5Lv8f$R0_ne2A6uxoF<1xAm|{aLr3hs7nIgS0Gpl9A23R18fA_6Bo?{MMaH_47AQ|(aYOn~ z0wmx4zk{*cdxqp;c*%QZo~0Exw}#B5;}NoGgN(MsuyO>pHAGhblv{tMmcT%ud=n@8oq>@N zrWG|bH)l9tK(HuGRMIfh9+gaILWeRvIAFrIKcKBh5?OW$UQVUMLDo3Ax=la40h6kS zp(ZPH0U9{({kerF`Dse;XIno%@X3$e0Lk{gHS2nE&>-Zj#-thGlM1J>Yjg0pTK}RV z6UP6phzXlIkS&HphN^9oC=Iy6J)>$tQHGQNRBuu1-jmH&x3T>=yv1+*b_jTAK`{S; zSilnprM+OmwLHnx>1=08BX={3;|IP$Wm*~omq9Z}%}jMMy^v&;QBr{5(-L*-@Q3py z!J9yQCSB5y*>FrBaD^W0;|LW2VIlwyF`qjs8oxQez}mLHtbi;; z!UR9Zu6>^;;j_Z+-iYt90SOTAqf!J7Ad4eRC|(Su6m{K3kYn^w5)h8w4bZb9XZ+;eY3tvqW zx&>AWD)H-=7#+ET;3!Nw0IQ;F1Ay5p2drfX&yLhO4ZAp%OQr(uxdjC7imjYqc8V#2 zp9XYBGDisk>zv$JUUqE)`x`YL&h4`vj#cTkm=XpoPbpcQO%e&jAwl`?CB`Cvm0A3E zME$=tbv3gCX?ZzSixoJe9P0QbvQLlobKG*zu^XJ4E}>FVPFS5!uHT4{9zQNj$qK7l z)K`byGe_Wnu)}QXKhFhz1FwaTzW0%r|KalC!w|Y9Yh*>Z$&1#uEOVbV%B%+(^N}bb zaXtR*AD}tw4I4|=6QX%901x2 zD#iYXMxQE)N>T%Xl!YzQ+RPR&)4bxEWR0f^E!}!k^X~3k?G$N(s8?hQ+OZ#qgz;?G zvf%JKv!a7v;w%fq>q9m5c%1^6GFC92s~M2ewJlqrIm(Aw9BH6FPn>;dx5hQ z4co3Y*x9P2i46%021h6Zl|x*=$@({c_}1dXwOCT7wKh8@{jZlqcu5*#xSJmZUqts> z#mC1JGq>~mwwtQa(#C`s`f&HsdHVfEV)k8Kx?4oC@0!ud-8E0a!>t=__~MrW%rBCg z2>gp7{@#LhhFaxL8;!`fX4$tpa`-hi>jOIK<2yUmy)`h^r#}SGQOFsHGE9w52dj*G zJynTRnt?*$i3n;suj>w7Ei)8W9b=dq#mB3?*Xm^I+gD$5UsjF=YuyrDUCxC&GPn#L zxs4wiJJO$`^7(MdKJz0WJccU!^fkfwc&43m${z|M?74yJpCck3gmA|xrtsR9iMU=4 zx(g5~ntFQEXr)?+j@Uj38$9UwdCyc(qe%qjLQ}{6rlsYW@i2^j9iQ#aNRhD=a@k`c zE3T)QODZS}lUYB7(&Q8Bx2SJDOd0sB+=26pr{?5D6A1=@u`9+}^G8i{%zxnv!KulG zg$+f1*%J}j$^Bc-CNL-UOVhr)4lZEnrZ$5Bx~Y$KE-&;K0|xIYB12|VUw&WksNPC!-(_D#S5aP$4QQpm`k; z3?qkx$C!ph3tn%LOse)0+El5N`38?2$s{qg0;ids-o8fz+3}v>?(BFF`$D7SC}_15 zLSw?IdZF~GH8wUl+u-4hrVZt;4zLc86+xk_C4+_otP!0>%KsMWzsMG*2*=8h@?hN}qqtytCizd7Y)xoF{{a}Bzhn!lM&jpr+|B<5BEsp4ep#Ef4SFdN1`4adL9~$-EB*Lk2u;6{h23V})VC+5lyI?tzeM>c zzWq!`!Eg8W);oT88v1ei2b%<=O-t&32z}4)vJ=>rARDr3LG12Q6SnWMT4^Eeugrp9 za68&dnPqQ(nwl_9#GFE99SoU$x6&Ohm>^HLNqPsk@Oj%_F@(%WN=h<`@hcux zy1Y=m8c+I8k{c#*fN)9*M3507q4Qt8g6HEJqG3H-5RhhmGL;#!c77!;7f>MuEnu}Z z0@0m3?FqsMReF_;td(J5180c3p284T!AoVu7{`$?EdhZl;8j%>z~vB}$TFq);(T{y z7M)aZAu^R7-4S`L4h!U{QLg(gyQs)g+SYGE1C@N55dvAu@;SfmN>o#8+KXH}_vf*h z=X|*Ed$_U(`dT)iMLC4B!fbmfG#}+m0d_m($0XBt5Mg%m1fWWzMNjKQwq z&WV5Fd14#X19+GRKc-*~WdI?}oZt$umtMt?mBrz+op0&wB!+Dl+Labw=H>?f6uRv) zZ+m*DJw41;KsZncVVw+|!mc+oI+2+i1j_sBoBv7)Fc#RXrU9(P zt$>>fixpL)c^9aT4%`<8*0Ca6TZ@!uj0UP1pv|L%WP<=fiYHM37G-(#N<4pryw&1IU0qI|3PidcvpeN)Hs4x_RxGxL%l zpWxb;<+s&a8)QVr!^@*pczRN68t7?i$y&5-{>S~pVbhd`Pc@J3&D_9WGwLU&1_!0D*iBQOvJF3?IOv+wg2;TS~- z3W6J1at1G_kBwRWT(Oj?(h!9^ij;s9?!%*J&_0jI5VGGX+|2DyH{IaA$NR2Jzq&=yO`g}UFk_AA+X+4=b$ zzf|7Bheqk&E_O|RYxTNt%k>seEm5n5mwGs^vz}oRqXll1>S*p$p&J;3eQoJH;hDr6 z%F%{Ouy>J3-opyB{+$(OnTbmx9kh&#O$K6<2;3yCr+=e=p#Svy%Ce8pX*0N9nCrgq zPz3J?h&2ZRC0FL>B3VqzZP4OkM&sDzr{rGNUnK!s*aVC~3&Go);McE?K%ZhL$$a5g z&O?JbZ10}mD?O3SwY9afMO-WNO<&B6q$%gx9hSfUzB-w>VMJl4yW)Lwz_c}8uXikT zw~b=pwlkTRyA_ZieU{(zOJX!m5rI)Oq6w$NS!t3%JiihWSxGSUI<*A;$10t6}RYAZG7eCt?%Wb76222gM{^!EDWJbg6>nibA{VSwy=+*VVLX_sr9|_>@nV;A;4p_-A+In}3$*Ia zLRothGpKu>Iz^9Kn+x2XPD%a9Bz_HYBmincX!vKU6`-Y6Sy)JwZMlpN_eX}-@=rHO zJ@)gbIIuPyeULCMqj6ztQBM=R>EUKR;pBk#iT#&7{{G!+JSP+uZ^M*S=!f=UHRey| zyH}4~`F1ENDMvP)nj~;Pe%*vwRJbj74*kxPLGh|8k5yoeT%Zj2k#{}Y8IbibWX{z7 zeA^S{o7lIwQJfk@Qozp!klKR()y1#0wVl|td6u(QhdY4559Iu-;1@FAET<`J0wnSd zun1nQYXXwTqWb!LOP;;iP;v_+mqb1up4sB@cdn?4@Y8!=jUy;{Tz4iTDgeb+I?>@t zR{OQ*;-Na~9K~9BU~E{TS{0eu$Ec{Y>o)Tl9gw~(0^_L~X5ANN$`MomF#wtAT=p?D zVP#~(~?#p6UE8#sRdQ(`3-kasj!yl<)|3OzJ%`U zGtjhnnL0`kv+DxoF|JrbtLT?5+M1%Glyl%3A3bS@zTtwqBbvHBI&zx9Z}-@*>tn|c zkP^aWmoiNWNPO|^BmEH1pVD;C`){@;1f7PkSgoI=1Pl9qrmSD?^HEIl4UV?~zypbU zXRMaHHBP)SFml}-bT`QQMpui>hFHj#A6zs2*5N&{Bg`D!+)JmpVi1ljU@98OiATSN zWb4%Y@?t6IVYIrtDp}3P8-T|xFtGg*Fz#lPMp;P+$}bF-r#BKnA;kFmDK`H;C2E== zuHS+Zlj+G^Gid z9-o|?d|_8jt*Vm@Z9K*8V)5#EXT(d17vy))RE1P!-K*8a!cTqyOyn4xFdJn4JQX)HDRi6!F?*<&RCPO#EPBv3 znq?_^!z{*zQ5J*hmRjyft3S*A9w3g z_CCHrIlolTReSEL!|=$! zwfw6asbi(72Fl7(UfjM$M?|ac5LO*umhL66T!?SsWRtmCK}Q&DYdht%BzzY8_Qiou z8DM|{^a$R^YHeXyyG`cplvK1`yZ9h2^=_5TVk_wSr03AVP&=6pA14hJvND@7?k06X z`Us59o<^#ZSY7qwBg2h~*M1HrnV(<}lG-QVI|g*mA4THVXbtT;E<70UpR zV`fk^Orq-IaA~P*g>L;T65q^xc~miB=|@g>_LFKWYvsJvo!O*otn&o<0vYC3jw9is zwF2T^G(lqmJnZW1OW)x(4@WZ(7ndCTPW3wN7EAF&O&9S*g6oQ8yZE~lz`u*~ulxk< z*-G#S5J1|eAhY!+ibcv!>!p~1L~I;boF%#$CSs7he)%Jv=TP(ZYAekn-E9pdFjPEF z0!J`?914iX=y37%ZQEW?>OGvvc}boYxD$mul9l491MHFD2SMiCnjuUrpobEny)^+kFzkTXdD&TdT1fJM02iFDopkiQP zkn1uG9QB4V@m%#havOkFkuJfOsKVALV)-MX^J0PgN8-9tDG^;T6!uDlcF25X{mQz99$>^+Jp6fp%;aEiW5E zZZmthmIDr~H^%d1Mnd3Va`Q%{BLdvl-~xiUGU3rX+mWo~LKnSOUZE%c$h&5osaCY2 zc%6mIS^?W`bbx0{pWRIqXjPgP+M~3Et@nn3L?9%E=Aa8Z@%-$+AY;5W5)gyIO4! zWFo12EjG`0nCctNe1sovNPo|o+!N@t&W(*dT{cS%o?(X*fA$YI6c-x@%K&T9PY94_ z?{6Rzs0l`k3>emWXlQ6>kInKqdD7CuXn6&N=+0#gm`v}-yD!Q`YM`VxpHmc~*!20@jSWKc(}W;Zp$G?hdcfLUg6we!FArg+r+*l?+V;!VVk z7-g?eu>HRQ`g?aoft7NrvvV`4Wlfoz>I!iRCAEGVKR==T7ZiSSKN_6Y0^O*osecr5 znUTREAd=7Gi`Uec7ht^8AMZ%jGr}a-c`}lk4srbut>C)+y4%w}|Gnw=+yK1m`Y_de zP18s6Vll&HvoT_c6=w+Tusd@v3360NZH8--rPPC%$5)RZX4%+hg=v zS-u?xIshZfzL8;6H)1^e{QLy!`q%?a7{=2>r>B6$nihQb3Jxly8HeA`61a#$3yg zZ}rzVH8VN;3@64_nsu6xjmKD{`A$!_&HKu9!qFh=M&x!VC8cXm!-OHHxnQTHoReL} zQb!lEP9`62h=@Ig?1)(|-i;N{A2jG=fc;3H!ruK$ganwH?#Iw1MW#6$L}wEnne@LolmfeQeWH=tEA^ftEcgr0Ti@Z7#K82(i)qR@YFF z@6@zLL1ZawDc;63;p*w-)q<(9ZcQwTYtz!$=%Iyp;_y2buaY#(WTt}objC_vHzP!f zCeudG+uEjd!8k$oAr=j^^1=#B0m=U)|De2+VXsGi_Pw|vlaW!Pfrn`c<8TY zf8!a71+A{GYNVy6ZcLdunoweV_TjmksTjE^QjI~61i|8D<plDza zB@1~i`Jhw~3GhC!?X}(D8NBxPIGPGXLNP}tqRk*CDNhgGUpma>^PcrNyL3Ff>Lso4 zJs>^|yF1hHHN9s3d3O*cl(ssW%qSE0 zYd=GvDZxG_Y%d_UKc80Ue-78L}H1F?ql160Y;*fZy2&+=k$u+#lqU6bNa#8@_s z4#85f>cZNschlQ5)A^IzJj)PpNsiHE<;S1$ySM{M+>OmcEV$LFcS&xef9ipxHsevA6^rRo+rQLZm^PI+^ft? zER^Ya-+?qSB6$4fx?hTP*n69^;;rA&n3S`D=T`OtyHs?2D?c!K(3D3d6d9`wNSXb; zo;-ac+YRZiOLq0Lz$`Lzbu**+Wf4j-J^o2D=rS%FdATrDrz}dz-pJeA8%Ms~X|4-` z7S#gyM-}7`>}%qGkQab8e?vP0JeZ8KQ>ElpYelt(hC;LLWoSdVh6L^Z9DT@tN1qy- z+07l`I^f=bMTh+v+i{%*!BRiB=iI25xIuv_d~(K|1dwJQdoTcJY4Et-$&i=);b-=r|D#3v z%_b1}#fJ{7G81Yd|OE5qV zHQLG2vWw8JW)zjRMa8hp;Mr-TM#;!1GBm+Ucf(Ex-t735$edy@`yfCt#q{I`Ax-AEsp0?2A0W{c$> z)y|{ncED?ij0&Uz+V8aZ@-;CAw5|s}m>{3oc+WC zy>%l~c5|tf?cDx;6at6y@N0NGGbJ?@8Lte9!Z1a*C8TG`-G`fE{t5rC zhk7OGD@Zlpg6gO+8`bQ47xiQI!ut0`pmffl*4F)8hn<~p>=u-fJysMR83h z(c%12&ZY;3hKA6B#y6Z6j;-soz0LAxBih9K&YwWlZQl-ciqSw5EX@R00NKUw@&^H` zpqLEQzlRGOlQpNMYoom3>3@OusZtObjLI=4N%~SM4-*b)p1>QJfszpFaLA zzH`$aR7U2+#@Ts7mpYy9WG|F;Dl-A8c_(N$k&Hy>CvOC#BVk?=${(s5!fI}wU#D-C&pC+AW zb$uR{5;Od*fgYFPIWXHqZfZp?%FaZgP6_CW_7Y1Am;lM8@K}1I&Z+NX1Php6_ASIGBbE7=~vJ2BymbfJYmeR<+ei z>bfUCO|c5>*AM^jWCUzn%BIpi0H4CC1a-M>C0WnYgmr4HDtZVohrynr$(kVjsRkx4 zQlQe~GDnwvt8l-zexch^&tf?LGxacBFzLfx#r>4E-%1A(QWgVFgci>>Jv)I~PE`B( z8PE!Q_>z~mzU+YQ(}fGj7(eA6hC-*eq=c@=NY!SblCLj!7EbdCIzoE(ne|dT`c zKEk4L@V!MU5XsNs{X{$etq};V`pGQ{vo7!bdBel5f~-6quUi4g|EyE_UJPScaB(K7 z89lb*XTTvimu&7^O0Xe2uhp4eqatyeW7lqnD&Tx;Q{pqGumkcSjdQ1XUL|02cPL$@ zIdFGG>bDz>ithFy8Jb9ctT!|K^`iCgF5jx|rPp>|lD@~Vwf>3Qdg-CYRma<1JoTLV zV3jCL`htgFfMI1X&<`Iw;V-4b`IJj)WHP6spy#~?m_f!r)T@_#r!$K!iwe^U3_M~u ze5Ww;z$L+eS(Ee5<6MpvC4lR3NHA^*Rb>>}{ly>MO1)6J*_%hEk^)QwMn|uY2FO0( zkqO!LMb9~yJREwNXhx08&ysSA1Qsr;KhRGQ~_sQ(rnh7o%UF!#0V@@Y2=VUkgvrtg%fedxXl&)y0Im z24<42USedTsaf1ZWm>m%zrS=}7VWcVOxo@q6?U$-AxcDR; zc(}o|7Ta}_mDkj_Z7xVe7pJ=KyhG(~9`HQ~^F<`TiY^xE{0mBi;FJVrLrlB6KhSp#8U0pdp8qZN2*lOaucLN~)@49a3yf~oMIlOaQ ze%GIM+aIb1BSK)royM+(>yWl(j~=5fUMk#OLpU1^H6(~trd4&Kms+2m>IT88lLHdy zv^gUpgVP>izUe=h|6*z8Wbu4&yA{V|j~8pY%?Aa)(u1!Y5zhzTUor?H%fRbe?68NO z^?QkneYI}RO(a2Md5}JI`X?JYW0Y3(khH?DWL9UE9gk4p`P1*By5Kstb*HOS;L1CK zw86!{Dv?$a$oiFwfG|^~`8gJG28kM~UbL29<=2~?Dp8M7?8huX2&J$}G256a39W@a zc0e*v{$Ry{EkF*Z@b3Z{-oArnLaD-SbF) zOFulLhx^PEBNq+Bc~;Wgu#ixcO)~AGbm7mKfo}qp-k6Wzp$pvAK7{Fy30&2YGI@%JVyWN^Cx z;DA;}#lE)dI2R z2xfxpEOZ$3SiqS&`*)^@8P)d|=UwSYF02Xiz$SZ!pA@Y4qBi#zby}W~KN}RE!Zy$J z9``C$c8t4hCaZtWz0?V~LI4Aa00TY|)nE_IX%bnROJq3fwSACA3Q!07iS55TQQA3K zS&z6i!TPqL3NN0y0{Qd>xeL>YCt$cZr*b3xIXz}SsPrgAQ1|e)NamW<;Baj%rrhH^ zVs*_w8i$R*GO)6Yk-OF1en#T>ovE{qzaz*94&DcRa51glFN=%MBGVHFUFc>M z?dRT3WZj=K4~>lYiP+++yj$5b_P@mK%=)5q@Xphd0ysZ_x6B^>wWF$swp=0GN${V9 z@FSR+|B>s(dm^vt>}+;0nw`ylZSC?CJ(B?sEc_f(vn%Zt>OUj6Hl+UmUJ$wdB|#ZH=H~BZ{|WkDr}WDxoSNG9 z)asj?!I`=Fcol+oM!p^3-0I(Fossy9%P_41(-P)OebN#71p4j%erWIdV2u|rz2eya$btwnopi77nPv_IT9+cN?=J4}0{FaDRfSg8IoJyygO@cZ@$1^Po}O@dN} zkV0Mdil+$;abPCLBR}?<|$Wa<3_;C8+}awge{0*sl8tv z_cdmoo0u9=)@Akf2K!$@tobbPA_}pMF8%YNO7d*3_AN&9z{H-)rke7mn&PJBnO*}H zpO5GDZ~KRHnEe$j%V)#DdxIVSXHZ=SnYhSMw_D?3BS|ybyxI&!UT2kp&yI>v{y@HS zlP=zT-x(X){9ee}bl;Ds*SMXUL*Ki~uiNzr(MLMUhDt+uSWW^_1OEuM>Y2Tl9|2T7 zxT{NG)3~ZS5|fLf*7EdW_1?#|m4 zsSf-XB(SLE#4U4y3J`nj?ZMZKk@BHLNz7(6C}@s|h-n92UKysf^`122!S zDoApMS{09^(EWdm0=O@f{)f$8jdpu`7K)cx3>mnNXg2E=lX*Ai%1q6e6Dz@5bV!@% zKJgAm=^P<5Jo54K*~EyNVT$Ku=6px(p#5tpZOT1iod;9uA$Bem;00r0Wf@6 zc(~^_*k7jt+K7oVO}wQsVUZE<{8jtt$ zKOY6^GI~h!;_)6JY%w}IR!MCMjPMvu(>o*v{hVLaZkQR3`rfg!$?1fjtVTRTB1Rk< zR_D&MJ-17qQK?tz?YiFEIz04ni}!HV-QBLknozJb<2xaB=+}l1OZN)ke8r@_Kf!(T z1qy2}MI%G)K5?+?xy)Ag75BeYB>#UehQv*nC% z5;xZF-{d)C3Y#%yU%%$XJxb8j*3?DlLtaI3w#N&#^r_@m!dA^PpuG_@>CmIPX!Y}3 z{!hH+QX^)2KeGG9%&(Dx+Jujl4pWNlmAn2i@I&cYhT=jVzi# z=I7amA$DK-kY0&wv&^)#6$8%9c!k##A^4+eO!*3>iWp9gvqBqCUzL`dKSsq3M_8$x zcUAV>%B}XonoKO?Z4Rufw#4Kfy80T_(X>KjWcv9&MInndAc}x0T1E7_^3>@g^8XIv zznw%!%|YY6>X=FPnhVeRfqn1JUZJLyY44EmkH8=`#JDNf*4GCz0yy5^43rBOAMWrP zP0Y>H#j{@Sl*M@C_J^zz3ibCIM#E_e%!ci~VTmwTJ){!;6|~56YK2+X(JJxu|NC>I z5hEV}yGc9C zey)w%6lfr@EBme2yXmj5^?8=m0JDBjpH=iE14DON+MVdb1A@XL{Ug}^zhw`338L*| zQMkXkXwX-;>9bkkdEakapwRP?l3FGkQ5DfZ33oI>sz7J!# z`m>de5qD6k_~j2It-Kqvs{G7y#0@daJ{=aiEkM+yyTdj(@*d%Ir+*+CMf1nD4@B*c zLjBvpE4EMN8ykAy{iAxV&Eg9-|LrGN?Lri~%H)G&#P3SXhABvjRBNve?)O_~Z9V~} zjY&?mtuNBMvpr45N<^>bi-u3H;iLAxTCATe)KAA{bRUSuqx=qSLIszb%0C{3(EIxL z&VPOnOCC8_s^q&I?ft2FO{&b5i(>}m9;qr>+C1t2>otZzRe%z#c?-`jq$EpZV^KAx zD;3ImUf;$&rcWuea!dNs`|5U3$z_A(T!!A{pt@D)A5D8a3(KkvjKn58&@<5lJo$QS zto}_S=CS|vI282<43}wrDRJaDDQPJ7NkP_V#EV7)?^J_#^Qs;T2$q|Wb#1;3YTt*7s48l@?9kJXO)Km4EJD<{Otxh--Co`C1cUR>-Q zovNPj>S{+3*sfJt82NoB4CZ2lO>AtOI|Ez*hs7>i-AP7A?lYl%&xeb+g`i!9d}SDx z{Dm$0@y_mo^YcGS!0Z?y39BqKP=kR1qddwho~j9kmSwd$B!fN#SfRZQdOQ&7|1L11 znFr`$OT$p-s>i^^=U$rG=Q0U+^iuc7eS^`&F5-o}{1qO68M5)CyVw&lMae-&4XIdaR8 z87^mFWR;*I)4}R}`#E4c<{cFDUo-d*=k37oF955M)2)#Prd>hgS?&1YP5HB8?dqGs zRHnVI)(y2&Vv5j^`uB)l8RHQ>vx{m?)Fd)}$#hTTHy*%7wmYYwg!YL^sWIf(_iyjv$p7yteAx~m55trg7?`e| zs^2(_V6cTwHA=3=7!XMgnS ztMjLP_02(P66dpt-3!4d&3XqTxnG&r&Q905UOX?}d3~X6CEKkc;cRhZVX^QnMbG&Js;(C*rk`*n-^TyyaeTA;w{^Bzxa`bG zeVzeUKgYa_F2_BsW@NqZLq=Ld5jkU(fyv+99r0A-rYp%k>9&3P+6{}wRmm@fA0ru4 zw>s^KT!hHfiYW52U{wr{pz(|)7%U|uw(jvkz`|UuQZFMVF;1pP4l5iTo3Gyh9GO7K zyO76w;om;A3Q>MjaunQ4?q2chH-lji#EyXOPOgic%huY)zei>m9p~aCx1iXlf-Z6(f;pU#NmAX3!!fpAXz6fMQL^ zQvlb?KOQGTShfno*&ItnBZ-G$i07I^3YKn6q&`notC;_s>~EwO;xxg(Lqb1;@RDS| z@e9+qVE>E>cvw%{PFu56wcKDSP{l}fedX1No@6^bvTe?a1umySYyihS0D&E6PFP#M z2`g71i!daoe+CO3YHl7otPVXEm}QA}dKOI%g3PyI2?Q71>8cfa0M!p(26V>K*HR3f z2Lw{SuL}_TYfKbKq$LAzG0_uM$QVu7Qo&R(=*`6W_t;SEd=re{`eUBJ>2lnx$YX>0 z$^nWtIaudbTef+7ReNV`NN%}YuM3ELGP|vPN)1Gnc(R z4tq2y@g78!AtjC~5&1;&m=zJ7XI~!8XI<9CJ=Xd>Zh4wcTC`u{8^1iNPhNF-eI`@> zr#hX{O&zmN=Yti8IBwVO>QC6RBKooKA$u^}j4FOq2kNmBM%#65F>9Opu5-H6X0z zZWELmaP|fPWeHOCzh?-O1XDZM^)RzB7J5(Z+{^ubk%3bmyz~+cOo3&7nBsfwfy)4q zDMPj~%jU9zei55!vdt{n1QI%7An^1)@#XwX2%aMku3wj<_Jsqw`{~1V)50-nDoeu}~Q zdTNY{e)b~FqEBXKC;dx0yNFt6%rT19qTPm{K@q(-2ih=l5}X{uK-CxF8yscUMv_gb z;K4hRl%jha`aDkBpp}6AY>Gm}KRaZo=(l+FeW=k&H*I|Fec9mv_blmUawDlzR@NJ0 zbl%}pJ=WZ*G5IjM$q`KPch*WB2@G*`+nS7uz=rf;d{>L(uzhx+>f(UJ)%-BHE8MBc z`qa29_wFWX2pw%hd}c;rY`Q=Z*qv8H&Z2+=vIZ{hm@3}L`L}X2s~)pl8TrW4o0~l| zE2!d4Hkne#DpZfVZ>(cCPOKw2AWg3xeET99mEaI*OP5ktGMm?)lGai9H24d()SyD zh&mz3f?;_wC02yjUZ9X0bwAt0cZc>^6u zZ2q@L8^L&87cC}*DrV0SRm!NpNo5LKJTKix6Jjt|j*1ULpu?3+5K4>xq)ETFbn56( z849E;PS>bb`1k!c3r<_rjR!YjZu-{DeBLI3J7t!+yFoW0CQ&r9+_Jy`%5tebBHZp> zv5!g1S902}I`vvjH+j)oMBeFVoIohev8#6P`&ZEo zC_X>9dC>f-edw#KndW_o+~H)uM*WzB^!#tMc>faC;L&|5-mOWRTS_$-10ssUT5?Nr3eQFq=@CcK>G?%kw{^9ARvWOv~P>dXCdZZ_)1Zq|mL7m}e9| zcy`utTENresF?}aiY{`nvT_A5;iUK9_L3I``pS!|5NQ__!myaB507R|Eq#PDI|A+H z5Eh2px7~b>g;&fJeJ2Vs{09v6`wsV;%-(PrJ=R)h$(K5merw{WQyblpDT=_6%Ji*O zmpfdvIjP%3=<1O~VdX@MSkt#n#p}HG0cO(?xAI2(^Z$r;n*U)ovtPjS7yt)@sk|!Blf4#^TQe`)q<1x<3GoIw^EN)qMpkd+}?eQi4<+ZCD;|8U0Idbg5vSET7U*46=Np(r*%^k{8QuK61u*9KuoyS zR7qSgTVN#SHUbTc!v6bp9nHRsLa$@3tnE>mwBo*_&fSt+j^k2^x?WqV`8 z#=fecU4`l-2&Q+uf3viAd>G*hhAD>Up^9NfE|u-Jjp2y$1Zf6xY24OH}CMF5) zH?s&2@QSzZ+CJiv1CKtWZ~?75b5~bKq)i0!KKr@d4$Pp0D>Wt*z28eZ7u{*X?%5Ms z;~tva5Bkw1g|WDv@IzE9Blj=&`l9@e-a#gFEKBfk5^es{JgNWRnt@`s@bVjRF~k82 zXlqk1LCl5ZY@NN`X6O9pRs!Fh2W2zEP7Bwgj=vyOhAj zf!1_7x&bf;DNa~_v7fz#p8Z9RaqGsMn}W)QXyH{u6WbluQfhqSw)|h)+l_- z3j)wlE5oIv=YvJP zmm8*j{T(9#H|E)v+bmf%-j(T@Z*2mL=kW?d9G|egpjqm_`!sGT6$h4;JkR?RN`=*spZ5*H;y6C-RXsbL5ag3U%?{1AL$onjbBC7kp`Ox7Vf~ z;_RgkJ-GF5+!#s?Ig_=R7#!vMbRMqS;iGI%=r!NNwf4h=tmkRQkOv=jURBkkiH&bZ z?$^Vyg@t!#4U0F2o(FpaAy6%NkE7Ak%wK_~3YE{P=*-Yj#>Eyc#dZ}73$Jt-$Zh)9 zfA?3!C*aa7^vCh?O$>+bO^?}Jc_F}S`C@eEe$}TOap$wFtg0JJkV+5W4>OVwq4C|y zH*_-~)zadSL~)QFyHUSN7JD?ibtL(BOM7z~Te+={48aoo!oO_CsMaYm>jLp&CzV^u zhlYkog-!RnLmpG%_gjm%mw=DZci^jNjs#J2MHZTBbmzl+SZ{KhmjzYPX6ED=?c8Uw zb$)>b%8rYhD0|rzuA1uE_EI6W$B+#!-THGr8$!@~-DJA3C(OFkYN>Qme z34zB8QZ#F@nz=)wp3eJOaPH`dlwJybW(i@Eyf$yR&H2bB#PYL^xDcb1u;Y=wgYxe} z44G=WZyeI&CKj9VRsZ>v0-F0km+dqH?0$}$A2D*z!#2|UQS|1Pw{WjGXE7?^5q^nz zT>5L@L?3uu+zSi=e|6T*fG?H|=DyR<;i#Ua`S~tHy8$+NVo~zN;`8qy=LjsF$RzW^3j`AS6!E1%*R1- z)VIR365I*DdZfr?uM5LV-f2t-f0~woEp9%X{Zeu79B>-FU3kxtLVIB-$i2c1f zalF9Q$>0{q6eAJqc}(+gD1N`!bT|J%6da>jfQo}_r6CgXqMx1mY#W~uCfyJbBfSp) zuu!evu@n(X9sQ;XI7cKUj@n(h>7|vIyR5uyT)sR&2iz5<{0R{`p88IFK5tH38F3;r znQhhpV<`J`F>YyD+3JBoT#cX(Q+Vz80WK*Xl2DTk3heDsbQAiH*F* zq^&5lk9tk;Vb&ilMpocb=Un|%I0T#hhVi=Gtxyht&?fweczc`7r&canIvaMd$mo=0 ze?<&;|ASA)7ft0Y=mY4~w6_Ckv|Q#v7tnOWgZR3eW7izsTC>d2@^ zfJOpHz(G!HvJO!&qN*vvQ%C>=w*n(bFbCvMxAb1{)eAEOYGLG)8Iy~U2w|20m^6ZB z_6PsDPYvg^b!!JEM+YtE{Yrf>;+GoE^C+4#jNU3vRZQSDeSDJoaGM|g(B^r`_ApyT z*HTofEws;IvKwke?@?FH;Y6$m747#Hd{pgtBhotzcVSA9iqnFEQ@g)=t)BiEM9cGU zJBW+WD~ylYyhSowbqf-fyB=(=yPNR5qY&(C6_*?3#iLLoqeGh%gQiIb$?uq_o0`PpkY)|=~R9Ru-Yj_IRP z_HcYEV+Cp-_7S{H!S?T+JNocZ<8NX_Q))%!?Uhd|=}iR-gaX{!ZAdY8YCwo#qh>a4 zyY6UM1v*>!(=Pf=@=e(6dHbc^Ky~JxxV@jmn&=g%Z<$#9bX} zb7%a*-K-#WzO&cL)Aei>pCI6#)*UAeQJDe~_{HxG@GjL2J>&Qp^>9j+@Rz8k|if^kXuQw+YWpWCWRkMHk z(b3^^CkwYddE)H(QAAKlIYwr-&w*26*P2ufmE5 zR#2qGRbi>wERp0WJ_K@7Q9r{KB1rJ7SquKCF{)Lf=;xxjakZR`(OVg@tDB{}vbL&e z@RG#@4=5g78#g^~kG1b6f)8e1k16&{ia2nIcJ3cI0r)Kb4sJV%IY4o%7^6U>z}p%J zr#ylwEkJz~zTd5?qu)q_IrT416yY}a`M>Wbz7^p;p*L>UOOGvKV6P`|>C<$2(jDH_ zKsad<#l6z5>t#EX&!xru0^!;ZQGxmB=Je)EUYhALvZu=1Xq%v(pW0s$V?NXBj}kd1eQNq+eswhs)j;`@GWl%8CW7e*0ILadwezW6yDpMEzS<1|=<8Ttp$k?@Fn< z)OvrW{O+xa75*bG#6sl%JWM`J(U&G35%~QmB^((WCyqzU&4?me^S(&z3O;GR>b?3n zXTK9kLp}Q;z>IbiDXsk1uiZ}1+wi8l&jKfGq&IP;YJ$W_9rU(Va-U>I^cOunmpg6_ zh8nj(9=mZvftX(Gw-&HvKj!_B+IK>6r`dYQ{A`Es@yt{S{M!zo`F>+2{KDRjVT0j$ z;UsW3AaE7^u-N2rf7OScC$N|I6;Uam?MKq33hTCV;^VSe<4v3-gU3v9R>G3}j!IMi7$$rBgojV23VGB?)01^W`6opotbHH9{zASrhU_RaW}QtVUs2m<`wY^wS63r{@opQ zer&(-@K4`02-KlU$9c4~?zhcla@W4*zOKG9-*s2$2bo#(&ldFlBXL%}kslEh!3=nX z!PeQ8{fqyqCvM^RPdOebaMIArQKL5ka^%c%Hja^z$nWN6lCs%jVYY;OFT_;RP-L`# zRs)#r>%o78>pQCCZ?LY_f2}KR;#{epAF4#(lEGq;ND|ibJ{mW;!$R@ zLFzCEe6PSXnM?(hEI)co1B@WuMPu2pr@GiSB+@hr$^B46?(~(P5<~{2YHmF?F}5F* z!WgnX?O3lHGgRnW(%FD30um;!J!Sf=HKmb1MyXUyd8#t2D7?zH7FX*RL}DH$rU)!& zOJ1y{d6cU4kTq$ZE2_;FK+dp07)s!4kN9iV!nz%9%KhBk5V&<8xdfbchnaBY{FJ=S zF1MztSKe@VlgG-MxXa>m$_I{GYF#Wli3hH37nB!hXNa#^&zs+`@2rMr3j{X?8Y#lQ z20pGVeJCKl4^h4;GTwl{I?K;rh&&ivz|8-~gXS{lG(m_6u)Y3HW@>WOi#j&(o|C2H z4KWj($(TsR$Si$$?+ZcX8{vTSb+z=aR{=23Y1q2uKBN$UH2HvFa`Y@X8XAn0c9EYi z{8f@6V+k>Pm|Y$K_a*}!o=2Th9&NrsuK^QWTCQA9S~+9`vnC}jRps=6Rkih zTF-pc)~PD-*K>Cjl&2;om!QJQFGilJ&x-nTGQhOhq)qip(T zp+CtRKD$Gma}+Tlq5c>05@Lpe1uvrI)dPUzI%Ykv7fWbDIQ}D^`f&K<*_zXr$K}93 zrUq&NlK6)tJ=}gGLAd4T)UD%X5tRz{L4-R&5me+eu^2ben2^3M?0!`ZZhplNtxE4~ z*yB#@XY9pvqrPSYouA%+av*7Bl_U;NZ4RKC0@ZHdr#REq5s(Reld!B)D=Q7 z2;9&EDLI~yuK^fUQ4=$OcCyU*{GiZ^;m*R$%maR?0tj*wDT~Rp1iOWZ$VU|zTk-m_ z%a1hvk|!Mh>DL%!_{d>gm=UF3BzmhbV3&&|zW_E*l^7i2`X5uwGiJZUSMYw4KllIK zOtFvH5s1C{!bJgHmp#;Pw=_i&*tn3t+kWj_#Eljbd(3)rQkf;uA=#RztnFvXSt+|I z*bL!%hV-lbMv4!H16kIa^HcZ5@?WTDTeL46&GO&gedVZ0 z^`fPE_ANlYTX+t;L|+Mz^^s?LjHL)-;G!2vuI2-S)W3M+f^kpkA7?2UO7Z--U4+&< z0Nj~|Eo5>g8Y#AjJ`t7ljxli}^zju`7N1jJ_%k5uwqVzbDWwz?c<@=;OwM`CSLnZR=B6q=KZlFP%}PgYmP!m_TT4^vKo_TK60Hv&yMheoxAO zH#DG}h=-TY6;DFt2RD3&jmzR6;5VX}5@%n5PsL9q#G-SZ*mpoSvpjBK9pLjJfV<<6 z(AXw#1oB_%^Dd>6poE`oL^npJ{nb}Z2D4`mmsqUioB_p+`{mOQ4DXeZU3nekQsR4Jmca}(A0QI^8J)|yhqg5ZK?2y-}3w#w!OQyU+nH)8?H1PyQ8GU z@=-08LDg*HALHO_7=97DMY7=w;X90Q6EEnj@E`2=}IFv8%@>g!Hl;>+h6jTkX|MNfGmNSuPKJVgqy|ls3&Tj)UfSiTC^V;RN!QrwXoTLAzZMi)aVjrfU zi6{)ewhU%b#M)2hJR3&kM?&v*nKo>zSdB^x8Cd3LK>iLGdnzk_8qLlegMnu+8rVLt zvF>4b$Fz&W`h1D`@CpVK*=F1;0xnX3n_KeW*U?r1ty!)x0BLvs18HlK-`|cri)g_1 zFUJn%vQ*1tR9i&K$m{GhgaVo-VS9JpwJ z=nPVUfpT#6ImFyfeu~-Q=(^?~H7R`~eucYPD5024NxU+hkfPS=-;74C)wCr~m1VGZ z+O#@7e;1C1QlU8yu>PpBK56MImyqAyx<7G+5LNRcpEQV(vD5RhN`{Y@sY-E(@SR*( zHO%!?f$w^s@4p(Q@uMSm{q>h_pA5=DMY-Ik0Fvb6=br+M>?y9dewZr3d#Xht=%4D? zOD{S@r}u;LiVuESFVA>{U92K-bjW|}P=mThD#e;i?k`O-`s+A@tvDpz5OGkhI zKCt@f)86W1nBP}_S4QAt?zF!(;uS~kkvZ1$qVWfxPag}X(WsF=PR?ENGOK0XqlewXE>J;N1{gc0@Md3~`_LB-#7X)0#??Ceo z(r$XJ=<~J~e~VD43>c09I>vsa`wf)o{Tlb<(siNXQ`~7l(Z?x20GU4N_2A2<6n!|~F5&wfokvhqos zr#8dv$sZkwH2AcTE$=Pma@*S9=_x6{StchYxcNDMv#|2cxjt3Izc@JH@?3g9G_A?l z5dWb)-_$4ROY?f2rPP5cvSxSO=Q^x?v6ldSf7ycU_%{Nu3eQ?gw7`426>?^z zRJeUOWOZNkLpK@}lT z?b~X!IdR+)uk$Q`Z@RBljxgeV<6K*maZPVIGC)~Zf~Kpe=;(24Pbo>b;S^zsaiGvE={-%^2Qf&eON=!h@@#P2O?lb?4FV zDy;ZbH7!s;|}u>lt=p;=^sVADyvZL!t9m0{u9$M8P`(CfX}mn{ouhioUxl>j;EBy zhiz{fK&JIg;aJL}?ZoO9E=+}4ndPD-LQdGjWVNzc7VETeYV%Et4I-%5Ll zwRUXpIk`TK7hdAu7u1}@dE4JEO?dCg+>V)-qT&e<4X`zQ{#@QbNg3^<*0giFz3V@e zOu*%~+}drOCfB>;8QIm;*~TTP$jo8=jvP0~cjlr@%@4yx-=d&ifDVrKb+lQ~EM(D( zBRb8hc1=?vApuwTWY~_EF2OefJ3pYrSM-LQL{LuRRV*B}FEBMtmgwl+wl9D+V*f5f z8;k&NgJeLVlvZRaY2m{wzDJqcFTZEj(rqt?xiV+p7$!-$F8@ko?&6lB&5V!XRS2}9k_^=V@#S>a!LiO^qHsuh*cs*{i_AJJ$VS>Ir-PS zM3Wwv(BoEP&SQgGR5n<{6oM{Cj0Un2a-}RGjm&xH${iXE|3l^cE8SYGb_aJJl|pDB zWI$yTQBb-%EfKYyl_5uvU6Gg^W7c{QzXzTHJx(1>w*6QPKGrf@=$QTbo-xk9+G%?( zE{)ldX3Gen>C+{uFz<$I%F6}CtDC3ROeOqriXFy9FbMF2rZ#3vr(ij1bbUQjbaqy$ zb+BhaELyv;VQB9;VrI8(bbIbsG&>JG`m1;@qw)Wit5CsYM#Xy5iWD5JYY^bJGn#qS zP~6CEyY{#Z%$C*WbGtfjPXXS)`~^mSxjwNmN|mKt$*5yqzMN0uUhM}OgW6leXn(Kr z`O1SGH@BjkCQd%t+2-~YY1$k*i$>*VILhQDPCZy`{+`q!8a&nneU_M@7+~ST5*GQpknKN%gQqXaXbyVa3F_ydp9?r~^RS%xU&LOVD#6Y#~LIyeWhT1h%2E z{_u^D_@Uy`z4kdb{43PIX^ssR4QantBnz{9z8z+iYA4^5W6}Wrb7D~kDb{rQsSMKn;0VniLvMYu@<1V=n$skp zR>D`+HD!qwj7P-P?mXI#L^=~@D{>@B@p-2x!qOMJ+9HVX1NHgK4$Nn#8s=6T6T;_k zD*M$Q9ub)2b)I&q0ZF)qQ-xU6s(%(kRw04pvc7~p(e{N|aEt`*eih%69H`KQ-F?es z17UvZ>Xt1#s7Vsb6{EP=qNcAKlD?lFSf{%PcC=5KVYaoPYSc8kx~629dUj=Nff2|0 z8fYp@O()P`izMKL;!^433crQ9zOl@&i5sWv`SYVOn&aOfP7(%IugRLCs?NqS}An_ynF+=)#@nI*9X`hcsx8BG+`vf(5tPH7R9cx zJr{!Dq0j77&F^m}CMR!0@|>~iQs=G`HFpbvM~DXTZNguuyL%4?L43B%*-xHDP}dhw zpGZhk54hd0cie#)7?JzcdgN!LK}|mUyK9k$iF_;=JG%+PJ;Z<$oPKyEou}tpanB}R zLUn!(wY=DbMVsiYXnfau@%+1qCZVRR?+b)uv@gSoQ1>@THyBvpX102gqQvq8y9ka1&|B@N$~ zHAEB%U_RO5GVUI`sx#&)jJ$-Ld?B!EH|^3cF2KwuR?V<3T;ir|XX$<`j{g?3{MDy? zO1%lT3Zp7i;MGR{{yTG>uR00brfKX{esI09hdoc4*1XtRYffqCU{smdGV7U@VujYJ zN1_QAIsuixoUC8PGhhbYtcll(JL*A1p_Zm&&}YDuDat~p{^lydc3L(@LJK0B)ZWmF z?o9+QbP}<~flpR67FIVa7%TKv*SzFc2jg7E){JIel7Ewht-Agzyw;$Ji3#?F#YGnj zogc3H&NZ8@BN;H+VMGMZqJB(H_Uy8g8qvsmf=?!HyymZHi+JW!fN=oftuo3Z`rcjG zB3U67*wS}kno&pw0nTJ^nE_467w)$_)wV)zY_1X!&V|yPtnj4}QMxK^Q0{Qh zYQ__cejO-;1IM3TWC zCrWfoS}v?(a_IX@p2L;kxNxA>U0*dC(h}fgWqoJAM<}Ktjk?8zpr?3ORy2Y}a37=H z^m}UD!!gU6N=C3jUWwCcZ+NLf_fYs1_9n&_CT6J`?`6~{Nl8oGhrGpw1@`HYNOT5{ z>B-oH&Qm_Aqdt9w4k>E+;jz0YxQ2VBEJVRPm9b#ww$it&*3MMpVUdpQk^ZYuZrfNb zX$)!6-No7-R=L$p##$K_38bN`nyvc6{T4qx?0 zNlKDSlo)A_YMAr*&v|H?924;Xn~4(cKv$*lxC%RZ7pa(4t9hHb;xX(;%5P9Z4|~!m zbi#?Jw82$yKa02^BL&EE;up`|T8=hWg&@c2Hq#^-O(mC2_jQ@11y{=X(}A|r(lHV$ zb!zr(+^1|M3O$O3*(`)o4@C*u$gs9S@|aQ&RXvS1MBKhhm3HE;+q;c39~k3rKZgf( zyxC9Tn~!sKEhU+1hLcjQf4FanV|K8yE^&w5wdui=g_{#EILW$rx=PCk0M{p;m5irHIxl+xV=^~;$Exx4DU`^! z8iyS4550fpE3$BeDyqLn;z1REKycUf$&H@M$8*{tQthc9)u@_T4)zQF05Xb!P1`^? zH`M%$43n~QHi4&U68>BPDp;5Lytq7F4jp&iFc}xBXdg*-MedCkAx9d-&uF#%Tfd3Nq(LP4C1ZKjR-z`IINNFl zo?7_s@6tQqv($Lux7vlE{ky5@;1<-S?#G!r{TW{K+g5j>oQq6xh<}Hf*#1)hCa_;- z`~|fB;2s{Eg22PZR{lqc0sjO|CE}IAC-gP0a4AxV$J=KWKZhY{Fe zi3*dsKXn=LAXh2&jHjMWvH{IE(cBw`ITH_dhD|l}^8PtXJ{w;{{+uaGcI^JW0nUI} zQQ<(CX`_tm&|WK`k8>q=dFHWdp96;(e~*CK)rP2Wd#}64d&d)B@WYY;V|resaHIV! z{TzR9Jrl_f;^@&h$$BDhg#0eW8wrUj- z1WTXVcK#ra?e0Ec610({MMi;Fpa-a4b}q&_7srpRE1-eAxjkAHX5u|;Uclq#Nup*B zLe_}yUW{13sqwJsgSGIL2T@wPOX7Tw&EK@iQU|e2Kz(viRpZ1XMEVz1I{#DYlP&X! zCy41e|J`YVcxNZIs|t8-4=?_37D4^OTxXR_qISu`1S4|QTo`S+5v4bu+xRNerOMJ* zRCCC_<=EVSXxNS6t51xLu}{vp@PebQvTX9&8ro+3iSTTCqWRs(o{Cu)y@uqR zex>778)R0HFW$wSib-lxbiZ83GQ8#|mE}fH)yOS$dqQYg#YC6ys=C(<8^J8sDZeH` z^#CHin{f6r=B;VA{GG9}rPYEk8~ZMqtQ3GUK<;Hfe~!2{R~l_u{UnLUL&*XbEMtHM z;!!DL`;jZHLz|)ZJ94)H0K*#@^%X`(`-KGt3T?Kx*Ov*=_!f0^2zgi*jTaRDHrG`z zrt(705-nPnOG#K?d|0=ePs#Yzf8sT)?1`;9(0U!{<3mhIBSYl2zwD3B>jSrWb3IcG z#l@?2c@@tz5l%7H{UsN>W|Q)qd1f($K2RQtzyABY_LnlpZt+f`+F0#PmP3HI zqXpeQz8m6mT2718BCLIwt2IL?(yT4rZ1vl1tAwEB#XMtb3>DLu-dT72I6pnw-B*4U z6<%?V=W!-MQopuppe-Xls8K5%sD=}!DlWdO4{Y-$9??l~#HL)KiCysUGeuRE>)9-c zNQ(E&WqE~#F5Gc_43k2F5+biTpG9@L3lc6L)A|^6J?}DR3<`5&S@VL*nD9m4eITA@ zOw=BdqZYZS#yzdnN?NtehmIUW&!(b`vUVpB@+Weu2Ou-%?a-Y?)5U6^IoXrOL>I%x zX#~QFxM6yP5q7mgnTBhjj540-uDwpxJ`GvW!Aqf-q%F7ybY{5x7;zkt+j*Khn?rJ) zx+W@^075Yl$yLZ1({UyrqTTR4tSUQNtuqBLS%u9NK_)_Qupg0cfuEm*hlf@$1Pd$J zYw0aF_mu12jON4d-%Bxtijcl5j;1~qh_xKyRI3MB+ zHJxR`-1a%BX$bd7e&7WppM|^AD-@;s`7*R752R_GY<8V%*Rs}bj^{>Z4Dq`zrx~U4 z-3=$OO`+i-tryH_S};ABBF`h6ad1`cvCc>|i7fJ#Ni-PwF9Z^C3+aDE%vUQc+$KPj z1ANf!^YdFJSy?kO1u&~?KF;bLaT(00a!h%TGcjba#RWmks?aBDUTbaVN&dI7J;dbHR~1v`W*SF>0x zAk8uZWHTZy;TDgmYngJ3x(ntH+hO!Sa_CvilUdzFT>F zp>(|C*LU`E3Pu61%2t4`@6{(J?SKvORYVZ5t&?R#55kNlA=F34cN0|zW+pHNla?7Z zfosK;#JYtpPp(FGQ6^`_@Ebm>{MrodC7ck{3}dJ(95&X7hF(SC@j3B^>z-E4u=Qbx z-yl+1R#{Ovw600tL{!{riFk6PlfT!L8Vzj~bBTigO*6XT67R6np(;7mX9as6DA!J- z==&lPaI#bkc};1}#!2qQC`7m-ESOC{?C84Ud+bKiwBm_54fOX{>IG5o>$8HrMnVc> zMQG^2`D19KuKv_SJ{!zbku;hPHhvc0P7@EOyKkSTt4^LtoUU*{tc7SxyH7 z5nGrRDIJ>XeG9VgbnCT->-p&??;mH~lsBo+(-9b15-wKf$5f?ov%EJ9ULzV?b~T+& zpHE}0t7kx;W96;w0p3^*g!=a@+8mfWaYxq=WiHFDmxt?p9OsSKI}P3K`5qr$EE{!MVWV(!V#n&oW*WT?o9Cbf=JCa&~ zt|ykTjZs7eTZXDusFlI_9$IO!6XOMSc)AkWJ1I1t#yl399J+qveo}Q-#d6Ybv99(q z27w^RcpiENN?p3k+0K{BNf@(fbhW}zXhC&jkLg8&d_n?gVL8NAhvCd>;%fCOS9b7+u~E@231kcOeV8-|t`>CU0M`5xYT@3$6z>RND~ z-#KTWy-yI8f9iU7$7=(g`?%IwMf}ajBcKm;?BmKrq2wJxJb z%N*)|1Dkda>b<>S57%egEtUw=n^N86?er9#-NYnK^W>!W24mMeo;gYnsU6E~3i=Zh zRFgUP${6c&PT0KoCwxaypWQ8*n)H`AEZbkBSzEJ?_eSB0_#Cgb=TW(vUryiMcnp`c zJVP8~!X~GVn+R$fDS#sIhyLkf5op3S%3kgs1NnoDXwcGN+|YMjh93c6@S=}vM91@T zce)6JUALj-;CTH=C_ZN)$v*lnV)y@LV-I_ri7S<&-6m_cgqkZ-qC&P3=EmHe018x!n zo#vf<8mtj~Gm%qxYO_;o^0mC0vZ)?o*)6Y!Y*j}7=%s2~*TzHIOCs}>1b*29JPKI} zB0n;T>MQD(MJBXh>G9WaTe)n9a`Tpe*HJabKrROMOi)L7zu;PpcsbHaTtj3i10QTq z!h+;SyM9D7)#ak1E{XE#evfwbO55ZCv-+@_#hpe+M`!S>!btVd;2Z6{Jfc}sv#^p^ z%`jkL6EG)8(&X;!U}s`tp%}Gu{MucF<7zzP;peI?<^7SQlvAb&b3|efH-{wOq!2A# zot*Zl*=SYem|LuQ*UfGl8Ib#&%Q@kDI;8`sujU}o`-Jk9_YockLu+%WJwFGV2}8VDOMGkgpuWDN>ZolEu_Yb z8Ua7}Gvt1Eq~-@!FUF&Oo8 z%>4}h_G6&)`=}{R*|hI{_*rhj$rohyUy`qKHQs&?0E$ImM50Vf@6B3RpeA#)C)dXj zbe{pd7ndG3k++h;x9c&j)qJ`1Mreq>zKK^-P5@se^rYOsxLop}}R&#{Ua4r%wrj0Ao^pFJH z(iz^LML3t2lzb=M!@O=fjq|Q@W5}*;OSO{4oNibOqJ6})^|M<~l z$e4S2!jMU3!|AsxL?eRdKs70^)8OQFQ16Jq86H;C?$Cmp{CTan!{gHhZ6f~7Uh000 zlKZ6(lbN`1JK^!}<^GNZ2^HnOP*eh9c^QU930~yL`god#tJ@HcbxlC6~gm&kwyAe?K{^S(site9g0-HHb#m9p0H-y_N~y zsPSTTcAE{~vniB_9TY+1G2|2@4rvaa)GXd$ll!_-ma`31kGaU&rO_Hjpp(quE<2@F zt0&aYHL|I;$ITSAK^Fl*C@;Q5DwWD-^J$daYr#c7QkEG1G_8L%B+b~G40zi}aoDSg z0cnkc1)7mTqQhI6mSD}ca9OvHZ+5CJjp9qqwBHxi3W@XcLSNhiP(Ha-n)Hi~l*5pM!dct09*2iljNP z=0Iic^`qh(J%lRa`kz0hW(4919lyxV*=c_JNP7M##Yz+4bw8}%92UL|WN*5jA=2Y> z%u+n8aPK0}JEYcGF7ktLT$@)CnkFPD@dI~$r+R%q`7XOkHWg~_?M)j5Kr6`HEetjv zdA(tSKa+=c2sf6lG&y=E*N_A}wT&6obq9WQB{^=>3`xP}2XN5yU}6IL1iiT-_tyy@ zIR`cm*#+v~?I>lU+z;GnBT(Xj(H}ewVCwODp8h$<|%F78$nVU4AWh_pOBwx;y=*AIt; zY!8dKs~x-=IKbV3lhMFfg-^4h&~Fw7eK588{RVDBX(Nd&4e7ChaIjOoZ;$BGeNM;x z6&8FRT8M&z1lX76pIT#H3&u;^wr4#U)Tyn_0D>LSB_8G@X+7od9rHIEc1RmQ^cUEz z!mgn~eGbIWn;BrM+o@%`$Nro@&;=oqVbyw&HzE7B5Q(SG(PXu7`z|v=tQC{3)nLcx zi}M5-J&u^($1~Xq5GQ+VKf%TRUW?O`=)p89M#BiO64MdrQC_t$GaKhaD|)Okfu+cf z*OIpzcxvt@(46ySw&&`X2qZ_t=`V|(p{gX?o_E+gIh|XfJcEk)2>>!79JIFC1oJll zA!!2mLUUjEfx`W*P6t2{JGNCl0Qeyp@{fhJ zqzDnG3?xO2!_0yhLcd6sPdX!$DvFF^`zTH6W5nGpcYhnkH*Dq;CAa<}*r$?s_SPnM z=+#6RqKM(+4B_p=Uh{>E%9onWxaR9xGDLjdxqMaY~R3DslANj5@T)M*>2dqGbfIfgnf zc~9M&l@k3wJPZ#Gc1K0F$n9;r{qnDVPOgiOuY8jx?3EOJQm@ylH)A?{qmhsy&_H!z z6ZMfpq;)LmK!KvU+FE-K+0;}8D=bX8>5U{<$RV>lp2fExy3{N4<`ThAZ|>$ue*RMK zo~4uHC7ltQpBzT~?N2cY-R03K3|ydJYGF@UO@C1rkQ-f}EpYM)AVah@iD`Aun;U-b z3&K)QWL(k+2m|Wa_-f)4$}#2T7r5dR66TT;T*{bvFGO7&j$t1pG?zKf?`~WKr-AE* zZ(vE3UTsvV+JQCY8WNOutnBQ~x>lclio|`dMEfic(k+}d(1iLH6Dbp@H5hQT`sk!x z%|{RBy&3H{sV~HCY$6jXD>O5+%wtHIK~XYA;20usMkfh;BQ9+jj3P%@v zo!#(K=Uz;d-*~~@bv5IZ7n1F?SwaYx`v*KGuxYorLe>|s+)O=6`gFQ#*56pG^&2f~x_DJL<|G;E zU>+t9>i7~X6B5PgA`=N}h^VSUmo*v4iAVmXiY^)?!QotjsorSwe1rG9WX9gliZtb< za4Tc=XCN{tD@tlUV%>LGP2N{VN;J3PU9l7GpYiDdXRrse_R>V;4;-K419)L1LBnDm zV_uVt6oNJ$o3%oi@pssU`&?X>xdopa;03Y&5WF$-2;Q_nb69zK!P?Og(M@kp+B*>+ z;mTf}gG6bZM4v6wJ-YhAkzm{~k*mEB)6=P`k|SHYg{iUZtLh+JGvThGhT`J8=9}|9 za%nO&*m%=&?aHguA|0_s{!R`{jAx`i@rJ}3ckMb>+l!ohytS`pC%J#S+(0(_1zbRp zwY9i}&d%8D&7RxyhHMLJS+KGnSQnb=#~njW0wmvyXS^xD6OfS!xGc5p_g-Cnr{ME! z&Y;er6B7E)@&0=+-*BbOmoMaj5w3>~2%mW9l^N*#(2Q+ZZR7c`akDqdP#uUG%Jj1W z8T#A+9r~0R%}nj!!ZkHc&AeX&oKWntzjU@>cI1!zi{~%r)+9;nz9p3XE!uq!Wxczh zwN*_}oDSZ5qAMUjQ%gH~-F{v~r?c1aE_yK^-_M#i@w%|#ZT5jKqD8m0VgbfNyOUCr zT||f6+r^9nlPFFqP2)KTRFo8AtLgzwCBAT+K5$1#v-a8|JJi|1$a%WyjShZ^&)`R+ z5Zd}z-RNdSQy8nOBj-Zix5sT=T?1a7ov|20y@U)Ejg8VLJ-rMULn9t{F*+Ji8DuPZ zghDYfvMs@<)xm2Wo7u@84VASYMW-UJZv*-@m($PnFo)b{#Op zZQ7tKCm0fYaO7WBzU<^k#&^WaanbQzUe3d4Y@pn%t`cNwcB|Y|v9`V`?~O{Q(%>&b zarLq#eu?M^Cp0!?`Z<16buXfWbx$bN=+djOa@4lA)||~ZP*`?o;2|dFAZ=qKgMjI3 z=VfKlHrZ(ziiINooD?5oqL6D=_5B*D_@%6yMy@J4)&G9oSA%f9O@1G3Y-&jSTaD_Z z?$xlG6BCK(^su}cstH9#1-^jhv)vt(X(>5L6-WS_5=}d3bow>Koxo-%U?AS@qK?G! zhw_bLE%Q!^6*yHliMl?&wh-ARACIak#4Mm`_Kpbbun^L$b8fb{v1cO67MAa%cFweR zB+0$7Wu@Y9YuFsX2}8G}C$EUCMx$-W$P2bEewQZbR^D3cLW_X|OG`TrbP{TU=X`Q&*#xSc#pBV77+v>XeZy^xkibL^|f$I_61XIhfgACu~`6*s?9X zPit%yT%l0t%OF*4dwVTrTG+R5=iz_;>{5P}mnZK`Rq<2{t>~bFZ!E&;;!cx1`4?SG z;Csg^&(t{KHv!MoAU}??SmyExW8cOqKLso0!UuTT3gqQ{8S&Qxbfl~7e__b)Vb-3D zf`e41V5$(!)7;UG?=Mb1o??Ah}13R)j(W=^2zVP&du$g)Zez2 zm$JC(4=*-`l1u9FE-#NJd_zLiZ|vyR6-HK5hKI}jhKI*Iw}^;piNnbG;trLz1!0oe zU%5Ic?gBd71CibC!%doX!7285TTd<7`06(VNl0#3-EIYzE3&x0nK%&%mGiUgSPBr!Q zjk}Y~2j|d6Cp}}a@-^+mfa~bWn@-9i?z4o zNN5odP*}+-D0sdhBH|*$#}|qc_@i+y*(?Q1NjF-c-#pM5edpO>(At4Re)wUS0NX3vWC z7j*_bEy$)*u?{@`{S+*u<4-mhj&3Q&28}3FaN=rsi6qb*M zq@Eb?e|v)|6UB&D|+6pEFI!&s?boSx#X#*m@wE@;30 zlNN?LzdTp6#R~>cN94&v7m8uSE$PY0GtdN=3}!Yq$Q0rSm8bj!@9YWjp5(0+g+pZEW`EsRCQ&(F|`-Z?d;I-V0n1h*AF;v?X{7GW%<%E zGeGinYWb@d81ePdA4rexlFTGo*rX(W4>Mgx4Vp8P*R(ip)(}ZbelI~s|4xyUvprN_ z-|rf>WNxvO7Bk=IBA+GXDI8kENhBKwe<>-qRH(w(cvN|2N}LeR9(t^r^`rZEUW3Xd!f&4JI?u5 z#XJ1p$0J2&Fmo3bb+{_|?YR~T?6gJx-D9c>$b)G?&5X4c{!SGUg^`6{i`>=D)gVl% z!%_?w^3I}Ds7$kyCuZuIu|?6nypyidoVpf9QubF4KgoHC?eF6*A(C@(C#1;Vy-^G} z;StSplvFau+?tNb#=BkgyC%Uf>l?{!rlE9>j{stM$a!^8jh{`<$cn51^e6&`^; z3a?jVOx{ag{is{&I=^A2sd)?PN1g6RH}Uv@&IG`wC)2~vPrV8W?LbM;5;k-Qh*?|Q z2}g4h1L7{q$^TBV=VGU8INd8uIVm_91hLj!&b6VwLvyr#Ss9PUY12@E|M@1M5C#)! z^iG+oWK!0fjECd=TL&j8d+?+8g@LID7;O_?LmVlcp2gG#Tk; z$fFoK>d{GT7M8!lD=SazQBg-YXJ(~CXJ&g}+}xy_L`DiLP*A4v@o{sv4(RBQ#k{)I z_F_T1em;*4hgPS#Ile~9d__K~)dHme6;+@@Xth(Dd{fC5^_yw-q?Oap&rW?;tZu&NYW8%oB#U2>MTS%|r> zZy@$PEnUJQsBFnjT=>;!t7{9?Et>Inr{4>fs}%6_=SRRjwSwmLbxmwOxsP;o_Q0L; z=1;*j9b(yKUDf$nB^g{IoA5e0tPdZYlM}$A>V)7Q@QRetesJHg1&tI48o`LaXQC~T z%7}06^%PZrjG3ZrAdGYA4;u}9NdmvsqX_a`^#=052I4o&OR%>%sL|~aLaqxyKtDNr zmm%Sh(9~ubcKG4L$nY~h>mU;V2_sb@S#sb_30trN7)Tg-zfghOr^UOTPoJmGVXtV= zMlpj@6MMBr(z&OU@LDk0wwBjkQ>l}akty`dzM&FHliLTP()1LM*2LUx{>#nO;bFF} zq`kH=G#|ovZ$8J5w13$5+MU}CYaE8(U;n8#_%pWXS6jzdS)IRSfPA#QLfT+!NMFgn zf5hpPI7_5<8-(*I1g%)LXaH*BLA_MEc|=VIICJG4M(Frlgk0W7+8}}6V*!xVi-Wms zKJTmJPOQDXJ4r6Cu%n$m=5T8~6jrU#R$@~ejKpc2-@yO+9#C#@OolO7TN_1KQ;ki8jU)V( zioz=%Bq-=@_x=6wWmy&I8NjJ7Mw(e89b5fEeM z*;wRkJ2mrHlC-zT9;p06<{T_XIFiwCUGEG@|N+~1y6gb0KVSZW}ZuYf*FsBn(5T$2IZEF ztSos4)v%AKww)Hu%8RhqFWyTpSj{@=q3AH*T}cWjC58?&X)@%-VHiz^koSSb8EQXO zXH@*^fA3oXJa!cz3ZP^Se~}4x@MKsq4t$Io6dmw*#s0mS>dxVX?;bWc^PjCYMtYhA zo>D0DzK|DAPmP#8_zY$raIy|{U~o2PV@QQdO@;8NfqqoTFbp{HI3#^j!jVW#d~Gve zgV(F>R;;=m{f*KqIYu#;94R%}AH3%0kH!0{oYLcHrF%Fgrhg(PX0sqWJGS5+6ZUs% zs{I!cd#;Onvz~Ek5Lu=1+*=yo^%P(pNU#PeZ48=_Uk4v`6^fjk>?AjA@ISe2gy7sS-!~?QQ(_iGukFl=|mr9|W?( zAz#??0`Qw<7~p`p$NS%x{ld#EQ#VwNDl24P&1EOB0mk~QevY(pfW$wTwp#8A1EXyu z(?IcM1TF&pIbJxWTm9|`>~DdUgb)o}1@r;Ep($A2CeWrSew{H^PPI2K2~X#;6Z^A- z-7@YlYw`FYFBccl!`4`3cy6vVaAx=ucz#~NAty5;1FvU1QNNX-!O3sT$HxXo1M81^>9yHOI)6I%Fny15tHjM$HHNpaDKXz z@%t)Ic=d(L%K85MQE}DBqUU331O!2(OI0$mvjTCye(~+_p3c8Jk=fK9>uB4z7yHxD z#DZ!h5uY4aHeN(c*4Q1HkC^_wDB#5_QaiQ{7@IAZT9E=T7(04z7apK2V30%SSJF!P zj}g(&kxang*wxsxPwGE504fhZ`oe-d7FDl_9dI`Q8|Nwa`^q!GCHP-~DvZwFS$zl!QkO?T!Wvea>As2kSgrc4l#{haF?%lq%M5@KTR9$)%1c7oY5xRsUohJ1gPPX9t_bXDWUmJaY3lhy^NYe%sq-9mbN;s zw1by^r=@+}+M^f|J5^I2x0`NjTMd_vN+b4Bz)j-SQO~M93_4?|ZmxLdj5C!e#kxoe zS+@>p`GsLtrlz{S*y>t-`%P8#95rPiwD*SSUfr>=3-cRK+XOFO;JZpltopviN^AovpdXDt>nH_01e!$}fyg@j%;*zefo0Hm4LGHy zb*dPFG$JM?X)MyO1T4}oO9NJAVb0L)Gk z5B8v*MHLVd1L;I5P}2;Q>~4*)A7_Rwb%5}E?3|k2PE0L*9##i4GtIWWyzn(kNHQiVpBFhC9IDzWbBD>mL*4f-;ox)k!Y(9`msy4iDTuP_nXWF2$=N=&cU)GQH0D)e|SSZKo?eT;@z55DWHw4GQ6u zyTilf;-J950_)k@-qz5lsAMtS9}TWI*s1n`4HG=NVX906Px#v;lHgPF?6gP~9{HGu zh_w+}Fh9D(LJ7c-C^6)s@wb{V5RXoxL@z58)6Ir}H5rU@=$v>U&Z$++@x`^sN5;-? zBkRm>@(isI)n+FY45#aMWsQ${%~a3$Nmr}%l>`%{NXg$&M%k|QI+FDtjXRc-PMzWGUrwEwQ4U34={Jwj0pnQ@Cm@};kg$?+tJBsg z;zlx61&zGv8`7RT)zu2+yvHuj?NK5b&@r0t-}qyh<`MWs(bLn;(C|Y8Q2IOsQT-NfaI0Kb@wgFH zGTSt7A^C~T<@h>}7YD|deL5Nt&^0wA0gdcHZ}roBRIV z1EaDM_jLbX`B~25=qhx$PP}y^%fNX8>MCTU3H?T?sQK=M$Y<(Vw6%$fa|$gx-x?=1 zi5G^ErX0$#5lJwlqJ#-u4YZ_&YeLommr|GR`qD@%Kcj;+HQ>zgvNIrAbfeeKz?lM+ zI$u5D-pKh19EX_1lCaHlG-96Z1N)q_R$wbmqrVtRa**kBDE1!{fooul12JKtgG5Jz zDk?(gi}&f)bY^>dUXYfybSM&e!$d|#r7GwJf|{qbf0J>!fu3U@?J0vcEQ%xon*QuWwx+c@bjA za#0t1l~`SMggNB`pX;91__S;SrQR-*Y~bAe!>8of(|A@rY5b30;S={VeBAdOALw*X z|K#pd^uuQm>Kd;3*uzDSVv45b7cYDJ50x69iKT=O>!|6!uMP32M_D^jeD1dV*1u;W z|1AR^#>wmifnZ^7DG?P|F~@_Oht*obqyfpfZvgBw6{I6=Rx}WnKl23SK>|(H)j#-k zW`_+VTQc-KN9(%Lvja6Y+L^xd!fW|m=l3-6F$n{OZ~ko`2DwEXdqcrOc$zk5?4KM9 z1#5TUMxny_ETDQLqpVH)XFv|qh+X;e1L$0=gTcz1uCIMNgO^B&6Z^=CiARV@+~O@@ z$=iX_8X}ER3$KxVo7R9vkizF&xYl!ZlA{hEs3Z*y{Wb$RSPC8& zr^?ANirG2blpPSlOW(tlp6XRrTUfZ%@{lnAJ3VcVdgUy+se@9AAPWp;c3&H7(&Gvz zb3ZvL*74VX#D1g9pz=8{0kVA;z+AAngiZR1O(ZRTVC&b>2>}6+3#gT$tcH2Lw9gR| z?@d4+^=#2#c`FGgP!VW(MfbEHc$!;b!P^OHP8<_j=|5&KTh-na-<$1Tr=p z><9pLbQ9y#(QB6WCMH``k#z;g?7{wJ3J-qJU)l4!p#+0-PUGWEKO!d97K#e`3nbqX zX2BGr+NRMGO~%qL6EpPpP{G$HVV?PGM$__a$nG~=$D(dS6`K*_fB;N-38(GpKZku zHwV7sy;qaA)hua8vD$uCvCY^yL$;x(prbQkB`Ilh*Golpb>9_oJNxe4_aVNHPW7=T zd(ZHz16zPf>N)de;1z&KtxP#+lun_p4A0~gM&5no#f`taJHTzJ^J=`4kd+0N4x2f8 zL}>k-N)i3w2J@Ep;a>UkeP&csJ&}*d3!^nJmp*cdpp%>1?E=u?cDT4M&cI-btrPC0 zUZe;Tp5j_C4>fx>G*Zs#ro0fLGjRoQ%nl#k?ZRzh7`*eqs-c!*GMv;q0ArxJp@LDo z6UY84zo0Yx@8^qU5~iT>1wf!rGmM z=KbvK?2&JP^_Dj(DtQ^Q4kqO}ScVNlbI$$pGN?;XZNCTtf=N$aI_15Y>BhY`zr}!+ z@xUzEq|Ngx%1#a6hto$kGWq#$jt^HwS*4_8RM6TQocP;Q3!Tx)kE-xcR%1 zDOJ+{stGKn8bp8qZF*u*Yl_L;aIfOPizET^aU~QP9Qi(@V!XfDN`fNVy5y8o4b;(p zEy+Sxs;!=gLvKt#L9iXDjD@FD_bhZ_2T3;4;L}>WaetS#1A~p-E-Z}gZjP8;5SNfv zGrA9$cbQXJI-Q&pQs`_r2lskQknmhGXaY-IrG}w#+3 zy{C}#e5^Gek!N2irdqS^XsKScU54N{fWYIzmQg)?ONyEz(eFvgd~Gf%5PsdG$abFl!<5^6&u0X}Y7fn@!%rlebd{jp5X?!)X z=H@duR=)}hFL6#yX?ZqxN7@u^K6OG{dCwywcOcwppis(6oT|B8nCmHwC=TCxs=Txj zR9+)|Br?5*8B_fSqDg;$es5vfuJIr(pKNBW>g99obQJOHm;aE*#lENM6lW`0gJFcw z^K*J{D4oh8I^ecc0RZ?OltPI`6Z*}tK;gTZpKV-sXzNpSvwnvBYWDlL`#`#2(t@qL z9tYP*ONR-Kya8j;NaIsI1pvqEKp-*)<;H<7@+pjUx?1k}{LIV+E+c6aBX?5w&#jy% z2(EKNLav|2Ni)Gwpe5p?-JmQTx#v)wnlYN0vCXniHQ5!6>g#(u^a_x*_|-f z4p^#U8KKwX6B~5z+}5HecJk_TXtW%gF4`$@$^w7_`Pll1))ab$9vIijff}xIEt*js z-js_s(5Fmt_nY_kP@nrQdi39V?Py$_$efD{k)e(VYreYuxoyD(#04K&uSc+@XOUy= zDAhT3U+LUjE(6yFKs8Q(&B;mnx;YHJJzWl37kSHYK#8B;Cptk0U->|51Ni8Px9>yQ zWh8rLwFE5(!pQ*fB~vc6cH2NJq5E zVC=57Q_I5|1jRTTK}-U#iqp!9O2u;=nXtGm$1s2l+G*t^UOrs@2@y2Qo$%Q2fG@yr zYsQc#`VO@sqL`?>ut;2Iacc@xK@P4ivHf6^U&GSd(=*uJ+dI;hWRlj%O~lK?1NGdL z-wY9OX@~;iHNnN{%gw^!`7E+Ub6F?5q`Ti9!BF0}Mh8o0Z{K#wQwgW2Uvv|3`}DSC z7PFLm?~N>BSHf*W2_ai3WcaeH=%e=Y!@Vu>1OFp8IfcK0c6?HcE4~0UQJf9&Uici1 zD-3M{v;))O6#h5~I+y#2L6wp-&C}RdJ0;$f!X44eny$C^L_&>_cXF!gL<<6rxtG_= zok_Trm9ZWUj%pDgqkLN`bn>@1d>SS4&|MELou8}l~5$SaI!*y!p$#QfKnQFWTo;w{u@z5c8g z@lV+`LMYG;RR>~qCuo7?oD~7$l7&Lu&Qw+1E<_%hcF4%zwpt=;-v4{b*D)%efzjs= z1gm7M+n`f3lAmq~qkm9?Vg&12-MO2aGYvC<^C4-!ZCeWNZujShR~;R(%1<{$jpdIe zEe$!vEI=?hv-tO&O{fI)dFTpiY7SHjoEl0o^LE!x?GeE7tr?&LM+E=ovBAq}0lJU# z;;Z?O|K5}gjszKiHBM=>=1S!?nKUs&pfDh?jL6|{_W<;qn(IGsUuM|ok*L#g=+Wq=Ob5r z?kx984^uooeR5epb}0V9oEZC@Hk+2NmgR5iYv(nB-<@wOET6ha%crx|E9s_siSY8) zGqbYVW8S^uI|!x6cND*NTO-J5g39ILuLES$8AzKNDefys17aO`EQ}D_>nc)th-p;l z@Yg%VSNrEAz(e|}N!C%mPpe|BU4o(-y#PzoP@9YaXW?i}qCn0tb?-zoxfABE6{RSHVlVPV>|5tI?+=kK%yZ_c};)K%6d)A^O%?@mUTACxp)%Y;B63zQlI z!*(+3DVGO`MD6)t55~jtBk-Sk`tleEQCqv@{iUT;e7CDn*i_yRcg+gG$ZV`SB}Uhk zx{{uRcIJLOYs^5=NK?n3r?YOrQ4bjfJv}WmRn>j}ScVhZ$%(Z|n?=eC8S=Fcn)&4F zXfS0tUsXL8RLxvC@>CT3Dc?jsT7>QuSk0aPozt1>d4u366kHFaw*XxM-`6n6{}`+l zt%1$FA)rs(;q2=IJ^2GDUlf zYSZSce9O%IoS+H>sfOsEnTgE4yHlvRzD_eKpsih7l~+sA#*3+{4T(HwdGm&R=W@5Q z(3VYyu~A3s_f(bb;=cVq6der7U-iy5_2pn5w%tLaMD8cCPlUu7(|iIs=F-x7`5!K& z=ZO;7d3DUKc3~QBH`IfJh|LcBz)y4P@JFYBv?*Z23 zz$ayTn*ZDAzsvmF^SxpG;5qmE+lU8IH!cTRVMpYqbmr)gYiV9SWAk2LOcMr`x5oXd zG?l7ndR&!phvH=h!{?_$X3Wu`!Rw$@&6oJ}9816P+jaz=v+K(rv@tuB>e~tc7grar zznX0-ws$I~~%U7n>;i!&dJUA$~GcuxZ02~o3JNL&8g{i5Tib$+M zGd;0rOGls0h_6BQi_suPFM!5YYbR#_0#=@xEoMDpARC8Y>qeTYK_(yp0U<;6bj3*m zdkb5Hd`3W#?xRB)F0dC*xwJ1iu@)c~ht>WE%qt6xuKVgvW2+%$Q*qv3e^dr7@;czz z%60i3mnEg9MtoWWDnC?do4GB%yT@J!7_9v^GqeArVzOc2Yy)1l# z6DEKmoY{^++nB|S4v9iYBwRCkWNk9&KFVXxH&~M zIeB$4oXUK&-50al;O931xf)~+ZR+4QD9e?`P&!X;l8jT*tBGCr-SK6!4YVTalgRn6 zh6CE|c-mks;i_b`4cG1e=QxIQOHS5Xg!Q_O6)(3X1ym^jXev}z$xyt59@<1d0R{6* z+K5GZ;nLO|YS7Zwm$7f}koF^YNQZjAdY)kKHWSz`3|e#Bj-oboS!|aWW9==yf8!|P z4;-Zz%15`MZfh%Y z&_ijuTV3v4pj-4(f9Mx^aCVK;0J`r7`tY z4ru2QNBjizuz#;BhGFxH|KA$oUm2%DnN;=~H1l?>_GVP4r?-7mg=i8ai=6_-x!?B# zN+Iu!me&R$xy~ps0QOc+u1T)2WDf*{kInv`9^d20$o7tq5Z*6RUpt@9=7Y0^PSDj| zLFi{ob3o}7f&Hsqx&xo(u}2V?om@izzqfu#@nHU9v&YR_E0pV=g_nBq$?Di|rAjf)6iVVhhRM^ome=+HZdw@BaC781C!4Ns{}__C`Z5GBoti$RIUYJD8iU za!_$5k$A+@-X3xSc<8*9rsE>dMEt%Hn);O20AnJR$KZ74 zC&}I3$0g((OMMlQ>O-*I~(ypCRxIa}MsK39DDZaYuCU%TM z6M3WOU0s3Dayue8SJ>d!27{Bn0&1Sl!;o#{eSI!{Ed)7L$17|MM85E?o_M#~GOjQ~ z@*ln$M81Ke(>E6$K(Ts$pC@uR;p*+~F6{g4Ut;3ATlP+TV4$S2ij*^#4i9|~)~2eZ z(pcscKEn%J{U#0f_jJbkt$YUA3KIHb)N-7p1~Ej+Bv8E?)omvpkkGOkn=!Y2AE>-| zTyqjd9*JkOCJ%0Z9m(@waxvt2DvwCCiJ4VBGoGwf_0px>f57kU|65bzOIykd|EFT;VIl=w(qtuP zjA}wOzNu~^2YbR;r9>9i{W0)^L~e>Vk^v#(I=2CIvC!fr;B#&&ak_bGFVSFXde*If^8jLU9-v4({E4b#eyRvwc4opd25N8(>$PY zRhBFN%CiJqKS`^q4*Pd>#MMv;)U=$EU5d_bjqHz!eNfmstzdAGcwAE}aY%OTbSu1uybjUY~X0_2?Nh+}TY$Cjrpqr=J1&rw|1B zR}xk-)gNb+9@w({ufsURRhjnNR!?vG0dk9&)yjsFrP;fAZ}73|OBYU+(a{PG=g{I{ zX-dn_XI%)!yzHovXe$T9%P+K!0j0r-TsTGh;;1*M^zS9 zUB8XEr@kU`Uv%kl ze+(~G;E&&92ZkO50dwea3y_fnq2S}Nyfg_5i|JW1!-;eKQ&!B9x4qI$CqgOoTRRz; zbHH~&ADog?L8Uhl&Y>!2K}vjP$fGT+Ntp=&FxMFNWyRdr>0v^RX@3Kg_E$US|Ahj> z#HHt^%|+riBQUvO2WUhwFjSID%S2+BjITZDmdV_*W+szl<(gbUHd-KaFf?SSU>96_CF>isHS`Y4*yn zv;WYs>Dkd1+-@Q{F!{Y_D!feTpRIWF%EN6?XltFZC!3sQvKz^LisKr$Peo_PI=Z; zpDBG&M|@7}#kbUGd#GLu3D?mI4-Gwsk)u|wefb=mChXmGd9JRXdU^fG4RNOz1md7u=?_%d$hMATbfDh}bbp4Zy`SBirCsqiTN42D38o$eA0M5mpwow|$~1B>r)0q>nb$>>(uGdIQ^!ZM|Kevi*;m4wTDK)4nAl@_7cjVTmWqLrJR%d%)IGn;M|J8P_uO2?jwQMzA!ki^@%)1-oc z#p962v<(pF^GtEdls$L=G!=%UxSay`qnX(I@W0VIT@lu;YQ25_gh?WmO<@ZFG_M;# zzDuTF3Jyv@`Pa94NhD!C=51}UGYN}~Ebn;a9rWw}dfrc!#4EGw$sPP@&T!-5Of&sB zGCfnx>|U6gn|}^Kx%)drE9~A;2A-x=g*w+lFcyNniUTqIko@$eMj>YLm7DG0e4}nJ z@Zs(sKU|OPp^y2iT|qXu&PfA2 zF}y~I^Vw6e+rfsB0|~a-t(_;(;Q|(7@p;Ps3B8>G4%Rq+^H|XfUxb*+phBbl&oymp zpCPs->zSgw%M>I+Yu`#qN?!Rz}xP3={e-b55B#IjvRo^|hyG$aQPeGSor4 ziI+8zdbsC7L~P_Or$zb{cg*JzE82Kt@fPfb;urkH7mwd)bhM2|%Aoxy0J9i4es->o zOX;LK4@@xyXZ%D{W1-d-ahb$LfDpbd+wJ}Pw>UR6^z>(9qWL0HALW?< zZ_s_ef4N4yGp!n=!QE!vH{-fVZP7QiIk^F19T;j?^(go~{@7rylT!ZMd!MrZE@c8A z3~?7Q(XO?0u1G+JfKSEb86>RR%O#b7BVLt9*4EjQ7yHf>cSpTFxV8&cpu5|vBB70e z)+d9}5vSyQWvfRa_>#5WcgR(rtIO4jgV*>jEkd8BzrI4VGwRGY1e`510|nFVsKgh* z@iu@YTGZfNw7TYVzgfM=!+Vjy#x6~kjeV;WmPR3vrS~Wa0=;|)Ad-4t`Qys?08hdY zUTp2>EA3+5NO0U{sZK8rOi;;~1x{{GZkyEWYW9RQ>yr7t`adK^Oi%n&w-;G9tNriH z3|v}B7S8fUV~@3X>fuy_){pM+Gpz|`Vq%JCbz@D<|10du!`aN%c&CfyirT7lkW5F* zv`VOsJ-D>hRt2L~Vy&fGTT(kAY0FSr)Ya0~Ht0f;Sf-XLiixdCE5wqbp(sHVStKO) zm{D`@bN{$`^2hgl&-b0@J?FgVJ@4;#-uL}xhS=kScxNYSDYzd$3>-czYy#!0yGl>`&!#@3HJtslIc1XWH=0d4amv|CFhRtO z8^H~2Z0AJ1-aUC%^Mt(nG~(=8Lsh^lH!?q1JTU18hmdOOR_LUZlx1<79RaTr8>Q2P zFV|Pzeo%H1(UO=flZ|s7MjkV~*80Mj_C!fH?iJ!sXeke9qd4CMYlnqXH(c-_a6EK@ zTLJ0~sbV3c(C>m);T8dD8}vak6@`koq|>o#aJRrl4AYlfS6rM~pOIM@=jXcmdHPw{ zrAsqoyjAiG^d@+uBCyp6w%WK5a>?^{er%3o_p3dzqC&D-JH?Emhr&O%B~!?^-@L-g z?Jddij#x;mV}^0}g(ZdynbiM;nx?apqyOTXG- zb@S}J)w$Md~Ln(exg7 zbad2U`w|o7&JGf5@_^RGO8|eXWRt?T@9`FL?QM?5Cg9iJ%HTJE%f`T{RMoxkcNqunR3#7VR%6qC#1+7~V6{1Cj6VzXg$C+5N)y0dfBrmdEK>K6Z7iUz1>=CL3hcwlE_e`=Vu)FO9_Kf` zk>F1Y@q zlcZlZH67N7BOh7*;o7B)zi5gtLMD!cDjD11-F+!e+Z%7Izm8eMb4+Ds1)WR~FX4s- z2;UkVYw6^lzB^K|QjRH8R_^_U=zOgXvlcY@D}`cln8_S{Fm0=M)uYD__4vaoTEJ=+ z=m$UhjJkM{vMY&W=5o?MA3k85!8SJmJWaRZuCV~fj)^Q08i~)MCgg3B{suD1HpY7v@l5_ zr0_pgLvyO9;{VnthG8J<0P-GH%!{$>q=ISyiuT9YJ6x-;z&vvGh_U0L(*eLE@I`xi z;z^rHB>>np`>+>j>bwX=Ez0}GuV4$sG0D~vcwW}H;)Wd(8IyCgozGA=Smln| zUlKF~nyP@{Yz%rj+XC!X8GeJD7a0BW_kFSzp?<3hC*3wCmcNK*-}>a5pyC{{x|V{bNT0AAY!B&DmD4OWGfS7z{N16@Zp-+%&xKGV-Eizc|Pe~ zZo4RwbrH!8>D!Cx%TNg6$vYA%TgPNmmCX{~K%x|-AdvH3pO!d`MnBGHDw+|aqr>{~ zfRq!p1|7*Xt3U9s0?xWhY2R`EzZ_ENy6SfvOtaltIMDtiuH>c-Qq9TU+0(@sDylZW(y&=-^fA zdiv~_*~g)Eq)P5Il89alB9j2XUm4(V`uXMw(!$6b5cEnN&*h|ogx?sPHf-srlRojJ znU-Yn$orQHNqn>9KunODL)>SmPBVZzd|e(3H#w->4@kBIT56gj+%lhbJs!Vg)O`SY3+!M%G+}x zV2&$lA!sfbN$)(KG}JPNf@t3Kq=S>a!ar$-=sMbuxw!_Bl}poTT=1$j_(BtN^@Qvx zzr;}8<6xlfe-hRZL}2dm-n@x84Nxf#9Jha*CI31|Cd&wiFMi~>TNbhLrUO^Xc`cX%YGG&4{n@C@OoS5#-giI>?3s=r~?1*-@Xt$v) zEmg%Dh6iRPB_}^F0lA8BzWb8$n^Yl_ICsUvtA&um_5tyQCQ_>7r!>bim1zE1n-u@% zU&T4jkNC`YkU+#R6mAZTSv{5Ut~E{?k%pbxEiS$xTZ0bI{Ug%JsX8J91bEcny;`FW~i6b%0?^Jj23_7n$_ofb?{7eI5dv_Aspiu+4y!Tt48?Y(VrfL!8mO z23OpbJ{m6F#W>%NT5aC)-61l_mI}8jUoxQy<1A4=(li@lpifBa87{DZ$nAgq0c_ZI zfTRH*x8a-sN%SufTG!jjtqIz&HWI0udo)lJEUwa>g3g(l1}$xEv9DN`KUO1NX~N>B z&FP4cGMs;)=->^>^Yujv^FENN@F$+?T=%W61D3Xw3GK7O2m0qM&Vb-e=IoK9`W_`u zz019#qkYF$SJx>@hSIJXnK0ioXKrVuq@+aic2lA@{eYuOFqidzc1+n!PA4p8V5-%n zdl(j1)OjA;Z8KiKMNHL?1-}}GO`xQ*ZyBBP2jvM#z3YImDWa?ZPeVy zvv8Ih89syEe8H~=1^J2oDEWlxw@GRBx2FW5zfWm2Yp6N&Jfo?Wz$SnNK*?qgJR%{F zZF%vRA2LbxLwWHpdNB;G;YTFRos3xRJ4%=S7CD{$^A7WPaK5Enen40#%ynBBf8?0Y z3?*umUI~1XV4Y>tH%PT_t;!3%mOyF%x$fpAb7Fl|_isU1O-P|fmElXuB<>-YfyY&@ z_%HM2+XH^tjCAFCPz7MV*Gm&%KN}Li%>>BDa#uF22702olg8Jos!IB%`|*y9QXh-K zsL@MRfGC=YTTXbpce`)$SClKEf7-|GhQNjMS3U^wjn literal 0 HcmV?d00001 diff --git a/frontend/src/index.css b/frontend/src/index.css new file mode 100644 index 0000000..7f605fc --- /dev/null +++ b/frontend/src/index.css @@ -0,0 +1,21 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} + +.hideScrollBar::-webkit-scrollbar{ + display: none +} + +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/frontend/src/index.js b/frontend/src/index.js new file mode 100644 index 0000000..9a4209f --- /dev/null +++ b/frontend/src/index.js @@ -0,0 +1,19 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; +import { BrowserRouter } from 'react-router-dom'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + + + + +); + + +reportWebVitals(); diff --git a/frontend/src/logo.svg b/frontend/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/frontend/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/reportWebVitals.js b/frontend/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/frontend/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/frontend/src/setupTests.js b/frontend/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/frontend/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js new file mode 100644 index 0000000..5a66654 --- /dev/null +++ b/frontend/tailwind.config.js @@ -0,0 +1,10 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/**/*.{js,jsx,ts,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} \ No newline at end of file diff --git a/frontend/test.py b/frontend/test.py deleted file mode 100644 index e75154b..0000000 --- a/frontend/test.py +++ /dev/null @@ -1 +0,0 @@ -print("hello world") \ No newline at end of file From 1d74fe4e6ca03e35535b4f55317e60e92f169ca6 Mon Sep 17 00:00:00 2001 From: ovindu Date: Mon, 29 Apr 2024 22:49:05 +0530 Subject: [PATCH 02/41] added ReplyModel for frontend --- .../src/Components/HomeSection/ReplyModel.jsx | 46 +++++++++++++++++-- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx index a59da68..7541708 100644 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -1,7 +1,45 @@ -import React from "react"; +import * as React from "react"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import { Modal } from "@mui/material"; +import Typography from "@mui/material"; -const ReplyModel = () => { - return

; +const style = { + position: absolute, + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + width: 600, + bgcolor: "background.paper", + border: "none", + boxShadow: 24, + p: 4, + outline: "none", + borderradius: 4, }; -export default ReplyModel; +export default function ReplyModel() { + const [open, setOPen] = React.useState(false); + const handleOpen = () => setOPen(true); + const handleClose = () => setOPen(false); + return ( +
+ + + + + Reply + + + Reply to this comment + + + + +
+ ); +} From 911570dbc1b0ffdaf18dca31c23c3ad17fe414ea Mon Sep 17 00:00:00 2001 From: ovindu Date: Mon, 29 Apr 2024 23:02:28 +0530 Subject: [PATCH 03/41] made changes to replymodel --- .../src/Components/HomeSection/MealPost.jsx | 8 ++- .../src/Components/HomeSection/ReplyModel.jsx | 63 ++++++++++++++++--- 2 files changed, 60 insertions(+), 11 deletions(-) diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index c333a15..eed55b0 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -10,6 +10,7 @@ import BarChartIcon from "@mui/icons-material/BarChart"; import FavoriteIcon from "@mui/icons-material/Favorite"; import FavoriteOutlined from "@mui/icons-material/FavoriteOutlined"; import FavoriteBorder from "@mui/icons-material/FavoriteBorder"; +import ReplyModel from "./ReplyModel"; const MealPost = () => { const navigate = useNavigate(); @@ -36,7 +37,7 @@ const MealPost = () => { console.log("liked post"); }; return ( -
+ {/*

Your Post

@@ -147,7 +148,10 @@ const MealPost = () => {
- +
+ +
+ ); }; diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx index 7541708..a98872a 100644 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -29,15 +29,60 @@ export default function ReplyModel() { - - Reply - - - Reply to this comment - - +
+ navigate(`/profile/${6}`)} + className="cursor-pointer" + alt="username" + src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" + /> +
+
+
+ User1 + @user1.2m + verified +
+
+ + + Edit + Delete + +
+
+
+
+

Mela Plan Cone

+ meal +
+
+
+
From 8921b63b9579590c9309cf077c6786fa13dcd7d3 Mon Sep 17 00:00:00 2001 From: ovindu Date: Tue, 30 Apr 2024 01:41:49 +0530 Subject: [PATCH 04/41] changes to frontend --- .../Components/HomeSection/HomeSection.jsx | 29 +++- .../src/Components/HomeSection/ReplyModel.jsx | 125 ++++++++++++------ .../Components/MealDetails/MealDetails.jsx | 1 + 3 files changed, 116 insertions(+), 39 deletions(-) create mode 100644 frontend/src/Components/MealDetails/MealDetails.jsx diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index 427f5f8..b9eee60 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useState } from "react"; import { Avatar } from "@mui/material"; import * as Yup from "yup"; import { useFormik } from "formik"; @@ -9,6 +9,9 @@ const validationSchema = Yup.object().shape({ }); const HomeSection = () => { + const [selectImage, setSelectedImage] = useState(""); + const [uploadingImage, setUploadingImage] = useState(false); + const handleSubmit = (values) => { console.log("values ", values); }; @@ -22,6 +25,14 @@ const HomeSection = () => { validationSchema, }); + const handleSelectImage = (event) => { + setUploadingImage(true); + const imgUrl = event.target.files[0]; + formik.setFieldValue("image", imgUrl); + setSelectedImage(imgUrl); + setUploadingImage(false); + }; + return (
@@ -52,7 +63,21 @@ const HomeSection = () => {
*/} -
+
+
+ + + +
+
diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx index a98872a..86cd7a1 100644 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -3,6 +3,12 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import { Modal } from "@mui/material"; import Typography from "@mui/material"; +import { Avatar } from "@mui/material"; +import { useNavigate } from "react-router-dom"; +import ImageIcon from "@mui/icons-material/Image"; +import FmdGoodIcon from "@mui/icons-material/FmdGood"; +import TagFacesIcon from "@mui/icons-material/TagFaces"; +import { useFormik } from "formik"; const style = { position: absolute, @@ -18,16 +24,40 @@ const style = { borderradius: 4, }; -export default function ReplyModel() { - const [open, setOPen] = React.useState(false); - const handleOpen = () => setOPen(true); - const handleClose = () => setOPen(false); +export default function ReplyModel(handleClose, open) { + const [open, setOpen] = React.useState(false); + + const navigate = useNavigate(); + const [selectImage, setSelectedImage] = React.useState(""); + const [uploadingImage, setUploadingImage] = React.useState(false); + + const handleSubmit = (values) => { + console.log("handle submit", values); + }; + + const formik = useFormik({ + initialValues: { + content: "", + image: "", + twitID: "", + }, + onSubmit: handleSubmit, + }); + const handleSelectImage = (event) => { + setUploadingImage(true); + const imgUrl = event.target.files[0]; + formik.setFieldValue("image", imgUrl); + setSelectedImage(imgUrl); + setUploadingImage(false); + }; return (
- - +
-
- - - Edit - Delete - -
-
+
navigate(`/twit/${3}`)} + >

Mela Plan Cone

- meal
+
+
+ +
+
+
+ + {formik.errors.content && formik.touched.content && ( + + {formik.errors.content} + + )} +
+ + {/*
+ +
*/} + +
+
+ + + +
+
+
+
+
+
diff --git a/frontend/src/Components/MealDetails/MealDetails.jsx b/frontend/src/Components/MealDetails/MealDetails.jsx new file mode 100644 index 0000000..6542df5 --- /dev/null +++ b/frontend/src/Components/MealDetails/MealDetails.jsx @@ -0,0 +1 @@ +import React from "react"; From 20c6f4f1a57c23858c21699e60de46be395cbbad Mon Sep 17 00:00:00 2001 From: ovindu Date: Tue, 30 Apr 2024 21:49:13 +0530 Subject: [PATCH 05/41] made changes to frontend --- frontend/src/Components/HomePage/HomePage.jsx | 64 ++-- .../src/Components/HomeSection/MealPost.jsx | 2 +- .../Components/MealDetails/MealDetails.jsx | 31 ++ frontend/src/Components/Profile/Profile.jsx | 294 ++++++++++-------- 4 files changed, 225 insertions(+), 166 deletions(-) diff --git a/frontend/src/Components/HomePage/HomePage.jsx b/frontend/src/Components/HomePage/HomePage.jsx index 82ba595..6da0a74 100644 --- a/frontend/src/Components/HomePage/HomePage.jsx +++ b/frontend/src/Components/HomePage/HomePage.jsx @@ -1,36 +1,38 @@ -import React from 'react' -import { Grid } from '@mui/material' -import Navigation from '../Navigation/Navigation' -import HomeSection from '../HomeSection/HomeSection' -import RightPart from '../RightPart/RightPart' -import { Route, Routes } from 'react-router-dom'; -import Profile from '../Profile/Profile' +import React from "react"; +import { Grid } from "@mui/material"; +import Navigation from "../Navigation/Navigation"; +import HomeSection from "../HomeSection/HomeSection"; +import RightPart from "../RightPart/RightPart"; +import { Route, Routes } from "react-router-dom"; +import Profile from "../Profile/Profile"; +import MealDetails from "../MealDetails/MealDetails"; const HomePage = () => { return ( - - - - - - - - - - - }> - }> - }> - - - - - - - - + + + + + + + + }> + }> + }> + }> + + + + + + - ) -} + ); +}; -export default HomePage \ No newline at end of file +export default HomePage; diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index eed55b0..6ec1e25 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -85,7 +85,7 @@ const MealPost = () => {
-
+
navigate(`/twit/${3}`)}>

Mela Plan Cone

{ + const navigate = useNavigate(); + const handleBack = () => navigate(-1); + return ( + +
+ + +

Post

+
+ +
+ + +
+
{[1, 1, 1].map((item) => () => )}
+
+ ); +}; + +export default MealDetails; diff --git a/frontend/src/Components/Profile/Profile.jsx b/frontend/src/Components/Profile/Profile.jsx index 8a07ffb..02a34c4 100644 --- a/frontend/src/Components/Profile/Profile.jsx +++ b/frontend/src/Components/Profile/Profile.jsx @@ -1,146 +1,172 @@ -import React, { useState } from 'react' -import KeyboardBackspaceIcon from '@mui/icons-material/KeyboardBackspace'; -import { useNavigate } from 'react-router-dom'; -import { Button, Avatar } from '@mui/material' -import BusinessCenterIcon from '@mui/icons-material/BusinessCenter'; -import LocationOnIcon from '@mui/icons-material/LocationOn'; -import CalendarMonthIcon from '@mui/icons-material/CalendarMonth'; -import Box from '@mui/material/Box'; -import Tab from '@mui/material/Tab'; -import TabContext from '@mui/lab/TabContext'; -import TabList from '@mui/lab/TabList'; -import TabPanel from '@mui/lab/TabPanel'; -import WorkoutPlanPage from '../WorkoutPlan/WorkoutPlanPage'; +import React, { useState } from "react"; +import KeyboardBackspaceIcon from "@mui/icons-material/KeyboardBackspace"; +import { useNavigate } from "react-router-dom"; +import { Button, Avatar } from "@mui/material"; +import BusinessCenterIcon from "@mui/icons-material/BusinessCenter"; +import LocationOnIcon from "@mui/icons-material/LocationOn"; +import CalendarMonthIcon from "@mui/icons-material/CalendarMonth"; +import Box from "@mui/material/Box"; +import Tab from "@mui/material/Tab"; +import TabContext from "@mui/lab/TabContext"; +import TabList from "@mui/lab/TabList"; +import TabPanel from "@mui/lab/TabPanel"; +import WorkoutPlanPage from "../WorkoutPlan/WorkoutPlanPage"; +import MealPost from "../HomeSection/MealPost"; const Profile = () => { + const navigate = useNavigate(); - const navigate = useNavigate(); + const handleBack = () => navigate(-1); - const handleBack = () => navigate(-1); + const handleOpenProfileModel = () => { + console.log("Open profile model"); + }; - const handleOpenProfileModel = () => { - console.log("Open profile model") - } - - const handleFollowUser = () => { - console.log("Follow user") - } + const handleFollowUser = () => { + console.log("Follow user"); + }; - const [tabValue, setTabValue] = useState("1") + const [tabValue, setTabValue] = useState("1"); - const handleTabChange = (event, newValue) => { - setTabValue(newValue) + const handleTabChange = (event, newValue) => { + setTabValue(newValue); - if (newValue === 3) { - console.log("meal plan") - } - else if (newValue === 1) { - console.log("posts") - } + if (newValue === 3) { + console.log("meal plan"); + } else if (newValue === 1) { + console.log("posts"); } - - return ( -
-
- - - -

Raam Kapoor

- -
- -
- -
- -
-
- - - - {true ? : } - -
- -
-
-

- Raam Kapoor -

-
-

- @raamkapoor -

-
- -
-

Hey there!

- -
- -
- -

Education

-
- -
- -

Sri Lanka

-
- -
- -

Joined May 2023

-
- -
- -
- -
- 120 - Following - -
- -
- 590 - Followers - -
- -
-
-
- -
- - - - - - - - - - Users Posts - - Users Meal plans - - -
- - + }; + + return ( +
+
+ + +

Raam Kapoor

+
+ +
+ +
+ +
+
+ + + {true ? ( + + ) : ( + + )}
- ) -} -export default Profile +
+
+

Raam Kapoor

+
+

@raamkapoor

+
+
+

Hey there!

+ +
+
+ +

Education

+
+ +
+ +

Sri Lanka

+
+ +
+ +

Joined May 2023

+
+
+ +
+
+ 120 + Following +
+ +
+ 590 + Followers +
+
+
+
+ +
+ + + + + + + + + + + {[1, 1, 1, 1].map((item) => ( + + ))} + + + + + Users Meal plans + + +
+
+ ); +}; + +export default Profile; From 33387280ad2b4c238d5efef19f88209bbe2a29a1 Mon Sep 17 00:00:00 2001 From: ovindu Date: Wed, 1 May 2024 01:28:24 +0530 Subject: [PATCH 06/41] changes made to frontend of posts --- frontend/src/Components/Profile/Profile.jsx | 5 + .../src/Components/Profile/ProfileModal.jsx | 152 ++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 frontend/src/Components/Profile/ProfileModal.jsx diff --git a/frontend/src/Components/Profile/Profile.jsx b/frontend/src/Components/Profile/Profile.jsx index 02a34c4..59f7cb3 100644 --- a/frontend/src/Components/Profile/Profile.jsx +++ b/frontend/src/Components/Profile/Profile.jsx @@ -12,6 +12,7 @@ import TabList from "@mui/lab/TabList"; import TabPanel from "@mui/lab/TabPanel"; import WorkoutPlanPage from "../WorkoutPlan/WorkoutPlanPage"; import MealPost from "../HomeSection/MealPost"; +import ProfileModal from "./ProfileModal"; const Profile = () => { const navigate = useNavigate(); @@ -165,6 +166,10 @@ const Profile = () => { + +
+ +
); }; diff --git a/frontend/src/Components/Profile/ProfileModal.jsx b/frontend/src/Components/Profile/ProfileModal.jsx new file mode 100644 index 0000000..03e33b5 --- /dev/null +++ b/frontend/src/Components/Profile/ProfileModal.jsx @@ -0,0 +1,152 @@ +import * as React from "react"; +import Box from "@mui/material/Box"; +import Button from "@mui/material/Button"; +import Modal from "@mui/material/Modal"; +import { useFormik } from "formik"; +import { IconButton, bottomNavigationActionClasses } from "@mui/material"; +import CloseIcon from "@mui/icons-material/Close"; + +const style = { + position: "absolute", + top: "50%", + left: "50%", + transform: "translate(-50%, -50%)", + width: 600, + bgcolor: "background.paper", + border: "none", + boxShadow: 24, + p: 4, + outline: "none", + borderRadius: "4", +}; + +export default function ProfileModal() { + const [open, setOpen] = React.useState(false); + const [uploading, setUploading] = React.useState(false); + const handleOpen = () => setOpen(true); + const handleClose = () => setOpen(false); + + const handleSubmit = () => { + console.log("submit"); + }; + + const formik = useFormik({ + initialValues: { + fullname: "", + website: "", + location: "", + bio: "", + backgroundImage: "", + image: "", + }, + onSubmit: handleSubmit, + }); + const handleImageChange = (event) => { + setUploading(true); + const name = event.target; + const file = event.target.files[0]; + formik.setFieldValue(name, file); + setUploading(false); + }; + + return ( +
+ + + +
+
+
+ + +

Edit Profile

+
+
+ + +
+
+
+
+
+ + +
+
+
+
+ + + + +
+

Birth Date. Edit

+

October 29 1995

+
+

Profile Picture

+
+
+
+
+
+
+ ); +} From 72d088349e48d86c01a26ae35ca5df1940eb68b3 Mon Sep 17 00:00:00 2001 From: ovindu Date: Wed, 1 May 2024 15:03:28 +0530 Subject: [PATCH 07/41] made xhanges to frontend --- .../src/Components/HomeSection/MealPost.jsx | 15 ++++-- .../src/Components/HomeSection/ReplyModel.jsx | 2 +- frontend/src/Components/Profile/Profile.jsx | 11 ++--- .../src/Components/Profile/ProfileModal.css | 3 ++ .../src/Components/Profile/ProfileModal.jsx | 47 ++++++++++++++----- 5 files changed, 54 insertions(+), 24 deletions(-) create mode 100644 frontend/src/Components/Profile/ProfileModal.css diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 6ec1e25..886058d 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -11,11 +11,15 @@ import FavoriteIcon from "@mui/icons-material/Favorite"; import FavoriteOutlined from "@mui/icons-material/FavoriteOutlined"; import FavoriteBorder from "@mui/icons-material/FavoriteBorder"; import ReplyModel from "./ReplyModel"; +import { useState } from "react"; const MealPost = () => { const navigate = useNavigate(); const [anchorEl, setAnchorEl] = React.useState(null); const open = Boolean(anchorEl); + const [openReplyModel, setOpenReplyModel] = useState(false); + const handleOpenProfileModel = () => setOpenReplyModel(true); + const handleCloseReplyModal = () => setOpenReplyModel(false); const handleClick = (event) => { setAnchorEl(event.currentTarget); }; @@ -27,9 +31,7 @@ const MealPost = () => { handleClose(); }; const handleEditPost = () => {}; - const handleOpenReplyModel = () => { - console.log("open reply model"); - }; + const handleCreateRepost = () => { console.log("create repost"); }; @@ -85,7 +87,10 @@ const MealPost = () => {
-
navigate(`/twit/${3}`)}> +
navigate(`/twit/${3}`)} + >

Mela Plan Cone

{
- +
); diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx index 86cd7a1..ae4c7b1 100644 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -21,7 +21,7 @@ const style = { boxShadow: 24, p: 4, outline: "none", - borderradius: 4, + borderRadius: 4, }; export default function ReplyModel(handleClose, open) { diff --git a/frontend/src/Components/Profile/Profile.jsx b/frontend/src/Components/Profile/Profile.jsx index 59f7cb3..3f71e8f 100644 --- a/frontend/src/Components/Profile/Profile.jsx +++ b/frontend/src/Components/Profile/Profile.jsx @@ -19,16 +19,15 @@ const Profile = () => { const handleBack = () => navigate(-1); - const handleOpenProfileModel = () => { - console.log("Open profile model"); - }; + const [tabValue, setTabValue] = useState("1"); + const [openProfileModel, setOpenProfileModel] = useState(false); + const handleOpenProfileModel = () => setOpenProfileModel(true); + const handleClose = () => setOpenProfileModel(false); const handleFollowUser = () => { console.log("Follow user"); }; - const [tabValue, setTabValue] = useState("1"); - const handleTabChange = (event, newValue) => { setTabValue(newValue); @@ -168,7 +167,7 @@ const Profile = () => {
- +
); diff --git a/frontend/src/Components/Profile/ProfileModal.css b/frontend/src/Components/Profile/ProfileModal.css new file mode 100644 index 0000000..c8b084b --- /dev/null +++ b/frontend/src/Components/Profile/ProfileModal.css @@ -0,0 +1,3 @@ +.hideScrollBar::-webkit-scrollbar{ + display: none +} diff --git a/frontend/src/Components/Profile/ProfileModal.jsx b/frontend/src/Components/Profile/ProfileModal.jsx index 03e33b5..8abb722 100644 --- a/frontend/src/Components/Profile/ProfileModal.jsx +++ b/frontend/src/Components/Profile/ProfileModal.jsx @@ -3,8 +3,13 @@ import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Modal from "@mui/material/Modal"; import { useFormik } from "formik"; -import { IconButton, bottomNavigationActionClasses } from "@mui/material"; +import { + Avatar, + IconButton, + bottomNavigationActionClasses, +} from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; +import "./ProfileModal.css"; const style = { position: "absolute", @@ -20,14 +25,12 @@ const style = { borderRadius: "4", }; -export default function ProfileModal() { - const [open, setOpen] = React.useState(false); +export default function ProfileModal({ open, handleOpen, handleClose}) { + //const [open, setOpen] = React.useState(false); const [uploading, setUploading] = React.useState(false); - const handleOpen = () => setOpen(true); - const handleClose = () => setOpen(false); - const handleSubmit = () => { - console.log("submit"); + const handleSubmit = (values) => { + console.log("handle submit", values); }; const formik = useFormik({ @@ -51,9 +54,9 @@ export default function ProfileModal() { return (
- + Save
-
-
+
+
-
+
+
+ + + +
+
+
Date: Wed, 1 May 2024 16:32:52 +0530 Subject: [PATCH 08/41] frontend changes to user profile --- .../Components/HomeSection/HomeSection.jsx | 30 ++++++++++++++----- .../src/Components/HomeSection/MealPost.jsx | 14 ++++----- .../src/Components/HomeSection/ReplyModel.jsx | 12 ++++---- .../src/Components/Profile/ProfileModal.jsx | 17 ++++------- 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index b9eee60..5c85dfc 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -1,8 +1,11 @@ import React, { useState } from "react"; -import { Avatar } from "@mui/material"; +import { Avatar, Button } from "@mui/material"; import * as Yup from "yup"; import { useFormik } from "formik"; import MealPost from "./MealPost"; +import ImageIcon from "@mui/icons-material/Image"; +import FmdGoodIcon from "@mui/icons-material/FmdGood"; +import TagFacesIcon from "@mui/icons-material/TagFaces"; const validationSchema = Yup.object().shape({ content: Yup.string().required("Text is required"), @@ -45,7 +48,7 @@ const HomeSection = () => { src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" />
-
+
{ )}
- {/*
- -
*/} -
+
+ +
@@ -84,7 +98,7 @@ const HomeSection = () => {
{[1, 1, 1, 1, 1].map((item) => ( - + ))}
diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 886058d..7f43363 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -4,12 +4,9 @@ import { Avatar, Button, Menu, MenuItem } from "@mui/material"; import { useNavigate } from "react-router-dom"; import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; import ChatBubbleOutlineIcon from "@mui/icons-material/ChatBubbleOutline"; -import FavoriteBorderIcon from "@mui/icons-material/FavoriteBorder"; -import FileUploadIcon from "@mui/icons-material/FileUpload"; import BarChartIcon from "@mui/icons-material/BarChart"; import FavoriteIcon from "@mui/icons-material/Favorite"; import FavoriteOutlined from "@mui/icons-material/FavoriteOutlined"; -import FavoriteBorder from "@mui/icons-material/FavoriteBorder"; import ReplyModel from "./ReplyModel"; import { useState } from "react"; @@ -38,12 +35,13 @@ const MealPost = () => { const handleLikedPost = () => { console.log("liked post"); }; + + const handleOpenReplyModel = () => { + setOpenReplyModel(true); + }; + return ( - - {/*
- -

Your Post

-
*/} +
navigate(`/profile/${6}`)} diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx index ae4c7b1..646e959 100644 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ b/frontend/src/Components/HomeSection/ReplyModel.jsx @@ -2,7 +2,7 @@ import * as React from "react"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import { Modal } from "@mui/material"; -import Typography from "@mui/material"; +import Typography from "@mui/material/Typography"; import { Avatar } from "@mui/material"; import { useNavigate } from "react-router-dom"; import ImageIcon from "@mui/icons-material/Image"; @@ -11,7 +11,7 @@ import TagFacesIcon from "@mui/icons-material/TagFaces"; import { useFormik } from "formik"; const style = { - position: absolute, + position: "absolute", top: "50%", left: "50%", transform: "translate(-50%, -50%)", @@ -24,9 +24,7 @@ const style = { borderRadius: 4, }; -export default function ReplyModel(handleClose, open) { - const [open, setOpen] = React.useState(false); - +export default function ReplyModel({ handleClose, open }) { const navigate = useNavigate(); const [selectImage, setSelectedImage] = React.useState(""); const [uploadingImage, setUploadingImage] = React.useState(false); @@ -43,6 +41,7 @@ export default function ReplyModel(handleClose, open) { }, onSubmit: handleSubmit, }); + const handleSelectImage = (event) => { setUploadingImage(true); const imgUrl = event.target.files[0]; @@ -50,6 +49,7 @@ export default function ReplyModel(handleClose, open) { setSelectedImage(imgUrl); setUploadingImage(false); }; + return (
diff --git a/frontend/src/Components/Profile/ProfileModal.jsx b/frontend/src/Components/Profile/ProfileModal.jsx index 8abb722..98b3b8c 100644 --- a/frontend/src/Components/Profile/ProfileModal.jsx +++ b/frontend/src/Components/Profile/ProfileModal.jsx @@ -1,13 +1,9 @@ -import * as React from "react"; +import React from "react"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; import Modal from "@mui/material/Modal"; import { useFormik } from "formik"; -import { - Avatar, - IconButton, - bottomNavigationActionClasses, -} from "@mui/material"; +import { Avatar, IconButton, TextField } from "@mui/material"; import CloseIcon from "@mui/icons-material/Close"; import "./ProfileModal.css"; @@ -25,8 +21,7 @@ const style = { borderRadius: "4", }; -export default function ProfileModal({ open, handleOpen, handleClose}) { - //const [open, setOpen] = React.useState(false); +export default function ProfileModal({ open, handleOpen, handleClose }) { const [uploading, setUploading] = React.useState(false); const handleSubmit = (values) => { @@ -44,6 +39,7 @@ export default function ProfileModal({ open, handleOpen, handleClose}) { }, onSubmit: handleSubmit, }); + const handleImageChange = (event) => { setUploading(true); const name = event.target; @@ -54,7 +50,6 @@ export default function ProfileModal({ open, handleOpen, handleClose}) { return (
- @@ -164,7 +159,7 @@ export default function ProfileModal({ open, handleOpen, handleClose}) {

Birth Date. Edit

October 29 1995

-

Profile Picture

+

Profile Picture

From dad8ca8cc25f8ad144ec7ec7334efbaa243f6ab4 Mon Sep 17 00:00:00 2001 From: ovindu Date: Wed, 1 May 2024 16:52:28 +0530 Subject: [PATCH 09/41] added DTO for comments and posts --- .../dto/CommentDTO.java | 16 ++++++++++++++ .../socailfitnessapplication/dto/PostDTO.java | 20 ++++++++++++++++++ backend/target/classes/application.properties | 10 +++++++++ .../dto/CommentDTO.class | Bin 0 -> 4116 bytes .../dto/PostDTO.class | Bin 0 -> 2154 bytes 5 files changed, 46 insertions(+) create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/dto/CommentDTO.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/dto/CommentDTO.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/dto/PostDTO.class diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/dto/CommentDTO.java b/backend/src/main/java/com/paf/socailfitnessapplication/dto/CommentDTO.java new file mode 100644 index 0000000..df2c7c6 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/dto/CommentDTO.java @@ -0,0 +1,16 @@ +package com.paf.socailfitnessapplication.dto; + +import lombok.Data; + +import java.util.Date; + +@Data +public class CommentDTO { + private String id; + private String text; + private String userId; + private String postId; + private Date createdAt; + private Date updatedAt; +} + diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java new file mode 100644 index 0000000..11d6f1c --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java @@ -0,0 +1,20 @@ +package com.paf.socailfitnessapplication.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Date; +import java.util.List; + +@Getter +@Setter +public class PostDTO { + private String id; + private String userId; + private List imgLink; + private String caption; + private List likedby; + private Date createdAt; + private Date updatedAt; +} + diff --git a/backend/target/classes/application.properties b/backend/target/classes/application.properties index e69de29..e66bbd4 100644 --- a/backend/target/classes/application.properties +++ b/backend/target/classes/application.properties @@ -0,0 +1,10 @@ +spring.application.name=socailfitnessapplication + + + + +spring.data.mongodb.uri=mongodb://localhost:27017/social_fitness_db + + + + diff --git a/backend/target/classes/com/paf/socailfitnessapplication/dto/CommentDTO.class b/backend/target/classes/com/paf/socailfitnessapplication/dto/CommentDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..f19071da40bac2ccc3036cebf1cae34f65f45094 GIT binary patch literal 4116 zcmb_fOOM-B6#kspv6JyU`k0nLfffSHqb0m4o(I!TTRJe)7G~N)dAf<)aVHap#3_`w z#EuQH0wFdCiEb(Z5)_0Gf(=M4Ss}4v#h)mY@7`-Co{n1u32B^re9m`{&pG$I$DUvR z`R)e*Q+U%vMnkz0td<+@sd6i*xPI-FAJ)BA%WX7je#H&_pkA(qL3uV}4}#V9xj0xEFV6uqtkSzd#G+{WkhBP(T(B+9=~Lp?k>27NOHHVWX&|DI43A^stSa zv0YgA*tiwjHE6+F>P1gwcY<))YqDgq&n3Z7OKPN;mr6y>f>NuSK52;QYAaKGtBf&) zBV&9!AUzYb9#qZ=je;bo9YGSB{>9L(tSq>Vh^5xD+gcV3*N`0-o5mW9PJuW%wGluDUDUY*6QnIqrw7uHFjWdPx4fl?)aQ zk@d0uFHPz=$xZroKb)5BJ|^0|YU2!6G!zztcC+Fg@Wn(K><+~{#n@w~_69-N3Y%_2 zow`;5O@t;`RjE4|{rcHp#Vf1QR0|Hcl`v?Y6TN9`_%PXl2(1DhbnDfc*DB2i!AiR^ zam^;Iaa=mr@KWGUCnBWmTNGl}t<@HN&g8)yUbOJCh6CNwNBruPwsX7SnphRrgrvA8 zqz>04Af94V+9-#}T)pl!XKQY&<+V(_%E7j-QE8={c%7s4+EAVd)hF!WtjLmlIb_7^ zfl@{cY`Jno%aub}t{k^=<#gq`fu0;s{2k<7nXAUt82buCUr3nXbWSQwY@%!{05)To zcbb@E{Jqk7Yj4gReJRe@_vXxLnc{q7Z_XUBDb723bLLD=aW3`dd^_&o?udptTr;A* zW8+_A=u1i&T-oj|3K6wiY=zig4I@Mw9FG{{&1ibat-Xd6ROy5?WyrDgkk|JbQn0QQ z(vl&^(?j0aYe+%hPRP6rxf8qCpLM<5(Q8O?7CIpdGUT1kjTd4eXLLNPBug$R@{ z780Oor;ng%$1e5>kR5?2B|tMyKS49jK(Swd1|m>@aUcfi7s%Y~I-Y+hckxn(=a;Y- zvuxxr{=z=~W>CWK*iT&+WB3gRDCu|vU-O#fF<8LoI7lgn8s5VkC6lkFckn1B3-4nE zk5S6w19+IHRKP{XSfJF0?=gczlx+OLNqU%4KmNoGI6`Rvk2BwS44c*^44BaV#ugJ< z{#g{SQ)2!#-nPq7VIek;F?6O?pJ^F!llN(LhsbZ)Mu zaYMOW=5O~tBNW3hVnB@1*Qz2|E&=Nzuhd3hb1k@wPccL;);gE2SGp~7%%?eaeXnY! zJNx~7=WTmP&S9V=2qnnF%i%T2Yx-Nfz-5NZcQ^%H>y=oF_EZy}o{F)F50GzAOCPyw gKR~jm%aanI!PR1zv%FryIo^r?pkBdicmu_M0j3q*H2?qr literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/paf/socailfitnessapplication/dto/PostDTO.class b/backend/target/classes/com/paf/socailfitnessapplication/dto/PostDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..5245ce50c16aa193421f4ec06e76844ad23ad3fb GIT binary patch literal 2154 zcmb7ETTc@~6h70^mX?Lqa`A>Dicku6#k<@TAtolPkZ^h5wnG`%cAMR)3I9qHjfoHb z0DqM6oSAN~D_LK5X3yn2-+X7z{QmRv7XWO*yA;G2tXAB**|bkh->ulfITfR2k&0uH#U8qEXvmkZk$f z`+(k*sMjpfxWIfJ*OJ09E#XUyN*{_^! zWe0iXEfmN(u{}ZmZR3bM6F!5I^*<^il|+q8Qe~>JJbb(~Ft}qt0+PrX1CN!2WW8rV zimVw*5A@6j7`=)v4jDsrB+!Qjj6zz2?rKrVTrj{0YFS!gGOrjgPSFNZ*zL;QPeKV! z(WU_tkk!%0f%@clVnB`@3115_T^QDZ8k76T<(XSOusyrZCHGM5G^S`tkTazRLQJ+X zx;hZT(x5d|2#TEP@9jCA10@3CQc&mc2yp1Oyb6CW=vEo+ z$tuz8z&t7w$Kk}ur1s-3Mh#ah_6WThwI4$}Hb?ET8+~@vTiH=wT(juI3yt4N{4;T7 zxF(7}VCt(1o562V8OPu{?hPFPH{d4zF}MY{@!OyL4Q9U#B&S1@?}jGNMN6KC`*=)! z;0Hqt7NUVHhB8=+mb`o=gJLw0Rd^I4U@2Pi Date: Wed, 1 May 2024 20:26:31 +0530 Subject: [PATCH 10/41] frontend changes made --- frontend/src/Components/HomeSection/HomeSection.jsx | 5 ++++- frontend/src/Components/Profile/ProfileModal.jsx | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index 5c85dfc..284911b 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -9,6 +9,7 @@ import TagFacesIcon from "@mui/icons-material/TagFaces"; const validationSchema = Yup.object().shape({ content: Yup.string().required("Text is required"), + image: Yup.mixed().required("Image is required"), }); const HomeSection = () => { @@ -17,6 +18,7 @@ const HomeSection = () => { const handleSubmit = (values) => { console.log("values ", values); + // Logic to handle form submission (e.g., API call) }; const formik = useFormik({ @@ -87,8 +89,9 @@ const HomeSection = () => { }} variant="contained" type="submit" + disabled={uploadingImage || !formik.isValid} > - Post + {uploadingImage ? "Uploading..." : "Post"}
diff --git a/frontend/src/Components/Profile/ProfileModal.jsx b/frontend/src/Components/Profile/ProfileModal.jsx index 98b3b8c..dc90475 100644 --- a/frontend/src/Components/Profile/ProfileModal.jsx +++ b/frontend/src/Components/Profile/ProfileModal.jsx @@ -21,7 +21,7 @@ const style = { borderRadius: "4", }; -export default function ProfileModal({ open, handleOpen, handleClose }) { +export default function ProfileModal({ open, handleClose }) { const [uploading, setUploading] = React.useState(false); const handleSubmit = (values) => { @@ -68,7 +68,7 @@ export default function ProfileModal({ open, handleOpen, handleClose }) {
-
); }; diff --git a/frontend/src/Components/HomeSection/NewPost.jsx b/frontend/src/Components/HomeSection/NewPost.jsx index 4a7d69f..40b0eee 100644 --- a/frontend/src/Components/HomeSection/NewPost.jsx +++ b/frontend/src/Components/HomeSection/NewPost.jsx @@ -3,12 +3,8 @@ import { v4 as uuidv4 } from "uuid"; import { IconButton, Button } from "@mui/material"; import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; -import EditIcon from "@mui/icons-material/Edit"; -import DeleteIcon from "@mui/icons-material/Delete"; - import { useDispatch } from "react-redux"; import { addPost } from "../Store/Action"; - import { uploadToS3 } from "../Config/awsS3"; const NewPost = () => { @@ -61,16 +57,6 @@ const NewPost = () => { } }; - const handleEditPost = () => { - // Placeholder logic for editing post - console.log("Edit Post"); - }; - - const handleDeletePost = () => { - // Placeholder logic for deleting post - console.log("Delete Post"); - }; - return (
+
From 0282712d020deaef2b11331898a44ed3b1c0e898 Mon Sep 17 00:00:00 2001 From: ovindu Date: Thu, 2 May 2024 13:52:12 +0530 Subject: [PATCH 11/41] added post shre class --- .../controller/PostShareController.java | 44 ++++++++++++++++++ .../entity/PostShare.java | 25 ++++++++++ .../repo/PostShareRepository.java | 9 ++++ .../service/PostShareService.java | 12 +++++ .../service/impl/PostShareServiceImpl.java | 37 +++++++++++++++ .../controller/PostShareController.class | Bin 0 -> 4408 bytes .../entity/PostShare.class | Bin 0 -> 4855 bytes .../repo/PostShareRepository.class | Bin 0 -> 483 bytes .../service/PostShareService.class | Bin 0 -> 722 bytes .../service/impl/PostShareServiceImpl.class | Bin 0 -> 1940 bytes 10 files changed, 127 insertions(+) create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/controller/PostShareController.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/entity/PostShare.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/repo/PostShareRepository.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/service/PostShareService.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostShareServiceImpl.java create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/controller/PostShareController.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/entity/PostShare.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/repo/PostShareRepository.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/service/PostShareService.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/service/impl/PostShareServiceImpl.class diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostShareController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostShareController.java new file mode 100644 index 0000000..2ddebf2 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostShareController.java @@ -0,0 +1,44 @@ +package com.paf.socailfitnessapplication.controller; + +import com.paf.socailfitnessapplication.entity.PostShare; +import com.paf.socailfitnessapplication.service.PostShareService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/api/postshares") +@RequiredArgsConstructor +public class PostShareController { + + private final PostShareService postShareService; + + @PostMapping + public ResponseEntity createPostShare(@RequestBody PostShare postShare) { + PostShare createdPostShare = postShareService.createPostShare(postShare); + return new ResponseEntity<>(createdPostShare, HttpStatus.CREATED); + } + + @GetMapping("/{id}") + public ResponseEntity getPostShareById(@PathVariable String id) { + Optional postShare = postShareService.getPostShareById(id); + return postShare.map(value -> new ResponseEntity<>(value, HttpStatus.OK)) + .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); + } + + @GetMapping + public ResponseEntity> getAllPostShares() { + List postShares = postShareService.getAllPostShares(); + return new ResponseEntity<>(postShares, HttpStatus.OK); + } + + @DeleteMapping("/{id}") + public ResponseEntity deletePostShare(@PathVariable String id) { + postShareService.deletePostShare(id); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } +} + diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/entity/PostShare.java b/backend/src/main/java/com/paf/socailfitnessapplication/entity/PostShare.java new file mode 100644 index 0000000..3aa5b48 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/entity/PostShare.java @@ -0,0 +1,25 @@ +package com.paf.socailfitnessapplication.entity; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.DBRef; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Document(collection = "postshare") +public class PostShare { + @Id + private String id; + private String caption; + private String userId; + @DBRef + private Post post; + private Date createdAt; + private Date updatedAt; +} + diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostShareRepository.java b/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostShareRepository.java new file mode 100644 index 0000000..3e5aa52 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostShareRepository.java @@ -0,0 +1,9 @@ +package com.paf.socailfitnessapplication.repo; + +import com.paf.socailfitnessapplication.entity.PostShare; +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PostShareRepository extends MongoRepository { +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/PostShareService.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/PostShareService.java new file mode 100644 index 0000000..db176ae --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/PostShareService.java @@ -0,0 +1,12 @@ +package com.paf.socailfitnessapplication.service; + +import com.paf.socailfitnessapplication.entity.PostShare; +import java.util.List; +import java.util.Optional; + +public interface PostShareService { + PostShare createPostShare(PostShare postShare); + Optional getPostShareById(String id); + List getAllPostShares(); + void deletePostShare(String id); +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostShareServiceImpl.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostShareServiceImpl.java new file mode 100644 index 0000000..2778998 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostShareServiceImpl.java @@ -0,0 +1,37 @@ +package com.paf.socailfitnessapplication.service.impl; + +import com.paf.socailfitnessapplication.entity.PostShare; +import com.paf.socailfitnessapplication.repo.PostShareRepository; +import com.paf.socailfitnessapplication.service.PostShareService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class PostShareServiceImpl implements PostShareService { + + private final PostShareRepository postShareRepository; + + @Override + public PostShare createPostShare(PostShare postShare) { + return postShareRepository.save(postShare); + } + + @Override + public Optional getPostShareById(String id) { + return postShareRepository.findById(id); + } + + @Override + public List getAllPostShares() { + return postShareRepository.findAll(); + } + + @Override + public void deletePostShare(String id) { + postShareRepository.deleteById(id); + } +} + diff --git a/backend/target/classes/com/paf/socailfitnessapplication/controller/PostShareController.class b/backend/target/classes/com/paf/socailfitnessapplication/controller/PostShareController.class new file mode 100644 index 0000000000000000000000000000000000000000..9b6ab9107337f325463760a2bc6c1f4b3a62072b GIT binary patch literal 4408 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 M8orBn@jcl81z^arJpcdz literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/paf/socailfitnessapplication/repo/PostShareRepository.class b/backend/target/classes/com/paf/socailfitnessapplication/repo/PostShareRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..f598ddc3a9d5018cce33a37cb570e464b3406c90 GIT binary patch literal 483 zcmbu6&rZWI491-SD;pqjgl9k^XB0r z;cApsFweO21>M@36r617d_FW)Fw1P^P&yyW-qPPjO!^NKm+7Ba$cdGH1Y>?U$YdDZ zTpIiS|;{^6$w$5`n LhLG-G5jw&RL>@9uy&xz=Agq>lr@CsYy6E?h*EayTf~X0BfD4^ZWuZpW=UN#%GL)hBswk|{icFqKk8W->%0cca z87qg$8fZdIKzpL*N?Mhrvi~wcO#(vgP!X1N0pqy$rwe9eXi=GT&$iGA*ef$jEBnQ=1!cSZd1BH`(afQM=YPsB zw^-wvy#mA8mT_;aEfezwo%nmWp7F%w`yb%8w&4&hcU3wHh<;o2NkA*fXHMgtvD`*f z3cilxd|6;afPfu7Hh>!6N*x;f-sM+aK$9_U6j~6#K0^T8=Pv*+u^EBJuw8U&M%^qMo>Mf1RTk3b zo@dtUmMEH1IJV(&_gECUA!>EY*mpdcubM8;2i9FOMli?_KQfO^!!qrPv3GdHi!y>? zhK;`I-C%}^`l+u2PD3Fbx5<#n^+dX~yd7wJbB1BO=yFr?&>2HD*&E1hDP*&a%%m={ zhhcEXDe+M-T+tE1NDSk+8bQ1tl`cw2M*_RM3>u$0Vop8|z?#uULM!)i|%yR#C~C8?{63elQO$@|eg`)mR176>8ox4$7+V7+&`lsb^`?k&T9Bz_8XE*&Q_z;_tYu zI;DNnHEUdQmtu=oxD1P6ySZCpNOp>sm#(lYr{XoFu#COBx(%kKLduJZZOVpA3ViHy z+vX)g&t_DO%N{7=|~6 zEo7D<+s6&R=ze8Vg(wE_RL2^gF$^SAM2_a2hFj!sgt`GUVdNbhaYfxZ`ghQv&Qaq9 z;R(7PTej^;zo(Ma$(-X>46m;0tgH(2v*Ug;JStD_$Yz}zEnEh3)G-F=8KNhl8V7Z6 zH6BG28e%ltrmsfdvGh0S%O@Dq@Eg~@kVV53y@zQvFoEmzo(fiC8Z$JbJ-C6J^#2x( zhZs#jlUdv*mv?Ba;jZuE6^)dOSj)wnhHn0J2R|0_V_3veo4@Gu?;}aHfS>aD>$F4# z8CCofq}dt#tdG}&RV_TjL#z-ySfD*ylh literal 0 HcmV?d00001 From 86134b91f0db149490f1765236649587fb11c6d9 Mon Sep 17 00:00:00 2001 From: ovindu Date: Thu, 2 May 2024 14:08:21 +0530 Subject: [PATCH 12/41] added post shre DTO class --- .../dto/PostShareDTO.java | 36 ++++++++++++++++++ .../dto/PostShareDTO.class | Bin 0 -> 4609 bytes 2 files changed, 36 insertions(+) create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/dto/PostShareDTO.java create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/dto/PostShareDTO.class diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostShareDTO.java b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostShareDTO.java new file mode 100644 index 0000000..c336bdd --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostShareDTO.java @@ -0,0 +1,36 @@ +package com.paf.socailfitnessapplication.dto; + +import com.paf.socailfitnessapplication.entity.Post; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class PostShareDTO { + private String id; + private String caption; + private String userId; + private Post post; + private Date createdAt; + private Date updatedAt; + + // Optional: You can add static methods to convert between entities and DTOs if needed + // For example: + // public static PostShareDTO fromEntity(PostShare postShare) { + // return new PostShareDTO(postShare.getId(), postShare.getCaption(), postShare.getUserId(), postShare.getPost(), postShare.getCreatedAt(), postShare.getUpdatedAt()); + // } + // + // public PostShare toEntity() { + // PostShare postShare = new PostShare(); + // postShare.setId(this.getId()); + // postShare.setCaption(this.getCaption()); + // postShare.setUserId(this.getUserId()); + // postShare.setPost(this.getPost()); + // postShare.setCreatedAt(this.getCreatedAt()); + // postShare.setUpdatedAt(this.getUpdatedAt()); + // return postShare; + // } +} diff --git a/backend/target/classes/com/paf/socailfitnessapplication/dto/PostShareDTO.class b/backend/target/classes/com/paf/socailfitnessapplication/dto/PostShareDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..4918f24ad5bd9275bb292c0e3b78ddac5f87e7ea GIT binary patch literal 4609 zcmb_fU2hy`6@F%SW@mOiwl{8_W=LpCvUTjWooxtT9mh%CP0|?bB(0Ma+5(;IPO=lP zcecB;f$-HrFOU!ta7Bf zf?Tibc2jZ9nh04WfuU_CaD`&|Raj#uZ#M(_a zkgXn{ol85ETJ`I09z3!M4LJpqYhKH}*xS19cCI+ro31#+m^80B9Z%k4rW!Q7u7Z;v zee&IbbUg+~gMn0d-X9t8!a>^X?q zR1%Is+yq@RF$Ob2UrmB2f@3DeMWA(~a8A$ejpp1n-p0BcH2nHyr{iq7f!kq>3RH=` zrH_1xe57ZjBhOCEKAK~)lPP8g4m}nhXy8u*>ifaObKmGWO`d7T@uSpTntP={M?Y=i zGdQWhs5z~3f)?iIOiW<1fGlhipTtSwoig!+@D!Xj@v(?{&cw&@r0||M@d+Fe>a2;U zaYTXQ@2rb>SBBIN8g7T-kd!J(`4}N5B+Zc7ublBn(tjTd#Ys7tku-VDhr+1D3Xv#! znTU)If;SnP9dIJZP#wjPAWQTW}9#63`-ZHU?rh+H7oK3gtx7Y<=_5!-s>IP0LU<$o8Y%Fea zdu{!{IH}Dmcgkyd!RavG*CgI;6I)<|{r>-Ywnu6&k#B>7+x;#DSlIA;otk^zlTNx% zsy!JX$7MwD)}HtMpc{0YcGNk#1>DBhb$pG@XfQ;))@^^&twdptuH(E@3;fO_O$ATyiB+2S zI=-vm$%jK(p;4&Vz?fOAg&Z<68%bqkP=zZ;Q@C=rge#{;xN=BvouVciCZ9#VRk$i# zweoMV@7E#hF+Ou4Gmpnfn-Kuh*v~hXU8?ed(UjSYX=3-z2S-z8|4vapJeo3Fev0zZ z(UdtQQj}*#Q=Y{fZ>PxM*<3Rc-tzo5_Wg!b2D`((KSIRemaCBaRZu2cW4opy1@q}9 z4~%M3Ql)QF4^1wln>;wGNy)mtNh375h~so-kK>0&H7N<)H<=GjR`5)k$)ls1lv?PU z91BgJNH;k%s!1uUzRB^>BtJu@|* zUrBuS;sPJGy7(82S?c@PcNgZOrQXN031Z3C2wAdomL{0o`vp45|Db2{%7~(`8!cu`g#5U=Ww2ZoW{TK0$WW6CHx&1$jdVK|AtjkDka-Z|E z90LA7@H#0SKjPGKNEzVeDo0>`K!(c8RTN$*mk;MNXCSEo~b|%T{h1dwTj Date: Thu, 2 May 2024 15:05:21 +0530 Subject: [PATCH 13/41] few refinements --- frontend/src/Components/Profile/Profile.jsx | 33 +++++++------------ .../src/Components/Profile/ProfileModal.jsx | 8 +++-- 2 files changed, 16 insertions(+), 25 deletions(-) diff --git a/frontend/src/Components/Profile/Profile.jsx b/frontend/src/Components/Profile/Profile.jsx index 3f71e8f..dca16ba 100644 --- a/frontend/src/Components/Profile/Profile.jsx +++ b/frontend/src/Components/Profile/Profile.jsx @@ -31,9 +31,9 @@ const Profile = () => { const handleTabChange = (event, newValue) => { setTabValue(newValue); - if (newValue === 3) { + if (newValue === "3") { console.log("meal plan"); - } else if (newValue === 1) { + } else if (newValue === "1") { console.log("posts"); } }; @@ -47,7 +47,6 @@ const Profile = () => { className="cursor-pointer" onClick={handleBack} /> -

Raam Kapoor

@@ -68,23 +67,13 @@ const Profile = () => { sx={{ width: "10rem", height: "10rem", border: "4px solid white" }} /> - {true ? ( - - ) : ( - - )} +
@@ -154,8 +143,8 @@ const Profile = () => { - {[1, 1, 1, 1].map((item) => ( - + {[1, 1, 1, 1].map((item, index) => ( + ))} diff --git a/frontend/src/Components/Profile/ProfileModal.jsx b/frontend/src/Components/Profile/ProfileModal.jsx index dc90475..8ce7666 100644 --- a/frontend/src/Components/Profile/ProfileModal.jsx +++ b/frontend/src/Components/Profile/ProfileModal.jsx @@ -18,10 +18,10 @@ const style = { boxShadow: 24, p: 4, outline: "none", - borderRadius: "4", + borderRadius: "4px", }; -export default function ProfileModal({ open, handleClose }) { +const ProfileModal = ({ open, handleClose }) => { const [uploading, setUploading] = React.useState(false); const handleSubmit = (values) => { @@ -167,4 +167,6 @@ export default function ProfileModal({ open, handleClose }) {
); -} +}; + +export default ProfileModal; From fe246e294bdd4abb7a50780de4b3793739158e8d Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 3 May 2024 12:45:55 +0530 Subject: [PATCH 14/41] frontend changes for posts --- frontend/src/Components/HomeSection/MealPost.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 7f43363..6c1e8e7 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -47,7 +47,7 @@ const MealPost = () => { onClick={() => navigate(`/profile/${6}`)} className="cursor-pointer" alt="username" - src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" + src="https://images.pexels.com/photos/2827400/pexels-photo-2827400.jpeg?auto=compress&cs=tinysrgb&w=600" />
From ae7046669bb0d2f0c64420de27d4f2fb11556dc0 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 3 May 2024 13:48:55 +0530 Subject: [PATCH 15/41] Frontend link changes --- frontend/src/Components/HomeSection/MealPost.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 6c1e8e7..a47969d 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -47,7 +47,7 @@ const MealPost = () => { onClick={() => navigate(`/profile/${6}`)} className="cursor-pointer" alt="username" - src="https://images.pexels.com/photos/2827400/pexels-photo-2827400.jpeg?auto=compress&cs=tinysrgb&w=600" + src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" />
@@ -92,7 +92,7 @@ const MealPost = () => {

Mela Plan Cone

meal
From f01a84fdd011eae134db099abd42c998a69e86d2 Mon Sep 17 00:00:00 2001 From: "Sanduni K. Fernando" <99643747+IT21063596@users.noreply.github.com> Date: Tue, 7 May 2024 13:05:13 +0530 Subject: [PATCH 16/41] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 33ccd40..c39a70c 100644 --- a/README.md +++ b/README.md @@ -11,5 +11,5 @@ Please go under edit and edit this file as needed for your project #### Brief Description of your Solution - -Note - The student's github account should be given in brackets e.g. (asiriRepos), this ideally should be your student id +The goal of this project is to develop a user-friendly social media platform tailored for fitness enthusiasts to share their fitness journey, workouts, and healthy lifestyle tips. This platform will facilitate users in uploading media content, sharing workout statuses, exchanging workout and meal plans, and interacting with other users. The goal is to foster a supportive community where individuals can inspire and motivate each other to achieve their fitness goals. From 5ff8efc3cf565037bcdf7b67f74d23a6b352437f Mon Sep 17 00:00:00 2001 From: ovindu Date: Tue, 7 May 2024 13:52:50 +0530 Subject: [PATCH 17/41] updated backend for posts,like and comments --- .../controller/CommentController.java | 17 ++-- .../controller/LikeController.java | 49 +++++++++++ .../controller/PostController.java | 25 +++++- .../entity/Comment.java | 15 ++-- .../socailfitnessapplication/entity/Like.java | 22 +++++ .../socailfitnessapplication/entity/Post.java | 8 +- .../repo/CommentRepository.java | 5 +- .../repo/LikeRepository.java | 13 +++ .../repo/PostRepository.java | 10 ++- .../service/CommentService.java | 3 +- .../service/LikeService.java | 13 +++ .../service/PostService.java | 4 + .../service/impl/CommentServiceImpl.java | 13 +-- .../service/impl/LikeServiceImpl.java | 45 ++++++++++ .../service/impl/PostServiceImpl.java | 20 +++++ .../controller/CommentController.class | Bin 4934 -> 4779 bytes .../controller/LikeController.class | Bin 0 -> 4701 bytes .../controller/PostController.class | Bin 5347 -> 6375 bytes .../entity/Comment.class | Bin 4588 -> 1883 bytes .../entity/Like.class | Bin 0 -> 1644 bytes .../entity/Post.class | Bin 2860 -> 3662 bytes .../repo/CommentRepository.class | Bin 679 -> 727 bytes .../repo/LikeRepository.class | Bin 0 -> 715 bytes .../repo/PostRepository.class | Bin 664 -> 834 bytes .../service/CommentService.class | Bin 1046 -> 825 bytes .../service/LikeService.class | Bin 0 -> 789 bytes .../service/PostService.class | Bin 1001 -> 1283 bytes .../service/impl/CommentServiceImpl.class | Bin 2615 -> 2233 bytes .../service/impl/LikeServiceImpl.class | Bin 0 -> 2173 bytes .../service/impl/PostServiceImpl.class | Bin 2543 -> 3219 bytes frontend/package-lock.json | 80 ++++++++++++++++++ frontend/package.json | 4 + 32 files changed, 310 insertions(+), 36 deletions(-) create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/controller/LikeController.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/entity/Like.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/repo/LikeRepository.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/service/LikeService.java create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/service/impl/LikeServiceImpl.java create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/controller/LikeController.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/entity/Like.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/repo/LikeRepository.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/service/LikeService.class create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/service/impl/LikeServiceImpl.class diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/CommentController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/CommentController.java index d8747c8..863bee1 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/controller/CommentController.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/CommentController.java @@ -6,7 +6,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; - +import java.util.List; import java.util.Optional; @RestController @@ -29,11 +29,16 @@ public ResponseEntity getCommentById(@PathVariable String id) { .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); } - @PutMapping("/{id}") - public ResponseEntity updateComment(@PathVariable String id, @RequestBody Comment comment) { - Optional updatedComment = commentService.updateComment(id, comment); - return updatedComment.map(value -> new ResponseEntity<>(value, HttpStatus.OK)) - .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); + @GetMapping("/user/{userId}") + public ResponseEntity> getAllCommentsByUserId(@PathVariable String userId) { + List comments = commentService.getAllCommentsByUserId(userId); + return new ResponseEntity<>(comments, HttpStatus.OK); + } + + @GetMapping("/post/{postId}") + public ResponseEntity> getAllCommentsByPostId(@PathVariable String postId) { + List comments = commentService.getAllCommentsByPostId(postId); + return new ResponseEntity<>(comments, HttpStatus.OK); } @DeleteMapping("/{id}") diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/LikeController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/LikeController.java new file mode 100644 index 0000000..5b6c3f0 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/LikeController.java @@ -0,0 +1,49 @@ +package com.paf.socailfitnessapplication.controller; + +import com.paf.socailfitnessapplication.entity.Like; +import com.paf.socailfitnessapplication.service.LikeService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/api/likes") +@RequiredArgsConstructor +public class LikeController { + + private final LikeService likeService; + + @PostMapping + public ResponseEntity createLike(@RequestBody Like like) { + Like createdLike = likeService.createLike(like); + return new ResponseEntity<>(createdLike, HttpStatus.CREATED); + } + + @GetMapping("/{id}") + public ResponseEntity getLikeById(@PathVariable String id) { + Optional like = likeService.getLikeById(id); + return like.map(value -> new ResponseEntity<>(value, HttpStatus.OK)) + .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); + } + + @GetMapping("/user/{userId}") + public ResponseEntity> getAllLikesByUserId(@PathVariable String userId) { + List likes = likeService.getAllLikesByUserId(userId); + return new ResponseEntity<>(likes, HttpStatus.OK); + } + + @GetMapping("/post/{postId}") + public ResponseEntity> getAllLikesByPostId(@PathVariable String postId) { + List likes = likeService.getAllLikesByPostId(postId); + return new ResponseEntity<>(likes, HttpStatus.OK); + } + + @DeleteMapping("/{id}") + public ResponseEntity deleteLike(@PathVariable String id) { + boolean deleted = likeService.deleteLike(id); + return deleted ? new ResponseEntity<>(HttpStatus.NO_CONTENT) : new ResponseEntity<>(HttpStatus.NOT_FOUND); + } +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java index 5ae678a..6f0e953 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java @@ -6,7 +6,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; - import java.util.List; import java.util.Optional; @@ -30,12 +29,36 @@ public ResponseEntity getPostById(@PathVariable String id) { .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); } + @GetMapping + public ResponseEntity> getAllPosts() { + List posts = postService.getAllPosts(); + return new ResponseEntity<>(posts, HttpStatus.OK); + } + @GetMapping("/user/{userId}") public ResponseEntity> getAllPostsByUserId(@PathVariable String userId) { List posts = postService.getAllPostsByUserId(userId); return new ResponseEntity<>(posts, HttpStatus.OK); } + @GetMapping("/search") + public ResponseEntity> searchPostsByKeyword(@RequestParam String keyword) { + List posts = postService.searchPostsByKeyword(keyword); + return new ResponseEntity<>(posts, HttpStatus.OK); + } + + @GetMapping("/likedby/{userId}") + public ResponseEntity> getPostsLikedByUser(@PathVariable String userId) { + List posts = postService.getPostsLikedByUser(userId); + return new ResponseEntity<>(posts, HttpStatus.OK); + } + + @GetMapping("/commentedby/{userId}") + public ResponseEntity> getPostsCommentedByUser(@PathVariable String userId) { + List posts = postService.getPostsCommentedByUser(userId); + return new ResponseEntity<>(posts, HttpStatus.OK); + } + @PutMapping("/{id}") public ResponseEntity updatePost(@PathVariable String id, @RequestBody Post post) { Optional updatedPost = postService.updatePost(id, post); diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Comment.java b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Comment.java index 555c603..7dcd0db 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Comment.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Comment.java @@ -1,24 +1,23 @@ package com.paf.socailfitnessapplication.entity; + import lombok.AllArgsConstructor; -import lombok.Data; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; - import java.util.Date; -@Data -@NoArgsConstructor +@Setter +@Getter @AllArgsConstructor +@NoArgsConstructor @Document(collection = "comments") - public class Comment { @Id private String id; - private String text; private String userId; private String postId; + private String text; private Date createdAt; - private Date updatedAt; } - diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Like.java b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Like.java new file mode 100644 index 0000000..ce07b37 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Like.java @@ -0,0 +1,22 @@ +package com.paf.socailfitnessapplication.entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; +import java.util.Date; + +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +@Document(collection = "likes") +public class Like { + @Id + private String id; + private String userId; + private String postId; + private Date createdAt; +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java index b19ebaf..cf1e8c4 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java @@ -1,11 +1,11 @@ package com.paf.socailfitnessapplication.entity; + import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; - import java.util.Date; import java.util.List; @@ -14,14 +14,14 @@ @AllArgsConstructor @NoArgsConstructor @Document(collection = "posts") - public class Post { @Id private String id; private String userId; - private List imgLink; + private List imgLinks; private String caption; - private List likedby; + private List likes; + private List comments; private Date createdAt; private Date updatedAt; } diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/repo/CommentRepository.java b/backend/src/main/java/com/paf/socailfitnessapplication/repo/CommentRepository.java index 9d69e87..b4f98c4 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/repo/CommentRepository.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/repo/CommentRepository.java @@ -3,10 +3,11 @@ import com.paf.socailfitnessapplication.entity.Comment; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.stereotype.Repository; - import java.util.List; @Repository public interface CommentRepository extends MongoRepository { - List findAllByPostId(String postId); + List findByUserId(String userId); // Retrieve comments by user ID + List findByPostId(String postId); // Retrieve comments by post ID + // You can add more custom query methods as needed } diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/repo/LikeRepository.java b/backend/src/main/java/com/paf/socailfitnessapplication/repo/LikeRepository.java new file mode 100644 index 0000000..530cc56 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/repo/LikeRepository.java @@ -0,0 +1,13 @@ +package com.paf.socailfitnessapplication.repo; + +import com.paf.socailfitnessapplication.entity.Like; +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; +import java.util.List; + +@Repository +public interface LikeRepository extends MongoRepository { + List findByUserId(String userId); // Retrieve likes by user ID + List findByPostId(String postId); // Retrieve likes by post ID + // You can add more custom query methods as needed +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostRepository.java b/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostRepository.java index 3d07ccd..8b994e9 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostRepository.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/repo/PostRepository.java @@ -3,11 +3,13 @@ import com.paf.socailfitnessapplication.entity.Post; import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.stereotype.Repository; - import java.util.List; @Repository -public interface PostRepository extends MongoRepository { - List findByUserId(String userId); +public interface PostRepository extends MongoRepository { + List findByUserId(String userId); // Retrieve posts by user ID + List findByCaptionContainingIgnoreCase(String keyword); // Search posts by keyword in the caption + List findByLikesUserId(String userId); // Retrieve posts liked by a specific user + List findByCommentsUserId(String userId); // Retrieve posts commented on by a specific user + // You can add more custom query methods as needed } - diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/CommentService.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/CommentService.java index 14c2698..4779e66 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/service/CommentService.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/CommentService.java @@ -7,8 +7,7 @@ public interface CommentService { Comment createComment(Comment comment); Optional getCommentById(String id); + List getAllCommentsByUserId(String userId); List getAllCommentsByPostId(String postId); - Optional updateComment(String id, Comment comment); boolean deleteComment(String id); } - diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/LikeService.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/LikeService.java new file mode 100644 index 0000000..47d5910 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/LikeService.java @@ -0,0 +1,13 @@ +package com.paf.socailfitnessapplication.service; + +import com.paf.socailfitnessapplication.entity.Like; +import java.util.List; +import java.util.Optional; + +public interface LikeService { + Like createLike(Like like); + Optional getLikeById(String id); + List getAllLikesByUserId(String userId); + List getAllLikesByPostId(String postId); + boolean deleteLike(String id); +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/PostService.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/PostService.java index 55561b1..232b6bf 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/service/PostService.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/PostService.java @@ -7,7 +7,11 @@ public interface PostService { Post createPost(Post post); Optional getPostById(String id); + List getAllPosts(); List getAllPostsByUserId(String userId); + List searchPostsByKeyword(String keyword); + List getPostsLikedByUser(String userId); + List getPostsCommentedByUser(String userId); Optional updatePost(String id, Post post); boolean deletePost(String id); } diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/CommentServiceImpl.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/CommentServiceImpl.java index ea81e08..207c0c0 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/CommentServiceImpl.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/CommentServiceImpl.java @@ -5,7 +5,6 @@ import com.paf.socailfitnessapplication.service.CommentService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; - import java.util.List; import java.util.Optional; @@ -26,17 +25,13 @@ public Optional getCommentById(String id) { } @Override - public List getAllCommentsByPostId(String postId) { - return commentRepository.findAllByPostId(postId); + public List getAllCommentsByUserId(String userId) { + return commentRepository.findByUserId(userId); } @Override - public Optional updateComment(String id, Comment comment) { - if (commentRepository.existsById(id)) { - comment.setId(id); - return Optional.of(commentRepository.save(comment)); - } - return Optional.empty(); + public List getAllCommentsByPostId(String postId) { + return commentRepository.findByPostId(postId); } @Override diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/LikeServiceImpl.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/LikeServiceImpl.java new file mode 100644 index 0000000..2735241 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/LikeServiceImpl.java @@ -0,0 +1,45 @@ +package com.paf.socailfitnessapplication.service.impl; + +import com.paf.socailfitnessapplication.entity.Like; +import com.paf.socailfitnessapplication.repo.LikeRepository; +import com.paf.socailfitnessapplication.service.LikeService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class LikeServiceImpl implements LikeService { + + private final LikeRepository likeRepository; + + @Override + public Like createLike(Like like) { + return likeRepository.save(like); + } + + @Override + public Optional getLikeById(String id) { + return likeRepository.findById(id); + } + + @Override + public List getAllLikesByUserId(String userId) { + return likeRepository.findByUserId(userId); + } + + @Override + public List getAllLikesByPostId(String postId) { + return likeRepository.findByPostId(postId); + } + + @Override + public boolean deleteLike(String id) { + if (likeRepository.existsById(id)) { + likeRepository.deleteById(id); + return true; + } + return false; + } +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostServiceImpl.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostServiceImpl.java index 4bf7185..45a80c3 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostServiceImpl.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/PostServiceImpl.java @@ -24,11 +24,31 @@ public Optional getPostById(String id) { return postRepository.findById(id); } + @Override + public List getAllPosts() { + return postRepository.findAll(); + } + @Override public List getAllPostsByUserId(String userId) { return postRepository.findByUserId(userId); } + @Override + public List searchPostsByKeyword(String keyword) { + return postRepository.findByCaptionContainingIgnoreCase(keyword); + } + + @Override + public List getPostsLikedByUser(String userId) { + return postRepository.findByLikesUserId(userId); + } + + @Override + public List getPostsCommentedByUser(String userId) { + return postRepository.findByCommentsUserId(userId); + } + @Override public Optional updatePost(String id, Post post) { if (postRepository.existsById(id)) { diff --git a/backend/target/classes/com/paf/socailfitnessapplication/controller/CommentController.class b/backend/target/classes/com/paf/socailfitnessapplication/controller/CommentController.class index ff1c4d146fcc20263ac7d92abfa062254a3e9ca8..b7b4266214431631fe319a6dcdb5a8c15a92d9bb 100644 GIT binary patch delta 1125 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 literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/paf/socailfitnessapplication/controller/PostController.class b/backend/target/classes/com/paf/socailfitnessapplication/controller/PostController.class index ba9409939a06f1ddadbf86a8f050231e96a6e5f6..713cc06c99f2095211e3992bc5735037979b5a7b 100644 GIT binary patch delta 1662 zcmb7ETXR!Y6#jP7(q3tLsG-+|#B0_Jp5o(iGlR}M% zsTTyTfVvc|_X~t*!K@rCgh$czuZ>GpAgPHY`en>|@dKofW0{gilMbJJnni_7&cQdzuH zu6%5NQS5-s-lHQWvje4^*6~axH8yc2uRJzXa$U)Fs^qke5%iv}vUdqbR!0VW06k&) z!{w(rdyKwu{9xU$V-kz-tn0|7j#BZQ{}8pCw4Y$Xkt z9rT-7v)Qo{&*(Tve>&6FX^DA(GI}*F=@+c8;|&cnbkx;geiLuedDlhp8qK()74JA8 z@V<^Cuz9R_&w!0jG)!~u@{SWSbW+DrBslc3frJ4C|6Ip01)pWO0fn2_@uI?=Vw`~9 zHa3>Zwx$Pjxl~TWIe}FaatCP2qtQ-}z3jX|^(9B0aMKA-ucaJLR8YS+Kvl+J*UfAN zu>w`7L68=Vcp(8Z>^xH@Bsm6Hxw1>CoYno}Gx zqmI80g{tMX4)qdW%)%<%s-il&(Zjr(+0uD+@V6V=cqeLk_8MWiRKj*uf?Jg!5ZeKf z!vj?5tra`yE^oCZ%<sRxjYI(P6c`b|F zp+s)5<&pmoc}R(jDv@<8vR;bZdxIhwj9tFGaV7!e=&Q^8V~5Y~rOso!aD84Ly2UD^FXE zAkF%WwU3#wAvgm=UeW>%EMn>;Tt(w)HvT=Xo0uX_zxzVkvpB@_a+m`C>gaR4led32 zuX6MqkwrWoiJpZq&z4DzyL=+tC=K`{;s{Oq*Hi}8*vrwD10F*dFdXuQ(@*}2P)Ysj z>?)PP3XD6ZIGV4?!LMI(6t2b5QsUrAeMwdKvN{$Y*GX)@!u1s2(5pDkc7$&0ztjafb2okLoNIv4qNh0Cf)^8~^|S delta 987 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 IA3uQee}oiGWdHyG diff --git a/backend/target/classes/com/paf/socailfitnessapplication/entity/Like.class b/backend/target/classes/com/paf/socailfitnessapplication/entity/Like.class new file mode 100644 index 0000000000000000000000000000000000000000..f30e929e9d47a34d2cd886cb2fed80e489aca12a GIT binary patch literal 1644 zcmb7E+iuf95FNWoN>Z1)SK1UP<<=ycZc^0>sZxN7Lf#!`n{Mmak-Y)&S0E7~ z@xTZ0QHV3^kRakp;UO9C?97>&Gsph<>-!HPdQK0g$+l?6k2<33or)y#Jr$fP9m*u} zy4^teo>oyPWT=(?BJk1(-rFk?|3V6uMEO z`Jw2?($liFkMeF>xu;bi4&g*XK9MGDxia2WwP8{2AZp1XSv2oZo(dMt)m128_c~1( zzw^*3&jUt+h8HV751cuDrqKFc{eNgfKkh53&!X0`$8%~K1EYu*-90|7%-;xO`i9S9g3DEUzkK&_B82nv9i&?Y#W!po2&n^l0*G)`=< zz}mbKW3dBcK`v|w_p@{r_j5Qsfwf@^we3E+UrgKrpAkh^$0Gh$(g<3jWt{jft+s;a zJh~wl!Pl}OS0{z!W-XL5kVOMo&W2o{6q4s2LY55V4Z4{%_{OA=OyLl6#z1b;ZMc|A z0n4oAYhTIzj0c-WR62%A&PKq1N{jAfCa+GGd^aLUQ19;>IF`T=rNQ$KlYI#VcUEMwR>^*nS`mcZf_>+jfq^C1fP-xwB2l~)B z)qU4A?Ea}8IF|1l!(rbxjlgyt-Esmuc&Q({elSDR3e{d1KN@=9aC-XVlNXj5C{(b! z3e`LDhoiu=o!+KGjVB{4A6Un>Z=dw79mjD40qZN&?6_V}_lF#M>KOy;C)YdEyGCH> zMii$XbOBQu`IdKpBxQTh>)6g2me*vyQDFD=j_n5ss~p)q#|TEArO@?>&s%AF+gLJV z8bjWuLdCv)W&!tJYGK|IbpWu*pk=HWpl(3heQmT|i6H&LxU9#EDsnJP<$o?WgZ`>RAC-hn0Tb_Vn{!hm&xCl zoXu2q?U-?Is8ppZ3N2sU&CB8Wj;ctwE7j-tn<~vQk20oNNfs}iF7NKcUXWCDmFAfW zZ!we===-ma9`}Y!@Tp1*oIvFSajRS?qUaSF{)I}5bXA5wJ8vDX!CjS>_(QQLo9JqD zE!{;B5TB)h*b|3FvenNQ#JVZ8nwrd%O`$5VLPekh2B8l3GXP#u2uU<9{)7Jk8CM@A zWXf^HFYZ4)o*WaE8D_R+J9eGMdaSdFj=XOtY)AcNUfNKz;_i<;+8)pbipH^`2rf?;fslbkm z(F{iXEaO>VcN9;!8Rk^+K8ty{m3W7>MDsPw!wI5s9b+7I5r>nFXC2>`=?%=kiP2p= z3wV~an`3JHD&pSeF`@{$-ogK68A0#Tdl>OI$?|=?7vU9DL-4h1$d$a1yh(*Z$cljc zkglUHa=#x5ww)x~Rfe9T|7I)e)YL<0FYv=+$-&2oWS^vyweu#E&67;FAX+9&wjeTpMxR58RR3(`Ef#lVRIEh- zc{>~OPF_fE?g(;8KyK0&rkJIUC--wv`;8jE;H8jgn_1E1vNeiflPmaroV9o*-{Nih z3Mpjg-b*o9%?GlR$w14u_4Qi1$!?RV-3$J5rww4&V_)2h~(9+RduieqYNjnWuFjhQiRXpQoiL>nf( zW==HC4-zeM#&+n8$RJ#sowd!sLWRG#g=0^PIX=@x@x}*^eY`Dvnw`JRzro=BdyL^woCq5nh3yy=!DgXcg literal 2860 zcmbVO?Q+{h6uq)78yh7yX&W%m@R8Cus%ud`OPi*IghFNvbQ+rfvb=G(ktL5L!{l*z z1DL@B!w(*ShhjK)SN=#WQo&@J)$ZOs_w3nwPx{y2fBZ>A59qK$1%ujNICMtti4%vO zEBzCh1R{>z(a4vco5(P5M3Bhj%y}HfNrg%VHJ-aaxQ_1z1LwQmbKxZh6=dI_weEc5 zD2Ze+xNlJN$r#6n;#kJA=Zn1{2onVx8`SEC(ZGpE9C{MDL-Au6ojQFtaUFLS=N$F{ zQy#}6Iz*C+91glNI0X%zZk$Np>B=}kRP{&>0yh~)!k`-$ws)4>*5a-+1QgeLEqSYyluGXEG zZ&_4l7>lFlk8qBkdIg=;v8X|>=eIO0CwKNcfL#KkQ zP2=Z^7<6-KF;fr?mEKiP(i?&(k}TZoe44bpIA(SkRQ`?(WU_0}Sw@L1UrMjcY3Gel zClrGPgj8ySe)>PTGu3$^pG!_%#<504`of}J+Bc}!;_|H>h2zK*k0du)mEEhu{$$YI zf47}s7!1OG&+)=YI765qoXI%|z3~txi1w;^q3^@-lwp`7V8-+g>a7Svg`0AVV^+b8 z$Coe`xZTu<{=k~0zE`l0`d8m5_;c&1Xtj<4#@N8#6}pP}Yna``Sio4eZ%t_Z7Zvv! z&k;qyZsPa4j-c1+4a|5?vw9QXCR##4UeAWy$P3ArGAMumhoJ08ZTmOcQ~qJMC$wSTp3tVP$0Nk?NN&KU070$mTH7P2=WC%gjr0stheoEt2{qGBQohW0JOHVPxQC;9y{4-~^h_#K6VC g1Eg6Q8Tfz{GXpG6R3%afs26$NV76Ba04l3241irA5@Z`K>)~SV_;+uWMBXQ<_r=m diff --git a/backend/target/classes/com/paf/socailfitnessapplication/repo/LikeRepository.class b/backend/target/classes/com/paf/socailfitnessapplication/repo/LikeRepository.class new file mode 100644 index 0000000000000000000000000000000000000000..2247a341f1afc4bbf7f7266cf48b03bf7be85c45 GIT binary patch literal 715 zcmbtSOHRWu6nt)JLrZ}|*|28;Lc$w%0VG%;A*G^ffxVkJ!EItk_6sP-;5sZg0Ea@@ zX+?`v2@ng*-#2e&JntW`Zvb!(dmhvXoQ5i+Ig6=LAromVP;z5fo~I&YD3qj{=ZXem z%7=Dg1S(y6utuOeVNZ;vOeXYpJmDdF&?Mk1olui&A(L3Mj6W+qr4d6$GbIxhjVrtv z4DGw41uTJ1EM#<5-W#rOA_518!J^3s9jJdaJ1S75mX$%DKx-rt$*|Czz}+uO&VnCB zbBO}WO16JtTQrL~rEZ_&qlyO1i9@c<7wLgA=twuMOVy%1QiTrrwMZ?m-ggI2oGt<{ zOZsLe`oTX8{G+g?=5uqM)cs*$#b^9M7%@)yrIZS*Bv`4(E7=+A16Nq)oGw1ow_zYq xx1(X>R$1Eayw{4$IcA`8{o3Ex$0`mzNo`?^}ai=+ksuXZ(7tIz$XVI+?fCX literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/paf/socailfitnessapplication/repo/PostRepository.class b/backend/target/classes/com/paf/socailfitnessapplication/repo/PostRepository.class index 89a89b4f37c8331fd52c5ef902375fad015f2e2e..5ea8dc6df709555dda7bf57c9349ec36a265798b 100644 GIT binary patch delta 230 zcmbQidWend)W2Q(7#J9A8N@bnc`$}6re)@(I8{0)7L;V>=Q-!+l_X~7W#*-Orsw4s zr8*}Tr!q3IXQx({=NF|gG6+Ic`($RP7Kaw67I^~2M4%?*=jNv7l|Y3z2Qcz6GO|pL zXOhlmVPxQC;9y{4-~`&s#K6VC1Eg6Q8Tc3&fKvR}q`1LS0yv}?m>C4YMhQWU6lM?s M^4S;|8AKTv06xPhQvd(} delta 62 zcmX@aHiMPx)W2Q(7#J9A8H6@+c`$BX&B(*Z%E-dVz&@FmSxTB0D8IMz~-$mH3KGVE*x z`NbukDU+?3mm2dkFfnig^)WFBFmM2ARz?P41_l;J1`!5P21b|=FHnY&K@6-;8~|hR B6odc( delta 194 zcmdnVHjRVp)W2Q(7#J9A86-DyEoI~k$S*GOOkreDnS7s7dGc+>IGqBh2ybaYN@7W> zbAE1aYF-H=L!^dJR$^JAeokUux_)p;QD$Dc^~6GBO|W2TNoJ0|e?duReqLgZH6ue0 zcEyte89gQ^Gc7h3W?*9A20DX@L4<(=NOLkV@B%4z1_l;J22lnv21c+jDmvCGGkH9%kM>Jyts#DIS8c34}tyz{S$(fO9Lbb@p zk_#HjHxW(G6(|u1hHT8JVo6N9FGIl%ff~;RGs1Qfcy5JDy+vZAnK3Z!1O3LK~ zcf!1;{T|ENNEnf80`*uJ3(=X}_6f9F;V)`ra+$;!=B^4O742sBolLa}R3jND%oI8D zKd$)M#d_RV7~@IAY9QpbQkGM9CJ#7f3wyF8HI&+*!~F_v{{Zug8OC3@UaF0S^RwBZ z))xwAJ^j(mMJ!La4N+R;T-->7(+q6yY<8=4xss)fks#yI`^Y*zO>(A literal 0 HcmV?d00001 diff --git a/backend/target/classes/com/paf/socailfitnessapplication/service/PostService.class b/backend/target/classes/com/paf/socailfitnessapplication/service/PostService.class index 2b06c652bc8538f897f829bb8c43efd34ac43f9d..dfe2608a6643133ce4e2211ebac455d14f3d652b 100644 GIT binary patch delta 345 zcmaFK-pnO%>ff$?3=9mm3<~TFOpFXBlNT~6ZZwQwROL=jEpg1r3CJ%lDQ094($MtD zN-Rs%FD=Q;(f7$LF0p20aMGB3i_v*b?EqT~#)YNtx?)XMVwq7+63_G}nS z7-$?=)+aMNHN~kiv^cehkwF|L>YSgOo0?Ywli94oWY5URIXQ*dw4RZH8|XkL1_2gE z20;cPAPd45X5avdvobP>Ffah6M6pSUfu+Q;NkMc;;FgkPkOJ9d1h!lnY#ApL122%v W4mMSWL6(6L<_3^3BZC}Rtvmo5H#v0x delta 125 zcmZqXddV(u>ff$?3=9mm43g{&OpFXBlNp&6HyTDTPX5R^ck_KFTSi9K$+9e_0Za_s zKxIq}0t_5Lnw613kb!}PkwJ(-7$^vl5&=tbGBNN1Rj`AlMH$2x7-2dp3<4c%PZ8p(H2*{zn& z){6|o{7(q*uvGS_hes#H>_ulFpBoJRE&75ExG<_>3{eJ?wsl&q>HBiUDEOY7kf&A5 zV3t2vLUw&)PQ^SH_^ll2a&FfO2j$H|Wv8%zT;ff6LtavmMwTnqSLWs));#m_h%L|j z{K}TNj6y_!P8Se^gYqI(0%eEx1U25mh=509?4c-wQ4FG=qNh!R7d}F?fN_LrK1j8N z5deV+OcG7kEt`+cI{4fBp*KGVX5~zeM9q zc|}gT3~9B;yH%gI9E~p&19#l_)pyNGuU1?~diipx1+_(ML9b$^bW~K9F zdCIBGIgfo${m|_AO%t~;!C<(a?@3Q}=_xj^Ug(8L!Neq{)UN)8S?W#X5lgC{6pyNj z275gRfo}R&j$t%Weo07B?$3OHnXTd^$9p90>?fS9b?hn*aeRZdgA1EG7~7;(fmVtM zXcT)8Lz-|ep?e!aODdbUj z2QEMYA-F(X^H7Lc#|?(2BybUV*O~cd=AWJQ_a9%r0+_{vGz^B>s@t$UzHS9>l}meF zDn|qX_dHuxxstA91;XEyRbk17XIo{tAu8<`i?mN8$uRtqZ*t4#PThL6_EJ<;8YzY= zeS>36hC!PmtO(Byq;mZh!?kixkWc1eX21N344JAgxDuMq@I2oeBOE1FD+Cn_|7OmR zTySe*01SIfq_I1TA?!_KxE~$5q;DdJ5rPJMlafD^FaIeqCAjTX8v7Z}^;9cXCc{u! zI^toou_pY-e9fj{xiTFDdzJfA@1vJV^+E;=w|lGdx6?vRN$U18O!o%G(j>p(C81up zwPo(}hET$%WU_UkbaUrhi#3LPT%(HerBmP1sHvoFJ@WKn<~FegDzffy)$}Qmr+vE3 z{9D4MqCNm8O`O66!|rwI)VieEo|c``G$fUki?unbieZE*pR;XUd@$d7LXv9*CVG@o zmVu(`ANOJQU)4^TIEOrg*{*ggtyDA0@As^i-9RnYv`QCDT#Wg(|6oYb6+jj=$2DP7 z%iD9jzgzatH0GL#>$pMY;x!dYx@h0u%(vtY&2O0~Vx~j?i}@WRzSldT-EY~72%2)r)w%fzg_gp>D!9F z2Ps+)AOizg+Rf9`py%M^2bfczF=*f$_PwJw1`b5lzz7b~`as(fhcHSz^1)$@5$y=A zcQM+4Hb-%cLLR5JffHef+qBXlvQda}1Ap=l#rW9{Ka0~i^NW8vp!!LB@Pj2TQ z-GP5T&OaaWr+f0P?fjEF@Gr&rmqPw!Tp=~I^tDKru}GJz2Hs#O+T1jde4BVnW{I#5 zIV5R)7JDeYgD6l3reZP2I+~3|n$3ouY;>zRZShLb&CtP1QSi*Z-S_3^yY~P_p!p#& zjPQr7mCsAfuW~D%_E1r?CrYIm)3Pmwy3Vfb19e4BJhJstBCA{WFhi=7hrPLge^ECI zbd-PeJd^ts978Xk_a0aaTbf!~xbF~Bt5e$QW3y5Sp%#M*PNJ8gRR~k7X|-(Yrja%c zTh$HSC}xU=S<%v}r7`%Isyc>xYRF+_^(BpDc}uGZ+OUGtg0{a(6T6n!OJ)iTk>8@U zxxB0y_IBZzf^i`XyKPiYSb1LY{*ccqn8Z0=_I1e_1s5>IU;5e-IZXR;k?i>E#kAAB zT2e5BBMg$c7(@=26yX4@3?V|9LscA__}4&`<@r`1+IbDvsf-wJfub1G!R_U0-Ng;wSJMz5Bjh-tCTP}a w2iaJaxYH*w+8x{Tyj;@|nZs=tKI+1QvA4LxU(}4(t5izDJuFZZm!JUr0@|psMgRZ+ delta 495 zcmYjNIZgvX5UiP9&lidAc05-NE|^x+7c39KuCZ% zO@I&~KOo=@zy}b$D{}->-PP0GrE0R?t14f<9v%T?v1ULDWNBA4(S~feT-?(rryo;F z_tTqRM_0a2)oG#&-E^uFs@Fsx`sr0gRR%)_21yv9U=}d}xwBb{400w$FiN(uuBJ>( zV}_25ZM9%x7K`*{912AT{^t@6jjS(`pbvjd-j=xVXf30HV2mKdSj#Oy0Cli9x>*Ww z{%_#iCzyaq8`AjM*Ul}#K96Y}TkUI@P5~VfC$N&vEqdHavVd}lCsf~K;Nl*`5m#Je zF(3$?F^V!Ya~@-i(^jB0GUj!NW>2|9qJ?=qKY?*f(0L$~_cSVsf|C;ZnRez4{jGI) zZIXSZ*iHJMzwocWFfVrf73HiSqpqCb6V9=4" } }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/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/axobject-query": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", @@ -15421,6 +15453,11 @@ "node": ">= 0.10" } }, + "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/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -15714,6 +15751,28 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" }, + "node_modules/react-redux": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", + "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.3", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25", + "react": "^18.0", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, "node_modules/react-refresh": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", @@ -15894,6 +15953,19 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", @@ -18018,6 +18090,14 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/frontend/package.json b/frontend/package.json index b04172b..c1fd84d 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,11 +11,15 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "axios": "^1.6.8", "formik": "^2.4.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-redux": "^9.1.2", "react-router-dom": "^6.22.3", "react-scripts": "^5.0.1", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", "web-vitals": "^2.1.4", "yup": "^1.4.0" }, From a9545ec61d43d3a43524675d91a1013cb8462177 Mon Sep 17 00:00:00 2001 From: ovindu Date: Tue, 7 May 2024 19:14:19 +0530 Subject: [PATCH 18/41] updated backend for posts,like and comments with redux --- .../controller/UserController.java | 4 +- .../service/impl/UserServiceImpl.java | 1 - .../controller/UserController.class | Bin 1232 -> 1232 bytes .../service/impl/UserServiceImpl.class | Bin 1125 -> 1125 bytes frontend/src/Components/Config/config.js | 1 + .../Components/HomeSection/HomeSection.jsx | 101 +------- .../src/Components/HomeSection/MealPost.jsx | 237 +++++++----------- frontend/src/Components/Store/Action.js | 64 +++++ frontend/src/Components/Store/ActionType.js | 16 ++ frontend/src/Components/Store/Redecure.js | 76 ++++++ frontend/src/Components/Store/store.js | 11 + 11 files changed, 274 insertions(+), 237 deletions(-) create mode 100644 frontend/src/Components/Config/config.js create mode 100644 frontend/src/Components/Store/Action.js create mode 100644 frontend/src/Components/Store/ActionType.js create mode 100644 frontend/src/Components/Store/Redecure.js create mode 100644 frontend/src/Components/Store/store.js diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/UserController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/UserController.java index 06e1a6d..2f5e7d0 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/controller/UserController.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/UserController.java @@ -2,9 +2,7 @@ import com.paf.socailfitnessapplication.entity.User; import com.paf.socailfitnessapplication.service.UserService; -import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; +import lombok.RequiredArgsConstructor;import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.java b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.java index d79ab30..cead898 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.java @@ -4,7 +4,6 @@ import com.paf.socailfitnessapplication.repo.UserRepository; import com.paf.socailfitnessapplication.service.UserService; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service diff --git a/backend/target/classes/com/paf/socailfitnessapplication/controller/UserController.class b/backend/target/classes/com/paf/socailfitnessapplication/controller/UserController.class index 9ae0948ea08b8aec20d0aa62a2f4581d49b0ad00..e18f073889dade86615a36791c728fc658960669 100644 GIT binary patch delta 19 acmcb>d4Y3-J`1DpWCNBkMxM#-ES>;5)CD^L delta 19 acmcb>d4Y3-J`1DhWCNBkM!w1IES>;5^aVcv diff --git a/backend/target/classes/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.class b/backend/target/classes/com/paf/socailfitnessapplication/service/impl/UserServiceImpl.class index f20a403607f42665f29edf447997f7ceaa3f0fbd..0e7c6b7013221582612560a09a3f403e22002245 100644 GIT binary patch delta 19 bcmaFL@swl31!hK}$rqW!7`Y~Eu-F0sO3DT` delta 19 bcmaFL@swl31!hL!$rqW!7`Z2Fu-F0sO4 { - const [selectImage, setSelectedImage] = useState(""); - const [uploadingImage, setUploadingImage] = useState(false); - - const handleSubmit = (values) => { - console.log("values ", values); - // Logic to handle form submission (e.g., API call) - }; - - const formik = useFormik({ - initialValues: { - content: "", - image: "", - }, - onSubmit: handleSubmit, - validationSchema, - }); + const [meals, setMeals] = useState([]); - const handleSelectImage = (event) => { - setUploadingImage(true); - const imgUrl = event.target.files[0]; - formik.setFieldValue("image", imgUrl); - setSelectedImage(imgUrl); - setUploadingImage(false); + const handlePost = (newMeal) => { + setMeals([...meals, newMeal]); }; return ( @@ -43,66 +13,13 @@ const HomeSection = () => {

Home

-
-
- -
-
-
- - {formik.errors.content && formik.touched.content && ( - {formik.errors.content} - )} -
- -
-
- - - -
-
- -
-
-
-
-
-
-
- {[1, 1, 1, 1, 1].map((item) => ( - +
+ {/* Render existing posts */} + {meals.map((meal, index) => ( + ))} + {/* Render new post */} +
); diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index a47969d..300ca46 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -1,160 +1,115 @@ -import React from "react"; -import RepeatIcon from "@mui/icons-material/Repeat"; -import { Avatar, Button, Menu, MenuItem } from "@mui/material"; -import { useNavigate } from "react-router-dom"; -import MoreHorizIcon from "@mui/icons-material/MoreHoriz"; -import ChatBubbleOutlineIcon from "@mui/icons-material/ChatBubbleOutline"; -import BarChartIcon from "@mui/icons-material/BarChart"; -import FavoriteIcon from "@mui/icons-material/Favorite"; -import FavoriteOutlined from "@mui/icons-material/FavoriteOutlined"; +import React, { useState } from "react"; +import { Avatar, Button, IconButton } from "@mui/material"; +import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; +import ThumbUpIcon from "@mui/icons-material/ThumbUp"; +import ChatIcon from "@mui/icons-material/Chat"; +import EditIcon from "@mui/icons-material/Edit"; +import DeleteIcon from "@mui/icons-material/Delete"; import ReplyModel from "./ReplyModel"; -import { useState } from "react"; -const MealPost = () => { - const navigate = useNavigate(); - const [anchorEl, setAnchorEl] = React.useState(null); - const open = Boolean(anchorEl); +const MealPost = ({ handlePost }) => { + const [caption, setCaption] = useState(""); + const [image, setImage] = useState(null); const [openReplyModel, setOpenReplyModel] = useState(false); - const handleOpenProfileModel = () => setOpenReplyModel(true); - const handleCloseReplyModal = () => setOpenReplyModel(false); - const handleClick = (event) => { - setAnchorEl(event.currentTarget); - }; - const handleClose = () => { - setAnchorEl(null); - }; - const handleDeletePost = () => { - console.log("delete post"); - handleClose(); + + const handleImageChange = (e) => { + setImage(e.target.files[0]); }; - const handleEditPost = () => {}; - const handleCreateRepost = () => { - console.log("create repost"); + const handleEditPost = () => { + // Logic to edit the post + console.log("Edit Post"); }; - const handleLikedPost = () => { - console.log("liked post"); + + const handleDeletePost = () => { + // Logic to delete the post + console.log("Delete Post"); }; const handleOpenReplyModel = () => { setOpenReplyModel(true); }; + const handlePostClick = () => { + if (image && caption) { + // Create a new meal object + const newMeal = { + caption: caption, + image: URL.createObjectURL(image), + }; + // Call handlePost function from parent component + handlePost(newMeal); + // Reset caption and image state + setCaption(""); + setImage(null); + } + }; + return ( - -
- navigate(`/profile/${6}`)} - className="cursor-pointer" - alt="username" - src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" +
+ {/* User Info */} + {/* Caption */} + + {/* Image Upload */} +
+ -
-
-
- User1 - @user1.2m - verified -
-
- - - Edit - Delete - -
-
-
-
navigate(`/twit/${3}`)} - > -

Mela Plan Cone

- meal -
-
-
- -

43

-
-
- -

56

-
-
- {true ? ( - - ) : ( - - )} -

26

-
-
- -

4

-
-
- -

43

-
-
-
+ + {image && ( + Uploaded + )} +
+ {/* Action Buttons */} +
+
+ + + + + + +
+
+ + + + + + +
-
- -
- + {/* Reply Model */} + setOpenReplyModel(false)} + /> +
); }; diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js new file mode 100644 index 0000000..a64719e --- /dev/null +++ b/frontend/src/Components/Store/Action.js @@ -0,0 +1,64 @@ +// actions.js +import axios from "axios"; +import { + FETCH_POSTS_REQUEST, + FETCH_POSTS_SUCCESS, + FETCH_POSTS_FAILURE, + ADD_POST_REQUEST, + ADD_POST_SUCCESS, + ADD_POST_FAILURE, + UPDATE_POST_REQUEST, + UPDATE_POST_SUCCESS, + UPDATE_POST_FAILURE, + DELETE_POST_REQUEST, + DELETE_POST_SUCCESS, + DELETE_POST_FAILURE, +} from "./ActionTypes"; + +export const fetchPosts = () => { + return async (dispatch) => { + dispatch({ type: FETCH_POSTS_REQUEST }); + try { + const response = await axios.get("/posts"); + dispatch({ type: FETCH_POSTS_SUCCESS, payload: response.data }); + } catch (error) { + dispatch({ type: FETCH_POSTS_FAILURE, payload: error.message }); + } + }; +}; + +export const addPost = (postData) => { + return async (dispatch) => { + dispatch({ type: ADD_POST_REQUEST }); + try { + const response = await axios.post("/posts", postData); + dispatch({ type: ADD_POST_SUCCESS, payload: response.data }); + } catch (error) { + dispatch({ type: ADD_POST_FAILURE, payload: error.message }); + } + }; +}; + +export const updatePost = (postId, updatedPostData) => { + return async (dispatch) => { + dispatch({ type: UPDATE_POST_REQUEST }); + try { + const response = await axios.put(`/posts/${postId}`, updatedPostData); + dispatch({ type: UPDATE_POST_SUCCESS, payload: response.data }); + } catch (error) { + dispatch({ type: UPDATE_POST_FAILURE, payload: error.message }); + } + }; +}; + +export const deletePost = (postId) => { + return async (dispatch) => { + dispatch({ type: DELETE_POST_REQUEST }); + try { + await axios.delete(`/posts/${postId}`); + dispatch({ type: DELETE_POST_SUCCESS, payload: postId }); + } catch (error) { + dispatch({ type: DELETE_POST_FAILURE, payload: error.message }); + } + }; +}; diff --git a/frontend/src/Components/Store/ActionType.js b/frontend/src/Components/Store/ActionType.js new file mode 100644 index 0000000..4ac4229 --- /dev/null +++ b/frontend/src/Components/Store/ActionType.js @@ -0,0 +1,16 @@ +// ActionTypes.js +export const FETCH_POSTS_REQUEST = "FETCH_POSTS_REQUEST"; +export const FETCH_POSTS_SUCCESS = "FETCH_POSTS_SUCCESS"; +export const FETCH_POSTS_FAILURE = "FETCH_POSTS_FAILURE"; + +export const ADD_POST_REQUEST = "ADD_POST_REQUEST"; +export const ADD_POST_SUCCESS = "ADD_POST_SUCCESS"; +export const ADD_POST_FAILURE = "ADD_POST_FAILURE"; + +export const UPDATE_POST_REQUEST = "UPDATE_POST_REQUEST"; +export const UPDATE_POST_SUCCESS = "UPDATE_POST_SUCCESS"; +export const UPDATE_POST_FAILURE = "UPDATE_POST_FAILURE"; + +export const DELETE_POST_REQUEST = "DELETE_POST_REQUEST"; +export const DELETE_POST_SUCCESS = "DELETE_POST_SUCCESS"; +export const DELETE_POST_FAILURE = "DELETE_POST_FAILURE"; diff --git a/frontend/src/Components/Store/Redecure.js b/frontend/src/Components/Store/Redecure.js new file mode 100644 index 0000000..2ee319c --- /dev/null +++ b/frontend/src/Components/Store/Redecure.js @@ -0,0 +1,76 @@ +// reducers.js +import { + FETCH_POSTS_REQUEST, + FETCH_POSTS_SUCCESS, + FETCH_POSTS_FAILURE, + ADD_POST_REQUEST, + ADD_POST_SUCCESS, + ADD_POST_FAILURE, + UPDATE_POST_REQUEST, + UPDATE_POST_SUCCESS, + UPDATE_POST_FAILURE, + DELETE_POST_REQUEST, + DELETE_POST_SUCCESS, + DELETE_POST_FAILURE, +} from "./ActionTypes"; + +const initialState = { + posts: [], + loading: false, + error: null, +}; + +export const postReducer = (state = initialState, action) => { + switch (action.type) { + case FETCH_POSTS_REQUEST: + case ADD_POST_REQUEST: + case UPDATE_POST_REQUEST: + case DELETE_POST_REQUEST: + return { + ...state, + loading: true, + error: null, + }; + case FETCH_POSTS_SUCCESS: + return { + ...state, + loading: false, + posts: action.payload, + }; + case ADD_POST_SUCCESS: + return { + ...state, + loading: false, + posts: [...state.posts, action.payload], + }; + case UPDATE_POST_SUCCESS: + const updatedPosts = state.posts.map((post) => + post.id === action.payload.id ? action.payload : post + ); + return { + ...state, + loading: false, + posts: updatedPosts, + }; + case DELETE_POST_SUCCESS: + const filteredPosts = state.posts.filter( + (post) => post.id !== action.payload + ); + return { + ...state, + loading: false, + posts: filteredPosts, + }; + case FETCH_POSTS_FAILURE: + case ADD_POST_FAILURE: + case UPDATE_POST_FAILURE: + case DELETE_POST_FAILURE: + return { + ...state, + loading: false, + error: action.payload, + }; + default: + return state; + } +}; diff --git a/frontend/src/Components/Store/store.js b/frontend/src/Components/Store/store.js new file mode 100644 index 0000000..84288ce --- /dev/null +++ b/frontend/src/Components/Store/store.js @@ -0,0 +1,11 @@ +// store.js +import { configureStore } from "@reduxjs/toolkit"; +import thunk from "redux-thunk"; +import rootReducer from "./reducers"; + +const store = configureStore({ + reducer: rootReducer, + middleware: [thunk], +}); + +export default store; From f79e8408166d135d44e9e54e4bd9b2adc56ddceb Mon Sep 17 00:00:00 2001 From: ovindu Date: Wed, 8 May 2024 09:21:28 +0530 Subject: [PATCH 19/41] updated backend for posts,like and comments with redux and axios --- .../Components/HomeSection/HomeSection.jsx | 19 +++++--- .../src/Components/HomeSection/MealPost.jsx | 44 +++++-------------- .../Components/MealDetails/MealDetails.jsx | 3 +- frontend/src/Components/Store/Action.js | 2 +- .../Store/{Redecure.js => Reducer.js} | 0 frontend/src/Components/Store/store.js | 6 ++- 6 files changed, 31 insertions(+), 43 deletions(-) rename frontend/src/Components/Store/{Redecure.js => Reducer.js} (100%) diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index 9598899..1813c33 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -1,11 +1,12 @@ -import React, { useState } from "react"; +import React from "react"; +import { connect } from "react-redux"; import MealPost from "./MealPost"; +import { addPost } from "../Store/Action"; -const HomeSection = () => { - const [meals, setMeals] = useState([]); - +const HomeSection = ({ meals, dispatch }) => { const handlePost = (newMeal) => { - setMeals([...meals, newMeal]); + // Dispatch the addPost action to add the new meal to the store + dispatch(addPost(newMeal)); }; return ( @@ -25,4 +26,10 @@ const HomeSection = () => { ); }; -export default HomeSection; +const mapStateToProps = (state) => { + return { + meals: state.post.posts, + }; +}; + +export default connect(mapStateToProps)(HomeSection); diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 300ca46..0cfec63 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -1,13 +1,16 @@ import React, { useState } from "react"; -import { Avatar, Button, IconButton } from "@mui/material"; +import { IconButton, Button } from "@mui/material"; import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; import ChatIcon from "@mui/icons-material/Chat"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import ReplyModel from "./ReplyModel"; +import { useDispatch } from "react-redux"; +import { addPost } from "../Store/Actions"; // Assuming your action is in this file -const MealPost = ({ handlePost }) => { +const MealPost = () => { + const dispatch = useDispatch(); const [caption, setCaption] = useState(""); const [image, setImage] = useState(null); const [openReplyModel, setOpenReplyModel] = useState(false); @@ -16,30 +19,12 @@ const MealPost = ({ handlePost }) => { setImage(e.target.files[0]); }; - const handleEditPost = () => { - // Logic to edit the post - console.log("Edit Post"); - }; - - const handleDeletePost = () => { - // Logic to delete the post - console.log("Delete Post"); - }; - - const handleOpenReplyModel = () => { - setOpenReplyModel(true); - }; - const handlePostClick = () => { if (image && caption) { - // Create a new meal object - const newMeal = { - caption: caption, - image: URL.createObjectURL(image), - }; - // Call handlePost function from parent component - handlePost(newMeal); - // Reset caption and image state + const formData = new FormData(); + formData.append("caption", caption); + formData.append("image", image); + dispatch(addPost(formData)); setCaption(""); setImage(null); } @@ -47,8 +32,6 @@ const MealPost = ({ handlePost }) => { return (
- {/* User Info */} - {/* Caption */} - {/* Image Upload */}
{ /> )}
- {/* Action Buttons */}
- + setOpenReplyModel(true)}>
- + handleEditPost()}> - + handleDeletePost()}>
- {/* Reply Model */} setOpenReplyModel(false)} diff --git a/frontend/src/Components/MealDetails/MealDetails.jsx b/frontend/src/Components/MealDetails/MealDetails.jsx index 34cf450..0b716e5 100644 --- a/frontend/src/Components/MealDetails/MealDetails.jsx +++ b/frontend/src/Components/MealDetails/MealDetails.jsx @@ -10,7 +10,7 @@ const MealDetails = () => { return (
{
-
{[1, 1, 1].map((item) => () => )}
); }; diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index a64719e..e829a50 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -31,7 +31,7 @@ export const addPost = (postData) => { return async (dispatch) => { dispatch({ type: ADD_POST_REQUEST }); try { - const response = await axios.post("/posts", postData); + const response = await axios.post("/api/posts", postData); dispatch({ type: ADD_POST_SUCCESS, payload: response.data }); } catch (error) { dispatch({ type: ADD_POST_FAILURE, payload: error.message }); diff --git a/frontend/src/Components/Store/Redecure.js b/frontend/src/Components/Store/Reducer.js similarity index 100% rename from frontend/src/Components/Store/Redecure.js rename to frontend/src/Components/Store/Reducer.js diff --git a/frontend/src/Components/Store/store.js b/frontend/src/Components/Store/store.js index 84288ce..3da0b02 100644 --- a/frontend/src/Components/Store/store.js +++ b/frontend/src/Components/Store/store.js @@ -1,10 +1,12 @@ // store.js import { configureStore } from "@reduxjs/toolkit"; import thunk from "redux-thunk"; -import rootReducer from "./reducers"; +import { postReducer } from "./Reducer"; const store = configureStore({ - reducer: rootReducer, + reducer: { + post: postReducer, + }, middleware: [thunk], }); From b26615bfc9252b028764331ccd29b9f0571f24a0 Mon Sep 17 00:00:00 2001 From: ovindu Date: Wed, 8 May 2024 15:29:42 +0530 Subject: [PATCH 20/41] updated backend for posts,like and comments with redux and clodinary --- frontend/package-lock.json | 75 +++++++++++ frontend/package.json | 3 + .../Components/HomeSection/HomeSection.jsx | 7 +- .../src/Components/HomeSection/MealPost.jsx | 83 +++--------- .../src/Components/HomeSection/NewPost.jsx | 127 ++++++++++++++++++ frontend/src/Components/Store/Action.js | 6 +- frontend/src/Components/Store/Reducer.js | 2 +- frontend/src/Components/Store/store.js | 4 +- frontend/src/index.js | 32 +++-- 9 files changed, 252 insertions(+), 87 deletions(-) create mode 100644 frontend/src/Components/HomeSection/NewPost.jsx diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 8cac55b..e5e58bd 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -13,10 +13,13 @@ "@mui/icons-material": "^5.15.15", "@mui/lab": "^5.0.0-alpha.170", "@mui/material": "^5.15.15", + "@reduxjs/toolkit": "^2.2.3", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.6.8", + "cloudinary": "^2.2.0", + "cloudinary-react": "^1.8.1", "formik": "^2.4.5", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -3878,6 +3881,38 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@reduxjs/toolkit": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.3.tgz", + "integrity": "sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/@remix-run/router": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", @@ -6712,6 +6747,41 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/cloudinary": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cloudinary/-/cloudinary-2.2.0.tgz", + "integrity": "sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q==", + "dependencies": { + "lodash": "^4.17.21", + "q": "^1.5.1" + }, + "engines": { + "node": ">=9" + } + }, + "node_modules/cloudinary-core": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/cloudinary-core/-/cloudinary-core-2.13.1.tgz", + "integrity": "sha512-z53GPNWnvU0Zi+ns8CIVbZBfj7ps/++zDvwIyiFuq5p1MoK+KUCg0k5mBceDDHTnx1gHmHUd9aohS+gDxPNt6w==", + "peerDependencies": { + "lodash": ">=4.0" + } + }, + "node_modules/cloudinary-react": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/cloudinary-react/-/cloudinary-react-1.8.1.tgz", + "integrity": "sha512-90LHbUPfB8Uj5tKY08+ladN8ONyfak8zjnlAgVc39vlxKCx3b9G0/+I5C1QQGDwBRqHKzxyXterfugbWUrCQhA==", + "dependencies": { + "cloudinary-core": "^2.13.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.3.3 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/clsx": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", @@ -16113,6 +16183,11 @@ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, + "node_modules/reselect": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz", + "integrity": "sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg==" + }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", diff --git a/frontend/package.json b/frontend/package.json index c1fd84d..a2b82ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,10 +8,13 @@ "@mui/icons-material": "^5.15.15", "@mui/lab": "^5.0.0-alpha.170", "@mui/material": "^5.15.15", + "@reduxjs/toolkit": "^2.2.3", "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.6.8", + "cloudinary": "^2.2.0", + "cloudinary-react": "^1.8.1", "formik": "^2.4.5", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index 1813c33..7cc7753 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -2,6 +2,7 @@ import React from "react"; import { connect } from "react-redux"; import MealPost from "./MealPost"; import { addPost } from "../Store/Action"; +import NewPost from "./NewPost"; const HomeSection = ({ meals, dispatch }) => { const handlePost = (newMeal) => { @@ -17,10 +18,12 @@ const HomeSection = ({ meals, dispatch }) => {
{/* Render existing posts */} {meals.map((meal, index) => ( - + ))} + {/* Assuming meal object contains the imageUrl property */} + {/* Render new post */} - +
); diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 0cfec63..95409ab 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -1,74 +1,37 @@ -import React, { useState } from "react"; -import { IconButton, Button } from "@mui/material"; -import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; -import ThumbUpIcon from "@mui/icons-material/ThumbUp"; -import ChatIcon from "@mui/icons-material/Chat"; +import React from "react"; +import { IconButton } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import ReplyModel from "./ReplyModel"; import { useDispatch } from "react-redux"; -import { addPost } from "../Store/Actions"; // Assuming your action is in this file -const MealPost = () => { +const MealPost = ({ meal }) => { const dispatch = useDispatch(); - const [caption, setCaption] = useState(""); - const [image, setImage] = useState(null); - const [openReplyModel, setOpenReplyModel] = useState(false); + const { caption, imageUrl } = meal; - const handleImageChange = (e) => { - setImage(e.target.files[0]); + const handleEditPost = () => { + // Placeholder logic for editing post + console.log("Edit Post"); }; - const handlePostClick = () => { - if (image && caption) { - const formData = new FormData(); - formData.append("caption", caption); - formData.append("image", image); - dispatch(addPost(formData)); - setCaption(""); - setImage(null); - } + const handleDeletePost = () => { + // Placeholder logic for deleting post + console.log("Delete Post"); }; return ( -
- -
- - - {image && ( +
+
{caption}
+ {imageUrl && ( +
Uploaded - )} -
-
-
- - - - setOpenReplyModel(true)}> - -
+ )} +
handleEditPost()}> @@ -76,19 +39,9 @@ const MealPost = () => { handleDeletePost()}> -
- setOpenReplyModel(false)} - /> +
); }; diff --git a/frontend/src/Components/HomeSection/NewPost.jsx b/frontend/src/Components/HomeSection/NewPost.jsx new file mode 100644 index 0000000..3477f23 --- /dev/null +++ b/frontend/src/Components/HomeSection/NewPost.jsx @@ -0,0 +1,127 @@ +import React, { useState } from "react"; +import { IconButton, Button } from "@mui/material"; +import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; +import ThumbUpIcon from "@mui/icons-material/ThumbUp"; +import ChatIcon from "@mui/icons-material/Chat"; +import EditIcon from "@mui/icons-material/Edit"; +import DeleteIcon from "@mui/icons-material/Delete"; +import ReplyModel from "./ReplyModel"; +import { useDispatch } from "react-redux"; +import { addPost } from "../Store/Action"; + +const NewPost = () => { + const dispatch = useDispatch(); + const [caption, setCaption] = useState(""); + const [image, setImage] = useState(null); + const [openReplyModel, setOpenReplyModel] = useState(false); + + const handleImageChange = (e) => { + setImage(e.target.files[0]); + }; + + const handlePostClick = async () => { + if (image && caption) { + try { + // Upload image to Cloudinary + const formData = new FormData(); + formData.append("file", image); + formData.append("upload_preset", "paf123"); + const response = await fetch( + "https://api.cloudinary.com/v1_1/ddvmuwi3e/image/upload", + { + method: "POST", + body: formData, + } + ); + if (!response.ok) { + throw new Error("Failed to upload image to Cloudinary"); + } + const data = await response.json(); + const imageUrl = data.secure_url; + + // Dispatch action to add post + dispatch(addPost({ caption, imageUrl })); + + // Reset form + setCaption(""); + setImage(null); + } catch (error) { + console.error("Error uploading image:", error); + } + } + }; + + const handleEditPost = () => { + // Placeholder logic for editing post + console.log("Edit Post"); + }; + + const handleDeletePost = () => { + // Placeholder logic for deleting post + console.log("Delete Post"); + }; + + return ( +
+ +
+ + + {image && ( + Uploaded + )} +
+
+
+ + + + setOpenReplyModel(true)}> + + +
+
+ handleEditPost()}> + + + handleDeletePost()}> + + + +
+
+ setOpenReplyModel(false)} + /> +
+ ); +}; + +export default NewPost; diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index e829a50..6d220c8 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -13,7 +13,7 @@ import { DELETE_POST_REQUEST, DELETE_POST_SUCCESS, DELETE_POST_FAILURE, -} from "./ActionTypes"; +} from "./ActionType"; export const fetchPosts = () => { return async (dispatch) => { @@ -31,8 +31,8 @@ export const addPost = (postData) => { return async (dispatch) => { dispatch({ type: ADD_POST_REQUEST }); try { - const response = await axios.post("/api/posts", postData); - dispatch({ type: ADD_POST_SUCCESS, payload: response.data }); + // const response = await axios.post("/api/posts", postData); + dispatch({ type: ADD_POST_SUCCESS, payload: postData }); } catch (error) { dispatch({ type: ADD_POST_FAILURE, payload: error.message }); } diff --git a/frontend/src/Components/Store/Reducer.js b/frontend/src/Components/Store/Reducer.js index 2ee319c..5d6ffc0 100644 --- a/frontend/src/Components/Store/Reducer.js +++ b/frontend/src/Components/Store/Reducer.js @@ -12,7 +12,7 @@ import { DELETE_POST_REQUEST, DELETE_POST_SUCCESS, DELETE_POST_FAILURE, -} from "./ActionTypes"; +} from "./ActionType"; const initialState = { posts: [], diff --git a/frontend/src/Components/Store/store.js b/frontend/src/Components/Store/store.js index 3da0b02..f5f63a9 100644 --- a/frontend/src/Components/Store/store.js +++ b/frontend/src/Components/Store/store.js @@ -1,13 +1,13 @@ // store.js import { configureStore } from "@reduxjs/toolkit"; -import thunk from "redux-thunk"; +import {thunk} from "redux-thunk"; import { postReducer } from "./Reducer"; const store = configureStore({ reducer: { post: postReducer, }, - middleware: [thunk], + middleware: (getDefaultMiddleware) => getDefaultMiddleware().concat(thunk), }); export default store; diff --git a/frontend/src/index.js b/frontend/src/index.js index 9a4209f..0bf1356 100644 --- a/frontend/src/index.js +++ b/frontend/src/index.js @@ -1,19 +1,23 @@ -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; -import { BrowserRouter } from 'react-router-dom'; +import React from "react"; +import ReactDOM from "react-dom"; +import "./index.css"; +import App from "./App"; +import reportWebVitals from "./reportWebVitals"; +import { BrowserRouter } from "react-router-dom"; +import { Provider } from "react-redux"; // Import Provider +import store from "../src/Components/Store/store" // Import your Redux store -const root = ReactDOM.createRoot(document.getElementById('root')); -root.render( +ReactDOM.render( - - - - - + + {" "} + {/* Wrap your App with Provider and pass the store */} + + + + + , + document.getElementById("root") ); - reportWebVitals(); From c3f52aac4cc65136179d563bca405185cd826074 Mon Sep 17 00:00:00 2001 From: ovindu Date: Thu, 9 May 2024 00:19:02 +0530 Subject: [PATCH 21/41] updated backend for edit posts --- .../src/Components/HomeSection/EditPost.jsx | 60 +++++++++++++ .../src/Components/HomeSection/MealPost.jsx | 90 +++++++++++++++---- frontend/src/Components/Store/Action.js | 5 ++ 3 files changed, 137 insertions(+), 18 deletions(-) create mode 100644 frontend/src/Components/HomeSection/EditPost.jsx diff --git a/frontend/src/Components/HomeSection/EditPost.jsx b/frontend/src/Components/HomeSection/EditPost.jsx new file mode 100644 index 0000000..21ad6c1 --- /dev/null +++ b/frontend/src/Components/HomeSection/EditPost.jsx @@ -0,0 +1,60 @@ +import React, { useState } from "react"; +import { Button, TextField } from "@mui/material"; + +const EditPost = ({ initialCaption, initialImageUrl, onSubmit, onCancel }) => { + const [caption, setCaption] = useState(initialCaption); + const [image, setImage] = useState(null); + + const handleImageChange = (e) => { + setImage(e.target.files[0]); + }; + + const handleSubmit = () => { + const formData = new FormData(); + formData.append("file", image); + formData.append("upload_preset", "paf123"); + fetch("https://api.cloudinary.com/v1_1/ddvmuwi3e/image/upload", { + method: "POST", + body: formData, + }) + .then((response) => response.json()) + .then((data) => { + const imageUrl = data.secure_url; + onSubmit(caption, imageUrl); + }) + .catch((error) => console.error("Error uploading image:", error)); + }; + + return ( +
+ setCaption(e.target.value)} + style={{ marginBottom: "20px", width: "100%" }} + /> + + + +
+ ); +}; + +export default EditPost; diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 95409ab..539b687 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -1,47 +1,101 @@ -import React from "react"; +import React, { useState } from "react"; import { IconButton } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import ReplyModel from "./ReplyModel"; +import ThumbUpIcon from "@mui/icons-material/ThumbUp"; +import ChatIcon from "@mui/icons-material/Chat"; import { useDispatch } from "react-redux"; +import { incrementLikes } from "../Store/Action"; +import EditPost from "./EditPost"; const MealPost = ({ meal }) => { const dispatch = useDispatch(); - const { caption, imageUrl } = meal; + const { + id, + username = "John Doe", + profileImage = "https://images.pexels.com/photos/1130626/pexels-photo-1130626.jpeg?auto=compress&cs=tinysrgb&w=600", + caption: initialCaption, + imageUrl: initialImageUrl, + } = meal; + const [likes, setLikes] = useState(0); + const [caption, setCaption] = useState(initialCaption); + const [imageUrl, setImageUrl] = useState(initialImageUrl); + const [replyModelOpen, setReplyModelOpen] = useState(false); + const [isEditing, setIsEditing] = useState(false); + + const handleLikeClick = () => { + setLikes((prevLikes) => prevLikes + 1); + dispatch(incrementLikes()); + }; + + const handleCommentClick = () => { + setReplyModelOpen(true); + }; const handleEditPost = () => { - // Placeholder logic for editing post - console.log("Edit Post"); + setIsEditing(true); }; - const handleDeletePost = () => { + const handleEditSubmit = (editedCaption, editedImageUrl) => { + setCaption(editedCaption); + setImageUrl(editedImageUrl); + setIsEditing(false); + }; + const handleDeletePost = (id) => { // Placeholder logic for deleting post - console.log("Delete Post"); + console.log("Delete Post", id); }; return (
+
+ Profile + {username} +
+
+ Uploaded +
{caption}
- {imageUrl && ( -
- Uploaded -
- )}
- handleEditPost()}> + - handleDeletePost()}> + handleDeletePost(id)}>
+
+ + + {likes} + + + + +
- + setReplyModelOpen(false)} + /> + {isEditing && ( + setIsEditing(false)} + /> + )}
); }; diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index 6d220c8..584f2a4 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -62,3 +62,8 @@ export const deletePost = (postId) => { } }; }; +export const incrementLikes = () => { + return { + type: "INCREMENT_LIKES", + }; +}; From bffaed4c1e557c9ec58eab3cb764db75f133dfe3 Mon Sep 17 00:00:00 2001 From: ovindu Date: Thu, 9 May 2024 10:11:16 +0530 Subject: [PATCH 22/41] updated backend for edit posts and adding comments --- .../Components/HomeSection/CommentModel.jsx | 70 +++++++++ .../Components/HomeSection/HomeSection.jsx | 19 ++- .../src/Components/HomeSection/MealPost.jsx | 46 ++++-- .../src/Components/HomeSection/NewPost.jsx | 15 +- .../src/Components/HomeSection/ReplyModel.jsx | 141 ------------------ frontend/src/Components/Store/Action.js | 44 ++++++ frontend/src/Components/Store/ActionType.js | 12 ++ frontend/src/Components/Store/Reducer.js | 38 ++++- 8 files changed, 217 insertions(+), 168 deletions(-) create mode 100644 frontend/src/Components/HomeSection/CommentModel.jsx delete mode 100644 frontend/src/Components/HomeSection/ReplyModel.jsx diff --git a/frontend/src/Components/HomeSection/CommentModel.jsx b/frontend/src/Components/HomeSection/CommentModel.jsx new file mode 100644 index 0000000..5803909 --- /dev/null +++ b/frontend/src/Components/HomeSection/CommentModel.jsx @@ -0,0 +1,70 @@ +import React, { useState } from "react"; +import { Modal, IconButton, TextField, Button } from "@mui/material"; +import SendIcon from "@mui/icons-material/Send"; + +const CommentModel = ({ postId, onClose, onAddComment }) => { + const [comment, setComment] = useState(""); + + const handleSubmit = () => { + // Pass the new comment to the parent component + onAddComment(comment); + + // Reset comment input + setComment(""); + }; + + return ( + +
+
+

Comments

+ + Close + +
+
+ {/* Display existing comments */} + {/* Existing comments can be fetched from an API or passed as props */} +
+
+ setComment(e.target.value)} + fullWidth + variant="outlined" + style={{ marginBottom: "10px" }} + /> + +
+
+
+ ); +}; + +export default CommentModel; diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index 7cc7753..a2edc80 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -1,15 +1,19 @@ import React from "react"; import { connect } from "react-redux"; import MealPost from "./MealPost"; -import { addPost } from "../Store/Action"; -import NewPost from "./NewPost"; +import { addPost, addComment } from "../Store/Action"; +import NewPost from "./NewPost"; const HomeSection = ({ meals, dispatch }) => { const handlePost = (newMeal) => { - // Dispatch the addPost action to add the new meal to the store dispatch(addPost(newMeal)); }; + const handleAddComment = (postId, comment) => { + // Dispatch the addComment action to add the new comment to the store + dispatch(addComment(postId, comment)); + }; + return (
@@ -18,10 +22,13 @@ const HomeSection = ({ meals, dispatch }) => {
{/* Render existing posts */} {meals.map((meal, index) => ( - + ))} - {/* Assuming meal object contains the imageUrl property */} - {/* Render new post */}
diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 539b687..2525a57 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -2,14 +2,14 @@ import React, { useState } from "react"; import { IconButton } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; -import ReplyModel from "./ReplyModel"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; import ChatIcon from "@mui/icons-material/Chat"; import { useDispatch } from "react-redux"; import { incrementLikes } from "../Store/Action"; import EditPost from "./EditPost"; +import CommentModel from "./CommentModel"; -const MealPost = ({ meal }) => { +const MealPost = ({ meal, onAddComment }) => { const dispatch = useDispatch(); const { id, @@ -21,8 +21,10 @@ const MealPost = ({ meal }) => { const [likes, setLikes] = useState(0); const [caption, setCaption] = useState(initialCaption); const [imageUrl, setImageUrl] = useState(initialImageUrl); - const [replyModelOpen, setReplyModelOpen] = useState(false); + const [comments, setComments] = useState([]); + const [isEditing, setIsEditing] = useState(false); + const [commentModelOpen, setCommentModelOpen] = useState(false); const handleLikeClick = () => { setLikes((prevLikes) => prevLikes + 1); @@ -30,7 +32,14 @@ const MealPost = ({ meal }) => { }; const handleCommentClick = () => { - setReplyModelOpen(true); + setCommentModelOpen(true); + }; + + const handleAddComment = (comment) => { + // Add comment to local state + setComments([...comments, comment]); + // Pass comment to parent component + onAddComment(id, comment); }; const handleEditPost = () => { @@ -42,7 +51,8 @@ const MealPost = ({ meal }) => { setImageUrl(editedImageUrl); setIsEditing(false); }; - const handleDeletePost = (id) => { + + const handleDeletePost = () => { // Placeholder logic for deleting post console.log("Delete Post", id); }; @@ -70,7 +80,7 @@ const MealPost = ({ meal }) => { - handleDeletePost(id)}> +
@@ -84,10 +94,7 @@ const MealPost = ({ meal }) => {
- setReplyModelOpen(false)} - /> + {isEditing && ( { onCancel={() => setIsEditing(false)} /> )} + + {comments.length > 0 && ( +
+

Comments:

+ {comments.map((comment, index) => ( +
+ {comment} +
+ ))} +
+ )} + + {commentModelOpen && ( + setCommentModelOpen(false)} + /> + )}
); }; diff --git a/frontend/src/Components/HomeSection/NewPost.jsx b/frontend/src/Components/HomeSection/NewPost.jsx index 3477f23..5270ccf 100644 --- a/frontend/src/Components/HomeSection/NewPost.jsx +++ b/frontend/src/Components/HomeSection/NewPost.jsx @@ -2,10 +2,10 @@ import React, { useState } from "react"; import { IconButton, Button } from "@mui/material"; import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; -import ChatIcon from "@mui/icons-material/Chat"; + import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; -import ReplyModel from "./ReplyModel"; + import { useDispatch } from "react-redux"; import { addPost } from "../Store/Action"; @@ -13,7 +13,7 @@ const NewPost = () => { const dispatch = useDispatch(); const [caption, setCaption] = useState(""); const [image, setImage] = useState(null); - const [openReplyModel, setOpenReplyModel] = useState(false); + const handleImageChange = (e) => { setImage(e.target.files[0]); @@ -96,9 +96,7 @@ const NewPost = () => { - setOpenReplyModel(true)}> - - +
handleEditPost()}> @@ -116,10 +114,7 @@ const NewPost = () => {
- setOpenReplyModel(false)} - /> +
); }; diff --git a/frontend/src/Components/HomeSection/ReplyModel.jsx b/frontend/src/Components/HomeSection/ReplyModel.jsx deleted file mode 100644 index 646e959..0000000 --- a/frontend/src/Components/HomeSection/ReplyModel.jsx +++ /dev/null @@ -1,141 +0,0 @@ -import * as React from "react"; -import Box from "@mui/material/Box"; -import Button from "@mui/material/Button"; -import { Modal } from "@mui/material"; -import Typography from "@mui/material/Typography"; -import { Avatar } from "@mui/material"; -import { useNavigate } from "react-router-dom"; -import ImageIcon from "@mui/icons-material/Image"; -import FmdGoodIcon from "@mui/icons-material/FmdGood"; -import TagFacesIcon from "@mui/icons-material/TagFaces"; -import { useFormik } from "formik"; - -const style = { - position: "absolute", - top: "50%", - left: "50%", - transform: "translate(-50%, -50%)", - width: 600, - bgcolor: "background.paper", - border: "none", - boxShadow: 24, - p: 4, - outline: "none", - borderRadius: 4, -}; - -export default function ReplyModel({ handleClose, open }) { - const navigate = useNavigate(); - const [selectImage, setSelectedImage] = React.useState(""); - const [uploadingImage, setUploadingImage] = React.useState(false); - - const handleSubmit = (values) => { - console.log("handle submit", values); - }; - - const formik = useFormik({ - initialValues: { - content: "", - image: "", - twitID: "", - }, - onSubmit: handleSubmit, - }); - - const handleSelectImage = (event) => { - setUploadingImage(true); - const imgUrl = event.target.files[0]; - formik.setFieldValue("image", imgUrl); - setSelectedImage(imgUrl); - setUploadingImage(false); - }; - - return ( -
- - -
- navigate(`/profile/${6}`)} - className="cursor-pointer" - alt="username" - src="https://thumbs.dreamstime.com/b/icon-profile-circle-not-shadow-color-dark-blue-icon-profile-circle-not-shadow-color-dark-blue-background-194699290.jpg" - /> -
-
-
- User1 - @user1.2m - verified -
-
-
-
navigate(`/twit/${3}`)} - > -

Mela Plan Cone

-
-
-
-
-
- -
-
-
- - {formik.errors.content && formik.touched.content && ( - - {formik.errors.content} - - )} -
- - {/*
- -
*/} - -
-
- - - -
-
-
-
-
-
-
-
-
-
- ); -} diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index 584f2a4..e19350e 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -13,6 +13,15 @@ import { DELETE_POST_REQUEST, DELETE_POST_SUCCESS, DELETE_POST_FAILURE, + FETCH_COMMENT_REQUEST, + FETCH_COMMENT_SUCCESS, + FETCH_COMMENT_FAILURE, + ADD_COMMENT_REQUEST, + ADD_COMMENT_SUCCESS, + ADD_COMMENT_FAILURE, + DELETE_COMMENT_REQUEST, + DELETE_COMMENT_SUCCESS, + DELETE_COMMENT_FAILURE, } from "./ActionType"; export const fetchPosts = () => { @@ -62,6 +71,41 @@ export const deletePost = (postId) => { } }; }; +export const fetchComments = (postId) => { + return async (dispatch) => { + dispatch({ type: FETCH_COMMENT_REQUEST }); + try { + const response = await axios.get(`/posts/${postId}/comments`); + dispatch({ type: FETCH_COMMENT_SUCCESS, payload: response.data }); + } catch (error) { + dispatch({ type: FETCH_COMMENT_FAILURE, payload: error.message }); + } + }; +}; + +export const addComment = (postId, commentData) => { + return async (dispatch) => { + dispatch({ type: ADD_COMMENT_REQUEST }); + try { + // const response = await axios.post(`/posts/${postId}/comments`, commentData); + dispatch({ type: ADD_COMMENT_SUCCESS, payload: commentData }); + } catch (error) { + dispatch({ type: ADD_COMMENT_FAILURE, payload: error.message }); + } + }; +}; + +export const deleteComment = (postId, commentId) => { + return async (dispatch) => { + dispatch({ type: DELETE_COMMENT_REQUEST }); + try { + await axios.delete(`/posts/${postId}/comments/${commentId}`); + dispatch({ type: DELETE_COMMENT_SUCCESS, payload: commentId }); + } catch (error) { + dispatch({ type: DELETE_COMMENT_FAILURE, payload: error.message }); + } + }; +}; export const incrementLikes = () => { return { type: "INCREMENT_LIKES", diff --git a/frontend/src/Components/Store/ActionType.js b/frontend/src/Components/Store/ActionType.js index 4ac4229..a3cdec1 100644 --- a/frontend/src/Components/Store/ActionType.js +++ b/frontend/src/Components/Store/ActionType.js @@ -14,3 +14,15 @@ export const UPDATE_POST_FAILURE = "UPDATE_POST_FAILURE"; export const DELETE_POST_REQUEST = "DELETE_POST_REQUEST"; export const DELETE_POST_SUCCESS = "DELETE_POST_SUCCESS"; export const DELETE_POST_FAILURE = "DELETE_POST_FAILURE"; + +export const FETCH_COMMENT_REQUEST = "FETCH_COMMENT_REQUEST"; +export const FETCH_COMMENT_SUCCESS = "FETCH_COMMENT_SUCCESS"; +export const FETCH_COMMENT_FAILURE = "FETCH_COMMENT_FAILURE"; + +export const ADD_COMMENT_REQUEST = "ADD_COMMENT_REQUEST"; +export const ADD_COMMENT_SUCCESS = "ADD_COMMENT_SUCCESS"; +export const ADD_COMMENT_FAILURE = "ADD_COMMENT_FAILURE"; + +export const DELETE_COMMENT_REQUEST = "DELETE_COMMENT_REQUEST"; +export const DELETE_COMMENT_SUCCESS = "DELETE_COMMENT_SUCCESS"; +export const DELETE_COMMENT_FAILURE = "DELETE_COMMENT_FAILURE"; diff --git a/frontend/src/Components/Store/Reducer.js b/frontend/src/Components/Store/Reducer.js index 5d6ffc0..62a8009 100644 --- a/frontend/src/Components/Store/Reducer.js +++ b/frontend/src/Components/Store/Reducer.js @@ -1,4 +1,3 @@ -// reducers.js import { FETCH_POSTS_REQUEST, FETCH_POSTS_SUCCESS, @@ -12,10 +11,20 @@ import { DELETE_POST_REQUEST, DELETE_POST_SUCCESS, DELETE_POST_FAILURE, + FETCH_COMMENT_REQUEST, + FETCH_COMMENT_SUCCESS, + FETCH_COMMENT_FAILURE, + ADD_COMMENT_REQUEST, + ADD_COMMENT_SUCCESS, + ADD_COMMENT_FAILURE, + DELETE_COMMENT_REQUEST, + DELETE_COMMENT_SUCCESS, + DELETE_COMMENT_FAILURE, } from "./ActionType"; const initialState = { posts: [], + comments: [], loading: false, error: null, }; @@ -26,6 +35,9 @@ export const postReducer = (state = initialState, action) => { case ADD_POST_REQUEST: case UPDATE_POST_REQUEST: case DELETE_POST_REQUEST: + case FETCH_COMMENT_REQUEST: + case ADD_COMMENT_REQUEST: + case DELETE_COMMENT_REQUEST: return { ...state, loading: true, @@ -61,10 +73,34 @@ export const postReducer = (state = initialState, action) => { loading: false, posts: filteredPosts, }; + case FETCH_COMMENT_SUCCESS: + return { + ...state, + loading: false, + comments: action.payload, + }; + case ADD_COMMENT_SUCCESS: + return { + ...state, + loading: false, + comments: [...state.comments, action.payload], + }; + case DELETE_COMMENT_SUCCESS: + const filteredComments = state.comments.filter( + (comment) => comment.id !== action.payload + ); + return { + ...state, + loading: false, + comments: filteredComments, + }; case FETCH_POSTS_FAILURE: case ADD_POST_FAILURE: case UPDATE_POST_FAILURE: case DELETE_POST_FAILURE: + case FETCH_COMMENT_FAILURE: + case ADD_COMMENT_FAILURE: + case DELETE_COMMENT_FAILURE: return { ...state, loading: false, From a66c4e139fc915388a53869b1ea0f9292205f2d6 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 07:32:15 +0530 Subject: [PATCH 23/41] updated backend for post to pass the image URL to the DB --- .../config/WebConfig.java | 17 +++++++++++++++++ .../socailfitnessapplication/dto/PostDTO.java | 2 +- .../socailfitnessapplication/entity/Post.java | 2 +- .../config/WebConfig.class | Bin 0 -> 1290 bytes .../dto/PostDTO.class | Bin 2154 -> 2115 bytes .../entity/Post.class | Bin 3662 -> 3472 bytes 6 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 backend/src/main/java/com/paf/socailfitnessapplication/config/WebConfig.java create mode 100644 backend/target/classes/com/paf/socailfitnessapplication/config/WebConfig.class diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/config/WebConfig.java b/backend/src/main/java/com/paf/socailfitnessapplication/config/WebConfig.java new file mode 100644 index 0000000..a477568 --- /dev/null +++ b/backend/src/main/java/com/paf/socailfitnessapplication/config/WebConfig.java @@ -0,0 +1,17 @@ +package com.paf.socailfitnessapplication.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins("*") + .allowedMethods("*") + .allowedHeaders("*"); + } +} diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java index 11d6f1c..330274a 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/dto/PostDTO.java @@ -11,7 +11,7 @@ public class PostDTO { private String id; private String userId; - private List imgLink; + private String imageUrl; private String caption; private List likedby; private Date createdAt; diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java index cf1e8c4..58bcc40 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/entity/Post.java @@ -18,7 +18,7 @@ public class Post { @Id private String id; private String userId; - private List imgLinks; + private String imageUrl; private String caption; private List likes; private List comments; diff --git a/backend/target/classes/com/paf/socailfitnessapplication/config/WebConfig.class b/backend/target/classes/com/paf/socailfitnessapplication/config/WebConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..afabeaec8cd64787aa45dcd75cef352e1d83e783 GIT binary patch literal 1290 zcmcIk%Wl&^6g`uqaR_c&0tCvtP#{U6Lxsd9Pyvw;i=;&jN~u^)oQXTdv7_;%p`XR3 zNJ#Jjd=%o^PFo|fDG>|LorirMbMN)fU*CQJc!6~b8HRNy81j)A@Gx+M@&?NIG7QCN zH|-jV=UqOfl1H_wte6v$YU)vL;kt)mDym(R%=~`Tr=p)BC;c4s41{=g7`u%30!!}(6nIW8JwRLuL5yZB1 zRcQ2Kqt-3pBDv!AdJ&g##X^N)V>VD5SFyxUB)LMDyTyd^ors#p#014oFxHNIqoP7DoiyQE zlwyXZ?XhpvP^}OxOovz~u9cPHfsd3|tJ{lUs@Je7pIR|@YZn{rqUiQQ(9uu2HCf<3;&6S>7;t3I){GZXuM3skugMpKg0VM96 zSWuFgpU26-$e_W)z{9`>5%$TNFz_;PPIhPN;N~hu81$7Xdh%T+smTG% zxym4ATnr2hObpyW3^WAH2I@kHPrku?PF4vh3sI-cAPiKa50qyF(yUrr7*r-ZvZ#rx zF-QYN(B;%Ya=e-hNcuNxvqmv0TQD#~4YUMn@&Q`F1T>IMOM5GW%0?iIdGZ1_RTYp! ztbjZouyt%e?{foLrXZ^sfgAxK$9l3Mn;4_|WJV4R1&|Nm(mY^k8wMo1CY!NaD?q%5 PY$`9Zsl1aXvTp(amf<=Y diff --git a/backend/target/classes/com/paf/socailfitnessapplication/entity/Post.class b/backend/target/classes/com/paf/socailfitnessapplication/entity/Post.class index a1c2b879c95a49d2dffcd93e56c45d2fe66b093d..32e92eab94d0a7b533465f63a2b464a73d1102f2 100644 GIT binary patch literal 3472 zcmcImU31$+6uoln_#bk>j%$&ruU4{ z(2dwm-|qotdK6gxKAcqSfzh{)d`F?OX$(0)g-VY7%mQFtMlcF(NAKD}h=bKbyYCv| z$hQ=_cVT<0oA>Tr;BRgNu7VQ-5CUhNmqzPI3;|d*eai@~-VRtyhrf$O4u3QRA9A}C zSRqqzy){Yn%CSPlj@PrQ1kP0|(X>LdUE8%DjRq%{|E&S?IYmgab8PrF&!fd+_{7G2 zZs%r$D*>_9A6nrPuXkW@>O#v0Min6*iA-@Eiz-z)ju{R-N*k}gqf(96Ygq5d9P;ve zD$Ve61DqT_N#(7qr56_t4z@ua#n7x;Gn`B&i zeqW_Jdsf*&QUK?!D=I*mf2dM}u1WKwvx49oe5}$uZ_JktY}XFA z75XuwpC(z%zmiZU&t%R;OsV}S+Y0^le?@cYT&1F8G0lHINlXgj1sAT-6n&}E9(|?I zRExX2cIb_K)7rCHu&S&zxA|Q`vA_7a7z(MP=Ue&!j~8APeb+NbtksaJn&~+X zUMl%o41pQYBKl_v4`GE0ESH#-G2^jBA?F3;C#YdXM5$wB=1STxbn_>C6jHQb5v44tEk&iQ&}Qc0 zg?xv%G7m51JA60u@N&Mx+w>VOCu{EB#NAi(f$XF}?oWWM=L6}`ZU*}s`3^tGJbWkL z;XV31?z=BU_wPtxt8(On6 zCQ*Lr9=$4xs~w3J$MjW%&OStAC5w`+x%ORieim>xg@^0(O9M1LWNn++x!Cw ziq6d^m9;H8{mgz2_AG;o6``ywg{)mHHmm{sk9$cLKVGQ``f>S-?KGQF`~~X5OMxDW PS7rtLUQ19;>IF`T=rNQ$KlYI#VcUEMwR>^*nS`mcZf_>+jfq^C1fP-xwB2l~)B z)qU4A?Ea}8IF|1l!(rbxjlgyt-Esmuc&Q({elSDR3e{d1KN@=9aC-XVlNXj5C{(b! z3e`LDhoiu=o!+KGjVB{4A6Un>Z=dw79mjD40qZN&?6_V}_lF#M>KOy;C)YdEyGCH> zMii$XbOBQu`IdKpBxQTh>)6g2me*vyQDFD=j_n5ss~p)q#|TEArO@?>&s%AF+gLJV z8bjWuLdCv)W&!tJYGK|IbpWu*pk=HWpl(3heQmT|i6H&LxU9#EDsnJP<$o?WgZ`>RAC-hn0Tb_Vn{!hm&xCl zoXu2q?U-?Is8ppZ3N2sU&CB8Wj;ctwE7j-tn<~vQk20oNNfs}iF7NKcUXWCDmFAfW zZ!we===-ma9`}Y!@Tp1*oIvFSajRS?qUaSF{)I}5bXA5wJ8vDX!CjS>_(QQLo9JqD zE!{;B5TB)h*b|3FvenNQ#JVZ8nwrd%O`$5VLPekh2B8l3GXP#u2uU<9{)7Jk8CM@A zWXf^HFYZ4)o*WaE8D_R+J9eGMdaSdFj=XOtY)AcNUfNKz;_i<;+8)pbipH^`2rf?;fslbkm z(F{iXEaO>VcN9;!8Rk^+K8ty{m3W7>MDsPw!wI5s9b+7I5r>nFXC2>`=?%=kiP2p= z3wV~an`3JHD&pSeF`@{$-ogK68A0#Tdl>OI$?|=?7vU9DL-4h1$d$a1yh(*Z$cljc zkglUHa=#x5ww)x~Rfe9T|7I)e)YL<0FYv=+$-&2oWS^vyweu#E&67;FAX+9&wjeTpMxR58RR3(`Ef#lVRIEh- zc{>~OPF_fE?g(;8KyK0&rkJIUC--wv`;8jE;H8jgn_1E1vNeiflPmaroV9o*-{Nih z3Mpjg-b*o9%?GlR$w14u_4Qi1$!?RV-3$J5rww4&V_)2h~(9+RduieqYNjnWuFjhQiRXpQoiL>nf( zW==HC4-zeM#&+n8$RJ#sowd!sLWRG#g=0^PIX=@x@x}*^eY`Dvnw`JRzro=BdyL^woCq5nh3yy=!DgXcg From 275baa790375ee5397d1069cb1918b3d1ac0e7b6 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 07:35:30 +0530 Subject: [PATCH 24/41] updated frontend to send the image to S3 bucket --- frontend/src/Components/HomeSection/HomeSection.jsx | 1 - frontend/src/Components/HomeSection/MealPost.jsx | 8 +++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/frontend/src/Components/HomeSection/HomeSection.jsx b/frontend/src/Components/HomeSection/HomeSection.jsx index a2edc80..d4e1cf1 100644 --- a/frontend/src/Components/HomeSection/HomeSection.jsx +++ b/frontend/src/Components/HomeSection/HomeSection.jsx @@ -25,7 +25,6 @@ const HomeSection = ({ meals, dispatch }) => { ))} diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 2525a57..81610c9 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -12,15 +12,13 @@ import CommentModel from "./CommentModel"; const MealPost = ({ meal, onAddComment }) => { const dispatch = useDispatch(); const { - id, username = "John Doe", profileImage = "https://images.pexels.com/photos/1130626/pexels-photo-1130626.jpeg?auto=compress&cs=tinysrgb&w=600", - caption: initialCaption, - imageUrl: initialImageUrl, } = meal; const [likes, setLikes] = useState(0); - const [caption, setCaption] = useState(initialCaption); - const [imageUrl, setImageUrl] = useState(initialImageUrl); + const [id, setId] = useState(meal.data.id); + const [caption, setCaption] = useState(meal.data.caption); + const [imageUrl, setImageUrl] = useState(meal.data.imageUrl); const [comments, setComments] = useState([]); const [isEditing, setIsEditing] = useState(false); From 7aea21c110e4fa7b9bdcb039e0599b032661a233 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 07:41:18 +0530 Subject: [PATCH 25/41] updated frontend to send the image to S3 bucket through .env --- frontend/.env | 4 ++ frontend/src/Components/Config/awsS3.js | 69 +++++++++++++++++++ frontend/src/Components/Config/axios.js | 28 ++++++++ .../src/Components/HomeSection/NewPost.jsx | 46 ++++++++----- 4 files changed, 128 insertions(+), 19 deletions(-) create mode 100644 frontend/.env create mode 100644 frontend/src/Components/Config/awsS3.js create mode 100644 frontend/src/Components/Config/axios.js diff --git a/frontend/.env b/frontend/.env new file mode 100644 index 0000000..449f07a --- /dev/null +++ b/frontend/.env @@ -0,0 +1,4 @@ +REACT_APP_S3_BUCKET_NAME = fitness-cartel-image-store +REACT_APP_S3_BUCKET_REGION = us-east-2 +REACT_APP_S3_ACCESS_KEY = AKIA36IDVPAIXPUA6QCG +REACT_APP_S3_SECRET_KEY = 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 \ No newline at end of file diff --git a/frontend/src/Components/Config/awsS3.js b/frontend/src/Components/Config/awsS3.js new file mode 100644 index 0000000..db0beca --- /dev/null +++ b/frontend/src/Components/Config/awsS3.js @@ -0,0 +1,69 @@ +import AWS from "aws-sdk"; +import S3, { Object } from "aws-sdk/clients/s3"; +import { + S3Client, + DeleteObjectCommand, + PutObjectRequest, +} from "@aws-sdk/client-s3"; + +const S3_BUCKET = process.env.REACT_APP_S3_BUCKET_NAME; +const REGION = process.env.REACT_APP_S3_BUCKET_REGION; + +const credentials = { + accessKeyId: process.env.REACT_APP_S3_ACCESS_KEY, + secretAccessKey: process.env.REACT_APP_S3_SECRET_KEY, +}; + +AWS.config.update(credentials); + +const uploadToS3 = async (userFile, name) => { + console.log("Uploading to S3"); + console.log("Name: ", name); + console.log("File: ", userFile); + console.log("Bucket: ", S3_BUCKET); + console.log("Region: ", REGION); + + const s3 = new S3({ + params: { Bucket: S3_BUCKET }, + region: REGION, + }); + + const params = { + Bucket: S3_BUCKET, + Key: name, + Body: userFile, + }; + + try { + let promise = s3.putObject(params).promise(); + await promise; + return true; + } catch (error) { + console.error(error); + return false; + } +}; + +const deleteFromS3 = async (name) => { + const s3 = new S3Client({ + params: { Bucket: S3_BUCKET }, + region: REGION, + credentials: credentials, + }); + + const command = new DeleteObjectCommand({ + Bucket: S3_BUCKET, + Key: name, + }); + + try { + const promise = s3.send(command); + await promise; + return true; + } catch (error) { + console.error(error); + return false; + } +}; + +export { uploadToS3, deleteFromS3 }; diff --git a/frontend/src/Components/Config/axios.js b/frontend/src/Components/Config/axios.js new file mode 100644 index 0000000..e771860 --- /dev/null +++ b/frontend/src/Components/Config/axios.js @@ -0,0 +1,28 @@ +import axios from "axios"; + +const instance = axios.create({ + baseURL: `http://localhost:8080`, + // other custom settings +}); + +/* +instance.interceptors.request.use(function (config) { + const token = localStorage.getItem('jwtToken'); + config.headers.Authorization = token ? `Bearer ${token}` : ''; + return config; +}); + +instance.interceptors.response.use( + function (response) { + return response; + }, + function (error) { + if (error.response && (error.response.status === 401 || error.response.status === 403)) { + window.location.href = '/auth'; + } + return Promise.reject(error); + } + +); +*/ +export default instance; diff --git a/frontend/src/Components/HomeSection/NewPost.jsx b/frontend/src/Components/HomeSection/NewPost.jsx index 5270ccf..4a7d69f 100644 --- a/frontend/src/Components/HomeSection/NewPost.jsx +++ b/frontend/src/Components/HomeSection/NewPost.jsx @@ -1,19 +1,23 @@ import React, { useState } from "react"; +import { v4 as uuidv4 } from "uuid"; import { IconButton, Button } from "@mui/material"; import PhotoCameraIcon from "@mui/icons-material/PhotoCamera"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; - import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { useDispatch } from "react-redux"; import { addPost } from "../Store/Action"; +import { uploadToS3 } from "../Config/awsS3"; + const NewPost = () => { const dispatch = useDispatch(); const [caption, setCaption] = useState(""); const [image, setImage] = useState(null); - + + const S3_BUCKET_NAME = process.env.REACT_APP_S3_BUCKET_NAME; + const S3_BUCKET_REGION = process.env.REACT_APP_S3_BUCKET_REGION; const handleImageChange = (e) => { setImage(e.target.files[0]); @@ -22,25 +26,31 @@ const NewPost = () => { const handlePostClick = async () => { if (image && caption) { try { + const fileName = + "paf_sfa_" + uuidv4() + "." + image.name.split(".").pop(); + await uploadToS3(image, fileName); // Upload image to Cloudinary - const formData = new FormData(); - formData.append("file", image); - formData.append("upload_preset", "paf123"); - const response = await fetch( - "https://api.cloudinary.com/v1_1/ddvmuwi3e/image/upload", - { - method: "POST", - body: formData, - } - ); - if (!response.ok) { - throw new Error("Failed to upload image to Cloudinary"); - } - const data = await response.json(); - const imageUrl = data.secure_url; + + //const data = await response.json(); + //const imageUrl = data.secure_url; + + // Placeholder image URL + const imageUrl = `https://${S3_BUCKET_NAME}.s3.${S3_BUCKET_REGION}.amazonaws.com/${fileName}`; // Dispatch action to add post dispatch(addPost({ caption, imageUrl })); + /* + const response = await fetch("http://localhost:8080/api/posts", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ caption, imageUrl }), + }); + + const json = await response.json(); + console.log("Post added:", json); +*/ // Reset form setCaption(""); @@ -96,7 +106,6 @@ const NewPost = () => { -
handleEditPost()}> @@ -114,7 +123,6 @@ const NewPost = () => {
-
); }; From 1ae3c9b83c9d1750a38cc7aa24d09e1c16a15d96 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 07:46:40 +0530 Subject: [PATCH 26/41] updated backend to modify the post entity --- .../controller/PostController.java | 3 ++- .../controller/PostController.class | Bin 6375 -> 6375 bytes frontend/src/Components/Store/Action.js | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java index 6f0e953..6bb0fc4 100644 --- a/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java +++ b/backend/src/main/java/com/paf/socailfitnessapplication/controller/PostController.java @@ -28,13 +28,14 @@ public ResponseEntity getPostById(@PathVariable String id) { return post.map(value -> new ResponseEntity<>(value, HttpStatus.OK)) .orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND)); } - + @GetMapping public ResponseEntity> getAllPosts() { List posts = postService.getAllPosts(); return new ResponseEntity<>(posts, HttpStatus.OK); } + @GetMapping("/user/{userId}") public ResponseEntity> getAllPostsByUserId(@PathVariable String userId) { List posts = postService.getAllPostsByUserId(userId); diff --git a/backend/target/classes/com/paf/socailfitnessapplication/controller/PostController.class b/backend/target/classes/com/paf/socailfitnessapplication/controller/PostController.class index 713cc06c99f2095211e3992bc5735037979b5a7b..c7835b28776ec1e502e89458e222fee1f13f72fe 100644 GIT binary patch delta 112 zcmaEE_}p+qxG<|G12==#*AJh@gP3jn5g9Pj`D delta 112 zcmaEE_}p+qxG<{*12==_*AG`UtH3jm`?9N+)| diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index e19350e..eb07ee0 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -1,5 +1,5 @@ // actions.js -import axios from "axios"; +import axios from "../Config/axios"; import { FETCH_POSTS_REQUEST, FETCH_POSTS_SUCCESS, @@ -40,8 +40,8 @@ export const addPost = (postData) => { return async (dispatch) => { dispatch({ type: ADD_POST_REQUEST }); try { - // const response = await axios.post("/api/posts", postData); - dispatch({ type: ADD_POST_SUCCESS, payload: postData }); + const response = await axios.post("/api/posts", postData); + dispatch({ type: ADD_POST_SUCCESS, payload: response }); } catch (error) { dispatch({ type: ADD_POST_FAILURE, payload: error.message }); } From be59344abbe8020c9e26b437a68ffd4005b1c0a7 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 08:34:32 +0530 Subject: [PATCH 27/41] updated backend to modify the post entity --- frontend/package-lock.json | 1821 ++++++++++++++++++++++++++++++++++-- frontend/package.json | 2 + 2 files changed, 1727 insertions(+), 96 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index e5e58bd..34a671d 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,6 +8,7 @@ "name": "frontend", "version": "0.1.0", "dependencies": { + "@aws-sdk/client-s3": "^3.572.0", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@mui/icons-material": "^5.15.15", @@ -17,6 +18,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "aws-sdk": "^2.1617.0", "axios": "^1.6.8", "cloudinary": "^2.2.0", "cloudinary-react": "^1.8.1", @@ -71,6 +73,809 @@ "node": ">=6.0.0" } }, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/crc32c": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz", + "integrity": "sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/crc32c/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha1-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz", + "integrity": "sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", + "dependencies": { + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", + "dependencies": { + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dependencies": { + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/util": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" + } + }, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-sdk/client-s3": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.572.0.tgz", + "integrity": "sha512-YLtJRVZN+ktOaseWeTtthmimRQoWxygdzRPFlb1HpDPX+akBrGkL7Mz69onpXKfqm9Loz3diUXHqKfpxRX9Pog==", + "dependencies": { + "@aws-crypto/sha1-browser": "3.0.0", + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.572.0", + "@aws-sdk/client-sts": "3.572.0", + "@aws-sdk/core": "3.572.0", + "@aws-sdk/credential-provider-node": "3.572.0", + "@aws-sdk/middleware-bucket-endpoint": "3.568.0", + "@aws-sdk/middleware-expect-continue": "3.572.0", + "@aws-sdk/middleware-flexible-checksums": "3.572.0", + "@aws-sdk/middleware-host-header": "3.567.0", + "@aws-sdk/middleware-location-constraint": "3.567.0", + "@aws-sdk/middleware-logger": "3.568.0", + "@aws-sdk/middleware-recursion-detection": "3.567.0", + "@aws-sdk/middleware-sdk-s3": "3.572.0", + "@aws-sdk/middleware-signing": "3.572.0", + "@aws-sdk/middleware-ssec": "3.567.0", + "@aws-sdk/middleware-user-agent": "3.572.0", + "@aws-sdk/region-config-resolver": "3.572.0", + "@aws-sdk/signature-v4-multi-region": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-endpoints": "3.572.0", + "@aws-sdk/util-user-agent-browser": "3.567.0", + "@aws-sdk/util-user-agent-node": "3.568.0", + "@aws-sdk/xml-builder": "3.567.0", + "@smithy/config-resolver": "^2.2.0", + "@smithy/core": "^1.4.2", + "@smithy/eventstream-serde-browser": "^2.2.0", + "@smithy/eventstream-serde-config-resolver": "^2.2.0", + "@smithy/eventstream-serde-node": "^2.2.0", + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/hash-blob-browser": "^2.2.0", + "@smithy/hash-node": "^2.2.0", + "@smithy/hash-stream-node": "^2.2.0", + "@smithy/invalid-dependency": "^2.2.0", + "@smithy/md5-js": "^2.2.0", + "@smithy/middleware-content-length": "^2.2.0", + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-retry": "^2.3.1", + "@smithy/middleware-serde": "^2.3.0", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-body-length-browser": "^2.2.0", + "@smithy/util-body-length-node": "^2.3.0", + "@smithy/util-defaults-mode-browser": "^2.2.1", + "@smithy/util-defaults-mode-node": "^2.3.1", + "@smithy/util-endpoints": "^1.2.0", + "@smithy/util-retry": "^2.2.0", + "@smithy/util-stream": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "@smithy/util-waiter": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.572.0.tgz", + "integrity": "sha512-S+xhScao5MD79AkrcHmFpEDk+CgoiuB/31WFcTcnrTio5TOUONAaT0QyscOIwRp7BZ7Aez7TBM+loTteJ+TQvg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.572.0", + "@aws-sdk/middleware-host-header": "3.567.0", + "@aws-sdk/middleware-logger": "3.568.0", + "@aws-sdk/middleware-recursion-detection": "3.567.0", + "@aws-sdk/middleware-user-agent": "3.572.0", + "@aws-sdk/region-config-resolver": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-endpoints": "3.572.0", + "@aws-sdk/util-user-agent-browser": "3.567.0", + "@aws-sdk/util-user-agent-node": "3.568.0", + "@smithy/config-resolver": "^2.2.0", + "@smithy/core": "^1.4.2", + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/hash-node": "^2.2.0", + "@smithy/invalid-dependency": "^2.2.0", + "@smithy/middleware-content-length": "^2.2.0", + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-retry": "^2.3.1", + "@smithy/middleware-serde": "^2.3.0", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-body-length-browser": "^2.2.0", + "@smithy/util-body-length-node": "^2.3.0", + "@smithy/util-defaults-mode-browser": "^2.2.1", + "@smithy/util-defaults-mode-node": "^2.3.1", + "@smithy/util-endpoints": "^1.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.572.0.tgz", + "integrity": "sha512-S6C/S6xYesDakEuzYvlY1DMMKLtKQxdbbygq3hfeG2R0jUt9KpRLsQXK8qrBuVCKa3WcnjN/30hp4g/iUWFU/w==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.572.0", + "@aws-sdk/core": "3.572.0", + "@aws-sdk/credential-provider-node": "3.572.0", + "@aws-sdk/middleware-host-header": "3.567.0", + "@aws-sdk/middleware-logger": "3.568.0", + "@aws-sdk/middleware-recursion-detection": "3.567.0", + "@aws-sdk/middleware-user-agent": "3.572.0", + "@aws-sdk/region-config-resolver": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-endpoints": "3.572.0", + "@aws-sdk/util-user-agent-browser": "3.567.0", + "@aws-sdk/util-user-agent-node": "3.568.0", + "@smithy/config-resolver": "^2.2.0", + "@smithy/core": "^1.4.2", + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/hash-node": "^2.2.0", + "@smithy/invalid-dependency": "^2.2.0", + "@smithy/middleware-content-length": "^2.2.0", + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-retry": "^2.3.1", + "@smithy/middleware-serde": "^2.3.0", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-body-length-browser": "^2.2.0", + "@smithy/util-body-length-node": "^2.3.0", + "@smithy/util-defaults-mode-browser": "^2.2.1", + "@smithy/util-defaults-mode-node": "^2.3.1", + "@smithy/util-endpoints": "^1.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.572.0.tgz", + "integrity": "sha512-jCQuH2qkbWoSY4wckLSfzf3OPh7zc7ZckEbIGGVUQar/JVff6EIbpQ+uNG29DDEOpdPPd8rrJsVuUlA/nvJdXA==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.572.0", + "@aws-sdk/core": "3.572.0", + "@aws-sdk/credential-provider-node": "3.572.0", + "@aws-sdk/middleware-host-header": "3.567.0", + "@aws-sdk/middleware-logger": "3.568.0", + "@aws-sdk/middleware-recursion-detection": "3.567.0", + "@aws-sdk/middleware-user-agent": "3.572.0", + "@aws-sdk/region-config-resolver": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-endpoints": "3.572.0", + "@aws-sdk/util-user-agent-browser": "3.567.0", + "@aws-sdk/util-user-agent-node": "3.568.0", + "@smithy/config-resolver": "^2.2.0", + "@smithy/core": "^1.4.2", + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/hash-node": "^2.2.0", + "@smithy/invalid-dependency": "^2.2.0", + "@smithy/middleware-content-length": "^2.2.0", + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-retry": "^2.3.1", + "@smithy/middleware-serde": "^2.3.0", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-body-length-browser": "^2.2.0", + "@smithy/util-body-length-node": "^2.3.0", + "@smithy/util-defaults-mode-browser": "^2.2.1", + "@smithy/util-defaults-mode-node": "^2.3.1", + "@smithy/util-endpoints": "^1.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.572.0.tgz", + "integrity": "sha512-DBmf94qfN0dfaLl5EnNcq6TakWfOtVXYifHoTbX+VBwESj3rlY4W+W4mAnvBgAqDjlLFy7bBljmx+vnjnV73lg==", + "dependencies": { + "@smithy/core": "^1.4.2", + "@smithy/protocol-http": "^3.3.0", + "@smithy/signature-v4": "^2.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.568.0.tgz", + "integrity": "sha512-MVTQoZwPnP1Ev5A7LG+KzeU6sCB8BcGkZeDT1z1V5Wt7GPq0MgFQTSSjhImnB9jqRSZkl1079Bt3PbO6lfIS8g==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.568.0.tgz", + "integrity": "sha512-gL0NlyI2eW17hnCrh45hZV+qjtBquB+Bckiip9R6DIVRKqYcoILyiFhuOgf2bXeF23gVh6j18pvUvIoTaFWs5w==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-stream": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.572.0.tgz", + "integrity": "sha512-05KzbAp77fEiQXqMeodXeMbT83FOqSyBrfSEMz6U8uBXeJCy8zPUjN3acqcbG55/HNJHUvg1cftqzy+fUz71gA==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.568.0", + "@aws-sdk/credential-provider-process": "3.572.0", + "@aws-sdk/credential-provider-sso": "3.572.0", + "@aws-sdk/credential-provider-web-identity": "3.568.0", + "@aws-sdk/types": "3.567.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "3.572.0" + } + }, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.572.0.tgz", + "integrity": "sha512-anlYZnpmVkfp9Gan+LcEkQvmRf/m0KcbR11th8sBEyI5lxMaHKXhnAtC/hEGT7e3L6rgNOrFYTPuSvllITD/Pg==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.568.0", + "@aws-sdk/credential-provider-http": "3.568.0", + "@aws-sdk/credential-provider-ini": "3.572.0", + "@aws-sdk/credential-provider-process": "3.572.0", + "@aws-sdk/credential-provider-sso": "3.572.0", + "@aws-sdk/credential-provider-web-identity": "3.568.0", + "@aws-sdk/types": "3.567.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.572.0.tgz", + "integrity": "sha512-hXcOytf0BadSm/MMy7MV8mmY0+Jv3mkavsHNBx0R82hw5ollD0I3JyOAaCtdUpztF0I72F8K+q8SpJQZ+EwArw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.572.0.tgz", + "integrity": "sha512-iIlnpJiDXFp3XC4hJNSiNurnU24mr3iLB3HoNa9efr944bo6XBl9FQdk3NssIkqzSmgyoB2CEUx/daBHz4XSow==", + "dependencies": { + "@aws-sdk/client-sso": "3.572.0", + "@aws-sdk/token-providers": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.568.0.tgz", + "integrity": "sha512-ZJSmTmoIdg6WqAULjYzaJ3XcbgBzVy36lir6Y0UBMRGaxDgos1AARuX6EcYzXOl+ksLvxt/xMQ+3aYh1LWfKSw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.568.0" + } + }, + "node_modules/@aws-sdk/middleware-bucket-endpoint": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.568.0.tgz", + "integrity": "sha512-uc/nbSpXv64ct/wV3Ksz0/bXAsEtXuoZu5J9FTcFnM7c2MSofa0YQrtrJ8cG65uGbdeiFoJwPA048BTG/ilhCA==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-expect-continue": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.572.0.tgz", + "integrity": "sha512-+NKWVK295rOEANU/ohqEfNjkcEdZao7z6HxkMXX4gu4mDpSsVU8WhYr5hp5k3PUhtaiPU8M1rdfQBrZQc4uttw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-flexible-checksums": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.572.0.tgz", + "integrity": "sha512-ysblGDRn1yy8TlKUrwhnFbl3RuMfbVW1rbtePClEYpC/1u9MsqPmm/fmWJJGKat7NclnsgpQyfSQ64DCuaEedg==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@aws-crypto/crc32c": "3.0.0", + "@aws-sdk/types": "3.567.0", + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.567.0.tgz", + "integrity": "sha512-zQHHj2N3in9duKghH7AuRNrOMLnKhW6lnmb7dznou068DJtDr76w475sHp2TF0XELsOGENbbBsOlN/S5QBFBVQ==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-location-constraint": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.567.0.tgz", + "integrity": "sha512-XiGTH4VxrJ5fj6zeF6UL5U5EuJwLqj9bHW5pB+EKfw0pmbnyqfRdYNt46v4GsQql2iVOq1Z/Fiv754nIItBI/A==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.568.0.tgz", + "integrity": "sha512-BinH72RG7K3DHHC1/tCulocFv+ZlQ9SrPF9zYT0T1OT95JXuHhB7fH8gEABrc6DAtOdJJh2fgxQjPy5tzPtsrA==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.567.0.tgz", + "integrity": "sha512-rFk3QhdT4IL6O/UWHmNdjJiURutBCy+ogGqaNHf/RELxgXH3KmYorLwCe0eFb5hq8f6vr3zl4/iH7YtsUOuo1w==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-sdk-s3": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.572.0.tgz", + "integrity": "sha512-ygQL1G2hWoJXkUGL/Xr5q9ojXCH8hgt/oKsxJtc5U8ZXw3SRlL6pCVE7+aiD0l8mgIGbW0vrL08Oc/jYWlakdw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-arn-parser": "3.568.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/signature-v4": "^2.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-signing": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.572.0.tgz", + "integrity": "sha512-/pEVgHnf8LsTG0hu9yqqvmLMknlKO5c19NM3J9qTWGLPfySi8tWrFuREAFKAxqJFgDw1IdFWd+dXIkodpbGwew==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/signature-v4": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-ssec": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.567.0.tgz", + "integrity": "sha512-lhpBwFi3Tcw+jlOdaCsg3lCAg4oOSJB00bW/aLTFeZWutwi9VexMmsddZllx99lN+LDeCjryNyVd2TCRCKwYhQ==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.572.0.tgz", + "integrity": "sha512-R4bBbLp1ywtF1kJoOX1juDMztKPWeQHNj6XuTvtruFDn1RdfnBlbM3+9rguRfH5s4V+xfl8SSWchnyo2cI00xg==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@aws-sdk/util-endpoints": "3.572.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.572.0.tgz", + "integrity": "sha512-xkZMIxek44F4YW5r9otD1O5Y/kDkgAb6JNJePkP1qPVojrkCmin3OFYAOZgGm+T4DZAQ5rWhpaqTAWmnRumYfw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/signature-v4-multi-region": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.572.0.tgz", + "integrity": "sha512-FD6FIi8py1ZAR53NjD2VXKDvvQUhhZu7CDUfC9gjAa7JDtv+rJvM9ZuoiQjaDnzzqYxTr4pKqqjLsd6+8BCSWA==", + "dependencies": { + "@aws-sdk/middleware-sdk-s3": "3.572.0", + "@aws-sdk/types": "3.567.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/signature-v4": "^2.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/token-providers": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.572.0.tgz", + "integrity": "sha512-IkSu8p32tQZhKqwmfLZLGfYwNhsS/HUQBLnDMHJlr9VifmDqlTurcr+DwMCaMimuFhcLeb45vqTymKf/ro/OBw==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "3.572.0" + } + }, + "node_modules/@aws-sdk/types": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.567.0.tgz", + "integrity": "sha512-JBznu45cdgQb8+T/Zab7WpBmfEAh77gsk99xuF4biIb2Sw1mdseONdoGDjEJX57a25TzIv/WUJ2oABWumckz1A==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-arn-parser": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.568.0.tgz", + "integrity": "sha512-XUKJWWo+KOB7fbnPP0+g/o5Ulku/X53t7i/h+sPHr5xxYTJJ9CYnbToo95mzxe7xWvkLrsNtJ8L+MnNn9INs2w==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.572.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.572.0.tgz", + "integrity": "sha512-AIEC7ItIWBqkJLtqcSd0HG8tvdh3zVwqnKPHNrcfFay0Xonqx3p/qTCDwGosh5CM5hDGzyOSRA5PkacEDBTz9w==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/types": "^2.12.0", + "@smithy/util-endpoints": "^1.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", + "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.567.0.tgz", + "integrity": "sha512-cqP0uXtZ7m7hRysf3fRyJwcY1jCgQTpJy7BHB5VpsE7DXlXHD5+Ur5L42CY7UrRPrB6lc6YGFqaAOs5ghMcLyA==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/types": "^2.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.568.0.tgz", + "integrity": "sha512-NVoZoLnKF+eXPBvXg+KqixgJkPSrerR6Gqmbjwqbv14Ini+0KNKB0/MXas1mDGvvEgtNkHI/Cb9zlJ3KXpti2A==", + "dependencies": { + "@aws-sdk/types": "3.567.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } + } + }, + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@aws-sdk/xml-builder": { + "version": "3.567.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.567.0.tgz", + "integrity": "sha512-Db25jK9sZdGa7PEQTdm60YauUVbeYGsSEMQOHGP6ifbXfCknqgkPgWV16DqAKJUsbII0xgkJ9LpppkmYal3K/g==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", @@ -3881,144 +4686,793 @@ "url": "https://opencollective.com/popperjs" } }, - "node_modules/@reduxjs/toolkit": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.3.tgz", - "integrity": "sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==", + "node_modules/@reduxjs/toolkit": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.3.tgz", + "integrity": "sha512-76dll9EnJXg4EVcI5YNxZA/9hSAmZsFqzMmNRHvIlzw2WS/twfcVX3ysYrWGJMClwEmChQFC4yRq74tn6fdzRA==", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.0.1" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/router": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", + "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", + "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.2.0.tgz", + "integrity": "sha512-wRlta7GuLWpTqtFfGo+nZyOO1vEvewdNR1R4rTxpC8XU6vG/NDyrFBhwLZsqg1NUoR1noVaXJPC/7ZK47QCySw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/chunked-blob-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.2.0.tgz", + "integrity": "sha512-3GJNvRwXBGdkDZZOGiziVYzDpn4j6zfyULHMDKAGIUo72yHALpE9CbhfQp/XcLNVoc1byfMpn6uW5H2BqPjgaQ==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/chunked-blob-reader-native": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.2.0.tgz", + "integrity": "sha512-VNB5+1oCgX3Fzs072yuRsUoC2N4Zg/LJ11DTxX3+Qu+Paa6AmbIF0E9sc2wthz9Psrk/zcOlTCyuposlIhPjZQ==", + "dependencies": { + "@smithy/util-base64": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.2.0.tgz", + "integrity": "sha512-fsiMgd8toyUba6n1WRmr+qACzXltpdDkPTAaDqc8QqPBUzO+/JKwL6bUBseHVi8tu9l+3JOK+tSf7cay+4B3LA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-config-provider": "^2.3.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-1.4.2.tgz", + "integrity": "sha512-2fek3I0KZHWJlRLvRTqxTEri+qV0GRHrJIoLFuBMZB4EMg4WgeBGfF0X6abnrNYpq55KJ6R4D6x4f0vLnhzinA==", + "dependencies": { + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-retry": "^2.3.1", + "@smithy/middleware-serde": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.3.0.tgz", + "integrity": "sha512-BWB9mIukO1wjEOo1Ojgl6LrG4avcaC7T/ZP6ptmAaW4xluhSIPZhY+/PI5YKzlk+jsm+4sQZB45Bt1OfMeQa3w==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.2.0.tgz", + "integrity": "sha512-8janZoJw85nJmQZc4L8TuePp2pk1nxLgkxIR0TUjKJ5Dkj5oelB9WtiSSGXCQvNsJl0VSTvK/2ueMXxvpa9GVw==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.2.0.tgz", + "integrity": "sha512-UaPf8jKbcP71BGiO0CdeLmlg+RhWnlN8ipsMSdwvqBFigl5nil3rHOI/5GE3tfiuX8LvY5Z9N0meuU7Rab7jWw==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.2.0.tgz", + "integrity": "sha512-RHhbTw/JW3+r8QQH7PrganjNCiuiEZmpi6fYUAetFfPLfZ6EkiA08uN3EFfcyKubXQxOwTeJRZSQmDDCdUshaA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.2.0.tgz", + "integrity": "sha512-zpQMtJVqCUMn+pCSFcl9K/RPNtQE0NuMh8sKpCdEHafhwRsjP50Oq/4kMmvxSRy6d8Jslqd8BLvDngrUtmN9iA==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.2.0.tgz", + "integrity": "sha512-pvoe/vvJY0mOpuF84BEtyZoYfbehiFj8KKWk1ds2AT0mTLYFVs+7sBJZmioOFdBXKd48lfrx1vumdPdmGlCLxA==", + "dependencies": { + "@smithy/eventstream-codec": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.5.0.tgz", + "integrity": "sha512-BOWEBeppWhLn/no/JxUL/ghTfANTjT7kg3Ww2rPqTUY9R4yHPXxJ9JhMe3Z03LN3aPwiwlpDIUcVw1xDyHqEhw==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-blob-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.2.0.tgz", + "integrity": "sha512-SGPoVH8mdXBqrkVCJ1Hd1X7vh1zDXojNN1yZyZTZsCno99hVue9+IYzWDjq/EQDDXxmITB0gBmuyPh8oAZSTcg==", + "dependencies": { + "@smithy/chunked-blob-reader": "^2.2.0", + "@smithy/chunked-blob-reader-native": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.2.0.tgz", + "integrity": "sha512-zLWaC/5aWpMrHKpoDF6nqpNtBhlAYKF/7+9yMN7GpdR8CzohnWfGtMznPybnwSS8saaXBMxIGwJqR4HmRp6b3g==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/hash-stream-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.2.0.tgz", + "integrity": "sha512-aT+HCATOSRMGpPI7bi7NSsTNVZE/La9IaxLXWoVAYMxHT5hGO3ZOGEMZQg8A6nNL+pdFGtZQtND1eoY084HgHQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.2.0.tgz", + "integrity": "sha512-nEDASdbKFKPXN2O6lOlTgrEEOO9NHIeO+HVvZnkqc8h5U9g3BIhWsvzFo+UcUbliMHvKNPD/zVxDrkP1Sbgp8Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/md5-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.2.0.tgz", + "integrity": "sha512-M26XTtt9IIusVMOWEAhIvFIr9jYj4ISPPGJROqw6vXngO3IYJCnVVSMFn4Tx1rUTG5BiKJNg9u2nxmBiZC5IlQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.2.0.tgz", + "integrity": "sha512-5bl2LG1Ah/7E5cMSC+q+h3IpVHMeOkG0yLRyQT1p2aMJkSrZG7RlXHPuAgb7EyaFeidKEnnd/fNaLLaKlHGzDQ==", + "dependencies": { + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.5.1.tgz", + "integrity": "sha512-1/8kFp6Fl4OsSIVTWHnNjLnTL8IqpIb/D3sTSczrKFnrE9VMNWxnrRKNvpUHOJ6zpGD5f62TPm7+17ilTJpiCQ==", + "dependencies": { + "@smithy/middleware-serde": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "@smithy/url-parser": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.3.1.tgz", + "integrity": "sha512-P2bGufFpFdYcWvqpyqqmalRtwFUNUA8vHjJR5iGqbfR6mp65qKOLcUd6lTr4S9Gn/enynSrSf3p3FVgVAf6bXA==", + "dependencies": { + "@smithy/node-config-provider": "^2.3.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/service-error-classification": "^2.1.5", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-retry": "^2.2.0", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz", + "integrity": "sha512-sIADe7ojwqTyvEQBe1nc/GXB9wdHhi9UwyX0lTyttmUWDJLP655ZYE1WngnNyXREme8I27KCaUhyhZWRXL0q7Q==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.2.0.tgz", + "integrity": "sha512-Qntc3jrtwwrsAC+X8wms8zhrTr0sFXnyEGhZd9sLtsJ/6gGQKFzNB+wWbOcpJd7BR8ThNCoKt76BuQahfMvpeA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.3.0.tgz", + "integrity": "sha512-0elK5/03a1JPWMDPaS726Iw6LpQg80gFut1tNpPfxFuChEEklo2yL823V94SpTZTxmKlXFtFgsP55uh3dErnIg==", + "dependencies": { + "@smithy/property-provider": "^2.2.0", + "@smithy/shared-ini-file-loader": "^2.4.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.5.0.tgz", + "integrity": "sha512-mVGyPBzkkGQsPoxQUbxlEfRjrj6FPyA3u3u2VXGr9hT8wilsoQdZdvKpMBFMB8Crfhv5dNkKHIW0Yyuc7eABqA==", + "dependencies": { + "@smithy/abort-controller": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/querystring-builder": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.2.0.tgz", + "integrity": "sha512-+xiil2lFhtTRzXkx8F053AV46QnIw6e7MV8od5Mi68E1ICOjCeCHw2XfLnDEUHnT9WGUIkwcqavXjfwuJbGlpg==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.3.0.tgz", + "integrity": "sha512-Xy5XK1AFWW2nlY/biWZXu6/krgbaf2dg0q492D8M5qthsnU2H+UgFeZLbM76FnH7s6RO/xhQRkj+T6KBO3JzgQ==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.2.0.tgz", + "integrity": "sha512-L1kSeviUWL+emq3CUVSgdogoM/D9QMFaqxL/dd0X7PCNWmPXqt+ExtrBjqT0V7HLN03Vs9SuiLrG3zy3JGnE5A==", + "dependencies": { + "@smithy/types": "^2.12.0", + "@smithy/util-uri-escape": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.2.0.tgz", + "integrity": "sha512-BvHCDrKfbG5Yhbpj4vsbuPV2GgcpHiAkLeIlcA1LtfpMz3jrqizP1+OguSNSj1MwBHEiN+jwNisXLGdajGDQJA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.5.tgz", + "integrity": "sha512-uBDTIBBEdAQryvHdc5W8sS5YX7RQzF683XrHePVdFmAgKiMofU15FLSM0/HU03hKTnazdNRFa0YHS7+ArwoUSQ==", + "dependencies": { + "@smithy/types": "^2.12.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.4.0.tgz", + "integrity": "sha512-WyujUJL8e1B6Z4PBfAqC/aGY1+C7T0w20Gih3yrvJSk97gpiVfB+y7c46T4Nunk+ZngLq0rOIdeVeIklk0R3OA==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.3.0.tgz", + "integrity": "sha512-ui/NlpILU+6HAQBfJX8BBsDXuKSNrjTSuOYArRblcrErwKFutjrCNb/OExfVRyj9+26F9J+ZmfWT+fKWuDrH3Q==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "@smithy/types": "^2.12.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-middleware": "^2.2.0", + "@smithy/util-uri-escape": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.5.1.tgz", + "integrity": "sha512-jrbSQrYCho0yDaaf92qWgd+7nAeap5LtHTI51KXqmpIFCceKU3K9+vIVTUH72bOJngBMqa4kyu1VJhRcSrk/CQ==", "dependencies": { - "immer": "^10.0.3", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.0.1" + "@smithy/middleware-endpoint": "^2.5.1", + "@smithy/middleware-stack": "^2.2.0", + "@smithy/protocol-http": "^3.3.0", + "@smithy/types": "^2.12.0", + "@smithy/util-stream": "^2.2.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.12.0.tgz", + "integrity": "sha512-QwYgloJ0sVNBeBuBs65cIkTbfzV/Q6ZNPCJ99EICFEdJYG50nGIY/uYXp+TbsdJReIuPr0a0kXmCvren3MbRRw==", + "dependencies": { + "tslib": "^2.6.2" }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@reduxjs/toolkit/node_modules/immer": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", - "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "node_modules/@smithy/url-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.2.0.tgz", + "integrity": "sha512-hoA4zm61q1mNTpksiSWp2nEl1dt3j726HdRhiNgVJQMj7mLp7dprtF57mOB6JvEk/x9d2bsuL5hlqZbBuHQylQ==", + "dependencies": { + "@smithy/querystring-parser": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" } }, - "node_modules/@remix-run/router": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", - "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "node_modules/@smithy/util-base64": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.3.0.tgz", + "integrity": "sha512-s3+eVwNeJuXUwuMbusncZNViuhv2LjVJ1nMwTqSA0XAC7gjKhqqxRdJPhR8+YrkoZ9IiIbFk/yK6ACe/xlF+hw==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "node_modules/@smithy/util-body-length-browser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.2.0.tgz", + "integrity": "sha512-dtpw9uQP7W+n3vOtx0CfBD5EWd7EPdIdsQnWTDoFf77e3VUf05uA7R7TGipIo8e4WL2kuPdnsr3hMQn9ziYj5w==", "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.3.0.tgz", + "integrity": "sha512-ITWT1Wqjubf2CJthb0BuT9+bpzBfXeMokH/AAa5EJQgbv9aPMVfnM76iFIZVFf50hYXGbtiV71BHAthNWd6+dw==", + "dependencies": { + "tslib": "^2.6.2" }, "engines": { - "node": ">= 10.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "@types/babel__core": "^7.1.9", - "rollup": "^1.20.0||^2.0.0" + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.3.0.tgz", + "integrity": "sha512-HZkzrRcuFN1k70RLqlNK4FnPXKOpkik1+4JaBoHNJn+RnJGYqaa3c5/+XtLOXhlKzlRgNvyaLieHTW2VwGN0VQ==", + "dependencies": { + "tslib": "^2.6.2" }, - "peerDependenciesMeta": { - "@types/babel__core": { - "optional": true - } + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.2.1.tgz", + "integrity": "sha512-RtKW+8j8skk17SYowucwRUjeh4mCtnm5odCL0Lm2NtHQBsYKrNW0od9Rhopu9wF1gHMfHeWF7i90NwBz/U22Kw==", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" }, "engines": { "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.3.1.tgz", + "integrity": "sha512-vkMXHQ0BcLFysBMWgSBLSk3+leMpFSyyFj8zQtv5ZyUBx8/owVh1/pPEkzmW/DR/Gy/5c8vjLDD9gZjXNKbrpA==", + "dependencies": { + "@smithy/config-resolver": "^2.2.0", + "@smithy/credential-provider-imds": "^2.3.0", + "@smithy/node-config-provider": "^2.3.0", + "@smithy/property-provider": "^2.2.0", + "@smithy/smithy-client": "^2.5.1", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "engines": { + "node": ">= 10.0.0" } }, - "node_modules/@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "node_modules/@smithy/util-endpoints": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.2.0.tgz", + "integrity": "sha512-BuDHv8zRjsE5zXd3PxFXFknzBG3owCpjq8G3FcsXW3CykYXuEqM3nTSsmLzw5q+T12ZYuDlVUZKBdpNbhVtlrQ==", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" + "@smithy/node-config-provider": "^2.3.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "rollup": "^1.20.0 || ^2.0.0" + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "node_modules/@smithy/util-hex-encoding": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.2.0.tgz", + "integrity": "sha512-7iKXR+/4TpLK194pVjKiasIyqMtTYJsgKgM242Y9uzt5dhHnUDvMNb+3xIhRJ9QhvqGii/5cRUt4fJn3dtXNHQ==", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "tslib": "^2.6.2" }, "engines": { - "node": ">= 8.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.2.0.tgz", + "integrity": "sha512-L1qpleXf9QD6LwLCJ5jddGkgWyuSvWBkJwWAZ6kFkdifdso+sk3L3O1HdmPvCdnCK3IS4qWyPxev01QMnfHSBw==", + "dependencies": { + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + "node_modules/@smithy/util-retry": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.2.0.tgz", + "integrity": "sha512-q9+pAFPTfftHXRytmZ7GzLFFrEGavqapFc06XxzZFcSIGERXMerXxCitjOG1prVDR9QdjqotF40SWvbqcCpf8g==", + "dependencies": { + "@smithy/service-error-classification": "^2.1.5", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 14.0.0" + } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.2.tgz", - "integrity": "sha512-hw437iINopmQuxWPSUEvqE56NCPsiU8N4AYtfHmJFckclktzK9YQJieD3XkDCDH4OjL+C7zgPUh73R/nrcHrqw==" + "node_modules/@smithy/util-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.2.0.tgz", + "integrity": "sha512-17faEXbYWIRst1aU9SvPZyMdWmqIrduZjVOqCPMIsWFNxs5yQQgFrJL6b2SdiCzyW9mJoDjFtgi53xx7EH+BXA==", + "dependencies": { + "@smithy/fetch-http-handler": "^2.5.0", + "@smithy/node-http-handler": "^2.5.0", + "@smithy/types": "^2.12.0", + "@smithy/util-base64": "^2.3.0", + "@smithy/util-buffer-from": "^2.2.0", + "@smithy/util-hex-encoding": "^2.2.0", + "@smithy/util-utf8": "^2.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + "node_modules/@smithy/util-uri-escape": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.2.0.tgz", + "integrity": "sha512-jtmJMyt1xMD/d8OtbVJ2gFZOSKc+ueYJZPW20ULW1GOp/q/YIM0wNh+u8ZFao9UaIGz4WoPW8hC64qlWLIfoDA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" + } }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "dependencies": { - "type-detect": "4.0.8" + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "node_modules/@smithy/util-waiter": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.2.0.tgz", + "integrity": "sha512-IHk53BVw6MPMi2Gsn+hCng8rFA3ZmR3Rk7GllxDUW9qFJl/hiSvskn7XldkECapQVkIg/1dHpMAxI9xSTaLLSA==", "dependencies": { - "@sinonjs/commons": "^1.7.0" + "@smithy/abort-controller": "^2.2.0", + "@smithy/types": "^2.12.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/@surma/rollup-plugin-off-main-thread": { @@ -6014,6 +7468,48 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/aws-sdk": { + "version": "2.1617.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1617.0.tgz", + "integrity": "sha512-lIZtMv/0H0OJG/0sMscXB8e96M03AcqpfIEyuuNES4ZkytjyiTaLYCfviYudrRn7gcLbX/b3/TPphymBng4tHw==", + "hasInstallScript": true, + "dependencies": { + "buffer": "4.9.2", + "events": "1.1.1", + "ieee754": "1.1.13", + "jmespath": "0.16.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "util": "^0.12.4", + "uuid": "8.0.0", + "xml2js": "0.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aws-sdk/node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/aws-sdk/node_modules/sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==" + }, + "node_modules/aws-sdk/node_modules/uuid": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", + "integrity": "sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/axe-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", @@ -6338,6 +7834,25 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6451,6 +7966,11 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -6515,11 +8035,26 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/builtin-modules": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", @@ -9035,6 +10570,27 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", @@ -10181,6 +11737,11 @@ "node": ">=4" } }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + }, "node_modules/ignore": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", @@ -12863,6 +14424,14 @@ "jiti": "bin/jiti.js" } }, + "node_modules/jmespath": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz", + "integrity": "sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -15564,6 +17133,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -17295,6 +18873,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, "node_modules/style-loader": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", @@ -18156,6 +19739,15 @@ "punycode": "^2.1.0" } }, + "node_modules/url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", @@ -18165,6 +19757,11 @@ "requires-port": "^1.0.0" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" + }, "node_modules/use-sync-external-store": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", @@ -18173,6 +19770,18 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -19197,6 +20806,26 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index a2b82ee..f84e270 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -3,6 +3,7 @@ "version": "0.1.0", "private": true, "dependencies": { + "@aws-sdk/client-s3": "^3.572.0", "@emotion/react": "^11.11.4", "@emotion/styled": "^11.11.5", "@mui/icons-material": "^5.15.15", @@ -12,6 +13,7 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "aws-sdk": "^2.1617.0", "axios": "^1.6.8", "cloudinary": "^2.2.0", "cloudinary-react": "^1.8.1", From 11e183d6ce30e907aacb1bc3a26818c7c50f187b Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 09:35:21 +0530 Subject: [PATCH 28/41] updated fronted o handle edit of posts --- .../src/Components/HomeSection/EditPost.jsx | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/frontend/src/Components/HomeSection/EditPost.jsx b/frontend/src/Components/HomeSection/EditPost.jsx index 21ad6c1..753562b 100644 --- a/frontend/src/Components/HomeSection/EditPost.jsx +++ b/frontend/src/Components/HomeSection/EditPost.jsx @@ -1,7 +1,17 @@ import React, { useState } from "react"; import { Button, TextField } from "@mui/material"; +import { useDispatch } from "react-redux"; +import { updatePost } from "../Store/Action"; +import { uploadToS3 } from "../Config/awsS3"; -const EditPost = ({ initialCaption, initialImageUrl, onSubmit, onCancel }) => { +const EditPost = ({ + initialCaption, + initialImageUrl, + postId, + onSubmit, + onCancel, +}) => { + const dispatch = useDispatch(); const [caption, setCaption] = useState(initialCaption); const [image, setImage] = useState(null); @@ -9,20 +19,21 @@ const EditPost = ({ initialCaption, initialImageUrl, onSubmit, onCancel }) => { setImage(e.target.files[0]); }; - const handleSubmit = () => { - const formData = new FormData(); - formData.append("file", image); - formData.append("upload_preset", "paf123"); - fetch("https://api.cloudinary.com/v1_1/ddvmuwi3e/image/upload", { - method: "POST", - body: formData, - }) - .then((response) => response.json()) - .then((data) => { - const imageUrl = data.secure_url; - onSubmit(caption, imageUrl); - }) - .catch((error) => console.error("Error uploading image:", error)); + const handleSubmit = async () => { + try { + let updatedImageUrl = initialImageUrl; // Default to initial image URL + if (image) { + const fileName = + "paf_sfa_" + uuidv4() + "." + image.name.split(".").pop(); + await uploadToS3(image, fileName); + updatedImageUrl = `https://${S3_BUCKET_NAME}.s3.${S3_BUCKET_REGION}.amazonaws.com/${fileName}`; + } + + dispatch(updatePost(postId, { caption, imageUrl: updatedImageUrl })); + onSubmit(); // Close the edit form + } catch (error) { + console.error("Error updating post:", error); + } }; return ( From 4fceba03350bce761c7c384227890dfa34de3ec0 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 10:54:29 +0530 Subject: [PATCH 29/41] updated fronted o handle edit of posts --- frontend/package-lock.json | 31 ++++++++++--------- frontend/package.json | 1 + .../src/Components/HomeSection/EditPost.jsx | 4 +++ frontend/src/Components/Store/Action.js | 2 +- frontend/src/Components/Store/Reducer.js | 4 ++- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 34a671d..fc469a4 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -30,6 +30,7 @@ "react-scripts": "^5.0.1", "redux": "^5.0.1", "redux-thunk": "^3.1.0", + "uuid": "^9.0.1", "web-vitals": "^2.1.4", "yup": "^1.4.0" }, @@ -5094,18 +5095,6 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-retry/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@smithy/middleware-serde": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.3.0.tgz", @@ -18419,6 +18408,14 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/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/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -19815,9 +19812,13 @@ } }, "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==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } diff --git a/frontend/package.json b/frontend/package.json index f84e270..6dfaac3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -25,6 +25,7 @@ "react-scripts": "^5.0.1", "redux": "^5.0.1", "redux-thunk": "^3.1.0", + "uuid": "^9.0.1", "web-vitals": "^2.1.4", "yup": "^1.4.0" }, diff --git a/frontend/src/Components/HomeSection/EditPost.jsx b/frontend/src/Components/HomeSection/EditPost.jsx index 753562b..4c441a0 100644 --- a/frontend/src/Components/HomeSection/EditPost.jsx +++ b/frontend/src/Components/HomeSection/EditPost.jsx @@ -3,6 +3,7 @@ import { Button, TextField } from "@mui/material"; import { useDispatch } from "react-redux"; import { updatePost } from "../Store/Action"; import { uploadToS3 } from "../Config/awsS3"; +import { v4 as uuidv4 } from "uuid"; const EditPost = ({ initialCaption, @@ -15,6 +16,9 @@ const EditPost = ({ const [caption, setCaption] = useState(initialCaption); const [image, setImage] = useState(null); + const S3_BUCKET_NAME = process.env.REACT_APP_S3_BUCKET_NAME; + const S3_BUCKET_REGION = process.env.REACT_APP_S3_BUCKET_REGION; + const handleImageChange = (e) => { setImage(e.target.files[0]); }; diff --git a/frontend/src/Components/Store/Action.js b/frontend/src/Components/Store/Action.js index eb07ee0..8895de5 100644 --- a/frontend/src/Components/Store/Action.js +++ b/frontend/src/Components/Store/Action.js @@ -53,7 +53,7 @@ export const updatePost = (postId, updatedPostData) => { dispatch({ type: UPDATE_POST_REQUEST }); try { const response = await axios.put(`/posts/${postId}`, updatedPostData); - dispatch({ type: UPDATE_POST_SUCCESS, payload: response.data }); + dispatch({ type: UPDATE_POST_SUCCESS, payload: response.data }); // Assuming response.data contains the updated post data } catch (error) { dispatch({ type: UPDATE_POST_FAILURE, payload: error.message }); } diff --git a/frontend/src/Components/Store/Reducer.js b/frontend/src/Components/Store/Reducer.js index 62a8009..ffe8a7b 100644 --- a/frontend/src/Components/Store/Reducer.js +++ b/frontend/src/Components/Store/Reducer.js @@ -56,14 +56,16 @@ export const postReducer = (state = initialState, action) => { posts: [...state.posts, action.payload], }; case UPDATE_POST_SUCCESS: + const updatedPost = action.payload; // Assuming action.payload contains only the updated post data const updatedPosts = state.posts.map((post) => - post.id === action.payload.id ? action.payload : post + post.id === updatedPost.id ? updatedPost : post ); return { ...state, loading: false, posts: updatedPosts, }; + case DELETE_POST_SUCCESS: const filteredPosts = state.posts.filter( (post) => post.id !== action.payload From 9a0b21bc19207629e3b9f061185e9d041ef95ca2 Mon Sep 17 00:00:00 2001 From: ovindu Date: Fri, 10 May 2024 19:03:16 +0530 Subject: [PATCH 30/41] updated fronted to address the non sterlized values --- .../src/Components/HomeSection/MealPost.jsx | 66 +++++++++++++++++-- .../src/Components/HomeSection/NewPost.jsx | 20 ------ frontend/src/Components/Store/Action.js | 22 ++++++- frontend/src/Components/Store/Reducer.js | 10 ++- 4 files changed, 88 insertions(+), 30 deletions(-) diff --git a/frontend/src/Components/HomeSection/MealPost.jsx b/frontend/src/Components/HomeSection/MealPost.jsx index 81610c9..7658679 100644 --- a/frontend/src/Components/HomeSection/MealPost.jsx +++ b/frontend/src/Components/HomeSection/MealPost.jsx @@ -1,11 +1,23 @@ -import React, { useState } from "react"; -import { IconButton } from "@mui/material"; +import React, { useState, useEffect } from "react"; +import { + IconButton, + Dialog, + DialogTitle, + DialogContent, + DialogActions, + Button, +} from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import ThumbUpIcon from "@mui/icons-material/ThumbUp"; import ChatIcon from "@mui/icons-material/Chat"; import { useDispatch } from "react-redux"; -import { incrementLikes } from "../Store/Action"; +import { + incrementLikes, + deletePost, + updatePost, + deletePostFailure, +} from "../Store/Action"; import EditPost from "./EditPost"; import CommentModel from "./CommentModel"; @@ -20,9 +32,16 @@ const MealPost = ({ meal, onAddComment }) => { const [caption, setCaption] = useState(meal.data.caption); const [imageUrl, setImageUrl] = useState(meal.data.imageUrl); const [comments, setComments] = useState([]); - const [isEditing, setIsEditing] = useState(false); const [commentModelOpen, setCommentModelOpen] = useState(false); + const [deleteConfirmationOpen, setDeleteConfirmationOpen] = useState(false); + + useEffect(() => { + // Update local state when meal prop changes + setId(meal.data.id); + setCaption(meal.data.caption); + setImageUrl(meal.data.imageUrl); + }, [meal]); const handleLikeClick = () => { setLikes((prevLikes) => prevLikes + 1); @@ -51,8 +70,27 @@ const MealPost = ({ meal, onAddComment }) => { }; const handleDeletePost = () => { - // Placeholder logic for deleting post - console.log("Delete Post", id); + // Open the delete confirmation dialog + setDeleteConfirmationOpen(true); + }; + + const handleConfirmDelete = () => { + // Dispatch the deletePost action with the postId + dispatch(deletePost(id)) + .catch((error) => { + // Handle delete post failure + dispatch(deletePostFailure(error)); + }) + .finally(() => { + // Close the delete confirmation dialog + setDeleteConfirmationOpen(false); + }); + // You can also perform other necessary operations here + }; + + const handleCloseDeleteConfirmation = () => { + // Close the delete confirmation dialog without deleting the post + setDeleteConfirmationOpen(false); }; return ( @@ -120,6 +158,22 @@ const MealPost = ({ meal, onAddComment }) => { onClose={() => setCommentModelOpen(false)} /> )} + {/* Delete Confirmation Dialog */} + + Confirm Delete + + Are you sure you want to delete this post? + + + + + +

-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