From c352a53cd087c122e6073248a7acb54013ed0bf5 Mon Sep 17 00:00:00 2001 From: joshikannan Date: Thu, 14 May 2026 17:35:21 +0530 Subject: [PATCH] code handover --- .eslintrc | 89 + .gitignore | 110 + .prettierrc | 8 + .vscode/settings.json | 7 + README.md | 1 + config-overrides.js | 41 + jsconfig.json | 9 + package-lock.json | 22888 ++++++++++++++++ package.json | 127 + public/favicon.png | Bin 0 -> 4054 bytes public/firebase-messaging-sw.js | 67 + public/index.html | 66 + src/App.js | 64 + src/assets/images/aiImage.png | Bin 0 -> 776890 bytes src/assets/images/auth/AuthBackground.js | 42 + src/assets/images/icons/facebook.svg | 3 + src/assets/images/icons/google.svg | 6 + src/assets/images/icons/twitter.svg | 3 + .../images/landing/codedthemes-logo.svg | 22 + src/assets/images/landing/img-footer.png | Bin 0 -> 90118 bytes src/assets/images/landing/img-soc1.svg | 3 + src/assets/images/landing/img-soc2.svg | 3 + src/assets/images/landing/img-soc3.svg | 10 + src/assets/images/logo-nearle.png | Bin 0 -> 1096 bytes src/assets/images/logo-nearle1.png | Bin 0 -> 4172 bytes src/assets/images/logo-nearle3.png | Bin 0 -> 3349 bytes src/assets/images/logo-nearle4.png | Bin 0 -> 1557 bytes src/assets/images/logo-nearle5.png | Bin 0 -> 1232 bytes src/assets/images/logo-nearle6.png | Bin 0 -> 1338 bytes src/assets/images/logo-nearle7.png | Bin 0 -> 1471 bytes src/assets/images/logo-nearle8.png | Bin 0 -> 1557 bytes src/assets/images/logo-nearle9.png | Bin 0 -> 1953 bytes src/assets/images/logo-sm.png | Bin 0 -> 4054 bytes src/assets/images/logo-sm1.png | Bin 0 -> 2177 bytes src/assets/images/logo.png | Bin 0 -> 4624 bytes src/assets/images/maintenance/Error404.png | Bin 0 -> 100147 bytes src/assets/images/maintenance/Error500.png | Bin 0 -> 45466 bytes src/assets/images/maintenance/TwoCone.png | Bin 0 -> 22010 bytes .../images/maintenance/coming-soon-1.png | Bin 0 -> 207188 bytes src/assets/images/maintenance/coming-soon.png | Bin 0 -> 112259 bytes .../maintenance/under-construction-2.svg | 333 + .../images/maintenance/under-construction.svg | 353 + src/assets/images/mega-menu/back.svg | 57 + src/assets/images/mega-menu/chart.svg | 9 + src/assets/images/nearle_launcher_icon.png | Bin 0 -> 4833 bytes src/assets/images/riderlocationimg.png | Bin 0 -> 39494 bytes src/assets/images/users/avatar-1.png | Bin 0 -> 5019 bytes src/assets/images/users/avatar-10.png | Bin 0 -> 4527 bytes src/assets/images/users/avatar-2.png | Bin 0 -> 4594 bytes src/assets/images/users/avatar-3.png | Bin 0 -> 4002 bytes src/assets/images/users/avatar-4.png | Bin 0 -> 3871 bytes src/assets/images/users/avatar-5.png | Bin 0 -> 4511 bytes src/assets/images/users/avatar-6.png | Bin 0 -> 4784 bytes src/assets/images/users/avatar-7.png | Bin 0 -> 4318 bytes src/assets/images/users/avatar-8.png | Bin 0 -> 4663 bytes src/assets/images/users/avatar-9.png | Bin 0 -> 4597 bytes src/assets/images/users/avatar-group.png | Bin 0 -> 9538 bytes src/assets/images/users/avatar-s1.png | Bin 0 -> 24609 bytes src/assets/images/users/avatar-s2.png | Bin 0 -> 26838 bytes src/assets/images/users/avatar-thumb-1.png | Bin 0 -> 12407 bytes src/assets/images/users/default.png | Bin 0 -> 14407 bytes src/assets/images/users/vector-1.png | Bin 0 -> 4557 bytes src/assets/images/users/vector-2.png | Bin 0 -> 4950 bytes src/assets/images/users/vector-3.png | Bin 0 -> 4524 bytes src/assets/images/users/vector-4.png | Bin 0 -> 4669 bytes src/assets/third-party/apex-chart.css | 13 + src/assets/third-party/react-table.css | 13 + src/components/@extended/AnimateButton.js | 88 + src/components/@extended/Avatar.js | 119 + src/components/@extended/Breadcrumbs.js | 222 + src/components/@extended/Dot.js | 39 + src/components/@extended/IconButton.js | 162 + src/components/@extended/LoadingButton.js | 231 + src/components/@extended/Snackbar.js | 128 + src/components/@extended/Tooltip.js | 67 + src/components/@extended/Transitions.js | 116 + .../@extended/progress/CircularWithLabel.js | 32 + .../@extended/progress/CircularWithPath.js | 65 + .../@extended/progress/LinearWithIcon.js | 22 + .../@extended/progress/LinearWithLabel.js | 23 + src/components/CircularLoader.js | 47 + src/components/DateFilterDialog.js | 66 + src/components/Loadable.js | 15 + src/components/Loader.js | 25 + src/components/Locales.js | 43 + src/components/MainCard.js | 141 + src/components/RTLLayout.js | 37 + src/components/ScrollTop.js | 24 + src/components/ScrollX.js | 10 + src/components/SecondaryAction.js | 65 + src/components/cards/AuthFooter.js | 61 + src/components/cards/ComponentHeader.js | 49 + .../cards/e-commerce/FloatingCart.js | 52 + .../cards/e-commerce/ProductCard.js | 176 + .../cards/e-commerce/ProductReview.js | 52 + .../cards/skeleton/ProductPlaceholder.js | 44 + .../cards/statistics/AnalyticEcommerce.js | 66 + .../cards/statistics/AnalyticsDataCard.js | 56 + .../cards/statistics/HoverSocialCard.js | 70 + src/components/logo/LogoIcon.js | 56 + src/components/logo/LogoMain.js | 68 + src/components/logo/index.js | 27 + .../nearle_components/DebounceSearchBar.js | 66 + .../nearle_components/GlobalToast.js | 30 + .../nearle_components/LoaderWithImage.js | 34 + .../nearle_components/LocationAutocomplete.js | 30 + src/components/nearle_components/SearchBar.js | 77 + .../nearle_components/TableLoader.js | 18 + src/components/nearle_components/TitleCard.js | 22 + src/components/third-party/Notistack.js | 65 + src/components/third-party/OpenToast.js | 9 + src/components/third-party/ReactTable.js | 595 + src/components/third-party/SimpleBar.js | 62 + src/components/updateNetworkStatus.js | 96 + src/config.js | 106 + src/contexts/ConfigContext.js | 107 + src/contexts/JWTContext.js | 147 + src/firebase_notification/firebase.js | 28 + src/firebase_notification/notification.js | 88 + src/hooks/useAuth.js | 16 + src/hooks/useConfig.js | 8 + src/hooks/useLocalStorage.js | 33 + src/hooks/usePagination.js | 29 + src/hooks/useScriptRef.js | 18 + src/index.js | 60 + src/layout/CommonLayout/FooterBlock.js | 321 + src/layout/CommonLayout/Header.js | 251 + src/layout/CommonLayout/index.js | 74 + .../Drawer/DrawerContent/NavCard.js | 32 + .../DrawerContent/Navigation/NavCollapse.js | 503 + .../DrawerContent/Navigation/NavGroup.js | 344 + .../DrawerContent/Navigation/NavItem.js | 285 + .../Drawer/DrawerContent/Navigation/index.js | 111 + .../DrawerContent/Navigation/navitemdemo.js | 99 + .../MainLayout/Drawer/DrawerContent/index.js | 37 + .../Drawer/DrawerHeader/DrawerHeaderStyled.js | 22 + .../MainLayout/Drawer/DrawerHeader/index.js | 59 + src/layout/MainLayout/Drawer/HorizontalBar.js | 62 + .../MainLayout/Drawer/MiniDrawerStyled.js | 51 + src/layout/MainLayout/Drawer/index.js | 74 + src/layout/MainLayout/Footer.js | 23 + src/layout/MainLayout/Header/AppBarStyled.js | 35 + .../Header/HeaderContent/MegaMenuSection.js | 301 + .../Header/HeaderContent/Message.js | 252 + .../Header/HeaderContent/MobileSection.js | 108 + .../Header/HeaderContent/Notification.js | 309 + .../HeaderContent/Profile/ProfileTab.js | 76 + .../HeaderContent/Profile/SettingTab.js | 53 + .../Header/HeaderContent/Profile/index.js | 240 + .../MainLayout/Header/HeaderContent/Search.js | 30 + .../MainLayout/Header/HeaderContent/index.js | 309 + src/layout/MainLayout/Header/index.js | 89 + src/layout/MainLayout/index.js | 67 + src/menu-items/dashboard.js | 57 + src/menu-items/index.js | 14 + src/menu-items/nearle.js | 154 + src/menu-items/other.js | 178 + src/pages/api/api.js | 607 + src/pages/auth/check-mail.js | 57 + src/pages/auth/code-verification.js | 29 + src/pages/auth/forgot-password.js | 41 + src/pages/auth/login.js | 41 + src/pages/auth/register.js | 41 + src/pages/auth/reset-password.js | 26 + src/pages/ctrlK.js | 24 + src/pages/demoPage.js | 0 src/pages/extra-pages/sample-page.js | 20 + src/pages/firebase/firebase.js | 20 + src/pages/maintenance/404.js | 56 + src/pages/maintenance/500.js | 45 + src/pages/maintenance/coming-soon.js | 94 + src/pages/maintenance/under-construction.js | 39 + src/pages/nearle/accountsettings.js | 43 + .../nearle/clientPricing/clientPricing.js | 132 + src/pages/nearle/clients/Tenants.js | 1740 ++ src/pages/nearle/clients/createCustomer.js | 553 + src/pages/nearle/clients/createclient.js | 628 + src/pages/nearle/customers/customers.js | 693 + src/pages/nearle/dashboard.js | 9 + src/pages/nearle/deliveries/deliveries.js | 1711 ++ src/pages/nearle/invoice/invoice.js | 419 + src/pages/nearle/invoice/invoicePreview.js | 472 + src/pages/nearle/login.js | 396 + src/pages/nearle/login1.js | 513 + src/pages/nearle/orders/OrdersPreview.js | 623 + .../nearle/orders/OrdersTableSkeleton.js | 49 + src/pages/nearle/orders/createorder1.js | 2108 ++ src/pages/nearle/orders/details.js | 2088 ++ src/pages/nearle/orders/multipleOrders.js | 1728 ++ .../nearle/orders/multipleorders_copy.js | 1322 + src/pages/nearle/orders/newcreateOrder.js | 2190 ++ .../nearle/orders/optimisedOrderPreview.js | 610 + src/pages/nearle/orders/orders.js | 2566 ++ .../nearle/reports/MapWithRouteGoogle.js | 91 + src/pages/nearle/reports/RiderLocationMap.js | 76 + src/pages/nearle/reports/RidersRoutes.js | 69 + src/pages/nearle/reports/mapWithRoute.js | 173 + src/pages/nearle/reports/ordersDetails.js | 1307 + src/pages/nearle/reports/ordersSummary.js | 959 + src/pages/nearle/reports/ridersLogs.js | 299 + src/pages/nearle/reports/ridersSummary.js | 458 + src/pages/nearle/requests/requests.js | 2126 ++ src/pages/nearle/riders/createrider.js | 509 + src/pages/nearle/riders/editRider.js | 1205 + src/pages/nearle/riders/riders.js | 510 + src/pages/nearle/viewProfile.js | 176 + src/pages/titleCard.js | 31 + src/react-app-env.d.js | 1 + src/reportWebVitals.js | 13 + src/routes/LoginRoutes.js | 72 + src/routes/MainRoutes.js | 212 + src/routes/index.js | 11 + src/sections/apps/chat/ChatDrawer.js | 275 + src/sections/apps/chat/ChatHistory.js | 119 + src/sections/apps/chat/UserAvatar.js | 33 + src/sections/apps/chat/UserDetails.js | 303 + src/sections/auth/AuthCard.js | 39 + src/sections/auth/AuthWrapper.js | 55 + .../auth/auth-forms/AuthCodeVerification.js | 66 + .../auth/auth-forms/AuthForgotPassword.js | 126 + src/sections/auth/auth-forms/AuthLogin.js | 176 + src/sections/auth/auth-forms/AuthRegister.js | 282 + .../auth/auth-forms/AuthResetPassword.js | 201 + .../auth/auth-forms/FirebaseSocial.js | 82 + src/sections/widget/data/ApplicationSales.js | 68 + src/sections/widget/data/TasksCard.js | 175 + src/store/index.js | 19 + src/store/reducers/actions.js | 4 + src/store/reducers/auth.js | 48 + src/store/reducers/fcmSlice.js | 24 + src/store/reducers/index.js | 21 + src/store/reducers/loginUserSlice.js | 31 + src/store/reducers/menu.js | 67 + src/store/reducers/snackbar.js | 67 + src/store/reducers/toastSlice.js | 19 + src/themes/index.js | 122 + src/themes/overrides/Accordion.js | 27 + src/themes/overrides/AccordionDetails.js | 14 + src/themes/overrides/AccordionSummary.js | 33 + src/themes/overrides/Alert.js | 75 + src/themes/overrides/AlertTitle.js | 15 + src/themes/overrides/Autocomplete.js | 23 + src/themes/overrides/Badge.js | 41 + src/themes/overrides/Button.js | 202 + src/themes/overrides/ButtonBase.js | 11 + src/themes/overrides/ButtonGroup.js | 11 + src/themes/overrides/CardContent.js | 16 + src/themes/overrides/Checkbox.js | 126 + src/themes/overrides/Chip.js | 80 + src/themes/overrides/Dialog.js | 18 + src/themes/overrides/DialogContentText.js | 14 + src/themes/overrides/DialogTitle.js | 14 + src/themes/overrides/Fab.js | 82 + src/themes/overrides/IconButton.js | 28 + src/themes/overrides/InputBase.js | 13 + src/themes/overrides/InputLabel.js | 25 + src/themes/overrides/LinearProgress.js | 17 + src/themes/overrides/Link.js | 11 + src/themes/overrides/ListItemButton.js | 18 + src/themes/overrides/ListItemIcon.js | 14 + src/themes/overrides/LoadingButton.js | 17 + src/themes/overrides/OutlinedInput.js | 59 + src/themes/overrides/Pagination.js | 11 + src/themes/overrides/PaginationItem.js | 118 + src/themes/overrides/Popover.js | 13 + src/themes/overrides/Radio.js | 119 + src/themes/overrides/Slider.js | 69 + src/themes/overrides/Switch.js | 88 + src/themes/overrides/Tab.js | 24 + src/themes/overrides/TableBody.js | 27 + src/themes/overrides/TableCell.js | 44 + src/themes/overrides/TableFooter.js | 15 + src/themes/overrides/TableHead.js | 15 + src/themes/overrides/TablePagination.js | 16 + src/themes/overrides/TableRow.js | 25 + src/themes/overrides/Tabs.js | 13 + src/themes/overrides/ToggleButton.js | 20 + src/themes/overrides/Tooltip.js | 13 + src/themes/overrides/TreeItem.js | 18 + src/themes/overrides/Typography.js | 13 + src/themes/overrides/index.js | 99 + src/themes/palette.js | 67 + src/themes/shadows.js | 33 + src/themes/theme/default.js | 124 + src/themes/theme/index.js | 45 + src/themes/theme/theme1.js | 109 + src/themes/theme/theme2.js | 109 + src/themes/theme/theme3.js | 109 + src/themes/theme/theme4.js | 109 + src/themes/theme/theme5.js | 109 + src/themes/theme/theme6.js | 109 + src/themes/theme/theme7.js | 109 + src/themes/theme/theme8.js | 109 + src/themes/typography.js | 71 + src/utils/axios.js | 17 + src/utils/getColors.js | 20 + src/utils/getShadow.js | 39 + src/utils/locales/en.json | 20 + src/utils/password-strength.js | 33 + src/utils/password-validation.js | 21 + src/utils/route-guard/AuthGuard.js | 34 + src/utils/route-guard/GuestGuard.js | 34 + yarn.lock | 12790 +++++++++ 303 files changed, 81712 insertions(+) create mode 100644 .eslintrc create mode 100644 .gitignore create mode 100644 .prettierrc create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 config-overrides.js create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.png create mode 100644 public/firebase-messaging-sw.js create mode 100644 public/index.html create mode 100644 src/App.js create mode 100644 src/assets/images/aiImage.png create mode 100644 src/assets/images/auth/AuthBackground.js create mode 100644 src/assets/images/icons/facebook.svg create mode 100644 src/assets/images/icons/google.svg create mode 100644 src/assets/images/icons/twitter.svg create mode 100644 src/assets/images/landing/codedthemes-logo.svg create mode 100644 src/assets/images/landing/img-footer.png create mode 100644 src/assets/images/landing/img-soc1.svg create mode 100644 src/assets/images/landing/img-soc2.svg create mode 100644 src/assets/images/landing/img-soc3.svg create mode 100644 src/assets/images/logo-nearle.png create mode 100644 src/assets/images/logo-nearle1.png create mode 100644 src/assets/images/logo-nearle3.png create mode 100644 src/assets/images/logo-nearle4.png create mode 100644 src/assets/images/logo-nearle5.png create mode 100644 src/assets/images/logo-nearle6.png create mode 100644 src/assets/images/logo-nearle7.png create mode 100644 src/assets/images/logo-nearle8.png create mode 100644 src/assets/images/logo-nearle9.png create mode 100644 src/assets/images/logo-sm.png create mode 100644 src/assets/images/logo-sm1.png create mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/maintenance/Error404.png create mode 100644 src/assets/images/maintenance/Error500.png create mode 100644 src/assets/images/maintenance/TwoCone.png create mode 100644 src/assets/images/maintenance/coming-soon-1.png create mode 100644 src/assets/images/maintenance/coming-soon.png create mode 100644 src/assets/images/maintenance/under-construction-2.svg create mode 100644 src/assets/images/maintenance/under-construction.svg create mode 100644 src/assets/images/mega-menu/back.svg create mode 100644 src/assets/images/mega-menu/chart.svg create mode 100644 src/assets/images/nearle_launcher_icon.png create mode 100644 src/assets/images/riderlocationimg.png create mode 100644 src/assets/images/users/avatar-1.png create mode 100644 src/assets/images/users/avatar-10.png create mode 100644 src/assets/images/users/avatar-2.png create mode 100644 src/assets/images/users/avatar-3.png create mode 100644 src/assets/images/users/avatar-4.png create mode 100644 src/assets/images/users/avatar-5.png create mode 100644 src/assets/images/users/avatar-6.png create mode 100644 src/assets/images/users/avatar-7.png create mode 100644 src/assets/images/users/avatar-8.png create mode 100644 src/assets/images/users/avatar-9.png create mode 100644 src/assets/images/users/avatar-group.png create mode 100644 src/assets/images/users/avatar-s1.png create mode 100644 src/assets/images/users/avatar-s2.png create mode 100644 src/assets/images/users/avatar-thumb-1.png create mode 100644 src/assets/images/users/default.png create mode 100644 src/assets/images/users/vector-1.png create mode 100644 src/assets/images/users/vector-2.png create mode 100644 src/assets/images/users/vector-3.png create mode 100644 src/assets/images/users/vector-4.png create mode 100644 src/assets/third-party/apex-chart.css create mode 100644 src/assets/third-party/react-table.css create mode 100644 src/components/@extended/AnimateButton.js create mode 100644 src/components/@extended/Avatar.js create mode 100644 src/components/@extended/Breadcrumbs.js create mode 100644 src/components/@extended/Dot.js create mode 100644 src/components/@extended/IconButton.js create mode 100644 src/components/@extended/LoadingButton.js create mode 100644 src/components/@extended/Snackbar.js create mode 100644 src/components/@extended/Tooltip.js create mode 100644 src/components/@extended/Transitions.js create mode 100644 src/components/@extended/progress/CircularWithLabel.js create mode 100644 src/components/@extended/progress/CircularWithPath.js create mode 100644 src/components/@extended/progress/LinearWithIcon.js create mode 100644 src/components/@extended/progress/LinearWithLabel.js create mode 100644 src/components/CircularLoader.js create mode 100644 src/components/DateFilterDialog.js create mode 100644 src/components/Loadable.js create mode 100644 src/components/Loader.js create mode 100644 src/components/Locales.js create mode 100644 src/components/MainCard.js create mode 100644 src/components/RTLLayout.js create mode 100644 src/components/ScrollTop.js create mode 100644 src/components/ScrollX.js create mode 100644 src/components/SecondaryAction.js create mode 100644 src/components/cards/AuthFooter.js create mode 100644 src/components/cards/ComponentHeader.js create mode 100644 src/components/cards/e-commerce/FloatingCart.js create mode 100644 src/components/cards/e-commerce/ProductCard.js create mode 100644 src/components/cards/e-commerce/ProductReview.js create mode 100644 src/components/cards/skeleton/ProductPlaceholder.js create mode 100644 src/components/cards/statistics/AnalyticEcommerce.js create mode 100644 src/components/cards/statistics/AnalyticsDataCard.js create mode 100644 src/components/cards/statistics/HoverSocialCard.js create mode 100644 src/components/logo/LogoIcon.js create mode 100644 src/components/logo/LogoMain.js create mode 100644 src/components/logo/index.js create mode 100644 src/components/nearle_components/DebounceSearchBar.js create mode 100644 src/components/nearle_components/GlobalToast.js create mode 100644 src/components/nearle_components/LoaderWithImage.js create mode 100644 src/components/nearle_components/LocationAutocomplete.js create mode 100644 src/components/nearle_components/SearchBar.js create mode 100644 src/components/nearle_components/TableLoader.js create mode 100644 src/components/nearle_components/TitleCard.js create mode 100644 src/components/third-party/Notistack.js create mode 100644 src/components/third-party/OpenToast.js create mode 100644 src/components/third-party/ReactTable.js create mode 100644 src/components/third-party/SimpleBar.js create mode 100644 src/components/updateNetworkStatus.js create mode 100644 src/config.js create mode 100644 src/contexts/ConfigContext.js create mode 100644 src/contexts/JWTContext.js create mode 100644 src/firebase_notification/firebase.js create mode 100644 src/firebase_notification/notification.js create mode 100644 src/hooks/useAuth.js create mode 100644 src/hooks/useConfig.js create mode 100644 src/hooks/useLocalStorage.js create mode 100644 src/hooks/usePagination.js create mode 100644 src/hooks/useScriptRef.js create mode 100644 src/index.js create mode 100644 src/layout/CommonLayout/FooterBlock.js create mode 100644 src/layout/CommonLayout/Header.js create mode 100644 src/layout/CommonLayout/index.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/NavCard.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/Navigation/navitemdemo.js create mode 100644 src/layout/MainLayout/Drawer/DrawerContent/index.js create mode 100644 src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js create mode 100644 src/layout/MainLayout/Drawer/DrawerHeader/index.js create mode 100644 src/layout/MainLayout/Drawer/HorizontalBar.js create mode 100644 src/layout/MainLayout/Drawer/MiniDrawerStyled.js create mode 100644 src/layout/MainLayout/Drawer/index.js create mode 100644 src/layout/MainLayout/Footer.js create mode 100644 src/layout/MainLayout/Header/AppBarStyled.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Message.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/MobileSection.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Notification.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Profile/index.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/Search.js create mode 100644 src/layout/MainLayout/Header/HeaderContent/index.js create mode 100644 src/layout/MainLayout/Header/index.js create mode 100644 src/layout/MainLayout/index.js create mode 100644 src/menu-items/dashboard.js create mode 100644 src/menu-items/index.js create mode 100644 src/menu-items/nearle.js create mode 100644 src/menu-items/other.js create mode 100644 src/pages/api/api.js create mode 100644 src/pages/auth/check-mail.js create mode 100644 src/pages/auth/code-verification.js create mode 100644 src/pages/auth/forgot-password.js create mode 100644 src/pages/auth/login.js create mode 100644 src/pages/auth/register.js create mode 100644 src/pages/auth/reset-password.js create mode 100644 src/pages/ctrlK.js create mode 100644 src/pages/demoPage.js create mode 100644 src/pages/extra-pages/sample-page.js create mode 100644 src/pages/firebase/firebase.js create mode 100644 src/pages/maintenance/404.js create mode 100644 src/pages/maintenance/500.js create mode 100644 src/pages/maintenance/coming-soon.js create mode 100644 src/pages/maintenance/under-construction.js create mode 100644 src/pages/nearle/accountsettings.js create mode 100644 src/pages/nearle/clientPricing/clientPricing.js create mode 100644 src/pages/nearle/clients/Tenants.js create mode 100644 src/pages/nearle/clients/createCustomer.js create mode 100644 src/pages/nearle/clients/createclient.js create mode 100644 src/pages/nearle/customers/customers.js create mode 100644 src/pages/nearle/dashboard.js create mode 100644 src/pages/nearle/deliveries/deliveries.js create mode 100644 src/pages/nearle/invoice/invoice.js create mode 100644 src/pages/nearle/invoice/invoicePreview.js create mode 100644 src/pages/nearle/login.js create mode 100644 src/pages/nearle/login1.js create mode 100644 src/pages/nearle/orders/OrdersPreview.js create mode 100644 src/pages/nearle/orders/OrdersTableSkeleton.js create mode 100644 src/pages/nearle/orders/createorder1.js create mode 100644 src/pages/nearle/orders/details.js create mode 100644 src/pages/nearle/orders/multipleOrders.js create mode 100644 src/pages/nearle/orders/multipleorders_copy.js create mode 100644 src/pages/nearle/orders/newcreateOrder.js create mode 100644 src/pages/nearle/orders/optimisedOrderPreview.js create mode 100644 src/pages/nearle/orders/orders.js create mode 100644 src/pages/nearle/reports/MapWithRouteGoogle.js create mode 100644 src/pages/nearle/reports/RiderLocationMap.js create mode 100644 src/pages/nearle/reports/RidersRoutes.js create mode 100644 src/pages/nearle/reports/mapWithRoute.js create mode 100644 src/pages/nearle/reports/ordersDetails.js create mode 100644 src/pages/nearle/reports/ordersSummary.js create mode 100644 src/pages/nearle/reports/ridersLogs.js create mode 100644 src/pages/nearle/reports/ridersSummary.js create mode 100644 src/pages/nearle/requests/requests.js create mode 100644 src/pages/nearle/riders/createrider.js create mode 100644 src/pages/nearle/riders/editRider.js create mode 100644 src/pages/nearle/riders/riders.js create mode 100644 src/pages/nearle/viewProfile.js create mode 100644 src/pages/titleCard.js create mode 100644 src/react-app-env.d.js create mode 100644 src/reportWebVitals.js create mode 100644 src/routes/LoginRoutes.js create mode 100644 src/routes/MainRoutes.js create mode 100644 src/routes/index.js create mode 100644 src/sections/apps/chat/ChatDrawer.js create mode 100644 src/sections/apps/chat/ChatHistory.js create mode 100644 src/sections/apps/chat/UserAvatar.js create mode 100644 src/sections/apps/chat/UserDetails.js create mode 100644 src/sections/auth/AuthCard.js create mode 100644 src/sections/auth/AuthWrapper.js create mode 100644 src/sections/auth/auth-forms/AuthCodeVerification.js create mode 100644 src/sections/auth/auth-forms/AuthForgotPassword.js create mode 100644 src/sections/auth/auth-forms/AuthLogin.js create mode 100644 src/sections/auth/auth-forms/AuthRegister.js create mode 100644 src/sections/auth/auth-forms/AuthResetPassword.js create mode 100644 src/sections/auth/auth-forms/FirebaseSocial.js create mode 100644 src/sections/widget/data/ApplicationSales.js create mode 100644 src/sections/widget/data/TasksCard.js create mode 100644 src/store/index.js create mode 100644 src/store/reducers/actions.js create mode 100644 src/store/reducers/auth.js create mode 100644 src/store/reducers/fcmSlice.js create mode 100644 src/store/reducers/index.js create mode 100644 src/store/reducers/loginUserSlice.js create mode 100644 src/store/reducers/menu.js create mode 100644 src/store/reducers/snackbar.js create mode 100644 src/store/reducers/toastSlice.js create mode 100644 src/themes/index.js create mode 100644 src/themes/overrides/Accordion.js create mode 100644 src/themes/overrides/AccordionDetails.js create mode 100644 src/themes/overrides/AccordionSummary.js create mode 100644 src/themes/overrides/Alert.js create mode 100644 src/themes/overrides/AlertTitle.js create mode 100644 src/themes/overrides/Autocomplete.js create mode 100644 src/themes/overrides/Badge.js create mode 100644 src/themes/overrides/Button.js create mode 100644 src/themes/overrides/ButtonBase.js create mode 100644 src/themes/overrides/ButtonGroup.js create mode 100644 src/themes/overrides/CardContent.js create mode 100644 src/themes/overrides/Checkbox.js create mode 100644 src/themes/overrides/Chip.js create mode 100644 src/themes/overrides/Dialog.js create mode 100644 src/themes/overrides/DialogContentText.js create mode 100644 src/themes/overrides/DialogTitle.js create mode 100644 src/themes/overrides/Fab.js create mode 100644 src/themes/overrides/IconButton.js create mode 100644 src/themes/overrides/InputBase.js create mode 100644 src/themes/overrides/InputLabel.js create mode 100644 src/themes/overrides/LinearProgress.js create mode 100644 src/themes/overrides/Link.js create mode 100644 src/themes/overrides/ListItemButton.js create mode 100644 src/themes/overrides/ListItemIcon.js create mode 100644 src/themes/overrides/LoadingButton.js create mode 100644 src/themes/overrides/OutlinedInput.js create mode 100644 src/themes/overrides/Pagination.js create mode 100644 src/themes/overrides/PaginationItem.js create mode 100644 src/themes/overrides/Popover.js create mode 100644 src/themes/overrides/Radio.js create mode 100644 src/themes/overrides/Slider.js create mode 100644 src/themes/overrides/Switch.js create mode 100644 src/themes/overrides/Tab.js create mode 100644 src/themes/overrides/TableBody.js create mode 100644 src/themes/overrides/TableCell.js create mode 100644 src/themes/overrides/TableFooter.js create mode 100644 src/themes/overrides/TableHead.js create mode 100644 src/themes/overrides/TablePagination.js create mode 100644 src/themes/overrides/TableRow.js create mode 100644 src/themes/overrides/Tabs.js create mode 100644 src/themes/overrides/ToggleButton.js create mode 100644 src/themes/overrides/Tooltip.js create mode 100644 src/themes/overrides/TreeItem.js create mode 100644 src/themes/overrides/Typography.js create mode 100644 src/themes/overrides/index.js create mode 100644 src/themes/palette.js create mode 100644 src/themes/shadows.js create mode 100644 src/themes/theme/default.js create mode 100644 src/themes/theme/index.js create mode 100644 src/themes/theme/theme1.js create mode 100644 src/themes/theme/theme2.js create mode 100644 src/themes/theme/theme3.js create mode 100644 src/themes/theme/theme4.js create mode 100644 src/themes/theme/theme5.js create mode 100644 src/themes/theme/theme6.js create mode 100644 src/themes/theme/theme7.js create mode 100644 src/themes/theme/theme8.js create mode 100644 src/themes/typography.js create mode 100644 src/utils/axios.js create mode 100644 src/utils/getColors.js create mode 100644 src/utils/getShadow.js create mode 100644 src/utils/locales/en.json create mode 100644 src/utils/password-strength.js create mode 100644 src/utils/password-validation.js create mode 100644 src/utils/route-guard/AuthGuard.js create mode 100644 src/utils/route-guard/GuestGuard.js create mode 100644 yarn.lock diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..bbda79f --- /dev/null +++ b/.eslintrc @@ -0,0 +1,89 @@ +{ + "root": true, + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "prettier", + "plugin:react/jsx-runtime", + "plugin:jsx-a11y/recommended", + "plugin:react-hooks/recommended", + "eslint:recommended", + "plugin:react/recommended" + ], + "settings": { + "react": { + "createClass": "createReactClass", // Regex for Component Factory to use, + // default to "createReactClass" + "pragma": "React", // Pragma to use, default to "React" + "fragment": "Fragment", // Fragment to use (may be a property of ), default to "Fragment" + "version": "detect", // React version. "detect" automatically picks the version you have installed. + // You can also use `16.0`, `16.3`, etc, if you want to override the detected value. + // It will default to "latest" and warn if missing, and to "detect" in the future + "flowVersion": "0.53" // Flow version + }, + "import/resolver": { + "node": { + "moduleDirectory": ["node_modules", "src/"] + } + } + }, + "parser": "@babel/eslint-parser", + "parserOptions": { + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "impliedStrict": true, + "jsx": true + }, + "ecmaVersion": 12 + }, + "plugins": ["prettier", "react", "react-hooks"], + "rules": { + "react/jsx-uses-react": "error", + "react/jsx-uses-vars": "error", + "react/react-in-jsx-scope": "off", + "no-undef": "off", + "react/display-name": "off", + "react/jsx-filename-extension": "off", + "no-param-reassign": "off", + "react/prop-types": 1, + "react/require-default-props": "off", + "react/no-array-index-key": "off", + "react/jsx-props-no-spreading": "off", + "react/forbid-prop-types": "off", + "import/order": "off", + "import/no-cycle": "off", + "no-console": "off", + "jsx-a11y/anchor-is-valid": "off", + "prefer-destructuring": "off", + "no-shadow": "off", + "import/no-named-as-default": "off", + "import/no-extraneous-dependencies": "off", + "jsx-a11y/no-autofocus": "off", + "no-restricted-imports": [ + "error", + { + "patterns": ["@mui/*/*/*", "!@mui/material/test-utils/*"] + } + ], + "no-unused-vars": [ + "error", + { + "ignoreRestSiblings": false + } + ], + "prettier/prettier": [ + "warn", + { + "bracketSpacing": true, + "printWidth": 140, + "singleQuote": true, + "trailingComma": "none", + "tabWidth": 2, + "useTabs": false, + "endOfLine": "auto" + } + ] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5761643 --- /dev/null +++ b/.gitignore @@ -0,0 +1,110 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release +build + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.development +.env.staging +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and *not* Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# wincompare file +*.bak diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..d5fba07 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "bracketSpacing": true, + "printWidth": 140, + "singleQuote": true, + "trailingComma": "none", + "tabWidth": 2, + "useTabs": false +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..021c518 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "workbench.colorCustomizations": { + "activityBar.background": "#38117A", + "titleBar.activeBackground": "#4E18AB", + "titleBar.activeForeground": "#FDFCFF" + } +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..174ee07 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +// passcode snackbar logic is in notification.js diff --git a/config-overrides.js b/config-overrides.js new file mode 100644 index 0000000..3d669dd --- /dev/null +++ b/config-overrides.js @@ -0,0 +1,41 @@ +const webpack = require('webpack'); +const WorkBoxPlugin = require('workbox-webpack-plugin'); + +module.exports = function override(config) { + config.resolve.fallback = { + process: require.resolve('process/browser'), + // zlib: require.resolve('browserify-zlib'), + stream: require.resolve('stream-browserify'), + crypto: require.resolve('crypto-browserify'), + util: require.resolve('util'), + buffer: require.resolve('buffer') + // asset: require.resolve('assert') + }; + + // https://stackoverflow.com/questions/69135310/workaround-for-cache-size-limit-in-create-react-app-pwa-service-worker + config.plugins.forEach((plugin) => { + if (plugin instanceof WorkBoxPlugin.InjectManifest) { + plugin.config.maximumFileSizeToCacheInBytes = 50 * 1024 * 1024; + } + }); + + config.plugins = [ + ...config.plugins, + new webpack.ProvidePlugin({ + process: 'process/browser.js', + Buffer: ['buffer', 'Buffer'] + }) + ]; + config.watchOptions = { + ignored: /node_modules/, // Ignore node_modules + aggregateTimeout: 300, + poll: 1000 // Enable polling for changes + }; + config.devServer = { + ...config.devServer, + hot: true, // Enable hot reload explicitly + watchFiles: ['src/**/*'] // Make sure Webpack watches all files + }; + + return config; +}; diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..35332c7 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "target": "esnext", + "module": "commonjs", + "baseUrl": "src" + }, + "include": ["src/**/*"], + "exclude": ["node_modules"] +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d74d137 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,22888 @@ +{ + "name": "mantis-material-react", + "version": "2.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mantis-material-react", + "version": "2.1.0", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons": "^5.0.1", + "@emotion/cache": "^11.10.7", + "@emotion/react": "^11.10.6", + "@emotion/styled": "^11.10.6", + "@mui/base": "^5.0.0-alpha.126", + "@mui/icons-material": "^5.14.19", + "@mui/lab": "^5.0.0-alpha.127", + "@mui/material": "^5.12.1", + "@mui/x-date-pickers": "^6.18.2", + "@react-google-maps/api": "^2.20.7", + "@reduxjs/toolkit": "^1.9.5", + "@svgr/webpack": "^7.0.0", + "@tanstack/react-query": "^5.17.9", + "antd": "^5.11.5", + "autosuggest-highlight": "^3.3.4", + "axios": "^1.3.5", + "buffer": "^6.0.3", + "chance": "^1.1.11", + "crypto-browserify": "^3.12.0", + "date-fns": "^2.30.0", + "dayjs": "^1.11.10", + "env-cmd": "^10.1.0", + "firebase": "^10.14.1", + "formik": "^2.2.9", + "framer-motion": "^10.12.4", + "geolib": "^3.3.4", + "jsonwebtoken": "^9.0.0", + "jwt-decode": "^3.1.2", + "leaflet": "^1.9.4", + "lodash": "^4.17.21", + "mui-daterange-picker": "^1.0.5", + "notistack": "^3.0.1", + "papaparse": "^5.4.1", + "process": "^0.11.10", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-csv": "^2.2.2", + "react-device-detect": "^2.2.3", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18.2.0", + "react-geocode": "^0.2.3", + "react-google-autocomplete": "^2.7.3", + "react-icons": "^4.12.0", + "react-intl": "^6.4.1", + "react-leaflet": "^4.2.1", + "react-loading-icons": "^1.1.0", + "react-redux": "^8.0.5", + "react-router": "^6.10.0", + "react-router-dom": "^6.10.0", + "react-scripts": "^5.0.1", + "react-timer-hook": "^3.0.5", + "react-to-print": "^2.15.0", + "react18-input-otp": "^1.1.3", + "redux": "^4.2.1", + "simplebar": "^6.2.5", + "simplebar-react": "^3.2.4", + "stream-browserify": "^3.0.0", + "stylis-plugin-rtl": "^2.1.1", + "use-debounce": "^10.0.5", + "util": "^0.12.5", + "web-vitals": "^3.3.1", + "xlsx": "^0.18.5", + "yup": "^1.1.1" + }, + "devDependencies": { + "@babel/core": "^7.21.4", + "@babel/eslint-parser": "^7.21.3", + "@babel/preset-env": "^7.28.0", + "@babel/preset-react": "^7.27.1", + "eslint": "^8.38.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-react-app": "^7.0.1", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "prettier": "^2.8.7", + "react-app-rewired": "^2.2.1", + "react-error-overlay": "6.0.11" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.0.tgz", + "integrity": "sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6" + } + }, + "node_modules/@ant-design/cssinjs": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz", + "integrity": "sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "@emotion/hash": "^0.8.0", + "@emotion/unitless": "^0.7.5", + "classnames": "^2.3.1", + "csstype": "^3.1.3", + "rc-util": "^5.35.0", + "stylis": "^4.3.4" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/cssinjs-utils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz", + "integrity": "sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg==", + "license": "MIT", + "dependencies": { + "@ant-design/cssinjs": "^1.21.0", + "@babel/runtime": "^7.23.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@ant-design/cssinjs/node_modules/@emotion/hash": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", + "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==", + "license": "MIT" + }, + "node_modules/@ant-design/cssinjs/node_modules/@emotion/unitless": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", + "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==", + "license": "MIT" + }, + "node_modules/@ant-design/fast-color": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", + "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@ant-design/icons": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz", + "integrity": "sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons-svg": "^4.4.0", + "@babel/runtime": "^7.24.8", + "classnames": "^2.2.6", + "rc-util": "^5.31.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", + "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==", + "license": "MIT" + }, + "node_modules/@ant-design/react-slick": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", + "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.4", + "classnames": "^2.2.5", + "json2mq": "^0.2.0", + "resize-observer-polyfill": "^1.5.1", + "throttle-debounce": "^5.0.0" + }, + "peerDependencies": { + "react": ">=16.9.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", + "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz", + "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz", + "integrity": "sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "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/generator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", + "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.0", + "@babel/types": "^7.28.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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.27.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.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.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.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "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.", + "license": "MIT", + "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.17.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz", + "integrity": "sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.9", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/plugin-syntax-decorators": "^7.17.0", + "charcodes": "^0.2.0" + }, + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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.", + "license": "MIT", + "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", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz", + "integrity": "sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.17.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz", + "integrity": "sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.21.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", + "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "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==", + "license": "MIT", + "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.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz", + "integrity": "sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz", + "integrity": "sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz", + "integrity": "sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz", + "integrity": "sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-flow": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz", + "integrity": "sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz", + "integrity": "sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz", + "integrity": "sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", + "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.2", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", + "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz", + "integrity": "sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.0", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.0", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.28.0", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.0", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.0", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-env/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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "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==", + "license": "MIT", + "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.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.4", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz", + "integrity": "sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-typescript": "^7.21.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", + "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz", + "integrity": "sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "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==", + "license": "MIT" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", + "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==", + "license": "CC0-1.0" + }, + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz", + "integrity": "sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "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.1.3" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "license": "MIT" + }, + "node_modules/@emotion/babel-plugin/node_modules/stylis": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==", + "license": "MIT" + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache/node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.0" + } + }, + "node_modules/@emotion/is-prop-valid/node_modules/@emotion/memoize": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==", + "license": "MIT" + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz", + "integrity": "sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/react/node_modules/@emotion/weak-memoize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==", + "license": "MIT" + }, + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.10.6", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz", + "integrity": "sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.6", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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/eslint-utils/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==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@firebase/analytics": { + "version": "0.10.8", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.8.tgz", + "integrity": "sha512-CVnHcS4iRJPqtIDc411+UmFldk0ShSK3OB+D0bKD8Ck5Vro6dbK5+APZpkuWpbfdL359DIQUnAaMLE+zs/PVyA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/installations": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.14.tgz", + "integrity": "sha512-unRVY6SvRqfNFIAA/kwl4vK+lvQAL2HVcgu9zTrUtTyYDmtIt/lOuHJynBMYEgLnKm39YKBDhtqdapP2e++ASw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/analytics": "0.10.8", + "@firebase/analytics-types": "0.8.2", + "@firebase/component": "0.6.9", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/analytics-types": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.2.tgz", + "integrity": "sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app": { + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.13.tgz", + "integrity": "sha512-OZiDAEK/lDB6xy/XzYAyJJkaDqmQ+BCtOEPLqFvxWKUz5JbBmej7IiiRHdtiIOD/twW7O5AxVsfaaGA/V1bNsA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/app-check": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.8.tgz", + "integrity": "sha512-O49RGF1xj7k6BuhxGpHmqOW5hqBIAEbt2q6POW0lIywx7emYtzPDeQI+ryQpC4zbKX646SoVZ711TN1DBLNSOQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.15.tgz", + "integrity": "sha512-zFIvIFFNqDXpOT2huorz9cwf56VT3oJYRFjSFYdSbGYEJYEaXjLJbfC79lx/zjx4Fh+yuN8pry3TtvwaevrGbg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check": "0.8.8", + "@firebase/app-check-types": "0.5.2", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz", + "integrity": "sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-check-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.2.tgz", + "integrity": "sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/app-compat": { + "version": "0.2.43", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.43.tgz", + "integrity": "sha512-HM96ZyIblXjAC7TzE8wIk2QhHlSvksYkQ4Ukh1GmEenzkucSNUmUX4QvoKrqeWsLEQ8hdcojABeCV8ybVyZmeg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app": "0.10.13", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/app-types": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz", + "integrity": "sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-compat": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.14.tgz", + "integrity": "sha512-2eczCSqBl1KUPJacZlFpQayvpilg3dxXLy9cSMTKtQMTQSmondUtPI47P3ikH3bQAXhzKLOE+qVxJ3/IRtu9pw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth": "1.7.9", + "@firebase/auth-types": "0.12.2", + "@firebase/component": "0.6.9", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-compat/node_modules/@firebase/auth": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.9.tgz", + "integrity": "sha512-yLD5095kVgDw965jepMyUrIgDklD6qH/BZNHeKOgvu7pchOKNjVM+zQoOVYJIKWMWOWBq8IRNVU6NXzBbozaJg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz", + "integrity": "sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/auth-types": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.2.tgz", + "integrity": "sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/component": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz", + "integrity": "sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/data-connect": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.1.0.tgz", + "integrity": "sha512-vSe5s8dY13ilhLnfY0eYRmQsdTbH7PUFZtBbqU6JVX/j8Qp9A6G5gG6//ulbX9/1JFOF1IWNOne9c8S/DOCJaQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz", + "integrity": "sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz", + "integrity": "sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/database": "1.0.8", + "@firebase/database-types": "1.0.5", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz", + "integrity": "sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-types": "0.9.2", + "@firebase/util": "1.10.0" + } + }, + "node_modules/@firebase/firestore": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.3.tgz", + "integrity": "sha512-NwVU+JPZ/3bhvNSJMCSzfcBZZg8SUGyzZ2T0EW3/bkUeefCyzMISSt/TTIfEHc8cdyXGlMqfGe3/62u9s74UEg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "@firebase/webchannel-wrapper": "1.0.1", + "@grpc/grpc-js": "~1.9.0", + "@grpc/proto-loader": "^0.7.8", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "engines": { + "node": ">=10.10.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.3.38", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.38.tgz", + "integrity": "sha512-GoS0bIMMkjpLni6StSwRJarpu2+S5m346Na7gr9YZ/BZ/W3/8iHGNr9PxC+f0rNZXqS4fGRn88pICjrZEgbkqQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/firestore": "4.7.3", + "@firebase/firestore-types": "3.0.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/firestore-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.2.tgz", + "integrity": "sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/functions": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.8.tgz", + "integrity": "sha512-Lo2rTPDn96naFIlSZKVd1yvRRqqqwiJk7cf9TZhUerwnPKgBzXy+aHE22ry+6EjCaQusUoNai6mU6p+G8QZT1g==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/auth-interop-types": "0.2.3", + "@firebase/component": "0.6.9", + "@firebase/messaging-interop-types": "0.2.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.14.tgz", + "integrity": "sha512-dZ0PKOKQFnOlMfcim39XzaXonSuPPAVuzpqA4ONTIdyaJK/OnBaIEVs/+BH4faa1a2tLeR+Jy15PKqDRQoNIJw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/functions": "0.11.8", + "@firebase/functions-types": "0.6.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/functions-types": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.2.tgz", + "integrity": "sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/installations": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.9.tgz", + "integrity": "sha512-hlT7AwCiKghOX3XizLxXOsTFiFCQnp/oj86zp1UxwDGmyzsyoxtX+UIZyVyH/oBF5+XtblFG9KZzZQ/h+dpy+Q==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/util": "1.10.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/installations-compat": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.9.tgz", + "integrity": "sha512-2lfdc6kPXR7WaL4FCQSQUhXcPbI7ol3wF+vkgtU25r77OxPf8F/VmswQ7sgIkBBWtymn5ZF20TIKtnOj9rjb6w==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/installations": "0.6.9", + "@firebase/installations-types": "0.5.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/installations-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.2.tgz", + "integrity": "sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz", + "integrity": "sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/messaging": { + "version": "0.12.12", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.12.tgz", + "integrity": "sha512-6q0pbzYBJhZEtUoQx7hnPhZvAbuMNuBXKQXOx2YlWhSrlv9N1m0ZzlNpBbu/ItTzrwNKTibdYzUyaaxdWLg+4w==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/installations": "0.6.9", + "@firebase/messaging-interop-types": "0.2.2", + "@firebase/util": "1.10.0", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/messaging-compat": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.12.tgz", + "integrity": "sha512-pKsiUVZrbmRgdImYqhBNZlkKJbqjlPkVdQRZGRbkTyX4OSGKR0F/oJeCt1a8jEg5UnBp4fdVwSWSp4DuCovvEQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/messaging": "0.12.12", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.2.tgz", + "integrity": "sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/performance": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.9.tgz", + "integrity": "sha512-PnVaak5sqfz5ivhua+HserxTJHtCar/7zM0flCX6NkzBNzJzyzlH4Hs94h2Il0LQB99roBqoE5QT1JqWqcLJHQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/installations": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.9.tgz", + "integrity": "sha512-dNl95IUnpsu3fAfYBZDCVhXNkASE0uo4HYaEPd2/PKscfTvsgqFAOxfAXzBEDOnynDWiaGUnb5M1O00JQ+3FXA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/performance": "0.6.9", + "@firebase/performance-types": "0.2.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/performance-types": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.2.tgz", + "integrity": "sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/remote-config": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.9.tgz", + "integrity": "sha512-EO1NLCWSPMHdDSRGwZ73kxEEcTopAxX1naqLJFNApp4hO8WfKfmEpmjxmP5TrrnypjIf2tUkYaKsfbEA7+AMmA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/installations": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.9.tgz", + "integrity": "sha512-AxzGpWfWFYejH2twxfdOJt5Cfh/ATHONegTd/a0p5flEzsD5JsxXgfkFToop+mypEL3gNwawxrxlZddmDoNxyA==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/remote-config": "0.4.9", + "@firebase/remote-config-types": "0.3.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/remote-config-types": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.2.tgz", + "integrity": "sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA==", + "license": "Apache-2.0" + }, + "node_modules/@firebase/storage": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.2.tgz", + "integrity": "sha512-fxuJnHshbhVwuJ4FuISLu+/76Aby2sh+44ztjF2ppoe0TELIDxPW6/r1KGlWYt//AD0IodDYYA8ZTN89q8YqUw==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.12.tgz", + "integrity": "sha512-hA4VWKyGU5bWOll+uwzzhEMMYGu9PlKQc1w4DWxB3aIErWYzonrZjF0icqNQZbwKNIdh8SHjZlFeB2w6OSsjfg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/storage": "0.13.2", + "@firebase/storage-types": "0.8.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/storage-types": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.2.tgz", + "integrity": "sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g==", + "license": "Apache-2.0", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/util": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz", + "integrity": "sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/vertexai-preview": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@firebase/vertexai-preview/-/vertexai-preview-0.0.4.tgz", + "integrity": "sha512-EBSqyu9eg8frQlVU9/HjKtHN7odqbh9MtAcVz3WwHj4gLCLOoN9F/o+oxlq3CxvFrd3CNTZwu6d2mZtVlEInng==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.2", + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/webchannel-wrapper": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.1.tgz", + "integrity": "sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ==", + "license": "Apache-2.0" + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.4.tgz", + "integrity": "sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "2.2.3", + "@formatjs/intl-localematcher": "0.5.8", + "tslib": "2" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz", + "integrity": "sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA==", + "license": "MIT", + "dependencies": { + "tslib": "2" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.4.tgz", + "integrity": "sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/icu-skeleton-parser": "1.8.8", + "tslib": "2" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.8.tgz", + "integrity": "sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "tslib": "2" + } + }, + "node_modules/@formatjs/intl": { + "version": "2.10.15", + "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.15.tgz", + "integrity": "sha512-i6+xVqT+6KCz7nBfk4ybMXmbKO36tKvbMKtgFz9KV+8idYFyFbfwKooYk8kGjyA5+T5f1kEPQM5IDLXucTAQ9g==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/fast-memoize": "2.2.3", + "@formatjs/icu-messageformat-parser": "2.9.4", + "@formatjs/intl-displaynames": "6.8.5", + "@formatjs/intl-listformat": "7.7.5", + "intl-messageformat": "10.7.7", + "tslib": "2" + }, + "peerDependencies": { + "typescript": "^4.7 || 5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@formatjs/intl-displaynames": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.8.5.tgz", + "integrity": "sha512-85b+GdAKCsleS6cqVxf/Aw/uBd+20EM0wDpgaxzHo3RIR3bxF4xCJqH/Grbzx8CXurTgDDZHPdPdwJC+May41w==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/intl-localematcher": "0.5.8", + "tslib": "2" + } + }, + "node_modules/@formatjs/intl-listformat": { + "version": "7.7.5", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.7.5.tgz", + "integrity": "sha512-Wzes10SMNeYgnxYiKsda4rnHP3Q3II4XT2tZyOgnH5fWuHDtIkceuWlRQNsvrI3uiwP4hLqp2XdQTCsfkhXulg==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/intl-localematcher": "0.5.8", + "tslib": "2" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.8.tgz", + "integrity": "sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg==", + "license": "MIT", + "dependencies": { + "tslib": "2" + } + }, + "node_modules/@googlemaps/js-api-loader": { + "version": "1.16.8", + "resolved": "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz", + "integrity": "sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==", + "license": "Apache-2.0" + }, + "node_modules/@googlemaps/markerclusterer": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz", + "integrity": "sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==", + "license": "Apache-2.0", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "supercluster": "^8.0.1" + } + }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.14", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz", + "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.11.tgz", + "integrity": "sha512-amjhSfJ+xYnTP+hncJMmkchoRtjIdi+uO3FaymGSCr07yu5xfpXFEnhZkTU1mj2lPJB3oVToau7j9YkqB+YNdg==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.4", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "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==", + "license": "Apache-2.0", + "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==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "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==", + "license": "ISC", + "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.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "license": "MIT", + "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/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "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/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "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/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "license": "MIT" + }, + "node_modules/@mui/base": { + "version": "5.0.0-dev.20240529-082515-213b5e33ab", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-dev.20240529-082515-213b5e33ab.tgz", + "integrity": "sha512-3ic6fc6BHstgM+MGqJEVx3zt9g5THxVXm3VVFUfdeplPqAWWgW2QoKfZDLT10s+pi+MAkpgEBP0kgRidf81Rsw==", + "deprecated": "This package has been replaced by @base-ui-components/react", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.6", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14-dev.20240529-082515-213b5e33ab", + "@mui/utils": "^6.0.0-dev.20240529-082515-213b5e33ab", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.1", + "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.16.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.14.tgz", + "integrity": "sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.14.tgz", + "integrity": "sha512-heL4S+EawrP61xMXBm59QH6HODsu0gxtZi5JtnXF2r+rghzyU/3Uftlt1ij8rmJh+cFdKTQug1L9KkZB5JgpMQ==", + "license": "MIT", + "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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab": { + "version": "5.0.0-alpha.175", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.175.tgz", + "integrity": "sha512-AvM0Nvnnj7vHc9+pkkQkoE1i+dEbr6gsMdnSfy7X4w3Ljgcj1yrjZhIt3jGTCLzyKVLa6uve5eLluOcGkvMqUA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40-0", + "@mui/system": "^5.16.12", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.12", + "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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab/node_modules/@mui/base": { + "version": "5.0.0-beta.40-0", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40-0.tgz", + "integrity": "sha512-hG3atoDUxlvEy+0mqdMpWd04wca8HKr2IHjW/fAjlkCHQolSLazhZM46vnHjOf15M4ESu25mV/3PgjczyjVM4w==", + "deprecated": "This package has been replaced by @base-ui-components/react", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.12", + "@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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/lab/node_modules/@mui/utils": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", + "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.14.tgz", + "integrity": "sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.16.14", + "@mui/system": "^5.16.14", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.14", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/@mui/utils": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", + "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.14.tgz", + "integrity": "sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.16.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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming/node_modules/@mui/utils": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", + "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz", + "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.13.5", + "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 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.14.tgz", + "integrity": "sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.16.14", + "@mui/styled-engine": "^5.16.14", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.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 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/system/node_modules/@mui/utils": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", + "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.21", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz", + "integrity": "sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.4.3.tgz", + "integrity": "sha512-jxHRHh3BqVXE9ABxDm+Tc3wlBooYz/4XPa0+4AI+iF38rV1/+btJmSUgG4shDtSWVs/I97aDn5jBCt6SF2Uq2A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@mui/types": "^7.2.21", + "@types/prop-types": "^15.7.14", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-date-pickers": { + "version": "6.20.2", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.20.2.tgz", + "integrity": "sha512-x1jLg8R+WhvkmUETRfX2wC+xJreMii78EXKLl6r3G+ggcAZlPyt0myID1Amf6hvJb9CtR7CgUo8BwR+1Vx9Ggw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@mui/base": "^5.0.0-beta.22", + "@mui/utils": "^5.14.16", + "@types/react-transition-group": "^4.4.8", + "clsx": "^2.0.0", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.8.6", + "@mui/system": "^5.8.0", + "date-fns": "^2.25.0 || ^3.2.0", + "date-fns-jalali": "^2.13.0-0", + "dayjs": "^1.10.7", + "luxon": "^3.0.2", + "moment": "^2.29.4", + "moment-hijri": "^2.1.2", + "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.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 + }, + "date-fns": { + "optional": true + }, + "date-fns-jalali": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + }, + "moment-hijri": { + "optional": true + }, + "moment-jalaali": { + "optional": true + } + } + }, + "node_modules/@mui/x-date-pickers/node_modules/@mui/utils": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz", + "integrity": "sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz", + "integrity": "sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA==", + "license": "MIT", + "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.0", + "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 <4.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/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@rc-component/async-validator": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", + "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.4" + }, + "engines": { + "node": ">=14.x" + } + }, + "node_modules/@rc-component/color-picker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", + "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", + "license": "MIT", + "dependencies": { + "@ant-design/fast-color": "^2.0.6", + "@babel/runtime": "^7.23.6", + "classnames": "^2.2.6", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/context": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", + "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/mini-decimal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", + "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0" + }, + "engines": { + "node": ">=8.x" + } + }, + "node_modules/@rc-component/mutate-observer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", + "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", + "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/qrcode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", + "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/tour": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz", + "integrity": "sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/portal": "^1.0.0-9", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.2", + "rc-util": "^5.24.4" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@rc-component/trigger": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.6.tgz", + "integrity": "sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@rc-component/portal": "^1.1.0", + "classnames": "^2.3.2", + "rc-motion": "^2.0.0", + "rc-resize-observer": "^1.3.1", + "rc-util": "^5.44.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/@react-dnd/asap": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==", + "license": "MIT" + }, + "node_modules/@react-dnd/invariant": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==", + "license": "MIT" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==", + "license": "MIT" + }, + "node_modules/@react-google-maps/api": { + "version": "2.20.7", + "resolved": "https://registry.npmjs.org/@react-google-maps/api/-/api-2.20.7.tgz", + "integrity": "sha512-ys7uri3V6gjhYZUI43srHzSKDC6/jiKTwHNlwXFTvjeaJE3M3OaYBt9FZKvJs8qnOhL6i6nD1BKJoi1KrnkCkg==", + "license": "MIT", + "dependencies": { + "@googlemaps/js-api-loader": "1.16.8", + "@googlemaps/markerclusterer": "2.5.3", + "@react-google-maps/infobox": "2.20.0", + "@react-google-maps/marker-clusterer": "2.20.0", + "@types/google.maps": "3.58.1", + "invariant": "2.2.4" + }, + "peerDependencies": { + "react": "^16.8 || ^17 || ^18 || ^19", + "react-dom": "^16.8 || ^17 || ^18 || ^19" + } + }, + "node_modules/@react-google-maps/infobox": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.20.0.tgz", + "integrity": "sha512-03PJHjohhaVLkX6+NHhlr8CIlvUxWaXhryqDjyaZ8iIqqix/nV8GFdz9O3m5OsjtxtNho09F/15j14yV0nuyLQ==", + "license": "MIT" + }, + "node_modules/@react-google-maps/marker-clusterer": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.20.0.tgz", + "integrity": "sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw==", + "license": "MIT" + }, + "node_modules/@react-leaflet/core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", + "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", + "license": "Hippocratic-2.1", + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz", + "integrity": "sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ==", + "license": "MIT", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.22.0.tgz", + "integrity": "sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.46", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.46.tgz", + "integrity": "sha512-ng4ut1z2MCBhK/NwDVwIQp3pAUOCs/KNaW3cBxdFB2xTDrOuo1xuNmpr/9HHFhxqIvHrs1NTH3KJg6q+JSy1Kw==", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "Apache-2.0", + "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": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz", + "integrity": "sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz", + "integrity": "sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz", + "integrity": "sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz", + "integrity": "sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz", + "integrity": "sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz", + "integrity": "sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz", + "integrity": "sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz", + "integrity": "sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz", + "integrity": "sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^7.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^7.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^7.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^7.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "^7.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "^7.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "^7.0.0", + "@svgr/babel-plugin-transform-svg-component": "^7.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz", + "integrity": "sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "^7.0.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz", + "integrity": "sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz", + "integrity": "sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "^7.0.0", + "@svgr/hast-util-to-babel-ast": "^7.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-7.0.0.tgz", + "integrity": "sha512-263znzlu3qTKj71/ot5G9l2vpL4CW+pr2IexBFIwwB+fRAXE9Xnw2rUFgE6P4+37N9siOuC4lKkgBfUCOLFRKQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-7.0.0.tgz", + "integrity": "sha512-XWzIhLTr5WYns/cNFXpXrmFy+LFf2xp60VnNUBZCpM1CGTx47FCDuUj2DQjxirMf2L6CP2jTRELK8ef01TecFQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "^7.0.0", + "@svgr/plugin-jsx": "^7.0.0", + "@svgr/plugin-svgo": "^7.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.17.9", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.17.9.tgz", + "integrity": "sha512-8xcvpWIPaRMDNLMvG9ugcUJMgFK316ZsqkPPbsI+TMZsb10N9jk0B6XgPk4/kgWC2ziHyWR7n7wUhxmD0pChQw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.17.9", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.17.9.tgz", + "integrity": "sha512-M5E9gwUq1Stby/pdlYjBlL24euIVuGbWKIFCbtnQxSdXI4PgzjTSdXdV3QE6fc+itF+TUvX/JPTKIwq8yuBXcg==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.17.9" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.19", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", + "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", + "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", + "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/google.maps": { + "version": "3.58.1", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz", + "integrity": "sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==", + "license": "MIT" + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", + "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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/eslint-plugin/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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/typescript-estree/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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/@typescript-eslint/visitor-keys/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==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.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==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "Apache-2.0" + }, + "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", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + ], + "license": "Apache-2.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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/antd": { + "version": "5.24.2", + "resolved": "https://registry.npmjs.org/antd/-/antd-5.24.2.tgz", + "integrity": "sha512-7Z9HsE3ZIK3sE/WuUqii3w7Gl1IJuRL21sDUTtkN95JS5KhRYP8ISv7m/HxsJ3Mn/yxgojBCgLPJ212+Dn+aPw==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^7.2.0", + "@ant-design/cssinjs": "^1.23.0", + "@ant-design/cssinjs-utils": "^1.1.3", + "@ant-design/fast-color": "^2.0.6", + "@ant-design/icons": "^5.6.1", + "@ant-design/react-slick": "~1.1.2", + "@babel/runtime": "^7.26.0", + "@rc-component/color-picker": "~2.0.1", + "@rc-component/mutate-observer": "^1.1.0", + "@rc-component/qrcode": "~1.0.0", + "@rc-component/tour": "~1.15.1", + "@rc-component/trigger": "^2.2.6", + "classnames": "^2.5.1", + "copy-to-clipboard": "^3.3.3", + "dayjs": "^1.11.11", + "rc-cascader": "~3.33.0", + "rc-checkbox": "~3.5.0", + "rc-collapse": "~3.9.0", + "rc-dialog": "~9.6.0", + "rc-drawer": "~7.2.0", + "rc-dropdown": "~4.2.1", + "rc-field-form": "~2.7.0", + "rc-image": "~7.11.0", + "rc-input": "~1.7.2", + "rc-input-number": "~9.4.0", + "rc-mentions": "~2.19.1", + "rc-menu": "~9.16.1", + "rc-motion": "^2.9.5", + "rc-notification": "~5.6.3", + "rc-pagination": "~5.1.0", + "rc-picker": "~4.11.2", + "rc-progress": "~4.0.0", + "rc-rate": "~2.13.1", + "rc-resize-observer": "^1.4.3", + "rc-segmented": "~2.7.0", + "rc-select": "~14.16.6", + "rc-slider": "~11.1.8", + "rc-steps": "~6.0.1", + "rc-switch": "~4.1.0", + "rc-table": "~7.50.3", + "rc-tabs": "~15.5.1", + "rc-textarea": "~1.9.0", + "rc-tooltip": "~6.4.0", + "rc-tree": "~5.13.0", + "rc-tree-select": "~5.27.0", + "rc-upload": "~4.8.1", + "rc-util": "^5.44.4", + "scroll-into-view-if-needed": "^3.1.0", + "throttle-debounce": "^5.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "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==", + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "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==", + "license": "MIT", + "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.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "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==", + "license": "MIT" + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/autosuggest-highlight": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/autosuggest-highlight/-/autosuggest-highlight-3.3.4.tgz", + "integrity": "sha512-j6RETBD2xYnrVcoV1S5R4t3WxOlWZKyDQjkwnggDPSjF5L4jV98ZltBpvPvbkM1HtoSe5o+bNrTHyjPbieGeYA==", + "license": "MIT", + "dependencies": { + "remove-accents": "^0.4.2" + } + }, + "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==", + "license": "MIT", + "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.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "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/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==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "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==", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@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" + }, + "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==", + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "license": "MIT", + "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-proposal-private-property-in-object": "^7.16.7", + "@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==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "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.13.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/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", + "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.5", + "hash-base": "~3.0", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.7", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "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==", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.30001726", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz", + "integrity": "sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cfb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz", + "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "crc-32": "~1.2.0" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "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/chance": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/chance/-/chance-1.1.12.tgz", + "integrity": "sha512-vVBIGQVnwtUG+SYe0ge+3MvF78cvSpuCOEUJr7sVEk2vSBuMW6OXNJjSzdtzrlxNUEaoqH2GBd5Y/+18BEB01Q==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/charcodes": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz", + "integrity": "sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "license": "MIT" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/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==", + "license": "MIT" + }, + "node_modules/coa/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/codepage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", + "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/compute-scroll-into-view": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz", + "integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/copy-to-clipboard": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", + "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", + "license": "MIT", + "dependencies": { + "toggle-selection": "^1.0.6" + } + }, + "node_modules/core-js": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.43.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz", + "integrity": "sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.25.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", + "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", + "hasInstallScript": true, + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "ISC", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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-loader/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.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==", + "license": "BSD-3-Clause", + "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==", + "license": "CC0-1.0", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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" + } + ], + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssjanus": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssjanus/-/cssjanus-2.3.0.tgz", + "integrity": "sha512-ZZXXn51SnxRxAZ6fdY7mBDPmA4OZd83q/J9Gdqz3YmE9TUq+9tZl+tdOnCi7PpNygI6PEkehj9rgifv5+W8a5A==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.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==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "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==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/dnd-core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", + "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", + "license": "MIT", + "dependencies": { + "@react-dnd/asap": "^5.0.1", + "@react-dnd/invariant": "^4.0.1", + "redux": "^4.2.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?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" + } + ], + "license": "BSD-2-Clause" + }, + "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", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.179", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz", + "integrity": "sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ==", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "license": "MIT", + "dependencies": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "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==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@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-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "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.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "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.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/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==", + "license": "BSD-2-Clause", + "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/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==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "(MIT OR CC0-1.0)", + "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==", + "license": "BSD-2-Clause", + "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/espree/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==", + "license": "Apache-2.0", + "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==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "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==", + "license": "MIT", + "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.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "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" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "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.8" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "license": "ISC", + "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==", + "license": "Apache-2.0", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/firebase": { + "version": "10.14.1", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.14.1.tgz", + "integrity": "sha512-0KZxU+Ela9rUCULqFsUUOYYkjh7OM1EWdIfG6///MtXd0t2/uUIf0iNV5i0KariMhRQ5jve/OY985nrAXFaZeQ==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/analytics": "0.10.8", + "@firebase/analytics-compat": "0.2.14", + "@firebase/app": "0.10.13", + "@firebase/app-check": "0.8.8", + "@firebase/app-check-compat": "0.3.15", + "@firebase/app-compat": "0.2.43", + "@firebase/app-types": "0.9.2", + "@firebase/auth": "1.7.9", + "@firebase/auth-compat": "0.5.14", + "@firebase/data-connect": "0.1.0", + "@firebase/database": "1.0.8", + "@firebase/database-compat": "1.0.8", + "@firebase/firestore": "4.7.3", + "@firebase/firestore-compat": "0.3.38", + "@firebase/functions": "0.11.8", + "@firebase/functions-compat": "0.3.14", + "@firebase/installations": "0.6.9", + "@firebase/installations-compat": "0.2.9", + "@firebase/messaging": "0.12.12", + "@firebase/messaging-compat": "0.2.12", + "@firebase/performance": "0.6.9", + "@firebase/performance-compat": "0.2.9", + "@firebase/remote-config": "0.4.9", + "@firebase/remote-config-compat": "0.2.9", + "@firebase/storage": "0.13.2", + "@firebase/storage-compat": "0.3.12", + "@firebase/util": "1.10.0", + "@firebase/vertexai-preview": "0.0.4" + } + }, + "node_modules/firebase/node_modules/@firebase/auth": { + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.9.tgz", + "integrity": "sha512-yLD5095kVgDw965jepMyUrIgDklD6qH/BZNHeKOgvu7pchOKNjVM+zQoOVYJIKWMWOWBq8IRNVU6NXzBbozaJg==", + "license": "Apache-2.0", + "dependencies": { + "@firebase/component": "0.6.9", + "@firebase/logger": "0.4.2", + "@firebase/util": "1.10.0", + "tslib": "^2.1.0", + "undici": "6.19.7" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "license": "ISC", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "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==", + "license": "MIT", + "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/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==", + "license": "MIT", + "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/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formik": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.6.tgz", + "integrity": "sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "10.18.0", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.18.0.tgz", + "integrity": "sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "license": "MIT", + "optional": true + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", + "license": "Unlicense" + }, + "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==", + "license": "ISC" + }, + "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, + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geolib": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/geolib/-/geolib-3.3.4.tgz", + "integrity": "sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "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==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "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==", + "license": "ISC", + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "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==", + "license": "MIT", + "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/goober": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz", + "integrity": "sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==", + "license": "MIT", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "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==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.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==", + "license": "MIT", + "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" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intl-messageformat": { + "version": "10.7.7", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.7.tgz", + "integrity": "sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/fast-memoize": "2.2.3", + "@formatjs/icu-messageformat-parser": "2.9.4", + "tslib": "2" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "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==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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-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==", + "license": "BSD-3-Clause", + "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/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==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "license": "Apache-2.0", + "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/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "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/jest-cli/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==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "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-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "license": "MIT", + "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==", + "license": "MIT", + "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/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "license": "MIT", + "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==", + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "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==", + "license": "MIT", + "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.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "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==", + "license": "MIT", + "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/jsdom/node_modules/form-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", + "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "license": "MIT", + "dependencies": { + "string-convert": "^0.2.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "license": "MIT", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "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/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "license": "MIT", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==", + "license": "MIT" + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leaflet": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", + "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/long": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", + "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", + "license": "Apache-2.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.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==", + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "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==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/mui-daterange-picker": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mui-daterange-picker/-/mui-daterange-picker-1.0.5.tgz", + "integrity": "sha512-+7Mp9DXQw6iLGotwp1rKfMV8sJxtaEto0IVId54orkvrCdqTgn167nzLBz6hd34tJLftg6DKAygkUom7tmg5Bw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7" + }, + "engines": { + "node": ">=8", + "npm": ">=5" + }, + "peerDependencies": { + "@babel/runtime": "^7.16.7", + "@emotion/react": "^11.7.1", + "@emotion/styled": "^11.6.0", + "@mui/icons-material": "^5.0.4", + "@mui/material": "^5.2.6", + "@mui/system": "^5.0.6", + "date-fns": "^2.28.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "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==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/notistack": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.2.tgz", + "integrity": "sha512-0R+/arLYbK5Hh7mEfR2adt0tyXJcCC9KkA2hc56FeWik2QN6Bm/S4uW+BjzDARsJth5u06nTjelSw/VSnB1YEA==", + "license": "MIT", + "dependencies": { + "clsx": "^1.1.0", + "goober": "^2.0.33" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/notistack" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/notistack/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.0" + }, + "node_modules/papaparse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.2.tgz", + "integrity": "sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA==", + "license": "MIT" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", + "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "hash-base": "~3.0", + "pbkdf2": "^3.1.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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" + } + ], + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "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==", + "license": "MIT", + "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-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "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/postcss-loader/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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" + } + ], + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "CC0-1.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/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==", + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "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==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "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==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "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==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc-cascader": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.33.0.tgz", + "integrity": "sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "^2.3.1", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-checkbox": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz", + "integrity": "sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.25.2" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-collapse": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz", + "integrity": "sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.3.4", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dialog": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz", + "integrity": "sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/portal": "^1.0.0-8", + "classnames": "^2.2.6", + "rc-motion": "^2.3.0", + "rc-util": "^5.21.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-drawer": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", + "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@rc-component/portal": "^1.1.1", + "classnames": "^2.2.6", + "rc-motion": "^2.6.1", + "rc-util": "^5.38.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-dropdown": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz", + "integrity": "sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-util": "^5.44.1" + }, + "peerDependencies": { + "react": ">=16.11.0", + "react-dom": ">=16.11.0" + } + }, + "node_modules/rc-field-form": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz", + "integrity": "sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.0", + "@rc-component/async-validator": "^5.0.3", + "rc-util": "^5.32.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-image": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.11.0.tgz", + "integrity": "sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/portal": "^1.0.2", + "classnames": "^2.2.6", + "rc-dialog": "~9.6.0", + "rc-motion": "^2.6.2", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-input": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.7.2.tgz", + "integrity": "sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.18.1" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-input-number": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.4.0.tgz", + "integrity": "sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/mini-decimal": "^1.0.1", + "classnames": "^2.2.5", + "rc-input": "~1.7.1", + "rc-util": "^5.40.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-mentions": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.19.1.tgz", + "integrity": "sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.22.5", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.6", + "rc-input": "~1.7.1", + "rc-menu": "~9.16.0", + "rc-textarea": "~1.9.0", + "rc-util": "^5.34.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-menu": { + "version": "9.16.1", + "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz", + "integrity": "sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.0.0", + "classnames": "2.x", + "rc-motion": "^2.4.3", + "rc-overflow": "^1.3.1", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-motion": { + "version": "2.9.5", + "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz", + "integrity": "sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-util": "^5.44.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-notification": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.3.tgz", + "integrity": "sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.9.0", + "rc-util": "^5.20.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-overflow": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz", + "integrity": "sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.37.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-pagination": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz", + "integrity": "sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.3.2", + "rc-util": "^5.38.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-picker": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.2.tgz", + "integrity": "sha512-Cwa3frWpefhESBF20HBJtvWx3q1hCrMxSUrzuuWMTGoZVPhQllGEp2IUfzo9jC5LKm4kJx7IrH8q/W/y9wClAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.2.1", + "rc-overflow": "^1.3.2", + "rc-resize-observer": "^1.4.0", + "rc-util": "^5.43.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "date-fns": ">= 2.x", + "dayjs": ">= 1.x", + "luxon": ">= 3.x", + "moment": ">= 2.x", + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + }, + "peerDependenciesMeta": { + "date-fns": { + "optional": true + }, + "dayjs": { + "optional": true + }, + "luxon": { + "optional": true + }, + "moment": { + "optional": true + } + } + }, + "node_modules/rc-progress": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", + "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.6", + "rc-util": "^5.16.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-rate": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz", + "integrity": "sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.0.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-resize-observer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz", + "integrity": "sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "classnames": "^2.2.1", + "rc-util": "^5.44.1", + "resize-observer-polyfill": "^1.5.1" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-segmented": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz", + "integrity": "sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.1", + "classnames": "^2.2.1", + "rc-motion": "^2.4.4", + "rc-util": "^5.17.0" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" + } + }, + "node_modules/rc-select": { + "version": "14.16.6", + "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.16.6.tgz", + "integrity": "sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/trigger": "^2.1.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-overflow": "^1.3.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-slider": { + "version": "11.1.8", + "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz", + "integrity": "sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.5", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-steps": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", + "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.16.7", + "classnames": "^2.2.3", + "rc-util": "^5.16.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-switch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", + "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0", + "classnames": "^2.2.1", + "rc-util": "^5.30.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-table": { + "version": "7.50.3", + "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.50.3.tgz", + "integrity": "sha512-Z4/zNCzjv7f/XzPRecb+vJU0DJKdsYt4YRkDzNl4G05m7JmxrKGYC2KqN1Ew6jw2zJq7cxVv3z39qyZOHMuf7A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "@rc-component/context": "^1.4.0", + "classnames": "^2.2.5", + "rc-resize-observer": "^1.1.0", + "rc-util": "^5.44.3", + "rc-virtual-list": "^3.14.2" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tabs": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.5.1.tgz", + "integrity": "sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "classnames": "2.x", + "rc-dropdown": "~4.2.0", + "rc-menu": "~9.16.0", + "rc-motion": "^2.6.2", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.34.1" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-textarea": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.9.0.tgz", + "integrity": "sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "^2.2.1", + "rc-input": "~1.7.1", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.27.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tooltip": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz", + "integrity": "sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.11.2", + "@rc-component/trigger": "^2.0.0", + "classnames": "^2.3.1", + "rc-util": "^5.44.3" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-tree": { + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.0.tgz", + "integrity": "sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.10.1", + "classnames": "2.x", + "rc-motion": "^2.0.1", + "rc-util": "^5.16.1", + "rc-virtual-list": "^3.5.1" + }, + "engines": { + "node": ">=10.x" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-tree-select": { + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz", + "integrity": "sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.7", + "classnames": "2.x", + "rc-select": "~14.16.2", + "rc-tree": "~5.13.0", + "rc-util": "^5.43.0" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/rc-upload": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.8.1.tgz", + "integrity": "sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "classnames": "^2.2.5", + "rc-util": "^5.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util": { + "version": "5.44.4", + "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz", + "integrity": "sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "react-is": "^18.2.0" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/rc-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/rc-virtual-list": { + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.2.tgz", + "integrity": "sha512-SkPabqstOQgJ2Q2Ob3eDPIHsNrDzQZFl8mzHiXuNablyYwddVU33Ws6oxoA7Fi/6pZeEYonrLEUiJGr/6aBVaw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.0", + "classnames": "^2.2.6", + "rc-resize-observer": "^1.0.0", + "rc-util": "^5.36.0" + }, + "engines": { + "node": ">=8.x" + }, + "peerDependencies": { + "react": ">=16.9.0", + "react-dom": ">=16.9.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/react-app-rewired": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", + "integrity": "sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^5.6.0" + }, + "bin": { + "react-app-rewired": "bin/index.js" + }, + "peerDependencies": { + "react-scripts": ">=2.1.3" + } + }, + "node_modules/react-app-rewired/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/react-csv": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz", + "integrity": "sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-device-detect": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.3.tgz", + "integrity": "sha512-buYY3qrCnQVlIFHrC5UcUoAj7iANs/+srdkwsnNjI7anr3Tt7UY6MqNxtMLlr0tMBied0O49UZVK8XKs3ZIiPw==", + "license": "MIT", + "dependencies": { + "ua-parser-js": "^1.0.33" + }, + "peerDependencies": { + "react": ">= 0.14.0", + "react-dom": ">= 0.14.0" + } + }, + "node_modules/react-dnd": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", + "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", + "license": "MIT", + "dependencies": { + "@react-dnd/invariant": "^4.0.1", + "@react-dnd/shallowequal": "^4.0.1", + "dnd-core": "^16.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", + "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", + "license": "MIT", + "dependencies": { + "dnd-core": "^16.0.1" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/react-geocode": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/react-geocode/-/react-geocode-0.2.3.tgz", + "integrity": "sha512-sIpbgmn1IUzAxO4haOZ6jeeFnMD8ya9PC38yiNrmJ9vPWbvAO2D/2yfCBzZjGZVUm4PRzKAc0KghXfaEnug0TQ==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.13.3" + } + }, + "node_modules/react-geocode/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==", + "license": "MIT" + }, + "node_modules/react-google-autocomplete": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/react-google-autocomplete/-/react-google-autocomplete-2.7.4.tgz", + "integrity": "sha512-BeEk2mjzgJcfiCueuKBofm5+RxHUIr0+POn9Yw8merK4Yd0jcOp9Lk/IGJySbz1GTi2Jqvi7V4dbw/DPLD1HMA==", + "license": "ISC", + "dependencies": { + "lodash.debounce": "^4.0.8", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-icons": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz", + "integrity": "sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==", + "license": "MIT", + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-intl": { + "version": "6.8.9", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.8.9.tgz", + "integrity": "sha512-TUfj5E7lyUDvz/GtovC9OMh441kBr08rtIbgh3p0R8iF3hVY+V2W9Am7rb8BpJ/29BH1utJOqOOhmvEVh3GfZg==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.2.4", + "@formatjs/icu-messageformat-parser": "2.9.4", + "@formatjs/intl": "2.10.15", + "@formatjs/intl-displaynames": "6.8.5", + "@formatjs/intl-listformat": "7.7.5", + "@types/hoist-non-react-statics": "3", + "@types/react": "16 || 17 || 18", + "hoist-non-react-statics": "3", + "intl-messageformat": "10.7.7", + "tslib": "2" + }, + "peerDependencies": { + "react": "^16.6.0 || 17 || 18", + "typescript": "^4.7 || 5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-is": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", + "license": "MIT" + }, + "node_modules/react-leaflet": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", + "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", + "license": "Hippocratic-2.1", + "dependencies": { + "@react-leaflet/core": "^2.1.0" + }, + "peerDependencies": { + "leaflet": "^1.9.0", + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/react-loading-icons": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/react-loading-icons/-/react-loading-icons-1.1.0.tgz", + "integrity": "sha512-Y9eZ6HAufmUd8DIQd6rFrx5Bt/oDlTM9Nsjvf8YpajTa3dI8cLNU8jUN5z7KTANU+Yd6/KJuBjxVlrU2dMw33g==", + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/react-redux": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-redux/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.29.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.29.0.tgz", + "integrity": "sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.22.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.29.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.29.0.tgz", + "integrity": "sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.22.0", + "react-router": "6.29.0" + }, + "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==", + "license": "MIT", + "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-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "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/react-scripts/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==", + "license": "MIT", + "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/react-scripts/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==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "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/react-scripts/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==", + "license": "MIT", + "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/react-scripts/node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "license": "MIT", + "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/react-scripts/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT" + }, + "node_modules/react-scripts/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "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/react-scripts/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==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/react-scripts/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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/react-scripts/node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/react-scripts/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==", + "license": "CC0-1.0" + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/react-scripts/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/react-scripts/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==", + "license": "BSD-2-Clause" + }, + "node_modules/react-scripts/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/react-scripts/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==", + "license": "CC0-1.0" + }, + "node_modules/react-scripts/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==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/react-scripts/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-scripts/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/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.", + "license": "MIT", + "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/react-timer-hook": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.8.tgz", + "integrity": "sha512-bi2e7DhPBU1MRPU4ZHaVqBmgM9e2HK0ae8O2AIqwqjcPo4/qR7lVGQonOQLAKOZPQCJSYfV8F5aBWzOLXElzqQ==", + "license": "ISC", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/react-to-print": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz", + "integrity": "sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw==", + "license": "MIT", + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "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==", + "license": "BSD-3-Clause", + "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/react18-input-otp": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/react18-input-otp/-/react18-input-otp-1.1.4.tgz", + "integrity": "sha512-35xvmTeuPWIxd0Z0Opx4z3OoMaTmKN4ubirQCx1YMZiNoe+2h1hsOSUco4aKPlGXWZCtXrfOFieAh46vqiK9mA==", + "license": "MIT", + "peerDependencies": { + "react": "16.2.0 - 18", + "react-dom": "16.2.0 - 18" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "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==", + "license": "MIT", + "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/readable-stream/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==", + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "license": "MIT", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "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==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-accents": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz", + "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", + "license": "MIT" + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "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/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "license": "MIT", + "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", + "license": "MIT", + "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/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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "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" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "CC0-1.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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/scroll-into-view-if-needed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", + "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^3.0.2" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/send/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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "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==", + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.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==", + "license": "ISC" + }, + "node_modules/simplebar": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-6.3.0.tgz", + "integrity": "sha512-SQJfKSvUPJxlOhYCpswEn5ke5WQGsgDZNmpScWL+MKXgYpCDTq1bGiv6uWXwSHMYTkMco32fDUL35sVwCMmzCw==", + "license": "MIT", + "dependencies": { + "simplebar-core": "^1.3.0" + } + }, + "node_modules/simplebar-core": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.3.0.tgz", + "integrity": "sha512-LpWl3w0caz0bl322E68qsrRPpIn+rWBGAaEJ0lUJA7Xpr2sw92AkIhg6VWj988IefLXYh50ILatfAnbNoCFrlA==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/simplebar-react": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.3.0.tgz", + "integrity": "sha512-sxzy+xRuU41He4tT4QLGYutchtOuye/xxVeq7xhyOiwMiHNK1ZpvbOTyy+7P0i7gfpXLGTJ8Bep8+4Mhdgtz/g==", + "license": "MIT", + "dependencies": { + "simplebar-core": "^1.3.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "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==", + "license": "MIT", + "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/spdy-transport/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "license": "Apache-2.0", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "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", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/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==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/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==", + "license": "MIT" + }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.3.6", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz", + "integrity": "sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==", + "license": "MIT" + }, + "node_modules/stylis-plugin-rtl": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz", + "integrity": "sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg==", + "license": "MIT", + "dependencies": { + "cssjanus": "^2.0.1" + }, + "peerDependencies": { + "stylis": "4.x" + } + }, + "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==", + "license": "MIT", + "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/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/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==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "(MIT OR CC0-1.0)", + "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==", + "license": "MIT", + "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.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "license": "BSD-2-Clause", + "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.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "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-webpack-plugin/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-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==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/terser-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==", + "license": "MIT" + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/throttle-debounce": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", + "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", + "license": "MIT", + "engines": { + "node": ">=12.22" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toggle-selection": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", + "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "Apache-2.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "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==", + "license": "0BSD" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "(MIT OR CC0-1.0)", + "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==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz", + "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.19.7", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz", + "integrity": "sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "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==", + "license": "MIT", + "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.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-debounce": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.5.tgz", + "integrity": "sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ==", + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.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==", + "license": "MIT", + "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", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "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/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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==", + "license": "MIT", + "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.", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", + "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", + "license": "Apache-2.0" + }, + "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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "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": "^4.3.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "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==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.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==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/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==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack/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==", + "license": "MIT" + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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==", + "license": "Apache-2.0", + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "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", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "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", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "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==", + "license": "ISC", + "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.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "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/xlsx": { + "version": "0.18.5", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz", + "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==", + "license": "Apache-2.0", + "dependencies": { + "adler-32": "~1.3.0", + "cfb": "~1.2.1", + "codepage": "~1.15.0", + "crc-32": "~1.2.1", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "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==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yup": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", + "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", + "license": "MIT", + "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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f438d0e --- /dev/null +++ b/package.json @@ -0,0 +1,127 @@ +{ + "name": "mantis-material-react", + "version": "2.1.0", + "private": true, + "dependencies": { + "@ant-design/colors": "^7.0.0", + "@ant-design/icons": "^5.0.1", + "@emotion/cache": "^11.10.7", + "@emotion/react": "^11.10.6", + "@emotion/styled": "^11.10.6", + "@mui/base": "^5.0.0-alpha.126", + "@mui/icons-material": "^5.14.19", + "@mui/lab": "^5.0.0-alpha.127", + "@mui/material": "^5.12.1", + "@mui/x-date-pickers": "^6.18.2", + "@react-google-maps/api": "^2.20.7", + "@reduxjs/toolkit": "^1.9.5", + "@svgr/webpack": "^7.0.0", + "@tanstack/react-query": "^5.17.9", + "antd": "^5.11.5", + "autosuggest-highlight": "^3.3.4", + "axios": "^1.3.5", + "buffer": "^6.0.3", + "chance": "^1.1.11", + "crypto-browserify": "^3.12.0", + "date-fns": "^2.30.0", + "dayjs": "^1.11.10", + "env-cmd": "^10.1.0", + "firebase": "^10.14.1", + "formik": "^2.2.9", + "framer-motion": "^10.12.4", + "geolib": "^3.3.4", + "jsonwebtoken": "^9.0.0", + "jwt-decode": "^3.1.2", + "leaflet": "^1.9.4", + "lodash": "^4.17.21", + "mui-daterange-picker": "^1.0.5", + "notistack": "^3.0.1", + "papaparse": "^5.4.1", + "process": "^0.11.10", + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-csv": "^2.2.2", + "react-device-detect": "^2.2.3", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^18.2.0", + "react-geocode": "^0.2.3", + "react-google-autocomplete": "^2.7.3", + "react-icons": "^4.12.0", + "react-intl": "^6.4.1", + "react-leaflet": "^4.2.1", + "react-loading-icons": "^1.1.0", + "react-redux": "^8.0.5", + "react-router": "^6.10.0", + "react-router-dom": "^6.10.0", + "react-scripts": "^5.0.1", + "react-timer-hook": "^3.0.5", + "react-to-print": "^2.15.0", + "react18-input-otp": "^1.1.3", + "redux": "^4.2.1", + "simplebar": "^6.2.5", + "simplebar-react": "^3.2.4", + "stream-browserify": "^3.0.0", + "stylis-plugin-rtl": "^2.1.1", + "use-debounce": "^10.0.5", + "util": "^0.12.5", + "web-vitals": "^3.3.1", + "xlsx": "^0.18.5", + "yup": "^1.1.1" + }, + "scripts": { + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "start:dev": "env-cmd -f .env.development react-app-rewired start", + "start:staging": "env-cmd -f .env.staging react-app-rewired start", + "build:dev": "env-cmd -f .env.development react-app-rewired build", + "build:staging": "env-cmd -f .env.staging react-app-rewired build", + "lint": "eslint --ext .js,.jsx,.ts,.tsx src" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "babel": { + "presets": [ + "@babel/preset-react" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "resolutions": { + "@svgr/webpack": "6.4.0" + }, + "devDependencies": { + "@babel/core": "^7.21.4", + "@babel/eslint-parser": "^7.21.3", + "@babel/preset-env": "^7.28.0", + "@babel/preset-react": "^7.27.1", + "eslint": "^8.38.0", + "eslint-config-prettier": "^8.8.0", + "eslint-config-react-app": "^7.0.1", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "prettier": "^2.8.7", + "react-app-rewired": "^2.2.1", + "react-error-overlay": "6.0.11" + } +} diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..73597f04c094157c52d147c74ff9fdbee2df066b GIT binary patch literal 4054 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 IM6N<$g6DeM00000 literal 0 HcmV?d00001 diff --git a/public/firebase-messaging-sw.js b/public/firebase-messaging-sw.js new file mode 100644 index 0000000..12861e9 --- /dev/null +++ b/public/firebase-messaging-sw.js @@ -0,0 +1,67 @@ +// Give the service worker access to Firebase Messaging. +// Note that you can only use Firebase Messaging here. Other Firebase libraries +// are not available in the service worker. +// Replace 10.13.2 with latest version of the Firebase JS SDK. +// eslint-disable-next-line no-undef +importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-app-compat.js'); +// eslint-disable-next-line no-undef +importScripts('https://www.gstatic.com/firebasejs/10.13.2/firebase-messaging-compat.js'); + +// Initialize the Firebase app in the service worker by passing in +// your app's Firebase config object. +// https://firebase.google.com/docs/web/setup#config-object +// eslint-disable-next-line no-undef +firebase.initializeApp({ + apiKey: ' AIzaSyACBg8oyAR2DWMu4xW85gx5thpRgxnvI_0', + authDomain: 'nearle-gear.firebaseapp.com', + databaseURL: 'https://nearle-gear-default-rtdb.firebaseio.com', + projectId: 'nearle-gear', + storageBucket: 'nearle-gear.appspot.com', + messagingSenderId: '140444764229', + appId: '1:140444764229:web:e5ed6259a92d0532283b2c', + measurementId: 'G-3YQ4DNMXE5' +}); + +// Retrieve an instance of Firebase Messaging so that it can handle background +// messages. +// eslint-disable-next-line no-undef +const messaging = firebase.messaging(); + +// why here + +// When your web app is in the background or closed, the browser shuts down your React app’s JS context (like your firebase.js, App.js, etc.). At this point: +// Only a Service Worker (like firebase-messaging-sw.js) is allowed to run. +// It listens for messages even when your app is not active. +// Firebase automatically routes background messages to that service worker. +// So you must use onBackgroundMessage() in the service worker. +// 🔁 Think of the service worker like a "headless background listener" running outside your React app. + +// ========================== || temporarily add for mobile correct notification ========================== || +self.addEventListener('notificationclick', (event) => { + event.notification.close(); + const targetUrl = '/'; // TODO: route where you want to land the user + + event.waitUntil( + clients.matchAll({ type: 'window', includeUncontrolled: true }).then((clientList) => { + for (const client of clientList) { + // Reuse an existing tab + if ('focus' in client) return client.focus(); + } + if (clients.openWindow) return clients.openWindow(targetUrl); + }) + ); +}); +// ========================== || temporarily add for mobile correct notification ========================== || + +messaging.onBackgroundMessage((payload) => { + console.log('[firebase-messaging-sw.js] Received background message ', payload); + // Customize notification here + const notificationTitle = payload.notification.title; + const notificationOptions = { + body: payload.notification.body, + icon: payload.notification.image + }; + + // eslint-disable-next-line no-restricted-globals + self.registration.showNotification(notificationTitle, notificationOptions); +}); diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..d30ef4c --- /dev/null +++ b/public/index.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + Nearle Console + + + + + + + + + + + + + + + +
+ + + diff --git a/src/App.js b/src/App.js new file mode 100644 index 0000000..62f9497 --- /dev/null +++ b/src/App.js @@ -0,0 +1,64 @@ +// project import +import Routes from 'routes'; +import ThemeCustomization from 'themes'; +import Locales from 'components/Locales'; +// import RTLLayout from 'components/RTLLayout'; +import ScrollTop from 'components/ScrollTop'; +import Snackbar from 'components/@extended/Snackbar'; +import Notistack from 'components/third-party/Notistack'; +import { useNavigate } from 'react-router'; +import { useEffect } from 'react'; +import { generateToken, initFirebaseNotificationListener } from 'firebase_notification/notification'; +import InternetStatus from 'components/updateNetworkStatus'; + +// auth-provider +// import { JWTProvider as AuthProvider } from 'contexts/JWTContext'; + +// ==============================|| APP - THEME, ROUTER, LOCAL ||============================== // + +const App = () => { + const navigate = useNavigate(); + useEffect(() => { + if (!localStorage.getItem('authname')) { + navigate('/login'); + } + }, [navigate]); + + const AppContent = () => { + useEffect(() => { + generateToken(); + initFirebaseNotificationListener(); + }, []); + + return ( + <> + + + + ); + }; + + return ( + <> + + + {/* */} + + + {/* */} + <> + + {/* + */} + + + + {/* */} + + + {/* */} + + + ); +}; +export default App; diff --git a/src/assets/images/aiImage.png b/src/assets/images/aiImage.png new file mode 100644 index 0000000000000000000000000000000000000000..ba01f74212412d0b10613d998a5d91dc6559d6f6 GIT binary patch literal 776890 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 z
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

QD&D2lh-QnaG-JsTqdh418() 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%0AfI$zap@mB2f-@ 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℞CH3d2q)`snB{wu;{?$TyP&2!@_-3^^o0Hd{Q!;dyktN9w%+Dhs}hPC_S?ippOWZY*fh5 zNJZi)wq*})oT{m=WpCJgxU81pcLBY$7u+HNH2VtDl^eCgwC~iP^bG0-5sw&AMCwa? zgj45+Rvjz~sLUKM$x4&S=|8V$@5JCs5gEdTO(3>g<v3%m_QbcJclXyl=nT9S$>c z5l@|K``fb$NNIGXS_FS%bij zs#m^BwbT`E;YHz$c{qIG*M9mJfA!}dJvoyi zJAyZByuW?1&A!$>4jY~rVmSw(fW07(!8AexVZa7zu;}$r67oCDty@g3WVY~KxRYrk zc}9o*EVBqCOssl|$N)VCn}+zlR7wTGoFs6@y-TcS#_hx!k_6aR!bmehzbK>G&uleL zoD7ObrBZ@+9~FF5Q?skVjStCd^xK$cht0}AX3c@6nk!;^R16R8Iy%Z8eetBXTWO8`e_Wm9AY3sR}wR1UJz~n8oFzM|Xd4_wBdux?3EY$FRV@Eg1ii z+{~w!RN2=bt%h>H0DEpe{BmAhyLs{67oNHO)RUQNa$~;+dXZD9(UrFFzsNgrh&?GnIiZK>$zOFT1GbbC*RUo$t+CY`MslnCQkT6A~kRu z1G6;K#2cW6!`&pX@OH|3qlZ2k+XL&7?dZ>!o4`^89&2FU?_HK8KWdV!_@$MIK55?@ zFSW)Tv?K^#0TskK1{duEi9#|W6)s$_8&*}L@;NY;JN!hgJ#T@D*rHxWY8;v&K4*ii zon8dSOdALp+BOOc>`CQC+RA`xZ@!H|4>R|A{Vz=sC@?UBn^oSaDNKyc7z3(9jLR!Z zo*LkH0^8~l{uYgZ4Zh1*qaBt?f&c&jAOJ~3K~$D%vm7F;53)+cBw6GUEyT9A!tFp* z@tmR9pN-G{>}%I=-k9^yrlSj17D=Mb4he`qv0kPnL}pANZtTW)zWcr3|G)nD>T-^~ zOd~cjU?6Ql+acB_CNHuKc2&sfWB=^4&;G4n`}}*Ke?F$q!&FPApRFeZ<5bn@&}OdUbIJDgddQEcQppgw zw(#2f)`#1GFAw*jK5mtRRn%zQ3UFmmHWNs8jF8%UC~u?|zUV?ag`t%!6o53Kwjt7y zki9U4c7!_$5;~sC3ihu;VQ=i8>>v~z)GR7Sa8*e-f`9&u&n47oM3Xp-XYRPVR z0;D59<$|crA(x5Z$g#|Tl})6(M6@%iDOinBhG?okMXkh9383;NYFeV|K^;j~34$&L zk63$EKitx>{BhzoXWa5JVBEn9z;W~-oJ)m2!pdW215%Qou1sr!+8wOIbuqL%Vxqx; zs>{hpc|SU0#L@6L6^X^46X(1Jgt`x=c(x+Tg)8P23GQYwWU50{ciOpqdw~{kGX3YuNowu{ef&#;Tr_y` zMloWJb!S9OlxSpvBHPecv?MkFEpvW#XYTH|@7(&(M_=0Q&*z-|xXxxGO!eh#DT|8b z27L={RSKf|qAxe|oxSz;TYvHOZ(7bp6xKnUUa6GfjlgvNP>Q4;tm7suZ;7z^na_XX zH-7t9-FKH)S03e9Ij$Q$o4=@op{4TIf*zMk=rn88UQw&V1kE2}6m+Nqy1Ife;eJdX zI&gFMU9$}MaKl@qC9`wb5n)u!kvdy&x*ca>4JS$|esoeq1C43Kb>8k;tVdfhdX0tW z4l%*Vmih*9k?uuAXp|F4XG>5|&rd7!O+AV84WcF(i1y{T3W{X<{5LzyouRPX9y!l^ooDw7~8%b1v`YO2PZJ-E&O;uXO=7eS%P#fV62 z4Syjqm@8l$J(kFp7LPtM4V($Y{d*73_vfGg<|XoQU5iK<6ZAN<;k zyPaJ-d-(3dKmX%@_xksKaJD~7NKvT3kfwiOwi!%D?iMIPmJpykqtu(`5MlEWANk~m zpM2`J$=q=g3ECa5SoRfGUZWGqPJYw`m?$Z1wM^s-g0Fkc{9tcd97NQihn*O?o>FXw zh97s8)Q}qhN(hPkj*+EzBVMIp0GMT}MxNaoU)%y~EQ|bZC`38xTltwQ#gvzKUchvt zvAu6$Ra%}c>cFY)=DupG8NrF6a~BmUy2wO7ew+)NpA!D5&q{{(fD#ONSXD%Pop@Sp zjm4dswC`+d^i5%2FC*2os~h85l_i0RZCc?QvkY(3MZ~fGwVG0W)hJqM;)NMG)vv3! z+oP~Zs4}0*JFPehR1@WCZWlg|khQp@`;#`om#tSFpIp&as}x=atf9HWR|k{6IP}KG zm$r_ALAMb^*y3-oMOCUE!2*S@;vm=51Q@*z*&>|I-@|Wr&ow1Q!{B(`%}0dYe(Lsn zKKShQYv+fU?h~(=tE6T{QWvkbiunN66OsoYnE;H{d*8?IY`p&c?|=K7-<^l)?t#tn zWU!E0*CiPzW$~To#%mJg-!VsA&~m5?-QU5a^zpMo#A*afs-hN(OfwMQupM zwn;CS1XPrC>JPPgnGkKii!c<^$WhBjy2|;PZTc^@A8)NCG~$|!m+8y;@=K*RmOqJA z3Es{<;}&42!WqZ$_*5qY!bQG|trk{Snm_P7y?gypOr?qD7Ji%Mh)H@rdNd7wzR^fv z_E>-xoHm5hh8xt=g?os;xfF_2NDdK1p6qFic5aLy2#KT&rFy{yJK`!2^vS;Po6rlq9!a?W+U10XOcqqdfbbIF4VHP%j`0XG3=#9U= zj6-14k7z+qcoO-;un!|`MiU|L4S|;wuP=$1Zhqt9;sdX|kX5KaRuC{dG$trC)IhlD zfwx|QfDWi!(H<8GTTLGy*bHk~I?7#CJ*(@Bd95o0+K*NgqR`f`n#MA613tI`mR-!6 zcFZ1z7^TB(X{E(6bP|Nx-qlKAe?y>_h3ls6Mz97{LolhW6uiY{p1b|xp2{9!t|oBM z8lamycur<3g$(4epGo>s8#kq_S5&t!pN%U=Q2<}nsk@lLI>EZaQy#}O^pE%dK z?83C*zcjeDmWmynuy|FudPPylZHd^(#y8*vU$%m(~?Its?63XuFI;f>6* zd;rd3xtonF?ez$dP~fB)K;*MWsD^bw#^FPRjSOvO#`%2AIm&)mosukU#VS)FRrw3i zyZ3S5Tw_q4af(fmEU*w3b`?;wyZK1?_VC*4THh87>y>V+o(z$>xy7(p_jqgdY(98N zYwMkT(HXnED;8VTM=us?m=+cs*)TQk;c9A(69;vfTkh~YJU8pM)iv_}A>FThq?;?a zZn%!qf6&0TYVYXPQ32KwR#~lMF+-ecpYbA0o>KbAd6Bv)988Bg1gy_`S9Vx z4}a|C|Kz{;>W5$bkQv}FjYx0sZHNkOv2DKMl1si}X1g&S-h1?oKl-`OTH19G<<*UGnSJv}+Rv~Sk?e_0^-*bzsf$S{!$VpG6w}~nMqjp%W zNiddpJX;Yp71uJ$Y|BarJn<&dD?AS=sS&U}ZYLFd zt81tOh=JCH3<{-CP60WgevR#zz3FIpRG8_CFaILKV;jFUH>klV(v%vqS{1qwxhkT& zoB1%SJzfGc%4UUg(AGLCQN?s!13u%+Ko-0Qnvz!r!t_TmJt^Zhv*S{Ps7$`|#l-6tiH}Wh|`Fxsf^ZoIxT@+ux)oGB*=#4rtS5!>)k0@LQ3ASux5xNeL0i)1FA7HWsHLO(CF z;$y^7hZvFIg)+v8hLdV_=~dp>WHl2Kv6Z|tbMa^ynlZ>1S%!_TdTMIMQM9Ob%*C^# z5GUZjNpDp`({W|#BI8R}@za^TN>vGB)<#HzHX?5teC1eDtVQoK8T;7eMLq!pDBgIt zy3cZTdk3S+<7*+ApeiNK-vC;~r6nLtx#a5M!$;T8um9Yae)>ya{e`pLK6fbaPN1WP zm+TU)l|`j;szT^Av%C;*vJMa1pY4D2!@IxtJAe3tH{Q6oI3HWiV*S0vJ`d4;thZQe zxs1&Tu0CU)ouA!#`p%uFpX{a)!pbv|+CyF(Ti4|huBwu^BxIE?`X zcIDTpEetbb+ujlP|M8Cm8kD%*%pD_<%8|UU^}xe?4BQqTcz7ZLi~6F*TlJ^-MrhZr zW{5Mu4};j3$f2`Gpo;Zcv{Knd)bz%f<~g6s-Igi}hAR>v_}7Zo6zymeknC6Jh8WTi zOdlmLz7S7bv2ycKh;4p#Vk^w@HE4;f`nE^XB4(V=<8YKXybCJBb3I0KgiXmjdfI1W zi6zxsf7&QO*_RrC*h!FcD@;jamd#6v)J#Imd84~y|G$9r5hF_c?XYx;vcn8{UgLgF zL-mXen8O>p{IptVxcd<& zN9ENONP#IDNAh2m(0VonI`q;n#9PSV))ZDL&%JJ_U>spjK6U%0k9;5|B6!XlxIX;B z8nQ$~>MTr(AV(oLmav8)yPfa%X7MNg`cJ?07vC9U?Dsod>TW(p`fnMyHw*Q$@7y#F z>kSwIav07alT#hz`pxVA;J^Cnm%j2voBON76$=ST9w)NA|7@cs+bsNTwRNQ1g?&A< znpns|E&&Xr#VIRz5LDU-;Q&R;$X)bT`t7ZGL#PKyRfAD<+sw8|gf+>Cju|^82uKfK z&EWsIXJR;0X@`4Yx4Fge-N3lX_A14BvE4(Bn81dlI;u9JjWkE$%>y*-qa(tl|rdjYNw0oEl}5*h%l@lm<)`-r8R8zEsJQRKnkYN zSM4-c6C94IK@ktOLIN6A9iqzJT+kXqdGMVyM|ErYXngC^TkC-4DrZ1avnu82tq6l4 zRWs>gznk%hz8wrg3bCUuCRfuaNA>k&M~FlfEUE{08&wpY^J>luKmXaE`>DV4pZ)rc zo7dYsu>*P-LTWlkl_EV1X@*%vYO<7N0gBEoe7M`$#r}JL_4+sd^qUXvKODBhUTa}^ zc_)abM7`0*ttN*vNM_VV z%=3J&YUY<|(G?=98qs50!wrggNhoE)!Zp0Kv(wFyqRUmDF1o?{KMXHoMLt+oSeequ zoy|*W$$SiCujW>XD4TY3n~rUvc@cjNgm3z;7d58CmLnCEu|+Qi!>I<7Xfr&q6XNpUyW%x1(~TCZ|aH4(WuqEp`?C+c{QR@;edaJZ@3hRyE5I|52}GC#XSs<}Lm(ki z$7TF}`RMTNZ+-V`fAFX8ymfDkVPSL5X*1kyTD~^as3Hy)jpbBz8JHJm4-8Oj=04u{ z(tG~VfBknq`s#--A6&(}@=?1dJ9LGCK->Dl{$`y7g|Pe%6}908A}bz@>`n@#0$|jq z3CigWURK`&V?=y`hFB>UIW%@56Xl}=NE#TwH(Va`yB<1mZC4;$6k$lRRJyWZHVa!! zD`9XI3o+aYLzYW<34!fKZss;D){|jcInIW~rrWkafXYR+mb^RoHIZNqZHiZTY;Kx^ z5ZK|G4a*>@C{b?(lr&{>X8>h`%ukaRPt+g~FmfD8+83F2H<;8&rW3O0J|Gqc>Pm(U zs1&4_i}_9HrMpXULfI=NDkD@FE7Bh^*vSroLQb9#2lQ6azf={3aC)C>Ge5GfA7Uq%GmINZYiJIHWO{^<<0X&99J-!}u*3h+EVAg<$| zB(w`5O5+iuTY)|H(=jdIU=X$|LAqPyTgD|i$WGn2hJ!y+T-oDnm#rpRqkCpJor zh?p~G<{#6h6#9ffmMqrt9lcJ{RQ{86a`h6T=tRM~bKfwovOBwy)EwSVRn*6CA3 z?Dpg8>MDjErgw-jb3W++O5NP1h0idzLyYkKE^a^l#48{E;J^IcH*Q?t8MBCitSgMA zt*jzw4b)-SR43E~Wkr;5HB^V~&-Ry(9{kb2{Mt`_@v|R)?J18DcF1C>?|tXH!(p0P z)UM9P2HnlB+SovfhXG*RbH`*>fyT~1{+W;d`ak&cx4!vT@7#O)EZ?)0>Sq|FqSaN~ zP>X|L7Ep;!X>v2w!=yp%6sau@MK4bdqerEf^L9I`p%t`bi3hH}f(+sSlR#|0aV?eU z8YB#;6%j}2lLHI;cze+D5tEd=lRmwFBW4IDtAsPw_S|FZ`L&P+79b!Iw5#edRXW=$ zbIQS{Q@hO#GnC^`2C5Ao41lG1h%c=m%87#_amUug5)@-y!7;4cO!+ZrSl^?rBWh9! zLqkzz*D4aGe0`z7I5S?DAiyk+Y-RxO>DJHZbDWku4@dPTd^mH`5(J{8nb`>J7vr?X z5!@ZR)C!D+wH*1P^4#A=Vi}cB>a=l0g#q8@mOzBikYq<-u3*+XYP);bhCNHJQce z4L&=9=M7to&L-UtbJp#NTt!Q&p9)>?j`hF^IIU;y%qzPYKF-e0o%j|QCTg3AwLZxmz_Ot!jaIU@P(~H5Y8Aa3PMmtH@ zRT`*L=;@&|izJb21m>Kv5wODNR*camjYS&^%v!lOrQpNnRm5Ss`)&;1js4xbZ$`!H zXyP{FBj~nu|9}0&5?SntCvHD^`$j8adog>9$DG{Ucq$PHGq-#1-h1=SyR|TcMrzjc zoeikKpyOPDy7Nwo>e!rSJ}qwDyz#{C+Zz)8e}9hIJ^DO)_~^|yf7Bu>K5A%XCh0^b z{As;`4*W5_RHlpS)r^a4*Ppok1oxBRg%i*ON1AwdMw_{^@>rfAGRLO_KiRK=U;pEQy+Qa_RV>iHg>z=W_EdXb@%RFi#aV*SXLKTvt=9! z1agYTM-BjD9^A&+#s24i<7eLb>%0Hk|NKv1|KS_^v*EiD{aytO1_(ke@fJjY7^>Td zrK`PHC{)A;!8tJL29sVxqeb@MNMgy&5rxN}&FBDJb0m=( z!mty(Fx4hv@NSNYB?mgLs7AAdGjP8x+9S_>3?xRdZ~7+=r}@P*z- zmB|oLwc-MgZjOQ_iZ7nk!9H(&t3;Abn8avp=RPAW9zJ;Z{BzHKar+~URh+W^%hJFTwMl{WN_`%Ufo?cI0ZefLK{avxZ8Vhp() zD|)AqfFqjzs-+&vq`VNaE5^#@n1-uuNFof zX>|cBFp7N2gS&J$ba5FcJMMI~26nih@LER6Rnzyds-?1>+^Q|BvfGz+UfnLUptQnZO*%)I^c!pP65Lic+ ze;`IMW)p2gxb~)~q#AsYXHM8vW+yTQ*@HexIoCDmSKt=_g{_f0jyx^^kB9E3^wnyd{ z4XBDxBEY6Vos1T{!C{!6VNdKu#%?tTs&H91kHuRBBTq)O$9){|rB)(FxQV!%YkKxV z<1~yG^X|NdzK#wMQmaYAsdm;sA>S4k28V@gvD6E5h+@Yi?FC zjqsLFGFEy}ux>d!Xkk)5us0`7uYqfm3m%1%Df3VO5PzKWs$mU=Oox;Gdz5nWCrF8F3*RzZCF~&=hI&52) z6AP!N?{?3>_}nwkK2;Xux}~h!QgQ0vt@JVg536veAo}Z`@Mhn zjlXnv8$&i)$QQGj!zc1>0VXRE3@qeh^Pbm+#3V0O`-nr#M-LC@*ROr~w|@RhU-`m~ zvm1xYLmZ~BX{?F*!uV$Z03ZNKL_t(`8VKZ58I$-{D@re|on|M+)m6{V+TiUWUSY;b z6ktNP+r6|Klz4(kS53GWzH-L$XZ9@5)60R^7v{?(?`I%h! z4296raNt!4*;D|_#5_a8)?y|ilG$H7GB|K2T`{a)N7?KFtiz=8AvT)MCM6v+Kt+!5 z>v3oVDun^DnZ=&C9LmjRcomIo8ACUeZ*ch- z)uA|qI+kZ&C(UB6-btzu8`3=D>gw{^`S};W^!dO4-~8qaFTL>K-lGK{bk2vNhGrO* zLX~$Bc3N?spiZ~SB>#8*>F@o??|*H7G4}h5N)L2c*B;Mu{%R2vRz)1?l?(cMeM$~I za;7exxOwZvk9@Fp&yq>m4*4Y}uIwrDGg5m;i6XN)_lDXc5F)Y)DOU9ZB!^v1W$Dh_ zqNq^h5exQ>idM89^Kcbmmh&rn8y2J8WDLTDhYyz!92_>o{E*;N+?7lMf`oHSUdYj7 zVB{t&8K=48|+>{`K7c9psA8j-($%o=fFMdY6SAGRS6)bw5Aj;+; zUWGYCnKUR6t`Vma!fvqr((}&=7>L}#&nzRW@NC|)MRl|6HoX&>sAyKhMDs>ioQs4h z3W-C4kB)Ldk5n?aG+)UXVyL)Y*V|i2NSLU3f-mAkKy$gi)7|3(ue|T+r|-CV%!z^7 zVhYwx%He7W?{<^Yq+H|7_vBQV+0OiIzyH&J^XLD^|N4Kv{mwfgPjVC!Q!_}1T%XUY z#m7)bWkgKFu z5z(3xj5awo=4GG>s4~=lgR1N{NriY8hwTfc5(tkdr=s9RjOksTJqCV$6AAE?Xc!rl zK##b9%aGe?&!{OBVsn~7W}buun4LH1rXLUR<_Iy?{vk2s5Y6cvkJd0C#NMeCbl(Ix`5dXZ`2Bu4402vJN{x3#7{>>sWU2cRvb8D zXf>Mbq%X~d2V0cFOgt;}Mu*EQidM_G8FpZ1J4fgfO`FkcPT)0J#OK@}ufr|k; z0gf&Q*PI20+^I;xWN%5f!jz&ms-7Yjp4}wUQsGPJ6St+~%Rs}8^-@wAa4`(P+$hX8 z@G{-Bp?pHHxab(Zl(ZJagNb-s=hidz#`So|&z4x&ET0N9llRlN7&eVNWhVpI1(2dl z1tLRhVWSNcx)Y!uw?1l?idB7Si1jb+{ z+Zazc9?Ceeo$ju7C7o1UNhhgPDpmQb|4Gtal}fwHopiUm#l|R<{{npy&e(GGr`|fbgK5P7~VehjKWs-L}L70WR02o++e-G=T zwot$L<+@>xZN9PQ02?EJg;K;gPG1y3K^mj8bMX_S9x^qA)U0tCwH*Cbg!!O~a5_^# z0*ybWN)a}Tm=F-EHy0xtLY47c9a#(OA>TCp3_t!2E~=y3iHR2)VI+pY6bW%9s{2`e zXg#qtuPTT8>$A^0>xxsCopbg%lXZVCqYdy~$u6j&mHi|C)k1SPbd_b(rAUA5uRs5} zN54F~n!7;+Pep!XzP}Z=H8<2xT2+9`5R&EUY!kEIEC zQh>{(72s;T%BT+A{DeX#C)C2%5+9Y$ZXy;_%pL1Jyt0jWHV|0)SEOEMl*I`~ovWbo zt{rB}{)&%oGtNkB(GEXQvX=S<@VY9joL+LWfC>v875p&@0o@OLiKsa$pj?^sS}#Kt z>gT1)Xs_i9qzeXckF=p#(QRy$!tEdt3dEYlNAxF!L~1dMl8cWVBwdz)SViNZ5QtpE zR2dmT*mL>pWNIkZYs>DIse_?N%& zm9HPH_nK;3D9;N~rv1eYUCy+Pq6IanJnEv;EAXa?it54s!SQ3qZoci>ORl8uWi&mzi&ht=);}qjy z#_6}EBdHnA-6vVCDyMdUyoqZnUdJoVQLW??Fcm9*vQ#P2!wUU1fvjv-Gs`%XUuI%o z;Krb`L>+~6Hk{J`n9Kmx&+9d770v>S&hp_5LNS0LUX}|W{X0s-71-0s=FEdIY{{a* zceIT&a*VKpvybdXsmLZpiZkhGb1KHV#|n7`yuka+WN`;uX)0-=BZIh_@ENz{woHN+ zat38+jbN3voN~=mwK6ApdHRwH=3iP4l7J=E*JC%-umFIVsB!DT@Q`$*c-pqa{u$0V znKEPJc2i3aNC%L?wabmSW}*w--rf3}&wt@vfB3$h+h_qr zR43-dk`J>B=T*!|spjUc?7LDNW7~0Buh;8-<@J~T#_zuE^*{64!{?{o8iM^+QHmR&7xEfD=O=T3|8fnH|}V3Fy~iAM7wgv ztNXr4V!>JG6Z^uP-dJf91vg_*2irO7g!GtrdYhz(;=G|K+4ilmkem*(wv-S zRnE=je?7=m;qHIY2INN@%DiD4Q6|xNSf%D|U!x_&3| zVKyv9eB_G`Tq6)ctwILEa!%HRd;y0lQ6ifR#Gxi&AfRcJ@?2{}5vdG%E*GqkVb0AF zFFMHhP1=a&M;ivRsAIHN(h|p+l;`(kD8OtaN0`9{M=woK5nr01AcG)a);U&GOU_udSA+nno zpDP=YkexIY|4~Kp04h1cwkw3YUc&v-%{L`pMB&map>Kr4%;X0aEF{3IW5Q`C- z4aC97{9GRCs*rZQco3)!9bAM`z*C0Yv29%(C`JchrxsNNYpyovLTb(FEnrMoxND56 zuEt_!@``(IJpY0hP16J!s7mxyb57_gks*yO%~}1fP1@;aPk;L3k3aFm z*Z9LkZc76M4h7m$?}ntDHwdU@nv@pq6!vb1hyCI!FZ{*-{3qY`8$bJ^v(D)UQ};~+ zprS6AJj(O%cbx4E`G6dXH|+`GmSuLn{3pL*z@$cU%W*U(2S%MUbg{>zIV!|dIM|pm zw6ut$0ckw8j;$1aIlRt{5eN9S(sx3#Ej5crh2+d!dYGdq2~B?(={BrYr?o||HiTk| zni>E3S_g;j1}m?gDD|_7svhwJzz#$x;v7!Gu~{gM)|({Brd!YYtTVM(G;>Ea@JAEg z);Goqe#MJ6^$oy^$au#FoXZi!bJ$*FL1SxxOXVd;(qoR5(yEQjp_e}QsFCjRZL;s8 zC1L=0YOqsc^1ppk__Ur)7eqYKQB?t;P1MUU}Es z|Lb483=goL@*lfT;E6}1N#`N~6_MVjW5>2mUVP%h%TBDRyB3{ILgY~Slw8dG z-kT~oCnuhG+dNGPpvl{#!Doh6OJm~-D8TmEn;jV2T+}o2Jv*})y&n0tenArmSz>8I z+JxgZZwj%7y;&ukHcoxqr0VGjURD1>( zwx~iDu_`9r26$7VMIgLqWlcm*oP6np7ru0RYsY#=4HB+fjB2KeWC*&2xMT9NMS1Z8 zr#X-vJGTA3?|kQ7|MoqnpMO4tjlo!Y6pC|_KT<}9D8&snGkdFY_kGsZeSKh8TzAPY z|IW|6^*?#jQdfQ5ty^n=bL%e1fJQr#{$f@(d}cSa9;&2J@gPqXYrwm>lKSeOHbhfV zcxiNos7GFQ{tc9D`P&GmMKp8x+k9Ilku7~EwO%?g{*^+1LvIUjYv@wk9p@*w#Ich^ zwYf0xyv#_pNrLd!U&-mZ|7r5 zF~a*02!?E5gOB3c)#<}16RM?Drg1^_og7_ns=WOoa2(+QY{cH{+Qo8m6`_!I4vRkq z3}%Y7c}&Qe3GT4W<`~q;#FUPlbV>Y1)?{$xD&=fp=3r^N$ex&F>b zONm3pEQ(!LniSC}8MJsZylbHm`4JI0CPr30JUrYzwteF*FTeEECHs2^L4Omg%B6T|79tF)U>dXC zqdyR*vVL4!H5D|7#R(d2|ROWEcT!{j}Pe0hg zNx(%cGbsUGnEZ+RTtJki{}*8mZwL6___zG6Ok>`n9swalJho_P`{9IDoCjA31KXq` zLvm;+C7B^zV~m{ZF4T;sLA*4nt0PR43K3(U9tJ;;ka3jL!ObMPpgtzbmRX_FKbnCy z7)_1}e+o5|10%bT8WbB4=dc${Xn{kGSX88|qu7~W1i`39YUb$nY$VI(6Ga(goM(fp znTS87x5bFQGGH!Q`0OTFh*+#cM@$TM3|21#T3Oaup~|=^KjzYl_fqf{Vb8}klivF^ zH^1!Ur6;B?Hg)!ET`sA(>;)$%6)TR7{!J_D(hca>1W(Z}%jN3%)6d=eCm;C8eSclX zMkSQuA{7=Gp3NwYuPwmTC0_7gW{EcSZfiMt<%ysBtvA2zH-GlL^Im-L{NA))+hkVO zIHX!Ol$T@AzIH0x(ANnIz^Iz$%>G&UAp*gCY>j0s#fLOSIV?_*v<_PLKuw-^lx&V* zl-wGysU!&ocB)OfS;llqnCK9FaL*J(P&XyxRkI}#m3<|ac3k*|`PCR}Zk8{=TlxeC z**K2KiSACgBbrhox?=>S&LXfa4T&*Yv z0|6H8AaG=z3uCZ)2650BXKfs4hN%gSekU(jbZ}BHrqG+pB2z`xrfGe+e|X}8i+=VO ze(E3m&;Qxgw_m+JIJ5~MFF-+@KvYc-2-m9^oq~vWs$%}2+sGrF$jSOc_doXTKfdp| zGtX`BY>UNHXXle(WH}^_)MB<$N6Vj${wwFpV3Kxtus*)px&BA4KL3LAr}aeo**y{j zb-y1fy8Hk@=h_%wrAz_<_CgEsG`bDMt0Zdv#2_xfP66UEfE6IhvHeJz<9@?Hej#3PY5`C7qunC;omVoc9*r4*oCT})G8O^`Wo}9%p+7`cTrNdunr>h+ zoId7VDKeGp4H8g_BuU9=)hu_NqFkK7hDIfvo+H48j*Cfsk*fc;wXV%t z8^Apct9C_>8Y5fR1GOQ9Bd(0po9)?wMSzbMbzx7Fj?f5?^gJzks@~7hC_$}grM5K` zS+Hf49r7@NaTYJd2P4GJ%u9K=@*7q01*eAjXJi>{i9pzfO-l{9jYIZP(v zi(5=gW6vJkkndJ#P@PLck#VLP!EgRmOidDE@fbuWui+<2T^Tw6NHWoT8vWLQgwTCz zT#P_KEH-~~L$0Pot{lF?U=f*17n^Lo?)SX;jw?=`TpzBx<%9G<7_P_|pA_Sx?fDRE2fSI8dqe2 zB05mQ#BH_vLJL9IfQwalBWv!3t$N@LHECf3o}?NJ_>>dsM^siqsY=S97Rje3!FCYS zOvJ2C2KDeG!xT$tqotx z4JfnNA0<#z9pA8WUIdwjAxSb4QYXOGuq{o{FxF+WzV4u`ntThdipgESwBoj{ zzxj`U{hB+kKHNW?4*IZCCQ~cp0_MU)RTN>R1k{jIM7gP3?_%rTnuzE(o_Olf4?p_M z(@*z^R%){`$5&#A-&`Aun?(ejpILl&m*Z4UC?gDIwOn2Jk_#?+*-2lPaBQ z$l*gXrHyQekk(BsiLd_!<@pX~A+Q-iYbMh_&Hy1V0z14{Qpz7fjS8Mi!tg8>9axhn zH!BUUT6e7|&=T3J2x!ld;b~nXm)#=czcmBeP-DI^&-s#MvQ?tmZ0wSN%v~#wqCXHi zd3huxWfxT&QzO3Nn!-w4ZPG^8p|!%ps+Rf6v~)s!0l_4dMoDBWw2e1n))~3b=R__E`(lay*Ci6SL`Vxs`NUtM6C@hs`R$W_-yeUm_CQ zREn5gbm@hcUwK(;OTT8*63hxwnOacw8RPwXHq8~_G+sDA`n{RD+*+*`?U4r`{@4c} zTCWeJNhIObcZefqq5-Da?2Rx`4ldV2B$onqW+MCh2O_d{Z1-n>{Z0SV|M6eF@hz|3 z-PvuES?^}Lh?TMdJLu)LA=N1U7E;glev%R1$3&lU=cG}kw@S#YmtV?%5ej%lF`oJ3 zsPc5R`Ios`C|x)4kE4!?CgR$6yBMnF@aaTZ~kIlF$BzP#JS_v{z*@U@c)?47$bZ#IO^XUlGn3wZ3qld$I?R~wj4L7IEGakYL7E<`nzAvzm|2evz)4~D^6R<; zyb{9DXH=Y`>M-hX*7@EnKc!EcdtXA3Y+JQ1m?2V%rFoc z&+P4=d+zbuUUlOor!Lt$eMVI!_H=}45^Csu@hnnHmeawHNdNJS7hr)ECofPYCWf6_ zX*guntAM)F##tzFUnJWEhU-{Z@c_97xWNICD@fOv`M1Euii9QuJjPlnCY*y&8u+9- zwJNUwp?0Cq)>@s4v+94L4=vseiP#k zA909=Y`o^+>~oHo@F#|KFoMj0f>mEC>9Hr9Kibj2t*kPZh=_FWDF;lbgcf64&64zt z_!#62UR7LJhd+4^Gd8CnxNvQ#-zb9EEYkA9D<)0Nmp5Um($pU@3<+p9XjL$$D5~1c zI8LF2!O9W}heD6MC6n|(o){@4=bOPGE!0$WNO3T-;$SBoUTJu$r>JN?2uh#8mHN@5p>h{mM^H8>G+16Hkola7}ciq^~)+EnH1 zU;g?#fB)StyXLAZUw)bTja1!#7oT5AZ{(vT$qS@3+-e)5aGQ6lx6WIvM9lisduzIT z{P?TiaOa6jU%I`!^Wgg*dh%P}S!}IW+pC4o>L-#3CV_H&nw4v%4tiLNQAXy^H#O+U zL}G@GU9AKICajjvgHKP!IVuUnsf#0(Zj?93VPu^hLwy0)$4ItO$6KKmbk_Dk0bxT( zEgqD{lMY*l;#JCI(+J1l!h*UveO_ma@IgY>M2wzKUiqM0p~p24RQN#%9A*c!$fAg; z8hy%^z?(>$J-tEFMMRd02>WV5&ES6}&Opl|nf-)>pw`rnN@J3=Q9ekiA9zN*M|2Vq zk4>5IK^&t(v>v1-IJ&ollN;1fL<@PBXvg1yP=+=Ziy&q26c_`}8Rb?zYQqR;CYf}# zhSgs=WCSQd;_o)3rqb--;IOal9^l{)1B9vn2Pn@yWe+Yk^!xR9=s{a zu^HL;wK!M!he{KhdS6&?O-1xepZ(hh@B74)-+XfG*lM|44k8|8!vImN5zV}@L<&)d zLtuF>lrBUq5wYHPw|B4pk!#LBaqbVFIjv1an=sxej3I*J=wljc6g(T&MLU837-1XO z58xuLBBdr`h8r0@&eR)t!$a|hS(Rl7G!fCRm>Cga10S+$Wf!}M5&n$01T2pz=~gY0 z6iq9yc@`}`%PP>!_k`vi6@v;koa4zQx>fQJ-o|?z@S92zx9128=_M%xzAl72(iDs!Ek|CYyj3ypXKa`T9kfgU_T%to2MQF?or!l9E ztTLiXtUg7uQh*R9O^>JzE>ahe%HwckEqhM6@JOe~L#MBGN=@0WlTWs3!ES0|$z(+i{bg*w#A^__B! zWl%^d^M1bIs8;_+aN*|yV>7kRHM>SN(0)bH zi+0H@)-kT$*_g;e(5 zO|vX6DHZXn5|u<(0W%hgNX4N-OH8C=69u5ds3e+&#dy|ZRWX(y2=3IFxfR8jDF(Hn zIVk0C8H(#Q(ba_p5kDLQHf*#G&x=ZZGkP5cH5!`+{#D6asE0tU$z!^qi70j>vApJ> z)54=l(ng?RkCe?awI*Wg>9DVDckB4IS6}-(|HE(p_y5~}dHtQITo6<5itMA8^?b93 zy0DE0WQ*iTYy;cDX;(49;*x0D_3wW7?;d>5CqDP+XSa5j%f+&Qq#R*CGEUsZAFB|- ziwC{T&Ian^r)fIeS}kw6_4*4gJ<+ErJYVq8I(in-TLtw*SRxvH5wZjG@oCfg>B#Af zE)VL_Q!dR13lJiXHcx-e)`XdL>Fff-7O=sJ7BML$1(ICq{(J-tsHFVpg;afUj}%yq zv>7caN-eU$#HWcgdSDL3$)g$jDpj#UdK7S7Q4g0#G3}nFBwbaSHP$1-L?tzZD$=AP zU_x_HkoBMFNVA!6^CVFjHWQz%=bkBg9v(K|m+8YLbVL(&@3cWPP@&WZoFi* z>XIzmcu;)90-ddTKa1W{YVq+pl{SYDZ6+2Qo0*u_&3vVFQwHg5<{c%Jn8v(@_o7r9 z9^+=?@y6N^1n2Chi(*BGT=2oO}LXsm{= z`3#sJ

0ot5})=D{A448I~>OKQU!y@G==zVW5>!0(N!X(dk804%gGgSDv{2o?GsF z_lLj#{byFoLAR7(@fWB-GfFaS9&sLwE_ioo;u|$vZm&*1_rpK=m+!gg@)LKz_D8JC zdOdlUN1!~n2P;b8-eejyya>fG! z0kDB=_hn#1`YP2udxgtqT&jvJv1>*o0KB%<(WWr*?f-`Gm?R`x#TY8$mYs7UH9&)n zYDTlxwL?wjDM6qm_QC1Yu_8@^YH0wgY7dAl8mk|$u5C7{;c0TFdfpxyM;b9_W*0-c zd_*`(VHC>J@DLz;=0O1`3KawxP>#q=qZIK8QbFqC!sxg_y&Xd;j*k{yz=%*M2KZJn zvu+~YpOM`4oO93p#karZ&A;@zOHW<0y;@4POx%on^tKTlN6=MDw+eaa949Yg3|I`V zW~=R0YwhD7c=#{gao;n~e1ExIiZ;|{r4c(fw6Y-PyYJ zRX1IE-Q{Oa?-d0j4Hpt4fs@#`ql93C*Elu`FfgnN&RV8KBqf{bOPtL_-AV~VYdeyg z;%x~wD(JqIiLNRUE<2C}4=^?~`GHi$O8t^)?Pbbvpo~Mp%WP0kJqVB*I6~G@Hs@Tq=Ck@(D%^GZtlUUd9FDj)Q%gz)6AX>O2Gm3Z8uC zXGlSN)qi2$my?*ua{i;H0gh+TlBLF=;fhFW(h|(z8^K*4_y>9nmo9Kj^%c4cMfq<= zqDoo$R3o>iBbu?a2A++&Ad(l0v`d-ZGOiX9hL}P3GF(M~W|=PYUT4AVU}dY4qN0&g z8a&V_^XQSp>|331)0v7kd;l|pF{fbN@+luLbe0D3Ix0bgPRP=lGdaWxUkHWXAH{^w ziUKi$+>y5g4CISXs$6>N~h!eQ0bIPbgP_|7AvYv=c8(HHw*rX#gPT$}28CdDY2dyF1T4`)dSB>5|wam5AlU!E^VRw zQ?m33imil^!QPzfA_e8j1HVeR$QW&%eSz-v%VnW3Ll8*Cu7n=~`kECABntLF_@ zCZ?D7^8`X-)@}%rG@!y>aZ_gss#6h>E<+8FhZS-9x9(_V&Bungco=_EbX@E2(WEVP zLHv{n?5q_v&>%1Hs=>wrFf!2(&nds-Bs9P(8~(&g7m`P%5nwkZ%lSJDU!AX*3cSZU z{G-!qHdI9_a|{xif)pJOFNL9^&WlC0n8Xmtu7IicEQcJ zUi<71p84Sqo?R??QwwXYLcc*c5O1BYDDw|Rpaqt*L=v%TxTxOGl4~S*3|+cE5{x z8P5(+nga}?4y99zr1`mZ~$|loUn=#F~5l- z9+)Fd)_q#@HP+DL2yR2yi6k=wKxP?Z%kPL6 zQ39L5TzsNQ_1NzA=^vc_)8BvhN8bPO#Y&ns#g=IdW?B%ZVsn1RW#MK(*NVV4z7dyK zZ>{a^t+!TNx8Hrsc^AFp@ZcbNa1tVqCVVp~^K#W9wS*v@3j%!$PODWS!fA2Wz%XhJ zZ$qRo5p1)CL1y+{3I>re&d7)X^vVW=mP)vH9>=s=yoC1(Wab8Wr5fL3v42Qh*qs`| z(AmI4bKCSA-N>se*z?*<^jg8m?_d;U7DMk1&C!*MBNUPWQ zib2ehR_8UAP3PD)rvR6TFD*fGHROzL zRpKdw5CoIE`FqWMVrqHlf6SUHT7ryc65TqQWki-~nij3S`ptKK^>4rO$alYYY}vwj zRHNOPc_lrx>MDdo8V0A=d<*eGdoJYOrM1Os>$~6iyZ8Ochi|y^npeI4E^W=GX(&Ku z#ue?j4fCzQpCrceQ4@GiM4*;|DCSF=s$6*T!q@%WkKg`dw_kJ1sgHf=k;fnY+}_?9 zRXNx{R2B7SYXZW$=x`sK`5iO3eL*l`TWEx+l#~J;Fk7ZgxY4!6m}%`sffkJ@Za^-b zv#N}uhS@8E5>BiRq%hk-*OJsr&O7BLUf@+cFIda#OFD>(A`#14Qo>^ds9%F|{A(QS zsLoxbpjc7)L5BpMA9CWQ4TUt+Xb_U+$<_3I2t{LDWHxz}z!3H@FSPQP!V~}xoiQcr zNm@lh9jnN?Y;{;ntE@{?GEoMg(h*U$KBhg@-v&$%lSU?x`&=+KOKK1#S^7q!n$WGM z&Mc~BlZyPFYGK}CR7hN?l?xl5|6Q4YX@ijb*0K?X6&a?Yldae5uBJQNJ1;)#tXpoo z=@)+c4L96+!#U@jvsf&AwAhp);2q*XwqA(jE3@+Smof21>!3S1J-<^?vB`9yBJ$YB zAOGNcKlS^t=C`TArMsv|H?vDm zo_O_7-+AKXi}&{rB_`Z^n7f&91ua}B8@v>XhR8}3u@cm|?}sy$_R8meO4f!@F|;6* z+UPd`)kueV$_S&*dDNp)(E*nUN}6$H3Eg?VXu!H@V^#|H&X$P)B*L%5FufiI1W37r zl1PF@uTv;R(j_?ef|DU?DN_ye7CvbMrdZ-+T5N(up$cLsf)SopM9fJPBVyO0PgwLQ z6=W{n0#9|muM$u(=s)r@m$G$HS(d|Rm>nszifG*ST%Bq>E`7WQ#0Wxn#pUE^h<$E5 zt;_+9?Uus~G%;}ATs7TL zSo(4K!XyyK%f^f-x%z-Tk4@nT1?_*UF6Ok1n_iF1N(#KBO(vuRoqnzA@)CmA^<%m@ z*oORC6@>}58b}1MhQS2{Ws#fe^>VWM7tu zA{vWZS8eOXFFF4|{V#syZNK@J2miw-AO6H+pLpQm&pr0V)}))QR*U6g83SOOXRQiI zd0Wwd|7fatXLr{7*#=U}Rwn?$iuz(uu$2J-z=tbrG=fNJ+M~uJF*z5E-T5>N2!Izb z+lOu{a}5tZq+9|hqMZYev`XR&yr`CN2^*DM;;PeXVpS$M zc^*zI0~OC@VUv|k?3&I^uh`O6A5IqP7v0r(Sm4|ScS=Wp^AwiHzFzt#2Efn zkzqHdN(X#$M4mE9K9_R3FCbS+(T=apq)*nnSU>Em$&IlT5Dwy4`*gAKe9VML@;tEg2$r^?vb+O1&Iv)@1>#+#W#^q3!+v~s<4t* zota7+a;$envdfuyBlw6bimcJXE4d$|dM zTkUM1`4DyzTuQq4!Wd;ma~mQ{%;?!aAvo4E*m+bxT^j)rit=$i9g6yDH)I8N?bM-<$F;sK5{m@ zO3R(eD9c1{=u{$2RFU3oXLtLapSa_5kACqR-~85c(NtTC7s7$<&D343VpEajkhyF7 z;7+}@azj0Nva~I$B&==<3IJvSH9u)*F1dpCqMM*&prOd$3FFi!@a%J&podyhlhvD?X6{7 za-p~a6T%kK*fMk*voW@mQGT}A03o0AR9pa~55iYiE4NHlv=w}1P3XAv_Xexxqe2sn zGO88rS&GF(rTLaJY##y#gf^;SmR&?y2Y_afV98aRWurb`XGqZUwL<}1Yy)@*@=8mY zwd|5per5*4W*4f?xVcjW{a@B^12)utmnNEG$+FI_ko!w){ZoK8%*ZlO| zFTeTJ%Wk;hth0|7o}qxGmOu|7jY`J#OUF4wOS~(S2G-E{Hmb6zm{{+N?e^5yp8U{X zeB|-RKDX|N+dJER(r(xiMO)rvt3gz~Xj&-cT@jvnQ8hbq(J)KU`r+w=tFFD`4L|#1 zJG;C4`|DaDNG2}Dp?ZQPx+Cc)5Krsb6XIl?upSUzfJ_~c3<)dp8N}E|r1sxwWJR&e zH%ufu9o55P))K=fIOU8y8|E9}3v#knF1}sKwxWX?9mjA14k~!$cvg>w7mCon9L_B2 zBRWk1hE#1Trczc2vw@YQ8G2P4b;f)=5YEtV@urYUB_eTZe$6UbcoD8%()phBTI>@G zjm8kml;m7=G?5-vaC|N~F@&lk<|1N@pW=Wf#WfhJI1kJqmKIc^=DdVA=aLSXJ?V1N z08YG0T!-4F>lNoO z+zO^fj3QZ>X&&{+;6FvZ;q%}?$@iw7s5CXNo848UeaFI z0Wb(6FbE>H^V5myM&;yDu?97a%;l8RSV;=Hb%cSa@=K>er48aL(Fpbcg+O}0KQdgL z+6ONQB^ul0-W0V<_6Xyy039Qnv2X{xqJ~I;58*(U znMh1k!QqT?u6EzjJT^%svl3|Gr&*7`3Ie>^)8bm}W^w{ZrPQdz7A9@gbn%rHGSW>g zM-8nh)t2Uhq{WZwu}8N_N+;f;<3nq(9v@9by7k`sdg=>ZEZU-pUi-$gt;1B=VpM3bfPwcPvmdhp9<}lsQphlGg-~BjbTmc(nOrJU3?1jE^Hxp|Yo;Y#K z-8b$W+dA0a$6N!pyB|ifDmPEwt2v`Ix3M9Hi#C{+2|ETd&^7w4mnvEX7_>#th*?iaw28>p_RcjoUvt&`{}QI>6@Q?@X;T9 z@0q>l&ph?b@0@<_w6s30Cv7rKeW6X8_HMW@8#$NH!^%c*8j%zP#LXB5qPeA2wVB$4 zz_`PvV4~RNB;}^%qEb366mNn9Ou=cxj9M9mo;vz#DY$wK8U>3uX_5vZP;s%rA-Hx_ z?KL{V1=H^st%^VARS|8Npe9PtDv7Q&o@x#~*n3n@@e~>~nUtFH9J=i&)cjaMLII=@C0do2%3or#GRq zFvh6$-fey5%P+m-HLuv--R^zLKwA>nv?`ZaG=E2o0=SC`Vmv}gvBx|b5icu(a%dK` zi7m>HD$Qm!H=%^y=GcnIE14J{@LF&MgXTrhnc}@La8u*OQ;x!T(Q}$2D9XWS`l%ut z9o7;rXOs2iR7(>WJ4ZSkE9Iw*9xk8eK_n@5_b|h4&AsR5$#b|VbXy5iHOVk2#BkFG zW>SuLg&uP*qVS*_Y_ZK>oNr!_aW;FYB?v}{$nxL6WLUsccQI@U8R+n&&wDRf4LO>q zKP_-W>}DknNf{r%&p)}N^C@iDP*zQ&BVINv9c`fcnMh`l;bV$8I=BklbvPA(F~+=j zm+>IME^rH`>0=hYl0vk%h`51IwHd3B^w9<*8wyXdN3p7idN;0%h3#k{+-OAO@FJCd zo&B<sIkrkUO@5G)K~2cr|uY+qSIXMTtQK6(-7n_I}m&hH_;|0TdSR|7s)H`xL(Ab zKfU*sUw-}br_Vh5{U1L5@MoX;#@{{v+}@ez_YU^<&pdZ#@65h-nby{=hnsaQoi?H@ z()2E6rct#id|XhhNK*-w1mosKjy5&3ZdiK55N;_2{I8V6P!)J=!pW|*Q<}7yiA{W# zV^mt%GsM%D$FL*P>Q&)Y8X=foj#4gMmb-jzKxW!dq8Lq4 z5!=nop$R}W++xA#p{gQ%vbePg2q`LJ+!|C;AY*EQ6$7JrsYd%*wKY|X&#KlI%hk?G zTU)IbtJQL6cYAAR`z05gd&3>qp1AbF6PKOX-rm~YS`nc694SUjiI7gYGofPR44A2H zZBxlU`O5%ooJ}O|GGKN^I1OfGYiGG$_jmund;jteKlrVup4>gY)29Hv(CyIHD^b92 zK4MCdH(i=vX_kZv;oZuS>|3e!^?E(6Z@c@3*Sz&r-MXxOuheGNvp7~f{zDShO=WBr zi;8c!2D>tqvg}d=!@wGAg=}CeU6awNUZ93+V{ZoOBRR9$vb30uh+*mz%`^=!E^4$q z88it1kO-mp9lzGpqx1n}Fb32mMXBKv#toleLQpzFkj7^jW zqF**_)Uwg2EMX0P+Ht=iB8lyf~WR2q7XVv}O`r<02)%zVhML^+y4< zY>$~ppY8f9)S&Zp>6I5(_ysWn2TaW;&XernHT+|HqP&001BW zNkl2TRQ*A1;wY~k-FMZ?R{a^2z&h)$Act`W8WD(0XYefcw*2dT`7I~S7 z;vRRS71uCeD5jjSfgfDM%X<|OHS1_KkMw{X40)+f6LW<-PhCl@L;`OulM#3 zp8odJd(ZFpsrLvLFwB@Dhg1+E7#Cxwq0kHxEjVvHtXo7xyV;_()v>MC7EMEd2wFw} z61Fz2lmfve?xafiCHiD?V%>W0hldC2!^y|MB7$yRF{~dAdo<-dxD*d4xL%)WqiCIr zsxDWn<-D;GX8{#hZbx*+G|(wwJ4| z)z;S5&hF0fvyLrStHo+zy)W8Q%(}o5#$erz%bUVA6yPVw+AXQ?-5A_K3B3v!DYfSw z#;wQ}P*kXziglB2TgQ$){N9hh|6L#Z(wCo*g|xO*E0q<5moGm*Ovz&kA{v5u39~@| zL?j|*jm4_krRljlXJ2>AwJ$w+!I>YP=?R}j9myNi>7=w#vwpCu#2%TPl$wVf<1{eB zF47SzTLF~DRJer-x`s$c5GE~U#%ux;PiZ~bj;aH@(h8rN;{xzP{mLRO12RvMnTQ8b zLwqGL!?m0{BR&m@A|Jh#foXWT0bnBzdR*iozMPJ*G&CP+N`eXWGC5xrDyeXa%`%-d zv>I9}#*XpYZg$IO=)#@%lR47Lbeb`K_KvW&SLVpc` zDGBkAR}c3(t`Jq-a|FCvpcf~hW$?W~E|G5xw`b!tGoFeCKm4^9=Dn(P&2SqRVMp8B zgg(Jo&?IQbCK{Ia^3xBD!-OQ#Cs;Z~Y>MX$LmNFihf+sN^Vkfon4ncW8gU97|d+edl^vN!`Pwkg2w|V4lWx1I=n7)vDjM3 z7WU6H1$ zTdS>O$9A+SS38lh2o9OTqTdQINOY`-Uis>5#mT|?aR1DnnVNLfsD?^78}9gZI#>ux zx1Klwb(s&e6eUH>>!Bsk~eS&B#(gn!qxy?^v1^QeDBQjhlgt%g~dS? z(2+p}OS8}iMNzYgKh^bB+V1Yo)@lVDKp3DOqEA!1^0B;v=xv-lsiF?MWiS2U;9&pE zo+uWwLqyz*h%_15qM(>JS1zl-WByE3_4u*fotxD!JF3gArAdGI{!jn$@4x4fPd(OF(iU5> z=5Oo;Q%33>xYE3?9(t9DJWxC=mOL1e3v1f)x`Zo2&XtNLU_J}U%NV-JD3 z4zjN2dYnzES z>7DA2pZrpTHl&}z~^O+2{J1o><2u~%D2CC##bf?NF|BOp%a}7oOPKUPRQYBs>{Xlu&+P=$QR!6d+++`Uwy-m+;d}})Fx-D7q`j_xno6zW`f5$ z)Q(V8u_n@x*ov^l3wMPeDLH(Cjv~>9qN9T;=uC^Kb!*LR-KRdSwW&%h+S0D3lSKuh zV%?^|f$(hT5H|_Z;X7p~CMMm3PLpQ)hwa$HD+!e$6ZH>^QT|o-GnF0@R=7E^#L5XX zYpo$@Nx7x}DA1f~-(3b>dhA?8OwrgBv3C_|tyPA|*sOh5jY#GQ{2zJ6VUyXqua|A* zXw@1aAu@oH)EV2pHXmx3Q|V}cN2%AOo3?4%TCI+fvdH3yFK1}*f=tK;yC&;CSvOte zKrHhmg^0WIBtuMU*+pyz)?1H7CWAu;#4jKN&_Qh~@aaG1r z5IsCRocgp_E(cxvuRT!M5R$T0CDzk}GE+bWtD)#_BC4v>;bGtQ2D7^;afazi4A64o zm(Na3&kNTaS2CzX`;Hc7UdtEWBZ#p-l>n#XPUxvdF|lsaZ2Q=;&p!0ocl`5rJ^IM! z4*J2)_O`_hd)y@t4yc?>OTke1tZfh~GGuCI96}LC@QHL*yNXIbJUG1U znoIWg4o$@O20FrGm4AHRPPpGuJx245&DVScS%ySJP%43X_OOeEjZRZPmW>lkrB#bg zY%Q5z#Epm+h?I)hitKGH;qwyV4OIo>x@iM@UcD6ck1RxlD~vQ0l%}c~KvW7F8>nrS z$$Fje7M-ilk`W1%h+pzJPH^I>6y8F>@(Pz}a%JfdN=Kj{j47)^SA*b5QYHd(p>)j%Sxu6+Q)$NjB17o@EI)Bo*$> z`8puC&g(MX@A* z7D*F1G_S&e=(Gwz;Dl0iI8DW~I$ifeDJ@~=h8M%eu<4^Q1`a7Vd5F?!3#vr0H0ymb zv&p6awwOe5oY7^C`yn5{*6@45a6YR)#&I5OSz$S_o$&O6~K zbVaS1$t1l^>Ra)1_1+BRT!O{6k!zHr(lpd~r*ZGrtWDE;n${*O7dU20YdRUi?&#lj z&z5G34hHKpSFivaoaS!5o5?hZR*58AI@>ot#nNxqGvyI@}Wtif-*6)wpnB-C?Se0AuPHC@6~E4O&@*WGk^I9@BQe9KDm~I zot8)3UvDoL7hityjd$O& zy|cY{dapGoCT-oNn!e@u!hD4-JW9ghy+e}e{t!!z3fc0l`|4z1kG(m)YOvU&kZ4{u z6D@z}ADPQ*MwUWm(pIgq#Y0zWL&}qMnyf|cl9%&WOC-=R)P`IkEi#+iK{k-RtP2hK zGK^4@xWcSuO366P}GDUy-=vNqxwLSmI|48l;6(L!-pru&W=@SltsxSe%GPA#;? zmC*nmYVFMM-Pn_ingzHZYEeg0s8{!PHx!)C zUM>!h{9;aXsAl*kv3H!_&V04nJuI6QZUP+*NKLTy1%pf(L(90NDQpU2NuU!<8;hCx zW(+d;BZuH{FnmoU5XoEZ9mCi@6`>1gl{DmF<+*+q2bblSF<8ZwQWZl$^RNxG-MlHf zT->h^*HO43lx8zmfnMf;rij`i`*j?O1x=+}LFz^0)-2O=&O7_oSKe~nji;=O^{J`G z4paumHJaKHa~)djdK5twIDjIID99vNCL-F})^d{RQxAUnoxk^258eN1U8uIm@cS^h zN+cL$o@N!gm#92drKQnP_?*v*8HB2odL`w#W1B=_j$vcU1|er|R3zqkO|da_i-KQO zRMkH=eDCj7M4K0vqAJ#e4CD>1>5|k`teZqhWuVK*Naby#*e%*jPEFLbX%mUSsbbZp*jo@y>oFb7*>AQ)N*MJy^J(i-v%cRlcHO5M>8w0Q~GhekqEPZnu9 zVzj7Mn4)^ZC4kCmf;|iiQ^2GQZ$+JkV2Jb}avuq!jHQFUn~7}iZawwYC;#GK-}~T) z9$L%6a%Gtc1~zF|mlG>KfDUmdH(;_dPmNFLBA1y+Jq#hYNUNEO8V_ z=*%FasnV*~G7#)jP5B50oNCA+%JO04s+^wjMA4X`iwL)bS79hA6jXgckaeCZrhius8$+Y}IVEDJudQ37{b{?5K=wAjFjr64&PKiTtI~spIFcxKx-R z6d=+MYUI*xA;#1ld=MU%8=@)r9M_L7=w?qOiY26!^&F|AfM*jcw^M*atGZH*NG!5^ z2ka;)tR2q`f#tEPj~ItrpL@*Y9zj(tAQog7$K5qT1&a$3prStVIwVmP*+iDCSApRLk(T`-c(=nmRElH zvrl~S3twI?+hSqTG@i1XBpQNgI-8q4{9I{(@RA&E@3TrQ@*|Ni&f|NZa( z;GFZ$I(6e!hX>QttzqFXrzBWm#W+qzi`HNh%mt{4Oh~PiO?QYI6SpIzB%K>HkADro z8>^8jO-g^(ati333k8=CG~&*Yu<)jER*e(~cEipJ5LJDVYaiDrgEYi^#?{TPb8)w9 zZIWfM#LgTSNUFJjE?rT|mgFiaAZb=sRSwtIuDEf?fRWBg+%lCN2x=*mO{3D> zL(0E13ZC^}<-%x`5;p6iQWf5b>bGRn298TyX^D(w)z%YE>#f+7DHvyLqEf(&h43}@ zixw!tx;0P&mvQ6ZHA_rMpXB93bOPHTfJJDCV_S>~698ky|5c=`MjzG!tF2s#Mq@#x zmo1qA#qe5~0S|`Z+`*dR;xvJ7BBIOHVzJam9(e2nfBNB%eCU(UJo~+4$B*?%B{obD z8cBkIqHqpd)kqKub|$+LWUG{WWet9tO=-k9v#C#gtyjJL%2&PlE?ubasgCIhf_NS71r_9qYVoMg_yk+3qnxR}K{>lmgc? zk+Qf|OgxB)Fn0-nD?w|ZGB20Jp_HF>%oI6^mO~S&NN_R(9U(AO!Q|u7Exf2R9LC^y zz>>BO(}LYc0iUd}Ju6rlFQCQy8L{rCxn8kHgIJdroqzVtKYG(ur>@ebUAh=rWT>uc zOQo{P$tglwBCS=#j{q>2%>31~wdK~<)Td89_}Cx((|3OCzP}c=#lq*COgdmuX(wUm zL2V>8AS6JT{cFkoTapq{eeP{j2ECr)Y?1;7dt6%}-5z z5<3oHq^p3Ew~nwd#v6k_W|{*_IyxPJ6^8qBzftEHzEP^Dg3HRej{;XJ;t#e$juGx? zt%wz7sYm~Z1l*7$AQJ(eTYjlAo&+q2q6cRp(qn13^*Y7Mh&VF?h`PoevJR8WkcDMr zJtsDZDE?mnbA!Txv?5|{#ae%`@eii(Ps{U%(7k$@>dW zX+$tdlLFhbD;Z;qN;b1d7v?25A_3-E-K0&$dMS5eeCyVlZ11f8_OZYH)BpRg{_4*^ z@a*0Xws*I!D;iT(9n?a=O-h9$I$$E8#hF?ifNA!KD4{kdy{p)DH=MfjCvI=6X1@1- zSDzXK1eC~b1&5Rw!W>vN6M#yPAqQl#GeCa1O_ za4_Ni$FPW$SfgH#MnuT3u2v(Nt|(}=1gD~_H2vaCWsH#{k*IdG4o)4w?`bs|gOrA? zf`+=eyGog#g!kpkc!EV^2q)Wk{7~M*7W`kYpU}U8A!Y2D!JqGG7SL;C$j3)&7t{7e zXZCqf#H$vy9;+-7tsPLM*au##619FGzhY|6ILARriqwr-;YNjkQrrv;=IqckLAIl! z(%524_Z9YQ%YN++mj&=d7{3s3X6me=Qe$om(?lX-hx>=OzviZ2`i-AHwzIpxw;v#F zRAmlYTjD7;PiMeCeJZkB2&hzx6q!O^&XxCc+j6z&y8h66AN*JU^qr4A^thVn($T@H zqR45t4e75y#F`=zz~^A2%#0?Us_)XlEq|^84-{Ck}WIT zM)EV_X`23^u8eVE7XHyn!q*Leu6Cu~FQEcZbc`9g0mF&+nj74iG$%IYqlWfV)qM>^nsFJe^n#KmiOECs)>s{`B%D}> zp@QKkYQ}%77EIxiwO~uzVD?c0Q-Lj4Vi9>EWNT-&SS&yCo{zorpTGOT2R`}Sndg>m zrPf5WcN9qh0`UF3cuLwrq$(_Y5h4<*>8}bBBLm5@u8B&M{r&x=E?)ODue|3CcT9)V zw66GzL1;D5E*eXM<^!)9@g|K)yGSXAq`piBT?mXkM;|yJoUypBNG+}t*=BYix%n7R zj7FI^7vd@no7G_ghrvZH7H4_Swk00caVs=h$SAlwg8HLA3b@VSfH8YHKx6+Od=W_D zJv7RdJqG$|4U14I%gQun)6CilBN4v}P-Ll7Wbc2;76vV-?y?uKX(_FlRM>2BG|>v@ zzW!5m!29q|Hw#fQ?WSguUBWrkfyZoq1Qr;OYjkHptx)tq=HbbNr3@JGE43teuKQxN znjcvb#+-LrTUR{T(4<9Vh#s5K^K4`EENlxMiL*j>X(q^|DI+(po`@OiXtV?fZtm&X zVIj@tlJk&hYn{~tnI4!)A6@ClL99Z<|VjvrXqq>0gAdgJlW6*F73|Z zh=v(?exnp?Cc(&K=e@E*WYCv$eKB27Xs)evM}5d(^b*gd4mLZ{hzs>!8}XGcvEa}xwPZCX}- zT58kq2M}AXtG$v^tO}Y9lq{vK3oPza&EYb6wU~`jiOB}0QNWUFz3I-S*Fs8>S5)+gr?#in(#O$q=1@w zl4}Gv_orrNs$EpBxaP|1ZoPK*oa3=dvr%Kr)mllr(ydh@amL%!PVT)S^+oMOGDoPH z9aypI|MwMm(%G4m}o^1mwf@FyE2#-?n3?GveLtwQld%TFVWNU_{}I$L8?T_sX!*IxG&eJG8sXq{rR;+F+_ zs+V&n#P6*riA}gvog^9(*6MnZ;sOFNd)1H?o7);#EojI7gZcW=S!<>Mo-#!d5wT7e zhQW3j%rm&wK_i-^k1-%o-*AXkA|m2PiXswux+g}_)IWAH#m zGACRGNSYTn!A-9sVs4#=sk)M#5MSxKo>(eC4f$}AOT$y@jUmZIVx65|xy8-&7Wm?0 zCdYHh3q4lHpWv(px~q5?H+Z_{<-|Amm&oN5m>G{j_I!!bV=a~A46x3SV~OY{mbcXj zhe--CSzBNliI72LMJq*#h1tP2(0nKt$V;anLM6Qbw;$2W)x_RfFxXJ@qdPxluFkuv zVsa;ZoyB*7U+yJLiqbyo{3`F`!uKY*V;JmJQbz+2aNC6B4S_hX%Dhag6tFnj-xIkE zUzn(w_SkJ^497}bv#Kzd)zCeHijp+R?Y;6zgjU=s!nQ|>Vlx6%gJoMGt5mGGFekL~ zw%npm3B!m)tEdhXJGmkK6=UUquoI zl1okq3Cz6^oqKfZC06DoN@Ob|mtL!?X_Ic#iHlzP=AVD#QRtm8iBISxpcjYDlpQvGW2!(HRm0P={K!xRs*}xIL4u6I)-`Ek7ZMv= z*6xj&l;o-MZk;#ETlc%MOj>M@gxhIdDF{EF+h~X~+)&{U5v?ov(Ojy@Cn+l?l04x& zgB(=ye*fX+sKiTZYlfASK~aw^3?WW*7MbFs3d}m>NlYan001BWNklvs)7yU1F`ZMM<$~Fd?__NwvSbTR#`VyJn_k| z(wa=uw6nW?&ztXh=)(_x`>F4Qs+Es#6U6PF7G8|V$bgCrnfDyLj@F)E&phOrd1hy_ zTrAqIKK0bM|DXT;-~Y{{U;FvL_vVW(KVfU_hMCpwSi`29iW#=S(^kGm6!hO`AtYBA z5|RkOhR@x!)qAK2`i09TDokBMHfp}(l0{>mqgv37b%kNRZe6w4l%!hbW_8MuqRp1G z$jAo&)_(>2yc&&DpyO2Xa%#ON`$PDm`V3*Zu zFzfeWg^~O0c%KbQX=+tbO%*Ga*Z$B@Io75Oa;+w+*1W^dukL;CAK(Ag zuYPU0)0W#S>^jxqKw5z-E(BPsgTh24!yvNF;K(0S;BBwi45L2gQp945f&Kk`vwqL( z?|9wM-E+YOFWx(|R@2s!y&85TKl1to*}|z>@ijHxZ*Rr6H0G)d5+4UY5)uauP~yXv z4E#hS|Jzzh+#7# zyQ7;w#XIi1kLOatXfmX0t>jE3_AbCU#pFf1SktD8?lJ&8Kq6Br$t^YU)EQiZ{0CZk z7)AKNBi^zf1+9~aLeU~;!VNH~z>Cl#W=U!$Sj8V@t7_AwPhEy-#1>Dnt!xO)R8+Nh z?BHoV&_{=r3o%Sg!gWz!n$PS-vgkF$DMTaES84#0;d}f^j|I375(3QvNl#Dj=?(XuvsdS6b~lY=Wt!2NhFkn{~hDy3@b;;ded!vxmR` z-8)74wAEYqpEJUu|kE~D;v6e@gVD2Ot8#G&9K~Ho8FUZ_ zVt{9gvkibSah`)%Ea8akp^5Z(v$Hlci4)e5ELhlPwMHG$90WqOp@^35Erd?KDf~FQ zaZbR90WcyWru5xq__K&2fCqTPDW>ZBcOhmRC}|$lG>>SBWm_tr&zFuJNNf6o#qHJ5 zsE@IGs8vJa+<*w2crdT0#5HQI27m@v@QYx`V$zyf?`lmEYAZ{|)d5gkiuvThGZiZG zP8BtO*@M58%O_ubH?U-U#rvTQIp8kj8G;BC7(UWdTB*iy0zHBN^2_t%_c(pdm4=IEt_sCXE>vGtTrdRzQE@PM)zl_x3iA-1R(dB2hj z@cHiuI@zvO)lE2%3fMxQ9tIM)VkR2 z!q=or6|yr5n3xWHu|z3nOAN2YOXrv_Pi*eeP?}*?kI7|3uO4`HG3|Y|x3?E6K|c|V z>F~GZOjRmffxF&CkR>hS*#IFk6YH{>dl_KO0CG;p>Z2G2ta-4AN<%(lGKuc)?#i6U zK05RK^lyf6Rcuy9t%Zt37l}nG-K=SwXPk{|GRONk77I;E8w7YvoK!9@W&&pSA#k#L zd%H3t_{k9nTgX6(e6q36L8L{tfVFPDX>&s7{ zJ$?1k+Lw>DNhSqoN)`yDS!=8A&awl#WJ|hn1&A4*OarLF>HucYn<-}WY15>uzH+Zp zY(k`R8#RMuQmHWG!j_*bWT@)gd+S|%EkVbKToS?cWPZ_ub4KKrZUfSE1oueM3q&9irW^DzGaYT6yPFNcBR@` z?Zi8}fQt$yhg=kbB74ll%wJnfKo;?dU8`x=O2iL~*Cw0Iyjq3#>Xzccpi~(NJF(oq zZ5TGe$z^O7bQRU@y-%(6)|9E{&ftSJT~TM?{)vZ+WCG*}?N?U8P*W1d_^Q4@#rk$dH^bfRrv%Yf+Jb?@Ml(`+f6pbpP1? z=5X_s&wTBpfBeZW{N2|M*O!l<+&7D(fX%!xr{H$h6hf6F#>)z^Acq`~T>UI-8(1qj z#<5851x_{V>&^PinG?VBhwpjKn_s!N+UxUXPgf>0;`G#E4Vp%ensUlQpNC%-0Mzqo z3~%n8KFzaOOI@got$YqgOLg~1H|&y%gE;~BGPSn5v)5SMIqESmDio?0yN>x=(v1s? z8_aCd*5?`7wvVf48l-_EJlS+HNIRg#|++ z|2V-r1RHTn$$*1t!vXPLHPy{Lx7J$I)yb2mv?cWmHl*FqJnHgVB155ASPMtb=`qb%Uu!t0`twiUPO7tHy zkuqj6h7(z%Ej+Y7T%UjZF%W43Tj&~?2O=4_a+Y?+1FCq}y)ZfnPb7Bi`0>*xPXp_t z+*qu#j%fU|M9!%_W$Z1Tv53feKD=<@aSshr?}C4l(`H3trLJ2VI!ZI>A&x}cgC9ze3y?6BlBf-4hfCr(gBs>#ih%^>fn`czU7slx#MsC(`RjCIt9Ge zCBqe(GkzjTWf&Pru(QyB;hVJdN*uZ|6Op#Fva5$zzJABIH}m1eM=!kmjknx*^NU(r zi3D;wDNVF@^HFy(o9*!nk7ofGIqWvpEm#kyvJFZQ3r8Du96NdHp zIX?T73_l6@QvC<6YOvSvlys9TmoHs<;-bM@;!eT8Fp1s=}~&wKm( zr_Y>eD!w=*>j50ski()Q!J_h#OUW>@G)C|3@L+xM!sA}!!4!40P@4w5gOc#0kX|cSUAq(l1@Qw0UAfm)J1i z(D8*UfvmK&OotwJK@S6iQnPMy^5lt=r%zg87pW>ptDv(-c$9i(5{qb*mXe%S7RGIT zaPZjq#~D+CB|M=g^x5l2AX%G=7(NLHaQJXjWCr-MUu$azZG1X%X421t1iVorX zP=~6yiVyVg%9Zoy&%48ddnM%&qUK5(^hVccsugZ6)>lH`VunOT`f6$?j-OEF6_L~| z!y~P&nut97vxh(bmtXkwfBO7azw(`{>nnS^J2({Fl9P$G0ccifu_(?a&k!4W!IpCm z7*_%^G^N6%se2KTxo_5on;T#H?AzY*nzLul7JXaREs|d$Uro+tEa6!Uv>!#-s++2E z>GGvZkDc>1n3hVTD%dE1g1L=7FUg_agp{bs0XwHoo;-f`xC~YpImV(5r?r!z2)IzK zOz(&Yo>LEd_%+ zFlm_zFT?CB`Ou*PV;|w(M9eN+cznIyq;YIHS(93&AdF=&fd)Z+WaS>t9qf`+!$5Gm~Y3IIaxOq*x4->OYRt9ZcIGXq(eGLK&mQ?(T zDCLL6LM{6v$>FMu?8YP^T)uj#%Qo|qo_zKL|KdFl-v6_^@4S06Z`4Z%ma}8-E{)2; zc~Z0vI3Iw7>Q+pmz)YRo$Zgs2j5ZaUR=ZQ1rl0)yr~muEyysP4_})MMZ{L6Ot6s9R zyPDdn^WE9O5fznYI&1GX%N(6A{KJCR8BeHW*{_U9M^d5XzJ*DfHm&cOiw9e1yh`&5 zvIbzA*c9Ii;VKVkQuDYw@kT{eCKVIwvx!PfpPMQ+xtRENvw3T5pr8GfPpQ%(f9$SO z5rNf(4$2=Qb>0xotGX-{K@}c1h8`+hhw7i!eEBg4->i3(Z!rdzcDCr3!EcS06+o2wMb5YgEcATAA$M`Zn(#64f@6^KDS52YC99{b7ZD&Jl)g-R0a?z+rfWJr0)yS zETt%cj;>Ug0cuDoiTzC_!NR#JVsS`2jZMvD3I(<%+G%{~QdGp6OkEG1mnD>*E#66h zsQ?sI2TIbzP;$lEs7@SP6YI(s`&f8HN-0L-cy2iA*RkC9#0IQu6W`Dl-oRfk5Fpwz zjOwB}0fE7BgH>H>38k_meEek=Y7gCG5O-qI(3BKqxYDN0;dq|s?|tL@AOFAq=Hq|% zsYlMAJAQm`_t`4s-1wNXdJP)tEwgd zgqG*1%18Y@V?lvU0VK_EK)CP#QA{*Z8;u8nq#*G~p_h!z&J{7L$8kP-McG9y-lh@N zM{6pgzFZ{`5Mc)~T?bbWPr<{d0Ylc!Ezy?PKh$3}C$)W5+TlmN2RIo7)VQf`HvmTC~HV02)D5^O$C&|sv<*Dw3F~CAZY- zPf(Q!n{-aK{DOC)nB|}BJ7~$;y+Bs!4jOaTunCtCpk4#(LJ~26P?Y*s9^!ocG!vEX z9B#gZ`RlF<|%&N)_ z2aKChUcP)vtsy%im;FY#QWImJ5?kyrQU-1aor3LPxH29xKP4y6lFL3>kAnUf+z@n@Y8eRd4eJdeEBD=-syEOLHHcJPt%INfi+e7H#3H@-xy{opum07S|N6~)J3FPS zYG70liWonjGQL5^8$YptDtKDSPU1z(-;E5oob@%-t2@88sDcVmv{~SAgYt%Zduhf^9)e zI3)MNgL!o9)g16L$1PRQ3YeK`d7CROFofMjtT9MT^ic5=YlG%E9l^&baa5*#lB3X^Fu@;si!qfG)uD-$%CS*Qzg zW0-Z81k+;RC#`IVq)ff;y*}KuslEL5H{bf{oB#5oe`CFC9xFxy%hZ&GbE*UlVhna= zw?2xRR0MC~>0x3`%B&SIqwVeQc9rja_ebCR_Fdok+7I9Kp4a@^TV8$5wP!_}mR=pJ zMPgjoaU$aelHf@M>G|Z=rwWuIp@e2J1knU(5v$w#AT+WE1q;pAjXa{;F{YIavQXhu zOyuYY516kh3Y;MWriWDOUK%5KWC)j3N$MbyQa-_Zk|mg1;+kG0O`rt?Kqf7699=ocEA7eGxy(p@9|T6`zQALT2z|9 zk|jo*(hG)^?kb=UC_FrfCBO?J^U@He_&#WrrcL^0v)SLq+y7N`_(bcesrL zz5Zp_AUK&K0vL?Api!blXl2wIo0LI`z^IFM3g$W#X-q;pWX8ikb%5BoCOV!uhJYu& zDylnjqGcOk%K(qb#*D8}V^tAZIYlMPONs{@gaa7-PWZQiDW22UHxa0@RHSf)-hcY* z)EE(I%H6mdckGMPGL`kkuVDByFLD zmw^>HKPxH%HC)$YPM0@}LdQNTh>4$Yu^ zMIv}`ZlL@SXJ(md>oF1KgNtW!({mgW2RO^ZRymfBAiyLDCX&2TkN<>*^3|OUB z%5-HCKMV?5Lo!_wDpld6YFMQvy@W$7dQ8s{=ox8-Nm*%7y)nVEj!@RN-0HNDVzLAGQ3C;9KsC`NGku$KPbY$!n&{ArSd}BF*5n=ZFB4!7vfxdu zR+=LdusT12wf}`iEB02*26IXgXM)eyrLfh>to?h*k!T!aBq z-T9^PbCEf?rdq7fuW#ml_42{>&wBDZKltX4{>dlqy7Q;4b#0TGm{<$(1_@~mATT=j zY$aU{92U^043+#1!$@Jr;A4c`a$qXbTASM3HWx2l`13#c*x!BpORsJgHyrnzwHDk@#@f^~cdHdWT_ zGMtB5d1K_j_AI_~T+CC;%?nb(;+Sk|>?LC0<}$*lZFo+EE<7NGx(KsUk~Y}7As)_! zjh<>8F^{q39fgWn5n}Nr8u4uw-8iLcAe+Nb9GFzKPrLN-HvZ~=bc%*9Hk_%1SIFb_ zpyz60SmiyAh%UThcg_A&lIqCo=TUQIVN9o0eXFAOKUuoZxIfIf7WLy+hRr?JOcoJF z+0rj{Kdic=hQ*?Zg`{&tGSrp_4j4%HMdEzdg7iK=bl=ZE{{Q~%7e95!L-*bPzylA6 z$HZAVOHHf!*19#wb5S8AI)1G$y z+u!$w7vA~;n~e}|p&_FnV$2j1xo+f@iDezAm3fIpL|8%2FeOZFh%7*K7GPHr(GIR;pjD-a3CU_(&v3xlPQXU_4E!~8< zmx#&x;!y>N2=gqY>o`n`5!^1?6j3;cfZ>&A>xAim*6HUV*6qQeu?4UjMu;?f0A}75 zK2hNLtG0-gaA2Vuwf`1+ts-KpLOAB*s7#ifF52XO^i!B@G~tPWLicD~)x{;zX_Xa7 z!;tzwKEp!VvPD~2MJ&1%kkL{d`CS%x785Ds9#^RaGu!&5C=C4&d|MDaB-k3LAh2LV zX-6}`1Y>FGbknq@6r}QyffN!_m$bye8*R(0C>C(dHN)amu2??L$5A-}zqjVOGVw8V z7ybn^nwsdW4h@Oa0z5^PO*q402=a1TfPxbd&EwMCUNsIDU{A3W*i>bn?f9`{@BOE5 zo230O|MMRm9vv7_&Qol60N3|DI)h^iAV>IdFI|eV8MW#R%Kcks}C_DD2 zXm+u}Mqjy|&%DmDU7~w@#gidPPL5 z1RY&kd0E2f2N1oNQ$8YSF5Wi#(D)xX1Z=}@SO5SZ07*naR9i*J5=v4k)c|pgGv^f# z5*bJKQ-^?%84V;;)HjV-xFJK;Y{4QC8z;U~$-(8YQDY&TGeHR0BGX35M(c!97FgeM z)u7jXe9^TkqBN<&>f#pjL+{7@uhh*jfkf>t5ej5h)?P657g6z-YIp+?WH+@Q+xSZr z32S;02_g4kTDTlIp(Iq$V&SwlZg#hO?t1XsU;gelzWA+A|K)$a@BaIao!DLNOloQ~ zwAnEh`|4;2oEZ!dLfVD;4Q8oFtr3LHP8=9m@Y#}ewlsOWdT_9()9c>)n)m+RJC7gV zJ3Ls6>S|gkbbJ);_{qSa$kwaUIeCOy2*5sMi!Jqnv71RVf8k|>yWvklh=^!e^R$5s zt-tj&>|_IPRGI9Nl1u3L#PWs=QP%%7ilIMMJ~2lnJC9Rj24`78T9o z6C(~K?TJ4AqQa8ZZ7V@s9KQ=XIyxL~F!Loq13)eGK0t*5X=;l>wT*vAvzf~*$%>d& z0bVIz3xX;I8P|={at`NE`Zg}GLx$Ki!K~sf%-Z0Dqpcy)AMegNS+EIfCe6IQVs)-8 z&5@v%N(r~QMG7>vkl`Z%B20Mzn z(P)Q6i#OrmL-jS@aVc8a&LR*%hGArA4GL0&^4sE+?mW5&9pj)UQ4#CbMRxaBx4re& zzyH)%zWL?vtmnfvH7aS?c&_-Yv4N!KSz=(ZFpTGIVzkc~`uYdV-U+~(oX>9IgBbn6v~jQxU@f^x0nRoF?dmY%6^gAb6n6BS;B)!`)O$M{LC(OX`3sz{%pH3#-X61XnukJ|jmo+8smKL2t;KB1cgL1GhYq~WU6LG& zUq+H3QjZ;`^ey!QWWeweJWJ-ndT4l2zFyY*UIt&1LfFDj*}7^V-~45;1^Tw&KOZdR zx=a*KnFARZT!D!pfQ$lkwo13QYO857>5reg@Plvs@X!AEFTeh! zZ(qK0VY6AEK6_kR(+>Zj=93fk9mGcCq%A3HoCfKs!6Q(^6vz;vq>7lba*ft2^-)`j znvI#Y-b`+O)h+M--M5{&=EQtBJ8smxexbHfwS0l!X_09=aMq*Kg<@mcE}39Byw2*2 zErq+hA_Z6kpu;Edpb&1uS7~Os!KJcG7z@DZYbn~&6B05_6q&laTEC%d?5cHCqyDCJ|4?(}jRnm>2u0{5BY}wB%VLh!Wp)(olB=#Gx3@t?$;KRu)vp!^l6I8$X&zte z`)LoZuAlUjv%mM>ec<2y>-P75`=!-xU#)gH;cLJE?gUd-)U_l-ivWqk^>0j+#Rf=? zx;|UU>5_pEz@JfB*R5<@IKs zyY+ZSw+6N=W{(rXt43BIMmrwD77_3i&X(Mm8*K)QBut1-i!aM-`QBF@J}* zlENpkUBx7oA+=1^uiQ?<4AyI)W)|IzLsyHr5>MD+CY`fl0di*K97@4`*w{1}TB{i*8)+@YUGm>Vh%A`v+Vn%)^q0Q$CBOS$ zz3(|U-LPKwxp$mr$JfqFZmy$h!D>F9oi$wU45ml2m>XN`UYRn?!1`zrvJVLNs zv;=>FQI1Sy6$tZ3#c~npRPq4NWuUI~KxYjrf&UC1gzGx02p|bxif0rA(|QN1@`X}m zr2K}j@gU~X1=ZC3C^C-Fly2P8tfC?-0+tr%P>Vi8;|u^6QybNn2_T%oOlG=qwzLV{ zR7ZJHrK)YZm%*5EIVX`o%oejtQ0mHWCW15sG!>?eU=AJIW@MmzIzX#8c&CX4Ind%> zMn?HBgVRtD07q$(XEO9oefHUgGPm!m2@MlIb#!S}xJD7DI0NkA3w)9o8W3Ti^Rj4_ z(V;AJ8Qhex6+_WxAd$dGh++#!NCp(e*AB2MV~^fjz^JvXkeP4AbeT7i*+flme)Wrf ze(&qePug>G{VV``oAh?(U!7`Scr}@v>WA^3qq_c-=FuJ$vn`HcdKB-bnB6s}`4N3~JR0*9I>DS#A(&LJils(fOG1NB7|3*B^xyEAQ< z#ML8^gC7`b^n!OigN4vNgG`tMjP0mcr+GM?1~mr4EBp{fs0ttnq;CF75bkbo%*u|a z;V+}!LW}=XtU`+WqEAUsEkYlRjR7qjpg_n<$;jWN-HRB&3JVW?F{G&4{r~)ufcBk@UUj~D6`q?J-=%ub$utmS(m=!D#xa!h@>0bR6^o!E)GBY7u-Uqh2O;C~4A^8lz(6WKbO+ z{6?2n!{y5Hu=eVN(ZCQ5Lcr<}3sj6WlcQBLHBmFpM2TfNkRBo}Yw;=lYZ(cU#Je); zQu-V|ui}Mqm_j*1Y{&tIJ}V^(1jq0N+?Q36q>f?Yq99jDLK-c+lRk+6M|>XWQcc%` z>J9FJ-VPSN}7{VzfhLJh-rBGf(l2&JO1w3MlDBjH7)>k*b_V$;bd-(ic z{JX!p^T&4{JFzFSLQI=u^B#Ii2Yk(c4R{b!I>T~3&Al2Nl43eH4Z>>>EoUXgbzkEm>ahpxBTN`~sn>UE2ygZ^9E`lv%uwqQ$8MsYruW5p6X#-%3%l1nR7^6u7Ah zk;Ky2M9Xdmt<8~%=Iah%0d7ex(jkNTRi$$eRrv#dm@pHXfjHTf&?HWiR8i|a24w?g z57-6OF)IUb)o}yIgoP*$Vz$~ua1p1Zk#ZHh(oP^I8Pr(FJ&!EVU<35E#DNs1!GvAN z8GlK^?BQd=xP|W5A)MQg)Z#Ul0vl!?umG~mh3I5Nc(6f=$q0fTIwAZ|cN4XZhGY$( zP)dZ75i?T`fw!c4Nko^ChUyiC^AINBM-^h3`zXReLp_Y5eCq|v;3z0VSrvYupiOYo zqbq}6wDRVNN{O>Jjq z+L?B&i`pb2CcTu2phpJZ9^b?oGN7}@T}Ak?j<{x&POkSU$=B$Aa>hVJ%yeqKOSf4z z>t{dfS#NyT8(#OWSMTnxu3kQnk~*kq?Al%?)ud@qbwoNeKsepRE%TyR_-Mx9xrs5( z#8=LH7AF|fR?0QA^g+WXWsM+;3ThTFeM5{+JHv>h*@g-Xo8*jqiIxU1#>fM7x?5Sy z_zSkk5NN?7rNsEXkGcZ_-Tdk>4eclr`{An~CiO-Z`cbGZn5Im=&`gi1GgMZj)GsAc zG_H5GWWmruj5qCiOJIQ-iYl+jKx$FFgueUf36NG1Xq z5c)v0Tj#k=f>pa*{!>tyJ_$gp_`l_i@oSiFD@(SN_xNcz$QNDhioJC%^Br}rR3XB5 z^Lo`VGDc&4kBznIL~R@71Wg_kk~rVcPWpcl5p8C(3j7rlKS-r=&ZG9lmgM3HAYVh; zMM_lQy9IT4S3yW;v+4WC_uuxxH(q%3!oz?3$d$t&HL3_nv$1_{tsEUiV8c zf7Q!wc<$4#yZ+jzKmV!w$98vjcU5(LICq(?Gv*f)n^?>ydc`+oBU8kMopZq|97!?a zA|=U-X>Nm&$NVFpJyazsQwcoPYEmx{k%gv*Gf0qD*NKKZI$QH2U|bjCOil=3t9GMB z2dPcNN5`MW!!yvml`4mC>aIJYvZ%)4jg`5$GInWMu!WKFG(m%ct4LL+ta#<8rXp5p zPShAq<<2sLvyjnzAF2Ydv^0xE6$PrIq7=R5V!Bqh7zHIm_!!6M4CfQ$tHQ;lTxewq z+s`#30Sl@ss-i8t6UUu+CnDTtUn-)>U*WJ5mjpwNG53Itj7n?JugNyTCwgy+AOtoO zBax^Rc`+drFO9Oqb)M!ZP(3IHu`bcBy-XQ6KikgUj;fgTt5?@oFRkzX{(YbN51;?> z4}S9VpFRAuhaNgOJlNUa-9Nsks@j{|cNXC(6IfcYDxR;SG7@ri=&{IFm^+&wxRvyVgd|N zSaH-6f_QKlVZJI>$LIG@o!r-@B3NACP*H#kacE2_mDfG4sFI=4Fwr#6>d7t9edt3q zou6cA1B9!too+E_=)sPz{F|thax8`2j!rcLkEGdnd+HM4vbtDSf0*hF3X*>mq*w7| zfVP(E=iQ@}l7qv;xXL-=YQgzYhzn$})*5+K0fK@pkQWBqf!vISj>uNod!Ch=?hI6} zwuofef+#643!oxhN^!w{voUnCDpG)$4qO}QEP>kKvb6Z<0Rn^ANSbwMYU}Az!r|JT zErwZnYG|qguZ50+JNb5y@pzbcKF}+V#BzxnEgOBeR`cPMAK(DAV0GB>0}Noc== zs!4{+Lr4c~3;Urtu{zijxC)#@V!<{+9D$(l!H{Bn6_&O&F8vgt8R zto8muV`%$y3dQw8mt|2&$!GbM^HW_9q<5}>Rskfbs5F1$I%c2-j9oa1U;G(v)4T{? zgeNtPsRrJFAT8+Sd`O;($i%ypplEvJjG3zVPSGBBRJwKRmm@zq{Iu~R)Erad868R- zX<5{gW5+KLb}N$@;x0lRL9H4De2&j_Ksn?4R_WXxftCiw?*fVPhDD4YTq~~+PsAHt zWxOsx3Jc;M?)x6}V5rV3ab0>W!AjkZcT!q0s9{7(;U_)3&wUGnU>=M&u!@drfz{xu znpih~g`{cIX_}^KYLgxu9$va|d3|tr-<|h=;S+b<^W*!@ojZU30}o!faDKMFvs&#R zJEp4A8|v|8WJ4Mt!a0y|Wd0wgm^d{MeBwC5+ySJLv1tl|T|w-Y1JghKJTvf zU-4_NeC>N~yZ(kJU%7at2BlOAo1#hC+IG!$ zs>YgniOQlljv)q{hVlj=(D-T$lOnvurx;g=1@M_b3X55u+dvd3Mue?I)o&C54f-46 zfCVU!6n;}V{bRTrdR1E?6_f{5tn@bEqp4)!sosY_MpsMTB%f;34@Ww@-6+L7AcpHj zKt|w#_08etY0tX;gMWB?-`Hn9@%eeZo>r4Dy3#U>A8iQgG7{{j1dMJ?Mlc#Ft!;^< z1&Abi=lCla0&_)7%op}dO>A%f__1SVVrKU6!$1GjCm;IU-+k`HiBr#h-VHB)+4GhV7Q`bH9NoSsXYJYFPO=>1;Huv7m%&d14wOO>4pg0)a-KOfaYaK=olRRGt zJ>M=`nZyg=j;h+YA&d_XB*7lY3Cfq&q%=k|YYpxOZ-2_FV0t+!}a-~Rr@d&oXm!G}`QZbxT8}KH2#{$@d z>Y_1eX=!pU-?C*|6oZOD$SQ=IXtN%B;>e?;epV4IQdD-Z2;K;u4sT{M>>y6}5)ZpJ zEg&;|npx^jsA%CDv?~ZIbqbhFU?O{`qgxEB;6WWE!&DsHBEy^tdCiS83e?xu zR;^8~sj5x7J~+H^;nE}bKl;E=ANu*dkACltAN>5GhtFSl{E>$ry?F7WHfhtev$r#K zQEhHfWgmY;B1aS>D>-meKGkXQ!eX&XKG$VS1j&3fS}D~}ssl@pAqz-QR7Cr{p4H^n z-~8%-^54Jjc`ttMl}lHxz4{KR`H8XEe;vb;V$~OsEJx>98%|f!l=7c z{j*$BxlI1#k(-c27I~PnL%$HHnn-|+w|AcMLTs6jkESS;{P z^2tJTlctFxC4`~BbJ6SAWoi`s=%BY+2VN1=udg8DEW(kjTo?-68u=zs7l8~cgi7JK zg3whbzz;o1kxj9Oake!BW2KU5(VpTP{8}6U1qe>4PM8=WpZywlTUl?*lU>qJ0U z&-=hf-hJ-e`EP#dJL~m&wYw{I^p@PUY(%Mtsj2WH^hX?lQpM640>vY5E#~G4XH~oC zqrNM$1#MlmHC5Z+Z6>zfY#w{;+_|rw`|6kOIC1j$?#{6rp7YFGZ+r2xU+~Nmr%zt{ zOV^w}duspK-rn)O-QC^Qj<#tMvmOb-9P($79sb7oY;fKX{=k7MgsLw^9dz-wSrswu zV$GU1jia66IhH5Y0aQwM8S7_7Z78tEmmXO+>}_AzUaq?#JPW`-f8b`SV;NuvZmCFD zO|NXyMA`)JVr89;6~vHy1xcxG;Oa2#r=yPhevvSNGP@NRsjB`;#ZvDmHE~!{FO>uY zElG}){>ZqdO>L9R=5!q61gN`tO&RVBET|%=0dRIwBeMl_z(QSw$SDR%zkq^4CjG1( z#Iq5EHdU2w+Atww;Te*y#rz`BOvMXBaf}G+S#+0y%fnk3N=>f%7SWh>i_`0@XK{Fh z*lb10%YVRCHEGf$rodE1R3iy(+O(|0FC82lTsgdW{?f&Bk3aIzV~;%W z=#PJJ?@#W$`|`o1M;|$N@$n~oT43kcj>ci+s-o6AU&`V2h+4`CC9+BvM#A|q)^k$A zUdPC?^I&mg7My%&0)LZHWT?@Z^m*QF4mUU5bko~^`%S-c%kvK}9rl@VQPwPhW24`o zB!he@p+Mx{sSRmPAvY8Z)7&zB09!bjCYBNNoodJQKNr$vDkzl z1RU_upnO?{CPpW1D_J_(9_gQa>g8)KNadur?Xv97*3q*O9IiytSeGu(j$)Aw(;zV%u8U8OS~IFVa@Z^G4TG zU0B@Th0{*pRe9Zpi3m(BQ|HhMoFn8^Qe!kr(93)+&=X@aUSRaBZ;e-J?J3QF@%1fX7p+CG`=Kl3NzB8}aJG(n^ z?2kmu8z)rM69*++khd8XZp`e(XblEktAqi`S=TUn71j!0@Y>(4yt9e(I#oVEyrG!GVRtzUk2urU-H3;)|ED42)RqSmu&x19Xh{&wbky-4( zHh3=!|t4Yk} zd2P^t&USLL1*mS>QzAraNmT-i-6399R*5CYw!6Cv?^+zVO(Eb3c3Rk)NHr_}Jykk6%9j@cBm`dFzj=M>ux~1TsMr}Mr;%GRV%QSuu$e9+C`S<0dZt#R$l;NLf$WHWDOQ8gm}zUMMK;w~ zv&wUdWR5z!jx{os1o0-oBDlWH`@+Oak{pZ{5$P%VFpE^2a`P|zu(Y0Cf<5tj^)^Cv zs7l@>4-pQ+Sl|Sg1~DuA&mgx@S=ES;OCp$wrH$51ICJaUK}*|kS9Kr+Z{Z=li8nIHFmy(9I)hwr*PM;3 zkRxSIN-~5;xv{V%?2qLOoaiqF1_RUFnXC5MwCgKh|I()R_`kYv=l6d)Z{}$=brwQ- zg3Wk*o|$B!s!*yi!ZQUMb^rh%07*naR6=76$E?(ZfJYYksj=<29>6AIJcg9ncNvf2 z;L^ZbpPBPGdeZ6GvB_8ZY&KoAKYro-xyQ~uaNk4s-}m5|Yfc?Mc5H8NzfG+*op##1 z@#8zJ?Mx!p`>fJ@pBxrUi147y5!p1{aPdIJfJhy^f}i~&7LKts9AN|bv^rYgTc+9R zDh8qEELhM08K`u{!ji}?;p}os)>Ax?=r|`($*oub1e+k^vTl~uTj{-f97a1B?0+a` zfRzd+kyN8Hh11a{Vj5?acvZKx;-E}gliuSzfr8OsT^n3d;$|76OS7w==wc}C_1^o& zk5V-(FytVPghl*t3BeQ-B7N6}1CV&Y-@4c|wKh$Wq?lGu;p8^23=~hD|7q@YS*oGL zxPr^ju83@V%=AYEro)$vZ!Pzh6jw zp_z3gSgK81mo8$~rO)#`cWo+NThl(9ip=voZ|v~k@Y3bW=g*zHc=1y2U7M=tYG>72 zJ8|N8zE(ukO!_=?dYgEgR9P7~rfkT#GciPG~(MQ$_Y6wL9n!2NB(~yj|uFmPwjBsKtv> z)%?tyqsFX)w0hX#L2s=JM5&BI0W~=@ly-Sc417gl{;;YU_l&5)3P!k@x(|Q0;TYWbuOW zi3L=s+BrLl$E=-rH&NGx&JJ{X`Otx;J76K+QIf1=VxBQYZik2p_(2F}t5G%sA1II# z@G_BO!8xQIuYawx)bXTClJ>!&(FNlfqOaa!5n9y^V(`6Nza%z_j2B>x3|(BMhGc=gcNsF-P*m-odKiDQaVWX9rdU zh0WhmCXre@>myQ4$PP!OIPTQb`r!-`5g9j^1M*2z)pg)~mEjUufL)kZ3F~18j$W9u z2z1Ed=80;h1CC0IL@AckQXbFTO>}zMZ7=yJ|IPdVzd!o;_rCdqS?1PSy5yon0~AFs zwMMN{WD-wf`li%6+;tdq7YHA~!F)(c^*|-rZG2T+QC~O^6^k`OrqWc~&Q9FAvobMz z;)zR-U%1%kZerGZYZ@A2*2Sj4lVDF>w*zpl1qn;OEIvm;%+?b$zp~?+&l7ZxYKD_V z#x^S%CRk1!%!VJ$jC;I$AbK1RI;ox%443j=DW{hE{&jIT7^ZSGbB?Skmr4duEs3(N zCy5B%mK@1$(xMep)XUo#+Nf6$v;`bS{|z}>@e{V_&x8>JHKv|fmuNP49$Cs!Mn8+> z{uhlbt1;Dw6#y_oZHrfalz>&Tq*oZl{#XpL=t!6S8_)vNEwvU^2eq&qI-W!dcnpoN zLNvw~hJd9xe<9l4a?QZ{Qly1V#U6mww7a{fO=HcLA`5fp?AAlqwym*)P*RRKQ(q;3 zyJLg*l2KBec-YGVI^i-fUM;-K^i1I0y(QD$ZDX5$^DQrX&+okXjko{$yq@PZWAfkw z4uYaiTWT0>G(vw76aDYa0RMj5B^0uNT=1*s|I*ug*Yt58$ ziyjr{vr!0zdyarDBV;;J(!zXv4!~$GS!O7UIdZmKtHQuh3`$QShR@3xv z|JU{RzxBhmtE=6e&aESH{KF_YR}&mgq%7ZK&;d;ZqvH5vK!#G#4rvUAW#jm9&HrsI z&|}b25_JzyTYjsunx<)*WM>fVqNlh&osFny%-&{JFJf3%i6_-k22=+4yDg`ud|x@$ zwtiWWGHFcE909DV-oiAEfDN!nQnHFC5{j}2?2h=9k<=VmMT}?mC|tTok^OMatAA6f z8q3Cy^uSVyukKr{4nKz#$xrc(fwKvx@lJpgL(OC9S}U6tg|^gf5jJ1`{6!ySsIydn zGzi=JrSKuLRFuF_2wwIXj}C{nRWEP^0dYmC$)z2abcye*z{{e6t>43=TUCq2_=bl@ z#HvCiEz)eHfm4|=v7N=cQu z@*UR|%k0t+h%+GHhI5KX#g1M*2I3n^vd9s@B;B-$Pf{TcFkhOIQp5<9qZlA|G;Dx* z$dRtAR5*(p7m3%uc-OI#*k8dTdD05<&8nT*NKlOg!iF2j^5zkrA#RA0A>C0?jD$mp zm41WP)`V*t+w0&Q5EnwpcNG>~sXlv&g+@g(vR4cVSFH?%1!Za@^gnq7nRBvxh1ANE zdr}!aVuqeoi zOm~5~Dnzsd-DHvupl2hdq2&SHQfW0=Y$T7mK!b=Koa5j;12Yj!Xcq&)6j{Z0tLJj~ ztd}l`vLH6+KI#GIITsm<%RTw7JH^`wd-nJI*?QAgtM-aF-ulGF%YX52+V{Wzqxo<% zt#){KU{zs=P&J^i8Cg~jaD;fPT*1fWGiS+)d{c=A`rYT%o+Ze1`>QX`^|P{631(v4 z(cW?_1F-?|DrRQgw*uyg^TvI)jDUvm8MHQJk>@7DpnVi4-r? zM7z|Z!+~^sr2^78Ks%zyCR*mJn&BAIxYU4!G%biQSKH`dURlTi8$@g*EMv2huO~2o z+|iAQz)NB~HHWX@ybOTJt>Lwr5JX0xwPdcL>p)d+g~@yRSC(>o^Fvc9DZQyFSFkR0 zD*MvH%z=W&%8p=_c!Duz8Zv3p?1c?+DuMsR`!>p~yH9I3kMFz9V*MpAz40yYe(hV| z_oiuT>w^unTeH>SR}+!G<p%^tI#IkRJkhbZ_ zi~+NX>pQWv$UPg0X;P)EjRY8!TKzgs8il@US>B-u9~RwHxg!Mw9cA7uqiO;w7lkgEvn1dR42sJb6VLTSte3V> z7*)v_Ui&(thN5L~#|8&clM&VwjanjEm!Q3q_C5^5qt%^D-1-(qGbhxjGriYX-L?kXacQx_?Z z1>*NCQu1naX2txKNmc{|OcTu;nN0E0z-*`>Z1OG!w~P?+FANKgZD0_H=Yh?m=K+hu z(S>@M*}R_j_x9fMo3Gnhwg2b;+Wg=jek{6K?d;^%MvqO}!cNlqg>%ED+RsrjDjx|= zRSqia+;5CN6i(IWl?EM)_)^MbaQLKL)F1G24UqK8Ht$(S8Jc_8x2ij;jKw5gAhZ}F_a`GRjW5h*(u2^ zwoo*)=BidAh|F)Og*LQfg4}UHmr&)XnE6RUezDu24A7IRGwD}M#0TAriIgXW^K4)f z;Xb6J>AVa27O+w*t{k`#%aJqIp`76cjGbw+_5T^YE1mZ!l$%ObN(uR)x)I+u(mD2L{>1_zJve z@O#nj0BFpI{M#M{8N{@{9E_`%x=1tY67?BRSJj%Rbc^IGrcDF5MO!$4^0qk=SI8+B z^8ya`9MM}6F~EzVEhRp~5z|){bO}6-rDkUHl}iWDdG-x&x&5{O=p(j2r0AiPLbgihU16?{;@*zmUZBc2qZam63;euqr)Q# zuck*$Ur?d(X7!2;i_8X>nHK~$s{x_Putvly&Kt;?4$uFy&ey;Ae>_8JXs!Ym*|G32 zyb~fHebm4QJf?A0VO*`byE%>p8RoCifp{9gBy`#HR@B$k$03KK3s_unsktkd9ub8Sc z$)miBUz8@z;!yTX_Xc+|P6}~!sV*Q8A($e37@v~393UrKB8UeIKE?f;b>CU-zUDV> z`>hYZyt(ckZ(=Ilmv)dg z;ZN%TphT}|$1|@MZ1W|qm9hqQj(}%6><==eWij8TBG}&@H5*O=QBi}GTA5(#<)?MjRdCT7cYp~Fu&7dhJ>e8;Bl4?}ueDVGG?~uvpQnaOs7;`*n zgE$sV4)|6qE$$ghd;zA3U?#=WBv6+jSUUX#*M%yPgcM>q05uR=7ZR5i6QTkHAGiXO zts?@oRuByX!gnyDOi(l}J=8HrGW0<22Gp_ojTYL504EaxUWzBoY@B#X@>|}T!5mnS zl|1Jomacf4vb8%Q-fBZA%?#zftf++~ z7#-4*g+u=S&YxcH1j;*}f!+cQ<(~mEmXwxXiXdWMjTQ<{ z!1lllGP>YWd`17OCL){7eC*hiOpw;_ zCuj{o(Pe&E4W*8?8lL1)Pli&vW%Ha5->MGqHB|n_PBqmJWC`}WG%U# zMhe2=|GDnaz#OPKB!ziCDwFd#((DYoEcs-ED)>b@y#mD+LvEs~+Mu#^>43D69c5;N zp+VYN*=WIeg=`A!1!$lklP;0cH%9i>Fgc%D7&FHyR7k3W^GB)6d+_Ksy0!u_))e7lq%_e5O8b1>8LF1y0 zBQB@A4+Bh$74g?Acxu+QZ~Ery<@M8_`iyt~&f9MP{db)_y}v%#bnAg6g3<;a9?KSz ze+-4)@%KU*ttxF@@eiGTe1=6BqybCRT+i{oMKTl*<$3j*t-=dd zE-u_Iz2-0m*c1aAPS1&;L>j8qG$Zq33>m8`te1uqQKSV=Tgem@-crR-s9^T$CZ7Vt zZy3O6eMNb;zFT}8S`-!{Fnrb$B%Lc>J|koJoc$G8$Vt?48CqN)R<%a73yzmzBpZj& z*(FlE68=yS70lSff)M3q`MAxO$K)aiW7(55atKnd)qzl+oRKmu zoWd=o5a6SX!@A>A?2(VhtZtF*B9Ty02F4m2bRt zT1_AS(@%f(3tvB6AFQTb;rf|4yGR-!xDs9IRC>grqspi;>o&81cM_i|azzgvjUO6p zr2}%Pbg>}El37W#cb3O22l%3Lt|Ef>Bb5@e79SbExbv&aYhiUJ+G6tBww|T~38J=U zCAJu;QV!_S+-GOi8Kt?Q*pTp^Vp5pta5X#g{fuE<11p2v#*+3}(yM5b+K5Fj3Z6UP zyl>X9oycS&h@`lEW}pYZ2i~yzOmLF7g)!XwT$mb03JGkZ9Ot`3PF$1$_7*16HjBOD zY3?jfn&5pBp$4TGn7?Jy4v@=T`#FNb1-^GH2M;k5I+B+I&(h5alk~cpCEFWjL0F=( z%aK#m?LX=o{(z~=KBHCIAH*Yo)Y~uP673lE* zZn(I@_dyI8>oA{^PM0M)x^=75*#kaiVegDNfUh^BTndd%l=F}E75ov~1 z8<38*NFri$Wn9(5$C2P?kD#@D6^tEpLW*<-#zmLzHc0&mN#WM$qua2Ku!+@eabM5gAO&c(Mly6_W! zLL}HN5R#*d!T8A!NOSNtg#a?agvKtzlVL?fD}ZZ;{emJA<>+)doZ(p>uqh)|d8B)& zAha0gWLp?={B9oZE&$Jjp&c(a!c8h&` z3u7fXCrXdDVY2n1%^A=s^rQMJ^Cg#RO{AM`*7M$K_x10*?ddmMKmV)w%b&gDa6a7G z-I-+SsZcS3sABkl3zv0)HVaYF-;53r`cyRn&shQd;*w!!_WAxdUX2IUXj?Y0tve&>IF2#!HxlFui|X8VR9QrN)q>IKg8a zsgad1>8gIpySN(`X_+e(fRQwbdZ5MfQo278$pVXFkSb=@vP)mGj=c|-Cmr(5y2Dw4 zJ)jUHFKAiDNgtKY1=@j*(|08P4W4CmtQv^nAn4c)6fn3#ONA~H9u=ojs=`xOD@tT8 z=)C6S!l+?+VT1!qACg!x_8gdMT#XY%oxL*`3w7OJh4l4!lSk+>MoW<$y2(d5B% zjnOFmp%K9pQ^z4S9H%!}d7yq|2u_vZ58ojH@QUefoNaalHDbA7-J^falD3~IT;;MD z5~W$oGI>)-2>D55MjE^P$VC;ESvK=}ZR_@en{NEjM{a-9dtbZWY}N@|F<1-=(WSB5SS@zVGgL$@ry17nEvm=W@JIaqI8uy;9dUsG+ckcZo!5zD|f z2@H7ALFP;)7f>>L1Q!DBAizYf`m>eJz|3Aef=Iy~w#Q+8VG$5sn zXkkTwP+G;&?L%dSh(L{~u$InDL=+nX;%4usBmgFfJw|f&9MVuBCc^U?HmAUgCL zt0u#9jUX#=aaaap5D+G0gDP7(%7O3LaS(SazoS4Pxrl?K#h6IwrS=SAJ0vJ6YJqkX zVbt|sEN$oSUroDMP@364{qytKK==Vp=oQGe$Zp!)kX0cI$CmwTmqI1C+>MHOalX zW)knp;R{&(fRP9lleWP$KoWpZsExHq0>554IA|G%&k_s_%W}B`$7Lv%RePvx)0BYk z&DVSdMY7Dx2MIt7Au(5yPB{LF?c|YSi;C!+j=F9aG_R@nr!2>-3WT;3daIcE1RoiG zK`=>#D*mMKMDs-CC=rau14Nsy83FPUxRHz1h6l=UORbP=oE;TkcC?_l(MVLbT4Q&z zFb@*KDDmnZ2(a*Dw3{JnAV26V=(S3Jw$)xhoh<=(p>&HsGIdWaAGV8f%*YRNEUc1b zK9)s#Q0MuCiE&B^er{+&gi)toSKl43NnqF;0Hm0);TTZKHf6-j#JdZ!dGZ+PqL-uvOVz3|o-tk>(!W+o@Zgid?J3pFw6kt+Gpc7?}LDX-32U}^zP zugJlqv--D$p`r>}$JiOxnDm%R2IC5TQ+1k|H8G13g{LTCAz+Tv&I)P`#iUZ6S$wSC zv9ROO97&~a%P#NEs*4sZW!5Yf9E2Gbp7`mm(J3XXg-OFS4pLwHw8wjEk9eeqP!yf^{X0tu=H61P_=xapAFq=0~y3z08Wf+_I6&?}eEYi{}Ae|`InuX@3iC$6m5 zGX_5NPQ1sM5kp(dT$`D6V})QrQHB=*F;sHHiUrXjnW>0cVK@X939KMEoSQ%+?+HoeZE*M)lpHMO46K^oS(w9HS@}`JrB==IDR>?wA2FMzP z36{Nwns1{|aX<$PkTK+gIVNzMDqE&BM~W(G3Br{X!Vn^zUwzqYI<0xdQ{WY0@LqfL)qxxhn~It$RpZ8$b({5l3~ z**NLY2quXO|wXMu*R;#3;HD_R=brKZwN4zF%bo;vxPAAaWt|M`1wc=j{3 z%er+{#lot&f1W~L&kBn;x)Vv-z}j`WPw+WdgG}~dKeM796~{~7`t6#9svJ$ zdoYejV|hJQ8DH1omxfD#xUAG`9X<3`0=kt$00Y!S4F|9cK7~Xtup;h~Fu&1ObD#!|ascpJep52REnOtuITHquSgr%}SV#q~ zR3baxQwfHcnc|8XIbO_^t>}_^L;4jOop;ppt8+dO(GdMyvC%X+!9~vR+xQJ{tdW>U z&7^i)43!)4tZ!o<_=C?;kmpNeobA~D3p@52;25%~1n^toc(=~k0mvis!^5t1`t9B2?-gAm_A?vI3tcn27`=|`CFT6YtSc7D!LQwX??Rwi0MrtVv3f`h1X{~UzJ~^Yup`?MG9qhf5$h7VjX2Uz& z@D0`AEsjG7AU+F1M(kT`iQpLn(*#SLQ%*3D!86b0PPd?J0!ru*S#-UH&S8wsxr zj}2kXlQUpQZy8Vk5bF7`@!&%xdky*N95I!5QS)jl3J)R$7g(EY4Iv?p6!Nb54zF9S z`!qp=7Lp1z+=hnqdJIG783Ys&5!(@X@P@PKftHPm1m#UOHaRp`GRZj>3*7fr8;2@X znY?6yyu4jQpxUp;Xm|hpn7^K!fe&l{mtr8p%Lq7UC|;@W?g6z=c6e~WQ!4*#H^cIa zvkQ~{z2&0Zl<7Q3zqgTjEatN^x5)S9WB=ZCZtiYuB;m**y&ND|%7@W`{^m%q=TZ~p zW~)2D&4`=I<>hi*A4#h2OH_%%Qx=e7Nz4}(Why(n2;pX|Yzv}@{z(2un}3B@$Zb7J z*7VE?%5I{5Rj|Q=OVj!2^1p5=_c<-Xo_OtJzxJQ~+}(Gb|K30TgOC65r(e2r`^Js4 zF?Iri*?zAM5uUf_ocyGwK*+W>_z(kWK9M!F-|g5NJ5FD@UUjvJzSO%t#nz^Ct4{R` zD>nGtljw^&rsalb)oZ$0%oefCB%{8JIgzE;(=y$L5&YP&4YTgC%|6u}M%S|(J!+Z2 zC_(q+7p~;ht2DeFbwT=wLboC>F!KZnW4>!sbzFRwBl*+veN=xNv+S|K6@$>&+#QOE zoIn*Jrl%PS(1Ga|+LuEgQfb||VrUD4kfbdyUg#|HH%cs^q}re}VC)F61pzFDfR<(p zTOta20Bu(){UPnM#V|&@L|7%3f;hFI75q{OUf~fwr!U|rr#osoRXhQzF2%KZIy)Io zxg|kt#8{mT=?|`@`AXGt;ild(`N>Pn)dCGXi}T%6rU7LNr4q-Bi_87){M|qL?)U%9 zdw%9OKJ?fV554&Pm*#B2SI4zf4?35IAMoV@4?Sjg^n%p3V`7Ab!`w#4rYZ)Mvi`j< zK#Y6ziAs`s;o&NPX<>4)4E!lkS?P;Fc5n#pOK}@?22?SK-xP3SG-mjsGJaJU7&F*a za8{EE1rW2PS`B5CJ@cu|D9*N<$tRkWwQQaf9ai2eYI`7P4P2Tmh1cdBaocKD($Rr< zgcI2WcobWVO8;Fm)9o3GS>^a(d=%=IcZ}eAMh)`mMFA#AGH9b)1>+d#eO!hK>QmHS zKkcny5dMkSHKXRW^!Uh{kD$pkki`irb3}j?H;-u}XN+voOe5-+>*w03O;i{Cm(Ci) za;t|%=WIk26b3>iI34HRk#g*Ln!co@rDxU{Ct_j|s4mcIIV{lIPG%#io;vF<8-8(5 zKbfEmxgHTm2d0{0HFMEx;)xZMZA8tkQ7_!}+^)k98z#tH+aAXLJno4zhO4qaqK+4>~YlXzT7Eg8Bt71sC+!?$QvbT zUn22V$Jr{eh0+=vA_-=rj=3I;eqgk%8JlN_w7}SS5gG`h66cM})7lFW1HIqZsHd9s zS~%ELVYUM#zF0d9xu9#wolYz7kr|?=rQssF*n{+$7F5hnZxSRwq^HEoh)`4Ma+zdT zK>#qIrJ6vGi+a1o?UsszU(z(I8s3RaCgCw-hRs{&x1N3dbHDZ9{N_8}_x5S?r5A2n zK`B=4QHb36TgVQDA7rd^n%c?X)f!#BJD9CO;U=4C3{}pw-IdO$eWhBJge+?!#>*PP zYH=;XfRu1OHxSrTas(ba@^CYF@xcrSA_T!IMg%^F1bzkPq>Hv6rBAbal!yb`KDviRvI`vtXg1Di*sN}Z&oSUww7&nHp%097f^TT=rnipJxw239yPS&YHka% z(^nv7^Qu-#(Z|9o{&O=kJde|4Nq05o)C=){fXKyH=bO<_tBpk(h7y}Fa1zeUd%Cfg zxg&FFZ)()j4Ba9kYz&8`R#-h}U?K4)fD3D0Z;F#j883(1cfd+d(}~GT)M2oFES9ep z1S%56_^~%#5$F>yFm6P?@Ygd(&N3oZ$(#5h&7mYE%T&S%vvlw~xR0g5)2qvR>bz57 z#nN7hfkB5T-r1l;GM!&86G&8dcM!EY*w)}Kn#E|&Bz<#+h24GYu6O*{Tkd<{zTbPx zGyn8=e(!Ui{i5v-H*TD{?c}K|EFpq6pd6K>khY<`3z_pMlumNwEmVp+1H5!TK zulEq)NGhmO-8Kq|n9+sI$R8Zd&yMthT^3Q@az$QgkBk{Z#-km}o0F^rw;3}2x#&hp zV>4yo+Pboy?%zRi^mp54g&Vwpa_N7!q}Fw@v`QE7y%qEL~m+3>rg? zFr2bhx3Q8qydFuVk~(!vryQSf0sU3DEnGLM;L3pIvhJ@7{T=Pl(F6M2f_0DuIvb}- ztH;s_0%CfZ=qC+9imL@d9zlE|TK2iNVhG+kvlL7MScI|G!)?uxhC%a(PBIW0qtK+$ zUc^L(hPA>e&mBjwUZJu zIcm@VgIf@DQ?=ta(%Gs+{3;-^(D{QfL|}rf!q9*YHi}MZ5RTW{jjH#rYz4)C07^D0j@39K!!h~^@UdmCl zo*^XY6j#y~+p-fwS`O~$f&sZ&x>I{+I}UNi^$v%#KuAlZWrqPnCl};sNk|=@cQlCu zgy#2yAeuK|wk5CfLLJ+?+|=IIY1=1W*02Axs(WWaz`>pkHuFBtb{dz~l<;J2k+>bu z7xhB}L|Y|E4Y;@r`_qj$qQXdsu2~(>TJW%hhS(B=jDSPKbIBJfy99FjYHV&DxW*wa z_ANka7d;W4D+$yfBZL9-qymUW-LmLQ@b8~gF9tk-v9@2PN=aQm&mw^@ zjwd*IMZaOo`KczL2$!?Py8*N1P(TqAorzoMY@1`jlA#7$wuOCgXo<31q`X*aQvtH8 zkky20b>CNc76aFM_cFA;GlSQ>e*z;=A1 zPfTdY4i~_(<;w66P1zj0H;E zB`8R3>2R1Wlrd?(PY9*LGBDm^VX$YNf% zEp}#CRwd?{4mePbm;NTSylcMVSg2!RR&#a%zG%1^{hxqz|5_1|Rki{RnE_=l3(CT2 z%#fs|h!O*A$IH0Pk`-coxsq1v%hW8;pox-0P*7zwuPJ7C z6G9CpD9Ctn-_?=T-n5t3hPz+&YJ8<-sZG3xg$YM8Oa zTtPzxGC)bJY6%A>ohpGZ0&rXq%szcp3!^Ho`YUJ7u9wqPsXnU84N0S@XuU9ij&W3G zi#m9B!5l*R07U#*j2G5?DM(S@Xc@>VTIpx8w2P?zir`^}%2Gi6@_X-9PzX|JgtJ zhyVP=mtUH@={9_b4H(Tuc0pNJ`T9-BD3R;I9@pqU8yPtHaO0)`ii!doRIFhvAqx~Z zCYh*A6)W$sJA8qHSUqRdHCVeyj4wZ;mA~>Q%v=p#Se%(ikLrnR0Yu=bkp+xgMePeL zx}@<&x%T9n_3sD_V>%Ud<0E5bE&1hHeF#jyQJf5vnzaxQ)kgC2`aw_0CEiIBbgK=A zuw9lzqX1JwF!HzLhd*p~NwTUy=hPR2x@d;pSRoy(g{xP72?#d3C)OdTKPUj=Yi6ij z?wkEGI3R`iMl&QjGlWPLR4I3@A$CD;Z!wu+y4w1IZ0n_x-Ss4`^;`j`Xw}JkF+C24%Xyr`&VTp=KlB^F{Y!6q&s%mrt}d=3V#x8bfpfk{jg;oS*^uwNPQEeG zlYn%g2}_A$!gnENl=>yOymc}ZEgMaQ?=w$4Dk>+Q$=(c1axF#2 zv|iX|UgWs6hfvH3D522pI?$6*y5&I?;D?(}H?x?W+(Ci?jcbf;`13re9*R)I^_XE} z*@2T!L%=YKm0NDJul|7#L(s9Sk9ON27>&}MQyS%)gh|WV8>r#P!=aME3D2ll=*t^e zU-LDZ$;rAUq-iH137@`P3Nbnw^-$rqZzZwzqlQl_@NC}qT90;AB~dBgt*l^Lx#Bx-`up6;ntz7y&%+Zh>R|; zn+ZQ$9rnBP=idIz-+9g7e*K%D`klZ3e}4H3UwirG+hh3d?2JNBSdg)o2RACQD+!3r zoR=4HIpAs!@2-+U2wL70{NqI5-_WVjByMC$Iuufk!ercvq^uBzjH^;RcLOG~8vH-U@GN|&>TID^iw-H;Tdsy3q{*vJg z;J0!Nc(P&}{DR8n^uVfG%cR3b_ZDYji(d)|XN%+~FTy%2 zFs)E*fxt+?icm4I8JTIaQ%v_(q6jd|$H355Vj-sWU&fMt3@QP@NyutaAw?F*so1Zxzj`LVGnbr%9 zG+mEL-bNyM<+MQPs%HjIvwR-Ml(d9k9B^5vEpB}lJy|>QDmAxZgzrx&9X13CD+%X5TP_x=m{Pluo6%pkq$+JWz-Wl0Wgv1Ag{NgVG`A3}7}&<)cC_5rfF;?f2q`yx@`h3-m>}M%;Ax`^oj|tNiT$+T zV>}k63B!cO>1!FFz!rm47c?r(3!7L=<0I=Algo14JqTx+_LJ!HSi#Gj%5FWY;xdM41e9qtK3vHc+MOXvwp_u$&kG?<(l8HNhm0NZbc0VgkS& z!h{j@(%fJiaT>OI&+9-jOI=X+GSv*izvF|GHfKhSV~SY7Y_+lQ>A9S)E+r?}XhV{@ zMMT8a@hUFnz4zSpv%mS%&%Wj9|M~Cz&L94Ze{*qlF)uIAZrq3npCjD7)?XMOiHOP0 zSjd2RQNG2}Fi!o(nvAptZ4gW=i~N0wXj=0%Vw83VFDfPk%i$R}Q97iXnV&}kg|my4 zT|51fLO)fW)Tq1YP*VXFp1M}h0 z75I>=m+-k|b#3NFh6#I>&ee-&=?;DqU!xMLG<01)mL{;(vg2(OkFD*tBmRyfx{B9) zvzD)69I;M!@QvJvdBbWUUlWBT>YnsdhveoXY#Baw{v0!W6hijnG|i^hUiEO*m41o) zvPPFIUpoAJjiP)_8&A0l%!IEk+Y%P1vsc0Dg;5?yoSi&N3no|IhzKhAUWjRAZh+WL zV60AnV6mo#)D~#9>J`yfM7U0I;zGLc`Vt#WTg*L-6}xI=#c8PC@#1(j%x~Ph`TA#` z{k#9=-+JdyyyNDr8@FG)<26CzEeP*|3KqGU5A+@uL!K{E|CaJV-OJ4eciEO$gX%z~ zh_+?788Lv^hD^&00g?0HzSSb8n|TT&(-5wNKo$q!7MyGKPtP>!=YBj6LJY{(5tPH4 zCD=(zo^?ijw$8AR&fHAG`h)j@{ZVnM)e9u^lD7nhe;)WVXE$!1rx>FQ+9^P5iZeO^y zXXN=xW^0_Kl^g+`yeV0#J%q+?G57oZjhnX;oEC2L(<1KW(GX@9GoPvwHhj!1t#pOd z(`1L4#XQW5i;K3xrmtcFVjq>cE**L~mLh08Uur+Io!!{oxN+{81&Ci~AJ_P3`m*Ma zdN8>RU3(1Q$BQq$@U`c^`LW;s#P9uIfB5k~`Q*zlzqCI)-;I&v7-Jd0B{Jpff=fy^ zQ2hZrH0JUScq9z@_t85E%n5POis8-)!2IbHuQC)jua>A&w?$qMwOa; z4B<7J3VS8sI>j_agYBiQOd5xJJA?)Dz4a?l6%(YX76ooj9Lsf75Td&SU$2I@kekUw z$S9P~{8Na(LKHQ?S}SqPdAGl{c7cj$LI|%X5-5vZ1?L8~t$y^x$`)eE{JrYc-`tzga&SZN!1DO}`NWv{@gc21&0!KYViSk#6g;C1p!5;hges6#a?6Ue)L9*@Vz zUj5iF{@RD%_u==y^~c_@+wbD&yTOFUDkw_RM4;j9*$qkCB1gPA$-Ujo?9S~wbE-kl zN;GNi3x`kD(h|vh6Ff{bfeE6!ZrAZA&f=+>ZMrziuT@=D3isDTwLC{yu9*P zx_qO>TN9;FuPsyr|BJA*^Zm{9n>EU@FdJ&z69TcJgOX}Y(ceX9!z1SH+jk~TN)lxH z0k~Lgv=N}Q#+FjszI}|{&6_vI@G2ULb7a7UN`g*~E>?{nh?_BYF-^KlcdFM)wK)xse7|q zTR_?YoQ?Hnv!-CeeVnC?5QW!O%Ds(u0{s(Do2j37w%f|bqLM8oXKR=7Jv%5W?Fd`MHuB{3E&K#*GYPz!Krn6J6_IZuMzQaBeB=a z#P-U1WryIRs{vWDF1dL2hO$!J!8&j!fsJ-jUz{hxu~?bb!_Sgb(N&7v>P*fG)$J?D zeB2=BU~38A$^8bVK7%%$#5BWFlJFR&M{9NrL?$My!uv#rY80dx4$N_3ddu5jE6!ex zrtTJfxO*d61{7goJ`cy^?K>B*dG%xO|Im-U<2`Tr>0kb-`yaY*KlbKajV-nyAin%U zlH9md`y_Ix6(A+#u!uMw569zVK-C^*ZS!P$N3>jq3+rsdj)KAA!*=_9ApI=QgMS2X z#HA_)p)eAH{+4%!S?w0N6IX|;YbsqUK#KcSM+BMm^=%I}` zEZ0)6Gu|tWW+$uvg|mwh5r^Xob8^G{vW&w{dhQR(gC$MtKvZA5-8|dh#j&_U$l5h<}^m!SoMd+6Wwpa>r((yHTqVq~Q}A~tJZ zc)m-oilo%0#mEOo7%C=M#|IQ+&m~i+k2hRWp%9IM+7s z?4Yw)l6;GHXYFnw%r2>87jT$i^HuY$x^s(&<6&OhK8&61_xtyLob4!&p!Hp z{7?VSmp=bx^W&VyvGW-?s97R`9{FObhON=XcVjwhz>gIj&2XZUH)*HQKYGLA*S>Wg zq9=>b$i)X;CZ{8`CQ}$~nS7uDKI<$0;H)(GuwsCaxGBa{ld8MUnB*cT)V2PHp0!k3 zicNBEadE|fYPrG>{4LF$n3#-q;2B4%LKP*ogp=-tp+NoF#t|IJ)*Urx%82~ge!u_# zAOJ~3K~#8JSA!A+6y(vus%B6tPw+f3)5`-qPodMAX=GK1J}LVw#dv0u+w9&p_Yjs? zj2hJ!{Os(J2cP)BhkyK6e(UF-e)Cfn@#6Phy#M|Or2Ak) zVRbZ@_lO;tEe4dw+yc)w(IN>e+|``1-ne$mIZN-c7yv?II*ct0GaLCoACU(wMJg_q z@|S#~q9n{hlp_de_N<$2n(a_v?XzP!FrIK?5wohuFkKgv6V-D(&ReE0sGhBM058I2 zrOp|m!`j*_ly9ip>bdL@mdk^ps((j`f1pqBiQZq7>zf3mmQqLA*@FU$4x&c{NTE+S zfvDghQd2||Lc0U~$$%s{Bcchc0BW~QTfL(!;EZZ3DQ(Zhuxb%sX|u z3ZF|*(%APj#^OR8{)#S`)F}vJK;m)1^X+AA4cB^s>MmuN0Xx0 zVBjZk1ADc?WKV;$3>-S360S$9mK6R3ONDA;`Uc|#UoZtDYRGbWntq+a;>|jWBuPiM z9JUk z!3vsPZ~%gV-tHDtoNQwXqGD^eu533%^uRK9M6DNasst>RY4pj6)nlh9YezW_fPVNq z9L04J_zOQ~RaV)jE4(lZY2o0M{8N3S$&7Kh=7+k|< z4#OAZB=%we3~u2IyFpxylE;9j*6HI)&fs^+f)Wyg<6yVVeghgaq<1+9kJtp{-c*B^ zl0kL5fhJCmPyjjyu}q$D`#+7;5Jjl!SdRl8ruZ<$2tC|L1p2`Lglv&pP|vzp){boR z+I}l3Njo>EBQlg9Kt)^1hOQ=1P(nbxbLUkFSCu{?96wJuJ}oVWA!eif$+&dL3#DuO zOR6R#E%;7yBe4~yO+X(x--e=T7Qk3P33wat24SbA4LQBi`~b5Nz<5t<)eeMZGDFM- z3|KseL0;}2?(<;tcs$zCo_gJrANhq3y!AbAe$%_&_`pN2I$RzuFOK{DsQTb62&kq%T}0sWGdrf}dA5PkNg>5q6vOJ_6uH-|7$54E z*BX;95N$8(R&_~-TIfRbHqlbRs8dTjDqLS7xR!*Jl7-h39dWD``lDK4yfc{~yZZ`< zQt%9gqZWSH(G2@O3IUUV=_q<~?wdJ9!RIWZr&%A_3dQ1}vyBS(N(VVivO#Nxion3D zE(Y|zlfnafo7NhSn1cqO63eAzFts+c)F00aP{S8NiuR=OvAjdPI4$;7I79L7Q*hrBQ(A~Z5x+^X`V`K0sXAu%837-DTr9+e$i zAfwSGE#$WMd0X9hniprY>U-}7R|;d}u40i53yWZviy+dSHJZ(7w_m#2?Z$KOc;?AB zy!O6_?)#(P{n#fz{;98i>8m&P`&m`GQmL8(l1Q^!8H3N!3)MXuyO$OzEWq?3nV_f{ z+b&``;RIhOif)Qvt6I^}x)e-F)*&ono)v|G&>r~aTnY5k#lp@<>)sA!TP8iIMGakO zs=w290xU;C|6Tgi=L1NYPQC7igPooPAb4cRf_2!_7&)yaW(lS^%~NBGiD;6gajSZp zN-`Q5E$0Z4mVz8Otz?h*O+{O4GiZ^+#q>vt)omd|F92(zZzsq@*B8x`sSB}Ul`{P| zr~HZ|36Y#x#ZPTCR5$9-s7E#ziz#w)MRm@NIn^m_*fJ$_=N%@lc?dQC_x zE56gmu&{`EygD4`jHh4s+8=t?JDz>}Ge7x@KmO?Z1skto8B-(2@MXv71V{V#5(*SIO`Q`?3-VOo+-Uv zX`uEcVq3ItDcqIHtRn1$Y1We?muiZ4;RP65&Y^P9WyAp5ns35E5XkF#y^c)01|tcJ ze0=jn#xdc3VW^0qi!%-R*BMQ$o6j2M)LmA^V!?l$iAjuy(0WyyaL+A#I@BYIJq$@a zGRO_EMJg{#W={vf;wT4&MMTzE0qR|IWJ%66Am||Uq{PREP)LCeweQ^bZ$>VHM`;wj zeT)5(x3I5n(_wy#QEbU~YO?d&Dn;SaW=~U;TFlig>tSi-{DR4SO(`5^jA3Wz`@i|? zKlzbg{fU3|kN@z`{^TKwYW=<;4vmk3+(Y5t(=|&%sMIs@i3k@%#&m^`I>&MZ`8}F_fJw1REN5 zV7_V&9vl@?i=>rVJG_|%*N|&-A}7|?T7B51819MK8YJQsfG9*?(p#}*8R`adwDwIP=18w+*ydFe z96f!~;xwysk31IfA*D;Bg@;2L7!fuyoLv1A_#;&fw;n4tQKvc6udK0%cbL=C3$|hA zbuK)0+1%%hd5G{C_uqT(>z{e{XMf{^@BQ$*?|JAx^LcUm0)^VhGh*DrhC`sRMXDe5 z2R^PfnM#;Z;Gm=1sP0CUMgID2TdLmUtuw{$$}K^gXos|**476(iN=-jVBEZ4CGp7>Ov+-M;!3%jUW1=#J{T zz5-Mht~uC@jsgp4Sz;*@=}Wuv99&7}`XDfC zIh#q1tvSHhpH34RAkp9CGoxx66Gduo{qe>Hf^|JYkL;k?)cji&#(CcL0t$rSk}h4M zy0l!EpI4!f#Mq7r<+d2jl7BO?s z*I1@elwm9|b6=rTB1KG9?q|3iVz(bRZk@mH=YISx?|Sp&&piIf?>_$dKmW}4Ui`kh z3pCAwHY{N?)ZVN5h?K)5nbOnv$f#QD*QmaZn)5esC)Z#JG$UGqMg%TR(+f*@)MAl` z@GZ#fMgMBe=>~v|bKH7m53Slqev||;fA7*1pls{%S%+_Hh{Bn`GdN|MfE7_J#hzx) zjqhq*8_g^!Zk28*F%5OdB5Ma}cDWvz4ccMw%zQxtJZaHQkZF#XXf`XvslBuY$O;ve z=quY2(;D?8X)<+zphdD9JCn~uRgskw|Ef&prMe)RqX`Vq!+`uHFbQjjmnKF(h#|r* z)<9d0;k=jmC#@411hA2;3w!k^wXbNFd*5Sn;=wSF+>c~6UxHL61FW3bqF*$t@{rWA zw*;`?bcN#KTt~7=1cNH+EVFKhYzV|W3tm|7GU7N7;cNh^LmzqHhkxaLPd@j| zQI36RsHj?Gq_BlCQ)7^iuPi^HXT4 z%Q1)OVf(ce_(CmpsQxwc7J+Z{&451}#zggmdVkMN3yI5%ISJW_c%Y(o_{Ka1H>}*I z8+(Jod1eg@!eZ}nn542l%a>UmB`3qju&|k5B7hNu6N0+wm|D$GP+U zt6%%*um9&i|B+vQ-zWa))1Up*FZ}cW`wu?<+2_x0?04ro4?i1wImXUec8LhWFEcd2 zN2@Buj5BKCOYq?`LAXq4aPWblQ134fH=mLZ(0ucd-LZ5o_t56(SD0=pZvbb}w>lnHQAIR>PHfbQz|aEGiqP0h z5m2#CUl^WfL_sxfogph^IaW9(9amuMc1n#iz`>$}^_AHOy@M-CXq)^SUB_y|!M@df zv=l5D7w~squYlGvLfM1@X0_}$4L>-sQ{IoTBrylbn3Jh&e@z(!5k*^@dVLRWyHvtN zvC)IWaEeidS2O+gw79xDKKk%OKm4J$KlSWWKlW2U{Kj`byF1&*)x5lYiRd%Y1gG)f z-=Hf)QfEC)%%atDamg~o@2xR%E^9(mOZDX(W1PT=D1=3)$L?NB=0)1{K6DPy6N6o$ zMtq_)t`NA0#UaQIRU(h&tC}R>K|3-4vJCKx?NNNV5x^vEC#-58ZY;r~sXoO&tWTyD z(*&|%F!k2!M+~VfA2!#uQMYL^dZA7C?qyf)p?XzmnF9-JwlccGWNU7iG+8F$8dOik z#!*&N624vYLLzVB`AFHO)>nj(Ku46oH*rawt|c=Js1I4Q$ULU|i0CH)Q#6np?mnfM zbAMZ-M-wX&tccpQJJ`65QI*6#=AJiG~BQ$7NlBRap{(nQJ1(RuZ2Vx z2w%*^Y>79wthq)H^lqmh@-NcZgi6JXR{iCEv)aMHmIGJSOdQKaiZtK|LvJhV5CYq5 z!ua%t;H*L&y_`tJdA|bQ$>|0DOm@8{q1^jn|4 zdGFny`nR9|;upU7wXc4CcwAjwjk8^@khMYhnykz;^Ga9Y0R-1KFGd5k>I@j)gL7;b z_foRn**m!I1W$}ML>Uzm!l!ir3w6r+B<2>^n3xLF=PHJzy{PJGtqWMv)&n^++}Ik% zqL~#etU*;fRqiEoGvl)*(mx|bC6YNsJW}MtdAOGu&j^AeY_`Z>f_#9xnK5zchC0TD zv27=!+_s&GMcrO`Aeg4DK~ZZnMp#H8SgNHFAZbN5hd|^bq|ilqD~pIQ=h3uMR@5@4SiozhoK^Wkn@E0c)~P+@evKywtH@h~>naE*&vy7~xQMxppB7qs3n=OP38sKRt{ zA}S$vRr=h%6C>+AB5r-&u1XsAg@Qgd3r?QD-FoG##Ii4u&j9q)VV+urqt|KQjE#=Q^S@4IoF$E(|yuwm$bpC+~tD#b&A zl+DYHGNo2^-b?fYo*CkTdKdxS4LjYm4?|HU?gT0o(9LuYJz+21jW2mP)fdxUGLw&? zC=DG`L#1MEi{_h6$Xuoxe^W3xC1Qdr`Hw61@xBTHf|d_(UQ&GJASzU!GP-?eASKBobd&Eig0YY6!Tx zzxIN%6atA0L>y3L=$zx=df{OY0oo&H2&_x9+NWFMS^4)kwUo}9s`-{POMk6p>FSy> z;XX=L`1F_>4|z;RvZ#rpNGcs@AArb{iU<+KCaK|kiAt@R&6r50ewpydp(PS|6j8duM`s09L8 z*_?ZuN?(SWU0i5X<8mxg zQW}6!Y2qPc!B2|)az#{^CURI_VT*zYGA(eJomVGyFu0oqE3x1h`ojS}*}k4GoeY@L zQLOP3#q3rkQ-)hL`HdxS9fug%*$>RHs<=)&&ch7%TQ_e$@wz9Te)@Iq_|dm~Y`r$->psFUkKjM{bLb)h8Q7(8EoW z4c5P?9lZ>t=~QFt#g}rjuq93`8nOlv444AB+ zur>swNgYU$iM(*r0Pd`j5tDZjTQ$pDw%KT;6u08^NrAU+SvMM{$pM&g62|ODqgaS!C{x zE)Ds-Te#bthvPinw&A-69=`7vfAhl^zjF22Pk#OjpZ@Y6|BH`(>|g)cU;VppjWe_3 z;cUN8CXT{CU%)5~HI`7aYjvCsGkP76WE!Q$1`9A`-XgyxXl&UhteTsxhuODmCETO0YE5t<5tD?a)*}f7BWI-_ z)7xrG6X#MZsRo@UZDyEEKot$?TW@;n;-J;M&r+5oFFP%vOPPC%d@hs{CH(j%A(-0(!=P*%WRHPO&s7eY4pzCocXk3$U>>VY>6yxW9Hw}JLD#*uxCG)) zehUh;+hcIWSd&Fi_^%$O!5_#bsAY6flgZvYH@V(u!+}1+gdIW$F`j}-Xj;0X=)DMFTAMn&4Gt^hF85!r)8tE-;jIN=;Lg|G_L=84* zzhO4TXVo*JC3vyLhmp6kGg#8~98Mz`wHA}^v|>DGQ?m9VmIb`kzE|B0^IAbcCzKb4 zMLyumYj5d_-hud$=f3g49qN%sZ}e+v$XTE~Or!n}uqvsj=sPI9&Wtd=9^S%cH;b8x zr#B7+;-+N$)blEcq#hQ>n1?&ZtIOm5Y`o#EuYdL}PrvC$p8L?}KJclJf9{)K{pM%? z?6Y6_;#ZIJ5N7-R*>1m!cHSj(FKu2W2Ia+QFy$27VY}Lf*RdPSGN>~KwG-$;3YfNS z4A-=v6&2<#TEVCU+Fn8Vhz{?7{VT+{+nS86dZ|%!NT2+>7Wf+54V6UsCdVQ9Z)mho za~)=5E@}BjKf*XY*H}m*X%w3@oZw>&tz=$Nq|z0chHSW1Ep0Hq09!H40QgWYkaN;l z5k(jm?Ki)~IK%_A{MPSCkXY-AMphFl82Q#23VTr=P)!UA1we{g4Zz^8xrwRN&{&|N zDlEElN(D`;ZV@03+tMzozm7x&QLIO|t^{CUPOX?_d>FtC9OV}@!(fMtfC6QhRBo-x zZg~zZE2qk5RzfkoMm%lCJkB}I?8f0<-~P;_Pd@tQcRhRa*3H9V z97%RAyeC)+sjtJPxy|rA6Q1)&9rtf_YO7fSC9n&PHToCNx#w_UOkL7Rr8}^ugW6WT z^1o$9aK|;`iDw&Dz?;3L*T?-#>lTeR01rR5lj?ehh<{0A2D=fNjS_^ zhJv?lZg~{G#om~2%No|=j;x@x{(3DrgA%op?4tKy<9lL=fDwrFdPE8R6BnwkQE@30 z4L3r=ILDuc);up17s#D6ny6FD;?uT!fNojagPkq@hXM;>M*&C_!p~j+03ZNKL_t&q z3N8?P3VKju!M3D_+qQVd3SuM*x5nLJuc|a8YMnS;Y%acqNB`Bw zKl#zme*G)o`0S_t^1I*u-W*rQL+tjuu^SPNZICdWoWe~t9b~gxU=lDnNXI4oF!MTR zJ2kGARc2D5v6>X*=4-20)5(k7qF>h3md&NzC^ILtZcG0t|o zn`bv3zVG4pe(+sy_@QT>dgGH%zVV3%9=ZSG;_7%fzWm~CE7p2Jp_}zKUlN*EC1lWd zM}1w>SoBpVZcJXjF)zp(iBq;D+S;>ml$pL{=NkgTye_!~Swk=z!$zxeWKmJ&a-eFX z*`|MipKHcU^Pm(@EXQ=Npx7{_R^NuFw1ud=cErk7i81F6yQIY%QiVFRa~xh}V#EmP ztjz{71OGUAcr#Ro5(#npK6D+CNj4kOlSfp#-WNw3mhqZW&#r z75!Z;sdTrT2r+nMifB>o4Shj^lm`tHKp0h|r4cmaT34vb5Un4JRV_fwww#r77h?(S#?4fy1P&MGXV;>U1#l!F1j!y0{> z?pSUoJMv18&Uh9FsevbWN)f8)`eDE!_OZASH)3KD&?8hI(>Aa`E@{d;mmxIIysdO) zT(;F>8)FO~Zgqf=0|rsYM-HVjq_M$XdZq)S z6?5kF8T8GeQK%DS%8aIToYAee?KcyV;+E=AK+*lOI3_k&JvXeHo3Bnn`f-N92CeN| zMG!0Q<%Kz=GB5=Y>I#(7VM+Zsjy zhZ=Ut_pLEY;eZ*oQCzU)dgD|BsD%pK46#~&gvm)d53&hukb+Bqt)2$pO??1fdC97# zvZtlEoOJN8JVi=Oqbcrdro!+@95X3Wa4WUp$z_sS1OS5>EJxnV)xYhK0j^C)4|4&I z{8y%YNC#+673d52r*$vPB4W@k11OI1nFZsUc|3-hU0z(>b=R$XUUknS4?g;nANt`Z z-~8GKAA9iWcRY3fL-&OF)t$?iU%KP&al}Ssj|d;4-@d4Vl2^jY`u|8C4DTx|c|lfV zr}r|$gWjV}SdyqiXF(h38q-JRFJaR;MQ!b!+8TV=oaI5L`v|z1HCtcxqefS>GaVx=nt(1X{3JCc7m3fBQTWZ6>Jd9g6h9bW)RjSLOCu$f&^fNI%s z%Cyj(RpHnW92=&uvsD}H)-k&n11KnfEg+iHY-i>%_khgWn@h}#h4#j{7O4^g_HCKY zONMiiN9!;y<4A+2DVn+2987zwztR1eWht3zpZC~w8@05-jdaZ*HXAjhyG9x+yF4OIhDfF&&G{m7rMY?>iDxqU(ua_+5vr(L6 zyVrT;hJe3~VWS|`tURQd6JZjDqi9~1C(}X7bG9D+u)VenSEpK9>=R`&(aB{JvDw>_ zMR5&$un<%&Y;m#8gcOu&Gui+GFmS7rdb3-?D#jFGSWjcQS=jI}JI-n0KJ9FOc6Q_J z?wfbN`~B~H)7ziDxP9@}=fC;<=fC{jZ-4(UKlA)op8wjHp8x8_?b~BF=A8TeevGjn zI|jU@e&uRG(6TAStS3)NXOD$Z20$VQj~XwJ?leI6;;eKbdC7&?D%kW6VzY z;6NsIONQnx&=q_`I!iSP99zBCdl6zn1-QX6>dC+{ASY~mo(6|fLx82C3t}^Ls`W}d zmdb~k=IfU%Jb+SxD-_*(WgjuB9VYlLBc|Qb(yfnfT9kt~mn6N*qC=ji)Usb*$KB{gx&Z3w zNZWu4&E+2Spb5*C32jlugKnm*((>?@ngA4}W*d{dX!9;NDX1Fmu^T?kXB>~mUd-of=TW@^hvrj$s#9QC>hDTrf==rUik3aX=Bd>YDY!~x*=cUW4i_axVH)oh< zawckx3o(iqWS0V%u?AS!YGKWi)kC)(vKcos&MUTma4$e{(Fkb5Rs;*m)cF9VaJ63y z>Sck)p&$#7;XbQ|+9u}QDxMkgDrjgqq*U1ol&pVtKDMw%6&9FqF?h;_dx;?tOziU( zOQYf$+$ef6%R7OHG?gAyfODn_Sl-M(mE!n_nSEjxTdYM8mo zl3<-lwjAFX>>I7CHCHq4`7ooa!&O|FnT_54!H4g^dDqR?z5a>!{*8AXkMk>E`ugWT z{l!oJ>1RLp>E~a3@x||d=X;k|hnK$p((M;-ALn5nW53^-neT>&?{>os3(=w5-W!D% zVHvVWhDbHbV!?E*@(8%L-g-)mak(KCtT!oX zvAsn`ZR|2bouEbbE4Z*9nH4o5w*0>{7%6d(x=i#qy+ll1B@i^fjSSb}>AxE+GZ@e* znXCkAFQqVJc;Q4s3PcPq+o4^Vvl*ZG4d}s0c_C*#`unnmRwo&4m_ETY7B1*Xhyt%2 zi{lpj2F-^8e4o4kr zfUlz63*+mFKfKZP!NbsBZ{9;DD{F`r?hVNnI9*Du4NX*`U`;`xnyiT>1?h}N*ETrI zQx@l>3MU&xVCxmZu$J97B(_*7Zq^DDj#mqE_j)wf8VUes6TO#k#hCBO39Wvf635Dpd(5+k8Yz8AfgE2Z| zntBT>^932#;np>TXH$>x3WG19fzS=X>83`R2XTaMV53oJ_OvPWn41n%% zz8^F0TwI)wT~^{QuP!ZY>^#E8*l`>-hR>*EAcOk|;gq4kAEsJ_G`cr_R4pmmWvOGU z%*_5AC75 z1M?`>Sc@IiFsKR7e;8aa<2`P4st0bX1!LfxY2rQ203NG|amrLAU9$|%QGGAV6vxNr zde}l~)u)yxH=W3WqO}$Zoo;icJr*JkMG)n^o|2hA&R%BFbN)21Vu0f*eRbD58+ZbI zzzwdMcJt}Mb;KKI(WO4$cHATE>BPd0DvxX`Z`<5zb&w2G1W2;UDafA^^Kf^YlNgm2 z7nXDF$K%}Z$6+3ak1@u6oZq~0!-w5{>*js;-t*?SKlelLdD|1uJn`^r9(~~9`|i2# z?z0=`W;V^g`|WRk_gmk0WSUsKVQ}gE1awehHzAOLZ9+6Mo+m?XN?T%%>932^{x0$d8cbz%r@xR+Q8TsPVYp0yC))7 zOTf>Vs&Ebz?liEez_rUDA(QGMtvU>V0zu%}{OUgY zV5DTBix0wLAo;y)H(-YK;1k3Q<}C!Qu27e%OkHSiJKzygLaA5@*w{Xp*>raV1>X!; zrX&ELZm{zW8;kiV=)8(kbS^h+X?1HW>}xsVWi+c?y+a~7{XwIoW%8Lu#h#?`re$S) zGZe?bEP5WTB1{jUkkVE6Bv}T29-T(8vJx>b4;K-4x%+On+wDf&y!ono?2*SFj%S~| zx;nh~L+`%0IK2Gg?eG2d_iw*^=dZuwRCP{QQkX;@bL`rz%q7iz3T@qz%wf@;N7YjbM@0LlyEl z>~n*ssUFT?0^%UVjn(owo6O?C4fGxmCS2zZ>};seRci8fQi%0W7^^B zVD9s99J?_s@~j>+8)0L&KR-Kn-`R`@?|tBzXJ7Z++n#>-H4ne)zPs;z@ZP)bzH!g} z_uTcWyY6}5p8FoU=j{A!Z06}BCLU?!sMvNy>cWXIvtDqBQ7cnx0KW0VwAV)bAzNVJ zokH9L;3d-_*84NwQrQaf(-kg(&!QTAMq!stYi$qK`>xVAf`7Nx#*KoCStrglQf(#x zV!};BU&Ob6%Hfl4A-L}=zLweHSuiRc@6N<9dyQx_xB7Jx)Js+= z-%<0e3MLRyT9*%*ZcE$+2T?3*dss)Ef8EUXQRMK{@73+`r4WaaBl;H(^6KC)^Og?4 zqZK@VVdl~@T;@Xh(v^+Z{jz+?KwVERx%O&&>)UZcF6z~ze~Lxw*2hEzWLp+r6;5-x zg@#nKoUQVPg(cNB4p>GdM4T3N5PMn{9Yqp|K{|e>4GR!bFSZt70wv8mhsb(Frv;b| zl$X1V@G;!5!s*xxM~3H-kxKm7?-`VVtFZqxYF!ilAD1HU9#7{z!Yvc`a7PU1sSUOSY0oSmQF|KPcq*^K#Y zxY=``)*|_u}_nzPNLBxVn1rg_mA<;pIEGFRm`GF0U@Q%(R)VVZZ^!0F^_$%FuA6t?bJzZSw;%f(ci+7Gp1U7? z;*onExaa1r^Rx4_-F^@AHXB%APGm~euwhoGR(15jzdXbO;eycXV0tL{$|6;_){#v# z>kCNIi?y&C(!s2Rii}xL!QL9{nPo%J!LgyvsZcErz0_00&@z<+?AcUBqyzzEisiDwm9ZYRxbvi%rtFiGBOJz zN{8tL97=?49?plx@-Hjv?K`*CW4KZ8eJeIKRFzmTHJX)$c%Je^FmWSYlmFsBx^eeSnc6I6&EuFNSctchW@nt$7<8u*2SO>AGb0WcSC>~; z$78evz)D0g^f#1D`>$qgEVWKEMmg?gKE~Pk+1dVlxA$6nI&!7QI^Ed}qhoJnVL=!~ zQT1)?hIzd3-IxBsfBO&r;9vgn`8Y=@G(?9M?IrFMCW-x)Tze~Smlkf%>d+b ztXb0shSe>;D;GsDV}55NEb`E-ouAz}KilueZa6n(`GVKugx<>U@UAR^bxkY}PRcfYB`GbroBv zcYJ~m+GJphqoQWD9}u-bu-VGrB`oP|gQ~nvzil4^id2} zb=d;amsk8Rl_x<}uPMRm5lhqxPMVTd8RMMM)Q~B*+!xWb5^GE>*0E+%(pr_Lf*?>% z78MlrTe?QGM5iZy!rfcl59D-sF|&?v*-kn>&OW717@yIyC)k9rq>7WH#ua9hREGD5Df-yW`as#HrgWRmd-=K14`5jh>GRVEaj#MDL-S z3Ey8s_GZEgWiW9QGCEt0DZd*FuM;cu*;i~yAY+7#+fE$Mq77^R%?sFSi6ktIV*p%& zCeaT9^B!6(P!-NZ71R<~-5e|SO*)kD#yQ+Lm6)1V6_XL`3?>!upceheIF$riM=@Bc z7S%_vr*diN5-9G?0TLLsn$B0FR!)m}TVjpns(Ec5g5NW2bOsjMN(NOf2fi+v%&gXt zQjsB|jV;(b50mF}ZmpD{)EFW)0SZc%4G}&Xyl2D+Jgi`YL?ZC$WU5z_P_=7xhBCr3 z&x7)H{p{9H42))MN*i^gK&ixgBBBSs+wF9aXT22A%`A?G^Ya@Chr=1O_0ewPV$3@H z=z%~r)~X3~531*2y+_R5?(FWnU-jghUi;|dkJ>A|w6Ryd#N{nN25>FR?dt0A(n~LA zmM~zc-WJg>mQ;-1J+{oWNm@>ef8GabR;!L&VN@k3aSJGjDoQosYHK`N71$!iYBG3%k6$ zxP9k#9e%-UkSa7gId`@&a-Cj)8-+Ho^xm9yf&vE>)i3ocqcWN(Cj62P}Y|usLmiwtM*T zM_!TdA@8y-lsn-qEU?m()x6l!VVL4WMu1h_2JC{LY~#?8I)sG>e$ii;vA=fRKQ@&-!1dm{C_|+QT#m35r81SnjD?8eUr+Wrt}^4uF$<<1 z&B5lt14Qsgm!T1st2x;LFE=cWNBMj*p>0e(VW1KrT+?W&K_E*nUi&i~&PYt6rc)rs z;z$K6&RP>piN0e6#~Kys+5DW}#!}Z7UMD+2BStM-hRiHy<-!bFCckyjJ~`~<`wByp zj(9&xan%|9ICb4Jz=MoNN3ax+1v%jO@Pc4~=y`2sAhAD*csA$_x5$Pzu|5Xpwtge8 z+*pX%%^hA9#i1xOrxV+R`WvqDy?ldPx+KW&@fe3{x?H^hO1j7|Dqka2-`2zcio#YG zvr?<6wA+k=shZy-gamIXKx?N0;;4_n^~Hv-m7EOB$8=fx!v zS|(u3=mA?xqkY{nt`a%aXScVoB9H++8` zZ~WxV>Bo)8uASeh^`GbGH_vu^mK@E@N9_bh_zrL^`I`GE)@?jsn5rlq@&;p-BH}#8 z?K`*m5yg8KXJU@99S%OsZ017-sSYYI@1lZtkIa_g+6ImR74N!YTACjOn!SyhtScaF zJcQ!}!*L8xE=5V|-38>RyS@S5jU0g!!6qPxMQsBU8U~mGQ5*I4I!0SIgLcSEe`#4$ zU#o563+tmMx9QS5>=XrGMNIUJ~iFX0XoMt6w7z`mYbm z0+i;W#NX>oj*c2(&MU$SOPeCT=y!+?obkejiu&Z*HAmaPm-XW?i;+u7s`EbXT57!R zn3s{^Ao@p)lM1kgjnkq5sdbxEMS({~bPYBC%)oi1^z?B8gW^3g0RdAAbGQ9EZNKsp z<{Zk_hNc=KX4}PSyD4bQY38{-Zc#Y)mZNj3#OAfp17Cj1ITAnpY0J=VCr6YZ>{3Tj zmeqhwo}bfLNyAyfYkB8&^lI(%3tL?d0B|!u*`InBdErFzvapakDtE5+F1+I@eryB_ ze`t*auX^L;XB3vS%HfUo8=x=-p4|q1aTH^K{%&wm)apUkgL;Y?6X0BfAtYQw2=z$yo@UX)+VLWOry%079)GV{VA#)GL_8jlPB03ZNKL_t)JvXuxQ#gAcf-Xp$X zV<%ow3nt~xR5Mc0#{fc5!^LvcUx1k_)8tiQ!}N*+%x%W;c(j;2RNBiOdoR1_Hd!@V zyoNztlT*mzaDw!T#QE>xF!Q2L4q(Hj!LqEVtQNpmK5+H{@GL+XvdZvjF(Pap>zcVP z^VTS(*@xO1Nk`lve%w;m+-%NL*Rb$$%n>0=_ra3UDh36D(@?;2iEdc951&>mX~Nw7 za6Hr#bjJeowsi+leuBSCDvy5Px2)q1H>*7Wh7yIvan4mM6_ea5NQupQhwioIFPadP zKuiy}G4qKvahy&WmhQNjEPQ|#X(1trYPQJTlMcfB&m^U{@A%)Sj4A;QVK@$|CL$M7f3v`Cuyuf(E^Zd3c zZ6{FmY4`yH4(s}>pX$`oOR)H?t9AGd#)9})W_2N5@CL25+X}+af_Gr(vbJCIcf^_P zJB9KvYabEn@mAI7IgZV*o!TUAU2D{_ch4?=S#XBK;?ElosmiDRijRa&$4Q6529uKs zWJ3#nNKO4ZrkL=7VWL-QQZEm)a3EuS)e#Q=AXhXqMa}Bn&3NKwj?mGz^y4B8sN88L z(nAOnzU!=@3I5`e2;&NfZozqT6fpHoj(U1>Aphqc0+1oirJ9+TTd~6d$G*(grL!oT zTq?5Lgs0}(vXob>EJxav_odIpcowFyl+@gYl8}>VE0!|3{>%W#EU>k9=`Bm(jn2gr zPEl|oE-GCGwu1${2@|r{sKIu8{oTacdDPw`8s|!&WLRK|B~IIn#`0~SO(K5CZgLfI zPHK6GS!4p!&Q&#(^$Yca&=PAgm`aiDgoVd+n-;kzH96SC>HU^WU->Ci^*7<1NiwsT zlh5U<7Q3*b&;^-X!6K|AZRuZ9!U6zA zW@PA+vdRkfs9wUY&o2}yz(s{X1dlMH>vwZ6YO&lueE8VmKvg)u`2Sh^vTaLl8%rQ0 z+nQ|G|NmokS6Q~E%q02&*aH|hUEOQ-v3&EK7)Xp8Ajn|6Qh(4dz4=5QP4Vf6GIjiyGK?_f+wQs)3Zz8xEyLP-MZMF3fH7>@|ClC-l z36nslY^=a7LuHw{8Yve(zXOeeBE=U8EXvpQX2OZ&mQ&8~?sh{=-lpF-Dafwf3!1Sc z(@aE_Zgz8^w22Xv7$!oQdVr5$d>(u;8|aJ(sWGS1`g1@c!yjT2G6y_Z#2tx8Fu)?I zW14I2Jw^kpED#;uB4@y<>(~|N7j&%-NHUDgAPzSl%b=01SKl}0WY^1<%I;Fs98&p6H7k9<73xt+o%xJ)XS3;HrMi^QcPeG`G_321RRhE|1+wcKbsk6+SK{}UK#3-oMml#}1#+Dz1RPCP%CYc7&<_%2f zd4-hJ3Sqk0qJ(^FZFsKOGZ+Rl0gR2C55Qu*sqUM!$Phnz6R~bc#TCikjvzObJW=Wo zvq)R5f-)M4O?_K^{_=(Tkj97m7Hwv`IxTr)f#jfj%W9v;=Fwy+U`LL}Tc8eKi;A7zggT9s63`~5FW)2Tp$ z2L-ZLGvx*mz-bmb91H`=g6-q~L_B9^T~Ib*FsZ6B+DaJuK$ zx+jP+Hl(@R9I*UAC}$9F%H_!tRHC#WF?#7BK^L9a$e~I+Wz~~*v6)}!1LlBZ1D>CR ziK?4cqFNF0#M9+4E;VTs3VStQ!~kd&(>wo4?IO2%S?IE@cIF314{>IDtz0+HH5UAAb>Qk2XnTD ziZLYpRH+nDu5#6@$aeF-Jk+tAda%~pN>yJKIzbk_vrEuA*8KR_KI%3BR)rLh2tf$t zk}U(xw#W+phx3`RWeqdop#6TGikv!Dbp{Gw#|R*S&!dJ4MzwJEUBJSzaG*xbHpjw( zbA7FgoKkhwV(t>w0bS+s1aQ$dSAi0@Zal&1Oq=-(S9mwT$-e-t#2a}dtu9eu-`8WW z5>7pJgsf8VQ|M2q6c0fIH>AhPDrySd`5Gbm8pI&@qM8!Cmqa$2Di$^}UpziN0j1n& zW;T!pcIl%a{G34!a{8bv90J{ZX$f^fqluhCL_PiVL_w%1rN}szPxJpvn=9JB!8amu zjIIgzQeUn>0RkwK{(GkC>BIXOQ~+n~@@WF)Dsc1|)UXZ&6Q+yR=ClAUvvZr;$Rzgk z@3QE}`>ptz?4b;4;)WKJH;ow=6)!mz>`%SM^ zrK|bS_HqQnO|8=AR9b_Un=o)N$e94sFA7!M6x32O3XC2`QlYLGC?_F83zII z8ULgQ(2o$FM4nzUB6sN8iPE`hi${uhzXh|e$xHr#8gHc#d?KQbJ#yMB3A8{1*13nh zX&vN?0^y6q+hXJ%HCvM6!tO&z%`nL40EA;8JuaV20@ZhA^fDcER2)!DRGGqKvOD-2)6`3StM9qm*^b9G&w>&G?|V+WT<3bS6S!!Nq2j*S~-Rj)0kVe1OHE>p@tO_|Wt z$F*dZnI<*Id)vq`H9nSTxOz>2`6^tBKB!G=K%L{cyR6Au@?w2tS5w3)>#(+jkd_-o zbqN*=`?`?#vZ(2}iWykfy$%7QR%U@mWF^QFY2^s&6Gse)6;Wk@{On54V5MMtlbV1< zNGns(T>e(;pJAPHdjKy&KxPJ*4B}c!{gYhYi+QE7_W();l*M*y@4&gx0n85n&z2L1 zQJN2iq(_On)>9Z{>G{k)JfYs94b&xA7bYaeLba|OtZ?ru%;v<}Y5fh)6Rv3|r8!e> z+RM@by`c=BHoa9)psyOoNfW(4DK=2f(~=Iq zj^vJ}MQxeLafpRpD5N}YDKdMV)``Hy++7|hhBa??oX1kUV!FgSrm`x(Aj;f><7$H-Bf!vgHH>}Pb| zv4)Iw0H>%SGs-Oe6mJnCR|q6b`t*%;c)>njTD&mXnjmik%gg$gvpl`#p%6)Da;UnK zlm$jUs-ohQ78fufD1iDJp737=>Oiqt>gfIHiu*V??Zs*qnw9O8g$$E4zBO!pff*HF zQ;F+pET;eKN+^p%f~@sriCnT>@2}}rkummBtPtAjirhvcBRV)urz&EBGikhYwM+F% zh<5r;bF)_<0HY%6;JJvHSO$l;_nbv|EphSApC;yU`t}(PZ%8l@JZ}g zMNJf|Rk20}U?qS=1>@Zotqs9T+=CXglirrgFjog-AjD*i=0O zwj4m7cFh{mPO$IPqs)-A>cG{;1Xd0}yB;S5D^x-Q%=3^WQYdvMWke3aqZTg`=umIS zI>8kRG`JL5R*Z3TmW0t*zu>fCh|ddFuxcdCwPq+1aa6%F8JGy*YPW+gsoEzeTJU8u zl6<^%>&v52Ugl1-zbI<~(*kL{7T`g)A$=L}#N@}jG^RerrXP%^a-A-=;P(tIUF%B* zwFGLOo`GhxYEf3rcI^pA3>L=G8`C7>Gc`VfTP{_k#wlx^W~@tBG0cwDEv}3A;hzab zvh_Y=T9tRt!6$R-|5L9shom?9>{Tp{Hi-bKHy{3)n&p`c&K{>`80$!#x?a<|TK8d| zhsmCY=-{#95|L$jn6B>SkZI(#-7_1n3955|b63HpBD$i$dpym9~U!imYhZ=T4-SEK7Px76s#F{~x+hj&Exm zOzoS`)@h^${~QcY-j-DzMsqTt#BvLu?}XU`W`h$Tj0HjJV)!ekPa( z3WsT_-~j;?K6_4gVta!=M0P+P)%BszEU$N-7?CqVdtrUp#A=&3%}(JJmR1Z+7_Ck8 zQ~Fp_jX6`K&o1s)Wga3`W=8L}gt)~$0Cr_<*uo@Cf@_wt?aEyLzGarUescT48iGS- zAw5@Cuuwh5K$pkXN~k$aQqpq+hh;#~KZdSAgHU6&+deZp3r;}vDhL(zB+y)e>bL!}LlVxUpNP_| zoPj%J%t0GM_=WSL8eVuLCUpbsN3wf6$Qvf-_;jqJTAG3lz2=2jssJ%{l8P_!|SNzxXL;CL; zNtG6AI=aOmcsd|ua)zzz8Od}lb$7sr#obWSrf`nQqFo!qT5x9z(h@3L;3f`_7aqlZ z(Ikgi_Fq^gH_~JhRT+U5p54l5A+%_Daz$W;|K;W;nX3N>7k_nwa>~RW6;i1!l!ZAr z@3V_ZF!#BVgFy6p4g30n+}DDOu%}BBE9G&CSq=1b-ESlH`O90{_Rl)F3TUPLq;%Hx zSQ+0y{}~cw%inhnv1v3e>~OPtiraxuR#FK_fDwq5%O;~%m102cx+Y?(%AggkM_B3# zY8jEBixKrBPP@V4{)vM+odVudtD<55h4Cx&;rc9k%Kj8JR+GKxBKu+4U{KH-@3`b=a*&=5F3i{*_(;eFKoXQTGhTTZ|4&3b4-zfm z4n|l{_}I{SGe^X|Sc}j9f+iYSl}~VGdzlSJWX@uq_HkR1V#ecL^0?6&(rt@~vO50JrJOJB52tZM*Jp&PyGyfE1U11=f#76VYU$gqy{FTW{Fo?2s z%?hB%d^o;BopgSgFH*baVxv1Dr7sHdv>HMvur;*xPLYYWlj2I$_FG@F#if_T;}01l zdMAnj;7sDD?I*3Z{yB`UP}*2#kUSuf@jQ_n#EpY>aHv&o@6veoV{H+U9K3+lGQGH* zp*u?>qzK$tOBuYfk*BE4Vg(cCEWc#H3>*(UI8i2(GCZhxN)M=5On!J3tmKT2rU}%j zEPKyhjVI2E#lo;!%zBY8NL-BLfB;6H9N%dLL=NHV?{SdC*?T+tSq zmm-$iunQkKkHb^=X)pFF2&X(K%(Kq-XCCMTGxO*L2!0TP$3dQWu#x&xE`zc5c0Ihb z0dH}EGfzM#T9jr`BT$iyh@L<3w!?%;4k7+E8h!k7^GYe}+GA>jB$2*8j!T30X{W+| zTr*T-gXl+|qGcRoQ)K{COa$E&02aNIYRbv@mo$v%N_MpQUJTVa!eF@##A-ZYgrz$7a<05Huf_iQ#Ez zezXOS3PVoTn+x@DhK0zQX`*03nR=@6FexV?UpM|oUe3*8vX5i4-+U0EY*Yg zE=(lWsj*;lIFp+&r6>@XPy&o}B+haT47^?(CX_!Mj*Ac^mP^kD5*f@66$Q*!U>`iX z_hW)u?|hlP6|DnuMCfwrJ(Zf=3F-*e5kggv8Bpd}5bfZ~IaW1I2cR`^ylLKYlEBMa z0V#$zXNI@%;hei z%7}HUCkPirFaymSQ^GQ@%3&qB`&tx+#VnkpL?$Pylo$YBK%u`zLD3b5v1?_g%wUl@ zLh5Rj5uWdL02S{tJN#i-EYgK0XzE?Kw}C@@W=Z)O_A1;W0zj^AFI!m_aEvTu4?qB$ zl+koDla`@H4Rk$zK_W4uT|r48F$0hpn3>-+6Kj)fVKfTy1NdQhoP;KsQ z(7mv)4FQn|AX^cI=co#{%2?-f=7pt{JHQj}@32q$X@pzkLn6{-$JYo_SUN~qT09ty zajvNVccrNURCDm?6j#jCwJPE~TJ2k)yJMs6q!a`zrSvFklxnbjK~f7g<0#U3tT-Fp zt*a7Rf-;+8sCsO7s4*ev>DXw`iiBiL)ka7iBN!;A4OM#qoCYOcF(O5A?W>=ni$p}J z;tLfJAZHdjSq61<4AEW1!Fbf*CbVciT?H9(3ocJwU+vH&n)IUREK@^c zJ~!OlKl4uD;WyZU&5I@3ru)!_#mdZ(8mz=b3jOe_M!&7Q3r$%UT5$4Fvadlu`$ zX+oV3vUsmNIiAjDJ#`SToj%N<8o?MzqZ%71;8qUB7hJ|3LJ3Ek`V^@qvsy#IGSBVg zYup=~ZGzfv9KZ!7I*+CFN zKg=vyT&&#v0qOJB6d;FMvj(BHnccyf&Y-D91)tVd91S2LdXs>P(&#!^pExsSZ5H9w z8HgNSXIt zPW|9C?p6ifF4%Jd74ru4HtA;enU^e0--*F&^+0>>qgEfJujVYNn_V%eh-O6id-eKs zQ<_YqLKa;rJOcynAM6Cqy zkkdZUo~x8rS5OaHzBtMr#Q;$XN1F*IsM$73&$95+uhAfpYBV{>Fwh<|X` zv6C^996wc&l;MT;s}l+Hw1(;)T8&B)Ueh&P=KCOS?mRS*f+V}Q?05MhT!1&(`&MJ(Y6pxB^qsX|`GczL{8ENe6 zWAnrjQ*x)>=yEJlsk|fx2Fgwq zG{ve;lb)xrwk#1T(hAePQ+B^?{o8;`F=lBdhI!VuE~T5g6cRL!IZHjm`gtHyzP8e1 zwZg-dtG!_OguFIJSA3|{Q> zsJw2x=-xSPk6?zV@v~fFfDv}WES^dJ001BWNklti6ZXk$RA z8B4l^9Ts1oT>r<^5j_Av1pL?E-DV>VWEOV;q6! zYqwvLX<$C=mGZ=Z0sW@_dSP?m;z_>I$SR(MoeTs!uimrtC7_bR1EY;;1gnopW4e@c zinp8(O{s}Gt$uvoc&?4)X(9=?z%8qI`Eer090PwM?EM&m&au4*9oMzJt$6fKSa?c! zl)X==qN2_qQkq4csM)F=jx~kF;=pqRcOfb`X=YBG6W=}=8Q=c+=w5zg zEZv~z#`i?k^?XNW({<|P@4x?+k!SXX3$NHEH%ofG4eaj9Twhmq#*t4|efy_xe*ESK zG=+RD#TkIIPq6kX9_IqTIpS13k*7Dzf%Jd-?f1;&qT;sO3Zww2lZ~_ZW(N+47;~U5 z9%TjY6X&Vtr=Na|a*r_lp*x~I4VNn#ZU`_yGMSBpY}PGZ4gMZkWZ5;<|v#jI4hvM9Eb&_QJU{_AfemSs1|uE`0$v#L>M zWiO9NfqD-rf^sx;2Cxl^0&I-uM7Xi|d$bPDNy#=i6_8`|a0L^Tt8*L5tcJ@s(XnuGJ#6 z@)KwLeBp3`eBK)I$M3(N&tLxd^eN!4Di}fjo10=wrluUM2lSK;>z{A(hwp!kI?82S z5Pk@wE$=yEY`317P43y=3{-L^!>Ee$+i$P3q_}F|84-2PsrvPoUuUbSKJ!F% z376@^xoZw@$S}S?g35?*zxnp3pMJ97V}psu#r$EjqR!F)97su~d;j&9UwT7M3^uYV zA8dS*nj9>@!3X2e$N7r1NBm{LL1=TDzL zfBH12bljvWp25(90=(r~5_6LU+>ImmvYYdlzx??xfBMr(5{52h0P~ee#Y{O12VIv-Ga@4X_~VcN{_p?3 zE$G$!du}USefxJU0%pC(_uv2c*B^i6D7da*j>``^dh^1Tcl-KuyPrOP`mfDVRAPh8 z2x;h}Ld6uON+lpwWJ(uiX4Rkm{N3OG{@3QfgnS|Pn{Y%41ONT~RzX$#=l}XoytUq> zW9GM&A`|`^+Dh3RTSxrmyYK$?(@&GoEa89Em6)@@8E(|LEVJ)8r~d1|{`Wb(NwFr| zOa{9JmU1h)xKm`C7iL6No%5ys^5yeqSlTN(pbNYccCd}GmVxTc1Td(IW6D7Ev@qI> zBR>7{>6c&r_4}vKOJustOKaorbEwr;Wz|8*ixl?5y;(ne|NT!t{RoP>T@%5Q-cc8U zJ?~-9JC+2Dzx_2&)~7%I_~*|*f8lhNS5zrXYGQ$5?36Y!$TX41`S#mC{qg%JWO_5f ziB%gt#x83^I!kUd}bXHBVUfk zOy$UTuU}D%fuUdnoDnNLJbwQ4?VrD#epcaGZgt7Ugw6s6*2viPD4a!6TLX$oYpdCq zMcb&SV) zTMS4V8@jJB>+x$Y{`u#hfB*e=X{1-V08HFkvr$R?_kaE4k1u~@JXv+n*JQRnr2z~;i3T4UvC)Ko z6hQKM{`U93{rOMdPJQ$1Q^Ayzvx8ImdB?$anX1p{{QQrfKYjWXk>4`tq2}N&SZFZs zP617*QKt$(GlkHCsLTh8sY-ikgtZD9vmYib7P2|JqS1t#L`UC;`cn9;S=`y$YvbY4 z40tm|j1?8YkEqAZPu53a%OXR&mPp|r8KT^d?Jg~q{YZyhBpJnxF^jPVuO{}Hqewp1 zFcgNZ(_O>Et9Qqfybfd$S@u|l!JCFsygw@P!QK~3Fp1fNgNod9dcchwt)r5aRuQK1 zWJK2Jt8J|Jc`|$ zTmtEEPWIo?K z`OVxE_h+p4WT-^b#WHQP6d84r(~{vpH~Gv&>oYk@R`t%A84>y9H}M>;cLFS>~&?Oq_YxKS5V)r^gE$;fr1tB z5Sol&@%!4QAtO&EDs7a;ZhETBmW`r8Rt^p@b~qoz@Z2ayOCsUvXUm>`DN(ytzh8}j zKn*xamjpKWV;*>>Y${Hknv9YT7fW9i6*&OFIm)*2Hur;CG~Vh`g$2Ta{5i6oCv$e= z%N_ybg1E-e)Kh6;&X4&mDXZhj+|2rMK2JPP?`Q^o3NCTmYm6E=D~I4T=QJ(Ha2pvD zYOU6s0}qv_1~l6`yC7Q-cE;1s;75y;D(VH5YYHh$Bhh%q07z{WLQzcQXRcCnaZb!e zViHlvxhpcy4EEq_5z$LhMr~<2z=zh(o`wH64OT|B7B z4Lb)8GlUkVoj?+!SipMMBsJ{S!;0g@yVC!yrSk zOTn2p$@qwM|VkPgI_G zdN!~x94{JWAl^=>1uxTPjm~FK z)PWC=I1Y*Zg8LzW_qJB9LG*3DZ90!+U=~w0s;H`}sDp}z?K9v8@?e|r9-KEGXT{#M zD%Fw3rdg4A<44E+E;m%xY1j$ANP^X@NIuv#Tb|79-W-Ebqmb+&k0w4_SZQ@yb}Kb% zitw;8qqBm1!!tlG_nUkX-d0vRi&?QyHF%mx2omOw@-DIb<4=w%29#U-bt$<^WSt@P z0rNR3PHvCzR2Z#AjA0g0)XaIBD7DqWY!ZZu=ZV>`-~_XO%4qmx+QDX;pTTa78D5hB zgG5;bB-0ewB)|J`>B1RI$Eg|K)B`RRC7YD7s(I0hd+;Sy=SD~USy2yL5I`b+R0Up@ zUCKmxZ;G*KE3E-6R1hREx52v6?`Rej9yr+IuVg4BC`5no*7=C`fg*v18AlJLF~X8a^+-;btxIbhDkN+3ht4rD8ALY{$#3>Z}^VqTo#s(_F)xw?hHQDY9+8pl=)HJf=A z&S?KhX=5iu^yxPR-r1G24KlW^tc=1-*Jm_RQE{-FZ`;;Tmj>!6E}IOicjPJc4pS;B z0A4Z!ncFuJcoszTw}S{f^_XcTqi#opTjkL6^VqFsB^c+O2&G1g)65 zSQ)ugOo?dJZDI<)3EQ`nnhXGGVLZO!mi!^xyXfm>_req@AnrA7GUsMLO-;R_1z zt2f<{opaPS+>nRln56eoZzyU1%s5%`9NG}A2nbq49n0wbpIea1umk_IOD`QsWaD8K zk@*byu%_(Yvit2!~jlmOGl%+;<(AgZzNN(9cu@?>waR=%oWrMDq%E6p* zdv5pD@usjT6U3oDYG|fLwQ{ryEO)^Ox!98Nxjz`m zj`#}~QKLPAh1l|LC{rq*wG!NuAK{4s?I9)|_LB$*nFs(>5@rD0Jr@i0W=V)=VGweB zaX{|=F$IA@5H2zh4DI*^6F}NR zinM}w_}zr9GRLZj=Ru}N1wO2Nw4Gy?3T-9av!>WPh4Y%X99cX0aCLDZD-i!5tVXCTU+^O^Ff}cs#vdr){YoNG2r~QRib3;7S0jpALhLcC`|g0J}=o z(eT>A+iM~53)I|=)5|nibEJ4NLz4u71~Q;BCpR_jvm)ZmzB|y!jL%VNr=pO8GA1ou zr?nd&NgE&@CQAX;blo>Sg9x<0hkrt>QaS2~xUeg_cEmB$~X&xt!;OgEtP*O9by$>{#GuAtAWtVa0`6P z`dWX7C6$|Lol>L_J>Ae?OCb5TcyxFaYdc^*nJ20OX1yq~si2&Kh<|QYS^fOwF zOBeX29O>Tl{3zPE{pEsaPTjGDV$h6)h{Jx;nPkY|VA`J-2i81XT9HSv4@AtU<*Na^ zBT`{NQ*-*EHBy6$N39{cD>f5>sPX4P9H<&Q2h#IZg-?bBAFXFv)AQI zj@nAMn;ViDCaVzg(dd{OjX|1ba0*5_@1r*BjQyNraBKudYZhprT1`!qqy05^fhLe2 zI`{1&PednbD*&8caBZs^5n%%H5spT*943Ty3m8CF+o?2#WvJx7N{$PPXI>iEk`aev z>FZMli>9o)FD(l1vYGOu)U>`&C&kW&;g-|mI;5meZm5Uz%1D=+%~9EdFcnRE&KHq6 zJ65aP=?7x0i_2Sfx0J{|!Pl?%7@TkNz+!sAF_%Os8dH=`)!0RCqJf+jD_c8)=gnz? zDu;p^?_FM_=Aq?;e-CuBLqIQQqUm6hyH;@_Ibd9KBnoUJotYa|++hHOs+rBhM8a6D z%EGMq_(#sG2H)7IH5M%~6Nw@KLV{5Mi!(`OdfSc2HuxhN5Xxj(OUpSClXF%ykjWpJ zrYAu8<=56F^v--T>Gmq*vGwj#PWu836yHjsE0pywr_T?_DnJ*d$k~rhTVx>gHe|93 zN@MC~7#pqEyi=pV_<(sSE=>m$KXO*aa0H;dS=p16PDH_jk{Wx$ zwFM8+QU|HpgTg3%`nLpt_u7YBB$flU-->Rj|K+4*Zd-;Kw6>Zji)ZX-`GKC5s)#sB zb>Lvg=(ez^=T712!+jryb~W5lK8x$Y{{mjRWe4z>Fihv{i=Q>gCP<@auoppjz)EL{ zTU&wS#?_E`a1*AeIXeJZHd7Ezh6WO~B1NqR>CHJa%sGR&)$6b^>Wa4L>4?mp3%_gM zOIQIQ&zGV`d6!TRitQ0K8u;VOCP{kqJEQCgGPMjJ_|q~ML3Iv z&nPnj8xoH%*vM|`TD2Yt^vq;_Yv4LwS%GLpPcVxLYo_-zMwX=M3N!~=g67VuQh2<& zfQ>rSNjm@$;CvEVK{yF*8z>e$_M6uw3XJXoHvs}69aROuqTTHrRB^U65G%@>)IB40 zU}i-|K2M1RD6M8`p@iAj~AVuyZp%(NUp;jTNVt#-}``1SX1hs+jd3&>_R>nlMS;lT<*=LF-YQ`Bv0hkH3TQ%- zOa~p=Qnj zmBkLu&~myjkqTM(j%nV|rNNUZ3!a9MD4ZWi`ikI?u4qFUg^g}EhD4lM zC0tyaNG_HN6ho;;PKJ&03Mnr=%fbsD=mI88DHt`R{@-B?JLo zj=&0GRrYOB3|k`>N7iI%_!57{O~UjlY*u`kbFr1~z}==>Qzo#L0N_o|`cn`TdTzU_ z#NsESuSi0NynVpdXDmn?4K&moBTRGb0lt86Zdt0XIY_+}rmrcsNmmv(%N|e7Gszh4 z!cqXgh}})0Zh-#K9E|9UV%SpL3bU}f9KTtg(V@%g;;vLRm@%`8|AC5;swQbt1DOy| zzw(xX-~x!kwo^H#;_HwhR8fW9JhjI(U9@y@K~)oLmZIK<3KY5v*6;zuS>9Ifv_mn^ zewMUq1%C@-nM>p)t)aKn#f)w;l+%cG#Bqg7uAJ8`fJZ%Ya*Phs1F_@?o$PYVAIHsf ztzE|$q^OMOOk{a3%PXo0_4xzx92yWI<{PKliAYsTBSHh~wDw$*X~5t zlLQ?3+O*gCOdHOZ#&Rl(U%3k zKOXDYxf+~InXcVy0O<+jtVZh%C1%vH>!$tIzO5UOC5+uWENeZ3e7&{iQ2k(yYlEy@ zAS_M??BR&;r8kV?AdtH}^bT05qgG6anN9$B11~}oQ@-ZFf`HO1cV* zol>q6#y;nj%Ayl4W3zeYc}e&eT10!vh4HF*O#=d&3%(2XqnXr&UR1#qeU`n9l&%}0 z8nXyt25%~ec>cL&|LkTV%J_aMOnB7m8(XBqRo9*-hl%KMQp$G7$0RG+@vsmP)vAkR zW?mZwvR|<1*~79-D$*d{t}zE65v`=of=uo!BMPqyTgQCx!#3vJ%aQgFg$QWW^?2iG zJ3=D^mgN-ZFcExuSw;|e464RwGhRJ)gMkVLiZ&Jgs$tfhC?m(P*}|K@#)(yu>U?(R zUt@AP>|}7nW796$Vg^iwdWZFPYn&xt5#0qMRusPumz5E>=1@*Pq2czt4z7(+m`lCr@t5MQ`wS z`n$oeX=db*t9LWgx!eG~)`Yy%OuFZgjWptFUno zx{_m!HjnO)BPkB*hwx-;crd4LuZVf^gsi^b$edF_D@47Nu~9xydBVwW)MBRse#$CDpPN)u_gxmjs7SfX*HBFt$ti>7j&8l%Y`AyQ7$a)B`;b zG(9aBl?S-0j zi^PcVwGglJ+lwx=xJtfazrS?G`d~GYcUdSN@+Tw$&9rr=gSo;=-!cr+77+(>^|h4? z>Ad(?2kB8+;%8WL001BWNklKrKMgxp5OQ~*YRau{+Xgc~3j5gL z5XQjRlMrYr@>T|G261%~yORj55Ms!=QgVTXv+GTT8Hi|A1B6!5-TM|D#{AlskB!%* zI@-QDxg*jDnvLdD(t(v%P}mwAKeJKTZ7>xq+bXx4emVuW%^s+=4%&vm{dq8{GAM&w zPtlj1r}Ym5;s6cSOD^{;qv{r{P--w^RX)Ohq`BU#9!uw)=3kNa?f758L3 z2y4ze&BQQgHsYTIYXn6yFJrECd0g3=_+4`a^Z$e*Q~S80CN@`Ib3-XJmI2UPoDueQ zOp=l(3SXmv8Gk%erAk9~i8gsDkM8&q8D$%E>=uTyvcI$hjEW0`M*9pmE-b3H=CSE_X6Hy771%jCw8{eG>xCg+=C-3oUYZE^put3xp(5bA09d2s4noKA$ZAX z9ElZa@)F~PBk~HlW}5$z!cU?_{3iOn+>>%82a6Pc+R4$oW+kniTV~}AnO`S}aVK;CZZt7# z86sE%%d)d@H76v&WM1*OFPu=E((2(EivkNq6f-BY14QBQaOD$iuMpbK7hR#B^$2GD zddFr4hXeI83yj|8%8cyyL?XbU5u>4}OwE+mm+`L&{M;;GXIjkRy|Os z094z3vweJ3!!Yz?xys$fpnxabKX=3RKeUi6~Ab9ZDK)JL}^WWRes?xTG12q z%2>GgipbB6f4W(@ME3Z0$EONerWNsB#Izb?T)!&f;hRjywi0vMk9Vq4>egC z5f95FRz+3Nq9+5*}y@?8;_kw(eLv?psmBmRm|;O{b9^7j+N}@}4ggwn z592f06W%ty)s|)+I&w}W>=JgWK}f@h1e7RXV-QTG)YcG;P}bOT0sAZaD)@v@1>yuD z9^0105Zs2FA=IjQ=p3m}jj>pFr5j6Na-xE7xETWmKjVOrfuUVsiXfB5C@Jz^MG#4# z4YA;K95}kFEKS?6#A3A4zEuRu=#cBCw!E5D(-DfQHzumBqbO1M!n^KGhz{=xXxOf) zU6cIkO_lypmC5VFTTd~na7Q!E>0YBU2NI7AvLa^aXDPSz_=}UHz4ku$qTxcLud&X?} zLbm`%V_(wFEyfND6;d3_XhKb?iM{E; zuR=wn6~y-qikfAmLV-a&#+cBTq-d#1a+nXGTtwi)zQd*#zcST;MWDOnoXT(-0gl>XuP*?|d5yR$VhrqYW&gqF}H|Gh{EOrBuQ znD1&2TgWK7iZ?Yf&osgItjW*978EBjh<=g%90^pkAt9xOo)@q5DU59xMqQzrS`T(v zNvl^cF)J*itueuhhwqa{>BimPO(5;A#6!$FOH||2T~kg-p>AhY*zDIVC-E=`r)IQab1F3Pig{*r zB+fuE3nvWJ=#dqucZru zXSZo?=6k_=i?J(||K)zupCl3U9%ldq_2=xg*E0Pt9iMV6bUAV?%>wW__NGi}iY*j% z4VI^9^94F8?z%IoS`&Pg2-#4KrXo_>C_*9b#>;1yc*4IE<o&gI$XwIUj^aBv z>*Eo(zF^P|ue%z94~1)2`mo3gI>gbW-T5$Jh7UGyi!soWu+0NugsfdljRY>q$IVsz zrcu@bx*n2DFnuudcUd54PQ*cTTZ*6%y(LKt&S~Fq1(rPwFIpZJ7M_`5)}`}bN$E-M4(aJGEWr;b+m>R*8_K_l&%o)%5UW0G(vu~keZ~F z3~4CDzM*8Q#qwmE@!UrSBc_N1BKc_lYQtAO2(^z>{UO5TnkSj$g-obJgr_@-nF^;M$z@ZJHs|`qVgjHrG6>AFEr5zP~VaCb? zT6Z63Qr!wOzcp)hoA&gKo@mW&M1PFv3 z_V4R8!Bex~j$-D93D2G8G=!p^uYXLrKNPB;mFC+MuwaQ&C zP!Bye(H9)2xpPrZ0%=fly27SLH^k#Y8cYH~aCgmu1I5`9zBWJuoL7XseP-+6<4=9` zGykW{!1nB=s3R~+j`gg)G?)b^0KJd;v_qN*$>|{4JXd(M8UmB8`Gt_A@h-xHs3~MA z6@mR`S`QO6t*!q-HeWluF#T1LjkG~=f*L5;WSNPzqmnF!e*RxvN4{zW7mYr2@a)cT zD1|+mLY9({Oljg*7#e#WPYeLVdxzzE+&$C&1rkf2M2pA5gM7I5b!oD(8XZ5D#*Y@b z+Hh`n>41n?P?&*N0?h=RM-dliaQhgvF*BSaQT!M@?k0E2UR4MC-Ax5RR#I2#TtmiAKXZv z#c+=CrD6g^e&8lqIcpt3N1M*N4&}^@z%$#jJjP0R2E%L8Eov{Dy4?@t796z3I>!y? zjh~p1FZ70T3H4FdRfF4%Lr5Yytqjg3RN2&ZlvS*tWE*Q0v$xVI2j?SWUP)ZQE2lD3 z3XuK^j>+jGLa8!~UE-}TEi@pvmcGE7>2`hU{>uV#x^^)8R2}KZua)Sqj!2iR2$t&S zni|K?)YjTT1wn6 z`uC?t&`5Yx?%?G&1Y6SV-oBuz_9X?L8^!W~&nU@E&efs=QeX}JNgJbB{ez(_QT?3w zc3?vNoE!v0iVAQU!DN-uW6R+B&H&0{tS!JaX5hy%Wbh+*eE?iNsgmj_GxAvtr_KQ} z_vTz;$00U}(3b~F8842L}xS2QUwB)iYYTp7)a0|j3g}%-0VxsN?E98U9#U1LX zd^^Ug@!So4?X##TvJ0w+44V46dmR6qLe4d)^XhZO!T|KIqRANg!)tll+3GA%f-g5C z+=%Py9`QADs#?#oxuQQYxWR;p-1e?MZ3r2VcrqWcawh83YKOC~9u($MSsGq`sZMU$ z5qD9^H&zHrwx-3jCfm+nnV|xn8L`}=p?&I51_b~^sj=l{CY>4fhQnS%ne>hq3LCfm z8*LDw#G$ZP2Jf!(QB>?K12ugwT zNtI;(g?lMPe|ff9GVw?5(j+D_`_{CH8mZC6?3*kiv-pAxPKzk+PW*aL=ECri z$wTIntn3*h)2DF2++`^s&D~2uEY*GmAAFh0R7LayeGt=7&^qyVp1J{0Gd2jTwEI8C z<1hgQ;$XQau(x7Y^u{r8xQ=dsV)lI+{{N|F08RMN_ zmgywT;#@GgSyrZh#zcG6Xn*LU>y18TrtGGri}&*rtCg#62N+v5G(u@r3=%mBpcd_wtv6(7;$lcq&W?}eqYOV&pqQ~z z&Fz-*7{!QB0kwNQQF(pFJ0W+Y))`I34xAfAMJJ>)`cC!kkBh+Eyizd|sfgL7V>-w9 zsIbY8i>a*JHj=b+9?7hvmN&?-k+mfyorIb#UF>tScS|iuu&9l)Ak9QsF;Mrk@+A1M z1OOa<1R4=~R#sxy!L zy)szO7=2BoPR`pSFC%!BEYYwy8Aw>A4&C5#X+v4c-AZ3}Q2AA;n#f6I|q@0iWH$BRf7R9FQyA;aDrf zP{?ubOS_|ui4FUiDozdu4cMyMnO7D*H_6=$$T8$G2R=F4YI9`nz|j%Gww4$wv3;1o`Szb7g1{59;H9L}UAP8{=b_m$TW#t4FJv&6eHAaQcYIl4L z^I&v0!^>6nlus_n=Ki@w?@?o4-$kEl9psJ1!ZNLSH|<1^wNBfvab8vTjdxQY8iYV^ zUteEkd9GMP4b0aA^*2ed3^xb2@3|^rB4D&KpTp}}Gam2oal~F~qV~vX1?n+(Xemuw zE3hD~iwJJFU@>6cMzyeO8_kwgyqJY_x+TUWh|i#@I2^G=IIWFt^{lFi_r$m|T@5M{ zxRSgP-x4n_n<)}Cmk2+MD~07OdP4{i|(4RCkViP%|B_L>%6IbC2+)bUGh0|$2d4~A`YM^(0& z=Jt7{2({#<`bcZLLK3C5CAKmmPm4kfM9dXlFa;GS*Qx2CMji2gva1 zX=(c*j6iZ?#ykK#(VZTMFo?-86%wfIV}+2g6-SY%L2%g}BV$E8Gii;FO-M69nI^%< z@qC&?k3!!(%m2bdCfon81k4xlwQm*QmkVc)vB`FtBmiDOp}*UVY{SKsk!EdluB%tP zny9=oA}>uVR80dJ&v|irPuT>PTz$OQ%#B~V72STlS}nt2l47Q!~4+Hm?8S$Tueds3MQ1J>~&aq z_17rm^GgTIjU%jTFju#bu>)E}6n911ipv30B=R^I0jOpQz%bN2wY6W*%!-%#;Mj7$ z%O;54Q!Y*{(N^yh-^Rlx2)!FC3%h-Kk76X;Yl?OYUo@4f+tCO+-Bs91J*;`ryyjVv zhNexIUJjiIWPEF7UPA0zI^8r^IIxj}gFhuA>HqsrLTn5AIK)=K0D1O~h1G!@crE#x z4PSm;Vw#F6tm|N(%SmOn^QsJ6SXVCJX&tG(<$<<9;iAOZvD#zerNV|aZLgj{dWaor z$~iP9LeoT|I>)56VSYwLJlOa&B9ye6o!N`VoqH2pncQ$AP}$5GWUGRMnePh%6E2cr zVOyq>!8tT>7Sw5`);DYu32Ub!s(K4sD>P!*GDhn2n3wP1Ncq2cG0{J=@-3O9YsbI+Rx^7=WNBEF=~s+6`8Y*@suPgVhixTlPE_cs!!$ zvI)s^_`w|()J*aboCM6Zjb4U3VxBY&H;iRO@O{uEOIc@2z{@(O0z_tZH~4gWSI>m1 z#@_$zTHI_U3>6%Jd7l~nZI;?-i0~bTDk4=9GpadxCPm^=&wQLMP+uPC)L35KO9C@f z^7P{VSr$C_OeYjui-qU%dG)s?iN=<%OyfT3hU@8}+(vSyNflS-!g9%YzyM_l)1TUE z*Rsg^v=M&SMTYmNYy8TB3NcFQlLsYfTMH3mxlPj~VvvUc%(mJ7_!|b(=O@;JziJgC z5g3y+0DZA^xiOD^eEg#;0YOb;@nFJNOt(~ZqK{1pCqz)ou$o$tEKG}~HDM3IZs0@9 z`b~d^BjkE{*}c566Ec?_JU9a4_YQ}QuQ~q5pK0KMou{#b6w;=5cc<3HF2=Kp!BClj zylC*6G;iydq8>H&l^z4Fux7IGVj{e*s|ZwpF`J1%MBV9rGhT;Z1A__|HP4Uz%}q&R z^8Pwge+9RgHh#VB-nwj*k>zG$&8yM7Mi*!{9V}gF_J7@lz=X?8XJ%x<17~JcEWi;n zdmy=>qHtm5&fU~77mtv2dHR-#sdYITLXXy{<8bU$tb($fZ|1GSm$?>)W7vJ$)J^_|gI6dw?tH*40_V%tn=c^eNh z%pi=$o^-XSX8vIz#@d2-J4O~)Q*y>|kfhy+Yk^{wG##VI*sxrvAY|4?Wt=&(x#zHL z^7?}*xJ2#Ms*PD5*%Q7FPReyk&|@@d300_91nPDjo7q{$p&@3BP`r=_o53xE6i8+& zkYgsau{pb*zE>cy7VK+GNpA1c0hO4v@ z7?tzn0BBG8EnjC-m!ZFdDUTN4eTu7LqvHq%rgn7^N+TjHIC7^jn* z6Tx>v#O!0o&^bI!IYMAg8>{Jkn{2@pZJ61ZAGP2A$Mr^pw7IL_RBdOWxfCo$%y0=# zcgG{Jl14gqA0;QmCc*FmwmYNM!kj|dfOAZSb8Bpt6|_5X8l-PUC1h)FIa1KUDloZc z(IWV#l>A-cZjtGq2!;U4xenLQfIgHL+dswvmi@FcS#_ zX3od;xI^8u?sek(m^*?0w`j%92(OG65&{+zzs)cU&&%ng3Rp%*xHb}#d4&}T6tT$? zBgFA`nU>JL@N(2=(H_>AzF#ra-||@3$=l@KO_m)31e?W>TJSQ$T{#Sy%>jL^Dg21~ zj%5{rIrI?(gS*Xl+5{9#Eji-0Feq|aZ^)AJas*mb!9p=FvgbUqOl^7VAaj*mht?g` zBAUrvzSsVgddphX%|aj~!4)Qgx5)5fmwP~D*q&3X(^kt5zwL_|ei@EPWJ1fU2#-Om zP>p{9SB!1&zGD96#cHAZdQ61iSK5uc&n09Ew&6?IP3HqtSn4nsk^0tLw|S~_ z5*{&)8)nf~K?kdh^%O)+eesPKU9*^}?v3C3W8TM3@n_eK`a#>Y=cV(y_^1+4Pz~J0 z1_?0_kSz-Cw#H5xxE>ylc_B-DxQ3yGyL135B8h0}1~T`WWkyW>dyQuFf~=yKjcq^J zW(aN`!3l^|2XX_RW*BI~Z8Rn>WIG=A<}wWqmmokf1=mpEp2Nj(&@x#H3U@1d6&7Ez zADus;Y;Whu19L|B&^+RQme%=*riBRGsx<)9DCveu2clJI@Gg z9@Y_hZr1B6NseZz=GGyh@&gguvh3}b)4ZA5dR5RZj(1EfXZ1dXJLzvKlqyszINhpV zy>Nn%=|Nk5WpAq>0G>I7RbkpUjm^2F+^4vK+<1~L{!B~4IE@P1PBEE`HfMxXR*-3L zaNilk%4TOcSw2(Cr>0*c|9$=?Ll=EqS1PooG8cy(1k>I4uXEopi-Hi_L^ZlRSY zOe)KwDCH1S;h2W^G!8FdYJkfCbzn5viKVF=aMRSfbY(PXX>Ce}87w0PM>=11sk#r4 zxv5H6;jo5y$C~9mJ5^>ZgDk>Pyl7^ZwT14LrPvM#B!Irj_*LWld<(kiS7iA9MV%+s z5^IH8J(NW1gg+Z|3xV*O5A^|W;kE9ldHoBjF0EPlKCu0&ujgowKtYU37ZyJ-fbf{njRIS`eMR|rgk_Jesyuop9bGnLV)psVjKuR1v)t{vtG6$~d*0TZBdss_lW9-esF=4P1e0IqjzT3y3uAT*_RlifDxOW( zz;cDwp);-}ub>dU+B&nL#QTYr-c)F&OfCRAyo$!eTnLdf;dM=d3&dgq#=o;u zY!$&S$^I(j8v`%#m`s^(Qn2zXH;P6Z3wfZR!j97QbA~Bc=1HC`BduUr-UP4<3J+46 zdqC04F`B_)py$#{ycq;R<6{qnLVrXc9bK?J149#@pQg)U+U^1oIk7Z929D(jh9HoOqn=vy-y20YavCIlUfN2;`t(3bRWhlFcHTe*5;RYC2^+bg z_bMxLpb9^WKZFK}`YP<|W0~7=K>px`UtBd;S(mRa^?)-vYcx- zbSBmP*J0=yJdK3X$hI5pAKsMOaf@?90z4)0#iHvKa&ifglTsS1tL_z36%-uPqZmhr>WlZE_D;@H6u{!N<`IioTQ1D2Wd2d1`Ru08jj8ZxugNQHLq_b{{q&mdE*G@y!{g`FALv>kmc7z%B1=^qMvNv$&zlb735aY=A)YO%u8Cu3ZQUM7^mtAP6k9#h}H3oow3YF@I}8w||C z$ZTfT^F_yMs|ZFgF$mr@UyXo)ml{oF?N`r_Iw|;Nn5Bi23!Vq*yRbvExFZyrN#xb0 z;EkcVX@0tcNkA)hG6B|IEKd~4E}@@nE|*NU!j{bHgOh=BzLp)xPlgyfN)g=^DWzyo|N#a#8Hz#FEF(nc0niUp1O~Q=w5AwJQ92If! zJY$nNr`a>Y1!tyVERR)Z-M#hs3cma2&_dc#u#ykl&KAk8-~${jiBZ{Z71v%Gv)S$k z5^gZ&|0M5$?{Z1tT)kfZ zJHoxE&S3)+95XokwSWP#6PT7RA%7BAOR-3c;1}yFD{SBvU;BLh45_oI@>PEV9@=|| z28|tYGQ*zK{g?u?IRrM$XIWGIH!F9ZRj3^!`d^w%jsGJih_d;_E$z zp#;!%)cJQ3{`zNmO(>4EapoZJA&yPKQLdXWhWOVugDJqML^%NOWK-s7q!>mn3{G#! z_~3Zr?F5k-ar$X4;_HBSa>tt$ng9Y$VY}+8;r$=h-fh>iBuNf)i@a2J&r}UZBt;Mq z`9c9AAm|1W(2L&m|G&cN7JG)%lXb%N;BMyTYwxTc0@_`D@|?BTitwwshexak&hw=H zt(1ZKktE)V{I?)hhGPI}6a%g=JY7_<+WEo`| z9C5k`4~QbE6l;R%AAxkIp`sT7?b^yL6O*O7K2?c-2mw>QcnV(xFc7Zr)R?m3X$!kT z9qsGP(ExOqzTG)m5?hdCl!R6`7!YPawe%L6C5bi-;!a+}KKgJa6P+NeiU*_-h~)lZ zYg=>v#n>cfbT9DL+)u}`%4_=QXe<&v))dAvZ(C>@1{ZqTig&t%K{s6^QN5P0NU(B( zP%t8DK6|EfGsXcaRj&lrZ>c|vyc2=zg~XIxM`h1H$aewC>|87nm+Wsu9&O5Rsm?UV zY9A+V{42=`Tx`Wvk;`t!_z-zi?SDaWUbxSNZ?ff=YuzK-igM8>@`{Bq0%2IAx`sF- zG3p}qL?ecJf5M+>wY^GJeo@3q0C8UBsZI5b2NRniKC*JtG4u`~S8J9|GBd^mRi)Pl zog8m4gJv<;0m^G`vs$VRDU_iOM=qgRgtQP@V>|TTLaWlBLv2fsI6-&N-){A*hDfr7 zbbVjCHs6fSbLh;ROzSBor&iWdcltC{$Bm5O0J;;L=(5%U#i>DoP=I|LmDUlQJQ%d-M2pTh zZt)74%WHobz%FhH>@!DJV;hyF``ev;e zkbNJb01`7{8;y6Et|r**%4rO|-%RQ;GEU^t3EL4-rF`funlY!wP%8!2{XT!4BALjQ z?bk~B7^rA+3vM2ga`Cv|yMQ{{^U>8Fdol{=eTzuF;UE{lLnDZ=Stz2r&z?Aijd{@m zt~)dPQ23O;$atToh}~LO_9&?|?zF4iN|oB^8q`Ble&=Yud~qc+b1~Ko+>TU)JN4|= z$0^;%mz?v3%k8PKvhY`2dtn59_X@=PC1EipY`>ztz%7V|Rl@8gNh$WDQ&&8S&H;iqaE;M zXLJUWp{b)D8zPwr7)eqCd`wxJ80ZA@0p(&an~)X!r-r{i3t`$wmpWC2q;$uGd3h$d z$TsYz@MKKQ&Pp^IOt-H&RB7CdG3z~q68;-Tiq;d!1EgMWX|(jnfaE5dNzkiDRfa=E z_%b%)X4_+X(hNMZDI9Tgb(RdeekR}LHf|@DJ|HoKii8z4rkdt6<6jfhvmPjCR>nSE zKg5gZ+-z(dX@gNrfag#C0{h*X**CXL=d0F`CL09nCo4HRfy3c7Upvt#6OmKIYNNf5 z&5SSufy3VP{^BlAlgj-s)2ItV$O*n6=Hfwj(V;v$GDy48OjofcbD|jSDEX!w^-d}f zTu0yyJ-M`xFRhFBfu*f2*ZpqE4`;kr_JB2dEZaU~EKP!SH=KBvky&SGCc8di=R5FK z!wF3?(N%yHauC)d=+|S@9^lrASaWI(X@k@5Ht;Iv^n2{)VQ|(ZQm4z>41gPEH41l_ zDWh|PF^5hA-mzUquW1LSg%J)f&X|W;ic~E>odJ5-s-DU*5m7<2qeTy_I5d9v*!A9r z(}`F~i3HabEZgG1Y9a|NaZsa=(#iab>8BF`)0*Kc+hNOA&$!|uwc6e+P~JL{#+-<^ zKCBZ>ww66b;*p!`7~@YbQoA{5z}i$TXh#G~lR@UMhJ+ldtMo1*bU~4;JlbSbW7e1g zlKsQh(|0;$T)l_59crHe!SEG6(~*RQoCe$%9Rzl@ zbLP^8;Krb3MuULU&w`PmTth}%V#Is;DBB3_uC2kJ4MQSBuX0gQ^^Ha#@}DiJG)~B5i+1<@xdv{2LdU8DZhgJL`!Eg6~D%eBn~jF+uG&ctg*>B!R{NAB*11Z$Le3A zQ?7r`#B946jkQo3^)PWn^!|MjoIbKb*2XfTs+1*_O10XmB?<<^NSk9y%~u8h;rK8tP zQHqg03f5ul(h9ACu*gquNjxdjVQ zwjZTJ^+Rf;t0S8QFy1g_>s0Q)#F`O>*ZrSB^+o=)p=ZRKUp)r4UzcNQbZ-xBwMN7$ z%1mXQr7m+7MlPSvgTaJ~U!tJ1xEk@xU-~8~h_1AVbmd0iPR4*_@gbvDJoZw%xZF}d zBc8Rij=t@4rdQ;QSIaKOAer$za0&hcR)tS$inG6k)JSdFC^dDaS;9qUSkca``5f}H z9p22|zL>$OxEoMK-z*d|b2_68S}Vz9Up7Q_tthd_K%)LjpLkE+^^j+>-~Nj-fZ!rz z9uP5nlxFY(Gh1Bo_|tq*b#0O{*;$cxAo0!|mqgbS7H#Im^`d1Kn+wNHtP$`sQeY(Z z2s~2tB+jf&mzYn_sVS4=2#SO8H8H|LXk&3fW33g*Mvhia5xW_GDNJ%lWj&#AArvcO z4c{MuDTEqNy=_Y*_t9kXo5liB)h8JgLA7rti^?eBWx|AN_4A3m!zP0P#nq2xMBw;R ziu&(*J0^5ecV5(6;vvLoK$>9vkiZfVR;H;sa?QB-GAQoCg8JDlx@uFzkk zcmSziY7FD&?FaVr&8O%#a4sO%WcRg4X;;J}HC^0y8=a1%qBRZjEZRqHkMTS3q!ur~ z*jEb`IwC|w+@=xPqgKwP1QVW&cTL-Y3v1%iOpH2_2s}E*fb1suog$v!{+L<4=f}Cp z@iOtliM^@aUQZf=cLnWjS(*fLgaUgop47Tvn?^9n>0YAoL#tybi~!;uLNHe*)MP~= zF#oGuo?eF)gC6)&b$ae>og&JorgUs3DS3d9sH|?DxRYO9xnU!ENhP^T4wn7>=wN!FOUkCtg(N z`r3J2cVgyL?D3-*Ce4+LPV{HipSJf8)rzjK8gxaVatqT0z1?+l-wjE|ot9PZBbjBx z#v;QX9nH;{!!X;NLl;@v2NR-d{~WHU9FLygZ9?2YmgUGBHI0-Aq*K z==lS*%hinlbm3`aM_NHsa8VKW%?J0a9J!!$49UG8zoaqc5v1avp5d zq|-?Bs`?ydUBt6I+72cw_hQc2LC@v)|4fFDt=Wy~^~s0BxOv)zAAb~J=SCnOOMrGK zQu=*bjectLF+Of-&(45uHWT(DVLpd;m-qt8sLjqm}Rs$8e1iIZouERKgQR>H+@fM4WbUmoJA} z9Zz1}`v*L|y`I5PmdX9im7;~``Ku$%y%1~2hG|qn3WTQ&5vn^~GUCtylbpTDR8ow{ znv39BJmf4-?HAF{CeG<(f2LccB>I>9IraCFB8HyaBGlJ_UzzVy4XV;^k@W4yXnS5A z_fdHl!AhL139yqMy0HllG(|YgL-h@=C)91;j{h@^i8z5|m{cQ}6@W+iG;sHj)n2Tv z?7rubn0ZlSsr|04oJ4D5Uzi?sx_A0lR3QXEBV-Ci<3qOa1ff@TXISy|c5?r${^iwh z=~Nv&VQq@`Bt|gM59MK}G?P>4B(Wec8YNsvEJ0nDQz3mv{BIzFd9e-Js-T7*vNy~z~Ecvp`~gzpr#UR zvziPpS|ya2$%F(+;~8sksX@OJZTl7h5#55qom)0XDLXq9>j9sP-Zx!@tz^m!NE4-| zkp9^y%xCktiXd3&Wv6V%ZeVk8PdTG~4&5;&1(m3ZVb zu_s8Z-^Bt26cpfkAjN?adT2K%MR4_NefppzBcRh@hZZvvVj2>b*sX)>*dqkq3}QTr z!P#?-^0GKz-$VzxQ4q`p2lZbhl=i3p47iT9O}2d84gE+PXGUFOaR2w4oy=QD=pr?KCf> zha~~DoNh8=r@(R&uG;QCo_&wF+^yEsVNPP|@gG#x7)Y|+~i z*w1C8ww{UcGhSp<5A1PmfqO+prCpew-#ld%g-M^?E=kltj4XwEk{c=*rhJp`D_?1L zrZuv~24Cw~2raJSuOm*aVKb$vGH9Cj_F5Y_}0=*M8++aac?hH$$RNp z<6z0k9rCI6r&VDb%t{=XV*yr_h|uiH4(9diRL$5<%3(IhJ2199ye7z!^^K(m4gav3*PzBgHTqK#DCHdOrG7CD{UdGv$1Yh(KHB0pL1P-?8e>Qqb z8*}K%3S(CZH}$k!LnI;sqlfgu%8yMmWC-Xd9E zUXlQ=fZ(`p^@!e=7VSCt9Dq+aJb|0`q_kT#%?-^yZ_q3L1*Wn;wOM&0 zjd{)LWO$OCWNOU25$*=(G#6!Q`V{f+pv!7tkKHmNsuM0JDR(I25`hI?Xl<7CokzD| zE4DJZ?!5{l!Ii(pU{jTGPrGnERyLdwy~_igF@yW5)k(=T2r`T_4QExrm@XiYxUlB- z&t>N{!l2JTvP?>sAaav=N$mLrY3o(+*3hfg#-pEKEtj3lY;e|aGX1zR>s$hDO=M^a)yqt^9eiz#fT=|O>(&!i{KFB0~iMD3J6BvV}8cv@ZO(N>aq(D z*ACe=oaSdF8uNzz(Y}^J0OZArETzo2kw?kvm_fdf{TJBTsvr7cbUq^7+?g>)!M4M_ z5-=U@v4}zj#}rXh!c)D@;d`O_4;lOo1bq3B&90uY!f`qnMaPJk6on7=pEUlaZY>nZ zkRB`7R(5jDJIBU(U zb77Jp&9A)S@$bu@O!JVDpLO+y=98A5%ql04aQB%3Zhme3+dyI>$tiS=+quhnDafPw zM6538WG*VbL_DwVaL%&_y?j*dn`qrXy<>_f`skJsgOv-2oD?US4CtOYu zE>3`Dn#PS&o46RA9xevKfAH~8g7pjhN(c1L9M344G4Gb)&yhG%!A!g7yizZgC4Pc1 z^!5kL@1FC&&Y=H}7hWE04!^WgmLFCXId2BXZ9CX#A}*#$WTwfgf24v_ux7Efv}pT{ zKlA0Qmy2y?la@`yE@2jqWC2K4z9mCKJTr~<#6TkP5g8F5H}1W8`FfTHVaB=+*-&gn zGMqAY0jMz^v;Ky-;jU(+=R9xBY-F&&)%FCJxqepfHTYg4f8z+*d;Ud6UYqxPYWY<& z@7471!3U&-Jfn*_G@f)a`z{8Lst8ZH-8wZNf_yI{Z#LB3PR#g3zTJ9dXnb32rJ@F>3`fvQaN&}`o@0cDH!E`882G_4X zqc!l+A|lM(yr|f9V@0;SJMVeR-P`N`45ixlDWK&<6f^ifCsi}btVA^|j`zRD^r~`& zK|29ZYYKk6KN7;9?^6@Z#fow*5Hs{`%_&IqJsM;sNqz>Y#?_G^)Wu+ZV?=7G~<_{kUJhe2qTo zWx@4>#C-l{8sU5B&{(Gq!Yi~xWa88L^y~f5lz|W{G$Nh(u@;6U2F)PC6qG$Rcx9Q0 z`;mD+e){^gdQTIF>i18!Sd)&)8iHfBOC%=U~Qxn9_BF;-ow_nWCsr zg2>s-KvhUuDH0!ffBN$EezF%SL~_!eHiLS4Eb*;QWndY3^L+aB{rh*?@HSa{io6;? zTzZS*74L&o!t$>(iZx`w{KrRfBF&^nNwnz1YjY4 z0w+23)5G9)gu(hzNZCh5;AHJ`hA1lp@cGNCm@He7f; zaBCqV;${NppT7TE>?H>f-h#$^R%+~oDL6jVQung)%2>Jnv4wL#^6S?x`N1uW6@sdMZF%<$+*-*K@r3}-KZNaM&#a+RY15nn(5 z^!4l4#5rkDBHGKZ+f*M>Gx^7|=_Sq?Nuq~d zGq60uHHP@M%}?jk*RMZ)TqcO}#~GVZ{%=OmJHe8r^n@;c{rlg3HgaS zh1Qy#nQpoDkTV$f9`?GO9ol^&!dCA{oKLi0^dLfWikX>-Uw{1=x*`qO zFWxESl{>#K*YIzUnK!PF(=*N78^<)rV@k z%$DAz99$;w^DjUD%`d;q^>y#_$#*UNg|9R&{QJNE`~UJ^{uDO+nsk;^xhnvPlXo7) zbjEO*xy-k3-+uX`PXb%z7$VidzFF$#jhW~{^1XQH*chv{0UCX#6T~h{KX^Q z#FGg_)#$e`KmGhSKLd~P@IOmIf9a<6{rB(R|MRc4-?lO~CYz^`E|MefvC-8_d;@21)0!6~q6;&3X9S|D(2^jFFb*01# zi1_m5)90^We*W_1w*u;PK`C05HQwkpBI4uYu9u{a9i0%SfclU#kg6(*weGW z{POef|LT`T{KM^ESWDyP0g1nH|3CcwKm6Sv{`1^1$gt$J9>3%EzcoOht(D1t`}Vt^ zfBr?AZw+}b8u$y5^#%AI;>mme@P|L#>s$CQd(DUe=O5MZh8rkj3Rhd^=g*&i`T1`? ze=e8hQV%d3;30YYCmFK;c@s+a=AZt{|NBqB{#tbad5TznH|QF+2kjyvS^nq5e35-3 zJ|e&V^!2ZP|ND9|?(_XnDS%=#ceLucG}1LM)@-prHJ)SRhUvVSeWYcIz=pRO`DTPq zT(ql1oGt^m$5phxy~0=(Ms^rnv2gPouF`>|8bqI9QIZke#9I!oD|{`|HZQ~#>MEa> zuKUNG=~3HnH&xQ&^cJSp&BZm)s`{R(OXLz<}FEs){qs_bt1T`VWlnx<`bABa~dUlsYD;0 zebCctrw*J64V|WEqipIMhW$jIM&&a)dPFo;h=amv&*$2>F5#_Z5wi3f@hQ&dPoF=X z8QBgXx`)4hK&0r(h`f?E?Vur*q6O!Yl3*v-@4+DTlH9grmDD+xT(dCXbS&jTq+YoP z3scnur%ZfqA)^)3%_mlXsFz_>`?NnCEi@--Pk z?Q_*Zc4}z6hyD1*L1Y1TQ%78X-)t_^w{YjZ#PdnpZ&Jon086z4Wu|6yeWi`kg&zeJ zH~C`3ph^x^TVqV1$~ER)*2%zv&X^JPDsBRC6ReTnk!|sz-Ht*#oY9*t&bIK#MpC5R zH!USJNuub`&@Rua9u701M$S|hRGdP_3bYwKJZ{crX}nfcCT7E2XYzzvKdlfk?--UH znzv{+DU(`&Oh03&+>`wW@EnAs?JT<~pr$>sf!ne(^ne zPIPVabT-+kZ$$$B?2-xs9mUptU&-7AGTc z>+qU}k@8NJ_~f0#z7Mw$J@e0NCjp*er0ll+I4RMdfP2c6sdWclWkJEU3RU+I##Upt z#SWEHOoO1F{VU&sV|h|#FqZYCbD;qg2s^$b1Kd!8#7hf&I1A?`tae@phoq=S2oG1p zOPML{JQr%ZxGEL5fZ5~xLd5AuKy$2p>%Gv9Ys(c^O4}MqGs`(RYphWl0z{t%Bdlc+ zz2-0}%DOoZ6RQT73Qt$TT;SV{OENjqpg4l*HjNCIGoG?j8kik#4?0dc8clS&KN9yQ zT}X;wrJ(T-B_D-lpyUIbU98)gLt*ext$h?Tv%Xh79Kx~8Z-lb5MYeS}Xb5dcwH)8s zKJtx7o`jLeJoR6+Rn{S+81=UnX=&|C2(AU-jW8j%X^F=gpU$rMEHx3kSLG)u&0hPT z5A%j3xOKX?Exf{vOqm|_ZOWun(vTKZ_?QO!U1v;7s+PGq_6ldIW;`Qk#cpCgYz|6T zkwq|1mInfwmcDn$bd-q%;v9`2VE@?@omUFg2Plgp4BA`c)~DJ-1oB?YLUi5igVkuh zOq#_Ck8-Mg`4d^j*(9Rt5AyDlBbYhHD2Jp{lP6hp394(C|K`y?q@8BK?4R~Q0nGS0 zrxjDD{`_;WDi4#hrGA^z_;O&4HVUy9C3X`d#6@I*K@6Dno%J@?F}tx zYZj_v0wUqq5koN$aSE{VP)+k1{lc_ChH;ND$}}L6BYLsI949S;w7RD+k2itf8QuMr zS;}vI+V;5N;UHC3{$K|iQ!?!@HU&JJj}4;{!T88}UP_{MSJ#Xr#J1##o)eGoj+HT* z`4~!n$|~texD75K2n3z7myurCJtF!|&f=?~io@OP5JVb?dK$oj)iOds4WwpcVnsG* zOH5YLsR}hbWs{yV=f)qzu_L-&0~X5$$I^UbW1IyWm!{?spRgE z7)C=bc@V3>0(~1MhJ%!=Sy-eE1t004=1Ew`x~^T5iG~~(iiroI4xb-cPpYPsGRKlc zgBVkslqZKx3=Qay!6>n&x3vbAXrujf?V-orv^4cfar64|Imi&Gx}51xNC2M@H9vFs z!k>_h|6e+ivot2;V3I!$?0U;*&#a?M%%w)QYR+TzZ<94ykK{5 za66emSD!f6jtCpyrVx?#Mu2ROV>*E9c=k|Qq}A|^z@M>hlMO41D0ZZx2{`S*sKhsw zCX=Nt9tJB!)JwTz$fTwmvW_Jh4W-GnI?SH2V-2n!Wf2H{-{`cir$r5j2cLUVnY;^I z(Y8=EK7!7aL1N;x@7S`OjSnU?7HyH5@gf4}qAAF(lgSx<=upw@`Q{_d09|z^9=vA5 z-KkAm>iec8IsDgio{uC)w72h^_;-hyHmHL@%@S6~ZO`S4SJ1wK+$x3mH90%;fzwiOl_7Orv zedkWoD8wHVXX&y~S&Hy(9 zY7^I5>DSMDy>d!sC-TJQd)NFguWjs<8Mh|ug2_fk+!M0A)+g&28OXfV#L(;ohXpp0 z+pE2)rZxi<_;WTikw`Q+97LJN5K$879c!f4mPyB5%S>Gh%FElHt5C$M?ex}0=YT5~ zu~ZsuiV&E&_x26O9-n~$1vDBPWPo5txkUCt11_Ub4;eEa*P!ZZL~oi>H`SN_iE)E6 z@ODhPd*qH4Z%Pak($iBOB!^|7XZ8Aos+yK@bSil2q>5Ejb{z!Q=B3H2uTvtA^c4)x z9BZ_dN5;K3GVe_U4hQVWX)Wj@v@M_Qh?;5XG{0%ca%5zC92?Xm)6KZO@QBe(=~pql z6B8*Y!6Y`5=1G`t1 z%Y0gA!t`{e29>SaE0UAb9~u^>7jq}=NcJ2N+z$D&@lNm{K`XZq`^)RkwtuksBZC*K z8Nosk7kGq#s5Mh8*V(Ky*sj>*4(o~<2`KKWPwJkD?9@3jDmmT&E|c2`%?eU)5Un$` zV%^Ifs;y(_WcqRjot5GNk%<3_JJqKH0j zutR+&$>m&#MO7kOU7(jIl@ndg&smB(^bC(pl|tV3B&w3JK2oY1f6QKvzs?- z?(2T!N8bE3f4%qShij^He|TGca*ZX-hPI{CC(N}?MZha(U=I`6~y z2wzQNFKpkyI8>Swj?eDQ(RFz82Q9xxGj3|?t}vw$We6`3D#LVaYH0R5FHAx$187?D zQ5vw(Y4jjAxvS|RP0?dHi^Tng2)XX-`%^^Sy!ny$X5PFPsbt1DB9}u}*Mob}PkGR} ziMYs&ym4<0q0x!@N5(ywk-y%LkNo&G{z*Y}%_cR}D1CxrX!O7YL&HMy7r@Ur8MsQ( z{U`nNAV{W69vLp(f;mro>6B$F~(4+_{RBAy9*IetCS# zXF>#)Vg@biF7!KQpT3`SK0dNxq3_>TE0c3rGt6=>J9`1*-g3_y`SEdqIA1=E z*qSSv%@(ULoC!eBFwllU)b9|++Its2*1I)Jl3O~GKB$Xcd1^?eq_rAk*&p;Fs?hCw zWI-1h@6sIGzL77jO_gesiipH2!CUAaq0zNG9B3$l!6VKG8Jb1Fw&GS2Ihnnpmuo6V z9|6=h61Ue6rS6$jkgOeRb~5KM!O*@~T9wAq#Y}`?9&MD#3Pty(E=4!E+4KAtgVtrCXrP?MQGMAf^-gW$m-O_POKZUR$B2;O6XRo=u= z`3E>|Jmq1uTQCx6cx(%YmV3KEcMPj=Ith47;6|@c082o$zmd;I)H0#jBql%SbUvSl z7Qn!v36!!17mDszmF3m@fka%!&be+OL+>3nR|7W9skOFJmR@2#J;y z5}~swNuepS(bkJ5#+KR%*MuUZtk6UHl5Sh$#JnRA93*)Qpd@seWTip_Og;8fT%2Cz zv{)rN$qRZ_wVeVSELf*0^0K8|2lXwVTmHv{7K$pZGtGY{NAc4UaXVkd@yrfJ?-Ni9 zABwi#2?CjUrZlvbovdpJn<5N~N6hTfP>%|rIc78%t+7l$N->^s&TQ}!iVa5|Y&wV( zd8)HDMrQXIm_5N~0;eR(T)#8Dk)lyr1!zPzGGS zjKG|)%xO*pf?BO2m-r8^O72O8$hgQj`R%9A|MuVg+jCU@=_baYU<8lu?u3+nad6^d znBZ;TU^TPlL{zvK05z-Rp3ie4-6q*aNnPx`GqPpmgt}*z)ni7;Psu$TY$}BIDq5OE zueo9G8NpySoXa+c#I`s*T~&{-g3&bP6h?e#bU@z1!kAfn8)=Ss+?sh?M|4wBgfsId zA_~!RV2R_gFy8vi@yVJ)1ZJNCn|KOB?c?Q&i`Fjecqg@u;UjR*Isf|K{Oy1GKmYec z-ng?{!~BfY5!tUm6!SJ!WSc-{SIFD{PTu5(Uy*t9AO7(le*WdJ+rKNa!b-x?fZ18m zz(Q5z=XlZ?|IHYUq1+tSo6SY~@=2w~%QE0lF(S!&2gD=8AU610QF42GHbU~UML|K= zm}EG?DfPH;24@7P#6sg)0~s)Qb@pX=SK_t!l%rY}Puhnd9R=l_ymyQW5_T1VTAL@b zhPf3Xa#dooCV351Y#poFz9JDjbobuqJ6Mt`i9i^`(V0|TaHDj$`a0BluMCk%w7hF} zD(z5-gTZ@G)m83xdpVI`^Cb5#Uu!6u;$ zjj~4#gK*)Tu#9Soz=$MjZSFYEW}Wu} z!De#?^Z`ATeu^hN?gqaaGg{LRXo98J1Wq|f9oChT`gkZZcQX|Pd8OBRB+B4RtwI*& z%0bw88PAc6NURP@4i8yNc;&KYr;2z?#j{a%Qqm|dH{02`&8AEYxhmEooNE-*q_d?* z*IoBu9}JgFK8^2Cha7=RlUd46l@=)-5yQ;PLWuhAYOA3VGqwRoX~m0&&ek9?0XkG= z&Iqd?^;`*h#Z+dnD9LJ@YN`{i?hGbmTHqF7y;n$w42%@`<2fDEQWI@shO`9UH^vrW zn`~0^K;ZxSfBw_I{VhD-R=W2h9@)@%hV_PoF=Z#J!og|L#Bh4>sbX-G}UehFiT@PynT6%0Hc` zHCSE;rYW zdx6e~V|3brf|1RkM5rJDdb9u|%J^oV9tIOz+zrYap+OF$Quc2F5{#WjS;?cy_bR%ReN(;F#pae$eY*XO|_vw6jbRDZ!5b3|5HSo^RT=2DlD%OZFqh1dh)Y@J7f4XItg%e5`+%6(pIg3s9LY z)n%w+h|cvpsP)X41Ao z?5rA{V%*S{t4NWZ40CA3|5w^|4d`xD-DsXO+R^9|Vgces#P=0PPH6$OI##{pnAC{--~mbLzO_-kXS!LUTfJV>gQBH0J;SAOJ~3K~y=}kqw)N zRFJCQJAY>*-+uqQFQ30iR~D9Kz6$~A>5a`BD4ICi=FD@Bj5a7H0*#N|@{9}EwpTWT zG&ljRQK5(? zDY0b;9jm?;5phlc`1aGc&!4{vDr;__XPrd+^zwv==yP_JDR=#ApJ`re42(yxu*T6a zB9aIGJk463(pKWb%khF#sX7%mTJ9N@X{qy8ayt=B8`K1gMpMqawt-Z*bouAyG;L4` zyl<8c%s(iLI~-w77*nihgUMMYZ*sws4)O0oG5w`o|h9^fO}9?W|`ehqX0c`dDeC_e=ex4 zRm{!LO5ElgqTE#3B{cb1SDtq|%+rn;6Vj!wjQrUKLXlaCPmphl&`jOhKsTVs5;t&| zTf(^GFNk%9`cNit$19(PL(j|Zg7riDn6}_jH+CEH_Ke`MtvO(nZDTD+U6-fi;8SRd z>WyKDSmK9Q)JV1+CPHhTy3si2Lmp;2hG|3%u0_9t||pWggigv~k@_ z>SbXxM!-aYJfa`hp2iU zX6qTvUZU1l1THdqJ{V!98xx5ld$j_6brnQMIYc~OTUbZ08C8hne&Kk$VVGAeMO1X_ zKv@DABnjfM=G>eD#g&Tm91_E!C&O818yl`QPbRXY2U>$O%wa6l;GD?3$)g|2Wc&2bN1+GW zFLkMtwa!I10>HiZ%a?CowE1SXSjJq!b+B+$vOfWT`?2v(+5-##8sQ@h4_mQ(M?OcN z#HEq&tka=Hf{R*OY=`F7!1yN*oE*!bcyCkSj6N^;Ye8zGE+e-ZURuixri<^@SDMYeLwr##(o!f z?xeHjlbM)Gek_~Y;+TQe5*`b1b0HyN_yJgTAb&_=1TQG;Vu6c=&Z z*?M;I>gZ`BEtn8c3TTTY7mtV+5uI~q>vD-of(mIvqOX`h24L89T4fb&8!g6sLYsRS zSJT-WcXj#CN47BD^&nn*%<_htk$G?2kE~3EhYMvOk@rvpQle5Rba}hASnSo)Ee0s> z%FMhMQA;55a;G23Q6xgL+1SH%c&GMNT-&No6QL_|K;n|pfwp#^Q)FWcc}^!LgF=X& zlkJRIVZf0*t@)_4y~ju2=uCkU_Pn_)T1yiVhGfUJVR%qcBvt#hbH|yoxSm3)$9gIpsB}h(HbLv~Q1c2C+ta-lluL@$k|Df- zW(^S)$KV~=6aw{% z%E1_$_euw*1&-U8qvGZ9b$EoRr$K1rmQaF4q$TSH&#a@Pw+B)0OrRC{7?ektMsWuQ z2N5w^AIARq>83McoJ+8(ZG?(lk9%#mh2^Es$b`YjF%_4gQJeN79iu|en*=A4NeNuY zir^5d@8`t66Oq$FaIf#y8Vv3tf!PC46_Udik1$~byMeb2q-I^s<%cc5G$sl*L`#sH z(hkP#5fzz;vNFd^Yva~?W3rY2|#BHc+IMFKif>R+Rxo?o7Q-{plMX3nIO0-z~TLvk3ss3 z!(iFVaE=UU7v?a_P6YZuy)(2mJN79l@f{J>Xk;6^ECkJw(K#MzsNHM@Yw=XC>Yj68 zUn%bxzGOEI-SbtkB0z7Y*EeOlt@l&AesyhmgRF%LRO!)X$fPf6YJ$TU06mfcX0QYeO{5WahSg!PY60cVGRk35&M=H+XujiCr_bWK`Zb?v zs&ZY}ZY&#v-_j!$@Btvf)jkU_*6-`D?4N?vo;-iXhxJcOtlg}2`gB1#tvAASv{rTYCid9e0Vr=9ME(qG5IWSFy6XvkVi9zbq&@=Qp-Mw_K?)Lm6DLu z^I}7+omjeD#?G=~+rBb0CB(w4Rp)SnA>=9jTk=g3S;Lc3iY95sKi6x#KhV=?D+86+ zOezMgzaEejIx1&qVV#$@B@|6Wf}S@)B9tu#X1gDyxv7~>x_>vsq3KI;82+o=u-_xJ z73E_Fut#A?=e+RxN-QT+%AQ;gWSp)DAtG@#)Ft1P@6^xg?&aLA0VdfbV=0uxvFx9- zn0DXhF(T+SaP!`ghb)`BHZ}EaFC{2TNYkdK3eY}YaSxsJqg`;B-hmFjesIO@4j>`T z*AHWs)Oza7UM{0O*;3r%4h?ZGOC4(Wi-bWWl@Lv>o}YNy;{z<5w7YnAgCZgnm6~LQLrS67Ws#ZYhY_ci!msjG8b^A-r!7WtpXdXRh7m0dhUPcDL%^0LEd=UEX)>z*_Z8rUGpu)oJ z(;hbd4>=Qhe%#Xp2X%03|8j1X*7sC}H;ujsvK0>Kub{MzIA#103HB5V08)(9;u`Ub z5JtPX+!Q{w#(Fo2E~eJfj9LaT^U>oaeT5fNgg%g~KPOyuvBn=Grl;h?UUp)r$PP1= zQXNfjT25T&&Yti`Q@Tn{BM$nj|BOCV)vq{ZE6VgZJx3-y*eU4iNd#tL)b%rRZAtJ9 zqxOpAZlf8|Z?zKlrA_X0R@XZ+X#GF`=-^!cT+Pq!t?`N?R9C?*TlX7Hc>apVmvqXJ zd4b!KW|syhzsNIlOt*_troNmd2TPNq6yZm16{(qp`;*e;Z2z|SddcMN%d@^I#nsaM z%7VB|=7qS-=(ME*Nv6h|)I_}xi?UJ97S|dM%i*%lyh&ZyikZq<8#h7!nAXO<7B?9Y zari1e)+u3;N7*ut|3z-XtGygZA(&`Yiy3lQi$ZuWt#N0MW^V zDC9#eI=0aS+!jriw^*IGkHw>}6iD`nGwYaY%!w-;iMAgo1kg8H4+r&jzJ{fE(ECs_ zf9p*7K68hVO^(hT17@*cuwipmlMK8{rhFWwYP9=1Q zBj@I7YVFX%YqQPFsMRJ3izWtZg57BMkc*06Q~`h%b%XkC^+9!O6R3pCJfQ~)pdM9K zaJ&yl1;XmA-PC&El%v$u;X_CMUHYhCiap$ZI2gg`J+}{+N@Y7~q0{Lh)Vibp(-#h^_R zZ|`}zj`@|q=fYfczcB1qGR>^A0$D`HMIX7>aFG+L$hgJ>N=vpG+E{U=7&Qezg&paQ zKm4gNC$p%>4XFZW`&5e>G)LjP$%;U+znawvX*$$EXUmdCM-Xk^9H*be&!-gF%dSmc zCP+jkb8LySlMl{=Dd&g*o5>|7C=!DkZ9o%uwat4bOJ(~?izb_e7J&Q~kGs8I!QZMf z&?j_u0(I%sVg}mTDA^9kel;>M*&x%qES*66KM@U7jrLj))Tj#dmfd{&`<_gCdUO%e z3acY^be6r1=UWQnR&A6@Q(SRjzsuVp@;Uk8gl6z1)eSL*iTnDGKWBCf5eCFiiFP{r zVrUncaXo=V=gx+xJm*lXyR+{K_rp&>wY@jhm?K2lU0D#f-f4NFZq?SridJQ6lCa2k zv*S!nCJ&jW%8LGv8@V7Ei(y zkt*h>Y3#r(g@4pv7rUymk2-&R~8WyXor}h6GK%UZ)KOtVZ~!SlZ#{fNEXu5yfDP z391Qk*lUb=cqV;P(aaOFU@hApdlXrT!X@n{5@N9}kC}gx9a>y-QQJn_JX=Qg!21Sw ztM@K#S%5^cOLwM=wEvsphR?d#zM1>_j=2Rh5bmW&UU*U;6-hIrmfF$TH4!x+YxLx^ zp;zEk8ZtLhk64zOT86~04XoA4=5Zh#Es${`tH$(Ha zameA&n88(w;2KC#V2ejK7;)sF`Icx|)RqJNS6Y-9qpjAGR6mCWlOowOZ$9Q+#kgrO z68*w?Apo-hGej1h`bWXpnTE0LrtLyn=qA7{m}qwDjo~rTg?{=YjkSjpDZ8EQvl^;5 zF#w#_Q*=G8m(~*;_1sLt8q2ETj#k#cVC6M4ZXJqXBrhz<2u_6B!Y1!6Mk6@ij4J)xkCR@#EJhjyHRtkv-|SLc+Ca6Kce zLJ;diwJ$Vcbn$zo;aCQiT0@4IGPz1Ck7%GFn#atC@c3u0uU|+E*14gI*J60L-!YvK z*rp3=S)v|0?~R1ty;GKpd^ek6CDrOu`RlJ^F^hY;_+yO|1|`(Y>T0OjtqN{RLKwa4 zk$f1(TNqSRkGt;tYULl6;pQ!iAkNpX8BnV8=!4C}yPOG@e%cfMQtiaux)fmd4%LfR zu{EZ=4R;ca;-ctRy(|`$IcH9t8i}6JOXy1ma?u`OB?l zKJ0T=ERlBeLlL^eEMOa+c7xj3oRXYd?ZSG4jNoOJF|DN3<60LZ+4yIGcGg(+>n2=6 zPmzGR99gFC5^vGdPw9;UV!gtW~=FfawciA@eg%2a*E*+J?>gPcdDV|hY za=fCU5<_MQC7s-TRIo>G2J!JQF@Wa@);xfvJPjuL;@azANbHg9WC40CsZg znz%bhnahLfHJ?kX!&)5juu{xNB9a8*WRRE4M%vx%)#iQ)ZTOsyG24PjA|x zQeH&N7631une*sU4Fbnf)HGc3}Z>3v1^xO%)X6re3-HV0Mw|u-<^r*%=5yy@$k%6 z?3P!EYGcf(GhbOjU|g09>Z!4R&)&LIS^S>Lds0Xl`EA6cABOU|uf^k9e0DOXZqXDH zr2~pT=L2s-?GNY=7OuO@`IwjW`ybWV)@n;oU+Sjhwg8Y8qJpCgWN4@tbO|Xw@j>}A z2Y<6N?#1=6B)IN>E9P~=uJf=Sz?&YR-zji&j5J2NAabxLH`l9N)2DSMugOGwT3L)9 ze0bp-1~=8~GpK~j6Ke~thv=SAm7|mWOV}FWs{d1=;6WDT5&L*N(`3BCh zdU^H&)>^GXe_S01fC0itEj8;|dzoPNd7wLItY7Z^0VX?VBZx_*3`Gp2v}R+Ej#L*X z`S!X)wa|?}7Q*z3gY2*P zY!0a0q8TW8@(~?pk=$H>Q`TN8%*SAh6x)lu3qCXK^{&@XiIh^Lc`2lh@ATc|zKs$r zDguUcX!$al>P_%oB+`-^)Lkx??@7(A*|*HtG836FSGj~+7b_YOsZ>sdm^PXWW|)Ww z@N`_0@q9Eo-Shbmdh_MC!Afj3<$gfs-6Q1`BXGNm`qmBrW`yCvtkst%#Ap$%;l;7$ zMWOQ!wT?IHGK|<0w_dWZ&#^xZc8o=}xq`p@a)x1(jJFxE=(~uvZW)zm5*y-PKN(@8 z9a1UNiS&JL|jNelP=hR55rRY1+dvi+my7xCL&esf(E~ z(6Kr#o-vrv`_;cGHfLu(E1vmnZH6;MPnPFgLK?1Fc<8y^pm9%+PX-49D#T2?9&5VM z&`X|9xhvL4->g|tV7KaGc!|1&mxekZ|2n*f~K|*1Pu#_#JSruto zz^hUfv*47vRaYlZC#Ssj-T8LB?RpK{z0n&41-t*_dkeaWPw8Fl)k{X?T}#7eEl<~# zjkPRWQK4we(#SnH0dT1n=w~UD%`MO$MG_a%>rkp;=td92Dt>DUS!SB)q0D%DGmzaS!-f>C~>V=S((xKNk%_(-fp~gZFenDwxFw4~I-Xd6c=D6oO zlE{I=1SA;6R=ULs^9(QoW82_!8xT8bUx^m+Xv~z`7-d5sYYP!}a37^J-mBO*ott_z zz|gKyp>WBO7kfmV1dY51%cY({S9nK@=`Eh<2TgpP5U`y*IXe=m0?8r=I1k$_v0*;nrdI;xVXup5p;W>0Q_#YF>6C>MsR}* zYf!z{-e}xLI5|deLs+P6A^81=h&^gWgvKxirae2hdNENU!5xkiSd;)rLfhFw;?{|> z-N2D|GMz}n%eunw`VI7Gc48N1EW`(W-y2v^oDS8=r3xp*i4Ayt(K4 z7N;c@(6gL|F-x2}`h$AaLse+mgr@*eby2JH)A7c;^jPCIybE>E?gxv7q`j!JVDXqe zipL)hVtvP3JijeA^`Dq15mP?45>CZ{D(E0$*8a1)&s7t#8gRUGRWBZL+k~5^gVFvY zUh1#tja4y?Trw`xenJzBrtDj}c1uY&t5tN}1G4O8MpGHwc~ufNZx`yGpjONcnWt2Rr^@ zaf&q+FdWapB3e{bnGVCZb<4GS8GCsZaA!X1iMYj59hPK;oFKaz@N&DVL$x?W2zi-_I8cr z%E4UCXZVQj4W`%1shxYM``?&GcidW{dPIo6YNG(U>hz{j=pybJM6kkE>Eh7E(;C|Ril4E&#jv#`TAxPUTbD0ppgl$6N!W|9&1($^YHD> zbg7hjwqJ-s6%rhB?RkmaUHM_%>1uhh`-Uh5KMqj6*?elCL|FT+^GbFsMk;|RujQthdl~j8|^)$1M6vu2yScBm6FXJ$AE>cvCdE;U( zaM!luncTP_q~sfxEJ#wKGb17|t8^ItjJ*H=AOJ~3K~yR<)sx2-oisq7{rt6sTqvpa z24vbECN*X>!%3UQ+040VA&$LB;F8IRK9X#gjG224MRR`vm~YE2X+Go|5s@dfoFSDp zaI*2L#B1|wP!!BpPk!x$PWdu0vWSBCq>C80AAsX4oiaDfu?uXce3x?S;!^f|w^aDp zc-rHUYpAJi>*qBolHUG#yY_u>ro(tRXzV{5Dc-=Zgo;KqbDO?rX7}>eM!XPpGQV(b zdAXb4g=Q2e(X_BAQCZf(4n4HglSBJRT)nBBjb0)TN*97 zBSX4*iq8b87}0&X0^kyUv)bSx%NRi_AWmuZoa zWUlROBZ~*~G6S1!8Xj-8bb=?a>pjv8+nirC*RJr3zs2qw5&Y&SGolY4y(UTScC6+M z)#d*kh4xx3@0}7rpJJeAtpA2Ui{E<^N=h@+r!?y%>Iw;%7Vm6D#DZV+6WQ(SKv9hr zF}ULFFuIH_VooJ}4E5&FtfaN1&!Bq9K=2K@9{Uk&l;K$wH6mx}%*e#1;oT>!KZ63| zj1NE^XTYGA{gUGmo=S7B5!k~Ih5IkVcL`mTK@H1`3$C%ChZ3qM^=fH(_3Rh3Y3l$8 zOD02bzHzS5!LafLhGuM}2RPGgU#v3x^t$?C!HUzQJ|!d?(P*`-hI=S*8)V}+n8rAo z70SYF^e-U--rRz)@@QbNtWveeM^=G6^rfKApXPyaiqHxGSm?0%-@)r{mIB{kUqycd?c%Z3`%h(KLm<~f&)~{TQJ0ju~+||p) zouZ%@-`W--N#1S2(h}r0-L@stmP0){n71(%nULN>PoP{4Q>h^36!7Z#VR(kd&Fh2S zup(bEH>hI5pUE;l-E$J!PmSs#H3bok73|>FkshSVmceH|Qv|CHlDTM}&Ihi;U^sO0 z(g?cx(cK2Gxf^Ud)vSvLFNA4&o*ENy6C(wq7fNo(CL&?o8j=3SzS26)R=KLC-3A`D z^9EsCs4tSl<0k!cA9q@W=gd@K?>jOw5mW8`$Z%Fs9Vw1dZr=Z6EF+!wn;Up6Av6@C?N=AEGI zpcoN6>mhO+F(OobcDu;Xdaq4g(|(Iky=C3LePSG{%kLl-zTx%l=lzZ3pjKJbI*QQ~ zE_FZV;v%Zr7^OH0ws+LoiS)0VFxbSOOom@(A*?>%d7*_$1XF0oq}uj!A@J^OMG$A& zL}OPUbsh}}F!R^*pha3j4MswP9zrAaO(S=4M{jZ;U380xmERk|Q=6$vZ{VoK<8ld( z>=BwGLl?g$Cld^)>nA&pPRs;os&r>S*B>;Jv9z^QeI`+13uX;7ya55ns-(;MIheQS_@N8=92T39^gMX4L0JgfY1|Ws!a9wdu{NW5cHQn zr9do6^oTPNcH~z#@3{qZF5?3WdhUY77!0_dPzb>p;S78iLZ+F|^N0Jm^MM2o?neOe z>64v%<^#=6O>Cv23!>9CFSAWoYHBPKipf~xe=2Wo22IovE9ubM@!9aL7Q?|`$N`^= z>=>=Ko-{tu?Tu+Xi8Ti^i7z1lar!8XjO6j*=&!i%OPD3H4J_KCop_b_bMkno4RON?lA5gwhe zqU2(T4!7LEd)f~gzbvUNMHgsQi+D%#iIqd4<>=Sw2EdyMPAZ$ozQWvmUh)~@!cv#g z$+~H+kdJu)qKonv@7$D~+1YM%FeVN`yW&PSFn-Y`Vvr*&+zpslR zH*6*!qMEi< z0f-g)q*8Z^p=v$%0}`HBA(>B9Hek1OC!^O%hc;p4vkYnxp`*}pc9bxPl3~@&qnS0i z{ES}?9@dw8*=Ev9j}ykI;EbrPMGB=2SfgO049+I$+rrGnNQT67dS8sg*Y#zj3RB6H zdQ>{4d0*uEURf>+8WPP#rr+PS?#%FPPA6hs)GK-1@)i-{Mwp~D57U-j$B>#San;y~ z5Y~WOL#$BMouOmrr!S|^xZTGA&v8reU0%%6vn8R@)6*MX+@;G>_ypjVcGLy@{%HWR z;qgrt!4VO-Sve?b_(g1@(M@|Zl}#M!YgfBAq`B5{_}S!*wx&K?b5uK~M-`YkPgQ0r zAJSkxcv5Ky^tRKr)EYk@RZY`a8uFWt%w9Ygj7q^j*#p#XG{Q)I-7VBTZ-3U$?ei3h z(R`=yp?D)bVE{laB}0?s^}6jE*ZiyuYKoCbN}uxxyhwmV%t#>GqSmdXNTiI{`;kbk zZNdAS5L7DO;1qcg!97JPy-QX#ehgXV3u*Hb*pZj~iM$6H_PNSv@bf)s<7j+vY=EvNq8t|mY$A%Hftw1ynHXfJpMslb%8M7Ma z2k*uXan`qk>6(_VdCdxB*k4QooisliZF;@h_QSFs-u>=^H>ZW{ni+gWI##iiD*HGm zqL%Dn7L=e5eOMOX#qz6Sl~pf9ovO{d2qBO!x|XlV?NasY;KUQn9-Cy5HXqw3*e6f?dDY z%;ptxUOe;N*J-loKxKuX;;p;JA-Z&uLlWB*8G<<}8gEuLqwaL|*T^)maggwpvKP%h% zneZ8(P@uBzq7Pp75q#%^>5n0z&iigmh|{-)g1R8MXVM~ZYF!k=kC&4~S;Zf2$_XkP4af@lE0o8tRnt`QpP z5yWpcLXJp>f}gg?%>jomA03#-+lS0`Vm$U(*8E)e{FgsY@m6|H{?stj*OStowNIFZ zAQpW3N@l&ZH8TULJG-XGQus383=X#~S&uf`Fd;4B1lXXeo(!u=pKX#&2;1-Jj4>9l zWkagQAfqF5CMQ*s=2$bd#W$g^abN2i^D*^R&!RuVb2-SoS&;K zl2i-?zGH3TksHDblA5||==Pk$nRo&-ay(kFzcb4q4rPMU*g-A3frd*FK8H?4>I5!% z;Y`HBT>|T;oQ9DvDC$>gA0G`av_>E~S(DK_#OYq^712(kd4pMD%4P{UFlGHVHE%B? z|3A*&rf1XaI1j73pSQb*!x@rsw1{Cqi!1_UlT}s$0wX{W2S~iIU?51ciSn_?HbEBo z0a*pvDKLU0iU8VzWLXq#%a$mMk|mOgMNpFYCCa2|n&b?J9CA1_-80kE-S2xUi>m9Y ztIqxOP{_k!zt6{gpHrV#)v0stb8M~k^yxGA;OeDp*EK?23n0zrV40>S$NxmF(?dmm z`QhLF=64@Gd~e;}dOcHfs6$b5BXuaNjjprVn(?|Vw~G$#acyQtja7h<7c}W`1Q6qI4Yn#{s)907cThx@sBB0T5Rp#TD z(SNIA{utX=WPFG>!lTbLEFV02#ZR~G)U0&RItJQI6*sD#XgIx?tu~XwmtSk(jAFx_ zGREv^*9hx=^h0Njzq5leJzwv7)}qGzJ^5E=DtB<p z#>5S#h@dgqZ2o)hlI?cMj3^!|ECgROGck7>j?S)wM1jR^5}-NUpLLtOjxVkl`MA8@ zxR9lbN0qDekwckh!AHVugyfCZz|4PMD+y}nZf4g0a(GX8X4@lebNR_|=k~ej^va%* zA5TOwjwFSYPQPp5GkT}Pa#+kK*^NTMzk8+v59+TM3P^l(#;&{~jy^!S00*X1hD?-p?@-eo3ahTGVWj|r4*<#nl-h=uI>U}h z33vm@6$4OFum08P`BQl7@9Mz2DHPNWy%_dF@4xO`*3?Wv>tWl>Kvd1^oPrX$mVG#q3x!%gnvp9f;OA|Me+RPe)P>A~=ZMsmz)Iy+*(~^os zv2$3li?a!ph@%J2;#*W+QAG}bn6Zf)PLxIoZ~Jwo@F5n~ zPa8Z3jaqh=qAv;jsXk0%+wg6gI-e zE{a~2Fc$+6H>k{g0v(!<^zul#*GRz&Te#;;bHRj!{!8<*L^If4|r4;RyY&1y_cNMI50Z^Twjy2FQ z%>27WxUcG00WIe<9B+h!rmRHUqgO!?rRD4wB+a)U+UOJ`LV900T-HacR2uW9Q5%7v zBKiS##1(WJIDDc46s?$7!=v5ig5k|vR1Of1=-E2V_ALb=t7rQq)hI(N1?jP|=KWD3 z0fyNKv{mnxh2sXuKr}uf-r1V+E5Kb@{Ns1t|NY$ao6AivWP$w+ z;T2$Nd8V}qC+}SbdLoqKFtWBTH<#Cc_`_fR`Ct8mfBHxN#eerRf9-Gl)xY$we++ju z07Lvcf}{GEzR<#>d|UPO;dw5BgUtXGcKspmtG5DQIcQkcYagm*!@lk+eYZNm&qsoy-X^x@y#tes^_+e7U3 zq5xtEv}hMd#Vu;4Zy|cE=+Pe*wS;gO}GpaO(<`8mqvk2G5=j#XkJ{T&8&sGD_=Rw(tgHD`wDn0jg>w|Q|} z7ROQ~K<8yCu8##e`qpjl4AZot1=|7*h&<0lihFD>HckfC3rfaSc8hAncyxxpoeS7*+oTnd575dKi2IyZB59P<8#Rj~7-Y3`IG`w}3 zF*}AP}vX6_J*YHk~|GzX!7`w%8`+tII$HC?dm3F;1` zX*JJQtA!l@Mwt1LyEaFmnK@Q@1SQX2hK!Zf9Y^&Wh+t{xfT+81?TrD zSVyfSNjyRu$g8f3@>&tZ0a;PaeEXZPeEfg^)lYr$ciwyWaK+u_!F>nDbTef~z{}_` z?WBJbw-{1!7MM6hS&A{My(5kN@@m`Pv_U^Jo66|LEWOcmHia4ulch zr`bw$Y^~gS7Sc8vvb$OtR!ZG11V>Bv{6_b-&CS0`$(CQKyZa}=2@FH$VW#MQ9pf?X}gp- zv~1@w21({-HzILpA~q?Mn&zO>8e9z)_S~EUd*#Dx$5H__cHQKCf5R_MV;{=jIuNkw zKIu~2d6#Xziz=lskZ2FVKQao&Y~?IKD_QtKEZv{O;CLIr8eCn$p>jcybU|uozJW+b z&kSca2^pnYqjSt5$dTy_y_3b0OPg)lWxyWYCeNBvMzkE?mKc%2{(aNOhpx?Sfx9g}SN3^8hHr3Nbhbv7yg)M>E-64v#V56r3X6UV`lZrSx8wcRZcn&R0(n@pu>)U}T-$yu2TUGYiW(_ReWm9```jui)fW9@1QRS8xUzH+ez5wg-ilgH0nLF`8U=p%An zGkSwqxAP-sWJUy_`WzC~1`P*~Y1PET!dHSHp`iD!=#-SBp8%ar&9zrib+`|Imn15M zC$ln!ffssm)N|Z0M(rr=2R26OIVGS+*s+CQ319F83gM96l9(!;?%Rl_k-2%;U9TFe zp8{hC8H&}cS~Tui6J_G%W&eo`9-OU85|`s7bhU{t7=r9jy$B@G4r6}L*`>ZPWUd`U zl5QbJlUC~wL`b5*woh*M-a4A8gftl<6gImdfW`g|WZ(XJ@7| z1&YVs(MRK-n?-Q*J_gd1P+0H!bp~*$;?`-(p%oFw8Sn^t46u3ZWqxqh71g^>PAed2rH9n7qBkQSuYnHFWmA(Y_+dre^v_V~+3d4$ z18snJekkbU_|56>`OSj7;BCEM)nDMnXe<2gDS^Dla7x0bCd`<*ajXR>Vyh!*Uq;YP7v}#wCG8`W8Wr=ZxwVdpepimhGV;YliCN&Wr9tQ?1`iHf$l5GP|!OAM# z$uJg{u!{>I>`$IN`Q*oc^Y4HBQ~%< ze>mHpE>HuBq&l~s^UKY>wc`E@cYpYMfB3CG`_A{i{rb=R?0@>kbkv$&FIA=0>R?SU%@2G7MytK@Kk+z<%dOX zuPc{PG7pF_3CJ{fX>A$C&@j)DSe3;UA(+bQq&4MKlVNSq4QE+?Ts6K(VSpg;7Nx7e z8a+mi7L^X)YVan86&xcFE?aiNZDA;F!9eg;Q=_)6-xi64hcE9%S0)*VI9gZ@+Nswj zTc)O};@RR3tc0NZ%+O9HcN1o-=AVjyhBempg%NAZ1P-_BB%OVN7~x29LqTe(xxxMD zE`+-#A2R?N_J*2!M}sgs{KgLV2rMSTX;j^=3FXRU4J2c4USC7Or4OIWC8&ji?Ws(w4pcRarbSMXLi7o>)ptVD7X8m73c*_2>V zEer+kq7&QT;3hu@M&QJHuWygAh$G98?5bixxYfezBkSUT1f)1PEZOaY0iJQnj(`N@*O2m9(&9844}!n4uR7D34}y`zdEV5PGO( z9VFUwV(I|7=7z@|h~9(lO%2iC_*-v2{KPN(qhI#x23v;V_?{!>5o zuUQE=6FUrX96Tx%px1u6hkS8CMG-*gIc?P{|Jy>%ENOSmPpRPNsHlO9PNQWxZdjMr&ww;F2uTec#!xiw6~k^0-vn|rF+87 zn{5y|17=&1j7Xw=Iw-Q3bN#Xa03ZNKL_t*6c~;F@6Lkx72}{z_7FOMRVT_>KL%C$% z5=Vt;(E&TCzsy;%B&_3s1D(u}M)Y0P)6pVfDj02$JbRML&ZtC?GP9dlE2HmnjBaDv zhDigRW?_neLt@q}!~jJe9Q%c~dPO>CNYts;;2I_^1NrF4%)@E}ufuYmhu{z#=pJSk zJX2)lz_T)zu;r8MlB=8b{HnVzY-2|$J7^d)-pK(P$nMkDvt^kmH5Pvnfih#a6;XRu z0B_w=cP>5|<~UZG^%$1S7>S&6O%DnT?86LQFj?4DGxbAX2s}yI*6P>pEh{v$Sb0=d z3MIEi@M?h?lHg8&!bg%rOE}<%jgm`NKbu1AwHK=e#K6JrQ1cbBL`1~0~x}#pT~!^d~0GZABa|A#2X{lp2;T=U#z$aJd_r zoj4?~C0a?X0gw@WSbH-OE;VR){FOM?7TEJjq99t(_M{3a$^|O*IM<5Wm3D0nX~{Hi zR?`o|!*T4D9i*dq&JN^J0h)g(FCV0%dBKm~`0+3NZ@>K8pZL8WeE-!45AItW=I*x2 zq8Q2)V8jQJ($N29qG9AR8MA~>zc$n^l*^UdzQS&9E^FD%&E@qU{^;-h{6Bo>-S__6 z|M9>4D?k00d(W>nx+LQ0Jhb zj`f)5UKvLUYyr|6nD<~*-B$3P z4h>lK2KS-AiWVMm2P?Cx?iVj`fl=O%7L`mxh5WHtch{#f0 zinA17w=8Tj+{M5!EbprHBLAP`*qZyJ^4!Dx&Z_v8B=}B<33+Eh?qCvo94PU-d7k}< zFvTf~$$(pLp*Wi-jZ|H%SW@^xFA-UZaX&2l;loFx4z$rGL@=}O92y^6Y{iY!N#uGD z^P3yL9GAmg&Zf+F2j{BtkJC|yBw)z(;1K*e%Eh^+W!>F9d3x(!_4&1yK4XiB`Fvn2 zZ%Qixw1UH^3Dk?(Ixfe}DKek zP*Qz4QGezWg^0^>`rM-fZCEaGB53@`S8^>W0Hk?lxDvhYnc+_}>9miE9HjVVA-%PAhNYsng4c=<}6K_W}B+&Zm6z~c8+k&mrxKJyJTi-_CXTZ@`zwN=shAeCV1 z46v|MvBsXOAR(4hNEUwo{=KT2ZvL7WlvTg;HeqZgh9gRMlEkkFv)gqWD<=TT8i#7+ zau1x6Tj{hLSGQ>UU@BzWEAz-W>wYj1H#?^RDlon{ZW1GtKoO!)54&A=Yu&k=z}R)0*S}K-@i+W)Ez>k}o<8s{8_!Gt}SuZOoAe%u-q7fz6cE@USezDeyxVu{s z%YB0u1L?U}P%t9s_+{K9Mi-c~tUKHei_6VDW3iy_@WVUlaTZ~RhQz*Hcfv6@+j3+x zixqckt+mE{gqr&)QQ_^}M;vXHkckkE|K&jXup=yvK<+y3*{!UjE2SFFbgFkezP2!?O-&3Pd1b=kM2e zRPLWXd;0dnx99xhxH9GsINoTob_&(0!FI;57hZhfrI%j9jZ8i{A?YCo#xTYQ7CVyI z)+H2&VD|L(*~5o#(?`P?_k~iTn5Nf9zu)OS;Y`vGS?ODj2t3 z!14+^Q^O*jRq4H#VG62EaEqH^_V(Lv-QGS6tcj@qp9V~r51DvpNSo~gXIuQmKWdH?ad@4XjRL(k6ag`<_I3@2%}8jXgx z3N!S;c;Q12KK##sa}dUtob_iwOOtH4`2mdhx}VUwp9uz|OZzieq9mZ5r*V+2paiNcsEIXU`r!dYI#(ZRR;O z#ypgXXJEyO(FfW<08S~1nlH0(yMOQA$3FToH|vNb^eJU0coxCTizpfqr<<)e-+X(m zyQC+2TZmIg>QKuIcE?SV4J=1$S%=-+yZPuxUcOu|JMQAOPV2@b3w|!AgjtOw@4WNq z{ily3&*ZA-H)Z?uwlW5e-0#ZFu%d_YWQZ@&MGbmB`tr*UKJ-H4{S_^2-n3zwVb<`< zy^x%n*|Vol-+uJaXmNRa8J2S};iz*c<}682a&y4!nsGS$&$9jHa{1UtKX$pn1Eg{XLk5anr)!&a%zlEJh&1}6X`97CneX?vb0E- z&pJUUc+J9d>L4r?ma z;%~`$^iT~^K%9=8SeV7az?!UtRb&nzPV9)3sLx&;#AR+-56%iZ9jBs3+C%tmz3;A> zdmq^>E4NMesiR(5vcps~#mw<0LdP2Tg2G&@njw|M_6}|orZ`+XSpp~!5nwr?I&jEe z4mkLLZdL826k%q$mM2EY8|5X`sudLIF;(+iW?pASCJvT&DuP)z>4trRpww7_d4Glg zt+Q0N&ADrN5u1f6-WmApEA8BKqYv4&X}`&_tY5=N6157|eR<_!3v+#K2$5@i&5mQ; z(V(VF!GUOr^q<1^!(fnY6fTg3$cRHra|ORe)Go}y=|hS_3ob5TRcmhN45a`g)Zpfa zn;#xrPRuhw@`hZ+-?NKV3AE+M@!-LO$M3%Xg-`#{um9aoeg6lqee`25-QE^a4pl=P z@@k>{#3&cwArpK(siD#pW>$_-GrbsbJ^8d;tL^S)$Gv;^9=`MTr#|_+>&|}mfBMgU z>fiWF@83Sfq}Cn>b3s;5rs3O#+LQsrp(%+8P!J0g0eh1rg%FfXMnN$m5vw!lWQb+grhH{e8$VWwhL82Fk=K=xLdcB|J_>CEHy9{N-$|j_VLV|`W@|I^ zV2aW4IY>P6E%cB9pi+_$1nh_aMF>_&fDking000f>^dY%2hc5e5PIa2TbKSQ0J;%7 zuB55v$vd3)T&Wl^V~a(GohYKhJXgX6)saR#t*pJb?U28f&JRPqzC5e($69cF3c0i- zb2zFa^w+svOd*F^Pc^%`rWrS#rG|)m!jMc=qfRjJUkHOgx%qJf(jEmoSR4k&+C-E9 zkXGZG?hnW=*?%^M^FPpq@v-B9G&B1gQ0@Jd&R>~FrJ>lDCq&f2!9}A%6oup~>VFA4 zT~7;Xr^%=slnG~GW>#XcgVETzi2aRB@2J4doO`z&8Jqd^XA_3lf*bHi1LTNF!hG>Q$vDed6=aJ zIJJCAiq0%%wOPI+f;m2LAdu#@OnGT#x#29U@_RvnAZOFz0!Dky&X(zU z4(38{6d|jldCdA(@TzfJm|-f$drmW2NZxi8KBX+clpe%eawq(}p!VT#snj~`tf1`L ze1)h!qOm7K<$}7x77-Zcayepc#&%#Eu8)cawBW1q+%nrm>pgZSXitoxzLtgA_|`)-)sB+7CS+Bk3!$J&WI$gzSP_cb zp(iEUKICCXp@jJM0P=Hlvrx!hC3oW zqeb$&TINF{hOj3rqU8X}sTU)=WH1j3)cSy0Ls+n|EG2{;UKPoV^Ms_l8`Ob#{x?1b zpcvSp zf-HB2c1FSgCf3j_kZD$eWM(pg63tir4^=OsC(fTKnr)14s+ps@UG-ht+~}yK#*;-b z1W5fLSk}Lpj32$k*gf=;>RYX@?8iAx)e)~l9}JQh3Mj1y0bE4_bkZ>4<+FGyv)O~! zzyAo4`8H*HISHzh#Uh*7b67t3ZJdYE*kQcSqC3mtR2b>9vL78M#34N zBB2qGH<_U%Mau{(I!uPN5*aX>8z9^*8JQYjCG6Edad>}d&r>`=KYfuxptuI7PWpN< zjW+^lpm4%{VI@q)m`6dWtu+xOgsD|z5ZAyGJp#jJ3VM_#9UzBB!P(Iv+3=Qj2u1Wu zK`1Z^I~zKX@;aF6k&=A19rndXF;EiG z4L-nsfrq>M&CSitn{U1GE5GpT|MVYx&hFyo-o=p-cdJCTG8)9B5KW_|*YW}ZbeP)8 zpkyqtS-u&YeS&piPji~en+~bzl>HwVshA&OmAP1^=qZG(@mEwqUl<|R|6PbM;GXk$ zZm7dZ=RUl%955@BNlh0gEyY1sglA1`>{kiRiL`6GfR+HPRoQ?N5iIZHH1sCF(j1bQzl;HXc&4o)cUHgYq3t~_bI_n z3*D?AS{ZBEOZsFWQ_4!I-DxmZ4x7_RS!$@Akx3V}%J5cTjoAVOfeRHOd0Lf<<9pIi zUs`5}&ONxUhQ}15yz9SAV>~dX5%Z-b^lPH7Ny&xrQk|z;$#=lcsXPOI5BA$=%{<*g zBSM(jisJ;MA(qEt%#)wn#u|b#zPd%9R#gTv*xKBc zLTTX^0$Ny&*Bq7YoVMxvYu1zT&?F)U^#ccx<{=Wr52>K_ZN?}zS`aF(z;euwUJP;E z8%phRg<4gAF(4CtGP>?uqWgg;$Bc}ffj=zlARv}BIA7P7yBxBqS2j744ux5rb8N_{ zi^t5gmhs52Kqq||1)C%|Cg5f{Vs4u@L_23W0yzmHmm(E}N*6R(eBD!|bj8=yh3I1v zCJm&-C&SzdJ3`o4fZ zV*uclN62siO~;}Rr(PQ1B(j-^vk)Wv{4)VQ0Hsk`QP<_fwg*vX z@Ehb7K;=W*-X^SyK6&ycMDwsXoIG*fsa?J^Jw#a6PB9#pDMF7<70fzMmdJ*WBR4ZE z&stF@!$EMnsv2QXb9A`JQhC=u(U)QW5LV8b+n7>Q_jEAeVZH(l4pG)@hZ;dyKsB%N z#urCE%OXby<=(rjT$7#Lv>VMO{;iB|on%>;udIXwhqH2Ouc%@c9!HEWT@*uN2BHBp zoYSDNb(d_Wf(zs@G}4v+b~?l&LXx4XIZK8$W55&g+R)0+gVpNdy!IWD!ITDg{FRM{ zWv|homs)oR0Po4Jx;5A5_9H>?#jzB&oQ@=66iQ$>3)Zbhew&{;iyN{WfZ`Bokj>J* z0?=5zc)}a65aj zhQXpcu;UW8u_?)~*2#!C#N`^sRZNf;vt~EcxzoJ?c?XH$f9eQ|uF!B)jPORaC`u^R z^6$e->^U9{Ou7aG^9)SP%BT3VoBGoxTPQ!_DyFc3NNRs>KqNQqsmD&JvzL9@m|BhE zo>RpbVA7!LsIO^JB&Nk07QqKh>j&h3{Z;2-aFPMk<_x7|jyN!)$s<@$3qf zJD?r{S>4y~+X69CfVoGB6bDR&u|8)NLj3-R9=!YZyTAKupZmRk@&{pY9G9?5<(_UU z6C>iRkqPsIZ~;&YYOeqEMbK-YJe^=Q(3V&%H0GMXSYO7P;2~YESp>-FxB1 zdtd+Bpa0^|{n`&-d-L9d8x5+WL2W};yoed&Qc&KDF=Akdyd0*V|DiVAhzHB5MHV&+ zDb|WLU`c}nL*F1(1T5FUHZKuJ52wPEXemWITs3Mrd%Fo&c&0V5U>>D>Z?7yg!R@T1 zM)|aqs}gwI4QmldP`qtBtjd&BvdbLFy79?y0!c$De8VIbB6I6SN@)1e&=t(eHquJPg4eoL=s|hEk8QszL5K{*iEy%kCo!qcxQ(G@wRoUpALiIfvl$)3CGQIxh1F3= zZg&!TMcpAt0DNSFD38P@wO#bm`!Il#T0P)rWsP+~LMbPxD1FYsIivzV3$!0-4OXxO zZQU$l(%K&hfVT zrad|P)%4pqhU>wqj7g0Vr2auXa0ne$RgP&3JyCe=DMCX50bZ2797Atq)wCP>D>R*M z$x4e7+9MvpB(Z-~<2LWthJgGvYvX2E5)7m0O1Mie9c`y3(mvYDU4JzBQb3~}>#SMn zX^PC@Ck6h*{Y1uI;v)O%c*-PcTPO^1*w4n*bJ*-ygaD;-7yuKY5R4W1oNr!MqjoB% zQO_exA|-A%0MITJSg-g)B}gz}NXe$NBn1?%W|AUSv3?=o|Xx*;PUiad^+ z_a49Zh0lHQPk#SPx3|xZp5&hr9%3t_LjjA~X&A$pGrV}W(|U#xA`?2P#x$Oq^$bpw zSkQKln;1KV=CY^+SJ!gXZnh1nj#t8=y;al&}On0g(eOJ2fCuZ1tj8XRE%dE&G8z?%da@IGs-W3SS{ z-ae+4S5qxOkj*|((rH8vs?qd-*hx~3w~ydTs%q}wG*X;UF@Rw?&PG@Ss2~dHh{PqF zz}f{5qMuJ<5pxd->c>$X2#qLqFsCTb*L)Al?J*KT3L0idmM5&#lxcGm&w1#~frbBQ zICPQ?ceWjK{iep~HZ1s#D5Uh;H7XW3D3?CO78L<{FGGQ`5>&FSAOsp)I)~MW4Xdo0 zlj$(DX;DZI{6S4m%sKi;Zc&#O4^q%6>|y~lGbag6O-O@nl%uCp>U;#BNTKL^=E6~N zVUY;49TEy0e!!6xe_D(*$x5Wplj#+DzX)@R7Q}M8BD*102EtsRlHi%^((hJoNK`cg z)qBSku{0E;Id-?G=lLXQI4zQBnwlGuDji%M>&zsqiLA#>J<5H6i7KxyD`q4BA_QDI zdk|1_${oljBvFe*dJ4IW!WjahuO?87loE0duMO(@(6Nkkj=jwgGKAE_EMY{(@z`{k z1+A=vVdKBDQ3oCd%nv982QLSVOsH81lxn3GN*iH2#8t$g4hB>(Tvf|abAw@)Tb-ii zT8@#8=@=Ahg>`0B->{Pi)hIs!NkTyMcdjcNXs=)_fxNOQ2+V7<@0ur+!aAB{Q$a`) zGv^>g87RT_ys7@=MBtPV78gXIL~Z%JD5?kz89F{+dHgjmh{7~){+oSx(0u&6?m?7s zo45g0;)AyzzV(U!`yYSf%iq3t|E3a0 z5F_{v%2B1kUp0k^u+bq|drhSQKpeq{@+uvRTAIU#0}ol1Th*8XI?NZem$q=x!6_Dm zqn=MfR9sD1NWFpI40*|ey%kyl5L4O+^R*0>e)?~-9Z?gJ%|ft?@v->|jmmXRv_K4E z4ZR@kWd;C13m$%$#(wS+L+L4L44sW;w;VJ)Bu+9RU544}`yjoZx$cAfnvj zh3L7ADZq@iFk3vWJ8x-Na0uP9g`@ctc;(kp1ss(PZ@HJrYqWJJ3~4?QkwV6jpGJU2 zWWgA)Sf3=}27=WU2gHaXT_vK7IMA56AN4E}<>ZB`ZdKe<5sCn^9s^4 zx>;uhVFNgJqRe|0f9asIlg6(=q%J~5S4Q=<)o=`{HJ(tefhuZ`(E{-X@J(1(#)-_& z0P8YR1yDDhTS0iz+k7uld=gSl+-aLp3nUZ3?EY_0K39Tw|fD^7n)(4Fo z+;__?Jkjz_a@EUh+vU)BZCIZoXq!@aufmC3RU+#tckfhy`L`nm&{i?C!JB$tgaIy{ zd6e((7F~@V09AR#EJYehO*8KL3_2x&MOwr4gnqoEqP8_W{>VqQ}}cMS}fltq?| z7-NX2TPk3?8M8n6>{tHZ&wl>#)A#Fm!QOS3augM68P{6kQ*`;q`%@@>>0k>)jclNW{Z)a%M*qbEVRpTjb{)ifeS6`Zt==%UN`y@ z#K7A&M~F#qV^Fp=R#6ASftJ!=3;uGOAPq>MPK>3uGzl}4r??kjp}Vtcw;PKhqeCVu za-=CtXO5(}<|u21MW34I(xu{;&%Mct&Z!1h))XXaG}i{tKHMCKQTxzEmstr2zV!%} zJBe>95IEcva+?}qF$|AW;BygrO#ZYIhx>yMrFlCge=i|L3^|e!wTwy`puGqaZ!idl z8(cWZX;~mT25_>&2;`CGX=0PDU_iw<1;+>?FK_+ zb}3Eais0Z11U3+fjVlYdsJ_?>x83?kUFt3=mwPvmE+p{|?a5$#=P5;f3<6bO-RGcO z)PXC~7LgZqV;!U#*u*pyWB7XusP|QD#BXubils3v>pCk|#VNQZhrab3W)xk80Vlb) z6Xlh`%fU5!=9*yynd)*#ODk1AznS7RpjdP~Yv;&kwI~yi7lsVNwzNv-325+o!R}vK ziG)$BD`1%{f=GnScol92@J2#yM@YBCu|%DEY^|TJ3OWo<#VnLg*#`#P;oD4IU zYI)b0n@W(<{4K#OZ&>La{bT&jI_NGIGsEF-tQ>W`Ma&56YDKp|MTS`xug0jcgG^wE zDBzNXqgcm{`;GsLKl;X(KL3@6?>@|;Qk8-m5Ue#b-4?>9xeY62kv_cpm2|nR2}sjn zbGp;ulhY@(#R9^)ZZOPk9haM%Ww)RD)!+ToFMPufyBsz(Fx8QXLOpVz@wK~?14e`}Bk;d!(rZ1_?X-W7EXPOcU$#($i?0h2|Z9ayDKc*m!vc8go28jeEz z7bzAl(G^3?wy=>YWfA z8wb==7OszjD4J-LA;6lOV>ddX*ct)OF=l>7F)V0ooQpA52}Y!hO79!8bEC!Rn3Z!- z#SUSS1@ypv2klQiZ>ae{-e3mk7&QaNmYxtoyaERuGs#@stl zx;$4?OoYopjJMMTvLF}S-RY~pE#y&3h^|`aTDvH-Z}`;B?^7>aXqLWa1X&;bY*HuY z$H-LnN1`+a{C{gj@$K~R7{K2Qb@RdLL+Jg_@zg#XA zKDCTQRgX%G>X?>JxPdnp1L`2nxdB@mA4{u9(t`93hz{IleSB7g%;RRfKQ0%)9Iw9m zgMa?nuRMAD#1HrVs7j@|h$(oRvCdk2$e2mDL=)VTi%fbTV>UmEKH{Z zg)%(oSOKJ+#IdEJ!VbmJZ?)CUsM}9~s>xaj-iuxWjy10Vm(UeVfh|eVCXz9=$*uNf zRsHH$Z8LwKu4_^u8W~=4V<}jH?m-yf4_qri0|sZWHperMIN%)hcjy7$_pBGNU|CVM;)=ub44qG6KHBGA_Ub@Oa>tO za^g%R!&<~Z2Ks9c3&bHCE84!r!4|j;)wEHj)`?G;1)juj!8fVf=l+2^&?#S~E~(S+<_oxH=1V&0w#6D@5_$ki`ZhqKVW=5JgxwQ@N}JW-0kJKFY^8_c zY^)w@18YZ~dIaK~;*m3_Oxj@EQSu9<-<1k^7*3SLJ-ulPs3~INkT2W%A?^CImN!DV z=>kAhcdJJdCYV}nn+`7cE63=^xVT8SI~&c+k*A6T$tlmqLPV%(IUMOS$g0gjT7=zZ zXAO)RYN}oc&j@4Cqc(93Cu)9Wld2lF@SeZT!6-dtVdK#lNFHJ9M(kUc(5MxYk`yyFj^EZx69@7@Zme3`|U4$ z_ZzR$;jV~@_+&L9v#+L`+*D%VjPF!SnE~^o?33$APPSS>mKB`N2(-HI;%vnBu+BVA zp|P#PuPjM7GZqkg?|d3uPtdEh;F{YQ;8HYpx?;gO z&ZRDSxgk5UhMaM|v>BEFhB743CbsK#|K4DzygKGrt=9cj_#1OJy}yICkCuFIgv;_ZKA6`gR{7G)C4S`)nUk=zXH+!7 z(gAlN+W z;5-bHY{tdK+KOaT=99H~)vTIXO~fgWsnY-_&Y9;FQpZ4JxXH^(38=){@SY@lWW5c~ z)_V*QISPMx5%_hea+TppMU_?1eMxr zuduN!Lq3(l<_eLBu;b=<^X<3(_%mO8{LXtfHy3TqX` zg!d^>{Y#CpkUlE$B|7hU99EW3AY@}QP?*N3%aFQmaK>~sakCQ2Agc0Tf#5dukkw7S zir#ELyvJ}mD!FSSjVH)()u-HibzM3Ge{qMWj}&|Azzv!`8&|5z#P z(AY>HLg|aDH8U(oXLvN4F54F?+xQ3Em^0d09ub*m-WZ&IaGsXfP|DqTWs*21$GhO4 zgI4ItyVf{=zk0WDsVw^#l;GEc-iR>C^*`MJG>GB)?8FrN6|=X`Ch$5W;X zKX+f7@H@h?bzYBOv7Z%--tuLeSXrbOEiEbSt^eJyrQm%E{KWp`V>EF+p&sQ~zT+%J zS2}AMO&GQzu&O->q*@0dnrRa~24AB)Q7db!?p^y-u6jU9tsGYI?!-MV%haLU;6%I$ zdnV7GQG5xdi}T$jaIL`VD{c8uj-(6ptasAOa9Fm<1Y<)QE^S zpcHCaOl!m3Grl}{;ogs4edC*7`d6>M`dY!4L!XIMr9+t35)xEEEzqjU^#SPW@N%(p zL0$wp+7bAs(99<-@AYF=-o%Z{~MqG@#}Bh+&jn>dSO8@t!?#tk!*et z7^<6m0QEVp?6mS<^*Wh!DLV>s4yf=XMzpB7^~r z6BCW*A|7{RwuIT_g7g}AMgG+OLTMblRKrbm`#fBMi_pi#Fm>HkSVXL4+=wUA_zGN5 zT5vU*=qQU2;&@VMiWnohJG6@bMUhXRN&VUWtaU__;0{5`Ngl?CEcg)vI1K8QHD z&C`jJ>)5GRwRL#G+9@NxcH8rQA&F+g_R2?U2EZ9|WF;rP2tuX_4sWN#DFYX2nuwv| zaOfq&(|C_q*3OWROVwxt&|iPOvtLw{u?aB~nwp>EK3_mn5+ z9z1f!ZLp}|VMM5Kvp}j{Lzk$OBu=xnNpA%zoGzxF%rJ9Bzyf!52Wg!q$p{MD2!K#; zfj&_iVyxzRJ<;M27jZ9hf;u}lH+c~vHWp@NY8@tR9;0VEB5;(0D~3ClG}pI>U8TgG zEu^8esdo}7^Ri{0ZCn7x@+PRs?O29M-X=90IH(&8xAtsWz#=qsQ2buEa%WO;QAOWn zMAS5LCaidXE5EDR=v88I?3hhc_Nd)v1G`S4L}b#PzL$Ys)8!T`-0V-k@b$0%*|(Oh zo8!`pLcn5`EHZ2pLw5`~7cmvO)!)}CY}7^=x{^<>$8dL1FT_2c@JE?ZsqnY(Fkr5q5&^mZ@YONavuqZh5Jx6O~ zP1&*%D>ZDPBj>u9V&Wda!9C_?wWEh_<~6C%*c^;7>PC#yqso=Zi5P^qQZMacXBvcz z^>B#WjJZN6)^|`8RGfybBfZcY%Qr%H;@FAA^ttzRbdF%$$z?hPcGQH!wN6uN~h8LYbuyF59My!a?r(_ zVi_L;;!=x+*@l&EU}tly{0T%jC-FoQXE_Y{G^TSHhyc3Z7`PwKp`V>^`n)0DhF#-j zi$?N{bI+LV71NF>D<1@V<0Cx0%_`xq(6^%(Cu}yg>dF{~G^&X))=jWv1S4-%C4S^k ztN7?cN6^7xc0?w6jz^P1Z2}S7l%>pRq)IsS0l~{)NRfokH1{AGzN6>+)mL7-|KQ$nxqz_w3Zqs};xS1I ztiN*$=q;vT9aEsBlj~9>61wN{1nl*S#WY;T{*9SoOIWMLZa4QX@4o-u7k~dxpFDnY z+?<~SRxl3i`($cy4QMq%gos7b!s4+*PF@K0Zaw(4U zXO5a|3KcS9AQ)7({8|R#I`IpP3RDLzEIii%xmUN`YR!>zK+VycX}Yn<5^SD@cR>j^ z>%Bsvf8``q^O1j!k`SDxEUlRvGDqS8Az{ATYe*k5ovZ~_XLH~o2y<-81#GszI{PUw zJ{ZL7Fw!VaAOb?eZ8L-p(*YgT1S?53S0t=hoi4ky{Z4tK%^&~>)I*2yG638!`$)|B z7@M9^Y`E86WqA|qD8uvSucSF`Wmu2{uTN9mb~iI7l%4Gv1P5y5EVLkYeM?l1hJ&Us>z zh=6~O{SF2^awsro+uc{_idA*_YXtS`iup5~aVS?Z{;9ab!*R$&&wBNK>v za=a`}?Rm3rryv{{%hbFAE@VKSL9#kM7GM^>_)Zv@8KZ{ND{sz{Hip;Dn5p`-qRc;y z(x;yQZ1BtIy=0j*wi7u#Qu8iv?uMuO{$RJ6VZDW!nH^*E*-70V=UJ@h`idT~ND<9E zj;d>W7OC>U!DG;SHfJ}}HPpmPxvJuwZGr33dReq3Jr&g-we`op&$KFnR7 zgE20c_Nu1n4c+w~J@JMkz_QpLGz#i~jrl&z&5i>;>2zVIp({x>n<5UA->_I85#h(p z%{!0Y`SY)S_wBbHWg9qk2G$BEZY5I)VA&g&)0~8zx{6RhP3;iKpU{x!j86`mVBa$3 zf&MxmCG~m#idCF|I0+mE=aBNKK#G@9lvL@rxnR1j#lse3ndi<2j^`88U@I+)QDo>LmZUU5Z3 zS9G$Uo)QsFnJN>m8G6Z%lxPm$%=x77np{JLurj;eo@bYtTBbS+1Ax51FX{DUbPEt4 z^b(7S54>)7bli0a;iqf*hd>oVpqO42eTN8ouwPAa1!IIUDCQ;beL5SuX!PwxN$hFs zqYORnY!w(FX4tq~N}1OSj&1wffVtc0Z$@35-oldiReUKvx>AI%S#4ql#%NTI#&KB= zW;(%&p_<}zJg67Aqy^C%i%k((cpR}aUjFIbqZtk~3Tz?TKs_7vY&DvWc3)LdipRBw z;a-CplTfN1dYg1k-i?$c1&@I2)-?%EVQOCxn}$GDqQJGMBX|A5n<=s8_M?3*gLHV} z_r!eK334a`3f=2U(=AHT>xA&?6p93Y@Op*+~xFzKlj7DNgXs9cIN0a4t2NWyNo5L zS7ebw`^(mS!9+I9)f3_uT?cTKgB5_?!mAivg3i2mW51d@%)BQL-08@tbLI3i6GED@ zbN!2MpVjyp)|h`niQyviGohP9%2DdhUP%FVJO0B1m$zggL=Mb8RcbCF>h zFx8&Bpylr9RG0(`oE`#W-$tcTNS;^MGMf5*-y+U3H&%R5FbvDm4kp3-Xt_QZdKZ>5 zTa6tjEgs~Vw^M9L{m#v1eb7lN1?7`wy@jifHpX{K|Np$$DmzcoJICwl-D;v;Y~gHL z)`9qXfAzi@7F!zZ08qRj&FQD4E>!v@sa|8ptEzmiJD{`!3fays6T&txrR`shA5{xA ziSG1d8U0o}zRAo&@|SJGqmSh4+EY}IOP`8!60#7vjSzug6^!@;xb)3_798cXtruh+ zrtj1o0Jwahus{rG&+AOh4KlZ?!8h@CYV|}LfAg!_u^LrDrTjY%hz?pr_9SHgX+@UyjQUU-{9iue^5uL-&u%F{)S<7)kz^fZio;*6Xvj7E1WR z6r$QCvu=Hc{dr&!@M8jH!B*Fgy#I1}WmRw4aMsu_H^+NV-}~AheFMvr!mP@nVREh_ zSVjIq`G!n>ifv6n*iU%P3smTe)3B??rG^52XVHO*YXHYmw`?to4#fffs{sVVZP9gb zvVhJtikqd))OMqK3#qn*;Psq%m+`F6x0JU!iSs{450DZ4uav$;mzYT2Kegb@;3+O~ zZ4(@=GH3bb&bYy<%rcV_p$W}Ukgz=G!N~E!?!e}b4wR?zqQCcd&&wTnF=L!_m^Jg~ zX_u!iPkBW%E8F$b)H*VR8TO(^v3+N7XI{Q>A>Q@JNrV~TqW+zMRh~5IZPbSWMN8CR zi@pi96^?lnW@43saQ^1`${3wb7#iHLWdIYc zr~asnsf7pgZpR)zR(^ph4M^oj~c7vk(fAOQ*1oAN~)H+)i@xKc;pnB)riwlRW#l0Mt&uQTz;;6@#vw5*p*Kc#wB0 zDaCwinwk@YHSruNw>d+T5LmFG5UvCpY!&HB>%6G|E|-p***(}_H!sE4$^V8rX1S@RU#LdMrvy5gh+R=MalY>q1GM~@y zK!jlyTSfo8QP=ZcF1Xn}Nvhd_MMhC!N5=}e)7!IUWJQ-_ZUg!EgsAvc;EzY}A#Hkm zoS4;U65&=Hx)-zjNVXB^|Bz7_o{QqepnVhmhfHtEShC5{# z%}&wm6ZEQMABfSCpubBXppmzkR%A4H_xGQ^|L(*0?(UvN7><+{(K^FJVRujX5~3_{ z(5>>nTLDlDAx>o}VW%gK!t!{!>%Pe{2p0ZG1-da~N-6IvpQEV6oJU|BLPvAbA~X8D zhO>0t-m*;$t!dOmP^$^IZRdfbH@s_ai{6NxCS7jX3jt#@i!Mzh|0n0tzZxzWXcU2l zNJ207iO4eQ#U897O>V(V1E6-)mB+dqLuM0u?ECiMYVbMk2h-zy*mslbX~?2@{Mkhy%o&GbRZ&<1MrCL>xwvLsEW z)M{0(W1b0!8kzWv0bGv&$I1%7qGaJLW)Pf?Y~|%(fJVVblSG6_wiYBY1{iME3zB-7 z2-lcNo(2rxG$TZEG0{2lojFwIky{6uU2w>vXSQ4%8+uQpG={8a{LozkEnc4f$N-8waVB8V?BtJ7@i(89ug#_ zt>lecWNbANun6nShh~uFcQ|3g18gbf= z$c-An)vgy{pV^3<0n@{Ur92xY((F8%i1W0ONZ2^TO;ek|yZcCT7(5SV`w{j}zFVX; z7hH$}TOxZ$L|$*0V=02_@|aZ3CG`$1TzkQ=-G*`^D5X3%hoc1gD?<16l~WR!7-3X8 z354?rdbXXe!(vZflUrX`RZ-)ScAEcITg$fjiGmfb1Vj$iMJ|brSJ-MXqr^SFJki0A z5nI+GiwJ^CMFB;A)WzIg6CU6~W4oW5h1=n75s%({=Z)9j!0}HTX*vgoJIl0*WUZtC zr(~F&hXLV5U<$ii70{G-gHrgbEO0rEASY;uGjUyjUHtKr_a43Z&@BAmbLAMl21?k$ z2D3?okGk%#D)s0vUD%ss?W+g2x@z5iHR#fCko+(S(olFsY%Q)Rd}!bRQymhm#!Oyf zZ4}*B-lPLC5f)d0N@=SAocy+;=)z-4d0Q@KMNc}x01B~{B>1a>kt~SPd^14mnDY$% zxvp{cAchIJM2~b}gw5OswVf57;Im}!n2o8Abk?-RHZIX%veoy9PPJuVtqcq%tb{qY z{6E7I!@GBHd31X$akP$-9osOl>Td)pE8xgBqlU+Js-r;f>RRX5h*tQF@L`TVn2+~R zi6J$@FwzuB`eVxhcZ1y0;^otW^5iTgQ1XtirUto0+?>JmABuo`3<|F-avvVFDnPTYRxP zm=vU{0C5O~XIB~G(Rk}L0?fg48(%TaqW!$AnKz-d+D zL4M|I&@zF^O}|uNC1E2}iLgdQ3HS(eI;E;OUaFOC7Tjj|x990ft4eWK{#Xm&WFAMbKz#5Px0=%r%xp^FOqa$Mee^Wp2? z`|-tZdXGh1aVp5U08nV=Mi)J)x!!$1aHQsexdK3L<|gx0Ko~+6qftQ6V_I7N6)jO8 znqf94G-CoD)G5}Qd#v<%5E>j06K81}F-Ghh->^Ao@g?gv#}NPo@j6F`37_)nY(vE- zj)gZ04w|}bppiE=%RTARNLlq!NWBm4tpf}lE!QfM(_f!D0iF^n?nP$m1BeFBo73h@lpW7JIcgL-!jzM!8t)zpWhHdgS z9?=!6~NyC3eRJFW1!A4fe;2|ukFq6$t?YJZ`b&GoDo zS5W}0ET~;MOR*4QPk`WJ9h6FOy|Ae1WR@0Ty>~KB=ps6{H&G_~QQvZqV)B`CIuH-@ zm-1h+1uawPsBRV$Y@|Jo0GuuxhB2u)&31R=QAw%*71-FYv~+H@uAZZMeC>nKIKVvz zcAxjVw@*?U^*f)mGFgqAHn>qR{Qt5?p2HFq@HXL*#@`5nN@wwvy z^-5@hGUL>ZPmuHuf>w>|!aJA$E2o4&z>i@?!-1l^F@~6##v1hJyTjP%DBZ>xUu?X# zj|Lt0G)@~}c8u?RurK88sMfTwY*x-N!>Tb9Q!`6>7t7FB!@{1XJ8l^*K&x|DSWq8K zMIx=ou1w|ZE(lu(mbzY~{wXbVp*#4+32tkrPk3@zxc8wkLQ78OSqFlqRTL-lU1hPmF`77l`XB4jMvwNf2ShT(w9FsrK|PVuUxfb%vsWLt0; zE32FfDgyGV=eSFfsEl2OGv2u`974y89|>0Y=Hd)9$fg{i?rtIbRz$N1&^{NhqRV#2 zKp>VFXn=Gp-GRIAVLUScqq=>s>rl?E#nMn3AQ;iz3&EXu$ac0E16dSma@%Ij<`nd{ zxr;7IvPA>xj!L)bdzC1QW`RV)kdtR3-9aP||5^RsS%XbA1Srn0`%r}>Dx%H-aqGmW zrg&G_WX84+%BW9T!9jOgQACi#h%BVsL(?3g2IUwfJi?L5`!R{tN54AM~ z6WEc?*b5IjscMFDy0aU3QE;bpa=vufRP3tE%aEMpnRubLds-h+^@}b)hZ#?oW3){7 zhq*RuK3j)5Fur`?3teK~mE#H`QT~d|xO3xSz#DQ5tPB23-KSFpiACMZvC%WjV5mP$ zs@uJ{bfDYB@uvJ8U{OM=NH@$M_=tsTf>NUsd{yxr7JxchV7NH$az5gKsZz!9(09@! zV=%ZI-jIo1VbF1`XLs*DeDBGV_x+NCze>P8cHq&}47RJH01;emV$XfG7N@8J-O=x@7>+rMX$zaHVOf-XrZh)(QIG~C?<^(p=VX| z)W^n<84?yZ%UuO(T&G64V*`hN5;~1wQelDe^bMqj^Zhh0k6+7V6O-u=0xob>G^bbd0W5ulf=ouV%S8DCz7&aXH7fi_OjIfQmG(sHozHW3Hj~Fbn-% zlyXvA(3mGpkzxk|H;R=}M6WR_T;)iyI)tma*7e;{ zO^`vX#~E4NCM+=GoaMUm2x%FW846BaiLYm@==BQwWL=eYMSZ7lRm2Qd*>)_hE-TqaA@1~`SZ^R^r4##DDKX>#QFok5@rU!#)NlL`1j z*9#7KG2V|6M#)Mh?a;@RP@o#%a_n;A+(tr2`B-r9&dlzl8hD&m=f_kwDRQDxJE`pQ6VbP7Kqiw> z_7NO5pA5ZLUSPq8l`I{@lI&WbW>d$o9aieeLr`0B)Ci6KWyW>nUN9&I5QO^54WeDw zI(3|(FGp!m5~GHw`XpwXx)+D7pL~3ld-(Ku4s9wR16evsin)s4l60DZ%j4`UGYq1$ zT`WJ?A$p5HF%_rQr*qG|qKdu=KjhxpiaWc>aFbq^Va$PQQHxk}Z<8^MSJ$H$JRdeT zX?tY5T0|dZ=??ki&Lv%>9Y(7o$7dZM9rqYeaD*vrD;T-jCAo?c%UtTIL)V1VBJ~8x zLu(@D-Tbb+P7%4Ey^#6-V!Y(obvcJrLWCZSCgOa^84Y=Cj&~~VS=tCmE=3$YyE|~) zs6*$q!b(gjHUX)wO&Z+nW(3ILBkV%3R=OkH;tq~^vck|;_8gLJFPGD~tpk!kk%!lI z4DJ?(*>a`W$#~!tE|!Gb3^?&YkKrtptQ5#eGn^M#<@;L4&rPr3olUNYNObM0Ib<)K zsCB2e5Dz>Dh#sTGdiT6Krniw`4slm#hwe#r0Zp|o<4B^y0BSZ;D>Mlc+}p=$(WbfM z8Llw7U>~T8t6qD>=~uDN{w4E;vYaET)Tbw47foKXq%qpwTJyfEf54Z)!Ox_~0Z+b@ zytB7WS`DTGqRo$p@QB)sZ$)08u-#EQFO`YoVG1Mr4h>$BV6GmmtPMNh7C(&bhk04UW;F7sD%-V$~o7!2aBL!D2ulE^j(IaH2;G&v~r13xVF8s6E*~0Pse7c zg-aEr!*s$}wa`*~wF1gfNOEo{U(>={^gW*o9x*9ZiGR@Re4H~Ep%!m&hT^d32svkp zi%{EO>iuf7Eky@2t~sBEv2*2s{k)N}L6hRkYP5+6x* z*+vrut@Qy0)0M^m904k9ANxs400%ufq%b^%*BMAaQ`B*q`3we58_=*;zil|zX!?E2A z*GpybZoK~y~*9Go8;P~4(;u5l2>*heeGh4kGfVsAkE@2(pEB<|>yiWprNBCk2Q zT)TLMAHHHedHnxz_AWiQZO3(3)%?D5?(6X0OH#5(n(wz{Jt&EyWk*V6D;8+Wwh-zO ziF`hxMF~I3I-rRGEg?^%KXSRfXH4ddzlt)w@iz$a}qD6Md z_Z5~)F!35y)T?E3GqbhaAKX^fl^;xwY*lG#(M8z2kfQP(Y7Wwb19=nhc9;vs-P?~- z1I^0({&H1yG}>)89DR=O=-gu~#E?pU0JEr*m=~dE-B}!he7#z})tT>Mq9QZa%K(|! z#7T}l*J7YK*Ak7%xig(Xc@H&F75-r}3@$d`2)c|*GWIkU@DD2mVTgJOkB#aH;IMqx zlQ|-G4Nodo6E@wq8M!Rf^ux;jU0$7~1ggr>l5hus7xan#$W#>ICIW;UH+xRp;C3ig zLLW}NqTne3d?>*otegHiN(G%C%86Au8|=Yiu>zxsB^Fj4Zm6bl**R7m6q|{cv2$(` zs>JV{Bgs|TBnGF=F)!iskg$#PY8`b=M#ubL{}>Um`xylP-(J%egC*wzr8?w#qj*$x zzTz>pntr{>eK?aFlaxau>A+5yE~X5%Z@q_cvG*Wb9g>FBJYA8`VosHu4sJBew3`xV zd(mCT4Txz5j50qIqI3+_Law9vAqx|0;m2s(0D9uQOaEwu;6&r$q_mZBAbWydObw= z?V?v0<85?>u4Rifv{b=bDi*~KNky7*s%dZafQDuXVD;`^YeN>a42JbP3faxv;g0U% zKJEhM+_Qang7W~jk(+Dyh`VGBLHDqAP}lN0Lt*qa7`b}1L*!N%A)l-T9{t}Po99qw zb~N~!ksj&TZ=Z2SwdEHLsPkTx)2B73+6R+;ZIg#vtcQm%+fU%CVnMe=xT-*oIY*37aBoGqWLyxdyaZi~dHhgak45e11gX^a|K26CGnE;_0JIV^te(=7UH+;e} zU~lMN*5$ly3#Y)EDvFytoe*?RSnBq^`-8{oedV1Rtc;vJ5Pav{oN+qzc%GemxsR`IL14 zT@@pdQ5>nz$RLeoNbLG#59ZL~;=y_;;`vbqJ_apIxpcBiV{Vq4-|&haSP>Nimu29B z*2{{JJMOy7*Ul+eJ?y6Y#Q?0ZZ9WGZrGcz_IFbo2e2T#BiSFjMYYU^23o2AK1;KhL z$iLmjqq7tP@}AQGZPW$wXG9>{VDQ*F)BA?~iL$B+5!c-x@Ou~$F{5CF?Fh*98kQC; z1#9)f+4OUpk8M;ITq3&j!p<&Xd;tCA{0K!HjR%nAFb3WZ6mF5*7dAktc3<)G^Mm7! zfM%ecXb3o$5q&tfsf*=^)4wEi@`5Mti5RS#Vid8J4(9b&E)r^01cb1f3&*5y-6H{r zHsvG&?JxDT!UED1#NR$6eA|BZ?D5&dv&YA0Z95@!i0X61j@#uLeo=$aGUslBpe4_8 zJxq1alLxhQ;BMV!;+Wwb_w@wxwRRE;k(Y2^%O78RSaJ(r*W<`Dp7iCDiHaygHm^4C z!4&Pg23W$aM@6Ex-#LHlOW{G%hQMftuDlqkB^oqCnatAq+*LG6tXY+>hg43Z7#9yS z>~s;~d>UX_X41e6FEPe~f2~AyNTO6LJAidCwdzTS86VK>X#?0Lg8FWiD{BGyjX_IP zejchELIZ^i9=OLzp8biOGm2I4*CKP|mY4pp#!`3}>ur-GvZ?ad_x@@<66dew6)fY- zli-Ep$%sQG6bJI~>ig8w-XMoEHS1+-SGVlpVtjn%YaVv6NX(kjl^BtPA!CkS&D&Vz zw`h)3Lq~uRspVzx4T`F>KeP-2T8KbMyhul_{g7&XKLW8f>yx4U zOjrog&x`dLa?v|F^2;X)RgjcE1F^Pq^m6|Y;iRmBFxcbx&@bG9d-s-YZ&ZqHVkNZf zV3U4{ z=j-@^J|ZXkgm*-%=1);ct;o4vs~q;|pW+(cYqD{L$c}d&=3^;|%ITGCDWx6NqRXvj zb>mhA)I8n;cpn~Xb8hN8k;$b*Ed~LB2q8ec+vuYs(Qtp;s$f?tY*fAg2X1!Bx6)#d09#}S0I3&+` z<1O3PjmC&-e~G;Ay~a-;02~Lj=iGf%V1PU8IH4nwThF=@qARF@uU&ybP7KB?v(CDj za-d=sXAQ+<+JmGwW-Jkq3U;jBxj}Nkfy)qkQKdY*&`f39IkFrO%o1Q}(cjkbRSR*& zh=w&s8f>OvKxhzX;vIt&NcSprx@w)0jX5ms#}U)L=KN)0?zZa5Ok76C8hIXxE@}-h ztV^N*m||xlu;o8C=%Q>lszRY7$N@<=?J3m2RkrN6`-E}9C#6a^K27mnN7>1^Um1wVzya+Z)iT4l<-S>8$?rqvA` z(>0wtCV%92trUpeClRY%P~t${6uz+1!sB*(eD?V8xR3+~cDbpM#NiJ7X3;*BC^~La zOUfg*%=LQUFf$j#KBYDyp6oKx8h2@`RyUz`vFtOa<0t*ko;_R3H+rXCtz=aN77IcH zj1Mv=u6)qTeQMVT5pHaaVxhD$?o)7Vb;CzkRZOzW8n7EbovR=Fm_~EdR|Z{>)?MI) z>!MDH0$OgjojZzZq-FRhDqubJop%WE>J*$5Mct>f9X3OOVBoknZ)w`qNqvIBp%Os` z@5h^^mOAt_@0QI90v0m5{33KUhEz<4|XpxW)h~VsC3hb+7D8rf*(d zc*lKA1;R4hL_W8Ba_WZ1o(`+>Q`%QmRSYv#cz(}`Gps~;ZM+F{XO+5s%4xBHYsfoaOaKCqG6S=I-*pmWr!Yx~tCJ%wm~`YyU-th)xh4 zOES%ENAHAVb)2!%oeJNSmm#Wa2h)kq5CP}E_e6Bx5iTMft)Z(Y001BWNkl z9T5z3cd?vOb^CCMAXiy>Sv`gdNVdsT6uEM7h2-(Ewmn&fUCwC;FgZsyJ*tGWu@c9q zRz$-cmsu=y%I=`rJl(IqeZcF&pqquS$OO??n8kynGfQ6n?Da=<2f_#FHe&-UM|`4N z2~^=26cFo|CCN`e<=*+XFjcT3$8fQ3NS#j=6j&;1fLk666W)c%3Z|1*ZV>BiFS=?-(h2f3i z_nbfuy#v~R9WaKT>5!eHq+?8$K)GjnVVFm!ie!y<|6%tlR1xhLbjH%xtilz7g1BbH zh3NZW!dI==1i0#)IYB+Gm#ab;YMqCbLz^uRKBwJvD|>6Q-G+(X!Am7K>IqIgLJXrl z6zvjKwprebXxI!ha71s8$rFuaTVU=}``02K zf`E0gBoFr^P!_UT2=(F&nO)gJd9-j6+Z-V_IWdJ;u6%^h`~k05{_f-73h0k@5+c%A zbmg!;nw5Lhrjo~HP`X9y)@@7!+GtivW|{5Ob=SL`RBPzWGSj4JjV8&+zHT0Sc zEG!%h4UVhtS^a<*vN@rfliBcxh+UYwWBaC_EUX^a!>vZgO+SFyK@RoeVOtl)svE0( z&cI>wbIf3P$Nt?G-OP$uXIFfittkJzF^q>J7rqL&GZZg{R>G4iTo$p@dpbgVpwGUF z@H;=$yIsYwK>R3mz<-+EP$|vPD3r-&qEddpwuLPED6SiGr-P}ioMH2>9>=SpiSS5N zsNNDDp@aquFGPpxAL^{-zH>?uIhVsx{oL`KvNrp7GO#-@6|cTI533b!JSuGi$yt?? z{EZjSAJB+}f5%Kpn1@axjGe7IW+EW5X2?|S!F8;5%-|8%)nB8x?FbAwo$B_8esoOT z9)oz`5n+#y>&-V_Hw!!*05lX3xJSe)l(5LSQ-)VhT1JkBy>!qZ0&XFop2|4_VcLUx z#KtxYZg2zW7P&yeAa3475Ge3w%2^PiX_}es9pO9uB4W#|3rNxN{p#}r0;%OYScikC zO88BM#3XA6aIjn}bF7pn_YKx?!+vOq*Ufj>V_m0J9=pvHzurMW*;HO~yF}JaAW;Xc&8y<3 z5jVY_UkK5oyPy{>s0gfIF+BMoZKX~*>Ks=Dm@k1U{ip{xO^fRrA8-4%cjn@|(bUYs zHg3w85q$F|x)DLHR!((Qp*JU0{`}d4g;_i(5=a0009$t(qqlyeD@rbLs&a%9>5iwT zROJpklqc7OV6GT(=Tm1)?FF&-vxjH#AP-#0qkQ@BSbLS?fQAwUr#Gg;+}Ca2452A4 zWN%61(T0&`%)B_MoA?%BEo1ZTc68Uw_NF}m&GST-1%xHs7gBXR>l+w2L?e@5yEq_2|CJ$a3V@2Q7zUGHK zWq1eNFLLv#TRi#ACGXi0tAI{llJPKNbq5Tt!+9u00345-J$v@7Ixnj7=g)WSt@uve_YSvA#A5sEZdtFwQq9gnWB>!kbR@1)q&D+ z6uj%f9-f|_1hJ!Po8o|Xg2WYJsVa@3Si`d|BI5buGocQAl8xw^$o(tgWC@O_F$>=h zYrX&eKs;P2Sm3MbSx^hZ-%$fe&Qv{p|7i!$a?tQy@)THCz_usr+{%UyzEf z!HY>tpjfllT2HqdGci0|p`+f>WtzB}o{`B&;+8%W-D$_H%cu`WqtB>`s~FB<+u_Yt2z6&A0HmJd$>J*_dDM;^X=jK$QpU) z(sM6MRr6+c)8$^bAr*?=E$qdI-g@h;cPcYGjbeV(?7>yEwV|qjVP2mEnuYz~hd=ni z55CjAi$hFeo`H)jB}5nqWMs+{tFEuT_S)O;yi?6oq4=T*vN2nI^Wdq+$}&AXmc9R@ zAARS$-*G4;s*Js`T`6&1!*X!UGTFF89+jIPp1=0^p|{_8h?SkISbc`7VaUH4I&PQm z@5ln*Jw4t2;?KW(E8>^s=2LO?(mpHD!){3K>(x1dUgXXW=HAbqJ$vV!cOKS*sT{`n zf6eQ!JE(qt`SRs^@BKN7|93o6vLHS8?r50I#lBwq;ql>}554{H_&7S@SFQa2=cr#l z{NZ1I|GoE6-lPH1rLa2;2QC1=0@e`}M9FTki|$iaN(BAl}@Y zOF5$^U^L-R@4tNSz4t<(7ElJ4sWOA;N&j_0A48$*;`y=nYp=cbp|?Nel`bq+T)n`+ z*7DDN@!6-p@X3GsZ~xD|{NZ8k2=8ZHNgzgbn%fhLnA_tI)4He_vt;~$>U@2F%JvG0 z4ImE4pip)N>zbZPmRhM&S+uY9H$U_7FMQ?m&z?QcXxRHv3ts>5hd=o9?|!FF-v}Y6 zI)zjOWHdM>T-RFqY6G)3-+1Glci;Jd#^V9w1^^e_*7lN~ z34r#*@Td3Qd+%n|imU;LVF*uKBX8#D((G%`N#?4vnxEJ54}bW>4-b#Wu|2pFC~@`( zu7g4LT+jnCv)gUI_uilH+eU4NrDlxp!Md1q?uWMEA#z>-D?1+Bix)56dHZe2{Vz;i zg2Sr<>$QO*WgP$B_kZw%?|%0(#s>{PXo!;zw@V4eEF#``{f)QZe%p9Q&D~2tJv{MV z$QpouQ08WP-`@L+_inc>-vKmHLZ>oLT*PIu;4sZVFt@n&@crNq@4WNQNAx zK-Je8Dd)W+om6?ZnNr5lx`s_Iv&{dvE}E7QWCd`*h)+roBP!(XoQoDB8KRtMwMm4b z=B2LXH5Tj}CyEs(`7$}o6xPFbTPrW(VS)P^>uBZ%gKJuf>Dv@#u3q5-=fWc&)Wfyc zxDmmnuR!^`VdW|-;RJTn=7W%_J{A$a>?!C6fwapy4QY!gqr&>>3F{|&oupLTDcrLo zkVkCk7V&B0X<$CIs7;j~R0Ya!%8b0yL3O{XM4<*n`lgx`!9a}}qZBOM!fn;_-Q1Xd z8?3r)w%VuFoABsefRmX{MZ1MT9AwR`kY{hZ8Ez>@e?8i3P#DmJvxU?^fK8R*jCWkq zt9IWA7R+kOhe{dj0~q3jTNfX}4k^j2d#=1#ws||_LS4Ai8nik#6-d)9m(Ol}2QIvE z1ev10V<#XsIfLdm<6YreGslT->YN1xK4ACOG3l*Gh8Wv`dAPf`LQxhx$ zFrsknhmyr6R<6}*m1RbpzU|s4EVPlWqOaLMyvaGC;7+Etthu7ZB_5e2&;cLHMoLqS zXPfKHJH71GF0IaiwXn^)npG321WJDOto)YzSe@%_2h+vI*~< zXtEY-=*w`Pq2(Je2#!4>Vn;n?%Io2+H9&R5ye?g{kcyj3Vkh6Ii7KG1GV&@cBc`^< zC17^peJMbKH+;i!z{$L>f)76@UVXV~3LugsLu{60jkc z1cS6DJn9TE<^_tbgm{J_z{VuAqfN7BE6lz3+4Ch82e%=z`byk~ZWaiKW{8;N!5ImX zSroJdYpiiUR=97gXNHBXFs6pi=e1$);+DAeA-N?+rt(qu48QbOzs z|FUZ=_Gtlw8OqQ$wyj%J*3UC zqccH)4S+g#B*C=|W(O-Jba)?Bh-{$i@nL=JQy(*baN;xhjAm(xDH_N2aH|cCuyxli z9o5eF;mhjr*fn@Rv!sPmfy|94;UYH2`d4okMzO0a289W?Ab!BtoO)q&s}VWnAwJZb zsO?3G7%30d%i$uGn0XKm-OSVZ+}Fwty%*p+Jj;hDI~HEiFzfPR?tubkVBS&U+7@B4 zcU8bF7hzk-z2L?l$acsGW>z;ShxdOwH%eV9kw7Y5(bj8UrfLY3XzTcZrVL4gydXLE zO>8hEr{&p{ZbU-?MbZf87;!+es+TX$)$RHdO>KEr*$@T^t7eAhUzM4$sDR5dS!r2& zqn}l3W0-7#s|>jwRl!`IzV4PwTY`|D?ppdfPy|08AJUm>KI2fLjK}EIt`-)X*sq|ue+!LdS-5Qzu)ym4T{)a`Krtahjo<#`<@i&d5=T0TyV1jLW>BP z_}pFJAr1_Zr4lRI!AYwKf$x1AZ+@+rcWU9}r<7Z=uM`hIxi4G%#>wZDSpUlNhLnzX z$NBuogfo@}*KJa5^+xIM6|qT&*I4N&u1hi1^TT*#T`#8@1^!6rswEbcHA6Tl6Lbiwj8#9b zP)dwB6{cACrh|e3B(W~ksRqkWjwIeM%9A`7+kJHz!C}u;q7;uv8|N^a@gwMLbpc+% zKl|lRee4rI{_^Eh)V=g0ud2awf9(Z5FH;uBJ0IU1$LPq$JOj6|JF*X`KU&gwIEk;9b^6gw!8A1B1*L*87~tzA{RX3zQ~SVcXBkH2-vfG2 zQ*b>MaKi{nZVF!zQ==Q7(IHw?yPWtquQg7}8SYA?$3+4QdXm5Dt})*%xu8Ji(>6E* zw>}!eu3Wz^?`9TDwuD14Ka4)W4U*eq4vee8vHRyj_J!yOybHy-R|qNWJfaOH0hW4h z8j{f+A$kTN8N&w6Kt{Y?ZB-K6SJ*uatidaS)H&kV1y)An>@P)Tf)8r_t%2Z4J-1NX za#M>}L7`;UUkdW#Tx)TJ#tu<}S$I4UOjEWZ6R%*L zvA*3-sR4x)8#))hP~4EqnI;RUe`WI`kaIPqBG1H7*~8rXH+0&e+x2i_ZO-wMhW$a*I{q=$EqV z`d?O#JlvKK78py~N&|pV7>{mAxR?}@I8!}}yu50eo?+gYbFSQ1dg3*JZ=m0WBW1H3 zHJfP7X7_2Ds5qUnsdbB5TG=IduhnC2Rx1r-d&Ghj=3Q0pXoc{pvqh@Az`a#jY(Vs{NrbMD^C#6BJ!6i7$M@Oe0Jx;fE06&e7X1Ag2tkb%JhrXMJXjO&!Dc z^o8hdE9#ERZ?Ru{{n=N3>a$P*t@(ROW$dMMp z$kX^i&oK;QFw1A!$G5Vs6|IN^L~s%sDq1B0CcBm0IBlKoP&N|CNh<$x z`L)R3Edpv@gBAc8$H0AKj>gKlckfal3JOrj3VxYofWi$#zOqQhnk^KU;PY>W7Osv`OyH_bby%DkbrPcpY**y3{PyC^<_PEMT+Q#zH`$j+M$ zc1;@FRhB?K2*HlvFaSoD=$p=EwG*`9PXUA#IYmzy#qJyK9kyE$va#cUuqkJ>&U{R; zFEJ~>h!Qa;hQ?CqI7A)O0F?N@n_;y?lNWSCIDEKuYXAo1&bR%~c#FaqHo9ZkUSnWS zQBZX6aWu2)H|>Ri!$`jHVqw_u7Xk22YX(v%TEc;y4hqV&y6urCWaiR%={h10^ucW! z>*{S;2PWp-3wX$pvpQ2hE}daUUr>f8BLH%8Cvb#?{X(aA79zOO5miHpnV#A;FuHk* zU<6gm@Ys+VR)uAD)H!G%VfHm^P2NEX?HtsN!5v0%*_yvR5JC(1a0yaXo9<5aC|U}b zz_E~o*1?Eis27@rEek*P*G4E#O>lnLD52Lgb4Pz)Zl!83AS*T|a1K19TPYrd~_7_#|b;+m5buRz%UB2i;ht_C98FqYX8AQ}7AjMI)?3J<-0$743 zofGMBS%d}vN)e?_t6z|6HLzWqh2Ft#!H@CF@YPZHA=={(FfV%{;6gUUohZon9uoJD zWfcz5s$AF=8%qcc%ABf{A=XTqK1lEx4hKPv@8nlmS{abHZ?BD8^kDH}ZF%O^JX&~E zy&ovXHw5Haek5uR>JJ@-iP!b(IK_lzcOQ9z1t!OL&akR&xlIyrn_`WbT>|U!YMz>2 zxx9f3hAj3&bR*P+1QciyzBYRW<0vp8YX(x_&}Stko=zpHq@lV4q$0-PaRnR=*Tm9t z7cwY(@3sdO-$*_+%F;cePu>(cCc!Dp*fJYH;BjZ;zzif?`(&v1Gt)NP^?1kJFlF$}4zVFc}aiEPMgLnnIv$lLlrm&h;f;=)$c@ z#on$xGh=}uZOj!_ah9gjW-#m+uAd14;k5am|ETcqy)IdnjVX#0f!4$TaASQ^f1_1T zAAohrQeb(MG0iM@wYhWjF@&B38CHSQtoB-gPSEh8!DC?6pNNizF*z<*f#ThON5K(> z;&0BMosY4*nZ1xb;t!MHq`K8m7qvlN;bIY&{rH9r4(X)shlm zsOZ)S#l}mpH754#?VtE4R>oC_)wn2JgV>fN&%r$`dw)qm3(amyGW@1GSE8 zhs5U#AlLvn&_O;;UzDAvssjEPP6Iu2jCGm05Gq3bkU zWZ1NHTr_{WJv~0GFMa7VU;E{s5n8z?4$?v(t#M;D3NSLdT1~+Qo;wC{nh|R^0$3m}^k!{d@lwo%5gZ#PvFP@}@*7 zwZff%V;aOE&Qq0%I)Jy1(S8GV6D`rO+=G{95Nn~ zWa91-LSMkK9e4I~OMwJU=EyD0PDLVE^%K?YeruRJu}5)XF7#V@*K&#DM_Oo3Jx>u; zKGi3{3phmyxs6}pK_09JDu`_0dxV;|aPx zTiw74#LL_@64MJaJlQ*W+3jt8?~>sFIJ1i|P*E~Oqz*Yzy67yd0wIDn3Si|(0y>2$ zQVy9|opqG1@4b5ZfTLFG!pkXTN z6^@-gL3WBq7PGi#tdFQS93EqK$w|@8fyCWPZ6|l0-sTuc`Io^s%_D5(>@&z0(|<#C z3zz7=TLDG{X0EGr`-#td{BvLW^lQ&wcXKu}A#B_^O`^CEBf`SCgf7||St_^yRLDEA z?m))hEqGeVT2B90mT`09OhR-&0B{ewyfAn*~Jhdv;c5%!~T$h8w4duBoQ`6zTl!IY^cPy zATf_E(AC%+fE=01BZdWOMv14^N0qFEhA>;f-A^l&)ClQ#?5MIM5af7?2?YSwP2&u5 z;hG+mBydZzxrLUr3LvpN8Da_EU}i}3jM|LAdL!xpqZv2Q9Zi{Ka_y`4baC_8VxuL4 z=+E+-_)ht;Xx8+UORg`utbAvTVq#iQEM^6q2T|MA9SG#0NUPh3Ebol&N$3a$q@)p~ zX(MR{SeEaba#6jR%3-o8q%&;J;t+wp46@WN|s!_*6QAjKcslBKIxQ?Zs zAA^~Y@}U|oOK&+0&6)MDWlRy+cacylT~t;gh9va`EC|s6T{Z&szbXq3vUB3Y8NjmZ zEAD(Hk&}3VZcrF2y+J`D-?uI?b%M3aq`*CLL%47cEgxv_R zqGE7816?8NSM>~~;R87W_orCn&Ie}-cCoiRFCOEi0YONfjb{)L{(w9Y5}O_R8r)k^ z5_Tn@#{q6gQj-_;2T6)E%ydzXEaZH_p}_Izzcg%TwN6mTJ6Z{xSY=HJ+Ykcab&9qv z79W^uCH~Y9H9f%i`PCRrQ0cV8Hv7?55(Ys^QjmN0V(i?hMA0h13YR2>AQ>g+o%ZIk z1I@OI-#|gEMs^-x#(juQyOs$fxO6osysS@va)i=fK;hs)&KxvmfdjGJcG zpPlqb!coBpP9)JB_aSmaxdUkA6U2%F?Jdkc{>hJh_3J;i9#+}rJRJIwA7K8uo+05A&%butdgbT|H#4VOf;U}u!z{A7qcIwZQCPQ`&jqg7`XtSWMcj*SaN zkD1bQrX)e09256OSL5d$-YoV)2h=B5#5n{3%E~>;d1SI#-dxKlU zID8Wrf+9~wT--=ywbX_67KcA54t3K#36B^{B}bYO4IETS$bk_<(YS(`f()a_*26UE zzJeVla^hqy=~yV1MZrBW7%f_3kSvhPsWAlF!KcfXq1Tl!aH&yfm@n={X|3LIWaT87 zM~4I!AZOVr$~X1H>L`cmiKBho21(~;iI!o2tSFAhIE_SbW=ly66vcs|)hwicD(2sr zHzx2L0?av_t3%P;8%I3M$Hx0bj`XGAa`MdD2|WF#&YAO2AV>GuR)0TGtg8kZVvB+? zq?u}oXW#P_id}%X5?PHR>VM3YO#gKRpqxn-pm~oe*LD?)%e7r~rsE AEcPc8zPju8syv-u~04{u*Tt)AzJ22W&>MSM_sC-#V8UH z+?U%0Om6q&$dsn2X7xygWzI|B*=b9)QpZa~?;ItwkiMhE4U$p>!6uih+oerew%xg5 zd)GQe%ENxd$vvvjW`*8F^oagCYU5e+AZxi{ewfLI)bLg}tE#~CfOfhZW5GcY0HdbE zl9&k|CRVc!NxuvcDI8<#2RcIDq{w1Z|LYxV%i^#%Z}Jjef9ry7?wcWn@hT@nz90iL zi-?F{_?55y+%Ns~%a>0Uw|c}>Q2#IwGw1DTuYlO&n?CGbnw!~_BBN$)<7hYOPs=R+ zprSp+XkBah`!8?LAJ?z_gKzxmKm5BJhNI9pVX1wxy`X;XhEc`KG@+7Zrgy`1%NC0>o^|Js6%JTwa?RclqWSnY^6yU1#%6iZ@ zDQhP&<{d+`;fkq&b`k+0fcSn?7-Je_?sOUKR!knl91Dl~%hs83n(k&?vr|Zj1wnDo zdPEDsGTD~FMc^_`tFRGfZ6}C9q9oyB=nP@2sl4YG6V~x6v9e|* zbD@X_yXg6;NTw@!XzkeLAIutCIBIFXGz_yxj1q=+m|~0bF#tuc%F1L~2LF=v=v{dBc`SNvCQ2HT zHY7Xl5m=qOY|$oQpT+w|Pp4)jlsWc(=;uD6Fz4vtRhTOQt&e==Sh zU%{QcZXRN_yytQ*$H$+5`ZBv%@E(SHJ&epb^)BDntqyf7NrxC(dz?536Rh}JrJ;l9 zHc6Z&{|IYrzllhqzc4Q547c9r*>JNj99EvQB~ruUQN$$5o%1tT)Z8$xoWAaNH5!>K z2V}0lI)0?LH+CjfQJe6^pqi6dDeexz`2~WU1>13ynNFq(0hJP$Losqac7fSr@!>24 z#)5(LJy1m|t`&K2Gini84yhJ!$LL1(Hsumnn?Q-GpgA|QB4LjUlOamst?Q1N?#Y%T|_|b?i zK~j2Y+-)LUWLGpwiDM8Q93*7$!__S(CbU?IuzkG#fVQQk&SIGXCmPibh4(NcAoP5D zph;S00(a$%<=8bZDo1jg5kfgd8VMOS6qZa;YI7BK55?9IL|6vY5+b7Q%2B;f5;V^R z436TB*M1WHbfyG z=4!GQH;Df(F40z%S7+q&^w)g6mNbe7JF?A>*9c$xyFc@bf9L1kc>VRb?es5pYA!qh zTkgC<1aS!mu0bii2KK+Trb-48%tE)8KB6rTrHfZ-}Y1ttOQv}w8GIqfrb#$}m=_c0+S z)p*G2GE;`!H%~n$D~+OXI>u!}3O_e2!p1y@h$PF+V`1ljS|u$dk@ka{+%c*aAfr*( za+utiqh#y)OJ%2Q3V>jE8JlcZyfu`8VVW}WGZdUuqm?VS=XJaq!6 zA4eFC1#Cx>=utX#;VbCDWIb(*ZZCiFU%0Bwbk3O zTz|(hY0&``^z#%{t9ppa=V!&+=;C^I;_=+K;IJuPZF$G1Ix5BQN&*^f95F-owtQfS zn41CO>9ln7=@Hb9@v<$zb9GoOWaKTK(c^7HE8CXPI1~4_JT-nnWj%8kfD!TsO8{bP|1UN zUyliR>-XeGQ~)4x`XP8Qi0jQ@e*4I%;8qh3()YeuJP#^4vVTA89FpsUC7X zMh)c_IXFDJ0yXv-25HiNLt7%Cw82JmyQ7hW1*5hl3?J^jfq0JV)!<1z@eb>4w&kI6 za!N^|)aqEmu0Wxk=%%Vcz%8o-PAc7Vl9%g0rWF*IZ7?Uodr2+eQ02RI*}zP%_svyu z)$fTg?I1|)SWFzgUS2yPx(Iyh?Kl76Pk;Mwe)bc4@9Gd8PcR((b-0l)U-7;!0}6xU zak^I~A~1kHCVWfny-ts#&nfWPy70{D_tVqMFMjdU-};x|{P<@-Mxtqc`OR3E-BG6V z%Ms4A|f^5H1H~s6@oz;usNuH;nLSH6IHYJMZJG-<$P} zN+=XpTmZp=ma)+U3u6iOLLBCN>Ue*>VumKgI=Dz=JVgOHD1w7K_p#@= zSf9n?2HI9-oAyYArMQa?T12%I>nNuCWdDdz_^!1NLOLro?kKNDGti*jYc_B-;?`O4 z5VzV5(!DZV2!Y2rg6HAGqw`zx>DW4gUvn8|$C6HBklfUB%wULz^`Y*=oFF+u3ZoNy zlW@H%Cq`YQpT6EXcXk7+np!rR)Bg?^=y!DTQs|`|I8=63h3s{pnfj?(amkp!)X8na zwVK>{w*<2-!Q(!=vC^qPPgrHp!sR-N2|01T9(?`nU;Fy6{Q5W6!{fefk7}=MP-^Es z5Hog>aR;HqL3YzAr(Ol(-Rd#yGt%Nb8gQ`qVwEFywH=%EyPNy+r>Ccfu%G<7uYCR2 zzOn2S$tuP#X+hjr^L9}r@>=Z>QtOpRF+t!Qb!d~)S1;#Manet zIz3__O0$KIu~8slzRy)0jv{GFc4D{W1l1Qa>Ik&itbRc#F-8g*Nd?(CcUvzc!7211 zrpgYY)`YnArj2DXY_0=-hWgsz%eAtT$p}%Q4x9<5q z`rFW&=i&5bL4+^KrkSoo_VyXsTA1e1omj3-% zzToxX`pQ;ZuG$h*e=lisR|=JJ=n=<@LDVs1yO~6!^X0;uIg}rN8pVNAHyC?_}*j` z|3tw!zL((AT^4}X(LN_(5^B6o3~aptl@#?oInls59*Uf^l`5ONJUBt>8e(%bd|}cO zX3Tnir4B;(>(DE%-L{zM>-<$i`yGTlUbw8I8YLm5p~@}y@b9oxb&yELy{7NWsp&2U zw#?YnC>Ra;BioFYtCB<<2V~Iz6orQIl_0o7XzvXO8w;Xz{g-M%_T?7KqBDG4e8HB9 zS(kRHi|O}z0>%Zvf?53L?|<_vKmElw-hA`v_9RGKr}o1K4<(iCd59NK@i9deYb9rL zt6sG4;?d3dz))-q6Xs#d>wYnG_QeW25bi;ZS;Xz7@A%p;{;l8rqkr=3wbu;wa67an z`YLrd7^f}p9t!F)>ZgF&P{sgL&POXuuvpmO(WK^ymxh_c+2@ji4A@bfTd_CJt0;mx z)!povV7Odg<$+u059HR72i^(rc|Rpw4zrNI95ou4Y`k1gHM?^FdT!cym`92P*t8&m zgq|~KQjpZ@89<_)(rG2&G2OV34Q5+U>3~hZdXo#KuszY3?>lqUyvFKe#t9S>y6A?OuKg^{>XFsCyENc%L5Uwq_@9oDt{SW(!vtbI~|{ zyuNh7jg**xv94O_%q~O$_s~ke!LIQ*%#GCt@=>P44TGKLKl&zOQUkRU+~-hds8 z^En4uSQ9ce;+D@wGUIcKaDBl6kS7`~e~awKrjZ3bO@o}XJ3Oxphj;5yt4Iio@WBlK zGKgrf&Gj9P{rqx@t*_4C2$0r}o$?I5fWg}afOCid3RA|j6-*nFikCz6s4MyK&qj#2++Fs4*9icP)OlKAm z9n}H;lPM&&@u=D&cA-q^d3h5OtmrZ^S6J$H zU;M)#|A~*h|Ni?sUOE<8NjMy@pcoDFJp(@t_3B43gt0MBDJCp$KUgwR2q3GUGD3cl z!p0=Ya7(uR)%!ns%egr zZQ_j-kj*wqTyb0uMF>qtG#%412ZP>gWFWiINQkthjp5;7?5II-U=8B&I^?)9xI9{5 zIHa!8wD%6nS~`gyO+d&-Tt~5i5jOKRXa9Y5h5#t_zDqiCtK=M@OC7)iO1gkWVg?#!M(C+6wrb z_+fegb?RR6qF0w8?$@UIDoGiFrD+^JEu@d7nNQcH4FHcU@Z6(PjAv>R;kY%5hAH6F zP{#1(m?_ff1k^8TV8HC8L7n&%VyAv%CFLFF>2Mie$2~AH&!LnE36Dg)Pt-&X<2k9+(K$Iz(WemwuSlPs=N9tbGaXa0d&k6c3TRmgfNexQ zg8gVPQ^TE*n;0RsVq+BI58w?bg0$)wy}f<@Bx9AA$;E4CK?)^mD3p=xPO-+4Sdais zq;*spg=VzXX4fDT09Zxzz%P0NL?7ZKeOb}Y@qurL#lsIZVLi?ux*GjG@@sD6VcLrG#5S^7n%Y);l8><1IpYv*hFPtg?@J-nfcC*%%M7+Ds02g3|8misyn0Gq$Sg-C zkNbQYEn5@aAj5iqRyRvoq5qX=O#Dx z^(dq0VqsmZZ;~X`2ndQZak{DvRFIJ-RUI{7-~85p_)GuZFT8m1B5sJLf*wa5X?#$- zfjmJrpiOrDCx#CwjHFVQ8+Y}5ETT9{&3UpTdwROP{K&iSe)G3}{U7}H-z#xCu(&lC zZNz?pZsq-Bs={D*%wFpMTv(BYz}%AB)L z7N(UiSQqV<@Wo^Jgo`>BZogr((T-*vbsFDJY6QKoH%gBUxba)u=OVHuM}gMdn#Zo(3%F zah|2HJ&u)$GXId^zSs;SP((IucA_Cxj5!Nt;|@t3-9@BsRC)6irc#3D8~nUK^xzr! z=W-~fyivQC4<`aNS(`aOR;t$2C8UT+`4S12hb1m44o~r&QPA<*(Dl%HdwXcV3fGkr ze45mOh^EIJqw^54do#lW)qtc~GHPh8-v~E-!Qhx3f*V#K_nMT41)tN231e8@_*4pW zQC+(^U?B%0HzUTDq^&{rvhyp)gu92@qy8Q^-Vv*|GGxp$JbVfEl`H8YB>j(k!m6hg zAB4nIBj?>`I1rcZ(nXb9$L6%XE@)=P!J~Wa5^s|Nvj(10Mi&$Uan#zd&_SoP#P~&* zpL_Qz4;)&FCnhzk*)%pNWepsa74kt`Ur~pL5Jn=b5+fRQiy{@}`+(7-8PLAfNr!co z660JP7P4;tl$#n){kF{Pmdy2C&TVX>KC^(sl`#jVv6Yn=tc^g%548C~umFIDso`+_ zX4W$)4;ML&!D%3#wVuL?P|=3t*1{Mw05d)qw&Xy&iCT4%?k(oXQe%=TE1k@3bD7QS zZ@&5MKl#=-e)a2S4^J~s^Q zw?q)dEdHlP%h~+4d?a(aa`>>S@sh-mhRE+6-qr(nYofq(%it+6q=!3n>@J@glEV#1 zX8dyTP{~qpFs|LnN~d-RvV$6V9Zu2%kgHQPsWISraAjS92v^1=m_}J{nI4~(mAZ3| z0KlZpi8JHo%;L%jt3p1L8J0)Afa=OhVhE<&&eB}IS%##a%}Lc)B3^=C^*>T0J^8n) zfz;E|gKibgK-Hj8QzWN42{v|Fu{7?O^)xW!Z0pDI&UWv7LWZ|$=5U}>^_FJe8#=Wq z!ZD%GWK}j&?*(~!5ihUsOowyIwhi)D8+2j1h?a-S%|0vc_iR6dX_qN<1{JhA1L{k> zD?RgO^VO@Cpm0zWpc-IM=SsF~Caw3#(u~XbWf(aDQZ2E?eaKLh?yBYxr2r2-Y%R+i z^77JQ00M+QQN(3dYD9S{kD6f}alrgsr73E0QB#GKbeiZKn*BNe@ofJK86rv3{D6Kl zsfHC0F^0jA={nuK9VO&KVN&)(oM`)FZp{-RL{h9QR8P#gg*2`yna;3)qsEI^tJzbu zbVeH#!9hb=pY)0VfFrI?8o_#m6o^@Q|6g(drtXIp4qQZ;b|oN?$yu9TaUshY>6Hv^KHTiy|Q zI-*01m%u<)4swn~c!Gh(W_L;6^{{rDqPWGjV9h)ok#ansJ8B|X%oPUrB~D747eO}m zAMXL00dp)mRATRx%&eQKc?}0oWzG(B?rKX#VDNU0#fG4A0aj7$3PAl1`^=X=`Rzac z)@Q%)nfL$dW$YUbc|(@ogNNr~kN^N607*naRCwzy2#-TlE|>%&FA{PvHF!5Xi3-OA zWvsZ9Jg)3>M?6KuSHAk?-~Z2k>oZ^Zlo@Uk0p{Hk(CNQr4`GpynpM55`9zhJKkzYP zz?xhI^ZLl+>TZWBSWj^sl#LE=U|oeioG(7RvlB1nkbGN9+p|N@I z^zBf;OYUk=#~4OK!Q(mG%38u*cNjk%3cx=Uc%2vF9?N=TN;B&m! zoskl4xUs_KG~+J#vwjvFvf@@!KAVhjA+dEPTb|8@BXt>W7j3DQD#kIw$2qKeFaC8J zp98R2{R&LpDIFAxIBBJoEi=UsS3wqy+*Es)nQ%@Cav339-Ii+CKtlPKzH#laE+rLL zh9;zwW3Vr6zTnx$o#o^nc*wI_G44nTBRYnATPLqA;+Y2L2!P%XXAxzQ1R>Qc1a-36 zM|*GvO31EXB_F8{Z`EwYtqf}o!Wr5jIy4WwxMtGrV0VC&JpULtuh2-&IyVTcUFlm$ zqJNxdtURAD$tDgwC5;CAfE~}Rj=<=+Oh!k=9>nZ`5M_OXaYEPoD81s9bogN!qAv~P z&5!UoSwlKW$C7dUGK#~P9G|^q=W4wf-JHPf%e-+#HTSv>uz!0t(wO~?9%E;LrJN|Y}+sUQk;48R8T=BM-QBTK<)yiQF zgwYWhOw|JM7da9sA&0gWV6#M$)|XV240k+vJCtmd4+@x8nAvgPy*gcqO4w*w*va(Ri@^g2bwSMU~kz{&N2QwWC+ zr^U0zknTITNuVCxyjFu{f1olESNL$Vx~-g3ORp)Gb}z0%{_9@p|6$T@R}}Pcu2dU* z7mdlO?ms|0hef%vK#h+O(AJm@OJ+o-aGe_rR>P%E5Pyl2_2?E~r&UBbdFELCiWvYv`zNTvY{8>A!MQ7uR=Y5vzcmWA(N?^;u1)4M*gwlks*Vx1nF4 zTFJ6--f#P<_<54hEF=4?YYDWpqY38j|#5`GWQ_+!v1Fs0ec5 zl`*K63tR%+Wj3U=`#2WQ9JfP!WnOWlOO94HtYyJh9m`(QCEKvgW&YaG#1oscjyZll zczqyR{p8`xsuTY3@a&tv`|IES*T3`8kA5VcV(+JgfDvu1^jtqx678sd7vB)#>30kl zM2BLK_9^NlpqH(Bk`Pa~r%!+C6Tkn*zx5lx^XrfHP)Pu)=Eeb&<{C{z=EjF)RUL5U z?cX>UIN!qTfhAAvxfDwa4Pym(lG-fFY1hlx0qVFRW1>fmKE5lcZwb!N>>mWh`zJtYO zE$*3JP_D%~EHj|*rZEgf_29q+N|kcB0X8p7A{@Wd-ZW+@y6450bH$gtdET_eG}H0u zVo4nxG#nC^2bcC8b{I%SGeQxLlO^}n+c@Ae>hYsi%PeZdrMW?{E;2-GAi~>W+|s2; zOk0*N4x&uwU|>jy2Icdj!uatDNX%jFwqyj1H)^B@Q^bjmP;JSONJIsZ=o(RXkBIQ$ zvVk5(O}{ysQK8(h1TlJGQkd{Vjb>Qzq)*;7LSzTuAYrA|-p;SyxV~#EXu{5rdZpz) zSJsacva${0tXBoY%|cdS9b?I8lnyPAKY547!pLz}#dgVQ8%oW9SI3Qh@}{6(kduMkW$ z_TBSy)HaLdj-$?29x1t+kzoYIgNy&qOG8wdTW`h_AIEr;H7z3SbWyhfMgus?z5BMw zqy-I1K0vsh4vWTAyX&aVjy~K4onlCd#oYmGEEfr^9Fo#^ap#!&*)6yY4ShBJ7tlj=h-2`bthv1|wi&};CcCevlS;B`-_o%TAdNVDjHAsxD0RNc7FvX!`` zOSws&e1q|0l5cj1LZiVhPv+Nt-MY{U5*f`m^q5 zKuFGKjfr4Y4jzH68&ST&g&Tfp0!1lh*nZ*Gb@2gPZBrW-sFUhe7^EVYf&QMM71K1N zif7#`FU{xFbpR}ruG0&bN}c^gX*2~oR<|354fRG1s9)=hi?E*qtW@qjG^eQ_v!(0% z+$3>^J4SSya0yN~1V1Frcz~;yzB7P}fu;^Zx&d-sA-B2qvV5-3LlDA3is8RZWp|r#Byq0M6bB zMwt0FkL8^N(oJKVp)3}CyO>(9_!+V_b_clv#5ISI>5>w81X3BiD$Cu4a1{}ImaKq+r+gFYElba_Tf;QDZ&OD&e9#O5CO*)OJmHql-!%koMAZFYH^tj zuLm(#HuMzN4}Eg@EQz;dqHxDF6yHOOaWSY^59}fllRcbQb>Ms-i?COlr-nMMjp?zQ zV0smo;1mLMvI)Ks0jGCrK$6ghm;4{F2}IdjJ6~zExIb)Br~CtRR*I2NuCK z@F~a&Bhx-dOmN(n#??!B(s~(#@hQ{rWU(*~?rya=oGchfU4}<=>to0!mQE3+r_nt* znINVh#Rg6>kQgiRq5TL_a=02OE`mCyt7eqaeIPcIrOs(6QP_(7uM5a-`LttjR<}zb zj^c7rZqU!g4h_IV!zW>^f!k1WH74#esNA%VHD3Ejg+|^iBAow}IYc*=+GQE~RPki3 zr0VrIaMsCVe)ZOyFMjWj{^=k8mw)hyPkn6feS7(GnLVH)9`~4aGq;TvH3V2Vz=xZ$ znE@MY@w>XMTHaU-;ZXEi=5gD%z2kGA`Sc(B>9>CSkACaTH{P&V0sK-jWqU|q1*`>@ z&6{^*iA+X`Kzzv4mtZNtoEjsp69^AEAwMkZo4?bztuw!(a|^z%R&-BoC^|}$`h-lm ztOyr&`LUTfaB#Ya>H-Xx)Zq5TMSd*@-Ye(HSbq8Tw9rDmQW5L6@+iWSObHiq=>U?owr`V`p6#xM&mvWl|pR85~x`$)55kmX%Sy&dbF z2_{oxzhir5cJy$}>)sIQMpDA+5f*aqxpllrL9<24H%;aFrq0KQyu!M`qQqwd3lylyyf~I?I2@wP0qDC4EzT`@3ic=nz z?k};$8Lm=qgo2dz!N4hY44J=cYKl|*&}!C}h>z_ewRWMbFF0gpHXZC`$lBIQFv^Dh z`~BTFtYJlKxCy7Svwzkljp!1#RI(Yr=p;rzk!Td-Z!;DAe@`~#)xO0deLuKsu#ZfW z0W=~6BsyH7h#%vZFt1gVrAln0ARX388!mUKMw$gZOA zmWR1g2M6mT1q<8^&q6Smk<4xrrShWAN9}YWarzv;DO>r_iw}M4U;d+i_22x9kAL#x zKl;n}U*6ugbfLiB`Z07TAXhi4wy=2Zad`b0VlCbwN?73ZHIEL*jq&^azk2zxzwxm@ z`LF+zfBv8Uvp3&*Bd7D_nQlg(@7bcf(j(kkg79`#Ou+-TUtU&qcn8XWwrLN2{_&yY z=v*CIociQSYF_r`$o1PT=W;lnl%y7f(?HW3q@vb zUOnRxL}AK`PoxZAhJ<&$pn~uaPK0qqX9wSDI3o1|j1EFaXTO9%@kbQMr#3`31{P(Pp_cnA_I>{R2p z@U%_84zRc^1&6+3iP~TcQ+~8xxSdp^AlDg|*ED$(jfw6CWFY;A_YkcO;=wTi_IglG z<3{PK8b*u~uR@K9l?w3myRf;`Et;n6&7pYZUXjxT8)~WUIRWkFrZ{@1v_Q_v&!V!Q zkP|>`43@B0fbsbw?Mz7gN5ByNiQR*+DVuSyLGJ7w$T?j;3eQ?l#mG$edeE+lRHC#5 zeQBQ5WJBial?}*Z=k4$$d(>t_#_`G5S;IX95Qnh9fVz&JFiROU;I?@b%Gsp@MQ+<2 zwoSc=<^)WnQ8qYC9&yLmn{U1N=I{Rf|LVX0({KFB*I$4B+SAj^9ZxQIFI;nv%7wvw}0cc=g;$3uMMhT zFAOEB6d_3*+|44~B6@3GLvt0ka4=^n%$EDct1)^&M#Q{$CB;~oIIPKSOa(5_U#{r7 z^?8M!C7}YxssJ$PjVNPaOJ{))u(>ulUSZY1g=XB@1SDGagSVu#1mFSRAh4%W6r&-g z32~EzA~^EtV~C!7rXR5r6p}O=10yYaqq}s|x8iUtgW$~SzN}Fa#zID2Hc%zZ);*Aua9~YzeDp=Gw-TswOXR(9($}4S3UPr*z?{ zLM2O3v~Es4%^VM)eZ&=F%IJj7i{>$ul#54nZ4b*86IqfB34(|}H6)w?ahL0%)CM>D_r5xC~}~^jq{{>*MqyEPccX;x7N`_N)BqBdU6$^fU#3-%P4BnI%a8Z+Ibf-1%oY#@2sf;o#?b;_ z5}JB5bU!pm@k#5mAPt^X3pI(hV3b5cyA@V!T*8NrSQAP6mU1uqLB{GUrHNS>sBe38 zw_O+RSpjz#4dBdZN)JZ~+Zi-3YJ2rdmDJa1>3X2rPovQ);bBWm;QR7XthIklt64X_ z_kSoIqRdh&0`JM4_`V&t`8N^4atIEEDJwPbr^7$RxPnFg3LjBBLDQz;ub%(Y@u|YP zx~>)gF^QN5k7+Xg{Q2vD?>GO>XTI=>|M`FTU;d~6@qhh`?|uKxH{YB7wmLJnSP$zdZszgs+wXq;mw*1x{@XwN^3QyE+b#CS z%0}Nc#Og4c^g&=;s4#p7S)Kc0QgvOZ51>W@9Q8#Utnku~;9VEofZY?j%VNagT>-kC z1NRuh3sZlL!y}GtE1v8S0R0bX!ZLu1QAa`bcx)}^sx4*f5axj)fT z#*DH%x|s_4tYh_5Qj#^r1bgf;)S#G>ChMoIxemp+XYSF(u$~m+<`%up1x)w*sMH7c zamRcI8SNw*thtqtBWbwnB|c|=4aIOtKb5v&W7 zXoj4u4sM12@>Q3w9JWz6{1Mywxe8RaFg1KqmL34`IPrtx*8@6WgQK{BF@Z z-M}JhYdaHeI#Pf$ts4>I7sxJp24le)ik{>i6Dw@#25~-~NyP`~UiX zzW=@NFJC)it+jV1_Avre*k z;o-3)2t=(|UBd$*GiC4=tvILlf7l zD-9Jz?--iG*oRrlo|V>buR8vJIeWLBTesvqsA|mbTZg^7?bwdn?L)WY*oh4Zf?yCv zgo7Lrf`SlAAUEU&!6g^)2l!RwiU@%s3vq$)1^C872x2>l?bwdfz1QiRqqwMgo_cD$ zbM0<1wfFkwd=F#P@u?a$#yeiK9BXltYWL#}VQOKKc_bZGIIaT%-sp>KO$?Z%Z$kz7Zfc%%RKN|EH{`T7 z(O+4rwS8ja)qDt?Swzja<)XQ$E>ht#jTZH0hzOHq-OL7aO;;cSmYI3|vlw_%ml0|1 zdwUB_Fe)r(8fmC1!IbX7*Kv_URCvEYnDkUZ)IDOO@>b&Lu{H8zzH6^aRrTNLGyPZX zhuzg1CFz55OM9csw#`w-imQoa6_-kPxEoQuEZBS2SzIOzZ!(hXKa445phDDa76i8B z2FBGILW~*XxB~9?0@;+{^$SAfA?Sg)xY+y{n(%R(eM4U?|=XMUwyiN3f~^K@bXA%*vu-* z+pf_>Vefn&bV!e3+@~^n@sPRM{r>Ue%cqF=#y7wGrC6z&Av(?i2h!!$BNAPSw{mmvkGZi@yE2Pq6)`K&7A;?P1oQ|h zLI9LzrElC7VQ_ST?Xc=_?X4fFl5J2e)lNla`?9&aHFqc&h=m3RiNdgOBYYiNIe+WD z0R5w$k{3in2k$`EO_R+QpyoPUp32?qE;GR+oA-_h<5D*>-#G)Ig%YL^y>wJ2F-_}!0ndh73gofz5-g>nYNYqn zv?;hO!K>lpHljTy`QU(@TV#npK&LQHd#hr4@7IhH4eVp&3O>FAY?#+0c^e1Kl!H|JGBcsH0%QAbpn-Y_A4|ZcCj{ z@EDX*_Fzy?QK|u)i!phjc$W8jPg0zdGD4h-^ws($2QlPNLFI&A#5n;`S9b@1W4mSX z+z|{KAYpDh@XGkScH62IciaUOHC^+Z-u9h2i_8r^K=n2N=YX+TE#i7|5ztEkN0BR>&CiGPA8ua*I_7+BW#wp{5XD2DII?XYCGKKhnM z_vSqi7N!&orq7Yu5RV=doIm{cP}}^4dDqZ}+BRuE)mGbMt1{d?wk-K5>BxnES2xSI z0Xm&(nmjrooq1}>k->#rj2Rzv!16wYZ?{M7EDIn#_$4ddEj9NNQ_EkGR6U_ZcoumQ>M*4 za#8{4?gXgEVN|xq0bd8BsK7(RibQX707b+qWUB(lKwb$Ew4-!bNpT@AAI4hO(8-%u zMV1aK%tPA1i5o4El`rQlwy~Q-4hnJ++xFZA(MKNw;dM)u#zLfu)eVRpmdLJodi(j@V)G>Er&fAN}TE`d5GHU;nGW z`fGpfSAXTN{L1ZibNBsnw_8mT?3RLeyud(Jwb~}#wF}FvB3+xPxw+wDQS5BfkaZNK zQfeBy_#JdHxCQa`sC57UAOJ~3K~%Qk#J^1vd#gS7`xapOWQU!=?`Qxm^VlI@;8*?paD|!eN7VfKJi0*D4k3gdo!dPL(_(?+vH_xRLspqInhx5_1 z;jjv+jKvDWPRSI+=Y{O>C3^_Y20D293bpxM;JkkXGtIv;u zRPy2s@FEhDWvQpk{PcAIj*H;)l^t#BfPx5X!Z{QuQ0}3NiZ7cRM*!5OfI`lF}S@Wwf3!kJ__I z!$z@fak&r9QD53(+rk+LaP_TQCIi<-_0SdFhi_F6D;2S0FJHFzPkj3){>I<=^*{G3 z-~G-1^|$`d-~8?0`<>tW-T(I=fAziZy?lIG%Rk-Y`T0rcvT_)Q?FY07@~iFUF4hC}3hg9R z32~vkyZxYxX@s!6O3|R4C?3JSFm-jtJ}~^m&342ZB2QEZ zI_)6}!cs+8QY~RDM--0wnAkC3oFT!jQw&F#qsTVj&TTA~K}6-`Rc`BnguuNc_GBdi z(?=9KF(J?%H&e_xs7y**Nq)iY&#K{Tbi=#2gsROJwN*BY&N1$niGg6Fqt-q8gF359 z)^pqa=O9q1J1IZW;Nk`~_6u7Pva=Y~7G)Jg{-h%c>cVpZwW@fbbA~mQo;?%i8xr!s zv9FNZnSW4V1`7_#DNxK+kFBauM7ZO1&o!sn5(w>9;fyxFSQo}ke4?npyvcU+oU&d1 zbgE!}1}Z_wIvR4@Rq0G|`HBtvP%(hm`sz9Fq9ip1g#b=dQrAZl<(*P!?1D*d%uyo; zW56gqdRSn7JpCNiVLaZiRwqDIL%GhFa}q^rQ>Xh5i)bgxA|q=|{c?sjDzt~@YCPj^ zmF6?OUqQEB@JBfD_>>W_O`wvE&UcvGPH0{Ten;FKiU_$m;fOt5w;|G=~a){Yt%)PbeRq48OgTA4hUWQ=ZMFLz7Pmk zr4cYptP ze*ZWA$KU)1fB%2^C;#a8-+ll6hnIKp^6}-`j4FSl*+>E+Ws zwz+?L_wwr1^G|*I&;I<+f9F?!?O*!EU-^Zf_|}j8)Svs-x4-l4=i75lBW%ukRx(s2 zm=Wo#N~FLT*=cFNYm~f*Y1cFeAd&7f>k zUD^o9AUH>Lx@oC$N3lID$8v^n*?3{2bwOFiYJ*;nx@F!n8=+5#u@@kQW*Vm_;tgbby(C_0XYd*Yvzw zZ1XH@!tu#CCl1n#lps{m$}PB0jfRc#Pu2#Lh)XmdH&{9hTRUR+WdPiWU`N!(rq0Ng zTcwG;QZil*%g!#0N@9@B55DA(!z~N{7rDFev}0S_*t{@SK4WgN8x~loK`wbzB3=0C za1Cj%<>nXwq~5c!xXz>MzKU1K+0cBn2al`LbyhwgIjrHZ1)m4|%LS0|y!h2AI6K9c zBl9^>H^T_r&1y@MsMZYCR~SDl)m*W{aBnmlXP#GmAER2CfRvy#n32ignZq~`pW4pL z@kGCsA#XSLoYS}fy7<#z;?XA<^t_OKD&pa73Wg7c^dk*mY_*KO+x7;Sn0EyQu_Fgc zwXahSa?pmG<(4PqmIHqSYk5QL4V%YNMmi67@aBiI>M9iKtu4ecCR?@Pf2bhB411r{ z_=EX;GuhS=5x!lrp*F3G9lNFpp`ju|aKw zacM$#Gs!5L-P%zA8-*EBPs^3H6#y)Y1pXm`~CUpIqdfI{Oafa z;&=X&?|kdu|6Bj|pZ?*W{=@(K_x`Wn`hR}+AO7Qi^gI9L<-^B+_Q(JH5C7>OeR%m$ zTL#(QJ8rl2bi2LW@B4oL;>$0-`Q}G{>RaFX@t^qdZ~VxY-~Gj({mZ}l%Rl|ypZuxs z{@E|S`GwznJ>8yePi5t1?knqBC532piw{7hs-iZh+!72NE6DaBxKY-vq#4~Ot<_NU z!KJu0s-RH@6X9XILTC7{t^T-y9IeY?zzS{k9GE!KwD-30Dyw3w5xp05Xr|B=x}22a zGjAQDupfL!^_^LsivNIygdIXwe`X zWJQM}n#v=Yv?PgMV8w;;F1qqER=>hik@aK+q6T_ztixa)gBl4=hAX`w2o903#(poa zd^}PDQhS~N+0Kr=o6yV4kew7642J)su+wINKLsfHI4HuBjNRpRAMGWg0#_)A+5{CZ z0}nH=Mc;#Ai&$>vp*qXYCX88F?5I?`6$C2w9*ts7-pEL_O-t8Kdt<0br$u)A^mKdL zITa%QqgrtvKaWqG>N!QGSK7_YV(+^HVM1g*6M~0%HD}b4{4m3vL* zw!*7McdIdu8H|isGlrPg0+VoGv9|3BzYt+qE;+1)3*1r8(_67@+W`dXTJ08@BaCp{js0?k#GL^H($MZe*NZ^KiSjm z>3)y6@29=?y05j;$M12kqM~Rb&30o-9aGT0AI(c5_idm|JJ~yy`}5Oc6(p?(22%lW z_9OId#gzt8Lx%)EPy^D>v*xl`(#D<5*=DY4V#xu_yRK{@hNOQt1 z%xKS6&u-*9fO47jt*H*oJw6!s{Wye5{J|lbp*@!V>r0 z&344oTDyQZ!id^7ABz<4?ZDK+!X=ndqHx*^V{fh*BVw4&R7RPc1AegR&}+V2u(m|1<0js*%|AXQNB(V2OdDUuWJMPDyzMX`*aq z#5$(}NtCYK{prT#9(8n?g>-{2ZXVI=GlkxuuLs$|!7#I1guC7MUcH^duKdOKWIgyU z){3^q02xKY@arI`yKVEeW8X4)u-bi~76*Z4aS!d+&FZmu4w-0btzV=?DS*BALMhC1 zjDv(U^S-^@_Rh_@>Gr5tM&x_GkW+E)2Ut|7zqj3PEABTu!gAn;BfvFEWFXD5AfHW! zcTs1O_?9;~9}e+PpFXKgv|_6wtHJhMW-!g^(ScMk$MfzV-@p6t@go*Prvg6LW!s}Wc1XBW!HU+(vJ@7^^J zoT+^v82xZ_gSx?-&Maz=$}aYf=hv^^ym`B-!gv*$T1!0?&^mDSC$XYOlE1&)-@SYP zP`Kw!M@>l%dfzq7m;=AP_w%dgZ+!73r2m+oq4&wBmU#^>3DcEEB6iqU-~S$*5lFgp zAIpPL++1`0RW+P&Q6`j_>B3 z>hqj!{!G)|j2mC1aB!_-0FT%a&##`}ym?dlp=oE#IyPyURxi^LJSwrmI@ij>_kI8B z`(FhY{`P!v828npxwT-jlWpO60BW0|$g@!RvCh4h`>W?y84*^lbaN!h?#q4MpaM6G z*!Rc`k(1}keJ%I3?mG)B_-y0Xd}Gu7s&70S+-@Go!tO!)HVG;F+vfMyUujf&AZAIl zhtpi(>hp1IM?610eeuPYX0cqx%mYTQBtAZNBJV_%yX|-1`)VVL5?u%%hcTG(sq7Hb z_$&=!JM8xCU%dUsA`JKm$e)qNjInazqfT?9xc%Y7$B&;raR>Pd+x5#XXv;u1k`k-Y zZG9;VLAlS(cEsB+-oAQ%g~S21=w2EjU14&=C6oCa)4>z~gOrz-`}_Cr?GS{Hywc*2 zScJIUepH+mK@M_DR6EvfedEh-V12D3$t-y{?E@N^0oNgYN;r%|)#UN3cVB&cd0CWo zd#wo@ZtibhzqYCI421*5Pn1jp?D*Fc3e4Z_rCXs zckl0eujNlqPfupOn^T4iSRcL!B8FxtFxNCQF+xq)M9JnK!(LwQ;-}&uh}6T2*-QqG z+-)$hsfr*~%p1Nmzdb!o4Gqy%FWCP*jEPtaY@*o^Wa(~sSbTc<*RzX8B~e*9AgFSUknc{bNw(v-R4} z%aAIGL)GjG6oL{OX0p55?qNH^*6p@#w=$JL(ud)l*L!Wt_*|l;7d!Q~o+b8{lXPno z_I;VX?3cZBnN;oTFuZnvk~x|xONvt#v0AVr80d)Axk zMU_pz14tKv)r_vlKEG^ORqHr^d*RO83r<8)j2+WwA zw@h$j&uDC`h4646u43wr=`b(uFE5`Q;%>r1E<#Xih*R^Wq@1LBB@H+d;kT#T?RG0l z`)c(kgPJI^t^lHj&-k>s21B-ZtIz#@-@y6OF?I-kG0Y@{&Ru9wt$OrbO|m0(Y|C(9{R8EH~&8ZpXfYHLY8u6o#E>$~N+;=cFZ zpTgWDw;9orkm+4U?d73uD&j#3_+@e!JJ#~sZS_HY2s(^QCZa@Qd`dI;MCR#V-Sfoo z^}V>?@ArBQuXhed6p@1h00nD(S%JxHI7G)O#sU`Tu{cfhc56viqMNCWdu-btpFVwjx!=w0DNHId zWgr+bo0^sZ&4S5-WBMYOf$~MEm3+!5uxl?hV8@E=ET|6y@rLg4J`!|jcV zYznNZ>4tJM)uD-o!92hh9Jph(fGzMcSKd?d7#KU%sZVi-$BLB+Uo9jGH{GSW^O5|A zwj**C!0Vw(QwBuHNm|~f$k!pu`(`E_Zl0yl@|9b-<+C-qvq)%J-K=AB?Fl8m-%2AV z?pBKdu(+WdUS!U>TRdSE<uo-ckvAHJ}Z4q01| zf%*JT+enVhD&(phs*CUhgk58tP6B!qDB#jAoc(Z%IzYJFDeZcYQt6U;g5CvihpkxQ zQpO{Qi;9+q{L zFC=_=-h|P%^&Ip0alpf)ST0I;-<;cmrrdHy!95(wkd4u?VON4M(g3c*0!t<+?MR$l zVL3E!GV2vEb#cvak0-7~l=&1+?BGt2hFSz9L}{5E53s+zEW;_h@&Z1eP+nTkU|BFn zO6HEK4@}Jno~NA8Fo`d?t~8byS%VQ4M@*No6@n$)VeLKg02GgyMidC+DZSzm7TVj% zQhlhSrDf!ta(bOOdtpKq6lwst)~n~|1_9XC^V8G){<8169&B;kSivq>Ml&Q^MR%vN zRI6dzqN+^P)rzlA;7aAdVNDXHatpkuRd4Vo2$5{-i>VD7ef zq!|&8&3dcj4m-xO5Ibo79KqTlCb*XxVPhgJ$Mvb0CS}8VSomPc%-Ao$TRfI?I~A%B zKTFL}SwP!a@wTuvUb1JgEWBPwY>f%kEj-+tmZYP{3{XDi91uDHXkf6kJg^8-XB*@V z656JFS3@N(1&Wos0E1dr9uAFBZzUw9r5|tZ6cI?63bg4Rn`rL2dfaL#TXJCob&p%W zea0V&p{yY>W_7gW78Hg=Vt#_QCmdSizB~LeET2y-7YPj1!z?!BoJ_Y5aQ6lTIblk& z3SdK0IFfY+LiZZ8vOzrdnU3#_+&0}@)Wl!Grc+<5JXLcEMxNMOO)zi}`2xm#R7243 zL<|Lli%ofp+(hiC7O zC{YyZx*G}UXpm&2V+>Kp(RI9$g znpw?4p`{9y0VHH6%C-xeI-ipSjs(QUU3FVG8v<{XNRT3z#-iX2HLQxao8O~)$WaFH zY40Q{*h-ciR;@X#qeW7gJ5i)1KnoQ4GY2&HKp_enikO+_PW29WiTao3g&}+@D%xg{ z`ui_-#kSZ>^A zYi+%xgdN}!Ewx_>l3LsIj6bp#kcVNBRak;s^ku_w86p_|MAtU>EVmZH65=5?*mfX_ zcotMBO$%SN<>4OW(x~`AA0x0fMMU;XE>(uwq>mJ!nk1VM}5K1@CZ5HP<#4)pLg!4H#Y}E;H|U z#O1~Em{1d3(1!80$cMI_XLc%{RZqY}Ou5nu&!}OzwP2#pCK7PXOEKi@5D+Gr49oU` zf?>PUH5A`XVrh`{>L6c3gmPoHA}9!_bEyP^lEqX*JYAqn>ZRp^tYJpE2DR(-Bo%(~ z7Rr8icLD?hOp{M1CY_NxLWFkYUi>H{Z@Vx3P+$9pI zQPlQvZ3v0JNzVpghF~2;B)cG&SaT^(sdeCzS(k(uQ`nfhPeYY4lWlBM(%(9)qza1bc{d2m&FC%tOa6@aG*Y3d_NvBdZ^ER*aoj%o&tc06;Kez>WGIxL)fe5=T)PB zs-fZTcDvD=Ih6*_WoM5CM^crvwIp_|DuCDR@!ev&>J-lI&HC3~yyNc|UP z(l=!SkMn4$ZDd*L7&@?~$usuW_&}HThs;(nEq+Qisui^bth2y=CFdu|Pef^UtCCFJ@kB&~mEMGB$ zl6|r5UNyKFPH}>&o7IYRV%z5Qh>Pcts_LfmVKg1wy`XyXp6i)|)1LH!2%xVZBc-_k zZmkCyKXWm7S_U#jE=$Qv}>iScdXy%6Dwl>I^o#T|*ZeAYn^;im^H3JjVzrH<6{O` z85a>hLM@7shQ3fp$QVkl0%+U}AO%scP8&luazI#Q?bzHbRxNN`dqF^HeBXGH zpoaheAOJ~3K~zYFdTFQ5FDcpWr^(=e^vmPR=oLc9Bn0+zd|ZTpnfR=()EZaGulgs} z;#=5?)_GnM7$tL@CF!0*j{MaxT%^^G)@ilRCVIZDB`s0VYdmdSz{C41()fCMex7u| zkm{g6Kfm%^UFQyD7Ev~sb*vRZOTti*PGxWK7&g*=Ew$9*Z7o*(a)$0=>Q+xa58;Hb9!Fw;_hLyXoWU96m*;Iz1^3hP%}W$nL!Jr!G=0L>%0M%cTT*AKzl9;7s&f?0-#a? z^YD#lp~+*gqE$Vj{H~2EI}%(tyKuyrdi8X4*?7>b+KP6U%Zzfh2p3IoK_ROy(DAx%<5)MhJyCdgSdE%6AfazwYSM;^kWtapu?LvjzruOL&2t+ z#HHA&Mu(CzU0?FrxGJi%*fxAw_?Zp^Jz}a1RJO2LB*-WPJcPC!IV$ws8yUuUv^5CE zj#e3UWh{wGm|Jb6Ol!I*AN2dU0#tX(U}Jk|nH<^FDe+x4Xpk5eR8tTDCLJLnqqhyY zN8u8BcU}+;3(Z$q(>3D7;~!yswnAvzMi~GW!_91E2{Son`2w}s6lWk!J3F0R8A^IJ zB!w;x(+e6okiPh1p3WO-`;Bf^wbBkz-Y>4@dhjaJV6qKJXzo}7UiQKf7~xp_yfKB| z*K|^vDwM#LEvmr8k%d&NEVo6c*~walS{%3Q+9eiioO%qHpzqpu5p$1@F1volPMJ;^ z32(m5u37NF&~_2{I9nHU)0&&1oWo8+akU2c%U{2FB~-LvM=W-G^ZHGrdp}JxK50^< z3Y~W}a}Z)?{iL#Y&EJ$`iXz=$4vdd9Ot>uAdLwM^1* zISen2i8pFm1(-1}z#1Q*3V;!0*R zG~+5XX-Jta-}7ftYi?_};58e{tE)t75Sex6SZ8Ma_^h9Yp-7X*yF!g4R72&hI66LF z7nbCrz&N&ET(hDG6F?xH_RC!g9CSk;k`7RyQd*~}G>GQ&Tf0ULnJ=hPG;=TkZ+0kB zO6e0?YmmxBqwEDNALcMEA#Cz%W;6`uUV=;T)sVX)OJk0^BSgXiVu}rQlHBT$u5(-^ zGeBs~+IMw?GRoK{eFa4~jHIXX%aDQ=4#jSZz);D1lG8CH9B;6ZD0aj`H=BBup9CQgNjVkufn>(>Q3B^gUlR}a#q1HKKNoXT`p=mW_kkL+HVD+Z4Neq z&LgWVUuTun4u@1*4d{yU2xv|e+lh)#S}2%O_-PJEb_%f|3rs>d`5CCp04^ZY559>( z6fo(ifJY}h1#pJLJD<1Y02_L8Os8OzLovsIMVVXe2|sWl!pxV9MQNw0rA|)rV%X^s z4b1F-TXnFKUg)vn+iSDyW#(afm$7C~TLzcqDtOSQYXlXzI--_&L>|MWq9bn#p6`{C z!`|4)WUs5MghZ$`p}}j+S&c%twqOf8mv~SHA%COz2Ao`r<*mkBXN0&h{F;<}z)D?n(HxD9p#|SwHjIOT)zFperuxmwV z!zdr4-x6`Nae=yiPRsgsm&fM4A0WeAQ&#rMy5_`|_#s8o14o1bJWZVVzZ~zxT4hdV zxnvdK&_>gU$sEx%_kH#JYSnxFdc-s1==j`jx7V*;=TfR6B1+T>XCeCIQ(>^pv%eiy z>GD^}f!~$5eOZ5(UdCT@JxiKn9-7gBy|$5QVJgWWERNKI#1gnoPfy{F0O33-b+6jZ zhDPLs==u-wx!sbb?P z7#BzZSv~8bXt1YCZ1hs73GftYjkr`m=E7J{pyo|M*rRBq%QBkU@{MkRA+iUn8FV$V z6L%44^mNJ=YeYUQy_sadjgGsR6PQoQDuDXrFGV=eTsg(0a4V6n6B-?_>QVgrhuEmWkFAF+;BNvK?>-HtRz5 z>^LgMP(rn@k~}fo%<}aRB0U$!I?DCcG#{FZ0ZUSnlb{CLpcB=TaWp!u7*GgHRqalN(Brep#GKF7pAfz508Qb0;jDBGeQZ7%uC^SFc{(p7>HG%gpIka!zTW!sX+G ztn5ofISD@7@bS$7se)KlBETu@X}9!xgrbGJ5n4va0U1=QL5GjpZHUV^GY-lEr z_6oL79+dWJLRhQog$ZDj8C2nZ7*=3_%?fZ?-3_g-YN(y)$FAMHwrs5NOM9$TpBxi{ zk3QEp0y+1CRgKvu=xiF{Xii?72Q~`y6YItAU^Zyu-vze>uf0zsWKK) zMt}}O0&lQUFZ4w14o9ZoVZ?5==XzmGbaLY00D+F6f~kN*NGdEig)&lanKS7hTA~-Y znZ17V`swM(%rQmpO7iIK1mJjjdVcffZAPIBI{UoiVvVP@$>k9KgY()^Ee9+ElNkV& z%t_d}C&Qv;NM{3&CX6yjK6nl+`t1f#NlN{SJ!G~YFXpg1H8$DD{AKo_m;d>fB!lNvU&P+&*3 zJ*+^~fVDf24d!;BBgedgL%}F_)z6qqD$t7_;aF46VxsvFEiaoP);zE!7WPfV4#S1y z0WfP00W#d;B4<1pZCqi=?09)0owh`p=3VoqZMFQ5tR5CG%r&(1BZGbaRZH@V7$ppL z?=YFmRWQ#Q>Ik&73@VqWC38|8c4&u&4>nuUEY(itl$K)*=6#W_)(o=>M3}dLbG|MB(RS5E9n3itJ`ihM*l+@T7_l0W9p3Rk=iTK+YVM8~lNdOyOA7R} ztmSXsyuGa(M5Sqxivrr7>Dc6XEr0X+4HvU@182y>DT=WXbD-zEH9dpYE%N~7k#&89 zY|z~beIT|_+(Tb7h=2I;_C4A^U)7Vx1;+-zG>eXF=ooNVC0ju_*nq4p@vO^e42J)7 zI$3>nH3UTxLXi`Wz0KhWsdk~Y&ot#xJZp3v@g~#i!{mc*s9^TcFM9t_=WY<*(x6^ZoZS}!VCP?2+sxTEWqT<`dxj1Kt2f>g|l)8z+C%~{GV_B~C;yQs9nAXUh zeJpxVlV7%>!j*YOURb}eWY2=5{Rfev$e~@3u*a0j?%3O|(H^3N{H>QcZC)+jr^E z%CyN;lq+I!NR4IyYpw#BO6&m>;iaP8MNjGAv-bbsQ-idO1=N%z^H|5HK#HHl;3T8# zYXZ-;i*Z0lc&n>!HdEIX`EBZ9DJDS^58InM3q+`T)7pQux?N^6FyF2_< zYR{rhfAz-ouH$C}g>ZR1Ebv}-ae@U9Ysf?E4dhBowUzbrswf4hY?wJ}|BY6{XjgXR z5AAS~BE<-|Lf~4#>)~d(OcxuR7TLAnq9t}l#){Q&3R9hxdqm@HyNVd=iK7p`OV?y? zAXK<8oKcrPe)!?cmaX9Psy$QRV`E((V9g5|CCgLVS1TTO>6U^#uIz*Fm zdgPG|Lj_l1h#*o;0|vsmUtLlgQeW*EK3OUg^R)wqeGFrkSrp#jw$2J4H2|8%acw(~ za7jE7-pBP09%CAwPiplGLAX0Z-aeqdUCgZBM&-*gY@2kPk#dhrkjKlt8Oxl$T18sfm55L<%a7s` zQsnJ2vg_T!6&IWlInii65&~4AUbXw4=*qH!3MC!7c8uHz8W=AwG5Di?pdPgl;2RnDmUyrYw;D1;t?!Fyfj;O# z4-D_IZre&QO+*-8IJzDDh>e1-Xx})5*Tu>_*R_Yi4kIE;GG zrzEudvIwhnoMnwQuL(+bT0+&$+_;NXi*q-bV67`d7u$Lm2ZrLW{8Pqm9&7pQ*RNl_ zdUZUWB==0&jc!O6WQou7tLL|G-r~{5Xbw)~2ZvgX?rn!N$-yI|q=q8~*g}Zv6&@7` zrT|5RM>s75$wA&3To9gGrJlV32|9H)72;z(@k$9gbA!)jS<14(OGn#%HNG|4mT#tDaJplUyn=2;d5T6h90YeX<>R^85@x4=Y5G`7RqSB+EoJe9ThyV z-T9%Ho0>`BXFGB6yk-&ssc&)yOWFKe8VpmTDY>6pov88$gSd(VHpJwZ8I#^X4`>Y4 zF+7529IVUh1uk|QjAJyrT*wPWL4|E53!POi(?LhTU{oz9V3%qUE^lHaowZ+zR zG$@>2Lv`PbK+>|Xp3D^7EV4R~3cn0Q(l|ZVW|b+%ABz#il z_70u#=y_<`_(c}vB&;3D&wDYujflIZd#$!%X>0(qq$bCLg8__!Wc^DjS*~kt#(*wY z9|CsaZq%EAU?Uz->mm`kF09671+6r^FsAbA5Kv{uMaxYb0`Jc;Gdy3frgH*-GIEvA zg9{%XoN2hn^V8Ft*R|}2dSEY--}7@sOcD4I!Nc7B?b|o6Ucb_e#mtWK0UZ-@v;bfx zbojTSvmI#U8_@D%Pm=>Q5Ur4hFjh}@bT1AIaj++r8)hpv+YBWSe>qkZcKXYy#vmYt zfU08+P^zxDMRaTAy3}@N(&>G*OLvFq28jQRp*h7D@W|my%2;_;rSfG=Bz(lFb;nYP;@2GgATYi>Y)hJLD7*uq-;yP7{n!8fjzG!01Bq ze2S3OAw**dDMuocw_INGC;VWk5RSUn-ubb6kqhlcVhTifsTfj6T`3UMXpMywWs$^) z`vhcK#U>`TQpsgpQZK@NMSD!6c|hqD4rDXly(>7X@TWni$KQQCP>J<~0C{v?{ZWe` z&Jc;!GQ8^atc$N3s)iyI%1{5+bWt+*M<{l z+|02hvWV)!ivi3YoYIeM%rcDJ>q$^IPmQ(r)VeaPI}`)Ed}gHw@{R2Hau+r02X`fI z8VME&aVUb>R(HcIV>+Eq5eC+msWVlvtRbhR=fD-ItM^$Y7_3#}!Eu!X?4iU4HlR0$ z;=H~9eL#Z0;T^$XF;tA&q-(wcMis|G8oI}qoaLR>GjK@J^t`R$S5o>Bv1GhDs)b>P2}&VVXE>Yx*wIG~09fle?IPtzp~~|WgpP8%x?=!Z z4_j~0jDmns<0eR5cN4W z17Q>!u@1LS&mrDwVkEKUGXy?7sFv^MvGiOP4>;+3@*>DU$;bF*$`a0;?(OA)J~*9p z$C3_lgITR;3YoheQZ&4OW)$Xoh9y+(G*p*WFkOs$FbFVFWux>(4SFDKpjj6QLq&(C z9LJ~3=$G?^ULp(N+|8D(Y>I9cryIHsh!+POD?B6}8~uxj7#aJviPAYR)Afu&_IZ6{ zH~)eTEdI7`9Nq*9ssU^&ClT)Q$?MpG4PMwqwjatyC`&^KZ4y>wgV~*PJiN{ttc*%ILt#6XajI3jcd0~_=k%kH(3UNe zHv#vO2^HuelAhSBgMJ`-DKlBq2}u6C%|lSA+VVN7m9IU*6O~v?Mf?pH$;y%lvt82= zbmLN)S-rCR%*p08K-0;X6;C>h2JSZYP64hCu*^UGm3$9Z7P zVTcZsn4h{D4>g6+R)qzXi;U+rUf{cz@KELqJ1!K#bs2A-MARHHPWLR64sFGX1m4!y2CjbFA<@~&sY{)~-Xex^j8;+vy z<+b9{s=h0PxxqWh89TEJsyFyFkPGGJ3?CG?tQ9=6Q?%CmHJXeYANZeAh&xtRa*ibs zW@+Y&WKPqlrnHX${WU%4+atVe)~}i;P32LBbvNxyGy(o_^OH)ajbX+4<*=)Icq5F}M=X@W4bb34vG> zF|cBd*$5P)OSvoXVJ5`K!jz17t2uNY*1-66pSb=IUkwvoq#N)Mg9&w_gBW4}03ZNK zL_t(Wvd*4?ep0fSAaCQ?Nit_-!UipAUTFr-nt5W*Ww_4DPC}Ope?Yr(liUs2O(5RJ zKuwyQ`MmdG%Xejg*?}TDCMyfAF=99ipP^%^4QWFvmp)n;t+c_9GNDUGIBHC5_2?&&8$IAU3h`=5oHTNqIcKF0$(k8fc<`=EoU)x^FZ6*lx>dUtd)0h9rHraK7EVA5yM+Nj9%3+} zayCv20&R&-Vu~^fZcEpsi(ZXh^OdosZVCJirhPFK35%_T*KLOBDcE zIAeEO9Kkl-OhKz@ zk7mqUT5)MVC-I>i`F5_j97tG=xoax0n`Gj>7D5gSYY|%OQhm3UY*lV2)7^<5C)d&P zE4)<2I?xL?l(49jghRe!PW5dOI+C)yaT^QI4+b?S3|n$^G|nyz29cP9yvfX>kWFb|vb`j1Ygif@`rOc#+=?n6z zc@1-A;<9I51btQSobxGRy4=e8jQ8Dxb}|1)>b`z@O-P~*YayJ_J%r-t0ep*j>{6F` zaK{|~cG;XD>oBii!SXWRum?XGy69EY%g{)8ZcEZlw%UkDIRdt&IDvl)Va_aTKy|=H za3s8w5bQe>r_Bq>1963TbTghJ(o&(&shqoC7yH*&%MTCIP_J`AHOjW5MdN8^)z160@5J)>vXS zcU!f8Lv#SF!8ODbSK%KZ^XL{!#P$+63=M@u0`t0Bx|6jd8ZRKYxEkxgvWC39(`dSuzz+43~GUTQNS;V`Rl zYn63jpp>@H+iDr#r$Rrr-G*T1}>Q)>aNOL6MB=liQdZgQmJCAgCJ#B_XXXb9(%<-$n!P;b4 zyIwINpvG7?R`hrfQiE%D3>5$hr+teY36Tmbh05gHwR5pwcRAgE&5Zl?V7E)tfpfi{ zF{B$hTG-S=>ksxuu`|qKgd#M%+wl+w8xVT?uw;w#h3=>AIl8V`g;6Fv)1fJiDvf8eCe6rII5Q-uAb(I} zTI)Tt0}uMG0Eb$7-v}OJTwM^^c^V~!;q@TvV$)qPw-U0(fWu$>!LQSPKp9pFI1s+N zX6*$(ho``?_9=ln!OE%+fn@4Jw8P%*OU8E(*!ldY&<~o0)XGfrY|#DdwLwyyyYKnG%Da3aXDW`18md@SniH;To~d4|8haa&X>__hDa(5swkL zX(GB^$$m^zse5D^W-u~nzakkH3l#!v3>_lh<`DHp?rN9g0TK9g$&2H9%sBlyi~Av2 zvj#(6Hy2)9Lt3<6y%(8g`ZTXj&&z5Ii$+~h@oo<@ZFziI&AIGLh4hDDvqOK@9(RYa zY2AXlP;ImUAz?`+XQ_G)1nS%tY_!z{dJWePeeDObBZtGxJRFNDD}J>fxvY8tjgW7g zhr&kfzU+!DVNNBjm1~GT&w_ADL338h$-_V&&RH!CSmuH-2vuhHx<9XZ5SM@|Q``?G zQY5mE!a{2)O*bbNITE;X{LmiVdYI+LAKpMdMow-cZc-^>#&;@-yu#cUUw4ma7U)MO z*mjKU`BKEbespAUVX7D^dW$UMqX=5Ghts9cbKR&nE*qy2D}f6%9vIFclmbvm$`2h@ zzxG3&9=6;L(jq6fDh^SM2$n&sZBlQIE_ZwQWV?Gc5gmzR-e^~+OyljjQr?slnwmR@`s%?kdzeOp^`+wL zCKWdqt%PwblkJ?UA57O*k;L!-3Q$N12@qTrUet$6%k0<>QG2s6F+N%S44Hi>EFT|* zu$jFy!&sGRgca#TssmIO=V2(~#0gE}%3ASq#60A=ZfS_^Yd=%6dQYMy4NvO|cr8ww zmd>=bfExgVvZ}xn=Hj5CQ)!RpDt}mZ#>MI?Sv-j_?~-H02%}nGV&^>JG5N42DM}2T)pq} zr2fDQoYgw~-`-@MGCN|LS-&5lFU3-!UE$BnkP@RUJDAPp+suD37eC|&zTGjTdF6Rb zuho%b##JT_a*k~H%#5F0=y8VCBtX3of3Q0EF~^^g0|T2uFC;rT@@}$8S#H>(Oo9PT zEi2HD)f}oOee*^{%g2U(y)9(E*44-Ez2r z7wl;;J@SR={(e<%Q_=_BBuQ3U1AeiQK=wy6PcG#6NB zj^Wof@B9UYC%5GuoN|$gj9^t(tSQVq9~1Gb_)PB zhj}r_h>E~&X7=gj<=wmYBgN)2sl3VSQPn|PwhvKDmo(3V2DvRqvHb1)ci^facXMN= zJU=r0sH+CIhU_nQwHd^Wa2w;MAy#M6U16(Hm5up6rdF$&e)C*Mk>e_eJ|h(RN%(La zm*unIgo9S;u$PwE+0lbD2ME{SmZSj&qVGZmpfQ#JPaYra%*M;-coM@XDhTzQlYVp( z*0pRRUj3_4OykZ8l%1K8Z_IZ|Q&$}A*_Veq6`hg|bH1`k8s6ZK=r#CI$ADo!5GJ;q z%d!VkYO&X5FHon<-{&qpgXFLIQ0B+mST(YNhqkoP_^F0fz=2u(vM;PxApMmesRhjL zabI`)gBW?hRv8SYR^WLybecph{O4x6Wv-7VedBF)I;N*kbigeVR1m`#yp z$f80X(4=M)=|^F1c$YOC%gYgB1&WI>jnT2== zs_H&lVV?`^pb6?6!$3?G(;wZcD5C2*gm;H9bZ|5mN5~HgD};o4AIKv#Rv>%F>-W5S zx6ZM>bh!v*GNH^YsK%Nb>J&z$@6Sy=+H}8hPhJ;p+hQLj7HQ?oPirumNp(Jt<@2t- zWfmGTbtR@L_>y?h^C0M$E5m0W-@|%BD7M~6osJo@u9Ybd9aunrU!yr&`-cR{jy8uX ze+d6MO{yb86bK-*A{diqaOR*9J~rT~+-5aXB9g~sHm3^L=>D_#=AZd)yfNh#JEC6B z%olqB?&|IceHReM(wILl&?7_P*yE8|v71FziN^92fv1a455Rx;Q3YiypFX|3fA`hi zhtIkFP}*9_UE;IKrQCsERWg*X#hnX*iv=kOsY!l{(N_n5v;#m+WL|lTN z&o6wDP)nm`ncU=^HJsz({m}?M+JEFhf=Sfch>=Hx=Fz-*^;NU&=wogIR7)tE+L6Tw z#c+*9IjyL30Ccfh+}Q*OM?(OHI)0glRAF&Vo?Vhp$PAf49gDh+bfr#Duy)Yv4ZKt?i^eM5NkZ&LDQoXhRb4()h|sNJ;$lu{?OTUt{x{OIdHj( z(wNN@41r#jjm34sC?GR;K1C?zcDkb<29aO(=v{?#9;wZXH{%7fs-7P{&40U@_3GIp z@H3G|U75l-ak0rSZO3q$tEoTWBQ@?2t=k3EkGIR_;)!;?##IllT`)6d`BI`iC5U>G zU|rx*@X@I>)Y$$RjWk#C-Oo#;OYiF&#M>ZPcM9YCoW05E<(IsLNHBUrEd_zA9jASP zh|RtYe%+*nCU$c^8ND?o(!pJubg)ZVruVs32p`A?v3qZ89A>O8F<$w6`Ng!>>vF4V zECBUIdXYmCz_^qja0!ezYUTB*hQ{Y%e$iGdQw;->WW7UEN`gu#(c)f`r76x(1Mp^P zPscixrmF`BqFc0^RNCo$$}S{k9yOmeS&-_=bdmARY`nr(0W4VH@Eoays$?6-F>{_Q ztx6x)K&#k(zkvkJO}&I!J`uCX#)x)5bP@fUOrL=1eCGtU5N4gD6phPkSr6>2EOrN# z<_Yp)xk?aV{J`0oyaPHPfnIRq2)+nwhrRpo?$f7F-OJZXW)Px>W=9`Ce*Ey^ zL+scl+njSWgTJV~`&?62dSry{F{z+TxtR~stZ*sdVP&LlhSx~-$fYg;O2EZo z$XGm*jYB1kXocC%9ilpP#SWEJgK#9T3N1J#2bK(ugAg6ZW7q1v-I55>iNu4~Fp6kH znvaa=8o~PB?tVTQV%9a!Xc39yGkWz5dpiK0ZOvCia5_FA?X1QP_HkV)lg|l=-#TZk z+ml^`@>E#g3EBfj62+s}t8{(xzzAj;^;UO*?5#sj?;-}9wo)Ew%T! z?QR~v0V|nMnWnW>EqY{JluB(set5|hxXqB|FT4g&5Fu z9MN=%VjD=<-1-ci7e4fdw+jHc)o7+`)BvS6!h-c1ii2i`;!Kg|+K>v3;Z20$W{bxk z&`lT`pAli?=HR*DquNt6%MCUHmYwEycHvl!1xpPElyuKr&Y&(n$;Jrx8W9NxGCfSL zwNP0(tD9VUT2UA#__Pgam@d`sRN#~9oYq-bVu+~uZB4zuun z0Z8O5Zq^Xev;5>fAvR4MOTM}uA%fud&$^MYn-)=(DXM}4$th!w%A}1bqGXvky-3`Q zyB!+G8NEoP9WP?DuZbHpmxsWD%YpINz8<)=i;Cx(h02g+)?vA1T-;R5#jN; zg6nxPvj>Ft;!OMOMGKZ~Sa$Bd6Usk*{PgbKyLed88bp+8hGR`ax9#`u-``(etWdhw zu=RF#M5G2&Mf+Z;QeC9l>Q81j*f6XY6P1Iy=i8g2t)kJmdI;-yn~sF%(olElN4aP{ zEF?HuFiCT#)EjKeQriK<&sl@*4yTEWU3juj<7Vfw&^ z!>jmT=p{W%6~0phK4j>y$F)NvW33(&d?AydbX4Dwc4+Uqya-(nn9}yzC(OcPx4Ok* ztu>KEFi$n>!Z$__r-sk(qENtCTYXCcpocdmoH?zwz9pg!(krVsoxoCyLp9I3h#I~3 zqaV~XFCj#P=-=n@>jxJ{#c%wzs*q#8#%PTe2}nwP^M^SZ{7>$D<^&-^3BxjjDa|+~ z`#_cRryDJ!C;5(+sWfqtZX!Y2CeGK*^RK*TSk@cy-C6yN2$5&fdHn&x&jN+ZMGK?L z9z8lbg`j1+g$)E=Kj$>1XiPMO=aSG$G!l8&*_uj2r8>5m>D#s)#ipc}OI{u*e zE%fq`(@Fb!y_E8%XSK|12)7QLQP4SYGWOZeRxnk>U0{bl&ec3V`%M!J%cl!4ld8Vy-2M@!QOfe!s<7ae zQ;!l=JLI(x8T5llh~0RZjNxx4L1P9UGpYcimZ=VxsCaj)moq!dpkU$DgkR-!IdXC> zaW$+n2+iubSU#;Z`s#kT<6_zYNY-f(q^z*ao=Jzp9Q9@)n7^-`J>ZLRnAMA(xeWf# ziGMuU$FzUQ@4{KjraCTlgj|me+;podBFT}mJmlp>CM~k)PG8oGtEd|74)+8!5Tya4 zqx9MglxP%y<S9qtLH+-Ir>(?7KaQz}-d z3MZrq@8WE1%ALL8Rkd|la0!VflrUz@IH=8Z$bt$K0>qXb3+4Fg`3G3o7!eJ9=`}m- z{rmSXFE7fnamJ;(FoQ?67rU9+%gf7$j~}eHHMQn~9ieWN-yFJN&-}i}a@P{YVaPx& z%xEo;g-Ht#6gr<2U44_rqHmRf-y>0mSsFmwPqTNp3>$Ici;knW^yGTY z@WOt(w}Ca+#YG2s(gSWz0eFjK+{jQAVt@jGZS4;NgaN^;Pf1U6A#JKF;Bs0@I|{Sw z7?Wx<*I(rt_$5P!l-!lqLAsi2xPGlc#tKTOuWW{aQo0}c2!IbeHdY28ZWqO}*hUnJ zegcqdyVQl%bJlq*U%uw%(VG~MOiE{CN;HQGEP8&9gX+Td$8k;$mUB1;u6ThlyYJgL zlruA3Thf=diE3{=&`)dzZ^>$mLZ?yY_r7B+4M8RbQ zh8|mAT6F4?XwtgDC-)5nkPJT5Ce>9#qYX_aQ!V4>}U?wBO>2v9(FAPUty*{8f6w4R|}`BaDkjxagu({@~HXNxJ@?Sr1adfaw&pS1Uu{O{1HG_p*A>pFTS>(Z$n~XyILWo ztNR_jG56qb)DHPNuA&qkUS=xRKG15u&ct^Ik-KF^FY@rn#gteg3R4e0dhZ8Ebd@mk zULPfd$TEd9H4%`WCnlXP-#_;Wl9IIs6K5xcY6nhy&Yz)X1guJn8Kbgl(GlpyoHBXr z2eAY}KS#D0n-0$*pGcdI4)Y$nBH6AN(<=5!*bfiVn7l;$Kd_eZ)_OD}5 zP|$%X*mg4)R&qU=QC+&a!H4E*P^@r&gg{(4`lX(*aY(N{TC#@rygpjbondq(woys- zuyZ2WwQfL1dmtetrhdi%IFV(OhGMHk**LE!@%?uM*QiQ z63`)rrwA`rP;;P|ez_jJeve^e<3{f(8Iw5amGA@=|oEbsd$1NZwlHv1mrRw%C}Vm=$K{>xVBP<`KBX=TEVr0IJk4 zqv`cDyM@Jvj~`#|_XAf;Py}Dd$IR|~fB5i`zaQH?!Jsmit0g{WYKW{A{{OM|u3M8F zx3wUU-4rR?vd{a!}~sTMN2Iuu|0}NcSnE;3KBv+EXy;9Dm-COb0xh!7Jnl_H}UaVydDYD#E}h0g|V^2 z0!-^;Kz${)nph(6CYF2DoL>%wE~!Hb%vxJaurh4S>gNb}{`y$IS8M8s}t8H;(jpRBDr=J7O;IY5GYO0p(%?;iaBX)e}bo%c+>u^58@9#h{IwzgAe2*h!ulIa==~T`90Qt_tv$U~72;|E zZBceUt$sOV?Vlf6k*X?baj++h$*S-`^K8+}E#5pRETjF&~yGLKQmV3v57PGu?UT@stE_5~Y5 zOl38AcF52~Qr|Q@&nB8c&@p=LNvAd75!5gvrX-RUcmrcvxw)8Rbh=bw;{ExAY7DmFF3 zNCUJtoW96gR%@qz6kqdo1b2r8ODK!MINirHBYyksw>k$D3-oC}#Fjeepa1wRt;e^_ zYoB9mD@f}_>cw&2>Z`9_g)XhOuE^fyLQOT|LF@(`yA?Z_Pd^Y2g4K*U0jfTDUf||j z9%!EYa$}{sXab2zbpY(mYYes>z0_m{lgcZ+?8_MJ$N^=_B`J(oe-y6sM<+U0perkt zck|5F)OJ9+)$X_SReh8dNabeNVNAZWW>F_pVQ$sRcGm1QF4@JVQAz z&MmX$B9|$lR#ZmTG3nNzCy-${-k1LyB;%DzqSyrMN->_$kl+#>J)Kfg^^FQsK6^WOP1QuM`1n~zkl;RS2 zs4%0tqEh=xQ-t_|H`;M}(G7JPudVnu;yP6qp^Qcm5t*lU8P(iZD12cZ=~GKNTlA%O z37T=`Giy;UV&d(@-N{u{DPz2@6U)#6JTJ?P#5VJWfh!Qw!)S(CdMF%`0ZSAB>`VLu zqB*Pe)@z>Mu@JP}xNrme$ULEwmEg^y80xP5Xgcwn4PTxpTW8PZMTJ$O7)3E*ncFN@ zNXPZ*i~qMe�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 SlXqSK0000 { + const theme = useTheme(); + return ( + + + + + + + + ); +}; + +export default AuthBackground; diff --git a/src/assets/images/icons/facebook.svg b/src/assets/images/icons/facebook.svg new file mode 100644 index 0000000..6d4fd87 --- /dev/null +++ b/src/assets/images/icons/facebook.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/icons/google.svg b/src/assets/images/icons/google.svg new file mode 100644 index 0000000..bd30fd9 --- /dev/null +++ b/src/assets/images/icons/google.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/images/icons/twitter.svg b/src/assets/images/icons/twitter.svg new file mode 100644 index 0000000..f868d36 --- /dev/null +++ b/src/assets/images/icons/twitter.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landing/codedthemes-logo.svg b/src/assets/images/landing/codedthemes-logo.svg new file mode 100644 index 0000000..bcd9896 --- /dev/null +++ b/src/assets/images/landing/codedthemes-logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/landing/img-footer.png b/src/assets/images/landing/img-footer.png new file mode 100644 index 0000000000000000000000000000000000000000..53cabdceafd82c31212d55ec3fb1246a73987146 GIT binary patch literal 90118 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 + + diff --git a/src/assets/images/landing/img-soc2.svg b/src/assets/images/landing/img-soc2.svg new file mode 100644 index 0000000..4f0774c --- /dev/null +++ b/src/assets/images/landing/img-soc2.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/images/landing/img-soc3.svg b/src/assets/images/landing/img-soc3.svg new file mode 100644 index 0000000..d656da9 --- /dev/null +++ b/src/assets/images/landing/img-soc3.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/images/logo-nearle.png b/src/assets/images/logo-nearle.png new file mode 100644 index 0000000000000000000000000000000000000000..30e412c8307f98858bb66a1985dd67e5a259f1de GIT binary patch literal 1096 zcmV-O1h@N%P)7#RQ`7BzmHpNW56oGlCyL$|s=2M30ojgPuS+dY~j;6;N(QTTCS4 zrR9RcrH_9R5``iG@wCpoH?Q4p_q}cb<@GkZrwSp2wYR;W-QPXj z!G5Aa!w|tHh7{$Y0#c@-p&i|o5^;>Y@q z(<-1^7lk_h2^w*8W7sC-!L_ejaN}OP)5rQowN3s_Ik5A^2Wvifo zas`df2$agJ2~Smc_DOPDy+JtEx;Ry&?AR1Z)@1Cz!VY@9mA5-`+4pG z&JtVE5!ICl1s1m}a6Ggd%te@01Ckt)15UGpUx&_M$L%&)U)+S5v5(I8BXpHLdyO*uuBat4660(wfy*)g O0000VoH(UYRoRK`M#OnwY*?U7#?47l9;efm$ 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/logo-nearle7.png b/src/assets/images/logo-nearle7.png new file mode 100644 index 0000000000000000000000000000000000000000..dca29719fad5e48fde97593bffba8efb206e5111 GIT binary patch literal 1471 zcmV;w1wi_VP)+a(ihJK_@Dn#BMxzwA(*GvPDqD!%l>Xx1{yvWfSnA zf;JT|)s|g7*u+b>7u)nQ6Oy2X)=g5fNl(x3ciwy1x08AEbC;IQeBiM&Z{B?0kNM8` z$D0Mn$a zWx_Cw4agZdJVh}Kx2qz^blhLtVBcN1x_4gt0%wg!YC##0ri z^Voh))R*z+43@O<(s`8C)bwfM&rE>qz5X@#(LF^-kBeoR%ss^mVhltR>&`<47*9yv zfRyWn{ZHrw*Mdw1MaN&f_f1!@Tl@41`^>t;ZvJ*hXJJ~3Tu0NU8a7bIQ+A0h>Z&X| zR!E;t%KPdpI}Vlt@;Sw7`i z6tXPW=a;-X+K-{{3hjrF@b~E;nJ(xDQNh7e6m5w<>v%qqP-#;6cgFV;R@8IoHr>Wp_xu4xDBDSjC{ zaSWBJ1sYrkXHscn0=G1eW2abkMRR_o71l(}RHphg&Uqsub9|B@3-depJ}R|EP= zhJxJU+b==$+VbA@5e$ZJT)qWkFCX*EbEB*UJqWTYz%7LdJm#Skd=lb83ZBL_Y{~-> zla!Tfv~gL}+$SwC6;d)?y1M}SaaqtESW`Ub0$;BN^p^(o5KO8m-UK|IK%l0^vG&#CCf zCETBUK?rhnNnLRoNFgVnhYX1~o&r1>jKW)IPkC15`OzcZIk~2HKYAU0`0`ipoD^#H z_P>5vF7UT37PRQt?>Xo^yh==ye-7KZkemfE*D{2s(NWOmTB3&_UJ%u)QVEOSiej8e zaiKdTD2OeLG!}V58{~_PBZoymp9*O6jy?};Z|(RmmwYmvs7)Zz&JO9)7H#S*JCq)q ztb3lesEaB^zpQ|9jY9-NR!h0ZVIt!T=pzkvA*;o*GahF$4oim}AkUE(A$lS0Fu9B` zX4XX@g{dm%iLwW5KkL7jB~%#ATpZR>npu_&sW26moxu4RzRA$QRbLy0mq{1_-&+_r zg`SJS>vohN(RT^DQ~ZVu3dQvzr2lp^2i<{gBT2x?xVxq?ts}|Wc zI^WDJ;B!oqk*RV_*uS1hh&>rK6*psMqJJTB6QDIya^U`w3IZCGK8j)|5@rl Z@;^+Dx0@xr!t?+D002ovPDHLkV1le|z(xQ7 literal 0 HcmV?d00001 diff --git a/src/assets/images/logo-nearle8.png b/src/assets/images/logo-nearle8.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5150b84f8f828e1e8242de37587cb1bff517ee GIT binary patch literal 1557 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 IM6N<$g6DeM00000 literal 0 HcmV?d00001 diff --git a/src/assets/images/logo-sm1.png b/src/assets/images/logo-sm1.png new file mode 100644 index 0000000000000000000000000000000000000000..408651cad5f335105e907b49b0daf9a5eef9693d GIT binary patch literal 2177 zcmV-{2!8j8P)n~GN{g(t$|?%nsHKY-6$%#=p;)+- zu!993Wy4Q`3n|!ShFJVu5KKsjCQL{mlVoPPz2{|K=S`<)y5A(8s;Qpt*Pna(e&2m< z(IVki&rowL5^If$$az-s$A34-#S(M7#g>0Z4d(MO8_ixz-e zJ(;F>ly>l4+E~D5ss>Dsg*fiyX#YY;RYjz~_utkiMcesrD=j80I!HO{sD_Xck)fVU zvlXR%Y%cG4$Aqw`W@(gamP9EM6BMnB$YWMy_7P6Op+e3ko45I?0?j7#Lq#UrlJCYT=2QFd&Grg-a-tgm1fI+8E0I2h(Wp`LvA zN@ky9(N6tXydg#ntLrFIBWN*Dn6c@>KU0!aiGUV$u6jQ4dC>J0iNKj_V|1RQPm4MR zvssp`mzoH|=)joVE>AX5SitNuw;xI~RN$AGn$FSYCpRR<%3W8Mh#!e1%WI_>1)0$3 zo%?j~%M*0-@@=`l{P8AwYx^to@(1fF4B$u5&gAGcg(Xw=wR%Z_0DeILiM<~kqU`t- zy}kWas%xmFi$~Mc_0=ytHYSe+LGX)eWV6KF=EWt3xHn5C3pV9`8AG-7x{4t;=%v&&)nw^4At%{3wVznC#3;d?J9vre8{>hIsb%Y0N!Y}^q@XMd z!oC8k3zoUn9e4jg8%5ML)lif(wF%N^Z_xU!>jKYf+4_v!-n`UDrar*M7*m8>Jl|%iUAfX3<;cvjE`iQK6{hC-h6<5;x#a>mpHN| zpIa$Ib#{E3Mh49^0us7;+4+Z?h2vOmJry$`qOfJ#Cb>oC1`h8&9e53VWZlMQX<|Tj zJWHl1slF|%MOZ?(p(bV!a+O`fOi+@H6!+l=u={eD&FpC|XZoZD5yi5GIR#M35r~p_ zHOhrNd_+PRBtSLSIC4UmYe>=y{H7!zQ73 zKXjHR@a6=(bwnpGyxANtppJbjJ26G3(5nu#okY38AOwX>lp!#kN`N-t{IG~>N)`pw zUR6)Hy;?xj@&aa8iEv$G+}+;0lc9xx8#d%hgqBUUc&%;YJThJrQ-0+IeCcmPKe0Ws z3U(Ct?!G-HANbWtNNg$u>j-0FXik{=iLEs!&^qEgGDid*j4&7(m~Sr71`-`+fnEfe z7&Ky9dzEN}`^kdU;0FEtj7`;|e%b5{uI2{Ci4U4_ojv8j4rDqQi8a(ulA>TFpR^G z_z_eyc>9* z$?<9TeB9$kg@RKD`o*q~uz!Gq%p+1!|Nz&4Mi_eI@BL9o~aPQyb;FhBRaNl z1oO)+z@+ADsxw(>wuq2hvh0wXli8h}tbQTU&5Jq5)oRrJfk|5NRD*9Jx%>QfXZXhjH)6hkVDN0X^c~yxiy88*{koz;c5NO&cXdmy^xsKjW0Ws8tl#V@SyQR&tk%dM2boHF7%Y0SWV|? zGcMF`I?iEvA#;|nfMerXUJ{V0+%>_Ap;2CfqteAtbm~o;++l&RkBC{a7+NGz)ncd) zug?JJ*e_ifuexF3g^ZGeS(=(CU2iYv6JCVwHVj?KwDG20wvRNR=^bZMCGGx@fC=TY z1!+Rw1dJ)TZBfT#&nG&=+{^eA4vN^{k~P~n)}epGp?b6EoLj`dFrg>%)z%=B+P1w z%NxsX;lQxI*otk|9yErI&1|#7zQE*DoT3-)!?XVYskUooVQwYf00000NkvXXu0mjf DYvU{r literal 0 HcmV?d00001 diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f8833ff0625a539726cfe81bc47c98a5cda6fb46 GIT binary patch literal 4624 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 Qj{yigUHx3vIVCg!0J0@){r~^~ literal 0 HcmV?d00001 diff --git a/src/assets/images/maintenance/Error500.png b/src/assets/images/maintenance/Error500.png new file mode 100644 index 0000000000000000000000000000000000000000..372cb8b9e10363a09c10fb71ac4a3e33609e85c0 GIT binary patch literal 45466 zcmX_nby!s2_qB?24c$sehcrk^OLq=6ba$up&?4Q^J#>c(3`qCT-7QiAg75Y7`#$d< z^UT9N%*nm?T5Iofqt#U8urbIno;`bpE&oAU63?F1Cu07AAOqiT<)tOGe4d|nqkp9I z%)I@p`;QyX%h3p4A`_w?4Hxu;YcD)jb-t-OhZS=4!R9+_v!tiI zyZI$_)pU`OkzYb+Swd-_hpx!0o+%}?Tl@KSbUuAOudVE;s;auLJ~}+}6*KVgHZq#Y zJaiUqmBi{Jlpd6AraLI2&`w3LNLO9YJr+;1qY5xR_H$xwb7OE}C6h#cU}dS%g)4Rj zhJSPxY?4@%#_Hqb=rtST^sTcf>JWlW=5ENfF!lW#?}dXtPaG1aKqU=? z-nrlfp7%GZYw7NPE%s6BtC?p6r7fx#yPq&a<9jSk^DnX; z>TQh#7`bnaBg4P+zUUc~cTv6)s$M_xc-E1M_rD(a!aP}Y4Bi?=_>nkhIOh<%S`YGn z$!fC(Ss!OYGV~)?H>yW$bs zm$K;%>S}CWE!AjstL}VW9k0G{>7KLwVfFXt2FfnSfB!X(VlBd$f05d*mXn7=E9hT4SxYt9gkFQX5tXhD9T9PQ%iwn^BM)4sRFr8Gt9OZ#;C}2uPjuI! zO-&1gpL5#f8W0LNIRL9@!&w=Kr_G~aG*FEo;I}Jb5C0)G`ASQhQXpzFRs>gIR;TRu zyFN}OW?+Y4FYJYA!fQyqTPKG*wNm-@=A*)Y%jHavFp#(uh}vY-*hNCRLg87iM60Jp zpVa8&mGoLDa2CL`gs$z*tyF$UsiEAnGcM)VR=|vri0ucACNC6+oOS!N2_$!L9M$-D z7x<*l2>8D;aaB>Co!4kl7pRrfC4E>aXBzg?)^=X(_ViHQbYqW;W;pxw%b6Z_R^m2p%TsX zaZU4x6TvV)sGk-AIW@Si;M_^6l?+OtS4{iC%}F!MeWwDwV&8fvpbjBrU}ZxnwSVem zSb=vx49^Pq4}1?yu;5<)?M8!cwpA*X|BGnc+PkeQ{jEt49|&zFQzW8tjR+^|;VK>J zUo3kzSWPxR368dU=9)v?Yt{T-eM_6sW3*O(8`4V9w58Hms_i%IB&smbKj8vy(J4pn zU!<2cBu{IqD|8io9CBw?uz|-AfzC(Zm&gC&+rPEAQ@dCd@JIR_Y||%)c9yT z5}vB1-FlLn9NH|#E?nP3703vBJdy?u#+9RfwU$a<_yjah>>m@njf$Xl2BkIW@AxZE zw97E}aV7wV>xAC`ww>jq7}L<|){oKt5J3$i`m4`=BRmuD(^5IP>vf#U)>}RZn`d7v zcTzy(nsa98)!fREgrRddL)6WKea)%E{gl~=!&tkVZ_ic(2bR%e{j(RmY8FWHEOr+I zqCav>P#Dm-es02==cH&HTX}<7gzw_2naJ z>|oS%egtO08Ig|L+su{K_iddI@E%-D-L|IRaIx%-7mSgR43UitzHJ5?x5Q5uZ}RMa zL@ESI7C$hNa9}U#^#t6F`Dqf^(qnEKv4)dS4gCyg)*A;+%xtZ0HE*V+(>e`dSd&H$ zVSo`zmS$NdRBVB?#7o&vT^UcSR+2(~v6GN)egord(0X0ZS-^DH3&_YORJRrn_R|;$ zB+MYdxcCSYOU;MeSek$1n3N~!#AMg7>vwqAzBOFv6D{pF=yG+lw0h9ajRj-NGpjIUaYurMc(LOv4O(@g#l+mB?#>PvYEM#S0gK=h*? z4a85^kSJ1`d-+ZcVHVBBb64Rt0pC4p%^3aB3(jUD3_9wPnjM$oPHv3rv5q-hCTqLP zI*91?|3@d{?8_Gi&4(pk?a{ni9MGuDbUg}U`5k(|uXM|@15$!Z8X5#gXD33scVd7u zvf>cu$tv~urkp^;G$%<3h6>%@0WhWwz}T-Z)1HXD^-Z=@VWQYi$Mm|7Dd&K#8&EcK ztUq3BR7XWT+{;7A#L-FG>c^PcB}=`J{v1tA9aBssp*vLz!0XBW57k_;Q3cw#$Q$!9 z=yK{A5~o@Fdn44GnPv-#w_;^kx{LL%GKMYxuue;jH$5Jf=eVaG~y{Yak2)jX0j3xbW zm6GcLL~}^{heyU023q>9!AuX(UEa6Fjkx1)$W$~(BjyToLQ&U`DyUy{44?sDgB;L~ zH@Nd@mkdsdVbZiAF!KgWCKNlgR&Ugo23-Stkp3#TP}`u~23iLisO8~K5 zv1zih!_}N8tSeJOn|tubB~TqS zBP|{M2Qsc-p4~Q1evhwwECt{X-Z-RJmlkm>bSgB}3P!sSn%-0FI}Lo7m3ffH_igl0 zjAr(q|M6hDjAmVg%TUZ+$MRQ5kya@wG+UgAJt8pQ`_D2z6FfUrY8F)J`>yI9Xf2{2z zpkJ2%Bx)=TR$~RJ(X`p9DoB11(8RGfQe_K+V;A&{O;?Owh)%{3p1E&w4?aY|J9zZ# z$RaOZ0DedmuC|^zXEv@ZD7m8(>G?}2oRvZV_i@pS_~8nDGeWyNa3W9i-S%!IJq$Cz zjgQUY*JS(z=jaMR(_AC)BMiI*SzE3YynUUc2e(^KRy$ksHRxE>Lp>u`xooId*v#5s zeSWzfCa=zsM*J}icfFP)4jT1%u(r{2Ob6ORHHJrR#~xQzWoV^4(lxl;^aa>oUNhI5 z{+6q4_blgPS42C`?ZwAYfBwFl`LWbOxFpsc71&K5AQEm9Ls(E!od_gX<&bIFwml_1 zyfY&f-lK8L+R|oszOMDWZ3^LHw+B;$&@>?)S!?Ef-@bjz{9ww1pm9)*SC^%5w;tP6*S<-`tY&cs zrIG37aM&o#?1xv&$O7+#()HIT8l0nyJF$CldI9aA2`D3?zCZCtcH+ZP{e=KP{2tWL z1zoI2qH2y30|Ew|YXBvuZlTgW>}cg0jk2VF-iQM(w@|f7l`{0*?#hCY}u$Lh7q! z%rfc%m2!N6mBr*$*c;1u%@_xZTv2r3K1p5 zU#XpBNl8o_VA|~#Q8-Nmvg$9s9z5pkz>l`LL%W_XQS|59#Yil+)}zZ*M60L#8R7&P z=y7q(P9&;bhHD%^m7u|HP*n1wPlxMLId4<838`FW00j~!S7&KN^TmB0fYmxX%_oA{ zt-41oddf+|6=Zl_i27S)2F1l^z1R{&%fSgly0mF*^K?&adFv?YZF#GKG6hEcrtf0i zqkbCZ8?7di&2M$T8o#C7k~O2+oytprkd~4zG{D$;y;v2U1T{9PIcgZ~AyC=3wwf?R z20@EQD-YX74PtvLWE9G3O<>m*1-iL5JM4=OIrM2;gs407(dS1Dk-e$OwQV_aZ8X)D z9RPM6g$d8BSYEf2PIcSS427O z-HBD79RgXWCmnQJ?cOwY&bo#J^J%>OBGn4}7xJUv9ieK?Z&*67`Kn{UeXJ2H{tahjbwbbiXQ{T38EIba_$IZS0NDr=Q zJ&gJfj#)fD%ub$r1U2Quq0_1HwBef76rWI>Wq%huC>!Ft?JIU!!hW9oykS_TOGvui zl@PK@#Ibs_mDTc3m!rCb>LaU1-5c#Y(zt;x?IikRoQV;PF9jA0HKCUIP~|9PuAS5J zq=6!1^IQ>QDC9NK#}YzJ*S)c=02=$i7NntUI@d8sS?*PKxD1#_vTeoJKh~>vclSi^>EHNA{kUWg3)K-yaj~p9<)pym&4bt8W;qC(E3_A1N-$8Z(MRVe+FCe#u4j0Grq~Myy*C zn9Z~?*Ez|VWhT+XZV6FkKkMON1XZHJjd*4-vm?zYG1kctES=VNnR3uIxO%_8{mLCSqw6RDzGj;R5Qx}8Uzb#Z285S= z-RpFs*QSnLFhi!zSm1{j z-dUWTon(;}gn$!pezIT~J$@cF)~ywYb*uOo|e<9&0%br4f?NJS_qq^obh7Xu9EMsSb3HwNs)Ioduwvz zB!qbdB)r>p{5GF+Cay@gylbJ;3Bo+;(Ju!^f3tvn_B=SacIo(bDz~@2E0(%5JmV|YjtpRJtl6xz*&Do-1dEpY!foP z77R}FKWwa!N0y4|E( z2YRAo5rcks@bL4Ig@|Q=mZLj$dY^HEg|S*p4h^znb%7M|v%|Q+vl!DzjG70m_rt~m ze|XSL2GQbTNk`W?-?cW>%`WX@-oobm9rQ$3eXeZwuzTNu)1}HWk_QACeA9X_JepAf z%%n4(TFw6BzvsF~KmK+$)sc-nL$^dPoa?PLuCePAk(^ZU=G*GC-{}zu(V%f zETe45DlNngQCx|t{_)pg2tonAT+}BqwvTM}0FYBJ!YATc=01(Ncqf}PQrigp>9M%= z-JF~qH&&mP2pfXqV(LMAv!S__KjOfVkob0Te!X->*0;eXxkDYgRej%98*FY_=1IZe?*78Q&=C}7-U0*v#LMnmON;=xC=HJn#xbKk;-fFfpQNa~r z*YU0UWZpWq^os|@pUd>5zEIfM8A!C$LQ==$M7%}m*%R^nDbrZyaNsHH=OkS z5=XxI)k5tbj*EqLwH+~KLqEvX-EO$dkNB5hfcGtKaMatza~m=m&PopDyeyHrnCS!T ziM;R+ns7C)I*xJkeNOgqYK2iHZew;tn>9i-U79vl&)lQLGDb(8ni z!C%H+1`K<3&0kcl*C9HvUt~ui=aA@kq>wo*cl+P^DcUX=6h&rfTu&qKV{!tW0!d1a z%lKB7<++!RE=wFaqcmtY_ri@6Wlo&2d|Aci9@&M{kslQj2+EIAe=yj}`zx`P8sdzs zo@<`JNqlchG~5DZ%Fo7u*0)FcQN4=5473z;uLYojg(^Yc|C<1ZdP~rbu4G(b)0C6& zOaIcO$+D#>qc{~SDvCK3kqO2Jie2rk{<~3I4zhe)c~fXW6-;juCqssOabvNeD=MPu z&py+7D3}uF14O|JnuUfNXst=51AdxI%l*;Z>vq-E&!?22!>*C0;Wx8Z0mVMAFe85- zHI_GaG(@}~AzO5b?c9w7q+|u5UbW~BLNP@QBI7*XFe0R%efnb8B^WI4v)qQfxWS5j zF$WH-^;&vYJ@qdE#)lT$Jh5@(!S|Uva`&tF6K--p^1Ai2+`-}o zMAP}F(S^?n8=`Mde+KwnGuB}B$a^CsBQ63WF1u82HYsgrUe=dFzaYRl*94Gt{p8I| zuPu`mfd{kY|eUYuQdmVkQK*wGb0AIF!t=y z;+OvZkA%7C1y4U~=jM3guZm3y7{&i6dU}fO3%g!ZAXpS`0@ItC)$OH_+Tlc1Dh0JB z7dUr@7rsHsrei4U-&O~K)M`~7MOWPWy7~1gSf-ARV;`a8sz(HOoNE@XQ@o$0a?T%* zGCjtcQ-^&GE(^NBhrp|q#zP}X(|lo%jGKgn>C3RF!;4jaTMs`25pl^o7eoX7RT@D; znRmWd4B^w%k0!&~@@P=%^KQbbM4m3P$jp&Cz4T1wEVL2sHZ?|5FuUON;nrHe__nM-8GACY;`#%gDH!kVR686W=D-SC!~OHK>?%9mxFEpSVZyj$BOAQq>XNHC z?-Pph14)p7j1wyvz4N;@8QP89xu!6_bUGt`3Qzs$d+n6XtM=KI0Q`)nKZ`TO-0IL420Gs-6UTE$zHWv#6mLK(PBN3zj(g`oBZGsQwX1< zB(qYiNoxkJ*qd}_J#DVIW3U{CMm)uP8>QU{rKt_;$RZc$XkW`eS~C6Q81SQ|^S3qwoPey4 z0zeTl)LR`61qow~UcDkui#BO}da7@lX8m}7;INT_DzkDQn{J%K&_7dTPKbswC85;w z^v5|!u~qbMJ2b}c)&RLbAO{@li5;?2fBrUDb?xD8 zb48!dRduruufo)je5JEp;iBo?uU!gw7^N1i^g|k8#hm|6M;%Z)j^#0B-3{^m+#eU3 zLBpfD_~@#gWfJ96B$N|eoqqolT|7|$vs*$#Y1Q=b(<{#qC{Zf)F6uSEHrqGJ; zSMf*&n!5J^?A-Y7DNC*PzZv0x5!#V%aH75xs53*N`k$amdnX1HqukX!&i2uN(&>7D zvD+tpD&s$sCkHqm-S<*uUMdM$AE;qzL3?y4ZJMK3l=T*7vf}&V$DqGs#j#DMq?)bL zaUBj+)4;Z|P_q%mK_dX9aeK0MizOb|T2 z(jMAp++BXJMGq#qK3naa$Jq9Dq)qyG-DO}xHT}93y&flauny#ql6QT%0u&=M{y^$s zc!kj$rG6$XhinXnDoMI*UU&taJct)PtRL=(pV z1&3rP0S4B`+tl)d!$NZ~^2h#dvPm2KI23#Oh=VlMNgdYX#|qdXrzPO(0}^2b!A4YL zO3G8C{o#gca;MH8ZRUp@_2EDPkvXqTrhSh*j~+NW9z`HJK0nGL-~9|7WEP`J?TvrQ z%Z5^;n3f}dA*k?Gawt{IGlPNdaoBU-b&vmFy|33yH0mSkN*SgA6n%4mX|#V7i}^h8 zEn~tzGQ`A&aL;%z)olnITE=iByd#p7oc!p^!&!+LDFwwb_RANW0|Ns;b311fOe?9% zr3FW$YV|7WgmWOIR>Xk%bQ>5P)GgX?SwH`3*kxG5FW}9ToUFz4boiqW-Go3{NeQZ( z%!_xc{${f%I$V;DOFTYi{;Sv*TGjwz<|d=ug8Z+J?Y-D)!05xzaDSC^n~GvWj9Jqz zwY80^m<}Jm9ebaA`3B3?V!Al<<$W9w5OPXHn_A;Bk_+Rhco3#p-IUI8YPYCpNCkQz zod71}vhlgcW$m|J{sgM4?E2}N!viZ158(ge z1`l!5&szf#0ElOtK%Jg0DQJIB$e`-}zzr_fEr})^+Vir;E~^y9B&bGe69xBa^A;J? z%i}te5ZuC68)%YMUG`nCBUO~F;J;)YWF=}jUI%o0syip>s>>GYh)H&IXtATLCyWs**{r7;0dU=XJ?{cBL7H( z`)7bPNKopwN|%FP2%8jiZk7mVt^b zP;A$m;0D=kuKDP3dE<=qRz(PR34_WcFJ8Zs>?x8fiCqyWv5aLTkDxcwmAml0Wa@FD zA?iCj6w35TlP-baeKj6Ba{;DuyD?p(FWXu!b$1qQDx{X8rzk-jyUYeloC>j_wlrd; z9WYishBt}StYARwg$z>DI%-%E`AyW31l0M6-sG=!Dq?RY zWxPX;y=HrU>m6!CMTEw-VB6eKNFwT4e?`>WK`d_amJ7(Tf%YG6E5JzsN4V3lJ!ZYrwfYkYiIR$`MNl4&$aC2k?xT>A=??wQG%r+Xhzl5_$*YSgJ{ z)oq&fy!UHy%fT+&s!C&hW}@KV2LUXfp$5J%7k9FB>5{nUGGQ?z(N0i# z%IUdHZX4GcvbyyY%u%n}`uT-iGfc0Fyq|Rx8>i!lP2RbeXl+5QEju5w#|^TDu#2DI z?wHWLpgt;RY4@(}NXW>tP>E^oupFs22Rdd?mWA_h_Sx3i?F=!*^89|+*prWo55Ce=O%bMADc_j!A<8J6>GrNVV`PJN6@onXlTXKoUA;Ve~5AWU^N)~ zFms=%;T*WA#rj zdWM?KX+!H^K$oDNKg#@z;|q&c!!yDDDAx4*UltLV-naL~AF9aee{sr`QV~4xCVdU8 z`Q7cSH_#H;LjgBI705L;{GL%>HtI!ToT{^J6#^_p4m-N}-hCtnWcbAk=DHih8VP@U z>Ur47N|p8FuS=1xldHhi+}P7_Q)S3Z*Qr}uZwa6Buq;JV={^osY3$dB?o9&zV4foE zN{Ea-ZLMj)wX9x?TdvMO!Xm=L1ouPo#Jg z>kk>}53Q}U%SA2kcMTBwQ-+&?JKRU7ZSo^Q#!}_q*Lybkz`N)2uwc~G7Q8+}w5@4n zi4OIEn(A6k#ib+*k%y0dK{??zZ-4ETW--T;yM>|l-kp|JM|6T?6|EZkQ=4Ifb%7oz zsUI3^-L~hj^%aJ@Tp~t(MyfIoX(mMknPt3qZ`~^b4%cBZsF;`Vq#JBxO3kouyxXv+>MJ~d=j ze=)s1XEc|smnK^Pb9o2dPFQXoJ_&T*4h0?Y<>(D$aLMXw^Us?OQEqZ)YLg-?b(RS=S zSiw2y#A!GU>5~|=uTKa1!|_AR6<;^oY+MLeN5hMMW^mj;Ka(sHGXu6O3(Lg5C;4e` zJt%Ihe32nsBF1tZy>Qqe$;S1rtLSA-4dOF9^vV@UxLi@Bw19z=x=7rS$n8Z|s6b3` z^R+>+v$KY7x;BH+bNbD00(+u#)itfFKGJfUTRdOI}jl1_XK z#|=cu8CO~VQk+;c=3_6!F{<3>p6mO_(6E=e&tUcvLk0Oqy~G~Q_k)=BLZHT4^hCKL zUQvFPDH{*v!QQ-2YxEq_PS0BTqlNE3>~J*B1#H=m%V!<3A>zpHZV!vH7gtZo!0qd8 z!lU~2{B+^|xnhB=(lP}YiU|OZZMRDH9C>`0?Ibk07<YiMn^Z=g+FA|TCi`vZl2rN8>X(0fXD64o^3?jW@?vs^;*~N2-W%SB zgdOEJF93$jmF|bWZOP6h^WDr*(&|%kM@S4R@qM4HxGS%e?Q2ollF2<)hcXrk?1k9t z(OJT!77ajFW+QlQFNbOmccr-)NMvKxzDlab_^@COusxe1HbL@stI&0=(*sXtS5`9@ zI5Kb5flV!M*KYd~w7>QQ{@$_vOPvhE_)5C8_T^1wFs$Kc*!L_iY<(~K#)}6i#7zyU zh}Ayc;#h*SJbO+Lk`r&U$p)w_AdgB9@=dY)qN;N@4;5B)Y^T6NL1 zW-2>c2~S$FQ(A~Z`N@ryn}$8m5B7@41=BdtkJo$ObN^OF%ue3#IDB4BnqTUZ7!qF< z$)I{ozf)b2+ZXd{B|N*6yRjs4o>TQ^R`9e|XAvU_h7;~`h>B4$L=N@hny3r78Fu{Q z8f=_jb)}Y$qvKm8EYYIIIHK~d4vA2rU&*B4*f>}ahgDU=KMaawnQa_Hwyny|kC&DF#P#gy%UGON*y~xR0x3(Xu z>P#Owgaj!VLihGQqrNZmhvqFPDk1X-a!cj^9TK~r4L&c3K76@lRpOmit*%#nDLp<6 zbN(0s6u7qtzLS|4y-GsWUQ}|=)q3>EAZ1VuUuVfY4YUZgxjc{Vd2GAMsi34D6%W{9 zs`)$qO!UU==(XHM1uL*Pa|ALqa<)x8ze#&r0rgWyM}XI{KprnYe4Gny8H-V(_nS_-f0%rvS>G*e+DPj%;S<`37jBckC{U8C=gQkibg3nES3MV5u* z+ODo!&x)h+UMVkIL9a@2VP8@)!}@msB`Ixq!01$(Z}+UmvdRy9lWQT5VCQ|;tkJ%g z)d_`IJ#T~4EEyi{a=7@`{#DWI=(bF2MTcJPuYHXh7psWy6A}!eHW9QseF0*;mTQfI zcTW)0Xuxk@-SpRp3IAw&qVf*s*^98}DSMFN3?cweE0uh^aPVI6WRhI>{RuTUybmK8 zFEa|8nWdaXx&O0uL6ZR4M~`h*WYRTuPY0Eq(t8Lm+v%1PCJqX_F_dUC`Ozhd0kDwP zT+7RaXBA?_LPVGM*vUC{ZH+f(&%mHsJo3;gcR&){@b}W`0K^}+RhEiLUJO(_>h)H) z<9LAl|7Qo)BTaq`%!WFy034lW7Pf0UB73Ao>s&}>_&y5Xydax{-V)o=VmnxG(Cf@e zZGJ`R$uyZVK06~bY1e>l8vY%qUUhf|M1W4kAeQSn^AhNujnL)DXh=rPb0=3c0lUU} z&O>UB?z=Ojmg{NJQ%{e@W8s6Z`5%5j#Oy>QqHV%^{3fQF9?69|nfTvHTpZe(H2^7% zR|VEFwWFCf5ldT#hk#Nm-TG+%2UXQB?S`%sN>d|qP!?3Dn`WjTK~DRac&_)pN{4sK z)i2GPR!BLiD2&(K?(8Lv_(M1`hSwN@*%>2)02|`f3s#C~9XAkEse1T54*C%BAd%Bg zkTx!5qLm#!U7l#VV)y3~J(G3IY(lTOb|cAZB#$hRU3>5wm8m3}tXJ}Z?9^7>cD{7o zm(?70PFF*|x6zqQTw|QgCewN%z7`>vch^`wgZ5B>i8p&ml zP7b?h$DbG{PLE8*O8-5#KbDNR@p&VW*v-kXHC<7Qq_@KAe{|T;D0En0-Q;r}zToU& zT1M#bZ{n8HiPq*rov?-dOCl4D0Zw-;86R)0UwIEEZ~V+mPSgD??eQ=$edh~o?CIxq>p=<7P5qDm=TO*mtRkil_KJ2PlgH)4LW zIMcdz%`}Fz4NR%+Mm9o?SEcxn!movKu}YQuxqm`PlPaf`gBzt|U@gH){1PD`ir*CE z;qWjT2Z(|DE<;GkKO>pw%LgvKvK>=T@Geg7`}f09 zrMmj=?L-nX5Sgu=96y1p{*VioQqZXH5(l>PhYw! z3dNaFI4zE7%E@881y7$H3adZ4&4e@+Uz2x?Zk7yAx}dbsOgs!49PH`d?d&%5bAEg$ zC!Gz*qzG=svPs949mod^m_eO7EvcgDehmijBoi2I^rhhcdj9Cz`9w+_j0#}^(JX;G z{|1&%tWPd%R#gqYCh(PSPTU&h@6f<-zcq_dRvyZ-O)(3U(;Kq76%79~TY~MeZHakE zw=T>u4-pPu38E}L=kR1`fgFje;<)2Bt^l{k_^{cwl8qlCcaDSqJm4BVOdY=#&F3Yt zT?_5?QGqu60cWszNqwU^fNVE|+y@7QFAkxjf;V#lp9mcjD_RgGi(Av64c7Gq=H%yR zK{8;0z!Nk$U2^XWRd@+w1Z1^iOYj16o_vg7U(Pna1kn^yoD|iA#1qQc&n|tk-`Gx*R3t6S&`vS61?&3%c;>*mYDI_cJS$kKr5l zJz!!xRI(>e^PLHe*ufM;`8j_Fcl-Oi*_m51yH@XA=iJLwEI-!a(#M%!OO2M26b-hDg6RE4Ll+D z4uyC0-p!n47BuS2)_%dT*6K$#5ux;`0m@-b?{#Cf@;h8ZSzXS(f z{mosMuEiXiynP)%xp|TDAV4-jT)*(1Q?JG6#^lD*xNLcc+z8!Ny-0?spPa+NeV^;& z9^(gE;fH==TNzcQ!IF%`M2mrr_%;tIIqLy_i@~qjKE!Ly!%spH_F^7`baDvI=gLKU zK;fEboPJ%9_s?6B<{5F51=-Z$b8nRy@jnwFY|3ac%jy}U#qRsw-q957w(R-^c(lpa zLKTi><2Z$RpDY{9*59MQl@_-a7hyBl4b5oHp)a}7xQLOUg5l&+@8X2)L|}i%Kc2oj zS{AV)YW$1P3&*KpOB?G^$eeife1K$a9HOk^;9U925h*5Q}s-d z^}d*x86kVig?301)Ud9jhL`S?BVe+!@sg*d+pmXVn(=nQq)c;&G#NeCGquj2N%r+) zzPSeFx`$yHp`%Dzw&<478At$U{m-gky!7;67nuMTb}l7k2uFcm{?F4cFI&6pP4eIg zdwjA&M~-WjC>!g}@qmy6r=EQ^^(||ti;+D=Zns83YtEYN1oV7z7DE%&%=ch*Fkv91aKL+?heElW3iYNX#F#6qb!TC; zYf8nQucaRO1`L;)sUk*}4Pz`#`%B)6G0*JgR$0Ui;lz3pA&uPVO1`frt;P>s<#j1b&B6USzf_vPm%-}>qfn? zlomRsT=O=%UM;s>wcle81Z3NfA%;_iaEXt}%?E>Otl&^O9;{^f7JQaLjkj5=h!U50 z3WOcag|UZ2mA!r0M<_dLmI0HHn5-R}CNExDBBiL(wk8kRGAJF#%X7J-OEFrps2*dD zM{I0e7ogHG)6nC5O!b_~$W3N1N3OZBcPd>^hK0MO2FO5k9l=$Z{x)^RVIwQD{I*~5 z;%-PW?zn$iWxMGi^%0pW(T(@8m(kE)M5UA{mcz=Re^sKZ1Z*&?|+xw5Ma9KQI<+s!zIS8=^&ErX`5&`S`Y{Z6ozpUi1Gbsb z_I9n{)2;V0R$p;>nokQ^e+dMgj>G7!2%<9WKdl3TPE3Bze@92_mE3H`<8WC>( z%-z}M(V|oOVL+;j;>@WJj-wb9aQ=)d;@>NCSmxiM1nYkbfr>Eeb%%v^PS3Az#ev7u z<Zk|@m{pTkN8;VW4V{Foy8V3W zm)bRVrbTRJV{i9HB@V@YK}8V~HiXjJ>=@RRk`W`-h=*E^dY0rjs0jE426)i~LgoZhe`GV=T>QvWjYG3(IUerBfXq%ZlpDJ}nMLEYiy( zJ~y*dbj2}ml!YR8fAi9ZS8L(3b&`Xa$J&w4{Ague>4xU)DO8bPlFsjX1`#I zza*J%vaBRYrXsdyV67{adT=i4#(at_^fc1HrOGs`x3VK?8wmbcyhq+T(6~wN9b>IH z-!^#R&|gx9g1fg;n?hWmQlqr_Yrr=UGYxO-q`(y~S(eiOa+P3fUnN@TK2DYQZSlcE z`PIwvi7F)#Kk)tV7qE41b~#n|k`+AccHa!W&lw$9qW z_b{vi{^}j);2l9byU8FOy_J6ym9p7ZZyj`qYs{O^A=oYIdvaAzH+__sx$(4d*PG^v zT#%S*$e1<)pME%sXw*d6Qk1q?40)~o(BJ4$eoQMgeP?BsVYe}?36+gtykB09zKQ!> zMp|N=Di$+CYDDJk>tQ+4K-8NhEC2xL=MlSb)mw!7$pr1@=`Ouq zjYoU%+8W;|Kx8WY>BH6b{ttH+PeMksAFHwZGfi7(2g3t-5!1q^vyi@DV!Yvcfh@+a zZJY`sZ&Z#BGiE2=F;9>*pJKzD2-ZUalfbHHiJ)!Z`V3nEcuL?i!*rExnr+^ad@O3P zMEuMHoXY1@Z*1*YrrH2!>Tm;p;g~a#bjm zd&~Fvn==j0CiVS#r!a4pY>w0YJryFOE-?SVAb=fwI{N2$bWacvW#7nS$8XypiH%k1 zRD`aF7uLzOi5@wMQF}&j*p6k*G7Jh=*d@kl6!A#-F^frx1i5UA?A39V;g}RgcMGxG z(^)O7aD(XcJ9@^hhm3#=>bIMPOHs7{D4G+E^ z5~a!yvR}oxI7PS)F__hl6A;_uarQ6XEyUayO z*F%|Ojmrat3(;z9VH*3tDGE4a~^ab?)*-xYjgcEz;CG_wNZ`%=sk#rhsr zwnNp&+dQlS+3qWC=d)66$pF6R2!(oDIg}a0HSRutU%J49!dHOU9&t}dT*lq~s7P7w z)OoB0l?)PhZ2$YQ=;+gKP16~e?0|Q5&77|ygO)IEB1pUl(4DEo&{|872zB67+b=V7#Jj^BazC?6#-EvcgKr|hU1jX= z&qb<|gDx0r9u_uSQea;_%eLR)iMQHY+MyJ(j}8b22fklragqlr`APT;48ZH4BtRA` zf!DjWN`JNQRmb;7beNTeUE=x~!~M|64IM{g^UH|rdE9jO%&kS$lNtLQOiDQVciDg? zg?e_$=L&UdQH~z3!{Cn#nC9}&(^iLGJip(FSp8)WLEYs^qCn^?}859TyB^Z z4{9N18Cm^Mg1?seI=T)5TfaOD$nKwt@E-8e>q(JAzc;iExaNMvv^PsTXBsz?(_ISj z5o9odhc{!zl70IOvv-^y0AtJxi;=WVLG-~~3IoNSPTyU|zS^fgdXgJWX8^KyU%m#~ z^u1z4_@H)&18L9-3SmJ9c)OOLqMFD15o^Nzi9D4_{Xvp-+F6{U0SX)A2%*KmQN1Xi zcX{We!y;ug(=j78N|{P})$VHcw2pNi#;gFO7HEJ&g^bE(n8q(vo5XR5-yW54y)PoA zZuw1??MFO)^(oCX(lxt&D8nJt3=YuEk`$fNe>pLn*~$+T)dt4y;`n_QC7%sK_c~O{ z)N^!x#Vd~7@7?>=AnEfO1<=gauqG5mBR%XKOS36VC7HJn)Vsk;VjV4qfkfgGifE@l z-B`nib1`!ITESF!R%X$tmExpiEr9^Z#Ov{{aYJ^=G3p!R^);1{Qeupl->{8}F*a zOw)ykDJd0dN}t*dGrfFm^>$mv$k2!Wxn4HE8lSEpU(WKsIXqgGTF$>aLNp6zX&b}4 zPL3zxc(icJojRT$HcrzI&hyn)q&WYh5iS|DVb%dR9SYI8>Q=}` zHAX^By2m<}FMkKZ}^!2oi7Rqp~4kK6mV}GOPt@Gde3qG^ly+DmUw!B^7lden-Ok3MutEc zui)*Pq-|s%x`l^){;MvaDP_nyJbPK)TafvcfOCb66CuCydbyp1oAd4xHPa&?Dm&zh2!!-$rV+U2=7Rk zQotpAl#XvUz|%A27XT!^1CH*8J}Z-d{CWH^RYhp;ItD#(y;NYEp3=}9xfPmRpXZ-? z`?HX3zfm(xhk2;EPCO=w*tq;&!km;*xcSGKJw_VYSd_0=7{SFVOl$i)39wrCz8`_Y z5rf@sM%`7>mOK(2IB03rq~=iq4Oq*=*s}uFy>}(DB?<@>LBDfDT~-PYUM1hsG~38X z_XlOOKXw>tj)X=3f#Bwh6Nm4b|GQoF75Xen?eFFY;ti|kEjS{I4$nqsJ=Np!cA8CX zW6W{B^_nLOn$XiAM2v=Fstyw0RU*yqX+BgCgA9msV>jS<0~{ z>}~0gru=lp&zbr@!MM{#Xoe#&ceufniDh7VPnuFgilK!8#l%*FUGDv6AM6rog`AIv zGZf>GiCM<_mn6^T2`Et-r^01y%o!Q?tLjFr@o9c(@o?5LHL9ukQW`Us+rC|Wdp;o7 zU0H2{%0Yeb|6{YUZq)LO2?af*SDb%IeeGpL$J;GiSz<8S#utK^sat*TnrvG% ztG~P(v&(z*(u)SuI$BcB#3UNen2#WKJ2@N3Er-%d+}9^q!c^W{I%0&~%-8USO@$NZ z^#47w#TvJ?b|1XAN%-7XkNB2p%V3U^X*@k8BvXXZz~AjN+W{jC5MB#7DfH2S z!BF|bNi$h~z%5@>{i8&KJD{a|7X8zC;efW5SQKc*7<`sgxMl!r=T z9C$QBT^SuJ&)h4I3fYdG@_IJmq`?vmx;wpTcJASN1^VHy-%|gRHOK5-sLBtHA5IaJ zYy<~N)`~w?HRK7j+Te$sJtwEw4V?OJyW9t8AUXLq-*tv43c~NCNG`@Vgs;XEkVpS* z*1L}@7QU(*LjEISJ|00f%!+O;$c9%wzQ>;#r45Zebn02*?-8iwm8wGDl3p?aVmb~1 zM_V72I@ZQzP}+_%31rKmBEqCb zx~33#9sl{fK;MH+lIGVK^#zvMA^k@9T27H%J~IUxb~xCNVhZ5&gTx-=?_HL=wIdki zIul@)hEu8x7I#IpmW@c+H9?Ldo2%Wdd7PQgmU@x;u5S!>Q|!xeh}j6mnligT@IGU$ z*Xyn8Q?$d_lik<+tzgttBw^*a>NPKU+kX``;9k8y_g7gnf3sKxv2>o*6TGdJ+wn^3QC%h)T_V?Y|SkFT57{z+T0o}6&l<`Sbk#n zi_^X^>G}|odv|Fg>8Q@aCh-k_OqPkK2vuO(T0L_jh zxZSeY(3X`n_pUZvNYt&hgg3Y1r<=$r56t1r{bsjPW`ln8n|+*mmN@@rTDd|aLv>c+ z!Oav}kL0<|smjmXE5J#ksCDgR!@UwHG%u*XVMa}-)<054+dLD=u&YvHA@e<~M!#*Y z;g0_!Qm96KUYiqF(*x2izjz%Dw@qKa~=%4`f!@p442cv z8Jo?4_tz}HxaN5?AOwTrxJK4})3x`HAuU7|Cnf!i*Vy**aBYqA$czqBvd6c3X|&M( zftO9f_+n<;V`^055S<1;Qa*|oc{nQrY zwrL#O|8YWo9vrw}ynWo6)<18&T~Nf(y$anzI4eBW;i+U6+#J+?3Et=&HaqME#1d=cAOcw?z zQXI7>)lG0+R%!QpPjs%Rv(m(p@_Cc0ltQ@>2jg9$SJ(qTtcA7wP~B<4O)UbU?x5xl zvfjj`pKK}@JY-t^N)NRlMJ-%Owjk*+7m>6h;%FIK?bX6TuZ!*n(fU3^8D21G%JqUG zT@su+7-hX2&LYI87`DnGiHVU$C1g0DTbGJAQvGQxO#iIA{50M%iZ^aJq!4DdB~noP zoRZCAUlX*2tSx1<@$(dD#2GQ^?Y<~E@fw}0B7xe%&MhmC2}u;(u0RV-yK6M~sww$% zpACeQ5*1-Q9a)LQ1(qcC#>HkDt~l;wh%&@w;AL;Avpr`7-Imv-iv597G2Yn2m8t3+ zV6+*khqoH&&u`v=i=FJ1!j-yO9f+-v?KL#upwazU;yNNPGQ8yam6oqY3>LB$M9jQP zht(!v{mH7+vIM*W)`MzH4}+exV4;AJqNR~25sOe){z4g1tewhde=sQlS}#)FK}j9< zr(gZXFd3~S+H4}vTcK@!rl+?+0w5c|teJhKXf2X*9gr$sqs^vL^qc^+DaF{lAC43i z+8@R%tFb)h|N8_!WUXu;aX9(ro&9S}B1X2X1E7Vm(J+ww6M|!=6!e)dWHn zakxKJ!|v7!--~*5Q%5c8R6bVPxUVIiB_X7miw8NM z-zittbc+(%vyZ)xk~4AP=M~m_I}b+{ZYr8vkTR(f9W7cqO8d$VXjRue2ZjMfvL4&t zGU4hO1g^iJE6^p_t05|W?D&^jtESH3UCX$j6?vDg-+0YUkiT1cyqZMj^;KPe@U#4z ztJO)yoJ>6$j>aoSic`N?=%l9(e6THlV}3v7N#MU5{Xf{pl&z6*B__I9zeI{Qp0H>~JtXD{7H2h!;Dtcn_z5Be@!NTsV3mkv|ws*0gxTGlW z{MVT79D}K8?@N@Lc3TLzjL&o=VIss1YTbs%7bB9!^lHbh{2}op>%l{rW_B3*sPt9E z^AlIt%IQ66B#?!={zKk#(>`jOucYe8yw9x4A*;8ZQ8i36xg%!vfv<|2P1R&}LDsrb zdxx#4VdBzMbbVzq=)(c6{1VQYKqsxN zA=1h(35kO{42^hQoF1L>fB!_v^lo8fj~+*EZ*bua&m!}v7V&(tPlta*Awz*l5dhcC z7%a$Ve+IOb$MZEsM;(cr1OWeg-fC&CkHfkRawQ{4D8Wwf= z6Qj(`{ekr;iDAgbZ>8c?aZB6rh(zfVevlIB|$y)8~E+Tyhnjaa=G2lS$J^`$3>W`7A;@= zmAlUbEg{q@;t`zZHCOC(B=IVaAX`{!jVPg~h31YjiXW1BkV5Bo z{H3A*$oJ5`sygZVa{Y3aMOyX5`hl`5SB53YI9y%-%!41}39!5ZNl=WhPc~d_ZH|?3 z=jLd%i2}vAV<8L;tY8VP?>~4Zh-WDTg_t)cQK&)>xN_|Kvp}!A<@GZ`)u1vGJ2r_Yu&}Xr5vEcBG>=T zHZ%yB7C8$tRmQi3Dm{aV%j$IoqKDc@w|GWS31vVS0!~H4E%(Qn7;E`|{b8-es;kEy z@yJBSJG7RAh2%>2VNKxbT5{KvJ3v8FOKdgaOg4={i=2PX2K5{IDTh<$w_-k^KMECM z)Jp(6%!`7kb#1?}TAM?|pf;;e-7uY<9Yr!H;_VC(H+AYKZ%AlG8CiEjYwyLp*8Esb z``BI$o|y@kJ2m4c17ozuBK?=+?8&60YwT7t1r`73AbBMLuoQ!4wf;VaWmzcnMS}&3 z_2;lruDJ5~ytuZNk~()!J-bfOwZV(3Ii%ZZ1})*cu@c75mzTrRKKpA;TUIA+7qu=D z-$khHDxqxyvC8~DC2-~DJ?*Ar>ST?`iGA5l0|j$7_9q6b{@utB@NzeH^~G~f3e^u5 zOP{n!+X3q6{70)HQ}rb}oO`}+6g7x&iB(e?SJLg-1-({IYGo*1b|)4JoB9c;ExLbp z6vIIjo#AWm{wstc*A-l!O{ur+f$J7->sY_6@%z|0Kc*CFO2UTn$w(s@e4pa?=AQLg7>!p@);&&22t2Q~?*<%cj^48wlrQM#t2 z3eh^`M54#LGe7gktUvbM6*QB-V7wODfCx5y>BV7~ied(zQ?1MJDzo%dAJIi=HAkg$ z?r(Y{e;IsARs7UvmYW`cMfZ`ww&n#+M~J+I1jR&6y-i@`?2Y;^K&j8BIudU0OS+%; zgD`v!PdnxGww|SB8+qt5-8=XyHz6!jby;O&X?$ZxdChB5bPIV^VTv{>nhE;h&EMVE z*9^_yr}-KEh8Uvet*p2sD67)i&r`0^sHYdcw?S<$?-9{73(kq);N?(72Mjy8dX0>c z3ru4_m#tO(iit#Y!_$;jqVNF&5V+`b_;|MCY*Vxh0H3a|auavoqTy(vNVEcstMvDe zj?+U+yhiooz~#b0za*=c$Ftj?$_!I9{Rn`7E{Ai`71VO^UZzSdvAUgCNDeiIAZ;l;PKu3vs~Ai3V^&IWfu z)mG9l8_zo1ceOfN&i>}{ziq#QWsiM%YsCru&m++BpOJE;J;N2nhi*)>TK3MLo>MBSvty3g`+_&z^7W!dE&%K(SHz9Ov@h0nRKJydGn+}AZP*aP_iHOW*TO_ zn5fRMF>m?)f@}SVgpyyX-M9J!G`_WYzs_D-w?U^kR-GRaP+3*%==0roe2|dmk~M)7 ziv21z?-%6?Sl+`cCyBSYy(~y_ugu^x83(5#;$2}n`ygd9JNhf}^?5H=?W$G>j6Fu= z=;9Y~mZdoZyTafhu#Qgp#lkAmxH{z^&dSyS?VDUH5338Pr=IHtERxB*2T`%tWm2g8d$IK#i3P znOa)L>(AJ>fh0ZSUvjVvtFX4t9?u==BG%=HI84uBtL$ktkv3`U?4$hRMo#O12dd;f zCfViuCE=QW5b=lMQfjNtRQk>7QryPktAs3x5e1xp?2 z9PV;Gqr3^XMD!VOHoW6qpErpI)^J}><;CcALWH5X(FRp5 zyG%`z-}+>uVUS6H#~NH2s;Ybtm?+Zb6rJR3ZCj4kfaJi7NfN0b=#rTB3hcc)O5!Jt z$QVwnO8_NX0>ETOWB5;+rae5_Gnt96Z&)n2{uSE=(&)F5?C@RRSnM{ygzk}!>CPC0 zT0i4345IaRaP|s8Q%agZioJRc380TALyN$*oI6gGZ;mK<20Q=LaerF#X|mtWSorqy zTxo?#m;&iW3U@pfjE!|2%W1Z{F5oij-;0L1jnf{Ob)E=z=Exwxy*zYwEx2;airjHK zIThZp?V8reicoBtRLQqKhd`#48rV%!X{McBOA4r9B3y;CFEQ zqR9ES9N>u+!c<`g8eKxe?oU`R>mmTW_qhw4YlWftclZ`4@PXRO@FD+v(_{#U-T z+G9$^)sgGcFM0aBJVdr^MHa&+67lxNS_8=L*VUv3jx6H8znrRWT;ug>ef6?M>(vE! z(|8|aFK=aFed#W6z%2L@ko@b4#kne~5tl*g$rDFLBR-N+Hh3+NV+L-HV ziaukG^0xhL`~7!I!4bVY>+_X2xAceUr6546c7Q7lafT6a{^|8Tvutfh1cWuozmF%A zR6_Ji>mw54D$;Mb=7$~JEvUOY(}~%M?`$xvnsH@z5F|Y+1JYZ9tE`>w*#Lz+Dx4FV zLT@A0)KO8EI>qnH!KpKl9{#U~gOMem&mG|#s#ZA)@vvgfUJg0n&N_wfzh?&k4{ zlu~jM$ZQJgjW#U#&ELzyX`?-zBaIA`$O?y@9X!Q@qMJ@Q4x;x<+N&ZLqj&#T3p1>V z58V~GUq7*^&MZ!3$aFv7^c*Yl%vzCDMlWuzKeXGTM=d>TQDmuiw<$T4oad^foRrlw z(OTJ{>US|>$>WTCnBBC)FdPLgRQF1T&FyE2ObC9=TlAqjfP>`X>ICbRCsa7!tk9xU zQ&Q&kc|;4FY{wBa*_>!n%dAUFK>Td_A`_zZ_n#i&aq1`_%p(o$yE9)#LCJcIUO?B= zW&Cb%lrW1o6POp%rR!w1fLFG2!EIs=%UoK zW%L%sH%~jw&hB4PwYM5zwU!4uY5aH{dCgVbKrjJw_ALSrID68W4KqIrSFz3PKWK_w z6QXEp+H6Bk)8J!xNiX%YLgAVbZQ^^j-?Z97t5P1E)@3>xYN<0w#-KVTxpceh-*d6E$(cSQS1$l% zpiIVDdiU{fq}QdAROh6a0l||PCnfcEJc6EWxVLqbb)~o-OiRuV+?FRWq5Qn&r&)>N z0AJG^VxG9Z3|T!|)bf;oViEkSIpzsb(s^xxBMYN7P2<7;l@35tZ}>%k8BHcB0wa9& zNC>VRN`3JHYS7%X?HV`dFIF`6BmwH4LNHRkT4f(vVz^>tuFKGuxsB^glXpahVgq`F zFs)hoTK9_oSx+ktr>^Wf9X&Hi zdv@J2@$Ac<42rEt=8NCeE9WHnw*)iz-@}C|gUKs)Z|gm7{6uKYM=j_G1ziLhDG{#S zl^WcR3HEEfW)7dMfsS63Q;QN~x}foPq*Hw>_QGU9!oyMheYdj_LhD(1%P9*lceaU%m@btbt{Kbib{xKlblhd&~g8yT7e2zzi&zMIgE2fm| zClcokgA6&}^o!lEvgq-d&pKOl1p_7lsVxEN1zdi^)TCQVU5j5stutO`_a1E-DWwI| z8p#E3S68~tjR!tcNbL4N0olz8yw=w!Q=jznXPm4Nv1=y4LmjFUK-UJTV#druyM%Cg z_`LeC^PDAeD5E5idQH;(}S^o8FxJ>=l|K~0Arit zx5C2eL?0S_oD&B?Ri~hin)I$@_j9x4)1LA~E4SFSb2?U5Jx;@iKtKDuHjFwm?`Dig zH(Fb-lvm>62BY?2C5Eb5mE#jYA;1TUbt7iDWEq%(kUU+tL>;+ov#D|LO3^iZ+~utv zE@}N1j_eYC1atTpmn1#ZDZ{+QyV>I^S&e2d$)rW z4}KFpJ-LgE3qox4O*$>HLD8nkve;ykXUS);v!;zkHz62?JMKa~HCUln=-sQdT(vZF z7wfWi+QX7uPG7Dw8g)sNAi0FkjCOQl-egO6vR- zXB>AyYUh8Ri{9#uBxY~`h66MFbXK!)Fh#{f|AfTuDPMIPPK%wT9bk=Y0Y_n4R!@ME zn$ZeLhFQN!e}FAsUwdhsY%z3_LmZu%1P>Bk9QmL8-cCzPi^E#lsHz1Af!OhWU)O_w zxko}i9g8;pjVpDb(i`wvelyLc9(B3nYSDQ+Vp{z4O)ug7!uXE#2;Tm4K$>OrwFDx* zi-Uv)Tcnt1C;a@nX4R8QjEF6-3)ZisXLED<0|+br7xirV*Nvx$UMPY2D}JNRk&%(f zb*r$hrD}o!qn_GZ);{P=&?10lBO{df>DWaX;@7ch`=SOZFm#Oa{IUSpl-l|18`p== zsd5)7f<`CB^ST5X4oS~S#tzW4UsQ+ITG5as{dT`}xr%F2HTey9fAX7=n%ML78ru*I zHmJq=1tXxF@|}_iZnzB^YJS_N1KLXZ`FJ-X9loHoczhEFOiX-I?94_% z`^xiv`gcdhHUPmnKfh{A1O_lbjg?C(`U$pS&H7-x>(`AGMhN0%lnWfVkc28lK?MvH6lEFzo0sAio z*>^U*lH_l^?8dOVy-nB%mg;NF4&3pnX#4$`Ush4!8@=fK0uIL3FSL-7$a{;j1q*Bq zm%Q3R+=jRz?1xKb>ihFlGV;((&lLs+%oc;%=H}+ce?yXua_YpsMr`H~j9Y&5(9{eQ z;NOK=tI29nOvyn}L#g8?Xe6#&?4n!=S5Q1{?4>Gu{4{vtt_4TbkS1$$93oK^r`9@G zwW%dkGg2q!#1Y2D3h~0DGgit^bmaMD_SRs;{E$=r?e|wS^MhEw>peh?!#|IW5+RO0 zVP8N-deITJ<5L7GJa{EV-)#Ife=R_-*jyYTu!mhpxnES$Y(JnfP#0BjE4$aMVT#nzQK1S?R6rMnE zms2lP2wtgL`k#(@9xjeEK|mk^=TH-RhdMyJ`f3i}tw#%<#cFVu97Bm!`YW?Hk{Tht zhV7?Xy@oi`#=dfQcOMxTJ~1RU76f~xURy<3uh#Z9GS~o>MOS8hPJ&S?Im5%h9$> z`1lt3$r-E?u0m}nk$ro7-uqry`C`hY{iuhl13Qn8i54SG$VFhJl-<2e0*7w-H;uW` zi{+M(kdUzILNL}pV|VVx;ZL-4iZwV84_s<7RyKzO-w~pi{ud-Xig}o}^PwB>kiqr0 ztd~f|7yRV8eoMs@?A(n=?^EG>WD5 zs+JAn*tUauCE~k)W@!YaePA`eT>*dP5)`-P# z2Iug0x0D?m8o-)Xi8V8D>#(Sifgo!YTfBR{0&Ke;wH5jb0GS!bUC|D*nBzVlpDI!R z^`fY5qLfJftc~cQp?kD>DZ8E##oO>+2NkkM?SSYE1@*|plev~@DcRYRI z7~xvb=;&ygk{HM%;WJC0jz##mZoUPwgHJRBnL=mD!yz+~5C7 zMKy_Cm)hh@#Dff_Jfr6tzJjruT46FT+y*we7)3W5KSVnzrfc(lPB}nqBao*>SY7Jtck9D__*Ja}}eApxcA0T*E zL2}rleSn=}sRF&ZbwZ9BA9Ac_x~Cdw7fDAjyb#KQfoxmGv*VU^nJo&^S_qBZi1u7g z3Rb5e4fHqidO6dRd)|3c2^E1z+A`NBE3M5kuFv(q`1(n&MyX|qj(MbSq)wA{Y4{VT z%hMKON4Jk%<|Jdi(j5OA;}ril#sS<0D=Sa{I|_;G3}*y6TY`%`dD)DVr@EvR!YNXB z1u7}=cGZlzqJ`1~C`8l*C|a}!Df9RUUN>b6+SbL;%#F3(9%S^%45)pdmK5btH9^Co zAZU9xHzSM4qgN8e^^QsuYnrrwHwV}g*2rJ>!jzgdIXGmYNnA~nC4^YIT-CEeInUp{tznpcxAMD9 zU&;;Zh37`Qw_T72j_mG*DAeaJv@N&La}#TQ7O7C0#CkFhguQlF_BeW62)cl&_O#bD ze9W5KJFIbf-*7EK$O3AY4hFnIp-QWl=@PfgX9V@z<@OUt2Yx=g^p}t4uP0@0t7koJ zpf+X$(Z{QF#y8HpYE&76fb)9t@ucGBd~|AC)$+$;l|Bi^VD;~~Ociq~m`?szQ;gMuPb+vZ-M zq&_?}PxcJ`?{DbNO@Sr}jwwlSm1e}cM@}*$bLq@eF>E@6uA#1K(j+hUrM_JQ51vfgm za6LSx&SOyitU_D~s2U1l{uKgRz*CH_8ehXM3^&l95;cn21mbHlPh#2Yq=%w3Xr>XL zUUq;(s*A1Fs-ubIic@ZS-XW~A(}AD`=qIb&t2a=vt}4%$W76K;7d|OfZ1Xw z7TWnS$qa^G#+~QPwI`5^=bcmicM+UCX_DBs|EMarGYiS>)65{fq6el!_7lziWu+{{NqG^p-+T`kxS2zJcxqS^Sl{X zHjcA0TorrVnjO0->1)W5l`86@_>~T+B+jVMVd|e3vKgcm`z{ebc^c^bf5MRGm&r`K z^>bP9CkOv8qILPduQOPKpi>JO zP?notifc22q@HOqp@aSX~p7?H+5M#!Th8{$~`Rp?js(ts-abX|J zcZ`XjPUXgLA@{`z6w4q?K5!byQRD z8gcuz*I@`|cH?Zy#=HkyDN-Xt+*g*ZM5dT>@N#VHq+XDlDp{wIO@g$=s^Sl zw}0OsOOX9gw9EOsIBVAVn|P9)+|A%m)Ia%zN_j}!A{HTkV?$Yd+&-u(MT0~ueD7yH z2j@^K$0iwsw!%U)3Tvp;xK3kCfPAtFG5vD!n7eH{ZH|I8{Tj)m$6_gYzbVkIh2_X* z_w{;RtsZAWt$~st5PskGPD6oRGFxsj&9<9g#coMkjJ^Pz!?3=31fFFr(jp#Nww3SQ zHjVP)`|9pUGKL<{eK}wOqYT*Ypo@a;8hy+^xw=(2x$?Qn{?Rkyo?bN^tuWCCQvw0J z-+{w-OVN+YD_)ic)=CGR%crXGAhNd&@8m&hf1BT<4o4!-^CGE>;#ZxY!W;j!PR|+r zI|pDLHpBAT{Ktqdu(W&|j{J#SxbJjJde7|%(?cAg-R}@AKR!9VTp4E8R!Q%@M3&oV zVcf}Y7TlT{1;?_FFl+KX+v4U-^Do)ghxR#MZeeexI(f6??^O>e!zK$%15#J~t(Y9W zl*TgLBlE;4P<(MWgELL%4T~^5x_XP1=~O>1EeP`L7R*bpLrC==`T2|1^*!fhrBbLyw3mlzNL{scEDB zRoG;>dgXGhv;4&9tq702>C!o`4|E&iGh=H#8CujDlJqtpu(nqr%Pmt;wT_c4Zv}~K!O39LKLDOc0&AHcJTLTb3iKNw4RZN?S!Q95q`qfMwsn? zIY`GV>bz{x+@1n0=KR~=r;wab6eCN^!d7j69n84wkG%~|T}7-m%|d7@%M=-m?_mq? ze#|r^|I_1${Z^s7Wi31Jo9C^)HpX@^j~u9N?Nb~cp0EHgwcut9V9@qlY;3_#2994$ zQ!C=gY|e?n{McJQ8^+}MCY}I$|CbvZ$DG^UvfJ7n#Ca*Id0V_KWv_X8@^|vO|9tg8 z+(zpSTG`zu(4kK4pYc$;;VpF6*)UZw>ld^1xkQN7VlFuFO~nf=;{GU0YUCQ7?TC69 zqIBrL#eE`C-1l=(+tpW?l3LpO4}ZX)|s{ghfS-Pp?UNQ}#i3!_0BI zh3K;mXc?JI!Y)YozeK7w?TAjg@Wz+rJT+QtXs;ZYGFkE{*O-0Q ziw}_qSe?+*Qp56l3OJYYY}aVl7(yqee?MI;hj0T+2JP6$R zLOV7Ud7m z8ou1M%NzfFZ|HiHIN%=OXO}A9uuDjV;x};HiY5n<`?j>q5fZlk+ zIh=%G?8|Oy`*=XWX3hBp$BHtRFQ(e3reprs7{}dk+x=7b0ANg{-ET?)C&&eK~*%e$4lBj%v9k!)DXebP(`C=2NjBCDwy?DV|>k%$r$_O zf%hx3?h{5mK!P=1pWn?*^SiS<=r)1XjSeJT4hK>Q`y8mnF61B|4XQOn-|5Y3{x|VN zZbL$D%{=zQe^E+Qa1=uGaH&)16InAI z#p<&vTDJzv`-p@UtC#vxzsUzYc9_x3*>Mel3t^$#8*s_|SP`o*rA32jGS0pHx%ak7 zyz==s-7IWY@ZLfeDl$5m$bI+45`T7+8Px`(dg-t$qZhe{m&~e62uND{*S&>>nj?#s zK(EN|>x@kAKAR;s5#ONgoH4HSVEsz|?zH&f)6dS%HT)@ zcR-c@n*JwSe*WwD#n_&C<*C|T%9_W`R}&#%Q>*ynC7G8mUoRfbPA*AT3PBh$eMb%4 zPJ&5bv%$$ZWDqazo9>bkxL75}&*#lcePkl7_Gu4y9r!+q-9=Lt!=*5#*$I7cOm0Wh zc@SrHL%9~alVf^GDM+e(WIaR3)Mt1BW{st#D(<=0`-J$ikKIt9NM>=wt3DoYwysuF zYfO?XI_sB%Es$Lw3lm@6KbnBBo7vXbBxizx^j9rmyz4VH!WoTwrwIeMT_KhUYg887Pr4!3D=%a_&MCpw-p0n%f%@1hP*_FiraZbo0MbvR93Ox-E0rc6F z@Fh7548>4zkRW~vN!5=ES>SDlNXo7dlIMexTdx&>*4T}!EK=AkVlV& zH_I3nz8EIR9=ZRuVY@9exTgS`L9_67j2&w+SbYfmzDD15Nl2|_?=__AAwE0jwf~8* zHtQEf`3~GBk$s=~#^a73mT$6j@;SRV3Zs|hkDCq->-*NQww#VxMEW6yx~f7Qu)pLHNg^CpLy8y$vXV&eU+Z{%yiWx(Ht=@W_#;0Ru~wsJh3z}-MPc2Br#m``qvI2 zfY{KaB@@npDNJRHMmdfI{Je?m+(lYJisD{g%DqJj)U{9l3QXYvskU{E5j?%aV7PN! zPc@@24L{XndTy~dcv%<0cd4*rJkGULV@~nE{)_O9`I|709P`ZM9mNfy@c=4sqMNYe z)=C>QswivUUUC}Ly;q!r?DFjF57oZ`9K=T~$={orglr9b6Kz5q_GXQ)Ro@2-+;l%q zmwNo5W5-b<8a!YXD@wz2CiQORXLPTl_kFz0I(%leT2 zdiX1EzhEQ+xyPTrp)Aoo45D9NMJS*>K6TFexpJ$N-lJ}vnaa6RZuwS^%J zIdz`rr;f7_-oFjA<+o^++y!Z+t{cevDotg5^U*|;NYDiSK~1KIF3<+huw!O+b7MOb z*Er9B)lPjZDsyK%z-0gSEZ-uYK=4Y~!XOVBYb?8+J*`*?&S;i=KKt$ZVyF)W@u#h0 zC%N|Rgwjowc=_efQ1_B`l_rgiP#{-?0$L)Bh26P9gvc&6-Bu9qS(pRV_H#`8_NnK1 zlYK>8CD8dPCE}t{+B}BEPa}O>A;+|{9gvaFiJz>iU9(SCppU~dPo9rd&=^VLkS}K3 z=O1~)2X5nIw?DJhzQeWZMcC^4RZoNJxTdQ453Pm7(@NSlj!My3;$G2rmTws9G(&j2b7C1o)03ipz~vqt;X zpMO0K`usW2j2V?{Wv`Gnmu=XABqOJ#x7_|So=FCvyQ60=q3~x3UVWIblUc1{@ccoA zD%IM%LPiY++C|-bKK^H0{!`rxv_}J8b-N+&@FQc$DM{1_O3ro`E5F=}+^&*vq)k;o zyXqXa$vxlL=MnBtC65lxg`E97$0T;j;m;^0FkLaZhQ1Q5dkNI`(awgpAH#dG%JetV zok*bj6D@*%*B^S!j~HEO_?jQ$9~HB&7q0%;3~Ck=BSwh;L8DU4QO6~7^|MjuXxnG@Z z+|CcE`IVL-9`I!X$SA4u(-^I+A_L;;9kVA{6{RxdeT7gaYVjjgj6{p{l{`bUrwcou z3S0ROi?~hUdF+U59huv+$a^9gg(F|(%$)C`uSV1ZGq?sF?HdLt)WUxF&ukL39~1aY~h&DVTZ~VzoXV)CU%s6D=wd_APTj zw8d+i{%-tj(A>c}dTU)KXo7Rl-IOc~Ox=D=;YeRekjg&M^_-ce|loLP~o` zm@K=m(OhA5cz8HH{l`QyZWhv+EzT#?aHVF)CdtxDXrEhW(p|XEVn!c4-|c%bqX3#G zl>ll~B4<@P15L`&OHAt27;Dg!?wrjHVVAYLqEo9~Cdg3OL3&C4vb_G6w&}L8w>_a= z^%;9F{P`O%_1GY}$EJ^^f`{ZUZS;gi5@R-*O7mX`x)o$WhIl%>^FU`Bv$;_6X@Ahh2MFMx9M6V ze@24AtIPCXQ2MSedhwr77*Lah;=HY(Rp9I{M6!V^A2OD6+W5#ZvEX2>nHm(N`N zC*pZZLGEdYqLMVLhZ-c}@{iHkQT2cDU(kRJ+_=e8paSUYf8G*2tM< z5frRmSzF=uW?$^YnVa*)TH+^))_RS}7dg*VB+HwLSrc+`K;)kU(91Q?=R+(F6@}F} zobB*2fn2a|3!xo%K@-O6w_Se(inY@-b9a5Z-FpHkpBKzf!3DQX`K#CCtkA9 zU@l?d<)WWt{&wGfG4~o1d@ME2kH404ySN`u>j0&bnk5JHaYe4GVNvMPAV1#dBy~ z6;_w@w=l*y(|vDSYw8R7%sF*)I==EnoPtfL*RA052>;MC+}!UFN8*^ay-#N z!Hi&i(BCLBE>_%xGodRtb@63zkC9Ppc$T%lBy;LA5o!xn8|U62F+ZG2FCq2a ze*=0T$PS$tUrDyP{+M!_lhYVU+QyD>MpeUriFnkxsRg%f_t?@AJ?G4zmdljL+EtRumIsD_Y}br$`FwcRqj9 z0&zjNNb+t}DY`-Xi^jZE;b8{QB9O~9Kk_5Ty` zJo0S{G4Ta98HP?sDg8gp$OhDecKm9uO1Y*_r_P>2S_*@wiYEnV9bwTcN69JETMQ?K z?B)1ZzKUH*bge*8!bO#e?RU$V$H#3vJ#G$C@b>Q|Yx4%O`zAYpV^41RHUJAzq1#pS z&2|H(r%NdbdQf-axqAusyA$j{{}I8Z<7&bPL`86tO`^}zV$@V`|ESqpxLu4A@NvNH z^}f2}Ok|~{lh^@B!G+b3A$C^sb~B^muGk9X|%k6*Z@7PCU*#AB<2a7r>Aa9~Kc zk4-H^%ZBwRS*18M>uRp}M^22i-Cx9O-?B(}!~aihXZ_X2^S=F-mKF-MxO;K8;Kf~w zI}|7`#hpSau0?~p6FflB7D;dmR=l`Vptyeb{W<6P6P}#>lAN6E?#%4Y%zaw;Pg zUFurp3-S2HzU{n^ja3Ju7;muuqgm)b&@880)x67S0)3CNtCwN6z}&CXzhPE?VWmH- z>#%V6YTTm{KpvH2A7#WIDM;O|uR`)$@>Ud89`pGQl@rjvOy)CW-ZYcIUF&*Wd5z*X z?1|;8NH_20J|8TYSX*1$dU#Av;bd*SDq>wb8!MA7$Frq)jR>W}H0YfN6xuh%tH%_D(zjoeke@%$bj27WKF{L1;*=;wu5!||dL&3{q|q5aYrD@|BO z(DfZj+ue9QlruR&{8avSyu) z#ka%B0vbt8=5k_W(hQwjIj{TJL0`_(gy@In&)~BX&qoV8JI3S*M?u^KC1nw%S;FEp z7{5m54;zMb=2A;Ye`Ur_umid7<%srvc5#kFSY3_yO}y24mw<~X*{_R^$LB{yi}$nl zS;>cj5IC5oL2YWYfkJQhZWPB2=q|JRw^0#{Q3o|2;C0Z>%1MsY06D#F7I=JL&^C<6Qt!TZSl#(n?oqxaEE;i#_uiw4V0?80w(@L zDF-x<+ffy_lE8c60z_}*<|kYs6;%++7MVod~C+Be2gegBC>IW zYr^pi!rIMvAuU@MG;p_=)Sj98ER=@wHAakJ`)z()6D> zRczT~zCnn7A(CBMuvWCS&d-`p^xLnZRA-_1EXyU@&^FFI3Je?v{h7KN>An;K{RIUT zUdmzSmEAP2gO(QjWmJJlS zsD3zv$cbR!CM<8D+vlq7a(_}XtN_xdlnbiwEe5yFnh_;f_oKjL`?NG0-3mTI`yUtk z+by-7xau|$#`^sDxQczX@~8ky%HvH5W0F;4`Be44P2bocsv$WnQudN*0*dOKr=TPo-_ z1Q%Wb$kL+=*?;(0C-`oLOd&_824>05^!w{b;ne&~^y-&GCk*Q3LJHD%-rH<&DPvMv zCjg$zft7fP3QnH$KV{q*65jm%wU$mep4*J5WJhuSntO9o;!lT^#;M3E zhr0g)#fP)hN7`jwqRm~a{xxQS9KFe7G@^#L)x^Zv5cw~WBbr~s@K9f4!8xCD*3H?u z2~fLIV(CEtP)^bn=*|c|$_NXvR~%};at2DUQ8+mvbrQsOy>}&+6N(Cf@1HNH%LfU2@9GY zMwlM{DdQb(uG!y?rkFRyTsg+ZCyRUfoc;c%W?vNdN4NZngQn6~F4o zf0FG{*E1y+UaeUDh{)v8%FOidtQS#7>XVFjV)A!y$p?O4rmg(j)uJ*}S0-dn5!DBJ^%<=}{I^oqZE3O5f;~ti)s7^Yv9Zm4s+sw-TBxRV zA-?~)Mqvfo7OmK0EcQW!=9WH3e@P5#VdqKl91s(KCSD+ht-X?;&*5+5rVvq|V2*AS zW}qlG4#R0^>rUoy1C2%_KF-5w!&fTRakNwg6nlHzaVRMZRRywT=1f0!+P@&;3&rF3 zD`h+<7jVy9*f{G5xTvJBi-Mb0KTQTJX z@l$YY;5d-hKA$8Lld<`E3_?m#QBpQnW7SR*7PJa-5tkJ8avKW%%xx1!X;U`D8^4|= zhLACJnMXAc${+$ZKK0TD3?qZ_Lsv1aY`TQzfYPstfg?0enH#<{AKX@q{ zcjp|JgG?o_GaxF6Xr7CLVny3dmJ_$1QycelywP`<&tH??e%rshTspjn6xgJ#IlT_H zH=oQmSP`c;jq9F8yd_-=KFf4|Imh$$IQ}T{!hccAYdTnvjm6_@?!cq0)xqDdz*pi+ zCz5TKnXFqx41QUb^=%z-nrw$=)iOos3!R)&uU`jx1e7Q4A3!fOBk{PSRo^D#lDrRc z2XkRP4C2zipM{9i!TH(4mBQ1~8D!rp8*A`D#J_J2!<7{>R;BlUJ)0cMiJyDtT9f6? ztV6pY|8}6n@>Gd=!LHj%G8;)&$Ydw*!7h*1K)f7E{_LOM6e~VBO8v)vfIZ@;q>l{V zo<6PQO!Qia94<*i4F&+56&h41KJoG5?&nr)Cd4h{*HTiZx?Y6WzP5?bd*8DB`2KdG zrHd7HaY#N);r%cfO6(?gU&#?^vo=zjO(1fNZnqW85E^D8|KZ<$s4c6aq+0$O;GLqIUCET&KeU99sbCV0=tMF3Yn_`e5_8+o#vK3mJjM11zy^>+^X z_h-^|RDiTPxa!Vf^}eQP_%5a;fPn;z@KG;=d6a-HQhVyxNJvShEapEfKW|*k#GNW% zjzjxqPk6jTn4Gzbk`tgnUs_`Ed+)EMep2NiOc%)lQPs65a_P-$Q%aAPg60MCS2-*> zKr(htcd6+a%nEN&^^!IJW@}L3U$>*$`EH5eC~nebw|jVym(p9&x8Z)|HPAjJWI1Ud$`! z;a*_zHG9yHLZOVjf7rz$r-kCOh^wrsnUFY%&F%U-L?X0L0pBd>z$IQ$F;4A3K4fkJ zr_vhp;PT4<4Qm|F`tWZmLfBkCcQdtGAW^EsV9pU76+&btXoIc3U8zq!@r1l;#RRtq zabN-5J=RYAVT?bdtNs#^mkQZw9FPb-;Z#ouf>{hCrQ{KPuX^;6J!_y+ZV1)+>Lw$B z=M9WKi%n6xu5M;bZB2Pab!g?oCcPTPq(uHhoDlE0PEc@Z8_|UJxYUjDKc*imfBKR> z*@)^@JE$yrjDLSFoW+UD`GDA|Djyu^p~L~NcpfU~^p`wm&7$S&5E(}z1O6}ITIC$aM=s*dxt zhzVFVR-CwG`_NVlrzx@;3Hkh3V&GU>Y~UMlMjPl*cDK$|_Z}@nUprH~zNjT_9CQG~ zt4p&+N%BZEknbm1n%Om*u04jT3IdONwUVJ)k>?ZBFLijgH6c>Q6LpbsI4J{f$H5i} zmgML$TW{Q+>-8CO?yO&XhCPp2V40rPgtU@^InoLe)A5gw=75b(I(Ijh8;stBIwi#H*c!dAF{UdhbU9cFLa1;O)am zLI=B|!7yb23KBPxi*n;jKfo2t>$I~O7nd}N56?GcW9^G~dXv#`&@?WAxtGM@FITP|S94Fc(T|HB zjkmvLm^pPU<}j404~rRK1j?kNahzbSmhXQ8b0;HmmJCn+7hn$zGtcRX(7@6E`%x*{HQRYW8Ex+56tEhNOsD|GRtm+IE1TO&>rxu|1b z&?@Ly@MZB)lT`WmC1kb7_7UiQqljWkPZfQJWx{MvPn>TGjcrvM4yBI_uC=uzl%SvC|TEqP;MO zzN0(Zq0G(xK^y4kmc7)oi;N&!aP!>cg)9oNP0F-Q5Ej(^dO9K<%KEQUwmAfFhado! zL^#qcLct-kX9Q*Z=e6e9O$kw_?3<=kAj_5^%1^Y8yiO7ixUO@;%`qa!b3Uyw zOP$MxQ@f+c`R-Dg4wWKfd7NrN{!YH(oe(qXeJ;6(m&%)FA{rX~$vSKEHCo*cAp4|L z36Of%O>K?a(l^pW(2`4oYBr+u53sa;Jip>{4Zns=Eze|Jwvo!|wW-SVed)xv|DKT! zcwhKjt`!ioo9N49U6ekjL9d=>#UXibrd8&``kL=x-VujUq+DMOVy)y`xoB`(V|TIG zhRs08Q49nb@UcUVRw)=5e=Ns6uFwDA_(Fr6!XPYJnibR~+CN`7J@>TRQT%D!+7pq^ zcLRm-(PZWu?PJ@4)LzKH)6!?#idOFJ30Gbkoxo<>^D<$gNxy097(Ly3V&UQF)L6oY zWU9vsgesCvtSJ`x*0MRgmkz+H|1|yv+p?(Ub}Oena-~5|thNcL2(w@$d^(M%cKZ4` z^Xp~oof9L?Li?p$MJHT+Ip1cC7dxniI(l~vuGAT+s53Q5%_JDPVZ2s*!Y>^ z!(Ce#=OdXBPNB~@3iI#BZfR{M?7iI(c*==G?)T3>n?8g2L3`|6bRrG|l8ULnnj!=B zBDo}`kv!^FzEoMHWfXT_?YQ9PqUuR?D*roLzrRAuX~SB^cShVThoQD8y**=Bf|Mo( z^`RA!iiTl-ZUp!frn4!;TzVt+P8oAk#*IQHf_5CtN|V(D&DCst-&Z)g@ifkCt|Y!R z`S)FML7*^6Zv?OA^!TlrA4=+DB*Zn+i)TqWQ#R8P(?SS=Ezy26R+-6sZAbsn-u{@^ zc>Q8rG<62#jQz!_tYSkg|D_Z|+SP!M`i$E{G2L87g3iVF#G$5?dnt%UUhaXZ3O+89B=LW$NP-+pDVn z3=0aP2gfH`4vm*KHnRe<`g6OWnwLIab9n_|JSj{Uw8W+tnj)0u}4LUe*``B;%ng-=_xKZ`QWTcYOBYsKk;~1GY zt8Mw!t0oE&*pf=p2iR@QmBlKNxwv>e}2eURbAqRiJ{ z%Bs*GZrisj!rl|eP50f{*X5%pB^)Jw|j_6{3^}M{vkyN(l zhN`NyW-{UUTl*qGEvem4gGt}5s*~V_Glmf)i%C&Vm91k!5BVM%zzQB(meK%ml3DaH z+1?aPv8eut(twdM1N!P{k&?SYR$5_eckx$^nuFbB<*$Br{b+UZu%`S+DaXleyo9o` z@h8EK)rh{9gVZu?Ey^KagLY^j2Q>X!@Cr6uvCiDeGP0il+?lg2EVrm5GI#xgvu}4b z2=8Tq=Ooywb-$Ba&qyv>`Y&3WT5En<` zWhH!9g>3vcIx-qCK#dddh7hjW$xurNi4d!_4eE2!^JHcdw zd5C0Oj=~k}(iA^BGLhmV9_eL67P<)L=zBR1GaDNZZ#w#{gSTbpX*A|^n4j5VaLGF{ zRDL*C8`BYI^;f0B_s})WGW}_G-}{{HG$IOh5pN=F@Nnhm__);nI4IcpVcUCZ z;Rorj9yt+YE5`ylPCKYA+rYIK^cJAi8dtMsW|eo< zS5UPLFgVRgytvuY=2SK2Ngm@#9)Jv5ZKu1n1t-VpC&Mplg!_kQ&eO_$KxPUTQaGvn zhM_}8=uQzi5$`63rHXAtW0hCWa!Wi;_s3$Lux$j|l2iR((kIkpd-iCDL%uLtH~mgS zT@;znonC6fH2a9{DEbxHk{5{lebfoJZHY>!ur>8W z$ni_Ew#tIofktulri}j}yn3shAYTY;j>CGAoayr(-}?O{G|!*{n3`$lrfX-E^qgGl zNCD#sOQYy5;C=&?%Tnuo2v^$+--nD9s(zSUy0u1mH^dt;fl9{V>a4oYGuvi?2I_)L zB%*7z7Tb!z5JI`t-0bTW*W}ACao(@Ld+4es;P3mW7;%+U6&MU;ic5^gVNU(hXK^MA zcIeP4NJDtA>M`V_&%r{%S$aS<7c%wU-+@TZgleM7jq565tjS^!Wxf$f81HZ-21UM4y=cXrBxleasPETUd6?;39%|3eVQmP0d zPozmT+T?*(yO$c={~5(NTo}Y}5YM$Lv(5R=NI|h#DtC&nU;M>; zCxEv>ihWp6K(lCPRL5T@0S)rH;*5#52|6-bPk*@E`qxajCKt4t3SvFRwnuB$B7z#9 z9`e(We=)545#M>wN_u~A#l-I$i4ynE?vzYGBhV59#Mgv&;1~LeyrIx26Mr8Y;qgnJ zc{mj+Zb6sFe8Fy~)fr0xnO{b@Rt{3-^8C6u@_W@f!|v?W^qm7I*^~*gcN?4Oocb1v zs)WMdYsm2nXYladstkY_`jQT=A3cKocPA_Vrw$hg_jfV&)18lHPSU2)HvVo)==eqA zeul$t=#ccaOWZ2U%inK|Hx6pLk{-c8thRgU@ZHi0PV2*g*`v6}SrjAPTrW?ptQ)-X z>5)t`k~WCUOOsf6=w4x;`K5H}{o`X~-ppXq)>gUd_>pt?GF40V!BJU%T;!-n@JhZzFzk z!Y{nzS*yrz(0xi|e92KiUUCla8vj_G^rZrfn^in!BA&n9y=rwxgf<4Yh!gZu-U-Mg ztlyPCBd&X1z%R47zmoRf4o?b70O$Csx|gwus275hYSm+dYsxre$ucsL1;M)~laRa54mioeI;=kNn5rTgX~hQZ(!{>dBmfpAs%Wwf@apKn%%urI&+P*#C&FFb9K9BvqgA?*+*X+E))dmN(;e;kM%kA1lOutW+7zBu@myQTQ}MU-H5Y@ti)p z$NY#gH^(c90VN@K(3SnVTzp@vx$fI>!KA<23RF$9Y4n=SB*F$PUWq24_3?W#8@kbP`#v9w3oXiWfxpDC} zH+@B}BU^LEtm8rEe|TR^qV+Gv})teMC14%#K-=43k3Tz-tV)H})5E@479Jqx9R=m#kxYy>FE0Rzu30=z zh!Qk=V9&dUDbC5Wv8Gtp;L;sn=slY1acaczqjvQ4(6=YyNDI$HMZcaq)%bbMDL>5u z(}kw$*P~(wWBvI^o3iHO7(T-cwtT;}vzob5r6p=g2eTit%s>>GFOAQn}{Dz~o;p>+YHIO6FRn?5rT*L#2^@L94wyQ_9eu zUy}MIO0c=MLOOnvPuKkY%Qkto=TrGu(kEs@bw+PID_rg9vGeP}d83iaB5^fK;%jA3 ze)Y+h(Fs?x%KJ){LO^1TckvAsy}|JY@i@*C3$!_Dc}2HU34-;T{rH30zg(JWY|8h! zPTMa80@5ji)(1Ba45{EzXHfN}dxOQ79W7`rPh}o0;!>EqGtTlta<2TSVGbP{^m&|3 z92r6!Y>qHQR;sWe+d49CFfse~XM5fCyM(usQzB-?iHhE(7N|SyDTPk)$~#lE)4SWK z-K?KaP?sM6bH0XO_aw2%0~6=L>JdI<$v6 z)O#{ZJ{gWP9BfJu~h@4o_+F~Zz1$D3!m9h7jAlV0|kq1h5@JMNe#=qzX|id~tF z+YtvGFS8p3_L^8ryl4f~srH?=-;6ZyvxipIVz zh;Z-WQ^spt%D0D;?#{0VTC^snC)K?<0*bBJ_7GpsPsJxcTs;`}8P82r#T#XK8FLY* zkhEg|)u2%U&d>W+_31syPHmV*HuegT5UIb1KqRzXv_d4Ac%CcgEm>WtNcjB8h(x1d z>t|A9{YtY?-Gg*?RG86ec}W_k bhF)FjS_0SII`Is^+GJ%wK9g3jl$dWSQ2HX1Sm zjRP{|^=8SfcL2af#eY#bKWW|#nDM_W!ubj^35 z$;LG>V5FE+q3`0_5~@~Q@!fwjiIu}?X@IyyyDnvIdrS{%4yc<%X+s-3C1VtcXfuIo zBZdk;hXs|<$foB;^IOkp-Md9r=(D~$-uC<)Cbf9+4?E1B0v>hnxC9o!06#XzI>C-P zm+tLIz~LZ!x($QwonY+eQmC!L`WvEv@0(sxGQJQL-0>{r!xxQrolhxtwLaOK8Zkr{7$4t))_7wjrT(Q(0C(t znhPGO{6%&Ll%>fASv(Su8e1{j5XqsYffGw1Zo}cIo`6z)bcO7AgmH~)%f`HO45-v%9>9_r-{yT?m95&YLhUc9ZI?gDF|i#?0|0IR zn|c^kK(?w`6?XOff7%YuemJeT(-a8~ACZm|fV=iK$ToM??*p*+{^PABRacSA++|X! zv;m=SEy&XzQdUS_@9|oQ9%#(#?HHk4lL6OPC5RFXC&i%@RQ-v%Qh}L5kdw7qB4F+`JaG;lKm3bQZU?E*lHJ6wvk?mP3D4~+iF|osyi^YM zV(D}%oY?RIu0A9*$um`$e%NU{R-eoT#qj3D58tMKGg`UmAX6h6^&3LW8BwC#>b&&K zKzw{MlEq?vvd{>eMmwv!wR6Oh>suYCeU3XWzfJh?Q4v|aVUfFF(DRD z4$av)Ol(;-{<+Fk5Umf}rfClC4oMj%@mN`o!8(r88!fPYgG|NVkigMnuKd042QEb; zDJ(^I!W_nu#~Uvw1YX7D%iVWBt`2!sda0^H{pcWoE<1la90Y)8W zayj2pq|FZNEMj*^N12!1TA&llMVhS8#8$NZ<46&!@+hB;DDaH#YTZ6-{tjPw+21%U z4@{f-@RqL!B6d?9N^nwecvAwzp-SOJSt&*8E9Z~dhG1u3Q6-}%(G4F*j(XtaFOiFY zS*m=|@zugMVF7`9`t~PdVKTN^{yJN50>FRnL4K8hHB4$ih}YyGcRectQ$~K{;A7_> zRkFK|fN539Z=fzp|2;>}_^wjzH-EAhJkca^c5q|Pqo$cLd{m1`V)NG2bUuAZ^JN@SmYHg}ySE?;7s1z)hm+1HK+Ev~$B z$I$%jXO<+7Xy$H9G78nDV?+A(SmZGJ;VuYUOkQR?(!QW3#dhjbrXlxQf6k3Kt>dW| z98GvNgA1@>??(_jc5s)tr%iRsX|66aL*(paYCdi!Rs*3QnTG!aPzv2wLbYt9k4~gT zs9%f`3U8C}m^5WgBa4z<fWIVEp7cq6tS|tCETMmujhCkZ|9#t!{cJU!`joDu1xDhzsRJ#`PJJ_Z*G^lh zJAyxVwfem8_381dcicWaMy`EfCz_Nc!w}FrCGIPx;d24^DnVHvLawQ6;tFVDd9M$z zUxmApI9spt+!O6TUmsSN8A>AA#O&pA56es5-alqU=;%W}^iBJdr+GyZhnw5KiYYkFJ|IopR4_0l0JG1%#F~s*<;4$>!>>eWEO!WIay4xhuo4uP(EME16-;5yV^5YcZOF^qw-=Xvcg|Ay(4q$rymkwGu$GtsvF! z%fRI_8bUPWR9lrAeyX>wq%`T1PQi8A5W=`wLJ7f)`OP+TCS)|E(gYlFTGY>YscuO6 zHe`-%dnU{v_LR6Zh5B71H80>B2;$wD93H774p}kxi|Z%o^Ff#K3e{W}arDJ(Y|qR% z0KAG-D0geT8Y34!Fh11hY&XN5BWn#jBAiTzcN}qeRh)s#MZ8x*`NBs1*>~hJo2{QT z#gCWkPo0>fpEFveXO?fLfyb5up=r1|Fq;3rzU||msQ%K1QMtd0n|cPk6lK+9YNS4e F{2#MM3!DG| literal 0 HcmV?d00001 diff --git a/src/assets/images/maintenance/TwoCone.png b/src/assets/images/maintenance/TwoCone.png new file mode 100644 index 0000000000000000000000000000000000000000..92790e16c73159fecac7c9f07f192585a4a8024f GIT binary patch literal 22010 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

}H1DtZ%M*^Y@87 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 lXz4szR=7 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 Ug)_!BCIA2c07*qoM6N<$g44ykPXGV_ literal 0 HcmV?d00001 diff --git a/src/assets/images/maintenance/coming-soon.png b/src/assets/images/maintenance/coming-soon.png new file mode 100644 index 0000000000000000000000000000000000000000..c13dfe0d147070726b6750b6ab51914e13ee6d13 GIT binary patch literal 112259 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�Bfy0{q0kLwNjdX(!A6JyqbVo@ug-RP@9fbqfTLd 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 V=3#xncvt`c002ovPDHLkV1mdyiqHT6 literal 0 HcmV?d00001 diff --git a/src/assets/images/maintenance/under-construction-2.svg b/src/assets/images/maintenance/under-construction-2.svg new file mode 100644 index 0000000..95b8b05 --- /dev/null +++ b/src/assets/images/maintenance/under-construction-2.svg @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/maintenance/under-construction.svg b/src/assets/images/maintenance/under-construction.svg new file mode 100644 index 0000000..576f362 --- /dev/null +++ b/src/assets/images/maintenance/under-construction.svg @@ -0,0 +1,353 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/images/mega-menu/back.svg b/src/assets/images/mega-menu/back.svg new file mode 100644 index 0000000..d5eaf7c --- /dev/null +++ b/src/assets/images/mega-menu/back.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/mega-menu/chart.svg b/src/assets/images/mega-menu/chart.svg new file mode 100644 index 0000000..8d4a7a5 --- /dev/null +++ b/src/assets/images/mega-menu/chart.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/images/nearle_launcher_icon.png b/src/assets/images/nearle_launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..91bb76d2e71c227be8d0f6915c54fe6f52fc8c15 GIT binary patch literal 4833 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-10.png b/src/assets/images/users/avatar-10.png new file mode 100644 index 0000000000000000000000000000000000000000..7ca1df2544a8d494bd56292b576ec480f38332fb GIT binary patch literal 4527 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-6.png b/src/assets/images/users/avatar-6.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e0bf62b6f675ef1cc11f21e533561f20f8a5fb GIT binary patch literal 4784 zcmV;h5>M@kP)Q(kEyNt2L-1d?gWQ2JM(own(8`d~U! zI_*E5b~c|(1 zn48O@P%be@45a2Bh2LRWLpU;3VV^k&vv(NbWB-Bj@J;Br?Gd!QR?Pvk|M^!4zVdaHOGSjk5gHvwrBcKEd=`$| zpn*PmQfc(|_8`I&pPQRQfkrhPhc58pdJSkY@?R4ArD6%ua2PIeL5!EzUB8Jlvr{O% z@Q+A$cf&O-ByPF}D_N`JfXd8CIL|-MP!6J_qmu?k82%o@R!H-@&eN_kk0&P1z_J49 zNW{_A)ye<2v9Pd!a;3^B@DMPAj1ZG~-$27{^7R^~XJ^oCHhF&+I%6IBUbR%kd(A4g z{rcaaYx|8@$yyZ$G>RFXSPn)r3W4!TrJ{z|K^r0Fwm8IfT~wI*h zWE#n5w~TCtWe4aihJVu`HqZf*C;Z2G zLLLjbJi0nNTVKYMsMM-(91VoEH@b?t`r3tEhq1( z1H>UN!)MVID1H0)(Y@!Run4^8-2pX*V69$bK3gn#VRb@2pJxbnF!!U#7YdrcK^kvL zDb&q3)EF@$K;vzKrKE9{Bq$WN$pIWaecr;dNGA|KBs>h3!=`@DQ;_u}WFXEfp>S+J zQkUO^<*pSwz~#m(3|lE}vg1fJ$~=}lmvR_pXdB3}3dC5?tzbwu?ULO&Oc$3%ilYR? z1OZ1)5q?jDj&NC0J#qz~e-D@eUcxQN7AKBg7zf1CLx@Hrda4c& z)?m(tiTYBzo0T#*YG{}{d{fw-OM{B#iaH|7`wSXUDOVZ#bRsK4gZBx4@EG?}InEOG zpKOeLId?<(TP{egjXTB~!p95-L(DO%`^hOm8f1eXnO zLMItvu~=4MJUugwvG>POVVE1-e2%?=guDQxoUYSw)o_Uh0ZHN>jci#hSRrZA%6vo9 z!e<1i6Uy_*kG+b{E!Qq<|0{Mt{*9;TgaG1fWMy5*`8W076e)*sP*!HzR6aY z)k2vcyF<3cgN&ebI*pM{o3LxgHvHuiPvXq{f>s4%@q7KQek2BWV7Y5Wijc|h4sP6~ zv{mvqPLLZN98|WZAO-0F1FbqQ#we9Fl*IgBSS7C+EsHd~)i!)(&b%S1y;abL%K;TUUYq_!*=0O6M7+PRCd-|1wI59qn29H=$Kx;MsM7h~7-*Yzx``4W{e5ta_suB60 zd-)ZNoutN4YY*J#n^i<2!J(5pf^cnq0(Ptm%Uvsv03j#* z)5EgoHATv*;lPnGbgx~99b2~|8ILLe7TDrW%*~=&c39r(D6vNfuvKmWqR|RKub1ogiIa+mk}G(a^&#Q4*?dYT*XrQG7$P(Ufn6937lRzeO0h>fAXh+pCq7sV}1Ow8^F8spYYmv=li47z| zWS_#3rBUj;@m>Vl$o~~NU}RxGddxDu$u2A^Q6Q)u5SmKH$IV$JGNJ;BaRO@M6qU6o zY)a#_Bx=Y~3Z$gQ(ufI?Uq~k@&Xnb<^BmFYj$c2`>tuqNNa zl{4SLFdLoe$SJ(4wY=4=Skj!(;2$4)3*(bBSjgtEzJERT>>MR=f8%{ z{<96x@7h;3_G3Wq~vgb73o8KmqchWe5y2qJg$(annaw!5# zbnyG`{qPl-JN+)Yj{KXB+Lyc9N`d3mIQB+uMQnkoRCiKAOaM?ymc_{E@+$c2KmB9Q z^~#u^%TX9jpd;B!C71JoDLRcEo+-I4O`+&rbW)AR-S+th@!Fw-aNaqlQMHzx<kIZvvv8S6$S&yhAmUwU^zK0#>} zG8o*V@Xsys6N6{T2=s`DgmsztUqDB`LpB2LndP9i0w4S;K|8iWEM}@+pdN z4~HkoWJ(2;Y&N5xm(iHsE1!3L{j7AGGBc1VQJqyneuhL^C%-#JVpOCyKNa49c2?UC z$R@Yq*>MLGWezIqUaKo(C`)LHL&OQKNlzI?Ha=w$Jqd_1Et;O1(k@R@LbSvn^M7)R z<&gsxmkw|^6m@Hk_6@EKNu1V9QJo{=C!;`|)JY9Orp5=&4e+B$w6of#!Xk$q`QUFe zH|yw}`#oy?)9BgX2_%?#wZCm13;# zK?G$&f)-NGXR|u(k$e|fTy*?VvcaS89>wujUsdpoMq}8v{W3~vhRz7&bj8?E$VQZo zTT+QM9q7;^9Tg;9mWN56sjr9I(T{f5s*J~-fn6vc{~qSDd5sK{B&SlhNo>lT4Hh-T zedYMRw#o5$0$1<3hQpGA4nktFxDG(7G7x3t)Y$Y?m@;wZcYxDnL0CyA!2p>a7dR(4 zdeuWXLZJ0V_o4l#16IiaM&CAMeX=^{uEp@KF;7LPlrZg}Ubuh%A(WZF0(w4ECc^UB zAs|RuD@6TZnk}w&cQQbgQCXv=qxE93LT3iGd2%UylvrJ6c<*Ge7lG}!p4F08vR1_b zCMj+C@?S>fjlV-soFLSg8RM!Sy7FO_^mH~1`gZiY+j~4zN$#sg)Aegg5t<6tM-KFsy!s-ZNCEx?>xyF zU6Bs36bLO9Lx9URZ^GR-e-J--?uR&d;5EGQ`hLiyzaeuz4o(8v2sQPYKoL3b{n)J- z-8zC3l){SqdGe@?q*JNFsdKOs-jyH!`E!6oLGJcPVLtf~!o?E8%zG(oQo~DRGhg_{ zeTZ;Ikj*T><=+b|jYWC-!)xgR9zkGyu7DeM@5HZu@(wmY6;+c&IhF@1O2sOQr5a}U z+z%_!i`81I`kbKEvk|k`Jq+)K$8__8`ayX-h7Aq5AU?_{7<+e2Rpib{RCz<)^%T`l zllR~9f!(o6Vq19(sWt{N##QJ8Z*Sqr%Z6*Q&vMakn0L3po~5~2}AA{H{) z1rAke1ic(b;swm_egO8ayW4&e?58c`T>j3GH+vkN&;AiMMjP6-$%D~NilWtW73FGK z9{gfE+|mPNY7`0uwXEeSfzRiQnDi2;-uwux{`MN3pJf^6`j@7fwKBs0@|)Ni&Z{V* z&jjiWu(`Aaa5sFi%5#zH|KBn${ode3zAiZc7x}v609@qjk^^v&um1s`x?Q$hepPD#0000< KMNUMnLSTZts}T?Y literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-7.png b/src/assets/images/users/avatar-7.png new file mode 100644 index 0000000000000000000000000000000000000000..805a1ec1b38fd744b97a73a047e09ce3925e3642 GIT binary patch literal 4318 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-9.png b/src/assets/images/users/avatar-9.png new file mode 100644 index 0000000000000000000000000000000000000000..2aeeea73c2706e09f609f1e329173669ff8453e0 GIT binary patch literal 4597 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 fmU9@NPu&2?x6OF6V!Z)e}{h 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 BhyMTo literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-s1.png b/src/assets/images/users/avatar-s1.png new file mode 100644 index 0000000000000000000000000000000000000000..5aad5142e16f581e999636b90b6498c8f769abd8 GIT binary patch literal 24609 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 O3P?#)v0DB^*#7~zw#Ib; literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-s2.png b/src/assets/images/users/avatar-s2.png new file mode 100644 index 0000000000000000000000000000000000000000..deaae9ee81260df9563120837fa95d19b97cb91b GIT binary patch literal 26838 zcmcFq(|ab&&#rCT?bfz!TU%ROyWO@=ZQHhO8&7T9cDw!F-yiWEWOChekW3Edx+lpb zLRnD?5e^Ry1Ox<8Mp|6;KRy0Gfr0vOth=71J#KC_VLxO-<*~*BEsC$B5_rS(eoVyXd{G0Bq>ioFrn9EuJ zeZ?3%0!9KFL?RN8LZezrV?ahohKWTkPA5-i7pA}x)JWJ&s3~14)_M%1r>V?-%nTq? zV3W=a1_>ewkBS-r^O?QM7GM)td{z1Vn(}^0`150_>EwnxC8jL1uMd1~%EDC!q3k#q~1`;JROaBK%{vQF2^jV+^@Ky{5qCGgjMdoN2 zxunqEs^x)SzveyaLEtVK`rHl*&HFBydEAc#@2kfFJIDZe1zRh>K_yH*J?LYFGx!@t zJsf}kz)SF7%^Ui9&@1K1`5_c9f}_B{)X`mEVpT8VuSDpQ3f5^NJ_LWNm@20qZV$?* zTD3uvTd)vgm~Bn`%w;HbtW^@L=lrf^P~?okRowAXxOheL{CFBb8f7TSj3x_s{F`zp zPxVrM90+c4l)U8h$*1)h`v$PaHNR6i@FGM3W&sqVG%`Mqc3?Qcdi=;aUiMer<2F?a zhP|g{aRN;%7gs^6LEvNz0}MVMs{zqN27j@t^|-mqGzQVk-A0s!_h$jUUVnb9xqs1N z7)69KoEsk@b!z07M_%tMFYw$oBZBuE>&X>Dp!b zOGUd8+)>C31EpxdL4S5`_ZOrhf)+|Ptwn!Xfnk7;6Vvu5{8AEY&<_pX5u`*rViX6| zwRS*8VLOOeLTco=;vy+c3sWUQ?#k`&y{G^dxIO(6u+6lDhe>RLJ(bDTD^_aLEwWPb)zLuCB;j+{jyi5CMxHyLRX_!f->-}Ph!8{+my<{L6bC# zDwZtU47B5%x(wH`YS>(JduiIeZN$_3!fw6%!ONTZo%YY?30PmzW-!$@ z_6-8-WUM0>1TXMZR@&&<62FDVX|It6X*9|h`4xS;!K|v?;9tF;I_c>dLBW#$UD43g zQ*5L67|3z=2W8r5F-|}%mueYG#)FJ%{P3NTbR>dk`~AQl%Bef=e@GYhY;bI#FpUyO z1O9b$tuR&UF)yMA=2Bb8Du*eMEUzeUs{Yq9ZLM*rb)1q9Faty zMiO}ZQ;%)?D_WMCH#(y64Eazom9xdKfGr{xSoR?l)ob~6A-A2cyqS71YK^hT)Z4h$rsck1bCItxuA;gd?H~2umTfsI6y!gQS zpFtLwnNAPo-QIu4bnyVNO#*wrkSClm|BDVao&?v;Bip!$9{UNLYbT1l8@WAidpoINThz z(RL@e&8uY};W?`3aU1Rr?*yIsK# z?Qj`q7}a1e?N0W&iQjR20-BsKGm&Y1AGB{h>__ktuAL^vH3yqH@O=Wcubp!+O3u`d#lrME8y zOz#u^ZYRRG8)S!Tg23UCD|oQ87p{m;X!$O=#8`XR$D?~|(^yGH-|96_@r47L-O{aM z;$B(Y*px-1^0@rqF1RgM zCzs?x7yTcAI>aZEzUee^k45Ad%EMCSjM38O44CpK(N_Vg_kSUT&t7gnA{?+AjRC zO(f|2ARjY&UQL)G(75E-si}TDq^oKCHO|&GpnI3Vh}QE*PoTXKw#L-&$?*Hx*6>F8 z12N8&FcW{Yi&dNYj&_7Na)Aeg1&0>kOM4_!7sR=IWCHEPv2ueBTcL5;-nMiPqV)52 zAt)7xs+nh~7I~}NuErJmQf;)f98yAWw-D5$VIRcI$6=Yxe`Xr*Ry5Sn%k#l1HEA)= zw^8B@@zi55$_aTtm@8C9r|xcdIp=u>6E0=~mKLBo7Mx(&AYhRhoF*)97f(8dU&-}i z;%f{j14gDE@7m|dXGmIV;HnLDgAjU+gpM27W@M2<`50V0ZG=nkByu}HiyG@M9iCp& zB^xd%dCt#n^S@jO$A3Z0?_NzuUqQq2Kv|YcA&{=e4f6YJ@-%mhMHpKny(*P8DNm*u zpSS4McQnJrp$jbd$4^c|olzCCTKlf|I_m@s9gSGb`$=5QC><)_h&A;fT`MN}p^FGt zG!x>UwaXM~gk4|T=QBZwV$i_KPJO?feHD!#p=89Ys6C`fjUo79v-g+bwKgSB=MKvf zG=(I|3sMhV!*dxw++F#p5x?RKG$NqAfNS?OLeQw!luITj@1qXOzLVpK4hZ_3W1Yk8 zw?r8R+rs~a&2dOV&kw2}k|%2;Q3>b7-mcUl^E%5_&AwZ{45gN7+9NNLPgWXuZ({0i zSbt=el`^wnSx=~TCT&W$?`cNbyu4&);e(F@|IcY-Lo>omiv76dD5<$9ot0(@ z1~oI!W;9Vn7vB*P++jTwP9ur-ZZ~Ah3m&qr=mvEP*7$_=fyc}V)wd=Us7!s~(-xWK)BvOlzTKx{Nt#*(CGN1E%LqlDRbbkif;0 z^ajbc19WZo6IHQaWJ@A<(KyJng4nSC_-K}o#LCo? zhh*>zRT$fWQD3rRG0;;bf?Fa$!qpDWbM}-K*sT_3yW4H_5I}72O@V86y+Y>7#YfFh zo}b0g3UUi4V0A*0nJWm_6N{y1o%V>#`}Ja=6g#2V2UX*aUft6>RORsR#RN3lthr20 z5QEjU-ph0-g}^)cJi!#D65Q?B7JCgPMO|&;*Qwre5%gR?Z@}`xW;Fhy;unUw}Z{oa3JHmrI-NFU*?FKm8XU2f5=pUy=w1O^3=0K5X$* zm?X<8j*o*WQaeNc##yB8o51i4b8pRY22^IJJwE}T`}o&E^yUdXzA2caK##VJn`5q; z58%xT!co^NhocucdatN_qGAbYlzgM-J(TOFz32aq8$Yv2r#~@N0mXdgb~4vy{HNV- zruEiybO}W)!<~`bLm3qBFq{On=#rZrf5Z{dsD-@NE7_hbFv72VMT=BfKys4AfRVa2 z&vHkL6~XY#=P^aP78qY!PVU9jCoPPCerXO#xeWX0uS7{*z-i;2pDXI9f)LuDfsM8 z$Ndgu86%q7eklT(9CA6$*SURg+r-o1i>)mpmwYt`;BhdaG1JV0$Gl)|kl9;~UcrG} z84)0V%L$&wl&2!MF$#9Jj*}0O#MmIVI#eIXP09JUCZO?YREODXZSnCu!~f(FWQhrh zgB~$f9|pDIDaVC}j`37Tb51F%EA7Au++`{M(Hsa}Q+t~%M@imKXRKh3NJ1&lrA55d z!Y)|!W_MX5#)Yb=t`-3%>nuIGOF5A(8>itu{uZs>Igjql`Yk%LBOB6q53>OxIYB;O ziV{y0X&QIK(wnX|TO$9d{71b*EoB{CQjrA1{XjO|J67gP9ga1F41!~1k2I%ivizbdi{;oAH4uuDW6f1gqlY^Je%U8!=JA6T{QM2UBRH?K*G@+M z!9q=NV|0tWw|K%(v0VikQCBWE+qT`q%L=eLDWQke{UIh_Jdtpef?ZdPbZUJ3OK}%V z8VgN0I|Og#It}3Id;p%m`{(aqkBOUjZ{1Tx0l9`>`HRER>;zEzJKJ@?a}&ct|H7#Z zWg7M#nluTi79H(OMTUpTyXsPU+T2e!leJD zH^)VT>L~B{0!?|+JLP&BUoKn+2RohwyX2M@pe1j#)!QB5VT!rIQXxqEfaVKCtC|&( zqEV;2#eVtgWSFkuUlP0fgo}41&ItLh7V&FHH?Q-T^|I^e2)JBb&C2T4n;{{MCxg}~VPlIJx+RBxct;Hkv_Qe5$bz>m z2e-sgfL)^_C{W{vaV6M`p4{&y#No8D#hUB~l97&|#f-6969&YF08mu!D6R?cTq6)J z^Z)o{d*pB0y1eR6V%fP}qCA29%lSZ7RaFmw@*>Xh8pdGH{oE${x6(iK%B=-Z6dOxi z+6>6h_9g6ntbY{GhuD@=ktD^tNH#umF?=P!yVEg?CukEV;m$~$Zd~UVT4eX0hMlE^ zDujV_q|Q%Zg-8ww%2lxu!DH2zIN5?mhw?gG63a3@z96LjFefk*NF@SrSd%wxZBTkp zCdF{s5z;thjUO`-)05LGw-g-&R3FAI?aPblTxkh1UILGrG%1=_6u8At6C zK+DTIZk8MgUX?HA-#^;@vc%*A9ynaFg?zdVX601NuSxXhjuzRPs5>N&DN=tW38IjH zmRcG|mJs`)4O!*vCxb9a_(@Wmw1xMnA^im{e{Q}#PS>F>im%-BITK)tNqP5yny<%r zb}-YEo|W=Dw3Wlm?IwccxD;lShBTH~7AqZJ4?_5d0><$bM0Rd$ELX*}+6m(HMl01W{spDU@NRv=KvnJ4O$TK___QL$yUQ{Hq4#}G9kI9}k|9(B6!2{}M# zxyTAiZ_Dut~$ zrtuJDaEgACWHFxB!YL*5*ZWlJgj*UQYltd^uBjL|J;}^c-65fcyh}e3x1ckG59Nv7 z8T2wK&C2q|LJ9>mjTcJcYvS0vc*$W6uI|`L3A^51uH2kMMwwZUI9TdMs=&y%=?k&r zWG%dwZzF3&U*t(_NM`;CbaHja)f*1$L0iqABNl%V4UU4 ziuVG%n}VVP7eI5237>vFeJGfP(jpbx1HbWtw-u6U6_7|*jq@z6$}X_74z zSyRq=E)zB5j^^SSDGC84*ddqb_x&$VAcYuR@Tq9IIx~`9TP1!e@xq`4c%B&mFB8@=ZBE*;zJoTnSX3cB>8LJ$xnz;3PFuhFD zAa^wr{op%t_iO*BI1(eE*%3s`yF6EUA4Dy~7uqG73YVGPbfZH+yafhYU<0A$gLCPU zCw@PMa1xnravK@(1x+us-89!E`z!*-`Z6A!MHHy@897LTuD-{E`>ztiw z7zQ^Pry{w3zEKfpj7=mpRfb>#iUc-+8KbP^cmr1kPJ*ny*@zp*)A1FCq8>ps+VV?W z+>8lQGAMqj;a_}!hBQ1zFi^yLK|(kXWAMZ~NsjuR#+kh}f6*}TWCf3HT>PD)Qd_`3 zc0GliSSX2ke5jx%#jW|b3d2OPcuOPGPO#9K_7!S^208cFApA(Ek$Cx7qH$GYC^#`L zh<&&sbc|&)zRg?DioR&*`e5M7f!`I2vvmcts3Z%bo%8s7ewm^IJ!K;W4GQd}g*Ift zosS9BgMnJQ=VX5+!AF8D4|G{^OXm_JGxpr6F#ryfi!G%xOTuy#UEuhZk@uu6rD_Fc>9o+|roYD-Qa!%|b!LN)|Svpx|E;`Hu+JdOdAZh0{pI?z;H3ycs z*KwA4Ar=fuFPqN=nSYZJ?I_MeqvzA|aM^{aa`A}6BunU8vjW>`km%E@lgM!5_54M;mBjBp5T;{~%k_&6l;+w_z0p<|$Ji3}> zNt3E`otRR=<)ITrXl-qQwog1oF`0))k6v8xi*natXo>STOKWEadWNE(g^|%Bq1<@u zGZJR891da32Bizdkea`&Jmw(zDsk9l&*CkVT3F*7<3epJ)J6HohuA2~-Wm~2?BT0! z5NFQ;1uw0{5zxo$xZK_!?3dpnX-oZrc4}xiMY8=~=fTbi-kcs^?AiR^5cInp;H!+k z#ml_q9eDvwyF z=jKW-H$!?j?1t)bIrJaXrODTMBIf;Y{h-C>`hvyg@*qQJAW;CGHqLY;Q)qrmPr)rB z>A>;5u1k_=*qEAPeq&;)7sc~*{#UzjgGbGvm4$~?TciX>eFW{F&1NidJKo!TozFoon9bN)eX&e?u5T@S|EiZq8PbOx6-{~R($*{a_ z&mpa1uDpSXq9_sf@_xDl%~fX@Y+;{;JU%<%Snk~w8MZQ99Na3K5tMV+Fl>`RD?y1_ zR(iVkhORVpwQpLUX|v`4zSQ;G-5{6W1xZoJ32Enb0J(o~5bSGNs~7It2Galb@8|9Q z>EGkO!T0BYOJp8L1kwHLsYfoa&?3+*iS0boK>mff&+tVpV;2|5R$F|6(Rs;H?d^8B z=M7d2S?lz494QT2CQ>|tGbv50@rx0Mnxu6@;4S`}+S8AIF2X&#N2mr%@ig1@l5|fz z=ZuOs)6dNkeZZGCED|x_z}Swqo&>&(FVj(lmgERIS!jz9>$TjghSW1{%1psxEkxOz z03`h5YJOt_*+nwT#z2k?iIwfHHVwEpvty#m>M>I)@l})*^j?IT($LoYB2Y}S#|v5{ znl^~w8l~0ecP=PS!IUR+=&Q@kSCZqwn$z3hsUUJy6xV*+zX_q>zIWnpRsudhX3B{` zv-rt{PS0tz1E%~{g^uN7MSFWvm!)~9GQE184#>@A33av1v+hY}Q`tbRL#uepd^HZV z1LFyi)@WmtL=sT*OY1B?(CQT@$T84ec$S<$7JodLBhm)roXnOgI)=u_&n&H%I@B1( zTyfJghmKvjClb0^s75R+HUvbwXTPrN>!D%Lc7j@1(J--l0z|kAmBMG3 z_6=1XKdu&;S^O}J9pQ?sMbIgDz=^a>$ohDXjAoi{y)?#yM?)X}TI6@|k0a8e;?q z@F0ANCHxU_swZo38SGm0WZ*?%L_G^f)$lWJ@f5|l{KwA2l%HZtoE^%}5Rp!GJOOPD zF?Vc8v+Lwis6pEY@i>xW?V1%mzb5onjWG=B2-$)e(L#$-WPVFf(JK)KiF%=>YNqLQ zHblx?;mIyw6UfnT#m8jD(xc`W=Q(BLmjm?+?z{?S zuBkHv%Gn>L+j;WJ#2Ju8i@IB}q!F$$WqQ>p{;~Y~jpwe|3{Zt-q+z3=5MXLK(JRGiWbn+%>@IGV3Na)`Ucxjvw?TOgP7xjflAX%tH6U9O!j z^|o`av1wKfoRs{D3)6|bPljZ9Gv{Ig%JNXzJ9RszAtNPj@F=g_FaeZTxn*Up5YO&=maND0vS>2cW`^0xg zF7zV@O%{LO&jQo(W7B#86vil9wP%IXsF3lL4xL&L2c4o-(Xts`uu~f4*~Ev-{>97Q zfhIl~tbKP|z&#o~07g{rHw#wW-ve?|8Z}PA(j}&22%y$rOv}E8M5N^J6S^$OJRW%3 zV%P8S2Ut2uR*PzCb8FJZsXCbWf_?K!+>EG5lx~#UJrq!L$Hx)lX_2!aO5aF^E8FVI zsJoYd?eU?i1LpAHv~yE|sZBJTfkV+=qXw#%9cpvw(d4Qo=$3mYk+3v94`$aKWI>Fq~Bk?~)Zodl|f_VG4lPRVluHJjJ4N^k0X7)-o z5?X8+->aqzNP3AgE@GbYK-%AU8PQARlP;uL5s8>Sel#D#=7Hfn?#Di5u1X@i7}MW}M0vJez9UAOQ!52KO4GTgK;hQIV}=IswOB zDa{8Bi9UiE1;gq82Ox1(9ZpKq-BWt)_-D#QLE?T zQOJzh>f*cJCygg0yIyY zr4y>coX#9vCuzz?)xJ)$D4I*qrSu+ zwZE^#UtEsD;Y44@b$wtnvWOYrJx3`~<*7LIc|di;Y~y6;fk3wqvM`Hamg>CcFOqml^}V?e_hQgIF&Ue(Hj77#F@^lWnTTRCZxZIWqoc=WScE^e( z6z3U1ly)L@{G&DsY+XIo*Q z1SU{ups+feTO0tub+Y74UV(%#wz1Rv=nn!?dCtALQTvD@QIo3H`8&$Bm&rl2>H?>a zc_m+r)YQ7cgd(=Pw!bezfu>S-SDO-S8nGV4=29r9x3*Q5Czi7dEnrXPNEmPgC%Z-sH}=M4l@UF$nb6 zHti|{T%POWzfI!2jjAS*Rku*B`z&J`lonC| z%rQ*IlT}QESh7{$(w{p}1!2DMlw&!6eg~!KrIFeh1U*Vo;+`JF@Vz}~bqLa@bCV5z z!g@KqlTvvC-OUJRUFvsXADWp`aLCw=DfM08paXoRB182kAvZS=}} zA!%qOGeZ!XP+2(EblH<5(98pDi-2OiWdyz(A9f zMJR1U#|B*}pc5PryC*zx>Ui)jH&hNenM(DOLH2*VI z#44b6M;!KkLC+DIa%^yrD}lwaeh<92vmJ8v)-IorgtsjYKxWu4qJw8@8c!V=7HL6| zc4$0T0G)t+Uu%oKF&mD76n@^okJqWQa#^E*jvUoSWP#_qu8-&DvE|Q#j4A{B`f z3Gd9@;`D%0ASt(xRnRL_Tnu?r3@%ewVmuZ>jgrtK(Y+uwjpl%ciacvd@ptLEhsdgu zYW$!q^+P{vQjdiR7UQaoA9uThZ57zz;UU4SArVtOM$v6DDGiHOfB4SAB&((IN3Ol9 z8Re5Are;?*zG>ocj1USH+0VE_vm1`$u2l0aPB78g!m(HT$MUN2@hoC{&lfLVBR)TT ztpi#2CKgN@1*}M%gtOT(93vxK|Lj!**>ZzUp3n?fL%F8qG`{I?n+qsrj@%P42=+bS zq~qb=Nv2JuIU@F`P#;g+sk9^Gc-{(oPj9Ga_Myyd{y4F@=_BjEEq1JkonNfEolL+K z3GzbiDgy+g9+`PqhNkfxYv@J_h$%!Uc5@z95>T6HWWG!EJylKl9sEI_y>nb1?5A-7 z*#4tSr>e@?cl%4{PRad~$(X9Zen0lg6id{1UMF8D=L-I8e(zL7cg`i1Z!_ed4ca2B zr4Nz|Pi)Ncrn$`*%;VC6n9%a30@y3pIiWpolPE66rth{qt6kjl85=}KzjqF8oo-0I zl&bR2TJZ@5lw}Vxfs8>`jE?x0nG8*fBRPf&U`LzzXc~+{-sUB7iY(pwv~@wZpxBhP+?`fcd`9Oub+p z4m;u}?U49-tM?+W+Aa0q=>~%4sEYE6+((lY^0V#Cqwh#b{Hz<-SD1DDR*a&NT8Hk* zs(QtRGv!m3(clj3IYo|y#LCa5MJ7QR1$#@Wlii)ZGPZ@{I zEE@gm9iU2r_h7SoWeR-*@zBp72XOj+k7VjxTzeD>NY)~?P-rdX5^N${$v>ij@xqXp zqA&F>;=QB2sP4$&KT;!-;?+ zb$!9{Hyo~w+ak9Q3VV?!ysStQcN96@;Z46B%^!df7j1H~XoBsu(kM|^%ND6G$~~F0 zMO;Ldr(hQwMA$B|p2``fo*PTqjS0c3b;028#Uxqc^fc;H(lVEA8;&RADrVj6yvG;H zw@V#}BDfkE8@iafS--iR&*%vQ9esg*zD`r|i1^`)|G3kw}zO=BxzG;I;| zaWFw8TzfRB6*0G{?k9p}`2}&gHC{*!Sx`ZJU_^P_CeQ)0e(!e}jcj_SH-0Of#?yrB z8x}l9P5*PPxS*Q4OJsKaXcCiAh>)^iOF-+v0~(dP)Fi?PV}{w5(@r!4V0pDAO`$1FjKDR6c^h5jOy#N+p$tES+P6Gb*u2J)Vk{ zb7JyZC`hTW8>Ph*9d^F3s2f8Qt;&t6 zx*bU}b1e%=b&3=i2OjRcWDTO`*;z)pH!t2a9H|}UaEnj4Td8gb*o!t09!<~84BdF) zWZi?Cz1ol_Hu}!XcVy%?cKsqr)*aEmPXObe$Cc((%P-CezFFCOd2ZX=a$)M{4uT6# zUv5iC`20;ifM^pw_v?0wMYW;wsTt+U_YFwU{c%CZ{P!DA2-%(te;VJlX6r0RSq0h# zv?0&RkXahjvaBVTqsku zw}mh&;Hc@qF$s##*`m!4XGcw19D}7DZ~SSRo~vlR_5j4rV}SP| zn{DAy-#6_KL1OB<)dBV1G+ziUeub(QV^2hQ*4PDFSf|+0v!&PuKN8+J=TN*Ivaz0a#EcdmYRKUPN9(8|$2$Lymje7UBs+dG~(Muu)zGlB}ApzAiB~X-QRQ@VNJv zC=#D9x^C^R`wHrD<>~k- zXwPdW4XfA#^H@-+Kx7j%74i{Wnc)x`X^BC%ORKBb1kzdlXF*0ysopa8rU4?4he4ll zY4zn`QD^N)M+aY|ggTm8mG_$6H?8^}orsM;V|m*sg`QVWNmoSuPRc z$R|5rOu>RXeg*-9uUCBw+}2jD1De4`lY5wC!=4Es&^)p{9p`RHH47w1?#x%>b$7mw zfXF{|kt9v&Qh~yJ2x4|Z|^l{6etHW>#RV39-o&1=lSBHrE zVkv;_gHD2;Em!6pnc-v`O;RZFuPr<}doA{WZZij>Y1nBfk~P2=GY2cmq+r8o6-by& z`2Mmc8@(8M8Aa3Y!O5ra!h0}9FP}}hb3ypkOayJN3N&Se;Z{zpjTltE`LDz__p_ci zu(1J`Zd0uKAT4nllnbe6-p<5wJw1>9N|8ZKaSadE@o$AL{DvI`NxrF48+d_pcm*^3#8Wx&5id_y4V#sdZ(z-u2fvFNJBv!fBp>8>3DPq4|@s5?(>5|#wzwe@OVFPm* zcWBN8XkyF&DMT4mRtE>I{it%)o*;K zzCn>c>+&njE~z55VbH7bNcexKOk=Kl>IcUSB3zwU+gE1oWL?h@E{l0AIZGGWnn+ zx?jH~k#j^G47(trw3zC5WZ%J7K#&L)FcQ+CC%gHopvJMB4zvFfvbc@q_<9e=wHlqq>2ofr1*-F~2rL!3kI(D8GYNRI6dM#;3Ag*CV8`|! zhvxP#>y~@Nx4Dp10IxGQ`e=xrRfK4>*3WPyK~Hy8wu~bmtep8#QHP$tiKJl42H8CZ zY+88rGbm~bZ4wG1oDQW-i%slJ!D%mT9h-atKWl+>dR2BqS#2x%Wva6V_`Y7KvM?wW zBb>fx(`<9MQ~qSg&yiM8Ust!^P_CI8;?k@t?+W1v+{$7!HD84XkOk&(2>}0eGJIcX zZM2ZQsog6kAgFk$3_=8$n#i_v*Z|CuATbSlhX2AA`E2IiEIBm0mZ_ze3lbd8)zhXg zVokp%Ve$-#I>E)o0aJA>0l9W-y8;eUmvbY{1EDQL@ga zqUa?22o*gq@v&2YygUTEnKZbxilOLKwbLEgmXF(|$sO;r3%~!30Qs+$Fa_ikk>2-` zxxpE(URWI=w)lJOi4YN}2F$r-YV(y^C*Vas25bw_H<-FF-!Xv`L6=#rxHSigp4qdD zH6cTJBB#7)n28LUtY?^}YV6{Fq>Jhi$|H&UbQnx^w1Y7i)b64HRUVj0iDSED-*F9F zQ3&R61ipWEpr7DT@T?A^Ckyhtru_>f;PFA=Ub&nkGBlRYWGMX!s{XDeh9AFxNQ@#P zOaucA8i`m4{4;?F53od=b$8nLgMVPmX`MwjO5RX)ePu%_7-;|FUuIS(_T&-H zb3wMIK|%}A%m`Z4PhDb08j%lyIxoCkvII}war3}=U@39h8PsS!lM&ma4KvVeayN?swQw5&9xvLRGZ z&KEywC(+gPgU0iGUXSr5ngy`wNRlU!%~9$x=Bsyrw#Tj-or*!62`btQ_apD4kVJ37 zFS?F@V$*!4+dor4Z!aR^_c7*Q# zGS=v`bjH8cl|}7H0qXO&;`_H7*?H;=qNAgckRA$Oxal{Y2oBt=7nK|G?I!5SGp>}`RaDEFg8hC%PRq(l|Qjv2alw3PcCarI#XquTd!CH4hvGUcIDycEzUe(7f67cRHibfNQ4fT&W z4MDykWus~ccP-YK9qV5hW*coNlSj`4@?eZC)*vLM%hHvCnc(1QB#@byo*qVvI53dZ zK-g{TSGFtm2##y!pMi;fz>R?2)`88jBR>>^3JfwsrBcwu%368oTGe|fDC_~(`6*Il zOUR&wH%`fn&q(F4WV<(N9Ug~D!!J}t5}TTholVdx5r~D0-GfB%-?a_6@9wT2Pr^-n z-Jh=!%N^{6o#+F-P{j7?fC^&hUQlF zGeqr%f=JQVi5HX~5TtBxL|T|Uw8#HOJ!@Cea{hes9u+PbsH1p-*pmkY4DQq5W#WXW z*Qhp3#EO{k@?s-eJRBu$B(tWd3}Ymk$|@xRlaUAyBNXzIh3F-XX5Iy!Q~C4-agC;@|?;GW(_h>4z}QQE?{E zAcehwiHdyQqiJq{^JmTHNWKybaq4)x=Eo1K6pTMG+9Pl^&CE>dS9r9_mRI=bD-1}Y zdm`4PS{X9d{fD`NL+W;a-!^sw>k&Wy1SzZ6@Q)SIP#1>fY$(e8+Gdx-uu!CoR-En3 znGP{YXUrB%{GDAXC!kz-v9J4DL1109YeO%5vbpPvlKQaly6aN(C9XY0aiz7eTtfXS? z%>lVzqk9PoxElI7aMTkev#^Hr25Lv!W4}j@m-mgBi--=;Ug815-Dc`OC^C#DR(b%< zQmqk&vUSndk@9ExW(MM{Z*0xFSDeIW+!pwv&fk+*2kdAl{oj%;ArUO$GFbC+J)NBh z#|sd@B<4fypyRd4@yE5m=fuaZc&osim;Nb5TKeEae+$Crlzu9^00rT^#zD!!z* zTgpd%SE$Dm(JlQ>i|j+CJ;7au3k<rBQd#H;=#(@ z6k!LQC4)g&${kvQGmp;)iB=DDZENdDKhaJw4A9bFiJG&?HjRaBZrr~`GO)EZnmwc| zocMp;omE?0U9hc#OB#1~ch|<K9oti=8IreC&UjBJ`1=*jH+V|t&W*7p(F1w zN}`Y+*0KCM?c~X@){WVp;6(F@YxdHw%CLrd+}9yUtzly z!{42Zsl066coKD7u+q<#HIJik#Nhk8jIO04JTy<;el~e?YJ?iTOi61j`vn)o2HVaN zafAgygZpLnB6CWWaYvoJ)-s;gZ}b2RV1WtG`#$;iMyWERGZlHCVGMnny>XzH3auki zmz@Se-N??mmsOZQ-V8@@>h5FPNVgKh>oVOXes*+-kL_faF~HYB*wa0`vbV8w`tyQI zcy&*v*r!$00C}1C)7&pWTBElf2uXMU*J^{ugMKC_>Nbi{-qJoT1&^fpkM+Xopn>Q2 zl6dC=TYa53(fRn#z?;wJ<0)R-1prd@Z7a_A#4p57(VEf`JKk!e*hDUtFIsHCRoBxu zOT*&ppg&S|%y79S;QR(&Y&oLpB}~2Ld*)5`SrkDJ6*CDv&HR2?SfCP|QLnsk<*2(i z*&Ob7rw)SKU7sQsB6++GEmaDHT;eX(Xo+~niQD{S{H+C)Xsl8=MxM8i-C)cbiMX)i zE!;8bOTutgM~V<)&#s$6KPu@p#A3?3aKdzj@Q7rT`tTp!j=G7yV>kTg+^LfK2*A@_ zvx_ib84r=#fSYW{mK;jq5?kav)C8|w! z+?uW}hHsskVw`LyWfYiJ7=oq|=1X#k3?R335!{tVZz>*Y?53IHr|2&Okt)vo9;%rI z@SJM4rF!A>fs_Zi+&K|LzEH9^dN|Rs^1dh=SY(J3$LQ8rrr}-r>tc)Q^+!!5-w9v- zQzGQ#h+$zLnwqORQA03Drsp}9jl(pt_RJdlTBlmX1PN+e_ENjpyxUi!acP)k zO#~ep_6}S8o~AQl%q{DPyU9Cz=R_2_RQ&CYq8)`>J5pxL79;+L2NemGYxE1VjaJs< z1%Ngr;dfws>Cs=bq%unEYpb2SuXz!uE!AgjM*^e@bLFW&4vn%*6i^4FrE`6Vt2&cR zt9FLX(m$ITJ?t`7GSwQ*tC+U4e5ev5(rJO14D1S-Ylzxm+)4$}$%&C?B3udV;k++I zh#ALM1%?tR`@&jogj#}#2+b_C6S#472S{Ko&W*q|gvvlIxk>DSbJyZRHX4=r86&#_ zSb|J^kany|v87Nw@E3};g<%+cfxeAva74M2u;h4t-}XNwB=8^gtM|iv?C`>k zUNv)P-a{Y~!9$}Q!ZuuP5eY}AG2+<}rSXKH=@JtO0vCKP8A;R}na-kGV$&*1O&yLC zGLwlJqmdB9%7m0Xfu!Nzd(3?mMm%jfaGqab#Dh?%wLyOT0Yu#8Y*+bUVKoLiXN8MmQ-_kUL#S4z z=`njWO+@H}dUwh>^j@VNju=siTvbS(#Ke+teBGA_ESx%r6x(aYpOpg*fGIbhqM)IU znAR!M!36ElERHM=hVvwN=$R%LescgdL_8$H7`L&Td&wI0v7a4RIyngY`<7B3ip=%ZG%^4BP`Zy2R?#(U!_SgQM_$MZWOHJK50lcMoF|03%|P%VSfqIikkk4mwxxr%M% z^7>a_`qdAMeB9a-W5IIP9BzC<`{Iz#K&{P^UMA&tD>z-j(!eX-^-GGJU~Z+WOLUno)OfPNAh>BmcRtXh}zG?ic^49y5PcmHBS0Ha=pqOnHs!Tl5D%(WUBq` z^*@|)!}3Ag{+e?pd1<&qguWLJTd;+$VbHwnYl`6+bY(=Vw7XijN)-IIZ6};r^PnO{ z0L4VO?(POgdl2$r-JKXr=34~=ZZ)P3=V%742=>(2C9kw8_H`uRadOu`;{(!`w66m# z`7vE#)ClVqP{4gHBNaV^u_m=8Br20(DHiTwrd7kTd=0UIV|v(uRq4i~fTH-G71OH+ z8y_vFC*;^{4{NvZM~dms;5~v*1hw8ZzNg65B_3sD%r~=8X~?MJl2e<&U!mlY#xxvC zalj>o0I;2#aRR6T-+ely_RKj2LS^NBOo9i)Govl~M8{9f0e;5lzlzIKH4}DHhqne_ zLOA&y>`B!!SmzJV6o~3vA}zGl*TJ6v90ZSH5ezd*+nBA1An`d?TqR4T21$-&C%%;> zT8ton{9X7N#5eyp=4&9=n@6qlrNtgBu4gHr@RMXp%=Kmo$cpNpdmGib5AjeK&8(T*sw+1W$a4Y(uV?yfTP>O=Ez4B7r)t8*|2!wE)P}a37%!utV zX>7)hrH+I6sfv~22potZ)qkKV0s#4UHLD5|L4zk~$W{hSoD7mvV=!(aHI`Zyg9KkW9X0NbfO&Pi6pM+ zzolLdrkrS{ai0!Rx`M3gjPB&?Z-F104I@glQ_TpHg+H(v#xx`uG?~6R{svCr$w3mU zNmaFh?!0*77QR|pURzdKEDcuQEMtnve!y@PvqvEP<*Jj`i(oWUd`F}T9%MCkBVDEC z1fwhP;#UQi+zQ;s=cXLR%D|ln6SeKjYfGKMLG*h3NqD!75Za)Oj7-G8w8F6di?a+3 z5MQS6qIR%GYbidtmmb~ZvLkn9wq3}F|8m z@_WeWN056dm2akQg=56Gbxn1YjRaGYNJDp#aZZ5-wiII%dA)E%dBO?Dj zfi9O(6JRJ1rWlOhUW+z?Y~IA$Eki}O^y`*s@V^r^-iY4_y#jdWGCxA)CdiNC2cfR| zBdF9$*iV?}ohb3S`e4NLxV}o2A3h$HHP!x6l1OW*qjHgE_APCYWn;XzM(Fx=Z=a*y zrva}q@NxuKMd@DRRfWyZ4jkJfOFP|5tUDCdJoMKVopQfTxw3wss26|q7}>}tYx|yi zh9j73PY}H7(WU|Pt}N6;v{YA=hn_VdN=0Q`yPb7OI?m&Aty~T&uI60<1tN1|t3ZB9 zfV6_81f?KRn-_<396`dw$;1XJn7?gI?&-4xKLDqEpWEiN+fRU>nG>Sp3e>YAJv91{ zJb{;2HvBkQ0wf$K)7o8=Jf6#Wj0W@}%l4sIfqknnArS z9-!29iihpFKxw?tVdOa^>`yq)sO&EFrsLR|{1JZl?yx=JLzGN>f8no*j$QGMOk(N{ z`+vhc?6>0gI0s%X@OAZr$k!-bak!*0&Z3|NpA=f-vwgDWOUeUE4#!COa+4+Ca>NV0 zAy1l6R4S&XPO&Xl4UZg(4s!VXB)S59e2L^iy)pz-wJCPEdZ{*>&4@qvR>&;o=2PHT zHc4cb4|A?}7cV8Rel9Js;YdNG2+(5hqbFGp2^CY+x{)_#6BaWS^AoLc*pt-Yq)uKo zZBS9Bd-6^D49K1cie$qXqDf>pEL=K$TP#*&3QLJQ_LzuVEnS;#^%l2lsrS_uPDD)# zh_2=kYI;N-rgb9vy%f!&E=h8qF(O?4S-5QA2YUjuJdZoZ$tQn)!HATm0C0f>_(j6r z!Ew*$cgoD@;WKtj2zrgd@UbZ1T|yy<`Er3m;jNXTN@M$dUp_+x`Lk#?+gaNZBi_Z{ zG!G6>3ALzvWWK39V`2u*pSb5^+5+JYUhpDRNu-rQSevK9rsWGP!h(^qM<*scsV{5>-VuihJXK*bk3tLNwvA9MF~DYieD)gPO>KiT`b!sizu| zEifr3NA}h>i-l-&AY`>$Pd|rSmfnVA$>I>^d+2nW5KfHjoT|D)r9;o%hJ5ylGHn-4Fb+HzUyll=hIOloN z4)mqBD$WmHV}eO5(Xi?pOK`kUDNk-?osyo=1Eqljk0g+J`CvjFz36dtYz&v|tkdbu zW;~9Z75PNxP@k@n`6*nh%44MO`EkgjD+oOE4~X5cABS-;VF+sb#d0F9=bPDsSC%)2 z7Ups87#%8bq?r_dx^qmHKT0%(EdE3O<6Y6=SNX$p66$O1Y(8EZ^_6p6tt?<%vE{w@ z;gwv_=xZ(6Q75NdjV__P`RF4MF(HF!hyd4OSxd+IT4OwwvNZ1?6Z3WE9){G-OBjv= zq(6r)RJLmx#3n5wsl!4a7bwAwI9P<2TYL$h&A}VZvcOD7i9!oFbCp9wi7lE4Z%FJL zx?1E`=+~G;aKTAux?HxHUXeKpKh{OPup-WHH5lBvAK#|JKpe_KG1~xj{7viy`-Eo1y!-I%2Ai%p=gZ86&`OD z8?5l;6}=+x&DPaP)|3d(YP=(($cnh=;h>Ry(FBNQ zP>CbT6RV`BH_0stmkbzX84mIqEzxC>UQAl1FFHwUt}*$O6{y3pD+(jSgY}xOyx=e@ zCp^<$uXfe)GeQC-b>Sq`QbfW!EY1|7{p#Fr+c46)yinlXe!iovOg zLD{RfN_lrBswerz?^5a5NGE}xJ3g|N8MU?~LmEdH4XRL!yW5fEj`?>XMzlWsT1w7=l?)^~`wsv@7q=?x3_KLrIQtH9b;=aJ zV(&$Qb)w(!?fSgKqmN2<`P>D*kjh3Q50hK%4MYo>0h~NI47O*Zzcb+rPjQCr|N3)g z{`GjCv4yr|KhdtF?W=UdH|7zf0;M5C`DI-iICb;aUh|4Tu@ z^7!L6jb5Z^3bt)P{8g+>yVj8iJ(aJQxBWD)(d(?%s?knN<(sjqN^!I=UP>Sl<9yeS zXi}tB5pN2W%xU#bO-CX=6#U4+Ro{;@?eCc^sf5xv-NZXN&`t3Tvtw1Vy<+89+^oHi zAT^6hAlTO1`J>?;1aeJ;a|Qs(s!1AFX6XcuLqjHHbmzN9^fD*SSxyt$Mb|vXx&r5JLjp?qb|=DcYQ^$=vqodh2kVFMyd=2D;f(g zR}EF@4nFXsknen*&R61t zE--E*f-}MGA%^=` z7q1g&eYGr{AnelV(y0;L$-}s4UY{w}8Meb&$~i`cKj5#H<;>P*Iz?M6{j0mX09~}$ z(8nG(UcbJl=6w|L#jUudaC-!2^oOb1!|HZbQ3aidfPwOqgjcyB>`vXn`BSSxEPU~b zBT&Kd1Km$*I8wbV`kAoWgKqI-&CM6>)a~;X*E_r=CbtxQfMULZtCBO6dgxNPDd9iGIXT)fqKP^S7b~Q5pMz zTvl=jtm0%gKg^Wh;-~y!*2g%0KIDY+k%iQbpkJ8PL{xK8&JF#_*+*miP>_9o&wWJ`0D5*MAzW~(BYvt{2yO5%V5Fon@*0;aT3Cb7 zfi0$*fKZzLbQ^c(GK!b}bI^Me8#q0y$I5&lzOR#t+WIo9{S<9bF^{Gzq$U$jCI@1W zt+p;Z!jU+)?ziZ+tP&|I1?fvb3=cRk0j(N5dMary#VmQn;<3B#@(bU+x^;`^xn+wR z^x@VDdgF_C#N1Cm}WVLhvBdZIx%0jbFl7h9qP|?xP_|e4{~>wkzl(?$#e)T z>2I3koWo6_#n|QUc|QWaRhMcMYJxzUKudTJykTj^%AV^y7_8}V3m~T$_kCvYyy9E6 zfd{eg@x=$S(gbNhkl2Itz-XMRf-D`468U`qNwOrVy>(te@p_#zxO|D(Y^TcPSW?Ro z7`ctI{xu@X6GbpMoqGmmi+JXpBFrS5)TCq#SZdl%Qad_mEw6V?U8b)|u>sRda7@w> zW!~9EkNk;>BDUMKISQ06B0em*&yw0UW-roG=VK167QHph4Ym03$jVQDTce0x5RuVm zM6?)+dWAk8oKU^R0b+bDR({Yz%szFf(0(QKXI#N?l-g zBCds9j6C$FX+Y(!;0!6Yn$H)g4TtGPUhy1!OggWs`%u##93toE38)Q{` zBj|ELU16w&Q1rZ#{OCoNl2r7t5{+zq{OA#uy!$a!Y$n)Az#+RvT?%M?U>^!rduNfv zuOz`0!oqw)eAv2d{_m}DL#D8CB99yS>^nuR6S*PVD z`dFSPSdyFnh;Zo5T>QNLW^=tENFi-u=1XtRAbXPBjU(wwadRVdr1 zH%s}w@Z>lqxU_&mA7z%cY$fwJXxh>F3WqnS%&@q@hGJ&Sb~6o~@>V)}3k0j6l^NG% zsQRCeAhw;gIB7^*0W!M$hzxZC``N7pcy=7>4@wNSS=slg; zxy0&v9NRRj2i!S&nGy4$FcuNtu8UDYWU48114I5R%vdKJWM{`;X6J3Hm+F5QAFB@% zBo;Fxw(8hns{EGEt3>meBeLBXDzdPS_BFCtw#>9HfYDkXonV(7 zGuTGjF=ViF1RbCpn93>GV#U3~h$y7rU3e^bv#O7cOZ)q~%7^ZrOT)eHq z5mW;S#z|NM&obW$v;=#asf;8$*+LdPvnp2i7>_2*qgH9u60z?V(wMw*+{W@zyFpcYUK#i=ACz~-hwpXVPh1-eOtDqB&#sp*I^inLW1ruXXwRr8iIWwhOFTz-T$yY?@ojbd zlt7u9rl$C%5{;8BCwdGv2R$GpP4P*o4z27p#=Y(3oDkoa+svL{G&8d=Z*&nXmjB%d z=M&!(v=|3i>|Rn}7AWIJy*sL$H?A@Wt8R(NE4O$H?itzQ(HKrUjv3msO zl<~j5%VvbM#UBJ*V6?dBR~DPd7X>V#QJ0q~V)Kk-{K^WBnNU6_)n>*nuAmCfJ0^ms zz=_892S+)Y#+K%KB70kh`2!^HnmkF2^E@ljR)@(A64*)k#FVPt-1>oFM3=|5|6-b) z(vHMwbHfh04#GA;x$hkOZ@UdIHJmT);%IBt@^_|Fzz6Zi<&SMY|BsVJKODQRJ4RD2 zEHD99;uo!8TW=F$+vKXN7^zmWmE=>v_myF>mXN7>e%+fNv5Sh1a4-l&Xq_prXSk@l zGFaAk@JdsYy$w?$Uq77?weAPJV4dcrn@T12LfbD2vE5D{fXN(zubP^g5V0_7b^0N2 z^Gf)nt8wMb&S+##V#P_#H(ZoI?7vzsLMTYFXQNGm*YPuGnG&P5(qBvcuE=`5M6Z#s zI^HZHk~c48z$e((HNShCOZ~3*pFL-a_G-pHKU8TsL*jpfdDPo>|ENJ_j+L;5A}gWL zYpw@dgLsB%4-3>)Cv3g@06vX+MNQdqF@j?yWwMJS zrmhE51|X1%M#a5Nt9HA6Ovhckcwf5({m;yYXUPHbZ|7@)8?U8Z$b4*Fy}Uulu<9dE zP{JN2@TjV3tuo25vk}LV&Rp_H*QH?X3bpd>yukp`AIzV`UIy;>*&1&Kf+=i%dDpyQ zU-F<#g@_z}N9b4z%_2<#D46KN85*d7W(pnFto{K{0ye*|ak40!m7k)PswSgy$o_G# zN}OAU7e+4#lzbi{L4;fA_Dn3-%=xJBs(#!v~KGk+$!>mIr&3Z^TF)u~KxJ+F7D6ezLnH zB&fo9&T-JLd6*#$x`HZE9mpDL$ZXnLl1!FpFInNOCN~OOVLLm^rAErMqm;e}k{6Ax zF(y`DH8^j)szgWH{A!n{_+lzmCFhyfzbrOy-MWH@)8CwFZpy0TAwrCNyP5>g^}OBZ zIF!@;%yWuzq*rhJ?p?nBJ~!RmFGXqq| zaCTk!{s+IHK6i2+A+sP($6+%!n9&^wS%NiH8&b6>RA4JwX(Dnp-{%!!+KFMWvn)xV z|5>KaewR0=R@Ywl{^2g6j|AMb$n_x=d0h8H$?@0%A*Lt0*4C*-nMqO& zs+j-O2^1`UqF=?wC2}0C-`3C!=4wdRCda@%(6!>Rzl_(L2v;Z#uUg|_jf)wB#o;-y z(eT{nkHmjP;SLQN?=Q*o2gLG1bIJ{o5#@GoKn$K}RQjh~Ttd^Xd41& zRt++%q>q1^1?AtVl!hp2OU_l(Jdqj9kow?haG0&8kjj=xXgFC~I$e6F*w62?SAAu|4n6<`uent!gTnEehwloMC(XAJUq9cxHH zDpL{t)o5HjFCyvwD23%mGM&Zd2%0xS7XJqz%V+Av=zPh_O5wSNT$fgAs3KC279DGh z`C<20fJhGJwp}9|K|kcWSNQdb>~+K8N}sKF|Cllu$Wi2xE*OUUXF12*ow3w!_g0|H z&Q7eO9-d1e2A~mKMcGuvqz(T<@lArRq<|N4M*1u}Evb5}eW*np!0mG!m!s_L_@|7t zdY>_5PCv-gI#>qsbW~MFPme@v5$izIc71Dv3QLkxe=L`qE8>FPB9si6^ig{GB_2*+ z68SloC5>(K8lHLbXUN_v-=DVtaGo(H0#Wf3sfZ);r0@+?dQX6CbI&;UNy{x3XCcfmx# XLqvt>;8#D#5PgxCR*|ZaFbe#CH~rFH literal 0 HcmV?d00001 diff --git a/src/assets/images/users/avatar-thumb-1.png b/src/assets/images/users/avatar-thumb-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b4e75216a07d096db9e0bb3e05348fdaaff366 GIT binary patch literal 12407 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≻B7p{sAK)32wgj&DZd5 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 literal 0 HcmV?d00001 diff --git a/src/assets/third-party/apex-chart.css b/src/assets/third-party/apex-chart.css new file mode 100644 index 0000000..d1c4dc8 --- /dev/null +++ b/src/assets/third-party/apex-chart.css @@ -0,0 +1,13 @@ +.apexcharts-legend-series .apexcharts-legend-marker { + left: -4px !important; + right: -4px !important; +} + +.apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, +.apexcharts-legend.apx-legend-position-top .apexcharts-legend-series { + gap: 8px; +} +.apexcharts-legend-series { + display: flex; + gap: 8px; +} diff --git a/src/assets/third-party/react-table.css b/src/assets/third-party/react-table.css new file mode 100644 index 0000000..cf0f92b --- /dev/null +++ b/src/assets/third-party/react-table.css @@ -0,0 +1,13 @@ +.cell-center { + text-align: center; +} +.cell-center > * { + margin: 0 auto; +} + +.cell-right { + text-align: right; +} +.cell-right > * { + margin: 0 0 0 auto; +} diff --git a/src/components/@extended/AnimateButton.js b/src/components/@extended/AnimateButton.js new file mode 100644 index 0000000..35d2936 --- /dev/null +++ b/src/components/@extended/AnimateButton.js @@ -0,0 +1,88 @@ +import PropTypes from 'prop-types'; + +// third-party +import { motion, useCycle } from 'framer-motion'; + +// ==============================|| ANIMATION BUTTON ||============================== // + +export default function AnimateButton({ + children, + type = 'scale', + direction = 'right', + offset = 10, + scale = { + hover: 1.05, + tap: 0.95 + } +}) { + let offset1; + let offset2; + switch (direction) { + case 'up': + case 'left': + offset1 = offset; + offset2 = 0; + break; + case 'right': + case 'down': + default: + offset1 = 0; + offset2 = offset; + break; + } + + const [x, cycleX] = useCycle(offset1, offset2); + const [y, cycleY] = useCycle(offset1, offset2); + + switch (type) { + case 'rotate': + return ( + + {children} + + ); + case 'slide': + if (direction === 'up' || direction === 'down') { + return ( + cycleY()} onHoverStart={() => cycleY()}> + {children} + + ); + } + return ( + cycleX()} onHoverStart={() => cycleX()}> + {children} + + ); + + case 'scale': + default: + if (typeof scale === 'number') { + scale = { + hover: scale, + tap: scale + }; + } + return ( + + {children} + + ); + } +} + +AnimateButton.propTypes = { + children: PropTypes.node, + offset: PropTypes.number, + type: PropTypes.oneOf(['slide', 'scale', 'rotate']), + direction: PropTypes.oneOf(['up', 'down', 'left', 'right']), + scale: PropTypes.oneOfType([PropTypes.number, PropTypes.object]) +}; diff --git a/src/components/@extended/Avatar.js b/src/components/@extended/Avatar.js new file mode 100644 index 0000000..2450bfe --- /dev/null +++ b/src/components/@extended/Avatar.js @@ -0,0 +1,119 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import MuiAvatar from '@mui/material/Avatar'; + +// project import +import getColors from 'utils/getColors'; + +// ==============================|| AVATAR - COLOR STYLE ||============================== // + +function getColorStyle({ theme, color, type }) { + const colors = getColors(theme, color); + const { lighter, light, main, contrastText } = colors; + + switch (type) { + case 'filled': + return { + color: contrastText, + backgroundColor: main + }; + case 'outlined': + return { + color: main, + border: '1px solid', + borderColor: main, + backgroundColor: 'transparent' + }; + case 'combined': + return { + color: main, + border: '1px solid', + borderColor: light, + backgroundColor: lighter + }; + default: + return { + color: main, + backgroundColor: lighter + }; + } +} + +// ==============================|| AVATAR - SIZE STYLE ||============================== // + +function getSizeStyle(size) { + switch (size) { + case 'badge': + return { + border: '2px solid', + fontSize: '0.675rem', + width: 20, + height: 20 + }; + case 'xs': + return { + fontSize: '0.75rem', + width: 24, + height: 24 + }; + case 'sm': + return { + fontSize: '0.875rem', + width: 32, + height: 32 + }; + case 'lg': + return { + fontSize: '1.2rem', + width: 52, + height: 52 + }; + case 'xl': + return { + fontSize: '1.5rem', + width: 64, + height: 64 + }; + case 'md': + default: + return { + fontSize: '1rem', + width: 40, + height: 40 + }; + } +} + +// ==============================|| STYLED - AVATAR ||============================== // + +const AvatarStyle = styled(MuiAvatar, { shouldForwardProp: (prop) => prop !== 'color' && prop !== 'type' && prop !== 'size' })( + ({ theme, variant, color, type, size }) => ({ + ...getSizeStyle(size), + ...getColorStyle({ variant, theme, color, type }), + ...(size === 'badge' && { + borderColor: theme.palette.background.default + }) + }) +); + +// ==============================|| EXTENDED - AVATAR ||============================== // + +export default function Avatar({ variant = 'circular', children, color = 'primary', type, size = 'md', ...others }) { + const theme = useTheme(); + + return ( + + {children} + + ); +} + +Avatar.propTypes = { + children: PropTypes.node, + color: PropTypes.string, + type: PropTypes.string, + size: PropTypes.string, + variant: PropTypes.string +}; diff --git a/src/components/@extended/Breadcrumbs.js b/src/components/@extended/Breadcrumbs.js new file mode 100644 index 0000000..72d7cb1 --- /dev/null +++ b/src/components/@extended/Breadcrumbs.js @@ -0,0 +1,222 @@ +import PropTypes from 'prop-types'; +import { useEffect, useState } from 'react'; +import { Link, useLocation } from 'react-router-dom'; + +// material-ui +import MuiBreadcrumbs from '@mui/material/Breadcrumbs'; +import { useTheme } from '@mui/material/styles'; +import { Divider, Grid, Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// assets +import { ApartmentOutlined, HomeFilled, HomeOutlined } from '@ant-design/icons'; + +// ==============================|| BREADCRUMBS ||============================== // + +const Breadcrumbs = ({ + card, + divider = true, + icon, + icons, + maxItems, + navigation, + rightAlign, + separator, + title, + titleBottom, + sx, + ...others +}) => { + const theme = useTheme(); + const location = useLocation(); + const [main, setMain] = useState(); + const [item, setItem] = useState(); + + let currentPath = location.pathname; + + // only used for component demo breadcrumbs + if (currentPath.includes('/components-overview/breadcrumbs')) { + currentPath = '/apps/kanban/board'; + } + + if (currentPath.includes('/apps/kanban/backlogs')) { + currentPath = '/apps/kanban/board'; + } + + useEffect(() => { + if (currentPath.includes('/apps/profiles/user/payment')) { + setItem(undefined); + } + }, [item, currentPath]); + + const iconSX = { + marginRight: theme.spacing(0.75), + marginTop: `-${theme.spacing(0.25)}`, + width: '1rem', + height: '1rem', + color: theme.palette.secondary.main + }; + + // set active item state + const getCollapse = (menu) => { + if (menu.children) { + menu.children.filter((collapse) => { + if (collapse.type && collapse.type === 'collapse') { + getCollapse(collapse); + if (collapse.url === currentPath) { + setMain(collapse); + setItem(collapse); + } + } else if (collapse.type && collapse.type === 'item') { + if (currentPath.includes(collapse.url)) { + setMain(menu); + setItem(collapse); + } + } + return false; + }); + } + }; + + useEffect(() => { + navigation?.items?.map((menu) => { + if (menu.type && menu.type === 'group') { + getCollapse(menu); + } + return false; + }); + }); + + // item separator + const SeparatorIcon = separator; + const separatorIcon = separator ? : '/'; + + let mainContent; + let itemContent; + let breadcrumbContent = ; + let itemTitle = ''; + let CollapseIcon; + let ItemIcon; + + // collapse item + if (main && main.type === 'collapse' && main.breadcrumbs === true) { + CollapseIcon = main.icon ? main.icon : ApartmentOutlined; + mainContent = ( + + {icons && } + {main.title} + + ); + breadcrumbContent = ( + + + + + + {icons && } + {icon && !icons && } + {(!icon || icons) && 'Home'} + + {mainContent} + + + {title && titleBottom && ( + + {main.title} + + )} + + {card === false && divider !== false && } + + ); + } + + // items + if (item && item.type === 'item') { + itemTitle = item.title; + + ItemIcon = item.icon ? item.icon : ApartmentOutlined; + itemContent = ( + + {icons && } + {itemTitle} + + ); + + // main + if (item.breadcrumbs !== false) { + breadcrumbContent = ( + + + {title && !titleBottom && ( + + {item.title} + + )} + + + + {icons && } + {icon && !icons && } + {(!icon || icons) && 'Home'} + + {mainContent} + {itemContent} + + + {title && titleBottom && ( + + {item.title} + + )} + + {card === false && divider !== false && } + + ); + } + } + + return breadcrumbContent; +}; + +Breadcrumbs.propTypes = { + card: PropTypes.bool, + divider: PropTypes.bool, + icon: PropTypes.bool, + icons: PropTypes.bool, + maxItems: PropTypes.number, + navigation: PropTypes.object, + rightAlign: PropTypes.bool, + separator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]), + title: PropTypes.bool, + titleBottom: PropTypes.bool, + sx: PropTypes.oneOfType([PropTypes.object, PropTypes.string]) +}; + +export default Breadcrumbs; diff --git a/src/components/@extended/Dot.js b/src/components/@extended/Dot.js new file mode 100644 index 0000000..33403b9 --- /dev/null +++ b/src/components/@extended/Dot.js @@ -0,0 +1,39 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box } from '@mui/material'; + +// project import +import getColors from 'utils/getColors'; + +const Dot = ({ color, size, variant, sx }) => { + const theme = useTheme(); + const colors = getColors(theme, color || 'primary'); + const { main } = colors; + + return ( + + ); +}; + +Dot.propTypes = { + color: PropTypes.string, + size: PropTypes.number, + variant: PropTypes.string, + sx: PropTypes.oneOfType([PropTypes.object, PropTypes.string]) +}; + +export default Dot; diff --git a/src/components/@extended/IconButton.js b/src/components/@extended/IconButton.js new file mode 100644 index 0000000..3790509 --- /dev/null +++ b/src/components/@extended/IconButton.js @@ -0,0 +1,162 @@ +import PropTypes from 'prop-types'; + +import { forwardRef } from 'react'; + +// material-ui +import MuiIconButton from '@mui/material/IconButton'; +import { alpha, styled, useTheme } from '@mui/material/styles'; + +// project imports +import getColors from 'utils/getColors'; +import getShadow from 'utils/getShadow'; + +// ==============================|| ICON BUTTON - COLOR STYLE ||============================== // + +function getColorStyle({ variant, theme, color }) { + const colors = getColors(theme, color); + const { lighter, light, dark, main, contrastText } = colors; + + const buttonShadow = `${color}Button`; + const shadows = getShadow(theme, buttonShadow); + + const commonShadow = { + '&::after': { + boxShadow: `0 0 6px 6px ${alpha(main, 0.9)}` + }, + '&:active::after': { + boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` + }, + '&:focus-visible': { + outline: `2px solid ${dark}`, + outlineOffset: 2 + } + }; + + switch (variant) { + case 'contained': + return { + color: contrastText, + backgroundColor: main, + '&:hover': { + backgroundColor: dark + }, + ...commonShadow + }; + case 'light': + return { + color: main, + backgroundColor: lighter, + '&:hover': { + backgroundColor: light + }, + ...commonShadow + }; + case 'shadow': + return { + boxShadow: shadows, + color: contrastText, + backgroundColor: main, + '&:hover': { + boxShadow: 'none', + backgroundColor: dark + }, + ...commonShadow + }; + case 'outlined': + return { + '&:hover': { + backgroundColor: 'transparent', + color: dark, + borderColor: dark + }, + ...commonShadow + }; + case 'dashed': + return { + backgroundColor: lighter, + '&:hover': { + color: dark, + borderColor: dark + }, + ...commonShadow + }; + case 'text': + default: + return { + '&:hover': { + color: dark, + backgroundColor: lighter + }, + ...commonShadow + }; + } +} + +// ==============================|| STYLED - ICON BUTTON ||============================== // + +const IconButtonStyle = styled(MuiIconButton, { shouldForwardProp: (prop) => prop !== 'variant' && prop !== 'shape' })( + ({ theme, variant, shape, color }) => ({ + position: 'relative', + '::after': { + content: '""', + display: 'block', + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + borderRadius: shape === 'rounded' ? '50%' : 4, + opacity: 0, + transition: 'all 0.5s' + }, + + ':active::after': { + position: 'absolute', + borderRadius: shape === 'rounded' ? '50%' : 4, + left: 0, + top: 0, + opacity: 1, + transition: '0s' + }, + ...(shape === 'rounded' && { + borderRadius: '50%' + }), + ...(variant === 'outlined' && { + border: '1px solid', + borderColor: 'inherit' + }), + ...(variant === 'dashed' && { + border: '1px dashed', + borderColor: 'inherit' + }), + ...(variant !== 'text' && { + '&.Mui-disabled': { + backgroundColor: theme.palette.grey[200] + } + }), + ...getColorStyle({ variant, theme, color }) + }) +); + +// ==============================|| EXTENDED - ICON BUTTON ||============================== // + +const IconButton = forwardRef(({ variant = 'text', shape = 'square', children, color = 'primary', ...others }, ref) => { + const theme = useTheme(); + + return ( + + {children} + + ); +}); + +IconButton.propTypes = { + variant: PropTypes.string, + shape: PropTypes.string, + children: PropTypes.node, + color: PropTypes.string +}; + +IconButton.displayName = 'IconButton'; + +export default IconButton; diff --git a/src/components/@extended/LoadingButton.js b/src/components/@extended/LoadingButton.js new file mode 100644 index 0000000..3b0d711 --- /dev/null +++ b/src/components/@extended/LoadingButton.js @@ -0,0 +1,231 @@ +import PropTypes from 'prop-types'; +import { forwardRef } from 'react'; + +// material-ui +import MuiLoadingButton from '@mui/lab/LoadingButton'; +import { alpha, styled, useTheme } from '@mui/material/styles'; + +// project imports +import getColors from 'utils/getColors'; +import getShadow from 'utils/getShadow'; + +// ==============================|| LOADING BUTTON - COLOR STYLE ||============================== // + +function getColorStyle({ variant, theme, color, loadingPosition }) { + const colors = getColors(theme, color); + const { lighter, main, dark, contrastText } = colors; + + const buttonShadow = `${color}Button`; + const shadows = getShadow(theme, buttonShadow); + + const loadingIndicator = { + '& .MuiLoadingButton-loadingIndicator': { + color: main + } + }; + + const loadingColor = { + ...(loadingPosition && + loadingPosition !== 'center' && { + color: main + }) + }; + + const commonShadow = { + '&::after': { + boxShadow: `0 0 6px 6px ${alpha(main, 0.9)}` + }, + '&:active::after': { + boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` + }, + '&:focus-visible': { + outline: `2px solid ${dark}`, + outlineOffset: 2 + } + }; + + switch (variant) { + case 'contained': + return { + backgroundColor: main, + ...(loadingPosition && + loadingPosition !== 'center' && { + color: contrastText + }), + '& .MuiLoadingButton-loadingIndicator': { + color: contrastText + }, + '&:hover': { + backgroundColor: dark, + color: contrastText + }, + ...commonShadow + }; + case 'light': + return { + backgroundColor: main, + ...(loadingPosition && + loadingPosition !== 'center' && { + color: contrastText + }), + '& .MuiLoadingButton-loadingIndicator': { + color: contrastText + }, + '&:hover': { + backgroundColor: dark, + color: contrastText + }, + ...commonShadow + }; + case 'shadow': + return { + boxShadow: shadows, + backgroundColor: main, + ...(loadingPosition && + loadingPosition !== 'center' && { + color: contrastText + }), + '& .MuiLoadingButton-loadingIndicator': { + color: contrastText + }, + '&:hover': { + boxShadow: 'none', + backgroundColor: dark, + color: contrastText + }, + ...commonShadow + }; + case 'outlined': + return { + backgroundColor: 'transparent', + borderColor: main, + ...loadingColor, + ...loadingIndicator + }; + case 'dashed': + return { + backgroundColor: lighter, + borderColor: main, + ...loadingColor, + ...loadingIndicator, + ...commonShadow + }; + case 'text': + default: + return { + color: main, + ...loadingIndicator, + ...commonShadow + }; + } +} + +// ==============================|| STYLED - LOADING BUTTON ||============================== // + +const LoadingButtonStyle = styled(MuiLoadingButton, { shouldForwardProp: (prop) => prop !== 'shape' && prop !== 'variant' })( + ({ theme, variant, shape, color, loading, loadingPosition }) => ({ + '::after': { + content: '""', + display: 'block', + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + borderRadius: shape === 'rounded' ? '50%' : 4, + opacity: 0, + transition: 'all 0.5s' + }, + + ':active::after': { + position: 'absolute', + borderRadius: shape === 'rounded' ? '50%' : 4, + left: 0, + top: 0, + opacity: 1, + transition: '0s' + }, + ...(variant === 'text' && { + ...getColorStyle({ variant, theme, color, loadingPosition }), + '&.MuiButton-sizeMedium': { + height: 36 + }, + '&.MuiButton-sizeSmall': { + height: 30 + }, + '&.MuiButton-sizeLarge': { + height: 44 + } + }), + ...(shape && { + minWidth: 0, + '&.MuiButton-sizeMedium': { + width: 36, + height: 36 + }, + '&.MuiButton-sizeSmall': { + width: 30, + height: 30 + }, + '&.MuiButton-sizeLarge': { + width: 44, + height: 44 + }, + ...(shape === 'rounded' && { + borderRadius: '50%' + }) + }), + + ...(variant === 'outlined' && { + border: '1px solid' + }), + ...(variant === 'dashed' && { + border: '1px dashed' + }), + ...((variant === 'contained' || variant === 'shadow') && + !loading && { + color: '#fff' + }), + ...(variant !== 'text' && { + ...getColorStyle({ variant, theme, color, loadingPosition }) + }), + + '&.Mui-disabled': { + ...(variant !== 'text' && { + ...getColorStyle({ variant, theme, color, loadingPosition }) + }) + } + }) +); + +// ==============================|| EXTENDED - LOADING BUTTON ||============================== // + +const LoadingButton = forwardRef(({ variant = 'text', shape, children, color = 'primary', ...others }, ref) => { + const theme = useTheme(); + + return ( + + {children} + + ); +}); + +LoadingButton.propTypes = { + variant: PropTypes.string, + shape: PropTypes.string, + children: PropTypes.node, + color: PropTypes.string +}; + +LoadingButton.displayName = 'LoadingButton'; + +export default LoadingButton; diff --git a/src/components/@extended/Snackbar.js b/src/components/@extended/Snackbar.js new file mode 100644 index 0000000..1fa9b53 --- /dev/null +++ b/src/components/@extended/Snackbar.js @@ -0,0 +1,128 @@ +// material-ui +import { Alert, Button, Fade, Grow, Slide } from '@mui/material'; +import MuiSnackbar from '@mui/material/Snackbar'; + +// project-import +import IconButton from './IconButton'; +import { dispatch, useSelector } from 'store'; +import { closeSnackbar } from 'store/reducers/snackbar'; + +// assets +import { CloseOutlined } from '@ant-design/icons'; + +// animation function +function TransitionSlideLeft(props) { + return ; +} + +function TransitionSlideUp(props) { + return ; +} + +function TransitionSlideRight(props) { + return ; +} + +function TransitionSlideDown(props) { + return ; +} + +function GrowTransition(props) { + return ; +} + +// animation options +const animation = { + SlideLeft: TransitionSlideLeft, + SlideUp: TransitionSlideUp, + SlideRight: TransitionSlideRight, + SlideDown: TransitionSlideDown, + Grow: GrowTransition, + Fade +}; + +// ==============================|| SNACKBAR ||============================== // + +const Snackbar = () => { + const snackbar = useSelector((state) => state.snackbar); + const { actionButton, anchorOrigin, alert, close, message, open, transition, variant } = snackbar; + + const handleClose = (event, reason) => { + if (reason === 'clickaway') { + return; + } + dispatch(closeSnackbar()); + }; + + return ( + <> + {/* default snackbar */} + {variant === 'default' && ( + + + + + + + } + /> + )} + + {/* alert snackbar */} + {variant === 'alert' && ( + + + {actionButton !== false && ( + + )} + {close !== false && ( + + + + )} + + } + sx={{ + ...(alert.variant === 'outlined' && { + bgcolor: 'grey.0' + }) + }} + > + {message} + + + )} + + ); +}; + +export default Snackbar; diff --git a/src/components/@extended/Tooltip.js b/src/components/@extended/Tooltip.js new file mode 100644 index 0000000..63f1f91 --- /dev/null +++ b/src/components/@extended/Tooltip.js @@ -0,0 +1,67 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import { Box, tooltipClasses, Tooltip as MuiTooltip } from '@mui/material'; + +// project import +import getColors from 'utils/getColors'; + +// ==============================|| TOOLTIP - VARIANT ||============================== // + +function getVariantStyle({ color, theme, labelColor }) { + const colors = getColors(theme, color); + const { main, contrastText } = colors; + let colorValue = color ? color : ''; + + if (['primary', 'secondary', 'info', 'success', 'warning', 'error'].includes(colorValue)) { + return { + [`& .${tooltipClasses.tooltip}`]: { + backgroundColor: main, + color: labelColor ? labelColor : contrastText + }, + [`& .${tooltipClasses.arrow}`]: { + color: main + } + }; + } else { + return { + [`& .${tooltipClasses.tooltip}`]: { + backgroundColor: colorValue, + color: labelColor ? labelColor : contrastText, + boxShadow: theme.shadows[1] + }, + [`& .${tooltipClasses.arrow}`]: { + color: colorValue + } + }; + } +} + +// ==============================|| STYLED - TOOLTIP COLOR ||============================== // + +const TooltipStyle = styled(({ className, ...props }) => , { + shouldForwardProp: (prop) => prop !== 'color' && prop !== 'labelColor' +})(({ theme, color, labelColor }) => ({ + ...(color && getVariantStyle({ color, theme, labelColor })) +})); + +// ==============================|| EXTENDED - TOOLTIP ||============================== // + +export default function CustomTooltip({ children, arrow, labelColor = '', ...rest }) { + const theme = useTheme(); + return ( + + + {children} + + + ); +} + +CustomTooltip.propTypes = { + children: PropTypes.element, + arrow: PropTypes.bool, + labelColor: PropTypes.string, + rest: PropTypes.array +}; diff --git a/src/components/@extended/Transitions.js b/src/components/@extended/Transitions.js new file mode 100644 index 0000000..1b4377b --- /dev/null +++ b/src/components/@extended/Transitions.js @@ -0,0 +1,116 @@ +import PropTypes from 'prop-types'; +import { forwardRef } from 'react'; + +// material-ui +import { Collapse, Fade, Box, Grow, Slide, Zoom } from '@mui/material'; + +// ==============================|| TRANSITIONS ||============================== // + +const Transitions = forwardRef(({ children, position = 'top-left', type = 'grow', direction = 'up', ...others }, ref) => { + let positionSX = { + transformOrigin: '0 0 0' + }; + + switch (position) { + case 'top-right': + positionSX = { + transformOrigin: 'top right' + }; + break; + case 'top': + positionSX = { + transformOrigin: 'top' + }; + break; + case 'bottom-left': + positionSX = { + transformOrigin: 'bottom left' + }; + break; + case 'bottom-right': + positionSX = { + transformOrigin: 'bottom right' + }; + break; + case 'bottom': + positionSX = { + transformOrigin: 'bottom' + }; + break; + case 'top-left': + default: + positionSX = { + transformOrigin: '0 0 0' + }; + break; + } + + return ( + + {type === 'grow' && ( + + {children} + + )} + + {type === 'collapse' && ( + + {children} + + )} + + {type === 'fade' && ( + + {children} + + )} + + {type === 'slide' && ( + + {children} + + )} + + {type === 'zoom' && ( + + {children} + + )} + + ); +}); + +Transitions.propTypes = { + children: PropTypes.node, + type: PropTypes.oneOf(['grow', 'fade', 'collapse', 'slide', 'zoom']), + position: PropTypes.oneOf(['top-left', 'top-right', 'top', 'bottom-left', 'bottom-right', 'bottom']), + direction: PropTypes.oneOf(['up', 'down', 'left', 'right']) +}; + +export default Transitions; + +export const PopupTransition = forwardRef(function Transition(props, ref) { + return ; +}); diff --git a/src/components/@extended/progress/CircularWithLabel.js b/src/components/@extended/progress/CircularWithLabel.js new file mode 100644 index 0000000..4348dfc --- /dev/null +++ b/src/components/@extended/progress/CircularWithLabel.js @@ -0,0 +1,32 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, CircularProgress, Typography } from '@mui/material'; + +// ==============================|| PROGRESS - CIRCULAR LABEL ||============================== // + +export default function CircularWithLabel({ value, ...others }) { + return ( + + + + {`${Math.round(value)}%`} + + + ); +} + +CircularWithLabel.propTypes = { + value: PropTypes.number +}; diff --git a/src/components/@extended/progress/CircularWithPath.js b/src/components/@extended/progress/CircularWithPath.js new file mode 100644 index 0000000..2e85f3a --- /dev/null +++ b/src/components/@extended/progress/CircularWithPath.js @@ -0,0 +1,65 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, CircularProgress, Typography, circularProgressClasses } from '@mui/material'; + +// ==============================|| PROGRESS - CIRCULAR PATH ||============================== // + +export default function CircularWithPath({ value, size, variant, thickness, showLabel, pathColor, sx, ...others }) { + return ( + + + {showLabel && ( + + + {value ? `${Math.round(value)}%` : '0%'} + + + )} + + + ); +} + +CircularWithPath.propTypes = { + value: PropTypes.number, + size: PropTypes.number, + variant: PropTypes.string, + thickness: PropTypes.number, + showLabel: PropTypes.bool, + pathColor: PropTypes.string, + sx: PropTypes.array, + others: PropTypes.array +}; diff --git a/src/components/@extended/progress/LinearWithIcon.js b/src/components/@extended/progress/LinearWithIcon.js new file mode 100644 index 0000000..c1da65a --- /dev/null +++ b/src/components/@extended/progress/LinearWithIcon.js @@ -0,0 +1,22 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, LinearProgress } from '@mui/material'; + +// ==============================|| PROGRESS - LINEAR ICON ||============================== // + +export default function LinearWithIcon({ icon, value, ...others }) { + return ( + + + + + {icon} + + ); +} + +LinearWithIcon.propTypes = { + icon: PropTypes.node, + value: PropTypes.number +}; diff --git a/src/components/@extended/progress/LinearWithLabel.js b/src/components/@extended/progress/LinearWithLabel.js new file mode 100644 index 0000000..46adb2d --- /dev/null +++ b/src/components/@extended/progress/LinearWithLabel.js @@ -0,0 +1,23 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, LinearProgress, Typography } from '@mui/material'; + +// ==============================|| PROGRESS - LINEAR WITH LABEL ||============================== // + +export default function LinearWithLabel({ value, ...others }) { + return ( + + + + + + {`${Math.round(value)}%`} + + + ); +} + +LinearWithLabel.propTypes = { + value: PropTypes.number +}; diff --git a/src/components/CircularLoader.js b/src/components/CircularLoader.js new file mode 100644 index 0000000..e27d38c --- /dev/null +++ b/src/components/CircularLoader.js @@ -0,0 +1,47 @@ +import { styled } from '@mui/material/styles'; +import CircularProgress from '@mui/material/CircularProgress'; +import nelogo from '../assets/images/logo-sm.png'; + +// Styled Loader Wrapper +const LoaderWrapper = styled('div')(() => ({ + position: 'fixed', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + zIndex: 2001, + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + background: 'rgba(255, 255, 255, 0.7)', // Light overlay effect + padding: '20px', + borderRadius: '10px' // Soft rounded border +})); + +// Styled Logo Wrapper +const LogoWrapper = styled('div')(() => ({ + position: 'absolute', + width: '40px', // Adjust based on your logo size + height: '40px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' +})); + +// ==============================|| Custom Circular Loader with Logo ||============================== // +const CircularLoader = () => ( + + {/* Circular Loader */} + + + {/* Logo Positioned at the Center */} + + Logo + + +); + +export default CircularLoader; diff --git a/src/components/DateFilterDialog.js b/src/components/DateFilterDialog.js new file mode 100644 index 0000000..048bb0c --- /dev/null +++ b/src/components/DateFilterDialog.js @@ -0,0 +1,66 @@ +import React, { useState } from 'react'; +import { Dialog, DialogTitle, DialogContent, Button, Stack, Typography } from '@mui/material'; +import { DateRangePicker } from 'mui-daterange-picker'; +import dayjs from 'dayjs'; +import { addDays, addWeeks, startOfWeek, endOfWeek, startOfMonth, endOfMonth, addMonths } from 'date-fns'; + +const DateFilterDialog = ({ open, onClose, onSelect }) => { + const [selectedRange, setSelectedRange] = useState(null); + + const handleDateChange = (range) => { + setSelectedRange({ + startDate: dayjs(range.startDate).format('YYYY-MM-DD'), + endDate: dayjs(range.endDate).format('YYYY-MM-DD'), + label: range.label || 'custom' + }); + }; + + return ( +

+ + Select Filter Options + + + + + + + + + + + ); +}; + +export default DateFilterDialog; diff --git a/src/components/Loadable.js b/src/components/Loadable.js new file mode 100644 index 0000000..eec9c64 --- /dev/null +++ b/src/components/Loadable.js @@ -0,0 +1,15 @@ +import { Suspense } from 'react'; + +// project import +import Loader from './Loader'; + +// ==============================|| LOADABLE - LAZY LOADING ||============================== // + +const Loadable = (Component) => (props) => + ( + }> + + + ); + +export default Loadable; diff --git a/src/components/Loader.js b/src/components/Loader.js new file mode 100644 index 0000000..d916a8a --- /dev/null +++ b/src/components/Loader.js @@ -0,0 +1,25 @@ +// material-ui +import { styled } from '@mui/material/styles'; +import LinearProgress from '@mui/material/LinearProgress'; + +// loader style +const LoaderWrapper = styled('div')(({ theme }) => ({ + position: 'fixed', + top: 0, + left: 0, + zIndex: 2001, + width: '100%', + '& > * + *': { + marginTop: theme.spacing(2) + } +})); + +// ==============================|| Loader ||============================== // + +const Loader = () => ( + + + +); + +export default Loader; diff --git a/src/components/Locales.js b/src/components/Locales.js new file mode 100644 index 0000000..a944c89 --- /dev/null +++ b/src/components/Locales.js @@ -0,0 +1,43 @@ +import PropTypes from 'prop-types'; +import { useEffect, useState } from 'react'; + +// third-party +import { IntlProvider } from 'react-intl'; + +// project import +import useConfig from 'hooks/useConfig'; + +// load locales files +const loadLocaleData = () => { + return import('utils/locales/en.json'); +}; + +// ==============================|| LOCALIZATION ||============================== // + +const Locales = ({ children }) => { + const { i18n } = useConfig(); + + const [messages, setMessages] = useState(); + + useEffect(() => { + loadLocaleData(i18n).then((d) => { + setMessages(d.default); + }); + }, [i18n]); + + return ( + <> + {messages && ( + + {children} + + )} + + ); +}; + +Locales.propTypes = { + children: PropTypes.node +}; + +export default Locales; diff --git a/src/components/MainCard.js b/src/components/MainCard.js new file mode 100644 index 0000000..c2d5cca --- /dev/null +++ b/src/components/MainCard.js @@ -0,0 +1,141 @@ +import PropTypes from 'prop-types'; +import { forwardRef } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Card, CardContent, CardHeader, Divider, Typography } from '@mui/material'; + +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| CUSTOM - MAIN CARD ||============================== // + +const MainCard = forwardRef( + ( + { + border = true, + boxShadow, + children, + subheader, + content = true, + contentSX = {}, + headerSX, + darkTitle, + divider = true, + elevation, + secondary, + shadow, + sx = {}, + title, + modal = false, + ...others + }, + ref + ) => { + const theme = useTheme(); + boxShadow = theme.palette.mode === ThemeMode.DARK ? boxShadow || true : boxShadow; + + return ( + + {/* card header and action */} + {/* {!darkTitle && title && ( */} + {!darkTitle && ( + + )} + {darkTitle && title && ( + {title || ''}} + action={secondary} + /> + )} + + {/* content & header divider */} + {title && divider && } + + {/* card content */} + {content && ( + + {children} + + )} + {!content && children} + + ); + } +); + +MainCard.propTypes = { + border: PropTypes.bool, + boxShadow: PropTypes.bool, + children: PropTypes.node, + subheader: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), + content: PropTypes.bool, + contentClass: PropTypes.string, + contentSX: PropTypes.object, + darkTitle: PropTypes.bool, + divider: PropTypes.bool, + elevation: PropTypes.number, + secondary: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]), + shadow: PropTypes.string, + sx: PropTypes.object, + title: PropTypes.oneOfType([PropTypes.node, PropTypes.string, PropTypes.object]), + modal: PropTypes.bool +}; + +export default MainCard; diff --git a/src/components/RTLLayout.js b/src/components/RTLLayout.js new file mode 100644 index 0000000..60e7bbd --- /dev/null +++ b/src/components/RTLLayout.js @@ -0,0 +1,37 @@ +import PropTypes from 'prop-types'; +import { useEffect } from 'react'; + +// material-ui +import { CacheProvider } from '@emotion/react'; +import createCache from '@emotion/cache'; + +// third-party +import rtlPlugin from 'stylis-plugin-rtl'; + +// project import +import { ThemeDirection } from 'config'; +import useConfig from 'hooks/useConfig'; + +// ==============================|| RTL LAYOUT ||============================== // + +const RTLLayout = ({ children }) => { + const { themeDirection } = useConfig(); + + useEffect(() => { + document.dir = themeDirection; + }, [themeDirection]); + + const cacheRtl = createCache({ + key: themeDirection === ThemeDirection.RTL ? 'rtl' : 'css', + prepend: true, + stylisPlugins: themeDirection === ThemeDirection.RTL ? [rtlPlugin] : [] + }); + + return {children}; +}; + +RTLLayout.propTypes = { + children: PropTypes.node +}; + +export default RTLLayout; diff --git a/src/components/ScrollTop.js b/src/components/ScrollTop.js new file mode 100644 index 0000000..739b64f --- /dev/null +++ b/src/components/ScrollTop.js @@ -0,0 +1,24 @@ +import PropTypes from 'prop-types'; +import { useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; + +const ScrollTop = ({ children }) => { + const { pathname } = useLocation(); + + useEffect(() => { + // Scroll to top + window.scrollTo({ + top: 0, + left: 0, + behavior: 'smooth' + }); + }, [pathname]); + + return children || null; +}; + +ScrollTop.propTypes = { + children: PropTypes.node +}; + +export default ScrollTop; diff --git a/src/components/ScrollX.js b/src/components/ScrollX.js new file mode 100644 index 0000000..eb4d863 --- /dev/null +++ b/src/components/ScrollX.js @@ -0,0 +1,10 @@ +// material-ui +import { styled } from '@mui/material/styles'; + +const ScrollX = styled('div')({ + width: '100%', + overflowX: 'auto', + display: 'block' +}); + +export default ScrollX; diff --git a/src/components/SecondaryAction.js b/src/components/SecondaryAction.js new file mode 100644 index 0000000..d413aa6 --- /dev/null +++ b/src/components/SecondaryAction.js @@ -0,0 +1,65 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Avatar, ButtonBase, Link, Tooltip } from '@mui/material'; + +// ==============================|| CARD - SECONDARY ACTION ||============================== // + +const CardSecondaryAction = ({ title, link, icon }) => { + const theme = useTheme(); + + return ( + + + {!icon && ( + + + + + + + + + + + + + + + + )} + {icon && ( + + {icon} + + )} + + + ); +}; + +CardSecondaryAction.propTypes = { + title: PropTypes.string, + link: PropTypes.string, + icon: PropTypes.oneOf([PropTypes.node, PropTypes.string]) +}; + +export default CardSecondaryAction; diff --git a/src/components/cards/AuthFooter.js b/src/components/cards/AuthFooter.js new file mode 100644 index 0000000..75622ae --- /dev/null +++ b/src/components/cards/AuthFooter.js @@ -0,0 +1,61 @@ +// material-ui +import { Container, Link, Stack, Typography, useMediaQuery } from '@mui/material'; + +// ==============================|| FOOTER - AUTHENTICATION ||============================== // + +const AuthFooter = () => { + const matchDownSM = useMediaQuery((theme) => theme.breakpoints.down('sm')); + + return ( + + + + This site is protected by{' '} + + Privacy Policy + + + + + + Terms and Conditions + + + Privacy Policy + + + CA Privacy Notice + + + + + ); +}; + +export default AuthFooter; diff --git a/src/components/cards/ComponentHeader.js b/src/components/cards/ComponentHeader.js new file mode 100644 index 0000000..20178bb --- /dev/null +++ b/src/components/cards/ComponentHeader.js @@ -0,0 +1,49 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, Grid, Link, Stack, Typography } from '@mui/material'; + +// assets +import { GlobalOutlined, NodeExpandOutlined } from '@ant-design/icons'; + +// ==============================|| COMPONENTS - BREADCRUMBS ||============================== // + +const ComponentHeader = ({ title, caption, directory, link }) => ( + + + {title} + {caption && ( + + {caption} + + )} + + + {directory && ( + + + + {directory} + + + )} + {link && ( + + + + {link} + + + )} + + +); + +ComponentHeader.propTypes = { + title: PropTypes.string, + caption: PropTypes.string, + directory: PropTypes.string, + link: PropTypes.string +}; + +export default ComponentHeader; diff --git a/src/components/cards/e-commerce/FloatingCart.js b/src/components/cards/e-commerce/FloatingCart.js new file mode 100644 index 0000000..75fe8d6 --- /dev/null +++ b/src/components/cards/e-commerce/FloatingCart.js @@ -0,0 +1,52 @@ +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Fab, Badge } from '@mui/material'; + +// project import + +// assets + +// ==============================|| CART ITEMS - FLOATING BUTTON ||============================== // + +const FloatingCart = ({ element, count = 0, onClick, sx }) => { + const theme = useTheme(); + + // const cart = useSelector((state) => state.cart); + // const totalQuantity = sum(cart.checkout.products.map((item) => item.quantity)); + + return ( + + + {element} + + + ); +}; + +export default FloatingCart; diff --git a/src/components/cards/e-commerce/ProductCard.js b/src/components/cards/e-commerce/ProductCard.js new file mode 100644 index 0000000..d1e3b15 --- /dev/null +++ b/src/components/cards/e-commerce/ProductCard.js @@ -0,0 +1,176 @@ +import PropTypes from 'prop-types'; +import { useEffect, useState } from 'react'; +import { Link } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Button, CardContent, CardMedia, Chip, Divider, Grid, Rating, Stack, Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; +import IconButton from 'components/@extended/IconButton'; +import SkeletonProductPlaceholder from 'components/cards/skeleton/ProductPlaceholder'; +import { useDispatch, useSelector } from 'store'; +import { addProduct } from 'store/reducers/cart'; +import { openSnackbar } from 'store/reducers/snackbar'; + +// assets +import { HeartOutlined, HeartFilled } from '@ant-design/icons'; + +const prodImage = require.context('assets/images/e-commerce', true); + +// ==============================|| PRODUCT CARD ||============================== // + +const ProductCard = ({ id, color, name, brand, offer, isStock, image, description, offerPrice, salePrice, rating }) => { + const theme = useTheme(); + const dispatch = useDispatch(); + + const prodProfile = image && prodImage(`./${image}`); + const [productRating] = useState(rating); + const [wishlisted, setWishlisted] = useState(false); + const cart = useSelector((state) => state.cart); + + const addCart = () => { + dispatch(addProduct({ id, name, image, salePrice, offerPrice, color, size: 8, quantity: 1, description }, cart.checkout.products)); + dispatch( + openSnackbar({ + open: true, + message: 'Add To Cart Success', + variant: 'alert', + alert: { + color: 'success' + }, + close: false + }) + ); + }; + + const addToFavourite = () => { + setWishlisted(!wishlisted); + dispatch( + openSnackbar({ + open: true, + message: 'Added to favourites', + variant: 'alert', + alert: { + color: 'success' + }, + close: false + }) + ); + }; + + const [isLoading, setLoading] = useState(true); + useEffect(() => { + setLoading(false); + }, []); + + return ( + <> + {isLoading ? ( + + ) : ( + + + + + + {!isStock && } + {offer && } + + {wishlisted ? ( + + ) : ( + + )} + + + + + + + + + {name} + + + {brand} + + + + + + + + ${offerPrice} + {salePrice && ( + + ${salePrice} + + )} + + + + ({productRating?.toFixed(1)}) + + + + + + + + + + )} + + ); +}; + +ProductCard.propTypes = { + id: PropTypes.number, + color: PropTypes.string, + name: PropTypes.string, + brand: PropTypes.string, + isStock: PropTypes.bool, + image: PropTypes.string, + description: PropTypes.string, + offerPrice: PropTypes.number, + salePrice: PropTypes.number, + offer: PropTypes.string, + rating: PropTypes.number +}; + +export default ProductCard; diff --git a/src/components/cards/e-commerce/ProductReview.js b/src/components/cards/e-commerce/ProductReview.js new file mode 100644 index 0000000..bf45f2f --- /dev/null +++ b/src/components/cards/e-commerce/ProductReview.js @@ -0,0 +1,52 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Grid, Rating, Stack, Typography } from '@mui/material'; + +// project imports +import Avatar from 'components/@extended/Avatar'; + +// assets +import { StarFilled, StarOutlined } from '@ant-design/icons'; + +const avatarImage = require.context('assets/images/users', true); + +// ==============================|| PRODUCT DETAILS - REVIEW ||============================== // + +const ProductReview = ({ avatar, date, name, rating, review }) => ( + + + + + + + {name} + + + {date} + + } + emptyIcon={} + precision={0.1} + readOnly + /> + + {review} + + + +); + +ProductReview.propTypes = { + avatar: PropTypes.string, + date: PropTypes.string, + name: PropTypes.string, + rating: PropTypes.number, + review: PropTypes.string +}; + +export default ProductReview; diff --git a/src/components/cards/skeleton/ProductPlaceholder.js b/src/components/cards/skeleton/ProductPlaceholder.js new file mode 100644 index 0000000..3002169 --- /dev/null +++ b/src/components/cards/skeleton/ProductPlaceholder.js @@ -0,0 +1,44 @@ +// material-ui +import { CardContent, Grid, Skeleton, Stack } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// ===========================|| SKELETON - PRODUCT CARD ||=========================== // + +const ProductPlaceholder = () => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +export default ProductPlaceholder; diff --git a/src/components/cards/statistics/AnalyticEcommerce.js b/src/components/cards/statistics/AnalyticEcommerce.js new file mode 100644 index 0000000..5610371 --- /dev/null +++ b/src/components/cards/statistics/AnalyticEcommerce.js @@ -0,0 +1,66 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, Chip, Grid, Stack, Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// assets +import { FallOutlined, RiseOutlined } from '@ant-design/icons'; + +// ==============================|| STATISTICS - ECOMMERCE CARD ||============================== // + +const AnalyticEcommerce = ({ color = 'primary', title, count, percentage, isLoss, extra }) => ( + + + + {title} + + + + + {count} + + + {percentage && ( + + + {!isLoss && } + {isLoss && } + + } + label={`${percentage}%`} + sx={{ ml: 1.25, pl: 1 }} + size="small" + /> + + )} + + + + + You made an extra{' '} + + {extra} + {' '} + this year + + + +); + +AnalyticEcommerce.propTypes = { + title: PropTypes.string, + count: PropTypes.string, + percentage: PropTypes.number, + isLoss: PropTypes.bool, + color: PropTypes.string, + extra: PropTypes.string +}; + +export default AnalyticEcommerce; diff --git a/src/components/cards/statistics/AnalyticsDataCard.js b/src/components/cards/statistics/AnalyticsDataCard.js new file mode 100644 index 0000000..9d96fec --- /dev/null +++ b/src/components/cards/statistics/AnalyticsDataCard.js @@ -0,0 +1,56 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, Chip, Stack, Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// assets +import { RiseOutlined, FallOutlined } from '@ant-design/icons'; + +// ==============================|| STATISTICS - ECOMMERCE CARD ||============================== // + +const AnalyticsDataCard = ({ color = 'primary', title, count, percentage, isLoss, children }) => ( + + + + + {title} + + + + {count} + + {percentage && ( + + {!isLoss && } + {isLoss && } + + } + label={`${percentage}%`} + sx={{ ml: 1.25, pl: 1 }} + size="small" + /> + )} + + + + {children} + +); + +AnalyticsDataCard.propTypes = { + title: PropTypes.string, + count: PropTypes.string, + percentage: PropTypes.number, + isLoss: PropTypes.bool, + color: PropTypes.string, + children: PropTypes.node +}; + +export default AnalyticsDataCard; diff --git a/src/components/cards/statistics/HoverSocialCard.js b/src/components/cards/statistics/HoverSocialCard.js new file mode 100644 index 0000000..192df37 --- /dev/null +++ b/src/components/cards/statistics/HoverSocialCard.js @@ -0,0 +1,70 @@ +// material-ui +import { Box, Card, CardContent, Grid, Typography } from '@mui/material'; + +// ===========================|| HOVER SOCIAL CARD ||=========================== // + +const HoverSocialCard = ({ + primary, + secondary, + percentage, + // iconPrimary, + color, + sx +}) => { + // const IconPrimary = iconPrimary; + // const primaryIcon = iconPrimary ? : null; + + return ( + + + + + {/* {percentage.toString()} % */} + {percentage && typeof percentage === 'number' ? `${percentage.toString()} %` : percentage} + + {/* {primaryIcon} */} + + + + + {secondary} + + + + + {primary} + + + + + + ); +}; + +export default HoverSocialCard; diff --git a/src/components/logo/LogoIcon.js b/src/components/logo/LogoIcon.js new file mode 100644 index 0000000..cfc19e2 --- /dev/null +++ b/src/components/logo/LogoIcon.js @@ -0,0 +1,56 @@ +// material-ui +import { useTheme } from '@mui/material/styles'; + +/** + * if you want to use image instead of uncomment following. + * + * import logoIconDark from 'assets/images/logo-icon-dark.svg'; + * import logoIcon from 'assets/images/logo-icon.svg'; + * import { ThemeMode } from 'config'; + * + */ + +// ==============================|| LOGO ICON SVG ||============================== // + +const LogoIcon = () => { + const theme = useTheme(); + + return ( + /** + * if you want to use image instead of svg uncomment following, and comment out element. + * + * Mantis + * + */ + + + + + + + + + + + + + + + + + ); +}; + +export default LogoIcon; diff --git a/src/components/logo/LogoMain.js b/src/components/logo/LogoMain.js new file mode 100644 index 0000000..72adc22 --- /dev/null +++ b/src/components/logo/LogoMain.js @@ -0,0 +1,68 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { ThemeMode } from 'config'; + +/** + * if you want to use image instead of uncomment following. + * + * import logoDark from 'assets/images/logo-dark.svg'; + * import logo from 'assets/images/logo.svg'; + * + */ + +// ==============================|| LOGO SVG ||============================== // + +const LogoMain = ({ reverse }) => { + const theme = useTheme(); + return ( + /** + * if you want to use image instead of svg uncomment following, and comment out element. + * + * Mantis + * + */ + <> + + + + + + + + + + + + + + + + + + + ); +}; + +LogoMain.propTypes = { + reverse: PropTypes.bool +}; + +export default LogoMain; diff --git a/src/components/logo/index.js b/src/components/logo/index.js new file mode 100644 index 0000000..bb2e7af --- /dev/null +++ b/src/components/logo/index.js @@ -0,0 +1,27 @@ +import PropTypes from 'prop-types'; +import { Link } from 'react-router-dom'; + +// material-ui +import { ButtonBase } from '@mui/material'; + +// project import +import LogoMain from './LogoMain'; +import LogoIcon from './LogoIcon'; +import { APP_DEFAULT_PATH } from 'config'; + +// ==============================|| MAIN LOGO ||============================== // + +const LogoSection = ({ reverse, isIcon, sx, to }) => ( + + {isIcon ? : } + +); + +LogoSection.propTypes = { + reverse: PropTypes.bool, + isIcon: PropTypes.bool, + sx: PropTypes.object, + to: PropTypes.string +}; + +export default LogoSection; diff --git a/src/components/nearle_components/DebounceSearchBar.js b/src/components/nearle_components/DebounceSearchBar.js new file mode 100644 index 0000000..9ee6059 --- /dev/null +++ b/src/components/nearle_components/DebounceSearchBar.js @@ -0,0 +1,66 @@ +/* eslint-disable react/prop-types */ +import React, { useEffect, useRef } from 'react'; +import { OutlinedInput, InputAdornment, Tooltip, IconButton } from '@mui/material'; +import { SearchOutlined } from '@mui/icons-material'; +import ClearIcon from '@mui/icons-material/Clear'; +import { useDebounce } from 'use-debounce'; + +const DebounceSearchBar = ({ + value, + onChange, + onDebouncedChange, // 🔹 NEW + debounceTime = 500, + placeholder = 'Search (ctrl+k)', + sx +}) => { + const textFieldRef = useRef(null); + + const [debouncedValue] = useDebounce(value, debounceTime); + + // fire debounced callback whenever debouncedValue changes + useEffect(() => { + if (onDebouncedChange) { + onDebouncedChange(debouncedValue); + } + }, [debouncedValue, onDebouncedChange]); + + useEffect(() => { + const handleKeyPress = (event) => { + if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { + event.preventDefault(); + textFieldRef.current?.focus(); + } + if (event.key === 'Escape' && document.activeElement === textFieldRef.current) { + textFieldRef.current.blur(); + } + }; + document.addEventListener('keydown', handleKeyPress); + return () => document.removeEventListener('keydown', handleKeyPress); + }, []); + + return ( + onChange(e.target.value)} + startAdornment={ + + + + } + endAdornment={ + + onChange('')}> + + + + } + /> + ); +}; + +export default DebounceSearchBar; diff --git a/src/components/nearle_components/GlobalToast.js b/src/components/nearle_components/GlobalToast.js new file mode 100644 index 0000000..8ab14d9 --- /dev/null +++ b/src/components/nearle_components/GlobalToast.js @@ -0,0 +1,30 @@ +import { enqueueSnackbar, closeSnackbar } from 'notistack'; + +import { setSnackbarId } from '../../store/reducers/toastSlice'; +import { store, dispatch } from 'store'; + +export const GlobalToast = (message, color = 'default', vertical = 'top') => { + const id = enqueueSnackbar(message, { + variant: color, + anchorOrigin: { vertical, horizontal: 'right' }, + autoHideDuration: null, + action: (snackbarId) => ( + + ) + }); + + // Save snackbarId globally + dispatch(setSnackbarId(id)); + + return id; +}; + +// GLOBAL close function +export const closeGlobalToast = () => { + const id = store.getState().toastSlice.snackbarId; + if (id) { + closeSnackbar(id); + } +}; diff --git a/src/components/nearle_components/LoaderWithImage.js b/src/components/nearle_components/LoaderWithImage.js new file mode 100644 index 0000000..209cdeb --- /dev/null +++ b/src/components/nearle_components/LoaderWithImage.js @@ -0,0 +1,34 @@ +// LoaderWithImage.jsx +import React from 'react'; +import { Box, CircularProgress } from '@mui/material'; +import nelogo from '../../assets/images/logo-sm.png'; + +export default function LoaderWithImage({ size = 70, imgSize = 40, src, alt = 'loader' }) { + return ( + + + + + {alt} + + + ); +} diff --git a/src/components/nearle_components/LocationAutocomplete.js b/src/components/nearle_components/LocationAutocomplete.js new file mode 100644 index 0000000..e0a82c2 --- /dev/null +++ b/src/components/nearle_components/LocationAutocomplete.js @@ -0,0 +1,30 @@ +import LocationOnIcon from '@mui/icons-material/LocationOn'; +import React, { forwardRef } from 'react'; +import { Autocomplete, InputAdornment, TextField } from '@mui/material'; + +const LocationAutocomplete = forwardRef(({ setAppId, setLocoName, setPage, sx, textfeildSx }, ref) => { + const locations = JSON.parse(localStorage.getItem('applocations') || '[]'); + + return ( + option?.locationname ?? ''} + sx={{ ...sx }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setAppId?.(0); + setLocoName?.(''); + setPage?.(0); + } else if (value) { + setAppId?.(value.applocationid); + setLocoName?.(value.locationname); + setPage?.(0); + } + }} + renderInput={(params) => } + /> + ); +}); + +export default LocationAutocomplete; diff --git a/src/components/nearle_components/SearchBar.js b/src/components/nearle_components/SearchBar.js new file mode 100644 index 0000000..4cc2bb6 --- /dev/null +++ b/src/components/nearle_components/SearchBar.js @@ -0,0 +1,77 @@ +// DebouncedSearchBar.jsx +import React, { useEffect, useRef, useState } from 'react'; +import { FormControl, OutlinedInput, InputAdornment, IconButton, useTheme } from '@mui/material'; +import SearchOutlined from '@mui/icons-material/SearchOutlined'; +import ClearIcon from '@mui/icons-material/Clear'; + +const SearchBar = ({ value, onChange, sx, placeholder = 'Search (Ctrl + K)', delay = 300 }) => { + const theme = useTheme(); + const inputRef = useRef(null); + + // Local input state for immediate UI update + const [inputValue, setInputValue] = useState(value || ''); + + /* Sync external value when it changes */ + useEffect(() => { + setInputValue(value || ''); + }, [value]); + + /* ================================ + 🔥 Debounce Logic + ================================ */ + useEffect(() => { + const handler = setTimeout(() => { + if (inputValue !== value) { + onChange({ target: { value: inputValue } }); + } + }, delay); + + return () => clearTimeout(handler); + }, [inputValue]); + + /* CTRL + K / CMD + K & ESC behavior */ + useEffect(() => { + const handleKeyPress = (event) => { + if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { + event.preventDefault(); + inputRef.current?.focus(); + } + + if (event.key === 'Escape' && document.activeElement === inputRef.current) { + inputRef.current.blur(); + } + }; + + document.addEventListener('keydown', handleKeyPress); + return () => document.removeEventListener('keydown', handleKeyPress); + }, []); + + return ( + + setInputValue(e.target.value)} // No direct onChange + autoComplete="off" + size="large" + startAdornment={ + + + + } + endAdornment={ + setInputValue('')}> + + + } + /> + + ); +}; + +export default SearchBar; diff --git a/src/components/nearle_components/TableLoader.js b/src/components/nearle_components/TableLoader.js new file mode 100644 index 0000000..4cada6f --- /dev/null +++ b/src/components/nearle_components/TableLoader.js @@ -0,0 +1,18 @@ +import React from 'react'; +import { TableRow, TableCell, Skeleton } from '@mui/material'; + +export default function TableLoader({ rows = 5, columns = 6, height = 40 }) { + return ( + <> + {[...Array(rows)].map((_, rowIndex) => ( + + {[...Array(columns)].map((_, colIndex) => ( + + + + ))} + + ))} + + ); +} diff --git a/src/components/nearle_components/TitleCard.js b/src/components/nearle_components/TitleCard.js new file mode 100644 index 0000000..cfcaf38 --- /dev/null +++ b/src/components/nearle_components/TitleCard.js @@ -0,0 +1,22 @@ +import React from 'react'; +import { Stack, Typography, Box } from '@mui/material'; + +const TitleCard = ({ sx, title, children, starticon }) => { + return ( + + + + {starticon && starticon} + {title} + + {children} + + + ); +}; + +export default TitleCard; diff --git a/src/components/third-party/Notistack.js b/src/components/third-party/Notistack.js new file mode 100644 index 0000000..f718927 --- /dev/null +++ b/src/components/third-party/Notistack.js @@ -0,0 +1,65 @@ +import PropTypes from 'prop-types'; + +//material-ui +import { styled } from '@mui/material/styles'; + +// third-party +import { SnackbarProvider } from 'notistack'; + +// project import +import { useSelector } from 'store'; + +// assets +import { CheckCircleOutlined, CloseCircleOutlined, InfoCircleOutlined, WarningOutlined } from '@ant-design/icons'; + +// custom styles +const StyledSnackbarProvider = styled(SnackbarProvider)(({ theme }) => ({ + '&.notistack-MuiContent-default': { + backgroundColor: theme.palette.primary.main + }, + '&.notistack-MuiContent-error': { + backgroundColor: theme.palette.error.main + }, + '&.notistack-MuiContent-success': { + backgroundColor: theme.palette.success.main + }, + '&.notistack-MuiContent-info': { + backgroundColor: theme.palette.info.main + }, + '&.notistack-MuiContent-warning': { + backgroundColor: theme.palette.warning.main + } +})); + +// ===========================|| SNACKBAR - NOTISTACK ||=========================== // + +const Notistack = ({ children }) => { + const snackbar = useSelector((state) => state.snackbar); + const iconSX = { marginRight: 8, fontSize: '1.15rem' }; + + return ( + , + error: , + warning: , + info: + } + : undefined + } + hideIconVariant={snackbar.iconVariant === 'hide' ? true : false} + > + {children} + + ); +}; + +Notistack.propTypes = { + children: PropTypes.node +}; + +export default Notistack; diff --git a/src/components/third-party/OpenToast.js b/src/components/third-party/OpenToast.js new file mode 100644 index 0000000..5907819 --- /dev/null +++ b/src/components/third-party/OpenToast.js @@ -0,0 +1,9 @@ +import { enqueueSnackbar } from 'notistack'; + +export const OpenToast = (message, color, time) => { + return enqueueSnackbar(message, { + variant: color, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time || 2000 + }); +}; diff --git a/src/components/third-party/ReactTable.js b/src/components/third-party/ReactTable.js new file mode 100644 index 0000000..ce477ec --- /dev/null +++ b/src/components/third-party/ReactTable.js @@ -0,0 +1,595 @@ +import PropTypes from 'prop-types'; +import React, { forwardRef, useEffect, useRef, useState } from 'react'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import { + Box, + Button, + Checkbox, + Chip, + CircularProgress, + FormControl, + Grid, + ListItemText, + MenuItem, + OutlinedInput, + Pagination, + Select, + Stack, + TableCell, + TableRow, + TextField, + Tooltip, + Typography +} from '@mui/material'; + +// project-import +import { ThemeMode } from 'config'; + +// third-party +import { CSVLink } from 'react-csv'; +import { getEmptyImage } from 'react-dnd-html5-backend'; +import { useDrop, useDrag, useDragLayer } from 'react-dnd'; + +// assets +import { CaretUpOutlined, CaretDownOutlined, DragOutlined, CheckOutlined, DownloadOutlined } from '@ant-design/icons'; + +// ==============================|| HEADER HEADER ||============================== // + +export const HeaderSort = ({ column, sort }) => { + const theme = useTheme(); + return ( + + {column.render('Header')} + {!column.disableSortBy && ( + + + + + )} + + ); +}; + +HeaderSort.propTypes = { + column: PropTypes.any, + sort: PropTypes.bool +}; + +// ==============================|| TABLE PAGINATION ||============================== // + +export const TablePagination = ({ gotoPage, rows, setPageSize, pageSize, pageIndex }) => { + const [open, setOpen] = useState(false); + + const handleClose = () => { + setOpen(false); + }; + + const handleOpen = () => { + setOpen(true); + }; + + const handleChangePagination = (event, value) => { + gotoPage(value - 1); + }; + + const handleChange = (event) => { + setPageSize(+event.target.value); + }; + + return ( + + + + + + Row per page + + + + + + + Go to + + { + const page = e.target.value ? Number(e.target.value) : 0; + gotoPage(page - 1); + }} + sx={{ '& .MuiOutlinedInput-input': { py: 0.75, px: 1.25, width: 36 } }} + /> + + + + + + + ); +}; + +TablePagination.propTypes = { + gotoPage: PropTypes.func, + setPageSize: PropTypes.func, + pageIndex: PropTypes.number, + pageSize: PropTypes.number, + rows: PropTypes.array +}; + +// ==============================|| SELECTION - PREVIEW ||============================== // + +export const IndeterminateCheckbox = forwardRef(({ indeterminate, ...rest }, ref) => { + const defaultRef = useRef(); + const resolvedRef = ref || defaultRef; + + return ; +}); + +IndeterminateCheckbox.propTypes = { + indeterminate: PropTypes.bool +}; + +export const TableRowSelection = ({ selected }) => ( + <> + {selected > 0 && ( + + )} + +); + +TableRowSelection.propTypes = { + selected: PropTypes.number +}; + +// ==============================|| DRAG & DROP - DRAGGABLE HEADR ||============================== // + +export const DraggableHeader = ({ children, column, index, reorder }) => { + const theme = useTheme(); + const ref = useRef(); + const { id, Header } = column; + + const DND_ITEM_TYPE = 'column'; + + const [{ isOverCurrent }, drop] = useDrop({ + accept: DND_ITEM_TYPE, + drop: (item) => { + reorder(item, index); + }, + collect: (monitor) => ({ + isOver: monitor.isOver(), + isOverCurrent: monitor.isOver({ shallow: true }) + }) + }); + + const [{ isDragging }, drag, preview] = useDrag({ + type: DND_ITEM_TYPE, + item: () => ({ + id, + index, + header: Header + }), + collect: (monitor) => ({ + isDragging: monitor.isDragging() + }) + }); + + useEffect(() => { + preview(getEmptyImage(), { captureDraggingState: true }); + }, [preview]); + + drag(drop(ref)); + + let borderColor = theme.palette.text.primary; + if (isOverCurrent) { + borderColor = theme.palette.primary.main; + } + + return ( + + {children} + + ); +}; + +DraggableHeader.propTypes = { + column: PropTypes.any, + sort: PropTypes.bool, + reorder: PropTypes.func, + index: PropTypes.number, + children: PropTypes.node +}; + +// ==============================|| DRAG & DROP - DRAG PREVIEW ||============================== // + +const DragHeader = styled('div')(({ theme, x, y }) => ({ + color: theme.palette.text.secondary, + position: 'fixed', + pointerEvents: 'none', + left: 12, + top: 24, + transform: `translate(${x}px, ${y}px)`, + opacity: 0.6 +})); + +export const DragPreview = () => { + const theme = useTheme(); + const { isDragging, item, currentOffset } = useDragLayer((monitor) => ({ + item: monitor.getItem(), + itemType: monitor.getItemType(), + initialOffset: monitor.getInitialSourceClientOffset(), + currentOffset: monitor.getSourceClientOffset(), + isDragging: monitor.isDragging() + })); + + const { x, y } = currentOffset || {}; + + return isDragging ? ( + + {item.header && ( + + + {item.header} + + )} + + ) : null; +}; + +// ==============================|| DRAG & DROP - DRAGGABLE ROW ||============================== // + +export const DraggableRow = ({ index, moveRow, children }) => { + const DND_ITEM_TYPE = 'row'; + + const dropRef = useRef(null); + const dragRef = useRef(null); + + const [, drop] = useDrop({ + accept: DND_ITEM_TYPE, + hover(item, monitor) { + if (!dropRef.current) { + return; + } + const dragIndex = item.index; + const hoverIndex = index; + if (dragIndex === hoverIndex) { + return; + } + + const hoverBoundingRect = dropRef.current.getBoundingClientRect(); + const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; + const clientOffset = monitor.getClientOffset(); + const hoverClientY = clientOffset.y - hoverBoundingRect.top; + if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) { + return; + } + if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) { + return; + } + + moveRow(dragIndex, hoverIndex); + item.index = hoverIndex; + } + }); + + const [{ isDragging }, drag, preview] = useDrag({ + type: DND_ITEM_TYPE, + item: { index }, + collect: (monitor) => ({ + isDragging: monitor.isDragging() + }) + }); + + const opacity = isDragging ? 0 : 1; + + preview(drop(dropRef)); + drag(dragRef); + + return ( + + + + + {children} + + ); +}; + +DraggableRow.propTypes = { + moveRow: PropTypes.func, + index: PropTypes.number, + children: PropTypes.node +}; + +// ==============================|| COLUMN HIDING - SELECT ||============================== // + +const ITEM_HEIGHT = 48; +const ITEM_PADDING_TOP = 8; +const MenuProps = { + PaperProps: { + style: { + maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, + width: 200 + } + } +}; + +export const HidingSelect = ({ hiddenColumns, setHiddenColumns, allColumns }) => { + const handleChange = (event) => { + const { + target: { value } + } = event; + + setHiddenColumns(typeof value === 'string' ? value.split(',') : value); + }; + + const theme = useTheme(); + let visible = allColumns.filter((c) => !hiddenColumns.includes(c.id)).length; + + return ( + + + + ); +}; + +HidingSelect.propTypes = { + setHiddenColumns: PropTypes.func, + hiddenColumns: PropTypes.array, + allColumns: PropTypes.array +}; + +// ==============================|| COLUMN SORTING - SELECT ||============================== // + +export const SortingSelect = ({ sortBy, setSortBy, allColumns }) => { + const [sort, setSort] = useState(sortBy); + + const handleChange = (event) => { + const { + target: { value } + } = event; + setSort(value); + setSortBy([{ id: value, desc: false }]); + }; + + return ( + + + + ); +}; + +SortingSelect.propTypes = { + setSortBy: PropTypes.func, + sortBy: PropTypes.string, + allColumns: PropTypes.array +}; + +// ==============================|| CSV EXPORT ||============================== // + +export const CSVExport = ({ data, filename, headers, label, style, btnLoading, onClick }) => { + return ( + + + + + + ); +}; + +export default CSVExport; + +CSVExport.propTypes = { + data: PropTypes.array, + headers: PropTypes.any, + filename: PropTypes.string, + style: PropTypes.any, + label: PropTypes.any, + btnLoading: PropTypes.any +}; +// ==============================|| EMPTY TABLE - NO DATA ||============================== // + +const StyledGridOverlay = styled(Stack)(({ theme }) => ({ + height: '400px', + '& .ant-empty-img-1': { + fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary[200] : theme.palette.secondary[400] + }, + '& .ant-empty-img-2': { + fill: theme.palette.secondary.light + }, + '& .ant-empty-img-3': { + fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.A200 : theme.palette.secondary[200] + }, + '& .ant-empty-img-4': { + fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.A300 : theme.palette.secondary.A100 + }, + '& .ant-empty-img-5': { + fillOpacity: theme.palette.mode === ThemeMode.DARK ? '0.09' : '0.95', + fill: theme.palette.mode === ThemeMode.DARK ? theme.palette.secondary.darker : theme.palette.secondary.light + } +})); + +export const EmptyTable = ({ msg, colSpan }) => { + return ( + + + + + + + + + + + + + + + + + + + + {msg} + + + + + ); +}; + +EmptyTable.propTypes = { + msg: PropTypes.string, + colSpan: PropTypes.number +}; diff --git a/src/components/third-party/SimpleBar.js b/src/components/third-party/SimpleBar.js new file mode 100644 index 0000000..99b5e9d --- /dev/null +++ b/src/components/third-party/SimpleBar.js @@ -0,0 +1,62 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { alpha, styled } from '@mui/material/styles'; +import { Box } from '@mui/material'; + +// third-party +import SimpleBar from 'simplebar-react'; +import { BrowserView, MobileView } from 'react-device-detect'; + +// root style +const RootStyle = styled(BrowserView)({ + flexGrow: 1, + height: '100%', + overflow: 'hidden' +}); + +// scroll bar wrapper +const SimpleBarStyle = styled(SimpleBar)(({ theme }) => ({ + maxHeight: '100%', + '& .simplebar-scrollbar': { + '&:before': { + backgroundColor: alpha(theme.palette.grey[500], 0.48) + }, + '&.simplebar-visible:before': { + opacity: 1 + } + }, + '& .simplebar-track.simplebar-vertical': { + width: 10 + }, + '& .simplebar-track.simplebar-horizontal .simplebar-scrollbar': { + height: 6 + }, + '& .simplebar-mask': { + zIndex: 'inherit' + } +})); + +// ==============================|| SIMPLE SCROLL BAR ||============================== // + +export default function SimpleBarScroll({ children, sx, ...other }) { + return ( + <> + + + {children} + + + + + {children} + + + + ); +} + +SimpleBarScroll.propTypes = { + children: PropTypes.node, + sx: PropTypes.object +}; diff --git a/src/components/updateNetworkStatus.js b/src/components/updateNetworkStatus.js new file mode 100644 index 0000000..b5f9e15 --- /dev/null +++ b/src/components/updateNetworkStatus.js @@ -0,0 +1,96 @@ +import { useEffect, useState, useRef } from 'react'; +import { useTheme } from '@mui/material/styles'; +import WifiOffIcon from '@mui/icons-material/WifiOff'; +import WifiIcon from '@mui/icons-material/Wifi'; + +const NOTIFICATION_STYLE = { + position: 'fixed', + top: '10px', // Keep top spacing + left: '50%', // Center horizontally + transform: 'translateX(-50%)', // Offset to truly center + padding: '12px 40px', + borderRadius: '8px', + color: 'white', + fontWeight: '500', + fontSize: '14px', + boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)', + zIndex: 9999, + maxWidth: '90%', + minWidth: 'auto', + textAlign: 'center' +}; + +const InternetStatus = () => { + const theme = useTheme(); + const [isOnline, setIsOnline] = useState(navigator.onLine); + const [showBackOnline, setShowBackOnline] = useState(false); + const wasOffline = useRef(!navigator.onLine); + + useEffect(() => { + const handleNetworkChange = () => { + const online = navigator.onLine; + setIsOnline(online); + + if (online && wasOffline.current) { + console.log('✅ Back online'); + setShowBackOnline(true); + wasOffline.current = false; + // window.location.reload(); + + setTimeout(() => { + setShowBackOnline(false); + }, 2000); + } + + if (!online) { + console.log('❌ No internet connection'); + wasOffline.current = true; + setShowBackOnline(false); + } + }; + + window.addEventListener('online', handleNetworkChange); + window.addEventListener('offline', handleNetworkChange); + + return () => { + window.removeEventListener('online', handleNetworkChange); + window.removeEventListener('offline', handleNetworkChange); + }; + }, []); + + return ( + <> + {!isOnline && ( +
+ + No Internet Connection +
+ )} + + {showBackOnline && ( +
+ + Back Online +
+ )} + + ); +}; + +export default InternetStatus; diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..cab3cf7 --- /dev/null +++ b/src/config.js @@ -0,0 +1,106 @@ +// ==============================|| THEME CONSTANT ||============================== // + +export const twitterColor = '#1DA1F2'; +export const facebookColor = '#3b5998'; +export const linkedInColor = '#0e76a8'; + +export const APP_DEFAULT_PATH = '/sample-page'; +export const HORIZONTAL_MAX_ITEM = 6; +export const DRAWER_WIDTH = 260; + +export const ThemeMode = { + LIGHT: 'light', + DARK: 'dark' +}; + +export const MenuOrientation = { + VERTICAL: 'vertical', + HORIZONTAL: 'horizontal' +}; + +export const ThemeDirection = { + LTR: 'ltr', + RTL: 'rtl' +}; + +// ==============================|| THEME CONFIG ||============================== // + +const config = { + /** + * The props used for the theme font-style. + * We provide static below options - + * `'Inter', sans-serif` + * `'Poppins', sans-serif` + * `'Roboto', sans-serif` + * `'Public Sans', sans-serif` (default) + */ + fontFamily: `'Public Sans', sans-serif`, + + /** + * The props used for display menu-items with multi-language. + * We provide static below languages according to 'react-intl' options - https://www.npmjs.com/package/react-intl + * 'en' (default) + * 'fr' + * 'ro' + * 'zh' + */ + i18n: 'en', + + /** + * the props used for menu orientation (diffrent theme layout). + * we provide static below options - + * 'vertical' (default) - MenuOrientation.VERTICAL + * 'horizontal' - MenuOrientation.HORIZONTAL + */ + menuOrientation: MenuOrientation.VERTICAL, + + /** + * the props used for show mini variant drawer + * the mini variant is recommended for apps sections that need quick selection access alongside content. + * default - false + */ + miniDrawer: false, + + /** + * the props used for theme container. + * the container centers your content horizontally. It's the most basic layout element. + * default - true which show container + * false - will show fluid + */ + container: true, + + /** + * the props used for default theme palette mode + * explore the default theme + * below theme options - + * 'light' (default) - ThemeMode.LIGHT + * 'dark' - ThemeMode.DARK + */ + mode: ThemeMode.LIGHT, + + /** + * the props used for theme primary color variants + * we provide static below options thoe s are already defaine in src/themes/theme - + * 'default' + * 'theme1' + * 'theme2' + * 'theme3' + * 'theme4' + * 'theme5' + * 'theme6' + * 'theme7' + * 'theme8' + */ + presetColor: 'default', + + /** + * the props used for default theme direction + * explore the default theme + * below theme options - + * 'ltr' (default) - ThemeDirection.LTR + * 'rtl' - ThemeDirection.RTL + */ + themeDirection: ThemeDirection.LTR +}; + +export default config; diff --git a/src/contexts/ConfigContext.js b/src/contexts/ConfigContext.js new file mode 100644 index 0000000..6836e17 --- /dev/null +++ b/src/contexts/ConfigContext.js @@ -0,0 +1,107 @@ +import PropTypes from 'prop-types'; +import { createContext } from 'react'; + +// project import +import config from 'config'; +import useLocalStorage from 'hooks/useLocalStorage'; + +// initial state +const initialState = { + ...config, + onChangeContainer: () => {}, + onChangeLocalization: () => {}, + onChangeMode: () => {}, + onChangePresetColor: () => {}, + onChangeDirection: () => {}, + onChangeMiniDrawer: () => {}, + onChangeMenuOrientation: () => {}, + onChangeFontFamily: () => {} +}; + +// ==============================|| CONFIG CONTEXT & PROVIDER ||============================== // + +const ConfigContext = createContext(initialState); + +function ConfigProvider({ children }) { + const [config, setConfig] = useLocalStorage('mantis-react-js-config', initialState); + + const onChangeContainer = () => { + setConfig({ + ...config, + container: !config.container + }); + }; + + const onChangeLocalization = (lang) => { + setConfig({ + ...config, + i18n: lang + }); + }; + + const onChangeMode = (mode) => { + setConfig({ + ...config, + mode + }); + }; + + const onChangePresetColor = (theme) => { + setConfig({ + ...config, + presetColor: theme + }); + }; + + const onChangeDirection = (direction) => { + setConfig({ + ...config, + themeDirection: direction + }); + }; + + const onChangeMiniDrawer = (miniDrawer) => { + setConfig({ + ...config, + miniDrawer + }); + }; + + const onChangeMenuOrientation = (layout) => { + setConfig({ + ...config, + menuOrientation: layout + }); + }; + + const onChangeFontFamily = (fontFamily) => { + setConfig({ + ...config, + fontFamily + }); + }; + + return ( + + {children} + + ); +} + +ConfigProvider.propTypes = { + children: PropTypes.node +}; + +export { ConfigProvider, ConfigContext }; diff --git a/src/contexts/JWTContext.js b/src/contexts/JWTContext.js new file mode 100644 index 0000000..3183b16 --- /dev/null +++ b/src/contexts/JWTContext.js @@ -0,0 +1,147 @@ +import PropTypes from 'prop-types'; +import { createContext, useEffect, useReducer } from 'react'; + +// third-party +import { Chance } from 'chance'; +import jwtDecode from 'jwt-decode'; + +// reducer - state management +import { LOGIN, LOGOUT } from 'store/reducers/actions'; +import authReducer from 'store/reducers/auth'; + +// project import +import Loader from 'components/Loader'; +import axios from 'utils/axios'; + +const chance = new Chance(); + +// constant +const initialState = { + isLoggedIn: false, + isInitialized: false, + user: null + +}; + +const verifyToken = (serviceToken) => { + if (!serviceToken) { + return false; + } + const decoded = jwtDecode(serviceToken); + /** + * Property 'exp' does not exist on type '(token: string, options?: JwtDecodeOptions | undefined) => T'. + */ + return decoded.exp > Date.now() / 1000; +}; + +const setSession = (serviceToken) => { + if (serviceToken) { + localStorage.setItem('serviceToken', serviceToken); + axios.defaults.headers.common.Authorization = `Bearer ${serviceToken}`; + } else { + localStorage.removeItem('serviceToken'); + delete axios.defaults.headers.common.Authorization; + } +}; + +// ==============================|| JWT CONTEXT & PROVIDER ||============================== // + +const JWTContext = createContext(null); + +export const JWTProvider = ({ children }) => { + const [state, dispatch] = useReducer(authReducer, initialState); + + useEffect(() => { + const init = async () => { + console.log(verifyToken) + // try { + // const serviceToken = window.localStorage.getItem('serviceToken'); + // if (serviceToken && verifyToken(serviceToken)) { + // setSession(serviceToken); + // const response = await axios.get('/api/account/me'); + // const { user } = response.data; + // dispatch({ + // type: LOGIN, + // payload: { + // isLoggedIn: true, + // user + // } + // }); + // } else { + // dispatch({ + // type: LOGOUT + // }); + // } + // } catch (err) { + // console.error(err); + // dispatch({ + // type: LOGOUT + // }); + // } + }; + + init(); + }, []); + + const login = async (email, password) => { + const response = await axios.post('/api/account/login', { email, password }); + const { serviceToken, user } = response.data; + setSession(serviceToken); + dispatch({ + type: LOGIN, + payload: { + isLoggedIn: true, + user + } + }); + }; + + const register = async (email, password, firstName, lastName) => { + // todo: this flow need to be recode as it not verified + const id = chance.bb_pin(); + const response = await axios.post('/api/account/register', { + id, + email, + password, + firstName, + lastName + }); + let users = response.data; + + if (window.localStorage.getItem('users') !== undefined && window.localStorage.getItem('users') !== null) { + const localUsers = window.localStorage.getItem('users'); + users = [ + ...JSON.parse(localUsers), + { + id, + email, + password, + name: `${firstName} ${lastName}` + } + ]; + } + + window.localStorage.setItem('users', JSON.stringify(users)); + }; + + const logout = () => { + setSession(null); + dispatch({ type: LOGOUT }); + }; + + const resetPassword = async () => {}; + + const updateProfile = () => {}; + + if (state.isInitialized !== undefined && !state.isInitialized) { + return ; + } + + return {children}; +}; + +JWTProvider.propTypes = { + children: PropTypes.node +}; + +export default JWTContext; diff --git a/src/firebase_notification/firebase.js b/src/firebase_notification/firebase.js new file mode 100644 index 0000000..68477be --- /dev/null +++ b/src/firebase_notification/firebase.js @@ -0,0 +1,28 @@ +// firebase.js // firebase is initialised here +import { initializeApp } from 'firebase/app'; +import { getMessaging } from 'firebase/messaging'; + +const firebaseConfig = { + // apiKey: process.env.REACT_APP_FIREBASE_API_KEY, + // authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN, + // databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL, + // projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID, + // storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET, + // messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID, + // appId: process.env.REACT_APP_FIREBASE_APP_ID, + // measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID + apiKey: 'AIzaSyACBg8oyAR2DWMu4xW85gx5thpRgxnvI_0', + authDomain: 'nearle-gear.firebaseapp.com', + databaseURL: 'https://nearle-gear-default-rtdb.firebaseio.com', + projectId: 'nearle-gear', + storageBucket: 'nearle-gear.appspot.com', + messagingSenderId: '140444764229', + appId: '1:140444764229:web:e5ed6259a92d0532283b2c', + measurementId: 'G-3YQ4DNMXE5' +}; + +// Initialize Firebase only once +const app = initializeApp(firebaseConfig); + +// Export initialized messaging instance +export const messaging = getMessaging(app); diff --git a/src/firebase_notification/notification.js b/src/firebase_notification/notification.js new file mode 100644 index 0000000..eb88714 --- /dev/null +++ b/src/firebase_notification/notification.js @@ -0,0 +1,88 @@ +// src/firebase/notification.js +import { getToken, onMessage } from 'firebase/messaging'; +import { messaging } from './firebase'; +import { dispatch } from 'store'; +import { setFcmToken, setFcmPermission } from 'store/reducers/fcmSlice'; +import { enqueueSnackbar, closeSnackbar } from 'notistack'; +import CloseIcon from '@mui/icons-material/Close'; +import IconButton from '@mui/material/IconButton'; +import { GlobalToast } from 'components/nearle_components/GlobalToast'; + +// ===================== Toast Helper ===================== +const opentoast = (message, color, vertical = 'bottom') => { + enqueueSnackbar(message, { + variant: color, + anchorOrigin: { vertical, horizontal: 'right' }, + autoHideDuration: null, + action: (snackbarId) => ( + closeSnackbar(snackbarId)}> + + + ) + }); +}; + +// ===================== Generate FCM Token ===================== +export const generateToken = async () => { + try { + const permission = await Notification.requestPermission(); + dispatch(setFcmPermission(permission)); + + if (permission !== 'granted') { + opentoast('Enable notifications to receive OTP, alerts, and updates', 'error'); + return; + } + + // ✅ Register & reuse the SAME Service Worker + const registration = await navigator.serviceWorker.register('/firebase-messaging-sw.js', { scope: '/' }); + + await navigator.serviceWorker.ready; + + const token = await getToken(messaging, { + vapidKey: 'BBfin2w2LLwc51gmgIUzSi9F6C6TchC99xwIWVpodbZJckqhyuN_2BKmIaA7cwF2JiqhzYJ0Rqszjh1-pDgYMWw', + serviceWorkerRegistration: registration + }); + + if (token) { + console.log('📌 FCM Token:', token); + dispatch(setFcmToken(token)); + } else { + console.warn('⚠️ No FCM token generated'); + } + } catch (err) { + console.error('❌ FCM token error:', err); + } +}; + +// ===================== Foreground Notifications ===================== +export const initFirebaseNotificationListener = () => { + console.log('🔥 Firebase foreground listener initialized'); + + onMessage(messaging, async (payload) => { + console.log('📥 Foreground message:', payload); + + const { notification = {}, data = {} } = payload; + + // ✅ UI Toast (your custom toast) + if (notification?.body) { + GlobalToast(notification.body, 'primary', 'top'); + } + + // ✅ System notification ONLY ONCE + if (Notification.permission === 'granted') { + const registration = await navigator.serviceWorker.getRegistration(); + + if (registration) { + registration.showNotification(notification.title || 'Nearle', { + body: notification.body, + icon: notification.image || '/favicon.ico', + data, + tag: 'nearle-foreground', + renotify: true, + badge: '/badge.png', + vibrate: [100, 50, 100] + }); + } + } + }); +}; diff --git a/src/hooks/useAuth.js b/src/hooks/useAuth.js new file mode 100644 index 0000000..aaa30b8 --- /dev/null +++ b/src/hooks/useAuth.js @@ -0,0 +1,16 @@ +import { useContext } from 'react'; + +// auth provider +import AuthContext from 'contexts/JWTContext'; + +// ==============================|| AUTH HOOKS ||============================== // + +const useAuth = () => { + const context = useContext(AuthContext); + + if (!context) throw new Error('context must be use inside provider'); + + return context; +}; + +export default useAuth; diff --git a/src/hooks/useConfig.js b/src/hooks/useConfig.js new file mode 100644 index 0000000..d305559 --- /dev/null +++ b/src/hooks/useConfig.js @@ -0,0 +1,8 @@ +import { useContext } from 'react'; +import { ConfigContext } from 'contexts/ConfigContext'; + +// ==============================|| CONFIG - HOOKS ||============================== // + +const useConfig = () => useContext(ConfigContext); + +export default useConfig; diff --git a/src/hooks/useLocalStorage.js b/src/hooks/useLocalStorage.js new file mode 100644 index 0000000..532864d --- /dev/null +++ b/src/hooks/useLocalStorage.js @@ -0,0 +1,33 @@ +import { useState, useEffect } from 'react'; + +// ---------------------------------------------------------------------- + +export default function useLocalStorage(key, defaultValue) { + const [value, setValue] = useState(() => { + const storedValue = typeof window !== 'undefined' ? localStorage.getItem(key) : null; + return storedValue === null ? defaultValue : JSON.parse(storedValue); + }); + + useEffect(() => { + const listener = (e) => { + if (typeof window !== 'undefined' && e.storageArea === localStorage && e.key === key) { + setValue(e.newValue ? JSON.parse(e.newValue) : e.newValue); + } + }; + window.addEventListener('storage', listener); + + return () => { + window.removeEventListener('storage', listener); + }; + }, [key, defaultValue]); + + const setValueInLocalStorage = (newValue) => { + setValue((currentValue) => { + const result = typeof newValue === 'function' ? newValue(currentValue) : newValue; + if (typeof window !== 'undefined') localStorage.setItem(key, JSON.stringify(result)); + return result; + }); + }; + + return [value, setValueInLocalStorage]; +} diff --git a/src/hooks/usePagination.js b/src/hooks/usePagination.js new file mode 100644 index 0000000..bab5f5d --- /dev/null +++ b/src/hooks/usePagination.js @@ -0,0 +1,29 @@ +import { useState } from 'react'; + +// ==============================|| CARD - PAGINATION ||============================== // + +export default function usePagination(data, itemsPerPage) { + const [currentPage, setCurrentPage] = useState(1); + const maxPage = Math.ceil(data.length / itemsPerPage); + + function currentData() { + const begin = (currentPage - 1) * itemsPerPage; + const end = begin + itemsPerPage; + return data.slice(begin, end); + } + + function next() { + setCurrentPage((currentPage) => Math.min(currentPage + 1, maxPage)); + } + + function prev() { + setCurrentPage((currentPage) => Math.max(currentPage - 1, 1)); + } + + function jump(page) { + const pageNumber = Math.max(1, page); + setCurrentPage(() => Math.min(pageNumber, maxPage)); + } + + return { next, prev, jump, currentData, currentPage, maxPage }; +} diff --git a/src/hooks/useScriptRef.js b/src/hooks/useScriptRef.js new file mode 100644 index 0000000..1ff4dde --- /dev/null +++ b/src/hooks/useScriptRef.js @@ -0,0 +1,18 @@ +import { useEffect, useRef } from 'react'; + +// ==============================|| ELEMENT REFERENCE HOOKS ||============================== // + +const useScriptRef = () => { + const scripted = useRef(true); + + useEffect( + () => () => { + scripted.current = false; + }, + [] + ); + + return scripted; +}; + +export default useScriptRef; diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..005c13d --- /dev/null +++ b/src/index.js @@ -0,0 +1,60 @@ +import { createRoot } from 'react-dom/client'; +import { BrowserRouter } from 'react-router-dom'; + +// third-party +import { Provider as ReduxProvider } from 'react-redux'; + +// scroll bar +import 'simplebar/dist/simplebar.css'; + +// apex-chart +import 'assets/third-party/apex-chart.css'; +import 'assets/third-party/react-table.css'; + +// project import +import App from './App'; +import { store } from 'store'; +// import { ConfigProvider } from 'contexts/ConfigContext'; +import reportWebVitals from './reportWebVitals'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; + +const container = document.getElementById('root'); +const root = createRoot(container); +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + staleTime: 0, + refetchOnWindowFocus: true, + refetchOnReconnect: true, + // refetchOnMount: true, + refetchOnMount: 'always' + } + } +}); + +if (process.env.NODE_ENV !== 'development') { + console.log = () => {}; // Disable console.log in production + console.error = () => {}; // Optionally disable console.error + console.warn = () => {}; // Optionally disable console.warn +} + +// const root = ReactDOM.createRoot(document.getElementById('root')); + +// ==============================|| MAIN - REACT DOM RENDER ||============================== // + +root.render( + + + {/* */}{' '} + + + + {/* */} + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/src/layout/CommonLayout/FooterBlock.js b/src/layout/CommonLayout/FooterBlock.js new file mode 100644 index 0000000..bc94eb3 --- /dev/null +++ b/src/layout/CommonLayout/FooterBlock.js @@ -0,0 +1,321 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import { Box, Button, Container, CardMedia, Divider, Stack, Grid, Link, Typography } from '@mui/material'; + +// third party +import { motion } from 'framer-motion'; + +// project import +import { ThemeDirection, ThemeMode } from 'config'; +import useConfig from 'hooks/useConfig'; + +// assets +import { SendOutlined } from '@ant-design/icons'; +import imgfooterlogo from 'assets/images/landing/codedthemes-logo.svg'; +import imgfootersoc1 from 'assets/images/landing/img-soc1.svg'; +import imgfootersoc2 from 'assets/images/landing/img-soc2.svg'; +import imgfootersoc3 from 'assets/images/landing/img-soc3.svg'; +import AnimateButton from 'components/@extended/AnimateButton'; + +const dashImage = require.context('assets/images/landing', true); + +// link - custom style +const FooterLink = styled(Link)(({ theme }) => ({ + color: theme.palette.text.secondary, + '&:hover': { + color: theme.palette.primary.main + }, + '&:active': { + color: theme.palette.primary.main + } +})); + +// ==============================|| LANDING - FOOTER PAGE ||============================== // + +const FooterBlock = ({ isFull }) => { + const theme = useTheme(); + const { presetColor } = useConfig(); + const textColor = theme.palette.mode === ThemeMode.DARK ? 'text.primary' : 'background.paper'; + + const linkSX = { + color: theme.palette.common.white, + fontSize: '0.875rem', + fontWeight: 400, + opacity: '0.6', + cursor: 'pointer', + '&:hover': { + opacity: '1' + } + }; + + const frameworks = [ + { title: 'CodeIgniter', link: 'https://links.codedthemes.com/dEGKs' }, + { + title: 'React MUI', + link: 'https://links.codedthemes.com/Aprwb' + }, + { + title: 'Angular', + link: 'https://links.codedthemes.com/EIvof' + }, + { + title: 'Bootstrap 5', + link: 'https://codedthemes.com/item/mantis-bootstrap-admin-dashboard/' + }, + { + title: '.Net', + link: 'https://links.codedthemes.com/GPZhD' + } + ]; + + return ( + <> + {isFull && ( + + + + + + + + + Roadmap + + + + + + Upcoming Release + + + + + + What is next? Checkout the Upcoming release of Mantis React. + + + + + + + + + + + + + + + )} + + + + + + + + + + + + + Since 2017, More than 50K+ Developers trust the CodedThemes Digital Product. Mantis React is Manage under their + Experienced Team Players. + + + + + + + + + + + Help + + + + Blog + + + Documentation + + + Change Log + + + Support + + + + + + + + Store Help + + + + License + + + Refund Policy + + + Submit a Request + + + + + + + + Mantis Eco-System + + + {frameworks.map((item, index) => ( + + {item.title} + {/* {item.isUpcoming && } */} + + ))} + + + + + + + More Products + + + + Berry React Material + + + Free Berry React + + + Free Mantis React + + + + + + + + + + + + + + + + © Made with love by Team CodedThemes + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +FooterBlock.propTypes = { + isFull: PropTypes.bool +}; + +export default FooterBlock; diff --git a/src/layout/CommonLayout/Header.js b/src/layout/CommonLayout/Header.js new file mode 100644 index 0000000..2396bef --- /dev/null +++ b/src/layout/CommonLayout/Header.js @@ -0,0 +1,251 @@ +import PropTypes from 'prop-types'; +import * as React from 'react'; +import { useState } from 'react'; +import { Link as RouterLink } from 'react-router-dom'; + +// material-ui +import AppBar from '@mui/material/AppBar'; +import { useTheme } from '@mui/material/styles'; +import { + useMediaQuery, + Box, + Button, + Chip, + Container, + Drawer, + Link, + List, + ListItemButton, + ListItemIcon, + ListItemText, + Stack, + Toolbar, + Typography, + useScrollTrigger +} from '@mui/material'; + +// project import +import { APP_DEFAULT_PATH, ThemeMode } from 'config'; +import IconButton from 'components/@extended/IconButton'; +import AnimateButton from 'components/@extended/AnimateButton'; +import Logo from 'components/logo'; + +// assets +import { MenuOutlined, LineOutlined } from '@ant-design/icons'; + +// ==============================|| COMPONENTS - APP BAR ||============================== // + +// elevation scroll +function ElevationScroll({ layout, children, window }) { + const theme = useTheme(); + // const theme = useTheme(); + + const trigger = useScrollTrigger({ + disableHysteresis: true, + threshold: 10, + target: window ? window() : undefined + }); + + const backColorScroll = theme.palette.mode === ThemeMode.DARK ? theme.palette.grey[50] : theme.palette.grey[800]; + const backColor = layout !== 'landing' ? backColorScroll : 'transparent'; + + return React.cloneElement(children, { + style: { + backgroundColor: trigger ? backColorScroll : backColor + } + }); +} + +const Header = ({ handleDrawerOpen, layout = 'landing', ...others }) => { + const theme = useTheme(); + const matchDownMd = useMediaQuery(theme.breakpoints.down('md')); + const [drawerToggle, setDrawerToggle] = useState(false); + + /** Method called on multiple components with different event types */ + const drawerToggler = (open) => (event) => { + if (event.type === 'keydown' && (event.key === 'Tab' || event.key === 'Shift')) { + return; + } + setDrawerToggle(open); + }; + + return ( + + + + + + + + + + + + + Dashboard + + + Components + + + Documentation + + + + + + + + + + + + + {layout === 'component' && ( + + )} + {layout !== 'component' && ( + + )} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +}; + +Header.propTypes = { + handleDrawerOpen: PropTypes.func, + layout: PropTypes.string +}; + +export default Header; diff --git a/src/layout/CommonLayout/index.js b/src/layout/CommonLayout/index.js new file mode 100644 index 0000000..f304f8e --- /dev/null +++ b/src/layout/CommonLayout/index.js @@ -0,0 +1,74 @@ +import PropTypes from 'prop-types'; +import { lazy, Suspense } from 'react'; +import { Outlet } from 'react-router-dom'; + +// material-ui +import { Container, Toolbar } from '@mui/material'; + +// project import +import { dispatch, useSelector } from 'store'; +import { openComponentDrawer } from 'store/reducers/menu'; + +// material-ui +import { styled } from '@mui/material/styles'; +import LinearProgress from '@mui/material/LinearProgress'; + +const Header = lazy(() => import('./Header')); +const FooterBlock = lazy(() => import('./FooterBlock')); + +// ==============================|| Loader ||============================== // + +const LoaderWrapper = styled('div')(({ theme }) => ({ + position: 'fixed', + top: 0, + left: 0, + zIndex: 2001, + width: '100%', + '& > * + *': { + marginTop: theme.spacing(2) + } +})); + +const Loader = () => ( + + + +); + +// ==============================|| MINIMAL LAYOUT ||============================== // + +const CommonLayout = ({ layout = 'blank' }) => { + const menu = useSelector((state) => state.menu); + const { componentDrawerOpen } = menu; + + const handleDrawerOpen = () => { + dispatch(openComponentDrawer({ componentDrawerOpen: !componentDrawerOpen })); + }; + + return ( + <> + {(layout === 'landing' || layout === 'simple') && ( + }> +
+ + + + )} + {layout === 'component' && ( + }> + +
+ + + + )} + {layout === 'blank' && } + + ); +}; + +CommonLayout.propTypes = { + layout: PropTypes.string +}; + +export default CommonLayout; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js b/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js new file mode 100644 index 0000000..82905e1 --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/NavCard.js @@ -0,0 +1,32 @@ +// material-ui +import { Button, Link, CardMedia, Stack, Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// assets +import avatar from 'assets/images/users/avatar-group.png'; +import AnimateButton from 'components/@extended/AnimateButton'; + +// ==============================|| DRAWER CONTENT - NAVIGATION CARD ||============================== // + +const NavCard = () => ( + + + + + Help? + + Get to resolve query + + + + + + + +); + +export default NavCard; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js new file mode 100644 index 0000000..3504851 --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavCollapse.js @@ -0,0 +1,503 @@ +import PropTypes from 'prop-types'; +import React, { useEffect, useState, useMemo } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import { + Box, + Collapse, + ClickAwayListener, + List, + ListItemButton, + ListItemIcon, + ListItemText, + Paper, + Popper, + Typography, + useMediaQuery +} from '@mui/material'; + +// project import +import NavItem from './NavItem'; +import Dot from 'components/@extended/Dot'; +import SimpleBar from 'components/third-party/SimpleBar'; +import Transitions from 'components/@extended/Transitions'; + +import useConfig from 'hooks/useConfig'; +import { dispatch, useSelector } from 'store'; +import { activeItem } from 'store/reducers/menu'; +import { MenuOrientation, ThemeMode } from 'config'; + +// assets +import { BorderOutlined, DownOutlined, UpOutlined, RightOutlined } from '@ant-design/icons'; + +// mini-menu - wrapper +const PopperStyled = styled(Popper)(({ theme }) => ({ + overflow: 'visible', + zIndex: 1202, + minWidth: 180, + '&:before': { + content: '""', + display: 'block', + position: 'absolute', + top: 38, + left: -5, + width: 10, + height: 10, + backgroundColor: theme.palette.background.paper, + transform: 'translateY(-50%) rotate(45deg)', + zIndex: 120, + borderLeft: `1px solid ${theme.palette.grey.A800}`, + borderBottom: `1px solid ${theme.palette.grey.A800}` + } +})); + +// ==============================|| NAVIGATION - LIST COLLAPSE ||============================== // + +const NavCollapse = ({ menu, level, parentId, setSelectedItems, selectedItems, setSelectedLevel, selectedLevel }) => { + const theme = useTheme(); + + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + const menuState = useSelector((state) => state.menu); + + const { drawerOpen } = menuState; + const { menuOrientation } = useConfig(); + const navigation = useNavigate(); + + const [open, setOpen] = useState(false); + const [selected, setSelected] = useState(null); + + const [anchorEl, setAnchorEl] = useState(null); + + const handleClick = (event) => { + setAnchorEl(null); + setSelectedLevel(level); + if (drawerOpen) { + setOpen(!open); + setSelected(!selected ? menu.id : null); + setSelectedItems(!selected ? menu.id : ''); + if (menu.url) navigation(`${menu.url}`); + } else { + setAnchorEl(event?.currentTarget); + } + }; + + const handlerIconLink = () => { + if (!drawerOpen) { + if (menu.url) navigation(`${menu.url}`); + setSelected(menu.id); + } + }; + + const handleHover = (event) => { + setAnchorEl(event?.currentTarget); + if (!drawerOpen) { + setSelected(menu.id); + } + }; + + const miniMenuOpened = Boolean(anchorEl); + + const handleClose = () => { + setOpen(false); + if (!miniMenuOpened) { + if (!menu.url) { + setSelected(null); + } + } + setAnchorEl(null); + }; + + useMemo(() => { + if (selected === selectedItems) { + if (level === 1) { + setOpen(true); + } + } else { + if (level === selectedLevel) { + setOpen(false); + if (!miniMenuOpened && !drawerOpen && !selected) { + setSelected(null); + } + if (drawerOpen) { + setSelected(null); + } + } + } + }, [selectedItems, level, selected, miniMenuOpened, drawerOpen, selectedLevel]); + + const { pathname } = useLocation(); + + useEffect(() => { + if (pathname === menu.url) { + setSelected(menu.id); + } + // eslint-disable-next-line + }, [pathname]); + + const checkOpenForParent = (child, id) => { + child.forEach((item) => { + if (item.url === pathname) { + setOpen(true); + setSelected(id); + } + }); + }; + + useEffect(() => { + setOpen(false); + if (!miniMenuOpened) { + setSelected(null); + } + if (miniMenuOpened) setAnchorEl(null); + if (menu.children) { + menu.children.forEach((item) => { + if (item.children?.length) { + checkOpenForParent(item.children, menu.id); + } + if (pathname && pathname.includes('product-details')) { + if (item.url && item.url.includes('product-details')) { + setSelected(menu.id); + setOpen(true); + } + } + if (item.url === pathname) { + setSelected(menu.id); + setOpen(true); + } + }); + } + + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [pathname, menu.children]); + + useEffect(() => { + if (menu.url === pathname) { + dispatch(activeItem({ openItem: [menu.id] })); + setSelected(menu.id); + setAnchorEl(null); + setOpen(true); + } + }, [pathname, menu]); + + const navCollapse = menu.children?.map((item) => { + switch (item.type) { + case 'collapse': + return ( + + ); + case 'item': + return ; + default: + return ( + + Fix - Collapse or Item + + ); + } + }); + + const isSelected = selected === menu.id; + const borderIcon = level === 1 ? : false; + const Icon = menu.icon; + const menuIcon = menu.icon ? : borderIcon; + // const textColor = theme.palette.mode === ThemeMode.DARK ? 'grey.400' : 'text.primary'; + // const iconSelectedColor = theme.palette.mode === ThemeMode.DARK && drawerOpen ? theme.palette.text.primary : theme.palette.primary.main; + const popperId = miniMenuOpened ? `collapse-pop-${menu.id}` : undefined; + const FlexBox = { display: 'flex', justifyContent: 'space-between', alignItems: 'center', width: '100%' }; + const textColor = 'white'; + const iconSelectedColor = 'white'; + // const isSelected = true; + + return ( + <> + {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( + <> + + {menuIcon && ( + + {menuIcon} + + )} + {(drawerOpen || (!drawerOpen && level !== 1)) && ( + + {menu.title} + + } + secondary={ + menu.caption && ( + + {menu.caption} + + ) + } + /> + )} + {(drawerOpen || (!drawerOpen && level !== 1)) && + (miniMenuOpened || open ? ( + + ) : ( + + ))} + + {!drawerOpen && ( + + {({ TransitionProps }) => ( + + + + + {navCollapse} + + + + + )} + + )} + + {drawerOpen && ( + + {navCollapse} + + )} + + ) : ( + <> + + + {menuIcon && ( + + {menuIcon} + + )} + {!menuIcon && level !== 1 && ( + + + + )} + + {menu.title} + + } + /> + {miniMenuOpened ? : } + + + {anchorEl && ( + + {({ TransitionProps }) => ( + + + + + {navCollapse} + + + + + )} + + )} + + + )} + + ); +}; + +NavCollapse.propTypes = { + menu: PropTypes.object, + level: PropTypes.number, + parentId: PropTypes.string, + setSelectedItems: PropTypes.func, + selectedItems: PropTypes.string, + setSelectedLevel: PropTypes.func, + selectedLevel: PropTypes.number +}; + +export default NavCollapse; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js new file mode 100644 index 0000000..71e434f --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavGroup.js @@ -0,0 +1,344 @@ +import PropTypes from 'prop-types'; +import { Fragment, useEffect, useState } from 'react'; +import { useLocation } from 'react-router'; + +// material-ui +import { styled, useTheme } from '@mui/material/styles'; +import { + Box, + ClickAwayListener, + List, + ListItemButton, + ListItemIcon, + ListItemText, + Paper, + Popper, + Typography, + useMediaQuery +} from '@mui/material'; + +// third-party +import { FormattedMessage } from 'react-intl'; + +// project import +import NavItem from './NavItem'; +import NavCollapse from './NavCollapse'; +import SimpleBar from 'components/third-party/SimpleBar'; +import Transitions from 'components/@extended/Transitions'; + +import { MenuOrientation, ThemeMode } from 'config'; +import useConfig from 'hooks/useConfig'; +import { dispatch, useSelector } from 'store'; +import { activeID } from 'store/reducers/menu'; + +// assets +import { DownOutlined, RightOutlined } from '@ant-design/icons'; + +// ==============================|| NAVIGATION - LIST GROUP ||============================== // + +const PopperStyled = styled(Popper)(({ theme }) => ({ + overflow: 'visible', + zIndex: 1202, + minWidth: 180, + '&:before': { + content: '""', + display: 'block', + position: 'absolute', + top: 5, + left: 32, + width: 12, + height: 12, + transform: 'translateY(-50%) rotate(45deg)', + zIndex: 120, + borderWidth: '6px', + borderStyle: 'solid', + borderColor: `${theme.palette.background.paper} transparent transparent ${theme.palette.background.paper}` + } +})); + +const NavGroup = ({ item, lastItem, remItems, lastItemId, setSelectedItems, selectedItems, setSelectedLevel, selectedLevel }) => { + const theme = useTheme(); + const { pathname } = useLocation(); + + const { menuOrientation } = useConfig(); + const menu = useSelector((state) => state.menu); + const { drawerOpen, selectedID } = menu; + + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + + const [anchorEl, setAnchorEl] = useState(null); + const [currentItem, setCurrentItem] = useState(item); + + const openMini = Boolean(anchorEl); + + useEffect(() => { + if (lastItem) { + if (item.id === lastItemId) { + const localItem = { ...item }; + const elements = remItems.map((ele) => ele.elements); + localItem.children = elements.flat(1); + setCurrentItem(localItem); + } else { + setCurrentItem(item); + } + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [item, lastItem, downLG]); + + const checkOpenForParent = (child, id) => { + child.forEach((ele) => { + if (ele.children?.length) { + checkOpenForParent(ele.children, currentItem.id); + } + if (ele.url === pathname) { + dispatch(activeID(id)); + } + }); + }; + const checkSelectedOnload = (data) => { + const childrens = data.children ? data.children : []; + childrens.forEach((itemCheck) => { + if (itemCheck.children?.length) { + checkOpenForParent(itemCheck.children, currentItem.id); + } + if (itemCheck.url === pathname) { + dispatch(activeID(currentItem.id)); + } + }); + }; + + useEffect(() => { + checkSelectedOnload(currentItem); + if (openMini) setAnchorEl(null); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [pathname, currentItem]); + + const handleClick = (event) => { + if (!openMini) { + setAnchorEl(event?.currentTarget); + } + }; + + const handleClose = () => { + setAnchorEl(null); + }; + + const Icon = currentItem?.icon; + const itemIcon = currentItem?.icon ? ( + + ) : null; + + const navCollapse = item.children?.map((menuItem) => { + switch (menuItem.type) { + case 'collapse': + return ( + + ); + case 'item': + return ; + default: + } + }); + + const moreItems = remItems.map((itemRem, i) => ( + + {itemRem.title && ( + + {itemRem.title} + + )} + {itemRem?.elements?.map((menu) => { + switch (menu.type) { + case 'collapse': + return ( + + ); + case 'item': + return ; + default: + return ( + + Menu Items Error + + ); + } + })} + + )); + + // menu list collapse & items + const items = currentItem.children?.map((menu) => { + switch (menu.type) { + case 'collapse': + return ( + + ); + case 'item': + return ; + default: + return ( + + Menu Items Error + + ); + } + }); + + const popperId = openMini ? `group-pop-${item.id}` : undefined; + + return ( + <> + {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( + + + {item.title} + + {item.caption && ( + + {item.caption} + + )} + + ) + } + sx={{ mt: drawerOpen && item.title ? 1.5 : 0, py: 0, zIndex: 0 }} + > + {navCollapse} + + ) : ( + + + {itemIcon && ( + + {currentItem.id === lastItemId ? : itemIcon} + + )} + + {currentItem.id === lastItemId ? : currentItem.title} + + } + /> + {openMini ? ( + + ) : ( + + )} + {anchorEl && ( + + {({ TransitionProps }) => ( + + + + + {currentItem.id !== lastItemId ? items : moreItems} + + + + + )} + + )} + + + )} + + ); +}; + +NavGroup.propTypes = { + item: PropTypes.object, + lastItem: PropTypes.number, + remItems: PropTypes.array, + lastItemId: PropTypes.string, + setSelectedItems: PropTypes.func, + selectedItems: PropTypes.string, + setSelectedLevel: PropTypes.func, + selectedLevel: PropTypes.number +}; + +export default NavGroup; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js new file mode 100644 index 0000000..1917b9f --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/NavItem.js @@ -0,0 +1,285 @@ +import PropTypes from 'prop-types'; +import { forwardRef, useEffect, useState } from 'react'; +import { Link } from 'react-router-dom'; +import { useDispatch, useSelector } from 'react-redux'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Avatar, Chip, ListItemButton, ListItemIcon, ListItemText, Typography, useMediaQuery } from '@mui/material'; + +// project import +import Dot from 'components/@extended/Dot'; + +import { MenuOrientation, ThemeMode } from 'config'; +import useConfig from 'hooks/useConfig'; +// import { dispatch, useSelector } from 'store'; +import { activeItem, openDrawer, setSelectedMenu } from 'store/reducers/menu'; + +// ==============================|| NAVIGATION - LIST ITEM ||============================== // + +const NavItem = ({ item, level }) => { + const [selectedItem, setSelectedItem] = useState(null); + const theme = useTheme(); + const dispatch = useDispatch(); + + const { menuOrientation } = useConfig(); + const { drawerOpen, openItem } = useSelector((state) => state.menu); + + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + + let itemTarget = '_self'; + if (item.target) { + itemTarget = '_blank'; + } + + let listItemProps = { component: forwardRef((props, ref) => ) }; + if (item?.external) { + listItemProps = { component: 'a', href: item.url, target: itemTarget }; + } + + const Icon = item.icon; + + const isSelected = openItem.findIndex((id) => id === item.id) > -1; + + const itemIcon = item.icon ? ( + + ) : ( + false + ); + + // const { pathname } = useLocation(); + const pathname = document.location.pathname; + + // active menu item on page load + useEffect(() => { + if (pathname && pathname.includes('product-details')) { + if (item.url && item.url.includes('product-details')) { + dispatch(activeItem({ openItem: [item.id] })); + } + } + + if (pathname && pathname.includes('kanban')) { + if (item.url && item.url.includes('kanban')) { + dispatch(activeItem({ openItem: [item.id] })); + } + } + + if (pathname.includes(item.url)) { + dispatch(activeItem({ openItem: [item.id] })); + } + + // eslint-disable-next-line + }, [pathname]); + + useEffect(() => { + dispatch(setSelectedMenu(pathname)); + }, [pathname]); + + const textColor = theme.palette.mode === ThemeMode.DARK ? 'grey.400' : '#fff'; + const iconSelectedColor = theme.palette.mode === ThemeMode.DARK && drawerOpen ? 'text.primary' : 'primary.main'; + + return ( + <> + {menuOrientation === MenuOrientation.VERTICAL || downLG ? ( + { + // dispatch(setSelectedMenu(item)); + setSelectedItem(item); + }} + sx={{ + zIndex: 1201, + pl: drawerOpen ? `${level * 28}px` : 1.5, + py: !drawerOpen && level === 1 ? 1.25 : 1, + ...(drawerOpen && { + '&:hover': { + bgcolor: '#7b1fa2' + }, + '&.Mui-selected': { + bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter', + borderRight: `2px solid ${theme.palette.primary.main}`, + color: iconSelectedColor, + '&:hover': { + color: iconSelectedColor, + bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter' + } + } + }), + ...(!drawerOpen && { + bgcolor: '#662582', + '&:hover': { + bgcolor: '#662582' + }, + '&.Mui-selected': { + '&:hover': { + bgcolor: 'transparent' + }, + bgcolor: 'transparent' + } + }) + }} + {...(downLG && { + onClick: () => { + dispatch(openDrawer(false)); + } + })} + > + {itemIcon && ( + + {itemIcon} + + )} + {(drawerOpen || (!drawerOpen && level !== 1)) && ( + + {item.title} + + } + /> + )} + {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && ( + {item.chip.avatar}} + /> + )} + + ) : ( + + {itemIcon && ( + + {itemIcon} + + )} + + {!itemIcon && ( + + + + )} + + {item.title} + + } + /> + {(drawerOpen || (!drawerOpen && level !== 1)) && item.chip && ( + {item.chip.avatar}} + /> + )} + + )} + + ); +}; + +NavItem.propTypes = { + item: PropTypes.object, + level: PropTypes.number +}; + +export default NavItem; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js new file mode 100644 index 0000000..c00e5ad --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/index.js @@ -0,0 +1,111 @@ +import { useEffect, useLayoutEffect, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Typography, useMediaQuery } from '@mui/material'; +import { Menu } from 'menu-items/dashboard'; + +import { useSelector } from 'store'; +import useConfig from 'hooks/useConfig'; +import { HORIZONTAL_MAX_ITEM, MenuOrientation } from 'config'; + +// project import +import NavGroup from './NavGroup'; +import menuItem from 'menu-items'; + +// ==============================|| DRAWER CONTENT - NAVIGATION ||============================== // + +const Navigation = () => { + const theme = useTheme(); + + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + + const { menuOrientation } = useConfig(); + const { drawerOpen } = useSelector((state) => state.menu); + const [selectedItems, setSelectedItems] = useState(''); + const [selectedLevel, setSelectedLevel] = useState(0); + const [menuItems, setMenuItems] = useState({ items: [] }); + + useEffect(() => { + handlerMenuItem(); + // eslint-disable-next-line + }, []); + + let getMenu = Menu(); + const handlerMenuItem = () => { + const isFound = menuItem.items.some((element) => { + if (element.id === 'group-dashboard') { + return true; + } + return false; + }); + + if (getMenu?.id !== undefined && !isFound) { + menuItem.items.splice(0, 0, getMenu); + setMenuItems(menuItem); + } + }; + + useLayoutEffect(() => { + setMenuItems(menuItem); + // eslint-disable-next-line + }, [menuItem]); + + const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; + + const lastItem = isHorizontal ? HORIZONTAL_MAX_ITEM : null; + let lastItemIndex = menuItems.items.length - 1; + let remItems = []; + let lastItemId; + + // first it checks menu item is more than giving HORIZONTAL_MAX_ITEM after that get lastItemid by giving horizontal max + // item and it sets horizontal menu by giving horizontal max item lastly slice menuItem from array and set into remItems + + if (lastItem && lastItem < menuItems.items.length) { + lastItemId = menuItems.items[lastItem - 1].id; + lastItemIndex = lastItem - 1; + remItems = menuItems.items.slice(lastItem - 1, menuItems.items.length).map((item) => ({ + title: item.title, + elements: item.children, + icon: item.icon + })); + } + + const navGroups = menuItems.items.slice(0, lastItemIndex + 1).map((item) => { + switch (item.type) { + case 'group': + return ( + + ); + default: + return ( + + Fix - Navigation Group + + ); + } + }); + return ( + ul:first-of-type': { mt: 0 }, + display: isHorizontal ? { xs: 'block', lg: 'flex' } : 'block' + }} + > + {navGroups} + + ); +}; + +export default Navigation; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/Navigation/navitemdemo.js b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/navitemdemo.js new file mode 100644 index 0000000..f92350a --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/Navigation/navitemdemo.js @@ -0,0 +1,99 @@ +import PropTypes from 'prop-types'; +import { forwardRef, useEffect } from 'react'; +import { Link } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Avatar, Chip, ListItemButton, ListItemText, Typography } from '@mui/material'; + +// project imports +import { ThemeMode } from 'config'; +import { dispatch, useSelector } from 'store'; +import { activeComponent, openComponentDrawer } from 'store/reducers/menu'; + +// ==============================|| NAVIGATION - LIST ITEM ||============================== // + +const NavItem = ({ item }) => { + const theme = useTheme(); + const matchesMD = useMediaQuery(theme.breakpoints.down('md')); + + const menu = useSelector((state) => state.menu); + const { openComponent } = menu; + + let itemTarget = '_self'; + if (item.target) { + itemTarget = '_blank'; + } + + let listItemProps = { component: forwardRef((props, ref) => ) }; + if (item?.external) { + listItemProps = { component: 'a', href: item.url, target: itemTarget }; + } + + const itemHandler = (id) => { + dispatch(activeComponent({ openComponent: id })); + if (matchesMD) dispatch(openComponentDrawer({ componentDrawerOpen: false })); + }; + + // active menu item on page load + useEffect(() => { + const currentIndex = document.location.pathname + .toString() + .split('/') + .findIndex((id) => id === item.id); + if (currentIndex > -1) { + dispatch(activeComponent({ openComponent: item.id })); + } + // eslint-disable-next-line + }, []); + + const textColor = theme.palette.mode === ThemeMode.DARK ? 'grey.400' : 'text.primary'; + const iconSelectedColor = theme.palette.mode === ThemeMode.DARK ? 'text.primary' : 'primary.main'; + + return ( + itemHandler(item.id)} + selected={openComponent === item.id} + sx={{ + pl: 4, + py: 1, + mb: 0.5, + '&:hover': { + bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter' + }, + '&.Mui-selected': { + bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter', + borderRight: `2px solid ${theme.palette.primary.main}`, + '&:hover': { + bgcolor: theme.palette.mode === ThemeMode.DARK ? 'divider' : 'primary.lighter' + } + } + }} + > + + {item.title} + + } + /> + {item.chip && ( + {item.chip.avatar}} + /> + )} + + ); +}; + +NavItem.propTypes = { + item: PropTypes.object +}; + +export default NavItem; diff --git a/src/layout/MainLayout/Drawer/DrawerContent/index.js b/src/layout/MainLayout/Drawer/DrawerContent/index.js new file mode 100644 index 0000000..12f2256 --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerContent/index.js @@ -0,0 +1,37 @@ +// material-ui +import // useMediaQuery, +// useTheme +'@mui/material'; + +// project import +// import NavCard from './NavCard'; +import Navigation from './Navigation'; +// import { useSelector } from 'store'; +import SimpleBar from 'components/third-party/SimpleBar'; + +// ==============================|| DRAWER CONTENT ||============================== // + +const DrawerContent = () => { + // const theme = useTheme(); + // const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); + + // const menu = useSelector((state) => state.menu); + // const { drawerOpen } = menu; + + return ( + + + {/* no need navCrd just hided */} + {/* {drawerOpen && !matchDownMD && } */} + + ); +}; + +export default DrawerContent; diff --git a/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js b/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js new file mode 100644 index 0000000..2f8a1ff --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerHeader/DrawerHeaderStyled.js @@ -0,0 +1,22 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { styled } from '@mui/material/styles'; +import { Box } from '@mui/material'; + +// ==============================|| DRAWER HEADER - STYLED ||============================== // + +const DrawerHeaderStyled = styled(Box, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ + ...theme.mixins.toolbar, + display: 'flex', + alignItems: 'center', + justifyContent: open ? 'flex-start' : 'center', + paddingLeft: theme.spacing(open ? 3 : 0) +})); + +DrawerHeaderStyled.propTypes = { + theme: PropTypes.object, + open: PropTypes.bool +}; + +export default DrawerHeaderStyled; diff --git a/src/layout/MainLayout/Drawer/DrawerHeader/index.js b/src/layout/MainLayout/Drawer/DrawerHeader/index.js new file mode 100644 index 0000000..fab34d9 --- /dev/null +++ b/src/layout/MainLayout/Drawer/DrawerHeader/index.js @@ -0,0 +1,59 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery } from '@mui/material'; + +// project import +import DrawerHeaderStyled from './DrawerHeaderStyled'; +import Logo from 'components/logo'; + +import { MenuOrientation } from 'config'; +import useConfig from 'hooks/useConfig'; + +import logo from 'assets/images/logo-nearle9.png' +import logo1 from 'assets/images/logo-sm1.png' +// ==============================|| DRAWER HEADER ||============================== // + +const DrawerHeader = ({ open }) => { + const theme = useTheme(); + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + + const { menuOrientation } = useConfig(); + const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; + + return ( + + {/* */} + + {(open) && + logo + } + {(!open) && + logo + } + + ); +}; + +DrawerHeader.propTypes = { + open: PropTypes.bool +}; + +export default DrawerHeader; diff --git a/src/layout/MainLayout/Drawer/HorizontalBar.js b/src/layout/MainLayout/Drawer/HorizontalBar.js new file mode 100644 index 0000000..5096d22 --- /dev/null +++ b/src/layout/MainLayout/Drawer/HorizontalBar.js @@ -0,0 +1,62 @@ +import React from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { AppBar, Box, Container, useScrollTrigger } from '@mui/material'; + +// project imports +import Navigation from './DrawerContent/Navigation'; +import useConfig from 'hooks/useConfig'; + +// ==============================|| HORIZONTAL MENU LIST ||============================== // + +function ElevationScroll({ children, window }) { + const theme = useTheme(); + // Note that you normally won't need to set the window ref as useScrollTrigger + // will default to window. + // This is only being set here because the demo is in an iframe. + const trigger = useScrollTrigger({ + disableHysteresis: true, + threshold: 0, + target: window + }); + + theme.shadows[4] = theme.customShadows.z1; + + return React.cloneElement(children, { + elevation: trigger ? 4 : 0 + }); +} + +// ==============================|| HORIZONTAL MENU LIST ||============================== // + +const CustomAppBar = () => { + const theme = useTheme(); + const { container } = useConfig(); + + return ( + + + + + + + + + + ); +}; + +export default CustomAppBar; diff --git a/src/layout/MainLayout/Drawer/MiniDrawerStyled.js b/src/layout/MainLayout/Drawer/MiniDrawerStyled.js new file mode 100644 index 0000000..ec2de91 --- /dev/null +++ b/src/layout/MainLayout/Drawer/MiniDrawerStyled.js @@ -0,0 +1,51 @@ +// material-ui +import { styled } from '@mui/material/styles'; +import Drawer from '@mui/material/Drawer'; + +// project import +import { DRAWER_WIDTH, ThemeMode } from 'config'; + +const openedMixin = (theme) => ({ + width: DRAWER_WIDTH, + // borderRight: `1px solid ${theme.palette.divider}`, + borderRight: 'none', + transition: theme.transitions.create('width', { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.enteringScreen + }), + overflowX: 'hidden', + boxShadow: theme.palette.mode === ThemeMode.DARK ? theme.customShadows.z1 : 'none', + backgroundColor:'#662582', +}); + +const closedMixin = (theme) => ({ + transition: theme.transitions.create('width', { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen + }), + // overflowX: 'hidden', + width: theme.spacing(7.5), + borderRight: 'none', + boxShadow: theme.customShadows.z1, + backgroundColor:'#662582', +}); + +// ==============================|| DRAWER - MINI STYLED ||============================== // + +const MiniDrawerStyled = styled(Drawer, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ + width: DRAWER_WIDTH, + flexShrink: 0, + whiteSpace: 'nowrap', + boxSizing: 'border-box', + + ...(open && { + ...openedMixin(theme), + '& .MuiDrawer-paper': openedMixin(theme) + }), + ...(!open && { + ...closedMixin(theme), + '& .MuiDrawer-paper': closedMixin(theme) + }) +})); + +export default MiniDrawerStyled; diff --git a/src/layout/MainLayout/Drawer/index.js b/src/layout/MainLayout/Drawer/index.js new file mode 100644 index 0000000..18e1d55 --- /dev/null +++ b/src/layout/MainLayout/Drawer/index.js @@ -0,0 +1,74 @@ +import PropTypes from 'prop-types'; +import { useMemo } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Drawer, useMediaQuery } from '@mui/material'; + +// project import +import DrawerHeader from './DrawerHeader'; +import DrawerContent from './DrawerContent'; +import MiniDrawerStyled from './MiniDrawerStyled'; + +import { DRAWER_WIDTH } from 'config'; +import { dispatch, useSelector } from 'store'; +import { openDrawer } from 'store/reducers/menu'; + +// ==============================|| MAIN LAYOUT - DRAWER ||============================== // + +const MainDrawer = ({ window }) => { + const theme = useTheme(); + const matchDownMD = useMediaQuery(theme.breakpoints.down('lg')); + + const menu = useSelector((state) => state.menu); + const { drawerOpen } = menu; + + // responsive drawer container + const container = window !== undefined ? () => window().document.body : undefined; + + // header content + const drawerContent = useMemo(() => , []); + const drawerHeader = useMemo(() => , [drawerOpen]); + + return ( + + {!matchDownMD ? ( + + {drawerHeader} + {drawerContent} + + ) : ( + dispatch(openDrawer(!drawerOpen))} + ModalProps={{ keepMounted: true }} + sx={{ + display: { xs: 'block', lg: 'none' }, + '& .MuiDrawer-paper': { + boxSizing: 'border-box', + width: DRAWER_WIDTH, + borderRight: `1px solid ${theme.palette.divider}`, + backgroundImage: 'none', + boxShadow: 'inherit', + bgcolor:'#662582' + } + }} + > + {drawerHeader} + {drawerContent} + + )} + + ); +}; + +MainDrawer.propTypes = { + window: PropTypes.object +}; + +export default MainDrawer; diff --git a/src/layout/MainLayout/Footer.js b/src/layout/MainLayout/Footer.js new file mode 100644 index 0000000..bc2295c --- /dev/null +++ b/src/layout/MainLayout/Footer.js @@ -0,0 +1,23 @@ +import { Link as RouterLink } from 'react-router-dom'; + +// material-ui +import { Link, Stack, Typography } from '@mui/material'; + +const Footer = () => ( + + © All rights reserved + + + About us + + + Privacy + + + Terms + + + +); + +export default Footer; diff --git a/src/layout/MainLayout/Header/AppBarStyled.js b/src/layout/MainLayout/Header/AppBarStyled.js new file mode 100644 index 0000000..f10b097 --- /dev/null +++ b/src/layout/MainLayout/Header/AppBarStyled.js @@ -0,0 +1,35 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { styled } from '@mui/material/styles'; +import AppBar from '@mui/material/AppBar'; + +// project import +import { DRAWER_WIDTH } from 'config'; + +// ==============================|| HEADER - APP BAR STYLED ||============================== // + +const AppBarStyled = styled(AppBar, { shouldForwardProp: (prop) => prop !== 'open' })(({ theme, open }) => ({ + zIndex: theme.zIndex.drawer + 1, + transition: theme.transitions.create(['width', 'margin'], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.leavingScreen + }), + ...(!open && { + width: `calc(100% - ${theme.spacing(7.5)})` + }), + ...(open && { + marginLeft: DRAWER_WIDTH, + width: `calc(100% - ${DRAWER_WIDTH}px)`, + transition: theme.transitions.create(['width', 'margin'], { + easing: theme.transitions.easing.sharp, + duration: theme.transitions.duration.enteringScreen + }) + }) +})); + +AppBarStyled.propTypes = { + open: PropTypes.bool +}; + +export default AppBarStyled; diff --git a/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js b/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js new file mode 100644 index 0000000..6614494 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/MegaMenuSection.js @@ -0,0 +1,301 @@ +import { useRef, useState } from 'react'; +import { Link } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { + Button, + Box, + CardMedia, + ClickAwayListener, + Grid, + List, + ListItemButton, + ListItemIcon, + ListItemText, + ListSubheader, + Paper, + Popper, + Stack, + Typography +} from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; +import Dot from 'components/@extended/Dot'; +import IconButton from 'components/@extended/IconButton'; +import Transitions from 'components/@extended/Transitions'; +import { DRAWER_WIDTH, ThemeMode } from 'config'; + +// assets +import { ArrowRightOutlined, WindowsOutlined } from '@ant-design/icons'; +import backgroundVector from 'assets/images/mega-menu/back.svg'; +import imageChart from 'assets/images/mega-menu/chart.svg'; +import AnimateButton from 'components/@extended/AnimateButton'; + +// ==============================|| HEADER CONTENT - MEGA MENU SECTION ||============================== // + +const MegaMenuSection = () => { + const theme = useTheme(); + + const anchorRef = useRef(null); + const [open, setOpen] = useState(false); + const handleToggle = () => { + setOpen((prevOpen) => !prevOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + setOpen(false); + }; + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; + + return ( + + + + + + {({ TransitionProps }) => ( + + + + + + + + + + Explore Components + + + Try our pre made component pages to check how it feels and suits as per your need. + + + + + + + + + + + + + + + + + Authentication + + + } + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Other Pages + + + } + > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SAAS Pages + + + } + > + + + + + + + + + + + + + + + + + + + + + + + )} + + + ); +}; + +export default MegaMenuSection; diff --git a/src/layout/MainLayout/Header/HeaderContent/Message.js b/src/layout/MainLayout/Header/HeaderContent/Message.js new file mode 100644 index 0000000..289db22 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Message.js @@ -0,0 +1,252 @@ +import { useRef, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { + Avatar, + Box, + ClickAwayListener, + Divider, + List, + ListItemButton, + ListItemAvatar, + ListItemText, + ListItemSecondaryAction, + Paper, + Popper, + Typography, + useMediaQuery +} from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; +import IconButton from 'components/@extended/IconButton'; +import Transitions from 'components/@extended/Transitions'; +import { ThemeMode } from 'config'; + +// assets +import avatar2 from 'assets/images/users/avatar-2.png'; +import avatar3 from 'assets/images/users/avatar-3.png'; +import avatar4 from 'assets/images/users/avatar-4.png'; +import avatar5 from 'assets/images/users/avatar-5.png'; +import { MailOutlined, CloseOutlined } from '@ant-design/icons'; + +// sx styles +const avatarSX = { + width: 48, + height: 48 +}; + +const actionSX = { + mt: '6px', + ml: 1, + top: 'auto', + right: 'auto', + alignSelf: 'flex-start', + transform: 'none' +}; + +// ==============================|| HEADER CONTENT - MESSAGES ||============================== // + +const Message = () => { + const theme = useTheme(); + const matchesXs = useMediaQuery(theme.breakpoints.down('md')); + + const anchorRef = useRef(null); + const [open, setOpen] = useState(false); + const handleToggle = () => { + setOpen((prevOpen) => !prevOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + setOpen(false); + }; + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; + + return ( + + + + + + {({ TransitionProps }) => ( + + + + + + + } + > + + + + + + + It's{' '} + + Cristina danny's + {' '} + birthday today. + + } + secondary="2 min ago" + /> + + + 3:00 AM + + + + + + + + + + + Aida Burg + {' '} + commented your post. + + } + secondary="5 August" + /> + + + 6:00 PM + + + + + + + + + + There was a failure to your setup. + + } + secondary="7 hours ago" + /> + + + 2:45 PM + + + + + + + + + + + Cristina Danny + {' '} + invited to join{' '} + + Meeting. + + + } + secondary="Daily scrum meeting time" + /> + + + 9:10 PM + + + + + + + View All + + } + /> + + + + + + + )} + + + ); +}; + +export default Message; diff --git a/src/layout/MainLayout/Header/HeaderContent/MobileSection.js b/src/layout/MainLayout/Header/HeaderContent/MobileSection.js new file mode 100644 index 0000000..a2f7fc7 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/MobileSection.js @@ -0,0 +1,108 @@ +import { useEffect, useRef, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { AppBar, Box, ClickAwayListener, Paper, Popper, Toolbar } from '@mui/material'; + +// project import +import Search from './Search'; +import Profile from './Profile'; +import IconButton from 'components/@extended/IconButton'; +import Transitions from 'components/@extended/Transitions'; +import { ThemeMode } from 'config'; + +// assets +import { MoreOutlined } from '@ant-design/icons'; + +// ==============================|| HEADER CONTENT - MOBILE ||============================== // + +const MobileSection = () => { + const theme = useTheme(); + + const [open, setOpen] = useState(false); + const anchorRef = useRef(null); + + const handleToggle = () => { + setOpen((prevOpen) => !prevOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + + setOpen(false); + }; + + const prevOpen = useRef(open); + useEffect(() => { + if (prevOpen.current === true && open === false) { + anchorRef.current.focus(); + } + + prevOpen.current = open; + }, [open]); + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; + + return ( + <> + + + + + + + {({ TransitionProps }) => ( + + + + + + {/* */} + + + + + + + )} + + + ); +}; + +export default MobileSection; diff --git a/src/layout/MainLayout/Header/HeaderContent/Notification.js b/src/layout/MainLayout/Header/HeaderContent/Notification.js new file mode 100644 index 0000000..da79bf5 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Notification.js @@ -0,0 +1,309 @@ +import { useRef, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { + Avatar, + Badge, + Box, + ClickAwayListener, + Divider, + List, + ListItemButton, + ListItemAvatar, + ListItemText, + ListItemSecondaryAction, + Paper, + Popper, + Tooltip, + Typography, + useMediaQuery +} from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; +import IconButton from 'components/@extended/IconButton'; +import Transitions from 'components/@extended/Transitions'; +import { ThemeMode } from 'config'; + +// assets +import { BellOutlined, CheckCircleOutlined, GiftOutlined, MessageOutlined, SettingOutlined } from '@ant-design/icons'; + +// sx styles +const avatarSX = { + width: 36, + height: 36, + fontSize: '1rem' +}; + +const actionSX = { + mt: '6px', + ml: 1, + top: 'auto', + right: 'auto', + alignSelf: 'flex-start', + + transform: 'none' +}; + +// ==============================|| HEADER CONTENT - NOTIFICATION ||============================== // + +const Notification = () => { + const theme = useTheme(); + const matchesXs = useMediaQuery(theme.breakpoints.down('md')); + + const anchorRef = useRef(null); + const [read, setRead] = useState(0); + const [open, setOpen] = useState(false); + const handleToggle = () => { + setOpen((prevOpen) => !prevOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + setOpen(false); + }; + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; + + return ( + + + + + + + + + + {({ TransitionProps }) => ( + + + + + {read > 0 && ( + + setRead(0)}> + + + + )} + + } + > + + 0}> + + + + + + + It's{' '} + + Cristina danny's + {' '} + birthday today. + + } + secondary="2 min ago" + /> + + + 3:00 AM + + + + + 0}> + + + + + + + + Aida Burg + {' '} + commented your post. + + } + secondary="5 August" + /> + + + 6:00 PM + + + + + + + + + + + + Your Profile is Complete   + + 60% + {' '} + + } + secondary="7 hours ago" + /> + + + 2:45 PM + + + + + + + + C + + + + + Cristina Danny + {' '} + invited to join{' '} + + Meeting. + + + } + secondary="Daily scrum meeting time" + /> + + + 9:10 PM + + + + + + + View All + + } + /> + + + + + + + )} + + + ); +}; + +export default Notification; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js b/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js new file mode 100644 index 0000000..4132d58 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Profile/ProfileTab.js @@ -0,0 +1,76 @@ +import PropTypes from 'prop-types'; +import { useState } from 'react'; + +// material-ui +import { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'; + +// assets +import { EditOutlined, ProfileOutlined, LogoutOutlined, UserOutlined, WalletOutlined, CommentOutlined } from '@ant-design/icons'; +import { useNavigate } from 'react-router'; +import { useDispatch } from 'react-redux'; +import { clearFcmToken } from 'store/reducers/fcmSlice'; +import { logoutUser } from 'store/reducers/loginUserSlice'; + +// ==============================|| HEADER PROFILE - PROFILE TAB ||============================== // + +const ProfileTab = ({ handleLogout }) => { + const dispatch = useDispatch(); + const [selectedIndex, setSelectedIndex] = useState(0); + const navigate = useNavigate(); + const handleListItemClick = (event, index) => { + setSelectedIndex(index); + }; + + return ( + + { + handleListItemClick(event, 0); + navigate('/viewprofile'); + }} + > + + + + + + + handleListItemClick(event, 1)}> + + + + + + {/* handleListItemClick(event, 4)}> + + + + + */} + { + handleLogout(); + dispatch(clearFcmToken()); // ✅ dispatch the action + dispatch(logoutUser()); // ✅ dispatch logout user as initial state + }} + // onClick={()=>{ + // navigate('/login') + // }} + > + + + + + + + ); +}; + +ProfileTab.propTypes = { + handleLogout: PropTypes.func +}; + +export default ProfileTab; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js b/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js new file mode 100644 index 0000000..a656563 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Profile/SettingTab.js @@ -0,0 +1,53 @@ +import { useState } from 'react'; + +// material-ui +import { List, ListItemButton, ListItemIcon, ListItemText } from '@mui/material'; + +// assets +import { CommentOutlined, LockOutlined, QuestionCircleOutlined, UserOutlined, UnorderedListOutlined } from '@ant-design/icons'; + +// ==============================|| HEADER PROFILE - SETTING TAB ||============================== // + +const SettingTab = () => { + const [selectedIndex, setSelectedIndex] = useState(0); + const handleListItemClick = (event, index) => { + setSelectedIndex(index); + }; + + return ( + + handleListItemClick(event, 0)}> + + + + + + handleListItemClick(event, 1)}> + + + + + + handleListItemClick(event, 2)}> + + + + + + handleListItemClick(event, 3)}> + + + + + + handleListItemClick(event, 4)}> + + + + + + + ); +}; + +export default SettingTab; diff --git a/src/layout/MainLayout/Header/HeaderContent/Profile/index.js b/src/layout/MainLayout/Header/HeaderContent/Profile/index.js new file mode 100644 index 0000000..bdf09fb --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Profile/index.js @@ -0,0 +1,240 @@ +import PropTypes from 'prop-types'; +import { useRef, useState } from 'react'; +import { useNavigate } from 'react-router'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, ButtonBase, CardContent, ClickAwayListener, Grid, Paper, Popper, Stack, Tab, Tabs, Tooltip, Typography } from '@mui/material'; + +// project import +import ProfileTab from './ProfileTab'; +import SettingTab from './SettingTab'; +import Avatar from 'components/@extended/Avatar'; +import MainCard from 'components/MainCard'; +import Transitions from 'components/@extended/Transitions'; +import IconButton from 'components/@extended/IconButton'; + +import { ThemeMode } from 'config'; +// import useAuth from 'hooks/useAuth'; + +// assets +import avatar1 from 'assets/images/users/avatar-1.png'; +import { LogoutOutlined, SettingOutlined, UserOutlined } from '@ant-design/icons'; +import { clearFcmToken } from 'store/reducers/fcmSlice'; +import { useDispatch } from 'react-redux'; +import { logoutUser } from 'store/reducers/loginUserSlice'; + +// tab panel wrapper +function TabPanel({ children, value, index, ...other }) { + return ( + + ); +} + +TabPanel.propTypes = { + children: PropTypes.node, + index: PropTypes.any.isRequired, + value: PropTypes.any.isRequired +}; + +function a11yProps(index) { + return { + id: `profile-tab-${index}`, + 'aria-controls': `profile-tabpanel-${index}` + }; +} + +// ==============================|| HEADER CONTENT - PROFILE ||============================== // + +const Profile = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const dispatch = useDispatch(); + + // const { logout, user } = useAuth(); + const handleLogout = async () => { + try { + // await logout(); + + // navigate(`/login`, { + // state: { + // from: '' + // } + // }); + localStorage.removeItem('firstname'); + localStorage.removeItem('appuserid'); + localStorage.removeItem('authname'); + localStorage.removeItem('roleid'); + localStorage.removeItem('tenantid'); + localStorage.clear(); + + navigate('/login'); + } catch (err) { + console.error(err); + } + }; + + const anchorRef = useRef(null); + const [open, setOpen] = useState(false); + const handleToggle = () => { + setOpen((prevOpen) => !prevOpen); + }; + + const handleClose = (event) => { + if (anchorRef.current && anchorRef.current.contains(event.target)) { + return; + } + setOpen(false); + }; + + const [value, setValue] = useState(0); + + const handleChange = (event, newValue) => { + setValue(newValue); + }; + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + + return ( + + + + + + {/* {user?.name} */} + + + + + {({ TransitionProps }) => ( + + + + + + + + + + + + {/* {user?.name} */} + {localStorage.getItem('firstname') || ''} + + + {/* UI/UX Designer */} + Partner + + + + + + + + onClick={() => { + handleLogout(); + dispatch(clearFcmToken()); // ✅ dispatch the action dispatch(logoutUser()); // ✅ dispatch logout user as initial state dispatch(logoutUser()); // ✅ dispatch logout user as initial state + dispatch(logoutUser()); // ✅ dispatch logout user as initial state + }} + > + + + + + + + + + + } + label="Profile" + {...a11yProps(0)} + /> + {/* } + label="Setting" + {...a11yProps(1)} + /> */} + + + + + + + + + + + + + )} + + + ); +}; + +export default Profile; diff --git a/src/layout/MainLayout/Header/HeaderContent/Search.js b/src/layout/MainLayout/Header/HeaderContent/Search.js new file mode 100644 index 0000000..4124c7e --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/Search.js @@ -0,0 +1,30 @@ +// material-ui +import { Box, FormControl, InputAdornment, OutlinedInput } from '@mui/material'; + +// assets +import { SearchOutlined } from '@ant-design/icons'; + +// ==============================|| HEADER CONTENT - SEARCH ||============================== // + +const Search = () => ( + + + + + + } + aria-describedby="header-search-text" + inputProps={{ + 'aria-label': 'weight' + }} + placeholder="Ctrl + K" + /> + + +); + +export default Search; diff --git a/src/layout/MainLayout/Header/HeaderContent/index.js b/src/layout/MainLayout/Header/HeaderContent/index.js new file mode 100644 index 0000000..8e9c865 --- /dev/null +++ b/src/layout/MainLayout/Header/HeaderContent/index.js @@ -0,0 +1,309 @@ +import { useMemo, useState } from 'react'; + +// material-ui +import { + Box, + useMediaQuery, + Stack, + Tooltip, + IconButton, + Popper, + ClickAwayListener, + List, + ListItem, + ListItemButton, + ListItemText, + Grid, + ListItemIcon, + Typography +} from '@mui/material'; +import { TbBoxMultiple1 } from 'react-icons/tb'; +import { GrMultiple } from 'react-icons/gr'; +import { TbUserEdit } from 'react-icons/tb'; + +import Transitions from 'components/@extended/Transitions'; + +// project import +import Search from './Search'; +import Message from './Message'; +import Profile from './Profile'; +import Notification from './Notification'; +import MobileSection from './MobileSection'; +import MegaMenuSection from './MegaMenuSection'; +import { useNavigate } from 'react-router'; +import SportsMotorsportsOutlinedIcon from '@mui/icons-material/SportsMotorsportsOutlined'; +import { + MailOutlined, + // DashboardOutlined, + UserOutlined, + CustomerServiceOutlined, + WindowsOutlined +} from '@ant-design/icons'; +import { useTheme } from '@mui/material/styles'; + +// ==============================|| HEADER - CONTENT ||============================== // + +const HeaderContent = () => { + const matchesXs = useMediaQuery((theme) => theme.breakpoints.down('md')); + + // eslint-disable-next-line react-hooks/exhaustive-deps + const megaMenu = useMemo(() => , []); + + const [open, setOpen] = useState(false); + const [anchorEl, setAnchorEl] = useState(null); + const theme = useTheme(); + // eslint-disable-next-line react-hooks/exhaustive-deps + // const megaMenu = useMemo(() => , []); + const iconBackColorOpen = 'grey.300'; + const iconBackColor = 'grey.100'; + const navigate = useNavigate(); + + const handleToggle = (e) => { + setOpen(!open); + setAnchorEl(e.currentTarget); + }; + const handleClickAway = () => { + setOpen(false); + }; + + return ( + <> + {/* {!matchesXs && } */} + + {/* {!matchesXs && megaMenu} */} + + {localStorage.getItem('firstname') || ''} + + {matchesXs && } + + + + + + + + + + {/* */} + + + {/* */} + + { + // console.log(const location = useLocation();) + navigate('/nearle/orders/create'); + handleClickAway(); + }} + > + + + + + Create Order + + } + /> + + { + // console.log(const location = useLocation();) + navigate('/nearle/orders/createorders'); + handleClickAway(); + }} + > + + + + + Create Multiple Order + + } + /> + + { + navigate('/nearle/customer/create'); + handleClickAway(); + }} + > + + + + + Create Customer + + } + /> + + {/* { + navigate('/clients/create') + handleClickAway() + }} > + + + + + Create Client + + + } + /> + */} + {/* { + navigate('/riders/create') + handleClickAway() + }} > + + + + + Create Rider + + + } + /> + */} + + {/* + { + navigate('/create_order') + handleClickAway() + }}> + + + + + + + + + { + navigate('/create_client') + handleClickAway() + }}> + + + + + + + + + { + navigate('/create_staff') + handleClickAway() + }}> + + + + + + */} + + + {/* */} + + + + + + + + {/* */} + {/* {!matchesXs && } + {matchesXs && } */} + + + + + + + ); +}; + +export default HeaderContent; diff --git a/src/layout/MainLayout/Header/index.js b/src/layout/MainLayout/Header/index.js new file mode 100644 index 0000000..f06d4d6 --- /dev/null +++ b/src/layout/MainLayout/Header/index.js @@ -0,0 +1,89 @@ +import { useMemo } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { AppBar, Toolbar, useMediaQuery } from '@mui/material'; + +// project import +import AppBarStyled from './AppBarStyled'; +import HeaderContent from './HeaderContent'; +import IconButton from 'components/@extended/IconButton'; + +import { MenuOrientation, ThemeMode } from 'config'; +import useConfig from 'hooks/useConfig'; +import { dispatch, useSelector } from 'store'; +import { openDrawer } from 'store/reducers/menu'; + +// assets +import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'; + +// ==============================|| MAIN LAYOUT - HEADER ||============================== // + +const Header = () => { + const theme = useTheme(); + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + const { menuOrientation } = useConfig(); + + const menu = useSelector((state) => state.menu); + const { drawerOpen } = menu; + + const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; + + // header content + const headerContent = useMemo(() => , []); + + const iconBackColorOpen = theme.palette.mode === ThemeMode.DARK ? 'grey.200' : 'grey.300'; + const iconBackColor = theme.palette.mode === ThemeMode.DARK ? 'background.default' : 'grey.100'; + + // common header + const mainHeader = ( + + {!isHorizontal ? ( + dispatch(openDrawer(!drawerOpen))} + edge="start" + // color="secondary" + // variant="light" + // sx={{ color: 'text.primary', bgcolor: drawerOpen ? iconBackColorOpen : iconBackColor, ml: { xs: 0, lg: -2 } }} + sx={{ color: '#fff', bgcolor: 'transparent', ml: { xs: 0, lg: -2 }, + fontSize:'25px', + ':hover':{ + color: '#fff', bgcolor: 'transparent' + } }} + > + {!drawerOpen ? : } + + ) : null} + {headerContent} + + ); + + // app-bar params + const appBar = { + position: 'fixed', + color: 'inherit', + elevation: 0, + sx: { + borderBottom: `1px solid ${theme.palette.divider}`, + zIndex: 1200, + width: isHorizontal ? '100%' : drawerOpen ? 'calc(100% - 260px)' : { xs: '100%', lg: 'calc(100% - 60px)' }, + // boxShadow: theme.customShadows.z1 + bgcolor:'#662582' + } + }; + + return ( + <> + {!downLG ? ( + + {mainHeader} + + ) : ( + {mainHeader} + )} + + ); +}; + +export default Header; diff --git a/src/layout/MainLayout/index.js b/src/layout/MainLayout/index.js new file mode 100644 index 0000000..f5e3443 --- /dev/null +++ b/src/layout/MainLayout/index.js @@ -0,0 +1,67 @@ +import { useEffect } from 'react'; +import { Outlet } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Box, Container, Toolbar } from '@mui/material'; + +// project import +import Drawer from './Drawer'; +import Header from './Header'; +import Footer from './Footer'; +import HorizontalBar from './Drawer/HorizontalBar'; +import Breadcrumbs from 'components/@extended/Breadcrumbs'; + +import { MenuOrientation } from 'config'; +import navigation from 'menu-items'; +import useConfig from 'hooks/useConfig'; +import { dispatch } from 'store'; +import { openDrawer } from 'store/reducers/menu'; + +// ==============================|| MAIN LAYOUT ||============================== // + +const MainLayout = () => { + const theme = useTheme(); + const matchDownXL = useMediaQuery(theme.breakpoints.down('xl')); + const downLG = useMediaQuery(theme.breakpoints.down('lg')); + + const { container, miniDrawer, menuOrientation } = useConfig(); + + const isHorizontal = menuOrientation === MenuOrientation.HORIZONTAL && !downLG; + + // set media wise responsive drawer + useEffect(() => { + if (!miniDrawer) { + // dispatch(openDrawer(!matchDownXL)); + dispatch(openDrawer(false)); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [matchDownXL]); + + return ( + +
+ {!isHorizontal ? : } + + + + {/* */} + + {/*
*/} + + + + ); +}; + +export default MainLayout; diff --git a/src/menu-items/dashboard.js b/src/menu-items/dashboard.js new file mode 100644 index 0000000..59d91fe --- /dev/null +++ b/src/menu-items/dashboard.js @@ -0,0 +1,57 @@ +// third-party +import { FormattedMessage } from 'react-intl'; + +// project import +import { useSelector } from 'store'; + +// assets +import { DashboardOutlined, GoldOutlined } from '@ant-design/icons'; + +const icons = { + dashboard: DashboardOutlined, + components: GoldOutlined +}; + +// ==============================|| MENU ITEMS - API ||============================== // + +export const Menu = () => { + const { menu } = useSelector((state) => state.menu); + + const SubChildrenLis = (SubChildrenLis) => { + return SubChildrenLis?.map((subList) => { + return { + ...subList, + title: , + icon: icons[subList.icon] + }; + }); + }; + + const itemList = (subList) => { + let list = { + ...subList, + title: , + icon: icons[subList.icon] + }; + + if (subList.type === 'collapse') { + list.children = SubChildrenLis(subList.children); + } + return list; + }; + + const withoutMenu = menu?.children?.filter((item) => item.id !== 'no-menu'); + + const ChildrenList = withoutMenu?.map((subList) => { + return itemList(subList); + }); + + const menuList = { + ...menu, + title: , + icon: icons[menu.icon], + children: ChildrenList + }; + + return menuList; +}; diff --git a/src/menu-items/index.js b/src/menu-items/index.js new file mode 100644 index 0000000..8dbcba8 --- /dev/null +++ b/src/menu-items/index.js @@ -0,0 +1,14 @@ +// project import +// import other from './other'; +import nearle from './nearle'; + +// ==============================|| MENU ITEMS ||============================== // + +const menuItems = { + items: [ + // other, + nearle + ] +}; + +export default menuItems; diff --git a/src/menu-items/nearle.js b/src/menu-items/nearle.js new file mode 100644 index 0000000..7445b0e --- /dev/null +++ b/src/menu-items/nearle.js @@ -0,0 +1,154 @@ +// third-party +import { FormattedMessage } from 'react-intl'; +import DirectionsBikeOutlinedIcon from '@mui/icons-material/DirectionsBikeOutlined'; +import ReceiptOutlinedIcon from '@mui/icons-material/ReceiptOutlined'; +import MopedOutlinedIcon from '@mui/icons-material/MopedOutlined'; +import { TbListDetails } from 'react-icons/tb'; + +// assets +import { + BorderOutlined, + BoxPlotOutlined, + ChromeOutlined, + DeploymentUnitOutlined, + GatewayOutlined, + MenuUnfoldOutlined, + QuestionOutlined, + SmileOutlined, + StopOutlined, + DashboardOutlined, + ClockCircleOutlined, + UserOutlined, + SettingOutlined, + TeamOutlined, + MailOutlined, + ImportOutlined, + BarChartOutlined, + MoneyCollectOutlined, + FileDoneOutlined +} from '@ant-design/icons'; + +// icons +const icons = { + ChromeOutlined, + MenuUnfoldOutlined, + BoxPlotOutlined, + StopOutlined, + BorderOutlined, + SmileOutlined, + GatewayOutlined, + QuestionOutlined, + DeploymentUnitOutlined, + DashboardOutlined, + ClockCircleOutlined, + UserOutlined, + SettingOutlined, + TeamOutlined, + MailOutlined, + ImportOutlined, + BarChartOutlined, + ReceiptOutlinedIcon, + FileDoneOutlined +}; + +// ==============================|| MENU ITEMS - SUPPORT ||============================== // + +const nearle = { + id: 'nearle_Pages', + title: , + icon: icons.FileDoneOutlined, + type: 'group', + children: [ + { + id: 'orders', + title: , + type: 'item', + url: '/nearle/orders', + icon: icons.DashboardOutlined + }, + + { + id: 'deliveries', + title: , + type: 'item', + url: '/nearle/deliveries', + icon: MopedOutlinedIcon + }, + { + id: 'tenants', + title: , + type: 'item', + url: '/nearle/tenants', + icon: icons.UserOutlined + }, + { + id: 'pricing', + title: , + type: 'item', + url: '/nearle/pricing', + icon: MoneyCollectOutlined + }, + { + id: 'customers', + title: , + type: 'item', + url: '/nearle/customers', + icon: icons.TeamOutlined + }, + { + id: 'riders', + title: , + type: 'item', + url: '/nearle/riders', + icon: DirectionsBikeOutlinedIcon + }, + { + id: 'reports', + title: , + type: 'collapse', + icon: icons.BarChartOutlined, + children: [ + { + id: 'reports', + title: , + type: 'item', + url: '/nearle/reports/orderssummary', + icon: TbListDetails + }, + { + id: 'ordersdetails', + title: , + type: 'item', + url: '/nearle/reports/ordersdetails', + icon: icons.DashboardOutlined + // target: true + }, + { + id: 'riderssummary', + title: , + type: 'item', + url: '/nearle/reports/riderssummary', + icon: DirectionsBikeOutlinedIcon + // target: true + }, + { + id: 'riderslogs', + title: , + type: 'item', + url: '/nearle/reports/riderslogs', + icon: DirectionsBikeOutlinedIcon + // target: true + } + ] + }, + { + id: 'invoice', + title: , + type: 'item', + url: '/nearle/invoice', + icon: icons.ReceiptOutlinedIcon + } + ] +}; + +export default nearle; diff --git a/src/menu-items/other.js b/src/menu-items/other.js new file mode 100644 index 0000000..337cc53 --- /dev/null +++ b/src/menu-items/other.js @@ -0,0 +1,178 @@ +// third-party +import { FormattedMessage } from 'react-intl'; +// import TwoWheelerOutlinedIcon from '@mui/icons-material/TwoWheelerOutlined'; +// import SportsMotorsportsOutlinedIcon from '@mui/icons-material/SportsMotorsportsOutlined'; +import DirectionsBikeOutlinedIcon from '@mui/icons-material/DirectionsBikeOutlined'; +import ReceiptOutlinedIcon from '@mui/icons-material/ReceiptOutlined'; +import MopedOutlinedIcon from '@mui/icons-material/MopedOutlined'; +import { TbListDetails } from 'react-icons/tb'; + +// assets +import { + BorderOutlined, + BoxPlotOutlined, + ChromeOutlined, + DeploymentUnitOutlined, + GatewayOutlined, + MenuUnfoldOutlined, + QuestionOutlined, + SmileOutlined, + StopOutlined, + DashboardOutlined, + ClockCircleOutlined, + UserOutlined, + SettingOutlined, + TeamOutlined, + MailOutlined, + ImportOutlined, + BarChartOutlined, + MoneyCollectOutlined +} from '@ant-design/icons'; + +// icons +const icons = { + ChromeOutlined, + MenuUnfoldOutlined, + BoxPlotOutlined, + StopOutlined, + BorderOutlined, + SmileOutlined, + GatewayOutlined, + QuestionOutlined, + DeploymentUnitOutlined, + DashboardOutlined, + ClockCircleOutlined, + UserOutlined, + SettingOutlined, + TeamOutlined, + MailOutlined, + ImportOutlined, + BarChartOutlined, + ReceiptOutlinedIcon +}; + +// ==============================|| MENU ITEMS - SUPPORT ||============================== // + +const other = { + id: 'other', + title: , + type: 'group', + children: [ + { + id: 'orders', + title: , + type: 'item', + url: '/orders', + icon: icons.DashboardOutlined + }, + + { + // id: 'deliveries', + id: 'dashboard', + title: , + type: 'item', + url: '/deliveries', + icon: MopedOutlinedIcon + }, + { + id: 'tenants', + title: , + type: 'item', + url: '/tenants', + icon: icons.UserOutlined + }, + { + id: 'pricing', + title: , + type: 'item', + url: '/clients_pricing', + icon: MoneyCollectOutlined + }, + { + id: 'customers', + title: , + type: 'item', + url: '/customers', + icon: icons.TeamOutlined + }, + { + id: 'riders', + title: , + type: 'item', + url: '/riders', + icon: DirectionsBikeOutlinedIcon + }, + { + id: 'reports', + title: , + type: 'collapse', + icon: icons.BarChartOutlined, + children: [ + { + id: 'orderssummary', + title: , + type: 'item', + url: '/reports/orderssummary', + icon: TbListDetails + }, + { + id: 'ordersdetails', + title: , + type: 'item', + url: '/reports/ordersdetails', + icon: icons.DashboardOutlined + // target: true + }, + { + id: 'riderssummary', + title: , + type: 'item', + url: '/reports/riderssummary', + icon: DirectionsBikeOutlinedIcon + // target: true + }, + { + id: 'riderslogs', + title: , + type: 'item', + url: '/reports/riderslogs', + icon: DirectionsBikeOutlinedIcon + // target: true + } + ] + }, + { + id: 'invoice', + title: , + type: 'item', + url: '/invoice', + icon: icons.ReceiptOutlinedIcon + } + + // { + // id: 'documentation', + // title: , + // type: 'item', + // url: 'https://links.codedthemes.com/BQFrl', + // icon: icons.QuestionOutlined, + // external: true, + // target: true, + // chip: { + // label: 'gitbook', + // color: 'secondary', + // size: 'small' + // } + // }, + // { + // id: 'roadmap', + // title: , + // type: 'item', + // url: 'https://links.codedthemes.com/RXnKQ', + // icon: icons.DeploymentUnitOutlined, + // external: true, + // target: true + // } + ] +}; + +export default other; diff --git a/src/pages/api/api.js b/src/pages/api/api.js new file mode 100644 index 0000000..b957018 --- /dev/null +++ b/src/pages/api/api.js @@ -0,0 +1,607 @@ +import axios from 'axios'; +import { OpenToast } from 'components/third-party/OpenToast'; +import dayjs from 'dayjs'; +const userid = localStorage.getItem('userid'); + +// ==============================|| fetchAppLocations||============================== // + +export const fetchAppLocations = async () => { + const response = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + const updatedLocations = [ + ...response.data.details, + { locationname: 'All', applocationid: 0 } // Add your new object here + ]; + + return updatedLocations; +}; + +// ==============================|| fetchPercentageData (orders) ||============================== // + +export const fetchPercentageData = async (appId) => { + const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getordersummary/?applocationid=${appId}`); + const details = response.data.details; + + return { + created: details.created.toString(), + uncoveredOrders: details.pending.toString(), + coveredOrders: details.delivered.toString(), + cancelled: details.cancelled.toString(), + percentage1: (Math.round((details.created / details.total) * 100) || 0).toString(), + percentage2: (Math.round((details.pending / details.total) * 100) || 0).toString(), + percentage3: (Math.round((details.delivered / details.total) * 100) || 0).toString(), + percentage4: (Math.round((details.cancelled / details.total) * 100) || 0).toString() + }; +}; +// ===================================================== || getTenants || ===================================================== + +export const getTenants = async (appId) => { + const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${appId}&status=active`); + if (response.data.status) { + let arr = []; + response.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + return arr; + } +}; +// ============================================= || gettenantlocations (branches) || ============================================= +export const gettenantlocations = async (appId) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${appId}`); + return res.data.details; + } catch (err) { + console.log('gettenantlocations', err); + } +}; +// ==============================|| fetchorderscount (orders) ||============================== // + +export const fetchorderscount = async ({ queryKey }) => { + const [_, appId, startdate, enddate, currentStatus, tenantid, locationid] = queryKey; + + const url = `${process.env.REACT_APP_URL}/orders/getordersummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}&status=${currentStatus}`; + + const response = await axios.get(url); + + return response.data.details; +}; + +// ==============================|| fetchOrders (orders) ||============================== // + +// export const fetchOrders = async ({ queryKey }) => { +// const [, appId, currentStatus, searchword, startdate, enddate, page, rowsPerPage, tenantid, locationid] = queryKey; +// const url = `${ +// process.env.REACT_APP_URL +// }/orders/getorders/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${ +// page + 1 +// }&pagesize=${rowsPerPage}&keyword=${searchword}`; +// const response = await axios.get(url); +// return response.data.details.map((val, i) => ({ ...val, sno: i + 1 })); +// }; +export const fetchOrders = async ({ pageParam = 1, queryKey }) => { + const [_, appId, currentStatus, debouncedSearch, startdate, enddate, rowsPerPage, tenantid, locationid] = queryKey; + + const url = `${process.env.REACT_APP_URL}/orders/tenant/getorders/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&keyword=${debouncedSearch}&pageno=${pageParam}&pagesize=${rowsPerPage}`; + + const response = await axios.get(url); + + return { + rows: response.data.details, + nextPage: response.data.details.length === Number(rowsPerPage) ? pageParam + 1 : undefined + }; +}; + +// ==============================|| fetchPaymentType (orders) ||============================== // + +export const fetchPaymentType = async () => { + const { data } = await axios.get(`${process.env.REACT_APP_URL}/utils/getapptypes/?tag=paymentmode`); + return data.details.map((val) => ({ + ...val, + label: val.typename + })); +}; + +// ==============================|| fetchRidersList (orders) ||============================== // + +export const fetchRidersList = async ({ queryKey }) => { + try { + const [, appId] = queryKey; // Extract appId from queryKey + const { data } = await axios.get(`${process.env.REACT_APP_URL}/partners/getriders/?applocationid=${appId}`); + console.log('data', data); + const response = data?.details + ? data?.details.map((val) => ({ + ...val, + label: `${val.firstname} ${val.lastname} | ${val.contactno}` + })) + : []; + return response; + } catch (err) { + OpenToast(err.message, 'error', 2000); + throw err; // 🔥 REQUIRED + } +}; + +// ==============================|| createOptimisationDeliveries (orders) Arrange the order ||============================== // + +export const createOptimisationDeliveries = async (deliveryData) => { + // optimse the orders + const response = await axios.post(`https://routes.workolik.com/api/v1/optimization/createdeliveries`, deliveryData.deliveries); + return response.data; +}; +// ==============================|| finalCreatedeliveries (orders) ||============================== // + +export const finalCreatedeliveries = async (deliveryData) => { + console.log('deliveryData', deliveryData.deliveries); + const response = await axios.post(`https://jupiter.nearle.app/live/api/v1/deliveries/createdeliveries`, deliveryData.deliveries); + return response.data; +}; +// ==============================|| createAutomationDeliveries (orders) Auto rider Assign ||============================== // + +export const createAutomationDeliveries = async (variables) => { + console.log('variables', variables); + + // optimse the orders and auto rider assign + const response = await axios.post( + variables.selectedMode.value == 1 + ? `https://routes.workolik.com/api/v1/optimization/riderassign?hypertuning_params=${variables.hypertuning_params}` + : `https://routemate.workolik.com/api/v1/optimization/riderassign?strategy=multi_trip`, + variables.selectedMode.value == 1 ? variables.deliveries : variables.data + ); + return response.data; +}; + +// ==============================|| notifyRider (orders / deliveries) ||============================== // + +export const notifyRider = async (riderToken) => { + if (!riderToken) { + throw new Error('Invalid rider token'); + } + console.log('notify rider called'); + console.log('riderToken', riderToken); + const response = await axios.post(`${process.env.REACT_APP_URL}/utils/notifyuser`, { + token: riderToken, + notification: { + title: 'NearleXpress', + body: 'Orders have been placed for delivery. Kindly accept and process deliveries', + sound: 'ring', + image: '' + } + }); + return response.data; +}; + +// ==============================|| cancelOrder (orders) ||============================== // + +export const cancelOrder = async (orderheaderid) => { + const response = await axios.put(`${process.env.REACT_APP_URL}/orders/updateorder`, { + orderheaderid: orderheaderid, + orderstatus: 'cancelled', + cancelled: dayjs().format('YYYY-MM-DD HH:mm:ss') + }); + + return response.data; +}; +// ==============================|| cancelMultipleOrder (orders) ||============================== // + +export const cancelMultipleOrder = async (orderlist) => { + console.log('data', orderlist); + + const data = orderlist?.map((e) => ({ + orderheaderid: e.orderheaderid, + orderstatus: 'cancelled', + cancelled: dayjs().format('YYYY-MM-DD HH:mm:ss') + })); + + // Send request if needed + const response = await axios.put(`${process.env.REACT_APP_URL}/orders/updatemultipleorders`, data); + return response.data; +}; +// ==============================|| fetchDeliveries (deliveries) ||============================== // + +export const fetchDeliveries = async ({ pageParam = 1, queryKey }) => { + let [_, appId, userid, currentStatus, startdate, enddate, rowsPerPage, searchword, tenantid, locationid, riderid] = queryKey; + currentStatus = currentStatus == 'All' ? 'all' : currentStatus; + const url = + appId === 0 + ? `${process.env.REACT_APP_URL}/deliveries/getdeliveries/?appuserid=${userid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}` + : `${process.env.REACT_APP_URL}/deliveries/getdeliveries/?applocationid=${appId}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}`; + const response = await axios.get(url); + + return { + rows: response.data.details, + nextPage: response.data.details.length === Number(rowsPerPage) ? pageParam + 1 : undefined + }; +}; + +// ==============================|| fetchPercentageAPI (deliveries) ||============================== // + +export const fetchPercentageAPI = async (appId) => { + const url = `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}`; + const response = await axios.get(url); + + const data = response.data.details; + + return { + coveredOrders: data.delivered.toString(), + cancelledOrders: data.cancelled.toString(), + uncoveredOrders: data.pending.toString(), + assignedOrders: data.accepted.toString(), + createdOrders: data.created.toString(), + closedOrders: data.delivered.toString(), + pickedOrders: data.picked.toString(), + percentage1: (Math.round((data.pending / data.total) * 100) || 0).toString(), + percentage2: (Math.round((data.accepted / data.total) * 100) || 0).toString(), + percentage3: (Math.round((data.picked / data.total) * 100) || 0).toString(), + percentage4: (Math.round((data.delivered / data.total) * 100) || 0).toString() + }; +}; + +// ==============================|| fetchCountAPI (deliveries) ||============================== // + +export const fetchCountAPI = async (appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid) => { + const url = + appId == 0 + ? `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?appuserid=${userid}&fromdate=${startdate}&todate=${enddate}` + : `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}&tenantid=${tenantid}&locationid=${locationid}&userid=${riderid}`; + const response = await axios.get(url); + const data = response.data.details; + return { + uncoveredLength: data.pending, + assignedLength: data.accepted, + arrivedLength: data.arrived, + pickedLength: data.picked, + activeLength: data.active, + coveredLength: data.delivered, + cancelLength: data.cancelled, + skippedLength: data.skipped + }; +}; + +// ==============================|| cancelDeliveryAPI (deliveries) ||============================== // + +export const cancelDeliveryAPI = async (selectedRow, cancelFeed) => { + const payload = { + deliveryid: selectedRow.deliveryid, + orderheaderid: selectedRow.orderheaderid, + orderstatus: 'cancelled', + canceltime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + feedback: cancelFeed + }; + const response = await axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, payload); + return response.data; +}; +// ==============================|| getorderdetails (deliveries) ||============================== // +export const getorderdetails = async (orderHeaderid) => { + const response = await axios.get(`${process.env.REACT_APP_URL}/orders/getorderdetails?orderheaderid=${orderHeaderid}`); + return response.data; +}; + +// ==============================|| changeRiderAPI (deliveries) ||============================== // + +export const changeRiderAPI = async (selectedRider, selectedRow) => { + console.log('selectedRider', selectedRider); + console.log('selectedRow', selectedRow); + + return axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, { + userid: selectedRider.userid, + deliveryid: selectedRow.deliveryid, + orderheaderid: selectedRow.orderheaderid, + orderstatus: 'pending', + assigntime: dayjs().format('YYYY-MM-DD HH:mm:ss') + }); +}; +// ==============================|| updateDeliveryAPI (deliveries) ||============================== // + +export const updateDeliveryAPI = async (orderData) => { + return axios.put(`${process.env.REACT_APP_URL}/deliveries/updatedelivery`, orderData); +}; + +// ==============================|| getalltenants (tenants) ||============================== // + +export const getalltenants = async ({ queryKey }) => { + const [, appId, debouncedSearch, status, page, rowsPerPage] = queryKey; + try { + let url = `${ + process.env.REACT_APP_URL + }/tenants/getalltenants/?status=${status}&applocationid=${appId}&keyword=${debouncedSearch}&pageno=${ + page + 1 + }&pagesize=${rowsPerPage}&moduleid=6`; + const response = await axios.get(url); + return response.data.details; // return only data, keep it clean + } catch (err) { + const message = err.response?.data?.message || err.message || 'Something went wrong'; + OpenToast(message); + return null; // return null for failure + } +}; +// ==============================|| gettenantsummary (tenants) ||============================== // + +export const gettenantsummary = async ({ queryKey }) => { + const [, appId] = queryKey; + try { + const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantsummary/?moduleid=6&applocationid=${appId}`); + return response.data.summary; // return only data, keep it clean + } catch (err) { + const message = err.response?.data?.message || err.message || 'Something went wrong'; + OpenToast(message); + return null; // return null for failure + } +}; +// ==============================|| getpricinglist (tenants) ||============================== // + +export const getpricinglist = async ({ queryKey }) => { + const [, appId] = queryKey; + try { + const response = await axios.get(`${process.env.REACT_APP_URL}/tenants/getpricinglist/?moduleid=6&applocationid=${appId}`); + return response.data.summary; // return only data, keep it clean + } catch (err) { + const message = err.response?.data?.message || err.message || 'Something went wrong'; + OpenToast(message); + return null; // return null for failure + } +}; +// ==============================|| getcustomersummary (customers) ||============================== // + +export const getcustomersummary = async ({ queryKey }) => { + const [, appId] = queryKey; + try { + const response = await axios.get(`${process.env.REACT_APP_URL}/customers/getcustomersummary?applocationid=${appId}`); + return response.data.summary; + } catch (err) { + const message = err.response?.data?.message || err.message || 'Something went wrong'; + OpenToast(message); + return null; // return null for failure + } +}; + +// ==============================|| getallcustomers (customers) ||============================== // + +export const getallcustomers = async ({ pageParam = 1, queryKey }) => { + const [, appId, debouncedSearch, rowsPerPage] = queryKey; + + try { + const response = await axios.get(`${process.env.REACT_APP_URL}/customers/getallcustomers/`, { + params: { + applocationid: appId, + keyword: debouncedSearch, + pageno: pageParam, + pagesize: rowsPerPage + } + }); + + return { + data: response.data.details || [], + nextPage: response.data.details?.length === rowsPerPage ? pageParam + 1 : undefined + }; + } catch (err) { + const message = err.response?.data?.message || err.message || 'Something went wrong'; + + OpenToast(message); + throw err; // IMPORTANT for React Query + } +}; + +// ==============================|| fetchAllRiders (riders) ||============================== // +export const fetchAllRiders = async ({ pageParam = 1, queryKey }) => { + try { + const [_key, appId, debouncedSearch, tabvalue] = queryKey; + + const url = `${ + process.env.REACT_APP_URL + }/partners/getallriders/?applocationid=${appId}&pageno=${pageParam}&pagesize=${20}&keyword=${debouncedSearch}&status=${ + tabvalue == 0 ? '' : 'Active' + }`; + const res = await axios.get(url); + return { + details: res.data.details, + nextPage: res.data.details.length === 20 ? pageParam + 1 : undefined + }; + } catch (err) { + console.log('fetchAllRiders err', err.message); + return []; + } +}; +// ==============================|| getallridersummary (riders) ||============================== // +export const getallridersummary = async ({ queryKey }) => { + try { + const [_key, appId, tabvalue] = queryKey; + const response = await axios.get( + `${process.env.REACT_APP_URL}/partners/getallridersummary/?applocationid=${appId}&status=${tabvalue == 0 ? '' : 'Active'}` + ); + return response.data.details; + } catch (err) { + console.log('getallridersummary err', err.message); + return []; + } +}; + +// ==============================|| fetchRiders (riders), active riders ||============================== // + +export const fetchRiders = async ({ pageParam = 1, queryKey }) => { + try { + const [_key, appId, debouncedSearch] = queryKey; + + const url = `${ + process.env.REACT_APP_URL + }/partners/getriders/?applocationid=${appId}&pageno=${pageParam}&pagesize=${20}&keyword=${debouncedSearch}`; + + const res = await axios.get(url); + return { + details: res.data.details, + nextPage: res.data.details.length === 20 ? pageParam + 1 : undefined + }; + } catch (err) { + console.log('fetchRiders err', err.message); + return []; + } +}; + +// ==============================|| getriderstatus (riders)||============================== // +export const getriderstatus = async () => { + const response = await axios.get(`${process.env.REACT_APP_URL}/utils/getriderstatus`); + return response.data.data; +}; + +// ==============================|| getreportsummary (orders summary)||============================== // +export const getreportsummary = async ({ queryKey }) => { + console.log('queryKey for getreportsummary', queryKey); + const [appId, tenantid, locationid, startdate, enddate] = queryKey; + const response = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getreportsummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('getreportsummary', response.data.details); + + return response.data.details; +}; + +// ==============================|| getreportlocationsummary (orders summary)||============================== // +export const getreportlocationsummary = async ({ queryKey }) => { + console.log('queryKey for getreportlocationsummary', queryKey); + const [appId, tenantid, locationid, startdate, enddate] = queryKey; + const response = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getreportlocationsummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('getreportlocationsummary', response.data.details); + + return response.data.details; +}; +// ==============================|| fetchorderdetails (orders detail)||============================== // +export const fetchorderdetails = async ({ queryKey }) => { + console.log('queryKey of fetchorderdetails', queryKey); + + const [appId, startdate, enddate, page, rowsPerPage] = queryKey; + + const response = await axios.get( + appId == 0 + ? `${process.env.REACT_APP_URL2}/orders/getorders/?appuserid=${userid}&fromdate=${startdate}&todate=${enddate}&pageno=${ + page + 1 + }&pagesize=${rowsPerPage}` + : `${process.env.REACT_APP_URL2}/orders/getorders/?fromdate=${startdate}&todate=${enddate}&applocationid=${appId}&pageno=${page}&pagesize=${rowsPerPage}` + ); + const detailsWithSNo = response.data.details.map((item, index) => ({ + ...item, + sno: index + 1 + })); + console.log('fetchorderdetails', detailsWithSNo); + return detailsWithSNo; +}; + +// ==============================|| getriderbydelivery (orders detail)||============================== // + +export const getriderbydelivery = async (startdate, enddate, appId = 0, tenantid = 0, locationid = 0) => { + // const [, startdate, enddate] = queryKey; + + try { + const response = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getriderbydelivery/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}` + ); + return response.data.details || []; + } catch (err) { + console.log('getriderbydelivery', err.message); + return []; + } +}; + +// ==============================|| fetchCount (orders detail)||============================== // + +export const fetchCount = async ({ queryKey }) => { + console.log('queryKey of fetchCount', queryKey); + const [appId, startdate, enddate] = queryKey; + let url = + appId == 0 + ? `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?fromdate=${startdate}&todate=${enddate}` + : `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}`; + + const response = await axios.get(url); + return response.data.details; +}; + +// ==============================|| fetchRidersSummary (riders summary)||============================== // + +export const fetchRidersSummary = async ({ queryKey }) => { + console.log('queryKey for fetchRidersSummary', queryKey); + const [_, appId, startdate, enddate] = queryKey; + const response = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getridersummary/?applocationid=${appId}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('fetchRidersSummary', response.data.details); + + return response.data.details; +}; + +// ==============================|| fetchLocations (orders summary))||============================== // +export const fetchLocations = async () => { + const response = await axios.get(`${process.env.REACT_APP_URL}/partners/getpartners`); + const updatedLocations = [ + ...response.data.details, + { partnername: 'All', partnerid: -1 } // Add your new object here + ]; + console.log('fetchLocations', updatedLocations); + return updatedLocations; +}; + +// ==============================|| fetchinvoiceinsight (Invoice)||============================== // + +export const fetchinvoiceinsight = async () => { + const insightResponse = await axios.get(`${process.env.REACT_APP_URL}/invoice/getinvoiceinsight`); + return insightResponse.data.details; +}; + +// ==============================|| fetchdeliverylist (Invoice)||============================== // + +export const fetchdeliverylist = async ({ queryKey }) => { + const [billStatus] = queryKey; + const deliveyResponse = await axios.get(`${process.env.REACT_APP_URL}/invoice/getallinvoice/?billstatus=${billStatus}`); + console.log('fetchdeliverylist', deliveyResponse.data.details); + return deliveyResponse.data.details; +}; +// ==============================|| fetchRidersLogs (RiderLogs)||============================== // + +export const fetchRidersLogs = async ({ queryKey }) => { + const [appId, startdate, riderSearch = ''] = queryKey; + const riderLogsResponse = await axios.get( + `${process.env.REACT_APP_URL2}/partners/getriderlogs/?applocationid=${appId}&fromdate=${startdate || ''}&todate=${startdate}&keyword=${ + riderSearch || '' + } ` + ); + console.log('fetchRidersLogs', riderLogsResponse.data.details); + return riderLogsResponse.data.details; +}; + +// ==============================|| getorders (Locations)||============================== // +// fetchOrders.js + +export const fetchOrders1 = async ({ pageParam = 1, queryKey }) => { + const [_key, tenantid, locationid, status, startdate, enddate, searchword, rowsPerPage] = queryKey; + + const res = await axios.get( + `${process.env.REACT_APP_URL}/orders/tenant/getorders/?tenantid=${tenantid}&locationid=${locationid}&status=${status}&fromdate=${startdate}&todate=${enddate}&pageno=${pageParam}&pagesize=${rowsPerPage}&keyword=${searchword}` + ); + + return { + details: res.data.details, + nextPage: res.data.details.length === rowsPerPage ? pageParam + 1 : undefined + }; +}; +// ==============================|| getusers (viewProfile)||============================== // + +export const getusers = async () => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/users/getusers/?configid=9&userid=${userid}`); + return res.data.details; + } catch (err) { + console.log('getusers', err.message); + } +}; +// ==============================|| getallriders (order)||============================== // + +export const getallriders = async () => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/partners/getallriders?partnerid=64`); + return res.data.details; + } catch (err) { + console.log('getallriders', err.message); + } +}; diff --git a/src/pages/auth/check-mail.js b/src/pages/auth/check-mail.js new file mode 100644 index 0000000..cce339d --- /dev/null +++ b/src/pages/auth/check-mail.js @@ -0,0 +1,57 @@ +import { Link } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Button, Grid, Divider, Typography, useMediaQuery } from '@mui/material'; + +// project import +import useAuth from 'hooks/useAuth'; +import AnimateButton from 'components/@extended/AnimateButton'; +import AuthWrapper from 'sections/auth/AuthWrapper'; + +// ================================|| CHECK MAIL ||================================ // + +const CheckMail = () => { + const theme = useTheme(); + const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); + + const { isLoggedIn } = useAuth(); + + return ( + + + + + Hi, Check Your Mail + + We have sent a password recover instructions to your email. + + + + + + + + + + + Sign up with + + + + + ); +}; + +export default CheckMail; diff --git a/src/pages/auth/code-verification.js b/src/pages/auth/code-verification.js new file mode 100644 index 0000000..8a8098d --- /dev/null +++ b/src/pages/auth/code-verification.js @@ -0,0 +1,29 @@ +// material-ui +import { Grid, Stack, Typography } from '@mui/material'; + +// project import +import AuthWrapper from 'sections/auth/AuthWrapper'; +import AuthCodeVerification from 'sections/auth/auth-forms/AuthCodeVerification'; + +// ================================|| CODE VERIFICATION ||================================ // + +const CodeVerification = () => ( + + + + + Enter Verification Code + We send you on mail. + + + + We`ve send you code on jone. ****@company.com + + + + + + +); + +export default CodeVerification; diff --git a/src/pages/auth/forgot-password.js b/src/pages/auth/forgot-password.js new file mode 100644 index 0000000..79a8543 --- /dev/null +++ b/src/pages/auth/forgot-password.js @@ -0,0 +1,41 @@ +import { Link } from 'react-router-dom'; + +// material-ui +import { Grid, Stack, Typography } from '@mui/material'; + +// project import +import useAuth from 'hooks/useAuth'; +import AuthWrapper from 'sections/auth/AuthWrapper'; +import AuthForgotPassword from 'sections/auth/auth-forms/AuthForgotPassword'; + +// ================================|| FORGOT PASSWORD ||================================ // + +const ForgotPassword = () => { + const { isLoggedIn } = useAuth(); + + return ( + + + + + Forgot Password + + Back to Login + + + + + + + + + ); +}; + +export default ForgotPassword; diff --git a/src/pages/auth/login.js b/src/pages/auth/login.js new file mode 100644 index 0000000..0742fa4 --- /dev/null +++ b/src/pages/auth/login.js @@ -0,0 +1,41 @@ +import { Link } from 'react-router-dom'; + +// material-ui +import { Grid, Stack, Typography } from '@mui/material'; + +// project import +import useAuth from 'hooks/useAuth'; +import AuthWrapper from 'sections/auth/AuthWrapper'; +import AuthLogin from 'sections/auth/auth-forms/AuthLogin'; + +// ================================|| LOGIN ||================================ // + +const Login = () => { + const { isLoggedIn } = useAuth(); + + return ( + + + + + Login + + Don't have an account? + + + + + + + + + ); +}; + +export default Login; diff --git a/src/pages/auth/register.js b/src/pages/auth/register.js new file mode 100644 index 0000000..c9d0cad --- /dev/null +++ b/src/pages/auth/register.js @@ -0,0 +1,41 @@ +import { Link } from 'react-router-dom'; + +// material-ui +import { Grid, Stack, Typography } from '@mui/material'; + +// project import +import useAuth from 'hooks/useAuth'; +import AuthWrapper from 'sections/auth/AuthWrapper'; +import FirebaseRegister from 'sections/auth/auth-forms/AuthRegister'; + +// ================================|| REGISTER ||================================ // + +const Register = () => { + const { isLoggedIn } = useAuth(); + + return ( + + + + + Sign up + + Already have an account? + + + + + + + + + ); +}; + +export default Register; diff --git a/src/pages/auth/reset-password.js b/src/pages/auth/reset-password.js new file mode 100644 index 0000000..aa4c286 --- /dev/null +++ b/src/pages/auth/reset-password.js @@ -0,0 +1,26 @@ +// material-ui +import { Grid, Stack, Typography } from '@mui/material'; + +// project import +import AuthWrapper from 'sections/auth/AuthWrapper'; +import AuthResetPassword from 'sections/auth/auth-forms/AuthResetPassword'; + +// ================================|| RESET PASSWORD ||================================ // + +const ResetPassword = () => ( + + + + + Reset Password + Please choose your new password + + + + + + + +); + +export default ResetPassword; diff --git a/src/pages/ctrlK.js b/src/pages/ctrlK.js new file mode 100644 index 0000000..8fc0305 --- /dev/null +++ b/src/pages/ctrlK.js @@ -0,0 +1,24 @@ +import React, { useRef, useEffect } from 'react'; + +const CtrlK = () => { + useEffect(() => { + const handleKeyPress = (event) => { + if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { + event.preventDefault(); + textFieldRef.current.focus(); + } + + if (event.key === 'Escape' && document.activeElement === textFieldRef.current) { + textFieldRef.current.blur(); + } + }; + + document.addEventListener('keydown', handleKeyPress); + + return () => { + document.removeEventListener('keydown', handleKeyPress); + }; + }, [textFieldRef]); +}; + +export default CtrlK; diff --git a/src/pages/demoPage.js b/src/pages/demoPage.js new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/extra-pages/sample-page.js b/src/pages/extra-pages/sample-page.js new file mode 100644 index 0000000..5ed2c60 --- /dev/null +++ b/src/pages/extra-pages/sample-page.js @@ -0,0 +1,20 @@ +// material-ui +import { Typography } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// ==============================|| SAMPLE PAGE ||============================== // + +const SamplePage = () => ( + + + Lorem ipsum dolor sit amen, consenter nipissing eli, sed do elusion tempos incident ut laborers et doolie magna alissa. Ut enif ad + minim venice, quin nostrum exercitation illampu laborings nisi ut liquid ex ea commons construal. Duos aube grue dolor in reprehended + in voltage veil esse colum doolie eu fujian bulla parian. Exceptive sin ocean cuspidate non president, sunk in culpa qui officiate + descent molls anim id est labours. + + +); + +export default SamplePage; diff --git a/src/pages/firebase/firebase.js b/src/pages/firebase/firebase.js new file mode 100644 index 0000000..83dfa8e --- /dev/null +++ b/src/pages/firebase/firebase.js @@ -0,0 +1,20 @@ +// firebase.js +import firebase from 'firebase/compat/app'; +import 'firebase/compat/auth'; +import 'firebase/compat/firestore'; + +const firebaseConfig = { + apiKey: 'AIzaSyBkzz2Yua74Q9YpzGmUPFP94fmJQqNMIiU', + authDomain: 'nearle-gear.firebaseapp.com', + projectId: 'nearle-gear', + storageBucket: 'nearle-gear.appspot.com', + messagingSenderId: '140444764229', + appId: '1:140444764229:web:2e60cbb7b4e26b33283b2c' +}; + +// Initialize Firebase +if (!firebase.apps.length) { + firebase.initializeApp(firebaseConfig); +} + +export default firebase; // Export the initialized firebase object diff --git a/src/pages/maintenance/404.js b/src/pages/maintenance/404.js new file mode 100644 index 0000000..3e9b0e8 --- /dev/null +++ b/src/pages/maintenance/404.js @@ -0,0 +1,56 @@ +import { Link } from 'react-router-dom'; + +// project import +import { APP_DEFAULT_PATH } from 'config'; + +// material-ui +import { Box, Button, Grid, Stack, Typography } from '@mui/material'; + +// assets +import error404 from 'assets/images/maintenance/Error404.png'; +import TwoCone from 'assets/images/maintenance/TwoCone.png'; + +// ==============================|| ERROR 404 - MAIN ||============================== // + +function Error404() { + return ( + <> + + + + + + mantis + + + + + mantis + + + + + + + Page Not Found + + The page you are looking was moved, removed, renamed, or might never exist! + + + + + + + ); +} + +export default Error404; diff --git a/src/pages/maintenance/500.js b/src/pages/maintenance/500.js new file mode 100644 index 0000000..da019bb --- /dev/null +++ b/src/pages/maintenance/500.js @@ -0,0 +1,45 @@ +import { Link } from 'react-router-dom'; + +// project import +import { APP_DEFAULT_PATH } from 'config'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Box, Button, Grid, Stack, Typography } from '@mui/material'; + +// assets +import error500 from 'assets/images/maintenance/Error500.png'; + +// ==============================|| ERROR 500 - MAIN ||============================== // + +function Error500() { + const theme = useTheme(); + const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); + + return ( + <> + + + + mantis + + + + + + Internal Server Error + + + Server error 500. we fixing the problem. please try again at a later stage. + + + + + + + ); +} + +export default Error500; diff --git a/src/pages/maintenance/coming-soon.js b/src/pages/maintenance/coming-soon.js new file mode 100644 index 0000000..eddd960 --- /dev/null +++ b/src/pages/maintenance/coming-soon.js @@ -0,0 +1,94 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Box, Button, Grid, Stack, TextField, Typography } from '@mui/material'; + +// third party +import { useTimer } from 'react-timer-hook'; + +// assets +import coming from 'assets/images/maintenance/coming-soon.png'; +import MainCard from 'components/MainCard'; + +// ==============================|| COMING SOON - MAIN ||============================== // + +const TimerBox = ({ count, label }) => { + const theme = useTheme(); + const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); + + return ( + + + + {count} + + + + {label} + + + + + ); +}; + +TimerBox.propTypes = { + count: PropTypes.number, + label: PropTypes.string +}; + +function ComingSoon() { + const time = new Date(); + time.setSeconds(time.getSeconds() + 3600 * 24 * 2 - 3600 * 15.5); + + const { seconds, minutes, hours, days } = useTimer({ expiryTimestamp: time }); + + return ( + <> + + + + mantis + + + + + + Coming Soon + + + Something new is on its way + + + + + + + : + + : + + : + + + + + + + Be the first to be notified when Mantis launches. + + + + + + + + + + ); +} + +export default ComingSoon; diff --git a/src/pages/maintenance/under-construction.js b/src/pages/maintenance/under-construction.js new file mode 100644 index 0000000..9829e84 --- /dev/null +++ b/src/pages/maintenance/under-construction.js @@ -0,0 +1,39 @@ +import { Link } from 'react-router-dom'; + +// project import +import { APP_DEFAULT_PATH } from 'config'; + +// material-ui +import { Box, Button, Grid, Stack, Typography } from '@mui/material'; + +// assets +import construction from 'assets/images/maintenance/under-construction.svg'; + +// ==============================|| UNDER CONSTRUCTION - MAIN ||============================== // + +function UnderConstruction() { + return ( + + + + mantis + + + + + + Under Construction + + + Hey! Please check out this site later. We are doing some maintenance on it right now. + + + + + + ); +} + +export default UnderConstruction; diff --git a/src/pages/nearle/accountsettings.js b/src/pages/nearle/accountsettings.js new file mode 100644 index 0000000..b372a4b --- /dev/null +++ b/src/pages/nearle/accountsettings.js @@ -0,0 +1,43 @@ +import { Grid } from '@mui/material'; +import { useQuery } from '@tanstack/react-query'; +import CircularLoader from 'components/CircularLoader'; +import Loader from 'components/Loader'; +import MainCard from 'components/MainCard'; +import { getusers } from 'pages/api/api'; + +const ViewProfile = () => { + const { + data: userdata, + isLoading, + isError, + error + } = useQuery({ + queryKey: ['getuser'], + queryFn: getusers + }); + return ( + <> + {isLoading && ( + <> + + + + )} + + + + {userdata?.firstname} + + + {' '} + + + {' '} + + + + + ); +}; + +export default ViewProfile; diff --git a/src/pages/nearle/clientPricing/clientPricing.js b/src/pages/nearle/clientPricing/clientPricing.js new file mode 100644 index 0000000..1df45fb --- /dev/null +++ b/src/pages/nearle/clientPricing/clientPricing.js @@ -0,0 +1,132 @@ +import React, { useEffect, useState } from 'react'; +import axios from 'axios'; +import { Stack, TableContainer, Table, TableHead, TableRow, TableCell, TableBody, Chip } from '@mui/material'; +import MainCard from 'components/MainCard'; +import Loader from 'components/Loader'; +import TitleCard from 'components/nearle_components/TitleCard'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import { Empty } from 'antd'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; + +// ==============================|| Starts here ||============================== // +const ClientsPricing = () => { + const [appId, setAppId] = useState(0); + const [locaName, setLocoName] = useState(''); + const [pricing, setpricing] = useState([]); + const [isLoader, setIsloader] = useState([]); + + // ==============================|| formatNumberToRupees ||============================== // + function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); + } + function dotzerozero(value) { + return new Intl.NumberFormat('en-IN', { + minimumFractionDigits: 2 + }).format(value); + } + + // ==============================|| getAllPricing ||============================== // + const getAllPricing = async () => { + setIsloader(true); + try { + const pricingres = await axios.get(`${process.env.REACT_APP_URL}/utils/getallpricing/?applocationid=${appId}`); + console.log('pricingres', pricingres.data.details); + setpricing(pricingres.data.details); + setIsloader(false); + } catch (err) { + console.log('pricingres', err); + } + }; + useEffect(() => { + getAllPricing(); + }, [appId]); + + return ( + <> + {isLoader && } + {/* ============================================= || Title Card || ============================================= */} + + + + + + + {/* ============================================= || table || ============================================= */} + + + + + + S.No + Location + Pricing Id + Name + Slab + Base Price + MinKm + Price/Km + MaxKm + Min Orders + + + + {isLoader && } + {pricing?.length === 0 && !isLoader ? ( + + + + + + ) : ( + pricing?.map((data, index) => ( + + {index + 1} + + {data.applocation} + + + + + + {data.appname} + + {data.slab} + + + + + + + + + + + + + + + + + + {data.minorder} + + )) + )} + +
+
+
+ + ); +}; + +export default ClientsPricing; diff --git a/src/pages/nearle/clients/Tenants.js b/src/pages/nearle/clients/Tenants.js new file mode 100644 index 0000000..6620635 --- /dev/null +++ b/src/pages/nearle/clients/Tenants.js @@ -0,0 +1,1740 @@ +import React, { useEffect, useState, useRef, useMemo } from 'react'; +import TitleCard from 'components/nearle_components/TitleCard'; +import MainCard from 'components/MainCard'; +import axios from 'axios'; +import { useTheme } from '@mui/material/styles'; +import Loader from 'components/Loader'; +import { Empty } from 'antd'; +import dayjs from 'dayjs'; +import { enqueueSnackbar } from 'notistack'; +import Geocode from 'react-geocode'; +import LocationOnIcon from '@mui/icons-material/LocationOn'; +import parse from 'autosuggest-highlight/parse'; +import { debounce } from '@mui/material/utils'; +import { + Stack, + Table, + TableCell, + TableContainer, + TableHead, + TableRow, + TableBody, + Typography, + IconButton, + Box, + Grid, + Autocomplete, + TextField, + Tooltip, + Collapse, + Tab, + Tabs, + Divider, + Card, + CardHeader, + CardContent, + CardActions, + Button, + Dialog, + DialogActions, + DialogContent, + DialogTitle, + FormLabel, + TablePagination, + Chip, + Skeleton, + Backdrop +} from '@mui/material'; +import { + CloseOutlined, + LeftOutlined, + RightOutlined, + EyeOutlined, + EyeInvisibleOutlined, + EditOutlined, + IssuesCloseOutlined, + StopOutlined +} from '@ant-design/icons'; +import { PopupTransition } from 'components/@extended/Transitions'; +import { FaRegCheckCircle } from 'react-icons/fa'; +import { TbBrandDatabricks } from 'react-icons/tb'; +import { GiMoneyStack } from 'react-icons/gi'; +import { FiUser } from 'react-icons/fi'; +import { FaRegAddressCard } from 'react-icons/fa'; +import { TbCategoryMinus } from 'react-icons/tb'; +import { MdMyLocation } from 'react-icons/md'; +import { GiModernCity } from 'react-icons/gi'; +import { MdNumbers } from 'react-icons/md'; +import { TbWorldLongitude } from 'react-icons/tb'; +import { TbWorldLatitude } from 'react-icons/tb'; +import { FaRegCircleUser } from 'react-icons/fa6'; +import { TbListDetails } from 'react-icons/tb'; +import { FiPhoneCall } from 'react-icons/fi'; +import { LuMail } from 'react-icons/lu'; +import { BiUser } from 'react-icons/bi'; +import { BiRegistered } from 'react-icons/bi'; +import { PiUsersThree } from 'react-icons/pi'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import { useQuery } from '@tanstack/react-query'; +import { getalltenants, gettenantsummary } from 'pages/api/api'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; + +// ==============================|| Starts here||============================== // +const Clients1 = () => { + const textFieldRef = useRef(null); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + const [pageno, setPageno] = useState(1); + const [rowsPerPage, setRowsPerPage] = React.useState(10); + // const [tenantList, settenantList] = useState([]); + const theme = useTheme(); + const [isloader, setisloader] = useState(false); + const [appId, setAppId] = useState(0); + const [locaName, setLocoName] = useState(''); + const [locations, setLocations] = useState('All'); + const [openRow1, setOpenRow1] = useState(null); // Initially no row is open + const [value, setValue] = React.useState(null); + const [value0, setValue0] = useState(0); + const [value1, setValue1] = useState(0); + const [value2, setValue2] = useState(0); + const [selectedTenid, setSelectedtenid] = useState(null); + const [clientpricelist, setClientpricelist] = useState([]); + const [clientstatus, setClientstatus] = useState(''); + const [tenantPricing, setTenanatPricing] = useState(); + const [status, setstatus] = useState('active'); + const [selectedCustomer, setSelectedCustomer] = useState({}); // to edit + const [dialogopen, setDialogopen] = useState(false); + const [appPricing, setAppPricing] = useState([]); + const [selectedPricing, setSelectedPricing] = useState({}); + const [isPrice, setIsprice] = useState(true); + const [address, setAddress] = useState(''); + const [city, setCity] = useState(''); + const [zipcode, setZipcode] = useState(''); + const [state, setState] = useState(''); + const [suburb, setSuburb] = useState(''); + const [latlong, setLatlong] = useState({}); + const [editClient, setEditClient] = useState({}); + const [page, setPage] = useState(0); + const [tabStatus, setTabStatus] = useState('Active'); + + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; + const dialogclose = () => { + setDialogopen(false); + }; + + const handleChange = (event, newValue) => { + setTabStatus(newValue == 0 ? 'Active' : newValue == 1 ? 'Pending' : 'InActive'); + setValue0(newValue); + setSearchword(''); + setPage(0); + }; + const handleChange1 = (event, newValue1) => { + console.log('newValue1', newValue1); + setValue1(newValue1); + }; + const handleChange2 = (event, newValue2) => { + console.log('newValue2', newValue2); + setValue2(newValue2); + }; + + const [openRowIndex1, setOpenRowIndex1] = useState(null); // Initially no row is open for collapsible section 1 + const [openRowIndex2, setOpenRowIndex2] = useState(null); // Initially no row is open for collapsible section 2 + // Handle toggling for collapsible section 1 + const handleCollapseToggle1 = (rowIndex) => { + setOpenRowIndex1((prevIndex) => (prevIndex === rowIndex ? null : rowIndex)); + }; + // Handle toggling for collapsible section 2 + const handleCollapseToggle2 = (rowIndex) => { + setOpenRowIndex2((prevIndex) => (prevIndex === rowIndex ? null : rowIndex)); + }; + useEffect(() => { + console.log('selectedCustomer', selectedCustomer); + }, [selectedCustomer]); + useEffect(() => { + setOpenRowIndex1(-1); + setOpenRowIndex2(-1); + }, [value0]); + + /* ============================================= || opentoast || ============================================= */ + + const opentoast = (message, variant, duration) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: duration + }); + }; + // ==============================|| google address ||============================== // + const GOOGLE_MAPS_API_KEY = process.env.REACT_APP_GOOGLE_MAPS_API_KEY; + + function loadScript(src, position, id) { + if (!position) { + return; + } + + const script = document.createElement('script'); + script.setAttribute('async', ''); + script.setAttribute('id', id); + script.src = src; + position.appendChild(script); + } + + const autocompleteService = { current: null }; + // ==============================|| for google address ||============================== // + const [value3, setValue3] = useState(null); + const [inputValue, setInputValue] = useState(''); + const [options, setOptions] = useState([]); + const loaded = useRef(false); + if (typeof window !== 'undefined' && !loaded.current) { + if (!document.querySelector('#google-maps')) { + loadScript( + `https://maps.googleapis.com/maps/api/js?key=${GOOGLE_MAPS_API_KEY}&libraries=places`, + document.querySelector('head'), + 'google-maps' + ); + } + + loaded.current = true; + } + + const fetch = useMemo( + () => + debounce((request, callback) => { + autocompleteService.current.getPlacePredictions(request, callback); + }, 400), + [] + ); + useEffect(() => { + let active = true; + if (!autocompleteService.current && window.google) { + autocompleteService.current = new window.google.maps.places.AutocompleteService(); + } + if (!autocompleteService.current) { + return undefined; + } + + if (inputValue === '') { + setOptions(value ? [value] : []); + return undefined; + } + fetch({ input: inputValue }, (results) => { + if (active) { + let newOptions = []; + + if (value) { + newOptions = [value]; + } + + if (results) { + newOptions = [...newOptions, ...results]; + } + setOptions(newOptions); + } + }); + + return () => { + active = false; + }; + }, [value, inputValue, fetch]); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + useEffect(() => { + try { + console.log('selected address =>', address); + Geocode.fromAddress(address).then( + (response) => { + console.log('lat long response =>', response.results[0]); + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + setEditClient({ + ...editClient, + latitude: lat.toString(), + longitude: lng.toString() + }); + // setSelectedCustomer({ + // ...selectedCustomer, + // latitude: lat, + // longitude: lng, + // }); + if (response.results[0].address_components) { + let place = response.results[0]; + let city1, zipcode1, state1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state1 = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + setState(state1 || ''); + setZipcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + setEditClient({ + ...editClient, + city: city1 || '', + state: state1 || '', + postcode: zipcode || '', + suburb: suburb1 || '' + }); + } + } + }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + useEffect(() => { + selectedCustomer && + setLatlong({ + lat: selectedCustomer.latitude, + lng: selectedCustomer.longitude + }); + }, [selectedCustomer]); + /* ============================================= || handleKeyPress (ctrl+k)| ============================================= */ + useEffect(() => { + const handleKeyPress = (event) => { + if (event.key === 'k' && (event.metaKey || event.ctrlKey)) { + event.preventDefault(); + + textFieldRef.current.focus(); + } + if (event.key === 'Escape' && document.activeElement === textFieldRef.current) { + // Remove focus from the TextField + textFieldRef.current.blur(); + } + }; + document.addEventListener('keydown', handleKeyPress); + + return () => { + document.removeEventListener('keydown', handleKeyPress); + }; + }, []); + + /* ============================================= || getalltenants| ============================================= */ + + const { + data: tenantList, + isLoading: getalltenantsIsLoading, + isError: getalltenantsIsError, + error: getalltenantsError, + refetch: getalltenantsRefetch + } = useQuery({ + queryKey: ['tenantList', appId, debouncedSearch, status, page, rowsPerPage], + queryFn: getalltenants + }); + + // ==============================|| gettenantsummary ||============================== // + const { + data: summaryData = [], + isLoading: summaryDataIsLoading, + isError: summaryDataIsError, + error: summaryDataError, + refetch: summaryDataRefetch + } = useQuery({ + queryKey: ['gettenantsummary', appId, status], + queryFn: gettenantsummary + }); + + /* ============================================= || fetchclientpricelist || ============================================= */ + + const fetchclientpricelist = async () => { + await axios + .get(`${process.env.REACT_APP_URL}/tenants/getpricinglist/?tenantid=${selectedTenid}`) + .then((res) => { + console.log('getpricinglist', res); + if (res.data.status) { + setClientpricelist(res.data.details); + } + }) + .catch((err) => { + console.log(err); + }); + }; + useEffect(() => { + selectedTenid && fetchclientpricelist(); + }, [selectedTenid]); + + /* ============================================= || fetchTenanatPricing || ============================================= */ + const fetchTenanatPricing = async (id) => { + try { + let tenantPricing = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${id}`); + console.log('tenantPricing', tenantPricing.data.details); + setTenanatPricing(tenantPricing.data.details); + } catch (error) { + console.log('fetchTenanatPricing', error); + } + }; + useEffect(() => { + selectedTenid && fetchTenanatPricing(selectedTenid); + }, [selectedTenid]); + /* ============================================= || tenantupdate || ============================================= */ + + const tenantupdate = async (tenid) => { + setisloader(true); + let updateData; + if (tenid == -1) { + updateData = { + tenantid: selectedTenid, + approved: 1 + }; + } else { + updateData = { tenantid: tenid, status: status === 'active' ? 'InActive' : 'Active' }; + } + + await axios + .put(`${process.env.REACT_APP_URL}/tenants/update`, updateData) + .then((res) => { + if (res.data.status) { + opentoast( + value0 == 0 ? 'Inactivated Successfully' : value0 == 1 ? 'Approved Successfully' : 'Activate Successfully', + 'success', + 2000 + ); + getalltenantsRefetch(); + summaryDataRefetch(); + setisloader(false); + } + }) + .catch((err) => { + console.log(err); + opentoast(err.message, 'error', 1500); + setisloader(false); + }); + // } + }; + /* ============================================= || getAppPricing || ============================================= */ + const getAppPricing = async (id) => { + console.log('id', id); + try { + let appPricingRes = await axios.get(`${process.env.REACT_APP_URL}/utils/getapppricing/?applocationid=${id}`); + console.log('appPricingRes', appPricingRes.data.details); + setAppPricing(appPricingRes.data.details); + } catch (error) { + console.log('appPricingRes', error); + } + }; + /* ============================================= || createpricing || ============================================= */ + const createpricing = async () => { + setisloader(true); + await axios + .post(`${process.env.REACT_APP_URL}/tenants/createpricing`, { + tenantpricingid: 0, + applocationid: appId, + pricingid: selectedPricing.pricingid, + tenantid: selectedTenid, + pricingdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + configid: selectedPricing.configid, + pricingtypeid: selectedPricing.pricingtypeid, + slab: selectedPricing.slab, + baseprice: +selectedPricing.baseprice, + priceperkm: +selectedPricing.priceperkm, + minkm: +selectedPricing.minkm, + maxkm: +selectedPricing.maxkm, + orders: +selectedPricing.minorder, + othercharges: 0 + }) + .then((res) => { + if (res.data.status) { + enqueueSnackbar('Price Created Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + dialogclose(); + setSelectedPricing({}); + tenantupdate(-1); + fetchclientpricelist(); + } + }) + .catch((err) => { + console.log(err); + }); + }; + /* ============================================= || updateClient || ============================================= */ + const updateClient = async () => { + try { + const arr = { ...editClient, tenantid: selectedTenid }; + + console.log('updateClient', arr); + const updateRes = await axios.put(`${process.env.REACT_APP_URL}/tenants/update`, arr); + console.log('updateClient', updateRes.data.message); + if (updateRes.data.status) { + opentoast(updateRes.data.message, 'success', 1500); + } + getalltenantsRefetch(); + summaryDataRefetch(); + } catch (err) { + console.log('updateClient', err); + } + }; + + return ( +
+ {(getalltenantsIsLoading || summaryDataIsLoading || isloader) && } + {/* ========================================================== || Titlecard || ========================================================== */} + + + + {/* ========================================================== || MainCard (searchword) || ========================================================== */} + + {/* ============================================= || Tabs || ================================================= */} + + + { + setstatus('active'); + }} + icon={ + : summaryData?.active || 0} + color="primary" + variant="light" + sx={{ minWidth: 32, justifyContent: 'center' }} + size="small" + /> + } + iconPosition="end" + /> + { + setstatus('pending'); + }} + icon={ + : summaryData?.pending || 0} + color="primary" + variant="light" + sx={{ minWidth: 32, justifyContent: 'center' }} + size="small" + /> + } + iconPosition="end" + /> + { + setstatus('inactive'); + }} + icon={ + : summaryData?.inactive || 0} + color="primary" + variant="light" + sx={{ minWidth: 32, justifyContent: 'center' }} + size="small" + /> + } + iconPosition="end" + /> + + + {/* ============================================= || SearchOutlined || ================================================= */} + + + + } + > + {/* ============================================= || TableContainer| ============================================= */} + + + + + S.No + Client + Contact + Address + + Actions + + + + + {getalltenantsIsLoading && } + + {tenantList?.length == 0 && !isloader ? ( + + + + + + + + ) : ( + tenantList?.map((row, index) => ( + <> + {/* ============================================ || tablerow 1 || ============================================ */} + + {index + 1 + page * rowsPerPage} + + + + {row.tenantname} + + Id : {row.tenantid} + + + + {row.primarycontact} + {row.primaryemail} + + {row.address} + + + + + {value0 == 0 ? ( + { + setSelectedCustomer(row); + setSelectedtenid(row.tenantid); + setAppId(row.applocationid); + setClientstatus(row.approved); + setTimeout(() => { + tenantupdate(row.tenantid); + }, 100); + }} + /> + ) : value0 == 1 ? ( + { + setSelectedCustomer(row); + setDialogopen(true); + setSelectedtenid(row.tenantid); + setAppId(row.applocationid); + getAppPricing(row.applolcationid); + }} + /> + ) : ( + { + setSelectedCustomer(row); + setSelectedtenid(row.tenantid); + setAppId(row.applocationid); + setTimeout(() => { + tenantupdate(row.tenantid); + }, 100); + }} + /> + )} + + + { + setSelectedCustomer(row); + handleCollapseToggle1(index); // makes 1st collpase open + setOpenRowIndex2(-1); //makes 2nd collapse close , if open + setSelectedtenid(row.tenantid); + // setAppId(row.applocationid); + }} + sx={{ + color: openRowIndex1 === index ? theme.palette.error.main : theme.palette.primary.main + }} + > + {openRowIndex1 === index ? : } + + {value0 !== 1 && ( + { + setSelectedCustomer(row); + handleCollapseToggle2(index); // makse 2nd collpase open + setOpenRowIndex1(-1); // makse 1st collpse close if open + setSelectedtenid(row.tenantid); + setAppId(row.applocationid); + }} + sx={{ + color: openRowIndex2 === index ? theme.palette.error.main : theme.palette.primary.main + }} + > + + {openRowIndex2 === index ? : } + + + )} + + + + {/* ============================================ || collapsive row (1) (view) || ============================================ */} + {openRowIndex1 === index && ( + + + + + + } + sx={{ + alignItems: 'center', + flexDirection: 'row' + }} + /> + + } + sx={{ + alignItems: 'center', + flexDirection: 'row' + }} + /> + + } + > + {/* ============================================= || Details || ============================================= */} + {value1 == 0 && ( + + + + + + + + {row.tenantname} + + Tenant + + + + + + + + + + + {row.firstname} + + Contact Person + + + + + + + + + + + {row.primarycontact} + + Phone + + + + + + + + + + + {row.primaryemail} + + E-Mail + + + + + + + + + + + {row.address} + + Address + + + + + + {/* + + + + + + {row.subcategoryname} + + Category + + + + + + + + {row.suburb} + + + Location + + + + */} + + + + + + + + {row.city} + + City + + + + + + + + {row.postcode} + + + PostCode + + + + + + + + + + + {row.latitude} + + Latitude + + + + + + + + {row.longitude} + + + Longitude + + + + + + )} + {/* ============================================= || Pricing || ============================================= */} + {value1 == 1 && ( + + +
+ + + # + Date + Slab + Base Price + Min Kms + Price/Km + Other Charges + + + + {clientpricelist?.length === 0 ? ( + + + + + + ) : ( + clientpricelist.map((val, i) => ( + + {i + 1} + {dayjs(val.pricingdate).format('DD-MM-YYYY')} + {val.slab} + {val.baseprice} + {val.minkm} + {val.priceperkm} + {val.othercharges} + + )) + )} + +
+
+ + )} +
+ + + + )} + {/* ============================================ || collapsive row (2) (edit)|| ============================================ */} + {openRowIndex2 === index && ( + + + {/* */} + + + + } + sx={{ + alignItems: 'center', + flexDirection: 'row' + }} + /> + {value0 !== 1 && ( + + } + sx={{ + alignItems: 'center', + flexDirection: 'row' + }} + onClick={() => { + getAppPricing(selectedCustomer.applolcationid); + }} + /> + )} + + + {value2 == 1 && ( + + )} + + } + > + {/* ============================================= || Edit Details || ============================================= */} + {value2 == 0 && ( + + + {/* =========================|| Edit Details (right) || =========================*/} + + + + + {/* =========================|| Tenant || =========================*/} + + + + + + + { + setEditClient({ + ...editClient, + tenantname: e.target.value + }); + }} + sx={{ mt: 2 }} + /> + + + {' '} + {/* =========================|| Contact Person || =========================*/} + + + + + + + { + setEditClient({ + ...editClient, + firstname: e.target.value + }); + }} + sx={{ mt: 2 }} + /> + + + + {/* =========================|| Contact Number || =========================*/} + + + + + + + { + setEditClient({ + ...editClient, + primarycontact: e.target.value + }); + }} + sx={{ mt: 2 }} + /> + + + + {/* =========================|| E-Mail || =========================*/} + + + + + + + { + setEditClient({ + ...editClient, + primaryemail: e.target.value + }); + }} + sx={{ mt: 2 }} + /> + + + + {/* =========================|| Address || =========================*/} + + + + + + + (typeof option === 'string' ? option : option.description)} + filterOptions={(x) => x} + options={options} + autoComplete + includeInputInList + filterSelectedOptions + defaultValue={selectedCustomer.address} + noOptionsText="No locations" + onChange={(event, newValue) => { + setOptions(newValue ? [newValue, ...options] : options); + setValue(newValue || ''); + console.log('newValue', newValue); + setAddress(newValue?.description || ''); + setEditClient({ + ...editClient, + address: newValue?.description || '' + }); + }} + onInputChange={(event, newInputValue) => { + setInputValue(newInputValue); + }} + renderInput={(params) => ( + + )} + renderOption={(props, option) => { + const matches = option.structured_formatting.main_text_matched_substrings || []; + + const parts = parse( + option.structured_formatting.main_text, + matches.map((match) => [match.offset, match.offset + match.length]) + ); + + return ( +
  • + + + + + + {parts.map((part, index) => ( + + {part.text} + + ))} + + {option.structured_formatting.secondary_text} + + + +
  • + ); + }} + /> +
    +
    +
    + {/* =========================|| category name || =========================*/} + {/* + + + + + + { + setEditClient({ + ...editClient, + subcategoryname: e.target.value + }); + }} + /> + + + + + + { + setEditClient({ + ...editClient, + suburb: e.target.value + }); + }} + value={selectedCustomer.suburb} + /> + + + */} + {/* =========================|| city || =========================*/} + + + + + + + { + setEditClient({ + ...editClient, + city: e.target.value + }); + }} + value={city == '' ? selectedCustomer.city : city} + /> + + + + + + { + { + setEditClient({ + ...editClient, + postcode: e.target.value + }); + } + }} + value={zipcode == '' ? selectedCustomer.postcode : zipcode} + /> + + + + {/* =========================|| latitude || =========================*/} + + + + + + + + + + + + + { + // setLongi(e.target.value.toString()) + // setEditClient({ + // ...editClient, + // longitude: + // e.target.value.toString(), + // }); + // }} + /> + + + +
    +
    + {/* =========================|| update || =========================*/} + + + + +
    +
    +
    +
    + )} + {/* ============================================= || Edit Pricing || ============================================= */} + {value2 == 1 && ( + + + + + + # + Date + Slab + Base Price + Min Kms + Price/Km + Other Charges + + + + {clientpricelist?.length === 0 ? ( + + + + + + ) : ( + clientpricelist.map((val, i) => ( + + {i + 1} + {dayjs(val.pricingdate).format('DD-MM-YYYY')} + {val.slab} + {val.baseprice} + {val.minkm} + {val.priceperkm} + {val.othercharges} + + )) + )} + +
    +
    +
    + )} +
    + {/*
    */} +
    +
    + )} + + )) + )} + + + + + {/* ============================================= || Pagination| ============================================= */} + {!searchword && tenantList?.length > 0 && ( + <> + + + + )} + + {/* // ==============================||( Client Pricing ) dialog (dialogopen) ||============================== // */} + + + {`Client Pricing - (${selectedCustomer.tenantname})`} + + + + + + Select Slab + `${option.slab}`} + fullWidth + selectOnFocus + renderInput={(params) => } + onChange={(event, value, reason) => { + setSelectedPricing(value); + console.log('pricing', value); + setIsprice(false); + + if (reason === 'clear') { + setIsprice(true); + } + }} + /> + + + + Base Price + { + setSelectedPricing({ + ...selectedPricing, + baseprice: e.target.value + }); + }} + /> + + + Price/Km + { + setSelectedPricing({ + ...selectedPricing, + priceperkm: e.target.value + }); + }} + /> + + + + Min Kms + { + setSelectedPricing({ + ...selectedPricing, + minkm: e.target.value + }); + }} + /> + + + Max Kms + { + setSelectedPricing({ + ...selectedPricing, + maxkm: e.target.value + }); + }} + /> + + + Min Orders + { + setSelectedPricing({ + ...selectedPricing, + minorder: e.target.value + }); + }} + /> + + + + + + + + + {value2 == 1 && ( + + )} + {value0 == 1 && ( + + )} + + + + + + +
    + ); +}; + +export default Clients1; diff --git a/src/pages/nearle/clients/createCustomer.js b/src/pages/nearle/clients/createCustomer.js new file mode 100644 index 0000000..2b35406 --- /dev/null +++ b/src/pages/nearle/clients/createCustomer.js @@ -0,0 +1,553 @@ +import { React, useEffect, useState, useRef } from 'react'; +import { useTheme } from '@mui/material/styles'; +import { Button, Grid, InputLabel, MenuItem, Select, Stack, TextField, Typography, IconButton, Autocomplete } from '@mui/material'; +import MainCard from 'components/MainCard'; +import axios from 'axios'; +import Loader from 'components/Loader'; +import Geocode from 'react-geocode'; +import { enqueueSnackbar } from 'notistack'; +import { useNavigate } from 'react-router'; +import CloseIcon from '@mui/icons-material/Close'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import { OpenToast } from 'components/third-party/OpenToast'; + +const CreateCustomer = () => { + const [appId, setAppId] = useState(0); + const theme = useTheme(); + const locationRef = useRef(null); + const [mobilenumber, setMobilenumber] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + const [address, setAddress] = useState(''); + const [firstname, setFirstname] = useState(''); + const [doorno, setDoorno] = useState(''); + const [landmark, setLandmark] = useState(''); + const [inputValue2, setInputValue2] = useState(''); + const [appLocaLat, setAppLocaLat] = useState(); + const [appLocaLng, setAppLocaLng] = useState(); + const [appLocaRadius, setAppLocaRadius] = useState(); + const [locaName, setLocoName] = useState('Select Location'); + const [tenantlist, setTenantlist] = useState([]); + const [tenantLocations, setTenantlocations] = useState([]); + const [isClient, setisclient] = useState(false); + const [tid, setTid] = useState(0); + const [isBusiness, setIsBusiness] = useState(false); + const [tenanatLocoId, setTenanatLocoId] = useState(localStorage.getItem('locationid')); + const [tenantlocation, setTenantlocation] = useState(''); + const [isLocation, setIsLocation] = useState(false); + const [pickCust, setPickCust] = useState({}); + const [startPoint, setStartPoint] = useState({ latitude: 0, longitude: 0 }); + const [loading, setLoading] = useState(false); + const navigate = useNavigate(); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + + useEffect(() => { + // Initialize Google Maps Autocomplete + if (inputValue2) { + const autocompleteInput = document.getElementById('addressAuto1'); + const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, { + // types: ['(cities)'], // You can adjust the types parameter based on your requirements + strictBounds: true, + bounds: new window.google.maps.Circle({ + // center: new window.google.maps.LatLng(11.0050707, 76.9509083), + // radius: 100000 + center: new window.google.maps.LatLng(appLocaLat, appLocaLng), + + radius: appLocaRadius * 1000 + }).getBounds() + }); + // Event listener for autocomplete place changed + autocomplete.addListener('place_changed', () => { + const place = autocomplete.getPlace(); + setInputValue2(`${place.name}, ${place.formatted_address}`); + console.log('new place', place); // Do something with the selected place + console.log(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + // to trigger getDistance + setStartPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); + setAddress(`${place.name} ${place.formatted_address}`); + setPickCust({ ...pickCust, address: `${place.name} ${place.formatted_address}` }); + const address = { + address: `${place.name} ${place.formatted_address}`, + street_number: '', + route: '', + locality: '', + sublocality_level_1: '', + administrative_area_level_3: '', + administrative_area_level_1: '', + country: '', + postal_code: '' + }; + place.address_components.forEach((component) => { + component.types.forEach((type) => { + switch (type) { + case 'street_number': + address.street_number = component.long_name; + break; + case 'route': + address.route = component.long_name; + break; + case 'locality': + address.locality = component.long_name; + break; + case 'sublocality_level_1': + address.sublocality_level_1 = component.long_name; + break; + case 'administrative_area_level_3': + address.administrative_area_level_3 = component.long_name; + break; + case 'administrative_area_level_1': + address.administrative_area_level_1 = component.long_name; + break; + case 'country': + address.country = component.long_name; + break; + case 'postal_code': + address.postal_code = component.long_name; + break; + // Add more cases as needed for other types + } + }); + }); + + // Use address object as per your requirements + setPickCust({ + ...pickCust, + address: address.address, + doorno: `${address.street_number} ${address.route}`, + suburb: address.administrative_area_level_3, + city: address.locality, + state: address.administrative_area_level_1, + postcode: address.postal_code, + latitude: place.geometry.location.lat(), + longitude: place.geometry.location.lng() + }); + console.log('Pick Address:', address); + }); + } + }, [inputValue2]); + // ==================================================== || getapplocations || ==================================================== + const getapplocations = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) + .then((res) => { + console.log('getapplocations', res); + const { latitude, longitude, radius } = res.data.details[0]; + if (res.data.status) { + setAppLocaLat(latitude); + setAppLocaLng(longitude); + setAppLocaRadius(radius); + console.log('radius', radius); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (appId) { + getapplocations(); + } + }, [appId]); + + // ===================================================== || fetchtenantinfolist || ===================================================== + + const fetchtenantinfolist = async (id) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${id}&status=active`) + + .then((res) => { + console.log(res); + if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + setTenantlist(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + appId && fetchtenantinfolist(appId); + }, [appId]); + // ============================================= || gettenantlocations (branches) || ============================================= + const gettenantlocations = async (id) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); + console.log('gettenantlocations', res.data.details); + if (res.data.details.length == 1) { + setIsLocation(true); + setTenantlocations(res.data.details); + setTenanatLocoId(res.data.details[0].locationid); + setTenantlocation(res.data.details[0].locationaddress); //client address + setIsBusiness(true); + } else { + setTenantlocations(res.data.details); + setIsBusiness(false); // became true after select from tenanatLocations + } + } catch (err) { + console.log('gettenantlocations', err); + } + }; + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }; + + const createprofile = async () => { + let obj = { + applocationid: +appId, + tenantid: +tid, + customerid: 0, + configid: 1, + firstname: firstname, + dialcode: '+91', + contactno: mobilenumber, + email: emailaddress, + doorno: doorno, + address: pickCust.address, + suburb: pickCust.suburb, + city: pickCust.city, + state: pickCust.state, + postcode: pickCust.postcode, + landmark: landmark, + latitude: startPoint.latitude.toString(), + longitude: startPoint.longitude.toString(), + profileimage: '', + devicetype: '', + deviceid: '', + customertoken: '', + primaryaddress: 1 + }; + console.log(obj); + + setLoading(true); + try { + await axios + .post(`${process.env.REACT_APP_URL}/customers/create`, obj) + .then((res) => { + console.log(res); + if (res.data.status) { + enqueueSnackbar(' Created Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + navigate('/nearle/customers'); + } else if (res.data.message == 'Customer Already available') { + enqueueSnackbar('Customer Already available', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + + setLoading(false); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + + return ( + <> + {loading && } + + + Create Customer + + + + + + + {/* ===================================================== || Choose location || ===================================================== */} + + + + {/* ===================================================== || Choose client || ===================================================== */} + + } + onChange={(e, val, reason) => { + if (val) { + console.log('Client', val); + gettenantlocations(val.tenantid); + setTid(val.tenantid); + setisclient(true); + } else { + setClientinfo({}); + setTenantid(''); + } + if (reason == 'clear') { + setisclient(false); + } + }} + />{' '} + + + {/* ===================================================== || Name|| ===================================================== */} + + + Name + setFirstname(e.target.value)} + value={firstname} + autoComplete="off" + /> + + + {/* ===================================================== || Phone Number || ===================================================== */} + + + Phone Number + + + { + if (e.target.value.toString().length <= 10) { + setMobilenumber(e.target.value); + } + }} + value={mobilenumber} + autoComplete="off" + // disabled + sx={{ cursor: 'not-allowed' }} + /> + + + + {/* ===================================================== || Email|| ===================================================== */} + + + + Email + setEmailaddress(e.target.value)} + value={emailaddress} + autoComplete="off" + /> + + + {/* ===================================================== || door no || ===================================================== */} + + + + Door No + setDoorno(e.target.value)} + value={doorno} + autoComplete="off" + /> + + + + {/* ===================================================== || Address || ===================================================== */} + + + + Address + { + if (appId) { + appId && setInputValue2(e.target.value); + } else { + OpenToast('Select Location First', 'warning', 3000); + } + }} + InputProps={{ + endAdornment: ( + { + setInputValue2(''); + setPickCust({ + ...pickCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setStartPoint({ latitude: 0, longitude: 0 }); + }} + size="small" + > + + + ) + }} + /> + + + + + + Location + setPickCust({ ...pickCust, suburb: e.target.value })} + value={pickCust.suburb} + autoComplete="off" + /> + + + + + City + setPickCust({ ...pickCust, city: e.target.value })} + value={pickCust.city} + autoComplete="off" + /> + + + + + + State + setPickCust({ ...pickCust, state: e.target.value })} + value={pickCust.state} + autoComplete="off" + /> + + + + + Post Code + setPickCust({ ...pickCust, postcode: e.target.value })} + value={pickCust.postcode} + autoComplete="off" + /> + + + + + + Landmark + setLandmark(e.target.value)} + value={landmark} + autoComplete="off" + /> + + + + + + + + + + + + + ); +}; + +export default CreateCustomer; diff --git a/src/pages/nearle/clients/createclient.js b/src/pages/nearle/clients/createclient.js new file mode 100644 index 0000000..6da9075 --- /dev/null +++ b/src/pages/nearle/clients/createclient.js @@ -0,0 +1,628 @@ +import { useEffect, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Button, FormLabel, Grid, InputLabel, MenuItem, Select, Stack, TextField, Typography } from '@mui/material'; + +// third-party +// import { PatternFormat } from 'react-number-format'; + +// project import +import Avatar from 'components/@extended/Avatar'; +import MainCard from 'components/MainCard'; +import { + // facebookColor, linkedInColor, twitterColor + ThemeMode +} from 'config'; +import axios from 'axios'; +// assets +import { + // FacebookFilled, LinkedinFilled, TwitterSquareFilled, + CameraOutlined +} from '@ant-design/icons'; +import { usePlacesWidget } from 'react-google-autocomplete'; +import Loader from 'components/Loader'; +import Geocode from 'react-geocode'; +import { enqueueSnackbar } from 'notistack'; +import { useNavigate } from 'react-router'; +// import { setLocationType } from 'react-geocode'; + +// const avatarImage = require.context('assets/images/users', true); + +// styles & constant +// const ITEM_HEIGHT = 48; +// const ITEM_PADDING_TOP = 8; +// const MenuProps = { +// PaperProps: { +// style: { +// maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP +// } +// } +// }; + +const Createclient = () => { + const theme = useTheme(); + const [selectedImage, setSelectedImage] = useState(undefined); + const [avatar, setAvatar] = + useState(); + // avatarImage(`./default.png`) + const [businessname, setBusinessname] = useState(''); + const [businessno, setBusinessno] = useState(''); + // const [role, setRole] = useState(''); + const [mobilenumber, setMobilenumber] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + const [city, setCity] = useState(''); + const [zipcode, setZipcode] = useState(''); + const [address, setAddress] = useState(''); + const [state, setState] = useState(''); + const [suburb, setSuburb] = useState(''); + const [latlong, setLatlong] = useState({}); + const [profiledetails, setProfiledetails] = useState({}); + const [primarycontact, setPrimarycontact] = useState(''); + const [firstname, setFirstname] = useState(''); + const [doorno, setDoorno] = useState(''); + const [landmark, setLandmark] = useState(''); + const [tenantinfo, setTenantinfo] = useState({}); + + const navigate = useNavigate(); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // Geocode.setApiKey('AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); + + const [loading, setLoading] = useState(false); + + useEffect(() => { + // fetchprofiledetails(localStorage.getItem('appuserid')); + // fetchprofiledetails(181); + if (localStorage.getItem('tenantid')) { + fetchtenantinfo(localStorage.getItem('tenantid')); + } + }, []); + + useEffect(() => { + try { + Geocode.fromAddress(address).then( + (response) => { + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + console.log(response); + } + }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + // console.log(alertmessage) + }; + + const fetchprofiledetails = async (userid) => { + if (userid) { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + let res1 = res.data.details; + setProfiledetails(res1); + setBusinessname(res1.tenantname); + setBusinessno(res1.registrationno); + setMobilenumber(res1.contactno); + setPrimarycontact(res1.primarycontact); + setEmailaddress(res1.primaryemail); + setAddress(res1.address); + setCity(res1.city); + setZipcode(res1.postcode); + setState(res1.state); + setSuburb(res1.suburb); + setLatlong({ + lat: res1.latitude, + lng: res1.longitude + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + const fetchtenantinfo = async (tid) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) + .then((res) => { + console.log(res); + if (res.data.status) { + setTenantinfo(res.data.details); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (selectedImage) { + setAvatar(URL.createObjectURL(selectedImage)); + } + }, [selectedImage]); + + const { ref: materialRef } = usePlacesWidget({ + apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY, + onPlaceSelected: (place) => { + console.log(place); + + setAddress(place.formatted_address); + let city1, zipcode1, state1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state1 = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + setState(state1 || ''); + setZipcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + + // setAddress(place.formatted_address) + }, + // inputAutocompleteValue: "country", + options: { + // componentRestrictions: 'us', + // types: ["establishment"] + types: ['address' || 'geocode'] + } + }); + + const createprofile = async () => { + console.log('res', businessname, businessno, mobilenumber, emailaddress, address, city, zipcode); + + // if (!businessname) { + // opentoast('Fill Business name') + // } else if (!businessno) { + // opentoast('Fill Registration No') + // } + // else + if (!firstname) { + opentoast('Fill Full name'); + } else if (!mobilenumber) { + opentoast('Fill Mobile Number'); + } else if (!emailaddress) { + opentoast('Fill emailaddress'); + } else if (!address) { + opentoast('Fill Address'); + } else if (!city) { + opentoast('Fill City'); + } else if (!zipcode) { + opentoast('Fill post code'); + } else if (!suburb) { + opentoast('Fill suburb'); + } else if (!emailaddress) { + opentoast('Fill emailaddress'); + } else if (!latlong.lat || !latlong.lng) { + opentoast('Choose valid address'); + } else { + let obj = { + customerid: 0, + configid: 1, + firstname: firstname, + applocationid: tenantinfo.applolcationid, + profileimage: '', + dialcode: '+91', + contactno: mobilenumber, + devicetype: '', + deviceid: '', + customertoken: '', + address: address, + suburb: suburb, + city: city, + state: state, + postcode: zipcode, + landmark: landmark, + doorno: doorno, + latitude: latlong.lat.toString(), + longitude: latlong.lng.toString(), + tenantid: parseInt(localStorage.getItem('tenantid')), + email: emailaddress + }; + + console.log(obj); + + setLoading(true); + try { + await axios + .post(`${process.env.REACT_APP_URL}/customers/create`, obj) + .then((res) => { + console.log(res); + if (res.data.status) { + enqueueSnackbar(' Created Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + navigate('/clients'); + // setTimeout(()=>{ + // fetchprofiledetails(localStorage.getItem('appuserid')); + + // },2000) + } else if (res.data.message == 'Customer Already available') { + enqueueSnackbar('Customer Already available', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + + setLoading(false); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + // const [experience, setExperience] = useState('0'); + + // const handleChange = (event) => { + // setExperience(event.target.value); + // }; + return ( + <> + {loading && } + + + + Create Client + + + + + {/* + + + + + + + + + + + Upload + + + + + setSelectedImage(e.target.files?.[0])} + /> + + + + + + + + + + + + + + + + + + Role + setRole(e.target.value)} + value={role} + autoComplete='off' + + /> + + + + + + */} + + + + {/* + + Business Name + setBusinessname(e.target.value)} + value={businessname} + autoComplete='off' + /> + + + + + Registration No + setBusinessno(e.target.value)} + value={businessno} + autoComplete='off' + + /> + + */} + + + Admin Name + setFirstname(e.target.value)} + value={firstname} + autoComplete="off" + /> + + + + + + Phone Number + + + { }} + onChange={(e) => { + if (e.target.value.toString().length <= 10) { + setMobilenumber(e.target.value); + } + }} + value={mobilenumber} + autoComplete="off" + // disabled + sx={{ cursor: 'not-allowed' }} + /> + + + + + + Email Address + setEmailaddress(e.target.value)} + value={emailaddress} + autoComplete="off" + /> + + + + + + Address + setAddress(e.target.value)} + inputRef={materialRef} + /> + + + + + + Suburb + setSuburb(e.target.value)} + value={suburb} + autoComplete="off" + /> + + + + + City + setCity(e.target.value)} + value={city} + autoComplete="off" + /> + + + + + + State + setState(e.target.value)} + value={state} + autoComplete="off" + /> + + + + + Post Code + setZipcode(e.target.value)} + value={zipcode} + autoComplete="off" + /> + + + + + + Door No + setDoorno(e.target.value)} + value={doorno} + autoComplete="off" + /> + + + + + Landmark + setLandmark(e.target.value)} + value={landmark} + autoComplete="off" + /> + + + + + + + + + + + + + + ); +}; + +export default Createclient; diff --git a/src/pages/nearle/customers/customers.js b/src/pages/nearle/customers/customers.js new file mode 100644 index 0000000..631b954 --- /dev/null +++ b/src/pages/nearle/customers/customers.js @@ -0,0 +1,693 @@ +import { React, useState, useEffect, useRef, useMemo } from 'react'; +import { Empty } from 'antd'; +import axios from 'axios'; +import { FaRegEdit } from 'react-icons/fa'; +import { RiEdit2Fill } from 'react-icons/ri'; +import { useTheme } from '@mui/material/styles'; +import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; + +// material-ui +import { + Box, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Grid, + Typography, + IconButton, + Stack, + Tooltip, + Dialog, + DialogActions, + DialogTitle, + DialogContent, + Button, + TextField, + Autocomplete +} from '@mui/material'; +import Geocode from 'react-geocode'; +import LocationOnIcon from '@mui/icons-material/LocationOn'; +import parse from 'autosuggest-highlight/parse'; +import { debounce } from '@mui/material/utils'; +// project imports +import MainCard from 'components/MainCard'; +import Loader from 'components/Loader'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import { useInfiniteQuery, useQuery } from '@tanstack/react-query'; +import { getallcustomers, getcustomersummary } from 'pages/api/api'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; + +// ==============================|| google address ||============================== // +const GOOGLE_MAPS_API_KEY = process.env.REACT_APP_GOOGLE_MAPS_API_KEY; + +function loadScript(src, position, id) { + if (!position) { + return; + } + + const script = document.createElement('script'); + script.setAttribute('async', ''); + script.setAttribute('id', id); + script.src = src; + position.appendChild(script); +} + +const autocompleteService = { current: null }; + +// ==============================|| MUI TABLE - ENHANCED ||============================== // + +export default function Customers() { + const containerRef = useRef(); + const loadMoreRef = useRef(); + const [rowsPerPage] = useState(50); + const [page] = useState(0); + const theme = useTheme(); + const [appId, setAppId] = useState(0); + const [locaName, setLocoName] = useState('All'); + const [selectedCustomer, setSelectedCustomer] = useState({}); // to edit + const [open, setOpen] = useState(false); + const [address, setAddress] = useState(''); + const [latlong, setLatlong] = useState({}); + const [city, setCity] = useState(''); + const [postcode, setPostcode] = useState(''); + const [state, setState] = useState(''); + const [suburb, setSuburb] = useState(''); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + + // ==============================|| for google address ||============================== // + const [value, setValue] = useState(null); + const [inputValue, setInputValue] = useState(''); + const [options, setOptions] = useState([]); + const loaded = useRef(false); + if (typeof window !== 'undefined' && !loaded.current) { + if (!document.querySelector('#google-maps')) { + loadScript( + `https://maps.googleapis.com/maps/api/js?key=${GOOGLE_MAPS_API_KEY}&libraries=places`, + document.querySelector('head'), + 'google-maps' + ); + } + + loaded.current = true; + } + const fetch = useMemo( + () => + debounce((request, callback) => { + autocompleteService.current.getPlacePredictions(request, callback); + }, 400), + [] + ); + useEffect(() => { + let active = true; + + if (!autocompleteService.current && window.google) { + autocompleteService.current = new window.google.maps.places.AutocompleteService(); + } + if (!autocompleteService.current) { + return undefined; + } + + if (inputValue === '') { + setOptions(value ? [value] : []); + return undefined; + } + + fetch({ input: inputValue }, (results) => { + if (active) { + let newOptions = []; + + if (value) { + newOptions = [value]; + } + + if (results) { + newOptions = [...newOptions, ...results]; + } + + setOptions(newOptions); + } + }); + + return () => { + active = false; + }; + }, [value, inputValue, fetch]); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + useEffect(() => { + try { + console.log('selected address =>', address); + Geocode.fromAddress(address).then( + (response) => { + console.log('lat long response =>', response.results[0]); + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + // setSelectedCustomer({ + // ...selectedCustomer, + // latitude: lat, + // longitude: lng + // }); + if (response.results[0].address_components) { + let place = response.results[0]; + let city1, zipcode1, state1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state1 = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + setState(state1 || ''); + setPostcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + setSelectedCustomer((prev) => ({ + ...prev, + city: city1 || '', + state: state1 || '', + postcode: zipcode1 || '', + suburb: suburb1 || '', + latitude: lat || '', + longitude: lng || '' + })); + } + } + }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + // useEffect(() => { + // selectedCustomer && + // setLatlong({ + // lat: selectedCustomer.latitude, + // lng: selectedCustomer.longitude + // }); + // }, [selectedCustomer]); + + // ==============================|| getallcustomers (customers) ||============================== // + + const { + data, + isLoading: customersIsLoading, + isFetchingNextPage, + fetchNextPage, + hasNextPage, + refetch: getallcustomersRefetch + } = useInfiniteQuery({ + queryKey: ['getAllCustomers', appId, debouncedSearch, rowsPerPage], + queryFn: getallcustomers, + getNextPageParam: (lastPage) => lastPage.nextPage, + keepPreviousData: true + }); + const rows = data?.pages.flatMap((page) => page.data) || []; + + useEffect(() => { + if (!hasNextPage) return; + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + fetchNextPage(); + } + }, + { + root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + rootMargin: '0px', + threshold: 1.0 + } + ); + if (loadMoreRef.current) observer.observe(loadMoreRef.current); + return () => { + if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); + }; + }, [hasNextPage, fetchNextPage]); + + const handleScroll = (event) => { + const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; + if (scrollTop + clientHeight >= scrollHeight - 50) { + if (hasNextPage && !isFetchingNextPage) { + fetchNextPage(); + } + } + }; + + // ==============================|| getcustomersummary (customers) ||============================== // + + const { data: pageCount, isLoading: customerSummaryIsLoading } = useQuery({ + queryKey: ['customersummary', appId], + queryFn: getcustomersummary + }); + useEffect(() => { + console.log('pageCount', pageCount); + }, [pageCount]); + // ==============================|| updateCustomer (post)||============================== // + const updateCustomer = async () => { + console.log('selectedCustomer', selectedCustomer); + + if (!selectedCustomer.firstname) { + OpenToast('Enter Door NO', 'warning', 1500); + } else if (!selectedCustomer.contactno) { + OpenToast('Enter Contact Number ', 'warning', 1500); + } else if (!selectedCustomer.address) { + OpenToast('Enter Valid Address', 'warning', 1500); + } else if (!selectedCustomer.suburb) { + OpenToast('Enter Suburb', 'warning', 1500); + } else if (!selectedCustomer.city) { + OpenToast('Enter City ', 'warning', 1500); + } else if (!selectedCustomer.state) { + OpenToast('Enter State', 'warning', 1500); + } else if (!selectedCustomer.postcode) { + OpenToast('Enter PostCode', 'warning', 1500); + } else if (!selectedCustomer.landmark) { + OpenToast('Enter Landmark', 'warning', 1500); + } else if (!selectedCustomer.latitude) { + OpenToast('Enter Latitude', 'warning', 1500); + } else if (!selectedCustomer.longitude) { + OpenToast('Enter Longitude', 'warning', 1500); + } else { + try { + const postUpdateResponse = await axios.put(`${process.env.REACT_APP_URL}/customers/update`, { + customerid: selectedCustomer.customerid, + configid: 1, + firstname: selectedCustomer.firstname, + applocationid: selectedCustomer.applocationid, + profileimage: '', + dialcode: '+91', + contactno: selectedCustomer.contactno, + devicetype: '', + deviceid: '', + customertoken: '123', + address: selectedCustomer.address, + suburb: suburb, + city: city, + state: state, + postcode: postcode, + landmark: selectedCustomer.landmark, + doorno: selectedCustomer.doorno, + latitude: selectedCustomer.latitude.toString(), + longitude: selectedCustomer.longitude.toString() + }); + + console.log('postUpdateResponse', postUpdateResponse); + if (postUpdateResponse.data.status) { + OpenToast(postUpdateResponse.data.message, 'success', 1500); + setOpen(false); + getallcustomersRefetch(); + } + } catch (error) { + console.log('postUpdate error', error); + } + } + }; + return ( + <> + {(customerSummaryIsLoading || customersIsLoading) && ( + <> + {/* */} + + + )} + {/* */} + + + {/* Left: Title */} + Customers + {/* Right: Controls */} + + + + + + + + } + > + + + + + # + Name + Contact + Address + Location + Action + + + + + {customersIsLoading && } + {rows?.length == 0 && !customersIsLoading ? ( + + + + + + + + ) : ( + rows?.map((row, index) => { + return ( + + {index + 1 + page * rowsPerPage} + + + {row.firstname} + + + Id : {row.customerid} + + + + + {row.contactno} + + + {row.email} + + + {row.address} + {row.suburb} + + + { + console.log('row', row); + setSelectedCustomer(row); + setTimeout(() => { + setOpen(true); + }, 0); + }} + > + + + + + + ); + }) + )} + {rows?.length != 0 && ( + + +
    + {isFetchingNextPage ? : hasNextPage ? : 'No More Orders'} +
    +
    +
    + )} +
    +
    +
    + +
    + {/* ======================================== || Edit Dialog || ======================================== */} + setOpen(false)} + aria-labelledby="alert-dialog-title" + aria-describedby="alert-dialog-description" + maxWidth="lg" + fullWidth + > + + + Edit Customer + + + + + + Customer Name + { + setSelectedCustomer({ + ...selectedCustomer, + firstname: e.target.value + }); + }} + /> + + + Contact Number + + + { + const value = e.target.value.replace(/\D/g, ''); // allow only digits + + setSelectedCustomer((prev) => ({ + ...prev, + contactno: value + })); + }} + /> + + + + Address + (typeof option === 'string' ? option : option?.description || '')} + filterOptions={(x) => x} + options={options} + autoComplete + includeInputInList + filterSelectedOptions + value={selectedCustomer?.address} + noOptionsText="No locations" + onChange={(event, newValue) => { + setOptions(newValue ? [newValue, ...options] : options); + setValue(newValue); + console.log('newValue', newValue || ''); + setAddress(newValue?.description); + setSelectedCustomer({ + ...selectedCustomer, + address: newValue?.description + }); + }} + onInputChange={(event, newInputValue) => { + setInputValue(newInputValue); + }} + renderInput={(params) => } + renderOption={(props, option) => { + const matches = option.structured_formatting.main_text_matched_substrings || []; + + const parts = parse( + option.structured_formatting.main_text, + matches.map((match) => [match.offset, match.offset + match.length]) + ); + + return ( +
  • + + + + + + {parts?.map((part, index) => ( + + {part.text} + + ))} + + {option?.structured_formatting.secondary_text} + + + +
  • + ); + }} + /> +
    + + Location + { + const value = e.target.value; + setSelectedCustomer((prev) => ({ + ...prev, + suburb: value + })); + // setSuburb(e.target.value); + }} + /> + + + City + { + const value = e.target.value; + setSelectedCustomer((prev) => ({ + ...prev, + city: value + })); + // setCity(e.target.value); + }} + /> + + + State + { + const value = e.target.value; + setSelectedCustomer((prev) => ({ + ...prev, + state: value + })); + // setState(e.target.value); + }} + /> + + + Postcode + { + const value = e.target.value; + setSelectedCustomer((prev) => ({ + ...prev, + postcode: value + })); + // setPostcode(e.target.value); + }} + /> + + + Landmark + { + setSelectedCustomer({ + ...selectedCustomer, + landmark: e.target.value + }); + }} + /> + + + Latitude + + + + Longitude + + +
    +
    + + + + +
    + + ); +} diff --git a/src/pages/nearle/dashboard.js b/src/pages/nearle/dashboard.js new file mode 100644 index 0000000..5b20e70 --- /dev/null +++ b/src/pages/nearle/dashboard.js @@ -0,0 +1,9 @@ +const Dashboard = () => { + return ( + <> +

    Dashboard

    + + ); +}; + +export default Dashboard; diff --git a/src/pages/nearle/deliveries/deliveries.js b/src/pages/nearle/deliveries/deliveries.js new file mode 100644 index 0000000..e5fd77f --- /dev/null +++ b/src/pages/nearle/deliveries/deliveries.js @@ -0,0 +1,1711 @@ +import { enqueueSnackbar } from 'notistack'; +import { DeleteFilled, EditOutlined } from '@ant-design/icons'; +import { useState, useEffect, Fragment, useRef } from 'react'; +import { Empty } from 'antd'; +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import axios from 'axios'; +import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; +import { useTheme } from '@mui/material/styles'; +import { PiMapPinLineDuotone } from 'react-icons/pi'; +import { MdOutlineDateRange } from 'react-icons/md'; +import { MdOutlineDeliveryDining } from 'react-icons/md'; +import { useQuery, useMutation, useInfiniteQuery } from '@tanstack/react-query'; + +import { + Avatar, + Box, + Button, + Grid, + Tabs, + Tab, + IconButton, + Stack, + Chip, + Typography, + Table, + TableCell, + TableBody, + TableHead, + Collapse, + Dialog, + TableRow, + DialogContent, + DialogTitle, + Tooltip, + DialogActions, + Popper, + ClickAwayListener, + Checkbox, + Autocomplete, + TextField, + FormLabel, + TablePagination, + TableContainer, + Skeleton, + useMediaQuery, + Divider, + CircularProgress, + Backdrop, + MenuItem, + Menu +} from '@mui/material'; + +import MainCard from 'components/MainCard'; +import { + MoreOutlined, + CloseOutlined + // NotificationOutlined +} from '@ant-design/icons'; +import { PopupTransition } from 'components/@extended/Transitions'; +import { + addDays, + addMonths, + addWeeks, + // addYears, + endOfMonth, + endOfWeek, + // endOfYear, + startOfMonth, + startOfWeek + // startOfYear, +} from 'date-fns'; +import { DateRangePicker } from 'mui-daterange-picker'; +import * as React from 'react'; +import Loader from 'components/Loader'; +import { KeyboardArrowDownOutlined, KeyboardArrowUpOutlined } from '@mui/icons-material'; +import CircularLoader from 'components/CircularLoader'; + +import { + cancelDeliveryAPI, + changeRiderAPI, + fetchCountAPI, + fetchDeliveries, + fetchPercentageAPI, + fetchRidersList, + notifyRider, + updateDeliveryAPI, + getorderdetails, + gettenantlocations, + getTenants +} from 'pages/api/api'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import TitleCard from 'components/nearle_components/TitleCard'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; + +// ================================================= || deliveries (initial point)|| ================================================= +const Deliveries = () => { + const userid = localStorage.getItem('userid'); + const theme = useTheme(); + const loadMoreRef = useRef(); + const containerRef = useRef(); + const [deliverylist, setDeliverylist] = useState([]); + const [dialogopen, setDialogopen] = useState(false); + const [locaName, setLocoName] = useState('All'); + const [appId, setAppId] = useState(0); + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [tabstatus, setTabstatus] = useState('Pending'); + const [tabvalue, setTabvalue] = useState(0); + const [open, setOpen] = useState(false); + const [datestatus, setDatestatus] = useState('Today'); + const [kms, setKms] = useState(''); + const [cumulativekms, setCumulativeKms] = useState(); + const [deliveryamount, setDeliveryamount] = useState(); + const [notes, setNotes] = useState(''); + const [currentorder, setCurrentorder] = useState({}); + const [deliverylat, setDeliverylat] = useState(''); + const [deliverylong, setDeliverylong] = useState(''); + const [currentStatus, setCurrentStatus] = useState('pending'); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const [page, setPage] = React.useState(0); + const [rowsPerPage, setRowsPerPage] = React.useState(50); + const [totalCount, setTotalCount] = React.useState(); + const [productCollapse, setProductCollapse] = useState(null); + const [orderHeaderid, setOrderHeaderId] = useState(null); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + const [menuAnchorEl, setMenuAnchorEl] = React.useState(null); + const [selectedRow, setSelectedRow] = useState(null); + const [loading1, setLoading1] = useState(false); + const [anchorEl, setAnchorEl] = React.useState(null); + const [open2, setOpen2] = useState(''); + const [cancelDeliveryOpen, setCancelDeliveryOpen] = useState(false); + const [changeDialogOpen, setChangeDialogOpen] = useState(false); + const [cancelFeed, setCancelFeed] = useState(''); + const [selectedRider, setSelectedRider] = useState(null); + const [tenantid, setTenantid] = useState(0); + const [locationid, setLocationid] = useState(0); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [riderid, setRiderid] = useState(0); + const roleid = localStorage.getItem('roleid'); + + useEffect(() => { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + }, [appId]); + // to clear the location autocomplete + useEffect(() => { + setLocationid(0); + setLocationValue(null); + }, [tenantid]); + + const menuOpen = Boolean(menuAnchorEl); + + const handleMenuOpen = (event, row) => { + setSelectedRow(row); + console.log('selectedRow', row); + + setMenuAnchorEl(event.currentTarget); + }; + + const handleMenuClose = () => { + setMenuAnchorEl(null); + }; + + // =========================================== || cancelDelivery || =========================================== + + const { mutate: cancelDelivery } = useMutation({ + mutationFn: ({ selectedRow, cancelFeed }) => cancelDeliveryAPI(selectedRow, cancelFeed), + onSuccess: () => { + opentoast('Delivery Cancelled Successfully', 'success'); + setCancelDeliveryOpen(false); + fetchCountRefetch(); // Refresh count data + fetchDeliveriesRefetch(); // Refresh deliveries + }, + onError: (error) => { + opentoast(error.message, 'error'); + } + }); + + // ==============================|| cancelridernotification ||============================== // + + const cancelridernotification = async () => { + console.log('cancelridernotification', selectedRow); + try { + const response = await axios.post(`${process.env.REACT_APP_URL}/utils/notifyuser`, { + token: selectedRow.userfcmtoken, + notification: { + title: 'NearleXpress', + body: `${selectedRow.orderid} have been Cancelled`, + sound: 'ring', + image: '' + }, + data: { + type: 'cancel' + } + }); + return response.data; + } catch (err) { + opentoast(err.message, 'error', 2000); + console.log(err); + } + }; + + // ==============================|| getTenants ||============================== // + + const { + data: tenantlist, + isLoading: fetchtenantsIsLoading, + isError: fetchtenantsIsError, + error: fetchtenantsError + } = useQuery({ + queryKey: ['tenantlist', appId], + queryFn: () => getTenants(appId), // Ensure appId is passed + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| gettenantlocations ||============================== // + + const { + data: locationlist, + isLoading: fetchlocationsIsLoading, + isError: fetchlocationsIsError, + error: fetchlocationsError + } = useQuery({ + queryKey: ['gettenantlocations', tenantid], + queryFn: () => gettenantlocations(tenantid), // Ensure appId is passed + enabled: tenantid !== 0 // Ensures query runs only when appId is valid + }); + // =========================================== || notifyrider || =========================================== + + const notifyRiderMutation = useMutation({ + mutationFn: notifyRider, // Using the separate function + onSuccess: () => { + enqueueSnackbar('Notification sent Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }, + onError: (error) => { + enqueueSnackbar(error.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + }); + + // =========================================== || changerider || =========================================== + const changeRiderMutation = useMutation({ + mutationFn: ({ selectedRider, selectedRow }) => changeRiderAPI(selectedRider, selectedRow), + onSuccess: (res) => { + setLoading1(false); + setChangeDialogOpen(false); + if (res.data.message === 'Success') { + opentoast('Rider Changed Successfully', 'success'); + } + fetchCountRefetch(); // Refresh count data + fetchDeliveriesRefetch(); // Refresh deliveries + notifyRiderMutation.mutate(selectedRider.userfcmtoken); + }, + onError: (err) => { + console.log(err); + opentoast(err.message, 'error'); + setLoading1(false); + } + }); + + /* ============================================= || opentoast || ============================================= */ + + const opentoast = (message, variant) => { + enqueueSnackbar(message, { + variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }; + + // ==============================|| getorderdetails ||============================== // + + const { data: orderdetails } = useQuery({ + queryKey: ['orderdetails', orderHeaderid], + queryFn: () => getorderdetails(orderHeaderid), + enabled: !!orderHeaderid // ✅ prevent initial fetch when undefined + }); + + const dialogclose = () => { + setDialogopen(false); + }; + + const handleChangetab = (e, i) => { + setPage(0); + setTabvalue(i); + setRowsPerPage(50); + if (i === 0) { + setTabstatus('Pending'); + setCurrentStatus('pending'); + setTotalCount(countData?.uncoveredLength); + } + if (i === 1) { + setTabstatus('Assigned'); + setCurrentStatus('accepted'); + setTotalCount(countData?.assignedLength); + } + if (i === 2) { + setTabstatus('Arrived'); + setCurrentStatus('arrived'); + setTotalCount(countData?.arrivedLength); + } + if (i === 3) { + setTabstatus('Picked'); + setCurrentStatus('picked'); + setTotalCount(countData?.pickedLength); + } + if (i === 4) { + setTabstatus('Active'); + setCurrentStatus('active'); + setTotalCount(countData?.activeLength); + } + if (i === 5) { + setTabstatus('Skipped'); + setCurrentStatus('skipped'); + setTotalCount(countData?.skippedLength); + } + if (i === 6) { + setTabstatus('Delivered'); + setCurrentStatus('delivered'); + setTotalCount(countData?.coveredLength); + } + + if (i === 7) { + setTabstatus('Cancelled'); + setCurrentStatus('cancelled'); + setTotalCount(countData?.cancelLength); + } + console.log(i); + setSearchword(''); + }; + + const okclicked = () => { + setOpen(false); + }; + + /* ============================================= || fetchDeliveries | ============================================= */ + + const { + data: deliveriesData, + isLoading: fetchDeliveriesIsLoading, + isError: fetchDeliveriesIsError, + error: fetchDeliveriesError, + fetchNextPage, + hasNextPage, + isFetchingNextPage, + refetch: fetchDeliveriesRefetch + } = useInfiniteQuery({ + queryKey: [ + 'fetchdeliveries', + appId, + userid, + currentStatus, + startdate, + enddate, + rowsPerPage, + debouncedSearch, + tenantid, + locationid, + riderid + ], + queryFn: fetchDeliveries, + getNextPageParam: (lastPage) => lastPage.nextPage ?? undefined + }); + const rows = deliveriesData?.pages.flatMap((page) => page.rows) || []; + + useEffect(() => { + if (!hasNextPage) return; + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + fetchNextPage(); + } + }, + { + root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + rootMargin: '0px', + threshold: 1.0 + } + ); + if (loadMoreRef.current) observer.observe(loadMoreRef.current); + return () => { + if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); + }; + }, [hasNextPage, fetchNextPage]); + + const handleScroll = (event) => { + const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; + if (scrollTop + clientHeight >= scrollHeight - 50) { + if (hasNextPage && !isFetchingNextPage) { + fetchNextPage(); + } + } + }; + + /* ============================================= || fetchPercentageAPI | ============================================= */ + + const { + data: percentageData, + isLoading: fetchPercentageIsLoading, + isError: fetchPercentageIsError, + error: fetchPercentageError + } = useQuery({ + queryKey: ['fetchpercentageaPI', appId], + queryFn: () => fetchPercentageAPI(appId) + }); + useEffect(() => { + if (percentageData) { + console.log('percentageData', percentageData); + } + }, [percentageData]); + + /* ============================================= || fetchcount | ============================================= */ + + const { + data: countData = {}, // Default to empty object + isLoading: fetchCountIsLoading, + isError: fetchCountIsError, + error: fetchCountError, + refetch: fetchCountRefetch + } = useQuery({ + queryKey: ['fetchCountData', appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid, tabstatus], + queryFn: () => fetchCountAPI(appId, userid, startdate, enddate, rowsPerPage, debouncedSearch, tenantid, locationid, riderid) + }); + useEffect(() => { + console.log('countData', countData); + if (tabvalue === 0 && countData) { + setTotalCount(countData.uncoveredLength); + } + }, [countData]); + + // ==============================|| fetchRidersList ||============================== // + + const { + data: ridersList = [], + isLoading: riderListIsLoading, + isError: ridersListIsError, + error: ridersListError + } = useQuery({ + queryKey: ['ridersList', appId], // Unique key for caching & re-fetching + queryFn: fetchRidersList, + enabled: Boolean(appId), + onError: (err) => { + OpenToast(err.message, 'error', 2000); + } + }); + + /* ============================================= || updatedelivery | ============================================= */ + + const updateDeliveryMutation = useMutation({ + mutationFn: (orderData) => updateDeliveryAPI(orderData), + onSuccess: (res) => { + console.log(res); + if (res.data.status) { + opentoast('Updated Successfully', 'success'); + setDeliveryamount(''); + setNotes(''); + setDialogopen(false); + fetchDeliveriesRefetch(); + fetchCountRefetch(); + } + }, + onError: (err) => { + console.log(err); + opentoast(err.message, 'success'); + } + }); + + const errorMessage = fetchDeliveriesIsError + ? `Error fetching percentages: ${fetchDeliveriesError?.message}` + : fetchPercentageIsError + ? `Error fetching percentages: ${fetchPercentageError?.message}` + : fetchCountIsError + ? `Error fetching percentages: ${fetchCountError?.message}` + : ridersListIsError + ? `Error fetching percentages: ${ridersListError?.message}` + : fetchtenantsIsError + ? `Error tenant list: ${fetchtenantsError?.message}` + : fetchlocationsIsError + ? `Error location list: ${fetchlocationsError?.message}` + : null; + + if (errorMessage) { + console.log('errorMessage', errorMessage); + OpenToast(errorMessage, 'error', 2000); + return null; // or return <> if inside a component + } + + return ( + <> + {(fetchCountIsLoading || + fetchPercentageIsLoading || + fetchDeliveriesIsLoading || + fetchtenantsIsLoading || + fetchlocationsIsLoading || + riderListIsLoading) && ( + <> + + {/* */} + + )} + { + theme.zIndex.drawer + 1 + }} + open={ + fetchCountIsLoading || + fetchPercentageIsLoading || + fetchDeliveriesIsLoading || + fetchtenantsIsLoading || + fetchlocationsIsLoading || + riderListIsLoading + } + > + {/* */} + + } + {/* ============================================= || TitleCard | ============================================= */} + + + + + {/* ============================================= || hoverCard | ============================================= */} + + {[ + { + label: 'Created orders', + value: percentageData?.uncoveredOrders, + percentage: percentageData?.percentage1, + color: theme.palette.info.main + }, + { + label: 'Pending orders', + value: percentageData?.assignedOrders, + percentage: percentageData?.percentage2, + color: theme.palette.warning.main + }, + { + label: 'Delivered orders', + value: percentageData?.pickedOrders, + percentage: percentageData?.percentage3, + color: theme.palette.success.main + }, + { + label: 'Cancelled Orders', + value: percentageData?.coveredOrders, + percentage: percentageData?.percentage4, + color: theme.palette.error.main + } + ].map((item, index) => ( + + : item.value} + percentage={item.percentage?.toString()} + color={item.color} + /> + + ))} + + + {/* ============================================= || orderFilter | ============================================= */} + + + {startdate && enddate ? ( + + + + + } + label={`Deliveries-${datestatus}`} + color="error" + variant="combined" + /> + + + + + } + label={ + + {dayjs(startdate).format('DD/MM/YYYY')} - {dayjs(enddate).format('DD/MM/YYYY')} + + } + onClick={() => setOpen(true)} + variant="combined" + color="warning" + sx={{ maxWidth: '100%', cursor: 'pointer' }} // to avoid overflow + /> + + + + + } + label={locaName} + color="info" + variant="combined" + sx={{ maxWidth: '100%' }} + /> + + ) : ( + + )} + + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(0); + setLocationValue(null); + } + }} + renderInput={(params) => } + /> + `${option.locationname} (${option.suburb})` || ''} + value={locationValue} + sx={{ minWidth: 200, flex: 1 }} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select a your Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select a your Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + } else { + setLocationid(val.locationid || 0); + setLocationValue(val); + } + }} + renderInput={(params) => } + /> + `${option.firstname} ${option.lastname} (${option.contactno})`} + renderInput={(params) => } + onChange={(e, value, reason) => { + if (reason === 'clear') { + setRiderid(0); + } else { + setRiderid(value.userid); + console.log('selected rider', value); + } + }} + onOpen={(event) => { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + /> + + {/* ============================================= || Tabs || ============================================= */} + + + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + + } + iconPosition="end" + /> + + + } + iconPosition="end" + /> + + + {/* ============================================= || searchOutlined | ============================================= */} + + + {/* ============================================= || MainCard || ============================================= */} + + + + + + {tabstatus == 'Created' && ( + + 0 && deliverylist.length != rows.length} + onChange={(e) => { + if (e.target.checked) { + setDeliverylist([...rows]); + } else { + setDeliverylist([]); + } + }} + checked={deliverylist.length == rows.length} + /> + + )} + S.No + Tenant + + Order Location{' '} + + Pickup + Drop + Rider + Notes + Qty + COD + Kms + Amount + {/* Status */} + {tabstatus !== 'Cancelled' && tabstatus !== 'Delivered' && ( + + Action + + )} + + + {(loading1 || fetchDeliveriesIsLoading) && } + + {rows.length == 0 && !loading1 && ( + <> + + {/* */} + + + + )} + {rows.map((row, index) => { + return ( + <> + res1.orderheaderid == row.orderheaderid) ? '#e1bee7' : '', + '&:hover': { + backgroundColor: deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid) ? '#e1bee7 !important' : '' + } + }} + > + {tabstatus == 'Created' && ( + + { + if (e.target.checked) { + let arr = deliverylist; + arr.push({ ...row, sno: deliverylist.length + 1 }); + setDeliverylist([...arr]); + } else { + let res = deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid); + if (res) { + let arr = deliverylist; + let res = deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid); + arr.splice(res.sno - 1, 1); + arr.map((val, i) => { + val.sno = i + 1; + }); + setDeliverylist([...arr]); + } + } + console.log('list', deliverylist); + }} + checked={deliverylist.find((res1) => res1.orderheaderid == row.orderheaderid)} + /> + + )} + + {/* {row.sno} */} + {page * rowsPerPage + index + 1} + + {/* Tenants */} + + + + {row.tenantname} + + + {row.tenantsuburb} + + + + {row.applocation} + + + + {/* order details */} + + + + {`${row.locationname}-(${row.locationsuburb})`} + + + + + + + + {row.orderid} + + + + + {dayjs(row.orderdate).utc().format('DD/MM/YYYY')} + + + {dayjs(row.orderdate).utc().format('hh:mm A')} + + + + - + + + + {row.deliveryid} + + + + + {dayjs(row.deliverydate).utc().format('DD/MM/YYYY')} + + + + {dayjs(row.deliverydate).utc().format('hh:mm A')} + + + + + + {/* pickup */} + + + + + {row.pickupcustomer} + + {row.pickupcontactno} + + {row.pickuplocation || row.Pickupaddress.slice(0, 12) + '...'} + + + + + {/* drop */} + + + + + {row.deliverycustomer} + + {row.deliverycontactno} + + + {`${row.deliverylocation || row.deliveryaddress.slice(0, 12) + '...'}`} + + + + + + {/* rider */} + + + {row.ridername} + + {`ID: ${row.userid}`} + {row.ridercontact} + + {/* {qty} */} + + {row.notes} + + + {row.Quantity ? ( + + {row.Quantity} + + ) : ( + + {' '} + {row.Quantity} + + )} + + {/* {cash} */} + + {row.collectionamt ? ( + + {' '} + {`₹ ${row.collectionamt.toFixed(2)}`}{' '} + + ) : ( + + {' '} + {`₹ ${row.collectionamt.toFixed(2)}`}{' '} + + )} + + {/* kms */} + + + + + + + + + + + {/* amount */} + + {' '} + + + + + + + + + + {/* status */} + {/* + + {row.orderstatus === 'pending' && } + {row.orderstatus === 'modified' && } + {row.orderstatus === 'cancelled' && } + {row.orderstatus === 'delivered' && } + {row.orderstatus === 'processing' && } + {row.orderstatus === 'ready' && } + {row.orderstatus === 'confirmed' && } + {row.orderstatus === 'active' && } + {row.orderstatus === 'closed' && } + {row.orderstatus === 'created' && } + {row.orderstatus === 'picked' && } + {row.orderstatus === 'skipped' && } + {row.orderstatus === 'accepted' && ( + + )} + {row.orderstatus === 'arrived' && ( + + )} + + */} + {/* Action */} + {tabstatus !== 'Cancelled' && tabstatus !== 'Delivered' && ( + + + {row.deliverytype == 'C' && ( + + { + if (productCollapse?.orderid === row.orderid) { + setProductCollapse(null); // Collapse if already open + setOrderHeaderId(null); + } else { + setProductCollapse(row); // Open if different + setOrderHeaderId(row.orderheaderid); // Open if different + } + }} + > + {productCollapse?.orderid === row.orderid ? : } + + + )} + + handleMenuOpen(e, row)} + > + + + + + {selectedRow?.orderstatus !== 'delivered' && ( + { + notifyRiderMutation.mutate(selectedRow.userfcmtoken); + handleMenuClose(); + }} + > + Notify Rider + + )} + {['pending', 'accepted', 'arrived'].includes(selectedRow?.orderstatus) && ( + { + if (!appId) { + opentoast('Please select a location first!', 'warning'); + locationRef.current?.focus(); + return; + } + setChangeDialogOpen(true); + handleMenuClose(); + }} + > + Change Rider + + )} + {(roleid == 1 || roleid == 2) && ( + { + setKms(selectedRow.kms); + setCumulativeKms(selectedRow.cumulativekms); + setDeliverylat(selectedRow.droplat); + setDeliverylong(selectedRow.droplon); + setNotes(selectedRow.notes); + setDeliveryamount(selectedRow.deliveryamount); + setCurrentorder(selectedRow); + setDialogopen(true); + handleMenuClose(); + }} + > + Update Delivery Status + + )} + {selectedRow?.orderstatus !== 'cancelled' && selectedRow?.orderstatus !== 'delivered' && ( + { + setCancelDeliveryOpen(true); + handleMenuClose(); + }} + > + Cancel Delivery + + )} + + + + )} + + {productCollapse?.orderid === row?.orderid && ( + + + + +
    + + + S.No + Product Name + Description + + Quantity + + + Cost + + + Price + + + Tax + + + Amount + + + + + + {orderdetails?.details?.map((product, index) => ( + + {index + 1} + + + {product?.productname} + + {product?.productname || 'Unnamed'} + + + + {product?.productdescription || '-'} + {product?.orderqty || 0} + ₹ {product?.price || 0} + ₹ {(product?.productsumprice ?? 0).toFixed(2)} + ₹ {(product?.taxamount ?? 0).toFixed(2)} + + ₹ {(product?.productsumprice + product?.taxamount).toFixed(2) || 0} + + + ))} + + + Total Amount : + + + ₹ {orderdetails?.pricedetails?.orderamount.toFixed(2)} + + + +
    + + + + + )} + + ); + })} + {rows?.length != 0 && ( + + +
    + {isFetchingNextPage ? : hasNextPage ? : 'No More Deliveries'} +
    +
    +
    + )} + + +
    +
    + + {/* =============================== || cancel dialog || =============================== */} + setCancelDeliveryOpen(false)} maxWidth="xs"> + + + + + + + + + Are you sure you want to cancel this delivery? + + + { + setCancelFeed(e.target.value); + }} + /> + + + + + + + + {/* =============================== || change dialog || =============================== */} + setChangeDialogOpen(false)} + maxWidth="sm" + fullWidth + TransitionComponent={PopupTransition} + > + + + Change Rider + + + + + + `${option.firstname} ${option.lastname} | ${option.contactno}`} + renderInput={(params) => } + onChange={(e, value) => { + setSelectedRider(value); + console.log('selected rider', value); + }} + /> + + + + + + + + + + + + {/* =============================== || Date filter Dialog || =============================== */} + + + Select Filter Options + + + setOpen(!open)} + id="daterange1" + onChange={(range) => { + if (range.label === 'All') { + setStartdate(''); + setEnddate(''); + + setOpen(false); + } else { + setStartdate(dayjs(range.startDate).format('YYYY-MM-DD')); + setEnddate(dayjs(range.endDate).format('YYYY-MM-DD')); + if (range.label) { + setDatestatus(range.label); + } else { + setDatestatus(''); + } + } + console.log(range); + }} + definedRanges={[ + { + label: 'Today', + startDate: new Date(), + endDate: new Date() + }, + { + label: 'Yesterday', + startDate: addDays(new Date(), -1), + endDate: addDays(new Date(), -1) + }, + { + label: 'Tomorrow', + startDate: addDays(new Date(), +1), + endDate: addDays(new Date(), +1) + }, + { + label: 'This Week', + startDate: startOfWeek(new Date()), + endDate: endOfWeek(new Date()) + }, + { + label: 'Last Week', + startDate: startOfWeek(addWeeks(new Date(), -1)), + endDate: endOfWeek(addWeeks(new Date(), -1)) + }, + { + label: 'Last 7 Days', + startDate: addWeeks(new Date(), -1), + endDate: new Date() + }, + { + label: 'This Month', + startDate: startOfMonth(new Date()), + endDate: endOfMonth(new Date()) + }, + { + label: 'Last Month', + startDate: startOfMonth(addMonths(new Date(), -1)), + endDate: endOfMonth(addMonths(new Date(), -1)) + } + // { + // label: 'All', + // startDate: new Date(), + // endDate: addDays(new Date(), -1), + // }, + ]} + /> + + + + + + + {/* =============================== || Update Delivery Dialog || =============================== */} + + + Update Delivery Status + + + + + + + Kms + { + setKms(e.target.value); + console.log(e); + }} + /> + + + Actual Kms + setCumulativeKms(+e.target.value)} fullWidth /> + + + Delivery lat + { + setDeliverylat(e.target.value); + }} + /> + + + Delivery Long + { + setDeliverylong(e.target.value); + }} + fullWidth + /> + + + + Amount + + setDeliveryamount(+e.target.value)} /> + + + Notes + setNotes(e.target.value)} /> + + + + + + + + + {' '} + + + + + + + + ); +}; + +export default Deliveries; diff --git a/src/pages/nearle/invoice/invoice.js b/src/pages/nearle/invoice/invoice.js new file mode 100644 index 0000000..ab37afe --- /dev/null +++ b/src/pages/nearle/invoice/invoice.js @@ -0,0 +1,419 @@ +import React from 'react'; +import { useState } from 'react'; +import TitleCard from 'pages/titleCard'; +import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; +import { useTheme } from '@mui/material/styles'; +import { Outlet, useNavigate } from 'react-router-dom'; +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { DashboardOutlined } from '@ant-design/icons'; +import { HiHandThumbDown, HiHandThumbUp } from 'react-icons/hi2'; +import LoadingIcons from 'react-loading-icons'; +import { useQuery } from '@tanstack/react-query'; +import { fetchinvoiceinsight, fetchdeliverylist } from 'pages/api/api'; +import VisibilityIcon from '@mui/icons-material/Visibility'; +import { + Grid, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TablePagination, + TableRow, + Tabs, + Tab, + Typography, + Box, + IconButton, + Tooltip, + Stack +} from '@mui/material'; +import Loader from 'components/Loader'; +import MainCard from 'components/MainCard'; +import { Empty } from 'antd'; +import DateFilterDialog from 'components/DateFilterDialog'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; + +const columns = [ + { id: 'sno', label: 'sno' }, + { id: 'client', label: 'client' }, + { id: 'invoiceid', label: 'Invoice Id' }, + + { + id: 'invoice date', + label: 'invoice date', + align: 'left' + // format: (value) => value.toLocaleString("en-US"), + }, + { + id: 'due date', + label: 'due date', + align: 'left' + // format: (value) => value.toLocaleString("en-US"), + }, + { + id: 'itemcount', + label: 'Count', + align: 'left' + // format: (value) => typeof value === "number" && value.toFixed(2), + }, + + { id: 'amount', label: 'amount', align: 'right' }, + { id: 'action', label: 'action', align: 'center' } +]; + +// table data + +function CustomTabPanel(props) { + const { children, value, index, ...other } = props; + + return ( + + ); +} + +function a11yProps(index) { + return { + id: `simple-tab-${index}`, + 'aria-controls': `simple-tabpanel-${index}` + }; +} +function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); +} +const Invoice = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const [page, setPage] = React.useState(0); + const [rowsPerPage, setRowsPerPage] = React.useState(10); + const [value, setValue] = React.useState(0); + const [billStatus, setBillStatus] = useState(0); + let [isloader, setIsLoader] = useState(false); + const [open, setOpen] = useState(false); + + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(+event?.target?.value); + setPage(0); + }; + + const handleChange = (event, newValue) => { + setValue(newValue); + }; + + /* ============================================= || fetchinvoiceinsight| ============================================= */ + const { + data: insightdata, + isLoading: isInsightLoading, + isError: isInsightError, + error: insightError + } = useQuery({ + queryKey: ['invoiceInsight'], // Meaningful query key + queryFn: fetchinvoiceinsight, + refetchInterval: 300000 // Auto-fetch every 5 minutes + }); + /* ============================================= || fetchdeliverylist| ============================================= */ + + const { + data: deliveryList, + isLoading: isDeliveryLoading, + isError: isDeliveryError, + error: deliveryError + } = useQuery({ + queryKey: [billStatus], // Include billStatus in query key + queryFn: fetchdeliverylist, + refetchInterval: 300000 // Auto-fetch every 5 minutes + }); + const isLoading = isInsightLoading || isDeliveryLoading; + const isError = isInsightError || isDeliveryError; + const errorMessage = insightError?.message || deliveryError?.message; + + if (isError) { + return errorMessage; + } + + return ( + <> + {(isloader || isLoading) && } + {/* ============================================= || TitleCard || ============================================= */} + + + {/* ============================================= || Hover Social Card || ============================================= */} + + { + setValue(0); + setBillStatus(0); + }} + > + + + { + setValue(1); + setBillStatus(1); + }} + > + + + { + setValue(2); + setBillStatus(2); + }} + > + + + { + setValue(3); + setBillStatus(3); + }} + > + + + + {/* ============================================= || Invoice Table || ============================================= */} + + + + + { + setValue(0); + setBillStatus(0); + }} + /> + { + setValue(1); + setBillStatus(1); + }} + /> + { + setValue(2); + setBillStatus(2); + }} + /> + { + setValue(3); + setBillStatus(3); + }} + /> + + + + + + + + + + + {columns.map((column) => ( + + {column.label} + + ))} + + + + {isDeliveryLoading && } + {deliveryList?.length == 0 ? ( + + + + + + ) : ( + deliveryList?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((item, index) => ( + + {page * rowsPerPage + index + 1} + + {item.tenantname} + + + {item.contactperson}{' '} + + + + {item.invoiceno} + + + + {dayjs(item.transactiondate).format('DD-MM-YYYY')} +
    + {dayjs(item.transactiondate).utc().format('hh:mm a')} +
    +
    + + + {dayjs(item.duedate).format('DD-MM-YYYY')} +
    + {dayjs(item.duedate).utc().format('hh:mm a')} +
    +
    + + + {' '} + {item.itemcount} + + + {formatNumberToRupees(item.totalamount)} + + + + { + setIsLoader(true); + console.log('selected', item); + + setTimeout(() => { + setIsLoader(false); + + navigate('/nearle/invoice/preview', { + state: item + }); + }, 500); + }} + > + + + + +
    + )) + )} +
    +
    +
    +
    + + + {/* table pagination */} + +
    + {/* ============================================= || Date Dialog|| ============================================= */} + setOpen(false)} + onSelect={(range) => { + setStartdate(range.startDate); + setEnddate(range.endDate); + setDatestatus(range.label); + console.log('Selected Date Range:', range); + }} + /> + + + + ); +}; + +export default Invoice; diff --git a/src/pages/nearle/invoice/invoicePreview.js b/src/pages/nearle/invoice/invoicePreview.js new file mode 100644 index 0000000..0e95a78 --- /dev/null +++ b/src/pages/nearle/invoice/invoicePreview.js @@ -0,0 +1,472 @@ +import React, { useRef, useState, useEffect } from 'react'; +import { useLocation } from 'react-router-dom'; +import { useTheme } from '@mui/material/styles'; +// import nearleLogo from '../../../assets/images/nearleLogo.png'; +import logo_nearle1 from '../../../assets/images/logo-nearle1.png'; +import axios from 'axios'; +import dayjs from 'dayjs'; +import Loader from 'components/Loader'; +import { enqueueSnackbar } from 'notistack'; +import { DownloadOutlined, PrinterFilled } from '@ant-design/icons'; +import ReactToPrint, { useReactToPrint } from 'react-to-print'; +import { SearchOutlined, LeftOutlined, RightOutlined } from '@ant-design/icons'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +// import jsPDF from 'jspdf'; +import { useNavigate } from 'react-router-dom'; +import { FaArrowLeft } from 'react-icons/fa6'; +import { FaIndianRupeeSign } from 'react-icons/fa6'; + +// import autoTable from 'jspdf-autotable'; +import { + Grid, + Button, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TablePagination, + TableRow, + Tabs, + Tab, + Typography, + Box, + OutlinedInput, + InputAdornment, + IconButton, + TextField, + Tooltip, + Dialog, + DialogTitle, + DialogContent, + DialogActions, + Stack, + Chip +} from '@mui/material'; + +const InvoicePreview = () => { + const [selected, setselected] = useState({}); + const location = useLocation(); + const navigate = useNavigate(); + console.log('previewSelect', location.state); + const componentRef = useRef(null); + const [tabletype, settabletype] = useState(true); + const [paydialog, setpaydialog] = useState(false); + const [refnumber, setRefnumber] = useState(''); + const [remarks, setRemarks] = useState(''); + const theme = useTheme(); + useEffect(() => { + setselected(location.state); + }, []); + + // ================================================= || formatNumberToRupees || ================================================= + + function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); + } + + // ================================================= || updatePayment || ================================================= + + const updatePayment = async () => { + try { + const updateResponse = await axios.put(`${process.env.REACT_APP_URL}/invoice/updatestatus`, { + salesid: selected.salesid, + referenceno: refnumber, + referencedate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + billstatus: 2, + paymentremarks: remarks + }); + if (updateResponse.status) { + enqueueSnackbar(' Updated Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + console.log('updateResponse', updateResponse); + } catch (error) { + console.log('updateResponse', error); + } + }; + + return ( + <> + + + + { + navigate('/nearle/invoice'); + }} + > + + + + + + + Invoice Details + + + + + + + + ( + + )} + content={() => componentRef.current} + /> + + + +
    + + + + + + {' '} + + {/* + {`Invoice No: ${"\u00a0\u00a0\u00a0"}${selected.invoiceno}`} + */} + + + Invoice No : + + {`${'\u00a0\u00a0'}${selected.invoiceno}`} + + + + + + Date :{' '} + + + {dayjs(selected.transactiondate).format('DD-MM-YYYY')} + + + + + Due Date : + + {dayjs(selected.dueDate).format('DD-MM-YYYY')} + + {/* + + Invoice No : + + + {`${"\u00a0\u00a0\u00a0"}${selected.invoiceno}`} + + */} + + + + + + + + + + From: + + Nearle Technology Privite Limited. + + 424, 4thfloor, + + Red rose towers, + DB Road, RS Puram, + 641002. + care@nearle.in + 9047968666 + + + + + + + + + + + + To: + + {selected.tenantname} + {selected.address} + {selected.suburb} + {selected.city} + {selected.state}{' '} + + + + + + + + + + + + + + S.No + Particulars + Unit + Quantity + Rate + {/* {selected && selected.pricingtypeid === 73 && ( */} + Other Charges + {/* )} */} + Amount + + + {selected.tenantsalesdetails && ( + + + 1 + + + {`Invoice from ${dayjs(selected.tenantsalesdetails[0].fromdate).format('DD-MM-YYYY')} to ${dayjs( + selected.tenantsalesdetails[0].todate + ).format('DD-MM-YYYY')}`} + + + + {selected.tenantsalesdetails[0].pricingtype} + + + + {`${selected.tenantsalesdetails[0].quantity.toFixed(2)} km`} + + + {`₹ ${selected.tenantsalesdetails[0].baserate.toFixed(2)}`} + + {/* {selected.tenantsalesdetails[0].pricingtypeid == 73 && ( */} + + {`₹ ${selected.tenantsalesdetails[0].othercharges}.00`} + + {/* )} */} + + {`₹ ${selected.tenantsalesdetails[0].amount}.00`} + + + + )} +
    +
    + + + + + + + Sub Total: + {formatNumberToRupees(selected.salesamount)} + + + Discount: + + - {formatNumberToRupees(selected.discountamt)} + + + + Tax: + + + {formatNumberToRupees(selected.taxamount)} + + + + + Grand Total: + + {formatNumberToRupees(Math.round(selected.totalamount))} + + + + + +
    + + + Notes: {selected.remarks} + + +
    +
    + {/* ================================================= || updatePayment Dialog || ================================================= */} + { + setpaydialog(false); + }} + maxWidth={'sm'} + fullWidth + > + + + + ₹ + + + Update Payment + + + + + + Reference No + { + setRefnumber(e.target.value); + }} + /> + + + Remarks + { + setRemarks(e.target.value); + }} + /> + + + + + + + + + ); +}; + +export default InvoicePreview; diff --git a/src/pages/nearle/login.js b/src/pages/nearle/login.js new file mode 100644 index 0000000..6c41260 --- /dev/null +++ b/src/pages/nearle/login.js @@ -0,0 +1,396 @@ +import { useState, useEffect } from 'react'; +import { enqueueSnackbar, closeSnackbar } from 'notistack'; +import AnimateButton from 'components/@extended/AnimateButton'; +import OtpInput from 'react18-input-otp'; + +import { Box, Card, CardContent, Stack, TextField, Button, Typography, Link, FormLabel, IconButton, InputAdornment } from '@mui/material'; +import { useTheme } from '@mui/material/styles'; +import axios from 'axios'; +import { useNavigate } from 'react-router-dom'; +import Loader from 'components/Loader'; +import logo from 'assets/images/logo-nearle1.png'; +import { useSelector, useDispatch } from 'react-redux'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { closeGlobalToast, GlobalToast } from 'components/nearle_components/GlobalToast'; +import Visibility from '@mui/icons-material/Visibility'; +import VisibilityOff from '@mui/icons-material/VisibilityOff'; +import { setLoginUser } from 'store/reducers/loginUserSlice'; + +const Login = () => { + const dispatch = useDispatch(); + const fcmtoken = useSelector((state) => state.fcm); + const permission = useSelector((state) => state.fcm.permission); + const theme = useTheme(); + const [loading, setLoading] = useState(false); + let navigate = useNavigate(); + const [otp, setOtp] = useState(''); + const [currentotp, setCurrentotp] = useState(''); + const [userinfo, setUserinfo] = useState({}); + const [username, setUsername] = useState(''); + const [passwordStatus, setPasswordStatus] = useState(0); + const [password, setPassword] = useState(''); + const [confirmPassword, setConfirmPassword] = useState(''); + const [isPassword, setIspassword] = useState(false); + const [showPassword, setShowPassword] = useState(false); + const [showConfirmPassword, setShowConfirmPassword] = useState(false); + const [userid, setUserid] = useState(0); + + useEffect(() => { + if (localStorage.getItem('firstname')) { + navigate('/nearle/orders'); + } + }, []); + + const loginsend = async () => { + setLoading(true); + + if (!username) { + opentoast('Fill All required fields'); + setLoading(false); + return; + } + + try { + const res = await axios.post(`${process.env.REACT_APP_URL}/users/console/login`, { + authname: username, + configid: 9, // 9 -> config id for nearle console admin + userfcmtoken: fcmtoken?.token, + password + }); + // user not found + if (res.data.code == 409 && !res.data.status) { + OpenToast(res.data.message, 'error', 3000); + } + // user not activated + else if (res.data.code == 403) { + OpenToast(res.data.message, 'warning', 3000); + } + //user found, no password, setup password + else if (res.data.code == 409 && res.data.status) { + setPasswordStatus(1); // for password and confirm password ui + setUserid(res.data.details.userid); + OpenToast('User Found', 'success', 3000); + OpenToast(res.data.message, 'success', 3000); + } + //user found, incorrect password + else if (res.data.code == 401 && !res.data.status) { + OpenToast(res.data.message, 'error', 3000); + } + //user found, enter password + else if (res.data.code == 401 && res.data.status) { + OpenToast(res.data.message, 'success', 3000); + fetchAppLocations(res.data.userid); + setPasswordStatus(2); + } + // user found, correct password + else if (res.data.code == 200 && res.data.status) { + OpenToast(res.data.message, 'success', 1000); + setUserinfo(res.data.details); + const userinfo = res.data.details; + dispatch(setLoginUser(userinfo)); + localStorage.setItem('firstname', userinfo.firstname); + localStorage.setItem('authname', userinfo.authname); + localStorage.setItem('roleid', userinfo.roleid); + localStorage.setItem('tenantid', userinfo.tenantid); + localStorage.setItem('partnerid', userinfo.partnerid); + localStorage.setItem('applocationid', userinfo.applocationid); + localStorage.setItem('userid', userinfo.userid); + localStorage.setItem('userfcmtoken', userinfo.userfcmtoken); + navigate('/nearle/orders'); + } else { + OpenToast(res.data.message, 'error', 3000); + } + } catch (err) { + console.error(err); + OpenToast(err.message, 'error', 5000); + } finally { + setLoading(false); + } + }; + const loginsuccessful = () => { + localStorage.setItem('firstname', userinfo.firstname); + localStorage.setItem('authname', userinfo.authname); + localStorage.setItem('roleid', userinfo.roleid); + localStorage.setItem('tenantid', userinfo.tenantid); + localStorage.setItem('partnerid', userinfo.partnerid); + localStorage.setItem('applocationid', userinfo.applocationid); + localStorage.setItem('userid', userinfo.userid); + localStorage.setItem('userfcmtoken', userinfo.userfcmtoken); + closeGlobalToast(); // to close the pin snackbar + + navigate('/nearle/orders'); + }; + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1500 + }); + }; + + const fetchAppLocations = async (id) => { + const response = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${id}`); + const updatedLocations = [...response.data.details, { locationname: 'All', applocationid: 0 }]; + localStorage.setItem('applocations', JSON.stringify(updatedLocations)); + }; + const updateUser = async () => { + const response = await axios.put(`${process.env.REACT_APP_URL2}/users/update`, { + userid, + password + }); + if (response.data.status) { + OpenToast(response.data.message, 'success', 3000); + OpenToast('Enter Password to Login', 'success', 3000); + setPasswordStatus(2); + setPassword(''); + } + }; + + return ( + + {loading && } + + + {/* Logo */} + + loginpagelogo + + + {/* Title */} + + Login + + + +
    { + e.preventDefault(); + if (passwordStatus == 0) { + loginsend(); + } else if (passwordStatus == 1) { + if (!password || !confirmPassword || password != confirmPassword) { + OpenToast('Check Password', 'warning', 3000); + } else { + updateUser(); + } + } else if (passwordStatus == 2) { + if (!password) { + OpenToast('Invalid Password', 'warning', 3000); + } + loginsend(); + } + // if (currentotp) { + // if (currentotp == otp) { + // loginsuccessful(); + // fetchAppLocations(); + // } else { + // opentoast('Invalid pin'); + // } + // } + }} + > + + {/* Email */} + setUsername(e.target.value.toLocaleLowerCase())} + InputProps={{ readOnly: passwordStatus }} + /> + {/* Setup Password */} + {passwordStatus == 1 && ( + + + Setup Password + + setPassword(e.target.value)} + InputProps={{ + endAdornment: ( + + setShowPassword((prev) => !prev)} edge="end"> + {showPassword ? : } + + + ) + }} + /> + + setConfirmPassword(e.target.value)} + InputProps={{ + endAdornment: ( + + setShowConfirmPassword((prev) => !prev)} edge="end"> + {showConfirmPassword ? : } + + + ) + }} + /> + + )} + {/* Enter Password */} + {passwordStatus == 2 && ( + + + Enter Password + + setPassword(e.target.value)} + InputProps={{ + endAdornment: ( + + setShowPassword((prev) => !prev)} edge="end"> + {showPassword ? : } + + + ) + }} + /> + + )} + + {/* OTP */} + {isPassword && ( + + + Enter Password + { + setOtp(''); + loginsend(); + }} + > + Retry + + + + {/* setOtp(otp)} + numInputs={4} + containerStyle={{ justifyContent: 'space-between' }} + inputStyle={{ + width: 48, + height: 48, + borderRadius: 8, + border: `1px solid ${borderColor}`, + fontSize: 18 + }} + focusStyle={{ + outline: 'none', + border: `1px solid ${theme.palette.primary.main}`, + boxShadow: theme.customShadows.primary + }} + /> */} + setPassword(e.target.value)} /> + + )} + {/* Submit */} + + + + +
    +
    +
    +
    + {/* footer */} + + + © All rights reserved + + + Terms and Conditions + + + Privacy Policy + + +
    + ); +}; + +export default Login; diff --git a/src/pages/nearle/login1.js b/src/pages/nearle/login1.js new file mode 100644 index 0000000..6e73a53 --- /dev/null +++ b/src/pages/nearle/login1.js @@ -0,0 +1,513 @@ +import { useState, useEffect } from 'react'; +import { useSelector } from 'react-redux'; +// import AuthWrapper from 'sections/auth/AuthWrapper'; +import { + Box, + Grid, + Card, + CardContent, + // CardHeader, + Stack, + // Divider, + // InputLabel, + // OutlinedInput, + TextField, + Button, + Typography, + CardHeader, + Container, + Link +} from '@mui/material'; +import { useTheme } from '@mui/material/styles'; +import AnimateButton from 'components/@extended/AnimateButton'; + +import logo from 'assets/images/logo-nearle1.png'; + +import axios from 'axios'; +import { useNavigate } from 'react-router-dom'; +// import { openSnackbar } from 'store/reducers/snackbar'; +// import { useDispatch } from 'react-redux'; +import Loader from 'components/Loader'; +import { enqueueSnackbar } from 'notistack'; + +const Login = () => { + const theme = useTheme(); + const [username, setUsername] = useState(''); + const [password, setPassword] = useState(''); + const [alertmessage, setAlertmessage] = useState(''); + const [checkusername, setCheckusername] = useState(false); + // const [toast, setToast] = useState(false); + const [loading, setLoading] = useState(false); + let navigate = useNavigate(); + // let dispatch = useDispatch(); + const [submitting, setSubmitting] = useState(false); + // let loginuserid = useSelector((state)=>state.logininfo); + + // useEffect(() => { + + // if (alertmessage) { + // dispatch( + // openSnackbar({ + // open: true, + // message: alertmessage, + // variant: 'alert', + // anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // alert: { + // // variant:'info', + // color: 'error', + + // } + // }) + // ) + // } + // }, [toast]) + + useEffect(() => { + if ( + localStorage.getItem('authname') + // || localStorage.getItem("appuserid") + ) { + navigate('/deliveries'); + } + + // console.log(alertmessage) + }, []); + + const usernamecheck = async (e) => { + e.preventDefault(); + setUsername(e.target.value); + if (e.target.value) { + try { + // await axios.post(`${process.env.REACT_APP_URL}/auth/login`, { + // "authname": e.target.value + // }) + await axios + .post(`${process.env.REACT_APP_URL}/users/login`, { + authname: e.target.value, + configid: 1 + // "contactno": e.target.value, + // "password": 'admin' + }) + .then((res) => { + console.log(res.data); + if (res.data.details.authname === e.target.value) { + setUsername(e.target.value); + setCheckusername(false); + } else { + setCheckusername(true); + } + // if (res.data.authname === e.target.value) { + + // setUsername(e.target.value); + // setCheckusername(false); + // } + }) + .catch((err) => { + // if (err.response.data.message === 'No user found') { + + setCheckusername(true); + // } + }); + } catch (err) { + console.log(err); + } + } + }; + + const loginsend = async () => { + // e.preventDefault(); + setLoading(true); + + if (password && username) { + if (password == 'admin') { + setSubmitting(true); + try { + await axios + .post(`${process.env.REACT_APP_URL}/users/partner/login`, { + // "authname": username, + configid: 1, + contactno: username + + // "password": password + }) + .then((res) => { + console.log(res.data); + if (res.data.status) { + if (res.data.details.contactno === username) { + enqueueSnackbar('login Successfull', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 3000 + }); + setUsername(''); + setPassword(''); + localStorage.setItem('firstname', res.data.details.tenantname); + localStorage.setItem('authname', res.data.details.authname); + + // localStorage.setItem("appuserid", res.data.details.userid); + localStorage.setItem('roleid', res.data.details.roleid); + localStorage.setItem('tenantid', res.data.details.tenantid); + localStorage.setItem('partnerid', res.data.details.partnerid); + + navigate('/orders'); + setSubmitting(false); + } + } + console.log(res.data.message); + setLoading(false); + }) + .catch((err) => { + console.log(err); + + // setAlertmessage('Invalid Data'); + // if(err.message == 'Network Error'){ + opentoast(err.message); + // }else{ + // opentoast('Invalid Data'); + + // } + setLoading(false); + setSubmitting(false); + console.log(err.message); + }); + } catch (err) { + console.log(err); + setLoading(false); + setSubmitting(false); + } + } else { + opentoast('Password is Incorrect'); + setLoading(false); + } + } else { + // let el2 = document.getElementById('toastid'); + // el2.classList.add('d-block'); + // el2.classList.remove('d-none'); + setAlertmessage('Fill All required fields'); + opentoast('Fill All required fields'); + setLoading(false); + } + }; + + // const handleClose = () => { + // setToast(false) + // } + const opentoast = (message) => { + // setToast(true) + + // setTimeout(() => { + // // handleClose(); + // setToast(false) + // }, 2000); + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }; + + return ( + <> + {/* */} + + {loading && } + {/* */} + + + legendary + + + + + {/* {children} */} + *': { + flexGrow: 1, + flexBasis: '50%' + } + }} + > + + {/* Login} /> */} + {/* */} + {/*

    eee

    */} + {/* */} + + + + + Login} /> + + + + {/* + + */} + + +
    { + e.preventDefault(); + }} + > + + + {/* */} + {/* Email Address + + {touched.email && errors.email && ( + + {errors.email} + + )} */} + + setPassword(e.target.value)} + type="password" + id="password1" + label="Password" + variant="outlined" + /> + {/* */} + + + {/* */} + {/* Password */} + {/* + // + // {showPassword ? : } + // + // + // } + placeholder="Enter password" + // margin="normal" + // fullWidth + required + autoComplete="current-password" + onChange={(e) => setPassword(e.target.value)} + type='password' id="password1" + /> */} + {/* {touched.password && errors.password && ( + + {errors.password} + + )} */} + + {/* */} + + Forgot password? + + + + {/* + + setChecked(event.target.checked)} + name="checked" + color="primary" + size="small" + /> + } + label={Keep me sign in} + /> + + Forgot Password? + + + */} + {/* {errors.submit && ( + + {errors.submit} + + )} */} + + {/* */} + + + + {/* */} + + + {/* */} +
    +
    + {/*
    */} +
    +
    +
    +
    +
    + + {/* */} + + + + + + © All rights reserved + {/* Privacy Policy */} + + + + + + Terms and Conditions + + + Privacy Policy + + {/* + CA Privacy Notice + */} + + + + +
    +
    + {/*
    */} + + ); +}; + +export default Login1; diff --git a/src/pages/nearle/orders/OrdersPreview.js b/src/pages/nearle/orders/OrdersPreview.js new file mode 100644 index 0000000..7d0fac2 --- /dev/null +++ b/src/pages/nearle/orders/OrdersPreview.js @@ -0,0 +1,623 @@ +import { + Autocomplete, + Button, + Chip, + Divider, + Grid, + Stack, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TextField, + Tooltip, + Typography, + Backdrop, + IconButton +} from '@mui/material'; +import React, { Fragment, useEffect, useMemo, useState } from 'react'; +import { useTheme } from '@mui/material/styles'; +import { useLocation, useNavigate } from 'react-router-dom'; +import dayjs from 'dayjs'; +import MainCard from 'components/MainCard'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import { fetchPaymentType, fetchRidersList, finalCreatedeliveries, notifyRider } from 'pages/api/api'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { useMutation, useQuery } from '@tanstack/react-query'; +import Loader from 'components/Loader'; +import CircularLoader from 'components/CircularLoader'; +import { Empty } from 'antd'; +import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; +import { DashboardFilled, OpenAIFilled } from '@ant-design/icons'; +import { MdDirectionsBike } from 'react-icons/md'; +import { FaMapLocationDot } from 'react-icons/fa6'; +import { HiOutlineArrowLeft } from 'react-icons/hi'; + +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); + +const OrdersPreview = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const location = useLocation(); + console.log('location.state', location.state); + const [rider, setRider] = useState(null); + const [payment, setPayment] = useState(null); + const [finaldeliveryList, setFinalDeliveryList] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const deliverylist = location.state?.deliverylist; + const zoneData = location.state?.zoneData; + const metaData = location.state?.metaData; + const riderToken = location.state?.riderToken; + const appId = location.state?.appId; + const aiMode = location.state?.aiMode; + const reassignOrders = location.state?.reassignOrders; + + useEffect(() => { + console.log('aiMode', aiMode); + console.log('riderToken', riderToken); + console.log('zoneData', zoneData); + console.log('metaData', metaData); + console.log('reassignOrders', reassignOrders); + }, []); + + useEffect(() => { + if (!deliverylist?.length) return; + const updateDeliveryAmtList = deliverylist.map((list) => { + const cumulativeKms = Number(list.cumulativekms || 0); + const minKm = Number(list.minkm || 0); + const basePrice = Number(list.baseprice || 0); + const pricePerKm = Number(list.priceperkm || 0); + if (cumulativeKms <= minKm) { + return { + ...list, + deliveryamt: basePrice + }; + } + return { + ...list, + deliveryamt: (cumulativeKms - minKm) * pricePerKm + basePrice + }; + }); + + setFinalDeliveryList(updateDeliveryAmtList); + console.log('finaldeliveryList', updateDeliveryAmtList); + }, [deliverylist]); + + // ==============================|| fetchPaymentType ||============================== // + + const { + data: paymentModes = [], + isLoading: paymentModesLoading, + isError: paymentModesError, + error: paymentModesErrorMessage + } = useQuery({ + queryKey: ['paymentmodes'], + queryFn: fetchPaymentType + }); + + // ==============================|| fetchRidersList ||============================== // + + const { + data: ridersList = [], + isLoading: ridersListLoading, + isError: ridersListError, + error: ridersListErrorMessage, + refetch: ridersListRefetch + } = useQuery({ + queryKey: ['ridersList', appId], // Unique key for caching & re-fetching + queryFn: fetchRidersList, + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + + const getRiderName = async (userid) => { + await ridersList.map((rider) => { + if (rider.userid == userid) { + return rider.firstname; + } + }); + }; + + // ======================================================= || notifyRiderMutation || ======================================================= + + const notifyRiderMutation = useMutation({ + mutationFn: notifyRider, // Using the separate function + onSuccess: () => { + OpenToast('Notification sent Successfully', 'success', 2000); + }, + onError: (error) => { + OpenToast(error.message, 'error', 2000); + } + }); + + const createNormalDeliveryMutation = useMutation({ + mutationFn: finalCreatedeliveries, // for optimised delivery create + + onSuccess: (data, variables) => { + console.log('data', data); + console.log('varialbles', variables); + notifyRiderMutation.mutate(rider.userfcmtoken || riderToken); // Call notifyRider after success + if (data.status == 'accepted') { + OpenToast('Delivery Created Successfully', 'success', 2000); + } + setTimeout(() => { + setIsLoading(false); + navigate('/nearle/deliveries'); + }, 2000); + }, + onError: (error) => { + OpenToast(error.message, 'error', 4000); + } + }); + + const handleManualCreateDelivery = async () => { + setIsLoading(true); + createNormalDeliveryMutation.mutate({ + deliveries: finaldeliveryList + }); + }; + + return ( + + + navigate('/nearle/orders')} + sx={{ + backgroundColor: 'action.hover', + color: 'text.primary', + '&:hover': { + backgroundColor: 'action.selected' + } + }} + > + + {' '} + + + Assign Orders + + + } + secondary={ + + } + > + {(paymentModesLoading || ridersListLoading || isLoading) && ( + <> + + + + )} + { + theme.zIndex.drawer + 1 + }} + open={paymentModesLoading || ridersListLoading || isLoading} // when loader = true, backdrop covers the page + > + + + } + + {aiMode == 1 && ( + + + + } + color={theme.palette.success.main} + sx={{ cursor: 'pointer' }} + /> + + + } + color={theme.palette.warning.main} + /> + + + } + color={theme.palette.info.main} + /> + + + } + color={theme.palette.error.main} + /> + + + + )} + + + + + # + {aiMode == 1 && ( + Zone + )} + Tenant + order Location + Pickup + Delivery + Notes + {aiMode == 1 && ( + Rider + )} + + Type + + + Profit + + + Charges + + + KMS + + + + + {finaldeliveryList?.length == 0 && ( + + + + + + )} + {finaldeliveryList && aiMode == 1 // ai mode , ai automation + ? finaldeliveryList?.map((val, index) => { + return ( + + + + {index + 1} + + {aiMode == 1 && ( + + + + )} + + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.orderdate).utc().format('DD/MM/YYYY')} + + + {dayjs(val.orderdate).utc().format('hh:mm A')} + + + - + + + {dayjs(val.deliverydate).utc().format('DD/MM/YYYY')} + + + + {dayjs(val.deliverydate).utc().format('hh:mm A')} + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + {val.ordernotes} + {aiMode == 1 && ( + + {val.username} + ID : {val.userid} + + )} + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + ); + }) + : // normal optimisation + finaldeliveryList?.map((val, index) => { + return ( + + + + {index + 1} + + {/* {aiMode == 1 && ( + + + + )} */} + + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.orderdate).utc().format('DD/MM/YYYY')} + + + {dayjs(val.orderdate).utc().format('hh:mm A')} + + + - + + + {dayjs(val.deliverydate).utc().format('DD/MM/YYYY')} + + + + {dayjs(val.deliverydate).utc().format('hh:mm A')} + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + {val.ordernotes} + {/* {aiMode == 1 && ( + + {val.username} + ID : {val.userid} + + )} */} + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + ); + })} +
    +
    +
    + + {aiMode == 0 && ( + + + } + onChange={(event, newValue, reason) => { + if (reason === 'clear') { + setPayment(null); + return; + } + if (newValue) { + console.log('Selected:', newValue); + setPayment(newValue); + const newList = finaldeliveryList?.map((list) => ({ + ...list, + paymenttype: newValue.apptypeid // merge selected rider into each list item + })); + setFinalDeliveryList(newList); + } + }} + /> + + + } + onChange={(event, newValue, reason) => { + if (reason === 'clear') { + setRider(null); + return; + } + if (newValue) { + setRider(newValue); + console.log('Selected:', newValue); + const newList = finaldeliveryList?.map((list) => ({ + ...list, + userid: newValue.userid, + userfcmtoken: newValue.userfcmtoken + })); + setFinalDeliveryList(newList); + } + }} + /> + + + )} + + + + + +
    + ); +}; + +export default OrdersPreview; diff --git a/src/pages/nearle/orders/OrdersTableSkeleton.js b/src/pages/nearle/orders/OrdersTableSkeleton.js new file mode 100644 index 0000000..80bb899 --- /dev/null +++ b/src/pages/nearle/orders/OrdersTableSkeleton.js @@ -0,0 +1,49 @@ +import { TableRow, TableCell, Skeleton, Stack } from '@mui/material'; + +export const OrdersTableSkeleton = ({ rowsPerPage = 5, col = 1 }) => { + return ( + <> + {Array.from(new Array(rowsPerPage)).map((_, index) => ( + + {/* Checkbox */} + + + + + {/* Serial Number */} + + + + + {/* Delivery Info */} + {Array.from({ length: col }).map((_, index) => ( + + + + + + + ))} + + {/* Notes */} + + + + + {/* Order Status */} + + + + + {/* Actions */} + + + + + + + + ))} + + ); +}; diff --git a/src/pages/nearle/orders/createorder1.js b/src/pages/nearle/orders/createorder1.js new file mode 100644 index 0000000..5302a3f --- /dev/null +++ b/src/pages/nearle/orders/createorder1.js @@ -0,0 +1,2108 @@ +import * as React from 'react'; +import { useEffect, useState, useRef, Fragment } from 'react'; +import { + FormControl, + InputAdornment, + Grid, + Typography, + Stack, + Button, + TextField, + Autocomplete, + Chip, + Divider, + DialogTitle, + DialogContent, + Checkbox, + DialogActions, + CircularProgress, + IconButton, + Switch, + OutlinedInput, + FormGroup, + FormControlLabel +} from '@mui/material'; +import CloseIcon from '@mui/icons-material/Close'; +import { Empty } from 'antd'; +import { FaPhoneAlt } from 'react-icons/fa'; +import { GiDoorHandle } from 'react-icons/gi'; +import { FaLandmarkDome } from 'react-icons/fa6'; +import ClearIcon from '@mui/icons-material/Clear'; +import { useNavigate } from 'react-router'; +import { TbMapPinCode } from 'react-icons/tb'; +import { FaLocationDot } from 'react-icons/fa6'; +import axios from 'axios'; +import { useTheme } from '@mui/material/styles'; +import Geocode from 'react-geocode'; +import Loader from 'components/Loader'; +import * as geolib from 'geolib'; +import MainCard from 'components/MainCard'; +import { FaUser } from 'react-icons/fa6'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import Dialog from '@mui/material/Dialog'; +import dayjs from 'dayjs'; +import { enqueueSnackbar } from 'notistack'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { SearchOutlined, CloseOutlined } from '@ant-design/icons'; +import MyLocationIcon from '@mui/icons-material/MyLocation'; +import HighlightOffIcon from '@mui/icons-material/HighlightOff'; +import { OpenToast } from 'components/third-party/OpenToast'; + +function loadScript(src, position, id) { + if (!position) { + return; + } + + const script = document.createElement('script'); + script.setAttribute('async', ''); + script.setAttribute('id', id); + script.src = src; + position.appendChild(script); +} + +const Createorder1 = () => { + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // ================================================= || GoogleMaps (Drawer) || ================================================= + const loaded = React.useRef(false); + const navigate = useNavigate(); + const theme = useTheme(); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const [inputValue1, setInputValue1] = React.useState(''); + const [inputValue2, setInputValue2] = React.useState(''); + const [tenanatLocoId, setTenanatLocoId] = useState(localStorage.getItem('locationid')); + const [isLocation, setIsLocation] = useState(false); + const textFieldRef1 = useRef(null); + const textFieldRef1a = useRef(null); + const textFieldRef2 = useRef(null); + const [appId, setAppId] = useState(0); + const [open, setOpen] = useState(false); + const [clientdetail, setClientdetail] = useState([]); + const [startdate, setStartdate] = useState(dayjs().format('MM-DD-YYYY')); + // const [starttime, setStatrttime] = useState(`${dayjs().format('MM-DD-YYYY')} 08:00:00`); + const [starttime, setStatrttime] = useState(); + // const [endtime, setEndtime] = useState(`${dayjs().format('MM-DD-YYYY')} 20:00:00`); + const [endtime, setEndtime] = useState(); + const [timeslotarr, setTimeslotarr] = useState([]); + const [otherinstructions, setOtherinstructions] = useState(''); + const [loading2, setLoading2] = useState(false); + const [loading, setLoading] = useState(false); + const [btnLoading, setBtnLoading] = useState(false); + const [alertmessage, setAlertmessage] = useState(''); + const [admintoken, setAdmintoken] = useState(); + const [tenant, setTenant] = useState({}); + const [selectedtime, setSelectedtime] = useState(''); + const [tenantlist, setTenantlist] = useState([]); + const [startPoint, setStartPoint] = useState({ latitude: 0, longitude: 0 }); + const [endPoint, setEndPoint] = useState({ latitude: 0, longitude: 0 }); + const [showDistance, setShowDistance] = useState(false); + const [distance, setDistance] = useState(0); + const [basePrice, setBasePrice] = useState(0); + const [pricePerKm, setPricePerKm] = useState(0); + const [minKm, setMinKm] = useState(0); + const [totalCharge, setTotalCharge] = useState(0); + const [subCat, setSubCat] = useState([]); + const [subCatName, setSubCatName] = useState('Select '); + const [subCatId, setSubCatId] = useState(0); + const [weight, setWeight] = useState(''); + const [tenantid, setTenantid] = useState(0); + const [locationid, setLocationid] = useState(0); + const [selectedCatChip, setSelectedCatChip] = useState(null); + const [isCustomerOpen, setIsCustomerOpen] = useState(false); + const [searchCustList, setSearchCustList] = useState(''); + const [customerlist, setCustomerlist] = useState([]); + const [defaultPickup, setDefaultPickup] = useState(null); + const [pickCust, setPickCust] = useState(null); + const [dropCust, setDropCust] = useState(null); + const [pickordrop, setpickordrop] = useState(0); // 1 ->pick 2 -> drop + const [addId1, setAddId1] = useState(0); + const [addId2, setAddId2] = useState(0); + const [tenantLocations, setTenantlocations] = useState([]); + const [appLocaLat, setAppLocaLat] = useState(); + const [appLocaLng, setAppLocaLng] = useState(); + const [appLocaRadius, setAppLocaRadius] = useState(); + const [locations, setLocations] = useState('Select Location'); + const userid = localStorage.getItem('userid'); + const [isNumChange1, setIsNumChange1] = useState(0); + const [isNumChange2, setIsNumChange2] = useState(0); + const [showCheck1, setShowCheck1] = useState(0); + const [showCheck2, setShowCheck2] = useState(0); + const [pickNum, setPickNum] = useState(); + const [dropNum, setdropNum] = useState(); + const [numErr1, setNumErr1] = useState(false); + const [numErr2, setNumErr2] = useState(false); + const [isSms, setIsSms] = useState(0); + const [collectionamt, setCollectionamt] = useState(0); + const [quantity, setQuantity] = useState(1); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [pickupSlotsList, setPickupSlotsList] = useState(null); + const [pickupSlot, setPickupSlot] = useState(null); + + useEffect(() => { + console.log('pickupSlotsList', pickupSlotsList); + console.log('pickupSlot', pickupSlot); + }, [pickupSlotsList, pickupSlot]); + + if (typeof window !== 'undefined' && !loaded.current) { + if (!document.querySelector('#google-maps')) { + loadScript( + `https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_API_KEY}&libraries=places&location=10.3656,77.9690&radius=50000&components=country:IN&strictbounds=true`, + document.querySelector('head'), + 'google-maps' + ); + } + loaded.current = true; + } + + // ==============================|| fetchAppLocations ||============================== // + const fetchAppLocations = async () => { + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + console.log('fetchAppLocations', locationRes.data.details); + setLocations(locationRes.data.details); + } catch (err) { + console.log('locationRes', err); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + // ===================================================== || fetchtenantinfolist || ===================================================== + + const fetchtenantinfolist = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${appId}&status=active`) + + .then((res) => { + console.log(res); + if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + setTenantlist(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + appId && fetchtenantinfolist(); + }, [appId]); + + const handleChipClick = (chipLabel) => { + setSelectedCatChip(chipLabel); + }; + + const chipStyle = (chipLabel) => ({ + cursor: 'pointer', + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : 'default', + color: selectedCatChip === chipLabel ? '#fff' : '', + '&:hover': { + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : theme.palette.primary.light, + color: '#fff' + } + }); + + const fetchTenantPricing = async (id) => { + try { + const pricingResponse = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${id}`); + console.log('pricingResponse', pricingResponse.data.details); + setBasePrice(pricingResponse.data.details.baseprice); + setPricePerKm(pricingResponse.data.details.priceperkm); + setMinKm(pricingResponse.data.details.minkm); + } catch (error) { + console.log('fetchTenantPricing error', error); + } + }; + + useEffect(() => { + console.log('startPoint', startPoint); + console.log('endPoint', endPoint); + if (startPoint.latitude != 0 && startPoint.longitude != 0 && endPoint.latitude != 0 && endPoint.longitude != 0) { + // getDistance(); + calculateDistance(startPoint, endPoint); + } + }, [startPoint, endPoint]); + + // google distance matrix logic + /* + const calculateDistance = async (pickup, drop) => { + const service = new google.maps.DistanceMatrixService(); + const getDistanceMatrix = (origins, destinations, travelMode, unitSystem) => { + return new Promise((resolve, reject) => { + service.getDistanceMatrix( + { + origins: [new google.maps.LatLng(origins.latitude, origins.longitude)], + destinations: [new google.maps.LatLng(destinations.latitude, destinations.longitude)], + travelMode: travelMode, + unitSystem: unitSystem + }, + (response, status) => { + if (status === 'OK') { + resolve(response); + } else { + reject(new Error(`Error calculating distance: ${status}`)); + } + } + ); + }); + }; + + try { + // Use await to wait for the promise to resolve + const response = await getDistanceMatrix(pickup, drop, 'DRIVING', google.maps.UnitSystem.METRIC); + + // Handle the response + const results = response.rows[0].elements; + for (let i = 0; i < results.length; i++) { + const element = results[i]; + + // Extract the numerical value of the distance + + const distance = element.distance.value; + console.log('distance in m ', distance); + const distanceInKm = (distance / 1000).toFixed(2); + console.log('distance in km ', distanceInKm); + const roundedDistance = Math.round(distanceInKm); + console.log('roundedDistance', roundedDistance); + setDistance(roundedDistance); + if (roundedDistance < minKm) { + setTotalCharge(basePrice); + } else { + console.log('minKm', minKm); + console.log('pricePerKm', pricePerKm); + console.log('basePrice', basePrice); + const total = (roundedDistance - minKm) * pricePerKm + basePrice; + console.log('total', total); + setTotalCharge(total); + } + setShowDistance(true); + if (roundedDistance > appLocaRadius) { + setShowDistance(true); + setOpen(true); + } + + // Extract the numerical value of the duration + const durationMatch = element.duration.text.match(/([\d.]+)/); + const duration = durationMatch ? parseInt(durationMatch[0]) : null; + + // Display only the numerical values + console.log(`Distance: ${roundedDistance}, Duration: ${duration}`); + } + } catch (error) { + console.error('Error calculating distance:', error); + } + };*/ + // Haversine + 1.3 + const calculateDistance = async (pickup, drop) => { + // Haversine formula + const haversineDistance = (lat1, lon1, lat2, lon2) => { + const toRad = (value) => (value * Math.PI) / 180; + + const R = 6371; // Earth radius in KM + const dLat = toRad(lat2 - lat1); + const dLon = toRad(lon2 - lon1); + + const a = + Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); + + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return R * c; // distance in KM + }; + + try { + // 1. Get aerial distance + const aerialDistance = haversineDistance(pickup.latitude, pickup.longitude, drop.latitude, drop.longitude); + + // 2. Convert to road approximation (1.3x) + const distanceInKm = (aerialDistance * 1.3).toFixed(2); + + console.log('distance in km ', distanceInKm); + + const roundedDistance = Math.round(distanceInKm); + console.log('roundedDistance', roundedDistance); + + // 🔽 SAME AS YOUR EXISTING LOGIC (UNCHANGED) + setDistance(roundedDistance); + + if (roundedDistance < minKm) { + setTotalCharge(basePrice); + } else { + console.log('minKm', minKm); + console.log('pricePerKm', pricePerKm); + console.log('basePrice', basePrice); + + const total = (roundedDistance - minKm) * pricePerKm + basePrice; + + console.log('total', total); + setTotalCharge(total); + } + + setShowDistance(true); + + if (roundedDistance > appLocaRadius) { + setShowDistance(true); + setOpen(true); + } + + // ⏱️ Approximate duration (optional, since no API) + const avgSpeed = 40; // km/h (adjust if needed) + const duration = Math.round((roundedDistance / avgSpeed) * 60); // minutes + + console.log(`Distance: ${roundedDistance}, Duration: ${duration}`); + } catch (error) { + console.error('Error calculating distance:', error); + } + }; + + useEffect(() => { + if (tenantid) { + clientdetails(); + } + }, [searchCustList?.length > 3, searchCustList == '', tenantid]); + + useEffect(() => { + if (timeslotarr[0]) { + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } + }, [timeslotarr]); + + // ==================================================== || fetchtenantinfo || ==================================================== + const fetchtenantinfo = async () => { + setLoading(true); + console.log('tenantid', tenantid); + + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tenantid}`) + .then((res) => { + console.log('fetchtenantinfo', res); + if (res.data.status) { + setTenant(res.data.details); + + fetchAppAdminTokens(); + setSubCatName(res.data.details.subcategoryname); + setSubCatId(res.data.details.subcategoryid); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (tenantid) { + fetchtenantinfo(); + } + }, [tenantid]); + // ==================================================== || getsubcategories || ==================================================== + const getsubcategories = async () => { + await axios + .get(`${process.env.REACT_APP_URL}/utils/getsubcategories/?moduleid=6`) + .then((res) => { + console.log('subcateRes', res.data.details); + if (res.data.status) { + setSubCat(res.data.details); + } + }) + .catch((err) => { + console.log(err); + }); + }; + useEffect(() => { + getsubcategories(); + }, []); + + // ==================================================== || fetchTiming || ==================================================== + const fetchTiming = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) + .then((res) => { + console.log('fetchTiming', res); + const { opentime, closetime, latitude, longitude, radius } = res.data.details[0]; + if (res.data.status) { + setAppLocaLat(latitude); + setAppLocaLng(longitude); + setAppLocaRadius(radius); + console.log('radius', radius); + setStatrttime(`${dayjs().format('MM-DD-YYYY')} ${opentime}`); + setEndtime(`${dayjs().format('MM-DD-YYYY')} ${closetime}`); + console.log('starttime', `${dayjs().format('MM-DD-YYYY')} ${opentime}`); + console.log('endtime', `${dayjs().format('MM-DD-YYYY')} ${closetime} `); + let arr = []; + for ( + let i = `${dayjs().format('MM-DD-YYYY')} ${opentime}`, j = 0; + dayjs(`${dayjs().format('MM-DD-YYYY')} ${closetime} `).diff(i, 'm') >= 0; + j++, i = dayjs(i).add(30, 'm') + ) { + arr.push(i); + } + console.log('setTimeslotarr', arr); + setTimeslotarr(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (appId) { + fetchTiming(); + } + }, [appId]); + + // =============================================== || fetchAppAdminTokens (via appId) || =============================================== + const fetchAppAdminTokens = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocationconfig/?applocationid=${appId}`) + .then((res) => { + const userfcmtokemArray = res.data.details.applocationadmins.map((admin) => admin.userfcmtokem); // fcm => firebase cloud messaging + if (res.data.status) { + setAdmintoken(userfcmtokemArray); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (starttime && endtime) { + fetchAppAdminTokens(); + } + }, [starttime, endtime]); + + // =============================================== || opentoast || =============================================== + + const opentoast = (message, variant, time) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time ? time : 1500 + }); + console.log(alertmessage); + }; + + const createsubmitobj2 = async () => { + let arr = {}; + arr = { + orders: { + applocationid: tenant.applolcationid, + cancellled: '', + categoryid: +tenant.categoryid, + configid: 9, + customerid: isNumChange1 == 0 ? +pickCust.customerid || 0 : 0, + deliveryaddress: dropCust.address || '', + deliverycharge: +totalCharge.toFixed(2) || 0, + deliverycity: dropCust.city || '', + deliverycontactno: dropCust.contactno || '', + deliverycustomer: dropCust.firstname || '', + deliveryid: isNumChange2 == 0 ? +dropCust.customerid || 0 : 0, + deliverylandmark: dropCust.landmark || '', + deliverylat: dropCust.latitude.toString(), + deliverylocation: dropCust.suburb || '', + deliverylocationid: dropCust.deliverylocationid || 0, + deliverylong: dropCust.longitude.toString(), + deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`, + deliverytype: 'B', + delivered: '', + itemcount: 1, + kms: distance.toString() || 0, + locationid: +locationid, + moduleid: +tenant.moduleid, + orderamount: +totalCharge.toFixed(2) || 0, + ordercharges: 0.0, + orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + ordernotes: otherinstructions, + orderstatus: 'created', + ordervalue: +totalCharge.toFixed(2) || 0, + partnerid: tenant.partnerid, + partneruserid: +userid, + paymentstatus: 1, + paymenttype: 42, + pickupaddress: pickCust.address || '', + pickupcity: pickCust.city || '', + pickupcontactno: pickCust.contactno || '', + pickupcustomer: pickCust.firstname || '', + pickuplandmark: pickCust.landmark || '', + pickuplat: pickCust.latitude.toString() || '', + pickuplocation: pickCust.suburb || '', + pickuplocationid: pickCust.deliverylocationid || 0, + pickuplong: pickCust.longitude.toString() || '', + smsdelivery: isSms, + subcategoryid: +subCatId, + tenantid: tenant.tenantid, + collectionamt: +collectionamt, + quantity: +quantity, + weight, + pickupSlot + }, + pickup: { + address: pickCust.address || '', + applocationid: tenant.applolcationid, + city: pickCust.city || '', + configid: 1, + contactno: pickCust.contactno || '', + customertoken: '', + customerid: isNumChange1 == 0 ? pickCust.customerid || 0 : 0, + devicetype: '', + deviceid: '', + dialcode: '+91', + doorno: pickCust.doorno || '', + email: pickCust.email || '', + firstname: pickCust.firstname || '', + landmark: pickCust.landmark || '', + latitude: pickCust.latitude.toString() || '', + longitude: pickCust.longitude.toString() || '', + postcode: pickCust.postcode || '', + primaryaddress: 1, + locationid: pickCust.deliverylocationid || 0, + profileimage: '', + state: pickCust.state || '', + suburb: pickCust.suburb || '', + tenantid: tenant.tenantid + }, + drop: { + address: dropCust.address || '', + applocationid: tenant.applolcationid, + city: dropCust.city || '', + configid: 1, + contactno: dropCust.contactno || '', + customertoken: '', + customerid: isNumChange2 == 0 ? dropCust.customerid || 0 : 0, + devicetype: '', + deviceid: '', + locationid: dropCust.deliverylocationid || 0, + dialcode: '+91', + doorno: dropCust.doorno || '', + email: dropCust.email || '', + firstname: dropCust.firstname || '', + landmark: dropCust.landmark || '', + latitude: dropCust.latitude.toString(), + longitude: dropCust.longitude.toString(), + postcode: dropCust.postcode || '', + primaryaddress: 1, + profileimage: '', + state: dropCust.state || '', + suburb: dropCust.suburb || '', + tenantid: tenant.tenantid + } + }; + console.log('createsubmitobj2', arr); + if (!pickCust.firstname) { + opentoast('Enter Pickup Contact Name ', 'warning', 2000); + } else if (!pickCust.contactno) { + opentoast('Enter Pickup Contact Number ', 'warning', 2000); + } else if (pickCust.contactno.length != 10) { + opentoast('Check Pickup Contact Number ', 'error', 2000); + } else if (!pickCust.suburb) { + opentoast('Enter Pickup Location ', 'warning', 2000); + } else if (!pickCust.city) { + opentoast('Enter Pickup City ', 'warning', 2000); + } else if (!pickCust.postcode) { + opentoast('Enter Pickup Postcode ', 'warning', 2000); + } else if (!pickCust.landmark) { + opentoast('Enter Pickup Landmark ', 'warning', 2000); + } else if (!dropCust.firstname) { + opentoast('Enter Drop Contact Name ', 'warning', 2000); + } else if (!dropCust.contactno) { + opentoast('Enter Drop Contact Number', 'warning', 2000); + } else if (dropCust.contactno.length !== 10) { + opentoast('Check Drop Contact Number ', 'error', 2000); + } else if (!dropCust.suburb) { + opentoast('Enter Drop Suburb ', 'warning', 2000); + } else if (!dropCust.city) { + opentoast('Enter Drop City ', 'warning', 2000); + } else if (!dropCust.postcode) { + opentoast('Enter Drop postcode ', 'warning', 2000); + } else if (!dropCust.landmark) { + opentoast('Enter Drop Landmark ', 'warning', 2000); + } else if (!selectedtime) { + opentoast('Choose deliverytime ', 'warning', 2000); + } else if (!setSubCatId) { + opentoast('Choose SubCategory ', 'warning', 2000); + } else { + try { + const createRes = await axios.post(`${process.env.REACT_APP_URL2}/orders/createorder`, arr); + if (createRes.data.status) { + console.log('createRes', createRes); + enqueueSnackbar('Order Created Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + if (admintoken) { + // notifyadmin(admintoken); + sendnotifications(); + } + navigate('/nearle/orders'); + } else { + opentoast('Error in creating orders', 'warning'); + } + setLoading(false); + } catch (error) { + opentoast(error.message, 'warning'); + console.log('createResErr', error); + } + } + }; + + // ========================================================= || clientdetails || ========================================================= + const clientdetails = async () => { + setLoading2(true); + try { + let url = + searchCustList == '' + ? `${process.env.REACT_APP_URL}/customers/gettenantcustomers/?tenantid=${tenantid}&pageno=1&pagesize=30` + : `${process.env.REACT_APP_URL}/customers/search/?tenantid=${tenantid}&keyword=${searchCustList}`; + await axios + .get(url) + .then((res) => { + if (res.data.status) { + console.log('clientdetails', res.data.details); + setClientdetail(res.data.details); + setCustomerlist(res.data.details); + } + setLoading2(false); + }) + .catch((err) => { + console.log(err); + setLoading2(false); + opentoast('server error', 'warning'); + }); + } catch (err) { + console.log(err); + setLoading2(false); + } + }; + + // ================================================== || sendnotifications || ================================================== + const sendnotifications = async () => { + setLoading(true); + await axios + .post(`${process.env.REACT_APP_URL}/utils/sendnotifications`, { + priority: 'high', + registration_ids: admintoken, + data: { + accessid: process.env.REACT_APP_RIDER_ACCESS_ID + }, + notification: { + title: 'Nearle Merchant', + body: 'An Order has been placed successfully,kindly process the same', + sound: 'ring' + } + }) + .then((res) => { + console.log(res); + if (res.data.message == 'Success') { + enqueueSnackbar('Notification sent Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + setLoading(false); + }); + }; + // ============================================= || Google Maps Autocomplete(pick) || ============================================= + useEffect(() => { + // Initialize Google Maps Autocomplete + if (inputValue1) { + const autocompleteInput = document.getElementById('addressAuto1'); + const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, { + // types: ['(cities)'], // You can adjust the types parameter based on your requirements + strictBounds: true, + bounds: new window.google.maps.Circle({ + // center: new window.google.maps.LatLng(11.0050707, 76.9509083), + // radius: 100000 + center: new window.google.maps.LatLng(appLocaLat, appLocaLng), + radius: appLocaRadius * 1000 + }).getBounds() + }); + + // Event listener for autocomplete place changed + autocomplete.addListener('place_changed', () => { + const place = autocomplete.getPlace(); + setInputValue1(`${place.name}, ${place.formatted_address}`); + console.log('new place', place); // Do something with the selected place + console.log(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + // to trigger getDistance + setStartPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); + setPickCust({ ...pickCust, address: `${place.name} ${place.formatted_address}` }); + const address = { + address: `${place.name} ${place.formatted_address}`, + street_number: '', + route: '', + locality: '', + sublocality_level_1: '', + administrative_area_level_3: '', + administrative_area_level_1: '', + country: '', + postal_code: '' + }; + place.address_components.forEach((component) => { + component.types.forEach((type) => { + switch (type) { + case 'street_number': + address.street_number = component.long_name; + break; + case 'route': + address.route = component.long_name; + break; + case 'locality': + address.locality = component.long_name; + break; + case 'sublocality_level_1': + address.sublocality_level_1 = component.long_name; + break; + case 'administrative_area_level_3': + address.administrative_area_level_3 = component.long_name; + break; + case 'administrative_area_level_1': + address.administrative_area_level_1 = component.long_name; + break; + case 'country': + address.country = component.long_name; + break; + case 'postal_code': + address.postal_code = component.long_name; + break; + // Add more cases as needed for other types + } + }); + }); + + // Use address object as per your requirements + setPickCust({ + ...pickCust, + address: address.address, + doorno: `${address.street_number} ${address.route}`, + suburb: address.sublocality_level_1, + city: address.locality, + postcode: address.postal_code, + latitude: place.geometry.location.lat(), + longitude: place.geometry.location.lng() + }); + console.log('Pick Address:', address); + }); + } + }, [inputValue1]); + // ============================================= || Google Maps Autocomplete(Drop) || ============================================= + + useEffect(() => { + if (inputValue2) { + // Initialize Google Maps Autocomplete + const autocompleteInput = document.getElementById('addressAuto2'); + const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, { + // types: ['(cities)'], // You can adjust the types parameter based on your requirements + strictBounds: true, + bounds: new window.google.maps.Circle({ + // center: new window.google.maps.LatLng(11.0050707, 76.9509083), + center: new window.google.maps.LatLng(appLocaLat, appLocaLng), + radius: appLocaRadius * 1000 //km to m + // radius: 100000 //km to m + }).getBounds() + }); + let arr = []; + // Event listener for autocomplete place changed + autocomplete.addListener('place_changed', () => { + const place = autocomplete.getPlace(); + setInputValue2(`${place.name}, ${place.formatted_address}`); + console.log('new place', place); // Do something with the selected place + console.log('drop (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + setEndPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); + + setDropCust({ ...dropCust, address: `${place.name} ${place.formatted_address}` }); + const address = { + address: `${place.name} ${place.formatted_address}`, + street_number: '', + route: '', + locality: '', + sublocality_level_1: '', + administrative_area_level_3: '', + administrative_area_level_1: '', + country: '', + postal_code: '' + }; + place.address_components.forEach((component) => { + component.types.forEach((type) => { + switch (type) { + case 'street_number': + address.street_number = component.long_name; + break; + case 'route': + address.route = component.long_name; + break; + case 'locality': + address.locality = component.long_name; + break; + case 'sublocality_level_1': + address.sublocality_level_1 = component.long_name; + break; + case 'administrative_area_level_3': + address.administrative_area_level_3 = component.long_name; + break; + case 'administrative_area_level_1': + address.administrative_area_level_1 = component.long_name; + break; + case 'country': + address.country = component.long_name; + break; + case 'postal_code': + address.postal_code = component.long_name; + break; + // Add more cases as needed for other types + } + }); + }); + + // Use address object as per your requirements + setDropCust({ + ...dropCust, + address: address.address, + doorno: `${address.street_number} ${address.route}`, + suburb: address.sublocality_level_1, + city: address.locality, + postcode: address.postal_code, + latitude: place.geometry.location.lat(), + longitude: place.geometry.location.lng() + }); + console.log('Drop Address:', address); + }); + } + }, [inputValue2]); + + // ============================================= || gettenantlocations (branches) || ============================================= + const gettenantlocations = async (id) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); + console.log('gettenantlocations', res.data.details); + if (res.data.details.length == 1) { + setTenantlocations(res.data.details); + setDefaultPickup(res.data.details[0]); + setLocationid(res.data.details[0].locationid); + setLocationValue(res.data.details[0].locationid); + setPickupSlotsList(res.data.details[0].slots); + } else { + setTenantlocations(res.data.details); + } + } catch (err) { + console.log('gettenantlocations', err); + } + }; + + return ( + <> + {loading && } + {loading2 && } + + + + Create Order + + + + + + {/* ===================================================== || Choose App location || ===================================================== */} + + `${option.locationname}`} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setAppId(0); + setTenantid(0); + setTenantValue(null); + setTenantlist([]); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust(null); + } else { + setAppId(value.applocationid); + setPickCust(null); + setDropCust(null); + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + } + }} + renderInput={(params) => } + /> + + {/* ===================================================== || Choose client || ===================================================== */} + + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason == 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(0); + setLocationValue(null); + fetchTenantPricing(val.tenantid); + gettenantlocations(val.tenantid); + setDropCust(null); + } + }} + renderInput={(params) => } + /> + + {/* ===================================================== ||Business Location || ===================================================== */} + + {tenantLocations.length == 1 ? ( + + + + ) + }} + /> + ) : ( + `${option.locationname} (${option.suburb})` || ''} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select a your Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + setPickCust(null); + } else { + setLocationid(value.locationid || 0); + setLocationValue(value); + setDefaultPickup(value); + setPickupSlotsList(value?.slots); + } + }} + renderInput={(params) => ( + + )} + /> + )} + + + + + + {/* ================================================= || Pickup & Drop || ================================================= */} + + + + {/* */} + + + + {/* ================================================= || Pickup || ================================================= */} + + + + + + + + Pickup Details + + + {/* { + if (e.target.checked) { + console.log('defaultPickup', defaultPickup); + setPickCust(defaultPickup); + } else { + setPickCust(null); + } + }} + /> + } + label="Default Location" + /> */} + + + + {/* new1 */} + + + + + {/* ====================================== ||Contact Name (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Contact Name" + value={pickCust?.firstname || ''} + onChange={(e) => { + setPickCust({ ...pickCust, firstname: e.target.value }); + }} + /> + + {/* ====================================== ||Contact Number(pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Contact Number" + value={pickCust?.contactno || ''} + onChange={(e) => { + if (e.target.value.length <= 10) { + setPickCust({ ...pickCust, contactno: e.target.value }); + } + if (pickNum == e.target.value) { + setShowCheck1(0); + } else { + setShowCheck1(1); + } + if (e.target.value.length < 10) { + setNumErr1(true); + } else { + setNumErr1(false); + } + }} + /> + + {/* ====================================== || Address(pick) || ====================================== */} + + + {addId1 == 0 ? ( +
    + setInputValue1(e.target.value)} + InputProps={{ + endAdornment: ( + { + setInputValue1(''); + setPickCust({ + ...pickCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + }} + size="small" + > + + + ) + }} + /> +
    + ) : ( + { + setAddId1(0); + setPickCust({ + ...pickCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + }} + > + + + ) + }} + value={pickCust?.address || ''} + onChange={(e) => { + setPickCust({ ...pickCust, address: e.target.value }); + if (e.target.value == '') { + setAddId1(0); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + } + }} + /> + )} +
    +
    + {/* ====================================== ||Door No (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Door No / Street" + value={pickCust?.doorno || ''} + onChange={(e) => { + setPickCust({ ...pickCust, doorno: e.target.value }); + }} + /> + + {/* ====================================== || Suburb (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Location" + value={pickCust?.suburb || ''} + onChange={(e) => { + setPickCust({ ...pickCust, suburb: e.target.value }); + }} + /> + + + {/* ====================================== || postcode (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Postcode" + value={pickCust?.postcode || ''} + onChange={(e) => { + setPickCust({ ...pickCust, postcode: e.target.value }); + }} + /> + + {/* ====================================== || Landmark (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Landmark" + value={pickCust?.landmark || ''} + onChange={(e) => { + setPickCust({ ...pickCust, landmark: e.target.value }); + }} + /> + + {/* ====================================== ||Checkbox save for later (pick) || ====================================== */} + {showCheck1 == 1 && ( + + + { + setIsNumChange1(e.target.checked ? 1 : 0); + }} + /> + } + label="Save For Later" + /> + + + )} +
    +
    +
    +
    +
    + + {/* ================================================= || Drop || ================================================= */} + + + + + + + + Drop Details + {' '} + + + + + + + {/* ====================================== ||Contact Name (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.firstname || ''} + onChange={(e) => { + setDropCust({ ...dropCust, firstname: e.target.value }); + }} + /> + + {/* ====================================== ||Contact Number (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.contactno || ''} + onChange={(e) => { + if (e.target.value.length <= 10) { + setDropCust({ ...dropCust, contactno: e.target.value }); + } + if (dropNum == e.target.value) { + setShowCheck2(0); + } else { + setShowCheck2(1); + } + if (e.target.value.length < 10) { + setNumErr2(true); + } else { + setNumErr2(false); + } + }} + sx={{ color: numErr2 ? 'red' : 'inherit' }} + /> + + + {/* ====================================== || Address (drop) || ====================================== */} + + + {addId2 == 0 ? ( +
    + setInputValue2(e.target.value)} + InputProps={{ + endAdornment: ( + { + setInputValue2(''); + setDropCust({ + ...dropCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + }} + size="small" + > + + + ) + }} + /> +
    + ) : ( + { + setAddId2(0); + setDropCust({ + ...dropCust, + // firstname: '', + // contactno: '', + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + }} + > + + + ) + }} + value={dropCust?.address || ''} + onChange={(e) => { + setPickCust({ ...dropCust, address: e.target.value }); + if (e.target.value == '') { + setAddId2(0); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + } + }} + /> + )} +
    +
    + + {/* ====================================== ||Door No (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.doorno || ''} + onChange={(e) => { + setDropCust({ ...dropCust, doorno: e.target.value }); + }} + /> + + {/* ====================================== ||Suburb (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.suburb || ''} + onChange={(e) => { + setDropCust({ ...dropCust, suburb: e.target.value }); + }} + /> + + + {/* ====================================== ||Postcode (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.postcode || ''} + onChange={(e) => { + setDropCust({ ...dropCust, postcode: e.target.value }); + }} + /> + + {/* ====================================== ||Landmark (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.landmark || ''} + onChange={(e) => { + setDropCust({ ...dropCust, landmark: e.target.value }); + }} + /> + + {/* ====================================== ||Checkbox save for later (drop) || ====================================== */} + {showCheck2 == 1 && ( + + + { + setIsNumChange2(e.target.checked ? 1 : 0); + }} + /> + } + label="Save For Later" + /> + + + )} +
    +
    +
    +
    +
    + {/* ================================================= || Category || ================================================= */} + + + + + + `${option.subcategoryname}` || ''} + fullWidth + renderInput={(params) => } + onChange={(event, value, reason) => { + if (value) { + console.log(value); + setSubCatName(value.subcategoryname || ''); + setSubCatId(value.subcategoryid || 0); + } else if (reason) { + setSubCatName(null); + setSubCatId(null); + } + }} + /> + + + + + { + setCollectionamt(e.target.value); + }} + inputProps={{ min: 0 }} + /> + + + + + { + setQuantity(e.target.value); + }} + inputProps={{ min: 1 }} + /> + + + + + + {/* ================================================= || Time || ================================================= */} + + + + + + Pickup Slots + + Date + + + { + let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd'); + console.log('dateres11'); + console.log(dateres11); + setSelectedtime(''); + if (dateres11 <= 0) { + console.log('startdate', e); + setStartdate(e); + + let arr = []; + timeslotarr.map((val) => { + if ( + dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + arr.push(val); + } + }); + } else { + setAlertmessage('choose Upcoming Date'); + opentoast('choose Upcoming Date', 'warning'); + setStartdate(NaN); + } + }} + value={dayjs(startdate)} + sx={{ width: '100%', mt: 2 }} + disablePast + /> + + + Pickup Time Slot + + + { + if (reason === 'clear') { + setSelectedtime(null); + setPickupSlot(null); + } else { + // Convert to AM/PM and merge with date + const formattedTime = dayjs(newValue.time, 'HH:mm').format('hh:mm A'); + setSelectedtime(formattedTime); + const finalDateTime = dayjs(`${startdate} ${formattedTime}`, 'MM-DD-YYYY hh:mm A').format( + 'YYYY-MM-DD hh:mm A' + ); + setPickupSlot(finalDateTime); + } + }} + getOptionLabel={(option) => `${option.name} (${dayjs(option.time, 'HH:mm').format('hh:mm A')})`} + renderInput={(params) => } + /> + {/* + + {timeslotarr.map((val, index) => { + if ( + dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + return ( + + + { + if (distance > appLocaRadius) { + setOpen(true); + } else if (showDistance) { + console.log('selectedtime', val); + setSelectedtime(val); + } else { + opentoast('Out of city limit', 'error'); + } + }} + /> + + + ); + } + })} + + */} + + + + + + + {showDistance && ( + + + + + + + + + )} + Weight + + { + handleChipClick('1-10kgs'); + setWeight('1-10kgs'); + }} + /> + { + handleChipClick('11-20kgs'); + setWeight('11-20kgs'); + }} + /> + { + handleChipClick('21-30kgs'); + setWeight('21-30kgs'); + }} + /> + + + + SMS Delivery + + { + setIsSms(e.target.checked ? 1 : 0); + }} + /> + + + + +
    +
    + + {/* ================================================= || Notes || ================================================= */} + + + + + + Notes + + setOtherinstructions(e.target.value)} + /> + + + + + + + + +
    + {/*
    */} +
    + + {/* ============================================= || saved address Dialog || ============================================= */} + { + setIsCustomerOpen(false); + setSearchCustList(''); + }} + fullWidth + sx={{ minWidth: 'lg' }} + > + + + {`Select Address (${pickordrop === 1 ? 'Pickup' : 'Drop'})`} + + + setSearchCustList(e.target.value)} + sx={{ + '& .MuiOutlinedInput-input': { + p: '10.5px 0px 12px' + }, + bgcolor: 'white' + }} + startAdornment={ + + + + } + endAdornment={ + { + setSearchCustList(''); + }} + > + + + } + autoComplete="off" + /> + + + + + + + {customerlist?.length == 0 ? ( + + + + ) : ( + + {customerlist && + customerlist?.map((address, index) => ( + + ))} + + )} + + + + + + + {/* ============================================= || location error Dialog || ============================================= */} + { + setOpen(false); + }} + > + + + + Error + + + + + Service not available at this location + + + { + setOpen(false); + }} + > + Close + + +
    + + ); +}; + +export default Createorder1; diff --git a/src/pages/nearle/orders/details.js b/src/pages/nearle/orders/details.js new file mode 100644 index 0000000..e833f31 --- /dev/null +++ b/src/pages/nearle/orders/details.js @@ -0,0 +1,2088 @@ +import { + useEffect, + useState, + Fragment + // useReducer +} from 'react'; +import BorderColorIcon from '@mui/icons-material/BorderColor'; +import { + // Navigate, + // useSearchParams, + useLocation, + useNavigate +} from 'react-router-dom'; +import axios from 'axios'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import { + // UserOutlined, + EnvironmentOutlined, + EditTwoTone + // DeleteTwoTone +} from '@ant-design/icons'; +// import WomanIcon from '@mui/icons-material/Woman'; +// import { Link } from 'react-router-dom'; +// import SoupKitchenIcon from '@mui/icons-material/SoupKitchen'; +import DirectionsCarIcon from '@mui/icons-material/DirectionsCar'; +import SendIcon from '@mui/icons-material/Send'; +import { KeyboardArrowUp, KeyboardArrowDown } from '@mui/icons-material'; + +// import { PopupTransition } from 'components/@extended/Transitions'; +// import { useDispatch } from 'react-redux'; +// import { openSnackbar } from 'store/reducers/snackbar'; +// assets +import { DeleteFilled, NotificationOutlined } from '@ant-design/icons'; +var utc = require('dayjs/plugin/utc'); +// import { groupBy } from "core-js/actual/array/group-by"; +// import "lodash.chunk"; +// var chunk = require('lodash.chunk'); +import { + Grid, + Typography, + Stack, + Button as Button1, + // Box, + FormControl, + Table, + TableHead, + TableRow, + TableCell, + TableContainer, + TableBody, + Chip, + Divider, + CardActions, + IconButton, + Avatar, + Dialog, + DialogTitle, + DialogContent, + Checkbox, + Tooltip, + Button, + Tab, + Tabs, + Skeleton, + // DialogContent, + DialogActions, + TextField, + CircularProgress, + Collapse, + Alert, + AlertTitle, + Link + // Card, + // CardHeader +} from '@mui/material'; + +import { PopupTransition } from 'components/@extended/Transitions'; + +// import ControlPointIcon from '@mui/icons-material/ControlPoint'; +import CancelOutlinedIcon from '@mui/icons-material/CancelOutlined'; +import MainCard from 'components/MainCard'; +import Loader from 'components/Loader'; +// import AlertCustomerDelete from 'sections/apps/customer/AlertCustomerDelete'; +import dayjs from 'dayjs'; +dayjs.extend(utc); +// import { Link as RouterLink } from 'react-router-dom'; +// import PlayCircleFilled from '@mui/icons-material/PlayCircleFilled'; +// import SmileFilled from '@mui/icons-material/Mood'; +// import HeartFilled from '@mui/icons-material/Favorite'; + +import { useTheme } from '@mui/material/styles'; +import { + CloseOutlined, + WarningOutlined, + WarningFilled + // PlusOutlined, + // EyeTwoTone, + // EditTwoTone, + // DeleteTwoTone +} from '@ant-design/icons'; +import { enqueueSnackbar } from 'notistack'; + +const Details = () => { + // const [searchParams] = useSearchParams(); + const [orderarr, setOrderarr] = useState([]); + const [loading, setLoading] = useState(true); + const location = useLocation(); + const [orderid, setOrderid] = useState(''); + const [eventlocation, setEventlocation] = useState(''); + const [orderdate, setOrderdate] = useState(''); + const [eventname, setEventname] = useState(''); + const [open, setOpen] = useState(false); + const [clientname, setClientname] = useState(''); + // const [duedate, setDuedate] = useState(''); + const [tenantaddress, setTenantaddress] = useState(''); + const [dialogopen, setDialogopen] = useState(false); + const [orderstatus, setOrderstatus] = useState(''); + const [currentrole, setCurrentrole] = useState(''); + const [taxamount, setTaxamount] = useState(''); + const [subtotal, setSubtotal] = useState(''); + const [grandtotal, setGrandtotal] = useState(''); + const [venuetype, setVenuetype] = useState(''); + const [orderaddons, setOrderaddons] = useState([]); + const [otherinstructions, setOtherinstructions] = useState(''); + const [cancelleddate, setCancelleddate] = useState(''); + const [stafflist, setStafflist] = useState([]); + const [staffarr, setStaffarr] = useState([]); + const [orderheaderid, setOrderheaderid] = useState(''); + const [tenantid, setTenantid] = useState(''); + const [starttime, setStarttime] = useState(''); + const [endtime, setEndtime] = useState(''); + // const [orderstatus,setOrderstatus]=useStatus(''); + const [pendingtime, setPendingtime] = useState(''); + // const [processdate,setProcessdate]=useState(''); + const [orderdetailid, setOrderdetailid] = useState(''); + const [productid, setProductid] = useState(''); + const [categoryarr, setcategoryarr] = useState([]); + const [currentshiftobj, setCurrentshiftobj] = useState({ + shifts: 0, + assigned: 0, + remaining: 0, + shiftid: 0, + price: 0 + }); + const [tabstatus, setTabstatus] = useState(0); + const { state } = useLocation(); + const [assignedpendingcount, setAssignedpendingcount] = useState(''); + // const [, forceUpdate] = useReducer(x => x + 1, 0); + // const dispatch = useDispatch(); + const navigate = useNavigate(); + const [expandopen, setExpandopen] = useState(['', '']); + const [startdate, setStartdate] = useState(''); + const [invoiceeligible, setInvoiceeligible] = useState(false); + + useEffect(() => { + console.log('categoryarr'); + + console.log(orderarr, eventlocation, venuetype, starttime, endtime); + // forceUpdate(); + }, [categoryarr]); + + // const navigate = useNavigate(); + useEffect(() => { + if (state) { + setOrderheaderid(state.orderheaderid); + setTenantid(state.tenantid); + } + console.log(state); + // fetchroleslist(1) + console.log(Date.now()); + }, []); + useEffect(() => { + if (state) { + setOrderheaderid(state.orderheaderid); + setTenantid(state.tenantid); + } + console.log(state); + // fetchroleslist(1) + console.log(Date.now()); + }, [state.orderheaderid, state.tenantid]); + + const theme = useTheme(); + + // const fetchorderdetails = async () => { + // setLoading(true); + // await axios + // .get(`${process.env.REACT_APP_URL}/orders/orderbyid/?orderheaderid=${orderheaderid}`) + + // .then((res) => { + // console.log(res); + + // setLoading(false); + // }) + // .catch((err) => { + // console.log(err); + // setLoading(false); + // }); + + // }; + + const fetchorderaddons = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL2}/orders/getordersbystatus?tenantid=${tenantid}`) + + .then((res) => { + console.log(res); + let result = res.data.Details.find((res1) => res1.orderheaderid == orderheaderid); + // orderheaderid + console.log('result'); + + console.log(result); + setOrderaddons(result.orderaddons); + setVenuetype(result.venuetype); + setOtherinstructions(result.remarks); + setStartdate(result.startdate); + + setClientname(result.tenantname); + setEventlocation(''); + setTenantaddress(result.tenantaddress); + setEventname(result.eventname); + + setOrderdate(dayjs(result.orderdate).format('MM/DD/YYYY') || ''); + setOrderid(result.orderid); + setOrderstatus(result.orderstatus); + setTaxamount(result.taxamount); + setSubtotal(result.orderamount); + setGrandtotal(result.ordervalue); + setCancelleddate(dayjs(result.cancelled).format('MM/DD/YYYY') || ''); + + // if (result.orderstatus === 'pending') { + setPendingtime(result.pending); + // } + + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + const fetchorderattires = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL2}/orders/getorderdetails?orderheaderid=${orderheaderid}`) + + .then((res) => { + console.log('res'); + console.log(res); + setOrderarr(res.data.Details || []); + // let result = res.data.Details.find((res1) => res1.orderheaderid == searchParams.get('id')) + // orderheaderid + // console.log(result) + // setOrderaddons(result.orderaddons); + // setVenuetype(result.venuetype) + // setOtherinstructions(result.remarks) + // console.log("res"); + // let result = _.chain(res.data.Details) + + // .groupBy("shiftid") + + // .map((value, key) => ({shiftid:key, locationaddress: value[0].locationaddress, roles: value })) + // .value() + + // setcategoryarr(result); + console.log('categoryarr'); + setcategoryarr(res.data.Details); + console.log(res.data.Details); + + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + const fetchroleslist = async (cid, starttime1, endtime1, hid, sid) => { + let fromdate = dayjs(starttime1).subtract(59, 'minutes').format('YYYY-MM-DD HH:mm:ss'); + // let todate = dayjs(endtime1).utc().format('YYYY-MM-DD HH:mm:ss'); + // let fromdate = dayjs(starttime1).utc().format('YYYY-MM-DD HH:mm:ss'); + let todate = dayjs(endtime1).format('YYYY-MM-DD HH:mm:ss'); + let url1; + if (starttime1) { + url1 = `${process.env.REACT_APP_URL2}/staffs/pools/getstaffs/?categoryid=${cid}&headerid=${hid}&shiftid=${sid}&starttime=${fromdate}&endtime=${todate}`; + } else { + url1 = `${process.env.REACT_APP_URL2}/staffs/pools/getstaffs/?categoryid=${cid}&headerid=${hid}&shiftid=${sid}`; + } + setLoading(true); + setStafflist([]); + await axios + // .get(`${process.env.REACT_APP_URL2}/staffs/pools/getstaffs/?categoryid=${cid}&headerid=${hid}&starttime=${fromdate}&endtime=${todate}`) + .get(url1) + .then((res) => { + console.log('rolelist'); + console.log(res); + // console.log(fromdate, todate) + // console.log(dayjs(starttime1).format('YYYY-MM-DD HH:mm:ss')) + // console.log(dayjs(endtime1).format('HH:mm:ss')) + + setStafflist(res.data.Details || []); + // let result = res.data.Details.find((res1) => res1.orderheaderid == searchParams.get('id')) + // orderheaderid + // console.log(result) + // setOrderaddons(result.orderaddons); + // setVenuetype(result.venuetype) + // setOtherinstructions(result.remarks) + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + const fetchstafflist = async (odid) => { + setLoading(true); + try { + // await axios.get(`${process.env.REACT_APP_URL}/orders/orderanalytics?orderdate=${chosendate}`) + await axios + .get(`${process.env.REACT_APP_URL2}/orders/getassignedinfo?orderdetailid=${odid}`) + + .then((res) => { + console.log(res); + if (res.data.status) { + setStafflist(res.data.Details); + } + + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + const cancelorder = async () => { + await axios + .put(`${process.env.REACT_APP_URL2}/orders/cancel`, { + // "Orderheaderid": parseInt(orderheaderid), + // "Tenantid": parseInt(tenantid), + // "Orderstatus": "cancelled", + // "Currentdatetime": dayjs().format('YYYY-MM-DD HH:mm:ss'), + // "Cod": false, + // "Remarks": "", + orderheaderid: parseInt(orderheaderid), + // "orderdetailid":78, + // "shiftid":788, + orderstatus: 'cancelled', + cancelled: dayjs().format('YYYY-MM-DD HH:mm:ss'), + unserviceable: invoiceeligible ? 0 : 1 + }) + .then((res) => { + console.log(res); + if (res.data.status) { + if (orderheaderid && tenantid) { + // fetchorderdetails(); + fetchorderaddons(); + fetchorderattires(); + } + } + }) + .catch((err) => { + console.log(err); + }); + }; + + const unassign = async (val) => { + let obj = { + orderheaderid: orderheaderid, + orderprocessid: val.orderprocessid, + orderdetailid: val.orderdetailid, + orderstatus: 'pending', + pending: dayjs().format('YYYY-MM-DD HH:mm:ss'), + // processing:0, + // cancelled:0, + // completed:0, + // accepted:0, + status: 1 + }; + console.log(obj); + + await axios + .put(`${process.env.REACT_APP_URL2}/orders/updateprocessstatus`, obj) + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + // if (orderheaderid && tenantid) { + enqueueSnackbar('Role unassigned successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + if (currentshiftobj.assigned > currentshiftobj.shifts) { + sendunassignnotification(val); + } + + fetchorderaddons(); + fetchorderattires(); + setOpen(false); + fetchassignedcount(); + dialogclose(); + setTimeout(() => { + fetchassignedcount(); + }, 2000); + } + }) + .catch((err) => { + console.log(err); + }); + }; + + const sendunassignnotification = (val) => { + console.log(val); + let data2; + let tokenarr = [val.userfcmtoken]; + let arr1 = [ + { + notificationid: 0, + notificationdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + Title: 'Staff Un-Asigned', + message: `${val.firstname} has been Un-assigned to the order ${orderid}`, + configid: 2, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderprocessid: val.orderprocessid, + shiftid: val.shiftid, + userid: val.userid, + orderid: orderid, + success: 0, + orderstatus: 'assigned', + processing: dayjs().format('YYYY-MM-DD HH:mm:ss'), + notifytype: 2, + notifyreason: 'Staff Un-Assigned' + // "sound": "ring", + // "click_action": "FLUTTER_NOTIFICATION_CLICK", + // "firstname": val.firstname + } + ]; + + data2 = { + Title: 'Staff Un-Asigned', + message: `A Staff has been Un-assigned to the order ${orderid}`, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderid: orderid, + configid: 2 + // "click_action": "FLUTTER_NOTIFICATION_CLICK" + }; + let fcmmodel = { + priority: 'high', + registration_ids: tokenarr, + data: data2, + notification: { + body: `An order has been Un-assigned ${orderid}`, + title: 'Legendary', + sound: 'ring', + content_available: true, + click_action: 'FLUTTER_NOTIFICATION_CLICK' + } + }; + let grpnotifyobj = { + notifications: arr1, + fcmmodel: fcmmodel + }; + console.log('grpnotifyobj unassign'); + console.log(grpnotifyobj); + sendgroupnotification(grpnotifyobj); + }; + + useEffect(() => { + console.log(orderheaderid); + if (orderheaderid && tenantid) { + // fetchorderdetails(); + fetchorderaddons(); + fetchorderattires(); + fetchassignedcount(); + // fetchuserdetails(); + console.log(location.state || ''); + // setOrderid(location.state.orderid || ''); + // setEventlocation(location.state.eventlocation || ''); + // setEventlocation(address || []); + + // setOrderdate(dayjs(location.state.orderdate.substring(0, 10)).format('MM/DD/YYYY') || ''); + // setDuedate(dayjs(location.state.orderdate.substring(0, 10)).format('MM/DD/YYYY') || '') + // setEventname(location.state.eventname || ''); + // setClientname(location.state.tenantname || '') + } else { + setLoading(false); + } + // fetchorderdetails(); + console.log(orderheaderid, tenantid); + }, [orderheaderid, tenantid, assignedpendingcount]); + + const handleClose = () => { + setOpen(false); + }; + const dialogclose = () => { + setDialogopen(false); + setStaffarr([]); + setExpandopen(['', '']); + }; + useEffect(() => { + console.log(currentshiftobj); + }); + + const assignok = async () => { + let arr = []; + let arr1 = []; + staffarr.map((val) => { + arr.push({ + orderprocessid: 0, + // "processdate": `${dayjs(new Date()).format('YYYY-MM-DD')} ${dayjs(new Date()).format('HH:mm:ss')}`, //current date + processdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), //current date + tenantid: tenantid, + orderheaderid: orderheaderid, + orderdetailid: val.orderdetailid, //// + productid: val.productid, ///// + userid: val.userid, + orderstatus: 'pending', + pending: `${dayjs(pendingtime).format('YYYY-MM-DD')} ${dayjs(pendingtime).format('HH:mm:ss')}`, // if pending + starttime: `${dayjs(starttime).format('YYYY-MM-DD')} ${dayjs(starttime).format('HH:mm:ss')}`, + endtime: `${dayjs(endtime).format('YYYY-MM-DD')} ${dayjs(endtime).format('HH:mm:ss')}`, + appuserid: parseInt(localStorage.getItem('appuserid')), //loginuserid + shiftid: val.shiftid, + userrate: val.userrate, + productrate: val.productrate + }); + + staffarr.map((val) => { + arr1.push({ + notificationid: 0, + notificationdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + Title: 'Staff Asigned', + message: `A Staff has been assigned to the order ${orderid}`, + configid: 2, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderprocessid: 0, + shiftid: val.shiftid, + userid: val.userid, + orderid: orderid, + sound: 'ring', + click_action: 'FLUTTER_NOTIFICATION_CLICK', + firstname: val.firstname + }); + }); + }); + console.log('arr'); + console.log(arr); + + await axios + .post(`${process.env.REACT_APP_URL2}/orders/createorderprocess`, arr) + .then((res) => { + console.log(res); + if (res.data.message === 'Successfully created') { + // if (orderheaderid && tenantid) { + // fetchorderdetails(); + // fetchorderaddons(); + // fetchorderattires(); + // } + + enqueueSnackbar('Roles assigned successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + // fetchroleslist(productid, '', '', orderheaderid, arr1[0].shiftid); + console.log(productid, '', '', orderheaderid, arr1[0].shiftid); + + // arr1.map((val2) => { + // notificationpush(val2,val2.Title); + // }) + setDialogopen(false); + fetchorderattires(); + fetchassignedcount(); + } + }) + .catch((err) => { + console.log(err); + }); + console.log(arr); + }; + + const notificationpush = async (val) => { + let fcmtoken = val.userfcmtoken; + let obj1 = { + notificationid: 0, + notificationdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + Title: 'Staff Asigned', + message: `A Staff has been assigned to the order ${orderid}`, + configid: 2, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderprocessid: val.orderprocessid, + shiftid: val.shiftid, + userid: val.userid, + orderid: orderid, + sound: 'ring', + click_action: 'FLUTTER_NOTIFICATION_CLICK' + // "firstname": val.firstname + }; + console.log(obj1, fcmtoken); + await axios + .post( + `${process.env.REACT_APP_URL2}/utils/notification/send`, + { + priority: 'high', + registration_ids: [fcmtoken], + data: obj1, + notification: { + body: `A Staff has been assigned to ${orderid}`, + title: 'Legendary', + sound: 'ring', + content_available: true + } + }, + { + headers: { + Authorization: `Bearer ${process.env.REACT_APP_STAFF_TOKEN}` + } + } + ) + .then((res) => { + console.log(res); + // if(res.data.status){ + enqueueSnackbar('Notification sent successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + // } + }) + .catch((err) => { + console.log(err); + }); + }; + + const fetchassignedstaffs = async () => { + // console.log(obj1) + await axios + .get(`${process.env.REACT_APP_URL2}/orders/getnotificationusers?orderheaderid=${orderheaderid}`) + .then((res) => { + if (res.data.status) { + let arr1 = []; + let data2; + let tokenarr = []; + console.log(res); + + res.data.details.map((val) => { + arr1.push({ + notificationid: 0, + notificationdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + Title: 'Staff Asigned', + message: `${val.staffname} has been assigned to the order ${orderid}`, + configid: 2, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderprocessid: val.orderprocessid, + shiftid: val.shiftid, + userid: val.userid, + orderid: orderid, + success: 0, + orderstatus: 'assigned', + processing: dayjs().format('YYYY-MM-DD HH:mm:ss'), + notifytype: 1, + notifyreason: 'Staff Assigned' + // "sound": "ring", + // "click_action": "FLUTTER_NOTIFICATION_CLICK", + // "firstname": val.firstname + }); + tokenarr.push(val.userfcmtoken); + }); + + data2 = { + Title: 'Staff Asigned', + message: `A Staff has been assigned to the order ${orderid}`, + tenantid: tenantid, + orderheaderid: orderheaderid, + orderid: orderid, + configid: 2 + // "click_action": "FLUTTER_NOTIFICATION_CLICK" + }; + let fcmmodel = { + priority: 'high', + registration_ids: tokenarr, + data: data2, + notification: { + body: `An order has been assigned ${orderid}`, + title: 'Legendary', + sound: 'ring', + content_available: true, + click_action: 'FLUTTER_NOTIFICATION_CLICK' + } + }; + let grpnotifyobj = { + notifications: arr1, + fcmmodel: fcmmodel + }; + console.log('grpnotifyobj'); + console.log(grpnotifyobj); + sendgroupnotification(grpnotifyobj); + // notificationpush(obj2, val.userfcmtoken); + // notificationpush(arr1,tokenarr); + // enqueueSnackbar('Notifications sent successfully', { + // variant: 'success', anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // autoHideDuration: 2000 + // }) + } + }) + .catch((err) => { + console.log(err); + }); + }; + + const sendgroupnotification = async (obj1) => { + console.log(obj1); + await axios + .post(`${process.env.REACT_APP_URL2}/utils/notification/sendall`, obj1, { + headers: { + Authorization: `Bearer ${process.env.REACT_APP_STAFF_TOKEN}` + } + }) + .then((res) => { + console.log(res); + if (res.data.status) { + // updateorderstatus(); + enqueueSnackbar('Notification sent successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + fetchorderaddons(); + } + }) + .catch((err) => { + console.log(err); + }); + }; + + // const updateorderstatus = async () => { + + // await axios.put(`${process.env.REACT_APP_URL2}/orders/updateorderstatus`,{ + // "orderheaderid":orderheaderid, + // "tenantid":tenantid, + // "orderstatus":"processing", + // "pending":"", + // "processing":dayjs().format('YYYY-MM-DD HH:mm:ss'), + // "completed":"" + // }) + // .then((res) => { + // console.log(res) + // fetchorderdetails(); + // fetchorderaddons(); + // fetchorderattires(); + + // }) + // .catch((err) => { + // console.log(err) + // fetchorderdetails(); + // fetchorderaddons(); + // fetchorderattires(); + // }) + + // } + + const fetchassignedcount = async () => { + // console.log(obj1) + await axios + .get(`${process.env.REACT_APP_URL2}/orders/getorderstatuscount?orderheaderid=${orderheaderid}`) + .then((res) => { + if (res.data.status) { + // let arr1=[]; + console.log(res); + setAssignedpendingcount(res.data.pendingcount); + fetchorderaddons(); + // res.data.details.map((val) => { + // let val2={ + // "notificationid": 0, + // "notificationdate": dayjs().format('YYYY-MM-DD HH:mm:ss'), + // "Title": "Staff Asigned", + // "message": `A Staff has been assigned to the order ${orderid}`, + // "configid": 2, + // "tenantid": tenantid, + // "orderheaderid": orderheaderid, + // "orderprocessid": val.orderprocessid, + // "shiftid": val.shiftid, + // "userid": val.userid, + // "orderid": orderid, + // "sound": "ring", + // "click_action": "FLUTTER_NOTIFICATION_CLICK", + // // "firstname": val.firstname + + // }; + + // notificationpush(val2,val.userfcmtoken); + + // }) + } else { + setAssignedpendingcount(res.data.pendingcount); + fetchorderaddons(); + } + }) + .catch((err) => { + console.log(err); + }); + }; + + function AlertCustomerDelete({ + // title, + open, + handleClose + }) { + const [deletepassword, setDeletepassword] = useState(''); + + return ( + handleClose(false)} maxWidth="xs"> + + + + + + + + + + {/* + Are you sure you want to cancel this order? + */} + {invoiceeligible && ( + }> + Order is within 24Hrs time frame. The order will be invoiced with standard pricing as agreed. + {/* This is an warning alert. */} + + Terms & Condition link + + + )} + + Please type in the order number to confirm. + + { + console.log(e.target.value); + setDeletepassword(e.target.value); + }} + error={deletepassword !== orderid.slice(4)} + // error={true} + value={deletepassword} + /> + + + + + + + + + + ); + } + + return ( + <> + {loading && } + + + + + + + + Assign Roles + + + + + + + + {/* */} + setTabstatus((e) => (e === 0 ? 1 : 0))} + variant="scrollable" + scrollButtons="auto" + > + {/* */} + + + + + + + + + + + + + {/* title */} + + {/* + + + + + setTabstatus((e) => (e === 0) ? 1 : 0)} + variant="scrollable" scrollButtons="auto" > + + + + + + + + + + + + + + */} + + {/* */} + {/* */} + {stafflist.length === 0 ? ( + <> + {loading ? ( + <> + + + + + ) : ( + No Staffs Available + )} + + ) : ( + + + + + # + Staff + + Category + + {/* Gender */} + + Price + + Experience + + Level + City + Action + + + + + {stafflist.map((val, i) => { + return ( + + res.userid == val.userid) ? '#f5f5f5' : '', + ':hover': { + backgroundColor: staffarr.find((res) => res.userid == val.userid) ? '#f5f5f5 !important' : '' + } + }} + > + + {i + 1} + + + + + {/* {row.tenantname.charAt(0)} */} + + + {val.firstname} + + {val.contactno} + + + + + + {/* + {val.contactno} + + some demo address + + */} + + + {val.cateoryname} + + + {/* {row.category} */} + + + {val.rolecost} + {/* */} + {/* {(row.gender === 1) && } */} + {/* {row.gender === 0 && } */} + {/* */} + {/* */} + {/* B+ */} + {/* {row.devicetype} */} + {val.experience} Years + + + + {val.city} + + {val.orderdetailid !== orderdetailid ? ( + <> + res.userid == val.userid) ? true : false} + onClick={(e) => { + console.log(currentshiftobj); + if (currentshiftobj.remaining >= 0) { + if (e.target.checked && currentshiftobj.remaining != 0) { + let arr = staffarr; + arr.push({ + userid: val.userid, + orderdetailid, + productid, + shiftid: currentshiftobj.shiftid, + userrate: currentshiftobj.price, + productrate: val.rolecost, + firstname: val.firstname + }); + setStaffarr([...arr]); + let obj = currentshiftobj; + // obj.shifts--; + // obj.assigned = arr.length; + obj.assigned++; + obj.remaining = obj.shifts - obj.assigned; + setCurrentshiftobj({ ...obj }); + } else if ( + currentshiftobj.assigned != currentshiftobj.shifts || + (currentshiftobj.remaining === 0 && !e.target.checked) + ) { + let arr = staffarr; + // let index = arr.indexOf(val.userid) + let index = arr.findIndex((val1) => val1.userid === val.userid); + arr.splice(index, 1); + setStaffarr([...arr]); + let obj = currentshiftobj; + // obj.shifts++; + // obj.assigned = arr.length; + obj.assigned--; + obj.remaining = obj.shifts - obj.assigned; + setCurrentshiftobj({ ...obj }); + } + // forceUpdate(); + console.log(staffarr); + } + }} + /> + + ) : ( + <> + + + {/* */} + + { + console.log(val); + unassign(val); + // sendunassignnotification(val) + }} + > + {/* */} + + + + + { + console.log(val); + // unassign(val) + notificationpush(val); + }} + > + {/* */} + + + + + )} + + + {val.orderid && ( + <> + + + )} + + + + ); + })} + +
    +
    + )} +
    + + + {stafflist.length > 0 && ( + <> + + OK + + { + // dialogclose(); + setStaffarr([]); + let obj = currentshiftobj; + // obj.shifts = row.orderqty; + obj.remaining = obj.shifts; + obj.assigned = 0; + + setCurrentshiftobj(obj); + }} + > + clear + + + )} + { + dialogclose(); + }} + > + Close + + + + {/* */} + {/* */} +
    + + + {/* + + + + + + */} + {/* */} + {/* + Details + */} + + + + + + history.back()} + // onClick={()=>} + > + + + {/* Test me */} + + Details + + {/* */} + : orderid} + variant="combined" + color="warning" + size="small" + /> + {/* Date */} + {/* {orderdate} */} + : orderdate} + variant="combined" + color="primary" + size="small" + /> + + {orderstatus === 'pending' && } + {orderstatus === 'cancelled' && } + {orderstatus === 'completed' && } + {orderstatus === 'processing' && } + {orderstatus === 'assigned' && } + {orderstatus === 'confirmed' && } + + {orderstatus === 'active' && } + {orderstatus === 'closed' && } + + {orderstatus === 'modified' && } + + + + + + {/* {dayjs(startdate).$d.toString()} */} + {/* {startdate} */} + {/* {dayjs().$d.toString()} */} + + {(orderstatus === 'pending' || orderstatus === 'assigned' || orderstatus === 'confirmed' || orderstatus === 'modified') && ( + // && (dayjs(startdate).$d > dayjs().$d) + + } + onClick={(e) => { + e.stopPropagation(); + // if (dayjs(startdate).$d > dayjs().$d) { + if (dayjs(dayjs().format('MM-DD-YYYY')).isBefore(dayjs(dayjs(startdate).format('MM-DD-YYYY')))) { + navigate(`/editorder`, { + state: { + orderheaderid: orderheaderid, + tenantid: tenantid + } + }); + } else { + enqueueSnackbar( + 'Order cannot be edited.\n Order date is not valid at this time', + + { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 4000, + style: { whiteSpace: 'pre-line' } + } + ); + } + }} + > + Edit Order + + + )} + + {/* {(((orderstatus === 'pending') + || (orderstatus === 'modified')) + && assignedpendingcount === 0) && + <> + } + onClick={() => { + fetchassignedstaffs(); + }} + > + Notify Staff + + + } */} + {orderstatus !== 'cancelled' && orderstatus !== '' && orderstatus !== 'completed' && orderstatus !== 'closed' && ( + <> + { + console.log(dayjs(startdate).diff(dayjs(), 'm') / 60); + if (dayjs(startdate).diff(dayjs(), 'm') / 60 > 24) { + setInvoiceeligible(false); + setOpen(true); + } else { + setInvoiceeligible(true); + setOpen(true); + } + }} + sx={{ borderRadius: '40px', mt: { xs: 2, sm: 0 } }} + startIcon={} + > + Cancel Order + + + )} + {orderstatus === 'cancelled' && ( + <> + + + )} + {/* {(orderstatus === 'completed') && + + } */} + + + + + + {/* Dialog window */} + + + + {/*

    {(dayjs().isBefore(dayjs(startdate)))?'true':'false'}

    */} + + {/* */} + {/* */} + {/* */} + {/* + + BEO + + + + */} + {/* */} + + {/* + + Due Date + + {duedate} + */} + {/* + */} + {/* */} + {/* */} + + + + + Client + + {clientname === '' ? : clientname} + + + {/* {eventlocation.map((val, i) => { + return {val} + }) + + } + {eventlocation} + fafdf + dafaf + afdafafd */} + + {tenantaddress === '' ? : tenantaddress} + + + + + + + + + + Event + + + {eventname === '' ? : eventname} + + {/* + {(eventlocation === '') ? : eventlocation} + + : venuetype} color="primary" variant="light" size="small" sx={{ width: 'max-content' }} /> + */} + + + + + + {categoryarr.map((val5, j) => { + return ( + + + + + + Shift {j + 1} + + + {''} + {val5.locationaddress} + + {val5.shiftstatus === 1 && } + + + {val5.ordercontacts.map((val11) => { + return ( + <> + + + {val11.contactname.charAt(0).toUpperCase()} + + + + ); + })} + + + + + + + # + Role + Start Date + End Date + Unpaid break + Count + Assigned + Attire + Price + {/* Tax */} + Amount + Action + + + + {val5.orderdetails.length === 0 && ( + <> + + + + + + + + + + + + + + + + + + {/* */} + + + + + + + + + + + + + + + + + + + + {/* + + + */} + + {/* */} + + )} + + {/* */} + {val5.orderdetails.map((row, i) => ( + <> + + {i + 1} + {row.productname} + {/* {row.productname} + */} + + + {dayjs(row.starttime).format('MM/DD/YYYY')} + {dayjs(row.starttime).format('hh:mm A')} + + + + {' '} + + {dayjs(row.endtime).format('MM/DD/YYYY')} + {dayjs(row.endtime).format('hh:mm A')} + + + {row.unpaidbreak || 0} + + + + + + + + {/* < Grid container spacing={1}> + {(row.orderattires || []).map((val) => { + return + + + + + }) + + + } + */} + + ${row.price} + {/* {row.taxamount} */} + ${row.landingamount} + + + + { + setStafflist([]); + setExpandopen(expandopen[0] === j && expandopen[1] === i ? ['', ''] : [j, i]); + // expanddatafetch(row.orderheaderid); + + // fetchroleslist(row.productid, '', '', val5.orderheaderid, row.shiftid); + fetchstafflist(row.orderdetailid); + }} + > + {expandopen[0] === j && expandopen[1] === i ? : } + + + + {/* {(orderstatus !== 'cancelled') && + <> + + { + setExpandopen(['', '']) + setCurrentrole(row.productname); + setStarttime(row.starttime); + console.log('row') + + console.log(row) + setEndtime(row.endtime); + setProductid(row.productid); + setOrderdetailid(row.orderdetailid); + if ((row.orderqty === row.supplyqty) + || (row.status == 1) + || (val5.shiftstatus == 1) + + ) { + fetchroleslist(row.productid, '', '', val5.orderheaderid, row.shiftid); + + } else { + fetchroleslist(row.productid, row.starttime, row.endtime, val5.orderheaderid, row.shiftid); + + } + + setStaffarr([]); + + + let obj = currentshiftobj; + obj.shifts = row.orderqty; + + obj.shiftid = row.shiftid; + obj.remaining = row.orderqty - row.supplyqty; + obj.assigned = row.supplyqty; + obj.price = row.price; + + setCurrentshiftobj(obj); + + setDialogopen(true); + }} > + + + + + } */} + {orderstatus === 'cancelled' && ( + <> + + + + + )} + + {row.status === 1 && ( + + + + + + )} + {row.supplyqty > row.orderqty && ( + + + + + + )} + + + + + + + {/* */} + + + {stafflist.length === 0 ? ( + <> + {loading ? ( + <> + + + + + ) : ( + <> + + No Staffs has been Assigned + + + )} + + ) : ( + +
    + + + # + Staff + Start Time + End Time + Pay Rate + + {/* Category */} + Clockin + Clockout + + Hours Worked + + {/* Experience */} + + {/* Level */} + {/* City */} + Status + + + + {stafflist.map((val, i) => { + return ( + + res.userid == val.userid)) ? '#f5f5f5' : '', ':hover': { + // backgroundColor: (staffarr.find((res) => res.userid == val.userid)) ? '#f5f5f5 !important' : '' + // } + } + } + > + + {i + 1} + + {/* + + + + + + {val.staffname} + + + + + */} + + + {val.staffname} + + + + + + + + + {dayjs(val.Starttime).format('MM/DD/YYYY')} + + + {dayjs(val.Starttime).format('hh:mm A')} + + + + + + + {dayjs(val.Endtime).format('MM/DD/YYYY')} + + + {dayjs(val.Endtime).format('hh:mm A')} + + + + {val.rolecost} + + {/* + + {val.cateoryname} + + + + */} + + + + {/* Clock In: */} + {/* Age */} + + + + + + + {/* Clock In: */} + {/* Age */} + + + + + {val.hoursworked} + + {/* + + + + + + + + + {val.tenantname} + + + + + + {val.orderid} + + + {dayjs(val.startdate).utc().format('MM/DD/YYYY')} + + + + + + {val.eventname} + + {`${val.locationaddress.slice(0, 15)}...`} + + + */} + + + + {val.orderstatus === 'pending' && ( + + )} + {val.orderstatus === 'cancelled' && ( + + )} + {val.orderstatus === 'completed' && ( + + )} + {val.orderstatus === 'processing' && ( + + )} + {val.orderstatus === 'assigned' && ( + + )} + {val.orderstatus === 'confirmed' && ( + + )} + + {val.orderstatus === 'active' && ( + + )} + {val.orderstatus === 'closed' && ( + + )} + + + + + ); + })} + +
    +
    + )} +
    + + + + + ))} + + + +
    +
    + + ); + })} + + + + + + + {/* */} + {/* Order Addons + */} + + {(orderaddons || []).map((val) => { + return ( + + + } variant="outlined" color="error" label={val.addon} /> + + + ); + })} + {/* + } variant='outlined' color="error" label="Parking Provided" /> + + + } variant='outlined' color="error" label="Meal Provided" /> + */} + {/* + } color="error" label="Like" /> + + + } color="error" label="Like" /> + + + } color="error" label="Like" /> + */} + + {/* */} + + + {/* */} + + {/* */} + + + + Sub Total: + ${subtotal === '' ? : subtotal} + + {/* + Discount: + + 0 + + */} + + Tax: + {taxamount === '' ? : taxamount} + + + Grand Total: + + {grandtotal === '' ? : `$${grandtotal}`} + + + + + {/* */} + + + + Other Instructions: + {otherinstructions} + + + {/* + + */} +
    + + + {/* */} + + {/* */} + + + ); +}; + +export default Details; diff --git a/src/pages/nearle/orders/multipleOrders.js b/src/pages/nearle/orders/multipleOrders.js new file mode 100644 index 0000000..5c4a0cc --- /dev/null +++ b/src/pages/nearle/orders/multipleOrders.js @@ -0,0 +1,1728 @@ +import React from 'react'; +import Loader from 'components/Loader'; +import { useEffect, useState, Fragment, useRef } from 'react'; +import { useTheme } from '@mui/material/styles'; +import MainCard from 'components/MainCard'; +import axios from 'axios'; +import ClearIcon from '@mui/icons-material/Clear'; +import { SearchOutlined, CloseOutlined, ExclamationCircleOutlined, FileAddOutlined } from '@ant-design/icons'; +import { Empty } from 'antd'; +import MyLocationIcon from '@mui/icons-material/MyLocation'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { enqueueSnackbar } from 'notistack'; +import { useNavigate } from 'react-router'; +import Papa from 'papaparse'; +import * as XLSX from 'xlsx'; + +import { + FormControl, + InputAdornment, + Grid, + Typography, + Stack, + Box, + Button, + TextField, + Autocomplete, + Chip, + Divider, + Dialog, + DialogTitle, + DialogContent, + Checkbox, + DialogActions, + CircularProgress, + IconButton, + OutlinedInput, + FormGroup, + FormControlLabel, + Table, + TableContainer, + TableCell, + TableBody, + TableRow, + Paper, + TableHead, + FormLabel, + RadioGroup, + Radio, + Backdrop, + List, + ListItem, + ListItemText +} from '@mui/material'; +import CircularLoader from 'components/CircularLoader'; + +const MultipleOrders = () => { + const navigate = useNavigate(); + const theme = useTheme(); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const userid = localStorage.getItem('userid'); + const [locations, setLocations] = useState([]); + const [tenantlist, setTenantlist] = useState([]); + const [loading, setLoading] = useState(false); + const [btnLoading, setBtnLoading] = useState(false); + const [appId, setAppId] = useState(0); + const [tenantLocations, setTenantlocations] = useState([]); + const [tenantid, setTenantid] = useState(0); + const [locationid, setLocationid] = useState(0); + const [basePrice, setBasePrice] = useState(0); + const [pricePerKm, setPricePerKm] = useState(0); + const [minKm, setMinKm] = useState(0); + const [pickCust, setPickCust] = useState(null); + const [dropCust, setDropCust] = useState([]); + const [isCustomerOpen, setIsCustomerOpen] = useState(false); + const [searchCustList, setSearchCustList] = useState(''); + const [customerlist, setCustomerlist] = useState([]); + const [startdate, setStartdate] = useState(dayjs().format('MM-DD-YYYY')); + const [timeslotarr, setTimeslotarr] = useState([]); + const [starttime, setStatrttime] = useState(); + const [endtime, setEndtime] = useState(); + const [selectedtime, setSelectedtime] = useState(''); + const [alertmessage, setAlertmessage] = useState(''); + const [otherinstructions, setOtherinstructions] = useState(''); + const [admintoken, setAdmintoken] = useState(); + const [totaldist, settotaldist] = useState(0); + const [totalAmt, settotalAmt] = useState(0); + const [totalQty, settotalQty] = useState(0); + const [totalCash, settotalCash] = useState(0); + const [users, setUsers] = useState([]); + const [uploadType, setUploadType] = useState(null); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [pickupSlotsList, setPickupSlotsList] = useState(null); + const [pickupSlot, setPickupSlot] = useState(null); + + // to clear the tenant and location autocomplete + useEffect(() => { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + }, [appId]); + // to clear the location autocomplete + useEffect(() => { + setLocationid(0); + setLocationValue(null); + }, [tenantid]); + + useEffect(() => { + if (timeslotarr[0]) { + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } + }, [timeslotarr]); + + // =============================================== || opentoast || =============================================== + const opentoast = (message, variant, time) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time ? time : 1500 + }); + console.log(alertmessage); + }; + + // 🔹 Smart toast wrapper — prevents duplicate toasts for same message within 3 seconds + let toastCache = {}; + const OpenToast = (message, type = 'info', timeout = 10000) => { + const key = `${type}-${message}`; + if (toastCache[key]) return; // skip duplicates + opentoast(message, type, timeout); // your existing toast/snackbar + toastCache[key] = true; + setTimeout(() => delete toastCache[key], 3000); // reset after delay + }; + + // ==============================|| fetchAppLocations ||============================== // + + const fetchAppLocations = async () => { + setLoading(true); + + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + console.log('fetchAppLocations', locationRes.data.details); + setLocations(locationRes.data.details); + } catch (err) { + console.log('locationRes', err); + OpenToast(err.message, 'error', 5000); + } finally { + setLoading(false); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + // ===================================================== || fetchtenantinfolist || ===================================================== + + const fetchtenantinfolist = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${appId}&status=active`) + + .then((res) => { + console.log(res); + if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + setTenantlist(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + appId && fetchtenantinfolist(); + }, [appId]); + // ============================================= || fetchTenantPricing || ============================================= + + const fetchTenantPricing = async (id) => { + try { + const pricingResponse = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${id}`); + console.log('pricingResponse', pricingResponse.data.details); + setBasePrice(pricingResponse.data.details.baseprice); + setPricePerKm(pricingResponse.data.details.priceperkm); + setMinKm(pricingResponse.data.details.minkm); + } catch (error) { + console.log('fetchTenantPricing error', error); + } + }; + // ============================================= || gettenantlocations (branches) || ============================================= + const gettenantlocations = async (id) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); + console.log('gettenantlocations', res.data.details); + if (res.data.details.length == 1) { + setTenantlocations(res.data.details); + setPickCust(res.data.details[0]); + setLocationid(res.data.details[0].locationid); + setLocationValue(res.data.details[0].locationid); + setPickupSlotsList(res.data.details[0].slots); + } else { + setTenantlocations(res.data.details); + } + } catch (err) { + console.log('gettenantlocations', err); + } + }; + // ========================================================= || clientdetails || ========================================================= + const clientdetails = async () => { + try { + let url = + searchCustList == '' + ? `${process.env.REACT_APP_URL}/customers/gettenantcustomers/?tenantid=${tenantid}&pageno=1&pagesize=30` + : `${process.env.REACT_APP_URL}/customers/search/?tenantid=${tenantid}&keyword=${searchCustList}`; + await axios + .get(url) + .then((res) => { + if (res.data.status) { + console.log('clientdetails', res.data.details); + + setCustomerlist(res.data.details); + let arr = []; + res.data.details.map((val) => { + arr.push({ + label: `${val.firstname} | ${val.contactno}`, + ...val + }); + }); + } + }) + .catch((err) => { + console.log(err); + opentoast('server error', 'warning'); + }); + } catch (err) { + console.log(err); + } + }; + useEffect(() => { + if (tenantid) { + clientdetails(); + } + }, [searchCustList.length > 3, searchCustList == '', tenantid]); + + // ========================================================= || calculateTotal(dist , charge) || ========================================================= + const calculateTotal = () => { + let a1 = 0; + let a2 = 0; + let a3 = 0; + let a4 = 0; + dropCust.map((customer) => { + a1 += customer.distance; + a2 += customer.totalcharge; + a3 += customer.quantity; + a4 += customer.collectionamt; + }); + settotaldist(a1); + settotalAmt(a2); + settotalQty(a3); + settotalCash(a4); + }; + useEffect(() => { + calculateTotal(); + }, [dropCust]); + + // ========================================================= || handleCheckboxChange || ========================================================= + const handleCheckboxChange = async (event, customer) => { + setLoading(true); + if (event.target.checked) { + // If the checkbox is checked, calculate the distance and add the customer + try { + const obj = await calculateDistance(customer); + const { roundedDistance, totalcharge } = obj; + // Create a new customer object with the distance property + const updatedCustomer = { + ...customer, + distance: roundedDistance, + totalcharge: totalcharge + }; + + // Add the updated customer object to dropCust + setDropCust((prevDropCust) => [...prevDropCust, updatedCustomer]); + + // Log the rounded distance + // console.log(`Rounded Distance: ${roundedDistance} km`); + } catch (error) { + console.error('Failed to calculate distance:', error); + } finally { + setLoading(false); + } + } else { + // If the checkbox is unchecked, remove the customer from dropCust + setDropCust((prevDropCust) => { + return prevDropCust.filter((cust) => cust.customerid !== customer.customerid); + }); + setLoading(false); + } + }; + // ========================================================= || handleCheckboxChange1 || ========================================================= + // const handleCheckboxChange1 = async (customer) => { + // console.log('customer', customer); + // setLoading(true); + // try { + // const obj = await calculateDistance(customer); + // const { roundedDistance, totalcharge } = obj; + // // Create a new customer object with the distance property + // const updatedCustomer = { + // ...customer, + // distance: roundedDistance, + // totalcharge: totalcharge + // }; + + // // Add the updated customer object to dropCust + // setDropCust((prevDropCust) => [...prevDropCust, updatedCustomer]); + + // // Log the rounded distance + // console.log(`Rounded Distance: ${roundedDistance} km`); + // setLoading(false); + // } catch (error) { + // console.error('Failed to calculate distance:', error); + // } + // }; + const handleCheckboxChange1 = async (customer) => { + console.log('customer', customer); + + setLoading(true); + + try { + setDropCust((prevDropCust) => { + const isAlreadySelected = prevDropCust.some((c) => c.firstname === customer.firstname); + + // 🔴 REMOVE if already exists + if (isAlreadySelected) { + return prevDropCust.filter((c) => c.firstname !== customer.firstname); + } + + // 🟢 ADD if not exists (calculate distance) + return prevDropCust; + }); + + // Only calculate distance if customer is not already added + const alreadyExists = dropCust.some((c) => c.firstname === customer.firstname); + + if (!alreadyExists) { + const obj = await calculateDistance(customer); + const { roundedDistance, totalcharge } = obj; + + const updatedCustomer = { + ...customer, + distance: roundedDistance, + totalcharge + }; + + setDropCust((prevDropCust) => [...prevDropCust, updatedCustomer]); + + console.log(`Rounded Distance: ${roundedDistance} km`); + } + } catch (error) { + console.error('Failed to calculate distance:', error); + } finally { + setLoading(false); + } + }; + + // ========================================================= || calculateDistance || ========================================================= + + // 🔹 Main distance calculation function + const calculateDistance = async (customer) => { + const service = new google.maps.DistanceMatrixService(); + + // Helper: safely get distance matrix + const getDistanceMatrix = (origins, destinations) => { + return new Promise((resolve, reject) => { + // 2; + try { + if (!origins || !destinations) { + return reject(new Error('Origin or destination data missing.')); + } + service.getDistanceMatrix( + { + origins: [new google.maps.LatLng(origins.latitude, origins.longitude)], + destinations: [new google.maps.LatLng(destinations.latitude, destinations.longitude)], + travelMode: 'DRIVING', + unitSystem: google.maps.UnitSystem.METRIC + }, + (response, status) => { + if (status === 'OK') { + resolve(response); + } else { + reject(new Error(`Google API error: ${status}`)); + } + } + ); + } catch (err) { + reject(new Error(`Unexpected error inside DistanceMatrixService: ${err.message}`)); + } + }); + }; + + try { + // --- Input validation --- + if (!customer || typeof customer !== 'object') { + throw new Error('Invalid customer data: expected an object.'); + } + + if (!pickCust || typeof pickCust !== 'object') { + throw new Error('Origin (pickCust) data missing or invalid.'); + } + + // --- Call Google Maps API --- + const response = await getDistanceMatrix(pickCust, customer); + + // --- Validate response structure --- + if (!response.rows?.[0]?.elements?.[0] || !response.rows[0].elements[0].distance?.value) { + throw new Error('Malformed Distance Matrix response: missing distance value.'); + } + // --- Compute distance --- + const distanceInMeters = response.rows[0].elements[0].distance.value; + const distanceInKilometers = distanceInMeters / 1000; + const roundedDistance = Math.round(distanceInKilometers); + + // --- Calculate total charge --- + let totalcharge; + if (roundedDistance < minKm) { + totalcharge = basePrice; + } else { + totalcharge = (roundedDistance - minKm) * pricePerKm + basePrice; + } + return { roundedDistance, totalcharge }; + } catch (error) { + // --- Categorized smart error handling --- + console.log('on calculateDistance', error.message); + if (error.message.includes('Google API')) { + console.log('🚨 Google Maps API Error:', error.message); + OpenToast('Invalid file format, upload valid file', 'error', 5000); + } else if (error.message.includes('Invalid coordinates')) { + console.log('📍 Invalid coordinate format:', error.message, 3000); + OpenToast('Invalid coordinate format. Check location data.', 'warning'), 3000; + } else if (error.message.includes('Malformed Distance Matrix')) { + console.log('⚠️ Unexpected Google response structure:', error.message); + OpenToast('Google Distance Matrix returned invalid data.', 'error', 3000); + } else if (error.message.includes('Origin') || error.message.includes('customer')) { + console.log('❌ Missing or invalid input data:', error.message); + OpenToast('Missing or invalid input data for distance calculation.', 'warning', 3000); + } else { + console.log('💥 Unexpected error calculating distance:', error); + OpenToast('Unexpected error during distance calculation.', 'error', 3000); + } + + throw error; // keeps your current flow intact + } + }; + + // ==================================================== || fetchTiming || ==================================================== + const fetchTiming = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) + .then((res) => { + console.log('fetchTiming', res); + const { opentime, closetime } = res.data.details[0]; + if (res.data.status) { + setStatrttime(`${dayjs().format('MM-DD-YYYY')} ${opentime}`); + setEndtime(`${dayjs().format('MM-DD-YYYY')} ${closetime}`); + console.log('starttime', `${dayjs().format('MM-DD-YYYY')} ${opentime}`); + console.log('endtime', `${dayjs().format('MM-DD-YYYY')} ${closetime} `); + let arr = []; + for ( + let i = `${dayjs().format('MM-DD-YYYY')} ${opentime}`, j = 0; + dayjs(`${dayjs().format('MM-DD-YYYY')} ${closetime} `).diff(i, 'm') >= 0; + j++, i = dayjs(i).add(30, 'm') + ) { + arr.push(i); + } + console.log('setTimeslotarr', arr); + setTimeslotarr(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (appId) { + fetchTiming(); + } + }, [appId]); + + const fetchAppAdminTokens = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocationconfig/?applocationid=${appId}`) + .then((res) => { + const userfcmtokemArray = res.data.details.applocationadmins.map((admin) => admin.userfcmtokem); // fcm => firebase cloud messaging + console.log('fetchAppAdminTokens', res); + console.log('userfcmtokemArray', userfcmtokemArray); + if (res.data.status) { + setAdmintoken(userfcmtokemArray); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (appId) { + fetchAppAdminTokens(); + } + }, [appId]); + + useEffect(() => { + console.log('pickCust', pickCust); + }, [pickCust]); + useEffect(() => { + console.log('dropCust', dropCust); + }, [dropCust]); + // ==================================================== || fetchtenantinfo || ==================================================== + const fetchtenantinfo = async () => { + setLoading(true); + console.log('tenantid', tenantid); + + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tenantid}`) + .then((res) => { + console.log('fetchtenantinfo', res); + if (res.data.status) { + setTenantid(res.data.details.tenantid); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (tenantid) { + fetchtenantinfo(); + } + }, [tenantid]); + // ================================================== || sendnotifications || ================================================== + const sendnotifications = async () => { + setLoading(true); + await axios + .post(`${process.env.REACT_APP_URL}/utils/sendnotifications`, { + priority: 'high', + registration_ids: admintoken, + data: { + accessid: process.env.REACT_APP_RIDER_ACCESS_ID + }, + notification: { + title: 'Nearle Merchant', + body: 'An Order has been placed successfully,kindly process the same', + sound: 'ring' + } + }) + .then((res) => { + console.log(res); + if (res.data.message == 'Success') { + enqueueSnackbar('Notification sent Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + setLoading(false); + }); + }; + + const cleanReceiverName = (name) => { + if (typeof name !== 'string') return name; + return name.replace(/^[\d.\s]+/, '').trim(); + }; + + const handleFileUpload = (event) => { + console.log('Normal upload started...'); + try { + const file = event.target.files?.[0]; + if (!file) { + opentoast('No file selected.', 'warning'); + return; + } + + const fileName = file.name.toLowerCase(); + const isCSV = fileName.endsWith('.csv'); + const isExcel = fileName.endsWith('.xls') || fileName.endsWith('.xlsx'); + + // Invalid file + if (!isCSV && !isExcel) { + opentoast('Invalid file type. Please upload a CSV or Excel file.', 'warning'); + return; + } + + // ---------------------- CSV ---------------------- + if (isCSV) { + Papa.parse(file, { + header: true, + dynamicTyping: true, + skipEmptyLines: true, + complete: (results) => { + const data = results.data || []; + if (data.length === 0) { + opentoast('CSV file is empty or invalid.', 'warning'); + setUsers([]); + return; + } + const cleanedData = data.map((row) => ({ + ...row, + firstname: cleanReceiverName(row.firstname) + })); + console.log('✅ Parsed CSV Data:', cleanedData); + setUsers(cleanedData); + opentoast('CSV file uploaded successfully, ✅', 'success', 3000); + opentoast(' Press Continue to add delivery customers', 'warning', 5000); + }, + error: (error) => { + console.error('❌ CSV Parse Error:', error.message); + opentoast(`CSV parsing failed: ${error.message}`, 'warning'); + } + }); + } + + // ---------------------- EXCEL (.xls / .xlsx) ---------------------- + if (isExcel) { + const reader = new FileReader(); + + reader.onload = (e) => { + try { + const data = e.target.result; + + // Use correct mode for binary Excel formats + const workbook = XLSX.read(data, { + type: 'binary', + cellDates: true, + cellNF: false, + cellText: false + }); + const firstSheet = workbook.SheetNames[0]; + const worksheet = workbook.Sheets[firstSheet]; + const jsonData = XLSX.utils.sheet_to_json(worksheet, { defval: '' }); + + if (!jsonData || jsonData.length === 0) { + opentoast('Excel file is empty or invalid.', 'warning'); + setUsers([]); + return; + } + + const cleanedData = jsonData.map((row) => ({ + ...row, + firstname: cleanReceiverName(row.firstname) + })); + + console.log('✅ Parsed Excel Data:', cleanedData); + setUsers(cleanedData); + opentoast('Excel file uploaded successfully ✅, press continue', 'success', 3000); + } catch (err) { + console.error('❌ Excel Parse Error:', err); + opentoast(`Error reading Excel: ${err.message}`, 'warning'); + } + }; + + // ✅ Key fix: use readAsBinaryString for both .xls & .xlsx + reader.readAsBinaryString(file); + } + } catch (err) { + console.error('Unexpected error during file upload:', err.message); + opentoast(`Unexpected error: ${err.message}`, 'warning'); + } + }; + + // your header mapping + const headerMap = { + 'pickupdate(yyyy-mmm-dd)': 'date', + 'sendername*': 'locationname', + 'senderphone*': 'locationcontact', + 'senderaddress*': 'locationaddress', + 'receivername*': 'firstname', + 'receiverphone*': 'contactno', + 'receiveralternatephone*': 'altcontactno', + receiverfulladdress: 'address', + receiverlatitude: 'latitude', + receiverlongitude: 'longitude', + 'itemdescription*': 'description', + Quantity: 'quantity', + ' Collect Cash': 'collectionamt' + }; + + // helper to normalize headers + const normalizeHeader = (header) => header?.toString().trim().toLowerCase().replace(/\s+/g, ''); + + const handleFileDirectUpload = (event) => { + try { + const file = event.target.files?.[0]; + if (!file) { + opentoast('No file selected.', 'warning'); + return; + } + + const fileName = file.name.toLowerCase(); + const isCSV = fileName.endsWith('.csv'); + const isExcel = fileName.endsWith('.xls') || fileName.endsWith('.xlsx'); + + if (!isCSV && !isExcel) { + opentoast('Invalid file type. Please upload a CSV or Excel file.', 'warning'); + return; + } + + const processData = (data, headers) => { + console.log('data', data); + const normalizedMap = {}; + for (const key in headerMap) { + normalizedMap[normalizeHeader(key)] = headerMap[key]; + } + console.log('normalizedMap', normalizedMap); + + const mappedData = data.map((row) => { + const newRow = {}; + for (const key in row) { + const cleanKey = normalizeHeader(key); + const newKey = normalizedMap[cleanKey] || cleanKey; + let value = row[key]; + if (newKey === 'firstname') value = cleanReceiverName(value); + + newRow[newKey] = value; + } + + return newRow; + }); + + const missingCols = Object.keys(headerMap).filter((clientCol) => !headers.includes(normalizeHeader(clientCol))); + + if (missingCols.length > 0) { + isExcel && opentoast(`Missing columns: ${missingCols.join(', ')}`, 'warning'); + } + + console.log('✅ Final Processed Data:', mappedData); + setUsers(mappedData); + opentoast('File uploaded and successfully ', 'success', 3000); + opentoast('Press Continue', 'warning', 3000); + }; + + // ============ CSV handler ============ + if (isCSV) { + Papa.parse(file, { + header: true, + dynamicTyping: true, + skipEmptyLines: true, + complete: (results) => { + if (!results.data?.length) { + opentoast('CSV file is empty or has no valid rows.', 'warning'); + setUsers([]); + return; + } + const headers = results.meta.fields.map(normalizeHeader); + processData(results.data, headers); + }, + error: (error) => { + console.error('❌ CSV Parsing Error:', error); + opentoast(`CSV parsing failed: ${error.message}`, 'warning'); + } + }); + } + + // ============ Excel handler ============ + if (isExcel) { + const reader = new FileReader(); + reader.onload = (e) => { + try { + const data = e.target.result; + // Try reading as binary first + let workbook; + try { + workbook = XLSX.read(data, { type: 'binary' }); + } catch { + // fallback for modern XLSX files + const arrayBuffer = new Uint8Array(data); + workbook = XLSX.read(arrayBuffer, { type: 'array' }); + } + + const firstSheet = workbook.SheetNames[0]; + const worksheet = workbook.Sheets[firstSheet]; + const jsonData = XLSX.utils.sheet_to_json(worksheet, { defval: '' }); + + if (!jsonData?.length) { + opentoast('Excel file is empty or invalid.', 'warning'); + setUsers([]); + return; + } + + const headers = Object.keys(jsonData[0]).map(normalizeHeader); + processData(jsonData, headers); + } catch (err) { + console.error('❌ Error processing Excel:', err); + opentoast(`Error reading Excel: ${err.message}`, 'warning'); + } + }; + + // Important: use readAsBinaryString for Excel + reader.readAsBinaryString(file); + } + } catch (err) { + console.error('Unexpected error during file upload:', err); + opentoast(`Unexpected error: ${err.message}`, 'warning'); + } + }; + + // =============================================== || createorders || =============================================== + const createorders = async () => { + // ===================== Build Payload ===================== + const arr = dropCust.map((customer) => ({ + applocationid: pickCust.applocationid, + configid: 9, + partnerid: pickCust.partnerid, + partneruserid: +userid, + paymentstatus: 1, + paymenttype: 42, + pickupaddress: pickCust.address || '', + pickupcity: pickCust.city || '', + pickupcontactno: pickCust.contactno || '', + pickupcustomer: pickCust.locationname || '', + pickuplandmark: pickCust.landmark || '', + pickuplat: pickCust.latitude, + pickuplocation: pickCust.suburb || '', + pickuplocationid: pickCust.locationid || 0, + pickuplong: pickCust.longitude, + tenantid: pickCust.tenantid, + + customerid: +customer?.customerid, + deliveryaddress: customer.address || '', + deliverycharge: +customer.totalcharge || 0, + deliverycity: customer.city || '', + deliverycontactno: customer.contactno?.toString() || '', + deliverycustomer: customer.firstname || '', + deliveryid: +customer.customerid, + deliverylandmark: customer.landmark || '', + deliverylat: customer.latitude?.toString() || '', + deliverylocation: customer.suburb || '', + deliverylocationid: customer.deliverylocationid || 0, + deliverylong: customer.longitude?.toString() || '', + deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`, + deliverytype: 'B', + + itemcount: 1, + quantity: customer.quantity, + collectionamt: customer.collectionamt, + kms: customer.distance?.toString() || '0', + locationid: +pickCust.locationid, + moduleid: +pickCust.moduleid, + + orderamount: +customer.totalcharge || 0, + ordercharges: 0.0, + orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + ordernotes: otherinstructions, + orderstatus: 'created', + ordervalue: +customer.totalcharge || 0, + pickupSlot + })); + + console.log('arr', arr); + + // ===================== Validation ===================== + if (!tenantid) { + opentoast('Choose Client', 'warning'); + return; + } + setLoading(true); + try { + const res = await axios.post(`${process.env.REACT_APP_URL}/orders/createorders`, arr); + if (res.data.status) { + opentoast('Order Created Successfully', 'success', 2000); + if (admintoken) { + sendnotifications(); + } + navigate('/nearle/orders'); + setLoading(false); + } else { + console.log(res.data); + console.error('Create order failed (API response):', res.data); + opentoast(res?.data?.message || 'Order creation failed. Please try again.', 'warning', 3000); + } + } catch (err) { + opentoast(err.message, 'error', 2000); + console.log('create orders', err.message); + console.error('Create order error:', { + message: err.message, + response: err.response, + request: err.request, + stack: err.stack + }); + + // Exact but short error for user + let toastMessage = 'Something went wrong. Please try again.'; + + if (err.response) { + // Server responded with error + toastMessage = err.response.data?.message || `Server error (${err.response.status})`; + } else if (err.request) { + // No response received + toastMessage = 'Network error. Check your internet connection.'; + } + opentoast(toastMessage, 'error'); + setLoading(false); + } finally { + setLoading(false); + setBtnLoading(false); + } + }; + + const [fileName, setFileName] = useState(''); + const removeFileExtension = (fileName) => { + return fileName.replace(/\.[^/.]+$/, ''); + }; + + const onFileChange = (event) => { + const file = event.target.files[0]; + if (!file) return; + const cleanedName = removeFileExtension(file.name); + setFileName((prev) => (prev ? `${prev}, ${cleanedName}` : cleanedName)); + if (tenantid === 916) { + handleFileDirectUpload(event); + } else { + handleFileDirectUpload(event); + // handleFileUpload(event); + } + }; + + const handleQuantityChange = (customerid, value) => { + setDropCust((prev) => prev.map((cust) => (cust.customerid === customerid ? { ...cust, quantity: Number(value) || 0 } : cust))); + }; + const handleCollectionAmtChange = (customerid, value) => { + setDropCust((prev) => prev.map((cust) => (cust.customerid === customerid ? { ...cust, collectionamt: Number(value) || 0 } : cust))); + }; + + return ( + <> + {loading && ( + <> + + {/* */} + + )} + { + theme.zIndex.drawer + 1 + }} + open={btnLoading} // when loader = true, backdrop covers the page + > + + + } + + + + + Create Multiple Order + + + + + + {/* ===================================================== || Choose App location || ===================================================== */} + + `${option.locationname}`} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setAppId(0); + setTenantid(0); + setTenantValue(null); + setTenantlist([]); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust([]); + setUploadType(null); + } else { + setAppId(value.applocationid); + setDropCust([]); + setPickCust(null); + } + }} + renderInput={(params) => } + /> + + {/* ===================================================== || Choose client || ===================================================== */} + + option?.tenantname || ''} + isOptionEqualToValue={(option, value) => option.tenantid === value.tenantid} + renderOption={(props, option) => ( +
  • + {option.tenantname} +
  • + )} + onOpen={(event) => { + if (!appId) { + event.preventDefault(); + OpenToast('Please select your location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust([]); + setUploadType(null); + } else if (val) { + setTenantid(val.tenantid); + setTenantValue(val); + setLocationid(0); + setLocationValue(null); + fetchTenantPricing(val.tenantid); + gettenantlocations(val.tenantid); + setDropCust([]); + } + }} + renderInput={(params) => } + /> +
    + {/* ===================================================== ||Business Location || ===================================================== */} + + {tenantLocations?.length == 1 ? ( + + + + ) + }} + /> + ) : ( + `${option.locationname} (${option.suburb})` || ''} + value={locationValue} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + setPickCust(null); + } else { + setLocationid(value.locationid || 0); + setLocationValue(value); + setPickCust(value); + setPickupSlotsList(value?.slots); + } + }} + renderInput={(params) => } + /> + )} + +
    +
    +
    + {/* ===================================================== || Pickup || ===================================================== */} + + + {locationid !== 0 && ( + + + + + + )} + {/* ================================================= || Time || ================================================= */} + {appId !== 0 && ( + + + + + { + setStartdate(e); + let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd'); + console.log('dateres11'); + console.log(dateres11); + setSelectedtime(''); + if (dateres11 <= 0) { + console.log('startdate', e); + setStartdate(e); + + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } else { + setAlertmessage('choose Upcoming Date'); + opentoast('choose Upcoming Date', 'warning'); + setStartdate(NaN); + } + }} + value={dayjs(startdate)} + sx={{ width: 'auto', mt: 0 }} + disablePast + /> + + + {/* {timeslotarr.length > 0 && ( + + + + + + + Time + + + + + + { + setStartdate(e); + let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd'); + console.log('dateres11'); + console.log(dateres11); + setSelectedtime(''); + if (dateres11 <= 0) { + console.log('startdate', e); + setStartdate(e); + + let arr = []; + timeslotarr.map((val) => { + if ( + dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + arr.push(val); + } + }); + } else { + setAlertmessage('choose Upcoming Date'); + opentoast('choose Upcoming Date', 'warning'); + setStartdate(NaN); + } + }} + value={dayjs(startdate)} + sx={{ width: 'auto', mt: 0 }} + disablePast + /> + + + + + + + {timeslotarr.map((val, index) => { + if ( + dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + return ( + + + { + console.log('selectedtime', val); + setSelectedtime(val); + }} + // onClick={() => { + // if (distance > appLocaRadius) { + // setOpen(true); + // } else if (showDistance) { + // console.log('selectedtime', val); + // setSelectedtime(val); + // } else { + // opentoast('Out of city limit', 'error'); + // } + // }} + /> + + + ); + } + })} + + + + + + )} */} + + + { + if (reason === 'clear') { + setSelectedtime(null); + setPickupSlot(null); + } else { + // Convert to AM/PM and merge with date + const formattedTime = dayjs(newValue.time, 'HH:mm').format('hh:mm A'); + setSelectedtime(formattedTime); + const finalDateTime = dayjs(`${startdate} ${formattedTime}`, 'MM-DD-YYYY hh:mm A').format('YYYY-MM-DD hh:mm A'); + setPickupSlot(finalDateTime); + } + }} + getOptionLabel={(option) => `${option.name} (${dayjs(option.time, 'HH:mm').format('hh:mm A')})`} + renderInput={(params) => } + /> + + + )} + + + + {/* ===================================================== || Drop || ===================================================== */} + + + + + Drop ({dropCust?.length || 0}) + + + {/* ================= Upload CSV ================= */} + {uploadType === 0 && ( + <> + {fileName && ( + + + + {fileName} + + + )} + + + + + + )} + + {/* ================= Continue ================= */} + {users.length >= 1 && uploadType === 0 && ( + + )} + + {/* ================= Select Customers ================= */} + {uploadType === 1 && ( + + )} + + {/* ================= Upload Type ================= */} + + + Upload Type + { + if (!appId || !tenantid || !locationid) { + OpenToast('Please select Location, Tenant, Business!', 'warning', 3000); + return; + } + setUploadType(Number(e.target.value)); + setDropCust([]); + setUsers([]); + setFileName(''); + }} + > + } label="Excel / CSV" /> + } label="Selection" /> + + + + + + } + > + + + {dropCust?.length > 0 ? ( + <> + + + S.No + Customer + Address + Quantity + + + Cash Collect + + Kms + + Charge + Action + + + + + {dropCust?.map((customer, index) => ( + + {index + 1} + {customer.firstname} + {customer.address} + + {uploadType == 0 ? ( + {customer.quantity} + ) : ( + handleQuantityChange(customer.customerid, e.target.value)} + inputProps={{ min: 0 }} + /> + )} + + + {uploadType == 0 ? ( + ₹{Number(customer.collectionamt || 0).toFixed(2)} + ) : ( + { + if (e.target.value <= 0) { + handleCollectionAmtChange(customer.customerid, 0); + } else { + handleCollectionAmtChange(customer.customerid, e.target.value); + } + }} + inputProps={{ min: 0 }} + InputProps={{ + startAdornment: + }} + /> + )} + + + {customer.distance} + {`₹${customer?.totalcharge?.toFixed(2)}`} + + { + <> + handleCheckboxChange(event, customer)} + onClick={() => handleCheckboxChange1(customer)} + /> + + } + + + ))} + {dropCust?.length != 0 && ( + + Total + + + + {`${totalQty} `} + + + + {`${totalCash?.toFixed(2)} `} + + + {`${totaldist} `} + + + {`₹${totalAmt?.toFixed(2)}`} + + + + + )} + + + ) : ( + + {/* Header */} + + {' '} + + Important Instructions + + + + {/* Ordered List */} + + + Choose either Upload Type to upload CSV/Excel files, or + Selection Type to select from saved customers. + + + + Uploaded CSV or Excel files must follow the required format and contain the correct column names. + + + + Multiple files can be uploaded, but only one file at a time. + + + + Invalid or incorrectly formatted files will not be processed. + + + + )} +
    +
    +
    +
    + + + {/* ================================================= || Notes || ================================================= */} + + + + setOtherinstructions(e.target.value)} + /> + + + + + + + +
    + {/* ============================================= || saved address Dialog || ============================================= */} + { + setIsCustomerOpen(false); + }} + fullWidth + sx={{ minWidth: 'lg' }} + > + + + {`Select Drop Customers (${dropCust.length || 0})`} + + + setSearchCustList(e.target.value)} + sx={{ + '& .MuiOutlinedInput-input': { + p: '10.5px 0px 12px' + }, + bgcolor: 'white' + }} + startAdornment={ + + + + } + endAdornment={ + { + setSearchCustList(''); + }} + > + + + } + autoComplete="off" + /> + + + + + + + {customerlist?.length == 0 ? ( + + + + ) : ( + + {customerlist && + customerlist?.map((customer, index) => ( + + cust.customerid === customer.customerid)} // Set the checked state of the checkbox based on whether the customer is in `dropCust` + onChange={(event) => handleCheckboxChange(event, customer)} + /> + } + label={ +
    + + {`${customer.firstname} (${customer.contactno})`} + + + + {customer.address} + +
    + } + /> +
    + ))} +
    + )} +
    + + + + +
    + + ); +}; + +export default MultipleOrders; diff --git a/src/pages/nearle/orders/multipleorders_copy.js b/src/pages/nearle/orders/multipleorders_copy.js new file mode 100644 index 0000000..0bdb7b7 --- /dev/null +++ b/src/pages/nearle/orders/multipleorders_copy.js @@ -0,0 +1,1322 @@ +import React from 'react'; +import Loader from 'components/Loader'; +import { useEffect, useState, useRef, Fragment } from 'react'; +import { useTheme } from '@mui/material/styles'; +import MainCard from 'components/MainCard'; +import axios from 'axios'; +import ClearIcon from '@mui/icons-material/Clear'; +import { SearchOutlined, CloseOutlined } from '@ant-design/icons'; +import { Empty } from 'antd'; +import MyLocationIcon from '@mui/icons-material/MyLocation'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { enqueueSnackbar } from 'notistack'; +import { useNavigate } from 'react-router'; +import Papa from 'papaparse'; + +import { + FormControl, + InputAdornment, + Grid, + Typography, + Stack, + Box, + Button, + TextField, + Autocomplete, + CardActions, + Chip, + Avatar, + Divider, + Dialog, + DialogTitle, + DialogContent, + Checkbox, + DialogActions, + CircularProgress, + ButtonGroup, + FormLabel, + IconButton, + Drawer, + InputLabel, + Select, + MenuItem, + Switch, + CardHeader, + Card, + OutlinedInput, + FormGroup, + FormControlLabel, + Table, + TableContainer, + TableCell, + TableBody, + TableRow, + Paper, + TableHead +} from '@mui/material'; +import { log } from 'util'; + +const MultipleOrders = () => { + const navigate = useNavigate(); + const theme = useTheme(); + const [locaName, setLocoName] = useState('Select Location'); + const [locations, setLocations] = useState([]); + const [tenantlist, setTenantlist] = useState([]); + const [loading, setLoading] = useState(false); + const [btnLoading, setBtnLoading] = useState(false); + const [appId, setAppId] = useState(0); + const [isAppLocation, setIsAppLocation] = useState(false); + const [isBusiness, setIsBusiness] = useState(false); + const [isClient, setisclient] = useState(false); + const [tenantLocations, setTenantlocations] = useState([]); + const userid = localStorage.getItem('userid'); + const [tenantid, setTenantid] = useState(); + const [tid, setTid] = useState(0); + const [tenanatLocoId, setTenanatLocoId] = useState(localStorage.getItem('locationid')); + const [tenantlocation, setTenantlocation] = useState(''); + const [isLocation, setIsLocation] = useState(false); + const [basePrice, setBasePrice] = useState(0); + const [pricePerKm, setPricePerKm] = useState(0); + const [minKm, setMinKm] = useState(0); + const [tenantinfo, setTenantinfo] = useState({}); + const [pickCust, setPickCust] = useState({}); + const [dropCust, setDropCust] = useState([]); + const [isCustomerOpen, setIsCustomerOpen] = useState(false); + const [searchCustList, setSearchCustList] = useState(''); + const [customerlist, setCustomerlist] = useState([]); + const [clientdetail, setClientdetail] = useState([]); + const [appLocaLat, setAppLocaLat] = useState(); + const [appLocaLng, setAppLocaLng] = useState(); + const [appLocaRadius, setAppLocaRadius] = useState(); + const [startdate, setStartdate] = useState(dayjs().format('MM-DD-YYYY')); + const [timeslotarr, setTimeslotarr] = useState([]); + const [showDistance, setShowDistance] = useState(false); + const [subCat, setSubCat] = useState([]); + const [subCatName, setSubCatName] = useState('Select '); + const [subCatId, setSubCatId] = useState(0); + const [weight, setWeight] = useState(''); + const [selectedCatChip, setSelectedCatChip] = useState(null); + const [isSms, setIsSms] = useState(0); + const [starttime, setStatrttime] = useState(); + const [endtime, setEndtime] = useState(); + const [selectedtime, setSelectedtime] = useState(''); + const [distance, setDistance] = useState(0); + const [alertmessage, setAlertmessage] = useState(''); + const [otherinstructions, setOtherinstructions] = useState(''); + const [totalCharge, setTotalCharge] = useState(0); + const [admintoken, setAdmintoken] = useState(); + const [tenant, setTenant] = useState(0); + const [totaldist, settotaldist] = useState(0); + const [totalAmt, settotalAmt] = useState(0); + const [users, setUsers] = useState([]); + const [deliverydatetime, setDeliverydatetime] = useState(dayjs().format('YYYY-MM-DD HH:mm:ss')); + + useEffect(() => { + if (timeslotarr[0]) { + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } + }, [timeslotarr]); + + // =============================================== || chipStyle ( time slot) || =============================================== + const chipStyle = (chipLabel) => ({ + cursor: 'pointer', + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : 'default', + color: selectedCatChip === chipLabel ? '#fff' : '', + '&:hover': { + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : theme.palette.primary.light, + color: '#fff' + } + }); + const handleChipClick = (chipLabel) => { + setSelectedCatChip(chipLabel); + }; + + // =============================================== || opentoast || =============================================== + const opentoast = (message, variant, time) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time ? time : 1500 + }); + console.log(alertmessage); + }; + + // 🔹 Smart toast wrapper — prevents duplicate toasts for same message within 3 seconds + let toastCache = {}; + const OpenToastSmart = (message, type = 'info', timeout = 10000) => { + const key = `${type}-${message}`; + if (toastCache[key]) return; // skip duplicates + opentoast(message, type, timeout); // your existing toast/snackbar + toastCache[key] = true; + setTimeout(() => delete toastCache[key], 3000); // reset after delay + }; + + // ==============================|| fetchAppLocations ||============================== // + const fetchAppLocations = async () => { + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + console.log('fetchAppLocations', locationRes.data.details); + setLocations(locationRes.data.details); + } catch (err) { + console.log('locationRes', err); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + // ===================================================== || fetchtenantinfolist || ===================================================== + + const fetchtenantinfolist = async (id) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${id}&status=active`) + + .then((res) => { + console.log(res); + if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + setTenantlist(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + // ============================================= || fetchTenantPricing || ============================================= + + const fetchTenantPricing = async (id) => { + try { + const pricingResponse = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${id}`); + console.log('pricingResponse', pricingResponse.data.details); + setBasePrice(pricingResponse.data.details.baseprice); + setPricePerKm(pricingResponse.data.details.priceperkm); + setMinKm(pricingResponse.data.details.minkm); + } catch (error) { + console.log('fetchTenantPricing error', error); + } + }; + // ============================================= || gettenantlocations (branches) || ============================================= + const gettenantlocations = async (id) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); + console.log('gettenantlocations', res.data.details); + if (res.data.details.length == 1) { + setIsLocation(true); + setTenantlocations(res.data.details); + setPickCust(res.data.details[0]); + setTenanatLocoId(res.data.details[0].locationid); + setTenantlocation(res.data.details[0].address); //client address + setIsBusiness(true); + } else { + setTenantlocations(res.data.details); + setIsBusiness(false); // became true after select from tenanatLocations + } + } catch (err) { + console.log('gettenantlocations', err); + } + }; + // ========================================================= || clientdetails || ========================================================= + const clientdetails = async () => { + try { + let url = + searchCustList == '' + ? `${process.env.REACT_APP_URL}/customers/gettenantcustomers/?tenantid=${tid}&pageno=1&pagesize=10` + : `${process.env.REACT_APP_URL}/customers/search/?tenantid=${tid}&keyword=${searchCustList}`; + await axios + .get(url) + .then((res) => { + if (res.data.status) { + console.log('clientdetails', res.data.details); + + setClientdetail(res.data.details); + setCustomerlist(res.data.details); + let arr = []; + res.data.details.map((val) => { + arr.push({ + label: `${val.firstname} | ${val.contactno}`, + ...val + }); + }); + } + }) + .catch((err) => { + console.log(err); + opentoast('server error', 'warning'); + }); + } catch (err) { + console.log(err); + } + }; + useEffect(() => { + if (tid) { + clientdetails(); + } + }, [searchCustList.length > 3, searchCustList == '', tid]); + + // ========================================================= || calculateTotal(dist , charge) || ========================================================= + const calculateTotal = () => { + let a1 = 0; + let a2 = 0; + dropCust.map((customer) => { + a1 += customer.distance; + a2 += customer.totalcharge; + }); + settotaldist(a1); + settotalAmt(a2); + }; + useEffect(() => { + calculateTotal(); + }, [dropCust]); + + // ========================================================= || handleCheckboxChange || ========================================================= + const handleCheckboxChange = async (event, customer) => { + if (event.target.checked) { + // If the checkbox is checked, calculate the distance and add the customer + try { + const obj = await calculateDistance(customer); + const { roundedDistance, totalcharge } = obj; + // Create a new customer object with the distance property + const updatedCustomer = { + ...customer, + distance: roundedDistance, + totalcharge: totalcharge + }; + + // Add the updated customer object to dropCust + setDropCust((prevDropCust) => [...prevDropCust, updatedCustomer]); + + // Log the rounded distance + console.log(`Rounded Distance: ${roundedDistance} km`); + } catch (error) { + console.error('Failed to calculate distance:', error); + } + } else { + // If the checkbox is unchecked, remove the customer from dropCust + setDropCust((prevDropCust) => { + return prevDropCust.filter((cust) => cust.customerid !== customer.customerid); + }); + } + }; + // ========================================================= || handleCheckboxChange1 || ========================================================= + const handleCheckboxChange1 = async (customer) => { + setLoading(true); + try { + const obj = await calculateDistance(customer); + const { roundedDistance, totalcharge } = obj; + // Create a new customer object with the distance property + const updatedCustomer = { + ...customer, + distance: roundedDistance, + totalcharge: totalcharge + }; + + // Add the updated customer object to dropCust + setDropCust((prevDropCust) => [...prevDropCust, updatedCustomer]); + + // Log the rounded distance + console.log(`Rounded Distance: ${roundedDistance} km`); + setLoading(false); + } catch (error) { + console.error('Failed to calculate distance:', error); + } + }; + + // ========================================================= || calculateDistance || ========================================================= + + // 🔹 Main distance calculation function + const calculateDistance = async (customer) => { + const service = new google.maps.DistanceMatrixService(); + + // Helper: safely get distance matrix + const getDistanceMatrix = (origins, destinations) => { + return new Promise((resolve, reject) => { + 2; + try { + if (!origins || !destinations) { + return reject(new Error('Origin or destination data missing.')); + } + + // if ( + // typeof origins.latitude !== 'number' || + // typeof origins.longitude !== 'number' || + // typeof destinations.latitude !== 'number' || + // typeof destinations.longitude !== 'number' + // ) { + // return reject(new Error('Invalid coordinates format. Expected numeric latitude/longitude.')); + // } + + service.getDistanceMatrix( + { + origins: [new google.maps.LatLng(origins.latitude, origins.longitude)], + destinations: [new google.maps.LatLng(destinations.latitude, destinations.longitude)], + travelMode: 'DRIVING', + unitSystem: google.maps.UnitSystem.METRIC + }, + (response, status) => { + if (status === 'OK') { + resolve(response); + } else { + reject(new Error(`Google API error: ${status}`)); + } + } + ); + } catch (err) { + reject(new Error(`Unexpected error inside DistanceMatrixService: ${err.message}`)); + } + }); + }; + + try { + // --- Input validation --- + if (!customer || typeof customer !== 'object') { + throw new Error('Invalid customer data: expected an object.'); + } + + if (!pickCust || typeof pickCust !== 'object') { + throw new Error('Origin (pickCust) data missing or invalid.'); + } + + // --- Call Google Maps API --- + const response = await getDistanceMatrix(pickCust, customer); + + // --- Validate response structure --- + if (!response.rows?.[0]?.elements?.[0] || !response.rows[0].elements[0].distance?.value) { + throw new Error('Malformed Distance Matrix response: missing distance value.'); + } + + // --- Compute distance --- + const distanceInMeters = response.rows[0].elements[0].distance.value; + const distanceInKilometers = distanceInMeters / 1000; + const roundedDistance = Math.round(distanceInKilometers); + + // --- Calculate total charge --- + let totalcharge; + if (roundedDistance < minKm) { + totalcharge = basePrice; + } else { + totalcharge = (roundedDistance - minKm) * pricePerKm + basePrice; + } + + setTotalCharge(totalcharge); + return { roundedDistance, totalcharge }; + } catch (error) { + // --- Categorized smart error handling --- + if (error.message.includes('Google API')) { + console.error('🚨 Google Maps API Error:', error.message); + OpenToastSmart('Google Maps API Error: ' + error.message, 'error'); + } else if (error.message.includes('Invalid coordinates')) { + console.error('📍 Invalid coordinate format:', error.message); + OpenToastSmart('Invalid coordinate format. Check location data.', 'warning'); + } else if (error.message.includes('Malformed Distance Matrix')) { + console.error('⚠️ Unexpected Google response structure:', error.message); + OpenToastSmart('Google Distance Matrix returned invalid data.', 'error'); + } else if (error.message.includes('Origin') || error.message.includes('customer')) { + console.error('❌ Missing or invalid input data:', error.message); + OpenToastSmart('Missing or invalid input data for distance calculation.', 'warning'); + } else { + console.error('💥 Unexpected error calculating distance:', error); + OpenToastSmart('Unexpected error during distance calculation.', 'error'); + } + + throw error; // keeps your current flow intact + } + }; + + // ==================================================== || fetchTiming || ==================================================== + const fetchTiming = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) + .then((res) => { + console.log('fetchTiming', res); + const { opentime, closetime, latitude, longitude, radius } = res.data.details[0]; + if (res.data.status) { + setAppLocaLat(latitude); + setAppLocaLng(longitude); + setAppLocaRadius(radius); + setStatrttime(`${dayjs().format('MM-DD-YYYY')} ${opentime}`); + setEndtime(`${dayjs().format('MM-DD-YYYY')} ${closetime}`); + console.log('starttime', `${dayjs().format('MM-DD-YYYY')} ${opentime}`); + console.log('endtime', `${dayjs().format('MM-DD-YYYY')} ${closetime} `); + let arr = []; + for ( + let i = `${dayjs().format('MM-DD-YYYY')} ${opentime}`, j = 0; + dayjs(`${dayjs().format('MM-DD-YYYY')} ${closetime} `).diff(i, 'm') >= 0; + j++, i = dayjs(i).add(30, 'm') + ) { + arr.push(i); + } + console.log('setTimeslotarr', arr); + setTimeslotarr(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (appId) { + fetchTiming(); + } + }, [starttime, endtime, appId]); + // ==================================================== || getsubcategories || ==================================================== + const getsubcategories = async () => { + await axios + .get(`${process.env.REACT_APP_URL}/utils/getsubcategories/?moduleid=6`) + .then((res) => { + console.log('subcateRes', res.data.details); + if (res.data.status) { + setSubCat(res.data.details); + } + }) + .catch((err) => { + console.log(err); + }); + }; + useEffect(() => { + getsubcategories(); + }, []); + const fetchAppAdminTokens = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocationconfig/?applocationid=${appId}`) + .then((res) => { + const userfcmtokemArray = res.data.details.applocationadmins.map((admin) => admin.userfcmtokem); // fcm => firebase cloud messaging + console.log('fetchAppAdminTokens', res); + console.log('userfcmtokemArray', userfcmtokemArray); + if (res.data.status) { + setAdmintoken(userfcmtokemArray); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (starttime && endtime) { + fetchAppAdminTokens(); + } + }, [starttime, endtime]); + + useEffect(() => { + console.log('pickCust', pickCust); + }, [pickCust]); + useEffect(() => { + console.log('dropCust', dropCust); + }, [dropCust]); + // ==================================================== || fetchtenantinfo || ==================================================== + const fetchtenantinfo = async () => { + setLoading(true); + console.log('tid', tid); + + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) + .then((res) => { + console.log('fetchtenantinfo', res); + if (res.data.status) { + setTenant(res.data.details); + setTenantid(res.data.details.tenantid); + fetchAppAdminTokens(); + setSubCatName(res.data.details.subcategoryname); + setSubCatId(res.data.details.subcategoryid); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (tid) { + fetchtenantinfo(); + } + }, [tid]); + // ================================================== || sendnotifications || ================================================== + const sendnotifications = async () => { + setLoading(true); + await axios + .post(`${process.env.REACT_APP_URL}/utils/sendnotifications`, { + priority: 'high', + registration_ids: admintoken, + data: { + accessid: process.env.REACT_APP_RIDER_ACCESS_ID + }, + notification: { + title: 'Nearle Merchant', + body: 'An Order has been placed successfully,kindly process the same', + sound: 'ring' + } + }) + .then((res) => { + console.log(res); + if (res.data.message == 'Success') { + enqueueSnackbar('Notification sent Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + setLoading(false); + }); + }; + + // const handleFileUpload = (event) => { + // const file = event.target.files[0]; + // if (file) { + // Papa.parse(file, { + // header: true, + // dynamicTyping: true, + // complete: function (results) { + // console.log('Parsed Data: ', results.data); + // setUsers(results.data); + // }, + // error: function (error) { + // console.error('Error parsing CSV file: ', error); + // } + // }); + // } + // }; + const handleFileUpload = (event) => { + try { + const file = event.target.files?.[0]; + + // 1️⃣ Validate file existence + if (!file) { + console.warn('No file selected.'); + return; + } + + // 2️⃣ Validate file type (optional but recommended) + if (!file.name.toLowerCase().endsWith('.csv')) { + console.error('Invalid file type. Please upload a CSV file.'); + return; + } + + // 3️⃣ Parse safely with Papa + Papa.parse(file, { + header: true, + dynamicTyping: true, + skipEmptyLines: true, + complete: (results) => { + try { + // Check parsing metadata + + if (results.errors?.length) { + opentoast(results.errors, 'warning'); + console.warn('PapaParse reported errors:', results.errors); + } + + if (!results.data || results.data.length === 0) { + console.warn('CSV file is empty or has no valid rows.'); + opentoast('CSV file is empty or has no valid rows.', 'warning'); + setUsers([]); // reset to avoid stale data + return; + } + + console.log('Parsed Data:', results.data); + setUsers(results.data); + } catch (parseError) { + opentoast(parseError, 'warning'); + console.error('Error processing parsed CSV data:', parseError); + } + }, + error: (error) => { + opentoast(error, 'warning'); + + console.error('Error parsing CSV file:', error); + } + }); + } catch (err) { + console.error('Unexpected error during file upload:', err); + } + }; + + // =============================================== || createorders || =============================================== + const createorders = async () => { + const arr = dropCust.map((customer) => ({ + applocationid: pickCust.applocationid, + cancellled: '', + // categoryid: +tenant.categoryid, + configid: 9, + customerid: 0, + deliveryaddress: customer.address || '', + deliverycharge: +customer.totalcharge || 0, + deliverycity: customer.city || '', + deliverycontactno: customer.contactno.toString() || '', + deliverycustomer: customer.firstname || '', + deliveryid: +customer.customerid, + deliverylandmark: customer.landmark || '', + deliverylat: customer.latitude.toString(), + deliverylocation: customer.suburb || '', + deliverylocationid: customer.deliverylocationid || 0, + deliverylong: customer.longitude.toString(), + // deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} `, + deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`, + // deliverytime: deliverydatetime, + deliverytype: 'B', + delivered: '', + itemcount: 1, + kms: customer.distance.toString() || 0, + locationid: +pickCust.locationid, + // moduleid: +pickCust.moduleid, + moduleid: 6, + orderamount: +customer.totalcharge || 0, + ordercharges: 0.0, + orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + orderheaderid: 0, + orderid: '', // + ordernotes: otherinstructions, + orderstatus: 'created', + ordervalue: +customer.totalcharge || 0, + partnerid: pickCust.partnerid, + partneruserid: +userid, + paymentstatus: 1, + paymenttype: 42, + pending: '', + pickupaddress: pickCust.address || '', + pickupcity: pickCust.city || '', + pickupcontactno: pickCust.contactno || '', + pickupcustomer: pickCust.locationname || '', + pickuplandmark: pickCust.landmark || '', + // pickuplat: pickCust.locationlatitude.toString(), + pickuplat: pickCust.latitude, + pickuplocation: pickCust.suburb || '', + pickuplocationid: pickCust.locationid || 0, + pickuplong: pickCust.longitude, + // pickuplong: pickCust.locationlong.toString(), + processing: '', + ready: '', + remarks: '', + // smsdelivery: isSms, + // subcategoryid: +subCatId, + taxamount: 0.0, + tenantid: pickCust.tenantid, + tenantuserid: 0 + })); + console.log('arr', arr); + + if (!tid) { + opentoast('Choose Client ', 'warning'); + } + // else if (!tenantinfo.address) { + // opentoast('Choose Pickup Location', 'warning'); + // } else if (!clientinfo.address) { + // opentoast('Choose Drop Location', 'warning'); + // } else if (!selectedtime) { + // opentoast('Choose Schedule Time', 'warning'); + // } + else { + setLoading(true); + await axios + .post(`${process.env.REACT_APP_URL}/orders/createorders`, arr) + .then((res) => { + if (res.data.status) { + enqueueSnackbar('Order Created Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + if (admintoken) { + sendnotifications(); + } + navigate('/orders'); + } else { + opentoast(res.data.message, 'warning'); + } + setLoading(false); + console.log(res); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } + }; + const [fileName, setFileName] = useState(''); + + const onFileChange = (event) => { + console.log('event', event); + console.log('event[0]', event.target.files[0]); + + const file = event.target.files[0]; + if (file) { + setFileName(file.name); + handleFileUpload(event); // Call the parent component's handler + } + }; + return ( + <> + {loading && } + + + + Create Multiple Order + + + + + + {/* ===================================================== || Choose location || ===================================================== */} + + `${option.locationname}`} + renderInput={(params) => } + onChange={(event, value, reason) => { + if (reason === 'clear') { + fetchtenantinfolist(0); + setAppId(0); + setLocoName('Select Location'); + setIsAppLocation(false); + setIsBusiness(false); + setisclient(false); + setDropCust([]); + setPickCust([]); + } else { + console.log(value); + fetchtenantinfolist(value.applocationid); + setAppId(value.applocationid); + setLocoName(value.locationname); + setIsAppLocation(true); + setisclient(false); + setDropCust([]); + setPickCust([]); + } + }} + />{' '} + + {/* ===================================================== || Choose client || ===================================================== */} + + } + onChange={(e, val, reason) => { + if (val) { + setTenantid(val.tenantid); + console.log('Client', val); + fetchTenantPricing(val.tenantid); + gettenantlocations(val.tenantid); + setTid(val.tenantid); + setisclient(true); + setDropCust([]); + } else { + setTenantinfo({}); + + setTenantid(''); + } + if (reason == 'clear') { + setisclient(false); + } + }} + />{' '} + + {/* ===================================================== ||Business Location || ===================================================== */} + + {tenantLocations.length == 1 ? ( + + + + ) + }} + /> + ) : ( + `${option.locationname} (${option.suburb})` || ''} + renderInput={(params) => } + sx={{}} + onChange={(event, value, reason) => { + if (value) { + console.log('Business Locations', value); + console.log('locationid', value.locationid); + setTenanatLocoId(value.locationid); + setTid(value.tenantid); + setTenantlocation(value.address); + setIsLocation(true); + setIsBusiness(true); + setPickCust(value); + } + if (reason == 'clear') { + setIsLocation(false); + setIsBusiness(false); + } + }} + /> + )} + + + + + {/* ===================================================== || Pickup || ===================================================== */} + + + + {isBusiness && ( + + + + )} + + {/* ================================================= || Time || ================================================= */} + + + + + Date + + { + setDeliverydatetime(dayjs(e).format('YYYY-MM-DD HH:mm:ss')); + setStartdate(e); + let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd'); + console.log('dateres11'); + console.log(dateres11); + setSelectedtime(''); + if (dateres11 <= 0) { + console.log('startdate', e); + setStartdate(e); + + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } else { + setAlertmessage('choose Upcoming Date'); + opentoast('choose Upcoming Date', 'warning'); + setStartdate(NaN); + } + }} + value={dayjs(startdate)} + sx={{ width: 'auto', mt: 0 }} + disablePast + /> + + + + {timeslotarr.length > 0 && ( + + + + <> + + Time + + + + {timeslotarr.map((val, index) => { + if ( + dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + return ( + + + { + console.log('selectedtime', val); + setSelectedtime(val); + }} + // onClick={() => { + // if (distance > appLocaRadius) { + // setOpen(true); + // } else if (showDistance) { + // console.log('selectedtime', val); + // setSelectedtime(val); + // } else { + // opentoast('Out of city limit', 'error'); + // } + // }} + /> + + + ); + } + })} + + + + + + + )} + + + + + + {/* ===================================================== || Drop || ===================================================== */} + + + + {isBusiness && ( + + + {fileName && ( + + Selected file: {fileName} + + )} + + + + + )} + {users.length >= 1 && ( + + )} + + + } + > + + + + + S.No + Customer + Address + Kms + Charge + Action + + + + {dropCust.map((customer, index) => ( + + {index + 1} + {customer.firstname} + {/* {customer.ReceiverName} */} + {customer.address} + {customer.distance} + {`₹${customer.totalcharge}.00`} + + { + <> + handleCheckboxChange(event, customer)} + /> + + } + + + ))} + {dropCust.length != 0 && ( + + Total + + + + {`${totaldist} `} + + + + {`₹${totalAmt}.00`} + + + + )} + +
    +
    +
    +
    + + + {/* ================================================= || Notes || ================================================= */} + + + + setOtherinstructions(e.target.value)} + /> + + + + + + + +
    + {/* ============================================= || saved address Dialog || ============================================= */} + { + setIsCustomerOpen(false); + }} + fullWidth + sx={{ minWidth: 'lg' }} + > + + + {`Select Drop Customers (${dropCust.length || 0})`} + + + setSearchCustList(e.target.value)} + sx={{ + '& .MuiOutlinedInput-input': { + p: '10.5px 0px 12px' + }, + bgcolor: 'white' + }} + startAdornment={ + + + + } + endAdornment={ + { + setSearchCustList(''); + }} + > + + + } + autoComplete="off" + /> + + + + + + + {customerlist.length == 0 ? ( + + + + ) : ( + + {customerlist && + customerlist.map((customer, index) => ( + + cust.customerid === customer.customerid)} // Set the checked state of the checkbox based on whether the customer is in `dropCust` + onChange={(event) => handleCheckboxChange(event, customer)} + /> + } + label={ +
    + + {`${customer.firstname} (${customer.contactno})`} + + + + {customer.address} + +
    + } + /> +
    + ))} +
    + )} +
    + + + + +
    + + ); +}; + +export default MultipleOrders; diff --git a/src/pages/nearle/orders/newcreateOrder.js b/src/pages/nearle/orders/newcreateOrder.js new file mode 100644 index 0000000..883601b --- /dev/null +++ b/src/pages/nearle/orders/newcreateOrder.js @@ -0,0 +1,2190 @@ +import * as React from 'react'; +import { useEffect, useState, useRef, Fragment } from 'react'; +import { + FormControl, + InputAdornment, + Grid, + Typography, + Stack, + Button, + TextField, + Autocomplete, + Chip, + Divider, + DialogTitle, + DialogContent, + Checkbox, + DialogActions, + CircularProgress, + IconButton, + Switch, + OutlinedInput, + FormGroup, + FormControlLabel, + Avatar, + Box +} from '@mui/material'; + +import CloseIcon from '@mui/icons-material/Close'; +import { Empty } from 'antd'; +import { FaPhoneAlt } from 'react-icons/fa'; +import { GiDoorHandle } from 'react-icons/gi'; +import { FaLandmarkDome } from 'react-icons/fa6'; +import ClearIcon from '@mui/icons-material/Clear'; +import { useNavigate } from 'react-router'; +import { TbMapPinCode } from 'react-icons/tb'; +import { FaLocationDot } from 'react-icons/fa6'; +import axios from 'axios'; +import { useTheme } from '@mui/material/styles'; +import Geocode from 'react-geocode'; +import Loader from 'components/Loader'; +import MainCard from 'components/MainCard'; +import { FaUser } from 'react-icons/fa6'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +import Dialog from '@mui/material/Dialog'; +import dayjs from 'dayjs'; +import { enqueueSnackbar } from 'notistack'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { ArrowDownOutlined, ArrowUpOutlined, SearchOutlined } from '@ant-design/icons'; +import MyLocationIcon from '@mui/icons-material/MyLocation'; +import HighlightOffIcon from '@mui/icons-material/HighlightOff'; +import { OpenToast } from 'components/third-party/OpenToast'; +import TitleCard from 'components/nearle_components/TitleCard'; +import AccessTimeIcon from '@mui/icons-material/AccessTime'; +import { TimePicker } from '@mui/x-date-pickers'; +import ArrowOutwardIcon from '@mui/icons-material/ArrowOutward'; +import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward'; +import LocationOnOutlinedIcon from '@mui/icons-material/LocationOnOutlined'; + +function loadScript(src, position, id) { + if (!position) { + return; + } + + const script = document.createElement('script'); + script.setAttribute('async', ''); + script.setAttribute('id', id); + script.src = src; + position.appendChild(script); +} + +const Createorder1 = () => { + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // ================================================= || GoogleMaps (Drawer) || ================================================= + const loaded = React.useRef(false); + const navigate = useNavigate(); + const theme = useTheme(); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const [inputValue1, setInputValue1] = React.useState(''); + const [inputValue2, setInputValue2] = React.useState(''); + const textFieldRef1 = useRef(null); + const textFieldRef1a = useRef(null); + const textFieldRef2 = useRef(null); + const [appId, setAppId] = useState(0); + const [open, setOpen] = useState(false); + const [startdate, setStartdate] = useState(dayjs().format('MM-DD-YYYY')); + const [starttime, setStatrttime] = useState(); + const [endtime, setEndtime] = useState(); + const [timeslotarr, setTimeslotarr] = useState([]); + const [otherinstructions, setOtherinstructions] = useState(''); + const [loading2, setLoading2] = useState(false); + const [loading, setLoading] = useState(false); + const [btnLoading, setBtnLoading] = useState(false); + const [alertmessage, setAlertmessage] = useState(''); + const [admintoken, setAdmintoken] = useState(); + const [tenant, setTenant] = useState({}); + const [selectedtime, setSelectedtime] = useState(''); + const [tenantlist, setTenantlist] = useState([]); + const [startPoint, setStartPoint] = useState({ latitude: 0, longitude: 0 }); + const [endPoint, setEndPoint] = useState({ latitude: 0, longitude: 0 }); + const [showDistance, setShowDistance] = useState(false); + const [distance, setDistance] = useState(0); + const [basePrice, setBasePrice] = useState(0); + const [pricePerKm, setPricePerKm] = useState(0); + const [minKm, setMinKm] = useState(0); + const [totalCharge, setTotalCharge] = useState(0); + const [subCat, setSubCat] = useState([]); + const [subCatName, setSubCatName] = useState('Select '); + const [subCatId, setSubCatId] = useState(0); + const [weight, setWeight] = useState(''); + const [tenantid, setTenantid] = useState(0); + const [locationid, setLocationid] = useState(0); + const [selectedCatChip, setSelectedCatChip] = useState(null); + const [isCustomerOpen, setIsCustomerOpen] = useState(false); + const [searchCustList, setSearchCustList] = useState(''); + const [customerlist, setCustomerlist] = useState([]); + const [pickCust, setPickCust] = useState(null); + const [dropCust, setDropCust] = useState(null); + const [pickordrop, setpickordrop] = useState(0); // 1 ->pick 2 -> drop + const [addId1, setAddId1] = useState(0); + const [addId2, setAddId2] = useState(0); + const [tenantLocations, setTenantlocations] = useState([]); + const [appLocaLat, setAppLocaLat] = useState(); + const [appLocaLng, setAppLocaLng] = useState(); + const [appLocaRadius, setAppLocaRadius] = useState(); + const [locations, setLocations] = useState('Select Location'); + const userid = localStorage.getItem('userid'); + const [isNumChange1, setIsNumChange1] = useState(0); + const [isNumChange2, setIsNumChange2] = useState(0); + const [showCheck1, setShowCheck1] = useState(0); + const [showCheck2, setShowCheck2] = useState(0); + const [pickNum, setPickNum] = useState(); + const [dropNum, setdropNum] = useState(); + const [numErr1, setNumErr1] = useState(false); + const [numErr2, setNumErr2] = useState(false); + const [isSms, setIsSms] = useState(0); + const [collectionamt, setCollectionamt] = useState(0); + const [quantity, setQuantity] = useState(1); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [pickupdate, setPickupdate] = useState(dayjs().add(5, 'minute')); + const [pickDialog, setPickDialog] = useState(false); + const [deliverydate, setDeliverydate] = useState(dayjs().add(30, 'minute')); + const [deliveryDialog, setDeliveryDialog] = useState(false); + + const pickerRef = useRef(null); + const deliveryRef = useRef(null); + + const handlePickupChange = (newValue) => { + if (!newValue) return; + setPickupdate(newValue); + if (deliverydate.isBefore(newValue)) { + setDeliverydate(newValue.add(30, 'minute')); + } + }; + + if (typeof window !== 'undefined' && !loaded.current) { + if (!document.querySelector('#google-maps')) { + loadScript( + `https://maps.googleapis.com/maps/api/js?key=${process.env.REACT_APP_GOOGLE_MAPS_API_KEY}&libraries=places&location=10.3656,77.9690&radius=50000&components=country:IN&strictbounds=true`, + document.querySelector('head'), + 'google-maps' + ); + } + loaded.current = true; + } + + // ==============================|| fetchAppLocations ||============================== // + const fetchAppLocations = async () => { + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + console.log('fetchAppLocations', locationRes.data.details); + setLocations(locationRes.data.details); + } catch (err) { + console.log('locationRes', err); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + // ===================================================== || fetchtenantinfolist || ===================================================== + + const fetchtenantinfolist = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenants/?applocationid=${appId}&status=active`) + + .then((res) => { + console.log(res); + if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: `${val.tenantname}` + }); + }); + setTenantlist(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + appId && fetchtenantinfolist(); + }, [appId]); + + const handleChipClick = (chipLabel) => { + setSelectedCatChip(chipLabel); + }; + + const chipStyle = (chipLabel) => ({ + cursor: 'pointer', + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : 'default', + color: selectedCatChip === chipLabel ? '#fff' : '', + '&:hover': { + backgroundColor: selectedCatChip === chipLabel ? theme.palette.primary.main : theme.palette.primary.light, + color: '#fff' + } + }); + + const fetchTenantPricing = async (id) => { + try { + const pricingResponse = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantpricing/?tenantid=${id}`); + console.log('pricingResponse', pricingResponse.data.details); + setBasePrice(pricingResponse.data.details.baseprice); + setPricePerKm(pricingResponse.data.details.priceperkm); + setMinKm(pricingResponse.data.details.minkm); + } catch (error) { + console.log('fetchTenantPricing error', error); + } + }; + + useEffect(() => { + console.log('startPoint', startPoint); + console.log('endPoint', endPoint); + if (startPoint.latitude != 0 && startPoint.longitude != 0 && endPoint.latitude != 0 && endPoint.longitude != 0) { + // getDistance(); + calculateDistance(startPoint, endPoint); + } + }, [startPoint, endPoint]); + + const calculateDistance = async (pickup, drop) => { + const service = new google.maps.DistanceMatrixService(); + const getDistanceMatrix = (origins, destinations, travelMode, unitSystem) => { + return new Promise((resolve, reject) => { + service.getDistanceMatrix( + { + origins: [new google.maps.LatLng(origins.latitude, origins.longitude)], + destinations: [new google.maps.LatLng(destinations.latitude, destinations.longitude)], + travelMode: travelMode, + unitSystem: unitSystem + }, + (response, status) => { + if (status === 'OK') { + resolve(response); + } else { + reject(new Error(`Error calculating distance: ${status}`)); + } + } + ); + }); + }; + + try { + // Use await to wait for the promise to resolve + const response = await getDistanceMatrix(pickup, drop, 'DRIVING', google.maps.UnitSystem.METRIC); + + // Handle the response + const results = response.rows[0].elements; + for (let i = 0; i < results.length; i++) { + const element = results[i]; + + // Extract the numerical value of the distance + + const distance = element.distance.value; + console.log('distance in m ', distance); + const distanceInKm = (distance / 1000).toFixed(2); + console.log('distance in km ', distanceInKm); + const roundedDistance = Math.round(distanceInKm); + console.log('roundedDistance', roundedDistance); + setDistance(roundedDistance); + if (roundedDistance < minKm) { + setTotalCharge(basePrice); + } else { + console.log('minKm', minKm); + console.log('pricePerKm', pricePerKm); + console.log('basePrice', basePrice); + const total = (roundedDistance - minKm) * pricePerKm + basePrice; + console.log('total', total); + setTotalCharge(total); + } + setShowDistance(true); + if (roundedDistance > appLocaRadius) { + setShowDistance(true); + setOpen(true); + } + + // Extract the numerical value of the duration + const durationMatch = element.duration.text.match(/([\d.]+)/); + const duration = durationMatch ? parseInt(durationMatch[0]) : null; + + // Display only the numerical values + console.log(`Distance: ${roundedDistance}, Duration: ${duration}`); + } + } catch (error) { + console.error('Error calculating distance:', error); + } + }; + + useEffect(() => { + if (tenantid) { + clientdetails(); + } + }, [searchCustList?.length > 3, searchCustList == '', tenantid]); + + useEffect(() => { + if (timeslotarr[0]) { + let arr = []; + timeslotarr.map((val) => { + if (dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0) { + arr.push(val); + } + }); + } + }, [timeslotarr]); + + // ==================================================== || fetchtenantinfo || ==================================================== + const fetchtenantinfo = async () => { + setLoading(true); + console.log('tenantid', tenantid); + + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tenantid}`) + .then((res) => { + console.log('fetchtenantinfo', res); + if (res.data.status) { + setTenant(res.data.details); + + fetchAppAdminTokens(); + setSubCatName(res.data.details.subcategoryname); + setSubCatId(res.data.details.subcategoryid); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (tenantid) { + fetchtenantinfo(); + } + }, [tenantid]); + // ==================================================== || getsubcategories || ==================================================== + const getsubcategories = async () => { + await axios + .get(`${process.env.REACT_APP_URL}/utils/getsubcategories/?moduleid=6`) + .then((res) => { + console.log('subcateRes', res.data.details); + if (res.data.status) { + setSubCat(res.data.details); + } + }) + .catch((err) => { + console.log(err); + }); + }; + useEffect(() => { + getsubcategories(); + }, []); + + // ==================================================== || fetchTiming || ==================================================== + const fetchTiming = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocations/?applocationid=${appId}`) + .then((res) => { + console.log('fetchTiming', res); + const { opentime, closetime, latitude, longitude, radius } = res.data.details[0]; + if (res.data.status) { + setAppLocaLat(latitude); + setAppLocaLng(longitude); + setAppLocaRadius(radius); + console.log('radius', radius); + setStatrttime(`${dayjs().format('MM-DD-YYYY')} ${opentime}`); + setEndtime(`${dayjs().format('MM-DD-YYYY')} ${closetime}`); + console.log('starttime', `${dayjs().format('MM-DD-YYYY')} ${opentime}`); + console.log('endtime', `${dayjs().format('MM-DD-YYYY')} ${closetime} `); + let arr = []; + for ( + let i = `${dayjs().format('MM-DD-YYYY')} ${opentime}`, j = 0; + dayjs(`${dayjs().format('MM-DD-YYYY')} ${closetime} `).diff(i, 'm') >= 0; + j++, i = dayjs(i).add(30, 'm') + ) { + arr.push(i); + } + console.log('setTimeslotarr', arr); + setTimeslotarr(arr); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + useEffect(() => { + if (appId) { + fetchTiming(); + } + }, [appId]); + + // =============================================== || fetchAppAdminTokens (via appId) || =============================================== + const fetchAppAdminTokens = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapplocationconfig/?applocationid=${appId}`) + .then((res) => { + const userfcmtokemArray = res.data.details.applocationadmins.map((admin) => admin.userfcmtokem); // fcm => firebase cloud messaging + console.log('fetchAppAdminTokens', res); + console.log('userfcmtokemArray', userfcmtokemArray); + if (res.data.status) { + setAdmintoken(userfcmtokemArray); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (starttime && endtime) { + fetchAppAdminTokens(); + } + }, [starttime, endtime]); + + // =============================================== || opentoast || =============================================== + + const opentoast = (message, variant, time) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time ? time : 1500 + }); + console.log(alertmessage); + }; + + const createsubmitobj2 = async () => { + let arr = {}; + arr = { + orders: { + applocationid: tenant.applolcationid, + cancellled: '', + categoryid: +tenant.categoryid, + configid: 9, + customerid: isNumChange1 == 0 ? +pickCust.customerid || 0 : 0, + deliveryaddress: dropCust.address || '', + deliverycharge: +totalCharge.toFixed(2) || 0, + deliverycity: dropCust.city || '', + deliverycontactno: dropCust.contactno || '', + deliverycustomer: dropCust.firstname || '', + deliveryid: isNumChange2 == 0 ? +dropCust.customerid || 0 : 0, + deliverylandmark: dropCust.landmark || '', + deliverylat: dropCust.latitude.toString(), + deliverylocation: dropCust.suburb || '', + deliverylocationid: dropCust.deliverylocationid || 0, + deliverylong: dropCust.longitude.toString(), + deliverytime: `${dayjs(startdate).format('YYYY-MM-DD')} ${dayjs(selectedtime.$d).format('HH:mm:ss')}`, + deliverytype: 'B', + delivered: '', + itemcount: 1, + kms: distance.toString() || 0, + locationid: +locationid, + moduleid: +tenant.moduleid, + orderamount: +totalCharge.toFixed(2) || 0, + ordercharges: 0.0, + orderdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + ordernotes: otherinstructions, + orderstatus: 'created', + ordervalue: +totalCharge.toFixed(2) || 0, + partnerid: tenant.partnerid, + partneruserid: +userid, + paymentstatus: 1, + paymenttype: 42, + pickupaddress: pickCust.address || '', + pickupcity: pickCust.city || '', + pickupcontactno: pickCust.contactno || '', + pickupcustomer: pickCust.firstname || '', + pickuplandmark: pickCust.landmark || '', + pickuplat: pickCust.latitude.toString() || '', + pickuplocation: pickCust.suburb || '', + pickuplocationid: pickCust.deliverylocationid || 0, + pickuplong: pickCust.longitude.toString() || '', + smsdelivery: isSms, + subcategoryid: +subCatId, + tenantid: tenant.tenantid, + collectionamt: +collectionamt, + quantity: +quantity, + weight + }, + pickup: { + address: pickCust.address || '', + applocationid: tenant.applolcationid, + city: pickCust.city || '', + configid: 1, + contactno: pickCust.contactno || '', + customertoken: '', + customerid: isNumChange1 == 0 ? pickCust.customerid || 0 : 0, + devicetype: '', + deviceid: '', + dialcode: '+91', + doorno: pickCust.doorno || '', + email: pickCust.email || '', + firstname: pickCust.firstname || '', + landmark: pickCust.landmark || '', + latitude: pickCust.latitude.toString() || '', + longitude: pickCust.longitude.toString() || '', + postcode: pickCust.postcode || '', + primaryaddress: 1, + locationid: pickCust.deliverylocationid || 0, + profileimage: '', + state: pickCust.state || '', + suburb: pickCust.suburb || '', + tenantid: tenant.tenantid + }, + drop: { + address: dropCust.address || '', + applocationid: tenant.applolcationid, + city: dropCust.city || '', + configid: 1, + contactno: dropCust.contactno || '', + customertoken: '', + customerid: isNumChange2 == 0 ? dropCust.customerid || 0 : 0, + devicetype: '', + deviceid: '', + locationid: dropCust.deliverylocationid || 0, + dialcode: '+91', + doorno: dropCust.doorno || '', + email: dropCust.email || '', + firstname: dropCust.firstname || '', + landmark: dropCust.landmark || '', + latitude: dropCust.latitude.toString(), + longitude: dropCust.longitude.toString(), + postcode: dropCust.postcode || '', + primaryaddress: 1, + profileimage: '', + state: dropCust.state || '', + suburb: dropCust.suburb || '', + tenantid: tenant.tenantid + } + }; + console.log('createsubmitobj2', arr); + if (!pickCust.firstname) { + opentoast('Enter Pickup Contact Name ', 'warning', 2000); + } else if (!pickCust.contactno) { + opentoast('Enter Pickup Contact Number ', 'warning', 2000); + } else if (pickCust.contactno.length != 10) { + opentoast('Check Pickup Contact Number ', 'error', 2000); + } else if (!pickCust.suburb) { + opentoast('Enter Pickup Location ', 'warning', 2000); + } + // else if (!pickCust.city) { + // opentoast('Enter Pickup City ', 'warning', 2000); + // } + else if (!pickCust.postcode) { + opentoast('Enter Pickup Postcode ', 'warning', 2000); + } else if (!pickCust.landmark) { + opentoast('Enter Pickup Landmark ', 'warning', 2000); + } else if (!dropCust.firstname) { + opentoast('Enter Drop Contact Name ', 'warning', 2000); + } else if (!dropCust.contactno) { + opentoast('Enter Drop Contact Number', 'warning', 2000); + } else if (dropCust.contactno.length !== 10) { + opentoast('Check Drop Contact Number ', 'error', 2000); + } else if (!dropCust.suburb) { + opentoast('Enter Drop Suburb ', 'warning', 2000); + } + // else if (!dropCust.city) { + // opentoast('Enter Drop City ', 'warning', 2000); + // } + else if (!dropCust.postcode) { + opentoast('Enter Drop postcode ', 'warning', 2000); + } else if (!dropCust.landmark) { + opentoast('Enter Drop Landmark ', 'warning', 2000); + } else if (!selectedtime) { + opentoast('Choose deliverytime ', 'warning', 2000); + } else if (!setSubCatId) { + opentoast('Choose SubCategory ', 'warning', 2000); + } else { + try { + const createRes = await axios.post(`${process.env.REACT_APP_URL2}/orders/createorder`, arr); + if (createRes.data.status) { + console.log('createRes', createRes); + enqueueSnackbar('Order Created Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + if (admintoken) { + // notifyadmin(admintoken); + sendnotifications(); + } + navigate('/nearle/orders'); + } else { + opentoast('Error in creating orders', 'warning'); + } + setLoading(false); + } catch (error) { + opentoast(error.message, 'warning'); + console.log('createResErr', error); + } + } + }; + + // ========================================================= || clientdetails || ========================================================= + const clientdetails = async () => { + setLoading2(true); + try { + let url = + searchCustList == '' + ? `${process.env.REACT_APP_URL}/customers/gettenantcustomers/?tenantid=${tenantid}&pageno=1&pagesize=30` + : `${process.env.REACT_APP_URL}/customers/search/?tenantid=${tenantid}&keyword=${searchCustList}`; + await axios + .get(url) + .then((res) => { + if (res.data.status) { + console.log('clientdetails', res.data.details); + setCustomerlist(res.data.details); + } + setLoading2(false); + }) + .catch((err) => { + console.log(err); + setLoading2(false); + opentoast('server error', 'warning'); + }); + } catch (err) { + console.log(err); + setLoading2(false); + } + }; + + // ================================================== || sendnotifications || ================================================== + const sendnotifications = async () => { + setLoading(true); + await axios + .post(`${process.env.REACT_APP_URL}/utils/sendnotifications`, { + priority: 'high', + registration_ids: admintoken, + data: { + accessid: process.env.REACT_APP_RIDER_ACCESS_ID + }, + notification: { + title: 'Nearle Merchant', + body: 'An Order has been placed successfully,kindly process the same', + sound: 'ring' + } + }) + .then((res) => { + console.log(res); + if (res.data.message == 'Success') { + enqueueSnackbar('Notification sent Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 1000 + }); + setLoading(false); + }); + }; + // ============================================= || Google Maps Autocomplete(pick) || ============================================= + useEffect(() => { + // Initialize Google Maps Autocomplete + if (inputValue1) { + const autocompleteInput = document.getElementById('addressAuto1'); + const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, { + // types: ['(cities)'], // You can adjust the types parameter based on your requirements + strictBounds: true, + bounds: new window.google.maps.Circle({ + // center: new window.google.maps.LatLng(11.0050707, 76.9509083), + // radius: 100000 + center: new window.google.maps.LatLng(appLocaLat, appLocaLng), + radius: appLocaRadius * 1000 + }).getBounds() + }); + + // Event listener for autocomplete place changed + autocomplete.addListener('place_changed', () => { + const place = autocomplete.getPlace(); + setInputValue1(`${place.name}, ${place.formatted_address}`); + console.log('new place', place); // Do something with the selected place + console.log(' pick (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + // to trigger getDistance + setStartPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); + setPickCust({ ...pickCust, address: `${place.name} ${place.formatted_address}` }); + const address = { + address: `${place.name} ${place.formatted_address}`, + street_number: '', + route: '', + locality: '', + sublocality_level_1: '', + administrative_area_level_3: '', + administrative_area_level_1: '', + country: '', + postal_code: '' + }; + place.address_components.forEach((component) => { + component.types.forEach((type) => { + switch (type) { + case 'street_number': + address.street_number = component.long_name; + break; + case 'route': + address.route = component.long_name; + break; + case 'locality': + address.locality = component.long_name; + break; + case 'sublocality_level_1': + address.sublocality_level_1 = component.long_name; + break; + case 'administrative_area_level_3': + address.administrative_area_level_3 = component.long_name; + break; + case 'administrative_area_level_1': + address.administrative_area_level_1 = component.long_name; + break; + case 'country': + address.country = component.long_name; + break; + case 'postal_code': + address.postal_code = component.long_name; + break; + // Add more cases as needed for other types + } + }); + }); + + // Use address object as per your requirements + setPickCust({ + ...pickCust, + address: address.address, + doorno: `${address.street_number} ${address.route}`, + suburb: address.sublocality_level_1, + city: address.locality, + postcode: address.postal_code, + latitude: place.geometry.location.lat(), + longitude: place.geometry.location.lng() + }); + console.log('Pick Address:', address); + }); + } + }, [inputValue1]); + // ============================================= || Google Maps Autocomplete(Drop) || ============================================= + + useEffect(() => { + if (inputValue2) { + // Initialize Google Maps Autocomplete + const autocompleteInput = document.getElementById('addressAuto2'); + const autocomplete = new window.google.maps.places.Autocomplete(autocompleteInput, { + // types: ['(cities)'], // You can adjust the types parameter based on your requirements + strictBounds: true, + bounds: new window.google.maps.Circle({ + // center: new window.google.maps.LatLng(11.0050707, 76.9509083), + center: new window.google.maps.LatLng(appLocaLat, appLocaLng), + radius: appLocaRadius * 1000 //km to m + // radius: 100000 //km to m + }).getBounds() + }); + let arr = []; + // Event listener for autocomplete place changed + autocomplete.addListener('place_changed', () => { + const place = autocomplete.getPlace(); + setInputValue2(`${place.name}, ${place.formatted_address}`); + console.log('new place', place); // Do something with the selected place + console.log('drop (new place) lat lng', { lat: place.geometry.location.lat(), lng: place.geometry.location.lng() }); // Do something with the selected place + setEndPoint({ latitude: place.geometry.location.lat(), longitude: place.geometry.location.lng() }); + + setDropCust({ ...dropCust, address: `${place.name} ${place.formatted_address}` }); + const address = { + address: `${place.name} ${place.formatted_address}`, + street_number: '', + route: '', + locality: '', + sublocality_level_1: '', + administrative_area_level_3: '', + administrative_area_level_1: '', + country: '', + postal_code: '' + }; + place.address_components.forEach((component) => { + component.types.forEach((type) => { + switch (type) { + case 'street_number': + address.street_number = component.long_name; + break; + case 'route': + address.route = component.long_name; + break; + case 'locality': + address.locality = component.long_name; + break; + case 'sublocality_level_1': + address.sublocality_level_1 = component.long_name; + break; + case 'administrative_area_level_3': + address.administrative_area_level_3 = component.long_name; + break; + case 'administrative_area_level_1': + address.administrative_area_level_1 = component.long_name; + break; + case 'country': + address.country = component.long_name; + break; + case 'postal_code': + address.postal_code = component.long_name; + break; + // Add more cases as needed for other types + } + }); + }); + + // Use address object as per your requirements + setDropCust({ + ...dropCust, + address: address.address, + doorno: `${address.street_number} ${address.route}`, + suburb: address.sublocality_level_1, + city: address.locality, + postcode: address.postal_code, + latitude: place.geometry.location.lat(), + longitude: place.geometry.location.lng() + }); + console.log('Drop Address:', address); + }); + } + }, [inputValue2]); + + // ============================================= || gettenantlocations (branches) || ============================================= + const gettenantlocations = async (id) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenantlocations/?tenantid=${id}`); + console.log('gettenantlocations', res.data.details); + if (res.data.details.length == 1) { + setTenantlocations(res.data.details); + setLocationid(res.data.details[0].locationid); + setLocationValue(res.data.details[0].locationid); + } else { + setTenantlocations(res.data.details); + } + } catch (err) { + console.log('gettenantlocations', err); + } + }; + + return ( + <> + {loading && } + {loading2 && } + + + + + + 1 + + Select Location and Client + + + + {/* ===================================================== || Choose App location || ===================================================== */} + + `${option.locationname}`} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setAppId(0); + setTenantid(0); + setTenantValue(null); + setTenantlist([]); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust(null); + } else { + setAppId(value.applocationid); + setPickCust(null); + setDropCust(null); + setTenantid(0); + setTenantValue(null); + setTenantlist([]); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + } + }} + renderInput={(params) => } + /> + + {/* ===================================================== || Choose client || ===================================================== */} + + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason == 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setTenantlocations([]); + setPickCust(null); + setDropCust(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(0); + setLocationValue(null); + fetchTenantPricing(val.tenantid); + gettenantlocations(val.tenantid); + setDropCust(null); + } + }} + renderInput={(params) => } + /> + + {/* ===================================================== ||Business Location || ===================================================== */} + + {tenantLocations.length == 1 ? ( + + + + ) + }} + /> + ) : ( + `${option.locationname} (${option.suburb})` || ''} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select a your Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + setPickCust(null); + } else { + setLocationid(value.locationid || 0); + setLocationValue(value); + } + }} + renderInput={(params) => } + /> + )} + + + + + + {/* ================================================= || Pickup & Drop || ================================================= */} + + + + + + 2 + + Pickup & Drop Details + + + + + {/* ================================================= || Pickup || ================================================= */} + + + + + + + + Pickup Details + + + + + + {/* new1 */} + + + + + {/* ====================================== ||Contact Name (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Contact Name" + value={pickCust?.firstname || ''} + onChange={(e) => { + setPickCust({ ...pickCust, firstname: e.target.value }); + }} + /> + + {/* ====================================== ||Contact Number(pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Contact Number" + value={pickCust?.contactno || ''} + onChange={(e) => { + if (e.target.value.length <= 10) { + setPickCust({ ...pickCust, contactno: e.target.value }); + } + if (pickNum == e.target.value) { + setShowCheck1(0); + } else { + setShowCheck1(1); + } + if (e.target.value.length < 10) { + setNumErr1(true); + } else { + setNumErr1(false); + } + }} + /> + + {/* ====================================== || Address(pick) || ====================================== */} + + + {addId1 == 0 ? ( +
    + setInputValue1(e.target.value)} + InputProps={{ + endAdornment: ( + { + setInputValue1(''); + setPickCust({ + ...pickCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + }} + size="small" + > + + + ) + }} + /> +
    + ) : ( + { + setAddId1(0); + setPickCust({ + ...pickCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + }} + > + + + ) + }} + value={pickCust?.address || ''} + onChange={(e) => { + setPickCust({ ...pickCust, address: e.target.value }); + if (e.target.value == '') { + setAddId1(0); + setShowDistance(false); + setStartPoint({ latitude: 0, longitude: 0 }); + } + }} + /> + )} +
    +
    + {/* ====================================== ||Door No (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Door No / Street" + value={pickCust?.doorno || ''} + onChange={(e) => { + setPickCust({ ...pickCust, doorno: e.target.value }); + }} + /> + + {/* ====================================== || Suburb (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Location" + value={pickCust?.suburb || ''} + onChange={(e) => { + setPickCust({ ...pickCust, suburb: e.target.value }); + }} + /> + + + {/* ====================================== || postcode (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Postcode" + value={pickCust?.postcode || ''} + onChange={(e) => { + setPickCust({ ...pickCust, postcode: e.target.value }); + }} + /> + + {/* ====================================== || Landmark (pick) || ====================================== */} + + + + + ) + }} + variant="outlined" + label="Landmark" + value={pickCust?.landmark || ''} + onChange={(e) => { + setPickCust({ ...pickCust, landmark: e.target.value }); + }} + /> + + {/* ====================================== ||Checkbox save for later (pick) || ====================================== */} + {showCheck1 == 1 && ( + + + { + setIsNumChange1(e.target.checked ? 1 : 0); + }} + /> + } + label="Save For Later" + /> + + + )} +
    +
    +
    +
    +
    + + {/* ================================================= || Drop || ================================================= */} + + + + + + + + Drop Details + {' '} + + + + + + + {/* ====================================== ||Contact Name (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.firstname || ''} + onChange={(e) => { + setDropCust({ ...dropCust, firstname: e.target.value }); + }} + /> + + {/* ====================================== ||Contact Number (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.contactno || ''} + onChange={(e) => { + if (e.target.value.length <= 10) { + setDropCust({ ...dropCust, contactno: e.target.value }); + } + if (dropNum == e.target.value) { + setShowCheck2(0); + } else { + setShowCheck2(1); + } + if (e.target.value.length < 10) { + setNumErr2(true); + } else { + setNumErr2(false); + } + }} + sx={{ color: numErr2 ? 'red' : 'inherit' }} + /> + + + {/* ====================================== || Address (drop) || ====================================== */} + + + {addId2 == 0 ? ( +
    + setInputValue2(e.target.value)} + InputProps={{ + endAdornment: ( + { + setInputValue2(''); + setDropCust({ + ...dropCust, + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + }} + size="small" + > + + + ) + }} + /> +
    + ) : ( + { + setAddId2(0); + setDropCust({ + ...dropCust, + // firstname: '', + // contactno: '', + doorno: '', + suburb: '', + city: '', + postcode: '', + landmark: '' + }); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + }} + > + + + ) + }} + value={dropCust?.address || ''} + onChange={(e) => { + setPickCust({ ...dropCust, address: e.target.value }); + if (e.target.value == '') { + setAddId2(0); + setShowDistance(false); + setEndPoint({ latitude: 0, longitude: 0 }); + } + }} + /> + )} +
    +
    + + {/* ====================================== ||Door No (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.doorno || ''} + onChange={(e) => { + setDropCust({ ...dropCust, doorno: e.target.value }); + }} + /> + + {/* ====================================== ||Suburb (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.suburb || ''} + onChange={(e) => { + setDropCust({ ...dropCust, suburb: e.target.value }); + }} + /> + + + {/* ====================================== ||Postcode (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.postcode || ''} + onChange={(e) => { + setDropCust({ ...dropCust, postcode: e.target.value }); + }} + /> + + {/* ====================================== ||Landmark (drop) || ====================================== */} + + + + + ) + }} + value={dropCust?.landmark || ''} + onChange={(e) => { + setDropCust({ ...dropCust, landmark: e.target.value }); + }} + /> + + {/* ====================================== ||Checkbox save for later (drop) || ====================================== */} + {showCheck2 == 1 && ( + + + { + setIsNumChange2(e.target.checked ? 1 : 0); + }} + /> + } + label="Save For Later" + /> + + + )} +
    +
    +
    +
    +
    + {/* ================================================= || Category || ================================================= */} + + + + + 3 + + Package Details + + + + + + `${option.subcategoryname}` || ''} + fullWidth + renderInput={(params) => } + onChange={(event, value, reason) => { + if (value) { + console.log(value); + setSubCatName(value.subcategoryname || ''); + setSubCatId(value.subcategoryid || 0); + } else if (reason) { + setSubCatName(null); + setSubCatId(null); + } + }} + /> + + + + + { + setCollectionamt(e.target.value); + }} + inputProps={{ min: 0 }} + /> + + + + + { + setQuantity(e.target.value); + }} + inputProps={{ min: 1 }} + /> + + + + + + + + + 4 + + Schedule & Delivery Options + + + + {/* ================================================= || Time || ================================================= */} + + + + + + {/* + + + + + Schedule + */} + Pickup Slots + Date + + + { + let dateres11 = dayjs().diff(dayjs(`${dayjs(e).format('YYYY-MM-DD')}`), 'd'); + console.log('dateres11'); + console.log(dateres11); + setSelectedtime(''); + if (dateres11 <= 0) { + console.log('startdate', e); + setStartdate(e); + + let arr = []; + timeslotarr.map((val) => { + if ( + dayjs().diff(dayjs(`${dayjs(e).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + arr.push(val); + } + }); + } else { + setAlertmessage('choose Upcoming Date'); + opentoast('choose Upcoming Date', 'warning'); + setStartdate(NaN); + } + }} + value={dayjs(startdate)} + sx={{ width: '100%', mt: 2 }} + disablePast + /> + + + Time + + + + + {/* ================= PICKUP ================= */} + setPickDialog(true)} + > + setPickDialog(false)} + onAccept={() => setPickDialog(false)} // ✅ CLOSE HERE + value={pickupdate} + onChange={handlePickupChange} + disablePast + minutesStep={5} + slotProps={{ + textField: { + sx: { + position: 'absolute', + inset: 0, + opacity: 0 + } + } + }} + /> + + + + + + + + Pickup Time + + + + + {pickupdate.format('hh:mm A')} + + + + {/* ================= DELIVERY ================= */} + setDeliveryDialog(true)} + > + setDeliveryDialog(false)} + onAccept={() => setDeliveryDialog(false)} // ✅ CLOSE HERE + value={deliverydate} + onChange={(newValue) => { + if (!newValue) return; + // Prevent delivery before pickup + if (newValue.isBefore(pickupdate)) { + setDeliverydate(pickupdate.add(30, 'minute')); + } else { + setDeliverydate(newValue); + } + setDeliveryDialog(false); + }} + minTime={pickupdate} + disablePast + minutesStep={5} + slotProps={{ + textField: { + sx: { + position: 'absolute', + inset: 0, + opacity: 0 + } + } + }} + /> + + + + + + + + Delivery Time + + + + + {deliverydate.format('hh:mm A')} + + + + + + {/* + + {timeslotarr.map((val, index) => { + if ( + dayjs().diff(dayjs(`${dayjs(startdate).format('MM-DD-YYYY')} ${dayjs(val).format('HH:mm:ss')}`), 'm') <= 0 + ) { + return ( + + + { + if (distance > appLocaRadius) { + setOpen(true); + } else if (showDistance) { + console.log('selectedtime', val); + setSelectedtime(val); + } else { + opentoast('Out of city limit', 'error'); + } + }} + /> + + + ); + } + })} + + */} + + + + + + + {showDistance && ( + + + + + + + + + )} + Weight + + { + handleChipClick('1-10kgs'); + setWeight('1-10kgs'); + }} + /> + { + handleChipClick('11-20kgs'); + setWeight('11-20kgs'); + }} + /> + { + handleChipClick('21-30kgs'); + setWeight('21-30kgs'); + }} + /> + + + + SMS Delivery + + { + setIsSms(e.target.checked ? 1 : 0); + }} + /> + + + + Notes + + setOtherinstructions(e.target.value)} + /> + + + + +
    +
    + + {/* ================================================= || Notes || ================================================= */} + + + + {/* */} + + + + + + +
    +
    + {/* */} +
    + + {/* ============================================= || saved address Dialog (Customer List)|| ============================================= */} + { + setIsCustomerOpen(false); + setSearchCustList(''); + }} + fullWidth + sx={{ minWidth: 'lg' }} + > + + + {`Select Address (${pickordrop === 1 ? 'Pickup' : 'Drop'})`} + + + setSearchCustList(e.target.value)} + sx={{ + '& .MuiOutlinedInput-input': { + p: '10.5px 0px 12px' + }, + bgcolor: 'white' + }} + startAdornment={ + + + + } + endAdornment={ + { + setSearchCustList(''); + }} + > + + + } + autoComplete="off" + /> + + + + + + + {customerlist?.length == 0 ? ( + + + + ) : ( + + {customerlist && + customerlist?.map((address, index) => ( + + ))} + + )} + + + + + + + {/* ============================================= || location error Dialog || ============================================= */} + { + setOpen(false); + }} + > + + + + Error + + + + + Service not available at this location + + + { + setOpen(false); + }} + > + Close + + + + + ); +}; + +export default Createorder1; diff --git a/src/pages/nearle/orders/optimisedOrderPreview.js b/src/pages/nearle/orders/optimisedOrderPreview.js new file mode 100644 index 0000000..c49932e --- /dev/null +++ b/src/pages/nearle/orders/optimisedOrderPreview.js @@ -0,0 +1,610 @@ +import { + Autocomplete, + Button, + Chip, + Divider, + Grid, + Stack, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TextField, + Tooltip, + Typography, + Backdrop, + IconButton, + Badge, + Accordion, + AccordionSummary, + AccordionActions, + AccordionDetails +} from '@mui/material'; +import React, { Fragment, useEffect, useMemo, useState } from 'react'; +import { useTheme } from '@mui/material/styles'; +import { useLocation, useNavigate } from 'react-router-dom'; +import dayjs from 'dayjs'; +import MainCard from 'components/MainCard'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import { createAutomationDeliveries, fetchPaymentType, fetchRidersList, finalCreatedeliveries, notifyRider } from 'pages/api/api'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { useMutation, useQuery } from '@tanstack/react-query'; +import Loader from 'components/Loader'; +import CircularLoader from 'components/CircularLoader'; +import { Empty } from 'antd'; +import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; +import { DashboardFilled, DashboardOutlined, OpenAIFilled } from '@ant-design/icons'; +import { MdDirectionsBike } from 'react-icons/md'; +import { FaMapLocationDot } from 'react-icons/fa6'; +import { HiOutlineArrowLeft } from 'react-icons/hi'; +import { IoReload } from 'react-icons/io5'; +import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'; +import CheckBoxIcon from '@mui/icons-material/CheckBox'; +import { GiProfit } from 'react-icons/gi'; +import { ArrowRightAltOutlined } from '@mui/icons-material'; +import LocalShippingIcon from '@mui/icons-material/LocalShipping'; +import WarningIcon from '@mui/icons-material/Warning'; +import BoltIcon from '@mui/icons-material/Bolt'; +import CurrencyRupeeIcon from '@mui/icons-material/CurrencyRupee'; +import SavingsIcon from '@mui/icons-material/Savings'; +import EnergySavingsLeafIcon from '@mui/icons-material/EnergySavingsLeaf'; +import DirectionsBikeOutlinedIcon from '@mui/icons-material/DirectionsBikeOutlined'; +import DownloadOutlinedIcon from '@mui/icons-material/DownloadOutlined'; +import { exportToExcel } from 'components/exportToExcel'; +import CSVExport from 'components/third-party/ReactTable'; + +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); + +const OptimisedOrderPreview = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const location = useLocation(); + console.log('location.state', location.state); + const [rider, setRider] = useState(null); + const [payment, setPayment] = useState(null); + const [finaldeliveryList, setFinalDeliveryList] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const [deliverylist, setDeliverylist] = useState(location.state?.deliverylist); + const [zoneData, setZoneData] = useState(location?.state?.zoneData); + const [metaData, setMetaData] = useState(location.state?.metaData); + const riderToken = location.state?.riderToken; + const appId = location.state?.appId; + const aiMode = location.state?.aiMode; + const reassignOrders = location.state?.reassignOrders; + const [csvExportData, setCsvExportData] = useState([]); + + useEffect(() => { + console.log('called'); + + console.log('aiMode', aiMode); + console.log('riderToken', riderToken); + console.log('zoneData', zoneData); + console.log('metaData', metaData); + console.log('reassignOrders', reassignOrders); + }, [zoneData, metaData, deliverylist]); + + useEffect(() => { + const filtered = finaldeliveryList.map((item) => ({ + zone_name: item.zone_name, + ordernotes: item.ordernotes, + rider: item.rider, + step: item.step, + ordertype: item.ordertype, + orderamount: item.orderamount, + riderkms: item.riderkms, + cumulativekms: item.cumulativekms, + baseprice: item.baseprice, + minkm: item.minkm, + priceperkm: item.priceperkm, + kms: item.kms, + actualkms: item.actualkms, + rider_charge: item.rider_charge, + deliveryamt: item.deliveryamt, + deliverycharges: item.deliverycharges, + profit: item.profit + })); + + setCsvExportData(filtered); + + console.log('csvExportData', filtered); + }, [finaldeliveryList]); + useEffect(() => { + if (!deliverylist?.length) return; + const updateDeliveryAmtList = deliverylist.map((list) => { + const cumulativeKms = Number(list.cumulativekms || 0); + const minKm = Number(list.minkm || 0); + const basePrice = Number(list.baseprice || 0); + const pricePerKm = Number(list.priceperkm || 0); + if (cumulativeKms <= minKm) { + return { + ...list, + deliveryamt: basePrice + }; + } + return { + ...list, + deliveryamt: (cumulativeKms - minKm) * pricePerKm + basePrice + }; + }); + + setFinalDeliveryList(updateDeliveryAmtList); + console.log('finaldeliveryList', updateDeliveryAmtList); + }, [deliverylist]); + + // ==============================|| fetchPaymentType ||============================== // + + const { + data: paymentModes = [], + isLoading: paymentModesLoading, + isError: paymentModesError, + error: paymentModesErrorMessage + } = useQuery({ + queryKey: ['paymentmodes'], + queryFn: fetchPaymentType + }); + + // ==============================|| fetchRidersList ||============================== // + + const { + data: ridersList = [], + isLoading: ridersListLoading, + isError: ridersListError, + error: ridersListErrorMessage, + refetch: ridersListRefetch + } = useQuery({ + queryKey: ['ridersList', appId], // Unique key for caching & re-fetching + queryFn: fetchRidersList, + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + + const getRiderName = async (userid) => { + await ridersList.map((rider) => { + if (rider.userid == userid) { + return rider.firstname; + } + }); + }; + + // ======================================================= || notifyRiderMutation || ======================================================= + + const notifyRiderMutation = useMutation({ + mutationFn: notifyRider, // Using the separate function + onSuccess: () => { + OpenToast('Notification sent Successfully', 'success', 2000); + }, + onError: (error) => { + OpenToast(error.message, 'error', 2000); + } + }); + + const createFinalDeliveryMutation = useMutation({ + mutationFn: finalCreatedeliveries, // for optimised delivery create + + onSuccess: (data, variables) => { + console.log('data', data); + console.log('varialbles', variables); + notifyRiderMutation.mutate(rider.userfcmtoken || riderToken); // Call notifyRider after success + if (data.status == 'accepted') { + OpenToast('Delivery Created Successfully', 'success', 2000); + } + }, + onError: (error) => { + OpenToast(error.message, 'error', 4000); + }, + onSettled: () => { + setTimeout(() => { + setIsLoading(false); + navigate('/nearle/deliveries'); + }, 2000); + } + }); + + const handleFinalCreateDelivery = async () => { + // console.log('Final delivery list:', finaldeliveryList); + + setIsLoading(true); + createFinalDeliveryMutation.mutate({ + deliveries: finaldeliveryList + }); + }; + const createDeliveryMutation = useMutation({ + // 0 -> manual rider assign 1 -> ai rider assign + mutationFn: createAutomationDeliveries, + onSuccess: (data, variables) => { + console.log('data', data); + console.log('varialbles', variables); + OpenToast('Orders Optimised Successfully', 'success', 2000); + // notifyRiderMutation.mutate(variables?.riderToken); // Call notifyRider after success + setZoneData(data?.zones); + setDeliverylist(data?.details); + setMetaData(data?.meta); + setIsLoading(false); + }, + onError: (error) => { + OpenToast(error.message, 'error', 4000); + setIsLoading(false); + }, + onSettled: () => { + setIsLoading(false); + } + }); + + const tuningTypes = [ + { + tuneid: 1, + type: 'Rider' + }, + { + tuneid: 2, + type: 'Pickup' + }, + { + tuneid: 3, + type: 'Zone' + } + ]; + + return ( + + { + theme.zIndex.drawer + 1 + }} + open={paymentModesLoading || ridersListLoading || isLoading} // when loader = true, backdrop covers the page + > + + + } + {(paymentModesLoading || ridersListLoading || isLoading) && ( + <> + + + + )} + + + + navigate('/nearle/orders')} + sx={{ + bgcolor: 'action.hover', + '&:hover': { bgcolor: 'action.selected' } + }} + > + + + + + Assign Orders + + + + {/* */} + option.type} + renderOption={(props, option, { selected }) => { + const { id, ...optionProps } = props; + const SelectionIcon = selected ? CheckBoxIcon : CheckBoxOutlineBlankIcon; + + return ( +
  • + + {option.type} +
  • + ); + }} + style={{ width: 400 }} + renderInput={(params) => ( + + )} + /> + {/* */} + +
    + + + + } + color={theme.palette.success.main} + sx={{ cursor: 'pointer' }} + /> + + + } + color={theme.palette.warning.main} + /> + + + } + color={theme.palette.info.main} + /> + + + } + color={theme.palette.error.main} + /> + + + + + {zoneData?.map((zone, index) => { + const riders = zone?.riders.flatMap((rider) => rider); + const orders = zone?.riders?.flatMap((rider) => rider.orders); + + return ( + + + + + Zone {index + 1} : + + + + + + + + + + + + + + + + + + + + # + {/* Tenant */} + Order Location + Pickup + Delivery + Notes + Rider + Type + Profit + Charges + KMS + + + + + {orders.map((val, i) => ( + + + + {i + 1} + + {/* + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    */} + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.pickupslot).format('DD/MM/YYYY')} + + + + + + + {dayjs(val.expectedDeliveryTime).format('DD/MM/YYYY')} + + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + + + + {val.ordernotes} + + + + + + {val.rider} + +
    + ID : {val.userid} +
    + + + + ) : val.ordertype === 'Risky' ? ( + + ) : ( + + ) + } + color={val.ordertype === 'Economy' ? 'success' : val.ordertype === 'Risky' ? 'error' : 'primary'} + variant="light" + /> + + + + + + + + + + + {/* + + */} + + + + + + + + + + + + +
    +
    + ))} +
    +
    +
    +
    +
    + ); + })} + + + + + + +
    +
    + ); +}; + +export default OptimisedOrderPreview; diff --git a/src/pages/nearle/orders/orders.js b/src/pages/nearle/orders/orders.js new file mode 100644 index 0000000..fe27606 --- /dev/null +++ b/src/pages/nearle/orders/orders.js @@ -0,0 +1,2566 @@ +import * as React from 'react'; +import { useState, useEffect, Fragment, useRef } from 'react'; +import { DashboardOutlined, DeleteFilled, DeleteOutlined, ShoppingCartOutlined } from '@ant-design/icons'; +import { Empty } from 'antd'; +import dayjs from 'dayjs'; +import { useQuery, useMutation, useInfiniteQuery } from '@tanstack/react-query'; +import HoverSocialCard from 'components/cards/statistics/HoverSocialCard'; +import { useTheme } from '@mui/material/styles'; +import { CloseOutlined } from '@ant-design/icons'; +import { PopupTransition } from 'components/@extended/Transitions'; +import CircularLoader from 'components/CircularLoader'; +import Loader from 'components/Loader'; +import { KeyboardArrowDownOutlined, KeyboardArrowUpOutlined } from '@mui/icons-material'; + +import { PiMapPinLineDuotone } from 'react-icons/pi'; +import { MdOutlineDateRange } from 'react-icons/md'; +import { VscArchive } from 'react-icons/vsc'; +import DateFilterDialog from 'components/DateFilterDialog'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import TitleCard from 'components/nearle_components/TitleCard'; +import MainCard from 'components/MainCard'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { OrdersTableSkeleton } from './OrdersTableSkeleton'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import AiImage from '../../../assets/images/aiImage.png'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import EnergySavingsLeafIcon from '@mui/icons-material/EnergySavingsLeaf'; +import DirectionsBikeOutlinedIcon from '@mui/icons-material/DirectionsBikeOutlined'; +import WarningIcon from '@mui/icons-material/Warning'; +import BoltIcon from '@mui/icons-material/Bolt'; +import { ArrowRightAltOutlined } from '@mui/icons-material'; +import { DashboardFilled, OpenAIFilled } from '@ant-design/icons'; +import { MdDirectionsBike } from 'react-icons/md'; +import { FaMapLocationDot } from 'react-icons/fa6'; +import { HiOutlineArrowLeft } from 'react-icons/hi'; +import { GiProfit } from 'react-icons/gi'; +import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'; +import { IoReload } from 'react-icons/io5'; + +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); + +import { + Avatar, + Button, + Grid, + Tabs, + Tab, + IconButton, + Stack, + TextField, + Chip, + Typography, + Table, + TableCell, + TableBody, + TableHead, + Dialog, + TableRow, + DialogContent, + DialogTitle, + Tooltip, + Skeleton, + DialogActions, + Autocomplete, + TableContainer, + Checkbox, + useMediaQuery, + Backdrop, + SpeedDial, + SpeedDialIcon, + SpeedDialAction, + Badge, + Divider, + AccordionDetails, + AccordionSummary, + Accordion +} from '@mui/material'; + +import { + fetchOrders, + fetchorderscount, + fetchPercentageData, + createOptimisationDeliveries, + // notifyRider, + cancelOrder, + getTenants, + gettenantlocations, + cancelMultipleOrder, + createAutomationDeliveries, + fetchPaymentType, + fetchRidersList, + finalCreatedeliveries, + notifyRider, + getallriders +} from '../../api/api'; +import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; +import { useNavigate } from 'react-router'; +import CSVExport from 'components/third-party/ReactTable'; +// import usePreventReload from 'hooks/usePreventReload'; + +const Orders = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const loadMoreRef = useRef(); + const containerRef = useRef(); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const [appId, setAppId] = useState(0); + const [locaName, setLocoName] = useState('All'); + const [assignLoading, setAssignLoading] = useState(false); + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [datestatus, setDatestatus] = useState('Today'); + const [open, setOpen] = useState(false); + const [tabvalue, setTabvalue] = useState(0); + const [currentStatus, setCurrentStatus] = useState('created'); + const [cancelDialog, setCancelDialog] = useState(false); + const [assignDialog, setAssignDialog] = useState(false); + const [multiDeleteDialog, setMultiDeleteDialog] = useState(false); + const [rider, setRider] = useState(null); + const [payment, setPayment] = useState(null); + const [orderheaderid, setOrderheaderid] = useState(''); + const [page, setPage] = useState(0); + const [productCollapse, setProductCollapse] = useState(null); + const [tenantid, setTenantid] = useState(0); + const [locationid, setLocationid] = useState(0); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + const [createloader, setCreateloader] = useState(false); + const [isLoading, setIsLoading] = useState(false); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [speedDialOpen, setSpeedDialOpen] = useState(false); + const [aiDialog, setAiDialog] = useState(false); + const [normalAssignDialog, setNormalAssignDialog] = useState(false); + const [deliverylist, setDeliverylist] = useState([]); + const [zoneSummary, setZoneSummary] = useState(null); + const [deliveryDetails, setDeliveryDetails] = useState([]); + const [zoneData, setZoneData] = useState(null); + const [metaData, setMetaData] = useState(null); + const [reassignOrders, setReassignOrders] = useState([]); + const [aiMode, setAiMode] = useState(0); + const [csvExportData, setCsvExportData] = useState([]); + const [finaldeliveryList, setFinalDeliveryList] = useState([]); + + const aiModeRef = useRef(0); + const rowsPerPage = 100; + + const transportOptions = [ + { label: 'Bike', value: 1 }, + { label: 'Auto', value: 2 } + ]; + const [selectedMode, setSelectedMode] = useState(null); + + // when orders are selected to show popup to stop unwanted reload + const shouldBlock = deliverylist.length > 0; + // usePreventReload(shouldBlock); + + const tuningTypes = [ + { + tuneid: 1, + type: 'Balanced', + value: 'balanced' + }, + { + tuneid: 2, + type: 'Aggressive Speed', + value: 'aggressive_speed' + }, + { + tuneid: 3, + type: 'Fuel Saver', + value: 'fuel_saver' + }, + { + tuneid: 4, + type: 'Zone Strict', + value: 'zone_strict' + } + ]; + + // to clear the tenant and location autocomplete + useEffect(() => { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + }, [appId]); + // to clear the location autocomplete + useEffect(() => { + setLocationid(0); + setLocationValue(null); + }, [tenantid]); + + // for csv file + useEffect(() => { + const filtered = finaldeliveryList.map((item) => ({ + zone_name: item.zone_name, + ordernotes: item.ordernotes, + rider: item.rider, + step: item.step, + ordertype: item.ordertype, + orderamount: item.orderamount, + riderkms: item.riderkms, + cumulativekms: item.cumulativekms, + baseprice: item.baseprice, + minkm: item.minkm, + priceperkm: item.priceperkm, + kms: item.kms, + actualkms: item.actualkms, + rider_charge: item.rider_charge, + deliveryamt: item.deliveryamt, + deliverycharges: item.deliverycharges, + profit: item.profit + })); + + setCsvExportData(filtered); + + console.log('csvExportData', filtered); + }, [finaldeliveryList]); + + // whenever thr delivery details get updated, delivery amt calculated and added + useEffect(() => { + if (!deliveryDetails?.length) return; + const updateDeliveryAmtList = deliveryDetails.map((list) => { + const cumulativeKms = Number(list.cumulativekms || 0); + const minKm = Number(list.minkm || 0); + const basePrice = Number(list.baseprice || 0); + const pricePerKm = Number(list.priceperkm || 0); + + if (cumulativeKms <= minKm) { + return { + ...list, + deliveryamt: basePrice + }; + } + return { + ...list, + deliveryamt: (cumulativeKms - minKm) * pricePerKm + basePrice + }; + }); + + setFinalDeliveryList(updateDeliveryAmtList); + console.log('finaldeliveryList', updateDeliveryAmtList); + }, [deliveryDetails]); + + // ==============================|| fetchPercentageData ||============================== // + + const { + data: percentageData, + isLoading: fetchpercentageIsLoading, + isError: fetchpercentageIsError, + error: fetchpercentageError, + refetch: percentagedataRefetch + } = useQuery({ + queryKey: ['percentageData', appId], + queryFn: () => fetchPercentageData(appId), // Ensure appId is passed + enabled: true + }); + + // ==============================|| getTenants ||============================== // + + const { + data: tenantlist, + isLoading: fetchtenantsIsLoading, + isError: fetchtenantsIsError, + error: fetchtenantsError + } = useQuery({ + queryKey: ['tenantlist', appId], + queryFn: () => getTenants(appId), // Ensure appId is passed + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + + // ==============================|| gettenantlocations ||============================== // + + const { + data: locationlist, + isLoading: fetchlocationsIsLoading, + isError: fetchlocationsIsError, + error: fetchlocationsError + } = useQuery({ + queryKey: ['gettenantlocations', tenantid], + queryFn: () => gettenantlocations(tenantid), // Ensure appId is passed + enabled: tenantid !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| fetchPaymentType ||============================== // + + const { + data: paymentModes = [], + isLoading: paymentModesLoading, + isError: paymentModesError, + error: paymentModesErrorMessage + } = useQuery({ + queryKey: ['paymentmodes'], + queryFn: fetchPaymentType + }); + // ==============================|| fetchRidersList ||============================== // + + const { + data: ridersList = [], + isLoading: ridersListLoading, + isError: ridersListError, + error: ridersListErrorMessage, + refetch: ridersListRefetch + } = useQuery({ + queryKey: ['ridersList', appId], // Unique key for caching & re-fetching + queryFn: fetchRidersList, + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| fetchorderscount ||============================== // + + const { + data: ordersCountData, + isLoading: fetchorderscountIsLoading, + isError: fetchorderscountIsError, + error: fetchorderscountError, + refetch: orderscountRefetch + } = useQuery({ + queryKey: ['ordersCount', appId, startdate, enddate, currentStatus, tenantid, locationid], + queryFn: fetchorderscount, + refetchOnMount: true, + refetchOnWindowFocus: true + }); + // ==============================|| getallriders ||============================== // + + const { + data: autoRiders, + isLoading: getallridersIsLoading, + isError: fgetallriderscountIsError, + error: getallridersError, + refetch: getallridersRefetch + } = useQuery({ + queryKey: ['getallriders'], + queryFn: getallriders, + refetchOnMount: true, + refetchOnWindowFocus: true + }); + + // ==============================|| getorders ||============================== // + const { + data: orderData, + isLoading: fetchOrdersIsLoading, + isError: fetchOrdersIsError, + error: fetchOrdersError, + fetchNextPage, + hasNextPage, + isFetchingNextPage, + refetch: ordersRefetch + } = useInfiniteQuery({ + queryKey: ['fetchOrders', appId, currentStatus, debouncedSearch, startdate, enddate, rowsPerPage, tenantid, locationid], + queryFn: fetchOrders, + getNextPageParam: (lastPage) => lastPage.nextPage ?? undefined, + refetchOnWindowFocus: true, + refetchOnMount: true, // 👈 ensures API triggers on page navigation + refetchOnReconnect: true, + staleTime: 0 + }); + + const rows = orderData?.pages.flatMap((page) => page.rows) || []; + + useEffect(() => { + if (!hasNextPage) return; + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + fetchNextPage(); + } + }, + { + root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + rootMargin: '0px', + threshold: 1.0 + } + ); + if (loadMoreRef.current) observer.observe(loadMoreRef.current); + return () => { + if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); + }; + }, [hasNextPage, fetchNextPage]); + + const handleScroll = (event) => { + const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; + if (scrollTop + clientHeight >= scrollHeight - 50) { + if (hasNextPage && !isFetchingNextPage) { + fetchNextPage(); + } + } + }; + + // ======================================================= || createDeliveryMutation || ======================================================= + + const createDeliveryMutation = useMutation({ + // mutationFn: createDeliveries, // Using the separate function + // 0 -> manual rider assign 1 -> ai rider assign + mutationFn: aiModeRef.current == 0 ? createOptimisationDeliveries : createAutomationDeliveries, + onSuccess: (data, variables = []) => { + console.log('data', data); + console.log('varialbles', variables); + OpenToast('Orders Optimised Successfully', 'success', 2000); + orderscountRefetch(); + ordersRefetch(); + // notifyRiderMutation.mutate(variables?.riderToken); // Call notifyRider after success + setAssignLoading(false); + setCreateloader(false); + if (aiModeRef.current == 0) { + setZoneSummary(data?.zone_analysis); + setDeliveryDetails(data?.details); + setZoneData(data?.zones); + setMetaData(data?.meta); + setNormalAssignDialog(true); + // navigate('/nearle/orders/preview', { + // state: { + // zoneSummary: data?.zone_analysis, + // deliverylist: data?.details, + // zoneData: data?.zones, + // metaData: data?.meta, + // riderToken: rider.userfcmtoken, + // appId, + // aiMode: aiModeRef.current, + // reassignOrders + // } + // }); + } else { + setZoneSummary(data?.zone_analysis); + setDeliveryDetails(data?.details); + setZoneData(data?.zones); + setMetaData(data?.meta); + setAiDialog(true); + // navigate('/nearle/orders/optimisedpreview', { + // state: { + // zoneSummary: data?.zone_analysis, + // deliverylist: data?.details, // to deliveryDetails + // zoneData: data?.zones, + // metaData: data?.meta, + // riderToken: rider.userfcmtoken, + // appId, + // aiMode: aiModeRef.current, + // reassignOrders + // } + // }); + } + }, + onError: (error) => { + OpenToast(error.message, 'error', 4000); + setCreateloader(false); + setAssignLoading(false); + }, + onSettled: () => { + assignDialogclose(); + setAssignLoading(false); + setCreateloader(false); + setIsLoading(false); + } + }); + // ======================================================= || handleManualCreateDelivery || ======================================================= + + const handleManualCreateDelivery = () => { + if (!finaldeliveryList?.length) { + OpenToast('No deliveries selected', 'error', 3000); + return; + } + createManualDeliveryMutation.mutate({ + deliveries: finaldeliveryList + }); + }; + + // ======================================================= || createManualDeliveryMutation || ======================================================= + const createManualDeliveryMutation = useMutation({ + mutationFn: finalCreatedeliveries, + onMutate: () => { + setIsLoading(true); + }, + onSuccess: (data) => { + console.log('create data', data); + OpenToast('Delivery Created Successfully', 'success', 2000); + navigate('/nearle/deliveries'); // ✅ no delay + // if (rider?.userfcmtoken) { + notifyRiderMutation.mutate(rider?.userfcmtoken); + // } + }, + + onError: (error) => { + OpenToast(error.message, 'error', 4000); + }, + + onSettled: () => { + setIsLoading(false); + } + }); + + // ==============================|| cancelOrder ||============================== // + + const cancelOrderMutation = useMutation({ + mutationFn: cancelOrder, + onSuccess: (data) => { + if (data.status) { + setCancelDialog(false); + OpenToast('Order Cancelled Successfully', 'success', 2000); + orderscountRefetch(); + percentagedataRefetch(); + } + }, + onError: (error) => { + OpenToast(error.message, 'error', 2000); + } + }); + + // ==============================|| cancelMultipleOrder ||============================== // + + const cancelMultipleOrderMutation = useMutation({ + mutationFn: cancelMultipleOrder, + onSuccess: (data) => { + if (data.status) { + setMultiDeleteDialog(false); + OpenToast('Order Cancelled Successfully', 'success', 2000); + ordersRefetch(); + orderscountRefetch(); + percentagedataRefetch(); + setDeliverylist([]); + } + }, + onError: (error) => { + OpenToast(error.message, 'error', 2000); + } + }); + + // ======================================================= || notifyRiderMutation || ======================================================= + + const notifyRiderMutation = useMutation({ + mutationFn: notifyRider, // Using the separate function + onSuccess: () => { + OpenToast('Notification sent Successfully', 'success', 2000); + }, + onError: (error) => { + OpenToast(error.message, 'error', 2000); + } + }); + + // ======================================================= || handleCreateDelivery || ======================================================= + + const handleCreateDelivery = async (tune) => { + setIsLoading(true); + setAssignLoading(true); + const deliveryData = deliverylist.map((val) => ({ + ...val, + deliveryid: 0, + deliverydate: dayjs(val.deliverydate).utc().format('YYYY-MM-DD HH:mm:ss'), + assigntime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + orderstatus: 'pending', + orderamount: val.deliverycharge, + droplat: val.deliverylat, + droplon: val.deliverylong, + pickuplat: val.pickuplat, + pickuplon: val.pickuplong, + ordernotes: val.ordernotes, + deliverycharges: val.deliverycharge, + pickuplocation: val.pickupsuburb, + deliverylocation: val.deliverysuburb + })); + setReassignOrders(deliveryData); + console.log('deliveryData', deliveryData); + if (aiModeRef.current == 0) { + // manual assign + createDeliveryMutation.mutate({ + deliveries: deliveryData + }); + } else { + if (selectedMode && selectedMode?.value == 1) { + // bike auto assign + createDeliveryMutation.mutate({ + // mode 1 -> bike , 2 -> auto + deliveries: selectedMode.value == 1 ? deliveryData : { body: deliveryData }, + hypertuning_params: tune || null, + selectedMode + // reshuffle: 'joshi' + }); + } else { + createDeliveryMutation.mutate({ + // Auto auti assign + data: { + orders: deliveryData, + riders: autoRiders, + config: { + pay_type: 'hourly', // options: "hourly", "daily", or "orders" + base_pay: 300.0, + strategy: 'multi_trip' + } + }, + selectedMode + }); + } + } + }; + // ======================================================= || createFinalDeliveryMutation || ======================================================= + + const createFinalDeliveryMutation = useMutation({ + mutationFn: finalCreatedeliveries, // for optimised delivery create + onSuccess: (data, variables) => { + console.log('data', data); + console.log('varialbles', variables); + // notifyRiderMutation.mutate(rider.userfcmtoken); // Call notifyRider after success + OpenToast('Delivery Created Successfully', 'success', 2000); + setIsLoading(false); + navigate('/nearle/deliveries'); + }, + onError: (error) => { + OpenToast(error.message, 'error', 4000); + }, + onSettled: () => { + setIsLoading(false); + } + }); + + // ======================================================= || handleFinalCreateDelivery || ======================================================= + + const handleFinalCreateDelivery = async () => { + // console.log('Final delivery list:', finaldeliveryList); + + setIsLoading(true); + createFinalDeliveryMutation.mutate({ + deliveries: finaldeliveryList + }); + }; + + const handleChangetab = (e, i) => { + setPage(0); + setTabvalue(i); + if (i === 0) { + setCurrentStatus('created'); + } + if (i === 1) { + setCurrentStatus('pending'); + } + if (i === 2) { + setCurrentStatus('delivered'); + } + if (i === 3) { + setCurrentStatus('cancelled'); + } + setSearchword(''); + }; + + const assignDialogclose = () => { + setAssignDialog(false); + setRider(null); + setPayment(null); + }; + + const errorMessage = fetchpercentageIsError + ? `Error fetching percentages: ${fetchpercentageError?.message}` + : fetchorderscountIsError + ? `Error fetching orders Count: ${fetchorderscountError?.message}` + : fetchOrdersIsError + ? `Error fetching orders : ${fetchOrdersError?.message}` + : fetchtenantsIsError + ? `Error Fetching on Tenants:${fetchtenantsError?.message} ` + : fetchlocationsIsError + ? `Error Fetching on Tenants Locations:${fetchlocationsError?.message} ` + : null; + + useEffect(() => { + if (errorMessage) { + console.log(errorMessage); + OpenToast(errorMessage, 'error', 3000); + } + }, [errorMessage]); + + return ( + + {(fetchpercentageIsLoading || + fetchorderscountIsLoading || + fetchOrdersIsLoading || + fetchtenantsIsLoading || + fetchlocationsIsLoading || + createloader) && ( + <> + + + + )} + { + theme.zIndex.drawer + 1 + }} + open={createloader || fetchOrdersIsLoading} // when loader = true, backdrop covers the page + > + + + } + {} + {/* // ==============================|| SpeedDial ||============================== // */} + {deliverylist.length > 0 && ( + + + + } + open={speedDialOpen} + onOpen={() => setSpeedDialOpen(true)} + onClose={() => setSpeedDialOpen(false)} + sx={{ + position: 'fixed', + bottom: 52, + right: 16, + '& .MuiFab-primary': { + bgcolor: '#7b1fa2', + color: '#fff', + '&:hover': { + bgcolor: '#6a1b9a' + }, + width: 64, + height: 64 + } + }} + > + + } + tooltipTitle=" Optimisation" + FabProps={{ + sx: { + bgcolor: 'primary.main', + color: '#fff', + '&:hover': { + bgcolor: 'primary.dark' + }, + width: 64, + height: 64 + } + }} + onClick={() => { + aiModeRef.current = 1; + // setAiMode(1); + setSpeedDialOpen(false); + setAssignDialog(true); + }} + /> + } + tooltipTitle="Manual Assign" + FabProps={{ + sx: { + bgcolor: 'success.600', + color: '#fff', + '&:hover': { + bgcolor: 'success.dark' + }, + width: 64, + height: 64 + } + }} + onClick={() => { + aiModeRef.current = 0; + setSpeedDialOpen(false); + setAssignDialog(true); + }} + /> + + } + tooltipTitle="Delete" + FabProps={{ + sx: { + bgcolor: '#d32f2f', + color: '#fff', + '&:hover': { + bgcolor: '#9a0007' + }, + width: 64, + height: 64 + } + }} + onClick={() => { + setSpeedDialOpen(false); + setMultiDeleteDialog(true); + }} + /> + + )} + {/* ============================================= || titlecard | ============================================= */} + + + + {/* ============================================= || Hovercard | ============================================= */} + + {[ + { + label: 'Created orders', + value: percentageData?.created, + percentage: percentageData?.percentage1, + color: theme.palette.info.main + }, + { + label: 'Pending orders', + value: percentageData?.uncoveredOrders, + percentage: percentageData?.percentage2, + color: theme.palette.warning.main + }, + { + label: 'Delivered orders', + value: percentageData?.coveredOrders, + percentage: percentageData?.percentage3, + color: theme.palette.success.main + }, + { + label: 'Cancelled Orders', + value: percentageData?.cancelled, + percentage: percentageData?.percentage4, + color: theme.palette.error.main + } + ].map((item, index) => ( + + : item.value} + percentage={item.percentage?.toString()} + color={item.color} + /> + + ))} + + {/* ============================================= || orderFilter | ============================================= */} + + {/* Order Status Chips */} + + {startdate && enddate ? ( + + } + label={`Orders-${datestatus}`} + color="error" + variant="combined" + /> + + + + + } + label={ + + {`${dayjs(startdate).format('DD/MM/YYYY')} - ${dayjs(enddate).format('DD/MM/YYYY')}`} + + } + color="warning" + variant="combined" + onClick={() => setOpen(true)} + sx={{ cursor: 'pointer' }} + /> + + + + + } + label={locaName} + color="info" + variant="combined" + /> + + ) : ( + + )} + + + + {/* ==================================================== || Tenant Autocomplete || ==================================================== */} + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(0); + setLocationValue(null); + } + }} + renderInput={(params) => } + /> + {/* ==================================================== || Location Autocomplete || ==================================================== */} + `${option.locationname} (${option.suburb})` || ''} + value={locationValue} + sx={{ minWidth: 250, maxWidth: 600, flex: 1 }} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select a your Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + } else { + setLocationid(val.locationid || 0); + setLocationValue(val); + } + }} + renderInput={(params) => } + /> + + {/* ============================================= || filter Dialog | ============================================= */} + setOpen(false)} + onSelect={(range) => { + setStartdate(range.startDate); + setEnddate(range.endDate); + setDatestatus(range.label); + console.log('Selected Date Range:', range); + }} + /> + + + {/* ============================================= || Tabs || ============================================= */} + + + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + } + iconPosition="end" + /> + + + + {/* ============================================= || Table || ============================================= */} + + + + + + {currentStatus == 'created' && ( + + 0 && deliverylist.length !== rows?.length} + checked={deliverylist.length === rows?.length} + onChange={(e) => { + if (!appId) { + OpenToast('Please select a location first!', 'warning', 2000); + locationRef.current?.focus(); // Auto-focus on the Autocomplete input + return; + } + if (e.target.checked) { + const newList = rows?.map((row, index) => ({ + ...row, + sno: index + 1 + })); + setDeliverylist(newList); + } else { + setDeliverylist([]); + } + }} + /> + + )} + + #{' '} + + + Tenant{' '} + + + {' '} + Location + + + {' '} + Pickup{' '} + + + {' '} + Drop{' '} + + + {' '} + QTY{' '} + + + COD + + + KMS + + + Charges + + + {' '} + Notes{' '} + + + status{' '} + + {currentStatus == 'created' && ( + + Actions + + )} + + + + {rows?.length === 0 && !fetchOrdersIsLoading && ( + + + + + + + + )} + {fetchOrdersIsLoading && } + {rows?.map((row, index) => { + const isItemSelected = !!deliverylist.find((res) => res.orderheaderid === row.orderheaderid); + const handleCheckbox = (e) => { + if (!appId) { + OpenToast('Please select a location first!', 'warning', 2000); + locationRef.current?.focus(); + return; + } + if (e.target.checked) { + setDeliverylist((prev) => [...prev, { ...row, sno: prev.length + 1 }]); + } else { + setDeliverylist((prev) => + prev.filter((item) => item.orderheaderid !== row.orderheaderid).map((item, i) => ({ ...item, sno: i + 1 })) + ); + } + }; + + return ( + + {currentStatus === 'created' && ( + + + + )} + + {/* Serial Number */} + + {page * rowsPerPage + index + 1} + + + {/* Tenant Info */} + + + + {row.tenantname} + + + {row.tenantsuburb} +
    +
    + + {row.applocation} + +
    +
    + + {/* Order Info */} + + {/* */} + + {`${row.locationname}-(${row.locationsuburb})`} + + {/* */} + + + {row.orderid} + + + + + {dayjs(row.pickupslot).utc().format('DD/MM/YYYY')} {dayjs(row.pickupslot).format('hh:mm A')} + + + + + {/* Pickup Info */} + + + + {row.pickupcustomer} + + {row.pickupcontactno} + + {`${row.pickupsuburb || row.pickupaddress.slice(0, 12) + '.....'}`} + + + + + {/* Delivery Info */} + + + + {row.deliverycustomer} + + {row.deliverycontactno} + + {`${row.deliverysuburb || row.deliveryaddress.slice(0, 12) + '.....'}`} + + + + {/* Quantity */} + + + {row.quantity ? ( + + {row.quantity} + + ) : ( + + {row.quantity} + + )} + + {/* cod */} + + {row.collectionamt ? ( + + ₹{row.collectionamt.toFixed(2)} + + ) : ( + + ₹{row.collectionamt.toFixed(2)} + + )} + + {/* kms */} + + + {row.kms} + + + {/* Charges */} + + {row.deliverycharge ? ( + + ₹{row.deliverycharge.toFixed(2)} + + ) : ( + + ₹{row.deliverycharge.toFixed(2)} + + )} + + + {/* Notes */} + + + {row.ordernotes} + + + + {/* Order Status */} + + + + + {/* Actions */} + {row.orderstatus === 'created' && ( + + + {row.deliverytype === 'C' && ( + + { + if (productCollapse?.orderid === row.orderid) { + setProductCollapse(null); + } else { + setProductCollapse(row); + } + }} + > + {productCollapse?.orderid === row.orderid ? : } + + + )} + + + { + setCancelDialog(true); + setOrderheaderid(row.orderheaderid); + }} + > + + + + + + )} +
    + ); + })} + {rows?.length != 0 && ( + + +
    + {isFetchingNextPage ? : hasNextPage ? : 'No More Orders'} +
    +
    +
    + )} +
    +
    +
    +
    + {/* ============================================= || Orders Preview Dialog | ============================================= */} + + { + theme.zIndex.modal + 1 + }} + open={createloader} + > + + + } + + + Preview Orders } variant="contained" /> + + + + + + + + + + # + + + Tenant{' '} + + + order Location + + + Pickup{' '} + + + Delivery + + + Notes + + + Charges + + + KMS + + + + + {deliverylist.map((val, i) => { + return ( + + + + {val.sno} + + + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.orderdate).utc().format('DD/MM/YYYY')} + + + {dayjs(val.orderdate).utc().format('hh:mm A')} + + + - + + + {dayjs(val.deliverydate).utc().format('DD/MM/YYYY')} + + + + {dayjs(val.deliverydate).utc().format('hh:mm A')} + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + {val.ordernotes} + ₹ {val.deliverycharge.toFixed(2)} + {val.kms} +
    +
    + ); + })} +
    +
    +
    +
    +
    + + + + + + {aiModeRef.current == 1 && ( + option.label} + value={selectedMode} + onChange={(event, newValue) => { + setSelectedMode(newValue); + console.log('Selected value:', newValue?.value); // 1 or 2 + }} + renderInput={(params) => ( + + )} + isOptionEqualToValue={(option, value) => option.value === value.value} + /> + )} + + + + + + +
    + {/* ============================================= || Normal Assign Orders | ============================================= */} + + + + + + setNormalAssignDialog(false)} + sx={{ + backgroundColor: 'action.hover', + color: 'text.primary', + '&:hover': { + backgroundColor: 'action.selected' + } + }} + > + + + + + Assign Orders + + + + + + + + {(paymentModesLoading || ridersListLoading || isLoading) && ( + <> + + + + )} + { + theme.zIndex.drawer + 1 + }} + open={paymentModesLoading || ridersListLoading || isLoading} // when loader = true, backdrop covers the page + > + + + } + + + + + + + # + + {aiMode == 1 && ( + + Zone{' '} + + )} + + Tenant{' '} + + + order Location + + + Pickup{' '} + + + Delivery + + + Notes + + {aiMode == 1 && ( + + Rider + + )} + + Type + + + Charges + + + KMS + + + + + {finaldeliveryList?.length == 0 && ( + + + + + + )} + {finaldeliveryList?.map((val, index) => { + return ( + + + {index + 1} + + + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.orderdate).utc().format('DD/MM/YYYY')} + + + {dayjs(val.orderdate).utc().format('hh:mm A')} + + + - + + + {dayjs(val.deliverydate).utc().format('DD/MM/YYYY')} + + + + {dayjs(val.deliverydate).utc().format('hh:mm A')} + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + {val.ordernotes} + {/* {aiMode == 1 && ( + + {val.username} + ID : {val.userid} + + )} */} + + + + + + + + + + + + + + + + + + + + + + + +
    + ); + })} +
    +
    +
    + +
    +
    + + + {/* Top Inputs Section */} + + + } + onChange={(event, newValue, reason) => { + if (reason === 'clear') { + setPayment(null); + return; + } + + if (newValue) { + setPayment(newValue); + + const newList = finaldeliveryList?.map((list) => ({ + ...list, + paymenttype: newValue.apptypeid || 42 + })); + + setFinalDeliveryList(newList); + } + }} + /> + + + + } + onChange={(event, newValue, reason) => { + if (reason === 'clear') { + setRider(null); + return; + } + + if (newValue) { + setRider(newValue); + + const newList = finaldeliveryList?.map((list) => ({ + ...list, + userid: newValue.userid, + fuelcharge: newValue.fuelcharge || 0, + userfcmtoken: newValue.userfcmtoken + })); + + setFinalDeliveryList(newList); + } + }} + /> + + + + {/* Buttons Section */} + + + + + + +
    + {/* ============================================= || AI optimisation Assign Orders | ============================================= */} + + { + theme.zIndex.modal + 1 + }} + open={isLoading} + > + + + } + + + + + navigate('/nearle/orders')} + sx={{ + bgcolor: 'action.hover', + '&:hover': { bgcolor: 'action.selected' } + }} + > + + + + + Assign Orders + + + + option.type} + sx={{ minWidth: 250, maxWidth: 600, flex: 1 }} + renderInput={(params) => } + onChange={(e, val, reason) => { + if (reason === 'clear') { + handleCreateDelivery(null); + } else { + console.log('val', val); + handleCreateDelivery(val.value); + } + }} + /> + {/* option.type} + renderOption={(props, option, { selected }) => { + const { id, ...optionProps } = props; + const SelectionIcon = selected ? CheckBoxIcon : CheckBoxOutlineBlankIcon; + + return ( +
  • + + {option.type} +
  • + ); + }} + style={{ width: 400 }} + renderInput={(params) => ( + + )} + /> */} + + +
    +
    + + + + } + color={theme.palette.success.main} + sx={{ cursor: 'pointer' }} + /> + + + } + color={theme.palette.warning.main} + /> + + + } + color={theme.palette.info.main} + /> + + + } + color={theme.palette.error.main} + /> + + + +
    + + + {zoneData?.map((zone, index) => { + const riders = zone?.riders.flatMap((rider) => rider); + const orders = zone?.riders?.flatMap((rider) => rider.orders); + + return ( + + + + + Zone {index + 1} : + + + + + + + + + + + + + + + + + + + + # + {/* Tenant */} + Order Location + Pickup + Delivery + Notes + Rider + Type + Profit + Charges + KMS + + + + + {orders.map((val, i) => ( + + + + {i + 1} + + {/* + + + {val.tenantname} + + + {val.tenantsuburb} +
    +
    + + + {val.applocation} + +
    +
    */} + + + + {`${val.locationname}-(${val.locationsuburb})`} + + + + + {val.orderid} + + + + + + {dayjs(val.pickupslot).format('DD/MM/YYYY')} + + + + + + + {dayjs(val.expectedDeliveryTime).format('DD/MM/YYYY')} + + + + + + + + + {val.pickupcustomer} + {val.pickupcontactno} + + + {val.pickupsuburb || val.pickupaddress.slice(0, 20)} + + + + + + + + + {val.deliverycustomer} + {val.deliverycontactno} + + + {val.deliverysuburb || val.deliveryaddress.slice(0, 20)} + + + + + + + + {val.ordernotes} + + + + + + {val.rider} + +
    + ID : {val.userid} +
    + + + + ) : val.ordertype === 'Risky' ? ( + + ) : ( + + ) + } + color={val.ordertype === 'Economy' ? 'success' : val.ordertype === 'Risky' ? 'error' : 'primary'} + variant="light" + /> + + + + + + + + + + + {/* + + */} + + + + + + + + + + + + +
    +
    + ))} +
    +
    +
    +
    +
    + ); + })} +
    +
    + + + + + + +
    + {/* ========================================= || cancel order Dialog || ========================================= */} + handleClose()} maxWidth="xs"> + + + + + + + + + Are you sure you want to cancel this order? + + + + + + + + + + + {/* ========================================= || Multiple cancel order Dialog || ========================================= */} + setMultiDeleteDialog(false)} maxWidth="xs"> + + + + + + + + + Are you sure, you want to cancel multiple orders? + + + + + + + + + + +
    + ); +}; + +export default Orders; diff --git a/src/pages/nearle/reports/MapWithRouteGoogle.js b/src/pages/nearle/reports/MapWithRouteGoogle.js new file mode 100644 index 0000000..e7e1e5e --- /dev/null +++ b/src/pages/nearle/reports/MapWithRouteGoogle.js @@ -0,0 +1,91 @@ +import React, { useEffect, useRef } from 'react'; +import { LoadScriptNext, GoogleMap } from '@react-google-maps/api'; + +const containerStyle = { + width: '100%', + height: '90vh' +}; + +const MapWithRouteGoogle = ({ coordinates, additionalProps, setMapOpen }) => { + const mapRef = useRef(null); + + /** Convert coordinates to numbers */ + const numericCoordinates = coordinates + .map((c) => { + const lat = Number(c.lat); + const lng = Number(c.lng); + return isNaN(lat) || isNaN(lng) ? null : { lat, lng }; + }) + .filter(Boolean); + + if (numericCoordinates.length < 2) { + return
    No route data available
    ; + } + + const start = numericCoordinates[0]; + const end = numericCoordinates[numericCoordinates.length - 1]; + + /** Map loaded callback */ + const onMapLoad = (map) => { + // draw markers + new window.google.maps.Marker({ + position: start, + map, + label: 'S', + title: `Start: ${additionalProps?.riderStart}` + }); + + new window.google.maps.Marker({ + position: end, + map, + label: 'E', + title: `End: ${additionalProps?.riderEnd}` + }); + + // draw rider route (point-to-point) + const route = new window.google.maps.Polyline({ + path: numericCoordinates, + geodesic: false, + strokeColor: '#1A73E8', + strokeOpacity: 1.0, + strokeWeight: 4 + }); + + route.setMap(map); + + // auto fit + const bounds = new window.google.maps.LatLngBounds(); + numericCoordinates.forEach((p) => bounds.extend(p)); + map.fitBounds(bounds); + }; + + return ( + <> + + + + + {/* Polyline and markers added via onLoad */} + + + + ); +}; + +export default MapWithRouteGoogle; diff --git a/src/pages/nearle/reports/RiderLocationMap.js b/src/pages/nearle/reports/RiderLocationMap.js new file mode 100644 index 0000000..5dfabf2 --- /dev/null +++ b/src/pages/nearle/reports/RiderLocationMap.js @@ -0,0 +1,76 @@ +import { Button } from '@mui/material'; +import { LoadScriptNext, GoogleMap, Marker, OverlayView } from '@react-google-maps/api'; + +const containerStyle = { + width: '100%', + height: 'calc(100vh - 150px)' +}; + +export default function RiderLocationMap({ riderLocations }) { + console.log('riderLocations', riderLocations); + + const center = { + lat: Number(riderLocations?.[0]?.latitude || 11.0056), + lng: Number(riderLocations?.[0]?.longitude || 76.9661) + }; + const GreenIcon = { + url: 'https://cdn.rawgit.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png', + scaledSize: new window.google.maps.Size(25, 41), + anchor: new window.google.maps.Point(12, 41) + }; + + const RedIcon = { + url: 'https://cdn.rawgit.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png', + scaledSize: new window.google.maps.Size(25, 41), + anchor: new window.google.maps.Point(12, 41) + }; + + return ( + + + {riderLocations && + riderLocations?.map((r, index) => { + const lat = Number(r.latitude); + const lng = Number(r.longitude); + return ( +
    + {/* Marker */} + + +
    + +
    +
    +
    + ); + })} +
    +
    + ); +} diff --git a/src/pages/nearle/reports/RidersRoutes.js b/src/pages/nearle/reports/RidersRoutes.js new file mode 100644 index 0000000..1128341 --- /dev/null +++ b/src/pages/nearle/reports/RidersRoutes.js @@ -0,0 +1,69 @@ +import React, { useEffect, useMemo, useRef } from 'react'; +import { GoogleMap, Polyline, Marker, useJsApiLoader } from '@react-google-maps/api'; + +const containerStyle = { + width: '100%', + height: '100%' +}; + +export default function RidersRoutes({ details }) { + const mapRef = useRef(null); + + const { isLoaded } = useJsApiLoader({ + googleMapsApiKey: process.env.REACT_APP_GOOGLE_MAPS_KEY + }); + + // Convert dataset + const routePath = useMemo( + () => + details?.map((p) => ({ + lat: Number(p.latitude), + lng: Number(p.longitude) + })), + [details] + ); + const bikeIcon = { + path: 'M12 2c-2.2 0-4 1.8-4 4v3H5l-1 2h2l3.6 7.59c.34.58.96.94 1.64.94h2.52c.68 0 1.3-.36 1.64-.94L19 11h2l-1-2h-3V6c0-2.2-1.8-4-4-4z', + fillColor: '#9c27b0', // 🔥 purple + fillOpacity: 1, + strokeWeight: 0, + scale: 1.4, + anchor: new window.google.maps.Point(12, 24) + }; + + // Auto fit bounds + useEffect(() => { + if (!mapRef.current || routePath.length === 0) return; + + const bounds = new window.google.maps.LatLngBounds(); + routePath.forEach((p) => bounds.extend(p)); + mapRef.current.fitBounds(bounds); + }, [routePath]); + + if (!isLoaded) return
    Loading map...
    ; + + return ( + (mapRef.current = map)} center={routePath[0]} zoom={16}> + {/* Route line */} + + + {/* Start marker */} + + + {/* End marker */} + + + ); +} diff --git a/src/pages/nearle/reports/mapWithRoute.js b/src/pages/nearle/reports/mapWithRoute.js new file mode 100644 index 0000000..e6a42ae --- /dev/null +++ b/src/pages/nearle/reports/mapWithRoute.js @@ -0,0 +1,173 @@ +import React, { useEffect, useRef, useState } from 'react'; +import { MapContainer, TileLayer, Marker, Polyline, Tooltip } from 'react-leaflet'; +import L from 'leaflet'; +import 'leaflet/dist/leaflet.css'; +import dayjs from 'dayjs'; +import { Chip, Stack, Typography, Box } from '@mui/material'; +import { CloseCircleOutlined } from '@ant-design/icons'; +import { useTheme } from '@mui/material/styles'; +import CircularLoader from 'components/CircularLoader'; + +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); + +// Start marker +const startIcon = new L.Icon({ + iconUrl: 'https://cdn.rawgit.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + shadowSize: [41, 41] +}); + +// End marker +const endIcon = new L.Icon({ + iconUrl: 'https://cdn.rawgit.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png', + shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', + iconSize: [25, 41], + iconAnchor: [12, 41], + shadowSize: [41, 41] +}); + +const MapWithRoute = ({ coordinates, additionalProps, order, setMapOpen }) => { + console.log('additionalProps', additionalProps); + + const mapRef = useRef(null); + const theme = useTheme(); + const [routePoints, setRoutePoints] = useState([]); + const [loading, setLoading] = useState(false); + + // Fit the map to bounds + useEffect(() => { + if (mapRef.current && coordinates.length > 0) { + const bounds = [ + [Math.min(...coordinates.map((c) => c.lat)), Math.min(...coordinates.map((c) => c.lng))], + [Math.max(...coordinates.map((c) => c.lat)), Math.max(...coordinates.map((c) => c.lng))] + ]; + mapRef.current.fitBounds(bounds); + } + }, [coordinates]); + + // Fetch OSRM Route → REAL ROAD ROUTE + useEffect(() => { + const getOSRMRoute = async () => { + setLoading(true); + + // FIX: If only one coordinate, stop loader and exit + if (coordinates.length < 2) { + setRoutePoints([]); // no route + setLoading(false); + return; + } + + const start = coordinates[0]; + const end = coordinates[coordinates.length - 1]; + + const url = `https://router.project-osrm.org/route/v1/driving/${start.lng},${start.lat};${end.lng},${end.lat}?overview=full&geometries=geojson`; + + try { + const res = await fetch(url); + const data = await res.json(); + + if (data.routes?.length) { + const points = data.routes[0].geometry.coordinates.map(([lng, lat]) => ({ + lat, + lng + })); + setRoutePoints(points); + } + } catch (err) { + console.error('OSRM Error:', err); + } finally { + setLoading(false); // ALWAYS STOP LOADING + } + }; + + getOSRMRoute(); + }, [coordinates]); + + if (!coordinates || coordinates.length === 0) return null; + + const start = coordinates[0]; + const end = coordinates[coordinates.length - 1]; + const center = coordinates[Math.floor(coordinates.length / 2)]; + + const InfoItem = ({ label, value }) => ( + + + {label}: + + + + ); + + return ( + + {loading && } + {/* CLOSE BUTTON */} + } + onClick={() => setMapOpen(false)} + sx={{ + position: 'absolute', + top: 12, + right: 12, + zIndex: 2000, + bgcolor: theme.palette.error.main, + color: '#fff', + fontWeight: 600, + borderRadius: '12px', + px: 1.5, + py: 0.5, + boxShadow: theme.shadows[4], + cursor: 'pointer', + '& .MuiChip-icon': { color: '#fff' } + }} + /> + + {/* MAP */} + + + + {/* START MARKER */} + + {`Pickup: ${dayjs(additionalProps.riderStart).format('DD-MM-YYYY hh:mm A')}`} + + + {/* END MARKER */} + + {`Drop: ${dayjs(additionalProps.riderEnd).format('DD-MM-YYYY hh:mm A')}`} + + + {/* REAL OSRM ROUTE */} + {routePoints.length > 0 && } + + + {/* BOTTOM DETAILS */} + + + + + + + + + + + + + ); +}; + +export default MapWithRoute; diff --git a/src/pages/nearle/reports/ordersDetails.js b/src/pages/nearle/reports/ordersDetails.js new file mode 100644 index 0000000..066a000 --- /dev/null +++ b/src/pages/nearle/reports/ordersDetails.js @@ -0,0 +1,1307 @@ +import { React, useState, useEffect, useRef } from 'react'; +import TitleCard from 'pages/titleCard'; +import axios from 'axios'; +import { useInfiniteQuery, useQuery } from '@tanstack/react-query'; +import { Empty } from 'antd'; +import { useTheme } from '@mui/material/styles'; +import MapWithRoute from './mapWithRoute'; +import { FaCircleCheck } from 'react-icons/fa6'; +import CircularLoader from 'components/CircularLoader'; +import DownloadOutlinedIcon from '@mui/icons-material/DownloadOutlined'; + +// material-ui +import { + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Dialog, + Typography, + Stack, + Tooltip, + Chip, + Autocomplete, + Badge, + TextField, + Backdrop, + Button, + DialogContent, + DialogActions, + List, + ListItem, + DialogTitle, + Box, + Skeleton +} from '@mui/material'; +import { CloseCircleFilled, EnvironmentFilled, EnvironmentOutlined } from '@ant-design/icons'; +import { CalendarMonth } from '@mui/icons-material'; +import { fetchDeliveries, getriderbydelivery, gettenantlocations, getTenants } from 'pages/api/api'; +import MainCard from 'components/MainCard'; +import { CSVExport } from 'components/third-party/ReactTable'; +import Loader from 'components/Loader'; +import { enqueueSnackbar } from 'notistack'; +import DateFilterDialog from 'components/DateFilterDialog'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import dayjs from 'dayjs'; +import { OpenToast } from 'components/third-party/OpenToast'; +import TableLoader from 'components/nearle_components/TableLoader'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); + +const opentoast = (message, variant, time) => { + enqueueSnackbar(message, { + variant: variant, + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: time ? time : 1500 + }); +}; + +const headCells = [ + { + id: 'sno', + disablePadding: false, + label: '#' + }, + { + id: 'map', + disablePadding: false, + label: '^' + }, + { + id: 'tenantname', + disablePadding: false, + label: 'Client' + }, + + { + id: 'Pickup loco', + disablePadding: false, + label: 'Pickup' + }, + { + id: 'Delivery loco', + disablePadding: false, + label: 'Drop' + }, + { + id: 'order status', + disablePadding: false, + label: 'status' + }, + { + id: 'assigned', + disablePadding: false, + label: 'assigned' + }, + { + id: 'Accepted', + disablePadding: false, + label: 'Accepted' + }, + { + id: 'arrived', + disablePadding: false, + label: 'arrived' + }, + { + id: 'picked', + disablePadding: false, + label: 'picked' + }, + { + id: 'active', + disablePadding: false, + label: 'active' + }, + + { + id: 'Delivered', + disablePadding: false, + label: 'Delivered' + }, + { + id: 'cancelled', + disablePadding: false, + label: 'cancelled' + }, + + { + id: ' notes', + disablePadding: false, + label: 'NOTES' + }, + + { + id: 'kms', + disablePadding: false, + label: 'KMS', + numeric: 'center' + }, + + { + id: 'charges', + numeric: 'center', + label: 'Charges', + disablePadding: false + } +]; + +// ==============================|| MUI TABLE - ENHANCED ||============================== // + +export default function OrdersDetails() { + const theme = useTheme(); + const csvRef = useRef(null); + const loadMoreRef = useRef(); + const containerRef = useRef(); + const locationRef = useRef(null); + const tenantRef = useRef(null); + const textFieldRef = useRef(null); + const userid = localStorage.getItem('userid'); + const [page, setPage] = useState(0); + const [rowsPerPage, setRowsPerPage] = useState(50); + const [locaName, setLocoName] = useState('All'); + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [open, setOpen] = useState(false); + const [mapOpen, setMapOpen] = useState(false); + const [datestatus, setDatestatus] = useState('Today'); + const [appId, setAppId] = useState(0); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + const [riderCoordinates, setRiderCoordinates] = useState([]); + const [riderStart, setRiderStart] = useState(); + const [riderEnd, setRiderEnd] = useState(); + const [mapTenant, setMapTenant] = useState({}); + const [isLoading, setIsLoading] = useState(false); + const [logsLoading, setLogsLoading] = useState(false); + let [total, settotal] = useState(0); + let [deliveredLenght, setDeliveredLenght] = useState(0); + let [pendingLenght, setPendingLenght] = useState(0); + let [cancelLenght, setCancelLenght] = useState(0); + let [assignLenght, setAssignLenght] = useState(0); + let [pickedLenght, setPickedLenght] = useState(0); + let [activeLenght, setActiveLenght] = useState(0); + let [arrivesLenght, setArrivedLenght] = useState(0); + let [skippedLenght, setSkippedLenght] = useState(0); + const [statusCount, setStatusCount] = useState(0); + const [currentStatus, setCurrentStatus] = useState('All'); + const [locationid, setLocationid] = useState(0); + const [tenantid, setTenantid] = useState(0); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + const [selectedRider, setSelectedRider] = useState(); + const [riderId, setRiderId] = useState(); + const [riderValue, setRiderValue] = useState(null); + const [reportDialog, setReportDialog] = useState(false); + + const status = [ + { id: 0, status: 'All', statusLow: 'All', count: total }, + { id: 1, status: 'Pending', statusLow: 'pending', count: pendingLenght }, + { id: 2, status: 'Accepted', statusLow: 'accepted', count: assignLenght }, + { id: 3, status: 'Arrived', statusLow: 'arrived', count: arrivesLenght }, + { id: 4, status: 'Picked', statusLow: 'picked', count: pickedLenght }, + { id: 5, status: 'Active', statusLow: 'active', count: activeLenght }, + { id: 6, status: 'Delivered', statusLow: 'delivered', count: deliveredLenght }, + { id: 7, status: 'Skipped', statusLow: 'skipped', count: skippedLenght }, + { id: 8, status: 'Cancelled', statusLow: 'cancelled', count: cancelLenght } + ]; + + // to clear the tenant and location and rider autocomplete + useEffect(() => { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setRiderId(0); + setRiderValue(null); + }, [appId]); + // to clear the location and rider autocomplete + useEffect(() => { + setLocationid(0); + setLocationValue(null); + setRiderId(0); + setRiderValue(null); + }, [tenantid]); + // to clear the rider autocomplete + useEffect(() => { + setRiderId(0); + setRiderValue(null); + }, [locationid]); + + // Function to calculate distance between two coordinates using Haversine formula + function calculateDistance(lat1, lon1, lat2, lon2) { + const R = 6371; // Radius of the Earth in kilometers + const dLat = (lat2 - lat1) * (Math.PI / 180); + const dLon = (lon2 - lon1) * (Math.PI / 180); + const a = + Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(lat1 * (Math.PI / 180)) * Math.cos(lat2 * (Math.PI / 180)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + const distance = R * c; // Distance in kilometers + return distance; + } + + // Function to calculate total distance traveled along the route + function calculateTotalDistance(routeCoordinates) { + let totalDistance = 0; + for (let i = 0; i < routeCoordinates.length - 1; i++) { + const { lat: lat1, lng: lon1 } = routeCoordinates[i]; + const { lat: lat2, lng: lon2 } = routeCoordinates[i + 1]; + const distance = calculateDistance(lat1, lon1, lat2, lon2); + console.log('distance', distance); + totalDistance += distance; + } + return totalDistance; + } + + const getdeliverylogs = async (id) => { + // setLogsLoading(true); + console.log('deliveryid', id); + try { + const res = await axios.get(`${process.env.REACT_APP_URL3}/deliveries/getdeliverylogs/?deliveryid=${id}`); + console.log('getdeliverylogs', res.data.details); + const datas = res.data.details; + if (datas.length != 0) { + setRiderStart(datas[0].logdate); + setRiderEnd(datas[datas.length - 1].logdate); + const coData = datas.map((data) => ({ lat: data.latitude, lng: data.longitude })); + console.log('coData', coData); + setRiderCoordinates(coData); + const totalDistance = calculateTotalDistance(coData); + // setRiderKms(totalDistance); + console.log('Total distance traveled:', totalDistance, 'km'); + setMapOpen(true); + } else if (datas == null || !datas) { + opentoast('No Logs Found ', 'error', 2000); + } + } catch (error) { + console.log('getdeliverylogs', error); + } finally { + // setLogsLoading(false); + } + }; + + // ==============================|| fetchorderdetails (orders)||============================== // + // const fetchorderdetails = async () => { + // setIsLoading(true); + // try { + // const response = await axios.get( + // appId == 0 + // ? currentStatus == 'All' + // ? `${process.env.REACT_APP_URL2}/deliveries/getdeliveries/?appuserid=${userid}&fromdate=${startdate}&todate=${enddate}&pageno=${ + // page + 1 + // }&pagesize=${rowsPerPage}&keyword=${debouncedSearch}` + // : `${ + // process.env.REACT_APP_URL2 + // }/deliveries/getdeliveries/?appuserid=${userid}&status=${currentStatus}&fromdate=${startdate}&todate=${enddate}&pageno=${ + // page + 1 + // }&pagesize=${rowsPerPage}&keyword=${debouncedSearch}` + // : currentStatus == 'All' + // ? `${ + // process.env.REACT_APP_URL2 + // }/deliveries/getdeliveries/?fromdate=${startdate}&todate=${enddate}&applocationid=${appId}&pageno=${ + // page + 1 + // }&pagesize=${rowsPerPage}&keyword=${debouncedSearch}` + // : `${ + // process.env.REACT_APP_URL2 + // }/deliveries/getdeliveries/?fromdate=${startdate}&todate=${enddate}&applocationid=${appId}&status=${currentStatus}&pageno=${ + // page + 1 + // }&pagesize=${rowsPerPage}&keyword=${debouncedSearch}` + // ); + // setRows(response.data.details || []); + // setIsLoading(false); + // } catch (error) { + // console.log('fetchorderdetails', error.message); + // setIsLoading(false); + // } + // }; + + // useEffect(() => { + // fetchorderdetails(); + // }, [appId, startdate, enddate, page, rowsPerPage, currentStatus]); + + const { + data: deliveriesData, + isLoading: fetchDeliveriesIsLoading, + isError: fetchDeliveriesIsError, + error: fetchDeliveriesError, + fetchNextPage, + hasNextPage, + isFetchingNextPage + } = useInfiniteQuery({ + queryKey: [ + 'fetchdeliveries', + appId, + userid, + currentStatus, + startdate, + enddate, + rowsPerPage, + debouncedSearch, + tenantid, + locationid, + selectedRider?.userid || 0 + ], + queryFn: fetchDeliveries, + getNextPageParam: (lastPage) => lastPage.nextPage ?? undefined, + refetchOnWindowFocus: true, + refetchOnMount: true, // 👈 ensures API triggers on page navigation + refetchOnReconnect: true + }); + const rows = deliveriesData?.pages.flatMap((page) => page.rows) || []; + + useEffect(() => { + if (!hasNextPage) return; + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + fetchNextPage(); + } + }, + { + root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + rootMargin: '0px', + threshold: 1.0 + } + ); + if (loadMoreRef.current) observer.observe(loadMoreRef.current); + return () => { + if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); + }; + }, [hasNextPage, fetchNextPage]); + + const handleScroll = (event) => { + const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; + if (scrollTop + clientHeight >= scrollHeight - 50) { + if (hasNextPage && !isFetchingNextPage) { + fetchNextPage(); + } + } + }; + // ==============================|| getTenants ||============================== // + + const { + data: tenantlist, + isLoading: fetchtenantsIsLoading, + isError: fetchtenantsIsError, + error: fetchtenantsError + } = useQuery({ + queryKey: ['tenantlist', appId], + queryFn: () => getTenants(appId), // Ensure appId is passed + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| getRiders ||============================== // + + const { + data: ridersList, + isLoading: getriderbydeliveryIsLoading, + isError: getriderbydeliveryIsError, + error: getriderbydeliveryError + } = useQuery({ + queryKey: ['getriderbydelivery', startdate, enddate, appId, tenantid, locationid], + queryFn: () => getriderbydelivery(startdate, enddate, appId, tenantid, locationid), + enabled: appId != 0 + }); + // ==============================|| gettenantlocations ||============================== // + + const { + data: locationlist, + isLoading: fetchlocationsIsLoading, + isError: fetchlocationsIsError, + error: fetchlocationsError + } = useQuery({ + queryKey: ['gettenantlocations', tenantid], + queryFn: () => gettenantlocations(tenantid), // Ensure appId is passed + enabled: tenantid !== 0 // Ensures query runs only when appId is valid + }); + /* ============================================= || fetchcount | ============================================= */ + const fetchcount = async () => { + setIsLoading(true); + try { + await axios + .get( + appId == 0 + ? `${process.env.REACT_APP_URL}/deliveries/deliverysummary/?fromdate=${startdate}&todate=${enddate}` + : `${ + process.env.REACT_APP_URL + }/deliveries/deliverysummary/?applocationid=${appId}&tenantid=${tenantid}&locationid=${locationid}&fromdate=${startdate}&todate=${enddate}&userid=${ + selectedRider?.userid || 0 + }` + ) + .then((res) => { + console.log('fetchcountres', res.data.details); + settotal(res.data.details.total); + currentStatus == 'All' && setStatusCount(res.data.details.total); + setPendingLenght(res.data.details.pending); + setAssignLenght(res.data.details.accepted); + setArrivedLenght(res.data.details.arrived); + setPickedLenght(res.data.details.picked); + setActiveLenght(res.data.details.active); + setDeliveredLenght(res.data.details.delivered); + setSkippedLenght(res.data.details.skipped); + setCancelLenght(res.data.details.cancelled); + }) + .catch((err) => { + console.log(err); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }); + } catch (err) { + console.log(err); + } finally { + setIsLoading(false); + } + }; + useEffect(() => { + fetchcount(); + }, [appId, startdate, enddate, currentStatus, tenantid, locationid, selectedRider]); + + // to download ex format filtered data + const csvData = rows?.map((order) => ({ + tenantname: order.tenantname, + tenantcity: order.tenantcity, + tenantcontactno: order.tenantcontactno, + rider: order.ridername, + orderid: order.orderid, + paymenttype: order.paymenttype == 64 ? 'Pay Later' : order.paymenttype == 42 ? 'Pay on Delivery' : 'Digital', + deliverydate: order.deliverydate, + orderstatus: order.orderstatus, + ordernotes: order.ordernotes, + kms: order.kms, + cumulativekms: order.cumulativekms, + assigntime: order.assigntime, + starttime: order.starttime, + arrivaltime: order.arrivaltime, + pickuptime: order.pickuptime, + deliverytime: order.deliverytime, + canceltime: order.canceltime, + deliverycharge: order.deliverycharges, + deliveryamt: order.deliveryamt, + pickupcustomer: order.pickupcustomer, + pickupcontactno: order.pickupcontactno, + Pickupaddress: order.pickupaddress, + pickupsuburb: order.pickupsuburb, + pickupcity: order.applocation, + pickuplat: order.pickuplat, + pickuplong: order.pickuplon, + deliverycustomer: order.deliverycustomer, + deliverycontactno: order.deliverycontactno, + deliveryaddress: order.deliveryaddress, + deliverysuburb: order.locationsuburb, + deliverylat: order.deliverylat, + deliverylong: order.deliverylong, + locationname: order.locationname, + locationsuburb: order.pickuplocation, + deliverylocation: order.deliverylocation, + locationcontactno: order.locationcontactno + })); + console.log('csvData', csvData); + + function formatDate(dateString) { + const date = dayjs(dateString); + const formattedDate = date.format('DD/MM/YYYY '); + return formattedDate; + } + function formatTime(dateString) { + const date = dayjs(dateString); + const formattedDate = date.format(' hh:mm A'); + return formattedDate; + } + + const errormessage = fetchDeliveriesIsError + ? `An error has occurred: (fetchDeliveries) ${fetchDeliveriesError.message}` + : fetchtenantsIsError + ? `An error has occurred: (getTenants) ${fetchtenantsError.message}` + : fetchlocationsIsError + ? `An error has occurred: (gettenantlocations) ${fetchlocationsError.message}` + : getriderbydeliveryIsError + ? `An error has occurred: (getriderbydelivery) ${getriderbydeliveryError.message}` + : null; + + useEffect(() => { + if (errormessage) { + console.log('errormessage', errormessage); + opentoast(errormessage, 'warning', 2000); + } + }, [errormessage]); + return ( + <> + {(isLoading || + fetchtenantsIsLoading || + fetchlocationsIsLoading || + logsLoading || + getriderbydeliveryIsLoading || + isFetchingNextPage) && ( +
    + + {/* */} +
    + )} + {fetchDeliveriesIsLoading && ( + theme.zIndex.drawer + 1 + }} + open={fetchDeliveriesIsLoading} // when loader = true, backdrop covers the page + > + {/* */} + + )} + + + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your app location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(val.locationid); + setLocationValue(null); + } + }} + renderInput={(params) => } + /> + {/* ==================================================== || Location Autocomplete || ==================================================== */} + `${option.locationname} (${option.suburb})` || ''} + value={locationValue} + sx={{ minWidth: 250, maxWidth: 1000, flex: 1 }} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select a your Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select a your Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + } else { + setLocationid(val.locationid || 0); + setLocationValue(val); + } + }} + renderInput={(params) => } + /> + + } + /> + + + {startdate && enddate && ( + + {`Orders-${datestatus}`} + + + {dayjs(startdate).format('DD/MM/YYYY')} - {dayjs(enddate).format('DD/MM/YYYY')} + + } + variant="combined" + color="warning" + size="small" + deleteIcon={} + onDelete={() => { + setOpen(true); + }} + onClick={() => setOpen(true)} + sx={{ cursor: 'pointer' }} + /> + + + )} + + + + `${option.status}`} + sx={{ minWidth: 250, maxWidth: 1000, flex: 1 }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setCurrentStatus('All'); + setStatusCount(status[0].count); + } else { + console.log('status', value); + setCurrentStatus(value.statusLow); + setStatusCount(value.count); + } + }} + renderInput={(params) => } + /> + `${option.firstname} ${option.lastname}`} + sx={{ minWidth: 250, maxWidth: 1000, flex: 1 }} + onOpen={() => { + if (!appId) { + OpenToast('Select App Location First', 'warning', 2000); + } + }} + onChange={(event, value, reason) => { + if (reason === 'clear') { + setSelectedRider(null); + setRiderId(0); + setRiderValue(null); + } else { + setSelectedRider(value); + setRiderId(value.userid); + setRiderValue(value); + } + }} + renderInput={(params) => } + /> + + + + } + > + + + + + {headCells.map((column) => ( + + {column.label} + + ))} + + + + {fetchDeliveriesIsLoading ? ( + + ) : rows?.length == 0 ? ( + + + + + + ) : ( + rows?.map((row, index) => { + return ( + + {page * rowsPerPage + index + 1} + { + if (row.orderstatus == 'delivered') { + console.log('row', row); + getdeliverylogs(row.deliveryid); + setMapTenant(row); + setIsLoading(true); + setTimeout(() => { + setIsLoading(false); + }, 500); + } else { + return null; + } + }} + > + {row.orderstatus == 'delivered' ? ( + + ) : ( + + )} + + {/* ================================================ || Client || ================================================ */} + + {row.tenantname} + + + {row.orderid} + + + + {dayjs(row.deliverydate).utc().format('DD/MM/YYYY')} + + + {dayjs(row.deliverydate).utc().format('hh:mm A')} + + + {/* ================================================ || Pickup || ================================================ */} + + + + + {row.pickupcustomer} + + {row.pickupcontactno} + + + + {` ${row.pickupsuburb || row.Pickupaddress.slice(0, 20) + '...'}`} + + + + {row.applocation} + + + + + {/* ================================================ || Drop || ================================================ */} + + + + + {row.deliverycustomer} + + {row.deliverycontactno} + + + + {/* {row.pickupaddress.slice(0, 20)} */} + {`${row.deliverysuburb || row.deliveryaddress.slice(0, 20) + '...'}`} + + + + + + {/* ================================================ || Status || ================================================ */} + + + + {row.orderstatus === 'created' && } + {row.orderstatus === 'pending' && } + {row.orderstatus === 'accepted' && ( + + )} + {row.orderstatus === 'arrived' && ( + + )} + {row.orderstatus === 'picked' && } + {row.orderstatus === 'active' && } + {row.orderstatus === 'delivered' && } + {row.orderstatus === 'skipped' && } + {row.orderstatus === 'cancelled' && } + + + + {row.ridername} + + + ID : {row.userid} + + + + {/* ================================================ || Assigned || ================================================ */} + + + + {row.assigntime === '' ? ( + + ) : ( + formatDate(row.assigntime) + )} + + + {row.assigntime === '' ? ( + + ) : ( + formatTime(row.assigntime) + )} + + + {/* ================================================ || Accepted || ================================================ */} + + + + {row.acceptedtime === '' ? ( + + ) : ( + formatDate(row.acceptedtime) + )} + + + {row.acceptedtime === '' ? ( + + ) : ( + formatTime(row.acceptedtime) + )} + + + + {/* ================================================ || Arrived || ================================================ */} + + + + {row.arrivaltime === '' ? ( + + ) : ( + formatDate(row.arrivaltime) + )} + + + {row.arrivaltime === '' ? ( + + ) : ( + formatTime(row.arrivaltime) + )} + + + {/* ================================================ || Picked || ================================================ */} + + + + {row.pickuptime === '' ? ( + + ) : ( + formatDate(row.pickuptime) + )} + + + + {row.pickuptime === '' ? ( + + ) : ( + formatTime(row.pickuptime) + )} + + {row.deliverystatus === 'active' && ( + + )} + + + + {/* ================================================ || Active || ================================================ */} + + + + {row.starttime === '' ? ( + + ) : ( + formatDate(row.starttime) + )} + + + {row.starttime === '' ? ( + + ) : ( + formatTime(row.starttime) + )} + + + {/* ================================================ || Delivered || ================================================ */} + + + + {row.deliverytime === '' ? ( + + ) : ( + formatDate(row.deliverytime) + )} + + + {row.deliverytime === '' ? ( + + ) : ( + formatTime(row.deliverytime) + )} + + + {/* ================================================ || Cancelled || ================================================ */} + + + + {row.canceltime === '' ? ( + + ) : ( + formatDate(row.canceltime) + )} + + + {row.canceltime === '' ? ( + + ) : ( + formatTime(row.canceltime) + )} + + + {/* ================================================ || Notes || ================================================ */} + + + + {row.ordernotes || } + + + {/* ================================================ || Kms || ================================================ */} + + + + + + + + {}} + sx={{ + minWidth: 80, + border: '1px solid #76ff03 ', + cursor: 'pointer' + }} + /> + + + {}} + sx={{ + minWidth: 80, + border: '1px solid #03a9f4 ', + cursor: 'pointer' + }} + /> + + + + {/* ================================================ || Charges || ================================================ */} + + + + + + + + + + + + + ); + }) + )} + +
    + + {rows?.length !== 0 && ( + + + {isFetchingNextPage ? : hasNextPage ? : 'No More Orders Details'} + + + )} +
    +
    + {/* ============================================= || Report Download Dialog | ============================================= */} + setReportDialog(false)} fullWidth maxWidth={'sm'}> + + Export Report + + + {fetchDeliveriesIsLoading && } + + } + > + + App Location + + + + + } + > + + Tenant + + + + + } + > + + Business Location + + + + } + > + + Status + + + + + } + > + + Rider + + + + } + > + + Keyword + + + + } + > + + Start Date + + + + } + > + + End Date + + + + + + {/* Visible Button */} + + { + setTimeout(() => setReportDialog(false), 0); + }} + /> + + + {/* ============================================= || filter Dialog | ============================================= */} + setOpen(false)} + onSelect={(range) => { + setStartdate(range.startDate); + setEnddate(range.endDate); + setDatestatus(range.label); + console.log('Selected Date Range:', range); + }} + /> + {/* ============================================= || map dialog | ============================================= */} + { + setMapOpen(false); + }} + fullScreen + fullWidth + > + {riderCoordinates && ( +
    + +
    + )} + {/* {riderCoordinates && ( +
    + +
    + )} */} +
    + + ); +} diff --git a/src/pages/nearle/reports/ordersSummary.js b/src/pages/nearle/reports/ordersSummary.js new file mode 100644 index 0000000..dd03c36 --- /dev/null +++ b/src/pages/nearle/reports/ordersSummary.js @@ -0,0 +1,959 @@ +import { React, useState, useEffect, useRef } from 'react'; +import TitleCard from 'pages/titleCard'; +import axios from 'axios'; +import { useQuery } from '@tanstack/react-query'; +import { Empty } from 'antd'; +// material-ui +import { + Box, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Typography, + Stack, + IconButton, + Tooltip, + Chip, + Autocomplete, + TextField, + Collapse, + Backdrop +} from '@mui/material'; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'; +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { CalendarMonth, FilterList } from '@mui/icons-material'; +import { getreportlocationsummary, getreportsummary, gettenantlocations, getTenants } from 'pages/api/api'; +import MainCard from 'components/MainCard'; +import Loader from 'components/Loader'; +import { useTheme } from '@mui/material/styles'; +import DateFilterDialog from 'components/DateFilterDialog'; +import CircularLoader from 'components/CircularLoader'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import { OpenToast } from 'components/third-party/OpenToast'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; + +function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); +} + +// ==============================|| MUI TABLE - ENHANCED ||============================== // + +export default function OrdersReport() { + // const [rows, setRows] = useState([]); + const theme = useTheme(); + const locationRef = useRef(null); + const containerRef = useRef(); + const tenantRef = useRef(null); + const [appId, setAppId] = useState(0); + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [locaName, setLocoName] = useState('All'); + const [open, setOpen] = useState(false); + const [openRow, setOpenRow] = useState(null); + const [datestatus, setDatestatus] = useState('Today'); + const [total, settotal] = useState(0); + const [totalOrders, settotalOrders] = useState(0); + const [totalOrderPend, setTotalOrderPend] = useState(0); + const [totalOrderComplete, setTotalOrderComplete] = useState(0); + const [totalOrderCancel, setTotalOrderCancel] = useState(0); + const [totalDeliPend, setTotalDeliPend] = useState(0); + const [totalDeliComplete, setTotalDeliComplete] = useState(0); + const [totalDeliCancel, setTotalDeliCancel] = useState(0); + const [ridersdata, setRidersdata] = useState([]); + const [locations, setLocations] = useState('Select Location'); + const userid = localStorage.getItem('userid'); + const [loading, setLoading] = useState(false); + const [page, setPage] = useState(0); + const [locationid, setLocationid] = useState(0); + const [tenantid, setTenantid] = useState(0); + const [tenantValue, setTenantValue] = useState(null); + const [locationValue, setLocationValue] = useState(null); + + useEffect(() => { + console.log('openRow', openRow); + }, [openRow]); + + // to clear the tenant and location and rider autocomplete + useEffect(() => { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + setOpenRow(null); + }, [appId]); + // to clear the location and rider autocomplete + useEffect(() => { + setLocationid(0); + setLocationValue(null); + setOpenRow(null); + }, [tenantid]); + + // table header + const headCells = [ + { + id: 's.no', + numeric: false, + disablePadding: true, + label: '#', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + { + id: 'clients', + numeric: 'true', + disablePadding: false, + label: tenantid ? 'Location' : 'Tenant', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + { + id: 'all', + numeric: 'center', + disablePadding: false, + label: 'All', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + + { + id: 'orders', + numeric: 'center', + disablePadding: false, + label: 'orders', + rowSpan: 1, + colSpan: 3, + bgcolor: '#ffcdd2' + }, + { + id: 'deliveries', + numeric: 'center', + disablePadding: false, + label: 'deliveries', + rowSpan: 1, + colSpan: 3, + bgcolor: '#f8bbd0' + }, + { + id: 'Charges', + numeric: 'center', + disablePadding: false, + label: 'Collection Amt', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + { + id: 'kilometer', + numeric: 'center', + disablePadding: false, + label: 'Kms/Actual Kms', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + + { + id: 'Amount', + numeric: 'center', + disablePadding: true, + label: 'Amount', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + }, + { + id: 'action', + numeric: 'center', + disablePadding: true, + label: 'Action', + rowSpan: 2, + colSpan: 1, + bgcolor: '#f3e5f5' + } + ]; + + const headCells1 = [ + { + id: 'pending', + numeric: false, + disablePadding: false, + label: 'pending', + rowSpan: 1, + colSpan: 1, + bgcolor: '#ffcdd2' + }, + { + id: 'cancelled', + numeric: false, + disablePadding: false, + label: 'cancelled', + rowSpan: 1, + colSpan: 1, + bgcolor: '#ffcdd2' + }, + { + id: 'completed', + numeric: false, + disablePadding: false, + label: 'completed', + rowSpan: 1, + colSpan: 1, + bgcolor: '#ffcdd2' + }, + + { + id: 'pending', + numeric: false, + disablePadding: false, + label: 'pending', + rowSpan: 1, + colSpan: 1, + bgcolor: '#f8bbd0' + }, + + { + id: 'cancelled', + numeric: false, + disablePadding: false, + label: 'cancelled', + rowSpan: 1, + colSpan: 1, + bgcolor: '#f8bbd0' + }, + { + id: 'completed', + numeric: false, + disablePadding: false, + label: 'completed', + rowSpan: 1, + colSpan: 1, + bgcolor: '#f8bbd0' + } + ]; + const getColorByValue = (value) => { + return Number(value) !== 0 ? 'red' : 'inherit'; + }; + const coloredCell = (value) => {value}; + + // ==============================|| MUI TABLE - HEADER ||============================== // + + function EnhancedTableHead() { + return ( + + + {headCells.map((headCell) => ( + + {headCell.label} + + ))} + + + {headCells1.map((headCell) => ( + + {headCell.label} + + ))} + + + ); + } + + // ==============================|| fetchOrdersSummary (orders summary)||============================== // + const { + data: rows, + isLoading: isLoadingReports, + isError: isErrorReports, //true or false + error: reportsError + } = useQuery({ + queryKey: [appId, tenantid, locationid, startdate, enddate], + queryFn: tenantid ? getreportlocationsummary : getreportsummary + }); + // ==============================|| getTenants ||============================== // + + const { + data: tenantlist, + isLoading: fetchtenantsIsLoading, + isError: fetchtenantsIsError, + error: fetchtenantsError + } = useQuery({ + queryKey: ['tenantlist', appId], + queryFn: () => getTenants(appId), // Ensure appId is passed + enabled: appId !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| gettenantlocations ||============================== // + + const { + data: locationlist, + isLoading: fetchlocationsIsLoading, + isError: fetchlocationsIsError, + error: fetchlocationsError + } = useQuery({ + queryKey: ['gettenantlocations', tenantid], + queryFn: () => gettenantlocations(tenantid), // Ensure appId is passed + enabled: tenantid !== 0 // Ensures query runs only when appId is valid + }); + // ==============================|| fetchridersummary by tenid (orders summary)||============================== // + const fetchridersummary = async (tenantid) => { + setLoading(true); + try { + const riderRes = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getridersummary/?&tenantid=${tenantid}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('riderRes', riderRes.data.details); + setRidersdata(riderRes.data.details); + } catch (error) { + console.log('riderRes', error); + } finally { + setLoading(false); + } + }; + // ==============================|| getuserreportsummary by tenid (orders summary)||============================== // + const getuserreportsummary = async (tenantid) => { + setLoading(true); + try { + const riderRes = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getuserreportsummary/?&tenantid=${tenantid}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('riderRes', riderRes.data.details); + setRidersdata(riderRes.data.details); + } catch (error) { + console.log('riderRes', error); + } finally { + setLoading(false); + } + }; + // ==============================|| getriderlocationsummary by tenid (orders summary)||============================== // + const getriderlocationsummary = async (id) => { + try { + const riderRes = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getriderlocationsummary/?&tenantid=${tenantid}&locationid=${id}&fromdate=${startdate}&todate=${enddate}` + ); + console.log('riderRes', riderRes.data.details); + setRidersdata(riderRes.data.details); + } catch (error) { + console.log('riderRes', error); + } + }; + + // ==============================|| calculate||============================== // + const calculate = () => { + let calculatedTotal = 0; + let ordersTotal = 0; + let Orderpending = 0; + let OrderComplete = 0; + let OrderCancel = 0; + let deliverypending = 0; + let deliverycomplete = 0; + let deliverycancel = 0; + rows && + rows.forEach((row) => { + calculatedTotal += row.charges; + ordersTotal += row.totalorders; + Orderpending += row.Orderspending; + OrderComplete += row.orderscompleted; + OrderCancel += row.orderscancelled; + deliverypending += row.deliveriespending; + deliverycomplete += row.deliveriescompleted; + deliverycancel += row.deliveriescancelled; + }); + // Update the state after the calculation is done + settotal(calculatedTotal); + settotalOrders(ordersTotal); + setTotalOrderPend(Orderpending); + setTotalOrderComplete(OrderComplete); + setTotalOrderCancel(OrderCancel); + setTotalDeliPend(deliverypending); + setTotalDeliComplete(deliverycomplete); + setTotalDeliCancel(deliverycancel); + }; + useEffect(() => { + calculate(); + }, [rows]); + + // ==============================|| fetchAppLocations ||============================== // + const fetchAppLocations = async () => { + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + const updatedLocations = [ + ...locationRes.data.details, + { locationname: 'All', applocationid: 0 } // Add your new object here + ]; + console.log('fetchAppLocations', updatedLocations); + setLocations(updatedLocations); + } catch (err) { + console.log('locationRes', err); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + if (isErrorReports) console.log('An error has occurred:(isErrorReports) ' + reportsError.message); + + return ( + <> + {(loading || isLoadingReports) && ( + <> + {/* */} + + + )} + + {/* theme.zIndex.drawer + 1 + }} + open={loading || isLoadingReports} // when loader = true, backdrop covers the page + > + + */} + + + } + /> + + + + {startdate && enddate && ( + + + + + {dayjs(startdate).format('DD/MM/YYYY')} - {dayjs(enddate).format('DD/MM/YYYY')} + + } + variant="combined" + color="warning" + size="small" + deleteIcon={} + onDelete={() => { + setOpen(true); + }} + onClick={() => setOpen(true)} + sx={{ cursor: 'pointer' }} + /> + + + )} + + + { + if (!appId) { + event.preventDefault(); + OpenToast('Please select a your app location first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setTenantid(0); + setTenantValue(null); + setLocationid(0); + setLocationValue(null); + } else { + setTenantid(val?.tenantid || 0); + setTenantValue(val); + setLocationid(val.locationid); + setLocationValue(null); + } + }} + renderInput={(params) => } + /> + {/* ==================================================== || Location Autocomplete || ==================================================== */} + `${option.locationname} (${option.suburb})` || ''} + value={locationValue} + sx={{ minWidth: 250, flex: { xs: 1, custom950: 0 } }} + onOpen={(event) => { + if (!appId && !tenantid) { + event.preventDefault(); + OpenToast('Please select a your Location and Tenant first!', 'warning', 3000); + setTimeout(() => { + locationRef.current?.focus(); + }, 0); + } else if (!tenantid) { + event.preventDefault(); + OpenToast('Please select a your Tenant first!', 'warning', 3000); + setTimeout(() => { + tenantRef.current?.focus(); + }, 0); + } + }} + onChange={(e, val, reason) => { + if (reason === 'clear') { + setLocationid(0); + setLocationValue(null); + } else { + setLocationid(val.locationid || 0); + setLocationValue(val); + } + }} + renderInput={(params) => } + /> + + + + + + {/* ============================================ ||EnhancedTableHead || ============================================ */} + + + {/* ============================================ || TableBody || ============================================ */} + + + {isLoadingReports && } + {rows?.length == 0 && ( + + + + + + + + )} + {(rows?.length != 0 || rows) && + rows?.map((row, index) => ( + <> + {/* ============================================ || tablerow 1 || ============================================ */} + + + {index + 1} + + + {tenantid ? row.locationname : row.tenantname} + Id : {tenantid ? row.locationid : row.tenantid} + + + {coloredCell(row.totalorders)} + {coloredCell(row.Orderspending)} + {coloredCell(row.orderscancelled)} + {coloredCell(row.orderscompleted)} + {coloredCell(row.deliveriespending)} + {coloredCell(row.deliveriescancelled)} + {coloredCell(row.deliveriescompleted)} + + {/* + + +
    */} + {/* */} + + {/* */} +
    {' '} + + + + + +
    + + + +
    + + + = row.deliveryamt ? row.charges : row.deliveryamt)} + color={row.deliveryamt || row.charges ? 'primary' : 'secondary'} + variant="combined" + sx={{ + cursor: 'pointer', + minWidth: 100 + }} + /> + + + + { + // setRidersdata([]); // yo avoid appending new data list to exiting + // setTimeout(() => { + // openRow !== row.tenantname && (tenantid + // ? getriderlocationsummary(row.locationid) + // : getuserreportsummary(row.tenantid)); + // setOpenRow(openRow === row.tenantname ? null : row.tenantname); + // }, 0); + // }} + onClick={() => { + if (tenantid) { + // if tenant selected and shows the location list + const isOpening = openRow !== row.tenantname; + // toggle row + setOpenRow(isOpening ? row.tenantname : null); + if (!isOpening) return; // ❌ closing → don't call API + // clear old data only when opening + setRidersdata([]); + // ✅ call correct API + getriderlocationsummary(row.locationid); + } else { + const isOpening = openRow !== row.locationname; + + // toggle row + setOpenRow(isOpening ? row.locationname : null); + + if (!isOpening) return; // ❌ closing → don't call API + + // clear old data only when opening + setRidersdata([]); + + // ✅ call correct API + + getuserreportsummary(row.tenantid); + } + }} + sx={{ + bgcolor: openRow === row.tenantname ? 'primary.main' : null, + color: openRow === row.tenantname ? 'white' : null, + '&:hover': { + bgcolor: openRow === row.tenantname ? 'primary.main' : '#e1bee7' + } + }} + > + + {tenantid ? ( + openRow === row.tenantname ? ( + + ) : ( + + ) + ) : openRow === row.locationname ? ( + + ) : ( + + )} + + + +
    + {/* ============================================ || collapsive row || ============================================ */} + + {(tenantid ? openRow === row.tenantname : openRow === row.locationname) && ( + + + +
    + + + # + Rider + Orders + Deliveries + Pending + Cancelled + Completed + Collection Amt + kms/Actual kms + Charges + + + + {loading && } + {/* {ridersdata?.length == 0 && ( + + + + + + + + )} */} + {ridersdata?.map((row, index) => ( + + {index + 1} + + + {` ${row.firstname} ${row.lastname}`} + + {row.ridercontact} + + + ID : {row.userid} + + + + + {coloredCell(row.orderscreated)} + {coloredCell(row.totalorders)} + {coloredCell(row.deliveriespending)} + {coloredCell(row.deliveriescancelled)} + {coloredCell(row.deliveriescompleted)} + {/* {coloredCell(row.picked)} + {coloredCell(row.active)} + {coloredCell(row.skipped)} + {coloredCell(row.cancelled)} + {coloredCell(row.delivered)} */} + + {/* + + +
    */} + {/* */} + + {/* */} +
    + + + + +
    + + + +
    + + + + = row.deliveryamt ? row.charges : row.deliveryamt)} + color={row.deliveryamt || row.charges ? 'primary' : 'secondary'} + variant="combined" + sx={{ + cursor: 'pointer', + minWidth: 100 + }} + /> + + +
    + ))} +
    +
    + + + + )} + + ))} + + {rows?.length != 0 && rows && ( + + + Total + + + {totalOrders} + + + {totalOrderPend} + + + {totalOrderCancel} + + + {totalOrderComplete} + + + {totalDeliPend} + + + {totalDeliCancel} + + + {totalDeliComplete} + + + + + {formatNumberToRupees(total)} + + + + )} + + +
    + + +
    + {/* ============================================ || date filter dialog || ============================================ */} + setOpen(false)} + onSelect={(range) => { + setStartdate(range.startDate); + setEnddate(range.endDate); + setDatestatus(range.label); + console.log('Selected Date Range:', range); + }} + /> + + ); +} diff --git a/src/pages/nearle/reports/ridersLogs.js b/src/pages/nearle/reports/ridersLogs.js new file mode 100644 index 0000000..0e90635 --- /dev/null +++ b/src/pages/nearle/reports/ridersLogs.js @@ -0,0 +1,299 @@ +import React, { useState, useEffect, Fragment } from 'react'; +import { + Box, + Drawer, + IconButton, + Toolbar, + Typography, + AppBar, + useMediaQuery, + Divider, + List, + ListItem, + ListItemText, + useTheme, + ListItemAvatar, + Stack, + Button, + Checkbox, + Skeleton, + Chip +} from '@mui/material'; + +import MenuIcon from '@mui/icons-material/Menu'; +import SearchBar from 'components/nearle_components/SearchBar'; +import { useQuery } from '@tanstack/react-query'; +import Loader from 'components/Loader'; +import { fetchRidersLogs } from 'pages/api/api'; +import RiderLocationMap from './RiderLocationMap'; +import MainCard from 'components/MainCard'; +import dayjs from 'dayjs'; +import TaskAltIcon from '@mui/icons-material/TaskAlt'; +import CircularLoader from 'components/CircularLoader'; +import error500 from 'assets/images/maintenance/Error500.png'; + +const drawerWidth = 350; + +const RidersLogs = () => { + const theme = useTheme(); + const isDesktop = useMediaQuery('(min-width:900px)'); + const [open, setOpen] = useState(false); + const [selectedRiders, setSelectedRiders] = useState([]); + const [riderSearch, setRiderSearch] = useState(''); + const appId = 1; + const { + data: riders, + isLoading: ridersIsLoading, + isFetching: riderIsFetching, + refetch: riderLogsRefetch, + error: riderLogsError + } = useQuery({ + queryKey: [appId, dayjs().format('YYYY-MM-DD'), riderSearch], + queryFn: fetchRidersLogs, + refetchInterval: 5 * 60 * 1000 + }); + + useEffect(() => { + // const sortedRiders = riders?.sort((a, b) => a.firstname.localeCompare(b.firstname)); + setSelectedRiders(riders); + }, [riders]); + + useEffect(() => { + console.log('selectedRiders', selectedRiders); + }, [selectedRiders]); + + useEffect(() => { + setOpen(isDesktop); + }, [isDesktop]); + + return ( + + + {/* Drawer */} + !isDesktop && setOpen(false)} + ModalProps={{ keepMounted: true }} + sx={{ + '& .MuiDrawer-paper': { + width: drawerWidth, + position: 'absolute', + left: 0, + top: 0, + height: '100%', + overflowY: 'auto', + transition: 'transform 0.35s ease-in-out', + zIndex: 13 + } + }} + > + {/* Search */} + + setRiderSearch(e.target.value)} + sx={{ + height: 60, + bgcolor: 'white', + '& .MuiOutlinedInput-notchedOutline': { + borderBottom: '1px solid', + borderColor: theme.palette.secondary.light + } + }} + /> + + + + { + if (e.target.checked) { + setSelectedRiders(riders); + } + }} + /> + + + + + + + {/* Rider List */} + + {/* Individuals */} + {ridersIsLoading || riderIsFetching + ? Array.from({ length: 10 }).map((_, index) => ( + + + + + + + } + secondary={} + /> + + + + + + + + + + )) + : riders?.map((row) => { + return ( + + + + {row.userid} + + + {dayjs(row.logdate).format('DD/MM/YYYY hh:mm A')} + + + } + > + + { + if (e.target.checked) { + // SELECT ONE RIDER + setSelectedRiders([row]); + } else { + // UNCHECK -> SELECT ALL + setSelectedRiders(riders); + } + }} + /> + + + + {row.username?.slice(0, 25) || ''} + {row.username?.length > 25 && '...'} + + {/* {row.status === 'active' && } */} + + } + secondary={ + + {row.contactno || '##########'} + + } + /> + + + + + ); + })} + + + + {/* AppBar */} + + + + + setOpen(!open)}> + + + + + Riders Locations + + + + + + + + + {/* Map */} + + {(ridersIsLoading || riderIsFetching) && ( + + {/* */} + + + )} + + {selectedRiders?.length > 0 && } + {riderLogsError && ( + + mantis + + )} + + + + ); +}; + +export default RidersLogs; diff --git a/src/pages/nearle/reports/ridersSummary.js b/src/pages/nearle/reports/ridersSummary.js new file mode 100644 index 0000000..6c716fb --- /dev/null +++ b/src/pages/nearle/reports/ridersSummary.js @@ -0,0 +1,458 @@ +import { React, useState, useEffect, useRef } from 'react'; +import TitleCard from 'pages/titleCard'; +import axios from 'axios'; +import { useQuery } from '@tanstack/react-query'; +import { fetchRidersSummary } from 'pages/api/api'; +import TaskAltIcon from '@mui/icons-material/TaskAlt'; +import HighlightOffIcon from '@mui/icons-material/HighlightOff'; +import { Empty } from 'antd'; +// material-ui +import { + Box, + Divider, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + Typography, + Stack, + IconButton, + Tooltip, + Chip, + Collapse, + Dialog, + DialogContent +} from '@mui/material'; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'; +import { IoLocationOutline } from 'react-icons/io5'; + +import dayjs from 'dayjs'; +var utc = require('dayjs/plugin/utc'); +dayjs.extend(utc); +import { CalendarMonth } from '@mui/icons-material'; +import MainCard from 'components/MainCard'; +import Loader from 'components/Loader'; +import DateFilterDialog from 'components/DateFilterDialog'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import CircularLoader from 'components/CircularLoader'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; +import RidersRoutes from './RidersRoutes'; +import { EnvironmentFilled } from '@ant-design/icons'; +import { OpenToast } from 'components/third-party/OpenToast'; + +function formatNumberToRupees(value) { + return new Intl.NumberFormat('en-IN', { + style: 'currency', + currency: 'INR', + minimumFractionDigits: 2 + }).format(value); +} + +const getColorByValue = (value) => { + return Number(value) !== 0 ? 'red' : 'inherit'; +}; +const coloredCell = (value) => {value}; + +// ==============================|| MUI TABLE - ENHANCED ||============================== // + +export default function RidersSummary() { + const [startdate, setStartdate] = useState(dayjs().format('YYYY-MM-DD')); + const [enddate, setEnddate] = useState(dayjs().format('YYYY-MM-DD')); + const [locaName, setLocoName] = useState('All'); + const [open, setOpen] = useState(false); + const [datestatus, setDatestatus] = useState('Today'); + const [total, settotal] = useState(0); + const [tenantData, setTenantData] = useState([]); + const [openRow, setOpenRow] = useState(null); // Initially no row is open + // const [appId, setAppId] = useState(localStorage.getItem('applocationid')); + const [appId, setAppId] = useState(0); + const [loading, setLoading] = useState(false); + const [mapOpen, setMapOpen] = useState(false); + const [logDetails, setLogDetails] = useState(null); + + // ==============================|| fetchRidersSummary (riders summary)||============================== // + const { isLoading: isLoadingReports, data: rows } = useQuery({ + queryKey: ['ridersummary', appId, startdate, enddate], + queryFn: fetchRidersSummary + }); + + // ==============================|| fetchTenantSummary by rider (rider summary)||============================== // + const fetchTenantSummary = async (riderUserid) => { + setLoading(true); + try { + const tenantRes = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getreportsummary/?&fromdate=${startdate}&todate=${enddate}&userid=${riderUserid}` + ); + console.log('tenantRes', tenantRes.data.details); + setTenantData(tenantRes.data.details); + } catch (error) { + console.log('tenantRes', error); + } finally { + setLoading(false); + } + }; + + // ==============================|| getuserdeliverylogs (rider summary)||============================== // + + const getuserdeliverylogs = async (userid) => { + try { + const response = await axios.get( + `${process.env.REACT_APP_URL}/deliveries/getuserdeliverylogs/?userid=${userid}&fromdate=2026-01-28&todate=2026-01-28 ` + ); + setLogDetails(response.data.details); + } catch (err) { + OpenToast(err?.message, 'error', 2000); + console.log('getuserdeliverylogs', err.message); + } + }; + + // ==============================|| calculate||============================== // + const calculate = async () => { + let calculatedTotal = 0; + rows && + rows.forEach((row, index) => { + console.log(index, row.deliveryamt); + calculatedTotal += row.deliveryamt; + }); + // Update the state after the calculation is done + settotal(calculatedTotal); + console.log('calculatedTotal', calculatedTotal); + }; + useEffect(() => { + calculate(); + }, [rows]); + + return ( + <> + {(isLoadingReports || loading) && ( + <> + + {/* */} + + )} + + + + + {startdate && enddate && ( + + + + {dayjs(startdate).format('DD/MM/YYYY')} - {dayjs(enddate).format('DD/MM/YYYY')} + + } + variant="combined" + color="warning" + deleteIcon={} + onDelete={() => { + setOpen(true); + }} + onClick={() => setOpen(true)} + sx={{ cursor: 'pointer' }} + /> + + )} + {(!startdate || !enddate) && ( + <> + + + {/* ALL} variant="combined" color='warning' size='small' /> */} + + + )} + + + + + + } + > + {/* table */} + + + + # + Rider + Orders + Pending + {/* Assigned + Accepted + Arrived + Picked + Active + Skipped */} + Cancelled + Delivered + KMS + Amount + Action + + {/* ============================================ || TableBody || ============================================ */} + + {isLoadingReports && } + + + {rows?.length === 0 && ( + + + + + + + + )} + + {rows?.length != 0 && + rows?.map((row, index) => ( + <> + {/* // ============================================ || tablerow 1 || ============================================ */} + + {index + 1} + + + {` ${row?.firstname} ${row?.lastname}`} + Id : {row.userid} + + + + {coloredCell(row.totalorders)} + {coloredCell(row.pending)} + {/* {coloredCell(row.assigned)} + {coloredCell(row.accepted)} + {coloredCell(row.arrived)} + {coloredCell(row.picked)} + {coloredCell(row.active)} + {coloredCell(row.skipped)} */} + {coloredCell(row.cancelled)} + {coloredCell(row.delivered)} + + + + + + + + + + + + + + + + = row.deliveryamt ? row.charges : row.deliveryamt)} + variant="combined" + color={row.deliveryamt ? 'primary' : 'secondary'} + sx={{ + cursor: 'pointer', + minWidth: 100 + }} + /> + + + + + { + const isOpening = openRow !== row.userid; + + // toggle row + setOpenRow(isOpening ? row.userid : null); + + // ❌ closing → no API + if (!isOpening) return; + + // ✅ opening → call API + fetchTenantSummary(row.userid); + }} + sx={{ + bgcolor: openRow === row.userid ? 'primary.main' : null, + color: openRow === row.userid ? 'white' : null, + '&:hover': { + bgcolor: openRow === row.userid ? 'primary.main' : '#e1bee7' + } + }} + > + {openRow === row.userid ? : } + + + { + setMapOpen(true); + getuserdeliverylogs(row?.userid); + }} + /> + + + + + {/* // ============================================ || collapsive row || ============================================ */} + {openRow === row.userid && ( + + + + +
    + + + # + Client + All + Pending + Completed + Cancelled + Kms + Amount + + + + {loading && } + {tenantData.map((row, index) => ( + + {index + 1} + + + {row.tenantname} + + + {coloredCell(row.totalorders)} + {coloredCell(row.deliveriespending)} + {coloredCell(row.deliveriescompleted)} + {coloredCell(row.deliveriescancelled)} + + + + + + + + = row.deliveryamt ? row.charges : row.deliveryamt)} + sx={{ + color: 'primary.main', + bgcolor: '#e1bee7', + border: '1px solid #662582 ', + minWidth: 100 + }} + /> + + + ))} + +
    +
    + + + + )} + + ))} + + + + + {rows?.length != 0 && ( + + Total : + + {formatNumberToRupees(total)} + + + )} + + { + setMapOpen(false); + }} + > + {logDetails && } + + {/* ============================================= || filter Dialog | ============================================= */} + setOpen(false)} + onSelect={(range) => { + setStartdate(range.startDate); + setEnddate(range.endDate); + setDatestatus(range.label); + console.log('Selected Date Range:', range); + }} + /> + + ); +} diff --git a/src/pages/nearle/requests/requests.js b/src/pages/nearle/requests/requests.js new file mode 100644 index 0000000..cc63037 --- /dev/null +++ b/src/pages/nearle/requests/requests.js @@ -0,0 +1,2126 @@ +import { + Grid, + Stack, + Typography, + Box, + Tabs, + Tab, + Chip, + Table, + TableCell, + TableBody, + TableHead, + Avatar, + TableRow, + IconButton, + Tooltip, + Collapse, + Divider, + List, + ListItem, + ListItemIcon, + TextField, + Button, + InputAdornment, + FormControl, + OutlinedInput, + Dialog, + DialogContent, + Skeleton, + Popper, + ClickAwayListener, + CircularProgress, + DialogTitle, + FormLabel, + DialogActions +} from '@mui/material'; + +import { Autocomplete as Autocomplete1 } from '@mui/material'; +import { PlusOutlined, DeleteOutlined, MoreOutlined } from '@ant-design/icons'; +import { SearchOutlined } from '@ant-design/icons'; +import { PopupTransition } from 'components/@extended/Transitions'; +import { enqueueSnackbar } from 'notistack'; +import dayjs from 'dayjs'; +import { PhoneOutlined, MailOutlined } from '@ant-design/icons'; + +import MainCard from 'components/MainCard'; + +import { CloseOutlined, EyeTwoTone, EditTwoTone } from '@ant-design/icons'; +import { useState, useEffect } from 'react'; +import axios from 'axios'; +import Loader from 'components/Loader'; +import Transitions from 'components/@extended/Transitions'; +import Autocomplete from 'react-google-autocomplete'; + +import * as React from 'react'; + +import PropTypes from 'prop-types'; +import TableContainer from '@mui/material/TableContainer'; +import TablePagination from '@mui/material/TablePagination'; +import TableSortLabel from '@mui/material/TableSortLabel'; +import { visuallyHidden } from '@mui/utils'; +import { useTheme } from '@mui/material/styles'; + +import Geocode from 'react-geocode'; + +const Requests = () => { + // let dispatch = useDispatch(); + + function descendingComparator(a, b, orderBy) { + if (b[orderBy] < a[orderBy]) { + return -1; + } + if (b[orderBy] > a[orderBy]) { + return 1; + } + return 0; + } + + function getComparator(order, orderBy) { + return order === 'desc' ? (a, b) => descendingComparator(a, b, orderBy) : (a, b) => -descendingComparator(a, b, orderBy); + } + + function stableSort(array, comparator) { + const stabilizedThis = array.map((el, index) => [el, index]); + stabilizedThis.sort((a, b) => { + const order = comparator(a[0], b[0]); + if (order !== 0) { + return order; + } + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); + } + + const headCells = [ + { + id: 'sno', + disablePadding: true, + label: '#' + }, + { + id: 'tenantname', + numeric: false, + disablePadding: false, + label: 'REQUESTOR' + }, + { + id: 'contact', + numeric: false, + disablePadding: false, + label: 'BANK' + }, + { + id: 'address3', + disablePadding: false, + label: 'IFSC' + }, + { + id: 'address', + disablePadding: false, + label: 'REF NO' + }, + { + id: 'amount', + disablePadding: false, + label: 'AMOUNT' + }, + { + id: 'city', + disablePadding: false, + label: 'REASON' + } + // { + // id: 'action', + // disablePadding: false, + // label: 'ACTION', + // } + ]; + + function EnhancedTableHead(props) { + const { order, orderBy, onRequestSort } = props; + const createSortHandler = (property) => (event) => { + onRequestSort(event, property); + }; + + return ( + + + {headCells.map((headCell) => ( + + + {headCell.label} + {orderBy === headCell.id ? ( + + {order === 'desc' ? 'sorted descending' : 'sorted ascending'} + + ) : null} + + + ))} + + + ); + } + + EnhancedTableHead.propTypes = { + numSelected: PropTypes.number.isRequired, + onRequestSort: PropTypes.func.isRequired, + onSelectAllClick: PropTypes.func.isRequired, + order: PropTypes.oneOf(['asc', 'desc']).isRequired, + orderBy: PropTypes.string.isRequired, + rowCount: PropTypes.number.isRequired + }; + + function EnhancedTable() { + const [order, setOrder] = React.useState('asc'); + const [orderBy, setOrderBy] = React.useState('calories'); + const [selected, setSelected] = React.useState([]); + const [page, setPage] = React.useState(0); + const [rowsPerPage, setRowsPerPage] = React.useState(10); + const [expandopen, setExpandopen] = React.useState(''); + const [editexpandopen, setEditexpandopen] = React.useState(''); + const [clientname, setClientname] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + const [mobilenumber, setMobilenumber] = useState(''); + const [regno, setRegno] = useState(''); + const [address, setAddress] = useState(''); + const [city, setCity] = useState(''); + const [zipcode, setZipcode] = useState(''); + const [contactname, setContactname] = useState(''); + const [state1, setState1] = useState(''); + const [suburb, setSuburb] = useState(''); + const [currenttenantid, setCurrenttenantid] = useState(''); + const [latlong, setLatlong] = useState({}); + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // const [alertmessage, setAlertmessage] = useState(''); + // const [toast, setToast] = useState(false); + const [rolesarr, setRolesarr] = useState([]); + const [roleslist, setRoleslist] = useState([]); + const [rolestab, setRolestab] = useState(0); + const [anchorEl, setAnchorEl] = React.useState(null); + const [open, setOpen] = useState(''); + const [approveid, setApproveid] = useState(false); + const [disableid, setDisableid] = useState(false); + const [loading1, setLoading1] = useState(false); + + const [refno, setRefno] = useState(''); + const [requestor, setRequestor] = useState(''); + const [bankname, setBankname] = useState(''); + const [amount, setAmount] = useState(''); + const [accountno, setAccountno] = useState(''); + const [ifsc, setIfsc] = useState(''); + const [reason, setReason] = useState(''); + + const handleClick1 = (event, result) => { + if (result) { + setAnchorEl(event.currentTarget); + + setOpen((val) => (val == result ? '' : result)); + console.log(open, event.currentTarget, result); + } + }; + + const handleClickAway = () => { + setOpen(''); + }; + useEffect(() => { + setRolesarr([ + { + sno: 1, + role: '', + cost: '', + serviceid: 0, + tenantid: 0, + categoryid: 0, + subcategoryid: 0, + servicecode: '', + servicename: '', + unitid: 0, + unitname: '', + serviceamount: '', + discountid: 0, + taxpercent: 0, + taxamount: 0, + servicevalue: 0, + categoryname: '' + } + ]); + console.log(rolesarr); + // fetchroleslist(); + }, []); + + // useEffect(() => { + + // if (alertmessage && toast) { + // dispatch( + // openSnackbar({ + // open: true, + // message: alertmessage, + // variant: 'alert', + // anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // alert: { + // color: 'error', + + // } + // }) + // ) + // } + // }, [toast]) + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + console.log(alertmessage); + }; + + // const opentoast = () => { + // setToast(true) + + // setTimeout(() => { + // setToast(false) + // }, 2000); + + // } + + useEffect(() => { + try { + Geocode.fromAddress(address).then( + (response) => { + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + console.log(response); + } + }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + useEffect(() => { + console.log('rolesarr'); + console.log(rolesarr); + }, [rolesarr]); + + const fetchroleslist = async () => { + try { + await axios + .get(`${process.env.REACT_APP_URL2}/utils/getsubcategory`) + .then((res) => { + console.log('res'); + console.log(res); + if (res.data.message === 'Success') { + let arr = []; + res.data.Details.map((val) => { + arr.push({ ...val, label: val.subcategoryname }); + }); + setLoading(false); + setRoleslist(arr); + console.log('roleslist', arr); + } + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + + const addarr = () => { + let arr = rolesarr; + if (arr[arr.length - 1].role && arr[arr.length - 1].cost) { + arr.push({ + sno: arr.length + 1, + cost: '', + role: '', + serviceid: 0, + tenantid: 0, + categoryid: 0, + subcategoryid: 0, + servicecode: '', + servicename: '', + unitid: 0, + unitname: '', + serviceamount: '', + discountid: 0, + taxpercent: 0, + taxamount: 0, + servicevalue: 0, + categoryname: '' + }); + setRolesarr([...arr]); + } else { + // setAlertmessage('Fill all Previous Details'); + opentoast('Fill all Previous Details'); + } + }; + const deletearr = async (sno, val1) => { + console.log(val1); + let arr = rolesarr; + + if (val1.serviceid !== 0 && rolesarr.length > 1) { + console.log([ + { + serviceid: val1.serviceid, + tenantid: val1.tenantid, + categoryid: val1.categoryid, + subcategoryid: val1.subcategoryid, + servicecode: val1.servicecode, + servicename: val1.servicename, + unitid: val1.unitid, + unitname: val1.unitname, + serviceamount: val1.servicevalue + } + ]); + try { + await axios + .delete(`${process.env.REACT_APP_URL2}/tenants/delete/services`, { + data: [ + { + serviceid: val1.serviceid, + tenantid: val1.tenantid, + categoryid: val1.categoryid, + subcategoryid: val1.subcategoryid, + servicecode: val1.servicecode, + servicename: val1.servicename, + unitid: val1.unitid, + unitname: val1.unitname, + serviceamount: val1.servicevalue + } + ] + }) + .then((res) => { + console.log('res'); + console.log(res); + if (res.data.message === 'Deleted successful') { + enqueueSnackbar('Client pricing Deleted', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + arr.splice(sno - 1, 1); + arr.map((val, i) => { + val.sno = i + 1; + }); + console.log(arr); + setRolesarr([...arr]); + } + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } else if (rolesarr.length > 1) { + arr.splice(sno - 1, 1); + arr.map((val, i) => { + val.sno = i + 1; + }); + console.log(arr); + setRolesarr([...arr]); + } else if (rolesarr.length === 1) { + setRolesarr([ + { + sno: 1, + role: '', + cost: '', + serviceid: val1.serviceid, + tenantid: 0, + categoryid: 0, + subcategoryid: 0, + servicecode: '', + servicename: '', + unitid: 0, + unitname: '', + serviceamount: '', + discountid: 0, + taxpercent: 0, + taxamount: 0, + servicevalue: 0, + categoryname: '' + } + ]); + } + }; + + const fetchclientbyid = async (tenantid1) => { + try { + // await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenant/?tenantid=${tenantid1}`) + setLoading1(true); + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${tenantid1}`) + + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + console.log(res.data.details); + setEmailaddress(res.data.details.primaryemail); + setMobilenumber(res.data.details.contactno); + setClientname(res.data.details.tenantname); + setRegno(res.data.details.registrationno); + setAddress(res.data.details.address); + setCity(res.data.details.city); + setZipcode(res.data.details.postcode); + setContactname(res.data.details.primarycontact); + setCurrenttenantid(tenantid1); + setLatlong({ + lat: res.data.details.latitude, + lng: res.data.details.longitude + }); + } + if (tabvalue === 0) { + setLoading1(false); + } + }) + .catch((err) => { + console.log(err); + setLoading1(false); + }); + } catch (err) { + console.log(err); + setLoading1(false); + } + }; + + const fetchclientpricing = async (tenantid1) => { + try { + // await axios.get(`${process.env.REACT_APP_URL}/tenants/gettenant/?tenantid=${tenantid1}`) + setLoading1(true); + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${tenantid1}`) + + .then((res) => { + console.log('res id'); + console.log(res); + if (res.data.message === 'Successful') { + let arr = []; + if (res.data.details.tenantservice.length === 0) { + setRolesarr([ + { + sno: 1, + role: '', + cost: '', + serviceid: 0, + tenantid: 0, + categoryid: 0, + subcategoryid: 0, + servicecode: '', + servicename: '', + unitid: 0, + unitname: '', + serviceamount: '', + discountid: 0, + taxpercent: 0, + taxamount: 0, + servicevalue: 0, + categoryname: '' + } + ]); + } else { + // res.data.details.map((val, i) => { + // arr.push({ + // sno: i + 1, + // role: val.servicename, + // cost: val.serviceamount, + // serviceid: val.serviceid, + // tenantid: val.tenantid, + // categoryid: val.categoryid, + // subcategoryid: val.subcategoryid, + // servicecode: val.servicecode, + // servicename: val.servicename, + // unitid: val.unitid, + // unitname: val.unitname, + // serviceamount: val.serviceamount, + // discountid: val.discountid, + // taxpercent: val.taxpercent, + // taxamount: val.taxamount, + // servicevalue: val.servicevalue + // }) + // }) + res.data.details.tenantservice.map((val, i) => { + arr.push({ + sno: i + 1, + role: val.servicename, + cost: val.serviceamount, + serviceid: val.serviceid, + tenantid: val.tenantid, + categoryid: val.categoryid, + subcategoryid: val.subcategoryid, + servicecode: val.servicecode, + servicename: val.servicename, + unitid: val.unitid, + unitname: val.unitname, + serviceamount: val.serviceamount, + discountid: val.discountid, + taxpercent: val.taxpercent, + taxamount: val.taxamount, + servicevalue: val.servicevalue, + categoryname: val.categoryname, + subcategoryname: val.subcategoryname + }); + }); + setRolesarr([...arr]); + } + console.log('res'); + console.log(res); + } + // setExpandopen((expandopen === rowsno) ? '' : rowsno) + // setEditexpandopen(''); + // setLoading(false) + // setLoading1(false) + if (tabvalue === 1) { + setLoading1(false); + } + }) + .catch((err) => { + console.log(err); + // setLoading(false) + setLoading1(false); + }); + } catch (err) { + console.log(err); + // setLoading(false) + setLoading1(false); + } + }; + + const clientupdate = async () => { + if (!clientname) { + // setAlertmessage('Fill Business name'); + opentoast('Fill Business name'); + } else if (!regno) { + // setAlertmessage('Fill Business No.'); + opentoast('Fill Business No.'); + } else if (!emailaddress) { + // setAlertmessage('Fill Email address'); + opentoast('Fill Email address'); + } else if (!mobilenumber) { + // setAlertmessage('Fill Mobile number'); + opentoast('Fill Mobile number'); + } else if (!contactname) { + // setAlertmessage('Fill Contact name'); + opentoast('Fill Contact name'); + } else if (!address) { + // setAlertmessage('Fill Address'); + opentoast('Fill Address'); + } else if (!city) { + // setAlertmessage('Fill City name'); + opentoast('Fill City name'); + } else if (!zipcode) { + // setAlertmessage('Fill Zip code'); + opentoast('Fill Zip code'); + } else if (!latlong.lat || !latlong.lng) { + setAlertmessage('Fill correct address'); + opentoast('Fill correct address'); + } else if ((approveid || disableid) && !(rolesarr[0].role && rolesarr[0].cost)) { + opentoast('Fill client pricing'); + } else { + let obj = { + tenantid: currenttenantid, + registrationno: regno, + tenantname: clientname, + primaryemail: emailaddress, + primarycontact: contactname, + contactno: mobilenumber, + address: address, + suburb: suburb, + city: city, + state: state1, + postcode: zipcode, + latitude: latlong.lat.toString(), + longitude: latlong.lng.toString(), + approved: (approveid && tabvalue === 1) || (!approveid && tabvalue === 0 && !disableid) ? 1 : 0 + }; + console.log(obj); + + try { + setLoading(true); + await axios + .put(`${process.env.REACT_APP_URL2}/tenants/update`, obj) + .then((res) => { + console.log('res:', res); + if (res.data.message === 'Update successful') { + // dispatch( + // openSnackbar({ + // open: true, + // message: 'Client Detail Updated Successfully', + // variant: 'alert', + // anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // alert: { + // color: 'success' + // } + // }) + // ) + enqueueSnackbar('Client Details Updated Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 3000 + }); + setLoading(true); + + setTimeout(() => { + clientdetailspending(); + clientdetailsapproved(); + setTabvalue(0); + setLoading(false); + }, 2000); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + const rolepricesubmit = async () => { + console.log('submit'); + let arr = []; + let objcheck = false; + rolesarr.map((val) => { + if (!val.role || !val.cost) { + objcheck = true; + } + arr.push({ + serviceid: val.serviceid, + tenantid: currenttenantid, + categoryid: val.categoryid, + subcategoryid: val.subcategoryid, + servicecode: val.servicecode, + servicename: val.servicename, + unitid: val.unitid, + unitname: val.unitname, + serviceamount: parseFloat(val.serviceamount), + categoryname: val.categoryname, + subcategoryname: val.servicename + // discountid: val.discountid, + // taxpercent: val.taxpercent, + // taxamount: val.taxamount, + // servicevalue: parseFloat(val.servicevalue), + }); + }); + console.log(arr); + if (!objcheck) { + try { + setLoading(true); + // await axios.post(`${process.env.REACT_APP_URL2}/tenants/createservice`, arr)tenants/update/services + await axios + .put(`${process.env.REACT_APP_URL2}/tenants/update/services`, arr) + .then((res) => { + console.log('res:', res); + if (res.data.message === 'Update successful') { + enqueueSnackbar('Service Updated Successfully', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } else { + enqueueSnackbar('Fill all Details', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + }; + + const createrequest = () => { + if (!refno) { + // setAlertmessage('Fill Business name'); + opentoast('Fill Reference No'); + } else if (!requestor) { + // setAlertmessage('Fill Business No.'); + opentoast('Fill Requestor'); + } else if (!bankname) { + // setAlertmessage('Fill Email address'); + opentoast('Fill Bank Name'); + } else if (!amount) { + // setAlertmessage('Fill Mobile number'); + opentoast('Fill Amount'); + } else if (!accountno) { + // setAlertmessage('Fill Contact name'); + opentoast('Fill Account No'); + } else if (!ifsc) { + // setAlertmessage('Fill Address'); + opentoast('Fill IFSC'); + } else if (!reason) { + // setAlertmessage('Fill City name'); + opentoast('Fill Reason'); + } else { + let obj = { + requestid: 0, + requestdate: dayjs().format('YYYY-MM-DD HH:mm:ss'), + referenceno: refno, + Apptypeid: 22, + requesttype: 'staffexpenses', + reason: reason, + requestor: requestor, + amount: amount, + Accountno: accountno, + bankname: bankname, + ifsccode: ifsc + }; + + console.log(obj); + } + }; + + // const rolepriceupdate = async () => { + // console.log('submit') + // let arr = []; + // let objcheck = false; + // rolesarr.map((val) => { + // if (!val.role || !val.cost) { + // objcheck = true; + // } + // arr.push({ + // serviceid: 0, + // tenantid: currenttenantid, + // categoryid: val.categoryid, + // subcategoryid: val.subcategoryid, + // servicecode: val.servicecode, + // servicename: val.servicename, + // unitid: val.unitid, + // unitname: val.unitname, + // serviceamount: parseFloat(val.serviceamount), + // discountid: val.discountid, + // taxpercent: val.taxpercent, + // taxamount: val.taxamount, + // servicevalue: parseFloat(val.servicevalue), + + // }) + // }) + // console.log(arr) + // if (!objcheck) { + // try { + // setLoading(true) + // // await axios.post(`${process.env.REACT_APP_URL2}/clients/createservice`, arr) + // await axios.post(`${process.env.REACT_APP_URL2}/tenants/createservice`, arr) + + // // await axios.post(`${process.env.REACT_APP_URL2}/clients/createservice`, arr) + // .then((res) => { + // console.log('res:', res); + // if (res.data.message === "Successful") { + + // enqueueSnackbar('Service created Successfully', { variant: 'success',anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // autoHideDuration: 3000 }) + // } + // setLoading(false) + // }).catch((err) => { + // console.log(err) + // setLoading(false) + // }) + + // } catch (err) { + // console.log(err); + // setLoading(false) + // } + // } else { + + // enqueueSnackbar('Fill all Details', { variant: 'error',anchorOrigin: { vertical: 'top', horizontal: 'right' }, + // autoHideDuration: 2000 }) + // } + // } + + const handleRequestSort = (event, property) => { + const isAsc = orderBy === property && order === 'asc'; + setOrder(isAsc ? 'desc' : 'asc'); + setOrderBy(property); + }; + + const handleSelectAllClick = (event) => { + if (event.target.checked) { + const newSelected = rows.map((n) => n.name); + setSelected(newSelected); + return; + } + setSelected([]); + }; + + const handleClick = (event, name) => { + const selectedIndex = selected.indexOf(name); + let newSelected = []; + + if (selectedIndex === -1) { + newSelected = newSelected.concat(selected, name); + } else if (selectedIndex === 0) { + newSelected = newSelected.concat(selected.slice(1)); + } else if (selectedIndex === selected.length - 1) { + newSelected = newSelected.concat(selected.slice(0, -1)); + } else if (selectedIndex > 0) { + newSelected = newSelected.concat(selected.slice(0, selectedIndex), selected.slice(selectedIndex + 1)); + } + + setSelected(newSelected); + }; + + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; + + // const handleChangeDense = (event) => { + // setDense(event.target.checked); + // }; + + const isSelected = (name) => selected.indexOf(name) !== -1; + + // Avoid a layout jump when reaching the last page with empty rows. + const emptyRows = page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0; + + const visibleRows = React.useMemo( + () => stableSort(rows, getComparator(order, orderBy)).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), + [order, orderBy, page, rowsPerPage] + ); + + return ( + <> + + Create Request + + + + + {/* */} + {/* Client} sx={{ height: '100%' }}> + + */} + + {/* */} + Reference No + { + setRefno(e.target.value); + console.log(e); + }} + /> + + + Requestor + setRequestor(e.target.value)} + // label='Business No.' + fullWidth + sx={{ width: '100%' }} + /> + {/* */} + + + + {/* + */} + + Bank Name + + setBankname(e.target.value)} + // label='Email' + /> + + + Amount + + +1, + // }} + sx={{ width: '100%' }} + onChange={(e) => setAmount(e.target.value)} + /> + {/* + */} + + {/* + + */} + + {/* */} + Account No + + { + setAccountno(e.target.value); + console.log(e); + }} + /> + + + IFSC Code + + setIfsc(e.target.value)} + // label='Business No.' + fullWidth + sx={{ width: '100%' }} + /> + {/* */} + + + Reason + + setReason(e.target.value)} + // label='Business No.' + fullWidth + sx={{ width: '100%' }} + /> + {/* */} + + + + + + + + + + + + + + + + + + + + + {loading && ( + <> + + {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((item) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + ))} + + + )} + + + {visibleRows.map((row, index) => { + const isItemSelected = isSelected(row.sno); + const labelId = `enhanced-table-checkbox-${index}`; + return ( + <> + handleClick(event, row.sno)} + role="checkbox" + aria-checked={isItemSelected} + tabIndex={-1} + key={row.sno} + // selected={isItemSelected} + sx={{ cursor: 'pointer' }} + > + {/* + + */} + + {row.sno} + + + + + + + {row.requestor} + {/* + {row.primaryemail} + */} + + + + + {row.accountno} + {row.bankname} + + {row.ifsccode} + + {/* + + {row.address.slice(0, 15)}... + + */} + {row.referenceno} + + {row.amount} + {row.reason} + {/* + + {row.reason} + + */} + + + + + + + + {loading1 ? ( + <> + + {/* + Loading... + */} + + + + + + ) : ( + <> + setRolestab(i)}> + + + + {rolestab === 0 && ( + <> + + + + + + + + + {clientname} + {regno} + + + + {/* + + */} + {/* + + + All orders + + + + + Covered orders + + + + */} + + + + + + + + + + {/* */} + {emailaddress} + {/* */} + + + + + + {/* */} + + {/* + {/* */} + + {/* + + + + + city + + + {/* */} + + + + + + + {/* */} + Contact Details} sx={{ height: '100%' }}> + + + + + + Contact Name + {contactname} + + + + {/* + Contact number + + {mobilenumber} + + */} + + + + + + + Address + {address} + + + + + + + City + {city} + + + + + Zip Code + + {/* */} + {zipcode} + + + + + + + + + {/* */} + + + + )} + {rolestab === 1 && ( + <> + + + + {/* */} + {rolesarr[0].role ? ( + <> + +
    + + + # + Category + + Skill + + Cost/Hr + + {/* */} + + + + {rolesarr.map((val1) => { + return ( + <> + + {val1.sno} + {val1.categoryname} + {val1.role} + {val1.cost} + + + ); + })} + +
    +
    + + ) : ( + <> + No Data found + + )} + {/* + + */} + {/* + + + + + + + + */} + {/* */} + + + + + )} + + )} + + + + + {/* edit page collapse */} + + + + {loading1 ? ( + <> + + {/* + Loading... + */} + + + + + + ) : ( + <> + + setRolestab(i)}> + + + + {rolestab === 0 && ( + <> + + + + Client
    } sx={{ height: '100%' }}> + + + {/* */} + {/* */} + + {/* Client name */} + setClientname(e.target.value)} + /> + + setRegno(e.target.value)} + label="Business No." + // placeholder='Registration Number' + fullWidth + sx={{ width: '100%' }} + /> + + {/* */} + + + + + + } + sx={{ width: '100%' }} + onChange={(e) => setEmailaddress(e.target.value)} + label="Email" + /> + + +1 + }} + sx={{ width: '100%' }} + onChange={(e) => setMobilenumber(e.target.value)} + /> + {/* */} + {/* */} + {/* */} + + + + + + + + {/* */} + Contact Details} sx={{ height: '100%' }}> + {/* + */} + + + + {/* Contact Name */} + setContactname(e.target.value)} + label="Contact Name" + /> + {/* name */} + + + + {/* */} + {/* + */} + {/* */} + + + {/* Address */} + {/* {((row.sno === 1)) && */} + + <> + {/* setAddress(e.target.value)} + inputRef={materialRef} + + + /> */} + + + {/* } */} + + { + setAddress(place.formatted_address); + let city1, state, zipcode1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + setState1(state || ''); + setZipcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + }} + options={{ + types: ['address' || 'geocode'] + }} + placeholder="Address" + value={address} + onChange={(e) => setAddress(e.target.value)} + /> + + + {/* */} + {/* + */} + {/* */} + + + {/* City */} + {/* City */} + setCity(e.target.value)} + /> + {/* {'data.address'} */} + + + + + {/* Zip Code */} + {/* + + */} + setZipcode(e.target.value)} + /> + + + + + + + + + {/* + + */} + + + {/* */} + + + + + )} + {rolestab === 1 && ( + <> + + + + + + + + + # + Category + + Skill + + Cost/Hr + + + + + + {rolesarr.map((val1) => { + return ( + <> + + {val1.sno} + {/* {val1.sno} */} + {val1.categoryname} + + + -b.categoryname.localeCompare(a.categoryname) + )} + groupBy={(option) => option.categoryname} + getOptionLabel={(option) => option.subcategoryname} + isOptionEqualToValue={(option, value) => + option.subcategoryid === value.subcategoryid + } + onChange={(e, val) => { + if (val) { + console.log('eval', e); + // console.log(skillsarr) + // let res = rolesarr.find((val2) => val2.role === val.servicename); + let res = rolesarr.find( + (val2) => val2.subcategoryid === val.subcategoryid + ); + + console.log(val); + if (!res) { + let arr = rolesarr; + arr[val1.sno - 1].role = val.subcategoryname; + arr[val1.sno - 1].categoryname = val.categoryname; + + // arr[val1.sno - 1].Staffroleid = 0; + + arr[val1.sno - 1].categoryid = val.categoryid; + arr[val1.sno - 1].subcategoryid = val.subcategoryid; + // arr[val1.sno - 1].servicename = val.servicename; + arr[val1.sno - 1].servicename = val.subcategoryname; + // arr[val1.sno - 1].servicecode = val.servicecode; + + // arr[val1.sno - 1].unitid = val.serviceunit; + arr[val1.sno - 1].unitid = val.unitid; + // arr[val1.sno - 1].serviceid = val.serviceid; + + // arr[val1.sno - 1].unitname = val.serviceunitname; + arr[val1.sno - 1].unitname = val.unitname; + + // setSkillsarr([...arr]); + setRolesarr([...arr]); + } else { + // setAlertmessage('select different skill') + opentoast('select different skill'); + } + } + console.log(val); + }} + renderInput={(params) => ( + + )} + // renderGroup={(params) => ( + //
  • + + //
    {params.group}
    + //

    {params.children}

    + + //
  • + // )} + // options={roleslist} + value={{ + categoryid: val1.categoryid, + categoryname: '', + cost: val1.serviceamount, + label: val1.servicename, + status: 0, + subcategoryid: val1.subcategoryid, + subcategoryname: val1.servicename, + unitid: val1.unitid, + unitname: val1.unitname + }} + // textContent={val1.servicename} + + disabled={loading ? true : false} + /> +
    + + + { + let arr = rolesarr; + if (e.target.value < 1000) { + arr[val1.sno - 1].cost = e.target.value; + arr[val1.sno - 1].servicevalue = e.target.value; + arr[val1.sno - 1].serviceamount = e.target.value; + + setRolesarr([...arr]); + } + + // forceUpdate() + console.log(e.target.value); + }} + value={val1.cost} + autoComplete="off" + fullWidth + /> + + + + deletearr(val1.sno, val1)} color="error"> + + + +
    + + ); + })} +
    +
    +
    + + + + + + + {/* */} + + + + {/* */} + +
    +
    +
    +
    + + )} + + + )} + + + + + + ); + })} + {emptyRows > 0 && ( + + + + )} + + + + + {/* */} + {/* } + label="Dense padding" + /> */} + {/* */} + + + ); + } + + const [tabvalue, setTabvalue] = useState(0); + const [rows, setRows] = useState([]); + const [clientapproved, setClientApproved] = useState([]); + const [clientpending, setClientPending] = useState([]); + const [loading, setLoading] = useState(false); + const [searchword, setSearchword] = useState(''); + const [dialogopen, setDialogopen] = useState(false); + const theme = useTheme(); + // const [expandopen, setExpandopen] = React.useState(''); + + // const setinitial = (val)=>{ + // if(val){ + + // console.log(val); + // setClientname(val.tenantname) + // }else{ + // setClientname('') + // } + // console.log(clientname) + + // } + + useEffect(() => { + if (localStorage.getItem('partnerid')) { + clientdetailspending(localStorage.getItem('partnerid')); + clientdetailsapproved(localStorage.getItem('partnerid')); + } + }, []); + + useEffect(() => { + // if (searchword) { + // if (tabvalue === 0) { + // let arr = clientapproved.filter((val) => { + // return (val.tenantname.toLowerCase().includes(searchword.toLowerCase()) + // || val.primarycontact.toLowerCase().includes(searchword.toLowerCase()) + // || val.primaryemail.toLowerCase().includes(searchword.toLowerCase()) + // || val.city.toString().toLowerCase().includes(searchword.toLowerCase()) + // ) + // }) + // console.log(arr) + // setRows([...arr]) + // } + // if (tabvalue === 1) { + // let arr = clientpending.filter((val) => { + // return (val.tenantname.toLowerCase().includes(searchword.toLowerCase()) + // || val.primarycontact.toLowerCase().includes(searchword.toLowerCase()) + // || val.primaryemail.toLowerCase().includes(searchword.toLowerCase()) + // || val.city.toString().toLowerCase().includes(searchword.toLowerCase()) + // ) + // }) + // console.log(arr) + // setRows([...arr]) + // } + // } + }, [searchword, tabvalue]); + + const handleChangetab = (e, i) => { + setTabvalue(i); + if (i === 1) setRows(clientapproved); + if (i === 0) setRows(clientpending); + }; + + const clientdetailsapproved = async (tid) => { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL}/payments/requests/getpaymentrequest/?partnerid=${tid}&status=1`) + + .then((res) => { + if (res.data.message === 'Successful') { + let arr = []; + res.data.details.map((val, i) => { + arr = [...arr, { ...val, sno: i + 1 }]; + }); + // setArr(arr) + setClientApproved(arr); + console.log(res.data.details); + setLoading(false); + } + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + + const clientdetailspending = async (tid) => { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL}/payments/requests/getpaymentrequest/?partnerid=${tid}&status=0`) + + .then((res) => { + if (res.data.message === 'Success') { + let arr = []; + res.data.details.map((val, i) => { + arr = [...arr, { ...val, sno: i + 1 }]; + }); + // setArr(arr) + setClientPending(arr); + setRows(arr); + console.log(res.data.details); + setLoading(false); + } + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + }; + + const dialogclose = () => { + setDialogopen(false); + }; + + return ( + <> + {loading && } + + + + + Payment Requests + + + + + + {/* */} + + + + } + iconPosition="end" + /> + } + icon={} + /> + + + + + + + } + aria-describedby="header-search-text" + inputProps={{ + 'aria-label': 'weight' + }} + placeholder="Search" + value={searchword} + onChange={(e) => { + setSearchword(e.target.value); + }} + autoComplete="off" + /> + + + {/* */} + + + + + + ); +}; + +export default Requests; diff --git a/src/pages/nearle/riders/createrider.js b/src/pages/nearle/riders/createrider.js new file mode 100644 index 0000000..f7152d7 --- /dev/null +++ b/src/pages/nearle/riders/createrider.js @@ -0,0 +1,509 @@ +import { useEffect, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box, Button, FormLabel, Grid, InputLabel, MenuItem, Select, Stack, TextField, Typography } from '@mui/material'; + +// third-party +// import { PatternFormat } from 'react-number-format'; + +// project import +import Avatar from 'components/@extended/Avatar'; +import MainCard from 'components/MainCard'; +import { + // facebookColor, linkedInColor, twitterColor + ThemeMode +} from 'config'; +import axios from 'axios'; +// assets +import { + // FacebookFilled, LinkedinFilled, TwitterSquareFilled, + CameraOutlined +} from '@ant-design/icons'; +import { usePlacesWidget } from 'react-google-autocomplete'; +import Loader from 'components/Loader'; +import Geocode from 'react-geocode'; +import { enqueueSnackbar } from 'notistack'; +import { useNavigate } from 'react-router'; +// import { setLocationType } from 'react-geocode'; + +// const avatarImage = require.context('assets/images/users', true); + +// styles & constant +// const ITEM_HEIGHT = 48; +// const ITEM_PADDING_TOP = 8; +// const MenuProps = { +// PaperProps: { +// style: { +// maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP +// } +// } +// }; + +const Createrider = () => { + const theme = useTheme(); + const [selectedImage, setSelectedImage] = useState(undefined); + const [avatar, setAvatar] = + useState(); + // avatarImage(`./default.png`) + const [businessname, setBusinessname] = useState(''); + const [businessno, setBusinessno] = useState(''); + // const [role, setRole] = useState(''); + const [mobilenumber, setMobilenumber] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + const [city, setCity] = useState(''); + const [zipcode, setZipcode] = useState(''); + const [address, setAddress] = useState(''); + const [state, setState] = useState(''); + const [suburb, setSuburb] = useState(''); + const [latlong, setLatlong] = useState({}); + const [profiledetails, setProfiledetails] = useState({}); + const [primarycontact, setPrimarycontact] = useState(''); + const [firstname, setFirstname] = useState(''); + const [doorno, setDoorno] = useState(''); + const [landmark, setLandmark] = useState(''); + const [tenantinfo, setTenantinfo] = useState({}); + + const navigate = useNavigate(); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + // Geocode.setApiKey('AIzaSyCF4KatYCI3vqz1_H3kiHeyS3yCMfYToh8'); + + const [loading, setLoading] = useState(false); + + useEffect(() => { + // fetchprofiledetails(localStorage.getItem('appuserid')); + // fetchprofiledetails(181); + if (localStorage.getItem('tenantid')) { + fetchtenantinfo(localStorage.getItem('tenantid')); + } + }, []); + + useEffect(() => { + try { + Geocode.fromAddress(address).then( + (response) => { + if (response.status == 'OK') { + const { lat, lng } = response.results[0].geometry.location; + setLatlong({ + lat, + lng + }); + console.log(response); + } + }, + (error) => { + console.log(error); + } + ); + } catch (err) { + console.log(err); + } + }, [address]); + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + // console.log(alertmessage) + }; + + const fetchprofiledetails = async (userid) => { + if (userid) { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + let res1 = res.data.details; + setProfiledetails(res1); + setBusinessname(res1.tenantname); + setBusinessno(res1.registrationno); + setMobilenumber(res1.contactno); + setPrimarycontact(res1.primarycontact); + setEmailaddress(res1.primaryemail); + setAddress(res1.address); + setCity(res1.city); + setZipcode(res1.postcode); + setState(res1.state); + setSuburb(res1.suburb); + setLatlong({ + lat: res1.latitude, + lng: res1.longitude + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + const fetchtenantinfo = async (tid) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) + .then((res) => { + console.log(res); + if (res.data.status) { + setTenantinfo(res.data.details); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (selectedImage) { + setAvatar(URL.createObjectURL(selectedImage)); + } + }, [selectedImage]); + + const { ref: materialRef } = usePlacesWidget({ + apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY, + onPlaceSelected: (place) => { + console.log(place); + + setAddress(place.formatted_address); + let city1, zipcode1, state1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state1 = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + setState(state1 || ''); + setZipcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + + // setAddress(place.formatted_address) + }, + // inputAutocompleteValue: "country", + options: { + // componentRestrictions: 'us', + // types: ["establishment"] + types: ['address' || 'geocode'] + } + }); + + const createprofile = async () => { + console.log('res', businessname, businessno, mobilenumber, emailaddress, address, city, zipcode); + + // if (!businessname) { + // opentoast('Fill Business name') + // } else if (!businessno) { + // opentoast('Fill Registration No') + // } + // else + if (!firstname) { + opentoast('Fill Full name'); + } else if (!mobilenumber) { + opentoast('Fill Mobile Number'); + } else if (!emailaddress) { + opentoast('Fill emailaddress'); + } else if (!address) { + opentoast('Fill Address'); + } else if (!city) { + opentoast('Fill City'); + } else if (!zipcode) { + opentoast('Fill post code'); + } else if (!suburb) { + opentoast('Fill suburb'); + } else if (!emailaddress) { + opentoast('Fill emailaddress'); + } else if (!latlong.lat || !latlong.lng) { + opentoast('Choose valid address'); + } else { + let obj = { + customerid: 0, + configid: 1, + firstname: firstname, + applocationid: tenantinfo.applolcationid, + profileimage: '', + dialcode: '+91', + contactno: mobilenumber, + devicetype: '', + deviceid: '', + customertoken: '', + address: address, + suburb: suburb, + city: city, + state: state, + postcode: zipcode, + landmark: landmark, + doorno: doorno, + latitude: latlong.lat.toString(), + longitude: latlong.lng.toString(), + tenantid: parseInt(localStorage.getItem('tenantid')), + email: emailaddress + }; + + console.log(obj); + + setLoading(true); + try { + await axios + .post(`${process.env.REACT_APP_URL}/customers/create`, obj) + .then((res) => { + console.log(res); + if (res.data.status) { + enqueueSnackbar(' Created Successfully ', { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + navigate('/clients'); + // setTimeout(()=>{ + // fetchprofiledetails(localStorage.getItem('appuserid')); + + // },2000) + } else if (res.data.message == 'Customer Already available') { + enqueueSnackbar('Customer Already available', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + + setLoading(false); + enqueueSnackbar(err.message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + return ( + <> + {loading && } + + + + Create Rider + + + + + + + + + + Admin Name + setFirstname(e.target.value)} + value={firstname} + autoComplete="off" + /> + + + + + + Phone Number + + + { }} + onChange={(e) => { + if (e.target.value.toString().length <= 10) { + setMobilenumber(e.target.value); + } + }} + value={mobilenumber} + autoComplete="off" + // disabled + sx={{ cursor: 'not-allowed' }} + /> + + + + + + Email Address + setEmailaddress(e.target.value)} + value={emailaddress} + autoComplete="off" + /> + + + + + + Address + setAddress(e.target.value)} + inputRef={materialRef} + /> + + + + + + Suburb + setSuburb(e.target.value)} + value={suburb} + autoComplete="off" + /> + + + + + City + setCity(e.target.value)} + value={city} + autoComplete="off" + /> + + + + + + State + setState(e.target.value)} + value={state} + autoComplete="off" + /> + + + + + Post Code + setZipcode(e.target.value)} + value={zipcode} + autoComplete="off" + /> + + + + + + Door No + setDoorno(e.target.value)} + value={doorno} + autoComplete="off" + /> + + + + + Landmark + setLandmark(e.target.value)} + value={landmark} + autoComplete="off" + /> + + + + + + + + + + + + + + ); +}; + +export default Createrider; diff --git a/src/pages/nearle/riders/editRider.js b/src/pages/nearle/riders/editRider.js new file mode 100644 index 0000000..30cc99b --- /dev/null +++ b/src/pages/nearle/riders/editRider.js @@ -0,0 +1,1205 @@ +import { useEffect, useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useLocation, useNavigate } from 'react-router-dom'; + +import { + Box, + Button, + FormLabel, + Grid, + InputLabel, + MenuItem, + Select, + Stack, + TextField, + Typography, + Autocomplete, + Divider +} from '@mui/material'; +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; + +import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider'; +import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; +// third-party +// import { PatternFormat } from 'react-number-format'; +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; + +// project import +import Avatar from 'components/@extended/Avatar'; +import MainCard from 'components/MainCard'; +import { + // facebookColor, linkedInColor, twitterColor + ThemeMode +} from 'config'; +import axios from 'axios'; +// assets +import { + // FacebookFilled, LinkedinFilled, TwitterSquareFilled, + CameraOutlined +} from '@ant-design/icons'; +import { usePlacesWidget } from 'react-google-autocomplete'; +import Loader from 'components/Loader'; +import Geocode from 'react-geocode'; +import { enqueueSnackbar } from 'notistack'; +import dayjs from 'dayjs'; +import CircularLoader from 'components/CircularLoader'; + +const EditRider = () => { + const location = useLocation(); + const [riderdata, setRiderdata] = useState(null); + const navigate = useNavigate(); + const theme = useTheme(); + const [selectedImage, setSelectedImage] = useState(undefined); + const [avatar, setAvatar] = useState(); + + const [businessname, setBusinessname] = useState(''); + const [businessno, setBusinessno] = useState(''); + + const [mobilenumber, setMobilenumber] = useState(''); + const [emailaddress, setEmailaddress] = useState(''); + + const [zipcode, setZipcode] = useState(''); + const [address, setAddress] = useState(''); + const [suburb, setSuburb] = useState(''); + const [city, setCity] = useState(''); + const [state, setState] = useState(''); + + const [latlong, setLatlong] = useState({}); + const [profiledetails, setProfiledetails] = useState({}); + const [primarycontact, setPrimarycontact] = useState(''); + const [firstname, setFirstname] = useState(''); + const [lastname, setLastname] = useState(''); + + const [doorno, setDoorno] = useState(''); + const [landmark, setLandmark] = useState(''); + const [tenantinfo, setTenantinfo] = useState({}); + + const [idno, setIdno] = useState(''); + const [basefare, setBasefare] = useState(''); + const [additionalkms, setAdditionalkms] = useState(''); + const [othercharges, setOthercharges] = useState(''); + + const [account, setAccount] = useState({}); + const [accountType, setAccountType] = useState(''); + + const [accountname, setAccountname] = useState(''); + const [accountno, setAccountno] = useState(''); + const [bankname, setBankname] = useState(''); + const [ifsc, setIfsc] = useState(''); + const [branch, setBranch] = useState(''); + + const [vehicle, setVehicle] = useState({}); + const [vehicleno, setVehicleno] = useState(''); + const [Modelyear, setModelyear] = useState(''); + const [vehiclecolor, setVehiclecolor] = useState(''); + const [licenseno, setLicenseno] = useState(''); + const [insuranceno, setInsuranceno] = useState(''); + const [expirydate, setExpirydate] = useState(''); + + const [partner, setPartner] = useState({}); + + const [vehiclelist, setVehiclelist] = useState([]); + const [accountlist, setAccountlist] = useState([]); + const [partnerlist, setPartnerlist] = useState([]); + + const [shiftlist, setShiftlist] = useState([]); + const [shift, setShift] = useState({}); + const [locaName, setLocoName] = useState(); + const userid = localStorage.getItem('userid'); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + + const [loading, setLoading] = useState(false); + + const fetchRiderData = async (id) => { + try { + let riderdataresponse = await axios.get(`https://jupiter.nearle.app/live/api/v1/partners/getriderdetail/?userid=${id}`); + console.log('riderdataresponse', riderdataresponse.data.details); + setRiderdata(riderdataresponse.data.details); + fetchridershifts(riderdataresponse.data.details.applocationid); + } catch (error) { + console.log('fetchmanagerList', error); + } + }; + useEffect(() => { + fetchRiderData(location.state.riderdata.userid); + }, []); + + useEffect(() => { + console.log('riderdata', riderdata); + }, [riderdata, address]); + + useEffect(() => { + setAddress(location.state.riderdata.address); + setSuburb(location.state.riderdata.suburb); + setCity(location.state.riderdata.city); + setState(location.state.riderdata.state); + }, []); + + useEffect(() => { + if (localStorage.getItem('tenantid')) { + fetchtenantinfo(localStorage.getItem('tenantid')); + } + fetchvehicle(); + fetchaccounttype(); + // fetchpartnerlist(); + }, []); + + useEffect(() => { + if (partner.applocationid) { + fetchridershifts(partner.applocationid); + } + }, [partner.applocationid]); + + const opentoast = (message) => { + enqueueSnackbar(message, { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + }; + + const fetchprofiledetails = async (userid) => { + if (userid) { + setLoading(true); + try { + await axios + .get(`${process.env.REACT_APP_URL2}/tenants/getclient?id=${userid}`) + .then((res) => { + console.log(res); + if (res.data.message === 'Successful') { + let res1 = res.data.details; + setProfiledetails(res1); + setBusinessname(res1.tenantname); + setBusinessno(res1.registrationno); + setMobilenumber(res1.contactno); + setPrimarycontact(res1.primarycontact); + setEmailaddress(res1.primaryemail); + setAddress(res1.address); + setCity(res1.city); + setZipcode(res1.postcode); + setState(res1.state); + setSuburb(res1.suburb); + setLatlong({ + lat: res1.latitude, + lng: res1.longitude + }); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + } catch (err) { + console.log(err); + setLoading(false); + } + } + }; + + const fetchtenantinfo = async (tid) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/tenants/gettenantinfo/?tenantid=${tid}`) + .then((res) => { + console.log(res); + if (res.data.status) { + setTenantinfo(res.data.details); + } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + const fetchvehicle = async (tid) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapptypes?tag=vehicle`) + .then((res) => { + console.log('fetchvehicle', res); + let arr = []; + res.data.map((val) => { + arr.push({ + ...val, + label: val.typename + }); + }); + setVehiclelist([...arr]); + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + const fetchaccounttype = async () => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/utils/getapptypes?tag=accounttype`) + .then((res) => { + console.log(res); + // if (res.data.status) { + let arr = []; + res.data.map((val) => { + arr.push({ + ...val, + label: val.typename + }); + }); + setAccountlist([...arr]); + console.log(arr); + // } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + // const fetchpartnerlist = async () => { + // setLoading(true); + // await axios + // .get(`${process.env.REACT_APP_URL}/partners/getpartners`) + // .then((res) => { + // console.log('fetchpartnerlist', res); + // // if (res.data.status) { + // let arr = []; + // res.data.details.map((val) => { + // arr.push({ + // ...val, + // label: val.partnername + // }); + // }); + // setPartnerlist([...arr]); + // console.log(arr); + // // } + // setLoading(false); + // }) + // .catch((err) => { + // console.log(err); + // setLoading(false); + // }); + // }; + // ==============================|| fetchAppLocations ||============================== // + const fetchAppLocations = async () => { + try { + const locationRes = await axios.get(`${process.env.REACT_APP_URL}/partners/getlocations/?userid=${userid}`); + // const updatedLocations = [ + // ...locationRes.data.details, + // { locationname: 'All', applocationid: 0 } // Add your new object here + // ]; + console.log('fetchAppLocations', locationRes.data.details); + setPartnerlist(locationRes.data.details); + } catch (err) { + console.log('locationRes', err); + } + }; + useEffect(() => { + fetchAppLocations(); + }, []); + + const fetchridershifts = async (id) => { + setLoading(true); + await axios + .get(`${process.env.REACT_APP_URL}/partners/getridershifts/?applocationid=${id}`) + .then((res) => { + console.log('fetchridershifts', res); + // if (res.data.status) { + let arr = []; + res.data.details.map((val) => { + arr.push({ + ...val, + label: val.shiftname + }); + }); + setShiftlist([...arr]); + console.log(arr); + // } + setLoading(false); + }) + .catch((err) => { + console.log(err); + setLoading(false); + }); + }; + + useEffect(() => { + if (selectedImage) { + setAvatar(URL.createObjectURL(selectedImage)); + } + }, [selectedImage]); + + const { ref: materialRef } = usePlacesWidget({ + apiKey: process.env.REACT_APP_GOOGLE_MAPS_API_KEY, + onPlaceSelected: (place) => { + console.log(place); + setAddress(place.formatted_address); + + let city1, zipcode1, state1, suburb1; + for (let i = 0; i < place.address_components.length; i++) { + for (let j = 0; j < place.address_components[i].types.length; j++) { + switch (place.address_components[i].types[j]) { + case 'locality': + city1 = place.address_components[i].long_name; + break; + case 'administrative_area_level_1': + state1 = place.address_components[i].long_name; + break; + case 'postal_code': + zipcode1 = place.address_components[i].long_name; + break; + case 'sublocality': + suburb1 = place.address_components[i].long_name; + break; + } + } + } + setCity(city1 || ''); + + setState(state1 || ''); + setZipcode(zipcode1 || ''); + setSuburb(suburb1 || ''); + + // setAddress(place.formatted_address) + }, + // inputAutocompleteValue: "country", + options: { + // componentRestrictions: 'us', + // types: ["establishment"] + types: ['address' || 'geocode'] + } + }); + + const updateRider = async () => { + setLoading(true); + console.log('updated riderData', riderdata); + await axios + .put(`https://jupiter.nearle.app/live/api/v1/partners/updaterider`, { + userid: riderdata.userid, + contactno: riderdata.contactno, + firstname: riderdata.firstname, + lastname: riderdata.lastname, + email: riderdata.email, + address: riderdata.address, + suburb: riderdata.suburb, + city: riderdata.city, + state: riderdata.state, + partnerid: riderdata.partnerid, + applocationid: riderdata.applocationid, + ridersettings: { + riderid: riderdata.riderid, + userid: riderdata.userid, + partnerid: riderdata.partnerid, + shiftid: riderdata.shiftid, + identificationno: riderdata.identificationno, + basefare: riderdata.basefare, + additionalkm: riderdata.additionalkm, + othercharges: riderdata.othercharges, + accountno: riderdata.accountno, + accountname: riderdata.accountname, + accounttypeid: riderdata.accounttypeid, + accounttype: riderdata.accounttype, + bankname: riderdata.bankname, + ifsccode: riderdata.ifsccode, + Branch: riderdata.branch, + vehicleid: riderdata.vehicleid, + vehiclename: riderdata.vehiclename, + vehicleno: riderdata.vehicleno, + model: riderdata.model, + color: riderdata.color, + licenseno: riderdata.licenseno, + insurancedate: dayjs(riderdata.insurancedate).format('YYYY-MM-DD HH:mm:ss') + } + }) + .then((response) => { + console.log('post response', response); + if (response.status == 200) { + enqueueSnackbar(`Updated Sucessfully`, { + variant: 'success', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + setRiderdata(null); + navigate('/nearle/riders'); + setLoading(false); + } else { + enqueueSnackbar('Update Failed', { + variant: 'error', + anchorOrigin: { vertical: 'top', horizontal: 'right' }, + autoHideDuration: 2000 + }); + setLoading(false); + } + }); + }; + return ( + <> + {loading && ( + <> + + + + )} + + Edit Rider + + + } + > + + + {/* || =========================================== || Contact Information || =========================================== || */} + + Contact Information + + } + > + + {/* ========================== || First Name || ========================== */} + + + First Name + { + setRiderdata({ + ...riderdata, + firstname: e.target.value + }); + }} + placeholder="Name" + autoComplete="off" + /> + + + {/* ========================== || Last Name || ========================== */} + + + Last Name + { + setRiderdata({ + ...riderdata, + lastname: e.target.value + }); + }} + value={riderdata?.lastname} + autoComplete="off" + /> + + + {/* ========================== || Phone Number || ========================== */} + + + Phone Number + + + { + setRiderdata({ + ...riderdata, + contactno: e.target.value + }); + }} + value={riderdata?.contactno} + autoComplete="off" + // disabled + sx={{ cursor: 'not-allowed' }} + /> + + + {' '} + {/* ========================== || Email Address || ========================== */} + + + Email Address + { + setRiderdata({ + ...riderdata, + email: e.target.value + }); + }} + value={riderdata?.email} + autoComplete="off" + /> + + + {/* ========================== ||Address || ========================== */} + + + Address + { + setAddress(e.target.value); + }} + inputRef={materialRef} + /> + + + {/* ========================== || Location|| ========================== */} + + + Location + { + setRiderdata({ + ...riderdata, + suburb: e.target.value + }); + setSuburb(e.target.value); + }} + value={suburb} + autoComplete="off" + /> + + + {/* ========================== || City|| ========================== */} + + + City + { + setRiderdata({ + ...riderdata, + city: e.target.value + }); + setCity(e.target.value); + }} + value={city} + autoComplete="off" + /> + + + {/* ========================== || State|| ========================== */} + + + State + { + setRiderdata({ + ...riderdata, + state: e.target.value + }); + setState(e.target.value); + }} + value={state} + autoComplete="off" + /> + + + {/* ========================== || Identification No|| ========================== */} + + + Identification No + { + setRiderdata({ + ...riderdata, + identificationno: e.target.value + }); + }} + value={riderdata?.identificationno} + autoComplete="off" + /> + + + {/* ========================== || Choose Partner|| ========================== */} + + + Choose Partner + `${option.locationname}`} + sx={{ width: 300, height: '30px', ml: 3, zIndex: '100' }} + onChange={(event, value, reason) => { + if (value) { + console.log(value); + setLocoName(value.locationname); + fetchridershifts(value.applocationid); + setRiderdata({ + ...riderdata, + partnerid: value.partnerid, + applocationid: value.applocationid + }); + } else { + setPartner({}); + } + }} + renderInput={(params) => } + /> + {/* } + label={locaName} + options={partnerlist} + getOptionLabel={(option) => `${option.locationname}`} + onChange={(e, val) => { + if (val) { + setPartner(val); + setRiderdata({ + ...riderdata, + partnerid: val.partnerid + }); + } else { + setPartner({}); + } + }} + freeSolo + /> */} + + + + + {/* || =========================================== || Charges || =========================================== || */} + + + Charges + + } + > + + {/* ========================== || Shift Type || ========================== */} + + + + Shift Type + + ( + + )} + // disabled + options={shiftlist} + onChange={(e, val) => { + if (val) { + console.log('shift', val); + setRiderdata({ + ...riderdata, + shiftid: val.shiftid, + additionalkm: val.additionalkm, + additionalcharges: val.additionalcharges, + basefare: val.basefare, + starttime: val.starttime, + endtime: val.endtime + }); + + setBasefare(val.basefare); + setAdditionalkms(val.additionalkm); + setOthercharges(val.additionalcharges); + setShift(val); + } else { + setBasefare(''); + setAdditionalkms(''); + setOthercharges(''); + setShift({}); + } + }} + freeSolo + /> + + + {/* ========================== || Base Fare || ========================== */} + + + + Base Fare + { + setRiderdata({ + ...riderdata, + basefare: e.target.value + }); + setBasefare(e.target.value); + }} + value={riderdata?.basefare} + autoComplete="off" + disabled + /> + + + {/* ========================== || Additional Kms || ========================== */} + + + + Additional Kms + { + setRiderdata({ + ...riderdata, + additionalkm: e.target.value + }); + setAdditionalkms(e.target.value); + }} + value={riderdata?.additionalkm} + autoComplete="off" + disabled + /> + + + {/* ========================== || Other Charges || ========================== */} + + + + Other Charges + { + setRiderdata({ + ...riderdata, + additionalcharges: e.target.value + }); + setOthercharges(e.target.value); + }} + value={riderdata?.additionalcharges} + autoComplete="off" + disabled + /> + + + + + + {/* || =========================================== || Bank Details || =========================================== || */} + + + Bank Details + + } + > + + {' '} + {/* ========================== || Account No|| ========================== */} + + + Account No + { + setRiderdata({ + ...riderdata, + accountno: e.target.value + }); + setAccountno(e.target.value); + }} + autoComplete="off" + /> + + {' '} + {/* ========================== || Account Name || ========================== */} + + + Account Name + { + setRiderdata({ + ...riderdata, + accountname: e.target.value + }); + setAccountname(e.target.value); + }} + autoComplete="off" + /> + + {' '} + {/* ========================== || Account Type || ========================== */} + + + Account Type + + ( + + )} + // disabled + options={accountlist} + // value={clientdetail} + onChange={(e, val) => { + console.log('ac type', val); + if (val) { + setRiderdata({ + ...riderdata, + accounttype: val.label + }); + setAccount(val); + setAccountType(val.label); + // fetchroles(val.tenantid); + } else { + setAccount({}); + } + }} + freeSolo + /> + + {' '} + {/* ========================== || Bank Name|| ========================== */} + + + Bank Name + { + setRiderdata({ + ...riderdata, + bankname: e.target.value + }); + setBankname(e.target.value); + }} + autoComplete="off" + /> + + {' '} + {/* ========================== || IFSC Code || ========================== */} + + + IFSC Code + { + setRiderdata({ + ...riderdata, + ifsccode: e.target.value + }); + setIfsc(e.target.value); + }} + autoComplete="off" + /> + + + {/* ========================== || Branch || ========================== */} + + + Branch + { + setRiderdata({ + ...riderdata, + branch: e.target.value + }); + setBranch(e.target.value); + }} + autoComplete="off" + /> + + + + + + {/* || =========================================== || Vehicle Details || =========================================== || */} + + + Vehicle Details + + } + > + + {/* ========================== || Vehicle Name || ========================== */} + + + Vehicle Name + ( + + )} + // disabled + options={vehiclelist} + // value={clientdetail} + onChange={(e, val) => { + if (val) { + console.log('vehi', val); + setVehicle(val); + setRiderdata({ + ...riderdata, + vehiclename: val.label, + vehicleid: val.apptypeid + }); + + // fetchroles(val.tenantid); + } else { + setVehicle({}); + } + }} + freeSolo + /> + + {' '} + {/* ========================== || Vehicle No || ========================== */} + + + Vehicle No + { + setRiderdata({ + ...riderdata, + vehicleno: e.target.value + }); + }} + value={riderdata?.vehicleno} + autoComplete="off" + /> + + {' '} + {/* ========================== || Model Year || ========================== */} + + + Model Year + { + setRiderdata({ + ...riderdata, + model: e.target.value + }); + setModelyear(e.target.value); + }} + value={riderdata?.model} + autoComplete="off" + /> + + {' '} + {/* ========================== || Vehicle Color || ========================== */} + + + Vehicle Color + { + setRiderdata({ + ...riderdata, + color: e.target.value + }); + setVehiclecolor(e.target.value); + }} + value={riderdata?.color} + autoComplete="off" + /> + + {' '} + {/* ========================== || License No || ========================== */} + + + License No + { + setRiderdata({ + ...riderdata, + licenseno: e.target.value + }); + }} + value={riderdata?.licenseno} + autoComplete="off" + /> + + {' '} + {/* ========================== || Insurance No || ========================== */} + + + Insurance No + { + setRiderdata({ + ...riderdata, + insuranceno: e.target.value + }); + }} + value={riderdata?.insuranceno} + autoComplete="off" + /> + + {' '} + {/* ========================== || Insurance Expiry Date || ========================== */} + + + Insurance Expiry Date + + { + setExpirydate(dayjs(e.$d).format('YYYY-MM-DD 00:00:00')); + setRiderdata({ + ...riderdata, + insurancedate: dayjs(e.$d).format('YYYY-MM-DD 00:00:00') + }); + }} + sx={{ width: '100%' }} + // disablePast + // minDate={dayjs().add(1, 'day')} + /> + + + + + + + {/* ================= FIXED BOTTOM ACTION ================= */} + + + {/* ========================== || Update || ========================== */} + + + + + + + + ); +}; + +export default EditRider; diff --git a/src/pages/nearle/riders/riders.js b/src/pages/nearle/riders/riders.js new file mode 100644 index 0000000..1331622 --- /dev/null +++ b/src/pages/nearle/riders/riders.js @@ -0,0 +1,510 @@ +import * as React from 'react'; +import { useState, useEffect, useRef } from 'react'; +import Geocode from 'react-geocode'; +import { Empty } from 'antd'; +import { useNavigate } from 'react-router-dom'; +import { FaRegEdit } from 'react-icons/fa'; +import { + Avatar, + Box, + Stack, + Chip, + Typography, + Table, + TableCell, + TableBody, + TableHead, + IconButton, + Tabs, + Tab, + TableRow, + Tooltip, + Popper, + ClickAwayListener, + TableContainer, + TablePagination, + Divider, + Backdrop, + Collapse +} from '@mui/material'; +import { enqueueSnackbar } from 'notistack'; +var utc = require('dayjs/plugin/utc'); +import { useTheme } from '@mui/material/styles'; +import { DownOutlined, MoreOutlined, UpOutlined } from '@ant-design/icons'; +import dayjs from 'dayjs'; +dayjs.extend(utc); +import MainCard from 'components/MainCard'; +import TitleCard from 'components/nearle_components/TitleCard'; +import LocationAutocomplete from 'components/nearle_components/LocationAutocomplete'; +import DebounceSearchBar from 'components/nearle_components/DebounceSearchBar'; +import CircularLoader from 'components/CircularLoader'; +import { fetchAllRiders, fetchRiders, getallridersummary, getRiderLogs, getriderstatus } from 'pages/api/api'; +import { useInfiniteQuery, useMutation, useQuery } from '@tanstack/react-query'; +import LoaderWithImage from 'components/nearle_components/LoaderWithImage'; +import Loader from 'components/Loader'; +import { OrdersTableSkeleton } from '../orders/OrdersTableSkeleton'; +import { OpenToast } from 'components/third-party/OpenToast'; +import axios from 'axios'; +import LocationOnIcon from '@mui/icons-material/LocationOn'; +import BatteryStdIcon from '@mui/icons-material/BatteryStd'; +import SpeedIcon from '@mui/icons-material/Speed'; +import AccessTimeIcon from '@mui/icons-material/AccessTime'; +import PowerIcon from '@mui/icons-material/Power'; +import GpsFixedIcon from '@mui/icons-material/GpsFixed'; + +const Riders = () => { + const theme = useTheme(); + const navigate = useNavigate(); + const loadMoreRef = useRef(); + const containerRef = useRef(); + const [searchword, setSearchword] = useState(''); + const [debouncedSearch, setDebouncedSearch] = useState(''); + const [locaName, setLocoName] = useState('All'); + const [appId, setAppId] = useState(0); + const [tabvalue, setTabvalue] = useState(0); + const roleid = localStorage.getItem('roleid'); + const [logsRow, setLogsRow] = useState(null); + const [riderLogsdata, setRiderLogsdata] = useState(null); + + Geocode.setApiKey(process.env.REACT_APP_GOOGLE_MAPS_API_KEY); + + const [open2, setOpen2] = useState(''); + const handleClickAway = () => { + setOpen2(''); + }; + + const handleChangetab = (e, i) => { + setTabvalue(i); + setLogsRow(null); + }; + + // ==============================|| getallridersummary||============================== // + + const { data: allRidersSummary, isLoading: riderSummarysLoading } = useQuery({ + queryKey: ['allriders', appId, tabvalue], + queryFn: getallridersummary + }); + // ==============================|| getRiderLogs (riders)||============================== // + const getRiderLogs = async (userid) => { + try { + const res = await axios.get(`${process.env.REACT_APP_URL}/utils/getriderperiodiclogs?userid=${userid}`); + if (res.data.data.length == 0) { + setLogsRow(null); + OpenToast(res.data.message, 'error', 2000); + } else { + setRiderLogsdata(res.data.data); + } + } catch (err) { + OpenToast(err.message, 'error', 2000); + } + }; + // ==============================|| getriderstatus||============================== // + const { + data: ridersStatus, + isLoading: riderStatusLoading, + isError: riderstatusIsError, + error: riderStatusError + } = useQuery({ + queryKey: ['ridersStatus'], + queryFn: getriderstatus + }); + useEffect(() => { + if (ridersStatus) { + console.log('Success:', ridersStatus); + } + }, [ridersStatus]); + // ==============================|| fetchAllRiders||============================== // + const { + data: allRidersData, + isLoading: allRidersLoading, + isFetchingNextPage, + fetchNextPage, + hasNextPage + } = useInfiniteQuery({ + queryKey: ['allriders', appId, debouncedSearch, tabvalue], + queryFn: fetchAllRiders, + getNextPageParam: (lastPage, pages) => (lastPage.details?.length ? pages.length + 1 : undefined) + }); + + const rows = allRidersData?.pages.flatMap((page) => page.details) || []; + useEffect(() => { + if (!hasNextPage) return; + const observer = new IntersectionObserver( + (entries) => { + if (entries[0].isIntersecting) { + fetchNextPage(); + } + }, + { + root: document.querySelector('.MuiTableContainer-root'), // 👈 or explicitly TableContainer + rootMargin: '0px', + threshold: 1.0 + } + ); + if (loadMoreRef.current) observer.observe(loadMoreRef.current); + return () => { + if (loadMoreRef.current) observer.unobserve(loadMoreRef.current); + }; + }, [hasNextPage, fetchNextPage]); + + const handleScroll = (event) => { + const { scrollTop, scrollHeight, clientHeight } = event.currentTarget; + if (scrollTop + clientHeight >= scrollHeight - 50) { + if (hasNextPage && !isFetchingNextPage) { + fetchNextPage(); + } + } + }; + const errMessage = riderstatusIsError ? riderStatusError : null; + useEffect(() => { + if (errMessage) { + OpenToast(errMessage, 'error', 2000); + } + }, [errMessage]); + return ( + <> + { + theme.zIndex.drawer + 1 + }} + open={allRidersLoading || riderSummarysLoading || riderStatusLoading} // when loader = true, backdrop covers the page + > + + + } + {/* ============================================= || titlecard | ============================================= */} + + + + + + + } + /> + } + /> + + + + + + + + + S.NO + User ID + Rider + Address + Vehicle + Shift + + Time + + Fare + Fuel + + Status + + {roleid == 1 && ( + + Action{' '} + + )} + + + + + {allRidersLoading && } + {rows?.length == 0 && !allRidersLoading && ( + <> + + + + + + + )} + {rows?.length != 0 && + rows?.map((row, index) => { + return ( + <> + + {index + 1} + + + + + + + {row.fullname?.charAt(0).toUpperCase()} + + + {`${row.username}`} + {row.contactno} + + + + + + + {row.suburb || row.address.slice(0, 20)} + {row.city} + + + + {row.vehicleno} + {row.shiftid} + + + + + + + + {row.basefare} + {row.fuelcharge} + {tabvalue == 0 ? ( + + {row.status == 'Active' && ( + + )} + {row.status == 'InActive' && ( + + )} + + ) : ( + + {(() => { + const state = ridersStatus?.find((status) => status.userid === row.userid); + const statusText = state?.status; + console.log('statusText', state); + return ( + + ); + })()} + + )} + + {roleid == 1 && ( + + + + { + navigate('/nearle/riders/edit', { state: { riderdata: row } }); + }} + > + + + + {tabvalue != 0 && ( + { + if (row.userid == logsRow) { + setLogsRow(null); + } else { + setLogsRow(row.userid); + getRiderLogs(row.userid); + } + }} + > + {row.userid == logsRow ? : } + + )} + + + )} + + {logsRow === row.userid && tabvalue !== 0 && ( + + + + +
    + {/* Header */} + + + Location + Battery + Charging + Speed + Accuracy + Time + Order + Status + + + + {/* Body */} + + + + + + + {riderLogsdata?.latitude}, {riderLogsdata?.longitude} + + + + + + + + {riderLogsdata?.battery || 'N/A'} + + + + + + + {riderLogsdata?.is_charging ? 'Charging' : 'Not Charging'} + + + + + + + {riderLogsdata?.speed} km/h + + + + + + + {riderLogsdata?.accuracy} m + + + + + + + {riderLogsdata?.logdate} + + + + {riderLogsdata?.orderid || 'N/A'} + + + + + + +
    +
    + + + + )} + + ); + })} + {rows?.length != 0 && ( + + +
    + {isFetchingNextPage ? : hasNextPage ? : 'No More Riders'} +
    +
    +
    + )} + + + + + + ); +}; + +export default Riders; diff --git a/src/pages/nearle/viewProfile.js b/src/pages/nearle/viewProfile.js new file mode 100644 index 0000000..88de5c2 --- /dev/null +++ b/src/pages/nearle/viewProfile.js @@ -0,0 +1,176 @@ +import { Grid, TextField, Typography } from '@mui/material'; +import { useQuery } from '@tanstack/react-query'; +import CircularLoader from 'components/CircularLoader'; +import Loader from 'components/Loader'; +import MainCard from 'components/MainCard'; +import TitleCard from 'components/nearle_components/TitleCard'; +import { getusers } from 'pages/api/api'; + +const ViewProfile = () => { + const { + data: userData, + isLoading, + isError, + error + } = useQuery({ + queryKey: ['getuser'], + queryFn: getusers + }); + return ( + <> + {isLoading && ( + <> + + + + )} + + + User Profile + + } + > + + {/* ==============================|| userid ||============================== */} + + + + {/* ==============================|| Name ||============================== */} + + + + {/* ==============================|| Location ||============================== */} + + + + + {/* ==============================|| Authname ||============================== */} + + + + + {/* ==============================|| contactno ||============================== */} + + + + {/* ==============================|| email ||============================== */} + + + + {/* ==============================|| address ||============================== */} + + + + {/* ==============================|| Location ||============================== */} + + + + {/* ==============================|| city ||============================== */} + + + + {/* ==============================|| state ||============================== */} + + + + {/* ==============================|| Postcode ||============================== */} + + + + + + + ); +}; + +export default ViewProfile; diff --git a/src/pages/titleCard.js b/src/pages/titleCard.js new file mode 100644 index 0000000..b7595d3 --- /dev/null +++ b/src/pages/titleCard.js @@ -0,0 +1,31 @@ +import React from 'react'; +import { useTheme } from '@mui/material/styles'; +import { CardActions, Grid, Stack, Typography } from '@mui/material'; + +const TitleCard = ({ title, secondary, sx }) => { + const theme = useTheme(); + + return ( + + + + + {title} + {secondary} + + + + + ); +}; + +export default TitleCard; diff --git a/src/react-app-env.d.js b/src/react-app-env.d.js new file mode 100644 index 0000000..6431bc5 --- /dev/null +++ b/src/react-app-env.d.js @@ -0,0 +1 @@ +/// diff --git a/src/reportWebVitals.js b/src/reportWebVitals.js new file mode 100644 index 0000000..532f29b --- /dev/null +++ b/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/src/routes/LoginRoutes.js b/src/routes/LoginRoutes.js new file mode 100644 index 0000000..27856d8 --- /dev/null +++ b/src/routes/LoginRoutes.js @@ -0,0 +1,72 @@ +import { lazy } from 'react'; + +// project import +// import GuestGuard from 'utils/route-guard/GuestGuard'; +import CommonLayout from 'layout/CommonLayout'; +import Loadable from 'components/Loadable'; + +// render - login +// const AuthLogin = Loadable(lazy(() => import('pages/auth/login'))); +// const AuthRegister = Loadable(lazy(() => import('pages/auth/register'))); +// const AuthForgotPassword = Loadable(lazy(() => import('pages/auth/forgot-password'))); +// const AuthCheckMail = Loadable(lazy(() => import('pages/auth/check-mail'))); +// const AuthResetPassword = Loadable(lazy(() => import('pages/auth/reset-password'))); +// const AuthCodeVerification = Loadable(lazy(() => import('pages/auth/code-verification'))); +const Login = Loadable(lazy(() => import('pages/nearle/login'))); + +// ==============================|| AUTH ROUTING ||============================== // + +const LoginRoutes = { + path: '/', + children: [ + { + path: '/', + element: ( + // + + // + ), + children: [ + { + path: '/', + element: + }, + { + path: 'login', + element: + } + + // { + // path: '/', + // element: + // }, + // { + // path: 'login', + // element: + // }, + // { + // path: 'register', + // element: + // }, + // { + // path: 'forgot-password', + // element: + // }, + // { + // path: 'check-mail', + // element: + // }, + // { + // path: 'reset-password', + // element: + // }, + // { + // path: 'code-verification', + // element: + // } + ] + } + ] +}; + +export default LoginRoutes; diff --git a/src/routes/MainRoutes.js b/src/routes/MainRoutes.js new file mode 100644 index 0000000..8b3d436 --- /dev/null +++ b/src/routes/MainRoutes.js @@ -0,0 +1,212 @@ +import { lazy } from 'react'; + +// project import +import MainLayout from 'layout/MainLayout'; +import CommonLayout from 'layout/CommonLayout'; +import Loadable from 'components/Loadable'; +// import AuthGuard from 'utils/route-guard/AuthGuard'; + +// pages routing +const MaintenanceError = Loadable(lazy(() => import('pages/maintenance/404'))); +const MaintenanceError500 = Loadable(lazy(() => import('pages/maintenance/500'))); +const MaintenanceUnderConstruction = Loadable(lazy(() => import('pages/maintenance/under-construction'))); +const MaintenanceComingSoon = Loadable(lazy(() => import('pages/maintenance/coming-soon'))); + +// render - sample page +// const SamplePage = Loadable(lazy(() => import('pages/extra-pages/sample-page'))); +const Login = Loadable(lazy(() => import('pages/nearle/login1'))); +// const Dashboard = Loadable(lazy(() => import('pages/nearle/dashboard'))); + +const Tenants = Loadable(lazy(() => import('pages/nearle/clients/Tenants'))); +const ClientsPricing = Loadable(lazy(() => import('pages/nearle/clientPricing/clientPricing'))); + +const Orders = Loadable(lazy(() => import('pages/nearle/orders/orders'))); +const OrdersPreview = Loadable(lazy(() => import('pages/nearle/orders/OrdersPreview'))); + +const Deliveries = Loadable(lazy(() => import('pages/nearle/deliveries/deliveries'))); +const Customers = Loadable(lazy(() => import('pages/nearle/customers/customers'))); + +const Invoice = Loadable(lazy(() => import('pages/nearle/invoice/invoice'))); +const InvoicePreview = Loadable(lazy(() => import('../pages/nearle/invoice/invoicePreview'))); + +const Details = Loadable(lazy(() => import('pages/nearle/orders/details'))); + +const ViewProfile = Loadable(lazy(() => import('pages/nearle/viewProfile'))); + +const Createorder1 = Loadable(lazy(() => import('pages/nearle/orders/createorder1'))); +const MultipleOrders = Loadable(lazy(() => import('pages/nearle/orders/multipleOrders'))); + +const Createclient = Loadable(lazy(() => import('pages/nearle/clients/createclient'))); +const CreateCustomer = Loadable(lazy(() => import('pages/nearle/clients/createCustomer'))); + +const Requests = Loadable(lazy(() => import('pages/nearle/requests/requests'))); +const OrdersSummary = Loadable(lazy(() => import('pages/nearle/reports/ordersSummary'))); +const OrdersDetails = Loadable(lazy(() => import('pages/nearle/reports/ordersDetails'))); +const RidersSummary = Loadable(lazy(() => import('pages/nearle/reports/ridersSummary'))); +const RidersLogs = Loadable(lazy(() => import('pages/nearle/reports/ridersLogs'))); + +const Riders = Loadable(lazy(() => import('pages/nearle/riders/riders'))); +const Createrider = Loadable(lazy(() => import('pages/nearle/riders/createrider'))); +const EditRider = Loadable(lazy(() => import('pages/nearle/riders/editRider'))); + +// ==============================|| MAIN ROUTING ||============================== // + +const MainRoutes = { + path: '/', + children: [ + { + path: '/', + element: ( + // + + // + ), + children: [ + { + path: 'nearle', + children: [ + { + path: 'orders', + element: + }, + { + path: 'orders/preview', + element: + }, + { + path: 'deliveries', + element: + }, + { + path: 'tenants', + element: + }, + { + path: 'pricing', + element: + }, + { + path: 'customers', + element: + }, + { + path: 'invoice', + children: [ + { + index: true, + element: + }, + { + path: 'preview', + element: + } + ] + }, + { + path: 'invoice/preview', + element: + }, + + { + path: 'requests', + element: + }, + { + path: 'riders', + element: + }, + { + path: 'riders/create', + element: + }, + { + path: 'riders/edit', + element: + }, + + { + path: 'orders/create', + element: + }, + { + path: 'orders/createorders', + element: + }, + { + path: 'orders/details', + element:
    + }, + { + path: 'clients/create', + element: + }, + { + path: 'customer/create', + element: + }, + { + path: 'reports', + children: [ + { + path: 'orderssummary', + element: + }, + { + path: 'ordersdetails', + element: + }, + { + path: 'riderssummary', + element: + }, + { + path: 'riderslogs', + element: + } + ] + } + ] + }, + + { + path: 'viewprofile', + element: + } + + // { + // path: 'orders/create', + // element: + // }, + ] + }, + + { + path: '/login', + element: + }, + { + path: '/maintenance', + element: , + children: [ + { + path: '404', + element: + }, + { + path: '500', + element: + }, + { + path: 'under-construction', + element: + }, + { + path: 'coming-soon', + element: + } + ] + } + ] +}; + +export default MainRoutes; diff --git a/src/routes/index.js b/src/routes/index.js new file mode 100644 index 0000000..ce9e287 --- /dev/null +++ b/src/routes/index.js @@ -0,0 +1,11 @@ +import { useRoutes } from 'react-router-dom'; + +// project import +import LoginRoutes from './LoginRoutes'; +import MainRoutes from './MainRoutes'; + +// ==============================|| ROUTING RENDER ||============================== // + +export default function ThemeRoutes() { + return useRoutes([LoginRoutes, MainRoutes]); +} diff --git a/src/sections/apps/chat/ChatDrawer.js b/src/sections/apps/chat/ChatDrawer.js new file mode 100644 index 0000000..627c3af --- /dev/null +++ b/src/sections/apps/chat/ChatDrawer.js @@ -0,0 +1,275 @@ +import PropTypes from 'prop-types'; +import { useState } from 'react'; +import { Link } from 'react-router-dom'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { + Box, + Chip, + Drawer, + Grid, + InputAdornment, + List, + ListItemButton, + ListItemIcon, + ListItemText, + Menu, + MenuItem, + OutlinedInput, + Stack, + Typography, + useMediaQuery +} from '@mui/material'; + +// project imports +import UserAvatar from './UserAvatar'; +// import UserList from './UserList'; +import MainCard from 'components/MainCard'; +import IconButton from 'components/@extended/IconButton'; +import SimpleBar from 'components/third-party/SimpleBar'; + +import { ThemeMode } from 'config'; +import useAuth from 'hooks/useAuth'; + +// assets +import { + CheckCircleFilled, + ClockCircleFilled, + LogoutOutlined, + MinusCircleFilled, + RightOutlined, + SearchOutlined, + SettingOutlined +} from '@ant-design/icons'; + +// ==============================|| CHAT DRAWER ||============================== // + +function ChatDrawer({ handleDrawerOpen, openChatDrawer, setUser }) { + const theme = useTheme(); + const { user } = useAuth(); + + const matchDownLG = useMediaQuery(theme.breakpoints.down('lg')); + const drawerBG = theme.palette.mode === ThemeMode.DARK ? 'dark.main' : 'white'; + + // show menu to set current user status + const [anchorEl, setAnchorEl] = useState(); + const handleClickRightMenu = (event) => { + setAnchorEl(event?.currentTarget); + }; + + const handleCloseRightMenu = () => { + setAnchorEl(null); + }; + + // set user status on status menu click + const [status, setStatus] = useState('available'); + const handleRightMenuItemClick = (userStatus) => () => { + setStatus(userStatus); + handleCloseRightMenu(); + }; + + const [search, setSearch] = useState(''); + const handleSearch = async (event) => { + const newString = event?.target.value; + setSearch(newString); + }; + + return ( + + + + + + + Messages + + + + + + + + } + /> + + + + + + {/* */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {user?.name} + + + {user?.role} + + + + + + + + + + + + + Active + + + + + + Away + + + + + + Do not disturb + + + + + + + + + + ); +} + +ChatDrawer.propTypes = { + handleDrawerOpen: PropTypes.func, + openChatDrawer: PropTypes.bool, + setUser: PropTypes.func +}; + +export default ChatDrawer; diff --git a/src/sections/apps/chat/ChatHistory.js b/src/sections/apps/chat/ChatHistory.js new file mode 100644 index 0000000..e12ecd2 --- /dev/null +++ b/src/sections/apps/chat/ChatHistory.js @@ -0,0 +1,119 @@ +import PropTypes from 'prop-types'; +import { useCallback, useEffect, useRef } from 'react'; + +// material-ui +import { Card, CardContent, Grid, Stack, Typography } from '@mui/material'; + +// project imports +import UserAvatar from './UserAvatar'; +// import ChatMessageAction from './ChatMessageAction'; +import IconButton from 'components/@extended/IconButton'; +import { ThemeMode } from 'config'; + +// assets +import { EditOutlined } from '@ant-design/icons'; + +// ==============================|| CHAT MESSAGE HISTORY ||============================== // + +const ChatHistory = ({ data, theme, user }) => { + // scroll to bottom when new message is sent or received + const wrapper = useRef(document.createElement('div')); + const el = wrapper.current; + const scrollToBottom = useCallback(() => { + el.scrollIntoView(false); + }, [el]); + + useEffect(() => { + scrollToBottom(); + }, [data.length, scrollToBottom]); + + return ( + + {data.map((history, index) => ( + + {history.from !== user.name ? ( + + + + + + + {/* */} + + + + + + + + + {history.text} + + + + + + + + + + {history.time} + + + + + + ) : ( + + + + + + + + + + + {history.text} + + + + + + + + + {history.time} + + + + + )} + + ))} + + ); +}; + +ChatHistory.propTypes = { + data: PropTypes.array, + theme: PropTypes.object, + user: PropTypes.object +}; + +export default ChatHistory; diff --git a/src/sections/apps/chat/UserAvatar.js b/src/sections/apps/chat/UserAvatar.js new file mode 100644 index 0000000..139623d --- /dev/null +++ b/src/sections/apps/chat/UserAvatar.js @@ -0,0 +1,33 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Badge } from '@mui/material'; + +// project imports +// import AvatarStatus from './AvatarStatus'; +import Avatar from 'components/@extended/Avatar'; + +// assets +const avatarImage = require.context('assets/images/users', true); + +// ==============================|| CHAT USER AVATAR WITH STATUS ICON ||============================== // + +const UserAvatar = ({ user }) => ( + } + anchorOrigin={{ + vertical: 'top', + horizontal: 'right' + }} + sx={{ '& .MuiBox-root': { width: 6, height: 6 }, padding: 0, minWidth: 12, '& svg': { background: '#fff', borderRadius: '50%' } }} + > + + +); + +UserAvatar.propTypes = { + user: PropTypes.object +}; + +export default UserAvatar; diff --git a/src/sections/apps/chat/UserDetails.js b/src/sections/apps/chat/UserDetails.js new file mode 100644 index 0000000..e4b9aa2 --- /dev/null +++ b/src/sections/apps/chat/UserDetails.js @@ -0,0 +1,303 @@ +import PropTypes from 'prop-types'; +import { useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Box, Chip, Collapse, Divider, Grid, Stack, Switch, Typography } from '@mui/material'; + +// project imports +// import AvatarStatus from './AvatarStatus'; +import MainCard from 'components/MainCard'; +import Avatar from 'components/@extended/Avatar'; +import IconButton from 'components/@extended/IconButton'; +import SimpleBar from 'components/third-party/SimpleBar'; +import { ThemeMode } from 'config'; + +// assets +import { + CloseOutlined, + DownOutlined, + FileDoneOutlined, + FileSyncOutlined, + FolderOpenOutlined, + LinkOutlined, + MessageOutlined, + MoreOutlined, + PhoneOutlined, + PictureOutlined, + RightOutlined, + VideoCameraOutlined +} from '@ant-design/icons'; + +const avatarImage = require.context('assets/images/users', true); + +// ==============================|| USER PROFILE / DETAILS ||============================== // + +const UserDetails = ({ user, onClose }) => { + const theme = useTheme(); + const matchDownLG = useMediaQuery(theme.breakpoints.down('md')); + + const [checked, setChecked] = useState(true); + if (Object.keys(user).length === 0) return ...Loading; + + let statusBGColor; + let statusColor; + if (user.online_status === 'available') { + statusBGColor = theme.palette.success.lighter; + statusColor = theme.palette.success.main; + } else if (user.online_status === 'do_not_disturb') { + statusBGColor = theme.palette.grey.A100; + statusColor = theme.palette.grey.A200; + } else { + statusBGColor = theme.palette.warning.lighter; + statusColor = theme.palette.warning.main; + } + + return ( + + + {onClose && ( + + + + )} + + + + + + {user.name} + + + {user.role} + + + + + + {/* */} + + + + + + + + + + + + + + + + + + + + + + + All File + + + 231 + + + + All Link + + + 231 + + + + + + + setChecked(!checked)} + > + + Information + + + + + + + + + + + + + Address + {user.location} + + + Email + {user.personal_email} + + + Phone + {user.personal_phone} + + + Last visited + {user.lastMessage} + + + + + + Notification + + + + + + + + + File type + + + + + + + + + + + + + + + + Document + 123 files, 193MB + + + + + + + + + + + + + + + + Photos + 53 files, 321MB + + + + + + + + + + + + + + + + Other + 49 files, 193MB + + + + + + + + + + + + + + ); +}; + +UserDetails.propTypes = { + user: PropTypes.object, + onClose: PropTypes.func +}; + +export default UserDetails; diff --git a/src/sections/auth/AuthCard.js b/src/sections/auth/AuthCard.js new file mode 100644 index 0000000..db4eade --- /dev/null +++ b/src/sections/auth/AuthCard.js @@ -0,0 +1,39 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Box } from '@mui/material'; + +// project import +import MainCard from 'components/MainCard'; + +// ==============================|| AUTHENTICATION - CARD WRAPPER ||============================== // + +const AuthCard = ({ children, ...other }) => { + const theme = useTheme(); + return ( + *': { + flexGrow: 1, + flexBasis: '50%' + } + }} + content={false} + {...other} + border={false} + boxShadow + shadow={theme.customShadows.z1} + > + {children} + + ); +}; + +AuthCard.propTypes = { + children: PropTypes.node +}; + +export default AuthCard; diff --git a/src/sections/auth/AuthWrapper.js b/src/sections/auth/AuthWrapper.js new file mode 100644 index 0000000..6ea539c --- /dev/null +++ b/src/sections/auth/AuthWrapper.js @@ -0,0 +1,55 @@ +import PropTypes from 'prop-types'; + +// material-ui +import { Box, Grid } from '@mui/material'; + +// project import +import AuthFooter from 'components/cards/AuthFooter'; +import Logo from 'components/logo'; +import AuthCard from './AuthCard'; + +// assets +import AuthBackground from 'assets/images/auth/AuthBackground'; + +// ==============================|| AUTHENTICATION - WRAPPER ||============================== // + +const AuthWrapper = ({ children }) => ( + + + + + + + + + + {children} + + + + + + + + +); + +AuthWrapper.propTypes = { + children: PropTypes.node +}; + +export default AuthWrapper; diff --git a/src/sections/auth/auth-forms/AuthCodeVerification.js b/src/sections/auth/auth-forms/AuthCodeVerification.js new file mode 100644 index 0000000..ae59aa2 --- /dev/null +++ b/src/sections/auth/auth-forms/AuthCodeVerification.js @@ -0,0 +1,66 @@ +import { useState } from 'react'; + +// material-ui +import { useTheme } from '@mui/material/styles'; +import { Button, Grid, Stack, Typography } from '@mui/material'; + +// third-party +import OtpInput from 'react18-input-otp'; + +// project import +import AnimateButton from 'components/@extended/AnimateButton'; +import { ThemeMode } from 'config'; + +// ============================|| STATIC - CODE VERIFICATION ||============================ // + +const AuthCodeVerification = () => { + const theme = useTheme(); + const [otp, setOtp] = useState(); + + const borderColor = theme.palette.mode === ThemeMode.DARK ? theme.palette.grey[200] : theme.palette.grey[300]; + + return ( + + + setOtp(otp)} + numInputs={4} + containerStyle={{ justifyContent: 'space-between' }} + inputStyle={{ + width: '100%', + margin: '8px', + padding: '10px', + border: `1px solid ${borderColor}`, + borderRadius: 4, + ':hover': { + borderColor: theme.palette.primary.main + } + }} + focusStyle={{ + outline: 'none', + boxShadow: theme.customShadows.primary, + border: `1px solid ${theme.palette.primary.main}` + }} + /> + + + + + + + + + Did not receive the email? Check your spam filter, or + + Resend code + + + + + ); +}; + +export default AuthCodeVerification; diff --git a/src/sections/auth/auth-forms/AuthForgotPassword.js b/src/sections/auth/auth-forms/AuthForgotPassword.js new file mode 100644 index 0000000..c1eec45 --- /dev/null +++ b/src/sections/auth/auth-forms/AuthForgotPassword.js @@ -0,0 +1,126 @@ +import { useNavigate } from 'react-router-dom'; + +// material-ui +import { Button, FormHelperText, Grid, InputLabel, OutlinedInput, Stack, Typography } from '@mui/material'; + +// third party +import * as Yup from 'yup'; +import { Formik } from 'formik'; + +// project import +import AnimateButton from 'components/@extended/AnimateButton'; + +import useAuth from 'hooks/useAuth'; +import useScriptRef from 'hooks/useScriptRef'; +import { dispatch } from 'store'; +import { openSnackbar } from 'store/reducers/snackbar'; + +// ============================|| FIREBASE - FORGOT PASSWORD ||============================ // + +const AuthForgotPassword = () => { + const scriptedRef = useScriptRef(); + const navigate = useNavigate(); + + const { isLoggedIn, resetPassword } = useAuth(); + + return ( + <> + { + try { + await resetPassword(values.email).then( + () => { + setStatus({ success: true }); + setSubmitting(false); + dispatch( + openSnackbar({ + open: true, + message: 'Check mail for reset password link', + variant: 'alert', + alert: { + color: 'success' + }, + close: false + }) + ); + setTimeout(() => { + navigate(isLoggedIn ? '/auth/check-mail' : '/check-mail', { replace: true }); + }, 1500); + + // WARNING: do not set any formik state here as formik might be already destroyed here. You may get following error by doing so. + // Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. + // To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. + // github issue: https://github.com/formium/formik/issues/2430 + }, + (err) => { + setStatus({ success: false }); + setErrors({ submit: err.message }); + setSubmitting(false); + } + ); + } catch (err) { + console.error(err); + if (scriptedRef.current) { + setStatus({ success: false }); + setErrors({ submit: err.message }); + setSubmitting(false); + } + } + }} + > + {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( +
    + + + + Email Address + + {touched.email && errors.email && ( + + {errors.email} + + )} + + + {errors.submit && ( + + {errors.submit} + + )} + + Do not forgot to check SPAM box. + + + + + + + +
    + )} +
    + + ); +}; + +export default AuthForgotPassword; diff --git a/src/sections/auth/auth-forms/AuthLogin.js b/src/sections/auth/auth-forms/AuthLogin.js new file mode 100644 index 0000000..058b4e8 --- /dev/null +++ b/src/sections/auth/auth-forms/AuthLogin.js @@ -0,0 +1,176 @@ +import React from 'react'; +import { Link as RouterLink } from 'react-router-dom'; + +// material-ui +import { + Button, + Checkbox, + FormControlLabel, + FormHelperText, + Grid, + Link, + InputAdornment, + InputLabel, + OutlinedInput, + Stack, + Typography +} from '@mui/material'; + +// third party +import * as Yup from 'yup'; +import { Formik } from 'formik'; + +// project import +import useAuth from 'hooks/useAuth'; +import useScriptRef from 'hooks/useScriptRef'; +import IconButton from 'components/@extended/IconButton'; +import AnimateButton from 'components/@extended/AnimateButton'; + +// assets +import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'; + +// ============================|| JWT - LOGIN ||============================ // + +const AuthLogin = () => { + const [checked, setChecked] = React.useState(false); + + const { login } = useAuth(); + const scriptedRef = useScriptRef(); + + const [showPassword, setShowPassword] = React.useState(false); + const handleClickShowPassword = () => { + setShowPassword(!showPassword); + }; + + const handleMouseDownPassword = (event) => { + event.preventDefault(); + }; + + return ( + <> + { + try { + await login(values.email, values.password); + if (scriptedRef.current) { + setStatus({ success: true }); + setSubmitting(false); + } + } catch (err) { + console.error(err); + if (scriptedRef.current) { + setStatus({ success: false }); + setErrors({ submit: err.message }); + setSubmitting(false); + } + } + }} + > + {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( +
    + + + + Email Address + + {touched.email && errors.email && ( + + {errors.email} + + )} + + + + + Password + + + {showPassword ? : } + + + } + placeholder="Enter password" + /> + {touched.password && errors.password && ( + + {errors.password} + + )} + + + + + + setChecked(event.target.checked)} + name="checked" + color="primary" + size="small" + /> + } + label={Keep me sign in} + /> + + Forgot Password? + + + + {errors.submit && ( + + {errors.submit} + + )} + + + + + + +
    + )} +
    + + ); +}; + +export default AuthLogin; diff --git a/src/sections/auth/auth-forms/AuthRegister.js b/src/sections/auth/auth-forms/AuthRegister.js new file mode 100644 index 0000000..f9f5372 --- /dev/null +++ b/src/sections/auth/auth-forms/AuthRegister.js @@ -0,0 +1,282 @@ +import { useEffect, useState } from 'react'; +import { Link as RouterLink, useNavigate } from 'react-router-dom'; + +// material-ui +import { + Box, + Button, + FormControl, + FormHelperText, + Grid, + Link, + InputAdornment, + InputLabel, + OutlinedInput, + Stack, + Typography +} from '@mui/material'; + +// third party +import * as Yup from 'yup'; +import { Formik } from 'formik'; + +// project import +import IconButton from 'components/@extended/IconButton'; +import AnimateButton from 'components/@extended/AnimateButton'; + +import useAuth from 'hooks/useAuth'; +import useScriptRef from 'hooks/useScriptRef'; +import { dispatch } from 'store'; +import { openSnackbar } from 'store/reducers/snackbar'; +import { strengthColor, strengthIndicator } from 'utils/password-strength'; + +// assets +import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'; + +// ============================|| JWT - REGISTER ||============================ // + +const AuthRegister = () => { + const { register } = useAuth(); + const scriptedRef = useScriptRef(); + const navigate = useNavigate(); + + const [level, setLevel] = useState(); + const [showPassword, setShowPassword] = useState(false); + const handleClickShowPassword = () => { + setShowPassword(!showPassword); + }; + + const handleMouseDownPassword = (event) => { + event.preventDefault(); + }; + + const changePassword = (value) => { + const temp = strengthIndicator(value); + setLevel(strengthColor(temp)); + }; + + useEffect(() => { + changePassword(''); + }, []); + + return ( + <> + { + try { + await register(values.email, values.password, values.firstname, values.lastname); + if (scriptedRef.current) { + setStatus({ success: true }); + setSubmitting(false); + dispatch( + openSnackbar({ + open: true, + message: 'Your registration has been successfully completed.', + variant: 'alert', + alert: { + color: 'success' + }, + close: false + }) + ); + + setTimeout(() => { + navigate('/login', { replace: true }); + }, 1500); + } + } catch (err) { + console.error(err); + if (scriptedRef.current) { + setStatus({ success: false }); + setErrors({ submit: err.message }); + setSubmitting(false); + } + } + }} + > + {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( +
    + + + + First Name* + + {touched.firstname && errors.firstname && ( + + {errors.firstname} + + )} + + + + + Last Name* + + {touched.lastname && errors.lastname && ( + + {errors.lastname} + + )} + + + + + Company + + {touched.company && errors.company && ( + + {errors.company} + + )} + + + + + Email Address* + + {touched.email && errors.email && ( + + {errors.email} + + )} + + + + + Password + { + handleChange(e); + changePassword(e.target.value); + }} + endAdornment={ + + + {showPassword ? : } + + + } + placeholder="******" + inputProps={{}} + /> + {touched.password && errors.password && ( + + {errors.password} + + )} + + + + + + + + + {level?.label} + + + + + + + + By Signing up, you agree to our   + + Terms of Service + +   and   + + Privacy Policy + + + + {errors.submit && ( + + {errors.submit} + + )} + + + + + + +
    + )} +
    + + ); +}; + +export default AuthRegister; diff --git a/src/sections/auth/auth-forms/AuthResetPassword.js b/src/sections/auth/auth-forms/AuthResetPassword.js new file mode 100644 index 0000000..e39671d --- /dev/null +++ b/src/sections/auth/auth-forms/AuthResetPassword.js @@ -0,0 +1,201 @@ +import { useEffect, useState } from 'react'; +import { useNavigate } from 'react-router-dom'; + +// material-ui +import { + Box, + Button, + FormControl, + FormHelperText, + Grid, + InputAdornment, + InputLabel, + OutlinedInput, + Stack, + Typography +} from '@mui/material'; + +// third party +import * as Yup from 'yup'; +import { Formik } from 'formik'; + +// project import +import IconButton from 'components/@extended/IconButton'; +import AnimateButton from 'components/@extended/AnimateButton'; + +import useAuth from 'hooks/useAuth'; +import useScriptRef from 'hooks/useScriptRef'; +import { dispatch } from 'store'; +import { openSnackbar } from 'store/reducers/snackbar'; +import { strengthColor, strengthIndicator } from 'utils/password-strength'; + +// assets +import { EyeOutlined, EyeInvisibleOutlined } from '@ant-design/icons'; + +// ============================|| STATIC - RESET PASSWORD ||============================ // + +const AuthResetPassword = () => { + const scriptedRef = useScriptRef(); + const navigate = useNavigate(); + + const { isLoggedIn } = useAuth(); + + const [level, setLevel] = useState(); + const [showPassword, setShowPassword] = useState(false); + const handleClickShowPassword = () => { + setShowPassword(!showPassword); + }; + + const handleMouseDownPassword = (event) => { + event.preventDefault(); + }; + + const changePassword = (value) => { + const temp = strengthIndicator(value); + setLevel(strengthColor(temp)); + }; + + useEffect(() => { + changePassword(''); + }, []); + + return ( + yup.parent.password === confirmPassword) + })} + onSubmit={async (values, { setErrors, setStatus, setSubmitting }) => { + try { + // password reset + if (scriptedRef.current) { + setStatus({ success: true }); + setSubmitting(false); + + dispatch( + openSnackbar({ + open: true, + message: 'Successfuly reset password.', + variant: 'alert', + alert: { + color: 'success' + }, + close: false + }) + ); + + setTimeout(() => { + navigate(isLoggedIn ? '/auth/login' : '/login', { replace: true }); + }, 1500); + } + } catch (err) { + console.error(err); + if (scriptedRef.current) { + setStatus({ success: false }); + setErrors({ submit: err.message }); + setSubmitting(false); + } + } + }} + > + {({ errors, handleBlur, handleChange, handleSubmit, isSubmitting, touched, values }) => ( +
    + + + + Password + { + handleChange(e); + changePassword(e.target.value); + }} + endAdornment={ + + + {showPassword ? : } + + + } + placeholder="Enter password" + /> + {touched.password && errors.password && ( + + {errors.password} + + )} + + + + + + + + + {level?.label} + + + + + + + + Confirm Password + + {touched.confirmPassword && errors.confirmPassword && ( + + {errors.confirmPassword} + + )} + + + + {errors.submit && ( + + {errors.submit} + + )} + + + + + + +
    + )} +
    + ); +}; + +export default AuthResetPassword; diff --git a/src/sections/auth/auth-forms/FirebaseSocial.js b/src/sections/auth/auth-forms/FirebaseSocial.js new file mode 100644 index 0000000..2d92f3b --- /dev/null +++ b/src/sections/auth/auth-forms/FirebaseSocial.js @@ -0,0 +1,82 @@ +// material-ui +import { useTheme } from '@mui/material/styles'; +import { useMediaQuery, Button, Stack } from '@mui/material'; + +// project import +import useAuth from 'hooks/useAuth'; + +// assets +import Google from 'assets/images/icons/google.svg'; +import Twitter from 'assets/images/icons/twitter.svg'; +import Facebook from 'assets/images/icons/facebook.svg'; + +// ==============================|| FIREBASE - SOCIAL BUTTON ||============================== // + +const FirebaseSocial = () => { + const theme = useTheme(); + const matchDownSM = useMediaQuery(theme.breakpoints.down('sm')); + + const { firebaseFacebookSignIn, firebaseGoogleSignIn, firebaseTwitterSignIn } = useAuth(); + const googleHandler = async () => { + try { + await firebaseGoogleSignIn(); + } catch (err) { + console.error(err); + } + }; + + const twitterHandler = async () => { + try { + await firebaseTwitterSignIn(); + } catch (err) { + console.error(err); + } + }; + + const facebookHandler = async () => { + try { + await firebaseFacebookSignIn(); + } catch (err) { + console.error(err); + } + }; + + return ( + + + + + + ); +}; + +export default FirebaseSocial; diff --git a/src/sections/widget/data/ApplicationSales.js b/src/sections/widget/data/ApplicationSales.js new file mode 100644 index 0000000..5c4020e --- /dev/null +++ b/src/sections/widget/data/ApplicationSales.js @@ -0,0 +1,68 @@ +import { Link as RouterLink } from 'react-router-dom'; + +// material-ui +import { Link, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Typography } from '@mui/material'; + +// project imports +import MainCard from 'components/MainCard'; + +// table data +function createData(name, designation, product, date, badgeText, badgeType) { + return { name, designation, product, date, badgeText, badgeType }; +} + +const rows = [ + createData('Materially', 'Powerful Admin Theme', '16,300', '$53', '$15,652'), + createData('Photoshop', 'Design Software', '26,421', '$35', '$8,785'), + createData('Guruable', 'Best Admin Template', '8,265', '$98', '$9,652'), + createData('Flatable', 'Admin App', '10,652', '$20', '$7,856') +]; +// =========================|| DATA WIDGET - APPLICATION SALES ||========================= // + +const ApplicationSales = () => ( + + View all + + } + > + + + + + Application + Sales + Avg. Price + + Total + + + + + {rows.map((row, index) => ( + + {/* + + {row.name} + + + {row.designation} + + + {row.product} + {row.date} + + {row.badgeText} + */} + + ))} + +
    +
    +
    +); + +export default ApplicationSales; diff --git a/src/sections/widget/data/TasksCard.js b/src/sections/widget/data/TasksCard.js new file mode 100644 index 0000000..742bd5c --- /dev/null +++ b/src/sections/widget/data/TasksCard.js @@ -0,0 +1,175 @@ +import { Link as RouterLink } from 'react-router-dom'; + +// material-ui +import { CardContent, Grid, Link, Typography } from '@mui/material'; + +// project imports +import MainCard from 'components/MainCard'; +import Avatar from 'components/@extended/Avatar'; + +// assets +import { TwitterCircleFilled, ClockCircleFilled, BugFilled, MobileFilled, WarningFilled } from '@ant-design/icons'; + +// ==============================|| DATA WIDGET - TASKS CARD ||============================== // + +const TasksCard = () => ( + + View all + + } + > + + *': { + position: 'relative', + zIndex: '5' + }, + '&:after': { + content: '""', + position: 'absolute', + top: 10, + left: 38, + width: 2, + height: '100%', + background: '#ebebeb', + zIndex: '1' + } + }} + > + + + + + + + + + + + + 8:50 + + + + + You’re getting more and more followers, keep it up! + + + + + + + + + + + + + + + + + + Sat, 5 Mar + + + + + Design mobile Application + + + + + + + + + + + + + + + + + + Sun, 17 Feb + + + + + + Jenny + {' '} + assign you a task{' '} + + Mockup Design + + . + + + + + + + + + + + + + + + + + + Sat, 18 Mar + + + + + Design logo + + + + + + + + + + + + + + + + + + Sat, 22 Mar + + + + + Design mobile Application + + + + + + + + + +); + +export default TasksCard; diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..795a91b --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,19 @@ +// third-party +import { configureStore } from '@reduxjs/toolkit'; +import { useDispatch as useAppDispatch, useSelector as useAppSelector } from 'react-redux'; + +// project import +import reducers from './reducers'; + +// ==============================|| REDUX TOOLKIT - MAIN STORE ||============================== // + +const store = configureStore({ + reducer: reducers +}); + +const { dispatch } = store; + +const useDispatch = () => useAppDispatch(); +const useSelector = useAppSelector; + +export { store, dispatch, useSelector, useDispatch }; diff --git a/src/store/reducers/actions.js b/src/store/reducers/actions.js new file mode 100644 index 0000000..d5a0eb8 --- /dev/null +++ b/src/store/reducers/actions.js @@ -0,0 +1,4 @@ +// action - account reducer +export const LOGIN = '@auth/LOGIN'; +export const LOGOUT = '@auth/LOGOUT'; +export const REGISTER = '@auth/REGISTER'; diff --git a/src/store/reducers/auth.js b/src/store/reducers/auth.js new file mode 100644 index 0000000..c9ebee3 --- /dev/null +++ b/src/store/reducers/auth.js @@ -0,0 +1,48 @@ +// action - state management +import { REGISTER, LOGIN, LOGOUT } from './actions'; + +// initial state +export const initialState = { + // isLoggedIn: false, + // isInitialized: false, + // user: null + isLoggedIn: true, + isInitialized: true, + user: null +}; + +// ==============================|| AUTH REDUCER ||============================== // + +const auth = (state = initialState, action) => { + switch (action.type) { + case REGISTER: { + const { user } = action.payload; + return { + ...state, + user + }; + } + case LOGIN: { + const { user } = action.payload; + return { + ...state, + isLoggedIn: true, + isInitialized: true, + user + }; + } + case LOGOUT: { + return { + ...state, + isInitialized: true, + isLoggedIn: false, + user: null + }; + } + default: { + return { ...state }; + } + } +}; + +export default auth; diff --git a/src/store/reducers/fcmSlice.js b/src/store/reducers/fcmSlice.js new file mode 100644 index 0000000..df426df --- /dev/null +++ b/src/store/reducers/fcmSlice.js @@ -0,0 +1,24 @@ +// src/store/fcmSlice.js +import { createSlice } from '@reduxjs/toolkit'; + +const fcmSlice = createSlice({ + name: 'fcm', + initialState: { + permission: null, + token: null + }, + reducers: { + setFcmToken(state, action) { + state.token = action.payload; + }, + clearFcmToken(state) { + state.token = null; + }, + setFcmPermission(state, action) { + state.permission = action.payload; + } + } +}); + +export const { setFcmToken, clearFcmToken, setFcmPermission } = fcmSlice.actions; +export default fcmSlice.reducer; diff --git a/src/store/reducers/index.js b/src/store/reducers/index.js new file mode 100644 index 0000000..0dd15b0 --- /dev/null +++ b/src/store/reducers/index.js @@ -0,0 +1,21 @@ +// third-party +import { combineReducers } from 'redux'; + +// project import +import menu from './menu'; +import snackbar from './snackbar'; +import fcm from './fcmSlice'; +import toastSlice from './toastSlice'; +import loginUserSlice from './loginUserSlice'; + +// ==============================|| COMBINE REDUCERS ||============================== // + +const reducers = combineReducers({ + menu, + snackbar, + fcm, + toastSlice, + loginUserSlice +}); + +export default reducers; diff --git a/src/store/reducers/loginUserSlice.js b/src/store/reducers/loginUserSlice.js new file mode 100644 index 0000000..fe97720 --- /dev/null +++ b/src/store/reducers/loginUserSlice.js @@ -0,0 +1,31 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const initialState = { + isAuthenticated: false, + user: null +}; + +const loginUserSlice = createSlice({ + name: 'loginUser', + initialState, + reducers: { + setLoginUser(state, action) { + state.isAuthenticated = true; + state.user = action.payload; + }, + + updateUserFcmToken(state, action) { + if (state.user) { + state.user.userfcmtoken = action.payload; + } + }, + + logoutUser() { + return initialState; // 🔥 clears entire slice + } + } +}); + +export const { setLoginUser, updateUserFcmToken, logoutUser } = loginUserSlice.actions; + +export default loginUserSlice.reducer; diff --git a/src/store/reducers/menu.js b/src/store/reducers/menu.js new file mode 100644 index 0000000..589c3d4 --- /dev/null +++ b/src/store/reducers/menu.js @@ -0,0 +1,67 @@ +// third-party +import { createAsyncThunk, createSlice } from '@reduxjs/toolkit'; + +// project import +import axios from 'utils/axios'; + +// initial state +const initialState = { + openItem: ['dashboard'], + openComponent: 'buttons', + selectedID: null, + drawerOpen: false, + componentDrawerOpen: true, + menu: {}, + error: null, + selectedMenu: null +}; + +// ==============================|| SLICE - MENU ||============================== // + +export const fetchMenu = createAsyncThunk('', async () => { + const response = await axios.get('/api/menu/dashboard'); + return response.data; +}); + +const menu = createSlice({ + name: 'menu', + initialState, + reducers: { + activeItem(state, action) { + state.openItem = action.payload.openItem; + }, + + activeID(state, action) { + state.selectedID = action.payload; + }, + + activeComponent(state, action) { + state.openComponent = action.payload.openComponent; + }, + + openDrawer(state, action) { + state.drawerOpen = action.payload; + }, + + openComponentDrawer(state, action) { + state.componentDrawerOpen = action.payload.componentDrawerOpen; + }, + + hasError(state, action) { + state.error = action.payload; + }, + setSelectedMenu(state, action) { + state.selectedMenu = action.payload; + } + }, + + extraReducers(builder) { + builder.addCase(fetchMenu.fulfilled, (state, action) => { + state.menu = action.payload.dashboard; + }); + } +}); + +export default menu.reducer; + +export const { activeItem, activeComponent, openDrawer, openComponentDrawer, activeID, setSelectedMenu } = menu.actions; diff --git a/src/store/reducers/snackbar.js b/src/store/reducers/snackbar.js new file mode 100644 index 0000000..c3d97d2 --- /dev/null +++ b/src/store/reducers/snackbar.js @@ -0,0 +1,67 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const initialState = { + action: false, + open: false, + message: 'Note archived', + anchorOrigin: { + vertical: 'bottom', + horizontal: 'right' + }, + variant: 'default', + alert: { + color: 'primary', + variant: 'filled' + }, + transition: 'Fade', + close: true, + actionButton: false, + maxStack: 3, + dense: false, + iconVariant: 'usedefault' +}; + +// ==============================|| SLICE - SNACKBAR ||============================== // + +const snackbar = createSlice({ + name: 'snackbar', + initialState, + reducers: { + openSnackbar(state, action) { + const { open, message, anchorOrigin, variant, alert, transition, close, actionButton } = action.payload; + + state.action = !state.action; + state.open = open || initialState.open; + state.message = message || initialState.message; + state.anchorOrigin = anchorOrigin || initialState.anchorOrigin; + state.variant = variant || initialState.variant; + state.alert = { + color: alert?.color || initialState.alert.color, + variant: alert?.variant || initialState.alert.variant + }; + state.transition = transition || initialState.transition; + state.close = close === false ? close : initialState.close; + state.actionButton = actionButton || initialState.actionButton; + }, + + closeSnackbar(state) { + state.open = false; + }, + handlerIncrease(state, action) { + const { maxStack } = action.payload; + state.maxStack = maxStack; + }, + handlerDense(state, action) { + const { dense } = action.payload; + state.dense = dense; + }, + handlerIconVariants(state, action) { + const { iconVariant } = action.payload; + state.iconVariant = iconVariant; + } + } +}); + +export default snackbar.reducer; + +export const { closeSnackbar, openSnackbar, handlerIncrease, handlerDense, handlerIconVariants } = snackbar.actions; diff --git a/src/store/reducers/toastSlice.js b/src/store/reducers/toastSlice.js new file mode 100644 index 0000000..a113a99 --- /dev/null +++ b/src/store/reducers/toastSlice.js @@ -0,0 +1,19 @@ +import { createSlice } from '@reduxjs/toolkit'; + +const toastSlice = createSlice({ + name: 'toast', + initialState: { + snackbarId: null + }, + reducers: { + setSnackbarId: (state, action) => { + state.snackbarId = action.payload; + }, + clearSnackbarId: (state) => { + state.snackbarId = null; + } + } +}); + +export const { setSnackbarId, clearSnackbarId } = toastSlice.actions; +export default toastSlice.reducer; diff --git a/src/themes/index.js b/src/themes/index.js new file mode 100644 index 0000000..efe2ec7 --- /dev/null +++ b/src/themes/index.js @@ -0,0 +1,122 @@ +import PropTypes from 'prop-types'; +import { useMemo } from 'react'; + +// material-ui +import { CssBaseline, GlobalStyles, StyledEngineProvider } from '@mui/material'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; + +// project import +import useConfig from 'hooks/useConfig'; +import Palette from './palette'; +import Typography from './typography'; +import CustomShadows from './shadows'; +import componentsOverride from './overrides'; + +// ==============================|| DEFAULT THEME - MAIN ||============================== // + +export default function ThemeCustomization({ children }) { + const { themeDirection, mode, presetColor, fontFamily } = useConfig(); + + const theme = useMemo(() => Palette(mode, presetColor), [mode, presetColor]); + + // eslint-disable-next-line react-hooks/exhaustive-deps + const themeTypography = useMemo(() => Typography(fontFamily), [fontFamily]); + const themeCustomShadows = useMemo(() => CustomShadows(theme), [theme]); + + const themeOptions = useMemo( + () => ({ + breakpoints: { + values: { + xs: 0, // Extra-small: 0px and up + custom300: 300, // above 350 + custom350: 350, // above 350 + custom400: 400, // above 400 + custom450: 450, // above 450 + custom500: 500, // above 450 + custom550: 550, // above 450 + custom600: 600, // above 450 + custom650: 650, // above 450 + custom700: 700, // above 450 + custom750: 750, // above 450 + sm: 768, // Small: 768px and up + custom800: 800, // above 450, + custom850: 850, // above 450, + custom900: 900, // above 450 + custom950: 950, // above 450 + custom1000: 1000, // above 450 + md: 1024, // Medium: 1024px and up + lg: 1266, // Large: 1266px and up + custom1300: 1300, // Large: 1266px and up + custom1350: 1350, // Large: 1266px and up + xl: 1440 // Extra-large: 1440px and up + } + }, + direction: themeDirection, + mixins: { + toolbar: { + minHeight: 60, + paddingTop: 8, + paddingBottom: 8 + } + }, + palette: theme.palette, + customShadows: themeCustomShadows, + typography: themeTypography + }), + [themeDirection, theme, themeTypography, themeCustomShadows] + ); + + const themes = createTheme(themeOptions); + themes.components = componentsOverride(themes); + + return ( + + + + + + {children} + + + ); +} + +ThemeCustomization.propTypes = { + children: PropTypes.node +}; diff --git a/src/themes/overrides/Accordion.js b/src/themes/overrides/Accordion.js new file mode 100644 index 0000000..68c6409 --- /dev/null +++ b/src/themes/overrides/Accordion.js @@ -0,0 +1,27 @@ +// ==============================|| OVERRIDES - ALERT TITLE ||============================== // + +export default function Accordion(theme) { + return { + MuiAccordion: { + defaultProps: { + disableGutters: true, + square: true, + elevation: 0 + }, + styleOverrides: { + root: { + border: `1px solid ${theme.palette.secondary.light}`, + '&:not(:last-child)': { + borderBottom: 0 + }, + '&:before': { + display: 'none' + }, + '&.Mui-disabled': { + backgroundColor: theme.palette.secondary.lighter + } + } + } + } + }; +} diff --git a/src/themes/overrides/AccordionDetails.js b/src/themes/overrides/AccordionDetails.js new file mode 100644 index 0000000..66fb02a --- /dev/null +++ b/src/themes/overrides/AccordionDetails.js @@ -0,0 +1,14 @@ +// ==============================|| OVERRIDES - ALERT TITLE ||============================== // + +export default function AccordionDetails(theme) { + return { + MuiAccordionDetails: { + styleOverrides: { + root: { + padding: theme.spacing(2), + borderTop: `1px solid ${theme.palette.secondary.light}` + } + } + } + }; +} diff --git a/src/themes/overrides/AccordionSummary.js b/src/themes/overrides/AccordionSummary.js new file mode 100644 index 0000000..400552a --- /dev/null +++ b/src/themes/overrides/AccordionSummary.js @@ -0,0 +1,33 @@ +// assets +import { RightOutlined } from '@ant-design/icons'; + +// ==============================|| OVERRIDES - ALERT TITLE ||============================== // + +export default function AccordionSummary(theme) { + const { palette, spacing } = theme; + + return { + MuiAccordionSummary: { + defaultProps: { + expandIcon: + }, + styleOverrides: { + root: { + backgroundColor: palette.secondary.lighter, + flexDirection: 'row-reverse', + minHeight: 46 + }, + expandIconWrapper: { + '&.Mui-expanded': { + transform: 'rotate(90deg)' + } + }, + content: { + marginTop: spacing(1.25), + marginBottom: spacing(1.25), + marginLeft: spacing(1) + } + } + } + }; +} diff --git a/src/themes/overrides/Alert.js b/src/themes/overrides/Alert.js new file mode 100644 index 0000000..feea19c --- /dev/null +++ b/src/themes/overrides/Alert.js @@ -0,0 +1,75 @@ +// material-ui +import { alpha } from '@mui/material/styles'; + +// project import +import getColors from 'utils/getColors'; + +// ==============================|| ALERT - COLORS ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { lighter, light, main } = colors; + + return { + borderColor: alpha(light, 0.5), + backgroundColor: lighter, + '& .MuiAlert-icon': { + color: main + } + }; +} + +// ==============================|| OVERRIDES - ALERT ||============================== // + +export default function Alert(theme) { + const primaryDashed = getColorStyle({ color: 'primary', theme }); + + return { + MuiAlert: { + styleOverrides: { + root: { + color: theme.palette.text.primary, + fontSize: '0.875rem' + }, + icon: { + fontSize: '1rem' + }, + message: { + padding: 0, + marginTop: 3 + }, + filled: { + color: theme.palette.grey[0] + }, + border: { + padding: '10px 16px', + border: '1px solid', + ...primaryDashed, + '&.MuiAlert-borderPrimary': getColorStyle({ color: 'primary', theme }), + '&.MuiAlert-borderSecondary': getColorStyle({ color: 'secondary', theme }), + '&.MuiAlert-borderError': getColorStyle({ color: 'error', theme }), + '&.MuiAlert-borderSuccess': getColorStyle({ color: 'success', theme }), + '&.MuiAlert-borderInfo': getColorStyle({ color: 'info', theme }), + '&.MuiAlert-borderWarning': getColorStyle({ color: 'warning', theme }) + }, + action: { + '& .MuiButton-root': { + padding: 2, + height: 'auto', + fontSize: '0.75rem', + marginTop: -2 + }, + '& .MuiIconButton-root': { + width: 'auto', + height: 'auto', + padding: 2, + marginRight: 6, + '& .MuiSvgIcon-root': { + fontSize: '1rem' + } + } + } + } + } + }; +} diff --git a/src/themes/overrides/AlertTitle.js b/src/themes/overrides/AlertTitle.js new file mode 100644 index 0000000..cd925c4 --- /dev/null +++ b/src/themes/overrides/AlertTitle.js @@ -0,0 +1,15 @@ +// ==============================|| OVERRIDES - ALERT TITLE ||============================== // + +export default function AlertTitle() { + return { + MuiAlertTitle: { + styleOverrides: { + root: { + marginBottom: 4, + marginTop: 0, + fontWeight: 400 + } + } + } + }; +} diff --git a/src/themes/overrides/Autocomplete.js b/src/themes/overrides/Autocomplete.js new file mode 100644 index 0000000..ee29f94 --- /dev/null +++ b/src/themes/overrides/Autocomplete.js @@ -0,0 +1,23 @@ +// ==============================|| OVERRIDES - AUTOCOMPLETE ||============================== // + +export default function Autocomplete() { + return { + MuiAutocomplete: { + styleOverrides: { + root: { + '& .MuiOutlinedInput-root': { + padding: '3px 9px' + } + }, + popupIndicator: { + width: 'auto', + height: 'auto' + }, + clearIndicator: { + width: 'auto', + height: 'auto' + } + } + } + }; +} diff --git a/src/themes/overrides/Badge.js b/src/themes/overrides/Badge.js new file mode 100644 index 0000000..dc023c5 --- /dev/null +++ b/src/themes/overrides/Badge.js @@ -0,0 +1,41 @@ +// project import +import getColors from 'utils/getColors'; + +// ==============================|| BADGE - COLORS ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { lighter, main } = colors; + + return { + color: main, + backgroundColor: lighter + }; +} + +// ==============================|| OVERRIDES - BADGE ||============================== // + +export default function Badge(theme) { + const defaultLightBadge = getColorStyle({ color: 'primary', theme }); + + return { + MuiBadge: { + styleOverrides: { + standard: { + minWidth: theme.spacing(2), + height: theme.spacing(2), + padding: theme.spacing(0.5) + }, + light: { + ...defaultLightBadge, + '&.MuiBadge-colorPrimary': getColorStyle({ color: 'primary', theme }), + '&.MuiBadge-colorSecondary': getColorStyle({ color: 'secondary', theme }), + '&.MuiBadge-colorError': getColorStyle({ color: 'error', theme }), + '&.MuiBadge-colorInfo': getColorStyle({ color: 'info', theme }), + '&.MuiBadge-colorSuccess': getColorStyle({ color: 'success', theme }), + '&.MuiBadge-colorWarning': getColorStyle({ color: 'warning', theme }) + } + } + } + }; +} diff --git a/src/themes/overrides/Button.js b/src/themes/overrides/Button.js new file mode 100644 index 0000000..1077206 --- /dev/null +++ b/src/themes/overrides/Button.js @@ -0,0 +1,202 @@ +// material-ui +import { alpha } from '@mui/material/styles'; + +// project import +import getColors from 'utils/getColors'; +import getShadow from 'utils/getShadow'; + +// ==============================|| BUTTON - COLORS ||============================== // + +function getColorStyle({ variant, color, theme }) { + const colors = getColors(theme, color); + const { lighter, main, dark, contrastText } = colors; + + const buttonShadow = `${color}Button`; + const shadows = getShadow(theme, buttonShadow); + + const commonShadow = { + '&::after': { + boxShadow: `0 0 5px 5px ${alpha(main, 0.9)}` + }, + '&:active::after': { + boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` + }, + '&:focus-visible': { + outline: `2px solid ${dark}`, + outlineOffset: 2 + } + }; + + switch (variant) { + case 'contained': + return { + '&:hover': { + backgroundColor: dark + }, + ...commonShadow + }; + case 'shadow': + return { + color: contrastText, + backgroundColor: main, + boxShadow: shadows, + '&:hover': { + boxShadow: 'none', + backgroundColor: dark + }, + ...commonShadow + }; + case 'outlined': + return { + borderColor: main, + '&:hover': { + color: dark, + backgroundColor: 'transparent', + borderColor: dark + }, + ...commonShadow + }; + case 'dashed': + return { + color: main, + borderColor: main, + backgroundColor: lighter, + '&:hover': { + color: dark, + borderColor: dark + }, + ...commonShadow + }; + case 'text': + default: + return { + '&:hover': { + color: dark, + backgroundColor: lighter + }, + ...commonShadow + }; + } +} + +// ==============================|| OVERRIDES - BUTTON ||============================== // + +export default function Button(theme) { + const primaryDashed = getColorStyle({ variant: 'dashed', color: 'primary', theme }); + const primaryShadow = getColorStyle({ variant: 'shadow', color: 'primary', theme }); + + const disabledStyle = { + '&.Mui-disabled': { + backgroundColor: theme.palette.grey[200] + } + }; + const iconStyle = { + '&>*:nth-of-type(1)': { + fontSize: 'inherit' + } + }; + + return { + MuiButton: { + defaultProps: { + disableElevation: true + }, + styleOverrides: { + root: { + fontWeight: 400, + '&::after': { + content: '""', + display: 'block', + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + borderRadius: 4, + opacity: 0, + transition: 'all 0.5s' + }, + + '&:active::after': { + position: 'absolute', + borderRadius: 4, + left: 0, + top: 0, + opacity: 1, + transition: '0s' + } + }, + contained: { + ...disabledStyle + }, + outlined: { + ...disabledStyle + }, + text: { + boxShadow: 'none', + '&:hover': { + boxShadow: 'none' + } + }, + endIcon: { + ...iconStyle + }, + startIcon: { + ...iconStyle + }, + dashed: { + border: '1px dashed', + ...primaryDashed, + '&.MuiButton-dashedPrimary': getColorStyle({ variant: 'dashed', color: 'primary', theme }), + '&.MuiButton-dashedSecondary': getColorStyle({ variant: 'dashed', color: 'secondary', theme }), + '&.MuiButton-dashedError': getColorStyle({ variant: 'dashed', color: 'error', theme }), + '&.MuiButton-dashedSuccess': getColorStyle({ variant: 'dashed', color: 'success', theme }), + '&.MuiButton-dashedInfo': getColorStyle({ variant: 'dashed', color: 'info', theme }), + '&.MuiButton-dashedWarning': getColorStyle({ variant: 'dashed', color: 'warning', theme }), + '&.Mui-disabled': { + color: `${theme.palette.grey[300]} !important`, + borderColor: `${theme.palette.grey[400]} !important`, + backgroundColor: `${theme.palette.grey[200]} !important` + } + }, + shadow: { + ...primaryShadow, + '&.MuiButton-shadowPrimary': getColorStyle({ variant: 'shadow', color: 'primary', theme }), + '&.MuiButton-shadowSecondary': getColorStyle({ variant: 'shadow', color: 'secondary', theme }), + '&.MuiButton-shadowError': getColorStyle({ variant: 'shadow', color: 'error', theme }), + '&.MuiButton-shadowSuccess': getColorStyle({ variant: 'shadow', color: 'success', theme }), + '&.MuiButton-shadowInfo': getColorStyle({ variant: 'shadow', color: 'info', theme }), + '&.MuiButton-shadowWarning': getColorStyle({ variant: 'shadow', color: 'warning', theme }), + '&.Mui-disabled': { + color: `${theme.palette.grey[300]} !important`, + borderColor: `${theme.palette.grey[400]} !important`, + backgroundColor: `${theme.palette.grey[200]} !important` + } + }, + containedPrimary: getColorStyle({ variant: 'contained', color: 'primary', theme }), + containedSecondary: getColorStyle({ variant: 'contained', color: 'secondary', theme }), + containedError: getColorStyle({ variant: 'contained', color: 'error', theme }), + containedSuccess: getColorStyle({ variant: 'contained', color: 'success', theme }), + containedInfo: getColorStyle({ variant: 'contained', color: 'info', theme }), + containedWarning: getColorStyle({ variant: 'contained', color: 'warning', theme }), + outlinedPrimary: getColorStyle({ variant: 'outlined', color: 'primary', theme }), + outlinedSecondary: getColorStyle({ variant: 'outlined', color: 'secondary', theme }), + outlinedError: getColorStyle({ variant: 'outlined', color: 'error', theme }), + outlinedSuccess: getColorStyle({ variant: 'outlined', color: 'success', theme }), + outlinedInfo: getColorStyle({ variant: 'outlined', color: 'info', theme }), + outlinedWarning: getColorStyle({ variant: 'outlined', color: 'warning', theme }), + textPrimary: getColorStyle({ variant: 'text', color: 'primary', theme }), + textSecondary: getColorStyle({ variant: 'text', color: 'secondary', theme }), + textError: getColorStyle({ variant: 'text', color: 'error', theme }), + textSuccess: getColorStyle({ variant: 'text', color: 'success', theme }), + textInfo: getColorStyle({ variant: 'text', color: 'info', theme }), + textWarning: getColorStyle({ variant: 'text', color: 'warning', theme }), + sizeExtraSmall: { + minWidth: 56, + fontSize: '0.625rem', + padding: '2px 8px' + } + } + } + }; +} diff --git a/src/themes/overrides/ButtonBase.js b/src/themes/overrides/ButtonBase.js new file mode 100644 index 0000000..219ecc8 --- /dev/null +++ b/src/themes/overrides/ButtonBase.js @@ -0,0 +1,11 @@ +// ==============================|| OVERRIDES - BUTTON ||============================== // + +export default function ButtonBase() { + return { + MuiButtonBase: { + defaultProps: { + disableRipple: true + } + } + }; +} diff --git a/src/themes/overrides/ButtonGroup.js b/src/themes/overrides/ButtonGroup.js new file mode 100644 index 0000000..7c6541e --- /dev/null +++ b/src/themes/overrides/ButtonGroup.js @@ -0,0 +1,11 @@ +// ==============================|| OVERRIDES - BUTTON GROUP ||============================== // + +export default function ButtonGroup() { + return { + MuiButtonGroup: { + defaultProps: { + disableRipple: true + } + } + }; +} diff --git a/src/themes/overrides/CardContent.js b/src/themes/overrides/CardContent.js new file mode 100644 index 0000000..4a1f515 --- /dev/null +++ b/src/themes/overrides/CardContent.js @@ -0,0 +1,16 @@ +// ==============================|| OVERRIDES - CARD CONTENT ||============================== // + +export default function CardContent() { + return { + MuiCardContent: { + styleOverrides: { + root: { + padding: 20, + '&:last-child': { + paddingBottom: 20 + } + } + } + } + }; +} diff --git a/src/themes/overrides/Checkbox.js b/src/themes/overrides/Checkbox.js new file mode 100644 index 0000000..8cb86f3 --- /dev/null +++ b/src/themes/overrides/Checkbox.js @@ -0,0 +1,126 @@ +// material-ui +import { Box } from '@mui/material'; + +// project import +import getColors from 'utils/getColors'; + +// assets +import { CheckSquareFilled, MinusSquareFilled } from '@ant-design/icons'; + +// ==============================|| RADIO - COLORS ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { lighter, main, dark } = colors; + + return { + '&:hover': { + backgroundColor: lighter, + '& .icon': { + borderColor: main + } + }, + '&.Mui-focusVisible': { + outline: `2px solid ${dark}`, + outlineOffset: -4 + } + }; +} + +// ==============================|| CHECKBOX - SIZE STYLE ||============================== // + +function getSizeStyle(size) { + switch (size) { + case 'small': + return { size: 16, fontSize: 1, position: 1 }; + case 'large': + return { size: 24, fontSize: 1.6, position: 2 }; + case 'medium': + default: + return { size: 20, fontSize: 1.35, position: 2 }; + } +} + +// ==============================|| CHECKBOX - STYLE ||============================== // + +function checkboxStyle(size) { + const sizes = getSizeStyle(size); + + return { + '& .icon': { + width: sizes.size, + height: sizes.size, + '& .filled': { + fontSize: `${sizes.fontSize}rem`, + top: -sizes.position, + left: -sizes.position + } + } + }; +} + +// ==============================|| OVERRIDES - CHECKBOX ||============================== // + +export default function Checkbox(theme) { + const { palette } = theme; + + return { + MuiCheckbox: { + defaultProps: { + className: 'size-small', + icon: , + checkedIcon: ( + + + + ), + indeterminateIcon: ( + + + + ) + }, + styleOverrides: { + root: { + borderRadius: 0, + color: palette.secondary[300], + '&.size-small': { + ...checkboxStyle('small') + }, + '&.size-medium': { + ...checkboxStyle('medium') + }, + '&.size-large': { + ...checkboxStyle('large') + } + }, + colorPrimary: getColorStyle({ color: 'primary', theme }), + colorSecondary: getColorStyle({ color: 'secondary', theme }), + colorSuccess: getColorStyle({ color: 'success', theme }), + colorWarning: getColorStyle({ color: 'warning', theme }), + colorInfo: getColorStyle({ color: 'info', theme }), + colorError: getColorStyle({ color: 'error', theme }) + } + } + }; +} diff --git a/src/themes/overrides/Chip.js b/src/themes/overrides/Chip.js new file mode 100644 index 0000000..c0d6769 --- /dev/null +++ b/src/themes/overrides/Chip.js @@ -0,0 +1,80 @@ +// project import +import getColors from 'utils/getColors'; + +// ==============================|| CHIP - COLORS ||============================== // + +function getColor({ color, theme }) { + const colors = getColors(theme, color); + const { dark } = colors; + + return { + '&.Mui-focusVisible': { + outline: `2px solid ${dark}`, + outlineOffset: 2 + } + }; +} + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { light, lighter, main } = colors; + + return { + color: main, + backgroundColor: lighter, + borderColor: light, + '& .MuiChip-deleteIcon': { + color: main, + '&:hover': { + color: light + } + } + }; +} + +// ==============================|| OVERRIDES - CHIP ||============================== // + +export default function Chip(theme) { + const defaultLightChip = getColorStyle({ color: 'secondary', theme }); + return { + MuiChip: { + styleOverrides: { + root: { + borderRadius: 4, + '&:active': { + boxShadow: 'none' + }, + '&.MuiChip-colorPrimary': getColor({ color: 'primary', theme }), + '&.MuiChip-colorSecondary': getColor({ color: 'secondary', theme }), + '&.MuiChip-colorError': getColor({ color: 'error', theme }), + '&.MuiChip-colorInfo': getColor({ color: 'info', theme }), + '&.MuiChip-colorSuccess': getColor({ color: 'success', theme }), + '&.MuiChip-colorWarning': getColor({ color: 'warning', theme }) + }, + sizeLarge: { + fontSize: '1rem', + height: 40 + }, + light: { + ...defaultLightChip, + '&.MuiChip-lightPrimary': getColorStyle({ color: 'primary', theme }), + '&.MuiChip-lightSecondary': getColorStyle({ color: 'secondary', theme }), + '&.MuiChip-lightError': getColorStyle({ color: 'error', theme }), + '&.MuiChip-lightInfo': getColorStyle({ color: 'info', theme }), + '&.MuiChip-lightSuccess': getColorStyle({ color: 'success', theme }), + '&.MuiChip-lightWarning': getColorStyle({ color: 'warning', theme }) + }, + combined: { + border: '1px solid', + ...defaultLightChip, + '&.MuiChip-combinedPrimary': getColorStyle({ color: 'primary', theme }), + '&.MuiChip-combinedSecondary': getColorStyle({ color: 'secondary', theme }), + '&.MuiChip-combinedError': getColorStyle({ color: 'error', theme }), + '&.MuiChip-combinedInfo': getColorStyle({ color: 'info', theme }), + '&.MuiChip-combinedSuccess': getColorStyle({ color: 'success', theme }), + '&.MuiChip-combinedWarning': getColorStyle({ color: 'warning', theme }) + } + } + } + }; +} diff --git a/src/themes/overrides/Dialog.js b/src/themes/overrides/Dialog.js new file mode 100644 index 0000000..ccc0384 --- /dev/null +++ b/src/themes/overrides/Dialog.js @@ -0,0 +1,18 @@ +// material-ui +import { alpha } from '@mui/material/styles'; + +// ==============================|| OVERRIDES - DIALOG ||============================== // + +export default function Dialog() { + return { + MuiDialog: { + styleOverrides: { + root: { + '& .MuiBackdrop-root': { + backgroundColor: alpha('#000', 0.7) + } + } + } + } + }; +} diff --git a/src/themes/overrides/DialogContentText.js b/src/themes/overrides/DialogContentText.js new file mode 100644 index 0000000..9421475 --- /dev/null +++ b/src/themes/overrides/DialogContentText.js @@ -0,0 +1,14 @@ +// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== // + +export default function DialogContentText(theme) { + return { + MuiDialogContentText: { + styleOverrides: { + root: { + fontSize: '0.875rem', + color: theme.palette.text.primary + } + } + } + }; +} diff --git a/src/themes/overrides/DialogTitle.js b/src/themes/overrides/DialogTitle.js new file mode 100644 index 0000000..6a30338 --- /dev/null +++ b/src/themes/overrides/DialogTitle.js @@ -0,0 +1,14 @@ +// ==============================|| OVERRIDES - DIALOG TITLE ||============================== // + +export default function DialogTitle() { + return { + MuiDialogTitle: { + styleOverrides: { + root: { + fontSize: '1rem', + fontWeight: 500 + } + } + } + }; +} diff --git a/src/themes/overrides/Fab.js b/src/themes/overrides/Fab.js new file mode 100644 index 0000000..5d36ee5 --- /dev/null +++ b/src/themes/overrides/Fab.js @@ -0,0 +1,82 @@ +// material-ui +import { alpha } from '@mui/material/styles'; + +// project import +import getColors from 'utils/getColors'; +import getShadow from 'utils/getShadow'; + +// ==============================|| FAB BUTTON - COLORS ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { main, dark, contrastText } = colors; + + const buttonShadow = `${color}Button`; + const shadows = getShadow(theme, buttonShadow); + + return { + color: contrastText, + backgroundColor: main, + boxShadow: shadows, + '&:hover': { + boxShadow: 'none', + backgroundColor: dark + }, + '&:focus-visible': { + outline: `2px solid ${dark}`, + outlineOffset: 2 + }, + '&::after': { + borderRadius: '50px', + boxShadow: `0 0 5px 5px ${alpha(main, 0.9)}` + }, + '&:active::after': { + borderRadius: '50px', + boxShadow: `0 0 0 0 ${alpha(main, 0.9)}` + } + }; +} + +// ==============================|| OVERRIDES - FAB BUTTON ||============================== // + +export default function Button(theme) { + return { + MuiFab: { + styleOverrides: { + root: { + fontWeight: 400, + '&.Mui-disabled': { + backgroundColor: theme.palette.grey[200] + }, + '&.MuiFab-primary': getColorStyle({ color: 'primary', theme }), + '&.MuiFab-secondary': getColorStyle({ color: 'secondary', theme }), + '&.Mui-error': getColorStyle({ color: 'error', theme }), + '&.MuiFab-success': getColorStyle({ color: 'success', theme }), + '&.MuiFab-info': getColorStyle({ color: 'info', theme }), + '&.MuiFab-warning': getColorStyle({ color: 'warning', theme }), + '&::after': { + content: '""', + display: 'block', + position: 'absolute', + left: 0, + top: 0, + width: '100%', + height: '100%', + borderRadius: 4, + opacity: 0, + transition: 'all 0.5s' + }, + + '&:active::after': { + position: 'absolute', + borderRadius: 4, + left: 0, + top: 0, + opacity: 1, + transition: '0s' + } + } + } + } + }; +} diff --git a/src/themes/overrides/IconButton.js b/src/themes/overrides/IconButton.js new file mode 100644 index 0000000..a78af99 --- /dev/null +++ b/src/themes/overrides/IconButton.js @@ -0,0 +1,28 @@ +// ==============================|| OVERRIDES - ICON BUTTON ||============================== // + +export default function IconButton(theme) { + return { + MuiIconButton: { + styleOverrides: { + root: { + borderRadius: 4 + }, + sizeLarge: { + width: theme.spacing(5.5), + height: theme.spacing(5.5), + fontSize: '1.25rem' + }, + sizeMedium: { + width: theme.spacing(4.5), + height: theme.spacing(4.5), + fontSize: '1rem' + }, + sizeSmall: { + width: theme.spacing(3.75), + height: theme.spacing(3.75), + fontSize: '0.75rem' + } + } + } + }; +} diff --git a/src/themes/overrides/InputBase.js b/src/themes/overrides/InputBase.js new file mode 100644 index 0000000..9e83320 --- /dev/null +++ b/src/themes/overrides/InputBase.js @@ -0,0 +1,13 @@ +// ==============================|| OVERRIDES - INPUT BASE ||============================== // + +export default function InputBase() { + return { + MuiInputBase: { + styleOverrides: { + sizeSmall: { + fontSize: '0.75rem' + } + } + } + }; +} diff --git a/src/themes/overrides/InputLabel.js b/src/themes/overrides/InputLabel.js new file mode 100644 index 0000000..7eec340 --- /dev/null +++ b/src/themes/overrides/InputLabel.js @@ -0,0 +1,25 @@ +// ==============================|| OVERRIDES - INPUT LABEL ||============================== // + +export default function InputLabel(theme) { + return { + MuiInputLabel: { + styleOverrides: { + root: { + color: theme.palette.grey[600] + }, + outlined: { + lineHeight: '0.8em', + '&.MuiInputLabel-sizeSmall': { + lineHeight: '1em' + }, + '&.MuiInputLabel-shrink': { + background: theme.palette.background.paper, + padding: '0 8px', + marginLeft: -6, + lineHeight: '1.4375em' + } + } + } + } + }; +} diff --git a/src/themes/overrides/LinearProgress.js b/src/themes/overrides/LinearProgress.js new file mode 100644 index 0000000..20cb67d --- /dev/null +++ b/src/themes/overrides/LinearProgress.js @@ -0,0 +1,17 @@ +// ==============================|| OVERRIDES - LINER PROGRESS ||============================== // + +export default function LinearProgress() { + return { + MuiLinearProgress: { + styleOverrides: { + root: { + height: 6, + borderRadius: 100 + }, + bar: { + borderRadius: 100 + } + } + } + }; +} diff --git a/src/themes/overrides/Link.js b/src/themes/overrides/Link.js new file mode 100644 index 0000000..fe7b409 --- /dev/null +++ b/src/themes/overrides/Link.js @@ -0,0 +1,11 @@ +// ==============================|| OVERRIDES - LINK ||============================== // + +export default function Link() { + return { + MuiLink: { + defaultProps: { + underline: 'hover' + } + } + }; +} diff --git a/src/themes/overrides/ListItemButton.js b/src/themes/overrides/ListItemButton.js new file mode 100644 index 0000000..a308c93 --- /dev/null +++ b/src/themes/overrides/ListItemButton.js @@ -0,0 +1,18 @@ +// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== // + +export default function ListItemButton(theme) { + return { + MuiListItemButton: { + styleOverrides: { + root: { + '&.Mui-selected': { + color: theme.palette.primary.main, + '& .MuiListItemIcon-root': { + color: theme.palette.primary.main + } + } + } + } + } + }; +} diff --git a/src/themes/overrides/ListItemIcon.js b/src/themes/overrides/ListItemIcon.js new file mode 100644 index 0000000..7e8c601 --- /dev/null +++ b/src/themes/overrides/ListItemIcon.js @@ -0,0 +1,14 @@ +// ==============================|| OVERRIDES - LIST ITEM ICON ||============================== // + +export default function ListItemIcon(theme) { + return { + MuiListItemIcon: { + styleOverrides: { + root: { + minWidth: 24, + color: theme.palette.text.primary + } + } + } + }; +} diff --git a/src/themes/overrides/LoadingButton.js b/src/themes/overrides/LoadingButton.js new file mode 100644 index 0000000..6e65615 --- /dev/null +++ b/src/themes/overrides/LoadingButton.js @@ -0,0 +1,17 @@ +// ==============================|| OVERRIDES - LOADING BUTTON ||============================== // + +export default function LoadingButton() { + return { + MuiLoadingButton: { + styleOverrides: { + root: { + padding: '6px 16px', + '&.MuiLoadingButton-loading': { + opacity: 0.6, + textShadow: 'none' + } + } + } + } + }; +} diff --git a/src/themes/overrides/OutlinedInput.js b/src/themes/overrides/OutlinedInput.js new file mode 100644 index 0000000..db87bfc --- /dev/null +++ b/src/themes/overrides/OutlinedInput.js @@ -0,0 +1,59 @@ +// project import +import { ThemeMode } from 'config'; +import getColors from 'utils/getColors'; +import getShadow from 'utils/getShadow'; + +// ==============================|| OVERRIDES - INPUT BORDER & SHADOWS ||============================== // + +function getColor({ variant, theme }) { + const colors = getColors(theme, variant); + const { light } = colors; + + const shadows = getShadow(theme, `${variant}`); + + return { + '&:hover .MuiOutlinedInput-notchedOutline': { + borderColor: light + }, + '&.Mui-focused': { + boxShadow: shadows, + '& .MuiOutlinedInput-notchedOutline': { + border: `1px solid ${light}` + } + } + }; +} + +// ==============================|| OVERRIDES - OUTLINED INPUT ||============================== // + +export default function OutlinedInput(theme) { + return { + MuiOutlinedInput: { + styleOverrides: { + input: { + padding: '10.5px 14px 10.5px 12px' + }, + notchedOutline: { + borderColor: theme.palette.mode === ThemeMode.DARK ? theme.palette.grey[200] : theme.palette.grey[300] + }, + root: { + ...getColor({ variant: 'primary', theme }), + '&.Mui-error': { + ...getColor({ variant: 'error', theme }) + } + }, + inputSizeSmall: { + padding: '7.5px 8px 7.5px 12px' + }, + inputMultiline: { + padding: 0 + }, + colorSecondary: getColor({ variant: 'secondary', theme }), + colorError: getColor({ variant: 'error', theme }), + colorWarning: getColor({ variant: 'warning', theme }), + colorInfo: getColor({ variant: 'info', theme }), + colorSuccess: getColor({ variant: 'success', theme }) + } + } + }; +} diff --git a/src/themes/overrides/Pagination.js b/src/themes/overrides/Pagination.js new file mode 100644 index 0000000..faf8d1b --- /dev/null +++ b/src/themes/overrides/Pagination.js @@ -0,0 +1,11 @@ +// ==============================|| OVERRIDES - PAGINATION ||============================== // + +export default function Pagination() { + return { + MuiPagination: { + defaultProps: { + shape: 'rounded' + } + } + }; +} diff --git a/src/themes/overrides/PaginationItem.js b/src/themes/overrides/PaginationItem.js new file mode 100644 index 0000000..3584124 --- /dev/null +++ b/src/themes/overrides/PaginationItem.js @@ -0,0 +1,118 @@ +// project import +import getColors from 'utils/getColors'; + +// ==============================|| PAGINATION ITEM - COLORS ||============================== // + +function getColorStyle({ variant, color, theme }) { + const colors = getColors(theme, color); + const { lighter, light, dark, main, contrastText } = colors; + + const focusStyle = { + '&:focus-visible': { + outline: `2px solid ${dark}`, + outlineOffset: 2, + ...(variant === 'text' && { + backgroundColor: theme.palette.background.paper + }) + } + }; + + switch (variant) { + case 'combined': + case 'contained': + return { + color: contrastText, + backgroundColor: main, + '&:hover': { + backgroundColor: light + }, + ...focusStyle + }; + case 'outlined': + return { + borderColor: main, + '&:hover': { + backgroundColor: lighter, + borderColor: light + }, + ...focusStyle + }; + case 'text': + default: + return { + color: main, + '&:hover': { + backgroundColor: main, + color: lighter + }, + ...focusStyle + }; + } +} + +// ==============================|| OVERRIDES - PAGINATION ITEM ||============================== // + +export default function PaginationItem(theme) { + return { + MuiPaginationItem: { + styleOverrides: { + root: { + '&:focus-visible': { + outline: `2px solid ${theme.palette.secondary.dark}`, + outlineOffset: 2 + } + }, + text: { + '&.Mui-selected': { + backgroundColor: 'transparent', + fontSize: '1rem', + fontWeight: 500, + '&.MuiPaginationItem-textPrimary': getColorStyle({ variant: 'text', color: 'primary', theme }), + '&.MuiPaginationItem-textSecondary': getColorStyle({ variant: 'text', color: 'secondary', theme }), + '&.MuiPaginationItem-textError': getColorStyle({ variant: 'text', color: 'error', theme }), + '&.MuiPaginationItem-textSuccess': getColorStyle({ variant: 'text', color: 'success', theme }), + '&.MuiPaginationItem-textInfo': getColorStyle({ variant: 'text', color: 'info', theme }), + '&.MuiPaginationItem-textWarning': getColorStyle({ variant: 'text', color: 'warning', theme }) + } + }, + contained: { + '&.Mui-selected': { + '&.MuiPaginationItem-containedPrimary': getColorStyle({ variant: 'contained', color: 'primary', theme }), + '&.MuiPaginationItem-containedSecondary': getColorStyle({ variant: 'contained', color: 'secondary', theme }), + '&.MuiPaginationItem-containedError': getColorStyle({ variant: 'contained', color: 'error', theme }), + '&.MuiPaginationItem-containedSuccess': getColorStyle({ variant: 'contained', color: 'success', theme }), + '&.MuiPaginationItem-containedInfo': getColorStyle({ variant: 'contained', color: 'info', theme }), + '&.MuiPaginationItem-containedWarning': getColorStyle({ variant: 'contained', color: 'warning', theme }) + } + }, + combined: { + border: '1px solid', + borderColor: theme.palette.divider, + '&.MuiPaginationItem-ellipsis': { + border: 'none' + }, + '&.Mui-selected': { + '&.MuiPaginationItem-combinedPrimary': getColorStyle({ variant: 'combined', color: 'primary', theme }), + '&.MuiPaginationItem-combinedSecondary': getColorStyle({ variant: 'combined', color: 'secondary', theme }), + '&.MuiPaginationItem-combinedError': getColorStyle({ variant: 'combined', color: 'error', theme }), + '&.MuiPaginationItem-combinedSuccess': getColorStyle({ variant: 'combined', color: 'success', theme }), + '&.MuiPaginationItem-combinedInfo': getColorStyle({ variant: 'combined', color: 'info', theme }), + '&.MuiPaginationItem-combinedWarning': getColorStyle({ variant: 'combined', color: 'warning', theme }) + } + }, + outlined: { + borderColor: theme.palette.divider, + '&.Mui-selected': { + backgroundColor: 'transparent', + '&.MuiPaginationItem-outlinedPrimary': getColorStyle({ variant: 'outlined', color: 'primary', theme }), + '&.MuiPaginationItem-outlinedSecondary': getColorStyle({ variant: 'outlined', color: 'secondary', theme }), + '&.MuiPaginationItem-outlinedError': getColorStyle({ variant: 'outlined', color: 'error', theme }), + '&.MuiPaginationItem-outlinedSuccess': getColorStyle({ variant: 'outlined', color: 'success', theme }), + '&.MuiPaginationItem-outlinedInfo': getColorStyle({ variant: 'outlined', color: 'info', theme }), + '&.MuiPaginationItem-outlinedWarning': getColorStyle({ variant: 'outlined', color: 'warning', theme }) + } + } + } + } + }; +} diff --git a/src/themes/overrides/Popover.js b/src/themes/overrides/Popover.js new file mode 100644 index 0000000..a4589c0 --- /dev/null +++ b/src/themes/overrides/Popover.js @@ -0,0 +1,13 @@ +// ==============================|| OVERRIDES - DIALOG CONTENT TEXT ||============================== // + +export default function Popover(theme) { + return { + MuiPopover: { + styleOverrides: { + paper: { + boxShadow: theme.customShadows.z1 + } + } + } + }; +} diff --git a/src/themes/overrides/Radio.js b/src/themes/overrides/Radio.js new file mode 100644 index 0000000..71cf892 --- /dev/null +++ b/src/themes/overrides/Radio.js @@ -0,0 +1,119 @@ +// material-ui +import { Box } from '@mui/material'; + +// project import +import getColors from 'utils/getColors'; + +// ==============================|| RADIO - COLORS ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { lighter, main, dark } = colors; + + return { + '& .dot': { + backgroundColor: main + }, + '&:hover': { + backgroundColor: lighter + }, + '&.Mui-focusVisible': { + outline: `2px solid ${dark}`, + outlineOffset: -4 + } + }; +} + +// ==============================|| CHECKBOX - SIZE STYLE ||============================== // + +function getSizeStyle(size) { + switch (size) { + case 'small': + return { size: 16, dotSize: 8, position: 3 }; + case 'large': + return { size: 24, dotSize: 12, position: 5 }; + case 'medium': + default: + return { size: 20, dotSize: 10, position: 4 }; + } +} + +// ==============================|| CHECKBOX - STYLE ||============================== // + +function radioStyle(size) { + const sizes = getSizeStyle(size); + + return { + '& .icon': { + width: sizes.size, + height: sizes.size, + '& .dot': { + width: sizes.dotSize, + height: sizes.dotSize, + top: sizes.position, + left: sizes.position + } + } + }; +} + +// ==============================|| OVERRIDES - CHECKBOX ||============================== // + +export default function Radio(theme) { + const { palette } = theme; + + return { + MuiRadio: { + defaultProps: { + className: 'size-small', + icon: , + checkedIcon: ( + + + + ) + }, + styleOverrides: { + root: { + color: palette.secondary[300], + '&.size-small': { + ...radioStyle('small') + }, + '&.size-medium': { + ...radioStyle('medium') + }, + '&.size-large': { + ...radioStyle('large') + } + }, + colorPrimary: getColorStyle({ color: 'primary', theme }), + colorSecondary: getColorStyle({ color: 'secondary', theme }), + colorSuccess: getColorStyle({ color: 'success', theme }), + colorWarning: getColorStyle({ color: 'warning', theme }), + colorInfo: getColorStyle({ color: 'info', theme }), + colorError: getColorStyle({ color: 'error', theme }) + } + } + }; +} diff --git a/src/themes/overrides/Slider.js b/src/themes/overrides/Slider.js new file mode 100644 index 0000000..72015f7 --- /dev/null +++ b/src/themes/overrides/Slider.js @@ -0,0 +1,69 @@ +// project import +import getColors from 'utils/getColors'; + +// ==============================|| OVERRIDES - SLIDER ||============================== // + +function getColorStyle({ color, theme }) { + const colors = getColors(theme, color); + const { main } = colors; + + return { + border: `2px solid ${main}` + }; +} + +export default function Slider(theme) { + return { + MuiSlider: { + styleOverrides: { + track: { + height: '1px' + }, + thumb: { + width: 14, + height: 14, + border: `2px solid ${theme.palette.primary.main}`, + backgroundColor: theme.palette.background.paper, + '&.MuiSlider-thumbColorPrimary': getColorStyle({ color: 'primary', theme }), + '&.MuiSlider-thumbColorSecondary': getColorStyle({ color: 'secondary', theme }), + '&.MuiSlider-thumbColorSuccess': getColorStyle({ color: 'success', theme }), + '&.MuiSlider-thumbColorWarning': getColorStyle({ color: 'warning', theme }), + '&.MuiSlider-thumbColorInfo': getColorStyle({ color: 'info', theme }), + '&.MuiSlider-thumbColorError': getColorStyle({ color: 'error', theme }) + }, + mark: { + width: 4, + height: 4, + borderRadius: '50%', + border: `1px solid ${theme.palette.secondary.light}`, + backgroundColor: theme.palette.background.paper, + '&.MuiSlider-markActive': { + opacity: 1, + borderColor: 'inherit', + borderWidth: 2 + } + }, + rail: { + color: theme.palette.secondary.light + }, + root: { + '&.Mui-disabled': { + '.MuiSlider-rail': { + opacity: 0.25 + }, + '.MuiSlider-track': { + color: theme.palette.secondary.lighter + }, + '.MuiSlider-thumb': { + border: `2px solid ${theme.palette.secondary.lighter}` + } + } + }, + valueLabel: { + backgroundColor: theme.palette.grey[600], + color: theme.palette.grey[0] + } + } + } + }; +} diff --git a/src/themes/overrides/Switch.js b/src/themes/overrides/Switch.js new file mode 100644 index 0000000..d46676a --- /dev/null +++ b/src/themes/overrides/Switch.js @@ -0,0 +1,88 @@ +// ==============================|| SWITCH - SIZE STYLE ||============================== // + +function getSizeStyle(size) { + switch (size) { + case 'small': + return { width: 28, height: 16, base: 12, thumb: 10, trackRadius: 8 }; + case 'large': + return { width: 60, height: 28, base: 32, thumb: 22, trackRadius: 24 }; + case 'medium': + default: + return { width: 44, height: 22, base: 22, thumb: 16, trackRadius: 16 }; + } +} + +function switchStyle(theme, size) { + const sizes = getSizeStyle(size); + + return { + width: sizes.width, + height: sizes.height, + '& .MuiSwitch-switchBase': { + padding: 3, + '&.Mui-checked': { + transform: `translateX(${sizes.base}px)` + } + }, + '& .MuiSwitch-thumb': { + width: sizes.thumb, + height: sizes.thumb + }, + '& .MuiSwitch-track': { + borderRadius: sizes.trackRadius + } + }; +} + +// ==============================|| OVERRIDES - TAB ||============================== // + +export default function Switch(theme) { + return { + MuiSwitch: { + styleOverrides: { + track: { + opacity: 1, + backgroundColor: theme.palette.secondary[400], + boxSizing: 'border-box' + }, + thumb: { + borderRadius: '50%', + transition: theme.transitions.create(['width'], { + duration: 200 + }) + }, + switchBase: { + '&.Mui-checked': { + color: '#fff', + '& + .MuiSwitch-track': { + opacity: 1 + }, + '&.Mui-disabled': { + color: theme.palette.background.paper + } + }, + '&.Mui-disabled': { + color: theme.palette.background.paper, + '+.MuiSwitch-track': { + opacity: 0.3 + } + } + }, + root: { + color: theme.palette.text.primary, + padding: 0, + margin: 8, + display: 'flex', + '& ~ .MuiFormControlLabel-label': { + margin: 6 + }, + ...switchStyle(theme, 'medium') + }, + sizeLarge: { ...switchStyle(theme, 'large') }, + sizeSmall: { + ...switchStyle(theme, 'small') + } + } + } + }; +} diff --git a/src/themes/overrides/Tab.js b/src/themes/overrides/Tab.js new file mode 100644 index 0000000..76dcad1 --- /dev/null +++ b/src/themes/overrides/Tab.js @@ -0,0 +1,24 @@ +// ==============================|| OVERRIDES - TAB ||============================== // + +export default function Tab(theme) { + return { + MuiTab: { + styleOverrides: { + root: { + minHeight: 46, + color: theme.palette.text.primary, + borderRadius: 4, + '&:hover': { + backgroundColor: theme.palette.primary.lighter + 60, + color: theme.palette.primary.main + }, + '&:focus-visible': { + borderRadius: 4, + outline: `2px solid ${theme.palette.secondary.dark}`, + outlineOffset: -3 + } + } + } + } + }; +} diff --git a/src/themes/overrides/TableBody.js b/src/themes/overrides/TableBody.js new file mode 100644 index 0000000..bd18f2b --- /dev/null +++ b/src/themes/overrides/TableBody.js @@ -0,0 +1,27 @@ +// ==============================|| OVERRIDES - TABLE ROW ||============================== // + +export default function TableBody(theme) { + const hoverStyle = { + '&:hover': { + backgroundColor: theme.palette.secondary.lighter + } + }; + + return { + MuiTableBody: { + styleOverrides: { + root: { + '&.striped .MuiTableRow-root': { + '&:nth-of-type(even)': { + backgroundColor: theme.palette.grey[50] + }, + ...hoverStyle + }, + '& .MuiTableRow-root': { + ...hoverStyle + } + } + } + } + }; +} diff --git a/src/themes/overrides/TableCell.js b/src/themes/overrides/TableCell.js new file mode 100644 index 0000000..9df0b92 --- /dev/null +++ b/src/themes/overrides/TableCell.js @@ -0,0 +1,44 @@ +// ==============================|| OVERRIDES - TABLE CELL ||============================== // + +export default function TableCell(theme) { + const commonCell = { + '&:not(:last-of-type)': { + position: 'relative', + '&:after': { + position: 'absolute', + content: '""', + backgroundColor: theme.palette.divider, + width: 1, + height: 'calc(100% - 30px)', + right: 0, + top: 16 + } + } + }; + + return { + MuiTableCell: { + styleOverrides: { + root: { + fontSize: '0.875rem', + padding: 12, + borderColor: theme.palette.divider + }, + sizeSmall: { + padding: 8 + }, + head: { + fontSize: '0.75rem', + fontWeight: 700, + textTransform: 'uppercase', + ...commonCell + }, + footer: { + fontSize: '0.75rem', + textTransform: 'uppercase', + ...commonCell + } + } + } + }; +} diff --git a/src/themes/overrides/TableFooter.js b/src/themes/overrides/TableFooter.js new file mode 100644 index 0000000..f3ecaa7 --- /dev/null +++ b/src/themes/overrides/TableFooter.js @@ -0,0 +1,15 @@ +// ==============================|| OVERRIDES - TABLE CELL ||============================== // + +export default function TableFooter(theme) { + return { + MuiTableFooter: { + styleOverrides: { + root: { + backgroundColor: theme.palette.grey[50], + borderTop: `2px solid ${theme.palette.divider}`, + borderBottom: `1px solid ${theme.palette.divider}` + } + } + } + }; +} diff --git a/src/themes/overrides/TableHead.js b/src/themes/overrides/TableHead.js new file mode 100644 index 0000000..23f45dd --- /dev/null +++ b/src/themes/overrides/TableHead.js @@ -0,0 +1,15 @@ +// ==============================|| OVERRIDES - TABLE CELL ||============================== // + +export default function TableHead(theme) { + return { + MuiTableHead: { + styleOverrides: { + root: { + backgroundColor: theme.palette.grey[50], + borderTop: `1px solid ${theme.palette.divider}`, + borderBottom: `2px solid ${theme.palette.divider}` + } + } + } + }; +} diff --git a/src/themes/overrides/TablePagination.js b/src/themes/overrides/TablePagination.js new file mode 100644 index 0000000..6f2a48e --- /dev/null +++ b/src/themes/overrides/TablePagination.js @@ -0,0 +1,16 @@ +// ==============================|| OVERRIDES - TABLE PAGINATION ||============================== // + +export default function TablePagination() { + return { + MuiTablePagination: { + styleOverrides: { + selectLabel: { + fontSize: '0.875rem' + }, + displayedRows: { + fontSize: '0.875rem' + } + } + } + }; +} diff --git a/src/themes/overrides/TableRow.js b/src/themes/overrides/TableRow.js new file mode 100644 index 0000000..498bf97 --- /dev/null +++ b/src/themes/overrides/TableRow.js @@ -0,0 +1,25 @@ +// ==============================|| OVERRIDES - TABLE ROW ||============================== // + +export default function TableRow() { + return { + MuiTableRow: { + styleOverrides: { + root: { + '&:last-of-type': { + '& .MuiTableCell-root': { + borderBottom: 'none' + } + }, + '& .MuiTableCell-root': { + '&:last-of-type': { + paddingRight: 24 + }, + '&:first-of-type': { + paddingLeft: 24 + } + } + } + } + } + }; +} diff --git a/src/themes/overrides/Tabs.js b/src/themes/overrides/Tabs.js new file mode 100644 index 0000000..661de7d --- /dev/null +++ b/src/themes/overrides/Tabs.js @@ -0,0 +1,13 @@ +// ==============================|| OVERRIDES - TABS ||============================== // + +export default function Tabs() { + return { + MuiTabs: { + styleOverrides: { + vertical: { + overflow: 'visible' + } + } + } + }; +} diff --git a/src/themes/overrides/ToggleButton.js b/src/themes/overrides/ToggleButton.js new file mode 100644 index 0000000..821ce5c --- /dev/null +++ b/src/themes/overrides/ToggleButton.js @@ -0,0 +1,20 @@ +// ==============================|| OVERRIDES - TOGGLE BUTTON ||============================== // + +export default function ToggleButton(theme) { + return { + MuiToggleButton: { + styleOverrides: { + root: { + '&.Mui-disabled': { + borderColor: theme.palette.divider, + color: theme.palette.text.disabled + }, + '&:focus-visible': { + outline: `2px solid ${theme.palette.secondary.dark}`, + outlineOffset: 2 + } + } + } + } + }; +} diff --git a/src/themes/overrides/Tooltip.js b/src/themes/overrides/Tooltip.js new file mode 100644 index 0000000..adbc7b5 --- /dev/null +++ b/src/themes/overrides/Tooltip.js @@ -0,0 +1,13 @@ +// ==============================|| OVERRIDES - TOOLTIP ||============================== // + +export default function Tooltip(theme) { + return { + MuiTooltip: { + styleOverrides: { + tooltip: { + color: theme.palette.background.paper + } + } + } + }; +} diff --git a/src/themes/overrides/TreeItem.js b/src/themes/overrides/TreeItem.js new file mode 100644 index 0000000..a22daed --- /dev/null +++ b/src/themes/overrides/TreeItem.js @@ -0,0 +1,18 @@ +// ==============================|| OVERRIDES - TREE ITEM ||============================== // + +export default function TreeItem() { + return { + MuiTreeItem: { + styleOverrides: { + content: { + padding: 8 + }, + iconContainer: { + '& svg': { + fontSize: '0.625rem' + } + } + } + } + }; +} diff --git a/src/themes/overrides/Typography.js b/src/themes/overrides/Typography.js new file mode 100644 index 0000000..1bd78ad --- /dev/null +++ b/src/themes/overrides/Typography.js @@ -0,0 +1,13 @@ +// ==============================|| OVERRIDES - TYPOGRAPHY ||============================== // + +export default function Typography() { + return { + MuiTypography: { + styleOverrides: { + gutterBottom: { + marginBottom: 12 + } + } + } + }; +} diff --git a/src/themes/overrides/index.js b/src/themes/overrides/index.js new file mode 100644 index 0000000..8138bc7 --- /dev/null +++ b/src/themes/overrides/index.js @@ -0,0 +1,99 @@ +// third-party +import { merge } from 'lodash'; + +// project import +import Accordion from './Accordion'; +import AccordionDetails from './AccordionDetails'; +import AccordionSummary from './AccordionSummary'; +import Alert from './Alert'; +import AlertTitle from './AlertTitle'; +import Autocomplete from './Autocomplete'; +import Badge from './Badge'; +import Button from './Button'; +import ButtonBase from './ButtonBase'; +import ButtonGroup from './ButtonGroup'; +import CardContent from './CardContent'; +import Checkbox from './Checkbox'; +import Chip from './Chip'; +import Dialog from './Dialog'; +import DialogContentText from './DialogContentText'; +import DialogTitle from './DialogTitle'; +import Fab from './Fab'; +import IconButton from './IconButton'; +import InputBase from './InputBase'; +import InputLabel from './InputLabel'; +import LinearProgress from './LinearProgress'; +import Link from './Link'; +import ListItemButton from './ListItemButton'; +import ListItemIcon from './ListItemIcon'; +import LoadingButton from './LoadingButton'; +import OutlinedInput from './OutlinedInput'; +import Pagination from './Pagination'; +import PaginationItem from './PaginationItem'; +import Popover from './Popover'; +import Radio from './Radio'; +import Slider from './Slider'; +import Switch from './Switch'; +import Tab from './Tab'; +import TableBody from './TableBody'; +import TableCell from './TableCell'; +import TableFooter from './TableFooter'; +import TableHead from './TableHead'; +import TablePagination from './TablePagination'; +import TableRow from './TableRow'; +import Tabs from './Tabs'; +import ToggleButton from './ToggleButton'; +import Tooltip from './Tooltip'; +import TreeItem from './TreeItem'; +import Typography from './Typography'; + +// ==============================|| OVERRIDES - MAIN ||============================== // + +export default function ComponentsOverrides(theme) { + return merge( + Accordion(theme), + AccordionDetails(theme), + AccordionSummary(theme), + Alert(theme), + AlertTitle(), + Autocomplete(), + Badge(theme), + Button(theme), + ButtonBase(), + ButtonGroup(), + CardContent(), + Checkbox(theme), + Chip(theme), + Dialog(), + DialogContentText(theme), + DialogTitle(), + Fab(theme), + IconButton(theme), + InputBase(), + InputLabel(theme), + LinearProgress(), + Link(), + ListItemButton(theme), + ListItemIcon(theme), + LoadingButton(), + OutlinedInput(theme), + Pagination(), + PaginationItem(theme), + Popover(theme), + Radio(theme), + Slider(theme), + Switch(theme), + Tab(theme), + TableBody(theme), + TableCell(theme), + TableFooter(theme), + TableHead(theme), + TablePagination(), + TableRow(), + Tabs(), + ToggleButton(theme), + Tooltip(theme), + TreeItem(), + Typography() + ); +} diff --git a/src/themes/palette.js b/src/themes/palette.js new file mode 100644 index 0000000..58eea77 --- /dev/null +++ b/src/themes/palette.js @@ -0,0 +1,67 @@ +// material-ui +import { alpha, createTheme } from '@mui/material/styles'; + +// third-party +import { presetDarkPalettes, presetPalettes } from '@ant-design/colors'; + +// project import +import ThemeOption from './theme'; +import { ThemeMode } from 'config'; + +// ==============================|| DEFAULT THEME - PALETTE ||============================== // + +const Palette = (mode, presetColor) => { + const colors = mode === ThemeMode.DARK ? presetDarkPalettes : presetPalettes; + + let greyPrimary = [ + '#ffffff', + '#fafafa', + '#f5f5f5', + '#f0f0f0', + '#d9d9d9', + '#bfbfbf', + '#8c8c8c', + '#595959', + '#262626', + '#141414', + '#000000' + ]; + let greyAscent = ['#fafafa', '#bfbfbf', '#434343', '#1f1f1f']; + let greyConstant = ['#fafafb', '#e6ebf1']; + + if (mode === ThemeMode.DARK) { + greyPrimary = ['#000000', '#141414', '#1e1e1e', '#595959', '#8c8c8c', '#bfbfbf', '#d9d9d9', '#f0f0f0', '#f5f5f5', '#fafafa', '#ffffff']; + // greyPrimary.reverse(); + greyAscent = ['#fafafa', '#bfbfbf', '#434343', '#1f1f1f']; + greyConstant = ['#121212', '#d3d8db']; + } + colors.grey = [...greyPrimary, ...greyAscent, ...greyConstant]; + + const paletteColor = ThemeOption(colors, presetColor, mode); + + return createTheme({ + palette: { + mode, + common: { + black: '#000', + white: '#fff' + }, + ...paletteColor, + text: { + primary: mode === ThemeMode.DARK ? alpha(paletteColor.grey[900], 0.87) : paletteColor.grey[700], + secondary: mode === ThemeMode.DARK ? alpha(paletteColor.grey[900], 0.45) : paletteColor.grey[500], + disabled: mode === ThemeMode.DARK ? alpha(paletteColor.grey[900], 0.1) : paletteColor.grey[400] + }, + action: { + disabled: paletteColor.grey[300] + }, + divider: mode === ThemeMode.DARK ? alpha(paletteColor.grey[900], 0.05) : paletteColor.grey[200], + background: { + paper: mode === ThemeMode.DARK ? paletteColor.grey[100] : paletteColor.grey[0], + default: paletteColor.grey.A50 + } + } + }); +}; + +export default Palette; diff --git a/src/themes/shadows.js b/src/themes/shadows.js new file mode 100644 index 0000000..9e17860 --- /dev/null +++ b/src/themes/shadows.js @@ -0,0 +1,33 @@ +// material-ui +import { alpha } from '@mui/material/styles'; + +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| DEFAULT THEME - CUSTOM SHADOWS ||============================== // + +const CustomShadows = (theme) => ({ + // z1: `0px 2px 8px rgba(0, 0, 0, 0.15)`, + button: theme.palette.mode === ThemeMode.DARK ? `0 2px 0 rgb(0 0 0 / 5%)` : `0 2px #0000000b`, + text: `0 -1px 0 rgb(0 0 0 / 12%)`, + z1: + theme.palette.mode === ThemeMode.DARK + ? `0px 1px 1px rgb(0 0 0 / 14%), 0px 2px 1px rgb(0 0 0 / 12%), 0px 1px 3px rgb(0 0 0 / 20%)` + : `0px 1px 4px ${alpha(theme.palette.grey[900], 0.08)}`, + primary: `0 0 0 2px ${alpha(theme.palette.primary.main, 0.2)}`, + secondary: `0 0 0 2px ${alpha(theme.palette.secondary.main, 0.2)}`, + error: `0 0 0 2px ${alpha(theme.palette.error.main, 0.2)}`, + warning: `0 0 0 2px ${alpha(theme.palette.warning.main, 0.2)}`, + info: `0 0 0 2px ${alpha(theme.palette.info.main, 0.2)}`, + success: `0 0 0 2px ${alpha(theme.palette.success.main, 0.2)}`, + grey: `0 0 0 2px ${alpha(theme.palette.grey[500], 0.2)}`, + primaryButton: `0 14px 12px ${alpha(theme.palette.primary.main, 0.2)}`, + secondaryButton: `0 14px 12px ${alpha(theme.palette.secondary.main, 0.2)}`, + errorButton: `0 14px 12px ${alpha(theme.palette.error.main, 0.2)}`, + warningButton: `0 14px 12px ${alpha(theme.palette.warning.main, 0.2)}`, + infoButton: `0 14px 12px ${alpha(theme.palette.info.main, 0.2)}`, + successButton: `0 14px 12px ${alpha(theme.palette.success.main, 0.2)}`, + greyButton: `0 14px 12px ${alpha(theme.palette.grey[500], 0.2)}` +}); + +export default CustomShadows; diff --git a/src/themes/theme/default.js b/src/themes/theme/default.js new file mode 100644 index 0000000..102f038 --- /dev/null +++ b/src/themes/theme/default.js @@ -0,0 +1,124 @@ +import PropTypes from 'prop-types'; + +// ==============================|| PRESET THEME - DEFAULT ||============================== // + +const Default = (colors) => { + const { blue, red, gold, cyan, green, grey, purple } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + return { + // primary: { + // lighter: blue[0], + // 100: blue[1], + // 200: blue[2], + // light: blue[3], + // 400: blue[4], + // main: blue[5], + // dark: blue[6], + // 700: blue[7], + // darker: blue[8], + // 900: blue[9], + // contrastText + // }, + primary: { + lighter: '#E8D9EF', + 100: '#CBA7DA', + 200: '#AE76C4', + light: '#9255AB', + 400: '#9255AB', + main: '#662582', + dark: '#4D1C61', + 700: '#3A1549', + darker: '#260E30', + 900: '#17081D', + contrastText: '#FFFFFF' + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: red[0], + light: red[2], + main: red[4], + dark: red[7], + darker: red[9], + contrastText + }, + warning: { + lighter: gold[0], + light: gold[3], + main: gold[5], + dark: gold[7], + darker: gold[9], + contrastText: greyColors[100] + }, + info: { + lighter: cyan[0], + light: cyan[3], + main: cyan[5], + dark: cyan[7], + darker: cyan[9], + contrastText + }, + success: { + lighter: green[0], + 100: green[1], + light: green[3], + 400: green[4], + main: green[5], + 600: green[6], + dark: green[7], + darker: green[9], + contrastText + }, + chip: { + accept: '#5d4037', + arrive: '#009688', + active: '#880e4f' + }, + grey: greyColors, + bg: { + main: '#E0E0E0', + light: '#fafafb', + line: '#E6EBF1' + } + }; +}; + +Default.propTypes = { + colors: PropTypes.object +}; + +export default Default; diff --git a/src/themes/theme/index.js b/src/themes/theme/index.js new file mode 100644 index 0000000..961f509 --- /dev/null +++ b/src/themes/theme/index.js @@ -0,0 +1,45 @@ +import PropTypes from 'prop-types'; + +// project import +import Default from './default'; +import Theme1 from './theme1'; +import Theme2 from './theme2'; +import Theme3 from './theme3'; +import Theme4 from './theme4'; +import Theme5 from './theme5'; +import Theme6 from './theme6'; +import Theme7 from './theme7'; +import Theme8 from './theme8'; + +// ==============================|| PRESET THEME - THEME SELECTOR ||============================== // + +const Theme = (colors, presetColor, mode) => { + switch (presetColor) { + case 'theme1': + return Theme1(colors, mode); + case 'theme2': + return Theme2(colors, mode); + case 'theme3': + return Theme3(colors, mode); + case 'theme4': + return Theme4(colors, mode); + case 'theme5': + return Theme5(colors, mode); + case 'theme6': + return Theme6(colors, mode); + case 'theme7': + return Theme7(colors, mode); + case 'theme8': + return Theme8(colors, mode); + default: + return Default(colors); + // return Theme8(colors, mode); + } +}; + +Theme.propTypes = { + colors: PropTypes.object, + presetColor: PropTypes.any +}; + +export default Theme; diff --git a/src/themes/theme/theme1.js b/src/themes/theme/theme1.js new file mode 100644 index 0000000..b8d20d0 --- /dev/null +++ b/src/themes/theme/theme1.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Eva Design ||============================== // + +const Theme1 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#D6E4FF', '#D6E4FF', '#ADC8FF', '#84A9FF', '#6690FF', '#3366FF', '#254EDB', '#1939B7', '#102693', '#102693']; + let errorColors = ['#FFE7D3', '#FF805D', '#FF4528', '#DB271D', '#930C1A']; + let warningColors = ['#FFF6D0', '#FFCF4E', '#FFB814', '#DB970E', '#935B06']; + let infoColors = ['#DCF0FF', '#7EB9FF', '#549BFF', '#3D78DB', '#1A3D93']; + let successColors = ['#EAFCD4', '#8AE65B', '#58D62A', '#3DB81E', '#137C0D']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1c2134', '#1f294d', '#243462', '#273e83', '#2c4db0', '#305bdd', '#567fe9', '#80a4f4', '#a9c5f8', '#d2e2fb']; + errorColors = ['#341d1b', '#b03725', '#dd3f27', '#e9664d', '#fbd6c9']; + warningColors = ['#342a1a', '#83631a', '#dda116', '#e9ba3a', '#fbefb5']; + infoColors = ['#202734', '#416fb0', '#4c88dd', '#74a8e9', '#ecf4fb']; + successColors = ['#1f2e1c', '#449626', '#4fba28', '#74cf4d', '#e3fbd2']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme1; diff --git a/src/themes/theme/theme2.js b/src/themes/theme/theme2.js new file mode 100644 index 0000000..201fa37 --- /dev/null +++ b/src/themes/theme/theme2.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - DEFAULT ||============================== // + +const Theme2 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#EEEDFC', '#D5D1F8', '#B9B2F3', '#9C93EE', '#877CEA', '#7265E6', '#6A5DE3', '#5F53DF', '#5549DB', '#4237D5']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#222130', '#2b2946', '#37335a', '#443e78', '#554ca0', '#655ac8', '#9186dd', '#5F53DF', '#c3baf4', '#efecfb']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme2; diff --git a/src/themes/theme/theme3.js b/src/themes/theme/theme3.js new file mode 100644 index 0000000..a7f1d3d --- /dev/null +++ b/src/themes/theme/theme3.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Dark Green ||============================== // + +const Theme4 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#E6F3EC', '#84c297', '#5eb57d', '#3da866', '#1f9c53', '#068e44', '#006933', '#004222', '#001c0f', '#000000']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1a231f', '#173123', '#174029', '#13502f', '#0e6737', '#0a7d3e', '#1f8f4e', '#3ba162', '#5cb07a', '#82bf95']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme4; diff --git a/src/themes/theme/theme4.js b/src/themes/theme/theme4.js new file mode 100644 index 0000000..2438641 --- /dev/null +++ b/src/themes/theme/theme4.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Theme4 Blue ||============================== // + +const Theme4 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#f0f6ff', '#edf4ff', '#bed3f7', '#8faeeb', '#6488de', '#3c64d0', '#2947ab', '#192f85', '#0d1b5e', '#070e38']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1d212d', '#212841', '#273353', '#2c3e6e', '#324c92', '#385ab5', '#5d7dcb', '#89a7e1', '#b9cef0', '#e9f0fb']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme4; diff --git a/src/themes/theme/theme5.js b/src/themes/theme/theme5.js new file mode 100644 index 0000000..8a666ef --- /dev/null +++ b/src/themes/theme/theme5.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Theme4 Blue ||============================== // + +const Theme5 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#fff4e6', '#ffdfb8', '#ffc98f', '#ffb066', '#ff943d', '#f27013', '#cc5206', '#a63a00', '#802800', '#591900']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#32221a', '#4a2b18', '#5e371b', '#7d4319', '#a85317', '#d26415', '#e9883a', '#f4a962', '#f8c48c', '#fbdbb5']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme5; diff --git a/src/themes/theme/theme6.js b/src/themes/theme/theme6.js new file mode 100644 index 0000000..d465b3a --- /dev/null +++ b/src/themes/theme/theme6.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Theme4 Blue ||============================== // + +const Theme6 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#e1f0ef', '#c8e3e2', '#9ad6d6', '#71c6c9', '#4bb5bd', '#2aa1af', '#1a7b8a', '#0e5563', '#06323d', '#021217']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1c2628', '#1d3539', '#22454a', '#23595f', '#26737c', '#288d99', '#47a6ad', '#6dbec0', '#96d0d0', '#c5dfde']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme6; diff --git a/src/themes/theme/theme7.js b/src/themes/theme/theme7.js new file mode 100644 index 0000000..47fac3a --- /dev/null +++ b/src/themes/theme/theme7.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Theme7 Green ||============================== // + +const Theme7 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#d1e8d99c', '#8cdba9', '#63cf8e', '#3ec277', '#1db564', '#00a854', '#008245', '#005c34', '#003620', '#000f0a']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1a2721', '#173728', '#15472e', '#115c36', '#0b7841', '#05934c', '#1da65d', '#3cba73', '#61ca8b', '#8ad7a6']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme7; diff --git a/src/themes/theme/theme8.js b/src/themes/theme/theme8.js new file mode 100644 index 0000000..3a4d627 --- /dev/null +++ b/src/themes/theme/theme8.js @@ -0,0 +1,109 @@ +// project-imports +import { ThemeMode } from 'config'; + +// ==============================|| PRESET THEME - Theme8 ||============================== // + +const Theme8 = (colors, mode) => { + const { grey } = colors; + const greyColors = { + 0: grey[0], + 50: grey[1], + 100: grey[2], + 200: grey[3], + 300: grey[4], + 400: grey[5], + 500: grey[6], + 600: grey[7], + 700: grey[8], + 800: grey[9], + 900: grey[10], + A50: grey[15], + A100: grey[11], + A200: grey[12], + A400: grey[13], + A700: grey[14], + A800: grey[16] + }; + const contrastText = '#fff'; + + let primaryColors = ['#c1d6d066', '#81c9b9', '#5bbda9', '#38b09c', '#1aa391', '#009688', '#007069', '#004a47', '#002424', '#000000']; + let errorColors = ['#FDE8E7', '#F25E52', '#F04134', '#EE3B2F', '#E92A21']; + let warningColors = ['#FFF7E0', '#FFC926', '#FFBF00', '#FFB900', '#FFA900']; + let infoColors = ['#E0F4F5', '#26B0BA', '#00A2AE', '#009AA7', '#008694']; + let successColors = ['#E0F5EA', '#26B56E', '#00A854', '#00A04D', '#008D3A']; + + if (mode === ThemeMode.DARK) { + primaryColors = ['#1a2524', '#173331', '#15423e', '#11544e', '#0b6c63', '#058478', '#1a9686', '#37a996', '#59b8a5', '#7fc6b6']; + errorColors = ['#321d1d', '#7d2e28', '#d13c31', '#e66859', '#f8baaf']; + warningColors = ['#342c1a', '#836611', '#dda705', '#e9bf28', '#f8e577']; + infoColors = ['#1a2628', '#11595f', '#058e98', '#1ea6aa', '#64cfcb']; + successColors = ['#1a2721', '#115c36', '#05934c', '#1da65d', '#61ca8b']; + } + + return { + primary: { + lighter: primaryColors[0], + 100: primaryColors[1], + 200: primaryColors[2], + light: primaryColors[3], + 400: primaryColors[4], + main: primaryColors[5], + dark: primaryColors[6], + 700: primaryColors[7], + darker: primaryColors[8], + 900: primaryColors[9], + contrastText + }, + secondary: { + lighter: greyColors[100], + 100: greyColors[100], + 200: greyColors[200], + light: greyColors[300], + 400: greyColors[400], + main: greyColors[500], + 600: greyColors[600], + dark: greyColors[700], + 800: greyColors[800], + darker: greyColors[900], + A100: greyColors[0], + A200: greyColors.A400, + A300: greyColors.A700, + contrastText: greyColors[0] + }, + error: { + lighter: errorColors[0], + light: errorColors[1], + main: errorColors[2], + dark: errorColors[3], + darker: errorColors[4], + contrastText + }, + warning: { + lighter: warningColors[0], + light: warningColors[1], + main: warningColors[2], + dark: warningColors[3], + darker: warningColors[4], + contrastText: greyColors[100] + }, + info: { + lighter: infoColors[0], + light: infoColors[1], + main: infoColors[2], + dark: infoColors[3], + darker: infoColors[4], + contrastText + }, + success: { + lighter: successColors[0], + light: successColors[1], + main: successColors[2], + dark: successColors[3], + darker: successColors[4], + contrastText + }, + grey: greyColors + }; +}; + +export default Theme8; diff --git a/src/themes/typography.js b/src/themes/typography.js new file mode 100644 index 0000000..d6dd849 --- /dev/null +++ b/src/themes/typography.js @@ -0,0 +1,71 @@ +// ==============================|| DEFAULT THEME - TYPOGRAPHY ||============================== // + +const Typography = (fontFamily) => ({ + htmlFontSize: 16, + fontFamily, + fontWeightLight: 300, + fontWeightRegular: 400, + fontWeightMedium: 500, + fontWeightBold: 600, + h1: { + fontWeight: 600, + fontSize: '2.375rem', + lineHeight: 1.21 + }, + h2: { + fontWeight: 600, + fontSize: '1.875rem', + lineHeight: 1.27 + }, + h3: { + fontWeight: 600, + fontSize: '1.5rem', + lineHeight: 1.33 + }, + h4: { + fontWeight: 600, + fontSize: '1.25rem', + lineHeight: 1.4 + }, + h5: { + fontWeight: 600, + fontSize: '1rem', + lineHeight: 1.5 + }, + h6: { + fontWeight: 400, + fontSize: '0.875rem', + lineHeight: 1.57 + }, + caption: { + fontWeight: 400, + fontSize: '0.75rem', + lineHeight: 1.66 + }, + body1: { + fontSize: '0.875rem', + lineHeight: 1.57 + }, + body2: { + fontSize: '0.75rem', + lineHeight: 1.66 + }, + subtitle1: { + fontSize: '0.875rem', + fontWeight: 600, + lineHeight: 1.57 + }, + subtitle2: { + fontSize: '0.75rem', + fontWeight: 500, + lineHeight: 1.66 + }, + overline: { + lineHeight: 1.66 + }, + button: { + textTransform: 'capitalize' + } +}); + +export default Typography; diff --git a/src/utils/axios.js b/src/utils/axios.js new file mode 100644 index 0000000..6ee9920 --- /dev/null +++ b/src/utils/axios.js @@ -0,0 +1,17 @@ +import axios from 'axios'; + +const axiosServices = axios.create({ baseURL: process.env.REACT_APP_API_URL || 'http://localhost:3010/' }); + +// ==============================|| AXIOS - FOR MOCK SERVICES ||============================== // + +axiosServices.interceptors.response.use( + (response) => response, + (error) => { + if (error.response.status === 401 && !window.location.href.includes('/login')) { + window.location = '/login'; + } + return Promise.reject((error.response && error.response.data) || 'Wrong Services'); + } +); + +export default axiosServices; diff --git a/src/utils/getColors.js b/src/utils/getColors.js new file mode 100644 index 0000000..8f723fb --- /dev/null +++ b/src/utils/getColors.js @@ -0,0 +1,20 @@ +// ==============================|| CUSTOM FUNCTION - COLORS ||============================== // + +const getColors = (theme, color) => { + switch (color) { + case 'secondary': + return theme.palette.secondary; + case 'error': + return theme.palette.error; + case 'warning': + return theme.palette.warning; + case 'info': + return theme.palette.info; + case 'success': + return theme.palette.success; + default: + return theme.palette.primary; + } +}; + +export default getColors; diff --git a/src/utils/getShadow.js b/src/utils/getShadow.js new file mode 100644 index 0000000..5f53237 --- /dev/null +++ b/src/utils/getShadow.js @@ -0,0 +1,39 @@ +import PropTypes from 'prop-types'; + +// ==============================|| CUSTOM FUNCTION - COLOR SHADOWS ||============================== // + +const getShadow = (theme, shadow) => { + switch (shadow) { + case 'secondary': + return theme.customShadows.secondary; + case 'error': + return theme.customShadows.error; + case 'warning': + return theme.customShadows.warning; + case 'info': + return theme.customShadows.info; + case 'success': + return theme.customShadows.success; + case 'primaryButton': + return theme.customShadows.primaryButton; + case 'secondaryButton': + return theme.customShadows.secondaryButton; + case 'errorButton': + return theme.customShadows.errorButton; + case 'warningButton': + return theme.customShadows.warningButton; + case 'infoButton': + return theme.customShadows.infoButton; + case 'successButton': + return theme.customShadows.successButton; + default: + return theme.customShadows.primary; + } +}; + +getShadow.propTypes = { + theme: PropTypes.object, + shadow: PropTypes.string +}; + +export default getShadow; diff --git a/src/utils/locales/en.json b/src/utils/locales/en.json new file mode 100644 index 0000000..23eb7c0 --- /dev/null +++ b/src/utils/locales/en.json @@ -0,0 +1,20 @@ +{ + "sample-page": "Sample Page", + "documentation": "Documentation", + "others": "Others", + "roadmap": "Roadmap", + "MENU": "Menu", + "orders": "Orders", + "orderspreview": "Orders Preview", + "deliveries": "Deliveries", + "tenants": "Tenants", + "pricing": "Pricing", + "customers": "Customers", + "riders": "Riders", + "reports": "Reports", + "ordersummary": "Orders Summary", + "ordersdetails": "Orders Details", + "riderssummary": "Riders Summary", + "riderslogs": "Riders Logs", + "invoice": "Invoice" +} diff --git a/src/utils/password-strength.js b/src/utils/password-strength.js new file mode 100644 index 0000000..2f510ae --- /dev/null +++ b/src/utils/password-strength.js @@ -0,0 +1,33 @@ +/** + * Password validator for login pages + */ + +// has number +const hasNumber = (number) => new RegExp(/[0-9]/).test(number); + +// has mix of small and capitals +const hasMixed = (number) => new RegExp(/[a-z]/).test(number) && new RegExp(/[A-Z]/).test(number); + +// has special chars +const hasSpecial = (number) => new RegExp(/[!#@$%^&*)(+=._-]/).test(number); + +// set color based on password strength +export const strengthColor = (count) => { + if (count < 2) return { label: 'Poor', color: 'error.main' }; + if (count < 3) return { label: 'Weak', color: 'warning.main' }; + if (count < 4) return { label: 'Normal', color: 'warning.dark' }; + if (count < 5) return { label: 'Good', color: 'success.main' }; + if (count < 6) return { label: 'Strong', color: 'success.dark' }; + return { label: 'Poor', color: 'error.main' }; +}; + +// password strength indicator +export const strengthIndicator = (number) => { + let strengths = 0; + if (number.length > 5) strengths += 1; + if (number.length > 7) strengths += 1; + if (hasNumber(number)) strengths += 1; + if (hasSpecial(number)) strengths += 1; + if (hasMixed(number)) strengths += 1; + return strengths; +}; diff --git a/src/utils/password-validation.js b/src/utils/password-validation.js new file mode 100644 index 0000000..885562d --- /dev/null +++ b/src/utils/password-validation.js @@ -0,0 +1,21 @@ +function isNumber(value) { + return new RegExp('^(?=.*[0-9]).+$').test(value); +} + +function isLowercaseChar(value) { + return new RegExp('^(?=.*[a-z]).+$').test(value); +} + +function isUppercaseChar(value) { + return new RegExp('^(?=.*[A-Z]).+$').test(value); +} + +function isSpecialChar(value) { + return new RegExp('^(?=.*[-+_!@#$%^&*.,?]).+$').test(value); +} + +function minLength(value) { + return value.length > 7; +} + +export { isNumber, isLowercaseChar, isUppercaseChar, isSpecialChar, minLength }; diff --git a/src/utils/route-guard/AuthGuard.js b/src/utils/route-guard/AuthGuard.js new file mode 100644 index 0000000..cf7ceff --- /dev/null +++ b/src/utils/route-guard/AuthGuard.js @@ -0,0 +1,34 @@ +import PropTypes from 'prop-types'; +import { useEffect } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +// project import +import useAuth from 'hooks/useAuth'; + +// ==============================|| AUTH GUARD ||============================== // + +const AuthGuard = ({ children }) => { + const { isLoggedIn } = useAuth(); + const navigate = useNavigate(); + const location = useLocation(); + + useEffect(() => { + if (!isLoggedIn) { + navigate('login', { + state: { + from: location.pathname + }, + replace: true + }); + navigate('login', { replace: true }); + } + }, [isLoggedIn, navigate, location]); + + return children; +}; + +AuthGuard.propTypes = { + children: PropTypes.node +}; + +export default AuthGuard; diff --git a/src/utils/route-guard/GuestGuard.js b/src/utils/route-guard/GuestGuard.js new file mode 100644 index 0000000..5b9ea6b --- /dev/null +++ b/src/utils/route-guard/GuestGuard.js @@ -0,0 +1,34 @@ +import PropTypes from 'prop-types'; +import { useEffect } from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +// project import +import { APP_DEFAULT_PATH } from 'config'; +import useAuth from 'hooks/useAuth'; + +// ==============================|| GUEST GUARD ||============================== // + +const GuestGuard = ({ children }) => { + const { isLoggedIn } = useAuth(); + const navigate = useNavigate(); + const location = useLocation(); + + useEffect(() => { + if (isLoggedIn) { + navigate(location?.state?.from ? location?.state?.from : APP_DEFAULT_PATH, { + state: { + from: '' + }, + replace: true + }); + } + }, [isLoggedIn, navigate, location]); + + return children; +}; + +GuestGuard.propTypes = { + children: PropTypes.node +}; + +export default GuestGuard; diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..47d7a71 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,12790 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + +"@ampproject/remapping@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@ant-design/colors@^7.0.0", "@ant-design/colors@^7.2.0": + version "7.2.0" + resolved "https://registry.npmjs.org/@ant-design/colors/-/colors-7.2.0.tgz" + integrity sha512-bjTObSnZ9C/O8MB/B4OUtd/q9COomuJAR2SYfhxLyHvCKn4EKwCN3e+fWGMo7H5InAyV0wL17jdE9ALrdOW/6A== + dependencies: + "@ant-design/fast-color" "^2.0.6" + +"@ant-design/cssinjs-utils@^1.1.3": + version "1.1.3" + resolved "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.1.3.tgz" + integrity sha512-nOoQMLW1l+xR1Co8NFVYiP8pZp3VjIIzqV6D6ShYF2ljtdwWJn5WSsH+7kvCktXL/yhEtWURKOfH5Xz/gzlwsg== + dependencies: + "@ant-design/cssinjs" "^1.21.0" + "@babel/runtime" "^7.23.2" + rc-util "^5.38.0" + +"@ant-design/cssinjs@^1.21.0", "@ant-design/cssinjs@^1.23.0": + version "1.23.0" + resolved "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.23.0.tgz" + integrity sha512-7GAg9bD/iC9ikWatU9ym+P9ugJhi/WbsTWzcKN6T4gU0aehsprtke1UAaaSxxkjjmkJb3llet/rbUSLPgwlY4w== + dependencies: + "@babel/runtime" "^7.11.1" + "@emotion/hash" "^0.8.0" + "@emotion/unitless" "^0.7.5" + classnames "^2.3.1" + csstype "^3.1.3" + rc-util "^5.35.0" + stylis "^4.3.4" + +"@ant-design/fast-color@^2.0.6": + version "2.0.6" + resolved "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz" + integrity sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA== + dependencies: + "@babel/runtime" "^7.24.7" + +"@ant-design/icons-svg@^4.4.0": + version "4.4.2" + resolved "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz" + integrity sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA== + +"@ant-design/icons@^5.0.1", "@ant-design/icons@^5.6.1": + version "5.6.1" + resolved "https://registry.npmjs.org/@ant-design/icons/-/icons-5.6.1.tgz" + integrity sha512-0/xS39c91WjPAZOWsvi1//zjx6kAp4kxWwctR6kuU6p133w8RU0D2dSCvZC19uQyharg/sAvYxGYWl01BbZZfg== + dependencies: + "@ant-design/colors" "^7.0.0" + "@ant-design/icons-svg" "^4.4.0" + "@babel/runtime" "^7.24.8" + classnames "^2.2.6" + rc-util "^5.31.1" + +"@ant-design/react-slick@~1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz" + integrity sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA== + dependencies: + "@babel/runtime" "^7.10.4" + classnames "^2.2.5" + json2mq "^0.2.0" + resize-observer-polyfill "^1.5.1" + throttle-debounce "^5.0.0" + +"@apideck/better-ajv-errors@^0.3.1": + 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" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.8.3": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz" + integrity sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw== + +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.1.0", "@babel/core@^7.11.1", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.16.0", "@babel/core@^7.21.3", "@babel/core@^7.21.4", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.4.0-0", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@>=7.11.0": + version "7.21.4" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz" + integrity sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.21.4" + "@babel/generator" "^7.21.4" + "@babel/helper-compilation-targets" "^7.21.4" + "@babel/helper-module-transforms" "^7.21.2" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.4" + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.4" + "@babel/types" "^7.21.4" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.0" + +"@babel/eslint-parser@^7.16.3", "@babel/eslint-parser@^7.21.3": + version "7.21.3" + resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz" + integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.0" + +"@babel/generator@^7.21.4", "@babel/generator@^7.28.0", "@babel/generator@^7.7.2": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz" + integrity sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg== + dependencies: + "@babel/parser" "^7.28.0" + "@babel/types" "^7.28.0" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== + dependencies: + "@babel/types" "^7.27.3" + +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.21.4", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.17.9", "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0", "@babel/helper-create-class-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz" + integrity sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.27.1" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz" + integrity sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + regexpu-core "^6.2.0" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.3.1", "@babel/helper-define-polyfill-provider@^0.3.2", "@babel/helper-define-polyfill-provider@^0.3.3": + version "0.3.3" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz" + integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww== + dependencies: + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-plugin-utils" "^7.16.7" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-define-polyfill-provider@^0.6.5": + version "0.6.5" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz" + integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== + dependencies: + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + debug "^4.4.1" + lodash.debounce "^4.0.8" + resolve "^1.22.10" + +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-member-expression-to-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz" + integrity sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.21.2", "@babel/helper-module-transforms@^7.27.1": + version "7.27.3" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz" + integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.3" + +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-remap-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz" + integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-wrap-function" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-split-export-declaration@^7.16.7": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/helper-validator-option@^7.21.0", "@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helper-wrap-function@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz" + integrity sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ== + dependencies: + "@babel/template" "^7.27.1" + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== + dependencies: + "@babel/template" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.21.4", "@babel/parser@^7.27.2", "@babel/parser@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz" + integrity sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g== + dependencies: + "@babel/types" "^7.28.0" + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz" + integrity sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz" + integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": + version "7.27.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.27.1.tgz" + integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz" + integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz" + integrity sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-proposal-class-properties@^7.16.0": + 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== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-decorators@^7.16.4": + version "7.17.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.17.9.tgz" + integrity sha512-EfH2LZ/vPa2wuPwJ26j+kYRkaubf89UlwxKXtxqEm57HrgSEYDB8t4swFP+p8LcI9yiP9ZRJJjo/58hS6BnaDA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.17.9" + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/helper-replace-supers" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/plugin-syntax-decorators" "^7.17.0" + charcodes "^0.2.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.16.0": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.16.0": + 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== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-optional-chaining@^7.16.0": + 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== + 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" + +"@babel/plugin-proposal-private-methods@^7.16.0": + 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== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.16.7": + version "7.21.0" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz" + integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + 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== + +"@babel/plugin-syntax-async-generators@^7.8.4": + 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" + +"@babel/plugin-syntax-bigint@^7.8.3": + 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" + +"@babel/plugin-syntax-class-properties@^7.12.13": + 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" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + 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" + +"@babel/plugin-syntax-decorators@^7.17.0": + version "7.17.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.0.tgz" + integrity sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + +"@babel/plugin-syntax-flow@^7.14.5", "@babel/plugin-syntax-flow@^7.16.7": + version "7.26.0" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz" + integrity sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg== + dependencies: + "@babel/helper-plugin-utils" "^7.25.9" + +"@babel/plugin-syntax-import-assertions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-attributes@^7.24.7", "@babel/plugin-syntax-import-attributes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": + 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" + +"@babel/plugin-syntax-json-strings@^7.8.3": + 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" + +"@babel/plugin-syntax-jsx@^7.21.4", "@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + 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" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + 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" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + 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" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + 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" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + 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" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + 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" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + 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" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + 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" + +"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.21.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz" + integrity sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + 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" + +"@babel/plugin-transform-arrow-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-async-generator-functions@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz" + integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + "@babel/traverse" "^7.28.0" + +"@babel/plugin-transform-async-to-generator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz" + integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-remap-async-to-generator" "^7.27.1" + +"@babel/plugin-transform-block-scoped-functions@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-block-scoping@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.0.tgz" + integrity sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz" + integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-class-static-block@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz" + integrity sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-classes@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.0.tgz" + integrity sha512-IjM1IoJNw72AZFlj33Cu8X0q2XK/6AaVC3jQu+cgQ5lThWD5ajnuUAml80dqRmOhmPkTH8uAwnpMu9Rvj0LTRA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-globals" "^7.28.0" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.28.0" + +"@babel/plugin-transform-computed-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" + +"@babel/plugin-transform-destructuring@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.0.tgz" + integrity sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.0" + +"@babel/plugin-transform-dotall-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz" + integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-keys@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz" + integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-dynamic-import@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz" + integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-explicit-resource-management@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz" + integrity sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" + +"@babel/plugin-transform-exponentiation-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz" + integrity sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-export-namespace-from@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz" + integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-flow-strip-types@^7.16.0": + version "7.16.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.7.tgz" + integrity sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg== + dependencies: + "@babel/helper-plugin-utils" "^7.16.7" + "@babel/plugin-syntax-flow" "^7.16.7" + +"@babel/plugin-transform-for-of@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-function-name@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== + dependencies: + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-json-strings@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz" + integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-logical-assignment-operators@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz" + integrity sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-member-expression-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-amd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz" + integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-commonjs@^7.21.2", "@babel/plugin-transform-modules-commonjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-systemjs@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz" + integrity sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-modules-umd@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz" + integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz" + integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-new-target@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz" + integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz" + integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-numeric-separator@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz" + integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-object-rest-spread@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.0.tgz" + integrity sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA== + dependencies: + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/traverse" "^7.28.0" + +"@babel/plugin-transform-object-super@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + +"@babel/plugin-transform-optional-catch-binding@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz" + integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-optional-chaining@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz" + integrity sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-parameters@^7.27.7": + version "7.27.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-methods@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz" + integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-private-property-in-object@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz" + integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-create-class-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-property-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-constant-elements@^7.12.1", "@babel/plugin-transform-react-constant-elements@^7.21.3": + version "7.21.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.21.3.tgz" + integrity sha512-4DVcFeWe/yDYBLp0kBmOGFJ6N2UYg7coGid1gdxb4co62dy/xISDMaYBXBVXEDhfgMk7qkbcYiGtwd5Q/hwDDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + +"@babel/plugin-transform-react-display-name@^7.16.0", "@babel/plugin-transform-react-display-name@^7.27.1": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz" + integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-jsx-development@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz" + integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.27.1" + +"@babel/plugin-transform-react-jsx@^7.14.9", "@babel/plugin-transform-react-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz" + integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/plugin-transform-react-pure-annotations@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz" + integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regenerator@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.0.tgz" + integrity sha512-LOAozRVbqxEVjSKfhGnuLoE4Kz4Oc5UJzuvFUhSsQzdCdaAQu06mG8zDv2GFSerM62nImUZ7K92vxnQcLSDlCQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-regexp-modifiers@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz" + integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-reserved-words@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz" + integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-runtime@^7.16.4": + version "7.17.10" + resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz" + integrity sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-plugin-utils" "^7.16.7" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.5.0" + babel-plugin-polyfill-regenerator "^0.3.0" + semver "^6.3.0" + +"@babel/plugin-transform-shorthand-properties@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-spread@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-sticky-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz" + integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typeof-symbol@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz" + integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-typescript@^7.21.3": + version "7.21.3" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz" + integrity sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.21.0" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-typescript" "^7.20.0" + +"@babel/plugin-transform-unicode-escapes@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz" + integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-property-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz" + integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz" + integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-unicode-sets-regex@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz" + integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.4", "@babel/preset-env@^7.20.2", "@babel/preset-env@^7.28.0": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.0.tgz" + integrity sha512-VmaxeGOwuDqzLl5JUkIRM1X2Qu2uKGxHEQWh+cvvbl7JuJRgKGJSfsEF/bUaxFhJl/XAyxBe7q7qSuTbKFuCyg== + dependencies: + "@babel/compat-data" "^7.28.0" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.27.1" + "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.27.1" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-import-assertions" "^7.27.1" + "@babel/plugin-syntax-import-attributes" "^7.27.1" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.27.1" + "@babel/plugin-transform-async-generator-functions" "^7.28.0" + "@babel/plugin-transform-async-to-generator" "^7.27.1" + "@babel/plugin-transform-block-scoped-functions" "^7.27.1" + "@babel/plugin-transform-block-scoping" "^7.28.0" + "@babel/plugin-transform-class-properties" "^7.27.1" + "@babel/plugin-transform-class-static-block" "^7.27.1" + "@babel/plugin-transform-classes" "^7.28.0" + "@babel/plugin-transform-computed-properties" "^7.27.1" + "@babel/plugin-transform-destructuring" "^7.28.0" + "@babel/plugin-transform-dotall-regex" "^7.27.1" + "@babel/plugin-transform-duplicate-keys" "^7.27.1" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-dynamic-import" "^7.27.1" + "@babel/plugin-transform-explicit-resource-management" "^7.28.0" + "@babel/plugin-transform-exponentiation-operator" "^7.27.1" + "@babel/plugin-transform-export-namespace-from" "^7.27.1" + "@babel/plugin-transform-for-of" "^7.27.1" + "@babel/plugin-transform-function-name" "^7.27.1" + "@babel/plugin-transform-json-strings" "^7.27.1" + "@babel/plugin-transform-literals" "^7.27.1" + "@babel/plugin-transform-logical-assignment-operators" "^7.27.1" + "@babel/plugin-transform-member-expression-literals" "^7.27.1" + "@babel/plugin-transform-modules-amd" "^7.27.1" + "@babel/plugin-transform-modules-commonjs" "^7.27.1" + "@babel/plugin-transform-modules-systemjs" "^7.27.1" + "@babel/plugin-transform-modules-umd" "^7.27.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" + "@babel/plugin-transform-new-target" "^7.27.1" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" + "@babel/plugin-transform-numeric-separator" "^7.27.1" + "@babel/plugin-transform-object-rest-spread" "^7.28.0" + "@babel/plugin-transform-object-super" "^7.27.1" + "@babel/plugin-transform-optional-catch-binding" "^7.27.1" + "@babel/plugin-transform-optional-chaining" "^7.27.1" + "@babel/plugin-transform-parameters" "^7.27.7" + "@babel/plugin-transform-private-methods" "^7.27.1" + "@babel/plugin-transform-private-property-in-object" "^7.27.1" + "@babel/plugin-transform-property-literals" "^7.27.1" + "@babel/plugin-transform-regenerator" "^7.28.0" + "@babel/plugin-transform-regexp-modifiers" "^7.27.1" + "@babel/plugin-transform-reserved-words" "^7.27.1" + "@babel/plugin-transform-shorthand-properties" "^7.27.1" + "@babel/plugin-transform-spread" "^7.27.1" + "@babel/plugin-transform-sticky-regex" "^7.27.1" + "@babel/plugin-transform-template-literals" "^7.27.1" + "@babel/plugin-transform-typeof-symbol" "^7.27.1" + "@babel/plugin-transform-unicode-escapes" "^7.27.1" + "@babel/plugin-transform-unicode-property-regex" "^7.27.1" + "@babel/plugin-transform-unicode-regex" "^7.27.1" + "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.14" + babel-plugin-polyfill-corejs3 "^0.13.0" + babel-plugin-polyfill-regenerator "^0.6.5" + core-js-compat "^3.43.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + 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" + +"@babel/preset-react@^7.12.5", "@babel/preset-react@^7.16.0", "@babel/preset-react@^7.18.6", "@babel/preset-react@^7.27.1": + version "7.27.1" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz" + integrity sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-validator-option" "^7.27.1" + "@babel/plugin-transform-react-display-name" "^7.27.1" + "@babel/plugin-transform-react-jsx" "^7.27.1" + "@babel/plugin-transform-react-jsx-development" "^7.27.1" + "@babel/plugin-transform-react-pure-annotations" "^7.27.1" + +"@babel/preset-typescript@^7.16.0", "@babel/preset-typescript@^7.21.0": + version "7.21.4" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz" + integrity sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-validator-option" "^7.21.0" + "@babel/plugin-syntax-jsx" "^7.21.4" + "@babel/plugin-transform-modules-commonjs" "^7.21.2" + "@babel/plugin-transform-typescript" "^7.21.3" + +"@babel/runtime@^7.10.1", "@babel/runtime@^7.10.4", "@babel/runtime@^7.11.1", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.16.7", "@babel/runtime@^7.18.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.22.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.6", "@babel/runtime@^7.23.9", "@babel/runtime@^7.24.4", "@babel/runtime@^7.24.6", "@babel/runtime@^7.24.7", "@babel/runtime@^7.24.8", "@babel/runtime@^7.25.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.26.9" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz" + integrity sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.20.7", "@babel/template@^7.27.1", "@babel/template@^7.27.2", "@babel/template@^7.3.3": + version "7.27.2" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.4", "@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.28.0", "@babel/traverse@^7.7.2": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz" + integrity sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.0" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.0" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.0" + debug "^4.3.1" + +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.18.6", "@babel/types@^7.21.0", "@babel/types@^7.21.3", "@babel/types@^7.21.4", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.28.0" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.28.0.tgz" + integrity sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@csstools/normalize.css@*": + version "12.0.0" + resolved "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz" + integrity sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg== + +"@csstools/postcss-cascade-layers@^1.1.1": + 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" + +"@csstools/postcss-color-function@^1.1.1": + 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" + +"@csstools/postcss-font-format-keywords@^1.0.1": + 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" + +"@csstools/postcss-hwb-function@^1.0.2": + 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" + +"@csstools/postcss-ic-unit@^1.0.1": + 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" + +"@csstools/postcss-is-pseudo-class@^2.0.7": + 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" + +"@csstools/postcss-nested-calc@^1.0.0": + 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" + +"@csstools/postcss-normalize-display-values@^1.0.1": + 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" + +"@csstools/postcss-oklab-function@^1.1.1": + 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" + +"@csstools/postcss-progressive-custom-properties@^1.1.0", "@csstools/postcss-progressive-custom-properties@^1.3.0": + 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" + +"@csstools/postcss-stepped-value-functions@^1.0.1": + 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" + +"@csstools/postcss-text-decoration-shorthand@^1.0.0": + 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" + +"@csstools/postcss-trigonometric-functions@^1.0.2": + 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" + +"@csstools/postcss-unset-value@^1.0.2": + 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== + +"@csstools/selector-specificity@^2.0.0", "@csstools/selector-specificity@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz" + integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg== + +"@emotion/babel-plugin@^11.10.6": + version "11.10.6" + resolved "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.6.tgz" + integrity sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ== + dependencies: + "@babel/helper-module-imports" "^7.16.7" + "@babel/runtime" "^7.18.3" + "@emotion/hash" "^0.9.0" + "@emotion/memoize" "^0.8.0" + "@emotion/serialize" "^1.1.1" + 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.1.3" + +"@emotion/cache@^11.10.5", "@emotion/cache@^11.10.7", "@emotion/cache@^11.13.5": + version "11.14.0" + resolved "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz" + integrity sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA== + dependencies: + "@emotion/memoize" "^0.9.0" + "@emotion/sheet" "^1.4.0" + "@emotion/utils" "^1.4.2" + "@emotion/weak-memoize" "^0.4.0" + stylis "4.2.0" + +"@emotion/hash@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz" + integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow== + +"@emotion/hash@^0.9.0", "@emotion/hash@^0.9.2": + version "0.9.2" + resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz" + integrity sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g== + +"@emotion/is-prop-valid@^0.8.2": + version "0.8.8" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" + integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA== + dependencies: + "@emotion/memoize" "0.7.4" + +"@emotion/is-prop-valid@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz" + integrity sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg== + dependencies: + "@emotion/memoize" "^0.8.0" + +"@emotion/memoize@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz" + integrity sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA== + +"@emotion/memoize@^0.9.0": + version "0.9.0" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz" + integrity sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ== + +"@emotion/memoize@0.7.4": + version "0.7.4" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz" + integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw== + +"@emotion/react@^11.0.0-rc.0", "@emotion/react@^11.10.6", "@emotion/react@^11.4.1", "@emotion/react@^11.5.0", "@emotion/react@^11.7.1", "@emotion/react@^11.9.0": + version "11.10.6" + resolved "https://registry.npmjs.org/@emotion/react/-/react-11.10.6.tgz" + integrity sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.6" + "@emotion/cache" "^11.10.5" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + "@emotion/weak-memoize" "^0.3.0" + hoist-non-react-statics "^3.3.1" + +"@emotion/serialize@^1.1.1": + version "1.3.3" + resolved "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz" + integrity sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA== + dependencies: + "@emotion/hash" "^0.9.2" + "@emotion/memoize" "^0.9.0" + "@emotion/unitless" "^0.10.0" + "@emotion/utils" "^1.4.2" + csstype "^3.0.2" + +"@emotion/sheet@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz" + integrity sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg== + +"@emotion/styled@^11.10.6", "@emotion/styled@^11.3.0", "@emotion/styled@^11.6.0", "@emotion/styled@^11.8.1": + version "11.10.6" + resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.6.tgz" + integrity sha512-OXtBzOmDSJo5Q0AFemHCfl+bUueT8BIcPSxu0EGTpGk6DmI5dnhSzQANm1e1ze0YZL7TDyAyy6s/b/zmGOS3Og== + dependencies: + "@babel/runtime" "^7.18.3" + "@emotion/babel-plugin" "^11.10.6" + "@emotion/is-prop-valid" "^1.2.0" + "@emotion/serialize" "^1.1.1" + "@emotion/use-insertion-effect-with-fallbacks" "^1.0.0" + "@emotion/utils" "^1.2.0" + +"@emotion/unitless@^0.10.0": + version "0.10.0" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz" + integrity sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg== + +"@emotion/unitless@^0.7.5": + version "0.7.5" + resolved "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz" + integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== + +"@emotion/use-insertion-effect-with-fallbacks@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz" + integrity sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A== + +"@emotion/utils@^1.2.0", "@emotion/utils@^1.4.2": + version "1.4.2" + resolved "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz" + integrity sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA== + +"@emotion/weak-memoize@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz" + integrity sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg== + +"@emotion/weak-memoize@^0.4.0": + version "0.4.0" + resolved "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz" + integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg== + +"@eslint-community/eslint-utils@^4.2.0": + 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" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.12.1" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint/eslintrc@^2.1.4": + 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" + +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@firebase/analytics-compat@0.2.14": + version "0.2.14" + resolved "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.14.tgz" + integrity sha512-unRVY6SvRqfNFIAA/kwl4vK+lvQAL2HVcgu9zTrUtTyYDmtIt/lOuHJynBMYEgLnKm39YKBDhtqdapP2e++ASw== + dependencies: + "@firebase/analytics" "0.10.8" + "@firebase/analytics-types" "0.8.2" + "@firebase/component" "0.6.9" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/analytics-types@0.8.2": + version "0.8.2" + resolved "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.2.tgz" + integrity sha512-EnzNNLh+9/sJsimsA/FGqzakmrAUKLeJvjRHlg8df1f97NLUlFidk9600y0ZgWOp3CAxn6Hjtk+08tixlUOWyw== + +"@firebase/analytics@0.10.8": + version "0.10.8" + resolved "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.8.tgz" + integrity sha512-CVnHcS4iRJPqtIDc411+UmFldk0ShSK3OB+D0bKD8Ck5Vro6dbK5+APZpkuWpbfdL359DIQUnAaMLE+zs/PVyA== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/installations" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/app-check-compat@0.3.15": + version "0.3.15" + resolved "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.15.tgz" + integrity sha512-zFIvIFFNqDXpOT2huorz9cwf56VT3oJYRFjSFYdSbGYEJYEaXjLJbfC79lx/zjx4Fh+yuN8pry3TtvwaevrGbg== + dependencies: + "@firebase/app-check" "0.8.8" + "@firebase/app-check-types" "0.5.2" + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/app-check-interop-types@0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz" + integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ== + +"@firebase/app-check-types@0.5.2": + version "0.5.2" + resolved "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.2.tgz" + integrity sha512-FSOEzTzL5bLUbD2co3Zut46iyPWML6xc4x+78TeaXMSuJap5QObfb+rVvZJtla3asN4RwU7elaQaduP+HFizDA== + +"@firebase/app-check@0.8.8": + version "0.8.8" + resolved "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.8.tgz" + integrity sha512-O49RGF1xj7k6BuhxGpHmqOW5hqBIAEbt2q6POW0lIywx7emYtzPDeQI+ryQpC4zbKX646SoVZ711TN1DBLNSOQ== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/app-compat@0.2.43", "@firebase/app-compat@0.x": + version "0.2.43" + resolved "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.43.tgz" + integrity sha512-HM96ZyIblXjAC7TzE8wIk2QhHlSvksYkQ4Ukh1GmEenzkucSNUmUX4QvoKrqeWsLEQ8hdcojABeCV8ybVyZmeg== + dependencies: + "@firebase/app" "0.10.13" + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/app-types@0.9.2", "@firebase/app-types@0.x": + version "0.9.2" + resolved "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.2.tgz" + integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ== + +"@firebase/app@0.10.13", "@firebase/app@0.x": + version "0.10.13" + resolved "https://registry.npmjs.org/@firebase/app/-/app-0.10.13.tgz" + integrity sha512-OZiDAEK/lDB6xy/XzYAyJJkaDqmQ+BCtOEPLqFvxWKUz5JbBmej7IiiRHdtiIOD/twW7O5AxVsfaaGA/V1bNsA== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/auth-compat@0.5.14": + version "0.5.14" + resolved "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.14.tgz" + integrity sha512-2eczCSqBl1KUPJacZlFpQayvpilg3dxXLy9cSMTKtQMTQSmondUtPI47P3ikH3bQAXhzKLOE+qVxJ3/IRtu9pw== + dependencies: + "@firebase/auth" "1.7.9" + "@firebase/auth-types" "0.12.2" + "@firebase/component" "0.6.9" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/auth-interop-types@0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz" + integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ== + +"@firebase/auth-types@0.12.2": + version "0.12.2" + resolved "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.2.tgz" + integrity sha512-qsEBaRMoGvHO10unlDJhaKSuPn4pyoTtlQuP1ghZfzB6rNQPuhp/N/DcFZxm9i4v0SogjCbf9reWupwIvfmH6w== + +"@firebase/auth@1.7.9": + version "1.7.9" + resolved "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.9.tgz" + integrity sha512-yLD5095kVgDw965jepMyUrIgDklD6qH/BZNHeKOgvu7pchOKNjVM+zQoOVYJIKWMWOWBq8IRNVU6NXzBbozaJg== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/component@0.6.9": + version "0.6.9" + resolved "https://registry.npmjs.org/@firebase/component/-/component-0.6.9.tgz" + integrity sha512-gm8EUEJE/fEac86AvHn8Z/QW8BvR56TBw3hMW0O838J/1mThYQXAIQBgUv75EqlCZfdawpWLrKt1uXvp9ciK3Q== + dependencies: + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/data-connect@0.1.0": + version "0.1.0" + resolved "https://registry.npmjs.org/@firebase/data-connect/-/data-connect-0.1.0.tgz" + integrity sha512-vSe5s8dY13ilhLnfY0eYRmQsdTbH7PUFZtBbqU6JVX/j8Qp9A6G5gG6//ulbX9/1JFOF1IWNOne9c8S/DOCJaQ== + dependencies: + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/database-compat@1.0.8": + version "1.0.8" + resolved "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.8.tgz" + integrity sha512-OpeWZoPE3sGIRPBKYnW9wLad25RaWbGyk7fFQe4xnJQKRzlynWeFBSRRAoLE2Old01WXwskUiucNqUUVlFsceg== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/database" "1.0.8" + "@firebase/database-types" "1.0.5" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/database-types@1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.5.tgz" + integrity sha512-fTlqCNwFYyq/C6W7AJ5OCuq5CeZuBEsEwptnVxlNPkWCo5cTTyukzAHRSO/jaQcItz33FfYrrFk1SJofcu2AaQ== + dependencies: + "@firebase/app-types" "0.9.2" + "@firebase/util" "1.10.0" + +"@firebase/database@1.0.8": + version "1.0.8" + resolved "https://registry.npmjs.org/@firebase/database/-/database-1.0.8.tgz" + integrity sha512-dzXALZeBI1U5TXt6619cv0+tgEhJiwlUtQ55WNZY7vGAjv7Q1QioV969iYwt1AQQ0ovHnEW0YW9TiBfefLvErg== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + faye-websocket "0.11.4" + tslib "^2.1.0" + +"@firebase/firestore-compat@0.3.38": + version "0.3.38" + resolved "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.38.tgz" + integrity sha512-GoS0bIMMkjpLni6StSwRJarpu2+S5m346Na7gr9YZ/BZ/W3/8iHGNr9PxC+f0rNZXqS4fGRn88pICjrZEgbkqQ== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/firestore" "4.7.3" + "@firebase/firestore-types" "3.0.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/firestore-types@3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.2.tgz" + integrity sha512-wp1A+t5rI2Qc/2q7r2ZpjUXkRVPtGMd6zCLsiWurjsQpqPgFin3AhNibKcIzoF2rnToNa/XYtyWXuifjOOwDgg== + +"@firebase/firestore@4.7.3": + version "4.7.3" + resolved "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.7.3.tgz" + integrity sha512-NwVU+JPZ/3bhvNSJMCSzfcBZZg8SUGyzZ2T0EW3/bkUeefCyzMISSt/TTIfEHc8cdyXGlMqfGe3/62u9s74UEg== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + "@firebase/webchannel-wrapper" "1.0.1" + "@grpc/grpc-js" "~1.9.0" + "@grpc/proto-loader" "^0.7.8" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/functions-compat@0.3.14": + version "0.3.14" + resolved "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.14.tgz" + integrity sha512-dZ0PKOKQFnOlMfcim39XzaXonSuPPAVuzpqA4ONTIdyaJK/OnBaIEVs/+BH4faa1a2tLeR+Jy15PKqDRQoNIJw== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/functions" "0.11.8" + "@firebase/functions-types" "0.6.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/functions-types@0.6.2": + version "0.6.2" + resolved "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.2.tgz" + integrity sha512-0KiJ9lZ28nS2iJJvimpY4nNccV21rkQyor5Iheu/nq8aKXJqtJdeSlZDspjPSBBiHRzo7/GMUttegnsEITqR+w== + +"@firebase/functions@0.11.8": + version "0.11.8" + resolved "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.8.tgz" + integrity sha512-Lo2rTPDn96naFIlSZKVd1yvRRqqqwiJk7cf9TZhUerwnPKgBzXy+aHE22ry+6EjCaQusUoNai6mU6p+G8QZT1g== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.9" + "@firebase/messaging-interop-types" "0.2.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/installations-compat@0.2.9": + version "0.2.9" + resolved "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.9.tgz" + integrity sha512-2lfdc6kPXR7WaL4FCQSQUhXcPbI7ol3wF+vkgtU25r77OxPf8F/VmswQ7sgIkBBWtymn5ZF20TIKtnOj9rjb6w== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/installations" "0.6.9" + "@firebase/installations-types" "0.5.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/installations-types@0.5.2": + version "0.5.2" + resolved "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.2.tgz" + integrity sha512-que84TqGRZJpJKHBlF2pkvc1YcXrtEDOVGiDjovP/a3s6W4nlbohGXEsBJo0JCeeg/UG9A+DEZVDUV9GpklUzA== + +"@firebase/installations@0.6.9": + version "0.6.9" + resolved "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.9.tgz" + integrity sha512-hlT7AwCiKghOX3XizLxXOsTFiFCQnp/oj86zp1UxwDGmyzsyoxtX+UIZyVyH/oBF5+XtblFG9KZzZQ/h+dpy+Q== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/util" "1.10.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/logger@0.4.2": + version "0.4.2" + resolved "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.2.tgz" + integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A== + dependencies: + tslib "^2.1.0" + +"@firebase/messaging-compat@0.2.12": + version "0.2.12" + resolved "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.12.tgz" + integrity sha512-pKsiUVZrbmRgdImYqhBNZlkKJbqjlPkVdQRZGRbkTyX4OSGKR0F/oJeCt1a8jEg5UnBp4fdVwSWSp4DuCovvEQ== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/messaging" "0.12.12" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/messaging-interop-types@0.2.2": + version "0.2.2" + resolved "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.2.tgz" + integrity sha512-l68HXbuD2PPzDUOFb3aG+nZj5KA3INcPwlocwLZOzPp9rFM9yeuI9YLl6DQfguTX5eAGxO0doTR+rDLDvQb5tA== + +"@firebase/messaging@0.12.12": + version "0.12.12" + resolved "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.12.tgz" + integrity sha512-6q0pbzYBJhZEtUoQx7hnPhZvAbuMNuBXKQXOx2YlWhSrlv9N1m0ZzlNpBbu/ItTzrwNKTibdYzUyaaxdWLg+4w== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/installations" "0.6.9" + "@firebase/messaging-interop-types" "0.2.2" + "@firebase/util" "1.10.0" + idb "7.1.1" + tslib "^2.1.0" + +"@firebase/performance-compat@0.2.9": + version "0.2.9" + resolved "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.9.tgz" + integrity sha512-dNl95IUnpsu3fAfYBZDCVhXNkASE0uo4HYaEPd2/PKscfTvsgqFAOxfAXzBEDOnynDWiaGUnb5M1O00JQ+3FXA== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/performance" "0.6.9" + "@firebase/performance-types" "0.2.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/performance-types@0.2.2": + version "0.2.2" + resolved "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.2.tgz" + integrity sha512-gVq0/lAClVH5STrIdKnHnCo2UcPLjJlDUoEB/tB4KM+hAeHUxWKnpT0nemUPvxZ5nbdY/pybeyMe8Cs29gEcHA== + +"@firebase/performance@0.6.9": + version "0.6.9" + resolved "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.9.tgz" + integrity sha512-PnVaak5sqfz5ivhua+HserxTJHtCar/7zM0flCX6NkzBNzJzyzlH4Hs94h2Il0LQB99roBqoE5QT1JqWqcLJHQ== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/installations" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/remote-config-compat@0.2.9": + version "0.2.9" + resolved "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.9.tgz" + integrity sha512-AxzGpWfWFYejH2twxfdOJt5Cfh/ATHONegTd/a0p5flEzsD5JsxXgfkFToop+mypEL3gNwawxrxlZddmDoNxyA== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/remote-config" "0.4.9" + "@firebase/remote-config-types" "0.3.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/remote-config-types@0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.2.tgz" + integrity sha512-0BC4+Ud7y2aPTyhXJTMTFfrGGLqdYXrUB9sJVAB8NiqJswDTc4/2qrE/yfUbnQJhbSi6ZaTTBKyG3n1nplssaA== + +"@firebase/remote-config@0.4.9": + version "0.4.9" + resolved "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.9.tgz" + integrity sha512-EO1NLCWSPMHdDSRGwZ73kxEEcTopAxX1naqLJFNApp4hO8WfKfmEpmjxmP5TrrnypjIf2tUkYaKsfbEA7+AMmA== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/installations" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/storage-compat@0.3.12": + version "0.3.12" + resolved "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.12.tgz" + integrity sha512-hA4VWKyGU5bWOll+uwzzhEMMYGu9PlKQc1w4DWxB3aIErWYzonrZjF0icqNQZbwKNIdh8SHjZlFeB2w6OSsjfg== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/storage" "0.13.2" + "@firebase/storage-types" "0.8.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/storage-types@0.8.2": + version "0.8.2" + resolved "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.2.tgz" + integrity sha512-0vWu99rdey0g53lA7IShoA2Lol1jfnPovzLDUBuon65K7uKG9G+L5uO05brD9pMw+l4HRFw23ah3GwTGpEav6g== + +"@firebase/storage@0.13.2": + version "0.13.2" + resolved "https://registry.npmjs.org/@firebase/storage/-/storage-0.13.2.tgz" + integrity sha512-fxuJnHshbhVwuJ4FuISLu+/76Aby2sh+44ztjF2ppoe0TELIDxPW6/r1KGlWYt//AD0IodDYYA8ZTN89q8YqUw== + dependencies: + "@firebase/component" "0.6.9" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + undici "6.19.7" + +"@firebase/util@1.10.0", "@firebase/util@1.x": + version "1.10.0" + resolved "https://registry.npmjs.org/@firebase/util/-/util-1.10.0.tgz" + integrity sha512-xKtx4A668icQqoANRxyDLBLz51TAbDP9KRfpbKGxiCAW346d0BeJe5vN6/hKxxmWwnZ0mautyv39JxviwwQMOQ== + dependencies: + tslib "^2.1.0" + +"@firebase/vertexai-preview@0.0.4": + version "0.0.4" + resolved "https://registry.npmjs.org/@firebase/vertexai-preview/-/vertexai-preview-0.0.4.tgz" + integrity sha512-EBSqyu9eg8frQlVU9/HjKtHN7odqbh9MtAcVz3WwHj4gLCLOoN9F/o+oxlq3CxvFrd3CNTZwu6d2mZtVlEInng== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/component" "0.6.9" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.10.0" + tslib "^2.1.0" + +"@firebase/webchannel-wrapper@1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-1.0.1.tgz" + integrity sha512-jmEnr/pk0yVkA7mIlHNnxCi+wWzOFUg0WyIotgkKAb2u1J7fAeDBcVNSTjTihbAYNusCLQdW5s9IJ5qwnEufcQ== + +"@floating-ui/core@^1.6.0": + version "1.6.9" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz" + integrity sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw== + dependencies: + "@floating-ui/utils" "^0.2.9" + +"@floating-ui/dom@^1.0.0": + version "1.6.13" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz" + integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w== + dependencies: + "@floating-ui/core" "^1.6.0" + "@floating-ui/utils" "^0.2.9" + +"@floating-ui/react-dom@^2.0.8": + version "2.1.2" + resolved "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz" + integrity sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A== + dependencies: + "@floating-ui/dom" "^1.0.0" + +"@floating-ui/utils@^0.2.9": + version "0.2.9" + resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz" + integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== + +"@formatjs/ecma402-abstract@2.2.4": + version "2.2.4" + resolved "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.2.4.tgz" + integrity sha512-lFyiQDVvSbQOpU+WFd//ILolGj4UgA/qXrKeZxdV14uKiAUiPAtX6XAn7WBCRi7Mx6I7EybM9E5yYn4BIpZWYg== + dependencies: + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" + +"@formatjs/fast-memoize@2.2.3": + version "2.2.3" + resolved "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.3.tgz" + integrity sha512-3jeJ+HyOfu8osl3GNSL4vVHUuWFXR03Iz9jjgI7RwjG6ysu/Ymdr0JRCPHfF5yGbTE6JCrd63EpvX1/WybYRbA== + dependencies: + tslib "2" + +"@formatjs/icu-messageformat-parser@2.9.4": + version "2.9.4" + resolved "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.9.4.tgz" + integrity sha512-Tbvp5a9IWuxUcpWNIW6GlMQYEc4rwNHR259uUFoKWNN1jM9obf9Ul0e+7r7MvFOBNcN+13K7NuKCKqQiAn1QEg== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/icu-skeleton-parser" "1.8.8" + tslib "2" + +"@formatjs/icu-skeleton-parser@1.8.8": + version "1.8.8" + resolved "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.8.tgz" + integrity sha512-vHwK3piXwamFcx5YQdCdJxUQ1WdTl6ANclt5xba5zLGDv5Bsur7qz8AD7BevaKxITwpgDeU0u8My3AIibW9ywA== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + tslib "2" + +"@formatjs/intl-displaynames@6.8.5": + version "6.8.5" + resolved "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.8.5.tgz" + integrity sha512-85b+GdAKCsleS6cqVxf/Aw/uBd+20EM0wDpgaxzHo3RIR3bxF4xCJqH/Grbzx8CXurTgDDZHPdPdwJC+May41w== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" + +"@formatjs/intl-listformat@7.7.5": + version "7.7.5" + resolved "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.7.5.tgz" + integrity sha512-Wzes10SMNeYgnxYiKsda4rnHP3Q3II4XT2tZyOgnH5fWuHDtIkceuWlRQNsvrI3uiwP4hLqp2XdQTCsfkhXulg== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/intl-localematcher" "0.5.8" + tslib "2" + +"@formatjs/intl-localematcher@0.5.8": + version "0.5.8" + resolved "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.8.tgz" + integrity sha512-I+WDNWWJFZie+jkfkiK5Mp4hEDyRSEvmyfYadflOno/mmKJKcB17fEpEH0oJu/OWhhCJ8kJBDz2YMd/6cDl7Mg== + dependencies: + tslib "2" + +"@formatjs/intl@2.10.15": + version "2.10.15" + resolved "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.15.tgz" + integrity sha512-i6+xVqT+6KCz7nBfk4ybMXmbKO36tKvbMKtgFz9KV+8idYFyFbfwKooYk8kGjyA5+T5f1kEPQM5IDLXucTAQ9g== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/icu-messageformat-parser" "2.9.4" + "@formatjs/intl-displaynames" "6.8.5" + "@formatjs/intl-listformat" "7.7.5" + intl-messageformat "10.7.7" + tslib "2" + +"@googlemaps/js-api-loader@1.16.8": + version "1.16.8" + resolved "https://registry.npmjs.org/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz" + integrity sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ== + +"@googlemaps/markerclusterer@2.5.3": + version "2.5.3" + resolved "https://registry.npmjs.org/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz" + integrity sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw== + dependencies: + fast-deep-equal "^3.1.3" + supercluster "^8.0.1" + +"@grpc/grpc-js@~1.9.0": + version "1.9.14" + resolved "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz" + integrity sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw== + dependencies: + "@grpc/proto-loader" "^0.7.8" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.8": + version "0.7.11" + resolved "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.11.tgz" + integrity sha512-amjhSfJ+xYnTP+hncJMmkchoRtjIdi+uO3FaymGSCr07yu5xfpXFEnhZkTU1mj2lPJB3oVToau7j9YkqB+YNdg== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.4" + yargs "^17.7.2" + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.3": + 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== + +"@isaacs/cliui@^8.0.2": + 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" + +"@istanbuljs/load-nyc-config@^1.0.0": + 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" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^27.5.1": + 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" + +"@jest/console@^28.1.3": + 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" + +"@jest/core@^27.5.1": + 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" + +"@jest/environment@^27.5.1": + 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" + +"@jest/fake-timers@^27.5.1": + 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" + +"@jest/globals@^27.5.1": + 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" + +"@jest/reporters@^27.5.1": + 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" + +"@jest/schemas@^28.1.3": + 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" + +"@jest/source-map@^27.5.1": + 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" + +"@jest/test-result@^27.5.1": + 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" + +"@jest/test-result@^28.1.3": + 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" + +"@jest/test-sequencer@^27.5.1": + 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" + +"@jest/transform@^27.5.1": + 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" + +"@jest/types@^27.5.1": + 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" + +"@jest/types@^28.1.3": + 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" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.12": + version "0.3.12" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz" + integrity sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.8" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz" + integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1", "@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + 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" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.4" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz" + integrity sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.29" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz" + integrity sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@leichtgewicht/ip-codec@^2.0.1": + version "2.0.4" + resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz" + integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== + +"@mui/base@^5.0.0-alpha.126", "@mui/base@^5.0.0-beta.22": + version "5.0.0-dev.20240529-082515-213b5e33ab" + resolved "https://registry.npmjs.org/@mui/base/-/base-5.0.0-dev.20240529-082515-213b5e33ab.tgz" + integrity sha512-3ic6fc6BHstgM+MGqJEVx3zt9g5THxVXm3VVFUfdeplPqAWWgW2QoKfZDLT10s+pi+MAkpgEBP0kgRidf81Rsw== + dependencies: + "@babel/runtime" "^7.24.6" + "@floating-ui/react-dom" "^2.0.8" + "@mui/types" "^7.2.14-dev.20240529-082515-213b5e33ab" + "@mui/utils" "^6.0.0-dev.20240529-082515-213b5e33ab" + "@popperjs/core" "^2.11.8" + clsx "^2.1.1" + prop-types "^15.8.1" + +"@mui/base@5.0.0-beta.40-0": + version "5.0.0-beta.40-0" + resolved "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40-0.tgz" + integrity sha512-hG3atoDUxlvEy+0mqdMpWd04wca8HKr2IHjW/fAjlkCHQolSLazhZM46vnHjOf15M4ESu25mV/3PgjczyjVM4w== + dependencies: + "@babel/runtime" "^7.23.9" + "@floating-ui/react-dom" "^2.0.8" + "@mui/types" "^7.2.15" + "@mui/utils" "^5.16.12" + "@popperjs/core" "^2.11.8" + clsx "^2.1.0" + prop-types "^15.8.1" + +"@mui/core-downloads-tracker@^5.16.14": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.14.tgz" + integrity sha512-sbjXW+BBSvmzn61XyTMun899E7nGPTXwqD9drm1jBUAvWEhJpPFIRxwQQiATWZnd9rvdxtnhhdsDxEGWI0jxqA== + +"@mui/icons-material@^5.0.4", "@mui/icons-material@^5.14.19": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.14.tgz" + integrity sha512-heL4S+EawrP61xMXBm59QH6HODsu0gxtZi5JtnXF2r+rghzyU/3Uftlt1ij8rmJh+cFdKTQug1L9KkZB5JgpMQ== + dependencies: + "@babel/runtime" "^7.23.9" + +"@mui/lab@^5.0.0-alpha.127": + version "5.0.0-alpha.175" + resolved "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.175.tgz" + integrity sha512-AvM0Nvnnj7vHc9+pkkQkoE1i+dEbr6gsMdnSfy7X4w3Ljgcj1yrjZhIt3jGTCLzyKVLa6uve5eLluOcGkvMqUA== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/base" "5.0.0-beta.40-0" + "@mui/system" "^5.16.12" + "@mui/types" "^7.2.15" + "@mui/utils" "^5.16.12" + clsx "^2.1.0" + prop-types "^15.8.1" + +"@mui/material@^5.0.0", "@mui/material@^5.12.1", "@mui/material@^5.2.6", "@mui/material@^5.8.6", "@mui/material@>=5.15.0": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/material/-/material-5.16.14.tgz" + integrity sha512-eSXQVCMKU2xc7EcTxe/X/rC9QsV2jUe8eLM3MUCPYbo6V52eCE436akRIvELq/AqZpxx2bwkq7HC0cRhLB+yaw== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/core-downloads-tracker" "^5.16.14" + "@mui/system" "^5.16.14" + "@mui/types" "^7.2.15" + "@mui/utils" "^5.16.14" + "@popperjs/core" "^2.11.8" + "@types/react-transition-group" "^4.4.10" + clsx "^2.1.0" + csstype "^3.1.3" + prop-types "^15.8.1" + react-is "^19.0.0" + react-transition-group "^4.4.5" + +"@mui/private-theming@^5.16.14": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.14.tgz" + integrity sha512-12t7NKzvYi819IO5IapW2BcR33wP/KAVrU8d7gLhGHoAmhDxyXlRoKiRij3TOD8+uzk0B6R9wHUNKi4baJcRNg== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/utils" "^5.16.14" + prop-types "^15.8.1" + +"@mui/styled-engine@^5.16.14": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz" + integrity sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw== + dependencies: + "@babel/runtime" "^7.23.9" + "@emotion/cache" "^11.13.5" + csstype "^3.1.3" + prop-types "^15.8.1" + +"@mui/system@^5.0.6", "@mui/system@^5.16.12", "@mui/system@^5.16.14", "@mui/system@^5.8.0": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/system/-/system-5.16.14.tgz" + integrity sha512-KBxMwCb8mSIABnKvoGbvM33XHyT+sN0BzEBG+rsSc0lLQGzs7127KWkCA6/H8h6LZ00XpBEME5MAj8mZLiQ1tw== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/private-theming" "^5.16.14" + "@mui/styled-engine" "^5.16.14" + "@mui/types" "^7.2.15" + "@mui/utils" "^5.16.14" + clsx "^2.1.0" + csstype "^3.1.3" + prop-types "^15.8.1" + +"@mui/types@^7.2.14-dev.20240529-082515-213b5e33ab", "@mui/types@^7.2.15", "@mui/types@^7.2.21": + version "7.2.21" + resolved "https://registry.npmjs.org/@mui/types/-/types-7.2.21.tgz" + integrity sha512-6HstngiUxNqLU+/DPqlUJDIPbzUBxIVHb1MmXP0eTWDIROiCR2viugXpEif0PPe2mLqqakPzzRClWAnK+8UJww== + +"@mui/utils@^5.14.16": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz" + integrity sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/types" "^7.2.15" + "@types/prop-types" "^15.7.12" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.0.0" + +"@mui/utils@^5.16.12": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz" + integrity sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/types" "^7.2.15" + "@types/prop-types" "^15.7.12" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.0.0" + +"@mui/utils@^5.16.14": + version "5.16.14" + resolved "https://registry.npmjs.org/@mui/utils/-/utils-5.16.14.tgz" + integrity sha512-wn1QZkRzSmeXD1IguBVvJJHV3s6rxJrfb6YuC9Kk6Noh9f8Fb54nUs5JRkKm+BOerRhj5fLg05Dhx/H3Ofb8Mg== + dependencies: + "@babel/runtime" "^7.23.9" + "@mui/types" "^7.2.15" + "@types/prop-types" "^15.7.12" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.0.0" + +"@mui/utils@^6.0.0-dev.20240529-082515-213b5e33ab": + version "6.4.3" + resolved "https://registry.npmjs.org/@mui/utils/-/utils-6.4.3.tgz" + integrity sha512-jxHRHh3BqVXE9ABxDm+Tc3wlBooYz/4XPa0+4AI+iF38rV1/+btJmSUgG4shDtSWVs/I97aDn5jBCt6SF2Uq2A== + dependencies: + "@babel/runtime" "^7.26.0" + "@mui/types" "^7.2.21" + "@types/prop-types" "^15.7.14" + clsx "^2.1.1" + prop-types "^15.8.1" + react-is "^19.0.0" + +"@mui/x-date-pickers@^6.18.2": + version "6.20.2" + resolved "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.20.2.tgz" + integrity sha512-x1jLg8R+WhvkmUETRfX2wC+xJreMii78EXKLl6r3G+ggcAZlPyt0myID1Amf6hvJb9CtR7CgUo8BwR+1Vx9Ggw== + dependencies: + "@babel/runtime" "^7.23.2" + "@mui/base" "^5.0.0-beta.22" + "@mui/utils" "^5.14.16" + "@types/react-transition-group" "^4.4.8" + clsx "^2.0.0" + prop-types "^15.8.1" + react-transition-group "^4.4.5" + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + 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" + +"@nodelib/fs.scandir@2.1.5": + 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" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + 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" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pmmmwh/react-refresh-webpack-plugin@^0.5.3": + version "0.5.8" + resolved "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.8.tgz" + integrity sha512-wxXRwf+IQ6zvHSJZ+5T2RQNEsq+kx4jKRXfFvdt3nBIUzJUAvXEFsUeoaohDe/Kr84MTjGwcuIUPNcstNJORsA== + 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.0" + schema-utils "^3.0.0" + source-map "^0.7.3" + +"@popperjs/core@^2.11.8": + version "2.11.8" + resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@rc-component/async-validator@^5.0.3": + version "5.0.4" + resolved "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz" + integrity sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg== + dependencies: + "@babel/runtime" "^7.24.4" + +"@rc-component/color-picker@~2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz" + integrity sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q== + dependencies: + "@ant-design/fast-color" "^2.0.6" + "@babel/runtime" "^7.23.6" + classnames "^2.2.6" + rc-util "^5.38.1" + +"@rc-component/context@^1.4.0": + version "1.4.0" + resolved "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz" + integrity sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w== + dependencies: + "@babel/runtime" "^7.10.1" + rc-util "^5.27.0" + +"@rc-component/mini-decimal@^1.0.1": + version "1.1.0" + resolved "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz" + integrity sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ== + dependencies: + "@babel/runtime" "^7.18.0" + +"@rc-component/mutate-observer@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz" + integrity sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/portal@^1.0.0-8", "@rc-component/portal@^1.0.0-9", "@rc-component/portal@^1.0.2", "@rc-component/portal@^1.1.0", "@rc-component/portal@^1.1.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz" + integrity sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg== + dependencies: + "@babel/runtime" "^7.18.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/qrcode@~1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz" + integrity sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg== + dependencies: + "@babel/runtime" "^7.24.7" + classnames "^2.3.2" + rc-util "^5.38.0" + +"@rc-component/tour@~1.15.1": + version "1.15.1" + resolved "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.1.tgz" + integrity sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/portal" "^1.0.0-9" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.2" + rc-util "^5.24.4" + +"@rc-component/trigger@^2.0.0", "@rc-component/trigger@^2.1.1", "@rc-component/trigger@^2.2.6": + version "2.2.6" + resolved "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.6.tgz" + integrity sha512-/9zuTnWwhQ3S3WT1T8BubuFTT46kvnXgaERR9f4BTKyn61/wpf/BvbImzYBubzJibU707FxwbKszLlHjcLiv1Q== + dependencies: + "@babel/runtime" "^7.23.2" + "@rc-component/portal" "^1.1.0" + classnames "^2.3.2" + rc-motion "^2.0.0" + rc-resize-observer "^1.3.1" + rc-util "^5.44.0" + +"@react-dnd/asap@^5.0.1": + version "5.0.2" + resolved "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz" + integrity sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A== + +"@react-dnd/invariant@^4.0.1": + version "4.0.2" + resolved "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz" + integrity sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw== + +"@react-dnd/shallowequal@^4.0.1": + version "4.0.2" + resolved "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz" + integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA== + +"@react-google-maps/api@^2.20.7": + version "2.20.7" + resolved "https://registry.npmjs.org/@react-google-maps/api/-/api-2.20.7.tgz" + integrity sha512-ys7uri3V6gjhYZUI43srHzSKDC6/jiKTwHNlwXFTvjeaJE3M3OaYBt9FZKvJs8qnOhL6i6nD1BKJoi1KrnkCkg== + dependencies: + "@googlemaps/js-api-loader" "1.16.8" + "@googlemaps/markerclusterer" "2.5.3" + "@react-google-maps/infobox" "2.20.0" + "@react-google-maps/marker-clusterer" "2.20.0" + "@types/google.maps" "3.58.1" + invariant "2.2.4" + +"@react-google-maps/infobox@2.20.0": + version "2.20.0" + resolved "https://registry.npmjs.org/@react-google-maps/infobox/-/infobox-2.20.0.tgz" + integrity sha512-03PJHjohhaVLkX6+NHhlr8CIlvUxWaXhryqDjyaZ8iIqqix/nV8GFdz9O3m5OsjtxtNho09F/15j14yV0nuyLQ== + +"@react-google-maps/marker-clusterer@2.20.0": + version "2.20.0" + resolved "https://registry.npmjs.org/@react-google-maps/marker-clusterer/-/marker-clusterer-2.20.0.tgz" + integrity sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw== + +"@react-leaflet/core@^2.1.0": + version "2.1.0" + resolved "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz" + integrity sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg== + +"@reduxjs/toolkit@^1.9.5": + version "1.9.5" + resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.5.tgz" + integrity sha512-Rt97jHmfTeaxL4swLRNPD/zV4OxTes4la07Xc4hetpUW/vc75t5m1ANyxG6ymnEQ2FsLQsoMlYB2vV1sO3m8tQ== + dependencies: + immer "^9.0.21" + redux "^4.2.1" + redux-thunk "^2.4.2" + reselect "^4.1.8" + +"@remix-run/router@1.22.0": + version "1.22.0" + resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.22.0.tgz" + integrity sha512-MBOl8MeOzpK0HQQQshKB7pABXbmyHizdTpqnrIseTbsv0nAepwC2ENZa1aaBExNQcpLoXmWthhak8SABLzvGPw== + +"@rollup/plugin-babel@^5.2.0": + 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" + +"@rollup/plugin-node-resolve@^11.2.1": + 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" + +"@rollup/plugin-replace@^2.4.1": + 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" + +"@rollup/pluginutils@^3.1.0": + 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" + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + +"@rushstack/eslint-patch@^1.1.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz" + integrity sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg== + +"@sinclair/typebox@^0.24.1": + version "0.24.46" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.46.tgz" + integrity sha512-ng4ut1z2MCBhK/NwDVwIQp3pAUOCs/KNaW3cBxdFB2xTDrOuo1xuNmpr/9HHFhxqIvHrs1NTH3KJg6q+JSy1Kw== + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^8.0.1": + 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" + +"@surma/rollup-plugin-off-main-thread@^2.2.3": + 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" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + 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== + +"@svgr/babel-plugin-add-jsx-attribute@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-7.0.0.tgz" + integrity sha512-khWbXesWIP9v8HuKCl2NU2HNAyqpSQ/vkIl36Nbn4HIwEYSRWL0H7Gs6idJdha2DkpFDWlsqMELvoCE8lfFY6Q== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + 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== + +"@svgr/babel-plugin-remove-jsx-attribute@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-7.0.0.tgz" + integrity sha512-iiZaIvb3H/c7d3TH2HBeK91uI2rMhZNwnsIrvd7ZwGLkFw6mmunOCoVnjdYua662MqGFxlN9xTq4fv9hgR4VXQ== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + 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== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-7.0.0.tgz" + integrity sha512-sQQmyo+qegBx8DfFc04PFmIO1FP1MHI1/QEpzcIcclo5OAISsOJPW76ZIs0bDyO/DBSJEa/tDa1W26pVtt0FRw== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + 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== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-7.0.0.tgz" + integrity sha512-i6MaAqIZXDOJeikJuzocByBf8zO+meLwfQ/qMHIjCcvpnfvWf82PFvredEZElErB5glQFJa2KVKk8N2xV6tRRA== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + 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== + +"@svgr/babel-plugin-svg-dynamic-title@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-7.0.0.tgz" + integrity sha512-BoVSh6ge3SLLpKC0pmmN9DFlqgFy4NxNgdZNLPNJWBUU7TQpDWeBuyVuDW88iXydb5Cv0ReC+ffa5h3VrKfk1w== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + 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== + +"@svgr/babel-plugin-svg-em-dimensions@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-7.0.0.tgz" + integrity sha512-tNDcBa+hYn0gO+GkP/AuNKdVtMufVhU9fdzu+vUQsR18RIJ9RWe7h/pSBY338RO08wArntwbDk5WhQBmhf2PaA== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + 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== + +"@svgr/babel-plugin-transform-react-native-svg@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-7.0.0.tgz" + integrity sha512-qw54u8ljCJYL2KtBOjI5z7Nzg8LnSvQOP5hPKj77H4VQL4+HdKbAT5pnkkZLmHKYwzsIHSYKXxHouD8zZamCFQ== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + 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== + +"@svgr/babel-plugin-transform-svg-component@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-7.0.0.tgz" + integrity sha512-CcFECkDj98daOg9jE3Bh3uyD9kzevCAnZ+UtzG6+BQG/jOQ2OA3jHnX6iG4G1MCJkUQFnUvEv33NvQfqrb/F3A== + +"@svgr/babel-preset@^5.5.0": + 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" + +"@svgr/babel-preset@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-7.0.0.tgz" + integrity sha512-EX/NHeFa30j5UjldQGVQikuuQNHUdGmbh9kEpBKofGUtF0GUPJ4T4rhoYiqDAOmBOxojyot36JIFiDUHUK1ilQ== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^7.0.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^7.0.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^7.0.0" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^7.0.0" + "@svgr/babel-plugin-svg-dynamic-title" "^7.0.0" + "@svgr/babel-plugin-svg-em-dimensions" "^7.0.0" + "@svgr/babel-plugin-transform-react-native-svg" "^7.0.0" + "@svgr/babel-plugin-transform-svg-component" "^7.0.0" + +"@svgr/core@*", "@svgr/core@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/core/-/core-7.0.0.tgz" + integrity sha512-ztAoxkaKhRVloa3XydohgQQCb0/8x9T63yXovpmHzKMkHO6pkjdsIAWKOS4bE95P/2quVh1NtjSKlMRNzSBffw== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "^7.0.0" + camelcase "^6.2.0" + cosmiconfig "^8.1.3" + +"@svgr/core@^5.5.0": + 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" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + 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" + +"@svgr/hast-util-to-babel-ast@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-7.0.0.tgz" + integrity sha512-42Ej9sDDEmsJKjrfQ1PHmiDiHagh/u9AHO9QWbeNx4KmD9yS5d1XHmXUNINfUcykAU+4431Cn+k6Vn5mWBYimQ== + dependencies: + "@babel/types" "^7.21.3" + entities "^4.4.0" + +"@svgr/plugin-jsx@^5.5.0": + 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" + +"@svgr/plugin-jsx@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-7.0.0.tgz" + integrity sha512-SWlTpPQmBUtLKxXWgpv8syzqIU8XgFRvyhfkam2So8b3BE0OS0HPe5UfmlJ2KIC+a7dpuuYovPR2WAQuSyMoPw== + dependencies: + "@babel/core" "^7.21.3" + "@svgr/babel-preset" "^7.0.0" + "@svgr/hast-util-to-babel-ast" "^7.0.0" + svg-parser "^2.0.4" + +"@svgr/plugin-svgo@^5.5.0": + 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" + +"@svgr/plugin-svgo@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-7.0.0.tgz" + integrity sha512-263znzlu3qTKj71/ot5G9l2vpL4CW+pr2IexBFIwwB+fRAXE9Xnw2rUFgE6P4+37N9siOuC4lKkgBfUCOLFRKQ== + dependencies: + cosmiconfig "^8.1.3" + deepmerge "^4.3.1" + svgo "^3.0.2" + +"@svgr/webpack@^5.5.0": + 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" + +"@svgr/webpack@^7.0.0": + version "7.0.0" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-7.0.0.tgz" + integrity sha512-XWzIhLTr5WYns/cNFXpXrmFy+LFf2xp60VnNUBZCpM1CGTx47FCDuUj2DQjxirMf2L6CP2jTRELK8ef01TecFQ== + dependencies: + "@babel/core" "^7.21.3" + "@babel/plugin-transform-react-constant-elements" "^7.21.3" + "@babel/preset-env" "^7.20.2" + "@babel/preset-react" "^7.18.6" + "@babel/preset-typescript" "^7.21.0" + "@svgr/core" "^7.0.0" + "@svgr/plugin-jsx" "^7.0.0" + "@svgr/plugin-svgo" "^7.0.0" + +"@tanstack/query-core@5.17.9": + version "5.17.9" + resolved "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.17.9.tgz" + integrity sha512-8xcvpWIPaRMDNLMvG9ugcUJMgFK316ZsqkPPbsI+TMZsb10N9jk0B6XgPk4/kgWC2ziHyWR7n7wUhxmD0pChQw== + +"@tanstack/react-query@^5.17.9": + version "5.17.9" + resolved "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.17.9.tgz" + integrity sha512-M5E9gwUq1Stby/pdlYjBlL24euIVuGbWKIFCbtnQxSdXI4PgzjTSdXdV3QE6fc+itF+TUvX/JPTKIwq8yuBXcg== + dependencies: + "@tanstack/query-core" "5.17.9" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.9": + version "7.1.19" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.18.2" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/body-parser@*": + version "1.19.2" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/bonjour@^3.5.9": + version "3.5.10" + resolved "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz" + integrity sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw== + dependencies: + "@types/node" "*" + +"@types/connect-history-api-fallback@^1.3.5": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz" + integrity sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw== + dependencies: + "@types/express-serve-static-core" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/eslint-scope@^3.7.7": + 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" "*" + +"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1": + version "8.4.6" + resolved "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz" + integrity sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": + version "4.17.31" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz" + integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.13": + version "4.17.14" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz" + integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/google.maps@3.58.1": + version "3.58.1" + resolved "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.58.1.tgz" + integrity sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ== + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/hoist-non-react-statics@^3.3.1", "@types/hoist-non-react-statics@>= 3.3.1", "@types/hoist-non-react-statics@3": + version "3.3.1" + resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz" + integrity sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA== + dependencies: + "@types/react" "*" + hoist-non-react-statics "^3.3.0" + +"@types/html-minifier-terser@^6.0.0": + 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== + +"@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== + +"@types/http-proxy@^1.17.8": + version "1.17.9" + resolved "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz" + integrity sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/mime@^1": + version "1.3.5" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" + integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== + +"@types/node-forge@^1.3.0": + version "1.3.11" + resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" + integrity sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ== + dependencies: + "@types/node" "*" + +"@types/node@*", "@types/node@>= 12", "@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "22.13.5" + resolved "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz" + integrity sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg== + dependencies: + undici-types "~6.20.0" + +"@types/parse-json@^4.0.0": + 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== + +"@types/prettier@^2.1.5": + version "2.7.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz" + integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== + +"@types/prop-types@*", "@types/prop-types@^15.7.12", "@types/prop-types@^15.7.14": + version "15.7.14" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz" + integrity sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ== + +"@types/q@^1.5.1": + version "1.5.8" + resolved "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz" + integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw== + +"@types/qs@*": + version "6.9.18" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz" + integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA== + +"@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== + +"@types/react-transition-group@^4.4.10", "@types/react-transition-group@^4.4.8": + version "4.4.12" + resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz" + integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w== + +"@types/react@*", "@types/react@^16.8 || ^17.0 || ^18.0", "@types/react@^17.0.0 || ^18.0.0", "@types/react@^17.0.0 || ^18.0.0 || ^19.0.0", "@types/react@>= 16", "@types/react@16 || 17 || 18": + version "18.3.18" + resolved "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz" + integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/retry@0.12.0": + version "0.12.0" + resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz" + integrity sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA== + +"@types/semver@^7.3.12": + version "7.5.8" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" + integrity sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ== + +"@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" "*" + +"@types/serve-index@^1.9.1": + 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" "*" + +"@types/serve-static@*", "@types/serve-static@^1.13.10": + 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" "*" + +"@types/sockjs@^0.3.33": + 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" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/trusted-types@^2.0.2": + version "2.0.7" + resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz" + integrity sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== + +"@types/use-sync-external-store@^0.0.3": + version "0.0.3" + resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz" + integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== + +"@types/ws@^8.5.5": + version "8.5.14" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz" + integrity sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw== + dependencies: + "@types/node" "*" + +"@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== + +"@types/yargs@^16.0.0": + version "16.0.9" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz" + integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== + dependencies: + "@types/yargs-parser" "*" + +"@types/yargs@^17.0.8": + version "17.0.33" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.0.0 || ^5.0.0", "@typescript-eslint/eslint-plugin@^5.5.0": + 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" + +"@typescript-eslint/experimental-utils@^5.0.0": + 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" + +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.5.0": + 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" + +"@typescript-eslint/scope-manager@5.62.0": + 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" + +"@typescript-eslint/type-utils@5.62.0": + 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" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + 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" + +"@typescript-eslint/utils@^5.58.0", "@typescript-eslint/utils@5.62.0": + 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" + +"@typescript-eslint/visitor-keys@5.62.0": + 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" + +"@ungap/structured-clone@^1.2.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@webassemblyjs/ast@^1.14.1", "@webassemblyjs/ast@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== + dependencies: + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== + +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== + +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== + +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== + dependencies: + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== + +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" + +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@^1.14.1", "@webassemblyjs/wasm-parser@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +accepts@~1.3.4, accepts@~1.3.8: + 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" + +acorn-globals@^6.0.0: + 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" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.2.4, acorn@^8.8.2, acorn@^8.9.0: + version "8.14.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +address@^1.0.1, address@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/address/-/address-1.2.2.tgz" + integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== + +adjust-sourcemap-loader@^4.0.0: + 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" + +adler-32@~1.3.0: + version "1.3.1" + resolved "https://registry.npmjs.org/adler-32/-/adler-32-1.3.1.tgz" + integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== + +agent-base@6: + 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" + +ajv-formats@^2.1.1: + 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" + +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^5.1.0: + 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" + +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: + 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" + +ajv@^8.0.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ajv@^8.6.0, ajv@>=8: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ajv@^8.8.2, ajv@^8.9.0: + version "8.17.1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + 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" + +ansi-html-community@^0.0.8: + 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== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + +ansi-styles@^3.2.1: + 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" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + 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" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +antd@^5.11.5: + version "5.24.2" + resolved "https://registry.npmjs.org/antd/-/antd-5.24.2.tgz" + integrity sha512-7Z9HsE3ZIK3sE/WuUqii3w7Gl1IJuRL21sDUTtkN95JS5KhRYP8ISv7m/HxsJ3Mn/yxgojBCgLPJ212+Dn+aPw== + dependencies: + "@ant-design/colors" "^7.2.0" + "@ant-design/cssinjs" "^1.23.0" + "@ant-design/cssinjs-utils" "^1.1.3" + "@ant-design/fast-color" "^2.0.6" + "@ant-design/icons" "^5.6.1" + "@ant-design/react-slick" "~1.1.2" + "@babel/runtime" "^7.26.0" + "@rc-component/color-picker" "~2.0.1" + "@rc-component/mutate-observer" "^1.1.0" + "@rc-component/qrcode" "~1.0.0" + "@rc-component/tour" "~1.15.1" + "@rc-component/trigger" "^2.2.6" + classnames "^2.5.1" + copy-to-clipboard "^3.3.3" + dayjs "^1.11.11" + rc-cascader "~3.33.0" + rc-checkbox "~3.5.0" + rc-collapse "~3.9.0" + rc-dialog "~9.6.0" + rc-drawer "~7.2.0" + rc-dropdown "~4.2.1" + rc-field-form "~2.7.0" + rc-image "~7.11.0" + rc-input "~1.7.2" + rc-input-number "~9.4.0" + rc-mentions "~2.19.1" + rc-menu "~9.16.1" + rc-motion "^2.9.5" + rc-notification "~5.6.3" + rc-pagination "~5.1.0" + rc-picker "~4.11.2" + rc-progress "~4.0.0" + rc-rate "~2.13.1" + rc-resize-observer "^1.4.3" + rc-segmented "~2.7.0" + rc-select "~14.16.6" + rc-slider "~11.1.8" + rc-steps "~6.0.1" + rc-switch "~4.1.0" + rc-table "~7.50.3" + rc-tabs "~15.5.1" + rc-textarea "~1.9.0" + rc-tooltip "~6.4.0" + rc-tree "~5.13.0" + rc-tree-select "~5.27.0" + rc-upload "~4.8.1" + rc-util "^5.44.4" + scroll-into-view-if-needed "^3.1.0" + throttle-debounce "^5.0.2" + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@~3.1.2: + 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" + +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + +argparse@^1.0.7: + 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" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +aria-query@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz" + integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== + +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== + dependencies: + call-bound "^1.0.3" + is-array-buffer "^3.0.5" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +array-includes@^3.1.6, array-includes@^3.1.8: + 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" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlast@^1.2.5: + 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" + +array.prototype.findlastindex@^1.2.5: + 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" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.3" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" + +array.prototype.reduce@^1.0.6: + 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" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +asn1.js@^4.10.1: + version "4.10.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +ast-types-flow@^0.0.8: + 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== + +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + +async@^3.2.3: + version "3.2.6" + resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +autoprefixer@^10.4.13: + version "10.4.20" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz" + integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g== + dependencies: + browserslist "^4.23.3" + caniuse-lite "^1.0.30001646" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.1" + postcss-value-parser "^4.2.0" + +autosuggest-highlight@^3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/autosuggest-highlight/-/autosuggest-highlight-3.3.4.tgz" + integrity sha512-j6RETBD2xYnrVcoV1S5R4t3WxOlWZKyDQjkwnggDPSjF5L4jV98ZltBpvPvbkM1HtoSe5o+bNrTHyjPbieGeYA== + dependencies: + remove-accents "^0.4.2" + +available-typed-arrays@^1.0.7: + 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" + +axe-core@^4.10.0: + version "4.10.2" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz" + integrity sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w== + +axios@^1.3.5: + version "1.7.9" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz" + integrity sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== + +babel-jest@^27.4.2, babel-jest@^27.5.1: + 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" + +babel-loader@^8.2.3: + version "8.4.1" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz" + integrity sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA== + dependencies: + find-cache-dir "^3.3.1" + loader-utils "^2.0.4" + make-dir "^3.1.0" + schema-utils "^2.6.5" + +babel-plugin-istanbul@^6.1.1: + 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" + +babel-plugin-jest-hoist@^27.5.1: + 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" + +babel-plugin-macros@^3.1.0: + 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" + +babel-plugin-named-asset-import@^0.3.8: + 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== + +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.3" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz" + integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-define-polyfill-provider" "^0.3.3" + semver "^6.1.1" + +babel-plugin-polyfill-corejs2@^0.4.14: + version "0.4.14" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz" + integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== + dependencies: + "@babel/compat-data" "^7.27.7" + "@babel/helper-define-polyfill-provider" "^0.6.5" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.13.0: + version "0.13.0" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz" + integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.5" + core-js-compat "^3.43.0" + +babel-plugin-polyfill-corejs3@^0.5.0: + version "0.5.3" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz" + integrity sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.2" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +babel-plugin-polyfill-regenerator@^0.6.5: + version "0.6.5" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz" + integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.5" + +babel-plugin-transform-react-remove-prop-types@^0.4.24: + 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== + +babel-preset-current-node-syntax@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@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-preset-jest@^27.5.1: + 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" + +babel-preset-react-app@^10.0.1: + version "10.1.0" + resolved "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz" + integrity sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg== + 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-proposal-private-property-in-object" "^7.16.7" + "@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" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +batch@0.6.1: + 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== + +bfj@^7.0.2: + 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" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0: + version "4.12.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz" + integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg== + +bn.js@^4.1.0: + version "4.12.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz" + integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg== + +bn.js@^4.11.9: + version "4.12.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz" + integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg== + +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@1.20.3: + version "1.20.3" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz" + integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== + 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.13.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bonjour-service@^1.0.11: + version "1.3.0" + resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz" + integrity sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA== + dependencies: + fast-deep-equal "^3.1.3" + multicast-dns "^7.2.5" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + 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" + +brace-expansion@^2.0.1: + 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" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz" + integrity sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ== + dependencies: + bn.js "^5.2.1" + randombytes "^2.1.0" + safe-buffer "^5.2.1" + +browserify-sign@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz" + integrity sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== + dependencies: + bn.js "^5.2.1" + browserify-rsa "^4.1.0" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.5" + hash-base "~3.0" + inherits "^2.0.4" + parse-asn1 "^5.1.7" + readable-stream "^2.3.8" + safe-buffer "^5.2.1" + +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.25.0, "browserslist@>= 4", "browserslist@>= 4.21.0", browserslist@>=4: + version "4.25.1" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.25.1.tgz" + integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + dependencies: + caniuse-lite "^1.0.30001726" + electron-to-chromium "^1.5.173" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + +bser@2.1.1: + 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" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.2, call-bound@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz" + integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + dependencies: + call-bind-apply-helpers "^1.0.1" + get-intrinsic "^1.2.6" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.2: + 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" + +camelcase-css@^2.0.1: + 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== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0, camelcase@^6.2.1: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-api@^3.0.0: + 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" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001646, caniuse-lite@^1.0.30001726: + version "1.0.30001726" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz" + integrity sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw== + +case-sensitive-paths-webpack-plugin@^2.4.0: + 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== + +cfb@~1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/cfb/-/cfb-1.2.2.tgz" + integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== + dependencies: + adler-32 "~1.3.0" + crc-32 "~1.2.0" + +chalk@^2.4.1: + 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" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + 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" + +chance@^1.1.11: + version "1.1.12" + resolved "https://registry.npmjs.org/chance/-/chance-1.1.12.tgz" + integrity sha512-vVBIGQVnwtUG+SYe0ge+3MvF78cvSpuCOEUJr7sVEk2vSBuMW6OXNJjSzdtzrlxNUEaoqH2GBd5Y/+18BEB01Q== + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +char-regex@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz" + integrity sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg== + +charcodes@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/charcodes/-/charcodes-0.2.0.tgz" + integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ== + +check-types@^11.2.3: + version "11.2.3" + resolved "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz" + integrity sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg== + +chokidar@^3.4.2, chokidar@^3.5.3, chokidar@^3.6.0: + 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" + optionalDependencies: + fsevents "~2.3.2" + +chrome-trace-event@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz" + integrity sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ== + +ci-info@^3.2.0: + version "3.9.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.6" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz" + integrity sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + +cjs-module-lexer@^1.0.0: + version "1.4.3" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz" + integrity sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q== + +classnames@^2.2.1, classnames@^2.2.3, classnames@^2.2.5, classnames@^2.2.6, classnames@^2.3.1, classnames@^2.3.2, classnames@^2.5.1, classnames@2.x: + version "2.5.1" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== + +clean-css@^5.2.2: + 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" + +cliui@^7.0.2: + 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" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clsx@^1.1.0: + version "1.2.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + +clsx@^2.0.0, clsx@^2.1.0, clsx@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz" + integrity sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +coa@^2.0.2: + 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" + +codepage@~1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz" + integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== + +collect-v8-coverage@^1.0.0: + 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== + +color-convert@^1.9.0: + 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" + +color-convert@^2.0.1: + 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" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +colorette@^2.0.10: + version "2.0.20" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + 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" + +commander@^2.20.0: + 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== + +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commander@^8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + +common-path-prefix@^3.0.0: + 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== + +common-tags@^1.8.0: + 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== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +compressible@~2.0.18: + 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" + +compression@^1.7.4: + version "1.8.0" + resolved "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz" + integrity sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA== + dependencies: + bytes "3.1.2" + compressible "~2.0.18" + debug "2.6.9" + negotiator "~0.6.4" + on-headers "~1.0.2" + safe-buffer "5.2.1" + vary "~1.1.2" + +compute-scroll-into-view@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz" + integrity sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confusing-browser-globals@^1.0.11: + 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== + +connect-history-api-fallback@^2.0.0: + 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== + +content-disposition@0.5.4: + 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" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + 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== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.7.1: + version "0.7.1" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz" + integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== + +copy-to-clipboard@^3.3.3: + version "3.3.3" + resolved "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz" + integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== + dependencies: + toggle-selection "^1.0.6" + +core-js-compat@^3.21.0, core-js-compat@^3.43.0: + version "3.43.0" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.43.0.tgz" + integrity sha512-2GML2ZsCc5LR7hZYz4AXmjQw8zuy2T//2QntwdnpuYI7jteT6GVYJL7F6C2C57R7gSYrcqVW3lAALefdbhBLDA== + dependencies: + browserslist "^4.25.0" + +core-js-pure@^3.23.3: + version "3.40.0" + resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz" + integrity sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A== + +core-js@^3.19.2: + version "3.40.0" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz" + integrity sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^6.0.0: + 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" + +cosmiconfig@^7.0.0: + 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" + +cosmiconfig@^8.1.3: + version "8.3.6" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +crc-32@~1.2.0, crc-32@~1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +create-ecdh@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypto-browserify@^3.12.0: + version "3.12.1" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz" + integrity sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ== + dependencies: + browserify-cipher "^1.0.1" + browserify-sign "^4.2.3" + create-ecdh "^4.0.4" + create-hash "^1.2.0" + create-hmac "^1.1.7" + diffie-hellman "^5.0.3" + hash-base "~3.0.4" + inherits "^2.0.4" + pbkdf2 "^3.1.2" + public-encrypt "^4.0.3" + randombytes "^2.1.0" + randomfill "^1.0.4" + +crypto-random-string@^2.0.0: + 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== + +css-blank-pseudo@^3.0.3: + 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" + +css-declaration-sorter@^6.3.1: + 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== + +css-has-pseudo@^3.0.4: + 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" + +css-loader@^6.5.1: + 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" + +css-minimizer-webpack-plugin@^3.2.0: + 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" + +css-prefers-color-scheme@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz" + integrity sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA== + +css-select-base-adapter@^0.1.1: + 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== + +css-select@^2.0.0: + 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" + +css-select@^4.1.3: + 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" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + 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" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-tree@1.0.0-alpha.37: + 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" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css-what@^6.0.1, css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssdb@^7.1.0: + version "7.11.2" + resolved "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz" + integrity sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssjanus@^2.0.1: + version "2.3.0" + resolved "https://registry.npmjs.org/cssjanus/-/cssjanus-2.3.0.tgz" + integrity sha512-ZZXXn51SnxRxAZ6fdY7mBDPmA4OZd83q/J9Gdqz3YmE9TUq+9tZl+tdOnCi7PpNygI6PEkehj9rgifv5+W8a5A== + +cssnano-preset-default@^5.2.14: + 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" + +cssnano-utils@^3.1.0: + 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== + +cssnano@^5.0.6: + 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" + +csso@^4.0.2: + 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" + +csso@^4.2.0: + 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" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + 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" + +csstype@^3.0.10, csstype@^3.0.2, csstype@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + +data-urls@^2.0.0: + 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" + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" + +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +"date-fns@^2.25.0 || ^3.2.0", date-fns@^2.28.0, date-fns@^2.30.0, "date-fns@>= 2.x": + version "2.30.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" + integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== + dependencies: + "@babel/runtime" "^7.21.0" + +dayjs@^1.10.7, dayjs@^1.11.10, dayjs@^1.11.11, "dayjs@>= 1.x": + version "1.11.13" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + +debug@^2.6.0: + 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" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.1, debug@4: + version "4.4.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + +debug@2.6.9: + 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" + +decimal.js@^10.2.1: + version "10.5.0" + resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz" + integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-is@^0.1.3, deep-is@~0.1.3: + 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== + +deepmerge@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz" + integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA== + +deepmerge@^4.2.2, deepmerge@^4.3.1: + 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== + +default-gateway@^6.0.3: + 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" + +define-data-property@^1.0.1, define-data-property@^1.1.4: + 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" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.2.1: + 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" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +des.js@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.1.0" + resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== + +detect-port-alt@^1.1.6: + 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" + +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +diff-sequences@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" + integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== + +diffie-hellman@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + 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" + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dnd-core@^16.0.1: + version "16.0.1" + resolved "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz" + integrity sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng== + dependencies: + "@react-dnd/asap" "^5.0.1" + "@react-dnd/invariant" "^4.0.1" + redux "^4.2.0" + +dns-packet@^5.2.2: + 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" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2.0: + 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" + +dom-helpers@^5.0.1: + 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" + +dom-serializer@^1.0.1: + 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" + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +dom-serializer@0: + 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" + +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domelementtype@1: + version "1.3.1" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1: + 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" + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^1.7.0: + 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" + +domutils@^2.5.2, domutils@^2.8.0: + 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" + +domutils@^3.0.1: + version "3.2.2" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" + integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + +dot-case@^3.0.4: + 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" + +dotenv-expand@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@^10.0.0: + version "10.0.0" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz" + integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== + +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.6: + version "3.1.10" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.5.173: + version "1.5.179" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.179.tgz" + integrity sha512-UWKi/EbBopgfFsc5k61wFpV7WrnnSlSzW/e2XcBmS6qKYTivZlLtoll5/rdqRTxGglGHkmkW0j0pFNJG10EUIQ== + +elliptic@^6.5.3, elliptic@^6.5.5: + version "6.6.1" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz" + integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== + +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encodeurl@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +enhanced-resolve@^5.17.1: + version "5.18.1" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz" + integrity sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.4.0: + version "4.5.0" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-cmd@^10.1.0: + version "10.1.0" + resolved "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz" + integrity sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA== + dependencies: + commander "^4.0.0" + cross-spawn "^7.0.0" + +error-ex@^1.3.1: + 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" + +error-stack-parser@^2.0.6: + 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" + +es-abstract@^1.17.2, es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9: + version "1.23.9" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz" + integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.2.7" + get-proto "^1.0.0" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" + is-callable "^1.2.7" + is-data-view "^1.0.2" + is-regex "^1.2.1" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.0" + math-intrinsics "^1.1.0" + object-inspect "^1.13.3" + object-keys "^1.1.1" + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.3" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.18" + +es-array-method-boxes-properly@^1.0.0: + 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== + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-iterator-helpers@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz" + integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.6" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + iterator.prototype "^1.1.4" + safe-array-concat "^1.1.3" + +es-module-lexer@^1.2.1: + version "1.6.0" + resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz" + integrity sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +es-shim-unscopables@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== + dependencies: + hasown "^2.0.2" + +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^1.8.1: + 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" + optionalDependencies: + source-map "~0.6.1" + +escodegen@^2.0.0: + 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" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-prettier@^8.8.0: + version "8.10.0" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz" + integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== + +eslint-config-react-app@^7.0.1: + 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" + +eslint-import-resolver-node@^0.3.9: + 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" + +eslint-module-utils@^2.12.0: + version "2.12.0" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz" + integrity sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg== + dependencies: + debug "^3.2.7" + +eslint-plugin-flowtype@^8.0.3: + 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" + +eslint-plugin-import@^2.25.3, eslint-plugin-import@^2.27.5: + version "2.31.0" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz" + integrity sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A== + dependencies: + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" + 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.12.0" + hasown "^2.0.2" + is-core-module "^2.15.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" + semver "^6.3.1" + string.prototype.trimend "^1.0.8" + tsconfig-paths "^3.15.0" + +eslint-plugin-jest@^25.3.0: + 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" + +eslint-plugin-jsx-a11y@^6.5.1, eslint-plugin-jsx-a11y@^6.7.1: + version "6.10.2" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz" + integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== + dependencies: + aria-query "^5.3.2" + array-includes "^3.1.8" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "^4.10.0" + axobject-query "^4.1.0" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + hasown "^2.0.2" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.1" + +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== + dependencies: + prettier-linter-helpers "^1.0.0" + +eslint-plugin-react-hooks@^4.3.0, eslint-plugin-react-hooks@^4.6.0: + version "4.6.2" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz" + integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== + +eslint-plugin-react@^7.27.1, eslint-plugin-react@^7.32.2: + version "7.37.4" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz" + integrity sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.3" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.2.1" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.1" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.12" + string.prototype.repeat "^1.0.0" + +eslint-plugin-testing-library@^5.0.1: + 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" + +eslint-scope@^5.1.1, eslint-scope@5.1.1: + 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" + +eslint-scope@^7.2.2: + 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" + +eslint-visitor-keys@^2.1.0: + 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== + +eslint-visitor-keys@^3.3.0: + 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== + +eslint-visitor-keys@^3.4.1: + 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== + +eslint-visitor-keys@^3.4.3: + 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== + +eslint-webpack-plugin@^3.1.1: + 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" + +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.5.0 || ^8.0.0", eslint@^8.0.0, eslint@^8.1.0, eslint@^8.3.0, eslint@^8.38.0, "eslint@>= 6", eslint@>=7.0.0, eslint@>=7.28.0: + version "8.57.1" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.1" + "@humanwhocodes/config-array" "^0.13.0" + "@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" + +espree@^9.6.0, espree@^9.6.1: + 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" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + +esquery@^1.4.2: + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + 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" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^5.0.0: + 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" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^27.5.1: + 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" + +express@^4.17.3: + version "4.21.2" + resolved "https://registry.npmjs.org/express/-/express-4.21.2.tgz" + integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.3" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.7.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~2.0.0" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.3.1" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.3" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.12" + proxy-addr "~2.0.7" + qs "6.13.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.19.0" + serve-static "1.16.2" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + 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== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.3" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + 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.8" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + 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== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-uri@^3.0.1: + version "3.0.6" + resolved "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz" + integrity sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw== + +fastq@^1.6.0: + version "1.19.0" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz" + integrity sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3, faye-websocket@0.11.4: + 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" + +fb-watchman@^2.0.0: + 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" + +file-entry-cache@^6.0.1: + 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" + +file-loader@^6.2.0: + 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" + +filelist@^1.0.4: + 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" + +filesize@^8.0.6: + version "8.0.7" + resolved "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz" + integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz" + integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== + dependencies: + debug "2.6.9" + encodeurl "~2.0.0" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-cache-dir@^3.3.1: + 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" + +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== + +find-up@^3.0.0: + 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" + +find-up@^4.0.0: + 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" + +find-up@^4.1.0: + 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" + +find-up@^5.0.0: + 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" + +firebase@^10.14.1: + version "10.14.1" + resolved "https://registry.npmjs.org/firebase/-/firebase-10.14.1.tgz" + integrity sha512-0KZxU+Ela9rUCULqFsUUOYYkjh7OM1EWdIfG6///MtXd0t2/uUIf0iNV5i0KariMhRQ5jve/OY985nrAXFaZeQ== + dependencies: + "@firebase/analytics" "0.10.8" + "@firebase/analytics-compat" "0.2.14" + "@firebase/app" "0.10.13" + "@firebase/app-check" "0.8.8" + "@firebase/app-check-compat" "0.3.15" + "@firebase/app-compat" "0.2.43" + "@firebase/app-types" "0.9.2" + "@firebase/auth" "1.7.9" + "@firebase/auth-compat" "0.5.14" + "@firebase/data-connect" "0.1.0" + "@firebase/database" "1.0.8" + "@firebase/database-compat" "1.0.8" + "@firebase/firestore" "4.7.3" + "@firebase/firestore-compat" "0.3.38" + "@firebase/functions" "0.11.8" + "@firebase/functions-compat" "0.3.14" + "@firebase/installations" "0.6.9" + "@firebase/installations-compat" "0.2.9" + "@firebase/messaging" "0.12.12" + "@firebase/messaging-compat" "0.2.12" + "@firebase/performance" "0.6.9" + "@firebase/performance-compat" "0.2.9" + "@firebase/remote-config" "0.4.9" + "@firebase/remote-config-compat" "0.2.9" + "@firebase/storage" "0.13.2" + "@firebase/storage-compat" "0.3.12" + "@firebase/util" "1.10.0" + "@firebase/vertexai-preview" "0.0.4" + +flat-cache@^3.0.4: + 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" + +flatted@^3.2.9: + version "3.3.3" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== + +follow-redirects@^1.0.0, follow-redirects@^1.15.6: + version "1.15.9" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + +for-each@^0.3.3: + version "0.3.5" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" + +foreground-child@^3.1.0: + version "3.3.0" + resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz" + integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +fork-ts-checker-webpack-plugin@^6.5.0: + 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" + +form-data@^3.0.0: + version "3.0.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz" + integrity sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + mime-types "^2.1.35" + +form-data@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz" + integrity sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + mime-types "^2.1.12" + +formik@^2.2.9: + version "2.4.6" + resolved "https://registry.npmjs.org/formik/-/formik-2.4.6.tgz" + integrity sha512-A+2EI7U7aG296q2TLGvNapDNTZp1khVt5Vk0Q/fyfSROss0V/V6+txt2aJnwEos44IxTCW/LYAi/zgWzlevj+g== + 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" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +frac@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz" + integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== + +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + +framer-motion@^10.12.4: + version "10.18.0" + resolved "https://registry.npmjs.org/framer-motion/-/framer-motion-10.18.0.tgz" + integrity sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w== + dependencies: + tslib "^2.4.0" + optionalDependencies: + "@emotion/is-prop-valid" "^0.8.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^10.0.0: + 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" + +fs-extra@^9.0.0: + 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" + +fs-extra@^9.0.1: + 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" + +fs-monkey@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz" + integrity sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + 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== + +geolib@^3.3.4: + version "3.3.4" + resolved "https://registry.npmjs.org/geolib/-/geolib-3.3.4.tgz" + integrity sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7: + version "1.3.0" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-own-enumerable-property-symbols@^3.0.0: + 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== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-proto@^1.0.0, get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + +glob-parent@^5.1.2: + 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" + +glob-parent@^6.0.2: + 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" + +glob-parent@~5.1.2: + 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" + +glob-to-regexp@^0.4.1: + 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== + +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + 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" + +global-modules@^2.0.0: + 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" + +global-prefix@^3.0.0: + 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" + +globals@^13.19.0: + 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" + +globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.0.4, globby@^11.1.0: + 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" + +goober@^2.0.33: + version "2.1.16" + resolved "https://registry.npmjs.org/goober/-/goober-2.1.16.tgz" + integrity sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g== + +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + 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== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gzip-size@^6.0.0: + 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" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +harmony-reflect@^1.4.6: + version "1.6.2" + resolved "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz" + integrity sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g== + +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + 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" + +has-proto@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" + +has-symbols@^1.0.1, has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + 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" + +hash-base@^3.0.0, hash-base@~3.0, hash-base@~3.0.4: + version "3.0.5" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz" + integrity sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg== + dependencies: + inherits "^2.0.4" + safe-buffer "^5.2.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasown@^2.0.2: + 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" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2, hoist-non-react-statics@3: + 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" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hpack.js@^2.1.6: + 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" + +html-encoding-sniffer@^2.0.1: + 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" + +html-entities@^2.1.0, html-entities@^2.3.2: + version "2.5.2" + resolved "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz" + integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^6.0.2: + 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" + +html-webpack-plugin@^5.5.0: + version "5.6.3" + resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz" + integrity sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg== + 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" + +htmlparser2@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz" + integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.0.0" + domutils "^2.5.2" + entities "^2.0.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" + integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== + +http-errors@~1.6.2: + 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" + +http-errors@2.0.0: + 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" + +http-parser-js@>=0.5.1: + version "0.5.9" + resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz" + integrity sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw== + +http-proxy-agent@^4.0.1: + 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" + +http-proxy-middleware@^2.0.3: + version "2.0.7" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz" + integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== + 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" + +http-proxy@^1.18.1: + 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" + +https-proxy-agent@^5.0.0: + 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" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@^0.6.3: + 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" + +iconv-lite@0.4.24: + 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" + +icss-utils@^5.0.0, icss-utils@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +idb@^7.0.1, idb@7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz" + integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== + +identity-obj-proxy@^3.0.0: + 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" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^5.2.0: + version "5.3.2" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +immer@^9.0.21, immer@^9.0.7: + version "9.0.21" + resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" + integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== + +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.1" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@^3.0.2: + version "3.2.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + 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" + +inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4, inherits@2, inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" + +intl-messageformat@10.7.7: + version "10.7.7" + resolved "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.7.tgz" + integrity sha512-F134jIoeYMro/3I0h08D0Yt4N9o9pjddU/4IIxMMURqbAtI2wu70X8hvG1V48W49zXHXv3RKSF/po+0fDfsGjA== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/fast-memoize" "2.2.3" + "@formatjs/icu-messageformat-parser" "2.9.4" + tslib "2" + +invariant@2.2.4: + version "2.2.4" + resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + +ipaddr.js@1.9.1: + 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== + +is-arguments@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz" + integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== + dependencies: + has-bigints "^1.0.2" + +is-binary-path@~2.1.0: + 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" + +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.13.0, is-core-module@^2.15.1, is-core-module@^2.16.0: + version "2.16.1" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== + dependencies: + call-bound "^1.0.2" + has-tostringtag "^1.0.2" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + +is-fullwidth-code-point@^3.0.0: + 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== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-generator-function@^1.0.10, is-generator-function@^1.0.7: + version "1.1.0" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz" + integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== + dependencies: + call-bound "^1.0.3" + get-proto "^1.0.0" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + 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" + +is-map@^2.0.3: + 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== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + 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== + +is-path-inside@^3.0.3: + 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== + +is-plain-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz" + integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== + +is-potential-custom-element-name@^1.0.1: + 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== + +is-regex@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" + integrity sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA== + +is-root@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-set@^2.0.3: + 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== + +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== + dependencies: + call-bound "^1.0.3" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.7, is-string@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" + +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== + dependencies: + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" + +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15, is-typed-array@^1.1.3: + version "1.1.15" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== + dependencies: + which-typed-array "^1.1.16" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2, is-weakref@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-wsl@^2.2.0: + 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" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + 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== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + 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" + +istanbul-lib-report@^3.0.0: + 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" + +istanbul-lib-source-maps@^4.0.0: + 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" + +istanbul-reports@^3.1.3: + 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" + +iterator.prototype@^1.1.4: + version "1.1.5" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz" + integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== + dependencies: + define-data-property "^1.1.4" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + get-proto "^1.0.0" + has-symbols "^1.1.0" + set-function-name "^2.0.2" + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-changed-files@^27.5.1: + 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" + +jest-circus@^27.5.1: + 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" + +jest-cli@^27.5.1: + 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" + +jest-config@^27.5.1: + 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" + +jest-diff@^27.5.1: + 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" + +jest-docblock@^27.5.1: + 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" + +jest-each@^27.5.1: + 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" + +jest-environment-jsdom@^27.5.1: + 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" + +jest-environment-node@^27.5.1: + 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" + +jest-get-type@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" + integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== + +jest-haste-map@^27.5.1: + 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" + optionalDependencies: + fsevents "^2.3.2" + +jest-jasmine2@^27.5.1: + 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" + +jest-leak-detector@^27.5.1: + 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" + +jest-matcher-utils@^27.5.1: + 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" + +jest-message-util@^27.5.1: + 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" + +jest-message-util@^28.1.3: + 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" + +jest-mock@^27.5.1: + 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" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^27.5.1: + version "27.5.1" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" + integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== + +jest-regex-util@^28.0.0: + 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== + +jest-resolve-dependencies@^27.5.1: + 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" + +jest-resolve@*, jest-resolve@^27.4.2, jest-resolve@^27.5.1: + 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" + +jest-runner@^27.5.1: + 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" + +jest-runtime@^27.5.1: + 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" + +jest-serializer@^27.5.1: + 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" + +jest-snapshot@^27.5.1: + 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" + +jest-util@^27.5.1: + 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" + +jest-util@^28.1.3: + 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" + +jest-validate@^27.5.1: + 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" + +jest-watch-typeahead@^1.0.0: + 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" + +jest-watcher@^27.5.1: + 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" + +jest-watcher@^28.0.0: + 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" + +jest-worker@^26.2.1: + 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" + +jest-worker@^27.0.2, jest-worker@^27.4.5, jest-worker@^27.5.1: + 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" + +jest-worker@^28.0.2: + 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" + +"jest@^27.0.0 || ^28.0.0", jest@^27.4.3: + 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" + +jiti@^1.21.6: + version "1.21.7" + resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + 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" + +js-yaml@^4.1.0: + 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" + +jsdom@^16.6.0: + 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" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +jsesc@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" + integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + 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== + +json-schema-traverse@^0.4.1: + 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== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stable-stringify-without-jsonify@^1.0.1: + 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== + +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz" + integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== + dependencies: + string-convert "^0.2.0" + +json5@^1.0.2: + 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" + +json5@^2.1.2, json5@^2.2.0, json5@^2.2.2: + version "2.2.3" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonfile@^6.0.1: + 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" + +jsonpath@^1.1.1: + 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" + +jsonpointer@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz" + integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== + +jsonwebtoken@^9.0.0: + version "9.0.2" + resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz" + integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^7.5.4" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + 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" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + +kdbush@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz" + integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA== + +keyv@^4.5.3: + 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" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4, klona@^2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" + integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== + +language-subtag-registry@^0.3.20: + version "0.3.23" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz" + integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== + +language-tags@^1.0.9: + 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" + +launch-editor@^2.6.0: + version "2.10.0" + resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz" + integrity sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA== + dependencies: + picocolors "^1.0.0" + shell-quote "^1.8.1" + +leaflet@^1.9.0, leaflet@^1.9.4: + version "1.9.4" + resolved "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz" + integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + 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" + +levn@~0.3.0: + 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" + +lilconfig@^2.0.3: + version "2.1.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0: + version "3.1.3" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lilconfig@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz" + integrity sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-runner@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz" + integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== + +loader-utils@^2.0.0, loader-utils@^2.0.4: + 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" + +loader-utils@^3.2.0: + version "3.3.1" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz" + integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== + +locate-path@^3.0.0: + 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" + +locate-path@^5.0.0: + 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" + +locate-path@^6.0.0: + 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" + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +long@^5.0.0: + version "5.3.1" + resolved "https://registry.npmjs.org/long/-/long-5.3.1.tgz" + integrity sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + 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" + +lower-case@^2.0.2: + 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" + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + 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" + +magic-string@^0.25.0, magic-string@^0.25.7: + 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" + +make-dir@^3.0.2, make-dir@^3.1.0: + 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" + +make-dir@^4.0.0: + 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" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +memfs@^3.1.2, memfs@^3.4.3: + 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" + +merge-descriptors@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz" + integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: + 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" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mini-css-extract-plugin@^2.4.5: + version "2.9.2" + resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz" + integrity sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w== + dependencies: + schema-utils "^4.0.0" + tapable "^2.2.1" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + 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" + +minimatch@^5.0.1: + 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" + +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mkdirp@~0.5.1: + 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" + +ms@^2.1.1, ms@^2.1.3, ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +mui-daterange-picker@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/mui-daterange-picker/-/mui-daterange-picker-1.0.5.tgz" + integrity sha512-+7Mp9DXQw6iLGotwp1rKfMV8sJxtaEto0IVId54orkvrCdqTgn167nzLBz6hd34tJLftg6DKAygkUom7tmg5Bw== + dependencies: + "@babel/runtime" "^7.16.7" + +multicast-dns@^7.2.5: + 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" + +mz@^2.7.0: + 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" + +nanoid@^3.3.8: + version "3.3.8" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz" + integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== + +natural-compare-lite@^1.4.0: + 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== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@~0.6.4: + version "0.6.4" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +no-case@^3.0.4: + 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-forge@^1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +notistack@^3.0.1: + version "3.0.2" + resolved "https://registry.npmjs.org/notistack/-/notistack-3.0.2.tgz" + integrity sha512-0R+/arLYbK5Hh7mEfR2adt0tyXJcCC9KkA2hc56FeWik2QN6Bm/S4uW+BjzDARsJth5u06nTjelSw/VSnB1YEA== + dependencies: + clsx "^1.1.0" + goober "^2.0.33" + +npm-run-path@^4.0.1: + 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" + +nth-check@^1.0.2: + 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" + +nth-check@^2.0.1: + 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" + +nwsapi@^2.2.0: + version "2.2.16" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz" + integrity sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ== + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4, object.assign@^4.1.7: + version "4.1.7" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" + object-keys "^1.1.1" + +object.entries@^1.1.8: + 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" + +object.fromentries@^2.0.8: + 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" + +object.getownpropertydescriptors@^2.1.0: + 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" + +object.groupby@^1.0.3: + 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" + +object.values@^1.1.0, object.values@^1.1.6, object.values@^1.2.0, object.values@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@2.4.1: + 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" + +on-headers@~1.0.2: + 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== + +once@^1.3.0: + 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" + +onetime@^5.1.2: + 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" + +open@^8.0.9, open@^8.4.0: + 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" + +optionator@^0.8.1: + 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" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + +own-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + +p-limit@^2.0.0: + 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" + +p-limit@^2.2.0: + 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" + +p-limit@^3.0.2: + 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" + +p-locate@^3.0.0: + 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" + +p-locate@^4.1.0: + 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" + +p-locate@^5.0.0: + 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" + +p-retry@^4.5.0: + 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" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +papaparse@^5.4.1: + version "5.5.2" + resolved "https://registry.npmjs.org/papaparse/-/papaparse-5.5.2.tgz" + integrity sha512-PZXg8UuAc4PcVwLosEEDYjPyfWnTEhOrUfdv+3Bx+NuAb+5NhDmXzg5fHWmdCh1mP5p7JAZfFr3IMQfcntNAdA== + +param-case@^3.0.4: + 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" + +parent-module@^1.0.0: + 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" + +parse-asn1@^5.0.0, parse-asn1@^5.1.7: + version "5.1.7" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz" + integrity sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== + dependencies: + asn1.js "^4.10.1" + browserify-aes "^1.2.0" + evp_bytestokey "^1.0.3" + hash-base "~3.0" + pbkdf2 "^3.1.2" + safe-buffer "^5.2.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + 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" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + 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" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@0.1.12: + version "0.1.12" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz" + integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz" + integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA== + +picocolors@^1.0.0, picocolors@^1.0.1, picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1, pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + 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" + +pkg-up@^3.1.0: + 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" + +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== + +postcss-attribute-case-insensitive@^5.0.2: + 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" + +postcss-browser-comments@^4: + 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== + +postcss-calc@^8.2.3: + 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" + +postcss-clamp@^4.1.0: + 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" + +postcss-color-functional-notation@^4.2.4: + 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" + +postcss-color-hex-alpha@^8.0.4: + 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" + +postcss-color-rebeccapurple@^7.1.1: + 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" + +postcss-colormin@^5.3.1: + 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" + +postcss-convert-values@^5.1.3: + 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" + +postcss-custom-media@^8.0.2: + 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" + +postcss-custom-properties@^12.1.10: + 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" + +postcss-custom-selectors@^6.0.3: + 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" + +postcss-dir-pseudo-class@^6.0.5: + 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" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-double-position-gradients@^3.1.2: + 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" + +postcss-env-function@^4.0.6: + 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" + +postcss-flexbugs-fixes@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz" + integrity sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ== + +postcss-focus-visible@^6.0.4: + 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" + +postcss-focus-within@^5.0.4: + 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" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^3.0.5: + version "3.0.5" + resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz" + integrity sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg== + +postcss-image-set-function@^4.0.7: + 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" + +postcss-import@^15.1.0: + 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" + +postcss-initial@^4.0.1: + 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== + +postcss-js@^4.0.1: + 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" + +postcss-lab-function@^4.2.1: + 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" + +postcss-load-config@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-loader@^6.2.1: + 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" + +postcss-logical@^5.0.4: + version "5.0.4" + resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz" + integrity sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g== + +postcss-media-minmax@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz" + integrity sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ== + +postcss-merge-longhand@^5.1.7: + 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" + +postcss-merge-rules@^5.1.4: + 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" + +postcss-minify-font-values@^5.1.0: + 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" + +postcss-minify-gradients@^5.1.1: + 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" + +postcss-minify-params@^5.1.4: + 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" + +postcss-minify-selectors@^5.2.1: + 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" + +postcss-modules-extract-imports@^3.1.0: + 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== + +postcss-modules-local-by-default@^4.0.5: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz" + integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^7.0.0" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.2.0: + version "3.2.1" + resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz" + integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== + dependencies: + postcss-selector-parser "^7.0.0" + +postcss-modules-values@^4.0.0: + 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" + +postcss-nested@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz" + integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ== + dependencies: + postcss-selector-parser "^6.1.1" + +postcss-nesting@^10.2.0: + 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" + +postcss-normalize-charset@^5.1.0: + 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== + +postcss-normalize-display-values@^5.1.0: + 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" + +postcss-normalize-positions@^5.1.1: + 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" + +postcss-normalize-repeat-style@^5.1.1: + 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" + +postcss-normalize-string@^5.1.0: + 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" + +postcss-normalize-timing-functions@^5.1.0: + 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" + +postcss-normalize-unicode@^5.1.1: + 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" + +postcss-normalize-url@^5.1.0: + 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" + +postcss-normalize-whitespace@^5.1.1: + 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" + +postcss-normalize@^10.0.1: + 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 "*" + +postcss-opacity-percentage@^1.1.2: + 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== + +postcss-ordered-values@^5.1.3: + 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" + +postcss-overflow-shorthand@^3.0.4: + 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" + +postcss-page-break@^3.0.4: + 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== + +postcss-place@^7.0.5: + 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" + +postcss-preset-env@^7.0.1: + 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" + +postcss-pseudo-class-any-link@^7.1.6: + 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" + +postcss-reduce-initial@^5.1.2: + 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" + +postcss-reduce-transforms@^5.1.0: + 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" + +postcss-replace-overflow-wrap@^4.0.0: + 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== + +postcss-selector-not@^6.0.1: + 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" + +postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9, postcss-selector-parser@^6.1.1, postcss-selector-parser@^6.1.2: + version "6.1.2" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz" + integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-selector-parser@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz" + integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.1.0: + 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" + +postcss-unique-selectors@^5.1.1: + 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" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +"postcss@^7.0.0 || ^8.0.1", postcss@^8, postcss@^8.0.0, postcss@^8.0.3, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.1.4, postcss@^8.2, postcss@^8.2.14, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3, postcss@^8.3.5, postcss@^8.4, postcss@^8.4.21, postcss@^8.4.33, postcss@^8.4.4, postcss@^8.4.47, postcss@^8.4.6, "postcss@>= 8", postcss@>=8, postcss@>=8.0.9: + version "8.5.3" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz" + integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== + dependencies: + nanoid "^3.3.8" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +postcss@^7.0.35: + 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" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier@^2.8.7, prettier@>=2.0.0: + version "2.8.8" + resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: + version "5.6.0" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^4.0.0: + 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" + +pretty-format@^27.5.1: + 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" + +pretty-format@^28.1.3: + 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" + +process-nextick-args@~2.0.0: + 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== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +promise@^8.1.0: + 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" + +prompts@^2.0.1, prompts@^2.4.2: + 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" + +prop-types@^15.5.0, prop-types@^15.6.2, prop-types@^15.8.1: + 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" + +property-expr@^2.0.5: + version "2.0.6" + resolved "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz" + integrity sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA== + +protobufjs@^7.2.4: + version "7.4.0" + resolved "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz" + integrity sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-addr@~2.0.7: + 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" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.33: + version "1.15.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" + +public-encrypt@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== + +qs@6.13.0: + version "6.13.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== + dependencies: + side-channel "^1.0.6" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +raf@^3.4.1: + 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" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + 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" + +randomfill@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + 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" + +rc-cascader@~3.33.0: + version "3.33.0" + resolved "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.33.0.tgz" + integrity sha512-JvZrMbKBXIbEDmpIORxqvedY/bck6hGbs3hxdWT8eS9wSQ1P7//lGxbyKjOSyQiVBbgzNWriSe6HoMcZO/+0rQ== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "^2.3.1" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-checkbox@~3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.5.0.tgz" + integrity sha512-aOAQc3E98HteIIsSqm6Xk2FPKIER6+5vyEFMZfo73TqM+VVAIqOkHoPjgKLqSNtVLWScoaM7vY2ZrGEheI79yg== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.25.2" + +rc-collapse@~3.9.0: + version "3.9.0" + resolved "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.9.0.tgz" + integrity sha512-swDdz4QZ4dFTo4RAUMLL50qP0EY62N2kvmk2We5xYdRwcRn8WcYtuetCJpwpaCbUfUt5+huLpVxhvmnK+PHrkA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.3.4" + rc-util "^5.27.0" + +rc-dialog@~9.6.0: + version "9.6.0" + resolved "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.6.0.tgz" + integrity sha512-ApoVi9Z8PaCQg6FsUzS8yvBEQy0ZL2PkuvAgrmohPkN3okps5WZ5WQWPc1RNuiOKaAYv8B97ACdsFU5LizzCqg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/portal" "^1.0.0-8" + classnames "^2.2.6" + rc-motion "^2.3.0" + rc-util "^5.21.0" + +rc-drawer@~7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz" + integrity sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg== + dependencies: + "@babel/runtime" "^7.23.9" + "@rc-component/portal" "^1.1.1" + classnames "^2.2.6" + rc-motion "^2.6.1" + rc-util "^5.38.1" + +rc-dropdown@~4.2.0, rc-dropdown@~4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.1.tgz" + integrity sha512-YDAlXsPv3I1n42dv1JpdM7wJ+gSUBfeyPK59ZpBD9jQhK9jVuxpjj3NmWQHOBceA1zEPVX84T2wbdb2SD0UjmA== + dependencies: + "@babel/runtime" "^7.18.3" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-util "^5.44.1" + +rc-field-form@~2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.7.0.tgz" + integrity sha512-hgKsCay2taxzVnBPZl+1n4ZondsV78G++XVsMIJCAoioMjlMQR9YwAp7JZDIECzIu2Z66R+f4SFIRrO2DjDNAA== + dependencies: + "@babel/runtime" "^7.18.0" + "@rc-component/async-validator" "^5.0.3" + rc-util "^5.32.2" + +rc-image@~7.11.0: + version "7.11.0" + resolved "https://registry.npmjs.org/rc-image/-/rc-image-7.11.0.tgz" + integrity sha512-aZkTEZXqeqfPZtnSdNUnKQA0N/3MbgR7nUnZ+/4MfSFWPFHZau4p5r5ShaI0KPEMnNjv4kijSCFq/9wtJpwykw== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/portal" "^1.0.2" + classnames "^2.2.6" + rc-dialog "~9.6.0" + rc-motion "^2.6.2" + rc-util "^5.34.1" + +rc-input-number@~9.4.0: + version "9.4.0" + resolved "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.4.0.tgz" + integrity sha512-Tiy4DcXcFXAf9wDhN8aUAyMeCLHJUHA/VA/t7Hj8ZEx5ETvxG7MArDOSE6psbiSCo+vJPm4E3fGN710ITVn6GA== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/mini-decimal" "^1.0.1" + classnames "^2.2.5" + rc-input "~1.7.1" + rc-util "^5.40.1" + +rc-input@~1.7.1, rc-input@~1.7.2: + version "1.7.2" + resolved "https://registry.npmjs.org/rc-input/-/rc-input-1.7.2.tgz" + integrity sha512-g3nYONnl4edWj2FfVoxsU3Ec4XTE+Hb39Kfh2MFxMZjp/0gGyPUgy/v7ZhS27ZxUFNkuIDYXm9PJsLyJbtg86A== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.18.1" + +rc-mentions@~2.19.1: + version "2.19.1" + resolved "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.19.1.tgz" + integrity sha512-KK3bAc/bPFI993J3necmaMXD2reZTzytZdlTvkeBbp50IGH1BDPDvxLdHDUrpQx2b2TGaVJsn+86BvYa03kGqA== + dependencies: + "@babel/runtime" "^7.22.5" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.6" + rc-input "~1.7.1" + rc-menu "~9.16.0" + rc-textarea "~1.9.0" + rc-util "^5.34.1" + +rc-menu@~9.16.0, rc-menu@~9.16.1: + version "9.16.1" + resolved "https://registry.npmjs.org/rc-menu/-/rc-menu-9.16.1.tgz" + integrity sha512-ghHx6/6Dvp+fw8CJhDUHFHDJ84hJE3BXNCzSgLdmNiFErWSOaZNsihDAsKq9ByTALo/xkNIwtDFGIl6r+RPXBg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.0.0" + classnames "2.x" + rc-motion "^2.4.3" + rc-overflow "^1.3.1" + rc-util "^5.27.0" + +rc-motion@^2.0.0, rc-motion@^2.0.1, rc-motion@^2.3.0, rc-motion@^2.3.4, rc-motion@^2.4.3, rc-motion@^2.4.4, rc-motion@^2.6.1, rc-motion@^2.6.2, rc-motion@^2.9.0, rc-motion@^2.9.5: + version "2.9.5" + resolved "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.5.tgz" + integrity sha512-w+XTUrfh7ArbYEd2582uDrEhmBHwK1ZENJiSJVb7uRxdE7qJSYjbO2eksRXmndqyKqKoYPc9ClpPh5242mV1vA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-util "^5.44.0" + +rc-notification@~5.6.3: + version "5.6.3" + resolved "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.3.tgz" + integrity sha512-42szwnn8VYQoT6GnjO00i1iwqV9D1TTMvxObWsuLwgl0TsOokzhkYiufdtQBsJMFjJravS1hfDKVMHLKLcPE4g== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.9.0" + rc-util "^5.20.1" + +rc-overflow@^1.3.1, rc-overflow@^1.3.2: + version "1.4.1" + resolved "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.4.1.tgz" + integrity sha512-3MoPQQPV1uKyOMVNd6SZfONi+f3st0r8PksexIdBTeIYbMX0Jr+k7pHEDvsXtR4BpCv90/Pv2MovVNhktKrwvw== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-resize-observer "^1.0.0" + rc-util "^5.37.0" + +rc-pagination@~5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/rc-pagination/-/rc-pagination-5.1.0.tgz" + integrity sha512-8416Yip/+eclTFdHXLKTxZvn70duYVGTvUUWbckCCZoIl3jagqke3GLsFrMs0bsQBikiYpZLD9206Ej4SOdOXQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.3.2" + rc-util "^5.38.0" + +rc-picker@~4.11.2: + version "4.11.2" + resolved "https://registry.npmjs.org/rc-picker/-/rc-picker-4.11.2.tgz" + integrity sha512-Cwa3frWpefhESBF20HBJtvWx3q1hCrMxSUrzuuWMTGoZVPhQllGEp2IUfzo9jC5LKm4kJx7IrH8q/W/y9wClAw== + dependencies: + "@babel/runtime" "^7.24.7" + "@rc-component/trigger" "^2.0.0" + classnames "^2.2.1" + rc-overflow "^1.3.2" + rc-resize-observer "^1.4.0" + rc-util "^5.43.0" + +rc-progress@~4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz" + integrity sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.6" + rc-util "^5.16.1" + +rc-rate@~2.13.1: + version "2.13.1" + resolved "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.1.tgz" + integrity sha512-QUhQ9ivQ8Gy7mtMZPAjLbxBt5y9GRp65VcUyGUMF3N3fhiftivPHdpuDIaWIMOTEprAjZPC08bls1dQB+I1F2Q== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.0.1" + +rc-resize-observer@^1.0.0, rc-resize-observer@^1.1.0, rc-resize-observer@^1.3.1, rc-resize-observer@^1.4.0, rc-resize-observer@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.3.tgz" + integrity sha512-YZLjUbyIWox8E9i9C3Tm7ia+W7euPItNWSPX5sCcQTYbnwDb5uNpnLHQCG1f22oZWUhLw4Mv2tFmeWe68CDQRQ== + dependencies: + "@babel/runtime" "^7.20.7" + classnames "^2.2.1" + rc-util "^5.44.1" + resize-observer-polyfill "^1.5.1" + +rc-segmented@~2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.7.0.tgz" + integrity sha512-liijAjXz+KnTRVnxxXG2sYDGd6iLL7VpGGdR8gwoxAXy2KglviKCxLWZdjKYJzYzGSUwKDSTdYk8brj54Bn5BA== + dependencies: + "@babel/runtime" "^7.11.1" + classnames "^2.2.1" + rc-motion "^2.4.4" + rc-util "^5.17.0" + +rc-select@~14.16.2, rc-select@~14.16.6: + version "14.16.6" + resolved "https://registry.npmjs.org/rc-select/-/rc-select-14.16.6.tgz" + integrity sha512-YPMtRPqfZWOm2XGTbx5/YVr1HT0vn//8QS77At0Gjb3Lv+Lbut0IORJPKLWu1hQ3u4GsA0SrDzs7nI8JG7Zmyg== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/trigger" "^2.1.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-overflow "^1.3.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.2" + +rc-slider@~11.1.8: + version "11.1.8" + resolved "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.8.tgz" + integrity sha512-2gg/72YFSpKP+Ja5AjC5DPL1YnV8DEITDQrcc1eASrUYjl0esptaBVJBh5nLTXCCp15eD8EuGjwezVGSHhs9tQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.5" + rc-util "^5.36.0" + +rc-steps@~6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz" + integrity sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g== + dependencies: + "@babel/runtime" "^7.16.7" + classnames "^2.2.3" + rc-util "^5.16.1" + +rc-switch@~4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz" + integrity sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg== + dependencies: + "@babel/runtime" "^7.21.0" + classnames "^2.2.1" + rc-util "^5.30.0" + +rc-table@~7.50.3: + version "7.50.3" + resolved "https://registry.npmjs.org/rc-table/-/rc-table-7.50.3.tgz" + integrity sha512-Z4/zNCzjv7f/XzPRecb+vJU0DJKdsYt4YRkDzNl4G05m7JmxrKGYC2KqN1Ew6jw2zJq7cxVv3z39qyZOHMuf7A== + dependencies: + "@babel/runtime" "^7.10.1" + "@rc-component/context" "^1.4.0" + classnames "^2.2.5" + rc-resize-observer "^1.1.0" + rc-util "^5.44.3" + rc-virtual-list "^3.14.2" + +rc-tabs@~15.5.1: + version "15.5.1" + resolved "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.5.1.tgz" + integrity sha512-yiWivLAjEo5d1v2xlseB2dQocsOhkoVSfo1krS8v8r+02K+TBUjSjXIf7dgyVSxp6wRIPv5pMi5hanNUlQMgUA== + dependencies: + "@babel/runtime" "^7.11.2" + classnames "2.x" + rc-dropdown "~4.2.0" + rc-menu "~9.16.0" + rc-motion "^2.6.2" + rc-resize-observer "^1.0.0" + rc-util "^5.34.1" + +rc-textarea@~1.9.0: + version "1.9.0" + resolved "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.9.0.tgz" + integrity sha512-dQW/Bc/MriPBTugj2Kx9PMS5eXCCGn2cxoIaichjbNvOiARlaHdI99j4DTxLl/V8+PIfW06uFy7kjfUIDDKyxQ== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "^2.2.1" + rc-input "~1.7.1" + rc-resize-observer "^1.0.0" + rc-util "^5.27.0" + +rc-tooltip@~6.4.0: + version "6.4.0" + resolved "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.4.0.tgz" + integrity sha512-kqyivim5cp8I5RkHmpsp1Nn/Wk+1oeloMv9c7LXNgDxUpGm+RbXJGL+OPvDlcRnx9DBeOe4wyOIl4OKUERyH1g== + dependencies: + "@babel/runtime" "^7.11.2" + "@rc-component/trigger" "^2.0.0" + classnames "^2.3.1" + rc-util "^5.44.3" + +rc-tree-select@~5.27.0: + version "5.27.0" + resolved "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.27.0.tgz" + integrity sha512-2qTBTzwIT7LRI1o7zLyrCzmo5tQanmyGbSaGTIf7sYimCklAToVVfpMC6OAldSKolcnjorBYPNSKQqJmN3TCww== + dependencies: + "@babel/runtime" "^7.25.7" + classnames "2.x" + rc-select "~14.16.2" + rc-tree "~5.13.0" + rc-util "^5.43.0" + +rc-tree@~5.13.0: + version "5.13.0" + resolved "https://registry.npmjs.org/rc-tree/-/rc-tree-5.13.0.tgz" + integrity sha512-2+lFvoVRnvHQ1trlpXMOWtF8BUgF+3TiipG72uOfhpL5CUdXCk931kvDdUkTL/IZVtNEDQKwEEmJbAYJSA5NnA== + dependencies: + "@babel/runtime" "^7.10.1" + classnames "2.x" + rc-motion "^2.0.1" + rc-util "^5.16.1" + rc-virtual-list "^3.5.1" + +rc-upload@~4.8.1: + version "4.8.1" + resolved "https://registry.npmjs.org/rc-upload/-/rc-upload-4.8.1.tgz" + integrity sha512-toEAhwl4hjLAI1u8/CgKWt30BR06ulPa4iGQSMvSXoHzO88gPCslxqV/mnn4gJU7PDoltGIC9Eh+wkeudqgHyw== + dependencies: + "@babel/runtime" "^7.18.3" + classnames "^2.2.5" + rc-util "^5.2.0" + +rc-util@^5.0.1, rc-util@^5.16.1, rc-util@^5.17.0, rc-util@^5.18.1, rc-util@^5.2.0, rc-util@^5.20.1, rc-util@^5.21.0, rc-util@^5.24.4, rc-util@^5.25.2, rc-util@^5.27.0, rc-util@^5.30.0, rc-util@^5.31.1, rc-util@^5.32.2, rc-util@^5.34.1, rc-util@^5.35.0, rc-util@^5.36.0, rc-util@^5.37.0, rc-util@^5.38.0, rc-util@^5.38.1, rc-util@^5.40.1, rc-util@^5.43.0, rc-util@^5.44.0, rc-util@^5.44.1, rc-util@^5.44.3, rc-util@^5.44.4: + version "5.44.4" + resolved "https://registry.npmjs.org/rc-util/-/rc-util-5.44.4.tgz" + integrity sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w== + dependencies: + "@babel/runtime" "^7.18.3" + react-is "^18.2.0" + +rc-virtual-list@^3.14.2, rc-virtual-list@^3.5.1, rc-virtual-list@^3.5.2: + version "3.18.2" + resolved "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.18.2.tgz" + integrity sha512-SkPabqstOQgJ2Q2Ob3eDPIHsNrDzQZFl8mzHiXuNablyYwddVU33Ws6oxoA7Fi/6pZeEYonrLEUiJGr/6aBVaw== + dependencies: + "@babel/runtime" "^7.20.0" + classnames "^2.2.6" + rc-resize-observer "^1.0.0" + rc-util "^5.36.0" + +react-app-polyfill@^3.0.0: + 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" + +react-app-rewired@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz" + integrity sha512-uFQWTErXeLDrMzOJHKp0h8P1z0LV9HzPGsJ6adOtGlA/B9WfT6Shh4j2tLTTGlXOfiVx6w6iWpp7SOC5pvk+gA== + dependencies: + semver "^5.6.0" + +react-csv@^2.2.2: + version "2.2.2" + resolved "https://registry.npmjs.org/react-csv/-/react-csv-2.2.2.tgz" + integrity sha512-RG5hOcZKZFigIGE8LxIEV/OgS1vigFQT4EkaHeKgyuCbUAu9Nbd/1RYq++bJcJJ9VOqO/n9TZRADsXNDR4VEpw== + +react-dev-utils@^12.0.1: + 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" + +react-device-detect@^2.2.3: + version "2.2.3" + resolved "https://registry.npmjs.org/react-device-detect/-/react-device-detect-2.2.3.tgz" + integrity sha512-buYY3qrCnQVlIFHrC5UcUoAj7iANs/+srdkwsnNjI7anr3Tt7UY6MqNxtMLlr0tMBied0O49UZVK8XKs3ZIiPw== + dependencies: + ua-parser-js "^1.0.33" + +react-dnd-html5-backend@^16.0.1: + version "16.0.1" + resolved "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz" + integrity sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw== + dependencies: + dnd-core "^16.0.1" + +react-dnd@^16.0.1: + version "16.0.1" + resolved "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz" + integrity sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q== + dependencies: + "@react-dnd/invariant" "^4.0.1" + "@react-dnd/shallowequal" "^4.0.1" + dnd-core "^16.0.1" + fast-deep-equal "^3.1.3" + hoist-non-react-statics "^3.3.2" + +react-dom@*, "react-dom@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8 || ^17 || ^18 || ^19", "react-dom@^16.8 || ^17.0 || ^18.0", "react-dom@^17.0.0 || ^18.0.0", "react-dom@^17.0.0 || ^18.0.0 || ^19.0.0", react-dom@^17.0.2, react-dom@^18.0.0, react-dom@^18.2.0, "react-dom@>= 0.14.0", react-dom@>=16.0.0, react-dom@>=16.11.0, react-dom@>=16.6.0, react-dom@>=16.8, react-dom@>=16.8.0, react-dom@>=16.9.0, "react-dom@16.2.0 - 18": + version "18.3.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.2" + +react-error-overlay@^6.0.11, react-error-overlay@6.0.11: + 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== + +react-fast-compare@^2.0.1: + 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== + +react-geocode@^0.2.3: + version "0.2.3" + resolved "https://registry.npmjs.org/react-geocode/-/react-geocode-0.2.3.tgz" + integrity sha512-sIpbgmn1IUzAxO4haOZ6jeeFnMD8ya9PC38yiNrmJ9vPWbvAO2D/2yfCBzZjGZVUm4PRzKAc0KghXfaEnug0TQ== + dependencies: + regenerator-runtime "^0.13.3" + +react-google-autocomplete@^2.7.3: + version "2.7.4" + resolved "https://registry.npmjs.org/react-google-autocomplete/-/react-google-autocomplete-2.7.4.tgz" + integrity sha512-BeEk2mjzgJcfiCueuKBofm5+RxHUIr0+POn9Yw8merK4Yd0jcOp9Lk/IGJySbz1GTi2Jqvi7V4dbw/DPLD1HMA== + dependencies: + lodash.debounce "^4.0.8" + prop-types "^15.5.0" + +react-icons@^4.12.0: + version "4.12.0" + resolved "https://registry.npmjs.org/react-icons/-/react-icons-4.12.0.tgz" + integrity sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw== + +react-intl@^6.4.1: + version "6.8.9" + resolved "https://registry.npmjs.org/react-intl/-/react-intl-6.8.9.tgz" + integrity sha512-TUfj5E7lyUDvz/GtovC9OMh441kBr08rtIbgh3p0R8iF3hVY+V2W9Am7rb8BpJ/29BH1utJOqOOhmvEVh3GfZg== + dependencies: + "@formatjs/ecma402-abstract" "2.2.4" + "@formatjs/icu-messageformat-parser" "2.9.4" + "@formatjs/intl" "2.10.15" + "@formatjs/intl-displaynames" "6.8.5" + "@formatjs/intl-listformat" "7.7.5" + "@types/hoist-non-react-statics" "3" + "@types/react" "16 || 17 || 18" + hoist-non-react-statics "3" + intl-messageformat "10.7.7" + tslib "2" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +react-is@^18.0.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-is@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +react-is@^19.0.0: + version "19.0.0" + resolved "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz" + integrity sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g== + +react-leaflet@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz" + integrity sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q== + dependencies: + "@react-leaflet/core" "^2.1.0" + +react-loading-icons@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/react-loading-icons/-/react-loading-icons-1.1.0.tgz" + integrity sha512-Y9eZ6HAufmUd8DIQd6rFrx5Bt/oDlTM9Nsjvf8YpajTa3dI8cLNU8jUN5z7KTANU+Yd6/KJuBjxVlrU2dMw33g== + +"react-redux@^7.2.1 || ^8.0.2", react-redux@^8.0.5: + version "8.1.3" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz" + integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== + dependencies: + "@babel/runtime" "^7.12.1" + "@types/hoist-non-react-statics" "^3.3.1" + "@types/use-sync-external-store" "^0.0.3" + hoist-non-react-statics "^3.3.2" + react-is "^18.0.0" + use-sync-external-store "^1.0.0" + +react-refresh@^0.11.0, "react-refresh@>=0.10.0 <1.0.0": + version "0.11.0" + resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz" + integrity sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A== + +react-router-dom@^6.10.0: + version "6.29.0" + resolved "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.29.0.tgz" + integrity sha512-pkEbJPATRJ2iotK+wUwHfy0xs2T59YPEN8BQxVCPeBZvK7kfPESRc/nyxzdcxR17hXgUPYx2whMwl+eo9cUdnQ== + dependencies: + "@remix-run/router" "1.22.0" + react-router "6.29.0" + +react-router@^6.10.0, react-router@6.29.0: + version "6.29.0" + resolved "https://registry.npmjs.org/react-router/-/react-router-6.29.0.tgz" + integrity sha512-DXZJoE0q+KyeVw75Ck6GkPxFak63C4fGqZGNijnWgzB/HzSP1ZfTlBj5COaGWwhrMQ/R8bXiq5Ooy4KG+ReyjQ== + dependencies: + "@remix-run/router" "1.22.0" + +react-scripts@^5.0.1, react-scripts@>=2.1.3: + 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" + optionalDependencies: + fsevents "^2.3.2" + +react-timer-hook@^3.0.5: + version "3.0.8" + resolved "https://registry.npmjs.org/react-timer-hook/-/react-timer-hook-3.0.8.tgz" + integrity sha512-bi2e7DhPBU1MRPU4ZHaVqBmgM9e2HK0ae8O2AIqwqjcPo4/qR7lVGQonOQLAKOZPQCJSYfV8F5aBWzOLXElzqQ== + +react-to-print@^2.15.0: + version "2.15.1" + resolved "https://registry.npmjs.org/react-to-print/-/react-to-print-2.15.1.tgz" + integrity sha512-1foogIFbCpzAVxydkhBiDfMiFYhIMphiagDOfcG4X/EcQ+fBPqJ0rby9Wv/emzY1YLkIQy/rEgOrWQT+rBKhjw== + +react-transition-group@^4.4.5: + 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" + +react@*, "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || 17 || 18", "react@^16.8 || ^17 || ^18 || ^19", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.9.0 || ^17.0.0 || ^18", "react@^17.0.0 || ^18.0.0", "react@^17.0.0 || ^18.0.0 || ^19.0.0", react@^17.0.2, react@^18.0.0, react@^18.2.0, react@^18.3.1, "react@>= 0.14.0", "react@>= 16", "react@>= 16.14", react@>=16.0.0, react@>=16.11.0, react@>=16.6.0, react@>=16.8, react@>=16.8.0, react@>=16.9.0, "react@16.2.0 - 18": + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +react18-input-otp@^1.1.3: + version "1.1.4" + resolved "https://registry.npmjs.org/react18-input-otp/-/react18-input-otp-1.1.4.tgz" + integrity sha512-35xvmTeuPWIxd0Z0Opx4z3OoMaTmKN4ubirQCx1YMZiNoe+2h1hsOSUco4aKPlGXWZCtXrfOFieAh46vqiK9mA== + +read-cache@^1.0.0: + 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" + +readable-stream@^2.0.1, readable-stream@^2.3.8: + 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" + +readable-stream@^3.0.6: + 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" + +readable-stream@^3.5.0: + 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" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +recursive-readdir@^2.2.2: + 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" + +redux-thunk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz" + integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== + +redux@^4, "redux@^4 || ^5.0.0-beta.0", redux@^4.2.0, redux@^4.2.1: + version "4.2.1" + resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regenerate-unicode-properties@^10.2.0: + version "10.2.0" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz" + integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.3: + version "0.13.11" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.13.9: + version "0.13.11" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regex-parser@^2.2.11: + version "2.3.1" + resolved "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz" + integrity sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ== + +regexp.prototype.flags@^1.5.3: + version "1.5.4" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" + +regexpu-core@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz" + integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.2.0" + regjsgen "^0.8.0" + regjsparser "^0.12.0" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsgen@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== + +regjsparser@^0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz" + integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== + dependencies: + jsesc "~3.0.2" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +remove-accents@^0.4.2: + version "0.4.4" + resolved "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz" + integrity sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg== + +renderkid@^3.0.0: + 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" + +require-directory@^2.1.1: + 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== + +require-from-string@^2.0.2: + 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== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +reselect@^4.1.8: + version "4.1.8" + resolved "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz" + integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-cwd@^3.0.0: + 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" + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^4.0.0: + 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" + +resolve.exports@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz" + integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== + +resolve@^1.1.7, resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.10, resolve@^1.22.4, resolve@^1.22.8: + version "1.22.10" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== + dependencies: + is-core-module "^2.16.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^2.0.0-next.5: + 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" + +retry@^0.13.1: + version "0.13.1" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" + integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.0, rimraf@^3.0.2: + 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" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +"rollup@^1.20.0 || ^2.0.0", rollup@^1.20.0||^2.0.0, rollup@^2.0.0, rollup@^2.43.1: + version "2.79.2" + resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz" + integrity sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +safe-array-concat@^1.1.2, safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" + isarray "^2.0.5" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@>=5.1.0, safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-push-apply@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== + dependencies: + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +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== + +sass-loader@^12.3.0: + 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" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== + dependencies: + loose-envify "^1.1.0" + +schema-utils@^2.6.5: + 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" + +schema-utils@^3.0.0: + 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" + +schema-utils@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz" + integrity sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g== + dependencies: + "@types/json-schema" "^7.0.9" + ajv "^8.9.0" + ajv-formats "^2.1.1" + ajv-keywords "^5.1.0" + +schema-utils@2.7.0: + 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" + +scroll-into-view-if-needed@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz" + integrity sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ== + dependencies: + compute-scroll-into-view "^3.0.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz" + integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg== + +selfsigned@^2.1.1: + 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" + +semver@^5.6.0: + version "5.7.2" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.2: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +semver@^7.3.5: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +semver@^7.3.7: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +semver@^7.5.3: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +semver@^7.5.4: + version "7.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + +send@0.19.0: + version "0.19.0" + resolved "https://registry.npmjs.org/send/-/send-0.19.0.tgz" + integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== + 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" + +serialize-javascript@^4.0.0: + 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" + +serialize-javascript@^6.0.0, serialize-javascript@^6.0.2: + 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" + +serve-index@^1.9.1: + 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" + +serve-static@1.16.2: + version "1.16.2" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz" + integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== + dependencies: + encodeurl "~2.0.0" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.19.0" + +set-function-length@^1.2.2: + 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" + +set-function-name@^2.0.2: + 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" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^2.0.0: + 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" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@^1.7.3, shell-quote@^1.8.1: + version "1.8.2" + resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz" + integrity sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.0.6, side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +simplebar-core@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.3.0.tgz" + integrity sha512-LpWl3w0caz0bl322E68qsrRPpIn+rWBGAaEJ0lUJA7Xpr2sw92AkIhg6VWj988IefLXYh50ILatfAnbNoCFrlA== + dependencies: + lodash "^4.17.21" + +simplebar-react@^3.2.4: + version "3.3.0" + resolved "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.3.0.tgz" + integrity sha512-sxzy+xRuU41He4tT4QLGYutchtOuye/xxVeq7xhyOiwMiHNK1ZpvbOTyy+7P0i7gfpXLGTJ8Bep8+4Mhdgtz/g== + dependencies: + simplebar-core "^1.3.0" + +simplebar@^6.2.5: + version "6.3.0" + resolved "https://registry.npmjs.org/simplebar/-/simplebar-6.3.0.tgz" + integrity sha512-SQJfKSvUPJxlOhYCpswEn5ke5WQGsgDZNmpScWL+MKXgYpCDTq1bGiv6uWXwSHMYTkMco32fDUL35sVwCMmzCw== + dependencies: + simplebar-core "^1.3.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slash@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz" + integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== + +sockjs@^0.3.24: + 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" + +source-list-map@^2.0.0, source-list-map@^2.0.1: + 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== + +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map-loader@^3.0.0: + 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" + +source-map-support@^0.5.6, source-map-support@~0.5.20: + 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" + +source-map@^0.5.7: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.6.1, source-map@0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@^0.8.0-beta.0: + 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" + +source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdy-transport@^3.0.0: + 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" + +spdy@^4.0.2: + 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" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssf@~0.11.2: + version "0.11.2" + resolved "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz" + integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== + dependencies: + frac "~1.1.2" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.3: + 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" + +stackframe@^1.3.4: + version "1.3.4" + resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" + integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== + +static-eval@2.0.2: + 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" + +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +string_decoder@^1.1.1, string_decoder@~1.1.1: + 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" + +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" + integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== + +string-length@^4.0.1: + 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" + +string-length@^5.0.1: + 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" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +"string-width-cjs@npm:string-width@^4.2.0": + 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" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + 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" + +string-width@^5.0.1, string-width@^5.1.2: + 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" + +string.prototype.includes@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz" + integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + +string.prototype.matchall@^4.0.12, string.prototype.matchall@^4.0.6: + version "4.0.12" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz" + integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-abstract "^1.23.6" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.6" + gopd "^1.2.0" + has-symbols "^1.1.0" + internal-slot "^1.1.0" + regexp.prototype.flags "^1.5.3" + set-function-name "^2.0.2" + side-channel "^1.1.0" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" + +string.prototype.trimend@^1.0.8, string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + 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" + +stringify-object@^3.3.0: + 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" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + 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" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + 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" + +strip-ansi@^7.0.1: + 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" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^2.0.1: + 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== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + 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== + +style-loader@^3.3.1: + version "3.3.4" + resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz" + integrity sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w== + +stylehacks@^5.1.1: + 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" + +stylis-plugin-rtl@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/stylis-plugin-rtl/-/stylis-plugin-rtl-2.1.1.tgz" + integrity sha512-q6xIkri6fBufIO/sV55md2CbgS5c6gg9EhSVATtHHCdOnbN/jcI0u3lYhNVeuI65c4lQPo67g8xmq5jrREvzlg== + dependencies: + cssjanus "^2.0.1" + +stylis@^4.3.4, stylis@4.x: + version "4.3.6" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.6.tgz" + integrity sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ== + +stylis@4.1.3: + version "4.1.3" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz" + integrity sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA== + +stylis@4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + +sucrase@^3.35.0: + 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" + +supercluster@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz" + integrity sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ== + dependencies: + kdbush "^4.0.2" + +supports-color@^5.3.0: + 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" + +supports-color@^7.0.0, supports-color@^7.1.0: + 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" + +supports-color@^8.0.0: + 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" + +supports-hyperlinks@^2.0.0: + 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" + +supports-preserve-symlinks-flag@^1.0.0: + 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== + +svg-parser@^2.0.2, svg-parser@^2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + 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" + +svgo@^2.7.0: + 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" + +svgo@^3.0.2: + version "3.3.2" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz" + integrity sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + +symbol-tree@^3.2.4: + 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== + +tailwindcss@^3.0.2: + version "3.4.17" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz" + integrity sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.6.0" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.2" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.21.6" + lilconfig "^3.1.3" + micromatch "^4.0.8" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.1.1" + postcss "^8.4.47" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.2" + postcss-nested "^6.2.0" + postcss-selector-parser "^6.1.2" + resolve "^1.22.8" + sucrase "^3.35.0" + +tapable@^1.0.0: + version "1.1.3" + resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + +temp-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz" + integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== + +tempy@^0.6.0: + 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" + +terminal-link@^2.0.0: + 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" + +terser-webpack-plugin@^5.2.5, terser-webpack-plugin@^5.3.11: + version "5.3.11" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz" + integrity sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + jest-worker "^27.4.5" + schema-utils "^4.3.0" + serialize-javascript "^6.0.2" + terser "^5.31.1" + +terser@^5.0.0, terser@^5.10.0, terser@^5.31.1: + version "5.39.0" + resolved "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz" + integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +test-exclude@^6.0.0: + 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" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +thenify-all@^1.0.0: + 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" + +"thenify@>= 3.1.0 < 4": + 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" + +throat@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz" + integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== + +throttle-debounce@^5.0.0, throttle-debounce@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz" + integrity sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A== + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +tiny-case@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz" + integrity sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q== + +tiny-warning@^1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-regex-range@^5.0.1: + 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" + +toggle-selection@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz" + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toposort@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz" + integrity sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg== + +tough-cookie@^4.0.0: + version "4.1.4" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + +tr46@^2.1.0: + 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" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-interface-checker@^0.1.9: + 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== + +tsconfig-paths@^3.15.0: + 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" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@2: + version "2.8.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tsutils@^3.21.0: + 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" + +type-check@^0.4.0, type-check@~0.4.0: + 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" + +type-check@~0.3.2: + 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" + +type-detect@4.0.8: + 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== + +type-fest@^0.16.0: + version "0.16.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz" + integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg== + +type-fest@^0.20.2: + 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== + +type-fest@^0.21.3, "type-fest@>=0.17.0 <4.0.0": + 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== + +type-fest@^2.19.0: + version "2.19.0" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +type-is@~1.6.18: + 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" + +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== + dependencies: + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" + +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== + dependencies: + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" + +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + for-each "^0.3.3" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" + +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" + +typedarray-to-buffer@^3.1.5: + 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" + +"typescript@^3.2.1 || ^4", "typescript@^4.7 || 5", "typescript@>= 2.7", "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", typescript@>=4.9.5: + version "4.9.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + +ua-parser-js@^1.0.33: + version "1.0.40" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz" + integrity sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew== + +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== + dependencies: + call-bound "^1.0.3" + has-bigints "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + +undici-types@~6.20.0: + version "6.20.0" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" + integrity sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg== + +undici@6.19.7: + version "6.19.7" + resolved "https://registry.npmjs.org/undici/-/undici-6.19.7.tgz" + integrity sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" + integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== + +unicode-match-property-ecmascript@^2.0.0: + 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" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz" + integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== + +unicode-property-aliases-ecmascript@^2.0.0: + 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== + +unique-string@^2.0.0: + 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" + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +unpipe@~1.0.0, unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz" + integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== + +upath@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +uri-js@^4.2.2: + 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" + +url-parse@^1.5.3: + 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" + +use-debounce@^10.0.5: + version "10.0.5" + resolved "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.5.tgz" + integrity sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ== + +use-sync-external-store@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz" + integrity sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util.promisify@~1.0.0: + 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" + +util@^0.12.5: + 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" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz" + integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-to-istanbul@^8.1.0: + 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" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + 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" + +walker@^1.0.7: + 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" + +watchpack@^2.4.1: + version "2.4.2" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz" + integrity sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw== + dependencies: + glob-to-regexp "^0.4.1" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.3: + 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" + +web-vitals@^3.3.1: + version "3.5.2" + resolved "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz" + integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg== + +webidl-conversions@^4.0.2: + 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== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-dev-middleware@^5.3.4: + 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" + +webpack-dev-server@^4.6.0, "webpack-dev-server@3.x || 4.x": + 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" + +webpack-manifest-plugin@^4.0.2: + 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" + +webpack-sources@^1.4.3: + 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" + +webpack-sources@^2.2.0: + 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" + +webpack-sources@^3.2.3: + 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== + +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", "webpack@^4.4.0 || ^5.9.0", "webpack@^4.44.2 || ^5.47.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.64.4, "webpack@>= 4", webpack@>=2, "webpack@>=4.43.0 <6.0.0": + version "5.98.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz" + integrity sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" + chrome-trace-event "^1.0.2" + enhanced-resolve "^5.17.1" + 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 "^4.3.0" + tapable "^2.1.1" + terser-webpack-plugin "^5.3.11" + watchpack "^2.4.1" + webpack-sources "^3.2.3" + +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: + 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" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + 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" + +whatwg-fetch@^3.6.2: + version "3.6.20" + resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz" + integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^7.0.0: + 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" + +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + 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" + +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: + 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" + +which-typed-array@^1.1.16, which-typed-array@^1.1.18, which-typed-array@^1.1.2: + version "1.1.18" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" + for-each "^0.3.3" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + +which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + 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" + +wmf@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz" + integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== + +word-wrap@^1.2.5, word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +word@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/word/-/word-0.3.0.tgz" + integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== + +workbox-background-sync@6.6.0: + 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" + +workbox-broadcast-update@6.6.0: + 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" + +workbox-build@6.6.0: + 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" + +workbox-cacheable-response@6.6.0: + version "6.6.0" + resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz" + integrity sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw== + dependencies: + workbox-core "6.6.0" + +workbox-core@6.6.0: + version "6.6.0" + resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz" + integrity sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ== + +workbox-expiration@6.6.0: + 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" + +workbox-google-analytics@6.6.0: + version "6.6.0" + resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz" + integrity sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q== + dependencies: + workbox-background-sync "6.6.0" + workbox-core "6.6.0" + workbox-routing "6.6.0" + workbox-strategies "6.6.0" + +workbox-navigation-preload@6.6.0: + 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" + +workbox-precaching@6.6.0: + 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" + +workbox-range-requests@6.6.0: + 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" + +workbox-recipes@6.6.0: + 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" + +workbox-routing@6.6.0: + 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" + +workbox-strategies@6.6.0: + 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" + +workbox-streams@6.6.0: + 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" + +workbox-sw@6.6.0: + version "6.6.0" + resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz" + integrity sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ== + +workbox-webpack-plugin@^6.4.1: + 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" + +workbox-window@6.6.0: + 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" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + 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" + +wrap-ansi@^7.0.0: + 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" + +wrap-ansi@^8.1.0: + 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" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^3.0.0: + 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" + +ws@^7.4.6: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +ws@^8.13.0: + version "8.18.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + +xlsx@^0.18.5: + version "0.18.5" + resolved "https://registry.npmjs.org/xlsx/-/xlsx-0.18.5.tgz" + integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== + dependencies: + adler-32 "~1.3.0" + cfb "~1.2.1" + codepage "~1.15.0" + crc-32 "~1.2.1" + ssf "~0.11.2" + wmf "~1.0.1" + word "~0.3.0" + +xml-name-validator@^3.0.0: + 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== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2: + version "1.10.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yaml@^2.3.4: + version "2.7.0" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz" + integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^16.2.0: + 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" + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yup@^1.1.1: + version "1.6.1" + resolved "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz" + integrity sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA== + dependencies: + property-expr "^2.0.5" + tiny-case "^1.0.3" + toposort "^2.0.2" + type-fest "^2.19.0"

    YXh-{O|-CP6Wi_QfFo?m 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